Programmering

Server-side Java: Bygg distribuerte applikasjoner med Java og XML

Extensible Markup Language, eller XML, har fått stor popularitet som en måte å representere data i et bærbart, leverandørnøytralt, lesbart format. Mange programvareleverandører har kunngjort "støtte for XML", som vanligvis betyr at produktene deres vil produsere eller konsumere XML-data.

XML blir også sett på som lingua franca for datautveksling mellom bedrifter. Det tillater bedrifter å avtale XML Document Type Definitions (DTDs) for dataene som utveksles. Disse DTD-ene er uavhengige av databaseskjemaet som brukes av bedriftene.

Standardgrupper som representerer nesten alle menneskelige anstrengelser er enige om DTD for utveksling av data. Et av mange eksempler er International Press Telecommunications Council (se Resources), som har definert en XML DTD som gjør at "nyhetsinformasjon kan overføres med markering og lett kan forvandles til et elektronisk publiserbart format." Slike vertikale markedsstandarder vil tillate ulike applikasjoner å utveksle data på uforutsette måter.

Men hva nytter bærbare, leverandørnøytrale data hvis du ikke deler og behandler dem? Evnen til å kommunisere og behandle XML mellom distribuerte datamaskiner er ønskelig. Et program som kommuniserer og behandler XML mellom datamaskiner er faktisk en distribuert applikasjon.

Denne artikkelen utforsker slike distribuerte applikasjoner skrevet på Java. Jeg vil fokusere på kommunikasjonen av XML mellom Java-kode som kjører på forskjellige virtuelle maskiner.

Kommunikasjonen av XML

Spesifikasjonen av XML definert av World Wide Web Consortium, eller W3C (se Ressurser), definerer syntaksen og semantikken til språket. For å behandle XML, må et XML-dokument analyseres. Det ville være beklagelig hvis alle Java-klasser som trengte å behandle XML måtte analysere et XML-dokument, gitt kompleksiteten i XMLs syntaks og semantikk. For å løse dette problemet har W3C definert Document Object Model (DOM) (se Resources). DOM er et programmeringsgrensesnitt for XML-data. Den er tilgjengelig fra mange programmeringsspråk, inkludert Java. Java-programmer har tilgang til XML-data via DOM API. XML-parsere produserer en DOM-representasjon av et XML-dokument.

Figur 1 illustrerer en forenklet modell av et Java-distribuert program som behandler XML. Modellen er tilstrekkelig for formålet med denne artikkelen: å utforske kommunikasjonen av XML. Modellen forutsetter at noen data er hentet fra en datakilde, for eksempel en relasjonsdatabase. Noen Java-koder behandler dataene og til slutt produserer en DOM-representasjon. Denne koden er representert i figur 1 som prosessor.

Prosessorkoden overfører DOM-representasjonen av XML-data til avsender. Avsenderen er Java-kode som kommuniserer XML-data til mottaker. Mottakeren er Java-kode som mottar XML-data, produserer en DOM-representasjon av dataene og sender den til en annen prosessor. Kort sagt, avsenderen og mottakeren abstrakt kommunikasjonen av DOM-representasjonen av XML-data.

Avsenderen og mottakeren er ikke implementert i den samme Java Virtual Machine. De er koblet sammen av en distribuert systeminfrastruktur. Det er flere tilnærminger for å implementere avsenderen og mottakeren.

Merk at avsenderen i modellen i figur 1 er en klient for mottakeren. Avsenderen sender XML til mottakeren. I en annen mulig modell er mottakeren klienten; den ber om dokumentet fra avsenderen. Jeg vil ikke utforske den andre modellen i denne artikkelen siden problemene med å kommunisere XML er like.

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