जैसा कि मैं इसे समझता हूं, एक बार जब मैंने दो प्रणालियों के बीच एक आरएमआई संचार लिंक स्थापित किया है, तो मैं उस ऑब्जेक्ट को पास कर सकता हूं जो रिमोट विधियों में से एक में "रिमोट" लागू करता है जो उस प्रकार का ऑब्जेक्ट लेता है और दूर-दराज की इच्छा बस नई ऑब्जेक्ट के लिए रिमोट इंटरफ़ेस प्राप्त करें (दूसरे शब्दों में, यह ऑब्जेक्ट को क्रमबद्ध करने के विरोध में एक नया रिमोट कनेक्शन बन जाएगा।)आरएमआई-रिमोट विधि के माध्यम से रिमोट ऑब्जेक्ट को कैसे पास करता है?
क्या यह सही है?
यदि ऐसा है, तो मुझे लगता है कि यह विधि हस्ताक्षर के साथ कुछ करने के लिए है - लेकिन मैं यह जानना चाहता हूं कि यह कैसे निर्धारित करता है कि इसे पूरी वस्तु को क्रमबद्ध करने के बजाय एक नया रिमोट ऑब्जेक्ट बनाना चाहिए।
शब्दों में डालना वाकई मुश्किल है। मुझे इसे आज़माएं:
मान लें कि मेरे पास क्लाइंट और सर्वर सिस्टम है। सर्वर सिस्टम पर मैं क्लाइंट सिस्टम पर एक आरएमआई ऑब्जेक्ट बना और प्रकाशित करता हूं, मैं इंटरफ़ेस पुनर्प्राप्त करता हूं और सर्वर सिस्टम से इंटरैक्ट कर सकता हूं।
Client Server
Object1 RemoteIface ---- Object1 Implementation
अब तक तो अच्छा। क्लाइंट पर, ऑब्जेक्ट 1.remoteMethod() सर्वर पर निष्पादित करेगा (पैरामीटर पर क्रमबद्ध करने के बाद)।
अब, यहाँ सवाल है, ग्राहक पर मैं इस तरह कोड निष्पादित करें:
Client Server
Object1 RemoteIface ----- Object1 Implementation
Object2 Implementation ----- Object2 RemoteIface
:
Object2 object2=new object2(); // Also a remote object
object1.send(object2);
मैं यह समझ के रूप में, उस बिंदु पर, अपने सिस्टम के लिए एक नया संचार तंत्र होगा
इस बिंदु पर, यदि सर्वर ऑब्जेक्ट 2 पर एक विधि कॉल करता है, तो उस विधि को वास्तव में क्लाइंट पर निष्पादित किया जाएगा।
मैं क्या अंक प्रणाली का निर्णय लेता है पर सोच रहा हूँ (के रूप में यह किसी भी गैर-दूरस्थ वस्तु के साथ होता है) बस यह serializing के बजाय यह करने के लिए।
या क्या मैं पूरी तरह से गलत हूं और यह सिर्फ इसे धारावाहिक बनाता है और मुझे वास्तव में दूरस्थ कॉल बनाने के लिए "getRemoteInterface()" विधि कॉल की आवश्यकता है?
मुझे यकीन नहीं है कि आप समझ गए हैं। मैं इसे फिर से लिखने की कोशिश करूंगा ... –
ऐसा लगता है जैसे चार्ली आपके प्रश्न की व्याख्या कर रहा है जैसा मैंने किया था, और अपने जवाब के साथ लक्ष्य पर सही है। यदि आप एक पैरामीटर (या ऑब्जेक्ट लौटाते हैं) जो रिमोट लागू करता है, एक गतिशील प्रॉक्सी कंकाल बनाया जाता है, और उस कंकाल को संबोधित करने वाली एंडपॉइंट जानकारी ("मान" की बजाय "संदर्भ" की तरह होती है)। रिसीवर पर, रिमोट ऑब्जेक्ट से बात करने के लिए एक गतिशील प्रॉक्सी स्टब बनाया जाता है। धारावाहिक के बजाय रिमोट का निर्णय रिमोट इंटरफ़ेस पर आधारित है। – erickson
ठीक है, ऐसा लगता है जैसे आपको यह सही मिला और मैंने बस अपने प्रश्न को दोबारा लिखने का एक गुच्छा बर्बाद कर दिया। लेकिन क्या आप "रिमोटइंटरफेस" भाग पर अधिक स्पष्ट हो सकते हैं? अगर मैं इसे दूरस्थ इंटरफ़ेस में डाल देता हूं, तो क्या यह कार्यान्वयन से इंटरफेस को अलग कर देगा, या क्या इसे विधि कॉल से गुज़रना होगा? –