Serviceorientierte Architektur (SOA): Eine Einführung und Übersicht

Classified in Informatik

Written at on Deutsch with a size of 53,94 KB.

Eine Einführung in die Serviceorientierte Architektur (SOA)

Originalautor: Raghu Kodali. [Http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html]

Übersetzt von: Mario Alberto La Menza.

Zusammenfassung

Die Serviceorientierte Architektur (SOA) ist ein hochmodernes Software-Engineering-Konzept, das derzeit in Entwicklungsgruppen diskutiert wird. Dieses Dokument stellt die SOA vor und erörtert, warum Unternehmen SOA benötigen, was eine serviceorientierte Architektur ausmacht und verschiedene Mythen und Realitäten rund um SOA.

Eine Serviceorientierte Architektur (SOA) ist eine Weiterentwicklung des verteilten Rechnens, basierend auf Anfrage/Antwort für synchrone und asynchrone Anwendungen. Dabei werden Geschäftslogik oder einzelne Funktionen modularisiert und als Services für Consumer-Anwendungen/Kunden bereitgestellt. Der Schlüssel zu diesen Services ist ihre Entkopplung; die Service-Schnittstelle ist unabhängig von der Implementierung. Anwendungsentwickler oder Systemintegratoren können Anwendungen erstellen, indem sie einen oder mehrere Services zusammensetzen, ohne die Details ihrer Implementierung zu kennen. Zum Beispiel kann ein Service sowohl in .NET als auch in J2EE implementiert werden, und die Anwendung, die den Service nutzt, kann auf einer anderen Plattform laufen und eine andere Sprache verwenden.

Hauptfunktionen von SOA

SOA hat die folgenden Hauptfunktionen:

  • SOA-Services beschreiben ihre Schnittstellen mit XML-Dokumenten, die plattformunabhängig sind. Web Service Description Language (WSDL) ist der Standard, der verwendet wird, um die Services zu beschreiben.
  • SOA-Services kommunizieren formal über Nachrichten, die durch ein XML-Schema (auch als XSL definiert) definiert sind. Die Kommunikation zwischen Konsumenten und Dienstleistern erfolgt typischerweise in einer heterogenen Umgebung, die wenig oder kein Wissen über den Lieferanten hat. Nachrichten zwischen Services können als wichtige geschäftliche Dokumente in einem Unternehmen betrachtet werden.
  • SOA-Services werden in einem Verzeichnis gepflegt, das als eine Art Register fungiert. Anwendungen können in diesem Register nach Services suchen und sich darauf beziehen. Universal Description, Discovery and Integration (UDDI) ist der Standard, der verwendet wird, um Services zu registrieren.
  • Jeder SOA-Service hat eine Quality of Service (QoS). Einige der wichtigsten Elemente der QoS sind Sicherheitsanforderungen wie Authentifizierung und Autorisierung, zuverlässiges Messaging und Strategien, um zu definieren, wer die Services aufrufen darf.

Warum SOA?

Die Realität ist, dass IT-Infrastrukturen in heterogenen Betriebssystemen, Anwendungen, Systemsoftware und Anwendungsinfrastrukturen installiert oder zu unterschiedlichen Zeiten und unter verschiedenen Paradigmen erstellt wurden. Einige bestehende Anwendungen werden verwendet, um wichtige Geschäftsprozesse auszuführen, sodass der Aufbau einer neuen Infrastruktur von Grund auf keine Option ist. Unternehmen müssen schnell auf geschäftliche Veränderungen mit Agilität reagieren, bestehende Investitionen in Anwendungen und Infrastruktur nutzen, um neue geschäftliche Anforderungen zu erfüllen, neue Wege der Interaktion mit Kunden, Partnern und Lieferanten unterstützen und eine Architektur definieren, die ein agiles Geschäft unterstützt. Die entkoppelte Natur von SOA ermöglicht es Unternehmen, neue Services zu erstellen oder bestehende Services auf einer granularen Ebene zu neuen geschäftlichen Anforderungen zu verbinden, bietet die Möglichkeit, Services über unterschiedliche Kanäle bereitzustellen und bestehende Anwendungen und Legacy-Systeme als Services zu nutzen, wodurch frühere Investitionen in die Infrastruktur geschützt werden.

Wie im Beispiel in Abbildung 1 kann ein Unternehmen mit SOA eine Anwendung erstellen, die aus einer Lieferkette mit einer Reihe von bestehenden Anwendungen besteht, die ihre Funktionalität über Standardschnittstellen bereitstellen.

Bild

Abbildung 1. Anwendung der Lieferkette.

Für Unternehmen ist es notwendig, SOA-Architektur-Services umzusetzen. Ein Beispiel dafür ist in Abbildung 2 dargestellt.

Bild

Abb. 2. Beispiel einer Architektur von Services

In Abbildung 2 rufen Service-Konsumenten Services auf, indem sie Nachrichten senden. Diese Nachrichten werden normalerweise verarbeitet und über einen Service-Bus zur ordnungsgemäßen Ausführung des Services weitergeleitet. Diese Service-Architektur kann eine Business Rules Engine enthalten, die Geschäftsregeln durch einen oder mehrere Services umsetzen kann. Die Architektur bietet auch eine Management-Infrastruktur, die die Services verwaltet und Aktivitäten wie Rechnungsprüfung, Abrechnung und Registrierung ermöglicht. Darüber hinaus bietet die SOA dem Unternehmen die Flexibilität für agile Geschäftsprozesse, eine bessere Einhaltung regulatorischer Anforderungen (z. B. Sarbanes Oxley (SOX)) und die Möglichkeit, dass einzelne Service-Änderungen keine Auswirkungen auf andere Services haben.

SOA-Infrastruktur

Zum Ausführen und Verwalten von SOA-Anwendungen benötigen Unternehmen eine SOA-Infrastruktur, die Teil der SOA-Plattform ist. Eine SOA-Infrastruktur muss alle relevanten Standards und Container für die Laufzeit unterstützen. Eine typische SOA-Infrastruktur sieht aus wie in Abbildung 3 - Der folgende Abschnitt beschreibt die einzelnen Teile der Infrastruktur.

Bild

SOAP, WSDL, UDDI

SOAP, WSDL und UDDI sind wesentliche Teile der SOA-Infrastruktur. WSDL wird verwendet, um den Service zu beschreiben, UDDI, um Services zu registrieren und zu finden, und SOAP als Transportschicht-Service, um Nachrichten zwischen Konsument und Anbieter zu senden. Während SOAP der Standardmechanismus für Web-Services ist, können alternative Technologien durch andere Arten von Bindungen eine Dienstleistung erreichen. Ein Konsument kann eine Registrierung bei einem UDDI-Service anfordern, WSDL verwenden, um die Service-Beschreibung abzurufen, und dann über SOAP aufrufen.

WS-I Basic Profile

Das WS-I Basic Profile, das von der Organisation für Web Services Interoperability bereitgestellt wird, ist ein weiteres zentrales Element der Core Services, die für das Testen und die Interoperabilität erforderlich sind. Service Provider können die Suite von WS-I Testing Technologien verwenden, um die Interoperabilität zwischen verschiedenen Plattformen zu überprüfen.

J2EE und .Net

Obwohl die J2EE- und .Net-Entwicklungsplattformen Schlüssel zu SOA-Anwendungen sind, ist SOA nicht so auf sie beschränkt. Ungeachtet der Tatsache, dass die J2EE-Plattform nicht nur den Rahmen für die Entwickler bietet, sich natürlich in der SOA zu beteiligen, sondern auch ihrem Wesen nach eine ausgereifte und bewährte Infrastruktur für die Skalierbarkeit, Zuverlässigkeit, Verfügbarkeit und Leistung für die SOA-Welt. Neue Spezifikationen wie Java API for XML Registries (JAXR), die verwendet werden, um mit UDDI Registries zu interagieren, und Java API for XML-based RPC (XML-RPC), die verwendet werden, um Remote-Services in J2EE zu nutzen, erleichtern die Entwicklung und den Betrieb von portablen Web-Services über Standard-J2EE-Container und gleichzeitig die Interoperabilität mit anderen Services durch Plattformen wie .Net.

Qualität der Dienstleistungen

Nachdem unternehmenskritische Systeme in Unternehmen entstehen, werden erweiterte Anforderungen in Bereichen wie Sicherheit, Zuverlässigkeit und die Steuerung von Transaktionen gestellt. Und die grundlegenden Web Services-Spezifikationen wie WSDL, SOAP und UDDI erfüllen diese erhöhten Anforderungen nicht. Wie zuvor sind diese Anforderungen auch als Quality of Service (QoS) bekannt. Gegenwärtig arbeiten viele Spezifikationen für QoS an Einrichtungen wie dem W3C und OASIS. Die folgenden Abschnitte beschreiben einige der Komponenten des QoS und andere verwandte Normen.

Sicherheit

Die Sicherheitsspezifikation WSS (Web Services Security) ist verantwortlich für die Sicherheit der Nachrichten. Diese Spezifikation konzentriert sich auf den Anmeldeinformationsaustausch, die Nachrichtenintegrität und die Vertraulichkeit derselben. Die Schönheit dieser Spezifikation ist das Auseinanderziehen der bestehenden Sicherheitsstandards wie SAML (Security Assertion Markup Language) und ermöglicht den Einsatz dieser Standards für die Sicherung der Web Services-Nachrichten. WSS ist ein Versuch von der OASIS.

Zuverlässigkeit

In einer typischen SOA-Umgebung werden viele Dokumente zwischen Konsumenten und Dienstleistern ausgetauscht. Distribution mit Funktionen wie Nachrichtenübermittlung "einmal und nur einmal" (exactly-once delivery), geliefert mindestens einmal (at-least-once delivery), die Abschaffung doppelter Nachrichten, Nachrichtenverbreitung und Anerkennung garantiert werden immer wichtiger in unternehmenskritischen Systemen unter SOA. WS-Reliability und WS-Reliable Messaging sind zwei Standards, die das Problem des zuverlässigen Messaging angehen. Beide Standards sind nun Teil der OASIS.

Politik

Service Provider benötigen manchmal Konsumentenverkehr unter Einhaltung bestimmter Politiken, um zu kommunizieren. Zum Beispiel kann ein Anbieter eine Sicherheitsüberprüfung benötigen, um auf einen Kerberos-Dienst zuzugreifen. Diese Anforderungen sind Behauptungen, definiert als Politik. Eine Politik kann aus mehreren Behauptungen bestehen. WS-Policy standardisiert die Kommunikation zwischen Anbietern und Konsumenten von Dienstleistungen.

Orchestrierung

Sobald Unternehmen auf einer SOA beginnen, können Dienste in Anspruch genommen werden, um Silos von Daten, Anwendungen und Komponenten zu integrieren. Integrierte Anwendungsanforderungen bedeuten, dass Prozesse wie asynchrone Kommunikation, parallele Verarbeitung, Datentransformation und Wiedergutmachung standardisiert werden sollten. BPEL4WS oder WSBPEL (Web Services Business Process Execution Language) ist eine Oase der Spezifikation bis zur Service-Orchestrierung, wo Geschäftsprozesse mit einer Reihe von diskreten Diensten erstellt werden. WSBPEL ist nun Teil der OASIS.

Verwaltung

Sobald die Zahl der Dienste und Geschäftsprozesse wächst, ist es wichtig, eine Management-Infrastruktur zu haben, mit der Systemadministratoren Dienste verwalten können, die in einer heterogenen Umgebung ausgeführt werden. Web Services for Distributed Management (WSDM) legt fest, dass jeder Dienst, der im Einklang mit WSDM umgesetzt wird, durch eine Management-Lösung verwaltet werden sollte, die mit WSDM übereinstimmt.

Weitere QoS-Attribute wie die Koordinierung zwischen den Partnern und Geschäften mit mehreren Diensten wird in der WS-Coordination und WS-Transaction, bzw., die ebenfalls von OASIS entwickelt gerichtet.

SOA ist nicht gleichbedeutend mit Web Services

Es herrscht weitgehende Unklarheit über die Beziehung zwischen SOA und Web Services. In dem Bericht von Gartner April 2003 macht Yefim V. Natis den Unterschied so:

Wenden Sie sich an Web Services-Spezifikationen, während SOA-Prinzip ein Software-Design ist. Es ist klar, dass die Spezifikation von WSDL Web Services SOA eine Standard-Schnittstelle ist, die für sie geeignet ist. Und das ist, wo Web-Services und SOA verbunden sind. In kurzen, im Wesentlichen SOA ist ein architektonisches Muster, während Web-Services-Standards Dienstleistungen sind, die mit einer Reihe von Dienstleistungen umgesetzt werden. Das Web ist eine der Möglichkeiten, in denen SOA umgesetzt werden kann, aber nicht einzigartig. Die Vorteile der Implementierung von SOA mit Web Services ist, dass es Interoperabilität erreicht, einen neutralen Ansatz für die Plattform den Zugriff auf Dienste und besser, da immer mehr Anbieter Web Services-Spezifikationen unterstützen.

Vorteile von SOA

Während das Konzept der SOA nicht neu ist, unterscheidet sich SOA von anderen bestehenden verteilten Technologien dadurch, dass viele Verkäufer sie akzeptieren und eine Plattform haben, die sie unterstützt. SOA mit ihren allgegenwärtigen Reihe von Standards bringt eine neue Wiederverwendbarkeit vorhandener Ressourcen innerhalb des Unternehmens und ermöglicht es uns, Anwendungen zu erstellen, die auf bereits vorhandenen Anwendungen aufgebaut werden können. SOA unterhält auch individuelle Kunden und die Dienstleistungen von evolutionären Veränderungen, die bei der Umsetzung eines Dienstes auftreten können. SOA ermöglicht metamos Hand einen kostenlosen Service, dass sie die anderen Dienste kennen. Es ist nicht notwendig, um eine Anwendung komplett neu zu schreiben. Nehmen Sie einfach den Teil, der ergänzt wird und dient der Rest mit neuen Diensten, die auf neue geschäftliche Anforderungen zu reagieren.

Schließlich bietet SOA Unternehmen mehr Flexibilität für Anwendungen und Geschäftsprozesse. In einer agilen Infrastruktur, die Wiederverwendung von bestehenden Anwendungen ermöglicht, neue Dienste zu komponieren.

Was ist SOA?

SOA ist für jeden etwas anderes:

  • Eine Reihe von Dienstleistungen, die ein Geschäft will die Organisation zu entlarven, um ihre Kunden und Partner, oder andere Teile des
  • Eine architektonische Stil, der Service erfordert einen Diensteanbieter, dem Antragsteller und eine Beschreibung der
  • Eine Reihe von architektonischen Prinzipien, Normen und Kriterien, um Fragen zu verwalten Eigenschaften wie Modularität, Kapselung, lose Kopplung, eine Trennung von Wiederverwendung, Zusammensetzung
  • Ein vollständiges Programmiermodell Standards, Werkzeuge und Technologien wie Web Services

Was ist SOA?

Service-Oriented Architecture (SOA) ist auf die Schaffung eines Konzepts, einer Technologie- und Prozess-Framework, das es den Unternehmen zu entwickeln, wird fokussiert und pflegen Unternehmensanwendungen und Services effizient und kostengünstig verbinden.

Eine starke Enterprise Architecture Prozess hilft, einige grundlegende Fragen geklärt werden:

  • Die aktuelle Architektur unterstützt und Mehrwert für Ihre Organisation?
  • Wie sollte eine Architektur geändert, um mehr Wert für die Organisation hinzuzufügen?
  • Aktuelle Architektur unterstützt die Ziele der Organisation für die Zukunft?

SOA Vorteile

  • Verbesserung der Definition von Entwicklung Rollen
  • Klarere Abgrenzung der Sicherheit
  • Erleichtert Tests
  • Unterstützt mehrere Client-Typen
  • Ermöglicht Zusammensetzung von Dienstleistungen
  • Verbesserte Wartbarkeit
  • Fördert die Wiederverwendung
  • Favors die parallele Entwicklung
  • Erleichtert Skalierbarkeit und hohe Verfügbarkeit
  • Interoperabilität

Entradas relacionadas: