420 likes | 572 Views
eFlow. Claudia Pircher Barbara Unterthurner. Inhalt. Einführung und Motivation Überblick über eFlow Dynamic Service Discovery Multiservice Nodes Generic Service Nodes Modifikationen. Einführung und Motivation 1.
E N D
eFlow Claudia Pircher Barbara Unterthurner
Inhalt • Einführung und Motivation • Überblick über eFlow • Dynamic Service Discovery • Multiservice Nodes • Generic Service Nodes • Modifikationen eFlow
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
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
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
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
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
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
Informations- beschaffung Restaurant Reservierung Werbung Einladung Registrierung Rechnungs Ausstellung Prozess-Instanz-Schema eFlow
Ü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
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
Abgeschlossene Bereiche • Abgeschlossener Bereich • Identifiziert einen Teil des Prozessgraphen, welcher nach dem ACID-Prinzip ausgeführt werden soll. • Kompensationsaktionen • Spezifikation von Isolation modes eFlow
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
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
Log für Instanz- Ausführung External Service Broker Service eFlow Service Broker eFlow Engine Event Monitor Service completion queue Speicher für Service- Beschrei- bungen Speicher für Schema- Definitionen Proxy Event queue Überblick Proxy eFlow
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
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
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
Log für Instanz- Ausführung External Service Broker Service Eflow Ser- vice-Broker Efloe Engine Event Monitor Service completion queue Speicher für Service- Beschrei- bungen Speicher für Schema- Definitionen Proxy Event queue Dynamic Service Discovery Service-Auswahl-Anweisung Proxy XML-Dokument eFlow
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
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
Multiservice Nodes Knoten zur mehrfachen, parallelen Aktivierung des selben e-Services. Informationsbeschaffung MultiserviceNode Kreditprüfung: Kunde 1 Kreditprüfung Kreditprüfung: Kunde 2 Kreditprüfung: Kunde 3 ... eFlow
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
Multiservice Nodes • Spezifikation eines Multiservice-Nodes ... <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> ... eFlow
Generic Service Nodes • Knoten zur Aktivierung mehrerer, unterschiedlicher e-Services. • Platzhalter-Element Flexible Gestaltung der e-Services zur Befriedigung individueller Kundenwünsche eFlow
Generic Service Nodes Restaurant Reservierung Parameter-Liste Bereitstellung Audiogeräte Service-Node Pool Generic Node Engagierung Tontechniker ... Rechnung ausstellen eFlow
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
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
Modifikationen • Ursachen • neue Gesetzeslage oder Geschäftsstrategie • Prozessoptimierung • Fehlerkorrektur • Mangelhaftigkeit der aktuellen Definition • Modifikationsarten: • Ad-hoc Modifikation • Pulk-Modifikation eFlow
Ad-hoc-Modifikation • Modifikation einereinzelnen, laufenden Prozess-Instanz • Zwei Arten: • Änderung des Prozess-Instanz-Schemas • Änderung des Prozess-Instanz-Status eFlow
Ad-hoc-ModifikationProzess-Instanz-Schema Quell-Schema Informations- beschaffung Restaurant Reservierung Werbung Einladung Registrierung Rechnungs Ausstellung eFlow
Ad-hoc-ModifikationProzess-Instanz-Schema Ziel-Schema Informations- beschaffung Restaurant Reservierung Werbung Einladung Registrierung Catering Rechnungs Ausstellung eFlow
Ad-hoc-ModifikationVorgehen 1: Identifikation d. Instanz Definition Ziel-Schema 2: Anweisung, Ausführung d. Instanz zu unterbrechen eFlow engine migration manager 1 2 5 4b 5: Anweisung, Ausführung d. Instanz fortzusetzen 4b: Fehlermeldung Benutzer 3 3 3: Prüfung der Konsistenz des neuen Schemas durch Zugriff auf Ausführungsstatus und Definition des alten Schemas 4a 4a: Bilden des ausführbaren Instanz-Schemas Speicher für Schema- Definitionen Log für Instanz- Ausführung event queue service completion queue eFlow
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
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
Pulk-Modifikation • Modifikation mehrerer, laufender Prozess-Instanzendes selben Prozessesmit gleichen Eigenschaften • Beispiel: Änderungs-Anweisung IF (guests > 100) THEN MIGRATE TO “Security_Ceremony_Service" eFlow
Pulk-Modifikation: Beispiel Ziel-Schema D1 Änderungs-Anweisungen IF cond1 THEN MIGRATE TO D1 IF cond2 THEN MIGRATE TO D2 IF cond3 THEN MIGRATE TO D3 Ziel-Schema D1 Ziel-Schema D1 Quell-Schema eFlow
Pulk-Modifikation: Vorgehen • Definition, Compilierung und Überprüfung der Überführungs-Vorschrift • Unterbrechung aller laufender Instanzen des Prozesses • Prüfung der Erfüllung der Bedingung der Änderungs-Anweisung • Prüfung der Konsistenz-Regeln und der Autorisierung • Durchführung der Änderung • Fortsetzen der Ausführung eFlow
Sicherheits-Regeln • Berechtigungen in Abhängigkeit vom Ausführungs-Status • Berechtigungen: • Authorized_State_Modifiers • Authorized_Node_Modificators • Authorized_Flow_Modificators • Authorized_Initiators eFlow
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
Zusammenfassung • Einführung und Motivation • Überblick über eFlow • Dynamic Service Discovery • Multiservice Nodes • Generic Service Nodes • Modifikationen eFlow
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 eFlow