Re: Is Strut too primitive for really useful Controller function?
You 100% rights, David. Once again, I do not pretend that I invent this approach. It was born naturally in a process of development. I try to look wider to development process. I like an idea of assembling application from blocks. I just try to explain how useful ca be “universal controller framework”. Best regards, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Wed, 02 Apr 2003 12:34:35 -0700, David Graham <[EMAIL PROTECTED]> wrote: You're extra "C" is more commonly referred to as a Session Facade or Business Delegate. http://developer.java.sun.com/developer/restricted/patterns/J2EEPatternsAtAGlance.html Saying, "[Struts] is too much coupled to web and Servlet container" implies a criticism. Struts is a *web* tier MVC framework and makes no apologies about being tied to the Servlet API. Your "business controller" sits behind Struts' Actions and handles business logic so the frameworks should be complementary. David From: Igor Shabalov <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: Struts Users Mailing List <[EMAIL PROTECTED]> Subject: Re: Is Strut too primitive for really useful Controller function? Date: Wed, 02 Apr 2003 10:54:43 -0800 No, it is not violating MVC design. This is some sort of MVCC design with two layers of controller â?? one to implement complex View-specific functions (page flow, data validation, data transformation) and another one to implement Model-specific functions (data flow, transactions handling, function aggregation). That gives you more flexibility in both sides. That gives you ability to reuse â??business functionsâ?? on more â??coarseâ?? level. In general, your implementation technology does not matter from architectural point of view. But whole point of my original post was â?? yes, Struts is not suitable for such design, because it is too much coupled to web and Servlet container. I was talking about another â??controller frameworkâ?? â?? Exadel. Best regards, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Wed, 02 Apr 2003 07:57:50 -0700, David Graham <[EMAIL PROTECTED]> wrote: IMO, implementing business logic in the controller violates MVC principles. The Struts controller handles page flow by calling Actions. Your actions invoke methods on your business layer. By putting business logic in the controller you can't reuse it outside of that framework. If I were interested in writing non-reusable code I'd use Perl ;-). David From: Edgar Dollin <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: 'Igor Shabalov' <[EMAIL PROTECTED]>, 'Struts Users Mailing List' <[EMAIL PROTECTED]> Subject: RE: Is Strut too primitive for really useful Controller function? Date: Wed, 2 Apr 2003 06:52:21 -0500 If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar > -Original Message- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 4:31 PM > To: 'Struts Users Mailing List' > Subject: Re: Is Strut too primitive for really useful > Controller function? > > > > I can not find original post from Thorin - but I'm 100% > agree with his > point. > Moreover - I have real experience with system that > allows me to implement > what Thorin is talking about. We implements almost all > business logic in > controller layer, moreover - we have two sub-layer inside > controller - > "presentation" controller, which handles all page flow and input > validations, and "business" controller - where actual > business logic where > implemented on "high" level. > All this because of using our own implementation of MVC > framework - > Exadel. > I'm not here to convince you to switch from Struts to > Exadel, but I can > tell you that Struts "controller" component is too primitive > compared to > Exadel. > We used widely concept of module. In Exadel you can > define module (we call > it "process") with "process context" and actually use it like > "function > calls". You even can use recursion. That gives us ability to > split system > to modules using "vertical" (by functional areas) and > "horizontal" (by > architecture layer) approach. And we design system in a way > where we have > two horizontal layers - one (top) designed to handle page > flow and all > "
Re: Is Strut too primitive for really useful Controller function?
You're extra "C" is more commonly referred to as a Session Facade or Business Delegate. http://developer.java.sun.com/developer/restricted/patterns/J2EEPatternsAtAGlance.html Saying, "[Struts] is too much coupled to web and Servlet container" implies a criticism. Struts is a *web* tier MVC framework and makes no apologies about being tied to the Servlet API. Your "business controller" sits behind Struts' Actions and handles business logic so the frameworks should be complementary. David From: Igor Shabalov <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: Struts Users Mailing List <[EMAIL PROTECTED]> Subject: Re: Is Strut too primitive for really useful Controller function? Date: Wed, 02 Apr 2003 10:54:43 -0800 No, it is not violating MVC design. This is some sort of MVCC design with two layers of controller â?? one to implement complex View-specific functions (page flow, data validation, data transformation) and another one to implement Model-specific functions (data flow, transactions handling, function aggregation). That gives you more flexibility in both sides. That gives you ability to reuse â??business functionsâ?? on more â??coarseâ?? level. In general, your implementation technology does not matter from architectural point of view. But whole point of my original post was â?? yes, Struts is not suitable for such design, because it is too much coupled to web and Servlet container. I was talking about another â??controller frameworkâ?? â?? Exadel. Best regards, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Wed, 02 Apr 2003 07:57:50 -0700, David Graham <[EMAIL PROTECTED]> wrote: IMO, implementing business logic in the controller violates MVC principles. The Struts controller handles page flow by calling Actions. Your actions invoke methods on your business layer. By putting business logic in the controller you can't reuse it outside of that framework. If I were interested in writing non-reusable code I'd use Perl ;-). David From: Edgar Dollin <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: 'Igor Shabalov' <[EMAIL PROTECTED]>, 'Struts Users Mailing List' <[EMAIL PROTECTED]> Subject: RE: Is Strut too primitive for really useful Controller function? Date: Wed, 2 Apr 2003 06:52:21 -0500 If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar > -Original Message----- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 4:31 PM > To: 'Struts Users Mailing List' > Subject: Re: Is Strut too primitive for really useful > Controller function? > > > >I can not find original post from Thorin - but I'm 100% > agree with his > point. >Moreover - I have real experience with system that > allows me to implement > what Thorin is talking about. We implements almost all > business logic in > controller layer, moreover - we have two sub-layer inside > controller - > "presentation" controller, which handles all page flow and input > validations, and "business" controller - where actual > business logic where > implemented on "high" level. >All this because of using our own implementation of MVC > framework - > Exadel. >I'm not here to convince you to switch from Struts to > Exadel, but I can > tell you that Struts "controller" component is too primitive > compared to > Exadel. >We used widely concept of module. In Exadel you can > define module (we call > it "process") with "process context" and actually use it like > "function > calls". You even can use recursion. That gives us ability to > split system > to modules using "vertical" (by functional areas) and > "horizontal" (by > architecture layer) approach. And we design system in a way > where we have > two horizontal layers - one (top) designed to handle page > flow and all > "interface" relater issues. And second (bottom) layer was > dedicated to > business functions. > >I feel that there is something good in such design, the > only problem - > Strut do not really helps here. > > > Best, > Igor. > http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm > > On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm > <[EMAIL PROTECTED]> wrote: > > > Filters are one of the design/imp choices I've consi
Re: Is Strut too primitive for really useful Controller function?
No, it is not violating MVC design. This is some sort of MVCC design with two layers of controller – one to implement complex View-specific functions (page flow, data validation, data transformation) and another one to implement Model-specific functions (data flow, transactions handling, function aggregation). That gives you more flexibility in both sides. That gives you ability to reuse “business functions” on more “coarse” level. In general, your implementation technology does not matter from architectural point of view. But whole point of my original post was – yes, Struts is not suitable for such design, because it is too much coupled to web and Servlet container. I was talking about another “controller framework” – Exadel. Best regards, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Wed, 02 Apr 2003 07:57:50 -0700, David Graham <[EMAIL PROTECTED]> wrote: IMO, implementing business logic in the controller violates MVC principles. The Struts controller handles page flow by calling Actions. Your actions invoke methods on your business layer. By putting business logic in the controller you can't reuse it outside of that framework. If I were interested in writing non-reusable code I'd use Perl ;-). David From: Edgar Dollin <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: 'Igor Shabalov' <[EMAIL PROTECTED]>, 'Struts Users Mailing List' <[EMAIL PROTECTED]> Subject: RE: Is Strut too primitive for really useful Controller function? Date: Wed, 2 Apr 2003 06:52:21 -0500 If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar > -Original Message- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 4:31 PM > To: 'Struts Users Mailing List' > Subject: Re: Is Strut too primitive for really useful > Controller function? > > > >I can not find original post from Thorin - but I'm 100% > agree with his > point. >Moreover - I have real experience with system that > allows me to implement > what Thorin is talking about. We implements almost all > business logic in > controller layer, moreover - we have two sub-layer inside > controller - > "presentation" controller, which handles all page flow and input > validations, and "business" controller - where actual > business logic where > implemented on "high" level. >All this because of using our own implementation of MVC > framework - > Exadel. >I'm not here to convince you to switch from Struts to > Exadel, but I can > tell you that Struts "controller" component is too primitive > compared to > Exadel. >We used widely concept of module. In Exadel you can > define module (we call > it "process") with "process context" and actually use it like > "function > calls". You even can use recursion. That gives us ability to > split system > to modules using "vertical" (by functional areas) and > "horizontal" (by > architecture layer) approach. And we design system in a way > where we have > two horizontal layers - one (top) designed to handle page > flow and all > "interface" relater issues. And second (bottom) layer was > dedicated to > business functions. > >I feel that there is something good in such design, the > only problem - > Strut do not really helps here. > > > Best, > Igor. > http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm > > On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm > <[EMAIL PROTECTED]> wrote: > > > Filters are one of the design/imp choices I've considered under the > > 'parallel system' heading, though I hadn't thought of trying to use > > the web.xml for this. I'd have to look into these more. > > > > I take it you recomending that a second, parallel system of > specifying > > functionality on a per-page or per-page-set basis is the way to go? > > > > What reasons would you have for this design choice, as opposed to > > extending > > struts to contain this functionality? > > > > Have you (or others,) implemented something similar to this? > > > > (This port is going to be a large chunk of time and I'm > just trying to > > find > > out if other people have already thought through and > implemented this > > type > > of functionality before I just pick som
Re: Is Strut too primitive for really useful Controller function?
When we did it we also think only about our project goals. I realize, that we actually use multi-layer controller architecture after we did it. It comes naturally to the following: [web layer] - nothing special, just JSP with some custom tags, web developer | | [web controller layer] - used to implement all page flow logic, validations and data transformations, calls modules from business controller layer, web developer | | [business controller layer] - used to implement “coarse” business functions, like “put bid on the sit” etc., uses same flow engine, like web controller, calls business object layer, business developer | | [business objects layer] – used to implement business objects and fine grained functions, like “create record in history” or “set company address” etc, use Java and JDO for implementation, business developer. This is simplistic, but close to reality picture. You see, there is two controller layers between JSP (view) and Java (model). It provides normal “controller” function – data transformation and functional calls aggregation. “Business controller layer” used to define “business meaningful functions” by combining elements of calls to model layer and some peaces of code; it is also responsible for transaction handling. We have two developers in team – I call them “web developer” and “business developer” and such division is very natural for our team. Best regards, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Wed, 2 Apr 2003 17:29:29 +0530, Navjot Singh <[EMAIL PROTECTED]> wrote: hi igor and list, This is little bit off the Struts but now it seems to framework discussion so i can put in my 2 cents the *process context* in exadel reminds me that i had built exactly similar stuff (2-3 years ago in PERL ;-) where i have the similar sub layers in controller + presentation ( rendering and validation ) (could be plain wml / html / any other ML using xslt ) + business ( with support to work over n/w as well using calls to daemons) but i didn't know that i can call them controller / models or blah blah ... :-) but here we talk about Java where Struts is not bad and surely will improve day by day -navjot - Original Message - From: "Edgar Dollin" <[EMAIL PROTECTED]> To: "'Igor Shabalov'" <[EMAIL PROTECTED]>; "'Struts Users Mailing List'" <[EMAIL PROTECTED]> Sent: Wednesday, April 02, 2003 5:22 PM Subject: RE: Is Strut too primitive for really useful Controller function? | If I understand what your are saying is that there is a action scripting | language built into Exadel. I guess then there is some kind of 'terminal' | action which decides the output or is the output built along the way. | | Interesting | | Edgar | | > -Original Message- | > From: Igor Shabalov [mailto:[EMAIL PROTECTED] | > Sent: Tuesday, April 01, 2003 4:31 PM | > To: 'Struts Users Mailing List' | > Subject: Re: Is Strut too primitive for really useful | > Controller function? | > | > | > | > I can not find original post from Thorin - but I'm 100% | > agree with his | > point. | > Moreover - I have real experience with system that | > allows me to implement | > what Thorin is talking about. We implements almost all | > business logic in | > controller layer, moreover - we have two sub-layer inside | > controller - | > "presentation" controller, which handles all page flow and input | > validations, and "business" controller - where actual | > business logic where | > implemented on "high" level. | > All this because of using our own implementation of MVC | > framework - | > Exadel. | > I'm not here to convince you to switch from Struts to | > Exadel, but I can | > tell you that Struts "controller" component is too primitive | > compared to | > Exadel. | > We used widely concept of module. In Exadel you can | > define module (we call | > it "process") with "process context" and actually use it like | > "function | > calls". You even can use recursion. That gives us ability to | > split system | > to modules using "vertical" (by functional areas) and | > "horizontal" (by | > architecture layer) approach. And we design system in a way | > where we have | > two horizontal layers - one (top) designed to handle page | > flow and all | > "interface" relater issues. And second (bottom) layer was | > dedicated to | > business functions. | > | > I feel that there is something good in such design, the | > only problem - | > Strut do not really helps here. | > | > | > Best, | > Igor. | > http://www.exadel.com http://www.exadel.com/products_strutsstudio.h
Re: Is Strut too primitive for really useful Controller function?
The scripting language in Exadel is Java. In general, we use similar technique to JSP. We generate code on-the-fly, compile and execute it. That gives really nice feeling, when you work with Exadel – it feels like VB. Developers begin to use typical VB scenario – write something, try it, fix it, try more etc. If anybody has some interest in our ideas – feel free to download trial version of Exadel from here: http://www.exadel.com/products_webflowengine.htm You can try to get this feeling, and this is NOT commercial! I really think that some ideas from Exadel can be incorporated into Struts and Struts will benefit from it! I can put my dream list here: -well defined sub-modules, module context to store module-local data, explicit definitions of module interfaces. (all this exists in Exadel) -abstract software interface to modules, free from binding to web, ability to reuse modules from outside – using WSDL and Java interfaces (exists in Exadel) -use compile-on-the-fly technique for action definitions (exists in Exadel) -debugger interface, step-by-step execution on action-page level, data introspection in contexts, introspection of data goes to/from pages and actions (exists in Exadel) -GUI tool to support all this – otherwise all this does not make a lot of cense. Once again, do not treat this like commercial, I do not have an intention to offend anybody, I just put there my “dream list” based on my previous experience, what can help me a lot with my next project. BTW, I’m talking about 4 version of Exadel. And there was 1-st, 2-nd and 3-rd. We actually had Java Script and XSL scripting languages in previous version of Exadel, but we decide to drop it – because nobody needs it. Best regards, Igor. On Wed, 2 Apr 2003 06:52:21 -0500, Edgar Dollin <[EMAIL PROTECTED]> wrote: If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar -Original Message- From: Igor Shabalov [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 01, 2003 4:31 PM To: 'Struts Users Mailing List' Subject: Re: Is Strut too primitive for really useful Controller function? I can not find original post from Thorin - but I'm 100% agree with his point. Moreover - I have real experience with system that allows me to implement what Thorin is talking about. We implements almost all business logic in controller layer, moreover - we have two sub-layer inside controller - "presentation" controller, which handles all page flow and input validations, and "business" controller - where actual business logic where implemented on "high" level. All this because of using our own implementation of MVC framework - Exadel. I'm not here to convince you to switch from Struts to Exadel, but I can tell you that Struts "controller" component is too primitive compared to Exadel. We used widely concept of module. In Exadel you can define module (we call it "process") with "process context" and actually use it like "function calls". You even can use recursion. That gives us ability to split system to modules using "vertical" (by functional areas) and "horizontal" (by architecture layer) approach. And we design system in a way where we have two horizontal layers - one (top) designed to handle page flow and all "interface" relater issues. And second (bottom) layer was dedicated to business functions. I feel that there is something good in such design, the only problem - Strut do not really helps here. Best, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm <[EMAIL PROTECTED]> wrote: > Filters are one of the design/imp choices I've considered under the > 'parallel system' heading, though I hadn't thought of trying to use > the web.xml for this. I'd have to look into these more. > > I take it you recomending that a second, parallel system of specifying > functionality on a per-page or per-page-set basis is the way to go? > > What reasons would you have for this design choice, as opposed to > extending > struts to contain this functionality? > > Have you (or others,) implemented something similar to this? > > (This port is going to be a large chunk of time and I'm just trying to > find > out if other people have already thought through and implemented this > type > of functionality before I just pick something, run with it, and end up > with > some kind of maintenance or design nightmare :-) > > -Original Message- > From: David Graham [mailto:[EMAIL PROTECTED] > Sent: Tuesday
RE: Is Strut too primitive for really useful Controller function?
IMO, implementing business logic in the controller violates MVC principles. The Struts controller handles page flow by calling Actions. Your actions invoke methods on your business layer. By putting business logic in the controller you can't reuse it outside of that framework. If I were interested in writing non-reusable code I'd use Perl ;-). David From: Edgar Dollin <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: 'Igor Shabalov' <[EMAIL PROTECTED]>, 'Struts Users Mailing List' <[EMAIL PROTECTED]> Subject: RE: Is Strut too primitive for really useful Controller function? Date: Wed, 2 Apr 2003 06:52:21 -0500 If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar > -Original Message- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 4:31 PM > To: 'Struts Users Mailing List' > Subject: Re: Is Strut too primitive for really useful > Controller function? > > > >I can not find original post from Thorin - but I'm 100% > agree with his > point. >Moreover - I have real experience with system that > allows me to implement > what Thorin is talking about. We implements almost all > business logic in > controller layer, moreover - we have two sub-layer inside > controller - > "presentation" controller, which handles all page flow and input > validations, and "business" controller - where actual > business logic where > implemented on "high" level. >All this because of using our own implementation of MVC > framework - > Exadel. >I'm not here to convince you to switch from Struts to > Exadel, but I can > tell you that Struts "controller" component is too primitive > compared to > Exadel. >We used widely concept of module. In Exadel you can > define module (we call > it "process") with "process context" and actually use it like > "function > calls". You even can use recursion. That gives us ability to > split system > to modules using "vertical" (by functional areas) and > "horizontal" (by > architecture layer) approach. And we design system in a way > where we have > two horizontal layers - one (top) designed to handle page > flow and all > "interface" relater issues. And second (bottom) layer was > dedicated to > business functions. > >I feel that there is something good in such design, the > only problem - > Strut do not really helps here. > > > Best, > Igor. > http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm > > On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm > <[EMAIL PROTECTED]> wrote: > > > Filters are one of the design/imp choices I've considered under the > > 'parallel system' heading, though I hadn't thought of trying to use > > the web.xml for this. I'd have to look into these more. > > > > I take it you recomending that a second, parallel system of > specifying > > functionality on a per-page or per-page-set basis is the way to go? > > > > What reasons would you have for this design choice, as opposed to > > extending > > struts to contain this functionality? > > > > Have you (or others,) implemented something similar to this? > > > > (This port is going to be a large chunk of time and I'm > just trying to > > find > > out if other people have already thought through and > implemented this > > type > > of functionality before I just pick something, run with it, > and end up > > with > > some kind of maintenance or design nightmare :-) > > > > -Original Message- > > From: David Graham [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, April 01, 2003 11:52 AM > > To: [EMAIL PROTECTED] > > Subject: Re: design question about action chaining > > > > > > I think Filters would be a good choice for your needs. You > can define > > a > > filter for each piece of logic and then configure them in > web.xml for > > groups > > > > of pages. You'll need to put related pages in the same > path scheme so > > that you can map a filter to the group instead of each page. > > > > David > > > > > > > >> From: Thorin Linderholm <[EMAIL PROTECTED]> > >> Reply-To: "Struts Users Mailing List" > >> <[EMAIL PROTECT
Re: Is Strut too primitive for really useful Controller function?
hi igor and list, This is little bit off the Struts but now it seems to framework discussion so i can put in my 2 cents the *process context* in exadel reminds me that i had built exactly similar stuff (2-3 years ago in PERL ;-) where i have the similar sub layers in controller + presentation ( rendering and validation ) (could be plain wml / html / any other ML using xslt ) + business ( with support to work over n/w as well using calls to daemons) but i didn't know that i can call them controller / models or blah blah ... :-) but here we talk about Java where Struts is not bad and surely will improve day by day -navjot - Original Message - From: "Edgar Dollin" <[EMAIL PROTECTED]> To: "'Igor Shabalov'" <[EMAIL PROTECTED]>; "'Struts Users Mailing List'" <[EMAIL PROTECTED]> Sent: Wednesday, April 02, 2003 5:22 PM Subject: RE: Is Strut too primitive for really useful Controller function? | If I understand what your are saying is that there is a action scripting | language built into Exadel. I guess then there is some kind of 'terminal' | action which decides the output or is the output built along the way. | | Interesting | | Edgar | | > -Original Message- | > From: Igor Shabalov [mailto:[EMAIL PROTECTED] | > Sent: Tuesday, April 01, 2003 4:31 PM | > To: 'Struts Users Mailing List' | > Subject: Re: Is Strut too primitive for really useful | > Controller function? | > | > | > | > I can not find original post from Thorin - but I'm 100% | > agree with his | > point. | > Moreover - I have real experience with system that | > allows me to implement | > what Thorin is talking about. We implements almost all | > business logic in | > controller layer, moreover - we have two sub-layer inside | > controller - | > "presentation" controller, which handles all page flow and input | > validations, and "business" controller - where actual | > business logic where | > implemented on "high" level. | > All this because of using our own implementation of MVC | > framework - | > Exadel. | > I'm not here to convince you to switch from Struts to | > Exadel, but I can | > tell you that Struts "controller" component is too primitive | > compared to | > Exadel. | > We used widely concept of module. In Exadel you can | > define module (we call | > it "process") with "process context" and actually use it like | > "function | > calls". You even can use recursion. That gives us ability to | > split system | > to modules using "vertical" (by functional areas) and | > "horizontal" (by | > architecture layer) approach. And we design system in a way | > where we have | > two horizontal layers - one (top) designed to handle page | > flow and all | > "interface" relater issues. And second (bottom) layer was | > dedicated to | > business functions. | > | > I feel that there is something good in such design, the | > only problem - | > Strut do not really helps here. | > | > | > Best, | > Igor. | > http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm | > | > On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm | > <[EMAIL PROTECTED]> wrote: | > | > > Filters are one of the design/imp choices I've considered under the | > > 'parallel system' heading, though I hadn't thought of trying to use | > > the web.xml for this. I'd have to look into these more. | > > | > > I take it you recomending that a second, parallel system of | > specifying | > > functionality on a per-page or per-page-set basis is the way to go? | > > | > > What reasons would you have for this design choice, as opposed to | > > extending | > > struts to contain this functionality? | > > | > > Have you (or others,) implemented something similar to this? | > > | > > (This port is going to be a large chunk of time and I'm | > just trying to | > > find | > > out if other people have already thought through and | > implemented this | > > type | > > of functionality before I just pick something, run with it, | > and end up | > > with | > > some kind of maintenance or design nightmare :-) | > > | > > -Original Message- | > > From: David Graham [mailto:[EMAIL PROTECTED] | > > Sent: Tuesday, April 01, 2003 11:52 AM | > > To: [EMAIL PROTECTED] | > > Subject: Re: design question about action chaining | > > | > > | > > I think Filters would be a good choice for your needs. You | > can define | > > a | > > filter for each piece of logic
RE: Is Strut too primitive for really useful Controller function?
If I understand what your are saying is that there is a action scripting language built into Exadel. I guess then there is some kind of 'terminal' action which decides the output or is the output built along the way. Interesting Edgar > -Original Message- > From: Igor Shabalov [mailto:[EMAIL PROTECTED] > Sent: Tuesday, April 01, 2003 4:31 PM > To: 'Struts Users Mailing List' > Subject: Re: Is Strut too primitive for really useful > Controller function? > > > > I can not find original post from Thorin - but I'm 100% > agree with his > point. > Moreover - I have real experience with system that > allows me to implement > what Thorin is talking about. We implements almost all > business logic in > controller layer, moreover - we have two sub-layer inside > controller - > "presentation" controller, which handles all page flow and input > validations, and "business" controller - where actual > business logic where > implemented on "high" level. > All this because of using our own implementation of MVC > framework - > Exadel. > I'm not here to convince you to switch from Struts to > Exadel, but I can > tell you that Struts "controller" component is too primitive > compared to > Exadel. > We used widely concept of module. In Exadel you can > define module (we call > it "process") with "process context" and actually use it like > "function > calls". You even can use recursion. That gives us ability to > split system > to modules using "vertical" (by functional areas) and > "horizontal" (by > architecture layer) approach. And we design system in a way > where we have > two horizontal layers - one (top) designed to handle page > flow and all > "interface" relater issues. And second (bottom) layer was > dedicated to > business functions. > > I feel that there is something good in such design, the > only problem - > Strut do not really helps here. > > > Best, > Igor. > http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm > > On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm > <[EMAIL PROTECTED]> wrote: > > > Filters are one of the design/imp choices I've considered under the > > 'parallel system' heading, though I hadn't thought of trying to use > > the web.xml for this. I'd have to look into these more. > > > > I take it you recomending that a second, parallel system of > specifying > > functionality on a per-page or per-page-set basis is the way to go? > > > > What reasons would you have for this design choice, as opposed to > > extending > > struts to contain this functionality? > > > > Have you (or others,) implemented something similar to this? > > > > (This port is going to be a large chunk of time and I'm > just trying to > > find > > out if other people have already thought through and > implemented this > > type > > of functionality before I just pick something, run with it, > and end up > > with > > some kind of maintenance or design nightmare :-) > > > > -Original Message- > > From: David Graham [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, April 01, 2003 11:52 AM > > To: [EMAIL PROTECTED] > > Subject: Re: design question about action chaining > > > > > > I think Filters would be a good choice for your needs. You > can define > > a > > filter for each piece of logic and then configure them in > web.xml for > > groups > > > > of pages. You'll need to put related pages in the same > path scheme so > > that you can map a filter to the group instead of each page. > > > > David > > > > > > > >> From: Thorin Linderholm <[EMAIL PROTECTED]> > >> Reply-To: "Struts Users Mailing List" > >> <[EMAIL PROTECTED]> > >> To: "'[EMAIL PROTECTED]'" > <[EMAIL PROTECTED]> > >> Subject: design question about action chaining > >> Date: Tue, 1 Apr 2003 11:30:39 -0800 > >> > >> > >> I have been tasked with porting an existing web > application with it's > >> own > >> proprietary controller architecture to using Struts. > >> > >> As they are both web controller architectures, they have many > >> similarities, > >> but I'm running into one difference in overall > architecture that I'm
Re: Is Strut too primitive for really useful Controller function?
I can not find original post from Thorin - but I'm 100% agree with his point. Moreover – I have real experience with system that allows me to implement what Thorin is talking about. We implements almost all business logic in controller layer, moreover – we have two sub-layer inside controller – “presentation” controller, which handles all page flow and input validations, and “business” controller – where actual business logic where implemented on “high” level. All this because of using our own implementation of MVC framework – Exadel. I’m not here to convince you to switch from Struts to Exadel, but I can tell you that Struts “controller” component is too primitive compared to Exadel. We used widely concept of module. In Exadel you can define module (we call it “process”) with “process context” and actually use it like “function calls”. You even can use recursion. That gives us ability to split system to modules using “vertical” (by functional areas) and “horizontal” (by architecture layer) approach. And we design system in a way where we have two horizontal layers – one (top) designed to handle page flow and all “interface” relater issues. And second (bottom) layer was dedicated to business functions. I feel that there is something good in such design, the only problem – Strut do not really helps here. Best, Igor. http://www.exadel.com http://www.exadel.com/products_strutsstudio.htm On Tue, 1 Apr 2003 12:08:09 -0800, Thorin Linderholm <[EMAIL PROTECTED]> wrote: Filters are one of the design/imp choices I've considered under the 'parallel system' heading, though I hadn't thought of trying to use the web.xml for this. I'd have to look into these more. I take it you recomending that a second, parallel system of specifying functionality on a per-page or per-page-set basis is the way to go? What reasons would you have for this design choice, as opposed to extending struts to contain this functionality? Have you (or others,) implemented something similar to this? (This port is going to be a large chunk of time and I'm just trying to find out if other people have already thought through and implemented this type of functionality before I just pick something, run with it, and end up with some kind of maintenance or design nightmare :-) -Original Message- From: David Graham [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 01, 2003 11:52 AM To: [EMAIL PROTECTED] Subject: Re: design question about action chaining I think Filters would be a good choice for your needs. You can define a filter for each piece of logic and then configure them in web.xml for groups of pages. You'll need to put related pages in the same path scheme so that you can map a filter to the group instead of each page. David From: Thorin Linderholm <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> Subject: design question about action chaining Date: Tue, 1 Apr 2003 11:30:39 -0800 I have been tasked with porting an existing web application with it's own proprietary controller architecture to using Struts. As they are both web controller architectures, they have many similarities, but I'm running into one difference in overall architecture that I'm having difficulty resolving. This difficulty is most closely related to the 'action chaining' posts I've been able to find in the mailing list archives. Specifically, I have over 400 pages mapped to various actions (our controller calls them that, and they're roughly synonymous with struts actions.) However, our controller allows specifying a list of actions to execute on a per-page, and per-page-set basis. In other words, we can assign an action like 'Ensure Session initialization has been completed/Initialize session' to every page in the site with a single mapping (assuming you've already listed all the pages.) Or you can assign it to 90% of your pages if you happen to desire. We have approximatly ten actions that happen on between 60-99% of the pages on our site. If we were to directly translate this to the struts mapping system we would end up having to re-specify those ten actions on most of those 400+ pages, creating long action chains for each page (a whole lot of duplication: hard to maintain, easy to get wrong, etc.) So, conceptually, I want to be able to apply a few different bits of logic to whole sets of pages. Some of those 'bits of logic' (actions if you will,) interrupt the process and forward to a different page (page access rules for instance.) There are several possible solutions that I've come up with, but so far all of them involve either hacks, extending struts (which happens to partialy eliminate the reason I'm being required to move to Struts, and so isn't very favored by my supperiors,) some complicated java inheritance hierarchy where I inherit non-related functionality in those ten actions into a set of compound actions, each in