Diplomarbeit in Computer Networking. Weiterentwicklung eines Helpdesk-Systems basierend auf.net Framework

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit in Computer Networking. Weiterentwicklung eines Helpdesk-Systems basierend auf.net Framework"

Transkript

1 Diplomarbeit in Computer Networking Weiterentwicklung eines Helpdesk-Systems basierend auf.net Framework Referent: Prof. Dr. Christoph Reich Koreferent: Dipl.-Ing. (FH) Uwe Keim vorgelegt am: vorgelegt von: Markus Klieber Hölderlinweg Rechberghausen

2

3 Eidesstattliche Erklärung Ich versichere, dass ich die nachstehende Arbeit selbständig verfasst und hierzu keine anderen als die angegebenen Hilfsmittel verwendet habe. Alle Stellen der Arbeit die wörtlich oder sinngemäß aus fremden Quellen entnommen wurden, sind als solche kenntlich gemacht. Die Arbeit wurde bisher in gleicher oder ähnlicher Form in keinem anderem Studiengang als Prüfungsleistung vorgelegt oder an anderer Stelle veröffentlicht. Ich versichere, dass der beigelegte Datenträger und alle darauf enthaltenen Bestandteile (Dateien) auf Viren überprüft und kein schädlicher, ausführbarer Code enthalten ist. Ich bin mir bewusst, dass eine falsche Erklärung rechtliche Folgen haben kann. Markus Klieber Rechberghausen, 30. August 2007

4

5 Kurzfassung Der Zeta Helpdesk - das Ticket-System der Firma zeta software GmbH - basierend auf dem.net Framework 2.0, soll auf seine Verbesserungs- und Erweiterungsmöglichkeiten untersucht werden. Ziel ist es die Architektur des bestehenden Systems zur überarbeiten. Als Orientierung soll dabei das Model View Controller Muster dienen. Bisherige Arbeitsabläufe sollen analysiert, und es soll evaluiert werden, ob eine Implementation der bisherigen Abläufe unter Verwendung der Windows Workflow Foundation möglich ist.

6

7 Inhaltsverzeichnis 1 Einführung Motivation Ziele der Diplomarbeit Aufbau der Arbeit Abgrenzung Darstellung des Inhalts Benutzerservice und dessen Werkzeuge Benutzerservice Definition Struktur Prioritäten und Prozesse Planung und Entwurf Werkzeuge Allgemein Trouble Ticket System Zusammenfassung Zeta Helpdesk Einführung Analyse Architektur Funktionalität Arbeitsablauf Benutzeroberfläche Erweiterbarkeit (Plug-In-Konzept) Sicherheit Performance, Skalierbarkeit Protokollierung Ausnahmebehandlung Ergebnisse Zusammenfassung Grundlagen Entwurfsmuster: Model View Presenter Urspung Twisting the triad Variante: Passive View Windows Workflow Foundation Was ist ein Workflow Infrastruktur Laufzeitumgebung Unterstützte Typen und deren Aktivitäten Laufzeitdienste Workflow Designer Beispiel: Sequential Workflow erstellen

8 4.3 Zusammenfassung Konzeption und Entwicklung Ziele und Anforderungen Design GUI Architektur Workflow Architektur Ticket-Workflow Implementierung Entwicklungsumgebung Basis-Presenter Passive View Design Workflow Host Ticket-Workflow und dessen Verhalten Kommunikationsdienst Persistenz- und Ablaufverfolgungsdienst Einen neuen Pluggable Workflow entwickeln Test Zusammenfassung Diskussion und Fazit Bewertung Benutzeroberfläche Performance: Zuweisung von Eigenschaften Pluggable-Workflow-Architektur Editierbare Workflows Assembly-Cache Open Source Zeta Helpdesk Stand der Entwicklung Fazit Literaturverzeichnis 104 Abbildungsverzeichnis 106 Tabellenverzeichnis 107 Quelltextverzeichnis 108 A Anhang 109 A.1 Zeta Helpdesk: Konfigurationsparameter A.2 Zeta Helpdesk: Datenbankmodell A.3 Überblick über wichtigsten WF Aktivitäten A.4 Quelltext: Klasse TestCustomerPersonEditView A.5 Quelltext: Methoden der Klasse PresenterBase A.6 Beigefügt CD

9 1 Einführung Das erste Kapitel dieser Arbeit stellt die Motivation und die Ziele dieser Arbeit vor und erläutert kurz den Aufbau der Arbeit. Danach folgt eine Abgrenzung der behandelten Themengebiete. Abschließend wird kurz auf Besonderheiten in der Darstellung des Inhalts eingegangen. Inhalt 1.1 Motivation Ziele der Diplomarbeit Aufbau der Arbeit Abgrenzung Darstellung des Inhalts

10 Motivation 1.1 Motivation Die Unterstützung des Kunden nach dem Kauf eines Produkts gehört, wie der Verkauf selbst, auch zu den Aufgaben eines Unternehmens. Der zentrale Kundensupport der für große Unternehmen längst unverzichtbar geworden ist, hält nun in vielen Unternehmen Einzug. Dabei handelt es sich jedoch bei weitem nicht mehr nur um eine Abteilung in einem Unternehmen, längst beschäftigen sich ganze Unternehmen mit der Thematik und haben sich darauf spezialisiert den Service für andere Unternehmen zu übernehmen.[cze98] Unterstützung bei der täglichen Arbeit, der Service-Mitarbeiter, leisten Werkzeuge wie der Zeta Helpdesk. 1.2 Ziele der Diplomarbeit Das Ziel der Arbeit ist die Überarbeitung und Verbesserung der vorhandenen Software, dem Zeta Helpdesk. Die Kernpunkte der Arbeit sind Modularität und Flexibilität in den Bereichen GUI und Workflow. Die Entwicklung soll unter dem Aspekt Open Source geschehen und dies im Design und der Verwendung von Komponenten anderer Hersteller berücksichtigen. Die Architektur der Präsentationsschicht soll hinsichtlich ihrer Modularität überarbeitet werden. Es soll hier eine klare Trennung zwischen Präsentation, Logik und Daten stattfinden. Als Anhaltspunkt bei der Konzeption soll dabei das Entwurfsmuster (Design Pattern) Model View Controller dienen. Ziel soll eine flexible, leicht zu erweiternde und einfach zu testende Architektur sein. Des Weiteren soll geprüft werden ob eine Realisierung der bisherigen Arbeitsabläufe mit Hilfe des Workflow Frameworks (Windows Workflow Foundation) von Microsoft möglich ist. Idealerweise soll eine leicht zu erweiternde, flexible und modulare Workflow-Architektur konzeptioniert werden. 1.3 Aufbau der Arbeit Das zweite Kapitel klärt zunächst den Begriff Benutzerservice und geht auf dessen internen Strukturen und Prozesse ein. Des Weiteren wird in diesem Kapitel auf Software Werkzeuge eingegangen, die in dem Benutzerservice zur Verfügung stehen.

11 1.4 Abgrenzung 11 Kapitel 3 beschäftigt sich anschließend mit dem vorhandenen Ticket System, dessen Architektur und Funktionalität. Dieses System soll Grundlage dieser Arbeit sein und im weiteren Verlauf sollen die Verbesserungen und Erweiterungen geplant und umgesetzt werden. In Kapitel 4 werden Grundlagen für das folgende Kapitel (Konzeption und Entwicklung) geschaffen. Es wird auf das verwendete Entwurfsmuster eingegangen und das Workflow-Framework von Microsoft beschrieben. Nachdem im vorherigen Kapitel die Grundlagen näher beleuchtet wurden, werden in Kapitel 5 anhand der Anforderungen an die überarbeitete Software, Lösungskonzepte entworfen und diese dann in der Implementierungsphase umgesetzt. Das Kapitel schließt mit dem Test der entwickelten Software ab. Zum Schluss diskutiert Kapitel 6, die bei der Arbeit gefundenen Ergebnisse, stellt diese vor und bewertet sie. Hier werden nochmal Besonderheiten angesprochen die bei der Arbeit aufgetreten sind. Abschließend wird ein Fazit in Bezug auf die Ziele der Arbeit gezogen und der aktuelle Entwicklungsstand der Software beschrieben. 1.4 Abgrenzung Diese Arbeit setzt ein Grundwissen in der Programmierung mit C# und dem.net Framework (2.0) voraus. Grundlagen in der verwendeten Programmiersprache und des Frameworks zu schaffen ist nicht Bestandteil dieser Arbeit. Kapitel 2 der Arbeit befasst sich mit dem Benutzerservice und dessen Werkzeuge. Dabei soll dieser Teil nur einen Überblick über die Thematik geben und an das eigentliche Thema heranführen. In diesem Kapitel wird deshalb nicht detailliert auf alle Aspekte des Support-Managements eingegangen. Das Kapitel Zeta Helpdesk, das sich mit dem vorhandenen System auseinandersetzt und dieses analysiert, soll keine vollständige Beschreibung der Implementation sein. Der Autor wird im Verlauf des Kapitels Implementationsdetails vorstellen, die zum Verständnis der Arbeit beitragen. Die Grundlagen, die in Kapitel 4 erarbeitet werden, haben nicht den Anspruch alle Details und Facetten der vorgestellten Technologien zu beschreiben, sondern sollen den Leser soweit in das Thema einleiten, damit er Zusammenhänge im folgenden Kapitel besser versteht.

12 Darstellung des Inhalts 1.5 Darstellung des Inhalts Randbemerkung Bei kritischen Stellen wird durch eine Randbemerkung darauf hingewiesen. Information und Hinweis Zusätzliche Informationen und Hinweise zu einem Thema, werden zum Schluss eines Kapitels aufgeführt. Quelltext Quelltext wird in der nachfolgend aufgeführten Form dargestellt. 1 \\ Q u e l l t e x t Quelltext 1: Beschriftung Die Satzherstellung erfolgte mit dem Textsatzsystem L A TEX.

13 2 Benutzerservice und dessen Werkzeuge In diesem Kapitel wird ein Grundverständnis für den Benutzerservice, dessen Aufbau und Funktionsweise erarbeitet. Im weiteren Verlauf wird beschrieben welche Werkzeuge den Beschäftigten zur Verfügung stehen und wie diese ihre Anwendung im Benutzerservice finden. Inhalt 2.1 Benutzerservice Werkzeuge Zusammenfassung

14 Benutzerservice 2.1 Benutzerservice Definition Der Begriff Benutzerservice, in der Informationstechnik (IT) auch Help Desk oder Helpdesk genannt, wird von Brad Cleveland 1 wie folgt definiert: A term that generally refers to a call center that provides technical support (e.g., to handle queries about product installation, usage or problems) 2 Der Einfachheit halber wird im weiteren Verlauf der Arbeit der Begriff Help Desk verwendet. Bei einem Help Desk handelt sich um eine Unternehmenseinheit (Abteilung) oder ein Unternehmen, das sich mit der Annahme und Bearbeitung von Kundenanfragen beschäftigt. Ursprünglich handelte es sich dabei um eine Telefonzentrale, oder neudeutsch auch Call Center genannt. Die Annahme von Anfragen beschränkt sich jedoch bei weitem nicht mehr nur auf den telefonischen Kontakt zum Kunden, sondern wird im Zeitalter des Internets auch über oder Webanwendungen abgewickelt.[cze98] Bei Anfragen seitens des Kunden handelt es sich jedoch nicht nur, wie langläufig angenommen, um Probleme. Es kann sich durchaus auch um einfache Wissensfragen oder Anfragen bezüglich angebotener Dienstleistungen des Help Desk handeln. Welche Art von Anfragen bearbeitet werden hängt vom jeweiligen Help Desk ab.[cze98] Struktur Der interne Aufbau eines Help Desk spiegelt die Zielsetzung und die Orientierung des Help Desk wieder. Es ist deshalb sehr schwer die Beschreibung (Modell) eines gut funktionierenden Help Desk auf ein anderes Unternehmen zu übertragen.[cze98] Es gibt Ansätze die versuchen, die Struktur und die Prozesse einheitlich zu beschreiben. Dabei handelt es sich um Empfehlungen, nicht um Standards bzw. Normen. 1 Hauptgeschäftsführer des International Customer Management Institute (ICMI) 2 Quelle: [Cle03]; vom Autor sinngemäß übersetzt: Ein Begriff der allgemein für eine Telefonzentrale steht, die technische Unterstützung bietet (z.b. Fragen bei der Installation eines Produkts, der Benutzung oder Problemen damit).

15 2.1 Benutzerservice 15 Ein solcher Ansatz ist die IT Infrastructure Library (ITIL). Entwickelt wurde dieses Best-Practice-Regelwerk in den 80er Jahren von der Britischen Regierung, dem Office of Government Commerce (OGC). Das OGC versucht mit der ITIL Unternehmen ein Strategiepapier an die Hand zu geben, welches die wichtigsten Aspekte betrachtet um einen Help Desk nach einem möglichst standardisierten Vorgehen zu implementieren. Die ITIL umfasst insgesamt fünf Bände 3 : Service Strategy Service Design Service Transition Service Operation Continual Service Improvement Auf die Inhalte der einzelnen Bände wird im weiteren Verlauf der Arbeit nicht eingegangen, da dies den Rahmen dieser Arbeit überschreiten und nicht zum eigentlichen Thema der Arbeit beitragen würde. Für weitere Informationen zu ITIL sei hiermit auf die Website 4 verwiesen. Im Folgenden wird nun auf einen typischen Aufbau eines Help Desk eingegangen um Prozesse und Abläufe innerhalb dieser Organisationseinheit besser verstehen zu können. Nahezu die meisten Dokumente, die sich auf die Strukturierung eines Help Desk beziehen, sind sich darin einig, dass ein Help Desk dreistufig aufgebaut sein sollte. Nach Barabara Czegel, setzt sich der typische Aufbau (siehe Abbildung 1) eines Help Desk aus nachfolgend aufgeführten Schichten zusammen. 5 Frontline Die Frontline, oder auch als first line of defense 6 bekannt, bezeichnet die zentrale Anlaufstelle für alle Anfragen (von intern/extern) die an den Help Desk gerichtet werden. Es gibt zwei unterschiedliche Ausprägungen wie eine Frontline organisiert 3 Quelle: 4 Website der ITIL: 5 vgl. [Cze98] 41 f. 6 vom Autor übersetzt: Erste Verteidigungslinie

16 Benutzerservice Abbildung 1: Typische Struktur eines Help Desk, Quelle: [Cze98]

17 2.1 Benutzerservice 17 ist. Bei einer Dispatch-Frontline werden Anfragen direkt an die darunterliegende Schicht weitergeleitet. Sie ist lediglich für die Annahme der Anfragen zuständig, jedoch nicht für deren Bearbeitung. Im Gegensatz dazu wird bei einer Resolve-Frontline zunächst versucht das Anliegen des Kunden in einer begrenzten Zeitspanne zu lösen, bevor es an die darunterliegende Schicht geleitet wird.[cze98] Die Leistung eines Help Desk wird oft daran gemessen wieviel Prozent der Anfragen bereits von der Frontline bewältigt werden. 7 Second-Level Der Second-Level ist die Schicht unterhalb der Frontline. An den Second-Level werden Anfragen weitergeleitet, die in erster Instanz von der Frontline nicht gelöst werden konnten oder auf Grund ihrer Struktur direkt weitergeleitet werden. Der Second-Level besitzt fundierte Kenntnisse über das Produkt und es steht mehr Zeit zur Bearbeitung der Anfrage zur Verfügung.[Cze98] Third-Level Der Third-Level ist meist die letzte Instanz bei der Bearbeitung von Kundenanfragen, und gleichzeitig auch die teuerste Resource in einem Help Desk. Soweit es möglich ist, wird versucht Anfragen vom Third- Level fern zu halten. Es handelt sich hierbei um Mitarbeiter mit speziellen Kenntnissen und Fähigkeiten, die oft in externen Firmen tätig sind.[jj98] Prioritäten und Prozesse Damit die Beantwortung einer Kundenanfrage nach einer Funktionalität in Microsoft Word 8 nicht vor der Behebung eines Server-Ausfalls, von den Mitarbeitern eines Help Desk bearbeitet wird, bedarf es Prioritäten. Probleme, die in erster Instanz nicht gelöst werden konnten, benötigen eine Priorität, damit die darunterliegende Schicht (Second-Level) anhand der zugewiesenen Priorität die Reihenfolge der Bearbeitung bestimmen kann.[cze98] Eine Priorisierung kann z.b. anhand der Art der Anfragen erfolgen, wie nachfolgend in Abbildung 2 dargestellt. Bei einer Priorisierung sollten laut Czegel immer die Auswirkungen des Problems auf den laufenden Betrieb berücksichtigt werden. In ihrem Buch Run- 7 First-Call Resolution: Anfragen die mit dem ersten Kontakt zum Kunden bereits gelöst werden vgl. [Cze98] 8 Textverarbeitungsprogramm von Microsoft

18 Benutzerservice ning an Effective Helpdesk gibt sie dafür eine einfache Formel an, die als Hilfestellung bei der Bewertung dienen kann. Impact on Business = Importance of Component + Severity of event 9 Abbildung 2: Mögliche Priorisierung anhand der Anfragen Um anstehende Anfragen optimal Bearbeiten zu können, bedarf es optimaler Prozesse. Um diese Prozesse dauerhaft konsistent für jeden Kunden ausführen zu können, bedarf es fester Arbeitsabläufe. Prozessstandardisierung hilft, sich auf das Wesentliche zu konzentrieren - die Lösung eines Anwenderproblems. 10 Vorsicht! Je höher dabei der Grad der Automatisierung und Standardisierung dieser Arbeitsabläufe, desto höher der Grad der Qualität und Korrektheit der Prozesse (siehe Abbildung 3). Jedoch ist zu beachten das die reine Automatisierung von Arbeitsabläufen nicht zwangsläufig zu einem besseren Benutzerservice führt. Entscheidend sind Planung und Umsetzung der Prozesse im Help 9 vgl. [Cze98] Abbildung Torsten Beyer, Quelle: [Bey96]

19 2.1 Benutzerservice 19 Abbildung 3: Qualität von Prozessen, Quelle: [Cze98] Abbildung 4.4 Desk.[JJ98] Direkten Bezug auf Prioritäten und Prozesse haben die Servicevereinbarungen (Service Level Agreements) zwischen Help Desk und Kunde 11. Ein SLA ist eine Übereinkunft über die Dienstleistungen, üblicherweise zwischen einem Unternehmen, seinen angebotenen Leistungen, und einem Unternehmen das diese Leistungen in Anspruch nimmt. Ein SLA umfasst unter anderem folgende Punkte[Cle03]: Leistungen Leistungsqualitäten Antwortzeiten First-Call-Resolution (%) Eskalationsstufen -und verfahren ob intern oder extern, im Helpdesk-Jargon immer Kunden genannt [JJ98]

20 Benutzerservice Anhand dieser Vereinbarungen weiß der Kunde welche Leistungen er vom Help Desk erwarten kann. Im Gegenzug hat der Help Desk klare Vorgaben, welche Leistungen in welchem Zeitraum und zu welchen Konditonen erbracht werden müssen.[bey96] Planung und Entwurf Für Unternehmen stellt sich zunächst die Frage: Warum und wofür brauchen wir überhaupt einen Help Desk? Natürlich lassen sich Serviceleistungen komplett outsourcen, d.h. die Leistungen, die gegenüber dem Kunden erbracht werden, werden zur Ausführung an andere Unternehmen vergeben. Es gibt jedoch eine Vielzahl an Gründen, auf die hier nicht näher eingegangen wird, die dagegen sprechen den kompletten Help Desk auszulagern.[bey96] Steht die Entscheidung einen Help Desk zu betreiben folgt die Phase der Planung und des Entwurfs. Bei der Planung und dem Entwurf eines neuen bzw. der Überarbeitung eines bestehenden Help Desk müssen im Wesentlichen die folgenden drei Schritte durchgeführt werden[cze98]: Ziele bestimmen Aufgaben festlegen Leistungen definieren Die Komplexität der Einheit Help Desk wird oftmals unterschätzt, weshalb es nach der Einrichtung meist erheblich länger dauern kann, als in der Planung vorgesehen war, bis der Help Desk produktiv sein Arbeit verrichtet.[jj98]

21 2.2 Werkzeuge Werkzeuge Allgemein Vor dem Einsatz von Werkzeugen in einem Help Desk sollte das Unternehmen ihre eigene Support-Organisation kritisch betrachten und beurteilen. Ein Defizit in der Struktur und der Organisation eines Help Desk lässt sich durch rein technische Lösungen nur schwer ausgleichen.[cs] Helpdesk-Werkzeuge können niemandem die Arbeit abnehmen. 12 Im Support-Management Bereich gibt es eine Vielzahl von Werkzeugen die für unterschiedlichste Aufgaben verwendet werden. Welche und wie viel davon in einem Help Desk zum Einsatz kommen, hängt stark von den angebotenen Dienstleistungen ab.[cze98] Nachfolgend eine kurze Übersicht über die gängigsten Werkzeuge in diesem Bereich: Asset Management System (AMS) Bug Tracker Frequently Asked Questions (FAQ) Knowledge Base Trouble Ticket System (TTS)... Im nächsten Abschnitt wird auf das Trouble Ticket System (TTS) näher eingegangen. Anderen Systeme, die einem Help Desk zur Verfügung stehen, werden im Rahmen dieser Arbeit nicht behandelt, da dies den Umfang dieser Arbeit deutlich überschreiten würde Trouble Ticket System Bei einem Trouble Ticket System 13 (TTS) handelt es um ein Software Werkzeug zum Empfang, Kategorisierung, Bearbeitung und Speicherung von Kun- 12 Thorsten Bayer [Bey96] 13 Synonyme laut Wikipedia: Help-Desk-System, Ticketing-System, Task-Tracking- System, Support-Ticketing-System, Issue-Tracking-System

22 Werkzeuge denanfragen (Calls). Ein TTS ist stark an einen Bug-Tracker angelehnt, jedoch muss hier eine deutliche Abgrenzung erfolgen. Ein TTS bietet eine Vielzahl weiterer Funktionen, die in das Customer Relationship Management (CRM) einzuordnen sind, als dem reinen Protokollieren von Software-Fehlern (Bugs) wie dies bei einem Bug-Tracker der Fall ist. Die Internet Engineering Task Force (IETF) beschreibt in ihrem Request for Comments (RFC) 1297 welchen Aufbau und welche Funktionalität ein TTS haben sollte. Bei diesem RFC handelt es sich nicht um einen Internet Standard, sondern lediglich um eine Zusammenstellung wünschenswerter Merkmale. Es werden folgende Punkte aufgeführt die ein TTS haben bzw. beherrschen sollte[joh92]: Speicherung der Anfragen selbständige Bearbeitung (d.h. ohne bei Kollegen nachfragen zu müssen) Zeitplanung und Arbeitsverteilung Lastverteilung Eskalation Reports und Statistiken Trouble Ticket Bei Kundenanfragen, den so genannten Trouble Tickets (TTs), handelt es sich in der Regel um Notfälle, Probleme, Anfragen bzgl. angebotenen Leistungen (Schulungen) oder ganz allgemeinen Fragen.[Cze98] Der Aufbau eines solchen TT hängt stark vom eigentlichen Problem/Anliegen des Kunden ab. Bei den Angaben für ein TT wird zwischen Fixed-Fields und Free-Form-Fields unterschieden.[joh92] Fixed-Fields Es wird fest vorgegeben welche Angaben von Seiten des Mitarbeiters gemacht werden müssen. Eine Validierung und Suche in dieser Art von Tickets ist vergleichsweise einfach, da bekannt ist welche Felder es gibt. Nachteil ist das bei Notizen oder individuellen Angaben pro Fehlerfall, fest vorgegebene Felder schnell an ihre Grenzen stoßen.[joh92]

23 2.3 Zusammenfassung 23 Free-Form-Fields Bei dieser Art eines TT steht dem Service Mitarbeiter eine Anzahl frei editierbarer Felder zur Verfügung. Welche Angaben in diesen Feldern gemacht werden ist hierbei dem Mitarbeiter überlassen. Eine Validierung ist entsprechend schwer und auch eine Suche gestaltet sich aufwändiger.[joh92] Der typische Aufbau eines Trouble Ticket besteht aus einem Kopf (Head), einem Rumpf (Body) und dessen Ende (Tail). In Abbildung 4 ist stark vereinfacht dieser Aufbau dargestellt. Im Kopf werden alle für die Bearbeitung wichtigen Kopfdaten gespeichert. Darunter sind z.b. das Datum der Annahme, der Mitarbeiter der das Ticket angenommen hat, der Kunde und die eigentliche Fehlerbeschreibung. Mit diesen Angaben muss jeder Mitarbeiter im Help Desk die Möglichkeit haben das Ticket selbständig bearbeiten zu können. Im Rumpf werden Angaben (Updates) gespeichert, die während der Bearbeitung des TT hinzugefügt werden. Meist handelt es sich dabei um Free-Form- Fields in die der Bearbeiter Angaben über den aktuellen Bearbeitungsstand schreibt. Ist ein Problem gelöst, werden im letzten Teil des Tickets, dem Rumpfende Angaben über das Schließen des TT gespeichert. Das ist eine Beschreibung der Lösung, das Datum wann das Ticket geschlossen wurde und von welchem Mitarbeiter des Help Desk. Dabei handelt es sich um die minimalen Angaben, die eigentliche Anzahl kann je nach Implementierung und Help Desk variieren. 2.3 Zusammenfassung Für die technische Unterstützung des Kunden nach dem Kauf eines Produkts, ist der Help Desk eines Unternehmens zuständig. Durch die Einführung von Help Desks in Unternehmen ist diese Dienstleistung zu einer mess- und steuerbaren Einheit geworden. Dadurch lassen sich Schwachstellen finden, Prozesse und Abläufe optimieren, Kosten berechnen und abrechnen. Der interne Aufbau, die Prozesse und Abläufe unterscheiden sich von Help Desk zu Help Desk, wodurch eine Beschreibung durch ein standardisiertes Modell dieses dynamischen System schwierig wird. Es gibt jedoch Ansätze die Unternehmen eine Sammlung an Best-Practices vorgeben, wie z.b. die ITIL.

24 Zusammenfassung Abbildung 4: Struktur eines typischen Trouble Ticket

25 2.3 Zusammenfassung 25 Ein Trouble Ticket System ist ein wichtiges Werkzeug für jeden Help Desk. Es hilft bei der Annahme, Kategorisierung und Bearbeitung von Kundenanfragen. Dabei unterstützt es Prozesse und Abläufe eines Help Desk. Arbeitsabläufe lassen sich damit automatisieren. Es darf jedoch nicht vergessen werden das auch das beste Werkzeug schlechte oder nicht funktionierende Arbeitsabläufe nur schwer oder gar nicht verbessern kann. Kein Werkzeug kann hier die Arbeit des Service Mitarbeiters übernehmen, es kann ihn lediglich bei seiner täglichen Arbeit unterstützen. Achtung!

26

27 3 Zeta Helpdesk Im folgenden Kapitel wird die zu überarbeitende Software Zeta Helpdesk analysiert und beschrieben. Dabei wird zunächst auf die Architektur und die Funktionalität - anhand der Anwendungsfälle (Use Cases) - der Software eingegangen. Im weiteren Verlauf werden dann Details wie Arbeitsablauf, Benutzeroberfläche, Erweiterbarkeit, Sicherheit, Performance, Protokollierung und Ausnahmebehandlung betrachtet. In den einzelnen Abschnitten findet jeweils eine kurz Bewertung der gewonnenen Ergebnisse aus der Analyse statt. Um die Ergebnisse besser bewerten zu können, wird als Vergleich zum Zeta Helpdesk das Open Ticket Request System (siehe [CS]), ein webbasiertes Open Source TTS, herangezogen. Die einzelnen Bewertungen fließen zum Schluss dieser Arbeit in eine tabellarische Auswertung ein. Inhalt 3.1 Einführung Analyse Ergebnisse Zusammenfassung

28 Einführung 3.1 Einführung Bei der Software Zeta Helpdesk handelt es sich um ein Trouble Ticket System der Firma zeta software GmbH 14. Was ein Trouble Ticket System ist, wurde bereits im vorherigen Kapitel behandelt und wird in diesem Kapitel als Grundwissen vorausgesetzt. Der Zeta Helpdesk ist eine Windows Forms 15 basierende Anwendung, welche unter dem.net Framework 2.0 entwickelt wurde. Als Programmiersprache kam C# 16 zum Einsatz. 3.2 Analyse Analysiert werden in diesem Kapitel: Architektur (Kap ), Funktionalität (Kap ), Arbeitsablauf (Kap ), Benutzeroberfläche (Kap ), Erweiterbarkeit (Kap ), Sicherheit (Kap ), Performance (Kap ), Protokollierung (Kap ) und Ausnahmebehandlung (Kap ) Architektur Die Architektur des Zeta Helpdesk ist eine zwei Schichten Architektur in Verbindung mit einem erweiterbarem Plug-In-Konzept basierend auf Komponenten (siehe Abbildung 5). Auf das Plug-In-Konzept wird im weiteren Verlauf der Arbeit im Abschnitt Erweiterbarkeit näher eingegangen. Die Hauptanwendung (ZetaHelpdesk.Main.exe) lagert Elemente und Funktionen in vier Klassenbibliotheken (DLLs) wie folgt aus: Base: Basisklassen, Schnittstellen und Hilfsklassen Business Objects: ORM-Klassen 17 Gui: User Controls, Components und allgemeine Forms Main: sonstige Klassen Auf eine Beschreibung der einzelnen Klassen und Schnittstellen anhand eines Klassendiagramms wird bewusst verzichtet, da dies den Umfang dieser 14 Website: 15 GUI Programmiermodell des.net Frameworks (siehe hierzu 16 Programmiersprache von Microsoft in der Version Object-Relational-Mapping siehe hierzu

29 3.2 Analyse 29 Abbildung 5: Software Architektur Zeta Helpdesk Arbeit bei weitem überschreiten würde. Im weiteren Verlauf werden Klassen beschrieben, die zum besseren Verständnis eines Sachverhalts beitragen. Diese werden dann kurz an entsprechender Stellt erklärt. Der Datenbankzugriff erfolgt über die Zeta Enterprise Library 18 und wird als Object-Relational-Mapping (ORM) realisiert, welches das ER-Modell der Datenbank auf das objektorientierte Modell der Programmierspache (C#) abbildet. Die Klassen für die ORM-Objekte sind, wie bereits in der vorherigen Auflistung aufgeführt, in der BusinessObjects-DLL enthalten. Wiederkehrende Aufgaben (Tasks) werden von einer zusätzlichen Anwendung, dem Scheduler, durchgeführt. Dabei handelt es sich um eine Konsolenanwendung die als Parameter den Namen des auszuführenden Tasks erwartet. Der Name des Task ist jeweils in der entsprechenden Task-Klasse hinterlegt, die in der Main Bibliothek abgelegt sind. Damit eine Aufgabe wie z.b. das Abrufen der Support-Mailbox durchgeführt wird, muss vom Administrator in der Systemsteuerung des Systems ein neuer Geplanter Task hinzugefügt werden. Zusätzlich zur eigentlichen Windows-Forms-Anwendung (Helpdesk) und der Konsolenanwendung (Scheduler), existiert eine Webanwendung basierend auf ASP.NET. Mit dieser Anwendung werden Anfragen vom Kunden direkt über das Internet an den Help Desk gerichtet. Die Korrespondenz wird in diesem Fall üblicherweise per abgewickelt. 18 Internes Framework des Unternehmens

30 Analyse Diese beiden Anwendungen seien hiermit erwähnt, werden jedoch im weiteren Verlauf der Arbeit nicht weiter behandelt. Bewertung In der obersten Schicht, der Anwendungsschicht, findet durch die ORM-Klassen bereits eine Trennung der Daten von der restlichen Anwendung statt, jedoch sind Logik und Sicht meist in einer Klasse enthalten, der Windows Form Klasse. Durch diese Vermischung von Geschäftslogik und Präsentation ergeben sich Schwächen für die Anwendung wie eine schlechte Wiederverwendbarkeit, Änder-, Portier-, Wart- und Testbarkeit Funktionalität Um einen Überblick über die Funktionen der Software zu geben, werden die einzelnen Szenarien in Use Cases dargestellt. Für die Modellierung wird die hierfür standardisierte Unified Modelling Language (UML) 19 verwendet. Nachfolgend eine Erkärung der verwendeten Begriffe im Kontext Zeta Helpdesk. Kunde Ein Kunde wird im Zeta Helpdesk in Form einer Firma und der dazugehörigen Personen (Angestellten) repräsentiert. Projekt Eine Kategorisierung der Tickets erfolgt in Form von Projekten. Jedes Projekt ist eindeutig einem Kunden zugeordnet. Es können beliebig viele Projekte für einen Kunden angelegt werden. Bearbeiter Help Desk Mitarbeiter, der TT annimmt und bearbeitet. Kostenstelle Unter einer Kostenstelle versteht man eine betriebswirtschaftliche Einheit, der die entstandenen Kosten, die bei der Bearbeitung eines Tickets anfallen, angerechnet werden. Anhand der Kostenstelle bestimmt die Buchhaltung eines Unternehmens ob die Bearbeitung eines Tickets in Rechnung gestellt werden kann Projekt-Verwaltung 19 Homepage der Object Management Group zu UML:

31 3.2 Analyse 31 Abbildung 6: Use Case: Projekt-Verwaltung

32 Analyse Projekt hinzufügen/löschen Der Benutzer kann dem System neue Projekte hinzufügen oder bestehende löschen (siehe Abb. 6). Das Entfernen eines Projekts muss durch den Benutzer bestätigt werden. Um ein neues Projekt hinzuzufügen muss der Benutzer einige Angaben machen. Dies ist unter anderem z.b. der Name des Projekts, welcher Kunde dem Projekt zugeordnet und welcher Bearbeiter der Projektmanager ist. Des Weiteren können verschiedene Standard Werte für die Erstellung neuer Tickets vorgegeben werden. Projekt bearbeiten Alle vom Benutzer bei der Erstellung eines neuen Projekts gemachten Angaben, können nachträglich über den selben Dialog bearbeitet werden. Projekt auswählen Der Benutzer wählt ein Projekt aus um anschließend weiter Aktionen wie das Hinzufügen von Tickets durchzuführen. Kunde bearbeiten kann der Benutzer direkt wenn er ein Projekt ausgewählt hat. Dieser Fall ist analog zu dem Fall im Use Case Kunden-Verwaltung Kundenperson hinzufügen/bearbeiten kommt ebenfalls aus dem Use Case Kunden-Verwaltung und kann vom Benutzer nach der Auswahl eines Projekts ausgeführt werden. Ticket hinzufügen/bearbeiten Ein Bearbeiter hat die Möglichkeit nach der Auswahl eines Projeks ein neues Ticket für das ausgewählt Projekt zu erstellen. Er muss dazu die entsprechenden Felder, wie z.b. im Abschnitt beschrieben wurde, ausfüllen. Für den Bearbeiter und den Scheduler besteht außerdem noch die Möglichkeit, auch ohne Auswahl eines Projekts ein neues Ticket zu erstellen. Eine Zuordnung zu einem Projekt kann hier später durch Bearbeitung des Tickets erfolgen. Ticket löschen werden. muss vom Benutzer, wie bei jedem Löschvorgang, bestätigt Event hinzufügen/bearbeiten kann der Bearbeiter nur bei der Bearbeitung oder Erstellung eines neuen Tickets. Events stellen in diesem Kontext

33 3.2 Analyse 33 Problemnotizen dar, die der Bearbeiter während der Bearbeitung eines Problems dem entsprechenden Ticket hinzufügt. 20 Event löschen verhält sich analog zu Ticket löschen. Abbildung 7: Use Case: Kunden-Verwaltung Kunden-Verwaltung Kunde hinzufügen/entfernen Der Benutzer kann dem System neue Kunden hinzufügen, indem er die entsprechenden Angaben zu diesem Kunden macht und ihn speichert (siehe Abb. 7). Das Löschen eines Kunden verhält sich analog zum Löschen aus Use Case Projekt-Verwaltung. Kunde bearbeiten neuen Kunden. erfolgt über den gleichen Dialog wie das Anlegen eines 20 vgl. Abschnitt : Free-Form-Fields

34 Analyse Person hinzufügen/entfernen Zu jedem Kunden können Personen angelegt werden, die in diesem Unternehmen tätig sind. Genau wie die Funktion Person bearbeiten kann diese Funktion von Kunde bearbeiten aus aufgerufen werden. Lediglich das Löschen ist nicht im Bearbeitungsmodus eines Kunden möglich. Person bearbeiten Der Benutzer hat die Möglichkeit nach dem Anlegen einer Person diese zu bearbeiten. Hier können alle Angaben, die bei der Erstellung gemacht wurden, nachträglich geändert werden. Abbildung 8: Use Case: Editor Datensatz Bearbeiter-Verwaltung Benutzer hinzufügen / löschen Genau wie das Bearbeiten, können Benutzer hinzugefügt und gelöscht werden. Benutzer bearbeiten Sowohl Administratoren also auch Bearbeiter haben die Möglichkeit Benutzer nachträglich zu bearbeiten (siehe Abb. 8) Kostenstellen-Verwaltung Die Funktionen sind hier analog zum Use Case Bearbeiter-Verwaltung. Es werden hier Kostenstellen (Cost Cen-

35 3.2 Analyse 35 ters) verwaltete, die bei der Erstellung eines Tickets ausgewählt werden können. Abbildung 9: Use Case: Geladene Plug-Ins Geladene Plug-Ins Geladene Plug-Ins ansehen Der Benutzer des Systems hat die Möglichkeit sich eine Auflistung aller momentan geladenen Plug-Ins anzusehen (siehe Abb. 9). Ein Hinzufügen, Bearbeiten oder Löschen von Plug-Ins ist zur Laufzeit nicht möglich. Es wird dazu keinerlei Funktionalität von Seiten der Anwendung bereitgestellt Konfiguration Konfiguration bearbeiten Der Benutzer hat die Möglichkeit Einstellungen am Zeta Helpdesk vorzunehmen (siehe Abb. 10). Hier kann er z.b. Einstellungen an der -Konfiguration oder an der allgemeinen Konfiguration vornehmen. An dieser Stelle wird nicht näher auf die einzelnen Konfigurationsparameter eingegangen. Eine Auflistung aller konfigurierbaren Einstellungen ist dem Anhang (siehe A.1) beigefügt.

36 Analyse Abbildung 10: Use Case: Konfiguration Abbildung 11: Use Case: Support Mailbox

37 3.2 Analyse Support Mailbox Support Mailbox abrufen In regelmäßigen Abständen (je nach Konfiguration) wird vom Scheduler die vom Benutzer konfigurierte (siehe Use Case Konfiguration bearbeiten) Support-Mailbox abgerufen. Dieser Vorgang kann auch manuell durch den Benutzer über die Oberfläche ausgeführt werden (siehe Abb. A.2). Sind neue s vorhanden wird versucht sie den entsprechenden Tickets zuzuordnen. Gelingt dies, wird dem entsprechende Ticket ein neuer Event hizugefügt. Ist eine Zuordnung nicht möglich wird ein neues Ticket für die eingegangene erstellt. Ticket hinzufügen kommt aus dem Use Case Projekt Verwaltung. Ist keine Zuordnung zu einem bereits bestehenden Ticket möglich, wird für die eingegangenen Mail ein neues Ticket erzeugt. Event hinzufügen kommt ebenfalls wie Ticket hinzufügen aus dem Use Case Projekt Verwaltung. Kann der Task eine eingehende Support- einem bestimmten Ticket zuordnen, wird dem Ticket ein neuer Event mit den entsprechenden Daten (Anhang, Text, Absender) aus der hinzugefügt. Bewertung Die Anwendung bietet alle gängigen Funktionen, die ein TTS haben sollte. Eine Kategorisierung erfolgt anhand der Projekte, die für Kunden angelegt werden können. Leider fehlt in diesem Bereich eine flexiblere Möglichkeit der Kategorisierung z.b. anhand von zusätzlichen Tags die in jedem Ticket ausgewählt bzw. angegeben werden können Arbeitsablauf Der Arbeitsablauf, üblicherweise in der IT mit dem engl. Begriff Workflow 21 bezeichnet, ist im Zeta Helpdesk programmatisch fest in der Anwendung implementiert. Der Workflow in einem TTS ist im wesentlich das Verhalten eines Tickets von der Erstellung bis zum Schließen. Im Kontext Zeta Helpdesk wird dies auch als Ticket-Lifecycle bezeichnet. Abbildung 19 stellt den Ticket-Lifecycle in einem Ablaufdiagramm dar. 21 Anmerkung vom Autor: Definition zu Workflow siehe Kapitel 4.

38 Analyse Abbildung 12: Ticket-Lifecycle

39 3.2 Analyse 39 Die Erzeugung eines neuen Tickets geschieht entweder durch den Benutzer der Anwendung oder automatisch durch den Scheduler. Nach der Erstellung eines Tickets ist der Zustand des Tickets Open. Eine Ausnahme stellt hier die sofortige Schließung eines Tickets während der Erstellung dar, hier würde das Ticket sofort in den Zustand Closed 22 wechseln. Der Lifecycle des Tickets wäre folglich beendet. Ist das Ticket offen und wurde vom Benutzer gespeichert befindet es sich in einem wartendem Zustand, d.h. es wartet bis eine Aktion eines Benutzers (oder Scheduler) ausgeführt wird und es somit zu einer Überprüfung und ggf., durch den entsprechenden Status, zur Beendigung des Lifecycles kommt. Bewertung Durch den fest in die Anwendung implementierten Arbeitsablauf, ist eine Erweiterung, Änderung oder Anpassung nur mit größerem technischem und zeitlichem Aufwand möglich und bedeutet einen tiefen Eingriff in das vorhandene System. Für den Benutzer des Systems ist eine Anpassung unmöglich Benutzeroberfläche Um nach der Beschreibung der Architektur und der Funktionen des Zeta Helpdesk einen Einblick in die Sicht des Benutzers zu bekommen, stellt dieser Abschnitt die wichtigsten - dem Autor erwähnenswerten - Elemente der Benutzeroberfläche (GUI) kurz vor. Dieser Abschnitt hat nicht den Anspruch alle Facetten der GUI zu beschreiben. Zentrale Stelle bei der täglichen Arbeit mit dem Zeta Helpdesk ist die Registerkarte Projects wie sie in Abbildung 13 zu sehen ist. Hier lässt sich, wie im Use Case Projekt-Verwaltung beschrieben, neben der eigentlichen Verwaltung der Projekte (Hinzufügen, Bearbeiten und Löschen), Tickets zu den jeweiligen Projekten erstellen und bearbeiten. Im linken Bereich wird dem Benutzer, je nach Filter-Einstellung, eine Auflistung vorhandener Projekte dargestellt. Durch die Auswahl eines Projekts werden im mittleren Teil alle, zu diesem Projekt, vorhandenen Tickets aufgelistet (wie zuvor abhängig von Filter-Einstellungen). Wählt der Benutzer 22 Vom Zustand Closed gibt drei Spezialisierungen (Closed as... ), die zusätzliche Information enthalten. Meist handelt es sich dabei um Tickets die bei der Erstellung sofort geschlossen werden

40 Analyse Abbildung 13: Registerkarte Projekt-Verwaltung

41 3.2 Analyse 41 eines dieser Tickets aus, wird im rechten Teil des Bildschirms bereits eine Übersicht relevanter Daten (vorhandene Events, Status, Bearbeiter,... ) dargestellt. Abbildung 14: Ticket erstellen/bearbeiten Die eigentliche Bearbeitung der TT geschieht über den in Abbildung 14 und 15 dargestellten Dialog. Hier werden vom Benutzer, wie in Abschnitt bereits beschrieben, die Kopf- und Rumpfdaten eines Tickets bearbeitet. Bewertung Da es für die Gestaltung der Oberfläche einer Windows Anwendung keine Normen und Regeln gibt, orientiert sich die GUI des Zeta Helpdesk stark an der Oberfläche von Windows. Schwachpunkt dabei ist die Benutzbarkeit (Usability) der Oberfläche, die sich teilweise nicht an der täglichen Arbeit eines Service-Mitarbeiters orientiert, d.h. nicht Benutzerorientiert gestaltet wurde. Die Usability ist jedoch aufgrund der Windows Forms basierenden Anwendung im Vergleich zum OTRS, das als Client nur eine Webanwendung bietet, klar im Vorteil. Webanwendungen haben immer den Nachteil, dass sie abhängig von verschiedenen Faktoren sind wie z.b. der Netzauslastung oder der Auslastung des Webservers.

42 Analyse Abbildung 15: Ticket Erstellen/Bearbeiten; Weitere Einstellungen Erweiterbarkeit (Plug-In-Konzept) Mit seiner Komponenten basierten Architektur bietet der Zeta Helpdesk dem Entwickler die Möglichkeit der einfachen Erweiterbarkeit. Über die implementierte Plug-In-Architektur lässt sich die Software einfach mit neuer Funktionalität ausstatten, ohne große Änderungen am Programm oder den Programmbibliotheken selbst vornehmen zu müssen. Eine denkbare Erweiterung wäre beispielsweise eine Schnittstelle zu einer anderen Anwendung um gemeinsame Daten zu synchronisieren. Die Plug-In-Architektur besteht aus dem Plug-In Connector und konkreten Plug-Ins. Der Plug-In Connector ist eine Klassenbibliothek die als Bindeglied zwischen Hauptprogramm und konkretem Plug-In dient, d.h. das das Hauptprogramm keine Referenzen auf konkrete Plug-Ins hat bzw. haben darf (siehe Abbildung 16) Dem Hauptprogramm sind lediglich Schnittstellen bekannt die vom Plug-In implementiert werden, die eigentliche Implementation bleibt dabei verborgen. Die Schnittstellen sind ebenfalls in der Assembly des Plug-In Connectors im Namensraum ZetaHelpdesk.PlugInConnector.ConcretePlugIns implementiert. Damit ein Plug-In zur Laufzeit von der Anwendung geladen werden kann, muss es in einen Unterordner, das Plug-In Verzeichnis, der Anwendung kopiert werden. Zur Laufzeit wird das Plug-In Verzeichnis von der Anwen-

43 3.2 Analyse 43 Abbildung 16: Komponentendiagramm der Plug-In Architektur dung nach verfügbaren Plug-In-Assemblys durchsucht. Bei Erfolg wird die entsprechende DLL via Reflection in den aktuellen Anwendungskontext geladen. Die Implementierungen der Schnittstellen werden dann ebenfalls mit der Reflection-API des.net Frameworks instanziiert und bereitgestellt. Im Folgenden wird anhand eines kleinen Beispiels gezeigt wie das Vorgehen bei der Erstellung eines neuen Plug-Ins ist: In der Entwicklungsumgebung (Visual Studio 2005) wird ein neues Projekt vom Typ Klassenbibliothek hinzugefügt. Das Projekt bekommt den Namen SamplePlugIn Im Unterpunkt Verweise des neuen Projekts muss ein Verweis zur PlugInConnector Assembly hinzugefügt werden. Klasse PlugInAssembly hinzufügen und Schnittstelle IPlugInAssembly implementieren. Mit dieser Klasse wird die Assembly als Plug-In markiert. Schnittstelle ISampleModule, welche von IPlugInModule erbt und die Methoden definiert, die von der Anwendung aufrufbar sein sollen, der Assembly PlugInConnector hinzufügen. Klasse SampleModule der SamplePlugIn Assembly hinzufügen. Diese Klasse impl. die zuvor definierte Schnittstelle aus der Assembly Zeta- Helpdesk.PlugInConnector. Methoden implementieren die von ISampleModule und deren geerbten IPlugInModule vorgegeben werden.

44 Analyse Projekt übersetzten und Ausgabe in das PlugIn Verzeichnis des Zeta Helpdesk kopieren oder den Build-Pfad des neuen Projekts anpassen, so das er auf dieses Verzeichnis verweist. Nach der Fertigstellung des neuen Plug-Ins, können die zuvor in der Schnittstelle ISampleModule definierten Methoden in der Anwendung verwendet werden. Bewertung Mit dem Plug-In Konzept ist es möglich die Anwendung mit geringem Aufwand zu erweitern. Es sind nur minimale Eingriffe in die eigentliche Anwendung nötig, um ein Plug-In zu verwenden. Hinweis: Die Konfigurationsdatei (app.config) der Anwendung muss den im Quelltext 2 dargestellten Eintrag enthalten. Der Tag probing 23 gibt der Common Language Runtime an, wo zusätzlich zu dem Standard-Verhalten nach Assemblys gesucht werden soll.[mica] Diese Angabe über das Plug-In-Verzeichnis, muss der Konfigurationsdatei einmalig hinzuzufügen werden. 1 <runtime> 2 <assemblybinding xmlns="urn : schemas microsoft com : asm. v1"> 3 <probing privatepath=" PlugIns " /> 4 </assemblybinding > 5 </runtime> Quelltext 2: Assembly proping Eintrag in die app.config Sicherheit IT-Sicherheit bezieht sich auf alle Maßnahmen zur Verringerung des Gefährdungspotentials für Anwendungen und Systeme. In diesem Abschnitt sollen drei Aspekte der Sicherheit des bestehenden Systems betrachtet werden. Die Zugriffs-, Ausfall- und Synchronisationssicherheit werden kritisch analysiert und in der Bewertung dem OTRS gegenübergestellt. 23 <probing>-element:

45 3.2 Analyse 45 Zugriffssicherheit, Rechte und Gruppen Damit Bearbeiter Müller den Zugang von Bearbeiter Maier nicht löschen darf, bedarf es entsprechender Gruppen und Rechte. Die Einteilung in Benutzergruppen und Berechtigunsstufen ist ein wesentlicher Bestandteil der Zugriffssicherheit um sensible Bereiche zu schützen. Im Zeta Helpdesk gibt es zwei Benutzergruppen. Die Bearbeiter (Editors) und die Administratoren. Die Gruppe der Administratoren ist in diesem Kontext eine spezialisierte Form eines Bearbeiters. Spezielle Rechte anhand dieser Gruppen gibt es jedoch nicht. Bearbeiter können nahezu alle Funktionen des Systems nutzen, die einzige Ausnahme ist das Löschen fremder Tickets. Dies ist nur für den Bearbeiter möglich, der als Ersteller des Tickets eingetragen ist, und stellt die einzige Einschränkung für den Bearbeiter dar. Ausfallsicherheit Damit nach dem Ausfall einer Hardware, Daten wiederhergestellt werden können, muss eine Datensicherung der relevanten Daten durchgeführt werden. In diesem Abschnitt wird kurz auf die Stellen eingegangen, an denen Daten anfallen und die für eine Datensicherung von Relevanz sind. Zentraler Punkt einer Datensicherung ist die Datenbank, in der nahezu alle Daten die bei der Arbeit mit dem Zeta Helpdesk gespeichert werden. Die Sicherung dieser Daten kann bequem über das jeweilige Dienstprogramm des Datenbankservers durchgeführt werden. Im Management Studio des Microsoft SQL Server 2005 kann ein Backup einer Datenbank über den Task Backup... durchgeführt werden. Eine weitere Stelle, die bei der Sicherung der Daten berücksichtigt werden muss, ist das Datenverzeichnis der Anwendung. Die Lokation dieses Verzeichnis, ist über die Oberfläche konfigurierbar. In diesem Verzeichnis werden Anhänge (Attachments) zu den gespeicherten Tickets gespeichert. Es ist wie bereits erwähnt wurde möglich eine Support-Mailbox durch den Scheduler abrufen zu lassen. Enthält eine vom Scheduler abgerufene einen Anhang, so wird dieser zu dem entsprechenden Ticket gespeichert. Synchronisationssicherheit Wie bereits im Abschnitt Architektur beschrieben wurde gibt es kein zentrales Element (Server) das den Zugriff der Clients überwachen und steuern könnte. Eine Verteilung im Netzwerk ist trotz der Architektur durchaus möglich, um jedoch bei parallelem Zugriff

46 Analyse auf die Datenbank Race Conditions 24 zu vermeiden, bedarf es Mechanismen um den Zugriff der Clients zu regeln. Ein solcher Mechanismus ist der Locking-Mechanismus. Unter Locking versteht man den gegenseitigen Ausschluss beim Zugriff auf einen Datensatz oder ein Objekt. Im Zeta Helpdesk ist ein Mechanismus implementiert um ORM-Objekte zu locken. Er besteht aus einer Klasse und einer Schnittstelle. Die Schnittstelle ILockable definiert eine Methode Lock, die ein Objekt vom Typ LockGuard zurückliefert. Die Klasse LockGuard stellt einen Datensatz der Tabelle Locks (siehe A.2) dar, und implementiert die Schnittstelle IDisposable (siehe Quelltext 3). Der öffentliche, parametrisierte Konstruktor dieser Klasse erwartet ein Objekt vom Typ Type und einen Integerwert als Übergabe. Die Variable objecttype gibt dabei an um welchen ORM-Objekttyp es sich handelt. Der Integerwert ist die eindeutige (Identity) ID für diesen Datensatz. Wird versucht einen Lock auf ein bereits gelocktes Objekt zu setzen, wird von der LockGuard Klasse die Ausnahme LockException geworfen. 1 public interface ILockable 2 { 3 /// <summary> 4 /// Locks the o b j e c t. Unlocks in the 5 /// </summary> 6 /// <returns >Returns a l o c k guard.</ returns > 7 LockGuard Lock ( ) ; 8 } Quelltext 3: Schnittstelle ILockable Die Methode Run wird für ORM-Objekte wie im Quelltext 4 zu sehen ist implementiert. Der Rückgabewert kann dann in einem using-block 25 verwendet werden, um wie vergleichbar mit dem synchronized block in Java, in diesem Block einen synchronisierten Zugriff auf die Daten auszuführen. Mit der Zerstörung (Dispose) des LockGuard Objekts nach dem Ende des using- Blocks, wird der Locking Datensatz aus der Datenbank entfernt und somit der Lock aufgehoben. 24 Ein Ergebnis ist davon abhängig welcher Client zuerst abspeichert. Bestehenden Daten werden unter Umständen unberücksichtigt überschrieben. 25 vgl.

47 3.2 Analyse 47 1 public LockGuard Lock ( ) 2 { 3 return new LockGuard ( GetType ( ), ID ) ; 4 } Quelltext 4: Implementierung der Methode Lock Bewertung In punkto Sicherheit fehlt dem Zeta Helpdesk schlichtweg die nötige Reife. Viele, zum Teil grundlegende Mechanismen sind zwar vorhanden, werden jedoch nicht oder nur rudimentär eingesetzt. Positiv ist die Speicherung der Daten im Zeta Helpdesk, da alle Einstellungen des Systems in der Datenbank gespeichert werden, kann im Vergleich zum OTRS darauf verzichtet werden die gesamte Anwendung in ein Backup mit einzubeziehen. Schwachstelle ist die Synchronisationssicherheit, da der Locking-Mechanismus nicht verwendet wird, kann es dadurch im laufenden Betrieb zu Fehlern kommen, die nur schwer zu finden sind. Folgendes Szenario wäre denkbar: Zwei Mitarbeiter an verschiedenen Clients öffnen das gleiche Ticket. Mitarbeiter 1 löst das Problem und setzt das Ticket in den Zustand Closed und speichert es ab. In derselben Zeit wurde Mitarbeiter 2 am Telefon aufgehalten hat dasselbe Ticket jedoch immer noch geöffnet und fügt lediglich eine Notiz hinzu und speichert das Ticket. Welchen Zustand hat das Ticket wohl nachdem Mitarbeiter 2 es gespeichert hat? Das Ticket befindet sich wieder in dem Zustand, in dem es ursprünglich war. Szenario Im Vergleich zum OTRS ist die Zugriffssicherheit im Zeta Helpdesk quasi nicht vorhanden. Das OTRS bietet eine komplexe Struktur aus Gruppen, Benutzern und Rollen. Des weiteren bietet das OTRS Access Control Lists (ACLs) mit denen sich Zugriffe auf Tickets, Module und Queues des Systems steuern lassen. Sie dienen als Ergänzung zum bestehenden Berechtigungssystem.[CS] Hinweis: Um Deadlock Situationen zu vermeiden sind pro Datensatz eines Locks zusätzlich das Datum und Angaben zum Benutzer gespeichert. Anhand dieser Daten kann die Anwendung entscheiden ob ein Lock ungültig ist.

48 Analyse Performance, Skalierbarkeit In diesem Abschnitt wird auf die Performance und die Skalierbarkeit der Anwendung eingegangen. Für die Messungen der benötigten Zeiten und Speichers wird der ANTS Profiler von redgate 26 verwendet. Da es sich bei Geschwindigkeit im Sinne einer Anwendung (Reaktionszeiten) oft auch um subjektive Wahrnehmung des Anwenders handelt, folgt kurz eine subjektive Einschätzung der Geschwindigkeit vom Autors. Der Eindruck ist, das mit steigender Anzahl an Tickets, das System langsamer und träger wird. Die Analyse der Anwendung hat gezeigt, dass zwei Mechanismen in Form von Caching implementiert sind, um den Zugriff auf die Daten zu beschleunigen. Objekt-Caching SQL-Caching Objekt-Caching ist direkt in die Anwendung implementiert und speicher häufig verwendete ORM-Objekte zwischen. SQL-Caching ist in der verwendeten Zeta Enterprise Library implementiert, die für den Zugriff auf die Datenbank verwendet wird, und speichert häufig verwendete Datensätze zwichen, um die Daten der Anwendung schneller bereitstellen zu können. Die Dauer und der Speicherbedarf folgender Prozesse wird mit jeweils unterschiedlicher Anzahl an Tickets gemessen: Programmstart Ticket-Liste füllen Ticket öffnen Für die Durchführung wurde folgendes System verwendet: Aktueller Rechner mit Intel Pentium 4 CPU mit 3 GHz und 2 GB Arbeitsspeicher. Getestet wurde mit leeren Tickets, d.h. ohne Events. In Tabelle 1 sind die Ergebnisse dieser Messungen aufgeführt. Bewertung Die durchgeführten Test haben gezeigt das der Zeta Helpdesk bei der Auflistung der Tickets für ein Projekt, alle Tickets aus der Datenbank läd. Daraus folgt eine schlechte Skalierbarkeit, da Tests mit >10000 schlichtweg nicht möglich waren, da die Anwendung abgestürzt ist. Betrachtet man die Ergebnisse aus Tabelle 1 fällt auf das die Dauer für 26

49 3.2 Analyse 49 # Speicher (MB) Objekte Start (s) Liste füllen (s) Ticket öffnen (s) 0 1, , ,13 1, , ,26 1, , ,6 1, , ,90 1,07 Tabelle 1: Zeit- und Speicherbedarf das Öffnen eines Tickets bei steigender Ticketanzahl konstant bleibt. Ein weiterer Test mit einem Ticket das 100 Events enhält, ergab eine Zeit von 2,5 Sekunden für das Öffnen eines Tickets. Die Schlußfolgerung aus den gewonnenen Ergebnissen ist eine schlechte Skalierbarkeit und eine mit steigender Zahl an Tickets/Events langsamer werdende Anwendung Protokollierung Während der Ausführung werden von der Anwendung verschiedene Informationen in eine Protokolldatei geschrieben. Dabei kann es sich um einfache Hinweise, Debugging Informationen, Warnungen oder Fehlermeldungen handeln. Die Protokollierung wird, von dem in die Zeta Enterprise Library integriertem Logging Framework log4net 27 realisiert. Bei log4net handelt es sich um eine Portierung des unter Java sehr bekannten Logging Frameworks log4j 28 nach.net. 1 catch ( Exception e ) 2 { 3 LogCentral. Current. LogError ( 4 " B e n u t z e r d e f i n i e r t e Meldung", 5 e 6 ) ; 7 } Quelltext 5: Protokollierung einer Ausnahme Um im Fehlerfall einen entsprechenden Eintrag in die Protokolldatei zu schreiben, wird im catch-block einer try-catch-anweisung die in Quelltext 5 ge- 27 siehe hierzu: 28 siehe

50 Ergebnisse zeigte Programmzeile ausgeführt. LogCentral ist eine Klasse der Zeta Enterprise Library und stellt eine Instanz ihrer Klasse als Eigenschaft (Property) (Current) dem Entwickler zur Verfügung (vgl. Singleton Pattern). Dieses Objekt bietet dann entsprechende Methoden für die Protokollierung. Über die Benutzeroberfläche ist es dem Anwender möglich, die Protokollierung zu deaktivieren. Dies hat den Vorteil das in einem gut funktionierendem System der Performance Overhead durch unnötige Protokollierung wegfällt. Bewertung Mit der implementierten Protokollierung lassen sich schnell Fehler im System auffinden. Durch die Konfigurierbarkeit, ist es dem Benutzer der Anwendung möglich diese Funktion jederzeit zu deaktivieren wenn er dies wünscht Ausnahmebehandlung Fehlermeldungen (Exceptions) werden im Zeta Helpdesk an zentraler Stelle in der Hauptanwendung aufgefangen und behandelt. Die Behandlung einer Ausnahme sieht vor, dem Benutzer der Anwendung einen entsprechenden Fehler-Dialog (siehe Abbildung 17) darzustellen, in dem er eine kurze Beschreibung der Fehlermeldung angezeigt bekommt. Der Fehler-Dialog der Anwendung bietet im Gegensatz zum Standard-Fehler-Dialog des Frameworks weitere Möglichkeiten, Aktionen wie z.b. das Senden einer mit der entsprechenden Fehlermeldung an zeta software durchzuführen. Bewertung Durch die zentrale Behandlung von Ausnahmen, die nicht an anderer Stelle im Programm aufgefangen wurden, wird ein Absturz der Anwendung verhindert. Der implementierte Fehler-Dialog der Anwendung hat den Vorteil gegenüber dem Standard-Dialog des Frameworks, das für den Benutzer des Systems mehr Optionen zur Verfügung stehen. Er hat dadurch die Möglichkeit eine Ausnahme direkt an zeta software zu berichten. 3.3 Ergebnisse Die gewonnenen Ergebnisse der zuvor analysierten und bewerteten Bereiche werden in Tabelle 2 aufbereitet. Die einzelnen Bereich werden nochmals aufgeführt und eine Note (Schulnotensystem: sehr gut,..., ungenügend )

51 3.4 Zusammenfassung 51 Abbildung 17: Fehler-Dialog des Zeta Helpdesk vergeben. Die Benotung erfolgt anhand der Bewertungen der einzelnen Abschnitten. Der Kern dieser Arbeit beschäftigt sich mit der Überarbeitung und Verbesserung der Architektur und des Workflows. Im letzten Teil der Arbeit werden dann noch weiter Punkte aufgegriffen, die während dieser Arbeit verbessert oder weiterentwickelt wurden, jedoch nicht zum Kern der eigentlichen Arbeit gehören und deshalb im Kapitel 6 beschrieben werden. 3.4 Zusammenfassung Der Zeta Helpdesk, ein TTS basierend auf.net Framework ging aus einer firmeninternen Anforderung hervor Probleme, deren Bearbeitung und der dafür benötigten Zeit über ein Softwaresystem zu erfassen. Er bietet die gängigsten Funktionen um die Mitarbeitern eines Help Desks bei der täglichen Arbeit zu unterstützen. Die Funktionsweise und der Aufbau der Anwendung richten sich an gänige Vorgaben im Bereich des Supportmanagements. Durch sein Plug-In Konzept ist eine schnelle Erweiterung mit zusätzlicher Funktionalität einfach zu realisieren. Schwächen offenbart die Anwendung jedoch in den Bereichen Architektur, Arbeitsablauf, Benutzeroberfläche, Sicherheit und Performancen. In vielen Bereichen wirkt die Software unausgereift bzw. unfertig.

52 Zusammenfassung Ausnahmebehandlung Bereich Note Bemerkung Arbeitsablauf ausreichend fest in die Anwendung implementiert, nicht konfigurierbar, unflexibel Architektur befriedigend keine klare Trennung in der Präsentationsschicht, schlecht widerverwend-, änder-, portier-, wart- und testbar Benutzeroberfläche befriedigend bessere Usability wie Webanwendung jedoch nicht benutzerorientiert sehr gut Ausnahmen werden an zentraler Stelle aufgefangen und behandelt, Fehler-Dialog mit vielen Funktionen Ausfallsicherheit gut Daten fallen an zwei zentralen Stellen an: Datenbank und Dateisystem, keine Sicherung der Anwendung nötig Erweiterbarkeit sehr gut Plug-In-Konzept Funktionalität gut bietet die gängigsten Funktionen Performance, Skalierbarkeit ausreichend schlechte Skalierbarkeit, wird mit steigender Ticket Anzahl langsamer Protokollierung sehr gut log4net ist implementiert und durch Benutzer konfigurierbar Synchronisationssicherheit ungenügend Locking-Mechanismus vorhanden, wird jedoch nicht verwendet Zugriffssicherheit, mangelhaft keine Rechtestruktur, Bearbeiter Rechte und Gruppen darf alles Tabelle 2: Ergebnisse der Analyse

53 4 Grundlagen In diesem Kapitel werden Grundlagen der Technologien erarbeitet, die während der Design- und Entwicklungsphase in Kapitel 5 zum Einsatz kommen. Im ersten Abschnitt Entwurfsmuster: Model View Presenter wird einleitend an das Thema herangeführt und im weiteren Verlauf das verwendete Muster näher erläutert. Im weiteren Verlauf dieses Kapitels werden Grundlagen des verwendeten Workflow-Frameworks von Microsoft erarbeitet und anhand eines Beispiels die Erstellung eines einfachen Workflows demonstriert. Inhalt 4.1 Entwurfsmuster: Model View Presenter Windows Workflow Foundation Zusammenfassung

54 Entwurfsmuster: Model View Presenter 4.1 Entwurfsmuster: Model View Presenter In diesem Kapitel wird zunächst auf den Ursprung (Kap ) des Entwurfsmusters Model View Presenter eingegangen. Im darauffolgenden Abschnitt (Kap ) wird dann das Entwurfsmuster beschrieben, bevor im letzten Teil dieses Kapitels auf eine spezielle Variante (Kap ) dieses Musters eingegangen wird Urspung Beim Model View Presenter Pattern (MVP) handelt es sich um ein Derivat des Model View Controller Patterns (MVC). Dieser Abschnitt soll mit einer kurzen Einführung in das MVC Pattern an die eigentliche Thematik heranführen und ein Grundwissen vermitteln, das im späteren Verlauf dieses Kapitels benötigt wird. MVC fällt in die Kategorie Design- bzw. GUI-Architekturmuster und macht selbst Gebrauch von anderen Entwurfsmustern wie dem Observer, Composite, Factory und Strategy Pattern.[EG95] Es handelt sich dabei nicht um ein vollständiges Architekturmuster, wie oftmals fälschlicherweise angenommen, sondern bezieht sich rein auf die Präsentationsschicht der eigentlichen Anwendung.[BL06] Ursprünglich ist MVC als Teil von Smalltalk dazu verwendet worden Benutzeroberflächen so zu entwickeln, das eine saubere Trennung zwischen der Interaktion eines Benutzers (z.b. Mausaktionen) und der dadurch veränderten Daten und deren Darstellung statt findet. Die Trennung erfolgt dabei in drei Elemente: Datenmodell (engl. Model), Präsentation (engl. View) und Programmsteuerung (engl. Controller). Controller Der Controller im ursprünglichen MVC von Smalltalk hat die Aufgabe Interaktionen eines Benutzers über die unterschiedlichsten Eingabemöglichkeiten wie Tastatur oder Maus entgegen zu nehmen und in entsprechender Form weiterzuleiten. Model Das Model muss darstellbar sein und den Zustand den es hat verwalten können. Es muss außerdem auf Aufforderungen zur Änderungen 29 Objektorientierte Programmiersprache entwickelt am Xerox PARC

55 4.1 Entwurfsmuster: Model View Presenter 55 seiner Daten reagieren können. Eine Persistierung des Zustandes (Daten) muss dabei nicht unbedingt vom Model übernommen werden. Das Model enthält selbst einen Großteil der Anwendungslogik und greift auf Domain Models zu, um deren Daten zu verändern. Zu einem bestimmtem Modell kann es beliebig viele (1... *) View/Controller Paare geben. View Der View ist für die Darstellung der Daten aus dem Model zuständig. Einem View ist in der Regel eindeutig ein bestimmter Controller zugeordnet, es muss jedoch nicht zwangsläufig ein Controller zu einem View existieren. Controller und View sind meist, in Form einer Instanz auf den jeweils anderen, fest miteinander verbunden. Diese Controller/View Paar hat jedoch keine direkte Verbindung mit einem Model. Eine Verbindung besteht nur in Form einer Observer-Beziehung zwischen dem Controller-View-Paar und dem Model. Controller-View-Paar kennen das Model das sie überwachen, jedoch weiß das Model nicht von der Existenz seiner Überwacher (vgl. Observer Pattern in Java). Dieses Vorgehen macht es dem Model jedoch sehr schwer Dinge am View zu verändert, da es sich jedoch um ein Application Model (impl. Logik der Anwendung) handelt, muss das Model zwangsläufig auf den View zugreifen um diesen zu verändern. Dies wird dann über entsprechende Ereignisse realisiert, die dem View Parameter übergeben, die die zu ändernden Werte enthalten. Information: Die Vielfalt an Interpretationen und Ausprägungen des eigentlichen MVC ist heute kaum zu überschauen. Oft Resultieren solche Versionen aus einem falschen Verständnis des Konzepts. Aber auch Weiterentwicklungen und Anpassungen an neue Bedürfnisse bringen neue Varianten hervor.[bl06] Eine Interpretation von MVC findet z.b. in Swing, der GUI- Bibliothek von Java, ihre Verwendung Twisting the triad Das Model View Presenter Pattern tauchte erstmalig bei IBM auf und wurde 1996 detailliert von der Firma Taligent 30 durch Mike Potel beschrieben. Später wurde die Idee dann von den Entwicklern der Dolphin Smalltalk Ent- 30 Tochtergesellschaft der IBM

56 Entwurfsmuster: Model View Presenter Abbildung 18: Model View Controller, Quelle: Object Arts Ltd. wicklungsumgebung aufgegriffen und weiter entwickelt. In einer Publikation (TWISTING THE TRIAD) aus dem Jahr 2000, einem Tutorial für die European Smalltalk User Group, beschreiben Andy Bower und Blair McGlashan ihren MVP Ansatz.[Fow] Die Funktionalität des Controllers aus MVC wird in heutigen Systemen meist von grundlegenden Bibliotheken übernommen, wodurch der Controller in seiner eigentlichen Form heute nicht mehr nötig ist um z.b. einen Mausklick einem bestimmtem View zuzuordnen. MVP basiert auf einer Drehung der eigentlichen Anordnung der Elemente (Model, View und Controller) um 60. Der Controller wird entfernt und ein neues Element eingeführt, der Presenter.[BM00] Die Elemente im neuen Framework von Object Arts übernehmen die nachfolgend beschriebenen Funktionen: View Der View bleibt in seiner Funktionsweise nahezu identisch. Zusätzlich übernimmt der View grundlegende Benutzerinteraktionen (z.b. Mausklick), die bisher vom Controller übernommen wurden und gibt die entsprechenden Ereignisse an den Presenter weiter. Wie bereits erwähnt wird die grundlegende Benutzerinteraktion in heutigen Systemen (z.b. Windows) bereits von den Basisbibliotheken implemen-

57 4.1 Entwurfsmuster: Model View Presenter 57 Abbildung 19: Model View Presenter, Quelle: Object Arts Ltd. tiert wodurch eine zusätzliche Komponente wie in Smalltalk überflüssig wird.[bm00] Model Das Model unterscheidet sich grundlegend von seiner bisherigen Umsetzung, es enthält nun keinerlei Anwendungslogik mehr. Dadurch wird eine Verbindung vom Model zum View überflüssig.[bm00] Presenter Die neu eingeführte Komponente ist dafür verantwortlich wie die Daten des Models durch die Benutzerschnittstelle geändert werden können. Der Presenter übernimmt dabei die bisherigen Aufgaben des Models mit dem wesentlichem Unterschied das der Presenter fix mit dem View verbunden ist. Die bisherigen Aufgaben können dadurch wesentlich einfacher realisiert werden. [BM00] Der Vorteil dieser Drehung ist die direkte Verbindung zwischen Presenter und View. Der Presenter, der nun die Anwendungslogik enthält kann somit direkt auf den View zugreifen, ohne über umständliche Ereignisse dem View mitzuteilen was er an der Darstellung ändern soll. Eine sauberere Trennung zwischen Daten, Logik und Darstellung ist somit das Ergebnis.[BM00]

58 Entwurfsmuster: Model View Presenter Variante: Passive View Wie bereits im letzten Abschnitt gezeigt wurde, ist MVP ein Design Pattern das MVC als Vorbild hatte, jedoch den Anforderungen moderner Systeme gerecht wird. Martin Fowler 31 teilt das MVP Pattern in zwei Varianten auf. Das Supervising Controller 32 und das Passive View 33 Pattern. In diesem Abschnitt wird das Passive View Pattern beschrieben, da im weiteren Verlauf der Arbeit ein Grundverständnis dieses Patterns benötigt wird. Abbildung 20: Passive View Die Passive View Version des MVP Patterns zielt auf die automatisierte Testbarkeit von Anwendungen ab. Um eine verbesserte Testbarkeit zu erreichen findet im Passive View Pattern eine strikte Trennung zwischen Model und View statt. Weder das Model noch der View referenzieren den jeweils anderen. Das einzige Element, das Kenntnis von Model und View hat, ist der Presenter 34 wie in Abbildung 20 zu sehen ist. Aus dieser strikten Trennung resultiert die Verlagerung der verbliebenen Logik des Views (Datenabgleich mit Model) in den Presenter. Der Presenter - das Gehirn im Passive View Pattern - ist das zentrale Element, das für den 31 Chief Scientist, ThoughtWorks Martin Fowler benennt die Presenter Komponente in Passive View wie in MVC: Controller. Um hier Irritationen des Lesers zu vermeiden hat sich der Autor entschlossen im Folgenden diese Komponente weiterhin als Presenter zu bezeichnen.

59 4.2 Windows Workflow Foundation 59 Abgleich der Daten aus View/Model zuständig ist. Der Presenter kennt dazu meist nur eine Beschreibung der beiden Komponenten, die konkrete Implementierung bleibt ihm verborgen. Dadurch degeneriert der View zu einem dummen Darsteller der Daten ist somit einfach durch einen Stellvertreter (Dummy) zu ersetzen.[fow] Information: In einem Artikel des MSDN Magazins vom August 2006 stellt Jean-Paul Boodhoo eine dem Passive View Pattern sehr ähnliche Variante des MVP Patterns vor. Hauptaugenmerk legt der Autor in seinem Artikel dabei auf die testgetriebene Entwicklung (Test Driven Development).[Boo06] 4.2 Windows Workflow Foundation In diesem Kapitel werden Grundlagen der Windows Workflow Foundation erarbeitet, da dieses Wissen im späteren Verlauf der Arbeit benötigt wird. Einleitend wird der Begriff Workflow (Kap definiert, bevor auf Details wie Infrastruktur (Kap ), Laufzeitumgebung (Kap ), Typen (Kap ), Laufzeitdienste (Kap ) und Workflow Designer (Kap ) eingegangen wird. Zum Schluss wird die Erstellung eines Workflows anhand eines Beispiels (Kap ) gezeigt Was ist ein Workflow Der Begriff Workfklow (zu Deutsch Arbeitsablauf), der bereits in Kapitel 3 gefallen ist, steht für eine vordefinierte Abfolge an Aktivitäten innerhalb eines Prozess. In einer Unternehmung ist dies der Geschäftsprozess, der definiert welche Schritte nötig sind um einen bestimmten Vorgang durchzuführen (z.b. Urlaubsantrag stellen).[mye07] Im Gegensatz zu der rein technischen Sichtweise des Workflows, betrachtet der Geschäftsprozess in erster Linie die beteiligten Personen und Einheiten (Kunde). Die beiden Begriffe beschreiben deshalb nicht den gleichen Sachverhalt wie langläufig angenommen wird.[fre04] Microsoft stellt mit seiner neuen Version des.net Frameworks (NetFx3) eine Basisinfrastruktur zur visuellen Entwicklung von computergestützten

60 Windows Workflow Foundation Arbeitsabläufen bereit. Ein Workflow wird in der Windows Workflow Foundation (WF 35 ) durch Aktivitäten und Zustände beschrieben und wird in einer isolierten Umgebung ausgeführt[sch07], worauf nun im Folgenden detailliert eingegangen wird Infrastruktur Die Windows Workflow Foundation (WF) setzt sich aus drei Basisbibliotheken zusammen: Component Model Library Die Assembly System.Workflow.ComponentModel enthält Komponenten um Workflows und deren Aktivitäten grafisch zu Bearbeiten, unter anderem auch den Designer wie er durch die Erweiterung für Visual Studio integriert wird. Base Activity Library Die Assembly System.Workflow.Activities enthält eine Anzahl vordefinierter Basis Aktivitäten. Entwickler sind nicht auf diese Anzahl an Aktivitäten beschränkt, sondern haben die Möglichkeit selbst eigene Aktivitäten zu erstellen. Eine Auswahl an zustätzlichen Aktivitäten stellt Microsoft auf ihrer Website zu WF zum Download 36 zur Verfügung. Runtime Library Die Assembly System.Workflow.Runtime enthält Elemente (z.b. Laufzeitumgebung) um das Hosting eines Workflows zu ermöglichen. Jeder WF Workflow besteht aus einer Anzahl an Aktivitäten und wird in einer eigenen Umgebung (Laufzeitumgebung) ausgeführt. Neben der Ausführung von Worflows bietet die Runtime verschiedene Dienste an, mit deren Hilfe ein Workflow mit seiner Außenwelt kommunizieren (External Data Exchange Service) kann oder sein Zustand persistiert (Persistence Service) werden kann. Auf die Laufzeitumgebung und deren Dienste wird im weiteren Verlauf detailiiert eingegangen. 35 Um namensrechtliche Konflikte zu vermeiden hat Microsoft den Teil ihres neuen Frameworks nicht WWF genannt.[sch07] 36 Frei erhältliche Aktivitäten:

61 4.2 Windows Workflow Foundation Laufzeitumgebung Die WF stellt für Workflows eine eigene Laufzeitumgebung (Runtime) zur Verfügung, in der die Ausführung stattfindet. Die Laufzeitumgebung wird nicht automatisch vom Framework geladen, sondern muss vom Entwickler in einem beliebigem Prozess (Dienst, Konsolenanwendung) explizit gestartet werden.[sch07] Folgende Schritte (Quelltext 6) sind nötig um die Laufzeitumgebung zu starten: 1. Objekt der Klasse System.Workflow.Runtime.WorkflowRuntime instanziieren. 2. Benötigte Dienste instanziieren und mit der Methode AddService(Object o) der Runtime hinzufügen 3. Methode StartRuntime des zuvor instanziierten Objekts ausführen um WF Runtime zu starten. Zuvor beschriebenes Vorgehen startet eine Laufzeitumgebung mit einem vordefiniertem Standardverhalten. Soll das Verhalten der Laufzeitumgebung angepasst werden bietet die Klasse System.Workflow.Runtime.WorkflowRuntime zusätzlich zwei parameterbehaftete Konstruktoren. Damit ist es möglich entweder einen Abschnitt in der Konfigurationsdatei (app.config) der Anwendung anzugeben, oder die Einstellungen direkt in einem Objekt des Typs System.Workflow.Runtime.Configuration.WorkflowRuntimeSection zu übergeben. 1 WorkflowRuntime runtime = runtime = new WorkflowRuntime ( ) ; 2 3 // Add the External Data Exchange S e r v i c e 4 ExternalDataExchangeService dataexchangeservice = 5 new ExternalDataExchangeService ( ) ; 6 runtime. AddService ( dataexchangeservice ) ; 7 8 // S t a r t runtime 9 runtime. StartRuntime ( ) ; Quelltext 6: Start der Laufzeitumgebung und dazugehöriger Dienste Da es für die Hostanwendung unter Umständen von Bedeutung ist wann z.b. ein Worfklow gestartet, beendet oder abgebrochen wird stellt die Klas-

62 Windows Workflow Foundation se WorkflowRuntime entsprechende Ereignisse (Events) zur Verfügung. Um auf entsprechend Ereignisse (siehe Tabelle 3) zu reagieren die von der Laufzeitumgebung ausgelöst werden, muss sich die Host Anwendung mit ihren Methoden an diesen Events registrieren. Events, die durch Workflows ausgelöst werden, übergeben an die registrierten Methoden ein Objekt der Klasse WorkflowEventArgs, das eine Referenz auf ihre Worflow-Instanz beinhaltet. Ereignis Started Stopped WorkflowAborted WorkflowCompleted WorkflowCreated WorkflowIdled WorkflowLoaded WorkflowPersisted WorkflowResumed WorkflowStarted WorkflowSuspended WorkflowTerminated WorkflowUnloaded ServicesExceptionNotHandled Beschreibung Laufzeitumgebung wurde gestartet Laufzeitumgebung wurde beendet Workflow abgebrochen Workflow abgeschlossen Workflow erstellt Worfklow inaktiv gesetzt Workflow in Speicher geladen (z.b. nach Deserialisierung aus Datenbank) Workflow persistiert (z.b. Serialisierung in Datenbank) Workflow fortgesetzt Workflow gestartet Workflow ausgesetzt Workflow beendet Workflow aus Speicher entladen wird von Klassen ausgelöst, die von WorkflowRuntimeService abgeleitetet sind und eine Ausnahme auslösen Tabelle 3: Ereignisse der Laufzeitumgebung, Quelle: MSDN Unterstützte Typen und deren Aktivitäten Generell wird von der Windows Workflow Foundation zwischen sequentiellen Abläufen (Sequential Workflow) und Zustandsautomaten (State Machine Workflow) unterschieden. Bei einem Sequential Workflow handelt es sich um eine Abfolge von Aktivitäten, die nacheinander ausgeführt werden wobei durchaus auch Schleifen, parallele Aufgaben oder externe Ereignisse auftreten können, was teilweise von einer exakten sequentiellen Abfolge abweicht.[esp05] Ein State Machine Workflow hingegen zeichnet sich durch eine Anzahl an Zuständen, Zustandsübergängen und Aktionen aus. Anfang und Ende dieses

63 4.2 Windows Workflow Foundation 63 Workflow-Typs wird jeweils durch eine entsprechenden Zustand repräsentiert.[esp05] Prädestiniert für einen State Machine Workflow ist das in Kapitel 2 beschriebene Trouble Ticket. Während des Ticket-Lifecycles kann ein Ticket verschiedene Zustände (Erstellt, Zugewiesen,..., Geschlossen) annehmen. Denkbare wäre beispielsweise folgendes Szenario: Ein Ticket wird von einem Help Desk Mitarbeiter erstellt und kommt in eine Warteschlange (Status: Erstellt). Ein zuständiger Mitarbeiter (Projektleiter) weist dem Ticket einen entsprechenden Bearbeiter zu, wodurch sich der Status des Tickets von Erstellt in Zugewiesen ändert. Der Bearbeiter löst das Problem und schließt somit das Ticket, der Zustand wechselt zu Geschlossen. Zustandswechsel resultieren aus Aktionen die z.b. durch Überprüfen bestimmen ob Bedingungen erfüllt sind und ob dadurch in einen anderen Zustand gewechselt werden muss (Implizit). Explizite Wechsel durch bestimmte Aktionen sind auch möglich. Szenario Für den jeweiligen Workflow-Typ bietet Visual Studio entsprechende Vorlagen für die Erstellung an. Der Entwickler kann sich dabei zwischen einer XAML 37 Variante kombiniert mit Hintergrundcode (Code Behind) und einer Varinate, die nur aus einer Klasse besteht, entscheiden. Für die Laufzeit macht die Auswahl keinen Unterschied, da es sich immer um Managed Code 38 handelt der von der Common Language Runtime (CLR) ausgeführt wird. Wie in der Einleitung zu diesem Abschnitt erwähnt, wird ein Workflow durch Aktivitäten und Zustände beschrieben. Jeder Workflow, unabhängig vom Typ besteht aus einer Anzahl an Aktivitäten (engl. Activities). Bei den Zuständen des State Machine Workflows handelt es sich ebenfalls zum Aktivitäten, jedoch einer speziellen Form, die nur für diesen Workflow-Typ vorbehalten ist. Insgesamt gibt es vier dieser, speziell für diesen Typ vorbehaltenen Aktivitäten, die nachfolgend aufgeführt werden.[mye07] State-Aktivität StateInitialization-Aktivität StateFinalization-Aktivität 37 Deklarative Markup Sprache basierend auf XML zur Entwicklung von grafischen Benutzeroberflächen. Wesentlicher Bestandteil des neuen.net 3.0 Frameworks. Quelle: MSDN 38 Programmcode der in der Laufzeitumgebung des.net Frameworks ausgeführt wird. Quelle: MSDN

64 Windows Workflow Foundation SetState-Aktivität Auf die einzelnen Aktivitäten wird an dieser Stelle nicht näher eingegangen. Für eine Übersicht der wichtigsten Aktivitäten der WF, sei hiermit auf die im Anhang A.3 befindliche Auflistung verwiesen. Hinweis: Unter der Haube ist jeder Workflow-Typ der Windows Workflow Foundation im Prinzip ein Zustandsautomat, da er während seines Lebens eine Reihe bestimmter Zustände annimmt. Information: Wie man ein TT auch als sequenziellen Workflow realisieren kann beschreibt Dino Esposito 39 anschaulich in seinem Artikel 40 zur Windows Workflow Foundation in der März Ausgabe des MSDN Magazins Laufzeitdienste Die WF stellt in ihren Bibliotheken verschiedene Basisdienste zur Verfügung, die bei der Entwicklung out-of-the-box 41 eingesetzt werden können. Dabei handelt es sich um Persistenz-, Ablaufverfolgungs-, Scheduling-, Kommunikations- und Transaktionsdienste, von denen nun im Folgenden drei Dienste kurz vorgestellt werden, die für die den weiteren Verlauf der Arbeit benötigt werden. Sql Workflow Persistence Service Damit Workflows über die Lebensdauer der Anwendung hinweg existieren können bietet der Sql Workflow Persistence Service die Möglichkeit den aktuellen Zustand der Workflow-Instanz in einer Datenbank zu speicher. Dies geschieht durch die im Framework integriete Objekt Serialisierung. Es kann immer nur der zuletzt aktualisierte Zustand des Objekts abgerufen werden, die Rekonstruktion eines früheren Workflow-Zustands ist nicht möglich. Ein weiterer Vorteil der Persistierung von Workflow-Instanzen liegt in der Schonung von Resourcen. Die Persistierung kann dazu verwendet werden in 39 Mitglied des Solid Quality Mentors Team und Autor diverser Bücher 40 Artikel erhältlich unter: 41 Def.: Von der Stange. Meint also Fertigprodukte, die eine übergreifende Anforderung erfüllen können. Quelle:

65 4.2 Windows Workflow Foundation 65 Server Prozessen die Anzahl an vorhandenen Workflow-Instanzen im Speicher zu begrenzen und nur bei Bedarf nachzuladen.[sch07] Ein Nachteil dieses Dienstes, ist die sehr begrenzt Möglichkeit andere Datenbankserver zu benutzen. Die Implementierung sieht die Benutzung eines SQL 2005 Servers vor. Möchte der Entwickler einen anderen Datenbankserver nutzen muss er, außer der Umstellung der SQL Skripte, seinen eigenen Dienst implementieren.[sch07] Sql Tracking Service Der Ablaufverfolgungsdienst ermöglicht es den Ablauf eines Workflows zu protokollieren. Es werden dazu bei den folgenden Ereignissen, Einträge in die Datenbank geschrieben:[gri07] Statusänderungen des Workflows Statusänderungen von Aktivitäten Benutzerdefinierte Ereignisse Eine individuelle Anpassung des Dienstes ist über so genannte Tracking Profile möglich. Darauf wird nun jedoch nicht eingegangen, da dies zu sehr in die Tiefe gehen würde.[gri07] Quelltext 7 zeigt, wie die protokollierten Statusänderungen einer Workflow- Instanz auf dem Bildschirm (Konsole) ausgegeben werden können. 1 SqlTrackingQuery sqltrackingquery = new SqlTrackingQuery ( ) ; 2 3 SqlTrackingWorkflowInstance sqltrackingworkflowinstance ; 4 5 sqltrackingquery. TryGetWorkflow ( 6 workflowguid, 7 out sqltrackingworkflowinstance 8 ) ; 9 10 i f ( sqltrackingworkflowinstance!= null ) 11 { 12 // Ausgabe der Workflow E r e i g n i s s e 13 foreach ( WorkflowTrackingRecord workflowtrackingrecord in 14 sqltrackingworkflowinstance. WorkflowEvents ) 15 { 16 Console. WriteLine (

66 Windows Workflow Foundation 17 " Beschreibung : {0} Datum : {1}", 18 workflowtrackingrecord. TrackingWorkflowEvent, 19 workflowtrackingrecord. EventDateTime 20 ) ; 21 } 22 } Quelltext 7: Ausgabe protokollierter Statusänderungen Nachteil des Sql Tracking Service ist, wie beim zuvor beschriebenen Sql Workflow Persistence Service, das zur Nutzung des Dienstes ein SQL 2005 Datenbankserver benutzt werden muss. ExternalDataExchangeService Da ein Workflow, in einer vom restlichen Programm isolierten Umgebung (WorkflowRuntime) ausgeführt wird und von Haus aus keine Möglichkeit hat mit seiner Außenwelt zu kommunizieren, bietet die Laufzeitumgebung verschiedene Kommunikationsmöglichkeiten an. Zur Laufzeit ermöglicht der External Data Exchange Service eine Kommunikation zwischen Workflow und Anwendung über Ereignisse und Methoden. Für die Kommunikation wird ein Kanal, in Form einer Schnittstelle, definiert. Die Klasse, die die Schnittstelle implementiert, ist ein so genannter Lokaler Dienst und wird am External Data Exchange Service registriert. Der Dienst kann von beliebig vielen Workflow-Instanzen verwendet werden. Damit ein Ereignis nicht an alle Instanzen gerichtet wird, routet der External Data Exchange Service Ereignisse die ausgelöst werden an die jeweilige Instanz. Dazu ist es nötig, in den Argumenten, die beim Aufruf des Ereignises übergeben werden, die entsprechende GUI der Workflow-Instanz zu übergeben.[micb] Weitere Möglichkeiten der Kommunikation:[Sch07] Dependency Properties Webservices Darauf wird jedoch im weiteren Verlauf der Arbeit nicht näher eingegangen. Information: Um Hochverfügbarkeit zu gewährleisten implementieren die out-of-the-box SQL Services eine Retry-Logik, die bei temporär nicht erreichbaren SQL Servern nach einem bestimmten Vorgehen versucht den Server zu

67 4.2 Windows Workflow Foundation 67 erreichen. Dieses Feature ist standardmäßig nicht aktiv, kann jedoch über entsprechenden Einstellungen aktiviert werden.[ahm06] Workflow Designer Die grafische Bearbeitung eines Workflows ist grundlegender Bestandteil der Windows Workflow Foundation. Damit dies mit der Entwicklungsumgebung Visual Studio 2005 möglich wird, bietet Microsoft die kostenlose Erweiterung Visual Studio 2005 Extensions for WF zum Download an. Die Installation der Erweiterung setzt kein installiertes.net 3.0 Framework voraus, sondern ist auch mit Version 2.0 des Frameworks möglich. Die WF ist somit eine unabhängig von NetFx3 42 nutzbare Erweiterung des.net Frameworks.[Mye07] Die Installation dieser Erweiterung fügt der IDE entsprechende WF Projektund Elementvorlagen hinzu. Zentrale Erweiterung ist jedoch ein visueller Workflow-Designer wie er in Abbildung 21 zu sehen ist. Mit dem Designer lassen sich per Drag and Drop beliebige Aktivitäten aus der Toolbox (siehe Abbildung 22) auf den erstellten Workflow ziehen und dort bearbeiten. Nicht jede Aktivität kann dort eingefügt werden wo ein Entwickler sie haben möchte, sei es weil das Prinzip einer Aktivität nicht verstanden wurde oder etwas versucht wird, was aus anderen Systemen bekannt ist. Dies ist entweder generell nicht möglich oder wird vom Designer durch entsprechende Fehlermeldungen quittiert wie in Abbildung 23 zu sehen ist. Achtung! Um Fehler während der Laufzeit zu finden, können mit dem Designer an beliebigen Aktivitäten im Worfklow-Diagramm Haltepunkte gesetzt und der Workflow schrittweise abgearbeitet werden. Er bietet somit die üblichen Debugging Funktionen die man von der IDE bereits kennt.[sch07] Information: Da der Worfklow Designer, wie bereits erwähnt, selbst ein Teil der WF ist lässt er sich in beliebige Anwendungen integrieren um z.b. dem Benutzer eine Bearbeitung eines Workflows zu ermöglichen.[sch07] Microsoft stellt auf seiner Website zu.net 3.0 einen anschaulichen MSDN Artikel 43 über das Hosting des Designers in einer Winforms Anwendung zur Verfügung. 42 Synonym für das.net 3.0 Framework 43 siehe [Dal06]

68 Windows Workflow Foundation Abbildung 21: Workflow Designer

69 4.2 Windows Workflow Foundation 69 Abbildung 22: Aktivitäten in der Toolbox Abbildung 23: Designer: Fehlermeldung bei falsch plazierter Aktivität

70 Windows Workflow Foundation Beispiel: Sequential Workflow erstellen Für eine praktische Einführung in die Windows Workflow Foundation soll in diesem Abschnitt ein einfacher Sequential Workflow realisiert werden. Der Worflow soll nachfolgend aufgeführte Aufgaben erfüllen: Eine -Nachricht und ein Array von Empfängern entgegennehmen Übergabeparameter überprüfen Die -Nachricht an jeden Empfänger im Array senden Als erstes wird in der Entwicklungsumgebung ein Sequential Workflow Console Application Projekt hinzugefügt. Das neu erstellte Projekt enthält bereits eine Konsolenanwendung (Program.cs) mit minimal vordefinierter WF Funktionalität (Runtime starten, Worflow Instanz erstellen) und einem Sequential Workflow (Workflow1.cs). Zur Bearbeitung des Worfklows im Designer, führt man auf die Datei im Projektmappen-Explorer 44 einen Doppelklick aus. Um die Parameterübergabe zu ermöglichen, wechselt man nun von der Designansicht in die Codeansicht und fügt der Klasse Workflow1 die öffentlichen Eigenschaften Mail und Address hinzu (siehe Quellcode 8). Die Eigenschaften haben schreibenden Zugriff, was der Laufzeitumgebung signalisiert, dass es sich hier um eine Übergabe handelt. Wird ein Rückgabewert vom Workflow gewünscht, muss eine entsprechende Eigenschaft mit Lesezugriff implementiert werden. 1 private MailMessage _msg ; 2 public MailMessage Mail 3 { 4 s e t { _msg = value ; } 5 } 6 7 private MailAddress [ ] _addr ; 8 public MailAddress [ ] Address 9 { 10 s e t { _addr = value ; } 11 } Quelltext 8: Dependency Properties der Klasse Workflow1 44 Fenster der IDE, in dem alle Projekte einer Projektmappe und deren Dateien dargestellt werden

71 4.2 Windows Workflow Foundation 71 Die Klasse Workflow1 erbt von der Klasse SequentialWorkflowActivity, von der jeder Sequenzielle Workflow abgeleitet wird. Daraus folgt das auch der State Machine Workflow von einer entsprechenden Klasse abgeleitet wird. In diesem Fall handelt es sich um die StateMachineWorkflowActivity. Bei der Namensgebung fällt auf das beide Klassen den Zusatz Activity im Namen tragen. Das rührt daher, dass für das Framwork ein Workflow nichts anderes als eine Aktivität ist, welche selbst Aktivitäten enthält. Abbildung 24: Beispiel: IfElse Aktivität bearbeiten Zur Überprüfung der Parameter wird von der Toolbox eine IfElse-Aktivität auf das Workflow-Diagramm gezogen und eingefügt. Als nächstes wählt man die Eigenschaften der linken Verzweigung aus und bearbeitet deren Condition. Hier gibt des die Möglichkeit direkt eine Bedingung (Declarative Rule Condition) zu definieren, oder eine entsprechende Methode (Code Condition) auszuwählen die bestimmt ob die Bedingung erfüllt ist. Der Vorteil der Code Condition liegt darin, das durch die Definition einer

72 Windows Workflow Foundation Methode komplexere Logik möglich wird. In diesem Fall ist die Definition über eine Declarative Rule Condition völlig ausreichend. Sollte die im Quellcode dargestellt Bedingung nicht erfüllt sein, führt der Workflow seine Ausführung im rechten Teil der IfElse, in diesem Fall dem Else, seine Ausführung fort. Da eine weitere Ausführung bei unvollständigen Eigenschaften für diesen Workflow keine Sinn machen würde, wird im rechten Teil eine Terminate-Aktivität eingefügt. Sie beendet die Ausführung des Workflows und gibt eine benutzerdefinierte Fehlermeldung und Beschreibung an die Laufzeitumgebung zurück. 1 this. _addr!= null && this. _msg!= null && this. _addr. Length > 0 Quelltext 9: Abbruchbedingung des Workflows Im nächsten Schritt wird nun in den If-Zweig eine While-Aktivität eingefügt. Die entsprechende Code Condition die angibt ob die Bedingung zum Durchlaufen des Schleifenrumpfs erfüllt ist wird im Hintergrundcode definiert. Zur Überprüfung wird eine Hilfsvariable benötigt, die nach jedem Aufruf der Methode hochgezählt wird. 1 private void WhileCondition ( object sender, ConditionalEventArgs args ) 2 { 3 args. Result = Counter < _addr. Length ; 4 Counter++; 5 } 6 7 private void codeactivity1_executecode ( object s e n d e r, System. EventArgs e ) 8 { 9 MailMessage msg = _msg ; 10 msg. To. Clear ( ) ; 11 msg. To. Add( _addr [ Counter ] ) ; SmtpClient c l i e n t = new SmtpClient ( ) ; 14 c l i e n t. Send (msg) ; 15 } Quelltext 10: Methoden im Hintergrundcode Damit in der While-Aktivität entsprechender Code ausgeführt wird, fügt man im Schleifeninneren eine Code-Aktivität hinzu. Diese Aktivität ruft zur

73 4.3 Zusammenfassung 73 Laufzeit eine Methode aus, die über die Option ExecuteCode konfiguriert werden kann. Führt man einen Doppelklick auf die Aktivität im Designer aus, wird automatisch eine neue Methode im Hintergrundcode angelegt. In dieser Methode wird nun die Logik für das Versenden der -Nachrichten implementiert. Nach der Implementierung der Sendelogik ist der erstellte Workfklow einsatzbereit und kann von der Konsolenanwendung verwendet werden. 1 Dictionary <string, object> wfpar = new Dictionary <string, object >() ; 2 wfpar. Add( Mail, mailobj ) ; 3 wfpar. Add( Address, addrarray ) ; 4 5 WorkflowInstance i n s t a n c e = workflowruntime. CreateWorkflow ( 6 typeof ( Workflow1 ), 7 wfpar 8 ) ; 9 10 i n s t a n c e. S t a r t ( ) ; Quelltext 11: Start des Beispiel Workflows 4.3 Zusammenfassung Durch die strikte Trennung von Präsentation, Logik und Daten im Passive View Entwurfsmuster wird der Code einer Anwendung für den Entwickler übersichtlicher, flexibler, leichter wart- und erweiterbar. Bei Bedarf lassen sich durch den modularen Aufbau viele Teile wiederverwenden oder durch andere ersetzen. Die strikte Trennung erlaubt außerdem das Testen der einzelnen Komponenten, im speziellen der Logik, durch so genannte Unit Tests. Was bisher nur in BizTalk Servern möglich war, macht Microsoft nun der breiten Masse zugänglich. Mit dem neuen Teil ihres Frameworks, der Windows Workflow Foundation, ist es erstmalig möglich visuell computergestützte Arbeitsabläufe zu entwerfen und diese in einer.net basierten Umgebung auszuführen. Grundlegend sind zweit Arten von Workflows möglich, die vom Framework unterstützt werden: Sequentielle Abläufe und Zustandsautomaten. Mit dem visuellen Designer, der Teil des neuen Frameworks ist und auch durchaus in anderen Anwendungen wiederverwendet werden kann, gibt Microsoft dem Entwickler ein mächtiges Werkzeug zur Erstellung dieser Work-

74 Zusammenfassung Abbildung 25: Beispiel: Sequential Workflow

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

OTRS-TFS-Konnektor. Whitepaper. Autor: advanto Software GmbH Mittelstraße 10 39114 Magdeburg

OTRS-TFS-Konnektor. Whitepaper. Autor: advanto Software GmbH Mittelstraße 10 39114 Magdeburg OTRS-TFS-Konnektor Whitepaper Autor: advanto Software GmbH Mittelstraße 10 39114 Magdeburg Tel: 0391 59801-0 Fax: 0391 59801-10 info@advanto-software.de Stand: Mai 2015 Inhaltsverzeichnis 1 Idee... 3 2

Mehr

Handbuch zum Umgang mit dem. Open Ticket Request System OTRS

Handbuch zum Umgang mit dem. Open Ticket Request System OTRS Handbuch zum Umgang mit dem Open Ticket Request System OTRS Inhaltsverzeichnis 1 Allgemeine Funktionen... 1 1.1 Anmeldung... 1 1.2 Beschreibung der Oberfläche... 1 1.2.1 Einstellungen... 2 1.2.2 Verantwortlicher...

Mehr

Inhalt Einleitung 2 Anmeldung 3 Oberfläche und Bedienung Bearbeitungsablauf 12

Inhalt Einleitung 2 Anmeldung 3 Oberfläche und Bedienung Bearbeitungsablauf 12 Inhalt Einleitung 2 Anmeldung 3 Neues Konto anmelden 3 Passwort vergessen? 4 Oberfläche und Bedienung 5 Projektbereiche 5 Startseite 6 Übersicht 6 Probleme anzeigen 7 Probleme eingeben 10 Änderungsprotokoll

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

Leitfaden Datensicherung und Datenrücksicherung

Leitfaden Datensicherung und Datenrücksicherung Leitfaden Datensicherung und Datenrücksicherung Inhaltsverzeichnis 1. Einführung - Das Datenbankverzeichnis von Advolux... 2 2. Die Datensicherung... 2 2.1 Advolux im lokalen Modus... 2 2.1.1 Manuelles

Mehr

1. Einführung 2. 2. Systemvoraussetzungen... 2. 3. Installation und Konfiguration 2. 4. Hinzufügen einer weiteren Sprache... 3

1. Einführung 2. 2. Systemvoraussetzungen... 2. 3. Installation und Konfiguration 2. 4. Hinzufügen einer weiteren Sprache... 3 Inhalt 1. Einführung 2 2. Systemvoraussetzungen... 2 3. Installation und Konfiguration 2 4. Hinzufügen einer weiteren Sprache... 3 5. Aktivierung / Deaktivierung von Funktionen... 4 6. Konfiguration der

Mehr

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets Verwalten und erstellen Sie Ihre eigenen Tickets NetStream GmbH 2014 Was ist NetStream Helpdesk-Online? NetStream Helpdesk-Online ist ein professionelles Support-Tool, mit dem Sie alle Ihre Support-Anfragen

Mehr

Inhalt. Net-Base Internetservice. Dokumentation OTRS Ticketing-System

Inhalt. Net-Base Internetservice. Dokumentation OTRS Ticketing-System Inhalt Inhalt...1 1. Überblick...2 2. Ticketing-System aufrufen...2 3. Ein eigenes Konto anlegen...3 4. Eine Supportanfrage stellen...4 5. Ihre Supportanfragen ansehen / Status überprüfen...6 6. Weiterer

Mehr

Installationsanleitung. Novaline Finanzbuchhaltung Fibu.One

Installationsanleitung. Novaline Finanzbuchhaltung Fibu.One Installationsanleitung Novaline Finanzbuchhaltung Fibu.One Mai 2013 Inhaltsverzeichnis Systemvoraussetzungen...3 Installation der Programme...5 1. Überprüfen / Installieren von erforderlichen Software-Komponenten...5

Mehr

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt. Arbeitsblätter Der Windows Small Business Server 2011 MCTS Trainer Vorbereitung zur MCTS Prüfung 70 169 Aufgaben Kapitel 1 1. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

Mehr

Pro/INTRALINK 10.0. Lehrplan-Handbuch

Pro/INTRALINK 10.0. Lehrplan-Handbuch Pro/INTRALINK 10.0 Lehrplan-Handbuch Lehrplan-Handbuch für Kurse unter Anleitung Update auf Windchill 10.0 für Systemadministratoren Systemadministration in Windchill 10.0 Update auf Windchill 10.0 für

Mehr

Installation KVV Webservices

Installation KVV Webservices Installation KVV Webservices Voraussetzung: KVV SQL-Version ist installiert und konfiguriert. Eine Beschreibung dazu finden Sie unter http://www.assekura.info/kvv-sql-installation.pdf Seite 1 von 20 Inhaltsverzeichnis

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen.

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen. 1 Passwort ändern Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern Dazu klicken Sie bitte auf Ihren Namen Abb 1-1 Erstmaliger Anmeldung Danach erscheint ein PopUp indem Sie Ihr Passwort

Mehr

FSC Storagebird Tivoli Edition Handbuch

FSC Storagebird Tivoli Edition Handbuch FSC Storagebird Tivoli Edition Handbuch Stand: 26.02.2009 Copyright BYTEC GmbH 2009 Seite 1 von 19 /ofc/lcl/usr/lbrecht/slssrv/bytec_unterlagen/tivoli/tivoli-anleitung-final.odt FSC Storagebird Tivoli

Mehr

SOFiSTiK Online. Anwendungsbeschreibung. Stand 14. April 2010

SOFiSTiK Online. Anwendungsbeschreibung. Stand 14. April 2010 Anwendungsbeschreibung Stand 14. April 2010 SOFiSTiK AG 2008 Inhaltsverzeichnis 1 Möglichkeiten und Ziele... 1 2 User-Administrator... 2 3 Anmeldung... 2 4 Meine Daten... 3 5 Ticket Tracker... 4 6 Support/Sales

Mehr

Jump Project. Softwarelösungen für professionelles Projektmanagement

Jump Project. Softwarelösungen für professionelles Projektmanagement Jump Project Softwarelösungen für professionelles Projektmanagement Jump Project Office Übersichtliche Dokumentenstruktur und schneller Zugriff auf alle wichtigen Funktionen. Steuern Sie Ihre Projekte

Mehr

Verwendung der Support Webseite

Verwendung der Support Webseite amasol Dokumentation Verwendung der Support Webseite Autor: Michael Bauer, amasol AG Datum: 19.03.2015 Version: 3.2 amasol AG Campus Neue Balan Claudius-Keller-Straße 3 B 81669 München Telefon: +49 (0)89

Mehr

Einrichtung Mac OS X Mail IMAP

Einrichtung Mac OS X Mail IMAP Einrichtung Mac OS X Mail IMAP Fachhochschule Eberswalde IT-Servicezentrum Erstellt im Mai 2009 www.fh-eberswalde.de/itsz Die folgende Anleitung beschreibt die Einrichtung eines E-Mail-Kontos über IMAP

Mehr

Form Designer. Leitfaden

Form Designer. Leitfaden Leitfaden Copyright Die hier enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Die in den Beispielen verwendeten Namen und Daten sind frei erfunden, soweit nichts anderes

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

WufooConnector Handbuch für Daylite 4

WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 1 Allgemeines 1.1 Das WufooConnector Plugin für Daylite 4 4 2 Einrichtung 2.1 2.2 2.3 Installation 6 Lizensierung 8 API Key einrichten

Mehr

Arbortext Content Manager 10.0. Lehrplan-Handbuch

Arbortext Content Manager 10.0. Lehrplan-Handbuch Arbortext Content Manager 10.0 Lehrplan-Handbuch Lehrplan-Handbuch für Kurse unter Anleitung Update auf Windchill 10.0 für Systemadministratoren Systemadministration in Windchill 10.0 Update auf Windchill

Mehr

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH Copyright Wolters Kluwer Deutschland GmbH AnNoText AnNoText Online-Update Wolters Kluwer Deutschland GmbH Software + Services Legal Robert-Bosch-Straße 6 D-50354 Hürth Telefon (02 21) 9 43 73-6000 Telefax

Mehr

Ticketexpert Ticketsystem der PHSG Informatik

Ticketexpert Ticketsystem der PHSG Informatik Ticketexpert Ticketsystem der PHSG Informatik Ticketexpert Benutzeranleitung 26. April 2010 Pädagogische Hochschule des Kantons St.Gallen Inhaltsverzeichnis 1 Einleitung 3 2 Arbeiten mit dem Ticketexpert

Mehr

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Inhalt 1. Vorbedingungen... 4 2. Installation... 5 2.1. Umstellung von Datenspooler Version A.03.09 auf Datenspooler-Version

Mehr

Microsoft SQL Server 2014 Express & EPLAN Plattform. EPLAN-Product-IT-Support / FOS / 2015 1

Microsoft SQL Server 2014 Express & EPLAN Plattform. EPLAN-Product-IT-Support / FOS / 2015 1 Microsoft SQL Server 2014 Express & EPLAN Plattform 1 Microsoft SQL Server & EPLAN Plattform Übersicht Download - Microsoft SQL Server 2014 Express mit Advances Services Installation - Microsoft SQL Server

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

Mehr

G-Info Lizenzmanager

G-Info Lizenzmanager G-Info Lizenzmanager Version 4.0.1001.0 Allgemein Der G-Info Lizenzmanager besteht im wesentlichen aus einem Dienst, um G-Info Modulen (G-Info Data, G-Info View etc.; im folgenden Klienten genannt) zentral

Mehr

Technische Mitteilung. Nutzung von Oracle für die VIP CM Suite 8 Offene Cursor

Technische Mitteilung. Nutzung von Oracle für die VIP CM Suite 8 Offene Cursor Technische Mitteilung Nutzung von Oracle für die VIP CM Suite 8 Offene Cursor Informationen zum Dokument Kurzbeschreibung Dieses Dokument gibt Hinweise zur Konfiguration des RDBMS Oracle und von VIP ContentManager

Mehr

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr

BANKETTprofi Web-Client

BANKETTprofi Web-Client BANKETTprofi Web-Client Konfiguration und Bedienung Handout für die Einrichtung und Bedienung des BANKETTprofi Web-Clients im Intranet / Extranet Der BANKETTprofi Web-Client Mit dem BANKETTprofi Web-Client

Mehr

OTRS::ITSM Service Management Software fü r die TU BAF

OTRS::ITSM Service Management Software fü r die TU BAF OTRS::ITSM Service Management Software fü r die TU BAF Nutzerdokumentation Ersteller: Version: 1.000 Konrad Uhlmann Universitätsrechenzentrum +49 373139 4784 Version Datum Name Details 0.001 25.03.2012

Mehr

Collax E-Mail Archive Howto

Collax E-Mail Archive Howto Collax E-Mail Archive Howto Howto Dieses Howto beschreibt wie ein Collax Server innerhalb weniger Schritte als E-Mail Archive eingerichtet werden kann, um Mitarbeitern Zugriff auf das eigene E-Mail Archiv

Mehr

Helpdesk Online Benutzungshinweise

Helpdesk Online Benutzungshinweise Über Helpdesk Online Helpdesk Online ist ein Webportal für CGS-Händler und -Kunden, über das Softwarefehler, Lizenzprobleme, Verbesserungsvorschläge und andere Supportanfragen abgewickelt werden. Mit Helpdesk

Mehr

ISA Server 2004 - Best Practice Analyzer

ISA Server 2004 - Best Practice Analyzer ISA Server 2004 - Best Practice Analyzer Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Seit dem 08.12.2005 steht der Microsoft ISA Server 2004 Best Practice Analyzer

Mehr

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION Allgemein Infomon bietet die Architektur für das Informations-Monitoring in einer Windows- Topologie. Die Serverfunktionalität wird in einer IIS-Umgebung

Mehr

PowerMover. Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. Vasquez Systemlösungen

PowerMover. Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. Vasquez Systemlösungen PowerMover Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. PowerMover Seite 1/7 Inhaltsverzeichnis: 1 Beschreibung... 3 2 Funktionalität... 4 2.1

Mehr

Aufgabenstellung und Zielsetzung

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

Mehr

Workflow+ Installation und Konfiguration

Workflow+ Installation und Konfiguration Workflow+ Installation und Konfiguration Systemübersicht Workflow+ Designer Mit dem Workflow+ Designer werden Workflows und Eingabemasken erstellt. Mit der integrierten Test- und Debugging Funktion können

Mehr

Windows Deployment Services 2003 Grundinstallation

Windows Deployment Services 2003 Grundinstallation Windows Deployment Services 2003 Grundinstallation Inhalthaltsverzeichnis Windows Deployment Services - Installation... 2 Windows Deployment Services Grundkonfiguration Schritt 1... 2 Windows Deployment

Mehr

VMscope GmbH. Plugins entwickeln für den VM Slide Explorer 2010. Daniel Heim, 17.08.2011 Seite 1/15

VMscope GmbH. Plugins entwickeln für den VM Slide Explorer 2010. Daniel Heim, 17.08.2011 Seite 1/15 Plugins entwickeln für den VM Slide Explorer 2010 Daniel Heim, 17.08.2011 Seite 1/15 Inhaltsverzeichnis 1 Allgemeines... 3 2 Ein Plugin schreiben... 4 3 Ein Plugin registrieren... 11 4 Aktivieren von Plugins...

Mehr

Fresh Minder 3-Server

Fresh Minder 3-Server Fresh Minder 3-Server Installation und Betrieb Fresh Minder-Vertrieb Rieslingweg 25 D - 74354 Besigheim support@freshminder.de www.freshminder.de ÜBERSICHT Die Standardversion (Einzelplatzversion) von

Mehr

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April 2009. 1 Zielbestimmungen 2. 2 Produkteinsatz 2

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April 2009. 1 Zielbestimmungen 2. 2 Produkteinsatz 2 Lastenheft Inhaltsverzeichnis 1 Zielbestimmungen 2 2 Produkteinsatz 2 3 Produktübersicht 3 4 Produktfunktionen 4 4.1 Muss-Funktionen................................. 4 4.1.1 Benutzerfunktionen...........................

Mehr

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2

Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Systemvoraussetzungen Windows Server 2008 Windows Server 2008 R2 Basis: HiScout 2.5 Datum: 17.06.2015 14:05 Autor(en): HiScout GmbH Version: 1.1 Status: Freigegeben Dieses Dokument beinhaltet 13 Seiten.

Mehr

Tutorial. Tutorial. Microsoft Office 2010 Standard Edition verteilen. 2011 DeskCenter Solutions AG

Tutorial. Tutorial. Microsoft Office 2010 Standard Edition verteilen. 2011 DeskCenter Solutions AG Tutorial Microsoft Office 2010 Standard Edition verteilen 2011 DeskCenter Solutions AG Inhaltsverzeichnis 1. Einführung...3 2. Office 2010 Ressourcen bereitstellen...3 3. Anpassung der Office Installation...4

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

Mehr

Anleitung zur Redisys Installation. Inhaltsverzeichnis

Anleitung zur Redisys Installation. Inhaltsverzeichnis Anleitung zur Redisys Installation Inhaltsverzeichnis Inhaltsverzeichnis... 1 1. Vorwort... 2 2. Vorbereitung zur Installation... 3 3. Systemvoraussetzungen... 4 4. Installation Redisys Version... 5 5.

Mehr

Zugriff auf das Across-Ticketsystem

Zugriff auf das Across-Ticketsystem Zugriff auf das Across-Ticketsystem Februar 2014 Version 2.2 Copyright Across Systems GmbH Die Inhalte dieses Dokumentes dürfen nur nach schriftlicher Zustimmung der Across Systems GmbH reproduziert oder

Mehr

Trouble-Ticket System. Trouble-Ticket System Sascha Günther Seite 1/16

Trouble-Ticket System. Trouble-Ticket System Sascha Günther Seite 1/16 Trouble-Ticket System Trouble-Ticket System Sascha Günther Seite 1/16 Gliederung Erklärung Trouble-Ticket Anforderungen an Trouble-Tickets Erklärung Trouble-Ticket System Fazit Trouble-Ticket System Sascha

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

COLLECTION. Installation und Neuerungen. Märklin 00/H0 Jahresversion 2009. Version 7. Die Datenbank für Sammler

COLLECTION. Installation und Neuerungen. Märklin 00/H0 Jahresversion 2009. Version 7. Die Datenbank für Sammler Die Datenbank für Sammler COLLECTION Version 7 Installation und Neuerungen Märklin 00/H0 Jahresversion 2009 Stand: April 2009 Inhaltsverzeichnis Inhaltsverzeichnis... 2 VORWORT... 3 Hinweise für Anwender,

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Handbuch TweetMeetsMage

Handbuch TweetMeetsMage Handbuch TweetMeetsMage für Version 0.1.0 Handbuch Version 0.1 Zuletzt geändert 21.01.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Voraussetzungen... 3 1.2 Funktionsübersicht... 3 2 Installation... 4

Mehr

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85

5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Projekte per DOM bearbeiten KAPITEL 5 5.1 Bestehende Projekte bearbeiten 79 5.2 Neue Projekte erstellen 85 Bisher haben wir uns angesehen, wie List & Label mit Ihren Daten bekannt gemacht werden kann und

Mehr

What s new in risk2value 5.1

What s new in risk2value 5.1 What s new in risk2value 5.1 Dezember 2014 avedos business solutions gmbh Seite 1 Inhaltsverzeichnis 1. Anmeldung/Dashboard... 3 1.1. Standard Startseite frei konfigurierbar... 3 1.2. Dashboard um individuelle

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

Handbuch oasebw Seite 1 von 10

Handbuch oasebw Seite 1 von 10 Seite 1 von 10 Seite 2 von 10 Inhaltsverzeichnis BESCHREIBUNG 4 VORGÄNGE 5 VORGANG NEU ANLEGEN 5 VORGANG BEARBEITEN 7 VORGANG ÜBERWACHEN 8 VORGANG LÖSCHEN/STORNIEREN 8 VERWALTUNG 9 PERSÖNLICHE EINSTELLUNGEN

Mehr

Vertriebssteuerungs und Opportunity. Management System. Bedienungsanleitung. Wolfgang Kuhn

Vertriebssteuerungs und Opportunity. Management System. Bedienungsanleitung. Wolfgang Kuhn Vertriebssteuerungs und Opportunity Management System Bedienungsanleitung Wolfgang Kuhn 27.06.2011 Vertriebssteuerungsprogramm oder Opportunity Management System für den Mittelstand Das Softwarepaket basiert

Mehr

Kurzanleitung für die Arbeit mit dem comosoft Helpdesk

Kurzanleitung für die Arbeit mit dem comosoft Helpdesk Kurzanleitung für die Arbeit mit dem comosoft Helpdesk 1. Der Start 2. Ticket-Erstellung 3. Prioritäten 4. Der Umgang mit Tickets 5. Der Umgang mit E-Mails 6. Der Downloadbereich 1 Der Start 1.1 URL Um

Mehr

Softwareverteilung mit Gruppenrichtlinien 03.01.2007

Softwareverteilung mit Gruppenrichtlinien 03.01.2007 Softwareverteilung mit Gruppenrichtlinien Mit dieser Dokumentation möchte ich zeigen wie einfach man im ActiveDirectory Software mithilfe von Gruppenrichtlinien verteilen kann. Ich werde es hier am Beispiel

Mehr

AccountPlus Systemkonfiguration

AccountPlus Systemkonfiguration Anwenderhandbuch AccountPlus Systemkonfiguration Version 1.10 Inhalt: 1 ANWENDUNG... 3 2 DAS PROGRAMM... 3 2.1 Startparameter...5 2.2 Die Karteikarte ACCTPLUS.INI...5 2.3 Die Karteikarte Datenbanken...5

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern. Kurzanleitung

Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern. Kurzanleitung Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern Kurzanleitung Inhaltsverzeichnis 1. Allgemeine Informationen... 3 2. Netzwerkübersicht... 3 3. Konfiguration...

Mehr

Microsoft Office 2010

Microsoft Office 2010 Microsoft Office 2010 Office-Anpassungstool Author(s): Paolo Sferrazzo Version: 1.0 Erstellt am: 15.06.12 Letzte Änderung: - 1 / 12 Hinweis: Copyright 2006,. Alle Rechte vorbehalten. Der Inhalt dieses

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Kochtopf-Kurzanleitung

Kochtopf-Kurzanleitung 1. Erste Schritte 2. Client Installation (Netzwerk Installation) 3. Optimierung des Terminals Server Einsatz 4. Datenkonzept 1.) Erste Schritte Installation (mit Administrator-Rechten) Legen Sie die CD

Mehr

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

Mehr

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Wenn Sie Benutzer von ProtectOn 2 sind und überlegen, auf ProtectOn Pro upzugraden, sollten Sie dieses Dokument lesen. Wir gehen davon aus, dass

Mehr

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird. Der Admin-Bereich im Backend Achtung: Diese Anleitung gibt nur einen groben Überblick über die häufigsten Aufgaben im Backend-Bereich. Sollten Sie sich nicht sicher sein, was genau Sie gerade tun, dann

Mehr

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon Visualisierung der Eidolon Auswertung VisEiA Graphischer Client für das Emailspiel Eidolon Entstanden im Ramen einer Seminararbeit in Informatik Universität Fribourg, Schweiz david.buchmann@gmx.net http://getit.at/viseia/

Mehr

IT-Support Ticketsystem. Stand: 24.09.2015

IT-Support Ticketsystem. Stand: 24.09.2015 IT-Support Ticketsystem Stand: 24.09.2015 Small Business Cloud Handbuch Stand: 24.09.2015 Small Business Cloud ist ein Produkt der DT Netsolution GmbH. DT Netsolution GmbH Taläckerstr. 30 70437 Stuttgart

Mehr

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates RIWA NetUpdater Tool für automatische Daten- und Softwareupdates Grundlegendes... 1 Ausführbare Dateien und Betriebsmodi... 2 netupdater.exe... 2 netstart.exe... 2 netconfig.exe... 2 nethash.exe... 2 Verzeichnisse...

Mehr

Informationen zur Installation des GIS-Zentrum 2

Informationen zur Installation des GIS-Zentrum 2 Informationen zur Installation des GIS-Zentrum 2 Inhaltsverzeichnis: Inhaltsverzeichnis:... 1 Allgemeine Hinweise... 2 Installationsvoraussetzungen... 2 Was passiert bei der Installation?... 2 Einzelplatzinstallation...

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Integrationskonzepte für die HP Quality Center Plattform. Vivit 2009

Integrationskonzepte für die HP Quality Center Plattform. Vivit 2009 Integrationskonzepte für die HP Quality Center Plattform Thomas Jähnig Vivit 2009 Gliederung Einführung HP QualityCenter Synchronizer Plattform Implementierung eigener Adapter Alternativen Excel Import/Export

Mehr

Changelog in-step BLUE 5.0.4

Changelog in-step BLUE 5.0.4 Changelog in-step BLUE 5.0.4 Dieses Changelog beschreibt wesentliche Änderungen und Korrekturen, die mit der aktuellen in-step BLUE Version 5.0.4 zur Verfügung gestellt werden. Das Changelog bezieht sich

Mehr

Nachrichten (News) anlegen und bearbeiten

Nachrichten (News) anlegen und bearbeiten Nachrichten (News) anlegen und bearbeiten Dieses Dokument beschreibt, wie Sie Nachrichten anlegen und bearbeiten können. Login Melden Sie sich an der jeweiligen Website an, in dem Sie hinter die Internet-

Mehr

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2 Inhaltsverzeichnis 1 Einführung 2 1.1 Warum Softwaretests?.................................... 2 2 Durchgeführte Tests 2 2.1 Test: allgemeine Funktionalität............................... 2 2.1.1 Beschreibung.....................................

Mehr

Handbuch Schulungsdatenbank

Handbuch Schulungsdatenbank Handbuch Schulungsdatenbank Inhaltsverzeichnis Hinweise... 3 Überblick... 4 Themen... 5 Schulungsprogramm Verwalten... 6 Details... 7 Schulungsprogramm bearbeiten... 9 Anstehende Termine... 10 Schulungen

Mehr

Dokumentation: MediaWizard Installationsanleitung

Dokumentation: MediaWizard Installationsanleitung Dokumentation: MediaWizard Installationsanleitung Inhaltsverzeichnis 1 Aufbau von MediaWizard... 2 2 Installation... 2 2.1 Bestehende Installation und Daten... 2 3 Übersicht, wo wird was installiert...

Mehr

DIRECTINFO ANBINDUNG AN VERZEICHNISDIENSTE WIE ACTIVE DIRECTORY

DIRECTINFO ANBINDUNG AN VERZEICHNISDIENSTE WIE ACTIVE DIRECTORY DIRECTINFO ANBINDUNG AN VERZEICHNISDIENSTE WIE ACTIVE DIRECTORY Armin Singer Version 1.0, Mai 2007 Inhaltverzeichnis ZIELSETZUNG...3 VORAUSSETZUNGEN...3 ANMELDEN MIT ADMINISTRATIONSRECHTEN...3 INTERNE

Mehr

EMU Bill & Report 1/33

EMU Bill & Report 1/33 EMU Bill & Report 1/33 Inhaltsverzeichnis Schnellstart... 3 1. Datenlogger hinzufügen... 3 2. Kostenstelle erstellen... 5 3. Zähler zu Kostenstelle hinzufügen... 6 4. Rechnungsposition erstellen... 7 5.

Mehr

Sage Start Dateiablage Anleitung. Ab Version 2015 09.10.2014

Sage Start Dateiablage Anleitung. Ab Version 2015 09.10.2014 Sage Start Dateiablage Anleitung Ab Version 2015 09.10.2014 Inhaltsverzeichnis Inhaltsverzeichnis 2 1.0 Einleitung 3 1.1 Module mit Dateiablage 3 1.2 Allgemeine Informationen 3 1.2.1 Löschen von Datensätzen

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Matrix42. Use Case - Anwender kann Datei vom Typ PNG nicht öffnen. Version 1.0.0. 28. März 2013 - 1 -

Matrix42. Use Case - Anwender kann Datei vom Typ PNG nicht öffnen. Version 1.0.0. 28. März 2013 - 1 - Matrix42 Use Case - Anwender kann Datei vom Typ PNG nicht öffnen Version 1.0.0 28. März 2013-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Kapitel 6. Vererbung

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

Mehr

Spybot Search & Destroy 1.6. Kurzanleitung

Spybot Search & Destroy 1.6. Kurzanleitung Spybot Search & Destroy 1.6. Kurzanleitung erstellt 01/2010 Als Ergänzung zum aktuell verwendeten Virenschutz-Programm hat diese von Safer- Networking Limited bereitgestellte Software gute Dienste geleistet.

Mehr

Hinweis: Der Zugriff ist von intern per Browser über die gleiche URL möglich.

Hinweis: Der Zugriff ist von intern per Browser über die gleiche URL möglich. Was ist das DDX Portal Das DDX Portal stellt zwei Funktionen zur Verfügung: Zum Ersten stellt es für den externen Partner Daten bereit, die über einen Internetzugang ähnlich wie von einem FTP-Server abgerufen

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr