2013-03-24 6 views
5

मुझे कभी भी ईजेबी का उपयोग क्यों करना चाहिए? मैं इससे क्या प्राप्त कर सकता हूं कि मैं अन्य तरीकों से नहीं मिल सकता?पीओजेओ की तुलना में ईजेबी का उपयोग करने के क्या फायदे हैं?

POJO की तुलना में ईजेबी का उपयोग करने के क्या फायदे हैं?

+5

घोषणात्मक वितरित लेनदेन, घोषणात्मक सुरक्षा, निर्भरता इंजेक्शन, स्वचालित थ्रेड-सुरक्षा, राज्यिक सेम, निष्क्रियता और सक्रियण, रिमोटिंग इत्यादि। –

उत्तर

6

EJBs जावा ईई अनुप्रयोग सर्वर द्वारा प्रबंधित और निगरानी की जाती है, यह ग्राहकों को निर्भरता इंजेक्शन के माध्यम से बनाने और उन्हें lifecycles प्रबंधित करने का ख्याल रखती है। ईजेबी पूल में ऐप-सर्वर द्वारा रखे जाते हैं। प्रत्येक बार जब कोई ग्राहक ईजेबी प्राप्त करता है, तो ऐप-सर्वर पूल से एक को चुनता है और उसे क्लाइंट को सौंपता है। क्लाइंट के साथ ऐसा करने के बाद (क्लाइंट साइड पर छोड़ा गया कोई संदर्भ नहीं है) इसे पूल में वापस कर दिया गया है और अन्य क्लाइंट को असाइन करने के लिए तैयार है।

आवेदन की स्केलेबिलिटी के लिए पूलिंग बहुत महत्वपूर्ण है। बढ़ते भार को संभालने के लिए आपको तैनात आवेदन में कुछ भी बदलने की ज़रूरत नहीं है और संसाधनों की मात्रा सीमित होने के बाद से आपका आवेदन घुटनों पर ऐप-सर्वर नहीं लेगा यदि बहुत अधिक भार हो। सब कुछ ऐप सर्वर को कॉन्फ़िगर करके किया जाता है।

ईजेबी कर सकते हैं - अगर तदनुसार एनोटेटेड - लेनदेन और असीमित निष्पादन को संभालें और रिमोट क्लाइंट के संपर्क में लाया जा सकता है।

सत्र सेम

  1. Stateless EJBs:

    EJBs के चार प्रकार के होते हैं ग्राहक कुछ कार्रवाई करने और लौटने के लिए, के बाद से सर्वर पर असाइन कर सकते हैं एक राज्य धारण करने के लिए नहीं किया जा सकता की सुविधा देता है अन्य क्लाइंट (आप इसका उपयोग क्लाइंट के बीच संचार के रूप में कर सकते हैं, उदाहरण के लिए यदि आपके पास एक इंस्टेंस वैरिएबल है तो उसे एक मान पर सेट करें, तो यह मान अन्य क्लाइंट्स द्वारा देखा जा सकता है)। आप स्टेटलेस ईजेबी विधि का उपयोग केवल एक प्रोग्राम के प्रोग्रामिंग प्रोग्रामिंग या स्थिर तरीकों के रूप में करने के बारे में सोच सकते हैं।

  2. Statefull EJBs: के रूप में नाम सर्वर की गारंटी देता है इस उदाहरण है कि कहते हैं: ग्राहक से अधिक अनुरोध भर में एक राज्य को बनाए रखने के (ग्राहक इसे करने के लिए एक संदर्भ होने चाहिए जिसे अन्यथा अनुप्रयोग सर्वर एक और ग्राहक को असाइन कर सकते हैं)
  3. Singleton EJBs चलें पूरे आवेदन के लिए अद्वितीय।

संदेश प्रेरित सेम

  1. Message driven EJBs: भी राज्यविहीन और भेजने के लिए और JMS के साथ संयोजन में आम तौर पर संदेश प्राप्त करने के लिए प्रयोग किया जाता है। संदेश हैंडलर फ़ंक्शन असीमित रूप से निष्पादित करता है।

जबकि ईबीजे सभी और अन्य चीजों की पेशकश करते हैं, पीओजेओ केवल पीओजेओ कम नहीं हैं और कुछ भी नहीं।

+0

> क्लाइंट को इसके संदर्भ में होना चाहिए अन्यथा ऐप सर्वर इसे किसी अन्य क्लाइंट को असाइन कर सकता है - यह पूरी तरह से सच नहीं है। ऐप सर्वर के पास जीसी के साथ कोई विशेष इंटरैक्शन नहीं है यह देखने के लिए कि ग्राहक के पास अभी भी एक संदर्भ है या नहीं। इसे '@ निकालें' विधि के बाद संभावित रूप से फिर से सेट और पुनः असाइन किया जा सकता है। अधिक आम तौर पर अन्य क्लाइंट को एक नया बीन मिलेगा, क्योंकि पूलिंग 'स्टेटलेस' बीन्स के लिए अधिक आम है। –

+0

आपकी परिशुद्धता के लिए धन्यवाद, यह कुछ परीक्षणों पर आधारित था, मैंने क्लाइंट के रूप में सर्वलेट का उपयोग करके और राज्यव्यापी सत्र बीन के लिए '@ लोकलबीन' का उपयोग करके कुछ महीने पहले किया था।मैं केवल इसे (वेब) सत्र में डालकर एक राज्य को रखने में सक्षम था। – A4L

+0

... चुड़ैल ने अभी तक अनुत्तरित किया - प्रश्न 'सत्र बीन' में 'सत्र' क्या है? अगर आपके पास आगे के रीडिंग के लिए कुछ लिंक हैं तो मैं सराहना करूंगा! – A4L

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