OpenMAMA:
OpenMAMA Overview from OpenMAMA
You can download the presentation by clicking here
A common middleware agnostic messaging API provides several advantages:
OpenMama uses a common publish/subscribe idiom (pub/sub). In this messaging pattern the messages are not sent directly to the receivers, but published to a topic. Subscribers express interest in one or more topics, and receive only messages that interest them. This decoupling of publishers and subscribers allows for greater scalability.
OpenMAMDA (Open Middleware Agnostic Market Data API) is a framework running on top of OpenMAMA which provides a market data specific API abstracting quotes, trades, order books, option chains and more, and which provides significant functionality to simplify development of trading applications. As an extension of the core OpenMAMA functionality, OpenMAMDA is developed and maintained as part of the main project, utilizing the same governance structures, development process and resources as OpenMAMA.
Developing applications to work with market data is hard - a developer must gain a firm grasp of different data types they will be manipulating, and the variations within the data sources, even when such details are irrelevant to the application they wish to write. OpenMAMDA removes this burden and complexity from your applications, providing a consistent and efficient implementation of intricate market data structures, with a clean and concise market data model (and in the future, support for ad hoc models as well).
As a standard abstraction library for messaging, OpenMAMA integrates inter-process communication (IPC) under a single API allowing real time inter-operation between applications over a variety of transports; however, the absence of a standard representation for content diminishes much of the value of open communication. To realize the goal of an open platform for the financial services community where participants and their systems communicate seamlessly, and are agnostic as to the data source, requires an open data model to standardize content and the corresponding API to support the data model.
As the effort progresses, we envision the working group splitting into two sub-groups: one focusing on specifying and formalizing the data model itself, and the second, on defining an architecture and implementation approach for OpenMAMDA as the reference implementation for the data model. The second group will also address a potential tool chain that allows extensions of the data model and the integration of extensions into OpenMAMDA. Each group will focus on distinct tasks and work closely with one another to ensure that both reach their corresponding objectives. Although the OpenMAMDA and Open Data Model Technical Working Group is still in its infancy, initial discussions identified several goals for both the Data Model and OpenMAMDA:
Our early discussions clearly demonstrated the complexity of the problem caused by the wide variety of semantic information which exists between venues . For example, it is very difficult to normalize security statuses across multiple venues and regions. Moreover, different exchanges and data providers convey market events with different messages, message types or sequences of messages. The temporal and stateful nature of market data further complicates developing a comprehensive market data model and API. Caching, conflation, computed fields, and reference data muddy the waters further. In the face of these complex issues the working group plans to inform and narrow the scope of its long term analysis by defining short term achievable goals and experiments.
In order to determine the effort required to adapt OpenMAMDA to a different data model an analysis task is ongoing whereby we plan to pass market data from an Exegy ticker plant through OpenMAMA into OpenMAMDA to test the feasibility of modifying the current version of OpenMAMDA to normalize and process the data properly. This analysis will expose how much of the current “data model’ is hard coded into MAMDA and identify some of the challenges we might face in reinventing OpenMAMDA to work with multiple data models.
The working group is also looking at various binary representations for the data model that might be suitable for efficient use within OpenMAMDA. At the same time, we are trying to explore some possible binary representations of the data itself within OpenMAMDA to determine if they are flexible and high performance enough to meet our requirements.
We are also investigating the feasibility of setting up an OpenMAMDA and Open Data Model lab where we can test and evaluate various approaches and solutions. This environment will ideally provide market data from a variety of sources as well as well has OpenMAMA based solutions from various vendors.
Tick42, in parallel, is exploring technology to produce a tool chain that can take a data model definition and produce a publisher to subscriber demo over the OpenMama API, with data model specific classes to carry events. The idea would be that this tool chain could run over multiple bridges, including bridges that are feed handlers rather than middleware adapters.
To participate in the OpenMAMDA and Open Data Model working group please join the mailing list at: http://lists.openmama.org/mailman/listinfo