Access-Datenbanken im WWW mittels IDC und HTX
Dynamische WWW-Angebote, die die interaktive Eingabe und Abfrage von Datenbankinhalten gestatten, gehören zu den attraktivsten Möglichkeiten der modernen Netzwerktechnologien. Im Internet Information Server (IIS) aus dem Hause Microsoft, der einen Bestandteil des Betriebssystems Windows NT 4.0 Server darstellt, sind die notwendigen Softwarekomponenten für einfache aber durchaus leistungsfähige Anwendungen dieser Art bereits standardmäßig enthalten. Die neueste Version des Programm IIS wird bei der Installation der aktuellen Windows NT 4.0 Service-Packs, die von den WWW-Seiten der Firma Microsoft heruntergeladen werden können, jeweils automatisch installiert. Über die einheitliche ODBC-Softwareschnittstelle, die vom Windows-Betriebssystem bereitgestellt wird, können Datenbankquellen, die mit Systemen unterschiedlicher Hersteller erzeugt wurden, über den IIS in das WWW bzw. in ein Intranet integriert werden. Für die Realisierung dieser Möglichkeiten haben die Microsoft-Entwickler weitestgehend auf vorhandene Technologien wie HTML und SQL zurückgegriffen. Daher ist eine Nutzung der hier beschriebenen Datenbank-Schnittstelle ohne speziellen Programmieraufwand möglich. Die Erstellung entsprechender Datenbankanwendungen verursacht Entwicklern, die mit den Grundkonzepten von SQL und HTML vertraut sind, in der Regel keinen allzu großen Zeitaufwand. Die Einbindung vorhandener Datenbankinhalte innerhalb von WWW- bzw. Intranet-Projekten ist ebenfalls ohne Probleme realisierbar. Dieselbe Funktionalität steht bei den Peer-Web-Services von Windows NT 4.0 Workstation sowie unter Windows 95 bei Benutzung des Personal Web Servers, der z. B. Bestandteil des Softwarepaketes Frontpage 97 ist, zur Verfügung. Für die im folgenden besprochenen Beispiele wird vorausgesetzt, daß als Datenbanksoftware das Produkt MS-Access von Microsoft zum Einsatz kommt. Es sei aber nochmals darauf hingewiesen, daß aufgrund der Standardisierung der Softwareschnittstellen auch andere Datenbankprogramme in entsprechender Weise als Basis für Internetangebote verwendet werden können, sofern die hierzu benötigten ODBC-Treiber installiert sind.
Die Kommunikation zwischen Datenbank und Browser Während bei herkömmlichen WWW-Seiten mit statischen Inhalten ein fertiges HTML-Dokument vom Server angefordert wird, verbirgt sich hinter dem Aufruf einer Datenbankabfrage über den Browser lediglich eine Dokumentvorlage mit Platzhaltern, die erst im Moment der Anforderung mit Inhalten der angebundenen Datenbank gefüllt werden. Durch die Betätigung einer Schaltfläche oder eines Hypertext-Links bewirkt der Benutzer die Ausführung einer sogenannten IDC-Datei auf dem Internetserver, in der sich Angaben über die Datenquelle sowie SQL-Befehlsfolgen befinden. Hierdurch wird die ODBC-Schnittstelle aktiviert. Diese führt dann die SQL-Abfrage gegen die Datenbank aus und reicht die zurückerhaltenen Datensätze an den Internetserver zurück. Dort wird schließlich aus einer Dokumentvorlage, die im HTX-Format vorliegt, und den Abfragedaten ein neues HTML-Dokument erzeugt und als formatiertes Abfrageergebnis an den Browser des Benutzers zurückgegeben. Da der Internet Database Connector unter konsequenter Anwendung der sehr schnellen ISAPI-Schnittstelle des Internet-Servers programmiert wurde, verursachen diese Vorgänge bei der heute üblichen Serverhardware keine spürbar längeren Antwortzeiten als sie bei konventionelle HTML-Dokumenten, die in ihrem Umfang vergleichbar sind, festgestellt werden. Der Vorteil dieser dynamischen WWW-Seiten liegt hierbei jedoch eindeutig in ihrer Flexibilität. Der Benutzer kann z. B. in HTML-Formularen die Möglichkeit erhalten, Abfragekriterien einzugeben und so aus einer größeren Datenmenge gezielt die Informationen abrufen, die ihn interessieren. Die Datenbanksprache SQL bietet darüber hinaus noch weitere Befehle an, die es z. B. ermöglichen, Daten über das Intranet bzw. Internet in bestehende Datenbanken einzugeben und zu verändern, so daß dem Benutzer die Funktionalität des Datenbanksystems auch mit einem Browser als Datenbank-Frontend erhalten bleibt. Dem Außendienstmitarbeiter eines Unternehmens, der über das Internet die Auftragsdatenbank seiner Firma aktualisiert, präsentiert sich dabei exakt dieselbe Bedieneroberfläche im Browserfenster, als wenn er den jeweiligen Vorgang an seinem Arbeitsplatz im Intranet durchführen würde. Der WWW-Browser fungiert dabei in beiden Fällen als eine Art Fenster zum Datenbanksystem. Im folgenden Beispiel sollen die Schritte zur Intranet- bzw. Internetanbindung an einer einfachen und praxisnahen Adressendatenbank verdeutlicht werden.
Erstellung der Datenbank Relationale Datenbanken bestehen grundsätzlich aus Tabellen. Im folgenden Beispiel werden zunächst die wesentlichen Schritte der Anbindung einer in MS Access erstellten Adressenliste an den Internet-Information-Server beschrieben. Die entsprechende Tabelle sei in einer Datenbank-Datei mit dem Namen Adressen.mdb abgelegt.
Der Einfachheit halber enthält das im hier behandelten Beispiel betrachtete Datenbank-Projekt nur eine einzige Tabelle, die ihrerseits den Namen Adressentabelle" trägt. Diese Tabelle besteht aus sieben Spalten, die mit
überschrieben sind. Die notwendigen Schritte zur eigentlichen Erstellung der beschriebenen Datenbank-Tabelle werden in der Online-Hilfe des Programms MS-Access ausführlich dargestellt. Im Weiteren muß die neue Datenbank nun für den Zugriff durch den IIS bzw. die ODBC-Schnittstelle vorbereitet werden. Hierfür ist es notwendig, daß sich die genannte Datenbank-Datei in einem für den WWW-Dienst des Servers freigegebenen Verzeichnis befindet. Diese Voraussetzung ist im Falle einer Web-Site, die mit dem IIS verwaltet wird, standardmäßig für das WWW-Server-Stammverzeichnis \inetsys\wwwroot\" und dessen Unterverzeichnisse erfüllt. Dem Verzeichnis der Datenbank-Datei, die sich in dem hier betrachteten Beispiel in \inetsys\wwwroot\Kunden\" befinden soll, müssen außerdem Schreib- und Ausführungsrechte für den Zugriff aus dem Internet zugeteilt werden. Dafür muß das Verzeichnis in dem entsprechenden Options-Dialog des Servers als sogenanntes virtuelles Verzeichnis eingetragen sein. Zur Aktivierung dieser Funktionalität wird zunächst in der Startleiste von NT 4.0 die Gruppe Programme ausgewählt und Microsoft Internet Server" angecklickt. Dort wird dann der Internet-Dienst-Manager geöffnet. Innerhalb eines Microsoft Netzwerks ist dann mit einem Mausklick der WWW-Server auszuwählen, auf dem sich die Datenbank befindet. Im Menü Eigenschaften wird die Option Diensteigenschaften" ausgewählt. In der hierdurch geöffneten Dialogbox wird dann die Registerkarte Verzeichnisse" aktiviert. In diesem Formular kann dem IIS nun mitgeteilt werden, welches Verzeichnis auf der lokalen Festplatte für den Zugriff auf die Datenbank aus dem Internet erreichbar sein soll. Bei Betätigung der Taste Hinzufügen" erscheint ein weiteres Formularfeld mit einer Eingabezeile, in der entweder der Verzeichnispfad, wie z. B. c:\inetsys\wwwroot\Kunden", direkt über die Tastatur eingegeben oder aber über die Schaltfläche Durchsuchen" mit der Maus ausgewählt werden kann. Diesem auf der lokalen Festplatte bestehenden Verzeichnis muß nun im Eingabefeld Alias" ein virtueller Name zugewiesen werden. Dieser soll im hier betrachteten Beispiel /Kunden" lauten. Durch die Angabe dieses gewählten Aliasnamens als Bestandteil eines URL kann das relevante Verzeichnis nun als Unterverzeichnis des Stammverzeichnisses der Web-Site im Browser aufgerufen werden. Dieser virtuelle Name kann sich vom wirklichen Namen des Verzeichnisses auf der lokalen Festplatte durchaus unterscheiden. Bei Web-Sites, die sich über verteilte Verzeichnisse auf mehreren Festplatten erstrecken, haben diese Aliasnamen den Vorteil, daß die Hierarchie der virtuellen Verzeichnisse auf der Internet-Site nicht der wirklichen Anordnung auf den Laufwerken entsprechen muß und so dem Benutzer verborgen bleibt, bzw. dem Webmaster zusätzliche Gestaltungsfreiheit läßt. Als Ergänzung zum Verzeichnis der Datenbankdatei wird empfohlen, für die IDC- und HTX-Dateien ein eigenes Verzeichnis zu erstellen und auch diesem im Internet-Dienst-Manager einen Aliasnamen zu geben. Sinnvoll für ein entsprechendes Verzeichnis mit dem Pfad c:\inetsys\wwwroot\Abfragen\" wäre z. B. der Aliasname /Kunden/Abfragen". Auf diese Trennung von ausführbaren Dateien von solchen, auf die auch Lesezugriffe erfolgen müssen, wird bei den Sicherheitsüberlegungen im nächsten Kapitel noch näher eingegangen.
Sicherheitsüberlegungen Bei der Verwendung des IIS stehen dem Web-Master alle Sicherheitskonzepte des Betriebssystems Windows NT zur Verfügung, d. h. die durch das Betriebssystem verwalteten Zugriffsrechte werden auch bei Datenbankoperationen, die über den Internet Information Server durchgeführt werden, beachtet. Hierdurch wird die Realisierung einer sehr differenzierten und leistungsfähigen Zugriffskontrolle ermöglicht. Das NTFS Sicherheitssystem ist sowohl auf komplette Verzeichnisse als auch auf die einzelnen Dateien anwendbar, so daß der Zugriff auf Daten nur für bestimmte Nutzergruppen nach einer Paßwortabfrage im Browser ermöglicht werden kann. Besonders bei Datenbanken, in denen Datensätze über den Browser auch verändert oder ein Teil der Datenbank vor Zugriffen geschützt werden soll, ist auf die schon angesprochene Trennung der ausführbaren IDC- und HTX-Dateien und den mit Lese- und Ausführungsrechten zu versehenden Hypertext- und Datenbankdateien zu achten. Durch das fehlende Leserecht für die Abfrage-Dateien wird verhindert, daß Benutzer an Informationen im Quelltext gelangen können und damit die Möglichkeit erhalten, unerwünschte Manipulationen in der Datenbank durchzuführen. Gerade für Intranet-Umgebungen ist auch jene Einstellmöglichkeit des IIS interessant, die es erlaubt, nur bestimmte IP-Adressen für Zugriffe auf einem WWW-Server zuzulassen und die Nutzung der Datenbank damit auf die im Unternehmensnetzwerk vorhandenen Computer von vornherein zu beschränken. Die vorhandene automatische Protokollierung der Datenbankzugriffe und die Möglichkeit des Verzichts auf einen anonymen Login befriedigen schließlich auch gehobenere Sicherheitsansprüche im Intranet. Sorgt für Connectivity: Die ODBC-Schnittstelle Um die Datenbankschnittstelle überhaupt für die Adressendatenbank konfigurieren zu können, muß bei der Installation von Windows NT die Option ODBC ausgewählt worden sein. Sofern die entsprechenden Komponeneten noch nicht installiert wurden, muß das Setup erneut ausgeführt werden. Hierzu erfolgt ein Doppelklick auf das Symbol Internet Information Server" in der Programmgruppe Microsoft Internet Server". In dem hierdurch aktivierten Installationsdialog können die fehlenden ODBC-Komponenten angewählt werden. Diese werden dann in der Gruppe Systemsteuerung" installiert. Zur Internet-/Intranetanbindung wird ein ODBC mit einer Versionsnummer, die größer als 2.5 ist, benötigt. Momentan ist die Version 3.0 aktuell. Der Internet-Datenbank-Connector benötigt außerdem für das Datenbanksystem einen 32-Bit-ODBC-Treiber, der ab den Versionen Microsoft Access 95 und Office 95 in den Programmpaketen enthalten ist. Der für Access 2.0 verfügbare ODBC-Treiber arbeitet hingegen nicht mit dem IIS zusammen.
Die Konfiguration der ODBC-Schnittstelle zur Anbindung einer Datenbank als Systemdatenquelle (DSN) erfolgt durch Aufruf des ODBC-Symbols in der Systemsteuerung von Windows NT. Hierdruch wird das Dialogfeld Datenquellen-Administrator" aktiviert. Wenn zuvor schon andere ODBC-Datenquellen angegeben wurden, werden diese ebenfalls aufgelistet. Über die Schaltfläche System-DSN" erfolgt ein Wechsel in das Dialogfeld Systemdatenquellen". Die neue Datenbank kann hier durch Hinzufügen" eingetragen werden. Nachdem im Listenfeld auf einen Microsoft Access-Treiber doppelgeklickt wurde, öffnet sich ein weiteres, treiberspezifisches Dialogfeld. Im Eingabefeld Datenquellenname" kann der Adressen-Datenbank nun ein logischer Name zugeteilt werden, unter dem sie vom IIS aufgerufen werden kann. Für unser Beispiel einer Adressendatenbank wird die Datenquelle schlicht mit dem Wort Adressen" benannt. Im Falle einer Anforderung von Daten über das WWW aus dieser Datenquelle dient dieser logische Name nun dazu, systemintern auf den entsprechenden Datenbanktreiber sowie der Position der Datenbank in einem Netzwerk zu verweisen. Mit der Betätigung der OK-Schaltfläche wird die Registerkarte Systemdatenquellen erneut angezeigt und enthält nun den Namen der Datenquelle. Ein erneuter Klick auf OK" beendet das ODBC-Setup.
IDC-Dateien und SQL-Befehle In IDC-Dateien sind die für den Datenbankzugriff benötigten Informationen enthalten. Derartige Dateien lassen sich mit jedem ASCII-Texteditor erstellen und besitzen einen sehr schematischen Aufbau, der sich aus der Definition von IDC-Feldern und Abschnitten mit SQL-Befehlsfolgen zusammensetzt. Während die IDC-Felder vorwiegend die allgemeinen Parameter zum Zugriff auf die Datenbank enthalten, werden in den SQL-Abschnitten die eigentlichen Datenbankaktionen definiert. Dabei ist allerdings zu beachten, daß die SQL-Anweisungen von der ODBC-Schnittstelle verarbeitet werden müssen. Man darf daher nicht die Syntax von MS Access-SQL verweden, sondern muß den speziellen Dialekt ODBC-SQL benutzen, will man sich hartnäckige Fehlermeldungen ersparen. Dieser SQL-Dialekt ist nach Installation des MS Access-ODBC-Treibers unter Windows NT 4.0 im Systemverzeichnis in der Datei MSJETSQL.hlp dokumentiert. In unserem kleinen Beispiel sollen aus der Adressentabelle Kunden anhand Ihrer Telefonnummer ausgewählt werden. In der IDC-Datei Telefon.idc", die diese Abfrage steuert, müssen dafür zunächst in den Feldern Datasource" und Template" der Datenquellenname (DSN) Adressen" sowie der Name der zur Abfrage gehörenden Datei Adresslist.htx" für die Formatierung der Ausgabe definiert werden. Optional kann man an dieser Stelle auch mit dem IDC-Feld MaxRecords" z. B. die Anzahl der auszugebenden Treffer beschränken, was bei sehr umfangreichen Datenbanken und ungenauen Suchkriterien überlange Wartezeiten verhindert. Im Abschnitt SQL-Statement" folgt dann der schon angesprochene Teil mit den SQL-Befehlsfolgen. Der Befehl SELECT from" wählt aus der angebundenen Datenbank bestimmte Tabellenspalten aus. Das Sonderzeichen *" (Wildcard) nach dem SELECT-Befehl veranlaßt die Einbeziehung aller Spalten der Tabelle mit dem Namen Adresstabelle" in die Abfrage. Sollen nur einige Spalten abgerufen werden,
um die zu übertragende Datenmenge zu reduzieren, so fügt man einfach anstelle
der Wildcard die durch Kommata getrennten Namen der betreffenden Spalten
ein. Um alle Datensätze auszuwählen, deren Wert in der Tabellenspalte
Telefonnr" mit dem aus dem Eingabefeld des HTML-Formulars erhaltenen
Parameter %Telefon% übereinstimmt, muß die SQL-Bedingung where"
eingefügt werden. Parameter aus HTML-Dateien sind zur Unterscheidung von
SQL-Tabellenspaltenbezeichnern in Prozentzeichen einzuschließen. Findet
der Internet Database Connector diesen Parameter in der IDC-Datei, ersetzt
er ihn durch den vom Web-Browser gesendeten Wert und übergibt dann die
SQL-Anweisungen an den ODBC-Treiber. Die im beschriebenen Beispiel benutzte Datei Telefon.idc" hat folgenden Inhalt: Datasource: Adressen +SELECT *
Aufruf aus HTML Der einfachste Weg für den Aufruf einer .idc-Datei besteht in der Einbindung eines URL in ein HTML-Dokument. Um z. B. alle Datensätze der Adressentabelle ohne Einschränkung durch die where"-Bedingung abzufragen, könnten Sie auf einer Webseite folgenden Hyperlink einbinden: ... <A HREF="http://wwwservername/Kunden/Abfragen/telefon.idc"> ... Für der Benutzer der Datenbank ist es jedoch in der Praxis zumeist wichtiger, die Auswahl der Daten durch die Möglichkeit eigener Eingaben im Web-Browser mit zu bestimmen. Über die schon bei den IDC-Dateien angesprochene Einbeziehung von Werten aus HTML-Eingabeformularen in SQL-Abfragen lassen sich so ganze Abfragemasken in HTML programmieren und zur gezielten Datensuche verwenden. Das Beispieldokument Kundenliste.htm" enthält zur Erfassung der Abfragebedingung ein INPUT-Feld mit dem Namen Telefon". ... <FORM METHOD="POST"
ACTION="/Kunden/Abfragen/Telefon.idc"> ... Sobald der Benutzer die Schaltfläche Abfrage ausführen" im Web-Browser betätigt, fordert dieser am Server die Ausführung der Datei Telefon.idc" an und übergibt dabei der IDC-Datei den HTML-Eingabeparameter %Telefon%.
Formatierung der Ausgabe mit HTX-Dateien Um die von der Datenbankabfrage zurückerhaltenen Informationen in einer Tabelle oder, vergleichbar mit den Berichten in Access, in einer Art Ausgabeformular übersichtlich zu formatieren, wird jeder IDC-Datei eine HTX-Dokumentvorlage zugeordnet. Diese HTML-Erweiterungsdatei besteht zum größten Teil aus normalem HTML-Code, mit dem Unterschied, daß mit zusätzlichen Schlüsselwörtern die Realisierung der Datenbank-Ausgaben gesteuert werden kann. Die wichtigsten Schlüsselwörter sind dabei die beiden Befehle <%begindetail%> und <%enddetail%>. Sie umschließen einen Abschnitt in der HTML-Erweiterungsdatei, in dem einzelne Elemente der Datenausgabe aus der Datenbank eingearbeitet werden. Die Position dieser zurückgelieferten Daten geben die Spaltennamen der abgefragten Tabelle, begrenzt durch <%" und %>", als Platzhalter an. In unserem Beispiel werden die Daten der Felder Name", Vorname" usw. bis Telefonnr" in HTML-Tabellenfeldern ausgegeben.
Zur Steuerung der Ausgabe sind in HTX-Dateien auch Bedingungen in einer if-then-else"-Anweisung erlaubt. Beispielsweise wird häufig eine Bedingung eingefügt, die überprüft, ob die Abfrage überhaupt zur Rückgabe von Treffern geführt hat. Mit der <%if%>-Anweisung und der vordefinierten Variablen CurrentRecord" kann die Ausgabe dahingehend gesteuert werden, daß eine Fehlermeldung gedruckt wird, wenn keine Datensätze zurückgeliefert wurden. Der Wert des Zählers CurrentRecord" ist für diesen Fall dann gleich Null.
Die hier benutzte Datei Kundenliste.htx" enthält im wesentlichen die folgenden Zeilen: ... <TABLE> <%begindetail%> </TABLE> ... Bei einer von Benutzereingaben abhängigen Formatierung der Ausgabe ist es oft erforderlich, in der HTX-Datei auf die in der IDC-Abfrage übergebenen Parameter des HTML-Eingabeformulars zurückzugreifen. Diese Funktionalität kann dadurch realisiert werden, daß beispielsweise dem Parameternamen <%Telefon%> die Erweiterung idc." vorangestellt wird.
Neue Trends Da die sinnvolle Realisierbarkeit leistungsfähiger Datenbankanwendungen naturgemäß eine sehr erhebliche Bedeutung für die Wirtschaftlichkeit von Intranet-Lösungen hat, werden in diesem Bereich zur Zeit in rascher Folge immer neue Entwicklungen vorgestellt. Mit der Produktlinie 97" hat Microsoft die hier beschriebenen Technologien teilweise soweit weiterentwickelt, das die Erstellung netzwerkfähiger Datenbanken, die auf IDC basieren, in hohem Maße durch sogenannte Assistenten automatisiert werden kann. Die Erstellung der oben angesprochenen IDC- und HTX-Dateien kann z. B. durch einen entsprechenden Menupunkt innerhalb von Access 97 und FrontPage 97 per Mausklick angefordert werden. Für eine sinnvolle Nutzung kommt der Datenbank-Entwickler allerdings auch bei der Benutzung dieser Möglichkeiten kaum darum herum, die genannten Dateien in Details zu bearbeiten. Er muß daher auf alle Fälle mit der jeweiligen Syntax vertraut sein. Als aufwendigere Variante des Themas dynamische datenbank-gebundene WWW-Inhalte" wurde über die hier beschriebenen Möglichkeiten hinaus die Technologie Active Server Pages" (ASP) vorgestellt, welche ebenfalls im Hause Microsoft entwickelt wurde. ASP ist insgesamt leistungsfähiger als die hier beschriebenen Technik, wobei die Einbindung von Datenbanken letztendlich aber nur einen Teil der hierbei geschaffenen Möglichkeiten darstellt. Auch die WWW-Programmiersprache Java wurde durch die Schnittstelle JDBC (Java Database Connector) im Bezug auf die Erstellung von Datenbankanwendungen aufgerüstet . Es ist zu erwarten, daß auch in der nächsten Zukunft weiterhin zahlreiche Neuerungen im Bereich der Online-Datenbanken auf dem Markt erscheinen werden.
Fazit Die IDC-Datenbanken stellen eine kostengünstige und sehr zuverlässige Lösung für Datenbankanwendungen im Intranet bzw. im WWW dar. Gerade die Tatsache, daß diese Technik dabei auf erprobte und weitverbreitete Softwareprodukte aufbaut, macht sie für die Umsetzung von Projekten, bei denen es auf die rasche Realisierung der Intranet-Möglichkeit bezüglich bereits vorhandener konventioneller Datenbankstrukturen ankommt, sehr interessant. (Dieser Artikel erschien im Heft Nr. 8/97 der Zeitschrift InternetWorld, Redakteur Pit Klein)
|