2009-05-26 15 views
15

कुछ अतीत परीक्षा पत्र संशोधन के लिए एक परीक्षा मुख्य रूप से घटक उन्मुख डिजाइन और J2EE पर ध्यान केंद्रित, मैं निम्नलिखित प्रश्न सामने आने वाले:EJB होम/रिमोट और LocalHome/स्थानीय इंटरफेस

परिदृश्य 3 का एक प्रारंभिक जांच : "एक्सचेंज अनुरोध" से पता चलता है कि दो ईजेबी एक उपयुक्त समाधान प्रदान करेंगे: अनुरोध के निरंतर गुणों का प्रतिनिधित्व करने के लिए प्रसंस्करण और एक इकाई बीन जिसे ExchangeRequest कहा जाता है, को नियंत्रित करने के लिए EnterExchangeRequest नामक एक सत्र बीन। निम्नलिखित इंटरफेस की भूमिका पर चर्चा:

  • होम
  • रिमोट
  • LocalHome
  • स्थानीय

और कैसे वे करने के लिए EJBs की सेवाओं में ऊपर वर्णित पहुँच प्रदान करेगा।

मैं यह समझाने की कोशिश कर सकता हूं कि Home और Remote इंटरफेस तस्वीर में फिट होंगे। मैंने यह भी सुना है कि व्याख्याता का कहना है कि LocalHome, और Local (क्यों?) द्वारा, लेकिन वे मुझे एक ही समय में सभी चार की भूमिका पर चर्चा करने के लिए क्यों कह रहे हैं?


मैं इसे सही जब मैं कहता हूँ, EJB कंटेनर (अनुप्रयोग सर्वर) है कि एक अंतरफलक Home या Remote है देखना होगा और फिर निर्णय करते हैं कि सेम किसी भी मशीन पर 'जी' कर सकते हैं क्लस्टर, जबकि मामले में इंटरफेस LocalHome और Local कंटेनर को पता चलेगा कि सेम को कई मशीनों में वितरित नहीं किया जा सकता है और इसलिए उन्हें केवल एक मशीन में 'जीवित' रखा जाएगा?


मैं इस उद्यम जावा जंगल में पूरी तरह खो गया हूं। मैं एक बीन ओवरफ्लो का अनुभव कर रहा हूं। क्या आप कृपया मुझे बता सकते हैं कि मेरी कौन सी धारणाएं गलत हैं, मेरी गलतफहमी और गलतियों को इंगित करें।

उन सभी को धन्यवाद जो इन ईजेबी इंटरफेस के साथ मेरी मदद करने के इच्छुक हैं।

पीएस ध्यान दें कि मैं आपको पिछले परीक्षा पत्र से प्रश्न का उत्तर देने के लिए नहीं कह रहा हूं। अगर आप इस बारे में कोई विचार करते हैं तो यह उत्सुक है कि यह पूछने के बाद वे क्या कर सकते हैं।

+10

उलझन में तैनात किया गया हो? संघ में शामिल हों। – Cheeso

+0

मैं आपको पुरुषों को महसूस करता हूं, मुझे बीन ओवरफ्लो मिल रहा है :) –

उत्तर

6

घर रिमोट के निर्माण के लिए ज़िम्मेदार है (इसके कन्स्ट्रक्टर की तरह) और लोकलहोम और लोकल का एक ही रिश्ते है।

प्रत्येक मामले में कंटेनर आपको प्रॉक्सी दे रहा है जो आपके द्वारा लिखे गए वास्तविक ईजेबी वर्ग का संदर्भ देता है।

अगर मुझे लगता है कि सवाल क्या था, तो सत्र बीन के लिए रिमोट का उपयोग और इकाई बीन के लिए स्थानीय था।

वैसे भी, हालांकि ये अवधारणाएं अभी भी मौजूद हैं, ईजेबी 3 में चीजें बहुत बेहतर हो गई हैं।

संपादित करें: टिप्पणी के जवाब में, ईजेबी 3 के साथ, बीन कक्षा स्वयं रिमोट और घर इंटरफेस को सीधे (सत्र बीन्स के लिए) लागू कर सकती है। उन्हें ईजेबी की एक टिप्पणी के साथ बनाया जाता है।राज्य के मुद्दों से निपटने के लिए राज्यिक बीन्स के पास कुछ और टिप्पणियां हैं। इकाई बीन्स में होम इंटरफ़ेस नहीं है, और स्थानीय इंटरफ़ेस की आवश्यकता नहीं है, आप सीधे जावा ऑब्जेक्ट से बातचीत कर सकते हैं। एक EntityManager है जो एक क्वेरी के आधार पर सही इकाई सेम प्राप्त करता है, और एंटीटीमेनगर को एनोटेशन के माध्यम से इंजेक्शन दिया जाता है।

उस तरह के अनुच्छेद में यह बताता है। इस सामान के लिए वेब पर बहुत अच्छे ट्यूटोरियल हैं, लेकिन सामान्य रूप से ईजेबी समस्या की एक श्रेणी को हल करते हैं, जब तक कि आप समस्या से निपटने तक सराहना करना मुश्किल हो। वे इसे हल करने का एकमात्र तरीका नहीं हैं, लेकिन जब तक आप इस प्रकार के प्रोग्रामिंग से निपटते हैं, तो बस इसके बारे में पढ़ना वास्तव में इससे संबंधित नहीं होगा।

+0

क्या आप कृपया ईजेबी 3 में चीजों को सरल बनाने के तरीके के बारे में एक स्केच भी प्रदान कर सकते हैं? यह जानना अच्छा लगेगा। –

+0

पुन: संपादित करें, बीन कक्षाओं को घर इंटरफ़ेस को लागू नहीं करना चाहिए। सरलीकरण की मेरी व्याख्या होगी: ईजेबी 3 में, जेपीए प्रभावी रूप से इकाई सेम की जगह लेता है, लेकिन यदि आप इकाई सेम का उपयोग करते हैं, तो आपको अभी भी एक होम इंटरफ़ेस का उपयोग करना होगा। स्टेटलेस सत्र बीन्स को घर इंटरफेस की आवश्यकता नहीं है, और यदि कोई परिभाषित नहीं किया गया है, तो व्यापार इंटरफेस सीधे जेएनडीआई और कैश से देखा जा सकता है। राज्यव्यापी सत्र बीन्स को घर इंटरफ़ेस की भी आवश्यकता नहीं होती है, लेकिन यदि घर इंटरफ़ेस का उपयोग नहीं किया जाता है, तो JNDI लुकअप को "फैक्ट्री" के रूप में उपयोग किया जाना चाहिए। –

7

जैसा कि यिश द्वारा इंगित किया गया है, होम/रिमोट और लोकलहोम/लोकल एक साथ बंधे हैं और होम इंटरफेस एक कन्स्ट्रक्टर के रूप में कार्य करता है।

स्थानीय बीन्स उन जेवीएम से बंधे हैं जो वे रहते हैं, आप उन्हें बाहर से नहीं पहुंच सकते हैं। रिमोट बीन्स को अन्य जेवीएम से एक्सेस किया जा सकता है।

मैं एक समान दृष्टिकोण का उपयोग करता हूं: मैं हमेशा कान तैनात करता हूं। कान के लिए बीन्स मैं स्थानीय सेम बना देता हूं, अन्य कानों द्वारा उपयोग के लिए बीन्स का मतलब है जो मैं दूरस्थ बनाता हूं। लेकिन स्थानीय कानों को अन्य कानों में उपयोग करना संभव है, जब तक कि एक ही JVM

+2

प्रति ईजेबी स्पेक, "स्थानीय क्लाइंट व्यू के माध्यम से एंटरप्राइज़ बीन तक पहुंच केवल स्थानीय क्लाइंट व्यू के साथ एंटरप्राइज़ बीन के समान पैकेज के लिए समर्थित स्थानीय क्लाइंट के लिए समर्थित होना आवश्यक है। इस विनिर्देश के अनुपालन कार्यान्वयन वैकल्पिक रूप से पहुंच का समर्थन कर सकते हैं किसी अन्य एप्लिकेशन में पैक किए गए स्थानीय क्लाइंट से एंटरप्राइज़ बीन के स्थानीय क्लाइंट व्यू में। [...] स्थानीय क्लाइंट व्यू में इंटर-एप्लिकेशन एक्सेस पर निर्भर अनुप्रयोग गैर-पोर्टेबल हैं। " –

संबंधित मुद्दे