हमें शायद पता न हो, लेकिन अगर हम अपने दैनिक जीवन पर नजर डालें तो यह अलग-अलग एप्लिकेशन या सॉफ्टवेयर के इर्द-गिर्द घूमता है। विभिन्न ढाँचों के उपयोग को समझना बहुत महत्वपूर्ण है।
अंतर्निहित आर्किटेक्चर और विभिन्न डेटा के भंडारण के लिए किस डेटाबेस का उपयोग करना है। किसी एप्लिकेशन या सॉफ़्टवेयर का निर्माण करते समय ईजेबी और हाइबरनेट विभिन्न उद्देश्यों के लिए घटक होते हैं।
चाबी छीन लेना
- ईजेबी (एंटरप्राइज़ जावा बीन्स) जावा ईई अनुप्रयोगों के लिए एक सर्वर-साइड घटक मॉडल है। वहीं, हाइबरनेट एक ऑब्जेक्ट-रिलेशनल मैपिंग (ओआरएम) टूल है जो जावा डेवलपर्स को जावा ऑब्जेक्ट को रिलेशनल डेटाबेस टेबल पर मैप करने की अनुमति देता है।
- ईजेबी लेनदेन प्रबंधन, सुरक्षा और समवर्ती नियंत्रण जैसी संपूर्ण सेवाएं प्रदान करता है, जबकि हाइबरनेट केवल ओआरएम-संबंधित कार्यक्षमता प्रदान करता है।
- ईजेबी को जावा ईई एप्लिकेशन सर्वर में एकीकृत किया गया है, जबकि हाइबरनेट का उपयोग किसी भी जावा वातावरण में किया जा सकता है।
ईजेबी बनाम हाइबरनेट
ईजेबी और हाइबरनेट के बीच अंतर यह है कि ईजेबी एक प्रकार का जावा बीन है और इसका उपयोग किसी भी जावा एप्लिकेशन के व्यावसायिक तर्क और डेटाबेस से कनेक्शन को एन्क्रिप्ट करने के लिए किया जाता है, यानी यह एंटरप्राइज़ एप्लिकेशन लिखने का डिफ़ॉल्ट तरीका है जबकि
हाइबरनेट एक प्रकार का ओआरएम फ्रेमवर्क है जो एप्लिकेशन में मौजूद कक्षाओं या ऑब्जेक्ट को डेटाबेस तालिकाओं में मैप करता है, यानी डेटाबेस को कैसे संचालित और जारी रखना है।
ईजेबी उस प्रकार के सर्वर-साइड सॉफ़्टवेयर को संदर्भित करता है जो किसी एंटरप्राइज़ एप्लिकेशन के लिए व्यावसायिक रूप से अपने तर्क को समाहित करता है। ईजेबी एक वेब कंटेनर है।
यह विभिन्न सर्वरों पर होस्ट किए गए अन्य JVM (जावा वर्चुअल मशीन) से संचार करता है, यानी यह एंटरप्राइज़ एप्लिकेशन लिखने का डिफ़ॉल्ट तरीका है। EJB का पूर्ण रूप एंटरप्राइज़ जावा बीन है।
यह बीन्स के लिए एक रन-टाइम कंटेनर है जो मुख्य रूप से सर्वर पर तैनात किया जाता है, इसलिए इसे सर्वर-साइड घटक भी कहा जाता है। हाइबरनेट एक तरह का ओएमआर फ्रेमवर्क है जिसका काम मैपिंग करना है।
अगर विस्तार से देखा जाए तो यह एक रिलेशनल डेटाबेस से संबंधित है जो अपने डेटा की मैपिंग करता है। और यह मैपिंग डेटाबेस के टेबल्स की मदद से की जाती है।
यह डेटा से संबंधित क्वेरी और पुनर्प्राप्ति सुविधाएं भी प्रदान करता है। यह कॉल उत्पन्न करने में भी सहायक है।
तुलना तालिका
तुलना के पैरामीटर | ईजेबी | सीतनिद्रा में होना |
---|---|---|
परिभाषा | ईजेबी किसी एप्लिकेशन के व्यावसायिक तर्क को समाहित करता है। | हाइबरनेट कक्षाओं या ऑब्जेक्ट को डेटाबेस की तालिकाओं में मैप करता है। |
समर्थन इकाई संबंध | यह जावा 5.0 एनोटेशन के माध्यम से इकाई-संबंध का समर्थन करता है | यह JavaDoc में मैपिंग फ़ाइलों और एनोटेशन के माध्यम से इकाई-संबंध का समर्थन करता है |
कॉलबैक समर्थन | यह एंटिटी लिसनर के माध्यम से कॉलबैक का समर्थन करता है | यह एक जीवन चक्र, इंटरसेप्टर के माध्यम से कॉलबैक का समर्थन करता है |
एनोटेशन | जावा 5.0 एनोटेशन का उपयोग एट्रीब्यूट ओरिएंटेड प्रोग्रामिंग को सपोर्ट करने के लिए किया जाता है | XDoclet एनोटेशन का उपयोग एट्रिब्यूटेड ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए किया जाता है |
प्रश्न | EJB QL क्वेरीज़ को व्यक्त करने के लिए उपयोग किया जाता है | HQL का उपयोग क्वेरीज़ को व्यक्त करने के लिए किया जाता है |
ईजेबी क्या है?
EJB का पूर्ण रूप एंटरप्राइज़ जावा बीन है, जो इसका संक्षिप्त रूप है। इसका मूल उद्देश्य सन माइक्रोसिस्टम्स द्वारा प्रदान किए गए सुरक्षित, मजबूत और स्केलेबल वितरित अनुप्रयोगों को बढ़ाना है।
इसका उपयोग करने के लिए RMI ट्यूटोरियल की मदद से इसके बारे में जानकारी मिलती है। कई चीजों की आवश्यकता होती है, जैसे एक एप्लिकेशन सर्वर, यानी जेबॉस, ग्लासफिश, वेबलॉगिक, वेबस्फेयर इत्यादि। यह इस प्रकार काम करता है:
- जीवन चक्र का पूर्ण रखरखाव.
- सुरक्षा।
- लेन-देन की निगरानी करना.
- ऑब्जेक्ट पूलिंग.
यानी इस एप्लिकेशन का पूरा काम सर्वर पर निर्भर करता है इसलिए इसका दूसरा नाम सर्वर-साइड कंपोनेंट भी है।
ईजेबी उस प्रकार के सर्वर-साइड सॉफ़्टवेयर को संदर्भित करता है जो किसी एंटरप्राइज़ एप्लिकेशन के लिए व्यावसायिक रूप से अपने तर्क को समाहित करता है। EJB एक वेब कंटेनर है जिसका उपयोग डेटाबेस के साथ किया जाता है।
यह एंटरप्राइज़ एप्लिकेशन लिखने का डिफ़ॉल्ट तरीका है। यह बीन्स के लिए एक रन-टाइम कंटेनर है जिसे मुख्य रूप से एप्लिकेशन सर्वर द्वारा तैनात किया जाता है।
इस एप्लिकेशन का उपयोग करने का एक निश्चित समय भी है। इस एप्लिकेशन को चलाने के लिए रिमोट एक्सेस की आवश्यकता है।
दूसरे अर्थ में, यह एप्लिकेशन वितरित है। इसके बाद, इसे स्केलेबल भी होना चाहिए क्योंकि यह लोड संतुलन का पूरी तरह से समर्थन करता है, गुच्छन, और फेलओवर।
इसके साथ ही इसमें इनकैप्सुलेटेड बिजनेस लॉजिक की भी आवश्यकता होती है। इस एप्लिकेशन को प्रेजेंटेशन और पर्सिस्टेंस लेयर्स की मदद से अलग किया गया है।
हाइबरनेट क्या है?
हाइबरनेट ऑब्जेक्ट रिलेशनल मैपिंग (ओआरएम) एक ऑब्जेक्ट-मैपिंग टूल है, विशेष रूप से जावा प्रोग्रामिंग भाषा के लिए। यह मानचित्रण के लिए एक अंतर्निहित वास्तुकला प्रदान करता है।
एक ऑब्जेक्ट-ओरिएंटेड क्लास या रिलेशनल डेटाबेस (आरडीबीएमएस) का मॉडल। जब डेटाबेस के साथ इंटरेक्शन की बात आती है तो यह जावा अनुप्रयोगों के विकास को सरल बनाता है।
इंटर्ना डेटाबेस के साथ इंटरैक्ट करने के लिए जेडीबीसी एपीआई का उपयोग करता है, जिसे व्यक्ति मशीन में .exe के रूप में डाउनलोड करता है। हाइबरनेट जावा पर्सिस्टेंस एपीआई का उपयोग करता है, जिसे डेटा पर्सिस्टेंस के लिए जेपीए विनिर्देश भी कहा जाता है।
जेपीए एक जावा विनिर्देश है जो हाइबरनेट जैसे ओआरएम टूल को मानक और कुछ कार्यक्षमताएं प्रदान करता है। ओपन सोर्स और लाइटवेट जैसे हाइबरनेट फ्रेमवर्क का उपयोग करने के काफी कुछ फायदे हैं।
तेज़ प्रदर्शन क्योंकि यह आंतरिक रूप से कैशिंग का उपयोग करता है और इसमें दो कैशिंग स्तर होते हैं। का उपयोग करते हुए एचक्यूएल विशिष्ट डेटाबेस क्वेरीज़ लिखने की कोई आवश्यकता नहीं है क्योंकि यह डेटाबेस-स्वतंत्र क्वेरीज़ उत्पन्न करता है।
यह क्वेरी की डेटाबेस स्थिति और स्टैटिक्स की जांच करने का एक तरीका भी प्रदान करता है, जैसे कि किस क्वेरी को निष्पादित करने में लंबा समय लग रहा है। हाइबरनेट प्रोग्रामेटिक रूप से तालिकाएँ बनाने का एक स्वचालित तरीका प्रदान करता है।
इसलिए डेटाबेस में जाकर इसे मैन्युअल रूप से बनाने की कोई आवश्यकता नहीं है। इसे 2001 में पेश किया गया था, और इसकी उत्पत्ति गोविन किंग को बताई जाती है, जिन्होंने इसे EJB2 स्टाइल एंटिटी बीन की मदद से शुरू किया था।
ईजेबी और हाइबरनेट के बीच मुख्य अंतर
ईजेबी के बीच विभेदक कारक और हाइबरनेट संबंधों को निम्नलिखित आधारों पर संक्षेपित किया जा सकता है:
- ईजेबी एक एप्लिकेशन के व्यावसायिक तर्क को समाहित करता है और होस्ट करने के लिए एक एप्लिकेशन सर्वर की आवश्यकता होती है, जबकि हाइबरनेट कक्षाओं या ऑब्जेक्ट को डेटाबेस की तालिकाओं में मैप करता है।
- ईजेबी जावा 5.0 एनोटेशन के माध्यम से इकाई-संबंध का समर्थन करता है, जबकि हाइबरनेट जावाडॉक में मैपिंग फ़ाइलों और एनोटेशन के माध्यम से इकाई-संबंध का समर्थन करता है।
- ईजेबी एंटिटी श्रोता के माध्यम से कॉलबैक का समर्थन करता है, जबकि यह जीवन चक्र इंटरसेप्टर के माध्यम से कॉलबैक का समर्थन करता है।
- EJB में, Java 5.0 एनोटेशन का उपयोग एट्रिब्यूटेड ओरिएंटेड प्रोग्रामिंग को सपोर्ट करने के लिए किया जाता है, जबकि, XDoclet में, एनोटेशन का उपयोग एट्रिब्यूटेड ओरिएंटेड प्रोग्रामिंग को सपोर्ट करने के लिए किया जाता है।
- EJB में, QL का उपयोग डेटाबेस क्वेरीज़ को व्यक्त करने के लिए किया जाता है, जबकि, हाइबरनेट में, HQL का उपयोग क्वेरीज़ को व्यक्त करने के लिए किया जाता है।
- https://dl.acm.org/doi/abs/10.1145/583854.582443
- https://dl.acm.org/doi/abs/10.1145/503209.503259
- https://books.google.co.in/books?hl=en&lr=&id=bTwfHzMxtQcC&oi=fnd&pg=PA1&dq=what+is+hibernate+in+java&ots=DueZLkRLID&sig=wlYPPYfSUMZsl8pSh_Xx-GCHu5U&redir_esc=y#v=onepage&q=what%20is%20hibernate%20in%20java&f=false
अंतिम अद्यतन: 11 जून, 2023
संदीप भंडारी ने थापर विश्वविद्यालय (2006) से कंप्यूटर में इंजीनियरिंग में स्नातक की उपाधि प्राप्त की है। उनके पास प्रौद्योगिकी क्षेत्र में 20 वर्षों का अनुभव है। उन्हें डेटाबेस सिस्टम, कंप्यूटर नेटवर्क और प्रोग्रामिंग सहित विभिन्न तकनीकी क्षेत्रों में गहरी रुचि है। आप उनके बारे में और अधिक पढ़ सकते हैं जैव पृष्ठ.
लेख ईजेबी और हाइबरनेट के बीच एक व्यापक तुलना प्रदान करता है, जो दो रूपरेखाओं और उनके इच्छित उपयोगों के बीच अंतर में अंतर्दृष्टि प्रदान करता है। विभिन्न अनुप्रयोगों के लिए अंतर्निहित आर्किटेक्चर और डेटाबेस को समझना महत्वपूर्ण है।
एप्लिकेशन या सॉफ़्टवेयर बनाते समय ईजेबी और हाइबरनेट अलग-अलग उद्देश्यों की पूर्ति करते हैं। ईजेबी लेनदेन प्रबंधन और सुरक्षा जैसी संपूर्ण सेवाएं प्रदान करता है, जबकि हाइबरनेट ओआरएम-संबंधित कार्यक्षमता पर ध्यान केंद्रित करता है।