GigaSpaces Enterprise Edition Distributed Messaging Bus

{color:orange}GigaSpaces JMS Grid Architecture{color}

The GigaSpaces Messaging Grid is designed to provide means for transferring data and events among distributed services in a timely fashion. GigaSpaces messaging architecture consists of two main components: clustered JavaSpaces and a JMS Implementation.

Originally, these two technologies were conceived as alternative approaches to the same problem and users often had to choose between them at the design phase.

The GigaSpaces approach expands this conceptual view by providing both interfaces under the same runtime environment, thus providing users with the ability to use both API's for the same runtime, license and software package and the capability of meshing them without having to maintain two separate systems.

{color:orange}*Space Based Messaging *{color}

The JavaSpaces technology provides a simple solution for various types of messaging scenarios (point-to-point, asynchronous, synchronous, publish/subscribe, as well as workflow and content based routing) by applying different patterns on the same set of JavaSpaces API (write, read, take, notify).

GigaSpaces Enterprise Edition contains a robust messaging-bus, which supports various types of messaging scenarios (synchronous, asynchronous, pub/sub, workflow, and master/worker) through the same runtime and API. Such a high-speed, shared memory bus makes integration seamless and painless. The real-time data bus transfers thousands of messages per second over LAN or WAN, with ordered messaging (FIFO) based on JavaSpaces specifications.

{color:orange}*Multiple Messaging Configurations via One Easy Interface *{color}

Asynchronous

!http://www.gigaspaces.com/images/pr_dmb_clip_image001.gif!

The service consumer (slave) executes a "blocking read," waiting for specific instructions or material from the service producer (master). As soon as the producer sends the material, the service consumer reads it.

*Synchronous *

!http://www.gigaspaces.com/images/pr_dmb_clip_image002.gif!

The service producer (master) writes a request, then executes a "blocking read," waiting for a reply from the service consumer (slave). At the same time, the service consumer executes a "blocking read," waiting for a request from the producer. When the request appears in the space, the consumer immediately receives it and writes a response.

Peer-to-peer

!http://www.gigaspaces.com/images/pr_dmb_clip_image003.gif!

Any two processes in the network can communicate directly, with no need for a coordinator.

Publish-subscribe

!http://www.gigaspaces.com/images/pr_dmb_clip_image004.gif!

Several service consumers (slaves) ask to be notified when an object, matching a certain template, is written to the space. The service producer (master) then writes the object, and all consumers receive a notification message, which includes the object itself.

Master-worker

!http://www.gigaspaces.com/images/pr_dmb_clip_image005.gif!

A work pattern used for parallel processing, in which a master is responsible for breaking down a task into multiple jobs. Workers wait for the jobs by executing "blocking take," executing them in parallel, and writing the results back to the space. The master reads the results and aggregates them into a result.

*Brokered messaging *

!http://www.gigaspaces.com/images/pr_dmb_clip_image006.gif!

A service producer (master) writes an object with instructions or other material. A special broker "takes" (reads and erases) the object and analyzes it to determine to which service consumer (slave) it should be sent. It then writes a different "process object" to the space, which is read by the relevant service consumer.

{color:orange}*JMS Grid *{color}

The JMS Grid is a virtual JMS implementation that is built as a thin layer on top of the core JavaSpaces implementation. Using this approach, the JMS inherits the JavaSpaces capabilities of performance, clustering, scalability, and redundancy, while exposing the rich set of standard messaging APIs provided by the JMS standard.

!http://www.gigaspaces.com/images/pr_dmb_clip_image008.jpg!

{color:orange}*Virtual JMS on top of JavaSpaces cluster *{color}

The GigaSpaces Virtual JMS implementation is basically a client side view of specific entries in a space. This associative approach is a key factor in enabling the virtualization of a queue or a topic. In general, a queue or a topic is mapped to a set of entries of a specific class name - the queue/topic name ordered by the time they were written.

{quote}This thread was imported from the previous forum. For your reference, the original is [available here|http://forum.openspaces.org/thread.jspa?threadID=2316]{quote}

asked 2006-02-25 16:48:02 -0500

admin gravatar image

updated 2013-08-08 09:52:00 -0500

jaissefsfex gravatar image
edit retag flag offensive close merge delete