Forskellene
XML-RPC, SOAP, ebXML, BizTalk, WSDL, UDDI, WDDX - hvis man ikke er forvirret allerede, så kan man hurtigt blive det. Forkortelserne dækker over forskellige transportprotokoller for XML. De har alle større eller mindre ligheder, og det er ikke lige til at sige, hvilken hest man skal satse på.
HTTP under neden
I og for sig burde det ikke være så kompliceret. Alle XML-protokollerne benytter sig af HTTP som transportlag. HTTP, Hypertext Transfer Protocol, er den overførselsstandard, der ligger nede under World Wide Web. HTTP har en lang række mekanismer, der gør den velegnet til overførsel, ikke bare af HTML-sider og web-elementer, men alle typer af dokumenter, herunder XML-data.
I forbindelse med XML findes der en lang række protokoller, hvoraf blot nogle er angivet i indledningen. De benytter alle HTTP som transportlag. HTTP-protokollen er opbygget omkring en forespørgsel/svar-model, som oprindeligt var designet til mødet imellem webbrowseren og webserveren. Browseren, eller bruger-agenten som det hedder formelt, forespørger en bestemt side, og serveren svarer. HTTP-protokollen blev hurtigt udvidet med muligheder for at sende data med en forespørgsel. Det kendes for eksempel fra websider, hvor man kan uploade filer. Ved hjælp af POST-kommandoen kan data sendes som en del af forespørgslen, og næsten alle XML-protokollerne benytter denne metode. Svaret er et almindeligt HTTP-svar, hvor indholdet, body-delen, er XML.
Forskellen i XML-protokollerne ligger i, hvorledes denne XML-del er udformet. Umiddelbart kunne det se ud som om, at man blot kunne definere sin egen specifikation for udveksling af data. Men der er en række generelle forhold, som de fleste protokoller altid vil adressere, og her opstår behovet for standardisering. Et eksempel er håndtering af tilstande. HTTP-protokollen indeholder et lag for tilstandshåndtering, cookies, men disse meta-lag befinder sig i header-delen af HTTP-forespørgsler eller -svar, og en mere homogen løsning er at indbefatte tilstandsinformationen i selve de XML-data, der udveksles.
Anvendelser
Eric Prud'hommeaux, som er ansat af MIT (Massachusetts Institute of Technology) og W3-konsortiet, har foretaget en analyse af hvilke behov, de enkelte protokoller forsøger at imødekomme, ved at opdele og karakterisere disse protokoller. Den følgende beskrivelse bygger på hans iagttagelser.
Protokollerne kan opdeles i generiske protokoller, som ikke er dedikeret til en bestemt arkitektur, og applikationsprotokoller, som er skræddersyede til bestemte applikationer. Derudover kan protokollerne karakteriseres ved hvilke facetter, de indehaver. Blandt de facetter Prud'hommeaux nævner er:
- Serialisering
Protokollen har et format til at beskrive værdier med datatyper, og objekter. - Protokol
Navnet er lidt forvirrende, men dækker over, hvorvidt protokollen indeholder tilstandsinformation. - Interface discovery
Maskin-læsbar information, som sætter applikationer i stand til at tilgå og fortolke data. - Transaktioner
Protokollen understøtter transaktionsstyring. - Remote procedure
Mulighed for at invokere metoder på et fjernt system.
Ingen superprotokol
Prud'hommeaux har skrevet en sammenfatning af protokollerne, som vi her bringer et udsnit af:
Protokol | Organisation | Primær anvendelse | Facetter |
---|---|---|---|
XML-RPC | Userland | Fjerninvokering, udveksling af "typede" data og objekter |
|
SOAP | Ariba, IBM, Microsoft, SAP m.fl. | Mange anvendelser |
|
WDDX | Allaire | Udveksling af "typede" data og objekter |
|
XMI | Unisys, Fujitsu, IBM, Oracle m.fl. | UML-baseret udveksling |
|
ebXML | UN/CEFACT oasis | E-handel |
|
BizTalk | Microsoft | E-handel |
|
Superprotokollen lader vente på sig
Mange har forventet, at W3-konsortiet ville udvikle en XML-superprotokol, baseret på SOAP 1.2, men en sådan standard er ikke umiddelbart i horisonten. Som skemaet før viste, er der mange ting at tage hensyn til, og det er ikke ligetil at pakke alle behovene under en paraply.
Foreløbig har W3C nedsat en arbejdsgruppe, der skal kigge på spørgsmålene. Indtil videre har det givet anledning til en del arbejdspapirer omkring hvad en sådan protokol skal omfatte. Muligvis bliver resultatet ikke én protokol, men en række specifikationer til, hvad XML-protokoller skal indbefatte. Arbejdsgruppen har udarbejdet et papir, XML Protocol Abstract Model , der, som navnet siger, angiver en abstrakt model for XML-protokoller. Man kan læse mere om gruppen og dets arbejde på W3C's hjemmeside.