Upload
otthild-books
View
111
Download
0
Embed Size (px)
Citation preview
eFlow
Claudia Pircher Barbara Unterthurner
eFlow 2
Inhalt Einführung und Motivation Überblick über eFlow Dynamic Service Discovery Multiservice Nodes Generic Service Nodes Modifikationen
eFlow 3
Einführung und Motivation 1
Über das Internet angebotene E-Services müssen mit einer sich ständig verändernden, also stark dynamischen Geschäftsumwelt fertig werden
Durch fortwährende Weiterentwicklung der Technologie und dadurch, dass viele Geräte internetfähig wurden, wächst die Zahl und Art der Services und Anbieter täglich
Der Wettbewerb wächst und die Anbieter sind gezwungen kundenspezifische Services anzubieten um wettbewerbs-fähig zu bleiben, z.B. e-move
Diese Entwicklung stellt hohe Anforderungen an ein System, welches die Entwicklung und Zustellung von composite e-services unterstützen soll.
eFlow 4
Einführung und Motivation 2
eFlow ist eine Plattform um composite e-services zu spezifizieren, in Gang zu setzen und zu überwachen
Composite e-services sind Prozesse die andere composite oder Basis-Services zu einem Service zusammenfügen
Bietet Vielzahl von Funktionen, welche die Service-Prozess-Spezifikation und das Service-Prozess Management unterstützen
Besitzt mächtige, trotzdem einfache service composition language
Event und Exception-Handling
ACID Service- Level Transaktionen (Abgeschlossene Bereiche)
Security-Management
Überwachungsfunktionen
eFlow 5
Einführung und Motivation 3
Über das Internet angebotene E-Services müssen also mit einer sich ständig verändernden Geschäftsumwelt fertig werden
Natürlich ist es nicht möglich den Prozess kontinuierlich den Änderungen der Marktbedingungen anzupassen
Änderungen würden zu häufig auftreten Außerdem sind Prozessänderungen eine
delikate und zeitaufwendige Angelegenheit Es sollte aber möglich sein Prozessänderungen
mit minimalsten Benutzereingriff oder mit keinem Eingriff durchzuführen
eFlow 6
Einführung und Motivation 4
Es sollte auch möglich sein Prozess-Definitionen oder Änderungen auf einfache und effektive Art durchzuführen, wo Benutzereingriff erforderlich
Um dynamische Prozessmodifikationen zu ermöglichen, war eines der Hauptziele die Schaffung einer einfachen Modifikationssemantik
Bildung von Konsistenzregeln
Bildung von Autorisationsregeln
eFlow 7
Composite E-Services Composite e-services sind Prozesse die andere
composite oder Basis-Services zu einem Service zusammenfügen
Composite services werden als Geschäftsprozesse modelliert und durch ein Prozessschema beschrieben
Sie werden vom Service-Process-Engine ausgeführt
Ein Service wird durch einen Graphen dargestellt, welche die Ausführungsordnung zwischen den einzelnen Nodes angibt.
eFlow 8
Nodes
Service Nodes: stellen den Aufruf eines Basis/Composite-Services dar
Decision Nodes: spezifizieren die Alternativen und Regeln, welche den Ausführungsfluss kontrollieren
Event Nodes: ermöglichen es den Service-Prozessen verschiedene Eventtypen zu senden und zu empfangen
eFlow 9
Prozess-Instanz-Schema
Informations-beschaffung
RestaurantReservierung
Werbung Einladung Registrierung
RechnungsAusstellung
eFlow 10
Überblick über eFlow
Eine Instanz des Service-Prozesses wird durch Inkrafttreten des Prozessschemas erzeugt
Der selbe Prozess kann mehrmals instanziert werden, und es können auch mehrere Instanzen gleichzeitig laufen
Service Nodes haben einen Zugang zu den Daten der Fall-Packets, sie können diese lesen und ändern
Jede Prozessinstanz hat eine lokale Kopie dieser Fall-Packets
eFlow 11
Service-Node-Spezifikation Die Service-Node-Spezifikation beinhaltet
welche Daten der Service Node zu lesen und ändern berechtigt ist,
die Beschreibung des Services, der aufgerufen werden soll
Die vom Kunden gestellten Anforderungen, Einen letzten Ausführungstermin, im Falle
eines Verzugs Weiters beinhaltet sie eine Service-Auswahl-
Anweisung, welche verschiedene Eingangs- und Ausgangsparameter haben kann
eFlow 12
Abgeschlossene Bereiche
Abgeschlossener Bereich
Identifiziert einen Teil des Prozessgraphen, welcher nach dem ACID-Prinzip ausgeführt werden soll.
Kompensationsaktionen
Spezifikation von Isolation modes
eFlow 13
Engine Prozessinstanzen werden vom Engine in
Kraft gesetzt
Der Engine kontrolliert den Zugang zu den Fall-Packet-Daten
Seine Hauptaufgabe ist es Nachrichten zu bearbeiten 1 Nachricht über Zustand des Services 2 Mitteilungen eingetretener Events
Diese gibt er in 2 FIFO-Queues ohne spezifizierte Priorität
eFlow 14
Aufgaben des Engine 1 aktualisiert die Prozessdaten, bereitet nächsten Knoten
für die Ausführung vor
1 weiters kontaktiert er den Vermittler um den Service und Service-Provider zu entdecken der die in der Service-Node-Definition spezifizierten Anforderungen erfüllt
Kontaktiert dann Service-Provider um Service auszuführen
2 Die events bearbeitet er indem er sie den anfordernden Nodes zustellt
Protokolliert jedes Event und garantiert Prozessintegrität
eFlow 15
Überblick
eFlow Service Broker
eFlowEngine
Proxy
Proxy
Speicher fürSchema-
Definitionen
Log fürInstanz-
Ausführung
Speicher fürService-Beschrei-bungen Event queue
Service completion queue
ExternalServiceBroker Service
EventMonitor
eFlow 16
Anpassungsfähige Service Prozesse
Um mit den ständigen Veränderungen zurecht zu kommen und um daraus einen Vorteil zu ziehen, müssen Service-Prozesse anpassungsfähig sein,
d.h. Änderungen unter minimalsten Eingriff der Benutzer oder durch keinen Eingriff von außen durchzuführen.
eFlow bietet verschiedene Funktionen an: Dynamic Service Discovery Multiservice Nodes Generic Nodes
eFlow 17
Dynamic Service Discovery Warum?
Um mit den Charakteristiken der Internetumgebung klarzukommen bietet eFlow eine offene und dynamische Vorgehensweise für die Service-Auswahl
Statische Service-Bindung ist oft zu starr, ermöglicht nicht:
Auswählen des passenden Services abhängig von Kundenwünschen
Entkoppeln der Serviceauswahl von der Prozessdefinition
Dynamische Entdeckung der verfügbaren Services, welche am besten die Wünsche eines spezifischen Kunden erfüllen
eFlow 18
Dynamic Service Discovery 2
Ist ein Service-Node gestartet, ruft der engine eine Service-Broker, einen Vermittler auf
Benutzer können aber einen eigenen Vermittler auswählen: Plugged-in Broker
Dieser führt die spezifische Regel aus und liefert den entsprechenden Service zurück
Diese Service-Auswahl-Anweisung sind in einer Broker-spezifischen Sprache definiert, z.B. XQL für e-speak
eFlow fordert nur, dass die Regel ein XML-Dokument zurück liefert
Diese soll die Definition der Eingangs- und Ausgangsdaten, die zu benutzende URI um den Service zu kontaktieren, Rechnungs- und Zahlungsinformationen, einen Prioritätswert enthalten
eFlow 19
Dynamic Service Discovery
Eflow Ser-vice-Broker
EfloeEngine
Proxy
Proxy
Speicher fürSchema-
Definitionen
Log fürInstanz-
Ausführung
Speicher fürService-Beschrei-bungen Event queue
Service completion queue
ExternalServiceBroker Service
EventMonitor
Service-Auswahl-Anweisung
XML-Dokument
eFlow 20
Dynamic Service Discovery 3 Mapping
Mapping zwischen den Eingangs/Ausgangsdaten und den aufgerufenen Service wird durch eine Mapping-Funktion realisiert, welche als ein Set von Stringpaaren spezifiziert ist
<case packet variable name, service variable name>
Eine Mapping-Funktion muss für ein Paar <service node, service description> definiert werden
Und zwar bevor der Service aufgerufen wird
eFlow 21
Dynamic Service Discovery 4 Plugged-in Broker
Bei Plugged-in Broker: diese müssen nicht unbedingt Zugang zum Service-Speicher haben Service-Auswahl-Anweisung werden in der
Sprache, die der Broker unterstützt definiert
Selbe einfache Schnittstelle des Default-Brokers präsentieren
Oder Adapter muss vermitteln Mapping-Funktion zurück schicken
eFlow 22
Multiservice Node
Multiservice NodesKnoten zur mehrfachen, parallelen
Aktivierung des selben e-Services.
Kreditprüfung
Kreditprüfung: Kunde 1
Kreditprüfung: Kunde 2
Kreditprüfung: Kunde 3
Informationsbeschaffung
...
eFlow 23
Multiservice Nodes Bestimmungs-Faktoren für die Anzahl
der zu aktivierenden Instanzen: Anzahl der Service-Anbieter Inputparameter
Terminierungs-Bedingung: Abschluss aller Services Erhalten eines bestimmten Ergebnisses
eFlow 24
...
<MULTISERVICE_NODE id="check_customer_credit">
<NAME> check Customers´credit </NAME>
<SERVICE_NODE id="check_single_customer_credit" />
<DESCRIPTION> Multiservice der die Kredit Historie
verschiedener Kunden parallel prüft
</DESCRIPTION>
<ACTIVATION mode="by_variable" varref="custermers_list" />
<TERMINATION> rejections.length > 0 </TERMINATION>
<MULTISERVICE_NODE>
...
Multiservice Nodes Spezifikation eines Multiservice-Nodes
eFlow 25
Generic Service Nodes Knoten zur Aktivierung mehrerer,
unterschiedlicher e-Services. Platzhalter-Element
Flexible Gestaltung der e-Services zur Befriedigung individueller Kundenwünsche
eFlow 26
Generic Service Nodes
Restaurant Reservierung
Generic Node
Rechnungausstellen
Parameter-Liste
BereitstellungAudiogeräte
EngagierungTontechniker
...
Service-NodePool
eFlow 27
Generic Service Nodes Enthält einen Parameter für die
Services Parameter ist vom Typ ListOf(Service_Node)
Ausführungsweise wird im Attribut executionMode festgelegt: sequential (Schleife) parallel
eFlow 28
Generic Service Nodes Spezifikation eines Generic Service Nodes
...
<GENERIC_NODE id="award_ceremony_services>
<NAME> Award Ceremony Service </NAME>
<SERVICE_NODE_POOL> Ceremony Service Pool </SERVICE_NODE_POOL>
<DESCRIPTION> Platzhalter für Service-Knoten, die sich auf einen Ceremony-Service beziehen und parallel ausgeführt werden
</DESCRIPTION>
<SERVICE_SELECTION_VAR> SelectedServices </SERVICE_SELECTION_VAR>
<EXECUTION_MODE mode="parallel" />
</GENERIC_NODE>
...
eFlow 29
Modifikationen Ursachen
neue Gesetzeslage oder Geschäftsstrategie
Prozessoptimierung Fehlerkorrektur Mangelhaftigkeit der aktuellen Definition
Modifikationsarten: Ad-hoc Modifikation Pulk-Modifikation
eFlow 30
Ad-hoc-Modifikation Modifikation einer einzelnen,
laufenden Prozess-Instanz
Zwei Arten: Änderung des Prozess-Instanz-
Schemas Änderung des Prozess-Instanz-Status
eFlow 31
Ad-hoc-Modifikation Prozess-Instanz-Schema
Informations-beschaffung
RestaurantReservierung
Werbung Einladung Registrierung
RechnungsAusstellung
Quell-Schema
eFlow 32
Ad-hoc-Modifikation Prozess-Instanz-Schema
Informations-beschaffung
RestaurantReservierung
Werbung Einladung Registrierung Catering
RechnungsAusstellung
Ziel-Schema
eFlow 33
Ad-hoc-Modifikation Vorgehen
migrationmanager
eFlow engine
Speicher fürSchema-
Definitionen
Log fürInstanz-
Ausführung
1: Identifikation d. Instanz
Definition Ziel-Schema
2: Anweisung, Ausführung d. Instanz zu unterbrechen
3: Prüfung der Konsistenz des neuen Schemas durch Zugriff auf
Ausführungsstatus und Definition des
alten Schemas
4a: Bilden des ausführbaren
Instanz-Schemas
5: Anweisung, Ausführung d. Instanz
fortzusetzen
4b: Fehlermeldung
1 2
33
4a
4b 5
Benutzer
event queue
service completion queue
eFlow 34
Ad-hoc-Modifikation: Konsistenz-Regeln
Gerade aktive Knoten müssen im Ziel-Schema enthalten sein
Variable, die im Quell- und Zielschema enthalten sind, müssen vom gleichen Typ sein
Spezielle Regeln bezüglich des Abgeschlossenen Bereichs
eFlow 35
Ad-hoc-Modifikation: Prozess-Instanz-Status
Durch den service operation monitor
ohne Unterbrechung des Prozesses Aktionen:
Ändern der Instanz-Packet-Variablen Wiederholen von Prozessbereichen Beenden des Prozesses Neuzuweisung eines Knotens an einen
anderen Service
eFlow 36
Pulk-Modifikation Modifikation mehrerer, laufender
Prozess-Instanzen des selben Prozesses mit gleichen Eigenschaften
Beispiel: Änderungs-AnweisungIF (guests > 100) THEN MIGRATE TO
“Security_Ceremony_Service"
eFlow 37
Pulk-Modifikation: Beispiel
IF cond1 THEN MIGRATE TO D1IF cond2 THEN MIGRATE TO D2IF cond3 THEN MIGRATE TO D3
Quell-Schema
Ziel-Schema D1
Ziel-Schema D1
Ziel-Schema D1
Änderungs-Anweisungen
eFlow 38
Pulk-Modifikation: Vorgehen
1. Definition, Compilierung und Überprüfung der Überführungs-Vorschrift
2. Unterbrechung aller laufender Instanzen des Prozesses
3. Prüfung der Erfüllung der Bedingung der Änderungs-Anweisung
4. Prüfung der Konsistenz-Regeln und der Autorisierung
5. Durchführung der Änderung6. Fortsetzen der Ausführung
eFlow 39
Sicherheits-Regeln Berechtigungen in Abhängigkeit
vom Ausführungs-Status Berechtigungen:
Authorized_State_Modifiers Authorized_Node_Modificators Authorized_Flow_Modificators Authorized_Initiators
eFlow 40
Implementierung Prototyp von HP (F. Casati, M. Shan)
basierend auf e-speak und Process Manager http://www.research.microsoft.com/research/db/debull/A01mar/issue.htm
Ansatz der Universität Saarland (G. Shegalov, M. Gillmann, G. Weikum) Java-basiert und XML-basiert http://www-dbs.cs.uni-sb.de/~gillmann/Publications/XML-TES.pdf
eFlow 41
Zusammenfassung Einführung und Motivation Überblick über eFlow Dynamic Service Discovery Multiservice Nodes Generic Service Nodes Modifikationen
eFlow 42
Literatur F. Casati, S Ilnicki, L. Jin, V. Krishnamoorthy, M. Shan, Adaptive
and Dynamic Service Composition in eFlow, Technical Report HPL-2000-39, HP Software Technology Laboratory, März 2000: http://www.hpl.hp.com/techreports/2000/HPL-2000-39.pdf
F. Casati, S Ilnicki, L Jin, V. Krishnamoorthy, M Shan, eFlow: a Platform for Developing and Managing Composite e-Services, Technical Report HPL-2000-36, HP Software Technology Laboratory, März 2000: http://www.hpl.hp.com/techreports/2000/HPL-2000-36.pdf
F.Casati, M. Shan, Definition, Execution, Analysis, and Optimization of Composite E-Services, HP Laboratories, 2001: http://www.research.microsoft.com/research/db/debull/A01mar/issue.htm