जावा आरएमआई - परिचय

RMI के लिए खड़ा है Remote Method Invocation। यह एक ऐसा तंत्र है जो एक वस्तु को एक प्रणाली (JVM) में रहने की अनुमति देता है, जो किसी अन्य JVM पर चलने वाली वस्तु तक पहुंचने / आह्वान करने की अनुमति देता है।

आरएमआई का उपयोग वितरित अनुप्रयोगों के निर्माण के लिए किया जाता है; यह जावा प्रोग्राम के बीच रिमोट संचार प्रदान करता है। यह पैकेज में प्रदान किया गया हैjava.rmi

एक आरएमआई एप्लीकेशन का आर्किटेक्चर

RMI अनुप्रयोग में, हम दो प्रोग्राम लिखते हैं, a server program (सर्वर पर रहता है) और ए client program (ग्राहक पर रहता है)।

  • सर्वर प्रोग्राम के अंदर, एक दूरस्थ ऑब्जेक्ट बनाया जाता है और क्लाइंट (रजिस्ट्री का उपयोग करके) के लिए उस ऑब्जेक्ट का संदर्भ उपलब्ध कराया जाता है।

  • क्लाइंट प्रोग्राम सर्वर पर दूरस्थ वस्तुओं का अनुरोध करता है और इसके तरीकों को लागू करने की कोशिश करता है।

निम्नलिखित चित्र आरएमआई अनुप्रयोग की वास्तुकला को दर्शाता है।

आइए अब इस वास्तुकला के घटकों पर चर्चा करें।

  • Transport Layer- यह लेयर क्लाइंट और सर्वर को जोड़ता है। यह मौजूदा कनेक्शन का प्रबंधन करता है और नए कनेक्शन भी सेट करता है।

  • Stub- स्टब क्लाइंट पर रिमोट ऑब्जेक्ट का एक प्रतिनिधित्व (प्रॉक्सी) है। यह क्लाइंट सिस्टम में रहता है; यह क्लाइंट प्रोग्राम के लिए गेटवे के रूप में कार्य करता है।

  • Skeleton - यह ऑब्जेक्ट है जो सर्वर साइड पर रहता है। stub दूरस्थ वस्तु के लिए अनुरोध पारित करने के लिए इस कंकाल के साथ संचार करता है।

  • RRL(Remote Reference Layer) - यह वह परत है जो क्लाइंट द्वारा दूरस्थ ऑब्जेक्ट के लिए किए गए संदर्भों का प्रबंधन करता है।

एक RMI अनुप्रयोग का कार्य करना

निम्नलिखित बिंदु संक्षेप में बताते हैं कि RMI अनुप्रयोग कैसे काम करता है -

  • जब क्लाइंट दूरस्थ ऑब्जेक्ट पर कॉल करता है, तो उसे स्टब द्वारा प्राप्त किया जाता है जो अंततः इस अनुरोध को आरआरएल को पास करता है।

  • जब क्लाइंट-साइड आरआरएल अनुरोध प्राप्त करता है, तो यह एक विधि को आमंत्रित करता है invoke() वस्तु का remoteRef। यह सर्वर की ओर से आरआरएल को अनुरोध पारित करता है।

  • सर्वर साइड पर RRL स्केलेटन (सर्वर पर प्रॉक्सी) के लिए अनुरोध पारित करता है जो अंत में सर्वर पर आवश्यक वस्तु को आमंत्रित करता है।

  • परिणाम क्लाइंट के लिए सभी तरह से पारित किया जाता है।

मार्शलिंग और अनमरशलिंग

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

सर्वर साइड पर, पैक्ड पैरामीटर अनबंड किए जाते हैं और फिर आवश्यक विधि लागू की जाती है। इस प्रक्रिया के रूप में जाना जाता हैunmarshalling

RMI रजिस्ट्री

RMI रजिस्ट्री एक नेमस्पेस है जिस पर सभी सर्वर ऑब्जेक्ट रखे जाते हैं। हर बार सर्वर एक ऑब्जेक्ट बनाता है, यह इस ऑब्जेक्ट को RMIregistry (उपयोग करते हुए) के साथ पंजीकृत करता हैbind() या reBind()विधि)। इन्हें एक अद्वितीय नाम के रूप में पंजीकृत किया जाता हैbind name

दूरस्थ वस्तु को लागू करने के लिए, ग्राहक को उस वस्तु का संदर्भ चाहिए। उस समय, क्लाइंट रजिस्ट्री से ऑब्जेक्ट को उसके बाइंड नाम (का उपयोग करके) प्राप्त करता हैlookup() तरीका)।

निम्नलिखित दृष्टांत पूरी प्रक्रिया की व्याख्या करता है -

आरएमआई के लक्ष्य

आरएमआई के लक्ष्य निम्नलिखित हैं -

  • आवेदन की जटिलता को कम करने के लिए।
  • प्रकार की सुरक्षा के लिए।
  • वितरित कचरा संग्रह।
  • स्थानीय और दूरस्थ वस्तुओं के साथ काम करने के बीच अंतर को कम करें।