संदेश-उन्मुख मध्यस्थ

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

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

एमओएम सॉफ्टवेयर अवयव प्रदान करता है जो ग्राहक/सर्वर संरचना के सभी संचार घटकों में रहता है और सामान्यतः ग्राहक और सर्वर अनुप्रयोगों के बीच अतुल्यकालिक कॉल का समर्थन करता है। एमओएम ग्राहक/सर्वर तंत्र की मुख्य सेवक प्रकृति की जटिलता के साथ एप्लिकेशन विकासक की भागीदारी को कम करता है।

मध्यस्थ श्रेणियां

 * सुदूर प्रणाली संदेश या आरपीसी-आधारित मध्यस्थ
 * वस्तु अनुरोध मध्यस्थ या ओआरबी-आधारित मध्यस्थ
 * संदेश उन्मुख मध्यस्थ या एमओएम-आधारित मध्यस्थ

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

लाभ
संदेश-आधारित संचार प्रोटोकॉल ( संगणना) का उपयोग करने के केंद्रीय कारणों में संदेशों को प्रेषकों से प्राप्तकर्ताओं तक पहुंचाते समय संचय ( मध्यवर्ती), मार्ग या संदेशों को बदलने की क्षमता सम्मिलित है।

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

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

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

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

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

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

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

एक सिंक्रोनस संदेश प्रेषण प्रणाली के साथ, कॉलिंग क्रिया तब तक वापस नहीं आता जब तक कि कॉल किए गए क्रिया ने अपना कार्य पूरा नहीं किया हो। एक अल्प युग्मन अतुल्यकालिक प्रणाली में, कॉलिंग ग्राहक प्राप्तकर्ता पर तब तक काम लोड करना जारी रख सकता है जब तक कि इस काम को संभालने के लिए आवश्यक संसाधन समाप्त नहीं हो जाते हैं और कॉल किए गए घटक विफल हो जाते हैं। बेशक, निष्पादन की निरीक्षण और संदेश प्रवाह को समायोजित करके इन स्थितियों को कम या कम किया जा सकता है, लेकिन यह एक ऐसा काम है जिसकी एक तुल्यकालिक संदेश प्रणाली के साथ आवश्यकता नहीं है। महत्वपूर्ण बात यह है कि प्रत्येक प्रकार की प्रणाली के लाभों और दायित्वों को समझना है। प्रत्येक प्रणाली विभिन्न प्रकार के कार्यों के लिए उपयुक्त है। कभी-कभी, वांछित व्यवहार प्राप्त करने के लिए दो प्रकार की प्रणालियों के संयोजन की आवश्यकता होती है।

मानक
ऐतिहासिक रूप से, संदेश-उन्मुख मध्यस्थ के उपयोग को नियंत्रित करने वाले मानकीकरण की कमी थी जिससे समस्याएँ उत्पन्न हुई हैं। अधिकांश प्रमुख विक्रेताओं के अपने स्वयं के कार्यान्वयन हैं, प्रत्येक का अपना अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) और प्रबंधन उपकरण हैं।

संदेश उन्मुख मध्यस्थ के लिए लंबे समय से चलने वाले मानकों में से एक एक्स/ओपन समूह का एक्सएटीएमआई विनिर्देश (वितरित लेनदेन प्रसंस्करण: एक्सएटीएमआई विशिष्टता) है जो इंटरप्रोसेस संचार के लिए एपीआई को मानकीकृत करता है। इस एपीआई के लिए ज्ञात कार्यान्वयन एटीआर बाल्टिक का एंड्यूरो/एक्स मध्यस्थ और ओरेकल कॉर्पोरेशन का टक्सीडो (सॉफ्टवेयर) है।

उन्नत संदेश कतारबद्ध प्रोटोकॉल (AMQP) एक स्वीकृत OASIS (संगठन) है और आईएसओ मानक जो भाग लेने वाले अनुप्रयोग घटकों के बीच उपयोग किए जाने वाले प्रोटोकॉल और प्रारूपों को परिभाषित करता है, इसलिए कार्यान्वयन इंटरऑपरेबल हैं। AMQP का उपयोग लचीली अनुमार्गण योजनाओं के साथ किया जा सकता है, जिसमें पॉइंट-टू-पॉइंट (दूरसंचार) | पॉइंट-टू-पॉइंट, फैन-आउट (सॉफ़्टवेयर) | फैन-आउट, प्रकाशित/सदस्यता, और अनुरोध-प्रतिक्रिया जैसे सामान्य संदेश पैटर्न सम्मिलित हैं। कि इन्हें जानबूझकर प्रोटोकॉल मानक के v1.0 से हटा दिया गया है, लेकिन अनुमार्गण के लिए विशेष कार्यान्वयन और/या अंतर्निहित नेटवर्क प्रोटोकॉल पर भरोसा करते हैं)। यह लेन-देन प्रबंधन, कतारबद्ध, वितरण, सुरक्षा, प्रबंधन, क्लस्टरिंग, संघ और विषम बहु-मंच समर्थन का भी समर्थन करता है। AMQP का उपयोग करने वाले जावा एप्लिकेशन सामान्यतः Java JMS में लिखे जाते हैं। अन्य कार्यान्वयन सी #, सी ++, पीएचपी, पायथन, रूबी और अन्य भाषाओं के लिए एपीआई प्रदान करते हैं।

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

एमक्यू टेलीमेट्री ट्रांसपोर्ट (MQTT) OASIS संगठन द्वारा समर्थित एक ISO मानक (ISO/IEC PRF 20922) है। यह M2M/IoT संदर्भों में संचार के लिए उपयुक्त TCP/IP के शीर्ष पर एक हल्का प्रकाशित/सदस्यता विश्वसनीय संदेश परिवहन प्रोटोकॉल प्रदान करता है जहां एक छोटे कोड पदचिह्न की आवश्यकता होती है और/या नेटवर्क बैंडविड्थ प्रीमियम पर होता है।

वस्तु प्रबंधन समूह की डेटा वितरण सेवा | डेटा वितरण सेवा (डीडीएस) संदेश-उन्मुख प्रकाशन-सदस्यता पैटर्न प्रदान करता है। प्रकाशित/सदस्यता (पी/एस) मध्यस्थ मानक प्रदान करता है जिसका उद्देश्य स्केलेबल, तात्क्षणिक, भरोसेमंद, उच्च निष्पादन और प्रकाशकों और ग्राहकों के बीच इंटरऑपरेबल डेटा एक्सचेंजों को सक्षम करना है। मानक C++, C++11, C, Ada, Java और Ruby को इंटरफेस प्रदान करता है।

एक्स्टेंसिबल संदेश प्रेषण एंड प्रेजेंस प्रोटोकॉल (एक्सएमपीपी) एक्सएमएल (एक्सटेंसिबल मार्कअप लैंग्वेज) पर आधारित संदेश-उन्मुख मध्यस्थ के लिए एक संचार प्रोटोकॉल है। एक्स्टेंसिबल होने के लिए डिज़ाइन किया गया, प्रोटोकॉल का उपयोग पब्लिश-सब्सक्राइब प्रणाली, वीओआईपी के लिए सिग्नलिंग, वीडियो, फाइल ट्रांसफर, गेमिंग, इंटरनेट ऑफ थिंग्स एप्लिकेशन जैसे स्मार्ट ग्रिड और सोशल नेटवर्किंग सेवाओं के लिए भी किया गया है। अधिकांश इंस्टेंट संदेश प्रेषण प्रोटोकॉल के विपरीत, XMPP को एक खुले मानक में परिभाषित किया गया है और यह विकास और अनुप्रयोग के एक खुले प्रणाली दृष्टिकोण का उपयोग करता है, जिसके द्वारा कोई भी XMPP सेवा को लागू कर सकता है और अन्य संगठनों के कार्यान्वयन के साथ इंटरऑपरेट कर सकता है। क्योंकि XMPP एक खुला प्रोटोकॉल है, कार्यान्वयन किसी भी सॉफ़्टवेयर लाइसेंस का उपयोग करके विकसित किया जा सकता है; हालांकि कई सर्वर, ग्राहक और लाइब्रेरी कार्यान्वयन मुफ्त और ओपन-सोर्स सॉफ़्टवेयर के रूप में वितरित किए जाते हैं, कई फ्रीवेयर और मालिकाना सॉफ़्टवेयर कार्यान्वयन भी मौजूद हैं। इंटरनेट इंजीनियरिंग टास्क फोर्स (IETF) ने 2002 में एक IETF इंस्टेंट संदेश प्रेषण और उपस्थिति तकनीक के रूप में कोर प्रोटोकॉल को औपचारिक रूप देने के लिए एक XMPP वर्किंग ग्रुप का गठन किया। XMPP वर्किंग ग्रुप ने चार विनिर्देशों (RFC 3920, RFC 3921, RFC 3922, RFC 3923) का निर्माण किया, जिन्हें 2004 में प्रस्तावित मानकों के रूप में अनुमोदित किया गया था। 2011 में, RFC 3920 और RFC 3921 को क्रमशः RFC 6120 और RFC 6121 द्वारा RFC के साथ स्थानांतरित कर दिया गया था। 6122 XMPP एड्रेस फॉर्मेट को निर्दिष्ट करता है। IETF में मानकीकृत इन कोर प्रोटोकॉल के अतिरिक्त, XMPP Standards Foundation (पूर्व में Jabber Software Foundation) खुले XMPP एक्सटेंशन को विकसित करने में सक्रिय है। XMPP-आधारित सॉफ़्टवेयर, XMPP Standards Foundation के अनुसार, इंटरनेट पर व्यापक रूप से तैनात किया गया है, और रक्षा विभाग (DoD) की एकीकृत क्षमताओं की रूपरेखा के लिए आधार बनाता है। चल देना ई प्रोग्रामिंग वातावरण जावा संदेश सेवा (जावा संदेश सेवा) नामक एक मानक एपीआई प्रदान करता है, जिसे अधिकांश एमओएम विक्रेताओं द्वारा कार्यान्वित किया जाता है और इसका उद्देश्य विशेष एमओएम एपीआई कार्यान्वयन को छिपाना है; हालाँकि, JMS संदेशों के आदान-प्रदान के प्रारूप को परिभाषित नहीं करता है, इसलिए JMS प्रणाली इंटरऑपरेबल नहीं हैं।

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

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

रुझान

 * उन्नत संदेश कतारबद्ध प्रोटोकॉल | उन्नत संदेश कतारबद्ध प्रोटोकॉल (AMQP) संदेश-उन्मुख मध्यस्थ के लिए एक खुला मानक अनुप्रयोग परत प्रोटोकॉल प्रदान करता है।
 * वस्तु प्रबंधन समूह की डेटा वितरण सेवा| डेटा वितरण सेवा (DDS) ने मूल DDS विनिर्देशन में कई नए मानक जोड़े हैं। अधिक विवरण के लिए OMG डेटा वितरण सेवा (DDS) विनिर्देशों की सूची देखें।
 * एक्स्टेंसिबल संदेश प्रेषण और उपस्थिति प्रोटोकॉल XML (एक्सटेंसिबल मार्कअप लैंग्वेज) पर आधारित संदेश-उन्मुख मध्यस्थ के लिए एक संचार प्रोटोकॉल है।
 * स्ट्रीमिंग टेक्स्ट ओरिएंटेड संदेश प्रेषण प्रोटोकॉल | स्ट्रीमिंग टेक्स्ट ओरिएंटेड संदेश प्रेषण प्रोटोकॉल (STOMP), जिसे पहले TTMP के नाम से जाना जाता था, एक सरल टेक्स्ट-आधारित प्रोटोकॉल है, जो एक इंटरऑपरेबल वायर फॉर्मेट प्रदान करता है जो STOMP ग्राहक को प्रोटोकॉल का समर्थन करने वाले किसी भी संदेश मध्यस्थ से बात करने की अनुमति देता है।
 * एक अतिरिक्त प्रवृत्ति संदेश-उन्मुख मध्यस्थ कार्यों को हार्डवेयर में लागू होते हुए देखती है - सामान्यतः FPGAs या अन्य विशेष सिलिकॉन चिप्स।

यह भी देखें

 * उद्यम एकीकरण पैटर्न (पुस्तक)
 * एंटरप्राइज़ संदेश प्रेषण प्रणाली
 * उद्यम सेवा बस
 * प्रवाह आधारित प्रोग्रामिंग