Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


Datenaustausch mit XML

Zusammenfassung:

XML ist ein wichtiges Datenformat, das beim Datenaustausch zwischen verschiedenen Applikationen oder Unternehmen zum Einsatz kommt.

Datenaustausch mit XML

Einen zwingenden Grund, XML verwenden zu müssen, gibt es nicht. Zahlreiche elektronische Datenaustauschprozesse arbeiten erfolgreich auch mit anderen Formaten, z.B. EDIFACT, IDoc, CSV, JSON, YAML, Flatfiles, und andere mehr.

Ginge es primär um Objektserialisierung, also um das Abspeichern und Einlesen bzw. Übermittlung von Informationen auf Objektebene derselben Klassen (Objekt A schreibt, Objekt B liest), dann wäre XML kaum die erste Wahl. Zahlreiche Klassen (z.B. ObjectOutputStream) stehen hier zur Verfügung, mit denen diese Übertragung ressourcenschonender erfolgen kann.

Ginge es um den betont ressourcenschonenden Datenaustausch in einer Client-Server-Lösung (z.B. serverseitiges Java, C#.NET, PHP; client-/browserseitiges Javascript; AJAX), dann wäre XML vermutlich immer noch nicht die erste Wahl. Hier steht als Alternative vor allem JSON zur Verfügung. JSON-Strings repräsentieren per Definition Javascript-Objekte, die unmittelbar objektorientiert (browserseitige DOM-Programmierung) verarbeitet werden können.

XML kann einen beträchtlichen Overhead aufweisen, der nicht zuletzt durch exzessive Verwendung von Namespaces entsteht. Diese wiederum können z.B. auf Versionierungs-Annotations in JAXB zurückzuführen sein. Die Verwendung von Namespaces (und damit das scheinbar sinnlose "Aufblähen" der XML-Dokumente) ist also keine fahrlässige Ressourcenverschwendung, sondern hat einen triftigen Grund. Würden wir andere Datenformate ebenfalls mit Namespaces fluten, wäre deren Vorteil des geringen Speicherverbrauchs wohl schnell dahin.

XML-Technologien kommen dort ins Spiel, wo es um Flexibilität und Präzision geht. Das Datenformat XML hat den Vorteil, daß höchst leistungsfähige Technologien wie XML Schema, XSLT, XQuery u.a.m. zur Strukturdefinition, Vermeidung von Bedeutungskonflikten bei Versionsunterschieden, oder zur Auswertung der XML Dokumente bereit stehen.

Durch hohe Flexibilität unterstützen sie die Implementierung von Business-Logik, die z.B. in Java, .NET u.a.m. codiert wird. (Ich würde nicht so weit gehen, XSLT oder XQuery zur Implementierung von Businesslogik heranzuziehen, obwohl ich das auch schon gesehen habe.)

XML wird interessant, wenn der Datentransfer nicht nur auf Objektebene (also von Objekt A an Objekt B derselben Klasse), sondern auch applikations- (A2A) bzw. systemübergreifend (B2B), funktionieren soll. Dabei sind viele Szenarien vorstellbar:

Auch für die hocheffiziente Aufbereitung von Datenbankabfragen in PDF-Dokumente, für die Datenkonvertierung unterschiedlichster Eingangs- in diverse Zielformate (jawohl, etwa von CSV nach EDIFACT, JSON oder andere!) bieten XML-Technologien effiziente und völlig ausreichende Unterstützung.

XML punktet mit universalen Zeichensätzen, ausgereiften Technologien zur Strukturdefinition, Datenvalidierung und -konvertierung (auch für andere Datenformate!), die breite Unterstützung durch verschiedene Programmiersprachen, Tools und Standards.

Wie auch anderswo, kann ein Java-Objekt der Klasse B, das ein XML-Dokument (gesendet vom Java-Objekt der Klasse A) in der Regel nicht ohne Zusatzaufwand einlesen. Es kann sein, daß ein Mapping erforderlich ist, das die Eingangsdaten in eine Struktur bringt, die durch Objekt B de-serialisiert werden kann.

Um diesen Zusatzaufwand geht es. Ändert sich die Klasse A in ihrer Struktur (Refactoring, Maintenance), so daß ihr "Serialisierungs-"Output sich ebenfalls verändert, dann kann eine Anpassung des Mappings erforderlich sein, damit Objekte der Klasse B den geänderten Stream auswerten können. Gleiches gilt, wenn Klasse B sich verändert: auch dann muß die Logik der Datenübernahme angepaßt werden.

Es ist einfach zu teuer, bei jeder Änderung dieser Datenstruktur hochbezahlte Java-Programmierer mit diesen Mapping-Anpassungen zu beauftragen.

qrpic/Datenaustausch.jpg

wg / 14. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de