आपके पास अपना सॉफ़्टवेयर पहले से मौजूद है, लेकिन आपको अभी भी अपने तकनीकी उपयोगकर्ताओं को प्लेटफ़ॉर्म का विस्तार करने में सक्षम बनाने के लिए एक अधिक प्रभावी तरीके की आवश्यकता है।
भले ही ओएसजीआई अधिकांश जावा डेवलपर्स के लिए जाना जाता है, लेकिन इसे अपने उत्पाद में एकीकृत करना एक कठिन काम की तरह लग सकता है। ओएसजीआई के सटीक कामकाज के बारे में स्पष्टता की कमी आगे की राह को और उलझा देती है।
किसी भी चीज़ के विपरीत जो वे प्रयोग करना चाहते हैं, ओएसजीआई कई जावा डेवलपर्स के लिए विस्तृत समुद्र को पार करने का प्रयास करने की तरह महसूस करता है।
यह लेख आपको एक सरल प्रोग्राम का उपयोग करके ओएसजीआई फेलिक्स स्प्रिंग ट्यूटोरियल से परिचित कराएगा और इसके फायदों और अन्य महत्वपूर्ण विवरणों के बारे में बताएगा।
तो ओएसजीआई क्या है?
OSGi (ओपन सर्विस गेटवे इनिशिएटिव) नामक जावा फ्रेमवर्क द्वारा मॉड्यूल और घटकों को बनाना और वितरित करना संभव है।
यह फ़ंक्शन एनकैप्सुलेशन और ढीले युग्मन पर जोर देता है, जो डेवलपर्स को कई फायदे प्रदान करता है, जिसमें मॉड्यूलर कार्यक्षमता शामिल है जो स्रोत कोड और परीक्षण के बीच आसानी से हस्तांतरणीय है जिसे अंतहीन निर्भरता की आवश्यकता नहीं है।
ओएसजीआई कैसे काम करता है?
जावा के लिए एक गतिशील घटक प्रणाली को ओएसजीआई नामक विशिष्टताओं के एक सेट द्वारा परिभाषित किया गया है। ये चश्मा एक विकास दृष्टिकोण को सक्षम करते हैं जहां एक आवेदन कई हिस्सों से बनाया जाता है और फिर बंडलों में पैक किया जाता है।
इन घटकों द्वारा संचार के लिए स्थानीय और नेटवर्क-आधारित सेवाओं का उपयोग किया जाता है। कार्यक्रम के मूल कोड को यथासंभव संक्षिप्त बनाना उद्देश्य है। इस कोड और कई घटकों के बीच उच्च युग्मन संभव है।
एप्लिकेशन के पुन: प्रयोज्य भवन तत्वों को घटक कहा जाता है। अपनी ई-कॉमर्स वेबसाइट के लिए शॉपिंग कार्ट या अपने स्टाफ प्रबंधन प्रणाली के लिए पेरोल एप्लिकेशन जैसी सुविधाओं के बारे में सोचें।
घटक अन्य घटकों से अपने कार्यान्वयन को छिपाने के लिए ओएसजीआई का उपयोग कर सकते हैं और केवल सेवाओं के माध्यम से उन्हें आवश्यक डेटा प्रदान कर सकते हैं।
यह घटकों को अनजाने में उस डेटा को बदलने से रोकता है जिस तक उनकी पहुंच नहीं होनी चाहिए और निर्भरता का प्रबंधन करता है।
OSGi एप्लिकेशन में घटकों के बीच सभी कनेक्शन एक आदर्श दुनिया में सेवाओं के माध्यम से बनाए जाते हैं। जावा पैकेज में एपीआई होता है जो सेवाओं के लिए निर्दिष्ट होता है।
सेवा प्रदाताओं और ग्राहकों के बीच सहयोग के लिए कक्षाओं और/या इंटरफेस के उपयोग की आवश्यकता होती है, जो एपीआई बनाते हैं।
सभी OSGi घटकों को बंडलों में एक साथ पैक किया जाता है, जिनमें से प्रत्येक में वे संसाधन शामिल होते हैं जिनकी उन्हें कार्य करने के लिए आवश्यकता होती है। बंडल इस बारे में बिल्कुल स्पष्ट हैं कि उन्हें पर्यावरण से क्या चाहिए और वे क्या करने में सक्षम हैं।
लाभ
- OSGi एप्लिकेशन की बाहरी बंडल रिपॉजिटरी तक पहुंच है।
- ढांचा मॉड्यूल स्तर पर सेवा-उन्मुख डिजाइन की अनुमति देता है।
- यह मानकीकरण और तृतीय-पक्ष पुस्तकालयों को एकीकृत करना आसान बनाने के अलावा एप्लिकेशन बंडलों के संस्करणों और निर्भरताओं को प्रबंधित करना संभव बनाता है।
- एप्लिकेशन बदलती मांगों के लिए अधिक अनुकूल हैं, अधिक पोर्टेबल हैं, और पुनर्रचना के लिए तेज हैं।
- A वेब आवेदन जावा ईई प्रोग्रामिंग मॉडल के साथ ढांचे के एकीकरण के लिए एक गतिशील जीवनकाल के साथ संस्करण वाले ओएसजीआई बंडलों के समूह के रूप में तैनात किया जा सकता है।
- एप्लिकेशन के हिस्से के रूप में तीसरे पक्ष के पुस्तकालय के रूप में स्थापित होने के बजाय, फ्रेमवर्क स्प्रिंग फ्रेमवर्क की घोषणात्मक असेंबली और सुव्यवस्थित इकाई परीक्षण को एक मानकीकृत रूप में प्रदान करता है जो एप्लिकेशन सर्वर रनटाइम के हिस्से के रूप में प्रदान किया जाता है।
- गतिशील जीवनचक्र के साथ कई संस्करण वाले बंडलों से बने कॉर्पोरेट अनुप्रयोगों के लिए, ढांचा अलगाव प्रदान करता है।
- इसमें एक एकीकृत बंडल रिपोजिटरी है जो कई अनुप्रयोगों द्वारा उपयोग किए जाने वाले साझा सामान्य और संस्करण वाले बंडलों को स्टोर कर सकता है, प्रत्येक एप्लिकेशन को प्रत्येक साझा लाइब्रेरी की एक अलग प्रतिलिपि को तैनात करने से रोकता है।
ओएसजीआई फेलिक्स स्प्रिंग के साथ शुरुआत करना
संसाधन प्राप्त करना
Apache Karaf का नवीनतम संस्करण . से डाउनलोड करके इस साइट पर गाइड तैयार की है|, हम अपना OSGi साहसिक कार्य शुरू कर सकते हैं।
अपाचे फेलिक्स के आधार पर, ओएसजीआई विनिर्देश के अपाचे कार्यान्वयन, अपाचे कराफ ओएसजीआई-आधारित अनुप्रयोगों के लिए एक मंच प्रदान करता है।
कैराफ फेलिक्स के शीर्ष पर विभिन्न उपयोगी सुविधाएँ प्रदान करता है जो हमें ओएसजीआई से परिचित कराने में सहायता करेगा, जैसे कमांड लाइन इंटरफ़ेस जो हमें मंच के साथ संवाद करने में सक्षम करेगा।
बंडलों के लिए प्रवेश बिंदु
किसी एप्लिकेशन को OSGi वातावरण में चलाने से पहले उसे OSGi बंडल के रूप में पैक किया जाना चाहिए। साथ ही, आवेदन प्रविष्टि बिंदु निर्दिष्ट किया जाना चाहिए; यह मानक सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) फ़ंक्शन नहीं है।
तो चलिए शुरू करते हैं एक "नमस्ते विश्व"ओएसजीआई पर आधारित एप्लिकेशन।
हम एक बुनियादी OSGi API निर्भरता स्थापित करके शुरू करते हैं:
OSGi रनटाइम पर निर्भरता तक पहुंच होगी, इसलिए बंडल में इसे शामिल करने की आवश्यकता नहीं है। इसलिए, इसे आपूर्ति के रूप में चिह्नित किया गया है।
अब सीधा हैलोवर्ल्ड क्लास बनाते हैं:
बंडलों के लिए प्रवेश बिंदु के रूप में कार्य करने वाली कक्षाओं को OSGi द्वारा प्रदान किए गए BundleActivator इंटरफ़ेस को लागू करना चाहिए।
जब इस वर्ग वाले बंडल को लॉन्च किया जाता है, तो OSGi प्लेटफॉर्म स्टार्ट () फ़ंक्शन को कॉल करता है। दूसरी ओर, बंडल के रुकने से कुछ समय पहले, फ़ंक्शन स्टॉप () कहा जाता है।
आइए यह न भूलें कि प्रत्येक बंडल में केवल एक बंडल एक्टिवेटर हो सकता है। दोनों तरीके दिए गए BundleContext ऑब्जेक्ट का उपयोग करके OSGi रनटाइम के साथ संचार कर सकते हैं।
एक बंडल बनाना
आवश्यक परिवर्तन करके pom.xml को एक वास्तविक OSGi बंडल बनाएं।
हमें पहले स्पष्ट रूप से व्यक्त करना चाहिए कि हमारा लक्ष्य एक बंडल तैयार करना है।
फिर, हम हैलोवर्ल्ड क्लास को ओएसजीआई बंडल के रूप में पैकेज करने के लिए मावेन-बंडल-प्लगइन का उपयोग करते हैं, अपाचे फेलिक्स समुदाय के सौजन्य से:
OSGi हेडर के वे मान जिन्हें हम बंडल की MANIFEST फ़ाइल में शामिल करना चाहते हैं, निर्देश अनुभाग में निर्दिष्ट हैं।
बंडल-एक्टिवेटर वास्तव में बंडल एक्टिवेटर समाधान का उचित रूप से योग्य नाम है जिसे बंडल को शुरू करने और रोकने के लिए नियोजित किया जाएगा। यह हाल ही में बनाए गए वर्ग के साथ संगत है।
हालांकि यह ओएसजीआई हेडर नहीं है, निजी-पैकेज हेडर प्लगइन को पैकेज को बंडल में जोड़ने का निर्देश देता है लेकिन इसे अन्य प्लगइन्स तक पहुंच योग्य नहीं बनाता है। बंडल बनाने के लिए mvn इंस्टॉल कमांड का उपयोग किया जाना चाहिए।
बंडल स्थापित करना और चलाना
आइए इस आदेश को चलाकर करफ शुरू करें:
जहां "करफ होम" उस फ़ोल्डर को संदर्भित करता है जहां करफ स्थापित किया गया था। जब कराफ कंसोल प्रॉम्प्ट प्रकट होता है तो हम बंडल को स्थापित करने के लिए निम्न आदेश का उपयोग कर सकते हैं:
स्थानीय मावेन रिपॉजिटरी का उपयोग करके करफ को बंडल लोड करने के लिए कहा जाता है।
बंडल की अंकीय आईडी लौटाते हुए, काराफ़ उसे लिखता है। यह आईडी इस आधार पर भिन्न हो सकती है कि पहले कितने बंडल स्थापित किए जा चुके हैं। बंडल अब सफलतापूर्वक स्थापित किया गया है, और इसे लॉन्च करने का आदेश इस प्रकार है:
जिस क्षण आप पैकेज लॉन्च करते हैं, "हैलो वर्ल्ड बाय जे" प्रदर्शित होता है। अब हम बंडल का उपयोग करके रोक सकते हैं और हटा सकते हैं:
कंसोल "अलविदा वर्ल्ड बाय जय" प्रदर्शित करता है।
निष्कर्ष
ओएसजीआई का उपयोग करके डेवलपर्स इसे सुरक्षित और मुख्य कार्यक्रम के अन्य घटकों से अलग रखते हुए मौजूदा वेब एप्लिकेशन में आसानी से नई कार्यक्षमता जोड़ सकते हैं।
हमने इस पोस्ट में ओएसजीआई के बारे में सीखा है, जिसमें यह कैसे कार्य करता है, इसके फायदे और एक सीधा कार्यक्रम शामिल है। ओएसजीआई को अपने आवेदन में शामिल करना मुश्किल नहीं है।
हैप्पी कोडिंग!
एक जवाब लिखें