|
Presumo Project
|
|
//todo::
|
Here is a list of features that still need to be completed in
the Presumo project. Please post a message to the mailing list
if you are interested in implementing any of the tasks.
- Implement persistent message recovery mechanism
Messages are currently being persisted, but the
mechanism to recover messages in the event of a
server crash has not been implemented yet.
This is not as hard as it might sound since the
persistent queue (written by Rob Cauble) already
handles the transactional details of writing
messages to disk, including correctly recovering.
Presumo needs logic to simply check for pre-existing
queues and restablish the state of the system
(as stored in the queues) before the crash.
Tasks
- Design recovery mechanism
- Implement recovery mechanism
- Automated test case to exercise persistent messages
- Point-to-point and Durable Subscriptions
Presumo will always emphasize a non-durable pub/sub
implementation that does not require any centralized
controller. Point-to-point and Durable Subscriptions requires
a centralized point of control some place in the JMS
cloud. To push the design point, Presumo will implement
point-to-point and durable subscriptions using
non-durable publish/subscribe.
A lot of work has already been done on this, but
if somebody wants to take up the task it would be
very helpful.
Tasks
- Document design
- Implement design
- Automated test for the features
- Lightweight client
A lightweight client with a minimal amount of functionality would
be beneficial to applications which must maintain a small footprint.
The simple design should extend itself to being ported to various
languages.
Tasks
- Design language independent lightweight client
- Java 1.1.x version
- C++ version?
- .Net version?
- Improve scalability of a single server
The scalability of a single server needs to be increased
greatly by decreasing the amount of threads needed per
connection.
Tasks
- Utilize Java 1.4 non-blocking I/O feature on
the server.
- Make Presumo Sessions use a thread pool (each
session currently uses one thread, and each client
is represented by a "RemoteSession" on the server).
Already completed by Dan Greff
|
|