Basic personligt

Daniels personliga blogg

Snälla SOAP, dö!

Bäst som man sitter och undrar varför så liten del av gammelmedia bryr sig om att FRA bland annat vill avskaffa meddelarskyddet, hittar man en nyhet som gör en liten nörd på bättre humör igen. Cisco har gjort ett eget protokoll för att kommunicera mellan program på olika maskiner, kallat Etch. Corba trodde jag dog för 10 år sedan, men att främsta konkurrenten är SOAP stämmer nog bra. Vilket i sig är ganska konstigt, eftersom det är så pass dåligt.

Ja visst, basen är HTTP och XML, och så långt är det ju bra. Det blir inte supersnabbt, men borde vara portabelt. Bortsett då från att allt ”kul” man vill göra finns i 18 olika versioner. Antingen ska t.ex. användarnamn och lösenord ligga i en HTTP-header, eller så ska det ligger i en ”Head”-sektion, eller som en cookie efter en normal login-fråga. Sannolikheten för att de två system som ska prata med varandra stödjer samma version är noll.

Samma sak med lite mer komplexa strukturer. Ja visst, att skicka en integer och en sträng för att göra ett ”Hello World” fungerar jättebra. Men vill jag skicka en egen struktur med några fält försvinner 75% av de SOAP-paket som finns. Vill jag dessutom skicka subklasser eller strukturer i strukturer, försvinner 20% till. Sedan vill jag skicka enums, t.ex. en förbestämd lista med värden, som ”0, 90, 180, 270”, blir man effektivt av med de sista 5%. Inga speciellt avancerade saker, bara snäppet mer än ”enklaste möjliga”, varpå allting ramlar ihop.

Att två SOAP-system ska kunna prata med varandra enbart baserat på att de ”kan prata SOAP” är lika fånigt som att tro att en svensk skulle kunna förstå kinesiska, eftersom båda språken använder vokaler och konsonanter. SOAP är ungefär som etanol. Kanske en bra idé från början, men när man försöker skala upp det och använda det i verkligheten, går allting sönder.

I version två av Rails gick de över till REST istället, och alla vettiga system pratar helst XMLRPC. Mycket enklare, och därför med väldigt mycket mer kompletta implementation överallt. Får hoppas att Etch når samma miniminivå på täckningsgrad, så att alla system faktiskt kan prata med varandra utan att behöva begränsa sig till den innersta procenten av funktioner som i SOAP. Jag ger härmed Etch mina varmaste lyckönskningar, och ser fram emot en tydlig specifikation och fungerande referensimplementationer i alla normala språk.

Andra bloggar om: , , , , , , , .

Annonser

maj 27, 2008 - Posted by | idioti, teknik, Uncategorized

Inga kommentarer ännu.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s