[e-lang] [RFP] cross-language object serialization (E <--->
vze2729k at verizon.net
Mon Jan 20 01:10:59 UTC 2003
On Sunday, Jan 19, 2003 6:55 PM, Robert Withers wrote:
> I took some time and looked at the CDR format and tried to equate it
> to the E message format. A CDR defines a request (regular, lookup,
> cancel) where there is some header info (msg type, byteorder, request
> id) and then a receiverId, an operation, and arguments. There are
> specific encodings defined for each of these...they are almost all
> integers or bytes/string
> In an E "DeliverOp" message, there is a command code (DeliverOp), a
> receiverId, a selector (or verb), arguments. There is also an
> answerIndex and a reader, I believe. The problem is that all of this
> is serialized using a java serializer, which squeak doesn't have one of.
> The CDR request format (GIOPMessage), probably doesn't map into CapTP,
> but it does have a standard encoding of this header info. Maybe we
> could create a GIOPCapDeliverMessage, etc. All of the arguments could
> certainly be CDR encoded, but CORBA also needs to exchange operation
> signature definitions, so we can unmarshall the objects correctly.
> WOS also requires a doc-code, it seems.
I'd like to point out that this description collapses two concepts
that would be better kept separate for this discussion. CDR is
a common serialization specification for basic and constructed
IDL types. As I (and the CORBA Core specification) use it, CDR
specifies no message formats. Quoting from the CORBA Core spec:
"CDR is a transfer syntax, mapping from data types defined
in OMG IDL to a bicanonical, low-level representation for
transfer between agents."
The specification of the messages that are transferred between
ORBS - including their header and payload formats (marshalled
using CDR rules) - goes under the name GIOP (Generic Inter-ORB
I want to make this distinction because I *strongly* believe that
VatTP/CapTP is an equivalent but (from a security perspective)
technically superior alternative to GIOP that I believe would
benefit from using CDR as its transfer syntax.
Thus, the most effective approach would be to respecify the
VatTP/CapTP messages in terms of CDR encapsulations, which is,
of course, most effectively done by writing them in OMG IDL.
This would allow the (un)marshalling code to be automatically
generated using the free open source IDL compilers that exist
for most major programming languages.
Regarding the operation signatures, we could adopt the
CORBA Typecode specification as well and require that all
objects provide a remote Miranda method for acquiring a type
specification of the complete interface that is exported by
the object. I understand that this is the approach taken by
the CapIDL team in order to eliminate the requirement for an
Interface Repository - and the attendant trust issues that
it would bring.
> glad to hear it, David. I think there may now be two
> advocates :)
As my daughter would say: Awe-Soooooommme!! :-D
More information about the Squeak-dev