जावा दूरस्थ पद्धति उत्क्रियण (जावा रिमोट मेथड एक्टिवेशन)

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

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

RMI शब्द का उपयोग केवल प्रोग्रामिंग इंटरफ़ेस को निरूपित कर सकता है या API और JRMP, IIOP, या अन्य कार्यान्वयन दोनों को इंगित कर सकता है, जबकि RMI-IIOP शब्द (पढ़ें: IIOP पर RMI) विशेष रूप से RMI इंटरफ़ेस को दर्शाता है जो अधिकांश कार्यक्षमता को दर्शाता है। सहायक कोरबा कार्यान्वयन।

जावा आरएमआई का मूल विचार, वितरित कचरा-संग्रह (डीजीसी) प्रोटोकॉल, और मूल सूर्य कार्यान्वयन के अंतर्निहित अधिकांश आर्किटेक्चर, मोडुला -3 की नेटवर्क ऑब्जेक्ट सुविधा से आते हैं।

सामान्यीकृत कोड
मूल आरएमआई एपीआई के प्रोग्रामर ने हाइपरटेक्स्ट परहस्त शिष्टाचार  ट्रांसपोर्ट जैसे विभिन्न कार्यान्वयनों का समर्थन करने के लिए कुछ हद तक कोड को सामान्यीकृत किया। इसके अतिरिक्त, RMI इंटरफ़ेस के साथ संगत होने के लिए CORBA में तर्कों को मूल्य से कॉल करें पास करने की क्षमता जोड़ी गई थी। फिर भी, RMI-IIOP और JRMP कार्यान्वयनों में पूरी तरह से समान इंटरफेस नहीं हैं।

RMI कार्यक्षमता पैकेज में आती है, जबकि सूर्य का अधिकांश कार्यान्वयन में स्थित है  पैकेट। ध्यान दें कि जावा 5.0 से पहले जावा संस्करणों के साथ डेवलपर्स को आरएमआई स्टब्स को एक अलग संकलन चरण में संकलित करना था. Java के संस्करण 5.0 और उसके बाद के संस्करण को अब इस चरण की आवश्यकता नहीं है।

जिनि संस्करण
खून जावा में आरएमआई का अधिक उन्नत संस्करण प्रदान करता है। यह समान रूप से कार्य करता है लेकिन वितरित वस्तु अनुप्रयोगों के लिए अधिक उन्नत सुरक्षा, वस्तु खोज क्षमताएं और अन्य तंत्र प्रदान करता है।

उदाहरण
निम्न वर्ग आरएमआई का उपयोग कर एक साधारण क्लाइंट-सर्वर प्रोग्राम को लागू करते हैं जो एक संदेश प्रदर्शित करता है। इंटरफ़ेस - उस इंटरफ़ेस को परिभाषित करता है जो क्लाइंट द्वारा उपयोग किया जाता है और सर्वर द्वारा कार्यान्वित किया जाता है।

वर्ग - आरएमआई अनुरोधों को सुनता है और उस इंटरफ़ेस को लागू करता है जिसका उपयोग क्लाइंट द्वारा दूरस्थ तरीकों को लागू करने के लिए किया जाता है।

वर्ग - यह क्लाइंट है जो सर्वर पर रहने वाली दूरस्थ वस्तु के लिए संदर्भ (एक प्रॉक्सी) प्राप्त करता है और संदेश प्राप्त करने के लिए इसकी विधि को आमंत्रित करता है। यदि सर्वर ऑब्जेक्ट java.rmi.Remote के बजाय java.io.Serializable लागू करता है, तो इसे क्रमबद्ध किया जाएगा और क्लाइंट को मान के रूप में पास किया जाएगा।

इस उदाहरण को चलाने से पहले, हमें उस इंटरफ़ेस के लिए एक 'स्टब' फ़ाइल बनानी होगी जिसका हमने उपयोग किया था। इस कार्य के लिए हमारे पास RMI कम्पाइलर है - 'rmic' ध्यान दें कि गतिशील रूप से उत्पन्न स्टब फ़ाइलों के लिए J2SE समर्थन के संस्करण 5.0 को जोड़ा गया है, और rmic केवल पिछले रनटाइम के साथ पश्चगामी संगतता के लिए प्रदान किया गया है, या उन प्रोग्रामों के लिए जो दूरस्थ वस्तुओं को निर्यात करते समय एक स्पष्ट पोर्ट नंबर (या शून्य) प्रदान नहीं करते हैं, जो संभव होने के लिए उत्पन्न स्टब्स के लिए आवश्यक है, जैसा कि Javadoc for UnicastRemoteObject में वर्णित है। उपरोक्त कन्स्ट्रक्टर में टिप्पणी देखें।
 * ध्यान दें: हम रिमोट इंटरफ़ेस के कार्यान्वयन के साथ '*.class' फ़ाइल से एक स्टब फ़ाइल बनाते हैं, '*.java' फ़ाइल से नहीं।

बाहरी संबंध

 * The Java RMI tutorial - a good starting point to learn RMI. Also check the Hello World in RMI
 * the Java RMI online training - Very good for training JavaRMI and as reference
 * The RMI page in the JDK docs
 * (Sun's Java API Reference for the RMI package)
 * Programming WebLogic RMI - an introduction to RMI in Oracle Weblogic.
 * General Remote Method Invocation
 * Programming WebLogic RMI - an introduction to RMI in Oracle Weblogic.
 * General Remote Method Invocation