Was ist SOA? Serviceorientiert Architekturprinzipien

Was ist SOA (Service Oriented). Archi(Textur)?

Serviceorientiert ArchiStruktur (SOA) ist ein Architekturmuster im Computersoftwaredesign, bei dem Anwendungskomponenten anderen Komponenten über ein Kommunikationsprotokoll, normalerweise über ein Netzwerk, Dienste bereitstellen. Die Prinzipien der Serviceorientierung sind unabhängig von Produkten, Anbietern oder Technologien.

SOA erleichtert lediglich die Zusammenarbeit von Softwarekomponenten über verschiedene Netzwerke hinweg.

Webdienste, die gemäß der SOA-Architektur erstellt werden, machen Webdienste tendenziell unabhängiger. Die Webdienste selbst können Daten untereinander austauschen und aufgrund der zugrunde liegenden Prinzipien, auf denen sie erstellt werden, benötigen sie keinerlei menschliche Interaktion und auch keine Codeänderungen. Dadurch wird sichergestellt, dass die Webdienste in einem Netzwerk nahtlos miteinander interagieren können.

Serviceorientiert Architecture (SOA)-Prinzipien

Es gibt 9 Arten von SOA-Designprinzipien, die im Folgenden aufgeführt sind

1. Standardisierter Servicevertrag

Die Leistungen unterliegen einer Leistungsbeschreibung. Ein Dienst muss über eine Beschreibung verfügen, die beschreibt, worum es bei dem Dienst geht. Dadurch können Clientanwendungen leichter verstehen, was der Dienst tut.

2. Lose Kupplung

Less Abhängigkeit voneinander. Dies ist eines der Hauptmerkmale von Webdiensten und besagt lediglich, dass zwischen den Webdiensten und dem Client, der den Webdienst aufruft, so wenig Abhängigkeit wie möglich bestehen sollte. Wenn sich die Servicefunktionalität zu irgendeinem Zeitpunkt ändert, sollte dies die Clientanwendung nicht beschädigen oder ihre Funktion beeinträchtigen.

3. Dienstabstraktion

Dienste verbergen die Logik, die sie verkapseln, vor der Außenwelt. Der Dienst sollte nicht offenlegen, wie er seine Funktionalität ausführt. Es sollte der Client-Anwendung lediglich mitteilen, was sie tut, und nicht, wie sie es tut.

4. Wiederverwendbarkeit des Dienstes

Die Logik ist in Dienste unterteilt, um die Wiederverwendung zu maximieren. In jedem Entwicklungsunternehmen ist die Wiederverwendbarkeit ein großes Thema, da man natürlich nicht Zeit und Mühe darauf verwenden möchte, immer wieder denselben Code für mehrere Anwendungen zu erstellen, die ihn erfordern. Sobald der Code für einen Webdienst geschrieben ist, sollte er daher in der Lage sein, mit verschiedenen Anwendungstypen zu arbeiten.

5. Serviceautonomie

Dienste sollten die Kontrolle über die Logik haben, die sie kapseln. Der Dienst weiß alles über die von ihm angebotenen Funktionen und sollte daher auch die vollständige Kontrolle über den darin enthaltenen Code haben.

6. Zustandslosigkeit des Dienstes

Im Idealfall sollten Dienste zustandslos sein. Dies bedeutet, dass Dienste keine Informationen von einem Staat an den anderen zurückhalten sollten. Dies müsste entweder über die Clientanwendung erfolgen. Ein Beispiel kann eine Bestellung auf einer Einkaufsseite sein. Jetzt können Sie über einen Webdienst verfügen, der Ihnen den Preis eines bestimmten Artikels anzeigt. Wenn die Artikel jedoch einem Warenkorb hinzugefügt werden und die Webseite zu der Seite navigiert, auf der Sie die Zahlung vornehmen, sollte die Verantwortung für den Preis des Artikels, der an die Zahlungsseite übertragen werden soll, nicht beim Webdienst liegen. Stattdessen muss dies von der Webanwendung erledigt werden.

7. Auffindbarkeit des Dienstes

Dienste können entdeckt werden (normalerweise in einer Dienstregistrierung). Wir haben dies bereits am Konzept des UDDI gesehen, das eine Registrierung durchführt, die Informationen über den Webdienst speichern kann.

8. Zusammensetzbarkeit von Diensten

Dienste zerlegen große Probleme in kleine Probleme. Man sollte niemals die gesamte Funktionalität einer Anwendung in einen einzigen Dienst einbetten, sondern den Dienst stattdessen in Module mit jeweils separaten Geschäftsfunktionen aufteilen.

9. Interoperabilität der Dienste

Dienste sollten Standards verwenden, die es verschiedenen Abonnenten ermöglichen, den Dienst zu nutzen. In Webdiensten gelten Standards wie XML und die Kommunikation über HTTP wird verwendet, um sicherzustellen, dass es diesem Prinzip entspricht.