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.