O ti ni sọfitiwia rẹ tẹlẹ, ṣugbọn o tun nilo ọna ti o munadoko diẹ sii lati mu awọn olumulo imọ-ẹrọ rẹ ṣiṣẹ lati faagun pẹpẹ.
Paapaa botilẹjẹpe OSGi jẹ olokiki daradara si ọpọlọpọ awọn olupilẹṣẹ Java, iṣakojọpọ rẹ sinu ọja rẹ le dabi iṣẹ ṣiṣe ti o lewu. Aini wípé nipa awọn iṣẹ ṣiṣe deede ti OSGi siwaju sii mu ki ọna siwaju.
Ni idakeji si ohunkohun ti wọn yoo fẹ lati ṣe idanwo pẹlu, OSGi kan lara diẹ sii bi igbiyanju lati lọ si okun nla si ọpọlọpọ awọn olupilẹṣẹ Java.
Nkan yii yoo ṣafihan ọ si ikẹkọ orisun omi OSGi Felix nipa lilo eto titọ ati lọ nipasẹ, awọn anfani rẹ, ati awọn alaye pataki miiran.
Nitorina kini OSGi?
Ṣiṣẹda ati pinpin awọn modulu ati awọn paati jẹ ṣee ṣe nipasẹ ilana Java ti a mọ ni OSGi (Open Service Gateway Initiative).
O tẹnu mọ ifisi iṣẹ ati isọdọkan alaimuṣinṣin, eyiti o funni ni awọn anfani pupọ si awọn olupilẹṣẹ, pẹlu iṣẹ ṣiṣe modulu ti o ṣee gbe ni imurasilẹ laarin awọn koodu orisun ati idanwo ti ko nilo awọn igbẹkẹle ailopin.
Bawo ni OSGi ṣiṣẹ?
Eto paati ti o ni agbara fun Java jẹ asọye nipasẹ ṣeto awọn pato ti a pe ni OSGi. Awọn alaye lẹkunrẹrẹ wọnyi jẹ ki ọna idagbasoke kan nibiti a ti kọ ohun elo lati nọmba awọn ẹya ati lẹhinna akopọ sinu awọn edidi.
Awọn iṣẹ agbegbe ati orisun nẹtiwọki jẹ lilo nipasẹ awọn paati wọnyi lati ṣe ibaraẹnisọrọ. Ṣiṣe koodu mojuto ti eto naa bi iwapọ bi o ti ṣee ṣe ni ipinnu. Isopọ giga laarin koodu yii ati awọn paati pupọ ṣee ṣe.
Awọn eroja ile atunlo ohun elo naa ni a pe ni awọn paati. Ronu nipa awọn ẹya bii rira rira fun oju opo wẹẹbu e-commerce rẹ tabi ohun elo isanwo fun eto iṣakoso oṣiṣẹ rẹ.
Awọn paati le lo OSGi lati tọju awọn imuse wọn lati awọn paati miiran ati pese data pataki nikan fun wọn nipasẹ awọn iṣẹ.
Eyi ṣe idilọwọ awọn paati lati yiyipada data lairotẹlẹ wọn ko yẹ ki o ni iwọle si ati ṣakoso awọn igbẹkẹle.
Gbogbo awọn asopọ laarin awọn paati ninu ohun elo OSGi jẹ nipasẹ awọn iṣẹ ni agbaye pipe. Apo Java kan ni API ti o wa ni pato fun awọn iṣẹ.
Ifowosowopo laarin awọn olupese iṣẹ ati awọn onibara nilo lilo awọn kilasi ati/tabi awọn atọkun, eyiti o jẹ API.
Gbogbo awọn paati OSGi jẹ akopọ papọ ni awọn edidi, ọkọọkan eyiti o pẹlu awọn orisun ti wọn nilo lati ṣiṣẹ. Awọn edidi jẹ kedere nipa ohun ti wọn nilo lati agbegbe ati ohun ti wọn lagbara.
anfani
- Awọn ohun elo OSGi ni iraye si awọn ibi ipamọ lapapo ita.
- Ilana naa ngbanilaaye apẹrẹ iṣẹ-iṣẹ ni ipele module.
- O jẹ ki o ṣee ṣe lati ṣakoso awọn ẹya ati awọn igbẹkẹle ti awọn edidi ohun elo ni afikun si isọdiwọn ati ṣiṣe ki o rọrun lati ṣepọ awọn ile-ikawe ẹni-kẹta.
- Awọn ohun elo jẹ ibaramu diẹ sii si awọn ibeere iyipada, gbigbe diẹ sii, ati yiyara lati tun-ẹrọ.
- A ohun elo ayelujara le ti wa ni ransogun bi ẹgbẹ kan ti ikede OSGi edidi pẹlu kan ìmúdàgba s'aiye ọpẹ si awọn ilana ká Integration pẹlu Java EE siseto awoṣe.
- Dipo ki o fi sii bi ile-ikawe ẹni-kẹta gẹgẹbi apakan ti ohun elo naa, ilana naa n pese apejọ asọye ati idanwo ẹyọkan ṣiṣan ti Ilana Orisun omi ni fọọmu iwọntunwọnsi ti o pese gẹgẹbi apakan ti akoko asiko olupin ohun elo.
- Fun awọn ohun elo ile-iṣẹ ti o ni ọpọlọpọ awọn edidi ti ikede pẹlu awọn igbesi aye ti o ni agbara, ilana naa nfunni ni ipinya.
- O ni ibi ipamọ idii ti a ṣepọ ti o le ṣafipamọ pinpin wọpọ ati awọn edidi ti ikede ti a lo nipasẹ awọn ohun elo pupọ, ni idilọwọ ohun elo kọọkan lati ran ẹda lọtọ ti ile-ikawe pinpin kọọkan.
Bibẹrẹ pẹlu orisun omi OSGi Felix
Gbigba Awọn orisun
Nipa gbasilẹ ẹya tuntun ti Apache Karaf lati Aaye yii, a le bẹrẹ ìrìn OSGi wa.
Da lori Apache Felix, imuse Apache ti sipesifikesonu OSGi, Apache Karaf n pese aaye kan fun awọn ohun elo orisun OSGi.
Karaf n pese ọpọlọpọ awọn ẹya iranlọwọ lori oke Felix ti yoo ṣe iranlọwọ fun wa ni mimọ ara wa pẹlu OSGi, gẹgẹbi wiwo laini aṣẹ ti yoo jẹ ki a ṣe ibaraẹnisọrọ pẹlu pẹpẹ.
Titẹsi Point Fun awọn edidi
Ohun elo gbọdọ jẹ akopọ bi idii OSGi ṣaaju ki o to le ṣiṣẹ ni agbegbe OSGi kan. Ni afikun, aaye titẹsi ohun elo gbọdọ wa ni pato; o jẹ ko boṣewa àkọsílẹ aimi asan akọkọ iṣẹ (Okun [] args).
Nitorinaa jẹ ki a bẹrẹ nipa ṣiṣẹda “Kaabo World” ohun elo da lori OSGi.
A bẹrẹ nipa didasilẹ igbẹkẹle OSGi API kan:
Akoko asiko OSGi yoo ni iraye si igbẹkẹle, nitorinaa lapapo ko nilo lati ni ninu. Nitorina, o ti samisi bi a ti pese.
Bayi jẹ ki a ṣẹda kilasi HelloWorld taara:
Awọn kilasi ti o ṣiṣẹ bi awọn aaye iwọle fun awọn edidi gbọdọ ṣe imuse wiwo BundleActivator ti pese OSGi.
Nigbati akopọ ti o ni kilasi yii ti ṣe ifilọlẹ, pẹpẹ OSGi pe iṣẹ ibẹrẹ (). Ni apa keji, ni kete ṣaaju ki idii naa da duro, iduro iṣẹ naa () ni a pe.
Jẹ ki a ko gbagbe pe kọọkan lapapo le nikan ni ọkan BundleActivator. Awọn ọna mejeeji le ṣe ibasọrọ pẹlu akoko asiko OSGi ni lilo ohun BundleContext ti o fun.
Ṣiṣẹda lapapo
Ṣe pom.xml ni idii OSGi otitọ nipa ṣiṣe awọn ayipada to ṣe pataki.
A gbọdọ kọkọ sọ kedere pe ibi-afẹde wa ni lati ṣe agbejade lapapo kan.
Lẹhinna, a lo maven-bundle-plugin lati ṣajọpọ kilasi HelloWorld gẹgẹbi idii OSGi kan, iteriba ti agbegbe Apache Felix:
Awọn iye ti awọn akọle OSGi ti a fẹ lati ṣafikun sinu faili MANIFEST lapapo jẹ itọkasi ni apakan awọn ilana.
Bundle-Activator jẹ nitootọ orukọ ti o peye daradara ti ojutu BundleActivator ti yoo gba iṣẹ lati bẹrẹ ati da lapapo naa duro. O ti wa ni ibamu pẹlu awọn kan-da kilasi.
Lakoko ti kii ṣe akọsori OSGi, akọsori Ikọkọ-Package n kọ ohun itanna naa lati ṣafikun package si lapapo ṣugbọn kii ṣe jẹ ki o wọle si awọn afikun miiran. Aṣẹ fifi sori mvn yẹ ki o lo lati ṣẹda lapapo.
Fifi sori ẹrọ ati Ṣiṣe Lapapo
Jẹ ki a bẹrẹ Karaf nipa ṣiṣe aṣẹ yii:
ibi ti "KARAF HOME" ntokasi si awọn folda ibi ti Karaf ti ṣeto soke. A le lo aṣẹ atẹle lati fi idii naa sori ẹrọ nigbati itọsi console Karaf ba han:
Lilo ibi ipamọ Maven agbegbe ni bi a ṣe sọ fun Karaf lati ṣajọpọ lapapo naa.
Pada ID nomba lapapo, Karaf kọ jade. ID yii le yato da lori iye awọn edidi ti a ti fi sii tẹlẹ. A ti fi idii naa sori ẹrọ ni aṣeyọri, ati pe aṣẹ lati ṣe ifilọlẹ jẹ atẹle yii:
Ni akoko ti o ṣe ifilọlẹ package, “Hello World nipasẹ Jay” han. A le da duro ki o si yọ idii naa kuro ni lilo:
console naa ṣafihan “Aye O dabọ nipasẹ Jay.”
ipari
Awọn olupilẹṣẹ le ni irọrun ṣafikun iṣẹ ṣiṣe tuntun si ohun elo wẹẹbu ti o wa lakoko ti o tọju aabo ati sọtọ si awọn paati miiran ti eto akọkọ nipa lilo OSGi.
A ti kọ ẹkọ nipa OSGi ninu ifiweranṣẹ yii, pẹlu bii o ṣe n ṣiṣẹ, awọn anfani rẹ, ati eto taara. Ko nira lati ṣafikun OSGi sinu ohun elo tirẹ.
Dun ifaminsi!
Fi a Reply