Messaging middleware has a long lineage in computing. It has provided a dependable asynchronous means of connecting distributed systems, and effective routing based on varied schemes of message queuing. Transformation of message formats is also part of the messaging parcel.
Such message queuing methods have proved vital in banking environments. They have found less utility in Wall Street trading applications where speed is supreme. Over the years, publish-and-subscribe and multicast methods arose to speed messaging.
Performance improvements have been gained in recent years, too, by use of specialized hardware for messaging. Latency, basically the time it takes a message to travel, is the Wall Street software architect's bugbear. Although many factors, including cost, must be factored in to the system's equation, a useful rule is that high latency is bad, and low latency is good.
One of the more recent updates to message queuing takes the form of low-latency message queuing. Such latency, on Wall Street, may be measured in mere nanoseconds. "Mileage may vary" as volume is naturally a factor in operation. But Wall Street's best systems are quicker than you can blink.
Since the advent of Java Messaging System (JMS), systems have tended to support Java and JMS, among other APIs. Among systems that are associated with low latency messaging are:
- Rendezvous (from Tibco) features an in-process module that is said to embed its capabilities directly into applications. It offers centralized management of daemons, subjects and multicast groups with remote monitoring.
- The Ultra Messaging Streaming Edition (from Informatica) forges an architecture of “nothing in the middle,” removing brokers and daemons by design. It claims throughput of over 7 million messages per sec from a single sender.
- An Advanced Message Queuing Protocol-compliant (AMQP-compliant) RabbitMQ system (available as open source or commercially from VMWare/SpringSource) supports Erlang, a functional programming language, and seeks to bypass Java garbage collection issues in order to achieve fast and predictable messaging performance.
- A fairly recent entry in the low-latency message queuing game is WebSphere MQ Low Latency Messaging (from IBM). It supports one-to-many multicast and point-to-point unicast messaging, a low-latency message store for lightweight persistence and shared memory for inter-process communication.
A fast messaging system that has been emerging out of the open source milieu is ZeroMQ. Originators of AMQP messaging have built ZeroMQ to support intelligent message batching. It has been described as a messaging library, works in a manner somewhat familiar to socket programmers, and supports a wide variety of transports.