Pub/Sub Messaging Solutions:
At its core OpenMAMA is designed to enable developers to write topic based publisher/subcriber messaging applications. Publishers send messages to a given topic, typically a string identifier such as "IBM", without any knowledge of the recipients (subscribers). Subscribing applications create subscriptions on topics of interest and receive all messages from all publishers for that topic. How the messages are constructed and transported is completely opaque to the client application (both at the publisher and subscriber side), meaning they do not need to understand the details of the underlying messaging system, and meaning they can easily switch one for another depending on their requirements.
OpenMAMA also supports request-reply messaging in which a publisher publishes a special request message to all subscribers on a topic. When subscribers receive the request, they have the option of replying to the publisher. In this case the reply is point-to-point and only the original publisher receives. The request, however, is broadcast on the topic and received by all subsribers.
These well defined pub/sub semantics then allow OpenMAMA to act as a framework for building more complex systems. For example, within the market data domain in which it was originally developed, OpenMAMA has been successfully used for the development of:
Order Execution Systems:
By providing an abstraction layer above the semantics of the underlying middleware, developers of order execution systems no longer need to be concerned with the transport mechanism used by their data feed - they simply need to know the source and symbol name which they are interested in. This allows them to spend more time focused on writing the logic for their trading strategies rather than being concerned with the intricacies of locked in middleware platforms. Similarly, when a transition is required, developers don't need to spend time learning a totally new platform, or indeed making any changes at all - they simply point to a new bridge library and begin receiving data.
Desktop Trading Systems:
Similarly, OpenMAMA can be utilised by developers of desktop trading systems to provide real time access to market data, with all the advantages mentioned previously. As a high performance, low overhead API, OpenMAMA can be integrated directly into the event loop of GUI applications, providing real time data direct to end users.
Information Recording and Tick Capture Systems:
Due to it's flexible and scalable architecture, OpenMAMA makes a perfect choice for Tick Capture and Information Recording systems, whether as a mechanism for recording full tick history, or maintaining records for required for regulatory control. This applies equally to enterprise scale market data tick capture solutions as to open source databases utilising the latest NoSQL technologies.