SOA - Informationen
Auf dieser Seite sollen ihnen in sehr kompakter Form SOA-Informationen aus unterschiedlichen Quellen bereitgestellt werden. Für interessante Quellen und Verbesserungsvorschläge bin ich Ihnen stets dankbar.
Friedrich W. Benz
Leiter Fachausstellung AFCEA Bonn e.V.
fachausstellung-afcea(at)gmx.com
Quelle: Wikipedia
Serviceorientierte Architektur (SOA), engl. service oriented architecture, auch dienstorientierte Architektur, ist ein Ansatz der
Informationstechnik, Dienste von Mitarbeitern und Organisationen zu strukturieren und zu nutzen. Diese Strukturierung und Nutzung kann auf unterschiedlichen Ebenen erfolgen. „Vergib einen Kredit“ ist beispielsweise auf einer hohen Ebene angesiedelt, dahinter versteckt sich bei einer größeren Bank ein Geschäftsprozess mit einigen beteiligten Personen und Informatiksystemen (eröffnen der Geschäftsbeziehung, eröffnen eines/mehrerer Konten, Kreditvertrag, …), während „Trag den Kunden ins Kundenverzeichnis ein“ ein Dienst auf einer niederen Ebene ist.
Der Begriff „serviceorientierte Architektur“ wurde 1996 von dem Marktforschungsunternehmen
Gartner erstmalig genutzt. Gartner gilt daher als Erfinder der SOA. Es gibt keine allgemein akzeptierte Definition von SOA. Dennoch wird häufig die Definition von der
OASIS aus dem Jahr 2006 zitiert:
SOA ist ein Paradigma für die Strukturierung und Nutzung verteilter Funktionalität, die von unterschiedlichen Besitzern verantwortet wird
[1].
Zentrales Thema aller Definitionen sind die Dienste. Im folgenden werden die idealtypischen Eigenschaften von Dienste in einer SOA aufgeführt. In der Praxis werden nicht alle diese Anforderungen vollständig eingehalten
[2].
- Ein Dienst ist in sich abgeschlossen und kann eigenständig genutzt werden.
- Dienste sind in einem Netzwerk verfügbar.
- Jeder Dienst hat eine veröffentlichte Schnittstelle. Für die Nutzung reicht es, die Schnittstelle zu kennen. Kenntnisse über die Details der Implementierung sind hingegen nicht erforderlich.
- Die Benutzung von Diensten ist
plattformunabhängig, d.h. Anbieter und Nutzer eines Dienstes können in unterschiedlichen
Programmiersprachen auf verschiedenen
Plattformen realisiert sein. - Alle Dienste sind in einem Verzeichnis registriert.
- Die Dienste werden
dynamisch gebunden, d.h. bei der Erstellung einer Anwendung, die einen Dienst nutzt, muss der Dienst nicht vorhanden sein. Er wird erst bei der Ausführung lokalisiert und eingebunden.
mehr bei Wikipedia
Quelle:
IT-Wissen * Das große Online-Lexikon der Informationstechnik
SOA (SOA-Architektur)
service oriented architecture
Eine serviceorientierte
Architektur stellt eine flexible, anpassbare IT-Architektur dar, die eine
verteilte Datenverarbeitung unterstützt. Da alle Anwendungen in die SOA-Architektur integriert werden, werden die Verantwortlichen schnell über laufende
Prozesse und
Ereignisse informiert und können auf Abweichungen beispielsweise in der Produktion oder Qualitätskontrolle flexibel reagieren. Die SOA-Architektur stellt eine Modularisierung der Prozesse und Systeme sowie deren Verknüpfung mittels
Webservices dar. Auf dieser Basis können Unternehmen nahezu in
Echtzeit agieren und in kürzester
Zeit auf Abweichungen reagieren. Bei der SOA-Architektur werden Prozesse betrachtet, die über verschiedene Anwendungen realisiert werden, und keine einzelnen Applikationen. Die zugrunde liegende IT-Architektur fungiert als Informationsdrehscheibe, auf der die Prozesse abgewickelt werden. Dadurch kann jedes Modul eines Prozesses unabhängig von anderen Modulen verändert werden.
In der SOA-Architektur werden Funktionen als Services angelegt und von den Anwendungen gemeinsam genutzt. Die Applikationen greifen mit Hilfe einer serviceorientierten Middleware-Infrastruktur auf diese Services zu. Dabei unterscheidet
SOA zwischen wieder verwendbaren, gemeinsamen
Diensten, wie beispielsweise der Nutzung einer
Adresse für mehrere verschiedene Anwendungen, und Anwendungen, die Dienste gemeinsam verwenden.
Da die SOA-Architektur über standardisierte Webservices kommuniziert, entfallen hersteller- und plattformabhängige Einschränkungen. Als mögliche Plattformen für SOA-Architekturen sind u.a. der Java-Applikationsserver und
.NET von Microsoft zu nennen.
zum "IT-Wissen - das großen Online-Lexikon der Informationstechnologie"
Quelle: Microsoft Developer Network
Einführung in die Service Oriented Architecture (SOA - service-orientierte Architektur)
SOA hat sich zu einem sehr bekannten und etwas umstrittenen Akronym entwickelt. Wenn Sie zwei Personen nach einer SOA-Definition befragen, erhalten Sie wahrscheinlich zwei höchst unterschiedliche, möglicherweise sogar widersprüchliche Antworten. Einige beschreiben SOA als eine IT-Infrastruktur zur Geschäftsaktivierung, andere verstehen SOA hingegen als Möglichkeit, die IT-Effektivität zu steigern. In gewisser Weise ähnelt SOA ein wenig dem Gedicht von John Godfrey Saxe über die Blinden und den Elefanten: Jede Person beschreibt den Elefanten anders, da jeder von seinen persönlichen Erfahrungen beeinflusst ist (z. B. glaubt der Mann, der den Rüssel berührt, dass der Elefant eine Schlange ist, während ihn der Mann, der einen Stoßzahn berührt, für einen Speer hält). Der Elefant von Herrn Saxe ist viel einfacher zu beschreiben als SOA, da er ein physisch greifbarer Gegenstand ist. SOA hingegen ist eine Entwurfsphilosophie, die nicht physisch in Erscheinung treten kann.
SOA ist ein architekturbezogenes Konzept zum Erstellen von Systemen, die aus autonomen Diensten aufgebaut werden. Mithilfe von SOA wird die Integration eher im Voraus als im Nachhinein geplant. Die endgültige Lösung wird wahrscheinlich aus Diensten zusammengesetzt, die in verschiedenen Programmiersprachen entwickelt werden und auf verschiedenen Plattformen mit unterschiedlichen Sicherheitsmodellen und Geschäftsprozessen gespeichert werden. Dieses Konzept klingt unglaublich kompliziert, es ist jedoch nicht neu: Man könnte behaupten, dass SOA aus den Erfahrungen entstanden ist, die beim Entwerfen und Entwickeln von verteilten Systemen auf Grundlage bereits verfügbarer Technologien gesammelt wurden. Viele der mit SOA assoziierten Konzepte (z. B. Dienste, Discovery und späte Bindung) stammen aus der Welt von CORBA und DCOM. Dementsprechend haben viele Entwurfsprinzipien für Dienste einiges mit früheren OOA/OOD-Techniken (auf Grundlage von Kapselung, Abstraktion und klar definierten Schnittstellen) gemeinsam.
Das Akronym SOA verlangt offensichtlich nach einer Antwort auf die Frage: Was genau ist ein Dienst? In einfachen Worten ist ein Dienst ein Programm, mit dem durch einen klar definierten Nachrichtenaustausch interagiert werden kann. Beim Entwurf von Diensten muss sowohl auf Verfügbarkeit als auch auf Stabilität geachtet werden. Dienste werden für einen langfristigen Einsatz erstellt, während sich die Konfigurationen und Aggregationen der Dienste häufig ändern können. Häufig wird die Flexibilität als einer der größten Vorteile von SOA dargestellt: In einer Organisation, in der die Geschäftsprozesse in einer lose gekoppelten Infrastruktur implementiert sind, kann auf Änderungen viel einfacher reagiert werden, als in einer Organisation, die auf monolithischen Anwendungen aufgebaut ist, in denen schon die kleinste Anpassung Wochen dauert. Lose gekoppelte Systeme führen zu lose gekoppelten Geschäftsprozessen, da die Geschäftsprozesse nicht mehr durch die Beschränkungen der zugrunde liegenden Infrastruktur eingeschränkt sind. Die Dienste und ihre zugehörigen Schnittstellen müssen stabil bleiben, sich jedoch durch Konfiguration oder Aggregation an sich ständig ändernde Geschäftsprozesse anpassen lassen. Dienste erhalten eine gewisse Stabilität, wenn sie auf standardisierten Schnittstellen und wohl definierten Nachrichten basieren - mit anderen Worten: Verwenden Sie für die Nachrichtendefinition SOAP und XML-Schemas. In einer größeren SOA-Infrastruktur sind Dienste viel einfacher wieder verwendbar, die einfache, granuläre Funktionen durchführen, ohne dass genau bekannt sein muss, wie Nachrichten an sie gesendet oder von ihnen empfangen werden. Wie bereits erwähnt, helfen Ihnen grundlegende OO-Entwurfsprinzipien für Kapselung und Schnittstellenentwurf auch beim Entwerfen und Erstellen von wieder verwendbaren Webdiensten. Um diese OO-Prinzipien auf die Welt der Webdienste zu erweitern, werden im Folgenden die häufig zitierten "Four Tenets", die vier wichtigsten Grundsätze der Dienstorientierung, ausführlicher erläutert:
Vertiefende Informationen bei:
Microsoft Developer Network
no news in this list.
