42
Pragmatic SOA Beschränken auf das Wesentliche M. Wittum | 1& 1 Internet AG D. Schmid | 1& 1 Internet AG Dr. T. Breitkopf | Netviewer AG

Pragmatic SOA - Beschränken auf das Wesentliche

Embed Size (px)

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.

Citation preview

Page 1: Pragmatic SOA - Beschränken auf das Wesentliche

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

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

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

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

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

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

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

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

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

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

SOA-Service = Webservice?

Page 12: Pragmatic SOA - Beschränken auf das Wesentliche

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

??? Wie funktioniert das?

Deskriptive, lokale Schnittstelle

mit Konventionen

Page 14: Pragmatic SOA - Beschränken auf das Wesentliche

Konkret sieht das so aus…

Page 15: Pragmatic SOA - Beschränken auf das Wesentliche

Am Beispiel eines Antadapters

Page 16: Pragmatic SOA - Beschränken auf das Wesentliche

Service = Programm + ServiceDeskriptor + (Adapter)

Geppi Stack so far

Page 17: Pragmatic SOA - Beschränken auf das Wesentliche

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

(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

(K)ein Enterprise Service Bus

Das wurde doch als Waschmaschinen Steuerung

erfunden !?

Page 20: Pragmatic SOA - Beschränken auf das Wesentliche

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

(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

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

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

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

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

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

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

Architektur-Überblick

Page 29: Pragmatic SOA - Beschränken auf das Wesentliche

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

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

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

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

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

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

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

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

Governance SOA

Page 38: Pragmatic SOA - Beschränken auf das Wesentliche

Governance SOA

Page 39: Pragmatic SOA - Beschränken auf das Wesentliche

Governance SOA

Page 40: Pragmatic SOA - Beschränken auf das Wesentliche

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

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

Noch Fragen

Pragmatic SOA