ØMQ
ØMQ (також ZeroMQ, ZMQ, 0MQ) — високопродуктивна асинхронна бібліотека обміну повідомленнями, спрямована на використання у розподілених та паралельних застосунках. Бібліотека реалізує чергу повідомлень, яка, на відміну від MOM, може функціонувати без виокремленого брокера повідомлень. Програмний інтерфейс бібліотеки подібний до сокетів Берклі.
Тип | Черга повідомлень, фреймворк багатопоточності |
---|---|
Розробник | iMatix |
Стабільний випуск | 4.1.3 (17 серпня, 2015 ) |
Версії | 4.3.4 (17 січня 2021)[1] |
Репозиторій | github.com/zeromq/libzmq |
Платформа | Кросплатформна |
Мова програмування | C++ |
Ліцензія | LGPL із винятком[2] |
Вебсайт | www.zeromq.org |
ØMQ створений великою спільнотою розробників, заснованої iMatix, якій належить доменне ім'я та торгові марки. ØMQ написаний на мові програмування C++ та може використовуватися із багатьох інших мов програмування через сторонні прив'язки.
Історія
Виконавчий директор iMatix Пітер Хінт'єнс (Pieter Hintjens) зареєстрував домен zeromq.org у травні 2007 року та розпочав проект ØMQ разом із Мартіном Сустріком (Martin Sustrik), який був архітектором та головним розробником проекту до грудня 2011 року.
У березні 2010 року Хінт'єнс оголосив, що iMatix (початковий розробник протоколу AMQP) полишить робочу групу AMQP і не підтримуватиме AMQP/1.0, а сконцентрується натомість на значно простішій та швидшій технології ØMQ.[3][4]
У 2011 році CERN розглядав шляхи стандартизації підпрограмного забезпечення, яке використовувалося для управління прискорювачами частинок. Дослідження CERN порівняло дві відкриті реалізації стандарту CORBA, Ice, Apache Thrift, ØMQ, YAMI4,[5] RTI та Apache Qpid, і дало найвищу оцінку ØMQ, зокрема через її гнучкість та легку адаптованість для LynxOS.[6]
На початку 2012 року два з початкових розробників ØMQ — Мартін Сустрік та Мартін Люціна (Martin Lucina) — створили власний форк проекту під назвою Crossroads I/O.[7][8] Того ж року Мартін Сустрік розпочав роботу над власною бібліотекою nanomsg,[9] що являє собою повністю переписаний код ядра ØMQ на мові програмування C.[10]
У серпні 2012 року Донмін Ю (Dongmin Yu) оголосив про створення ним JeroMQ — перекладу коду ØMQ на мову програмування Java.[11] Продуктивність JeroMQ, станом на 2016 рік, тримається на рівні з ØMQ (в межах ±20%).[12]
Згодом були створені інші переклади оригінального коду на інші мови програмування, зокрема NetMQ для C#.[13]
У березні 2013 року Пітер Хінт'єнс оголосив новий проект протоколу «дротового рівня» ZMTP, що додав розширювані механізми безпеки до ØMQ.[14] Незабаром по тому Мартін Гуртон реалізував механізм аутентифікації та шифрування CurveZMQ[15] у ядрі ØMQ.
Процес розробки
Спільнота розробників ØMQ переважно використовує так званий «Контракт конструювання колективного коду» (К4; англ. Collective Code Construction Contract, C4)[16] як відкритий контракт розробки. «К4» натхнений процесами Вікіпедії та моделлю розробки GitHub (fork + pull). Ця схема спрямована на спрощення долучення нових дописувачів коду та зменшення залежності від старіших розробників.
Приклади застосування
Інтерфейс та сокети ZeroMQ отримали поширення в біткоїн-транзакціях для реалізації технології блокчейну[17].
Див. також
Примітки
- Release 4.3.4 — 2021.
- ØMQ Licensing
- iMatix will end OpenAMQ support by 2011. openamq-dev maillist. Архів оригіналу за 10.10.2012. Процитовано 14.07.2012.
- What is wrong with AMQP (and how to fix it). iMatix Corporation. Архів оригіналу за 17.07.2012. Процитовано 14.07.2012.
- Inspirel YAMI4. Процитовано 14.07.2012.
- Middleware Trends And Market Leaders 2011. Процитовано 8.06.2013.
- ZeroMQ and Crossroads I/O: Forking over trademarks. LWN.net. Процитовано 14.07.2012.
- Crossroads I/O. Архів оригіналу за 13.07.2012. Процитовано 14.07.2012.
- nanomsg. Процитовано 8.06.2013.
- Why should I [sic] have written ZeroMQ in C, not C++.
- jeromq - java pojo zeromq. zeromq-dev mailing list. Архів оригіналу за 31.07.2013. Процитовано 23.05.2013.
- Performance – zeromq/jeromq – GitHub (англ.)
- NetMQ. GitHub. Процитовано 28 січня 2016.
- Securing ZeroMQ: draft ZMTP v3.0 Protocol. Hintjens.com. Процитовано 23.05.2013.
- curvezmq.org
- Collective Code Construction Contract (C4.1). ZeroMQ RFCs. Процитовано 23.05.2013.
- Как следить за транзакциями биткойнов через блокчейн через nodejs?. https://answacode.com/ (рос.). Процитовано 24.09.2021.
Посилання
- zeromq.org — офіційний сайт «ØMQ».
- Martin Sustrik, Martin Lucina (January 20, 2010). 0MQ: A new approach to messaging — LWN.net. (англ.)
- Как следить за транзакциями биткоинов через блокчейн с помощью nodejs? — Answacode[1]