मैं एक पूर्ण विकसित अनुप्रयोग सर्वर (जैसे वेबलॉजिक, JBoss आदि) और एक सर्वलेट कंटेनर (टॉम्कट, जेट्टी आदि) के बीच के अंतर को समझने की कोशिश कर रहा हूं।
वे कैसे भिन्न होते हैं और कब और किसका उपयोग करना है?
धन्यवाद,
मैं एक पूर्ण विकसित अनुप्रयोग सर्वर (जैसे वेबलॉजिक, JBoss आदि) और एक सर्वलेट कंटेनर (टॉम्कट, जेट्टी आदि) के बीच के अंतर को समझने की कोशिश कर रहा हूं।
वे कैसे भिन्न होते हैं और कब और किसका उपयोग करना है?
धन्यवाद,
जवाबों:
एक सर्वलेट-कंटेनर केवल सर्वलेट API (JSP, JSTL सहित) का समर्थन करता है।
एक एप्लिकेशन सर्वर पूरे JavaEE - EJB, JMS, CDI, JTA, सर्वलेट API (JSP, JSTL सहित), आदि का समर्थन करता है।
एक सर्वलेट-कंटेनर पर अधिकांश JavaEE तकनीकों को चलाना संभव है, लेकिन आपको किसी विशेष तकनीक के स्टैंडअलोन कार्यान्वयन को स्थापित करना होगा।
मोटे तौर पर, एक सर्वलेट कंटेनर J2EE सर्वलेट विनिर्देश के कार्यान्वयन के लिए कम या ज्यादा खुद को प्रतिबंधित करता है। इसके अलावा, यह रनटाइम वातावरण पर केंद्रित है और अतिरिक्त उपकरण प्रदान करने पर इतना नहीं है।
इसके विपरीत, एक पूर्ण विकसित अनुप्रयोग सर्वर पूरे J2EE स्टैक को लागू करता है; प्लस यह सभी उद्यमी उपकरण और एकीकरण संभावनाओं के साथ आता है। एक एप्लिकेशन सर्वर में आमतौर पर उन्नत प्रशासन इंटरफेस होता है, यह क्लस्टरिंग और अन्य विशेषताओं का समर्थन करता है जो ज्यादातर उच्च-एंड सिस्टम के विकास में उपयोग किए जाते हैं।
शुरुआत के लिए, एक साधारण सर्वलेट कंटेनर के साथ रहना बेहतर होता है, क्योंकि सीखने की अवस्था में बहुत कम खड़ी होती है।
संपादित करें
@Apache फैन: यह आपकी स्थिति की मौजूदा प्रणालियों और भविष्य की योजनाओं जैसी चीजों पर निर्भर करता है। मुझे नहीं लगता कि जेनेरिक फ्लोचार्ट अप्रोच यहां लागू है।
प्लेटफ़ॉर्म चयन आमतौर पर विचाराधीन प्रणालियों के प्रथम-ज्ञान के विरुद्ध विशिष्ट आवश्यकताओं को तौलकर किया जाता है।
हालाँकि यह सवाल कोई संकेत नहीं देता कि मूल्यांकन मानदंड क्या हैं। क्या यह खुला स्रोत होना चाहिए? क्या चारों ओर घड़ी विक्रेता का समर्थन आवश्यक है? सिस्टम को किस तरह के उद्यम के साथ एकीकृत करना चाहिए? क्या लाइसेंस फीस एक मुद्दा है? किसी भी तकनीक या उपकरण होना चाहिए? आदि।
ऊपर जानने के बिना यह अंधेरे में बहुत ज्यादा शूटिंग है।
मूल रूप से एक एप्लिकेशन सर्वर से जावा ईई संदर्भ में एक सर्वर पर स्थापित एक सॉफ्टवेयर है और जो एक जावा ईई विनिर्देश (उदाहरण के लिए जावा ईई 7) को लागू करता है। इसका मतलब है कि ऐसे सॉफ्टवेयर (एप्लिकेशन सर्वर) जावा ईई एप्लिकेशन को चलाने में सक्षम होना चाहिए।
जावा ईई 4 डोमेन को परिभाषित करता है, तथाकथित कंटेनर :
दो कंटेनर एप्लिकेशन सर्वर (EJB और वेब कंटेनर) का हिस्सा हैं और दो अन्य क्लाइंट-कंप्यूटर का हिस्सा हैं।
JBoss और Weblogic अनुप्रयोग सर्वर हैं, Tomcat और Jetty वेब कंटेनर हैं। यही कारण है कि JBoss और Weblogic एक वेब कंटेनर की तुलना में अधिक तकनीकों से निपट सकते हैं। एप्लिकेशन सर्वर EJB को प्रबंधित कर सकता है।
सर्वलेट टॉम्केट और जेट्टी के लिए सर्वलेट कंटेनर उपयुक्त अभिव्यक्ति नहीं है क्योंकि यह अधिक प्रतिबंधक है। टॉमकैट केवल सर्वलेट्स ही नहीं, जेएसपी और जेएसएफ को भी निष्पादित कर सकता है।
afaik, websphere और jboss पूरी तरह से आज्ञाकारी j2ee- सर्वर है जो EJB की तरह सर्वलेट से चल सकता है, जबकि Tomcat सिर्फ सर्वलेट कंटेनर है और आप इस पर EJB नहीं चला सकते।
आम शब्दों में: एक वेब सर्वर का अर्थ है: HTTP अनुरोध (आमतौर पर ब्राउज़रों से) को संभालना।
एक सर्वलेट कंटेनर (जैसे टॉमकैट) का अर्थ है: यह सर्वलेट्स और जेएसपी को संभाल सकता है।
एक एप्लिकेशन सर्वर (जैसे ग्लासफ़िश) का अर्थ है: * यह जावा ईई अनुप्रयोगों (आमतौर पर सर्वलेट / जेएसपी और ईजेबीबी) दोनों का प्रबंधन कर सकता है।
एक शुरुआत के लिए, एक साधारण सर्वलेट कंटेनर के साथ रहना बेहतर है।