03.12.01 Pühringer, Duscher 1 Workflow Mediation with VorteXML Artikel von [Christophides, Hull,...

Post on 05-Apr-2015

103 views 0 download

Transcript of 03.12.01 Pühringer, Duscher 1 Workflow Mediation with VorteXML Artikel von [Christophides, Hull,...

03.12.01Pühringer, Duscher1

„Workflow Mediation with VorteXML“

Artikel von [Christophides, Hull, Kumar, Simeon] ©2000

Bell Laboratories, Lucent Technologies Institue of Computer Science, FORTH,

Heraklion

03.12.01Pühringer, Duscher2

Problem

Elektronischer Marktplatz: Kunden, Lieferanten, Händler interagieren über eine Plattform

Folgende Aktionen:– Suche nach Produkten– Vergleich der Konditionen – Verfolgen des Workflows– Interagieren mit dem WFS

Lösung??

03.12.01Pühringer, Duscher3

Problem

Traditionell: WFMS auf zentrale und homogene Umgebung konzentriert – durch Unternehmensgrenzen eingeschränkt

Voraussetzungen:– Kooperation zwischen verschiedenen WF-Systemen– Verketten der unterschiedlichen Prozesse– Modellierung der Prozesse mittels eines gemeinsamen

Standards

03.12.01Pühringer, Duscher4

Lösung

Framework basierend auf XML

Regelbasierte Unterstützung vonProdukt/Service – Beschreibungen

„Worklfow Mediation“ über Organisationsgrenzen hinweg

03.12.01Pühringer, Duscher5

Was gibts am Markt?

Verschiedenste Projekte befassen sich mit WorkFlow-Repräsentation

– CrossFlow– WISE– FlowJet– InterWorkflow...........

Gemeinsamkeit: Vermittlung der Daten zwischen den Workflows

03.12.01Pühringer, Duscher6

VorteXML Workflow Mediator

Middleware

Entwicklungsphase

Basiert auf 3 Technologien– XRL: heterogene Workflow-Repräsentation– XML Algebra: Basis für Query Sprachen– VorteXML: basiert auf Vortex, unterstützt heuristisches

Schließen während WorkFlow Execution

03.12.01Pühringer, Duscher7

VorteXMLWorkflow Mediator

Ziel: entwickeln eines „Workflow Mediators“ für übergreifende Geschäftsprozesse

Anforderungen:– Kontrolle der Workflows und Daten– Dynmaisches Modellieren neuer Workflows

........und zwar geschäfts- u. prozessübergreifend!– „schließendes Verhalten“

z.B. Was passiert bei Verspätungen?

03.12.01Pühringer, Duscher8

Aufbau

Abb1.: Aufbau des VorteXML Workflow Mediators (VWM) am Beispiel „Auswahl, Zusammenbau und Kauf von PC´s “

03.12.01Pühringer, Duscher9

Aufbau

Planning Module

Data Transformation Module

Execution Module

03.12.01Pühringer, Duscher10

Planning Module

verwendet Workflow Schemas basierend auf Zielen hierarchische Plannung Workflow Schema Templates aus Bibliothek können in „Slots“ bestehender Templates eingefügt

werden Möglichkeit von „schema splicing“,

erzeugen neuer Workflows aus bereits bestehenden Output ist Workflow Schema in XRL Planning Module durch VorteXML spezifiziert

03.12.01Pühringer, Duscher11

Data Transformation Module

Query Prozessor wird von den anderen Modulen genutzt Verwendung der „high-level“ - Sprache XML Algebra ,

wenn verfügbar erlaubt Restrukturierung der Daten

03.12.01Pühringer, Duscher12

Execution Module

Ausführung und Überwachung der Schemas des Planning Module

bei Fehlern und Exceptions Rückmeldung an Planning Module

03.12.01Pühringer, Duscher13

Möglicher Flow(Suchen von PCs)

1. Erzeugen eines Workflow Schemas

2. Ausführen des Schemas

3. Auswählen von PC´s gemäß den Kriterien

4. Erzeugen eines neuen Workfow Schemas zum Bestellen der PCs

5. Ausführen des Schemas aus (4)

6. Überwachung der Ausführung

7. Falls Fehler/Verzögerungen zurück zu (4)

03.12.01Pühringer, Duscher14

Möglicher Flow(Suchen von PCs)

Planning Module 1.Erzeugen eines Workfow Schemas

Execution Module 2.Ausführen des Schemas

Execution Module 3.Auswählen von PC´s gemäß den Kriterien

Planning Module 4.Erzeugen eines neuen Workfow Schemas zum Bestellen der PCs

5.Ausführen des Schemas aus (4)

Execution Module 6.Überwachung der Ausführung

7.Falls Fehler/Verzögerungen zurück zu (4)

03.12.01Pühringer, Duscher15

Data Transformation

wird an vielen Stellen von der VWM verwendet XML Algebra Beispiel zeigt XML Schema, dass relevante Informationen

bereitstellt Umwandlung von unterschiedlichen Herstellerformaten in

ein Universalformat

03.12.01Pühringer, Duscher16

Data Transformation

type Micron_PC = micron_PC [ @computer_id [ Integer ], model [ String ], processor [

model [ String ], speed [ String ]

], memory [ String ], price [ Integer ], ...]

type Uniform_PC = uniform_PC[ @pc_id [ Integer ], @brand [ String ], @model [ String ],processor [ String ],memory [ Integer ],price [ Integer ],... ]

fun Transform_PC_Format(p:Micron_PC |

Cybermax_PC | ... ) : Uniform_PC =

match p

case q:Micron_PC do

Uniform_PC [

@PC_id [q/@computer_id/data()],

@brand ["Micron"],

@model [q/model/data()],

processor [q/processor/model/data() ],

memory [cast (q/memory/data()):Integer],

price [q/price/data()],

... ]

03.12.01Pühringer, Duscher17

XRL schemas & templates

VWM verwendet XRL um Workflow Schemas darstellen zu können

basiert auf Templates beinhalten „Slot“ Elemente, die andere Templates

aufnehmen können

03.12.01Pühringer, Duscher18

XRL schemas & templates

let PC_purchase1 : XRLTemplate =

Route [

Sequence [

Parallel_sync [

Slot [param[buy_pc_template]],

Slot [param[buy_modem_template]],

], (* end Parallel_sync *)

Slot [param[assembly_template]]]

] (* end Sequence *)

] (* end Route *)

let buy_from_Micron1 : XRLTemplate =

Route [

in_parameters [pc_model:string,

ship_to:Address],

out_parameters [invoice:Invoice],

Task [ @name [send_order_to_Micron]],

@address ["buy_Micron1.exe"],

@d_read ["pc_model","ship_to"],

@d_update ["invoice","order_form"]

], (* end Task *)

... (* more Tasks *)

] (* end Route *)1. Erzeugen eines Workflow Schemas

2. Ausführen des Schemas

3. Auswählen von PC´s gemäß den Kriterien

4. Erzeugen eines neuen Workfow Schemas zum Bestellen der PCs

5. Ausführen des Schemas aus (4)

6. Überwachung der Ausführung

7. Falls Fehler/Verzögerungen zurück zu (4)

03.12.01Pühringer, Duscher19

XRL schemas & templates

let PC_purchase1 : XRLTemplate =

Route [

Sequence [

Parallel_sync [

Slot [param[buy_pc_template]],

Slot [param[buy_modem_template]],

], (* end Parallel_sync *)

Slot [param[assembly_template]]]

] (* end Sequence *)

] (* end Route *)

let buy_from_Micron1 : XRLTemplate =

Route [

in_parameters [pc_model:string,

ship_to:Address],

out_parameters [invoice:Invoice],

Task [ @name [send_order_to_Micron]],

@address ["buy_Micron1.exe"],

@d_read ["pc_model","ship_to"],

@d_update ["invoice","order_form"]

], (* end Task *)

... (* more Tasks *)

] (* end Route *)

03.12.01Pühringer, Duscher20

Schema splicing

erzeugen neuer Workflow Schemas aus existierenden Schemas und Templates

let mymapping : Mapping =

map [ param [ "pc_model" ],

entry_name [ "Millennia MAX XP" ] ],

map [ param [ "buy_pc_template" ],

entry_name [ "buy_from_Micron1" ] ],

• Mappings ermöglichen Korrespondenz zwischen den Parametern

03.12.01Pühringer, Duscher21

Schema splicing

Wie mymapping konstruiert werden soll, wird in VorteXML beschrieben

enthält Informationen z.B. über Zusammenstellung der PC-Modelle, der Händler, usw....

Kombination vom PC_Purchase1, mymappingund Elementen der Template-Bibliothek mittels XML Algebra Query

neues Workflow Schema

03.12.01Pühringer, Duscher22

Heuristic Reasoning

wird im Planning Module realisiert Hauptaufgaben:

– Auswahl von Alternativen– Auswahl von Templates aus Bibliothek und jener, die in Slots

eingefügt werden– Fehlerbehandlung– Zusätzliche Entscheidungen

Sprache VorteXML Erweiterung von Vortex DecisionFlow

03.12.01Pühringer, Duscher23

Heuristic Reasoning

VorteXML ermöglicht „heuristic reasoning“ mit XML „attribute-centric“ jede Entscheidung basiert auf Zuweisung von Werten zu

Zielattributen if <condition> then contribute <expression>