Startseite
Themen
Was ist SOA (serviceorientierte Architektur)?
SOA, oder serviceorientierte Architektur, definiert eine Möglichkeit, Softwarekomponenten über Serviceschnittstellen wiederverwendbar und interoperabel zu machen. Services verwenden gemeinsame Schnittstellenstandards und ein Architekturmuster, sodass sie schnell in neue Anwendungen integriert werden können. Dadurch wird der Anwendungsentwickler von Aufgaben entlastet, die er zuvor neu entwickeln oder bestehende Funktionen duplizieren musste, oder er musste wissen, wie er eine Verbindung oder Interoperabilität mit bestehenden Funktionen herstellen kann.
Jeder Service in einer SOA enthält den Code und die Daten, die zur Ausführung einer vollständigen, diskreten Geschäftsfunktion erforderlich sind (z. B. Prüfung der Kreditwürdigkeit eines Kunden, Berechnung einer monatlichen Kreditrate oder 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 der Service darunter implementiert ist, wodurch die Abhängigkeiten zwischen den Anwendungen verringert werden.
Diese Benutzerschnittstelle ist ein Servicevertrag zwischen dem Serviceanbieter und dem Servicekonsument. Anwendungen hinter der Serviceschnittstelle können in Java, Microsoft, Net, Cobol oder anderen Programmiersprachen geschrieben werden und werden durch einen Anbieter (z. B. SAP), SaaS-Anwendungen (z. B. Salesforce CRM) als gepackte Softwareanwendungen bereitgestellt oder als Open-Source-Anwendungen bezogen. Serviceschnittstellen werden häufig mithilfe der Web-Service Definition Language (WSDL) definiert, einer Standard-Tag-Struktur auf der Grundlage von XML (Extensible Markup Language).
Die Services werden über Standard-Netzprotokolle wie SOAP (Simple Object Access Protocol)/HTTP oder Restful HTTP (JSON/HTTP) bereitgestellt, um Anfragen zum Lesen oder Ändern von Daten zu senden. Die Service-Governance steuert den Lebenszyklus der Entwicklung, und in der entsprechenden Phase werden die Services in einer Registry veröffentlicht, die es den Entwicklern ermöglicht, sie schnell zu finden und für die Zusammenstellung neuer Anwendungen oder Geschäftsprozesse erneut zu nutzen.
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 entstand, 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. Die Bereitstellung dieser Funktionen durch SOA-Services ermöglichte es dem Entwickler, einfach die vorhandenen Funktionen wiederzuverwenden und eine Verbindung über die SOA-ESB-Architekturherzustellen (siehe unten).
Obwohl SOA und die neuere Microservices-Architektur viele Begriffe gemeinsam haben (z. B. „Service“ und „Architektur“), sind sie nur lose miteinander verwandt und agieren in der Tat in unterschiedlichen Bereichen, wie später in diesem Artikel erläutert wird.
Ein ESB, oder Enterprise Service Bus, ist ein Architekturmuster, bei dem eine zentralisierte Softwarekomponente Integrationen zwischen Anwendungen durchführt. Es führt Transformationen von Datenmodellen durch, verwaltet die Konnektivität/Nachrichtenübermittlung, führt das Routing durch, konvertiert Kommunikationsprotokolle und verwaltet möglicherweise die Zusammenstellung mehrerer Anfragen. Die ESB kann diese Integrationen und Transformationen als Serviceschnittstelle zur Wiederverwendung durch neue Anwendungen zur Verfügung stellen. Das ESB-Muster wird in der Regel mit einer speziell entwickelten Integrationslaufzeit und einem Toolset implementiert, das die bestmögliche Produktivität gewährleistet.
Es ist möglich, ein SOA ohne ein ESB zu implementieren, aber das wäre gleichbedeutend mit einem Bündel von Services. Jeder Anwendungseigner müsste eine direkte Verbindung zu jedem von ihm benötigten Dienst herstellen und die erforderlichen Datentransformationen vornehmen, um jede der Serviceschnittstellen zu erfüllen. Dies ist eine Menge Arbeit (selbst wenn die Schnittstellen wiederverwendbar sind) und schafft ein erhebliches Wartungsproblem in der Zukunft, da jede Verbindung von Punkt zu Punkt geht. Tatsächlich wurden ESBs schließlich als De-facto-Element jeder SOA-Implementierung angesehen, dass die beiden Begriffe manchmal synonym verwendet werden, was zu Verwirrung führt.
Im Vergleich zu den Architekturen, die ihr vorausgingen, bietet SOA erhebliche Vorteile für Unternehmen:
Bis 2010 liefen SOA-Implementierungen bei führenden Unternehmen in praktisch allen Branchen auf Hochtouren. Zum Beispiel:
Experten haben einige tausend gedruckte und digitale Seiten damit gefüllt, SOA und Microservices zu vergleichen und die Feinheiten ihrer Beziehung zueinander zu definieren. Dieser Artikel geht auf die Hauptunterschiede zwischen beiden ein – die Kopplung von Komponenten und der Anwendungsbereich:
Die Microservices-Architektur ist mit dem Aufkommen von Virtualisierung, Cloud-Computing, agilen Entwicklungspraktiken und DevOps entstanden und hat an Bedeutung gewonnen. Die meisten Vorteile von Microservices in diesem Zusammenhang ergeben sich aus der Entkopplung der Komponenten, die Folgendes vereinfacht und verbessert:
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 Grundvoraussetzungen für die agile Integration.
Verbinden von Anwendungen, Services und Daten mit IBM Cloud Pak for Integration, einer der umfassendsten Integrationsplattformen auf dem Markt.
Verbinden Sie Apps und Daten mit einer leistungsfähigen, KI-automatisierten Software zur Anwendungsintegration.
IBM® API Connect ist eine sichere API-Managementlösung, die eine intuitive Erfahrung nutzt, um dabei zu helfen APIs konsistent zu erstellen, verwalten, sichern, teilen und vermarkten.
Erfahren Sie grundlegende Informationen zur serviceorientierten Architektur (SOA) und Microservices, ihre wichtigen Unterschiede und welcher Ansatz für Ihre Situation am besten geeignet ist.
In diesem Leitfaden erfahren Sie, wie Sie Ihre App-Modernisierung beschleunigen, die Produktivität der Entwickler steigern und die betriebliche Effizienz und Standardisierung verbessern können.
Erfahren Sie mehr über den ESB (eine wesentliche Komponente von SOA), die Vorteile die er bietet und wie er mit der Microservices-Architektur zusammenhängt.