रिमोट इनवोकेशन और मिडलवेयर
रिमोट इनवोकेशन एक प्रोग्राम को किसी अन्य मशीन पर एक प्रक्रिया या विधि को ऐसे कॉल करने देता है जैसे कि वह स्थानीय हो, और मिडलवेयर वह सॉफ्टवेयर लेयर है जो नेटवर्क पर यह और संबंधित एब्स्ट्रैक्शन प्रदान करती है।
Definition
रिमोट इनवोकेशन एक संचार एब्स्ट्रैक्शन है जिसमें एक क्लाइंट स्थानीय-प्रक्रिया-कॉल इंटरफ़ेस का उपयोग करके एक रिमोट प्रक्रिया पर एक ऑपरेशन को इनवोक करता है, जिसमें अंतर्निहित मिडलवेयर आर्गुमेंट मार्शलिंग, ट्रांसपोर्ट और विफलता रिपोर्टिंग को संभालता है।
Scope
यह विषय रिमोट प्रोसीजर कॉल (RPC) और रिमोट मेथड इनवोकेशन, आर्गुमेंट्स की मार्शलिंग, बाइंडिंग और नेमिंग, कॉल सिमेंटिक्स (अधिकतम-एक बार, कम से कम-एक बार, ठीक-एक बार), और मिडलवेयर लेयर्स—ऑब्जेक्ट ब्रोकर्स, मैसेज-ओरिएंटेड मिडलवेयर, और आधुनिक RPC फ्रेमवर्क—जो इन्हें लागू करते हैं, को कवर करता है। इसमें पारदर्शिता की ज्ञात सीमाएं भी शामिल हैं: वे तरीके जिनसे रिमोट कॉल अनिवार्य रूप से स्थानीय कॉल से भिन्न होते हैं।
Core questions
- नेटवर्क इंटरैक्शन को स्थानीय प्रक्रिया कॉल की सुविधा के साथ कैसे प्रस्तुत किया जा सकता है?
- संदेश हानि और प्रक्रिया क्रैश की उपस्थिति में कौन से कॉल सिमेंटिक्स प्राप्त किए जा सकते हैं?
- स्थान पारदर्शिता का एब्स्ट्रैक्शन अनिवार्य रूप से कहाँ टूट जाता है?
Key theories
- रिमोट प्रोसीजर कॉल
- RPC एब्स्ट्रैक्शन एक रिमोट इंटरैक्शन को एक स्थानीय-दिखने वाले कॉल के रूप में पैकेज करता है, जिसमें क्लाइंट और सर्वर स्टब्स आर्गुमेंट्स को मार्शल और अनमार्शल करते हैं; यहां तक कि अधिकतम-एक बार सिमेंटिक्स प्राप्त करने के लिए भी रिट्रांसमिशन और डुप्लीकेट डिटेक्शन को सावधानीपूर्वक संभालने की आवश्यकता होती है।
- मिडलवेयर लेयरिंग
- मिडलवेयर ऑपरेटिंग सिस्टम और एप्लिकेशन के बीच स्थित होता है ताकि नेमिंग, मार्शलिंग और इनवोकेशन सेवाएं प्रदान कर सके, जिसमें ऑब्जेक्ट रिक्वेस्ट ब्रोकर्स से लेकर मैसेज-ओरिएंटेड और पब्लिश-सब्सक्राइब सिस्टम तक शामिल हैं।
- वितरण पारदर्शिता की सीमाएं
- विलंबता, आंशिक विफलता, समवर्तीता और मेमोरी एक्सेस का अर्थ है कि रिमोट ऑब्जेक्ट्स को स्थानीय ऑब्जेक्ट्स से पूरी तरह से अप्रभेद्य नहीं बनाया जा सकता है, इसलिए जो डिज़ाइन इन अंतरों को अनदेखा करते हैं वे लोड या विभाजन के तहत विफल हो जाते हैं।
Clinical relevance
RPC और मिडलवेयर आधुनिक वितरित सॉफ्टवेयर के संयोजी ऊतक हैं: माइक्रोसर्विस आर्किटेक्चर, सर्विस मेश और क्लाउड API सभी रिमोट-इनवोकेशन फ्रेमवर्क पर निर्मित होते हैं, और उनके डिजाइनरों को कॉल सिमेंटिक्स और आंशिक विफलता के बारे में स्पष्ट रूप से तर्क करना चाहिए।
History
बिररेल और नेल्सन के 1984 के पेपर ने RPC को एक व्यावहारिक एब्स्ट्रैक्शन के रूप में स्थापित किया; 1990 के दशक में CORBA और Java RMI जैसे ऑब्जेक्ट-ओरिएंटेड मिडलवेयर आए, जो वाल्डो और उनके सहयोगियों की पारदर्शिता की सीमाओं के बारे में प्रभावशाली चेतावनी से प्रभावित थे; आधुनिक फ्रेमवर्क वेब पर हल्के, स्कीमा-संचालित RPC के साथ इस वंश को जारी रखते हैं।
Debates
- क्या रिमोट कॉल को स्थानीय कॉल के समान ही दिखना चाहिए?
- पूर्ण स्थान पारदर्शिता प्रोग्रामिंग को सरल बनाती है लेकिन विलंबता और आंशिक विफलता को छुपाती है, जिससे भंगुर सिस्टम बनते हैं; वाल्डो और उनके सहयोगियों द्वारा व्यक्त किया गया विरोधी दृष्टिकोण यह है कि वितरण को उजागर किया जाना चाहिए ताकि डेवलपर्स विफलता को स्पष्ट रूप से संभाल सकें।
Key figures
- Andrew Birrell
- Bruce Nelson
- Jim Waldo
- Andrew S. Tanenbaum
Related topics
Seminal works
- birrell1984
- waldo1994
Frequently asked questions
- अधिकतम-एक बार कॉल सिमेंटिक्स का क्या अर्थ है?
- यह गारंटी देता है कि एक रिमोट ऑपरेशन शून्य या एक बार निष्पादित होता है, कभी भी अधिक नहीं, भले ही अनुरोध को फिर से प्रेषित किया जाए। यह सामान्य व्यावहारिक लक्ष्य है क्योंकि विफलताओं के तहत ठीक-एक बार निष्पादन की गारंटी देना बहुत कठिन है।