Občas sa zdá, že ľudia okolo počítačov žijú z hesiel. Budúcnosť vždy patrí niečomu, čo má jednoduchý názov (často je to TLA – Three Letter Acronym, čiže trojpísmenová skratka), poskytuje jednoduché riešenie všetkých problémov, vykúpenie zo strastí pozemského života a večnú blaženosť. Takýmito hitmi boli GUI (Graphical User Interface), Peer-to-Peer Networks, Internet, Client/Server, WWW, Intranet, Virtual Reality, Thin Clients, Java… každý priniesol niečo nové a užitočné, niektoré sa ujali, niektoré nie, ale žiadny nebol taký úžasný, ako si všetci mysleli. Teraz je takýto hitom XML – eXtensible Markup Language. Čo to nie je, čo to je, na čo je to dobré a na čo to nie je dobré?
Jedným z najdôležitejších problémov vo svete Internetu (a veľkých, heterogénych sietí všeobecne) je schopnosť komunikácie medzi rôznymi zariadeniami. Predstavte si napríklad sieť bankomatov, POS terminálov (v podstate pokladní), bankových počítačov a iných zariadení (čo tak napríklad inteligentná chladnička?). Tieto zariadenia vyrábajú rôzni výrobcovia, patria rôznym bankám (a nie len bankám) a všetky spolu potrebujú komunikovať. Ak sa chcete dozvedieť, ako je to možné, odpoveď máte na dosah myši.
Vyberte si teraz v menu Vášho WWW prehliadača položku „View Page Source“ (v rôznych prehliadačoch sa volá rôzne, ale určite niekde niečo podobné nájdete). Uvidíte zdrojový kód tejto stránky – kombináciu textu s tzv. tags (značkami) – to sú tie veci uzavreté v špicatých zátvorkách: <takto>. Ak sa pozriete pozornejšie, môžete si všimnúť, že niektoré tagy tvoria páry – najprv <takýto>, potom množstvo textu a iných tagov, potom </takýto>. Ďašia zaujímavá vec, ktorú si môžete všimúť sú tzv. atribúty tagov – <tag atribút = „hodnota“> (napríklad
<img src=“http://server.domain.com/picture.jpg“ width=“64″ height = „64“> označuje obrázok (IMaGe), ktorý má prehliadač stiahnuť z adresy (SouRCe) http://server.domain.com/picture.jpg, široký aj vysoký 64 bodov). Celé sa to volá HTML HyperText Markup Language a je to jazyk určený na popis obsahu WWW stránok.
Tento jazyk nie je dobrý na nič iné ako popis textu a výzoru dokumentu. Jeho zovšeobecnením však môže vzniknúť geniálny nástroj komunikácie – XML.
V špecifikácií XML (http://www.w3c.org/TR/2000/WD-xml-2e-20000814) nie sú stanovené konkrétne významy tagov – norma sa týka len syntaxe, nie sémantiky jazyka. Vývojár, tvoriaci aplikáciu, používajúcu XML si môže definovať vlastné tagy s ľubovoľným významom. Takto je možné s minimom námahy tvoriť nové dátové formáty.
Predstavte si, tento článok zapísaný takto:
<?xml version=“1.0″>
<article class=“Internet“>
<title>Čo je to XML?</title>
<author>Michal Hanula</author>
<text>
<p>
Občas sa zdá, že ľudia okolo počítačov žijú z hesiel. Budúcnosť vždy patrí niečomu, čo má jednoduchý názov (často
je to TLA – Three Letter Acronym, čiže trojpísmenová skratka), poskytuje jednoduché riešenie všetkých problémov,
vykúpenie zo strastí pozemského života a večnú blaženosť….
</p>
<p>
Jedným z najdôležitejších problémov vo svete Internetu…
</p>
</text>
</article>
Vďaka tomu, že sme si mohli vytvoriť vlastný formát článku, môžeme zapisovať práve informácie, ktoré nás zaujímajú.
Na rozdiel od HTML reprezentácie, ktorú ste videli pred chvíľou, táto neobsahuje informácie o tom, akým fontom je napísaný prvý riadok a akej farby je druhý – hovorí o tom, aký je nadpis článku, kto je autor a ako je text členený do odstavcov. Je jednoduché automaticky generovať HTML, ktoré ste videli z tohoto XML, ale skúste to naopak.
Dôležité je, že norma XML nedefinuje konkrétne tagy a ich význam – XML teda nie je konkrétny jazyk, ale celá rodina
jazykov. Každý vývojár si môže vymyslieť vlastné tagy, vhodné pre aplikáciu, ktorú vyvíja. Samozrejme, už existujú
štandardné XML na niektoré bežné účely – napríklad na výmenu informácií medzi bankami.
XML má, aj svoje nevýhody. Jeho spracovanie je síce nesmierne jednoduché z hľadiska programátora – je veľmi jednoduché napísať program, ktorý ho bude používať – ale dosť výpočtovo náročné – na to, aby ste ho mohli používať, potrebujete relatívne veľký výpočtový výkon (relatívne veľký v porovnaní s inými dátovými formátmi). Nemá teda význam používať ho na aplikácie, pri ktorých nevyužijete jeho výhody – nemá význam ukladať v XML veľkú databázu, ku ktorej budete potrebovať rýchlo pristupovať a ktorú nikto nikdy nebude čítať inak, ako pomocou aplikácie na to určenej. Na druhej strane, XML môžete použiť na flat-file reprezentáciu tejto databázy (tj. čitateľnú reprezentáciu, použiteľnú napr.
na prenos dát medzi dvomi aplikáciami), na komunikáciu medzi databázovým serverom a klientami, ako formát pre
konfiguračné súbory atď. XML sa nehodí ani na aplikácie, pro ktorých je kritická hustota informácií a rýchlosť ich
spracovania – napríklad na komunikáciu medzi Houstonom a vesmírnou sondou.
Budúcnosť
Predpovede sú, ako vždy, prehnane optimistické, ale v podstate reálne. Počíta sa s používaním XML na komunikáciu
medzi domácimi spotrebičmi – až raz bude dôležité, aby sa vaša chladnička (napríklad Calex) vysvetlila počítaču
donáškovej služby (povedzme IBM), aké jedlo vám chýba, mikrovlnke (hoci Whirlpool), aké jedlo spracúva a práčke
(Zanussi), čo to treba vyprať z trička vášho dieťaťa, XML bude pravdepodobne ideálnym nástrojom takejto komunikácie. Pracuje sa aj na novom protokole pre WWW, založenom na XML. Nechajme sa prekvapiť.