Realisierung verteilter Anwendungen: Teil 5 zBeim vorigen Mal: yObjektmigration (Voyager) ySpontane Vernetzung (Jini) zInhalt heute yDynamische Datenbankanfragen.

Slides:



Advertisements
Ähnliche Präsentationen
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
Advertisements

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
1 Kapitel 9: Datenbankapplikationen. 2 Datenbankapplikationen MS Access Embedded SQL JDBC Application JDBC Applet Java Servlet Java Server Pages Cold.
MySQL.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Kurze Einführung in ASP
© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Internet-Datenbanken
Datenbankzugriff im WWW (Kommerzielle Systeme)
Internetzugriff mit Strings und Streams
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
Datenbankanwendungen mit Java und JDBC
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
JDBC Konzepte Realisierung von Zugriffen
Transaction Script Software Component Technology for Distributed Applications.
JAVA RMI.
ansprechendes Design Übersichtlichkeit simple(selbsterklärende) Navigation unsere Credos : design programming Ltd.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Remote Methode Invocation (RMI)
JDBC EDV JDBC.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Systementwicklungsprojekt:
JDBC: JAVA Database Connectivity
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Wir bauen uns eine Webapplikation!
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
EJB-Applikationsserver
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Basiswissen für Partner und interessierte Kunden Technologie.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
JDBC (Java DataBase Connectivity)
Management- und Web Services- Architekturen
Datenanbindung in Webapplikationen
Datenbankanbindung mit
Javelin Internet-based parallel computing using Java.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Datenbanken im Web 1.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Welcome to Web Services & Grid Computing Jens Mache
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002.
Realisierung verteilter Anwendungen: Teil 4 zBeim vorigen Mal: RMI und Grundlagen von CORBA zInhalt heute yVerteilung und Objektorientierung (Voyager)
Realisierung verteilter Anwendungen: Teil 3 zBeim vorigen Mal: Sockets, RMI zInhalt heute yCommon Object Request Broker Architecture (CORBA) zLernziele:
Realisierung verteilter Anwendungen: Teil 2 zInhalt heute: yKommunikation über Sockets yJava Remote Method Invocation, RMI zLernziele: yVerständnis eines.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Verteilte Anwendungen: J2EE
Azure Countdown Wenn der Freund und Helfer Freunde und Helfer braucht: Sichere Content-Upload-Plattform für Bürger.
Investitionen sichern - wachse mit Forms in die neue Welt
Aspect-Oriented Programming: Fad or the Future
JDBC Java DataBase Connectivity
Official Statistics Web Cartography in Germany − Regional Statistics, Federal and European Elections, Future Activities − Joint Working Party meeting.
OFFICE 365 FOCUS SESSION SHAREPOINT ONLINE 101:LERNE DIE BASICS 19. März 2018 Höhr-Grenzhausen.
 Präsentation transkript:

Realisierung verteilter Anwendungen: Teil 5 zBeim vorigen Mal: yObjektmigration (Voyager) ySpontane Vernetzung (Jini) zInhalt heute yDynamische Datenbankanfragen (JDBC) yMehrschichten-Architekturen zLernziele: yGrundlagen von JDBC zum Datenbankzugriff yMotivation von Mehrschichten-Architekturen Ralf Möller, Universität Hamburg, Fachbereich Informatik

Dienste in einer Umgebung Internet gateway PDA service Music service Discovery Alarm Camera Guests devices Laptop TV/PC Hotel wireless network

Jini: Registrierung

Jini: Lookup und Leasing

Dienste: Beispiel Baseball zpublic class Ball extends UnicastRemoteObject implements RemoteBall ServiceIDListener { ypublic Ball throws RemoteException { super(); } ypublic void serviceIdNotify(ServiceID id) { System.out.println("ServiceId is " + id); } ypublic hit() { System.out.println("Ball has been hit.") } z}

Das Anmelden von Diensten (2) zpublic class BallStarter { ypublic static void main(String[] args) { try { xSystem.setSecurityManager(new RMISecurityManager ()); xRemoteBall ball = new Ball(); xLeaseRenewalManager renewal = new LeaseRenewalManager(); xEntry[] attributes = new Entry[]{ new Name("Jini enabled ball") }; xJoinManager join = new JoinManager(ball, attributes, (Ball) ball, renewal); xSystem.out.println("Ball started and registered at Lookup-Server"); y} catch (Exception e) { e.printStackTrace(); } y} z}

Lookup von Diensten: Suche durch Muster zKlasse ServiceTemplate und entspr. Konstruktor zÜbergabe an Konstruktor entweder yeines ServiceID-Objekts yoder einer Service-Beschreibung: xeiner Menge von Klassen xoder einer Menge von Attribut-Wert-Paaren yBeispiel mit Service-Beschreibung als Klasse: xClass[] classes = new Class[] { RemoteBall.class }; xServiceTemplate template = new ServiceTemplate(null, classes, null);

Zugriff auf den Dienstvermittler zRepräsentation des Dienstvermittlers als Objekt zDienstvermittler enthält Registratur zSuchmuster wird an Registratur übergeben zBeispiel: yLookupLocator l = new LookupLocator("jini://sun"); yServiceRegistrar r = l.getRegistrar(); yRemoteBall b = (RemoteBall) r.lookup(template);

Aufruf eines Dienstes (1) zimport java.rmi.* zimport net.jini.core.discovery.*; zimport net.jini.core.lookup.*; zpublic class Bat { ypublic void play(RemoteBall ball) { try { ball.hit(); System.out.println("I hit the ball"); } catch (RemoteException e) { System.out.println(e) } }

Aufruf eines Dienstes (2) ypublic static void main(String[] args) { xBat bat = new Bat(); xtry { System.setSecurityManager(new RMI SecurityManager ()); x LookupLocator locator = new LookupLocator("jini://sun"); x ServiceRegistrar registrar = locator.getRegistrar(); x Class[] classes = new Class { RemoteBall.class }; x ServiceTemplate template = new ServiceTemplate(null, classes, null); x RemoteBall b = (RemoteBall) registrar.lookup(template); x bat.play(b); x} catch (Exception e) { x e.printStackTrace(); x} y}}

Leasing zpublic interface Lease { ylong getExpiration(); yvoid renew (long duration) throws LeaseDeniedException, UnknownLeaseException, RemoteException; yvoid cancel() throws UnknownLeaseException, RemoteException; z} zVorher verwendete Klasse LeaseRenewalManager erneuert Leasing-Verträge automatisch

Datenbanken in verteilten Systemen zDatenbanken zur Kopplung von verteilten Systemen zWeitverbreitet: Relationale Datenbanken zJDBC: Anbindung von Java an Relationale DBen yJava DataBase Connectivity yEntwicklung aus ODBC (Open DataBase Connectivity) zJDBC als Protokoll konzipiert zBequemer für Nutzer durch API yFester Bestandteil der Sprache Java

Aufbau und Struktur von JDBC : Treibermanager Datenbanktreiber ADatenbanktreiber B JDBC Treibermanager Java Anwendung

Aufbau und Struktur von JDBC: Treiberarten Datenbank-API JDBC-Treiber-API JDBC/ODBC Bridge-Treiber ODBC-Treiber Spezifischer Treiber Native Code Universeller Treiber Native Code Direkter Treiber

Registrierung eines JBDC-Treibers ztry { Class.forName("org.gjt.mm.mysql.Driver") } catch (ClassNotFoundException cnfe) { System.out.println("Cannot load driver"); } zAuch: oracle.jdbc.driver.OracleDriver

Verbindungsaufbau zu Datenbank DriverManager Connection Statement ResultSet

Verbindungen zConnection con; ztry { con = DriverManager.getConnection( "jdbc:odbc://vodka.fh-wedel.de/Db", username, password); } catch (Exception e) { System.out.println(e); }... zcon.close();

Anfragen und Antworten zStatement stmt = con.createStatement(); zString query = "SELECT * FROM Table"; zResultSet results = stmt.executeQuery(query); zBoolean bool = stmt.executeUpdate( "INSERT INTO Table VALUES ('a', 'b', 'c')"); zwhile (results.next()) { yString attr1=results.getString(1); yString attr2=results.getString(2); ySystem.out.println(attr1 + attr2); z}

Das Client-Server-Modell

zClient-Software muß immer wieder neu entwickelt werden zSpezielle Tools für spezielle Geräte erforderlich zSoftware muß für jedes Gerät installiert und konfiguriert werden

Das Client-Server-Modell zClients greifen direkt auf Unternehmensressourcen zu zSicherheitsprobleme zÄnderungen der Technologie kann Clients ausschließen zKapazitäts- und Verfügbar-keitserhöhung schwierig

Enterprise Services

zNeue Schicht zwischen Kunden und Ressourcen zSchnittstelle auf der Service-Ebene zAnsatzpunkt für Sicherheit, Lastverteilung und Fehlererholung

Enterprise Services

Komponentenorientierte Systemkonstruktion

zKomponenten vs. Objekte zInstanzenbasierte Systemkonstruktion zEreignisverwaltung zSuche und Einbettung von Komponenten zSpezifikation der Leistungen einer Komponente zMeta-Protokoll yAttributanzeige yInitialisierung

Database Integration using JavaServer Pages (JSP) Chád (shod) Darby J9 CONSULTING j-nine.com Nachfolgende Folien über JSP übernommen aus:

Java Server Pages: RainForest - Video Store

Rain Forest - Video Store

What are Java Server Pages (JSP)? zA Java Server Page is yAn HTML page with embedded Java code  Files have a.jsp extension yLoosely similar to server-side includes zJSP can be used to yReplace traditional CGI processing yAccess enterprise services (RMI, CORBA, JDBC) yCreate an HTML interface for web-based applications

Simple JSP File Welcome to the Weather Site Today’s date is simple.jsp The Java code is placed inside of a “scriplet tag”

How is the JSP file Processed? Web Browser Client Web Server JSP file 1. File is loaded 2. Compiled to servlet (only once) 3. Contents executed 4. Results included in HTML file HttpRequest HTML Page zClient sends HttpRequest using URL of JSP yhttp://localhost:8080/simple.jsp zJSP returns a plain HTML page.

Output of simple.jsp Welcome to the Weather Site Today's date is Mon Mar 22 01:22:46 EST 1999 Output of simple.jsp Result of

JSP Design Goals zEmphasize Components yReusable code placed in components or JSP Beans yAllows separation of web page design from component development Web Page Designer HTML Expert Component Developer Java Expert

JSP Design Goals (cont) zProvide a gateway to enterprise services JSP file DB Socket Server RMI CORBA EJB JDBC Sockets Web Browser Client Web Server

JSP Design Goals (cont) zMake dynamic web sites easy to build yJSP file is simply an HTML file yEmbedded code can call reusable components for dynamic content yA web page designer can create a dynamic page with very little Java programming knowledge.

JSP…A Radical New Breakthrough? zNot really yResembles Microsoft’s Active Server Pages (ASP) zSo why JSP? yWould you rather program in VBScript or Java? yGain full features of Java (networking, JDBC, etc) ySupported by many servers

Enterprise Java Beans (EJB) Teile von einigen der nachfolgenden Folien wurden übernommen aus: VL Anwendungssysteme Gerald Weber

Und beim nächsten Mal... z... gibt's mehr über: zServlets zMultitier-Architekturen (J2EE) yKomponentenorientierte Softwarekonstruktion (Beans) yEnterprise Java Beans