
| mod_plsql Ein Apache Modul von Oracle, das zur Generierung von dynamischen HTML Seiten eingesetzt wird. |
| Database Access Descriptor (dads.conf) Konfigurationsdatei, die die Schnittstelle zwischen Webserver und Datenbank bildet. |
| opmnctl Kommandozeilen-Tool zum Hochfahren des Webservers. |
| Workspace Definiert eine Anwendung unter HTMLDB. Jede Anwendung hat ein eigenes Workspace. |
| Region Teile einer Anwendung werden als Region bezeichnet, so z. B. ein HTML Formular oder eine Tabelle. |
| Quota Begrenzung von Speicherplatz in der Datenbank für einzelne HTMLDB Anwendungen. |
Abgesehen davon, dass die Zukunft hoffentlich nicht so aussehen wird, hat sicherlich schon jeder von Ihnen einen ähnlichen Dialog führen müssen. Das Problem bei Dokumenten, die meist für eine ganze Abteilung gedacht sind, wie z. B. Urlaubslisten, Stundenerfassung, Projektberichte, ist, dass sie oft nur zentral unter einer Windows-Freigabe zu erreichen sind.
Die Nachteile sind schnell genannt: Die Pflege der Daten ist software- und zumeist auch plattformabhängig. Oft existieren viele lokale aber jeweils unterschiedliche Kopien, Versionsänderungen gehen verloren. Solche Lösungen sind nicht teamfähig, unsicher und erfordern ein hohes Maß an Disziplin.
Genau für diesen Anwendungsfall hat Oracle mit Version 10 des RDBMS ein neues Produkt herausgebracht: ORACLE HTMLDB. Ginge es nach Oracle, ist es das Ende der vielen kleinen EXCEL Spreadsheets und ACCESS Anwendungen, die innerhalb eines Unternehmens kursieren. Nur, was genau steckt eigentlich hinter HTMLDB?
HTMLDB wird erst ab der Oracle Datenbank Version 10g ausgeliefert. Die Installation kann aber auch in eine bestehende 9.2 Datenbank erfolgen (siehe Kasten). HTMLDB selbst liegt mittlerweile in der Version 2.0 vor und kann direkt von der Oracle Webseite [1] heruntergeladen werden.
Treffen der Generationen − HTMLDB und Oracle 9iWer zur Zeit noch Oracle 9i einsetzt, kann sich trotzdem ein Bild von HTMLDB machen, denn wie schon zu Beginn erwähnt, ist es auch möglich, eine 9i Instanz als Repository zu nutzen. Installieren Sie hierfür den Webserver der 9er Version und laden HTMLDB von der Oracle Internet Seite [1] herunter.Die Konfiguration des Oracle 9i Webservers für HTMLDB ist in einem Mini Howto [3] nachzulesen. Anschließend führen Sie die Installation wie im Abschnitt "Das unentdeckte Land" beschrieben durch. |
Die Software erfordert einen installierten Apache Server, der mit dem mod_plsql Modul ausgestattet und konfiguriert ist. Weiterhin wird eine Oracle Instanz benötigt, die ca. 100 MB freien Speicherplatz innerhalb eines Tablespaces aufweisen muss.
Hier wird das Repository von HTMLDB hineingeladen, das die eigentliche Web-Applikation beinhaltet. Die Installation und Konfiguration wird bequem mittels des Oracle Universal Installers, der sich auf der Oracle 10g Companion CD befindet, durchgeführt.
Dabei wird der Apache Webserver in ein neues "ORACLE_HOME" Verzeichnis installiert. Das Repository der HTMLDB Anwendung kann in eine bereits vorhandene oder neu zu erstellende Oracle Datenbank geladen werden. Gleichzeitig wird die Konfiguration des Database Access Descriptors (DAD) durchgeführt. Dazu später mehr.
Diese Schritte können notfalls auch manuell vorgenommen werden. Das Repository kann mit Hilfe des mitgelieferten Scripts ins.sql geladen werden. Es befindet sich im Basisverzeichnis der HTMLDB-Installation. Dies kann in einem beliebigen Schema passieren.
Während der Ausführung werden bestimmte Daten vom Administrator erfragt. Dies sind im Einzelnen:
Damit sich die Oberfläche von HTMLDB in der eigenen Muttersprache präsentiert, kann anschließend zusätzlich das deutsche Sprachpaket mittels load_de.sql geladen werden.
In der Konfigurationsdatei des Apache Webservers (apache.conf) muss sichergestellt sein, dass das Modul mod_plsql angezogen wird (siehe Abbildung 1).
# ====================================================================== # mod_plsql configuration file # ====================================================================== # 1. Please refer to plsql.README for a description of this file # 2. Parameters in this file have to be configured manually # ====================================================================== # Configure Oracle HTTP Server to load mod_plsql LoadModule plsql_module /oracle/ora10gcomp/Apache/modplsql/bin/modplsql.so # Load in mod_plsql directives only if mod_plsql is loaded <IfModule mod_plsql.c> [ ... ] |
Dies ist für die Generierung der dynamischen Webinhalte aus dem Repository verantwortlich und wird indirekt über die Dateien oracle_apache. conf und plsql.conf inkludiert.
Für die Konfiguration des Database Access Descriptors wird die Datei $ORACLE_HTTP_SERVER_HOME/Apache/modplsql/conf/ dads.conf (ehemals marvel.conf) herangezogen. Mit Hilfe eines DADs wird im Prinzip ein Mapping zwischen HTTP Request und Prozeduraufruf vorgenommen.
In unserem Beispiel in Abbildung 2 werden so alle Aufrufe über die URL http://htmldb_server:7777/pls/htmldb an die Datenbank mit dem Service Namen ora01 weitergeleitet. Dort wird die Prozedur htmldb aufgerufen, die im Parameter PlsqlDefaultPage hinterlegt ist. Diese beantwortet den Request mit der Generierung einer Startseite. Voraussetzung hierfür ist die Anmeldung an die Instanz, die über den Parameter PlsqlDatabaseConnectString identifiziert wird.
<Location /pls/htmldb> SetHandler pls_handler Order deny,allow Allow from all AllowOverride None PlsqlDatabaseUsername HTMLDB_PUBLIC_USER PlsqlDatabasePassword geheim123 PlsqlDatabaseConnectString htmldb_server:1521:ora01 ServiceNameFormat PlsqlDefaultPage htmldb PlsqlDocumentTablename wwv_flow_file_objects$ PlsqlDocumentPath docs PlsqlDocumentProcedure wwv_flow_file_manager.process_download PlsqlAuthenticationMode Basic PlsqlNLSLanguage GERMAN_GERMANY.WE8MSWIN1252 </Location> |
Das Passwort für den Datenbank-Connect sollte mit Hilfe des Perl Scripts dadTool.pl nachträglich verschlüsselt werden.
Im Anschluss daran kann der Oracle HTTP Server gestartet werden. Das Tool opmnctl zum Starten und Stoppen des Servers be- findet sich unter $ORACLE_HTTP_SERVER_HOME/opmn/bin.
Der Aufruf ist denkbar einfach: Mit opnctl startall wird der Server hochgefahren, mit opnctl stopall wiederum gestoppt. Gleichzeitig wird ein Logfile ($ORACLE_HTTP_SERVER_HOME/opmn/logs/ ApacheServer.log) geschrieben, in das sämtliche Meldungen des Webservers protokolliert werden. Bei Problemen, den Server zu starten, ist dies der Einstiegspunkt für genauere Fehleranalysen.
Ist der Webserver erfolgreich gestartet worden, so kann die HTMLDB Oberfläche über folgende URLs erreicht werden:
Kommt es hier zu einer Fehlermeldung im Browser, liegt es meistens an einem Konfigurationsproblem im Database Access Descriptor. Hier sollten folgende Schritte nacheinander überprüft werden:
HTMLDB teilt sich in zwei Bereiche auf. Der erste Bereich (http://<hostname>:7777/pls/ htmldb/htmldb_admin) dient der reinen Administration von Anwendungen, Benutzern und Workspaces und ist ausschließlich authorisierten Benutzern zugänglich. Der zweite Bereich (http://<hostname>:7777/pls/htmldb/htmldb) dient als Einstieg in die angefertigten HTMLDB Applikationen und kann von allen Anwendern erreicht werden.
Selbstverständlich werden Authentifizierungs- Mechanismen unterstützt. So kann gezielt gesteuert werden, welche Anwendungen für welche Benutzer zugänglich sind. Der Administrator von HTMLDB ist der Benutzer "admin" mit dem bei der Installation festgelegten Passwort.
Nun, wie geht es weiter? Zum Erforschen von HTMLDB bedarf es zunächst der Erstellung eines Workspaces mit Hilfe der Administrationskonsole. Jede HTMLDB Anwendung läuft in einem eigenen Workspace. Dieser bekommt einen eindeutigen Namen und kann optional mit einer Quota belegt werden.
Sämtliche Objekte der Anwendung (Tabellen, Prozeduren, Reports) werden in einem zentralen Schema hinterlegt. Hierfür empfiehlt es sich, einen eigenen Benutzer anzulegen. Alternativ kann auch ein bereits vorhandenes Schema benutzt werden.
Ist das Workspace angelegt worden, kann mit der Anwendungsentwicklung begonnen werden. Hierfür meldet man sich zunächst am neu erstellten Workspace (siehe Abbildung 3) an (http://<hostname>:7777/pls/htmldb/htmldb). Anschließend stehen sämtliche Werkzeuge von HTMLDB bereit, um die einzelnen Komponenten einer Anwendung, auch Regionen genannt, zu erstellen. Unterstützt wird man dabei von vielen, nützlichen Assistenten, um so schnell zu einem Ergebnis zu kommen.
Workspace kann "geforscht" werden. (vergrößern!) |
Als Einstiegspunkt sei hier die offizielle HTMLDB-Internetseite [2] empfohlen, von der eine große Menge an Tipps und kleinen Beispielanwendungen heruntergeladen werden kann. Auch ein sehr aktives Forum für alle Themenbereiche von HTMLDB ist hier anzutreffen, in dem fleißig diskutiert werden darf.
Und stoßen Sie bei der Arbeit mit HTMLDB auf ein Problem, das schwierig zu lösen scheint, klappen Sie einfach Ihren Communicator auf, um uns zu kontaktieren.
Michael Lindermann (info@ordix.de).