SOAP, JSON oder wellformed XML für Ajax?

Für die Entwicklung von serverseitigen Skripten stehe ich derzeit an einem Entscheidungsproblem: Welches Format soll ich nutzen um serverseitig meien Daten an Ajax-Skripten zu liefern?

IMHO stehen zur Verfügung: SOAP, normales (wellformed) XML oder JSON.

SOAP hätte sicherlich den besten Effekt bei der Nutzbarkeit auch für andere Softwaresysteme, welche ebenfalls Daten abfragen.
Leider bringt es einen recht großen Overhead mit für die Strukturierung. Zudem sollte man dann auch gleich ein WSDL mit implementieren, damit es sich auch wirklich lohnt.

Normales (wellformed) XML hat wie SOAP das Problem des Overheads. Jedoch wäre dieser kleiner wenn man die bei SOAP verbindlichen Standards vernachlässigt und nur Wert darauf legt, daß der Code well formated ist. Für Datenaustausch im mittleren Rahmen wäre dies sicherlich vorteilhaft. Was aber auch gleich zum Problem wird, wenn man später ausbauen will: Zwar ist die Syntax klar verständlich, aber man muss Wissen des Entwicklers mitbringen (und bei zeitlich späteren Entwicklungen im Kopf behalten) um die Attribute die man anfragen kann, zu kennen.

JSON bietet den Vorteil, das es menschenlesbar ist und weniger Overhead hat. Das Parsing ist damit auf Client- und Serverseite schneller als bei XML und erst recht bei SOAP.
Doch bei der Frage des spätere Ausbaus für weitere Funktionen, kommt man erst recht nicht um interenes Wissen drumherum.
Eine DTD, die man bei der einfachen XML-Variante noch bauen könnte, gibt es nicht. Ganz zu schweigen von einem WSDL-ähnlichen Dienst. Wenn es sowas geben sollte, dann müsste man das gleich am Anfang mitcoden. Was dann wieder bei ganz kleinen und schnell zu machenden Lösungen wieder zu aufwendig wäre…

Serverseitig werden mir für alle 3 Formate entsprechende Bibliotheken zur Verfügung gestellt. (CPAN: JSON, XML, SOAP)
Alle 3 Module arbeiten nach ähnlichen Prinzip: Aus einem RefHash wird ein Objekt des jeweiligen Formats erzeugt.
Das läuft dann weitgehend transparent ab. Von daher muss man an dieser Stelle nicht lang überlegen.
Allenfalls wäre die Frage nach der Performance wichtig.
Nach meinen bisherigen Erfahrungen wird hier (auch bei Nutzung der C-Bibliothek libXML für die XML-Module) die Erzeugung des JSON-Formats gewinnen.

Wenn ich clientseitig auf jQuery setzen möchte, liefert mir dieses von Haus aus Parser für XML, JSON und HTML mit. Bei dem XML-Parser wird von einfachen XML ausgegangen. Ein Webservice/WSDL wird nicht abgefragt sondern müsste über Plugins erst nachgecodet werden.
Dies spricht also für die beiden Varianten einfaches XML und JSON.

Lange Schrift, kurzer Sinn: Kann man einen allgemein gültigen „Standard“ finden, wie man die Daten serverseitige für Ajax-Anwendungen ausliefert oder läuft es dann doch daraus hinaus, daß man rein auf die Performance oder die Nachhaltigkeit der Anwendung schaut und deswegen fallweise entscheidet?

2 Kommentare zu “SOAP, JSON oder wellformed XML für Ajax?

Kommentarfunktion ist geschlossen.

  1. Moin,

    meine ersten Ajax-Anwendungen baute ich mit ‚req.responseText‘, die letzte mit ‚req.responseXML‘.

    Aus XML habe ich dann eine erzeugt für die Schlagwortsuche auf meiner Website, das war ein ganz schönes Geficke, das Scipt zu schreiben ;-)

    Ajax-Vorteile aus meiner Sicht:
    – komplizierte Berechnungen erfolgen serverseitig, somit bleibt der Algorithmus versteckt (ist ja mein know-how),
    – asynchrones Abkoppeln serverseitiger Prozesse, ohne das Laden einer Seite auszubremsen, z.B. Bereinigen einer DB (abgelaufene Sessions löschen, Zeitenaufrufzähler).

    Ansonsten sehe ich absolut keinen Grund, meine bisherigen CGI’s auf Ajax umzuschreiben. Für neue Scripts: siehe Vorteile.