Nachteile eines Intranets
[ Seminar WWW und Java ]...[
Thema Intranets ]...[ Literatur ]
Übersicht
Kosten für den Aufbau des
Intranets
Erhöhung des Netzwerkverkehrs
Viele Applikationen
für Intranets noch unausgereift
Zugriff auf Datenbanken via
CGI relativ langsam => Abhilfe durch Java JDBC-Schnittstelle
Kosten für den Aufbau des Intranets
Um aus der im Unternehmen vorhandenen Client/Server-Architektur ein
Intranet zu machen, ist Voraussetzung, daß es für die im Unternehmen
vorhandenen Rechner einen Browser gibt und auf den Rechnern TCP/IP zur
Verfügung steht. In diesem günstigen Fall fehlt nur noch ein
Internet-Server.
Aber selbst wenn Änderungen des firmeninternen Netzwerkes entfallen,
müssen für die Mitarbeiter IP-Adressen vergeben werden und die
HTML-Seiten, über die die Mitarbeiter auf das Intranet zugreifen,
müssen erstellt werden. Für den Zugriff auf Datenbanken müssen
dann die entsprechenden CGI-Skripte (oder Java-Programme für die JDBC-Schnittstelle)
erstellt werden.
Erhöhung des Netzwerkverkehrs
Gehen wir einfach einmal davon aus, in einem Unternehmen, welches bisher
eine "normale" Client/Server-Architektur hatte, existiere jetzt
ein Intranet. In diesem Intranet sind zu den bisherigen PCs, an denen gearbeitet
wird, einige Net-PCs hinzugekommen.
Da viele der im Unternehmen benötigten Dokumente und Berichte nicht
mehr in Papierform vorliegen, wird jetzt verstärkt das Intranet benötigt,
um auf diese zuzugreifen.
Außerdem wird die Software für die Net-PCs ausschließlich
über das Netz geladen. Je nachdem wie die entgültigen Versionen
dieser Rechner aussehen werden, wird dies entweder bei jedem Einschalten
oder nur bei Änderungen der vom Rechner angeforderten Software der
Fall sein (alte Versionen könnten auf einer als Cache dienenden Festplatte
liegen). Auch dies erhöht den Netzwerkverkehr.
Folglich muß ein entsprechend leistungsfähiges Netzwerk vorhanden
sein oder angeschafft werden.
Viele Applikationen für
Intranets noch unausgereift
Dadurch das die Idee der Intranets noch sehr jung ist, sind die Applikationen
für Intranets oftmals wenig erprobt. Traditionelle Groupware Produkte
z.B. Lotus Notes bieten hier oft (noch) mehr Funktionen und eventuell auch
teilweise mehr Zuverlässigkeit.
Weiterhin müssen, um einen ähnlichen Leistungsumfang, den
eine traditionelle Groupware-Lösung bietet mehrere Applikationen zusammengestellt
werden (Web-Server, Informationsdatenbanken etc.).
Zugriff auf Datenbanken via CGI relativ
langsam => Abhilfe durch Java JDBC-Schnittstelle
Werden Datenbankanfrage über die CGI-Schnittstelle gestellt und
von Seiten des Servers immer wieder die Datenbank geöffnet und geschlossen
('teure' Operationen), so erfolgt daraus ein langsamer Zugriff auf die
Datenbank.
Um dies zu Beschleunigen ist es möglich, entweder über einen
zusätzlichen Prozeß eine dauerhafte Verbindung zur Datenbank
über Sockets laufen zu lassen, oder den Zugriff über die Java
JDBC-Schnittstelle ablaufen zu lassen:
Zielsetzung der JDBC-Schnittstelle
Abstrakte Schnittstellen
der JDBC-API
Beispielprogramm
Zielsetzung der JDBC-Schnittstelle
Einfacher Zugriff auf Datenbanken über Java
Programmierung der Zugriffe unabhängig vom genutzten Datenbanksystem
Schnittstelle um SQL-Queries an Datenbanken zu richten und die Resultate
zu erhalten
Unterstützung des ANSI SQL92 Standards
Einfacher Aufbau
Abstrakte Schnittstellen
der JDBC-API
DriverManager: Übernimmt das Laden der Treiber und das Schaffen
neuer Datenbank-Verbindungen
Connection: Repräsentiert die Verbindung zu einer bestimmten Datenbank
Statement: Container für ein SQL-Statement einer Connection
ResultSet: Kontrolliert den Zugriff auf die Ergebnismenge einer Anfrage

Beispielprogramm
import java.net.URL;
import java.sql.*;
class Select
{
- public static void main(String argv[])
- {
- try {
- // Create a URL specifying an ODBC data source name.
- // * URL-Name hat die Form: "jdbc":Subprotokoll:Subname
(letzterer richtet sich nach dem Subprotokoll).
- String url = ôjdbc:odbc:wombatö;
- // Connect to the database at that URL.
- // * Eine Connection ist die Verbindung zu einer
Datenbank.
- // * Es ist möglich, über die Connection
Informationen über die Datenbanktabellen zu erhalten.
- // * Der Driver-Manager versucht aus den vorhandenen
JDBC-Treiber den passenden auszuwählen.
- // * Neue Treiber können mit DriverManager.registerDriver
registriert werden.
- // * (Parameter für getConnection sind URL,
Username, Paßwort ).
- Connection con = DriverManager.getConnection(url, ôkghö, ôô);
- // Execute a SELECT statement
- // * Statement-Objekte werden benötigt,
um SQL-Befehle auszuführen und deren Resultate zu erhalten.
- // * Eine Connection kann mehrere Statements
besitzen.
- Statement stmt = con.createStatement();
- // * Ein ResultSet speichert die Daten, die eine
SQL-Anfrage liefert.
- // * Es ermöglicht den direkten Zugriff
auf eine Zeile der erhaltenen Tabelle.
- // * Zum navigieren durch die Tabelle enthält
es einen Datenbank-Cursor.
- // * Zu jedem Statement gehört ein Resultset.
- // * Ein neues Statement schließt ein eventuell
noch offenes altes Resultset.
- ResultSet rs = stmt.executeQuery(ôSELECT a, b, c, d, key FROM Table1ö);
- // Step through the result rows.
- System.out.println(ôGot results:ö);
- // * Solange noch weitere Datensätze vorhanden
sind zum nächsten Datensatz.
- // * (Der Cursor ist nach Ausführung des
Queries VOR dem ersten Datensatz positioniert.)
- while (rs.next())
- {
- // get the values from the current row:
- // * Mit den getXX( int )-Methoden wird das Element
der Tabelle in der aktuellen Zeile und der als Index übergebenen Spaltennummer
ermittelt.
- // * Alternativ kann mit getXX( String )-Methoden
über den Spaltennamen auf die Spalte zugegriffen werden.
- int a = rs.getInt(1);
- Bignum b = rs.getBignum(2);
- char c[] = rs.getString(3).tocharArray();
- boolean d = rs.getBoolean(4);
- String key = rs.getString(5);
- // Now print out the results:
- System.out.print(ô key=ö + key);
- System.out.print(ô a=ö + a);
- System.out.print(ô b=ö + b);
- System.out.print(ô c=ö);
- for (int i = 0; i < c.length; i++) { System.out.print(c[i]); }
- System.out.print(ô d=ö + d);
- System.out.print(ô\nö);
- }
- stmt.close();
- con.close();
- }
- catch (java.lang.Exception ex) { ex.printStackTrace(); }
- }
}
[ Seminar WWW und Java ]...[
Thema Intranets ]...[ Nachteile
eines Intranets ]...[ Literatur ]