Informatik-Masterarbeit an der Universität Freiburg (Schweiz) PDA to IT-Workflow September 2003 Sascha Iseli Wagnerstrasse 8 3007 Bern 1. Referent: 2. Referent: Prof. Dr. Andreas Meier PD. Dr. Tony Hürlimann Betreuerin: Dona Mommsen Weiterer Verteiler: - Marc Grimmer (Ascom) Thomas Wettstein (ehem. Ascom) Markus Braunschweiler (ehem. Ascom) Patrick Enggist (ehem. Ascom) Die vorliegende Diplomarbeit konnte ich in Zusammenarbeit mit meinem Teilzeitarbeitgeber Ascom durchführen. Meine Diplomarbeit sollte der Ascom neue Erkenntnisse im Bereich der mobilen Kommunikation liefern und als Wissensbasis sowie Entscheidungsgrundlage für die Zukunft dienen. Die Zusammenarbeit mit der Ascom war lehrreich und intensiv. Für die geleistete Unterstützung möchte ich an dieser Stelle herzlich danken. Namentlich möchte ich Patrick Enggist danken, welcher die Idee zu der vorliegenden Arbeit hatte und welcher mich in der Anfangsphase unterstützte und begleitete. Danken möchte ich auch meinen Mitarbeitern Markus Braunschweiler und Thomas Wettstein, welche in den zahlreichen Kaffeepausen aufmunternde Worte und gute Tipps spendeten. Douglas Miles sowie Gerald Mengeisen möchte ich danken für die fachliche Unterstützung und zu guter Letzt geht natürlich ein ganz grosses «Merci» für die dauerhafte Unterstützung und Begleitung dieser Arbeit an Marc Grimmer. Sascha Iseli, September 2003 Einleitung PDA to IT-Workflow (P2W) Inhaltsverzeichnis: Bildverzeichnis: ..................................................................................................................... 5 Tabellenverzeichnis:............................................................................................................. 7 Abstract: .............................................................................................................................. 8 1. Einleitung...................................................................................................................... 9 1.1. Problemstellung.................................................................................................................. 9 1.2. Zielsetzung ......................................................................................................................... 10 1.3. Vorgehensweise ............................................................................................................... 10 2. Grundlagen ................................................................................................................ 11 2.1. Workflows........................................................................................................................... 11 2.1.1. 2.1.2. 2.1.3. 2.2. Workflow-Management-Systeme (WfMS)................................................................... 15 2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.3. Hyper Text Transfer Protocoll (HTTP) .................................................................................. 28 Servlets...................................................................................................................................... 31 Notationen .......................................................................................................................... 33 2.5.1. 2.5.2. 2.5.3. 3. Java............................................................................................................................................ 21 Geräteeigenschaften und Konfiguration der VM ................................................................. 22 Profile ......................................................................................................................................... 23 MIDlets....................................................................................................................................... 24 HelloWorld................................................................................................................................. 26 Internet und «mobile» Kommunikation ...................................................................... 28 2.4.1. 2.4.2. 2.5. Ziele eines Workflow-Management-Systems (WfMS) ........................................................ 15 Die Workflow Management Coalition (WfMC) ..................................................................... 17 Das Workflow Referenzmodell der WfMC............................................................................ 17 Klassifizierung von Workflow-Management-Systemen (WfMS)........................................ 18 Java auf mobilen Geräten .............................................................................................. 21 2.3.1. 2.3.2. 2.3.3. 2.3.4. 2.3.5. 2.4. Definition.................................................................................................................................... 11 Wie ein Prozess modelliert wird............................................................................................. 12 Ein Beispiel ............................................................................................................................... 13 Die Object Management Group (OMG) ................................................................................ 33 Unified Modelling Language (UML)....................................................................................... 33 Beispiel für die «Unified Modelling Language» Beispiel .................................................... 38 Entwicklung ............................................................................................................... 40 3.1. Analyse des Ascom Workflow-Management-Systems (WfMS) ............................ 40 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.2. Analyse der zu erstellenden Software ........................................................................ 46 3.2.1. 3.2.2. 3.2.3. 3.3. Was beinhaltet das Workflow-Management-System der Ascom?.................................... 41 Das Voice Workflow Modell .................................................................................................... 42 Wie ein Auftrag von einem externen Client übernommen wird ......................................... 45 Wie ein Workflow synchronisiert wird.................................................................................... 45 Der PDA als Client im Workflow-Management-System (WfMS) der Ascom................... 46 Anwendungsfalldiagramme (Use Cases) ............................................................................. 46 Anwendungsfallbeschreibung ................................................................................................ 47 Aktivitätsdiagramm................................................................................................................... 52 Design.................................................................................................................................. 56 3.3.1. 3.3.2. 3.3.3. Systemarchitektur .................................................................................................................... 56 Klassendiagramme .................................................................................................................. 57 Sequenzdiagramme................................................................................................................. 58 - Seite 3 - Einleitung 3.4. PDA to IT-Workflow (P2W) Implementation Client ..................................................................................................... 63 3.4.1. 3.4.2. 3.4.3. 3.4.4. 3.4.5. 3.4.6. 3.4.7. 3.4.8. 3.4.9. 3.4.10. 3.5. Implementation Server .................................................................................................... 78 3.5.1. 3.5.2. 3.5.3. 4. Entwicklungsumgebung mit Forte 4 Java Mobile Edition................................................... 63 Exkurs: Netzwerkprobleme in der VM................................................................................... 65 User Interface bei einem PDA................................................................................................ 66 Netzwerkverbindungen mit dem PDA ................................................................................... 69 Persistente Datenspeicherung auf dem PDA ...................................................................... 71 Die Navigation in P2W............................................................................................................. 72 Programme auf einem Palm PDA.......................................................................................... 74 Spezialitäten der Applikation .................................................................................................. 75 Simulationen mit dem Palm OS Emulator ............................................................................ 76 Mocha PPP ............................................................................................................................... 77 Serverentwicklung mit Websphere Studio............................................................................ 78 Access-Datenbank (Administration) ...................................................................................... 79 Domino Notes-Datenbank....................................................................................................... 81 Inbetriebnahme und Installation .......................................................................... 84 4.1. Server .................................................................................................................................. 84 4.1.1. 4.1.2. 4.1.3. 4.1.4. 4.1.5. 4.1.6. 4.2. Client.................................................................................................................................... 88 4.2.1. 4.2.2. 4.2.3. 4.3. Tomcat Server .......................................................................................................................... 84 Konfiguration des Tomcat Servers ........................................................................................ 85 Notwendige Java APIs ............................................................................................................ 85 Filestruktur auf dem Server .................................................................................................... 86 Administrationskonsole ........................................................................................................... 86 Konfigurationsfile...................................................................................................................... 87 Installation und Konfiguration der Virtual Machine (VM) auf dem PDA ........................... 88 Installation der P2W Applikation und der Testprogramme ................................................ 88 Verbindung zum Internet......................................................................................................... 89 Bedienungshandbuch P2W ........................................................................................... 90 4.3.1. 4.3.2. 4.3.3. Einloggen und Workflow downloaden ................................................................................... 91 Workflow editieren.................................................................................................................... 93 Workflow synchronisieren ....................................................................................................... 94 5. Ausblick und Schlussbetrachtung............................................................................. 95 6. Literatur und Verweise............................................................................................ 97 Glossar ................................................................................................................................. 100 Anhang A: Accessdatenbank......................................................................................... 104 Anhang B: Palm OS Emulator (POSE)......................................................................... 106 Anhang C: Mocha Soft PPP............................................................................................ 107 Anhang D: Beiliegende CD ............................................................................................. 108 - Seite 4 - Einleitung PDA to IT-Workflow (P2W) Bildverzeichnis: Abbildung 1: Systemübersicht................................................................................................................. 9 Abbildung 2: Ablauf eines einfachen Geschäftsprozesses ................................................................... 13 Abbildung 3: Verschiedene Durchlaufzeiten Quelle: [Nohr] ................................................................. 16 Abbildung 4: Ziele − Zielerreichung Quelle: [Nohr] ................................................................................ 16 Abbildung 5 Referenzmodell gemäss WfMC Quelle: [WfMC] ............................................................... 17 Abbildung 6: Das 3K-Modell Quelle: [Nohr]........................................................................................... 18 Abbildung 7: Klassifikation von WfMS Quelle: [Nohr] ........................................................................... 19 Abbildung 8: Die vier WfMS Klassen Quelle: [Nohr] ............................................................................. 19 Abbildung 9: Verschiedene Sparten der Java-Pakete Quelle: [J2ME].................................................. 22 Abbildung 10: Aufbau der Java 2 Micro Edition Quelle: [Giguère 2000, Seite 23]................................ 23 Abbildung 11: Das Mobile Information Device Profile Quelle: [Topley 2002, Seite 45] ........................ 23 Abbildung 12: MIDP Skeleton................................................................................................................ 25 Abbildung 13: Lebenszyklus eines MIDlet Quelle: [Topley 2002, Seite 57].......................................... 25 Abbildung 14: Korrektes Beenden eines MIDlets.................................................................................. 26 Abbildung 15: HelloWorld MIDlet .......................................................................................................... 27 Abbildung 16: Ausgabe des HelloWorld MIDlet .................................................................................... 27 Abbildung 17: HTTP-Request und Response ....................................................................................... 28 Abbildung 18: Servlet Gerüst Quelle: [Callaway 1999, Seite 80] .......................................................... 32 Abbildung 19: Service Methode Quelle: [Callaway 1999, Seite 84] ...................................................... 32 Abbildung 20: Anwendungsfalldiagramm allgemein ............................................................................. 34 Abbildung 21: Klassendiagramm Quelle: [Oestereich 2001, Seite 260] ............................................... 34 Abbildung 22: Aktivitätsdiagramm allgemein......................................................................................... 35 Abbildung 23: Kollaborationsdiagramm Quelle: [Oestereich 2001, Seite 295] ..................................... 35 Abbildung 24: Sequenzdiagramm allgemein......................................................................................... 36 Abbildung 25: Zustandsdiagramm Quelle: [Oestereich 2001, Seite 304] ............................................. 36 Abbildung 26: Komponentendiagramm allgemein ................................................................................ 37 Abbildung 27: Einsatzdiagramm allgemein ........................................................................................... 37 Abbildung 28: Anwendungsfalldiagramm für HelloWorld ...................................................................... 38 Abbildung 29: Klassendiagramm von HelloWorld ................................................................................. 39 Abbildung 30: Sequenzdiagramm von HelloWorl.................................................................................. 39 Abbildung 31: Der Client vom Ascom WfMS......................................................................................... 41 Abbildung 32: Übersicht der Aktivitäten im Voice Workflow.................................................................. 42 Abbildung 33: Genereller IT-Workflow .................................................................................................. 42 Abbildung 34: Übersicht der Aufträge für Elektromonteure................................................................... 43 Abbildung 35: Formular eines Auftrages ............................................................................................... 44 Abbildung 36: Ablauf eines Auftrages ................................................................................................... 45 Abbildung 37: Use Case «Elektromonteur» .......................................................................................... 46 Abbildung 38: Use Case «Administrator» ............................................................................................. 47 Abbildung 39: Aktivitätsdiagramm Login ............................................................................................... 52 Abbildung 40: Aktivitätsdiagramm Synchronisation von Workflows...................................................... 53 Abbildung 41: Aktivitätsdiagramm Workflow downloaden..................................................................... 54 Abbildung 42: Aktivitätsdiagramm Workflow editieren und Titel anzeigen............................................ 55 Abbildung 43: Systemarchitektur........................................................................................................... 56 Abbildung 44: Klassendiagramm........................................................................................................... 57 Abbildung 45: Sequenzdiagramm Login ............................................................................................... 59 Abbildung 46: Sequenzdiagramm Download ........................................................................................ 60 Abbildung 47: Sequenzdiagramm Synchronisation .............................................................................. 61 Abbildung 48: Sequenzdiagramm WF Titel und Funktionen................................................................. 62 Abbildung 49: Forte 4 Java Mobile Edition............................................................................................ 63 Abbildung 50: Auto Comment Tool der IDE .......................................................................................... 64 Abbildung 51: Fehler in der VM von SUN ............................................................................................. 65 Abbildung 52: Klassendiagramm des User Interfaces .......................................................................... 66 Abbildung 53: Source Code eines Formulares...................................................................................... 67 Abbildung 54: Screenshot eines Formulares ........................................................................................ 67 Abbildung 55: Screenshot der Optionen ............................................................................................... 67 Abbildung 56: Screenshot Result Forms............................................................................................... 68 Abbildung 57: Screenshot mit Exit Button ............................................................................................. 68 Abbildung 58: STDOUT File vom PDA Emulator .................................................................................. 68 Abbildung 59: Kommunikationsweg Palm Quelle: [Funknetz]............................................................... 69 - Seite 5 - Einleitung PDA to IT-Workflow (P2W) Abbildung 60: Beispiel einer Internetverbindung................................................................................... 70 Abbildung 61: Screenshots der Internetverbindung .............................................................................. 70 Abbildung 62: Kommunikationsablauf ................................................................................................... 71 Abbildung 63: persistente Speicherung................................................................................................. 71 Abbildung 64: Hilfsvektor für den Speicherzugriff ................................................................................. 72 Abbildung 65: Generierung des Hilfsvektors ......................................................................................... 72 Abbildung 66: Navigation von P2W....................................................................................................... 73 Abbildung 67: Kompilierungsvorgang.................................................................................................... 74 Abbildung 68: P2W auf Handys ............................................................................................................ 75 Abbildung 69: Palm OS Emulator.......................................................................................................... 76 Abbildung 70: Anwendung von Mocha PPP.......................................................................................... 77 Abbildung 71: Websphere Studio.......................................................................................................... 78 Abbildung 72: Userverwaltung............................................................................................................... 79 Abbildung 73: Datenbankverbindung .................................................................................................... 79 Abbildung 74: SQL Abfrage................................................................................................................... 80 Abbildung 75: Verbindungsaufbau zu Domino Datenbanken ............................................................... 81 Abbildung 76: Die verschiedenen Kategorien im WfMS ....................................................................... 82 Abbildung 77: Eigenschaften eines Notes Dokumentes ....................................................................... 83 Abbildung 78: Konfiguration mit dem web.xml ...................................................................................... 85 Abbildung 79: File Struktur auf dem Server .......................................................................................... 86 Abbildung 80: Administrationskonsole .................................................................................................. 87 Abbildung 81: Konfiguration der J2ME VM ........................................................................................... 88 Abbildung 82: Konfiguration P2W Applikation....................................................................................... 88 Abbildung 83: Webclipping von Palm Quelle: zum Palm m505 mitgelieferte CD ................................. 89 Abbildung 84: Grundsätzlicher Ablauf der P2W Applikation ................................................................. 90 Abbildung 85: Pull-Down Menüs ........................................................................................................... 90 Abbildung 86: Workflow downloaden .................................................................................................... 91 Abbildung 87: Login............................................................................................................................... 91 Abbildung 88: Fehlermeldung beim Loginvorgang................................................................................ 92 Abbildung 89: Auftragsliste.................................................................................................................... 92 Abbildung 90: Auftragdetails.................................................................................................................. 92 Abbildung 91: Auftrag übernehmen....................................................................................................... 92 Abbildung 92: Workflow editieren.......................................................................................................... 93 Abbildung 93: Lokale Aufträge .............................................................................................................. 93 Abbildung 94: Funktionen...................................................................................................................... 93 Abbildung 95: Anzahl synchronisierbarer Aufträge ............................................................................... 93 Abbildung 96: Workflow synchronisieren .............................................................................................. 94 Abbildung 97: Synchronisation .............................................................................................................. 94 Abbildung 98: Synchronisationsmeldung .............................................................................................. 94 Abbildung 99: Prognose von J2ME Quelle: [Zelos]............................................................................... 96 Abbildung 100: ODBC Datenquellen................................................................................................... 104 Abbildung 101: ODBC Administrator................................................................................................... 104 Abbildung 102: Datenbank .................................................................................................................. 105 Abbildung 103: User und Passwort der Datenbank ............................................................................ 105 Abbildung 104: Konfiguration des Palm Emulators............................................................................. 106 Abbildung 105: Mocha PPP Screenshot ............................................................................................. 107 Abbildung 106: Konfiguration des Palms für Mocha PPP ................................................................... 107 - Seite 6 - Einleitung PDA to IT-Workflow (P2W) Tabellenverzeichnis: Tabelle 1: Hardwareeigenschaften Quelle: [Topley 2002] .................................................................... 24 Tabelle 2: Anforderungen an die Software Quelle:[Topley 2002] ......................................................... 24 Tabelle 3: Headerinformationen eines Requests .................................................................................. 29 Tabelle 4: HTTP Response ................................................................................................................... 30 Tabelle 5: Anwendungsfallbeschreibung HelloWorld............................................................................ 38 Tabelle 6: Workflow editieren und Details betrachten........................................................................... 48 Tabelle 7: Workflow Auswahl und Titelübersicht................................................................................... 48 Tabelle 8: Workflows synchronisieren................................................................................................... 49 Tabelle 9: Synchronisierbare Workflows anzeigen ............................................................................... 49 Tabelle 10: Einen Workflow downloaden .............................................................................................. 50 Tabelle 11: Login ................................................................................................................................... 50 Tabelle 12: Die Verbindung zum Server auf- oder abbauen................................................................. 51 Tabelle 13: Den Server stoppen............................................................................................................ 51 Tabelle 14: Den Server starten.............................................................................................................. 51 Tabelle 15: Parameter für die Datenbankverbindung ........................................................................... 80 Tabelle 16: Verbindungsparameter zum WfMS .................................................................................... 81 Tabelle 17: Verwendete Software ......................................................................................................... 83 Tabelle 18: Umgebungsvariablen.......................................................................................................... 84 Tabelle 19: Konfigurationsfile ................................................................................................................ 87 - Seite 7 - Einleitung PDA to IT-Workflow (P2W) Abstract: Die vorliegende Diplomarbeit wurde in Zusammenarbeit mit dem Praxispartner Ascom Informatik durchgeführt. In diesem Projekt wurde ein Prototyp erstellt, der ein bestehendes Workflow-Management-System (WfMS) erweitert. Erweitert in dem Sinne, dass das WfMS mit einem Portable Digital Assistant (PDA) benutzt werden kann. Der PDA kann von einem beliebigen Ort mit einem Handy via Internet Daten aus dem WfMS beziehen. Er kann diese Daten Offline bearbeiten und nach Belieben wieder mit dem System synchronisieren. Der User hat somit die Möglichkeit, Geschäftsdaten unabhängig von seinem Standort einzusehen. Der Prototyp soll sich genau gleich wie der bereits bestehende WfMS-Client verhalten. Der Prototyp kann von den Elektromonteuren eingesetzt werden, die in der Ascom die interne Telefonie betreuen. Die Wartung der internen Telefonie wird durch den bestehenden WfMS-Client gemanagt. Dem Elektromonteur wird mit diesem Prototyp ermöglicht, dass er orts- und zeitunabhängig Daten aus dem WfMS einsehen und bearbeiten kann. Die Administration der Userverwaltung ist durch ein Web-Interface gelöst. Die Userdaten werden in einer Datenbank gepflegt. Der PDA besitzt die Funktion eines Clients, welcher mit einem Servlet kommuniziert, das in einer Tomcatumgebung eingebettet ist. Das Servlet sowie die Administrationskonsole werden durch ein XML-File konfiguriert. Das Servlet führt ein Logfile, welches die getätigten Aktionen festhält. This thesis was realised in co-operation with the IT department of Ascom. In this project an existing workflow-management-system (WfMS) was extended by a prototyp. The extension supports the use of the WfMS with a portable digital assistant (PDA). The mobile PDA, located anywhere allows transfering data from a portable telephone via internet to the WfMS. After processing the data off-line the PDA provides a synchronization with the system. Hence, the user has got the possibility to have a look at business data independently of his location. The same behaviour of the PDA and the existing WfMS client ensures the transaction without difficulties. The prototype can be used by the electrical mechanics managing the internal telephone network of the Ascom. The existing WfMS maintains the internal telephone network. The electrical mechanic is able to process data of the WfMS independently of location and time. The user administration is solved by a webinterface. The user data is maintained in a data base. The PDA has got the function of a client communicating with a servlet embedded in a tomcat environment. The servlet as well as the administration console is configured by a XMLfile. The servlet saves all activities in a log file. Schlüsselwörter / Keywords: Workflow, Workflow-Management-System (WfMS), Portable Digital Assistent (PDA), Java 2 Micro Edition (J2ME), Java Servlets, Handy, Lotus Notes, Client-Server, XML, Java Server Pages (JSP) - Seite 8 - Einleitung PDA to IT-Workflow (P2W) 1. Einleitung «The future is mobile», so der Trend in der Kommunikationsbranche. PDAs und Handys verschmelzen immer mehr zu einem Gerät. Das Projekt das in dieser Arbeit beschrieben ist, soll eine Grundlage schaffen, um sich vom Ascom WfMS, unabhängig vom Standort und ungebunden an das Intranet, Informationen zu beschaffen und diese nutzen zu können. 1.1. Problemstellung Die Ascom Informatik unterhält ein Workflow-Management-System (WfMS), welches Bestellvorgänge und Anschlussänderungen im Bereich der internen Telefonie managt. Die Ascom beschäftigt in der Informatikabteilung rund 20 Elektromonteure. Diese erledigen zeitweise in der betriebseigenen Werkstatt Reparaturarbeiten. Neben Reparaturarbeiten sind die Elektromonteure jedoch den grössten Teil ihrer Arbeitszeit ausserhalb des Hauses. Diejenigen Elektromonteure, welche im Bereich der internen Telefonie arbeiten, müssen bei einem Büroumzug vor Ort die Telefone ersetzen. Dabei ist die telefonische Erreichbarkeit des Umziehenden zu gewährleisten. Dies bedeutet, dass ein Elektromonteur beim alten Standort das Telefon entfernt und derselbe – oder auch ein anderer – Elektromonteur das Telefon an einem neuen Ort wieder installiert. Dieser Arbeitsablauf beginnt mit dem Stellen eines Antrages für ein neues Telefon und endet mit der Installation des Telefons – ein Verlauf, der ideal in einem elektronischen Workflow abgebildet werden kann. Dies wurde bei der Ascom Informatik auch so umgesetzt und ist Bestandteil des vorhanden WfMS der Ascom. Die Arbeit der Elektromonteure soll deutlich vereinfacht werden. Bis zum heutigen Zeitpunkt mussten die Elektromonteure ihre Aufträge immer mit dem WfMS-Client Lotus Notes beziehen und abschliessen. Dies mussten sie von einem am Intranet angeschlossenen Computer aus erledigen. PDA Workflow Sendemast Server Abbildung 1: Systemübersicht Genau dieser Arbeitsablauf soll mit dem Projekt «PDA to IT-Workflow» (P2W) vereinfacht werden. Der Elektromonteur soll seine Workflows unabhängig von seinem Standort betrachten und bearbeiten können. P2W soll diese Aufgabe übernehmen. Der Elektromonteur soll mit PDA und Handy die notwendigen Daten des Workflows beziehen können. - Seite 9 - Einleitung PDA to IT-Workflow (P2W) 1.2. Zielsetzung Die Diplomarbeit sollte das bestehende WfMS mit einem neuen Medium erweitern. Es sollte möglich sein, dass Daten vom WfMS mit einem Portable Digital Assistant (PDA) gelesen werden können. Mit einem PDA und einem Handy wird eine Verbindung zu einem Server aufgebaut. Dieser Server leitet die Anfragen vom PDA an das WfMS weiter und sendet die vom WfMS erhaltenen Daten zum PDA zurück. Die Daten auf dem PDA sollten in einer ähnlichen Form gezeigt werden, wie sie im WfMS auf dem Client (Lotus Notes) dargestellt werden. Der Anwender sollte die erhaltenen Daten auf seinem PDA speichern und auch offline bearbeiten können. Sind die Daten einmal bearbeitet, sollte er die Möglichkeit haben, die Daten wieder mit dem WfMS zu synchronisieren. Anders gesagt: Der Server sollte die entsprechenden Daten dem WfMS schicken und die nötigen Aktionen unternehmen, welche bei einer Manipulation der Workflowdaten auf dem herkömmlichen Client unternommen werden würden. Ein User muss sich beim Systemverantwortlichen anmelden können. Dieser wird ihm ein entsprechendes Konto zur Benutzung des P2W einrichten. Nun kann sich der Elektromonteur mit seinem PDA (P2W-Client) auf dem P2W-Server anmelden. Der Server sollte die Autorisierung überprüfen und ihm die offenen Aufträge in einer Liste aufzeigen. Beim Anklicken der verschiedenen Aufträge sollen die Details ersichtlich und bearbeitbar sein. Alle Aufträge, die einmal übernommen wurden, sollen auch offline bearbeitet werden können. Die Abbildung 1 zeigt nur eine grobe Übersicht der Architektur von P2W. Die Diplomarbeit sollte eine Entscheidungsgrundlage bilden, anhand deren entschieden werden kann, ob der erstellte Prototyp weiterentwickelt und zu einem späteren Zeitpunkt eingesetzt werden wird. Die erarbeiteten Erkenntnisse mit dem WfMS sollten zeigen, ob und wie ein externer Client mit dem WfMS arbeiten kann. Im Laufe des Projektes wurde die Abteilung «Webapplication» der Ascom Informatik geschlossen. Wo dieser Entscheid Einfluss auf das Projekt hat, wird speziell darauf hingewiesen. 1.3. Vorgehensweise In einem ersten Arbeitsabschnitt wurde das bestehende WfMS analysiert. Die für das Projekt relevanten Workflows des WfMS wurden herausgesucht. Die Entwicklung des Projekts wurde mittels Analyse, Design und Implementation angegangen. In der Analyse wurden die Use Cases, deren Beschreibungen und die Aktivitätsdiagramme erstellt. In der Designphase wurden die Systemarchitektur festgelegt und die Sequenzdiagramme gezeichnet. Alle erstellten Diagramme wurden in der «Unified Modelling Language» (UML) gezeichnet (siehe Kapitel 2.5.2) . Analyse- und Designphase bildeten die Basis für die Implementation, welche am Schluss erfolgte. Das Projekt wurde vollumfänglich in Java (siehe Kapitel 2.3.1) programmiert. - Seite 10 - Grundlagen PDA to IT-Workflow (P2W) 2. Grundlagen Der Grundlagenteil festigt die theoretische Basis zum Verständnis des Projekts. Der erste Teil dieses Kapitels beschäftigt sich mit Workflows und Workflow-Management-Systemen. Bei beiden Punkten wird Wert auf eine präzise Definition und Erklärung gelegt. Die vorhandenen Diagramme sind alle mit der UML Notation erstellt worden. Mit einfachen Beispielen wird die Theorie dem Leser verständlicher gemacht. Ein weiterer Teil der Theorie befasst sich mit der Thematik von Java auf mobilen Geräten. Dieser Teil behandelt Grundsätzliches zur Java Virtual Machine (VM) auf einem Portable Digital Assistant (PDA), sie wird anhand eines einfachen Beispiels erklärt. Danach werden Grundsätze des Internets und von Servlets aufgezeigt. Der letzte Teil dieses Kapitels beschäftigt sich mit den in diesem Projekt verwendeten Notationen. Es wird erklärt, wie UML-Diagramme verwendet, gezeichnet und gelesen werden. Ein Schwerpunkt in diesem letzten Teilkapitel ist der Zusammenhang zwischen den verschiedenen Diagrammen. Auch hier hilft ein einfacheres Beispiel zum Verständnis. 2.1. Workflows Um Workflow-Management-Systeme (WfMS) begreifen zu können, muss man sich zuerst mit den Eigenschaften von Workflows beschäftigen. Wenn der Begriff Workflow nicht klar verständlich ist, macht es wenig Sinn WfMS zu betrachten. Die Definition von Workflows sollte ein wenig Licht ins Dunkle bringen: 2.1.1. Definition Workflow: «Ein Workflow ist eine zum Teil automatisiert − von einem Workflow-Management-System gesteuert − ablaufende Gesamtheit von Aktivitäten, die sich auf Teile eines Geschäftsprozesses oder andere organisatorische Vorgänge beziehen. Ein Workflow besteht aus Abschnitten, so genannte Subworkflows, die weiter zerlegt werden können. Er hat einen definierten Anfang, einen organisierten Ablauf und ein definiertes Ende.» [Böhm 1997, Seite 3] Workflow-Management: «Ein Workflow-Management umfasst alle Aufgaben, die bei der Modellierung, Spezifikation, Simulation sowie bei der Ausführung und Steuerung der Workflows erfüllt werden müssen» [Borghoff 2000, Seite 346] Workflow-Management-System: «Dies ist ein aus mehreren Werkzeugen bestehendes System, das die Aufgaben des Workflow-Management durch Softwareausführung unterstützt» [Borghoff 2000, Seite 346] Process: A formal view of a business process, represented as a coordinated (parallel and/or serial) set of process activities that are connected in order to achieve a common goal. [Fischer 2003] Business Process: A set of one ore more likes procedures or activities which collectively realise a business objective or policy goal, normally within the context of an organizational structure defining functional roles and relationships. [Fischer 2003] Activity: A description or a piece of work that forms one logical step within a process. An activity may be a manual activity, which does not support computer automation , or a workflow (automated) activity. A workflow activity requires human and/or machine resources to support process execution; where human resource is required an activity is allocated to a workflow participant. [Fischer 2003] Workflow Management : Automation of procedures or workflows where documents, information or tasks are passed from one participant to another in a way that is governed by rules or procedures. [Fischer 2003] Workflow Management System: A system that defines, creates and manages the execution of workflows through the use of Software, running on one or more workflow engines, which is able to interpret the Process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications. [Fischer 2003] - Seite 11 - Grundlagen PDA to IT-Workflow (P2W) Process Definition: The representation of a business process in a form which support automated manipulation, such as modelling, or enactment by a workflow management system, The process definition consists of a network of activities and their relationships, criteria to indicate the start and termination of the process, and information about the individual activities, such as participants, associated IT applications and data, etc. [Fischer 2003] Process Instance: The representation of a single enactment of a process. [Fischer 2003] Gemäss diesen Definitionen ist ein Workflow nichts anderes als eine Folge von Aktivitäten. Das Beispiel im Kapitel 2.1.3 zeigt den Ablauf eines einfachen Geschäftsprozesses. Workflows können mit Flussdiagrammen oder mit UML dargestellt werden. Die Ascom stellt ihre Workflows mittels Flussdiagrammen dar (siehe hierzu die Abbildung 33). Werden Workflows mit UML visualisiert, so eignen sich die Aktivitätsdiagramme am besten. 2.1.2. Wie ein Prozess modelliert wird Modellierung von Prozessen dient der Verständlichkeit und der Übersicht der Geschäftstätigkeiten. Anhand von Modellen, können Optimierung, Vereinfachungen und Änderungen von Abläufen einfacher erarbeitet werden. Die Frage stellt sich nun, wie ein Prozess modelliert werden kann. Um Prozesse zu modellieren, werden der Übersicht halber grafische Darstellungsformen gewählt. Diese sind um ein Vielfaches verständlicher als Tabellen und Beschreibungen. Ebenso ist bei einer grafischen Darstellung die Normierung einfacher. Einzelne Prozessschritte werden mit einem Rechteck dargestellt. Die verschiedenen Schritte werden mit Pfeilen verbunden, welche den Ablauf klären. Eine parallele oder sequentielle Abarbeitung kann anschaulich dargestellt werden. Wichtig ist bei der Modellierung von Prozessen, dass die Unternehmensstruktur und deren Organisation mitberücksichtigt werden. Diese Struktur bestimmt oft den Laufweg eines Dokumentes oder einer Bestellung1. Um ein Modell zu erstellen, bestehen in der Regel zwei Ansätze: Man verwendet die «Bottom-Up» oder die «Top-Down» Methode. Bei der «Top-Down» Methode ist die Aufgabe des Unternehmens der Startpunkt. Bei «Bottom-Up» hingegen die effektive Aktivität. Wie bei vielen Modellierungen kann auch hier nicht gesagt werden, welche der beiden Methoden die passende ist. In der Regel empfiehlt sich eine Mischform beider Methoden. Im Folgenden werden die wichtigsten Modellierungsschritte aufgezeigt und die wichtigsten Punkte erläutert. [Böhm 1997] - Bestimmung des Auslösers. Zustandsänderung eines Objektes. Zum Beispiel das Aufgeben eines Auftrages oder das Genehmigen eines solchen Auftrages. Festlegung der Start- und Endpunkte. Zustandsänderungen in der Datenbasis. Hier sollte die Frage geklärt werden, auf welchen Zustand von Daten aufgebaut wird und wie diese Daten am Ende der Abarbeitung aussehen werden. Ermittlung der fachlichen Aktivitäten. Reihenfolge der Aktivitäten. Aktivitäten einfügen, die verwendet werden, um Ortsveränderungen miteinzubeziehen. Ebenso sollte an dieser Stelle der Faktor Zeit einbezogen werden. Zuerst wird der Normalablauf beschrieben, dann sollten Sonderfälle und verschiedene Variationen behandelt werden. Modellierung der Ausnahmen. Die Modellierung sollte nach Möglichkeit in einem objektorientierten Ansatz erfolgen. Komponenten, die mehrmals verwendet werden können, müssen identifiziert und richtig eingesetzt werden. Die «Wiederverwendbarkeit» verringert den Modellierungsaufwand. Die Fehlerquote sowie der Bereinigungsaufwand dieser Fehler sinken dementsprechend. 1 Oft muss eine Bestellung vom Vorgesetzten genehmigt werden, daher muss zur Modellierung das Organigramm berücksichtigt werden. - Seite 12 - Grundlagen PDA to IT-Workflow (P2W) Die Modellierung sollte so erfolgen, dass wenn sich das Unternehmensmodell ändert (z.B. Änderung im Organigramm), dies auch automatisch einen Einfluss auf die Modellierung und den Ablauf des Prozesses hat. Dies benötigt eine regelmässige Synchronisation mit den Unternehmensdaten. Dieser Schritt ist enorm wichtig, denn er kann einen gewaltigen Zeitaufwand auslösen, wenn das Unternehmen umstrukturiert wird, und dem Abgleich mit den Unternehmensdaten zuwenig Gewicht gegeben wurde. 2.1.3. Ein Beispiel Betrachten wir einen einfachen Geschäftsprozess eines kleineren Unternehmens: Ein Mitarbeiter braucht ein spezielles Bauelement für einen bestimmten Auftrag. Er wählt die benötigte Komponente aus einem branchenüblichen Katalog heraus und bestellt diese. Da die Firmenstruktur eine Genehmigung vom Vorgesetzten für jede Bestellung verlangt, muss der Mitarbeiter ihm diese Bestellung zuerst zum Visieren vorlegen. Der Vorgesetzte kann nun die Bestellung genehmigen oder, falls er ein alternatives oder stärker präferiertes Produkt kennt, diese mit dem Vermerk des alternativen Produktes zum Mitarbeiter zurückweisen. Der Mitarbeiter kann mit den Angaben des Vorgesetzten prüfen, ob das alternative Produkt die Spezifikationen seines Auftrages erfüllt. Dieser Vorgang kann sich beliebig wiederholen. Ist der Vorgesetzte mit dem Bestellungsvorschlag des Mitarbeiters einverstanden, kann er die Bestellung genehmigen, und diese wird zum Beispiel vom Postboten auf die Post gebracht oder vom Sekretariat mit anderen Bestellungen zusammen verschickt. Die Abbildung 2 zeigt diesen Ablauf in einem UML-Aktivitätsdiagramm. Bestellen eines Artikels Vorgesetzter entscheidet über Bestellung Bestellung zurückgewiesen Bestellung akzeptiert Bestellung wird verschickt Abbildung 2: Ablauf eines einfachen Geschäftsprozesses Die Abbildung 2 zeigt die verschiedenen Aktivitäten des Geschäftsprozesses «Bestellen». Der Ablauf eines solchen Prozesses wird in einem WfMS als Workflow abgebildet. Dieser Vorgang kann mit Hilfe eines Workflow-Management-Systems (WfMS) optimiert respektive automatisiert werden. Die Bestellformulare sind in digitaler Form vorhanden. Der Mitarbeiter kann ein solches Formular an seinem Arbeitsplatz ausfüllen und dieses an seinen Vorgesetzten per E-Mail verschicken. Dieser kann das Formular − im Falle einer Genehmigung der Bestellung − an den Postboten oder an das Sekretariat weiterschicken. Im Falle einer Ablehnung der Bestellung kann der Vorgesetzte das Formular mit dem entsprechenden Verweis erweitern und an den Mitarbeiter zurückschicken. Alle Beteiligten in der Firma können den Status ihrer Bestellung zu jedem Zeitpunkt einsehen. Im Falle des beschriebenen Geschäftsprozesses mag es nicht gerade effizientsteigernd klingen, wenn man diesen Geschäftsprozess mit einem teuren WfMS optimiert. Es gibt aber viele Firmen, die ähnliche Geschäftsprozesse aufweisen, aber mehr Prozessbeteiligte haben. In solchen Fällen eignet sich ein WfMS. - Seite 13 - Grundlagen PDA to IT-Workflow (P2W) Prozesse in Firmen könnten folgendermassen optimiert werden: - Der Zustand des Ablaufes kann jederzeit und von allen Teilnehmern kontrolliert werden. Die Transparenz bezüglich der Auftragsabwicklung ist gewährleistet. Die Zuständigkeit ist klar definiert. Unklare Zuständigkeit ist ein häufig anzutreffendes Problem. Mittels einem WfMS kann dies weitgehend umgangen werden, da die Ablaufprozesse klar definiert wurden. Genauere Terminzusagen ergeben sich aus den letzten zwei Punkten. Ein Wechsel von Medien (Papier, Fax, Telefon, E-Mail) kann vermieden werden. Der Hauptverantwortliche (Manager) kann sich auf seine Tätigkeiten konzentrieren und muss nicht die laufenden Aufträge kontrollieren, um über deren Status Auskunft geben zu können. Diese Vorteile helfen dem Unternehmen, Arbeitsabläufe zu strukturieren und somit zu optimieren. Ein weiterer Vorteil der Untersuchung von Geschäftsprozessen hinsichtlich deren Automation besteht darin, dass diese neu strukturiert und verbessert werden können. Diese Optimierungen können mit einem WfMS erreicht werden. - Seite 14 - Grundlagen PDA to IT-Workflow (P2W) 2.2. Workflow-Management-Systeme (WfMS) Die Grundlagen und Darstellungsmöglichkeiten eines Workflows sind im vorangegangenen Kapitel aufgezeigt worden. Jetzt soll dem Leser in einfacher Weise die Handhabung von Workflows näher gebracht werden. Zuerst werden die Ziele, die den Einsatz von WfMS rechtfertigen, aufgezeigt. Danach folgt eine Übersicht der gängigsten Definitionen. Der dritte und der vierte Teil erklärt die Standardisierung von WfMS. Der fünfte Teil widmet sich der Klassifizierung der WfMS. 2.2.1. Ziele eines Workflow-Management-Systems (WfMS) In der heutigen Zeit werden in Unternehmen vermehrt Informationssysteme zur Optimierung von Geschäftsabläufen eingesetzt. So werden auch WfMS zu diesem Zweck eingesetzt. Diese Management Systeme konzentrieren sich vor allem auf die Steuerung der Geschäftsprozesse. Ziel eines WfMS ist es, solche Aktivitäten möglichst optimal miteinander zu verbinden. Der Informationsfluss wird mit einem WfMS automatisiert, was die Weitergabe, die Bearbeitung und der Abschluss von Prozessen innerhalb eines Unternehmens (auf strategischer, funktionaler und operativer Ebene) deutlich erleichtert. Workflow-Systeme verkürzen in der Regel die Zeit zwischen den einzelnen logischen Schritten, da die nächste Stelle die erforderlichen Informationen automatisch erhält und nicht zuerst noch Informationen zu der zu bearbeitenden Aktivität zusammentragen muss. Das Management-System verteilt die richtige Arbeit zum richtigen Zeitpunkt an den richtigen Mitarbeiter, dieser erhält augenblicklich alle notwendigen Informationen, Dokumente und Hinweise. Werden Workflow-Systeme richtig angewendet, erreicht ein Unternehmen [Borghoff 2000]: - Klar prozessorientiertes Arbeiten Verminderung von Fehlerquellen Qualitätssteigerung Produktivitätssteigerung Kostensenkung Erhöhung der Informationsverfügbarkeit Eine Erhöhung der Informationsverfügbarkeit bringt nicht nur einen psychologisch positiven Effekt, sondern kann auch zu einer Produktivitätssteigerung führen. Information ist das einzige Gut, deren Wert sich beim Teilen steigert. Wie schon erwähnt, ist der Einsatz von WfMS nur sinnvoll, wenn die zu verarbeitenden Vorgangstypen eine geringe Komplexität und eine hohe Strukturierbarkeit aufweisen. Die Universität Linz verglich zwei verschiedene Vorgangstypen in Bezug auf die Durchlaufzeit: - Seite 15 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 3: Verschiedene Durchlaufzeiten Quelle: [Nohr] Erstaunlich ist, dass die Liegezeit des mit einem WfMS um rund 50% grösser ist als ohne WfMS. Wird aber die totale Durchlaufzeit betrachtet, so schneidet ein WfMS deutlich besser ab. Die längere Liegezeit könnte natürlich auch durch Unachtsamkeiten der Mitarbeiter hervorgerufen werden. Liest ein Mitarbeiter nicht umgehend die neu eintreffenden Mails, so können sich schnell grössere Verzögerungen ergeben. Ein weiterer interessanter Vergleich bietet die Betrachtung der Ziele und deren Annäherung. Abbildung 4: Ziele − Zielerreichung Quelle: [Nohr] - Seite 16 - Grundlagen PDA to IT-Workflow (P2W) Die Abbildung 4 zeigt eine deutliche Steigerung der bewerteten Parameter. Die Kostenreduktion zeigt, dass es sich durchaus lohnen kann, in ein WfMS zu investieren. Dies natürlich immer mit dem Vorbehalt, dass das Problem dafür geeignet sein muss. Ein WfMS eignet sich für Prozesse, die eine hohe Strukturierung aufweisen und eine geringe Komplexität haben. Werden WfMS für komplexe Probleme verwendet, so erreichen diese Systeme oft das Gegenteil. 2.2.2. Die Workflow Management Coalition (WfMC) Die Workflow Management Coalition (WfMC) ist eine ähnliche Vereinigung wie die Object Management Group2 (OMG). Beide Organisationen haben sich zum Ziel gesetzt Standards auf gewissen Informatikgebieten zu definieren. Die WfMC beschäftigt sich mit dem Festlegen von Standards für Workflow Management Systeme [WfMC]. Die Organisation gibt jedes Jahr ein Handbuch für Workflow Management Systeme heraus [Fischer 2003]. Die WfMC setzte sich im Jahre 1998 aus mehr als 200 Mitgliedern zusammen. Mitglieder sind u.a. Xerox, HP, IBM, Microsoft und SAP. Die Vereinigung unterhält drei Themengruppen, welche sich mit unterschiedlichen Bereichen befassen: - - Workflowreferenzmodell Definition der Workflow Terminologie Definition der Schnittstellen zwischen den einzelnen Komponenten des Referenzmodelles. Diese fünf Schnittstellen sind standardisiert und definieren die Datenaustauschformate (Application Programming Interface) 2.2.3. Das Workflow Referenzmodell der WfMC Die WfMC erarbeitete das Referenzmodell, welches die Workflowsystem-Architektur modelliert. Das Modell definiert Merkmale, Funktionen, Eigenschaften und Schnittstellen (Interfaces) eines Systemes. Ebenso werden die Systemgrenzen und Schnittstellen beschrieben. Abbildung 5 Referenzmodell gemäss WfMC Quelle: [WfMC] Die Schnittstelle 1 (in der Abbildung 5 mit «Interface 1» bezeichnet) dient zum Austausch von Workflow-Beschreibungen, die von der Ablaufkomponente (WF Enactment Service) ausgeführt werden sollen. Diese Schnittstelle ist in der Regel in einer so genannten «Workflow Process Definition Language» (WPDL) implementiert. Systementwickler verwenden das Application Programming 2 Siehe Kapitel 2.5.1 - Seite 17 - Grundlagen PDA to IT-Workflow (P2W) Interface (API) zur Überführung der Workflow Spezifikation in das gewünschte Workflow System. Ebenso dient diese API zur Konvertierung von der internen in die externe WPDL Darstellung. Die Schnittstelle 2 ermöglicht dem User eine Interaktion mit dem Workflowsystem. Client Anwendungen laufen unabhängig und werden vom Anwender kontrolliert. Das «Workflow Application Programming Interface» (WAPI) baut eine Verbindung zu Workflowkomponenten (Subworkflows) auf, um die Ausführung/Auslösung von Workflows zu steuern und um den Status von Workflows abzufragen. Die Schnittstelle 3 arbeitet ohne Interaktion eines Anwenders. Das WorkflowManagement-System kann durch einen internen Event eigene Applikationen starten, ausführen und kontrollieren. Natürlich können WfMS auch untereinander verbunden und gekoppelt werden. Die Verbindung zu externen Management Systemen regelt die Schnittstelle 4. Zu guter Letzt haben wir noch die fünfte Schnittstelle, welche ausschliesslich für administrative Zwecke wie Monitoring und Datenaustausch zwischen Workflowkomponenten gedacht ist. Der «Workflow Enactment Service» welcher im Zentrum der Abbildung 5 zu sehen ist, besteht aus einer oder mehreren Workflow Engines. Sie bildet die Runtime-Umgebung für die Workflows. Es ist die Komponente, die die WorkflowDefinitionen interpretiert und den Arbeitsablauf speichert. Die Applikationen und Anwender-Tools sind die so genannten Clients, mit denen der Workflow bearbeitet wird. [Nohr] 2.2.4. Klassifizierung von Workflow-Management-Systemen (WfMS) Um sich im breiten Angebotsfeld der WfMS zurechtzufinden, bedarf es einer Klassifizierung der verschiedenen Systeme. Workflowsysteme lassen sich nach gewissen Kriterien unterscheiden. Zur Darstellung dieser Unterschiede wird häufig das 3K-Modell verwendet. Generell kann gesagt werden, dass WfMS Prozesse im Bereich Kommunikation, Koordination und Kooperation unterstützen, daher der Name 3K-Modell. Abbildung 6: Das 3K-Modell Quelle: [Nohr] Der ideale Punkt für den optimalen Arbeitsablauf ist in der Abbildung 6 in der Mitte zu finden. Er bedeutet ein Optimum an Kommunikation, Kooperation und Koordination. Für einen Geschäftsprozess ist ein gemeinsamer Informationsraum im herkömmlichen Sinne jedoch kaum realisierbar. WfMS werden gemäss [Nohr] nach zwei Kriterien klassifiziert: Einerseits auf Grund der Struktur der modellierten Geschäftsprozesse, andererseits nach dem Architekturmodell. - Seite 18 - Grundlagen PDA to IT-Workflow (P2W) Die erste Einteilung beschäftigt sich hauptsächlich mit der Analyse der Organisation und der vorhandenen Prozesse. Die Organisation sowie die Prozesse werden in den Workflows abgebildet und strukturiert. Erst gut modellierte und strukturierte Modelle lassen sich problemlos elektronisch unterstützten. Bei dieser Einteilung kann von so genannten «Push-» oder «Pull-Systemen» gesprochen werden. Push-Systeme steuern die Abläufe aktiv. Das System gibt dem Anwender die benötigten Informationen automatisch. Die Pull-Systeme verhalten sich im Gegensatz dazu eher passiv. Der Anwender muss sich die Informationen selber beschaffen oder die nötigen Aktionen aus eigener Initiative starten. Die Aufgabe der Steuerung liegt beim Anwender. WfMS werden in der Regel auf Grund des Prozess-Strukturierungsgrad und der Prozess-Frequenz unterschieden. Abbildung 7: Klassifikation von WfMS Quelle: [Nohr] Auf dieser Basis werden WfMS in drei Klassen aufgeteilt. - Collaborate-WfMS Produktions-WfMS Ad-hoc-WfMS Diese Klassen bestimmen demnach auch das Einsatzgebiet der verschiedenen WfMS. Standardmässig wird noch eine weitere Klasse verwendet, diese basiert hauptsächlich auf elektronischer Formularbearbeitung und wird «Administrations-WfMS» genannt. In der «IT-Welt» wird oft von einem so genannten «low-cost/low-volume»-Produktions-WfMS gesprochen. Die vier WfMS können in einem Koordinatensystem mit den Achsen «Wertschöpfungsgrad» und «Wiederholungsgrad» dargestellt werden. Abbildung 8: Die vier WfMS Klassen Quelle: [Nohr] - Seite 19 - Grundlagen PDA to IT-Workflow (P2W) Die Einsatzgebiete der WfMS: [Nohr] - - - Produktions-WfMS: Das Einsatzgebiet hierfür sind stark strukturierbare und genau geregelte Abläufe, die viele Arbeiter unternehmensweit einbeziehen. Das WfMS übt in diesem Falle eine aktive Rolle bei der Steuerung der Prozesse. Die Unternehmensdaten wie Ablauf- und Aufbauorganisation ist dem System hinterlegt. Beispiele: SAP Business Workflow, Staffware, Flowmark (IBM). Collaborate-WfMS: Der Schwerpunkte dieser Systeme liegt bei gruppenorientierten Aufgaben, wie zum Beispiel Produkteentwicklung. Teile der Abläufe werden fix definiert, es sind aber noch flexible Eingriffe in das System möglich. Beispiele: Enterprise Workflow, InConcert, Team WARE Flow,... Ad-hoc-WfMS: Ihr Einsatz ist dort zu finden, wo sich Prozesse häufig ändern oder wo Prozesse relativ wenig verwendet werden. Beispiele: Keyflow, Ensemble,... Administrations-WfMS: Sie unterstützten sowohl wohlstrukturierte wie auch wenig strukturierte Prozesse. Da der Wertschöpfungsgrad und die Anforderung an die Durchlaufzeiten klein sind, wurden bei diesen Systeme diverse Funktionen zur Unterstützung von Prozessen weggelassen. Die zweite Einteilung unterscheidet Workflowsysteme anhand des Kontroll- und Informationsflusses: [Nohr] - - - E-Mail basierend: Dieses Modell eignet sich gut um sogenannte Umlaufmappen abzubilden. Die E-Mails werden von einer Stelle an die nächste geschickt. Dieses System bietet aber keinen eigentlich Einblick in den Arbeitsablauf, da die E-Mails nur von Punkt A nach Punkt B geschickt werden, ohne dass zum Beispiel Punkt C Kenntnis vom Stand der Arbeit hat. Der aktuelle Status ist in diesem Falle nicht transparent. Gemeinsame Datenbank: Die Ablage der Formulare erfolgt auf einer gemeinsame Datenbank. Bei jedem Zugriff auf die Datenbank wird ein lokales Replikat (Kopie) erstellt. Dieses System hat den Nachteil, dass die Datenbank einen Flaschenhals bildet. Ebenso ist der Zugriff auf die Datenbank für andere Mitarbeiter eingeschränkt. Die Transparenz des Auftragstatus ist in diesem Falle auch nicht für jeden Mitarbeiter gegeben. Client-Server-Datenbank: Bei diesem System überwachen mehrere Server die Ausführung eines Workflows und verwalten die Dokumente und Aktivitäten. In diesem System ist die Transparenz des Auftragstatus am grössten. Vielfach werden WfMS mit einer reinen Groupware verglichen. Dieser Vergleich ist aber in keiner Art und Weise korrekt. Groupware beinhaltet einen unstrukturierten Ablauf, respektive es finden keine kontrollierten Arbeitsübergaben statt. Ein Groupeware System kann vereinfacht als Fileserver betrachtet werden, bei dem jeder Entwickler Zugriff auf seine eigenen Daten hat sowie auf Daten von anderen Entwicklern, sofern diese freigegeben wurden. Dieser kurze Vergleich mit Groupware sollte veranschaulichen, dass WfMS eine gewisse Strukturierung voraussetzen, was bei Groupware nicht der Fall ist. Abbildung 6 zeigt, dass bei Groupeware die Kooperation am grössten ist. Bei WfMS steht allerdings die Koordination im Vordergrund. Das WfMS, welches in der vorliegenden Arbeit verwendet wird ist Lotus Notes. Lotus Notes wird als Produktions-WfMS verstanden. Wird der Kontroll- und Informationsfluss betrachtet, wird es bei den Client-Server Datenbanken eingestuft. - Seite 20 - Grundlagen PDA to IT-Workflow (P2W) 2.3. Java auf mobilen Geräten In den letzten Jahren wuchs der Verkauf von Handys und PDA stetig. Mit einer Abnahme dieses Trends ist nicht zu rechnen (siehe Abbildung 99). Die Nachfrage nach individuelleren Programmen für Handys und PDAs ist steigend. Einerseits versuchen grosse Hersteller, Kunden mittels integrierten Spielen zum Kauf ihrer Geräte zu bewegen, andererseits existiert die Forderung der Industrie nach programmierbaren Geräten. Aus diesem Grunde ist verständlich, dass Softwarehersteller wie SUN bestrebt sind, eine Plattform zu errichten, die das flexible Programmieren von Handys und PDAs möglich macht. Im Falle von SUN ist es nahe liegend, dass eine solche Lösung auf Java basiert. 2.3.1. Java Wird der Begriff Java verwendet, taucht die Assoziation mit der Programmiersprache Java auf. Dies ist allerdings nur bedingt korrekt. Wird von Java gesprochen, muss zwischen der Programmiersprache Java, der Java Virtual Machine (VM) und der Java-Plattform unterschieden werden. Die Programmiersprache Java ist eine objektorientierte Sprache, welche eine C-ähnliche Syntax aufweist. Sie ist eine mächtige Programmiersprache ohne viel Komplexität [Flanagan 2000, Seite 3]. Java ist unter Programmierern sehr populär geworden, davon ausgegangen wird, dass mit wenig Aufwand viel programmiert werden kann − was zum Teil auch stimmt. Die Arbeit mit Java ist auf alle Fälle angenehmer als das Programmieren von schwierigeren und wenig mächtigeren Sprachen wie C oder PERL. Die Programmiersprache Java gilt als plattformunabhängig. Dies bedeutet, dass eine Java Applikation auf einem Macintosh, einer SUN oder auf einem PC verwendet werden kann. Diese Eigenschaft bringt uns zum Java-Interpreter, respektive zu der so genannten Java Virtual Machine. Damit die Java Programme auf den verschiedenen Systemen auch verwendet werden können, müssen natürlich die systemabhängigen VMs vorhanden sein. Die Firma SUN [Sun] bietet VMs für das eigene System Solaris und für Microsoft Windows (95/98/NT) an. Sun hat drei Java-Plattformen auf dem Markt: - J2EE: Java 2 Enterprise Edition J2SE: Java 2 Standard Edition J2ME: Java 2 Micro Edition Die «Enterprise Edition» eignet sich für die Entwicklung von Unternehmensapplikationen. Die «Standard Edition» wird auf den PCs und auf Workstations verwendet. Zu Beginn des Jahres 2001 stellte SUN ihre Java 2 Micro Edition (J2ME) vor. Diese «Micro Edition» kann für eingebettete Systeme wie PDAs und Mobiltelefone verwendet werden. Die Abbildung 9 zeigt eine Übersicht der Anwendungsmöglichkeiten und Endgeräte der drei verschiedenen Java Plattformen. Empfehlungen und Spezifikationen zur Programmiersprache Java werden durch den «Java Community Process» (JCP) erstellt. Der JCP bietet auch so genannte «Java Specification Requests» (JSR) an. Diese Dokumente enthalten die Spezifikationen zu den entsprechenden Themen. Die JSR, die in dieser Arbeit verwendet wurden, befinden sich auf der beiliegenden CD oder können im Internet unter [Java Spec] bezogen werden. - Seite 21 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 9: Verschiedene Sparten der Java-Pakete Quelle: [J2ME] 2.3.2. Geräteeigenschaften und Konfiguration der VM Die Java 2 Micro Edition (J2ME) unterteilt die Geräte nach ihrer Leistungsfähigkeit (Prozessor), Anzeigeeigenschaften (Displaygrösse, Farben) sowie Eingabemöglichkeiten (Stift, Tastatur) in «Connected Limited Device Configuration» (CLDC) und «Connected Device Configuration» (CDC). Typische CLDC-Plattformen sind Mobiltelefone und PDAs, die etwa 512 kB Speicher aufweisen, batteriebetrieben werden und eine maximale Übertragungsrate von 9600 Bps aufweisen. Die CDCPlattform deckt Geräte ab, die zwischen den CLDC- und Desktop-Systemen liegen. In dieser Sparte befinden sich Bildtelefone, Spielkonsolen und «High-End»-PDAs. Die CDC weisen eine höhere Datenübertragungsrate als CLDC Geräte auf. Beide Konfigurationen erweitern die Java «Virtual Machine» (VM). Demnach verfügt ein PDA über eine andere VM als ein Bildtelefon. Da die Prozessoren von PDAs oft keine Fliesskommazahlen kennen, fehlen die Datentypen float und double in der PDA-VM. Die CLDC-Spezifikation definiert die Funktionen, die eine VM aufweisen muss. Es ist in diesem Falle dem Hersteller freigestellt, ob er eine bereits bestehende VM verwendet oder ob er eine eigene entwickelt. Aus diesem Grunde sind auch verschieden CLDC-VM erhältlich. Die folgende Auflistung zeigt die gängigsten VMs: - Kilobyte Virtual Machine (KVM) von SUN Waba Virtual Machine von Wabasoft Jbed Virtual Machine von Esmertec AG (CH) J9 von IBM Die vorliegende Arbeit beruht, wenn nicht auf eine andere VM verwiesen wird, auf der Virtual Machine von SUN. Der Grund, weshalb die vorliegende Arbeit mit dieser VM durchgeführt wurde, findet sich nicht direkt bei der VM, sondern eher bei der Entwicklungsumgebung (IDE), die von den Herstellern zur Verfügung gestellt wird. Die Entwicklungsumgebung von SUN überzeugte durch Einfach- und Übersichtlichkeit. Siehe hierzu auch Kapitel 3.4.1. - Seite 22 - Grundlagen PDA to IT-Workflow (P2W) 2.3.3. Profile Profile erweitern die Konfiguration der VM. Es werden zusätzliche, gerätespezifische Klassen zur Verfügung gestellt. Die Abbildung 10 zeigt den schematischen Aufbau der Java 2 Micro Edition. Abbildung 10: Aufbau der Java 2 Micro Edition Quelle: [Giguère 2000, Seite 23] In der Abbildung 10 wird das PDA Profile noch vom Mobile Information Device Profil (MIDP) getrennt. Der neuste Stand der Entwicklung ist, dass die beiden Profile zusammengelegt wurden und eigentlich kaum mehr eine gerätespezifische Unterscheidung machen. Vereinzelte Applikationen funktionieren grundsätzlich nur auf MIDP (vor allem Mobiltelefone) und nicht auf PDAs. Das PDAP und das Mobile Information Device Profile (MIDP) sind nahezu identisch - für die vorliegende Arbeit wurde allerdings das MIDP verwendet. Die restlichen Profile benötigen eine CDCKonfiguration, welche in dieser Arbeit nicht verwendet und auf die auch nicht weiter eingegangen wird. Das MIDP erweitert das CLDC um einige wichtige Klassen. Der Schwerpunkt in diesem Profil (siehe Abbildung 11) ist die grafische Darstellung, die Netzwerkanbindungen und Speichermöglichkeiten, welche im Kapitel 3.4 noch näher erklärt werden. Abbildung 11: Das Mobile Information Device Profile Quelle: [Topley 2002, Seite 45] - Seite 23 - Grundlagen PDA to IT-Workflow (P2W) In Abbildung 11 ist der Inhalt des MIDP (siehe folgendes Kapitel) grafisch dargestellt. Das MIDP beinhaltet noch so genannten «OEM» Code, dieser integriert Funktionen wie Installieren, Entfernen und Managen von MIDlets. Um das MIDP zu nutzen, müssen gewisse Soft- und Hardwarekriterien erfüllt werden. Diese Kriterien sind in den Tabellen 1 und 2 festgehalten. Hardware Speicher Display Eigenschaften mindestens 128 kByte Ram mindestens 96 Pixel breit und 54 Pixel hoch Bei einem PDA ist der Bildschirm 160*160 Pixel gross Tabelle 1: Hardwareeigenschaften Quelle: [Topley 2002] Hardware Display Tastatur Netzwerk Speicher Eigenschaften Es muss möglich sein, Zugriff auf den Bildschirm zu bekommen, als wäre der Bildschirm eine Bitmapgrafik Die Software muss Zugang zu den Eingaben des Users haben, damit das Programm auf bestimmte Eingaben reagieren kann In einigen Fällen ist eine Netzwerkverbindung nötig. Dies verlangt einen Zugriff auf die Netzwerksockets. Die Software muss Zugriff auf einen Speicherbereich haben, damit sie ihre Zustände speichern kann, falls das Gerät unabsichtlich ausgeschaltet wird. Tabelle 2: Anforderungen an die Software Quelle:[Topley 2002] 2.3.4. MIDlets Java Programme, die auf einem MIDP-Gerät ausgeführt werden, werden MIDlets genannt. MIDlets haben nicht einen klar definierten Startpunkt, so wie normale Java Programme eine «main» Methode haben. MIDlets sind wie Java Applets und werden in einer MIDlet-Umgebung (so genannte MIDlet Suite) verwaltet. Ein MIDlet wird von der abstrakten Klasse javax.microedition.MIDlet.MIDlet abgeleitet. Auf dem PDA wird nicht ein isoliertes MIDlet gestartet, sondern die MIDlet-Suite. In dieser Umgebung können dann die verschiedenen MIDlets ausgewählt und gestartet werden. Alle MIDlets in einer Suite verwenden denselben Speicherbereich. Es ist nicht möglich auf den Speicherbereich einer anderen Suite zuzugreifen. Ein MIDlet wird gemäss dem folgenden Skeleton3 aufgebaut: 3 Skeleton ist in diesem Falle ein «Codegerüst» - Seite 24 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 12: MIDP Skeleton Aus dem Code von Abbildung 12 ist zu entnehmen, dass sich ein MIDlet in drei verschiedenen «Zuständen» befinden kann: - startApp pauseApp destroyApp Wenn ein MIDlet gestartet wird, so befindet sich dieses im Zustand «Paused». Das MIDlet wird durch den User oder durch eine Aufforderung eines anderen MIDlets aktiviert. Taucht bei der Ausführung des Konstruktors ein Fehler (Exception) auf, so wird das MIDlet beendet. Den Lebenszyklus eines MIDlets zeigt die Abbildung 13. Abbildung 13: Lebenszyklus eines MIDlet Quelle: [Topley 2002, Seite 57] Da ein MIDP Gerät über knappe Ressourcen verfügt, sollte damit sparsam umgegangen werden. Nicht mehr verwendete Referenzen sollen unverzüglich gelöscht und freigegeben werden. Dies soll vor allem beim Beenden eines MIDlets beachtet werden. Ebenso soll vermieden werden, dass das MIDlet während eines Speichervorganges beendet wird. Das Codebeispiel aus Abbildung 14 verhindert einen Abbruch während eines Speichervorganges. - Seite 25 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 14: Korrektes Beenden eines MIDlets In der «destroyApp()» Methode werden alle Referenzen auf Ressourcen gelöscht, im Hintergrund laufende Threads beendet und alle aktiven Timers gestoppt. Soll das MIDlet auf diese Art beendet werden, so soll der Methode «destroyApp()» der Parameter «true» übergeben werden. In diesem Fall hat das MIDlet keine Chance, diesen Abbruch zu stoppen. Wird aber diese Methode mit dem Parameter «false» aufgerufen, so kann das MIDlet in Form einer «MIDletStateChangeException» anzeigen, dass noch etwas abgearbeitet werden muss. Die «try-catch» Klausel aus Abbildung 14 zeigt dies. Ist das MIDlet noch beschäftigt, so wird mit dem Aufruf der Methode «destroyApp(false)» eine Exception ausgelöst und es wird automatisch die «catch» Klausel ausgeführt und die «notifyDestroyed()» Methode wird übersprungen. Somit ist verhindert worden, dass das MIDlet in einem falschen Moment beendet wird. Löst die «destroyApp(false)» Methode aber keine Exception aus, so wird das MIDlet beendet, als wäre die Methode mit dem Parameter «true» aufgerufen worden. 2.3.5. HelloWorld Das bekannte «HelloWorld» Programm darf hier natürlich nicht fehlen. Die Abbildung 15 zeigt den Code dieses einfachen Beispielprogramms. Wie dem Code zu entnehmen ist, wurde das «HelloWorld» in einem MIDlet realisiert. Dies ist nicht zwingend notwendig, es kann auch eine einfache J2ME Klasse mit einer «main» Methode geschrieben werden, in der sich ein System.out.println("Hello World"); befindet. Ein solches Programm zeigt die Meldung auf dem Bildschirm an und beendet sich selber umgehend. Die gewünschte Ausgabe ist somit für den Anwender nicht sichtbar. - Seite 26 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 15: HelloWorld MIDlet Die Ausgabe auf dem Palm OS Emulator (POSE) sähe gemäss Abbildung 16 aus. Abbildung 16: Ausgabe des HelloWorld MIDlet - Seite 27 - Grundlagen PDA to IT-Workflow (P2W) 2.4. Internet und «mobile» Kommunikation Dieses Kapitel behandelt die relevanten Grundlagen, die das Internet und/oder die Kommunikation mit dem Internet betreffen. Des Weiteren werden die Grundlagen von Servlets erklärt, da in diesem Projekt die Server-Seite mit einem Servlet umgesetzt wurde. Zuerst wird allerdings erklärt, wie eine so genannte Webseite auf einen Computer (Client) gelangt: Ein Computer möchte eine Verbindung zu der Webseite (www.ebund.ch) aufbauen. Der Webbrowser schickt eine Anfrage an den gewünschten Server und wartet auf eine entsprechende Antwort. Nach der Antwort wird die Verbindung zum Server unterbrochen. Das Protokoll, das für diese Verbindung verwendet wird, nennt sich Hyper Text Transfer Protocoll (HTTP) und wird im folgenden Unterkapitel erklärt. Das folgende Beispiel erklärt den Ablauf, wenn ein User im Webbrowser die Uniform Resource Locator4 (URL) http://www.ebund.ch/index.html eingibt. 1. Der Browser fragt den Domain Name Server5 (DNS) nach der IP von www.ebund.ch 2. Der DNS gibt den Wert 195.65.4.246 zurück 3. Der Webbrowser baut nun eine Verbindung zu der IP 195.65.4.246 auf. Da die Verbindung mit TCP erfolgt, wird der Port 80 verwendet. 4. Der Browser sendet nun den GET-Befehl (Siehe Abbildung X) «GET index.html» 5. Der Server www.ebund.ch sendet die Datei «index.html» an den Browser 6. Der Browser zeigt den Inhalt der Datei an 7. Der Browser zeigt die zur Seite gehörenden Bilder an [Tannenbaum 2000, Seite 722] 2.4.1. Hyper Text Transfer Protocoll (HTTP) Das HTTP ist das Standardprotokoll, das im Internet verwendet wird, es ist in der RFC 822 genauer definiert. Bei der Entwicklung wurde grossen Wert darauf gelegt, dass das Protokoll allgemein verwendet werden kann. Es wurde vor allem darauf geachtet, dass eine objektorientierte Nutzung möglich ist. Aus diesem Grund besteht der HTTP-Befehl aus drei Teilen. Zuerst wird Methodennamen (GET) angegeben, dann folgt ein Parameter (index.html) und zum Schluss wird noch das Protokoll mit der entsprechenden Version angegeben. Zum Beispiel: GET index.html HTTP /1.1 Die Abbildung X zeigt eine Übersicht der verschiedenen HTTP-Methoden. Die Abbildung 17 zeigt den Ablauf einer HTTP-Transaktion. Abbildung 17: HTTP-Request und Response Wie die Abbildung 17 zeigt kann ein http-Befehl in eine Anfrage und eine Antwort unterteilt werden. In folgenden Abschnitt wird der http-Request betrachtet 4 Eine URL besteht aus drei Teilen: 1. Teil: Art des Protokolls (z.B. http) 2. Teil: Name des Servers -> Domainname (z.B. www.ebund.ch) 3. Teil: Name der Datei respektive Dokumentpfad (z.B. index.html) 5 Ein Domain Name Server ruft einen Resolver auf, der die IP ermittelt und retourniert [Tannenbaum 2000, Seite 659] - Seite 28 - Grundlagen PDA to IT-Workflow (P2W) Der Inhalt des Request Befehls beinhaltet: - Dokumentenanforderung : «Bitte schicke mir das Dokument /index.html» - Ebenso werden Informationen zu dem Client mitgeschickt. Zum Beispiel wird dem Server gesagt, dass der Client ein Microsoft Internet Explorer 5.0 ist und dass die gewünschte Sprache deutsch ist. Ein Request beinhaltet immer so genannte «Header-Informationen», dies sind Informationen zu den Clienteigenschaften und können gemäss der Tabelle 3 aussehen: Header Accept: image/png, image/gif, *.* Accept-Language: de User-Agent: Morzilla/4.0 Host: www.amazon.com If-Modified-Since: Datum Zeit Eigenschaften Bevorzugte Dokumentenformate. Angabe mittels MIMETypes (Multipurpose-Internet-Mail-Extension-Standrd) Bevorzugte Sprache Browser-Kennung (hier Internet Explorer) Name des Hosts, an den der Client wendet Dokument nur liefern, wenn es sich seit der angegeben Zeit verändert hat. Tabelle 3: Headerinformationen eines Requests Die GET-Methode ist die gängigste Methode. Diese Methode wird hauptsächlich für statische Webseiten verwendet. Im folgenden Kapitel werden die Grundlagen der Servlets beschrieben und diese verwenden in der Regel die POST Methode. Diese Methode unterscheidet sich im Wesentlichen darin, dass die Resultate einer GET-Methode im Cache (Zwischenspeicher) gespeichert werden und bei einem erneuten Aufrufen dieser Methode werden die Daten aus dem Zwischenspeicher bezogen. Bei der POST-Methode wird davon ausgegangen, dass es sich um dynamische Daten handelt, daher werden keine Daten im Zwischenspeicher abgelegt. Diese Methode wird zum Beispiel verwendet, wenn dem Server Daten übergeben werden möchte. Im folgenden Kapitel werden Servlets beschrieben und diese nutzen eben diese POST-Methode. Der Inhalt eines Responses ist: - Angefordertes Dokument: «Alles hat geklappt, und zusätzlich schicke ich noch das angeforderte Dokument». - Informationen über den Server: Es wird zum Beispiel angegeben, dass es sich um einen Apache Server handelt. Ein Request kann natürlich auch ein Dokument anfordern, das auf dem Server gar nicht vorhanden ist, aus diesem Grund muss ein Response auch die entsprechenden Meldungen zurückgeben können. Die erste Zeile eines HTTP-Responses kann folgendermassen aussehen: HTTP/1.1 200 OK Der erste Teil (HTTP/1.1) gibt das Protokoll an, der zweite Teil gibt einen so genannten Statuscode6 (Siehe hierzu die Tabelle 4) und der letzte Teil gibt eine kurze Erklärung an. 6 Die Tabelle 3.1 in [Callaway 1999, Seite 44] zeigt eine generelle Übersicht der Statusmeldungen. - Seite 29 - Grundlagen Code 200 OK 301 Moved Permanently 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error PDA to IT-Workflow (P2W) Erklärung OK, die Response enthält das angeforderte Dokument Angeforderte Ressource ist unter neuer URL zu erreichen. Die URL wird mit dem Location-Header übergeben. Syntaxfehler im Request Die Ressource ist passwortgeschützt. Der Client wird aufgefordert, sich mit Benutzername und Kennwort zu autorisieren. Zugriff verweigert, ohne Möglichkeit zur Autorisation. Das angeforderte Dokument existiert nicht. Ein Fehler des Servers macht die Bearbeitung der Anfrage unmöglich. Tabelle 4: HTTP Response Ein Webserver erfüllt demnach die folgenden Aufgaben: - Horcht den Port 80 nach HTTP-Responses ab. Schickt Dokumente an einen Client. Schickt Angaben über sich. Kann ein Programm auf dem Server ausführen, das ein Dokument erzeugt. - Seite 30 - Grundlagen PDA to IT-Workflow (P2W) 2.4.2. Servlets Normalerweise sind Webseiten statische Dateien die von einem Client bezogen werden können. Statische Webseiten lassen nur eine «Einwegkommunikation» zu. Der Client kann höchstens entscheiden, welche Seiten er anfordern möchte. Dieses «Ein-Wegkommunikation» kann unter anderem7 mit so genannten Servlets in eine «Zwei-Wegkommunikation» erweitert werden. Servlets sind spezielle Java-Programme, die HTML-Dateien dynamisch generieren. Das heisst nach einem HTTP-Response wird eine HTML-Datei generiert und dem Client zurückgeschickt. Diese Datei ist allerdings nicht physikalisch in einem File abgespeichert, sondern wird dynamisch gehalten. Dies bedeutet, dass bei einer erneuten gleichen Anfrage die Webseite neu generiert werden muss. Da die Webseiten bei jedem Aufruf vom Server neu generiert werden, spricht man in einem solchen Fall von «serverseitiger» Ausführung. Die Servlets werden in Java programmiert, kompiliert und der Byte-Code wird auf dem Server installiert. Servlets haben folgende Eigenschaften und Vorteile [Callaway 1999, Seite 70]: - Programm ist bereits kompiliert: Die Servlets werden programmiert und in Byte-Code kompiliert. Das kompilierte Programm wird auf dem Server installiert. So sind Servlets deutlich schneller als zum Beispiel Java Server Pages (JSP). - Stabil Da Servlets bereits kompiliert sind, sind gewisse Programmfehler wie zum Beispiel das illegale «Casten» von Objekten ausgeschlossen. - Cross-Plattform Da Servlets in Java geschrieben sind, können sie auf jeder Plattform verwendet werden, die Java-Programme akzeptiert. «write once, run anywhere» - Cross-Server Alle gängigen Serverhersteller unterstützen die Anwendung von Java-Programmen und somit auch von Servlets - «Langlebigkeit» Servlets sind langlebige Objekte, das heisst sie bleiben solange bestehen, bis sie explizit «zerstört» werden. - Servlets können dynamisch geladen werden Servlets werden nur geladen, wenn sie auch verwendet werden. Dieses dynamische Laden bewirkt, dass Servlets nur Server-Ressourcen braucht, wenn das Servlet verwendet wird. - Erweiterbar Java-Programme sind mit den verschiedenen Programm-Bibliotheken erweiterbar, was auch für Servlets gilt. - Protokollunabhängig Servlets unterstützen File Transfering Protocol (FTP), Telnet Sessions, POP3 E-Mail Funktionen, Simple Mail Transfer Protocol (SMTP) sowie weitere Protokolle Die Programmierung von Servlets ist identisch zu normalen Java-Programmen. Servlets verwenden zusätzlich zwei neue Klassen. Nämlich die «GenericServlet»- oder die «HttpServlet»-Klasse. Wird ein Servlet programmiert, so wird immer die Service-Methode (siehe Abbildung 18) des «GenericServlets» oder des «HttpServlets» mit den gewünschten Funktionen überschrieben. Servlets haben noch zwei weitere Methoden, die verwendet werden. Die «Init»- und die «Destroy»-Methode. Die Init-Methode wird verwendet um das Servlet zu initialisieren und wird beim Laden des Servlets automatisch ausgeführt. Die Destroy-Methode löscht das Servlet-Objekt (vergleiche oberen Abschnitt beim Punkt «Langlebigkeit»). Diese beiden Methoden müssen nicht zwingend implementiert werden, es liegt aber auf der Hand, das eine Initialisierung und ein explizites Löschen von Objekten zu einem sauberen Programmierstil gehören. 7 Folgende Techniken ermöglichen auch eine «Zwei-Wegkommunikation»: Common Gateway Interface (CGI) Active Server Pages (ASP), Java Server Pages (JSP) - Seite 31 - Grundlagen PDA to IT-Workflow (P2W) Abbildung 18: Servlet Gerüst Quelle: [Callaway 1999, Seite 80] In Abbildung 18 kann an Stelle der Service-Methode auch eine «doPost»- oder «doGet»-Methode verwendet werden. Die «doPost»-Methode behandelt so genannte POST-Requests und die «doGet»Methode die GET-Requests. (Siehe Kapitel 2.4.1) Um ein «Hello-World»-Servlet zu erstellen, muss die Service-Methode aus Abbildung 18 mit derjenigen aus Abbildung 19 ausgewechselt werden. Abbildung 19: Service Methode Quelle: [Callaway 1999, Seite 84] Die Service-Methode aus Abbildung 19 schreibt HTML-Tags in einen PrintWriter (siehe hierzu [Flanagan 2000, Seite 355]). Das so generierte HTML-File wird dem Client geschickt und in seinem Webbrowser angezeigt. - Seite 32 - Grundlagen PDA to IT-Workflow (P2W) 2.5. Notationen Die in dieser Dokumentation verwendeten Notationen beruhen auf dem Unified Modelling Language (UML) Standard der Version 1.4. Der aktuellste Standard ist UML Version 2.0, welcher im Sommer 2001 veröffentlicht wurde. Das Problem ist allerdings, dass sich die gängigste Literatur immer noch auf die Version 1.4. oder zum Teil sogar noch auf die Version 1.3. bezieht. UML ist eine Sprache und eine Notation zur Modellierung. Die UML wurde von der Object Management Group (OMG) zum Standard erklärt. Federführend in deren Entwicklung waren vor allem Grady Booch, Ivar Jacobson und Jim Rumbaugh [Booch 1998 und 1999]. Bevor die Notation etwas genauer betrachtet wird, sollte ein wenig auf die Geschichte der UML und deren Gründerkonsortium eingegangen werden. 2.5.1. Die Object Management Group (OMG) Die OMG wurde 1989 mit dem Ziel gegründet, die objektorientierte Technik und die verteilte Verarbeitung zu fördern und zu verbreiten. Gründungsmitglieder waren 3COM, American Airlines, CANON, Data General, Hewlett Packard, Philips Telecommunications, Sun Microsystems und Unisys. Inzwischen zählt die OMG mehr als 700 Mitglieder. Populärstes Nichtmitglied ist in diesem Falle wohl einmal mehr Microsoft. Zum jetztigen Zeitpunkt ist Microsoft immerhin Passivmitglied. Die OMG wurde vor allem bekannt durch ihre Standardisierung von Commen Object Request Broker Architecture (CORBA), der UML und anderen Spezifikationen für Analyse- und Designvorgänge im Bereich der Softwareentwicklung. Die Spezifikationen der OMG werden heute weltweit zur Entwicklung von verteilten Applikationen verwendet. 2.5.2. Unified Modelling Language (UML) UML eignet sich für die Beschreibung von Softwarelösungen. Sie kann sehr vielseitig verwendet werden: Es können Datenbankanwendungen, Echtzeitsysteme, verteilte Systeme, Workflows usw. beschrieben werden. Das Ziel der OMG ist, mit UML eine konsistente Sprache zu entwickeln, die sich zur Beschreibung einer Vielzahl von Problemen eignet. Mit UML sollen Projekte analysiert und implementiert werden können − und zwar unabhängig von deren Komplexität. UML ist komplett unabhängig von der Programmiersprache, die meisten Spezifikationen von Programmiersprachen lassen sich ebenfalls mit UML darstellen. UML ist sehr umfangreich und kann in verschiedene Diagramme unterteilt werden. Diese Diagramme werden aufgrund der gewünschten Betrachtungsweise des Problemes unterschieden: UMLDiagramme können in drei Gruppen unterteilt werden: In statische, verhaltensbeschreibende und implementationsspezifische Diagramme. Zu den statischen Diagrammen gehören. Anwendungsdiagramm (engl. Use Case Diagram): Mit Hilfe der Use Cases sollen die Möglichkeiten eines Systemes visualisiert werden. Diese Visualisierung ist sehr hilfreich, um mit Kunden über das entstehende Produkt zu diskutieren und mögliche Änderungen der Kunden frühzeitig einzubringen. Dank einer verständlichen Visualisierung sind die Zeichnungen auch für «Nicht-Informatiker» verständlich. Die Anwendungsfallbeschreibung ist nichts anderes als die «Use Cases» in Worte zu fassen, um diesen eine gewisse Struktur zu geben. Diese Beschriebung wird meist in einer Tabelle dargestellt. Siehe hierzu die Tabelle 5. - Seite 33 - Grundlagen PDA to IT-Workflow (P2W) Rechnung bezahlen Akteur1 Abbildung 20: Anwendungsfalldiagramm allgemein In der Tabelle 5 ist aufgelistet, welche Akteure betroffen sind, was verwendet wird, wie der Ablauf des Prozesses und wie der Endzustand aussieht, welche Abweichungen vorkommen sowie eine kurze Beschreibung des Prozessablaufes. Mit diesem Schritt kann vor allem der Übergang zu den Aktivitätsdiagrammen vereinfacht werden. Ein Anwendungsfall wird, wie Abbildung 20 zeigt, als ovaler Kreis dargestellt. Das Anwendungsfalldiagramm zeigt aber auch gewisse Beziehungen zwischen verschiedenen «Use Cases». Es wird zwischen so genannten «include» und «extende» Beziehungen unterschieden. Die «include» Beziehung soll zeigen, dass es sich beim «Use Case» − auf den gezeigt wird − um einen «Use Case» handelt, der auch von anderen «Use Cases» verwendet wird. Bei der «extend» Beziehung will gesagt werden, dass der «Use Case», auf den die Pfeilspitze zeigt, den ursprünglichen «Use Case» erweitert. Klassendiagramm (engl. Class Diagram): Sie beschreiben die Struktur von Objekten und deren statische Beziehungen zu anderen Objekten. Klassendiagramme beinhalten auch Packages, Interfaces und Instanzen. Die Beschreibung eines Objektes beinhaltet Operationen und Attribute. Klassendiagramme können in Packages verpackt werden. Eine Klasse wird in diesem Diagramm mit einem Rechteck gezeichnet, welches mit zwei Linien in drei Teile unterteilt wird. Im oberen Drittel wird der Klassennamen angegeben, in der Mitte befinden sich die Attribute und im unteren Drittel werden die Operationen der Klasse aufgelistet. Die Abbildung 21 zeigt ein einfaches Klassendiagramm Abbildung 21: Klassendiagramm Quelle: [Oestereich 2001, Seite 260] Mit den obigen Diagrammen werden die statischen Eigenschaften eines Systemes beschrieben. Die folgenden Diagrammtypen beschreiben das dynamische Verhalten. Sie werden unter dem Begriff Verhaltensdiagramme (engl. behavior diagrams) zusammengefasst. - Seite 34 - Grundlagen PDA to IT-Workflow (P2W) Aktivitätsdiagramm (engl. Activity Diagram): Aktivitätsdiagramme zeigen grundsätzlich den Ablauf eines Prozesses auf. Zwischen den Schritten bestehen meistens Zeitdifferenzen. Es können Wartezeiten auftauchen, ebenso kann die Plattform wechseln, was zum Beispiel bei Client-Server Applikationen der Fall ist. Mit solchen Diagrammen kann visualisiert werden, wo die Methoden ausgeführt werden. Wird zum Beispiel eine Methode von einem Client aus auf dem Server aufgerufen, so kann die Trennung «Client-Server» mit den sogenannten «Swimlanes» gekennzeichnet werden. Das Diagramm wird durch eine vertikale Linie getrennt. Dies zeigt, dass zum Beispiel die linke Seite auf dem Client und die rechte Seite auf dem Server ausgeführt werden. Die Abbildung 22 zeigt ein solches Aktivitätsdiagramm ohne «Swimlanes», in Abbildung 39 ist ein Aktivitätsdiagramm mit «Swimlanes» zu sehen. Abbildung 22: Aktivitätsdiagramm allgemein Meistens entsprechen die einzelnen Schritte des Aktivitätsdiagrammes einem Anwendungsfall. Kollaborationsdiagramm (engl. Collaboration Diagram): Ein Kollaborationsdiagramm ist eine alternative Visualisierung, um Abläufe in einem Programm darzustellen. Dieses Diagramm zeigt Verbindungen zwischen Objekten und deren Interaktionen. Sie weisen eine gewisse Ähnlichkeit mit den Sequenzdiagrammen auf. Der Unterschied besteht darin, dass die Sequenzdiagramme an einen zeitlichen Ablauf gebunden sind. Kollaborationsdiagramme sind nicht zeitbezogen. Objekte werden als Rechteck dargestellt, Verbindungen zwischen den Objekten sind mit Pfeilen visualisiert und Meldungen, die zwischen den Objekten verschickt werden, werden mit einem Text über dem Pfeil vermerkt. Die Abbildung 23 zeigt ein Kollaborationsdiagramm. Abbildung 23: Kollaborationsdiagramm Quelle: [Oestereich 2001, Seite 295] - Seite 35 - Grundlagen PDA to IT-Workflow (P2W) Sequenzdiagramm (engl. Sequence Diagram): Diese Diagramme zeigen Interaktionen zwischen Objekten in zeitlicher Abhängigkeit. Es ist auch ersichtlich, wann ein Objekt instanziert wird. Eine Übersicht der aufgerufenen Methoden ist ebenso gewährleistet. In Sequenzdiagrammen werden Objekte ebenfalls als Rechtecke dargestellt. Eine nach unten verlaufende gestrichelte Line symbolisiert die Lebenszeit des Objektes. Wird durch Aufrufen einer Methode ein anderes Objekt benötigt, wird dies durch einen Pfeil mit der Beschreibung des Methodennamens visualisiert. Die Abbildung 24 zeigt einen einfachen Aufruf eines Objektes. Hello Show show("Text") Abbildung 24: Sequenzdiagramm allgemein Sequenzdiagramme haben zwei Dimensionen: Die horizontale Dimension zeigt die beteiligten Objekte und die vertikale zeigt den Zeitverlauf. Der horizontalen Reihenfolge wird keine Bedeutung zugesprochen. Zustandsdiagramm (engl. State Chart Diagram): Ein Zustandsdiagramm entspricht eigentlich einer «State Event Machine». Das Diagramm beschreibt das Verhalten eines Objektes oder einer Abhängigkeit. Es zeigt die verschiedenen Zustände eines Objektes auf, die das Objekt während seiner «Lebenszeit» einnehmen kann. Die Zustandsdiagramme implementieren im Wesentlichen die State Machine von Mealy8 oder Moore9. Ein Beispiel eines Zustanddiagramms ist in Abbildung 25 zu sehen. Abbildung 25: Zustandsdiagramm Quelle: [Oestereich 2001, Seite 304] 8 9 Mealy State Event Machine: Ausgänge sind abhängig vom Zustand und den Eingängen Moore State Event Machine: Ausgänge sind nur vom Zustand abhängig - Seite 36 - Grundlagen PDA to IT-Workflow (P2W) Die letzte der drei UML Diagrammklassen sind die Implementationsdiagramme (engl. Implementation Diagrams). Diese zeigen Aspekte der Implementation. Implementationsdiagramme unterteilen sich in Komponenten- und Einsatzdiagramme. Komponentendiagramm (engl. Component Diagram): Dieses Diagramm zeigt Komponenten mit ihren Abhängigkeiten auf. Es werden auch statische Beziehungen dargestellt. Eine Komponente beinhaltet meist eine komplexe Struktur. Ähnlich wie eine Klasse können auch Komponenten instanziert werden. Mit dem Unterschied, dass sich im Inneren einer Komponenten oft eine Mehrzahl von Klassen befindet. Komponenten sollten nach Möglichkeit austauschbar sein. Komponenten werden gemäss Abbildung 26 dargestellt. Der gestrichelte Pfeil signalisiert die Abhängigkeitsbeziehung. Kompnente 1 Schnittstelle1 Komponente 2 Abbildung 26: Komponentendiagramm allgemein Das Innenleben von Komponenten wird meist in drei Services unterteilt. Zum einen sind da die so genannten Factory Services, welche zum Instanzieren von Klassen verwendet werden und die Observer Services, die für Ereignisbenachrichtigungen auf einem abstrakten Niveau verantwortlich sind [Oestereich 2001]. Zu guter Letzt ist noch der Object Service zu erwähnen, welcher fachliche Operationen zur Verfügung stellt. Unter fachlichen Operationen verstehen sich zum Beispiel so genannte «get-» und «set-Methoden». Einsatzdiagramm (engl. Deployment Diagram): Diese Diagramme beschreiben wo sich die verschiedene Prozesse, Komponenten und Objekte physikalisch befinden, respektive wo sie laufen. Ein einfaches Beispiel eines Einsatzdiagrammes zeigt die Abbildung 27. Abbildung 27: Einsatzdiagramm allgemein Im Diagramm werden Knoten und Kommunikationsverbindungen dargestellt. Als Knoten wird in diesem Falle ein physikalisch vorhandener Rechner betrachtet. - Seite 37 - Grundlagen PDA to IT-Workflow (P2W) 2.5.3. Beispiel für die «Unified Modelling Language» Beispiel Um eine Übersicht der gängigen Diagramme und die «Entwicklung» eines Programmes mit UML aufzuzeigen, wird das «HelloWorld»-Programm mit UML «entwickelt». Das Beispiel beinhaltet ein Anwendungsfalldiagramm, deren Beschreibungen, ein Sequenzdiagramm und ein Klassendiagramm. Das Anwendungsfalldiagramm in Abbildung 28 sieht in diesem Beispiel relativ einfach aus: Es ist nur ein Akteur beteiligt, welcher die Applikation startet. Die Aktion, die ausgeführt werden soll, ist die Ausgabe des Textes «Hello World». "Hello World" auf den Bildschirm schreiben Anwender Abbildung 28: Anwendungsfalldiagramm für HelloWorld Normalerweise wird zu den Anwendungsfalldiagrammen noch eine Anwendungsfallbeschreibung in einer Tabellenform erstellt, diese würde hier wie gemäss der Tabelle 5 aussehen. Name: Akteur Beschreibung Verwendet Vorbedingung Ablauf Endzustand HelloWorld auf den Bildschirm schreiben Anwender Der Anwender startet das Programm. Eine Javaumgebung muss installiert sein. 1. Der Anwender startet das Programm Auf dem Bildschirm erscheint ein Fenster mit dem Text "HelloWorld!" Variationen Bemerkungen Tabelle 5: Anwendungsfallbeschreibung HelloWorld Da dieses Beispiel relativ einfach und überschaubar ist, kann auf Einträge wie «Bemerkungen» und «Variationen» verzichtet werden. Bei grösseren und komplexeren Aufgaben sind diese Einträge aber hilfreich und haben eine ergänzende und erklärende Wirkung. Das Klassendiagramm ist in der Abbildung 29 zu sehen. - Seite 38 - Grundlagen PDA to IT-Workflow (P2W) java.awt.Frame +add(Position:java.awt.BorderLayout, Object:java.awt.Label):void +setSize(Breite:int, Hoehe:int):void +show():void HelloWorld java.awt.Label +main(argv[]:String *):void Fenster :HelloWorld saghello :awt.Label Abbildung 29: Klassendiagramm von HelloWorld Abbildung 30 ist das Sequenzdiagramm. Sequenzdiagramme zeigen die zeitlichen Abläufe einer Applikation, respektive eines Teiles einer Applikation. :HelloWorld main(argv[]:String *):void() HelloWorld() Fenster awt.Label(Ausgabetext:String, Position: awt.Label) sagHallo awt.Frame::add(Position:java.awt.BorderLayout, Object:awt.Label):void awt.Frame::setSize(Breite:int, Hoehe:int):void awt.Frame::show():void Abbildung 30: Sequenzdiagramm von HelloWorl - Seite 39 - Entwicklung PDA to IT-Workflow (P2W) 3. Entwicklung Wichtige Teile dieses Kapitels sind die Analyse des bestehenden WfMS der Ascom Informatik und die Analyse der zu erstellenden Software. Im ersten Teil dieses Kapitels wird das bestehende und bereits modellierte WfMS der Ascom untersucht. Im zweiten Teil wird auf die verschiedenen Anwendungsfälle und deren Beschreibung eingegangen. Ebenso wird in diesem Teil auf die Aktivitätsdiagramme eingegangen. Die ersten zwei Teile können als Analyse der Aufgabe betrachtet werden. Das dritte Unterkapitel beschäftigt sich mit dem Design des Programms. Beim Design wird der Schwerpunkt auf die Systemarchitektur und die Sequenzdiagramme gelegt. Die Klassendiagramme runden diesen Teil ab. Im letzten Unterkapitel wird auf die Implementation eingegangen. Hier werden die Client- und die Serverseite etwas genauer betrachtet. Ebenso finden sich hier Informationen über die Entwicklungsumgebungen und Simulationswerkzeuge. Softwareentwicklung bedingt viel Schreib- und Papierarbeit. Eine saubere Analyse und ein sauberes Design des Projektes ersparen eine Menge Programmieraufwand, was sich schliesslich auch im finanziellen Bereich positiv auswirkt. Mit einer übersichtlichen Analyse werden Probleme oft schon in einem frühen Stadium entdeckt. Schwierigkeiten können rechtzeitig mit dem Kunden besprochen werden, ebenso kann der Kunde flexibler Wünsche während der Analyse einbringen. Ohne eine genaue Analyse könnten solche Wünsche erst am Schluss des Projektes eingebracht werden. Die Umsetzung von Änderungen am Ende des Projektes ist jedoch enorm teuer. Ebenso können konzeptionelle Fehler, die erst am Ende eines Projektes erkannt werden, und welche z.T. eine «Nichtrealisierung» des Projektes bedeuten, Firmen in eine finanzielle Schieflage bringen. Genau solche Probleme können mit einer sauberen Analyse und mit einem sorgfältigen Design umgangen werden. Mit der Folge, dass das Produkt in der Regel kostengünstiger erstellt wurde und erst noch stärker dem Kundenwunsch entspricht, da er in die Problemanalyse einbezogen wurde. 3.1. Analyse des Ascom Workflow-Management-Systems (WfMS) Bevor auf den zu erstellenden Prototyp eingegangen wird, soll das WfMS der Ascom untersucht werden. Die Analyse soll folgende Fragen beantworten können: - Wo können die Workflowdaten bezogen werden? Wie kann ein Workflow mit einem externen Client übernommen werden? Was müssen bei einem übernommenen Workflow auf dem WfMS für Änderungen vorgenommen werden Wie kann ein übernommener Workflow mit dem WfMS synchronisiert werden? Diese Fragen sollen am Ende dieses Kapitels beantwortet sein. Das WfMS der Ascom wird in einer Domino-Datenbank von Lotus gepflegt. Bearbeitet und eingesehen können die einzelnen Workflows des WfMS mit dem Lotus Notes Client. Lotus Notes wird in der Ascom auch als E-Mail Client verwendet. Im Lotus Notes werden auch Dokumentationen, Protokolle und Anwenderdokumente verwaltet. Das WfMS der Ascom wurde umfassend dokumentiert. Alle Modellierschemen und Beschreibungen der Workflows sind vorhanden und über den Client einsehbar. Dies erspart eine erneute Modellierung der bestehenden Workflows. - Seite 40 - Entwicklung PDA to IT-Workflow (P2W) 3.1.1. Was beinhaltet das Workflow-Management-System der Ascom? Das WfMS der Ascom beinhaltet − wie in Abbildung 31 ersichtlich ist − drei Gruppen. Eine Gruppe beinhaltet die «Rent a Client»-Workflows (RaC), eine weitere die Voice Workflows und die letzte die Netzwerk Workflows. Die RaC Workflows managen Gerätevermietungen, Softwareerweiterungen, Büroumzüge und Rückgabe von Geräten. Die Netzwerkworkflows bearbeiten die Handhabung von Netzwerkanschlüssen. Das heisst, es werden Neuanschlüsse, Anschlussumzüge und Anschlussrückgaben gemanagt. Diese beiden Gruppen werden nicht näher betrachtet, da sie für die vorliegende Arbeit nicht von Bedeutung sind. Die vorliegende Arbeit befasst sich nur mit den «VoiceWorkflows». Die Abbildung 31 zeigt die Startseite des WfMS (grüner Rahmen markiert die VoiceWorkflows). Abbildung 31: Der Client vom Ascom WfMS Der IT Voice Workflow wurde in der Ascom im April 2001 überall in der Schweiz als elektronisches Bestellformular mit integrierter Prozessunterstützung eingeführt. Das Formular beginnt mit der Bestellung des Kunden, führt über die «Unterschrift» des Vorgesetzten und endet mit dem Erbringen der Dienstleistung durch die Informatik oder der lokalen Elektriker. Es ermöglicht dem Kunden zu jeder Zeit einen Einblick in den Status des Auftrags. Das heisst, der Kunde kann mit seinem Ticket10 den Stand der Arbeit betrachten. Er sieht also, dass das Formular zum Beispiel erst auf dem «virtuellen» Schreibtisch eines Vorgesetzten ist. Die IT-Unterstützung des Ablaufs durch ein WfMS soll die Durchlaufzeit und die Transparenz der Bestellung verbessern und die Papierformulare ersetzten. Die Abbildung 31 zeigt den Screenshot eines Administrator Clients. Beim normalen Client fehlt der Administrationsknopf unten links. Der «normale» Client kann nur Aufträge erfassen, einsehen und bearbeiten. Ebenso kann er den Status seines eigenen Auftrags einsehen. Interessant für die Analyse ist bestimmt der Punkt «Auftrags Status einsehen» in Abbildung 31. Die Abbildung 32 zeigt eine Übersicht der laufenden Workflows. Sie zeigt die verschiedenen Aktivitäten im «Voice-Workflow». 10 Jeder Kunde bekommt eine Auftragsnummer, ein sogenanntes Ticket, damit er den Status seines Auftrages einsehen kann. - Seite 41 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 32: Übersicht der Aktivitäten im Voice Workflow Anhand der obigen Aktivitäten kann auf das Prozessmodell geschlossen werden. Ersichtlich wird aus der Abbildung auch, dass für einen Elektromonteur bestimmt nicht alle Aktivitäten von gleicher Relevanz sind. Welche Schritte für den Elektromonteur entscheidend sind, sollte aus dem Prozessmodell ersichtlich sein. 3.1.2. Das Voice Workflow Modell Der Prozessablauf folgt nach dem Erstellen einen Auftrages einem klar definierten Ablauf. Dieser kann in die folgenden fünf Schritte aufgeteilt werden: Kunde erstellt einen Antrag: Der Kunde füllt sein Formular aus: (siehe Abbildung 35) Er muss in diesem Formular den Kostenstellenleiter angeben, da dieser den Antrag bewilligen muss. Ist das Formular ausgefüllt, kann der Anwender den Auftrag weiterleiten. (Das Formular wird einfach in einem E-Mail an den Kostenstellenleiter weitergeschickt). Vorgesetzter bearbeitet Auftrag: Der Kostenstellenleiter bekommt das ausgefüllte Formular via E-Mail. Er muss dieses Formular − sofern er das Gesuch bewilligt − an den Mandatsträger weiterschicken. Lehnt er das Gesuch ab, so wird das Formular mit dem Vermerk «Gesuch abgelehnt» an den Antragssteller zurückgeschickt. Das Weiterschicken des Formulars wird mit der Unterschrift der jeweiligen Person gleichgesetzt. Der zweite Vorgesetzte bearbeitet den Antrag: Dieser Schritt wird, sofern kein zweiter Vorgesetzter vorhanden ist, übersprungen. Ansonsten ist der Ablauf identisch wie der «Vorgesetzter bearbeitet Auftrag». Bearbeitung des Auftrages durch den Mandatsträger: Der Mandatsträger, in diesem Fall der Chef Elektriker, hat nun die Möglichkeit, den Auftrag zurückzuweisen oder diesen an die Informatik (Ascom Net) weiterzuleiten. - Seite 42 - Abbildung 33: Genereller IT-Workflow Entwicklung PDA to IT-Workflow (P2W) Umsetzung: Der Ausführungstermin wird abgeklärt und dem Kunden via E-Mail mitgeteilt. Sollten sich Verzögerungen ergeben, muss dies dem Kunden ebenso mitgeteilt werden. Zusätzlich kann der Kunde jederzeit den Status des Auftrages abfragen. Vergleichen wir Abbildung 32 mit Abbildung 33, so zeigt sich, dass die Kategorien aus der Abbildung 32 immer einer Aktivität in der Abbildung 33 entsprechen. Der Ablauf zwischen diesen Aktivitäten wird vom WfMS gesteuert. Diesem Modell kann entnommen werden, dass ein Elektromonteur nur zum Einsatz kommt, wenn ein Mandatsträger einen Auftrag bewilligt. Diese Aufträge sammeln sich in den beiden Kategorien «Elektriker Vorort in Arbeit» und «Elektriker Standort Alt in Arbeit». Die Abbildung 34 ist eine Erweiterung von Abbildung 32. Sie zeigt die verschiedenen laufenden Aufträge, welche für den Elektromonteur von Interesse sind. Abbildung 34: Übersicht der Aufträge für Elektromonteure Wurde ein Auftrag noch nicht übernommen, so ist in der Spalte «Verantwortlicher» kein Personenname eingetragen, sondern lediglich eine Bezeichnung der geforderten Eigenschaften des Elektrikers: «[VELEC_ZD01]» bedeutet beispielsweise, dass dieser Auftrag von einem Elektromonteur aus dem Gebäude ZD01 übernommen werden muss. Die jeweiligen Elektromonteure haben in ihrem Notes Client nur Einsicht in jene Aufträge, die für ihre Gruppe bestimmt sind. Wird ein Auftrag von einem Elektromonteur im WfMS übernommen, so wird sein Name als Verantwortlicher eingetragen, und der Auftrag kann von keinem anderen Elektromonteur mehr angenommen werden. Demnach können Elektromonteure nur Aufträge übernehmen, die sich in der Kategorie «Elektriker Vorort in Arbeit» und «Elektriker Standort alt in Arbeit» befinden. Das Auftragsformular muss in die Analyse einbezogen werden, da der Elektromonteur auf seinem Client dieses Formular sieht und eben dieses auf dem PDA nachgebildet werden soll. Die Abbildung 35 zeigt einen Ausschnitt eines solchen Formulars. Wichtig ist noch der Hinweis, dass der Elektromonteur das Formular nicht verändern oder ergänzen kann. Er kann das Formular nur als Informationsbasis für seinen Auftrag nutzten. - Seite 43 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 35: Formular eines Auftrages Das Formular erscheint als interaktives Dokument. Der Clientbenutzter kann zwar die «Checkboxes» neu anwählen oder löschen. Ein Editieren des Formulars nach der Genehmigung des Vorgesetzten entspricht bestimmt nicht einem üblichen Vorgang. Es können zwar Änderungen am Dokument vorgenommen werden, diese werden allerdings nicht gespeichert und haben somit auch keine Auswirkungen auf den weiteren Verlauf. Alle Änderungen werden vom WfMS schlicht ignoriert. Das Formular auf dem PDA solle gemäss der Abbildung 35 aufgebaut werden. Der Elektromonteur kann anhand des Formulars entscheiden, ob er diesen Auftrag übernehmen möchte oder nicht. Will er den Auftrag nicht übernehmen, kann er das Formular wieder schliessen, was keinen Einfluss auf den Auftrag hat. Übernimmt er hingegen den Auftrag, wird der Name des entsprechenden Monteurs als für den Auftrag verantwortlich eingetragen. Siehe hierzu Abbildung 34. Öffnet der Elektromonteur einen Auftrag, den er bereits übernommen hat, so kann er diesen abschliessen oder zurückweisen. Er kann das Formular natürlich auch wieder schliessen, ohne dass er den Auftrag explizit abschliesst. Die Abbildung 36 zeigt eine Übersicht der Möglichkeiten, die der Elektromonteur zur Bearbeitung eines Auftrages hat. In der Darstellung ist die Möglichkeit nicht berücksichtigt, dass ein Elektromonteur seine Aufträge ohne Statusänderung verlassen kann. - Seite 44 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 36: Ablauf eines Auftrages Die Abbildung 36 zeigt eine weitere Erkenntnis: Der Elektromonteur hat nur Zugriff auf die Workflowschritte sieben und acht. Aufträge die beendet wurden, werden im «Schritt» 98 archiviert und zurückgewiesene Aufträge werden dem «Schritt» 79 zugewiesen. 3.1.3. Wie ein Auftrag von einem externen Client übernommen wird Um mit dem PDA die Workflows im WfMS modifizieren zu können, müssen einzelne Schritte des Arbeitsablaufes von diesem neuen Client aus bewerkstelligt werden. Dazu muss analysiert werden, welche Mutationen im WfMS nötig sind. Um diese Schritte besser nachvollziehen zu können, stellt das WfMS den Notes Designer Client zur Verfügung, ein Entwicklungswerkzeug, mit dem Knöpfe, Felder, Formulare sowie Aktionen erstellt und betrachtet werden können. Dieses Werkzeug macht ersichtlich, dass zur Übernahme eines Auftrages der Name des Elektromonteurs in das Feld «Auftraguebernehmen» geschrieben werden muss. Diese Aktion ist für einen externen Java Client kein Problem, da mit Java auf alle Felder in einem Notes Dokument zugegriffen werden kann. 3.1.4. Wie ein Workflow synchronisiert wird Der Notes Domino Designer bietet auch bei diesem Problem Hilfe an. Aus dem Designer ist ersichtlich, dass die Statusänderung der Workflows mit einem Softwareagenten11 umgesetzt wird. Der anzusprechende Agent nennt sich «ANSTEP». Analysiert man den Source Code von diesem - in LotusScript geschriebenen – Agenten ist ersichtlich, dass dieser Agent die Art der Aktion («abschliessen» oder «zurückweisen») und die eineindeutige Identifikationsnummer12 kennen muss. Mehr Parameter braucht der Softwareagent für eine Synchronisation nicht. Alle anderen Angaben sind im Formular bereits enthalten. Das WfMS weiss auf Grund der angewählten Aktion, in welchem Ablaufschritt sich das Formular befindet, ebenso ist bekannt, wer den Auftrag erledigt hat, nämlich derjenige, den ihn übernommen hat. 11 «Lassen Sie uns Agenten definieren als zielgerichtete Softwareeinheiten; für einen speziellen Zweck geschaffen. «Zielgerichtet» grenzt sie von Subroutinen ab: Agenten haben eigene Ideen, wie sie ihre Aufgabe lösen können, ihre eigene Tagesordnung. «Spezieller Zweck» grenzt sie von multifunktionalen Applikationen ab: Agenten sind normalerweise viel kleiner.»[Softwareagenten] 12 Eine Dokument ID. In Notes nennt sich diese «UNID». - Seite 45 - Entwicklung PDA to IT-Workflow (P2W) 3.1.5. Der PDA als Client im Workflow-Management-System (WfMS) der Ascom Die Entnahme eines Workflows mit dem PDA muss dieselben Aktionen auslösen, die auch mit dem Notes Client ausgelöst werden würden. Der Einfluss des P2W-Clients auf den Voice Workflow darf nicht ersichtlich sein. Ebenso sollen dieselben Softwareagenten angesprochen werden. Der einzige Unterschied ist, dass die Userverwaltung nicht über die Notesadministration funktioniert.13 Ebenso darf es nicht zu einem Datenverlust kommen, ausser der Anwender verliert den PDA. Diese Gefahr besteht aber auch bei einem Verlust des Laptops oder bei einem Harddisk-Crash. Ein Backup der Harddisk kann dieses Problem zwar vermindern, aber auch nicht gänzlich ausschliessen. 3.2. Analyse der zu erstellenden Software In der Phase der Software Analyse sollen verschieden Punkte geklärt werden. Einerseits sollte bekannt sein, welche Personen mit dem System arbeiten werden, anderseits sollen alle Geschäftsprozesse identifiziert werden. 3.2.1. Anwendungsfalldiagramme (Use Cases) In der Abbildung 37 sind die möglichen Anwendungsfälle eines Elektromonteurs zu sehen. Generell ist zu sagen, dass er Zugriff auf Workflow Details hat und diesen editieren kann. Unter Editieren ist in diesem Falle gemeint, dass er Workflows übernehmen, abschliessen oder ignorieren kann. Ebenso kann der Elektromonteur seine Workflows mit dem Server synchronisieren und neue Workflows vom Server beziehen. Die Synchronisiation sowie das Downloaden von Workflows ist in jedem Falle mit einem Login verbunden. Damit ein Login durchgeführt werden kann, ist eine Verbindung zum Server notwendig. P2W Client WF Detail und Editieren WF Auswahl und Titel Synchronisierbare WFs anzeigen Verbindung auf/abbauen Synchronisation Elektromonteur Login WF downloaden Abbildung 37: Use Case «Elektromonteur» 13 Mehr dazu im Kapitel 4.1.5 - Seite 46 - Entwicklung PDA to IT-Workflow (P2W) Der Administrator kann den Server starten und stoppen. Ebenso erhält er eine Übersicht der registrierten Benutzter. Der Administrator kann Benutzerdaten ändern, löschen, sperren und entsperren. Er kann auch neue Benutzer anlegen. Dieser Anwendungsfall ist in Abbildung 38 zu sehen. P2W Serveradministration Server starten Server stoppen Neuer Benutzer anlegen «erweitert» «erweitert» Benutzer löschen Benutzer verwalten «erweitert» Administrator Benutzerdaten bearbeiten Abbildung 38: Use Case «Administrator» 3.2.2. Anwendungsfallbeschreibung Die folgenden Tabellen beschreiben die Use Cases aus Abbildung 37 und 38. Sie werden mit den folgenden Bedingungen erweitert: - Was verwendet wird Welche Vorbedingungen an das System gestellt werden Wie der Ablauf aussieht Wie der Endzustand aussieht Welche Variationen vorkommen können - Seite 47 - Entwicklung PDA to IT-Workflow (P2W) Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Variationen WF Detail und Editieren Elektromonteur Der Elektromonteur sieht den WF im Detail. Er kann den Auftrag abschliessen oder zurückweisen. Es müssen lokale WFs vorhanden sein. 1. Der Elektromonteur wählte einen WF aus der Auswahl aus. 2. Der angewählte WF wird angezeigt. 3. Statusänderung optional (Abschliessen oder zurückweisen) und dann zurück zur Übersicht. Übersicht der WFs. Wird ein WF abgeschlossen oder zurückgewiesen, so darf dieser WF nicht mehr bearbeitbar sein. Der WF ist nun synchronisierbar. Bemerkungen Tabelle 6: Workflow editieren und Details betrachten Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand WF Auswahl und Titel Elektromonteur Dem Elektromonteur werden die Titel der WFs angezeigt. Ebenso hat er die Möglichkeit WFs vom Server zu beziehen oder WFs, die synchronisierbar sind, zu synchronisieren. Auf dem PDA ist der P2W Client installiert. 1. Der Elektromonteur startet den P2W Client. 2. Dem Elektromonteur wird eine Übersicht der lokal gespeicherten WFs gezeigt. 3. Er kann nun Details der verschiedenen WFs betrachten, WFs synchronisieren, WFs downloaden oder das Programm verlassen. Folgende Endzustände sind möglich: - Programm beendet - WFs synchronisieren - WFs downloaden - Detailansicht eines WFs Variationen Bemerkungen Tabelle 7: Workflow Auswahl und Titelübersicht - Seite 48 - Entwicklung PDA to IT-Workflow (P2W) Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Variationen Synchronisation Elektromonteur Der Elektromonteur kann fertig bearbeitete WFs mit dem Server synchronisieren Login Auf dem PDA ist der P2W Client installiert und gestartet 1. Der Elektromonteur wählt im Startmenü "synchronisieren". 2. Nach der Login Prozedur werden alle synchronisierbaren WFs mit dem Server, resp. mit dem WfMS synchronisiert. 3. Die synchronisierten WFs werden, sofern sie fehlerfrei synchronisert werden, auf dem PDA gelöscht. Alle synchronisierbaren WFs sind synchronisiert und lokal gelöscht. Der Aktor befindet sich wieder im Startmenü mit der WF Titelübersicht Wenn beim Synchronisieren keine Fehler auftreten, werden die WFs auf dem PDA gelöscht. Tritt allerdings ein Fehler beim Synchronisieren auf, so werden die lokalen WFs nicht gelöscht! Bemerkungen Tabelle 8: Workflows synchronisieren Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Variationen Synchronisierbare WFs anzeigen Elektromonteur Dem Elektromonteur wird beim Start des Programmes angezeigt, wieviele WFs synchronisierbar sind. Auf dem PDA ist der P2W Client installiert 1. Der Elektromonteur startet das Programm. 2. Dem Elektromonteur wird angezeigt, wieviele WFs synchronisierbar sind. 3. Der Elektromonteur kann nun die WFs synchronisieren. Die synchronisierbaren WFs sind synchronisiert. Der Elektromonteur will die WFs erst später synchronisieren und arbeitet weiter, ohne zu synchronisieren. Bemerkungen Tabelle 9: Synchronisierbare Workflows anzeigen - Seite 49 - Entwicklung PDA to IT-Workflow (P2W) Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Variationen WF downloaden Elektromonteur Der Elektromonteur kann vom Server neue WFs herunterladen. Login Auf dem PDA ist der P2W Client installiert und gestartet. Es muss eine Verbindung zum Internet bestehen 1. Der Elektromonteur wählt im Startmenü "download WFs". 2. Nun muss sich der Elektromonteur einloggen. 3. Dem Elektromonteur wird eine Titelübersicht aller downloadbaren WFs angezeigt. 4. Der Elektromonteur kann einen WF anwählen und downloaden. Der Elektromonteur hat einen WF heruntergeladen, er befindet sich wieder in der Übersicht der downloadbaren WFs. Er kann nun weiter WFs downloaden. Der Elektromonteur kann die Verbindung zum Server unterbrechen. Tritt ein Fehler beim Downloaden auf wird der WF nicht gespeichert. Ein erneuter Download für diesen WF ist nötig. Bemerkungen Tabelle 10: Einen Workflow downloaden Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Variationen Login Elektromonteur Der Elektromonteur meldet sich beim P2W Server an. Der Server überprüft Username und Passwort, welches sich in einer Access Datenbank befindet. Der P2W Client ist gestartet und es besteht eine Internetverbindung. 1. Der Client baut eine Verbindung zum Server auf. 2. Der Elektromonteur muss sein Username und Passwort eingeben. 3. Der P2W Server überprüft die erhaltenen Daten. Der Elektromonteur ist beim System angemeldet Gibt der Elektromonteur drei Mal ein falsches Passwort ein, so wird der User gesperrt. Das Konto eines gesperrten Users kann nur vom Systemadministrator reaktiviert werden. Ist es nicht möglich eine Verbindung zum Server aufzubauen, wird der User darüber informiert. Bemerkungen Tabelle 11: Login - Seite 50 - Entwicklung PDA to IT-Workflow (P2W) Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Verbindung auf/abbauen Elektromonteur Die Verbindung zum P2W Server wird auf- oder abgebaut Der P2W Client ist gestartet Verbindung zum Server wird auf- oder abgebaut. Beide "Verbindungsänderungen" werden im Logfile des Servers festgehalten. Der Elektromonteur ist beim Server an- oder abgemeldet. Variationen Bemerkungen Tabelle 12: Die Verbindung zum Server auf- oder abbauen Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Server stoppen Administrator Der Administrator will den Server stoppen Server ist im aktiven Zustand. 1. Betriebssystem ist gestartet. 2. Script zum Stoppen ausführen. Server wurde gestoppt und ist für Anfragen nicht mehr ansprechbar. Variationen Bemerkungen Tabelle 13: Den Server stoppen Name: Aktor Beschreibung Verwendet Vorbedingung Ablauf Endzustand Server starten Administrator Der Administrator will den Server starten. 1. Betriebssystem gestartet. 2. Server korrekt installiert. Der Administrator kann den Server mit einem Script starten, Initialisierung wird gestartet Der Server läuft und die Benutzer können an ihn Anfragen stellen. Server ist initialisiert. Variationen Bemerkungen Tabelle 14: Den Server starten - Seite 51 - Entwicklung PDA to IT-Workflow (P2W) 3.2.3. Aktivitätsdiagramm In Abbildung 39 ist das Aktivitätsdiagram des Login-Vorganges zu sehen. Wird das Programm gestartet, erscheint eine Menüauswahl. Wird nun Synchronisation oder Download angewählt, muss eine Verbindung zu Server aufgebaut werden. Der PDA versucht eine Verbindung mit dem Server aufzubauen. Gelingt dies, so kann der Anwender seinen Loginname und sein Passwort eingeben. Diese werden über die erfolgreich aufgebaute Verbindung an den Server geschickt. Der Server überprüft den erhaltenen Loginnamen sowie das Passwort und schickt dem Client den Status der Überprüfung. War die Eingabe korrekt, kann der Loginvorgang als abgeschlossen betrachtet werden. Nach einem erfolgreichen Login können Aufträge eingesehen und abgeschlossene Aufträge mit dem Server synchronisiert werden. Abbildung 39: Aktivitätsdiagramm Login - Seite 52 - Entwicklung PDA to IT-Workflow (P2W) In Abbildung 40 wird dem Anwender visualisiert, wieviele synchronisierbare Aufträge er lokal auf seinem PDA hat. Er kann nun entscheiden, ob er die abgeschlossenen Aufträge synchronisieren oder ignorieren möchte. Will er seine Aufträge synchronisieren, wird er zum Login weitergeleitet. Möchte er die Workflows zu einem späteren Zeitpunkt synchronisieren, wird der Synchronisationsvorgang beendet und es erscheint wieder die Menüauswahl (Siehe Abbildung 39). Wurde der Loginvorgang erfolgreich durchgeführt, synchronisiert der Server alle abgeschlossenen Aufträge. Konnte der Server die Workflows korrekt synchronisieren, werden die lokal auf dem PDA gespeicherten Workflows gelöscht. Konnte der Server diese jedoch nicht korrekt sysnchronisieren, beginnt der Synchronisationsprozess von neuem. Client Server Anzahl synchronisierbare WFs anzeigen. Synch? Nein Ja Login WFs mit Server synchronisieren Fehlermeldung Ja Server synchronisiert Fehler? Nein lokale synchronisierte WFs werden gelöscht Abbildung 40: Aktivitätsdiagramm Synchronisation von Workflows - Seite 53 - Entwicklung PDA to IT-Workflow (P2W) Die Abbildung 41 beschreibt den Vorgang des «Downloaden» von Workflows. Vorbedingung ist die erfolgreiche Anmeldung beim Server. Zuerst wird dem Anwender eine Übersicht der möglichen Aufträge gezeigt (siehe Abbildung 34). Er kann einen Workflow auswählen und die Details von diesem Workflow einsehen. Die Details werden ihm getreu dem Notes Client angezeigt und er kann auf der letzten Seite des Formulars den Auftrag übernehmen. Der PDA übergibt dem Server die notwendigen Daten, für die Entnahme des entsprechenden Auftrags. Konnte der Server die Übernahme des Auftrages fehlerfrei durchführen, wird der übernommene Workflow lokal auf dem PDA gespeichert. Konnte der Server die Statusänderung auf dem WfMS nicht vornehmen, wird auf dem PDA eine Fehlermeldung generiert und der PDA kehrt wieder zur Übersicht der downloadbaren Workflows zurück. Abbildung 41: Aktivitätsdiagramm Workflow downloaden - Seite 54 - Entwicklung PDA to IT-Workflow (P2W) Wie mit den lokalen Workflows auf dem PDA gearbeitet wird, zeigt die Abbildung 42. Zuerst werden in der Standardübersicht die lokal vorhandenen Aufträge angezeigt. Diese können durch Auswählen detaillierter betrachtet werden. Soll ein übernommener Auftrag abgeschlossen oder zurückgewiesen werden, kann auf der letzten Seite des Formulars der gewünschte Befehl aktiviert werden. Der ausgewählte Auftrag wird unter den synchronisierbaren Workflows gespeichert und bei den lokalen Workflows gelöscht. Der Anwender kann einen abgeschlossen oder zurückgewiesenen Auftrag nicht mehr einsehen. Er kann diesen nur noch mit dem System synchronisieren. Dies erscheint in erster Linie etwas unsinnig, entspricht allerdings dem Workflow-Vorgang. Ein abgeschlossener Auftrag kann auch mit dem Notes Client vom Elektromonteur nicht mehr betrachtet werden. Client Lokale WFs anzeigen Details anzeigen Zurück zur Übersicht? Ja Nein {OR} Auftrag zurückweisen Auftrag beenden WF speichern und sperren Beenden? Nein Ja Abbildung 42: Aktivitätsdiagramm Workflow editieren und Titel anzeigen - Seite 55 - Entwicklung PDA to IT-Workflow (P2W) 3.3. Design 3.3.1. Systemarchitektur Die Systemarchitektur des Servers ist in Abbildung 43 zu sehen. Der Server ist das Bindeglied zwischen dem PDA, dem WfMS und der Administrationsdatenbank. Will sich ein P2W-User beim Server anmelden, so überprüft der Server in der Accessdatenbank das Passwort und die Rechte (siehe Kapitel 3.5.2). Wenn der P2W-User einen Auftrag beziehen möchte, so bezieht der Server ebenfalls zuerst den Auftrag aus dem WfMS und sendet ihn an den PDA weiter. Der Server wurde mit einem Java Servlet (siehe hierzu Kapitel 2.4.2) realisiert. Das Servlet wird mit einem XML-File konfiguriert. Abbildung 43: Systemarchitektur Im Logfile werden alle Transaktionen festgehalten. Das WfMS befindet sich nicht auf demselben Rechner wie das Servlet. Das Servlet baut eine Internetverbindung zum WfMS sowie zur Userdatenbank auf. Das Konfigurationsfile liefert die für die entsprechenden Verbindungen notwendigen Parameter. - Seite 56 - Entwicklung PDA to IT-Workflow (P2W) 3.3.2. Klassendiagramme Die Abbildung 44 zeigt das Klassendiagramm des Clients. Der Client besteht aus vier Klassen. Die Klasse «GenerateForms» ist eine reine «Graphical User Interface»-Klasse (GUI), welche die verschiedenen Formulare generiert und an das MIDlet in Form eines «Form-Objektes» zurückgibt. Die «P2WClientMIDlet» dient der Darstellung und der Verwaltung der verschiedenen Kommandos. Sie instanziert die restlichen drei Klassen zu Beginn des Programmes. Aus diesem Grunde sind die Pfeile als Instanzierung und nicht als Vererbung zu betrachten. Es wurde eine saubere Trennung von Kontrolleinheit und Design angestrebt. Dies konnte auch so realisiert werden, mit der einzigen Ausnahme, dass die P2WClientMIDlet Klasse auch einige spezielle Formulare darstellt. Die Klasse «Connect» dient der Netzwerkverbindung. Sie baut eine Verbindung zum Server auf und sendet die entsprechenden Befehle. Diese Klasse retourniert die vom Server erhaltenen Daten an die MIDletKlasse, welche die Daten zum Teil selber darstellt oder diese an die «GenerateForms» Klasse weitergibt. P2WClientMidlet Connect GenerateForm s Store Abbildung 44: Klassendiagramm Die Klasse «Store» verwaltet die intern gespeicherten Daten. Gespeicherte Workflows und Konfigurationsdaten werden in dieser Klasse gespeichert und gelesen. Die gespeicherten oder gelesenen Daten werden an die MIDlet-Klasse zurückgegeben, welche diese Daten weiterverarbeitet. - Seite 57 - Entwicklung PDA to IT-Workflow (P2W) 3.3.3. Sequenzdiagramme Die Abbildung 45 visualisiert den Ablauf des Loginvorganges. Der Elektromonteur möchte Aufträge vom System auf seinen PDA laden oder abgeschlossene Aufträge mit dem System synchronisieren, was ein Login verlangt. Der Elektromonteur muss der Applikation seinen Usernamen und sein Passwort angeben. Das MIDlet versucht eine Verbindung zum Server aufzubauen. Der Server registriert jeden Verbindungsversuch und schreibt diesen in ein Logfile. Bekommt das MIDlet eine positive Bestätigung vom Server, so sendet dieses den Usernamen und das Passwort an den Server. Der Server testet, ob der Usernamen existiert und ob das Passwort zum angegebenen Namen passt. Der Status dieser Abfrage wird ebenfalls im Logfile vermerkt. Derselbe Status wird dem MIDlet geschickt, welches den Anwender informiert. Versucht der User mehr als dreimal mit einem falschen Passwort Zutritt zum System zu bekommen, wird dieser User auf der «Userdatenbank» gesperrt und kann nur noch vom Systemadministrator reaktiviert werden. In Abbildung 46 ist ein Synchronisationsablauf von lokal gespeicherten Aufträgen zu sehen. Der Elektromonteur wählt im Hauptmenü «Synchronisation WFs», und die Aufträge werden nach einem erfolgreichen Login mit dem System synchronisiert. Zuerst wird im persistenten14 Speicher des PDAs nach synchronisierbaren Aufträgen gesucht. Diese angeschlossenen oder zurückgewiesenen Aufträge werden danach dem Server zugeschickt. Dem Server wird allerdings nur die Dokument-ID (UNID) und die Eigenschaft des Auftrages (abgeschlossen oder zurückgewiesen) übergeben. Der Server öffnet nach Erhalt der Daten eine Verbindung zum Datenbankserver des WfMS und ruft den Agenten, welcher für die notwendigen Aktionen zuständig ist, mit den notwendigen Parametern auf. Die Verbindungsklasse zum Datenbankserver gibt eine Statusmeldung an den Server zurück, welcher ins Logfile geschrieben wird. Diese Statusmeldung wird auch an den Client weitergeschickt und dem Elektromonteur visualisiert. Ist diese Meldung positiv, was heisst, dass die Workflows korrekt synchronisiert wurden, werden die auf dem PDA gespeicherten − soeben synchronisierten − Workflows gelöscht. Dies verhindert ein erneutes Synchronisieren von bereits synchronisierten Workflows, was auf der Serverseite für Probleme sorgen würde. Die Abbildung 47 zeigt, wie ein bestimmter Auftrag auf den PDA geladen werden kann. Der Elektromonteur wählt den Menüpunkt «Download WF» im Hauptmenü aus. Nach erfolgreichem Login wird der Server benachrichtigt, dass der Elektromonteur alle übernahmebereiten Aufträge einsehen möchte. Der Server bekommt über die Notesverbindungsklasse alle Daten der entsprechenden Workflows. Diese Daten werden dem Client geschickt. Die Workflowtitel werden dem Elektromonteur angezeigt. Er kann nun die Details eines gewünschten Auftrages einsehen. Immer am Ende eines solchen Formulares sind gewisse Aktionen möglich. In diesem Falle kann er wieder zurück zur Übersicht, oder er kann den Auftrag auf seinen PDA runterladen, was einer Übernahme des Auftrages gleich kommt. Wird der Auftrag übernommen, so wird dies dem Server mitgeteilt. Dieser erhält die eindeutige ID (UNID) und den Namen des Elektromonteurs. Auf Grund dieser Daten kann die Notesverbindungsklasse dem WfMS mitteilen, welcher Auftrag von wem übernommen wird. Diese Notesverbindungsklasse gibt wiederum eine Statusmeldung zurück, welche aussagt, ob die gewünschte Aktion erfolgreich war. Konnte diese Aktion fehlerfrei durchgeführt werden, so wird der Client informiert, dass dieser den entsprechenden Workflow auf seinem PDA persistent unter den bearbeitbaren Workflows speichern kann. Auch diese Meldung wird dem Elektromonteur visualisiert. Das letzte Diagramm ist in Abbildung 48 abgebildet und erklärt, wie die lokal gespeicherten Aufträge betrachtet und bearbeitet werden können. Der Elektromonteur startet im Übersichtsmenü den Befehl «lokale Workflows bearbeiten». Das MIDlet gibt diese Aufforderung an die PDA-Datenbankklasse weiter, welche in der Datenbank nach lokalen, nichtsynchronisierten Workflows sucht. Die gefundenen Workflows werden zurückgegeben und das MIDlet zeigt dem Elektromonteur eine Übersicht der Aufträge. Will der Elektromonteur Details eines Auftrages betrachten, so kann er den gewünschten Auftrag anwählen und die Datenbankklasse liefert dem MIDlet das Formular, ausgefüllt mit den entsprechenden Daten. Auf der letzten Seite dieses Formulars kann der Elektromonteur den Auftrag abschliessen oder zurückweisen. Dies wird wiederum via der Datenbankklasse vom MIDlet an die Datenbank weitergeleitet. Der Elektromonteur bekommt vom MIDlet eine Meldung, ob die Aktion erfolgreich ausgeführt werden konnte. 14 Unter persistenter Speicherung versteht man ein dauerhaftes Speichern von Daten. Die Daten bleiben nach dem Ausschalten des Gerätes erhalten. - Seite 58 - start login(usrname, passwort) Elektromonteur connect() connect() - Seite 59 login_status login_status testLogin(usrname, passwort) log_status write(time, "connection") Logfile log_status write(time, usrname, login_status) Server Server login(usrname, passwort) conn_status Connection login(usrname, passwort) MIDlet Client DBConnection Entwicklung PDA to IT-Workflow (P2W) Abbildung 45: Sequenzdiagramm Login Abbildung 46: Sequenzdiagramm Download - Seite 60 - getwf_status, safe_satus getWF(wfTx) getwf_status, wfT1, wfT2... Elektromonteur getAllTitles() getAllTitles() Connection getwf_status, safe_satus getWF(wfTx) getwf_status, wfT1, wfT2... MIDlet safe_status safe(wfx) getwf_status getWF(usrname, wfTx) getwf_status, wf1, wf2... getAllTitles(usrname, key) PDA_DB Client getwf_status, wf1, wf2... getAll(usrname, key) LogFile getwf_status getWF(usrname, wfTx) log_status write(time, usrname, "copy wf", getwf_status) Server Server Notes getwf_status getWF(usrname, wfTx) getwf_status, wf1, wf2... getAll(usrname, key) NotesDBConnection Entwicklung PDA to IT-Workflow (P2W) Abbildung 47: Sequenzdiagramm Synchronisation - Seite 61 - synchronize() PDA_DB del_status deleteAllSynch() synch_status Server Server synch_status synch(usrname, synchdaten) LogFile log_status write(time, usrname, "synch", synch_status) synch(usrname, synchdaten) synch_daten getAllSynch() Connection synch_status, del_status synch_status, del_status Elektromonteur synchronize() MIDlet Client Notes synch_status synch(usrname, synchdaten) NotesDBConnection Entwicklung PDA to IT-Workflow (P2W) Entwicklung PDA to IT-Workflow (P2W) MIDlet PDA_DB_Handler PDA_DB Elektromonteur showLocTitle() showLocTitle() showLocTitle() vector[titel_status, titel, titel...] vector[titel_status, titel, titel...] vector[status, titel, titel...] showLocDetail(title) showLocDetail(title) showLocDetail(title) vector[wf_status, daten] vector[wf_status, daten] vector[wf_status, daten] do(funkt, titel) do(funkt, titel) do(funkt, titel) fnkt_status fnkt_status fnkt_status Abbildung 48: Sequenzdiagramm WF Titel und Funktionen - Seite 62 - Entwicklung PDA to IT-Workflow (P2W) 3.4. Implementation Client 3.4.1. Entwicklungsumgebung mit Forte 4 Java Mobile Edition Da die Softwareentwicklung der Ascom Informatik mit IBM-Produkten umgesetzt wird, lag die Entscheidung der Entwicklungsumgebung auf der Hand. IBM bietet die Entwicklungsumgebung «Websphere Studio Device Developper»(WSDD) gratis im Internet an. Das WSDD ist eine Entwicklungsumgebung, welche auf eine Javaprogrammierung für PDAs ausgelegt ist. Im Laufe der Entwicklung ergaben sich jedoch Probleme bei der Netzwerkverbindung mit der VM von IBM (siehe Exkurs), welche einem Wechsel auf Forte 4 Java Mobile Edition erforderlich machten. Die Entwicklungsumgebung von Forte ist einfach in der Handhabung und schnell erlernbar. Die Hilfetools sind umfangreich und bieten auf fast alle Fragen eine Antwort. Die Abbildung 49 zeigt einen Ausschnitt der Entwicklungsumgebung. «MIDlet Suites» und MIDlets können mit den praktischen Wizzards15 erstellt werden. Abbildung 49: Forte 4 Java Mobile Edition Die Integrated Developper Environment (IDE) kann den Javadoc16 Code bis zu einem gewissen Grad automatisieren. Der «Javadoc Generator» lädt alle Felder, Methoden und Klassen in ein Fenster. Die zur jeweiligen Methoden passenden Tags werden angezeigt und können initialisiert werden. Die Abbildung 50 zeigt das «Auto Comment Tool». Praktisch ist, dass auf der linken Seite mit einem grünen Symbol gleich die Korrektheit des Javadoc Codes visualisiert wird. 15 Assistent welcher Schritt für Schritt das Gewünschte erstellt Java Programme können mit dem Dokumentationsgenerator Javadoc dokumentiert werden. Dieser Generator erstellt aus dem Javacode Dokumentationen in HTML-Format. 16 - Seite 63 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 50: Auto Comment Tool der IDE Leider barg die IDE von Sun auch eine Enttäuschung. Auch sie schaffte es nicht, die Netzwerkklassen fehlerfrei zu implementieren. (Siehe hierzu den Exkurs im folgenden Kapitel.) Ein grosser Vorteil der IDE ist jedoch die Generierung der *.prc-Files, welche mit einem einfachen «Mausklick» erzeugt werden können (siehe Kapitel 3.4.7). Der Markt für PDA-Entwicklungsumgebungen ist relativ gross und stetig am Wachsen. Die folgende Aufzählung von Produkten zeigt die wesentlichsten Anbieter von IDEs für J2ME Entwicklungen: - Esmertec Jbed: [Esmertec] Esmertec ist eine Schweizer Firma, die eine VM und eine eigene Entwicklungsumgebung auf dem Markt hat. IBM J9: [IBM] IBM bietet eine eigene Entwicklungsumgebung, welche mit einer eigenen VM arbeitet. Es ist geplant, dass in einem späteren «Releases» auch die VM von SUN verwendet werden kann. Waba VM: [Waba] Waba ist ein Opensource Projekt für Windows Handhelds und Palms Forte 4 Java Mobile Edition: [Forte]. Wireless Toolkit: [Wireless] Kompilierungstool von Sun. Dieses Tool erzeugt die *.prc-Files und kann auch zur Entwicklung von einfacheren Applikationen verwendet werden. - Seite 64 - Entwicklung PDA to IT-Workflow (P2W) 3.4.2. Exkurs: Netzwerkprobleme in der VM Zu Beginn konnte keine Verbindung zu einem Servlet hergestellt werden. Die Lösung fand ich erst nach längerem Probieren und Fragen in Forums. Der Standard Code, um eine Verbindung zu einem Servlet aufzubauen ist in Abbildung 51 zu sehen. Dieser Code wurde aus einem Beispiel von der offiziellen J2ME-Seite von Sun kopiert [MIDP-Servlet]. Abbildung 51: Fehler in der VM von SUN Der rote Pfeil markiert die Ursache der Netzwerkprobleme: Mit dem Befehl os.flush(); wird der OutputStream «geflusht», d.h. er wird abgeschlossen und gelöscht. Das Löschen dieses Streams sollte vermeiden, dass gleiche Daten mehrmals verschickt werden. Dies verändert jedoch ungewollt die Requestparameter und führt zu einem so genannten «Chunked Encoding», bei dem die Daten «häppchenweise» übermittelt werden. Diese Codierung wurde mit HTTP 1.1 eingeführt, um Daten von unbestimmter Grösse zu übertragen. Das Problem ist, dass Servlets keine Anfragen in «Chunked Encoding» verstehen und demzufolge der Tomcat Server keine Verbindung zwischen dem PDA und dem Servlet aufbauen kann. Im Rahmen der vorliegenden Arbeit wurde das Problem umgangen, indem der entsprechende Befehl auskommentiert wurde. Es ist anzunehmen, dass SUN diesen Fehler in der nächsten Version beheben wird. - Seite 65 - Entwicklung PDA to IT-Workflow (P2W) 3.4.3. User Interface bei einem PDA Die Fähigkeiten eines grafischen User Interfaces (GUI) sind bei Geräten mit kleinen Displays meist stark eingeschränkt. Nicht anders ist es bei einem PDA und vor allem auch bei einem Handy. Da VMs bei mobilen Geräten im Vergleich zu einer herkömmlichen VM redimensioniert werden, ist es nahe liegend, dass auch die Schnittstelle zum Anwender minimiert wurde. Die Abbildung 52 zeigt das Klassendiagramm des User Interfaces Klassen der J2ME. Display Alert Form Displayable Screen Canvas List TextBox Abbildung 52: Klassendiagramm des User Interfaces Ein wichtiger Unterschied ist zwischen der Klasse Screen und der Klasse Canvas zu finden. Ersteres gilt für sogenannte «High-Level-» und letzteres für das «Low-Level MIDlet User Interface». Mit dem Low Level User Interface ist es möglich, direkt einzelne Pixels zu setzten, was den Aufwand eines User Interfaces beträchtlich erhöht. Mit dem High Level Interface lassen sich Applikationen mit einem aufwendigen GUI schneller und effizienter erstellen. Dafür sind die Möglichkeiten eingeschränkter: Farbige Darstellungen sind (noch) nicht möglich und einige Elemente, wie z.B. Formulare, sind noch nicht ausgereift. Da das vorliegende Projekt auf einem High Level User Interface basiert, wird auf die Möglichkeiten und Restriktionen nun detaillierter eingegangen. Die Klasse «Form» ist, wie aus Abbildung 52 zu sehen ist, eine Unterklasse (Subklasse) der Klasse «Screen». Die Klasse «Form» erbt von seiner Superklasse die Möglichkeit mit so genannten «Commands» umzugehen, welche verwendet werden, um die Applikation zu bedienen. Das Beispiel17 aus Abbildung 53 zeigt den Source Code eines simplen Programms, welches dem Anwender ein Formular anzeigt. Der Anwender kann in einem Textfeld seinen Namen eingeben und den Button «Print» klicken. Darauf erscheint auf einem neuen Bildschirm der Name, der zuvor eingegeben wurde. Siehe hierzu die Abbildung 54. 17 Alle in dieser Dokumentation besprochenen PDA Programme befinden sich auf der beiliegenden CD. Siehe hierzu den Anhang D - Seite 66 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 53: Source Code eines Formulares Der in Abbildung 53 abgebildete Code zeigt nicht den kompletten Source Code, sondern nur die zwei entscheidenden Methoden. Die Screenshots des ersten Formulares sind in Abbildung 54 ersichtlich. Abbildung 54: Screenshot eines Formulares Die Abbildung 54 wirft beim Betrachten eine Frage auf. «Wieso ist der normale Text («Dies ist ein einfaches....») auf die Mitte zentriert und beginnt nicht in der oberen linken Ecke?» Die Antwort ist schnell zur Hand: Dies ist ein Darstellungsfehler der VM-Implementation. Alle Textfelder beginnen auf dem PDA in der Mitte. Diese Gegebenheit muss der Anwender wie der Entwickler akzeptieren. Dieser Fehler ist unumgänglich. Der Button, der sich unten links im Screenshot befindet, kann verschiedene Aktionen auslösen. Diese Aktionen werden im so genannten «CommandListener» behandelt. Im vorliegenden Projekt regeln diese Kommandos die Navigation der verschiedenen «Bildschirme». Ein hilfreicher Vorteil der Sun KVM gegenüber der IBM KVM ist, dass solche Kommandos automatisch auch über die Optionen (wie in Abbildung 55 dargestellt) erreichbar sind. Bei der IBM KVM müssten die Menüs mühsam von Hand programmiert werden. Bei Kommandos ist wichtig, dass die Klasse, in der sie verwendet werden, unbedingt der «CommandListener» implementiert werden muss. Ebenso sollte in jedem Formular der CommandListener gesetzt werden. form.setCommandListener(this); Die obige Codezeile fügt einem Formular den CommandListener bei. Siehe hierzu auch die Abbildung 53 mit dem Source Code. Abbildung 55: Screenshot der Optionen Wird der Button «Print» betätigt, so erscheint ein neues Formular. In der «startApp()» Methode wurde das Formular mit dem Namen «form» instanziert. Im Commandlistener wird nach dem Betätigen des «Print» Buttons ein neues Formular mit dem Namen «result» instanziert und angezeigt. Diesem Formular wird noch ein «exit» Button beigefügt, um die Applikation zu beenden. - Seite 67 - Entwicklung PDA to IT-Workflow (P2W) Die Abbildung 56 zeigt das Result Formular mit dem Namen, der im Screenshot aus Abbildung 54 eingegeben wurde. Der erwähnte «Exit»-Button fehlt im abgebildeten Screenshot. Dieser Button fehlt aber nicht wirklich, er wurde nur nicht gleich definiert. Die Kommandos lassen sich auf gemäss ihren Aktionen definieren. Der «Exit»-Button beendet das Programm und der «Print» Button generiert ein neues Formular. Die KVM von SUN definiert in dem Sinne folgende Aktionen. Back-, OK-, Cancel-, Stop- und Screen-Buttons. Unser «Print»-Button ist vom Typ «Screen» und der «Exit» logischerweise vom Typ «Exit». Abbildung 56: Screenshot Result Forms Buttons vom Typ «Exit» werden nie auf dem Bildschirm dargestellt, sie werden immer unter dem Menüpunkt «Go» aufgelistet. Bei den Bildschirmbuttons ergibt sich ein weiteres Problem: Werden mehr als drei Buttons angemeldet, erscheinen nur − wohl aus Platzgründen − die ersten drei. Ebenso, wenn die Buttons eine zu lange Beschriftung haben (mehr als 6 Zeichen), ist nicht der ganze Beschriftungstext zu lesen. Alle Kommandos werden aber immer noch in der Menüliste aufgeführt. Die fehlenden Buttons können jedoch für einige Verwirrung sorgen. Der aufmerksame Leser fragt sich jetzt wohl, wieso sich im Source Code ein Abbildung 57: Screenshot mit Exit Button System.out.println("Der eingegebene ....") befindet (siehe Abbildung 53). Jeder «System.out-Befehl», der auf dem Emulator ausgeführt wird, wird in ein File geschrieben. Die Abbildung 58 zeigt das Logfile des Palm Emulators. Die KVM auf einem PDA ignoriert die «System.out»-Befehle, sie dienen lediglich einer Flusskontrolle auf dem Emulator und können zum Debugging verwendet werden. Abbildung 58: STDOUT File vom PDA Emulator Natürlich bietet das User Interface einer KVM noch mehr als die genannten Formulare und Textfelder. Es können verschiedene Alarmtypen, Checkboxes, Schieber, Ticker und vieles mehr verwendet werden. Die Literaturliste im Kapitel 6 kann in diesem Falle weiterhelfen. Ebenso befinden sich auf der beigelegten CD verschiedene Programmbeispiele. - Seite 68 - Entwicklung PDA to IT-Workflow (P2W) 3.4.4. Netzwerkverbindungen mit dem PDA Je kleiner ein Computer und je begrenzter die Speichermöglichkeiten desto wichtiger ist die Kommunikation mit der Aussenwelt. Im Falle eines PDAs ist eine Kommunikation mit der Aussenwelt unumgänglich. Der kleine Speicherplatz beschränkt die Funktionsfähigkeit des Gerätes enorm. Eine Form der Kommunikation mit der Aussenwelt kann die Synchronisation mit einem Computer sein. So können Daten auf dem Computer gesichert oder ausgelagert werden. Ebenso können neue Programme installiert werden. Braucht man aber für eine Datensicherung oder für neue Daten immer den Anschluss an einen Computer, verliert ein mobiles Gerät klar an Mobilität: Datenbezug und Datensicherung können nur stationär durchgeführt werden, was bestimmt nicht als mobil betrachtet werden kann. Aus diesem Grunde beinhaltet die KVM Möglichkeiten, mit der Aussenwelt Kontakt aufzunehmen. Die Vorgehensweise ist denkbar einfach: Mit einem Handy wird die Verbindung zur Aussenwelt hergestellt. Da die PDAs immer mehr mit den Handys zusammenwachsen, respektive ineinander integriert werden, ist damit zu rechnen, dass in absehbarer Zeit ein PDA kein externes Handy mehr verwenden muss, um mit der Aussenwelt zu kommunizieren. Die folgenden Erklärungen basieren auf der Annahme, dass der PDA mit einem Handy eine Verbindung zu einer Funknetz-Zelle [Funknetz] aufbauen kann. Die Abbildung 59 illustriert wie der PDA via Handy zum Beispiel auf ein ISDN-Netz und somit auf das Internet zugreifen kann. Abbildung 59: Kommunikationsweg Palm Quelle: [Funknetz] Der PDA kann via Handy den Kontakt zu Basisstationssystem (BSS) aufnehmen, welches die Funkversorgung für ein bestimmtes geografisches Gebiet, einer sogenannten Funkzelle, übernimmt. Das BSS ist meist mit einer Funkverbindung zu einem Mobile-Services Switching Centre (MSC) verbunden, welche als Vermittlungszentrale funktioniert. Von einer MSC können die Daten an weitere MSC oder auf das Festnetz geschickt werden.18 Via Festnetz kann dann eine Verbindung zu einem Internetprovider aufgebaut werden und somit die Verbindung zum Internet hergestellt werden. Soviel zum technischen Ablauf einer Kommunikationsverbindung zwischen einem PDA und dem Internet. Nun wieder zu den Netzwerkfähigkeiten des PDAs. Die KVM bietet eine Vielzahl von Protokollen19, mit denen eine Kommunikation aufgebaut werden kann. Das einzige Protokoll, bei welchem garantiert ist, dass es auf jedem KVM Gerät problemlos funktioniert, ist das Hypertext 18 19 Weitere Informationen zu Mobilfunk können unter [Tannenbaum 2000] bezogen werden Datagramms, Socket, Hypertext Transfer Protocol (HTTP) - Seite 69 - Entwicklung PDA to IT-Workflow (P2W) Transfer Protocol20 (HTTP). HTTP wird in der Request for Comments 2616 (siehe [RFC zu HTTP]) sowie in Kapitel 2.4.1 beschrieben. Normalerweise sendet ein HTTP Server Hypertext Markup Language (HTML) Seiten an seinen Client. Das Problem ist nun, dass ein PDA keinen Browser besitzt, der dieses HTML korrekt interpretieren kann. Dies ist allerdings ein Problem, das das vorliegende Projekt nicht tangiert, da die Programme für Server und Client selbst erstellt werden. Das Programm des Servers muss die notwendigen Daten lesbar an den PDA schicken können. Das Programm aus Abbildung 60 ist nichts anderes als ein Client, welcher ein Servlet auf einem Server aufruft und Daten vom Servlet empfängt. Abbildung 60: Beispiel einer Internetverbindung Das Beispiel aus Abbildung 60 ist nur ein Ausschnitt aus dem ConnectionMIDlet. Die Methode «connectServlet» öffnet eine Verbindung zum Servlet «HelloPDA» und sendet eine einfache Anfrage an das Servlet. Diese einfache Anfrage beinhaltet keine Parameter. Dadurch wird im Servlet eine Methode aufgerufen, welche einen einfachen Text retourniert. Dieser Text wird vom PDA empfangen und in einer Textbox angezeigt. Abbildung 61: Screenshots der Internetverbindung Auf der linken Seite der Abbildung 61 ist der Eingabebildschirm zu sehen und auf der rechten Seite sind die empfangenen Daten in der Textbox sichtbar. Der Verbindungsaufbau ist ziemlich einfach. Die Abbildung 60 zeigt die Methode, welche die Verbindung zum Servlet aufbaut, auf seine Antwort wartet und die Antwort einem String zuweist. Zuerst wird eine HttpConnection mit einem Parameter - Seite 70 - Entwicklung PDA to IT-Workflow (P2W) instanziert. Dieser Parameter ist die Unified Ressource Location (URL) und gibt an, wo das Servlet zu finden ist. In einem weiteren Schritt wird der Request (siehe Kapitel 2.4) definiert. In diesem Falle handelt es sich um einen «GET» Request. Weiter müssen noch einige so genannte Properties gesetzt werden. Die Properties geben Auskunft über die Codierung des Inhaltes, die Art des Inhaltes, den Client sowie die Sprache (wegen Sonderzeichen). Client Server GET Request Antwortstream Abbildung 62: Kommunikationsablauf Die Daten werden in so genannten Byte-Streams (OutputStream und InputStream) verschickt. Der Kommunikationsablauf ist in Abbildung 62 zu sehen. 3.4.5. Persistente Datenspeicherung auf dem PDA Damit Daten auf einem PDA auch gespeichert werden, wenn dieser ausgeschaltet wird, darf ein Konzept zur persistenten Datenspeicherung in der KVM nicht fehlen. Leider kann J2ME keine internen Datenbanken ansprechen. So könnte eine Speicherung elegant gelöst werden. Dies hätte allerdings zur Folge, dass das Programm gerätespezifisch würde. Ebenso kann J2ME keine Systemdaten wie zum Beispiel Einträge aus dem Adressbuch lesen. Die KVM von SUN löste dieses Problem, indem eine eigene Datenbank mit Java auf dem PDA implementiert werden kann. Dieses Konzept nennt sich «RecordStore». Bei den «RecordStores» handelt es sich um Datensätze, die persistent abgelegt werden. Das Beispiel aus Abbildung 63 zeigt ein einfaches Programm, das Namen speichern kann. Abbildung 63: persistente Speicherung Der Name des «RecordStores») ist in diesem Beispiel «NAMEN» (siehe Abbildung 63). Besteht dieser RecordStore zur Startzeit noch nicht, wird der «RecordStore» instanziert. Die auf den Namen folgende boolsche Variable regelt diese Instanzierung. Ist diese Variable auf «false» gesetzt und der «RecordStore» existiert noch nicht, so wird eine «RecordStoreException» ausgelöst. Die Daten werden mit einem «DataOutputStream» in den «RecordStore» geschrieben. Das Schreiben von Daten in den Speicher ergibt grundsätzlich keine Probleme, das Löschen und Lesen birgt in diesem Fall aber einige Schwierigkeiten. Sobald gewisse Records gelöscht werden, können beim Lesen und Schreiben Fehler auftauchen. Die verschiedenen Records werden mit so genannten Indizes referenziert. Wird ein Record gelöscht, so bleibt der Index bestehen, enthält aber keine Daten mehr. Die Datenbank «RecordStore» kümmert sich nicht um die referentielle Integrität [Meier 2001, Seite 44] der Daten. Wird der leere Index zu einem später Zeitpunkt gelesen, wird eine «Exception» ausgelöst. Dieses - Seite 71 - Entwicklung PDA to IT-Workflow (P2W) Problem kann gelöst werden, indem immer ein Vector mit den gültigen Indizes mitgeführt wird. Ein Beispiel eines solchen Vectors zeigt die Abbildung 64. Zu beachten ist, dass die IDs des «RecordStores» bei «1» beginnen und nicht bei «0», wie es zum Beispiel bei Vektoren üblich ist. Index RecordStore 6 Daten 5 Vector 5 4 3 Daten 3 Daten 2 2 1 Daten 0 Index 6 3 4 2 3 1 1 0 Abbildung 64: Hilfsvektor für den Speicherzugriff Mit Hilfe eines solchen Vektors können die Speicherzugriffe ohne Fehler erfolgen. Beim Schreiben wie beim Löschen muss einfach darauf geachtet werden, dass der Hilfsvektor aktualisiert wird. Der Vektor wurde im vorliegenden Projekt mit einer Methode ständig neu generiert. Die Abbildung 65 zeigt ein Codefragment aus der Methode «getIDs()»21. Abbildung 65: Generierung des Hilfsvektors Mit einem «RecordEnumerator» wird über den «RecordStore» iteriert, bei jedem gültigen Eintrag wird die ID des Records in den Hilfsvektor geschrieben. 3.4.6. Die Navigation in P2W Die Abbildung 66 zeigt die Navigation in der P2W-Applikation für den Palm. In der Abbildung wurden die Bildschirme, die mit dem Server verbunden sind, grau hinterlegt. Wird ein grauer Kasten betreten, wird der User mit dem Server verbunden, verlässt er diesen, so meldet er sich vom System ab. Die Bezeichnung «sel» versteht sich als Selektierung eines Elementes aus einer Liste. Generell kann gesagt werden, dass die meisten Bildschirme aus Listen oder sogenannten Forms bestehen. Die Merkmale der Listen sind die selektierbaren Elemente in der oberen Bildschirmhälfte, die mit einem beginnen. Bei diesen Aufträgen ist immer nur die erste Seite dargestellt. Die Aktion befindet sich immer auf der letzten Seite und ist über einen «Pull Down» Menübefehl erreichbar (siehe Kapitel 4). Die verschiedenen «Pull Down» Optionen wie «Info», «Copyright» und «Exit» wurden der Übersichtlichkeit halber nicht dargestellt. Die Pfeile aus der Abbildung 66 stellen den so genannten «Navigationsweg» dar, die Beschriftung gibt Auskunft über die Art des Befehls. 21 Siehe hierzu die Javadoc auf der beiliegenden CD - Seite 72 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 66: Navigation von P2W - Seite 73 - Entwicklung PDA to IT-Workflow (P2W) 3.4.7. Programme auf einem Palm PDA Die letzten Unterkapitel erklärten, wie Java Programme für einen PDA erstellt werden können. Die Frage stellt sich nun, ob diese Programme wie ein normales Java Programm kompiliert werden und die *.class-Datei auf den Palm geladen und so gestartet werden kann? Die Antwort auf diese Frage muss verneint werden. Ganz so einfach wie bei einem normalen JavaProgramm ist dieser Vorgang leider nicht. Palmprogramme haben die Endung *.prc oder *.pdb, wobei sich letzteres auf palmspezifische Datenbanken bezieht. Aus einem Programm sollte nun ein File generiert werden, welches das nötige Format aufweist. Mit der Entwicklungsumgebung von Forte können *.prc Files direkt aus dem Javacode generiert werden (siehe Kapitel 3.4.1). Sun verwendet für diesen Kompilierungsvorgang das Java-Programm «MakePalmApp». Dieses Programm erzeugt eine palmkonforme Applikation und wird auch von verschiedenen anderen Entwicklungsumgebungen wie zum Beispiel «Wireless Toolkit» genutzt. Forte kompiliert in einem ersten Schritt das Java-Programm in ein *.class-File. Darauf folgt die so genannte «Preferifizierung», welche dem Programm Daten hinzufügt, die das Ausführen des Programmes erleichtern. Dieser Vorgang hat zur Folge, dass die *.class-Dateien rund 15 % grösser werden. Danach wird das Programm mittels einem «Packager“ in ein *.jar-Archiv gepackt. Dieses *.jar-Archiv wird mit einem Konverter in ein *.prc-File konvertiert und dieses kann dann auf den PDA geladen und gestartet werden. Die Abbildung 67 zeigt den Kompilierungsvorgang. Für den Anwender von Forte sind die einzelnen Schritte nicht ersichtlich. Der Anwender wählt in der IDE «Execute» und aus dem gewünschten Java Programm wird ein PDA-Programm generiert. Forte bietet auch die Möglichkeit, Java-Programme in andere Formate zu kompilieren, so dass die Applikationen auch auf Handys funktionieren. Siehe hierzu das folgende Unterkapitel. Ein Nachteil von Java auf PDAs ist die zusätzliche VM. Die VM muss separat auf den PDA geladen werden. Kritiker von J2ME sehen dies als einen beträchtlichen Nachteil von J2ME und kritisieren ebenso den Geschwindigkeitsverlust, der durch die VM entsteht. MIDlet.java Kompilieren Auf das Endgerät laden MIDlet.class MIDlet.prc konvertieren Preverifizieren Package MIDlet.class MIDlet.jar Abbildung 67: Kompilierungsvorgang - Seite 74 - Entwicklung PDA to IT-Workflow (P2W) 3.4.8. Spezialitäten der Applikation Ein durchaus erfreulicher Aspekt dieses Projektes ist, dass die Applikation auf allen «Java-fähigen» Handys verwendbar ist. In diesem Falle kann man von echter Maschinenunabhängigkeit sprechen. Durch das kleinere Display des Handys ist die Darstellung jedoch um ein Vielfaches schlechter als auf einem PDA. Ansonsten zeigt J2ME seine Stärken und das Potential zur Programmiersprache für mobile Geräte. Hier kommt eine weitere Stärke der Entwicklungsumgebung von Forte dazu. Die erstellten Java Programme lassen sich problemlos für andere Endgeräte verwenden. Der Anwender kann in der IDE den gewünschten Gerätetyp auswählen und die IDE kompiliert, verifiziert und generiert das Programm für den ausgewählten Gerätetyp. Abbildung 68 zeigt die Applikation P2W auf verschiedenen Geräten. Abbildung 68: P2W auf Handys In der Abbildung 68 ist auf der linken Seite ein Handy mit einem farbigen und «normalen» Display zu sehen. In der Mitte ein Handy mit minimalen Anforderungen punkto Displaygrösse, Speicher und Eingabefunktionen. Rechts ist das «Java-fähige» Motorola i85s dargestellt. Auf allen drei Mobiltelefonen funktioniert die P2W-Applikation einwandfrei. - Seite 75 - Entwicklung PDA to IT-Workflow (P2W) 3.4.9. Simulationen mit dem Palm OS Emulator Der Palm OS Emulator (POSE) ist ein Hard- und Software Emulator22 für PC und MacintoshPlattformen. Vorteile eines solchen Emulators sind (Abbildung 69): - Vor dem Kauf können verschiedene Palm Modelle getestet und betrachtet werden. Fremde und selbst erstellte Programme können gestestet werden. Es können saubere Screenshots gemacht werden. Es bestehen Debug23 Möglichkeiten. Die IDE (Forte) kann die entwickelte Software direkt auf den Emulator laden. Der Emulator wird danach automatisch gestartet. Der Emulator bietet dem Anwender dieselben Funktionen wie ein realer Palm. Anstelle eines Stiftes kann die Maus verwendet werden. Die Graffiti24 Funktion kann ebenso genutzt werden. Alle Hardwarebuttons können analog zum realen Gerät verwendet werden. Abbildung 69: Palm OS Emulator Die Downloadinformationen, Installationshinweise sowie Konfigurationen werden im Anhang B beschrieben. Ist der POSE einmal installiert, sollte das Betriebssystem des gewünschten PDA's installiert werden. Zu diesem Zweck ist dem Emulator das kleine Program «ROM Transfer.prc» beigelegt. Mit diesem Programm kann das lizensierte Betriebsystem des PalmOS ROM auf den POSE geladen werden. Das entsprechende ROM ist dem Emulator nicht beigelegt25, da es ein lizenziertes Produkt ist. 22 Dieser Emulator kann unter [Palm] gratis heruntergeladen werden. Diese Debugmöglichkeiten sind jedoch noch nicht so ausgereift. Respektive kaum brauchbar. Die einzige «Debugmöglichkeit» ist der Befehl «System.out.println()». 24 Schreiben mit dem Stift auf dem Touchscreen. 25 Es ist jedoch kein Problem, verschiedene Betriebssysteme (ROM Dateien) auf dem Internet zu finden. Allerdings muss gesagt werden, dass die Weitergabe und der Bezug über das Internet von ROM Dateien eine illegale Aktion darstellt. Die Weitergabe von ROM Dateien ist nur Palm Inc. gestattet. 23 - Seite 76 - Entwicklung PDA to IT-Workflow (P2W) 3.4.10. Mocha PPP Die dänische Softwarefirma MochaSoft [MochaSoft] entwickelte eine praktische Software, damit ein PDA mit dem Internet verbunden werden kann, ohne dass dabei ein Mobiltelefon verwendet werden muss. Das Programm «Mochasoft PPP» simuliert dem PDA ein Modem. Mit diesem emulierten Modem kann ein PDA mit dem Internet kommunizieren. Das Programm ist für alle gängigen Plattformen erhältlich. Leider ist das Programm nicht «PDA-Produkt-übergreifend», es muss für die verschiedenen PDAs immer der jeweilige Emulator verwendet werden. Eine weitere Einschränkung des Programms ist, dass die Verbindung zum PC zwingend ein serielles Kabel benötigt. Gemäss Angaben von Mocha Soft sollte in der nächsten Zeit eine Version erscheinen, die auch USB unterstützt. Die Abbildung 70 zeigt den schematischen Aufbau von Mocha PPP. Der Computer emuliert für den PDA ein Modem, mit dem auf das Internet zugegriffen werden kann. Abbildung 70: Anwendung von Mocha PPP Installationshinweise und Konfigurationen befinden sich in Anhang C oder unter [MochaSoft]. - Seite 77 - Entwicklung PDA to IT-Workflow (P2W) 3.5. Implementation Server 3.5.1. Serverentwicklung mit Websphere Studio Die Serverentwicklung wurde, im Gegensatz zur Clientimplementation, auf einem Produkt von IBM erstellt. Das Websphere Studio (WS) ist eine hilfreiche Umgebung zur Entwicklung von Java Server Pages (JSP), Servlets, Java Beans und HTML Seiten. Mit dem WS können HTML- und JSP-Seiten mit einfachen Mitteln erstellt werden. Tabellen, Formulare und JSP-Include Tags können mit einem Wizzard erstellt werden. Ein Hilfsmittel zur Erstellung von JSP-Seiten ist der JSP-Compiler, welcher ein zeitraubendes Testen im Browser erspart. Ein weiteres Feature im WS ist die Ansicht der Beziehungen unter den verschiedenen HTML-, JSP- und Java-Files. Abbildung 71 zeigt die Beziehungen der Administrationskonsole. Abbildung 71: Websphere Studio Da die Administration mit JSP-Seiten und Java Beans realisiert wurde, konnte die Unterstützung von WS voll ausgeschöpft werden. Im WS kann eine direkte Verbindung zu einem beliebigen Server erstellt werden. Diese Verbindung ermöglicht, dass erstellte Files nach einer Voransicht direkt auf dem Server publiziert werden können. Die entsprechenden Files werden in den korrekten Ordner des Servers kopiert. Voraussetzung ist natürlich eine richtige Konfiguration des Servers und der Verbindung. Der komplette Java Code (Java Beans und das Servlet) wurde ebenfalls im WS erstellt. Das WS verwendet für Java Code nicht einen eigenen Editor; dieser kann frei gewählt werden. Leider konnte das WS den Javadoc Code nicht automatisch generieren, dies musste via Dos-Box erledigt werden. Ein weiteres Problem ist die Formatierung (Einrücken) des JSP-Codes, welche auch nicht automatisiert wurde. Das WS ist ein älteres Produkt, welches im Frühjahr 2002 durch das Websphere Studio Application Developper (WSAD) abgelöst wurde und die Features von Visual Age 4 Java und des WS vereinte. WSAD wäre für diese Entwicklung sicher passender gewesen, konnte aber wegen den mangelnden Ressourcen des Laptops nicht verwendet werden (siehe Kapitel 5). - Seite 78 - Entwicklung PDA to IT-Workflow (P2W) 3.5.2. Access-Datenbank (Administration) Nach einer ersten Analyse war man sich einig, dass für die Administration die bereits bestehende Ascom Oracle-Datenbank verwendet werden sollte. Diese Lösung wäre vor allem erstrebenswert gewesen, wenn die Applikation einmal verwendet werden würde. Da dies allerdings nicht eintreten sollte, entschied man sich für eine einfache und lokal gehaltene Access Datenbank (siehe Kapitel 5). Die Unterschiede, in der Verwendung einer Access oder Oracle Datenbank, sind nicht gravierend. Die Access-Datenbank für die Userverwaltung besteht aus einer einzigen Tabelle und einigen Einträgen. Abbildung 72 zeigt diese Tabelle. Abbildung 72: Userverwaltung Die Benutzerverwaltung hätte durch eine Erweiterung der vorhandenen Datenbank der Abteilung Human Ressource umgesetzt werden können. Da für die Applikation P2W jedoch nur wenige Attribute benötigt werden, und auf der HR-Datenbank viele sensible Daten zugänglich sind, wurde eine Anbindung nicht in Erwägung gezogen. Damit der Server die Datenbank findet, muss in der Systemadministration diese Datenbank angemeldet werden. Der Vorgang wird im Anhang A beschrieben. Die Verbindung zur AccessDatenbank wird in Java über eine JDBC-ODBC-Bridge hergestellt. Die «Java Database Connectivity» (JDBC) macht eine «Open Database Connectivity» (ODBC) zur entsprechenden Datenbank. Diese Verbindung wird «JDBC-ODBC-Bridge» genannt. Der Datenbanktreiber «sun.jdbc.odbc.JdbcOdbcDriver» ist die effektive Treiberklasse26, die Java verwendet, um eine Verbindung zur Datenbank aufzubauen. Der «dbusername» und das «dbpass» aus Abbildung 73 sind die Zugangsdaten zur Datenbank. Diese Parameter wurden in der Datenbank definiert (siehe Anhang A). Um die «Connection» aufzubauen, wird die Methode «getDBConnection()» aufgerufen (siehe Abbildung 74). Diese gibt ein «Connection Objekt» zurück und das Objekt stellt die Verbindung zur Datenbank her. Abbildung 73: Datenbankverbindung Wie aus der Methode von Abbildung 73 (rot markiert) ersichtlich ist, werden vier Parameter verwendet. Diese Parameter sind in der Tabelle 15 beschrieben. 26 Dieser Treiber kann von Sun unter [JDBC-Bridge] gratis bezogen werden - Seite 79 - Entwicklung PDA to IT-Workflow (P2W) Parameter für die Datenbank Connection Wert dbname jdbc:odbc:PDA_USER dbdriver sun.jdbc.odbc.JdbcOdbcDriver dbusername user dbpass user Tabelle 15: Parameter für die Datenbankverbindung Die Werte der beschriebenen Parameter werden beim Initialisierungsvorgang aus einem XML-File gelesen. Sie können zu jeder beliebigen Zeit einer anderen Situation angepasst werden. Einzige Voraussetzung ist, dass der Server neu gestartet wird, was zur Folge hat, dass das Konfigurationsfile neu eingelesen wird. Der Datenbankname ist «PDA_USER» (siehe Anhang A). Das Präfix «jdbc:odbc:» bezeichnet die Art, mit der auf die Datenbank zugegriffen wird. Hier über die «JDBCODBC-Bridge». Ist eine Verbindung zu Datenbank aufgebaut, kann mit der «Standard Query Language» (SQL) eine Abfrage vorbereitet werden. Diese Abfrage kann dann auf die Datenbankverbindung angewendet werden und die erhaltenen Daten können entsprechend gespeichert werden. Die Abbildung 74 zeigt ein Codefragment, das eine solche Abfrage durchführt. Die Verbindung zur Datenbank wird mit der vorher beschriebenen Methode «getDBConnection()» durchgeführt (grün markiert). Abbildung 74: SQL Abfrage Betrachten wir Abbildung 74, so sehen wir, wie in einem ersten Schritt der Verbindung gemeldet wird, dass eine Abfrage vorbereitet werden soll (1.). Im zweiten Schritt (2.) wird die Abfrage ausgeführt und in ein so genanntes «Resultset» geschrieben. Über dieses «Resultset» kann iteriert und die Daten können einem Vectorelement zugeordnet werden. - Seite 80 - Entwicklung PDA to IT-Workflow (P2W) 3.5.3. Domino Notes-Datenbank Die Daten des WfMS der Ascom Informatik sind in einer Domino Notes-Datenbank untergebracht. Domino Notes-Datenbanken unterscheiden sich von herkömmlichen Datenbanken. Die Daten in relationalen Datenbanken wie Access und Oracle sind meist fix strukturiert. Jedes Attribut hat einen klar definierten Datentyp (z.B. String mit der Länge 64). Die Daten in einer Domino-Datenbank erscheinen unstrukturiert. Die Felder können verschiedene Datentypen aufweisen. Text, formatierter Text, Grafiken, Musik, Videos, usw. Daten können in verschiedenen Ansichten − so genannten Views − betrachtet werden. Diese Views können mehrere Dokumente beinhalten. Die Domino Daten werden in einem so genannten Notes Storage File (NSF) gespeichert. Aus diesem Grunde haben die Domino Datenbanken die Endungen *.nsf. Der Ablauf einer Domino-Datenbankabfrage erinnert im weitesten Sinne an einen Zugriff auf eine Access Datenbank. In erster Linie muss eine Verbindung zur Datenbank aufgebaut werden. Nach erfolgreicher Verbindung muss die Datenbank angegeben werden und danach kann die Abfrage gestartet und die Daten ausgewertet werden. Der Unterschied besteht darin, dass nicht einzelne Felder, sondern so genannten Views abgefragt werden. In den Views wird dann Dokument um Dokument durchgegangen und die gesuchten Dokumentfelder herausgelesen. Um eine Verbindung zu der Domino-Datenbank aufzubauen, muss das Notes spezifische Java Application Programming Interface (API) importiert werden. Das «NCSO.jar»27 muss im Classpath des Servers referenziert sein. Die Datenbankanbindung mit Java zu Domino wird unter anderem im Buch [Muhs 2003] ausführlich besprochen. Lotus Notes bietet ein hilfreiches und downloadbares Online [9] Manual an. Die Abbildung 72 zeigt den Verbindungsaufbau und die Vorbereitung zur Datenabfrage. Abbildung 75: Verbindungsaufbau zu Domino Datenbanken Die Methode aus Abbildung 75 beinhaltet verschiedene Parameter, welche zuerst erklärt werden. Die rot markierten Parameter werden aus dem XML-Konfigurationsfile gelesen. Dies ermöglicht eine gewisse Flexibilität in Bezug auf das WfMS. Der Ort des Servers sowie der Datenbankname können schnell und einfach angepasst werden. Ändert allerdings die Struktur im WfMS, so ist eine Änderung im Source Code unumgänglich. Die häufigsten Änderungsmöglichkeiten sind mit diesen zwei Parametern allerdings abgedeckt. Die Tabelle 16 zeigt die rot markierten Parameter mit ihren Werten. Parametername host dbname loginname pass Wert SrvDev DevCorner/NISESA/PDATEST_rac_ord.nsf nisesa ******* Tabelle 16: Verbindungsparameter zum WfMS 27 Die notwendigen APIs befinden sich auf der beigelegten CD - Seite 81 - Entwicklung PDA to IT-Workflow (P2W) Da in diesem Projekt auf ein eigenes WfMS (Kopie des Originals) zugegriffen wird, muss mit dem persönlichen Username auf die Datenbank zugegriffen werden. Für ein Projekt im vorliegenden Rahmen ergab es keinen Sinn, einen globalen allgemeinen User neu zu definieren. Möchte die Applikation tatsächlich verwendet werden, sollte man auf alle Fälle einen globalen User erfassen. Ein globaler User bietet den Vorteil, dass für eine Datenbankverbindung zum WfMS nicht das persönliche Passwort verwendet werden muss und die Authentifizierung des Users zu einem späteren Zeitpunkt und losgelöst von einer Verbindung zur Datenbank durchgeführt werden kann. Um auf die Domino-Datenbank zuzugreifen, muss zuerst eine Session kreiert werden. Dies wird in Abbildung 75 an der gelb markierten Stelle umgesetzt. Der Parameter «IOR» ist nichts anderes als eine 32-stellige Zahl, die den Host referenziert. Mit der Session wird die Datenbank verbunden (grün markiert). Mit «getView()» wird die notwendige Ansicht (View) auf die Datenbank aufgerufen (braun). Um über diese View zu iterieren, muss eine Art Enumerater gebildet werden (blau). Aus diesem Enumerater wird das erste Element bezogen (violett), und anhand dieses Elements kann auf die einzelnen Felder zugegriffen werden. Dieses Element beinhaltet nun die verschiedenen Dokumente. In der Abbildung 76 ist der NotesClient abgebildet, welcher die verschiedenen Dokumente zu Beginn der While-Schlaufe darstellt. Die jeweiligen Überschriften stellen Kategorien dar, welche auch noch speziell selektiert werden müssen, da nicht alle Daten für diese Applikation verwendet werden. Abbildung 76: Die verschiedenen Kategorien im WfMS Die Zugehörigkeit zu diesen Kategorien wird zu Beginn der While-Schlaufe überprüft, um die entsprechenden Dokumente herauszufiltern. Aus den Dokumenten werden wiederum die Feldinhalte herausgelesen und in einer Variablen oder einem Vektor zwischengespeichert. Die einzelnen Feldnamen können im Notes Client wie in Abbildung 77 über die Dokumenteigenschaften herausgefunden werden. - Seite 82 - Entwicklung PDA to IT-Workflow (P2W) Abbildung 77: Eigenschaften eines Notes Dokumentes Der gelb markierte Eintrag in Abbildung 77 ist der Feldname und der rot markierte ist der Wert des Feldes. Wichtig bei den Verbindungen zu einer Domino Notes-Datenbank ist, dass die Verbindung nach einer Abfrage jedes Mal geschlossen wird28. Jedes Dokument hat eine eindeutige ID. Diese ID wird in der Domino Notes-Datenbank «UNID» genannt. Mit dieser ID kann direkt auf ein Notes Dokument zugegriffen werden. Diese Referenzierung erleichtert, sofern die «UNID» bekannt ist, das Schreiben von Daten. Beim Lesen der Daten wird über die Dokumente iteriert, um die UNID herauszufinden. Dies erleichtert die darauf folgenden Schreibzugriffe, bei denen die UNID bekannt ist. Nachfolgend in Tabelle 17 eine Übersicht der verwendeten Software und deren Versionen: Programm Version Forte 4 Mobile Edition Palm OS Emulator (POSE) Tomcat Server WebSphere Studio Access Java Developpment Kit (jdk) Lotus Notes Lotus Notes Designer Bezogen von [Forte] [Palm] [Tomcat] Ascom Informatik Ascom Informatik [Java Dev] Ascom Informatik Ascom Informatik Tabelle 17: Verwendete Software 28 Die Verbindungen zur Domino Notes-Datenbank müssen nach jeder Abfrage sauber geschlossen werden, um nicht die maximale Anzahl offener Verbindungen zu überschreiten. Falls dies beim Testen der Software trotzdem vorkommt, muss auf den Timeout der bestehenden Verbindungen gewartet werden, da der Datenbankserver weitere Verbindungen ablehnt. - Seite 83 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4. Inbetriebnahme und Installation Dieses Kapitel behandelt die Inbetriebnahme und Installation der in diesem Projekt erstellten Komponenten. Die Anleitung soll Schritt für Schritt nachvollziehbar sein. Um die volle Funktionalität der Applikation P2W testen zu können, ist eine Verbindung zum WfMS der Ascom nötig. In der Applikation sind jedoch drei kleine Beispiele beigelegt, die auch ohne direkte Verbindung mit dem WfMS getestet werden können. Die folgenden Erklärungen beziehen sich auf Microsoft Windows Betriebssysteme. Wird ein anderes Betriebssystem verwendet, sollte für die Installation die Homepage der Hersteller kontaktiert werden. 4.1. Server Damit der PDA mit dem WfMS der Ascom verbunden werden kann, ist ein Webserver notwendig, der die vom PDA kommenden Befehle weiterleitet (siehe Kapitel 3.3.1). Diese Einheit wurde in Form eines Servlets realisiert. Dieses Servlet wurde in einer lokalen Tomcat Umgebung getestet. In der Produktionsumgebung ist es ebenfalls ein Tomcat Application Server gewesen. Bekanntester Server ist der Apache-Webserver, welcher von der Apache Software Foundation (ASF) entwickelt wurde. Dieser Webserver hatte allerdings den Nachteil, dass serverseitig keine Java Programme ausführbar waren. Im Rahmen des Jakarta-Projekts wurde der Servlet Container «Tomcat» entwickelt. Mit einem von der ASF entwickelten Protokoll liess sich der Apache Webserver mit dem Tomcat Servlet Container verbinden. Dieses Protokoll nennt sich «Apache JServ Protokoll» (AJP). Auf Grund der URL-Struktur konnten Anfragen an den Servlet-Container weitergeleitet werden. Dies ermöglicht eine flexible Handhabung von serverseitigen Java Programmen. Das Jakarta Projekt wuchs in den letzten Jahren und passte sich den Anforderungen der Informatik an. «Catalina» war das Resultat dieses Prozesses. «Catalina» ist ein Mini-Application-Server, der aus einem ServletContainer, einem JSP-Compiler und einem Webserver besteht. Die Versionen 4.X29 von Tomcat beruhen auf Catalina und benötigen daher keinen Apache Webserver mehr. Im vorliegenden Projekt wurde mit einem solchen Tomcat Server gearbeitet. 4.1.1. Tomcat Server Vor der Installation eines Tomcat-Servers muss ein Java Development Kit (JDK) installiert werden. Für das vorliegende Projekt wurde JDK 1.4.0. eingesetzt. Es ist empfehlenswert, dass die «BinaryVersion» des Servers bezogen wird. Diese kann einfach entpackt und mit der «Setup-Funktion» installiert werden. So kann das Kompilieren des Servers umgangen werden. Sind JDK und der Tomcat installiert, müssen die Systemvariablen angepasst werden. Die Systemvariablen findet man unter «Start / Settings / Control Panel / System Properties». Dort wählt man «Environment» (Umgebung) aus. Jetzt können die notwendigen Umgebungsvariablen definiert werden. Die notwendigen Umgebungsvariablen sind in Tabelle 18 aufgelistet: Variablenname Wert CATALINA_HOME Installationspfad des Tomcat Servers JAVA_HOME Installationspfad des Java Development Kits Tabelle 18: Umgebungsvariablen 29 Die früheren Tomcat Versionen benötigten immer noch einen Apache Server. - Seite 84 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) Ist dies erledigt, ist die Installation des Tomcat Servers beendet. Der Server kann unter dem Menüpunkt Programme gestartet werden. Mit einem Browser kann seine Funktionalität getestet werden. Wird im Browser die URL http://localhost:8080/index.html eingegeben, erscheint die Startseite vom Tomcat. 4.1.2. Konfiguration des Tomcat Servers Da die P2W-Applikation als Servlet läuft, muss dieses beim Server «angemeldet» werden. Ebenso muss dem Server gesagt werden, wie das Servlet angesprochen wird und wie der Klassennamen des gewünschten Servlets lautet. Dies wird im File «web.xml» gemacht. Das File muss gemäss Abbildung 78 erweitert werden. Abbildung 78: Konfiguration mit dem web.xml Die Erweiterung des «web.xml» wird bei einem Neustart des Tomcats mitberücksichtigt. So kann der Server nun auch das entsprechende Servlet finden. Das Testprogramm für den PDA verwendet das Servlet «HelloPDA», dieses sollte ebenfalls wie in Abbildung 78 angemeldet werden. Die Servlets müssen sich aber in der gewünschten Webumgebung des Tomcats befinden. Die kompilierten Servlets sollten sich im Pfad «.../Apache Tomcat 4.0/webapps/ROOT/Web-inf/classes» befinden. Anstelle des Verzeichnisses «ROOT» kann natürlich die eigene Webapplikation stehen. Dies würde allerdings eine aufwendigere Konfigurationsprozedur verlangen. Die restlichen, kompilierten JavaProgramme sollten ebenfalls in diesen Ordner kopiert werden. 4.1.3. Notwendige Java APIs Der Server nimmt Verbindung zm WfMS der Ascom Informatik auf. Dieses ist bekanntlich in einer Notes Datenbank untergebracht. Verbindungen zu Notes-Datenbanken sind im Java 2 Standard Edition (J2SE) nicht integriert. Aus diesem Grund muss das entsprechende Java Application Programming Interface (API) dem Server hinzugefügt werden. Das Java Archiv «Notes.jar» und «NCSO.jar» soll in den Ordner «.../Apache Tomcat 4.0/lib» kopiert werden. In diesem Ordner befinden sich Java-Archive, die beim Start des Tomcats in seine Umgebung geladen werden. Normalerweise sollten die Pfade der Java Archive im «Classpath» referenziert werden, dieser wird aber vom Tomcat ignoriert. Damit das XML-Konfigurationsfile eingelesen werden kann, benötigt der Tomcat noch die beiden XML-Archive «xerces.jar» und «xalan.jar» Diese müssen in denselben Pfad kopiert werden. - Seite 85 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.1.4. Filestruktur auf dem Server Damit bei der Installation des Servers keine Komplikationen auftreten, soll dieselbe Filestruktur wie in Abbildung 79 erstellt werden. Abbildung 79: File Struktur auf dem Server 4.1.5. Administrationskonsole Wurden die obigen Schritte erfolgreich durchgeführt, steht einem ersten Test nichts mehr im Wege. Bevor die Administrationskonsole allerdings gestartet wird, soll die Datenbank gemäss dem Anhang A konfiguriert werden. Sind alle Java Server Pages Files und die kompilierten Java Klassen im richtigen Ordner abgelegt, wird die Konsole einwandfrei arbeiten. Der Administrator kann sich mit dem Usernamen «Admin» und dem Passwort «admin» beim System anmelden. Es wird empfohlen, dass das Initialisierungspasswort sofort in ein beliebiges Passwort geändert wird. Ist der Tomcat Server gestartet, so kann die Konsole über die URL «http://<rechnername>:8080/jsp/start.jsp» gestartet werden. Abbildung 80 zeigt die Konsole. - Seite 86 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) Abbildung 80: Administrationskonsole Die Administrationskonsole bietet dem Administrator die Möglichkeit, neue User zu erfassen, diese zu editieren, zu sperren/entsperren und zu löschen. 4.1.6. Konfigurationsfile Konfigurationsfiles mit XML haben den Vorteil, dass sie nicht auf dem gleichen Rechner vorhanden sein müssen wie der zu konfigurierende Server. Ebenso ist das XML File bezüglich des Betriebssystems unabhängig. Aus diesem Grund wurde für das vorliegende Projekt diese Methode verwendet. Das XML-File wird in der Initialisierungsphase des Servlets mit Java eingelesen und die Parameter werden für einen späteren Gebrauch gespeichert. Tabelle 19 zeigt die Konfigurationsparameter des Servers: Name: dbusername dbpass dbname dbdriver host notesdbname loginname pass Wert: user user jdbc:odbc:PDA USER sun.jdbc.odbc.JdbcOdbcDriver SrvDev DevCorner/NISESA/PDATEST rac ord.nsf nisesa ******** localtion d:\Programme\Apache Tomcat Tabelle 19: Konfigurationsfile - Seite 87 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.2. Client Um Applikationen auf einen PDA zu laden, muss auf dem PC die entsprechende Software installiert sein. Standardmässig wird diese dem Gerät mitgeliefert. Die Bedienungsanleitung sollte in diesem Falle dem Produkt beiliegen. (Die folgenden Erklärungen beziehen sich auf die Installation von Programmen auf einen Palm-PDA.) VM für andere Geräte müssen beim entsprechenden Hersteller bezogen werden. Bei den nachfolgenden Erklärungen ist zu beachten, dass die verschiedenen Programme für einen Palm PDA kompiliert wurden, und nicht auf anderen Geräten verwendet werden können. Möchten die Programme auf einem anderen Gerät verwendet werden, müssen diese für die entsprechende VM neu kompiliert werden. Dies kann mit dem auf der CD beiliegenden Forte gemacht werden. 4.2.1. Installation und Konfiguration der Virtual Machine (VM) auf dem PDA Bevor Java Programme auf einem PDA verwendet werden können, muss die VM auf den PDA geladen werden. Diese ist unter [24] oder auf der beiliegenden CD verfügbar. Das File «MIDP.prc» ist die VM. Sie kann mit dem entsprechenden Synchronisationstool auf den PDA geladen werden. Nun sind einfache Java Programme auf dem PDA lauffähig. Damit aber eine Verbindung mit dem Internet hergestellt werden kann, müssen noch zwei Netzwerkparameter gesetzt werden. Siehe hierzu Abbildung 81. Abbildung 81: Konfiguration der J2ME VM 4.2.2. Installation der P2W Applikation und der Testprogramme Die kompilierten Java-Programme können, nachdem sie in *.prc Files konvertiert wurden, mit einem Synchronisationsprogramm auf den PDA geladen werden. Will man die Applikationen auf dem POSE ausführen, müssen die Programme gemäss Anhang B installiert werden. Die Programme können gestartet werden, indem mit dem Stift auf das entsprechende Icon getippt wird. Wurde das Programm neu installiert, befindet es sich in der Kategorie «Unfiled». Kategorien sind vergleichbar mit verschiedenen Ordnern auf dem PC. Die Kategorien sind oben rechts zu finden und können mit dem PDA-Stift gewechselt werden. Auf dem linken Screenshot der Abbildung 82 sind die Standardverzeichnisse zu sehen. Die Testprogramme benötigen keine weiteren Konfigurationen. Bei der P2W-Applikation muss der Server mit dem Servlet angegeben werden. Die zwei rechten Bilder der Abbildung 82 zeigen diesen Konfigurationsschritt. Abbildung 82: Konfiguration P2W Applikation - Seite 88 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.2.3. Verbindung zum Internet Die P2W-Applikation sowie das Netzwerk-Testprogramm benötigen einen Anschluss an das Internet. Zu Testzwecken reicht ein PC, der an das Internet angeschlossen ist, und auf welchem der Palm OS Emulator installiert ist. Wie dieser anzuwenden ist, kann dem Anhang B entnommen werden. Eine weitere Möglichkeit ist das Testen mit dem PDA, dem «Mocha PPP» und einem PC, der wiederum an das Internet angeschlossen ist. Diese Variante ist in Anhang C erklärt. Die Palmhersteller haben noch ein weiteres Verfahren entwickelt, um mit einem Palm PDA auf das Internet zu gelangen. Das sogenannte «WebClipping» ist im Handbuch des PDAs beschrieben. Der ungefähre Ablauf ist der Abbildung 83 zu entnehmen. Abbildung 83: Webclipping von Palm Quelle: zum Palm m505 mitgelieferte CD Um eine effektive Verbindung zum Internet aufzubauen, benötigt man ein Handy sowie ein Datenkabel zur Verbindung von PDA und Handy. Hat das Mobiltelefon eine Infrarotschnittstelle, kann diese anstelle des Datenkabels verwendet werden. Die weitere Vorgehensweise erfolgt gerätespezifisch. Die Informationen können der Betriebsanleitung des jeweiligen Gerätes entnommen werden. - Seite 89 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.3. Bedienungshandbuch P2W Sind das P2W-Programm und die VM auf dem PDA installiert, kann die Applikation gestartet werden. Einzige Vorbedingung ist, dass der User bei der Administration angemeldet ist. Sinnvoll und naheliegend sind Kenntnisse der Workflows auf dem WfMS. Da dieses WfMS immer noch besteht und verwendet wird, sollte der Anwender die Formulare und das Vorgehen des bestehenden Systems kennen. Die Handhabung der vorliegenden Applikation erfolgt genau gleich wie mit dem Notes Client. Der Ablauf wird in Abbildung 84 noch einmal gezeigt. Beim System anmelden Aufträge einsehen Aufträge übernehmen Auftrag bearbeiten Auftrag abschliessen oder zurückweisen Abbildung 84: Grundsätzlicher Ablauf der P2W Applikation Die P2W-Applikation hat diverse «Pull-Down» Menüs. Die Abbildung 85 zeigt die wichtigsten Menüpunkte. Die Menüs können mit dem rot markierten Symbol auf dem Touch Screen angezeigt werden. Abbildung 85: Pull-Down Menüs - Seite 90 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) Im Menü «Java Preferences» können Einstellungen bezüglich der Darstellung und der Verwendung der Buttons gemacht werden. Dieser Menüpunkt wurde automatisch von der VM hinzugefügt. Ebenso die «Preference Help», welche dem Anwender Informationen zum ersten Menüpunkt gibt. Der Menüpunkt «Info» wurde durch uns hinzugefügt und gibt allgemeine Informationen bezüglich der P2W-Applikation. Das «Copyright» gibt Auskünfte über den Entwickler und die Version des Programmes. Der letzte Punkt startet das Konfigurationmenü des P2W Programms. Im Menüpunkt «GO» befindet sich immer den Befehl «Exit» welcher die Applikation beendet. Unter dem Menüpunkt «Action» sind Informationen und Version bezüglich der VM von Sun abrufbar. 4.3.1. Einloggen und Workflow downloaden Um einen Auftrag vom System zu übernehmen, muss der erste Menüpunkt der Hauptübersicht «Funktionen» angewählt werden. Dieser ist in Abbildung 86 rot markiert. Ein Antippen mit dem Stift genügt. Danach erscheint der Login Bildschirm, wo der Username und das Passwort eingegeben werden kann. Abbildung 86: Workflow downloaden Dieser Bildschirm wird in Abbildung 87 gezeigt. Das Passwort wird eingegeben, indem in die gelbe markierte Schaltfläche getippt wird. (Es ist auf die Gross- und Kleinschreibung des Passwortes zu achten). Ein spezielles Fenster öffnet sich, in das das Passwort eingegeben werden muss. Sind diese Parameter eingegeben, so kann der rot markierte «Login»-Button aktiviert werden. Es ist darauf zu achten, dass bereits eine Verbindung zum Internet30 besteht, da der PDA nun auf die URL (Webseite mit Servlet) zugreifen muss. Mit dem «Home»-Button (grün markiert) kann wieder zum Hauptmenü zurückgewechselt werden. 30 Siehe hierzu das Handbuch des jeweiligen PDA’s - Seite 91 - Abbildung 87: Login Inbetriebnahme und Installation PDA to IT-Workflow (P2W) Nun werden die eingegebenen Parameter dem Server geschickt. Dieser überprüft die Daten mit den Daten aus der Administrationsdatenbank. Ist das Passwort falsch, wird dies dem Anwender in einem Fenster gemeldet. Siehe hierzu Abbildung 88 mit den Fehlermeldungen. Der Server sperrt das Konto eines Users, der dreimal ein falsches Passwort eingegeben hat. Dies wird dem User angegeben und ist ebenfalls in der Abbildung 88 zu sehen. Sollte dieser Fall eintreten, so muss mit dem Systemadministrator der P2W-Applikation Kontakt aufgenommen werden. Er kann das gesperrte Konto wieder aktivieren. Abbildung 88: Fehlermeldung beim Loginvorgang Gleichzeitig wird die URL im Konfigurationsmenü auf die richtige Syntax überprüft. Ist die Syntax der Konfiguration korrekt, aber der Servletname wurde falsch eingegeben, so wird der PDA ebenfalls eine Fehlermeldung anzeigen. Nachdem der Server den Namen und das Passwort erfolgreich überprüft hat, macht er eine Anfrage an das WfMS, um Aufträge gemäss den in der Administrationsdatenbank definierten Rechte zu beziehen. Dieser Vorgang kann bis zu einer Minute dauern. Hat der Server die Aufträge vom WfMS erhalten, schickt er diese an den PDA zurück. Dieser stellt die Aufträge in Form einer Liste zusammen, zu sehen in Abbildung 89. Abbildung 89: Auftragsliste Nun sind alle übernehmbaren Aufträge auf dem PDA zwischengespeichert. Die einzelnen Aufträge können geöffnet werden, indem ein Auftrag mit dem Stift ausgewählt wird. In der Abbildung 89 steht im Titel oben rechts (gelb markiert) «Externe WFs». Diese Angabe zeigt dem Anwender, dass es sich bei den aufgelisteten Workflows um Aufträge handelt, die sich auf dem System befinden und noch nicht übernommen wurden. Die Abbildung 90 zeigt einen Auftrag im Detail. Dieser Auftrag kann übernommen werden, indem auf die letzte Seite geblättert und dort im «Pull Down»-Menü der Befehl «Übernehmen» aktiviert wird. Dieser Menüpunkt ist nur auf der letzten Seite des Auftrages sichtbar. Dies soll sicherstellen, dass der komplette Auftrag eingesehen wurde. Mit den gelb markierten Buttons kann vorwärts oder rückwärts geblättert werden. Oben rechts ist die aktuelle Seitenzahl (grün) und die totale Seitenanzahl (rot) angegeben. Mit dem Button «Liste» kommt man ohne Änderungen auf dem WfMS auf die Übersicht der verschiedenen Aufträge zurück (siehe Abbildung 89). Abbildung 91: Auftrag übernehmen Abbildung 90: Auftragdetails In der Abbildung 91 ist das «Pull-Down»-Menü dargestellt, mit dem ein Auftrag übernommen werden kann. Nach der Auftragübernahme, wechselt der PDA zurück zur Auftragsübersicht (Abbildung 89). Jetzt könnte ein weiterer Auftrag übernommen werden. Ist dies nicht gewünscht, so wird mit dem Button «Home» die Verbindung zum Server abgebrochen (was auch über das «Pull-Down»-Menü möglich wäre) und zur der PDA kehrt zur Startseite zurück. Die übernommenen Aufträge sind lokal auf dem PDA gespeichert und dem WfMS entnommen. Im Notes Client erscheinen die übernommenen Aufträge, als wären sie über den Notes Client übernommen worden. - Seite 92 - Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.3.2. Workflow editieren Abbildung 92: Workflow editieren Mit dem rot markierten Menü aus Abbildung 92 können die lokal gespeicherten Aufträge betrachtet werden. Dieser Vorgang benötigt keine Verbindung zum Internet. Nachdem dieses Menü angetippt wurde, erscheint eine Informationsseite - die Auftragsübersicht. Mit dem Button «Show» können die lokalen Aufträge aus der lokalen Datenbank gelesen werden. Die Auftragsübersicht, wie wir sie bereits aus dem Menüpunkt «Download» kennen, ist in Abbildung 93 abgebildet. Im rechten oberen Bildschirmteil ist wieder die gelb markierte Beschreibung ersichtlich. «Lokale WFs» meint die vom Anwender übernommenen Aufträge. Das heisst, dass die aufgelisteten Aufträge im WfMS im Namen des Users entnommen wurden. Mit dem Button «Home» wird wiederum zur Funktionsauswahl des Startbildschirmes gewechselt. Abbildung 93: Lokale Aufträge Jetzt können durch Antippen des gewünschten Auftrages die Details betrachtet werden. Auch hier sind die Auftragsformulare auf mehrere Seiten verteilt. Das Blättern zwischen den Seiten funktioniert gleich wie bei der Detailansicht vom «Download». Der Anwender kann die Aufträge abschliessen oder zurückweisen. Diese beiden Funktionen befinden sich auch auf der letzten Seite des Formulares in einem «Pull-Down»-Menü. Siehe hierzu die Abbildung 94. Abbildung 94: Funktionen Wird ein Auftrag abgeschlossen oder zurückgewiesen, können die Details des Auftrages - analog zum WfMS - nicht mehr betrachtet werden. Der Auftrag wird auf der lokalen Datenbank bis auf die Auftragsnummer gelöscht. Nach dem Aktivieren einer der beiden Funktionen erscheint wieder die Übersicht der bearbeitbaren Workflows. Wird der Auftrag hingegen nicht abgeschlossen, kann mit dem Button «Liste» ohne Änderungen zur Übersicht zurückgekehrt werden. In der Liste erscheint nun, falls ein Auftrag abgeschlossen oder zurückgewiesen wurde, ein weiterer Eintrag. Dieser Eintrag ist in Abbildung 95 zu sehen. Er sagt aus, wieviele Aufträge synchronisiert werden können. - Seite 93 - Abbildung 95: Anzahl synchronisierbarer Aufträge Inbetriebnahme und Installation PDA to IT-Workflow (P2W) 4.3.3. Workflow synchronisieren Abbildung 96: Workflow synchronisieren Damit die abgeschlossenen oder zurückgewiesenen Aufträge mit dem System synchronisiert werden können, muss eine Verbindung zum Internet hergestellt werden. Nach dem Antippen des in Abbildung 96 rot markierten Menüs erscheint eine kurze Erklärung zum Synchronisationsvorgang. Mit dem Button «Home» gelangt man wieder zur Übersicht der Funktionen (Abbildung 86). Der Button «Workflows synchronisieren» bezieht die synchronisierbaren Aufträge aus der lokalen Datenbank und zeigt dem Anwender die verschiedenen Auftragsnummern. Dies ist in Abbildung 97 zu sehen. Im grün markierten Feld werden die Aufträge mit Funktion und Auftragsnummer angezeigt. Wird der gelb markierte Button «Synch» betätigt, so wird der Synchronisationsvorgang vorbereitet. Es erscheint wieder der Login-Bildschirm von Abbildung 87. Nachdem korrekt beim System eingeloggt worden ist, werden die zu synchronisierenden Aufträge an den Server geschickt. Abbildung 97: Synchronisation Abbildung 98: Synchronisationsmeldung Der Server synchronisiert sie mit dem WfMS. Das WfMS schickt eine Bestätigung an den Server, die diese an den PDA weiterschickt. Die Bestätigung ist in Abbildung 98 zu sehen. Nach dem Synchronisieren werden die Parameter der synchronisierten Aufträge auf dem PDA gelöscht. Bei einem erneuten Versuch die Aufträge zu synchronisieren, meldet P2W, dass keine synchronisierbaren Workflows vorhanden sind. - Seite 94 - Ausblick und Schlussbetrachtung PDA to IT-Workflow (P2W) 5. Ausblick und Schlussbetrachtung Diplomarbeiten in Zusammenarbeit mit einem Praxispartner geben dem Diplomanden die Chance, Einblick in die Wirtschaftswelt zu erhalten. Dieser Einblick ist mit Sicherheit eine sehr lehrreiche Erfahrung. Der Student bekommt ausserdem den Druck der Wirtschaft auf die Kosten zu spüren. In der Informatik ist dies ein neues Phänomen. Die momentane Wirtschaftslage verschont auch die Informatikabteilungen nicht; immer öfters werden Informatikabteilungen redimensioniert. So auch in der Ascom Informatik. Leider wurde infolge eines operativen Entscheides der Firmenleitung die Abteilung «Webapplication» während der Projektdauer aufgelöst, was zur Folge hat, dass das vorliegende Produkt nie verwendet werden wird. Diese Tatsache hat wiederum zur Folge, dass der Ausblick dieser Arbeit eher fiktiver Natur ist. Leider konnte das Projekt nicht so abgeschlossen werden, wie es eigentlich geplant war. Um eine Synchronisation der Daten zu realisieren, hätte noch einiger Aufwand betrieben werden müssen. Der Grund für den Mehraufwand ist in der Architektur eines Softwareagenten (ANSTEP-Agent) des Workflows zu suchen. Dieser Agent wurde in Lotus Script geschrieben und entspricht nicht dem «Model View Controll»-Konzept (MVC). Das MVC sieht vor, dass das User Interface sowie die kontrollierende Einheit sauber getrennt und auch getrennt verwendet werden können. Der AnstepAgent braucht jedoch in jedem Falle den Notes Client zur Ausführung einer Synchronisation. Da der Agent nicht aus einzelnen Komponenten besteht, ist ein Verzicht auf die Notesumgebung unmöglich - was einem Verstoss gegen das MVC-Konzept entspricht. Der Agent müsste so umgeschrieben werden, dass direkt auf der Applikationsebene Daten vom Servlet an den Notes-Server übergeben werden können. Da der ANSTEP-Agent der komplexeste und umfangreichste Agent im WfMS ist, resultiert aus einer solchen Umprogrammierung ein grösserer Mehraufwand. Dieser ist auf rund fünf Arbeitstage zu schätzen, vorausgesetzt, dass der Programmierer Kenntnisse des WfMS und von Lotus Script hat. Aus finanziell verständlichen Gründen wurde dieser Zusatzaufwand nicht übernommen. Das MIDPServlet hingegen liefert bei der Synchronisation von Aufträgen alle notwendigen Daten. Am vorliegenden Projekt hätte nichts mehr erweitert werden müssen, um eine saubere Synchronisation mit einem neuen Agenten zu realisieren. Es drängt sich also die Frage auf, warum denn dieses Problem bei der Analyse des WfMS nicht erkannt worden war: Zum Zeitpunkt der Analyse wäre eine Implementation noch finanzierbar gewesen und selbst die Spezialisten des WfMS waren sich einig, dass alle Agenten von einem Java-Programm angesprochen werden können. Aus diesem Grund wurde dieser Punkt nicht genauer untersucht. Unabhängig von den oben beschriebenen Problemen ist die Qualität der momentan verfügbaren KVM für PDAs zu bemängeln. Die Darstellung der Formulare besticht nicht gerade durch Übersichtlichkeit und Lesbarkeit. Da sich die Entwicklung der KVMs noch in den «Kinderschuhen» befindet, ist damit zu rechnen, dass dieses Problem in neueren Versionen behoben wird. Gemäss Aussagen von Sun solle im Herbst 2003 eine neue Version verfügbar sein. Des Weiteren sollen Java-Programme auf PDAs deutlich schneller werden. Da kann man sicher gespannt auf eine neue KVM-Version warten. Das Potential zum Durchbruch für den Einsatz von Java auf mobilen Geräten ist aber in jedem Fall vorhanden. Die Entwicklung der KVM von IBM (KVM J9) sollte ebenfalls beobachtet werden. Diese KVM enthält zurzeit noch einige Fehler, welche hoffentlich in einer neueren Version behoben werden (siehe Kapitel 3.4.2). Die Entwicklungsumgebung von IBM (Websphere Application Device Developper) überzeugte deutlich mehr als Forte 4 Mobile Edition. Leider konnte die IBM-Entwicklungsumgebung nicht mit der KVM von Sun verwendet werden. Das wäre eine ideale Kombination gewesen. Das vorliegende Projekt wurde mit einem Pentium II mit 128 MB RAM erstellt, was sich als absolut ungenügend erwies. Die Wartezeiten der Simulationen auf dem POSE betrugen zum Teil mehrere Minuten, was den Entwickler einige Nerven kostete. Es war auch nicht möglich, gleichzeitig die Serverumgebung (WebSphere Studio) und die Clientumgebung (Forte) zu bearbeiten, da zuwenig RAM vorhanden waren, um beide Umgebungen zu starten. Rückblickend betrachtet muss gesagt werden, dass der verwendete Laptop für dieses Projekt untauglich war. Das Projekt an sich war eine sehr interessante und lehrreiche Aufgabe. Es deckte ein breites und vielseitiges Gebiet der Informatik ab, ebenso konnte ein Einblick in neue Technologien gewonnen werden. Der Aufwand der Arbeit überstieg den Rahmen einer Diplomarbeit, lohnte sich aber dennoch, wenn das Resultat und die neu gewonnenen Kenntnisse betrachtet werden. Diese Arbeit zeigt, dass in den kleinen PDAs ein gewaltiges Potential steckt. Betrachtet man die steigenden Absatzzahlen der - Seite 95 - Ausblick und Schlussbetrachtung PDA to IT-Workflow (P2W) PDAs und die stärkere Integration von J2ME (siehe Abbildung 99) in Handys, sind Spekulationen über vermehrte Applikationen für mobile Geräte durchaus gerechtfertigt. Abbildung 99: Prognose von J2ME Quelle: [Zelos] Mobilität wird in einer schnelllebigen Zeit immer wichtiger und entscheidet - wenn nicht heute, so bestimmt morgen - über Sieg oder Niederlage, respektive über Verkaufen oder nicht Verkaufen. In diesem Sinne noch einmal: «The future is mobile!» Die erreichten Resultate in Hinblick auf einen externen Client für das WfMS der Ascom Informatik sind hilfreich und können in einer Weiterführung des Projektes bestimmt verwendet werden. Die vorliegende Arbeit zeigt, dass es grundsätzlich möglich ist, das WfMS der Ascom mit einem externen Client zu verwenden. Der erstellte Prototyp erreichte die geforderten Resultate und könnte mit einer neueren KVM verwendet und auch weiterentwickelt werden. Ebenso könnten mit den erstellten J2MEKlassen andere PDA-Applikationen effizient erstellt werden. - Seite 96 - Literatur und Verweise PDA to IT-Workflow (P2W) 6. Literatur und Verweise [Bergsten 2001] Bergsten Hans, Java Server Pages, O’Reilly, 1. Auflage, ISBN: 1-56592-746-X, 2001 [Böhm 1997] Böhm Markus, Workflow-Management, dpunkt, 1. Auflage, ISBN: 3-920-993-73-X, 1997 [Booch 1998] Booch Grady, Rumbaugh James, Jacobson Ivar, UML Reference Manual, Addison-Wesley, ISBN: 0-2013-0998-X, 1998 [Booch 1999] Booch Grady, Rumbaugh James, Jacobson Ivar, UML User Guide, AddisonWesley, ISBN: 0-2015-7168-4, 1999 [Borghof 2000] Borghoff Uwe M., Johann H. Schlichter, Rechnergestützte Gruppenarbeit, Springer, ISBN: 3-5406-2873-8, 2000 [Callaway 1999] Callaway Dustin R., Inside Servlets, Addison-Wesley, 3. Auflage, ISBN: 0-20137-963-5, 1999 [Softwareagenten] Definitionen Softwareagenten, Webseite, zugegriffen am 1. Mai 2003, available: http://www.fhwedel.de/~si/seminare/ws99/Ausarbeitung/agent/agent2.htm [Esmertec ] Esmertec, Webseite, zugegriffen am 1. September 2003, available: http://www.esmertec.ch [Fischer 2003] Fischer Layna, The workflow handbook 2003, Workflow Management Coalition, ISBN: 0-9703-5094-5, 2003 [Flanagan 2000] Flanagan David, Java in a nutshell, O’Reilly, 3. Auflage, ISBN: 3-89721-190-4, 2000 [Forte] Forte 4 Java, Webseite, zugegriffen am 30. August 2003, available: http://wwws.sun.com/software/sundev/jde/ [Funknetzbilder] Funknetzbilder, Webseite, zugegriffen am 1. Mai 2003, available: http://www.go4sim.com/download_dateien/de/gsm_funknetz.pdf [Giguère 2000] Giguère Eric, Java 2 Micro Edition, Wiley, 1. Auflage, ISBN: 0-471-39065-8, 2000 [IBM] IBM Entwicklungsumgebung, Webseite, zugegriffen am 1. September 2003, available: http://www-3.ibm.com/software/wireless/wme/ [J2ME] J2ME, Webseite, zugegriffen am 29. August 2003, available: http://java.sun.com/j2me/docs/j2me-ds.pdf [Java Dev] Java Development Kit (JDK), Webseite, zugegriffen am 1. Mai 2003, available: http://java.sun.com [Java Spec] Java Specification RequestsWebseite, zugegriffen am 28. August 2003, available: http://www.jsr.org [JDBC-Bridge] JDBC-ODBC Bridge, Webseite, zugegriffen am 1. September 2003, available: http://java.sun.com/products/jdbc/ - Seite 97 - Literatur und Verweise PDA to IT-Workflow (P2W) [Lotus Notes] Lotus Notes, Webseite, zugegriffen am 1. Mai 2003, available: http://www.lotus.com [McLaughlin 2001] McLaughlin Brett, Java und XML, O’Reilly, 1. Auflage, ISBN: 3-89721-280-3, 2001 [Meier 2001] Meier Andreas, Relationale Datenbanken, Springer Verlag, 4. Auflage, ISBN: 3-540-41468-1, 2001 [MIDP] MIDP VM für den PDA, Webseite, zugegriffen am 1. September 2003, available: http://java.sun.com/products/midp/ [MIDP-Servlet] MIDP-Servlet Webseite, zugegriffen am 1. September 2003, available: http://wireless.java.sun.com/midp/articles/servlets [MochaSoft] MochaSoft Webseite, zugegriffen am 1. Mai 2003, available: http://www.mochasoft.dk [Muhs 2003] Muhs Thomas, Java-Anwendungen für Notes/Domino entwickeln, AddisonWesley, ISBN: 3-827-318076, 2003 [Oestereich 2001] Oestereich Bernd, Objektorientierte Softwareentwicklung, Oldenburg, 5. Auflage, ISBN: 3-486-25573-8, 2001 [OMG] OMG, Webseite, zugegriffen am 1. Mai 2003, available: http://www.omg.org/uml/ [Palm] Palm OS Emulator (POSE), Webseite, zugegriffen am 1. September 2003, available: http://www.palmos.com/dev/tools/emulator/ [Reese 2000] Reese George, JDBC and Java, O’Reilly, 2. Auflage, ISBN: 1-56592-616-1, 2000 [RFC zu HTML] RFC zu HTML, Webseite, zugegriffen am 1. Mai 2003, available: http://www.ietf.org/rfc/rfc1867.txt [RFC zu HTTP] RFC zu HTTP, Webseite, zugegriffen am 1. Mai 2003, available: http://www.ietf.org/rfc/rfc2616.txt [Sun] Sun Microsystems, The Java Community Process, Webseite, zugegriffen am 1. Mai 2003, available: http://java.sun.com/aboutJava/communityprocess/ [Tannenbaum 2000] Tannenbaum Andrew S., Computernetzwerke, Prentice Hall, 3. Auflage, ISBN: 3-8273-7011-6, 2000 [Tomcat] Tomcat Server, Webseite, zugegriffen am 1. September 2003, available: http://jakarta.apache.org/tomcat [Topley 2002] Topley Tim, J2ME in a nutshell, O’Reilly, 1. Auflage, ISBN: 0-596-00253-X, 2002 [Turau 2000] Turau Volker, Java Server Pages, dpunkt, 1. Auflage, ISBN:3-932588-66-5 ,2000 [UML] UML Beispiel, Webseite, zugegriffen am 1. Mai 2003, available: http://www.rittershofer.de/info/umlkompakt/index.htm [Nohr] Vorlesungsunterlagen von Prof. Holger Nohr, Hochschule Medien, Informationswirtschaft, File « wfm.pdf » auf beigelegter CD, available: http://www.iuk.hdm-stuttgart.de/nohr/Hauptseite.html - Seite 98 - Literatur und Verweise PDA to IT-Workflow (P2W) [Vossen 1996] Vossen Gottfried, Becker Jürg, Geschäftsprozessmodellierung und Workflowmanagement, Thomson Publishing, 1. Auflage, ISBN: 3-8266-0124-6, 1996 [Waba] WABA, Webseite, zugegriffen am 30. August 2003, available: http://www.wabasoft.com/ [Wireless] Wireless Toolkit, Webseite, zugegriffen am 30. August 2003, available: http://java.sun.com/products/j2mewtoolkit/download-2_0.html [WfMC] Workflow Management Coalition (WfMC), Webseite, zugegriffen am 22. Mai 2003, available: http://www.wfmc.org [Zelos] Zelos Group, Webseite, zugegriffen am 1. Mai 2003, available: http://www.zelos.com - Seite 99 - Glossar PDA to IT-Workflow (P2W) Glossar AJP Apache JServ Protocol: Protokoll, das verwendet wird, um JSP-Seiten vom Apache Web Server an den Tomcat Server weiterzuleiten. ASCII American Standard Code for Information Interchange: Binäre Codierung des Alphabetes. BSS Basis Station System: Ein Sende- und Empfangsmast einer Funknetz-Zelle. Das BSS ist über eine Funk oder Glasfaserleitung mit der Vermittlungsstation MSC verbunden. CLDC Connected Limited Device Configuration: Die CLDC setzt auf der VM eines mobilen Gerätes auf. CLDC-Geräte haben weniger Speicher, kleinere Displays und geringere Übertragungsraten als CDC Geräte. DFÜ Daten Fern Übertragung: Datenverkehr, der über ein Netzwerk verläuft. GUI Grafisches User Interface: Der Anwender arbeitet, wenn er ein Programm interaktiv verwenden kann, immer mit dem GUI. Das GUI kann Textfelder, Buttons, Listen, usw. enthalten. HR Human Ressource: In der werden die Datensätze, die über die Mitarbeiter gehalten werden, als HR Datenbank bezeichnet. HTML Hyper Text Markup Language: Sprache, die die Darstellung und Formatierung eines Textes beschreibt. Diese Sprache wird bei Internetseiten verwendet. HTTP Hyper Text Transfer Protokoll: Dieses Protokoll regelt die Übertragung von HTML-Seiten. ID Identifier: Bei Datenbanken und auch bei Vectoren/Arrays werden die Elemente mit einer aufsteigenden Zahl nummeriert. - Seite 100 - Glossar PDA to IT-Workflow (P2W) Abkürzung Beschreibung IDE Integrated Development Environment: Entwicklungsumgebung in der Programme entwickelt werden. Zum Teil können Codegerüste automatisch generiert werden IP Internet Protokoll: Ein Netzwerkprotokoll, das den Transport von Daten im Internet verwaltet. Wird oft mit dem TCP Protokoll genannt. ISDN Integrated Services Digital Network: Das ist ein Prinzip, das verwendet wird, um Daten und Sprache digital zu übertragen IT Information Technology: Unternehmen verwenden diese Abkürzung häufig für die Informatikabteilung J2EE Java 2 Enterprise Edition: Java Version für Grossrechner und Servers J2ME Java 2 Micro Edition: Java Version für mobile Geräte wie Handys und PDAs J2SE Java 2 Standard Edition: Java Version für PCs JDBC Java Database Connectivity: Ein API, mit dem auf relationale Datenbanken zugegriffen werden kann. JDK Java Developpment Kit: Java Entwicklungstool. Entspricht im Prinzip dem Java Compiler, der Virtual Machine und der Runtime. JSP Java Server Page: Java Code kann mit speziellen Tags in HTML Code eingebunden werden. Diese Programme werden auf der Serverseite ausgeführt. JSR Java Specification Request: Empfehlungen und Spezifikationen zu Java. JVM Java Virtual Machine: Die Umgebung, die Java Programme ausführt. Ohne eine Virtual Machine können keine Java Programme ausgeführt werden. KVM Kilobyte Virtual Machine: Virtual Machine für den PDA. Der Name Kilobyte kommt daher, weil diese VM nur einige Kilobyte gross ist. MIDP Mobile Information Device Profile: Erweitert die Profile einer VM für mobile Geräte. MIDP werden bei CLDC Geräten verwendet. MSC Mobile Switching Centre: Ist mit mehreren BSS, anderen MSC und dem Telekommunikationsnetz verbunden. MSC ist eine Vermittlungszentrale zwischen mobilen Anschlüssen wie Handys und dem Festnetz. - Seite 101 - Glossar PDA to IT-Workflow (P2W) Abkürzung Beschreibung MVC Model View Control: Konzept zur Entwicklung von Software. GUI sollte von der logischen Applikation getrennt sein, so dass GUI und/oder die logischen Applikationen wiederverwendet werden können. NSF Notes Storage File: Notes Datenbanken haben die Endung *.nsf. ODBC Open Database Connectivity: Ein Vorgehen, mit welchem auf beliebige Datenbanken zugegriffen werden kann. OMG Object Management Group: Eine Vereinigung von verschiedenen Unternehmen, die sich zum Ziel gesetzt haben, die verteilten Applikationen zu standardisieren. P2W Palm 2 IT-Workflow PC Personal Computer: PDA Portable Digital Assistant: Handcomputer wie Palms, Visiors… PDAP PDA Profile: MIDP für einen PDA. Wird heute nicht mehr verwendet, da es annähernd daselbe wie das MIDP ist. POSE Palm Operating System Emulator: Dieser Emulator emuliert einen Palm PDA. RaC Rent a Client: Workflow der Ascom Informatik für Vermietung von Geräten. RAM Random Access Memory: Arbeitsspeicher eines Computers. SQL Standard Query Language: Sprache, mit der eine Abfrage auf einer Datenbank durchgeführt werden kann. TCP Transmission Control Protocol: Packetorientiertes Protokoll, das Daten in Packete verpackt und diese über ein Netzwerk oder das Internet verschickt. UML Die Unified Modelling Language ist eine Sprache und Notation zur Spezifikation, Konstruktion, Visualisierung und Dokumentation von Modellen für Softwaresysteme [10, Seite 193]. URL Uniform Resource Locator: www.ascom.ch ist zum Beispiel eine URL. Es ist eine Internetadresse. VM Virtual Machine: Siehe JVM - Seite 102 - Glossar PDA to IT-Workflow (P2W) Abkürzung Beschreibung WAPI Workflow Application Programming Interface: Schnittstelle im Workflow Referenzmodell, die eine Verbindung zu Workflowkomponenten aufbaut. WfMC Workflow Management Coalition: Eine ähnliche Vereinigung wie die OMG; standardisiert allerdings WfMS. WfMS Workflow Management System: Ein System, das Workflows in definiert, kreiert und verwaltet. WPDL Workflow Process Definition Language: Zum Austausch von Workflowbeschreibungen. Im Workflow Referenzmodell wird die WPDL zur Beschreibung der Prozessdefinitionen verwendet. WS Websphere Studio: IDE von IBM um JSP, HTML und Java Servlets zu erstellen. WSAD Websphere Studio Application Developper: Vereinigung vom Visual Age 4 Java und dem Websphere Studio. WSDD Websphere Studio Device Developper: Plug In für das WSAD. Mit dieser IDE können Applikationen für mobile Geräte erstellt werden. XML Extensible Markup Language: Datenaustausch zwischen unterschiedlichen Plattformen wird mit XML erleichtert. - Seite 103 - Anhang A: Accessdatenbank PDA to IT-Workflow (P2W) Anhang A: Accessdatenbank Damit der Server die Datenbank findet, muss diese in der Systemadministration angemeldet werden. Die Datenbank wird in der Systemsteuerung unter Abbildung 100: ODBC Datenquellen angemeldet. Wird das Icon der Systemsteuerung aus Abbildung 100 angeklickt, öffnet sich das Fenster aus Abbildung 101 geöffnet. Abbildung 101: ODBC Administrator Beim ODBC-Administrator muss eine neue Datenquelle hinzugefügt werden. Dies kann durch Betätigen des rot markierten Buttons gemacht werden. Im neu geöffneten Fenster werden die verschiedenen Treiber angezeigt. Im Falle einer Microsoft Access Datenbank wird der entsprechende Treiber angewählt (blau markiert). Nach dem Befehl «Fertig stellen» kann die Datenbank konfiguriert werden. - Seite 104 - Anhang A: Accessdatenbank PDA to IT-Workflow (P2W) Abbildung 102: Datenbank Im grün markierten Feld aus Abbildung 102 kann der Datenbanknamen, mit dem die Datenbank in den SQL-Queries angesprochen werden möchte, angegeben werden. Mit dem Button «Auswählen» (gelb) wird die Datenbank mit dem physikalischen Ort referenziert. Unter «Erweitert» (blau) können Username und Passwort für den Zugriff eingegeben werden. Dies zeigt Abbildung 103 Abbildung 103: User und Passwort der Datenbank - Seite 105 - Anhang B: Palm OS Emulator (POSE) PDA to IT-Workflow (P2W) Anhang B: Palm OS Emulator (POSE) Der Emulator kann von [Palm] heruntergeladen werden. Die Installation wird durch Ausführen der «setup.exe» gestartet. Danach müssen die «Properties» gesetzt werden. Die Angaben aus Abbildung 101 beziehen sich auf Anwendungen, in denen der Palm Zugriff auf das PC-interne DFÜ Netzwerk benötigt. Um die notwendigen Einstellungen vorzunehmen, muss mit der rechten Maustaste auf den Emulator geklickt, dann kann der Menüpunkt «Settings -> Properties» angewählt werden. Die Abbildung 104 zeigt das erscheinende Fenster. Die gelb hinterlegten Einstellungen müssen vorgenommen werden. Von zentraler Bedeutung ist, dass die NetLib auf das interne DFÜ umgeleitet wird. Abbildung 104: Konfiguration des Palm Emulators Ohne diese Konfiguration ist es nicht möglich, mit dem Palm Emulator und dem Programm «Mocha PPP»31 auf das Internet zu gelangen. Sinnvoll ist noch, dass die Session beim Beenden des Emulators gespeichert wird. Software für den Palm Emulator kann unter dem Menüpunkt «Install Application/Database» installiert werden. 31 siehe Kapitel 3.4.10 - Seite 106 - Anhang C: Mocha Soft PPP PDA to IT-Workflow (P2W) Anhang C: Mocha Soft PPP Da Mocha PPP denselben Port wie die «Palm-PC» Synchronisation verwendet, muss Mocha PPP vor einer gewünschten Synchronisation gestoppt werden. Ansonsten ist eine Datensynchronisation mit dem PC nicht möglich. Als sehr praktisch hat sich die Logfunktion erwiesen. Diese Funktion schreibt allen «Traffic» in ein ASCII Text File. Dies kann vor allem bei der Fehlersuche hilfreich sein. Abbildung 105: Mocha PPP Screenshot Die Konfiguration des Palms stellte sich allerdings nicht ganz so einfach heraus, wie die Webseite angibt. Folgende Konfiguration eignet sich für Palm OS 4. Abbildung 106: Konfiguration des Palms für Mocha PPP Die Abbildung 106 zeigt die drei Konfigurationsschritte, die vorgenommen werden müssen. Das Menü Preferences ist unter den Systemmenüs des Palms zu finden. Probleme ergeben sich vor allem, wenn der Emulator hinter einer Firewall steht und auf das Internet zugreifen möchte. In diesem Fall muss bei einem PDA Internet Browser wie zum Beispiel AvantGo der Proxyserver angegeben werden. Solange man aber nur intern auf einen Server, oder wie in diesem Fall auf den Localhost zugreifen möchte, ist dieses Programm sehr komfortabel. Leider kann man Mocha PPP nicht mit dem Palm OS Emulator (POSE) verwenden. Dieses Feature ist zwar nicht zwingend notwendig, wäre aber sicher interessant. - Seite 107 - Anhang D: Beiliegende CD PDA to IT-Workflow (P2W) Anhang D: Beiliegende CD Auf der beiliegenden CD befindet sich: - Source Code Javadoc des Clients und des Servers Dokumentation im «PDF» Format Diverse «PDF» Dokumente Forte 4 Java Micro Edition Palm OS Emulator Mocha PPP Tomcat Server Userdatenbank für Microsoft Access Verwendetes JDK Alle notwendigen «jar-Files» - Seite 108 - Erklärung PDA to IT-Workflow (P2W) Erklärung: Ich versichere, dass ich die vorstehende Arbeit selbständig angefertigt und entsprechend den Grundsätzen wissenschaftlicher Ehrlichkeit abgefasst habe. Es ist mir bekannt, dass andernfalls die Abteilung gemäss dem Abteilungsbeschluss vom 28.11.1984 das Recht hat, den auf Grund dieser Arbeit verliehenen Titel zu entziehen. ……………………………………………………, den ……………………………… …………………………………………… (Unterschrift) - Seite 109 -