Svojo programsko opremo že imate, vendar še vedno potrebujete učinkovitejšo metodo, ki bo vašim tehničnim uporabnikom omogočila razširitev platforme.
Čeprav je OSGi dobro poznan večini razvijalcev Java, se morda zdi njegova integracija v vaš izdelek zastrašujoča naloga. Pomanjkanje jasnosti glede natančnega delovanja OSGi dodatno otežuje pot naprej.
V nasprotju z vsem, s čimer bi radi eksperimentirali, se OSGi številnim razvijalcem Jave zdi bolj kot poskus plovbe po širokem morju.
Ta članek vam bo predstavil pomladno vadnico OSGi Felix z uporabo enostavnega programa in vam predstavil prednosti in druge pomembne podrobnosti.
Kaj je torej OSGi?
Ustvarjanje in distribucijo modulov in komponent omogoča ogrodje Java, znano kot OSGi (Open Service Gateway Initiative).
Poudarja enkapsulacijo funkcij in ohlapno povezovanje, kar ponuja več prednosti razvijalcem, vključno z modularno funkcionalnostjo, ki jo je mogoče zlahka prenašati med izvornimi kodami, in testiranjem, ki ne potrebuje neskončnih odvisnosti.
Kako deluje OSGi?
Sistem dinamičnih komponent za Javo je opredeljen z nizom specifikacij, imenovanih OSGi. Te specifikacije omogočajo razvojni pristop, kjer je aplikacija zgrajena iz več delov in nato zapakirana v svežnje.
Te komponente za komunikacijo uporabljajo lokalne in omrežne storitve. Cilj je narediti jedro programa čim bolj kompaktno. Možna je velika povezava med to kodo in več komponentami.
Gradbeni elementi aplikacije za večkratno uporabo se imenujejo komponente. Razmislite o funkcijah, kot je nakupovalni voziček za spletno mesto e-trgovine ali aplikacija za obračun plač za vaš sistem upravljanja osebja.
Komponente lahko uporabljajo OSGi, da skrijejo svoje izvedbe pred drugimi komponentami in jim zagotovijo samo potrebne podatke prek storitev.
To komponentam preprečuje nenamerno spreminjanje podatkov, do katerih ne bi smele imeti dostopa, in upravlja odvisnosti.
Vse povezave med komponentami v aplikaciji OSGi so narejene prek storitev v idealnem svetu. Paket Java vsebuje API, ki je določen za storitve.
Sodelovanje med ponudniki storitev in strankami zahteva uporabo razredov in/ali vmesnikov, ki sestavljajo API.
Vse komponente OSGi so združene v svežnje, od katerih vsak vključuje vire, ki jih potrebujejo za delovanje. Snopi so povsem jasni, kaj potrebujejo od okolja in česa so sposobni.
prednosti
- Aplikacije OSGi imajo dostop do zunanjih skladišč svežnjev.
- Ogrodje omogoča storitveno usmerjeno načrtovanje na ravni modula.
- Omogoča upravljanje različic in odvisnosti paketov aplikacij poleg standardizacije in poenostavitve integracije knjižnic tretjih oseb.
- Aplikacije so bolj prilagodljive spreminjajočim se zahtevam, bolj prenosljive in hitrejše za prenovo.
- A spletne aplikacije je mogoče razmestiti kot skupino verzioniranih svežnjev OSGi z dinamično življenjsko dobo zahvaljujoč integraciji ogrodja s programskim modelom Java EE.
- Namesto da bi bilo nameščeno kot knjižnica tretje osebe kot del aplikacije, ogrodje zagotavlja deklarativno sestavljanje in poenostavljeno testiranje enote Spring Framework v standardizirani obliki, ki je na voljo kot del izvajalnega okolja aplikacijskega strežnika.
- Za korporativne aplikacije, sestavljene iz svežnjev z več različicami z dinamičnimi življenjskimi cikli, ogrodje ponuja izolacijo.
- Vsebuje integrirano skladišče svežnjev, ki lahko shrani skupne skupne in verzionirane svežnje, ki jih uporablja več aplikacij, s čimer preprečuje, da bi vsaka aplikacija razmestila ločeno kopijo vsake knjižnice v skupni rabi.
Začetek uporabe OSGi Felix spring
Pridobivanje virov
S prenosom najnovejše različice programa Apache Karaf iz po tej strani, lahko začnemo našo avanturo OSGi.
Apache Karaf, ki temelji na Apache Felix, Apache implementaciji specifikacije OSGi, zagotavlja platformo za aplikacije, ki temeljijo na OSGi.
Karaf ponuja različne uporabne funkcije poleg Felixa, ki nam bodo pomagale pri seznanjanju z OSGi, kot je vmesnik ukazne vrstice, ki nam bo omogočil komunikacijo s platformo.
Vstopna točka za pakete
Aplikacija mora biti zapakirana kot paket OSGi, preden se lahko izvaja v okolju OSGi. Poleg tega je treba določiti vstopno točko aplikacije; to ni standardna javna statična void main(String[] args) funkcija.
Začnimo torej z ustvarjanjem »Pozdravljen, svet” aplikacija, ki temelji na OSGi.
Začnemo z vzpostavitvijo osnovne odvisnosti OSGi API:
Izvajalno okolje OSGi bo imelo dostop do odvisnosti, zato ga paketu ni treba vsebovati. Zato je označeno kot dobavljeno.
Zdaj pa ustvarimo preprost razred HelloWorld:
Razredi, ki delujejo kot vstopne točke za svežnje, morajo implementirati vmesnik BundleActivator, ki ga zagotavlja OSGi.
Ko se zažene paket, ki vsebuje ta razred, platforma OSGi pokliče funkcijo start(). Na drugi strani, tik preden je sveženj ustavljen, se pokliče funkcija stop().
Ne pozabimo, da ima lahko vsak sveženj samo en BundleActivator. Oba načina lahko komunicirata z izvajalnim okoljem OSGi z uporabo danega predmeta BundleContext.
Ustvarjanje paketa
Naredite pom.xml pravi sveženj OSGi tako, da naredite potrebne spremembe.
Najprej moramo jasno izraziti, da je naš cilj ustvariti sveženj.
Nato uporabimo vtičnik maven-bundle-plugin za pakiranje razreda HelloWorld kot svežnja OSGi, z dovoljenjem skupnosti Apache Felix:
Vrednosti glav OSGi, ki jih želimo vključiti v datoteko MANIFEST paketa, so določene v razdelku z navodili.
Bundle-Activator je dejansko pravilno kvalificirano ime rešitve BundleActivator, ki bo uporabljena za zagon in zaustavitev svežnja. Združljiv je s pravkar ustvarjenim razredom.
Čeprav ni glava OSGi, glava Private-Package ukaže vtičniku, naj doda paket v sveženj, vendar ne omogoči dostopa drugim vtičnikom. Za ustvarjanje paketa je treba uporabiti ukaz mvn install.
Namestitev in zagon paketa
Začnimo Karaf z izvajanjem tega ukaza:
kjer se »KARAF HOME« nanaša na mapo, kjer je bil nastavljen Karaf. Ko se prikaže poziv konzole Karaf, lahko uporabimo naslednji ukaz za namestitev paketa:
Uporaba lokalnega repozitorija Maven je način, kako se Karafu pove, naj naloži sveženj.
Karaf vrne številčni ID svežnja in ga zapiše. Ta ID se lahko razlikuje glede na to, koliko svežnjev je bilo predhodno nameščenih. Paket je zdaj uspešno nameščen in ukaz za njegov zagon je naslednji:
V trenutku, ko zaženete paket, se prikaže »Hello World by Jay«. Zdaj lahko zaustavimo in odstranimo sveženj z:
Na konzoli se prikaže "Goodbye World by Jay."
zaključek
Razvijalci lahko preprosto dodajo novo funkcionalnost obstoječi spletni aplikaciji, hkrati pa jo ohranijo varno in izolirano od drugih komponent glavnega programa z uporabo OSGi.
V tej objavi smo spoznali OSGi, vključno z njegovim delovanjem, njegovimi prednostmi in enostavnim programom. OSGi ni težko vključiti v svojo aplikacijo.
Srečno kodiranje!
Pustite Odgovori