2009-08-11 13 views
5

जावा ईई (ईजेबी) का उपयोग केवल एक साधारण सर्वलेट कार्यान्वयन पर करने के प्राथमिक कारण क्या हैं?जावा ईई बनाम सर्वलेट्स के फायदे और नुकसान

मैं एक नई परियोजना विकसित करने पर काम कर रहा हूं जो मुख्य रूप से एक वेब सेवा होगी जो बहुत तेज़ और स्केलेबल होना चाहिए।

किसी भी भ्रम के लिए खेद है, हालांकि मुझे जावा में अनुभव हुआ है, मैं जावा वेब दुनिया में बहुत नया हूं, और शायद यह सवाल अच्छी तरह से नहीं पूछ सकता।

+1

यह देखकर कि कैसे दोनों servlets और वेब सेवाएं J2EE spec का हिस्सा हैं, मैं 100% निश्चित नहीं हूं कि आप यहां क्या पूछ रहे हैं ... पूरी बात काफी हद तक लगता है जैसे "HTML के अतिरिक्त ओवरहेड" का कारण बनता है मेरी वेबसाइट के प्रदर्शन में उल्लेखनीय कमी? – ChssPly76

+0

की तुलना में क्या ?? किस आवश्यकता के साथ? यह एक बहुत अच्छा विचार नहीं है। और Servlets J2EE का हिस्सा हैं ... –

+1

यह अच्छी तरह से phrased नहीं हो सकता है, लेकिन यह एक अच्छा सवाल पूछ रहा है। वेब सर्विसेज को कम करने के कम से कम दो जेईई तरीके हैं, एक पीओजेओ प्रभावी रूप से एक सर्वलेट के माध्यम से और एक ईजेबी के रूप में उजागर किया गया है जो एक वेब सेवा इंटरफ़ेस का पर्दाफाश कर सकता है। दोनों के लिए फायदे हैं। – djna

उत्तर

6

सर्वलेट HTTP अनुरोध श्रोताओं हैं; वे किसी और चीज का जवाब नहीं दे सकते हैं।

यदि आप servlets में तर्क का एक बड़ा सौदा एम्बेड करते हैं तो यह किसी अन्य क्लाइंट के लिए उपलब्ध नहीं होगा।

पीओजेओ में अपना ऐप लिखें। इसे शामिल किए गए ऐप सर्वर के बिना पूरी तरह से परीक्षण करें। फिर चिंता करें कि आप इसे कैसे पैकेज करना और तैनात करना चाहते हैं। सर्वलेट? EJB? वेब सेवा? कुछ और? कोई समस्या नहीं - वे सिर्फ पैकेजिंग और तैनाती के मुद्दे हैं। पीओजेओएस में पहले से काम करना चाहते हैं कि व्यवहार प्राप्त करें।

वसंत आपको यहां कई विकल्प दे सकता है। मैं इसकी सिफारिश करता हूँ।

+0

ईजेबी इन दिनों बहुत अधिक POJOs हैं, POJO + कुछ एनोटेशन और वे आरएमआई और वेब सेवा इंटरफेस को परेशान कर सकते हैं। वसंत (या ईजेबी 3 ;-) जैसे कुछ का उपयोग करना अच्छी सलाह है। – djna

+1

ईजेबी 3 के बारे में सच है। ओपन ईजेबी वेबलॉगिक या वेबस्पेयर के बिना उन्हें चलाने के लिए संभव बनाता है, लेकिन मैं अभी भी वसंत पसंद करूंगा। – duffymo

+0

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

2

क्या वेब सेवा स्टेटलेस है? यदि ऐसा है, तो मुझे टॉमकैट या जेट्टी जैसे हल्के वजन पर एक पूर्ण उड़ा जावा ईई सर्वर का उपयोग करने में कोई वास्तविक लाभ नहीं दिख रहा है। आप उनमें से किसी के साथ एक जैक्स-डब्ल्यू कार्यान्वयन तैनात कर सकते हैं, और जो भी आपको बहुत आसानी से चाहिए। यदि किसी प्रकार का राज्य शामिल है, और आप इसे कई मशीनों में साझा करना चाहते हैं, तो वह जगह है जहां जावा ईई काम में आ सकता है।

इसके साथ, मुझे नहीं लगता कि जावा ईई प्रदर्शन को कम करेगा। ऐप सर्वर आमतौर पर बूट करने में अधिक समय लेते हैं, और प्रबंधन के लिए और अधिक प्रयास करते हैं, लेकिन एक बार जब वे ऊपर होते हैं और प्रदर्शन चलते हैं तो समान होना चाहिए।

+1

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

+1

> 'ऐप सर्वर आमतौर पर बूट करने में अधिक समय लेते हैं' के लिए मजबूत ड्राइवरों के रूप में विधि-स्तर सुरक्षा और गैर-तुच्छ लेनदेन संबंधी पुनर्मूल्यांकन देखते हैं - फास्ट फॉरवर्ड 3 साल, और अब ऐप सर्वर लगभग लंबे समय तक लेते हैं बूट। जेबॉस एएस 7, ग्लासफ़िश वी 3, टॉमईई और राल सभी एक या दो हैं। यहां तक ​​कि WebLogic अभी भी कुछ सेकंड है;) –

1

यदि आपकी वेब सेवाओं को "एंटरप्राइज़" सुविधाओं की किसी भी डिग्री की आवश्यकता होने की संभावना है जैसे कि प्रति-विधि सुरक्षा या लेन-देन ईजेबी का उपयोग करें।

ईजेबी 3 के साथ यह वास्तव में बहुत मुश्किल नहीं है, कुछ एनोटेशन और आप कर चुके हैं।

अन्यथा सर्वलेट के पीछे सरल POJO पर्याप्त हैं।

+0

"... यदि आपको वेब सेवाओं को प्रति-विधि सुरक्षा या लेन-देन का उपयोग करने वाले किसी भी उद्यम की" एंटरप्राइज़ "सुविधाओं की आवश्यकता होती है ..." - बिल्कुल सही नहीं है आप वसंत का उपयोग कर रहे हैं। आप ईजेबी के बिना उन दोनों चीजों और बहुत कुछ कर सकते हैं। – duffymo

+0

हां, आप वसंत के बारे में सही हैं। क्या आप सहमत होंगे कि तकनीकी रूप से हम जेईई, पीओजेओ, सर्वलेट्स के साथ वेब सर्विसेज कर सकते हैं - लेकिन कुछ आवश्यकताओं के लिए हमें वसंत से फायदा होगा? क्या प्रति-विधि सुरक्षा और लेन-देन जैसी चीजें ऐसी दो आवश्यकताएं होंगी? – djna

6

ईजेबी के विनिर्देश 1.x और 2.x ने जटिलता को जोड़ा जो अधिकांश वेबपैप्स की आवश्यकता नहीं थी।

इस जटिलताओं के कारण विकास और रनटाइम आर्किटेक्चर (हाइबरनेट/स्प्रिंग/अन्य माइक्रोकॉन्टेनर्स/अन्य ओआरएम फ्रेमवर्क) को सरल बनाने के लिए नए ढांचे दिखाई दिए।

ईजेबी का 3.x इस परिवर्तन से मेल खाता है (जेडीओ और जेपीए के माध्यम से) और अब, इन उन्नत फ्रेमवर्क या ईजेबी 3 + के साथ जावा ईई के साथ सर्वलेट का उपयोग करके आप मूल रूप से एक ही परिणाम देंगे।

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

+0

धन्यवाद ऑस्कर, यह प्रशासनिक फायदों के बारे में बहुत अच्छी सलाह है। –

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