FW: IPC and SRP...

Paul Baumann paulba at gemstone.com
Fri Aug 25 21:25:27 UTC 2000


The performance of SRP is about that of the VAST Swapper even though SRP
saves in a far more compact encoding and allows for object portability. BOSS
is a little faster than SRP in the latest release, but SRP has mapping and
portability features that really come in handy later in development.
Furthermore, SRP doesn't have security holes like data-driven #perform:. SRP
is also open-source (now under the Mozilla license). 

SRP does use a meta hierarchy to define a portable format for saving many
Smalltalk kernel classes. This is how SRP achieves object portability, but
don't think that all classes need some of this transformation meta behavior.
You only need to define transformation meta behavior if objects that differ
between object spaces. Rob is right that SRP doesn't define portable forms
of some objects that are inherently dialect-specific like Processes,
BlockContexts, and Semaphores. You should be able to save and load these
types of objects to the same dialect, but not cross-dialect unless you
define save or load mapping rules.

You can learn more about SRP at
http://wiki.cs.uiuc.edu/CampSmalltalk/Binary+standard+for+object+interchange
.

Paul Baumann
pbaumann at effectnet.com


> -----Original Message-----
> From: Rob Withers [mailto:withers at vnet.net]
> Sent: Thursday, August 24, 2000 11:17 PM
> To: goran.hultgren at bluefish.se
> Cc: squeak at cs.uiuc.edu; Paul Baumann
> Subject: Re: IPC and SRP...
> 
> 
> "Göran Hultgren" wrote:
> > 
> > Hi all!
> > 
> 
> Hi Göran!  It's great to see that you are interested in this.  I have
> also been looking into an 'RMI' solution and one of my big concerns is
> that it be cross-dialect.  There is a xdialect Serialization
> framework.   SRP runs - I think - on Squeak (2.7+), VW 3.x 
> and 5i, VAST
> 4.0+?, StX, Dolphin, and ObjectStudio.  Paul has said that we 
> should be
> able to decode structures from other languages like Java.  There are
> some issues with Squeak wrt Processes, BlockContexts, 
> Semaphores, and I
> believe any Class that doesn't have a rule dumps it's entire Meta
> hierarchy - this somehow pulls in Smalltalk, though 
> ProtoObject.   What
> is missing from a xdialect 'RMI' solution is xdialect Sockets and
> Streams.  Perhaps at CS at OOPSLA this will be a project.
> 
> I have attached the small extension I made to substitute a 
> handle for a
> particular class.  When a graph of objects gets encoded and one of the
> objects is of a class included in the HandleSubstitution rule, the
> object and it's assigned handle get registered in the HandleManager,
> then the handle gets encoded.   When you decode a graph of 
> objects from
> a binary stream and you find a handle, then you register that 
> handle as
> a proxy.  This is to support GC which I haven't gotten to yet.  I am
> currently migrating a small proxy front-end which will DNU the message
> to the handle and forward the msg to wherever the proxied object is (I
> hope!) - Remote, Persistent, cross-Language...
> 
> I also have a client-server framework that I adapted to use 
> SRP streams;
> it *isn't* using Flow, yet.  I would really like to see that.  I have
> some testCases.  These two pieces together, with a pumped endpoint and
> use of when:send:to: could result in a pretty robust base for IPC
> between Smalltalks.  It still needs a lot of work in naming/locators,
> exceptions and remote event registrations.  I can provide this too you
> if you want it.  I'll need some time to consolidate and test.
> 
> I hope this helps!
> 
> cheers,
> Rob
> 
> comments below...
> 
> > I have been investigating the IPC possibilities in Squeak 
> and have some questions that perhaps
> > someone would like to elaborate on:
> > 
> > 1. Fly-By-Wire and similar stuff. Anyone using it?
> 
> Is this the ORB?  I haven't tried it yet; any info would be most
> welcome.
> 
> > 2. Serialization. Anyone using it for communication? Has 
> anybody tried comparing the marshaling
> > techniques available to Squeak (SmartRefStream, SRP by Paul 
> Baumann, Segments)?
> 
> I don't know the performance measures of either SRP or 
> SmartRefStream. 
> Segments use SmartRefStreams and are really a file-based 
> module delivery
> mechanism.
> 
> > 3. Flow (former Correspondents). Anyone using it? Is it 
> EVER going to get integrated into Squeak?
> > I mean... it seems so much nicer. :-)
> 
> It is a really nice framework, minus some confusion I have about the
> Stream hierarchy replacements.  It renames the Stream hierarchy,
> OldStream, and this stepped on some subclasses I had.  I 
> believe this is
> only because it still hasn't made it into the update stream.  This may
> be because of the VM changes that recently occurred.  The NetStream is
> gorgeous.
> 
> later...
> 
> > I have only looked at these things with one eye sofar - it 
> would help to know about the major
> > differences if somebody else already has investigated them further.
> > 
> > thanks in advance, Göran
> > 
> > =====
> > Göran Hultgren, goran.hultgren at bluefish.se
> > icq#:6136722, GSM: +46 709 472152, http://www.bluefish.se
> > "First they ignore you. Then they laugh at you.
> > Then they fight you. Then you win." -- Gandhi
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Mail - Free email you can access from anywhere!
> > http://mail.yahoo.com/
> 
> -- 
> --------------------------------------------------
> Smalltalking by choice.  Isn't it nice to have one!
> 





More information about the Squeak-dev mailing list