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

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

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

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

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

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz Das Instrument für den fähigkeitsgerechten Personaleinsatz IMBA SQL Server-Datenbankadapter Installationsanleitung gefördert durch das Bundesministerium für Gesundheit und Soziale Sicherung Vorbereitung

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

Die nächste Revolution in der modelgetriebenen Entwicklung?

Die nächste Revolution in der modelgetriebenen Entwicklung? Die nächste Revolution in der modelgetriebenen Entwicklung? Me Johannes Kleiber Software Engineer bei FMC Johannes.Kleiber@fmc-ag.com Themen Überblick Window Workflow Foundation Workflows modellieren WF

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

Kapitel 6. Vererbung

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

Mehr

TECHNISCHE PRODUKTINFORMATION CARUSO

TECHNISCHE PRODUKTINFORMATION CARUSO 1111 TECHNISCHE PRODUKTINFORMATION CARUSO TECHNISCHE PRODUKTINFORMATION Seite 0/7 Inhalt 1 Systemdefinition............2 2 Technische Details für den Betrieb von CARUSO......2 2.1 Webserver... 2 2.2 Java

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

Kapitel 6. Vererbung

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

Mehr

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

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

1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem

1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem 1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem Management, Access Management a. Event Management b. Service Desk c. Facilities Management d. Change Management e. Request Fulfilment

Mehr

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

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

Mehr

ITIL in 60 Minuten. Jörn Clausen. joernc@gmail.com. Captain Barbossa: And thirdly, the code is more what you d call guidelines than actual rules.

ITIL in 60 Minuten. Jörn Clausen. joernc@gmail.com. Captain Barbossa: And thirdly, the code is more what you d call guidelines than actual rules. ITIL in 60 Minuten Jörn Clausen joernc@gmail.com Captain Barbossa: And thirdly, the code is more what you d call guidelines than actual rules. Elizabeth Swann: Hang the code, and hang the rules. They re

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND init.at informationstechnologie GmbH - Tannhäuserplatz 2 - A-1150 Wien - www.init.at Dieses Dokument und alle Teile von ihm bilden ein geistiges Eigentum

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

für den Helpdesk TOPIX Informationssysteme AG

für den Helpdesk TOPIX Informationssysteme AG Ticket-System für den Helpdesk TOPIX Informationssysteme AG Inhalt Tickets...2 Eigenschaften...2 Einstellungen...3 Das erste Ticket...4 Verknüpfungen mit den Tickets...5 Kategorienamen...6 Funktionen in

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

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

E-Mails zuordnen. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de

E-Mails zuordnen. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de E-Mails zuordnen Copyright 2015 cobra computer s brainware GmbH cobra Adress PLUS, cobra CRM PLUS, cobra CRM PRO und cobra CRM BI sind eingetragene Warenzeichen der cobra computer s brainware GmbH. Andere

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

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

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

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

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

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

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

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

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

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

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

Auswahl eines TTS und Einführung von OTRS bei der GWDG

Auswahl eines TTS und Einführung von OTRS bei der GWDG Auswahl eines TTS und Einführung von OTRS bei der GWDG Dr. Wilfried Grieger wgriege@gwdg.de http://www.gwdg.de/~wgriege Gesellschaft für wissenschaftliche Datenverarbeitung mbh Göttingen Am Fassberg, 37077

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

Installationsanleitung und Installation des MS SQL Server 2005 Express

Installationsanleitung und Installation des MS SQL Server 2005 Express und Installation des MS SQL Server 2005 Express buchner documentation GmbH Lise-Meitner-Straße 1-7 D-24223 Schwentinental Tel 04307/81190 Fax 04307/811999 www.buchner.de Inhaltsverzeichnis 1 Überblick...

Mehr

WORKFLOWS. Vivendi NG, Vivendi PD Workflows, CRM VERSION: 6.17. Frage:

WORKFLOWS. Vivendi NG, Vivendi PD Workflows, CRM VERSION: 6.17. Frage: WORKFLOWS PRODUKT(E): KATEGORIE: Vivendi NG, Vivendi PD Workflows, CRM VERSION: 6.17 Frage: Unter Vivendi NG und Vivendi PD finde ich die Schaltfläche: Wofür kann ich diese Funktion nutzen? Antwort: Ab

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Handbuch zu AS Connect für Outlook

Handbuch zu AS Connect für Outlook Handbuch zu AS Connect für Outlook AS Connect für Outlook ist die schnelle, einfache Kommunikation zwischen Microsoft Outlook und der AS Datenbank LEISTUNG am BAU. AS Connect für Outlook Stand: 02.04.2013

Mehr

Tutorial Grundlagen der Softwareverteilung

Tutorial Grundlagen der Softwareverteilung Tutorial Grundlagen der Softwareverteilung Inhaltsverzeichnis 1. Einführung... 3 2. Clientsysteme einrichten... 3 2.1 Den SDI Agent verteilen... 3 2.2 Grundeinstellungen festlegen... 4 3. Softwareverteiler...

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

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

Mehr

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0 Leistungsbeschreibung PHOENIX Archiv Oktober 2014 Version 1.0 PHOENIX Archiv Mit PHOENIX Archiv werden Dokumente aus beliebigen Anwendungen dauerhaft, sicher und gesetzeskonform archiviert. PHOENIX Archiv

Mehr

AIT AG Leitzstraße 45 70469 Stuttgart Germany +49 (0)711-49066 - 430 Fax:...- 49066-440

AIT AG Leitzstraße 45 70469 Stuttgart Germany +49 (0)711-49066 - 430 Fax:...- 49066-440 Abb. oben zeigt ein mögliches Szenario Seite 1 von 5 Automatisierung mittels Skriptdatei Mit der.net Edition von Visual Localize (V4.X) wurde dem Benutzer die Möglichkeit eröffnet, wiederkehrende Arbeitsschritte

Mehr

Einrichtung des NVS Calender-Google-Sync-Servers. Installation des NVS Calender-Google-Sync Servers (Bei Neuinstallation)

Einrichtung des NVS Calender-Google-Sync-Servers. Installation des NVS Calender-Google-Sync Servers (Bei Neuinstallation) Einrichtung des NVS Calender-Google-Sync-Servers Folgende Aktionen werden in dieser Dokumentation beschrieben und sind zur Installation und Konfiguration des NVS Calender-Google-Sync-Servers notwendig.

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

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch nichts zurücksichern.

Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch nichts zurücksichern. Exchange Daten wieder ins System einfügen (Dieses Dokument basiert auf einem Artikel des msxforum) Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

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

Ticket Center Quick Start

Ticket Center Quick Start AdNovum Informatik AG. Juli 13 2 Wozu dient das? Indem Sie Ihre Fehlermeldungen, Anfragen und Vorschläge zur Software stets im erfassen, helfen Sie uns, die Informationen zur einzelnen Meldung konsistent

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

OutlookExAttachments AddIn

OutlookExAttachments AddIn OutlookExAttachments AddIn K e i n m ü h s e l i g e s S p e i c h e r n u n t e r f ü r j e d e n A n h a n g! K e i n e a u f g e b l ä h t e O u t l o o k - D a t e n d a t e i m e h r! E f f e k t

Mehr

Matrix42. Use Case - Anlegen einer neuen Störung über den Service Catalog. Version 1.0.0. 22. März 2013 - 1 -

Matrix42. Use Case - Anlegen einer neuen Störung über den Service Catalog. Version 1.0.0. 22. März 2013 - 1 - Matrix42 Use Case - Anlegen einer neuen Störung über den Service Catalog Version 1.0.0 22. 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

Mehr

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website Inhalt Inhalt... 1 1. Anmelden beim Kompetenzmanager... 3 2. Erstellen eines neuen Kompetenzprofils... 4 2.1. Wizard

Mehr

Installation Guide. Installation Guide. Installationsanleitung für die anaptecs JEAF Plattform. Version 1.2 Letzte Änderung 05.

Installation Guide. Installation Guide. Installationsanleitung für die anaptecs JEAF Plattform. Version 1.2 Letzte Änderung 05. Installation Guide Thema Version 1.2 Letzte Änderung 05. Dezember 2011 Status Installationsanleitung für die anaptecs JEAF Plattform Freigegeben Inhaltsverzeichnis 1 Motivation... 4 1.1 Abgrenzungen...

Mehr

Einführung Erste Schritte mit Mamut Online Survey

Einführung Erste Schritte mit Mamut Online Survey [Type text] Mamut Active Services Einführung Erste Schritte mit Mamut Online Survey 1 Erste Schritte mit Mamut Online Survey Inhalt Über Mamut Online Survey... 2 Erste Schritte mit Mamut Online Survey...

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

Praktikum Software Engineering

Praktikum Software Engineering Praktikum Software Engineering Verwendung von Enterprise Architect Pascal Weber, David Kulicke KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2 Produkt: Melde- und Bedientableau Typ: MT 701.2 Aktuelles Anwendungsprogramm Plug-In für ETS 2 MT_701_2_ETS2_SOW_xx_V1-12a_de_en.exe Plug-In für ETS 3 MT_701_2_ETS3_SOW_xx_V1-12a_de_en.exe EIBTAB: MT_701_2_EIBTAB_SOW_de_V2-08-00A_EibTab+Firmware.EXE

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

Migrationsanleitung von 2.0 auf 2.1

Migrationsanleitung von 2.0 auf 2.1 Die wichtigste Neuerung von 2.0 auf 2.1 aus Sicht der Anwendungs- Migration ist die Verwendung von Maven. Mit Maven holt sich die Anwendung alle notwendigen Bibliotheken in den jeweils angegebenen Versionen

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

CRM. Weitere Schritte

CRM. Weitere Schritte CRM Weitere Schritte 1. Allgemein... 3 2. Anpassen der Auswahllisten... 3 3. Aufgabenverwaltung... 4 4. Web2Lead... 6 4.1 Erstellen Sie ein individuelles Kontaktformular...6 4.2 Optionen...6 4.3 Benachrichtigungen...7

Mehr

Software Engineering in

Software Engineering in Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?

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

Userhandbuch. Version B-1-0-2 M

Userhandbuch. Version B-1-0-2 M Userhandbuch Version B-1-0-2 M Inhaltsverzeichnis 1.0 Was bietet mir SERVRACK?... 3 1.1 Anmeldung... 3 1.2 Passwort vergessen?... 3 1.3 Einstellungen werden in Realtime übernommen... 4 2.0 Die SERVRACK

Mehr

Konfigurationsassistent. Neue FTP-Site anlegen. WISE-FTP aktivieren. Kurzanleitung WISE-FTP

Konfigurationsassistent. Neue FTP-Site anlegen. WISE-FTP aktivieren. Kurzanleitung WISE-FTP 4 164 ist ein so genannter FTP-Client eine Software, die es Ihnen ermöglicht, eine Verbindung zu jedem beliebigen FTP-Server herzustellen und Dateien und Verzeichnisse sowohl herauf- als auch herunterzuladen.

Mehr

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de Webmail Anleitung für Ihr online E-Mail-Postfach http://webmail.willytel.de Inhalt: Inhalt:... 2 Übersicht:... 3 Menü:... 4 E-Mail:... 4 Funktionen:... 5 Auf neue Nachrichten überprüfen... 5 Neue Nachricht

Mehr

Zeiterfassung für Projekte. ZEP Offline Handbuch. Juni 2013 Version 4.6

Zeiterfassung für Projekte. ZEP Offline Handbuch. Juni 2013 Version 4.6 Weil Zeit Geld ist Zeiterfassung für Projekte ZEP Offline Handbuch Juni 2013 Version 4.6 provantis IT Solutions GmbH Siemensstr. 1 71254 Ditzingen Tel. +49 (0)7156/43623-0 Fax. +49 (0)7156/43623-11 ZEP@provantis.de

Mehr

CaseWare Monitor. ProduktNEWS CaseWare Monitor. Version 4.3. Mehr Informationen zu CaseWare Monitor und unseren anderen Produkten & Dienstleistungen

CaseWare Monitor. ProduktNEWS CaseWare Monitor. Version 4.3. Mehr Informationen zu CaseWare Monitor und unseren anderen Produkten & Dienstleistungen Mit der aktuellen Version hält eine komplett neu konzipierte webbasierte Anwendung Einzug, die sich neben innovativer Technik auch durch ein modernes Design und eine intuitive Bedienung auszeichnet. Angefangen

Mehr

Dokumentation RabattManagerLX Pro. Version 1.0.901.1

Dokumentation RabattManagerLX Pro. Version 1.0.901.1 Dokumentation RabattManagerLX Pro Version 1.0.901.1 Dokumentation RabattManagerLX Pro Version 1.0.901.1 Was ist RabattManagerLX Pro? RabattManagerLX Pro ist ein Programm um individuelle Warengruppen-Rabatte

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

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

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors Installation und Konfiguration des Outlook Connectors Vertraulichkeit Die vorliegende Dokumentation beinhaltet vertrauliche Informationen und darf nicht an etwelche Konkurrenten der EveryWare AG weitergereicht

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

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

PROFI MANAGED SERVICES

PROFI MANAGED SERVICES S Webcast Darmstadt 11.09.2014 Hans Larcén AGENDA PROFI Managed Services Serviceablauf und SLAs Ihre Vorteile Unser Vorgehensmodell 2 MANAGED SERVICE Übernahme des operativen Betriebs der IT Infrastruktur

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

ANWENDERHANDBUCH. Zutritts-Konfigurator PC IT Mini, Version 1.1.2. Hilfsprogramm für Anlagen mit dezentraler Zutrittskontrolle

ANWENDERHANDBUCH. Zutritts-Konfigurator PC IT Mini, Version 1.1.2. Hilfsprogramm für Anlagen mit dezentraler Zutrittskontrolle ANWENDERHANDBUCH Hilfsprogramm für Anlagen mit dezentraler Zutrittskontrolle Zutritts-Konfigurator PC IT Mini, Version 1.1.2 ahb_pcitmini_art0010411_1v2.doc 2 06/2005 Inhaltsverzeichnis Übersicht...2 Systemvoraussetzungen...3

Mehr

Exception Handling, Tracing und Logging

Exception Handling, Tracing und Logging Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung

Mehr

Server Installation 1/6 20.10.04

Server Installation 1/6 20.10.04 Server Installation Netzwerkeinrichtung Nach der Installation müssen die Netzwerkeinstellungen vorgenommen werden. Hierzu wird eine feste IP- Adresse sowie der Servername eingetragen. Beispiel: IP-Adresse:

Mehr

MailStore Service Provider Edition (SPE)

MailStore Service Provider Edition (SPE) MailStore Solutions MailStore Service Provider Edition (SPE) E-Mail-Archivierung für Service Provider Mit Hilfe der MailStore Service Provider Edition können Sie Ihren Kunden moderne E-Mail-Archivierung

Mehr

Erstellen sicherer ASP.NET- Anwendungen

Erstellen sicherer ASP.NET- Anwendungen Erstellen sicherer ASP.NET- Anwendungen Authentifizierung, Autorisierung und sichere Kommunikation Auf der Orientierungsseite finden Sie einen Ausgangspunkt und eine vollständige Übersicht zum Erstellen

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

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

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation Softwareentwicklungspraktikum Sommersemester 2007 Testdokumentation Auftraggeber Technische Universität Braunschweig

Mehr

URT Eclipse All in one

URT Eclipse All in one URT Eclipse All in one Das Paket Eclipse All in one enthält Programme und Einstellungen, die zum Programmieren mit Eclipse in Zusammenarbeit mit Subversion und ANT benötigt werden. Dieses Paket dient als

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

1 Outlook 2013-Installation und Konfiguration

1 Outlook 2013-Installation und Konfiguration Outlook 2013-Installation und Konfiguration 1 Outlook 2013-Installation und Konfiguration Outlook kann in zwei Betriebsmodi verwendet werden: Exchange Server-Client: In diesem Modus werden die E-Mails

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

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

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

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