मैंने पिछले 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 कंपनियों में से एक के लिए एक वरिष्ठ वास्तुकार / इंजीनियर के रूप में, मुझे अभी तक इस तरह की आवश्यकता को देखना होगा। दूसरी ओर,
यहां तक कि वास्तव में बड़े, उच्च यातायात, सार्वजनिक वेबसाइटों के लिए, स्वामित्व वाले उत्पाद अभी भी संदिग्ध हैं। मैं इसके बजाय कुछ अच्छे हार्डवेयर पर लाइसेंस फीस के प्रति वर्ष बहु मिलियन डॉलर खर्च करूँगा और एक साधारण स्केलेबिलिटी समाधान को संबोधित करने के लिए बहुत अच्छे सलाहकारों से कुछ गुणवत्ता समय। फिर प्रति वर्ष अतिरिक्त लाखों का उपयोग उस अच्छी वेबसाइट पर बेचने के योग्य कुछ करने के लिए किया जा सकता है ...
संपादित करें: विचार करने के लिए एक और टुकड़ा ...
मैंने हाल ही में टेराकोटा का सामना किया है । मैं सब कुछ पुनर्विचार कर रहा हूं, और जल्द ही इसे एक महत्वपूर्ण प्रणाली में तैनात करना चाहता हूं। विशेष रूप से, टेराकोटा कुछ और की तुलना में बेहतर क्लस्टरिंग करता है, इसलिए मैं इसके क्लस्टरिंग के लिए वेबलॉग की सिफारिश नहीं करूंगा।