वितरित वस्तु संचार

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

वर्ग प्रतिपर्ण और रूपरेखा
संचार चैनल को किस प्रकार लागू किया जाए, इस पर व्यापक रूप से उपयोग किए जाने वाले दृष्टिकोण को वर्ग प्रतिपर्ण और वर्ग रूपरेखा का उपयोग करके महसूस किया जाता है। वे जनित वस्तुएँ हैं जिनकी संरचना और व्यवहार चुने हुए संचार संदेशाचार पर निर्भर करते हैं, लेकिन सामान्य रूप से अतिरिक्त कार्यक्षमता प्रदान करते हैं जो नेटवर्क पर विश्वसनीय संचार सुनिश्चित करता है।

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



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

अधिक विवरण में, संचार में कई चरण होते हैं:
 * 1) कॉलर प्रतिपर्ण द्वारा कार्यान्वित एक स्थानीय सबरूटीन को कॉल करता है
 * 2) प्रतिपर्ण मार्शलिंग (कंप्यूटर विज्ञान) कॉल प्रकार और एक अनुरोध संदेश में इनपुट तर्क
 * 3) उपभोगता प्रतिपर्ण नेटवर्क पर परिसेवक को संदेश भेजता है और वर्तमान निष्पादन धागा (कंप्यूटर विज्ञान) को ब्लॉक करता है
 * 4) परिसेवक रूपरेखा नेटवर्क से अनुरोध संदेश प्राप्त करता है
 * 5) रूपरेखा अनुरोध संदेश से कॉल प्रकार को अनपैक करता है और कॉल की गई वस्तु पर सबरूटीन को देखता है
 * 6) रूपरेखा मार्शलिंग (कंप्यूटर विज्ञान) प्रक्रिया तर्क
 * 7) रूपरेखा सबरूटीन को कॉल की गई वस्तु पर निष्पादित करता है
 * 8) कॉल की गई वस्तु एक संगणना करती है और परिणाम लौटाती है
 * 9) रूपरेखा आउटपुट तर्कों को प्रतिक्रिया संदेश में पैक करता है
 * 10) रूपरेखा नेटवर्क पर उपभोगता को संदेश भेजता है
 * 11) उपभोगता प्रतिपर्ण नेटवर्क से प्रतिक्रिया संदेश प्राप्त करता है
 * 12) प्रतिपर्ण संदेश से आउटपुट तर्कों को अनपैक करता है
 * 13) प्रतिपर्ण कॉलर को आउटपुट आर्ग्युमेंट पास करता है, निष्पादन थ्रेड (कंप्यूटर साइंस) जारी करता है और कॉलर तब निष्पादन में जारी रहता है

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

स्टब
वितरित वस्तु संचार में भाग लेने वाले उपभोगता साइड वस्तुओं को प्रतिपर्ण या प्रॉक्सी के रूप में जाना जाता है, और यह प्रॉक्सी वस्तु का एक उदाहरण है।

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

ठूंठ इसके लिए जिम्मेदार है:
 * परिसेवक वर्ग रूपरेखा की ओर संचार शुरू करना
 * कॉलर वस्तुओं से कॉल का अनुवाद करना
 * मापदंडों का मार्शलिंग (कंप्यूटर विज्ञान)।
 * कक्षा के ढांचे को सूचित करना कि कॉल को बुलाया जाना चाहिए
 * नेटवर्क पर वर्ग रूपरेखा के लिए तर्क पारित करना
 * वर्ग रूपरेखा से प्रतिक्रिया का क्रमांकन
 * कॉल करने वाले को सूचित करना कि कॉल पूर्ण हो गई है

रूपरेखा
वितरित वस्तु संचार में भाग लेने वाले परिसेवक साइड वस्तुओं को रूपरेखा (या स्टब; शब्द यहाँ टाला गया) के रूप में जाना जाता है।

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

रूपरेखा इसके लिए जिम्मेदार है:
 * वर्ग प्रतिपर्ण से आने वाले डेटा को परिसेवक वस्तुओं के लिए सही अप-कॉल में अनुवाद करना
 * प्राप्त आंकड़ों से तर्कों का क्रमांकन
 * परिसेवक ऑब्जेक्ट्स के लिए तर्क पास करना
 * परिसेवक ऑब्जेक्ट्स से लौटाए गए मानों का मार्शलिंग (कंप्यूटर साइंस)।
 * नेटवर्क पर उपभोगता वर्ग प्रतिपर्ण पर मान वापस भेजना

स्टब/रूपरेखा दृष्टिकोण का उपयोग कर प्रोटोकॉल

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

यह भी देखें

 * वस्तु अनुरोध दलाल
 * वितरित वस्तु

संदर्भ

 * Plášil, František and Stal, Michael. "An Architectural View of Distributed Objects and Components in CORBA, Java आरएमआई, and COM/DCOM", Software Concepts & Tools (vol. 19, no. 1), January, 1998.
 * Druschel, Peter "Distributed Program Construction"
 * Farley, Jim. Java Distributed Computing, O'Reilly, January, 1998.
 * Research Papers, Distributed Systems Research Group, Charles University Prague