2012-02-24 11 views
18

प्रश्न: आज तक, दो एंटरप्राइज़ ओएसजीआई ढांचे में से कौन सा परिपक्व है: अपाचे मेष या ग्रहण मिथुन?एंटरप्राइज़ ओएसजीआई फ्रेमवर्क: परिपक्वता तुलना अपाचे मेष बनाम ग्रहण मिथुन

मैंने मेष और मिथुन एंटरप्राइज़ ओएसजीआई क्षमताओं के कुछ बुनियादी शोध किए हैं। मैं भी इसी तरह के प्रश्न से गुजर चुका हूं: Gemini and Apache Aries blueprint container

नीचे मेरी आवश्यकताओं और निष्कर्ष। आपके अतिरिक्त इनपुट की अत्यधिक सराहना करेंगे।

  1. खाका कंटेनर: दोनों मेष और मिथुन खाका विनिर्देश के खिलाफ कार्यान्वयन के मामले में समान रूप से परिपक्व लगते हैं।

  2. वेब विकास (स्प्रिंग Portlet MVC का उपयोग कर JSR 286 के खिलाफ विकासशील किया जाएगा):
    हालांकि मिथुन वेब स्प्रिंग डीएम (मिथुन ढांचे की ओर इसलिए मेरी प्रारंभिक वरीयता) में जड़ है, मुझे विश्वास है कि मेष राशि के समान रूप से सक्षम होना चाहिए स्प्रिंग पोर्टलेट एमवीसी आधारित वेब अनुप्रयोगों के साथ काम करना।

  3. जेपीए: यह चिंता का मेरा सबसे बड़ा क्षेत्र है। यद्यपि मैं शुरुआत में मिथुन की ओर झुका हुआ था (स्प्रिंग डीएम में इसकी जड़ों और सक्रिय स्प्रिंगसोर्स समुदाय से समर्थन के कारण), मुझे लगता है कि मिथुन जेपीए परिपक्वता मेष जेपीए की तुलना में काफी कम है। कारण:

    • मिथुन जेपीए केवल जेपीए प्रदाता के रूप में एक्लिप्ससेंक के साथ एकीकरण का समर्थन करता है। मैं हाइबरनेट का उपयोग करना चाहता हूं। मेष जेपीए हाइबरनेट का समर्थन करता है।
    • Gemini JPA limitations: का जिक्र करते हुए विशेष रूप से सीमा # 5: जेटीए लेनदेन के लिए समर्थन की कमी। ऐसा लगता है कि Aries JPA supports JTA ... लेकिन मैं समर्थन के स्तर के विवरण में शामिल नहीं हो पाया।
  4. JNDI: मेरा नया वेब अनुप्रयोगों के लिए एक सेवा स्तरीय JBoss अनुप्रयोग सर्वर के अंदर की मेजबानी से मौजूदा सत्र EJBs में कॉल करने के लिए की आवश्यकता होगी। इसलिए क्लाइंट स्तर में मेरे ओएसजीआई सक्षम वेब अनुप्रयोगों के लिए जेएनडीआई समर्थन महत्वपूर्ण है।
    ऐसा लगता है कि मिथुन नामकरण yet to be released है, जबकि मेष already got some capability in this area.

उत्तर

13

वही सवाल मेरे मन में आया और मैं निम्नलिखित परिणाम मिल गया है:

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

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

3: जैसा कि मुझे जेटीए का उपयोग करना पसंद है, यह मेरे लिए मिथुन का उपयोग करने का कोई विकल्प नहीं था। मैंने थोड़ी देर के लिए मेष जेपीए का इस्तेमाल किया और मैं इससे संतुष्ट था। जैसा कि मैं कई सहयोगियों के साथ काम करता हूं, मैं उनकी प्रभावशीलता के लिए जिम्मेदार हूं। मेष जेपीए के साथ मुझे समस्या थी कि यह DataSourceFactory सेवाओं (यदि डीबी कनेक्शन persistence.xml में परिभाषित किया गया है) या डेटासोर्स सेवाओं (यदि jta-data-source या non-jta-data-source) परिभाषित किया गया है, तो प्रतीक्षा नहीं की गई है। इसका मतलब था कि जब आप मेष जेपीए का उपयोग करते हैं तो बंडल शुरू करने का आदेश महत्वपूर्ण होता है।

जब तक हमने ग्लासफ़िश और जेएनडीआई का उपयोग नहीं किया तब तक यह कोई समस्या नहीं थी क्योंकि ग्लासफ़िश ने हमारे ओएसजीआई बंडलों से पहले जेएनडीआई संसाधन शुरू किया था। जब हम ओएसजीआई कंटेनर को साफ करने के लिए चले गए तो हमें समस्याएं शुरू हुईं और मेरे सहयोगियों ने सही बंडल ऑर्डर करने की कोशिश करने में बड़ी संख्या में खर्च करना शुरू कर दिया।

अंत में मैंने मेष राशि जेपीए को एक बंडल में बंडल किया और उन हिस्सों को फिर से लिखना जिन्हें मैं पसंद नहीं आया। इसका मतलब है कि मैंने केवल persistence.xml पार्सर भाग रखा है और http://everit.org/osgi/jpa/org.everit.osgi.jpa.container/index.html पर अपनी परियोजना बनाई है जहां मैंने इस परेशानी को ध्यान में रखते हुए केंद्रित नहीं किया। वर्तमान में यह हाइबरनेट के साथ काम करता है और मुझे लगता है कि Eclipselink और संकलन समय बढ़ाया OpenJPA के साथ (कोशिश नहीं की है)। मेरे द्वारा लिखित कंटेनर org.apache.aries.jpa.container.context और aries jpa blueprint नामस्थान हैंडलर के साथ अच्छी तरह से काम करता है।

4: यदि आप एक एप्लिकेशन सर्वर का उपयोग करते हैं और आप सुनिश्चित हैं कि आपका जेएनडीआई पर्यावरण इसका उपयोग करने से पहले आपके बंडलों से पहले शुरू होता है। हालांकि आप संशोधन को पकड़ नहीं सकते हैं या जेएनडीआई संसाधन को हटा नहीं सकते हैं इसलिए मैं ओएसजीआई के अंदर इसका उपयोग करने का सुझाव नहीं देता हूं। यदि आपको जेपीए की वजह से इसकी आवश्यकता है तो मैं अपने कंटेनर कार्यान्वयन का सुझाव दे सकता हूं :) जो मानक ओएसजीआई सेवा ट्रैकर्स का उपयोग करता है भले ही आप osgi: service/... अभिव्यक्ति के साथ अपने persistence.xml में * -डेटा-स्रोत का उपयोग करते हैं। यदि आपको केंद्रीय कॉन्फ़िगरेशन स्थान की आवश्यकता है तो मैं अनुशंसा करता हूं कि आपको ओएसजीआई विनिर्देश के मेटाटेप और कॉन्फ़िगरेशन व्यवस्थापन भागों के फ़ेलिक्स-वेबकॉलोल के कॉन्फ़िगरेशन टैब को देखना चाहिए। यदि आप मेटाटाइप की सहायता से कॉन्फ़िगरेशन सेटिंग को परिभाषित करते हैं तो वे फ़िलिक्स-वेबकोनोल पर और कॉन्फ़िगरेशन एडमिन एपीआई के माध्यम से उपलब्ध होंगे, आप कॉन्फ़िगरेशन परिवर्तन ईवेंट को पकड़ सकेंगे। मैंने परीक्षण किया और फेलिक्स-वेबकॉन्सोल ने मेरे लिए इक्विनोक्स-जेट्टी जोड़ी पर भी काम किया।

आशा है कि मेरा इनपुट उपयोगी था!

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