Bachelorthesis. Kaiser, Ricky Paul-Jäkel-Straße Chemnitz. Schönherrstraße Chemnitz

Größe: px
Ab Seite anzeigen:

Download "Bachelorthesis. Kaiser, Ricky Paul-Jäkel-Straße 20 09113 Chemnitz. Schönherrstraße 8 09113 Chemnitz"

Transkript

1 Bachelorthesis Performanceoptimierung der Configuration Management Database des Open Source Service Management Systems OTRS unter Berücksichtigung von Indizierung und Partitionierung und Beibehaltung des Meta-DatenModells Vorgelegt am: Von: Kaiser, Ricky Paul-Jäkel-Straße Chemnitz Studiengang: Studienrichtung: Wirtschaftsinformatik Wirtschaftsinformatik Seminargruppe: WI211 Matrikelnummer: 4246 Praxispartner: c.a.p.e IT GmbH Schönherrstraße Chemnitz Gutachter: Dipl.-Math. Rico Barth (c.a.p.e. IT) Prof. Dr. Wolfgang Oehme (Staatliche Studienakademie Glauchau)

2 Themenblatt Seite II

3 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... III Abbildungsverzeichnis... V Tabellenverzeichnis... VI Abkürzungsverzeichnis... VII 1 Aufgabe und Ziel Framework und Komponenten OTRS KIX4OTRS Programmaufbau CMDB CMDB-Modul einer Standard-OTRS-Installation Datenbank Frontend- und Systemmodule Datenbankinteraktion mittels der Systemmodule Entwicklungsstadien von KIXOptimizedCMDB Erste Entwicklungsstufe - Beta Analyse und Optimierungsansätze Datenbankanpassungen Änderung und Erweiterung des Programmcodes Systemmodul-Erweiterung XML.pm Systemmodul XML.pm Module für Tabellenerstellung Test Auswertung Zweite Entwicklungsstufe - Beta Analyse und Optimierungsansätze Datenbankanpassungen Änderungen im Programmcode Systemmodul-Erweiterung XML.pm Systemmodul XML.pm Systemmodul ConfigItem.pm Systemmodul-Erweiterung Version.pm Änderungen der Tabellenerstellung Test und Auswertung Letzte Entwicklungsstufe - Beta Analyse und Optimierungsansätze Datenbankanpassungen Seite III

4 Inhaltsverzeichnis Änderungen im Programmcode Systemmodul XML.pm Änderungen der Tabellenerstellung Test-Script Test und Auswertung Schlussbetrachtung und Ausblick Quellenverzeichnis... 4 Anhangsverzeichnis Seite IV

5 Abbildungsverzeichnis Abbildungsverzeichnis Abbildung 1 Abbildung 2 Abbildung 3 Abbildung 4 Abbildung 5 Abbildung 6 Abbildung 7 Abbildung 8 Abbildung 9 Abbildung 1 Abbildung 11 Abbildung 12 Abbildung 13 Abbildung 14 Abbildung 15 Abbildung 16 Abbildung 17 Abbildung 18 Abbildung 19 Abbildung 2 Abbildung 21 Übersicht des Agenten-Frontend in OTRS... 3 Erweiterung von OTRS durch mehrere Pakete... 4 Schematischer Aufbau von OTRS... 4 Entity-Relationship-Diagramm der OTRS-CMDB... 8 Aufteilung des Systemmoduls der CMDB Beispiel einer Select-Anweisung in OTRS Beispiele für Insert Into, Update und Delete -Anweisungen Erste Anpassung in der Methode _XMLHashSearch() Zweite Anpassung in der Methode _XMLHashSearch() Ausschnitt der Methode XMLHashAdd() des XML-Objektes Ausschnitt der Methode XMLHashGet() des XML-Objektes... 2 Konfigurationsschlüssel für den ereignisbasierten Modulaufruf Beispiel für die Verwendung des PerfLog-Moduls Auskommentierung der Komplett-Abfrage der Tabelle Komplett-Abfrage der Tabelle im Else-Zweig Bestimmung der Suche in der Versionstabelle... 3 Ordnerstruktur und Auswahl der Moduldatei Beispiel einer SQL-Anweisung auf die Versionstabelle Abfrageoptimierung der ConfigItem-Daten Klassen-Tabellenkonfiguration in Beta Ermittlung der ID des xml_content_value-wertes Seite V

6 Tabellenverzeichnis Tabellenverzeichnis Tabelle 1 Tabelle 2 Tabelle 3 Tabelle 4 Tabelle 5 Tabelle 6 Tabelle 7 Tabelle 8 Datenbankstruktur für das CMDB-Modul von OTRS... 9 Wichtige Systemmodul-Dateien XML-Datensatz XML-Datensatz Neue Struktur zur Speicherung der klassenspezifischen Attribute Anzahl der CIs und Versionen der Testdaten Tabellenstruktur der Versionstabelle in der Beta Vergleich Klassen-Tabellen von Beta 2 und Beta Seite VI

7 Abkürzungsverzeichnis Abkürzungsverzeichnis AGPL CI CMDB CSV DBMS DTL ERD GNU ITSM OTRS Affero General Public License Configuration Item Configuration Management Database Comma- oder Character-separated values (Dateiformat) Datenbank-Management-System Dynamic Template Language Entity-Relationship-Diagramm GNU s Not Unix IT-Service-Management Open Ticket Request System Seite VII

8 Aufgabe und Ziel 1 Aufgabe und Ziel Das Ziel dieser Arbeit war es die Performance der Configuration-ManagementDatabase (CMDB)1 des Open Source Ticketsystem OTRS (siehe folgendes Kapitel) erheblich zu steigern. Dadurch sollte vor allem die Suche nach Configuration Items (kurz als ConfigItem oder CI bezeichnet) in großen2 CMDB-Umgebungen verbessert werden. Um dies zu erreichen, mussten strukturelle und programmiertechnische Optimierungen der CMDB entwickelt und umgesetzt werden. Die Aufgabe bestand darin, die, in einer Standard-Installation von OTRS gegebene Datenbankstruktur und die Programmbestandteile für die CMDB zu analysieren. Daraus erkennbare Optimierungsmöglichkeiten der Datenbank und des Programmcodes umzusetzen und in OTRS zu implementieren. Die Verbesserung sollte als eigenständige Erweiterung (in OTRS als Paket bezeichnet) entwickelt, durch weitere Optimierungen weiterentwickelt und auf ihre Wirksamkeit mit Hilfe geeigneter Tests geprüft werden. Das Paket (in der nun finalen Version KIXOptimizedCMDB benannt) muss für den praktischen Einsatz sowohl mit einer Standard-Installation des OTRSFrameworks, also auch mit der Erweiterung KIX4OTRS3 sowie mit beliebigen Datenbanktypen kompatibel sein. Die Optimierungen beschränken sich bezogen auf die Datenbank aber nur auf Änderungen einzelner Tabellen und Einsatz geeigneter Indizes. Anpassungen von datenbankspezifischen Parametern oder Verbesserungen der Datenablage der Datenbankdateien werden nicht betrachtet. Änderungen an diesen Stellen können nicht durch ein in OTRS installierbares Paket vorgenommen werden, sondern müssen entsprechend den verwendeten Systemen vor Ort analysiert und angepasst werden. Im folgenden Kapitel werden das Framework OTRS und die umfangreiche Erweiterung KIX4OTRS erläutert. Dadurch sollen grundsätzliche Zusammenhänge geschaffen und das Verständnis nachfolgender Erklärungen vereinfacht werden. Im weiteren Rahmen dieser Bachelorthesis sind das CMDB-Modul mit seiner Datenbankstruktur und programmtechnische Anbindung einer Standard-OTRSInstallation beschrieben. Danach folgen die einzelnen Entwicklungsschritte der KIXOptimizedCMDB-Erweiterung mit ihren geplanten Optimierungsmöglichkeiten, deren Umsetzung, die Tests und deren Ergebnisse Siehe hierzu Kapitel 2.4 > 2. Configuration Items Näheres dazu im Kapitel 2.2 Seite 1

9 Framework und Komponenten 2 Framework und Komponenten 2.1 OTRS Das Open Ticket Request System (OTRS) ist ein Help Desk System4, das Kunden und Mitarbeitern (sogenannte Agenten) als zentrale Plattform zur Bearbeitung sowie Lösung von gemeldeten Störungen und Service- bzw. Informationsanfragen zur Verfügung steht. Als Open Source Ticketsystem unter der GNU Affero General Public License (AGPL) steht es kostenfrei zum Download bereit 5. OTRS kann unter Linux, Mac und Windows betrieben werden. Nach der Installation und Konfiguration von OTRS kann ein Client (der Benutzer; z.b. ein Servicemitarbeiter), unabhängig von seinem eigenen Betriebssystem, OTRS in jedem beliebigen modernen Webbrowser aufrufen und bedienen.6 OTRS ermöglicht eine strukturierte Erfassung, Einteilung und Weiterverarbeitung von Störungsmeldungen sowie Service- und Informationsanfragen. Solche Meldungen beziehungsweise Anfragen können als oder Telefonanruf eingehen oder direkt im Kunden-Webfrontend von OTRS erstellt werden 7. Dabei erhalten diese eine individuelle Nummer und sind anschließend als sogenanntes Ticket im System hinterlegt. Aufgrund der eindeutigen Identifikationsnummer jedes Tickets können Nachrichten auch bei wechselnden -Verkehr dem Ticket direkt zugeordnet werden. Damit ist ebenfalls jeder Bearbeitungsschritt (z.b. eine Antwort, eine Nachfrage oder eine firmeninterne Kommunikation zwischen zwei Agenten) dokumentiert.8 Dadurch ist es immer möglich, den aktuellen, als auch ältere Bearbeitungsstände des Tickets nachzuvollziehen. OTRS ist mehrsprachig und lässt sich einfach an ein Corporate Design anpassen sowie mit zusätzlichen Funktionen und Modulen (oft in Paketen zusammengefasst) erweitern.9 Abbildung 1 zeigt die Übersicht von OTRS, in welcher der Kopfbereich mit den verschiedenen Modulen, einigen Tickets in unterschiedlichen Kategorien und eine 7-Tage-Statistik dargestellt sind, aus Sicht des SuperUser-Agenten vereinfacht: Software, um Kundenanfragen zu klassifizieren, zu bearbeiten und zu beantworten online: The OTRS Open Source Community, 214 ( ) vgl. OTRS Admin Manual, 213, S. 11/12 online: OTRS Help Desk Software Features, 213 ( ) vgl. OTRS Admin Manual, 213, S. 1 online: Produkte::OTRS, 214 ( ) Seite 2

10 Framework und Komponenten Abbildung Übersicht des Agenten-Frontend in OTRS KIX4OTRS KIX4OTRS (vormals Customer Information and Communication System) ist nach OTRS::ITSM1 die zweitgrößte Erweiterung für OTRS. Es wird von der Firma c.a.p.e. IT GmbH mit Sitz in Chemnitz entwickelt und stetig verbessert. KIX4OTRS erweitert das OTRS-Framework um viele hilfreiche Funktionen und bietet für die wichtigsten Masken (die verschiedenen Oberflächen von OTRS) eine übersichtlichere beziehungsweise detailliertere Darstellung. Darüber hinaus stellt es Schnittstellen zu weiteren nützlichen Tools zu Verfügung und erweitert durch integrierte Zusatzmodule den Funktionsumfang gegenüber einer Standard-OTRSInstallation.11 Das Kernpaket von KIX4OTRS (KIXCore) ermöglicht es mehreren weiteren Paketen bestehende Funktionen von OTRS zu verändern, ohne dafür Dateien überschreiben zu müssen 12. Ohne KIXCore wäre dies lediglich für ein weiteres Paket möglich. Mit KIXCore werden durch Priorisierung die installierten Pakete in eine Hierarchie gebracht. Bei gleichnamigen Modulfunktionen nimmt OTRS nun die entsprechende Datei aus dem höchst-priorisierten Paket. Gibt es in diesem Paket die Datei nicht, weil dieses Paket diese Funktion nicht überschreibt, wird die Datei in dem nächst-niedriger-priorisiertem Paket gesucht. Dies geht solange, bis OTRS IT-Service-Management Paket: beinhaltet unter anderem das CMDB-Modul online: Produkte::KIX4OTRS, 214 ( ) vgl. KIXCore.pod, 213 Seite 3

11 Framework und Komponenten schließlich die Standardfunktion im OTRS-Ordner verwendet werden muss. Abbildung 2 zeigt eine schematische Darstellung dieses Ablaufs, bei dem beispielsweise die Modulfunktion A geladen werden soll. Dabei muss in den Paketen die selbe Ordnerstruktur enthalten sein (je nachdem welche Ordner benötigt werden) wie im Standard-OTRS-Ordner. KIXOptimizedCMDB nutzt die Funktionalität der Priorisierung und setzt dadurch die vorherige Installation des KIXCore-Paketes voraus. Abbildung Erweiterung von OTRS durch mehrere Pakete Programmaufbau Der Aufbau jedes Paketes beziehungsweise der einzelnen Modulfunktionen in OTRS kann mit drei Komponenten beschrieben werden. Diese sind die Konfiguration (1), die Funktionen (2) und zusätzliche Bestandteile (3), zum Beispiel für die Darstellung. Abbildung 3 soll den Aufbau anhand einer vereinfachten schematischen Darstellung der Ordnerstruktur13 von OTRS für die nachfolgenden Erklärungen verständlicher gestalten. Abbildung 3 13 Schematischer Aufbau von OTRS Das Kernel-Verzeichnis und alle benötigten Unterordner mit den jeweilig zu ersetzenden Dateien müssen in Paketen, die mit KIXCore registriert sind, ebenfalls enthalten sein. Seite 4

12 Framework und Komponenten Der erste Teil ist die Konfiguration des jeweiligen Moduls. Diese wird durch mindestens eine XML-Datei, die sogenannte Schlüssel beinhaltet, beschrieben und während des Programmablaufs ausgewertet. Die Schlüssel beschreiben unter anderem die Registrierung des Moduls. Diese umfasst Angaben zu notwendigen Rechten des Benutzers und in welchen Oberflächen das Modul bzw. die Funktion(en) genutzt werden kann.14 In diesen Schlüsseln können darüber hinaus auch benötigte Komponenten, wie CSS- oder JavaScript-Dateien, für das jeweilige Modul angegeben sein. Weitere Schlüssel bestimmen zum Beispiel vordefinierte Parameter wie Größen von Dialogfenstern, anzuzeigende Bilder oder Schnittstellen für Programmanbindungen. Mit Hilfe der Systemkonfiguration (kurz: SysConfig) in der Admin-Oberfläche kann die Konfiguration bei Bedarf nachträglich angepasst werden15. Nicht jedes Paket benötigt SysConfig-Schlüssel um zu funktionieren. Zum Beispiel, wenn das Paket nur bestehende Funktionen erweitert oder verändert. Bei KIXOptimizedCMDB ist das der Fall. Dieses Paket hat lediglich einen Schlüssel, um auf einen bestimmten Auslöser zu reagieren und dafür entsprechende Funktionen auszuführen (näheres dazu in Kapitel ). Die zweite Komponente eines Moduls 16 sind die Funktionen. Diese sind in der Programmiersprache Perl geschrieben. Perl, ursprünglich für Textverarbeitung entwickelt, ist heute in vielen Bereichen wie beispielsweise in der Systemadministration, Web- und Netzwerkprogrammierung in Gebrauch. Sie eignet sich sowohl für prozedurale, also auch objektorientierte Programmierung und ist dabei schnell, übersichtlich und effizient einsetzbar. 17 Die einzelnen Funktionen von OTRS sind als Perl-Module (Dateien mit der Endung.pm ) zusammengefasst und in verschiedenen Ordnern des Frameworks hinterlegt. Methoden, die nur das Modul selbst benötigt und Operationen, die den Funktionsumfang des Moduls beschreiben, sind im Ordner Module von OTRS enthalten. Diese Dateien werden als sogenannte Frontend-Module bezeichnet18. Auf diese Dateien greift OTRS zu, wenn das jeweilige Modul (zum Beispiel die Übersicht) durch einen Benutzer aufgerufen wird. Methoden, die hingegen systemspezifische Aufgaben, wie beispielsweise Datenbankabfragen durchführen, befinden sich im System -Ordner und werden als Systemmodule bezeichnet19. Auf die darin enthaltenen Funktionen können und müssen andere Module zugreifen, wenn sie modul-unabhängige oder systemweite Operationen ausführen wollen. Jedes Systemmodul wird dabei mittels des use-befehls mit vgl. OTRS Developer Manual, 213, S. 3 vgl. OTRS Admin Manual, 213, S. 96 ( ) zum Verständnis: Mit Modul kann eine einzelne Programmfunktion (z.b. die Übersicht) oder einzelne Frontend- bzw. Systemmodule (die Perl-Module) gemeint sein. vgl: KIRRILY, 213 ( ) vgl. OTRS Developer Manual, 213, S. 5 / 31 vgl. OTRS Developer Manual, 213, S. 4 / 32 Seite 5

13 Framework und Komponenten Modulpfad und -name (z.b. use Kernel::System::DB) eingebunden und über seine jeweilige new() -Methode als Objekte instanziiert (z.b. DBObject oder ITSMConfigItemObject). Dadurch kann das Frontend-Modul auf die enthaltenen Funktion des System-Objektes zugreifen (in Form von Object->Funktion()). Dies entspricht dem objektorientierten Aufbau moderner Software. Die Systemmodule können durch zusätzliche Perl-Module erweitert werden, wenn diese sich in einem Ordner (unterhalb des System-Ordners) befinden, der die selbe Bezeichnung wie das Systemmodul besitzt. Dadurch gehören alle darin enthaltenen Dateien dem selben Namensraum des Systemmoduls an. Damit kann auf die Methoden dieser Dateien zugegriffen werden, als wenn diese im instanziierten Systemmodul enthalten wären. Da das Paket KIXOptimizedCMDB lediglich nur Systemfunktionen ersetzt, beinhaltet es keine eigenen Frontend-Module. Die dritte Komponente umfasst alle Bestandteile, die nicht zwingend in einem Modul beziehungsweise Paket enthalten sein müssen und sich fast ausschließlich mit dem Layout befassen. Zum Beispiel alle Oberflächen von OTRS werden mit Hilfe der OTRS-eigenen DTL-Dateien (Dynamic Template Language) erzeugt. Diese dienen als Vorlagen, die mit Daten aus den Frontend bzw. sogenannten Layout-Modulen gefüllt und beim Aufruf des Moduls in HTML-Seiten umgewandelt werden 2. Andere Bestandteile sind CSS-Dateien, für Layout-relevante Angaben, wie Farben und Größen definieren und die Javascript-Funktionen. Diese ermöglichen dynamisch die sichtbare Oberfläche des Moduls, also den Browserinhalt zu verändern, auszuwerten und gegebenenfalls an ein Frontend-Modul, mittels Ajax-Aufruf weiterzugeben. Ein weiteres Element sind alle Übersetzungen des Moduls. Diese werden im LanguageOrdner in einzelnen, nach Sprachen und Benutzer (Agent oder Kunde) separierten Perl-Modulen (z.b. de_agentmodulname.pm) hinterlegt CMDB Die CMDB in OTRS ermöglicht den Zugriff und die Verwaltung von Configuration Items. Als CI werden dabei im IT-Management sämtliche Betriebsmittel, wie zum Beispiel Computer, Telefone oder auch Standorte und Netzwerke bezeichnet, die an den Geschäftsprozessen der IT beteiligt sind.22 Das Modul besteht aus mehreren Frontend-Modulen, den dazugehörenden LayoutTemplates und einem Systemmodul, das auf mehrere Dateien aufgeteilt ist. Außerdem sind die Daten der gespeicherten Configuration Items auf mehreren Tabellen der von OTRS genutzten Datenbank verteilt. OTRS erlaubt die vgl. OTRS Developer Manual, 213, S. 27 vgl. OTRS Developer Manual, 213, S. 37 vgl. KIX4OTRS Anwenderhandbuch, 214, S. 82 Seite 6

14 Framework und Komponenten Anbindungen an verschiedene relationale Datenbanksystemen, unter anderem zu MySQL, PostgreSQL, Oracle oder auch Microsoft SQL Server.23 Für die Test des KIXOptimizedCMDB-Paketes wurden bis jetzt nur die Datenbank-ManagementSysteme (DBMS) PostgreSQL und MySQL verwendet. Die CMDB, insbesondere das CMDB-Modul, ist keine Datenbank im technischen Sinne, sondern geht darüber hinaus24. Es dient nicht nur der einfachen Speicherung der Configuration Items, sondern bietet eine Übersicht über alle vorhanden CIs in der Web-Oberfläche und ermöglicht es neue CIs zu erstellen, zu bearbeiten und zu verknüpfen, um logische Zusammenhänge wie z.b. Netzwerke abbilden zu können. Dafür stellt OTRS vordefinierte CI-Klassen zur Verfügung. Es ist aber auch möglich weitere Klassen mit jeweils eigenen Attributen über die Admin-Oberfläche zu definieren25. Jede Änderung an einem CI wird als neue Version angelegt, dadurch können jederzeit auch ältere Konfigurationen des CIs eingesehen werden. Wie bei Tickets sind die einzelnen Bearbeitungsschritte zusätzlich in einer Historie dokumentiert.26 Jedes ConfigItem in OTRS hat bestimmte Pflichtattribute. Diese sind der Name, die Nummer (wird automatisch generiert), der Vorfall- und der Verwendungsstatus. Da die Pflichtattribute CI-Klassen-unabhängig sind, müssen diese nicht in der Klassendefinition beschrieben sein. Der Vorfallstatus kann vordefiniert beispielsweise die Werte Operativ, Warnung oder Vorfall annehmen. Dies zeigt an, ob mit dem jeweilige CI alles in Ordnung ist. Der Verwendungsstatus kann unter anderem die Werte Geplant, Produktiv, Abgelaufen oder In Reparatur annehmen und präzisiert dadurch den Status des CIs. Alle anderen Attribute wie zum Beispiel Typ, Seriennummer, Festplatte, IP, oder Telefonnummer sind klassenspezifisch und in der Klassendefinition konkretisiert. Das heißt, darin kann z.b. angegeben werden, durch welche Art von Eingabe- oder Auswahlfeld sie in einer Maske beschreibbar sind oder, ob nach diesen Attributen gesucht werden kann. In dem folgendem Kapitel wird das CMDB-Modul von OTRS, bezüglich Datenbankstruktur, Frontendmodule und programmiertechnisch Datenbankanbindung über die Systemmodule, genauer betrachtet online: OTRS::ITSM Features, 213 ( ) vgl. OTRS ITSM Manual, 213, S.18 vgl. OTRS ITSM Manual, 213, S.64 vgl. KIX4OTRS Anwenderhandbuch, 214, S Seite 7

15 Framework und Komponenten CMDB-Modul einer Standard-OTRS-Installation Datenbank An den Daten für ein CI sind insgesamt acht Tabellen beteiligt. Abbildung 4 zeigt ein Entity-Relationship-Diagramm (ERD)27 der acht Tabellen. Abbildung 4 Entity-Relationship-Diagramm der OTRS-CMDB Obwohl nicht alle acht Tabellen durch die Optimierung mit KIXOptimizedCMDB berührt werden, soll die folgende Tabelle 1 dennoch einen Gesamtüberblick der Tabellen mit ihrer jeweiligen Funktion und Inhalt geben, um einen Eindruck der Komplexität des CMDB-Moduls zu vermitteln. Dort, wo es für nachfolgende Kapitel relevant ist, sind die einzelnen Spalten der Tabelle unter den Erklärungen angegeben. Für die mit einem * versehenen Spalten existiert jeweils ein Index. Tabellenname Funktion / Inhalt configitem (nachfolgend als CI- bzw. ConfigItem-Tabelle bezeichnet) In dieser Tabelle sind die einzelnen CIs mit ihren klassenunabhängigen Attributen gespeichert. Dazu gehören ihre Nummer, die ID der jeweiligen Klasse (als Fremdschlüssel), die ID ihrer aktuellen Version und die IDs für ihre derzeitigen Verwendungs- und Vorfallstatus. Darüber hinaus ist enthalten, wer das CI erstellt beziehungsweise geändert hat (Agenten-ID) und wann dies geschehen ist. configitem_counter Diese Tabelle enthält die aktuelle Anzahl der ConfigItems pro Klasse als Integer. Das ist ein Datentyp, der vier Byte umfasst und nur ganze Zahlen bis fast 4,3 Mrd. (unsigned nur positive Werte) zulässt erstellt mit PHPMyAdmin (Programm zu Datenbankverwaltung von MySQL im Browser) vgl. MySQL 5.7 Reference Manual, 214, S. 195 Seite 8

16 Framework und Komponenten Tabellenname Funktion / Inhalt configitem_definition In dieser Tabelle sind die Klassendefinitionen enthalten. configitem_history Hierin werden alle Änderungen an den einzelnen Configuration Items gespeichert. Diese Daten sind in der Historien-Funktion eines betrachteten CIs abrufbar. configitem_history_type Diese Tabelle enthält alle mögliche Typen, die einem neuen Historieneintrag zugewiesen werden können. Dies sind beispielsweise ConfigItemCreate, NameUpdate und LinkAdd. configitem_version (nachfolgend als Versionstabelle bezeichnet) Darin sind sämtliche Versionen aller ConfigItems enthalten. Eine Zuordnung zum jeweiligen CI ist über dessen ID als Fremdschlüssel gegeben. Die Spalten depl_state_id und inci_state_id speichern die, in dieser Version des ConfigItems, aktuellen Verwendungs- und Vorfallstatus. id*, configitem_id*, name, definition_id*, depl_state_id*, inci_state_id*, create_time, create_by* general_catalog Dies Tabelle enthält, ihrer Bezeichnung nach (dt. vereinfacht: allgemeiner Katalog ) neben den CMDBrelevanten Einträgen auch viele Daten für andere Bestandteile von OTRS. Für die CMDB werden hierin die Klassen selbst und spezielle Attribute der Klassen registriert und angegeben. Diese Attribute können darin mit vorgegeben Werte versehen werden (z.b. Typ eines Computer: Desktop, Server, ). xml_storage (nachfolgend als XMLTabelle bezeichnet) In dieser Tabelle werden alle CI-Klassen-spezifischen Attributwerte, die in der Definition angegeben sind gespeichert. Aber auch hier können Daten weiterer Module von OTRS enthalten sein. In der Spalte xml_type wird der Typ des Objektes gespeichert. Für ConfigItems kann dies zum Beispiel folgendermaßen aussehen: ITSM::ConfigItem::22 (die Zahl ist die KlassenIdentifikationsnummer). Die Spalte xml_key beinhalten die ID des Objektes. Bei CIs ist dies die Versions-ID. xml_type*, xml_key*, xml_content_key, xml_content_value Tabelle 1 Datenbankstruktur für das CMDB-Modul von OTRS Seite 9

17 Framework und Komponenten Die Klassendefinitionen ist als Kombinationen von Arrays und Hashes (ein sogenanntes Array of Hashes29) als Datentyp Varchar (variable character Zeichenfolgen unterschiedlicher Länge3) in der Datenbank gespeichert. Ein Array ist in Perl eine Variable, die eine Liste mit numerischen geordnete Indizes enthält 31. Ein Hash (in anderen Programmiersprachen auch als assoziatives Array oder einfach als Objekt bezeichnet) enthält ebenfalls eine Liste. Diese ist aber ungeordnet und die Indizes (Schlüssel) sind Strings, also Zeichenfolgen 32. Anhang 1 zeigt eine Klassendefinition anhand eines sehr einfachen Beispiels mit nur drei Attributbeschreibungen. Die Arrays sind darin Perl-typisch mit eckigen und die Hashes mit geschweiften Klammern dargestellt. Die Content-Daten in der xml_content_key-spalte der XML-Tabelle haben für ConfigItems am Beispiel des Attributs Type folgende Form: [1]{'Version'}[1]{'Type'}[1]{'Content'} Dieser Aufbau ist der Klassendefinition geschuldet. Dadurch ist es möglich das Array of Hashes ohne Umwege während des Programmablaufs aufzubauen. Dies vereinfacht anschließend eine Zuordnung zur Klassendefinition und damit eine weitere Verarbeitung. In einem Frontend-Modul (z.b. das um CIs anzuzeigen) wird dabei abgeglichen, ob die einzelnen Attribute der Definition (anhand des Key-Wertes) in den, aus der XML-Tabelle ausgelesenen Daten vorhanden sind. Gibt es für ein Attribut einen gespeicherten Wert, wird dieser entsprechend seines definierten Typs (Type in der Definition) ggf. aufbereitet. Dies ist zum Beispiel bei General-CatalogAttributen der Fall. In der Datenbank ist für dieses Attribut nur eine ID gespeichert und muss nach dem Auslesen in den anzuzeigenden Wert umgewandelt werden. Für das Attribut Type in der Beispiel-Klassendefinition im Anhang 1 ist beispielsweise eine 26 in der Datenbank hinterlegt. Diese Zahl ist wiederum eine ID eines GeneralCatalog-Elementes, welches anschließend in der Datenbank abgefragt wird und zum Beispiel das Wort Drucker an das Frontend-Modul zurückliefert. Dieser Wert kann dann der DTL-Datei übergeben werden, damit ein Benutzer nicht eine 26, sondern Drucker beim Betrachten eines ConfigItems sehen kann ein Array, das Hashes beinhaltet;...die in diesem Fall wieder ein Array beinhalten, usw. vgl. MySQL 5.7 Reference Manual, 214, S. 111 vgl. SCHWARTZ; PHOENIX, 24, S. 45 vgl. SCHWARTZ; PHOENIX, 24, S. 81 Seite 1

18 Framework und Komponenten Frontend- und Systemmodule Das CMDB-Modul hat mehrere Frontend-Module, die unterschiedliche Funktionen erfüllen. Es gibt ein Modul, das ausschließlich die Klassendefinitionserstellung und -bearbeitung in der Admin-Oberfläche ermöglicht. Die weiteren Module erlauben es Agenten jeweils ConfigItems anzuzeigen, zu suchen, anzulegen, zu bearbeiten, deren Historie zu öffnen und die Daten einer oder aller Versionen des CI auszudrucken bzw. als PDF abzuspeichern. Darüber hinaus gibt es noch einige Layout-Module. Diese enthalten Funktionen, die die unterschiedlichen Eingabe- und Auswahlfelder in den Masken der Programmoberfläche entsprechend vorbereiten 33. Das CMDB-Systemmodul besteht aus einer Perl-Modul-Datei (ITSMConfigItem.pm), die direkt im System-Ordner liegt und mehreren weiteren Dateien, die sich in einem gleichnamigen Ordner (ITSMConfigItem/...) unterhalb des System-Ordners befinden. Für KIXOptimizedCMDB sind in der aktuellen Version aber nur die Hauptdatei und zwei Erweiterungsmodul-Dateien (Version.pm und XML.pm) relevant. Darüber hinaus ist für die Speicherung der klassenspezifischen Attribute der ConfigItems das XMLSystemmodul (XML.pm XML-Objekt) notwendig. Abbildung 9 stellt die Zusammensetzung des Systemmoduls schematisch dar. Darin ist zuerkennen, dass von der Hauptmodul-Datei (ITSMConfigItem.pm) alle weiteren Bestandteile angesprochen werden und diese anschließend mittels des DB-Systemmoduls (DB.pm DB-Objekt) mit der Datenbank interagieren können. Pfeile zu und von den drei Bestandteilen mit den grauen Erklärungen (der XML und... -Ordner und die... -Perl-Module) sind bewusst weggelassen worden, um die Übersichtlichkeit bewahren zu können. Abbildung 5 33 Aufteilung des Systemmoduls der CMDB z.b. vorgegebenen Werte für Dropdown-Menüs aus der general_catalog-tabelle laden und ggf. filtern und übersetzen. Seite 11

19 Framework und Komponenten Die folgende Tabelle beschreibt die drei relevanten Dateien des CMDB-Moduls und zusätzlich das XML-Modul (XML-Objekt) und fasst ihre jeweiligen Funktionen kurz zusammen. Alle anderen Dateien, die die Hauptdatei erweitern, sind darin nicht aufgeführt. Diese werden durch KIXOptimizedCMDB nicht verändert und sind deshalb für ein Verstehen nachfolgender Kapitel nicht notwendig. Datei Funktion ITSMConfigItem.pm Das ist das eigentliche Systemmodul. Hier sind die Datenbankzugriffe für das Anlegen und Bearbeiten sowie zum Laden und Suchen der CIs enthalten. Das Modul spricht aber selbst nur die CI-Tabelle, mit Hilfe des DB-Objektes (DB.pm) an. Wenn Interaktionen mit der Versionstabelle oder der XML-Tabelle notwendig sind, verweist das Modul auf eigene Methoden, die in den entsprechenden Erweiterungsmodulen enthalten sind. ITSMConfigItem/ Version.pm Dieses Modul enthält die Methoden, die mit der Versionstabelle interagieren müssen. ITSMConfigItem/ XML.pm In dieser Datei werden die Abfragen behandelt, die auf die klassenspezifischen Attribute abzielen. Da auf die XML-Tabelle auch andere Programmteile von OTRS zugreifen, nutzt dieses Modul abgesehen für die Suche (siehe Kapitel 3.1.3) die Funktionen des XMLModuls im System-Ordner. XML.pm Das ist das XML-Systemmodul (XML-Objekt). Darin sind die Methoden enthalten, die mit der XML-Tabelle interagieren und dadurch das Speichern und Auslesen von klassenspezifischen Attributen der ConfigItems ermöglichen. Tabelle 2 Wichtige Systemmodul-Dateien Seite 12

20 Framework und Komponenten Datenbankinteraktion mittels der Systemmodule In OTRS werden alle Select-Anweisungen mit Hilfe zweier Funktionen des DBObjektes durchgeführt. Dieses wiederum verwendet für die Verbindung zur Datenbank und zur Vorbereitung und Ausführung eines SQL-Statements das PerlErweiterungsmodul DBI. Diese Erweiterung stellt Schnittstellen zu den meisten Datenbanken und Funktionen zur Interaktion mit den Datenbanken für PerlProgramme zur Verfügung34. Abbildung 6 Beispiel einer Select-Anweisung in OTRS Durch die erste Funktion (Prepare(), Zeile 2 in Abbildung 6) wird der übergebene SQL-String auf Fehler geprüft und entsprechend der angebundenen Datenbank aufbereitet (z.b. datenbankspezifische Positionen und Bezeichnungen von Parametern). Anschließend führt das DB-Objekt die Anfrage aus. Sind bei einem SQL-Statements zusätzlich Bedingungen (Where) zu prüfen, werden die Werte35 dafür mit einem Fragezeichen als Platzhalter im Statement ersetzt und mit dem Bind-Parameter als Referenz36 übergeben (siehe Zeilen 4). Durch Übergabe mittels Bind-Parameter müssen Werte bzw. enthaltene Zeichen nicht mehr zusätzlich maskiert werden.37 Die übergebenen Parameter können so auch nicht mehr als eigenes SQL-Statement von der Datenbank interpretiert werden, wodurch z.b. SQLInjection38 verhindert werden können39. Die zweite Funktion für Select-Statements ist FetchrowArray(). Diese Funktion liefert jeweils einen einzelnen Datensatz als Array (Liste der Inhalte der Spalten) der zuvor, mit Prepare() ausgeführten Abfrage zurück. Um sämtliche Datensätze zu erhalten, wird die Funktion innerhalb der Bedingung einer While-Schleife (Zeile 1) aufgerufen. Im Schleifeninhalt kann anschließend das übergebene Array ausgewertet werden. Im vgl. CHRISTIANSEN; TORKINGTON, 26, S vor allem, wenn diese aus langen Zeichenfolgen bestehen nicht der Wert der Variable, sondern ein Verweis die Variable vgl. OTRS Developer Manual, 213, S. 11/12 Oftmals böswilliges Einbringen von zusätzlichen SQL-Statements, um Schaden anzurichten oder unerlaubt Kontrolle über die Datenbank oder Teile davon zu erhalten. online: DBI: Placeholders and Bind-Values, 214 ( ) Seite 13

21 Framework und Komponenten Beispiel wird der Inhalt der SpalteA der Tabelle (z.b. die ID) zum Schlüssel des Hashs und der Inhalt der SpalteB zum Wert. Durch die Programmcode-Anweisung return if!$self... wird dem aufrufendem Modul kein Wert (undef 4) zurückgegeben, um dem Modul gegebenenfalls anzuzeigen, dass ein SQL-Statement nicht erfolgreich ausgeführt werden konnte. Das trifft aber nur zu, wenn es zu einem Fehler (beispielsweise existiert die Tabelle nicht) kam. Gibt es lediglich keinen passenden Datensatz, wird anschließend nur ein leerer Hash zurückgegeben. Die SQL-Anweisungen für Update, Insert Into und Delete werden, analog der Funktion Prepare(), mit Hilfe der Funktion Do() ausgeführt, siehe Abbildung 7. Abbildung 7 4 Beispiele für Insert Into, Update und Delete -Anweisungen undefiniert kein Rückgabewert, nichts Seite 14

22 Entwicklungsstadien von KIXOptimizedCMDB 3 Entwicklungsstadien von KIXOptimizedCMDB 3.1 Erste Entwicklungsstufe - Beta Analyse und Optimierungsansätze Die erste Optimierung des CMDB-Moduls betrachtet nur die XML-Tabelle, da dort die meisten Daten eines CIs gespeichert werden. Zwar sind die Spalten xml_type und xml_key der Tabelle mit Indizes versehen, um Abfragen nach Typ (und bei CIs auch Klasse) und der Versions-ID zu beschleunigen. Dennoch ist dies bei sehr vielen Datensätzen nicht ausreichend, da der Suchraum dabei zu umfangreich ist. Eine Optimierungsmöglichkeit zielt deshalb darauf ab, die XML-Tabelle auf kleinere Tabellen aufzuteilen. Die Daten für die ConfigItems sollen dafür aus der XML-Tabelle herausgelöst und in jeweils eigene Tabellen hinterlegt werden. Dies verkleinert den zu durchsuchenden Raum und erlaubt dadurch eine effizientere Nutzung des Datenbank-Caches und verhindert gegebenenfalls Auslagerungen auf die Festplatte. Darüber hinaus sollen dabei auch die aktuellen Werte (Live-Daten) von den Daten vorheriger Versionen (Historien-Daten) getrennt werden, um die oft ausgeführten Suchen nach gegenwärtigen Versionen von CIs zusätzlich beschleunigen. Eine Analyse der gespeicherten Daten ergab zudem, dass diese inhaltlich redundant gespeichert sind. Das heißt, für eine Wertzuordnung werden jeweils zwei Datensätze benötigt, die nahezu identische Inhalte besitzen. Die folgenden zwei Tabellen zeigen den gespeicherten Typ eines Computers, bestehend aus zwei Datensätzen. Dabei sind die Spalten der XML-Tabelle als Zeilen angegeben, um es übersichtlicher darstellen zu können. xml_type ITSM::ConfigItem::22 xml_key 1 xml_content_key [1]{'Version'}[1]{'Type'}[1]{'TagKey'} xml_content_value [1]{'Version'}[1]{'Type'}[1] Tabelle 3 XML-Datensatz 1 xml_type ITSM::ConfigItem::22 xml_key 1 xml_content_key [1]{'Version'}[1]{'Type'}[1]{'Content'} xml_content_value 47 Tabelle 4 XML-Datensatz 2 An diesem Beispiel ist die inhaltliche Redundanz gut zu erkennen. Die zwei ContentSpalten des ersten und die content-key-spalte des zweiten Datensatzes sind nahezu gleich. Deshalb ließe sich der erste Eintrag anhand des Unterschieds im letzten Teil Seite 15

23 Entwicklungsstadien von KIXOptimizedCMDB (TagKey) herausfiltern und weglassen. Der zweite Datensatz muss dafür programmiertechnisch anders ausgewertet werden, um das Fehlen des ersten auszugleichen und dadurch nicht zu große Veränderung im Programmcode für die nachträgliche Auswertung vornehmen zu müssen Datenbankanpassungen Ausgehend von der beschriebenen Optimierungsmöglichkeit der Aufteilung der XMLTabelle wurden für jede CI-Klasse drei neue Tabellen definiert, die in Tabelle 5 beschreiben sind. Für die mit einem * versehenen Spalten existiert ein Index. Name Spalten Funktion ci_id_content dict_id* xml_key* xml_content_value Beinhaltet alle klassenspezifischen Attribute der aktuellen Version. ci_id_content_archive dict_id* xml_key* xml_content_value Beinhaltet alle klassenspezifischen Attribute der vorherigen Versionen. ci_id_dict id* xml_content_key* Beinhaltet alle klassenspezifischen Attributschlüssel. Tabelle 5 Neue Struktur zur Speicherung der klassenspezifischen Attribute Die Spalte dict_id der Content-Tabellen enthalten Werter der Spalte id der DictionaryTabelle41. Die Spalten fungieren also wie Fremdschlüssel, sind aber keine und haben dadurch nicht die entsprechende Nicht-Löschbar -Bedingung. Fremdschlüssel sind nicht notwendig, weil auf die Dictionary-Tabelle niemals löschend zugegriffen wird. Die Dictionary-Tabelle wurde eingeführt, weil die Werte für xml_content_key sich so gut wie nie ändern. Dies ist nur dann der Fall, wenn die Klassendefinition geändert wird. Zudem lassen sich dadurch die Indizes der Tabellen effizienter nutzen. Durch diese Aufteilung in die einzelne Tabellen pro Klasse ist die Spalte xml_type der Ausgangstabelle nun zu einem Tabellenkonstrukt geworden. Damit verringert sich der zu durchsuchende Raum für Abfragen erheblich und verbessert dadurch die Geschwindigkeit für Suchanfragen (siehe Tests in Kapitel 3.1.4). Für die Kombinationen der Dictionary-Tabelle und den Content-Tabellen existiert jeweils ein eigener View. Dadurch können die meisten Abfragen vom System nahezu unverändert bleiben, weil der View, bis auf die xml_type-spalte die selbe Struktur wie die XML-Tabelle nach außen zeigt. Dadurch muss sich das Modul nicht selbst mit komplizierten Tabellen-Joins42 beschäftigen, sondern kann den View wie eine engl. Wörterbuch, Verzeichnis; Die Tabelle kann als Verzeichnis verstanden werden. Verbindung zweier Tabellen über ein bestimmtes Attribut Seite 16

24 Entwicklungsstadien von KIXOptimizedCMDB eigenständige Tabelle43 ansprechen.44 Da beim Öffnen eines CIs oder der Anzeige einer bestimmten Version alle Daten anhand der Versions-ID (= xml_key) geladen werden müssen, besitzt diese Spalte xml_key einen Index. Für die Zuordnung und damit schnelles Auffinden über xml_content_key-werte ist auch die dict_id-spalte mit einen Index versehen. Damit die Datenbankoptimierungen auch von OTRS verwendet werden können, war es notwendig eine Methode der CMDB-Systemmodul-Erweiterung XML.pm und mehrere Funktionen des XML-Objektes anzupassen. Im folgenden Kapitel sind einige der Änderungen an den Modulen detaillierter beschrieben Änderung und Erweiterung des Programmcodes Systemmodul-Erweiterung XML.pm Die Anpassungen in der Systemmodul-Erweiterung XML.pm betreffen ausschließlich die Methode _XMLHashSearch(). Diese Methode erzeugt für die Suche nach bestimmten Attributen aus den erhaltenen Parametern einen SQL-String. Sie kann dabei auch Vergleichsoperationen, wie beispielsweise kleiner, kleiner-gleich, nichtgleich oder zwischen auswerten und macht dadurch Bereichsabfragen möglich. Bereichsabfragen sind Select-Anweisungen mit Bedingungen, die Spalten z.b. nach von-bis oder alles-älter-als durchsuchen. Dadurch werden nur Datensätze bzw. Tupel45 zurück geliefert, deren zu betrachtendes Attribut nur innerhalb eines bestimmten Intervalls liegt46. Änderungen wurden an zwei Positionen der Funktion vorgenommen, die in den Abbildungen 8 und 9 dargestellt sind. Abbildung Erste Anpassung in der Methode _XMLHashSearch() Views können als virtuelle (nicht physisch vorhandene) Tabelle verstanden werden. vgl. UNTERSTEIN; MATTHIESSEN, 212, S. 196 Synonym für Datensatz bzw. Ausschnitt eines Datensatzes vgl. HEUER; SAAKE, 2, S. 349 Seite 17

25 Entwicklungsstadien von KIXOptimizedCMDB Die Kommentare (Zeilen 622 und 637), die den Paketnamen (in Beta 1 noch CMDBSpeedup) enthalten, zeigen Programmierern, wo die Änderung durch die Optimierungen anfängt und endet (EO end of). Der große Block grau-gefärbter Zeilen (Zeilen 623 bis 626) ist auskommentiert und wird deshalb nicht ausgeführt. Diese Zeilen enthalten den ursprünglichen Programmcode von OTRS, während die farbigen Zeilen in der Abbildung den neu eingefügten Programmcode darstellen. Die Abbildung 9 zeigt eine Select-Anweisung, die alle xml_key-werte anhand des Typs47 ohne eingrenzende Bedingungen ermittelt. Im Standard-Programmcode wurde der Typ einfach als Parameter übergeben, um die XML-Tabelle entsprechend durchsuchen zu lassen. Durch die Optimierung wird aus dem Typ-Parameter mittels regulärem Ausdruck (Zeile 628) die Klassen-ID heraus gefiltert. Reguläre Ausdrücke (kurz: RegEx48) erlauben Mustererkennungen, bei der festgelegte Zeichen als Platzhalter (beispielsweise \w für alle alphanumerischen Zeichen und dem Unterstrich) angegeben werden49. Mit der Klassen-ID wird der Variable $ClassView die jeweilige View-Bezeichung der entsprechenden CI-Klasse zugewiesen. In den Zeilen 63 bis 632 überprüft erneut ein regulärer Ausdruck, ob gegebenenfalls nach älteren Versionen gesucht werden soll. Ist dies der Fall, bekommt die Variable $ClassView die der Klasse entsprechende Archiv-View-Bezeichnung zugewiesen. Abbildung Zweite Anpassung in der Methode _XMLHashSearch() für ConfigItems in der Form ITSM::ConfigItem::Klassen-ID regular expression vgl. CHRISTIANSEN; TORKINGTON, 26, S. 19/198 Seite 18

26 Entwicklungsstadien von KIXOptimizedCMDB In Abbildung 9 werden nochmals alle xml_key-werte ausgelesen. Diesmal sind dem SQL-Statement aber Bedingungen angefügt, um nur bestimmte Datensätze zu erhalten. Durch die Optimierung wird dafür wieder der weiter oben festgelegte Klassen-View benutzt. Innerhalb der While-Schleife gleicht die Methode die ausgelesenen Daten mit den zuvor ermittelten Werten ab. Nur, wenn das Element auch in dem erst erzeugten Hash (%Hash) enthalten ist (Zeile 751), werden sie dem neuen Hash (%NewHash) hinzugefügt. Am Schluss gibt die Methode den Hash an das aufrufende Modul zurück Systemmodul XML.pm Programmcodeanpassungen des XML-Systemmoduls mussten in den Funktionen XMLHashAdd(), XMLHashGet(), XMLHashMove() und XMLHashList() vorgenommen werden. Auch hier beziehen sich die Änderungen darauf, dass die SQL-Anweisungen auf die neuen klassenbezogenen Tabellen bzw. Views zugreifen und nicht mehr die XML-Tabelle verwenden. Abbildung 1 zeigt eine zusätzliche Prüfung mittels RegEx (Zeile 156). Diese bestimmt, ob das XML-Objekt wirklich vom CMDB-Modul und nicht durch ein anderes OTRS-Modul aufgerufen wurde. Diese Abbildung stellt einen Ausschnitt der Methode XMLHashAdd() dar. Diese Funktion legt neue Datensätze (z.b. die Attribute einer neuen Version eines CIs) in der XML-Tabelle bzw. nach der Optimierung in den Klassen-Tabellen an. Die Zeilen 16 bis 162 enthalten die Filterung für die überflüssigen doppelten Datensätze (siehe Kapitel 3.1.1). Enthält ein zu speichernder Wert die Buchstabenfolge TagKey5, wird die Anweisung next; ausgeführt. Dadurch beendet die Methode den aktuellen Schleifendurchlauf und unterbindet damit eine Speicherung des Wertes. Ist ein Wert zulässig, wird versucht aus der Dictionary-Tabelle eine ID für den xml_content_key zu ermitteln (Zeilen 164 bis 167). Kann kein entsprechender Datensatz gefunden werden, legt die Methode einen neuen an und liest die neue ID dafür aus. Anschließend wird der xml_content_value-wert mit dazugehöriger ID des xml_content_key-wertes und dem xml_key-wert (aktuelle Versions-ID) in der Content-Tabelle gespeichert. Abbildung 1 5 Ausschnitt der Methode XMLHashAdd() des XML-Objektes Text, der in dem überflüssigen Datensatz enthalten ist, mittels RegEx geprüft Seite 19

27 Entwicklungsstadien von KIXOptimizedCMDB Diese Speicherung ist aber vorerst nur temporär. Das heißt, der xml_key-wert wird zu diesem Zeitpunkt zum Beispiel mit TMP gespeichert und erst nach korrekter Ausführung des gesamten Speichervorganges durch die Methode XMLHashMove() in den richtigen Eintrag geändert. Dabei wird die vorherige aktuelle Version aus der Content-Tabelle in die Content-Historie-Tabelle übertragen und anschließend aus der Ersteren entfernt. Der Umweg über das temporären Speichern ist notwendig, um unvollständige Daten zu verhindern 52. Dadurch behalten alle bisher angelegten Werte den temporären Eintrag und können so nicht verwendet werden. Dies zeigt dem Agenten, dass die Version nicht komplett erfolgreich gespeichert wurde und er eine neue Version anlegen muss. In Abbildung 11 ist ein Ausschnitt der Methode XMLHashGet() dargestellt. Diese Methode ließt die klassenspezifischen Attributwerte aus der Datenbank aus. In dem dargestellten Programmcode werden die vorher ausgefilterten doppelten SchlüsselWert-Paare (die TagKey enthielten) aus dem gespeicherten Datensatz erstellt und ebenfalls dem erzeugten Content-String angefügt. Weil diese durch das aufrufende Module benötigt und weiter verarbeitet werden (Aufbau des Array of Hashes). Abbildung 11 Ausschnitt der Methode XMLHashGet() des XML-Objektes Da alle weiteren Anpassungen in den anderen Methoden XMLHashMove() und XMLHashList() sehr ähnlichen Änderungen (Abfrage des Typs, Bestimmung der Tabelle bzw. des Views) unterlagen, ist es nicht notwendig diese für das Verstehen nachfolgender Kapitel gesondert aufzuführen Module für Tabellenerstellung Zwei weitere Module erzeugen die geplanten Tabellen pro Klasse. Nach erfolgreicher Installation des Pakets muss das Script CMDBSpeedup.RebuildCMDBStructure.pl53 in einer Kommandozeile ausgeführt werden. Das Script erstellt alle Tabellen für bestehende ConfigItem-Klassen, egal ob gültig oder nicht. Dass auch für ungültiggesetzte Klassen die Tabellen angelegt werden, ist notwendig, falls irgendwann solch eine Klasse wieder reaktiviert und weiter benutzt wird. Nachdem das Script die Format: TMP zufällige Zahl, kleiner als eine Million Klassen-ID z.b. wenn die Datenbankverbindung unterbrochen ist und nicht alle Attribute gespeichert wurden ist namentlich ab Beta 2 angepasst: KIXOptimizedCMDB.RebuildCMDBStructure.pl Seite 2

28 Entwicklungsstadien von KIXOptimizedCMDB Klassen angelegt hat, kopiert es alle bestehenden Daten gespeicherter CIs in die neuen Tabellen. Das heißt, die bisher vorhandenen Daten bleiben in der XML-Tabelle erhaltenen und können bei einer Deinstallation des Paketes wieder verwendet werden. Alle ab diesem Zeitpunkt neu angelegten klassenspezifischen Daten werden aber nur in der neuen Struktur abgelegt und bei Deinstallation nicht in die XMLTabelle übertragen. Die neuen Daten wären dadurch nicht mehr zugänglich. Da die Optimierung für große CMDB-Umgebungen gedacht ist, würde ein entsprechender Übertragungsvorgang sehr viel Zeit in Anspruch nehmen und dadurch das System währenddessen unbenutzbar machen. Deshalb ist ein weiteres Script, um dies dennoch zu ermöglichen, nicht vorgesehen. Nach Erstellung der Tabellen definiert das Script die Indizes für die neuen Tabellen und legt die erwähnten Views an. Erst danach ist die Paket-Installation vollends abgeschlossen und OTRS kann wieder uneingeschränkt verwendet werden. Das Script nicht automatisch auszuführen, ist notwendig, weil bis zu diesem Punkt die Installation noch sehr einfach zu revidieren ist. Der Installierende soll sich bewusst sein, dass mit Ausführung des Scripts ein größerer Eingriff in die Datenbasis vorgenommen wird und alle neuen Daten davon betroffen sein werden. Das zweite Modul ist eine ereignisbasierte Funktion. Bei jedem Anlegen einer neuen Klassendefinition das Ereignis, auf das reagiert werden soll wird das, in dem Schlüssel in der Konfiguration (siehe Abbildung 12) angegebene Modul (Zeile 1) aufgerufen. Wenn es dabei die erste Klassendefinition einer Klasse ist, weiß das Modul, dass es sich um eine neue Klasse handeln muss und erstellt daraufhin die entsprechenden Tabellen, definiert die Indizes und legt die Views an. Abbildung Konfigurationsschlüssel für den ereignisbasierten Modulaufruf Test Um die Performanceverbesserung von KIXOptimizedCMDB zu bestimmen, sind zwei verschiedene Tests durchgeführt worden, um die unterschiedlichen Verwendungsgebiete der CMDB abzudecken. Beide Test wurden mit einem Standard-OTRS und einem OTRS mit installierter Optimierung durchgeführt. Seite 21

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Einführung in SQL Datenbanken bearbeiten

Einführung in SQL Datenbanken bearbeiten Einführung in SQL Datenbanken bearbeiten Jürgen Thomas Entstanden als Wiki-Buch Bibliografische Information Diese Publikation ist bei der Deutschen Nationalbibliothek registriert. Detaillierte Angaben

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

FAQ The FAQ/knowledge base. Version 2.1.1

FAQ The FAQ/knowledge base. Version 2.1.1 FAQ The FAQ/knowledge base. Version 2.1.1 (c) 2012 OTRS AG, http://otrs.org/ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007 This work is copyrighted by OTRS AG, Norsk-Data-Str. 1, 61352 Bad

Mehr

SOAP SchnittstelleSchnittstelle

SOAP SchnittstelleSchnittstelle Agenda Technik Voraussetzungen AXL Schnittstelle Synchronisation TiM CUCM Ports in TiM Mandantenfähigkeit Mehrsprachigkeit Clusterfähigkeit von TiM Technik Features Features Wizzard Assistent Schnittstellenübersicht

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET Leibniz Universität IT Services Anja Aue Experteneinstellungen in Visual Studio Express Extras Einstellungen Experteneinstellungen. Es werden

Mehr

AJAX SSL- Wizard Referenz

AJAX SSL- Wizard Referenz AJAX SSL- Wizard Referenz Version 1.0.2+ - 04.04.2011 Präambel Die vorliegende Dokumentation beschreibt den AJAX basierten SSL- Wizard der CertCenter AG. Der SSL- Wizard kann mit wenigen Handgriffen nahtlos

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

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

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Windows Client Management AG Alte Haslenstrasse 5 CH-9053 Teufen wincm.ch 1 Quick Install - Scripting Framework Workplace...3

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

AccountPlus Systemkonfiguration

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

Mehr

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

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

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

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr

2 GRUNDLEGENDE PROGRAMMBEDIENUNG

2 GRUNDLEGENDE PROGRAMMBEDIENUNG In diesem Kapitel erfahren Sie, wie das Textverarbeitungsprogramm Microsoft Word 2007 gestartet wird, wie Sie bestehende Dokumente öffnen und schließen oder Dokumente neu erstellen können. Es wird erläutert,

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Installation und Dokumentation. juris Autologon 3.1

Installation und Dokumentation. juris Autologon 3.1 Installation und Dokumentation juris Autologon 3.1 Inhaltsverzeichnis: 1. Allgemeines 3 2. Installation Einzelplatz 3 3. Installation Netzwerk 3 3.1 Konfiguration Netzwerk 3 3.1.1 Die Autologon.ini 3 3.1.2

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Übertragung von Terminen und Baustellen

Übertragung von Terminen und Baustellen In dieser Dokumentation wird die Anwendung und die Konfiguration der Programme beschrieben, die für die Übertragung der Baustellen und Termine aus der KWP SQL-Datenbank an das virtic-system verwendet werden

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

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

Relationale Datenbanken Datenbankgrundlagen

Relationale Datenbanken Datenbankgrundlagen Datenbanksystem Ein Datenbanksystem (DBS) 1 ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern

Mehr

17 Datenbank aufteilen

17 Datenbank aufteilen 17 Datenbank aufteilen Warum teilt man eine Datenbank auf und was bedeutet dies? Eine Access-Datenbankdatei ist ein Monolith. Sie enthält alle notwendigen Objekte wie Tabellen, Abfragen, Formulare, Berichte,

Mehr

Dokumentation QuickHMI-Schnittstelle. Datenbanken

Dokumentation QuickHMI-Schnittstelle. Datenbanken Dokumentation QuickHMI-Schnittstelle für SQLServer Datenbanken Version 1.0 D-28359 Bremen info@indi-systems.de Tel + 49 421-989703-30 Fax + 49 421-989703-39 Inhaltsverzeichnis Was ist die QuickHMI-Schnittstelle

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

MySql Backup. Backup mit phpmyadmin. ITST Systemberatung MySql Backup

MySql Backup. Backup mit phpmyadmin. ITST Systemberatung MySql Backup Backups (Dumps)/Restores von MySql-Datenbanken lassen sich generell über zwei Wege bewerkstelligen. Zum einen mit Middleware wie phpmyadmin oder MySqlFront und ähnlichen graphischen Oberflächen. Grundsätzlich

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Database Publishing mit FrameMaker und FrameScript Handout

Database Publishing mit FrameMaker und FrameScript Handout Database Publishing mit FrameMaker und FrameScript Handout, 1/15 Database Publishing mit FrameMaker und FrameScript Handout Ursprünglich präsentiert als Workshop auf der tekom-tagung 20.-22.11.2002, Wiesbaden,

Mehr

Anleitung zum Online Banking

Anleitung zum Online Banking Anleitung zum Online Banking Diese Anleitung beschreibt das Vorgehen zur Installation und Konfiguration von Online Banking unter Jack. Um das Online Banking in Jack nutzen zu können, müssen Sie das entsprechende

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Wirtschafts-Informatik-Wietzorek Ulmweg 7 73117 Wangen 31.10.2009. Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion

Wirtschafts-Informatik-Wietzorek Ulmweg 7 73117 Wangen 31.10.2009. Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion Cubeinfo Programm zur komfortablen Datenauswertung der JTL-WAWI Betaversion Kurzbeschreibung Diese Software ist Freeware und darf weitergegeben werden. Zum Öffen der ZIP- Files benötigen Sie ein Kennwort,

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

2015 conject all rights reserved

2015 conject all rights reserved 2015 conject all rights reserved Inhaltsverzeichnis 1. Einleitung... 3 2. Schritte für Anpassung des Planmanagements... 5 3. Kategoriewerte ergänzen... 5 4. Blockwerte in den Blockdateien ergänzen... 6

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

Manueller Import von Dateien

Manueller Import von Dateien PhPepperShop Enterprise Datum: 22. Mai 2015 Version: 1.2 Manueller Import von Dateien Importe/Exporte Business Connector Glarotech GmbH Inhaltsverzeichnis 1. Manueller Import von Dateien im Caller...3

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

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration Richtlinienbasierte Verwaltung und Multi-Server-Administration 3 Richtlinienbasierte Verwaltung und Multi-Server- Administration SQL Server Management Studio bietet eine Reihe von Unterstützungsmöglichkeiten,

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

Anbindung an Wer-hat-Fotos.net

Anbindung an Wer-hat-Fotos.net Anbindung an Wer-hat-Fotos.net Stand: 7. Juni 2012 2012 Virthos Systems GmbH www.pixtacy.de Anbindung an Wer-hat-Fotos.net Einleitung Einleitung Dieses Dokument beschreibt, wie Sie Ihren Pixtacy-Shop an

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

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

3. Auflage. O Reillys Taschenbibliothek. Windows PowerShell 3.0. kurz & gut. Lee Holmes. Deutsche Adaption von Rolf Masuch O REILLY

3. Auflage. O Reillys Taschenbibliothek. Windows PowerShell 3.0. kurz & gut. Lee Holmes. Deutsche Adaption von Rolf Masuch O REILLY O Reillys Taschenbibliothek 3. Auflage Windows PowerShell 3.0 kurz & gut O REILLY Lee Holmes Deutsche Adaption von Rolf Masuch Inhalt Einleitung................................................ 2 Installation.....................................................

Mehr

Checkliste für die Registrierung für Quantum View Inbound

Checkliste für die Registrierung für Quantum View Inbound Checkliste für die Registrierung für Quantum View Inbound Wenn Sie sich für das Abonnement registrieren lassen, werden Sie zur Eingabe von detaillierten Informationen aufgefordert, die Ihnen möglicherweise

Mehr

Daten-Ex- und Import mit Oracle und PostgreSQL

Daten-Ex- und Import mit Oracle und PostgreSQL Daten-Ex- und Import mit Oracle und PostgreSQL Holger Jakobs bibjah@bg.bib.de 2004-09-07 Inhaltsverzeichnis 1 Grund für Daten-Im- und -Exporte 1 2 Werkzeuge 1 2.1 Export mit pg_dump von PostgreSQL.....................

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von:

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Normfall 7.2 Whitepaper Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Microsoft SQL Server 2008 R2/2012/2014 2014 Normfall GmbH Alle Rechte vorbehalten. Vorbemerkungen

Mehr

Mobile Security Configurator

Mobile Security Configurator Mobile Security Configurator 970.149 V1.1 2013.06 de Bedienungsanleitung Mobile Security Configurator Inhaltsverzeichnis de 3 Inhaltsverzeichnis 1 Einführung 4 1.1 Merkmale 4 1.2 Installation 4 2 Allgemeine

Mehr

Guideline. Integration von Google Adwords. in advertzoom Version 3.2

Guideline. Integration von Google Adwords. in advertzoom Version 3.2 Guideline Integration von Google Adwords in advertzoom Version 3.2 advertzoom GmbH advertzoom GmbH Stand Juni 2014 Seite [1] Inhalt 1 Google Adwords Schnittstelle... 3 1.1 Funktionsüberblick... 4 2 Externe

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

TWITTER INTERFACE KONFIGURATIONSANLEITUNG. Integrated Analytics GmbH Endenicher Allee 25 D - 53121 Bonn

TWITTER INTERFACE KONFIGURATIONSANLEITUNG. Integrated Analytics GmbH Endenicher Allee 25 D - 53121 Bonn TWITTER INTERFACE KONFIGURATIONSANLEITUNG Integrated Analytics GmbH Endenicher Allee 25 D - 53121 Bonn Tel.: +49.228.1801354 Fax.: +49.228.1801352 Email: info@eanalytics.de www: www.eanalytics.de Letzte

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

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

OneSumX AzP 2014 Installation & Quickstart V1.2 2015-03-10

OneSumX AzP 2014 Installation & Quickstart V1.2 2015-03-10 OneSumX AzP 2014 Installation & Quickstart V1.2 2015-03-10 Page 1 1 Inhaltsverzeichnis 2 Versionsinfo Dokument... 3 3 Installationsanleitung (Neuinstallation)... 4 3.1 Voraussetzung... 4 3.1.1 SQL Server...

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

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

PDF FormServer Quickstart

PDF FormServer Quickstart PDF FormServer Quickstart 1. Voraussetzungen Der PDF FormServer benötigt als Basis einen Computer mit den Betriebssystemen Windows 98SE, Windows NT, Windows 2000, Windows XP Pro, Windows 2000 Server oder

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht Adressen in eigene Solution combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Integration der Ansicht "Adressen" in eigene Solution Integration der Ansicht "Adressen" in

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc.

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc. Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 4: Stand: 03.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische Universität Eichstätt-Ingolstadt

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

LaMa-Creation Portscanner

LaMa-Creation Portscanner LaMa-Creation Portscanner Seite 1 von 12 Seite 2 von 12 Inhaltsverzeichnis Einleitung...4 Systemanforderung...5 Hardware:...5 Software:...5 Unterstützte Clientbetriebssysteme:... 5 Unterstützte Serverbetriebssysteme:...5

Mehr

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder BS-Anzeigen 3 Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder Inhaltsverzeichnis Anwendungsbereich... 3 Betroffene Softwareversion... 3 Anzeigenschleuder.com... 3 Anmeldung...

Mehr

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise A-Plan 12.0 Zeiterfassung 2.0 Ausgabe 1.1 Copyright Copyright 1996-2014 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf mechanischem

Mehr

Heureka CAQ. Reorganisation 7.0. QDaTech GmbH

Heureka CAQ. Reorganisation 7.0. QDaTech GmbH Heureka CAQ Reorganisation 7.0 QDaTech GmbH This manual was produced using ComponentOne Doc-To-Help. Inhalt Einleitung 1 Allgemeines...1 Welche Reorganisation ist notwendig...1 Notwendige Dateien...2 Ablauf

Mehr

fromos-bms Konfigurationshandbuch CRM- und Kassensystem System

fromos-bms Konfigurationshandbuch CRM- und Kassensystem System fromos-bms Konfigurationshandbuch CRM- und Kassensystem System Allgemeine Installations- und Konfigurationshinweise für das fromos CRM System Mit dem Ausführen des Installationsprogrammes fromos-bms.exe

Mehr

Information rund um den Begriff Patch für WINLine-Anwender. SMC InformationsTechnologien AG Meraner Str. 43 86165 Augsburg

Information rund um den Begriff Patch für WINLine-Anwender. SMC InformationsTechnologien AG Meraner Str. 43 86165 Augsburg Information rund um den Begriff Patch für WINLine-Anwender SMC InformationsTechnologien AG Meraner Str. 43 86165 Augsburg Inhaltsverzeichnis: 1. Allgemeine Informationen zu dem Begriff Patch 2. WINLine

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

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

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

Handbuch DrahtexLabelwriter 3.0

Handbuch DrahtexLabelwriter 3.0 Handbuch DrahtexLabelwriter 3.0 Inhaltsverzeichnis INSTALLATION 3 DER PROGRAMMSTART 7 DIE PROGRAMMOBERFLÄCHE 8 DIE STARTSEITE DES PROGRAMMES 8 DIE PROGRAMMSYMBOLLEISTE 9 EIN NEUES PROJEKT ERSTELLEN 10

Mehr

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps: Copyright 2006 crm-now Versionsgeschichte Version 02 08.09.2006 Release Version Version 01 16.06.2005 crm-now c/o

Mehr

[2-4] Typo3 unter XAMPP installieren

[2-4] Typo3 unter XAMPP installieren Web >> Webentwicklung und Webadministration [2-4] Typo3 unter XAMPP installieren Autor: simonet100 Inhalt: Um Typo3 zum Laufen zu bringen benötigen wir eine komplette Webserverumgebung mit Datenbank und

Mehr

Monitoring bei GISA Jörg Sterlinski

Monitoring bei GISA Jörg Sterlinski Jörg Sterlinski Donnerstag, 18. Oktober 2012 2012 GISA GmbH Leipziger Chaussee 191 a 06112 Halle (Saale) www.gisa.de Agenda Vorstellung GISA GmbH Gründe für den Einsatz von Icinga Rahmenbedingungen KISS

Mehr

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16 PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können

Mehr

HTML-Emails im VM2000

HTML-Emails im VM2000 HTML-Emails im VM2000 (Erweiterung des bestehenden CRM-Modul) Für den VM2000 wurde ein Modul entwickelt, womit Emails im HTML-Format (HTML= Hypertext Markup Language) automatisch generiert und versendet

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

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

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

Telephone Integration für Microsoft CRM 4.0 (TI)

Telephone Integration für Microsoft CRM 4.0 (TI) Telephone Integration für Microsoft CRM 4.0 (TI) Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle

Mehr

Acrolinx IQ. Verbindungen mit externen Terminologiedatenbanken 2.9

Acrolinx IQ. Verbindungen mit externen Terminologiedatenbanken 2.9 Acrolinx IQ Verbindungen mit externen Terminologiedatenbanken 2.9 2 Inhalt Einleitung 3 Über diesen Leitfaden...3 Verbinden mit externen Terminologiedatenbanken 4 Erstellen von Sicherungen vorhandener

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

CI Klassen & Services für Rechenzentren in OTRS::ITSM. Jens Bothe Senior Consultant, OTRS AG

CI Klassen & Services für Rechenzentren in OTRS::ITSM. Jens Bothe Senior Consultant, OTRS AG CI Klassen & Services für Rechenzentren in OTRS::ITSM Jens Bothe Senior Consultant, OTRS AG Historie OTRS und ((otrs)) 2008 Partner Programm & stable Release OTRS::ITSM 1.1 & OTRS 2.3 o > 60.000 produktive

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

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

Smartcard Management System

Smartcard Management System Smartcard Management System Benutzerhandbuch Zertifiziert vom Nationalinstitut für Standardisierung und Technologie der Vereinigten Staaten von Amerika. Certified by the National Institute of Standards

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

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

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

MySQL Community Server 5.1 Installationsbeispiel

MySQL Community Server 5.1 Installationsbeispiel MySQL Community Server 5.1 Installationsbeispiel Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der untermstrich-datenbank

Mehr