On Thu, Jul 25, 2002 at 01:01:59PM -0500, James G Smith wrote: > I'm working on a fairly complex web application framework that > combines AxKit, Template Toolkit, and possibly HTML::Mason, under > mod_perl. > > Some of the goals include rapid prototyping of form-driven > applications (looking at leveraging SVG), fail-over (robustness in > the face of machine/network failures), and the ability to scale by > running on a web farm. > > I plan two main components for distribution: the framework (running > under Uttu - Uttu.pm) and the model. For now, I am calling the > application framework Gestinanna. So the framework would be > Uttu::Framework::Gestinanna and the model would be Gestinanna::* > (thinking of the MVC model of web programming). The core model would > be distributed as Gestinanna-x.xx.tar.gz.
Seems reasonable. > To allow for the rapid prototyping of form-driven applications, I am > putting together a state machine model - for now called > Gestinanna::StateMachine. It allows inheritance of edges and actions > taken upon transitions. However, the module does not require a web > environment. It is quite independent of that -- it takes data and a > context, uses Form::DataValidator to look at which edge seems most > appropriate, and triggers the transition. The application can > associate a view (TT2 file, for example) with a particular state and > use that to send the appropriate page to the client. > > My questions for now are two: > (1) should I place the state machine outside the general application > namespace and, if so, what are some suggestions for where to put > it? I am trying to place general modules in general locations. Tricky. We don't have a namespace for state machines and the 'control flow utilities' section of the module list is a mish-mash of modules: http://search-beta.cpan.org/modlist/Control_Flow_Utilities Searching on state machine is interesting: http://search-beta.cpan.org/search?mode=all&query=state+machine but offers little practical help. It seems that state machine modules have always been closely tied to other modules (POE::Session, Bio::Tools::StateMachine::AbstractStateMachine, Win32::CtrlGUI::State) Is there any chance you could reuse/extend/subclass POE::Session? Otherwise perhaps StateMachine::Gestinanna would be a reasonable name (showing the association with the Gestinanna framework) and distribute it as a separate module - if it really is separate. > (2) May I have the top-level Uttu and Gestinanna namespaces? The > first is used for the Uttu framework (http://uttu.tamu.edu/) and > framework/application distributions while the second is used for > the model modules for the Gestinanna application framework. If > this seems reasonable, I will go ahead and fill out the PAUSE > namespace request. (btw) I have submitted a request for Uttu > twice before with no comments being made on the list. Seems okay to me. Tim.