Java na poslužitelju: Izradite distribuirane programe s Javom i XML-om

Proširivi označni jezik ili XML stekao je široku popularnost kao način predstavljanja podataka u prijenosnom, čitljivom formatu neovisnom o dobavljaču. Mnogi dobavljači softvera najavili su "podršku za XML", što obično znači da će njihovi proizvodi proizvoditi ili trošiti XML podatke.

XML se također gleda kao lingua franca za razmjenu podataka između poduzeća. Omogućuje poduzećima da se dogovore o XML definicijama vrsta dokumenata (DTD) za podatke koji se razmjenjuju. Ovi DTD-ovi neovisni su o shemi baze podataka koju koriste poduzeća.

Skupine za standarde koje predstavljaju gotovo svaki pothvat čovjeka dogovaraju se o DTD-ima za razmjenu podataka. Jedan od mnogih primjera je Međunarodno vijeće za telekomunikacije za tisak (vidi Resursi), koje je definiralo XML DTD koji omogućuje "prijenos vijesti s oznakama i lako pretvaranje u format koji se može elektronički objaviti". Takvi vertikalni tržišni standardi omogućit će raznim aplikacijama razmjenu podataka na nepredviđeni način.

Ali kakva je korist od prijenosnih podataka, neutralnih prema dobavljačima, ako ih ne dijelite i ne obrađujete? Poželjna je sposobnost komunikacije i obrade XML-a između distribuiranih računala. Aplikacija koja komunicira i obrađuje XML između računala je zapravo distribuirana aplikacija.

Ovaj članak istražuje takve distribuirane programe napisane na Javi. Usredotočit ću se na komunikaciju XML-a između Java koda koji se izvodi u različitim virtualnim strojevima.

Komunikacija XML-a

Specifikacija XML-a definirana od strane World Wide Web Consortium-a ili W3C (vidi Resursi) definira sintaksu i semantiku jezika. Za obradu XML-a treba analizirati XML dokument. Bilo bi za žaljenje kad bi svaka Java klasa koja je trebala obraditi XML morala raščlaniti XML dokument, s obzirom na složenost XML-ove sintakse i semantike. Da bi riješio ovaj problem, W3C je definirao objektni model dokumenta (DOM) (vidi Resursi). DOM je sučelje aplikacijskog programera za XML podatke. Dostupan je iz mnogih programskih jezika, uključujući Java. Java programi mogu pristupiti XML podacima putem DOM API-ja. XML raščlanjivači proizvode DOM prikaz XML dokumenta.

Slika 1 ilustrira pojednostavljeni model Java distribuirane aplikacije koja obrađuje XML. Model je dovoljan za svrhu ovog članka: za istraživanje komunikacije XML-a. Model pretpostavlja da su neki podaci dobiveni iz izvora podataka, poput relacijske baze podataka. Neki Java kôd obrađuje podatke i na kraju stvara DOM prikaz. Ovaj je kod predstavljen na slici 1 kao procesor.

Kôd procesora prosljeđuje DOM predstavljanje XML podataka pošiljatelju. Pošiljatelj je Java kôd koji primatelju prenosi XML podatke . Prijemnik je Java kôd koji prima XML podatke, stvara DOM prikaz podataka i prosljeđuje ih drugom procesoru. Ukratko, pošiljatelj i primatelj apstrahiraju komunikaciju DOM predstavljanja XML podataka.

Pošiljatelj i primatelj nisu implementirani u isti Java virtualni stroj. Povezani su distribuiranom sistemskom infrastrukturom. Postoji nekoliko pristupa primjeni pošiljatelja i primatelja.

Imajte na umu da je u modelu na slici 1 pošiljatelj klijent primatelja. Pošiljatelj prosljeđuje XML primatelju. U drugom mogućem modelu, primatelj je klijent; traži dokument od pošiljatelja. Neću istraživati ​​drugi model u ovom članku jer su problemi komuniciranja XML-a slični.