UPOTREBA XML-a
Sve velike ideje XML-a ne bi imale koristi bez alata za korištenje tih ideja u okviru poznatih nam programskih okruženja. Srećom, XML je udružen s programskim jezikom Java od njegovih početaka, i Java se diči s najpotpunijim skupom dostupnih API-ja (Application Program Interface) koji omogućuju upotrebu XML-a direktno unutar Java koda [Bosak 1997].
Dva su osnovna stadija XML dokumenta u ciklusu aplikacije, kao što je prikazano na slici
7. Prvo, dokument se rastavlja na sastavne dijelove, a zatim se barata s podacima tih dijelova.
Slika 7. Stadiji XML dokumenta u ciklusu aplikacije
SAX (Simple API for XML) čini sistem, zasnovan na događajima, za analizu XML podataka. Proces se sastoji od čitanja dokumenta od početka i izdvajanja podataka u korisne dijelove; na svakom koraku procesa, SAX definira događaje koji mogu nastupiti. [McLaughlin 2000]
DOM je API za Document Object Model. Dok SAX nudi “pristup” podacima unutar XML dokumenta, DOM je osmišljen da pruži značenje rukovanju tim podacima. DOM prikazuje stablo XML dokumenta. Kako je stablo odavno poznat strukturni prikaz podataka, lako je izvesti prolazak i obradu kroz strukturu stabla u raznim programskim jezicima, pa tako i u Javi. [Wood 1999]
Dakle, raznim programskim jezicima mogu se obrađivati XML dokumenti, ali je Java jezik koji idealno nadopunjuje XML. Kratko rečeno: Java pruža prenosivi kod, a XML prenosive podatke. Gledani odvojeno, obje tehnologije su izuzetne, ali imaju ograničenja. Java od razvojnog programera zahtijeva smišljanje formata za prijenos podatka i formata za prezentaciju podataka, te upotrebu tehnologija koje ne omogućavaju odvajanje sadržaja od prezentacije, kao što je JavaServer Pages (JSP). XML je jednostavno meta-podatak, i bez programa kao što su parseri i XSL procesori u osnovi je bez koristi. Međutim, Java i XML povezani upravo čine rješenje problema do kojih je doveo dosadašnji razvoj web aplikacija.
Java ima ugrađene sve osnovne funkcije za rukovanje mrežnim protokolima (TCP/IP, FTP i HTTP). Zahvaljujući ovoj ugrađenoj mrežnoj podršci i dodajući tome mogućnost korištenja ulazno - izlaznih podataka u standardnom XML obliku neovisnom o platformi, programi pisani u Javi mogu bez problema pristupati podacima koji su pohranjeni širom Interneta na različitim tipovima poslužitelja, čime se još više pridonosi integraciji Interneta pod jedno zajedničko sučelje.
[S.J. Chapman: “Java for Engineers and Scientists”,
Prentice Hall, Upper Saddle River, New Jersey, 2000]
XML za prezentaciju
Jedan od najvećih izazova koji se postavljaju pred aplikacije današnjice, naročito pred web aplikacije, je raznovrsnost klijenata. Još prije deset godina, klijenti su imali strogo definiranu programsku podršku instaliranu na svojim osobnim računalima da bi pokretali aplikaciju; prije tri godine klijenti postaju većinom Internet web pretraživači koji razumiju HTML. Današnji klijenti koriste web pretraživače na mnoštvu različitih operativnih sustava, mobilne telefone koji podržavaju WAP (Wireless Application Protocol) ili osobne organizatore s potpuno drugačijim jezicima oznaka. Ova raznolikost tipova klijenata često rezultira u velikom broju verzija aplikacije, po jedna za svaki tip klijenta, a ipak sve varijacije ne budu podržane. Iako jedna aplikacija ne mora podržavati pristup mobilnim telefonima, sigurno postoje prednosti u pružanju te usluge zaposlenicima ili kupcima koji posjeduju uređaje; i iako osobni organizatori možda ne mogu podržati sve funkcije koje ima web pretraživač, osobe koje puno putuju će najvjerojatnije nastaviti s korištenjem usluga kompanije koja im nudi mogućnost da održavaju svoje račune direktno (on-line). Taj traženi pomak od rješavanja velikog broja zadataka za specifičnog klijenta do standardnog skupa zadataka za najraznovrsnije klijente, donio je probleme mnogim kompanijama i razvojnim programerima. XML nudi rješenje.
Naglašavana prednost XML-a je odvajanje sadržaja od prezentacije. Definira se odvojeno sadržaj aplikacije kao podaci koje treba prezentirati klijentu i prezentacija aplikacije kao format tih podataka. Sadržaj je jedinstven za aplikaciju i bez obzira na tip formata specifičnog za svakog klijenta, isti sadržaj je valjan; ipak, prazentacija je specifična za tip klijenta (web pretraživač, mobilni telefon, Java aplikacija) i njegove sposobnosti (HTML 4.0, WAP, Java Swing) za pregled podataka. U ovim situacijama se koristi XML kao nositelj sadržaja, dok XSL (eXtensible Style Language) [Adler 2000] i XSLT (XSL Transformation) [Clark 1999] osiguravaju prezentaciju koja odgovara svakom pojedinom klijentu.
Stilski predložak (XSL) definira prezentaciju s instrukcijama kako oblikovati podatke iz XML dokumenta. Kroz XSLT, originalni se XML može predstaviti klijentu na različite načine, uključujući vrlo složeni HTML. I nakon toga, osnovni XML dokument ostaje odvojen od svih informacija o prikazu, slika
8, i može se jednostavno preoblikovati u neki posve drugačiji stil prezentacije, i dalje bez promjene sadržaja.
Slika 8. Preoblikovanje XML-a u HTML prema stilskom predlošku (XSL)
Vjerojatno najmoćnija komponenta XML-a i XSL-a za prezentaciju je mogućnost definiranja više različitih stilskih predložaka za jedan XML dokument. Ne samo da se isti XML dokument koristi za različita predstavljanja podataka, već je moguće da aplikacija koja transformira XML za prezentaciju može odrediti koji tip klijenta šalje zahtjev za podacima i na osnovu toga odabrati odgovarajući stilski predložak. Ovim se prezentaciji dodaje još jedan nivo fleksibilnosti.
[F. Manola: “Technologies for a Web Object Model”,
IEEE Internet Computing Magazine, Vol. 3, No. 1, pp.
38-47, January/February 1999.]
XML za komunikaciju
Osim jednostavnosti različitih načina prezentacije informacija sadržanih u XML dokumentu, podaci iz XML dokumenta se mogu jednostavno koristiti za prenos informacija između aplikacija.
Za razumijevanje važnosti XML-a za komunikaciju, potrebno je prvo proširiti pojam klijenta. Govoreći o prezentaciji, pod klijentom se obično pretpostavlja korisnik koji ima uvid u dio aplikacije. Međutim, s današnjim aplikacijama ovakvo poimanje klijenta nije zadovoljavajuće. Umjesto toga, smatrat ćemo klijentom sve što ima pristup podacima ili uslugama unutar aplikacije. Klijenti mogu biti korisnici s računalima ili mobilnim uređajima, druge aplikacije, sustavi za pohranu podataka kao što su baze podataka ili direktoriji usluga, i čak, s vremena na vrijeme, sama aplikacija postavljajući zahtjeve.
Pokušavajući kategorizirati ove klijente u dvije skupine: one koji zahtijevaju prezentacijski nivo i one koji ne zahtijevaju, javlja se problem. Dok nam je jasno je da korisnik može pregledavati podatke u HTML ili u WML (Wireless Markup Language) obliku, za podatke koji se serviraju drugoj aplikaciji i koje možda treba samo nešto drukčije oblikovati, koristeći druga imena elemenata, ili ih samo filtrirati, ne smatramo da ih se preoblikuje za prezentaciju, ali ipak se transformacija mora obaviti. Uobičajen tok podataka prikazan je na slici
9. XML dokument koji se mijenja u format pogodan za drugu aplikaciju primjenom XSL stilskog predloška, i dalje ostaje XML dokument. Druga aplikacija, koristeći ove podatke, na izlazu daje neke nove, ali i dalje u XML obliku. Primjenom XSL transformacije, ovi se podaci opet preoblikuju u format pogodan za originalnu aplikaciju, koja ih sad dalje može obrađivati.
Slika 9. XML / XSL pretvorba između aplikacija
Ovaj ponavljani proces preoblikovanja dokumenta koji uvijek za rezultat ima XML dokument čini XML tako važnim alatom za komunikaciju. Isti skup pravila se može primijeniti na svakom koraku, počinjući uvijek od XML-a, primijenjujući jedan ili više XSL stilskih predložaka, i rezultirajući s XML-om na koji su i dalje primjenjivi isti alati kojim je is stvoren originalni dokument.
Važno je uzeti u obzir i to da je XML čisto tekstualni prikaz podataka. XML pruža brz način mrežnog prenosa podataka. Iako se neki binarni formati prenose vrlo efikasno, u prosjeku je tekstualni mrežni prijenos brži način komunikacije.
XML za konfiguracijuJoš jedna značajna primjena XML-a za aplikacije i Java tehnologije danas je na nivou poslužitelja aplikacija. Do sada korišteni serijski opis razvoja aplikacije, zamjenjuje se Enterprise JavaBeans (EJB) 1.1. specifikacijom koja zahtijeva da opis razvoja aplikacije, koji određuju ponašanje i druge informacije o EJB-u, budu zasnovani na XML-u. Time se razvojnim inženjerima, kao i sistem administratorima pojednostavljuje kreiranje i održavanje aplikacija.