[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

new project: Ruby Message System (RMS

Mark Watson

12/28/2005 7:29:00 PM

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

12 Answers

Wilson Bilkovich

12/28/2005 7:41:00 PM

0

How about this?
http://rubyforge.org/proje...
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-t...

On 12/28/05, Mark Watson <mark.watson@gmail.com> wrote:
> 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
>
>
>


Jeff Wood

12/28/2005 7:59:00 PM

0

also there are ruby bindings for spread

http://www.s...

j.

On 12/28/05, Wilson Bilkovich <wilsonb@gmail.com> wrote:
> How about this?
> http://rubyforge.org/proje...
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-t...
>
> On 12/28/05, Mark Watson <mark.watson@gmail.com> wrote:
> > 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
> >
> >
> >
>
>


--
"Remember. Understand. Believe. Yield! -> http://ruby-lang...

Jeff Wood


Mark Watson

12/28/2005 8:21:00 PM

0

Thanks for the reference Jeff. Spread looks good, but I did not notice
any reference to ruby bindings for spread. Do you have a direct link?

Thanks,
Mark

Jeff Wood wrote:
> also there are ruby bindings for spread
>
> http://www.s...
>
> j.
>

Mark Watson

12/28/2005 8:26:00 PM

0

Thanks Wilson.

I have already been looking at ActiveMQ + stomp, but I wanted something
pure ruby and light weight.

That said, I just installed the stomp gem and am now installing
ActiveMQ server on one of my development machines.

-Mark

Ara.T.Howard

12/28/2005 8:59:00 PM

0

Mark Watson

12/28/2005 9:23:00 PM

0

I used to use both a Linda-like systems and JavaSpaces, so I am
familiar with David Gelernter's ideas.

I will give rinda a try when time permits.

Thanks,
Mark

Ara.T.Howard

12/28/2005 9:33:00 PM

0

james_b

12/28/2005 9:36:00 PM

0

Mark Watson wrote:
> 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).

Any particular reason not to host it at RubyForge.org, with a gem release?

James
--

http://www.ru... - Ruby Help & Documentation
http://www.artima.c... - Ruby Code & Style: Writers wanted
http://www.rub... - The Ruby Store for Ruby Stuff
http://www.jame... - Playing with Better Toys
http://www.30seco... - Building Better Tools


Jeffrey Moss

12/28/2005 9:59:00 PM

0

I have always used mail servers to do this in the past. I find the
actionmailer class in the rails package to be pretty handy for my
messaging purposes. The mail server handles queueing, guaranteed
delivery and basic security all the app has to do is send/receive and
log bounces. There are a number of other advantages with SMTP also,
like the ability to penetrate restrictive firewalls and backup MX
records for additional reliability. I'd say you could break from the
norm and come up with a messaging package build on top of Net::SMTP.

-Jeff

On Thu, Dec 29, 2005 at 04:32:54AM +0900, Mark Watson wrote:
> 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
>
>


assaf.arkin@gmail.com

12/29/2005 10:52:00 AM

0

Or you can try:
http://rubyforge.org/projects/rel...

Lightweight reliable messaging in Ruby, support for disk and database
store (right now MySQL, but I'm moving the code to use ActiveRecords),
message selectors, priority queues, delivery semantics, transactions.

assaf