Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung

Größe: px
Ab Seite anzeigen:

Download "Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung"

Transkript

1 Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 D Stuttgart Diplomarbeit Nr Ausführung von Grammatikbasierten Prozessmodellen in einer Cloud Umgebung Florian Haupt Studiengang: Informatik Prüfer: Betreuer: begonnen am: beendet am: Prof. Dr. Frank Leymann Dipl. Inf. Katharina Görlach CR-Klassifikation: F.1.1, F.4.2, H.4.1

2 Inhaltsverzeichnis 1 Einleitung Kapitelübersicht Grundlagen Workflow Technologie BPEL Web Services Scientific Workflow Cloud Computing Formale Sprachen, Grammatiken, Automatenmodelle Grundlagen Klassifikation von Formalen Sprachen Reguläre Sprachen (Chomsky Typ 3) Kontextfreie Sprachen (Chomsky Typ 2) Kontextsensitive Sprachen (Chomsky Typ 1) Rekursiv aufzählbare Sprachen (Chomsky Typ 0) Workflow Grammatiken (WoG) Motivation Grundlagen Typen von Nichtterminalen Produktionsregeln Zusammenfassung Anwendung von Grammatiken zur Erzeugung von Wörtern Reguläre Grammatiken (Chomsky Typ 3) Kontextfreie Grammatiken (Chomsky Typ 2) Kontextsensitive Grammatiken (Chomsky Typ 1) Rekursiv aufzählbare Grammatiken (Chomsky Typ 0) Zusammenfassung Aufbau einer Workflow Engine Überblick über bestehende Architekturen Workflow Management Coalition The Workflow Reference Model Apache ODE Workflow Execution Engine (WEE) Oracle BPEL Process Manager YAWL Workflow System... 46

3 5.2. Zusammenfassung der vorgestellten Workflow Management Systeme Komponenten einer Workflow Engine Navigator Prozessmodellspeicher Instanzspeicher Auswertung von Ausdrücken Programmaufrufkomponente Erzeugen von Prozessinstanzen, Übergabeparameter Ausführung von Workflows in einer Cloud Umgebung Komponenten einer Workflow Engine in einer Cloud Umgebung Anwendungsszenario Anwendungsszenario Entwurf einer Workflow Engine für die Ausführung von Workflow Grammatiken Überführung von Workflow Grammatiken ein eine interne Repräsentation Transformation in kontextfreie Grammatiken Zuordnung von zu Regeln und Aktionen Behandlung der generischen Regeln Zusammenfassung Aufbau einer Workflow Engine für Workflow Grammatiken Navigator Prozessmodellspeicher Instanzspeicher Prozessdatenspeicher und Auswertung von Ausdrücken Programmaufruf Schnittstellen nach außen Prototyp einer Workflow Engine für Workflow Grammatiken Dateiformat für Workflow Grammatiken Interne Repräsentation für ausführbare Workflow Grammatiken Funktionsweise des Navigators Weitere Komponenten der Workflow Engine Zusammenfassung Zusammenfassung Verzeichnisse... 83

4 Abkürzungsverzeichnis BPEL BPM IAAS IaaS OaaS ODE PaaS QoS SaaS SEPL WEE WoG WS YAWL Business Process Execution Language Business Process Management Institut für Architektur von Anwendungssystemen Infrastructure as a Service Orchestration as a Service Orchestration Director Engine Platform as a Service Quality of Services Software as a Service Service Protocol Language Workflow Execution Engine Workflow Grammatik / Workflow Grammar Web Service Yet Another Workflow Language

5 1 Einleitung 1 Einleitung Sowohl für die Beschreibung von Geschäftsprozessen als auch für die Beschreibung anderer Prozessarten, wie beispielsweise wissenschaftlicher Experimente (Scientific Workflows), existieren vielfältige Prozessmodelle und Prozessbeschreibungssprachen. Das Institut für Architektur von Anwendungssystemen (IAAS) 1 entwickelt eine Sprache zur Beschreibung von Prozessen, im Folgenden als Workflow Grammatik (WoG) bezeichnet, die auf dem Konzept der formalen Sprachen basiert. Ein Prozessmodell wird dabei durch eine Grammatik dargestellt. Eine Prozessausführung wird durch ein Wort der durch die Grammatik beschriebenen Sprache repräsentiert. Workflow Grammatiken sind so aufgebaut, dass bestehende Prozessbeschreibungssprachen auf Workflow Grammatiken abbildbar sind. Damit wird erreicht, dass unterschiedliche Sprachen und Sprachtypen vergleichbar und sinnvoll klassifizierbar werden, indem man sie auf Workflow Grammatiken als Vergleichsbasis abbildet. Ein weiterer Aspekt, der im Zentrum dieser Arbeit steht, ist die einheitliche Ausführung. Prozessmodelle unterschiedlicher Sprachen können von der gleichen Workflow Engine ausgeführt werden, indem sie zunächst in Workflow Grammatik Modelle konvertiert und anschließend auf einer Workflow Grammatik Workflow Engine ausgeführt werden. In dieser Arbeit wird die Ausführung von Workflow Grammatiken durch eine Workflow Engine untersucht. Eine Workflow Grammatik auszuführen bedeutet, mit Hilfe der Produktionsregeln einer solchen Grammatik ein Wort zu erzeugen. Aus der Theoretischen Informatik sind Automatenmodelle bekannt, die ebenfalls auf Grammatiken arbeiten. Diese Automaten produzieren jedoch keine Wörter, sie erkennen oder akzeptieren Wörter. Zunächst werden die prinzipiellen Unterschiede zwischen akzeptierenden und generierenden Automaten beschrieben und analysiert. Anschließend werden für die Grammatiktypen der Chomsky Hierarchie Verfahren zur Erzeugung von Wörtern entwickelt. Diese orientieren sich an den akzeptierenden Automatenmodellen, beachten jedoch zusätzlich die speziellen Eigenschaften von Workflow Grammatiken. Ein weiterer Teil dieser Arbeit besteht in der Analyse des Aufbaus einer Workflow Engine. Nach einer kurzen Begriffsdefinition und -abgrenzung werden konkrete Beispielarchitekturen beschrieben und verglichen. Ausgehend von diesen Betrachtungen werden der allgemeine Aufbau und die prinzipielle Funktionsweise einer Workflow Engine beschrieben. Der dabei vorgestellte modulare Aufbau wird anschließend im Kontext der Ausführung von Workflows innerhalb einer Cloud Umgebung näher betrachtet. Anhand zweier Anwendungsszenarien wird gezeigt, wie die Modularisierung einer Workflow Engine dazu genutzt werden kann, einzelne Funktionalitäten in die Cloud Umgebung auszugliedern. Die Betrachtungen sowohl zum Erzeugen von Wörtern aus einer Grammatik als auch zum allgemeinen Aufbau einer Workflow Engine werden anschließend kombiniert. Es wird der Aufbau einer modularen Workflow Engine zur Ausführung von Workflow Grammatiken vorgestellt. Dabei wird beschrieben, wie eine gegebene Workflow Grammatik in eine interne Repräsentation überführt wird, um diese anschließend effizient ausführen zu können. Basierend auf dem zuvor beschriebenen Entwurf wurde ein Prototyp einer Workflow Grammatik Workflow Engine entwickelt. Der Aufbau sowie die wesentlichen Aspekte der Implementierung des Prototypen werden abschließend kurz vorgestellt. 1 5

6 1 Einleitung 1.1. Kapitelübersicht Im Folgenden wird eine kurze Übereicht über die einzelnen Kapitel dieser Arbeit gegeben. Kapitel 1 beinhaltet eine allgemeine Einführung in das Thema dieser Arbeit, einen Überblick über ihren Aufbau sowie einige im Folgenden benötigten Grundlagen. Kapitel 2 gibt eine allgemeine Einführung in die Themenbereiche Formalen Sprachen, Grammatiken und Automatenmodelle. In Kapitel 3 wird eine weitere Grundlage dieser Arbeit, das Konzept der Workflow Grammatiken, vorgestellt und beschrieben. Kapitel 4 stellt zu Beginn den Zusammenhang zwischen der Ausführung von Workflow Grammatiken und dem Erzeugen von Wörtern aus einer Grammatik her und beschreibt ihn detailliert. Anschließend werden, angelehnt an die in Kapitel 2 eingeführten Grammatikklassen, Verfahren zur Erzeugung von Wörtern aus einer Grammatik entwickelt. Dabei werden zum einen allgemeine Grammatiken, zum anderen aber auch Workflow Grammatiken und die damit verbundenen zusätzlichen Anforderungen an generierende Verfahren betrachtet. In Kapitel 5 wird der zweite wesentliche Aspekt dieser Arbeit, der Aufbau einer Workflow Engine, betrachtet. Ausgehend von einer Analyse ausgewählter Architekturen werden die einzelnen Komponenten einer Workflow Engine allgemein beschrieben. Zum Schluss des Kapitels werden zwei Anwendungsszenarien für die Ausführung von Workflows in einer Cloud Umgebung vorgestellt. In Kapitel 6 werden die in Kapitel 4 und 5 erarbeiteten Ergebnisse kombiniert und der Entwurf einer modularen Workflow Engine vorgestellt. Dabei wird ebenfalls gezeigt, wie die in Kapitel 3 vorgestellten Workflow Grammatiken für die Ausführung bearbeitet und in eine interne Repräsentation überführt werden. Kapitel 7 beschreibt die Umsetzung des im vorherigen Kapitel beschriebenen Entwurfs als Prototyp einer Workflow Grammatik Workflow Engine. Der Inhalt dieser Arbeit wird abschließend in Kapitel 8 noch einmal zusammengefasst. Die wesentlichen Ergebnisse, die Einschränkungen dieser Arbeit sowie mögliche Folgearbeiten werden beschrieben. Kapitel 9 enthält das Literaturverzeichnis sowie weitere Verzeichnisse, wie beispielsweise das Abbildungsverzeichnis oder ein Verzeichnis aller verwendeten Abkürzungen Grundlagen In den folgenden Abschnitten werden grundlegende Begriffe, Techniken und Technologien eingeführt, die im Rahmen dieser Arbeit verwendet oder referenziert werden. Es soll lediglich eine kurze Einführung in die genannten Themen gegeben werden. Falls im weiteren Verlauf dieser Arbeit nötig, werden einzelne Themen in den entsprechenden Kapiteln nochmals vertieft Workflow Technologie Workflow Technologie behandelt die Abbildung von realen Geschäftsprozessen auf IT Umgebungen. Geschäftsprozesse können mit Hilfe von Prozessmodellen beschrieben werden. Sie spezifizieren den genauen Ablauf eines Geschäftsprozesses als Folge von Geschäftsfunktionen. Wird der Ablauf eines Geschäftsprozesses von einer IT Umgebung kontrolliert und bestehen die Geschäftsfunktionen aus Programmen, dann spricht man anstatt von Prozessmodellen und Prozessen von Workflowmodellen und Workflows [LR00]. 6

7 1 Einleitung BPEL Die Web Service Business Process Execution Language (WS-BPEL, im Folgenden nur BPEL) ist eine XML basierte Sprache zur Beschreibung von Geschäftsprozessen. Geschäftsfunktionen sind in BPEL Prozessen als Web Services implementiert. Ein BPEL Prozess kann selbst wieder als Web Service zur Verfügung gestellt werden, weswegen BPEL auch als rekursive Aggregationssprache für Web Services bezeichnet wird. BPEL ist ein von der Organization for the Advancement of Structured Information Standards (OASIS) 2 veröffentlichter Standard, die aktuelle Version ist WS-BPEL 2.0 [BPEL07] Web Services Als Dienst (Service) bezeichnet man Funktionen (Programme), welche über eine eindeutige Netzwerkadresse zur Verfügung gestellt werden. Dienste haben eine always on Semantik, d.h. sie sind immer verfügbar. Dienste, die auf Web Technologien wie beispielsweise HTTP oder XML basieren, bezeichnet man als Web Services. Die Menge aller Standards und Technologien im Zusammenhang mit Web Services bezeichnet man gesammelt auch als Web Service Technologie [WCL+05]. Die Web Service Description Language (WSDL) ist ein vom World Wide Web Consortium (W3C) 3 veröffentlichter Standard zur Beschreibung von Web Services. Er definiert ein Modell sowie eine XML Syntax, um die abstrakte Funktionalität sowie den Zugriff auf Web Services einheitlich zu beschreiben [WSDL07] Scientific Workflow Der Ursprung der Workflow Technologie liegt in der Automatisierung von Geschäftsprozessen. In diesem Bereich werden die entwickelten Technologien auch heute noch überwiegend eingesetzt. Workflow Technologien sind jedoch nicht auf diesen einen Anwendungsbereich beschränkt. Ein Beispiel für ein weiteres Einsatzgebiet ist die Wissenschaft. Neben Theorie und Experiment hat sich der Bereich der Simulation und der Berechnung als drittes Standbein der Forschung etabliert [TDG+07]. Die Durchführung von computergestützten Berechnungen und Simulationen lässt sich ebenfalls als Prozess beschreiben. Daten müssen bewegt und bearbeitet werden, die Ausführung von Programmen oder Programmfunktionen muss koordiniert werden. In vielen Fällen handelt es sich dabei um Prozesse, welche in gleicher oder ähnlicher Form regelmäßig wiederholt werden. Diese Ausgangsbedingungen haben dazu geführt, dass Technologien aus dem Bereich der Automatisierung von Geschäftsprozessen in die Wissenschaftswelt übertragen wurden. Analog zum Begriff des Business Workflow spricht man in diesem Anwendungskontext auch von Scientific Workflow Cloud Computing Der Begriff des Cloud Computing umschreibt ein Konzept zur Bereitstellung und Nutzung von IT Ressourcen. Die Grundidee des Cloud Computing besteht darin, IT Ressourcen als Dienst in einem Netzwerk zur Verfügung zu stellen. IT Ressourcen können dabei virtuelle Maschinen, Speicher oder auch Programme sein. Sie können innerhalb eines Intranets oder aber auch über das Internet zur Verfügung gestellt werden. Die Bereitstellung als Dienst bedeutet, dass diese Ressourcen jederzeit

8 1 Einleitung und nach Bedarf einfach genutzt werden können. Die Abrechnung von Cloud Computing Diensten erfolgt üblicherweise nutzungsabhängig [BKN11], [MG11]. Die durch Cloud Computing Dienste angebotenen Funktionalitäten erstrecken sich über eine große Bandbreite. Aus diesem Grund werden die heutzutage angebotenen Cloud Computing Lösungen üblicherweise in verschiedenen Kategorien eingeteilt. Eine solche ausführliche Klassifizierung wird in [LKN+09] vorgestellt, sie ist in Abbildung 1 vereinfacht dargestellt. Im Folgenden werden die wichtigsten Kategorien von Cloud Computing Diensten kurz beschrieben. Software as a Service SaaS Platform as a Service PaaS Infrastructure as a Service IaaS Hardware Infrastructure as a Service (IaaS) Abbildung 1: Cloud Computing Infrastructure as a Service (IaaS) Dienste bieten Zugriff auf reale oder virtuelle Hardware. Neben der Bereitstellung virtueller Maschinen umfasst dies beispielsweise auch die Nutzung von Speicher- oder Netzwerkfunktionalitäten. Platform as a Service (PaaS) Platform as a Service (PaaS) Dienste bieten Ausführungsumgebungen an. Software kann entwickelt, in einer PaaS Cloud installiert und anschließend ausgeführt werden. Die angebotenen Plattform wird vom Cloud Anbieter verwaltet und skaliert automatisch. Die Realisierung eines PaaS Cloud Computing Dienstes kann auf IaaS Cloud Computing Diensten basieren. Software as a Service (SaaS) Software as a Service (SaaS) Dienste bieten Softwarefunktionalitäten als Dienst an. Die Software wird über ein Netzwerk angeboten und läuft in vielen Fällen in einem Web Browser. Die Installation und Wartung der angebotenen Software obliegt dem SaaS Anbieter. Die Realisierung eines SaaS Cloud Computing Dienstes kann auf PaaS Cloud Computing Diensten basieren. 8

9 2 Formale Sprachen, Grammatiken, Automatenmodelle 2 Formale Sprachen, Grammatiken, Automatenmodelle Im Mittelpunkt dieser Arbeit steht die Prozessbeschreibungssprache WoG (Workflow Grammatik). Der Aufbau und die Funktionsweise von Workflow Grammatiken werden in Kapitel 3 näher beschrieben. In Workflow Grammatiken wird ein Prozess nicht mit Hilfe eines Petrinetzes (wie beispielsweise in YAWL [AH05]) oder eines Graphen (wie beispielsweise in WSFL [WSFL01] oder teilweise auch in WS-BPEL [BPEL07]), sondern durch eine Grammatik beschrieben. Grammatiken werden unter anderem im Bereich der Theoretischen Informatik verwendet, sie werden aber auch in anderen Fachbereichen wie beispielsweise der Linguistik thematisiert [Mue09]. In der Theoretischen Informatik werden Grammatiken als ein mögliches Beschreibungsmittel für Formale Sprachen verwendet. Im Folgenden werden die wichtigsten Grundlagen zum Thema der Formalen Sprachen in der Theoretischen Informatik vorgestellt. Die verwendeten Bezeichnungen und Definitionen orientieren sich an [Sch08] Grundlagen Eine Sprache L ist definiert als eine (endliche oder unendliche) Menge von Wörtern. Ein Wort wiederum besteht aus Zeichen eines endlichen Alphabets Σ und besitzt eine endliche Länge. Die daraus folgende formale Definition einer Sprache lautet: L. Endliche Sprachen (also endliche Mengen von Wörtern) können direkt aufgeschrieben werden. Die Sprache L 1, welche aus allen Wörtern der Länge zwei über dem Alphabet a, b, c besteht, kann aufgeschrieben werden als L 1 aa, ab, ac, ba, bb, bc, ca, cb, cc. Mit dieser Schreibweise ist L 1 vollständig und eindeutig beschrieben. Bei unendlichen Sprachen kann diese direkte Art der Beschreibung einer Sprache nicht mehr angewendet werden. Die unendliche Sprache L 2 über dem Alphabet a, b, c, welche alle Wörter enthält, die nur aus dem Zeichen a bestehen, kann nicht direkt als Menge aufgeschrieben werden. Die Schreibweise L2 a, aa, aaa,... ist nicht eindeutig, sie ist abhängig von der Interpretation von. Allgemein benötigt man also eine Möglichkeit, unendliche Mengen mit Hilfe eines endlichen Beschreibungsmittels eindeutig und vollständig zu beschreiben. Grammatiken sind ein solches Beschreibungsmittel. Sie bestehen im Wesentlichen aus einem Regelwerk. Durch ein- oder mehrmalige Anwendung dieser Regeln können Wörter produziert werden. Das Erzeugen von Wörtern mit Hilfe einer Grammatik wird in Kapitel 4 ausführlich diskutiert. Eine Grammatik G i gehört zu einer Sprache L i, wenn durch die Anwendung der Regeln von G i genau die Menge der Wörter aus L i erzeugt wird. Man schreibt dies als Li L G i und sagt L i ist die von G i erzeugte Sprache. In Definition 1 ist der allgemeine Aufbau einer Grammatik dargestellt. G = (V, E, P, S) V = Menge der Nichtterminale (auch: Variablen) E = Menge der Terminale (auch: Alphabet) P = Menge der Produktionsregeln, P V V S = das Startsymbol, muss in V enthalten sein Definition 1: Formale Grammatik Um mit Hilfe einer Grammatik Wörter zu erzeugen, werden die Produktionsregeln einer Grammatik wiederholt angewendet. Die Menge aller Regelanwendungen zur Produktion eines Wortes bezeichnet man auch als Ableitung. Eine Ableitung beginnt immer mit dem Startsymbol und der Anwendung einer passenden Produktionsregel auf das Startsymbol. Daraus entsteht im Allgemeinen ein sogenanntes Teilwort. Ein Teilwort besteht sowohl aus Nichtterminalen als auch aus Terminalen. Ein Wort besteht, 9

10 2 Formale Sprachen, Grammatiken, Automatenmodelle im Gegensatz zu einem Teilwort, ausschließlich aus Terminalen. Auf ein Teilwort können erneut Produktionsregeln angewendet werden. Das wiederholte Anwenden von Produktionsregeln auf Teilworte wird so lange wiederholt, bis keine Produktionsregel mehr angewendet werden kann oder ein Wort erzeugt wurde. Besteht das letzte erzeugt Teilwort nur noch aus Terminalen, so ist es ein Wort der Grammatik, die Ableitung war erfolgreich. Eine Ableitung eines Wortes ist also eine Abfolge von Teilwörtern, die mit dem Startsymbol beginnt und mit dem entsprechenden Wort endet. ABC abc abc BC bc A B C a B C a b c A a Abbildung 2: Anwendung von Produktionsregeln Eine Produktionsregel beschreibt eine Ersetzung innerhalb eines Teilwortes 4. Sie kann nur dann auf ein Teilwort angewendet werden, wenn die linke Seite der Regel in dem Teilwort enthalten ist. Die Anwendung der Regel bedeutet, dass genau ein Vorkommen der linken Seite durch die rechte Seite ersetzt wird. Eine solche Ersetzung ist eine atomare Aktion. Abbildung 2 stellt die Anwendung von Produktionsregeln an einem Beispiel dar. Im ersten Schritt wird das Nichtterminal A durch das Terminal a ersetzt. Im zweiten Schritt wird das Teilwort BC durch das Teilwort bc ersetzt. In Abbildung 3 ist die Erzeugung des Wortes abc anhand einer einfachen Beispielgrammatik dargestellt. Es sind drei mögliche Ableitungen für dieses Wort dargestellt. Unter den Ableitungen sind die dazugehörigen sogenannten Ableitungsbäume dargestellt. Ableitungsbäume beschreiben ebenfalls die Ableitung eines Wortes, sie machen aber im Allgemeinen keine eindeutigen Aussagen über die Reihenfolge der Anwendung der einzelnen Regeln. Die Wurzel eines Ableitungsbaumes ist immer das Startsymbol, die Blätter beschreiben das erzeugte Wort. Zu jedem durch eine Grammatik erzeugbaren Wort kann es mehrere Ableitungen geben. Ableitungen können auf Ableitungsbäume abgebildet werden, dabei ist es möglich, dass mehrere Ableitungen auf den gleichen Ableitungsbaum abgebildet werden. Die in Abbildung 3 dargestellte Ableitung (1) wendet die gleichen Regeln wie Ableitung (3) an, die beiden Ableitungen unterscheiden sich lediglich in der Reihenfolge der Regelanwendungen. Sie werden in diesem Beispiel beide auf den linken Ableitungsbaum abgebildet. Dies verdeutlicht, dass ein Ableitungsbaum mehrere Ableitungen 4 Grammatiken sind eine spezielle Form sogenannter Semi-Thue Systeme, die auch als Wortersetzungssysteme bezeichnet werden [Tho10]. Im Gegensatz zu Grammatiken gibt es in Semi-Thue Systemen beispielsweise kein explizites Startsymbol und keine Unterscheidung in Terminale und Nichtterminale. 10

11 2 Formale Sprachen, Grammatiken, Automatenmodelle beschreiben kann. Die Ableitung (2) verwendet dagegen andere Regeln als die Ableitungen (1) und (3), demzufolge wird diese Ableitung auf den rechten Ableitungsbaum abgebildet. Eine Grammatik, in der es für ein Wort mehr als einen Ableitungsbaum gibt, nennt man mehrdeutig. S ABC AB ab BC bc A a C c (1) S ABC abc abc (2) S ABC abc abc (3) S ABC ABc abc S S ABC ABC ab c a bc Abbildung 3: Grammatik, Ableitung und Ableitungsbaum Eine zweite Möglichkeit, Sprachen (und insbesondere auch unendliche Sprachen) zu beschreiben, sind Automaten. Die unterschiedlichen Automatenmodelle, die zur Beschreibung formaler Sprachen verwendet werden, bezeichnet man auch als Akzeptoren [WH09]. Dieser Begriff leitet sich aus ihrer Funktionsweise ab. Ein Automat (im Sinne der formalen Sprachen) bekommt ein Wort übergeben und beginnt dann zu arbeiten. Der Automat kann seine Arbeit in endlicher Zeit beenden oder aber auch unendlich lange laufen. Wenn er seine Arbeit beendet, dann akzeptiert er das Wort oder er akzeptiert es nicht. Wie genau dieses Akzeptieren oder nicht Akzeptieren geschieht, ist unterschiedlich und abhängig vom Automatenmodell und seiner formalen Definition. Das Akzeptieren oder nicht Akzeptieren kann beispielsweise durch den Zustand signalisiert werden, in dem sich der Automat nach seiner Terminierung befindet. Es ist aber auch möglich, das Akzeptieren oder nicht Akzeptieren durch eine explizite Ausgabe zu zeigen. Automaten bekommen ihre Eingabe auf einem Eingabeband übergeben. Sie können, beginnende beim ersten Zeichen, die gesamte Eingabe schrittweise von links nach rechts einlesen. Ist die Eingabe einmal eingelesen, ist keine weitere Operation auf dem Eingabeband mehr möglich. Ähnlich zum Eingabeband besitzen einige Automatenmodelle ein Ausgabeband. Diese Band ist zu Beginn leer. Es kann zeichenweise von links nach rechts beschrieben werden. Vom Ausgabeband kann nicht gelesen werden. Geschriebene Zeichen können nicht verändert oder überschrieben werden. Neben Eingabeund Ausgabeband besitzen die mächtigeren Automatenmodelle, wie beispielsweise Turingmaschinen, ein Arbeitsband. Auf dem Arbeitsband kann beliebig gelesen und geschrieben werden. Automaten können sich auf dem Eingabeband frei bewegen. Die zu einem Automaten M i gehörende Sprache L i ist die Menge aller Wörter, die dieser Automat akzeptiert. Man sagt auch L i ist die von M i akzeptierte Sprache und schreibt Li L M i. Der Aufbau eines Automaten hängt vom verwendeten Automatenmodell ab. Die einzelnen Modelle und ihre formale Definition werden im folgenden Kapitel beschrieben. Vorausgreifend sei aber hier schon festgehalten, dass die Definition eines Automaten, ebenso wie die einer Grammatik, endlich ist. Damit bilden Automaten ein weiteres endliches Beschreibungsmittel für unendliche Sprachen. 11

12 2 Formale Sprachen, Grammatiken, Automatenmodelle 2.2. Klassifikation von Formalen Sprachen In der Theoretischen Informatik unterscheidet man verschiedenen Typen, oder auch Klassen, von Sprachen. Die bekannteste und grundlegendste Klassifizierung ist die Chomsky-Hierarchie. Sie ist in Abbildung 4 dargestellt. Die Menge aller Sprachen enthält dabei auch die Sprachen, die nicht durch Grammatiken darstellbar sind. Die Menge der Typ 0 Sprachen entspricht der Menge der Sprachen, die durch Grammatiken darstellbar sind. Die Chomsky Hierarchie ist eine Untermengenkonstruktion, das bedeutet, dass jede Sprache vom Typ x immer auch eine Sprache vom Typ x-1 ist (beispielsweise ist jede reguläre Sprache immer auch kontextfrei). alle Sprachen Typ 0 (rekursiv aufzählbar) Typ 1 kontextsensitiv Typ 2 kontextfrei Typ 3 regulär Abbildung 4: Chomsky Hierarchie Die Definition der Chomsky Hierarchie erfolgt über Grammatiken, sie klassifiziert also im Grunde keine Sprachen, sondern Grammatiken. Im vorherigen Kapitel wurde jedoch bereits ausführlich beschrieben, dass jede Grammatik immer auch eine Sprache beschreibt. Demzufolge kann die Chomsky Hierarchie sowohl auf Grammatiken als auch auf Sprachen angewendet werden. Ein ähnlicher Zusammenhang besteht, wie ebenfalls bereits beschrieben, zwischen Sprachen und Automaten. Zu den Sprachen jedes Chomsky Typs gibt es immer auch ein Automatenmodell, welches genau die Sprachen dieses Typs erkennen kann. Die den einzelnen Chomsky Typen zugeordneten Automatenmodelle unterscheiden sich sowohl ihrer Mächtigkeit als auch in ihrem Laufzeitverhalten. Ein Endlicher Automat kann beispielsweise nur Typ 3 Sprachen erkennen, dafür tut er dies in linearer Zeit. Ein Kellerautomat kann dagegen zusätzlich auch Typ 2 Sprachen erkennen, dafür kann er dies aber im allgemeinen Fall nicht in linearer Zeit tun. Die Klassifizierung von Sprachen nach der Chomsky Hierarchie erlaubt es, detaillierte Aussagen über ihre Eigenschaften zu machen. Im Folgenden werden ein paar Beispiele genannt. Ist eine Sprache regulär, dann ist diese Sprache in linearer Zeit entscheidbar. Ist sie dagegen kontextsensitiv, dann ist sie weiterhin entscheidbar, aber nicht mehr in linearer Zeit. Das Äquivalenzproblem ( Erzeugen zwei Grammatiken die gleiche Sprache? ) ist für Typ 3 Grammatiken entscheidbar, für Typ 2 Grammatiken dagegen bereits nicht mehr. In den folgenden Unterkapiteln werden die Sprachklassen gemäß der Chomsky Hierarchie beschrieben. Zu jeder Sprachklasse werden der entsprechende Grammatiktyp sowie das dazugehörige Automatenmodell vorgestellt und formal definiert. 12

13 Reguläre Sprachen (Chomsky Typ 3) 2 Formale Sprachen, Grammatiken, Automatenmodelle Reguläre Sprachen stellen in der Chomsky Hierarchie die kleinste Sprachklasse dar. Reguläre Sprachen können durch reguläre Grammatiken oder durch reguläre Ausdrücke beschrieben werden. Reguläre Sprachen werden durch (sowohl deterministische als auch nichtdeterministische) endliche Automaten erkannt Reguläre Grammatiken Reguläre Sprachen können durch reguläre Grammatiken beschrieben werden. Eine Grammatik ist regulär, wenn ihre Regeln den folgenden Einschränkungen gehorchen. Die linke Seite einer Regel muss aus genau einem Nichtterminal bestehen. Die rechte Seite einer Regel muss entweder aus genau einem Terminal oder aus einem Terminal gefolgt von einem Nichtterminal aufgebaut sein. Eine Grammatik mit derartigen Regeln nennt man auch rechtsregulär (die Anwendung der Regeln lässt ein Wort nach rechts wachsen). Eine alternative und äquivalente Definition einer regulären Grammatik fordert für die rechte Seite einer Regel, dass sie aus einem Nichtterminal gefolgt von einem Terminal besteht. Eine so definierte Grammatik nennt man linksregulär. In dieser Arbeit wird der Begriff regulär als Synonym für rechtsregulär verwendet. G 1 = (N 1, T 1, P 1, S), N 1 = {S, B}, T 1 = {0, 1} P 1 = { S 0, S 1, S 1B, B 0B, B 1B, B 0, B 1} Listing 1: Beispiel für eine rechtsreguläre Grammatik Ein Beispiel für eine rechtsreguläre Grammatik ist in Listing 1 dargestellt. Die Grammatik G 1 beschreibt die Menge aller Binärzahlen ohne führende Nullen. Die gleiche Sprache wird von der in Listing 2 L G L. dargestellten linksregulären Grammatik G 2 erzeugt. Formal ausgedrückt gilt also G 2 = (N 2, T 2, P 2, S), N 2 = {S, B}, T 2 = {0, 1} P 2 = { S 0, S 1, S B0, S B1, B B0, B B1, B 1} Listing 2: Beispiel für eine linksreguläre Grammatik 1 G Reguläre Ausdrücke Eine weitere Beschreibungsmöglichkeit für reguläre Sprachen sind reguläre Ausdrücke. Reguläre Ausdrücke beschreiben Wortmengen durch eine Art Muster und sind aufgrund ihrer kompakten Darstellung in der Praxis weit verbreitet. 13

14 2 Formale Sprachen, Grammatiken, Automatenmodelle In Definition 2 werden reguläre Ausdrücke über dem Alphabet Σ formal definiert. Die Regeln (1) und (2) definieren zunächst atomare reguläre Ausdrücke. Die Regeln (3) und (4) erweitern die Definition regulärer Ausdrücke rekursiv. (1) ε Das leere Wort ist ein regulärer Ausdruck. (2) a Jedes Zeichen des Alphabets Σ ist ein regulärer Ausdruck. (3) a b Sind a und b reguläre Ausdrücke, dann ist auch ihre Vereinigung ein regulärer Ausdruck. (4) a* Ist a ein regulärer Ausdruck, so sind auch beliebige Konkatenationen von a ein regulärer Ausdruck (Kleene Operator, endlicher Abschluss). a 0 = ε a 3 = aaa Definition 2: Reguläre Ausdrücke Ein Beispiel für einen regulären Ausdruck ist in Listing 3 dargestellt. Der reguläre Ausdruck BIN beschreibt die gleiche Sprache wie die in Listing 1 und Listing 2 aufgeführten Grammatiken, also die Menge aller Binärzahlen ohne führende Nullen. Es gilt L BIN) L( G ) L( ). BIN = 0 1(0 1)* ( 1 G2 Listing 3: Beispiel für einen regulären Ausdruck Endliche Automaten Ein endlicher Automat liest ein Wort zeichenweise ein. Abhängig von den eingelesenen Zeichen navigiert er durch einen Zustandsgraphen. Ist das Wort komplett eingelesen und der Automat befindet sich ein einem Endzustand, so akzeptiert er das Wort. Befindet er sich dagegen in einem Zustand, der kein Endzustand ist, akzeptiert er das Wort nicht. DEA = (Z, Σ, δ, z 0, E) Z = Menge der Zustände Σ = Eingabealphabet, Z 0 δ = Überführungsfunktion, z 0 = Startzustand, z 0 Z E = Menge der Endzustände, : Z Z E Z Definition 3: Endlicher Automat Definition 3 beschreibt einen Deterministischen Endlichen Automaten formal. Die Überführungsfunktion δ beschreibt das Verhalten des Automaten. Sie definiert die Zustandsübergänge des Automaten abhängig von den eingelesenen Zeichen. Der wesentliche Unterschied zwischen einem Deterministischen Endlichen Automaten (DEA) und einem Nichtdeterministischem Endlichen Automaten (NEA) besteht in den Zustandsübergängen. Ein DEA darf, ausgehend von einem beliebigen Zustand, für jedes mögliche Zeichen höchstens einen Übergang besitzen. Ein NEA unterliegt dieser Beschränkung nicht. Die Definition der Überführungsfunktion eines 14

15 Nichtdeterministischen Endlichen Automaten lautet dann Potenzmenge. 2 Formale Sprachen, Grammatiken, Automatenmodelle : Z Z, P bezeichnet dabei die Eingabe Wenn auf dem Eingabeband eine 1 steht, dann lies diese Zeichen und gehe in den Zustand B oder in den Zustand E. 1 0, 1 B 0, 1 Wenn auf dem Eingabeband ein 0 oder eine 1 steht, dann lies diese Zeichen und gehe in den Zustand E. S 0, 1 E Abbildung 5: Endlicher Automat, nichtdeterministisch (NEA) Abbildung 5 stellt den NEA M 1 dar, der genau die Sprache aller Binärzahlen ohne führende Nullen akzeptiert. Der in Abbildung 6 dargestellte DEA M 2 erkennt die gleiche Sprache wie M 1. Damit gilt L M ) L( M ) L( BIN) L( G ) L( ). ( G2 0, 1 1 E1 S 0 E2 Abbildung 6: Endlicher Automat, deterministisch (DEA) Kontextfreie Sprachen (Chomsky Typ 2) Kontextfreie Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der regulären Sprachen dar. Kontextfreie Sprachen können durch kontextfreie Grammatiken beschrieben werden. Kontextfreie Sprachen werden durch (nichtdeterministische) Kellerautomaten erkannt Kontextfreie Grammatiken Kontextfreie Sprachen können durch kontextfreie Grammatiken beschrieben werden. Eine Grammatik ist kontextfrei, wenn ihre Regeln den folgenden Einschränkungen gehorchen. 15

16 2 Formale Sprachen, Grammatiken, Automatenmodelle Die linke Seite einer Regel muss aus genau einem Nichtterminal bestehen. Die rechte Seite einer Regel muss mindestens ein Terminal oder Nichtterminal enthalten, ansonsten ist sie keinerlei Einschränkungen unterworfen. G 3 = (N 3, T 3, P 3, S), N 3 = {S }, T 3 = {a, b} P 3 = { S ab, S asb} Listing 4: Beispiel für eine kontextfreie Grammatik Ein einfaches Beispiel für eine kontextfreie Grammatik ist in Listing 4 dargestellt. Die Grammatik G 3 beschreibt die Menge aller Wörter die aus einer Menge von a gefolgt von der gleichen Anzahl von b bestehen, also beispielsweise ab oder aaabbb Kellerautomaten Ein Kellerautomat besitzt, im Gegensatz zu Endlichen Automaten, einen Speicher. Dieser Speicher ist als Keller organisiert (FIFO: First In, First Out), es kann immer nur das oberste Element gelesen werden. Ein Kellerautomat kann in jedem Schritt ein oder kein Zeichen vom Eingabeband einlesen. Abhängig vom eingelesenen Zeichen und dem obersten Element des Kellers navigiert er durch einen Zustandsgraphen. Bei jedem Übergang können beliebig viele Elemente im Kellerspeicher abgelegt werden. Ein Kellerautomat besitzt (in der in dieser Arbeit verwendeten Definition) keine Endzustände. Ein Wort wird genau dann akzeptiert, wenn es komplett eingelesen ist und der Kellerspeicher anschließend leer ist. Ist der Kellerspeicher nach dem Einlesen des Wortes nicht leer, so wird dieses Wort nicht akzeptiert. Kellerautomat = (Z, Σ, Γ, δ, z 0, #) Z = Menge der Zustände Σ = Eingabealphabet Γ = Kelleralphabet δ = Überführungsfunktion, endlichen Teilmengen z 0 = Startzustand, z 0 Z : Z P Z e, P e bezeichnet dabei alle # = das unterste Kellerzeichen, #, repräsentiert den leeren Keller Definition 4: (Nichtdeterministischer) Kellerautomat Definition 4 beschreibt einen Nichtdeterministischen Kellerautomaten. Wir im Folgenden von Kellerautomaten gesprochen, dann sind immer Nichtdeterministische Kellerautomaten gemeint. Deterministische Kellerautomaten sind nicht äquivalent zu Nichtdeterministischen Kellerautomaten. Deterministische Kellerautomaten können genau die Menge der deterministisch kontextfreien Sprachen erkennen. Diese Menge ist eine echte Untermenge der kontextfreien Sprachen. 16

17 2 Formale Sprachen, Grammatiken, Automatenmodelle Wenn auf dem Eingabeband ein a steht und auf dem Keller irgendein Zeichen, dann lies das Zeichen vom Eingabeband, lege ein zusätzliches A auf den Keller, und bleibe im Zustand S. Wenn auf dem Eingabeband ein b steht und auf dem Keller ein A, dann lies das Zeichen vom Eingabeband, entferne das A vom Keller, und gehe in den Zustand Z bzw. bleibe im Zustand Z. (a,x), (xa) (b,a), (-) S (b,a), (-) Z A A A # Kellerspeicher Eingabe a a a b b b Abbildung 7: (Nichtdeterministischer) Kellerautomat Abbildung 7 stellt einen Kellerautomaten dar, der genau die Sprache erkennt, welche durch die in Listing 4 definierte Grammatik beschrieben wird. Für jedes gelesene a wird ein A auf dem Keller abgelegt. Für jedes anschließend eingelesene b wird wieder ein A entfernt. Enthält das eingelesene Wort also gleiche viele a und b, dann ist der Keller am Ende wieder leer, das Wort wird also akzeptiert. Durch den nur einmal möglichen Übergang vom Zustand S in den Zustand Z wird zusätzlich sichergestellt, dass zuerst nur a und danach nur b eingelesen werden können Kontextsensitive Sprachen (Chomsky Typ 1) Kontextsensitive Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der kontextfreien Sprachen dar. Kontextsensitive Sprachen können durch kontextsensitive Grammatiken beschrieben werden. Kontextsensitive Sprachen werden durch linear beschränkt Turingmaschinen (LBA, Linear Bounded Automaton) erkannt Kontextsensitive Grammatiken Kontextsensitive Sprachen können durch kontextsensitive Grammatiken beschrieben werden. Eine Grammatik ist kontextsensitiv, wenn ihre Regeln der folgenden Einschränkung gehorcht. Die rechte Seite einer Regel muss mindestens so viele Elemente wie die linke Seite enthalten (sie muss mindestens gleich lang oder länger sein), ansonsten ist sie keinerlei Einschränkungen unterworfen. Das bedeutet, dass die Teilwörter einer Ableitung niemals kleiner werden dürfen. Sie müssen immer wachsen oder zumindest gleich groß bleiben. Diese Eigenschaft stellt die Entscheidbarkeit von Typ 1 Sprachen sicher. 17

18 2 Formale Sprachen, Grammatiken, Automatenmodelle G 4 = (N 4, T 4, P 4, S), N 4 = {S, B, C, H}, T 4 = {a, b, c} P 3 = { S asbc, S abc, CB HB, HB HC, HC BC, ab ab, bb bb, bc bc, cc cc} Listing 5: Beispiel für eine kontextsensitive Grammatik Ein Beispiel für eine kontextsensitive Grammatik ist in Listing 5 dargestellt. Die Grammatik G 4 beschreibt die Menge aller Wörter die aus einer Menge von a gefolgt von der gleichen Anzahl von b und c bestehen, also beispielsweise abc oder aaabbbccc Linear beschränkte Turingmaschinen (LBA) Linear beschränkte Turingmaschinen (LBA) sind allgemeine Turing Maschinen (TM), die den Bereich des Arbeitsbandes, auf dem das Eingabewort steht, während ihrer Ausführung nie verlassen. Der Aufbau und die Arbeitsweise allgemeiner Turing Maschinen wird im Kapitel kurz beschrieben Rekursiv aufzählbare Sprachen (Chomsky Typ 0) Rekursiv aufzählbare (semi-entscheidbare) Sprachen stellen in der Chomsky Hierarchie die nächst höhere Sprachklasse oberhalb der kontextfreien Sprachen dar. Rekursiv aufzählbare Sprachen können durch Typ 0 Grammatiken beschrieben werden. Rekursiv aufzählbare Sprachen werden durch Turingmaschinen (TM) erkannt Typ 0 Grammatiken Typ 0 Sprachen können durch allgemeine formale Grammatiken beschrieben werden. Eine solche Grammatik unterliegt keinerlei Einschränkungen, ihr Aufbau wird durch die bereits vorgestellte Definition 1: Formale Grammatik beschrieben Turingmaschinen (TM) Die bisher vorgestellten Automatenmodelle bekommen ein Wort übergeben und können dieses zeichenweise einlesen. Sie besitzen, wenn überhaupt, nur eingeschränkte Speichermöglichkeiten. Endliche Automaten besitzen keinerlei Speicher, Kellerautomaten besitzen einen eingeschränkten Speicher, den Kellerspeicher. Eine Turingmaschine (TM) dagegen bekommt das Eingabewort auf einem sogenannten Band übergeben. Die Größe des Bandes ist im Allgemeinen unbeschränkt. Sie kann sich auf diesem Band frei bewegen (in jedem Schritt eine Position nach links oder rechts) und dabei einzelne Zeichen sowohl lesen als auch schreiben. Das Verhalten einer Turingmaschine wird, ähnlich wie bei den anderen Automatenmodellen, über eine Überführungsfunktion definiert. Abhängig vom aktuellen Zustand und dem Zeichen auf dem Band kann der Zustand gewechselt, ein Zeichen auf das Band geschrieben und die Position auf dem Band verändert werden. 18

19 2 Formale Sprachen, Grammatiken, Automatenmodelle Kellerautomat = (Z, Σ, Γ, δ, z 0, #, E) Z = Menge der Zustände Σ = Eingabealphabet Γ = Bandalphabet, δ = Überführungsfunktion, : Z Z L, R, N, {L,R,N} bezeichnet dabei die möglichen Bewegungen links, rechts und stehen bleiben z 0 = Startzustand, z 0 Z b = das Blank, repräsentiert ein leeres Feld auf dem Band, E = Menge der Endzustände, E Z b Definition 5: Turingmaschine Turingmaschinen werden als das mächtigste aller Automatenmodelle angesehen. Diese Auffassung wird in der Churchschen These formuliert, sie ist in Definition 6 dargestellt. Die Churchsche These besagt, dass alles, was im menschlich intuitiven Sinne berechenbar ist, mit einer Turingmaschine berechenbar ist. Das Modell der Turingmaschine ist damit ein universelles Automatenmodell. Die durch die formale Definition der Turing-Berechenbarkeit erfasste Klasse von Funktionen stimmt genau mit der Klasse der im intuitiven Sinne berechenbaren Funktionen überein. Definition 6: Churchsche These (nach [Sch08]) 19

20 3 Workflow Grammatiken (WoG) 3 Workflow Grammatiken (WoG) Workflow Grammatiken als Beschreibungsmittel für ausführbare Prozesse wurden in [Vuk11] entwickelt und ausführlich beschrieben. Workflow Grammatiken sind formale Grammatiken, die als Prozessmodelle interpretiert werden können. Viele Workflowsprachen sind graphbasiert. Ein Prozessmodell wird mit Hilfe von Knoten und Kanten modelliert. Die Knoten stellen Aktivitäten dar, die Kanten definieren Kontroll- oder Datenfluss. Workflow Grammatiken dagegen sind formale Grammatiken, die mit einer zusätzlichen Semantik angereichert werden. Nichtterminale können laufende Aktivitäten oder Variablen repräsentieren, Terminale stehen für beendete Aktivitäten. Eine Produktionsregel einer Workflow Grammatik beschreibt eine Aktion, die während der Ausführung des durch die Workflow Grammatik beschriebenen Prozessmodells durchgeführt werden kann. Eine Ableitung entspricht der Ausführung eines Prozesses, ein Wort beschreibt eine beendete Prozessinstanz. Die für die Ausführung von Workflow Grammatiken wesentlichen Aspekte werden in Kapitel 4 detailliert behandelt. Im Folgenden wird zunächst der Entwurf von Workflow Grammatiken kurz motiviert, anschließend werden die einzelnen Konstrukte zur Modellierung eines Prozess mit Hilfe einer Grammatik vorgestellt. Dieses Kapitel stellt damit im Wesentlichen eine Zusammenfassung von [Vuk11] mit dem Fokus auf die in dieser Arbeit relevanten Aspekte von Workflow Grammatiken dar Motivation Es existieren viele unterschiedliche Sprachen für die Modellierung von Prozessen. Sie unterscheiden sich in ihren Fähigkeiten, ihren bevorzugten Anwendungsbereichen und können völlig unterschiedliche Paradigmen verfolgen. Der Entwurf von Workflow Grammatiken verfolgt das Ziel, dass alle diese Workflow Sprachen auf Workflow Grammatiken abgebildet werden können. Dies bedeutet, dass zu jedem beliebigen Prozessmodell eine (Ausführungs-) äquivalente Workflow Grammatik angegeben werden kann. Diese Eigenschaft bringt zwei große Vorteile mit sich, die hier kurz dargestellt werden sollen. Prozessmodelle unterschiedlicher Modellierungssprachen sind in vielen Fällen schwer zu vergleichen. Es können unterschiedliche Modellierungsparadigmen benutzt werden, die gleichen (gleich benannten) Konstrukte können unterschiedliche Semantiken besitzen. Bildet man diese Prozessmodelle jedoch auf Workflow Grammatiken ab, dann können sie auf dieser einheitlichen Basis sinnvoll verglichen werden. Ebenso möglich ist eine Klassifizierung einzelner Modellierungssprachen, indem ihre Abbildung auf Workflow Grammatiken allgemein beschrieben und anschließend analysiert wird. Der zweite Vorteil der Verwendung von Workflow Grammatiken beruht darauf, dass unterschiedliche Workflowsprachen in den meisten Fällen unterschiedliche Ausführungsumgebungen, also spezielle Workflow Engines, benötigen. Durch die Verwendung von Workflow Grammatiken kann erreicht werden, dass Prozessmodelle unterschiedlicher Modellierungssprachen auf der gleichen Workflow Engine ausgeführt werden können. Werden Prozessmodelle vor ihrer Ausführung in Workflow Grammatiken transformiert, dann wird zur Ausführung dieser Prozessmodelle lediglich eine Workflow Engine für Workflow Grammatiken benötigt. Abbildung 8 stellt dar, wie Prozessmodelle unterschiedlicher Modellierungssprachen auf einer einzigen Workflow Engine ausgeführt werden können. Eine ähnliche Motivation lag dem Entwurf von BPEL zugrunde. Im Bereich der Business Workflows existieren vielfältige Modellierungssprachen. Zur Ausführung der mit unterschiedlichen Sprachen erstellten Prozessmodelle werden unterschiedliche Workflow Engines benötigt. BPEL wurde mit dem Ziel entworfen, eine einheitliche 20

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Einführung in die Computerlinguistik Syntax WS 2006/2007 Manfred Pinkal Einführung in die Computerlinguistik 2006/2007 M. Pinkal UdS 1 Morphologie und Syntax Gegenstand der Morphologie ist die Struktur

Mehr

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel 2. Turingmaschinen Zur Formalisierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes, die sich in der Literatur finden, greifen wir das Konzept der on-line

Mehr

Unterrichtsvorhaben Q2- I:

Unterrichtsvorhaben Q2- I: Schulinterner Lehrplan Informatik Sekundarstufe II Q2 III. Qualifikationsphase Q2 Unterrichtsvorhaben Q2- I: Im ersten Halbjahr 1 Klausur, im 2. Halbjahr ein Projekt. Die Länge der Klausur beträgt 90 min.

Mehr

Business Process Execution Language for Web Services (BPEL4WS)

Business Process Execution Language for Web Services (BPEL4WS) Hauptseminar und Vorlesung Web Services WS 2003/04 Business Process Execution Language for Web Services (BPEL4WS) Patrick Sauter 2/17 Vortrag - Überblick Definition, Zielsetzung und Allgemeines einfacher

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Geschäftsprozessmodellierung essmodellierung mit BPEL

Geschäftsprozessmodellierung essmodellierung mit BPEL Geschäftsprozessmodellierung essmodellierung mit BPEL Autor: Stefan Berntheisel Datum: 8. Januar 2010 Stefan Berntheisel Hochschule RheinMain Fachseminar WS 09/10 Agenda Grundlagen Business Process Execution

Mehr

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka Literatur: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie,

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

1 YAWL Yet Another Workflow Language

1 YAWL Yet Another Workflow Language 1 YAWL Yet Another Workflow Language Das YAWL Workflow-Management-System wurde von Wil van der Aalst und seinem Team an der Eindhoven University of Technology entwickelt. Das System ist in seiner jetzigen

Mehr

Tutorial zu WS-BPEL. Veranstaltung: Entwicklung verteilter Softwaresysteme mit Webservices im Sommersemester 2008

Tutorial zu WS-BPEL. Veranstaltung: Entwicklung verteilter Softwaresysteme mit Webservices im Sommersemester 2008 Tutorial zu WS-BPEL Veranstaltung: Entwicklung verteilter Softwaresysteme mit Webservices im Sommersemester 2008 Universität Hamburg Department Informatik Arbeitsbereich VSIS Gruppe 01: Johannes Kuhlmann,

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

SOA goes real Service-orientierte Architekturen erfolgreich planen und einführen

SOA goes real Service-orientierte Architekturen erfolgreich planen und einführen Daniel Liebhart SOA goes real Service-orientierte Architekturen erfolgreich planen und einführen ISBN-10: 3-446-41088-0 ISBN-13: 978-3-446-41088-6 Inhaltsverzeichnis Weitere Informationen oder Bestellungen

Mehr

Model-Driven Software Development

Model-Driven Software Development Model-Driven Software Development BPEL 2.0 Robert Siebert Das Forschungs- und Entwicklungsprojekt OrViA wird mit Mitteln des Bundesministeriums für Bildung und Forschung (BMBF) gefördert, die innerhalb

Mehr

Binäre Suchbäume (binary search trees, kurz: bst)

Binäre Suchbäume (binary search trees, kurz: bst) Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

Mustererkennung mit Baumautomaten

Mustererkennung mit Baumautomaten Mustererkennung mit Baumautomaten Eine Ausarbeitung von Gisse Alvarado für das Seminar Mustererkennung mit syntaktischen und graphbasierten Methoden bei Prof. Dr. W. Kurth/ Th. Mangoldt Cottbus 2006 Inhalt

Mehr

Web Services Composition (BPWS4J )

Web Services Composition (BPWS4J ) Web Services Composition (BPWS4J ) Hager Markus, Kober Christoph, Linde Kai, Ott Florian, Erdmann Dennis Programmierung verteilter Systeme Lab Institut für Informatik Universität Augsburg Universitätsstraße

Mehr

Informatik Programmiersprachen eine kurze Übersicht

Informatik Programmiersprachen eine kurze Übersicht Informatik eine kurze Übersicht Seite 1 natürliche Sprachen (nach Wikipedia) ca 6500 gesprochene Sprachen davon etwa die Hälfte im Aussterben etwa 500 Schriftsprachen mit gedruckten Texten P. Bueghel Turmbau

Mehr

Konzepte und Anwendung von Workflowsystemen. Kapitel 8: Workflow Ausführungssprache BPEL

Konzepte und Anwendung von Workflowsystemen. Kapitel 8: Workflow Ausführungssprache BPEL Vorlesung Wintersemester 2011/12 Konzepte und Anwendung von Workflowsystemen Kapitel 8: Workflow Ausführungssprache BPEL Lehrstuhl für Systeme der Informationsverwaltung, Prof. Böhm Institut für Programmstrukturen

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN

LISE MEITNER GYMNASIUM NEUENHAUS UELSEN Entwurf eines schulinternen Curriculums im Fach Informatik für die Qualifikationsphase (Jahrgang 11 und 12) Für die Gestaltung des Informatikunterrichts in der Qualifikationsphase sind für das schulinterne

Mehr

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE: FORMALISIERUNG VON ALGORITHMEN Wegen der beobachteten Zusammenhänge zwischen Berechnungs-, Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren zu formalisieren. Weiter genügt es Verfahren

Mehr

Sprachbeschreibung und Erweiterung

Sprachbeschreibung und Erweiterung Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

eassessment Oracle DB Engine Whitepaper

eassessment Oracle DB Engine Whitepaper eassessment Oracle DB Engine Whitepaper DOKUMENT: TYP: eassessment Oracle DB Engine Whitepaper Plattformdokumentation ERSTELLT VON: nova ratio AG Universitätsstraße 3 56070 Koblenz Deutschland VERSION:

Mehr

Vorlesung. Modelle für Geschäftsprozesse und Services. Prof. Dr. Karsten Wolf

Vorlesung. Modelle für Geschäftsprozesse und Services. Prof. Dr. Karsten Wolf Vorlesung Modelle für Geschäftsprozesse und Services Prof. Dr. Karsten Wolf Was ist ein Geschäftsprozess? Beispiele: Bearbeitung eines Schadensfalls in einer Versicherung Kreditüberprüfung in einer Bank

Mehr

Umsetzung von Geschäftsprozessen: Workflow-Managementsysteme. Knut Hinkelmann

Umsetzung von Geschäftsprozessen: Workflow-Managementsysteme. Knut Hinkelmann Umsetzung von Geschäftsprozessen: Knut Hinkelmann Das BPMS *) Paradigma Wo liegt unsere Wertschöpfung? Produkte Strategische Entscheidungen Wie erstellen wir unsere Produkte? Geschäftsprozesse Re-Engineering

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

1. Grundlegende Konzepte der Informatik

1. Grundlegende Konzepte der Informatik 1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Algorithmen

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Rollen- und Rechtekonzept

Rollen- und Rechtekonzept Inhaltsverzeichnis Rollen- und Rechtekonzept 1. Ziele...1 2. Konzeption zur Realisierung durch Access Control List und im Management-Interface...2 2.1. Ansatz...2 2.2. Safety oder Security...2 2.3. User-

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

PrintTalk 2.0, XJDF & WebToPrint

PrintTalk 2.0, XJDF & WebToPrint PrintTalk 2.0, XJDF & WebToPrint Referent: Stefan Meissner (s.meissner@flyeralarm.de) CIP4 Chairman Tools & Infrastructure WG CIP4 Chairman XJDF WG Vernetzung in der Grafischen Industrie. CIP4 & WEB TO

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler Formale Sprachen Der Unterschied zwischen Grammatiken und Sprachen Rudolf Freund, Marian Kogler Es gibt reguläre Sprachen, die nicht von einer nichtregulären kontextfreien Grammatik erzeugt werden können.

Mehr

Berichte aus der Medizinischen Informatik und Bioinformatik. Günther Schadow. Krankenhauskommunikation mit HL7

Berichte aus der Medizinischen Informatik und Bioinformatik. Günther Schadow. Krankenhauskommunikation mit HL7 Berichte aus der Medizinischen Informatik und Bioinformatik Günther Schadow Krankenhauskommunikation mit HL7 Analyse, Implementation und Anwendungeines Protokollstandards für medizinische Datenkommunikation

Mehr

Entwurf und Implementierung eines LL(1)-Parser-Generatorsystems

Entwurf und Implementierung eines LL(1)-Parser-Generatorsystems Entwurf und Implementierung eines LL(1)-Parser-Generatorsystems DIPLOMARBEIT zur Erlangung des akademischen Grades Diplom-Informatiker (FH) vorgelegt von Ulrich Szagun, 37120 Bovenden geboren am: 14.05.1970

Mehr

DSLinux Skriptbasierte Inventarisierung für Linux

DSLinux Skriptbasierte Inventarisierung für Linux DSLinux Skriptbasierte Inventarisierung für Linux www.docusnap.com TITEL DSLinux AUTOR Docusnap Consulting DATUM 21.04.2015 Die Weitergabe, sowie Vervielfältigung dieser Unterlage, auch von Teilen, Verwertung

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

Informatik I. Lutz Donnerhacke lutz@iks-jena.de. PGP:db089309 1c1c 6311 ef09 d819 e029 65be bfb6 c9cb

Informatik I. Lutz Donnerhacke lutz@iks-jena.de. PGP:db089309 1c1c 6311 ef09 d819 e029 65be bfb6 c9cb Informatik I Lutz Donnerhacke lutz@iks-jena.de PGP:db089309 1c1c 6311 ef09 d819 e029 65be bfb6 c9cb 1 Semesterübersicht Grundbegriffe der theoretischen Informatik Übersicht über Funktionen von Betriebsystemen

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne 6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

SOA Einsatzmöglichkeiten und Voraussetzungen unter Nutzengesichtspunkten

SOA Einsatzmöglichkeiten und Voraussetzungen unter Nutzengesichtspunkten SOA Einsatzmöglichkeiten und Voraussetzungen unter Nutzengesichtspunkten Zusammenfassung (Fast) Alles Wissen der Fachbereiche (Regelwerke, Formelwerke, Produktstrukturen, Prozessabläufe etc.) ist heute

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Übungen zu Modellierung verteilter Systeme

Übungen zu Modellierung verteilter Systeme Technische Universität München SoSe 2014 Institut für Informatik Lösungsblatt 1 PD Dr.habil. B. Schätz Ausgabe: 17. April 2014 M. Gleirscher, D. Marmsoler Besprechung: 24. April 2014 Übungen zu Modellierung

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Kapitel DB:III. III. Konzeptueller Datenbankentwurf Kapitel DB:III III. Konzeptueller Datenbankentwurf Einführung in das Entity-Relationship-Modell ER-Konzepte und ihre Semantik Charakterisierung von Beziehungstypen Existenzabhängige Entity-Typen Abstraktionskonzepte

Mehr

Formaler Entwurf mit Event-B Die Eventbank

Formaler Entwurf mit Event-B Die Eventbank Institut für Theoretische Informatik Anwendungsorientierte Formale Verifikation Vorlesung Anwendung Formaler Verifikation SS 2015, 9.6.15 Dr. V. Klebanov, Dr. M. Ulbrich Formaler Entwurf mit Event-B Die

Mehr

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

BPEL Business Process Execution Language

BPEL Business Process Execution Language BPEL Business Process Execution Language Dr. Martin Bartonitz Product Manager SAPERION AG Vorsitzender des Aufsichtsrates: Dieter Matheis Vorstand: Rudolf Gessinger (Vorstandsvorsitzender), Andreas Kunze

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

POIS-Praktikum 2007. Prozessimplementierung, RosettaNet PIPs 3A

POIS-Praktikum 2007. Prozessimplementierung, RosettaNet PIPs 3A POIS-Praktikum 2007 Prozessimplementierung, RosettaNet PIPs 3A Manuel Blechschmidt, David Foerster, Michael Leben, Mike Nagora, Jonas Rogge, Paul Römer Gliederung 2 Einleitung Was war unsere Aufgabe? Was

Mehr

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer Kommunikation I 1 Klausur Kommunikation I Sommersemester 2003 Dipl.-Ing. T. Kloepfer Bearbeitungsinformationen Aufbau der Klausur Die Klausur ist wie folgt aufgebaut: Die Klausur ist in 18 Aufgaben unterteilt.

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Software-Test: Funktionstest

Software-Test: Funktionstest Software-Test: Funktionstest Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-02-06 Funktionale Testverfahren Funktionale Testverfahren testen gegen die Spezifikation

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung IBM WebSphere Process Server Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung AGENDA 1. Überblick 2. WebSphere Process Server 3. Komponenten 4. Präsentation

Mehr

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen aussagenlogischer Regeln: Wissensbasis (Kontextwissen): Formelmenge,

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Service-Orientierte Architekturen

Service-Orientierte Architekturen Hochschule Bonn-Rhein-Sieg Service-Orientierte Architekturen Kapitel 7: Web Services IV Exkurs über Sicherheitsanforderungen Vorlesung im Masterstudiengang Informatik Sommersemester 2010 Prof. Dr. Sascha

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6 Prof. Dr. Wilhelm Schäfer Paderborn, 24. November 204 Christian Brenner Tristan Wittgen Besprechung der Aufgaben:. - 4. Dezember 204 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester

Mehr

ActiveBPEL. Leif Goltermann Hai-Minh Le Benjamin Pennig Stephan Schirmer. Projekt: Entwicklung Verteilter Softwaresysteme Mit Web Services

ActiveBPEL. Leif Goltermann Hai-Minh Le Benjamin Pennig Stephan Schirmer. Projekt: Entwicklung Verteilter Softwaresysteme Mit Web Services ActiveBPEL Leif Goltermann Benjamin Pennig Hai-Minh Le Stephan Schirmer WSBPEL Überleitung Motivation mehreren Aktivitäten organisieren Kommunikation und Datenfluss kontrollieren Workflow Vordefinierte

Mehr

Programmiersprachen gestern, heute, morgen

Programmiersprachen gestern, heute, morgen Programmiersprachen gestern, heute, morgen Einleitung Sie kennen sicher die heute gängigen Sprachen wie C, Java oder Pascal. Doch wie kam es dazu? Wer hat diese Programmiersprachen erfunden? Und - noch

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen 3 Variablen 3.1 Allgemeines Variablen werden in Prozeduren, Mustern und Parameter-Dokumenten definiert und verwendet und bei der Jobgenerierung durch die Werte, die ihnen zugewiesen werden, ersetzt. Variablen

Mehr

SoaML-basierter Entwurf eines dienstorientierten Überwachungssystems

SoaML-basierter Entwurf eines dienstorientierten Überwachungssystems SoaML-basierter Entwurf eines dienstorientierten Überwachungssystems Michael Gebhart (1), Jürgen Moßgraber (2), Thomas Usländer (2), Sebastian Abeck (1) (2) (1) Cooperation & Management, Karlsruher Institut

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

9. Business Process Execution Language

9. Business Process Execution Language 1 9. Business Process Execution Language Beobachtung: häufige Änderungen der Geschäftsprozesse dies erfordert leichte und schnelle Software-Anpassung Idee: Software in (Web-)Services gliedern ( SOA) diese

Mehr

EAI - Enterprise Application Integration

EAI - Enterprise Application Integration EAI - Enterprise Application Integration Jutta Mülle WS 2005/2006 EAI - Folie 1 Überblick und Begriffsbildung Zusammenfassung und Ausblick hinweise EAI - Folie 2 Conclusion EAI Enterprise Application Integration

Mehr

VMware Schutz mit NovaBACKUP BE Virtual

VMware Schutz mit NovaBACKUP BE Virtual VMware Schutz mit NovaBACKUP BE Virtual Anforderungen, Konfiguration und Restore-Anleitung Ein Leitfaden (September 2011) Inhalt Inhalt... 1 Einleitung... 2 Zusammenfassung... 3 Konfiguration von NovaBACKUP...

Mehr

Best Practices fü r Seminararbeiten

Best Practices fü r Seminararbeiten Best Practices fü r Seminararbeiten 1. Ziel des Seminars Ein Seminar ist dazu da, vorhandene Literatur / Software / etc. zu einem bestimmten Thema durchzuarbeiten und die wesentlichen Punkte zusammenzufassen,

Mehr

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de Überblick Mit VisiScan für cobra scannen Sie Adressen von Visitenkarten direkt in Ihre Adress PLUS- bzw. CRM-Datenbank. Unterstützte Programmversionen cobra Adress PLUS cobra Adress PLUS/CRM 2011 Ältere

Mehr

Administrative Tätigkeiten

Administrative Tätigkeiten Administrative Tätigkeiten Benutzer verwalten Mit der Benutzerverwaltung sind Sie in der Lage, Zuständigkeiten innerhalb eines Unternehmens gezielt abzubilden und den Zugang zu sensiblen Daten auf wenige

Mehr

Erwin Grüner 15.12.2005

Erwin Grüner 15.12.2005 FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:

Mehr

1 Aussagenlogik und Mengenlehre

1 Aussagenlogik und Mengenlehre 1 Aussagenlogik und engenlehre 1.1 engenlehre Definition (Georg Cantor): nter einer enge verstehen wir jede Zusammenfassung von bestimmten wohl unterschiedenen Objekten (m) unserer Anschauung oder unseres

Mehr