ओएसजीआई

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

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

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

अक्टूबर 2020 में, OSGi एलायंस ने मानकीकरण प्रयास को एक्लिप्स फाउंडेशन में स्थानांतरित करने की घोषणा की, जिसके बाद यह बंद हो जाएगा। सभी कलाकृतियों को एक्लिप्स फाउंडेशन में स्थानांतरित कर दिया गया है, जहां "ओएसजीआई वर्किंग ग्रुप विनिर्देश को बनाए रखना और विकसित करना जारी रखता है।

विशिष्टता प्रक्रिया
OSGi विशिष्टता को सदस्यों द्वारा खुली प्रक्रिया में विकसित किया जाता है और OSGi विशिष्टता लाइसेंस के तहत जनता को निःशुल्क उपलब्ध कराया जाता है। ओएसजीआई एलायंस का नियामक अनुपालन कार्यक्रम है जो केवल सदस्यों के लिए खुला है। नवंबर 2010 तक, सात प्रमाणित ओएसजीआई फ्रेमवर्क कार्यान्वयन हैं। अलग पृष्ठ प्रमाणित और गैर-प्रमाणित दोनों ओएसजीआई विशिष्टता कार्यान्वयन को सूचीबद्ध करता है, जिसमें ओएसजीआई ढांचे और अन्य ओएसजीआई विनिर्देश शामिल हैं।

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

रूपरेखा को वैचारिक रूप से निम्नलिखित क्षेत्रों में विभाजित किया गया है:
 * बंडल: बंडल अतिरिक्त मेनिफेस्ट हेडर के साथ सामान्य JAR (फ़ाइल प्रारूप) घटक हैं।
 * सेवाएँ: सेवा परत सादे पुराने जावा इंटरफेस (पीओजेआई) या सादे पुराने जावा ऑब्जेक्ट्स (पीओजेओ) के लिए प्रकाशन-खोज-बाइंड मॉडल की पेशकश करके बंडलों को गतिशील तरीके से जोड़ती है।
 * सेवा रजिस्ट्री: प्रबंधन सेवाओं के लिए अप्लिकेशन प्रोग्रामिंग अंतरफलक
 * जीवन-चक्र: बंडलों के लिए जीवन चक्र प्रबंधन (इंस्टॉल, स्टार्ट, स्टॉप, अपडेट और अनइंस्टॉल) के लिए एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस।
 * मॉड्यूल: वह परत जो एनकैप्सुलेशन और निर्भरता की घोषणा को परिभाषित करती है (कैसे बंडल कोड आयात और निर्यात कर सकता है)।
 * सुरक्षा: वह परत जो बंडल कार्यक्षमता को पूर्व-निर्धारित क्षमताओं तक सीमित करके सुरक्षा पहलुओं को संभालती है।
 * निष्पादन पर्यावरण: परिभाषित करता है कि किसी विशिष्ट प्लेटफ़ॉर्म में कौन सी विधियाँ और कक्षाएं उपलब्ध हैं। निष्पादन वातावरण की कोई निश्चित सूची नहीं है, क्योंकि यह परिवर्तन के अधीन है क्योंकि जावा समुदाय प्रक्रिया जावा के नए संस्करण और संस्करण बनाती है। हालाँकि, निम्नलिखित सेट वर्तमान में अधिकांश OSGi कार्यान्वयन द्वारा समर्थित है:
 * कनेक्टेड डिवाइस कॉन्फ़िगरेशन|सीडीसी-1.0/फाउंडेशन-1.0
 * कनेक्टेड डिवाइस कॉन्फ़िगरेशन|सीडीसी-1.1/फाउंडेशन-1.1
 * ओएसजीआई/न्यूनतम-1.0
 * ओएसजीआई/न्यूनतम-1.1
 * जेआरई-1.1
 * J2SE-1.2 से J2SE-1.6 तक

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

नीचे विशिष्ट उदाहरण दिया गया है  OSGi हेडर के साथ फ़ाइल: उदाहरण में सामग्री का अर्थ इस प्रकार है:
 * 1) बंडल-नाम: इस बंडल के लिए मानव-पठनीय नाम परिभाषित करता है, बस बंडल को संक्षिप्त नाम निर्दिष्ट करता है।
 * 2) बंडल-प्रतीकात्मक नाम: एकमात्र आवश्यक हेडर, यह प्रविष्टि रिवर्स डोमेन नाम नोटेशन (जावा पैकेज द्वारा भी उपयोग किया जाता है) के आधार पर बंडल के लिए अद्वितीय पहचानकर्ता निर्दिष्ट करती है।
 * 3) बंडल-विवरण: बंडल की कार्यक्षमता का विवरण।
 * 4) बंडल-मैनिफेस्ट संस्करण: इस बंडल को पढ़ने के लिए उपयोग करने के लिए ओएसजीआई विनिर्देश को इंगित करता है।
 * 5) बंडल-संस्करण: बंडल के लिए संस्करण संख्या निर्दिष्ट करता है।
 * 6) बंडल-एक्टिवेटर: बंडल सक्रिय होने के बाद क्लास नाम को इंगित करता है।
 * 7) निर्यात-पैकेज: व्यक्त करता है कि बंडल में कौन से जावा पैकेज बाहरी दुनिया के लिए उपलब्ध कराए जाएंगे।
 * 8) आयात-पैकेज: इंगित करता है कि बंडल में आवश्यक निर्भरता को पूरा करने के लिए बाहरी दुनिया से कौन से जावा पैकेज की आवश्यकता होगी।

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

नीचे इसे लागू करने वाली विशिष्ट जावा क्लास का उदाहरण दिया गया है  इंटरफेस:

मानक सेवाएँ
OSGi एलायंस ने कई सेवाएँ निर्दिष्ट की हैं। सेवाएँ जावा इंटरफ़ेस द्वारा निर्दिष्ट की जाती हैं। बंडल इस इंटरफ़ेस को कार्यान्वित कर सकते हैं और सेवा रजिस्ट्री के साथ सेवा पंजीकृत कर सकते हैं। सेवा के ग्राहक इसे रजिस्ट्री में पा सकते हैं, या इसके प्रकट होने या गायब होने पर प्रतिक्रिया दे सकते हैं।

नीचे दी गई तालिका OSGi सिस्टम सेवाओं का विवरण दिखाती है: नीचे दी गई तालिका OSGi प्रोटोकॉल सेवाओं का विवरण दिखाती है: नीचे दी गई तालिका OSGi विविध सेवाओं का विवरण दिखाती है:

संगठन
ओएसजीआई एलायंस की स्थापना मार्च 1999 में एरिक्सन, आईबीएम, MOTOROLA, सन माइक्रोसिस्टम्स और अन्य द्वारा की गई थी। गैर-लाभकारी निगम के रूप में शामिल होने से पहले, इसे कनेक्टेड एलायंस कहा जाता था।

इसके सदस्यों में शामिल हैं बिल्कुल भिन्न व्यावसायिक क्षेत्रों की 35 से अधिक कंपनियाँ, उदाहरण के लिए एडोब इंक, डॉयचे टेलीकॉम,  Hitachi, आईबीएम, लाइफ़रे, मेकवेव, एनईसी, निप्पॉन टेलीग्राफ एंड टेलीफोन, ओरेकल कॉर्पोरेशन, ऑरेंज एसए, प्रोसिस्ट,  बिक्री बल , सीमेंस,  सॉफ्टवेयर इंक  और टिब्को सॉफ्टवेयर। एलायंस के पास निदेशक मंडल है जो संगठन का समग्र प्रशासन प्रदान करता है। गठबंधन का समर्थन करने में OSGi अधिकारियों की विभिन्न भूमिकाएँ और जिम्मेदारियाँ हैं। तकनीकी कार्य निदेशक मंडल द्वारा चार्टर्ड विशेषज्ञ समूहों (ईजी) के भीतर आयोजित किया जाता है, और गैर-तकनीकी कार्य विभिन्न कार्य समूहों और समितियों में आयोजित किया जाता है। विशेषज्ञ समूहों के भीतर किए गए तकनीकी कार्यों में विशिष्टताओं का विकास, संदर्भ कार्यान्वयन और अनुपालन परीक्षण शामिल हैं। इन विशेषज्ञ समूहों ने ओएसजीआई विनिर्देशों के पांच प्रमुख रिलीज तैयार किए हैं.

उद्यम, मोबाइल, वाहन और मुख्य प्लेटफ़ॉर्म क्षेत्रों के लिए समर्पित विशेषज्ञ समूह मौजूद हैं।

एंटरप्राइज एक्सपर्ट ग्रुप (ईईजी) नवीनतम ईजी है और एंटरप्राइज/सर्वर-साइड अनुप्रयोगों को संबोधित कर रहा है। नवंबर 2007 में आवासीय विशेषज्ञ समूह (आरईजी) ने आवासीय/होम-गेटवे को दूरस्थ रूप से प्रबंधित करने के लिए विशिष्टताओं पर काम करना शुरू किया। अक्टूबर 2003 में, नोकिया, मोटोरोला, अंतर्राष्ट्रीय व्यवसाय तंत्र, प्रोसिस्ट और अन्य ओएसजीआई सदस्यों ने मोबाइल एक्सपर्ट ग्रुप (एमईजी) का गठन किया, जो अगली पीढ़ी के स्मार्ट मोबाइल फोन के लिए एमआईडीपी-आधारित सेवा प्लेटफॉर्म निर्दिष्ट करेगा, जो कनेक्टेड कुछ जरूरतों को संबोधित करेगा। सीमित डिवाइस कॉन्फ़िगरेशन प्रबंधित नहीं किया जा सकता – कनेक्टेड डिवाइस कॉन्फ़िगरेशन के अलावा अन्य। MEG R4 की तरह OSGi का हिस्सा बन गया।

विशिष्टता संस्करण

 * ओएसजीआई रिलीज़ 1 (आर1): मई 2000
 * ओएसजीआई रिलीज़ 2 (आर2): अक्टूबर 2001
 * ओएसजीआई रिलीज़ 3 (आर3): मार्च 2003
 * ओएसजीआई रिलीज 4 (आर4): अक्टूबर 2005/सितंबर 2006
 * कोर विशिष्टता (आर4 कोर): अक्टूबर 2005
 * मोबाइल विशिष्टता (आर4 मोबाइल/जेएसआर-232): सितंबर 2006
 * ओएसजीआई रिलीज 4.1 (आर4.1): मई 2007 (एकेए जेएसआर-291)
 * ओएसजीआई रिलीज 4.2 (आर4.2): सितंबर 2009
 * एंटरप्राइज विशिष्टता (आर4.2): मार्च 2010
 * ओएसजीआई रिलीज़ 4.3 (आर4.3): अप्रैल 2011
 * कोर: अप्रैल 2011
 * सार-संग्रह एवं आवासीय: मई 2012
 * ओएसजीआई रिलीज़ 5 (आर5): जून 2012
 * कोर और एंटरप्राइज: जून 2012
 * ओएसजीआई रिलीज़ 6 (आर6): जून 2015
 * कोर: जून 2015
 * ओएसजीआई रिलीज 7 (आर7): अप्रैल 2018
 * कोर और सार-संग्रह: अप्रैल 2018
 * OSGi रिलीज़ 8 (R8): दिसंबर 2020

संबंधित मानक

 * मल्टीमीडिया होम प्लेटफार्म एप्लिकेशन प्लेटफ़ॉर्म
 * यूनिवर्सल प्लग एंड प्ले (यूपीएनपी)
 * DPWS
 * आईटीयू-टी जी.एच.एन
 * लोनवर्क्स
 * कोरबा
 * सीईबस
 * यूरोपीय होम सिस्टम प्रोटोकॉल (KNX (मानक)) / CECED चेन (उद्योग मानक)
 * जावा प्रबंधन एक्सटेंशन

ओएसजीआई का उपयोग करने वाली परियोजनाएं

 * एडोब अनुभव प्रबंधक – उद्यम सामग्री प्रबंधन प्रणाली
 * अपाचे मेष – ओएसजीआई एंटरप्राइज एक्सपर्ट ग्रुप द्वारा परिभाषित एप्लिकेशन-केंद्रित विशिष्टताओं का ब्लूप्रिंट कंटेनर कार्यान्वयन और विस्तार
 * अपाचे स्लिंग – जावा सामग्री रिपॉजिटरी के लिए सामग्री रिपॉजिटरी एपीआई के लिए ओएसजीआई-आधारित एप्लिकेशन परत
 * एटलसियन संगम और एटलसियन वहाँ – इस एंटरप्राइज़ विकी और इश्यू ट्रैकर के लिए प्लग-इन आर्किटेक्चर OSGi का उपयोग करता है
 * बीआईआरटी परियोजना|बिजनेस इंटेलिजेंस एंड रिपोर्टिंग टूल्स (बीआईआरटी) प्रोजेक्ट – ओपन सोर्स रिपोर्टिंग इंजन
 * साइटोस्केप – खुला स्रोत जैव सूचना विज्ञान सॉफ़्टवेयर प्लेटफ़ॉर्म (संस्करण 3.0 के अनुसार)
 * डेटा डेटान्यूक्लियस – सेवा-उन्मुख आर्किटेक्चर में ओपन सोर्स डेटा सेवाएं और दृढ़ता मंच
 * डीडीएफ – वितरित डेटा फ्रेमवर्क मुफ़्त और ओपन-सोर्स डेटा एकीकरण प्रदान करता है
 * डॉटसीएमएस – खुला स्रोत वेब सामग्री प्रबंधन
 * ईज़ीबीन्स – खुला स्रोत ईजेबी 3 कंटेनर
 * ग्रहण (सॉफ्टवेयर) – ओपन सोर्स आईडीई और रिच क्लाइंट प्लेटफ़ॉर्म
 * iDempiere – ओपन सोर्स उद्यम संसाधन योजना  ब्रांच ग्लोबलक्यूएसएस पूरा का ओएसजीआई कार्यान्वयन है जो मूल रूप से लो हेंग सिन द्वारा शुरू किया गया था।
 * कन्या (सॉफ्टवेयर) – ओपन सोर्स माइक्रोकर्नेल-आधारित सर्वर ओएसजीआई बंडलों से निर्मित और ओएसजीआई अनुप्रयोगों का समर्थन करता है
 * कांच की मछली (v3) –जावा ईई के लिए एप्लिकेशन सर्वर
 * फ़्यूज़ ईएसबी – ServiceMix 4 का उत्पादीकृत और समर्थित रिलीज़
 * एकीकृत जीनोम ब्राउज़र – जीनोम डेटा को देखने, तलाशने और विश्लेषण करने के लिए खुला स्रोत, डेस्कटॉप जीयूआई
 * इंटेलीजे आइडिया – मुफ्त सामुदायिक संस्करण के साथ जावा आईडीई और समृद्ध ग्राहक मंच
 * जेबॉस – Red Hat का JBoss एप्लिकेशन सर्वर
 * जोनास 5 – ओपन सोर्स जावा ईई 5 एप्लिकेशन सर्वर
 * जोसो 2 – एट्रीकोर का खुला स्रोत मानक-आधारित पहचान और पहुंच प्रबंधन प्लेटफ़ॉर्म
 * लाइफ़रे – ओपन सोर्स और वाणिज्यिक उद्यम पोर्टल प्लेटफ़ॉर्म संस्करण 7.x से OSGi का उपयोग करते हैं
 * लूसी 5 – खुला स्रोत सीएफएमएल वेब एप्लिकेशन सर्वर
 * NetBeans – ओपन सोर्स आईडीई और रिच क्लाइंट प्लेटफ़ॉर्म
 * नक्सियो – ओपन सोर्स उद्यम सामग्री प्रबंधन  सर्विस प्लेटफॉर्म
 * डेलाइट प्रोजेक्ट खोलें – सॉफ़्टवेयर-परिभाषित नेटवर्किंग को अपनाने में तेजी लाने के लक्ष्य के साथ परियोजना
 * ओपनईजेबी – ओपन सोर्स ओएसजीआई-सक्षम ईजेबी 3.0 कंटेनर जिसे स्टैंडअलोन या एम्बेडेड मोड दोनों में चलाया जा सकता है
 * ओपनएचएबी – ओपन सोर्स होम ऑटोमेशन सॉफ्टवेयर
 * ओपनवर्म – कैनोर्हाडाइटिस एलिगेंस|सी का ओपन सोर्स सॉफ्टवेयर सिमुलेशन। एलिगेंस, समर्पित गेपेट्टो मॉड्यूलर प्लेटफॉर्म के माध्यम से
 * अकना – अकाना से एपीआई गेटवे, पोर्टल और एनालिटिक्स सर्वर (पूर्व में एसओए सॉफ्टवेयर)
 * वेबलॉजिक – ओरेकल वेबलॉजिक एप्लिकेशन सर्वर
 * वेबस्फेयर – आईबीएम वेबस्फीयर जेईई एप्लिकेशन सर्वर
 * वेबमेथड्स – सॉफ्टवेयरएजी वेबमेथड्स
 * WSO2 कार्बन – WSO2 के एंटरप्राइज़-ग्रेड ओपन सोर्स मिडलवेयर स्टैक के लिए बेस प्लेटफ़ॉर्म
 * पेंटाहो - व्यापारिक सूचना  (बीआई) सॉफ्टवेयर जो डेटा एकीकरण, ओएलएपी,  प्रतिवेदन, डैशबोर्ड (प्रबंधन सूचना प्रणाली), डेटा खनन और एक्सट्रैक्ट, ट्रांसफॉर्म, लोड (ईटीएल) क्षमताएं प्रदान करता है।

यह भी देखें

 * ओएसजीआई विशिष्टता कार्यान्वयन

बाहरी संबंध

 * Oredev 2008 - Architecture - OSGi Now and Tomorrow
 * Eclipse Equinox Article Index - Articles on an open source OSGi implementation
 * Eclipse Equinox Article Index - Articles on an open source OSGi implementation