03.12.01 Pühringer, Duscher 1 „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, 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>