Einordnung von Middleware

Größe: px
Ab Seite anzeigen:

Download "Einordnung von Middleware"

Transkript

1 Middleware-Technologien SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 1 Einordnung von Middleware??? Client Netzwerk Server Applikation (Such-)Dienste, Web-Shop,... Kataloge, Dienste, Mall, Bank,... Software Web-Browser, Applet,... Middleware, Internet,... Web-Server, Datenbank-S.,... Hardware PC, Laptop, Handy,... Festnetz, Funknetz,... Unix-Rechner,... Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 2 Prof. Dr. Stefan Böttcher 1

2 IT- und TK-Infrastruktur??? Client Netzwerk Server Applikation (Such-)Dienste, Web-Shop,... Kataloge, Dienste, Mall, Bank,... Software Web-Browser, Applet,... Internet,..., Middleware Web-Server,..., Application-Server Hardware PC, Laptop, Handy,... Festnetz, Funknetz,... Unix-Rechner,... Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 3 Multi-Tier-Middleware-Architektur Benutzeransicht Eingabe Datenbank Präsentation (View) Middleware Business- Logik DB-Zugr. Programm Client Server Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 4 Prof. Dr. Stefan Böttcher 2

3 Überblick: Middleware-Technologie Client Middleware Server Java-Remote Methode Invocation (RMI) Enterprise Java Beans (EJB) Common Object Request Broker Architecture (CORBA) Simple Object Access Protocol (SOAP) Sprachen auf Client und Server können verschieden sein Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 5 Überblick: Middleware-Technologie Client Middleware Server Java Java-RMI Java oder EJB JNI JNI alle Sprachen alle Sprachen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 6 Prof. Dr. Stefan Böttcher 3

4 Überblick: Middleware-Technologie Client Middleware Server alle alle Sprachen CORBA Sprachen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 7 Überblick: Middleware-Technologie Client Middleware Server viele Sprachen viele Sprachen XML SOAP XML Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 8 Prof. Dr. Stefan Böttcher 4

5 Software zur Vernetzung Internet-Technologien Web-Client Web-Server Dokumentsprachen Datenbankkopplung Andere Middleware ( CORBA, Java-RMI, SOAP, EJB,... ) Client-Technologie Server-Technologie... (unterschiedliche weitere T.) Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 9 Überblick über Middleware? Client Middleware Server Middleware = womit Client und Server kommunizieren Java-RMI : Java CORBA : Java, C++,... (alle Sprachen) SOAP : XML & Java, XML & Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 10 Prof. Dr. Stefan Böttcher 5

6 RMI und Datenbank-Kopplung Java Remote Methode Invocation (RMI) Applets JDBC Connection Pooling Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 11 RMI und Objektserialisierung RMI: Aufruf von Methoden in entfernt definierten Klassen RMI-Server RMI-Client RMI-Verbindung Registrierung via rmiregistry RMI-Compiler erzeugt aus Klassen Stubs und Skeleton-Klassen Binden der Objekte, dann Aufruf wie bei lokalen Objekten Serialisierung: Objekte werden als Datenstrom übertragen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 12 Prof. Dr. Stefan Böttcher 6

7 import java.rmi.*; RMI-Code (Client) Entfernter Server (Typ=interface) public class Bank { public interface RemoteBank extends Remote { public String conc(string s1, String s2) throws RemoteException ; // interface für Server // was Server bietet public static void main(string[] args) { try { // Suche Server mit Name "bankname" RemoteBank bank = // Serverobjekt (RemoteBank) Naming.lookup("rmi:// /bankname"); String ret = bank.conc(args[0], args[1]); // Aufruf an Serverobjekt System.out.println(ret) ; // Fange und zeige RMI-Exceptions catch (Exception e) { System.out.println(e); // main Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 13 IP Servicename import java.rmi.*; import java.rmi.server.*; import Bank.*; RMI-Code (Server) // lade das Interface für RemoteBank public class RemoteBankServer extends UnicastRemoteObject implements RemoteBank { public RemoteBankServer() throws RemoteException { super(); // Implementierung der Remote-Methode conc aus Interface RemoteBank public synchronized String conc (String s1, String s2) throws RemoteException { System.out.println( s1 + " :: " + s2 ) ; return s1+s2 ; public static void main(string[] args) { try { RemoteBankServer bank = new RemoteBankServer(); // erzeugt Serverobjekt Naming.rebind("bankname", bank); // sein Name ist "bankname" System.out.println("bankname ist bereit."); catch (Exception e) { System.err.println(e); Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 14 Prof. Dr. Stefan Böttcher 7

8 RMI: Arbeitsweise / Codegenerierung 1. Alle Java-Programme übersetzen: javac *.java 2. Das Server-Programm vorübersetzen mit rmic rmic RemoteBankServer erzeugt Code zum Datentransfer über das Netz 3. Einen Registrierungsprozeß für rmi-server starten Fenster1: rmiregistry 4. Das Server-Programm starten Fenster2: java RemoteBankServer 5. Das Client-Programm starten Fenster3 (evtl. auf einem anderen Rechner): java Bank ab xy Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 15 Eingabe 3-Tier-Architecktur mit RMI Produktdatenbank HTML- Seite Browser Applet RMI Business- Logik (Java) RMI DB-Zugr. Programm Client Application-Server DB-Server + Session-Konzept erlaubt zwischenzeitliche Interaktion + Last zwischen Client und Applicationserver frei verteilbar + in der Regel geringere Serverlast (verteilt auf 2 Server) +/- Client muß Java-fähige Browser nutzen - Server müssen Java-fähige Schnittstelle bieten (Java/Corba) Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 16 Prof. Dr. Stefan Böttcher 8

9 RMI: Übung 1. Kopieren Sie die RMI-Programme (z.b. vom Dozentenrechner) in ein Verzeichnis auf Ihrem Rechner und ändern Sie Bank.java so, daß die IP Ihres Rechners eingetragen ist. 2. Alle Java-Programme übersetzen: > javac *.java 3. Das Server-Programm vorübersetzen mit rmic > rmic RemoteBankServer erzeugt Code zum Datentransfer über das Netz 4. Einen Registrierungsprozeß für rmi-server starten Fenster1: > rmiregistry 5. Das Server-Programm starten Fenster2: > java RemoteBankServer 6. Das Client-Programm starten Fenster3 (evtl. auf anderem Rechner): > java Bank ab xy Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 17 Applet-Parameter lesen In der HTML-Datei: <Applet code= applet4.class width= 400 height= 200 > < Param name= filiale value= Frankfurt am Main > </Applet> Nutzung in applet4.java: String filialort = ; try { filialort = getparameter( filiale ) ; catch ( Exception e ) { Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 18 Prof. Dr. Stefan Böttcher 9

10 Applet-Parameter lesen (2) import java.awt.*; import java.applet.*; public class applet4 extends Applet { String ausgabe ; String filialort = " " ; Label l = new Label ("Ihr Wohnort: ") ; TextField tf = new TextField("",15) ; TextArea anzeige = new TextArea("",6,50); public void init() // wird 1x beim starten gerufen { try { filialort = getparameter("filiale") ; tf.settext( filialort ) ; catch (Exception e) { this.add( l ) ; this.add( tf ) ; this.add( anzeige ) ; public void paint (Graphics g) // bei jedem Neuzeichnen { ausgabe = "\nkaufen Sie am besten in unserer Filiale\n" + tf.gettext() ; anzeige.settext(ausgabe); // in die TextArea schreiben Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 19 Applet-Beispiel : alter import java.awt.*; import java.applet.* ; public class alter extends Applet { Label label = new Label("Ihr Alter bitte:") ; TextField tf = new TextField( 50", 3) ; TextArea ta = new TextArea("",4,70) ; public void init() { this.add(label) ; this.add(tf) ; this.add(ta) ; public void paint (Graphics g) { rechne() ; public void rechne () // aufgerufen von paint, also beim neu zeichnen { String ausgabe ; String salter = tf.gettext() ; try { // wandle String salter in int alter um : int alter = Integer.valueOf( salter ).intvalue() ; int gebjahr = alter ; ausgabe = "Sie sind " + gebjahr + " oder " + (gebjahr-1) + " geboren."; catch (Exception e) { ausgabe = "Zahl erwartet" ; ta.settext(ausgabe); //den Ausgabestring in die TextArea schreiben Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 20 Prof. Dr. Stefan Böttcher 10

11 Ereignisbehandlung in Applets ActionListener.ActionPerformed wird aufgerufen, wenn Knopf1 gedrückt wird oder bei Return im Textfeld. import java.awt.* ; import java.awt.event.* ; public class alter extends Applet { //... Button knopf1 = new Button( Button knopf1 ) ; TextField tf = new TextField ( TextField tfio ) ; public void init() { //... ActionListener gedrückt = new ActionListener() { public void actionperformed (ActionEvent e) { rechne() ; ; // das soll geschehen knopf1.addactionlistener(gedrückt); // wenn knopf1 gedrückt tf.addactionlistener(gedrückt); // oder bei Return in tfio Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 21 Java-Archive Zusammenfassung mehrere übersetzter Java-.class-Files Erzeugen mit: C:\java> jar cf sammlung.jar *.class [evtl. weitere Dateien] Jar-File verwenden im Applet-Tag: <Applet archive= sammlung.jar code= applet1.class width= 400 height= 200 > </Applet> applet1.class wird gestartet in sammlung.jar werden alle benötigten Klassen gesucht Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 22 Prof. Dr. Stefan Böttcher 11

12 Was ist und was bietet JDBC Paket von Java-Klassen zum DB-Zugriff mit SQL vom Ziel-DBMS unabhängige API Standard seit Java 1.1 Java-Programm JDBC: API Treibermanager Treiber Zieldatenbanksystem Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 23 Java-Interfaces von JDBC SQLDriver : Treiber für ein Ziel-DBMS oder ODBC SQLDriverManager : registriert Treiber Connection : Für Verbindungen Statement : für Statement-Objekt, z.b. Query ResultSet : für Ergebnismenge Die Klassen zu diesen Interfaces werden von DB-Herstellern implementiert JDBC-ODBC-Brücke wird von SUN mitgeliefert Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 24 Prof. Dr. Stefan Böttcher 12

13 Datenbankzugriffe mit JDBC Treiber laden Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Verbindung herstellen con = DriverManager.getConnection("jdbc:odbc:odbc2access"); Statement-Objekte definieren Statement stmt = con.createstatement() ; Datenbank zugreifen, z.b. einfügen stmt.executeupdate( insert into Liefert values( IBM, pc500, 2500,6) ); Statement und Verbindung zum DBMS schließen stmt.close( ) ; con.close( ) ; Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 25 Datenbank-Anfragen mit JDBC Class c = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:odbc2access"); Statement stmt = con.createstatement() ; Datenbankanfrage stellen ResultSet rsliefert = stmt.executequery( select * from Liefert where Teil = pc500 ); while ( rsliefert.next( ) ) // hole nächstes Tupel aus Result-Set { ausgabe += rsliefert.getstring( "Lieferant" ) ; // ggf. weitere Spalten ausgeben stmt.close( ) ; con.close( ) ; Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 26 Prof. Dr. Stefan Böttcher 13

14 Zugriff auf Unix-Datenbanken Treiber laden Class c = Class.forName( com.sybase.jdbc.sybdriver"); Verbindung herstellen con = DriverManager.getConnection("userid", "password", "jdbc:sybase:tds:beethoven.uni-paderborn.de:4100/kunden"); Internetadresse Port Datenbank Alles weitere wie für Access: Statement-Objekt definieren, Datenbank zugreifen, Statement und Verbindung zum DBMS schließen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie CORBA Einführung IDL Java-Binding Name-Service Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 28 Prof. Dr. Stefan Böttcher 14

15 Überblick über Middleware? Client Middleware Server Middleware = womit Client und Server kommunizieren Java-RMI : Java CORBA : Java, C++,... (alle Sprachen) SOAP : XML & Java, XML & Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 29 Heterogene verteilte Anwendungen Vorführung Bezahlung Verkauf Auslieferung Katalog 1 Katalog n Versand Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 30 Prof. Dr. Stefan Böttcher 15

16 Common Object Request Broker Architecture (CORBA) CORBA- Anwendung BOA/POA C / Java /... unter Windows /... LapTop Client / Server Anwendungskommunikation Homogene Anwendungsebene Implementierungsdetails verborgen CORBA- Anwendung BOA/POA C++ / Fortran / Cobol /... unter Unix/... Unix-Rechner, Großrechner Server / Client Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 31 Verteilte Anwendungen und Dienste in Corba Anwendung Teil 1 (Server/Client) Anwendung Teil 2 (Client/Server) Object Request Broker (ORB) Namensdienst (CosNaming) Transaktionen (OTS) Security Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 32 Prof. Dr. Stefan Böttcher 16

17 Ziele und Konzepte von CORBA Portabilität Interoperabilität Objektorientierung Verteilungstransparenz Sprachtransparenz Integration von Alt-Code - auf andere Plattformen - Plattformübergreifende Programme - wie OOP, jedoch verteilt - entfernte Objekte über ORB - verschiedene Sprachen integrierbar ( C, C++, Cobol, Fortran, Java,...) - trennt Interface und Implementierung Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 33 Begriffe aus CORBA CORBA-Objekt Request Client Server Objektreferenz - besitzt eine Objektreferenz und ist dadurch lokalisierbar vom ORB, besitzt Interface, seine Methoden können aufgerufen werden - Aufruf einer Methode für ein Objektes incl. (ggf.) Rückgabe des Ergebnisses - ruft Methode für ein Objekt auf - Programm, in dem das Objekt lebt, das den Methodenaufruf erhält - Nummer, die ein Objekt eindeutig identifiziert Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 34 Prof. Dr. Stefan Böttcher 17

18 Interface Definition Language (IDL) module Bank { interface Konto { readonly attribute float kontostand; float einzahlen(in float betrag);... beschreibt Dienst / Interface ( Was wird geboten ) aus IDL werden Skeletons und Stubs für verschiedene Implementierungssprachen und Aufrufsprachen generiert Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 35 Grundidee: Aufrufe über Proxies CORBA-Client bzw. RMI-Client Client-Aufruf:... = Obj1.einzahlen(50); CORBA-Server Bzw. RMI- Server Server-Anwendung: Obj1 float einzahlen(...) {... Client-Stub:....einzahlen(50); Server-Skeleton:....einzahlen(50); Object Request Broker (ORB) bzw. RMI-Verbindung Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 36 Prof. Dr. Stefan Böttcher 18

19 Rückgabewerte über Proxies CORBA-Client Client-Aufruf:... = Obj1.einzahlen(50); CORBA-Server Server-Anwendung: Obj1 float einzahlen(...) {... Client-Stub:....einzahlen(50); Server-Skeleton:....einzahlen(50); Object Request Broker (ORB) Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 37 Objektreferenzen identifizieren Objekt eindeutig können null sein oder auf nicht-existente Objekte zeigen sind typisiert verbergen die Objekt-Lokation unterstützen spätes Binden können persistent sein sind interoperabel Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 38 Prof. Dr. Stefan Böttcher 19

20 Web-Anbindung von Altanwendungen Browser HTML-Seite Applet OA,Stub,... Web-Aufruf Implementierungsdetails verborgen Object Request Broker (ORB) Web-Server (http) Altanwendung (Cobol,...) OA,Skeleton,... Client CORBA-Server Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 39 Interoperabilität Jede CORBA-Implementierung unterstützt IIOP ( Internet Inter-ORB Protocol ), d.h. sie kann IOR ( interoperable Objektreferenzen ) erzeugen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 40 Prof. Dr. Stefan Böttcher 20

21 Interface Definition Language (IDL) module Bank { interface Konto { readonly attribute long kontonummer; readonly attribute float kontostand; float einzahlen(in float betrag); beschreibt Dienste / Interfaces ( Was wird geboten ) aus IDL werden Skeletons und Stubs für verschiedene Implementierungssprachen und Aufrufsprachen generiert Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 41 Java Binding (Abbildung IDL Java) package Bank; // Java public interface Konto { extends KontoOperations public interface KontoOperations { int kontonummer (); float kontostand (); float abheben (float betrag);... module Bank { IDL interface Konto { readonly attribute long kontonummer; readonly attribute float kontostand; float einzahlen(in float betrag); Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 42 Prof. Dr. Stefan Böttcher 21

22 idlj generiert Interfaces und Code BankClient einzahlen(50); Uses ObjRef of interface Konto class _KontoStub CORBA-Client interface Konto { > idlj Bank.idl Object Request Broker (ORB) Altcode class KontoImpl einzahlen(int b){... extends class _KontoImplBase interface Konto BankServer CORBA-Server Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 43 implements uses Object of Verteilte Dienste laufen lassen 3. BankClient einzahlen(50); interface Konto class _KontoStub Object Request Broker (ORB) Namensdienst ( > tnameserv ) class KontoImpl einzahlen(int b){... class _KontoImplBase interface Konto BankServer 2. Suchen (resolve) 1. Anmelden (bind) Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 44 Prof. Dr. Stefan Böttcher 22

23 IDL Abbildung IDL Java Java Bezeicher abc, new Bezeicher abc, _new Modul module M1 {... ; Paket package M1; Basistypen long, float, string int, float, java.lang.string interface I {... ; public interface IOperations{ public interface I extends IOperations,... readonly attribute long a ; public int a() ; attribute long a ; public void a(int x) ; zusätzlich long f1(in long x) raises (Ex); public int f1(int x) throws Ex ; f2(inout float y) ; public void f2(floatholder y) ; Nutzung in Java: FloatHolder h = new FloatHolder(); h. value = 77 ; f2( h ) ; System.out.println( h. value ) ; Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 45 Namensauflösung Serverobjekte haben Objektreferenzen (IOR) Wie findet der Client ein Serverobjekt? Client sucht Dienste über Namen Ł Namensauflösung (über initial service CosNaming) heute Standard IOR über Fremdkanal zum Client schicken (Webserver, Mail,... ) erfordert mehrere Kommunikationswege Ł umständlich Bind Variante Ł Zugriff über CosNaming wird verborgen ( z.b. Visibroker ) Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 46 Prof. Dr. Stefan Böttcher 23

24 Namensauflösung mit Namensdienst Namensdienst : initaler Service Ł Client erfährt IOR bei ORB-Initialisierung Namensraum : hierarchisch (ähnlich Unix-Dateisystem) jeder Name wird gebunden und gesucht in einem Kontext (~Verzeichnis) Pfadaufbau zum Namen beginnt beim Root-Kontext Server: Namen binden an (bind) und lösen von (resolve) Diensten ( Dienste (=Objekte) leben unabhängig von ihren Namen weiter ) Client: Über Namen mit Namensdienst Objektreferenz suchen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 47 Dynamisches Einbinden von Code Interface Repository ( IR ) speichert interfaces kann dynamisch neue Interfaces hnzufügen Dynamic Invocation Interface ( DII ) erlaubt die Konstruktion von Requests für Interfaces, die zur Compilezeit noch nicht bekannt sind Dynamic Skeleton Interface ( DSI ) erlaubt die Behandlung von zur Compilezeit unbekannten Operationen Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 48 Prof. Dr. Stefan Böttcher 24

25 Überblick: ORB-Schnittstellen Client Server ORB Interface Statische Stubs Dynamic Invocation Interface ORB Interface Statische Skeletons Dynamic Skeleton Interface ORB Kern (Client) ORB Kern (Server) Netzwerk Datenbanken und Informationssysteme 2 - SS Middleware - Prof. Dr. Stefan Böttcher Folie 49 Prof. Dr. Stefan Böttcher 25

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Kommunikation. Björn und Georg

Kommunikation. Björn und Georg Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges

Mehr

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

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote Methode Invocation (RMI) ETIS SS05 Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

Mehr

Middleware. im Schweinsgalopp

Middleware. im Schweinsgalopp Middleware im Schweinsgalopp 1 Szenario Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web- Schnittstelle Daten im ERP

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte von Betriebssystem-Komponenten Middleware RMI Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären.

1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären. CORBA Lernziele 1. Sie können die zentrale Idee und Bedeutung einer Schnittstelle, wie sie schon im RPC verwendet wird, erklären. Zentrale Idee: Schnittstelle: - mit einer Schnittstelle beschreibt man

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Beispiel: Web-Shop??? Applikation Software Hardware Client Web-Shop,... Web-Browser mit Applet,...

Mehr

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Java Remote Method Invocation (RMI)

Java Remote Method Invocation (RMI) Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme Beispiel: Web-Shop SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Applikation Software Client Web-Shop,... Web-Browser mit Applet,...??? Server Produkt- Datenbank Web-Server, Servlet Datenbank,...

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme Titel CORBA Eine Middleware-Plattform für objektorientierte Technologien von Martin Villis 6. Mai 2004 Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

8.1.5 Java RMI Remote Method Invocation

8.1.5 Java RMI Remote Method Invocation 8.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi ) (http://java.sun.com/j2se/1.5/docs/guide/rmi ) (http://java.sun.com/docs/books/tutorial/rmi ) (http://java.sun.com/developer/onlinetraining/rmi/rmi.html

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

3.2 Der CORBA-Standard Common Object Request Broker Architecture

3.2 Der CORBA-Standard Common Object Request Broker Architecture 3.2 Der CORBA-Standard Common Object Request Broker Architecture (Bildquelle: OMG) Kapitel 3.2: Vorlesung CORBA 1 CORBA Middleware im Ueberblick G CORBA = Common Object Request Broker Architecture. Standard

Mehr

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Partly based on material by Victor García Barrios and Paul Krzyzanowski

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Definition Web Service

Definition Web Service Gliederung Einführung Definition Web Service Drei Schhichtenmodell Architectural Model System Model Web Service Standards SOAP WSDL UDDI Types of Web Services Programmatic Web Services Interactive Web

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme II Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

Mehr

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1

Corba. Systemprogrammierung WS 08 / 09. 21.01.09 Roginer - Fontana - Heinisch 1 Corba Systemprogrammierung WS 08 / 09 21.01.09 Roginer - Fontana - Heinisch 1 Gliederung Definition Historie RPC Eigenschaften Architektur IDL-Beispiel Anwendungen OMA Services Facilities Client-Server

Mehr

Java-Datenbankzugriff mit JDBC

Java-Datenbankzugriff mit JDBC Java-Datenbankzugriff mit JDBC Vorlesungsmaterial zu JDBC von Prof. Dr. Stefan Böttcher Inhaltsverzeichnis: 1. Praktische Hinweise zum Arbeiten mit JDBC, ODBC und dem Datenbanksystem 2. Übungsaufgaben

Mehr

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik Udo Matthias Munz Datenbanken und SQL mit Einführung Informationstechnik Zugriff auf eine Datenbank... 2 ODBC... 2 Eine DSN einrichten... 3 Verbindung zu einer Datenbank... 4 Datenbank... 4 Metadaten der

Mehr

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

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006 Aufkleber Name: Vorname: Matrikel: Studiengang: inkl. DPO4, B/M, Schwerp., Schreiben Sie zunächst Ihren Namen

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 16 RMI, DCOM, Webservices cs 1100 ww6 sch 05-97 Remote Method Invocation (RMI) JVM JVM Client Server Stub Java Remote Skeleton Method

Mehr

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz.  Institut für Angewandte Informatik Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Architekturen Internet-basierter Informationssysteme

Architekturen Internet-basierter Informationssysteme Architekturen Internet-basierter Informationssysteme Statische vs. dynamische Information im Web Realisierungsansätze Applikationsserver Java-Applets CGI-Programme Verteilte Anwendungen Folie 1 Statische

Mehr

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion

explizite, orthogonale Interaktion Verteilte Anwendungen und Middleware uniforme / nicht-uniforme Interaktion implizite, nicht-orthogonale Interaktion Verteilte Anwendungen und Klassifikation von Interaktionsformen explizit implizit orthogonal nicht-orthogonal uniform nicht-uniform transparent nicht-transparent explizite, orthogonale Interaktion weit

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung Client/Server-Programmierung WS2007/08 EJB/JSP: Schritt-für-Schritt Anleitung Version 1.1, 26.09.07 Eingesetzte Software: - Apache Tomcat 5.5.9 bzw. 5.5.12 (http://tomcat.apache.org/download-55.cgi#5.5.12)

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Kap. 3 Verteilte Objektverwaltung

Kap. 3 Verteilte Objektverwaltung Kap. 3 Verteilte Objektverwaltung G 3.1Einführung in die verteilte Objektverwaltung (Distributed Management, DOM) Anforderungen Kurzübersicht Java RMI Microsoft COM+ CORBA G 3.2Der CORBA-Standard G 3.3Iona

Mehr

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Remote-Programmierung. www.kit.edu. Institut für Angewandte Informatik Programmieren II Remote-Programmierung KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote-Programmierung Remote Method Invocation

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

6.9 Java Server Pages

6.9 Java Server Pages DocumentCollection dc = db.ftsearch(abfrage); Document d = dc.getfirstdocument(); while (d!= 0) { String Name = db.gettitle(); out.println(name + ""); d = dc.getnextdocument(); catch (NotesException

Mehr

JDO Java Data Objects

JDO Java Data Objects JDO Java Data Objects Ralf Degner, Chief Consultant Ralf.Degner@poet.de Agenda POET Motivation Geschichte Einführung Architekturen FastObjects POET Gegründet 1993 Zwei Produktlinien esupplier Solutions:

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets - Praktikum Datenbanken und verteilte Systeme SS 2008 - Java Server Pages und Servlets - Verteilte Systeme und Informationssysteme (VSIS) Department Informatik Universität Hamburg Infrastruktur vsispoolx

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

J a v a S e r v l e t s

J a v a S e r v l e t s J a v a S e r v l e t s Eine Einführung (C) J.M.Joller 1 Inhalt Mitgelieferte Bibliothekselemente Überblick Funktionsweise und Architektur Interaktion Resümee (C) J.M.Joller 2 Überblick Was sind Servlets?

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Part 4 - Schnittstellen-Konzept (interface) Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Überblick über die Roblet -Technik

Überblick über die Roblet -Technik Überblick über die Roblet -Technik Hagen Stanek gefördert durch Agenda Teil 1: Motivation, Einführung Teil 2: Beispiel-Vorführung Teil 3: Anwendungen, Zusammenfassung 2 Teil 1 Motivation, Einführung 3

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Java Server Pages (JSP)

Java Server Pages (JSP) Überblick über Internet-Technologien Server-Technologien Datenbankkopplung Servlets JSP PHP CGI XML+XSL Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver HTML+Javascript HTML+Applets

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Kap. 3 Verteilte Objektverwaltung

Kap. 3 Verteilte Objektverwaltung Kap. 3 Verteilte Objektverwaltung 3.1 Einführung in die verteilte Objektverwaltung (Distributed Object Management, DOM) Anforderungen Kurzübersicht Java RMI Microsoft COM+ CORBA 3.2 Der CORBA-Standard

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 8

Praktikum aus Softwareentwicklung 2, Stunde 8 Praktikum aus Softwareentwicklung 2, Stunde 8 Lehrziele/Inhalt 1. Remoting Remoting Über Remoting können Objekte über JavaVMs hinweg miteinander kommunizieren. Das ist auch mit Socket-Programmierung möglich.

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Der IBM Websphere Portalserver

Der IBM Websphere Portalserver Der IBM Websphere Portalserver Ergebnisse aus dem Universitäts-Praxis-Projekt 2001/2002 Vortrag von Il-Hyun Kim und Horst Rechner am 19. Juli 2002 Weiterer Teilnehmer am UPP: Clemens Oertel Betreuer: Dipl.-Phys.

Mehr

Middleware. Host. Versuch einer Einleitung. dumme Terminals stellen Ausgaben dar und nehmen Eingaben an

Middleware. Host. Versuch einer Einleitung. dumme Terminals stellen Ausgaben dar und nehmen Eingaben an Middleware Versuch einer Einleitung Host dumme Terminals stellen Ausgaben dar und nehmen Eingaben an Mainframe enthält vollständige Anwendung Typ. COBOL, C Mainframe contd.! Nachteile! Mainframe ist teuer

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131 Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr