تاسو دمخه خپل سافټویر په ځای کې لرئ ، مګر تاسو لاهم د پلیټ فارم پراخولو لپاره ستاسو تخنیکي کاروونکو وړولو لپاره خورا مؤثره میتود ته اړتیا لرئ.
که څه هم OSGi د ډیری جاوا پراختیا کونکو ته ښه پیژندل شوی ، ستاسو په محصول کې د دې مدغم کول ممکن یو ستونزمن کار ښکاري. د OSGi دقیقو کارونو په اړه د وضاحت نشتوالی مخ په وړاندې سړک نور هم ګډوډ کوي.
د هر هغه څه برخلاف چې دوی یې تجربه کول غواړي ، OSGi د ډیری جاوا پراختیا کونکو ته پراخه بحر ته د تګ هڅه کولو په څیر احساس کوي.
دا مقاله به تاسو د مستقیم برنامه په کارولو سره د OSGi فیلکس پسرلي ټیوټوریل ته معرفي کړي او د هغې ګټې ، او نور مهم توضیحات پرمخ بوځي.
نو OSGi څه شی دی؟
د ماډلونو او اجزاوو رامینځته کول او توزیع کول د جاوا چوکاټ لخوا ممکن د OSGi (د خلاص خدماتو دروازې نوښت) په نوم پیژندل شوي.
دا د فنکشن انکیپسولیشن او لوز کوپلینګ ټینګار کوي ، کوم چې پراختیا کونکو ته ډیری ګټې وړاندې کوي ، پشمول د ماډلر فعالیت چې د سرچینې کوډونو او ازموینې ترمینځ په اسانۍ سره د لیږد وړ دی چې نه ختمیدونکي انحصار ته اړتیا نلري.
OSGi څنګه کار کوي؟
د جاوا لپاره د متحرک اجزا سیسټم د OSGi په نوم د مشخصاتو سیټ لخوا تعریف شوی. دا مشخصات د پراختیا طریقه فعالوي چیرې چې غوښتنلیک د یو شمیر برخو څخه جوړ شوی او بیا په بنډلونو کې بسته بندي کیږي.
ځایی او د شبکې پر بنسټ خدمتونه د دې اجزاو لخوا د خبرو اترو لپاره کارول کیږي. د برنامه اصلي کوډ د امکان تر حده کمپیکٹ جوړول هدف دی. د دې کوډ او څو اجزاوو تر مینځ لوړ جوړه ممکنه ده.
د غوښتنلیک د بیا کارونې وړ ساختماني عناصر د اجزاو په نوم یادیږي. د ځانګړتیاوو په اړه فکر وکړئ لکه ستاسو د ای کامرس ویب پاڼې لپاره د پیرود کارټ یا ستاسو د کارمندانو مدیریت سیسټم لپاره د معاشونو غوښتنلیک.
اجزاوې کولی شي OSGi وکاروي ترڅو خپل پلي کونکي له نورو برخو څخه پټ کړي او یوازې د خدماتو له لارې دوی ته اړین معلومات چمتو کړي.
دا اجزا په غیر ارادي ډول د معلوماتو بدلولو مخه نیسي چې دوی باید لاسرسی ونه لري او انحصار اداره کړي.
د OSGi غوښتنلیک کې د اجزاو ترمینځ ټولې اړیکې په مثالي نړۍ کې د خدماتو له لارې رامینځته کیږي. د جاوا کڅوړه هغه API لري چې د خدماتو لپاره مشخص شوی.
د خدماتو چمتو کونکو او پیرودونکو ترمنځ همکاري د ټولګیو او/یا انٹرفیسونو کارولو ته اړتیا لري، کوم چې API جوړوي.
د OSGi ټولې برخې په بنډلونو کې یوځای بسته شوي، چې هر یو کې هغه سرچینې شاملې دي چې دوی یې د فعالیت لپاره اړتیا لري. بنډلونه د دې په اړه خورا روښانه دي چې دوی د چاپیریال څخه څه ته اړتیا لري او هغه څه چې دوی یې وړتیا لري.
ګټې
- د OSGi غوښتنلیکونه بهرني بنډل ذخیره کولو ته لاسرسی لري.
- چوکاټ د ماډل په کچه د خدماتو پر بنسټ ډیزاین ته اجازه ورکوي.
- دا د معیاري کولو او د دریمې ډلې کتابتونونو ادغام کولو سربیره د غوښتنلیک بنډلونو نسخې او انحصار اداره کول ممکنه کوي.
- غوښتنلیکونه د غوښتنو بدلولو لپاره ډیر تطابق وړ دي ، ډیر پورټ ایبل ، او د بیا انجینر لپاره ګړندي دي.
- A ګورت کاریال د جاوا EE برنامه کولو ماډل سره د چوکاټ ادغام څخه مننه د متحرک ژوند سره د نسخه شوي OSGi بنډلونو ګروپ په توګه ګمارل کیدی شي.
- د دې پرځای چې د غوښتنلیک برخې په توګه د دریمې ډلې کتابتون په توګه نصب شي، چوکاټ په معیاري بڼه د پسرلي چوکاټ بیاناتي اسمبلۍ او منظم واحد ازموینه چمتو کوي چې د غوښتنلیک سرور چلولو د یوې برخې په توګه چمتو شوي.
- د کارپوریټ غوښتنلیکونو لپاره چې د متحرک ژوند دورې سره د څو نسخو بنډلونو څخه جوړ شوي ، چوکاټ انزوا وړاندیز کوي.
- دا د یوځای شوي بنډل ذخیره لري چې کولی شي د ډیری غوښتنلیکونو لخوا کارول شوي ګډ او نسخه شوي بنډلونه ذخیره کړي، د هر غوښتنلیک د هر شریک کتابتون جلا کاپي ځای پرځای کولو مخه نیسي.
د OSGi فیلکس پسرلي سره پیل کول
د سرچینو ترلاسه کول
د اپاچی کاراف ترټولو وروستي نسخه ډاونلوډ کولو سره دا سایټ، موږ کولی شو زموږ د OSGi ساہسک پیل کړو.
د Apache Felix پر بنسټ، د OSGi مشخصاتو د اپاچي تطبیق، اپاچی کاراف د OSGi پر بنسټ غوښتنلیکونو لپاره یو پلیټ فارم چمتو کوي.
کاراف د فیلکس په سر کې مختلف ګټور ب featuresې وړاندې کوي چې موږ سره به د OSGi سره د ځان پیژندلو کې مرسته وکړي ، لکه د کمانډ لاین انٹرفیس چې موږ ته به د دې وړتیا راکړي چې د پلیټ فارم سره اړیکه ونیسو.
د بنډلونو لپاره د ننوتلو ځای
یو غوښتنلیک باید د OSGi بنډل په توګه بسته شي مخکې لدې چې دا په OSGi چاپیریال کې پرمخ وړل کیدی شي. سربیره پردې، د غوښتنلیک د ننوتلو ځای باید مشخص شي؛ دا د عامه جامد باطل اصلي (String[] args) فعالیت نه دی.
نو راځئ چې د جوړولو له لارې پیل وکړو "سلام نړید OSGi پر بنسټ غوښتنلیک.
موږ د لومړني OSGi API انحصار رامینځته کولو سره پیل کوو:
د OSGi چلولو وخت به انحصار ته لاسرسی ولري ، نو له همدې امله بنډل دې ته اړتیا نلري. له همدې امله، دا د چمتو شوي په توګه په نښه شوی.
اوس راځئ چې مستقیم هیلوورلډ کلاس جوړ کړو:
هغه ټولګي چې د بنډلونو لپاره د ننوتلو نقطو په توګه عمل کوي باید د OSGi لخوا چمتو شوي BundleActivator انٹرفیس پلي کړي.
کله چې د دې ټولګي بنډل په لاره واچول شي، د OSGi پلیټ فارم start() فنکشن ته زنګ ووهي. له بلې خوا، د بنډل د ودرولو څخه لږ وخت دمخه، فنکشن stop() ویل کیږي.
راځئ چې هیر نکړو چې هر بنډل یوازې یو بنډل اکټیوټر لري. دواړه لارې کولی شي د BundleContext څیز په کارولو سره د OSGi رن ټایم سره اړیکه ونیسي چې ورکړل شوي.
د بنډل جوړول
د اړینو بدلونونو په کولو سره pom.xml یو ریښتینی OSGi بنډل جوړ کړئ.
موږ باید لومړی په واضح ډول څرګند کړو چې زموږ هدف د بنډل تولید دی.
بیا، موږ د HelloWorld ټولګي د OSGi بنډل په توګه بسته کولو لپاره د Maven-bundle-plugin څخه کار اخلو، د اپاچي فیلکس ټولنې په مهرباني:
د OSGi سرلیکونو ارزښتونه چې موږ یې د بنډل MANIFEST فایل کې شاملول غواړو د لارښوونو برخه کې مشخص شوي.
Bundle-Activator په حقیقت کې د BundleActivator حل مناسب نوم دی چې د بنډل پیل او ودرولو لپاره به ګمارل کیږي. دا یوازې د جوړ شوي ټولګي سره مطابقت لري.
پداسې حال کې چې دا د OSGi سرلیک ندی، د شخصي بسته سرلیک پلگ ان ته لارښوونه کوي چې بسته په بنډل کې اضافه کړي مګر یوازې دا نورو پلگ انونو ته د لاسرسي وړ نه کړي. د mvn install کمانډ باید د بنډل جوړولو لپاره وکارول شي.
د بنډل نصب او چلول
راځئ چې د دې کمانډ په چلولو سره کاراف پیل کړو:
چیرې چې "کارف کور" هغه فولډر ته اشاره کوي چیرې چې کاراف ترتیب شوی و. موږ کولی شو د بنډل نصبولو لپاره لاندې کمانډ وکاروو کله چې د کاراف کنسول پرامپټ څرګند شي:
د محلي ماوین ذخیره کارول دا دي چې کاراف ته څنګه ویل کیږي چې بنډل بار کړي.
د بنډل عددي ID بیرته راګرځول، کاراف دا لیکي. دا ID ممکن د دې پورې اړه ولري چې څومره بنډلونه مخکې نصب شوي. بنډل اوس په بریالیتوب سره نصب شوی، او د پیل کولو قومانده په لاندې ډول ده:
هغه شیبه چې تاسو کڅوړه لانچ کړئ ، "هیلو ورلډ د جې لخوا" څرګندیږي. موږ اوس کولی شو په کارولو سره بنډل ودروو او لرې کړو:
کنسول "د جې لخوا الوداع نړۍ" ښیې.
پایله
پراختیا کونکي کولی شي په اسانۍ سره موجوده ویب غوښتنلیک ته نوي فعالیت اضافه کړي پداسې حال کې چې دا خوندي ساتي او د OSGi په کارولو سره د اصلي برنامې نورو برخو څخه جلا کوي.
موږ پدې پوسټ کې د OSGi په اړه زده کړل ، پشمول دا چې دا څنګه کار کوي ، ګټې یې ، او مستقیم برنامه. دا ستونزمنه نده چې OSGi په خپل غوښتنلیک کې شامل کړئ.
خوشحاله کوډینګ!
یو ځواب ورکړئ ووځي