Teil von SELFHTML aktuell Teil von Artikel Teil von Projektverwaltung

Web-Entwicklung mit der Oracle HTML DB

nach unten Über den Autor
nach unten Einführung
nach unten Konzepte und Architektur
nach unten HTML DB Anwendungen
nach unten Layoutsteuerung mit Themes und Templates
nach unten Anwendungszugriff und Sicherheit
nach unten Fazit
nach unten Weitere Informationen

Carsten Czarski
ORACLE Deutschland GmbH

E-Mail: E-Mail carsten.czarski@oracle.com
Homepage-URL: deutschsprachige Seite http://www.oracle.com/de
deutschsprachige Seite HTML DB aktuell

Bei Fragen zu diesem Beitrag können Sie mich gerne kontaktieren.

nach obennach unten

Einführung

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.

Konzepte und Architektur

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.

HTML DB Architektur
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.

Abarbeitung einer Anfrage an den HTML DB Server
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.

  1. Der Browser sendet eine HTTP-Anfrage an den OHS (Apache).
  2. Der Web Server erkennt an der URL, dass es sich hier um eine Anfrage für die HTML DB handelt. Daher wird das mod_plsql aktiv. Es ruft in der Oracle-Datenbank die HTML DB Funktionalität auf.
  3. Die HTML DB bekommt vom 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.
  4. Die HTML-Seite wird von der Datenbank ans mod_plsql zurückgereicht.
  5. Der Web Server liefert die HTML Seite an den Browser aus.

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.

HTML DB Homepage
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.

nach obennach unten

HTML DB Anwendungen

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.

HTML DB Terminologie
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.

Datenimport in die HTML DB
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.

Seite 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.

Seite 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.

Seite 3. Schritt: Formular hinzufügen
Seite 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.

englischsprachige Seite 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.

Seite 5. Schritt: Diagramm hinzufügen

nach obennach unten

Layoutsteuerung mit Themes und Templates

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.

Übersicht über ein Seitentemplate
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.

Seite 6. Schritt: Look & Feel der Anwendung ändern

nach obennach unten

Anwendungszugriff und Sicherheit

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.

nach obennach unten

Fazit

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.

deutschsprachige Seite 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 nach unten 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.

nach obennach unten

Weitere Informationen

englischsprachige Seite deutschsprachige Seite Öffentlicher HTML DB Demoserver

deutschsprachige Seite Aktuelle Informationen und Hintergründe zur HTML DB

englischsprachige Seite Englischsprachiges Diskussionsforum zur HTML DB

englischsprachige Seite How To Dokumente zur Oracle HTML DB

englischsprachige Seite HTML DB im Oracle Technet

deutschsprachige Seite Deutschsprachige Broschüren (White Papers) zur HTML DB und zur Oracle Database 10g

Teil von SELFHTML aktuell Teil von Artikel Teil von Projektverwaltung

© 2007 E-Mail Carsten Czarski, ORACLE Deutschland GmbH