RE: Mod_perl component based architecture
-Original Message- From: Bill Moseley [mailto:[EMAIL PROTECTED]] I'm just bored with html forms. Seems like I do this kind of project too often -- read a record, post, validate, update... Even with good templating and code reuse between projects I still feel like I spend a lot of time re-inventing the (my) wheel. Will an application framework bring me bliss? I'm sure this is common type of project for many people. What solutions have you found to make this easy and portable from project to project? Have you checked out AxKit's XSP::PerForm module? It makes laborious form development a lot easier, and componentizable (made up word). It's still a bit buggy, and beta, but I've used it on full scale projects. Matt. _ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service.
RE: Mod_perl component based architecture
-Original Message- From: Chris Winters [mailto:[EMAIL PROTECTED]] But if you've been working on and building up a platform for 4+ years that already does this, then there's very little to be gained and lots to be lost by moving to an application server. :-) I'd put it slightly differently... I'd say Nick has already built his application server. Matt. _ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service.
RE: Mod_perl component based architecture
-Original Message- From: Gunther Birznieks [mailto:[EMAIL PROTECTED]] Of course, I am not saying that the line isn't fuzzy especially if the template engine is quite powerful (as is the case with Mason or AxKit). But there is a line nonetheless, no?? /me removes head from sand Yes, there's a line. One of my plans for AxKit 1.6 (the next-but-one release) is to enable functioning via CGI. If you follow my journal on use.perl you'll see I've been working on a bit of code that basically does what SpeedyCGI does (called PPerl), but is a bit simpler and actually compiles on my machine. Hopefully I'll be able to get AxKit working in that environment (though I don't promise anything due to the way AxKit is fairly tied right now to httpd.conf). Matt. _ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service.
Re: Mod_perl component based architecture
Michael wrote: Are any of the packages mentioned particularly suited to client content management packages where the client can manage some limeted page content text/graphics but not really mess with the overall page layout and site content. I'm about to start researching this but would like input from the experts. Maybe you can try our software. Metadot is a content management server side application written in mod_perl. All content management in it is done from client browsers. It can also be seen as an application framework providing User, Session and sophisticated Access Control management, all of these accessible from client browsers. (The site administrator, though, gets complete power to limit users access/modification rights to content, and can even set disk space quotas for them.) Metadot comes with an API that makes it easy to create specialized applications on top of it, as well as with a wealth of bundled apps for adding content such as uploaded files, text, images, content categories, discussion and polls. We are open source under the GPL, and we're backed by a big oil-services company. We've just released Version 4.0b. Among its new features are: -Support for windows (IIS and Activestate PerlEx) -A simple templating system to alter page layout/design -A facility to do recursive access permissions changing from the browser -A feature that turns discussions into mailing lists -Improved documentation -A developers support site at http://www.metadot.net I work for them, but a couple of years ago I would have wished to have the functionality we now provide for what my previous job required. :-) Claudio -- Claudio Garcia [EMAIL PROTECTED]
Re: Mod_perl component based architecture
Gargi Bodke wrote: hi i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? also does modperl support object oriented programming? One possible solution: Jewels Application Framework, http://jewels.bgs.sk/ -- Ing. Radovan Semancik ([EMAIL PROTECTED]) Project Manager, Business Global Systems a.s.
Re: Mod_perl component based architecture
On Tue, 16 Oct 2001, Gargi Bodke wrote: i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? There are several solutions you can explore, that are optimized for mod_perl. I personally favor Mason (http://masonhq.com), which uses a component-based architecture with some object-oriented extensions, but there are others like EmbPerl and various templating solutions that achieve similar goals. You can start here for more information (most, if not all, of these are also open source/free software): http://perl.apache.org/#appservers -- Brett http://www.chapelperilous.net/ I'm always looking for a new idea that will be more productive than its cost. -- David Rockefeller
Re: Mod_perl component based architecture
On Tue, Oct 16, 2001 at 07:41:46PM +0530, Gargi Bodke wrote: hi i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? There are a large number of solutions to this. A few are: Apache::ASP HTML::Embperl HTML::Mason Template::Toolkit and Apache::Template For a list of modules involving templates: http://search.cpan.org/search?mode=modulequery=template 139 modules found in 52 distributions matching 'template' also does modperl support object oriented programming? mod_perl is but Perl embedded in Apache. mod_perl supports the full expressiveness of Perl.
RE: Mod_perl component based architecture
-Original Message- From: Gargi Bodke [mailto:[EMAIL PROTECTED]] hi i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? There's loads of ways. Off the top of my head: - EmbPerl with EmbPerlObject - OpenInteract - Apache::PageKit - Apache::ASP using XML-Subs - AxKit - Mason (aka HTML::Mason) All allow some form of separation of content/logic from presentation (but AxKit is the BEST of them all! :-) also does modperl support object oriented programming? Yes. mod_perl isn't like PHP or Cold Fusion or ASP or Java Servlets. It's more of a framework for building things like the above using Perl. As you can see, the community has built quite a number of different ways of doing things over the years! Matt. PS: AxKit at the moment is at http://217.158.50.178/ - the email lists are down, but I'm happy to answer questions on the mod_perl list for now. _ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service.
Re: Mod_perl component based architecture
also does modperl support object oriented programming? Well yes it does indeed (see any good book on Perl, such as «advanced Perl programming» from O'Reilly). As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. -- Tout n'y est pas parfait, mais on y honore certainement les jardiniers Dominique Quatravaux [EMAIL PROTECTED]
Re: Mod_perl component based architecture
On Tue, 16 Oct 2001, Gargi Bodke wrote: i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? Maybe HTML::Mason, http://www.masonhq.com/ also does modperl support object oriented programming? Yes. Good luck. http://perl.apache.org/#docs
Re: Mod_perl component based architecture
Gargi On October 16, 2001 10:11 am, Gargi Bodke wrote: i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? Absolutely; mod_perl fully supports OO programming and all of the techniques for separating business logic from display logic that you might use in, say, a Java-based web application will work fine in mod_perl. It's very very easy to build a MVC-style application with mod-perl, as a number of different mod_perl based platforms have shown (I always point out smartworker for this but there are many others too). Right now I have an enormous mod_perl based site. Its business logic is entirely separate from its application logic; there is not a single line of SQL anywhere in the application layer and it uses standard design patterns to solve many typical problems. All HTML components are reusable and embeddable in other HTML components. When it's used right, mod_perl is pretty much unbeataable. Cheers Kyle Dawkins Systems Engineer Central Park Software
Re: Mod_perl component based architecture
Gargi Bodke [EMAIL PROTECTED] writes: hi i have been asked to suggest an architecture to seperate the business logic from the html. how is this done in modperl? i guess by using functions for the business logic. is there any other way? By using one of the many available templaters, my preference being the Template Toolkit. you can fake up a pretty decent Model-View-Controller patterm from that. also does modperl support object oriented programming? As much as perl does. -- David Hodgkinson, Wizard for Hirehttp://www.davehodgkinson.com Editor-in-chief, The Highway Star http://www.deep-purple.com All the Purple Family Tree news http://www.slashrock.com Interim Technical Director, Web Architecture Consultant for hire
Re: Mod_perl component based architecture
On Tuesday 16 October 2001 17:13, Dominique Quatravaux wrote: As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. Depending on the kind and degree of MVC-ness, Apache::PageKit or AxKit can fit within that approach, perhaps others as well. -- ___ Robin Berjon [EMAIL PROTECTED] -- CTO k n o w s c a p e : // venture knowledge agency www.knowscape.com --- Does the name Pavlov ring a bell?
Re: Mod_perl component based architecture
On Tue, 16 Oct 2001, Dominique Quatravaux wrote: As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. Quite a few, as the other posts in thread have already made reference to. In addition, there is also CGI::Application, which supports templating via HTML::Template and uses an MVC architecture as well. -- Brett http://www.chapelperilous.net/ Perfection is reached, not when there is no longer anything to add, but when there is no longer anything to take away. -- Antoine de Saint-Exupery
RE: Mod_perl component based architecture
Title: RE: Mod_perl component based architecture You should really check out OpenInteract (http://www.openinteract.org). It sounds like it has a lot of the hooks you're looking for (user management, templates, online content editing, etc) as well as a few you'll be looking for later (security, session management). It is built on mod_perl and the Template Toolkit as well as many other standard CPAN modules. Tim -Original Message- From: Michael [mailto:[EMAIL PROTECTED]] Sent: Tuesday, October 16, 2001 3:55 PM To: [EMAIL PROTECTED] Subject: Re: Mod_perl component based architecture On Tue, 16 Oct 2001, Dominique Quatravaux wrote: As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. Quite a few, as the other posts in thread have already made reference to. In addition, there is also CGI::Application, which supports templating via HTML::Template and uses an MVC architecture as well. Are any of the packages mentioned particularly suited to client content management packages where the client can manage some limeted page content text/graphics but not really mess with the overall page layout and site content. I'm about to start researching this but would like input from the experts. Michael
Re: Mod_perl component based architecture
On Tue, 16 Oct 2001, Michael wrote: Quite a few, as the other posts in thread have already made reference to. In addition, there is also CGI::Application, which supports templating via HTML::Template and uses an MVC architecture as well. Are any of the packages mentioned particularly suited to client content management packages where the client can manage some limeted page content text/graphics but not really mess with the overall page layout and site content. I'm about to start researching this but would like input from the experts. Mason has a content management suite, and I think Smart Worker may also have something along these lines. I can't speak for the other ones, as I have not used them. -- Brett http://www.chapelperilous.net/ Your lucky number is 3552664958674928. Watch for it everywhere.
Re: Mod_perl component based architecture
* Michael ([EMAIL PROTECTED]) [011016 15:37]: Are any of the packages mentioned particularly suited to client content management packages where the client can manage some limeted page content text/graphics but not really mess with the overall page layout and site content. I'm about to start researching this but would like input from the experts. OpenInteract (http://www.openinteract.org/) has page-editing (and template-editing) capabilities from the browser. Currently you need to keep all the content in the database to make this work, but I'm working on being able to edit content in the filesystem as well. I wouldn't call it a content-management system really, but users find it pretty useful to see a typo, click on 'Edit this Document', make the change and see it instantly. Chris -- Chris Winters ([EMAIL PROTECTED]) Building enterprise-capable snack solutions since 1988.
Re: Mod_perl component based architecture
I've been looking at OpenInteract, too. I've got a project where about 100 people need to edit records in a database via a web-based interface. And I'd like history tracking of changes (something like CVS provides, where it's easy to see diffs and to back out changes). And I need access control for the 100 people, along with tracking per user of how many changes they make, email notification of changes, administrative and super-user type of user levels, and bla, bla bla, and so on. Normal stuff. I'm just bored with html forms. Seems like I do this kind of project too often -- read a record, post, validate, update... Even with good templating and code reuse between projects I still feel like I spend a lot of time re-inventing the (my) wheel. Will an application framework bring me bliss? I'm sure this is common type of project for many people. What solutions have you found to make this easy and portable from project to project? Bill Moseley mailto:[EMAIL PROTECTED]
Re: Mod_perl component based architecture
I do almost nothing but the kind of work you are describing, including a comprehesive student record management system for a large California College. I find that providing a custom interface to data is a lot more like static content than dynamic when it comes to design. My apps tend to look more like M$ Access than slashdot.org So, over time, I've built a set of tools that do exactly what I need. It's an extensible API, of course, so I can add new functionality simply, but it does just what I need. The reason I've never adopted Mason or OpenInteract or one of these [amazing] products is that because of their scope they do far more than I ever need them to. For the same amount of time and learning curve I would spend on becoming a Mason mason I can tweak my own API to be 100% to my liking. All the content-generation code I use is my own. Many people sniff at this and chuckle at another hacker going through the rite of passage of making his own templating system. But the toolkit I use has been built over four or five years now, so if I'm stuck in a rite, well, so be it. Works for me, rather well. I use a light layer of custom stuff built on top of the hardcore public APIs for non-content-generation stuff, i.e. Apache::Session- and DBI-based auth and data-access libraries. I have built an integrated access/auth/authz layer that gives each user a hash of their own permissions that follows them around; I use this to govern the output of the content-generation as to read-write, as you suggested, and logging is built into the write()s everywhere. I've been thinking of packaging up the auth/authz stuff ... anybody care to take a look at it? I guess in general I favor independent component APIs upon which you can build, a la Apache::Session, rather than the monster Application Servers ... it seems that you get the same effect but with more control. Of course, I've had the luxury of afew years' experience; someone starting out may prefer a canned solution ... - nick ~~~ Nick Tonkin On Tue, 16 Oct 2001, Bill Moseley wrote: I've been looking at OpenInteract, too. I've got a project where about 100 people need to edit records in a database via a web-based interface. And I'd like history tracking of changes (something like CVS provides, where it's easy to see diffs and to back out changes). And I need access control for the 100 people, along with tracking per user of how many changes they make, email notification of changes, administrative and super-user type of user levels, and bla, bla bla, and so on. Normal stuff. I'm just bored with html forms. Seems like I do this kind of project too often -- read a record, post, validate, update... Even with good templating and code reuse between projects I still feel like I spend a lot of time re-inventing the (my) wheel. Will an application framework bring me bliss? I'm sure this is common type of project for many people. What solutions have you found to make this easy and portable from project to project? Bill Moseley mailto:[EMAIL PROTECTED]
Re: Mod_perl component based architecture
* Bill Moseley ([EMAIL PROTECTED]) [011016 16:49]: I'm just bored with html forms. Seems like I do this kind of project too often -- read a record, post, validate, update... Even with good templating and code reuse between projects I still feel like I spend a lot of time re-inventing the (my) wheel. Will an application framework bring me bliss? I'm sure this is common type of project for many people. What solutions have you found to make this easy and portable from project to project? An application framework *can* bring you bliss -- but like a lot of solutions that do a lot you need to buy into how it does things or hope that it's flexible enough for you to change it. In addition, a framework should be able to encourage reuse because you can concentrate on the interesting things (what is the data? how does it act?) rather than the boring things (security, user/group management, templating stuff). The boring things are there to be used, but they're a given. Good frameworks should IMO also make it easy to package up the interesting things and keep them separate from one another, so you can run as many code-test iterations as you need in your development environment, bundle up the interesting code (object definitions, schemas, business logic, display logic) and install it to the production environment without much hassle. Chris PS - (plug plug) OpenInteract has as of 1.30 a new module (OpenInteract::CommonHandler) to make the typical search/display/edit/remove functinonality extremely easy. -- Chris Winters ([EMAIL PROTECTED]) Building enterprise-capable snack solutions since 1988.
Re: Mod_perl component based architecture
* Nick Tonkin ([EMAIL PROTECTED]) [011016 17:28]: ... I guess in general I favor independent component APIs upon which you can build, a la Apache::Session, rather than the monster Application Servers ... it seems that you get the same effect but with more control. Of course, I've had the luxury of afew years' experience; someone starting out may prefer a canned solution ... Sure, and you'd probably find that a lot of application servers -- at least ones in Perl -- do this as well. For instance, the OpenInteract session handling is exactly as you describe, a thin interface layer around Apache::Session. Templating is through Template Toolkit, etc. Leveraging the work of all the smart people in the community is, to me, a no-brainer. My view is that an application server makes all this stuff work together, consistently, and then adds functionality on top of it rather than in place of it. But if you've been working on and building up a platform for 4+ years that already does this, then there's very little to be gained and lots to be lost by moving to an application server. :-) Chris -- Chris Winters ([EMAIL PROTECTED]) Building enterprise-capable snack solutions since 1988.
Re: Mod_perl component based architecture
At 11:13 PM 10/16/01, Dominique Quatravaux wrote: also does modperl support object oriented programming? Well yes it does indeed (see any good book on Perl, such as «advanced Perl programming» from O'Reilly). As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. Our eXtropia toolkit is just about the only one out there that caters to all CGI environments with MVC architecture (action objects and action manager for controller, normal DB objects for model, and template toolkit for view)... If you go to http://www.extropia.com/ you can download any Perl WebDB app, WebCal, or WebBBS to see an example. We are still in a mode where we are distributing apps built around the framework rather than the framework itself but you can get the idea. WebDB in particular has a lot of documentation itself for free. If you are really interested in toolkit docs, we have an 800 page book out by McGraw-Hill whose later half 400 pages discusses in raw detail the architecture of the toolkit itself and how all the pieces fit together. One of the sad things is that the intelligent people on this list tend to have their head a bit in the ground when it comes to alternative environments other than mod_perl. mod_perl's a great tool but there's a lot of other Perl environments out there not the least of which is just plain old CGI. This is why our toolkit specifically caters to all. The other thing is that many (although not all) Perl people tend to have their head in the ground related to dealing with other environments such as Java. Our toolkit also plugs into Java environments. For example, we have a completely interoperaple Perl - Java persistence layer (via SOAP) if you wish to use a Java driver for a Perl front-end. We also spent considerable time porting our toolkit and several apps to Java MVC framework so we have Java Servlet/JSP equivalents of everything. Yet another thing is that many Perl people also have their head in the ground about Win32 compatibility. We've strived to make sure our entire toolkit will work reasonably well on Win98 and Win2000. A toolkit that only works on mod_perl will by definition not work well on Win2000 except as a toy because Win32 mod_perl is a single blocking thread. Great for development, not so great for production (unless the site is really small). I would venture to say that some of the mod_perl-only toolkits have some cases of being better designed than ours, but they are mostly mod_perl only. In fact, I don't know if I know any other toolkits than ours that are not mod_perl only of the ones that were advertised on the list. Of course, this may be what you are looking for. But since you mentioned Perl MVC and not specifically mod_perl-only MVC, I figured I would jump in and mention the alternative since we are much more open to alternative environments and not being closed in to just mod_perl. Later, Gunther
Re: Mod_perl component based architecture
On Wed, 17 Oct 2001, Gunther Birznieks wrote: I would venture to say that some of the mod_perl-only toolkits have some cases of being better designed than ours, but they are mostly mod_perl only. In fact, I don't know if I know any other toolkits than ours that are not mod_perl only of the ones that were advertised on the list. I don't know if Mason counts as a full toolkit (its not really an app server) but you can certainly run Mason as a vanilla CGI, and if you can do that I'm sure you can run it in FastCGI and whatnot. -dave /*== www.urth.org We await the New Sun ==*/
Re: Mod_perl component based architecture
On Tue, 16 Oct 2001 22:07:47 -0500 (CDT), Dave Rolsky [EMAIL PROTECTED] said: DR On Wed, 17 Oct 2001, Gunther Birznieks wrote: I would venture to say that some of the mod_perl-only toolkits have some cases of being better designed than ours, but they are mostly mod_perl only. In fact, I don't know if I know any other toolkits than ours that are not mod_perl only of the ones that were advertised on the list. DR I don't know if Mason counts as a full toolkit (its not really an app DR server) but you can certainly run Mason as a vanilla CGI, and if you can DR do that I'm sure you can run it in FastCGI and whatnot. Moreover I have seen it being used in command line tool which generates static HTML pages from a set of templates. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | Ilya Martynov (http://martynov.org/) TIV.net (http://tiv.net/) | | GnuPG 1024D/323BDEE6 D7F7 561E 4C1D 8A15 8E80 E4AE BE1A 53EB 323B DEE6 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Re: Mod_perl component based architecture
At 01:28 PM 10/17/01, Ilya Martynov wrote: On Tue, 16 Oct 2001 22:07:47 -0500 (CDT), Dave Rolsky [EMAIL PROTECTED] said: DR On Wed, 17 Oct 2001, Gunther Birznieks wrote: I would venture to say that some of the mod_perl-only toolkits have some cases of being better designed than ours, but they are mostly mod_perl only. In fact, I don't know if I know any other toolkits than ours that are not mod_perl only of the ones that were advertised on the list. DR I don't know if Mason counts as a full toolkit (its not really an app DR server) but you can certainly run Mason as a vanilla CGI, and if you can DR do that I'm sure you can run it in FastCGI and whatnot. Moreover I have seen it being used in command line tool which generates static HTML pages from a set of templates. Well so is Template Toolkit but it's still basically a content management/template engine not really an application framework. It's possible that Mason has applications written in Mason, just as you could write applications in ActiveServerPage or Cold Fusion pages, but that doesn't make ASP or Cold Fusion an Application Framework either. Or at least not a balanced MVC one. Open Interact, Smart Worker, and ours do not handle templating at all. We integrate with other packages to do that sort of management. We have frameworks that handle application logic in a fairly consistent way and this is what is meant by app framework (as opposed to template framework). Of course, I am not saying that the line isn't fuzzy especially if the template engine is quite powerful (as is the case with Mason or AxKit). But there is a line nonetheless, no?? Later, Gunther
Re: Mod_perl component based architecture
As for the remaining of the question, I've been wondering for myself if there is a MVC (model-view-controller) framework for WWW publishing in Perl ? I gather there exist quite a few for Java, but I couldn't find anything significant under Perl. Check out http://www.bivio.net/hm/why-bOP and http://petshop.bivio.net The former motivates the MVC architecture. The latter URL is a demo of Sun's J2EE blueprint demo of a Pet Store implemented using bOP, a perl application framework. It's freeware and we use it to run a large commercial website. When you visit petshop.bivio.net, at the bottom of the page, you'll see Control Logic for This Page. This is what the bOP agent (controller) uses to determine if the incoming user can access the page, what the page actually does (models and views), and any state transitions (form next or cancel). The links at the bottom of the page go to the source of this application. bOP also allows you to change the look-and-feel quite easily. Compare these two pages: http://www.bivio.com/club_cafe/mail-msg?t=1934163 http://ic.bivio.com/club_cafe/mail-msg?t=1934163 They render the same content, but in two entirely different contexts. Each look-and-feel is described in a single file, which contains color, font, URL, text, and view mappings. bOP is about 250 classes including the Pet Shop demo. It uses Oracle or Postgres, but it should be easy to port to other databases. You can also build a static site, e.g. http://www.bivio.net which doesn't require a database. SOAPBOX The J2EE architecture implements MV, not MVC imiho. Here's one of my favorite quotes from Sun's site: It is important to understand that Model, View, and Controller are usually not represented by individual classes; instead, they are conceptual subdivisions of the application. This is true for J2EE, but not true for MVC frameworks. J2EE's control flow is not a distinct element. JSPs are usually full of business logic. The whole MVC concept passed J2EE by. Even when you look at Model 2 Methodology (promoted by Apache Jakarta Turbine), the code is a mess. Here's a snippet from the reference article on Model 2: public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(false); if (session == null) { res.sendRedirect(http://localhost:8080/error.html;); } Vector buylist= (Vector)session.getValue(shopping.shoppingcart); [...] if (!action.equals(CHECKOUT)) { if (action.equals(DELETE)) { [...] String url=/jsp/shopping/EShop.jsp; [...] String url=/jsp/shopping/Checkout.jsp; The excerpt is from a single method in which they mix sessions, port numbers, hosts, error pages, URLs, button values, etc. The JSP is no better and contains lines like: optionYuan | The Guo Brothers | China | $14.95/option bQuantity: /binput type=text name=qty SIZE=3 value=1 input type=submit value=Delete input type=hidden name=action value=DELETE Note that DELETE in the JSP must be the same as DELETE in the Java. Nothing is checking that. You only know that the code doesn't work when someone hits the page. In this particular example, if you mispell DELETE in either place, the code does something, and doesn't issue an error. So much for Model 2. I wonder what Model 3 will be like. ;-) Sorry, had to get that off my chest... /SOAPBOX Cheers, Rob