2012-01-09 8 views
6

मैं जावा ईई के लिए नया हूं और देखता हूं कि ईजेबी शुद्ध जावा/ओरेकल समुदाय के भीतर जीवित और अच्छी तरह से हैं। हालांकि काम पर हर कोई अपने चेहरे पर घृणास्पद दिखता है जब भी कोई और "ईजेबी" वाक्यांश का उपयोग करता है, जो मुझे लगता है कि वे या तो विलुप्त हो रहे हैं या किसी अन्य मिडलवेयर तकनीक के साथ आधुनिक विकास टीमों द्वारा प्रतिस्थापित किया गया है।ईजेबी और आधुनिक जावा विकास

जेएसपी ने जेएसएफ केंद्रित दृश्य प्रौद्योगिकियों को रास्ता दिया है, तो ईजेबी के लिए भी यही सच है? किसी भी तरह से, ईजेबी के कुछ लोकप्रिय विकल्प क्या हैं और वे अलग कैसे हैं? ईजेबी पर वे क्या फायदे या फीचर्स पेश करते हैं?

+1

इसी तरह के प्रश्न पहले यहां पूछे गए हैं। इन प्रश्नों को देखें - [क्या-उपयोग-हैं-ejbs] (http://stackoverflow.com/questions/5579890/what-use-are-ejbs), [इन-क्या-स्थितियां-हैं-ejbs-used] (http://stackoverflow.com/questions/4773927/in-what-situations-are-ejbs-used-are-they-required-in-websites-web-applicatio), और [वसंत-बनाम-एजेबी] (http: //stackoverflow.com/questions/1779169/spring-vs-ejb-can-spring-replace-ejb) – CoolBeans

उत्तर

9

ईजेबी का पहला संस्करण 1 99 0 के दशक के अंत में पेश किया गया था।

ईजेबी का उल्लेख होने पर आपके सहकर्मियों पर घृणित रूप से सामना करना पड़ सकता है ईजेबी के पहले दो संस्करणों (जैसे जटिल एक्सएमएल परिनियोजन वर्णनकर्ता) के बहुत ही जटिल और परेशानीपूर्ण उपयोग पैटर्न का परिणाम हो सकता है।

3.0 और 3.1 उपयोग की आसानी के संबंध में प्रमुख सुधार थे।

एक लोकप्रिय विकल्प Spring framework है + Hibernate/JPA

2

जब उन्हें पेश किया गया, तो ईजेबी एक समस्या की तलाश में एक समाधान था, और उस पर एक उच्च अंत वाला।

ईजेबी को कार्यक्रम की एक इकाई को परिभाषित करने के लिए कार्यक्रमों का एक तरीका प्रदान करना था, जैसे कि ईजेबी "युक्त" अनुप्रयोग सर्वर लोड संतुलन, स्थान, असफलता, सुरक्षा जैसे सभी कठिन बिट्स को संभालेगा। रिमोटिंग इत्यादि। वास्तविकता में, जब डेवलपर्स चमकदार नई भाषा पर सभी को निकाल दिया गया था, तो कार्यान्वयन सभी भारी उठाने के लिए वास्तव में तैयार नहीं थे, उन्होंने सुविधाओं का लाभ उठाया हो सकता है लेकिन कॉन्फ़िगरेशन और तैनाती निश्चित रूप से एक दुःस्वप्न थी। इससे मदद नहीं मिली कि ईजेबी स्पेक उस समय के दौरान प्रवाह में था और प्राथमिक उपयोग-केस उम्मीदवार, एंटिटी बीन के प्रदर्शन में गंभीर कमी आई थी।

मेरे मामले में, हमने हमेशा एक बैच प्रक्रिया को संभालने के लिए ईजेबी विकसित किए - एक बार दिन में लेनदेन का एक सेट मिलता है, कुछ डेटाबेस सामान करते हैं, फिर उत्पादन को विभिन्न हितधारकों को भेजते हैं और रिपोर्ट जेनरेट करते हैं। हमें अन्य ईजेबी सुविधाओं का उल्लेख न करने के लिए थ्रेडिंग या लोड संतुलन की आवश्यकता नहीं थी। सबसे अधिक इस्तेमाल किया गया अनुप्रयोगों के लिए वेब केंद्रित दृष्टिकोण था। कुछ बैच नौकरियों और कुछ वेब पृष्ठों के साथ whold आवेदन किया जा सकता था।

+0

मुझे किसी भी तरह याद है कि ईजेबी का मूल उद्देश्य उद्देश्य वितरित घटक मॉडल प्रदान करना था, इस विचार के साथ कि आप अपना खरीद सकते हैं विक्रेताओं से बाजार पर घटक। जैसे एक कर गणना घटक।यह विचार कभी नहीं लिया गया, लेकिन ऐसा लगता है कि शुरुआती तकनीक में कई संकेत हैं, इसलिए एक 'बीन नियोक्ता' लक्षित वातावरण में काम करने के लिए (बंद स्रोत) बीन को अनुकूलित कर सकता है, फिर भी इस विचार को संकेत देता है। –

14

अपने सहकर्मियों केवल EJB2 देखा और पहले हो सकता है, जो वास्तव में अपवित्र जानवरों है कि बहुत कम लोगों को का उपयोग कर मज़ा आया थे।

ईजेबी 2 में, चीजों की सबसे सरलता के लिए बहुत ही आक्रामक ढांचे के लिए इंटरफेस को लागू किया जाना चाहिए, पागल जीवन चक्र विधियों के लिए जिसके लिए डेवलपर को कार्यान्वयन प्रदान करने की आवश्यकता थी, लेकिन जिसका (व्यवसाय) लक्ष्यों से कोई लेना देना नहीं था डेवलपर का। इस तरह के कुछ कलाकृतियों को प्रदान किया जाना था।

इसके अतिरिक्त प्रत्येक बीन को बहुत ही वर्बोज़ में प्रविष्टियों के साथ सिंक में रखा जाना चाहिए और तैनाती वर्णनकर्ता (एक एक्सएमएल फ़ाइल) पढ़ने में मुश्किल होनी चाहिए। जैसे कि यह एक डेवलपर के लिए पर्याप्त अपमानजनक नहीं था, विशेष उपकरण का उपयोग बीन को बढ़ाने और प्रॉक्सी कक्षाओं, कंकाल और स्टब्स उत्पन्न करने के लिए किया जाना था। विरासत की तरह सामान्य ओओ चीजें समर्थित नहीं थीं। इंजेक्शन का एक प्रकार था, लेकिन एक अजीब व्यक्ति जो चीजों को एक प्रकार के मानचित्र (वास्तव में निर्देशिका) में डालकर अस्तित्व में था, प्रत्येक बीन से जुड़ा हुआ था।

मूल ईजेबी 1 मॉडल ने सभी संचार को रिमोट और सभी वस्तुओं को वितरित करने के लिए मजबूर किया (ईजेबी मूल रूप से केवल एक रिमोटिंग तकनीक के रूप में देखा गया था)।इसलिए ईजेबी के लाभ प्राप्त करने के लिए आपको अपने आर्किटेक्चर को वितरित करने के लिए मजबूर होना पड़ा, भले ही यह पूरी तरह से अनावश्यक था।

शायद सभी का सबसे बड़ा अपमान एंटिटी बीन (जेपीए इकाइयों के साथ भ्रमित नहीं होना) की अवधारणा थी। इस प्रकार के बीन के साथ दोष इतने महान थे कि उस समय ईजेबी के सबसे बड़े समर्थक भी इसे किसी को भी अनुशंसा नहीं कर सकते थे।

फिर एक बहुत ही व्यावहारिक समस्या के रूप में, ईजेबी कार्यान्वयन के बीच संगतता कम से कम कहने के लिए बहुत अच्छी नहीं थी। विशेष रूप से इकाई बीन्स को विक्रेता विशिष्ट विन्यास की भारी मात्रा की आवश्यकता होती है।

इसे बंद करने के लिए, ईजेबी कार्यान्वयन के लिए हेवीवेट (स्थापित आकार और आवश्यक मेमोरी के मामले में) अनुप्रयोग सर्वर, जो बंद स्रोत थे और महंगे थे (इस प्रकार कंपनियों को अपग्रेड या स्विचिंग से रोकना क्योंकि निवेश को पहले भुगतान करना था वापस)। मुझे उस समय प्रौद्योगिकी के बारे में ब्लॉग करने वाले कई लोगों को याद नहीं किया जा सकता है, और जहां तक ​​मुझे याद है कि तकनीक ज्यादातर बड़े निगमों के प्रबंधकों को बिक्री टीमों द्वारा लगाई गई थी।

यह आश्चर्य की बात नहीं है कि तकनीक को औसत डेवलपर द्वारा वास्तव में प्यार नहीं किया गया था।

सूर्य बस समय में जागरूक हो गया कि तकनीक पूरी तरह से गलत दिशा में जा रही थी और 180 डिग्री मोड़ लगा और भारी पुन: इंजीनियरिंग प्रयास शुरू किया।

परिणामस्वरूप, ईजेबी 3 (2006) एक बहुत ही हल्का और हल्का दृष्टिकोण है। कार्यान्वित करने के लिए कोई आवश्यक ढांचागत इंटरफेस नहीं हैं, वहां कोई आवश्यक एक्सएमएल नहीं है, केवल एक ही बीन को कोड किया जाना चाहिए (केवल साधारण पीओजेओ), हर जगह सैने डिफ़ॉल्ट हैं (कॉन्फ़िगरेशन पर सम्मेलन), कोई विशेष उपकरण आवश्यक नहीं है (सामान्य जावैक करते हैं), और स्थानीय बीन्स का उपयोग स्थानीय रूप से आम तौर पर आम मामला है।

एंटीटी बीन्स इतने दोषपूर्ण थे कि उन्हें पूरी तरह से गिरा दिया गया और अन्य लोगों के बीच टॉपलिंक और हाइबरनेट द्वारा समर्थित अधिक से अधिक स्वीयर दृष्टिकोण से प्रतिस्थापित किया गया।

इस तकनीक को मुक्त, हल्के और खुले स्रोत कार्यान्वयन की विस्तृत उपलब्धता के साथ संयोजित करें, जिसमें प्रौद्योगिकी के वकालत करने वाले कई प्रसिद्ध ब्लॉगर्स (जैसे एडम बिएन, रेझा रहमान, गेविन किंग) और लोकप्रियता में वृद्धि को समझा जाना आसान है ।

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

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

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