Несколько крупнейших компаний, в числе которых корпорация EMC, Банк Америки и компания NYSE Technologies, курирующая работу IT-инфраструктуры Нью-Йоркской фондовой биржи, начали развитие под крылом организации Linux Foundation нового проекта - OpenMAMA (Middleware Agnostic Messaging API), нацеленного на создание открытого API для обеспечения высокоскоростного и надёжного обмена сообщениями для финансовых и телекоммуникационных сервисов.
OpenMAMA позиционируется как независимый проект, не привязанный к определённым вендорам и предоставляющий стандартизованный открытый API для организации взаимодействия приложений через различные типы транспорта. OpenMAMA изначально создавался как проект, независимый от конкретного промежуточного ПО, позволяя пользователям легко переходить на новые middleware-технологии и приложения. Прямым конкурентом OpenMAMA выступает протокол AMQP (Advanced Message Queuing Protocol), развиваемый консорциумом, в который входят такие компании, как Red Hat, VMware, Microsoft, Software AG, StormMQ и INETCO. В настоящее время развивается несколько открытых реализации брокера AMQP, среди которых курируемый компанией VMware проект RabbitMQ, поддерживаемый фондом Apache Qpid, Joram, OpenAMQ, StormMQ. Библиотеки для работы с AMQP доступны для большинства языков программирования.
OpenMAMA рассчитан на обеспечение максимальной производительности, как с точки зрения минимизации задержек при передаче сообщений, так и с позиции пропускной способности. В качестве примера приводится опыт Нью-Йоркской фондовой биржи, чьи наработки были положены в основу OpenMAMA. Linux-инфраструктура биржи каждую секунду генерирует 1.5 миллиона котировок и 250 тысяч заказов, при скорости обработки каждой транзакции в пределах 200 микросекунд. Изначально MAMA API был предложен в 2002 году с целью предоставление банкам и хедж-фондам возможности по распространению рыночных данных вне зависимости от используемого промежуточного слоя. Это привело к сокращению времени разработки, снижению затрат и обеспечению широкой поддержки для целого ряда взаимосвязанных систем и приложений.
OpenMAMA поддерживает работу в соответствии с методом "публикации/подписки" (publish/subscribe), при котором сообщения не отправляются непосредственно получателю, а помещаются в заданную группу. Приложения-подписчики выражают интерес к получению сообщений из одной или нескольких групп, и получают из них сообщения по мере поступления уведомлений. Разделение на подписчиков и отправителей позволяет обеспечить высокую масштабируемость системы.
В настоящее время уже выпущен первый релиз пакета OpenMAMA, доступный для платформы x86, поддерживающий Linux и предоставляющий API для языка Си. Код распространяется в рамках лицензии LGPLv2. В будущем планируется обеспечить поддержку других платформ и подготовить набор промежуточного ПО (middleware) для высокоскоростной обработки большого объёма транзакций. В течение следующего года планируется подготовить биндинги для языков C++, Java и .NET, обеспечить поддержку операционных систем Windows и Solaris. Также планируется выпустить стек OpenMAMDA (Middleware Agnostic Market Data API), нацеленный на категоризацию и объединение наборов данных с целью их консолидации финансовыми приложениями.
|