Simsy's Intranet-Pavillon

Kleines Web/Datenbank-Kompendium

Inhalt:

1.0
1.1

2.0
2.1
2.2

3.0
3.1
3.2

4.0

Zwei Schritte für den Web-Zugriff auf eine Datenbank
CGI: Die traditionelle Methode vs .dll's und integrierte Server-Optionen

Very Low Cost-Datenbanken
Microsoft Access: Warum nicht?
WODA

WWW- und Datenbank-Gateways
Cold Fusion
Andere Gateway-Produkte

Weitere Links


1.0   Zwei Schritte für den Web-Zugriff auf eine Datenbank

Eine einfache Datenbank auf dem Server zu haben reicht nicht. Um den Zugriff von der HTML-Seite her zu ermöglichen, braucht es mindestens 2 Applikationen: der Web-Server, welcher die HTML-Seiten bereitstellt, und der Datenbank-Server (oder DBMS), welcher den Zugriff auf die Daten ermöglicht. Zusätzlich wird dabei oft eine dazwischenliegende Applikation verwendet, das WWW-/Datenbank-Gateway (meistens ein CGI-Script), welches die Anfrage der HTML-Seite entgegennimmt und sie so zubereitet, dass sie vom Datenbank-Server verstanden wird. Ein Gateway kann ein sehr simples Programm sein.

In den letzten Monaten wurden mehrere Gateway-Produkte auf den Markt gebracht, welche tiefgehende Kenntnisse von Datenbank-Programmierung überflüssig machen und häufig HTML-Seiten UND Datenbankzugriff-Skripts generieren (Cold Fusion ist ein Beispiel für ein solches Gateway-Produkt).


1.1   CGI: Die traditionelle Methode vs .dll's und integrierte Server-Optionen

Der traditionelle Weg, um von einer Webseite auf eine Datenbank zuzugreifen, ist CGI (Common Gateway Interface). Dies funktioniert wunderbar, für die Realisierung benötigt man jedoch die Kenntnis folgender Dinge:

HTML
eine Programmiersprache für das CGI Script
Datenbankzugriffs-Sprache

überdies kann ein CGI-Zugriff ziemlich langsam sein. Einige "Gateway"-Produkte wurden entwickelt, um den HTML-Author vor dem Erlernen von CGI und/oder einer Datenbank-Zugriffs-Sprache zu verschonen. Es gibt auch einige Produkte, die .dll's oder integrierte Web-Server-Funktionen anstatt von CGI gebrauchen. Diese laufen in der Regel einiges schneller ab als die CGI-basierte Methode. Diese Produkte unterscheiden sich in der Menge an HTML-Programmierkenntnis, die ein Author braucht, um sie zu benutzen. Die meisten dieser Produkten benutzen ODBC (Open Database Connectivity) - ein Standard, um mit Datenbanken zu "kommunizieren". ODBC-Treiber werden von Microsoft (und anderen) angeboten, um mit SQL-kompatiblen Datenbank zu kommunizieren. ODBC-Aufrufe sind normalerweise langsamer als die ursprünglichen Datenbank-Anfragen, aber sie können oft nützlich sein, wenn man die Datenbankmanagment-spezifische Sprache nicht kennt, oder man etwas will, welches auf verschiedenen Datenbanken läuft, und man den Code nicht für jedes Programm ändern möchte.

Um nun vom Web auf eine Datenbank zuzugreifen, braucht man

das Datenbankmanagment-System (DBMS)

und

etwas, um die Angaben von der HTML-Seite zu bekommen
(CGI, .dll oder Server-Option).

In den letzten Jahren sind auch immer mehr integrierte Internet-/Datenbank-Server in Mode gekommen. Oracle hat einen für UNIX. Microsoft offeriert den Internet Information Server (IIS) mit SQL-Server-Option für Windows NT.
Dabei hat man spezielle Kommandos vom Web Server (in diesem Falle IIS) für den Direktzugriff zum Datenbank-Server (Microsoft SQL Server). Diese Integration kann schneller sein, sie kann leichter sein - in den meisten Fällen ist sie auch leistungsfähiger.

Falls ein MS SQL-Server ausserhalb Ihres Budgets liegt, gibt es noch Alternativen:


2.0   Very Low Cost-Datenbanken


2.1   Microsoft Access: Why not?

Für kleinere Datenbanke (bis zu 10'000 Datensätzen) ist Access in einer Windows NT-Umgebung in Sachen Kosten und Integrierbarkeit schwer zu schlagen. In Microsoft Office Professional ist Access bereits enthalten, man kann es aber auch separat kaufen. Access 97 und 2000 haben eigene Internet-Assistenten.

Mit Hilfe von Active Server Pages (ASP) werden dabei zwischen die HTML-Anweisungen Skripte eingebunden, die serverseitig ausgeführt werden. Der Server wertet die Skripte aus und schickt dann nur noch die Ergebnisse in Form von HTML an den Browser. Als Skriptsprachen kann hier z.B. VBScript oder JScript eingesetzt werden.

Anschauliche Beispiele, wie man eine Datenbank via ASP ins Netz stellt, wird einem bei Hotwireds Webmonkey oder auf deutsch bei Stefan Falz erklärt.
Hat man schon einmal etwas mit z.B. Visual Basic/VBA oder JavaScript programmiert, fällt einem der Einstieg in die ASP-Programmierung nicht schwer, da einem, wie gesagt, mit VBScript oder JScript eine Sprache zur Vergügung steht, die sehr an VBA oder JavaScript angelehnt ist.

Zu beachten ist jedoch, dass für das Funktionieren von ASP auf dem Server auch die entsprechenden ASP-Erweiterungen installiert werden müssen. Diese sind jedoch in der Zwischenzeit nicht nur für Microsofts hauseigenen IIS erhältlich, sondern sogar auch für Webserver wie den Apache.

Eine grosse Bedeutung für die Anbindung an Datenbanken (Access, SQL-Server) mit ASP kommt hier der Entwicklungsumgebung Visual InterDev von Microsoft zu, welches man sicher auch noch kurz erwähnen sollte. Das Tool ist in die Visual-Studio-Umgebung integriert und kommt mit einem Query-Designer, womit man einen direkten Zugriff auf ODBC-Datenbanken. Die Felder lassen sich damit wie in Access selbst auf die Schnelle zusammenstellen und können mit Parametern versehen werden. Durch die umfassenden Funktionalitäten ist es ein bischen komplex in der Bedienung, und daher hauptsächlich für Programmierer geignet.

Ein zusätzliches Plus für Access: tausende von Leuten benutzen Access, d.h. es gibt überall Unterstützung. Die Gesamtkosten sind ziemlich niedrig, und man bekommt für sein Geld eine Menge Leistung.


2.2   WODA

WODA ist in Perl geschrieben, und läuft daher nicht nur auf UNIX / Linux, sondern auch auf Windows NT und 9x. Es ist, wie Perl auch, freie Software, die verändert und weiterverteilt werden kann. Ein weiterer positiver Punkt: Es ist nicht so speicherintensiv wie andere Konkurrenten.


3.0   WWW-/Datenbank-Gateways

Wenn Sie die Datenbank installiert haben, brauchen Sie noch einen Weg, um mit der Web-Seite kommunizieren zu können.

Falls Sie den IIS benutzen, stellt Ihnen Microsoft eine Anzahl spezielller Server-Optionen zur Verfügung, um auf den Datenbank-Server zugreifen zu könnnen, wie zum Beispiel Active Server Pages.

Sie können aber auch Ihr eigenes CGI-Programm benutzen, welches Sie in irgendeiner Sprache geschrieben haben.


3.1   Cold Fusion

Oder Sie benutzen ein Gateway-Produkt, welches die Datenbank-Aufrufe für Sie vereinfacht. Ein Beispiel für ein solches Produkt wurde oben schon erwähnt: Cold Fusion. Dies ist ein sehr nützliches Tool, aber es ist nicht ganz gratis. Die Lizenzgebühr ist ab $ 400.-- erhältlich, und dabei hat man noch keine Datenbank, erst die Web-to-Database-Schnittstelle.
Eine 30-Tage-Demo-Version ist erhätlich.

Cold Fusion ist eine erweiterte Version des HTML-Editors HomeSite. Für die Ansteuerung der Datenbank hat Allaire die Cold Fusion Markup Language (CFML) konzipiert. Dabei handelt es sich um eine stark an die Syntax von HTML angelehnte Sprache, die ebenfalls mit Tags und Attributen arbeitet. Wer HTML kennt, wird deshalb auch sehr schnell mit CFML zurechtkommen. Es ersetzt aber nicht die Kenntnis von SQL - eine falsche Abfrage ergibt noch immer ein falsches Resultat. Ein grosser Pluspunkt ist der, dass man nicht CGI-Wissen zu erarbeiten hat.

Einige Features von Cold Fusion: Nutzung von Datenbank-Sicherheitsfunktionen, verschiedene Befehle für das File-Management, sowie der Berichtsgenerator Crystal Reports 5.0. Es lassen sich auch Boolsche Ausdrücke, Looping-, über 130 Datums-, Zeit-, Listen- und Stringfunktionen einbinden. Auch ActiveX, JavaScript und Java wird unterstützt.

In der Enterprise Edition wird ODBC, OLE DB, CORBA, Sybase und Oracle unterstützt; die Professional-Ausgabe arbeitet mit Desktop-DBs wie Access, Foxpro, Paradox und Sybase.

Für eine Umgebung, in der mehrere Leute Abfragen generieren, und man nicht jede Person in CGI ausbilden möchte, ist Cold Fusion sicher eine gute Lösung. Nützlich ist es z.B. für ISP's oder in einer Intranet-Umgebung. Für einen einzelnen Entwickler und für eine einzelne Site ist es wahrscheinlich günstiger und effizienter, wenn der Entwickler CGI lernt oder ein günstigeres Produkt wählt.

Cold Fusion ist ein CGI-Umwandler, und es greift via ODBC auf eine SQL-DB zu. Eine native Schnittstelle bringt in den meisten Fällen im Back End-Bereich die grössere Performance, während pures CGI im Front End schneller ist.

Es gibt noch über 100 ähnliche Produkte, die meisten davon benutzen ODBC für den Zugriff auf eine ODBC-kompatible SQL-Datenbank, wie Access, FoxPro, msSQL, Oracle, Ingres, Progress etc.

Einige benutzen auch 'native calls', welches sich positiv auf die Performance auswirkt. Andere benutzen die Schnittstelle von Netscape (NSAPI) oder Microsoft (ISAPI).

Nachfolgend noch einige Beispiele für solche Produkte:


3.2   Andere Gateway-Produkte

Odars2Web "Klick... klick... klick und fertig ist die Datenbank fürs Internet"

Der Kölner Herstelller Infoware hat eines der besten Werkzeuge, um Datenbanken (Access, Oracle, dBase, Text, Excel) narrensicher ins Internet zu bringen. Das Ergebnis mit Bildintegration, Suchformularen und eine klare Benutzerführung lässt sich sehen. Leider kann jedoch die Installation einige Tücken bergen, und auch die Dokumentation ist nicht sehr umfangreich.
Personal Package: DM 400.--, Server Package: DM 4000.--

WebHub Delphi-Entwicklungsumgebung für Website-Entwicklung

Vom Gateway-Prinzip ähnlich wie Cold Fusion. Es ist jedoch hauptsächlich für Delphi-Entwickler gedacht. Basiert auf Borlands DB-Managment. Raffiniert, falls man Delphi kennt, unverständlich, falls nicht. Kosten: $ 700.

Tango Enterprise Cross-Plattform-Entwicklungsumgebung

Auch Tango hat ähnliche Funktionen wie Cold Fusion, ist aber laut Hersteller einfacher zu bedienen. Besteht aus Development Studio und Application Server. Plattformen: Windows, Solaris, AIX und MacOS, unterstützt ODBC und Oracle. Im Lieferumfang enthalten ist die SQL-Datenbank von Pervasive.

4.0   Weitere Links

XML representation of a relational database   So werden relationale Strukturen in XML umgesetzt
Browsing Object-Oriented Databases over the Web

 



Hauptseite  Editorial  Einführung  Pro & Contra
Implementation  Design  Programmierung  Links





 Jürg Keller