Technische Universität München Institut für Informatik Hauptseminar im Wintersemester 2000/2001 Architektur und Implementierung von Internetdatenbanken Lehrstuhl Prof. Bayer, Ph.D. Ist Website Management ein Datenbankproblem? Benötigen Datenbanken ein Webinterface? Ausarbeitung Willem Wijnakker 2. November 2000 Betreuer: Robert Fenk 1 1. Einführung: Warum Datenbanken fürs WWW? Dieser Arbeit liegen zwei Kernproblematiken zugrunde, auf denen viele unterschiedliche Thematiken, Anforderungen und Aspekte aufbauen und aus denen weitere Problematiken resultieren. Diese sind: Webanbindung von Datenbanken (DBS -> Web) Website Management mit Datenbanken (Web -> DBS) Zum einen stellt sich die Frage, wie man existierende Datenbanken an das Web anbindet und zum anderen, wie man Datenbanken für das Website Management nutzt? Nachfolgend soll ein Überblick über diesen umfangreichen Themenkomplex gegeben werden, sowie die Unterschiede, trotz vorhandenen Parallelen, hervorgehoben werden. Webanbindung von Datenbanken Datenbanken enthalten beispielsweise Informationen aus den vielfältigsten Abteilungen eines Unternehmens und stellen diese den unterschiedlichen Arbeitsgruppen (Computergestützter Entwurf, Produktionsplanung, Kundenbetreuung, usw.) über anwendungsspezifische Schnittstellen bereit. Die Homogenisierung des Zugangs zu verteilten Daten und den Zugriff auf Legacy-Systeme kann eine leistungsfähige Middleware mit standardisierten Schnittstellen unterstützen. Die Abbildung von Geschäftsprozessen unter Verwendung eines ganzheitlichen Unternehmensinformationssystems (Enterprise information system) für Mitarbeiter, Management und Kunden ist eine Forderung der Zeit und kann zur organisatorischen Selbstreinigung eines Unternehmens führen. Daher ist die Einführung der Internet-Technologien in das firmeneigene Netz (Intranet) eine große Chance. Mehrere Gründe motivieren den Zugriff auf Datenbanken über das WWW: 1. 2. 3. 4. 5. Der herkömmliche, transaktionsbasierte Zugriff auf Online-Daten in operativen Datenbanksystemen über eine vereinfachte Oberfläche (DB-Anwendungen werden „internetfähig“). Der Zugriff auf sekundäre Datenbestände (Kopien oder Data Warehouses, DW) zur Auswertung von Daten. Die Verarbeitung von Daten unter Aspekten wie Schutz, Sicherheit und finanzieller Transaktionen (Electronic Commerce, Merchant Server). Die Verwaltung der Informationen, bei der die Dokumente als Informationsbausteine in einer Datenbank modelliert und mit deren Funktionalität bearbeitet werden. Wenn Daten in Dokumente mit Lebenszyklus und Zustand eingehen (Workflow Management Systeme, WFMS) und als Teil der Geschäftsprozesse aufgefaßt werden. Dabei steht bei 1), 3) und 4) die Verwendung der Datenbank als Technologiebasis, bei 2) und 5) als Informationsquelle im Vordergrund. Die Varianten können sich untereinander mischen. So steht die Entscheidung an, ob für einen Anwendungsfall nach 1) auf „heiße“ Daten zugegriffen werden soll (was auch wegen Verfahrenssicherheit, Performance und Datenschutz nicht zweckmäßig sein muß), oder ob ähnlich 2) „kalte“ Daten für den WWW-Zugriff vorgehalten werden. Website Management mit Datenbanken Die erste Frage, die sich stellt: Ist Website Management überhaupt ein Datenbankproblem? In vielen heißen Debatten über die Anwendbarkeit von Datenbanktechnologie auf das Internet und das World Wide Web ging als eines der Teilgebiete das der Webseitenkonstruktion und des Webseitenmanagements hervor. Parallel dazu wurden viele Forschungsprojekte gestartet, um dieses Problem zu behandeln (Strudel, Araneus, YAT und WebOQL). Das Hauptthema dieser Projekte ist das deklarative Management des Inhalts und der Struktur von Webseiten. Diese Projekte nährten sich aus vorhergehenden wichtigen Arbeiten über Management von halbstrukturierten Daten und Datenintegration. Zusätzlich stiegen die Aktivitäten von Datenbankanbietern an, Werkzeuge zu entwickeln, mit denen man Daten verwalten kann, die in Datenbanken abgelegt sind. Weitere Website Management Tools werden von anderen Firmen hergestellt (z.B. FrontPage, NetObjects, etc.). Diese Produkte bieten immer mehr Möglichkeiten, Daten aus verschiedenen externen Quellen aufzunehmen und die Struktur von Webseiten zu managen. 2 Als zentrale Fragestellung gilt, ob Website Management ein Datenbankproblem ist, als Ganzes oder zumindest teilweise. Bei den Diskussionen sind folgende Meinungen vertreten: Website Management ist kein Datenbankproblem. Wenn es auch einige Datenmanagement-Elemente an sich hat, so sind diese jedoch gering. Website Management wird hauptsächlich eine Kombination der Realisierung der Benutzerschnittstelle und der Entwicklung flexibler Tools zur Erstellung von CGI bin Skripten bleiben. Oft wird hier mit dem Thema des Netzwerkmanagements verglichen, bei dem Datenbanktechnologie nicht viel beigetragen hat. Website Management ist ein gelöstes Datenbankproblem. Ausreichende Website Management Tools sind bereits verfügbar. Darunter befinden sich Oracle, Informix, DB2, Sybase und andere. Es sind nur noch geringfügige Änderungen und Erweiterungen der Benutzerschnittstelle nötig, um aktuelle Datenbankmanagement-Systeme an das Problem des Website Management anzupassen. Website Management ist größtenteils ein Datenbankproblem. Entwickelt man ein Website ManagementSystem basierend auf Datenbankkonzepten, muß man viele Annahmen überdenken, die man bei traditionellen Datenbanksystemen macht. So braucht man beispielsweise ein neues Datenmodell, welches auch die Modellierung der Webseitenstruktur unterstützt, man benötigt neue Anfragesprachen, Designprinzipien für Webseiten, neue Datenverwaltungstechniken und neue Methoden, solche Systeme in eine Programmierumgebung einzubetten. 2. Einsatzmöglichkeiten von DBS Verwaltung von Hypertext-Dokumenten mit Hilfe eines DBS Wird den Nutzern eine große Informationsmenge, in der Regel durch sehr viele HTML-Seiten, zur Verfügung gestellt, so bietet sich die Verwaltung der Hypertext-Dokumente mit Hilfe eines DBS an. Viele DBS-Hersteller bieten entsprechende Zusatzmodule zur Dokumentenverwaltung, d.h. der Speicherung von HTML-Texten innerhalb einer DB, an. Je nach Produkt sind dabei unter anderem Versionierung, Datenkompression, vereinfachte Zugriffsverwaltung sowie (verbesserte) Suchmöglichkeiten zu nennen. Um die gespeicherten Dokumente im Browser anzeigen zu können, bedarf es einer geeigneten Schnittstelle zwischen DBS und WWWServer. Beispiele für Web-Anbindungen von Datenbanken Die zweite, weitaus häufiger genutzte Einsatzmöglichkeit von DBS im WWW ist die der Verwaltung „traditioneller“ Daten. Diese werden über entsprechende Schnittstellen, die nachfolgend noch erörtert werden, zu einem Browser übertragen oder aus diesem heraus aktualisiert. Um den Bedarf an geeigneten Web-Anbindungen von Datenbanken zu motivieren, dienen einige der kommenden Beispiele: Bereitstellung aktueller (Börsen-)Daten: In Verbindung mit dem Trend zu Direktbanken mit „Online-Banking“ bwz. „Online-Brokerage“ (Bank24/Deutsche Bank, comdirect, Dresdner Bank, Advance Bank, ConSors, etc.) und dem Wegfall von persönlicher Beratung entsteht bei den Kunden ein Informationsbedarf, unter anderem nach aktuellen Börseninformationen. Um diesen zu befriedigen, werden nun dem Kunden aktuelle Börsenkurse im WWW zur Verfügung gestellt. Als zusätzlicher Service werden zudem grafisch aufbereitete Kursanalysen (Charts) und kundenspezifische Portfolio-Analysen angeboten. Zudem existieren mittlerweile von verschiedenen kommerziellen Anbietern entsprechende, weitergehende Angebote. Nachrichten(-Ticker) Von Zeitungen werden im WWW Ausschnitte der aktuellen Ausgabe sowie ein elektronisches Archiv mit Suchmöglichkeiten angeboten. Da die Zeitungen über einen elektronischen Nachrichtenticker durch die Presseagenturen beliefert werden, ist es ohne personellen Aufwand möglich, dem Benutzer einen Teil der 3 aktuellen Meldungen auf WWW-Seiten zur Verfügung zu stellen. Hierzu ist es notwendig, eingehende Meldungen zu speichern sowie eine Überblicksseite automatisch zu aktualisieren. Verfolgung von Vorgängen(Auftragsbearbeitung, Paketdienst): Setzt ein Unternehmen intern eine elektronische Auftragsbearbeitung oder ein ähnliches, auf die jeweilige Dienstleistung (z.B. Paketdienst) abgestimmtes System ein, so kann über das WWW als Kundenservice ein Zugriff auf den aktuellen Bearbeitungszustand angeboten werden (z.B. UPS, FedEx). Neben dem PrestigeGewinn durch entsprechende Serviceleistungen können aber auch ökonomische Vorteile in Bezug auf Einsparung von Personalkosten (telefonische Auskunft) erwartet werden. Bestell-Center: Viele Unternehmen verwenden das WWW als Plattform für die Firmenpräsentation, verbunden mit dem Angebot einer Produktauswahl und der Möglichkeit zur Informationsanforderung. Hierbei sind die jeweils vom Anwender anzugebenden Daten (Adresse, Kundennummer, etc.) nach einer eventuellen Prüfung in die interne Kunden- und Auftragsdatenbank aufzunehmen. Neben diesen Anwendungen haben sich zum einen durch den technischen Fortschritt, zum anderen durch die zugenommene Akzeptanz auf Seiten der Benutzer sowie innerhalb der Unternehmen weitere WWW-basierte Einsatzgebiete etabliert: Intranet (EIS, WFMS): Durch die Einführung von Intranets können auf Basis der Internet- und WWW-Technik unternehmensinterne Anwendungen (plattformunabhängig) realisiert werden. Hierzu gehört sowohl die eines Enterprise-Information-Systems (EIS), als auch Gruppenarbeitssysteme wie zum Beispiel WorkflowManagement-Systeme (WFMS). Mit Hilfe eines EIS kann nun allen Mitarbeitern, eventuell mit Abstufungen der Zugriffsrechte, ein Großteil der bis dahin papierbasierten Informationen wie Nachschlagewerke (Telefonbücher, Anschriftenlisten, usw.) und interne Mitteilungen mit Suchmöglichkeiten zur Verfügung gestellt werden. Durch WFMS können (betriebsinterne) Vorgänge gesteuert und koordiniert werden, wobei eine optimale und fehlertolerante Ausführung der Abläufe angestrebt wird. Durch die Plattformunabhängigkeit von HTML und Java ist die WWW-Technik prädestiniert, um als Basis für die Realisierung solcher Systeme in einem meist heterogenen und verteilten Umfeld zu dienen. E-Banking und E-Commerce: Wird das Vertrauen bei den Geschäftspartnern, d.h. Kunden und Unternehmen, in die Sicherheit der eingesetzten Technik weiter gestärkt, so wir der elektronische Handel sowie die Abwicklung von Bankgeschäften weiterhin zunehmen. Neben der Einführung von elektronischem Geld ist besonders die Unterstützung von Kreditkarten erforderlich. Die großen Kartenunternehmen haben sich die Freiheit genommen, mit Industriepartnern an einem entsprechenden Abrechnungsstandard zu arbeiten. Zuvor wurde ein Großteil der mit der Hilfe des WWW getätigten Bestellungen intern ausgedruckt und wie eine schriftliche Bestellung behandelt. Setzt man jedoch ein Workflow-Management-System mit WWWAnbindung ein, so kann die Bestellung durch den Kunden der erste Schritt in einem durch ein WFMS gesteuerten Bearbeitungsablauf sein. Die dargestellten Beispiele zeigen jedoch nur einen Ausschnitt der Einsatzmöglichkeiten von DBS im Zusammenspiel mit dem WWW. Das jeweils zur Verfügung stehende Potential wird oft nicht ausgeschöpft, noch immer wird das WWW teilweise überhaupt nicht genutzt. So wird auch in Zukunft die Zahl der WWWgestützten Anwendungen zunehmen, damit auch die Zahl der angebundenen DBS. 3. Aufgaben des Website Managements mit Datenbanken: Webseitenkonstruktion und Umstrukturierung Ein Aspekt, bei dem Datenbankkonzepte und -technik angewendet werden kann, ist der des Aufbaus, der Umstrukturierung und der Verwaltung von Internetseiten. Im Gegensatz zu den anderen zwei Klassen, bei denen bereits Seiten existieren, betrachtet man hier den Erzeugungsprozeß von Webseiten. Diese können entweder ausgehend von Rohdaten (abgelegt in Datenbanken oder strukturierten Files) oder durch Überarbeitung 4 existierender Seiten erstellt werden. Um diese Aufgaben auszuführen benötigt man Techniken zur Modellierung der Struktur der Webseite und Sprachen zur Umgestaltung der Daten in die gewünschten Struktur. Aufgrund der Tatsache, daß Webseiten einen unentbehrlichen Zugang zu komplexen Informationsstrukturen bieten, ist es einleuchtend, die Technik von Datenbanksystemen für die Konstruktion und Instandhaltung von Internetseiten anzuwenden. Man kann dabei zwei allgemeine Aufgabenklassen zur Webseitenkonstruktion unterscheiden: eine, in der die Seiten aus einem Satz zugrundeliegender Datenquellen erzeugt werden, und eine andere, bei der sie durch Umstrukturierung bereits existierender Webseiten erschaffen werden. Es zeigt sich, daß für beide Klassen dieselben Techniken benötigt werden. Des weiteren kann man festhalten, daß die Aufgabe, eine Schnittstelle vom Web zu Daten eines einzelnen Datenbanksystems herzustellen, eine einfache Instanz der Problematik der Webseitenkonstruktion ist. Um die Schwierigkeit bei der Konstruktion der Webseiten und dem möglichen Importieren von Datenbanktechnik zu verstehen, muß man sich die Aufgaben vor Augen halten, die dazu realisiert werden müssen: Die Daten selektieren und abrufen, die auf der Seite angezeigt werden sollen, die Struktur der Webseite designen und das Konzipieren der grafischen Präsentation der Seiten. In den existierenden Website Management-Tools sind diese Aufgaben zum Großteil ineinander verschachtelt. Ohne derartige Programme müssen HTML Dateien oder Programme zur deren Generierung von Hand geschrieben werden und man muß sich dabei gleichzeitig auf den Seiteninhalt, die Beziehung zu anderen Seiten und schließlich das Design konzentrieren. Als Folge lassen sich verschiedene wichtige Aufgaben, wie das automatische Aktualisieren, die Umgestaltung einer Seite oder der Aufbau der referentiellen Integrität innerhalb der Seitenstruktur nur mühselig realisieren. Es wurden verschiedene Systeme entwickelt mit dem Ziel, Datenbanktechnik mit der Problematik der Webseitenkreation zu verbinden. Die Hauptaufgabe dieser Systeme ist, daß sie eine deklarative Repräsentation der Struktur der Webseite geben. Diese ist definiert als eine Sicht auf existierende Daten. Die Sprachen, die benutzt werden, um diese Sicht zu erstellen, resultieren in Graphen von Webseiten mit Hyperlinks, anstelle simpler Tabellen. Die Systeme unterscheiden sich im verwendeten Datenmodell, der Anfragesprache und darin, ob sie eine intermediäre, logische Repräsentation der Webseite besitzen, anstatt nur einer Repräsentation des fertigen HTMLs. Eine Webseite zu erzeugen, indem man eine deklarative Repräsentation der Struktur der Seite nutzt, hat mehrere signifikante Vorteile. Da die Struktur einer Webseite und deren Inhalt durch eine Anfrage festgelegt ist und nicht prozedural von einem Programm, ist es einfach, mehrere Versionen einer Seite zu kreieren. So ist es beispielsweise möglich, auf einfache Art und Weise interne und externe Ansichten einer Unternehmensseite zu realisieren oder auch Seiten, die auf individuelle Nutzer zurechtgeschnitten sind. Dazu müssen momentan mehrere Programme geschrieben werden oder manuell verschiedene HTML-Dateien erstellt werden. Verschiedene Versionen einer Seite können entweder durch das erstellen unterschiedlicher Seitendefinitionsanfragen oder aber durch Verändern der graphischen Repräsentation unabhängig von der zugrundeliegenden Struktur. Des weiteren fördert die deklarative Repräsentation der Struktur der Webseite auch die einfache Entwicklung der Struktur einer Webseite. So zum Beispiel für die Reorganisation von Seiten, die auf häufig genutzten Spuren basieren oder um den Inhalt der Seiten zu erweitern, braucht man nur einfach die Seitenanfrage neudefinieren, anstatt Programme oder HTML-Dateien neu zuschreiben. Ein weiterer Vorteil einer deklarativen Spezifikation von Webseiten ist die Möglichkeit, referentielle Beziehungen aufzusetzen und die Seite automatisch zu aktualisieren, sobald sich Änderungen bei den zugrundeliegenden Daten ergeben. Außerdem bietet eine solche deklarative Spezifikation eine Plattform für die Entwicklung von Optimierungsalgorithmen zum Laufzeit-Management von datenlastigen Webseiten. Auf unterster Ebene greift das System auf einen Satz von Datenquellen zu, die auf der Seite bereitgestellt werden sollen. Die Daten können in Datenbanken, in strukturierten Dateien oder in existierenden Webseiten abgelegt sein. Sie werden im System in einem Datenmodell repräsentiert und das System liefert den Datenquellen eine einheitliche Schnittstelle. Der Hauptschritt bei der Webseitenkonstruktion ist das Erstellen eines Ausdrucks, der die Struktur der Webseite deklarativ repräsentiert. Dieser Ausdruck wird in einer spezifischen Anfragesprache verfaßt, die das System zur Verfügung stellt. Das Ergebnis der Anbindung dieser Anfrage an die zugrundeliegenden Daten stellt die logische Repräsentation der Webseite innerhalb des Datenmodells des Systems (z.B.: einen gerichteten Graphen) dar. Um letztendlich eine navigierbare Seite zu erhalten, beinhaltet das System eine Methode (z.B.: HTML-Templates), die logische Struktur in einen Satz von HTML Dateien zu übersetzen. 5 Navigierbare Webseite Spezifikation zur graphischen Präsentation HTML Generator Logische Repräsentation der Webseite Deklarative Spezifikation der Struktur der Webseite Einheitliche Sicht der zugrundeliegenden Daten Mediator Wrapper DB Strukturierte Files HTML Seiten Abb.1: Architektur für Website Management Systeme Modellierung und Anfragen des Webs Betrachtet man das Web als gerichteten Graphen, dessen Knoten Webseiten sind und dessen Kanten die Links zwischen den Seiten. Als erste Aufgabe kann man sich die Formulierung von Anfragen überlegen, um bestimmte Webseiten zu erhalten. Die Anfragen können auf den Inhalt der gewünschten Seiten basieren und auf die Struktur der Links, welche die Seiten verbindet. Die einfachste Instanz dieser Aufgabe, die von Suchmaschinen im Internet erfüllt wird, ist Seiten aufzuspüren anhand der Wörter, die sie beinhalten. Eine simple Verallgemeinerung einer solchen Anfrage besteht darin, komplexere Prädikate an die Inhalte einer Seite hinzuzufügen ( z.B.: finde Seiten mit dem Wort „Clinton“ neben einem Link oder einem Bild). Als Anfragebeispiel, das die Struktur der Seiten mit einbezieht, dient beispielsweise die Anfrage nach allen Bildern, die vom Root-Verzeichnis der CNN Webseite innerhalb von 5 Links erreichbar sind. Diese Art von Anfragen sind besonders hilfreich, wenn es darum geht, Verletzungen von Integritätsbeziehungen einer Webseite oder einer Gruppe von Webseiten zu finden. Von Bedeutung ist dabei sowohl die interne Struktur der Webseiten als auch die externe Struktur der Links, die diese miteinander verbinden. Man versucht, die Grenzen der Suchmaschinen zu überwinden, indem man die Linkstruktur in Anfragen ausnutzt. Dafür liefert der Connectivity Server schnellen Zugang zu strukturellen Informationen. Google, eine Suchmaschinen, macht intensiven Gebrauch der Webstruktur, um Suche und Indexierung zu verbessern. Die Arten der Anfragesprachen gliedern sich in verschiedene Gruppen: Hypertext/ Dokument Anfragesprachen: Bereits vor der großen Webära wurden schon Modelle und Sprachen konzipiert, um strukturierte Dokumente und Hypertext anzufragen. So wurden zum Beispiel Dokumente an objektorientierte Datenbankinstanzen gekoppelt und somit semantische Aktionen an eine Grammatik angefügt. Dann kann die Datenbankrepräsentation mit der Anfragesprache des Datenbanksystems angefragt werden. Dabei gilt als neuer Aspekt die Möglichkeit, die Struktur mit Hilfe von Pfadvariablen abzufragen. Graphenbasierte Anfragesprachen: Infolge der Nutzung von Graphen zur Medellierung von Datenbanken entstanden die graphengestützen Sprachen G, G+ und GraphLog. Diese Basieren auf gerichtete Graphen und ermöglichen reguläre Pfadausdrücke und Graphenkonstruktion in Anfragen. Graphlog wurde in Hypertextanfragen integriert und so wurde eine graphenbasierte Anfragesprache für objektorientierte Datenbanken geschaffen. 6 Anfragesprachen für halbstrukturierte Daten: Diese Art von Anfragesprachen wie Lorel, UnQL und StruQL nutzen ebenfalls gerichtete Graphen als ein flexibles Datenmodell. Im Kontrast zu den graphenbasierten Anfragesprachen besitzen sie die Fähigkeit, das Schema der Daten anfragen zu können und Irregularitäten der Daten aufzuspüren, wie beispielsweise fehlende oder wiederholte Felder und heterogene Einträge. Jedoch sind diese Sprachen nicht speziell für das Internet entwickelt worden und unterscheiden zum Beispiel nicht zwischen Kanten von Graphen, welche die Verbindung zwischen einem Dokument und eines seiner Teile repräsentieren und Kanten die einen Hyperlink von einem Internetdokument zu einem anderen markieren. Eine erste Generation von Anfragesprachen zielte darauf ab, die inhaltsbasierten Anfragen der Suchmaschinen mit den sturkturbasierten Anfragen eines Datenbanksystems zu verbinden. Diese Sprachen, die W3QL, WebSQL und WebLog umfassen, verknüpfen Restriktionen auf Textmuster in Dokumenten mit Graphenmustern, die eine Linkstruktur beschreiben. Die zweite Generation von Anfragesprachen, die auch Datenmanipulationssprachen genannt werden, unterscheiden sich von der ersten Generation in zweierlei Hinsichten: Erstens bieten sie Zugang zur Struktur der Internetobjekte, die sie bearbeiten, und modellieren sowohl die interne Struktur von Internetdokumenten, als auch die externen Links die sie verbinden. Sie erlauben Referenzen, um Hyperlinks zu gestalten, und einige sogar strukturierte Daten für eine einfachere Datenrepräsentation. Zweitens bieten diese Sprachen die Möglichkeit, aus einem Anfrageergebnis neue komplexe Strukturen zu erschaffen. Zu den Sprachen, welche die meist halbstrukturierten Daten des Internets unterstützen, zählen WebOQL, StruQL und FLORID. System WebSQL W3QS WebLog Lorel WebOQL UnQL STRUDEL ARANEUS FLORID Datenmodell Relational gerichtete Mehrfachgraphen Relational gerichtete Graphen Hypertrees gerichtete Graphen gerichtete Graphen Seitenschemata F-logic (objektorientiert) Sprache SQL SQL Datalog OQL OQL strukturelle Rekursion Datalog SQL Datalog Pfadausdrücke ja ja nein ja ja ja ja ja ja Graphenerzeugung nein nein nein nein ja ja ja ja nein Abb.2: Vergleich verschiedener Anfragesysteme 4. Webanbindung von Datenbanken Bestimmte Webseiten können unter einer feineren Ebene betrachtet werden als andere, als Behälter von strukturierten Daten (Datensätze oder Objekte). Zum Beispiel kann die Internet Movie Database als front end interface zu einer Filmdatenbank gesehen werden. Bedenkt man das Wachstum solcher Seiten, stehen zwei Aufgaben zur Überlegung. 1. 2. Die erste Aufgabe ist es, eine strukturierte Repräsentation der Daten (z.B. einem einzelnen Datensatz) aus den HTML-Seiten, die sie beinhalten, zu extrahieren. Diese Aufgabe wird durch WrapperProgramme erfüllt, deren Erstellung und Wartung einige Herausforderungen mit sich bringt. Dadurch wird einem vorgetäuscht, die Webseite würde Datensätze liefern. Die Kombination von zugrundeliegender Webseite und Wrapper bezeichnet man als Web-Source. Sieht man diese Seiten als autonome und heterogene Datenbanken, läßt sich die zweite Aufgabe angeben, die aus dem Stellen von Anfragen zur Datenintegration besteht. Diese wird durch Mediator- oder Datenintegrations-systeme bewerkstelligt. Die Aufgabe eines Internetinformations-Integrationssystems ist es, Anfragen zu beantworten, die möglicherweise die Beschaffung und Kombination von Daten mehrerer Quellen erfordern. Beispielsweise 7 Anfragen wie: zeige mir einen Film, Spielzeit und Rückblick auf Filme mit Frank Sinatra, der heute Abend in Paris gezeigt wird. Es wurden verschiedene Systeme erstellt mit dem Ziel, Anfragen zu beantworten, die eine Vielzahl von Internetquellen benutzen. Viele der Probleme, auf die man dabei gestoßen ist, sind vergleichbar mit denen bei der Entwicklung heterogener Datenbanksysteme. Zusätzlich müssen Internet-Datenintegrationssysteme mit großer und zunehmender Zahl an Internetquellen, geringen Meta-Informationen über die Charakteristiken der Quelle und erhöhtem Grad an Autonomie der Quelle umgehen können. Eine wichtige Unterscheidung bei der Erstellung von Datenintegrationssystemen besteht darin, ob man einen Warenkorb oder einen virtuellen Ansatz benutzt. Bei der ersten Variante werden Daten von mehreren Internetquellen in einen Warenkorb geladen. Dazu ist es nötig, daß der Warenkorb aktualisiert wird, wenn sich die Daten ändern. Der Vorteil dabei ist aber, daß angemessene Performance zum Anfragezeitpunkt garantiert wird. Beim virtuellen Ansatz verbleiben die Daten in den Quellseiten und Anfragen an das Datenintegrationssystem werden zur Laufzeit umgewandelt in Anfragen an die Quellen. Dabei werden die Daten nicht repliziert und ist garantiert aktuell zum Abfragezeitpunkt. Jedoch werden aufgrund der Selbständigkeit der Quellen effizientere Anfrageoptimierungen und Ausführungsmethoden benötigt, um entsprechende Performance zu gewährleisten. Der virtuelle Ansatz eignet sich mehr für den Bau von Systemen mit einer großen Anzahl Quellen, sich ständig verändernden Daten und geringer Kontrollierungsmöglichkeit der Internetquellen. Evolutionsstufen der Datenbankanbindung an das WWW Seit der Einführung des Common Gateway Interface (CGI) ist es durch das Server-seitige Ausführen von Programmen möglich, in Datenbanken gespeicherte Informationen in HTML-Seiten einzubinden. Bei der dabei verwendeten Technik kann man trotz der relativ kurzen Entwicklungsgeschichte schon deutliche Evolutionsstufen erkennen. Ausschlaggebend sind dabei Kriterien wie mögliche Transaktionsdauer sowie den Erstellungs- und Wartungsaufwand der zugehörigen HTML-Seiten und Programme. Die 1. Generation Als Datenbankanbindung der ersten Generation bezeichnen wir die vom Informationsanbieter für die einzelnen DB-Anfragen selbst erstellten Skripte oder Programme (meist Perl, C oder Shell-Skripte). Sie werden durch den CGI-Mechanismus des WWW-Servers aufgerufen und mit entsprechenden Parametern versorgt. Im Skript bzw. dem Programm sind die auszuführende DB-Anfrage und die zu erstellende HTMLErgebnisseite, in die das Anfrageergebnis eingebunden werden soll, fest kodiert. Die vom DBS gelieferte Antwort, deren Struktur schon bei der Skript- bzw. Programmerstellung weitestgehend festgelegt werden muß, wird gelesen und dann in HTML umgewandelt. Da die als Antwort zu übertragende HTML-Seite und auch die DB-Anfrage fest kodiert sind, kann ein so erstelltes CGI-Programm nur einen bestimmten Auftrag ausführen, d.h. für jede Aufgabe muß ein neues Programm erstellt werden. Folgene Abbildung zeigt ein einfaches, in Perl geschriebenes CGI-Programm, das aus einer mSQL-DB mit Bookmarks alle gespeicherten Namen von WWW-Seiten zusammen mit den zugehörigen URLs liest und daraus eine Tabelle innerhalb eines HTML-Dokuments erzeugt. #!/usr/bin/perl # Msql-Package laden: use Msql; # Seitenkopf ausgeben: print“Content-type: text/html\n\n“; # [...] # Verbindung mit dem DB-Server herstellen: $testdb = Msql ->connect; # Datenbank auswaehlen: $testdb->selectdb(“bookmarks“); 8 # Datenbankanfrage stellen: $sth = $testdb->query(“select name, url from bookmarks where url <>´´ order by name“); # Resultat ausgeben: print“<TABLE BORDER=1>\n“; print“<TR>\n<TH>Name<TH>URL</TR>“; $rows = $sth->numrows; while ($rows>0) { @sqlrow = $sth->fetchrow; print“<TR><TD>“,@sqlrow[0],“</TD><TD><A HREF=\““, @sqlrow[1],“\“>“,@sqlrow[1],“</A></TD></TR>\n“; $rows--; } print“</TABLE>\n“; # Seitenende ausgeben: # [...] Abb.3: Web-Anbindung der 1. Generation (mSQL) Die 2. Generation Ausgehend von den Problemen mit den DB-Web-Anbindungen der ersten Generation und beschleunigt durch die immense Nachfrage wurden von Datenbankherstellern und Drittfirmen Werkzeuge zum direkten DB-Zugriff mit Hilfe des CGI entwickelt. Folgende Techniken haben sich dabei etabliert: CGI/Server-Erweiterungen: Die häufigste Gemeinsamkeit aller Web-Anbindungen der zweiten Generation ist jeweils ein allgemeines CGI-Programm, das bei jedem DB-Zugriff anstelle der bisherigen Individuallösungen aufgerufen wird. Um die durch den Aufruf eines CGI-Programms entstehenden Geschwindigkeitsverluste zu vermeiden, wird in einigen Ansätzen eine Erweiterung des WWW-Servers mit Hilfe der entsprechenden Server-API (Application Programming Interface) vorgenommen. Hierdurch findet die Programmabarbeitung im Adreßraum des WWW-Servers statt, ein Aufruf eines CGI-Programms ist nicht mehr erforderlich. Ein zusätzlicher Vorteil besteht darin, daß eine ständige Verbindung zum DB-Server gehalten werden kann. Etwaige Wartezeiten fallen nicht mehr an. HTML/Makro-Programm: Neben den bisher als Programmparametern in der URL übergebenen Anfrageinformationen muß in der Regel nun auch eine Datei spezifiziert werden, deren Inhalt je nach Produkt variiert. Eine häufige Lösung ist der Gebrauch von um Datenbankoperationen erweiterten HTML-Seiten. Hierbei werden Anfragen, benötigte Variablen, etc. durch spezielle Befehle (<!msql>, <syb>, <?misql>) in das normale Dokument eingebettet. Ein wesentlicher Vorteil dieser Technik ist die Kontrollmöglichkeit der erstellten Seiten mit Hilfe eines WWW-Browsers. Da die in den Seiten enthaltenen DB-Operationen, d.h. die dem Browser unbekannten Anweisungen ignoriert werden, wird die Seite in der späteren Form dargestellt. Das in Abb.2 gezeigte HTML-Dokument, in dem W3-mSQL verwendet wird, hat dieselbe Funktionalität wie das in Abb.1 dargestellte Perl-Skript, ist jedoch viel einfacher zu erstellen. <HTML> <head><title>The Bookmark Database</title></head> <BODY> <H1 align=center>The Bookmark Database</H1> <!-- DB-Verbindung aufbauen --> <! msql connect > <HR NOSHADE><P> 9 <!-- Datenbank auswaehlen --> <! msql database bookmarks> <!-- Datenbankanfrage stellen --> <! msql query “select url, name from bookmarks where url <>´´ order by name“ q1> <!-- Resultat formatiert ausgeben --> <!TABLE BORDER=2><TH> URL <TH> Name <! msql print_rows q1 “<TR><TD>@q1.1</TD> <TD><A [email protected]>@q1.0</TD></TR>“> <!-- Resourcen freigeben und Verbindung schließen --> <! msql free q1> <! msql close> </BODY></HTML> Abb.4: Web-Anbindung der 2.Generation (W3-mSQL) Eine zweite Technik besteht in der Auswertung einer Makrodatei, in der getrennt voneinander DBOperationen und entsprechende HTML-Seiten abgelegt werden. Die Inhalte der unterschiedlichen Sektionen können zwar unabhängig voneinander mit entsprechenden Werkzeugen entwickelt werden, allerdings ist nach dem Zusammenfügen eine spätere Nachbearbeitung nur schwer möglich. Schließlich besteht eine dritte Technik in der Erweiterung der DB-Programmierschnittstelle um Webspezifische Funktionalität, d.h. der Möglichkeit zur einfachen Generierung von HTML-Ausgaben. Durch die Verwendung der Programmierschnittstelle steht, ähnlich wie bei den Ansätzen der ersten Generation, der volle Funktionsumfang des DBMS zur Verfügung, man ist bei der Programmerstellung auf Kosten der Einfachheit sehr flexibel. Ablage der Seiten: Während die meisten Produkte mit im normalen Dateisystem abgelegten Informationen (abgesehen von den DB-Daten) arbeiten, speichern andere zusätzlich zu den „normalen“ Daten auch die HTML-Seiten in der DB. Der erste Ansatz hat den Vorteil der einfachen Wartung mit Hilfe der üblichen Werkzeuge, der zweite bietet die Vorteile eines DBS, unter anderem erweiterte Suchmöglichkeiten und die Verwaltung von Zugriffsrechten. Transaktionsdauer: Von den angebotenen Produkten bieten nur wenige die Möglichkeit, mehrere DB-Operationen zu einer Transaktion zusammenzufassen (Multi-Statement Transaction, MST), um so z.B. durch bedingte Anweisungen eine größere Verarbeitungsflexibilität zu erlangen. Ein Großteil der Produkte unterstützt lediglich Single-Statement Transaction (SST). Die 3. Generation Beruhen die beiden ersten Generationen von DB-Web-Anbindungen noch auf dem CGI, so beginnt mit der dritten Generation die Ära von Java. Bedingt durch die Einschränkung der Transaktionsdauer und den Verzicht auf Funktionalität in den beiden ersten Evolutionsstufen wurde nach einer adäquaten Lösung gesucht, um sich von diesen Behinderungen zu lösen. Fündig wurde man 1995 mit der (Netz-) Programmiersprache Java. Sie bietet die Möglichkeit, in HTML-Seiten eingebundene Java-Programme auf dem WWW-Server bereitzustellen, diese zusammen mit der entsprechenden Seite beim Einladen durch den WWW-Browser in diesen zu übertragen und dort auszuführen. Realisiert man nun DB-Schnittstellen in Java, so stehen alle Möglichkeiten von Client/Server-Systemen zur Verfügung. Dazu öffnet die Java-Anwendung nach dem Programmstart eine Verbindung zum DB-Server, mit dem es über die gesamte Verarbeitungsdauer hinweg in Kontakt steht. Während bei den Produkten der zweiten Generation in der Regel mit formulierten SQL/OQL-Anfragen gearbeitet wird, bietet sich durch die direkte DB-Verbindung ein breites Spektrum von potentiellen Lösungen: 10 Java Database Connectivity (JDBC): JDBC ist an das weit verbreitete ODBC (Open Database Connecitivity) angelehnt und bietet wie das Vorbild die Möglichkeit zur Ausführung von SQL-Befehlen, da es ebenso auf dem X/Open Call Level Interface (CLI) basiert. Neben der Bereitstellung von reinen Java-Treibern besteht eine Alternative in der Nutzung eines JDBC-Aufsatzes auf ODBC (JDBC-ODBC-Bridge), um die so bestehende Infrastruktur ausnutzen zu können. Aufrufschnittstelle (Call Level Interface, CLI): Ein anderer Ansatz besteht darin, neben C, C++ oder Smalltalk auch für Java eine DBS-spezifische Funktionsschnittstelle bereitzustellen. Diese Schnittstelle zum Absenden von SQL-Anfragen wird von den meisten DBMS-Herstellern unterstützt. Durch das starke Wachstum von Java-Anwendungen beeinflußt, wächst die Zahl der auf dem Markt verfügbaren Java-DB-Schnittstellen, darunter sind unter anderem MsqlJava für mSQL, OCI/Java für Oracle, Confiserie für POET und ObjectStore PSE für Java, eine JavaBibliothek für persistente Objekte ähnlich der ObjectStore-Technik für C++ und Smalltalk. public class bookmarks extends java.applet.Applet { public static void main(String[ ] args) { bookmarks d = new bookmarks( );} public bookmarks( ) { Msql msql; try { msql = new Msql( ); // Verbindung aufbauen und DB auswaehlen msql.Connect(“agdvs2.informatik.uni-kl.de“, false); msql.SelectDB(“bookmarks“); //Anfrage stellen MsqlResult result = msql.Query(“select name, url from bookmarks where url <>´´ order by name“); String row[ ]; while((row = result.FetchRow( )) != null) { for(int i=0; i<row.length; i++) // Ergebnis ausgeben } msql.Close( ); } // ... Abb.5: Web-Anbindung der 3. Generation (MsqlJava) CORBA: Das von OMG spezifizierte CORBA soll die Ortstransparenz von Objekten und die Ausführung von Methoden auf ihnen unterstützen, um verteilte Systeme zu ermöglichen. Java bietet dagegen als eine ideale Ergänzung Plattformunabhängigkeit von erstellten Programmen. Da in CORBA bereits Schnittstellen zu verschiedenen DBS bestehen, kann nun durch die Realisierung eines Java-CORBA-Clients ein DB-Zugriff vom WWW-Browser aus geschaffen werden. SUN unterstützt dies durch die Aufnahme einer entsprechenden Spezifikation in Java sowie eigene Produkte. ActiveX: Das von Microsoft als Gegenpol zu CORBA geschaffene Gespann aus COM (Component Object Model) bzw. DCOM (Distributed COM) und ActiveX gewann durch die Macht des Marktes bei Web-basierten Datenbankschnittstellen an Bedeutung. Mit Hilfe von OLE-( Object Linking and Embedding) bzw. „ActiveX-Controls“ ist es möglich, Applikationen mit entsprechender Unterstützung von (D)COM als Objekte in andere einzubetten und „fernzusteuern“, ohne daß beim Entwurf eines Programmes Schnittstelleninformationen über das andere vorhanden sein müssen (Binärkompatibilität). Neben Textverarbeitungs- und Tabellenkalkulationsobjekten können nun auch Datenbank-„Frontends“ in ActiveXfähige WWW-Browser eingebunden und so eine Datenbankanbindung geschaffen werden. Hierzu steht auch das „ActiveX Object Interface“ (auch „OLE DB“) zur Verfügung, das auf der Basis von COM für eine DBAnbindung sorgt. 11 Java: Transaktionsdauer: Durch die Möglichkeit, DB-Verbindungen über längere Zeit zu etablieren, können nun auch Anwendungen mit größerer Verarbeitungsdauer realisiert werden. Komplexe Programme: Der Browser kann im Gegensatz zu den CGI-Lösungen, wo er nur zur Dateneingabe diente, nun als Ausgabeinstrument einer komplexen Anwendung genutzt werden. Anfrageergebnisse können mit Hilfe der grafischen Möglichkeiten von Java ohne das Anfallen hoher Bildübertragungskosten visualisiert, Bedingungen schon direkt bei der Eingabe und nicht erst bei der Anfrageausübung überprüft und komplexe Berechnungen, wie auch „normalen“ Anwendungen gewöhnt, ausgeführt werden. Entwickelte Programme sind plattformunabhängig. Direkte Verbindungen: Da die im WWW-Browser laufende Anwendung direkt mit dem DB-Server kommuniziert, können die üblichen Mechanismen (2PC) zur Absicherung einer vom Anwender kontollierbaren Ablaufsteuerung eingesetzt werden; die diesbezügliche Unsicherheit wie beim CGI entfällt. Daher werden Java-Lösungen auch für „Internet-Banking“ eingesetzt. Aufhebung des Flaschenhalsproblems: Alle DB-Aufrufe gehen ohne Umwege direkt an den DB-Server, die Zwischenstufen WWW-Server als potentieller Flaschenhals entlastet, zum andern können die Ausführungszeiten drastisch reduziert werden. Längere Ladezeiten: Ein wesentlicher Nachteil dieser Generation ist die zu Beginn jeder Verarbeitung erforderliche Übertragung der Anwendung einschließlich der DB-Schnittstelle in Form von Java-Klassen vom WWW-Server zum Browser. Für Intranet-Anwendungen und entsprechende Übertragungsbandbreiten fällt dies nicht ins Gewicht, aber bei Nutzung des Internets ergeben sich hier, besonders bei komplexen Applikationen, erhebliche Ladezeiten. Verlust von HTML: Da alle Daten mit Hilfe einer Java-Anwendung verarbeitet werden, steht HTML nur noch zur Einbettung der Applikation, nicht aber zur Formulargestaltung und Ergebnisdarstellung zur Verfügung. Formulare, Ergebnistabellen und Grafiken müssen nun in Java programmiert werden, was einen deutlich höheren Aufwand und eine Abkehr von standardisierten Schnittstellen (HTML-Formulare) bedeutet. Sicherheitsproblematik: Das auf der Client-Seite im Browser auszuführende Programm wird von einem WWW-Server heruntergeladen. Arbeitet man nicht in einem abgeschirmten Intranet, besteht bei der Übertragung ohne Verschlüsselung Gefahr der Manipulation. Einschränkung von Verbindungsmöglichkeiten: Je nach Systemumgebung und Einstellungen können im Browser ausgeführte Java-Anwendungen Netzwerkverbindungen nur zum Rechner, von dem sie geladen wurden, etablieren. Dies bedeutet, daß WWW-Server und DB-Server auf einem Rechner bereitgestellt werden müssen. Hierdurch sind Kapazitätsengpässe bei der Rechenleistung möglich. Um diese Einschränkung zu umgehen und zudem den DB-Server vom Internet abzuschirmen, kann auf dem Rechner mit dem WWW-Server ein Kommunikations-Server (Broker) eingerichtet werden, der die Aufrufe des Clients an den zuständigen DB-Server weiterleitet. Erweiterungen von HTML/HTTP: Im Bereich der CGI-basierten Ansätze haben Erweiterungen vom Übertragungsprotokoll HTTP, der Dokumentensprache HTML sowie der Server-Funktionalität stattgefunden. HTTP wurde bereits um längere Verbindungen ergänzt, um so mehrere Dokumentkomponenten auf einmal übertragen zu können. Hierdurch wird der zeitaufwendige Verbindungsaufbau, der für jede einzuladende Komponente nötig war, vermieden. Erweitert man nun die Verbindungsdauer auf den Austausch von mehreren Dokumenten, kann man zusammen mit Verbesserungen der WWW-Server-Funktionalität (z.B. Zustandsverwaltung) längere Transaktionen realisieren. 5. Architekturen und Verfahren Zwischen CGI und Applikations-Server oder gar interoperablen Informationssystemen liegen technologische Welten. Das äußert sich auch in der Architektur der Systeme. Die Ausgangssituation ist eine Zwei-Ebenen12 Architektur: Clients stellen Anfragen an den Server, er liefert statische HTML-Dateien und Bilder. Mit CGI ist dynamisches HTML möglich. Durch diesen neuen Prozeß erweitert sich die Architektur auf drei Ebenen, bleibt aber ebenso einfach und kompatibel wie die verwendeten Standards HTTP und CGI. Die Modellierung der Dokumente findet eher im CGI-Programm als in einer Datenbank statt. Typisch sind schlanke Clients (thin clients). Werkzeuge für die Programmerstellung sind spärlich gesät. Für die Programmierung des CGI dient eine beliebige Programmiersprache. Mit Javascript, Java und ActiveX können nun auch Aktivitäten im Client ablaufen. Neben der Präsentationslogik kommt Anwendungslogik hinzu, nachdem die direkte Verbindung zur Datenbank über eine allgemeine DBSchnittstelle möglich wird: Java Database Connectivity. Der direkte DB-Zugriff ohne Serveraktivitäten verringert die Architektur wieder auf zwei Ebenen. Durch aktive Clients und aktive Server entstehen „echte“ Client/Server-Systeme. Neue Nachteile ergeben sich mit Java, Javascript und ActiveX durch das Verschicken des Codes zum Client: einerseits ist die Netzbelastung höher, andererseits wird dadurch Know-How freigegeben. Es wird unbekannter Code auf dem Client ausgeführt. Abhilfe könnte für Java das „Java Electronic Commerce Framework“ (JEFC) schaffen, durch das neben extensiven Sicherheitsverfahren (Java Secure API) lokale Kopien von Java-Dienstbibliotheken (Service Cassettes) gehalten werden. 6. Vor- und Nachteile einiger unterschiedlicher Methoden CGI-Programmierung (1. Generation): Vorteile: Schnelle und flexibelste Methode, um auf einzelne Elemente einer Datenbank zuzugreifen DB-spezifische Operationen sind gezielt anwendbar Völlig unabhängig vom eingesetztem WWW-Server Nachteile: Programmerstellung aufwendig (umständliche Parameterübergabe, keine CGI-Entwicklungsumgebung, Debugging problematisch) Formatierung des Dokuments erst nach der Programmausgabe überprüfbar Keine Sitzungen, kein Transaktionskonzept über mehrere getrennte Zugriffe; dieselbe Operation könnte daher im Fehlerfall eventuell mehrmals angestoßen werden Geringe Performance bei großen Datenmengen wegen des Routings durch denn WWW-Server Hohe Antwortzeiten wegen der permanenten Neustarts der DB-Client je Anfrage Hohe Serverbelastung durch Prozeßanzahl Fazit: CGI-Programme sind eigentlich nur für den gezielten, transaktionslosen DB-Zugriff bei geringem Datenaufkommen und kurzer CGI-Prozeßlaufzeit geeignet. HTML-Makrosprache (2. Generation): Vorteile: Schnellste, einfache und relativ flexible Methode, um auf Elemente einer Datenbank zuzugreifen Allgemeine DB-Anfragen sind wiederverwendbar (Zwei-Dateien-Methode) Wenn HTML-Editoren die Makro-Anweisungen ignorieren, kann man mit ihnen die Zieldokumente erstellen Nachteile: Abhängigkeit vom verwendeten Produkt (CGI-Anbindung) oder WWW-Server (Unterstützung von Makrosprache und DB-Schnittstelle) Bei der Interpretation im CGI kommen dessen Nachteile hinzu Komplexe Anwendungsfunktionalität mit Makroprozeduren nicht realisierbar 13 Keine expliziten Sitzungen Fazit: Um Makros erweitertes HTML ist eine gegenüber CGI elegantere, weil wesentlich schneller zu erstellende und besser zu wartende Variante des einfachen DB-Zugriffs. Die Auswahl des geeigneten WWW-Servers ist vom Verfahren der Makro-Interpretation (CGI oder serverintern) und von der dabei unterstützten DB-Schnittstelle/ Makro-Sprache abhängig. WWW-Server/API (2. Generation): Vorteile: Sitzungen sind im WWW-Server verwaltbar Performance-Gewinn durch dauerhafte DB-Verbindung und den Datenaustausch zwischen WWW-Server und DB-Client über den gemeinsamen Hauptspeicherbereich DB-spezifische Operationen sind gezielt verwendbar Zieldokument kann im HTML-Editor erstellt werden Nachteile: Programmerstellung aufwendig (Debugging problematisch) Hoher Einarbeitungsaufwand in die API-Spezifika Abhängigkeit von API-kompatiblen WWW-Servern Gefahr des „Hängen-bleibens“ offener DB-Transaktionen durch noch nicht beendete Sitzungen Fazit: API-Programm-Module sind für den sitzungsorientierten DB-Zugriff bei hohem Datenaufkommen geeignet. Die Module besitzen eine verallgemeinernde Funktionalität, was sich positiv auf ihre Wiederverwendbarkeit und negativ auf die realisierbare Anwendungslogik auswirkt. Application-Server (z.T. 3. Generation): Vorteile: Alle Vorteile der Arbeit mit Client/Server Nahtloser Übergang zu einer Middleware möglich, deren breites Leistungsspektrum für Systemintegration und Interoperabilität von WWW-Diensten nie erreicht werden wird Nachteile: Erhöhung der Netzbelastung durch die Übertragung größerer Anwendungen in den Client (fat clients) und wenn servertypische Arbeiten (z.B. bedingte Selektion) erst im Client durchgeführt werden AS können laut Java-Sicherheitsrahmen nur auf dem Rechner des WWW-Servers laufen (eventuell weitere Vermittlung von Anfrage und Daten nötig) Strenge Ausrichtung nach verwendeter Middleware und Werkzeugen zur Anwendungserstellung Verlust der „Highlights“ des WWW: einfache Dokumenterzeugung mit HTML und Ersatz des simplen, standardisierten HTTP durch beliebige Protokolle Fazit: Aktive Dokumente eröffnen dem WWW durch die Präsentationsvielfalt im Browser und spezifische Protokolle neue Einsatzmöglichkeiten. Der Aufwand für die Erstellung einer AS-Anwendung scheint anfangs gering zu sein. Das stimmt jedoch nur für den Zugriff auf einzelne DB-Elemente mit geringer Anwendungslogik. Die Programmierung kompletter Anwendungen kommt eher einem Paradigmawechsel gleich, da die Anwendungslogik im AS konzentriert und verallgemeinert werden muß. 7. Künftige Anforderungen Das WWW wird mit seinen neuen Datentypen, den erweiterten Anwendungsmöglichkeiten und den gestiegenen Benutzerzahlen nur unzureichend durch DBS unterstützt. Neue Anforderungen sind entstanden oder zeichnen 14 sich ab. Im folgenden werden die wichtigsten Forschungsschwerpunkte hinsichtlich der Synthese von WWW und DBS skizziert: Neue Datentypen für das Website Management Für die Verwaltung der zur Verfügung zu stellenden Informationen bietet sich bei größeren Datenmengen der Einsatz von DBS an. Allerdings unterstützen „traditionelle“ DBS nicht die Verwaltung von HTML-Seiten und ihrer Komponenten, so daß neue Datentypen für die multimedialen Daten (Text, Bilder, Filme, Musik und auch Programme) benötigt werden. Zwar existieren schon einige Lösungen, die das einfache Speichern ermöglichen, weitergehende Funktionalität ist in der Regel aber nicht vorhanden. Zukünftig zu erfüllende Anforderungen Dateisystem: Um zum einen die einfache Migration von auf dem Dateisystem basierenden, bestehenden WWW-Servern hin zu DB-gestützten Lösungen realisieren zu können und zum anderen einfache Verweise innerhalb der DB zu ermöglichen, bietet sich die Bereitstellung einer Verzeichnisstruktur durch das DBS an. Zudem lassen sich Verzeichnisangaben innerhalb einer Adresse durch den Anwender einfacher merken als die meist kryptischen Suchanfragen. Intelligente (Volltext-)Suche: Zu den Vorteilen eines DBS gegenüber einem einfachen Dateisystem gehören auch die (erweiterten) Suchmöglichkeiten, wie zum Beispiel die Volltextsuche. Neben den Fähigkeiten von reinen TextretrievalSystemen wird noch eine weitere Funktionalität benötigt, um die HTML-Anweisungen sinnvoll interpretieren und ausnutzen zu können. Möchte man alle gespeicherten Dokumente zum Thema HTML als Ergebnisliste haben, so dürfen nicht alle Dokumente angezeigt werden (alle HTML-Texte beginnen mit der Anweisung <HTML>...). Suche nach Autoren, Schlüsselwörtern, Erstellungsdatum oder nach bestimmten Inhaltsstrukturen (enthält drei Querverweise, Listen, etc.) erscheinen angebracht. Versionierung: Die Möglichkeit zur (automatischen) Erhaltung und zum Lesen von älteren Dokumentenversionen bringt viele Vorteile mit sich. Zum einen läßt sich verlustfrei editieren, zum anderen können so z.B. ohne großen Aufwand bei ständig aktualisierten Texten auch ältere Versionen (beispielsweise die Titelseite eines bestimmten Datums bei einer Zeitung) dem Anwender zur Verfügung gestellt werden. Zudem läßt sich mit Hilfe der Versionierung ein großer Datenbestand für den Anwender konsistent halten: Es wird so lange die alte Dokumentversion geliefert, bis alle Seiten und damit auch die Querverweise aktualisiert wurden, dann erst wird auf die neuste Version umgeschaltet. Das Web DataBlade von Illustra bietet Versionierung als „Time Travel“-Option an. Referentielle Integrität: Die Wartung der internen Querverweise der Hypertext-Dokumente ist eine sinnvolle Aufgabe, die jedoch wegen des Aufbaus von HTML nur durch eine Analyse der HTML-Seiten möglich ist. Einfaches Editieren: Das Editieren der durch das DBS verwalteten Dokumente muß weiterhin mit den normalen Werkzeugen ohne größeren Aufwand möglich sein. Systeme für die Webanbindung von Datenbanken Werden WWW-basierte Anwendungen realisiert, die Synchronisation erfordern, entstehen für die DBS eine Reihe neuer Anforderungen: Lange Transaktionen: Im Gegensatz zu „normalen“, lokalen Applikationen entstehen durch die Internet-Nutzung teilweise erhebliche Übertragungszeiten zwischen DB-Client und –Server. Kommt dazu noch Benutzeraktion („human in the loop“), so werden aus einfachen Transaktionen Lange Transaktionen mit den entsprechenden Auswirkungen, Leistungsprobleme sind die Folge. 15 Neue Anwendungen und Synchronisation: Werden im Rahmen einer Transaktion nicht nur vorgegebene Anwendungsschritte vollzogen, sondern die Möglichkeit zur (mengenorientierten) Anfrageausführung und „Daten-Browsing“ gegeben, hat dies Auswirkungen auf die Leistungsfähigkeit des DBS. Durch das „Browsing“ bzw. die Anfragen können große Teile des Datenbestands für andere Transaktionen (zum Schreiben) gesperrt werden. Wie bei den Langen Transaktionen entsteht ein geringer Systemdurchsatz durch Deadlocks oder Wartezeiten. Authentisierung: Anders als bei lokalen DB-Anwendungen, die nur einem begrenzten Personenkreis offenstehen und bei denen Authentisierung bzw. Autorisierung meist über das Benutzerkennzeichen abgewickelt werden, lassen sich WWW-basierte Applikationen von potentiell jedem Internet-Teilnehmer nutzen. Die vom WWW bekannte Autorisierung über die Eingabe eines Namens und eines Passworts ist für kritische Anwendungen (Bankgeschäfte über das Internet, etc.) nicht ausreichend. Weitergehende Maßnahmen wie beispielsweise Transaktionsnummern (TANs) sowie Digitale Signaturen werden benötigt. Für das DBS entstehen neue Verwaltungsaufgaben. Systemarchitekturen für die Webanbindung von Datenbanken Ein Großteil der CGI-Lösungen der ersten und zweiten Generation hat erhebliche Geschwindigkeitseinbußen durch die mehrstufige Aufrufhierarchie. Der WWW-Server wird zum Flaschenhals, hohe Transaktionsraten sind nicht möglich. Die Erweiterung des WWW-Servers mit Hilfe der Server-API beschleunigt nur die Verarbeitung, der WWW-Server bleibt weiterhin ein Nadelöhr. Hauptproblem ist der zentralistische Ansatz, das heißt, alle Zugriffe werden über einen WWW und einen DB-Server abgewickelt. Abhilfe schafft hier nur die Verteilung der Last auf mehrere Server. Während sich statische Informationen relativ einfach auf mehrere WWW-Server verteilen lassen, bereitet eine eventuelle Aufteilung von häufig aktualisierten und in DBS gehaltenen Daten mehr Probleme. Die beiden folgenden (nicht disjunkten) Szenarien zeigen die Hauptprobleme. Szenario 1: Die DB-Daten werden nicht nur von WWW-Anwendungen, sondern auch von anderen, „traditionellen“ Applikationen (Legacy-Applikationen) genutzt, und das DBS bietet von sich aus keine Möglichkeit zur Verteilung. Möchte man nun die Daten auf mehrere DB-Server aufteilen bzw. entsprechende Replikate anbieten, müssen die (unterschiedlichen) DBS durch eine zusätzliche Schicht (Middleware) zwischen WWW- und DB-Server untereinander synchronisiert und die Konsistenz der Replikate mit dem Original bzw. die des Originaldatenbestands gewährleistet werden. Wichtig erscheint vor allem die sinnvolle Integration der Legacy-Systeme. Szenario 2: Teile eines zentralen Datenbestands müssen weltweit verfügbar sein, andere länderspezifische Informationen nur lokal. Um adäquate Übertragungsbandbreiten für alle Nutzer garantieren zu können, werden daher alle benötigten Daten jeweils lokal, zum Teil als Replikat des globalen Datenbestands, gehalten. Zur Gewährleistung der Datenkonsistenz wird ein Verteiltes DBS (Distributed DBS, DDBS) benötigt. Anders als bei den meisten der bisherigen Ansätze für DDBS wird jedoch kein lokales Netz, sondern das Internet verwendet. 16 WWW-Server (Solaris, NT,...) MiddlewareApplikation LegacyApplikation Middleware WWW-Server Relationaler DB-Server Legacy DB-Server Daten DB-Server Daten Daten Szenario 1 Daten Szenario 2 Abb.6: Systemarchitekturen Ein wichtiger Aspekt bei beiden Szenarien ist die Kooperation von DBS, sei es als Komponenten im Rahmen eines DDBS oder als weitgehend autonome Systeme im Bereich von MDBS und FDBS. Geht man davon aus, daß ein Großteil der „traditionellen“ Daten in (prä-)relationalen Systemen vorliegt, aber für die Verwaltung von HTML-Seiten, wenn überhaupt, überwiegend objektorientierte oder objektrelationale Systeme eingesetzt werden, so ist besonders die Kooperation zwischen den einzelnen „Generationen“ gefordert. 8. Zusammenfassung und Ausblick Webanbindung von Datenbanken (DBS -> Web) Die Menge angebotener Tools zur WWW-DB-Integration entwickelt sich fast so rasch wie das WWW selbst. Verschiedene Verfahren haben sich durch client- und serverseitige Erweiterungen herausgebildet. Eine Favorisierung einer der unterschiedlichen Basistechnologien wie CGI, API und Application-Server ist nicht abzusehen, da die Anforderungen letztlich anwendungsspezifisch sind und die Komplexität mit leistungsfähigeren Tools und Techniken sehr stark ansteigt. Eine optimale Lösung für die DB-Anbindung an das WWW existiert bislang nicht, es gibt einen „Tradeoff“ zwischen der Mächtigkeit der Ansätze und der Einfachheit der Anwendungserstellung. Wünschenswert ist eine Lösung mit der Mächtigkeit von Java in Verbindung mit der Einfachheit von HTML. Als Entwicklungstrend ist daher auch die Ergänzung bestehender CGI-basierter Produkte um weitere Funktionalität festzustellen. Es gilt, die Zustandslosigkeit von HTTP zu überwinden, um auch Anwendungen mit längeren Transaktionen zu ermöglichen. In diesem Punkt sind eindeutig die Lösungen auf Basis von Java im Vorteil, da sie eine echte Client/Server-Umgebung realisieren können. Website Management mit Datenbanken (Web -> DBS) Während schon mehr oder weniger geeignete Lösungen für die Anbindung bestehender DBS existieren, besteht bei den DBS bezüglich der WWW-Unterstützung noch größerer Forschungsbedarf. Für die Verwaltung von HTML-Dokumenten und ihrer multimedialen Komponenten mit Hilfe eines DBS werden geeignete Datentypen benötigt. Die Koexistenz von neuen WWW-basierten und Legacy-Systemen ist eine Herausforderung, die individueller Lösungen bedarf. Auch die Verwaltung und Anbindung der Daten global operierender und daher 17 weltweit vertretender Unternehmen auf Basis von Intra- und Internet bringt interessante Forschungsaspekte im Bereich der Datenbanken mit sich. Die Plattformunabhängigkeit des WWW mit HTML und Java verdeckt die Heterogenität auf der Benutzerseite und schafft gerade damit ganz neue Möglichkeiten für DB-gestützte Anwendungen. In vielen Hinsichten ist das WWW einer Datenbank unähnlich. So gibt es beispielsweise keine einheitliche Struktur, keine Integritätsbeziehungen, keine Transaktionen, keine Standardanfragesprache oder Datenmodell. Vielleicht erweisen sich die mächtigen Abstraktionen, die in der Datenbankgemeinde entwickelt wurden, als Schlüssel dafür, die Komplexität des Internets zu verringern und wertvolle Dienste anzubieten. Von besonderer Bedeutung ist die Sichtweise einer großen Webseite nicht nur als eine Datenbank, sondern als ein Informationssystem umgeben von einer oder mehreren Datenbanken und versehen mit komplexer Navigationsstruktur. In dieser Hinsicht hat eine Webseite viele Gemeinsamkeiten mit Informationssystemen außerhalb des Webs. Eine solches Webseitendesign erfordert das Erweitern der Designmethoden für Informationssysteme. Benutzt man diese Grundlagen, um Webseiten zu konstruieren, wird sich das auch auf die Art der Webanfragen und die Art der Datenintegration von mehreren Webquellen auswirken. Verschiedene Trends werden bedeutenden Einfluß auf die Nutzung von Datenbanktechnologie für Internetapplikationen haben. Der erste ist natürlich XML. Der beträchtliche Schwung von XML und zusammenhängenden Metadaten kann die Ankopplung von Datenbankkonzepten ans Internet nur unterstützen, indem die dringend gebrauchte Struktur in einem vielseitig akzeptierten Format bereitgestellt wird. Während die Verfügbarkeit von Daten im XML-Format die Notwendigkeit verringern wird, sich auf WrapperProgramme zu fixieren, die für den Menschen lesbaren Code in Maschinencode konvertieren, bleibt die Herausforderung der semantischen Integration der Daten von Internetquellen jedoch nach wie vor. Ein zweiter Trend, der die Anwendbarkeit von Datenbanktechniken zur Anfrage des Internets beeinflussen wird, ist das Wachstum des sogenannten „Verdeckten“ Netzes (hidden web). Dieses Netz bezieht sich auf die Webseiten, die erzeugt werden von mit Benutzereingaben gefütterten Programmen und deshalb nicht von Suchmaschinen (web crawler) zur Indexierung zugänglich sind. Es wurde behauptet, daß fast 80% des Webs bereits im Verdeckten Netz ist. Wenn Tools von Daten aus diesem Netz profitieren sollen, muß man Techniken zur Identifizierung von Seiten entwickeln, die Webseiten erzeugen, sie klassifizieren und automatisch Anfrageschnittstellen an diese erstellen. Es gibt keinen Mangel an möglichen Entwicklungsrichtungen auf diesem Gebiet. In der Vergangenheit konzentrierte sich die Masse der Arbeit auf die logische Ebene, die Entwicklung von passenden Datenmodellen, Anfragesprachen und Methoden, verschiedene Aspekte von Internetquellen zu beschreiben. Im Kontrast dazu erhielten Probleme wie Anfrageoptimierung und -ausführung relativ wenig Aufmerksamkeit und bieten einen Teil der wichtigeren Herausforderungen für zukünftige Arbeiten. Einige der bedeuterenden Richtungen, in die man die vorhandenen Datenmodelle und Anfragesprachen erweitern muß, beinhaltet das Einbeziehen von verschiedenen Formen von Metadaten über Quellen und die prinzipielle Kombination von Anfragen strukturierter und unstrukturierter Daten an das WWW. Die Technologien des Internets ebnen den Weg für ganzheitliche Informationssysteme. Sie bieten jedoch nur Basisfunktionalität. Für den Ausbau von WWW-DB-Übergängen zu Unternehmensinformationssystemen werden weitaus mächtigere Konzepte für Datenmodellierung (Meta-Informationen), Dokumentverwaltung, lange und kooperative Transaktionen sowie Anfragesprachen benötigt. Es kommt darauf an, die Vorzüge offener Kommunikationsplattformen mit der Leistungsfähigkeit von Datenbanksystemen und Middleware zu verbinden, ohne auf einer neuen Stufe in die Welt proprietärer Systeme zurückzufallen. 9. Literatur Benn W., Gringer I.: Zugriff auf Datenbanken über das World Wide Web Florescu D., Levy A., Suciu D.: Is Website Management a Database Problem? Florescu D., Levy A., Suciu D.: Database Techniques for the World-Wide Web: A Survey Loeser H.: Datenbankanbindung an das WWW - Techniken, Tools und Trends 18