The difference between RPCs and data query

This discussion *has* come up several times before, so it's good to
get back to basics of the differences in semantics.

The general comparison is between RPCs (as used in SOAP, XML-RPC, DCE
RPCs, CORBA, and COM) and data query mechanisms (as used in Jini, SQL,
Linda/TupleSpaces, and the Web in general, via HTTP mostly).

RPCs focus on exposing "interfaces" or APIs.  Data query focuses on
data.  The two overlap in many cases, RPCs can transfer complex data,
and data query systems can respond to and initiate actions.

RPCs tend to be "procedural", for each API someone writes a bit of
code to implement them.  Data query tends to be "functional", the data
model and constraints are defined in a schema, and access is made
through one piece of code (via an API, no less).

RPC APIs are different for every application type.  Data schemas are
different for every schema to be modeled.

The disagreements generally center around which:

 * is easier or more natural for developers to write code for.

 * scales to Internet usage better.

 * inherently favors the originator of the API or schema more.

 * is easier to provide security for or more inherently secure.

 * has more infrastructure or mindshare in place already.

 * integrate more easily or reuses more code.

Another consideration is the difference in priorities of these issues
between desktop/LAN applications and intra/Internet applications.

  -- Ken

Received on Tuesday, 9 January 2001 10:59:00 UTC