|

Web
Technology:
Intelligente Websites mit Datenbanken
Die Datenmacher
|||
Tom Henne & Oliver Weiss
In der Gründerzeit des Internets bestanden Websites aus ausschließlich statischen Internet-Seiten. Zeitgemäße Websites basieren dagegen oft auf Datenbanken, die „dynamischen" Inhalt generieren – der Benutzer befindet sich „im Dialog" mit der Website. Auch Kanzleien können von dieser Technologie profitieren. Was genau ist technisch möglich? Und
wie packt man ein solches Projekt an? |
 |
| Intelligent
Web Sites with Databases: While databases may not be among the simpler things in life, they sure can save you a lot of trouble. This article sets out to motivate you to implement a database for your corporate web site. |
| B |
 |
eliebter Anlaufpunkt im Internet sind Suchmaschinen wie
Google, mit deren Hilfe man im ansonsten chaotischen Internet gezielt bestimmte Informationen findet: Man startet eine Suchabfrage, woraufhin die Suchmaschine eine Treffer-Liste mit Internet-Seiten zurückgibt, die
dem Suchbegriff am besten entsprechen.Das Besondere daran ist, dass hier keine statischen Dokumente übertragen, sondern „on-demand" dynamisch Ergebnisseiten aus den Daten einer Datenbank erzeugt werden. „Statische" Seiten sind auf der Festplatte des Providerrechners unveränderlich gespeichert, wohingegen „dynamische" Seiten immer aktuell aufbereitet werden.
Gibt man etwa bei der Website der Deutschen Bahn Abfahrt- und Zielbahnhof der geplanten Reise ein, erhält man eine dynamisch aus einer laufend aktualisierten Datenbank generierte Ergebnisseite mit entsprechenden Reisevorschlägen. Auf ähnliche Weise kann man sich Börsenkurse aus dem Internet
holen oder das aktuelle Wetter für eine bestimmte Stadt nachschlagen.
Auch für Anwaltskanzleien gibt es viele lohnenswerte Anwendungen für dynamische Websites, die ihre Inhalte aus Internet-Datenbanken beziehen.
Beispielsweise kann der Mandantenservice verbessert werden, indem man auf der Kanzlei-Website eine Suchfunktion nach Anwälten einbaut, die eine Datenbank nach Suchkriterien wie ausgeübten Tätigkeitsfeldern oder
Sprachkenntnissen recherchiert (vgl. unser Beispiel der Sozietät Hasche Eschenlohr Peltzer Riesenkampff Fischötter).
Die ausgegebenen Informationen sind dann immer aktuell: Ändert sich eine Adresse oder tritt ein neuer Anwalt der Kanzlei bei, wird der entsprechend angepasste Datenbank-Inhalt sofort auch dem Internet-Benutzer zugänglich.
Das Konzept der datenbankgestützten Websites kann dabei auch sehr viel Arbeit sparen helfen: Wo früher pro Anwalt eine
Referenz-Seite programmiert werden musste, genügt jetzt eine einzige Seite für alle Anwälte – die jeweils passenden Inhalte werden einfach aus der Datenbank eingefügt.
Weitere Beispiele sind etwa Literaturdatenbanken mit Gesetzestexten und Urteilen. Im kanzleiinternen Bereich können eine Terminplanung oder ein Informationssystem für Mitarbeiter bestimmte Arbeitsabläufe erleichtern.
              
| Das Datenbankmodell: Das Datenbankmodell: Die Suchanfrage per Browser landet erstmal beim Webserver. Der sieht, dass hier „dynamische" Antwortseiten gefordert sind und gibt die Anfrage über eine der gebräuchlichen Webserver-Schnittstellen
(CGI, ISAPI usw.) an den Web-Applikationsserver weiter, der seinerseits den über Schnittstellen
wie ODBC oder JDBC angesprochen Datenbank-Server bemüht. Das Abfrageergebnis geht denselben Weg zurück – und
voilà. |
Keine Angst vor Datenbanken
Die erwähnten Beispiele bauen ohne Ausnahme auf bestimmtem Fachwissen wie z.B. der Kenntnis der Mitarbeiterdaten auf. Datenbanken wie Microsoft Access speichern das „Wissen", also die jeweiligen Daten, in Tabellen.
Je nachdem, wo ein
Anwalt arbeitet, wird seinem Eintrag in der Anwälte-
Tabelle ein Eintrag in der Standorte-
Tabelle zugeordnet. |
Bei einer Anwaltsdatenbank gibt es z.B. eine Tabelle, die alle Namen und Titel umfasst; weitere Tabellen verzeichnen etwa Tätigkeitsgebiete, Sprachkenntnisse oder Standorte. Je nachdem, wo ein Anwalt arbeitet, wird seinem Eintrag in
der Anwälte-Tabelle ein Eintrag in der Standorte-Tabelle zugeordnet. Datenbanken bestehen also aus Tabellen und Zuordnungen.
Was schafft die Verbindung zwischen
der Datenbank im Hintergrund und dem Internet-Browser beim Interessenten? Bevor
die Daten beim Benutzer ankommen, durchlaufen sie erst zwei weitere „Schleusen":
den „Webserver" und den „Web-Applikationsserver". Webserver sind der Motor jeder
Website.
Will ein Internet-Benutzer eine Seite
laden, schickt dessen Browser eine Anfrage an den Webserver. Dieser lädt die
(statische) Seite von der Festplatte des Providercomputers und schickt sie dem
Benutzer zurück. Man darf sich solche Server nicht als Hardware vorstellen – ein
Server ist ein Softwareprogramm, das auf dem Providerrechner installiert ist.
Einmal hin und retour
Was genau passiert nun, wenn ein Benutzer den Button „Suche abschicken" auf der Website drückt, und wo spielt die Datenbank dabei eine Rolle? – Gibt der Benutzer in dem Suchformular eine Anfrage ein und schickt sie ab, kommt eine Art Domino-Effekt ins Rollen: Zunächst wird die Anfrage vom Browser an den Webserver, dann von da an den Web-Applikationsserver und zu guter Letzt an die Datenbank weitergereicht.
Jeder Baustein trägt seinen Teil zur
Verarbeitung der Anfrage bei. Schließlich gehen die Ergebnisse den gleichen Weg zurück zum Browser des Benutzers. Auf dem Rückweg kriegen die Daten dabei vom Web-Applikationsserver noch ein hübsches Design verpasst, d.h. sie werden in einer vom Webdesigner gestalteten Internet-Musterseite verpackt.
Damit die Vielzahl der beteiligten Bausteine reibungslos zusammenarbeitet, muss der Website-Planer ganz besonders darauf achten, dass die einzelnen Module auch richtig zueinander passen. Im Gegensatz zu den etablierten Webservern sind Web-Applikationsserver eine ziemlich neue Technologie, die in den letzten Jahren unter Hochdruck weiterentwickelt worden ist. Sie sind die
Schlüsselkomponente für interaktive Internet-Projekte.
Der Domino-Effekt:
Schritt für Schritt: Suchanfragen werden vom Web-Browser (beim Internet-User) bis zum Datenbankserver (beim Website-
Betreiber) durchgereicht und verarbeitet. Die Suchergebnisse gehen den gleichen Weg zurück. Angezeigt wird eine dynamisch erzeugte Ergebnisseite. |
         |
Wenn beispielsweise eine Liste aller Anwälte auf der Kanzlei-Website ausgegeben werden soll, holt der Applikationsserver alle Anwaltsdaten aus der Datenbank und verpackt sie in ein Internet-Dokument mit vorgegebenem Design.
|
Leider sind
datenbankgestützte Websites durch die Vielzahl der beteiligten Bausteine
schwierig in der Handhabung. |
Wenn der Benutzer z.B. die Kanzleibroschüre anfordert, sorgt der Applikationsserver dafür, dass
vom Benutzer die notwendigen Daten wie Name, Anschrift usw. aufgenommen werden
können.
Außerdem leitet er die Bestellung auch gleich per E-Mail an den zuständigen
Sachbearbeiter weiter. Man kann den Applikationsserver also als einen
Koordinator sehen, dem die Ablaufanweisungen für die Interaktion mit Benutzern
einprogrammiert werden.
Leider sind datenbankgestützte Websites durch die Vielzahl der beteiligten Bausteine wie Datenbank, Applikationsserver und Webserver ganz schön komplex und entsprechend schwierig in der Handhabung. Dieser Beitrag gibt nur einen Überblick darüber, was machbar ist und wie man an so eine Geschichte herangehen kann; für konkrete Projekte sollte man sich an Spezialisten
wenden.
Dynamisch und schlau
Ein entscheidender Vorteil von dynamischen datenbankgestützten Internet-Angeboten gegenüber statischen Websites ist die Möglichkeit, eine programmierte Ablaufsteuerung einzubauen. Sie ermöglicht es, flexibel auf die Datenbankinhalte zuzugreifen.
Komplexe E-Commerce-Systeme etwa eignen sich nur für solche Projekte, bei denen Anweisungen im Stile von „lege Artikel A in den Warenkorb und zeige dann den Warenkorb an" beschrieben werden können.
Solche Ablaufanweisungen werden meist in einer einfachen Programmiersprache festgelegt.
Dabei hat sich das Einfügen von zusätzlichen „Tags" (speziellen Befehlen) in die schon vorhandenen HTML-Seiten als bestes, weil einfachstes, Konzept herauskristallisiert. Das folgende Beispiel zeigt, wie eine Fallunterscheidung in die HTML-Seite eingebaut wird:
<% Name = Server.getVariable(Name)
IF Name="Gates" THEN
%>
Hello, Bill, how nice...
<% ELSE %>
Hello, Mr. <%= Name %>
<% ENDIF %>
Dieses kleine Programm kann direkt in eine „ASP"-Seite („Active Server Pages", s. weiter unten) eingebunden werden und begrüßt den Microsoft-CEO mit „Hello, Bill". Codesegmente werden durch die Tags „<%" und „%>" begrenzt.
|
Web-Applikations-server haben sich schnell wie kaum eine andere Softwaregattung
entwickelt. |
Obwohl das beschriebene Prinzip der
Informationsverarbeitung in Internet-Datenbanken für fast alle erhältlichen
Systeme dasselbe ist, ist mittlerweile ein regelrechter Glaubenskrieg um die
beste Strategie ausgebrochen.
Web-Applikationsserver haben sich schnell wie kaum eine andere
Softwaregattung entwickelt, und im Wettstreit der Softwareschmieden zeichnet
sich nach wie vor kein Gewinner ab.
Die Evolution der Internet-Datenbanken hat vor ein paar Jahren mit „CGI" („Common Gateway Interface") angefangen und ist über immer ausgefeiltere Schnittstellen bei den heutigen Applikationsservern und E-Commerce-Systemen angelangt.
Immer noch versuchen die einzelnen Hersteller, durch besonders innovative Konzepte Marktanteile zu erobern. Es zeichnen sich mehrere Trends ab, zum Beispiel hin zu integrierten Systemen, bei denen für die Datenbank ein Applikationsserver-Aufsatz gestrickt oder ein Webserver gleich zusammen mit einem Applikationsserver als ein kompaktes Modul ausgeliefert wird.
Wie Sand am Meer
Web-Applikationsserver gibt es viele, und noch hat sich kein Ansatz marktbeherrschend durchsetzen können. Faktoren wie Zukunftssicherheit, Performanz, Sicherheit und Flexibilität sind die K.o.-Kriterien. Im folgenden wollen wir Ihnen wichtige Vertreter vorstellen; die Aufzählung ließe sich um mindestens ein Dutzend weiterer Applikationsserver ergänzen.
Der Arbeitssparer: Mit Microsoft Visual InterDev kann man aktive Internet-Seiten in ASP ("Active Server Pages") relativ bequem programmieren. Komplexe Websites werden von InterDev aus direkt auf dem Webserver verwaltet.
Hier ein vergrößerter Ausschnitt:

|
Microsoft Visual Interdev 6.0
Microsoft hat mit Visual InterDev (s.Screenshot links) eine Entwicklungsumgebung für seine „Active Server Pages"
(ASP) auf den Markt gebracht. InterDev bietet einen komfortablen Editor zum Bearbeiten der Seiten und umfangreiche Website-Management-
Funktionen. Das Programmiersystem ASP ist nicht auf eine bestimmte Programmiersprache fixiert, sondern gibt lediglich die Richtlinien für das Einbinden von
VBScript, JavaScript oder ähnlichen Sprachen vor. Kritikpunkte sind die gewöhnungsbedürftige komplizierte Entwicklungsumgebung und die zu starke Auslegung auf Microsoft Internet Information Server als Webserver. Dennoch ist InterDev das momentan vermutlich ausgereifteste Werkzeug.
Allaire Cold Fusion 4.0
Im Gegensatz zu Visual InterDev läuft Cold Fusion auf vielen Webservern unterschiedlicher Hersteller und ist kompatibel zu den gängigen Betriebssystemen wie Microsoft Windows, Sun Solaris oder
Linux. Programmierung und Datenbankzugriff erfolgen mittels einer eigenen Sprache („CFML – Cold Fusion Markup Language").
Cold Fusion fällt vor allem durch seinen Funktionsumfang und die einfache Bedienbarkeit positiv auf, bietet aber für große Websites nur eingeschränkte Skalierbarkeit und Sicherheitsmechanismen.
Oracle8i und Oracle Application Server
Von Oracle gibt es zwei Systeme für Web-Programmierung: Oracle8i und den Oracle Application Server. Oracle8i ist eine Datenbank, die speziell auf die Anforderungen des Internets zugeschnitten wurde, also beispielsweise das Speichern von Grafiken und Java-Programmen. Ein Webserver ist bereits integriert. Für die Programmierung sind kleine Java-Programme vorgesehen, sogenannte „Java-Servlets".
Während Oracle8i alle nötigen Komponenten für den Betrieb einer Website schon selbst mitbringt, versucht es der Oracle Application Server mit der entgegengesetzten Strategie: Er liefert selbst nur das Nötigste, lässt sich dafür aber in vielfältige Umgebungen nahtlos einzufügen. Eine Vielzahl von Webservern und Betriebssystemen wird unterstützt.
IBM WebSphere Application Server
WebSphere ähnelt dem Oracle Application Server in der Funktionsweise. Eine Besonderheit ist aber der von IBM verfolgte vielversprechende Ansatz namens „Java Server Pages"
(JSP), der an ASP angelehnt ist und den Vorteil bietet, dass eine Website komplett in Java (ohne Einsatz anderer Programmiersprachen) programmiert werden kann. Zusammen mit dem mitgelieferten leistungsfähigen IBM-Webserver bildet WebSphere eine runde Lösung für datenbankgestützte Sites.
PHP
PHP ist der einzige kostenlos verfügbare Web-Applikationsserver, der in der Oberliga der hier diskutierten professionellen Anwendungen mitspielen kann. Zusammen mit
Linux, dem Apache-Webserver und der „MySQL"-Datenbank bildet PHP ein komplett kostenloses Web-Publishing-System namens „LAMP". LAMP ist bei Linux oft schon dabei (z.B. auf der
S.u.S.E.-Installations-CD) und ist teilweise sogar deutlich einfacher zu bedienen als die Software der kommerziellen Konkurrenten. Die
Komponenten haben sich vielfach bewährt und kommen auch in sehr großen Websites erfolgreich zum Einsatz. Leider fehlt bei PHP eine komfortable Entwicklungsumgebung.
Worauf man achten sollte
Das Angebot an Software-Tools für Internet-
Datenbankanbindungen präsentiert sich in verwirrender Vielfalt. Zusammen mit dem verantwortlichen Programmierer muss man sehr genau abwägen, welchem System man den Vorzug gibt. Es kann hilfreich sein, sich im Vorfeld einer Entscheidung erst einmal die folgenden Fragen zu stellen:
- Wird wirklich ein Web-Applikationsserver und somit individuelle Programmierung benötigt oder erfüllt ein fertiges System die Anforderungen besser? Fertige Software-Lösungen sind vor allem für den Bereich E-Commerce (Internet-Shops) erhältlich.
- Wer soll die Internet-Datenbank letztendlich bedienen und pflegen? Erfolgt die Wartung nebenbei durch Personal mit eigentlich anderen Zuständigkeiten oder durch speziell geschulte Fachkräfte (Kosten!)? Die Komplexität von datenbankgestützten Websites erfordert leider immer noch sehr detailliertes Wissen.
- In welche bestehenden betriebswirtschaftlichen Umgebungen soll die Internet-Datenbank integriert werden? Oft bietet sich eine Anbindung an schon bestehende Datenbanken, etwa Mitarbeiterdatenbanken an.
- Wo soll der Webserver samt Internet-Datenbank schließlich laufen? In der eigenen Firma oder bei einem Provider? Der Provider kann die technische Wartung der Software übernehmen und dabei sicherlich mehr Erfahrung als die kanzleiinternen Mitarbeiter einbringen. Andererseits schränkt diese Lösung die Flexibilität ein, da u.U. jede Änderung eine Absprache erfordert.
- Ist der gewählte Applikationsserver genügend flexibel, um auch in Zukunft alle Erfordernisse zu erfüllen? Wie gut sind Bedienbarkeit und Leistungsfähigkeit der Schnittstellen?
Mit diesen teilweise recht haarigen Fragen sollte man sich am besten an eine Firma wenden, die professionelle Internet-Programmierung anbietet. Große Unternehmen wie IBM oder Oracle können damit dienen, aber auch kleinere Newcomer.
Anbieter von Internet-Programmierung findet man über die gelben Seiten („Internet", „EDV") oder über Anzeigen in Internet-Fachzeitschriften. Die Hersteller von Applikationsservern bieten ihre Services
natürlich auch auf ihren Websites an.
[2000]

Mit Tom Henne zusammen wurde die recherchierbare Anwalts-Datenbank in Access für die Sozietäts-Website
Hasche
Eschenlohr Peltzer Riesenkampff Fischötter in ASP (Active Server Pages) realisiert, die in diesem Beitrag auch beschrieben wird.
|