pragmatic soa - beschränken auf das wesentliche
DESCRIPTION
SOA ist mittlerweile ein weit bekanntes Paradigma. Leider bleibt es oftmals zu abstrakt, um greifbar zu sein, oder es wird auf einzelne Technologien reduziert. Darüber geraten leicht die eigentlichen Ziele für den Einsatz einer SOA aus dem Blickfeld. Diese Session stellt eine pragmatische Herangehensweise bei Aufbau und Einführung einer SOA vor und geht dazu auf Theorie und Praxis ein.TRANSCRIPT
![Page 1: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/1.jpg)
Pragmatic SOA
Beschränken auf das Wesentliche
M. Wittum | 1& 1 Internet AG
D. Schmid | 1& 1 Internet AG
Dr. T. Breitkopf | Netviewer AG
![Page 2: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/2.jpg)
Service Oriented Architecture
ESB - Adapters
BPM – Orchestration
Registry Repository
Business ServicesComposite ServicesTechnical Services
WSDL, SOAP, UDDI, BPEL, XML, Java, …
aus www.javaworld.comSOA for the real world
![Page 3: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/3.jpg)
Geht’s auch einfach?
Simplicity: Extreme Programming encourages starting with the simplest solution. Extra functionality
can then be added later(XP principle related to "you ain't gonna need it" (YAGNI) approach)
In agilen Entwicklungsprozessen werden Einfachheit und Schlichtheit zu einer grundlegenden Maxime
erhoben.(Kapitel 6.3.1: Das So-einfach-wie-möglich-Prinzip aus „Effektive Software-Architekturen“ - Gernot Starke)
Es gibt nicht die SOA und es gibt auch nicht das Tool für SOA … sondern nur mögliche Deutungen und mögliche Pfade, wie man eine SOA umsetzen könnte (Einführung in SOA –theserverside.de)
![Page 4: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/4.jpg)
Was ist Pragmatic SOA? .....
Das Wesentliche zuerst:
• Schritt für Schritt vom Wesentlichen zum Add-on
• eine konkrete Ausprägung auf Basis von konkreten Anforderungen
• SOA-Paradigma an die Umwelt anpassen nicht umgekehrt
• notfalls Verzicht auf Funktionsumfang/Flexibilität
SOA - The pragmatic way
![Page 5: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/5.jpg)
Matthias
Wittum1&1 Internet AG
SOA - The pragmatic way…
Dirk
Schmid1&1 Internet AG
Dr. Thomas
BreitkopfNetviewer AG
…am Beispiel GEPPI(General Enterprise Process and Planning Infrastructure)
![Page 6: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/6.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 7: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/7.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 8: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/8.jpg)
Ausgangssituation
Beschränkte Mittel
− wenig Spielraum für Kauf von Fremdprodukten
Was gibt es an Open Source?
− kleines Team
Start mit 2 Entwicklern
Metaanforderungen
− Schnell muss es gehen
Frühzeitige Produktivität und einfache Nutzung
− Es muss in die Organisation passen
Teams müssen ohne ‚Bremse‘ eigenverantwortlich arbeiten können
![Page 9: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/9.jpg)
Heterogene IT-Landschaft
− Betriebssysteme: Linux, AIX, Solaris, Windows
− Unterschiedlichste Technologien:
Eigenentwicklungen und Third-Party-Software
Java, C/C++, .NET, Grails, Python, Perl, Shell, …
Anbindung bestehender Software als Service an die SOA
− Mit wenig Technik-/SOA-Knowhow für die Service-Verantwortlichen durchführbar
− Einfach, schnell, geringer Aufwand
Einfacher Betrieb
− Wenig Detailkenntnisse erforderlich
− Jedes Team betreibt die Prozesse seines Verantwortungsbereichs
Ausgangssituation
![Page 10: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/10.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 11: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/11.jpg)
SOA-Service = Webservice?
![Page 12: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/12.jpg)
SOA-Service != Webservice
Bestehende Software kennt Webservices (meist) nicht
Jede Software hat eine Laufzeitumgebung
Software ist meist auf das lokale System fokussiert
Lösung: Nicht das Programm zum Service machen, sondern die Umgebung des Programms anreichern
Lokale Schnittstelle (meist CLI)
Service-Deskriptor beschreibt diese(design by contract)
Notfalls wird ein Adapter verwendet
Ein Agent bildet die Brücke ins Netz
![Page 13: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/13.jpg)
??? Wie funktioniert das?
Deskriptive, lokale Schnittstelle
mit Konventionen
![Page 14: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/14.jpg)
Konkret sieht das so aus…
![Page 15: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/15.jpg)
Am Beispiel eines Antadapters
![Page 16: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/16.jpg)
Service = Programm + ServiceDeskriptor + (Adapter)
Geppi Stack so far
![Page 17: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/17.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 18: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/18.jpg)
(K)ein Enterprise Service Bus
Aufgabe
Services müssen redundant vorhanden sein
Kompensation von Ausfällen, Wartbarkeit
Installation und Verwaltung eines Services darf nicht kompliziert sein
agiles, marktgetriebenes Anwendungsszenario erzwingt häufige Änderungen
Services sollen „lose“ gekoppelt werden
Änderungen beherrschbar machen
Lösung
![Page 19: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/19.jpg)
(K)ein Enterprise Service Bus
Das wurde doch als Waschmaschinen Steuerung
erfunden !?
![Page 20: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/20.jpg)
Jini ist ein Framework und Programmiermodell zum Aufbau von service-orientierten, verteilten Anwendungen
In Jini ist alles ein Services und kann mittels Lookup an der integrierten Registry angesprochen werden
Verfügbarkeit durch Redundanz ist fester Bestandteil des Programmiermodells
(K)ein Enterprise Service Bus
Jini RegistryJini
Service Provider
Jini Service Consumer
registriertInterface
suchtInterfaceImplementierung
benutzt Servicevia Service-Proxy
![Page 21: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/21.jpg)
(K)ein Enterprise Service Bus
Zuverlässigkeit
JINI-Infrastruktur => Ausfallsicherheit eingebaut
Transport
Service Verwaltung
Keine zentrale Konfiguration der Services notwendig
Discovery
Services können anhand ihrer Beschreibung eindeutig zugeordnet werden
lose Kopplung
Überwachung
![Page 22: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/22.jpg)
SOA-Services werden über ihre Eigenschaften adressiert
Der Service Finder nimmt intelligentes Routing vor
Service-Calls werden immer Punkt zu Punkt ausgeführt
Sowohl für den Service-Provider als auch für den Service-Consumer bleiben die technischen Details verborgen
(K)ein Enterprise Service Bus
![Page 23: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/23.jpg)
Distributed Enterprise Service Bus
Message Bus
AdresscheckKundendaten
Web-Service EJBs SAPServer
Anbindung über Web-Services
TransportReliability Routing Discovery Mapping
Bestellprozess
Aufgaben eines Enterprise Service Bus:
Konnektivität herstellen Daten transformieren Daten routen Sicherheit
Zuverlässigkeit Service Verwaltung Überwachen, Protokolieren und
Debuggen
![Page 24: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/24.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 25: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/25.jpg)
Business Process Management
Flexible Kombination (Orchestrierung) von Services dank Workflow-Engine
Entscheidung für JBPM, da flexibel erweiterbar (XML-Basis)
![Page 26: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/26.jpg)
Business Processes Management
Vertrag zwischen Workflow-Knoten und ServiceDeskriptor
Die Prozesssteuerungsdaten werden über den Workflow ausgetauscht
![Page 27: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/27.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 28: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/28.jpg)
Architektur-Überblick
![Page 29: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/29.jpg)
JBPM Workflowengine (Arbeitgeber mit Plan)Die Workflowengine arbeitet Prozessablaufpläne ab. Sie kennt die Reihenfolge und Art der Aufgaben, welche nötig sind, um einen Usecase zu bearbeiten.
Jini-Registry (Arbeitsamt)Verwaltet die vorhanden ExecutionUnits. Bei ihr kanndas GEPPI-System erfragen, „wer“ eine benötigteDienstleistung erbringen kann.
ExecutionUnit (Arbeitsuchender)Die ExecutionUnit (Agent) bietet die Dienstleistungen(Services) an, die sie von den ServiceDeskriptorenangeboten bekommt.
Ant-Adapter (Eurostecker mit Mehrwert)Ein Ant-Adapter ist eine Art Vermittler, welcher GEPPI an die Anforderungen und Belange von zu steuerndenSoftwarekomponenten anpasst.
Architektur-Überblick (Management)
![Page 30: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/30.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 31: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/31.jpg)
Service-Kategorien
SOA-Services− Deskriptor und Adapter machen SW zum Service
Technische Services / Utility-Services− Teil der SOA-Infrastruktur, keine SOA-Services
− für SOA-Services transparent
![Page 32: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/32.jpg)
Service-Kategorien
Distributed ESB− verteilte ESB-Funktionalität
− Punkt-zu-Punkt-Kommunikation
− Protokoll für Services transparent
− Service Provider sind ausschließlich Provider
− Service Consumer sind ausschließlich Consumer
![Page 33: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/33.jpg)
Service-Kategorienmatrix
nach Maier, Normann, Trops, Utschig-Utschig, Winterberg
(S&S SOA-Spezial 2009)Systems
Integration
Business
Objects
Geschäftsprozesse
Geschäftsregeln
Business ProcessService
Integration Process
Business Object Service
Business Activity Service
Business Rule Service
Decision
Business Rule Service
Validation
Adapter
System A Service A
Adapter
System B
private
public
![Page 34: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/34.jpg)
Service-Kategorienmatrix
Systems
Integration
Business
Objects
Geschäftsprozesse
Geschäftsregeln
Adapter
Software
Invisible/Local
Visible/SOA
ProcessService
Service
![Page 35: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/35.jpg)
Service-Kategorien
Notwendige Funktionalität− GEPPI Process Management− GEPPI Services
Verzicht auf nicht benötigte Flexibilität− Nur Public Services – private Services sind
nicht Teil der SOA− Keine Composite Services möglich – nur eine
Service-Hierarchieebene
![Page 36: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/36.jpg)
Inhalt
Ausgangssituation
Services: Lose Kopplung via Agent
(K)ein Enterprise Service Bus
Business Process Management
Architekturübersicht
Service Kategorien
SOA und Organisation
![Page 37: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/37.jpg)
Governance SOA
![Page 38: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/38.jpg)
Governance SOA
![Page 39: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/39.jpg)
Governance SOA
![Page 40: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/40.jpg)
Governance SOA
SOA ausgerichtet an bestehender Organisation des Unternehmensbereichs und nicht umgekehrt
Projektteams verantworten ihre Fachdomäne:
− Technik und
− Fachlichkeit (Businessprozesse)
SOA/IS-Team als Dienstleister der Projektteams
Übergreifende Geschäftsprozesse werden durch schlanke Superworkflows geklammert
![Page 41: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/41.jpg)
Pragmatic SOA
GEPPI ist keine SOA passend für alle Anwendungsfälle,
sondern die optimale Software
für genau diese Anforderungen und genau diese Organisation.
![Page 42: Pragmatic SOA - Beschränken auf das Wesentliche](https://reader033.vdocuments.site/reader033/viewer/2022052905/5583d79cd8b42ace2f8b4e78/html5/thumbnails/42.jpg)
Noch Fragen
Pragmatic SOA