EJB2 बनाम EJB3
EJB (एंटरप्राइज JavaBeans) एक Java API (एप्लीकेशन प्रोग्रामिंग इंटरफेस) है जो Java EE (Java Platform, Enterprise Edition) विनिर्देश के भीतर पाया जाता है। ईजेबी उद्यम अनुप्रयोगों के विकास के लिए एक वास्तुशिल्प मॉडल का वर्णन करता है। यह एक प्रबंधित सर्वर-साइड मॉडल है जो एंटरप्राइज़ एप्लिकेशन के व्यावसायिक तर्क को कैप्चर करने में सक्षम है। आईबीएम ईजेबी का मूल निर्माता है जिसने इसे 1997 में विकसित किया था। सन माइक्रोसिस्टम्स ने इसे 1999 में अपनाया था।
ईजेबी की शुरुआत से पहले, यह पाया गया कि बैक-एंड बिजनेस कोड में पाई जाने वाली समस्याओं के समाधान प्रोग्रामर द्वारा अक्सर फिर से लागू किए जाते थे।नतीजतन, ईजेबी को इन सामान्य समस्याओं जैसे दृढ़ता, लेन-देन की अखंडता और सुरक्षा के समाधान के लिए पेश किया गया था। ईजेबी इन बैक एंड समस्याओं को संभालने के लिए मानक तरीके प्रदान करता है, यह निर्दिष्ट करके कि एप्लिकेशन सर्वर को लेनदेन कैसे संसाधित करना चाहिए, जेपीए (जावा पर्सिस्टेंस एपीआई) सेवाओं के साथ एकीकृत करना, समवर्ती नियंत्रण को संभालना, जेएमएस (जावा संदेश सेवा) घटनाओं को संभालना, जेएनडीआई के साथ नामकरण मुद्दों को हल करना (जावा नेमिंग एंड डायरेक्ट्री इंटरफेस), जेसीई (जावा क्रिप्टोग्राफी एक्सटेंशन) और जेएएएस (जावा ऑथेंटिकेशन एंड ऑथराइजेशन सर्विस) के साथ सुरक्षित प्रोग्राम विकसित करना, घटकों को तैनात करना, आरएमआई-आईआईओपी (इंटरनेट इंटर-ऑर्ब प्रोटोकॉल पर जावा रिमोट मेथड इनवोकेशन इंटरफेस) के साथ दूर से संचार करना।, वेब सेवाएं विकसित करें, एसिंक्रोनस विधियों को लागू करें और टाइमर सेवा का उपयोग करें।
EJB2
EJB2 (EJB 2.0) 22 अगस्त, 2001 को जारी किया गया था। यह विभिन्न विक्रेताओं द्वारा विकसित उपकरणों को मिलाकर जावा में वितरित वस्तु-उन्मुख अनुप्रयोगों के विकास के लिए विनिर्देश का वर्णन करता है।EJB2 के प्रमुख लक्ष्यों में से एक प्रोग्रामर्स को मल्टी-थ्रेडिंग और कनेक्शन पूलिंग जैसे निम्न-स्तरीय विवरणों को समझे बिना एंटरप्राइज़ एप्लिकेशन को अधिक आसानी से विकसित करने की अनुमति देना था। एक अन्य लक्ष्य प्रोग्रामर्स को एक बार "बीन" लिखने और बिना पुनर्संकलन के कहीं भी चलाने की अनुमति देना था (जावा प्रोग्रामिंग भाषा के "एक बार लिखें, कहीं भी चलाएं" स्लोगन का पालन करते हुए)। इसके अलावा, EJB2 का उद्देश्य विभिन्न विक्रेताओं द्वारा विकसित घटकों को आसानी से इंटरऑपरेट करने की अनुमति देना है, और विक्रेताओं को अपने उत्पादों के लिए एक्सटेंशन लिखने की अनुमति देना है जो EJB का समर्थन कर सकते हैं।
EJB3
EJB3 (EJB 3.0) 11 मई, 2006 को जारी किया गया था। EJB3 ने प्रोग्रामर के जीवन को बहुत आसान बना दिया, जिससे उन्हें पिछले संस्करणों में उपयोग किए गए परिनियोजन विवरणकों के स्थान पर एनोटेशन का उपयोग करने की अनुमति मिली। EJB3 में एक व्यावसायिक इंटरफ़ेस और एक विशिष्ट इकाई बीन शामिल है जो उस व्यावसायिक इंटरफ़ेस को लागू कर सकती है, जिससे होम/रिमोट इंटरफेस और ejb-jar.xml फ़ाइल का उपयोग करने की आवश्यकता समाप्त हो जाती है। EJB3 के समग्र प्रदर्शन में EJB2 की तुलना में काफी सुधार हुआ है, और EJB के इस रिलीज में विन्यास, लचीलापन और पोर्टेबिलिटी में काफी वृद्धि हुई है।
EJB2 और EJB3 में क्या अंतर है?
EJB3 में EJB2 की तुलना में कॉन्फ़िगरेशन और प्रदर्शन में उल्लेखनीय सुधार हुआ है। इस प्रदर्शन में सुधार का एक कारण ऑब्जेक्ट संदर्भों के लिए EJB2 में उपयोग किए गए JNDI लुकअप के बजाय EJB3 द्वारा मेटाडेटा और XML परिनियोजन डिस्क्रिप्टर के साथ POJO (सादा पुराना जावा ऑब्जेक्ट) का उपयोग है। EJB3 का कॉन्फ़िगरेशन बहुत सरल है क्योंकि प्रोग्रामर को होम/रिमोट इंटरफेस और अन्य (जैसे सत्रबीन) को लागू करने की आवश्यकता नहीं है, जो कंटेनर कॉलबैक विधियों (जैसे ejbActivate और ejbStore) का उपयोग करने की आवश्यकता को हटा देता है।
इसके अलावा, लचीलेपन और सुवाह्यता के क्षेत्रों में EJB3 EJB2 से बेहतर है। उदाहरण के लिए, EJB3 संस्थाओं को DAO (डेटा एक्सेस ऑब्जेक्ट) में परिवर्तित करना आसान है और इसके विपरीत क्योंकि EJB3 इकाइयाँ हल्की होती हैं (हैवीवेट EJB2 संस्थाओं के विपरीत, जो ऊपर उल्लिखित इंटरफेस को लागू करती हैं)। EJB3 में लिखी गई डेटाबेस क्वेरी बहुत लचीली हैं क्योंकि यह EJB-QL के पुराने संस्करण के स्थान पर एक परिष्कृत EJB-QL का उपयोग करती है, जिसकी कई सीमाएँ थीं।EJB3 सभी डेटा लेनदेन के लिए अधिक सामान्यीकृत JPA का समर्थन करके EJB2 (जो डेटाबेस एक्सेस के लिए इकाई बीन्स का उपयोग करता है) के सभी पोर्टेबिलिटी मुद्दों को हटा देता है।
EJB2 के विपरीत, जिसे निष्पादित करने के लिए EJB कंटेनर की आवश्यकता होती है, EJB3 को कंटेनरों का उपयोग किए बिना एक स्वतंत्र JVM (जावा वर्चुअल मशीन) में निष्पादित किया जा सकता है (यह संभव है क्योंकि यह मानक इंटरफेस को लागू नहीं करता है)। EJB2 के विपरीत, EJB3 तीसरे पक्ष द्वारा पेश किए गए दृढ़ता प्रदाताओं के साथ आसानी से प्लग करने योग्य है। EJB3 और EJB2 के बीच एक और महत्वपूर्ण अंतर यह है कि EJB3 एनोटेशन आधारित सुरक्षा का उपयोग कर सकता है, जबकि EJB2 तैनाती डिस्क्रिप्टर आधारित सुरक्षा का उपयोग करता है। इसका मतलब है कि EJB3 में कॉन्फ़िगरेशन और सेटअप कार्य बहुत आसान हैं, और EJB2 की तुलना में प्रदर्शन ओवरहेड्स में काफी कमी आई है।