Systemarchitekturen für Verteilte Anwendungen. Implementierungsvarianten

Größe: px
Ab Seite anzeigen:

Download "Systemarchitekturen für Verteilte Anwendungen. Implementierungsvarianten"

Transkript

1 Systemarchitekturen für Verteilte Anwendungen Implementierungsvarianten , und Institut für Betriebssysteme und Rechnerverbund TU Braunschweig PD Dr. Christian Werner

2 1-2 Interprozess-Kommunikation Anwendungsprogramme leben in Prozessen. Ein Prozess ist ein Objekt des Betriebssystems, durch das Anwendungen sicheren Zugriff auf die Ressourcen des Computers erhalten. Einzelne Prozesse sind dazu gegeneinander isoliert. Damit zwei Prozesse Informationen austauschen können, müssen sie Interprozesskommunikation (interprocess communication, IPC) einsetzen. IPC basiert auf dem Austausch von Nachrichten (= Bitfolgen) Eine Nachricht wird von dem einem Prozess geschickt (dem Sender). Sie wird von einem anderen Prozess empfangen (dem Empfänger).

3 1-3 Synchroner vs. Asynchroner IPC Synchron: Sender und Empfänger blockieren beim Senden bzw. Empfangen, d.h., wenn ein Senden ausgeführt wird, kann der Prozess nur weiterarbeiten, nachdem das zugehörige Empfangen im anderen Prozess ausgeführt wurde. Wenn ein Empfangen ausgeführt wird, wartet der Prozess so lange, bis eine Nachricht empfangen wurde. Weniger effizient, aber leicht zu implementieren (Synchronisation beim Ressourcenzugriff wird gleich miterledigt). Asynchron: Das Senden findet nichtblockierend statt, d.h., der Prozess kann nach dem Senden der Nachricht sofort weiterarbeiten. Empfangen kann blockierend oder nicht-blockierend sein. Etwas komplizierter zu implementieren (Warteschlangen), aber effizienter.

4 1-4 Implementierungsvarianten Verteilter Anwendungen Anwendung Middleware Standard- Dienste (FTP, , vor allem WWW) TCP/UDP über IP

5 1-5 Überblick Sockets UDP/IP TCP/IP Middleware CORBA Java RMI Web Services

6 1-6 TCP/IP Protocol Stack Web browser, ,... Application protocols: HTTP, SMTP, FTP,... Applications Other user applications User space Application Programming Interface (API) IGMP RARP ICMP ARP TCP IP UDP RIP Transport OSPF Network OS kernel LAN DL technology WAN DL technology Data Link

7 1-7 Das Modell von IP Datagramme Einzelne, unabhängig voneinander weitergeleitete Pakete, die sich ihren Weg zum Ziel suchen Routing-Tabellen geben den Ausgang zu einem Ziel an Best effort -Dienst Keine Garantie für Auslieferung eines Pakets Korrekte Reihenfolge R2 yx R1 x yx yx DA,SA data Routing tables Router R1 DA Next hop y R3, R R5 R3 yx R4 yx Router R3 DA Next hop y R yx R6 y Router R6 DA Next hop y

8 1-8 IPv4-Adressen 32 bits Binäre und dezimale Darstellung Binary: Dotted decimal: Hierarchische Adressierung Netzwerk-Nummer + Netzmaske (Classless Interdomain Routing (CIDR), RFC 1519). Netzangabe: / oder alternativ /16 (16 = Länge der Netzmaske) Bildung von Netzhierarchien: IBR-Netz: / CIP-Pool im IBR-Netz: /26

9 1-9 Transportschicht: TCP und UDP Aufgabe der Transportschicht: Datentransport von einem Prozess auf einem Rechner zu einem (oder mehreren) anderen Prozessen auf anderen Rechnern im Internet Zwei Möglichkeiten Der grundlegende unzuverlässige Internetdienst genügt, dann verwende UDP. Er genügt nicht, dann verwende TCP.

10 1-10 Eigenschaften von TCP und UDP TCP setzt einen zuverlässigen Dienst auf IP auf: Paketauslieferung ist garantiert (bzw. der Sender erhält zumindest eine Fehlermeldung) Die Reihenfolge der eingehenden Pakete entspricht der Sendereihenfolge UDP garantiert dies nicht, ist aber dafür wesentlich schneller. Anwendungen für beide Protokolle?

11 1-11 Umsetzung von TCP TCP setzt vor allem die folgenden Protokollmechanismen ein, um die Effekte erzielen zu können Daten sind numeriert, so dass fehlende Daten schnell festgestellt werden können Mittels ACKnowledgements teilt der Empfänger den korrekten Empfang von Daten mit Mittels Timern stellt der Sender das Ausbleiben von ACKs fest

12 1-12 Das TCP/UDP API: Sockets Das Internet-API über der Transportschicht wird als Sockets bezeichnet. Ein Socket kann als Endpunkt einer Kommunikationsbeziehung betrachtet werden. Daten werden in Sockets abgelegt und durch Sockets empfangen. Es gibt in der Socket-Schnittstelle zwei grundlegende Typen von Sockets: Ein Socket, der wie das Ende einer Telefonverbindung funktioniert Ein Socket, der wie ein Briefkasten funktioniert Was bedeutet das? Sockets sind mehr oder weniger in jeder Programmiersprache erhältlich, u.a. in Java.

13 1-13 Sockets und TCP/UDP-Ports Ein Socket wird vor der Kommunikation mit einer TCP/UDP-Portnummer und einer IP-Adresse assoziiert. Dadurch kann ein bestimmter Prozess auf einem Rechner identifiziert werden. socket any port agreed port socket client Internet address = message other ports server Internet address =

14 1-14 Beispiel: Telnet-Server und Clients neptun.elc.ro hugo.int.fr zola.int.fr port: 3135 HTTP client TCP IP HTTP connection telnet port: 80 TCP connection : 3135, : 80 IP datagrams HTTP server TCP IP HTTP connection TCP connection : 5768, : 80 IP datagrams port: 5768 HTTP client TCP IP

15 1-15 Datagram Sockets Eine Nachricht, die durch einen UDP-Socket geschickt wird, wird nicht bestätigt bzw. bei Verlust automatisch erneut geschickt. Paketfehler können deshalb zum Verlust der Nachricht führen, ohne dass es die Anwendung bemerkt. Maximale Größe der Nachricht: Bytes; größere Nachrichten müssen in der Anwendung segmentiert bzw. re-assembliert werden! UDP-Sockets verwenden nicht-blockierendes Senden und blockierendes Empfangen.

16 1-16 Java API für UDP-Sockets Zwei wichtige Klassen: DatagramPacket DatagramSocket DatagramPacket enthält die zu sendende Information. DatagramSocket besitzt vor allem die Methoden send(datagrampacket) receive(datagrampacket) mit der offensichtlichen Funktionalität. Mehr Informationen finden sich in der API-Beschreibung unter im java.net-package.

17 1-17 Typische Struktur von UDP-Programmen Client create UDP socket Server create UDP socket create datagram create datagram buffer send datagram receive datagram create datagram buffer create and send datagram receive datagram

18 1-18 Ein UDP-Client import java.net.*; import java.io.*; public class UDPClient{ public static void main(string args[]){ try { DatagramSocket asocket = new DatagramSocket(); byte [] m = args[0].getbytes(); InetAddress ahost = InetAddress.getByName(args[1]); int serverport = 6789; DatagramPacket request = new DatagramPacket(m, args[0].length(), ahost, serverport); asocket.send(request); byte[] buffer = new byte[1000]; DatagramPacket reply = new DatagramPacket(buffer, buffer.length); } } asocket.receive(reply); System.out.println("Reply: " + new String(reply.getData())); asocket.close(); }catch (SocketException e){system.out.println("socket: " + e.getmessage()); }catch (IOException e){system.out.println("io: " + e.getmessage());}

19 1-19 Ein UDP-Server import java.net.*; import java.io.*; public class UDPServer{ public static void main(string args[]){ try{ DatagramSocket asocket = new DatagramSocket(6789); byte[] buffer = new byte[1000]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); asocket.receive(request); DatagramPacket reply = new DatagramPacket(request.getData(), request.getlength(), request.getaddress(), request.getport()); asocket.send(reply); } }catch (SocketException e){system.out.println("socket: " + e.getmessage()); }catch (IOException e) {System.out.println("IO: " + e.getmessage());} } }

20 1-20 Stream Sockets TCP-Sockets gestatten eine Datenstrom-orientierte Kommunikation. Daten werden in einem Strom geschrieben, der vom Partner in derselben Reihenfolge empfangen wird. Paketverluste werden von TCP abgefangen, d.h., Anwendungen erhalten Daten erst, wenn Sie wirklich korrekt (in der Reihenfolge) sind. Vor dem eigentlichen Datenaustausch muss zunächst eine Verbindung zwischen Client und Server aufgebaut werden. Verbindungen werden über die Port/IP-Adressinformation identifiziert.

21 1-21 Das TCP-Socket-API in Java Zwei wichtige Klassen: ServerSocket Socket EinServerSocket ist passiv und wartet nach dem Aufruf der accept-methode auf Verbindungsaufbauwünsche von Clients. EinSocket wird vom Client genutzt. Mittels des Konstruktors wird implizit eine Verbindung zu einem Server aufgebaut. Bei beiden Klassen kann man sich eine Referenz auf den Ein- bzw. Augabedatenstrom geben lassen. Datenströme können dann nach dem ganz normalen Java-Schema genutzt werden.

22 1-22 Typische Struktur von TCP-Programmen Client create Stream socket Server create Server socket connect write data on stream wait for connection read data from stream write data on stream read data from stream

23 1-23 Ein TCP-Client import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { try{ int serverport = 7896; Socket s = new Socket(args[1], serverport); DataInputStream in = new DataInputStream( s.getinputstream()); DataOutputStream out = new DataOutputStream( s.getoutputstream()); out.writeutf(args[0]); String data = in.readutf(); System.out.println("Received: "+ data) ; s.close(); }catch (UnknownHostException e){ System.out.println("Sock:"+e.getMessage()); }catch (EOFException e){system.out.println("eof:"+e.getmessage()); }catch (IOException e){system.out.println("io:"+e.getmessage()); } } }

24 1-24 Ein TCP-Server import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); Connection c = new Connection(clientSocket); } } catch(ioexception e) {System.out.println("Listen :" +e.getmessage());} } }

25 1-25 TCP Server (Forts.) class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientsocket; public Connection (Socket aclientsocket) { try { clientsocket = aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); this.start(); } catch(ioexception e) {System.out.println("Connection: +e.getmessage());} } public void run(){ try { // an echo server String data = in.readutf(); out.writeutf(data); clientsocket.close(); } catch(eofexception e) {System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) {System.out.println("IO:"+e.getMessage());} } }

26 1-26 Weitere Aufgaben des Programmierers Sockets stellen nur die grundlegenden Mechanismen zur Verfügung, es bleibt noch einiges zu tun: Implementierung komplexerer Systemmodelle wie Request-Reply (bei Client-Server) oder Gruppenkommunikation Vor allem aber die Notwendigkeit der homogenen Datenrepräsentation in heterogenen Umgebungen Dies sind die grundlegenden Techniken für komplexere Middleware wie RPC Java RMI CORBA

27 1-27 Datenrepräsentation und Marshalling Die meisten Anwendungen bzw. Middleware-Ansätze nutzen ein gemeinsames Datenformat. Notwendig wegen der Heterogenität der Umgebungen Unterschiedliche Hardwarearchitektur Verschiedene Betriebssysteme Verschiedene Programmiersprachen Unter Marshalling versteht man den Prozess der Transformation einer beliebigen Datenstruktur in eine übertragbare Nachricht: planieren der Datenstruktur (in eine zusammenhängende Nachricht) Übersetzung in das gemeinsame Format

28 1-28 Abbildung von Datenstrukturen auf Nachrichten Ein Nachricht steht zusammenhängend im Speicher und kann so übertragen werden. F I S C H E R \0 1 5 C A M P U S U 1 Eine Datenstruktur kann über den Speicher verteilt sein und so nicht übertragen werden. F I S C H E R \0 1 5 C A M P U S U 1

29 1-29 Datenrepräsentation Es gibt eine Reihe bekannter Ansätze für ein gemeinsames Netzdatenformat. Idee: Definiere eine Menge von abstrakten Datentypen und eine Kodierung (ein genaues Bit-Format) für jeden dieser Typen Stelle Werkzeuge zur Verfügung, die die abstrakten Datentypen in Datentypen der verwendeten Programmiersprache übersetzen Stelle Prozeduren zur Verfügung, die die lokalen Darstellungen der Datentypen in das kodierte Format übersetzen Zur Laufzeit: wenn ein bestimmter Datentyp übertragen werden soll, rufe die Kodierfunktion auf und übertarge das Ergebnis Auf der Empfängerseite: dekodiere den Bit-String und erzeuge eine neue lokale Repräsentation des empfangenen Typs

30 1-30 Abbildungsfunktionen Abstrakte Datentypen Übersetzung in Sprache X Übersetzung in Sprache Y Programm in Sprache X Kommunikation? Programm in Sprache Y Kodiere Nachricht Dekodiere Nachricht Nachricht in kodiertem Format

31 1-31 Bekannte Formate ASN.1 (ISO OSI) XDR (Internet RPC) CDR (CORBA) Java object serialization XML Zwei unterschiedliche Ansätze: Übertragung in binärer Form Übertragung als Text Beispiel ASN.1: This is the content Tag: Typ ID Länge der Daten Wert: kann selbst wieder strukturiert sein

32 1-32 Die Realität Zuerst die schlechte Nachricht: das sieht alles ziemlich kompliziert aus, und es ist es auch. Als Socket-Programmierer muss man sich um diese Dinge selbst kümmern. Die gute Nachricht: die Aufgabe einer Middleware ist es, genau diese komplizierten Mechanismen automatisch zu erledigen. Der Anwendungsprogrammierer sieht davon nichts mehr. Mehr dazu im nächsten Kapitel.

33 1-33 Middleware in Form verteilter Objektsysteme Lokales Objektsystem Verteiltes Objektsystem Rechner Prozess Objekt

34 1-34 Das Objekt-Modell System = Sammlung miteinander interagierender Objekte, von denen jedes aus einer Menge von Daten und einer Menge von Methoden besteht Wichtige Begriffe: Objektreferenz: die Adresse eines Objekt Schnittstellen: Definition der Zugangspunkte eines Objekts; definiert durch die Signatur der Methoden Aktionen: initiiert durch ein Objekt, das eine Methode eines anderen Objekts aufruft; resultiert in der Zustandsänderung von Objekten Exceptions: eine Möglichkeit, Fehler in einem Programm auf saubere Art und Weise zu behandeln Garbage Collection: Freigabe nicht mehr benutzten Speichers

35 1-35 Das verteilte Objektmodell Interagierende Objekte sind auf mehr als einen Prozess verteilt Begriffe: Entfernte Objektreferenz: die Adresse eines Objekts im ganzen verteilten System; muss eindeutig sein Entfernte Schnittstellen: die Schnittstelle eines entfernten Objekts, oft beschrieben in einer formalen IDL (interface definition language) Aktionen: Methodenaufrufe anderer Objekte können Prozessgrenzen überschreiten Exceptions: verteilte Ausführung des Systems erweitert das Spektrum möglicher Fehler

36 1-36 Entfernte und lokale Methodenaufrufe A remote invocation B local C invocation local E invocation local invocation D remote invocation F Rechner Prozess Objekt

37 1-37 Schnittstellen entfernter Objekte Die entfernte Schnittstelle gibt an, wie auf entfernte Objekte zugegriffen wird. Ihre Beschreibung enthält Den Namen der Schnittstelle Möglicherweise Datentypdefinitionen Die Signatur aller entfernt verfügbaren Methoden, bestehend aus - Dem Methodennamen - Ihrer Ein- und Ausgabeparameter - Ihrem Rückgabewert Jede Middleware besitzt eine eigene Sprache, um solche Schnittstellen zu beschreiben, die IDL.

38 1-38 Entferntes Objekt und Schnittstelle remoteobject Data remote interface m1 { implementation m2 m3 of methods m4 m5 m6

39 1-39 CORBA: Inhaltsübersicht Was ist CORBA? Einsatzgebiete von CORBA Verteilte Objektsysteme Architektur von CORBA Kommunikation zwischen Objekten CORBA IDL Entwicklung von CORBA-Anwendungen CORBA in Enterprise Applications CORBA-fähige Tools CORBA-Unterstützung in Java

40 1-40 Was ist CORBA? CORBA = Common Object Request Broker Architecture Zunächst einmal eine Spezifikation, keine Implementierung erstellt von der OMG (Object Management Group, einem Konsortium von zahlreichen Firmen und Organisationen Ziel: Standard für verteilte Objektsysteme, Interoperabilität versch. Implementierungen

41 1-41 Einsatzgebiete Vollständige verteilte Systemimplementierungen Service-Implementierungen, die von anderen Anwendungen netzweit genutzt werden können Erstellen von standardisierten Dienstschnittstellen für Legacy-Anwendungen, z.b. R/3, DB2, Oracle etc.

42 1-42 CORBA-Eigenschaften CORBA erlaubt das Schreiben von Anwendungen, die aus einer Sammlung heterogener verteilter miteinander kooperierender Objekte bestehen. Heterogen bedeutet hier, die Objekte können in versch. Programmiersprachen implementiert sein unter versch. Betriebssystemen laufen von unterschiedlichen Organisationen betreut werden

43 1-43 Architektur von CORBA Common Horiz. And Vert. Facilities Application Objects Distrib. Documents Informat. Managem. Systems Managem... Object Request Broker Naming Event Service Trader Persistence Security.. Common Object Services

44 1-44 Object Request Broker Zentrale Komponente von CORBA Hauptaufgabe: ermöglicht die für die Anwendung transparente Kommunikation von Objekten über das Netz lokale und entfernte Methodenaufrufe sehen praktisch identisch aus ORB sucht das Objekt für den Aufrufer Jeder Prozess mit CORBA-Objekten muss einen ORB besitzen. ORBs kommunizieren miteinander über das standardisierte GIOP bzw. IIOP im Internet.

45 1-45 Realisierung des ORB AO AO AO ORB GIOP/IIOP ORB ORB ORB AO Dienst Dienst

46 1-46 Application Objects Dies sind die eigentlichen Anwendungsobjekte. Sie werden vom Anwendungsentwickler geschrieben. AOs nutzen die ORBs, um miteinander zu kommunizieren und um die verschiedenen CORBA-Dienste zu anzusprechen. Erstellung von AOs behandeln wir etwas später.

47 1-47 CORBA-Dienste und Facilities CORBA definiert eine Reihe von Standarddiensten, die von Anwendungen verwendet werden können. Dadurch ergibt sich eine erhebliche Einsparung bei der Anwendungsentwicklung. Beispiele: Persistence Service: erlaubt das Speichern und Laden von Objekten auf nichtflüchtigem Speicher Naming Service: Finden von Objekten aufgrund des Namens Transaction Service: erlaubt das Durchführen von Transaktionen ( alle Aktionen oder keine ) Trader Service: Gelbe Seiten, Finden von AOs aufgrund von Eigenschaften Event Service: Entkopplung von Client und Server; asynchrone Kommunikation

48 1-48 Kommunikation zwischen Objekten Client X ruft Methode M von Y auf Objekt Y Methode M Object Request Broker (Core)

49 1-49 Virtuelle und tatsächliche Kommunikation Objektreferenz Client Server Stub Skeleton durch den ORB durchgeführt

50 1-50 CORBA IDL Die Implementierung von Objekten kann in verschiedenen Sprachen erfolgen. Die Schnittstelle muss jedoch auf standardisierte Weise erfolgen, damit jeder Nutzer eines Objekts weiß, wie er es ansprechen kann. Zu diesem Zweck wird in CORBA die Interface Definition Language (IDL) verwendet. Sie erlaubt die Beschreibung der Signaturen der Methoden eines Objekts sowie evtl. dazu benötigter Datentypen

51 1-51 IDL Syntax IDL-Beschreibung enthalten die folgenden Elemente Module: zusammengehörige Definitionen einer Anwendung, Schlüsselwort module Datentypen: Definition ähnlich wie in C Schnittstelle eines oder mehrerer Objekte: Schlüsselwort: interface innerhalb einer Schnittstellenbeschreibung: Methoden und Instanzvariablen, falls diese öffentlich sein sollen

52 1-52 Beispiel module QueueApp { struct PersonenInfo { string firstname; string lastname; int age; } } interface Queue { boolean enqueue(in PersonenInfo pi); PersonenInfo dequeue(); boolean isempty(); }

53 1-53 IDL Compiler Großer Vorteil einer standardisierten formalen Beschreibung einer Objektschnittstelle: sie ist automatisch behandelbar! Zum Beispiel lässt sich automatisch Code für eine Programmiersprache ableiten. Damit wird ein wesentlicher Schritt bei der Umsetzung des Designs in eine Implementierung automatisiert. Es gibt heute für sehr viele Programmiersprachen schon IDL-Compiler.

54 1-54 Ausgaben des IDL-Compilers Ein typischer IDL-Compiler erzeugt die Stubs und Skeletons die leeren Prozeduren (die Köpfe) auf der Server-Seite ein Serverprogramm, das Client-Anfragen entgegen nimmt und die entsprechenden Prozeduren aufruft ein einfaches Client-Programm zum Testen Der Programmierer muss dann nur noch die Prozedurrümpfe auf der Server-Seite ausfüllen das Client-Programm entsprechend der gewünschten Anwendung modifizieren

55 1-55 Gemeinsames Format IDL-Compiler IDL definition IDL-Compiler translate IDL into X translate IDL into Y Program in language X communication? Program in language Y Stub translate message into CDR Message in CDR format translate message into Y Skeleton

56 1-56 IDL Stubs und Skeletons Stubs und Skeletons werden aus der IDL generiert. Ein Stub ist die Verbindung zwischen Client und ORB, ein Skeleton die zwischen Server und ORB. Nach oben (Client bzw. Server) wird die Schnittstelle des Objekts übersetzt in die verwendete Programmiersprache angeboten. Zum ORB hin wird eine Nachrichtenschnittstelle angeboten. Stubs und Skeletons übersetzen demnach das eine Format in das andere.

57 1-57 Entwicklung von CORBA-Anwendungen Client developer IDL compiler IDL Server developer IDL compiler Sourcen Client ausführbare Programme Server

58 1-58 CORBA in Enterprise Applications CORBA-Objekte können die komplette Business-Logik- Ebene einnehmen. Presentation-Implementierungen werden dann oft als WWW-Anwendungen realisiert. Häufige Variante: Servlets als Front-End, die den Kontakt zu den CORBA-Objekten herstellen Oft für Legacy-Anwendungen Später dazu mehr Servlet Servlet Web Server Object Object Object CORBA Object Server

59 1-59 JAVA RMI als Alternative: Grundlagen Definiert ein Rahmenwerk für die Kommunikation von Java-Objekten unabhängig von ihrem Ort Eine reine Java-Lösung Alle entfernten Objekte müssen ein entferntes Interface besitzen Es sind Werkzeuge vorhanden für die Generierung von Stubs und Skeletons. JDK stellt eine Implementierung des Naming Service zur Verfügung, die RMIregistry. Ein RMI-Dämon erlaubt einen flexible (ondemand)-instanziierung von Objekten.

60 1-60 Schnittstellen-Definition Schnittstellen werden definiert Mit Hilfe des Java interface Konstrukts Indem sie die Eigenschaften desremote interface erben Und indem sieremoteexceptions auslösen können. Ansonsten können alle Java-Typen verwendet werden. Neue Klassen können definiert und als Parameter von Methoden verwendet werden. import java.rmi.*; import java.util.date; public interface DateServer extends Remote { public Date getdate() throws RemoteException; }

61 1-61 Vergleich: CORBA vs. RMI RMI ist eine reine Java-Variante, aber ähnlich zu CORBA + Die Programmierung ist einfacher als bei CORBA + Komplexe Objekte können übergeben werden Nur für Java Zusammenfassung: Gute Alternative für reine Java-Lösungen Die Übertragung von aktiven Objekten wird selten genutzt (z.b. für mobile Agenten)

62 1-62 Web Services Idee: Verbinde die Einfachheit von Java RMI mit der Plattformunabhängigkeit von CORBA Web Services: WSDL(Dienstbeschreibung) SOAP (Nachrichtenaustausch) UDDI (Dienstverzeichnis) Das Zusammenspiel dieser Technologien wird im sog. Web-Service-Rollenmodell beschrieben

63 1-63 Web-Service-Rollenmodell WSD Finden SOAP (über HTTP) Veröffentlichen WSDL Interagieren Dienstregister Dienstnutzer Dienstanbieter WSD

64 1-64 Warum XML? Verbindet alles mit jedem! Web Services als universelle Middleware- Technologie Grundlage: XML Daher: beseitigt Probleme mit inkompatiblen Datentypen, Zeichen-codierungen, Byteorders usw. Hinweis: Performance schlechter als bei binären Protokollen! Vor allem deutlich höheres Datenaufkommen!

65 1-65 Intuitiver Lösungsansatz: Textkompression POST /axis/services/calculator HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.1 Host: localhost Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: Accept-Encoding: 348 gzip Content-Encoding: gzip <?xml version='1.0'?> <env:envelope [ xmlns:env=" <env:body> 鲠 3 F Ҩ + tʓ>nᄆ AyJ ȕª `ÑUº [ ] <res:reservationrequest xmlns:res=" [ ] </res:reservationrequest> </env:body> </env:envelope>

66 1-66 Ergebnis: marginale Verbesserung Datenaufkommen [Bytes] SOAP Corba RMI SOAP (gzip) Anzahl ausgetauschter Nachrichten (n)

67 1-67 Netzprogrammierung vs. Middleware Direkte Netzprogrammierung Direkte Kontrolle aller Transportparameter größere Flexibilität bei der Entwicklung neuer Protokolle Kann in vielen Fällen bessere Performance bringen Grosses Problem: Datenrepräsentation Middleware Sehr bequemer Weg zur Entwicklung von Anwendungen Datenrepräsentation, Objektlokalisierung etc. muss nicht von der Anwendung gemacht werden Oft viel Overhead

68 1-68 Diskussion

4-2. Generelle Mechanismen aufsetzend auf. TCP und UDP Clients und Server in Java. Kapitel 4: Interprozesskommunikation. Kodierung von Daten im Netz

4-2. Generelle Mechanismen aufsetzend auf. TCP und UDP Clients und Server in Java. Kapitel 4: Interprozesskommunikation. Kodierung von Daten im Netz TU Braunschweig Institut für Betriebssysteme und Rechnerverbund Interprozess-Kommunikation Anwendungsprogramme leben in Prozessen. Ein Prozess ist ein Objekt des Betriebssystems, durch das Anwendungen

Mehr

Verteilte Systeme Prof. Dr. Stefan Fischer. Übersicht. Interprozess-Kommunikation. TU Braunschweig Institut für Betriebssysteme und Rechnerverbund

Verteilte Systeme Prof. Dr. Stefan Fischer. Übersicht. Interprozess-Kommunikation. TU Braunschweig Institut für Betriebssysteme und Rechnerverbund TU Braunschweig Institut für Betriebssysteme und Rechnerverbund Übersicht Interprozess-Kommunikation Direkte Nutzung des Netzwerk-API vs. Middleware TCP und UDP Sockets TCP und UDP Clients und Server in

Mehr

Verteilte Systeme - Java Networking (Sockets) -

Verteilte Systeme - Java Networking (Sockets) - Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP

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

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

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Remote Method Invocation

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

Mehr

Verteilte Systeme - Java Networking (Sockets) 2 -

Verteilte Systeme - Java Networking (Sockets) 2 - Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:

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

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

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

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

Netzwerkprogrammierung unter Linux und UNIX

Netzwerkprogrammierung unter Linux und UNIX Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g

Mehr

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES 2016 Software AG. All rights reserved. For internal use only DIGITAL BUSINESS APPLICATIONS DRIVE THE DIGITAL BUSINESS Partner Lieferanten Kunden SaaS

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

Network Communication. Dr. Jürgen Eckerle WS 06/07

Network Communication. Dr. Jürgen Eckerle WS 06/07 Network Communication Dr. Jürgen Eckerle WS 06/07 1 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der

Mehr

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

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

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

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

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

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

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Netzwerkprogrammierung PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke, Marcus Mews Technische Universität Berlin Fachgebiet Softwaretechnik 17. Juni 2013 Übersicht Grundlagen

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

Grundlagen der Web-Entwicklung INF3172

Grundlagen der Web-Entwicklung INF3172 Grundlagen der Web-Entwicklung INF3172 Web-Services Thomas Walter 16.01.2014 Version 1.0 aktuelles 2 Webservice weitere grundlegende Architektur im Web: Webservice (Web-Dienst) Zusammenarbeit verschiedener

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

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

Softwareentwicklung in verteilten Umgebungen, Teil 3 Interprocess Communication (Coulouris et al., Kapitel 3) Dieter Schmalstieg

Softwareentwicklung in verteilten Umgebungen, Teil 3 Interprocess Communication (Coulouris et al., Kapitel 3) Dieter Schmalstieg Softwareentwicklung in verteilten Umgebungen, Teil 3 Interprocess Communication (Coulouris et al., Kapitel 3) Party based on material by Victor García Barrios SVU Interprocess Communication Überblick API

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

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

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

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc. 7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung

Mehr

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht Themen Transportschicht Internet TCP/UDP Transportschicht Schicht 4 des OSI-Modells Schicht 3 des TCP/IP-Modells Aufgaben / Dienste: Kommunikation von Anwendungsprogrammen über ein Netzwerk Aufteilung

Mehr

Socket-Programmierung unter Java

Socket-Programmierung unter Java Datenströme -Programmierung unter Java 1 - Grundlagen: Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer Verwende

Mehr

Institut für Betriebssysteme und Rechnerverbund Übungslösungen zur Vorlesung Verteilte Systeme, WS 02/03 http:www.ibr.cs.tu-bs.de/lehre/ws0203/vs/ Dozent: Prof. Dr. Stefan Fischer

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

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2 Universität Osnabrück 1 Verbindungen zu mehreren Clients 3 - Objektorientierte Programmierung in Java Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2 Wie könnte das bereits vorgestellte Programm

Mehr

CORBA = Common Object Request Broker Architecture. plattformunabhängige Middleware-Architektur für verteilte Objekte

CORBA = Common Object Request Broker Architecture. plattformunabhängige Middleware-Architektur für verteilte Objekte E CORBA E.1 1 Standard CORBA = Common Object Request Broker Architecture plattformunabhängige Middleware-Architektur für verteilte Objekte OMG = Object Management Group Standardisierungsorganisation mit

Mehr

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel VS3 Slide 1 Verteilte Systeme Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

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

Ü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

Programmiermethodik. Übung 10

Programmiermethodik. Übung 10 Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering andreas.koch@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

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

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

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

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung Die klassen Ein (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination aus IP-Adresse

Mehr

TCP/IP-Protokollfamilie

TCP/IP-Protokollfamilie TCP/IP-Protokollfamilie Internet-Protokolle Mit den Internet-Protokollen kann man via LAN- oder WAN kommunizieren. Die bekanntesten Internet-Protokolle sind das Transmission Control Protokoll (TCP) und

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

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

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

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) JacORB S. Bissell, G. Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr. EN6,

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

-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

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub

39 Object Request Brokers. 40 Components of an ORB. 40.1 Stubs and Skeletons. 40.1.1 Stub 39 Object Request Brokers 40.1 Stubs and s invoke methods at remote objects (objects that run in another JVM) Stub: Proxy for remote object example ORBs: RMI, JavaIDL : Invokes methods at remote object

Mehr

Verteilte Systeme - 1. Übung

Verteilte Systeme - 1. Übung Verteilte Systeme - 1. Übung Dr. Jens Brandt Sommersemester 2011 1. Rechnerverbünde Kommunikationsverbund: Beispiele: E-Mail (SMTP, POP/IMAP), Instant Messaging (XMPP, IRC, ICQ,...), Newsgroups (NNTP)

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

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

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012 Rechnernetze Übung 11 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012 IP: 192.168.43.9 MAC: 02-55-4A-89-4F-47 IP: 216.187.69.51 MAC: 08-48-5B-77-56-21 1 2 IP: 192.168.43.15 MAC:

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

Netzwerkarchitekturen. Überblick. Interessante Netzeigenschaften. Verteilte Systeme Prof. Dr. Stefan Fischer. Schichtenmodelle, Protokolle und Dienste

Netzwerkarchitekturen. Überblick. Interessante Netzeigenschaften. Verteilte Systeme Prof. Dr. Stefan Fischer. Schichtenmodelle, Protokolle und Dienste TU Braunschweig Institut für Betriebssysteme und Rechnerverbund Interessante Netzeigenschaften Performance Verzögerung, Datenrate Skalierbarkeit Ist das Netz immer noch leistungsfähig, wenn es größer wird?

Mehr

<Insert Picture Here> Einführung in SOA

<Insert Picture Here> Einführung in SOA Einführung in SOA Markus Lohn Senior Principal Consultant SOA? - Ideen Selling Oracle To All SAP On ABAP Increasing Sales Of Applications 3 Agenda Motivation SOA-Definition SOA-Konzepte

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

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette. Netzwerk-Programmierung Netzwerke Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste}@techfak.uni-bielefeld.de 1 Übersicht Netzwerk-Protokolle Protkollfamilie TCP/IP Transmission Control Protocol

Mehr

Web Services. Standards und Realisierung in Java

Web Services. Standards und Realisierung in Java Standards und Realisierung in Java http://werner.gaulke.net 4.6.2007 Idee Aufbau und Standards und Java Outline 1 Idee Idee hinter? 2 Aufbau und Standards Schichtenmodell WSDL Fazit WSDL SOAP Fazit SOAP

Mehr

2 Kommunikationssysteme. vs2 1

2 Kommunikationssysteme. vs2 1 2 Kommunikationssysteme vs2 Kommunikationssysteme bieten Kommunikationsdienste an, die das Senden und Empfangen von Nachrichten erlauben (sending & receiving messages) bestehen aus - Kommunikationsnetz

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

Rechnernetze Übung 11

Rechnernetze Übung 11 Rechnernetze Übung 11 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Herr Müller (Test GmbH) Sekretärin (Super AG) T-NR. 111 T-NR. 885 Sekretärin (Test GmbH) Herr Meier (Super

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

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

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

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme - 4. Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Überblick. Verteilte Anwendungen, Interaktionsformen. implizite, nicht-orthogonale Interaktion. explizite, orthogonale Interaktion

Überblick. Verteilte Anwendungen, Interaktionsformen. implizite, nicht-orthogonale Interaktion. explizite, orthogonale Interaktion Überblick Verteilte Anwendungen, Interaktionsformen 7 Verteilte Anwendungen und 7.1 Verteilte Anwendungen 7.2 Klassifikation von Interaktionsformen explizit implizit orthogonal nicht-orthogonal uniform

Mehr

Transportprotokolle. 4. Transmission Control Protocol (TCP) 1. Protocol-Port Konzept. 1. Verbindungsmanagement. 2. Socket Programmierung. 2.

Transportprotokolle. 4. Transmission Control Protocol (TCP) 1. Protocol-Port Konzept. 1. Verbindungsmanagement. 2. Socket Programmierung. 2. Transportprotokolle 1. Protocol-Port Konzept 2. Socket Programmierung 3. User Datagram Protocol (UDP) 4. Transmission Control Protocol (TCP) 1. Verbindungsmanagement 2. Sicherung 3. Flußkontrolle 4. Optimierungen

Mehr

Serielle Kommunikation - Kodierung

Serielle Kommunikation - Kodierung Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert

Mehr

Java und Netzwerkkommunikation

Java und Netzwerkkommunikation Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender

Mehr

4. Thread- und Netzwerk- Programmierung

4. Thread- und Netzwerk- Programmierung 4. Thread- und Netzwerk- Programmierung 4.1 Ziel dieses Kapitels 4.2 Prozeß versus Thread 4.3 Thread-Programmierung 4.4 TCP/IP Grundlagen 4.5 TCP Programmierung 3. TCP/IP und Threads 3-1 4.1 Ziel dieses

Mehr

Janeva:.NET meets J2EE

Janeva:.NET meets J2EE Inhalt: Motivation Was ist Janeva? Systemvoraussetzungen Installation Beispiel Converter Fazit Motivation Motivation: Janeva testen einen Überblick verschaffen Lauffähiges Beispiel Entscheidungshilfe über

Mehr

Mobilkommunikationsnetze - TCP/IP (und andere)-

Mobilkommunikationsnetze - TCP/IP (und andere)- - TCP/IP (und andere)- Vorlesung Inhalt Überblick ISO/OSI vs. TCP/IP Schichten in TCP/IP Link Layer (Netzzugang) Network Layer (Vermittlung) Transport Layer (Transport) Application Layer (Anwendung) Page

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät ARP, ICMP, ping Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät TCP/IP Data Link Layer Aufgabe: Zuverlässige Übertragung von Rahmen über Verbindung Funktionen: Synchronisation,

Mehr

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik SOA Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik Laderampen müssen passen Modularisieren Softwarearchitektur Modul A Modul B Modul C Modul D Große Anwendung im Unternehmen Modul

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl Internetanwendungstechnik TCP/IP- und OSI-Referenzmodell Gero Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr.

Mehr

Softwarepraktikum Sommersemester 2006

Softwarepraktikum Sommersemester 2006 Softwarepraktikum Sommersemester 2006 Netzwerkprogrammierung in Java Ralf Wienzek wienzek@informatik.rwth-aachen.de Ulrich Loup loup@i4.informatik.rwth-aachen.de Grundlagen Netzwerkprogrammierung TCP/IP

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

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation RMI Beispiel el0100 copyright Abt. Technische Informatik,

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Praktikum aus 1 & URL, URLConnection, UDP, TCP Parallele Abläufe, Synchronisation, 2 Grundlagen (1/4) Kommunikation zwischen verteilten Programmen Host Computer Java Virtuelle Maschine Host Computer

Mehr

Komponentenmodelle II

Komponentenmodelle II Komponentenmodelle II DCOM / CORBA Detlef Streitferdt Technische Universität Ilmenau DCOM Architektur Client Proxy Stub Component CoCreateInstance Security Provider DCE RPC Protocol Stack Security Provider

Mehr

Systeme II 4. Die Vermittlungsschicht

Systeme II 4. Die Vermittlungsschicht Systeme II 4. Die Vermittlungsschicht Christian Schindelhauer Technische Fakultät Rechnernetze und Telematik Albert-Ludwigs-Universität Freiburg Version 07.06.2016 1 Adressierung und Hierarchisches Routing

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

Netzwerkprogrammierung

Netzwerkprogrammierung Seminarvortrag Netzwerkprogrammierung Referent: Stefan Renner E-Mail: rennersn@studi.informatik.uni-stuttgart.de Motivation Einsatz von Netzwerken: Physikalische Ressourcen gemeinsam nutzen Daten unabhängig

Mehr

Vorlesung SS 2001: Sicherheit in offenen Netzen

Vorlesung SS 2001: Sicherheit in offenen Netzen Vorlesung SS 2001: Sicherheit in offenen Netzen 2.2 Transmission Control Protocol - TCP 2.3 User Datagram Protocol - UDP Prof. Dr. Christoph Meinel Informatik, Universität Trier & Institut für Telematik,

Mehr

KN 20.04.2015. Das Internet

KN 20.04.2015. Das Internet Das Internet Internet = Weltweiter Verbund von Rechnernetzen Das " Netz der Netze " Prinzipien des Internet: Jeder Rechner kann Information bereitstellen. Client / Server Architektur: Server bietet Dienste

Mehr