SOA (serviceorientierte Architektur)

menu icon

SOA (serviceorientierte Architektur)

Erkunden Sie SOA (serviceorientierte Architektur), ein wichtiger Schritt in der Entwicklung der Anwendungsentwicklung und -integration.

Was ist SOA (serviceorientierte Architektur)?

SOA, oder serviceorientierte Architektur, definiert eine Möglichkeit, Softwarekomponenten über Serviceschnittstellen wiederverwendbar zu machen. Diese Schnittstellen nutzen gemeinsame Kommunikationsstandards so, dass sie schnell in neue Anwendungen integriert werden können, ohne dass sie jedes Mal eine tiefe Integration durchführen müssen.

Jeder Service in einer SOA verkörpert den Code und die Datenintegrationen, die erforderlich sind, um eine vollständige, diskrete Geschäftsfunktion auszuführen (z. B. die Überprüfung der Kreditwürdigkeit eines Kunden, die Berechnung einer monatlichen Kreditrate oder die Bearbeitung eines Hypothekenantrags). Die Serviceschnittstellen bieten eine lose Kopplung, d. h., sie können mit wenig oder gar keinem Wissen darüber aufgerufen werden, wie die Integration darunter implementiert ist. Die Dienste werden über Standard-Netzwerkprotokolle – wie SOAP (Simple Object Access Protocol)/HTTP oder JSON/HTTP – bereitgestellt, um Anfragen zum Lesen oder Ändern von Daten zu senden. Die Services werden so veröffentlicht, dass Entwickler sie schnell finden und wiederverwenden können, um neue Anwendungen zusammenzustellen.

Diese Services können von Grund auf neu erstellt werden, werden jedoch häufig durch die Bereitstellung von Funktionen aus traditionellen Systemen des Datensatzes als Serviceschnittstellen erstellt.

Auf diese Weise stellt SOA einen wichtigen Schritt in der Evolution der Anwendungsentwicklung und -integration der letzten Jahrzehnte dar. Bevor SOA in den späten 1990er Jahren aufkam, erforderte die Verbindung einer Anwendung mit Daten oder Funktionen, die in einem anderen System untergebracht waren, eine komplexe Punkt-zu-Punkt-Integration – eine Integration, die Entwickler bei jedem neuen Entwicklungsprojekt ganz oder teilweise neu erstellen mussten. Durch die Bereitstellung dieser Funktionen über SOA entfällt die Notwendigkeit, die tiefe Integration jedes Mal neu zu erstellen.

Beachten Sie, dass SOA und die neueren Microservices-Architekturen zwar viele Begriffe gemeinsam haben, aber nur lose miteinander verwandt sind und in der Tat in unterschiedlichen Anwendungsbereichen verwendet werden, was später in diesem Artikel erläutert wird.

Was ist ein ESB?

Ein ESB, oder Enterprise Service Bus, ist ein Muster, bei dem eine zentrale Komponente die Integration zu den Backend-Systemen durchführt und diese Integrationen dann als Service-Schnittstellen zur Verfügung stellt. Sie führt die Übersetzung von Datenmodellen, tiefe Konnektivität, Routing und möglicherweise die Komposition mehrerer Anfragen durch und stellt diese als eine einzige Service-Schnittstelle zur Wiederverwendung durch neue Anwendungen zur Verfügung. Das ESB-Muster wird in der Regel mit einer speziell entwickelten Integrationslaufzeit und Werkzeugen implementiert, die für die oben genannten Fähigkeiten gut geeignet sind und die bestmögliche Produktivität gewährleisten.

Theoretisch könnte man eine SOA auch ohne einen ESB implementieren, aber die Anwendungseigentümer müssten jeweils einen eigenen Weg finden, um die Service-Schnittstellen freizugeben, was eine Menge Arbeit bedeutet (selbst wenn die Schnittstellen letztendlich wiederverwendbar sind) und eine erhebliche Herausforderung für die Wartung in der Zukunft darstellt. Tatsächlich wurden ESBs schließlich als ein solches De-facto-Element jeder SOA-Implementierung angesehen, dass die beiden Begriffe manchmal synonym verwendet werden, was zu Verwirrung führt.

Erfahren Sie mehr über ESBs, indem Sie „Einführung in ESB (Enterprise Service Bus)“ lesen.

Vorteile von SOA

Im Vergleich zu den Architekturen, die ihr vorausgingen, bietet SOA erhebliche Vorteile für Unternehmen:

  • Höhere geschäftliche Agilität; kürzere Entwicklungszeit: Die Effizienz der Zusammenstellung von Anwendungen aus wiederverwendbaren Serviceschnittstellen, anstatt sie bei jedem neuen Entwicklungsprojekt neu zu schreiben und zu integrieren, ermöglicht es Entwicklern, Anwendungen viel schneller als Reaktion auf neue Geschäftsmöglichkeiten zu erstellen.
  • Fähigkeit, traditionelle Funktionalität in neuen Märkten zu nutzen: Eine gut durchdachte SOA ermöglicht es Entwicklern, Funktionalität, die in einer Computerplattform oder -umgebung ‚eingesperrt‘ ist, einfach auf neue Umgebungen und Märkte zu übertragen. Zum Beispiel haben viele Unternehmen SOA genutzt, um Funktionen von Mainframe-basierten Finanzsystemen im Web zu veröffentlichen und so ihren Kunden den Zugang zu Prozessen und Informationen zu ermöglichen, die zuvor nur durch direkte Interaktion mit den Mitarbeitern oder Geschäftspartnern des Unternehmens zugänglich waren.
  • Verbesserte Zusammenarbeit zwischen Unternehmen und IT: In einer SOA können Services in den Geschäftsbedingungen definiert werden (z. B. ‚Versicherungsangebot generieren‘ oder ‚ROI für Investitionskapital berechnen‘). Dies ermöglicht es Geschäftsanalysten effektiver mit Entwicklern zusammenarbeiten, um wichtige Erkenntnisse zu gewinnen – z. B. den Umfang eines durch einen Service definierten Geschäftsprozesses oder die geschäftlichen Auswirkungen der Änderung eines Prozesses –, die zu einem besseren Ergebnis führen können.

SOA-Beispiele

Bis 2010 liefen SOA-Implementierungen bei führenden Unternehmen in praktisch allen Branchen auf Hochtouren. Beispiele:

  • Delaware Electric wendete SOA an, um Systeme zu integrieren, die zuvor nicht miteinander kommunizierten. Das Ergebnis waren Entwicklungseffizienzen, die dem Unternehmen halfen, während eines fünfjährigen, staatlich verordneten Einfrierens der Strompreise zahlungsfähig zu bleiben.
  • Cisco hat SOA eingeführt, um sicherzustellen, dass die Produktbestellung über alle Produkte und Kanäle hinweg konsistent ist, indem die Bestellprozesse als Services dargestellt werden, die die Abteilungen, Akquisitionen und Geschäftspartner von Cisco in ihre Websites einbinden können.
  • Independence Blue Cross (IBC) in Philadelphia implementierte eine SOA, um sicherzustellen, dass die verschiedenen Komponenten, die mit Patientendaten zu tun haben – IBC-Kundendienstmitarbeiter, Arztpraxen, IBC-Website-Benutzer – mit der gleichen Datenquelle arbeiten (eine „Single Version of the Truth“).

SOA vs. Microservices

Experten haben ein paar Tausend gedruckte und digitale Seiten gefüllt, um SOA und Microservices zu vergleichen und die Feinheiten ihrer Beziehung zueinander zu definieren. Für die Zwecke dieses Artikels sind die Hauptunterschiede zwischen beiden die Kopplung von Komponenten und der Anwendungsbereich:

  • SOA ist ein unternehmensweites Konzept. Sie ermöglicht es, bestehende Anwendungen über lose gekoppelte Schnittstellen, die jeweils einer Geschäftsfunktion entsprechen, offenzulegen, sodass Anwendungen in einem Teil eines erweiterten Unternehmens die Funktionalität in anderen Anwendungen wiederverwenden können.
  • Die Microservices-Architektur ist ein anwendungsspezifisches Konzept. Sie ermöglicht es, die Interna einer einzelnen Anwendung in kleine Teile zu zerlegen, die unabhängig voneinander geändert, skaliert und verwaltet werden können. Sie definiert nicht, wie Anwendungen miteinander kommunizieren – da sind wir wieder beim Unternehmensumfang der von SOA bereitgestellten Service-Schnittstellen.

Die Microservices-Architektur entstand und gewann mit dem Aufkommen von Virtualisierung, Cloud-Computing, agilen Entwicklungspraktiken und DevOps an Bedeutung. Die meisten Vorteile von Microservices ergeben sich in diesem Zusammenhang aus der vollständigen Entkopplung der Komponenten, die das Folgende vereinfacht und verbessert:

  • Agilität und Produktivität der Entwickler: Microservices ermöglichen es Entwicklern, neue Technologien in einen Teil der Anwendung einzubinden, während der Rest der Anwendung unberührt bleibt. Jede Komponente kann unabhängig von den anderen geändert, getestet und implementiert werden, was die Iterationszyklen beschleunigt.
  • Skalierbarkeit: Microservices können die Skalierbarkeit der Cloud maximal ausnutzen – jede Komponente kann unabhängig von den anderen skaliert werden, um schnellstmöglich auf Workload-Anforderungen zu reagieren und die Rechenressourcen möglichst effizient zu nutzen.
  • Ausfallsicherheit: Auch hier hat der Ausfall eines Microservices dank der Entkopplung keine Auswirkungen auf die anderen. Und jeder Microservice kann seine eigenen Verfügbarkeitsanforderungen erfüllen, ohne die anderen Komponenten oder die gesamte Anwendung an die größten gemeinsamen Verfügbarkeitsanforderungen zu binden.

Für einen tieferen Einblick in die Unterschiede zwischen SOA und Microservices siehe „SOA vs. Microservices: Was ist der Unterschied?

Auf die gleiche Weise, wie die Microservices-Architektur das Potenzial hat, Verbesserungen in Bezug auf Agilität, Skalierbarkeit und Ausfallsicherheit für das Anwendungsdesign zu bringen, können dieselben Techniken auch auf die Integration angewendet werden. Dies ist wichtig, weil das stark zentralisierte ESB-Muster und das damit verbundene zentralisierte Team von Integrationsspezialisten mit der Zeit zu einem Engpass werden kann. In Anlehnung an Microservices-Prinzipien können wir den ESB potenziell in differenziertere, dezentralisierte Integrationen aufteilen. Dies ist eine der Kernprämissen hinter der agilen Integration.

SOA und IBM Cloud

Wenn Ihr Unternehmen seine IT-Infrastruktur auf einen hybriden Cloud-Ansatz umstellt, ist die Wahrscheinlichkeit groß, dass Sie eine Vielzahl von Workloads, einschließlich solcher, die auf SOA basieren, auf leichtere und flexiblere Cloudbereitstellungsmodelle umstellen werden. IBM ist einer der Pioniere der SOA, und die IBM Cloud-Angebote und -Services können Ihre bestehenden SOA-Investitionen nutzen und auf die Cloud ausweiten.

Machen Sie den nächsten Schritt:

SOA bietet die Möglichkeit, Services in verschiedenen Kanälen verwendbar zu machen, unabhängig davon, wo sich die Kernanwendung oder die Datenbank befindet. Dies hilft Ihrem Unternehmen, Investitionen zu nutzen, während es Anwendungen auf dem Weg zur Cloud modernisiert.

Starten Sie noch  heute mit einem IBM Cloud-Konto.