Programmering

Java på serversiden: Byg distribuerede applikationer med Java og XML

Extensible Markup Language, eller XML, har fået bred popularitet som en måde at repræsentere data i et bærbart, sælgerneutralt, læsbart format. Mange softwareleverandører har annonceret "understøttelse af XML", hvilket normalt betyder, at deres produkter producerer eller forbruger XML-data.

XML ses også som sprog for dataudveksling mellem virksomheder. Det giver virksomheder mulighed for at blive enige om XML Document Type Definitions (DTD'er) for de data, der udveksles. Disse DTD'er er uafhængige af det databaseskema, som virksomhederne bruger.

Standardgrupper, der repræsenterer næsten alle menneskelige bestræbelser, er enige om DTD'er til udveksling af data. Et af mange eksempler er International Press Telecommunications Council (se Resources), der har defineret en XML DTD, der gør det muligt at "overføre nyhedsoplysninger med markering og let omdannes til et elektronisk publicerbart format." Sådanne vertikale markedsstandarder giver forskellige applikationer mulighed for at udveksle data på uforudsete måder.

Men hvad godt er bærbare, leverandørneutrale data, hvis du ikke deler og behandler dem? Evnen til at kommunikere og behandle XML mellem distribuerede computere er ønskelig. En applikation, der kommunikerer og behandler XML mellem computere, er faktisk en distribueret ansøgning.

Denne artikel udforsker sådanne distribuerede applikationer skrevet i Java. Jeg vil fokusere på kommunikation af XML mellem Java-kode, der kører på forskellige virtuelle maskiner.

Kommunikation af XML

Specifikationen af ​​XML defineret af World Wide Web Consortium eller W3C (se ressourcer) definerer sprogets syntaks og semantik. For at behandle XML skal et XML-dokument parses. Det ville være beklageligt, hvis hver Java-klasse, der havde brug for at behandle XML, skulle analysere et XML-dokument i betragtning af kompleksiteten af ​​XMLs syntaks og semantik. For at løse dette problem har W3C defineret Document Object Model (DOM) (se ressourcer). DOM er en applikationsprogrammeringsgrænseflade til XML-data. Den er tilgængelig fra mange programmeringssprog, herunder Java. Java-programmer har adgang til XML-data via DOM API. XML-parsere producerer en DOM-repræsentation af et XML-dokument.

Figur 1 illustrerer en forenklet model af et Java-distribueret program, der behandler XML. Modellen er tilstrækkelig til formålet med denne artikel: at undersøge kommunikationen af ​​XML. Modellen antager, at nogle data hentes fra en datakilde, såsom en relationsdatabase. Nogle Java-koder behandler dataene og producerer i sidste ende en DOM-repræsentation. Denne kode er repræsenteret i figur 1 som processor.

Processorkoden overfører DOM-repræsentationen af ​​XML-data til afsender. Afsenderen er en Java-kode, der kommunikerer XML-data til modtager. Modtageren er Java-kode, der modtager XML-dataene, producerer en DOM-repræsentation af dataene og sender den til en anden processor. Kort sagt afsenderen og modtageren abstrakt kommunikation af DOM-repræsentation af XML-data.

Afsenderen og modtageren er ikke implementeret i den samme Java Virtual Machine. De er forbundet med en distribueret systeminfrastruktur. Der er flere måder at implementere afsenderen og modtageren på.

Bemærk, at modellen i figur 1 er, at afsenderen er klient for modtageren. Afsenderen sender XML til modtageren. I en anden mulig model er modtageren klienten; det anmoder om dokumentet fra afsenderen. Jeg vil ikke udforske den anden model i denne artikel, da problemerne med at kommunikere XML er ens.