OSGi: ब्लूप्रिंट बनाम स्प्रिंग डीएम




blueprint spring-dm (4)

मैं ब्लूप्रिंट और स्प्रिंग डीएम के बारे में थोड़ा भ्रमित हूं:

जो मुझे लगता है कि यह सच है:

  • स्प्रिंग डीएम स्प्रिंग सोर्स द्वारा परिभाषित एक फ्रेमवर्क है
  • ब्लूप्रिंट OSGi Alliance द्वारा परिभाषित एक ढांचा है
  • ब्लूप्रिंट ने स्प्रिंग डीएम के कई विचारों को "लिया" है

नहीं?

क्या हम उम्मीद कर सकते हैं कि भविष्य में वे दो रूपरेखाएँ एक हो जाएँगी? यदि नहीं, तो कौन सा सबसे अधिक भविष्य का सबूत होगा?


OSGi 4.2 स्प्रिंग डायनामिक मॉड्यूल परियोजना पर आधारित ब्लूप्रिंट सेवा विनिर्देश को प्रस्तुत करता है जिसके लिए स्प्रिंग डीएम (2.x) संदर्भ कार्यान्वयन (RI) है।

संक्षेप में: ब्लूप्रिंट एक विनिर्देश है, स्प्रिंग डीएम ब्लूप्रिंट एपीआई का कार्यान्वयन है


मिथुन ब्लूप्रिंट प्रलेखन की शुरूआत में वे स्पष्ट रूप से अंतर बताते हैं: http://www.eclipse.org/gemini/blueprint/documentation/reference/1.0.2.RELEASE/html/index.html

मैं यहां पुन: पेश करता हूं:

अध्याय 1. स्प्रिंग डायनामिक मॉड्यूल ग्रहण मिथुन ब्लूप्रिंट बन जाता है

2009 के अंत में, जेमिनी परियोजना प्रस्ताव के एक सदस्य के रूप में, स्प्रिंगसोर्स ने एक्लिप्स फाउंडेशन को स्प्रिंग डायनामिक मॉड्यूल (जिसे स्प्रिंग ओएसजी के रूप में भी जाना जाता है) परियोजना में योगदान दिया। स्प्रिंग डीएम v2 कोड बेस को इसके इश्यू ट्रैकर और फोरम के साथ Eclipse.org में स्थानांतरित कर दिया गया है। परियोजना अपाचे लाइसेंस और ईपीएल के तहत दोहरी लाइसेंस बन गई।

जबकि नाम बदल गया है, कोड और इसकी कार्यक्षमता समान बनी हुई है। मौजूदा स्प्रिंग डीएम अनुप्रयोगों को आसानी से एक्लिप्स जेमिनी ब्लूप्रिंट में माइग्रेट गाइड में उल्लिखित किया जा सकता है।


स्प्रिंगजीआरएस / इंटरफ़ेस 21 के नेतृत्व में ओएसजीआई एलायंस में ब्लूप्रिंट विकसित किया गया था।

हालांकि, अगर आप बंडल (सेवाओं) के बीच एनोटेशन के साथ OSGi का उपयोग Declarative Services (DS) का लाभ उठाने के लिए कर रहे हैं। मेरे अनुभव में, आपको वास्तव में वायरिंग एक्सएमएल की आवश्यकता नहीं होती है जब आप छोटे चिपकने वाले बंडल बनाते हैं। डीएस ब्लूप्रिंट / स्प्रिंग डीएम की तुलना में सेवाओं के साथ काम करने में बहुत बेहतर है क्योंकि वे गतिशीलता को "छिपाना" चाहते हैं जबकि डीएस इसे केवल उपयोग करने के लिए तुच्छ बनाता है।


मेरी समझ यह है कि स्प्रिंगडीएम एक मृत परियोजना है । जीए और रिलीज की तारीखों की जांच करें। इसलिए, हालांकि अंत में यह विनिर्देश के विकास में बहुत योगदान देता है, यह क्लास लोडर के लिए एक बुरा दृष्टिकोण था। Apache-Aries एक मजबूत खाका कार्यान्वयन है। ध्यान दें कि ब्लूप्रिंट का उपयोग वसंत के उपयोग को रोकता नहीं है। मैं करफ को एक मजबूत मंच के रूप में सुझाऊंगा जो कि ओएसजीआई इंजन के लिए एक्लिप्स इक्विनॉक्स या अपाचे फेलिक्स का उपयोग कर सकता है। मुझे ब्लूप्रिंट बनाम डीएस पसंद है यदि आप आवेदन स्तर पर विकसित कर रहे हैं जहां आपकी सेवाओं का उपयोग आपके उद्यम के भीतर अन्य टीमों या संगठनों द्वारा किया जा सकता है, या आपके ग्राहकों द्वारा बढ़ाया जा सकता है। मुझे लगता है कि पारंपरिक उद्यम कंप्यूटिंग वातावरण के लिए खाका भी बेहतर है। लेकिन DS या Ipojo आपके विशेष लक्ष्य वातावरण के आधार पर अधिक उपयुक्त हो सकता है।