So erstellen Sie eine serviceorientierte Architektur (SOA)
© .com / Bakhtiar Zein
In diesem Artikel konzentrieren wir uns auf das Thema serviceorientierte Architektur (SOA). Wir beginnen mit einem tiefen Tauchgang in 1) SOA: eine Beschreibung und gehen dann zu diskutieren 2) Aufbau einer serviceorientierten Architektur.
SERVICEORIENTIERTE ARCHITEKTUR: EINE BESCHREIBUNG
Was ist SOA?
SOA oder Serviceorientierte Architektur ist eine Methode, mit der verschiedene Arten von Diensten unabhängig voneinander interagieren können. Ein Dienst ist ein in sich geschlossener Teil der Funktionalität, und mehrere Dienste können kombiniert werden, um die Verwendung und Funktionalität einer Softwareanwendung in großem Umfang bereitzustellen. SOA vereinfacht die Interaktion und Zusammenarbeit von Softwareteilen auf PCs, die mit einem Netzwerk verbunden sind. Das Entwurfsmuster von SOA ist so, dass Anwendungskomponenten darin Dienste für andere solche Komponenten meist über ein Netzwerk anbieten können. Jedes Computersystem kann eine beliebige Anzahl von Diensten ausführen, von denen jeder so aufgebaut ist, dass er ohne menschliche Hilfe Informationen mit einem anderen Dienst in einem Netzwerk austauscht.
In der Geschäftsterminologie ist SOA eine Reihe von geschäftsorientierten IT-Services, die zusammen die Ziele und Prozesse des Unternehmens ansprechen. Das strukturelle Design von SOA stellt sicher, dass es eine Ausrichtung auf die Anforderungen des Unternehmens sowie die technologische Lösung desselben gibt.
Die Hauptelemente von SOA
Hier sind die Hauptelemente von SOA:
- SOA-Treiber – SOA-Treiber oder Enterprise-Business-Treiber umfassen Dinge wie Wettbewerb, Strategie, regulatorische Kräfte und Marktkräfte. All diese Dinge kommen zusammen, um die Geschäftsarchitektur voranzutreiben und dem unternehmensweiten Performance Management eine Form zu geben
- SOA-Enabler – Die fünf wichtigsten SOA-Enabler sind das Geschäftsmodell des Unternehmens, die Optimierung der Geschäftsleistung, die Rationalisierung des Portfolios, die Definition der Unternehmenssemantik und die wichtigsten Leistungsindikatoren. Ein Geschäftsmodell ist wichtig für die korrekte Ausrichtung der Dienstleistungen an den Zielen und Zielen des Unternehmens. Das semantische Informationsmodell liefert die allgemeinen und allgemeinen geschäftsbezogenen Informationen für ein bestimmtes Unternehmen. Key Performance Indicators oder KPIs ermöglichen die Bewertung der Auswirkungen von SOA und erleichtern die Messung von Geschäftsprozessen. Andererseits ermöglicht die Portfolio-Rationalisierung die Konsolidierung und Vereinfachung von Anwendungen, Daten und Infrastruktur.
- SOA-Implementierung – Bei der Implementierung stehen Business Services und Prozesse im Vordergrund. Geschäftsprozesse sind meist mit Geschäftszielen und Zielen des Betriebs verbunden, während andererseits Business Services gut aufeinander abgestimmt sein müssen und für eine flexible und erfolgreiche SOA-Implementierung von entscheidender Bedeutung sind. Einige der anderen Aspekte im Zusammenhang mit der SOA-Implementierung sind Enterprise Content Repositories, Semantic Messaging und Integration Services. Die Informationen stellen die Datenressourcen des Unternehmens dar, und diese Daten werden in Form von Dokumenten übergeben, die eine Art semantische Nachrichten zwischen Diensten und Prozessen bereitstellen.
- SOA-Unterstützung – Alle Funktionen und Elemente aus den bestehenden Anwendungen und Systemen werden den Diensten mit Unterstützung einiger Integrationsdienste zur Verfügung gestellt und nutzbar gemacht, die sich über neue Serviceschnittstellen von den bestehenden Funktionen abheben.
Die Hauptprinzipien von SOA
Das Folgende ist die Liste der Hauptprinzipien von SOA:
- Dienstarchitektur – Das physische Layout oder Design einzelner Dienste, das alle Ressourcen übertrifft, die von einem Dienst verwendet wurden.
- Service Composition architecture – Alle Dienste, die mit serviceorientierten Entwurfsmethoden entwickelt wurden, sind kompositionszentriert, und dies ist ihr Hauptmerkmal. Diese Architektur ist daher die Zusammensetzung einzelner Architekturen verschiedener Dienste.
- Service Inventory Architecture – Diese Architektur wird aus dem Service Inventory Blueprint gebildet, bei dem das Service Inventory aus Diensten besteht, die die Verfahren von Unternehmen automatisieren.
- Serviceorientierte Unternehmensarchitektur – Diese Art besteht aus Kompositions-, Service- und Inventararchitekturen.
Die Entwicklung des SOA-Konzepts
- Monolithisches Design – Dieses Design bezog sich auf relativ unstrukturierte prozedurale Codierung
- Objekt– und strukturorientiertes Design – Dies ist das Design, das Programmeinheiten basierend auf Funktionalitäten umfasst.
- Client-Server-Design (zweistufiges Design) – Dies ist das Konzept des verteilten Designs und bezieht sich auf die Bündelung von Funktionalitäten in zwei Ebenen.
- Verteiltes Objektdesign (Multitier Design) – Dieses Design beinhaltet Objektinteraktionen in einer heterogenen Umgebung und verteiltes Objektdesign.
- Component Object Model architecture – Dies ist ein Design, bei dem Elemente in logikbasierte Teile mit unterschiedlichen Typen sowie einer genau definierten Schnittstelle zusammengefasst werden.
- Serviceorientierte Architektur – Dies ist ein Design, das Interaktionen und Kommunikation zwischen grobkörnigen Diensten mit Standardschnittstellen für eine flexible Interoperabilität beinhaltet.
SOA und JAVA
Viele Entwickler denken, dass SOA, sowie Web-Services, sind synonym miteinander, aber das ist nicht wahr. Sie glauben vielleicht auch, dass es einfach nicht möglich ist, SOA ohne Verwendung von Webdiensten zu erstellen, aber in Wirklichkeit ist SOA ein Designprinzip, aber Webdienste sind eine Art Implementierungstechnologie. Dies bedeutet, dass SOA tatsächlich ohne Verwendung einer Implementierungstechnologie einer bestimmten Art erstellt werden kann. Java ist jedoch eine andere Art traditioneller Technologie, mit der serviceorientierte Architekturen entwickelt oder erstellt werden können.
Das Hauptziel von SOA ist es, eine lose Kopplung zwischen Modulen zu entwickeln, und es kann eine Anwendung erstellt werden, bei der die Module nicht zu eng miteinander gekoppelt sind. Diese Art von Struktur kann mit Hilfe von JAVA erstellt oder gebildet werden.
Was zeichnet SOA aus?
- Lose Verbindung – Die Dienste in SOA sind lose miteinander verbunden, um eine Verbindung zu bilden. Dies setzt das Minimum der gegenseitigen Abhängigkeit zwischen den einzelnen Diensten voraus. Die Hauptidee besteht darin, die gegenseitige Abhängigkeit auf das Niveau zu reduzieren, auf dem die Kompatibilität weiterhin erhalten bleibt.
- Die standardisierte Serviceschnittstelle – Eine Grundvoraussetzung von SOA ist die Standardisierung von Schnittstellen und Details. Die Details müssen beinhalten, welche Daten benötigt werden, wie ein Dienst genutzt werden kann und wie Regeln anzuwenden sind.
- Wiederverwendbarkeit – In SOA ist die Wiederverwendbarkeit von Diensten entlang der Prozesskette auch durch andere Parteien und für andere Zwecke möglich.
- Auffindbarkeit eines Dienstes – Ein weiteres Merkmal ist, dass ein Dienst leicht gefunden werden muss, um ihn nutzen zu können. Allen Verbrauchern werden Service-Repositorys zur Verfügung gestellt, und solche Repositorys bestehen aus der Schnittstelle und der Implementierungsmethode des Dienstes.
- Dienstautonomie – Jeder Dienst muss in der Lage sein, unabhängig zu arbeiten und zu funktionieren. Dieser Begriff bezieht sich auf Dienste, die autark sind und in der Lage sind, Ressourcen, Logik und Umwelt selbst zu verwalten.
- Kapazität für Service–Orchestrierung – Dies ist ein Prozess, bei dem ein einzelner Dienst mit anderen solchen Diensten kombiniert wird, um größere Geschäftsprozesse oder -einheiten zu erzeugen. Dies ist eine weitere Eigenschaft oder Anforderung für SOA.
- Zustandslosigkeit von Diensten – Die Leistung von Diensten basiert auf dem Konzept, dass ein definierter Dienst erbracht wird. Dies berücksichtigt die Aufbewahrung von Daten, jedoch nur, wenn die Anforderung spezifiziert oder speziell angefordert wird.
Vorteile und Nutzen von SOA
- Bessere Kapitalrendite – Einer der größten Vorteile von SOA ist, dass es eine hervorragende Kapitalrendite bietet. Da der Prozess die Erstellung robuster Schichten beinhaltet, bietet jede dieser Serviceschichten eine bessere Rendite für die Investition, die für die Erstellung der Software getätigt wurde.
- Code–Mobilität – Dies ist ein weiterer wichtiger Vorteil von SOA und ist möglich, da in der serviceorientierten Architektur eine Standorttransparenz besteht. Den meisten Clients ist es egal, wo sich die Dienste befinden, da es eine dynamische Bindung sowie die Suche nach Diensten gibt. Dies bedeutet, dass die Unternehmen, die SOA verwenden, Dienste auf verschiedene Maschinen oder an externe Dienstanbieter verschieben können.
- Die Wiederverwendbarkeit – Ein weiterer Vorteil von SOA ist, dass die verschiedenen Codes und Dienste immer wieder verwendet werden können. Es gibt die Bequemlichkeit der Wiederverwendung von Laufzeitdiensten, und es ist so einfach, einen Dienst im Verzeichnis zu finden und daran zu binden. Die Entwickler müssen sich keine Gedanken über Plattformen und andere Inkompatibilitäten machen.
- Unterstützung für verschiedene Client-Typen – Jedes Unternehmen kann mehrere Client-Typen und mehrere Clients verwenden, um auf einen Service in SOA zuzugreifen. Dies liegt daran, dass in einer solchen Struktur oder einem solchen Konzept die Schichten in Dienst unterteilt wurden und Client-Schichten und verschiedene Client-Typen einfacher zu implementieren sind.
- Eine höhere Verfügbarkeit – Mehrere Server haben mehrere Fälle von Diensten, die sie verwenden, da SOA die Standorttransparenz unterstützt. Dies bedeutet, dass die Gesamtverfügbarkeit sehr hoch ist. Wenn beispielsweise ein Computer oder ein Teil eines Netzwerks nicht mehr funktioniert oder ein Problem auftritt, können die Anforderungen an andere Dienste umgeleitet werden, ohne dass der Client dies weiß oder dadurch gestört wird.
- Weniger Fehler – Das ist ein großer Vorteil von SOA. Die Fehlerwahrscheinlichkeit ist viel geringer, und das Testen insgesamt ist aufgrund der veröffentlichten Schnittstellen von Diensten, die leicht getestet werden können, viel besser. Mehr Tests führen zu einer höheren Genauigkeit und weniger Fehlern.
SOA–Herausforderungen
- Mangelnder Testraum – Eine der größten Herausforderungen in SOA ist der Mangel an Testraum. In einer typischen Architektur gibt es keine wohlgeformten oder ausgefeilten Tools oder Methoden zum Testen eines Headless-Dienstes wie eines Nachrichten- oder Datenbankdienstes. Das Hauptziel von SOA ist es, Unternehmen und Unternehmen Agilität zu bieten. Aufgrund des Mangels an horizontalem Vertrauen muss man jedoch in ein Testframework investieren, das die Herausforderung erleichtert.
- Metadaten von Diensten verwalten – Dies ist eine häufige und sehr offensichtliche Herausforderung von SOA. Die Verwaltung der Metadaten der Dienste ist nicht nur schwierig, sondern oft auch sehr kompliziert. Ein dienstbasierter architektonischer Raum beinhaltet Dienste, die durch den Austausch von Nachrichten miteinander interagieren. In einem solchen Szenario können bei einem einzelnen Dienst manchmal Millionen von Nachrichten generiert werden. Die Verwaltung dieser vielen Dienste kann sehr schwierig werden, insbesondere wenn die Dienste von verschiedenen Unternehmen und Abteilungen innerhalb eines Unternehmens bereitgestellt werden. Dies schafft viele Vertrauensprobleme.
- Bereitstellung der richtigen Sicherheitsniveaus – Eine weitere Herausforderung von SOA ist die Bereitstellung angemessener Sicherheitsniveaus. Die anwendungsverwaltete Sicherheit ist nicht die richtige Methode oder das richtige Modell zum Sichern von Diensten, da in Anwendungen entworfene Sicherheitsmodelle nicht ausreichen können, wenn sich die Anwendung anderen zeigt.
- Interoperabilität – Dies wird zu einem entscheidenden Aspekt von SOA-Implementierungen. Um die gegenseitige Abhängigkeit von Diensten zu verringern oder zu verringern, kann die Kompatibilität zwischen ihnen häufig abnehmen, aber die Abhängigkeit muss auf ein solches Maß reduziert werden, dass die Kompatibilität weiterhin aufrechterhalten werden kann.
- Vendor Hype – Es gibt einen signifikanten Vendor Hype im Zusammenhang mit SOA, und dies schafft ein gewisses Maß an unangemessenen Erwartungen. Während es viele Vorteile von SOA gibt, kann es auch einige Nachteile haben. SO garantiert SOA beispielsweise keine Senkung der IT-Kosten und verspricht nicht einmal eine Verbesserung der Agilität von Systemen. Daher wäre es besser, wenn es eine klare Unterscheidung zwischen Hype und Realität gäbe.
AUFBAU EINER SERVICEORIENTIERTEN ARCHITEKTUR
SOA-Framework
Um zu verstehen, wie SOA aufgebaut ist, müssen Sie zuerst verstehen, was sein Framework ist.
SOA wird als 5 verschiedene horizontale Ebenen betrachtet, die:
- Consumer Interface Layer – Dies sind die Apps, die auf Service- oder App-Schnittstellen zugreifen.
- Business Process Layer – Dies ist eine Ebene, die ein Dienst ist, der geschäftliche Anwendungsfälle in Bezug auf Anwendungen darstellt.
- Dienstleistungen – Viele Dienstleistungen werden zusammengeschlossen, um ein ganzes Unternehmen zu schaffen.
- Servicekomponenten – Dies sind die Komponenten oder Teile, die zum Erstellen von Diensten wie technologischen Schnittstellen und technischen Bibliotheken usw. verwendet werden.
- Betriebssysteme – Dies ist die Ebene, die technische Muster, Datenmodelle und Datenrepositorien usw. enthält.
Im Folgenden sind die vertikalen Schichten des SOA-Frameworks aufgeführt, die auf die horizontalen angewendet und von diesen unterstützt werden:
- Integrationsschicht – Diese Schicht besteht aus Protokollunterstützung oder Plattformintegration, Datenintegration, Anwendungs- und Serviceintegration usw.
- Servicequalität – Die Faktoren, die die Servicequalität ausmachen, umfassen Verfügbarkeit, Sicherheit, Leistung und andere.
- Informativ – Diese Schicht übernimmt hauptsächlich die Aufgabe, geschäftsbezogene Informationen bereitzustellen.
- Governance – Diese Schicht oder IT-Strategieschicht wird durch horizontale Schichten geregelt, um bei Bedarf sowohl die Fähigkeit als auch das Betriebsmodell zu erreichen.
SOA Implementation Framework (SOAIF)
Die SOA-Implementierung benötigt und erfordert infrastrukturelle Laufzeitsoftware sowie Tools. Dies kann zusammenfassend als Service-Oriented Architecture Implementation Framework oder SOAIF bezeichnet werden. Dieses Konzept zielt auf ein umfassendes Framework ab, das alle Arten von Technologien bietet, die ein Unternehmen möglicherweise benötigt, um SOA nicht nur zu erstellen, sondern auch auszuführen. Ein SOAIF umfasst sowohl Laufzeit- als auch Entwurfszeitfunktionen. Es enthält auch Softwarefunktionen, die ein Unternehmen möglicherweise benötigt, um eine SOA auszuführen und auch zu erstellen, einschließlich serviceorientierter:
- Modellierung
- Integration
- Werkzeuge
- Management
- Sicherheit
- Prozesse
Ansätze für SOA
Es gibt drei Haupttypen oder Methoden oder Ansätze, die für verschiedene Informationen, unterschiedliche Systeme und Systeme in einem Unternehmen entstanden sind. Da verschiedene Dienstanbieter und Unternehmen bestrebt sind, Lösungen für Kunden und Verbraucher bereitzustellen, tragen diese Ansätze dazu bei, die Anforderungen an grobkörnige, lose klumpige und asynchrone Dienste zu erfüllen.
1. Der Enterprise Service Bus
Der erste Ansatz, der beim Aufbau und der Implementierung einer optimalen SOA hilft, ist der Enterprise Service Bus oder ESB. Dieser Ansatz hilft, die verschiedenen Elemente, die in Form von verteilten Diensten in einem Netzwerk vorliegen, zu koordinieren und anzuordnen. Dieser Ansatz betrachtet die Systeme als diskrete und verteilte Dienste, die über eine nachrichtenorientierte Infrastruktur, die asynchron ist, miteinander verbunden sind. Diese Art einer nachrichtenorientierten Infrastruktur ermöglicht lose gekoppelte Verbindungen zwischen unabhängigen Diensten oder Modulen.
2. Geschäftsprozessmanagement
Viele Unternehmen haben seit vielen Jahren versucht, Geschäftsprozessprobleme durch die Implementierung eines Geschäftsprozessmanagementansatzes zu lösen. Dieser Ansatz berücksichtigt die IT-Assets und -Systeme als Aktivitäten oder Aufgaben, die an gut synchronisierten und gut orchestrierten Geschäftsabläufen teilnehmen. BPM-Tools werden hauptsächlich zum Zeitpunkt der Modellierung und des Entwurfs von Verfahren verwendet, anstatt sie zum Erstellen von Prozessen zu verwenden, mit denen Integrationsziele erreicht werden können. Dies ist die größte Herausforderung von BPM. By BPM-Lösungen allein reichen aus, um SOA-Anforderungen zu erfüllen, da sie nicht aus der Laufzeitumgebung bestehen, die für lose gekoppelte Module benötigt wird.
3. Serviceorientierte Integration
Der dritte und letzte Ansatz zur ordnungsgemäßen Implementierung von SOA ist der serviceorientierte Integrationsansatz. Dieser spezielle Ansatz nutzt die architektonischen Leitregeln oder -prinzipien, um eine Umgebung oder ein Ökosystem von Diensten aufzubauen, die Unternehmen dynamisch kombinieren und Prozesse auf übergeordneter Ebene erstellen können, die sich ständig ändernden und sich entwickelnden Anforderungen gerecht werden. Dieser Ansatz geht an eng gekoppelten und spröden Modulen vorbei, indem er eine Unterscheidung zwischen dem Verbraucher und dem Hersteller einer Dienstleistung schafft. Es erlegt somit den Aspekt der losen Kopplung auf, der erforderlich ist, um SOA ordnungsgemäß zu implementieren und die Geschäftsanforderungen zu erfüllen. Selbst dieser Ansatz allein reicht nicht aus, um lang anhaltende Interaktionen zwischen Diensten zu gewährleisten.
Die besten Methoden zum Erstellen einer SOA
Beim Erstellen einer SOA müssen einige der besten und zuverlässigsten Methoden befolgt werden. Diese Praktiken sind wie folgt angegeben:
- Implementierungstechnologien werden stark gehypt, und man muss daran denken, wegen ihrer Popularität nicht zu ihnen zu springen. Man muss sorgfältig überlegen, ob die Webdienste für ihre Anforderungen und Bedürfnisse sinnvoller sind oder nicht. Es ist wichtig, sich daran zu erinnern, dass die Erstellung serviceorientierter Anwendungen unter Verwendung von Technologien wie RMI für den Fall eines Unternehmens besser geeignet ist als für Webdienste.
- Man muss daran denken, keine sehr eng miteinander verbundenen oder gekoppelten Module zu erstellen oder zu bauen, da dies zu einem spröden Aufbau oder einer spröden Infrastruktur führt.
- Es ist wichtig, die Interoperabilität aufrechtzuerhalten, und für diese müssen die Best Practices von WS-I befolgt werden.
- Wenn Sie keinen Sinn darin sehen, Webdienste zu verwenden, gibt es auch viele andere alternative Optionen, die ausgewählt werden können.