Java от сървъра: Изградете разпределени приложения с Java и XML

Разширимият език за маркиране или XML придоби широка популярност като начин за представяне на данни в преносим, ​​неутрален от производителя, четим формат. Много доставчици на софтуер са обявили „поддръжка за XML“, което обикновено означава, че техните продукти ще произвеждат или консумират XML данни.

XML също се разглежда като lingua franca за обмен на данни между предприятия. Това позволява на предприятията да се споразумеят за дефиниции на XML тип документи (DTD) за данните, които се обменят. Тези DTD са независими от схемата на базата данни, използвана от предприятията.

Групите за стандарти, представляващи почти всяко човешко начинание, се договарят относно DTD за обмен на данни. Един от многото примери е Международният съвет за телекомуникации в пресата (вж. Ресурси), който е определил XML DTD, който позволява „информацията за новини да се прехвърля с маркировка и лесно да се трансформира в електронен формат за публикуване“. Такива вертикални пазарни стандарти ще позволят на различни приложения да обменят данни по непредвидени начини.

Но каква полза от преносимите, неутрални от доставчика данни, ако не ги споделяте и обработвате? Желателна е способността за комуникация и обработка на XML между разпределени компютри. Приложение, което комуникира и обработва XML между компютри, всъщност е разпределено приложение.

Тази статия изследва такива разпределени приложения, написани на Java. Ще се съсредоточа върху комуникацията на XML между Java кода, работещ в различни виртуални машини.

Комуникацията на XML

Спецификацията на XML, дефинирана от World Wide Web Consortium или W3C (вж. Ресурси), определя синтаксиса и семантиката на езика. За да се обработи XML, трябва да се анализира XML документ. Ще бъде съжаление, ако всеки клас Java, който се нуждае от XML, трябва да анализира XML документ, предвид сложността на синтаксиса и семантиката на XML. За да реши този проблем, W3C е дефинирал обектния модел на документа (DOM) (вж. Ресурси). DOM е интерфейс на приложен програмист към XML данни. Предлага се от много езици за програмиране, включително Java. Java програмите имат достъп до XML данни чрез DOM API. XML парсерите създават DOM представяне на XML документ.

Фигура 1 илюстрира опростен модел на Java разпределено приложение, което обработва XML. Моделът е достатъчен за целта на тази статия: да изследва комуникацията на XML. Моделът предполага, че някои данни се получават от източник на данни като релационна база данни. Някои Java кодове обработват данните и в крайна сметка създават DOM представяне. Този код е представен на фигура 1 като процесор.

Кодът на процесора предава DOM представянето на XML данните на подателя. Подателят е Java код, който съобщава XML данните на получателя. Приемникът е Java код, който получава XML данни, произвежда DOM представяне на данните и ги предава на друг процесор. Накратко, подателят и получателят абстрахират комуникацията на DOM представяне на XML данни.

Подателят и получателят не са реализирани в една и съща виртуална машина Java. Те са свързани от разпределена системна инфраструктура. Има няколко подхода за прилагане на подателя и получателя.

Имайте предвид, че в модела на фигура 1 подателят е клиент на получателя. Подателят предава XML на получателя. В друг възможен модел получателят е клиентът; той изисква документа от подателя. Няма да изследвам втория модел в тази статия, тъй като проблемите на комуникацията на XML са сходни.