Jums jau ir sava programmatūra, taču jums joprojām ir nepieciešama efektīvāka metode, kas ļautu tehniskajiem lietotājiem paplašināt platformu.
Lai gan OSGi ir labi zināms lielākajai daļai Java izstrādātāju, tā integrēšana produktā var šķist biedējošs uzdevums. Skaidrības trūkums par OSGi precīzo darbību vēl vairāk traucē ceļu uz priekšu.
Pretstatā jebkam, ar ko viņi vēlētos eksperimentēt, OSGi daudziem Java izstrādātājiem šķiet vairāk kā mēģinājums kuģot pa jūru.
Šis raksts iepazīstinās jūs ar OSGi Felix pavasara apmācību, izmantojot vienkāršu programmu, un tās priekšrocībām un citām svarīgām detaļām.
Tātad, kas ir OSGi?
Moduļu un komponentu izveidi un izplatīšanu padara iespējamu Java ietvars, kas pazīstams kā OSGi (Open Service Gateway Initiative).
Tas uzsver funkciju iekapsulēšanu un brīvu savienojumu, kas izstrādātājiem piedāvā vairākas priekšrocības, tostarp modulāru funkcionalitāti, kas ir viegli pārnesama starp pirmkodiem, un testēšanu, kurai nav vajadzīgas nebeidzamas atkarības.
Kā OSGi darbojas?
Java dinamisko komponentu sistēmu nosaka specifikāciju kopa, ko sauc par OSGi. Šīs specifikācijas nodrošina izstrādes pieeju, kurā lietojumprogramma tiek veidota no vairākām daļām un pēc tam tiek iepakota komplektos.
Šie komponenti saziņai izmanto vietējos un tīkla pakalpojumus. Mērķis ir padarīt programmas galveno kodu pēc iespējas kompaktāku. Ir iespējama augsta savienojuma attiecība starp šo kodu un vairākiem komponentiem.
Lietojumprogrammas atkārtoti lietojamie ēkas elementi tiek saukti par komponentiem. Padomājiet par tādām funkcijām kā iepirkumu grozs jūsu e-komercijas vietnei vai algas lietojumprogramma jūsu personāla vadības sistēmai.
Komponenti var izmantot OSGi, lai paslēptu savas implementācijas no citiem komponentiem un tikai sniegtu tiem nepieciešamos datus, izmantojot pakalpojumus.
Tas neļauj komponentiem nejauši mainīt datus, kuriem tiem nevajadzētu piekļūt, un pārvalda atkarības.
Visi savienojumi starp komponentiem OSGi lietojumprogrammā tiek veikti, izmantojot pakalpojumus ideālā pasaulē. Java pakotnē ir API, kas ir norādīta pakalpojumiem.
Sadarbībai starp pakalpojumu sniedzējiem un klientiem ir jāizmanto klases un/vai saskarnes, kas veido API.
Visi OSGi komponenti ir iesaiņoti komplektos, un katrs no tiem ietver resursus, kas nepieciešami, lai tie darbotos. Pakas ir diezgan skaidri par to, kas tiem ir vajadzīgs no vides un uz ko viņi ir spējīgi.
Ieguvumi
- OSGi lietojumprogrammām ir piekļuve ārējām komplektu krātuvēm.
- Ietvars pieļauj uz pakalpojumiem orientētu dizainu moduļa līmenī.
- Tas ļauj pārvaldīt lietojumprogrammu komplektu versijas un atkarības papildus standartizēšanai un atvieglo trešo pušu bibliotēku integrāciju.
- Lietojumprogrammas ir vairāk pielāgojamas mainīgajām prasībām, ir vieglāk pārnēsājamas un ātrāk pārveidojamas.
- A tīmekļa lietojumprogramma var tikt izvietota kā versiju OSGi komplektu grupa ar dinamisku kalpošanas laiku, pateicoties ietvara integrācijai ar Java EE programmēšanas modeli.
- Tā vietā, lai to instalētu kā trešās puses bibliotēku kā daļu no lietojumprogrammas, ietvars nodrošina Spring Framework deklaratīvo montāžu un racionalizētu vienību testēšanu standartizētā formā, kas tiek nodrošināta kā daļa no lietojumprogrammas servera izpildlaika.
- Korporatīvajām lietojumprogrammām, kas sastāv no vairākiem versiju komplektiem ar dinamiskiem dzīves cikliem, sistēma piedāvā izolāciju.
- Tajā ir integrēts komplektu repozitorijs, kurā var saglabāt koplietotus kopīgus un versiju komplektus, ko izmanto vairākas lietojumprogrammas, neļaujot katrai lietojumprogrammai izvietot atsevišķu katras koplietotās bibliotēkas kopiju.
Darba sākšana ar OSGi Felix pavasari
Resursu iegūšana
Lejupielādējot Apache Karaf jaunāko versiju no šī lapa, mēs varam sākt savu OSGi piedzīvojumu.
Pamatojoties uz Apache Felix, OSGi specifikācijas Apache ieviešanu, Apache Karaf nodrošina platformu uz OSGi balstītām lietojumprogrammām.
Karaf papildus Felix piedāvā dažādas noderīgas funkcijas, kas palīdzēs mums iepazīties ar OSGi, piemēram, komandrindas saskarni, kas ļaus mums sazināties ar platformu.
Ieejas punkts komplektiem
Lietojumprogrammai ir jābūt iesaiņotai kā OSGi komplektam, lai to varētu palaist OSGi vidē. Papildus jānorāda pieteikuma ievades punkts; tā nav standarta publiskā statiskā void main(String[] args) funkcija.
Tātad sāksim, izveidojot “Sveiki World” lietojumprogramma, kuras pamatā ir OSGi.
Mēs sākam, izveidojot pamata OSGi API atkarību:
OSGi izpildlaikam būs piekļuve atkarībai, tāpēc komplektā tas nav jāiekļauj. Tāpēc tas ir atzīmēts kā piegādāts.
Tagad izveidosim vienkāršu HelloWorld klasi:
Klasēm, kas darbojas kā komplektu ieejas punkti, ir jāievieš OSGi nodrošinātais BundleActivator interfeiss.
Kad tiek palaists komplekts, kurā ir šī klase, OSGi platforma izsauc start() funkciju. No otras puses, īsi pirms paketes apturēšanas, tiek izsaukta funkcija stop().
Neaizmirsīsim, ka katrā komplektā var būt tikai viens BundleActivator. Abos veidos var sazināties ar OSGi izpildlaiku, izmantojot norādīto objektu BundleContext.
Pakas izveide
Padariet failu pom.xml par īstu OSGi komplektu, veicot nepieciešamās izmaiņas.
Vispirms mums skaidri jāpasaka, ka mūsu mērķis ir izveidot komplektu.
Pēc tam mēs izmantojam spraudni maven-bundle-plugin, lai HelloWorld klasi iesaiņotu kā OSGi komplektu, pateicoties Apache Felix kopienai:
OSGi galveņu vērtības, kuras vēlamies iekļaut paketes MANIFEST failā, ir norādītas instrukciju sadaļā.
Bundle-Activator patiešām ir pareizi kvalificēts BundleActivator risinājuma nosaukums, kas tiks izmantots, lai sāktu un apturētu komplektu. Tas ir savietojams ar tikko izveidoto klasi.
Lai gan tā nav OSGi galvene, Private-Package galvene uzdod spraudnim pievienot pakotni komplektam, bet tikai nepadarīt to pieejamu citiem spraudņiem. Lai izveidotu komplektu, ir jāizmanto komanda mvn install.
Pakas instalēšana un palaišana
Sāksim Karaf, izpildot šo komandu:
kur “KARAF HOME” attiecas uz mapi, kurā tika iestatīts Karafs. Mēs varam izmantot šo komandu, lai instalētu paketi, kad parādās Karaf konsoles uzvedne:
Izmantojot vietējo Maven repozitoriju, Karafam tiek likts ielādēt komplektu.
Atgriežot komplekta ciparu ID, Karafs to izraksta. Šis ID var atšķirties atkarībā no iepriekš instalēto komplektu skaita. Pakete tagad ir veiksmīgi instalēta, un tā palaišanas komanda ir šāda:
Brīdī, kad palaižat paketi, tiek parādīts uzraksts “Hello World by Jay”. Tagad mēs varam apturēt un noņemt komplektu, izmantojot:
Uz konsoles tiek parādīts uzraksts “Goodbye World by Jay”.
Secinājumi
Izmantojot OSGi, izstrādātāji var viegli pievienot jaunu funkcionalitāti esošai tīmekļa lietojumprogrammai, vienlaikus saglabājot to drošu un izolētu no citiem galvenās programmas komponentiem.
Šajā amatā mēs esam uzzinājuši par OSGi, tostarp par tā darbību, priekšrocībām un vienkāršu programmu. Nav grūti iekļaut OSGi savā lietojumprogrammā.
Laimīgu kodēšanu!
Atstāj atbildi