Freitag, 17. Oktober 2008

Einführung in das Thema Windows Workflow Foundation - Teil 1

Hallo liebe Leser,

ich habe lange nichts mehr gepostet, aber in der letzten Zeit war ich nicht untätig. Zur Zeit schreibe ich an einer Dokumentation über mein Diplomthema, deshalb werde ich die Doku Stück für Stück hier veröffentlichen, damit ihr immer auf dem neuesten Stand seit. Mittlerweile arbeite ich bei daenet in Frankfurt. Hier bin ich im Bereich Marketing/Sales und verfasse Dokumentationen über Projekte und was noch so anfällt. Wie ich schon am Anfang gesagt habe, hier einmal der erste Teil meiner Dokumentation:

Einleitung
Viele Arbeitnehmer kennen die Situation: Man möchte Urlaub einreichen und muss dazu von einem Vorgesetzen zum Anderen laufen. Dabei kommt es auch mal vor, dass der Ansprechpartner gerade im Urlaub oder nicht am Platz ist. Die Folge davon: Man braucht ewig, bis man sich endlich die Genehmigung für seinen wohl verdienten Urlaub eingeholt hat. Diese Situation ist nicht wirklich aus der Luft gegriffen, sondern leider Realität. Solche Arbeitsabläufe, wie der oben genannte, werden heute immer komplexer und aufwendiger, kein Mitarbeiter blickt mehr richtig durch.

In der heutigen Zeit, in denen immer mehr firmeninterne Abläufe IT-gestützt verwaltet und ausgeführt werden, ist mittlerweile ein Licht am Ende des Tunnels zu sehen, welches die Arbeitsabläufe eines Unternehmens um ein vielfaches vereinfachen kann. Immer mehr Technologien von namenhaften Firmen kommen auf den Markt, darunter Microsoft und IBM. Ebenso wächst der Berg an Informationen im Unternehmen. Um diesem Berg Informationen Herr zu werden, sind sogenannte Informationsmanagement-Systeme im Einsatz.

Bis jetzt war es normal, wenn jeder Mitarbeiter einer Firma seine Informationen lokal auf seiner Festplatte abgelegt hat, seien es Projekt-Dokumentationen oder Excel-Files mit Graphen. Der Trend geht aber immer mehr dazu, Informationen in einem Unternehmen für alle Mitarbeiter verfügbar zu machen. Ein Beispiel-Produkt sei hier genannt, weil dieses später für uns noch von Bedeutung werden soll: Microsoft SharePoint. Was Microsoft SharePoint ist und was es kann, werde ich zu einem späteren Zeitpunkt erläutern.

Was ist ein Workflow? - Die verschiedenen Ansichten
Bevor wir voll in das Thema Workflows einsteigen, hier erst einmal eine kurze Erklärung, was überhaupt ein Workflow ist und was die Besonderheiten sind. Beispiele für einen Workflow aus Sicht eines Betriebswirtschaftlers könnten sein, Urlaubsanträge, Planen einer Geschäftsreise, Gehälter überweisen,… Workflows können in jedem Geschäftsfeld vorkommen, sei es in der Buchhaltung, Produktion oder im Marketing. Sie beschreiben Schritt für Schritt den Ablauf einer Aufgabe.

Betrachtet man einen Workflow aus Sicht eines ITlers kommt dabei etwas Anderes heraus: Bei einem Workflow aus IT-Sicht handelt es sich um grundlegende Aufgaben, Verfahren, Personen und Organisationen, den Ein- und Ausgang von Systeminformationen, Richtlinien und Regeln sowie Werkzeuge, die für die einzelnen Schritte des Geschäftsprozesses benötigt werden. Diese ganzen Beteiligten sind notwendig, um einen Geschäftsprozess funktionsfähig zu machen. Das Ziel eines Workflows ist aber am Ende, dass die Zusammenarbeit von allen im Geschäftsprozess involvierten Elementen mithilfe von Software zu automatisieren ist, um dazu beizutragen, dass der jeweilige Prozess erfolgreich abgewickelt werden kann.

Workflows und ihre grafische Darstellung
Um Workflows besser für Mitarbeiter oder Arbeitgeber verständlich zu machen, kann man diese sehr gut grafisch darstellen. Workflows kann man grafisch darstellen, hier das Beispiel mit dem schon oben beschriebenen Beispiel „Urlaubsantrag“:











Um einen Workflow dar zustellen, kann man dies auch mit Hilfe der Ereignisgesteuerte Prozesskette Darstellung machen. Ein Beispiel für die EPK könnte zum Beispiel die Annahme eines Auftrages sein. Das sähe dann so aus:























Ereignisgesteuerte Prozesskette (EPK)

Die Ereignisgesteuerte Prozesskette (EPK) ist ein Modell zur Darstellung von Geschäftsprozessen einer Organisation bei der Geschäftsprozess-Modellierung. EPK stellen Arbeitsprozesse in einer Modellierungssprache grafisch mit Syntaxregeln dar. Dadurch sollen betriebliche Vorgänge systematisiert und parallelisiert werden, um Zeit und Geld einsparen zu können.

Da innerhalb des Prozesses Entscheidungen auf Basis von Bedingungen und Regeln getroffen werden, gibt es in der EPK Verknüpfungsoperatoren („und“, „oder“, „exklusivoder“). Das Grundmodell der Ereignisgesteuerten Prozesskette umfasst neben diesen Operatoren auch Ereignisse und Funktionen. Dazu werden Objekte in gerichteten Graphen mit Verknüpfungslinien und -pfeilen in einer 1:1-Zuordnung verbunden (Ausnahme bei logischen Verknüpfungen). In einer solchen Verknüpfungskette wechseln die Objekte sich in ihrer Bedeutung zwischen Ereignis und Funktion ab, d.h. sie bilden eine alternierende Folge, die zu einem bipartiten Graphen führt. Wesentliches Kennzeichen ist die Abbildung der zu einem Prozeß gehörenden Funktionen in deren zeitlich-logischer Abfolge.

Aufgabengebiete für EPKs
EPKs können für verschiedene Aufgaben eingesetzt werden, zum Beispiel für die Evaluation und Implementierung von Standardsoftware, Darstellung von Abläufen bei Eigenentwicklungen, Prozessoptimierung beim Business Process Reengineering, Analyse und Optimierung von Geschäftsprozessen im Rahmen des Process Performance Management, Veranschaulichung von Abläufen bei Anwenderschulungen, Geschäftsprozessmodellierung (Standard in kleinen und mittleren Unternehmen), Prozesskostenrechnung, Modellierung von BPEL-Prozessen, Simulation von Workflows und Prozessdokumentation nach ISO 900x.

Business Process Execution Language (BPEL)
Wenn man sich mit dem Thema Workflows und mit den Möglichkeiten der Darstellung befasst, wird man früher oder später über den Begriff Business Process Execution Language, kurz BPEL stoßen. Die Business Process Execution Language, ist ein anerkannter Industriestandard zur Beschreibung ausführbarer Geschäftsprozesse. Im Vordergrund steht die Integration verschiedener Anwendungssysteme mittels Web Service-Technologien.

Web Service bieten dabei den Zugang zu Programmfunktionen von existierenden Anwendungssystemen. Mit Hilfe von BPEL wird beschrieben, wie Web Services zeitlich miteinander verknüpft werden, damit ein Geschäftsprozess umgesetzt werden kann. BPEL Modelle haben einen starken IT Fokus, so werden zum Beispiel technische Ausnahmesituationen (Exceptions) angegeben. Dieser technische Detailierungsgrad führt dazu, dass die BPEL Sprache für den Fachanwender ungeeignet ist. Deshalb empfehle ich an dieser Stelle für fachliche Prozesse die Anwendung mit Standards wie der Ereignisgesteuerten Prozesskette (EPK) zu beschreiben. Weiterhin verfügt BPEL nicht über eine standardisierte Notation. Ein Beispiel für BPEL finden Sie in der folgenden Grafik:



Entstehung der BPEL

Die Business Process Execution Language (BPEL) ist eine XML-basierte Sprache zur Modellierung von Workflows auf Basis von Web Services. BPEL ist dabei eine Kombination und Weiterentwicklung zweier zuvor konkurrierender XML-basierter Sprachen für die Komposition von Web Services: der Web Services Flow Language [WSFL] von IBM und der Sprache [XLANG] von Microsoft. Die Graph-basierte WSFL-Sprache kann zur Verbindung von Service Endpunkten zur Choreographie von Workflows verwendet werden, wohingegen die kalkülbasierte XLANG-Sprache eine Syntax und ein Entwicklungsmodell zur Implementierung von Workflowkomponenten bietet.

Die aktuelle Version 2.0 heißt WS-BPEL [WSBPEL] in Anlehnung an weitere Web Service Standards (WS-*), wohingegen die Vorgängerversion 1.1 den Namen BPEL4WS [BPEL4WS] trägt. Aktuelle Weiterentwicklungen, mit dem Ziel einer erhöhten Flexibilität und
Wiederverwendung, erlauben die Spezifikation von BPEL Prozessmodellen unabhängig von Web Service Technologie [BPELlight].

Web-Services
Weil der Begriff Web-Services schon oben im Bezug auf BPEL gefallen ist, hier erst einmal eine Erklärung, was Web-Services sind:

Das World Wide Web (WWW) war damals ein Sammelsurium von Hyperlinks mit verknüpften Text-, Ton- und Bilddateien. Das WWW in seiner heutigen Form ist bereits weitgehend am Benutzer und seinen Bedürfnissen orientiert. Trotzdem zeichnet sich in letzter Zeit vermehrt ein weiterer Trend ab, die Automatisierung der Informationsdienste im WWW. Speziell im Bereich der Business-to-Business und e-Commerce Anwendungen ist diese Art der Informationsverarbeitung bereits schon heute Wirklichkeit.

Business-2-Business-Anwendungen beruhen auf manuell vereinbarten Schnittstellen und Nachrichtenformaten zwischen den Geschäftspartnern. Erschwerend kommt hinzu, dass die zeit- und kostenaufwendige Integration für jeden Geschäftspartner neu vorgenommen werden muss. Eine Automatisierung dieses Vorgangs wäre folglich sehr wünschenswert. Hier kommen die Web-Services ins Spiel. Webservices lassen sich wie folgt charakterisieren:

Programmierbar
Webservices können programmierbar sein, d.h. Web-Services sind über programmierbare Schnittstellen erreichbar. Web-Services sind in erster Linie zur Anwendungskommunikation und nicht zur menschlichen Informationsverarbeitung geschaffen. Web-Services haben keine graphische Benutzeroberfläche.

Selbstbeschreibend
Ein Web-Service ist selbstbeschreibend, wenn er von „Metadaten" (Daten über Daten) begleitet wird, die während der Laufzeit von weiteren Web-Services ausgewertet werden können. Name, Beschreibung, Version und Dienstgüte sind typische Beschreibungsmerkmale.

Kapselung
Ein Web-Service ist eine unabhängige, in sich abgeschlossene bzw. gekapselte Anwendung, die eine genau definierte Aufgabe erfüllt.

Lose gekoppelt
Kommunikation erfolgt über Nachrichtenaustausch. Web-Service-Konsumenten und -Anbietern bleiben Implementierungsdetails verborgen.

Ortstransparenz
Web-Services sind ortsunabhängig und können jederzeit und von jedem Ort aus aktiviert werden, vorausgesetzt Benutzer und Anwendungen haben entsprechende Zugriffsrechte.

Protokolltransparenz
Ein Web-Service basiert auf der Internet-Protokollsuite. Operationen und Nachrichten können mehrere Protokolle unterstützen, z.B. Hypertext Transfer Protocol (HTTP) oder Simple Mail Transfer Protocol (SMTP).

Komposition
Web-Services können entweder in weitere Web-Services zerlegt werden oder mehrere wiederverwendbare Basis-Web-Services können zu einem neuen Web-Service zusammengestellt werden.

So, das war jetzt mal der erste Teil für heute. Im zweiten Teil werde ich auf das Thema SOA eingehen und werde beschreiben, welche Tools ich für meine Diplomarebeit einsetzen werde und werde anfangen, über die Implementierung eines Workflows zu schreiben.

Bis dahin ein schönes Wochenende und bis zum nächsten Post,
Euer Jochen