मैं यह समझने की कोशिश कर रहा हूं कि ईजेबी में अलग-अलग क्लाइंट के विचारों का उद्देश्य और उद्देश्य क्या है। क्या कोई समझाने की कोशिश कर सकता था?
मैं यह समझने की कोशिश कर रहा हूं कि ईजेबी में अलग-अलग क्लाइंट के विचारों का उद्देश्य और उद्देश्य क्या है। क्या कोई समझाने की कोशिश कर सकता था?
जवाबों:
दूरस्थ ग्राहक दृश्य
जब आपका EJB और उसके ग्राहक एक वितरित वातावरण में होंगे - अर्थात EJB और ग्राहक अलग-अलग Java वर्चुअल मशीनों पर निवास करेंगे। उदाहरण: EJBs एक WebSphere Application Server और सर्वलेट्स पर होस्ट किया गया है जो एक Tomcat सर्वर पर होस्ट किए गए EJB API का उपभोग करते हैं।
स्थानीय ग्राहक दृश्य
केवल जब यह गारंटी दी जाती है कि अन्य उद्यम सेम या ग्राहक केवल एक ही जेवीएम के भीतर सेम को संबोधित करेंगे। उदाहरण के लिए, EJBs और साथ ही एक ही WebSphere सर्वर पर तैनात सर्वलेट्स।
नो-इंटरफ़ेस दृश्य
लगभग स्थानीय क्लाइंट दृश्य के समान है, लेकिन मतभेद हैं। इस मामले में क्लाइंट व्यू इंटरफेस लागू करने के लिए आपकी बीन क्लास की आवश्यकता नहीं है। बीन क्लास के सभी सार्वजनिक तरीके स्वचालित रूप से कॉलर के संपर्क में हैं। नो-इंटरफ़ेस दृश्य हमेशा एक EJB संदर्भ प्राप्त करता है - जैसे स्थानीय या दूरस्थ दृश्य - या तो इंजेक्शन या JNDI लुकअप के माध्यम से; लेकिन, EJB संदर्भ का जावा प्रकार स्थानीय इंटरफ़ेस के प्रकार के बजाय बीन क्लास प्रकार है। यह जावा ईई 6 के हिस्से के रूप में शुरू की गई एक सुविधा है।
स्थानीय क्लाइंट दृश्य और नो-इंटरफ़ेस दृश्य के बीच अंतर
नो-इंटरफ़ेस दृश्य के मामले में, क्लाइंट और लक्ष्य बीन को एक ही एप्लिकेशन (EAR) में पैक किया जाना चाहिए। स्थानीय दृश्य के मामले में, क्लाइंट को एंटरप्राइज़ एप्लिकेशन की तुलना में एक अलग एप्लिकेशन में पैक किया जा सकता है। तो, यह आपके घटकों को ठीक करने के मामले में अधिक लचीलापन देता है।
आप अपने API उपयोग परिदृश्य के आधार पर स्थानीय क्लाइंट दृश्य बनाम नो-इंटरफ़ेस दृश्य का उपयोग कर सकते हैं। यह भविष्य के चश्मे में लचीली सुविधाओं को प्राप्त करने के लिए नो-इंटरफ़ेस दृश्य के लिए बहुत संभावना है।
कारण
ऐतिहासिक रूप से या अन्यथा, ईजेबी सेवाओं का उपयोग करने के इच्छुक ग्राहक को कंटेनर (कुछ प्रारंभिक संदर्भों के साथ) को "देखना" चाहिए था। ऐसा इसलिए था क्योंकि सभी चालान कंटेनर द्वारा प्रदान किए गए एक विशेष ईजेबी संदर्भ (प्रॉक्सी) के माध्यम से किए जाते हैं। यह कंटेनर को सभी अतिरिक्त बीन सेवाओं जैसे पूलिंग, कंटेनर-प्रबंधित लेनदेन आदि प्रदान करने की अनुमति देता है। इसलिए, एक ग्राहक new
ऑपरेटर के साथ एक EJB को स्पष्ट रूप से नहीं कर सकता है । क्लाइंट दृश्य कुछ इंटरफेस के माध्यम से प्रदान किया जाता है जो क्लाइंट के पास होगा। सर्वर इंटरफेस पर प्रॉक्सी अहसास इन इंटरफेस के आधार पर किया जाता है। जैसा कि ऊपर बताया गया है, अलग-अलग क्लाइंट व्यू को अलग-अलग परिनियोजन परिदृश्यों के अनुरूप परिभाषित किया जाता है।
new
तो आप एक नया उदाहरण प्राप्त करते हैं। बस इतना ही। उस नए उदाहरण में पूलिंग के संदर्भ में कंटेनर से कोई "समर्थन" नहीं होगा, इसके संदर्भ को सेट करना आदि। आप अपने दम पर चल रहे हैं।
EJB 3.1 की धारा 3.2.2 के अनुसार विशिष्टता:
स्थानीय क्लाइंट दृश्य के माध्यम से एंटरप्राइज़ बीन तक पहुंच केवल स्थानीय क्लाइंट दृश्य प्रदान करने वाले एंटरप्राइज़ बीन के रूप में एक ही एप्लिकेशन के भीतर पैक किए गए स्थानीय क्लाइंट के लिए समर्थित होना आवश्यक है। इस विनिर्देश के अनुरूप कार्यान्वयन वैकल्पिक रूप से एक अलग अनुप्रयोग में पैक किए गए स्थानीय क्लाइंट से एंटरप्राइज़ बीन के स्थानीय क्लाइंट दृश्य तक पहुंच का समर्थन कर सकते हैं। स्थानीय क्लाइंट दृश्य के लिए अंतर-एप्लिकेशन पहुंच के लिए कॉन्फ़िगरेशन आवश्यकताएँ विक्रेता-विशिष्ट हैं और इस विनिर्देश के दायरे से बाहर हैं। स्थानीय क्लाइंट दृश्य के लिए अंतर-एप्लिकेशन पहुंच पर निर्भर अनुप्रयोग गैर-पोर्टेबल हैं।
नो-इंटरफ़ेस दृश्य केवल एक सुविधा सुविधा है जो एक बीन को एक अलग इंटरफ़ेस घोषित किए बिना एक स्थानीय क्लाइंट दृश्य को उजागर करने की अनुमति देता है।