Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Realisierung verteilter Anwendungen: Teil 5 zBeim vorigen Mal: yObjektmigration (Voyager) ySpontane Vernetzung (Jini) zInhalt heute yDynamische Datenbankanfragen."—  Präsentation transkript:

1 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

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

3 Jini: Registrierung

4 Jini: Lookup und Leasing

5 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}

6 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}

7 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);

8 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);

9 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) } }

10 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}}

11 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

12 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

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

14 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

15 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

16 Verbindungsaufbau zu Datenbank DriverManager Connection Statement ResultSet

17 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();

18 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}

19 Das Client-Server-Modell

20 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

21 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

22 Enterprise Services

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

24 Enterprise Services

25 Komponentenorientierte Systemkonstruktion

26

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

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

29 Java Server Pages: RainForest - Video Store

30 Rain Forest - Video Store

31 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

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

33 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.

34 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

35 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

36 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

37 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.

38 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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen