Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den Computerworld d. 18. august 2006.
XML-alternativer anvendes til udvikling af ajax-applikationer.
Bag en anonym, leverpostejgrå betegnelse RFC4627 gemmer sig et vigtigt element i de nye web-baserede applikationer - de såkaldte ajax-applikationer - som gør det muligt at anvende avancerede programmer som regneark og tekstbehandling via en almindelig browser.
Hvor en traditionel webapplikation sender en fuld opdatering af hele websiden, når en bruger trykker på en knap, gør ajax-teknologierne det muligt at udveksle små bidder af information med webserveren, uden at brugeren bemærker det.
En ajax-applikation sender kun den fulde webside første gang, brugeren besøger siden. Efterfølgende opdateringer vil være rettet mod enkelte felter på websiden, hvilket betyder, at der bliver udvekslet mindre mængder data. Resultatet er en mere interaktiv brugergrænseflade, så webapplikationen minder om et traditionelt program installeret direkte på brugerens egen computer.
RFC4627 er med til at gøre det muligt. RFC står for Request For Comments nummer 4627, og sidste måned blev denne "anmodning om kommentarer" sendt til organisationen Internet Engineering Task Force (IETF), der arbejder med tekniske standarder for internettet. Det er ofte de-facto-standarder - fungerende teknologier, der anvendes i stor stil - som medlemmerne af IETF bliver bedt om at kommentere. Således også med RFC4627.
X'et i Ajax står for XML og indikerer, at XML anvendes til at transportere de små mængder data mellem webserver og browser. Det er dog langt fra altid, det er XML, som anvendes som dataudvekslingsformat. Det er her RFC4627 kommer ind i billedet.
Den beskriver nemlig JavaScript Object Notification (JSON), der allerede i dag ofte anvendes til at udveksle data mellem webserver og browser i stedet for XML. Det er store webfirmaer som Yahoo og Google, it-giganter som Microsoft og IBM samt mindre softwarefirmaer og internetudviklere, der har taget JSON til sig. JSON betragtes som simplere og nemmere at arbejde med end XML.
I browseren er det nemmere for JavaScript at tilgå JSON-data end XML-data, da JSON er defineret som en del af JavaScript.
Douglas Crockford har bedt om IETF's kommentarer til JSON. Douglas Crockford udviklede JSON, og i juni måned fortalte han om status for JSON på konferencen Real-world AJAX i New York. Han konstaterede, at et af hovedelementerne i ajax-applikationer er dataudveksling og mente, at JSON er bedre egnet til det end XML.
- JSON er optimeret til små, iterative dataoverførsler, som ajax-applikationer anvender. JSON gør det nemmere for udviklerne at lave mash-ups (sammensætte indhold fra forskellige websites, red.), sagde Douglas Crockford.
Han mener ikke, at XML er velegnet til dataudveksling, og at han på længere sigt håbede, at en JSON-baseret webservice-arkitektur vil kunne erstatte den nuværende XML-baserede.
- XML er ikke god til serialisering, men er en dokumentstandard. En webservice-arkitektur baseret på JSON giver god mening, sagde Douglas Crockford.
Han understregede dog, at ideen om en JSON-baseret webservices-arkitektur ikke var noget, der vil ske her og nu. Først skal JSON udbredes, og det skal blandt andet ske ved browserleverandørernes hjælp.
I dag understøtter de fleste browsere XMLHttpRequest, der gør det muligt at sende og modtage XML via http-protokollen. JSON-folkene arbejder på at få browserne til at understøtte JSONRequest, der skal gøre det muligt at sende og modtage JSON.
Ifølge Douglas Crockford har både Microsoft med Internet Explorer og Mozilla, der står bag Firefox, vist interesse for JSONREquest.
Douglas Crockford arbejder i dag for Yahoo, der anvender JSON i stor stil. Eksempelvis begyndte Yahoo i december sidste år at understøtte JSON som udvekslingsformat til sine webapplikationer. Internt anvender Yahoo også JSON til at udveksle data mellem eksempelvis C++-programmer og Java-programmer.
Også Microsoft anvender JSON-formatet. Eksempelvis anvender Microsofts Ajax.NET, der anvendes til udvikling af ajax-applikationer, JSON som dataudvekslingsformat.
Et andet letvægtsalternativ til XML er også begyndt at dukke op flere steder. Det er YAML (YAML Ain't Markup Language), der blandt andet via Ruby on Rails spreder sig blandt de webbaserede aplikationer som XML-alternativ.
Udviklingen afspejler på sin vis XML's historie.
XML startede som et forsøg på at simplificere standarden SGML (Standard Generalized Markup Language), der var beregnet til at beskrive dokumenter.
Da XML var klar i 1998, var der dog allerede en bevægelse i gang for at simplificere dokumentformatet yderligere. Målet var at få defineret et Simple Markup Language (SML). En af fortalerne var dengang Simon St. Laurent, der har udgivet en række bøger om XML og regnes som en af guruerne inden for XML-området - trods sin kritiske holdning til hvad han betragter som en for kompliceret XML-standard.
Simon St. Laurent og SML-fortalerne fik aldrig rigtigt vind i sejlene, og XML anvendes i dag som et centralt element i en lang række it-teknologier. Selvom XML har sine rødder i dokument-verdenen, har det fået en stor rolle som dataudvekslingsformat. Eksempelvis anvendes XML i stor stil i de forskellige webservices-standarder, under eet kaldet WS-*. Et område som Douglas Crockford altså på længere sigt håber at kunne lave et JSON-baseret alternativ til.
Simon St. Laurent glæder sig over udviklingen og i sidste måned skrev han blandt andet, at YAML og JSON kan ses som SML's genkomst. Han medgiver dog, at XML har sin berettigelse til at repræsentere mere komplicerede datastrukturer.
- Jeg gætter på, at XML fortsat vil være nyttigt for dokumenter og applikationer, der har behov for en stor mængde tvungen struktur, og at de vil holde sig til de mere sofistikerede (og komplicerede) type-strukturer, der tilbydes via W3C's XML skemaer, skriver Simon St. Laurent.
Faktaboks:
JSON
JavaScript Object Notation (JSON) er et dataudvekslingsformat, der kan anvendes af forskellige programmeringssprog. JSON er altså ikke kun beregnet til at blive anvendt i forbindelse med JavaScript. Det er mere simpelt end XML og foretrækkes derfor til udveksling af simple datastrukturer.
Læs mere på www.json.org
Den officielle beskrivelse af JSON findes på http://www.ietf.org/rfc/rfc4627.txt
Douglas Crockfords indlæg om JSON på Real world AJAX-konference i New York kan ses på http://tinyurl.com/qpvpo
YAML
I starten af udviklingen af YAML stod forkortelsen for Yet Another Markup Language. Senere ønskede YAML-folkene at understrege, at YAML netop ikke anvender markup som tags, men anvender indrykning og mellemrum til at definere en datastruktur.
Derfor er YAML nu en rekursiv forkortelse: YAML Ain't Markup Language. YAML understøttes af en lang række programmeringssprog.
Interessant nok er JSON en delmængde af YAML, så YAML-værktøjer kan behandle og producere JSON.
Læs mere på www.yaml.org
IETF
IETF er en løst organiseret sammenslutning af ingeniører, udviklere, forskere og andre, der bidrager til internettets udvikling ved at definere, udvikle og forbedre teknologistandarder for internettet. Første skridt for en teknologi til at blive en internet-standard er udgivelsen af en RFC (Request For Comments). En RFC lægges ud på IETF's website og interesserede kan kommentere den beskrevne teknologi.
Læs mere på www.ietf.org
Ajaj, ajay eller Ajax?
Ajax-navnet anvendes til at beskrive applikationer, der anvender asynkron Javascript og XML. Med den stigende anvendelse af JSON og YAML burde det måske omdøbes til Ajaj eller Ajay.
Udviklere, der leder efter bugs i Ajax-applikationer, vil måske finde det mere passende.
OriginalModTime: 18-08-2006 08:52:36