The following module was proposed for inclusion in the Module List:
modid: Apache::AppCluster DSLIP: bdpOg description: Client/Srvr module for Apache app clustering userid: MAUNDER (Mark D. Maunder) chapterid: 16 (Server_and_Daemon_Utilities) communities: mod_perl mailing list similar: SOAP::Lite rationale: These modules (client/server) allow one to use apache and mod_perl as a clustered/distrubited app server spawning remote processes/requests in paralel. It allows you to set up a client object locally and then register 'requests' with it. Each request is a function call (and data structure) that will be sent to a remote AppCluster server via a POST (using freeze/thaw for encoding) and will be evaled on that server. The results are returned, decoded and are accessable for each 'request' that was registered with the object using an hash index. The client module can be used under mod_perl or as standalone. The server component must run under mod_perl as a handler for a <Location> and wont interfere with any other handlers. The server receives a method name in a package namespace e.g. Apache::MainHandler::do_something() and a scalar reference containing a data structure. The server then eval's the code and handles any errors in the called module gracefully returning the resulting data or error code to the client. All modules that will be called by the server are registered in httpd.conf and are preloaded by the server for performance. The client uses non-blocking sockets to send off all requests at the same time (in rapid succession at least) so all processing on remote 'app servers' happens simultaneously. Results are then collected simultaneously from all sockets as they are received (loops through non-blocking sockets collecting data until all is received or a timeout occurs). When registering requests you specify the remote server and port for each request so you can have 1000 remote methods being called on 100 seperate app servers all processing at the same time and being consolidated on a single front end server within a single object. This was inspired by SOAP. Every implementation of SOAP I've come accross uses blocking sockets. So this allows you to do remote method calls on an app server in paralel while still having a single thread of execution in the calling process. You can also pass and receive Perl data structures of arbritary complexity to and from the remote server since freeze/thaw is used for encoding. enteredby: MAUNDER (Mark D. Maunder) enteredon: Fri Jan 4 23:37:35 2002 GMT The resulting entry would be: Apache:: ::AppCluster bdpOg Client/Srvr module for Apache app clustering MAUNDER Thanks for registering, The Pause Team PS: The following links are only valid for module list maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=f0000000_b282a37e17268ae8&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=f0000000_b282a37e17268ae8&SUBMIT_pause99_add_mod_insertit=1