[GOODIE] Client Server Framework (very basic)

Robert Withers withers at vnet.net
Tue Mar 28 21:07:45 UTC 2000


Hi everyone,

Here is a base cut at a client server framework.  I cut out chatter
(distributed object framework) so I could focus on stabilizing the core
subsystems.  I have spent the last week refactoring the locators,
resolvers, listeners, and connecters.  I would absolutely love it if
folks picked this up and started using it alpha so we can shake the
problems out and get it to production quality.  It should port to other
dialects fairly easily as well.  It's open source, of course.  The rule
seems to be that bugs get discovered in direct proportion to the number
of eyes looking at the code.  This is my pitch - I will diligently
coordinate any assistance that folks can give to this effort, in the
hopes that my passion is rewarded with a valient user base; please try
and break it - that makes me happy. :-)  (and you most certainly will!)


MOTIVATION:
-Distributed Objects between dialects


FEATURES:
-Uses the Camp Smalltalk BinaryInterop ObjectStream, which runs on 5-6
dialects.
-Provides for a reliable stream interface to sockets.
-The endpoint hierarchy has a stackable protocol stream 
-Uses a connection manager to pump accepts
-There is an InMemoryTransport, InMemoryListener, InMemoryConnecter, and
ReliableInMemoryStream to implement an inmemory transport system. 
Locators should look like:
	'comm://inmemory/4501/ObjectService' asLocator
-(others to be sure...)



BUGS:
-Dangling Service/Manager connection
-Can't always save the image
-Not very robust examples or applications (well, there is one...hey,
what time is it over there?)
-Spotty UnitTests
-Needs work in the exceptions arena.  They are thrown but not as helpful
as they could be.
-UDP???



INSTALL:
Load the BinaryInteroperability changeset.
Load the ClientServerFramework changeset.

YOu should have SUnit to run the testCase.



PROBLEM REPORTS:
1) running the Unit test twice will give you a reliable stream error the
second time.  Basically the Service doesn't shutdown cleanly.  The third
time it will work again so it seems either enough time has passed for
shutdown or the second run through will cause the manager/service to
close.

2) If you save the image after running the test, then when you reopen it
the ObjectService is spasming.  This may occur if you save after running
the test once or thrice, .. and, thus, it is the same problem as above. 
I need to try and run it 2 times then save.

3) The binary interopt stuff is probably not the latest and greatest
that Paul Baumann has.  It's in ENVY so it is tricky getting it filed
into Squeak.



I am accepting questions, advice, criticisms and fixes, perhaps even
complaints, but not until I've had my lunch...


thanks and enjoy,
Rob

-- 
--------------------------------------------------
Smalltalking by choice.  Isn't it nice to have one!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: csframework.1.tgz
Type: application/octet-stream
Size: 65929 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20000328/6a28b1d7/csframework.1.obj


More information about the Squeak-dev mailing list