Distributed Ruby/Threads/Rinda?

Hello all,

Recently (to test my understanding of Ruby) I was rewriting a
middleware server software of my company that is written in Java
(J2EE) in Ruby.

I actually coded the core of the system and think it is pretty neat
in Ruby (and much cleaner by the way).

The problem I am facing now, having the core system in Ruby, is the
API interfaces towards that core. The system is supposed to have a
layer of different API’s so that an application programmer can access
a service running inside the core. These API layer can be almost
anything (a telnet session, a http request, a SOAP or XML-RPC
request, etc, etc, etc).

In the Java implementation this is solved by having these API’s
“talk” to the core in two ways:

  • using JMS (Java Messaging Service), i.e. packaging an incoming
    message into an JMS message and sending it to an incoming queue so
    that it can be processed. This is used for async processing.
  • directly calling an EJB that will process the incoming message and
    reply with the output of the service run. This is done for snyc
    processing.

Now my question would be the following:

How can I implement something like a JMS Queue in Ruby?
How can I make the core system be a daemon that accepts these
requests (either by a direct call to some class in the core or by a
messaging system?

Thanks a lot for the help in advance!

Cheers,

Enrique Comba R.

On 5/12/07, Enrique Comba R. [email protected] wrote:

The problem I am facing now, having the core system in Ruby, is the
that it can be processed. This is used for async processing.
messaging system?

Thanks a lot for the help in advance!

Cheers,

Enrique Comba R.

Hi Enrique,

I’m only starting to look at JMS now (in both Java and Ruby), but maybe
you
can use ActiveMQ (http://activemq.apache.org/). It’s a JMS message
broker,
but it also has support for Ruby clients.

Hope it helps,
Nick

On 12 May 2007, at 14:36, Nicholas Clare wrote:

Nick
Hey Nick,

thanks a lot, I’ll take a look at it and let you know if it is what I
am looking for!

Thank you for the link :slight_smile: