Menu

Tree [8e1fe2] default tip /
 History

Read Only access


File Date Author Commit
 OLD_APPS 2008-05-09 Michael Demmer Michael Demmer [3bd1ce] more minor reorg
 apps 2008-05-09 Michael Demmer Michael Demmer [0c8426] more reorg
 core 2008-05-13 Michael Demmer Michael Demmer [8e1fe2] use the new dispatcher mechanism for the http p...
 news 2008-05-08 Michael Demmer Michael Demmer [1209c7] add rss publisher used for session paper
 wget 2008-04-04 Michael Demmer Michael Demmer [710caf] I'm not sure what that last snapshot was based ...
 .hgignore 2008-04-04 Michael Demmer Michael Demmer [268e68] whitespace cleanup
 Makefile 2008-04-04 Michael Demmer Michael Demmer [6a85d1] update Makefile since core and periodic don't b...
 README 2008-04-04 Michael Demmer Michael Demmer [710caf] I'm not sure what that last snapshot was based ...
 README.OLD 2008-03-28 Michael Demmer Michael Demmer [f78b1b] Import snapshot of API sources from Subversion
 Rules.make 2008-04-04 Michael Demmer Michael Demmer [710caf] I'm not sure what that last snapshot was based ...

Read Me

The current code includes the following (in core/):

NetAPI.ice	- ice interface for the core API
NetAPI_ice.py	- ICE generated code
NetAPI_wrap.py 	- little wrappers to hide the fact that it's ice
SubManager.py	- server-side implementation of the core API

SimpleNet.ice 		- ice interface for SimpleNet
SimpleNet_ice.py	- ICE generated code for simplenet
SimpleNetClient.ice 	- client side simplenet implementation
SimpleNetServer.ice 	- server side simplenet implementation

There's also an example application in chat/Chat.py that implements a
multi-user chat with persistent message history.

---

To run/build, you need Ice 3.2.1 installed from http://www.zeroc.com

For the benefit of any debian (etch) users, I pre-built binary
packages since the distributed versions are too old. You can add the
following to your apt sources:

deb http://www.dtnrg.org/debian/ etch-testing contrib

Then install packages: python-zeroc-ice libzeroc-ice-dev slice2py

---

To run the system on a single host, make sure that core is in your
PYTHONPATH, then run:

% python SubManager.py

Then in some number of other shells run:

% python Chat.py foo:bar
% python Chat.py foo:bar

You should see input typed at one window appear in the other(s). If
you start a chat late, you should get all previous messages sent to
you.

---

To run on multiple hosts, you can use SimpleNet. Say the hosts are
named "alice" and "bob" and you want to run the SimpleNetServer on
bob:

bob% python SimpleNetServer.py
bob% python SubManager.py -h localhost

alice% python SubManager.py -h bob

Then on both bob and alice you can run chat and it should all get
relayed properly.

I'll try to keep a SimpleNetServer running on pisco.cs.berkeley.edu at
all times so if you want, you can just use that.

---

Limitations:

* The current prototype doesn't do any message versioning, so the
  SubManager will simply queue up messages for publications forever.

* SimpleNet doesn't filter on publication ID, so all messages end up
  going to all connected SubManager nodes.

* SimpleNet doesn't do any catch-up, so if messages were sent before
  all SubManagers connected, they won't be relayed to all noes.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.