Lädt…

Serviceorientierte Architektur (SOA)

Nur keine Missverständnisse: Serviceorientierte Architektur beschäftigt sich nicht mit der Planung von Gebäuden. SOA, so die Abkürzung, sorgt vielmehr für die clevere Koordination in der Unternehmens-IT. Gut gemacht, greifen damit elektronische Geschäftsprozesse schneller und automatisierter ineinander. Und das stärkt die Wettbewerbsfähigkeit – auch im Mittelstand.

SOA richtig verstehen und verwenden

Bisherige IT-Landschaften sind von verschiedenen Anwendungen geprägt, die viel Wissen über einen speziellen Bereich des Unternehmens enthalten. Selbst wenn diese Anwendungen sauber aufgebaut sein sollten, ist es meistens schwierig, Teile der Anwendungen für andere Zwecke einzusetzen. Das liegt daran, dass kaum ein Projekt ohne massiven Druck von außen wiederverwendbare Komponenten für andere Projekte entwickeln wird. Die Entwicklung solcher Komponenten ist aufwendig und schwer planbar. Solche Komponenten sind daher nicht im Interesse eines Teams, sein Projekt zeitgerecht fertig zu stellen. Im Gegenteil: Nicht selten entwerfen die Entwicklungsteams einzelne Teile ihrer Anwendungen so, dass eine Wiederverwendung sogar innerhalb der eigenen Anwendung schwierig ist. Die Folge dieser Fehlentwicklung: Es entstehen Anwendungslandschaften mit vielen Redundanzen. Die Wartung ist solcher Anwendungen ist aufwendig, Änderungen und Neuentwicklungen oftmals sehr ineffizient.

Ende des Burgendenkens

Serviceorientierte Architekturen sind angetreten, dieses "Burgendenken" zu beenden. Eine serviceorientierte Architektur legt hierzu die verborgenen Funktionen innerhalb der Anwendungen bloß und versucht, sie für alle Anwendungen zu öffnen. Das wichtigste Rezept hierzu ist eigentlich sehr einfach und altbekannt: Die Anwendungen werden in wiederverwendbare Services aufgeteilt, zu denen öffentliche Schnittstellen existieren.

Vorteile: Zentrale Verantwortung

Was sind die Vorteile eines solchen Services? Das Wissen über die Dokumentgenerierung liegt bei einem Team, das den Service verwaltet, und ist nicht mehr verstreut in diversen Anwendungsteams. Es gibt eine zentrale Stelle, die gewartet und verbessert werden muss. Es ist viel lohnender, den Service hochverfügbar auszulegen, so dass viele Verbraucher gleichzeitig darauf zugreifen können. Würde das eine der Anwendungen selbst übernehmen, müsste sie sich mit einer Infrastruktur beschäftigen, die abseits des Tagesgeschäfts liegt. Und nicht zuletzt gibt es strategische Pluspunkte: Dem Servicekonsumenten ist vollkommen egal, welche Implementierung mit welchem Framework sich hinter dem Service verbirgt. Er hat eine generische Schnittstelle, die für ihn das Maß der Dinge ist. Ein gutes Servicedesign erlaubt es der IT, Datenbankschemata, DBMS und Frameworks einfach hinter einer Fassade auszutauschen, wenn das aus strategischen und Kostengesichtspunkten angesagt ist.

Nachteile: Der Startaufwand

Was sind die Nachteile eines solchen Services? Der größte Nachteil ist, dass es zunächst länger dauern wird, einen Service zu etablieren. Dafür gibt es mehrere Gründe, zum Beispiel die Abstimmung der Anforderungen. Auch das Servicedesign ist anspruchsvoller als die spezielle Schnittstelle innerhalb einer Anwendung. Ein weiteres Problem ist die Verfügbarkeit der Services. Jede Anwendung möchte dem Endanwender natürlich mindestens die Verfügbarkeit der Servicefunktion garantieren, über den die gesamten Anwendung verfügt. Die Praxis zeigt, dass sich die Anforderungen verschiedener Anwendungen eines großen Unternehmens selten unter einem Hut bringen lassen. Zum Beispiel ist eine häufige Anforderung an Services, dass diese generell hochverfügbar sind, obwohl sich das aus Kostengründen natürlich ausschliesst."

SOA ist aktueller denn je, weil einfacher umsetzbar

Die ganze Diskussion über SOA ist natürlich überhaupt nichts Neues. Verteilte Anwendungen auf Servicebasis sind so alt wie das Internet. So wurde bereits zu Zeiten von CORBA über die gleichen Services und ihre Verfügbarkeit diskutiert, über die wir jetzt im Rahmen einer SOA-Architektur reden. Wo ist der Unterschied? Der Unterschied ist, dass es deutlich einfacher geworden ist, solche "Servicelandschaften" aufzubauen, da mittlerweile leistungsfähigere Bausteine und Werkzeuge zum Aufbau einer serviceorientierten Architektur zur Verfügung stehen: moderne Services, Client-Anwendungen, Serviceverträge, Enterprise Service Bus, BPM, Mediation, Governance, Entwicklungsumgebungen sowie Frameworks und Konnektoren.

Die Bestandteile einer SOA im Überblick

Die SOA-Bausteine: Moderne Services Moderne Services sind das zentrale Element einer serviceorientierten Architektur. Sie können zum Beispiel als SOAP- oder Rest-Web-Services mit der Unterstützung diverser Entwicklungsumgebungen und Frameworks vergleichsweise einfach implementiert werden. Einige SOA-Suiten lassen zu, Services grafisch zu implementieren (siehe etwa Screenshot "Flowservices" auf der vorherigen Seite) Dies erleichtert Entwicklern den Einstieg, die nicht über viel Erfahrung mit C# oder Java verfügen. Solche Services bieten einzelne Dienstleistungen wie die eingangs erwähnte Dokumentgenerierung an. Anwendungen, die solche Dienstleistungen offerieren, bezeichnet man als Service-Provider oder Serviceanbieter. Serviceanbieter müssen nicht ausschließlich aus dem eigenen Unternehmen kommen. Es gibt eine Vielzahl externe Webservices wie zum Beispiel Wetterservices, Landkartenservices, Services für die Währungsumrechnung und zum Anzeigen von Börsenkursen.

Kommentare (9)

  1. jogo das Tartarugas Ninjas de 2 jogadores

    Ԝay cool! Ⴝome vеry valid pⲟints! І аppreciate у᧐u writing
    this ѡrite-up and tһe rest of the site is also veгy ɡood.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

IHRE NACHRICHT AN UNS
error: Content is protected !!