Upload
gernot-reichenberger
View
104
Download
0
Embed Size (px)
Citation preview
Auf dem Weg zur serviceorientierten Architektur (SOA)
Thomas Güdelhöfer
WLP Systems GmbHHamburgNovember 2006
Themenübersicht
• Was bisher geschah
• Definition
• Prozess-Sicht und lose Kopplung
• Arten von Services
• Prozess-Integrität
• Sicherheit, Skalierbarkeit und Verfügbarkeit
• SOA-Projektmanagement
• Fazit
Architektur-Ansätze
• 80er: Unternehmensweites Datenmodell
• Durch ein einheitliches Datenmodell soll eine Integration aller Aspekte eines Unternehmens gelingen.
• 90er: EAI
• Durch einen einheitlichen Software-Bus (z.B. CORBA) sollen alle System integriert werden.
Definition
Eine serviceorientierte Architektur (SOA) ist eine IT-Strategie:
• Die unternehmensweite Architektur gründet sich auf eine Zerlegung in Applikations-Frontends, Services, ein Service-Verzeichnis und einen Service-Bus.
• Ein Service besteht aus einen Vertrag, einem oder mehreren Schnittstellen und einer Implementation.
Service 1
Applikation 1 Applikation 2 Applikation 3
Service 2 Service 3 Service 4Service Verzeichnis
Service Definition
Service Definition
Service Definition
Prozess-Sicht
• Definition von Prozessen, nicht Applikationen
• Systemgrenzen nicht ausfransen lassen
• Insellösung vs. Eierlegendewollmilchsau
• SOA bietet einen Dritten Weg
• Lücken in der Prozessabdeckung schließen
• Access-DB in jeder Abteilung
• Fokus auf Nutzen, nicht auf Kosten
Lose Kopplung
• Reduktion der künstlichen Abhängigkeiten.
• Der Fön braucht Strom echte Abhängigkeit• Der Fön braucht einen Adapter künstliche Abhängigkeit
• Neue Versionen der Schnittstelle ohne Störung alter Versionen.• Corba erfüllt diese Forderung nicht.
Lose Kopplung
• Deskriptiver statt instruktiver Aufruf.
• Unterschied zwischen Koch und Kellner:
• Das Essen wird beim Kellner bestellt (deskriptiver Aufruf) ohne die Details der Zubereitung zu beschreiben.
• Systeme müssen nicht gleichzeitig verfügbar sein.
• Asynchrone Kommunikation, besonders wichtig über Unternehmensgrenzen hinweg.
• Finden der Services zur Laufzeit.
• Service-Verzeichnis
Design for Change
• IT leistet geschäftlichen Nutzen nur dann, wenn aktuelle Bedürfnisse erfüllt werden
• Minimierung der Soll-Ist-Lücke
• Verkürzung des Zyklus Anforderung – Analyse – Design – Implementierung
• Bei loser Kopplung haben Änderungen nur lokale Auswirkungen
Service-Wiederverwendbarkeit
• Wird ein Service von genau einem Nutzer genutzt, dann ist es noch kein SOA!
• Granularität der Services
• Auffindbarkeit der Services
• Bedarf steigt mit der Firmengröße
Service-Verzeichnis
• Beschreibung aller Services
• Service-Definition (z.B. WSDL)
• Service-Vertrag (Beschreibung, Erlangen von Zugriffsrechten)
• Verantwortliche für Betrieb und Weiterentwicklung
• Die einfachste Ausführung eines Service-Verzeichnisses ist eine Papierliste.
• Standard für Service-Verzeichnisse: UDDI
• Ein Service-Verzeichnis ist notwendig, sobald viele Projekte Services nutzen sollen.
• Credit Suisse Group hatte 2004 ca. 1000 Services im Unternehmen.
Arten von Services
• Sichtbare Applikation
• Sind im eigentlichen Sinne keine Services
• Rufen die Services der SOA auf
• Grund-Service
• Grundbausteine einer SOA
• Datenzentrierte Services
• Geschäftslogik Services
• Zwischen-Service
• Technologische Adapter (z.B. Corba WebService)
• Funktionsergänzungen (z.B. Verschlüsselung)
• Rufen andere Services auf
Arten von Services
• Prozess-Service
• Kapselung der Prozess-Logik
• Prozessausführung über verschiedene Endgeräte
• Rufen andere Services auf
• Öffentlicher Service
• Unternehmensübergreifende Integration
• Zwingend grobgranular und lose gekoppelt
• Services teilen den Funktionsumfang vertikal auf
• Sind nicht einer Applikation 1:1 zugeordnet
Geschäfts-Logik vs.Prozess-Logik
• SOA trennt Geschäfts- und Prozess-Logik
• Geschäfts-Logik:
• Grundlegender Datenzugriff, Komplexe Berechnungen und Geschäftsregeln.
• Benötigt Zugriff auf die Geschäftsdaten.
• Einfache Schnittstelle.
• Verwaltet eigene (kurze) Transaktionen
• Prozess-Logik:
• Verwaltet den Prozess-Status
• Stützt sich auf die Geschäfts-Logik
• Langlaufende Aktivität
• Ändert sich häufiger als die Geschäfts-Logik
Prozess-Integrität
• Datenintegrität:
• Richtigkeit
• Genauigkeit
• Konsistenz
• Wichtiges Mittel zur Sicherung der Datenintegrität: Transaktionen
• Prozess-Integrität:
• Behandlung aller möglichen Fehlersituationen in den Prozess-Schritten.
• Prozesse erstrecken sich über lange Zeiträume und mehrere Systeme (manchmal sogar Unternehmen).
• Transaktionen sind nicht geeignet zur Sicherung der Prozess-Integrität.
Prozess-Integrität
• Technische Fehler
• Geschäftliche Ausnahmen
• Maßnahmen:
• Logging und Auditing
• Verteilt über mehrere Systeme, Log-Konsolidierung erforderlich
• Transaktionsketten und kompensierende Operationen
• Nicht jede Operation ist umkehrbar.
• Volumen der Prozess-Instanzen bestimmt den notwendigen Aufwand für automatisierte Fehlerkorrekturen.
Prozess-Service
• Ein Prozess-Service hat eine geringe Wahrscheinlichkeit auf Wiederverwendung.
• Prozess-Services sind keine Grundbedingung für eine SOA
Prozess-Service
Sichtbare Applikation
Grund-Service
Grund-Service
Grund-Service
Sichtbare Applikation
Grund-Service
Grund-Service
Grund-Service
Sicherheit
• Authentifizierung an der Applikation oder am Service.
• Single-Sign-On: Hilfreich für zusammengesetzte Applikationen.
• Verschlüsselung
• Kanalverschlüsselung (SSL)
• Nachrichtenverschlüsselung
• Verfügbarkeit über Firewall-Grenzen hinweg
• WebServices über https
Skalierbarkeit und Verfügbarkeit
• Werden zwischen den Parteien (Service-Lieferant und Nutzer) in SLAs festgelegt.
• Skalierbarkeit ergibt sich aus der verwendeten technische Plattform
• WebService: Verteilung der Last über Load-Balancer auf mehrere Server
• Kapazitäten müssen geplant und entstehende Kosten zugeordnet werden:
• Wer einen Service für ein Projekt nutzen will, muss die Last angeben.
• Wer Services anbietet, muss die Last durch die Nutzer messen.
• Services müssen eine den Applikationen entsprechende Verfügbarkeit haben.
Motivation für SOA
• Beweglichkeit (Agility)
• Kostenreduktion in den Geschäftsprozessen
• Kostenreduktion in der IT
SOA-Projektmanagement
• Projekte sind keine voneinander separierte Aktivität mehr.
• Sie liefern untereinander wichtige Funktionsbausteine.
• Service-Design mit Blick auf Wiederverwendung.
• Projektübergreifendes Management durch ein SOA-Board:
Service repository
Service Definition
Service Definition
Service Definition
SOA - Board
Projekt 2Projekt 1 Projekt n
SOA-Projektmanagement
• Nutzung eines Service durch viele Projekte:
• Qualitätskontrolle für den Service gewinnt an Bedeutung:
• Testen gegen den Service-Vertrag.
• Automatisierte Testverfahren sind für die meisten Services erforderlich.
Das Kleingedruckte
• Datenhoheit
• Temporär, Abgleich und Replikation, Zugriff
• Dubletten
• „Was ist eine Dublette?“
• Identifizierung der Stakeholder
• Außerhalb des Projektes
• Prozessoptimierungen verändern das Machtgefüge
Fazit
• SOA bedeutet eine andere Organisation des IT-Geschäftes:
• Denken in Prozessen statt in Applikationen.
• Denken über Projektgrenzen hinaus.
• Die Abhängigkeit der Applikationen von der Funktionsfähigkeit der Services erfordert ein automatisiertes Testen.
• Auch innerhalb des Unternehmens muss über SLAs gesprochen werden.