S.mon Features

In diesem Dokument werden kurz die Features von S.mon in der Version 1.1 beschrieben.

Was ist S.mon?

S.mon steht für Service Management Online. Es ist eine sog. Defect Tracking Software, eine Applikation, die zur Aufzeichnung von Problemen von der Enstehung bis zu deren Lösung dient.

S.mon ist eine Web-Applikation, die mittels Java-Technologien implementiert wurde. Die Applikation basiert auf Servlet-Technologie. Bei Erstellung von HTML-Seiten kommt auch stark die XML-Technik (Extensible Markup Language) zum Einsatz. Es wurde auf eine strikte Trennung zwischen Daten und Layout geachtet. Die Java-Klassen kümmern sich ausschließich um die Logik und liefern nur Daten aus. Die Daten werden am Ende durch eine Transformation (XSLT) ins HTML-Format konvertiert und zum Browser geschickt. Mit dieser Architektur ist man sehr flexibel, was das Layout betrifft. Ein Käufer kann sich das Layout leicht an eigene Bedürfnisse (Corporate Design) anpassen, ohne den Programm-Code ändern oder verstehen zu müssen.

Alle S.mon Daten werden in einer relationallen Datenbank gespeichert. Der Zugriff auf die Datenbank erfolgt über JDBC-API (Java Database Connectivity). Dadurch wird die Datenbankunabhängigkeit gewährleistet. Das Programm wurde mit zwei kommerziellen (Oracle, MS SQL Server) und zwei frei verfügbaren (MySQL, PostgreSQL) Datenbanken getestet. Man kann aber jede Datenbank einsetzen, welche einen JDBC-Treiber besitzt und welche Transaktionen und BLOB-Datentypen unterstützt.

Auf der Client-Seite wird keine extra Software installiert. Man braucht nur einen Web-Browser (Netscape, Mozilla, Explorer, Opera, ...), um arbeiten zu können. Auch die ganze Administration kann von einem Browser aus durchgeführt werden. Es gibt keine extra Anforderungen an den Web-Browser. Es wird eine Unterstützung von CSS (Cascading Stylesheet) und von Unicode (UTF8) vorausgesetzt, was heutzutage von jedem Browser erfüllt sein sollte. Die Benutzer Sessions werden mittels Cookies realisiert, deswegen muß ein Browser auch ein Cookie akzeptieren müssen. S.mon wurde so entwickelt, daß JavaScript am Browser nicht aktiviert werden muß. Gewisse Funkionalität kann man jedoch bequemer realisieren, wenn JavaScript aktiviert ist. Um den reibungslosen Ablauf zu gewährleisten sollte der Browser-Cache so konfiguriert werden, daß bei jedem Zugriff auf eine Seite geprüft wird, ob sich diese geändert hat.

Lizenz-Verwaltung

S.mon verwendet einen License-Manager, um zu entscheiden, ob gewisse Features verwendet werden dürfen. Das heißt, man wird ein License-String benötigen, um S.mon in Betrieb nehmen zu können. Der License-Manager ist schon in der Software integriert, man muß keine extra Software starten.

Folgende Features können in einer Lizenzdatei gesetzt werden:

Jedes Feature kann für eine bestimmte Zeit oder für immer freigeschaltet werden. Concurrent-Licenses werden nicht unterstützt. Eine Lizenz kann auf einen bestimmten Host (nur IP-Adresse) eingeschränkt sein, oder gilt für jede Maschine.

Was ist ein Problem?

Dem System ist es egal was ein Problem ist. Man kann S.mon sowohl bei der Software-Entwicklung, in einem Call-Center fü Störungsmeldungen, in einem Rechenzentrum als auch in einer technischen Service-Abteilung zur Aufzeichnung von Hardware-Problemen einsetzen.

Die englischen Begriffe "Defect", "Ticket" oder "Case" können als Synonyme für das Wort Problem verwendet werden.

Jedem Problem wird eine eindeutige Nummer zur Identifikation automatisch zugeordnet. Bei einer Problem-Meldung muß man einen Titel und die detaillierte Beschreibung angeben. Jedes Problem hat auch eine Priorität, welche fü die Problem-Behebung eine entscheidende Rolle spielt. Es gibt viele andere Attribute, die mit einem Problem mitgespeichert werden. Manche dieser Attribute werden von der meldenden Person, manche durch den Sachbearbeiter ausgefüllt. Viele Werte werden auch automatisch vom System bei dem gesamten Workflow gesetzt. Die Details zu den möglichen Werten sollte man dem in dem Datenbank-Model nachlesen.
Die untere Grafik präsentiert den Ablauf (Workflow) von der Meldung eines Problems bis zur Abschliessung. State transitions, Workflow
ZustandNameBeschreibung
NNew Anfangszustand für neu gemeldete Probleme. Das neue Problem ist im System gespeichert.
PPostponed Der Assigner entscheidet, daß das Problem nicht so wichtig ist und aufgeschooben wird. An diesem Problem wird nicht gearbeitet. Zu einem späterem Zeitpunkt kann man das Problem einem Bearbeiter zuweisen. Dieser Zustand ist optional.
AAssigned Ein Problem befindet sich in diesem Zustand, wenn es von dem Assigner einem Bearbeiter zugewiesen wurde. Es heißt aber noch nicht, daß an der Lösung des Problems gearbeitet wird. Es heißt lediglich, daß das Problem von einer Person angesehen wurde, und es wurde entschieden, wer für die Behandlung des Problems verantwortlich ist.
OOpened Ein Problem ist in diesem Zustand, wenn der Bearbeiter es "wahrgenommen" hat. Die Person, der das Problem zugewiesen wurde, hat sich mit der Problembeschreibung vertraut gemacht und das Problem zur Bearbeitung akzeptiert.
FForwarded Dieser Zustand wird erreicht, wenn ein Bearbeiter das Problem an einen anderen Bearbeiter weiterleitet. Wird die Weiterleitung von dem neuen Benutzer akzeptiert, dann übernimmt diese Person ab diesem Zeitpunkt die Verantwortung für die Problembehandlung. Ansonsten bleibt die Verantwortung bei dem letzten Bearbeiter.
WWaiting Es ist nicht üblich bei einer Defect Tracking Software, solchen Zustand zu haben. Es ändert sich nählich nichts in der Problembehandlung, das Problem muß nach wie vor bearbeitet werden. Dieser Zustand besagt lediglich, daß der Bearbeiter auf eine Information vom Problemmelder wartet.
LForwarded to Next Service Level Das Ticket wurde zum nächsten Service Level weitergeleitet. Es wird eine Kopie des Originaltickets gemacht und diese wird als neues Ticket bei dem nächsten Service Level bearbeitet. Beide Tickets sind miteinander verlinkt. Sobald das neue Ticket abgeschlossen ist, wird der Bearbeiter benachrichtigt und kann die Arbeit mit dem Originalticket fortsetzen.
RResolved Dieser Zustand besagt, daß der Bearbeiter mit der Problemlösung fertig ist. Das Problem konnte gelöst (behoben) werden. Eine Beschreibung der Lösung sollte angegeben werden. Es ist auch möglich zu sagen, daß es eine falsche Meldung (kein Problem) war oder daß es sich um ein Duplikat von einem anderen Problem gehandelt hat.
VVerified Dieser Zustand ist optional. Wenn die Problemlösung akzeptiert wurde, gelangt man zu diesem Zustand.
CClosed Endzustand eines Tickets. Die Lösung ist verfügbar und wurde akzeptiert (optional). Die Bearbeitung des Tickets ist damit abgeschlossen.

Grundfunktionen

Zu den Grundfunktionen gehören selbstverständlich die Problemmeldung und alle Schritte die mit dem obigen Ablauf zusammenhängen.

Die untere Liste gibt kurzen Überblick über weitere Features:

Administration

Im S.mon gibt es drei Arten von Administratoren:
System-Administrator
Verwaltet das gesamte System. Kann Produkte anlegen, neue Benutzer, sowie Kunden erzeugen und die Rechte vergeben.
Produkt-Administrator
Ein Produkt-Administrator vergibt die Zugriffsrechte für das jeweilige Produkt und pflegt die sonstigen Prudukt-Daten (Systeme, Komponenten, Team).
Kunden-Administrator
Die Aufgabe des Kunden-Administrator ist die Pflege von Kunden-Daten. Diese Person kann Kunden-Benutzer anlegen und die Verträge mit den Kunden verwalten.
Die ganze Administration ist Web-basiert. Man braucht keine extra Software zu installieren, um S.mon zu administrieren.

Security

Die Kommunikation zwischen dem Browser und dem Web-Server mit S.mon Servlet kann sowohl über das unsichere (HTTP) als auch das sichere (HTTPS) Protokoll ablaufen. Als Default wird das sichere Protokoll eingesetzt. Hier werden die Daten verschlüsselt übertragen. Mit Secure Socket Layer kommt nicht nur eine starke kryptografische Verschlüsselung zum Einsatz, sondern es wird die Authentizität (man weißt mit welchem Partner man redet), sowie die Datenintegrität (keine Verfälschung möglich) gewährleistet. Man ist auch gegen die Lauschangriffe von Dritten (man in the middle attack) gesichert.

Immer wenn Sie sich von einem Browser am Server anmelden, können Sie sich sicher sein, daß Ihr Paßwort nicht abgehört werden kann. Es wird auch nicht beim einem Web-Proxy-Server in einem Log-File mitgespeichert.

In der Datenbank werden auch keine Paßwörter im Klartext gespeichert. Die Paßwörter der S.mon Benutzer werden in der Datenbank verschlüsselt abgelegt. Dadurch kann auch kein Datenbank-Administrator Ihre Geheimnisse lesen.

Jeder Benutzer kann auch selbst das eigene Paßwort jede Zeit ändern.

Jedes Produkt, für welches Probleme gemeldet und dann weiter behandelt werden, ist durch ein sog. Access Control List (ACL) gesichert. Ein ACL definiert wer welche Zugriffsrechte für dieses Produkt besitzt. Hier wird zum Beispiel gespeichert, wer die Probleme lesen darf. Um die ACL-Verwaltung zu erleichtern, wurden auch drei Meta-Benutzer (oder Meta-Gruppen) definiert:

Ein ACL spielt auch die wesentliche Rolle bei dem sog. Security-Filter. Die Aufgabe des Security-Filters ist die Gewährleistung, daß nur die Personen ein Problem lesen, die es wirklich dürfen.

Plattformunabhängigkeit

S.mon ist Plattform unabhängig. Dies konnte durch den Einsatz von Java erreicht werden. Die Software läuft auf jedem Rechnersystem, für welchen Java Runtime Environment verfügbar ist. Getestet wurde die Software unter Windows, Sun Solaris sowie Suse Linux. Weitere Unix- und nicht Unix-Systeme (z.B. Mac OS) können für S.mon-Installation ebenfalls verwendet werden (wurden jedoch nicht getestet).

Mehrsprachiges Benutzerinterface

Das Benutzerinterface ist in mehreren Sprachen verfügbar. Derzeit stehen Englisch, Deutsch, Tschechisch und Polnisch zur Auswahl. Die Erweiterung um eine weitere Sprache ist sehr leicht, da alle lokalisierte Einträge in einer XML-Datei gespeichert sind. Dadurch kann auch der Käufer selbst S.mon um eine neue Sprache erweitern. Bei Bedarf wird das GUI in weitere Sprachen übersetzt.

Persönliche Einstellungen

Jeder S.mon-Benutzer kann persönliche Einstellungen vornehmen. Man kann die Sprache für das GUI, die Sortierungs-Optionen sowie Default-Aktion nach der Anmeldung konfigurieren. Durch die letzte Eigenschaft kann jeder Benutzer entsprechend seiner Rolle gleich zu einer richtigen Maske gelangen. Man meldet sich an, und führt gleich die Aktion aus, die man sich wünscht:
Kunde
Maske zum Melden eines neuen Problems
Administrator
Maske für Kunden-, Produkte- und Benutzer-Verwaltung
Bearbeiter
Maske mit der Liste der zugewiesenen und der aktiven Probleme
Assigner
Maske mit der Liste von neu gemeldeten Problemen, welche einem Bearbeiter zugeordent werden müssen.
Es sind hier nur einige mögliche Szenarien aufgelistet worden. Jede Maske, welche keine extra Parameter benötigt, kann gleich nach der Anmeldung angesprochen werden. Dazu zählen auch z.B. Suche und Statistiken.

Kontext sensitive Hilfe

Für jede Maske gibt es eine Kontext sensitive Hilfe. Hier wird kurz erläutert, was man sieht, welche Aktionen man ausführen kann und wie die Bedeutung der Felder oder Eingabeparameter ist.

Die Hilfe steht derzeit nur in der englischen Sprache zur Verfügung.

Definition von Verträgen

Für jeden Kunden kann man mehrere Verträge (Contracts) definieren. Außer der Gültigkeit eines Vertrages werden hier zwei Sachen definiert:

Suche

Das Suchsystem im S.mon ist sehr komplex. Man kann sowohl nach direkten Feldern eines Problems als auch in den Lösungstexten und der Problem-Beschreibung suchen. Die Verwendung von Wild-Cards ist möglich. Auch eine logische AND- (default) oder OR-Verknüpfung für die Suchkriterien ist realisierbar.

Bevor die Suchergebnisse angezeigt werden, müssen die vom DB-Server gelieferten Daten einen Security-Filter passieren. Der Security-Filter entfernt alle Ergebnisse aus der Liste, welche für den jeweiligen Benutzer nicht freigegeben wurden.

Volltext-Suche für Beilagen

Ähnlich wie Google oder Altavista, bietet S.mon eine Volltext-Suche an. Alle Beilagen zu den Problemen werden indexiert. Dies ermöglicht sehr schnelle Antwortzeiten einer Suchabfrage. Bei einer Suchabfrage ist die Verwendung von logischen Operatoren ebenfalls möglich.

Die Volltext-Suche wurde auf der Basis vom Apache-Projekt Lucene realisiert.

Derzeit werden folgende Dokument-Formate bei Fulltext-Search unterstützt:

Durch den Einsatz (Kauf) von spezieller Dokument-Filter Software, kann die Funktionalität selbstverständlich erweitert werden.

Statistiken

Im S.mon sind einfache statistische Auswertungen möglich. Man gibt die gewünschte Zeit und das Kriterium an, als Ergebnis wird ein einfaches Balken-Diagramm mit der Anzahl von Problemen in der unterschiedlichen Zuständen erzeugt. Zusätzlich werden die Reaktionszeiten sowie die Behebungszeiten (Minimum-, Maximum- und Durchschnittswert) in einer Tabelle präsentiert.

Die Auswertung kann man für ein gesamtes Jahr, ein Monat oder für ein Quartal durchführen.

Die Statistiken sind sowohl für Kunden als auch Benutzer sowie den Administrator verfügbar. Dabei sind jedoch die Auswahlkriterien und die Ergebnisse unterschiedlich. Ein Administrator kann alle Statistiken sehen. Die Kunden können nur Statistiken über die Probleme des jeweiligen Kunden bilden und ein Bearbeiter sieht die Statistiken nur über die Probleme, für die er zuständig ist.

Für komplexe Statistiken kann eine spezielle Reporting-Software wie z.B. BusinessObjects oder Crystal Reports eingesetzt werden.

Automatische Benachrichtigung (Notification)

Jeder Benutzer kann individuell konfigurieren, wann er per eine E-Mail benachrichtigt sein will. Das heißt, man sagt für welche Zustandsänderungen und in welchem Produkt man sich interessiert. Ändert sich der Zustand eines Problems, so werden alle Interessenten sofort darüber informiert. Es wird also nicht nur der Melder über eine Änderung benachrichtigt, sondern dies kann für beliebig viele Personen gemacht werden.

Die Kriterien für eine Benachrichtigung sind sehr flexibel. In erster Linie wählt man die gewünschten Zustände aus. Dann gibt man an, für welches Produkt man sich interessiert. Die Bearbeiter können auch die Benachrichtigung auf Probleme von einem bestimmten Kunden einschränken. Durch Eingabe von einer Problem-Nummer ist auch möglich die Änderungen über ein einzelnes Problem zu verfolgen. Zusätzlich kann man auch entscheiden, ob man eine Benachrichtigung für alle Probleme, oder nur für die selbst gemeldeten, haben will.

Derzeit gibt es keine Einschränkung bezüglich der Anzahl von Benachrichtigungen. Dies wird sich wahrscheinlich mit nächster Version ändern, so daß es ein Maximum (10-20 pro Benutzer) geben wird.

Um eine Benachrichtigung zu bekommen, muß für den jeweiligen Benutzer eine E-Mail-Adresse konfiguriert werden. Eine Benachrichtigung wird folgende Adresse verwendet:

  1. Notification-Adresse (falls konfiguriert). Kann z.B. SMS-Adresse sein.
  2. Konfigurierte E-Mail
  3. Die Adresse wird aus dem Login-Namen und der konfigurierten Mail-DOmain gebildet.

Die Bearbeiter an die ein Problem zugewiesen wird, werden immer automatisch benachrichtigt, ohne daß sie dafür eine Benachrichtigung konfigurieren müssen. Auch wenn ihre Problemlösung abgeleht wird, werden sie darüber immer informiert.

Periodische Berichte

Ein System-Administrator kann periodische Berichte für die Benutzer definieren. Diese Benutzer werden dann zu einem gegebenen Zeitpunkt über die Probleme informiert. Man kann z.B. jeden Mitarbeiter täglich über seine offenen (in Bearbeitung) Probleme informieren. Ein Manager könnte z.B. wöchentlich einen überblick über die abgelaufenen (Endtermin für das Fix ist schon vorbei) Probleme bekommen.

Die Berichte sind sehr flexibel zu gestalten. Man gibt die Uhrzeit an, wann ein Bericht erstellt werden soll. Die Erstellung kann täglich, wöchentlich (man wählt einen Wochentag aus) oder monatlich (man wählt einen Tag aus) erfolgen.
Dabei kann man komplexe Kriterien für ein Bericht setzen:

Mittels der periodischen Berichte kann man auch ein Eskalationsmechanismus verwirklichen.

E-Mail Gateway

Es ist auch möglich neue Probleme von einem Mail-Client aus, zu melden. Für jedes Produkt kann im S.mon eine E-Mail-Adresse konfiguriert werden. So kann an diese Adresse eine E-Mail verschicken, welche als ein neues Problem interpretiert wird.
Dabei gilt folgende Umsetzung: Der Sender bekommt auch automatisch eine E-Mail als antwort, wo die Problemnummer mit dem direkten Link zu S.mon steht.

Zu beachten ist, daß man über E-Mail keine Authentifizierung haben kann. Will man diese Funktionalität nutzen, so muß man in dem jeweiligen Produkt das Melden von Problemen auch für anonyme Benutzer erlauben.

Für die hier beschriebene Funktionalität wurde ein allgemeines E-Mail Gateway entwickelt, welches mit S.mon über die SOAP-Schnittstelle kommuniziert.

Mail-Exchange

Bei der Problembehandlung werden oft zwischen dem Berabeiter und dem Problemmelder E-Mails ausgetauscht. Damit die E-Mails nicht nur in den privaten Mail-Foldern der Benutzer verschwinden, besteht auch eine Möglichkeit eine Kopie der Nachricht direkt bei einem Problem abzuspeichern. Um dies zu erzielen, reicht nur aus, beim verschicken einer Nachricht eine spezielle CC-Adresse anzugeben.
Diese CC-Adresse hat die Form id<defect>@xyz, wobei
<defect>
eine Problemnummer ist
xyz
für Mail-Domain steht.
Wenn bei einem Mail-Austauch "Reply-To-All" ausgewählt wird, so wird die Kommunikation in beiden Richtungen gesichert.

Export

Jeder Benutzer kann ein einzelnes Problem oder die aktuelle Liste von Problemen exportieren.
Bei der Export-Funktionalität werden folgende Formate unterstützt:

Logbuch (Journaling)

In einem Logbuch werden die wichtigsten Ereignisse mitprotokolliert. Da es im System mehrere Administratoren geben kann, so kann man leicht überprüfen, wer was und wann gemacht hat.

Das Logbuch hat mit Logging nicht zu tun. Trace-Ausgaben werden im S.mon in eine Log-Datei geschrieben. Diese Datei dient den Entwickler dazu, mögliche Programm-Fehler im System zu finden. Bei dem Logbuch werden alle Einträge in der Datenbank gespeichert. Wie schon oben erwähnt, ein Logbuch dient dazu, um nachzuvollziehen, welche kritische Aktionen (Anmeldung, Paßwort-Änderung, Erzeugen und Löschen von Daten) von wem durchgeführt wurden.

Plugin-Architektur für Event-Listeners

Im S.mon wurde ein asynchrones Event-Management implementiert. Meldet sich ein neuer Benutzer an oder ab, wird ein neues Problem gemeldet oder ein bestehendes modifiziert, so werden die entsprechenden Ereignisse einem zentralen Event-Manager mitgeteilt. Haben sich bei dem Event-Manager einige Klassen (sog. Listeners) registriert, so werden diese über die Ereignisse informiert.

S.mon bietet eine Plugin-Architektur an, so daß der Käufer auch eigene Erweiterungen im System durchführen kann. Es ist möglich bis zu fünf eigene Event-Listeners zu konfigurieren. Für die Details sollte man das Dokument über Events studieren.

Plugin-Arichtektur für Cron-Jobs

Ählich wie bei den Event-Listeners besteht auch eine Möglichkeit eigene Cron-Jobs zu definieren. Es ist ein spezieller Mechanismus, um bestimmte Aktionen zu einer bestimmten Zeit zu erledigen. Intern wird dies System z.B. bei periodischen Berichten verwendet.

Der Käufer hat hier eine flexible Möglichket, das System an eigene Bedürfnisse anzupassen. Man könnte z.B. monatlich alte Probleme löschen, falls diese nicht mehr benötigt werden. Man kann auch eigene Eskalationsmechanismen einbauen, um z.B. schon nach einigen wenigen Minuten (oder Stunden) auf die neu gemeldeten Probleme zu reagieren, falls diese noch nicht in Bearbeitung sind. Der Kreativität sind es hier keine Grenzen gesetzt.

SOAP-Schnittstelle

S.mon bietet eine SOAP-Schnittstelle (Simple Object Access Protocol) für externe Systeme an. Die verfügbaren Funktionen werden in einer WSDL-Datei (Web Services Description Language) beschrieben. Über diese Schnittstelle kann man z.B. neue Probleme im System erzeugen, die Zustände eines bestehenden Problems ändern, sowie Beilagen zu einem Problem abspeichern.

Die SOAP-Schnittstelle dient externen Programmen zur Kommunikation mit S.mon. Man kann z.B. eine eigene Seite im Intranet für Problemmeldung entwerfen, wobei beim Submit über die SOAP-Schnittstelle die Meldung im S.mon gespeichert wird.

Links