विषय-सूचि
रिमोट प्रोसीजर कॉल क्या है? (remote procedure call in hindi)
ऑपरेटिंग सिस्टम में रिमोट प्रोसीजर कॉल यानी RPC डिस्ट्रिब्यूटेड, क्लाइंट-सर्वर पर आधारित एप्लीकेशन बनाने के लिए एक शक्तिशाली तकनीक है।
ये कन्वेंशनल लोकल प्रोसीजर कालिंग को एक्सटेंड करने पर आधारित है ताकि कॉल किये गए प्रोसीजर के कॉल करने वाले प्रोसीजर के समान एड्रेस स्पेस में होने की जरूरत नहीं हो।
ये दो प्रोसेस समान सिस्टम पर हो सकते हैं या फिर वो अलग-अलग सिस्टम पर भी हो सकते हैं जिन्हें नेटवर्क द्वारा कनेक्ट किया गया हो।
रिमोट प्रोसीजर कॉल बनाने के समय:
1. कॉल किये जा रहे वातावरण को सुस्पेंद कर दिया जाता है, प्रोसीजर के पैरामीटर को नेटवर्क के अक्रॉस उस वातावरण तक ट्रान्सफर कर दिया जाता है जहां प्रोसीजर को एक्सीक्यूट किया जाना है और प्रोसीजर को वहीं एक्सीक्यूट किया जाता है।
2. जब प्रोसीजर खतम हो जता है और अपना परिणाम दे देता है तब उस परिणाम को वापस कॉल कर रहे वातावरण में स्थानांतरित कर दिया जाता है जहां execution नियमित प्रोसीजर कॉल से वापस आकर फिर से शुरू होता है।
नोट: RPC क्लाइंट-सर्वर (जैसे कि क्वेरी रिस्पांस) संवाद के लिए ज्यादा सही होता है जहां कण्ट्रोल का फ्लो कॉलर और कॉल करने वाले के बीच घूमता रहता है। कांसेप्ट ये है कि क्लाइंट और सर्वर दोनों ही समान समय पर एक्सीक्यूट नहीं होते। बल्कि execution का थ्रेड कॉलर से कॉल करने वाले तक जम्प कर जाता है और फिर वापस चला जाता है।
RPC की कार्यप्रणाली (process of remote procedure call in hindi)
RPC के दौरान ये निम्न स्टेप्स होते हैं:
1. एक क्लाइंट “क्लाइंट स्टब प्रोसीजर” को कॉल करता है और ऐसा वो हमेशा की तरह पैरामीटर पास कर के करता है। क्लाइंट स्टब क्लाइंट के अपने ही एड्रेस में निवास करता है।
2. क्लाइंट स्टब पैरामीटर्स को मार्शल यानी कि एक मैसेज में पैक कर देता है। मार्शल का अर्थ हुआ पैरामीटर्स की दिखावट को एक स्टैण्डर्ड फॉर्मेट में बदल देना और प्रत्येक पैरामीटर को मैसेज में कन्वर्ट कर देना।
3. क्लाइंट स्टब मैसेज को ट्रांसपोर्ट लेयर में पास कर देता है जो कि उसे दूर किसी मशीन में भेज देता है।
4. अब सर्वर में ट्रांसपोर्ट लेयर मैसेज को सर्वर स्टब तक पास कर देता है जो कि उसे डीमार्शल यानी कि पैरामीटर्स को अनपैक करता है और इक्षित सर्वर रूटीन को नियमित कॉल प्रोसीजर का प्रयोग कर के कॉल करता है।
5. जब सर्वर का प्रोसीजर पूरा हो जाता है तब ये सर्वर स्टब को वापस चला जाता है (एक नार्मल प्रोसीजर कॉल return के द्वारा), जो return वैल्यूज को एक मैसेज में मार्शल कर देता है। इसके बाद सर्वर स्टब उस मैसेज को ट्रांसपोर्ट लेयर को दे देता है।
6. अब ट्रांसपोर्ट लेयर उस मैसेज को वापस क्लाइंट ट्रांसपोर्ट लेयर तक भेज देता है जो कि मैसेज को वापस क्लाइंट स्टब तक भेज देता है।
7. इसके बाद क्लाइंट स्टब return पैरामीटर्स को डीस्टब करता है और execution कॉलर के पास वापस चला जाता है।
RPC की समस्याएं
RPC में निम्नलिखित समस्याएं आती है जिन्हें एड्रेस करना जरूरी होता है:
1. RPC रनटाइम: RPC रनटाइम सिस्टम एक रूटीन की लाइब्रेरी है और सर्विसेज का सेट है जो उस नेटवर्क कम्युनिकेशन को हैंडल करता है जिसमे RPC मैकेनिज्म रह रहा होता है।
एक RPC कॉल के दौरान क्लाइंट साइड और सर्वर साइड रनटाइम सिस्टम का कोड बिन्डिंग, सही प्रोटोकॉल्स के बीच कम्युनिकेशन स्थापित करना, क्लाइंट और सर्वर के बीच कॉल डाटा पास करना,और कम्युनिकेशन एरर हैंडल करने जैसे कार्य करता है।
2. स्टब: स्टब का फंक्शन ये है कि वो प्रोग्रामर द्वारा लिखे गये एप्लीकेशन कोड को पारदर्शिता की सुविधा दे।
क्लाइंट साइड की तरफ स्टब क्लाइंट के लोकल प्रोसीजर कॉल और रन टाइम सिस्टम को हैंडल करता है। ये डाटा को मार्शल और अनमार्शल भी करता है। ये RPC रन टाइम प्रोटोकॉल को बुलाता है और निवेदित किये जाने पर बिन्डिंग के कुछ स्टेप्स भी करता है।
वहीं सर्वर की तरफ स्टब रन टाइम सिस्टम और लोकल प्रबन्धक प्रोसीजर के बीच समान इंटरफ़ेस की सुविधा देता है जिसे सर्वर द्वारा एक्सीक्यूट किया जाता है।
रिमोट प्रोसीजर कॉल में बिन्डिंग की प्रक्रिया (remote procedure call binding
सबसे अच्छा हल होता है कि डायनामिक बिन्डिंग का प्रयोग किया जाए और रनटाइम पर सर्वर को खोजा जाए जब RPC को पहली बार बनाया गया हो।
जब पहली बार क्लाइंट स्टब को बुलाया जाता है तब ये नेम सर्वर से कांटेक्ट करता है जिस से इसे उस ट्रांसपोर्ट एड्रेस का पता चलता है जहां सर्वर रह रहा है।
बिन्डिंग की प्रक्रिया के दो भाग होते हैं:
- नेमिंग:
दूर के प्रोसीजर को इंटरफ़ेस के द्वारा नेम किया जाता है। एक इंटरफ़ेस बराबर रूप से किसी ख़ास सर्विस की पहचान करता है, सर्विस के प्रकार की विवेचना करता है और उसे आर्गुमेंट के प्रकार भी बतलाता है।
- लोकेटिंग:
इसका अर्थ हुआ उस ट्रांसपोर्ट एड्रेस को पता करना जहां सर्वर असल में रह रहा हो। अगर हमारे पास सर्विस का ट्रांसपोर्ट एड्रेस आ जाए तो हम सीधा सर्वर को ही मैसेज भेज सकते हैं।
जिस सर्वर के पास ऑफर करने के लिए कोई सर्विस हो तो वो उसके लिए एक इंटरफ़ेस निर्यात करता है। एक इंटरफ़ेस को निर्यात करने से ये सिस्टम के साथ रजिस्टर हो जाता है ताकि क्लाइंट इसका प्रयोग कर सकें।
किसी क्लाइंट को किसी निर्यात किये हुए इंटरफ़ेस को आयात करना होता है उस से पहले कि संवाद शुरू हो।
RPC के फायदे
1. RPC abstraction की सुविधा देता है यानी नेटवर्क कम्युनिकेशन की मैसेज पासिंग प्रकृति यूजर से छिपी हुई रहती है।
2. RPC बहुत बार प्रोटोकॉल्स के लेयर में भी बदलाव करता है ताकि सिस्टम का परफॉरमेंस बढे। यहाँ परफॉरमेंस में एक छोटा सा विकास भी बहुत महत्वपूर्ण है क्योंकि प्रग्राम RPC को कभी-कभी बुला सकता है।
3. RPC न सिर्फ लोकल वातावरण में बल्कि एप्लीकेशन के डिस्ट्रिब्यूटेड वातावरण में एप्लीकेशन के प्रयोग को इनेबल करता है।
4. RPC के साथ कोड को बार-बार फिर से लिखने या डेवेलोप करने से छुटकारा मिलता है।
5. RPC प्रोसेस ओरिएंटेड और थ्रेड ओरिएंटेड मॉडल का समर्थन करता है।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।