ज़ीरोएमक्यू: Difference between revisions

From Vigyanwiki
(Created page with "{{Primary sources|date=July 2010}} {{Infobox software | name = | logo = <!-- [[File: ]] --> | author = | developer = iMatix | released = <!-- {{Start date|YYYY|MM|DD}} --> |...")
 
No edit summary
Line 1: Line 1:
{{Primary sources|date=July 2010}}
{{Infobox software
{{Infobox software
| name =  
| name =  
Line 18: Line 17:
}}
}}


ZeroMQ (जिसे ØMQ, 0MQ या ZMQ भी लिखा जाता है) एक अतुल्यकालिक [[संदेश देना]] लाइब्रेरी है, जिसका उद्देश्य वितरित एप्लिकेशन या समवर्ती अनुप्रयोगों में उपयोग करना है। यह एक संदेश कतार प्रदान करता है, लेकिन [[संदेश-उन्मुख मिडलवेयर]] के विपरीत, एक ज़ीरोएमक्यू सिस्टम एक समर्पित [[संदेश दलाल]] के बिना चल सकता है; नाम में शून्य शून्य ब्रोकर के लिए है।<ref>{{Cite web|url=https://zeromq.org/get-started/|title = Get started}}</ref> लाइब्रेरी का एपीआई [[बर्कले सॉकेट]] के समान डिज़ाइन किया गया है।
ZeroMQ (जिसे ØMQ, 0MQ या ZMQ भी लिखा जाता है) अतुल्यकालिक [[संदेश देना]] लाइब्रेरी है, जिसका उद्देश्य वितरित एप्लिकेशन या समवर्ती अनुप्रयोगों में उपयोग करना है। यह संदेश कतार प्रदान करता है, लेकिन [[संदेश-उन्मुख मिडलवेयर]] के विपरीत, ज़ीरोएमक्यू सिस्टम समर्पित [[संदेश दलाल]] के बिना चल सकता है; नाम में शून्य शून्य ब्रोकर के लिए है।<ref>{{Cite web|url=https://zeromq.org/get-started/|title = Get started}}</ref> लाइब्रेरी का एपीआई [[बर्कले सॉकेट]] के समान डिज़ाइन किया गया है।


ZeroMQ को iMatix द्वारा स्थापित योगदानकर्ताओं के एक बड़े समुदाय द्वारा विकसित किया गया है, जो डोमेन नाम और ट्रेडमार्क रखता है। कई लोकप्रिय प्रोग्रामिंग भाषाओं के लिए तृतीय-पक्ष बाइंडिंग हैं।
ZeroMQ को iMatix द्वारा स्थापित योगदानकर्ताओं के बड़े समुदाय द्वारा विकसित किया गया है, जो डोमेन नाम और ट्रेडमार्क रखता है। कई लोकप्रिय प्रोग्रामिंग भाषाओं के लिए तृतीय-पक्ष बाइंडिंग हैं।


==प्रौद्योगिकी==
==प्रौद्योगिकी==
ज़ीरोएमक्यू एपीआई सॉकेट (पारंपरिक [[इंटरनेट सॉकेट]] और [[यूनिक्स डोमेन सॉकेट]] पर एक प्रकार का सामान्यीकरण) प्रदान करता है, जिनमें से प्रत्येक [[संचार समापन बिंदु]] के बीच कई-से-कई कनेक्शन का प्रतिनिधित्व कर सकता है। संदेश-वार ग्रैन्युलैरिटी के साथ काम करते हुए, उन्हें एक [[ संदेश भेजने का पैटर्न ]] का उपयोग करने की आवश्यकता होती है, और वे विशेष रूप से उस तरह के पैटर्न के लिए अनुकूलित होते हैं।
ज़ीरोएमक्यू एपीआई सॉकेट (पारंपरिक [[इंटरनेट सॉकेट]] और [[यूनिक्स डोमेन सॉकेट]] पर प्रकार का सामान्यीकरण) प्रदान करता है, जिनमें से प्रत्येक [[संचार समापन बिंदु]] के बीच कई-से-कई कनेक्शन का प्रतिनिधित्व कर सकता है। संदेश-वार ग्रैन्युलैरिटी के साथ काम करते हुए, उन्हें [[ संदेश भेजने का पैटर्न |संदेश भेजने का पैटर्न]] का उपयोग करने की आवश्यकता होती है, और वे विशेष रूप से उस तरह के पैटर्न के लिए अनुकूलित होते हैं।


मूल ZeroMQ पैटर्न हैं:
मूल ZeroMQ पैटर्न हैं:
;अनुरोध–प्रतिक्रिया|अनुरोध–उत्तर
;अनुरोध–प्रतिक्रिया|अनुरोध–उत्तर
:ग्राहकों के एक समूह को सेवाओं के एक समूह से जोड़ता है। यह एक दूरस्थ प्रक्रिया कॉल और कार्य वितरण पैटर्न है।
:ग्राहकों के समूह को सेवाओं के समूह से जोड़ता है। यह दूरस्थ प्रक्रिया कॉल और कार्य वितरण पैटर्न है।
;प्रकाशित करें-सदस्यता लें पैटर्न|प्रकाशित करें-सदस्यता लें
;प्रकाशित करें-सदस्यता लें पैटर्न|प्रकाशित करें-सदस्यता लें
:प्रकाशकों के एक समूह को ग्राहकों के एक समूह से जोड़ता है। यह एक डेटा वितरण पैटर्न है.
:प्रकाशकों के समूह को ग्राहकों के समूह से जोड़ता है। यह डेटा वितरण पैटर्न है.
;पुश-पुल (पाइपलाइन)
;पुश-पुल (पाइपलाइन)
:नोड्स को फैन-आउट/फैन-इन पैटर्न में जोड़ता है जिसमें कई चरण और लूप हो सकते हैं। यह एक [[समानांतर कंप्यूटिंग]] कार्य वितरण और संग्रह पैटर्न है।
:नोड्स को फैन-आउट/फैन-इन पैटर्न में जोड़ता है जिसमें कई चरण और लूप हो सकते हैं। यह [[समानांतर कंप्यूटिंग]] कार्य वितरण और संग्रह पैटर्न है।
;विशेष जोड़ी
;विशेष जोड़ी
:दो सॉकेट को एक विशेष जोड़ी में जोड़ता है। (यह विशिष्ट उपयोग के मामलों के लिए एक उन्नत निम्न-स्तरीय पैटर्न है।)
:दो सॉकेट को विशेष जोड़ी में जोड़ता है। (यह विशिष्ट उपयोग के मामलों के लिए उन्नत निम्न-स्तरीय पैटर्न है।)


प्रत्येक पैटर्न एक विशेष नेटवर्क टोपोलॉजी को परिभाषित करता है। अनुरोध-उत्तर एक तथाकथित सेवा बस को परिभाषित करता है, प्रकाशित-सदस्यता एक डेटा वितरण ट्री को परिभाषित करता है, और पुश-पुल समानांतर पाइपलाइन को परिभाषित करता है। सभी पैटर्न जानबूझकर इस तरह से डिज़ाइन किए गए हैं कि वे असीमित रूप से स्केलेबल हों और इस प्रकार इंटरनेट पैमाने पर प्रयोग करने योग्य हों।<ref>{{Cite web |url=http://www.250bpm.com/hits |title=स्केलेबिलिटी परत इंटरनेट स्टैक को प्रभावित करती है|access-date=2013-09-04 |archive-date=2019-05-28 |archive-url=https://web.archive.org/web/20190528130558/http://250bpm.com/hits |url-status=dead }}</ref>
प्रत्येक पैटर्न विशेष नेटवर्क टोपोलॉजी को परिभाषित करता है। अनुरोध-उत्तर तथाकथित सेवा बस को परिभाषित करता है, प्रकाशित-सदस्यता डेटा वितरण ट्री को परिभाषित करता है, और पुश-पुल समानांतर पाइपलाइन को परिभाषित करता है। सभी पैटर्न जानबूझकर इस तरह से डिज़ाइन किए गए हैं कि वे असीमित रूप से स्केलेबल हों और इस प्रकार इंटरनेट पैमाने पर प्रयोग करने योग्य हों।<ref>{{Cite web |url=http://www.250bpm.com/hits |title=स्केलेबिलिटी परत इंटरनेट स्टैक को प्रभावित करती है|access-date=2013-09-04 |archive-date=2019-05-28 |archive-url=https://web.archive.org/web/20190528130558/http://250bpm.com/hits |url-status=dead }}</ref>
सॉकेट के माध्यम से किसी भी संदेश को डेटा के एक अपारदर्शी [[ब्लॉब (कंप्यूटिंग)]] के रूप में माना जाता है। किसी ग्राहक को डिलीवरी को ब्लॉब लीडिंग स्ट्रिंग द्वारा स्वचालित रूप से फ़िल्टर किया जा सकता है। उपलब्ध संदेश ट्रांसपोर्ट में [[ प्रसारण नियंत्रण प्रोटोकॉल ]], [[व्यावहारिक जनरल मल्टीकास्ट]] (विश्वसनीय मल्टीकास्ट), [[ अंतःप्रक्रम संचार ]] (इंटर-प्रोसेस कम्युनिकेशन) और इंटर-थ्रेड कम्युनिकेशन (आईटीसी) शामिल हैं।
सॉकेट के माध्यम से किसी भी संदेश को डेटा के अपारदर्शी [[ब्लॉब (कंप्यूटिंग)]] के रूप में माना जाता है। किसी ग्राहक को डिलीवरी को ब्लॉब लीडिंग स्ट्रिंग द्वारा स्वचालित रूप से फ़िल्टर किया जा सकता है। उपलब्ध संदेश ट्रांसपोर्ट में [[ प्रसारण नियंत्रण प्रोटोकॉल |प्रसारण नियंत्रण प्रोटोकॉल]] , [[व्यावहारिक जनरल मल्टीकास्ट]] (विश्वसनीय मल्टीकास्ट), [[ अंतःप्रक्रम संचार |अंतःप्रक्रम संचार]] (इंटर-प्रोसेस कम्युनिकेशन) और इंटर-थ्रेड कम्युनिकेशन (आईटीसी) शामिल हैं।


ज़ीरोएमक्यू कोर लाइब्रेरी अपने आंतरिक थ्रेडिंग मॉडल के कारण बहुत अच्छा प्रदर्शन करती है, और स्वचालित संदेश बैचिंग तकनीक का उपयोग करके थ्रूपुट के मामले में पारंपरिक टीसीपी अनुप्रयोगों को बेहतर प्रदर्शन कर सकती है।<ref>{{cite web|title=How come ØMQ has higher throughput than TCP although it's built on top of TCP?|url=http://www.zeromq.org/area:faq#toc6|work=ZeroMQ FAQ|access-date=8 June 2013}}</ref><ref name=cern>{{cite web|title=Middleware Trends And Market Leaders 2011|url=https://cds.cern.ch/record/1391410?ln=en|access-date=8 June 2013}}</ref>
ज़ीरोएमक्यू कोर लाइब्रेरी अपने आंतरिक थ्रेडिंग मॉडल के कारण बहुत अच्छा प्रदर्शन करती है, और स्वचालित संदेश बैचिंग तकनीक का उपयोग करके थ्रूपुट के मामले में पारंपरिक टीसीपी अनुप्रयोगों को बेहतर प्रदर्शन कर सकती है।<ref>{{cite web|title=How come ØMQ has higher throughput than TCP although it's built on top of TCP?|url=http://www.zeromq.org/area:faq#toc6|work=ZeroMQ FAQ|access-date=8 June 2013}}</ref><ref name=cern>{{cite web|title=Middleware Trends And Market Leaders 2011|url=https://cds.cern.ch/record/1391410?ln=en|access-date=8 June 2013}}</ref>
ZeroMQ ZMTP, ZeroMQ संदेश स्थानांतरण प्रोटोकॉल लागू करता है।<ref>{{cite web|title=ज़ीरोएमक्यू संदेश स्थानांतरण प्रोटोकॉल|url=http://rfc.zeromq.org/spec:23|access-date=8 June 2013}}</ref> ZMTP बैकवर्ड इंटरऑपरेबिलिटी, एक्स्टेंसिबल सुरक्षा तंत्र, कमांड और संदेश फ़्रेमिंग, कनेक्शन मेटाडेटा और अन्य ट्रांसपोर्ट-स्तरीय कार्यक्षमता के लिए नियमों को परिभाषित करता है। परियोजनाओं की बढ़ती संख्या पूर्ण ZeroMQ कार्यान्वयन के उपयोग के विकल्प के रूप में सीधे ZMTP को लागू करती है।<ref>{{cite web|title=GitHub Search: ZMTP|website = [[GitHub]]|url=https://github.com/search?q=zmtp&ref=cmdform|access-date=8 June 2013}}</ref>
ZeroMQ ZMTP, ZeroMQ संदेश स्थानांतरण प्रोटोकॉल लागू करता है।<ref>{{cite web|title=ज़ीरोएमक्यू संदेश स्थानांतरण प्रोटोकॉल|url=http://rfc.zeromq.org/spec:23|access-date=8 June 2013}}</ref> ZMTP बैकवर्ड इंटरऑपरेबिलिटी, एक्स्टेंसिबल सुरक्षा तंत्र, कमांड और संदेश फ़्रेमिंग, कनेक्शन मेटाडेटा और अन्य ट्रांसपोर्ट-स्तरीय कार्यक्षमता के लिए नियमों को परिभाषित करता है। परियोजनाओं की बढ़ती संख्या पूर्ण ZeroMQ कार्यान्वयन के उपयोग के विकल्प के रूप में सीधे ZMTP को लागू करती है।<ref>{{cite web|title=GitHub Search: ZMTP|website = [[GitHub]]|url=https://github.com/search?q=zmtp&ref=cmdform|access-date=8 June 2013}}</ref>
==इतिहास==
==इतिहास==
iMatix के सीईओ [[पीटर हिंटजेन्स]] ने मई 2007 में Zeromq.org डोमेन पंजीकृत किया और मार्टिन सुस्ट्रिक के साथ मिलकर ZeroMQ प्रोजेक्ट शुरू किया, जो दिसंबर 2011 तक इसके वास्तुकार और प्रमुख डेवलपर थे।
iMatix के सीईओ [[पीटर हिंटजेन्स]] ने मई 2007 में Zeromq.org डोमेन पंजीकृत किया और मार्टिन सुस्ट्रिक के साथ मिलकर ZeroMQ प्रोजेक्ट शुरू किया, जो दिसंबर 2011 तक इसके वास्तुकार और प्रमुख डेवलपर थे।


30 मार्च 2010 को, हिंटजेन्स ने घोषणा की कि iMatix (उन्नत संदेश कतार प्रोटोकॉल का मूल डिजाइनर) AMQP कार्यसमूह छोड़ देगा और काफी सरल और तेज़ ZeroMQ के पक्ष में AMQP/1.0 का समर्थन करने की योजना नहीं बनाई थी।<ref>{{cite web|title=iMatix will end OpenAMQ support by 2011|publisher=openamq-dev maillist|url=http://lists.openamq.org/pipermail/openamq-dev/2010-March/001598.html|access-date=5 September 2018|archive-url=https://web.archive.org/web/20160305155601/http://lists.openamq.org/pipermail/openamq-dev/2010-March/001598.html|archive-date=2016-03-05}}</ref><ref>{{cite web|title=एएमक्यूपी में क्या खराबी है (और इसे कैसे ठीक करें)|url=http://www.imatix.com/articles:whats-wrong-with-amqp|publisher=iMatix Corporation|access-date=14 July 2012}}</ref>
30 मार्च 2010 को, हिंटजेन्स ने घोषणा की कि iMatix (उन्नत संदेश कतार प्रोटोकॉल का मूल डिजाइनर) AMQP कार्यसमूह छोड़ देगा और काफी सरल और तेज़ ZeroMQ के पक्ष में AMQP/1.0 का समर्थन करने की योजना नहीं बनाई थी।<ref>{{cite web|title=iMatix will end OpenAMQ support by 2011|publisher=openamq-dev maillist|url=http://lists.openamq.org/pipermail/openamq-dev/2010-March/001598.html|access-date=5 September 2018|archive-url=https://web.archive.org/web/20160305155601/http://lists.openamq.org/pipermail/openamq-dev/2010-March/001598.html|archive-date=2016-03-05}}</ref><ref>{{cite web|title=एएमक्यूपी में क्या खराबी है (और इसे कैसे ठीक करें)|url=http://www.imatix.com/articles:whats-wrong-with-amqp|publisher=iMatix Corporation|access-date=14 July 2012}}</ref>
2011 में, [[CERN]], CERN त्वरक को संचालित करने के लिए उपयोग किए जाने वाले मिडलवेयर समाधानों को एकीकृत करने के तरीकों की जांच कर रहा था। CERN अध्ययन ने [[CORBA]], [[इंटरनेट संचार इंजन]], [[अपाचे थ्रिफ्ट]], ZeroMQ, YAMI4, के दो ओपन सोर्स कार्यान्वयन की तुलना की।<ref>{{cite web|title=Inspirel YAMI4|url=http://www.inspirel.com/yami4|access-date=14 July 2012}}</ref> [[रन-टाइम इन्फ्रास्ट्रक्चर (सिमुलेशन)]], और [[ अपाचे Qpid ]] (एएमक्यूपी) और इसकी बहुमुखी प्रतिभा के लिए जीरोएमक्यू को उच्चतम स्कोर मिला, जिसमें [[लिंक्सओएस]] के लिए इसकी आसान अनुकूलन क्षमता भी शामिल है।<ref name=cern />
 
2011 में, [[CERN]], CERN त्वरक को संचालित करने के लिए उपयोग किए जाने वाले मिडलवेयर समाधानों को एकीकृत करने के तरीकों की जांच कर रहा था। CERN अध्ययन ने [[CORBA]], [[इंटरनेट संचार इंजन]], [[अपाचे थ्रिफ्ट]], ZeroMQ, YAMI4, के दो ओपन सोर्स कार्यान्वयन की तुलना की।<ref>{{cite web|title=Inspirel YAMI4|url=http://www.inspirel.com/yami4|access-date=14 July 2012}}</ref> [[रन-टाइम इन्फ्रास्ट्रक्चर (सिमुलेशन)]], और [[ अपाचे Qpid |अपाचे Qpid]] (एएमक्यूपी) और इसकी बहुमुखी प्रतिभा के लिए जीरोएमक्यू को उच्चतम स्कोर मिला, जिसमें [[लिंक्सओएस]] के लिए इसकी आसान अनुकूलन क्षमता भी शामिल है।<ref name="cern" />


2012 की शुरुआत में, दो मूल डेवलपर्स ने ज़ीरोएमक्यू को क्रॉसरोड्स I/O के रूप में विकसित किया।<ref>{{cite web|title=ZeroMQ and Crossroads I/O: Forking over trademarks|url=https://lwn.net/Articles/488732/|publisher=[[LWN.net]]|access-date=14 July 2012}}</ref><ref>{{cite web|title=Crossroads I/O|url=http://www.crossroads.io/|access-date=14 July 2012}}</ref> मार्टिन सस्ट्रिक ने नैनोएमएसजी शुरू किया है,<ref>{{cite web|title=nanomsg|url=http://nanomsg.org/|access-date=8 June 2013}}</ref> ZeroMQ कोर लाइब्रेरी का पुनर्लेखन।<ref>{{cite web|title=Why should I [sic] have written ZeroMQ in C, not C++|url=http://250bpm.com/blog:4}}</ref>
2012 की शुरुआत में, दो मूल डेवलपर्स ने ज़ीरोएमक्यू को क्रॉसरोड्स I/O के रूप में विकसित किया।<ref>{{cite web|title=ZeroMQ and Crossroads I/O: Forking over trademarks|url=https://lwn.net/Articles/488732/|publisher=[[LWN.net]]|access-date=14 July 2012}}</ref><ref>{{cite web|title=Crossroads I/O|url=http://www.crossroads.io/|access-date=14 July 2012}}</ref> मार्टिन सस्ट्रिक ने नैनोएमएसजी शुरू किया है,<ref>{{cite web|title=nanomsg|url=http://nanomsg.org/|access-date=8 June 2013}}</ref> ZeroMQ कोर लाइब्रेरी का पुनर्लेखन।<ref>{{cite web|title=Why should I [sic] have written ZeroMQ in C, not C++|url=http://250bpm.com/blog:4}}</ref>
अगस्त 2012 में, डोंगमिन यू ने ज़ीरोएमक्यू, जेरोएमक्यू के अपने शुद्ध जावा रूपांतरण की घोषणा की।<ref>{{cite web|title=ज़ेरोमैक - गो पोंजो ज़ेरोमैक|publisher=zeromq-dev mailing list|url=http://lists.zeromq.org/pipermail/zeromq-dev/2012-August/018265.html|access-date=23 May 2013|archive-date=31 July 2013|archive-url=https://web.archive.org/web/20130731225620/http://lists.zeromq.org/pipermail/zeromq-dev/2012-August/018265.html|url-status=dead}}</ref> इसने ZeroMQ के पूर्ण-देशी पोर्टों को प्रेरित किया है, जैसे C# के लिए NetMQ<ref>{{cite web|title=नेटएमक्यू|publisher=GitHub|url=https://github.com/zeromq/netmq|access-date=23 May 2013}}</ref> और zmq.rs
अगस्त 2012 में, डोंगमिन यू ने ज़ीरोएमक्यू, जेरोएमक्यू के अपने शुद्ध जावा रूपांतरण की घोषणा की।<ref>{{cite web|title=ज़ेरोमैक - गो पोंजो ज़ेरोमैक|publisher=zeromq-dev mailing list|url=http://lists.zeromq.org/pipermail/zeromq-dev/2012-August/018265.html|access-date=23 May 2013|archive-date=31 July 2013|archive-url=https://web.archive.org/web/20130731225620/http://lists.zeromq.org/pipermail/zeromq-dev/2012-August/018265.html|url-status=dead}}</ref> इसने ZeroMQ के पूर्ण-देशी पोर्टों को प्रेरित किया है, जैसे C# के लिए NetMQ<ref>{{cite web|title=नेटएमक्यू|publisher=GitHub|url=https://github.com/zeromq/netmq|access-date=23 May 2013}}</ref> और zmq.rs
जंग के लिए.<ref>{{cite web|title=जंक.रस|publisher=GitHub|url=https://github.com/zeromq/जंक.रस|access-date=24 Oct 2020}}</ref>
जंग के लिए.<ref>{{cite web|title=जंक.रस|publisher=GitHub|url=https://github.com/zeromq/जंक.रस|access-date=24 Oct 2020}}</ref>
मार्च 2013 में, पीटर हिंटजेन्स ने ज़ीरोएमक्यू में एक्स्टेंसिबल सुरक्षा तंत्र लाने के लिए ज़ेडएमटीपी वायर-लेवल प्रोटोकॉल के एक नए मसौदे की घोषणा की।<ref>{{cite web|title=Securing ZeroMQ: draft ZMTP v3.0 Protocol|publisher=Hintjens.com|url=http://hintjens.com/blog:39|access-date=23 May 2013}}</ref> मार्टिन हर्टन ने कर्वZMQ प्रमाणीकरण और एन्क्रिप्शन तंत्र लागू किया<ref>[http://curvezmq.org curvezmq.org]</ref> कुछ ही समय बाद मुख्य पुस्तकालय में।
 
मार्च 2013 में, पीटर हिंटजेन्स ने ज़ीरोएमक्यू में एक्स्टेंसिबल सुरक्षा तंत्र लाने के लिए ज़ेडएमटीपी वायर-लेवल प्रोटोकॉल के नए मसौदे की घोषणा की।<ref>{{cite web|title=Securing ZeroMQ: draft ZMTP v3.0 Protocol|publisher=Hintjens.com|url=http://hintjens.com/blog:39|access-date=23 May 2013}}</ref> मार्टिन हर्टन ने कर्वZMQ प्रमाणीकरण और एन्क्रिप्शन तंत्र लागू किया<ref>[http://curvezmq.org curvezmq.org]</ref> कुछ ही समय बाद मुख्य पुस्तकालय में।


==विकास प्रक्रिया==
==विकास प्रक्रिया==
ZeroMQ समुदाय अधिकतर सामूहिक कोड निर्माण अनुबंध (C4) का उपयोग करता है<ref>{{cite web|url=http://rfc.zeromq.org/spec:22|title=Collective Code Construction Contract (C4.1)|work=ZeroMQ RFCs|access-date=23 May 2013}}</ref> एक विकास अनुबंध के रूप में. C4 [[विकिपीडिया]] प्रक्रियाओं और [[GitHub]] के फोर्क + [[पुल अनुरोध]] मॉडल से प्रेरित है। यह नए योगदानकर्ताओं के लिए भाग लेना आसान बनाने और पुराने योगदानकर्ताओं पर निर्भरता कम करने पर केंद्रित है।
ZeroMQ समुदाय अधिकतर सामूहिक कोड निर्माण अनुबंध (C4) का उपयोग करता है<ref>{{cite web|url=http://rfc.zeromq.org/spec:22|title=Collective Code Construction Contract (C4.1)|work=ZeroMQ RFCs|access-date=23 May 2013}}</ref> विकास अनुबंध के रूप में. C4 [[विकिपीडिया]] प्रक्रियाओं और [[GitHub]] के फोर्क + [[पुल अनुरोध]] मॉडल से प्रेरित है। यह नए योगदानकर्ताओं के लिए भाग लेना आसान बनाने और पुराने योगदानकर्ताओं पर निर्भरता कम करने पर केंद्रित है।


==यह भी देखें==
==यह भी देखें==
Line 65: Line 65:
==संदर्भ==
==संदर्भ==
{{Reflist|2}}
{{Reflist|2}}


==बाहरी संबंध==
==बाहरी संबंध==
{{external links|date=January 2017}}
*{{Official website|https://zeromq.org/}}
*{{Official website|https://zeromq.org/}}
*[https://github.com/zeromq The ØMQ community on GitHub]
*[https://github.com/zeromq The ØMQ community on GitHub]

Revision as of 11:08, 26 July 2023

Developer(s)iMatix
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.; Error: first parameter cannot be parsed as a date or time. (Script error: The module returned a nil value. It is supposed to return an export table.)
Written inC++
PlatformCross-platform
TypeMessage queue, concurrency framework
LicenseMPL-2.0[1]
Websitezeromq.org

ZeroMQ (जिसे ØMQ, 0MQ या ZMQ भी लिखा जाता है) अतुल्यकालिक संदेश देना लाइब्रेरी है, जिसका उद्देश्य वितरित एप्लिकेशन या समवर्ती अनुप्रयोगों में उपयोग करना है। यह संदेश कतार प्रदान करता है, लेकिन संदेश-उन्मुख मिडलवेयर के विपरीत, ज़ीरोएमक्यू सिस्टम समर्पित संदेश दलाल के बिना चल सकता है; नाम में शून्य शून्य ब्रोकर के लिए है।[2] लाइब्रेरी का एपीआई बर्कले सॉकेट के समान डिज़ाइन किया गया है।

ZeroMQ को iMatix द्वारा स्थापित योगदानकर्ताओं के बड़े समुदाय द्वारा विकसित किया गया है, जो डोमेन नाम और ट्रेडमार्क रखता है। कई लोकप्रिय प्रोग्रामिंग भाषाओं के लिए तृतीय-पक्ष बाइंडिंग हैं।

प्रौद्योगिकी

ज़ीरोएमक्यू एपीआई सॉकेट (पारंपरिक इंटरनेट सॉकेट और यूनिक्स डोमेन सॉकेट पर प्रकार का सामान्यीकरण) प्रदान करता है, जिनमें से प्रत्येक संचार समापन बिंदु के बीच कई-से-कई कनेक्शन का प्रतिनिधित्व कर सकता है। संदेश-वार ग्रैन्युलैरिटी के साथ काम करते हुए, उन्हें संदेश भेजने का पैटर्न का उपयोग करने की आवश्यकता होती है, और वे विशेष रूप से उस तरह के पैटर्न के लिए अनुकूलित होते हैं।

मूल ZeroMQ पैटर्न हैं:

अनुरोध–प्रतिक्रिया|अनुरोध–उत्तर
ग्राहकों के समूह को सेवाओं के समूह से जोड़ता है। यह दूरस्थ प्रक्रिया कॉल और कार्य वितरण पैटर्न है।
प्रकाशित करें-सदस्यता लें पैटर्न|प्रकाशित करें-सदस्यता लें
प्रकाशकों के समूह को ग्राहकों के समूह से जोड़ता है। यह डेटा वितरण पैटर्न है.
पुश-पुल (पाइपलाइन)
नोड्स को फैन-आउट/फैन-इन पैटर्न में जोड़ता है जिसमें कई चरण और लूप हो सकते हैं। यह समानांतर कंप्यूटिंग कार्य वितरण और संग्रह पैटर्न है।
विशेष जोड़ी
दो सॉकेट को विशेष जोड़ी में जोड़ता है। (यह विशिष्ट उपयोग के मामलों के लिए उन्नत निम्न-स्तरीय पैटर्न है।)

प्रत्येक पैटर्न विशेष नेटवर्क टोपोलॉजी को परिभाषित करता है। अनुरोध-उत्तर तथाकथित सेवा बस को परिभाषित करता है, प्रकाशित-सदस्यता डेटा वितरण ट्री को परिभाषित करता है, और पुश-पुल समानांतर पाइपलाइन को परिभाषित करता है। सभी पैटर्न जानबूझकर इस तरह से डिज़ाइन किए गए हैं कि वे असीमित रूप से स्केलेबल हों और इस प्रकार इंटरनेट पैमाने पर प्रयोग करने योग्य हों।[3] सॉकेट के माध्यम से किसी भी संदेश को डेटा के अपारदर्शी ब्लॉब (कंप्यूटिंग) के रूप में माना जाता है। किसी ग्राहक को डिलीवरी को ब्लॉब लीडिंग स्ट्रिंग द्वारा स्वचालित रूप से फ़िल्टर किया जा सकता है। उपलब्ध संदेश ट्रांसपोर्ट में प्रसारण नियंत्रण प्रोटोकॉल , व्यावहारिक जनरल मल्टीकास्ट (विश्वसनीय मल्टीकास्ट), अंतःप्रक्रम संचार (इंटर-प्रोसेस कम्युनिकेशन) और इंटर-थ्रेड कम्युनिकेशन (आईटीसी) शामिल हैं।

ज़ीरोएमक्यू कोर लाइब्रेरी अपने आंतरिक थ्रेडिंग मॉडल के कारण बहुत अच्छा प्रदर्शन करती है, और स्वचालित संदेश बैचिंग तकनीक का उपयोग करके थ्रूपुट के मामले में पारंपरिक टीसीपी अनुप्रयोगों को बेहतर प्रदर्शन कर सकती है।[4][5] ZeroMQ ZMTP, ZeroMQ संदेश स्थानांतरण प्रोटोकॉल लागू करता है।[6] ZMTP बैकवर्ड इंटरऑपरेबिलिटी, एक्स्टेंसिबल सुरक्षा तंत्र, कमांड और संदेश फ़्रेमिंग, कनेक्शन मेटाडेटा और अन्य ट्रांसपोर्ट-स्तरीय कार्यक्षमता के लिए नियमों को परिभाषित करता है। परियोजनाओं की बढ़ती संख्या पूर्ण ZeroMQ कार्यान्वयन के उपयोग के विकल्प के रूप में सीधे ZMTP को लागू करती है।[7]

इतिहास

iMatix के सीईओ पीटर हिंटजेन्स ने मई 2007 में Zeromq.org डोमेन पंजीकृत किया और मार्टिन सुस्ट्रिक के साथ मिलकर ZeroMQ प्रोजेक्ट शुरू किया, जो दिसंबर 2011 तक इसके वास्तुकार और प्रमुख डेवलपर थे।

30 मार्च 2010 को, हिंटजेन्स ने घोषणा की कि iMatix (उन्नत संदेश कतार प्रोटोकॉल का मूल डिजाइनर) AMQP कार्यसमूह छोड़ देगा और काफी सरल और तेज़ ZeroMQ के पक्ष में AMQP/1.0 का समर्थन करने की योजना नहीं बनाई थी।[8][9]

2011 में, CERN, CERN त्वरक को संचालित करने के लिए उपयोग किए जाने वाले मिडलवेयर समाधानों को एकीकृत करने के तरीकों की जांच कर रहा था। CERN अध्ययन ने CORBA, इंटरनेट संचार इंजन, अपाचे थ्रिफ्ट, ZeroMQ, YAMI4, के दो ओपन सोर्स कार्यान्वयन की तुलना की।[10] रन-टाइम इन्फ्रास्ट्रक्चर (सिमुलेशन), और अपाचे Qpid (एएमक्यूपी) और इसकी बहुमुखी प्रतिभा के लिए जीरोएमक्यू को उच्चतम स्कोर मिला, जिसमें लिंक्सओएस के लिए इसकी आसान अनुकूलन क्षमता भी शामिल है।[5]

2012 की शुरुआत में, दो मूल डेवलपर्स ने ज़ीरोएमक्यू को क्रॉसरोड्स I/O के रूप में विकसित किया।[11][12] मार्टिन सस्ट्रिक ने नैनोएमएसजी शुरू किया है,[13] ZeroMQ कोर लाइब्रेरी का पुनर्लेखन।[14] अगस्त 2012 में, डोंगमिन यू ने ज़ीरोएमक्यू, जेरोएमक्यू के अपने शुद्ध जावा रूपांतरण की घोषणा की।[15] इसने ZeroMQ के पूर्ण-देशी पोर्टों को प्रेरित किया है, जैसे C# के लिए NetMQ[16] और zmq.rs

जंग के लिए.[17]

मार्च 2013 में, पीटर हिंटजेन्स ने ज़ीरोएमक्यू में एक्स्टेंसिबल सुरक्षा तंत्र लाने के लिए ज़ेडएमटीपी वायर-लेवल प्रोटोकॉल के नए मसौदे की घोषणा की।[18] मार्टिन हर्टन ने कर्वZMQ प्रमाणीकरण और एन्क्रिप्शन तंत्र लागू किया[19] कुछ ही समय बाद मुख्य पुस्तकालय में।

विकास प्रक्रिया

ZeroMQ समुदाय अधिकतर सामूहिक कोड निर्माण अनुबंध (C4) का उपयोग करता है[20] विकास अनुबंध के रूप में. C4 विकिपीडिया प्रक्रियाओं और GitHub के फोर्क + पुल अनुरोध मॉडल से प्रेरित है। यह नए योगदानकर्ताओं के लिए भाग लेना आसान बनाने और पुराने योगदानकर्ताओं पर निर्भरता कम करने पर केंद्रित है।

यह भी देखें

}

संदर्भ

  1. "ØMQ Licensing". Retrieved 8 June 2023.
  2. "Get started".
  3. "स्केलेबिलिटी परत इंटरनेट स्टैक को प्रभावित करती है". Archived from the original on 2019-05-28. Retrieved 2013-09-04.
  4. "How come ØMQ has higher throughput than TCP although it's built on top of TCP?". ZeroMQ FAQ. Retrieved 8 June 2013.
  5. 5.0 5.1 "Middleware Trends And Market Leaders 2011". Retrieved 8 June 2013.
  6. "ज़ीरोएमक्यू संदेश स्थानांतरण प्रोटोकॉल". Retrieved 8 June 2013.
  7. "GitHub Search: ZMTP". GitHub. Retrieved 8 June 2013.
  8. "iMatix will end OpenAMQ support by 2011". openamq-dev maillist. Archived from the original on 2016-03-05. Retrieved 5 September 2018.
  9. "एएमक्यूपी में क्या खराबी है (और इसे कैसे ठीक करें)". iMatix Corporation. Retrieved 14 July 2012.
  10. "Inspirel YAMI4". Retrieved 14 July 2012.
  11. "ZeroMQ and Crossroads I/O: Forking over trademarks". LWN.net. Retrieved 14 July 2012.
  12. "Crossroads I/O". Retrieved 14 July 2012.
  13. "nanomsg". Retrieved 8 June 2013.
  14. "Why should I [sic] have written ZeroMQ in C, not C++".
  15. "ज़ेरोमैक - गो पोंजो ज़ेरोमैक". zeromq-dev mailing list. Archived from the original on 31 July 2013. Retrieved 23 May 2013.
  16. "नेटएमक्यू". GitHub. Retrieved 23 May 2013.
  17. "जंक.रस". GitHub. Retrieved 24 Oct 2020.
  18. "Securing ZeroMQ: draft ZMTP v3.0 Protocol". Hintjens.com. Retrieved 23 May 2013.
  19. curvezmq.org
  20. "Collective Code Construction Contract (C4.1)". ZeroMQ RFCs. Retrieved 23 May 2013.

बाहरी संबंध