M
Mark Watson
I have relied on guarenteed delivery asynchronous messaging to build
large scale systems for 20 years. I was surprised when I could not find
something simular to Java's JMS for Ruby so I decided to build my own
and release the server under a GPL license and the client libraries
under a LGPL license. When I have code to release it will be in the
usual place (www.markwatson.com/opensource).
If I am reinventing the wheel, please let me know! I only plan on
implementing what I need, but maybe when there is a public code base
other people might contribute. This project is in the planning stage
right now. Here are some rough notes:
1. unlike Java JMS, there is currently no planned support for publish
and subscribe
2. the primary data structure of RMS is a shared collection of named
message queues
3. there is currently no planned support for security: it is
anticipated that enterprise applications will use RMS behind a
firewall. very limited security will be provided by an optional
configuration file that specifies allowed IPs for clients.
4. operations supported:
create_queue(name)
delete_queue(name)
send_message(queue, message)
register_listener(queue, a_listener)
note: a_listener object must be able to respond to the message:
receive_message(message)
5. sent messages are persisted using a database or a flat file and must
be serializable
6. once a message is delivered to all registered listeners for a queue
the message is deleted from persistent store
7. eventually, I would like to support transparent interoperability
with ActiveMQ via stump so Ruby code could interoperate with systems
written in different languages that use ActiveMQ.
I would appreciate any suggestions, ideas, etc.
Thanks,
Mark
large scale systems for 20 years. I was surprised when I could not find
something simular to Java's JMS for Ruby so I decided to build my own
and release the server under a GPL license and the client libraries
under a LGPL license. When I have code to release it will be in the
usual place (www.markwatson.com/opensource).
If I am reinventing the wheel, please let me know! I only plan on
implementing what I need, but maybe when there is a public code base
other people might contribute. This project is in the planning stage
right now. Here are some rough notes:
1. unlike Java JMS, there is currently no planned support for publish
and subscribe
2. the primary data structure of RMS is a shared collection of named
message queues
3. there is currently no planned support for security: it is
anticipated that enterprise applications will use RMS behind a
firewall. very limited security will be provided by an optional
configuration file that specifies allowed IPs for clients.
4. operations supported:
create_queue(name)
delete_queue(name)
send_message(queue, message)
register_listener(queue, a_listener)
note: a_listener object must be able to respond to the message:
receive_message(message)
5. sent messages are persisted using a database or a flat file and must
be serializable
6. once a message is delivered to all registered listeners for a queue
the message is deleted from persistent store
7. eventually, I would like to support transparent interoperability
with ActiveMQ via stump so Ruby code could interoperate with systems
written in different languages that use ActiveMQ.
I would appreciate any suggestions, ideas, etc.
Thanks,
Mark