[resend]

Rickard �berg wrote:
>
> [...]
>
> Excellent! At last a good argument pro-wire, and agains an API
solution.
> More like this, please.

Ok, let me chime in with more pro-wire arguments.


There are many benefits of wire ptotocols. Let me focus on one major
benefit.

A wire protocol does not constrain the implementation language. IMO,
this is why JINI will not achieve great success and why RMI-JRMP became
less important than RMI-IIOP. The "remote" side must be Java, since you
have to download the Java stubs.

There are some compelling arguments against requiring Java (or Java with
remote stub downloading):

* Many organizations want cross-language remote call capabilities.
* Many organizations won't adopt a technology if they feel it is
  a closed-end technology that won't interoperate with anything
  else (even if they don't need it to interoperate yet).
* Many embedded device developers won't support Java. Maybe the device
  has a very small footprint, or the developers feel they can better
  control the environment without a Java VM.
* Some types of Java technology won't support dynamic code loading
  (Java VM in a small-footprint device, embedded VM in a database
   system, "trust" levels that permit local code only, etc.)
* Remote stub downloading does not perform as well as local stubs.


Wire protocols enable innovation by constraining nothing except the
communication.

Imagine if web browsers were implmented with an API solution, where the
"stubs" had to be implemented as downloadable "C" shared libraries. To
view a web site, you'd first bootstrap to the site by downloading its
implementation shared library. Then your browser would load the shared
library and call the standard API calls. Just imagine the flexibility of
this system... not being constrained by HTTP or HTML. You could
implement some really cool web interfaces this way.  But of course, this
architecture would never be accepted by a broad marketplace. HTTP
constrains, but by constraining it also enables. Users don't (in
general) have to worry about what web browser will work with what web
server. All web browsers and all web servers are generally expected to
work together, because they conform to the HTTP wire protocol.


-eric

Reply via email to