Programavimas

Serverio pusė „Java“: Kurkite paskirstytas programas naudodami „Java“ ir XML

„Extensible Markup Language“ arba XML plačiai išpopuliarėjo kaip būdas vaizduoti duomenis nešiojamu, pardavėjo neutraliu, skaitomu formatu. Daugelis programinės įrangos gamintojų paskelbė apie „XML palaikymą“, paprastai tai reiškia, kad jų produktai gamins arba suvartos XML duomenis.

XML taip pat vertinamas kaip keitimosi duomenimis tarp įmonių lingua franca. Tai leidžia įmonėms susitarti dėl XML dokumentų tipo apibrėžimų (DTD), kuriais keičiamasi duomenimis. Šie DTD yra nepriklausomi nuo duomenų bazės schemos, kurią naudoja įmonės.

Standartų grupės, atstovaujančios beveik kiekvienam žmogaus darbui, susitaria dėl keitimosi duomenimis DTD. Vienas iš daugelio pavyzdžių yra Tarptautinė spaudos telekomunikacijų taryba (žr. Ištekliai), apibrėžusi XML DTD, leidžiančią „naujienų informaciją perduoti su žymėjimu ir lengvai transformuoti į elektroniniu būdu skelbiamą formatą“. Tokie vertikalūs rinkos standartai leis įvairioms programoms keistis duomenimis nenumatytais būdais.

Bet ko naudingi nešiojamieji, pardavėjo atžvilgiu neutralūs duomenys, jei jais nesidalijate ir neapdorojate? Pageidautina galimybė bendrauti ir apdoroti XML tarp paskirstytų kompiuterių. Taikomoji programa, kuri bendrauja ir apdoroja XML tarp kompiuterių, iš tikrųjų yra: platinama programa.

Šiame straipsnyje nagrinėjamos tokios paskirstytos programos, parašytos „Java“. Aš sutelksiu dėmesį į XML ryšį tarp Java kodo, veikiančio skirtingose ​​virtualiose mašinose.

XML komunikacija

XML specifikacija, apibrėžta „World Wide Web Consortium“ arba W3C (žr. „Ištekliai“), apibrėžia kalbos sintaksę ir semantiką. Norint apdoroti XML, reikia išanalizuoti XML dokumentą. Būtų gaila, jei kiekviena „Java“ klasė, kuriai reikėjo apdoroti XML, turėtų analizuoti XML dokumentą, atsižvelgiant į XML sintaksės ir semantikos sudėtingumą. Norėdami išspręsti šią problemą, W3C apibrėžė dokumento objekto modelį (DOM) (žr. Ištekliai). DOM yra programų programuotojo sąsaja su XML duomenimis. Jį galima įsigyti iš daugelio programavimo kalbų, įskaitant „Java“. „Java“ programos gali pasiekti XML duomenis per DOM API. XML analizatoriai sukuria XML dokumento DOM vaizdą.

1 paveiksle pavaizduotas supaprastintas Java paskirstytos programos, apdorojančios XML, modelis. Modelio pakanka šio straipsnio tikslams: ištirti XML komunikaciją. Modelyje daroma prielaida, kad kai kurie duomenys gaunami iš duomenų šaltinio, pavyzdžiui, reliacinės duomenų bazės. Kai kurie „Java“ kodai apdoroja duomenis ir galiausiai sukuria DOM vaizdą. Šis kodas 1 paveiksle pavaizduotas kaip procesorius.

Procesoriaus kodas perduoda XML duomenų DOM atvaizdavimą siuntėjas. Siuntėjas yra „Java“ kodas, perduodantis XML duomenis imtuvas. Imtuvas yra „Java“ kodas, kuris gauna XML duomenis, sukuria duomenų DOM vaizdą ir perduoda juos kitam procesoriui. Trumpai tariant, siuntėjas ir gavėjas abstraktus XML duomenų DOM atvaizdavimo perdavimas.

Siuntėjas ir imtuvas nėra įdiegti vienoje „Java“ virtualioje mašinoje. Juos jungia paskirstytos sistemos infrastruktūra. Yra keli būdai, kaip įgyvendinti siuntėją ir imtuvą.

Atkreipkite dėmesį, kad 1 paveiksle pateiktame modelyje siuntėjas yra imtuvo klientas. Siuntėjas perduoda gavėjui XML. Pagal kitą galimą modelį imtuvas yra klientas; ji reikalauja dokumento iš siuntėjo. Antrojo modelio šiame straipsnyje nenagrinėsiu, nes XML perdavimo problemos yra panašios.