discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUStep and Cocoa Distributed Objects compatibility


From: hns
Subject: Re: GNUStep and Cocoa Distributed Objects compatibility
Date: Sun, 22 Mar 2009 12:03:36 -0700 (PDT)
User-agent: G2/1.0

On 22 Mrz., 19:49, Richard Frith-Macdonald
<address@hidden> wrote:
> On 22 Mar 2009, at 17:31, hns wrote:
>
>
>
> > On 22 Mrz., 12:12, Richard Frith-Macdonald
> > <address@hidden> wrote:
> >> On 22 Mar 2009, at 10:23, Piotr Isajew wrote:
>
> >>> Hello
>
> >>> I would like to use Distributed Objects to communicate through the
> >>> network between Objective C GNU Step application (let's say running
> >>> on Linux) and it's Mac OS X counterpart). Does anybody have any
> >>> experience using DO in such configuration? Is GNUStep's DO
> >>> implementation compatible with Cocoa's one?
>
> >> No, the two implementations are not binary compatible, and making  
> >> them
> >> compatible would be quite a big job (though it's certainly not
> >> impossible ... as we have a binary compatible implementation of keyed
> >> coding for NIBs already, and Nikolaus Schaler has written a binary
> >> compatible version of NSSocketPort for mySTEP which GNUstep could
> >> use ... so a project to implement binary compatible DO would need to
> >> re-implement NSConnection and NSPortCoder to use those).
>
> >> Currently, for IPC between GNUstep and Cocoa I'd recommend using
> >> XMLRPC.  The GNUstep webservices library provides (as a tiny part of
> >> its functionality) an XMLRPC coder and invocation methods, and this
> >> library can be built/used either with gnustep-make (for gnustep) or
> >> with xcode (for cocoa).
>
> > As Richard mentioned there are 3 levels where compatibility would have
> > to be achieved:
>
> > 1. basic communication stream - this is the NSSocketPort
> > 2. starting and maintaining connections and referencing remote objects
> > - this is NSConnection, NSProxy and NSDistributedObject
> > 3. encode object's instance variables and the method name - this is
> > NSPortCoder which probably uses -initWIthCoder
>
> > Level 1 has an implementation in mySTEP (but not deeply tested for
> > real compatibility and robustness)
> > Level 2 is not yet compatible - but could be made with some more
> > analysis
> > Level 3 is probably impossible without turning GNUstep upside down,
> > since GNUstep encoding of objects is not compatible to Cocoa. There is
> > no documentation available and it may even be changed by Apple in
> > every release.
>
> A year or two back someone told me that Apple DO supported keyed  
> archiving for DO.
> If that's true, then we pretty much already have compatibility at  
> level 3, because we have binary compatible keyed archiving (it's used  
> to encode/decode NIBs).  What would be needed would be to reverse  
> engineer the apple stuff to be able to turn on the use of keyed coding.

>From my experiments done so far (which are difficult as long as Level
2 is not working) it does not look like NSPortCoder uses keyed coding.
But it needs much more analysis.

To analyse you must install a forwarder process that sits in the
middle of a DO socket based connection and prints all bits and bytes
is sees.

Nikolaus


reply via email to

[Prev in Thread] Current Thread [Next in Thread]