2009-09-01 16 views
15

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

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

अकेले खड़े 100 अलग-अलग WAR फ़ाइलों और पैक किए गए जेएआर और साझा पुस्तकालयों (वेबलोगिक का उपयोग करके) का उपयोग करने में क्या गड़बड़ है?

किसी भी अंतर्दृष्टि के लिए धन्यवाद!

+0

बीईए वेबलोगिक या ओरेकल वेबलोगिक? – Zombies

+0

यह एक नया सर्वर है। ओरेकल वेबलोगिक। –

उत्तर

21

यदि आपके पास सभी WAR फ़ाइलें हैं, तो एक ईएआर सीमित उपयोगिता है, जो केवल आपके युद्धों के लिए तैनाती कंटेनर के रूप में कार्य करता है। आप इस तरह से WARs के बीच JAR साझा करके थोड़ा सा ब्लोट बचा सकते हैं, लेकिन यह स्वयं में बेहद आकर्षक नहीं है।

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

लेकिन यदि आप वेबलॉगिक का उपयोग कर रहे हैं तो एक डब्ल्यूएआर कंटेनर है, तो आप वेबलॉगिक से बाहर होने वाले सभी कार्यात्मक उपयोगों के लिए टोमकैट या जेट्टी जैसे वेनिला सर्वलेट कंटेनर का भी उपयोग कर सकते हैं।

9

मैं टिप्पणियों पर लगभग सभी स्काफमैन (आमतौर पर) स्थान से सहमत हूं।

यदि आप ईजेबी के बिना वसंत का उपयोग कर रहे हैं तो आप निश्चित रूप से एक डब्ल्यूएआर फ़ाइल के साथ रह सकते हैं। एक ईएआर की आवश्यकता नहीं है जिसे मैं देख सकता हूं।

हालांकि, यदि आपका स्प्रिंग ऐप संदेश संचालित पीओजेओ का उपयोग करता है तो मैं देख सकता हूं कि आप अभी भी JMS का लाभ उठाने के लिए वेबलॉगिक पर एक WAR फ़ाइल को तैनात करेंगे।

यदि आपके पास ईजेबी या जेसीए है तो एक ईएआर आवश्यक हो सकता है, लेकिन मैं यह नहीं कहूंगा कि जेएमएस एक ईएआर अनिवार्य है। मैंने जेएमएस का उपयोग किया है और WebLogic पर एक WAR फ़ाइल तैनात की है और यह ठीक काम करता है।

यदि आप टॉमकैट के साथ जाने और वहां एक युद्ध तैनात करने का निर्णय लेते हैं, तो आप सक्रिय एमक्यू का उपयोग करते हुए भी JMS कार्यक्षमता को रख सकते हैं।

+0

मैं इस टिप्पणी की सराहना करता हूं, धन्यवाद। कुछ दस्तावेज उद्धृत करना और वर्णित पैटर्न का पालन करना आसान है, लेकिन कार्यक्षमता के अनुसार यह बहुत अधिक समझ में आता है। व्यक्तिगत रूप से मुझे दिलचस्पी है कि कार्यक्षमता में सटीक मतभेद क्या हैं, इरादे के उपयोग के लिए दस्तावेज मानक नहीं, कोई भी आसानी से इसके बारे में सामग्री ढूंढ सकता है। वसंत के साथ इसने ईई शैली निर्भरता इंजेक्शन का लाभ उठाने के लिए हमेशा कान बनाने की आवश्यकता के बिना विकास को बहुत आसान बना दिया है। क्या आप किसी अन्य ब्रेकडाउन या संसाधनों के बारे में जानते हैं जो कार्यात्मक मतभेदों को इंगित करते हैं? –

+0

मैं कहूंगा कि यदि आप स्प्रिंग बूट के साथ जाते हैं, तो केवल एक JVM और निष्पादन योग्य वसा JAR के साथ आपको किसी ऐप सर्वर या WAR/EAR की आवश्यकता नहीं होती है। मैंने 6.5 साल पहले जवाब लिखा था; उस समय बहुत कुछ बदल गया है। – duffymo

4

ईएआर में एकाधिक WARs को पैकेज करने का तर्क आकर्षक हो सकता है यदि आप उस स्थिति में भाग लेते हैं जो मेरे आखिरी नियोक्ता ने किया था, जहां आपके पास लाइब्रेरी जेएआर का एक सामान्य सेट है जिसका उपयोग कई WARs द्वारा किया जाता है, और उस संग्रह का आकार जार की काफी है। हमारी विशेष स्थिति में, प्रत्येक डब्ल्यूएआर में पैक किए गए सामान्य जारों के साथ 3 डब्ल्यूएआर का कुल आकार 124 एमबी था। युक्त ईएआर में जारों को ढूंढकर और उन जारों का उपयोग करने के लिए प्रत्येक युद्ध के वर्गपंथ को कॉन्फ़िगर करके, ईएआर के पदचिह्न जिसमें 3 WAR शामिल थे, को 40 एमबी तक घटा दिया गया था। मैं उस पर एक अनिवार्य कारण मानता हूं।

2

कई साझा पुस्तकालयों के बजाय एक ईएआर के लिए जाने के लिए अनिवार्य कारण नहीं होना चाहिए, क्योंकि एक जार (या जेएआरएस सेट) को हमेशा वेबलॉगिक पर "लाइब्रेरी" के रूप में तैनात किया जा सकता है, इसलिए, सभी को साझा किया जा सकता है युद्धों। Isn 'यह सही है?

2

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

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

डेवलपर्स सिस्टम की ज़िम्मेदारी ले सकते हैं, लेकिन उन्हें अभी भी समय सीमा पूरी करने की जरूरत है। वे अनिवार्य रूप से सभी ओएस पर भी खून बहते थे, और अचानक डेवलपर्स एकमात्र संभावित व्यवस्थापक हैं। यदि कोई व्यवस्थापक नहीं जानता कि एप्लिकेशन सिस्टम पक्ष का उपयोग कर रहा है, तो वे बड़ी समस्याएं पैदा कर सकते हैं। ये अस्पष्ट रेखाएं हमेशा दोनों दिशाओं, अज्ञात सिस्टम राज्यों, और टीम अलगाव में इंगित उंगलियों में समाप्त होती हैं।

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

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