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

Reply via email to