+ All Categories
Home > Documents > Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von...

Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von...

Date post: 06-Oct-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
86
Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät II Humboldt-Universität zu Berlin von Schwarz Hermann geboren am 16.04.1977 in Solikamsk / Russland Betreuer: Dipl.-Inf. Olaf Hartig eingereicht am: 20. November 2007
Transcript
Page 1: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Visualisierung von OWL-S-Prozessmodellen

STUDIENARBEIT

eingereicht an derMathematisch-Naturwissenschaftlichen Fakultät II

Humboldt-Universität zu Berlin

vonSchwarz Hermann

geboren am 16.04.1977 in Solikamsk / Russland

Betreuer: Dipl.-Inf. Olaf Hartig

eingereicht am: 20. November 2007

Page 2: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Inhaltsverzeichnis

1 Einführung 11.1 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Grundlagen 32.1 Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Ziele der Semantic Web Initiative . . . . . . . . . . . . . . . . 42.1.2 Ontologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.3 OWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.1 Standards und Architektur . . . . . . . . . . . . . . . . . . . . 82.2.2 Web Service - Klassen . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Semantic Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 OWL-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.1 Hauptelemente der Beschreibung eines Web Services . . . . . . 102.4.2 OWL-S-Prozessbeschreibung . . . . . . . . . . . . . . . . . . . 11

2.5 Arbeitsabläufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6 Visualisierung von Graphen . . . . . . . . . . . . . . . . . . . . . . . 14

2.6.1 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Theoretische Auseinandersetzung 163.1 Existierende Konzepte zur Visualisierung von Prozessmodellen . . . . 16

3.1.1 OWL-S-Editor für Protégé . . . . . . . . . . . . . . . . . . . . 173.1.2 UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.3 Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2 Visualisierung der OWL-S-Prozessmodelle . . . . . . . . . . . . . . . 233.2.1 Grafische Elemente . . . . . . . . . . . . . . . . . . . . . . . . 243.2.2 Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.2.3 Split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2.4 Split-Join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2.5 Any-Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2.6 Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.7 If-Then-Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

ii

Page 3: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2.8 Repeat-Until (Iterate) . . . . . . . . . . . . . . . . . . . . . . 383.2.9 Repeat-While (Iterate) . . . . . . . . . . . . . . . . . . . . . . 40

3.3 Formale Definition der Visualisierung . . . . . . . . . . . . . . . . . . 423.3.1 Definition der OWL-S-Prozessmodellbeschreibung . . . . . . . 423.3.2 Definition des Graphen . . . . . . . . . . . . . . . . . . . . . . 433.3.3 Erzeugung von OWL-S-Prozessmodellgraphen . . . . . . . . . 443.3.4 Visualisierung von OWL-S-Prozessmodellgraphen . . . . . . . 49

3.4 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4.1 Kantenüberschneidung . . . . . . . . . . . . . . . . . . . . . . 503.4.2 Visualisierung von Any-Order-Prozess . . . . . . . . . . . . . . 51

4 Praktische Umsetzung 554.1 Anforderungen an die Software . . . . . . . . . . . . . . . . . . . . . 55

4.1.1 Musskriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . 554.1.2 Wunschkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . 554.1.3 Produkteinsatz . . . . . . . . . . . . . . . . . . . . . . . . . . 564.1.4 Produktübersicht . . . . . . . . . . . . . . . . . . . . . . . . . 564.1.5 Produktfunktionen . . . . . . . . . . . . . . . . . . . . . . . . 564.1.6 Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . 58

4.2 Benutzte Java-Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . 584.2.1 OWL-S-Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.2.2 Visualisierung von Graphen . . . . . . . . . . . . . . . . . . . 59

4.3 Softwaremodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.3.1 Abarbeitungsablauf . . . . . . . . . . . . . . . . . . . . . . . . 604.3.2 Analyse der Anforderungen an die Software . . . . . . . . . . 614.3.3 Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4 Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5 Zusammenfassung und Ausblick 66

A Pseudocode der Implementierung 67

B Geschäftsprozesse 75

Bibliography 79

Page 4: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Abbildungsverzeichnis

2.1 Grafische Darstellung der Ontologie „Ärzte“ . . . . . . . . . . . . . . 62.2 Die oberste Ontologie eines Web Services nach [20] . . . . . . . . . . 10

3.1 Panels des OWL-S-Editors . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Visualisierung eines zusammengesetzten Prozesses mit Hilfe von OWL-

S-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3 Grafische Darstellung eines zusammengesetzten Prozesses BeispielSe-

quenz mit Hilfe von State Charts . . . . . . . . . . . . . . . . . . . . 203.4 Grafische Darstellung eines zusammengesetzten Prozesses BeispielSe-

quenz mit Hilfe von Aktivitätsdiagrammen . . . . . . . . . . . . . . . 213.5 Grafische Darstellung des zusammengesetzten Prozesses BeispielSequenz

mit Hilfe von Petri-Netzen . . . . . . . . . . . . . . . . . . . . . . . . 223.6 Grafische Darstellung des Kontrollkonstruktes Sequence . . . . . . . . 303.7 Grafische Darstellung des Kontrollkonstruktes Split . . . . . . . . . . 323.8 Grafische Darstellung des Kontrollkonstruktes Split-Join . . . . . . . 343.9 Grafische Darstellung des Kontrollkonstruktes Any-Order . . . . . . . 363.10 Grafische Darstellung des Kontrollkonstruktes Choice . . . . . . . . . 373.11 Grafische Darstellung des Kontrollkonstruktes If-Then-Else . . . . . . 373.12 Grafische Darstellung des Kontrollkonstruktes If-Then-Else ohne Else-

Zweig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.13 Grafische Darstellung des Kontrollkonstruktes Repeat-Until . . . . . . 403.14 Grafische Darstellung des Kontrollkonstruktes Repeat-While . . . . . 413.15 SplitAndJoin-Prozess innerhalb eines RepeatWhile-Prozesses ohne Start-

und Endpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.16 Choice-Prozess innerhalb eines RepeatWhile-Prozesses ohne Start- und

Endpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.17 SplitAndJoin-Prozess innerhalb eines RepeatWhile-Prozesses ohne Start-

und Endpunkt mit verletzter Planarität . . . . . . . . . . . . . . . . . 523.18 Choice-Prozess innerhalb eines RepeatWhile-Prozesses ohne Start- und

Endpunkt mit verletzter Planarität . . . . . . . . . . . . . . . . . . . 523.19 Mögliche Visualisierung eines Any-Order-Prozess mit vier beteiligten

atomaren Prozessen und kombinatorisch vielen Knoten . . . . . . . . 53

iv

Page 5: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.20 Mögliche Visualisierung eines Any-Order-Prozess mit vier beteiligtenatomaren Prozessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.21 Die gewählte Visualisierungsmöglichkeit eines Any-Order-Prozess mitvier beteiligten atomaren Prozessen . . . . . . . . . . . . . . . . . . . 54

4.1 Produktübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574.2 Abarbeitungsablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.3 Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 6: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Tabellenverzeichnis

2.1 Eigenschaften eines Prozesses . . . . . . . . . . . . . . . . . . . . . . 12

3.1 Grafische Elemente der Visualisierung . . . . . . . . . . . . . . . . . . 273.2 Abbildung der Knoten des Graphen G(V, E) . . . . . . . . . . . . . . 493.3 Abbildung der Kanten des Graphen G(V, E) . . . . . . . . . . . . . . 50

4.1 Vergleich der Performance von GraphVIZ und jgraph & jgraphT an-hand der Abarbeitungszeit . . . . . . . . . . . . . . . . . . . . . . . . 60

vi

Page 7: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Kapitel 1

Einführung

Das World Wide Web hat unsere Kommunikation und die Suche nach Informationenrevolutioniert. Allerdings gestaltet es sich wegen des ständigen Wachstums des WorldWide Web immer schwieriger, präzise Ergebnisse bei der Suche nach Informationen zuerzielen. Daraus ergab sich die Notwendigkeit der Weiterentwicklung des World WideWeb. Diese neue Generation des weltweiten Netzes wird als Semantic Web bezeichnetund verfolgt das Ziel, die Bedeutung der Daten, die im Internet verfügbar sind, auchfür Maschinen verstehbar zu machen. Das Ziel, das mit der Entwicklung des SemanticWeb verfolgt wird, erfordert den Einsatz und die Entwicklung neuer Technologien undKonzepte. Als eines der wichtigsten Konzepte zählt die Beschreibung der Daten imWeb durch Metadaten. Dies kann unter anderem mittels Resource Description Fra-mework (RDF) oder mittels Web Ontology Language (OWL) [21] umgesetzt werden.Mit Hilfe dieser Beschreibungssprachen ist es möglich, eine beliebige Ontologie zu de-finieren. Die Web Ontology Language for Web Services (OWL-S) [20] ist eine solcheOntologie. Mit ihrer Hilfe ist es möglich, Web Services semantisch zu beschreiben.In der vorliegenden Arbeit wird eine Teilmenge der OWL-S-Beschreibungen von WebServices untersucht und zwar die OWL-S-Prozessmodellbeschreibungen.

Die OWL-S-Prozessmodellbeschreibungen haben zwei Ziele. Zum einen ist es ei-ne Darstellung von Daten, die vom zu beschreibenden Web Service verarbeitet undproduziert werden. Diese Darstellung wird durch die Eingänge und Ausgänge be-schrieben. Die andere Art der Darstellung ist zustandsorientiert und wird durch Kon-trollkonstrukte erzeugt. Diese Beschreibung ist formal, was deren Lesbarkeit und dasVerständnis für einen Menschen erschwert. Daraus ergibt sich der Wunsch, die for-male Beschreibung der Prozesse eines gegebenen Web Services zu visualisieren. DieVisualisierung soll dabei möglichst intuitiv erfassbar sein.

1.1 Ziel der Arbeit

Das Ziel dieser Arbeit ist eine Untersuchung der existierenden Konzepte zur Visua-lisierung von OWL-S-Prozessmodellen und ausgehend von dieser Untersuchung die

Page 8: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2 1. Einführung

Erarbeitung eines eigenes Konzeptes zur Visualisierung eines solchen Modells. ImRahmen des praktischen Teils der Arbeit wird eine Java-Bibliothek entwickelt, diedie Visualisierung in der Praxis umsetzt. Diese praktische Umsetzung wird außerdembeschrieben und begründet.

1.2 Gliederung der ArbeitIn dieser Arbeit wird zunächst auf die grundlegenden Themen eingegangen und eswerden die für die Arbeit relevanten Konzepte, Technologien und Begriffe erläutert.

Im Kapitel 3 werden als Grundlage zur Entwicklung eines eigenes Konzeptes derVisualisierung von OWL-S-Prozessmodellen die existierende Konzepte untersucht. Alsnächstes wird das im Rahmen der vorliegenden Arbeit entwickelte Visualisierungskon-zept vorgestellt. Die Wahl der einzelnen Teile des Konzeptes wird begründet.

Zum besseren Verständnis der praktischen Umsetzung wird im Kapitel 4 der grobeAbarbeitungsablauf der entwickelten Software gezeigt. Die entwickelten Java-Klassenwerden durch ein Klassendiagramm dargestellt und erläutert. Bei der praktischenUmsetzung werden fremde Java-Bibliotheken benutzt. Deren Wahl ist an die Software-anforderungen und andere Beschränkungen gebunden und wird im Kapitel 4 auchbegründet. Es werden weiterhin die Ergebnisse des Tests der Software gezeigt.

Im Kapitel 5 wird diese Arbeit mit einer Zusammenfassung aller theoretischen undpraktischen Ergebnisse abgeschlossen.

Page 9: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Kapitel 2

Grundlagen

In diesem Kapitel werden die grundlegenden Begriffe definiert und es werden die fürdiese Arbeit relevanten Konzepte, Technologien und Begriffe erläutert. Damit wirddie Grundlage zum Verständnis des in der Arbeit zu erarbeitenden Themas geschaffenwerden.

Nach einer kurzen Einführung in das Semantic Web folgt eine Erläuterung desBegriffes Ontologie. Es wird eine Sprache zur Definition von Ontologien und eine spe-zielle Ontologie für Semantic Web Services vorgestellt. Darüber hinaus wird der BegriffArbeitsablauf erläutert. Abschließend wird es eine allgemeine Definition zu Visuali-sierungen von Graphen vorgestellt. Es wird aber auch die Methode zur Visualisierungvon Graphen vorgestellt, die in der vorliegenden Arbeit verwendet wird.

2.1 Semantic Web

Die Semantic Web Agreement Group (SWAG) 1 lieferte 2001 eine präzise Definitionfür den Begriff Semantic Web.

Definition 2.1.1 Das Semantic Web wird als ein World Wide Web bezeichnet, dasDokumente enthält, die die Beziehung zwischen Inhalten und der Bedeutung dieser In-halte explizit beschreiben, und zwar mit dem Ziel, diese Inhalte maschinenverarbeitbarzu machen [27].

In diesem Zusammenhang wird auch oft von Maschinenverständlichkeit gesprochen.Mit dem Begriff Maschinenverständlichkeit wird die Fähigkeit einer Maschine gemeint,die Semantik der Daten erfassen zu können. Eine Maschine kann Inhalte nicht ver-stehen, sondern höchstens sinnvoll verarbeiten, was das eigentliche Ziel des SemanticWeb ist.

1Semantic Web Agreement Group (SWAG), http://swag.webns.net/

Page 10: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4 2. Grundlagen

2.1.1 Ziele der Semantic Web Initiative

Das World Wide Web Consortium (W3C) gründete die Semantic Web Initiative 2, ummit einer möglichst großen Zahl von Entwicklern, Wissenschaftlern und Industriepart-nern zu kooperieren und die Arbeit an zukünftigen Standards für das Semantic Webzu erleichtern.

Mit Semantic Web wird das World Wide Web bezeichnet, dessen Inhalte seman-tisch mit dem Ziel annotiert werden, diese Inhalte maschinenverarbeitbar unter Be-rücksichtigung der Bedeutung zu machen. Der Mensch kann aus den Inhalten desheutigen Internets Bedeutung erkennen.

Beispielsweise wird eine Webseite, in derem Inhalt das Wort Webshop vorkommtohne dass ein Webshop angeboten wird, vom Menschen nicht als ein Webshop er-kannt. Diese Fähigkeit, eine Semantik aus dem Inhalt zu erkennen, einer Maschine zuverleihen, ist das Ziel der Semantic Web Initiative.

Die Benutzung des heutigen Web ist stark von den Möglichkeiten der Suchma-schinen abhängig. Allerdings gibt es Probleme [3], die mit der Benutzung von Such-maschinen verbunden sind. Die Präzision der Treffer ist oft sehr niedrig, wobei dieTrefferanzahl zu hoch ist. Es kommt ebenfalls vor, dass eine Suchmaschine überhauptkeine Treffer zu einem Suchbegriff liefert. Die Treffer sind sehr sensitiv bezüglich desgewählten Vokabulars. Verschiedene Vokabulare mit gleicher Semantik liefern Treffermit unterschiedlicher Semantik, was natürlich unerwünscht ist.

Um diese Probleme zu lösen, sollen einerseits die Inhalte des World Wide Web se-mantisch annotiert werden. Andererseits müssen Software-Agenten entwickelt werden,welche die Inhalte des World Wide Web im Namen des Nutzers finden, benutzen undunter Berücksichtigung der Bedeutung verarbeiten können. Wenn eine Maschine, indiesem Fall ein Software-Agent, die Inhalte bedeutungsberücksichtigend verarbeitenkönnte, würde eine Suchanfrage durch den Software-Agent selbst modifiziert werdenkönnen, um die Trefferqualität zu verbessern. Es könnten auch bestimmte Aktionenin Abhängigkeit der Semantik des Inhalts ausgelöst werden.

Um die Inhalte des World Wide Web semantisch zu annotieren, werden Ontologienangewendet.

2.1.2 Ontologien

Zur Lösung der oben genannten Probleme werden Ontologien benutzt. Bevor hierdie Antwort auf die Frage gegeben wird, wie eine Ontologie diese Probleme löst, wirdzunächst geklärt, was unter einer Ontologie im Kontext des Semantic Web verstandenwird. Die bekannteste Definition einer Ontologie stammt von T.R. Gruber [13].

Definition 2.1.2 Eine Ontologie ist eine formale und explizite Spezifikation einergemeinsamen Konzeptualisierung [13].

2W3C Semantic Web Initiative, http://www.w3.org/2001/sw/

Page 11: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.1 Semantic Web 5

Eine Ontologie besteht aus einer endlichen Menge von Konzepten und Beziehungenzwischen diesen. Dadurch wird eine Domäne formal beschreiben. Die Konzepte kenn-zeichnen wichtige Begriffsdefinitionen der zu beschreibenden Domäne [25]. Beispiels-weise wären in der Domäne „Krankenhaus“ solche Konzepte wie Oberarzt, Arzt, Kran-kenschwester, Station, Patient und Notaufnahme die wichtigen Konzepte.

Die Relationen beschreiben die Hierarchien oder auch Beziehungen der mit Kon-zepten beschriebenen egriffsdefinitionen [25]. Ein Konzept A

′ wird als Teilkonzept desKonzeptes A bezeichnet, falls alle Instanzen des Konzeptes A

′ auch Instanzen aus Asind. Beispielsweise wäre das Konzept Oberarzt ein Teilkonzept von Arzt denn jederOberarzt ist ein Arzt.

Außerdem ist es möglich, Eigenschaften für zwei zueinander in einer Beziehungstehenden Konzepte zu definieren [25]:property( Arzt behandelt Patient ).Es ist auch möglich Definitions- oder Wertebereich der Eigenschaften zu beschränken:Chirurg operiert Patient, nur Kardiologe operiert Herzpatient.Man kann auch für mehrere Konzepte festlegen, dass sie disjunkt sind: beispielsweisesind Konzepte Arzt und Krankenschwester disjunkt.Auch aussagen- und prädikatenlogische Beziehungen zwischen den Konzepten könnenin einer Ontologie definiert werden: man kann beispielsweise festlegen, dass jede Sta-tion mindestens einen Oberarzt besitzt(∀ Station: ( ∃ Oberarzt : property( Station besitzt Oberarzt ) ) )

Im Kontext des Semantic Web werden Ontologien verwendet, um auftretende Be-griffe semantisch auszuzeichnen. Die Semantic Web - Ontologien bestehen aus obenbeschriebenen Klassifikationssystemen und einer Menge von Inferenzregeln, anhandderer Maschinen logische Schlüsse ziehen können [19]. Bei der Erstellung von SemanticWeb - Ontologien werden die auftretenden Begriffe zu den Konzepten (Objektklas-sen) der Ontologien zugeordnet, was ein „intelligentes“ Umgehen mit diesen Begriffenermöglicht. Als Folge können beispielsweise Mehrdeutigkeiten im Inhalt eines Webdo-kuments beseitigt werden. Es kommt oft vor, dass zwei Webdokumente den selbemBegriff mit unterschiedlichen Bedeutungen verwenden. Beispielsweise wird der BegriffOP sowohl für den Operationsraum als auch für den operativen Eingriff verwendet.Bei der Suche mit herkömmlichen Suchmaschinen würden die Seiten mit beiden Be-deutungen als Ergebnis gefunden, falls die Suchanfrage das Wort OP enthält. Eineontologie-basierte Suchmaschine würde dagegen erkennen, in welchem Kontext derBegriff OP in der Suchanfrage steht und anhand der zuvor definierten Ontologien derWebdokumente nur die Webdokumente als Ergebnis anbieten, in dem das Wort OPin demselben Kontext steht.

Weiterhin werden die Inhalte aus den durch die Ontologien beschriebenen Webdo-kumenten maschinenverarbeitbar, da die Semantik der auftretender Begriffe durch dieZugehörigkeit zu einem oder anderem Konzept einer Ontologie explizit beschriebenwird. Es wird also eine formale Sprache benötigt, die Inhalte der Webdokumente undderen Semantik beschreiben kann.

Page 12: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

6 2. Grundlagen

Abbildung 2.1: Grafische Darstellung der Ontologie „Ärzte“

2.1.3 OWL

Das Resource Description Framework Schema (RDFS) [26] ist eine Sprache, mit derenHilfe das Vokabular für eine bestimmte Domäne definiert werden kann. RDFS wür-de sich als Beschreibungssprache anbieten, um Ontologien zu definieren. Allerdingskönnen mit Hilfe dieser Sprache die oben beschriebenen Anforderungen wie die Mög-lichkeit, aussagen- und prädikatenlogische Beziehungen zwischen den Konzepten oderdie Disjunktivität und Kardinalität der Klassen zu beschreiben, nicht erfüllt werden.Um dieses Problem zu lösen, hat die W3C Web Ontology Working Group 3 die WebOntology Language (OWL) [21] definiert. Technisch basiert OWL auf dem Datenmo-dell von RDF, geht aber über die Ausdrucksmächtigkeit von RDF weit hinaus. OWLermöglicht beispielsweise prädikatenlogische Ausdrücke.

Zur Veranschaulichung der Ontologiesprache OWL wird im Folgenden ein Beispieleiner mit Hilfe der OWL definierten Ontologie „Ärzte“ vorgestellt. Die Abbildung 2.1zeigt eine grafische Darstellung dieser Ontologie. In der Ontologie „Ärzte“ werdendie Klassen „Patient“, „Arzt“, „Chirurg“ und „Oberarzt“ definiert, wobei die Klassen„Chirurg“ und „Oberarzt“ Unterklassen der Klasse „Arzt“ sind. Darüber hinaus werdendie Eigenschaften „behandelt“ und „operiert“ definiert, wobei „operiert“ eine Spezia-lisierung der Eigenschaft „behandelt“ ist. Die Domäne der Eigenschaft „behandelt“ist die Klasse „Arzt“, aber auch die Unterklassen „Chirurg“ und „Oberarzt“, da nachOWL Definition alle Instanzen der Unterklassen auch die Instanzen ihrer Oberklas-sen sind. Die Domäne der Eigenschaft „operiert“ enthält nur die Klasse „Chirurg“. DerWertebereich beider Eigenschaften enthält die Klasse „Patient“.

Zum besseren Verständnis von OWL wird durch den folgenden Codeausschnitt 2.1die XML-Serialisierung des Graphen aus Abbildung 2.1 dargestellt.

3W3C Web Ontology Working Group, http://www.w3.org/2001/sw/WebOnt/

Page 13: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.1 Semantic Web 7

<!-- Definition der Klasse "Arzt" --><owl:Class rdf:ID="Arzt"/>

<owl:Class rdf:ID="Patient"/>

<!-- Definition der Klasse "Oberarzt" --><!-- als Unterklasse der Klasse "Arzt" --><owl:Class rdf:ID="Oberarzt"><rdfs:subClassOf rdf:resource="#Arzt"/>

</owl:Class>

<!-- Eine Instanz der Klasse "Oberarzt" --><Oberarzt rdf:ID="Dr.Müller"/>

<!-- Definition der Klasse "Chirurg" --><!-- als Unterklasse der Klasse "Arzt" --><owl:Class rdf:ID="Chirurg"><rdfs:subClassOf rdf:resource="#Arzt"/>

</owl:Class>

<!-- Definition der Eigenschaft "behandelt" --><!-- deren Definitionsbereich die Klasse "Arzt" und --><!-- die Wertebereich die Klasse "Patient" ist --><owl:ObjectProperty rdf:ID="behandelt"><rdfs:domain rdf:resource="#Arzt"/><rdfs:range rdf:resource="#Patient"/>

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="operiert"><rdfs:subPropertyOf rdf:resource="#behandelt"/><rdfs:range rdf:resource="#Chirurg"/>

</owl:ObjectProperty>

Listing 2.1: XML-Darstellung der Ontologie „Ärzte“

Im Rahmen dieser Arbeit wird eine Ontologie benötigt, mit deren Hilfe die Eigen-schaften und das Verhalten spezieller Software, der Web Services, beschrieben werdenkönnen. Das Ziel der Beschreibungen von Web Services ist, das automatisches Auffin-den, Auswahl, Einsetzen und Kombinieren von Web Services durch Software-Agentenzu ermöglichen. Eine entsprechende Ontologie die Web Ontology Language for WebServices (OWL-S) wird im Abschnitt 2.4 vorgestellt. Zunächst wird auf das Kon-zept der Web Services und die Notwendigkeit einer semantischer Beschreibung diesereingegangen.

Page 14: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

8 2. Grundlagen

2.2 Web Services

Mit Web Services sind Software-Anwendungen gemeint, die durch Software-Agentenentfernt über Internetprotokolle benutzt werden können [3]. Die Interaktion der Software-Agenten mit den Web Services wird durch XML-basierte Nachrichten realisiert. JederWeb Service ist dabei eindeutig mit einem Uniform Resource Identifier (URI) identi-fiziert.

2.2.1 Standards und Architektur

Die Grundlage bei der Suche, der Kommunikation und dem Benutzen der Web Servicesbilden die Standards Universal Description, Discovery and Integration (UDDI) [9],Simple Object Access Protocol (SOAP) [23] und Web Services Description Language(WSDL) [8].

Damit ein Web Serice von möglichst vielen Nutzern gefunden und verwendet wer-den kann, werden die Informationen über den Web Service in einem für die Software-Agenten zugänglichen Verzeichnis veröffentlicht. Für Web Services wird so ein Ver-zeichnisdienst, der das Veröffentlichen und Finden von Web Services ermöglicht, alsUDDI-Registry [9] bezeichnet. Die UDDI-Registries enthalten die Informationen überWeb Service und deren Anbieter. Für die Kommunikation mit den Web Services wer-den sowohl XML Remote Procedure Call (XML-RPC) [28] als auch SOAP benutzt.Beide Standards sind Netzwerkprotokolle, die auf den existierenden Standards XMLund HTTP basieren. So werden in beiden Standards die zu übertragenden DatenXML-basiert dargestellt. Die Übertragung der Daten erfolgt über das Internetpro-tokoll HTTP. WSDL ist eine XML-basierte Beschreibungssprache, mit deren Hilfedie Austauschprotokolle, die Daten und Datentypen sowie die Funktionen eines WebServices beschrieben werden.

Als Basis von Web Servises hat sich das serviceorientierte Architekturkonzept(SOA) [22] entwickelt. SOA besteht aus drei Akteuren: der Nutzer respektive derSoftware Agent (im Weiteren Konsument) , der Anbieter von Web Services und derVerzeichnisdienst. Damit die Web Services vom Konsumenten gefunden werden kön-nen, veröffentlicht der Anbieter die Beschreibung seines Web Services im Verzeichniseines Verzeichnisanbieters. Der Konsument durchsucht das Verzeichnis des gewähltenVerzeichnisanbieters nach dem gewünschten Web Service. Nach der getroffenen Wahlkann der Konsument sich mit dem gewählten Web Service verbinden und den Servicenutzen.

2.2.2 Web Service - Klassen

Im Allgemeinen werden Web Services in zwei Gruppen unterteilt: einfache oder ele-mentare Web Services und zusammengesetzte Web Services (composite services) [18].Unter einfachen Web Services versteht man einzelne Programme, die über die Netz-werkprotokolle zugänglich sind und weder weitere Web Services noch weitere Interakti-

Page 15: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.3 Semantic Web Services 9

on mit dem Konsumenten oder demmaschinengesteuerten Softwareagenten benötigen.Sie liefern eine Antwort auf eine Anfrage. Als Beispiel kann man hier Wetterdiensteoder auch Web Services, die aktuelle Aktienkurse anbieten, nennen.

Zusammengesetzte Web Services sind aus einfachen zusammengesetzt und benöti-gen oft eine Interaktion mit dem Konsumenten. Reiseanbieter setzen beispielsweise oftkomplexe Web Services ein. Diese Notwendigkeit, komplexe Web Services einzusetzen,ist dadurch bedingt, dass ein Web Service-Anbieter meistens einen bestimmten Ba-sisdienst (einfachen Service) anbietet. Ein Reiseanbieter muss aber mindestens zweieinfache Web Services benutzen. Einen für den Flugbuchung und einen für die Zah-lungsabwicklung mit einem Kreditinstitut. So können durch einen zusammengesetztenWeb Service die einfachen Web Services benutzt werden. Ein weiteres Beispiel ist eineZusammensetzung von einem Service, der Wetterdaten nur in bestimmten Einheitenliefert und einem anderen Service, welcher die Umrechnung der vom ersten Servicegelieferten Daten durchführt.

2.3 Semantic Web Services

Die Zusammensetzung von klassischen Web Services ist keine triviale Aufgabe, dameistens die Ausgabe eines Web Service nicht an die Eingabe des anderen angepasstist. Die Anpassung wird durch das Parsen der Ausgabe und manuelles Anpassen fürdie Eingabe erreicht. Die Notwendigkeit einer solchen Anpassung ist eines der Proble-me der klassischen Web Services. Ein weiteres Problem ist der BeschreibungsstandardWSDL [8]. Mit Hilfe von WSDL werden die Funktionen, deren Parameter und Rück-gabewerte beschrieben. Das ist unzureichend, um eine Kompatibilität zweier Dienstefestzustellen oder eine automatisierte Suche nach einem bestimmten Web Service zuermöglichen, da die Beschreibungen der Parameter von Web Services nur auf einersyntaktischer und nicht semantischer Ebene erfolgt. Es wird beim Suchen von WebServices immer noch die Interaktion mit dem Menschen benötigt.

Um die oben genannten Probleme zu lösen, müssen die Web Services semantischbeschrieben werden. Mit den Standards, die Semantic Web Services mitbringen, wirdsolche Beschreibung möglich. Das schafft die Voraussetzung für die Automatisierungvom Suchen, Komposition, Aufrufen oder Benutzen von Web Services. Parameter derSemantic Web Services sind im Vergleich zu Parametern von klassischen Web Servicesnicht nur Zeichenketten, sondern Individuen von Konzepten aus Ontologien und damithaben diese Parameter eine Semantik.

2.4 OWL-S

Eine semantische Annotation von Web Services kann mittels Ontologien durchgeführtwerden, die mit Hilfe von OWL definiert wurden. Die Web Ontology Language for WebServices (OWL-S) [20] ist eine solche Ontologie. Sie unterstützt sowohl die einfachen

Page 16: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

10 2. Grundlagen

als auch die zusammengesetzten Web Services.Während der Entwicklung von OWL-S-Beschreibungen von Web Services werden

zwei Aufgaben unterschieden. Die erste ist, die für den Web Service zu verwendeteOntologie in Form von OWL Klassen, Eigenschaften und Instanzen zu definieren unddie Beziehungen zwischen den Objekten und Eigenschaften der definierten Ontologiezu beschreiben. Die zweite Aufgabe ist, den Web Service mit Hilfe der in OWL-Sdefinierten Ontologie semantisch zu beschreiben [21].

Man erhofft sich zum einen, mit Hilfe von OWL-S Beschreibungen von Web Ser-vices das Finden von Web Services in dem Sinne zu automatisieren, dass eine Such-maschine anhand der vom Nutzer festgelegten Angaben einen passenden Web Servicefindet. Zum anderen soll OWL-S die Komposition und Interoperation von mehrerenWeb Services in dem Sinne unterstützen, dass sie Vor- und Nachbedingungen derAnwendung jedes einzelnen Web Services deklarativ beschreiben kann. So kann einSoftware Agent erfahren, ob er nach dem Ausführen eines Web Services zum anderenWeb Service wechseln kann [3].

2.4.1 Hauptelemente der Beschreibung eines Web Services

Abbildung 2.2: Die oberste Ontologie eines Web Services nach [20]

Die Beschreibung jedes einzelnen Web Services wird in OWL-S [20] in drei Kompo-nenten geteilt: Profil , Modell und Grounding. In OWL-S werden diese Komponentendurch Objektklassen ServiceProfile, ServiceModel und ServiceGrounding repräsentiert(Abb. 2.2). Die Objektklasse ServiceProfile erlaubt eine allgemeine Beschreibung derFunktion des Web Services. Im Rahmen der Objektklasse ServiceModel wird beschrie-ben, wie mit dem gegebenen Web Service interagiert werden kann. Der Web Servicewird dabei in Form eines Prozesses beschrieben. Wie auf den Web Service zugegriffenwerden kann, wird innerhalb der Objektklasse ServiceGrounding beschrieben. Inner-halb des Groundings werden kommunikationsspezifische Informationen wie Protokoll-und Nachrichtenformate spezifiziert. Das sind unter anderem das benutzte Kommu-nikationsprotokoll, das Nachrichtenformat und der für die Kommunikation mit demWeb Service benutzte Port.

Page 17: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.4 OWL-S 11

2.4.2 OWL-S-Prozessbeschreibung

Die für die vorliegende Arbeit relevante Prozessbeschreibung eines Web Services wirdinnerhalb der Unterklasse der Klasse ServiceModel definiert, und zwar innerhalb derKlasse ProcessModel. Daher wird im Weiteren auf die Klassen ServiceProfile und Ser-viceGrounding nicht mehr eingegangen. Mit Hilfe der Prozessbeschreibung wird einedetailierte Beschreibung vom Ablauf eines Web Services ermöglicht. Ein Prozess kanneinerseits als Transformation einer Menge von Eingangsdaten in eine Menge von Aus-gangsdaten angesehen werden. Andererseits wird eine Folge von Zustandstransitionenals ein Prozess verstanden. Ein Prozess wird nicht wie ein Programm angesehen, dasausgeführt werden soll. Es ist eher eine Spezifikation dessen, wie ein Klient, im spezi-ellen Fall ein Software Agent, mit einem Web Service interagieren kann.

Die für einen Prozess beschriebenen Eingänge spezifizieren die Daten, die dieserProzess braucht, um ausgeführt zu werden. Nach dem Ausführen eines Prozesses kön-nen bestimmte Daten ausgegeben werden, die durch Ausgänge beschrieben werden[20].

Ein Prozess im Sinne von OWL-S [20] kann vom Typ Atomar (engl.:Atomic), Ein-fach (engl.:Simple) oder Zusammengesetzt (engl.:Composite) sein. Atomare Prozessesind Prozesse, die in einem Schritt ausgeführt werden können und keine Unterprozesseenthalten. Für jeden einzelnen atomaren Prozess muss beschrieben werden, wie dieserProzess gestartet werden kann und wie mit dem Web Service zu kommunizieren ist.Diese Beschreibung wird innerhalb des OWL-S-Elements Grounding [20] definiert.

Die zusammengesetzten Prozesse enthalten sowohl atomare als auch zusammen-gesetzte Prozesse. Deren Zusammensetzung wird durch Kontrollkonstrukte wie bei-spielsweise Sequence oder If-Then-Else spezifiziert.

Die einfachen Prozesse stellen entweder eine andere Perspektive auf einen ato-maren Prozess oder eine vereinfachte Repräsentation, eine Black-Box-Sicht eines zu-sammengesetzten Prozesses zur Verfügung. Die einfachen Prozesse werden nicht miteiner Grounding-Beschreibung versehen, da es sich aber nur um ein Abstraktum einesProzesses handelt. Diese Art von Prozessen wird für Planungs-, Kompositions- oderVerifikationszwecke benutzt [2].

Die OWL-S-Prozessbeschreibungen haben zwei Ziele. Zum einen ist es eine Dar-stellung von Daten, die vom zu beschreibenden Web Service verarbeitet und produ-ziert werden. Diese Darstellung wird durch die Eingänge und Ausgänge beschrieben.In OWL-S werden die Ein- bzw. Ausgänge durch die Eigenschaften hasInput bzw.hasOutput eines Prozesses beschriben.

Die andere Art der Darstellung ist zustandsorientiert und wird durch die Kontroll-konstrukte erzeugt.

Folgende Tabelle 3.1 zeigt alle Eigenschaften, die für einen Prozess definiert werdenkönnen. Die XML-Elemente aus demWertebereich können ihrerseits als Kindelemente(OWL-S-Eigenschaften) die Elemente aus der 3. Spalte der Tabelle 3.1 haben. Aller-dings kann nur das Element Result solche OWL-S-Eigenschaften besitzen. Die Eigen-schaft composedOf kann ausschließlich für die zusammengesetzten Prozesse definiert

Page 18: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

12 2. Grundlagen

werden. Die restlichen Eigenschaften können für jeden beliebigen Prozess definiertwerden.

Eigenschaft eines Prozesses Wertebereich Eigenschaft der Klasse ausdem Wertebereich

hasParticipant ParticipanthasInput InputhasOutput OutputhasLocal Local

hasPrecondition ConditionhasResult Result inCondition, hasResultVar,

withOutput, hasEffect

Tabelle 2.1: Eigenschaften eines Prozesses

Der Codeausschnitt 2.2 zeigt am Beispiel der Eigenschaft hasInput, wie die Eigen-schaften eines Prozesses in der XML-Darstellung einer OWL-S-Prozessbeschreibungbeschrieben werden. In diesem Ausschnitt wird ein atomarer Prozess definiert, inner-halb dessen ein Dateneingang definiert ist. Die übrigen Eigenschaften eines Prozesseswerden auf eine analoge Weise definiert.<process:AtomicProcess rdf:ID="Purchase"><process:hasInput><process:Input rdf:ID="ObjectPurchased"/></process:hasInput></process:AtomicProcess>

Listing 2.2: XML-Darstellung eines Einganges in OWL-S

Da das Ziel der vorliegenden Arbeit, eine Methode zu Visualisierung von OWL-S-Prozessmodellen zu erarbeiten, müssen alle durch die OWL-S-Spezifikation erlaubtenKontrollkonstrukte beschrieben werden. Im Kapitel 3 werden im Rahmen der Vorstel-lung des entwickelten Visualisierungskonzeptes die Kontrollkonstrukte beschrieben.OWL-S benutzt folgende Kontrollkonstrukte, um zusammengesetzte Prozesse zu be-schreiben: Sequence, Split, Split-Join, Any-Order, Choice, If-Then-Else, Repeat-Untilund Repeat-While. Innerhalb eines OWL-S-Prozessmodells werden Kontrollkonstruk-te für jeden zusammengesetzten Prozess mit Hilfe der Eigenschaft composedOf an-gegeben. Jeder zusammengesetzter Prozess besitzt genau ein <process:composedOf>Element. Mit dem nächst tieferliegenden Element <process:’Kontrollkonstrukt’> wirddas benutzte Kontrollkonstrukt definiert. Die Verbindung eines Composite Prozesseszu den in diesem Prozess beteiligten Prozessen wird dadurch gewährleistet, dass diebeteiligten Prozesse innerhalb des nächst liegenden Elementes aufgelistet werden.

Die Verschachtelung von zusammengesetzten Prozessen erfolgt entweder mit Hilfeeines spezielles Kontrollkonstruktes Perform oder mit einem der weiteren OWL-S-Kontrollkonstrukte. Falls das Kontrollkonstrukt Perform für eine Verschachtelung be-nutzt wird, wird der beteiligte Konstrukt als zusammengesetzter Prozess betrachtet.

Page 19: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.5 Arbeitsabläufe 13

Im anderen Fall geht es um Verschachtelung von Kontrollkonstrukten. Die Verschach-telung kann eine beliebige Tiefe haben [20].

Der Codeausschnitt 2.3 verdeutlicht die oben beschriebene Verbindung eines zu-sammengesetzten Prozesses zu den in diesem Prozess beteiligten Prozessen. In die-sem Ausschnitt wird ein zusammengesetzter Prozess „CongoBuyBook“ mit Hilfe vonOWL-S definiert. Das verwendete Kontrollkonstrukt ist hier Sequence. Die in demzusammengesetzten Prozess beteiligten Prozesse sind die Prozesse „BuySequence“,„SpecifyDeliveryDetails“ und „FinalizeBuy“.

<process:CompositeProcess rdf:ID="CongoBuyBook"><process:composedOf><process:Sequence><process:components rdf:parseType="Collection"><process:CompositeProcess rdf:about="#BuySequence"/><process:AtomicProcess rdf:about="#SpecifyDeliveryDetails"/><process:AtomicProcess rdf:about="#FinalizeBuy"/></process:components></process:Sequence></process:composedOf></process:CompositeProcess

Listing 2.3: Ein zusammengesetzter Prozess beschrieben in OWL-S

Mit Hilfe von OWL-S-Prozessmodellen können nicht nur Arbeitsabläufe eines WebServices, sondern Arbeitsabläufe allgemein beschrieben werden, indem die zur Verfü-gung stehende Kontrollkonstrukte benutzt werden.

2.5 ArbeitsabläufeWie im vorhergehenden Abschnitt gezeigt wurde, erlaubt OWL-S neben der datenflus-sorientierte Beschreibungsperspektive der Web Services auch eine Beschreibungsper-spektive, bei der die Arbeitsabläufe innerhalb eines Web Services beschrieben werden.Ein Arbeitsablauf (Workflow) wird durch Beschreibung und Festlegung abgrenzbarerund arbeitsteiliger Prozesse definiert, die in einer definierten Reihenfolge, parallel odersequentiell, ausgeführt werden [5]. Dabei kann ein IT-System den Arbeitsablauf mitnotwendigen Daten versorgen und ihn gemäß einer im System hinterlegten Vorgabeoder eines dafür vorgesehenen Algorithmus abwickeln.

In Abgrenzung vom Geschäftsprozess wird dabei detailliert auf die operative Ebe-ne eingegangen. Idealerweise zerlegt die Arbeitsablauf-Beschreibung den Prozess ineindeutige Bestandteile (Objekte), die in deterministischer Beziehung zueinander ste-hen.

Ein Softwaresystem, das die Durchführung von Arbeitsabläufen ermöglicht, wirdals Workflow-Management-System (WMS) [1] bezeichnet. Ein WMS führt einen Ar-beitsablauf aus, indem es die Workflow-Instanzen nach einem vorgegebenen, im Rech-

Page 20: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

14 2. Grundlagen

ner abgebildeten Schema steuert und dazu benötigte Daten und Applikationen bereit-stellt oder abfragt. Eine Workflow-Instanz ist dabei die vollständige, WMS-spezifischeRepräsentation des Ausführungszustands eines Workflows. Diese Repräsentation be-zieht sich auf einen zugehörigen Workflow-Typ und umfasst mögliche Aktionen, zu-geordnete Akteure, Datenwerte und ausführbare Teilschritte [16]. Die Aufgabe einesWMS besteht darin, zu koordinieren, wer (Rollen) was (Aufgabe) wann (Prozess) undwie (Umgebung) bearbeitet.

OWL-S-Prozessmodelle sind als eine Spezifikation für Arbeitsabläufe anzusehen.Hierbei sind die Objekte des Arbeitsablaufes die einfachen, die atomaren und diezusammengesetzten Prozesse. Web Services können selbst als Objekte eines Arbeits-ablaufes angesehen werden, wenn es sich um zusammengesetzte Web Services handelt.Solche Arbeitsabläufe geben einem Software Agent die Auskunft darüber, wie die ein-zelnen Prozesse innerhalb eines Web Services ausgeführt werden können. Im Falle vonzusammengesetzten Web Services wird mit einem Arbeitsablauf die Weise beschrie-ben, in der die integrierten Dienste ausgeführt werden können. Ein Arbeitsablaufdefiniert somit auch den Kontrollfluss zwischen mehreren Web Services.

Innerhalb der Terminologie der Arbeitsabläufe wird ein Begriff benutzt, der in dervorliegenden Arbeit eine der zentralen Rollen spielt. Es handelt sich hierbei um dieProzessmodelle. In einem Prozessmodell werden die Elemente der Prozesslogik einesArbeitsablaufes und deren Beziehungen definiert. Ein weiterer Begriff, der für die wei-teren Überlegungen eine große Rolle spielt, ist der Kontrollfluss. Ein Kontrollfluss isteine durch die Zeit oder eine Logik definierte Folge von Prozessen. Da die Visualisie-rungen aus den Prozessmodellen in der Regel in Form von Graphen realisiert werden,werden im nächsten Abschnitt die für diese Arbeit relevanten Begriffe, Probleme undLösungsansätze aus dem Bereich der Visualisierung von Graphen vorgestellt.

2.6 Visualisierung von Graphen

Ein Graph ist in der Graphentheorie eine Menge von Knoten und Kanten, welche dieKnoten miteinander verbinden. Graphen werden als mathematische Modelle für zahl-reiche Probleme benutzt. Unter Visualisierung von Graphen wird eine Abbildung einerDarstellung eines Graphen in den zwei- oder dreidimensionalen Euklidischen Raumverstanden. Diese Abbildung ist injektiv, anderenfalls könnten zwei unterschiedlicheGraphenelemente wie beispielsweise zwei unterschiedliche Knoten eines Graphen aufein grafisches Objekt abgebildet werden. Mit der Visualisierung wird das Ziel ver-folgt, die stärkeren kognitiven Fähigkeiten des Menschen auszunutzen, um das Mo-dell besser zu verstehen, das durch den Graphen beschrieben wird. Das Problem,das ein Algorithmus zur Visualisierung eines Graphen löst, besteht in der Erfüllungvordefinierter Kriterien. Solche Kriterien können beispielsweise eine Begrenzung derDarstellungsfläche oder der Kantenlänge, der Anzahl der Kreuzungen sein. Die ein-zelnen Kriterien können in Konflikt zueinander stehen. Die Optimierung der Anzahlder Kantenkreuzungen erfordert beispielsweise im Allgemeinen eine größere Darstel-

Page 21: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

2.6 Visualisierung von Graphen 15

lungsfläche. Auch bei dem in dieser Arbeit entwickelten Visualisierungskonzept fürOWL-S-Prozessmodelle mussten Kompromisse zwischen dem Erfüllen diverser Kri-terien eingegangen werden. Da das entwickelte Visualisierungskonzept im nächstenKapitel vorgestellt wird, werden dort diese Kriterien diskutiert, deren Erfüllung inKonflikt zueinander steht.

2.6.1 Methoden

Für die Visualisierung der OWL-S-Prozessmodelle wird ein Renderer des Softwarepa-kets von GraphViz verwendet. Graphviz stellt insgesamt fünf Renderer zur Verfügung:dot, neato, fdp, twopi und circo. neato und fdp sind auf Visualisierung großer ungerich-ten Graphen zu benutzen. twopi ermöglicht Visualisierungen von Graphen mit einemradialen, und circo mit einem kreisförmigen Layout. Mit dot lässt sich die Struktureines gerichteten oder ungerichteten Graphen beschreiben. Dieser Renderer wird fürdie Visualisierung der OWL-S-Prozessmodelle verwendet.

Der im dot verwendete Algorithmus [12] besteht aus vier Schritten (Listing 2.4).Durch die erste Methode rank() wird eine Rangzuweisung an die Knoten durchgeführt.Dadurch werden die Knoten des Graphen auf diskrete Schichten verteilt. In diesemSchritt erhalten die Knoten die Y-Koordinate. Für die Lösung dieses NP-harten Pro-blems wird hier der Netzwerk Simplex Algorithmus 4 benutzt.

Die Methode ordering() versucht, die Knoten innerhalb jeder Ebene so zu ord-nen, dass die Anzahl der Kantenkreuzungen zwischen zwei benachbarten Ebenen,die durch die Methode rank() festgelegt wurden, minimiert wird. Dieses Problem istNP-vollständig und wird heuristisch gelöst.

Mit Hilfe der Methode position() werden die Koordinaten der Knoten entsprechendder Ausgabe der ersten Methoden festgelegt.

Schließlich werden durch die Methode make_splines() Spline-Kontrollpunkte (auchDe-Boor-Punkte genannt) für die Kanten berechnet. Spline-Kontrollpunkte sind dabeiPunkte, mit deren Hilfe Kurven auf eine einfache Weise beschrieben werden können.

draw_graph()BEGINrank();ordering();position();make_splines();END

Listing 2.4: Dot-Algorithmus

4Netzwerk Simplex Algorithmus,http://www.informatik.uni-trier.de/ñaeher/Professur/courses/ss2003/flow/jan_burkl.pdf

Page 22: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Kapitel 3

Theoretische Auseinandersetzung

In diesem Kapitel werden Überlegungen für eine eigene Entwicklung eines Visua-lisirungkonzeptes von OWL-S-Prozessmodellen [20] angestellt und diskutiert. Nacheiner kurzen Vorstellung von möglichen Konzepten und einer existierenden Lösungzur Darstellung von OWL-S-Prozessmodellen wird das eigene Konzept vorgestellt.

Zu Beginn wird ein bereits existierendes Werkzeug zum Erzeugen von OWL-S-Prozessmodellen vorgestellt. Es werden die Möglichkeiten, die Mängel und möglicheWeiterentwicklungen diskutiert. Darüber hinaus werden die Möglichkeiten zur Visua-lisierung von OWL-S-Prozessmodellen durch die Modellierungssprache UML [6] unddurch Petri-Netze untersucht und bewertet.

Als nächstes wird das verwendete Konzept zur grafischen Darstellung aller Kon-trollkonstrukte und Prozesse eines mit Hilfe von OWL-S beschriebenen Prozessmodelsvorgestellt. Es wird beschrieben, welche Elemente eines OWL-S-Prozessmodells visua-lisiert werden und in welcher grafischen Form sie in der Visualisierung erscheinen. DieWahl der grafischen Darstellung der Knoten, Kanten und der atomaren Prozesse wirdbegründet. Da das Layout der zusammengesetzten Prozesse von den in diesen Pro-zessen verwendeten Kontrollkonstrukten abhängt, wird für jedes Kontrollkonstruktdas gewählte Layout vorgestellt. Für jedes Kontrollkonstrukt werden die zu ihrerDarstellung verwendeten grafischen Elemente erklärt. Außerdem werden alternativeDarstellungen der Kontrollkonstrukte betrachtet.

Weiterhin werden Probleme beschrieben, die bei der Visualisierung, insbesonde-re bei der Verschachtelung von zusammengesetzten Prozessen, entstehen können. Eswird beispielsweise untersucht, ob die Visualisierung des entstehenden Graphen Kan-tenüberschneidungen enthalten kann.

3.1 Existierende Konzepte zur Visualisierung von Pro-zessmodellen

Im folgenden Abschnitt wird die Funktionalität des Werkzeuges OWL-S-Editor vorge-stellt, das eine visuelle Erzeugung von OWL-S-Prozessmodellen unterstützt. Es wer-

Page 23: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.1 Existierende Konzepte zur Visualisierung von Prozessmodellen 17

den weitere theoretische Konzepte zur Visualisierung von OWL-S-Prozessmodellenbetrachtet. Untersucht werden dabei die Möglichkeiten von UML und von Petri Net-zen. Der Vergleich der Ansätze zur Visualisierung wird durch einen Beispielprozessesbegleitet. Als Beispielprozess wird eine Sequenz verwendet, die einen Repeat-Until-Prozess enthält. Dieser Beispielprozess wird im weiteren mit BeispielSequenz bezeich-net.

3.1.1 OWL-S-Editor für Protégé

Um die beiden Aufgaben, die während der Entwicklung von OWL-S-Beschreibungenvon Web Services entstehen (Abschnitt 2.4), möglichst effizient zu lösen und dabeieinen guten Überblick über die Beziehungen zwischen einzelnen Objekten zu haben,wurde eine Erweiterung des OWL-Editors Protégé 1, der OWL-S-Editor entwickelt.OWL-S-Editor 2 bietet eine Sicht zum Verwalten von Instanzen der OWL-S-KonzepteService, Profile, Process und Grounding. Für jede Teilontologie ist ein eigenes Panelvorgesehen, in dem die Instanzen angelegt und bearbeitet werden (Abb. 3.1). DieEigenschaften der Instanzen können sowohl beim Erzeugen als auch später durchAnklicken der jeweiligen Instanz bearbeitet werden.

Ein Feature, das für die vorliegende Arbeit relevant ist, ist die Fähigkeit diesesWerkzeugs, die Kontrollflüsse zusammengesetzter Prozesse zu visualisieren. Die Vi-sualisierung erfolgt in einem Stil, der den UML-Aktivitätsdiagrammen [6] ähnlichist. Die Teilprozesse werden durch Rechtecke dargestellt. Die Bedingungsknoten derKontrollkonstrukte If-Then, Repeat-Until und Repeat-While werden als Rhombendargestellt. Die Pfeile zeigen schließlich den Kontrollfluss. Auf diese Weise wird miteiner Drag & Drop Unterstützung eine grafische Darstellung des Workflows einesWeb Services erzeugt. Das „Zeichnen“ von Arbeitsabläufen der zusammengesetztenProzesse wird nicht direkt erlaubt, sondern durch eine zusätzliche GUI-Komponente.In dieser Komponente wird der Arbeitsablauf der Prozesse in einer Baumform kon-struiert. Die Visualisierung des konstruierten Arbeitsablaufes wird sofort in einemweiteren Panel angezeigt. Die Abbildung 3.2 zeigt einen auf diese Weise konstru-ierten Arbeitsablauf. Es wird dort der zusammengesetzte Prozess BeispielSequenzmit dem Kontrollkonstrukt Sequence dargestellt, welcher zwei atomare (AtomicPro-cess_1, AtomicProcess_2 ) und einen weiteren zusammengesetzten Prozess enthält.Der in dieser Sequenz partizipierende zusammengesetzte Prozess ist ein Repeat-Until-Prozess. In seinem Rahmen wird der der Prozess AtomicProcess_21 wiederholt, bisdie Bedingung Condition_19 erfüllt ist. Der OWL-S-Editor bietet darüber hinaus dieMöglichkeit, den Arbeitsablauf zu zoomen, auszudrucken und nach SVG zu exportie-ren.

OWL-S-Editor ist dabei ein Plugin für Protégé, mit dessen Hilfe es möglich ist,nicht nur auf die eigenen Funktionen vom OWL-S-Editor, sondern auch auf die Fea-

1Protégé-OWL-Editor, http://protege.stanford.edu/overview/protege-owl.html2The OWL-S-Editor, http://owlseditor.semwebcentral.org/

Page 24: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

18 3. Theoretische Auseinandersetzung

Abbildung 3.1: Panels des OWL-S-Editors

tures von Protégé und weiteren Protégé Plug-Ins zuzugreifen. Es ist beispielsweisemöglich die definierte Ontologie zu durchsuchen oder zu visualisieren.

Laut der Dokumentation zum OWL-S-Editor [10] kann der Prozessmodellierungs-teil nicht nur im Bereich der Semantic Web Services, sondern auch in anderen Berei-chen eingesetzt werden, wo Prozessmodelle definiert werden sollen.

3.1.2 UML

UML [6] ist eine standardisierte Sprache für die Modellierung von Software. UMLumfasst dreizehn Diagrammarten, wobei die Grenze zwischen den Diagrammtypenunscharf ist. UML-Spezifikation verbietet nicht, die Elemente eines Diagrammtyps inDiagrammen anderes Typs zu benutzen. Zum Beschreiben von Arbeitsabläufen einesOWL-S-Prozessmodells kommen die Zustands- und die Aktivitätsdiagramme [6] inBetracht.

Die Zustandsdiagramme sind Diagramme, mit deren Hilfe die Kontrollflüsse be-schrieben werden können. Sie dienen zur Modellierung von reaktiven Objekten. DieReaktivität der Objekte wird dadurch gekennzeichnet, dass das Verhalten dieser Ob-jekte nicht nur von ihrer Vergangenheit abhängt, sondern auch durch ihre Reaktion auf

Page 25: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.1 Existierende Konzepte zur Visualisierung von Prozessmodellen 19

Abbildung 3.2: Visualisierung eines zusammengesetzten Prozesses mit Hilfe von OWL-S-Editor

äußere Ereignisse gekennzeichnet ist. Die grafischen Elemente eines Zustandsdiagram-mes, welche Zustände des zu beschreibenden Systems repräsentieren, werden durch ge-rundete Rechtecke dargestellt. Die Übergänge zwischen den Zuständen werden durchdas Eintreten eines Ereignisses ausgelöst und grafisch durch Pfeile dargestellt. Op-tional können die Rechtecke zur Darstellung der Zustände unterteilt werden und zu-sätzlich mit Operationen beschriftet werden, die im betreffenden Zustand ausgeführtwerden. Diese Möglichkeit erlaubt die Benutzung von Zustandsdiagrammen auch zumBeschreiben von Arbeitsabläufen im Rahmen von OWL-S-Prozessbeschreibungen. DieVisualisierung mit Hilfe von OWL-S-Editor des zusammengesetzten Prozesses Bei-spielSequenz wurde im letzten Abschnitt mit der Abbildung 3.2 gezeigt. Die Ab-bildung 3.3 zeigt zum Vergleich eine Darstellungsmöglichkeit des zusammengesetztenProzesses BeispielSequenz mit Hilfe eines Zustandsdiagrammes. Die obere Hälfte jedesKnoten dient der Zustandsbeschreibung. In der unteren Hälfte werden die Prozesseoder die Operation beschrieben, die innerhalb dieses Zustandes ausgeführt werden.Bei einer Beschreibung von Arbeitsabläufen der OWL-S-Prozessmodelle entfällt dieobere Beschriftung der Knoten aufgrund der aktions- bzw. prozessorientierten Na-tur der OWL-S-Prozessmodelle. Die zustandsorientierte Beschriftung kann aber füreine Definition von Vor- und Nachbedingungen der OWL-S-Prozesse genutzt wer-

Page 26: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

20 3. Theoretische Auseinandersetzung

Abbildung 3.3: Grafische Darstellung eines zusammengesetzten Prozesses BeispielSe-quenz mit Hilfe von State Charts

den. Die OWL-S-Kontrollkonstrukte können mit Zustandsdiagrammen nur dann dar-gestellt werden, wenn die Semantik der klassischen Zustandsdiagramme modifiziertwird. Der Grund für eine solche Modifizierung ist die prozessbasierte Natur der OWL-S-Kontrollkonstrukte.

Eine weitere Diagrammart aus der UML-Familie sind die Aktivitätsdiagramme.Während das Ziel der Zustandsdiagramme, eine zustandsorientierte Sicht zu bieten,werden die Aktivitätsdiagramme gewählt, falls in den meisten Zuständen Operatio-nen ausgeführt werden. Die Transitionen zwischen den Zuständen schalten, falls dieOperationen beendet sind und sind nicht von einem externen Ereignis abhängig. So-mit beschreibt ein Aktivitätsdiagramm einen Kontrollfluss zwischen Aktivitäten. ImRahmen von Aktivitätsdiagrammen können weiterhin alternative Verzweigungen mitBedingung definiert werden. Grafisch werden diese Elemente als Rhomben dargestellt.Darüber hinaus ist eine Definition von Aufsplittung und Zusammenführung neben-läufiger Kontrollflüsse möglich. Die Abbildung 3.4 zeigt eine Darstellungsmöglichkeitdes zusammengesetzten Prozesses BeispielSequenz in einem Aktivitätsdiagrammen.

Soll ein OWL-S-Prozessmodell mit Hilfe von UML dargestellt werden, so sind dieAktivitätsdiagramme geeigneter als die Zustandsdiagramme. Die Zustandsdiagramme

Page 27: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.1 Existierende Konzepte zur Visualisierung von Prozessmodellen 21

Abbildung 3.4: Grafische Darstellung eines zusammengesetzten Prozesses BeispielSe-quenz mit Hilfe von Aktivitätsdiagrammen

bieten zwar neben einer zustandsorientierter Sicht eine Möglichkeit, Operationen oderProzesse innerhalb der definierten Zustände zu beschreiben. Die Aktivitätsdiagrammesind jedoch dafür prädestiniert, eine prozessorientierte Sicht auf ein System zu bieten.Ein weiterer Grund, der für die Aktivitätsdiagramme spricht, ist die reichere Auswahlvon UML-Elementen [6], auf die die Elemente des OWL-S-Prozessmodells direkt ab-gebildet werden könnten. So haben die Aktivitätsdiagramme ein grafisches Elementfür Bedingungen. Es ist darüber hinaus möglich, die Dateneingänge/-ausgänge zu de-finieren, indem die UML-Objektflusse die Datenflüsse und die UML-Objektknotendie Beschriftungen der Datenflüsse darstellen. Weiterhin werden Kontrollkonstruk-te zur Aufsplittung und Zusammenführung von Kontrollflüssen angeboten. OWL-S-Prozessmodelle benutzen ähnliche Konstrukte. Aus diesem Grund können diese Kon-strukte direkt auf die Aufsplittungen und Zusammenführungen der UML-Aktivitäts-diagramme abgebildet werden.

Page 28: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

22 3. Theoretische Auseinandersetzung

3.1.3 Petri-Netze

Petri-Netze [24] stellen ein formales Modell zur Beschreibung nebenläufiger (paral-leler) Transformationsprozesse dar. Da die Transitionen der Petri-Netze Aktivitätenrepräsentieren, können die atomaren und die einfachen Prozesse auf die Transitionender Petri-Netze abgebildet werden. Die Abbildung 3.5 zeigt eine Modellierungsmög-lichkeit des zusammengesetzten Prozesses BeispielSequenz.

Abbildung 3.5: Grafische Darstellung des zusammengesetzten Prozesses BeispielSe-quenz mit Hilfe von Petri-Netzen

Die vollständige Abbildung von OWL-S-Prozessmodellen auf Petri-Netze ist mög-lich [7]. An der Universität Pisa wurde beispielsweise das Werkzeug OWLS2PNML 3

entwickelt, welches die OWL-S-Prozessmodellbeschreibungen in die Petri Net Mark-up Language (PNML) übersetzt. PNML ist ein XML-basiertes Austauschformat zumBeschreiben von Petri-Netzen.

Bei der Konvertierung der OWL-S-Prozessmodelle zu Petri-Netzen können dieEin- und Ausgänge auf die Stellen der Petri-Netze abgebildet werden. Die Prozessesind aktive Elemente und werden somit auf die Transitionen abgebildet. Für Petri-Netze als Modellierungssprache für OWL-S-Prozessmodelle spricht die Möglichkeit,

3OWLS2PNML, http://www.di.unipi.it/~corfini/research.html

Page 29: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 23

die Dynamik des Prozessmodells untersuchen zu können. Darüber hinaus können imFall der Modellierung mit Hilfe von Petri-Netzen Aussagen über Erreichbarkeit, Be-schränktheit, Sicherheit, Konflikte und weitere Aussagen der Petri-Netz-Theorie ge-troffen werden. Im Rahmen der vorliegenden Arbeit sind diese Aussagen jedoch nichtinteressant. Somit sind Petri-Netzi ein Werkzeug, das mächtiger ist als im Rahmen derArbeit benötigt wird. Das im Rahmen der Arbeit entwickelte Visualisierungskonzeptsoll die OWL-S-Prozessmodelle lediglich grafisch darstellen. Die Möglichkeit einer for-malen Analyse der OWL-S-Prozessmodelle gehört nicht zu den Anforderungen an dasentwickelte Visualisierungskonzept. Die Anforderungen an das Visualisierungskonzeptwerden im Abschnitt 3.2 genannt.

3.2 Visualisierung der OWL-S-Prozessmodelle

In diesem Abschnitt werden zunächst die Elemente eines OWL-S-Prozessmodells auf-gezählt und beschrieben. Die grafischen Darstellungen der zu visualisierenden Ele-mente werden als Nächstes vorgestellt. Gleichzeitig wird die entwickelte Visualisierunginformell beschrieben.

Bei der Entwicklung des Visualisierungskonzeptes wurde folgende Anforderung andie Visualisierung als Ziel verfolgt. Die OWL-S-Prozessmodelle sollen auf die Wei-se visualisiert werden, so dass deren Semantik in hohem Maße intuitiv erfassbarund interpretierbar für einen Menschen aus dem Informatikumfeld ist. Die intuiti-ve Interpretierbarkeit bedeutet in diesem Fall, dass die Semantik der Elemente einesOWL-S-Prozessmodells anhand deren Visualisierung möglichst präzise erkannt wird.Beispielsweise soll jedes OWL-S-Kontrollkonstrukt anhand seiner Visualisierung ein-deutig identifizierbar sein. Um dieses Ziel zu erreichen, wird das entwickelte Visua-lisierungskonzept an die UML angelehnt. Als Voraussetzung für diese Entscheidungwurden im Abschnitt 3.1 Visualisierungsmöglichkeiten mit Hilfe von Petri-Netzenund UML diskutiert und verglichen. Ausgehend von den Ergebnissen dieses Verglei-ches wird für die Visualisierung der OWL-S-Prozessmodelle ein Visualisierungskon-zept entwickelt, das an die UML-Aktivitätsdiagramme angelehnt ist. Gleichzeitig wirdversucht, die Probleme der Interpretierbarkeit einiger Elemente von UML [11] umzu-gehen, indem auch Farben benutzt werden, denn im UML-Entwurf fehlt die Berück-sichtigung von Farben völlig.

Die Erarbeitung eines Visualisierungskonzeptes für Any-Order Prozesse wird alsproblematisch angesehen, da einerseits solche Konstrukte in UML fehlen und ande-rerseits die Semantik eines Any-Order Prozesses grafisch schwierig darzustellen ist.Diese Problematik wird daher im Unterabschnitt 3.2.5 diskutiert.

Die OWL-S-Beschreibung eines Web Services wird nach der OWL-S-Spezifikation[20] in die drei Komponenten Profile, Grounding und Process unterteilt. Das OWL-S-Prozessmodell eines Web Services wird in der Komponente Process definiert. DasModell enthält neben der Beschreibung des Arbeitsablaufes mit Vor- und die Nach-bedingungen einzelner Prozesse auch die Datenflussbeschreibung. Somit erhält man

Page 30: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

24 3. Theoretische Auseinandersetzung

mit einem OWL-S-Prozessmodell zwei unterschiedliche Sichten auf die beschriebenenProzesse. Zum einen ist es eine datenflussorientierte Sicht, die mit Hilfe von Ein- undAusgängen von Daten beschrieben werden. Zum anderen ist es die arbeitsablauforien-tierte Sicht, die für die vorliegende Arbeit relevant ist. Für die weiteren Überlegungenwird nur die arbeitsablauforientierte Sicht benutzt, denn durch die datenflussorien-tierte Sicht ist keine Visualisierung des Ablaufes eines Web Services möglich. Die Da-tenflüsse kann man bei der Visualisierung als Zusatzinformation oder für eine separateVisualisierung nutzen. Auf diese Möglichkeiten der Visualisierung wird im Ausblickzu dieser Arbeit eingegangen (siehe Kapitel 5).

Der Kontrollfluss des durch OWL-S beschriebenen Arbeitsablaufes wird sowohldurch die OWL-S-Kontrollkonstrukte als auch durch die Vor- und Nachbedingungendefiniert. Durch die OWL-S-Kontrollkonstrukte werden die möglichen Reihenfolgender Abarbeitungen der Prozesse definiert. Die Vorbedingungen beschränken das Aus-führen eines Prozesses insofern, dass sie festlegen, welche Bedingungen erfüllt werdenmüssen, damit der entsprechende Prozess ausgeführt werden kann. Die Nachbedingun-gen sind Zustände, die nach dem Ausführen des mit einer Nachbedingung versehenenProzesses hinterlassen werden.

Es wird davon ausgegangen, dass die zusammengesetzten Prozesse weitere zusam-mengesetzte Prozesse enthalten können. Es können demzufolge Verschachtelungenauftreten. Die Verschachtelungstiefe ist durch die OWL-S-Spezifikation nicht begrenzt.Als Folge kann die Übersichtlichkeit mit zunehmender Verschachtelung stark abneh-men. Der Verlust der Übersichtlichkeit, der durch oben genannte Verschachtelungentsteht, ist unvermeidbar.

Auf die grafische Darstellung der Vor- und Nachbedingungen wird in der vorliegen-den Arbeit verzichtet, da diese Bedingugen als Zusatzinformationen zum Kontrollflussangesehen werden. Die Entscheidung, auch die Vor- und Nachbedingungen der Prozes-se in der Visualisierung darzustellen, würde bedeuten, dass weitere grafische Elementein der Visualisierung erscheinen. Die Relevanz der in Vor- und Nachbedingungen ent-haltenen Informationen wird für die vorliegende Arbeit nicht so hoch eingestuft, dassein weiterer Übersichtlichkeitsverlust akzeptiert wird.

3.2.1 Grafische Elemente

Die im vorhergehenden Kapitel vorgestellten Eigenschaften eines Prozesses, die inOWL-S-Prozessmodellen definiert werden, sind hasParticipant, hasInput, hasOutput,hasLocal, hasPrecondition, hasResult, inCondition, hasResultVar, withOutput, hasEf-fect und composedOf. Wie oben erwähnt wird für die Visualisierung nur die Eigen-schaft composedOf verwendet.

Der Wertebereich der Eigenschaft composedOf ist die Klasse ControlConstruct. DieUnterklassen dieser Klasse sind die OWL-S-Kontrollkonstrukte Sequence, Split, Split-Join, Any-Order, Choice, If-Then-Else, Repeat-Until, Repeat-While und die KlassePerform.

Page 31: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 25

Die beteiligten Prozesse eines zusammengesetzten Prozesses werden folgenderma-ßen definiert. Falls ein beteiligter Prozess atomar oder einfach ist, wird er mit Hilfe desKlasse Perform ausgezeichnet. Falls der beteiligte Prozess zusammengesetzt ist, kanner entweder mit Hilfe des Klasse Perform ausgezeichnet oder direkt durch eine andereUnterklasse der Klasse ControlConstruct definiert werden. Falls die Klasse Performbenutzt wird, so findet man als Eigenschaft dieser Klasse nur die URI des beteiligtenProzesses, der an einer anderen Stelle vollständig beschrieben ist. Die restlichen Un-terklassen der Klasse ControlConstruct können die obenbeschriebenen Eigenschaftenmit beliebiger Tiefe besitzen, bis die Klasse Perform benutzt wird.

Der Codeausschnitt 3.1 zeigt beispielhaft, wie die Eigenschaft eines zusammen-gesetzten Prozesses composedOf, die Unterklasse Sequence der Klasse ControlCon-struct und die Klasse Perform für die Definition eines zusammengesetzten Prozessesin OWL-S benutzt werden.

<process:CompositeProcess rdf:ID="FullCongoBuy"><process:composedOf><process:Sequence><process:components><process:ControlConstructList><objList:first><process:Perform rdf:ID="LocateBookPerform"><process:process rdf:resource="#LocateBook"/></process:Perform></objList:first><objList:rest><process:ControlConstructList><objList:first><process:Perform rdf:ID="BuyBookPerform"><process:process rdf:resource="#BuyBook"/></process:Perform></objList:first><objList:rest rdf:resource="&objList;#nil"/></process:ControlConstructList></objList:rest></process:ControlConstructList></process:components></process:Sequence></process:composedOf></process:CompositeProcess>

Listing 3.1: Beispiel von Definition eines zusammengesetzten Prozesses in OWL-S

Das innerhalb der Eigenschaft composedOf definierte Kontrollkonstrukt mit denbeteiligten Prozessen werden visualisiert, indem jeder beteiligter Prozess und die Kon-trollflüsse dem benutzten Kontrollfluss entsprechend dargestellt werden. Die genaueBeschreibung der Visualisierung von zusammengesetzten Prozessen wird in den fol-

Page 32: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

26 3. Theoretische Auseinandersetzung

genden Abschnitten beschrieben. Falls der beteiligte Prozess ein atomarer oder eineinfacher Prozess ist, wird für die Visualisierung dieses Prozesses nur der lokale Teilder URI des Prozesses verwendet. Die lokalen Teile der URIs der Prozesse werdenweiter unten in der formalen Definition der Visualisierung als IDs bezeichnet. Die IDswerden bei der Visualisierung als Beschriftung der entsprechenden Prozesse verwen-det.

Bei der grafischen Darstellung werden folgende Elemente unterschieden: atomareund einfache Prozesse, Kontrollflüsse zwischen Prozessen, Bedingungen, Start- undEndpunkte. Diese Elemente werden nach einem Visualisierungskonzept dargestellt,das den UML-Aktivitätsdiagrammen ähnlich ist. Sie sind in der Tabelle 3.1 dargestellt.Die atomaren und die einfachen Prozesse werden durch eine Ellipse dargestellt, wobeidie Ellipsen für einfache Prozesse dunkler gefärbt sind. Die Namen der Prozesse, diedem lokalen Teil der URI des jeweiligen Prozesses entnommen werden, werden inner-halb der Ellipsen dargestellt. Die Kontrollflüsse werden durch Pfeile, die die atomarenoder die einfachen Prozesse verbinden, und die Bedingungen durch einen Rhombusdargestellt. Der Beginn und das Ende des Arbeitsablaufes eines zusammengesetztenProzesses wird durch jeweils einen schwarzen Punkt dargestellt.

Ein zusammengesetzter Prozess wird generell folgendermaßen visualisiert. DerKontrollfluss beginnt mit einem Startpunkt. Der Startpunkt wird durch einem Pfeilmit der Visualisierung eines der beteiligten Prozesse verbunden. Um welchen beteilig-ten Prozess es sich handelt, wird durch das im zusammengesetzten Prozess verwendeteKontrollkonstrukt definiert. Im Falle, dass der beteiligte Prozess einfach oder atomarist, zeigt der Pfeil des Kontrollflusses direkt auf die Ellipse, die diesen beteiligten Pro-zess repräsentiert. Falls der beteiligte Prozess ein zusammengesetzter Prozess ist, zeigtder Pfeil auf den Startpunkt des beteiligten Prozesses. Falls die beteiligten Prozesseeinfache Prozesse sind, werden sie ähnlich den atomaren Prozessen durch Ellipsenaber dunkler dargestellt. Falls der beteiligte Prozess zusammengesetzt ist, handelt essich um eine Verschachtelung. Die Visualisierung solcher Prozesse wird im Anhanggezeigt und erläutert.

Zwischen dem Start- und Endpunkt eines zusammengesetzten Prozesses werdendie beteiligten Prozesse durch Pfeile des Kontrollflusses so verbunden, wie es dasverwendete Kontrollkonstrukt definiert. So wird für jeden zusammengesetzten Prozessder OWL-S-Prozessmodellbeschreibung ein Graph gebildet und visualisiert.

Die Visualisierung für die jeweilige Kontrollkonstrukte wird in den folgenden Ab-schnitten beschrieben.

Page 33: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 27

OWL-S Element grafische Darstellung

Start- / Endpunkt

Atomarer Prozessatomic process

Atom. Prozess in einem Any-Order-Prozess

AtomProc_Any-Order

Einfacher Prozesssimple process

Einfacher Prozess in einem Any-Order-Prozess

AtomProc_Any-Order

BedingungCondition

Normale Kante

Kante in einem Any-Order-Prozess

Kante in einem Choice-Prozess

Kante, die einen Kontrollfluss auseiner Bedingung darstellt

Condition

<Then | Else | true | false>

Tabelle 3.1: Grafische Elemente der Visualisierung

Page 34: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

28 3. Theoretische Auseinandersetzung

3.2.2 Sequence

Die folgenden Unterabschnitte enthalten für jedes Kontrollkonstrukt einen Beispiel-prozess, der sowohl in OWL-S beschrieben als auch durch seine Visualisierung darge-stellt ist. Im Anhang ?? werden Visualisierungen solcher zusammengesetzter Prozessegezeigt, welche selbst weitere zusammengesetzte Prozesse enthalten.

Das Kontrollkonstrukt Sequence wird benutzt, wenn eine Menge von Prozessenbeschrieben wird, die sequentiell auszuführen sind.

Die Visualisierung der Sequence-Prozesse erfolgt analog zu einer grafischen Dar-stellung von mehreren UML-Aktionen [14], die sequentiell ausgeführt werden. Fallsder erste beteiligte Prozess einfach oder atomar ist, wird bei der Visualisierung derStartpunkt des Sequence-Prozesses durch einen Pfeil mit der Ellipse verbunden, dieden ersten beteiligten Prozess repräsentiert. Wenn der erste beteiligte Prozess zusam-mengesetzt ist, wird der Startpunkt des Sequence-Prozesses mit dem Startpunkt desersten beteiligten Prozesses mit einem Pfeil verbunden.

Falls der i+1-te Prozess atomar oder einfach ist, wird die Ellipse oder der End-punkt des i-ten Prozesses mit der Ellipse des i+1-ten Prozesses durch einen Pfeilverbunden. Wenn der i+1-te Prozess zusammengesetzt ist, wird die Ellipse oder derEndpunkt des i-ten Prozesses mit dem Startpunkt des i+1-ten Prozesses verbunden.

Schließlich wird der letzte beteiligte Prozess mit dem Endpunkt des Sequence-Prozesses mit einem Pfeil verbunden. Dabei wird entweder die Ellipse des letztenbeteiligten Prozesses, falls der letzte Prozess einfach oder atomar ist, oder der End-punkt des letzten beteiligten Prozesses mit dem Endpunkt des Sequence-Prozessesverbunden.

Der Codeausschnitt 3.2 zeigt eine XML-Repräsentation eines Teils von einemOWL-S-Prozessmodell. Der Codeausschnitt zeigt beispielhaft, auf welche Weise einzusammengesetzter Prozess mit dem Kontrollkonstrukt Sequence in OWL-S beschrie-ben wird.

Das Beispiel (Listing 3.2) eines zusammengesetzten Prozesses enthält nur atomareProzesse (AtomicProcess). Die Visualisierung dieses Prozesses ist in der Abbildung 3.6dargestellt. Sie enthält einen Start- und einen Endpunkt, die Ellipsen für die beteilig-ten atomaren Prozesse und die Pfeile des Kontrollflusses. Der Startpunkt ist mit derEllipse des ersten beteiligten Prozesses verbunden (Prozess_1). Der i-te Prozess istmit dem i+1-ten Prozess durch einen Pfeil verbunden. Der letzte im Sequence-Prozessbeteiligte Prozess ist mit dem Endpunkt des Sequence-Prozesses verbunden.

Page 35: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 29

<process:CompositeProcess rdf:ID="Beispielsequenz"><process:composedOf><process:Sequence><process:components><process:ControlConstructList><objList:first><process:Perform rdf:ID="Prozess1Perform"><process:process rdf:resource="#Prozess1"/></process:Perform></objList:first><objList:rest><process:ControlConstructList><objList:first><process:Perform rdf:ID="Prozess2Perform"><process:process rdf:resource="#Prozess2"/></process:Perform></objList:first><objList:rest><process:ControlConstructList><objList:first><process:Perform rdf:ID="Prozess\_nPerform"><process:process rdf:resource="#Prozess\_n"/></process:Perform></objList:first><objList:rest rdf:resource="&objList;#nil"/></process:ControlConstructList></objList:rest></process:ControlConstructList></objList:rest></process:ControlConstructList></process:components></process:Sequence></process:composedOf></process:CompositeProcess>

Listing 3.2: OWL-S-Repräsentation eines zusammengesetzten Prozesses„BuySequence“ (Kontrollkonstrukt Sequence)

3.2.3 Split

Falls die einzelnen Prozesse eines zusammengesetzten Prozesses gleichzeitig ausgeführtwerden, so werden sie im OWL-S-Prozessmodell mit Hilfe des KontrollkonstruktesSplit beschrieben. Die Ausführungsdauer der gleichzeitig ausgeführten Prozesse istim Allgemeinen nicht gleich. Nach der OWL-S-Spezifikation gilt ein zusammengesetz-ter Prozess mit dem Kontrollkonstrukt Split bereits dann als komplett ausgeführt,

Page 36: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

30 3. Theoretische Auseinandersetzung

Process_1

Process_2

Process_n

Abbildung 3.6: Grafische Darstellung des Kontrollkonstruktes Sequence

wenn alle beteiligten Prozesse bereit zur Ausführung sind. Das bedeutet, dass derKontrollfluss weiter läuft, obwohl noch nicht alle beteiligten Teilprozesse ausgeführtwurden.

Die Visualisierung eines Split-Prozesses enthält einen Start- und Endpunkt. DieVerzweigung des Kontrollflusses wird analog der UML-Notation [14] grafisch darge-stellt, um die Interpretierbarkeit der Visualisierung in hohem Maße zu gewährleisten.Dabei werden die gleichzeitig ausgeführten Prozesse horizontal auf einer Ebene undnicht untereinander grafisch dargestellt. Das für einen Split-Prozess typische Verhal-ten, bei dem der Kontrollfluss weiterlaufen darf, obwohl nicht unbedingt alle beteilig-ten Prozesse ausgeführt sind, wird in der Visualisierung dadurch verdeutlicht, dass derdargestellte Kontrollfluss aus dem Startpunkt nicht nur mit den beteiligten Prozessen,sondern auch direkt mit dem Endpunkt des zusammengesetzten Prozesses verbundenwird. Darüber hinaus existiert kein Kontrollfluss von den beteiligten Prozessen zumEnde des Split-Prozesses. Somit verlaufen keine Pfeile von den beteiligten Prozessenzum Endpunkt des Split-Prozesses. Damit wird angedeutet, dass der Weiterverlaufdes Kontrollflusses nicht von der Ausführungsdauer der beteiligten Prozesse abhängigist.

Falls ein beteiligter Prozess zusammengesetzt ist, wird der Startpunkt des Split-Prozesses mit dem Startpunkt des beteiligten Prozesses verbunden. Anderenfalls wirdder Startpunkt des Split-Prozesses mit der Ellipse des beteiligten Prozesses verbunden.

Page 37: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 31

<process:CompositeProcess rdf:ID="Beispiel_Split"><process:composedOf><process:Split><process:components><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_1Perform"><process:process rdf:resource="#Prozess_1"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_2Perform"><process:process rdf:resource="#Prozess_2"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_nPerform"><process:process rdf:resource="#Prozess_n"/></process:Perform></objList:first><objList:rest rdf:resource="&objList;#nil"/></process:ControlConstructBag></objList:rest></process:ControlConstructBag></objList:rest></process:ControlConstructBag></process:components></process:Split></process:composedOf></process:CompositeProcess>

Listing 3.3: Ein zusammengesetzter Prozess Split in OWL-S

Die Abbildung 3.7 visualisiert einen mit Hilfe des Kontrollkonstrukts Split zu-sammengesetzten Prozess, der im Codeausschnitt 3.3 definiert ist. Der visualisierteSplit-Prozess enthält drei atomare Prozesse. Der Startpunkt des Split-Prozesses istjeweils mit der Ellipse durch einen Pfeil verbunden, die einen beteiligten Prozess re-präsentiert. Der Startpunkt ist darüber hinaus mit dem Endpunkt verbunden.

Page 38: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

32 3. Theoretische Auseinandersetzung

Prozess_1 Prozess_2 Prozess_n

Abbildung 3.7: Grafische Darstellung des Kontrollkonstruktes Split

3.2.4 Split-Join

Die Semantik des Kontrollkonstruktes Split-Join ist ähnlich der des Kontrollkonstruk-tes Split. Die Teilprozesse eines Split-Join-Prozesses werden wie beim Split gleichzei-tig ausgeführt. Bei beiden Kontrollkonstrukten sind keine Zeitbeschränkungen fürdie Ausführungszeit definiert. Der semantische Unterschied zum Split besteht darin,dass der zusammengesetzte Prozess mit dem Kontrollkonstrukt Split-Join erst dannkomplett ausgeführt ist, wenn alle beteiligten Prozesse ausgeführt sind.

In der Visualisierung (Abb. 3.8) wird dieses Verhalten dadurch deutlich, dass esim Gegensatz zu Split keine direkte Kontrollflussverbindung aus dem Start- zum End-punkt gibt. Der Kontrollfluss muss somit die beteiligten Prozesse durchlaufen. Erstdann ist der gesamte Prozess terminiert. Diese Visualisierungsweise wird in Petri-Netzen analog durch eine Verkettung der Konstrukte AND-split und AND-join [17]oder in UML [14] durch Verkettung von Parallelisierungs- und Synchronisierungskno-ten umgesetzt.

In der Visualisierung wird somit der Startpunkt mit jedem beteiligten Prozessdurch einen Pfeil verbunden. Falls ein beteiligter Prozess zusammengesetzt ist, wirdder Startpunkt des Split-Join-Prozesses mit dem Startpunkt des beteiligten Prozessesverbunden. Jeder beteiligter Prozess wird mit dem Endpunkt des Split-Join-Prozessesverbunden. Falls ein beteiligter Prozess zusammengesetzt ist, wird sein Endpunkt mitdem Endpunkt des Split-Join-Prozesses verbunden. Die beteiligten Prozesse werdenhorizontal nebeneinander dargestellt.

Page 39: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 33

<process:CompositeProcess rdf:ID="Beispiel_Split-Join"><process:composedOf><process:Split-Join><process:components><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_1Perform"><process:process rdf:resource="#Prozess_1"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_2Perform"><process:process rdf:resource="#Prozess_2"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_nPerform"><process:process rdf:resource="#Prozess_n"/></process:Perform></objList:first><objList:rest rdf:resource="&objList;#nil"/></process:ControlConstructBag></objList:rest></process:ControlConstructBag></objList:rest></process:ControlConstructBag></process:components></process:Split-Join></process:composedOf></process:CompositeProcess>

Listing 3.4: Ein zusammengesetzter Prozess Split-Join in OWL-S

Die Abbildung 3.8 visualisiert einen mit Hilfe des Kontrollkonstrukts Split-Joinzusammengesetzten Prozess, der durch den Codeausschnitt 3.4 definiert ist. Der vi-sualisierte Split-Join-Prozess enthält drei atomare Prozesse. Der Startpunkt des Split-Join-Prozesses ist jeweils mit der Ellipse durch einen Pfeil verbunden, die einen be-teiligten Prozess repräsentiert. Die Ellipsen, die die beteiligten Prozesse visualisieren,sind mit dem Endpunkt verbunden.

Page 40: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

34 3. Theoretische Auseinandersetzung

Prozess_1 Prozess_2 Prozess_n

Abbildung 3.8: Grafische Darstellung des Kontrollkonstruktes Split-Join

3.2.5 Any-Order

Das Kontrollkonstrukt Any-Order erlaubt die Definition zusammengesetzter Prozesse,deren Teilprozesse in einer nicht spezifizierten Reihenfolge ausgeführt werden.

Ein Any-Order-Prozess wird analog einem Sequence-Prozess visualisiert. Der Kon-trollfluss wird allerdings durch einen kopflosen Pfeil und die beteiligten Prozesse durchnicht gefüllte Ellipsen dargestellt. Visuell enthält ein Any-Order-Prozess zwar den ers-ten (zum Startpunkt nächsten) und den letzten (zum Endpunkt nächsten) Prozess,allerdings soll durch die Reihenfolge der beteiligten Prozesse keine Ausführungsreihen-folge suggeriert werden. Die beteiligten Prozesse eines Any-Order-Prozesses in einerReihenfolge darzustellen soll als eine Visualisierungsmöglichkeit angesehen werden.Die alternativen Visualisierungen eines Any-Order-Prozesses und die Begründung fürdie gewählte Visualisierungsmöglichkeit werden im Unterabschnitt 3.4.2 vorgestellt.Die Kopflosen Pfeile und die nicht ausgefüllten Ellipsen sollen den semantischen Un-terschied zu Sequence-Prozessen verdeutlichen, bei denen die Reihenfolge der Ellipsensehr wohl die Semantik des zusammengesetzten Prozesses ausdrückt.

Falls ein beteiligter Prozess einfach ist, wird der Rand der Ellipse dunkler als beieinem atomaren Prozess dargestellt.

In der Abbildung 3.9 wird der Prozess visualisiert, dessen Definition im Codeaus-schnitt 3.5 gezeigt wird. Der Startpunkt des Any-Order-Prozesses ist mit dem erstenbeteiligten Prozess Prozess_1 verbunden, der allerdings nicht unbedingt als ersterausgeführt werden muss. Der i-te Prozess wird mit dem i+1-ten Prozess verbunden.Der letzte Prozess Prozess_n ist mit dem Endpunkt des Prozesses BuyAnyOrderverbunden.

Page 41: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 35

<process:CompositeProcess rdf:ID="Beispiel_Any-Order"><process:composedOf><process:Any-Order><process:components><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_1Perform"><process:process rdf:resource="#Prozess_1"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_2Perform"><process:process rdf:resource="#Prozess_2"/></process:Perform></objList:first><objList:rest><process:ControlConstructBag><objList:first><process:Perform rdf:ID="Prozess_nPerform"><process:process rdf:resource="#Prozess_n"/></process:Perform></objList:first><objList:rest rdf:resource="&objList;#nil"/></process:ControlConstructBag></objList:rest></process:ControlConstructBag></objList:rest></process:ControlConstructBag></process:components></process:Any-Order></process:composedOf></process:CompositeProcess>

Listing 3.5: Ein zusammengesetzter Prozess Any-Order in OWL-S

3.2.6 Choice

Durch das Kontrollkonstrukt Choice werden zusammengesetzte Prozesse definiert, beidenen genau ein beteiligter Prozess ausgeführt werden darf.

Bei der Visualisierung eines Choice-Prozesses wird der Startpunkt des Choice-Prozesses mit der Ellipse jedes beteiligten Prozesses durch punktierte Pfeile ver-bunden. Wenn ein beteiligter Prozess zusammengesetzt ist, wird der Startpunkt desChoice-Prozesses mit dem Startpunkt des beteiligten Prozesses mit einem punktierten

Page 42: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

36 3. Theoretische Auseinandersetzung

Process_1

Process_2

Process_n

Abbildung 3.9: Grafische Darstellung des Kontrollkonstruktes Any-Order

Pfeil verbunden. Die Ellipse oder der Endpunkt jedes beteiligten Prozesses wird mitdem Endpunkt des Choice-Prozesses ebenfalls mit einem punktierten Pfeil verbunden.Die beteiligten Prozesse werden horizontal nebeneinander dargestellt.

Das zu Choice analoge Konstrukt wird in UML [14] durch eine Verkettung vonEntscheidungs- und Vereinigungsknoten dargestellt. Dabei wird bei der grafischenDarstellung für die Verzweigung und das Zusammenführen des Kontrollflusses je-weils ein Rhombus verwendet. Ein Rhombus wird aber sowohl in UML als auchin dem entwickelten Visualisierungskonzept (If-Then-Else-, Repeat-Until-, Repeat-While-Prozess) für bedingte Verzweigungen verwendet. Um die eindeutige Interpre-tierbarkeit der Visualisierung eines Choice-Prozesses zu gewährleisten, wird auf dieVerwendung von Rhomben bei einem Choice-Prozess verzichtet. Die nichtdeterminis-tische Natur eines Choice-Prozesses wird durch punktierte Darstellung des Kontroll-flusses angedeutet, da hier der Kontrollfluss nicht festgelegt ist.

Das Beispiel eines Choice-Prozesses ist in der Abbildung 3.10 visualisiert. Die be-teiligten Prozesse Prozess_1, Prozess_2 und Prozess_n sind atomar. Der Startpunktdes Choice-Prozesses ist mit den beteiligten Prozessen und die beteiligten Prozesseihrerseits mit dem Endpunkt durch punktierte Pfeile verbunden.

Page 43: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 37

Prozess_1 Prozess_2 Prozess_n

Abbildung 3.10: Grafische Darstellung des Kontrollkonstruktes Choice

IfThenElse-Bedingung

Prozess_1

Then

Prozess_2

Else

Abbildung 3.11: Grafische Darstellungdes Kontrollkonstruktes If-Then-Else

IfThenElse-Bedingung

Prozess_1

Then

Else

Abbildung 3.12: Grafische Darstellungdes Kontrollkonstruktes If-Then-Else oh-ne Else-Zweig

3.2.7 If-Then-Else

Ein bedingter Verlauf des Kontrollflusses wird mit Hilfe des Kontrollkonstruktes If-Then-Else definiert. Falls die Bedingung, die im Rahmen des Kontrollkonstruktes If-Then-Else definiert ist, erfüllt wird, kann der beteiligte Prozess ausgeführt werden, derdurch das Then-Element ausgezeichnet ist. Es kann darüber hinaus ein Else-Prozessdefiniert werden.

Bei der Visualisierung wird der Startpunkt des If-Then-Else-Prozesses mit demRhombus verbunden, der die Bedingung repräsentiert. Diese Art der Darstellung vonBedingungen wird aus der UML übernommen, wo bedingte Verzweigungen und Be-dingungen grafisch durch Rhomben dargestellt werden [14]. Der Ausdruck, der dieBedingung repräsentiert, erscheint in der Visualisierung in diesem Rhombus. DerRhombus wird durch einem Pfeil mit der Ellipse oder dem Startpunkt des Then-Prozesses verbunden. Dieser Pfeil wird mit der Aufschrift „Then“ beschriftet. Analogwird der Rhombus mit dem Else-Prozess verbunden, falls ein Else-Prozess definiert ist.Der Pfeil wird in diesem Fall mit der Aufschrift „Else“ beschriftet. Die Kontrollfluss-

Page 44: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

38 3. Theoretische Auseinandersetzung

beschriftungen „Then“ und „Else“ tragen zu einer intuitiven Interpretierbarkeit derVisualisierung von If-Then-Else-Prozessen bei. Die Ellipsen oder die Endpunkte derbeteiligten Prozesse werden schließlich mit dem Endpunkt des If-Then-Else-Prozessesverbunden.

Das in der Abbildung 3.11 dargestelltes Beispiel eines zusammengesetzten If-Then-Else-Prozesses wird durch den Codeausschnitt 3.6 definiert. Die Abarbeitung der Pro-zesse 1 und 2 sind an die definierte Bedingung gebunden. Der Kontrollfluss zum Pro-zess_1, der gestartet wird, falls die Bedingung wahr ist, ist mit einer Beschriftung„Then“ versehen. Im negativen Fall wird der Prozess_2 ausgeführt. Der Kontrollflussfür den negativen Fall ist analog mit „Else“ beschriftet. Die beiden Prozesse werdenschließlich mit dem Endpunkt des If-Then-Else-Prozesses verbunden. Die Abbildung3.12 zeigt die Visualisierung eines If-Then-Else-Prozesses, bei dem kein Else-Prozessdefiniert wurde.

<process:CompositeProcess rdf:ID="IfThenBeispiel"><process:composedOf><process:If-Then-Else><process:ifCondition><expr:SWRL-Condition rdf:ID="IfThenCondition"><rdfs:label>IfThenElse-Bedingung</rdfs:label></expr:SWRL-Condition></process:ifCondition><process:then><process:Perform rdf:ID="Process_1Perform"><process:process rdf:resource="#Process_1"/></process:Perform></process:then><process:else><process:Perform rdf:ID="Process_2Perform"><process:process rdf:resource="#Process_2"/></process:Perform></process:else></process:If-Then-Else></process:composedOf></process:CompositeProcess>

Listing 3.6: Ein zusammengesetzter Prozess If-Then-Else in OWL-S

3.2.8 Repeat-Until (Iterate)

Mit Hilfe von OWL-S ist es möglich, Zyklen von Prozessen zu definieren. Das Kontroll-konstrukt Repeat-Until erlaubt es, einen Zyklus von einem Prozess zu beschreiben,bei dem der beteiligte Prozess mindestens ein Mal gestartet wird.

Die Visualisierung des Repeat-Until-Prozesses enthält den Startpunkt, der mit derEllipse oder mit dem Startpunkt des beteiligten Prozesses durch einen Pfeil verbunden

Page 45: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 39

wird. Die Ellipse oder der Endpunkt des beteiligten Prozesses wird mit dem Rhombusverbunden, der den Inhalt des Label-Elementes der Bedingung enthält. Der Rhombuswird durch einen Pfeil mit der Beschriftung „true“ mit der Ellipse oder dem Startpunktdes beteiligten Prozesses verbunden. Weiterhin wird der Rhombus mit dem Endpunktdes Repeat-Until-Prozesses durch einen Pfeil mit der Beschriftung „false“ verbunden.

Ein Rhombus als grafische Darstellung einer Bedingung wird aus dem gleichenGrund wie bei If-Then-Else- und Repeat-While-Prozessen gewählt. In UML wirdein Rhombus für grafische Darstellung bedingter Verzweigungen oder Bedingungenverwendet [14]. Durch die Kontrollflussbeschriftungen „true“ und „false“ der Repeat-Until- und Repeat-While-Prozesse wird der semantische Unterschied dieser Prozes-se zu If-Then-Else-Prozessen angedeutet. Eine möglichst intuitive Interpretierbarkeitvon Visualisierungen der Prozesse, in denen Bedingungen vorkommen, wird dadurchverbessert.

Prozess_1 aus dem Codebeispiel 3.7 wird mindestens ein Mal gestartet. Nachjedem Prozessablauf wird die im Rahmen dieses Prozesses definierte Bedingung ge-prüft. Falls sie erfüllt wird, wird der Prozess erneut gestartet. Im negativen Fall istder gesamte Repeat-Until-Prozess terminiert. Die Bedingungen werden in der OWL-S-Prozessmodellbeschreibungen mit Hilfe von SWRL-Ausdrücke [15] definiert. Ebenfallswerden für die Definition der Bedingungen das RDFS-Element label [26] benutzt. Fürdie Visualisierung wird der Inhalt dieses Elementes benutzt, da die Mindswap OWL-S-API noch keine Unterstützung für die SWRL-Ausdrücke bietet. Eine mögliche Lösungdieses Problems wird im Ausblick diskutiert.

Die Visualisierung des im Ausschnitt 3.7 definierten Prozesses ist in der Abbildung3.13 dargestellt.

<process:CompositeProcess rdf:ID="RepeatUntilBeispiel"><process:composedOf><process:Repeat-Until><process:untilCondition><expr:SWRL-Condition rdf:ID="RepeatUntilBedingung"><rdfs:label>Bedingung</rdfs:label></expr:SWRL-Condition></process:untilCondition><process:untilProcess><process:Perform rdf:ID="Process_1Perform"><process:process rdf:resource="#Process_1"/></process:Perform></process:untilProcess></process:Repeat-Until></process:composedOf></process:CompositeProcess>

Listing 3.7: Ein zusammengesetzter Prozess Repeat-Until in OWL-S

Page 46: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

40 3. Theoretische Auseinandersetzung

Prozess_1

Bedingung

true

false

Abbildung 3.13: Grafische Darstellung des Kontrollkonstruktes Repeat-Until

3.2.9 Repeat-While (Iterate)

Eine weitere Art von Zyklen wird durch das Kontrollkonstrukt Repeat-While ermög-licht. Diese Zyklen sind vorprüfend, so dass es zum Starten des beteiligten Prozessesnicht kommen muss. Erst wird die Bedingung ausgewertet und falls sie erfüllt ist, kannder beteiligte Prozess ausgeführt werden. Der beteiligte Prozess wird immer wiederausgeführt, solange die Bedingung erfüllt wird.

Bei der Visualisierung wird der Startpunkt des Repeat-While-Prozesses mit demRhombus verbunden, der den Inhalt des Label-Elementes der Bedingung enthält. DerRhombus wird mit der Ellipse oder dem Startpunkt des beteiligten Prozesses durcheinen Pfeil mit der Beschriftung „True“ verbunden. Die Ellipse oder der Endpunkt desbeteiligten Prozesses wird durch einen Pfeil mit dem Rhombus verbunden. Der Pfeilmit der Beschriftung „False“ läuft vom Rhombus zum Endpunkt des Repeat-While-Prozesses.

Die Abbildung 3.14 visualisiert den Codeausschnitt 3.8, wo das Verhalten einesvorprüfenden Zyklus verdeutlicht wird. Falls die Bedingung beim ersten Auswertennicht erfüllt ist, startet der Prozess_1 nicht und somit ist dann der zusammengesetzteProzess terminiert. Im positiven Fall wird der Prozess_1 wiederholt gestartet, solangedie Bedingung wahr ist. Die Kontrollflüsse sind in beiden Fällen mit „false“ oder „true“beschriftet.

Page 47: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.2 Visualisierung der OWL-S-Prozessmodelle 41

<process:CompositeProcess rdf:ID="RepeatWhileBeispiel"><process:composedOf><process:Repeat-While><process:whileCondition><expr:SWRL-Condition rdf:ID="RepeatWhileBedingung"><rdfs:label>Bedingung</rdfs:label></expr:SWRL-Condition></process:whileCondition><process:WhileProcess><process:Perform rdf:ID="Process_1Perform"><process:process rdf:resource="#Process_1"/></process:Perform></process:WhileProcess></process:Repeat-While></process:composedOf></process:CompositeProcess>

Listing 3.8: Ein zusammengesetzter Prozess Repeat-Until in OWL-S

Bedingung

Prozess_1

true false

Abbildung 3.14: Grafische Darstellung des Kontrollkonstruktes Repeat-While

Page 48: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

42 3. Theoretische Auseinandersetzung

3.3 Formale Definition der Visualisierung

Als nächstes wird die Abbildung der Menge aller möglichen OWL-S-Prozessmodell-beschreibungen in die Menge aller Graphen, die OWL-S-Prozessmodellbeschreibungendarstellen, formal definiert. Dazu folgen zunächst die formale Definition der Urbild-und Bildmenge dieser Abbildung. Anschließend folgt die formale Definition der Ab-bildung.

3.3.1 Definition der OWL-S-Prozessmodellbeschreibung

• O sei die Menge aller möglichen OWL-S-Prozessmodellbeschreibungen.

• C sei Menge der Beschreibungen aller möglichen zusammengesetzten Prozesse.

• CP ⊆ C sei die Menge von Beschreibungen aller zusammengesetzten Prozesse,die in der OWL-S-Prozessmodellbeschreibung P ∈ O vorkommen.cP,i ∈ CP sei die Beschreibung des i-ten zusammengesetzten Prozesses aus derOWL-S-Prozessmodellbeschreibung P , wobei 1 ≤ i ≤ ||CP || (i ∈ N)Dabei sind die Elemente der Menge CP 4-Tupel cP,i = (idP,i, coP,i, CCP,i, condP,i)

• PIDC - Menge der ID’s aller zusammengesetzten Prozesse und idP,i ∈ PIDCein Element dieser Menge.

• PIDA - Menge der ID’s aller atomaren Prozesse.

• PIDS - Menge der ID’s aller einfachen Prozesse.

• PID = PIDC ∪ PIDA ∪ PIDS - Menge der ID’s aller Prozesse.

• CoC∗ := {„Sequence“ , „Split“, „Split − Join“, „Any − Order“ , „Choice“, „If −Then − Else“, „Repeat − Until“ , „Repeat − While“} - Menge aller möglichencomposedOf-Elemente.

• coP,i ∈ CoC∗ - composedOf-Element des i-ten zusammengesetzten Prozesses inder OWL-S-Prozessmodellbeschreibung P .

• CoC := CoC∗ ∪ {„Perform“}

• condP,i ∈ COND sei Element der Menge aller Möglichen Bedingungen. Dabeiist condP,i die Bedingung, die im i-ten zusammengesetzten Prozess definiert ist.Bei so einem Prozess kann es sich um einen If-Then-Else-, Repeat-Until- odereinen Repeat-While-Prozess handeln.

• CC :=||CP ||⋃i=1

CCP,i - Menge der Paare, die für alle zusammengesetzten Prozesse

Informationen über alle beteiligten Prozesse enthalten

Page 49: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.3 Formale Definition der Visualisierung 43

CCP,i := {(cocP,i,k, pidP,i,k)|cocP,i,k ∈ CoC, pidP,i,k ∈ PID} ⊆ CC - Menge derPaare, die Informationen über die im i-ten zusammengesetzten Prozess betei-ligten Prozesse enthalten:

– cocP,i,k ist das Kontrollkonstrukt des k-ten beteiligten Prozesses im i-tenzusammengesetzten Prozess der OWL-S-Prozessmodellbeschreibung P .

– pidP,i,k ist die ID des k-ten beteiligten Prozesses im i-ten zusammengesetz-ten Prozess.

3.3.2 Definition des Graphen

• G(V , E) sei die Menge aller gerichteten Graphen, die OWL-S-Prozessmodellebeschreiben, wobei V die Menge aller Knoten und E die Menge aller Kanten inG seien.

• Sei G(V, E) ∈ G(V , E) ein konkreter Graph.

• V b, V e, V a, V aA , V s, V sA , V c seien die Mengen aller Knoten, die Startpunkte(b), Endpunkte (e) der Prozesse, atomare Prozesse (a), einfache Prozesse (s),(aA und sA) atomare und einfache Prozesse in Any-Order-Prozessen, und (c)Bedingungen repräsentieren.

• K := {b, e, a, s, aA, sA, c} sei die Menge der Artbezeichnungen aller Knoten.

⋃x∈K

V x = V (3.1)

⋂x∈K

V x = ∅ (3.2)

• Enorm sei die Menge aller Kanten, die den Kontrollfluss bei allen außer Any-Order- und Choice-Prozessen repräsentieren.

• Eundir sei die Menge aller Kanten, die den Kontrollfluss bei den Any-Order-Prozessen repräsentieren.

• Epoint sei die Menge aller Kanten, die den Kontrollfluss bei den Choice-Prozessenrepräsentieren.

• Econd∈{Then,Else,true,false} sei die Menge aller Kanten, die zusätzlich die Then-,Else-, true- und false-Kontrollflusse bei den Prozessen repräsentieren, die Be-dingungen enthalten.

Page 50: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

44 3. Theoretische Auseinandersetzung

• L := {norm, undir, point, Then,Else, true, false} sei die Menge der Artbe-zeichnungen aller Kanten.

⋃x∈L

Ex = E (3.3)

⋂x∈L

Ex = ∅ (3.4)

3.3.3 Erzeugung von OWL-S-Prozessmodellgraphen

Die Abbildung Graph : O → G(V , E), die jede OWL-S-Prozessmodellbeschreibungauf einen Graphen abbildet ist definiert wie folgt:Sei O ∈ O eine OWL-S-Prozessmodellbeschreibung.

Graph(O) =⋃

cP,i∈CP

visc(cP,i) =⋃

cP,i∈CP

G(V i, Ei) = G(V, E) (3.5)

Dabei bildet die Funktion visc : CP → G(V , E) einen Teilgraphen, der den i-tenzusammengesetzten Prozess darstellt. Diese Funktion ist folgendermassen definiert:Sei cP,i = (idP,i, coP,i, CCP,i, condP,i) ∈ CP

visc(cP,i) =

visSeq(CCP,i); falls coP,i = „Sequence“visS(CCP,i); falls coP,i = „Split“visSJ(CCP,i); falls coP,i = „Split− Join“visAO(CCP,i); falls coP,i = „Any −Order“visC(CCP,i); falls coP,i = „Choice“visITE(CCP,i); falls coP,i = „If − Then− Else“visRU(CCP,i); falls coP,i = „Repeat− Until“visRW (CCP,i); falls coP,i = „Repeat−While“

(3.6)

Die in (3.6) benutzten Funktionen benötigen die in (3.10), . . . ,(3.16) definiertenFunktionen zum Erzeugen der Knoten- und Kantenmengen. Die Funktionen (3.7),(3.8) und (3.9) liefern dabei bei einer gegebenen ID eines Prozesses das Kontrollkon-strukt dieses Prozesses, die Liste der Informationen über die beteiligten Prozesse imgegebenen Prozess und die Bedingung (falls vorhanden) dieses Prozesses.

getcoc(pidP,i,k) = cocP,i,k (3.7)

getCC(pidP,i,k) = CCP,k (3.8)

getcond(pidP,i,k) = condP,k (3.9)

Page 51: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.3 Formale Definition der Visualisierung 45

visV ertex(cocP,i,k, pidP,i,k) =

visc(„Undef “, getcoc(pidP,i,k), getCC(pidP,i,k), getcond(pidP,i,k));falls cocP,i,k ∈ CoC∗

visc(pidP,i,k, getcoP,k, getCC(pidP,i,k), getcond(pidP,i,k));falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDC

({vai,k}, ∅); falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDA

({vsi,k}, ∅); falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDS

(3.10)

visV ertexAnyOrder(cocP,i,k, pidP,i,k) =

visc(„Undef “, getcoc(pidP,i,k), getCC(pidP,i,k), getcond(pidP,i,k));falls cocP,i,k ∈ CoC∗

visc(pidP,i,k, getcoP,k, getCC(pidP,i,k), getcond(pidP,i,k));falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDC

({vaAi,k }, ∅); falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDA

({vsAi,k}, ∅); falls cocP,i,k ∈ CoC\CoC∗ ∧ pidP,i,k ∈ PIDS

(3.11)

Die Funktion (3.12) liefert bei zwei gegebenen ID’s von Prozessen, die im i-ten zusam-mengesetzten Prozess beteiligt sind, und gegebener Kantenart eine Kante zwischendiesen zwei Prozessen. (3.13) und (3.14) geben eine Kante zurück, die den Startpunktdes i-ten Prozesses mit dem beteiligten Prozess verbindet, der durch seine ID gegebenwird bzw. diesen Prozess mit dem Endpunkt des i-ten Prozesses verbindet. Die Funk-tionen (3.15) und (3.16) liefern Kanten zwischen Bedingungsknoten und den Knoten,die durch ihre ID gegeben werden.

Seien kind ∈ L, x ∈ {a, s} ⊂ K, ekind ∈ Ekind

visEdge(pidP,i,k, pidP,i,l, kind) =

Page 52: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

46 3. Theoretische Auseinandersetzung

ekind(v

ei,k, v

bi,l); falls (pidP,i,k ∈ PIDC ∧ pidP,i,l ∈ PIDC)

ekind(vxi,k, v

bi,l); falls (pidP,i,k ∈ PID\PIDC ∧ pidP,i,l ∈ PIDC)

ekind(vei,k, v

xi,l); falls (pidP,i,k ∈ PIDC ∧ pidP,i,l ∈ PID\PIDC)

ekind(vxi,k, v

xi,l); falls (pidP,i,k ∈ PID\PIDC ∧ pidP,i,l ∈ PID\PIDC)

(3.12)

visStartEdge(pidP,i,k, kind) =

{ekind(v

bi , v

bi,k); falls pidP,i,k ∈ PIDC

ekind(vbi , v

xi,k); sonst (3.13)

visEndEdge(pidP,i,k, kind) =

{ekind(v

ei,k, v

ei ); falls pidP,i,k ∈ PIDC

ekind(vxi,k, v

ei ); sonst (3.14)

visCondToProcEdge(pidP,i,k, kind) =

{ekind(v

ci , v

bi,k); falls pidP,i,k ∈ PIDC

ekind(vci , v

xi,k); sonst

(3.15)

visProcToCondEdge(pidP,i,k, kind) =

{ekind(v

ei,k, v

ci ); falls pidP,i,k ∈ PIDC

ekind(vxi,k, v

ci ); sonst

(3.16)

Es folgen die Definitionen der Funktionen, die in (3.6) benutzt werden. Für jedes Kon-trollkonstrukt gibt es dabei eine eigene Funktion, die das Erzeugen des Teilgraphensteuert, der den zusammengesetzten Prozess mit diesem Kontrollkonstrukt repräsen-tiert.Sei n die Anzahl der Prozesse, die im i-ten zusammengesetzten Prozess beteiligt sind.Der Operator t ist in der Formel 3.17 definiert:

(V 1, E1) t (V 2, E2) = (V 3, E3)wobeiV 3 = V 1 ∪ V 2

undE3 = E1 ∪ E2

(3.17)

Page 53: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.3 Formale Definition der Visualisierung 47

visSeq(CCP,i) = (V i, Ei) =k=n⊔

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertex(cocP,i,k, pidP,i,k)t[{vb

i , vei }, visStartEdge(pidP,i,1, norm) ∪ visEndEdge(pidP,i,n, norm)∪

k=n−1⋃(cocP,i,k,pidP,i,k),(cocP,i,k+1,pidP,i,k+1)∈CCP,i,k=1

visEdge(pidP,i,k, pidP,i,k+1, norm)]

(3.18)

visS(CCP,i) = (V i, Ei) =k=n⊔

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertex(cocP,i,k, pidP,i,k)t[{vb

i , vei }, enorm(vb

i , vei )∪

k=n⋃(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visStartEdge(pidP,i,k, norm)]

(3.19)

visSJ(CCP,i) = (V i, Ei) =k=n⊔

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertex(cocP,i,k, pidP,i,k)t

[{vb

i , vei },

k=n⋃(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visStartEdge(pidP,i,k, norm)∪

k=n⋃(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visEndEdge(pidP,i,k, norm)]

(3.20)

visAO(CCP,i) = (V i, Ei) =

k=n⊔(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertexAnyOrder(cocP,i,k, pidP,i,k)t[{vb

i , vei }, visStartEdge(pidP,i,1, undir) ∪ visEndEdge(pidP,i,n, undir)∪

k=n−1⋃(cocP,i,k,pidP,i,k),(cocP,i,k+1,pidP,i,k+1)∈CCP,i,k=1

visEdge(pidP,i,k, pidP,i,k+1, undir)]

(3.21)

Page 54: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

48 3. Theoretische Auseinandersetzung

visC(CCP,i) = (V i, Ei) =k=n⊔

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertex(cocP,i,k, pidP,i,k)t

[{vb

i , vei },

k=n⋃(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visStartEdge(pidP,i,k, point)∪

k=n⋃(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visEndEdge(pidP,i,k, point)]

(3.22)

visITE(CCP,i) = (V i, Ei) =k=2⊔

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visV ertex(cocP,i,k, pidP,i,k)t[{vb

i , vei , v

ci}, enorm(vb

i , vci ) ∪ visCondToProcEdge(pidP,i,1, Then)∪

visCondToProcEdge(pidP,i,2, Else)∪k=2⋃

(cocP,i,k,pidP,i,k)∈CCP,i,k=1

visEndEdge(pidP,i,k, norm)]

(3.23)

visRU(CCP,i) = (V i, Ei) = visV ertex(cocP,i,1, pidP,i,1)t[{vb

i , vei , v

ci}, visStartEdge(pidP,i,1, norm) ∪ visProcToCondEdge(pidP,i,1, norm)∪

visCondToProcEdge(pidP,i,1, true) ∪ efalse(vci , v

ei )]

(3.24)

visRW (CCP,i) = (V i, Ei) = visV ertex(cocP,i,1, pidP,i,1)t[{vb

i , vei , v

ci}, enorm(vb

i , vci ) ∪ visCondToProcEdge(pidP,i,1, true)∪

visProcToCondEdge(pidP,i,1, norm) ∪ efalse(vci , v

ei )]

(3.25)

Page 55: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.3 Formale Definition der Visualisierung 49

3.3.4 Visualisierung von OWL-S-Prozessmodellgraphen

Abschließend wird in diesem Abschnitt die Beziehung zwischen den Elementen desgebildeten Graphen und den grafischen Elementen beschrieben. Diese Beziehung wirdin Form einer Abbildung tabellarisch dargestellt.Sei B die Menge aller grafischen Darstellungen von OWL-S-Prozessmodellen.Dann bildet die Funktion V isualize : G(V , E) → B jeden Graphen, der ein OWL-S-Prozessmodell beschreibt auf eine grafische Darstellung ab und ist folgendermassendefiniert:Sei G(V, E) ∈ G(V , E) ein solcher Graph.Dann

V isualize(G(V, E)) = B =⋃v∈V

visV (v) ∪⋃e∈E

visE(e), (3.26)

wobei die Funktionen visV und visE jeden Knoten bzw. jede Kante des Graphen aufihre Visualisierungen abbilden. Die Funktionen visV und visE sind in den Tabellen(3.2) und (3.3) definiert. Bei der Beschriftung der Knoten werden die lokalen Teileder URI’s der Prozesse (pidP,i,k) verwendet.

v ∈ V visV(v) Beschriftung der Knoten

vbi ∈ V b

vei ∈ V e

vai,k ∈ V a

atomic process

pidP,i,k

vaAi,k ∈ V aA

AtomProc_Any-Order

pidP,i,k

vsi,k ∈ V s

simple process

pidP,i,k

vsAi,k ∈ V sA

AtomProc_Any-Order

pidP,i,k

vci ∈ V c

Condition

condP,i

Tabelle 3.2: Abbildung der Knoten des Graphen G(V, E)

Page 56: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

50 3. Theoretische Auseinandersetzung

e ∈ E visE(e)

enorm ∈ Enorm

eundir ∈ Eundir

epoint ∈ Epoint

econd ∈ Econd

Condition

<Then | Else | true | false>

Tabelle 3.3: Abbildung der Kanten des Graphen G(V, E)

Eine grafische Darstellung B ∈ B enthält somit alle Visualisierungen von Knotenund Kanten, die mit Hilfe der Funktionen visV und visE erzeugt wurden

3.4 Probleme

Als nächstes wird untersucht, welche Probleme auftreten können, falls innerhalb eineszusammengesetzten Prozesses ein oder mehrere andere zusammengesetzte Prozessebeteiligt sind. So wurden in einigen Fällen Kantenüberschneidungen des Graphen fest-gestellt. Das trägt zum Verlust einer intuitiven Lesbarkeit der Semantik von zusam-mengesetzten Prozessen anhand ihrer Visualisierung. Darüber hinaus wird in diesemKapitel die Visualisierung des Any-Order-Prozesses diskutiert, da die Visualisierungder Semantik der zusammengesetzten Prozesse, die mit Hilfe des KontrollkonstruktesAny-Order definiert wurden, nicht unproblematisch ist.

3.4.1 Kantenüberschneidung

Nicht nur die äußeren zusammengesetzten Prozesse einer Verschachtelung, sondernauch die beteiligten Prozesse können einen Start- und einen Endpunkt besitzen, fallsfür sie ein Composed-Of-Element definiert ist. Die Entscheidung, die Start- und End-punkte auch für solche Prozesse zu benutzen hat folgende Gründe. Nach der Untersu-

Page 57: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.4 Probleme 51

chung der Verschachtelungen, bei denen die inneren zusammengesetzten Prozesse kei-nen Start- bzw. Endpunkt haben, wurde vermutet, dass bei einer Verschachtelung voneinem Split-Join-Prozess innerhalb eines Repeat-While-Prozesses in der von dot er-zeugten Visualisierung Kantenüberschneidungen auftreten können (Abbildung 3.15).Diese Vermutung wurde auch für eine Verschachtelung von einem Choice-Prozess in-nerhalb eines Repeat-While-Prozesses gestellt (Abbildung 3.16). Tatsächlich tretenKantenüberschneidungen auf, falls der der Split-Join-Prozess (Abbildung 3.17) bzw.der Choice-Prozess (Abbildung 3.18) mehr als drei atomaren Prozesse enthält undselbst in einem Repeat-While-Prozess beteiligt ist. Diese Kantenüberschneidungensind allerdings durch das benutzte Visualisierungsverkzeug dot verursacht und tref-fen keine Aussage über die Planarität des visualisierten Graphen. Trotzdem werdenKantenüberschneidungen als ein Störfaktor angesehen, denn dadurch wird die Les-barkeitsqualität der Visualisierung vermindert.

Durch das Einfügen von einem Endpunkt wird das Problem gelöst, indem die auf-gesplitteten Kontrollflüsse der zusammengesetzten Split-Join- bzw. Choice-Prozessezunächst durch den Endpunkt zusammengeführt werden, bevor der Kontrollfluss wei-terlaufen kann.

3.4.2 Visualisierung von Any-Order-Prozess

Das Kontrollkonstrukt Any-Order erlaubt die Definition zusammengesetzter Prozesse,deren Teilprozesse in einer nicht spezifizierten Reihenfolge ausgeführt werden. Die Pro-blematik der Visualisierung der Any-Order Prozesse besteht in der nichtdeterminis-tischen Natur des Kontrollkonstruktes Any-Order. Um die Semantik von Any-Order-Prozessen möglichst präzise wiederzugeben, müssen bei n im Any-Order-Prozess be-teiligten Prozessen n! viele Knoten dargestellt werden. Die Abbildung 3.19 visualisiertso ein Prozess. Die Anzahl der Knoten steigt überexponential in Abhängigkeit vonder Anzahl der beteiligten Prozesse und wird nach der Formel 3.27 berechnet. Dabeiist Anzn als die Anzahl der Knoten im Graphen definiert, der ein Any-Order-Prozessmit n beteiligten atomaren oder einfachen Prozessen visualisiert.

Anzn =n∑

j=1

n∏i=j

i (3.27)

Für den konkreten Any-Order-Prozess mit vier beteiligten atomaren Prozessenwerden somit 64 Knoten benötigt (Formel 3.28).

Anz4 =4∑

j=1

4∏i=j

i = 4 · 3 · 2 · 1 + 4 · 3 · 2 + 4 · 3 + 4 = 64 (3.28)

Als eine alternative Darstellungsmöglichkeit eines Any-Order-Prozesses wurde eineClusterung von den im Any-Order-Prozess beteiligten Prozessen in Betracht gezogen(Abbildung 3.20). Eine solche Visualisierungsmöglichkeit bietet zwar mehr Übersicht,

Page 58: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

52 3. Theoretische Auseinandersetzung

Repeat-While-Bedingung

false

Prozess_01

true

Prozess_02

true

Abbildung 3.15: SplitAndJoin-Prozessinnerhalb eines RepeatWhile-Prozessesohne Start- und Endpunkt

Repeat-While-Bedingung

false

Prozess_01

true

Prozess_02

true

Abbildung 3.16: Choice-Prozess inner-halb eines RepeatWhile-Prozesses ohneStart- und Endpunkt

Repeat-While-Bedingung

false

Prozess_01

true

Prozess_02

true

Prozess_03

true

Abbildung 3.17: SplitAndJoin-Prozessinnerhalb eines RepeatWhile-Prozessesohne Start- und Endpunkt mit verletzterPlanarität

Repeat-While-Bedingung

false

Prozess_01

true

Prozess_02

true

Prozess_03

true

Abbildung 3.18: Choice-Prozess inner-halb eines RepeatWhile-Prozesses ohneStart- und Endpunkt mit verletzter Pla-narität

Page 59: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

3.4 Probleme 53

Process1 Process2 Process3 Process4

Process11 Process12 Process13 Process21 Process22 Process23 Process31 Process32 Process33 Process41 Process42 Process43

Process111 Process112 Process121 Process122 Process131 Process132 Process211 Process212 Process221 Process222 Process231 Process232 Process311 Process312 Process321 Process322 Process331 Process332 Process411 Process412 Process421 Process422 Process431 Process432

Process1111 Process1121 Process1211 Process1221 Process1311 Process1321 Process2111 Process2121 Process2211 Process2221 Process2311 Process2321 Process3111 Process3121 Process3211 Process3221 Process3311 Process3321 Process4111 Process4121 Process4211 Process4221 Process4311 Process4321

Abbildung 3.19: Mögliche Visualisierung eines Any-Order-Prozess mit vier beteiligtenatomaren Prozessen und kombinatorisch vielen Knoten

Page 60: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

54 3. Theoretische Auseinandersetzung

hat aber auch Nachteile, die teilweise durch die Sprache dot bedingt sind, mit de-ren Hilfe die Visualisierung erfolgt. So kann eine Kante nicht auf einen beliebigenPunkt des Clusters zeigen, sondern er muss durch eine Richtung definiert werden. DieRichtung der Kante ihrerseits wird durch die Position eines im Cluster befindlichenKnoten definiert. Somit wird der Schein erweckt, dass der Prozess, in dessen Richtungdie Kante aus dem Anfangspunkt zeigt, als erster gestartet wird.

Process1Process2Process3Process4

Abbildung 3.20: Mögliche Visualisierung eines Any-Order-Prozess mit vier beteiligtenatomaren Prozessen

Das erarbeitete Visualisierungskonzept benutzt eine Darstellunsgmöglichkeit vonAny-Order-Prozessen, die zwar das gleiche Problem hat, versucht aber weitere Proble-me zu lösen (Abbildung 3.21). Da die Algorithmen von dot die Knoten und Kanten soplatzieren, dass der Kontrollfluss vertikal von oben nach unten verläuft, erweist sichjeder Cluster oder jeder zusammengesetzte Prozess, bei dem die beteiligten Prozes-se horizontal platziert sind, als eine viel größere Behinderung als zusammengesetzteProzesse mit vertikaler Ausrichtung der beteiligten Prozesse. Somit wird die Lösung,die beispielhaft durch die Abbildung 3.21 gezeigt wird, als eine in dieser Situationoptimale Lösung angesehen und wird im Visualisierungskonzept verwendet. Wegender sequenziellen Natur der Any-Order Prozesse wird ihr Kontrollfluss wie bei einemSequence Prozess vertikal von oben nach unten dargestellt.

Prozess1

Prozess2

Prozess3

Abbildung 3.21: Die gewählte Visualisierungsmöglichkeit eines Any-Order-Prozess mitvier beteiligten atomaren Prozessen

Page 61: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Kapitel 4

Praktische Umsetzung

Im Rahmen der Arbeit wurde eine Java-Bibliothek entwickelt, die das erarbeiteteKonzept zur Visualisierung von OWL-S-Prozessmodellen praktisch umsetzt. In die-sem Kapitel wird sowohl der Abarbeitungsablauf der Software gezeigt als auch werdendie entwickelten Java-Klassen durch ein Klassendiagramm dargestellt. Darüber hin-aus werden die wichtigsten Klassen und Methoden der entwickelten Java-Bibliotheknäher beschrieben. Da bei der praktischen Umsetzung fremde Java-Bibliotheken be-nutzt wurden, wird deren Wahl begründet. Die entwickelte Java-Bibliothek wurde imAnschluss an ihre Entwicklung getestet. Die dabei angewandten Testverfahren undderen Ergebnisse werden am Ende des Kapitels vorgestellt.

4.1 Anforderungen an die SoftwareMit der Java-Bibliothek OWL-S-Prozessmodellvisualisierung (OPV) ist es möglich,die Beschreibungen der Prozesse in Web Services, die in OWL-S vorliegen, zu visua-lisieren. Die im Rahmen der Arbeit zu entwickelnde Software erfüllt die folgendenKriterien.

4.1.1 Musskriterien

Die Fähigkeit der Software, jede beliebige OWL-S-Prozessbeschreibung zu visualisie-ren gilt als Hauptkriterium.

Darüber hinaus kann die zu entwickelnde Java-Bibliothek über das Web, zumBeispiel mit Hilfe von JSP und Java Servlets Technologie, benutzt werden.

4.1.2 Wunschkriterien

Für die Teilnehmer diverser Projekte, die diese Software benutzen möchten, wirdfolgende Funktionalität gebraucht. Es soll ermöglicht werden, einen bestimmten ato-maren Prozess kennzeichnen zu könnten, damit er bei der nächsten Visualisierungmarkiert erscheint.

Page 62: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

56 4. Praktische Umsetzung

Es wäre auch wünschenswert, die absolute Position der grafischen Elemente, die dieProzesse darstellen, nach einer Visualisierung bestimmen oder vor einer Visualisierungselbst definieren zu können.

Es soll versucht werden, die Java-Bibliothek möglichst so zu entwickeln, dass sieauch für Visualisierung anderer (nicht nur OWL-S) Prozessbeschreibungen verwendetwerden könnte.

4.1.3 Produkteinsatz

Die Klassen der zu entwickelnden Java-Bibliothek sollen von Studenten und Entwick-lern benutzt werden, die weitere Werkzeuge für das Semantic Web im Rahmen desProjekts DESWAP 1 entwickeln werden. Die Benutzung der Java-Bibliothek ist sowohldirekt durch Java-Anwendungen als auch indirekt über das Web-Interface vorgesehen.

4.1.4 Produktübersicht

Die Abbildung 4.1 zeigt eine Produktübersicht. Der Anwender kann die entwickel-te Java-Bibliothek sowohl über das Web-Interface als auch über selbst entwickelteSchnittstellen benutzen.

4.1.5 Produktfunktionen

Um die Funktionalität und Arbeitsablauf der zu entwickelnden Software zu beschrei-ben, werden in diesem Abschnitt die im Rahmen der Definitionsphase der Software-entwicklung beschriebenen Geschäftsprozesse benutzt. An dieser Stelle folgt eine in-formale Geschäftsprozessbeschreibung. Eine Geschäftsprozessbeschreibung mit Hilfevon Schablonen sowie Geschäftsprozessdiagramm nach Balzert [4] befindet sich imAnhang B.

Der Geschäftsprozess „Visualisieren der Prozessbeschreibung“ gilt als der Basis-Geschäftsprozess der Software. Als Ziel dieses Prozesses gilt eine Visualisierung dereingegebenen OWL-S-Prozessbeschreibung, die auf einer Webseite angezeigt werdenkann. Obwohl die Software als eine Bibliothek nicht direkt durch den Anwender, son-dern durch eine andere Anwendung angesprochen wird, gilt der Anwender selbst alsAkteur, da er selbst alle Aktionen auslöst. Der Basis-Geschäftsprozess wird durch-geführt, nachdem die OWL-Datei mit einer OWL-S-Prozessbeschreibung eingegebenund der „Visualisieren“-Button betätigt wird, wobei die OWL-S-Prozessbeschreibungvalide sein muss. Als Nachbedingung wird die Visualisierung der Prozessbeschreibungals Grafikdatei auf dem Server zum Herunterladen bereitgestellt. Der Geschäftspro-zess „Markieren eines atomaren Prozesses“ steht mit dem Basis-Geschäftsprozess ineiner extend -Beziehung nach UML-Notation. Ziel dieses Prozesses ist, dem Anwenderdas Kennzeichnen eines bestimmten atomaren Prozesses zu ermöglichen, so dass er bei

1DESWAP, http://www.deswap.org

Page 63: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4.1 Anforderungen an die Software 57

����

���������� ��

��������

�������������� �� �����������������

������������� ������������

���������������������������������

������������ �����!" ������#���������

�����������$�%������#�$�����������

�����������������

�����������

�����&��" ������������������#�����������������������$�$���

������ ���������������%" ���������#�������������������� ���

������#��

������������������#������������������� ������� ������������

��$���'������������%" ���������������������������� ��������

��%" ���������(�����������$$���������������� �������#���

Abbildung 4.1: Produktübersicht

Page 64: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

58 4. Praktische Umsetzung

dem nächsten Visualisierungsschritt markiert wird. Es kann vom Basis-Geschäftspro-zess in den Prozess „Markieren eines atomaren Prozesses“ verzweigt werden, fallsnach einem Visualisierungsschritt ein atomarer Prozess gekennzeichnet werden soll.In diesem Fall wird das Vorhandensein der internen Darstellung der OWL-S Pro-zessbeschreibung vorausgesetzt. Der Geschäftsprozess zum Markieren eines atomarenProzesses enthält folgende Aktion: die Eingabe des zu markierenden Prozesses durchden Nutzer. Der zu markierende Prozess wird in der internen Darstellung gekenn-zeichnet und schließlich kann es in den Basis-Geschäftsprozess zurückgekehrt werden.

Nach dem Zurückkehren zum Basis-Geschäftsprozess „Visualisieren der Prozessbe-schreibung“ wird durch das Betätigen des „Visualisieren“-Buttons eine Visualisierungder gegebenen OWL-S-Prozessbeschreibung mit einem markierten atomaren Prozesserzeugt.

4.1.6 Benutzeroberfläche

Durch das HTML-Element <input type="file"/> wird die Eingabe der OWL-S-Dateiermöglicht. Die Visualisierung der Prozessbeschreibung (die Grafikdatei) soll nachdem Betätigen des „Visualisieren“-Buttons erzeugt werden. Die Grafik soll dann aufder weitergeleiteten Seite erscheinen.

4.2 Benutzte Java-BibliothekenBei der praktischen Umsetzung wurde eine Java-Bibliothek zum Parsen von OWL-S-Prozessbeschreibungen benutzt. Mit deren Hilfe ist es möglich, ohne großen Aufwandauf die in der Prozessbeschreibung vorliegenden Eigenschaften der Prozesse zuzu-greifen. Es wurde weiterhin ein Werkzeug zum Erzeugen und Ausgeben von Graphenbenutzt, das mit Hilfe einer mitgelieferten Java-API angesteuert wird. Die Gründe fürdie Verwendung dieses Werkzeuges sind die wesentliche Vereinfachung der grafischenErzeugung von Kanten und Knoten und die Lösung des Problems der Platzierungder Knoten und Kanten. Im folgenden werden die untersuchten und die verwendetenBibliotheken vorgestellt.

4.2.1 OWL-S-Parser

Um den Zugriff auf die OWL-S-Objekte wie die Namen, die Art der Prozesse und Kon-trollkonstrukte zu erleichtern wurde eine fremde Java-Bibliothek benutzt. Es wurdenzwei Java-Bibliotheken untersucht, die sowohl das Lesen und Parsen von OWL-S-Prozessbeschreibungen als auch den Zugriff auf die Elemente einerOWL-S-Prozessbeschreibung vereinfachen. Die erste untersuchte Bibliothek CMUOWL-S API 2 ist frei und wurde an der Carnegie Mellon University entwickelt. Nebender API-Dokumentation gibt es zwar keine weitere Dokumentation, die Benutzung

2CMU OWL-S API, http://www.daml.ri.cmu.edu/owlsapi/

Page 65: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4.2 Benutzte Java-Bibliotheken 59

des API ist aber intuitiv. Derzeit unterstützt diese Bibliothek jedoch nicht alle inder OWL-S-Spezifikation definierten Kontrollkonstrukte. Die Unterstützung der Kon-trollkonstrukte Repeat-While und Repeat-Until fehlt noch. Aus diesem Grunde wurdeeine andere Bibliothek gewählt. Die im praktischen Teil der Arbeit benutzte Java-Bibliothek ist Mindswap OWL-S API 3. Sie wurde im Rahmen des ProjektesMarylandInformation and Network Dynamics Lab Semantic Web Agents Project von Evren Si-rin in Zusammenarbeit mit Fujitsu Labs of America, College Park entwickelt. DieBibliothek erlaubt einen Zugriff auf die Beschreibungen der zyklischen Prozesse desTyps Repeat-While und Repeat-Until. Mit Hilfe von Mindswap OWL-S API ist esweiterhin möglich, das Ausführen von Web Services zu simulieren. Alle Datenstruk-turen der API wurden sehr nah an den Definitionen der OWL-S-Ontologie definiert,damit die Benutzung möglichst intuitiv erfolgt. Beispielsweise ist die Semantik solcherKlassen wie Service, CompositeProcess, Profile, Grounding oder Methoden wie Ser-vice.setProfile(aProfile) oder Service.setGrounding(aGrounding) klar, wenn man mitder OWL-S-Spezifikation vertraut ist.

4.2.2 Visualisierung von Graphen

Vor der Entscheidung, eine bestimmte Java-Bibliothek zur Unterstützung der Visua-lisierung zu verwenden, wurden zwei Ansätze getestet.

JGraph 4 ist eine Java-Bibliothek zum Visualisieren von Prozessdiagrammen, Ar-beitsabläufen und UML-Diagrammen. Beispielsweise können Objekte und Beziehun-gen in einer Swing-GUI angezeigt werden, die frei zoombar ist.

Darüber hinaus wird eine andere Java-Bibliothek jgraphT benötigt, um eine Aus-gabe in Form einer Grafikdatei zu erhalten. Die Standardform der Ausgabe einerGrafik unter jgraph ist ein Java-Applet.

GraphViz 5 ist eine Open-Source-Software zum Visualisieren von Graphen. Gra-phVIZ bietet auch eine Java-Schnittstelle, um beliebige Graphen bequem mit Hilfeder von GraphVIZ angebotenen Java-API zu erzeugen.

Die Platzierungskoordinaten und die Form der Kanten können unter jgraph manu-ell definiert werden. Es kann unter anderem definiert werden, an welcher Seite (Port)eine Kante mit einem Knoten verbunden werden soll. Für komplexe Graphen, die bei-spielsweise Zyklen enthalten, müssen auf diese Weise die Platzierungen der Kantendefiniert werden. Die Kanten in einer Kurvenform müssen als Bezierkurven definiertwerden. Dabei erwartet die Definition einer Bezierkurve Koordinaten mindestens zwei-er Punkte, die diese Kurve eindeutig definieren. Diese Möglichkeiten erlauben zwarflexiblere Handhabung von Kanten, das Erzeugen der Darstellung eines Graphen wirdaber sehr komplex, sobald mehrere zusammengesetzte Prozesse dargestellt werden sol-len. Da nach OWL-S-Spezifikation auch zusammengesetzte Prozesse möglich sind, die

3Mindswap OWL-S API, http://www.mindswap.org/2004/owl-s/api/4JGraph, http://www.jgraph.com/5GraphViz, http://www.graphviz.org/

Page 66: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

60 4. Praktische Umsetzung

andere zusammengesetzte Prozesse enthalten und die Tiefe des somit gebildeten Pro-zessbaumes nicht begrenzt ist, ist es nicht trivial, das Platzierungsproblem für Kantenzu lösen.

Das unter GraphVIZ benutzte Werkzeug dot enthält die Platzierungsalgorithmenund erzeugt eine Grafikdatei mit der grafischen Darstellung eines Graphen. dot liegtin Maschinencode vor. Wenn aber die Java-Bibliotheken jgraph und jgraphT benutztwerden sollen, muss der Bytecode, der aus dem Code zum Erzeugen und Ausgebendes Graphen erzeugt wurde, von der Java Virtual Machine ausgeführt werden. Ab-arbeiten von Maschinencode durch den Prozessor ist im Allgemeinen performanterals das Abarbeiten von Bytecode durch eine virtual Maschine. Hier spielen natürlichviele Faktoren eine Rolle: Ähnlichkeit der auszuführenden Aufgaben, der benutztenAlgorithmen, Ähnlichkeit der Eigenschaften des Prozessors und der Virtual Machine.

Zum Performacevergleich der Erzeugung von Visualisierungen mit hilfe von Gra-phViz und jgraph wurde ein Test durchgeführt. Mit beiden Werkzeugen wurden Vi-sualisierungen einer Sequenz mit zehn Prozessen erstellt und die Ausführungszeitgemessen. Die Ergebnisse werden in der Tabelle 4.1 vorgestellt.

Die Wahl ist aus Gründen der höheren Performanz, des in dot bereits implemen-tierten Platzierungsalgorithmus und der Benutzerfreundlichkeit auf GraphViz gefal-len. Der ausschlaggebende Grund ist aber der in dot implementierte Platzierungsal-gorithmus.

Ansatz Abarbeitungszeit in ms (10 Messungen)Messung 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.GraphVIZ 266 94 172 94 281 170 172 93 172 219jgraph & jgraphT 532 546 875 531 532 556 547 531 828 547

Tabelle 4.1: Vergleich der Performance von GraphVIZ und jgraph & jgraphT anhandder Abarbeitungszeit

4.3 SoftwaremodellDie Abbildung 4.1 zeigt eine grobe Übersicht der entwickelten Software. Dabei istwesentlich, dass der Anwender die Software als eine Bibliothek mit Hilfe einer Web-anwendung nutzen kann. Die dazu benötigte Schnittstelle wird ebenfalls im Rahmender vorliegenden Arbeit entwickelt.

4.3.1 Abarbeitungsablauf

In der Abbildung 4.2 ist eine allgemeine (grobe) Beschreibung des Abarbeitungsab-laufs der Software in Form eines Aktivitätdiagrammes dargestellt. Die Abarbeitungbeginnt mit dem Parsen der OWL-Datei, welche die OWL-S-Prozessmodellbeschreibungenthält. Aus den geparsten Daten wird die Liste aller Prozesse ausgelesen. Aus jedem

Page 67: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4.3 Softwaremodell 61

zusammengesetzten Prozess wird ein Graph gebildet und schließlich werden dieseGraphen visualisiert.

4.3.2 Analyse der Anforderungen an die Software

Vor der praktischen Umsetzung der Darstellung eines OWL-S-Prozessmodells in Formeines Graphen erfolgte eine theoretische Untersuchung der Abbildung eines beliebigenOWL-S-Prozessmodels auf einen Graphen. Diese Abbildung ist möglich und wird imKapitel 3 beschrieben.

Die angeforderte Funktionalität, einen atomaren oder einfachen Prozess markie-ren zu können wurde folgendermassen umgesetzt. Um einen Prozess zu markieren, sollzunächst die interne Darstellung des OWL-S-Prozessmodells in Form eines Graphenerzeugt werden. Im zweiten Schritt kann aus der internen Darstellung eine Visualisie-rung des OWL-S-Prozessmodells entweder ohne oder mit einem markierten Prozesserzeugt werden. Für die Markierung eines Prozesses erwartet die Software den lokalenTeil der URI dieses Prozesses.

Für die erwünschte Funktionalität, mit deren Hilfe ein atomarer Prozess markiertwerden kann, wird die Möglichkeit verlangt, die interne Darstellung der Prozessbe-schreibung mehrmals zu verwenden. Darüber hinaus wird die Anwendung ist wesent-lich performanter, falls nach dem ersten Erzeugen interner Darstellung der OWL-S-Prozesse diese interne Darstellung universell für alle Varianten der Visualisierungverwendbar bleibt.

Eine weitere Anforderung an die Software, für jeden atomaren oder einfachen Pro-zess seine Koordinaten bestimmen zu können, ist durch das dot-Werkzeug der Graph-Viz Software umgesetzt. Beim Erzeugen einer grafischen Darstellung eines Graphenkann von dot eine Textdatei mit Koordinaten aller in der Grafik enthaltenen Objekteerzeugt werden.

4.3.3 Klassendiagramm

Die entwickelte Bibliothek OWL-S-Prozessmodell Visualisierung (OPV) besteht ausvier Klassen. Die Klasse OPV_main ist dabei die Nutzerschnittstelle, die alle fürdie Visualisierung benötigten Methoden enthält. Die Methode init parst das OWL-S-Prozessmodell. Alle Objekte (Individuals) des Prozessmodells befinden sich danachin der Klassenvariable OWLIndividualList IndList. Als nächstes wird durch die Me-thode makeGraph die interne Darstellung des OWL-S-Prozessmodells in Form einesGraphen erzeugt. Der Graph wird so erzeugt, dass jeder Prozess P durch einen KnotenKP definiert wird. Dabei werden die in einem zusammengesetzten Prozess P beteiligteProzesse als Kindknoten des Knoten KP definiert. Im letzten Schritt wird die internerzeugte Darstellung des OWL-S-Prozessmodells visualisiert. Dazu kann einerseits dieMethode drawGraph benutzt werden. Sie visualisiert alle zusammengesetzte Prozesse.Andererseits kann die Methode drawCompositeProcess benutzt werden, wenn ein be-stimmter zusammengesetzter Prozess visualisiert werden soll. Um einen bestimmten

Page 68: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

62 4. Praktische Umsetzung

Abbildung 4.2: Abarbeitungsablauf

Page 69: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4.4 Test 63

zusammengesetzten Prozess mit einem markierten atomaren oder einfachen Prozesszu visualisieren, wird die Methode drawCompositeProcessMarked benutzt.

Die Klassen ProcessTreeVertex, ProcessTree und OPVGraphVIZ werden von derBibliothek intern benutzt. Die Objektklasse ProcessTreeVertex beschreibt einen Pro-zess. Die Instanzen dieser Klasse werden dafür gebraucht, um eine interne Darstellungin Form eines Graphen zu erzeugen. Die Erzeugung dieses Graphen wird in der Klas-se ProcessTree implementiert. Die Visualisierung dieses Graphen wird innerhalb derKlasse OPVGraphVIZ erzeugt.

4.4 TestDie entwickelte Software wurde auf einem Rechner mit AMD Sempron Prozessor undBetriebssystemWindows XP getestet. Die Java-Version ist 1.6.0, Apache Tomcat wur-de in der Version 5.5.23 verwendet. Es wurden einerseits die OWL-S-Prozessmodellbe-schreibungen als Testinstanzen verwendet, die von Entwicklern der OWL-S-Spracheerstellt wurden 6. Andererseits wurden eigene Beispiele für OWL-Prozessmodelle er-stellt und als Testinstanzen benutzt, da die existierende Beispiele nicht alle Kontroll-konstrukte benutzen. Um die entwickelte Software möglichst vollständig zu Testen,wurden zwei Klassen von Testinstanzen Art erzeugt.

Um den rekursiven Algorithmus der Visualisierung zu Testen wurden Testinstan-zen erzeugt, bei denen alle möglichen Verschachtelungskombinationen eines zusam-mengesetzten Prozesses innerhalb eines anderen zusammengesetzten Prozesses vor-kommen. Es wurde dabei die Kontrollkonstrukte eines Prozesses und eines in diesemProzess beteiligten Prozesses kombiniert. Die Kontrollkonstrukte anderer beteiligtenProzesse wurden dabei festgehalten. Wegen 8 möglichen Kontrollkonstrukte ergabensich auf diese Weise 64 Testinstanzen. Alle 64 Prozesse haben die Tiefe 3. Dabei befin-den sich die Prozesse, bei denen die Kontrollkonstrukte kombiniert werden, der Tiefe2 bzw. 3. Testen von Verschachtelungen, bei denen sich die Kombinationen der Kon-trollkonstrukte über mehrere Tiefenebenen erstrecken, bringt keine neue Erkenntnisüber die Richtigkeit deren Visualisierung, da die Visualisierung jeder Verschachte-lung rekursiv implementiert ist. Darüber hinaus würde eine weitere Verschachtelungmindestens 512 Testinstanzen ergeben, wenn jede Mögliche Verschachtelung getestetwerden sollte.

Andererseits ist es interesant zu testen, wie Prozesse mit einer größeren Verschach-telungstiefe visualisiert werden. Das Ziel eines solchen Test ist, zu sehen, wie gut dieAnforderung an das Visualisierungskonzept, nämlich eine möglichst intuitive Interpre-tierbarkeit der Visualisierung, auch bei Prozessen mit tiefer Verschachtelung erhaltenbleibt. Für diese Klasse von Tests wurden 3 Testinstanzen der Tiefe 7 erzeugt (derOberprozess ist in der Tiefe 0). Die Kontrollkonstrukte jeder Tiefe sind paarweiseverschieden. Die auf diese Weise entstehende Permutationen der Kontrollkonstruk-te wurden so gewählt, dass sich die Prozesse, in denen eine Bedingung vorkommt

6OWL-S Beispiele, http://www.daml.org/services/owl-s/1.1/examples.html

Page 70: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

64 4. Praktische Umsetzung

Abbildung 4.3: Klassendiagramm

Page 71: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

4.4 Test 65

(If-Then-Else-, Repeat-Until-, Repeat-While-Prozesse), in den benachbarten Tiefenbefinden. Mit einer solchen Instanz kann gleichzeitig getestet werden, wie gut eineeindeutige Erkennung solcher Prozesse gelingt.

Die beim Test des entwickelten rekursiven Algorithmus wurden Visualisierungenerzeugt, die den Visualisierungen von Verschachtelungen entsprachen, welche ohne dieentwickelte Software direkt mit Hilfe von GraphViz erzeugt und im Anhang ?? gezeigtwurden. Darüber hinaus zeigten die Visualisierungen von Prozessen mit einer tiefe-ren Verschachtelung, dass die Interpretierbarkeit solcher Visualisierungen nicht bean-trächtigt wird. Es wird allerdings vermutet, dass die Qualität der Visualisierung sehrumfangreicher Prozesse darunter leiden wird, dass das Benutzte Grafikformat PNGein Bitmap-Format ist. In diesem Fall können die Prozesse mit Hilfe einer PostScript-Grafik visualisiert werden. Diese Möglichkeit wurde ebenfalls erfolgreich getestet. Mitden oben genannten Ergebnissen gilt der durchgeführte Test als erfolgreich.

Page 72: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Kapitel 5

Zusammenfassung und Ausblick

In dieser Arbeit wurde ein Konzept zur Visualisierung von Prozessmodellen entwi-ckelt, die in Form einer formalen Beschreibung in Sprache OWL-S vorliegen. Dazuwurden zunächst alle Begriffe und Technologien eingeführt, die in der Arbeit verwen-det wurden. Insbesondere wurde die Sprache zur Beschreibung von semantischen WebServices OWL-S vorgestellt.

Nachdem eine existierende Lösung zum Erzeugen von OWL-S-Prozessmodellenund derer Visualisierungen vorgestellt wurde und die in Betracht kommende Konzep-te UML und Petri-Netze diskutiert und verglichen wurden, folgten Überlegungen füreine eigene Entwicklung eines Visualisirungkonzeptes von OWL-S-Prozessmodellen.Es wurde zunächst gezeigt, welche OWL-S-Elemente für die Visualisierung benötigtwerden und wie sie auf die grafischen Elemente abgebildet werden. Die Abbildung derMenge aller möglichen OWL-S-Prozessmodelle in die Menge aller grafischen Darstel-lungen dieser Modelle wurde ebenfalls formal beschrieben.

Schließlich wurden die Anforderungen an die Software vorgestellt und die Soft-ware beschrieben, die im Rahmen der Arbeit entwickelt wurde und das entwickelteVisualisierungskonzept praktisch umsetzt. Als eine mögliche Weiterentwicklung derSoftware wird die Visualisierung der Datenflüsse vorgeschlagen. Dabei könnten diein OWL-S beschriebenen Dateneingänge und Datenausgänge als rechteckige Knotendargestellt werden. Die rechteckige Form wird nur aus dem Grund gewählt, um dieseKnotentypen von den anderen Knotentypen zu unterscheiden, die als Ellipsen undRhomben dargestellt werden.

Eine weitere Empfehlung zur Weiterentwicklung ist eine Integration eines Parsersfür Semantic Web Rule Language (SWRL) in das Visualisierungsverzeug. Mit Hilfevon SWRL können in OWL-S-Prozessmodellen die Bedingungen der If-Then-Else-, derRepeat-Until- und der Repeat-While definiert werden. Zur Zeit der Entwicklung derBibliothek zur Visualisierung von OWL-S-Prozessmodellen wurde noch kein SWRL-Parser innerhalb der OWL-S-API integriert, es ist aber eine Integration beabsichtigt.

Page 73: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Anhang A

Pseudocode der Implementierung

Während im Abschnitt 3.3 eine mengenbasierte Beschreibung des entwickelten Vi-sualisierungskonzeptes vorgestellt wird, wird in diesem Kapitel die praktische Umset-zung des Visualisierungskonzeptes algorithmisch beschrieben. Für die Beschreibungwird Pseudocode verwendet. Diese Beschreibung ist vereinfacht, da sie die interneGraphendarstellung nicht abbildet. Die in diesem Kapitel vorgestellte Beschreibungzeigt, welche OWL-S-Prozessmodellelemente für die Visualisierung benutzt werdenund auf welche grafische Elemente sie abgebildet werden. Die Funktion visualize() istdie Hauptfunktion.

FUNCTION visualize()BEGINSei compositeProcesses die Menge aller zusammengesetztenProzesse des OWL-S-Prozessmodells;FOR ALL comProcess IN compositeProcesses DO

Sei ControlConstruct das Kontrollkonstrukt desProzesses comProcess;CALL controlConstructTest(comProcess, ControlConstruct)

END FOREND

Page 74: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

68 A. Pseudocode der Implementierung

FUNCTION controlConstructTest(p, ControlConstruct)BEGINIF ControlConstruct = "Sequence"CALL visualizeSequence(p)

ELSE IF ControlConstruct = "Split"CALL visualizeSplit(p)

ELSE IF ControlConstruct = "Split-Join"CALL visualizeSplitJoin(p)

ELSE IF ControlConstruct = "Any-Order"CALL visualizeAnyOrder(p)

ELSE IF ControlConstruct = "Choice"CALL visualizeChoice(p)

ELSE IF ControlConstruct = "If-Then-Else"CALL visualizeIfThenElse(p)

ELSE IF ControlConstruct = "Repeat-Until"CALL visualizeRepeatUntil(p)

ELSE IF ControlConstruct = "Repeat-While"CALL visualizeRepeatWhile(p)

ELSEEND IF

END

Page 75: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

69

FUNCTION visualizeRepeatUntil(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei repeat_untilProcess der im currentProcess beteiligte Prozess;Sei condition die im currentProcess definierte Bedingung;Visualisiere condition;Visualisiere repeat_whileProcess;

IF repeat_untilProcess ein zusammengesetzter Prozess istZeichne einen Pfeil der den Startpunkt von currentProcess mitdem Startpunkt von repeat_whileProcess verbindet;Zeichne einen Pfeil der den Endpunkt von repeat_untilProcess mitder condition verbindet;Zeichne einen Pfeil mit Beschriftung "true", der die condition voncurrentProcess mit dem Startpunkt von repeat_untilProcess verbindet;

ELSEZeichne einen Pfeil der den Startpunkt von currentProcess mitdem Knoten von repeat_whileProcess verbindet;Zeichne einen Pfeil, der den Knoten von repeat_untilProcessmit der condition von currentProcess verbindet;Zeichne einen Pfeil mit Beschriftung "true", der die conditionvon currentProcess mit dem Knoten von repeat_untilProcess verbindet;

END IFZeichne einen Pfeil mit Beschriftung "false", der die conditionvon currentProcess mit dem Endpunkt von currentProcess verbindet;

END

Page 76: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

70 A. Pseudocode der Implementierung

FUNCTION visualizeSequence(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei subProcesses die Menge der Prozesse,aus denen currentProcess komponiert ist;Seien subProcess[1] der erste undsubProcess[n] der letzte beteiligte Prozess;

Visualisiere subProcess[1];IF subProcess[1] ein zusammengesetzter Prozess istZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Startpunkt von subProcess[1] verbindet;

ELSEZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Knoten von subProcess[1] verbindet;

END IF

FOR (i := 2; i <= n; i++) DOVisualisiere subProcess[i];IF subProcess[i-1] ein zusammengesetzter Prozess istIF subProcess[i] ein zusammengesetzter Prozess istZeichne einen Pfeil der den Endpunkt von subProcess[i-1]mit dem Startpunkt von subProcess[i] verbindet;

ELSEZeichne einen Pfeil der den Endpunkt von subProcess[i-1]mit dem Knoten von subProcess[i] verbindet;

END IFELSEIF subProcess[i] ein zusammengesetzter Prozess istZeichne einen Pfeil der den Knoten von subProcess[i-1]mit dem Startpunkt von subProcess[i] verbindet;

ELSEZeichne einen Pfeil der den Knoten von subProcess[i-1]mit dem Knoten von subProcess[i] verbindet;

END IFEND IF

END FOR

IF subProcess[n] ein zusammengesetzter Prozess istZeichne einen Pfeil der den Endpunkt von subProcess[n]mit dem Endpunkt von currentProcess verbindet;

ELSEZeichne einen Pfeil der den Knoten von subProcess[n]mit dem Endpunkt von currentProcess verbindet;

END IFEND

Page 77: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

71

FUNCTION visualizeSplit(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei subProcesses die Menge der Prozesse,aus denen currentProcess komponiert ist;FOR ALL subProcess IN subProcesses DOVisualisiere subProcess;IF subProcess ein zusammengesetzter Prozess istZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Startpunkt von subProcess verbindet;

ELSEZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Knoten von subProcess verbindet;

END IFEND FOR

Zeichne einen Pfeil der den Startpunkt von currentProcessmit dem Endpunkt von currentProcess verbindet;END

FUNCTION visualizeSplitAndJoin(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei subProcesses die Menge der Prozesse,aus denen currentProcess komponiert ist;FOR ALL subProcess IN subProcesses DOVisualisiere subProcess;IF subProcess ein zusammengesetzter Prozess istZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Startpunkt von subProcess verbindet;Zeichne einen Pfeil der den Endpunkt von subProcess mit demEndpunkt von currentProcess verbindet;

ELSEZeichne einen Pfeil der den Startpunkt von currentProcessmit dem Knoten von subProcess verbindet;Zeichne einen Pfeil der den Knoten von subProcess mit demEndpunkt von currentProcess verbindet;

END IFEND FOR

END

Page 78: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

72 A. Pseudocode der Implementierung

FUNCTION visualizeAnyOrder(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei subProcesses die Menge der Prozesse,aus denen currentProcess komponiert ist;Seien subProcess[1] der erste undsubProcess[n] der letzte beteiligte Prozess;

Visualisiere subProcess[1];IF subProcess[1] ein zusammengesetzter Prozess istZeichne einen kopflosen Pfeil der den Startpunkt von currentProcessmit dem Startpunkt von subProcess[1] verbindet;

ELSEZeichne einen kopflosen Pfeil der den Startpunkt von currentProcessmit dem Knoten von subProcess[1] verbindet;

END IF

FOR (i := 2; i <= n; i++) DOVisualisiere subProcess[i];IF subProcess[i-1] ein zusammengesetzter Prozess istIF subProcess[i] ein zusammengesetzter Prozess istZeichne einen kopflosen Pfeil der den Endpunkt von subProcess[i-1]mit dem Startpunkt von subProcess[i] verbindet;

ELSEZeichne einen kopflosen Pfeil der den Endpunkt von subProcess[i-1]mit dem Knoten von subProcess[i] verbindet;

END IFELSEIF subProcess[i] ein zusammengesetzter Prozess istZeichne einen kopflosen Pfeil der den Knoten von subProcess[i-1]mit dem Startpunkt von subProcess[i] verbindet;

ELSEZeichne einen kopflosen Pfeil der den Knoten von subProcess[i-1]mit dem Knoten von subProcess[i] verbindet;

END IFEND IF

END FOR

IF subProcess[n] ein zusammengesetzter Prozess istZeichne einen kopflosen Pfeil der den Endpunkt von subProcess[n]mit dem Endpunkt von currentProcess verbindet;

ELSEZeichne einen kopflosen Pfeil der den Knoten von subProcess[n]mit dem Endpunkt von currentProcess verbindet;

END IFEND

Page 79: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

73

FUNCTION visualizeIfThenElse(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei thenProcess der Prozess, welcher beim Erfüllen der Bedingung descurrentProcess ausgeführt wird;Sei elseProcess der analog definierte Prozess im ELSE-Fall der Bedingung;Sei condition die im currentProcess definierte Bedingung;Visualisiere condition;Zeichne einen Pfeil der den Startpunkt von currentProcessmit condition verbindet;Visualisiere thenProcess und elseProcess;

IF thenProcess ein zusammengesetzter Prozess istZeichne einen Pfeil, der die condition von currentProcessmit dem Startpunkt von thenProcess verbindet;Zeichne einen Pfeil der den Endpunkt von thenProcess mit demEndpunkt von currentProcess verbindet;

ELSEZeichne einen Pfeil, der die condition von currentProcessmit dem Knoten von thenProcess verbindet;Zeichne einen Pfeil, der den Knoten von thenProcess mit demEndpunkt von currentProcess verbindet;

END IFIF elseProcess ein zusammengesetzter Prozess istZeichne einen Pfeil, der die condition von currentProcessmit dem Startpunkt von elseProcess verbindet;Zeichne einen Pfeil der den Endpunkt von elseProcess mit demEndpunkt von currentProcess verbindet;

ELSEZeichne einen Pfeil, der die condition von currentProcessmit dem Knoten von elseProcess verbindet;Zeichne einen Pfeil, der den Knoten von elseProcess mit demEndpunkt von currentProcess verbindet;

END IFEND

Page 80: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

74 A. Pseudocode der Implementierung

FUNCTION visualizeChoice(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei subProcesses die Menge der Prozesse,aus denen currentProcess komponiert ist;FOR ALL subProcess IN subProcesses DOVisualisiere subProcess;IF subProcess ein zusammengesetzter Prozess istZeichne einen gepunkteten Pfeil der den Startpunkt von currentProcessmit dem Startpunkt von subProcess verbindet;Zeichne einen gepunkteten Pfeil der den Endpunkt von subProcess mit demEndpunkt von currentProcess verbindet;

ELSEZeichne einen gepunkteten Pfeil der den Startpunkt von currentProcessmit dem Knoten von subProcess verbindet;Zeichne einen gepunkteten Pfeil der den Knoten von subProcess mit demEndpunkt von currentProcess verbindet;

END IFEND FOR

END

FUNCTION visualizerepeatWhile(k)BEGINSei currentProcess der k-te zusammengesetzte Prozess;Zeichne einen Start- und einen Endpunkt für currentProcess;Sei repeat_whileProcess der im currentProcess beteiligte Prozess;Sei condition die im currentProcess definierte Bedingung;Visualisiere condition;Zeichne einen Pfeil der den Startpunkt von currentProcessmit condition verbindet;Visualisiere repeat_whileProcess;

IF repeat_whileProcess ein zusammengesetzter Prozess istZeichne einen Pfeil mit Beschriftung "true", der die condition voncurrentProcess mit dem Startpunkt von repeat_whileProcess verbindet;Zeichne einen Pfeil der den Endpunkt von repeat_whileProcess mitder condition von currentProcess verbindet;

ELSEZeichne einen Pfeil mit Beschriftung "true", der die conditionvon currentProcess mit dem Knoten von repeat_whileProcess verbindet;Zeichne einen Pfeil, der den Knoten von repeat_whileProcessmit der condition von currentProcess verbindet;

END IFZeichne einen Pfeil mit Beschriftung "false", der die conditionvon currentProcess mit dem Endpunkt von currentProcess verbindet;

END

Page 81: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Anhang B

Geschäftsprozesse

In diesem Kapitel wird die entwickelte Software in Form von Geschäftsprozessenbeschrieben. Der Geschäftsprozess „Visualisieren der Prozessbeschreibung“ ist derHauptprozess, in dem optional der Geschäftsprozess „Markieren eines atomaren Pro-zesses“ gestartet werden kann.

(F1)Geschäftsprozess: Visualisieren der ProzessbeschreibungZiel: Visualisierte OWL-S Prozessbeschreibung, die durch den Anwender in Form ei-ner Grafikdatei runtergeladen werden kannKategorie: primärVorbedingung: Gültige OWL-S ProzessbeschreibungNachbedingung: Die Visualisierung der Prozessbeschreibung wird als Grafikdatei aufdem Server zum Herunterladen bereitgestelltNachbedingung Fehlschlag: Falls die Eingabedatei nicht wohlgeformt oder nicht gültig(nicht valide) ist oder keine Prozessbeschreibungen enthält, wird eine FehlermeldungausgegebenAkteure: AnwenderAuslösendes Ereignis: Eingabe der owl-Datei mit Prozessbeschreibung und Betätigendes „Visualisieren“-Buttons Beschreibung:

1. Überprüfung der eingegebenen Datei auf Wohlgeformtheit, Gültigkeit und Exis-tenz einer OWL-S Prozessbeschreibung

2. Erzeugen der internen Darstellung der eingegebenen OWL-S Prozessbeschrei-bung aus den aus WebServiceName.owl geparsten Daten

(a) Optional: Funktion F10

3. Erzeugen einer Grafikdatei aus der erzeugten internen Darstellung (mit der evtl.Markierung, falls F10 benutzt wurde) der OWL-S Prozessbeschreibung

Page 82: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

76 B. Geschäftsprozesse

(F10)Geschäftsprozess: Markieren eines atomaren ProzessesZiel: Anwender kann einen bestimmten atomaren Prozess kennzeichnen, so dass er beidem nächsten Visualisierungsschritt markiert wirdKategorie: sekundärVorbedingung:

• Gültige OWL-S Prozessbeschreibung

• Bereits erzeugte interne Darstellung der eingegebenen OWL-S Prozessbeschrei-bung

Nachbedingung: Kennzeichnen eines bestimmten atomaren Prozesses (in der internenDarstellung)Nachbedingung Fehlschlag: Der zu markierende Prozess existiert nicht . Fehlermel-dungAkteure: AnwenderAuslösendes Ereignis: Kennzeichnen oder Eingabe des zu markierenden atomaren Pro-zesses und Betätigen des „Visualisieren“-ButtonsBeschreibung:

• Auslesen der Eingabe des Nutzers: der zu markierende Prozess

• Markierung des vom Nutzer angegebenen Prozesses in der internen Darstellung(die Visualisierung wird danach von der Funktion F1 durchgeführt)

Page 83: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Literaturverzeichnis

[1] Aalst, Wil van d. ; Hee, Kees van: Workflow Management - Models, Methods,and Systems. Cambridge, Massachusetts : The MIT Press, 2002

[2] Alesso, H. P. ; Smith, Craig F.: Developing Semantic Web Services. AK Peters,2004

[3] Antoniou, G. ; Harmelen, F.: A Semantic Web Primer. Cambridge, Massa-chusetts and London, England : The MIT Press, 2004

[4] Balzert, Helmut: Lehrbuch der Software-Technik. Heidelberg, Berlin : Spek-trum Akademischer Verlag, 2001

[5] Bill, Ralf: Definition: Arbeitsablauf (Workflow). http://www.geoinformatik.uni-rostock.de/einzel.asp?ID=1781; 20.08.07. – Universität Rostock

[6] Booch, Grady ; Jacobson, Ivar ; Rumbaugh, Jim. Unified Modeling LanguageSpecification. http://www.omg.org/docs/formal/05-04-01.pdf; 01.11.07

[7] Brogi, Antonio ; Corfini, Sara ; Iardella, Stefano: OWL-S descriptionsto Petri Nets. http://www.di.unipi.it/~brogi/papers/WESOA07.pdf; 25.10.07.– Universität Pisa

[8] Christensen, Erik ; Curbera, Francisco ; Meredith, Greg ; Weera-warana, Sanjiva. Web Services Description Language (WSDL).http://www.w3.org/TR/wsdl; 01.11.07

[9] Clement, Luc ; Hately, Andrew ; Riegen, Claus von ; Rogers, Tony. UD-DI Spec Technical Committee Draft. http://www.uddi.org/pubs/uddi_v3.htm;01.11.07

[10] Elenius, Daniel ; Denker, Grit ; Martin, David ; Gilham,Fred ; Khouri, John ; Sadaati, Shahin ; Senanayake, Rukman.The OWL-S-Editor: A development tool for Semantic Web Services.http://owlseditor.semwebcentral.org/documents/paper.pdf; 20.08.07

[11] Falkhausen, Markus. Die Anpassung von UML an die Erfordernisse der Do-kumentation. http://falkhausen.de/de/article/article.html; 25.10.07

Page 84: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

78 LITERATURVERZEICHNIS

[12] Gansner, Emden R. ; Koutsofios, Eleftherios ; North, Ste-phen C. ; Vo, Kiem-Phong. A Technique for Drawing Directed Graphs.http://www.graphviz.org/Documentation/TSE93.pdf; 20.08.07

[13] Gruber, T. R. A translation approach to portable ontologies.http://tomgruber.org/writing/ontolingua-kaj-1993.pdf; 20.10.07. 1993

[14] Hitz, M. ; G.Kappel ; E.Kapsammer ; W.Retschitzegger: UML at Work.dpunkt.verlag, 2005

[15] Horrocks, Ian ; Patel-Schneider, Peter F. ; Boley, Harold ; Tabet, Said; Grosof, Benjamin ; Dean, Mike. SWRL: A Semantic Web Rule Language.http://www.w3.org/Submission/2004/SUBM-SWRL-20040521/; 01.11.07

[16] Jablonski, Stefan: Definition: Workflow-Instanz. http://www6.informatik.uni-erlangen.de/research/projects/mobile/glossary.shtml; 20.10.07. – Universität Er-langen

[17] Kassem, Gamal. Workflow: Grundlagen und Modellierung. http://www-wi.cs.uni-magdeburg.de/new/uploads/30.pdf; 28.10.07

[18] Kobielus, James ; Fritsch, Werner: Webservices spielen zusammen. In: In-formationWeek (2004)

[19] Lacy, Lee W.: OWL: Representing Information Using the Web Ontology Lan-guage. Victoria, Canada : Trafford Publishing, 2005

[20] Martin, David ; Burstein, Mark ; Hobbs, Jerry ; Lassila, Ora ; Mc-Dermott, Drew ; McIlraith, Sheila ; Narayanan, Srini ; Paolucci,Massimo ; Parsia, Bijan ; Payne, Terry ; Sirin, Evren ; Srinivasan,Naveen ; Sycara, Katia. OWL-S: Semantic Markup for Web Services.http://www.w3.org/Submission/OWL-S/; 01.06.07. 2004

[21] McGuinness, Deborah L. ; Harmelen, Frank van. OWL Web Ontology Lan-guage. http://www.w3.org/TR/owl-features/; 01.11.07

[22] Melzer, Ingo: Service-orientierte Architekturen mit Web Services. SpektrumAkademischer Verlag, 2007

[23] Mitra, Nilo ; Lafon, Yves. SOAP Version 1.2 Part 0: Primer (Second Edition).http://www.w3.org/TR/2007/REC-soap12-part0-20070427/; 01.11.07

[24] Priese, Lutz ; Wimmel, Harro: Theoretische Informatik - Petri Netze. Berlin: Springer Verlag, 2003

[25] Schärfe, Henrik ; Hitzler, Pascal ; Ohrstrom, Peter: Conceptual Structures:Inspiration and Application. Heidelberg, Berlin : Springer Verlag, 2006

Page 85: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

LITERATURVERZEICHNIS 79

[26] Singer, David ; Layman, Andrew. RDF Vocabulary Description Language 1.0:RDF Schema. http://www.w3.org/TR/rdf-schema/; 01.11.07

[27] Swartz, Aaron: What is the Semantic Web? http://swag.webns.net/whatIsSW;01.06.07. 2001. – SWAG - Semantic Web Agreement Group

[28] Winer, Dave. XML-RPC Specification. http://www.xmlrpc.com/spec; 01.11.07

Page 86: Visualisierung von OWL-S-Prozessmodellen · 2015. 12. 21. · Visualisierung von OWL-S-Prozessmodellen STUDIENARBEIT eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät

Selbstständigkeitserklärung

Hiermit versichere ich, dass ich die vorliegende Studienarbeit selbstständig und nurunter Zuhilfenahme der angegebenen Quellen erstellt habe.

Berlin, den 20.11.2007 Hermann Schwarz


Recommended