http://qs321.pair.com?node_id=143072


in reply to P5EE ... get involved!

A recent posting by Stephen to the P5EE mailing list had a current status list of his development tree P5Eex::Blue. Stephen has been a driving force in getting P5EE started and his posting should give an idea as to the layout of the project. It is not however set in stone and should be viewed as an attempt to consolidate, organize and create a consistent interface to dozens of existing CPAN modules along with new ones. P5EE has also set the minimum Perl version to 5.005_03 in realization that not systems can easily upgrade to the 5.6.x or beyond which will hopefully increase the available install base.

P5EE is attempting to bring together the power of Perl under a more consistent and stable umbrella. Previous discussion on the P5EE mailing list lead us to the conclusion that Perl is not being pushed because there are too many ways to do things and this is confusing to developers that may not have fallen deeply in love with Perl. So in order to combat that P5EE hopes to combine numerous CPAN modules at a particular version number and only allow for adding newer versions once regression testing has been done. Consistency, easier interface, set release points and stricter code testing are just some the things I hope P5EE will provide the Perl community.

P5EE will hopefully become somewhat of an easy to install addition to Perl that provides developers, administrators, etc. a stable set of Enterprise ready tools to interact with a plethora of current technologies.

The list:

######################################################################
## File: $Id: TODO,v 1.2 2002/01/24 04:17:01 spadkins Exp $
######################################################################

==========================================
= TODO   (x=done, :=inprogress, o=notdone)
==========================================
Initial Working System
 x P5EE              Top level context/config factory methods, and utilities
 x Exceptions        Exception hierarchy for P5EE
 x Context           Encapsulates the runtime context and dispatches events
 x Context::CGI            - the CGI runtime context
 x Config            Finds serialized config info from some source
 x Config::File            - from a file
 x Serializer        Transforms text to perl structure and back
 x Serializer::Ini         - from .ini file format
 x Serializer::Properties  - from Java .properties format
 x Serializer::Storable    - from Perl Storable
 x Serializer::XMLSimple   - from XML using no validation
 x Reference         Base class implementing multi-level get and set
 x Service           Base class for any pluggable service, base on an
interface
 : Repository        A service that reads and writes data to a persistent
store
 : Repository::DBI         - from a relational database via a DBI driver
 o Repository::File        - from flat text files
 o Session           Maintains session variables across events/requests
 o Session::HTMLHidden     - in an HTML hidden variable
 o Session::ApacheSessionX - using Apache::SessionX
 o Security          Provides authentication and authorization services
 o Security::Htpasswd      - authen/authz from .htpasswd and .htgroup files
 o Security::DBI           - authen/authz from tables in a DBI database
 o Security::Repository    - authen/authz from tables in a Repository
 o Widget            A persistent, stateful object, takes care of life cycle
 o Widget::Entity          - a business entity object, stored in a Repository
 o Widget::HTML            - a visual HTML object, stored in a Session
 o Template          Processor for HTML files, augmented w/ dynamic elements
 o Template::CGIFastTemplate - uses the CGI::FastTemplate processor
 o Template::TemplateToolkit - uses the Template::Toolkit processor

Initial Versions of Advanced Features
 o LogChannel        Supports logging to file or external log systems
 o LogChannel::LogDispatch   - uses Log::Dispatch
 o Messaging         Support for asynchronous (and sync) message passing
 o Messaging::SOAP           - using SOAP (via e-mail)
 o Procedure         Support procedure calls (sync only) which may be remote
 o Procedure::SOAP           - using SOAP (via HTTP)

Extending the System to Alternative Implementations
 o Context::ModPerl          - the mod_perl runtime context
 o Context::ModPerlRegistry  - the mod_perl Apache::Registry context
 o Context::SOAP             - the SOAP server context
 o Repository::BerkeleyDB    - from a transactioned Berkeley DB store
 o Repository::HTML          - from a formatted HTML page
 o Repository::SOAP          - from a remote repository

Eventually
 o Context::Cmd              - the command-line runtime context
 o Context::Daemon           - a stand-alone daemon runtime context
 o Context::FCGI             - the Fast CGI runtime context
 o Context::Gtk              - the GTK runtime context (an X application)
 o Context::POE              - POE runtime context (event-dispatch daemon)
 o Context::PPerl            - PPerl runtime context
 o Context::WxPerl           - WxPerl runtime context (a Win32 application)
 o Serializer::XML           - from XML with validation
 o Serializer::RDF           - from XML/RDF with validation
 o Session::ApacheSession    - using Apache::Session
 o Repository::LDAP          - from an LDAP store
 o Security::DCE             - authen/authz from DCE
 o Security::Kerberos        - authen/authz from Kerberos
 o Security::LDAP            - authen/authz from LDAP
 o Security::Passwd          - authen/authz from /etc/passwd, /etc/group
 o Security::Radius          - authen/authz from Radius
 o Security::SMB             - authen/authz from SMB
 o Security::SSL             - authen/authz from SSL
 o Template::ASP             - uses the Apache::ASP processor
 o Template::AxKit           - uses the AxKit processor
 o Template::Embperl         - uses the Embperl processor
 o Template::HTMLTemplate    - uses the HTML::Template processor
 o Template::Mason           - uses the HTML::Mason processor
 o Template::TextTemplate    - uses the Text::Template processor
 o Widget::Curses            - a visual Curses object, stored in a session
 o Widget::Gtk               - a visual GTK object, stored in a session
 o Widget::Wxperl            - a visual WxPerl object, stored in a session
 o Widget::SOAP              - a business entity object, running remotely
 o LogChannel::NetDaemon     - uses logging in Net::Daemon
 o LogChannel::Tivoli        - interfaces to Tivoli
 o Messaging::Jabber         - uses Jabber
 o Messaging::Mail           - uses e-mail (Mail::Box)
 o Messaging::Spread         - uses the "Spread" library
 o Messaging::Stem           - uses the "Stem" library
 o Procedure::Local          - uses a local procedure call
 o Procedure::Messaging      - uses any available asynch messaging method
 o Procedure::PlRPC          - uses PlRPC