Pini/PythonSpaces?

Cees de Groot cg at gaia.cdg.acriter.nl
Fri Jun 16 07:20:31 EDT 2000


I brought this up on the Jini mailing list, and got some interest back, so
I'm just dropping the idea here: I think it would be quite possible to 
write something with exactly the same functionality as Jini for Python. And
as a lot of people are doing very interesting things with Jini, it might
be a worthwhile project.

For people who don't know Jini, here's a short rundown: Jini provides a 
minimalistic set of services for distributed computing. For example, there
is a lookup service, which allows you to find objects by type ("give me
something that implements interface A") - the lookup service typically
is found through a multicast protocol, so you don't need any prior 
configuration on either clients or servers. There is a transaction
manager, which helps transaction participants coordinate there work. There
is the very powerful notion of leasing all resources (like lookup service
registrations), which enables the network to heal itself, get rid of
old cruft, etcetera. Finally, there's event notification for asynchronous
messaging.

JavaSpaces is a tuplespaces implementation that adds Java and Jini extensions
to the basic notion. Tuples are typed, so again you can look for tuples that
implement a given interface, and they are leased, so the space keeps itself
clean from tuples that no-one is interested in (eg., when no-one renews the
lease for them). Jini transactions are used to provide read/modify/write
variables, which are a powerful tool for implementing distributed 
algorithms.

What's needed to implement something like this is a) some type system (the
idea behind using types is that software is much better at dealing with 
type systems than arbitrary string schemes when searching for stuff) and
b) there is a notion of mobile code, because you ask for an interface
and then receive, over the network, the implementation. Both are available
under Python, so it would be quite possible to do this (some more supporting
stuff, like a standard for marshalling, good network I/O libs, etcetera are
also all there under Python). 

As I said, just an idea I had. If someone picks it up, that'd be nice.
-- 
Cees de Groot               http://www.cdegroot.com     <cg at cdegroot.com>
GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD  1986 F303 937F E098 9E8B
Forge your CipherSaber and list it: http://www.xs4all.nl/~cg/ciphersaber/



More information about the Python-list mailing list