Pozdrav, OSGi, 2. dio: Uvod u proljetne dinamičke module

Ako ste nedavno prislonili uho o zemlju, vjerojatno puno slušate o razvoju usluga usmjerenih na usluge s OSGi i Spring Dynamic Modulama. U ovom drugom članku iz serije Hello, OSGi doznajte zašto je Spring DM toliko uzbudljiva opcija za programere koji su već upoznati s konfiguracijom Springa, a koji žele iskoristiti OSGi-ovu modularnost, jednostavno izrađivanje verzija i podršku životnog ciklusa aplikacije.

OSGi, također poznat kao Dynamic Module System za Javu, određuje modularni pristup razvoju Java aplikacija, kao i skup standardiziranih metoda za upravljanje ovisnostima između modula. Projekt Spring Dynamic Modules za OSGi Service Platforms (Spring DM) omogućuje vam izradu Spring aplikacija koje se mogu rasporediti u OSGi spremnik. Za Java programere koji su upoznati s Springovim modelom programiranja i konfiguracije, Spring DM je lakši način da se upoznaju s OSGijevim modularnim pristupom razvoju aplikacija. Osim što programerima Springa omogućava pristup OSGi modularnom okviru i dinamičkoj konfiguraciji, Spring DM pruža kodiranje na niskoj razini koje zahtijeva većina OSGi aplikacija, tako da se možete usredotočiti na poslovnu logiku svoje aplikacije.

Prvi članak u ovoj seriji ("Pozdrav, OSGi, 1. dio: Paketi za početnike") predstavio je standardni pristup razvoju OSGi-a pomoću OSGi API-ja i implementacije otvorenog koda Equinox. Učili ste o OSGi arhitekturi, posebno spremnicima i snopovima, i imali ste prvo iskustvo u razvoju aplikacije Hello World temeljene na OSGi-u. Primjer aplikacije nije usao duboko, jer je cilj bio jednostavno shvatiti osnove OSGi-a.

U ovom ćete članku izraditi još jednu aplikaciju Hello World, ovaj put koristeći Spring DM framework. Naučit ćete što je Spring DM i kako koristi OSGi-jevo razdvajanje aplikacijske logike na module, kao i njezino provođenje granica modula. Također ćete naučiti kako koristiti Spring DM za sljedeće:

  • Dinamički instalirajte, ažurirajte i deinstalirajte module u pokrenutom sustavu.
  • Izgradite uslužno orijentirane aplikacije (SOA) dinamičkim otkrivanjem i korištenjem usluga koje pružaju drugi moduli u sustavu.
  • Koristite Springovu DataSourceklasu za instanciranje, konfiguriranje, sastavljanje i ukrašavanje komponenata unutar i između sistemskih modula.

Kao što ćete vidjeti, upotreba Spring DM-a oslobodit će vas nekih početnih radnji, pa čak i težeg rada na razumijevanju onoga što se događa ispod haube s OSGi-om. Kao rezultat toga, moći ćete dublje ući u logiku aplikacije i to prije u procesu razvoja.

Da biste slijedili primjere u ovom članku, trebat će vam razvojno okruženje koje se sastoji od Eclipse 3.3 i Spring Dynamic Modula. Za posljednju vježbu trebat će vam i RDBMS kao što je Apache Derby. U nastavku ćete pronaći više o postavljanju vašeg razvojnog okruženja za Spring DM u Eclipse 3.3.

OSGi i Spring Spring

Trenutno je popularnost OSGi-a u porastu. Nekoliko je poslužitelja aplikacija prepakirano kako bi se iskoristio OSGi-ov modularni okvir, uključujući IBM WebSphere Application Server, BEA-ovu microService Architecture (mSA) i JOnAS 5, otvoreni izvor poslužitelja aplikacija izgrađen od temelja na OSGi arhitekturi. JBoss je također nedavno najavio svoj rad na učitatelju klasa temeljenom na OSGi-ju i namjeru da stvori implementaciju specifikacije jezgre OSGi. Možda najvažnije, OSGi-ov spremnik / runtime komponentni mehanizam Eclipse Foundation nedavno je povišen na status najvišeg nivoa projekta, gdje će poslužiti kao osnova za novu Eclipse Runtime Initiative.

Čak i prije nego što je OSGi postigao trenutni porast popularnosti, govorilo se o njegovom kombiniranju s Springom. Na kraju je ovaj razgovor doveo do projekta Spring Dynamic Modules for OSGi Service Platforms. Funkcionalnost Spring DM-a može se podijeliti u dvije glavne komponente: Prvo, pruža Spring Framework JAR-ove u obliku OSGi snopova. Kao što znate iz prethodnog članka u ovoj seriji, OSGi snopovi nisu ništa drugo nego Java Archive (JAR) datoteke koje sadrže dodatne unose u META-INF/MANIFEST.MFdatoteci koja djeluje kao deskriptor implementacije za OSGi snop. (Imajte na umu da JAR datoteku ne možete izravno rasporediti kada upotrebljavate OSGi; trebate je spakirati u formatu snopa OSGi.)

Drugo, Spring DM nudi tri OSGi specifična Spring paketa / JAR-ova:

  • org.springframeork.osgi.bundle.extender
  • org.springframeork.osgi.bundle.core
  • org.springframeork.osgi.bundle.io

Aplikacije izrađene pomoću Spring DM-a grade se drugačije od onih koje koriste Spring Spring. Kada gradite Spring aplikaciju, definirate podatke o konfiguraciji u jednoj ili više konfiguracijskih datoteka Spring, a to su uglavnom XML datoteke. Proljetni okvir koristi ove konfiguracijske datoteke za stvaranje objekta konteksta aplikacije pri pokretanju aplikacije. Nakon stvaranja konteksta aplikacije koristi se za instanciranje, konfiguriranje, sastavljanje i ukrašavanje objekata unutar aplikacije.