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

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

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

RMI में, एक स्टब (जो क्लाइंट पर बिट है) को प्रोग्रामर द्वारा एक इंटरफ़ेस (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) के रूप में परिभाषित किया गया है। आरएमआईसी (आरएमआई कंपाइलर) क्लास स्टब बनाने के लिए इसका इस्तेमाल करता है। स्टब टाइप चेकिंग करता है। कंकाल को एक वर्ग में परिभाषित किया गया है जो इंटरफ़ेस स्टब (जावा) को लागू करता है।

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

अधिक विवरण में, संचार में कई चरण होते हैं:
 * 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 RMI, 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