توھان وٽ اڳ ۾ ئي توھان جو سافٽ ويئر آھي، پر توھان کي اڃا تائين وڌيڪ موثر طريقي جي ضرورت آھي پنھنجي ٽيڪنيڪل استعمال ڪندڙن کي پليٽ فارم کي وڌائڻ لاءِ.
جيتوڻيڪ OSGi گهڻو ڪري جاوا ڊولپرز لاءِ مشهور آهي، ان کي توهان جي پراڊڪٽ ۾ ضم ڪرڻ هڪ مشڪل ڪم وانگر لڳي سگهي ٿو. OSGi جي درست ڪم جي باري ۾ وضاحت جي کوٽ اڳتي وڌڻ واري رستي کي وڌيڪ خراب ڪري ٿي.
ڪنهن به شيءِ جي برعڪس جيڪي اهي تجربا ڪرڻ چاهين ٿا، OSGi وڌيڪ محسوس ڪري ٿو ته جيئن وسيع سمنڊ کي ڪيترن ئي جاوا ڊولپرز ڏانهن وڃڻ جي ڪوشش ڪري.
اهو آرٽيڪل توهان کي متعارف ڪرايو ويندو OSGi فيلڪس اسپرنگ ٽيوٽوريل هڪ سڌي پروگرام استعمال ڪندي ۽ ان جي فائدن ۽ ٻين اهم تفصيلن ذريعي.
پوء OSGi ڇا آهي؟
ماڊلز ۽ اجزاء ٺاهڻ ۽ ورهائڻ ممڪن بڻايو ويو آهي جاوا فريم ورڪ جي نالي سان سڃاتو وڃي ٿو OSGi (اوپن سروس گيٽ وي شروعات).
اهو فنڪشنل انڪپسوليشن ۽ لوز ڪوپلنگ تي زور ڏئي ٿو، جيڪو ڊولپرز لاءِ ڪيترائي فائدا پيش ڪري ٿو، بشمول ماڊلر ڪارڪردگي جيڪا آساني سان منتقلي جي قابل آهي سورس ڪوڊ ۽ ٽيسٽ جي وچ ۾ جنهن کي اڻ ختم ٿيندڙ انحصار جي ضرورت ناهي.
OSGi ڪيئن ڪم ڪندو آهي؟
جاوا لاءِ هڪ متحرڪ جزو سسٽم جي وضاحت ڪئي وئي آهي وضاحتن جي هڪ سيٽ طرفان جنهن کي OSGi سڏيو ويندو آهي. اهي چشمي هڪ ترقي واري طريقي کي فعال ڪن ٿا جتي هڪ ايپليڪيشن ڪيترن ئي حصن مان ٺهيل آهي ۽ پوء بنڊلن ۾ پيڪيج ٿيل آهي.
مقامي ۽ نيٽ ورڪ تي ٻڌل خدمتون استعمال ڪيون وينديون آهن انهن حصن طرفان گفتگو ڪرڻ لاءِ. پروگرام جي بنيادي ڪوڊ کي ممڪن طور تي ممڪن بڻائڻ مقصد آهي. هن ڪوڊ ۽ ڪيترن ئي حصن جي وچ ۾ اعلي coupling ممڪن آهي.
ايپليڪيشن جي ٻيهر استعمال جي قابل عمارت عناصر کي سڏيو ويندو آهي اجزاء. خاصيتن جي باري ۾ سوچيو جيئن توهان جي اي ڪامرس ويب سائيٽ لاءِ شاپنگ ڪارٽ يا توهان جي اسٽاف مئنيجمينٽ سسٽم لاءِ پگهار واري درخواست.
اجزاء OSGi استعمال ڪري سگھن ٿا انھن جي عملن کي ٻين اجزاء کان لڪائڻ لاءِ ۽ صرف انھن کي ضروري ڊيٽا مهيا ڪري سگھن ٿا خدمتن ذريعي.
هي اجزاء کي غير ارادي طور تي ڊيٽا کي تبديل ڪرڻ کان روڪي ٿو انهن کي رسائي نه هجڻ گهرجي ۽ انحصار کي منظم ڪري ٿو.
OSGi ايپليڪيشن ۾ اجزاء جي وچ ۾ سڀ رابطا هڪ مثالي دنيا ۾ خدمتن ذريعي ڪيا ويا آهن. هڪ جاوا پيڪيج ۾ API شامل آهي جيڪا خدمتن لاءِ مخصوص ڪئي وئي آهي.
خدمت فراهم ڪندڙ ۽ گراهڪن جي وچ ۾ تعاون جي ضرورت آهي ڪلاس ۽/يا انٽرفيس جي استعمال جي، جيڪي API ٺاهيندا آهن.
OSGi جا سڀئي جزا گڏ ٿيل آهن بنڊلن ۾، جن مان هر هڪ ۾ اهي وسيلا شامل آهن جيڪي انهن کي ڪم ڪرڻ جي ضرورت آهي. بنڊل بلڪل واضح آهن ته انهن کي ماحول مان ڪهڙي ضرورت آهي ۽ اهي ڇا ڪرڻ جي قابل آهن.
فائدا
- OSGi ايپليڪيشنن کي خارجي بنڊل مخزن تائين رسائي آهي.
- فريم ورڪ کي اجازت ڏئي ٿو خدمت تي مبني ڊيزائن ماڊل سطح تي.
- اهو ممڪن بڻائي ٿو ته ايپليڪيشن بنڊلن جي نسخن ۽ انحصار کي منظم ڪرڻ کان علاوه معياري ڪرڻ ۽ ٽئين پارٽي جي لائبريرين کي ضم ڪرڻ آسان بڻائي.
- درخواستون تبديل ٿيندڙ مطالبن لاءِ وڌيڪ سازگار آهن، وڌيڪ پورٽبل، ۽ تيزيءَ سان ٻيهر انجنيئر ڪرڻ.
- A ويب ايپليڪيشن جاوا اي اي پروگرامنگ ماڊل سان فريم ورڪ جي انضمام جي ڪري هڪ متحرڪ لائف ٽائم سان ورزن ٿيل OSGi بنڊل جي هڪ گروپ جي طور تي ترتيب ڏئي سگهجي ٿو.
- ايپليڪيشن جي حصي جي طور تي ٽئين پارٽي جي لائبريري جي طور تي نصب ٿيڻ جي بدران، فريم ورڪ هڪ معياري فارم ۾ اسپرنگ فريم ورڪ جي اعلاناتي اسيمبلي ۽ منظم يونٽ ٽيسٽ مهيا ڪري ٿو جيڪا ايپليڪيشن سرور رن ٽائم جي حصي جي طور تي مهيا ڪئي وئي آهي.
- ڪارپوريٽ ايپليڪيشنن لاءِ ڪيترن ئي ورزن واري بنڊلن مان ٺاهيل متحرڪ لائف سائيڪل سان ، فريم ورڪ پيش ڪري ٿو اڪيلائي.
- اهو هڪ مربوط بنڊل مخزن تي مشتمل آهي جيڪو ڪيترن ئي ايپليڪيشنن پاران استعمال ڪيل گڏيل ۽ ورزن ٿيل بنڊلن کي ذخيرو ڪري سگهي ٿو، هر ايپليڪيشن کي هر شيئر لائبريري جي الڳ ڪاپي کي ترتيب ڏيڻ کان روڪي ٿو.
OSGi فيلڪس بهار سان شروع ڪرڻ
وسيلا حاصل ڪرڻ
ڊائون لوڊ ڪندي اپاچي ڪراف جو تازو ورزن تان هي سائيٽ، اسان اسان جي OSGi جرئت شروع ڪري سگھون ٿا.
Apache Felix جي بنياد تي، OSGi وضاحتن جي اپاچي عمل درآمد، Apache Karaf OSGi تي ٻڌل ايپليڪيشنن لاءِ پليٽ فارم مهيا ڪري ٿي.
Karaf Felix جي چوٽي تي مختلف مددگار خاصيتون مهيا ڪري ٿي جيڪي اسان کي OSGi سان پاڻ کي واقف ڪرڻ ۾ مدد ڏين ٿيون، جهڙوڪ ڪمانڊ لائن انٽرفيس جيڪو اسان کي پليٽ فارم سان رابطو ڪرڻ جي قابل بڻائيندو.
بنڊلن لاءِ داخلا پوائنٽ
هڪ ايپليڪيشن کي OSGi بنڊل جي طور تي پيڪ ڪيو وڃي ان کان اڳ جو اهو OSGi ماحول ۾ هلائي سگهجي. اضافي طور تي، ايپليڪيشن جي داخلا پوائنٽ کي بيان ڪيو وڃي. اهو معياري عوامي جامد باطل مکيه (String[] args) فنڪشن ناهي.
سو اچو ته شروعات ڪريون ”هيلو ورلڊOSGi تي ٻڌل ايپليڪيشن.
اسان هڪ بنيادي OSGi API انحصار قائم ڪندي شروع ڪريون ٿا:
OSGi رن ٽائم کي انحصار تائين رسائي هوندي، تنهن ڪري بنڊل کي ان تي مشتمل هجڻ جي ضرورت ناهي. تنهن ڪري، اهو نشان لڳايو ويو آهي جيئن فراهم ڪيل.
ھاڻي ھاڻي ٺاھيون سڌا ھيلو ورلڊ ڪلاس:
ڪلاس جيڪي بنڊلن لاءِ داخلا پوائنٽ جي طور تي ڪم ڪن ٿا انهن کي لازمي طور تي OSGi مهيا ڪيل BundleActivator انٽرفيس لاڳو ڪرڻ گهرجي.
جڏهن هن ڪلاس تي مشتمل بنڊل شروع ڪيو ويو آهي، OSGi پليٽ فارم کي سڏي ٿو start() فنڪشن. ٻئي طرف، بنڊل کي روڪڻ کان ٿورو اڳ، فنڪشن اسٽاپ () سڏيو ويندو آهي.
اچو ته اهو نه وساريو ته هر بنڊل ۾ صرف هڪ BundleActivator ٿي سگهي ٿو. ٻئي طريقا OSGi رن ٽائم سان رابطو ڪري سگھن ٿا BundleContext اعتراض استعمال ڪندي جيڪو ڏنو ويو آھي.
بنڊل ٺاهڻ
ضروري تبديليون ڪندي pom.xml کي هڪ حقيقي OSGi بنڊل ٺاهيو.
اسان کي پهريان واضح طور تي ظاهر ڪرڻ گهرجي ته اسان جو مقصد هڪ بنڊل پيدا ڪرڻ آهي.
پوءِ، اسان استعمال ڪريون ٿا maven-bundle-plugin HelloWorld ڪلاس کي پيڪيج ڪرڻ لاءِ OSGi بنڊل، بشڪريه Apache Felix ڪميونٽي:
OSGi هيڊرن جا قدر جيڪي اسان شامل ڪرڻ چاهيون ٿا بنڊل جي MANIFEST فائل ۾ هدايتون سيڪشن ۾ بيان ڪيا ويا آهن.
Bundle-Activator واقعي BundleActivator حل جو صحيح نالو آهي جيڪو بنڊل کي شروع ڪرڻ ۽ بند ڪرڻ لاءِ استعمال ڪيو ويندو. اهو صرف ٺهيل طبقي سان مطابقت رکي ٿو.
جڏهن ته اهو هڪ OSGi هيڊر ناهي، پرائيويٽ-پيڪيج هيڊر پلگ ان کي هدايت ڪري ٿو ته پيڪيج کي بنڊل ۾ شامل ڪري پر صرف ان کي ٻين پلگ ان تائين رسائي نه ڏيو. mvn install ڪمانڊ استعمال ڪيو وڃي بنڈل ٺاهڻ لاءِ.
انسٽال ڪرڻ ۽ هلائڻ وارو بنڈل
اچو ته هن حڪم کي هلائڻ سان ڪراف شروع ڪريون:
جتي "KARAF HOME" فولڊر ڏانهن اشارو ڪري ٿو جتي ڪراف قائم ڪيو ويو هو. اسان هيٺ ڏنل حڪم استعمال ڪري سگھون ٿا بنڊل کي انسٽال ڪرڻ لاءِ جڏهن ڪراف ڪنسول پرامٽ ظاهر ٿئي ٿو:
مقامي Maven مخزن کي استعمال ڪندي ڪراف کي بنڊل لوڊ ڪرڻ لاءِ ٻڌايو ويو آهي.
بنڊل جي عددي ID کي واپس ڪندي، ڪراف ان کي لکي ٿو. هي ID مختلف ٿي سگهي ٿو ان تي منحصر آهي ته ڪيترا بنڊل اڳ ۾ نصب ڪيا ويا آهن. بنڈل ھاڻي ڪاميابيءَ سان انسٽال ڪيو ويو آھي، ۽ ان کي لانچ ڪرڻ جو حڪم ھيٺ ڏنل آھي:
جنهن لمحي توهان پيڪيج لانچ ڪيو، "هيلو ورلڊ پاران جي" ڏيکاري ٿو. اسان ھاڻي بند ڪري سگھون ٿا بنڊل کي استعمال ڪندي ختم ڪريو:
ڪنسول ڏيکاري ٿو "الوداع دنيا جي طرفان."
ٿڪل
ڊولپرز آساني سان موجوده ويب ايپليڪيشن ۾ نئين ڪارڪردگي شامل ڪري سگھن ٿا جڏهن ته ان کي محفوظ رکي ۽ OSGi استعمال ڪندي مکيه پروگرام جي ٻين حصن کان الڳ ڪري.
اسان هن پوسٽ ۾ OSGi بابت سکيو آهي، جنهن ۾ اهو ڪيئن ڪم ڪري ٿو، ان جا فائدا، ۽ هڪ سڌو پروگرام. توهان جي پنهنجي ايپليڪيشن ۾ OSGi کي شامل ڪرڻ ڏکيو ناهي.
خوش ڪوڊنگ!
جواب ڇڏي وڃو