in reply to Rapid inter-machine communication on internal network

In general this is referred to as RPC -- Remote Procedure Call. RPC is a generic term for an inter-machine request/response mechanism. Clients make structured requests to a server over a network connection, then the server does some processing and returns a structured response. There are some RPC modules on CPAN, but they either wrap an existing C library and are thus unperlish and hard to use, or are too slow for serious load.

One project I've been working on needed a nice RPC library to do the exact sort of thing you're talking about (communication between a bunch of back-end servers collaborating to provide a publicly-visible service), so we created RPC::Lite to solve the problems I mentioned above. We've focused on designing something easy to use from Perl with a simple interface, while keeping performance in mind. For example, method signatures are completely optional just like in Perl itself, but perhaps a future version of the code will be able to go faster if you provide them. The client-side library has support for calling server methods asynchronously, which can help your front end remain responsive while waiting for answers from the back ends. The server-side library has support for threading, so a long-running calculation won't prevent other responses from being handled by that server.

We released a preliminary version of RPC::Lite to CPAN only last week. The version is 0.10 but the basic functionality is there and it's working great in our project. We'd love for people to grab it and see how they like it.

  • Comment on Re: Rapid inter-machine communication on internal network