Perl DBD and DBI Oracle

Mit Perl und DBI + DBD-Oracle können unter z.B Oracle Datenbanken und viele andere Datenbanken
angebunden werden und wird meistens für kleinere Projekte verwendet.
Alle Module DBD-* und die Module für den anderen Datenbanken (Ingres, Informix, Adabas, uvam.) stehen im Internet unter
jedem CPAN Mirror zu verfügung.
Aktuelle Artikel zum Thema PERL befindet sich unter: http://www.perlmeister.com

Es gibt 3 Möglichkeiten eine zentrale Datenbankensysteme für Abfrage und Eingabe von Daten anzubinden:

DBI + DBD-Proxy
DBI + DBD-Oracle
Perl und pClient / pServer

Problem:

Bei alle methoden muß man sich bei jeder Abfrage bei der Datenbank neu anmelden, da mit HTTP keine dauerhafte Verbindung zur Datenbank hergestellt wird.

DBI + DBD-Proxy – ein Proxytreiber für das DBI

Zugriff auf der Datenbank mit Hilfe von DBI::Oracle

Die Datenbankschnittstelle benötigt eine auf der Datenbank installierte DBD Module.
DBD ist ein DatenbankTreiber und arbeitet mit dem DBI zum Bereitstellen des Zugriffs zu einer Datenbank.

Module PlRPC
(PlClient, PlServer),
Module Net-Daemon,
Module Io (Socket)

DSN Eintrage Server to the System database.

verwendt wird zum Beispiel;
$dbh = DBI->connect (“dbi:Proxy:hostname=$host;port=$port;dsn=$db”,
$user, $passwd );

Voraussetzungen:

Auf jedem PC, auf dem über Access auf die Datenbank zugegriffen werden soll, müssen die folgenden Schritte ausgeführt werden:  

Perl 5005_3
Module DBI (at least DBI version)
Module DBD (Proxy),
Module RPC (PlClient, PlServer),
Module Net (Daemon),
Module Io (Socket),

DBD::Proxy ist ein Perl-Modul für das Anschließen an eine Datenbank über einen Remote- DBI- Treiber an eine Remotedatenbank. SID
Bevor man an die Datenbank anschließen, muß sicher gestellt werden, daß das Proxy Server auf die Server Maschine läuft.
Es gibt keinen Rückstellung Kanal, also muß man die Portzahl bekannt sein.

 

DBI + DBD-Oracle

Zugriff auf der Datenbank mit Hilfe von DBD::Oracle

verwendt wird zum Beispiel;
$dbh = DBI->connect  ( “dbi:Oracle:”,
$user, $passwd, {RaiseError => 1, PrintError => 1 } );

Voraussetzungen:

Auf jedem PC, auf dem über Access auf die Oracle-Datenbank zugegriffen werden soll, müssen die folgenden Schritte ausgeführt werden:

1. Perl 5005_3
2. Module DBI (at least DBI 1.08)
3. Module DBD (Oracle),
4. Module RPC (PlClient, PlServer),
5. Module Net (Daemon),
6. Module Io (Socket)
Die entsprechende Oracle- Client Software muß auf dem Client installiert werden.

Das Programm schickt eine Sql-Abfrage zu DBI um sie an das DBD::Oracle weiterzuleiten.
DBD::Oracle übersetzt durch die Oracle Bibliothek, was sie von DBI erhälte.
Die Bibliothek schickt den Antrag über dem Netz nach, erhält die Resultate rückseitig und bringt sie zu DBD::Oracle zurück.
Schließlich DBD::Oracle bringt die Resultate zu DBI zurück und das Programm erhählt die Resultate von DBI.

Nachteil:

Perl- Modulen sollte gepflegt werden. Hier zu kommen noch weitere Module DBD::Oracle
In Fall Update von Oracle – Server Software soll auf jeden Clients die Oracle- Client Bibliothek auch auf neue Version umgestellt werden.
Keine Prozesse werden auf Servermaschine gestartet. (Direkten Zugriff auf Datenbank.
Lokalisieren die Fehlern nimmt mehr zeit in sich und dafür braucht man die rechte von Oracle -System Operator.
Für Zugriff auf Datenbank gibt kein Port, den man frei halten/sperren.
Für den Fall zugriff zu sperren, soll man Oracle- Server stoppen.

 

Perl und pClient / pServer

Voraussetzungen:

Auf jedem PC, auf dem über Access auf die Oracle-Datenbank zugegriffen werden soll, müssen die folgenden Schritte ausgeführt werden:

1. Perl 5005_3
2. Module RPC (PlClient),
3. Module Net (Daemon),
4. Module Io (Socket)

Applet oder Java Servlet

Verwendet wird für mittlere Projekte mit komplexeren Abfragen und Objektmodellen.
Weiterführende Informationen:

http://java.apache.org
http://java.sun.com/products/servlet
http://www.apache.org
http://www.blackdown.org

Benötigte Komponenten:

Folgende Komponenten werden für Apache/JServbenötigt:

JRE, JDK, JSDK und JServ
JRE ist die Runtime Java Umgebung, JDK ist das Java Development Kit und JSDK wird zur Entwicklung und zum Testen von Servlets verwendet.

Alle Sourcen stehen im Internet frei zur Verfügung.

JRE (Virtual Maschine)
JDK (Java Dev Kit)
JSDK (Servlet Dev Kit)
Apache, Apache JServ

Vorteil Servlet (ZDNET Deutschland Ausgabe 11/1998 Seite 85 ff.)

Der Vorteil der Servlets besteht aber nicht nur in der Plattformunabhängigkeit. Gerade Performancefragen lassen Servlets zur Steuerung von dynamischen Seiteninhalten zum Mittel der Wahl werden. Wird eine Anfrage an ein CGI-Programm gestellt, passiert bei einem Standardwebserver folgendes: Ein neuer Prozeß wird gestartet
— das dauert ein bißchen
–, dann wird das CGI-Skript geladen und mit der Ausführung begonnen.
Nach Abschluß seiner Tätigkeit wird das Skript wieder komplett aus dem Speicher entfernt. Dies bedeutet neben der Zeitverzögerung vor allem eine erhöhte Prozessorlast und einen gewissen Speicherhunger. Servlets umgehen diese Probleme und profitieren ebenfalls vom
Java-Sicherheitskonzept:

Für Servlets wird kein eigener Prozeß erzeugt. Dies bedeutet effektiv eine schnellere
Bearbeitung der Requests.
Servlets werden nach einem Request nicht aus dem Speicher entfernt. Die Initialisierungsphase wird genau einmal beim Start ausgeführt, um zum Beispiel externe Dateien zu laden
Servlets arbeiten mit multithreading, das heißt, daß ein Servlet mehrere Anfragen parallel beantwortet. Dies spart Speicher und erlaubt es, auf gleiche feste und/oder geteilte Daten zuzugreifen.
Servlets können in einer eigenen “Java-Sandbox” laufen, das heißt, der Server-Handler kann für die Servlets angepaßte Rechte und Sicherheitsmodelle verwalten, so daß auch fremde Servlets verwendet werden können.

Bemerkungen:

Die Verbindung Browser zu Server erfolgt ausschliesslich in HTML. Deshalb gibt es (fast) keine Probleme sowohl mit den Browser-Typen und Versionen, wie auch beim Einsatz eines Firewalls.

Im Browser selber ist keine Intelligenz vorhanden. Der Syntaxcheck bei Benutzereingaben zum Beispiel muss auf dem Server erfolgen, was zu einer erhöhten Netzwerkbelastung und zu längeren Antwortzeiten führt.

Der Webserver muss “servlets”-fähig sein.

Active Server Pages (ASP)

1. Virtuelle Directories
2. ASP mit VBScript
3. Serverseitiges Objekt-Modell, Erweiterungen

Leave a Reply

Your email address will not be published. Required fields are marked *

*