Boost logo

Boost Users :

From: Slawomir Lisznianski (slisznianski_at_[hidden])
Date: 2005-09-18 10:51:20


Pavel Vozenilek wrote:
> Could you compare your approach to:
> http://www.codeproject.com/threads/RMI_For_Cpp.asp

Properties of the proposed library (as compared to "RMI for Cpp"):

- no need for macros.

- on the server side, interface-operations are bound to functors, at
runtime.

- interface and operations are expressed in template-metaprogramming
style, which may be less familiar (more complex) to developers.

- CORBA-like object semantics with support for "transient" instances.
For example, when you construct a client-proxy, out of a portable
stringified reference, currently URI, you are pointing at a concrete
stub/servant instance. If that stub/servant was brought down, your
reference is no longer valid and "transient" exception is thrown on any
operations against it. In other words, say TCP address and port are not
pointing at a servant yet. It takes "instance id", think of it as `this'
pointer in C++, to reach a particular servant. Why this is considered
important? Because it allows for stateful remote objects. You can
construct N-number of instances of the same class of servant, and each
one will have a distinguishing reference that the client can call.

- abstracted transport layer. Support for transports such as raw TCP,
HTTP, or Unix sockets. For example, a single servant could be reached
from different transports at the same time without knowing, nor caring,
how the request originated.

Cheers,

Slawomir


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net