Einer der Hype-Themen in der IT ist derzeit (2007) SOA, die Abkürzung für "Service oriented Architecture". Doch was ist das? Etliche abstruse Erklärungen wie etwa "SOA ist eine Erweiterung der Objektorientierung" stehen im Raum.
Hier sei SOA anhand eines fiktiven Beipsiels erläutert: Die bundesweit agierende Handelskette Quellmann verfügt über etliche Verkaufshäuser. Die DV-Aktivitäten werden zentral mit einem Mainframe gelöst, an den die Terminals der Verkaufshäuser angeschlossen sind. Um den Kunden auch Kreditkartenzahlung zu ermöglichen, verfügt die Mainframe-Software über ein Modul CCP (Creditcard-payment). Diese Modul wickelt die Kommunikation mit dem Netzbetreiber ab und konvertiert die interne Datenhaltung in dessen Protokoll.
Zur Erweiterung ermöglicht Quellmann nun auch Fremdfirmen, im Quellmann-Auftrag zu verkaufen. Dazu hat Quellmann eine neuen SW entwickeln lassen. Diesmal keine Mainframe-Cobol-Lösung sondern mit C++ auf einem UNIX-System. Auch hier soll wieder Kreditkartenzahlung möglich sein, wofür wieder ein CCP-Modul geschrieben wird - in der Funktion fast identisch mit dem der Mainframe-Lösung, jetzt aber in einer anderen Programmiersprache entwickelt.
Schliesslich möchte Quellmann auch vom Internet profitieren, lässt eine neue Lösung (diesmal in Java) entwickeln. Auch hier wieder: Kreditkartenzahlung über ein Modul ähnlich der Mainframe-Lösung.
Wenn nun der Netzbetreiber wechselt, muss Quellmann drei SW-Systeme ändern lassen. Auch der Wechsel in einen Testbetrieb, muss in drei Systemen vollzogen werden.
Genau hier setzt nun der SOA-Gedanka an: Statt in drei Systemen (mit drei Programmiersprachen) lässt Quellmann eine neue Kreditkarten-Lösung realisieren. Diese Lösung ist eine eigenständige Anwendung, die innerhalb des Unternehmens als Netzwerkdienst erreichbar ist. Die drei bestehenden Anwendungen der verschiedenen Vertriebskanäle werden dahingehend geändert, dass sie nicht mehr selbstständig die Kommunikation und die Protokollwandlung mit dem Netzbetreiber durchführen, sondern die Kerditkartenzahlung per internem Protokoll dem Kreditkarten-Service anliefern (per Netzwerkverbindung). Nur dieser Service enthält alle Spezifika für die Kommunikation mit dem Netzbetreiber. Wenn Quellmann nun z.B. den Netzbetreiber wechseln möchte, muss dies nur an einer einzigen Stelle vollzogen werden. Auch die Umstellung auf Testbetrieb erfolgt nur an einer Stelle. Neue Funktionen - wie z.B. CC-Accounting - einführen? Nur an einer einzigen Stelle!
Die Vorteile von SOA zusammengefasst: - Weniger Programmieraufwand - Weniger Wartungsaufwand - Schnellere Reaktionszeit
SOA ist eine Grundhaltung beim Design komplexer SW-Systeme, die genau das erreicht, was heutzutage alle wollen: Geld sparen!
|