ज़ीरोएमक्यू
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. |
Written in | C++ |
Platform | Cross-platform |
Type | Message queue, concurrency framework |
License | MPL-2.0[1] |
Website | zeromq |
जीरोएमक्यू (जिसे ØMQ, 0MQ या ZMQ भी लिखा जाता है) अतुल्यकालिक मैसेजिंग लाइब्रेरी है, इस प्रकार से जिसका उद्देश्य वितरित एप्लिकेशन या समवर्ती अनुप्रयोगों में उपयोग करना है। यह मेसेज क्यू प्रदान करता है, किन्तु मेसेज-ओरिएंटेड मिडलवेयर के विपरीत, ज़ीरोएमक्यू सिस्टम समर्पित मेसेज ब्रोकर के बिना चल सकता है; नाम में शून्य शून्य ब्रोकर के लिए है।[2] अतः लाइब्रेरी का एपीआई बर्कले सॉकेट के समान डिज़ाइन किया गया है।
जीरोएमक्यू को इमेटिक्स द्वारा स्थापित योगदानकर्ताओं के उच्च समुदाय द्वारा विकसित किया गया है, जो डोमेन नाम और ट्रेडमार्क रखता है। चूंकि अनेक लोकप्रिय प्रोग्रामिंग लैंग्वेज के लिए थर्ड-पार्टी बाइंडिंग हैं।
टेक्नोलॉजी
इस प्रकार से ज़ीरोएमक्यू एपीआई इंटरनेट सॉकेट (पारंपरिक आईपी और यूनिक्स डोमेन सॉकेट पर एक प्रकार का सामान्यीकरण) प्रदान करता है, जिनमें से प्रत्येक एंडपॉइंट के मध्य अनेक-से-अनेक कनेक्शन का प्रतिनिधित्व कर सकता है। मैसेज-वार ग्रैन्युलैरिटी के साथ काम करते हुए, उन्हें एक मैसेजिंग पैटर्न का उपयोग करने की आवश्यकता होती है, और वे विशेष रूप से इस प्रकार के पैटर्न के लिए अनुकूलित होते हैं
अतः बेसिक जीरोएमक्यू पैटर्न हैं:
- रिक्वेस्ट-रिप्लाई
- इस प्रकार से क्लाइंट्स के समूह को सेवाओं के समूह से जोड़ता है। यह रिमोट प्रोसेडीयूर कॉल और कार्य डिस्ट्रीबियूसन पैटर्न है।
- पब्लिश-सब्सक्राइब
- प्रकाशकों के समूह को क्लाइंट्स के समूह से जोड़ता है। यह डेटा डिस्ट्रीबियूसन पैटर्न है.
- पुश-पुल (पाइपलाइन)
- इस प्रकार से नोड्स को फैन-आउट/फैन-इन पैटर्न में जोड़ता है जिसमें मल्टीपल स्टेप और लूप हो सकते हैं। यह पैरेलल कंप्यूटिंग कार्य डिस्ट्रीबियूसन और कलेक्शन पैटर्न है।
- एक्सक्लुसिव पेयर
- अतः दो सॉकेट को एक्सक्लुसिव पेयर में कनेक्ट करता है। (यह विशिष्ट उपयोग के स्तिथियों के लिए एडवांस लो-लेवल पैटर्न है।)
इस प्रकार से प्रत्येक पैटर्न विशेष नेटवर्क टोपोलॉजी को परिभाषित करता है। रिक्वेस्ट-रिप्लाई तथाकथित सर्विस बस को परिभाषित करता है, पब्लिश-सब्सक्राइब डेटा डिस्ट्रीबियूसन ट्री को परिभाषित करता है, और पुश-पुल समानांतर पाइपलाइन को परिभाषित करता है। सभी पैटर्न इच्छानुसार इस तरह से डिज़ाइन किए गए हैं कि वे असीमित रूप से स्केलेबल हों और इस प्रकार इंटरनेट माप पर प्रयोग करने योग्य है।[3]
सॉकेट के माध्यम से किसी भी मैसेज को डेटा के अपारदर्शी ब्लॉब (कंप्यूटिंग) के रूप में माना जाता है। किसी क्लाइंट्स को डिलीवरी को ब्लॉब लीडिंग स्ट्रिंग द्वारा स्वचालित रूप से फ़िल्टर किया जा सकता है। उपलब्ध मैसेज ट्रांसपोर्ट में टीसीपी, पीजीएम (विश्वसनीय मल्टीकास्ट), इंटरप्रोसेस कम्युनिकेशन और इंटर-थ्रेड कम्युनिकेशन (आईटीसी) सम्मिलित हैं।
इस प्रकार से ज़ीरोएमक्यू कोर लाइब्रेरी अपने इंटर थ्रेडिंग मॉडल के कारण बहुत अच्छा प्रदर्शन करती है, और स्वचालित मैसेज बैचिंग तकनीक का उपयोग करके थ्रूपुट के स्तिथि में पारंपरिक टीसीपी अनुप्रयोगों को उत्तम प्रदर्शन कर सकती है।[4][5]
जीरोएमक्यू जेडएमटीपी, जीरोएमक्यू मैसेज ट्रान्सफर प्रोटोकॉल प्रयुक्त करता है।[6]जेडएमटीपी बैकवर्ड इंटरऑपरेबिलिटी, एक्स्टेंसिबल सिक्यूरिटी मैकेनिज्म , कमांड और मैसेज फ़्रेमिंग, कनेक्शन मेटाडेटा और अन्य ट्रांसपोर्ट-स्तरीय कार्यक्षमता के लिए नियमों को परिभाषित करता है। परियोजनाओं की बढ़ती संख्या पूर्ण जीरोएमक्यू कार्यान्वयन के उपयोग के विकल्प के रूप में सीधे जेडएमटीपी को प्रयुक्त करती है।[7]
इतिहास
इमेटिक्स के सीईओ पीटर हिंटजेन्स ने मई में Zeromq.org डोमेन पंजीकृत किया और मार्टिन सुस्ट्रिक के साथ मिलकर जीरोएमक्यू प्रोजेक्ट प्रारंभ किया, जो दिसंबर तक इसके वास्तुकार और प्रमुख डेवलपर थे।
30 मार्च को, हिंटजेन्स ने घोषणा की कि इमेटिक्स (उन्नत मेसेज क्यू प्रोटोकॉल का बेसिक डिजाइनर) एएमक्यूपी वर्कग्रुप छोड़ देगा और अधिक सिंपल और फास्टर जीरोएमक्यू के पक्ष में एएमक्यूपी /1.0 का समर्थन करने की योजना नहीं बनाई थी।[8][9]
2011 में, सीईआरएन, सीईआरएन एक्सीलेटर को संचालित करने के लिए उपयोग किए जाने वाले मिडलवेयर समाधानों को एकीकृत करने के विधियों की जांच कर रहा था। सीईआरएन अध्ययन ने कोरबा, इंटरनेट कोम्मुनिकेटिंग इंजन, अपाचे थ्रिफ्ट, जीरोएमक्यू, यामी4, के दो ओपन सोर्स कार्यान्वयन की तुलना की है।[10] रन-टाइम इन्फ्रास्ट्रक्चर (सिमुलेशन), और अपाचे क्यूपीआईडी (एएमक्यूपी) और इसकी बहुमुखी प्रतिभा के लिए जीरोएमक्यू को उच्चतम स्कोर मिला, जिसमें लिंक्सओएस के लिए इसकी सरल अनुकूलन क्षमता भी सम्मिलित है।[5]
2012 की प्रारंभ में, दो बेसिक डेवलपर्स ने ज़ीरोएमक्यू को क्रॉसरोड्स I/O के रूप में विकसित किया।[11][12] मार्टिन सस्ट्रिक ने नैनोएमएसजी प्रारंभ किया है,[13] जीरोएमक्यू कोर लाइब्रेरी का पुनर्लेखन है।[14]
अगस्त 2012 में, डोंगमिन यू ने ज़ीरोएमक्यू, जेरोएमक्यू के अपने प्योर जावा कन्वर्शन की घोषणा की।[15] इसने जीरोएमक्यू के पूर्ण-नेटिव पोर्टों को प्रेरित किया है, जैसे सी# के लिए नेटएमक्यू[16] और zmq.rs रस्ट के लिए.[17]
मार्च 2013 में, पीटर हिंटजेन्स ने ज़ीरोएमक्यू में एक्स्टेंसिबल सिक्यूरिटी मैकेनिज्म लाने के लिए ज़ेडएमटीपी वायर-लेवल प्रोटोकॉल के नए ड्राफ्ट की घोषणा की।[18] मार्टिन हर्टन ने कर्वजेडएमक्यू प्रमाणीकरण और एन्क्रिप्शन तंत्र प्रयुक्त किया[19] कुछ ही समय के पश्चात मुख्य लाइब्रेरी में प्रयुक्त किया गया है।
विकास प्रक्रिया
जीरोएमक्यू समुदाय अधिकतर सामूहिक कोड निर्माण अनुबंध (C4) का उपयोग करता है[20] विकास अनुबंध के रूप में. सी4 विकिपीडिया प्रक्रियाओं और गिटहब के फोर्क + पुल रिक्वेस्ट मॉडल से प्रेरित है। यह नए योगदानकर्ताओं के लिए भाग लेना सरल बनाने और पुराने योगदानकर्ताओं पर निर्भरता कम करने पर केंद्रित है।
यह भी देखें
- ज़ितामी
- जर्मनी
- एंडुरो/एक्स
- एमक्यूटीटी
संदर्भ
- ↑ "ØMQ Licensing". Retrieved 8 June 2023.
- ↑ "Get started".
- ↑ "स्केलेबिलिटी परत इंटरनेट स्टैक को प्रभावित करती है". Archived from the original on 2019-05-28. Retrieved 2013-09-04.
- ↑ "How come ØMQ has higher throughput than TCP although it's built on top of TCP?". ZeroMQ FAQ. Retrieved 8 June 2013.
- ↑ 5.0 5.1 "Middleware Trends And Market Leaders 2011". Retrieved 8 June 2013.
- ↑ "ज़ीरोएमक्यू संदेश स्थानांतरण प्रोटोकॉल". Retrieved 8 June 2013.
- ↑ "GitHub Search: ZMTP". GitHub. Retrieved 8 June 2013.
- ↑ "iMatix will end OpenAMQ support by 2011". openamq-dev maillist. Archived from the original on 2016-03-05. Retrieved 5 September 2018.
- ↑ "एएमक्यूपी में क्या खराबी है (और इसे कैसे ठीक करें)". iMatix Corporation. Retrieved 14 July 2012.
- ↑ "Inspirel YAMI4". Retrieved 14 July 2012.
- ↑ "ZeroMQ and Crossroads I/O: Forking over trademarks". LWN.net. Retrieved 14 July 2012.
- ↑ "Crossroads I/O". Retrieved 14 July 2012.
- ↑ "nanomsg". Retrieved 8 June 2013.
- ↑ "Why should I [sic] have written ZeroMQ in C, not C++".
- ↑ "ज़ेरोमैक - गो पोंजो ज़ेरोमैक". zeromq-dev mailing list. Archived from the original on 31 July 2013. Retrieved 23 May 2013.
- ↑ "नेटएमक्यू". GitHub. Retrieved 23 May 2013.
- ↑ "जंक.रस". GitHub. Retrieved 24 Oct 2020.
- ↑ "Securing ZeroMQ: draft ZMTP v3.0 Protocol". Hintjens.com. Retrieved 23 May 2013.
- ↑ curvezmq.org
- ↑ "Collective Code Construction Contract (C4.1)". ZeroMQ RFCs. Retrieved 23 May 2013.
बाहरी संबंध
- Official website
- The ØMQ community on GitHub
- Martin Sustrik, Martin Lucina (January 20, 2010). 0MQ: A new approach to messaging – LWN.net
- जीरोएमक्यू is the Answer (a talk at PHP UK conference 2012)
- जीरोएमक्यू an introduction
- Why जीरोएमक्यू? (introductory video)
- जीरोएमक्यू: Modern & Fast Networking Stack (overview with Ruby examples)
- ØMQ: The Theoretical Foundation