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 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 inheriting in the set of | > functionality we want | > >> (lame,) or I could implement a 'view preprocessor' of some | > kind that | > >> parallels the struts-config and defines processing that I | > need to do for | > >> each view page (which requires me to have two completely | > redundant sets | > >> of | > >> page mappings, and apears to me to obsolete the need for | > Struts in the | > >> first | > >> place (if we were to ignore it's tag libraries and other | > helper classes | > >> which we also already have proprietary equivalents to.) | > >> | > >> I'd love to hear from anyone about other possibilities, or (even | > >> better,) | > >> pointers to somebody/some package already solving this problem. | > >> | > >> Another way to look at the whole thing: How have other | > people solved | > >> the | > >> problem of being able to apply a set of page access rules | > to arbitrary | > >> sets | > >> of pages without having to create a system parallel to struts that | > >> re-defines every page in the application? Or do people consider a | > >> parallel | > >> system that respecifies every page as the proper design? | > >> | > >> Thorin | > >> | > >> | > >> | > --------------------------------------------------------------------- | > >> To unsubscribe, e-mail: [EMAIL PROTECTED] | > >> For additional commands, e-mail: | > [EMAIL PROTECTED] | > >> | > > | > > | > > _________________________________________________________________ | > > | > > | > > | > > | > --------------------------------------------------------------------- | > > To unsubscribe, e-mail: [EMAIL PROTECTED] | > > For additional commands, e-mail: [EMAIL PROTECTED] | > > | > > | > --------------------------------------------------------------------- | > > To unsubscribe, e-mail: [EMAIL PROTECTED] | > > For additional commands, e-mail: [EMAIL PROTECTED] | > > | > > | > | > | > | > -- | > Igor Shabalov | > Director of Engineering | > Exadel Inc. | > http://www.exadel.com | > | | --------------------------------------------------------------------- | To unsubscribe, e-mail: [EMAIL PROTECTED] | For additional commands, e-mail: [EMAIL PROTECTED] | | --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]