The following is a half-baked proposal for a wild idea. Please comment on
this. If the powers that be think this is OT, then please move this I
will take it elsewhere.

If this is something that is already implemented by 'Application Foo' or
'System Bar' then please let me know and you will hear no more :)

Ajit

OBJECTIVE

Provide a perl server that can execute miscellaneous perl jobs that 
will communicate with mod_perl enabled Apache kids using IPC. This
can be considered something similar to a master "Servlet" but in perl;
call it Perlet. The master Perlet can manage a pool of kid Perlets that
will be governed by the load.

MOTIVATIONS

- Modperl in Apache 1.x does not provide a good way of sharing data
  and operations on that data in an efficient manner between Apache kids.

- We often want to execute perl jobs in Apache kids but do not want to
  incur the expense of forking a perl interpreter.

- Trying to stuff everything into packages and loading in the parent
  Apache has limitations.

IMPLEMENTATION

I have no idea :). I am an intermediate perl programmer, but can take a
stab at this after getting some feedback on this RFC.

EXAMPLE USES

The following are probably a bit ambitious. #2 and #3 are something that
I can see implementing fairly easily. The most important thing would of
course be the design of the API between mod_perl Apache and a Perlet.

- Perlet::DB that will provide a pool of database connections and
  miscellaneous DB querying etc.

- Perlet::Mail that will provide asynchronous Mail handoffs

- Perlet::Data that will provide some in-memory datastore that can
  be used for looking up codes etc. Example: list of 50 states in the US
  used to populate SELECT forms in html page. list of countries.
  Anonymous hash references and subs on that data to return specific
  values. Example: numerical IDs corresponding to a SELECT list. 

- Perlet::Java::Servlet : Mechanism to communicate with Java Servlets

- Perlet::XML::Parser : XML Parser 

- Perlet::HTML::Parser : HTML Parser

- Perlet::CyberCash : Communicate with the Cybercash server

Reply via email to