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

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