Dagoeneko badaukazu zure softwarea, baina oraindik metodo eraginkorragoa behar duzu erabiltzaile teknikoei plataforma zabaltzeko.
Nahiz eta Java garatzaile gehienentzat OSGi ezaguna den, zure produktuan integratzea lan izugarria izan daiteke. OSGi-ren funtzionamendu zehatzari buruzko argitasun faltak gehiago nahasten du aurrera egiteko bidea.
Esperimentatu nahiko luketen guztiarekin alderatuta, OSGik Java garatzaile askorentzat itsaso zabalean nabigatzen saiatzea bezalakoa da.
Artikulu honek OSGi Felix udaberriko tutoriala aurkeztuko dizu programa sinple bat erabiliz eta bere abantailak eta beste xehetasun garrantzitsu batzuk ezagutuko ditu.
Beraz, zer da OSGi?
Moduluak eta osagaiak sortzea eta banatzea OSGi (Open Service Gateway Initiative) izenez ezagutzen den Java esparruak ahalbidetzen du.
Funtzioen kapsulazioa eta akoplamendu soltea azpimarratzen ditu, eta horrek hainbat abantaila eskaintzen dizkie garatzaileei, besteak beste, iturburu-kodeen artean erraz transferi daitekeen funtzionalitate modularra eta mendekotasun amaigabeak behar ez dituzten probak barne.
Nola funtzionatzen du OSGi-k?
Javarako osagai dinamiko sistema OSGi izeneko zehaztapen multzo batek definitzen du. Zehaztapen hauek garapen-ikuspegia ahalbidetzen dute, non aplikazio bat hainbat zatitatik eraikitzen den eta, ondoren, sortetan ontziratzen den.
Tokiko eta sarean oinarritutako zerbitzuak erabiltzen dituzte osagai hauek komunikatzeko. Programaren oinarrizko kodea bideragarri bezain trinkoa egitea da helburua. Kode honen eta hainbat osagairen arteko akoplamendu handia posible da.
Aplikazioaren eraikuntza-elementu berrerabilgarriei osagai deitzen zaie. Pentsa ezazu zure merkataritza elektronikoko webgunerako erosketa saskia edo zure langileen kudeaketa sistemarako nomina-aplikazioa bezalako funtzioetan.
Osagaiek OSGi erabil dezakete beren inplementazioak beste osagai batzuetatik ezkutatzeko eta zerbitzuen bidez soilik emateko beharrezko datuak.
Horri esker, osagaiek sarbiderik izan behar ez duten datuak nahi gabe aldatzea eragozten du eta mendekotasunak kudeatzen ditu.
OSGi aplikazio bateko osagaien arteko konexio guztiak mundu ideal bateko zerbitzuen bidez egiten dira. Java pakete batek zerbitzuetarako zehaztutako APIa dauka.
Zerbitzu-hornitzaileen eta bezeroen arteko lankidetzak APIa osatzen duten klaseak eta/edo interfazeak erabiltzea eskatzen du.
OSGi osagai guztiak sortetan bilduta daude, eta horietako bakoitzak funtzionatzeko behar dituen baliabideak biltzen ditu. Sorteak nahiko argi dute zer behar duten ingurunetik eta zertarako gai diren.
Abantailak
- OSGi aplikazioek kanpoko sorta-biltegietara sarbidea dute.
- Esparruak zerbitzuetara bideratutako diseinua ahalbidetzen du modulu mailan.
- Aplikazio sorten bertsioak eta mendekotasunak kudeatzea ahalbidetzen du, estandarizatzeaz eta hirugarrenen liburutegiak integratzea erraztuz.
- Aplikazioak eskakizun aldakorretara moldagarriagoak dira, eramangarriagoak eta biringeniaritza azkarragoak dira.
- A web aplikazioa Bizitza dinamikoa duten OSGi sorta bertsiodunen talde gisa heda daiteke, esparruak Java EE programazio-ereduarekin integratzeari esker.
- Aplikazioaren zati gisa hirugarrenen liburutegi gisa instalatu beharrean, markoak Spring Framework-aren muntaketa deklaratiboa eta unitate-proba erraztuak eskaintzen ditu aplikazio-zerbitzariaren exekuzio-denboraren zati gisa ematen den forma estandarizatu batean.
- Bizi-ziklo dinamikodun hainbat bertsiodun sortez osatutako aplikazio korporatiboetarako, markoak isolamendua eskaintzen du.
- Hainbat aplikaziok erabiltzen dituzten sorta komun eta bertsiodun partekatuak gorde ditzakeen sorta-biltegi integratua dauka, aplikazio bakoitzak liburutegi partekatu bakoitzaren kopia bereizia zabaltzea eragozten du.
OSGi Felix udaberriarekin hastea
Baliabideak eskuratzea
Apache Karaf-en azken bertsioa deskargatuz gune honetan, gure OSGi abentura has dezakegu.
Apache Felix-en oinarrituta, OSGi zehaztapenaren Apache inplementazioan oinarrituta, Apache Karaf-ek OSGi-n oinarritutako aplikazioetarako plataforma bat eskaintzen du.
Karafek hainbat funtzio lagungarri eskaintzen ditu Felixen gainean, OSGi-rekin ezagutzen lagunduko digutenak, hala nola, plataformarekin komunikatzeko aukera emango digun komando-lerroko interfazea.
Sortetarako Sarrera Puntua
Aplikazio bat OSGi sorta gisa paketatu behar da OSGi ingurune batean exekutatu ahal izateko. Gainera, aplikazioaren sarrera-puntua zehaztu behar da; ez da void main(String[] args) funtzio publiko estandarra.
Beraz, has gaitezen "Kaixo Mundua” OSGi-n oinarritutako aplikazioa.
OSGi APIaren oinarrizko menpekotasuna ezartzen hasiko gara:
OSGi exekuzio-denborak mendekotasunerako sarbidea izango du, beraz, sortak ez du eduki beharrik. Hori dela eta, hornitutako moduan markatuta dago.
Orain sortu dezagun HelloWorld klase zuzena:
Sortetarako sarrera-puntu gisa jarduten duten klaseek OSGi-k emandako BundleActivator interfazea ezarri behar dute.
Klase hau duen sorta abiarazten denean, OSGi plataformak start() funtzioa deitzen du. Bestalde, sorta gelditu baino pixka bat lehenago, stop() funtzioari deitzen zaio.
Ez dezagun ahaztu sorta bakoitzak BundleActivator bakarra izan dezakeela. Bi moduak OSGi exekuzio-denborarekin komunikatu daitezke emandako BundleContext objektua erabiliz.
Sorta sorta bat sortzea
Egin pom.xml benetako OSGi sorta behar diren aldaketak eginez.
Lehenik eta behin argi adierazi behar dugu gure helburua sorta bat sortzea dela.
Ondoren, maven-bundle-plugin-a erabiltzen dugu HelloWorld klasea OSGi sorta gisa paketatzeko, Apache Felix komunitatearen eskutik:
Sortaren MANIFEST fitxategian sartu nahi ditugun OSGi goiburuen balioak argibideen atalean zehazten dira.
Bundle-Activator sorta abiarazteko eta gelditzeko erabiliko den BundleActivator irtenbidearen izen egokia da. Sortu berri den klasearekin bateragarria da.
OSGi goiburua ez den arren, Private-Package goiburuak pluginari paketea sortari gehitzeko agintzen dio, baina ez da beste plugin batzuetarako eskuragarri jartzen. mvn install komandoa erabili behar da sorta sortzeko.
Sorta instalatu eta exekutatzen
Has gaitezen Karaf komando hau exekutatuz:
non "KARAF HOME" Karaf ezarri zen karpetari egiten dio erreferentzia. Komando hau erabil dezakegu sorta instalatzeko Karaf kontsolaren gonbita agertzen denean:
Tokiko Maven biltegia erabiliz Karaf-ek sorta kargatzeko esaten zaio.
Sortaren zenbakizko IDa itzuliz, Karafek idazten du. Baliteke ID hau aldez aurretik instalatu diren zenbat sortaren arabera desberdina izatea. Sorta behar bezala instalatu da, eta abiarazteko komandoa hau da:
Paketea abiarazten duzun momentuan, "Hello World by Jay" bistaratzen da. Orain sorta gelditu eta kendu dezakegu:
Kontsolak "Goodbye World by Jay" bistaratzen du.
Ondorioa
Garatzaileek funtzionalitate berriak erraz gehi ditzakete lehendik dagoen web-aplikazio bati, OSGi erabiliz, programa nagusiko beste osagaietatik seguru eta isolatuta mantenduz.
Argitalpen honetan OSGi-ri buruz ikasi dugu, nola funtzionatzen duen, bere abantailak eta programa sinple bat barne. Ez da zaila OSGi zure aplikazioan sartzea.
Zoriontsu kodeketa!
Utzi erantzun bat