टॉमकैट, जेबॉस और ग्लासफिश में क्या अंतर है?


445

मैं एंटरप्राइज जावा में देखना शुरू कर रहा हूं और जिस पुस्तक का मैं उल्लेख कर रहा हूं कि वह JBoss का उपयोग करेगी। ग्लासफिश के साथ नेटबीन जहाज। मैंने अतीत में टॉमकैट का इस्तेमाल किया है।

इन तीन कार्यक्रमों में क्या अंतर हैं?



70
ये सवाल ओपनसोर्स के 'अभिशाप' हैं। कभी-कभी बहुत अधिक विकल्प होते हैं जो लगभग एक ही बात करते हैं। Newbies के लिए, यह विश्लेषण से पक्षाघात हो सकता है। ग्रहण प्रमुख आईडीई है फिर भी खरीदने लायक लगभग सभी किताबें विकसित करने और सिखाने के लिए नेटबीन्स का उपयोग कर रही हैं। ग्लासफिश का उपयोग करता है जब मैंने देखा है कि अधिकांश व्यवसाय वास्तविक जीवन में जेबॉस का उपयोग करते हैं। प्रत्येक कंटेनर का उपयोग करने के लिए सीखने वाले घटता हैं, और यह newbies के लिए बहुत निराशाजनक हो सकता है।
user798719

अब JBoss को [WildFly] ( en.wikipedia.org/wiki/WildFly ) के नाम से जाना जाता है और JBoss कंपनी वाइल्डली विकसित की गई थी।
चामिंडा बंदारा

जवाबों:


516

टॉमकैट सिर्फ एक सर्वलेट कंटेनर है, यानी यह केवल सर्वलेट्स और जेएसपी विनिर्देश को लागू करता है। ग्लासफिश और जेबॉस पूर्ण जावा ईई सर्वर (ईजेबी, जेएमएस, ... जैसे सामान सहित) हैं, ग्लासफिश नवीनतम जावा ईई 6 स्टैक का संदर्भ कार्यान्वयन है, लेकिन 2010 में जेबॉस अभी तक पूरी तरह से इसका समर्थन नहीं कर रहा था।


77
पाठकों पर ध्यान दें, JBoss अब GlassFish की तरह जावा ईई 6 पूर्ण प्रोफ़ाइल प्रमाणित है। साथ ही टॉमकैट अब टॉम ईईई के माध्यम से प्रमाणित जावा ईई 6 वेब प्रोफाइल है और ईजेबी, सीडीआई, जेएसएफ, जेपीए, और अधिक का समर्थन करता है।
डेविड बेलेविंस

10
@DavidBlevins तो अब क्या अंतर हैं?
aldo.roman.nurena

23
@ aldo.roman.nurena बहुत कम अंतर। GlassFish और JBoss दोनों जावा EE पूर्ण प्रोफ़ाइल का समर्थन करते हैं, इसलिए उनके पास JAX-RPC और CORBA जैसी विरासत तकनीकों का समर्थन है। हमने इन्हें टॉमकैट के जावा ईई संस्करण में शामिल नहीं किया था, लेकिन सभी वर्तमान तकनीक जेएक्स-आरएस, जेएक्सएक्स-डब्ल्यूएस, जेएमएस, सीडीआई, जेपीए, जेएसएफ, ईजेबी, जेटीए, आदि जैसे हैं
डेविड बिल्वेंट

@ डैविडब्लिन्स यदि हम जेबॉस और ग्लासफिश के बीच चयन करना चाहते हैं, जो उत्पादन पर्यावरण के लिए बेहतर है? क्या इसे समझने के लिए कोई संदर्भ जानकारी उपलब्ध है?
सुधाकर चावली

1
स्टैकओवरफ़्लो पर संपादन उन उत्तरों को ठीक करने का सही तरीका है जो वास्तविकता से बहुत अधिक बहाव करते हैं।
वॉरेन पी

358

टॉमकैट केवल एक HTTP सर्वर और जावा सर्वलेट कंटेनर है। JBoss और GlassFish एक EJB कंटेनर और उस स्टैक की अन्य सभी विशेषताओं सहित Java EE एप्लिकेशन सर्वर को पूर्ण-विकसित किया गया है। दूसरी ओर, टॉमकैट में एक हल्का मेमोरी फ़ुटप्रिंट (~ 60-70 एमबी) है, जबकि उन जावा ईई सर्वरों का वजन सैकड़ों megs में है। टॉमकैट सरल वेब अनुप्रयोगों या स्प्रिंग जैसे चौखटे का उपयोग करने वाले अनुप्रयोगों के लिए बहुत लोकप्रिय है, जिन्हें पूर्ण जावा ईई सर्वर की आवश्यकता नहीं होती है। एक टॉमकैट सर्वर का प्रशासन यकीनन आसान है, क्योंकि कम चलने वाले हिस्से हैं।

हालाँकि, ऐसे अनुप्रयोगों के लिए जिन्हें पूर्ण जावा ईई स्टैक की आवश्यकता होती है (या कम से कम अधिक टुकड़े जो आसानी से बोल्ट-ऑन किए जा सकते हैं) टॉमकैट पर ... जेबॉस और ग्लासफिश दो सबसे लोकप्रिय ओपन सोर्स प्रसाद हैं (तीसरा एक अपाचे गेरोनिमो है) जिस पर IBM WebSphere का मुफ्त संस्करण बनाया गया है)। JBoss में एक बड़ा और गहरा उपयोगकर्ता समुदाय और एक अधिक परिपक्व कोडबेस है। हालाँकि, JBoss वर्तमान जावा EE स्पेक्स को लागू करने में GlassFish से काफी पीछे है। इसके अलावा, जो लोग GUI- आधारित एडमिन सिस्टम को पसंद करते हैं ... GlassFish का एडमिन कंसोल बेहद स्लीक है, जबकि JBoss में ज्यादातर एडमिनिस्ट्रेशन कमांड-लाइन और टेक्स्ट एडिटर के साथ किया जाता है। ग्लासफिश सीधे सूर्य / ओरेकल से आता है, सभी फायदे जो पेशकश कर सकते हैं। JBoss सन / ओरेकल के नियंत्रण में नहीं है, सभी लाभ जो पेशकश कर सकते हैं।


3
मैंने मान्य नहीं किया है, लेकिन कुछ का दावा है कि एक नियमित परियोजना के लिए, EE 6 कंटेनर स्प्रिंग + की निर्भरता की तुलना में 25% कम मेमोरी का उपयोग कर सकता है ।
अर्जन

2
+1, उत्कृष्ट उत्तर, हालांकि मैं @ अर्जन की टिप्पणी की सदस्यता लेता हूं: वास्तव में इन सर्वरों द्वारा उपयोग की जाने वाली स्मृति स्वयं इतनी महत्वपूर्ण नहीं है कि इसकी तुलना में एक मेमोरी की कितनी आवश्यकता होगी, आवेदन की आवश्यकता होगी (और यह इस्तेमाल की गई तकनीकों पर बहुत निर्भर करता है। वसंत कुछ हद तक है। एक मेमोरी हॉग)
शिवन ड्रैगन

10
हेह ... "सर्वलेट कंटेनर" बनाम "जेईई सर्वर" की चर्चा हमेशा "स्प्रिंग" बनाम "ईजेबी / जेएसएफ" की चर्चा में बदल जाती है। मैंने वर्षों से जेईई का उपयोग किया है, और जब ग्राहक मुझे भुगतान करते हैं, तो मुझे ऐसा करने में हमेशा खुशी होती है। हालांकि, मेरे विचार हैं: [1] दोनों पक्षों के अधिकांश बेंचमार्क पक्षपाती स्रोतों से आते हैं, मैंने कभी भी दो स्टैक के बीच एक बड़े संसाधन अंतर पर ध्यान नहीं दिया है, [२] स्प्रिंग जेईई "मानकों" की तुलना में अधिक पोर्टेबल है, जिसके साथ यह हमेशा सर्वर स्विच करने के लिए दर्दनाक लगता है, और अंतिम लेकिन कम से कम नहीं ...
स्टीव पर्किन्स

7
... [3] स्प्रिंग और हाइबरनेट के लिए उपयोगकर्ता समुदाय पूरी तरह से शुद्ध जेईई चश्मा से बौने हैं। यदि आप स्प्रिंग से परेशान हैं और StackOverflow पर एक प्रश्न पोस्ट करते हैं, तो यह सैकड़ों लोगों द्वारा पढ़ा जाएगा और आपके पास मिनटों में एक ठोस जवाब होगा। जेईई सामान के बारे में एक प्रश्न पूछें, और यह एक दर्जन लोगों द्वारा पढ़ा जाएगा ... और आधा समय, केवल प्रतिक्रिया आपको मिलती है, "यह मेरे लिए काम करता है!"। जेईई मानकों हमेशा ऐसा लगता है जैसे वे एक दिन देर से और एक डॉलर की कमी है, और मैं बहुत अकेला महसूस करता हूं जब मैं एक वास्तविक ऐप में उनके साथ परेशानी में चला जाता हूं।
स्टीव पर्किंस

1
उम्म्म्म ... पिछले साल की तरह, टॉमकैट केवल 13 एमबी, ग्लासफिश 53 एमबी, और जेबॉस 127 एमबी था। मैं उन JavaEE सर्वरों (GlassFish और JBoss) को सैकड़ों megs नहीं मानूंगा। अगर आप WebLogic या WebSphere के बारे में बात कर रहे हैं तो हम एक जीबी के बारे में बात कर रहे हैं। जानकारी zeroturnaround.com/rebellabs/…
j पर मिलेगी।

81

आपको Java EE एंटरप्राइज़ एप्लिकेशन के लिए GlassFish का उपयोग करना चाहिए । विचार करने योग्य कुछ बातें:

एक वेब सर्वर का अर्थ है: HTTP अनुरोध (आमतौर पर ब्राउज़रों से) को संभालना।

एक सर्वलेट कंटेनर (जैसे टॉमकैट ) का अर्थ है: यह सर्वलेट्स और जेएसपी को संभाल सकता है।

एक एप्लिकेशन सर्वर (जैसे ग्लासफ़िश ) का अर्थ है: * यह जावा ईई अनुप्रयोगों (आमतौर पर सर्वलेट / जेएसपी और ईजेबीबी) दोनों का प्रबंधन कर सकता है।


टोमाट - अपाचे समुदाय द्वारा चलाया जाता है - खुला स्रोत और इसके दो स्वाद हैं:

  1. टॉमकैट - वेब प्रोफाइल - हल्का जो केवल सर्वलेट कंटेनर है और जावा ईई सुविधाओं जैसे ईजेबी, जेएमएस आदि का समर्थन नहीं करता है।
  2. टॉमकैट ईई - यह एक प्रमाणित जावा ईई कंटेनर है, यह सभी जावा ईई प्रौद्योगिकियों का समर्थन करता है।

कोई व्यावसायिक सहायता उपलब्ध नहीं है (केवल सामुदायिक समर्थन)

JBoss - RedHat द्वारा संचालित यह JavaEE के लिए एक पूर्ण-स्टैक समर्थन है और यह एक प्रमाणित जावा EE कंटेनर है। इसमें टॉमकैट आंतरिक रूप से वेब कंटेनर के रूप में शामिल है। इसके भी दो स्वाद हैं:

  1. अनुप्रयोग सर्वर (AS) नामक सामुदायिक संस्करण - इसमें केवल सामुदायिक समर्थन होगा।
  2. एंटरप्राइज एप्लिकेशन सर्वर (ईएपी) - इसके लिए, आपके पास सदस्यता-आधारित लाइसेंस हो सकता है (यह आपके सर्वर पर आपके पास मौजूद करोड़ों की संख्या पर आधारित है।)

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


2
क्या मैं सही कह रहा हूं, कि आजकल (2018 की पहली तिमाही) ग्लासफिश वास्तव में वास्तविकता में बड़ी भूमिका नहीं निभाती है? क्या वास्तव में मानक JBoss नहीं है?
सुकरात

14

jboss और ग्लासफिश में एक सर्वलेट कंटेनर (जैसे tomcat) शामिल है, हालांकि दो एप्लिकेशन सर्वर (jboss और ग्लासफिश) एक बीन कंटेनर (और कुछ अन्य चीजें जो मैं कल्पना करता हूं) प्रदान करता हूं


2
ग्लासफिश टॉमकैट कुछ भी कर सकता है लेकिन इसका मतलब यह नहीं है कि इसमें "टॉमकैट" शामिल है। ग्लासफिश का अपना वेब कंटेनर है।
मार्टिन

5
स्पष्ट होने के लिए, "टॉमकैट की तरह" सही है, लेकिन जेबॉस वास्तव में अपने सर्वेंट कंटेनर कार्यान्वयन के लिए टॉमकैट को एम्बेड करता है।
चकी

@Chucky अब और नहीं
NimChimpsky

8

JBoss और ग्लासफिश मूल रूप से पूर्ण जावा EE एप्लिकेशन सर्वर हैं, जबकि टॉमकैट केवल एक सर्वलेट कंटेनर है। JBoss, Glassfish, लेकिन WebSphere, WebLogic और इतने पर Tomcat के संबंध में लेकिन जेट्टी के बीच मुख्य अंतर इस कार्यक्षमता में था कि एक पूर्ण ऐप सर्वर ऑफ़र। जब आपके पास एक पूर्ण स्टैक जावा ईई ऐप सर्वर होता है, तो आप अपनी पसंद के विक्रेता के सभी कार्यान्वयन का लाभ उठा सकते हैं, और आप ईजेबी, जेटीए, सीडीआई (जावा ईएई 6+), जेपीए, जेएसएफ, जेएसपी / सर्वलेट का लाभ उठा सकते हैं। और इसी तरह। दूसरे हाथ पर Tomcat के साथ आप केवल JSP / सर्वलेट का लाभ उठा सकते हैं। हालांकि स्प्रिंग और गाइस जैसे उन्नत ढांचे के साथ दिन, एक पूर्ण स्टैक एप्लिकेशन सर्वर का उपयोग करने के मुख्य लाभ में से कई को कम किया जा सकता है, और स्प्रिंग इकोसिस्टम के साथ इस फ्रेमवर्क की एक की धारणा के साथ,


8

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

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


1
@MarcoOttina मेरे अनुभव में, हाँ। यह एक उच्च विन्यास वेब सर्वर है। मुझे लगता है कि आधुनिक वेब एप्लिकेशन बनाने वाले बहुत से लोग स्प्रिंग / स्प्रिंग बूट के साथ इसका उपयोग कर रहे हैं। जावा के साथ अपने सभी वर्षों में मैं अभी भी पारिस्थितिकी तंत्र (विशेष रूप से सभी जेईई सामान) द्वारा भ्रमित हूं क्योंकि मुझे इसके लिए कभी कोई आवश्यकता नहीं थी। इसलिए आज यहां समाप्त हो रहा है :)
jocull

4

JBoss और Tomcat दोनों ही Java सर्वलेट एप्लिकेशन सर्वर हैं, लेकिन JBoss पूरी तरह से अधिक है। दोनों के बीच पर्याप्त अंतर यह है कि JBoss एंटरप्राइज JavaBeans और कई अन्य तकनीकों सहित एक पूर्ण जावा एंटरप्राइज एडिशन (जावा ईई) स्टैक प्रदान करता है, जो एंटरप्राइज़ जावा एप्लिकेशन पर काम करने वाले डेवलपर्स के लिए उपयोगी हैं।

टॉम्काट बहुत अधिक सीमित है। इसके बारे में सोचने का एक तरीका यह है कि JBoss एक जावा ईई स्टैक है जिसमें एक सर्वलेट कंटेनर और वेब सर्वर शामिल है, जबकि टॉम्कट, अधिकांश भाग के लिए, एक सर्वलेट कंटेनर और वेब सर्वर है।


3

Apache tomcat केवल एक मात्र सर्वर कंटेनर है जो एंटरप्राइज़ जावा एप्लिकेशन (JEE) के लिए समर्थन नहीं करता है। JBoss और Glassfish JEE एप्लिकेशन के लिए समर्थन कर रहे हैं, लेकिन ग्लासफ़िश JBOSS सर्वर से बहुत भारी है: संदर्भ स्लाइड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.