|
Boost : |
From: Slawomir Lisznianski (slisznianski_at_[hidden])
Date: 2005-09-18 08:54:12
Maciej Sobczak wrote:
>>no cross-language support
>
>
> That's bad, in my opinion. This excludes most of the useful applications
> of RMI in distributed systems,
As already mentioned, there are already libraries (or I should say,
platforms, as they come with misc tools such as interface language
compilers) that do just that. Having cross-language support requires
external interfacing language and use of a subset of native-language
features.
Here, the goal is to support virtually any C++ type, including user
types, (say, compatible with Boost Serialization) to be marshallable
without having to map it to some common "wire" type.
> How do you plan to solve the problem of double (and any other type for
> that matter) having implementation-defined size (and even representation)?
If we were to use Boost Serialization, the problem of type sizes and
endianess would imply use of text serialization, at the cost of
performance. Unless of course BSL extends its archiving support for
XDR-like format.
> Apart from that, how do you plan to encode *names* of messages, if in
> the code they exist only as compile-time names of types? The server has
> to somehow map incoming message to one of the registered operations. How?
Each operation is part of an interface type, and has a unique id (enum)
within that interface. The id sent over the wire which is then used on
the server side to dispatch the operation to the bound functor. The
client and server sides are assumed to share the same interface def.
Cheers,
Slawomir
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk