schweini has asked for the wisdom of the Perl Monks concerning the following question:

hi, all.

I recently fell in love with SOAP, XMLRPC, and their kin, so i'd like to re-structure a big application i did to use them.
My app consists of various perl/Tk programs running on different machines, and a web-interface running on a central server. My guess is that it makes sense to make the perl/Tk apps just call SOAP routines on the server, and manage the results - so far, so good. But i'd like to call a couple of the routines called by these perl/Tk apps from the web-interface, too.
My problem is that AFAIK, SOAP has a lot of overhead, and calling subs which are on the same machine via SOAP is a horrendous waste of resources, which i'd like to avoid, of course.
The obvious solution would be to make the CGI-scripts simply use the module that SOAP dispatches to, but that seems rather 'messy' because that would mean that i can't e.g. but the SOAP service on some other machine, if this would be neccesary some day, and i feel name-space-woes around the corner.
So, is there some SOAP-wrapper around that intelligently notices when to use the network, and when not? If not, is there a nice way to do this?

thanks in advance,


Replies are listed 'Best First'.
Re: lightweight SOAP for local applications
by mda2 (Hermit) on Jun 17, 2005 at 19:15 UTC
    I did my application with SOAP, and love it!

    You can design your modules to interact with SOAP and without!

    I made some modules to make some actions and added wrappers Client and Server.

  • Client interact with server (add login, available test, autenticate on new() and logout on DESTROY)
  • Server make the call to my module.

    On development time you test your modules with a single script, if now you don't need SOAP, it's ok! At future when needs to implement SOAP lowest changes are needs...

    * You don't really need login/test/auth, but I think it's good for security.
    **SOAP::Lite design permit you to use remote modules similar local modules (with some restrictions, see doc for autodispatch)

    Marco Antonio

Re: lightweight SOAP for local applications
by scmason (Monk) on Jun 17, 2005 at 19:27 UTC
    Maybe you could consider using the Tk::send and Tk::recieve IPC interface for passing messages to your Tk interface on your localhost. You can do this from a non-gui app by simply making a fake widget.

    "Never take yourself too seriously, because everyone knows that fat birds dont fly" -FLC