कुछ शब्दों में ओएसजीआई मानक मॉड्यूलर अनुप्रयोगों का निर्माण करने के लिए उपयोग किया जाता है। यह मॉड्यूलरिटी के नए स्तर को जोड़ता है - बंडल (उर्फ घटक, मॉड्यूल)। प्रत्येक बंडल वर्गों और इंटरफेस और क्या सबसे महत्वपूर्ण यह चाहिए होता है स्पष्ट रूप से राज्य:
- जो अन्य घटकों या जावा इसे इस्तेमाल करता है पैकेज,
- और जो इसे अन्य घटकों द्वारा प्रयोग की जाने वाली बेनकाब करने के लिए चाहता है पैकेज।
तकनीकी बिंदु से बंडल जार फाइलें हैं जिनकी थोड़ी विस्तार META-INF/MANIFEST.MF
फ़ाइल है। सभी उपर्युक्त जानकारी MANIFEST.MF
फ़ाइल में संग्रहीत है।
व्यावहारिक दृष्टिकोण से इस व्याख्या में दोनों फायदे और नुकसान हैं। मेरे लिए सबसे बड़ा फायदा यह है कि आपको मानक आर्किटेक्चर, मॉड्यूल और मानक अनुप्रयोगों की तुलना में उनके बीच बातचीत के बारे में सोचना पड़ता है। यह बेहतर आर्किटेक्चर बना सकता है जहां प्रत्येक मॉड्यूल अच्छी तरह से परिभाषित कार्यों के लिए ज़िम्मेदार है और मॉड्यूल का पुन: उपयोग किया जा सकता है। यदि नुकसान की बात आती है, तो कई मॉड्यूल बनाना कभी-कभी दर्दनाक हो सकता है। बहुत सारे मॉड्यूल रखना बहुत आसान है और यदि आपके पास वास्तव में बहुत से हैं तो मॉड्यूल के बीच सभी निर्भरताओं को बनाए रखना मुश्किल हो सकता है (निर्भरता चक्र काफी दर्दनाक हैं)।
ओएसजीआई न केवल मॉड्यूलर अनुप्रयोगों का निर्माण करने का एक मानक है। यह उस माहौल को भी निर्दिष्ट करता है जिसमें बंडल मौजूद हैं और चल रहे हैं। यह कुछ ऐसा है जो आपको अवगत होना चाहिए - ओएसजीआई का उपयोग करते समय आपको अपने आवेदन को एक विशेष वातावरण में शुरू करना होगा। यह वातावरण (उदाहरण के लिए Eclipse Equinox) आपके आवेदन को चलाने के लिए ज़िम्मेदार है। यह कुछ फैंसी संभावनाएं प्रदान करता है। उदाहरण के लिए आप इस एप्लिकेशन को रोकने की आवश्यकता के बिना पहले से चल रहे एप्लिकेशन में पहले से चलने वाले एप्लिकेशन में एक बंडल जोड़ सकते हैं - यह कुछ प्रकार के अनुप्रयोगों में वास्तव में एक महत्वपूर्ण तत्व हो सकता है (लेकिन आईएमएचओ ऐसे कई एप्लिकेशन नहीं हैं जिन्हें वास्तव में इसकी आवश्यकता होगी)।
वास्तव में वास्तव में महत्वपूर्ण क्या है यह तथ्य भी है कि कुछ ओपन सोर्स लाइब्रेरी ओएसजीआई इंफ्रास्ट्रक्चर के साथ पूरी तरह से संगत नहीं हो सकते हैं और बॉक्स के बाहर उन्हें मानक जावा अनुप्रयोगों में उपयोग करना मुश्किल हो सकता है (याद रखें कि ओएसजीआई में सब कुछ एक बंडल होना चाहिए)। हालांकि, बहुत से लोकप्रिय पुस्तकालयों को बंडलों में लपेटा गया था - उदाहरण के लिए वसंत अपने bundles repository प्रदान करता है जिसमें कई लोकप्रिय पुस्तकालय शामिल हैं (लेकिन सभी नहीं)।
ओएसजीआई काफी जटिल है और कुछ शब्दों में इसकी संभावनाओं और इसकी संभावनाओं का वर्णन करना मुश्किल है।मैंने जो लिखा वह ओएसजीआई के सबसे महत्वपूर्ण (आईएमओ) तत्व हैं। लेकिन ओएसजीआई बहुत अधिक है, उदा। बंडल एक दूसरे को घटना भेज सकते हैं, वे एक दूसरे को सेवाएं प्रदान कर सकते हैं। यदि आप अधिक जानकारी में रूचि रखते हैं तो मैं एक ट्यूटोरियल के माध्यम से जाने का सुझाव देता हूं। मैं this one in Java World की सिफारिश कर सकता हूं। उसके बाद आप ओएसजीआई के बारे में this free e-book पर एक नज़र डाल सकते हैं (इसमें बहुत सारे विवरण हैं)। ओएसजीआई के बारे में सभी विवरण आधिकारिक विनिर्देशों में पाए जा सकते हैं लेकिन मैं नहीं कहूंगा कि उन्हें पढ़ने में आसान है (कम से कम शुरुआत में) - आप उन्हें here (डाउनलोड करने से पहले आपको लाइसेंस और कुछ कानूनी नोटिस स्वीकार करना होगा) ।
संक्षेप में मुझे लगता है कि मॉड्यूलर अनुप्रयोगों के निर्माण के दौरान ओएसजीआई उपयोगी है लेकिन यह निश्चित रूप से मुफ्त में नहीं है। यह एक भारी मानक है जो आपको कुछ चीजों को करने के लिए अनुमति नहीं दे सकता है और आपको ओएसजीआई चीजों को करने के लिए मजबूर कर सकता है।
कुछ अतः संबंधित प्रश्नों:
आपके विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद :) – Izza
अब माइक्रोस्कोर्सेस के आगमन के साथ, ओएसजीआई की तुलना में माइक्रोस्कोर्सेस कितने अलग या बेहतर हैं? – yathirigan