<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4913.1100" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>&gt;From: <A 
href="mailto:cg@cdegroot.com">cg@cdegroot.com</A> (Cees de 
Groot)<BR>&gt;Reply-To: <A 
href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</A><BR>&gt;To: 
<A 
href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</A><BR>&gt;Subject: 
Re: Alan Kay in the News<BR>&gt;Date: 30 Apr 2002 20:27:59 
+0200<BR>&gt;<BR>&gt;Mark S. Miller &lt;<A 
href="mailto:markm@caplet.com">markm@caplet.com</A>&gt; said:<BR>&gt; &gt;So 
don't be shy about proposing Squeak-based or Parcels-based serialization<BR>&gt; 
&gt;formats.<BR>&gt; &gt;<BR>&gt;Braindump:<BR>&gt;<BR>&gt;- SRP (State 
Replication Protocol) is a Smalltalk-platform-neutral<BR>&gt;protocol with some 
nice properties, and is expressly meant to be usable<BR>&gt;on platforms besides 
Smalltalk. Especially the data encoding is cool, but<BR>&gt;apart from that it 
also has good support for class evolution, 
etcetera.<BR>&gt;http://wiki.cs.uiuc.edu/CampSmalltalk/About+State+Replication+Protocol+(SRP)<BR>&gt;<BR>&gt;- 
Python has a neat serialization format that is based on some sort 
of<BR>&gt;mini-language which has textual and binary representations, support 
for<BR>&gt;custom formats and things like oid-replacements. Jim Fulton (Zope 
and<BR>&gt;formerly Smalltalk) thinks it is usable from other languages as well. 
The<BR>&gt;pickle.py module is less than 1000 lines of code.<BR>&gt;<BR>&gt;- I 
wouldn't suggest XML - all the code doing the XML parsing is probably<BR>&gt;too 
large for anything security-related.<BR>&gt;<BR>&gt;- RMI would be doable in 
Smalltalk, I think; it's well specified and<BR>&gt;the people behind RMI know 
what they were talking about so IMHO it's<BR>&gt;an OK wire protocol. The 
multiplexing makes it quite efficient from a<BR>&gt;resource-usage point of 
view. As you remark, Java serialization is a tad<BR>&gt;complex, so this might 
be a big 
job.<BR>&gt;http://java.sun.com/products/jdk/1.1/docs/guide/rmi/spec/rmi-protocol.doc.html<BR>&gt;http://java.sun.com/products/jdk/1.2/docs/guide/serialization/spec/serialTOC.doc.html<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I am currently working on reading in Java 
Serialized Files as we speak into <BR>Squeak. Right now, I have simple 
serialized java objects working (in other <BR>words, they don't override the 
serialization interface (custom serialization) nor implements 
<BR>externalizable), but I should have that working soon. <BR><BR>The 
specification becomes very grey in places (look at the definition of <BR>values) 
and they duplicate some information. It's not very well organized <BR>and it's a 
bit of a mess. <BR><BR>I was doing the serialization to get RMI working in 
Squeak. My plan is to <BR>have a Java program talk to Squeak without ever 
knowing it's a non-Java <BR>program. I know there are several issues with this 
(mainly, how to read in a <BR>Java class and have it execute and the reverse 
being true as well). But, my <BR>plan was to run Squeak possibly as a JINI 
service. I'm also helping work on <BR>the JXTA Smalltalk port project as well. 
<BR><BR>Just remember Java serialization is yucky as a format...it seems half 
cooked <BR>to me and thrown together to me. <BR><BR>Right now, it's a weekend 
project for fun. But, if anyone is interested in <BR>seeing the Java 
serialization code...I would be more than happy to send it. <BR>Warning: It's in 
a state of flux...no tests and no comments yet. But, I plan <BR>to rectify that 
situation soon...=) <BR><BR>P.S. Java serialization also changed with 1.3 (they 
write out proxies <BR>differently as well) <BR></FONT></DIV>
<DIV><BR><FONT face=Arial size=2>&gt;- The Parcel format is VisualWorks 
specific, although it probably could be<BR>&gt;ported (the problem is that the 
format has no formal specification AFAIK, so a<BR>&gt;'port' would almost 
certainly mean having to read code from VisualWorks, which<BR>&gt;brings you in 
muddy legal waters).<BR>&gt;<BR>&gt;Even though I haven't followed the 
conversation on the E list on the necessity<BR>&gt;of a text format, I dissent. 
I think that if you want a human to talk to a<BR>&gt;running E instance through 
telnet you would better open a separate connection<BR>&gt;with a minimal command 
language (maybe one that would allow you to specify an<BR>&gt;object, step by 
step, and then you enter the "send" command).<BR>&gt;<BR>&gt; &gt;7) The format 
must be compatible with our security requirements.&nbsp; In<BR>&gt; 
&gt;particular, since E is only prepared to trust mobile E code, any need 
for<BR>&gt; &gt;executable code in the serialization format must be E 
code.&nbsp; Parcels as is<BR>&gt; &gt;fails this test of course.<BR>&gt; 
&gt;<BR>&gt;In the context of heterogenous E implementations, the point of 
mobile code<BR>&gt;becomes tricky, of course :-)<BR>&gt;<BR>&gt;--<BR>&gt;Cees 
de 
Groot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</FONT><A href="http://www.cdegroot.com"><FONT face=Arial 
size=2>http://www.cdegroot.com</FONT></A><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;&nbsp; &lt;</FONT><A 
href="mailto:cg@cdegroot.com"><FONT face=Arial 
size=2>cg@cdegroot.com</FONT></A><FONT face=Arial size=2>&gt;<BR>&gt;GnuPG 
1024D/E0989E8B 0016 F679 F38D 5946 4ECD&nbsp; 1986 F303 937F E098 
9E8B<BR>&gt;<BR>------------------------------------------------<BR>Blaine 
Buxton<BR></FONT><A href="http://www.mp3.com/blainebuxton"><FONT face=Arial 
size=2>http://www.mp3.com/blainebuxton</FONT></A><BR><FONT face=Arial 
size=2>"Think! It ain't illegal yet."-George 
Clinton<BR></FONT></DIV></BODY></HTML>