Serviceorientierte Architektur (SOA) Flashcards
Bedeutung “Service” im SOA-Kontext
Service im SOA-Kontext: Dienst, der von einer Software-Komponente zur Verfügung gestellt wird. SOA ist vor allem ein IT-Architektur-Thema, für die erfolgreiche Einführung müssen jedoch auch organisatorische und strategische Aspekte berücksichtigt werden.
Definition SOA
Service-Oriented Architecrute is an architectural style that supports service orientation. Service orientation is a way of thinking in terms of services and service-based development and the outcomes of services.
Verständnisse von SOA
Variante A:
-Konkrete Technologie (zB. WebServices)
-Software Engineering Konzepte, die Technologien zugrunde liegen
Variante B: Paradigma (im weiteren Verlaufe als SOA-Begriff verwendet)
-um zunächst Geschäft eines Unternehmens zu strukturieren
-von geschäftlicher Unternehmensarchitektur die Architektur der IT-Anwendungssystemlandschaft (AL) abzuleiten
Geschäftsservice
- Funktionalität mit unmittelbarer geschäftlicher Bedeutung
- eindeutig definierte Nutzungsweise
- eindeutig definierte Reaktion und Wirkung
- im Kontext vertraglicher Pflichten/Nutzen
- idR an Organisationsgrenzen angeboten
Anwendungsservices
-unterstützen Geschäftsservices wo sinnvoll nach Vertrag über ein-/ausgehende Informationen und Verhalten
-entkoppeln Geschäftsservices logisch von Anwendungen
-angeboten von Komponenten der AL
orientiert an Idealvorstellung der Geschäftsservices
Servicearten
Elementar/Basis: Elementare Operationen stellen einfache Basisfunktionalitäten bereit
Zusammengesetzt: Zusammengesetzte Operationen werden durch Aufrufe elementarer oder anderer zusammengesetzter Operationen implementiert
Orchestrierbar: Unter Orchestrierung verstehen wir die einfache Implementierung von Geschäftsprozessen auf der Basis von Operationen
Grundidee
Strukturierung einer AL nach Diensten (Services) in logischen Sichten basierend auf der fachlichen (Geschäfts-)Sicht
-Dienste-Anbieter stellen Funktionalität über definierte Schnittstellen und standardisierte Technologien bereit
-Dienste-Nutzer nutzen diese Dienste (inkl. Beschreibung) in einem Repository
Vorteile:
-Bessere Struktur der Gesamt-AL
-Gesteigerte Wiederverwendung von Diensten/Funktionalitäten
SOA-Umsetzung: Kombination bekannter Techniken
Strukturierte Programmierung: -Zerlegung monolithischer Architekturen Objekt-Orientierung: -Seperation of Concern -Information Hiding CORBA: -Ortsunabhängige und Technologieübergreifende Kommunikation von Objekten EAI: -Lose Kopplung -Legacy-Einbindung -Technologieunabhängige Kommunikation
SOA: WebServices als mögliche Technische Basis
Durch Entwicklung von WebServices und damit verbundenen Standards (SOAP, WSDL, UDDI, BPEL,..) existiert geschickte technische Implementierungsbasis für SOA (vor allem in B2B-Integration). SOA-Konzept ist jedoch unabhängig von konkret eingesetzter Technologie, kann also auch ohne WebServices implementiert werden (zB mit RMI).
SOA-Basis: Integrationsplattformen
Integration Bedienoberfläche: -Integrierte Bedienoberfläche -Kommunikation an der Bedienoberfläche -B2B-Kommunikatione Übergreifende Vorgangssteuerung: -Nutzung von Services der Anwendungskomponenten -Modellgesteuerte Prozesssteuerung(BPM) Transport: -Serviceaufruf -Routing Transformation: -Fachliche Formatierung -Datenanreicherung Adapter: -Technische Anbindung -Minimalinvasive Anbindung -Wiederverwendung -Fertigadapter
SOA: Einsatz eines Enterprise Service Bus (ESB)
Weitere Entkopplung der Dienste durch Einsatz einer Standard-basierten Integrationsplattform “Enterprise Service Bus”
- Funktionalitäten für die (graphische) Orchestierung von Services
- Synchrone & Asynchrone Kommunikation (EDA/CEP)
- Adapter an Fremdsysteme (z.B. SAP, eMail,FTP)
- Transformations- und Mapping Funktionalitäten
- Sicherheitsinfrastruktur
- Evtl. Integration von “Rule Engines”
SOA und Orchestrierung
- Geschäftsprozesse in einer SOA sind explizit als Anwendungsprozesse ausmodelliert, nicht in Anwendungssystemen verborgen
- Anwendungsprozess soll möglichst 1:1 den Geschäftsprozess widerspiegeln (ggf. über manuell anzupassende abweichende Prozesskette)
- Anwendungsprozess stellt den Prozessablauf dar, der von einem Prozessservice ausgeführt wird
Orchestrierung
Orchestrierte Anwendungsprozesse können selbst wieder als Service genutzt werden.
Enterprise Service Bus als universelle Middleware.
Komponenten als Lieferanten für orchestrierbare Services.
SOA-Einführung: Anforderungen an Anwendungsservices
Wiederverwendbarkeit: Anforderungen mehrerer Consumer erfüllen
Sinnvolle Granularität: klar definierte Funktionalität (fachlich/technisch)
Eindeutige Schnittstellen: Leistungen über wohldefinierte Schnittstellen anbieten (technische Beschreibung z.B. WSDL, nicht-funktionale Beschreibung: SLAs)
Klare Beziehungen: steht mit anderen Services über definierte (Kommunikations-) Beziehungen in Verbindung
Enscheidend –> ein guter Service Schnitt
Top-Down-Vorgehen: Vom Geschäftsprozess zum Service
1.Systematische Prozessanalyse
2.Modularisierung & Iterative Verfeinerung: Identifikation identischer ähnlicher Prozessmodule
3.Entwicklung von Geschäftsservices
(meist existiert jedoch keine grüne Wiese)