Programavimas

Sveiki, OSGi, 2 dalis. Pavasario dinaminių modulių įvadas

Jei pastaruoju metu buvo ausis žemėje, tikriausiai daug girdėjote apie į paslaugas orientuotų programų kūrimą naudojant OSGi ir „Spring Dynamic Modules“. Šiame antrajame „Hello, OSGi“ serijos straipsnyje sužinokite, kodėl „Spring DM“ yra tokia įdomi galimybė kūrėjams, jau žinantiems „Spring“ konfigūraciją, norintiems išnaudoti „OSGi“ moduliškumą, lengvą versijų kūrimą ir programų gyvavimo ciklo palaikymą.

OSGi, dar žinomas kaip „Java“ dinaminių modulių sistema, nurodo modulinį požiūrį į „Java“ programų kūrimą, taip pat standartizuotų metodų, skirtų valdyti modulių priklausomybes, rinkinį. „Spring Dynamic Modules for OSGi Service Platforms“ projektas („Spring DM“) leidžia kurti „Spring“ programas, kurias galima įdiegti OSGi talpykloje. „Java“ įmonės kūrėjams, žinantiems „Spring“ programavimo ir konfigūravimo modelį, „Spring DM“ yra lengvesnis būdas susipažinti su OSGi moduliniu požiūriu į programų kūrimą. „Spring DM“ suteikia ne tik „Spring“ kūrėjams prieigą prie modulinės OSGi struktūros ir dinaminės konfigūracijos, bet ir suteikia žemiausio lygio kodavimą, kurio reikalauja dauguma OSGi programų, kad galėtumėte sutelkti dėmesį į savo programos verslo logiką.

Pirmajame šios serijos straipsnyje („Sveiki, OSGi, 1 dalis: Paketai pradedantiesiems“) pristatytas standartinis požiūris į OSGi kūrimą naudojant OSGi API ir atvirojo kodo „Equinox“ talpyklų diegimą. Sužinojote apie OSGi architektūrą, ypač konteinerius ir paketus, ir pirmą kartą patyrėte kurdami OSGi pagrįstą „Hello World“ programą. Programos pavyzdys nebuvo labai gilus, nes tikslas buvo tiesiog suvokti OSGi pagrindus.

Šiame straipsnyje sukursite dar vieną „Hello World“ programą, šį kartą naudodami „Spring DM“ sistemą. Sužinosite, kas yra „Spring DM“ ir kaip jis naudoja OSGi programos logikos atskyrimą moduliuose, taip pat vykdymo metu vykdomas modulių ribas. Taip pat sužinosite, kaip naudoti „Spring DM“, kad atliktumėte šiuos veiksmus:

  • Dinamiškai įdiekite, atnaujinkite ir pašalinkite modulius veikiančioje sistemoje.
  • Kurkite į paslaugas orientuotas programas (SOA) dinamiškai atrandant ir naudojant kitų modulių teikiamas paslaugas sistemoje.
  • Naudokite „Spring's“ Duomenų šaltinis klasę, kad sukurtumėte, sukonfigūruotumėte, surinktumėte ir dekoruotumėte komponentus sisteminiuose moduliuose ir tarp jų.

Kaip pamatysite, „Spring DM“ naudojimas atlaisvins jus nuo kai kurių nepaprastų darbų ir dar sunkesnio supratimo, kas vyksta po gaubtu naudojant OSGi. Todėl galėsite gilintis į savo programų logiką ir tai padaryti greičiau kūrimo procese.

Norėdami sekti šio straipsnio pavyzdžius, jums reikės kūrimo aplinkos, susidedančios iš „Eclipse 3.3“ ir „Spring Dynamic Modules“. Paskutiniam pratimui jums taip pat reikės RDBMS, pvz., „Apache Derby“. Toliau rasite daugiau informacijos apie „Spring DM“ kūrimo aplinkos nustatymą „Eclipse 3.3“.

OSGi ir pavasario sistema

Šiuo metu OSGi populiarumas labai auga. Keli programų serveriai buvo perpakuoti, kad būtų galima panaudoti OSGi modulinę sistemą, įskaitant IBM „WebSphere Application Server“, BEA „microService Architecture“ (mSA) ir „JOnAS 5“ - atviro kodo programų serverį, pastatytą iš pagrindų ant OSGi architektūros. „JBoss“ taip pat neseniai paskelbė apie savo darbą su OSGi paremtu klasių pakrovėju ir apie savo ketinimą sukurti OSGi pagrindinės specifikacijos įgyvendinimą. Bene svarbiausia, kad „Eclipse Foundation“ OSGi konteinerių / vykdymo laiko komponentų variklis „Equinox“ neseniai buvo pakeltas į aukščiausio lygio projekto statusą, kur jis taps naujos „Eclipse Runtime Initiative“ pagrindu.

Dar prieš tai, kai OSGi pasiekė dabartinį populiarumą, buvo kalbėta apie jo derinimą su „Spring“. Galiausiai ši diskusija paskatino „Spring Dynamic Modules for OSGi Service Platforms“ projektą. „Spring DM“ funkcionalumą galima suskirstyti į du pagrindinius komponentus: Pirma, jis pateikia „Spring framework“ JAR OSGi rinkinių pavidalu. Kaip žinote iš ankstesnio šios serijos straipsnio, OSGi rinkiniai yra ne kas kita, o „Java Archive“ (JAR) failai, kuriuose yra papildomų įrašų META-INF / MANIFEST.MF failas, kuris veikia kaip OSGi paketo diegimo aprašas. (Atminkite, kad naudodami OSGi negalite tiesiogiai įdiegti JAR failo; turite jį supakuoti naudodami „OSGi“ paketo formatą.

Antra, „Spring DM“ pateikia tris „OSGi“ specifinius pavasario paketus / JAR:

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

Programos, sukurtos naudojant „Spring DM“, yra kuriamos kitaip nei tos, kurios naudoja „Spring“ sistemą. Kai pastatysite a Pavasaris programą, nustatote savo konfigūracijos informaciją viename ar daugiau „Spring“ konfigūracijos failų, kurie dažniausiai yra XML failai. „Spring“ sistema naudoja šiuos konfigūracijos failus, kad sukurtų programos konteksto objektą paleidžiant programą. Sukūrus programos kontekstą, jis naudojamas eksponuoti, konfigūruoti, surinkti ir papuošti programos objektus.