|
Extendible Markup Language
XML
is in toenemende mate de nieuwe standaard aan het worden
XML — Extendible Markup Language — is in toenemende mate
de standaard aan het worden voor data-overdracht tussen
business‑systemen. Ondersteuning van deze standaard
wordt voor veel toeleveranciers van softwareoplossingen
dan ook steeds belangrijker. Maar biedt XML louter voordelen
of moet er voorlopig nog wat genuanceerder tegenaan
gekeken worden? Gaan bijvoorbeeld databases zoals we
die kennen in rap tempo verdwijnen of is het verstandig
oude schoenen nog niet weg te gooien?
XML is in vier toepassingsgebieden te verdelen: als technische
interface tussen systemen, als (interne) datastructuur,
als database en voor de semantische beschrijving van
interfaces.
Tot dusver werden interfaces gerealiseerd als CSV-bestand,
dat gewoon voor mensen leesbaar is. XML heeft een aantal
voordelen boven CSV: velden kunnen op een eenvoudige
manier toegevoegd worden en als de interface wordt gewijzigd
hoeven niet beide systemen tegelijk te veranderen. Een
ander belangrijk voordeel is dat XML een hiërarchische
structuur heeft, waardoor in plaats van een serie onderling
gerelateerde CSV-bestanden nu kan worden volstaan met
slechts één bestand. Wel is het zo dat XML net als een
CSV-interface ook een interface beheersysteem gebruikt.
XML is dus een standaard, maar nog niet de harde standaard
die het zou moeten zijn. In hun haast om zo snel mogelijk
met hun eigen variant op XML te komen, hebben leveranciers
een behoorlijk aantal standaardisatieproblemen veroorzaakt.
Microsoft heeft zoveel updates van haar XML-software
uitgebracht, dat een door Microsoft software aangemaakt
XML-bestand soms niet door een ander Microsoft‑systeem
gelezen kan worden. Een net iets andere release van
een Service Pack of van Internet Explorer kan ervoor
zorgen dat een fraai XML-bestand door een andere Windows
variant niet herkend wordt. CSV is eenvoudiger en heeft
deze problemen dus niet. Wie XML wil gebruiken, zal
hier dus rekening mee moeten houden. Het is niet handig
zomaar te vertrouwen op de toevallige aanwezigheid van
de Microsoft XML-parser op een computer, omdat er te
veel varianten in omloop zijn. Minimumeis is dat op
alle computers dezelfde Internet Explorer versie is
geïnstalleerd. De installatie van een Service Pack of
een update van Explorer kan echter naderhand weer roet
in het eten gooien. Zeker wanneer je geen controle over
de andere computers hebt, is het verstandig een eigen
XML-parser in je software te creëren.
XML is ook kandidaat om in de toekomst systemen van verschillende
bedrijven en overheden met elkaar te verbinden. Ontelbare
comités zetten zich in om deze interfaces te standaardiseren,
met als gemeenschappelijke taal XML. Daar ligt een lastige
opdracht. Want als twee dingen dezelfde naam hebben,
betekent dit nog niet dat hiermee altijd hetzelfde wordt
bedoeld. Dat gaat verder dan waar de één een bank als
een financiële instelling ziet en de ander meent met
een zitmeubel van doen te hebben. Dit heeft ook veel
te maken met het gezichtspunt van waaruit iedere organisatie
een benadering kiest. Wat voor de één groot is, kan
vanuit het perspectief van een ander juist klein lijken.
En waar de mens — die eindeloos intelligenter is dan
alle computers bij elkaar — vaak al moeite heeft met
het standaardiseren van dergelijke begrippen zal dit
(gevoelsmatige) onderscheid voor een computer al helemaal
moeilijk te maken zijn. Fysieke gegevens lenen zich
hier daarentegen wel voor; maten en gewichten, hoeveelheden,
plaatsen op aarde zijn allemaal zaken waarover geen
verwarring kan ontstaan.
Een echt nuttige toepassing van XML is het gebruik als parameterbestand
voor programmatuur. De door programmeurs in te voeren
gegevens sturen het gedrag van programma’s aan. Dit
is te vergelijken met INI‑bestanden die op Windows
3.1 waren te vinden, maar dan in een modern jasje gestoken.
Deze XML-bestanden worden alleen gelezen. Geschreven
wordt er niets; er vindt dan ook geen manipulatie plaats.
De hiërarchische structuur van XML maakt het tot een
ideaal hulpmiddel voor de aansturing van parameters.
Programmeurs kunnen het lezen en aanpassen en omdat
ook testafdelingen ermee overweg kunnen, zullen zij
in staat zijn het programma onder verschillende omstandigheden
te testen.
XML is ook prima geschikt voor de aansturing van webpagina’s:
in feite een bijzondere vorm van programma‑parameters.
XML kan bijvoorbeeld gebruikt worden als verpakking
van HTML. De website zelf wordt dan op de server opgeslagen
als een XML-structuur met daarbinnen HTML. Het bekende
‘menu aan de linkerkant’ kan dan een XML-structuur zijn,
die vlak voor het tonen wordt omgezet in puur HTML.
Daardoor werkt een website ook voor gebruikers die Netscape
en Opera gebruiken of die Javascript uitgeschakeld hebben.
Ook binnen Web Services bewijst XML zijn nut. Een Web Service
op basis van het SOAP-protocol is een heel mooie manier
om tussen twee servers gegevens uit te wisselen, daarbij
gebruikmakend van standaard internetprotocollen als
HTTP. Over dit onderwerp is overigens een boek verschenen.
Web Services zijn gebaseerd op XML, dus wie gebruik wil maken van Web Services
moet XML gebruiken.
We kunnen dus stellen dat XML zijn nut kan hebben voor technische
interfaces. XML kan worden opgeslagen als veld in een
database en is bovendien handig als vervanger van INI‑files.
Daarmee kun je gemakkelijk op het idee komen om XML
vervolgens te gaan gebruiken als vervanger van een database.
Daarvoor is XML — ondanks de hiërarchische en flexibele
structuur — echter minder geschikt.
Voor opzoekoperaties is XML niet ideaal; de flexibiliteit
kost performance. XML ontbeert datgene wat relationele
databases sterk maakt: data die zodanig is opgeslagen
dat het eenvoudig teruggevonden kan worden, minimale
schijfruimte in beslag neemt en een zo gering mogelijk
aantal operaties richting intern geheugen heeft. Bovendien
ontbreken natuurlijk allerlei faciliteiten die bijvoorbeeld
de Oracle database zo prettig maakt om mee te werken:
een prettige query taal, query optimalisatie, replicatie
en stored procedures. |