Programmēšana

Labdien, OSGi, 1. daļa: Komplekti iesācējiem

Atvērto pakalpojumu vārtejas iniciatīva (OSGi) nosaka arhitektūru moduļu lietojumprogrammu un bibliotēku izstrādei un izvietošanai. Šajā pirmajā rakstā trīsdaļīgā OSGi ievadā Sunil Patil ļauj sākt darbu ar OSGi izstrādes koncepcijām un parāda, kā izveidot vienkāršu Hello World lietojumprogrammu, izmantojot Eclipse OSGi konteineru ieviešanu Equinox. Viņš arī īsi skar uz pakalpojumiem orientētu lietojumprogrammu veidošanu, izmantojot OSGi, un iepazīstina ar OSGi ServiceFactory un ServiceTracker klases.

Open Services Gateway Initiative (OSGi), kas pazīstama arī kā Java dinamisko moduļu sistēma, nosaka moduļu lietojumprogrammu izstrādes arhitektūru. OSGi konteineru ieviešana, piemēram, Knopflerfish, Equinox un Apache Felix, ļauj sadalīt lietojumprogrammu vairākos moduļos un tādējādi vieglāk pārvaldīt savstarpējo atkarību starp tām.

OSGi, Equinox un Project Jigsaw

Iegūstiet reālās pasaules skatu, studējot OSGi / Equinox integrācijas laikā gūtās mācības Lielbritānijas lielākajā zinātnes projektā, pēc tam uzziniet, ko jūs varat sagaidīt no Java Jigsaw Project Jigsaw.

Līdzīgi kā Java Servlet un EJB specifikācijās, OSGi specifikācijā ir noteiktas divas lietas: pakalpojumu kopums, kas jāievieš OSGi konteineram, un līgums starp konteineru un jūsu lietojumprogrammu. Izstrāde uz OSGi platformas nozīmē vispirms jūsu lietojumprogrammas izveidi, izmantojot OSGi API, pēc tam to izvietojot OSGi konteinerā. No izstrādātāja viedokļa OSGi piedāvā šādas priekšrocības:

  • Varat dinamiski instalēt, atinstalēt, startēt un apturēt dažādus lietojumprogrammas moduļus, restartējot konteineru.
  • Jūsu lietojumprogrammā vienlaikus var darboties vairākas konkrēta moduļa versijas.
  • OSGi nodrošina ļoti labu infrastruktūru uz pakalpojumu orientētu lietojumprogrammu, kā arī iegulto, mobilo un bagātīgo interneta lietotņu izstrādei.

Ņemot vērā to, ka tīmekļa lietojumprogrammu veidošanai izmantojat servletu konteinerus, un darījumu lietojumprogrammu veidošanai izmantojat EJB konteinerus, jums var rasties jautājums, kāpēc jums ir nepieciešams vēl viens konteineru veids. Īsā atbilde ir tāda, ka OSGi konteineri ir īpaši paredzēti sarežģītu Java lietojumprogrammu izstrādei, kuras vēlaties sadalīt moduļos. Es izvērsīšu šo īso atbildi visā šajā sērijā.

Labdien, OSGi: Lasiet sēriju

  • 1. daļa: Komplekti iesācējiem
  • 2. daļa: pavasara dinamisko moduļu ieviešana
  • 3. daļa: Nogādājiet to servera pusē

OSGi uzņēmuma lietojumprogrammās

Darbu pie OSGi specifikācijas uzsāka OSGi alianse 1999. gada martā. Tās galvenais mērķis bija izveidot atvērtu specifikāciju pārvaldīto pakalpojumu piegādei vietējos tīklos un ierīcēs. Pamatideja ir tāda, ka, pievienojot OSGi pakalpojumu platformu tīkla ierīcei (iegultai, kā arī serveriem), jums vajadzētu būt iespējai pārvaldīt šīs ierīces programmatūras komponentu dzīves ciklu no jebkuras vietas tīklā. Programmatūras komponentus var instalēt, atjaunināt vai noņemt lidojuma laikā, nekad neradot traucējumus ierīces darbībā.

Gadiem ilgi iegulto sistēmu un tīkla ierīču tirgū OSGi tehnoloģija ir uzplaukusi. Daļēji pateicoties Eclipse, OSGi kļūst par dzīvotspējīgu un vērtīgu tehnoloģiju uzņēmuma attīstībai.

Palielinās atbalsts OSGi

2003. gadā Eclipse izstrādes komanda sāka meklēt veidus, kā padarīt Eclipse par dinamiskāku un bagātāku klientu platformu un palielināt rīku komplekta modularitāti. Galu galā komanda nolēma izmantot OSGi sistēmu kā izpildlaika komponentu modeli. Eclipse 3.0, kas tika izlaists 2004. gada jūnijā, bija pirmā Eclipse versija, kuras pamatā bija OSGi.

Gandrīz visi uzņēmuma lietojumprogrammu serveri atbalsta vai plāno atbalstīt OSGi. Pavasara ietvars arī atbalsta OSGi, izmantojot projekta OSGi Service Platforms pavasara dinamiskos moduļus, kas nodrošina infrastruktūras slāni, lai atvieglotu OSGi izmantošanu pavasara Java uzņēmumu lietojumprogrammu izstrādē.

Atvērtā koda OSGi konteineri

No uzņēmuma izstrādātāja viedokļa OSGi konteineram ir tik mazs nospiedums, ka to var viegli iegult uzņēmuma lietojumprogrammā. Piemēram, pieņemsim, ka jūs izstrādājat sarežģītu tīmekļa lietojumprogrammu. Jūs vēlaties sadalīt lietojumprogrammu vairākos moduļos: viens skata slāņa modulis, otrs DAO slāņa modulis un trešais modulis datu piekļuves slānim. Iegultā OSGi konteinera izmantošana, lai pārvaldītu šo moduļu savstarpējās atkarības, ļautu atjaunināt DAO slāni (teiksim, no lēna DAO uz ātru DAO), nepārstartējot lietojumprogrammu.

Kamēr jūsu lietojumprogramma atbilst OSGi specifikācijai, tai jāspēj darboties jebkurā ar OSGi saderīgā konteinerā. Pašlaik ir trīs populāri atvērtā koda OSGi konteineri:

  • Equinox ir atsauces ieviešana OSGi pakalpojumu platformas izlaiduma 4. ietvara daļai. Tas ir modulārais Java izpildlaiks Eclipse IDE centrā, un tas ievieš visas OSGi R4 specifikācijas obligātās un lielākās daļas papildu funkcijas.
  • Knopflerfish ir OSGi R3 un OSGi R4 specifikāciju atvērtā koda ieviešana. Knopflerfish 2 ievieš visas obligātās funkcijas un dažas papildu funkcijas, kas noteiktas R4 specifikācijā.
  • Apache Felix ir Apache programmatūras fonda atvērtā koda OSGi konteiners. Rakstīšanas laikā šis konteiners pilnībā neatbilst OSGI R4 specifikācijai.

Šajā rakstā mēs izmantosim Equinox kā mūsu OSGi konteineru. Plašāku informāciju par Apache Felix un Knopflerfish skatiet sadaļā Resursi.

$config[zx-auto] not found$config[zx-overlay] not found