Programmering

Hei, OSGi, del 2: Introduksjon til vårdynamiske moduler

Hvis du nylig har hatt øret til bakken, har du sannsynligvis hørt mye om serviceorientert applikasjonsutvikling med OSGi og Spring Dynamic Modules. I denne andre artikkelen i Hello, OSGi-serien, finn ut hvorfor Spring DM er et så spennende alternativ for utviklere som allerede er kjent med Spring-konfigurasjon, og som ønsker å utnytte OSGis modularitet, enkel versjonering og applikasjonens livssyklusstøtte.

OSGi, også kjent som Dynamic Module System for Java, spesifiserer en modulær tilnærming til Java-applikasjonsutvikling, samt et sett med standardiserte metoder for å håndtere avhengigheter mellom moduler. Spring Dynamic Modules for OSGi Service Platforms-prosjektet (Spring DM) lar deg bygge Spring-applikasjoner som kan distribueres i en OSGi-container. For Java-bedriftsutviklere som er kjent med vårprogrammerings- og konfigurasjonsmodellen, er Spring DM en enklere måte å bli kjent med OSGis modulære tilnærming til applikasjonsutvikling. I tillegg til å gi Spring-utviklere tilgang til OSGis modulære rammeverk og dynamiske konfigurasjon, gir Spring DM koding på lavt nivå som kreves av de fleste OSGi-applikasjoner, slik at du kan fokusere på applikasjonens forretningslogikk.

Den første artikkelen i denne serien ("Hello, OSGi, Part 1: Bundles for beginners") introduserte en standardtilnærming til OSGi-utvikling ved bruk av OSGi API og åpen kildekode-implementering av Equinox container. Du lærte om OSGi-arkitekturen, spesielt containere og bunter, og hadde din første erfaring med å utvikle et OSGi-basert Hello World-program. Applikasjonseksemplet gikk ikke veldig dypt fordi målet bare var å forstå grunnleggende OSGi.

I denne artikkelen bygger du en annen Hello World-applikasjon, denne gangen ved hjelp av Spring DM-rammeverket. Du lærer hva Spring DM er og hvordan den utnytter OSGis adskillelse av applikasjonslogikk i moduler, så vel som driftstiden for modulgrenser. Du lærer også hvordan du bruker Spring DM til å gjøre følgende:

  • Installer, oppdater og avinstaller moduler dynamisk i et løpende system.
  • Bygg serviceorienterte applikasjoner (SOAer) ved dynamisk å oppdage og bruke tjenester levert av andre moduler i et system.
  • Bruk vårens Datakilde klasse for å instansiere, konfigurere, montere og dekorere komponenter i og på tvers av systemmoduler.

Som du ser, vil bruk av Spring DM frigjøre deg for noe av rote-arbeidet, og til og med det vanskeligere arbeidet med å forstå hva som skjer under hetten med OSGi. Som et resultat vil du kunne komme dypere inn i applikasjonslogikken din, og gjøre det tidligere i utviklingsprosessen.

For å følge eksemplene i denne artikkelen trenger du et utviklingsmiljø som består av Eclipse 3.3 og Spring Dynamic Modules. For den siste øvelsen trenger du også en RDBMS som Apache Derby. Du finner mer nedenfor om hvordan du konfigurerer Spring DM-utviklingsmiljøet ditt i Eclipse 3.3.

OSGi og vårens rammeverk

For øyeblikket øker OSGis popularitet veldig. Flere applikasjonsservere har blitt pakket om for å utnytte OSGis modulære rammeverk, inkludert IBMs WebSphere Application Server, BEAs microService Architecture (mSA) og JOnAS 5, en applikasjonsserver med åpen kildekode bygget fra grunnen av på en OSGi-arkitektur. JBoss har også nylig kunngjort sitt arbeid med en OSGi-basert classloader og har til hensikt å lage en OSGi-kjernespesifikasjonsimplementering. Kanskje viktigst, Eclipse Foundation's OSGi container / runtime component engine, Equinox, har nylig blitt løftet til prosjektstatus på toppnivå, hvor den vil tjene som grunnlag for det nye Eclipse Runtime Initiative.

Allerede før OSGi oppnådde sin nåværende økning i popularitet, var det snakk om å kombinere det med våren. Til slutt førte denne samtalen til Spring Dynamic Modules for OSGi Service Platforms-prosjektet. Funksjonaliteten til Spring DM kan deles inn i to hovedkomponenter: For det første gir den vårens rammeverk-JAR i form av OSGi-bunter. Som du vet fra forrige artikkel i denne serien, er OSGi-bunter ingenting annet enn Java Archive (JAR) -filer som inneholder flere oppføringer i en META-INF / MANIFEST.MF fil, som fungerer som distribusjonsbeskrivelsen for en OSGi-pakke. (Merk at du ikke kan distribuere en JAR-fil direkte når du bruker OSGi; du må pakke den ved hjelp av OSGi-pakkeformatet.)

For det andre gir Spring DM tre OSGi-spesifikke vårpakker / JARer:

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

Applikasjoner bygget med Spring DM er bygget annerledes enn de som bruker Spring-rammeverket. Når du bygger en Vår applikasjon, definerer du konfigurasjonsinformasjonen din i en eller flere Spring-konfigurasjonsfiler, som for det meste er XML-filer. Spring-rammeverket bruker disse konfigurasjonsfilene til å lage et applikasjons-kontekstobjekt ved oppstart av applikasjonen. Etter at applikasjonskonteksten er opprettet, brukes den til å instantiere, konfigurere, montere og dekorere objekter i applikasjonen.

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