Internetanbindung von Datenbanken



Ähnliche Dokumente
Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Java - Webapplikationen

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Java zur Realisierung von Internetanwendungen

Web 2.0 Software-Architekturen

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

OP-LOG

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Java: Vererbung. Teil 3: super()

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Verbinden von IBM Informix mit Openoffice mittels JDBC

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Sicherheit in Webanwendungen CrossSite, Session und SQL

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

ecaros2 - Accountmanager

Einbindung des Web Map Service für Gemeinden Anleitung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Adminer: Installationsanleitung

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Anwendungsprotokolle: HTTP, POP, SMTP

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Applet Firewall und Freigabe der Objekte

Session Management und Cookies

Applets I. Grundlagen der g Applet-Programmierung

Planung für Organisation und Technik

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Erste Schritte mit TeamSpeak 3

Man liest sich: POP3/IMAP

Einführung in Javadoc

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Mit dem MySQL Migration Toolkit aus ACCESS Datenbank SQL-Skripte generieren

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Fotostammtisch-Schaumburg

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Inhaltsverzeichnis. Beschreibung. Hintergrund

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Oracle: Abstrakte Datentypen:

Print2CAD 2017, 8th Generation. Netzwerkversionen

Datenbanken auf Sybase SQL-Anywhere

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Virtual Private Network

Betriebshandbuch. MyInTouch Import Tool

Übung: Verwendung von Java-Threads

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

ICS-Addin. Benutzerhandbuch. Version: 1.0

Partnerportal Installateure Registrierung

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Lehrer: Einschreibemethoden

Flowy Apps erzählt eine kurze Geschichte über REDS. Remotely Encrypted Distributed Storage

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Objektorientierte Programmierung. Kapitel 12: Interfaces

ITT WEB-Service DEMO. Kurzbedienungsanleitung

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Sicherer Datenaustausch mit Sticky Password 8

Anleitung: Ändern von Seiteninhalten und anlegen eines News Beitrags auf der Homepage des DAV Zorneding

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

Tutorial -

Serviceanweisung Austausch Globalsign Ausstellerzertifikate

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Anlegen eines DLRG Accounts

ESB - Elektronischer Service Bericht

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Internationales Altkatholisches Laienforum

Step by Step Webserver unter Windows Server von Christian Bartl

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Virtual Channel installieren

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

Android Remote Desktop & WEB

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

SharePoint Demonstration

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Übungen zu Softwaretechnik

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Einrichtung des WS_FTP95 LE

Mobile Anwendungen Google Cloud Messaging

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Transkript:

Internetanbindung von Datenbanken SQLJ Servlets http://galahad.informatik.fh-kl.de/frankfurter SQLJ-1 Gliederung Einführung in Servlets Entwicklungswerkzeuge Servlets HTML-Beispiel Servlet Beispiel Servlet Methoden Lebenszyklus Literatur SQLJ-2

Einführung in Servlets Frankfurter Gerd SQLJ-3 Entwicklungswerkzeuge Ab JDK 1.1.X http://java.sun.com/products/jdk JSDK 2.0 http://java.sun.com/products/servlet/ Web-Server http://www.apache.org/ (Apache 1.3.9) http://java.apache.org/ (Apache JServ 1.0) SQLJ-4

Servlets Applet vs Servlet HTTP Client/Server Kommunikation Request & Response GET - Methode um Informationen aus einer Datenbank zu erhalten. POST - Methode Informationen an den Server zu senden. SQLJ-5 HTML-Beispiel <HTML> <HEAD><TITLE>Beispiel</TITLE></HEAD> <BODY> <FORM METHODE = GET ACTION = /servlet/hello > <INPUT TYPE = TEXT NAME = name ><P> <INPUT TYPE = SUBMIT> </FORM> </BODY> </HTML> SQLJ-6

Servlet Beispiel import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Hello extends HttpServlet{ public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException{ res.setcontenttype( text/html ); PrintWriter out = res.getwriter(); SQLJ-7 Servlet Beispiel String name = req.getparameter( name ); out.println( <HTML> ); out.println( <HEAD><TITLE>Hello, +name+ </TITLE><HEAD> ); out.println( <BODY> ); out.println( Hello, + name ); out.println( </BODY></HEAD> ); } } SQLJ-8

Servlet Methoden service() doget() dopost() init() destroy() dohead()... SQLJ-9 Lebenszyklus Erzeugen & Initizialisieren Bearbeiten von einem oder mehreren Clients bzw. Aufrufen nach Ablauf der Lebenszeit wird das Servlet vom Server beendet und belegte Resourcen wieder frei gegeben. SQLJ-10

Literatur JAVA Servlet Programming Jason Hunter, William Crawford O Reilly Oktober 1998... SQLJ-11 Internetanbindung von Datenbanken SQLJ - Embedded SQL in Java http://galahad.informatik.fh-kl.de/sawicki SQLJ-12

Gliederung Einführung SQLJ Verwendung von SQLJ SQLJ und verwendbare Schnittstellen Net8-Connection-Manager Stored-Procedures und SQLJ Beispiel-Code SQLJ-13 Einführung SQLJ Christoph Sawicki SQLJ-14

Was ist SQLJ? SQLJ ist eine standardisierte Sprach-Spezifikation für embeded SQL-Anweisungen in Java SQLJ ist ein Resultat der Bemühungen von mehreren Industriefirmen, die Entwicklung der Datenbankapplikationen in Java erleichtern soll. SQLJ-15 Wie funktioniert SQLJ? Während der Compilierung prüft der SQLJ-Translator alle SQL-Anweisungen auf: syntax semantic typ schema Anschließend werden alle embeded SQL-Anweiungen in Java konvertiert und dann dem Java- Compiler übergeben. SQLJ-16

Wie funktioniert SQLJ? Eine SQLJ-Applikation ist also ein Standard-Java- Programm, das aus SQLJ-Anweisungen generiert wurde. SQLJ-17 Wie funktioniert SQLJ? Dabei werden alle SQLJ-Anweisungen in gültige JDBC-Anweisungen konvertiert. SQLJ-18

Verwendung von SQLJ SQLJ-19 Wann SQLJ? SQLJ erlaubt gleichzeitige Aufrufe von JDBC- und SQLJ-Anweisungen aber... Oracle empfiehlt, SQLJ nur dann zu benutzten, wenn statische SQL-Anweisungen benutzt werden sollten. Bei dynamischen SQL-Anweisungen sollte nur JDBC benutzt werden. Dafür... Ist der entwickelte SQLJ-Programm, wie alle Java- und JDBC-Applikationen, plattformunabhängig. SQLJ-20

SQLJ und verwendbare Schnittstellen SQLJ-21 SQLJ und JDBC-Treiber SQLJ-Programme können mit folgenden JDBC-Treiber benutzt werden: Oracle JDBC/OCI Oracle Thin JDBC andere JDBC Treiber SQLJ-22

SQLJ mit Thin Treiber SQLJ-Translator kann zusammen mit dem Thin-JDBC- Treiber über den Net8-Connection-Manager benutzt werden. SQLJ-23 Net8-Connection-Manager SQLJ-24

Was ist Net8-Connection-Manager? Net8-Connection-Manager ist ein mehrzweck Netzwerkdienst für Oracle-Umgebungen, der die Client- Verbindungen verwaltet: Zugriff über mehrere Protokolle (TCP/IP) mehrere Clients können zusammen gefaßt werden Clients-Zugriffe können durch eine gemeinsame Methode besser kontrolliert werden Durch Multiplexen werden die aktiven Verbindungen vom Client zur Client umgeschaltet SQLJ-25 Was ist Net8-Connection-Manager? viele Clients können durch nur eine Netzwerkverbindung verwaltet werden (reduzierter Speicherverbrauch, Performance usw.) SQLJ-26

Stored-Procedures und SQLJ SQLJ-27 Speicherprozeß von SQLJ Stored-Procedures, Trigger können mit Hilfe von SQLJ implementiert werden. Man kann von folgenden Arten der Clients auf sie zugreifen: Java Clients Net8 Clients CORBA Clients SQLJ-28

Beispiel-Code SQLJ-29 SQLJ vs. generiertes JDBC Code // ************************************************************ // #sql autorresult = { SELECT // vname, // nname // FROM Person // WHERE PNr = :arbeitresult.autor() }; // ************************************************************ { sqlj.runtime.connectioncontext sjt_connctx = sqlj.runtime.ref.defaultcontext.getdefaultcontext(); if ( sjt_connctx == null) sqlj.runtime.error.runtimereferrors.raise_null_conn_ctx(); sqlj.runtime.executioncontext sjt_execctx = sjt_connctx.getexecutioncontext(); if ( sjt_execctx == null) sqlj.runtime.error.runtimereferrors.raise_null_exec_ctx(); Integer sjt_1 = arbeitresult.autor(); synchronized ( sjt_execctx) { sqlj.runtime.profile.rtstatement sjt_stmt = sjt_execctx.registerstatement( sjt_connctx, AnzeigeServlet_SJProfileKeys.getKey(0), 9); try { sjt_stmt.setintwrapper(1, sjt_1); sqlj.runtime.profile.rtresultset sjt_result = sjt_execctx.executequery(); autorresult = new autoriter( sjt_result); } finally { sjt_execctx.releasestatement(); } } } SQLJ-30

Internetanbindung von Datenbanken SQLJ Tips & Tricks http://galahad.informatik.fh-kl.de/helfrich SQLJ-31 Gliederung Hilfsmittel Sessions Anzeigen Login Probleme SQLJ-32

Hilfsmittel Apache Webserver V 1.3.9b für NT Jserv V 1.0 SQLJ Präprozessor Java VM (JDK 1.1.8) JDK 1.1.8 JSDK 2.0 UltraEdit SQLJ-33 SQLJ Präprozessor Wird durch sqlj.properties File gesteuert: sqlj.user=w3db_user sqlj.password=w3db_user ### Oracle JDBC-Thin URL sqlj.url=jdbc:oracle:thin:@143.93.21.12:1521:w3db # Turn informational messages on sqlj.warn=verbose SQLJ-34

SQJ Command Line Options Zur Entwicklung ist es notwendig einige Command Line Options zu wissen: - passes: Veranlaßt den Translator den anschließenden Compilerlauf auszulassen - user : Gibt einen Usernamen für die Verbindung an - password: gibt das Passwort des Users an -n : Zeigt den Aufruf für die JAVA VM z.b. java sqlj.tools.sqlj <Dateiname>.sqlj -compile : Veranlaßt den Translator gleich zu Compilieren (Standard) Weiterhin kann man noch Argumente und Optionen sowohl zum Javac als auch zu VM durchreichen SQLJ-35 SQLJ Translator Tips Bei Unix ist der SQLJ Translator ein Skript, bei Win eine EXE-File. Die Funktionalität ist gleich(fast). Unter WIN bleibt der Translator oft hängen. Abhilfe mit option -passes und manuellem Compiler lauf. SQLJ und JDK1.2 funktioniert nicht. Abhilfe: In Kürze neues Release oder JDK1.1.x SQLJ-36

Sessions Vom Browser generierte ID wird dem WEB Server mitgeteilt Anhand der ID ist der Benutzer eindeutig identifizierbar Gleichzeitig wird ein Cookie gesetzt, in dem man auch Daten ablegen kann. Nachteil: Wenn die Cookies deaktiviert sind ist bei jedem Aufruf die Session ID neu. Lösung: URL Rewriting SQLJ-37 Sessions in Servlets Mit Hilfe der Klasse javax.servlet.http.httpsession läßt sich der Zugriff auf die Sessions und auch auf die Cookies realisieren. Methoden der Klasse: getcreationtime() getid() - liefert die Session ID getvalue (String Name) - liest einen Wert aus der Session putvalue(string Name, Objekt value) isnew() invalidate() - Session ungültig setzten SQLJ-38

Anzeigen der Datensätze Das Anzeigen wird dadurch realisiert, das die aktuellen Nummer der Arbeit im Cookie gespeichert wird. Vorteile: Konsistenz der Daten wenn gleichzeitig ein anderer Benutzer einen neuen Datensatz einfügt oder löscht. Nachteil: Die Nummer der Arbeit steht auf dem Client. Abhilfe: Nummer verschlüsseln Nummer auf Server speichern SQLJ-39 Login Zum Freigeben der Daten soll sich der Hauptbenutzer anmelden. Sessions zum überprüfen ob der Benutzer sich schon einmal angemeldet hat. Zentrales Servlet das die Verbindung mit der Datenbank übernimmt. Benutzerverwaltung durch das Servlet SQLJ-40

Login(2) Alternative: WEB Server Sicherheit Benutzerverwaltung durch WEB Server Problem: Einbindung des JSERV in das Sicherheitskonzept SQLJ-41 Login(3) Benutzerverwaltung durch die Datenbank Servlet generiert Abfrageseite und leitet die Antwort an die Datenbank weiter. SQLJ-42

Probleme (1) JDBC Classes version 8.0.4 unterstützt nicht alle Typen Java VM der Version 1.2 liefert NullPointerException beim Übersetzen. In Iteratorendeklarationen dürfen keine Zahlen vorhanden sein?????? Da sonst nur ein Iterator ausführbar ist. z.b. #sql iterator sqlresult2 ( String Name); #sql iterater sqlresult (String, int, NUMBER); Ergebnis: Der zweite Iterator wirft eine SQLException SQLJ-43 Probleme(2) Datenbankverbindung Oracle.connect(Demo.class, connect.properties ); DriverManager.registerDriver(new Oracle.jdbc.driver.OracleDriver()); String url = "jdbc:oracle:thin:@143.93.21.12:1521:w3db"; String user = "w3db_user"; String pwd = "w3db_user"; Phänomen: Testservlet lief Sonntags aber Montags nicht mehr...?!? SQLJ-44