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