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.


In reply to Re: Rapid inter-machine communication on internal network by jmuhlich
in thread Rapid inter-machine communication on internal network by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.