| E-Mail: | |
|---|---|
| Homepage-URL: |
Bei Fragen zu diesem Beitrag können Sie mich gerne kontaktieren.
Web-Anwendungen werden häufig auf Basis von Datenbanken entwickelt. Insbesondere kommerzielle Anwendungen kommen meist nicht ohne eine Datenbank aus. Typischerweise werden solche Anwendungen mit Technologien wie PHP oder Java realisiert. Das bedeutet, dass standardisierte Komponenten wie Formulare oder Berichte mit vergleichsweise hohem Programmieraufwand implementiert werden müssen.
Hier setzt die Oracle HTML DB an. Sie stellt Komponenten wie Berichte, Formulare oder Grafiken im "Baukastensystem" zur Verfügung. Darüber hinaus können komplexe Anforderungen, die von den mitgeliefertern Bausteinen nicht erfüllt werden können, selbst programmiert werden. Insofern eignet sich die HTML DB sehr gut, um Klein- bzw. Kleinst-Anwendungen in kurzer Zeit "Web-fähig" zu machen. Die oben genannten Technologien kommen hier meist nicht in Frage, da der Entwicklungsaufwand dann in keinem Verhältnis zum Nutzen der Anwendung steht.
Lizenztechnisch ist die HTML DB Bestandteil der Oracle Datenbank, d.h. der Inhaber einer Lizenz für die Nutzung der Datenbank kann auch die HTML DB nutzen.
Dieser Artikel beschreibt Architektur, Konzepte und Komponenten der HTML DB und geht darauf ein, wie eine Standard-Anforderung (Bericht mit Formular zur Datenpflege) mit der HTML DB erstellt werden kann. Die Beispiele wurden mit der neuen Version 1.6 der HTML DB erstellt - diese Version steht im Oracle Technet zum Download bereit.
Mit der HTML DB werden Web-Anwendungen deklarativ erstellt, wobei die Inhalte und Merkmale der Anwendungen mit Hilfe von Assistenten definiert werden. Deklarativ meint hier, dass für die Inhalte und Abläufe Ihrer Web-Anwendung kein Programmcode geschrieben, kompiliert und installiert werden muss. Vielmehr entspricht jedes Merkmal der Anwendung einem Eintrag im HTML DB Repository. Die Anwendung besteht insofern aus Einträgen in diesem Repository. Wenn Sie die Anwendung nutzen, werden die HTML Seiten anhand der im Repository enthaltenen Informationen zur Laufzeit dynamisch generiert.
Das HTTP Session Handling wird ebenfalls komplett von der HTML DB übernommen. Normalerweise ist der Entwickler der Web-Anwendung dafür zuständig, dass vom Benutzer gemachte Eingaben während seines Aufenthaltes in der Anwendung behalten und diesem Benutzer zugeordnet werden können. Das HTTP Protokoll als solches ist stateless, d.h. ein Webserver kann eine Anfrage ohne weiteres keiner Sitzung (Session) zuordnen. Dieses Session Handling übernimmt die HTML DB komplett. Wenn der Entwickler ein Texteingabefeld auf einer Seite platziert, kann er sich darauf verlassen, dass darin gemachte Eingaben in der gesamten Anwendung verfügbar sind, und zwar solange, bis der Nutzer sich abmeldet oder den Browser schließt.

Abbildung 1: Architektur der HTML DB
Die Architektur der HTML DB ist einfach. Sie besteht aus einer Oracle-Datenbank und dem
Apache Web Server. In Abbildung 1 ist dieser mit "OHS" bezeichnet. OHS steht für
"Oracle HTTP Server powered by Apache". Der OHS enthält ein zusätzliches Modul (mod_plsql), welches für die Kommunikation mit der Oracle-Datenbank zuständig ist.
Neben der aktuellen Version Oracle10g kann auch Oracle9i zum Einsatz kommen.
In diesem Fall wird Version 9.2.0.3 oder höher vorausgesetzt.

Abbildung 2: Abläufe bei einer Anfrage an den HTML DB Server
Abbildung 2 zeigt, wie eine Anfrage an den HTML DB Server abgearbeitet wird.
mod_plsql aktiv. Es
ruft in der Oracle-Datenbank die HTML DB Funktionalität auf. mod_plsql Angaben zur Sitzung des
Anwenders übergeben. Beispiele für solche Angaben sind die
Session-ID oder an die HTML DB-Seite übergebene Parameter.
Anhand dieser Angaben ermittelt die HTML DB den Status
der Sitzung und ruft evtl. vorhandene Sitzungsvariablen ab. Anschließend wird ermittelt,
welche Seite in welcher Anwendung der Nutzer sehen möchte, eventuelle
Sicherheitsprüfungen werden durchgeführt und schließlich wird die
HTML-Seite mit den aus dem HTML DB Repository gelesenen Informationen zusammengestellt.mod_plsql zurückgereicht.
Wichtig ist, dass die Erzeugung der HTML Seiten komplett in der Datenbank durch die
HTML DB geschieht. Dem mod_plsql kommt nur die Aufgabe zu, eine Verbindung
zur Datenbank herzustellen und dort die HTML DB Funktionalität aufzurufen.
Die HTML DB ist in besonderem Maße für den intuitiven oder pragmatischen Entwicklungsansatz konzipiert. Wenn es bei der Umsetzung der Anforderungen auf Dinge wie Standardkonformität oder ausgiebige Design-, Implementierungs-, Abnahme- und Testphasen ankommt, sind "strategische" Technologien wie J2EE oder STRUTS wahrscheinlich besser geeignet.
In der HTML DB arbeitet man in einem Workspace. Ein HTML DB Workspace ist ein abgegrenzter Bereich, der vom HTML DB Administrator zur Verfügung gestellt wird. Innerhalb eines Workspace sind Sie als Entwickler völlig autonom. Es entsteht der Eindruck, als hätten Sie den HTML DB Server für sich alleine.

Abbildung 3: HTML DB Homepage nach der Anmeldung am Workspace
Nach der Anmeldung am HTML DB Workspace sieht man die in Abbildung 3 dargestellte Homepage. Zu erkennen sind die für den Anwendungsentwickler wichtigen Bereiche ...
Rechts sind Menüpunkte zur Administration des Arbeitsbereichs erkennbar. So können Benutzerkonten hinzugefügt oder gelöscht werden. "Workspace verwalten" verzweigt in den Administrationsbereich, der unter anderem umfangreiche Informationen über die Aktivitäten im Arbeitsbereich bereithält.
Sie können in Ihrem Workspace mehrere Anwendungen erstellen. Eine Anwendung besteht, wie in Abbildung 4 dargestellt, aus mehreren Seiten. Jede Seite enthält wiederum Regionen und darin die Elemente, die die Anwendung ausmachen. Wie bereits beschrieben, werden diese Definitionen im HTML DB Repository gespeichert. Wenn die mitgelieferten Assistenten zur Lösung einer konkreten Anforderung nicht ausreichen, können Prozesse in Form von eigenem Code hinterlegt werden. Dazu werden die Programmiersprachen, die in der Oracle-Datenbank ablaufen können (Oracle PL/SQL oder Java), verwendet.

Abbildung 4: HTML DB Workspaces, Anwendungen und Elemente
Die Entwicklung einer Anwendung beginnt normalerweise mit dem Bereitstellen eines Daten-"Grundbestandes". Zum Import und Export von Daten steht der "Data Workshop" zur Verfügung. Man kann komma- oder tabulatorseparierte Dateien importieren. Für kleine Datenmengen bis zu 32 Kilobyte kann Copy & Paste genutzt werden.
TIPP:
Wenn Sie extrem große Datenmengen (mehrere Megabytes oder Gigabytes) laden müssen, sollten
Sie den Data Workshop nicht verwenden. Sprechen Sie sich in diesem Fall mit dem HTML DB
Administrator ab, denn diesem stehen dafür geeignetere Werkzeuge (SQL*Loader) zur
Verfügung.
Die hochgeladene Datenstruktur wird zunächst analysiert und dann auf eine Datenbank-Tabellenstruktur abgebildet. Nun haben Sie die Möglichkeit, den Datenimport zu konfigurieren. Ändern Sie bspw. Namen und Datentypen der Tabellenspalten oder passen Sie die Formatmasken für den Import von numerischen oder Datumsfeldern an.

Abbildung 5: Datenimport in die HTML DB
Tabellen werden in relationalen Datenbanken im Normalfall mit einem Primärschlüssel versehen. Die HTML DB bietet Ihnen beim Importieren an, der Tabelle automatisch eine Primärschlüsselspalte hinzuzufügen und diese mit Werten zu füllen. Zum Generieren der eindeutigen Schlüssel werden die in der Oracle-Datenbank eigens für diesen Zweck vorhandenen Sequences genutzt. Die erzeugte Datenbanktabelle kann anschließend im "SQL Workshop" weiter bearbeitet werden. So können Sie mit der Option "Lookup-Tabelle erstellen" die erstellte Tabelle bei Bedarf normalisieren.
Eine Anwendung kann auf bestehenden Tabellen, bestehenden HTML DB Anwendungen, Export-Files oder völlig neu erstellt werden. Während die ersten Varianten anhand der vorgegebenen Tabellen oder Anwendungen eine Standard-Anwendung erstellen, die dann weiterbearbeitet werden kann, erstellt letztere Möglichkeit nur einen leeren Anwendungsrahmen. In diesen können Sie die Komponenten dann nach Wunsch hinzufügen.
1. Schritt: Anwendung völlig neu erstellen (Anwendungsrahmen erstellen)
"Berichte" zeigen die Inhalte von Datenbanktabellen auf einer Seite der Anwendung an. Funktionalitäten wie das Blättern im Bericht oder das automatische Sortieren bei Klick auf eine Spaltenüberschrift bietet die HTML DB standardmäßig an. Mit der Option "Einfacher Bericht" können Sie die Tabellen, deren Spalten und die Anzeigebedingungen per Mausklick auswählen. Wenn Sie Erfahrung mit SQL haben, können Sie die Anweisung im "SQL-Bericht" auch selbst hinterlegen. Die dritte Variante erlaubt es, passend zum Bericht ein Formular zum Einfügen, Ändern oder Löschen von Datensätzen zu erstellen.
2. Schritt: Ein Bericht wird hinzugefügt
Formulare werden meistens als tabellenbasierte Formulare genutzt. Für jede Tabellenspalte wird ein Eingabefeld erstellt. Neben einfachen Textfeldern bietet die HTML DB unter anderem auch Auswahllisten, Mini-Kalender für die Datumsauswahl oder spezielle Eingabefenster für HTML Dokumente an. Wenn Sie das Formular erstellt haben, können Sie anschließend immer noch Eingabefelder hinzufügen oder löschen.
3. Schritt: Formular hinzufügen
4. Schritt: Bericht und Formular verknüpfen
Jedes Eingabefeld kann mit Gültigkeitsbedingungen versehen werden. Besonders nützlich erweisen sich hier die mit Oracle10g eingeführten Regulären Ausdrücke. Diese werden von der HTML DB bereits unterstützt; insofern können auch komplexere Prüfungen elegant und ohne großen Codier-Aufwand gelöst werden.
Auf einfache Art und Weise können Sie Diagramme erstellen. Grundlage eines Diagramms ist stets eine SQL Abfrage. Der Aufwand zur Implementierung wird so erheblich reduziert; die Aufgabe des Entwicklers beschränkt sich auf die Bereitstellung der SQL-Abfrage und die Festlegung von Details wie Farben, Größe oder Legende des Diagramms. Diagramme können als SVG-Diagramme (Scalable Vector Graphics) oder als einfache HTML Diagramme erstellt werden.
SVG-Diagramme erfordern das Vorhandensein eines Plug-Ins im Browser.
Im Gegenzug bietet SVG
eine wesentlich größere Auswahl an Diagrammtypen.
Adobe SVG Viewer Download
Einfache HTML Diagramme entstehen durch ein Bild (<img src ...>)
von einem Pixel Größe, dass vom Browser entsprechend vergrößert
wird. Zwar sind nur Balkendiagramme möglich, ein Browser-Plug-In ist jedoch nicht
erforderlich.
5. Schritt: Diagramm hinzufügen
Die Darstellung der HTML DB Seiten ist vollständig durch Templates getrieben. Für die verschiedenen Elementklassen der HTML DB existieren verschiedene Templates. So gibt es Seitentemplates, die das Aussehen der Seite an sich festlegen. Wie die Daten in einem Bericht aussehen, wird durch Report-Templates festgelegt. Das Aussehen der Formular-Labels wird durch Label Templates festgelegt.
In der neuesten Version der HTML DB werden die Templates zu Themes zusammengefasst. Ein Theme ist dabei ein Satz von Templates, die zusammengenommen ein konsistentes Look & Feel der Anwendung ergeben. Abbildung 6 zeigt die in der HTML DB vordefinierten Themes.

Abbildung 6: In der HTML DB vordefinierte Themes
TIPP:
Die HTML DB bringt keinen WYSIWYG Editor zum Bearbeiten von Themes und Templates
mit. Wenn Sie eigene Themes und Templates erstellen möchten, empfiehlt es sich,
entweder Code-orientiert zu arbeiten oder einen
geeigneten HTML WYSIWYG Editor zu nutzen. In diesem Fall müssen die vom Editor
generierten HTML-Fragmente in die Template-Definitionen der HTML DB übernommen werden.
6. Schritt: Look & Feel der Anwendung ändern
Die Web-Anwendungen der HTML DB sind durch URL erreichbar: Das Format der URL ist
wie folgt: http://<server>/pls/htmldb/f?p=<ANWENDUNGS_ALIAS>:<SEITE_ALIAS>
Der Aliasname für die Anwendung wird im Application Builder bei den Anwendungsattributen
definiert; der Aliasname für die Seite bei den Einstellungen zur jeweiligen Seite. Durch
entsprechende Konfiguration des Apache Webservers (mod_rewrite) sind auch
"noch sprechendere" URL möglich:
(bspw. http://<server>/<ANW_ALIAS>).
Beim Zugriff auf die Anwendung prüft die HTML DB zunächst, ob der Benutzer authentifiziert werden muss. Wenn ja, wird ein Login-Fenster präsentiert. Auf Anwendungsebene kann definiert werden, ob die Benutzer gar nicht, gegen die HTML DB Benutzerverwaltung, gegen einen LDAP-Server oder gegen einen selbstgeschriebenen Mechanismus authentifiziert werden sollen. Während der Entwicklung der Anwendung oder bei kleinen Anwendungen auch während des Betriebs dürfte die HTML DB Benutzerverwaltung sicherlich ausreichend sein.
Neben der Authentifizierung des Benutzers gegenüber der Anwendung können feingranulare Sicherheitseinstellungen auch für jede Region festgelegt werden. So kann mit einem "Autorisierungsschema" für die einzelne Region, also den einzelnen Bericht oder das einzelne Formular und auch für einzelne Elemente der Region festgelegt werden, welche Benutzer diese Region bzw. dieses Element sehen dürfen und welche nicht.
Mit der Oracle HTML DB können datenbankgestützte Anwendungen auf einfachem Wege erstellt und verfügbar gemacht werden. Somit eignet sich die HTML DB insbesondere auch für solche Anforderungen, für die man ansonsten eine PC-Datenbank einsetzen würde. Dies wird nochmals durch den neuen Assistenten für Master-Detail Formulare unterstrichen, der in der neuesten Version der HTML DB enthalten ist.
Web-Animation: Erstellung von Master-Detail-Formularen mit der HTML DB
Durch die Assistentenunterstützung können Sie die Anwendungen sehr schnell erstellen. Die HTML DB Workspaces geben Ihnen recht hohe Flexibilität; Steht der Workspace einmal zur Verfügung, können Sie neue Anwendungen einfach hinzufügen.
Zum Ausprobieren der HTML DB steht ein öffentlicher Server zur Verfügung (siehe
Weitere Informationen). Ein Workspace auf diesem Rechner kann von jedermann
beantragt werden und wird i.d.R. innerhalb eines Tages eingeräumt. Mit diesem Workspace
kann jeder die Möglichkeiten der HTML DB testen; ein Beispiel wäre das Nachvollziehen der
in diesem Artikel enthaltenen Beispiele.
Öffentlicher HTML DB Demoserver
Aktuelle Informationen und Hintergründe zur HTML DB
Englischsprachiges Diskussionsforum zur HTML DB
How To Dokumente zur Oracle HTML DB
Deutschsprachige Broschüren (White Papers) zur HTML DB und zur Oracle Database 10g