Probleme und Lösungen der Plattform - unabhängigen Entwicklung am Beispiel einer Software für Identity - Management

Größe: px
Ab Seite anzeigen:

Download "Probleme und Lösungen der Plattform - unabhängigen Entwicklung am Beispiel einer Software für Identity - Management"

Transkript

1 Probleme und Lösungen der Plattform - unabhängigen Entwicklung am Beispiel einer Software für Identity - Management Als Vorlesung gehalten an der TU Dresden am Im Rahmen der Ringvorlesung Softwareentwicklung in der industriellen Praxis Lehrstuhl Softwaretechnologie Frau Dr. Birgit Demuth Autoren: Dipl.-Ing Ingo Rohner Absolvent 1985 an der TU Dresden, Studienrichtung Informationsverarbeitung. Dipl.-Inf. (FH) Jörg Rosenkranz Absolvent 1998 an der HTW in Dresden, Studienrichtung Informatik Die Firma Völcker Informatik AG (VI) hat ihren Sitz in Berlin. Die Autoren arbeiten in der Niederlassung Dresden als Softwareentwickler und sind hauptsächlich mit dem Produkt ActiveEntry beschäftigt. Alle Angaben im Vortrag beziehen sich auf dieses Produkt. Prämissen: a) Die Firma und das Entwicklerteam sind relativ klein, das Produkt ist relativ groß b) die Kunden haben Freiheiten hinsichtlich - des eingesetzten Betriebssystems - der verwendeten Datenbank - der verwendeten Anzeigetechnologie (Fat-Client / Browser) - der Anpassung der Software auf ihre speziellen Gegebenheiten Um diesen Widerspruch aufzulösen, definieren wir das Prinzip Highlander: "Es kann nur einen (Code) geben"

2 Inhalt 1) Die Firma ) heutiges Arbeitsgebiet von VI Compliance ) Was ist Identity - Management ) Provisioning Betriebsdatenabbildung Lösungsansätze für IdM, Provisioning und ComplianceCheck Lösungsansätze der Marktführer Lösungsansatz von VI Vorgehensweise von VI im Projekt ) Plattform- unabhängige Implementierung die Voraussetzungen bei VI die Kundenforderungen die Lösungswege ) Konkrete Implementierung der Ebenen Die Businesslogik / Objekt-Ebene ) Datenbank-Ebene Generierung und Single Source liebevolle Handarbeit SQL-Formatter Frontend Ebene... 25

3 1) Die Firma Mit einem kleinen Rückblick in die Geschichte wollen wir zeigen, wie sich die Firma und das Produkt entwickelt haben und wie wir zu unseren heutigen Themen im Identity - Management kamen, ja eigentlich zwangsläufig kommen mußten. In den Jahren 1992 / 1993 haben die späteren Gründer bei der Krone Netzwerkservice GmbH zusammengearbeitet wurde die Firma gegründet, erst als GbR, später als GmbH. Seit 1999 ist Völcker Informatik AG eine Aktiengesellschaft. Zur Gründung der Firma 1994 war der Stand der Technik auf dem Arbeitsplatz Windows 3.11, im Serverbereich Novell Netware in den Versionen 2.x, 3.11, 3.12 und die Herausforderung hieß, 200 PCs in einem Netz zum Laufen zu bringen. 200 PCs eine Herausforderung? Da lächeln Sie inzwischen drüber, mit den damaligen Mittel war das jedoch nicht trivial zu realisieren. Insbesondere ging es in der Anfangszeit von VI um den Aufgabenbereich Unattended Setup, das heißt um die Fragen: - Wie bekomme ich Stückzahlen von PCs an die Arbeitsplätze? - Wie bekommen die PCs ihr Betriebssystem? - Wie bekommen die PCs bzw. die Anwender ihre Applikationen? Insbesondere der letzte Punkt führte uns zum Thema der automatischen Softwareinstallation, d.h. wie bekommt jeder PC genau die Software und die Treiber, die ihm zugedacht sind. Bei Windows 3.11 wurde dies realisiert über liebevolles Patchen der Dateien Win.Ini und System.Ini. Es wurden Skripte gebaut, um die INI- Dateien zu modifizieren, um dann die Netze auszurollen. Im Jahr 1996 haben wir unser erstes Netz auf Basis von NT 3.51 bei den Berliner Verkehrsbetrieben gebaut. Damit erreichten wir erstmal die Größenordnung von 3000 Benutzern. NT 3.51 war die Software der Server, teilweise auch der Clients, meistens hatten wir jedoch Windows 95 Clients. Dort wurde erstmalig ein Verfahren angewendet, die Software anhand von Gruppenmitgliedschaften der Nutzer zu verteilen. Wir hatten ein eigenes Verfahren für Softwareverteilung entwickelt. Das Verfahren beruht auf einem Delta-Abbild und ist eigentlich eine relativ triviale Sache, das machen heutzutage viele. Die Idee war ursprünglich auch nicht ganz von uns. Grob umrissen funktioniert das Verfahren wie folgt: Wir haben am Anfang einen PC, der jungfräulich mit dem Betriebssystem aufgesetzt ist. Von diesem PC merken wir uns alle Eigenschaften, alle Dateien, Registry-Einträge, Ini-File-Einträge, Desktopsymbole und Menüsymbole. Anschließend installieren wir die Applikation oder den Treiber auf dem PC und konfigurieren alle Einstellungen so, wie sie gewünscht werden. Bei Office z.b. betrifft diese Konfiguration die Menüs, die Vorlagenverzeichnisse oder die Rechtschreibkontrolle. Von der so entstandenen PC- Konfiguration merken wir uns wiederum alle Eigenschaften. Aus den gemerkten Zuständen wird ein Delta gebildet, welches wir ein Profil nennen. Völcker Informatik AG hat in diesem Zusammenhang ein Werkzeug entwickelt, welches dieses Profil in eine Maschine schreiben und es auch spurlos wieder löschen kann. Damit hatten wir einen Mechanismus für eine sehr schnelle Softwareinstallation. Die Deltabildung läuft im Allgemeinen um die 90 Sekunden für eine kompletten PC. Bei der eigentlichen Softwareinstallation wird die meiste Zeit dafür benötigt, die Profile durch das Netz zu

4 transportieren, weswegen wir inzwischen an dieser Stelle einen asynchron arbeitenden Cache verwenden. Für die Zuordnung der Software haben wir nicht die Maschinen sondern die NT- Konten verwendet, die Software also den Nutzern zugeordnet. Der Nutzer ist Mitglied in einer Gruppe, welche als Applikationsgruppe gekennzeichnet ist. Unser Werkzeug schaut nach, welcher Nutzer welchen Gruppen angehört und demzufolge werden die zugehörigen Applikationen installiert oder deinstalliert. Im Projekt bei den Berliner Verkehrsbetrieben haben wir innerhalb von 3 Wochen die 3000 PCs einmal komplett ausgerollt. Dazu kamen ein paar Roadies, welche die Kisten an die Plätze gebracht, ausgepackt, aufgestellt und Kabel angesteckt haben, die MAC-ID per Telefon durchgesagt haben, Knöpfchen gedrückt haben und dann fuhr der PC hoch. Das war für beide Seiten ein sehr erfolgreiches Projekt, welches uns den Weg geebnet hat für viele weitere Entwicklungen. Im den Jahren 1997/1998 haben wir dann das erste NT 4 Projekt realisiert bei der Schering AG. Bei diesem Kunden handelte es sich bereits um Nutzer. In diesem Projekt haben wir zum ersten Mal das Prinzip der Vererbung über Betriebsdaten angewendet. Der Kundenwunsch war, daß ein Mitarbeiter bzw. sein NT4-Konto über seine Mitgliedschaft in Abteilungen, Kostenstellen oder Standorten Applikationen und Gruppen erben soll. Das klingt erst mal ganz einfach ist es letztendlich auch, wenn man ein paar unbedingt notwendige Randbedingungen einhält. Wir haben damals auch das erste Mal eine komplette Vollsynchronisation eines Zielsystems implementiert. Es wurden die kompletten Informationen zu den NT4- Domänen vollständig in unsere Datenbank eingelesen, d.h. alle Informationen zu den Konten, Gruppen und Mitgliedschaften. In der Datenbank wurden die Zuweisungen der Nutzer vorgenommen und die Ergebnisse, die aufgrund von Strukturveränderungen oder auch Direktzuweisungen entstanden sind dann wieder in die Umgebung publiziert. Im Jahr 1999 haben wir das Konzept der Betriebsdatenabbildung auf Wunsch eines weiteren Kunden weiter ausgebaut. Dr. Eckhardt Knauer war damals EDV-Leiter bei der AOK in Berlin. Er sagte uns: Ich als EDV-Mensch bin immer der Letzte in der Firma, der von irgendwelchen Einstellungen oder Entlassungen erfährt. Und ich bin auch der Letzte in der Firma, der erfährt, daß ein PC irgendwo abgebaut und woanders wieder angeschlossen wurde oder daß ein Monitor irgendwo umgesetzt worden ist. Ich weiß eigentlich fast nichts. Das Einzige, was ich weiß, ist, da steht ein Schreibtisch, für den eine Arbeitsaufgabe definiert ist. Also haben wir den Schreibtisch in unserer Datenbank modelliert. Auf dem Schreibtisch stellen wir einen PC auf und schließen einen Drucker an. So ist das Prinzip der Arbeitsplätze bei uns entstanden. Das hat uns dann in späteren Projekten des Öfteren gerettet. Im Jahr 2001 folgte die Integration von ActiveDirectory-Systemen, auch wieder komplett per Vollsynchronisation. Zu der Zeit hatten wir erstmals das Konzept der Person eingeführt, ein ähnliches Abstraktum wie den Arbeitsplatz. Anfänglich hatten wir nur ein einziges Zielsystem angeschlossen, das war entweder NT 4 mit einer oder mehreren Domänen bzw. Active Directory. Es war von einigen unserer Kunden gewünscht, daß diese einen Überblick bekommen, wenn eine Person 2 Konten besitzt. 99% aller Nutzer haben in einem Zielsystem genau ein Konto. Aber es gibt

5 ein paar wenige, die haben noch ein Extrakonto für administrative Aufgaben. Diese Abbildung konnten wir vorher noch nicht leisten. Da galt für uns (wie heute immer noch für viele Anbieter): Eine Person = ein Konto. Kurz danach kamen weitere Zielsysteme in unser Produkt, so z.b. Lotus Notes und Novell NDS, damit war die Zusammenführung diverser Konten in verschiedenen Systemen auf Personen dringend geboten. Im Jahr 2003 begannen wir ein Projekt in der Landeshauptstadt München mit Nutzern im Netz. Bei diesen Nutzer handelt es sich um alle Schüler von der 1. bis zur 13. Klasse, alle Berufsschüler und sämtliches Verwaltungspersonal im Pädagogikbereich der Stadt München. Alle diese Nutzer bekamen ein Konto, ein Postfach, ein Home-Verzeichnis und Ablageverzeichnisse. Die Verwendung bestimmter Betriebssysteme war zu der Zeit in München ein Politikum, das dazu führte, daß ausschließlich NICHT- Microsoft-Produkte zu verwenden waren. Wenn wir uns im Gegensatz dazu die bisherige Geschichte von Völcker Informatik AG dazu ansehen: Völcker Informatik AG war deutlich blau gefärbt, alles war Microsoft-geprägt Linux man weiß wie man es schreibt, man hat es schon mal gehört, schon mal gesehen aber dafür programmieren? Oracle ja, das soll wohl auch eine Datenbank sein. Wir haben bis dahin mit Microsoft SQL-Server gearbeitet, alle Versionen von der 6.5 an Wir nutzten die gebotene Chance und reimplementierten unsere gesamte Software hatte Microsoft.NET vorgestellt, aus unserer Sicht das bessere JAVA. Miguel d Icasa sah das genauso und begründete das Mono-Projekt, eine Plattformunabhängige Laufzeitumgebung für.net. Damit hatten wir eine Basis, in der gewohnten Microsoft-Umgebung zu entwickeln und die Software gegen Linux laufen zu lassen. Aus diesem Projekt wurde auch das heute vollständige umgesetzte Konzept der Plattform-Unabhängigkeit geboren. Im Jahr 2003 haben wir angefangen SAP als ein Zielsystem zu integrieren. Bei SAP synchronisieren wir nicht die gesamte Datenbank noch einmal in unsere Datenbank, sondern beschränken uns auf die Informationen zu Konten, Mitgliedschaften und Gruppen (dort Profile und Rollen genannt), wobei letztere nur gelesen werden haben wir es dann erstmals geschafft, funktionsidentische Frontends sowohl auf dem PC als EXE-Datei als auch im Browser laufen zu lassen, wobei in beiden Fällen das selbe Compilat verwendet wird. Das war notwendig, da immer mehr Kunden Intranet-Lösungen zu unserem Produkt haben wollten, insbesondere was den Bereich der Selbstbedienung der Anwender betrifft. Die Firma Völcker Informatik AG hat zum heutigen Tag 55 Mitarbeiter, davon arbeiten 12 in Dresden. Dresden ist der Standort der Firma in dem komplett die Bereiche Produktentwicklung, Qualitätssicherung, Dokumentation und Support abgewickelt werden.

6 2) heutiges Arbeitsgebiet von VI 2.1 Compliance Was ist eigentlich Compliance? Leo.org übersetzt das mit - in Übereinstimmung mit einer Bedingung - in Erfüllung einer Bedingung Wozu benötigen wir Compliance? Schauen wir ein paar Jahre zurück, auf das Platzen der großen Internetblase. Kann sich noch jemand an den Enron-Skandal erinnern? Dieses Energie-Unternehmen in den Vereinigten Staaten hat Spekulations- und Scheingeschäfte innerhalb der Firma gemacht. Zum Schluß implodierte das gesamte Spekulationsgebilde mit einem Riesenknall und einigen Milliarden Dollar Verlusten. Als Reaktion darauf wurde in den USA ein Gesetz verabschiedet, der Sarbance-Oxley-Act (SOX). Dieses verpflichtet Unternehmen, Regeln der innerbetrieblichen Sauberkeit zu definieren, einzuhalten und zu überwachen. Solche Regeln sind z.b. daß jemand, der Einkäufe über 1000 $ auslösen darf, nicht gleichzeitig auch zeichnungsberechtigt für die dazugehörigen Überweisungen ist. Wenn eine solche Rechtekonstellation zusammentrifft, dann ist der Versuchung Tür und Tor geöffnet. Das sind Risiken, die in der Unternehmensbilanz benannt und bewertet werden müssen. Die Einhaltung dieser Regeln muß nicht nur auf allgemeiner organisatorischer Ebene, sondern ausdrücklich auch auf der Ebene der EDV-Zugriffsrechte sichergestellt werden. Und was geht uns das in Deutschland an? Die Beantwortung der Frage ist relativ einfach: Jedes Unternehmen, das auch an amerikanischen Börsen gehandelt wird, ist verpflichtet eine Bilanz zu liefern, in der auch die Einhaltung solcher Regeln gesichert ist. Das ist Bestandteil des Wirtschaftsprüfertestats. Es gibt aber auch bei uns gesetzliche Regelungen, die eine Regeldefinition und Überwachung fordern. In Deutschland haben wir z.b. das Energiewirtschaftsgesetz. Das Energiewirtschaftsgesetz sagt unter anderem sinngemäß aus, daß, wenn eine Firma Energieerzeuger ist, ein eigenes Endkundengeschäft betreibt und auch Endkundengeschäft für Wiederverkäufer organisiert, niemand von diesen 3 Bereichen dem anderen in die Karten schauen darf. Ansonsten könnte ich ja als Endkundenbetreuer eines Energieerzeugers mal eben die Kundenliste der Yello- Kunden nehmen, alle abtelefonieren und versuchen sie zurückzugewinnen. Da muß also eine Wand im Unternehmen existieren, welche auch auf EDV-Ebene repräsentiert wird. Das heißt, daß Leute, die in dem einen Bereich arbeiten nicht auf die Ordner und Applikationen der Leute aus einem anderen Bereich zugreifen können und umgekehrt. Ein ähnliches Gesetz gibt es auch in Deutschland im Bereich Aktien- oder Bankenrecht. Jemand, der im Kundenauftrag mit Aktien handelt, darf sich in seinen Rechten, Befugnissen und Informationen nicht überschneiden mit jemandem, der Firmenfusionen, Firmenverkäufe oder Aufspaltungen im Auftrag der Bank bearbeitet. Im anderen Fall wäre die Gefahr eines Insider-Geschäfts gegeben. Dem Gesetz

7 muß derart Genüge getan werden, daß eine Trennung auch im EDV-Bereich existiert. Das Thema Compliance befaßt also immer mit Regeldefinitionen der Art Es darf nicht sein, daß jemand... Z.B. Es darf nicht sein, daß jemand Zugang zu der Gruppe A und zu der Gruppe B und zu dem Ordner C hat und sowohl die Applikation D als auch die Applikation E verwenden darf. Weiterhin gefordert ist beim Thema Compliance eine dauerhafte und lückenlose Aufzeichnung aller Rechtezuweisungen, aller Rechteabweisungen und in dem Fall, daß eine Regelverletzung aufgedeckt wird, auch eine zeitnahe Benachrichtigung desjenigen, der für die Überwachung dieser Regel zuständig ist, erfolgt. Es darf nicht sein, daß jemand... Wer ist dieser jemand? Im Sinne der Gesetze ist damit immer eine Person gemeint. Die Rechtsprechung kennt keine Konten, verantwortlich sind immer Personen. Eine Person hat jedoch unter Umständen mehrere Konten in den unterschiedlichsten Zielsystemen. Und für diese Person müssen die Regelverletzungen aufgedeckt bzw. gleich vermieden werden. Denken Sie jetzt mal an die EDV-Landschaften, die Sie bisher kennengelernt haben. Haben Sie da irgendwo schon einmal eine Person als abstraktes Objekt gesehen? Es werden immer nur Konten verwaltet. 2.2) Identity - Management Es existiert Uneinigkeit darüber, was eine Identität ist, manch einer meint die Person, andere meinen damit Konten. Im Sinne von Compliance sind aber immer beide im Zusammenhang zu betrachten. Das Ziel von Identity Management ist es, zu jeder Zeit die Information über jede Identität und ihre Berechtigung zur Verfügung haben, manipulieren und auswerten zu können. Es nützt nicht, eine Überwachung von 2 Konten zu machen, es geht um die Person der Bankangestellte, der nicht gleichzeitig zwei sich ausschließende Rechte haben darf, egal mit welchen Konten er sie erreicht. Rechte sind z.b. Access-Control-Lists im ActiceDirectory oder Transaktionen in SAP. Solche Rechte werden im Normalfall an Gruppen gebunden. Es gibt eine einzige Stelle, wo es sinnvoll ist, ein Recht an ein einzelnes Konto zu binden, und das ist das Recht auf dem Home-Verzeichnis eines Nutzers. Gruppen als Träger der Rechteinformationen gibt es heute in jedem Konten verwaltenden System (Betriebssysteme, SAP, Notes, auch Mail-Verteilerlisten sind nur Gruppen ) Für die Überprüfung von Compliance reicht es also im Normalfall aus, die Gruppenmitgliedschaften zu überwachen, sofern die Rechte der Gruppen ordentlich dokumentiert sind.

8 Zusammenfassung: Identity - Management ist das Verwalten von Informationen über Person, ihre Konten und deren Gruppenmitgliedschaften, das Aufzeichnen von Veränderungen und das Anbieten von Auswerte-Möglichkeiten. 2.3) Provisioning Das letzte Schlagwort in der Sammlung lautet Provisioning frei übersetzt die Versorgung. Das meint die Versorgung einer Person mit Konten in einem bestimmten Zielsystem und die Versorgung eines Kontos mit Gruppenmitgliedschaften. Im erweiterten Sinne bedeutet das auch die Versorgung einer Person mit materiellen Gütern wie z.b. einem PC oder Telefon oder allem Sonstigen, was die Person für ihre Tätigkeit benötigt. Die Zielstellung, welche hinter dem Schlagwort Provisioning steht, lautet: Betritt jemand ein Unternehmen, so soll er innerhalb kürzester Zeit arbeitsfähig gemacht werden, auch EDV-technisch, d.h. er muß ein Konto bekommen z.b. im Active Directory, er muß ein Postfach erhalten, muß in bestimmte Rechtegruppen aufgenommen werden, muß ein Portfolio an Applikationen zugeteilt bekommen und einen PC auf den Schreibtisch bekommen, der ein passendes Betriebssystem und eine korrekte Netzanbindung hat. Wer etwas vertraut ist mit der Materie weiß, es gibt Unternehmen, in denen dauert es wirklich vom Eintritt des Mitarbeiters bis zu dem Zeitpunkt, an dem er EDV-mäßig arbeitsfähig ist, 2-4 Wochen. Es kann sich solange hinziehen, weil viel Papierkram von vielen Leuten ausgefüllt und unterschrieben werden muß bis sich dann jemand hinsetzt und wirklich das Konto anlegt. Das Gegenstück dazu ist, jemand verläßt das Unternehmen. Da mögen aber bitte innerhalb weniger Minuten sämtliche Konten nicht mehr verwertbar sein egal ob sie nun gelöscht oder gesperrt werden, oder nur aus allen Gruppen entfernt werden. Hauptsache, man kann mit den Konten nicht mehr arbeiten. In der Praxis dauert es allerdings oftmals mehrere Jahre, bis auch wirklich das letzte Konto gesperrt oder gelöscht ist. Gesamt-Zielstellung Identity - Management, Provisioning und Compliance Eine Person soll genau über die Konten und Berechtigungen verfügen, die für ihre Tätigkeit notwendig sind, genau für den Zeitraum in dem das erforderlich ist. Sämtliche Arbeitsschritte, die Änderungen an diesen Daten vornehmen, sind zu dokumentieren. Das Berechtigungsportfolio darf keine der definierten Regeln verletzen bzw. sind diese Regelverletzungen aufzuzeichnen und kurzfristig den Verantwortlichen zu melden. Wie gelangt man nun eigentlich zur Mitgliedschaft in einer Gruppe, sei es nun Applikations- oder Rechtegruppe? Wir haben 3 mögliche Herangehensweisen: - Der erste Weg ist der Klassiker: Ich nehme das Management-Werkzeug des Betriebssystems nehme meinen Account, füge ihn in die Gruppe ein und speichere ihn. So hat keiner einen Überblick oder eine Benachrichtigung und somit weiß auch keiner, wer dies wann getan hat. - Die bessere Wahl ist ein Ablauf von Bestellung, Genehmigung und Zuweisung. Eigentlich wird hier lediglich das Verfahren abgebildet, welches in

9 den meisten Unternehmen papiermäßig abläuft und am Ende mit den technischen Mitteln der Direktzuweisung (s.o.) realisiert wird. - Die 3. Variante ist die Erbschaft aus Strukturmitgliedschaften bzw. aus Rollen. Egal, welches der beiden letztgenannten Verfahren wir benutzen, wir haben es an diesen Stellen jetzt immer mit Betriebsdatenabbildungen zu tun, da die Erbschaft aus einer Strukturzugehörigkeit erfolgt bzw. der Besteller und der Genehmiger in einer betrieblichen Korrelation zueinander stehen. Oftmals ist z.b. der Genehmiger der Kostenstellenverantwortliche, da dieser später auch die zugehörige Rechnung bekommt. Bei der Deutschen Telekom Immobilien GmbH haben wir es so implementiert, daß jeder Kostenstellenverantwortliche am Monatsende per ein PDF zugestellt bekommt mit dem Titel Ihre EDV-Kosten für diesen Monat für ihre Mitarbeiter. Aufgeführt sind dort alle Kosten für PC-Abschreibung oder Leasingraten, Applikationsnutzung oder Speicherverbrauch auf den Servern. All diese Informationen sind letztlich in der Datenbank vorhanden und müssen nur noch per Report strukturiert werden. Die EDV-Kostenstellen werden in der Kostenrechnung als Verrechnungskostenstelle umgelegt, d.h. die EDV-Abteilung ist an jedem Monatsende als interner Firmendienstleister kostenmäßig auf +/- Null gestellt. Wir haben also immer eine gewisse Betriebsdatenabbildung durchzuführen. Wie diese aussieht, soll unser letzter Punkt sein bevor wir uns der konkreten Implementierung zuwenden. 2.4 Betriebsdatenabbildung Bei der Betriebsdatenabbildung gibt es mehrere Ansätze. Ich habe mit Herrn Professor Koch von der HTW herzliche Streitgespräche durchgeführt. Prof. Koch ist einer der X-500 Gurus und ebenso ein Motor der Unix-Gemeinde. X-500, ist vereinfacht gesagt, ein Modell zur hierarchischen Strukturierung von Organisationsdaten als Container und der Zuordnung von Konten in diese Container. Das ist das Modell mit dem viele Vertriebsleute Erfolg haben, weil es genauso aussieht, wie sich mancher Vorstand seine Firma vorstellt. Ganz oben ist der Chef, darunter bauen wir ein paar Container an, welche die Hauptabteilungen darstellen. Darunter werden erneut Container aufgebaut, die dann Unterabteilungen verkörpern. Schließlich folgen die Kleinstabteilungen. Es ist also ein richtig schönes hierarchisches System, in dem ich auch etwas durchvererben kann. Es gibt allerdings ein paar Probleme z.b. das Thema Standorte. Die IP-Konfiguration der Rechner ist standortabhängig. Gut, lösen wir das Problem, indem wir auf der ersten Ebene unserer Hierarchie Container für die Standorte einfügen und darunter spannen sich dann die Abteilungen auf. Das ist immer noch optimal aus der Sicht eines Vorstandsvorsitzenden. Dann gibt es aber noch die Kostenstellen. Nun wird es langsam unübersichtlich, da man sie nicht mehr in eine einzelne Hierarchie hineinbekommt und außerdem im X-500 jedes Konto nur in genau einem Container Mitglied sein kann.

10 Vor ca. 6 Jahren hatten wir die dankbare Aufgabe bei der Wirtschaftsprüfungsfirma KPMG eine Analyse zur Modellierung der Verteilerlisten zu erstellen. KPMG ist ein Unternehmen, welches andere Unternehmen berät wie diese ihre Betriebsabläufe aufzubauen und wie sie sich zu strukturieren haben. Im - System gab es eine Menge definierter Verteilerlisten und KPMG wollte einen Automatismus haben, mit dem jemand aufgrund seiner Zugehörigkeit zu einem Standort, zu einer Abteilung usw. automatisch Mitglied in einer Verteilerliste wird und die entsprechenden Informationen, die an diese Verteilerliste gesendet werden, auch erhält. Die 3 Klassiker in der Betriebsstrukturierung hatten wir sofort identifiziert: Abteilung, Kostenstelle und Standort alles kein Problem. Die Kostenstellen ergaben sich aus Sicht der Controller. Die Mitgliedschaft im Beratungsprojekt X oder Y ist die nächste Ebene. Dann kamen noch die Fachgebiete hinzu z.b. Beratung in Land- und Forstwirtschaft, dazu die Interessengebiete Ja, ich interessiere mich auch für die Nahrungsgüterwirtschaft. Weiterhin gibt es die Partnerschaften. KPMG ist keinesfalls ein homogenes Unternehmen, sondern viel mehr eine Vereinigung mehrerer Sozietäten mit gemischten Eigentümerschaften. Und dann gibt es noch Spezialisierungsrichtungen: Der eine Mitarbeiter ist verantwortlich für Prüfung und Testierung, der andere ist für die Betriebsorganisation zuständig und der Dritte für die Finanzplanung. Das sind also insgesamt 8 Dimensionen, in denen KPMG strukturiert ist. Wir können davon ausgehen, daß jede Firma eine n-dimensionale Abbildung benötigt, wobei n beliebig groß sein kann. Wir haben also eine n-dimensionale Matrix-Sicht. Jede dieser Sichten ist bei uns letztendlich auch implementiert als ein Baum, jedoch gegenüber X-500 mit einigen entscheidenden Unterschieden: - Jeder Nutzer kann Mitglied in beliebig vielen Containern auch innerhalb eines einzigen Baumes sein - Mitglied sind die Personen, nicht die Konten - An jeden Container kann man Rechte aus allen Zielsystemen zuweisen, weiterhin auch Konstrukte für die Zuweisung für z.b. PCs 3. Lösungsansätze für IdM, Provisioning und ComplianceCheck 3.1 Lösungsansätze der Marktführer MetaDirectory - Projekte In den letzten Jahren gab es den Hype der Meta-Directory-Projekte. Die Anbieter am Markt hatten inzwischen alle erkannt, daß eine n-dimensionale Matrix und eine X-500 Abbildung nicht so recht zueinander passen. Also definierten sie ein neues Directory, legten dieses über das vorhandene und nannten das Ganze ein Meta-Directory. Wenn man die Dimensionen vergleicht, kommt man schnell zu dem Schluß: Das kann nicht funktionieren. Die Meta-Directory-Projekte sind auch alle hinsichtlich einer sauberen Betriebsdaten-Abbildung gescheitert. Identity Management Systeme (IdM)

11 Die meisten Anbieter von IdM führen mit Kunstgriffen die Person als Objekt ein, legen jedoch nur die Referenzen zu den verwalteten Konten ab. Es erfolgt also keine komplette Abbildung des Zielsystems (Bsp. Nur Ablage des DistinguishedName). Dabei treten jedoch einige Probleme auf: - Wird ein Objekt umbenannt oder geändert, stimmt die Referenz nicht mehr, das System ist inkonsistent. - Die Zuordnung der Eigenschaften als auch Zuordnung von Personen zu Konten erfolgt über Mapping Regeln z.b. zwischen Accountname oder -Addresse zu Eigenschaften der Person wie Vorname und/oder Nachname Das klappt im besten Fall für 98 % aller Objekte, meist jedoch nur im Bereich zwischen 60 und 80 % aller Objekte. Aber selbst 2 % Restmenge bedeuten das Scheitern des Projektes, weil damit a) automatisches Management über die Meta-Ebene nicht mehr zu definiert richtigen Ergebnissen führt. b) schon ein einziger Verstoß gegen Compliance - Regeln zur Verweigerung eines Testats führen kann. - Sollen Objekte betrachtet oder geändert werden, ist ein Zugriff auf das Zielsystem notwendig, es muß also am Standort der Management Software verfügbar sein. - Sollen Listen von Objekten gezogen werden, so benötigt man viel Zeit. Wir haben Anwendungsfälle, bei denen wir die Mitglieder in einem Container (2500 Konten), als eine Liste im Frontend produzieren müssen. Als Reaktionszeit eines Frontends werden nur Zeiträume bis 3 Sekunden akzeptiert. Mit Direktzugriffen auf die Zielsysteme schafft man das nicht annähernd. Es gibt also auf diesem Gebiet einen Glaubenskrieg machen wir ein Store-By- Reference (was u.a. in den Meta-Directory-Projekten verwendet wird) oder mache ich ein Store-By-Value (unser Weg) d.h. alle Daten liegen komplett in der Datenbank. Warum haben wir uns für die Datenbank entschieden? Zum einen ist das das einzige wirklich transaktionssichere System. Für diesen Zweck sind relationale Datenbanken entwickelt worden. Und es ist auch die einzige Technologie, die gut geeignet ist für Massendatenverarbeitung. 3.2 Lösungsansatz von VI 3-Ebenen Architektur Letztendlich gesehen, haben wir in unserem Produkt eine klassische 3-Ebenen- Struktur, bestehend aus einer Datenbank, darüber die Objektschicht und einer Präsentationsschicht. Auch die automatische Verarbeitung auf den Servern funktioniert wie eine Präsentationsschicht, da auch sie immer durch die Objektschicht hindurch geht.

12 ObjectLayer ObjectLayer Datenbank Nutzdaten Metadaten Die Datenbank haben wir logisch in zwei Bereiche eingeteilt. Zum einen haben wir die Nutzdaten, welche die konkreten Informationen über Personen, Betriebsdaten, Konten, Mitgliedschaften, Gruppen beinhalten (pay-load). Zum anderen gibt es die Metadaten, welche die gesamte Dialogsteuerung, Queues für asynchrone Verarbeitung sowie die komplette Systemkonfiguration umfassen. Das Nutzdaten- Modell enthält Tabellen für: - Die Person und ihre 1:n Abbildung zu Konten - Beliebige Betriebsdaten-Strukturen mit beliebigen Mitgliedschaften als Fremdschlüssel oder auch als m:n-abbildung, um die n-dimesionale Matrix des Unternehmens darstellen zu können. - Die vollständige Abbildung der zu verwaltenden Zielsysteme. Über der Datenbank liegt eine Objektschicht. In der Objektschicht ist eigentlich vom Objekt selbst oder von Klassendefinition her nichts programmiert. Die leere Hülle der Objekte wird zur Laufzeit aus dem datenbankschema erzeugt. Die Funktionsweise der Klassen ergibt sich erst im Zusammenspiel mit den Meta-daten aus der Datenbank. Wir haben je Tabelle eine Objektklasse. Davon abgeleitet gibt es je nach Bedarf weitere Teilklassen. Je Spalte ist ein Property definiert. Zur Verfügung steht ein Satz von Datenbank-orientierten Methoden (Load, Save, GetValue, PutValue) und Events (Insert, Update, Delete). Wir stellen Ausdrucksmittel für die Quernavigation (Objectwalker) zur Verfügung, mit denen sich auf der Ebene C# Fremdschlüsselbeziehungen verfolgen lassen. Es gibt die sogenannten Customizer in der Objektebene. Diese enthalten nicht änderbare Nebenwirkungen der Objekte. Ein Beispiel dafür ist das Wechselspiel der Flag UserCanNotChangePassword UseMustChangePasswordAtNextLogon im Objekte ADSAccount.

13 Über die Metadaten der Datenbank können weitere konfigurierbare Nebenwirkungen geladen werden, die dem Kunden offen gelassen wurden. Beispiel dafür sind Bildungsregeln für Postfächer. Über Serverkomponenten, die auch gegen die Objektschicht arbeiten, erfolgt die vollständige bidirektionale Synchronisation mit den Zielsystemen. Das Management über Frontends erfolgt immer durch die Objektschicht hindurch. Als Ergebnis gibt es eine Veränderung von Nutzdaten. Parallel dazu werden auch Metadaten verändert, vorzugsweise in Queues für asynchrone Verarbeitungen. Von den Queues holen sich Server die Informationen ab und verarbeiten diese. Gleichzeitig befinden sich Server aber auch in der Rolle, daß sie Informationen und Aktionen (wie ein normales Frontend) wieder einstellen können. In den einschlägigen Studien zum Thema Identity Management und Provisioning (z.b. Burton und Gartner) tauchen immer wieder zwei Begriffe auf, über die sich die Gelehrten allzu gern streiten: Local Agent und Remote Agent. Ein Agent ist in dem Sinne ein Stück Software, welches Manipulationen an Konten im Zielsystem vornehmen kann. Der lokale Agent: Ich mache etwas über eine Remote-Konsole auf einem Server und lasse dort alles ausführen. Der Remote Agent: Ich sitze an meinem Arbeitsplatz und habe einen Durchgriff durchs Netz und mache meine Änderungen aus der Entfernung. Nach diesen Definitionen ist unser Produkt etwas, was man konsequenterweise als Distributed Agent bezeichnen muß. Betrachten wir zum besseren Verständnis den Vorgang Anlegen eines Kontos in der ADS. Im Frontend hat das Konto seine Eigenschaften bekommen und soll nun in das Zielsystem publiziert werden. Die erste Aktion hierfür ist das Anlegen des Kontos selbst. Manch einer glaubt, das wäre schon alles gewesen, doch die eigentliche Arbeit beginnt jetzt erst. Nach dem Anlegen auf dem Domain-Controller folgt ein weiterer Bearbeitungsschritt, denn der Nutzer benötigt ein Home-Verzeichnis. Dazu muß ich einen geeigneten Home-Server aus den Betriebsdaten auswählen, im Normalfall wird das standortabhängig sein. Auf dem Homeserver muß ich ein Verzeichnis anlegen, dieses sharen und Rechte für den Nutzer vergeben. Des Weiteren benötigt der Nutzer ein Postfach, welches ich sinnvollerweise auf dem Exchange-Server anlege. Aber sowohl bei der Rechtevergabe auf dem Home-Server als auch beim Anlegen des Postfaches auf dem Exchange-Server muß ich warten bis die ADS eigene Replikationen mir das Konto auf dem aktuellen Server zur Verfügung stellt. Dann muß das Konto in Rechtegruppen und Verteilerlisten aufgenommen werden, was sinnvollerweise wieder auf dem Domain-Controller passiert. Wir bevorzugen diese Vorgehensweise aufgrund der Installierbarkeit, der Lastverteilung und der Sicherheit der Daten. Wenn ich einen Dienst auf einer Maschine installiere, dessen Aktionsgebiet auf die Maschine selber beschränkt ist, bekomme ich Rechtesituation und Betriebsstabilität viel einfacher konfiguriert, als wenn ich Aktionen ausübe, bei denen man durchs Netz durchgreifen muß.

14 Dazu müßte ich einem Konto Rechte auf entfernte Ressourcen erteilen. Sobald sich aber an Kontensituationen oder Netztopologie irgend etwas verändert, ist solch eine Zuordnung von Rechten immer problembehaftet. Deswegen liegt unsere Konzentration auf lokaler Ausführung. Jeder Server holt sich aus der Queue in der Datenbank die Aufgaben ab, die durch ihn zu bearbeiten sind und meldet sein Verarbeitungsergebnis zurück. Darauf basierend besitzen wir einen Schalt- Mechanismus für Prozeßabläufe, durch die im Anschluß der möglichen Folgeschritt freigeschalten wird Vorgehensweise von VI im Projekt Die schwierigste Phase in IdM-Projekten ist die die Inbetriebnahme und hierbei wiederum das Thema Datenkonsolidierung. Im Laufe der Jahre hat sich bei uns ein Standard-Vorgehen etabliert. Die Daten zu den Betriebsstrukturen werden durch Importe oder durch manuelles Anlegen erzeugt. Die Personen werden aus einem HR-System importiert, das klappt zumindest für alle die, die auf der Lohnliste stehen. Jetzt fehlen noch externe Mitarbeiter von Dienstleistern bzw. Leiharbeiter. Weitere Personendaten oder auch weitere Eigenschaften von Personen werden durch Import aus Telefonbuch-Applikationen, Telefonanlagen-Speichern oder später direkt aus Konten gewonnen. Danach werden alle relevanten Zielsysteme mit Konten, Gruppen und Mitgliedschaften eingelesen. Auf Basis dieser Daten machen wir eine erste Zuordnung der Personen zu den Konten. Diese Zuordnung erfolgt durch einmaliges Anwenden von Mapping Regeln in den Fällen, bei denen die Regel ein eineindeutiges Ziel ermittelt. Mit dieser Methode erreicht man ca % Datenqualität. Die so erzeugten Daten gehen als Korrekturlisten an die Abteilungen, da auf dieser Ebene die Personen durch direkten Kontakt bekannt sind und die Informationen oft wesentlich aktueller vorhanden sind. Den Abteilungsleitern wird ein Frontend im Intranet zur Verfügung gestellt, mit dem sie ihren Änderungen vornehmen können. Bis hierher kommen wir auf über 95 % Datenqualität. Alle Konten, die sich bis zu diesem Stand nicht zuordnen lassen, werden gesperrt. Wir gehen aus Erfahrung davon aus, daß sich der Inhaber des Kontos in der EDV- Abteilung melden wird, sofern er noch Bedarf hat. Die ausgelesenen Gruppen-Zuordnungen der Konten werden soweit möglich umgesetzt auf Erbschaften über Betriebsdaten, sofern die Beziehung zwischen z.b. einer Abteilung und einer Gruppenmitgliedschaft eindeutig ist und der Kunde dies wünscht. Ein anderer oder manchmal auch zusätzlicher Weg ist die Umsetzung der Gruppenzuordnungen auf Bestellungen im IT-Shop. Die Zuordnungen werden so aufbereitet, als ob sie im Intranet bestellt, genehmigt und zugeordnet wären. Das gibt dem Kunden die Möglichkeit, solche Zuordnungen einfach abbestellen zu können. Die Zuordnung der Konten zu Personen kann ebenfalls wie eine ITShop-Bestellung aufbereitet werden, so daß z.b. ein Abteilungsleiter für seinen Mitarbeiter ein Konto wieder abbestellen kann, wenn er dies nicht mehr benötigt.

15 4) Plattform - unabhängige Implementierung 4.1 Die Voraussetzungen bei VI Die Wurzeln von Völcker Informatik liegen ganz eindeutig im Microsoft-Umfeld Alles was bisher beschrieben wurde, hatten wir über die Jahre schon Stück für Stück in C++ und COM - Technologie (für die Zugriffs- und Objektebene) bzw. in Visual Basic für die Frontends implementiert. Als Datenbank diente MSSQL in den Versionen 6.5, 7 und auch Alle Mitarbeiter haben mit Microsoft DevStudio 5 und 6 gearbeitet, VI-Editor und Arbeit ohne einen Schritttest-Debugger hat niemand mehr akzeptiert. Die Niederlassung Dresden setzt sich nach Aufgaben heute wie folgt zusammen (Teilzeitverträge und Aufgabenteilungen sind anteilig umgerechnet auf ganze Stellen) Objektschicht 1 Zielsystem Abgleich 1 Standard-Frontends (Fat + Web) 2 QS 1,5 Standard-Prozesse 0,75 Kundenspezifische Frontends 1 Dokumentation 1 Entwicklung primäre Datenbank 1 Umsetzung Oracle 0,3 Support 1,5 Das bedeutete, je nach Zählweise ca. 7 Leute für alle Entwicklungen Für alle Software-Ebenen mußte eine Entscheidung fallen für ein System unter dem primär entwickelt wurde. Alle anderen Plattformen müssen dann per Anpassen / Abschreiben nachgezogen werden. Bei der Entwicklung auf der jeweiligen Primärplattform müssen die Einschränkungen durch die anderen Plattformen immer schon berücksichtigt werden. Alles was gebaut wird, muß Unit-Tests erhalten, die identisch auch in der Sekundär - Implementierung ablaufen.

16 4.2 Die Kundenforderungen Die Kundenwünsche beinhalten Plattformunabhängigkeit hinsichtlich - Datenbank - Zugrunde liegendes Betriebssystem, Programmiersprache und Laufzeitumgebung - Frontend-Technologie als Exe bzw. als Browser-Frontend wobei der Webserver und der Browser selbst auch wieder Plattformunabhängig sein sollen. Insgesamt ergibt das die nachfolgend skizzierte Vielfalt an Möglichkeiten

17 4.3 Die Lösungswege Das Ergebnis soll hier schon einmal vorweggenommen werden. Aus unserer Sicht hat man genau 3 Lösungsmöglichkeiten, um eine Software plattformunabhängig zu entwickeln. Nr. 1 die schöne heile Welt: Wir haben identischen Schnittstellen auf allen Plattformen. Dazu entwickelt man einen Quelltext, compiliert diesen und läßt das Ergebnis auf alle Plattformen laufen. Nr. 2 die ähnliche Welt: Die Zielumgebungen sind sich zumindest weitgehend ähnlich, haben eine ausreichend großen Durchschnittsmenge, so daß sich eine Entwicklung auf einer Meta-Ebene lohnt. Das bedeutet, daß man auf einer abstrahierten Ebene entwickelt und dann entweder zur Laufzeit oder zur Generierungszeit aus dieser Meta-Ebene ein Programm erzeugt, das auf den jeweiligen Plattformen läuft. Nr. 3 die Unterwelt: Die Zielumgebungen sind so unterschiedlich, daß getrennte Implementierungen notwendig sind. Üblicherweise wird für ein Primärsystem entwickelt und nach erfolgten Tests der Code anschließend durch Abschreiben in eine oder mehrere Sekundärimplementierungen übertragen. In Reinform trifft man diese Möglichkeiten in der Realität fast nie an. Meistens treten Mischformen auf. 5) Konkrete Implementierung der Ebenen 5.1 Die Businesslogik / Objekt-Ebene Für die Implementierung einer plattformunabhängigen Objekt - Ebene standen im Jahr 2002 zwei relevante Systeme zur Auswahl: Die zuerst untersuchte und damals auch bekanntere Grundlage war Java. Es war damals schon weit verbreitet und hatte vor allem serverseitig eine große Akzeptanz erreicht. Die Fat - Clients waren jedoch recht langsam und instabil. Für die Zukunftssicherheit der Entscheidung kam erschwerend hinzu, daß Java kein offener Standard ist, sondern unter Hoheit der Firma SUN steht. Als technisches Problem stellte sich die Einbindung von nativem Code heraus, welcher jedoch bei der Ansteuerung z.b. einer ADS oder eines Notes-API benötigt wird. Die Alternative hieß.net Framework mit C# als Entwicklungssprache. Das war für uns aufgrund unserer Vergangenheit eine vertraute Entwicklungsumgebung mit der auch native Windows-Frontends möglich waren..net war eingereicht als ECMA-Standard und eine Portierung auf andere Betriebssysteme war mit dem quelloffenen Mono im Entstehen. Mono war zwar

18 anfangs noch nicht ausgereift, Probleme konnten von uns aufgrund der Quelloffenheit gefixt und an die Mono-Community eingereicht werden. Die Einbindung von bestehendem Code war für eine Übergangszeit bzw. für die direkte Betriebssystemansteuerung möglich. Letztendlich trafen wir also unsere Entscheidung zugunsten.net. Eine totale Plattformunabhängigkeit läßt sich nicht erreichen, es gibt immer Fallstricke zu beachten. Einige Beispiele dafür sollen nachfolgend kurz benannt werden. - Pfade im Dateisystem Linux ist in diesem Bereich Case Sensitiv, Windows ist Case Insensitiv. Beide Betriebssysteme haben andere Trennzeichen und andere Verzeichnisstrukturen (Laufwerksbuchstaben) - Fehlende Features Linux kennt keine Registry und keine COM-Interfaces - Unterstützung für Oberflächenbibliotheken Es gibt erhebliche Unterschiede zwischen WinForms und GTK# - externen Bibliotheken In den Anfangszeiten gab es für MONO keine vollständige VB.NET- Umsetzung - Verwendung von nicht portablen externen Bibliotheken Zugekaufte Controls oder Bibliotheken enthalten oftmals native Betriebssystem-Aufrufe, das ist z.b. bei fast alle Reporting-Werkzeugen der Fall - Nutzung von Tools, die nur auf einem der Systeme zur Verfügung stehen (z.b. Robocopy vs. Rsync) Die Grundregel lautet hier: Soweit wie möglich abstakt implementieren und z.b. Path.Combine statt String.concat verwenden. Wenn es wirklich massive Unterschiede gibt, greift Methode 3: Man verwende einen Case-Block, der nach Betriebssystemen differenziert. Zu diesem Zweck kann man ein zentrales Property unserer Klassenbibliothek zur Unterscheidung abfragen. 5.2 ) Datenbank-Ebene Was ist das Schöne an Standards? Daß es so viele davon gibt! Es gibt einen ANSI-SQL-Standard. Man kann sich daran orientieren und es ist als Lehrbeispiel auch gut zu verstehen. Daneben gibt es die Implementierung von Microsoft mit dem Namen Transact-SQL, meist abgekürzt mit T-SQL. Weiterhin gibt es eine Implementierung von Oracle, die sich PL/SQL nennt. Die nachfolgenden Aussagen sind nicht wissenschaftlich, sondern eher im Gefühlsbereich angesiedelt. Es gibt Überschneidungen und Differenzmengen zwischen MSSQL, Oracle und dem ANSI-Standard. ANSI-SQL ist von Haus aus, was Abläufe und prozentuale Elemente betrifft, etwas schwach auf der Brust Da ist eigentlich gar nichts definiert.

19 PL/SQL T-SQL ANSI-SQL Unser Ziel war immer offen zu bleiben für die spätere Integration weiterer Datenbanksysteme. Deshalb wurde vor Grundsatzentscheidungen auch immer die Machbarkeit gegen PostgreSQL abgetestet. DB2 haben wir außen vor gelassen, da es bei unseren Kunden so gut wie nicht vorkommt und MySQL mußten wir ignorieren, da es mit Triggern und SPs noch nicht so weit war Generierung und Single Source Die Datenbank ist der Kern unseres Produktes, die Stelle, wo alle Informationen zusammenlaufen. In der Codestatistik im Anhang kann man erkennen, wie sich dieser Sachverhalt auch auf die Code-Menge auswirkt. Das konnten wir natürlich nicht alles zweimal machen. Deswegen ist es nötig zu differenzieren. Soweit wie möglich nutzen wir Meta- Entwicklung aus einer einzigen Quelle. Das Datenbankschema wird mit einem schönen, alten Werkzeug gepflegt, das inzwischen schon 10 Jahre alt ist und ERWin heißt. Wir nehmen unsere Entity-Relationship-Modelle um das Schema zu definieren und daraus einen Report zu erstellen. Weiterhin haben wir ein kleines Generierungstool und generieren uns aus dem Report des Modells das eigentliche Schema. Die Generierung erzeugt das Schema mit allen Tabellen, Indizes, allen Anweisungen für referentielle Integrität (teilweise als Trigger, teilweise als Constraint).

20 Im nachfolgenden Beispiel sehen wir die generierten Quelltexte für die Tabellendefinition für Betriebssystem-Informationen. Die beiden Texte sehen sich noch recht ähnlich, haben aber schon ein paar Unterschiede, die rot gekennzeichnet wurden. Bsp.: Create Table Create Table OS ( Ident_OS varchar(32) NOT NULL, UID_Licence char(38) NULL, Name varchar(64) NULL, Version varchar(64) NULL, IsServerOS bit default 0 NULL, IsClientOS bit default 0 NULL, XDateInserted datetime NULL, XDateUpdated datetime NULL, XUserInserted varchar(64) NULL, XUserUpdated varchar(64) NULL, XTouched char(1) NULL Primary Key (Ident_OS) ) go Create Index XIF1126OS on OS ( UID_Licence ) go Create Table OS ( Ident_OS Varchar2(32 ) NOT NULL, UID_Licence Varchar2(38 ) NULL, Name Varchar2(64 ) NULL, Version Varchar2(64 ) NULL, IsServerOS Number(1,0 ) default 0, IsClientOS Number(1,0 ) default 0, XDateInserted Date NULL, XDateUpdated Date NULL, XUserInserted Varchar2(64 ) NULL, XUserUpdated Varchar2(64 ) NULL, XTouched Varchar2(1 ) NULL, Primary Key (Ident_OS) ) go Create Index XIF1126OS on OS ( UID_Licence ) go Der Name von Tabellen darf bei Oracle aus historischen Gründen nur 30 Zeichen betragen, Microsoft hingegen erlaubt bis zu 260 Zeichen. Will man beide Systeme verwenden, muß man praktisch alles auf die kleine Variante reduzieren also 30 Zeichen. Die Gültigkeit von Namen ist bei Oracle prinzipiell schemaweit. Bei Microsoft muß Indexname nur unikal sein im Zusammenhang mit dem Tabellennamen. Die Wertarten sind ein Thema für sich. Varchar ist Standard für alle variablen Zeichenketten. Oracle besitzt außerdem ein Varchar2. Oracle kennt zwar auch ein varchar, das ist aber kaum in Verwendung. Varchar2 wurde wahrscheinlich deshalb so genannt, weil es ein bißchen anders ist. Microsoft trennt strikt: eine leere Zeichenkette ( ) ist etwas anderes als ein Null-Wert. Oracle sagt, es ist dasselbe. Das kann einem ganz böse auf die Füße fallen, wenn man für beide Plattformen etwas entwickelt. Microsoft kennt für logische Informationen die Wertart Bit. Sie kann die Werte 0,1 und null annehmen und benimmt sich ansonsten wie andere numerische Werte. Oracle hingegen kennt einen richtigen boolean mit true und false. Damit wir aber wieder kompatibel in der ganzen darüber liegenden Umgebung sind, haben wir bei Oracle logische Werte generiert als Numeric (1,0) und interpretieren das auf der Objektebene als logischen Wert mit 0 und 1. Nach außen aus der Objektschicht kommt es als boolean mit true und false wieder an. Ein ganz böses Thema ist der ANSI-Join. Diese Notation kann Oracle überhaupt erst seit Version 9. Leider ist die Implementierung so instabil, da man bei Verwendung der ANSI-Notation Fehler in der Zugriffsschicht provozieren kann, wenn mehr als 5 (Version 9) oder 7 Tabellen (Version 10) beteiligt sind.

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

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

15 Bilder und Dateien im SQL Server

15 Bilder und Dateien im SQL Server Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 15 Bilder und Dateien im SQL Server Eines der großen Probleme von Access-Datenbanken ist der vergleichsweise geringe Speicher platz. Sicher,

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

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

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

NoSQL mit Postgres 15. Juni 2015

NoSQL mit Postgres 15. Juni 2015 Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Programme deinstallieren,

Programme deinstallieren, Programme deinstallieren, Programme mit Windows deinstallieren: Sie haben Programme auf Ihrem Rechner, die Sie gar nicht oder nicht mehr gebrauchen. Sie sollten solche Programme deinstallieren, denn die

Mehr

Technische Produktinformation: Active Directory- Management in bi-cube

Technische Produktinformation: Active Directory- Management in bi-cube Inhalt: 1 bi-cube -FEATURES ACTIVE DIRECTORY... 2 2 DAS SYSTEMKONZEPT... 3 3 WAS SIND ADOC UND ECDOC?... 3 4 DIE WICHTIGSTEN FUNKTIONEN IM ÜBERBLICK... 5 4.1 Verwaltung der Strukturdaten... 5 4.2 Verwaltung

Mehr

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

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

Mehr

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

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

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

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

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen?

Oracle und.net sind ein populäres Gespann. Doch wie lassen sich Oracle Features mit.net nutzen? Betrifft Autor Oracle und.net im n-tier Umfeld Urs Meier (urs.meier@trivadis.com) Art der Info Technical Info (April 2003) Quelle Aus unserer Projekterfahrung Einführung Oracle und.net sind ein populäres

Mehr

Übungsblatt 8- Lösungsvorschlag

Übungsblatt 8- Lösungsvorschlag Universität Innsbruck - Institut für Informatik Prof. Günther Specht, R.Binna, N.Krismer, M. Tschuggnall 30. November 2012 Proseminar Datenbanksysteme Übungsblatt 8- Lösungsvorschlag Aufgabe 1 (Trigger)

Mehr

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine.

In Tabelle 2.1 sehen Sie das Ergebnis beider Ausführungen auf meiner Maschine. Kapitel 2 Datenverwaltung durch SQL Server Wir wollen das obige Skript zwei Mal laufen lassen, einmal mit und einmal ohne eingeschalteten Schreibcache der Festplatte. Für eine lokale Festplatte können

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

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

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr

Wichtige Hinweise zu REFLEX 9

Wichtige Hinweise zu REFLEX 9 Wichtige Hinweise zu REFLEX 9 Mit der Version 9 beginnt für REFLEX ein neues Zeitalter: Es wird ein neuer Datenbank-Treiber eingeführt, der sich "ADO" nennt. Der bisherige Datenbank-Treiber "BDE" wird

Mehr

Manual zur Excel-Oracle Schnittstelle (Version 4.2.2008, Peter Jakob, Peter Waldner)

Manual zur Excel-Oracle Schnittstelle (Version 4.2.2008, Peter Jakob, Peter Waldner) Manual zur Excel-Oracle Schnittstelle (Version 4.2.2008, Peter Jakob, Peter Waldner) 1. Funktion der Schnittstelle Diese Schnittstelle ermöglicht das Transferieren von Daten aus einem Excel-Datenblatt

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

DB2 SQL, der Systemkatalog & Aktive Datenbanken

DB2 SQL, der Systemkatalog & Aktive Datenbanken DB2 SQL, der Systemkatalog & Aktive Datenbanken Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Auf DB2 Datenbanken zugreifen DB2 Datenbanken benutzen Abfragen ausführen Den Systemkatalog

Mehr

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de Innovator 11 excellence DDL importieren Data-Definition-Language-Dateien in Datenbankschema importieren HowTo www.mid.de Zweck In Innovator Data excellence können Sie mit dem DDL-Import Ihr physisches

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

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

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

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133. Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Dokumentation Schulprojekt: Samba als Serverdienst

Dokumentation Schulprojekt: Samba als Serverdienst Dokumentation Schulprojekt: Samba als Serverdienst Sandra Schreiner und Sascha Lenhart 20. September 2007 Inhaltsverzeichnis 1 Einleitung 3 1.1 Projektbeschreibung.............................. 3 1.2 Projektziele...................................

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

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

OU Verwaltung für CV's

OU Verwaltung für CV's OU Verwaltung für CV's Version Datum Autor Änderung 01 7.12.06 JM Meyer Original 02 14.5.08 JM Meyer Typo und Ergänzungen 03 16.5.08 JM Meyer LMHOSTS lookup entfernt 04 3.7.08 JM Meyer Typo und Ergänzungen

Mehr

Hadoop. Simon Prewo. Simon Prewo

Hadoop. Simon Prewo. Simon Prewo Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert

Mehr

Entwicklungsumgebung für die Laborübung

Entwicklungsumgebung für die Laborübung Entwicklungsumgebung für die Laborübung VU Datenbanksysteme Wolfgang Fischl Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

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

Installationsanleitung dateiagent Pro

Installationsanleitung dateiagent Pro Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation

Mehr

IKONIZER II Installation im Netzwerk

IKONIZER II Installation im Netzwerk Der IKONIZER II ist netzwerkfähig in allen bekannten Netzwerken. Da jedoch etwa 95% der Installationen lokal betrieben werden, erfolgt diese grundsätzlich sowohl für das Programm wie auch für den lizenzfreien

Mehr

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht Dipl. Inf. Eric Winter Entwicklungsleiter PTC GPS-Services GmbH PostgreSQLals HugeData Storage Ein Erfahrungsbericht Inhalt 1. Problembeschreibung 2. Partielle Indexierung 3. Partitionierung 1. Vererbung

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

So geht's: Import von Daten in den address manager

So geht's: Import von Daten in den address manager combit GmbH Untere Laube 30 78462 Konstanz So geht's: Import von Daten in den address manager Einleitung 2 Voraussetzungen 2 Beispiele aus der Praxis 3 Beispiel 1 Import einer Excel Tabelle 3 Beispiel

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

FileMaker Factory GmbH, c/o Darko Stula, Bläsiring 150, 4057 Basel, +41 78 880 00 36, mail@bfiles.ch

FileMaker Factory GmbH, c/o Darko Stula, Bläsiring 150, 4057 Basel, +41 78 880 00 36, mail@bfiles.ch b'files. helpfile FileMaker Factory GmbH, c/o Darko Stula, Bläsiring 150, 4057 Basel, +41 78 880 00 36, mail@bfiles.ch B'FILES, OUTLOOK UND GENIUS CONNECT GeniusConnect ist ein PlugIn für MS-Outlook. Es

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

Server Installation 1/6 20.10.04

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

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

SYNCHRONISATION MICROSOFT OUTLOOK - PSION SERIE5

SYNCHRONISATION MICROSOFT OUTLOOK - PSION SERIE5 SYNCHRONISATION MICROSOFT OUTLOOK - PSION SERIE5 (Tom Klingeberg - 22.11.99) Inhaltsverzeichnis Synchronisation Microsoft Outlook - Psion Serie5... 1 Es stellt sich folgende Ausgangsfrage:... 2 Szenario

Mehr

Serverumzug mit Win-CASA

Serverumzug mit Win-CASA Serverumzug mit Win-CASA Wenn Sie in Ihrem Netzwerk einen Umzug der Server-Version durchführen müssen, sollten Sie ein paar Punkte beachten, damit dies ohne Probleme abläuft. 1. Nachweis-Ordner In der

Mehr

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent

Mehr

Whitepaper Walkyre Enterprise Resource Manangement

Whitepaper Walkyre Enterprise Resource Manangement Whitepaper Walkyre Enterprise Resource Management Seite 1 Whitepaper Walkyre Enterprise Resource Manangement Stand 15.11.2004 Inhalt 1. Hinweis... 2 2. Grundsätzliches zur Funktionalität... 3 3. Der Walkyre-Client...

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

Archiv. Zum Vergrößern auf das Bild klicken.

Archiv. Zum Vergrößern auf das Bild klicken. Konfiguration von Microsoft Entourage Links: Entourage ist Teil von Microsoft Office für Mac OS X. Es kann als reines Mail-Programm für beliebige POP- oder IMAP-Postfächer benuzt werden, aber erst im Zusammenspiel

Mehr

Methoden zur Benutzerüberprüfung im ELMS 1.1

Methoden zur Benutzerüberprüfung im ELMS 1.1 Methoden zur Benutzerüberprüfung im ELMS 1.1 2012-12-21 Kivuto Solutions Inc [VERTRAULICH] INHALTSVERZEICHNIS ÜBERSICHT...1 ÜBERPRÜFUNGSMETHODEN...2 Integrierte Benutzerüberprüfung (IUV)...2 Shibboleth

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

ADMINISTRATION/NETZWERKEINSTELLUNGEN

ADMINISTRATION/NETZWERKEINSTELLUNGEN Cadia Office Betrieb in einer Mehrplatzumgebung Grundlegendes Die Installationsroutine von CadiaOffice ist für die Nutzung auf einem Arbeitsplatz konzipiert und installiert somit alle notwendigen Dateien

Mehr

Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2

Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2 Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2 1 Ein neues Signal in der CS2 anlegen Führen Sie die folgenden Schritte aus, um ein neues Signal in der CS2 anzulegen und

Mehr

Cubeware Connectivity for SAP Solutions

Cubeware Connectivity for SAP Solutions Cubeware Connectivity for SAP Solutions Beispiele und Anwendungsfälle 1. Modellierung, Extraction, Transformation und Loading mit Datenquelle SAP R/3 und mysap ERP Mit Hilfe des Cubeware Importers und

Mehr

AixVerein 2.0 - Anleitung zur Einrichtung des

AixVerein 2.0 - Anleitung zur Einrichtung des Seite 1/6 AixVerein 2.0 - Anleitung zur Einrichtung des Datenbank-Servers und der Dokumentenablage Bei der vorliegenden Anwendung handelt es sich um eine Client-Server-Anwendung, d.h. die Software wird

Mehr

Mit dem 6. Rundbrief gelange ich mit einem Update des Zeitservers an Alle.

Mit dem 6. Rundbrief gelange ich mit einem Update des Zeitservers an Alle. Rundbrief 6 Aktuelles aus der SAS Softwarewelt. 0.1 Zeit Server Update Werte Anwender Mit dem 6. Rundbrief gelange ich mit einem Update des Zeitservers an Alle. Das Update wurde aus Kompatibilitätsgründen

Mehr

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

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

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

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

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor 15. 2 Die grafischen Tools des SQL Server 2008 59. 3 Eine neue Datenbank erstellen 87

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor 15. 2 Die grafischen Tools des SQL Server 2008 59. 3 Eine neue Datenbank erstellen 87 Vorwort 11 1 Der SQL Server 2008 stellt sich vor 15 1.1 SQL Server wer ist das? 16 1.1.1 Der SQL Server im Konzert der Datenbanksysteme 16 1.1.2 Entscheidungsszenarien für Datenbanksysteme 17 1.1.3 Komponenten

Mehr

SMARTtill Server mit Manager

SMARTtill Server mit Manager SMARTtill Server mit Manager Benutzerhandbuch 2014 Das Handbuch bezieht sich auf die Standardeinstellungen bei einer Pilotinstallation. Bei neuen Partnernprojekten sind Anpassungen zwingend notwendig und

Mehr

Hardware- und Software-Anforderungen IBeeS.ERP

Hardware- und Software-Anforderungen IBeeS.ERP Hardware- und Software-Anforderungen IBeeS.ERP IBeeS GmbH Stand 08.2015 www.ibees.de Seite 1 von 8 Inhalt 1 Hardware-Anforderungen für eine IBeeS.ERP - Applikation... 3 1.1 Server... 3 1.1.1 Allgemeines

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken

2 7 Erweiterungen. 7.1 Prozess-Kommunikation mit Datenbanken 2 7 Erweiterungen 7 Erweiterungen 7.1 Prozess-Kommunikation mit Datenbanken Im Buch Einstieg in das Programmieren mit MATLAB wird im Abschnitt 4.8 das Thema Prozess-Kommunikation am Beispiel von MS-Excel

Mehr

Success Story Von Novell zu Microsoft

Success Story Von Novell zu Microsoft Success Story Von Novell zu Microsoft www.netlogix.de 1 Der Kunde Die Diakonie Neuendettelsau ist mit 180 Einrichtungen der größte diakonische Träger in Bayern. Sie bietet für Menschen mit einer geistigen

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

IT-Symposium. 2E04 Synchronisation Active Directory und AD/AM. Heino Ruddat

IT-Symposium. 2E04 Synchronisation Active Directory und AD/AM. Heino Ruddat IT-Symposium 2006 2E04 Synchronisation Active Directory und AD/AM Heino Ruddat Agenda Active Directory AD/AM Möglichkeiten der Synchronisation Identity Integration Feature Pack Microsoft Identity Integration

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

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

Mehr

xcall Technische Dokumentation

xcall Technische Dokumentation xcall Technische Dokumentation zu Version 4.x Autor: Martin Roth Erstelldatum: 14.08.2008 Version: 1.4 Seite 2 / 7 Zweck...3 Schnittstellenarchitektur...3 Outbound-Schnittstellen...3 Outlook...3 TwixTel...3

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

Gliederung. Konzeption und Umsetzung von Identity Management an der FH-Osnabrück und der Vergleich zu anderen Hochschulen

Gliederung. Konzeption und Umsetzung von Identity Management an der FH-Osnabrück und der Vergleich zu anderen Hochschulen ZKI Tagung e 08/09.02.10 Konzeption und Umsetzung von Identity Management an der FH-Osnabrück und der Vergleich zu anderen Hochschulen Dipl.-Ing IT (FH) Jürgen Kuper FH Osnabrück Management und Technik

Mehr

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte

Whitepaper. Produkt: combit Relationship Manager 7, address manager 17. Import von Adressen nach Firmen und Kontakte combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7, address manager 17 Import von Adressen nach Firmen und Kontakte Import von Adressen nach Firmen und Kontakte

Mehr

Erstellen sicherer ASP.NET- Anwendungen

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

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager FILESTREAM für Microsoft SQL Server aktivieren FILESTREAM für Microsoft SQL Server aktivieren

Mehr

Windows Server Update Services (WSUS)

Windows Server Update Services (WSUS) Windows Server Update Services (WSUS) Netzwerkfortbildung, Autor, Datum 1 WSUS in der Windows Was ist WSUS? Patch- und Updatesoftware von Microsoft, bestehend aus einer Server- und einer Clientkomponente

Mehr

Relationale Datenbanken Kursziele

Relationale Datenbanken Kursziele Relationale Datenbanken Kursziele DB Grundlagen Daten-Modellierung Relationales Modell und DB => Praxis: Mit SQL als Anfragesprache Mit MySQL als DB RDB 1-1 Kursinhalt (Tage) 1. DB Einleitung / Entity-Relationship

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Revolver Server Handbuch

Revolver Server Handbuch Revolver Server Handbuch 2011 Revolver Software GmbH 1 Schneller Start 1.1 Einführung 4 1.2 Installation 5 1.3 Server hinzufügen 9 1.4 Freischalt-Code eingeben 13 1.5 Server starten 16 1.6 Mit dem Client

Mehr

Inbetriebnahme des Oracle-Einschubs für DBF, DBB und DBP Markus Rohner

Inbetriebnahme des Oracle-Einschubs für DBF, DBB und DBP Markus Rohner <rom@zhwin.ch> Inbetriebnahme des Oracle-Einschubs für DBF, DBB und DBP Markus Rohner Version: 1.0.2 Datum: 10.3.2004 08:28 1 Einleitung 1.1 Über diese Anleitung Diese Anleitung ist als Hilfe bei der Inbetriebnahme

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

Auf der Homepage steht

Auf der Homepage steht Auf der Homepage steht VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product

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

5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7

5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7 5.0 5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7 Einführung Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung verwenden Sie administrative Tools zur

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr