क्या आप वर्तमान तिथि में, JBoss या Glassfish (या अन्य) का उपयोग जावा ईई सर्वर के रूप में एक नई परियोजना के लिए कर सकते हैं? [बन्द है]


136

यदि आपने आज एक नया जावा ईई प्रोजेक्ट शुरू किया, जो लगभग एक वर्ष में समाप्त होना है, तो आप कौन सा एप्लिकेशन सर्वर चुनेंगे और क्यों?

आपके उत्तर के भाग में आपके निर्णय के लिए आपके तर्क शामिल होने चाहिए। और आपके द्वारा चुने गए जावा ईई सर्वर के साथ और बाजार पर उपलब्ध अन्य सर्वरों के साथ आपके पास कितना अनुभव है। ये दिलचस्प हैं क्योंकि हम सभी को जांच का अंदाजा है और यह सोचा गया कि आपके जवाब में क्या डाला गया था।

जवाबों:


181

मैंने पिछले 10+ वर्षों में WebLogic, WebSphere, JBoss, GlassFish, Resin, Jetty, Tomcat और कुछ अन्य का उपयोग किया है। इसलिए, अगर मैं एक नई परियोजना पर विचार कर रहा था, तो मैं खुद से पहले कुछ सवाल पूछूंगा। एक बात जो मैं अब नहीं पूछूंगा, वह यह है कि मैं JSP का उपयोग करने से इनकार कर दूंगा, जब तक कि मुझे तब तक टॉर्चर नहीं किया जाता जब तक कि मैं अपने मम्मी के लिए नहीं रोता।

क्या मुझे किसी के जनादेश के कारण किसी विशिष्ट उत्पाद के लिए संगत / तैनात होना चाहिए? क्या उन्हें नजरअंदाज करने या उन्हें मनाने का कोई तरीका नहीं है? यदि हां, तो आपका जवाब है।

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

क्या आपको जेएमएसई, ईएसबी, आदि जैसी अन्य प्रमुख जे 2 ईई तकनीकों का उपयोग करना होगा? यदि ऐसा है, और आप वास्तव में बिना कर सकते हैं, तो आप फिर से एक पूर्ण विकसित J2EE कंटेनर के लिए विवश हैं। उदाहरण के लिए, BPM के लिए प्रतिबद्ध होने से पहले सावधानीपूर्वक सोचें और जांच करें, और लगभग सभी लागतों पर AquaLogic BPM से बचें - यह चरम में बदसूरत है।

यदि आपको वास्तव में पूर्ण विकसित J2EE कंटेनर का उपयोग करना चाहिए, तो पहले ओपन-सोर्स पर विचार करें क्योंकि यह अधिक मजबूत, बेहतर समर्थित और अधिक लागत प्रभावी है। उनके पास बड़े ग्राहक आधार और अधिक खुले समर्थन इंटरैक्शन हैं, इसलिए वे तेजी से बेहतर सुधार प्राप्त करते हैं। हालांकि, राल अपरिपक्व है और मैं ग्लासफिश या जेबॉस के सापेक्ष इससे बचता हूं - मुझे इसे तैनात करने और समर्थन करने में समस्या आती है। मैं इसके व्यापक ग्राहक आधार, परिपक्वता, आदि के कारण JBoss को प्राथमिकता दूंगा। GlassFish एक स्वचालित बिल्ड / परिनियोजन प्रक्रिया में शामिल करना कठिन है, लेकिन यह इसकी कुछ विशिष्ट विशेषताओं (यदि आपको उनकी आवश्यकता है) के लिए अच्छा हो सकता है।

क्या मुझे अपाचे की आवश्यकता का एक विशेष कारण है? फिर टॉमकैट की ओर झुकाव, शायद प्लस कुछ।

क्या मैं सिर्फ सर्वलेट्स के साथ कर सकता हूं? फिर मैं जेट्टी का उपयोग करूंगा - यह सबसे हल्का, सबसे तेज, सबसे आसान, सबसे लचीला समाधान है। यदि मैं जेट्टी का उपयोग करने में सक्षम होने के खिलाफ झुक रहा हूं, तो मैं अपनी सभी मान्यताओं पर सवाल उठाऊंगा। YAGNI लागू होता है।

जेट्टी पर StringTemplate / WebStringTemplate का उपयोग करने के लिए सबसे अच्छा है: बिना लाइसेंस शुल्क, ठोस प्रतिष्ठा और समर्थन, आदि के साथ एक साफ, मजबूत, तेज, बनाए रखने योग्य समाधान। यही वह जगह है जहां मैं आजकल शुरू करता हूं।

अधिकांश एप्लिकेशन / सिस्टम बहुत सारे फैंसी जे 2 ईई फीचर्स का चयन करते हैं, जब उन्हें वास्तव में कुछ सभ्य वास्तुकला / डिजाइन के साथ सर्वलेट्स और जेडीबीसी की आवश्यकता होती है। प्रश्न क्यों आपको लगता है कि आपको और अधिक की आवश्यकता है।

पूर्ण विकसित कंटेनरों में से, जब तक आप एक MAJOR सार्वजनिक वेबसाइट का समर्थन नहीं कर रहे हैं, तब तक मैं WebLogic और WebSphere से बचूंगा (मेरे वर्तमान नियोक्ता की वेबसाइट WebLogic पर तैनात है और इसे प्रति माह ग्यारह + मिलियन हिट मिलते हैं, अन्य लोग तुलनीय हैं)। WebLogic का वास्तविक दावा-से-प्रसिद्धि उनकी अपेक्षाकृत आसान क्लस्टरिंग है, लेकिन लगभग सभी कीमत पर उनके मालिकाना वेंडर-लॉक-इन सुविधाओं से बचें। WebSphere केवल एक दुःस्वप्न है जिसे मैं सचमुच हर कीमत पर टालूंगा - मैंने पिछले कुछ समय में कुछ करने के बाद WebSphere से जुड़े प्रोजेक्ट करने से इंकार कर दिया था। न तो उत्पाद बड़े पैमाने पर लाइसेंसिंग शुल्क के लायक है, जब तक कि आपको वास्तव में एक विशेष आवश्यकता नहीं होती है जो एक स्वामित्व सुविधा का उपयोग करता है। एक दशक में फॉर्च्यून 500 कंपनियों में से एक के लिए एक वरिष्ठ वास्तुकार / इंजीनियर के रूप में, मुझे अभी तक इस तरह की आवश्यकता को देखना होगा। दूसरी ओर,

यहां तक ​​कि वास्तव में बड़े, उच्च यातायात, सार्वजनिक वेबसाइटों के लिए, स्वामित्व वाले उत्पाद अभी भी संदिग्ध हैं। मैं इसके बजाय कुछ अच्छे हार्डवेयर पर लाइसेंस फीस के प्रति वर्ष बहु मिलियन डॉलर खर्च करूँगा और एक साधारण स्केलेबिलिटी समाधान को संबोधित करने के लिए बहुत अच्छे सलाहकारों से कुछ गुणवत्ता समय। फिर प्रति वर्ष अतिरिक्त लाखों का उपयोग उस अच्छी वेबसाइट पर बेचने के योग्य कुछ करने के लिए किया जा सकता है ...

संपादित करें: विचार करने के लिए एक और टुकड़ा ...

मैंने हाल ही में टेराकोटा का सामना किया है । मैं सब कुछ पुनर्विचार कर रहा हूं, और जल्द ही इसे एक महत्वपूर्ण प्रणाली में तैनात करना चाहता हूं। विशेष रूप से, टेराकोटा कुछ और की तुलना में बेहतर क्लस्टरिंग करता है, इसलिए मैं इसके क्लस्टरिंग के लिए वेबलॉग की सिफारिश नहीं करूंगा।


7
भविष्य के संदर्भ के लिए, आप आमतौर पर Google या विकिपीडिया खोज के माध्यम से परिवर्णी शब्द की परिभाषा पा सकते हैं। YAGNI = आप इसकी आवश्यकता पर नहीं जा रहे हैं = अपना डिज़ाइन JMS = Java संदेश सेवा ESB = एंटरप्राइज़ सेवा बस BPM = व्यवसाय प्रक्रिया प्रबंधन
Rob Williams

21
Java EE और EJB के बारे में आपकी टिप्पणियाँ थोड़ी पुरानी हैं। J2EE ?! वह 5 साल पहले की तरह था। जावा ईई 6 पर एक नज़र डालें, और अपने दृष्टिकोण को आधुनिक बनाएं!
ब्रायन लैथम

6
@ ब्रायन: मैं ब्रायन से सहमत हूं, विशेष रूप से ईजेबीलाइट के साथ, यह बहुत हल्का वजन बन गया है।
थांग फाम

7
@ ब्रायन, पोस्ट को देखो - यह आपकी टिप्पणी से तीन साल पहले लिखा गया था । और मैं अभी भी कहूंगा कि स्प्रिंग जावा ईई से भी कम पतला है।
duffymo

2
2012 में अब क्या है फैसला? क्या JBoss 7 जावा 6 ईई दायरे में ग्लासफिश पर राजा के रूप में आता है? या फिर इसके विपरीत?
रोलैंडो

10

"एप्लिकेशन सर्वर" शब्द अस्पष्ट है। GlassFish v3 के साथ, आप छोटे से शुरू कर सकते हैं, कह सकते हैं, एक पारंपरिक वेब कंटेनर और विकसित (OSGi और सरल "कंटेनर जोड़ें" कार्यक्षमता का उपयोग करके) आप जो कुछ भी चाहते हैं उसे जोड़ने के लिए: JPA, JAX-RS, EJB's, JTA, JMS, ESB , आदि ... फिर भी यह एक ही उत्पाद, एक ही व्यवस्थापक इंटरफ़ेस, आदि है। क्या यह आपके लिए एप्लिकेशन सर्वर के रूप में योग्य है? -एलेक्सिस (सूर्य)


1
दुर्भाग्य से ग्लासफिश अब एक आधिकारिक उत्पाद नहीं है, लेकिन संदर्भ कार्यान्वयन "केवल" है।
थोरबजोरन रेव एंडरसन

9

पहला सवाल जो मैं आमतौर पर खुद से पूछता हूं "क्या मैं टॉमकैट के साथ ऐसा कर सकता हूं?"। यदि उत्तर नहीं है क्योंकि मुझे JMS या JTA की आवश्यकता है तो मैं एक एप्लिकेशन सर्वर का सहारा लेता हूं।

मैंने WebLogic के उपयोग में आसानी और लाइसेंसिंग / लागत मॉडल से लगभग 3 साल पहले WebLogic 8 का उपयोग किया। हमने इसे दो परियोजनाओं के लिए उपयोग किया था एक वेब सेवा थी और दूसरी एक पोर्टल थी। हमने उन परियोजनाओं में से किसी में भी WebLogic या WebLogic Portal के साथ कोई समस्या नहीं आई।

पिछले दो वर्षों से मैं वेबस्फेयर के साथ काम कर रहा था। किसी भी समय मैंने आईबीएम के साथ बातचीत की यह हमेशा एक WebLogic समकक्ष के रूप में दो बार की लागत से समाप्त हो गया था, लेकिन कॉर्पोरेट नीति तय की गई WebSphere का उपयोग किया जाना था। मैंने पाया कि WebSphere पर सीखने की अवस्था WebLogic की तुलना में काफी कम है और हमारे निर्माण / तैनाती / परीक्षण जीवन-चक्र में इतना समय लगता था कि हम विकास के माहौल में Tomcat का उपयोग करते थे। लेकिन मेरे पास सबसे बड़ा मुद्दा जो वेबस्फीयर के साथ था, जब हमें एक बग का सामना करना पड़ा जिसने हमें अगले पैच रिलीज पर अपग्रेड करने के लिए केवल नई समस्या वेबसर्क्स पार्सिंग में चलाने के लिए मजबूर किया। उस सब के माध्यम से काम करने के लिए 48hr की पारी हुई।

फिलहाल मैं JBoss का उपयोग कर रहा हूं। लगभग 3 महीने पहले मैं Tomcat और Jetspeed 2 के साथ अपने नए प्रोजेक्ट को शुरू करने वाला था, लेकिन मैंने देखा कि Jetspeed 2 अभी थोड़ा स्थिर है और JBoss पोर्टल 2.7.0 JSR 286 / पोर्टलेट 2.0 समर्थन के साथ जारी किया गया था। मैंने JBoss को एक स्पिन दिया और इसे सेट-अप और प्रशासन के लिए बहुत आसान पाया। बिल्ड / परिनियोजित / परीक्षण चक्र बहुत जल्दी है और मुझे शायद ही कभी सर्वर को पुनरारंभ करना होगा जब तक कि मैंने एक स्प्रिंग एक्सएमएल फ़ाइल को कहीं बदल न दिया हो।


अच्छा उत्तर! क्या आपने जेट्टी की कोशिश की है? और इस मामले में आपकी क्या राय है?

7

मैं 3-4 वर्षों से jBoss का उपयोग कर रहा हूं।

JBoss के लिए तर्क:

  1. खुला स्त्रोत।
  2. व्यावसायिक सहायता उपलब्ध है।
  3. बड़े, सक्रिय उपयोगकर्ता समुदाय।

जे के खिलाफ तर्क:

  1. कोई सामान्य-पहुँच नहीं, समर्थित जावा EE 5 कंटेनर रिलीज़।
  2. प्रलेखन के बहुत सारे लेकिन क्रिया; "मैं एक्स कैसे करूं?" के उत्तर खोजना मुश्किल हो सकता है।
  3. अन्य वाणिज्यिक प्रसादों की तुलना में 4.x गरीबों के लिए प्रशासनिक उपकरण।

"कोई सामान्य-पहुंच नहीं, समर्थित JEE 5 कंटेनर रिलीज़।" मुझे लगता है कि अब मामला नहीं है, सही है?
राडवल्ड

@ रेवडवाल: हाँ, अब जब जेईई 6 कुछ समय के लिए हो गया है ;-)
यमजोरोस

4

चेकआउट ग्लासफिश 3.1! मॉड्यूलर के शीर्ष पर निर्मित, जावा ईई 6 आधारित ग्लासफिश वी 3 कर्नेल, संस्करण 3.1 क्लस्टरिंग, केंद्रीकृत प्रशासन और उच्च उपलब्धता प्रदान करता है।

अधिक जानकारी के लिए http://blogs.oracle.com/nazrul/entry/glassfish_3_1 देखें।


3

एक और बात जिस पर यहां चर्चा नहीं की गई वह है प्रदर्शन। यदि यह सेवा के प्रकार के कारण या उपयोगकर्ताओं की संख्या के कारण चिंता है, तो निम्नलिखित लागू होंगे:

  • टॉम्स्क ग्लासफिश की तुलना में धीमा लगता है
  • ग्लासफिन राल की तुलना में धीमी लगती है
  • राल जी-वान + जावा की तुलना में बहुत धीमा है

ध्यान दें कि जी-वान अकेले जेवीएम पर निर्भर करता है: यह आगे के कंटेनरों का उपयोग नहीं करता है (जब तक कि स्पष्ट रूप से निर्दिष्ट नहीं किया गया है) इसलिए आप इसे अपने वेब अनुप्रयोगों के प्रदर्शन-महत्वपूर्ण भागों में आरक्षित कर सकते हैं।

जैसा कि G-WAN अन्य भाषाओं (C, C ++, C #, D, ऑब्जेक्टिव-सी) का समर्थन करता है, तो आप अन्य कार्यों के लिए जावा रखते हुए भी कच्चे C में अनुप्रयोगों के कुछ भागों को संसाधित कर सकते हैं।


2

मैं एक निर्णय मानदंड के रूप में आपके पसंदीदा ओएस को शामिल कर सकता हूं। यदि आप ओएस और ऐप सर्वर के लिए एक ही विक्रेता का उपयोग कर रहे हैं तो इसका समर्थन करना आसान होना चाहिए। यदि आपके पास पहले से ही एक या दोनों विक्रेताओं के साथ संबंध हैं, तो विचार करें कि क्या वे निपटने के लिए अच्छे हैं।

एक तकनीकी दृष्टिकोण से मैं ग्लासफिश को चुनूंगा क्योंकि इसमें अधिक हालिया नवाचारों का समर्थन है। मुझे नहीं लगता कि JBoss वैसे भी खराब है क्योंकि यह अभी तक अप-टू-डेट नहीं है।

मेरा अधिकांश अनुभव WebLogic पर है लेकिन मैंने JBoss और GlassFish का उपयोग किया है। मैंने अभी एक पूर्ण सन ओपन सोर्स स्टैक (ओपनसोलारिस, ग्लासफिश, माईएसक्यूएल) पर एक नई साइट जारी की और यह केवल मामूली निराशाओं के साथ एक शानदार अनुभव था।


ओएस वास्तव में एक मुद्दा नहीं है, जब तक कि आपके पास बहुत विशिष्ट द्विआधारी निर्भरता नहीं है (जो कि अधिकांश जावा परियोजनाओं के लिए नहीं होना चाहिए)। हम विंडोज़, 32 और 64 बिट्स पर विकसित होते हैं और सोलारिस पर ग्लासफिश पर तैनात होते हैं। अधिकांश डेवलपर्स वास्तव में नहीं जानते हैं और देखभाल करने की आवश्यकता नहीं है। उपयोगकर्ता इसे नहीं देखते हैं (हमारे विकास के अधिकांश वेब अनुप्रयोग हैं)।
यमजोरोस

2

मुझे अभी भी लगता है कि WebLogic बाजार पर सबसे अच्छा जावा ईई ऐप सर्वर है। मुझे लगता है कि अगर आप उन लाइसेंस फीस को वहन कर सकते हैं तो यह इसके लायक है।

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

मैं स्प्रिंग डीएम सर्वर में भी देखूंगा। यह टॉमकैट पर आधारित है, लेकिन मुझे लगता है कि उन्होंने जो OSGi टुकड़ा जोड़ा है, वह हर जगह शॉर्ट ऑर्डर में हो सकता है। यदि यह स्प्रिंग फ्रेमवर्क के समान गुणवत्ता के साथ किया जाता है, तो यह वास्तव में बहुत अच्छा होगा।


2
समस्या मेरे पास WebLogic के साथ है, वेंडर लॉक इन है, यह एक बुरा गोली है जिसे निगलने के लिए आपको वास्तव में ज़रूरत नहीं है!
मेनिअस

1
यह उन सभी जावा ईई विक्रेताओं के बारे में सच है, जिनके बारे में मुझे पता है, न कि केवल वेबलॉग। यदि आप किसी भी वेंडर-विशिष्ट सुविधाओं का उपयोग करते हैं, जिसमें आप बंद हैं। कुछ समय के लिए कोड लिखें।
duffymo

3
WebLogic केवल व्यावसायिक है - यही मैं प्राप्त कर रहा हूं - एक बार जब आप एक बड़ा चेक लिखते हैं, तो आप एक ओपन सोर्स विकल्प के साथ एक बड़े स्तर पर "लॉक" हो जाते हैं। जाहिर है अगर आप मंच की स्वतंत्रता के बारे में परवाह करते हैं, तो आप विक्रेता विशिष्ट सुविधाओं का उपयोग नहीं करेंगे, इसलिए मैं ऐसा नहीं कर रहा हूं। वास्तव में मैंने एक बार पढ़ा एक सर्वेक्षण में देवों का मानना ​​है कि बचने में वेंडर-लॉक खुले स्रोत का # 1 लाभ है (लागत नहीं)।
मानियस

पूरी बकवास? क्या आप मानते हैं कि किसी विक्रेता के साथ बहु-मिलियन डॉलर के अनुबंध पर हस्ताक्षर करना आपको लॉक नहीं करता है? तुम्हारा प्रमाण है।
डफिमो

@ymajoros क्या आपका मतलब "वेंडर" में वेंडर लॉक-इन नहीं होना चाहिए? सच कहूं, तो मैं आपकी टिप्पणी का कोई मतलब नहीं निकाल सकता।
पैट्रिक एम

1

एक विकल्प: सभी में कोई भी पर्यवेक्षक का उपयोग न करें।

चेक आउट http://www.atomikos.com/Publications/J2eeWithoutApplicationServer

वेब प्रोजेक्ट्स के लिए, यदि आपको JSP / JSF या स्ट्रट्स की जटिलता से बचने के लिए विकेट जैसे किसी चीज़ के साथ एक हल्का वेब कंटेनर रखना है।

HTH आदमी


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

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