Programování

Java na straně serveru: Vytvářejte distribuované aplikace pomocí prostředí Java a XML

Extensible Markup Language neboli XML si získal širokou popularitu jako způsob, jak reprezentovat data v přenosném, na prodejce neutrálním, čitelném formátu. Mnoho prodejců softwaru oznámilo „podporu XML“, což obvykle znamená, že jejich produkty budou produkovat nebo spotřebovávat data XML.

XML je také považován za lingua franca pro výměnu dat mezi podniky. Umožňuje podnikům dohodnout se na definicích typů dokumentů XML (DTD) pro vyměňovaná data. Tyto DTD jsou nezávislé na databázovém schématu používaném podniky.

Skupiny standardů představující téměř všechny lidské snahy se dohodly na DTD pro výměnu dat. Jedním z mnoha příkladů je Mezinárodní tisková telekomunikační rada (viz Zdroje), která definovala XML DTD, který umožňuje „přenášet zpravodajské informace pomocí značek a snadno je transformovat do elektronicky publikovatelného formátu“. Takové vertikální tržní standardy umožní různým aplikacím vyměňovat si data nepředvídanými způsoby.

Jak dobrá jsou ale přenosná data neutrální vůči prodejcům, pokud je nesdílíte a nezpracováváte? Schopnost komunikovat a zpracovávat XML mezi distribuovanými počítači je žádoucí. Aplikace, která komunikuje a zpracovává XML mezi počítači, je ve skutečnosti a distribuovaná aplikace.

Tento článek zkoumá takové distribuované aplikace napsané v Javě. Zaměřím se na komunikaci XML mezi kódem Java běžícím na různých virtuálních strojích.

Komunikace XML

Specifikace XML definovaná konsorciem World Wide Web Consortium nebo W3C (viz zdroje) definuje syntaxi a sémantiku jazyka. Chcete-li zpracovat XML, je třeba analyzovat dokument XML. Bylo by politováníhodné, kdyby každá třída Java, která potřebovala zpracovat XML, musela analyzovat dokument XML, vzhledem ke složitosti syntaxe a sémantiky XML. K vyřešení tohoto problému W3C definovala Document Object Model (DOM) (viz Zdroje). DOM je rozhraní aplikačního programátora s daty XML. Je k dispozici v mnoha programovacích jazycích, včetně Javy. Programy Java mohou přistupovat k datům XML prostřednictvím rozhraní DOM API. Analyzátory XML vytvářejí DOM reprezentaci dokumentu XML.

Obrázek 1 ilustruje zjednodušený model distribuované aplikace Java, která zpracovává XML. Model je dostatečný pro účely tohoto článku: prozkoumat komunikaci XML. Model předpokládá, že některá data jsou získána ze zdroje dat, například z relační databáze. Některý kód Java zpracovává data a nakonec vytváří reprezentaci DOM. Tento kód je na obrázku 1 znázorněn jako procesor.

Kód procesoru předává DOM reprezentaci dat XML do odesílatel. Odesílatelem je kód Java, který komunikuje data XML do přijímač. Přijímač je kód Java, který přijímá data XML, vytváří reprezentaci dat DOM a předává je jinému procesoru. Stručně řečeno, odesílatel a příjemce abstraktní komunikace reprezentace DOM dat XML.

Odesílatel a příjemce nejsou implementovány ve stejném prostředí Java Virtual Machine. Jsou propojeny distribuovanou systémovou infrastrukturou. Existuje několik přístupů k implementaci odesílatele a příjemce.

Všimněte si, že v modelu na obrázku 1 je odesílatel klientem přijímače. Odesílatel předá XML příjemci. V jiném možném modelu je přijímač klient; požaduje dokument od odesílatele. Druhý model v tomto článku nebudu zkoumat, protože problémy s komunikací XML jsou podobné.