WWW-Data Warehouse auf SESAM-Basis RUM 49 / 96 Alexander Hofer Rechenzentrum Universität Mannheim Wolfgang Müller Frischdienst-Rechenzentrum Hannover Dieser Bericht beschreibt die Aufgabenstellung, Durchführung und die Ergebnisse des Projekts WWW-Data Warehouse auf SESAM-Basis. Zentraler Punkt des Projekts war die Konzeption und Implementierung eines Prototyps für ein Informationssystem der Frischdienst-Zentrale in Hannover, das in einer Client/ServerUmgebung über das World Wide Web den Zugriff auf eine Statistikdatenbank ermöglicht. Partner des Projekts waren: Universität Mannheim Rechenzentrum 68131 Mannheim fz-Frischdienst-Zentrale GmbH & Co Hägenstraße 1 30559 Hannover (Anderten) Siemens Nixdorf Informationssysteme AG Otto-Hahn-Ring 6 81739 München 1 EINLEITUNG 1 1.1 Beschreibung eines Data Warehouse 2 1.2 Data Warehouse im FRZ 3 1.3 Data Warehouse Entwicklung 6 2 DIE ANBINDUNG DES DATA WAREHOUSE AN DAS WWW 14 2.1 Szenario 14 2.2 Evaluierung von SNI-Software 16 2.2.1 SQL-GATEWAY 16 2.2.2 DRIVE / WINDOWS 16 2.2.3 SQL*Connect to SESAM/SQL 17 2.2.4 Database Access Service (DBA) 18 2.3 Implementierung 20 2.3.1 Web-Seiten / Masken 20 2.3.2 Komponenten 29 2.4 Probleme 33 2.5 Ausblick 35 I 1 Einleitung Bill Inmon, „Vater“ des Data Warehouse-Konzepts (Warehouse = Warenlager, Lagerhaus) definiert Data Warehouse als „themenorientierte, zeitlich veränderliche und nicht flüchtige Datensammlung zur Unterstützung von Management-Entscheidungen“. Nun kann der Begriff „Datensammlung“ sowohl die Tätigkeit (Sammeln von Daten) als auch deren Ergebnis (gesammelte Daten) bezeichnen. In der aktuellen Warehouse-Diskussion werden derzeit beide Begrifflichkeiten verwendet: Data Warehouse im Sinne von Ergebnis meist für die Beschreibung eines Datenhaltung-Systems; im Sinne von Tätigkeit als Beschreibung eines ganzheitlichen Geschäftsprozesses und dessen Endprodukt. Daten zur Unterstützung von Management-Entscheidungen zu sammeln ist nun keineswegs neu, sondern wird schon seit längerem mit unterschiedlichen Methoden und vermutlich unterschiedlichem Erfolg praktiziert. Wenn wir es hier also mit einem - salopp gesprochen - „alten Hut“ zu tun haben, stellt sich natürlich die Frage warum gerade heute dieses Thema die aktuelle Diskussion, und das nicht nur innerhalb der IT-Branche, so stark prägt. Während in der Vergangenheit meist versucht wurde, Informations-Systeme auf der Basis transaktionsorientierter (OLTP) Operativ-Systeme zu betreiben, hat sich mittlerweile die Erkenntnis durchgesetzt, daß das analytisch geprägte Warehousing (OLAP) andere, speziell auf diese Tätigkeit zugeschnittene Voraussetzungen braucht. Deshalb geht man zunehmend dazu über, Warehousing auf einer eigens dafür vorgesehenen IT-Ebene mit z.T. eigener Hardware, eigener Datenspeicherung und eigenen Anwender-Tools parallel zu den Operativ-Systemen zu betreiben. Begünstigt wird dieser Trend heute durch • leistungsfähige Hardware - vor allem im Midrange-Bereich, • sinkende Preise bei CPU und Plattenspeicher, • vielfältige LAN/WAN-Verbindungsmöglichkeiten, 1 • die für Analysen optimale Datenaufbereitung in Form von OLAP-Speicherungen. Darüber hinaus stehen zur Auswertung der in einem Warehouse abgelegten Informationen mittlerweile komfortable Tools zur Verfügung, die über Standardfunktionen hinaus in der Regel auch Entwicklungsumgebungen auf der Basis objektorientierter Programmierung für eigene Funktionen anbieten. 1.1 Beschreibung eines Data Warehouse Das Data Warehouse gibt es nicht. Warehouse-Lösungen weisen branchen- und unternehmensspezifische Unterschiede auf und können auch in den betriebswirtschaftlichen Zielsetzungen sowie in der technischen Auslegung erheblich voneinander abweichen. Trotzdem gibt es aber wiederum auch Gemeinsamkeiten, die sich in vielen Warehouse-Lösung mehr oder weniger vollständig wiederfinden. Data Warehouse läßt sich also derzeit nicht als neuer Standard, sondern eher als gemeinsames Dach interpretieren, unter dem sich eine ganze Reihe unterschiedlicher Lösungen angesiedelt haben, die möglicherweise zu gleichen oder ähnlichen Zielen führen sollen. Als Beispiele häufiger gemeinsamer Zielsetzungen von Warehouse - Lösungen ließen sich auf betriebswirtschaftlicher Basis u.a. • Analysen von Umsätzen, Absatzkanälen, Marketingprogrammen, • Analysen der Kunden- und Produkt-Profitabilität, • Einkaufs-, Investitions- und Personal-Controlling, • Ergebnisrechnung, Budgetierung und Risk-Management und als System-Komponenten 2 • hoch aggregierte, schwach aggregierte und Detail-Daten, • Metadaten, • Altdaten, • relationale und/oder OLAP-Datenbanken, • Auswahl- und Verdichtungsprogramme, • Auswertungs-Tools, • Netzwerke anführen. Data Warehouses enthalten viele Bestandteile und werden aus unterschiedlichen Teilen zusammengebaut. Jedes einzelne davon kann - im Prinzip - unter dem Gesichtspunkt optimaler Aufgabenerfüllung separat ausgewählt werden. Da sich Data Warehouse-Prozesse zudem auch oft über verschiedene System- und Hardware-Plattformen hinweg abspielen, gilt auch hier die gleiche Philosophie, Teilprozesse durch die jeweils am besten geeignete Hardware, System- und/oder Anwendungs-Software zu unterstützen. Die Kompatibilität der Komponenten untereinander wird dabei durch Standard-Schnittstellen wie z.B. SQL, ODBC und Netzwerk-Standards wie TCP/IP mittlerweile sehr gut gewährleistet. Unterhalb des Data Warehouse als Abbild des Gesamtunternehmens gibt es noch den Begriff des „Data-Mart“, in dem nur ein oder mehrere Teile des Unternehmens gespiegelt werden. Aus verschiedenen Data-Marts läßt sich wiederum ein Data Warehouse bauen. Dieses Vorgehensmodell bietet den Vorteil, über Prototyping sein Warehouse sukzessive aufzubauen getreu der in Warehouse-Projekten vertretenen Philosophie „Think big, start small“. 1.2 Data Warehouse im FRZ Die Frischdienst-Zentrale (FZ) mit Sitz in Hannover ist ein Zusammenschluß von eigenständigen Frischdienst-Distributeuren, für die sie Marketing-Aktivitäten koordiniert und als IT-Dienstleister 3 auftritt. Das gesellschaftseigene Frischdienst-Rechenzentrum (FRZ) ist für den Betrieb der notwendingen Infrastruktur der Informationstechnologie zuständig und betätigt sich als Servicezentrum, Softwarehaus und Beratungsunternehmen. Die FZ fungiert als Bindeglied zwischen ihren Mitgliedern und deren Lieferanten und Kunden, wobei die Kernbereiche der Unternehmen im Handel mit Lebensmitteln im allgemeinen bzw. mit Frisch- und Tiefkühlwaren im speziellen liegen. Produzent Bestellung Handel Ware Aktionen Preise Bestellung Ware Frischdienst-Distributeure Daten- Transfer fz-Frischdienst-Zentrale GmbH & Co FRZ Rechenzentrum GmbH Daten Statistik - Datenbank Abbildung 1: Waren- und Informationsfluß Typische betriebswirtschaftliche Fragestellungen, die durch Analyse der Warehouse-Daten beantwortet werden sollen, sind sowohl für den FZ Gesellschafter als auch für Produzent und Handel: • Trends und Entwicklungen über Absatz- und Umsatzzahlen, • Marktanteile und Wettbewerbsvergleiche von Produzenten, • Indizes für verschiedene Zeiträume , • Absatz- / Umsatzdaten für den Handel, 4 • Testmarkt-Service durch eine spezifische und zeitnahe Unterstützung bei der Einführung neuer Produkte, • logistische Kennzahlen. Im Rahmen ihrer Geschäftstätigkeit fällt in der FZ-Gruppe eine große Menge Daten an. Aus den 35.000 Filialen und Lieferstellen, die durch die Frischdienst-Distributeure beliefert werden, gehen jeden Tag über 30.000 Aufträge mit je 30 bis 35 Positionen ein. In der Woche sind somit ca. 5,5 Mio Positionen zu fakturieren. 75% der Aufträge gehen per MDE (Mobile Datenerfassung) und 20% per Zentral-DFÜ (Datenfernübertragung) ein. Diese Flut an Informationen ist nur mit leistungsfähiger Datenverarbeitung zu bewältigen. Zu diesem Zweck setzt das FRZ zwei SNI H130-Mainframes in größeren Ausbaustufen ein. Außerdem müssen die Daten gut aufbereitet und anforderungsbezogen in einer StatistikDatenbank abgespeichert werden, damit sie sinnvoll analysiert und interpretiert werden können. Diese Datenbank bildet die Grundlage für ein Data Warehouse, aus dem die Hersteller, der Handel und die Distributeure als Abnehmer des statistischen Materials wie in einem Warenhaus interessante Produkte, d.h. Informationen, auswählen können. Die Roh-Daten entstehen bei den FZ-Gesellschaftern in den Warenwirtschafts-, Logistik- und Vertriebs-Systemen. Sie werden für jeden Gesellschafter individuell nach Art und Umfang, mengen- und wertbezogen in einem Zyklus von einer Woche, Monat oder Jahr verarbeitet und aufbereitet. Somit sind sie Basis für Prognosen und können in ein Management Information System (MIS) eingehen. Der Abnehmer bzw. Mandant ist immer Eigentümer der Daten. Die Aktualisierung der einzelnen Datenreihen in der Statistik-Datenbank ist aufgrund der großen Datenmengen sehr zeitintensiv. 5 1.3 Data Warehouse Entwicklung Auch in der Vergangenheit wurden im FRZ schon die in den operativen Systemen entstandenen Daten für Analysezwecke zur Verfügung gestellt. Das geschah auf die seinerzeit übliche, meist starre und batchorientierte Weise in Form standardisierter Berichte. Die in dieser Zeit entstandenen Systeme waren irgendwann nicht mehr sinnvoll weiterzuentwickeln, so daß nur eine generelle Überarbeitung mit gleichzeitiger Vereinheitlichung der Verfahrens- und Datenstrukturen den veränderten technischen Gegebenheiten und Ansprüchen der Anwender wieder gerecht werden konnte. Zu letzterem sei insbesondere der Wunsch nach größerer Flexibilität, nach Dialogverfügbarkeit und der Einbeziehung logistischer Größen in das Berichtswesen hervorzuheben. Anfang der 90er Jahre fiel im FRZ die Entscheidung, die bisherigen stat. Fortschreibungs-Systeme durch ein neues, einheitliches Verfahren abzulösen. Gemeinsam mit SNI wurde 1991 ein Konzept entwickelt, das die periodische Überführung der aus den Operativ-Systemen gewonnenen Daten anhand individueller Anwender-Vorgaben in ein SESAM-basiertes „Warehouse“ vorsah, und das bis 1993 in einem gemeinsamen Projekt umgesetzt wurde. Dabei sollte der Anwender frei entscheiden können, welcher Art und welchen Umfangs die abgespeicherten statistischen Daten sind und wie lange sie gespeichert bleiben. Als Regulativ für den Umfang der Daten sollten die Kosten dienen. Deshalb mußte der Anwender vom System nach der Abspeicherung Informationen über die Speicherbelegung erhalten. Außerdem sollte er die Verdichtungskriterien, die Auswahlkriterien und die Zeiträume frei definieren können. Die periodisch anfallenden Bewegungsdaten aus den Operativsystemen enthalten die komplette Auftragsposition. Aus diesen Daten sollte über Verdichtung nach den angegebenen Ordnungsbegriffen der einzelnen Vorschriften, „Reihen“ genannt, ein Zeitreihensatz gewonnen werden. Zusätzlich mußten dann Jahres-, Quartals-, Monats- und Wochenwerte gebildet bzw. fortgeschrieben werden. 6 Die Datenbasis sollte in Form eines Ringspeichers gefüllt werden, d.h. für jede Zeitart gibt es eine Maximalzahl von Werten. Zyklisch sollten die aktuellen Reihenzeilen dazugeladen und die alten gelöscht werden. Die Speicherung der Statistikdaten sollte in relationalen Datenbanken (SESAM) erfolgen. Dies hatte den Vorteil, Datenbankfunktionen auch für das Berichtswesen nutzen zu können. Für die Retrievalfunktionen (Dialog) war das hauseigene Datenverwaltungs-Auskunftsystem (OVERDRIVE) vorgesehen. Darüber hinaus sollte auch die Möglichkeit der ebenfalls schon vorhandenen Micro-Mainframe-Connection genutzt werden, d.h. der Anwender konnte sich selektierte Untermengen der Daten auf seinen PC holen und dort PC-Funktionen wie Tabellenkalkulation, List- und Graphik-Funktionen nutzen. Später kamen dann noch eine separate Downloading-Funktion nur für Warehouse-Daten und die - nachfolgend im Detail ausführlich erläuterte - Internet-Anbindung dazu. Außerdem sollte der bisherige Druckoutput mindestens gleichen Inhalts und in gleicher Qualität bei vergleichsweise geringem Verwaltungsaufwand möglich sein. Entsprechende Tools, die sich als Unterstützung geeignet hätten, waren zum damaligen Zeitpunkt am Markt noch kaum vorhanden und so entschied man sich im FRZ für eine Eigenentwicklung. Ein besonderes Problem für die Programmierung ergab sich aus der offenen Verfahrens-Struktur, die eine nahezu unbegrenzte Kombination von Auswahl- und Verdichtungskriterien zuließ. Dieser theoretisch möglichen Vielfalt in Form fest programmierter Abfrage-Routinen Herr zu werden hätte den Rahmen jedes Programms gesprengt. Deshalb wird das Auswahl- und Verdichtungsprogramm dynamisch erst zum Zeitpunkt der Verarbeitung aus den dann aktuellen Anwendervorgaben generiert und zur Ausführung gebracht. Als einheitliche Programmiersprache wurde durchgängig COBOL85 festgelegt. Das gilt auch für die „generierten Programme“. 7 LOGISTIK Operative FAKTURA Ebene STATISTIK Administrations- Detail-Daten DSS akt. Periode Ebene Metadaten Selektion, Aggregation aggregierte Warehouse- Daten Ebene Standard-Reports Ad-hoc Auskunft Downloading Internet Berichtsebene DSS Abbildung 2: Data Warehouse-Struktur 8 PC PC Operative Ebene Hier entstehen die Rohdaten, die nach der Rechnungs-Schreibung um Stammdaten ergänzt und mit Ist-Werten versehen in eine sequentielle Datei als Detail-Daten auf LieferscheinEbene ausgegeben werden. Sie kann je nach Größe des Mandanten bis zu 1,5 Mio. Datensätze (a 500 Byte) in der Woche oder 5-6 Mio. im Monat betragen. Administrations-Ebene Das System wird ausschließlich über Meta-Daten administriert. Dafür stehen dem Anwender Dialogfunktionen zur Verfügung, mit denen er erklärt welche „Reihen“ in welcher Weise gebildet und abgespeichert werden sollen. Dabei muß er Angaben machen, welche Daten aus der Gesamtheit der Bestellpositionen (Detaildaten) selektiert werden sollen, über welche Felder in welcher Hierarchie die Werte verdichtet werden sollen und in welchem Zeitzyklus, wöchentlich, monatlich, quartalsweise oder jährlich die Reihe gebildet und fortgeschrieben werden soll. Eine Reihe kann z.B. für die monatlichen Gesamtumsätze eines Kunden gegliedert nach Artikeln eingerichtet werden, eine andere für den wöchentlichen Gesamtumsatz des Unternehmens gegliedert nach Niederlassungen und eine weitere für die Beobachtung der Absatzmengen ganz bestimmter Artikel z.B bei Neueinführungen während der Einführungsphase. Es liegt in der Hand des Anwenders, die Menge der gespeicherten Daten klein zu halten, indem er möglichst genaue Auswahlkriterien angibt und möglichst sinnvoll verdichtet. Eine Hilfe soll die Speicherumfangsinformation sein, die Auskunft über den belegten Platz und die Kosten gibt. Der Anwender muß bei der Definition noch bestimmen, ab wann die Reihe erstellt werden soll, ob sie nur offline oder auch online gespeichert wird und wieviele Zyklen (Wochen, Monate etc.) sie max. umfassen soll. Die Trennung in Offline- und Online-Bestand erwies sich in Hinblick auf das große Datenvolumen als notwendig. Der Online-Bestand ist die 9 Teilmenge des Gesamt-Bestandes (Offline), die der Anwender im Dialog für AdhocAuskünfte und PC-Weiterbearbeitung vorhalten möchte. Die Änderung vorhandener Reihendefinitionen unterliegt einer Versionsführung, d.h. bei jeder Änderung wird die Version hochgezählt, wenn mit der aktuellen Version bereits Werte gebildet wurden. Insgesamt können 99.999 unterschiedliche Reihendefinitionen hinterlegt werden. Ähnlich der Reihendefinitionen werden vom Anwender auch Druckvorschriften erstellt, die erklären, auf welche Weise eine Reihe als Standard-Report abzubilden ist. Metadaten Zu den Metadaten zählen im Wesentlichen die vom Anwender angelegten ReihenDefinitionen und Druckvorschriften und die vom System eingestellten Speicherumfangsinformationen (Anzahl der aktuell gespeicherten Sätze pro Reihe und Zeitraum, Anzahl gedruckte Seiten und Zeilen pro Vorschrift und Zeitraum). Die Metadaten geben nicht nur dem Anwender Aufschluß über Art und Umfang der im Warehouse gespeicherten Daten, sondern dienen auch den Auswahl- und VerdichtungsProgrammen und den Standard-Reports als Verarbeitungsvorschrift. Warehouse-Ebene Über Batch werden im Wochen- und Monatsrhytmus jeweils nach Faktura die neuen Detaildaten lt. Anweisung (Reihendefinitionen) selektiert und aggregiert und in das Warehouse eingearbeitet. Danach steht der komplette, aktualisierte Warehouse-Bestand bis zur nächsten Verarbeitung für Auswertungen zur Verfügung. Die Speicherung der Warehouse-Daten erfolgt nach den vom Anwender vorgegebenen Reihendefinitionen individuell strukturiert: 10 • in zeitlichen Strukturen: - Woche, Monat, Quartal oder Jahr • in organisatorischen Strukturen: - Waren / Artikeln (z.B. gesamtes Produktspektrum, Sortimente, Warengruppen oder einzelne Artikel) - Produzenten bzw. Lieferanten - FZ-Partner und deren Niederlassungen - Kunden (Einzelhändler-Strukturen bis zum Outlet) - geographische Aspekte • in kaufmännischen Größen: - Mengen, Werte, Indizes, usw. • in logistischen Größen: - z.B. Kolli, Tonnage, Volumen, etc. Jeder im Warehouse abgelegte Satz bekommt einen eindeutigen Schlüssel, der sich aus Reihen-Nr., Version, Reihen-Zeile (gebildet aus den Inhalten der als Verdichtungshierarchie vom Anwender genannten Felder) und Zeitraum ergibt und über den er identifiziert werden kann. Prinzipiell lassen sich auch die Detail-Daten der Warehouse-Ebene zurechnen, da auch sie mit speziell auf diese Struktur ausgerichteten Reports individuell und „Zeitpunkt“-bezogen - zusätzlich zu der „Zeitraum“-bezogenen Darstellung der aggregierten Daten ausgewertet werden können. Des weiteren sind auf dieser Ebene auch bilaterale Formate zu erwähnen, die zur Übermittlung von Detaildaten per Datenträger oder DFÜ bedient werden. 11 Berichtsebene Für die Auswertung der aggregierten Warehouse-Daten stehen unterschiedliche Hilfsmittel zur Verfügung. Nach der ursprünglichen Philosophie des Verfahrens, die es dem Anwender ermöglicht, eine Vielzahl von „Ergebnissen“ schon in Form von unterschiedlich verdichteten Reihen anzulegen, schien ein reines Abrufen oder Darstellen dieser Ergebnisse ohne zusätzliche Berechnungsmöglichkeiten erst einmal völlig hinreichend. Deshalb unterstützen die auf der Berichtsebene vorhandenen Tools im Wesentlichen nur Darstellung oder Übernahme der in Reihen abgelegten Ergebnisse. Standard-Reports: Als Standard-Reports werden Batchprogramme eingesetzt, die anhand der in den Metadaten abgelegten Druckvorschriften die im Offline-Bestand gespeicherten Reihen immer direkt nach einem Aktualisierungslauf automatisch drucken. Derzeit kann der Anwender zwischen vier verschiedenen Layout-Formaten wählen. Eine Reihe kann auch auszugsweise und auf höheren Aggregations-Stufen dargestellt werden. Über 40 verschiedene Wert- und Rechenfelder können wahlweise pro angeschriebener Aggregations-Stufe ausgewertet werden. Über den Umfang des Druck-Outputs wird ebenfalls in den Metadaten pro Druckvorschrift und Zeitraum Buch geführt. Adhoc-Auskunft: Hierfür wird ein Drive-Programm eingesetzt, das ursprünglich als offenes AbfrageSystem vor allem in der Stammdatenverwaltung seine Verwendung fand. Es ermöglicht dem Anwender auf der Basis von Tabellen- und Feld-Auswahlen Datenbankinhalte selektiv anzeigen zu lassen. Verknüpfungen mit anderen Tabellen, Summenbildungen und Druck sind ebenfalls möglich. 12 Downloading Für den Import von Warehouse-Daten in PC-Systeme (MS Office) stehen zwei Methoden zur Verfügung: Methode 1 ermöglicht es dem Anwender, aus der Adhoc-Auskunft heraus, die gewonnene Datenmenge auf einen PC zu holen. Methode 2 unterstützt mit einem Add-In den Daten-Transfer aus der MS-ExcelOberfläche heraus und bietet als weitere Funktionen den automatischen Aufbau einer EXCEL-Tabelle aus den übernommen Daten und eine Ampelfunktion für die Analyse der Werte. Internet Den Internet-Zugang zum Warehouse stellt eine Applikation sicher, die als Prototyp in einem gemeinsamen Projekt von SNI, Univ. Mannheim und FRZ entwickelt wurde und die als Vorführversion erstmalig auf der INTERCOOL ´96 in Düsseldorf vorgestellt wurde. Die in diesem Projekt gewonnenen Erfahrungen über die Kombination bewährter mit innovativer Technologie sind im nachstehenden Kapitel zusammengefaßt. 13 2 Die Anbindung des Data Warehouse an das WWW In den folgenden Abschnitten wird die Konzeption und Implementierung eines Prototyps beschrieben, der über das World Wide Web den Zugriff auf die Statistikdatenbank der FZ ermöglicht. 2.1 Szenario Idee war, den Zugang zu den Statistikdaten bzw. dem FZ-Data Warehouse über das Internet oder ein Intranet zu ermöglichen. Lieferanten, Kunden und die Frischdienst-Zentrale selbst können somit aktuelle Daten in individueller Form abrufen. Dieses System gibt ihnen die Möglichkeit, einen schnellen und einfachen Überblick über Trends im Markt zu bekommen. Neben den anderen erwähnten Wegen der Informationsverteilung können die Daten aus dem Informationsystem leicht in eigene Applikationen übernommen werden. Als Frontend dient dafür ein World Wide WebClient. Aus einer solchen Lösung ergeben sich mehrere Vorteile: • Das World Wide Web ist ein akzeptiertes und allgemein eingeführtes System, das durch seine graphische Oberfläche leicht zu bedienen ist. • Es fallen keine oder nur geringe Lizenzkosten für die Clients an. • Für jede Betriebssystemplattform sind WWW-Browser verfügbar. Dadurch bekommt man maximale Flexibilität beim Einsatz des Systems. Serverseitig harmoniert das WWW-Datenbank Gateway mit jedem WWW-Server auf UNIX-Plattformen oder allgemein in POSIXkompatiblen Umgebungen. 14 Client (PC, UNIX) Netscape, Mosaic, Internet Explorer, ... Intranet oder Internet BS2000 Server (UNIX) HTTPD SESAM/SQL (Statistik-DB) Gateway Abbildung 3: Szenario SESAM/SQL-Anbindung Der Benutzer wählt über die Homepage der Frischdienst-Zentrale den Data Warehouse-Zugang an. Nach ordnungsgemäßer Authentifikation auf Seiten des WWW-Servers kann er über Formulare geführt seine Anfragen absetzen. Ein Gateway (Backend), das von dem WWW-Server aufgerufen wird, übernimmt dabei folgende Aufgaben: • dynamische Generierung der Seiten und Formulare, • aus den Nutzereingaben Queries in SQL-Form (Structured Query Language) erzeugen und diese zur Datenbank weiterleiten, • die Ergebnisse der Datenbankabfrage nach den Nutzervorgaben aufbereiten. Als Ausgabeart der selektierten Daten soll zwischen der Darstellung in Tabellenform, reiner Text, Exportdaten oder Grafik gewählt werden können. Bei diesem Szenario handelt es sich um eine 3-stufige Client/Server-Architektur: die Präsentation erfolgt durch den WWW-Browser, die Applikation, d.h. das Gateway, läuft auf dem UNIXKommunikationsrechner und die Datenhaltung wird durch SESAM/SQL auf dem BS2000-System geleistet. 15 2.2 Evaluierung von SNI-Software In einer Anfangsphase wurden verschiedene Software-Produkte von SNI für die Nutzung im Gateway zum Zugriff auf BS2000 Datenbanken auf deren Eignung hin untersucht: 2.2.1 SQL-GATEWAY • Kurzbeschreibung: Das Produkt SQL-Gateway unterstützt den Anschluß von Query-Windows oder Query-AlphaAnwendungen auf SINIX an SESAM/SQL und UDS/SQL-Datenbanken auf BS2000. Dies umfaßt eine UTM (SINIX) Anwendung, einen Gateway-Client, eine oder mehrere UTM (BS2000) Anwendungen und die BS2000-DB-Server. • Idee: Unter SINIX wird ein Gateway implementiert, das auf QUERY-Alpha aufsetzt bzw. dieses als Client ganz ersetzt. Der Zugriff auf SESAM geschieht über SQL. • Problem: Die Entwicklung des SQL-Gateway wurde von SNI wegen fehlender Marktakzeptanz eingestellt und kann somit keine Grundlage für den Einsatz der Implementierung in der Produktion sein, da es nicht mehr gepflegt und weiterentwickelt wird. 2.2.2 DRIVE / WINDOWS • Kurzbeschreibung: 4GL-Sprache und -Entwicklungsumgebung für die Erstellung portabler OLTP-Anwendungen nach dem Client/Server-Konzept mit einheitlicher Schnittstelle zu den DBMS SESAM, UDS und Informix auf Basis des ISO-SQL-Standards. Drive/Windows ist auf den Plattformen BS2000/OSD, SINIX und MS-Windows verfügbar. • Idee: Implementierung des Gateways in der 4GL-Sprache von Drive/Windows, wobei die UTMUPIC-Schnittstelle in SINIX genutzt wird. 16 WWW-Server (SINIX) G a te w a y in 4 G L a ls O L T P A nw en d u n g HTTPD UPIC DB-Server (BS2000) G a te w a y in 4 G L a ls O L T P A nw en d u n g S E S A M /S Q L UTM / UTM-D Abbildung 4: Szenario UPIC-Anbindung • Problem: Drive/Windows bietet zum Zeitpunkt dieser Untersuchung keine reguläre Möglichkeit, Parameter (z.B. Queries) über die Standard-Eingabe einzulesen. Dies ist aber für die Verwendung der 4GL-Anwendung als Skript, das aus einem Formular heraus aufgerufen wird, unbedingt notwendig. 2.2.3 SQL*Connect to SESAM/SQL • Kurzbeschreibung: Mit SQL*Connect to SESAM/SQL können Anwender mit ORACLE-Produkten auf Daten lesend zugreifen, die in der relationalen Datenbank SESAM/SQL gespeichert sind. Somit können ORACLE Datenbanken auf PC’s und SINIX Systemen mit SESAM/SQL Datenbanken auf einem BS2000-System verbunden werden. Das gilt für alle ORACLE Anwendungen unabhängig davon, ob sie mit SQL*FORMS, SQL*REPORTWRITER oder mit Embedded SQL (z.B. PRO*C oder PRO*COBOL) realisiert sind. Die Auswahl der Daten erfolgt dabei auf der BS2000-Seite, das heißt es werden nur die Netto-Daten (Treffer) über das Netzwerk übertragen. 17 • Idee: Vorhandene und bewährte Oracle-Gateways nutzen, um auf die Statistik-Datenbank unter SESAM/SQL zuzugreifen. • Problem: Es ist nur ein read-only Zugriff möglich, und es entstehen durch den Einsatz zusätzlicher Software (ORACLE DBMS) unnötige Kosten und Performance-Einbußen. 2.2.4 Database Access Service (DBA) Zum Zeitpunkt des Projektbeginns war von SNI nur ein Produkt verfügbar, das die Anbindung der BS2000-Datenbank über einen UNIX-Client und CGI ermöglicht: DBA. • Produktbeschreibung: DBA ermöglicht den Zugriff von MS-Windows und SINIX Anwendungen auf die BS2000/OSD-Datenbanksysteme SESAM/SQL und UDS/SQL sowie ORACLE und INFORMIX unter UNIX über OSI-, TCP/IP-Verbindungen. DBA besteht aus zwei Hauptkomponenten: den DBA-Clients (DBA.D für MS-Windows, DBA.X für SINIX/UNIX) und den DBA-Servern (DBA.X für SINIX/UNIX und DBA.2000 für BS2000). Die Kommunikation zwischen einer Anwendung und DBA erfolgt über die ESQL/C-Schnittstelle. Der DBA-Server nimmt die Anforderungen von den Clientsystemen entgegen, leitet sie an das Datenbanksystem weiter und liefert die Suchergebnisse an den Client zurück. Basis der Kommunikation ist die deklarative Datenbanksprache SQL. Der Server paßt dabei die SQLAnweisung an den SQL-Dialekt des Datenbanksystems an. Dadurch kann ein DBA-Client ohne Änderung mit jedem DB-System kommunizieren, für das ein DBA-Server vorhanden ist. Es können gleichzeitig mehrere Verbindungen zu unterschiedlichen DB-Systemen aufgebaut werden. • Idee: Mit der DBA.X Entwicklerversion wird das Gateway implementiert. 18 • Bewertung: DBA bietet eine Schnittstelle für mehrere Datenbanksysteme, wobei keine zusätzlichen DBConnectivity-Produkte benötigt werden. Zusätzlich ist eine einheitliche SQL-Syntax vorhanden, wobei Norm-SQL-Funktionen, die dem DB-System fehlen, teilweise nachgebildet werden. Die ESQL/C-Schnittstelle erlaubt die Verwendung statischer und dynamischer SQL-Anweisungen im Rahmen von SQL ISO 9075:1989(E) mit Erweiterungen (z.B. dynamische SQL) aus ISO 9075:1992 (SQL2) und den X/Open XPG4 Vorschlägen. Durch ESQL/C ist es problemlos möglich, Anwendungen als CGI-Skript oder als Teil eines CGI-Skriptes zum Datenbankzugriff zu erstellen. DBA stellt somit im Vergleich zu den vorhergehenden Produkten die allgemeinere Lösung dar, weil die DBA-Clients, aber auch die DBA-Server als Schnittstelle zur Datenbank für verschiedene Plattformen verfügbar sind. Durch den Einsatz von DBA ergibt sich folgendes Szenario: Das Gateway setzt auf einer mit ESQL/C implementierten Datenbankschnittstelle auf und kommuniziert über den DBA.X-Client per RDA (Remote Database Access) mit dem DBA.2000Server. DBA übernimmt dabei komplett das Verbindungsmanagement über das Netzwerk zur Datenbank und führt wie oben beschrieben Anpassungen der SQL-Abfragen durch. beliebige Plattform TCP/IP WWW - Client Internet DBA.2000 - Server Sesam / SQL WWW - Server W3 / SQL - Gateway DBA.X - Client BS2000 RDA Abbildung 5: Szenario mit DBA 19 Sinix 2.3 Implementierung Im Rahmen dieses Projekts war nun ein Prototyp zu erstellen, der das beschriebene Szenario mit den Produkten SESAM/SQL und DBA umsetzt. Hardwareseitig standen dazu im Rechenzentrum der Universität Mannheim ein BS2000-Rechner vom Typ H60-F2 mit einem Prozessor und 32 MB Hauptspeicher und eine SINIX Workstation RM600 zur Verfügung. Da der Mainframe seit längerer Zeit nicht mehr im Benutzerbetrieb ist, mußten zahlreiche Betriebssystemkomponenten durch aktuelle Versionen ersetzt werden. Da sich die Auswahl, Lieferung und Konfiguration der benötigten Software verzögerte, hat sich das Rechenzentrum pragmatisch für eine Abwandlung der Teststellung entschieden. Um schnell zu einem funktionsfähigen Prototypen für das FRZ zu kommen, sieht das veränderte Szenario nun vor, statt SESAM/SQL auf BS2000 die Shareware Datenbank mSQL auf einer SGI IndyWorkstation zur Speicherung der Statistikdaten zu nutzen. Gleichzeitig wird auf diesem Rechner der WWW-Server betrieben. Von der Konzeption her macht es für das modular aufgebaute Gateway keinen Unterschied, ob die Datenbank lokal oder über das Netzwerk auf einem entfernten Rechner läuft. Nach der Implementierung der vom FRZ geforderten Funktionalität erfolgt nun in der nächsten Phase die Umsetzung mit DBA und SESAM/SQL. Im folgenden wird das Ergebnis der Implementierung dargestellt, d.h. die statischen und dynamischen WWW-Seiten wie sie der Demo-Benutzer Strothmann angezeigt bekommt. Dabei werden schon grundlegende Funktionen der Programmierung angesprochen. Danach werden spezielle Aspekte der Implementierung der beiden Komponenten des Informationssystem erläutert. 2.3.1 Web-Seiten / Masken Da die Frischdient-Zentrale bisher noch keinen Internet-Anschluß zur Verfügung hat und auch im Intranet noch kein Informationssystem auf der Basis der World Wide Web aufgebaut ist, wurde eine minimale Homepage zu Präsentationszwecken erstellt. Von dort aus kommt man über einen Hypertextlink zu der Einstiegsseite des Informationssystems. 20 Abbildung 6: FZ-Homepage Jeder Nutzer des FZ-Data Warehouse muß sich ordnungsgemäß identifizieren. Auf der LoginSeite ist deshalb ein Formular, in das der Benutzer-Name und das Kennwort eingetragen werden. Mit dem Abschicken dieser Seite wird eine Verbindung zur Datenbank aufgebaut, um die Eingaben mit den Werten einer Paßwort-Tabelle abzugleichen. Bei dem Feld für die Kennung sind durch JavaScript-Routinen Konsistenzprüfungen hinterlegt, die im Fall, daß eine Eingabe nicht einem fest definierten Format genügt, dies mit einer Fehlermeldung quittieren und das Abschicken des Formulars unterbinden. Somit werden auch unnötige Datenbankanfragen vermieden. 21 Abbildung 7: Login FZ-Data Warehouse Alle Login-Versuche werden protokolliert. Die Protokolleinträge enthalten das Datum, den Rechnernamen und die IP-Nummer, von der die Aktion ausging, und eine Statusinformation, ob die Identifikation erfolgreich war. Falls ein Nutzer seinen Request über einen Proxy geschickt hat oder er sein System mit fremden IP-Nummern konfiguriert hat, sind die protokollierten Informationen allerdings nur wenig aussagekräftig. +-------+------------+------------+---------------------------+----------------------------------------------------------------------------------+ | KDNR | DATE | TIME | STATUS | DIV | +-------+------------+------------+---------------------------+----------------------------------------------------------------------------------+ | 95340 | 1996/07/04 | 20:04:29 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 95340 | 1996/07/04 | 20:04:46 | Access denied | impact.uni-mannheim.de (134.155.50.209) | | 95340 | 1996/07/04 | 20:05:05 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 95340 | 1996/07/04 | 20:08:48 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 95340 | 1996/07/04 | 20:08:54 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 99999 | 1996/07/04 | 20:09:11 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 99999 | 1996/07/04 | 20:10:16 | LOGIN OK | impact.uni-mannheim.de (134.155.50.209) | | 95340 | 1996/07/04 | 20:10:27 | Access denied Abbildung 8: Zugriffsprotokoll Bei einer erfolgreichen Anmeldung am System wird der Data Warehouse-Benutzer mit der Begrüßungsseite des Informationssystems konfrontiert. Zur Bestätigung wird sein Firmenname und seine Benutzerkennung angezeigt. Bei dem Prototyp dient bis auf weiteres die Lieferantennummer als Kennung. 22 Abbildung 9: Auswahlmenü In dieser Version wurde auch ein kleines News-System implementiert. Der Benutzer sieht bei dieser Seite alle Nachrichten, die seit seinem letzten Einloggen neu und bisher noch nicht verfallen sind. Über diese Funktion kann der Betreiber des Warehouse einzelnen oder allen Usern aktuelle Nachrichten zukommen lassen. Des weiteren wird dann eine Auswahl der individuell für Kunden oder Lieferanten erstellten Auswertungen angezeigt. Jeder bekommt seine Datenreihen angezeigt, aber auch Informationen, die für alle freigegeben wurden. Es sei an dieser Stelle darauf hingewiesen, daß Datenschutz bei dieser Anwendung eine besondere Rolle spielt, da manche Benutzer dieses Informationssystems direkte Konkurrenten im Markt sind und deshalb Informationen über Produkte und Regionen 23 äußerst sensitiv sind. Nur die Frischdienst Zentrale ist befugt, alle Nachrichten zu lesen und alle Datenreihen zu verarbeiten. Zu jedem Objekt resp. Reihe wird die Nummer und eine Kurzbeschreibung, die die zugrundeliegenden Auswertungskriterien angibt, angezeigt. Man kann über Buttons entweder ausführlichere Informationen oder die Daten einer Reihe anzeigen lassen. Abbildung 10: Reihenbeschreibungen Als Beschreibungen werden detaillierte Angaben über die Reihendefinition, Auswahlangaben einer Reihe und die Verdichtungsfelder aufgeführt. 24 Abbildung 11: Ausgabeoptionen Wählt man die Werteausgabe an, erscheinen Formulare, in denen verschiedene Einstellungen für die Selektion und Ausgabeform der Informationen gewählt werden können. Da jeder Datenreihe als Dimension die Zeit zugrundeliegt, kann man deren Auswahl auf ein Intervall beschränken. Weiterhin sind neben der Selektion der Verdichtungsstufen mehrere Ausgabearten vorgesehen: (HTML-) Tabellen, reiner Text, Exportformat oder Grafik (ist im Prototyp noch nicht verfügbar). Im nächsten Feld ist die Anzahl der jeweils auf einer Bildschirmseite anzuzeigenden Anzahl an Datensätzen zu wählen. Der Vorgabenwert von fünf Datensätzen kann gelöscht werden, um alle Sätze einer Abfrage zusammen anzuzeigen. 25 Sollen noch weitere Restriktionen eingegeben werden oder bestimmte Felder zur Ausgabe ausbzw. abgewählt werden, kann man über den Button Optionen in eine entsprechende Maske springen. Dort sind in Abhängigkeit des Verdichtungsformats der ausgewählten Reihe bestimmte Felder vorselektiert. Abbildung 12: Optionen Zur näheren Erklärung der Feldkürzel kann von hier aus eine Hilfeseite mit Feldbeschreibungen aufgerufen werden. 26 Abbildung 13: Feldbeschreibungen Hat man Tabelle als Ausgabeart gewählt, werden alle bzw. nur die selektierten Felder ausgegeben. Um lange Wartezeiten beim Aufbau der HTML-Tabellen zu vermeiden, werden standardmäßig immer nur die nächsten fünf Datensätze angezeigt. Mit einem Button kann der Benutzer zu den in der Datenbank folgenden fünf Datensätzen bis hin zum Ende durchblättern. Eine andere Möglichkeit ist der Rücksprung zur Seite mit den Ausgabeoptionen. 27 Abbildung 14: Ausgabe der Datenreihen im Tabellenformat Falls man eine größere Anzahl von Sätzen (> 500) auf einmal anschauen will oder der Arbeitsplatzrechner weniger leistungsfähig ist, sollte man die Textform als Darstellungsart wählen. HTML-Tabellen mit vielen Zeilen und Spalten sind sehr speicherintensiv. Computer mit nur geringem Speicherausbau können u.U. solche Tabellen nicht bewältigen und deshalb Fehlfunktionen hervorrufen. In der Textdarstellung treten diese Probleme nicht auf; man kann sich hierbei durchaus immer alle Sätze auf einer Seite anzeigen lassen. Abbildung 15: Textformat 28 Eine andere Möglichkeit ist die Ausgabe der Daten getrennt durch ein Semikolon. Diese Präsentation dient dem Import in Programme wie bspw. Excel, wo eine individuelle Auswertung und Aufbereitung mit evtl. bereits vorhandenen Makros stattfinden kann. Hier bietet sich an, alle Sätze in einer Seite abzurufen, um dann im Browser (z.B. Netscape Navigator) über den Menüpunkt Save As den Seiteninhalt abzuspeichern. Nun müssen lediglich mit einem Editor einige Formatbefehle von HTML am Anfang und am Ende entfernt werden. Bei Microsoft Excel kann man wählen ab welcher Zeile der Datenimport beginnen soll, womit die führenden HTMLKommandos bequem übersprungen werden können. Bei den meisten Datenbank- und Tabellenverarbeitungsprogrammen kann das Trennzeichen der einzelnen Datenspalten vorgegeben werden. Somit wird dann jeder Datensatz in eine neue Zeile und jedes Feld in eine eigene Spalte eingelesen. Abbildung 16: Exportformat In dem Prototyp wurde beim Layout und der Benutzerführung ausschließlich auf Funktionalität geachtet. Um die Übersichtlichkeit und Ergonomie zu erhöhen sind neben neuen Features Verbesserungen in den folgenden Versionen vorgesehen. 2.3.2 Komponenten Die Implementierung des Informationssystems besteht aus zwei Hauptkomponenten: einem WWW-SQL-Gateway, das die HTML-Seiten in Abhängigkeit der Benutzereingaben dynamisch erzeugt und die Datenbankschnittstelle, die die vom Gateway übergebenen Operationen auf der Datenbank ausführt und die Ergebnisse in Rohform an das Gateway zurückliefert. 29 2.3.2.1 Datenbankschnittstelle Die Datenbankschnittstelle wurde in der Sprache C implementiert, um die C-API von mSQL zu nutzen und diese später leicht durch das ESQL/C Interface von DBA austauschen zu können. Dieses Modul ist in seiner Implementierung abhängig von der jeweils verwendeten Datenbank, wobei beim Einsatz von DBA an dieser Stelle nur minimale Änderungen notwendig sind, um z.B. statt SESAM/SQL auf BS2000, INFORMIX oder ORACLE auf einem SINIX-Server zu nutzen Die Konzeption des Interface erlaubt es, daß beliebige Applikationen darauf aufsetzen können, um Zugriff auf die dahinterliegende Datenbank zu erhalten. Alle für eine DB-Operation notwendigen Parameter werden beim Aufruf des C-Programms vom Gateway übergeben: • Datenbankname: Auswahl der Datenbank, in der Tabellen angesprochen werden sollen • Tabellenname: Für die Ausgabe der Feldnamen einer Tabelle oder zur Ermittlung der Feldtypen ist die explizite Übergabe eines Tabellennamens vorgesehen. • Operationscode: Das DB-Interface unterstützt verschiedene Funktionen, die durch den Operationscode angestoßen werden. Es können alle verfügbaren Datenbanken, Tabellen einer Datenbank, Feldnamen bzw. Feldtypen einer Tabelle ausgegeben werden und Abfragen oder Update/InsertOperationen ausgeführt werden. • nächster zu lesender Datensatz: Hiermit wird der Cursor in einer Tabelle auf einen vorgegebenen Datensatz bewegt. • Anzahl der zu lesenden Datensätze: Falls nur eine beschränkte Anzahl von Sätzen ausgegeben werden soll, kann dies hier festgelegt werden. • auszuführendes Datenbank-Kommando: Mit diesem Parameter wird die auszuführende DB-Operation übergeben, z.B. ein Select- oder Update-Befehl in der üblichen SQL-Notation. 30 Die Ergebnisse werden in die Standardausgabe geschrieben. Bei Queries ist die Ausgabe wie folgt aufgebaut: Anzahl der selektierten Felder Feldname1; Feldname2; Feldname3; ... Anzahl der selektierten Datensätze Datensatz1 Datensatz2 Datensatz3 . . Bei den Datensätzen werden nur für die gewählten Felder die Werte getrennt durch ein Semikolon ausgegeben. Die Ergebnisse werden vom Gateway über die Standardeingabe eingelesen und weiterverarbeitet. Bei jedem Datenbank-Request des Gateways wird das Interface gestartet, baut eine Verbindung zum DBS auf und nach Beendigung der Operation wieder ab. Danach terminiert das Interface wieder. Bei einfachen Anfragen im lokalen Netz, bei denen die Leistungsanforderungen an die Datenbank gering sind und die Netz-Bandbreite keine Rolle spielt, kann gerade der Verbindungsauf- und abbau zum Flaschenhals werden. Ein Ausweg wäre ein DB-Handler, der die DB-Verbindung während einer Sitzung immer aufrecht erhält. 2.3.2.2 WWW-SQL-Gateway Da die wesentlichen Funktionen des Gateways schon bei der Erläuterung der Benutzerseiten aufgezeigt wurden, soll im folgenden nur auf spezielle Implementierungsaspekte eingegangen werden. 31 Das WWW-SQL-Gateway ist im Gegensatz zur Datenbankschnittstelle in PERL programmiert. In einer ersten Version wurde es allerdings mit C realisiert, was sich aber später als zu unhandlich erwies (v.a. bei der Stringverarbeitung). Zusätzlich gab es Probleme mit der Portabilität zwischen Linux- und Silicon Graphics-Plattformen, auf denen die Komponenten getestet wurden. Das Gateway wird aus den Formularen heraus aufgerufen und bekommt über die POST-Methode die Daten aus den Formularen in stdin übergeben. Die Daten werden über die Prozedur CGI_parse interpretiert, d.h. für jedes Feld im Formular wird eine entsprechende Variable definiert, deren Wert der Benutzereingabe bzw. dem Default-Wert entspricht. Bei der Wertzuweisung wird gleichzeitig überprüft, ob der Benutzer versucht hat, durch Manipulation über das CGI Betriebssystemkommandos abzusetzten. Mit jeder HTML-Seite bzw. Maske wird durch versteckte Eingabefelder des Formulars eine Stufennummer übermittelt. Diese dient dem Gateway zur Erkennung der nächsten zu generierenden Seite. Die Login-Seite des Data Warehouse hat die Stufe null, die Einstiegsseite mit der Datenreihenauswahl die Stufe eins, usw. In der Stufe 0, d.h. nach dem Abschicken der Benutzer-Kennung und des Paßworts, wird, wie schon bei den Masken kurz angesprochen, ein Abgleich der Nutzerdaten durchgeführt. Jeder Login-Versuch, egal ob erfolgreich oder nicht, wird protokolliert. Dieses Aufzeichnen sicherheitsrelevanter Systemereignisse in Logdateien nennt man Auditing und die elementare Informationseinheiten (Einträge der Tabelle) werden als Audit Records bezeichnet. Somit kann man immer nachvollziehen wer wann versucht hat sich von einem bestimmten Rechner aus im System anzumelden. Ab der Einstiegsseite, Stufe 1, gibt es neben der Stufennummer weitere persistente Informationen, die zur jeweils nächsten Seite, d.h. für den nächsten Aufruf des Gateways, gesichert werden müssen. Das Speichern von Zustandsinformationen geschieht ausschließlich im Client und zwar in verstecken Feldern der Formulare. So müssen z.B. beim Wechsel von der Stufe 1 zur Stufe 2, der 32 Seite mit den Ausgabeoptionen und Restriktionen, zusätzlich die Reihennummer und die Benutzerkennung übernommen werden. In die Seite zur Anzeige der Werte und beim Blättern in den Werten wird zusätzlich noch die Nummer des nächsten anzuzeigenden Datensatzes gerettet. Zum Zweck der Modularisierung wurden einige Funktionen in Prozeduren innerhalb des Gateways ausgelagert: • Date_Time: liest die aktuelle Uhrzeit und Datum aus und speichert es in geeigneten Datenstrukturen • html_header und html_footer: Ausgabe des Dokumententitels und evtl. Debugging-Informationen am Seitenende • fields und rows: Anzahl der selektierten Felder / Datensätze zusammen mit den Feldnamen / Werten von der Datenbankschnittstelle übernehmen • dbx: die Parameter Datenbankname, Tabellenname, Operationscode, nächste Datensatznummer, Anzahl der auszugebenden Datensätze und das DB-Kommando an die Datenbankschnittstelle übergeben 2.4 Probleme Durch das veränderte Szenario und die Tatsache, daß es sich bei dieser Implementierung nur um einen Prototyp handelt, der die Möglichkeiten für eine Datenbankanbindung an das World Wide Web in einer vorgegebenen Client/Server-Umgebung aufzeigt, ergeben sich einige Probleme, die durch weitere Entwicklungen leicht behoben werden können. Dafür bildet die vorliegende Implementierung eine gute Grundlage. mSQL unterstützt in der aktuellen Version (V 1.0.16) nur eine Untermenge von SQL89. Wichtige Elemente wie die Gruppierung oder Summenfunktion bei SELECT sind nicht vorhanden und werden erst in der Version 2.0 verfügbar sein. Bei Joins, die über mehrere Tabellen gehen, sinkt 33 die Performance auf ein nicht mehr für einen Einsatz im Produktionsbetrieb akzeptables Niveau. Bei dieser wenig ressourcenschonenden Ausführung werden zudem temporäre Dateien angelegt, die leicht mehrere hundert Megabyte umfassen können. Es besteht somit die Gefahr, daß das Dateisystem „überläuft“. Der Datenimport stellt ein zusätzliches Problem dar. Von der Statistikdaten wurde zu Testzwecken ein Snapshot erstellt, der nur unter großem Zeitaufwand in mSQL eingelesen werden konnte, trotz einer halbautomatisierten Vorgehensweise. Es mußten z.B. verschiedene Sonderzeichen umgewandelt oder aus dem Datenbestand ersatzlos gelöscht werden, um einen fehlerlosen Betrieb von der Datenbank gewährleisten zu können. Die Nutzung von JavaScript oder Java, um Anwedungslogik wie z.B. Konsistenzprüfungen in Richtung Client zu verlagen, hat neben den schon erwähnten Vorteilen auch einige Nachteile. Grundsätzlich schränkt man damit den Benutzerkreis ein, da zum Zeitpunkt dieses Berichts bei weitem nicht alle verbreiteten Browser Java/JavaScript unterstützen. Bei dem Anmeldevorgang zum FZ-Data Warehouse kommt dieses Problem allerdings nicht zum Tragen, daß solche Browser die Programmierung einfach ignorieren. Die JavaScripte sind von HTML-Kommentar-Tags umgeben, so daß sie nicht interpretiert werden. Alle Seiten des Informationssystems, außer der Login-Seite, werden durch das Gateway dynamisch erzeugt. In der Regel kann man bei einem WWW-Browser mit den FORWARD- und BACK-Buttons zwischen den in einer Sitzung besuchten Seiten hin- und herblättern. Einige Browser springen dabei jedoch zu der letzten statischen Seite zurück, konkret zur der Einstiegsseite, bei der sich der Benutzer identifizieren muß. Ein ähnlicher Effekt kann auftreten, wenn der lokale Cache-Speicher des Clients zu klein eingestellt ist. Um mit größtmöglicher Sicherheit gewährleisten zu können, daß kein Nutzer durch Manipulation unbefugt auf Daten anderer Benutzer zugreifen kann, sollte bei jedem Datenbankzugriff ein erneuter Abgleich der Nutzerdaten mit der Paßwortdatenbank erfolgen. Durch die zusätzlichen Abfragen entsteht ein zwar ein gewisser Overhead, der aber durchaus notwendig scheint. 34 2.5 Ausblick Aufbauend auf dem Prototyp sind in den nachfolgenden Versionen zahlreiche Verbesserungen und Erweiterungen möglich. In einem ersten Schritt ist mSQL durch DBA und SESAM/SQL auszutauschen, wie es in dem ursprünglichen Szenario dargestellt wurde. Damit steht eine leistungsfähige Datenbank zur Verfügung, und zudem entfällt die Problematik des Datenimports. DRIVE/WINDOWS und SESAM/SQL bieten gute Tools zum Abfragen und Pflegen von Datenbanken. Trotzdem ist es durchaus sinnvoll, auch die Administration des Informationssystems zusammen mit den Benutzerfunktionen unter der WWW-Oberfläche zu vereinen. Dazu gehören die Verwaltung der News-Area, des Auditing und der Tabelle für die Freischaltung der Datenreihen. Somit kann das System von jeder Rechnerplattform aus benutzt und gepflegt werden. Zur weiteren Entkopplung der Module und vereinfachten Konfiguration für verschiedene Anwendungszwecke können Layout-Schablonen eingeführt werden. Diese ermöglichen das Abändern des Erscheinungsbildes der HTML-Seiten, in dem sie von dem Gateway zur Generierung der dynamischen Seiten genutzt werden. In der aktuellen Implementierung beinhaltet das Gateway sowohl die Anwendungslogik als auch die Präsentation der Datenbankergebnisse. Falls in Zukunft mehrere Tabellen immer wieder benutzt werden sollen indem man zwischen ihnen navigieren will, bietet sich an, die Relationen und Entities in einem Graphen abzuspeichern. Die Entities sind dabei die Knoten und die Relationen werden als Kanten dargestellt. Somit ist der Zusammenhang der Tabellen eindeutig erfaßt und kann für die Gestaltung der Benutzeroberfläche beliebiger Anwendungen als Grundlage dienen. Falls man später einmal das Gateway in Java implementieren will, kann man die Datenbankschnittstelle durch einen JDBC-Treiber ersetzen. Allerdings ist eher unwahrscheinlich, daß SNI solch einen Treiber für SESAM/SQL selbst anbieten wird. Da die Spezifikation von JDBC frei zugänglich ist, sind alle Informationen vorhanden, um einen JDBC-Treiber für SNI Datenbanken selbst zu implementieren. 35 Schon jetzt ist über das Internet eine große Anzahl von Java-Applets, die das einfache Erzeugen von Präsentationsgrafiken zulassen, erhältlich. Durch Parameterübergabe der Datenreihe, Legende und Diagramminformationen lassen sich z.B. mit dem Java Applet NetCharts (URL http://www.netcharts.com/) ansprechende Grafiken erzeugen. Somit kann sich der Data Warehouse-Benutzer schnell einen Überblick über aktuelle Entwicklungen verschaffen, ohne daß er die Zahlenkolonnen mühsam interpretieren muß oder die Daten über die Exportdarstellung in sein eigenes Präsentationsprogramm einlesen muß, um sie graphisch aufzubereiten. Ein grundsätzliches Problem ist allerdings dabei die Mehrdimensionalität der Daten (z.B. Zeit, Produktgruppen, Absatzgebiete, Großhändler, etc.). 36