OSSP CVS Repository

ossp - ossp-pkg/srpc/EVAL 1.8
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/srpc/EVAL 1.8
			      Evaluation
			      ==========

o Spread, http://www.spread.org/

  Spread is a sophisticated message passing framework. The software
  itself is written in C and uses a design very similar to SRPC's: It
  is split into a permanently running daemon and a link library
  containing interface routines to that daemon for the programmer. The
  daemon will maintain so called "groups", which computers can join
  and leave. Furthermore the daemon provides group communication
  services based on TCP, UDP or Multicast-UPD. There is no actual RPC
  functionality available, but implementing such a system on top of
  Spread would be relatively trivial.

  The software seems to be actively maintained, well-written and
  documented, but unfortunately the following drawbacks kept us from
  using it:

    - Spread's license currently prohibits any commercial use, but
      according to the authors (as of April 2001) they are providing
      special license exceptions for Open Source projects and working
      on moving Spread to a commercial split of from their University
      and then releasing Spread under a real Open Source license.

    - It is not possible for peers to communicate without the daemon.
      (RSE: I'm not sure about this. If I understood the Spread guys
      correctly at ApacheCon 2001 it should be possible to run it
      without the daemon or at least with an own application-dedicated
      daemon instead of a system-dedicated daemon. We should check this
      in details).

    - The API for the programmer is somewhat messy.


o XML-RPC, http://www.xmlrpc.org/

  XML-RPC is a standardized remote procedure call framework for which
  several complying implementations exist. These implementations
  provide support for the programming languages Perl, Python, Java,
  C/C++, Lisp, PHP, Microsoft .NET, Tcl, Delphi, WebObjects and many
  more. Remote procedure calls are encoded in a portable XML
  representation and transferred via HTTP.

  The software seems to be popular and many resources dealing with
  XML-RPC exist, but for us the massive XML encoding overhead was too
  much.


o RPC2, http://www.coda.cs.cmu.edu/

  This RPC mechanism is part of the CODA network file system, but it
  can be used without the file system part. RPC2 consists of a link
  library for the programmer and a stub generator, that will create
  function descriptions, which the library can then use to call the
  described function remotely. The whole approach is very clean and
  minimalistic, but unfortunately, the code depends on liblwp -- a
  user space threading library. While threading is certainly useful on
  many occasions, we did not want to use a system that enforces
  threading. In C++, for instance, the behavior of exceptions within a
  thread are totally unspecified. Furthermore, user space threads do
  not achieve the performance of kernel threads, nor are they
  portable (RSE: Hmmmm... I'm not sure this really holds, because
  evaluation showed that 1. user-space dispatching is usually faster
  than dispatching in kernel-space and 2. GNU Pth proofed that
  user-space threading can be done in a very portable way).

o MRPC, http://www.tildeslash.org/mrpc.html

  "Modular RPC" is a minimalistic remote procedure call mechanism
  using a similar design as the original RPC: It consists of a code
  generator that will encapsulate function definitions in such a way
  that they can be called remotely with the functions provided in a
  link library. The whole system is very lean and efficient,
  marshaling is done automatically for most data types, and the
  provided documentation is sufficient.

  Unfortunately, the whole system is written in C++ and can thus not
  trivially be used in plain C or any other language.


o LinuxDoors, http://www.rampant.org/doors/

  The author discontinued development of the package in May 2001. The
  current version 0.9 is considered to be alpha quality software.


o ORBit, http://orbit-resource.sourceforge.net/

  ORBit is a CORBA 2.2-compliant object request broker. Do I need to
  say more?


o TIRPC, ftp://ftp.uu.net/networking/rpc/

  The "Transport Independent RPC" package is derived from the original
  SUN RPC and uses the TLI interface to access the network.
  Unfortunately, TLI is not widely supported; sockets rule the
  communication market. Thus, the package is not very useful for us.


o SunRPC
  rfc1050.txt
  rfc1057.txt
  rfc1790.txt
  rfc1831.txt
  rfc1833.txt
  rfc2203.txt
  rfc2695.txt


o DCERPC
  ftp://gatekeeper.dec.com/pub/DEC/DCE/


o Foreign Function Call Library
  http://clisp.cons.org/~haible/packages-ffcall.html

CVSTrac 2.0.1