Netzprogrammierung Interaktionsmuster Remote Procedure Calls



Ähnliche Dokumente
Überblick. Netzprogrammierung 2. Remote Procedure Calls. Remote Procedure Call RPC

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06

Mobile und Verteilte Datenbanken

Übungen zu Softwaretechnik

Musterlösung Klausur SS 2004

3. Stored Procedures und PL/SQL

Gesicherte Prozeduren

Man liest sich: POP3/IMAP

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

SEP 114. Design by Contract

Software Engineering Interaktionsdiagramme

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Vgl. Oestereich Kap 2.7 Seiten

Grundlagen verteilter Systeme

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Java: Vererbung. Teil 3: super()

Powermanager Server- Client- Installation

Urlaubsregel in David

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

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

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Szenario 3: Service mit erweiterter Schnittstelle

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

4D Server v12 64-bit Version BETA VERSION

Der lokale und verteilte Fall

WI EDI Solution. Stand

Java Kurs für Anfänger Einheit 5 Methoden

Objektorientierte Programmierung OOP

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Applet Firewall und Freigabe der Objekte

Java RMI Remote Method Invocation

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

7.4 Verteilungsabstraktion in heterogener Umgebung

Lizenzen auschecken. Was ist zu tun?

Kommunikation. Sitzung /11. Dezember 2015

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Step by Step Webserver unter Windows Server von Christian Bartl

VENTA KVM mit Office Schnittstelle

Java Enterprise Architekturen Willkommen in der Realität

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Benachrichtigungsmöglichkeiten in SMC 2.6

3 Programmiermodelle für parallele und verteilte Systeme

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Schedulingund Thread-Ausführer

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Guide DynDNS und Portforwarding

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Algorithmische Kryptographie

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

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

Vorkurs C++ Programmierung

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

EasyWk DAS Schwimmwettkampfprogramm

Client-Server mit Socket und API von Berkeley

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Formular»Fragenkatalog BIM-Server«

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Professionelle Seminare im Bereich MS-Office

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Java und XML 2. Java und XML

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Software Engineering Klassendiagramme Assoziationen

Firewalls für Lexware Info Service konfigurieren

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Java RMI, CORBA und Firewalls

Programmieren in Java

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

Updatehinweise für die Version forma 5.5.5

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Delegatesund Ereignisse

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Flexagon CLOUD Plattform für den Anbieterwechsel, und für weitere Order- und Entstör Schnittstellen

Application Layer Active Network

Konzepte der Informatik

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

Facharbeit Informatik. Thema:

Comtarsia SignOn Familie

Skript Pilotphase für Arbeitsgelegenheiten

2. Hintergrundverarbeitung in Android: Services und Notifications

ISA Server 2004 Erstellen einer Webverkettung (Proxy-Chain) - Von Marc Grote

Message Oriented Middleware am Beispiel von XMLBlaster

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Übung: Verwendung von Java-Threads

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Installationsanleitung WibuKey Treiber

Root-Server für anspruchsvolle Lösungen

Sicherheit QUALITÄTSSICHERUNG DESIGNER24.CH V 1.2. ADRESSE Designer24.ch Web Print Development Postfach Turbenthal Schweiz

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

OutLook 2003 Konfiguration

Client-Server-Beziehungen

Transkript:

Netzprogrammierung Interaktionsmuster Remote Procedure Calls Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de http://www.robert-tolksdorf.de AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Überblick 1. Client/Server Interaktionen 2. Remote Procedure Call 3. Komponenten beim RPC 4. Fehler AG Netzbasierte Informationssysteme http://www.ag-nbi.de 2

Client/Server Interaktionen AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Client-Server Rechner interagieren über Rechnergrenzen durch Nachrichtenaustausch (z.b. Internet Mitteilungen) Fernaufruf (RPC, RMI, CORBA) Simulierten gemeinsamen Speicher (Tupelraum) Dominierendes Interaktionsmodell: Client/Server Client: Prozess, der Dienst von einem anderen Prozess anfordert (Anforderung, Request) Request Server: Prozess, der auf Anforderung eines Clients einen Dienst erbringt und Ergebnis vermeldet (Antwort, Reply) Feste (starre) Rollenverteilung Fester Interaktionsablauf, z.b. keine Zwischenergebnisse vorgesehen C Reply S AG Netzbasierte Informationssysteme http://www.ag-nbi.de 4

Interaktionssemantik Blockierend/synchron: Client wartet auf Antwort C Request Reply S Zurückgestellt synchron: Client schaut selber nach Asynchron: Ereignis oder Callback bei Ergebnis C C Request? Reply Request Reply S S Einwege: Keine Antwort C Request S AG Netzbasierte Informationssysteme http://www.ag-nbi.de 5

Serverzustand Angebotene Dienste lassen sich unterscheiden hinsichtlich ihrer Auswirkungen auf den Zustand des Servers: Zustandsinvariante Dienste: Bewirken keine Änderungen des Serverzustands Beispiel: Webseitenabruf Serverzustand kann durch andere Dienste geändert werden Zustandsändernde Dienste: Anfrage bewirkt neuen Serverzustand Beispiel: Löschen auf einem FTP-Server Reihenfolge der Dienstanforderungen relevant AG Netzbasierte Informationssysteme http://www.ag-nbi.de 6

Nebenläufige Benutzung von Serverobjekten Mehrere Clienten stellen unabhängig voneinander Anfragen C C S C Server kann arbeiten Sequentiell/Iterativ Schlechtere Antwortzeiten S Einfacher Parallel Antwortzeiten günstiger Synchronisationsaufwand S S S AG Netzbasierte Informationssysteme http://www.ag-nbi.de 7

Multithreaded Server Das Serverprogramm ist während der Erbringung eines Dienstes nicht in der Lage, neue Verbindungen anzunehmen Accept Diensterbringung Abhilfe: Multithreading: Accept Diensterbringung 1 Diensterbringung 2 Diensterbringung 3 AG Netzbasierte Informationssysteme http://www.ag-nbi.de 8

Erinnerung ALP IV: Threads als Java Objekte Ausführungszweig ist Objekt Muß java.lang.thread erweitern (oder java.lang.runnable implementieren) Muß eine Methode run() besitzen, besitzt Methode start() start() erzeugt neuen Ausführungszweig und ruft run() auf Thread terminiert, wenn run() beendet ist Objekt existiert weiter AG Netzbasierte Informationssysteme http://www.ag-nbi.de 9

Beispiel: Alle reden durcheinander public class SayA extends Thread { public class SayB extends Thread { public void run() { public void run() { for(;true;system.out.print("a")); for(;true;system.out.print("b")); } } } } public class Talkshow { public static void main(string[] argv) SayA a=new SayA(); SayB b=new SayB(); a.start(); b.start(); } } BBBBBBBBBBBBBAAAAABBBBBBBBBBBB AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB BBBBBBBBBBBBBBBBBBBBAAAAABBBBB AAABBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBAAAABAAABBBBBBBBB AG Netzbasierte Informationssysteme http://www.ag-nbi.de 10

Beispiel: Multithreaded Server import java.net.*; public class MultiServer { public static void main(string[] argv) { try{ ServerSocket socket= new ServerSocket(3000); while (true) { Socket connection=socket.accept(); // Annahme Dienstaufforderung Handler handler= new Handler(connection); handler.start(); // Start nebenläufige Diensterbringung } } catch (Exception e) { import java.net.*; System.err.println(e.getMessage()); public class Handler extends Thread { } public Handler(Socket s) {} } public void run() {...} } } AG Netzbasierte Informationssysteme http://www.ag-nbi.de 11

Client/Server Muster AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Client-Server-Server Systeme Client-Server tritt selten pur auf C Request Reply S Beispiel: 3-Tier/3-Schichten: C Request Reply S/C Request Reply S Web-Browser Web-Server Datenbank Es gibt verschiedene wiederkehrende Muster solcher Client-Server-Server Systeme AG Netzbasierte Informationssysteme http://www.ag-nbi.de 13

Proxy Proxy-Objekt vertritt Mehrere Clients gegenüber Servern Mehrere Server gegenüber Clients C C (1) (2) Request Reply (4) Proxy Request Reply (3) S S Beispiel: Web-Proxy S AG Netzbasierte Informationssysteme http://www.ag-nbi.de 14

Proxy mit Zwischenspeicher Proxy Cache Speichert erhaltene Antworten ab Beantwortet Anfragen möglichst aus Zwischenspeicher C Mit Antwortkopie beantworten S C Request Reply Proxy cache Request Reply S Beispiel: Caching Web-Proxy Antwortkopie speichern S AG Netzbasierte Informationssysteme http://www.ag-nbi.de 15

Broker, auch Trader Broker vermittelt Verweis auf Dienst leitet Anfrage an Dienst weiter Weiterleitend Verweisend Broker Beispiel: CORBA C Verweis Nachfrage (1) (2) (1) (2) Request Request Broker Reply Reply (4) C (3) Request Reply (4) (3) S 2,1 S 2 S 2,2 S 1 AG Netzbasierte Informationssysteme http://www.ag-nbi.de 16

Filter Filter leitet modifizierte Anfrage weiter leitet modifizierte Antwort weiter C (1) (2) Request Reply (4) Filter Request Reply (3) S Beispiel: Web-Anonymisierer AG Netzbasierte Informationssysteme http://www.ag-nbi.de 17

Balancer Balancer gleicht Lastverteilung durch ausgeglichene Anfragenweiterleitung aus S 2,1 C (1) Request Balancer Reply (4) Request Reply (3) (2) S 2,2 S 2,3 Beispiel: Web-Server aus mehreren Maschinen AG Netzbasierte Informationssysteme http://www.ag-nbi.de 18

Koordinator Koordinator realisiert zusammengesetzten Dienst durch entsprechende Aufrufe an weiteren Objekten C (1) Request Koordinator Reply (8) Request Reply Beispiel: Onlinetransaktion (Flugticketbuchung, Mietwagenbuchung, Kreditkartenabbuchung) (7) (2) Request Reply (6) AG Netzbasierte Informationssysteme http://www.ag-nbi.de 19 (3) S 3 S 1 Request Reply (4) (5) S 2 S 4

Basis für Client/Server: Remote Procedure Calls AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Remote Procedure Call RPC Entfernter Prozeduraufruf, Remote Procedure Call, als grundlegender Mechanismus für verteilte Systeme direkt implementiert (Sun RPC, HP RPC etc.) weiterentwickelt (Java RMI etc.) [Birrell/Nelson84]: RPC ist ein synchroner Mechanismus, der Kontrollfluss und Daten als Prozeduraufruf zwischen zwei Adressräumen über ein schmalbandiges Netz transferiert AG Netzbasierte Informationssysteme http://www.ag-nbi.de 21

RPC Kontroll- und Datenfluss Prozeduraufruf steuert Kontrollfluss und Parameter vom Aufrufer in eine Prozedur Prozedurbeendigung steuert Kontrollfluss und Ergebnisdaten zurück Entfernter Prozeduraufruf (Remote Procedure Call, RPC) transferiert Kontrollfluss und Daten über ein Netzwerk zwischen Rechnern A A A A Rechner A Netz P Rechner A P Rechner B AG Netzbasierte Informationssysteme http://www.ag-nbi.de 22

RPC Eigenschaften Synchron: Aufrufer blockiert bis Aufgerufener Ergebnis abliefert Prozeduraufruf: Signatur der Prozedur definiert zu übertragende Daten Unterschiedlicher Adressraum: Speicheradressen (Zeiger) sind nicht semantikerhaltend übertragbar Schmalbandig: Bandbreite des Netzes ist um Dimensionen geringer als die der Kommunikationspfade innerhalb eines Rechners AG Netzbasierte Informationssysteme http://www.ag-nbi.de 23

Unterschiede Lokaler Aufruf Aufrufer und Prozedur im selben Prozess ausgeführt Aufrufer und Prozedur im selben Adressraum Aufrufer und Prozedur in selben Hard- und Software-umgebung Aufrufer und Prozedur haben gleiche Lebensdauer Aufruf ist immer fehlerfrei Nur Anwendungsfehler berücksichtigt Entfernter Aufruf Aufrufer und Prozedur in unterschiedlichen nebenläufigen Prozessen Aufrufer und Prozedur in unterschiedlichen Adressräumen Aufrufer und Prozedur in unterschiedlicher Hard- und Softwareumgebung Aufrufer und Prozedur haben unterschiedliche Lebensdauer Aufruf ist fehlerbehaftet (Netz, Aufgerufener) Zusätzlich Aufruffehler behandeln AG Netzbasierte Informationssysteme http://www.ag-nbi.de 24

Vorteile der Netzbasierung TOOD Bessere Aufgabenverteilung Bessere Lastverteilung Bessere Ressourcennutzung Bessere Modularität Bessere Wiederverwendbarkeit Größere Offenheit Besser Integrationsfähigkeit A A P A Anwendung A P C P C Anwendung C C A C Anwendung A Netz Anwendung B Netz Anwendung C AG Netzbasierte Informationssysteme http://www.ag-nbi.de 25

Vorteile der Prozedurabstraktion Klare und verständliche Semantik von RPC Prozeduraufrufe wohlverstanden Prozeduraufrufe geeignetes Mittel zur Kommunikation in Anwendungen Einfachheit des Mechanismus: Effiziente Implementierung möglich AG Netzbasierte Informationssysteme http://www.ag-nbi.de 26

Ablauf RPC Anhalten des Kontrollfluss auf A Verpacken von Parametern Übersenden der Parameter Auspacken des Ergebnisses Fortführen des Kontrollfluss auf A A A Rechner A Netz P Rechner B Auspacken der Parameter Aufruf der Prozedur in Kontrollfluss auf B Verpacken des Ergebnisses Übersenden des Ergebnisses AG Netzbasierte Informationssysteme http://www.ag-nbi.de 27

Asynchroner RPC RPC ist eigentlich synchron, Klient ist blockiert Asynchroner RPC Klient nicht blockiert Holt Ergebnis später ab Future: Platzhalter für Ergebnis Lesen des Futures bewirkt Blockierung bis Ergebnis da AG Netzbasierte Informationssysteme http://www.ag-nbi.de 28

Asynchroner RPC A A P Q A Rechner C Netz Rechner A Rechner B Ermöglicht größeren Grad der Nebenläufigkeit: Mehrere RPCs können offen sein Mehrere Prozesse in Servern arbeiten an Ergebnissen AG Netzbasierte Informationssysteme http://www.ag-nbi.de 29 Netz

Herausforderungen Semantik im Fehlerfall Semantik von Zeigern Einbettung in Programmiersprachen Auffinden und Binden an die entfernten Prozeduren Protokoll des Datenaustauschs Eigenschaften der Kommunikation AG Netzbasierte Informationssysteme http://www.ag-nbi.de 30

Komponenten beim RPC AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Komponenten beim RPC Anwendungsprozeduren: Eigentliche Arbeit Stubs: Ver- und Entpacken von Daten zum Transport Kommunikation: Transport von Daten Anw. lokaler Aufruf blockiert lokale Rückkehr Stub Methode kodieren Parameter kodieren Entpacken Ergebnis Komm Versenden Empfangen Komm Empfangen Versenden Stub Entpacken Parameter Methode auswählen Verpacken Ergebnis Anw. lokaler Aufruf ausführen lokale Rückkehr Rechner A Netz Rechner B AG Netzbasierte Informationssysteme http://www.ag-nbi.de 32

Marshalling Rechner können unterschiedliche Darstellung von Daten haben Big-Endian ( network order ): Absteigende Wertigkeit 30000 10 7530 16 0111010100110000 2 Little-Endian: Aufsteigende Wertigkeit 30000 10 3075 16 0011000001110101 2 Komplexer bei zusammengesetzten Typen: Beim Datum schon im realen Leben kompliziert: Europa: dd.mm.yy (little-endian) Japan: yy/mm/dd (big-endian) US: mm/dd/yy ( middle-endian ) Datenstrukturen? Notwendig: Externe Datenrepräsentation Kodierung/Dekodierung = Marshalling AG Netzbasierte Informationssysteme http://www.ag-nbi.de 33

Marshalling binär 30000 (7530 16 ) 75 30 75 30 30000 (3075 16 ) Anw. lokaler Aufruf blockiert lokale Rückkehr Stub Methode kodieren Parameter kodieren Entpacken Ergebnis Komm Versenden Empfangen 75 30 Komm Empfangen Versenden Stub Entpacken Parameter Methode auswählen Verpacken Ergebnis Anw. lokaler Aufruf ausführen lokale Rückkehr Rechner A Netz Rechner B AG Netzbasierte Informationssysteme http://www.ag-nbi.de 34

Marshalling textuell 30000 (7530 16 ) <value type="int"> 30000 </value> <value type="int"> 30000 </value> 30000 (3075 16 ) Anw. lokaler Aufruf blockiert lokale Rückkehr Stub Methode kodieren Parameter kodieren Entpacken Ergebnis Komm Versenden Empfangen < v Komm Empfangen Versenden Stub Entpacken Parameter Methode auswählen Verpacken Ergebnis Anw. lokaler Aufruf ausführen lokale Rückkehr Rechner A Netz Rechner B AG Netzbasierte Informationssysteme http://www.ag-nbi.de 35

Interaktionspunkt: Schnittstellen (lokal) Ein Modul bietet Prozeduren zum Aufruf an: Das Modul exportiert eine Schnittstelle (Interface) Im Beispiel: Schnittstelle enthält Prozeduren P, Q und R Definiert durch Signaturen Modulschnittstelle Q P R Modulimplementierung Ein anderes Modul ruft diese Prozeduren an: Das Modul importiert eine Schnittstelle A P AG Netzbasierte Informationssysteme http://www.ag-nbi.de 36

Interaktionspunkt: Schnittstellen (entfernt) Anwender-Stub stellt Schnittstelle lokal bereit Stubs und Kommunikationskomponente leiten Aufrufe an Schnittstelle des entfernten Moduls weiter Stubs und Kommunikationskomponente leiten Ergebnisse des entfernten Moduls zurück Anw. lokaler Aufruf P P Anw. lokaler Aufruf lokale Rückkehr lokale Rückkehr Rechner A Netz Rechner B AG Netzbasierte Informationssysteme http://www.ag-nbi.de 37

RPC Automatisierung Aus der Definition einer Schnittstelle kann man automatisch Stub auf Aufruferseite Stub auf Modulseite generieren Die Kommunikationskomponente ist generisch und muss lediglich senden empfangen können AG Netzbasierte Informationssysteme http://www.ag-nbi.de 38

Stubgenerierung Sei die die Schnittstelle mit drei Methoden {P(int a, int b), Q(int a, float f), int R(string s)} Stub für Aufrufer: def P(int a, int b) { sende(1); sende(a); sende(b)} def Q(int a, float f) { sende(2); sende(a); sende(f)} def R(string s) { sende(3); sende(s); empfange i} Stub für Modul: empfange(p_id); switch (p_id) { case 1: empfange(a); empfange (b); P(a,b); case 2: empfange(a); empfange (f); Q(a,f); case 3: empfange(s); r=r(a,b); sende(r); } AG Netzbasierte Informationssysteme http://www.ag-nbi.de 39

Bindung Wo schickt das Kommunikationssystem eigentlich den verpackten Prozeduraufruf hin? Bindung zwischen Aufrufer und Aufgerufenem Statische Bindung Zur Übersetzungszeit werden Klienten an feste Serveradressen gebunden Halbstatische Bindung Zur Startzeit des Klienten werden Serveradressen konfiguriert Ermittelt aus Datenbank/Tabelle Dynamisch Zur Aufrufzeit werden Serveradressen ermittelt Serveradresse kann zwischen zwei RPCs wechseln AG Netzbasierte Informationssysteme http://www.ag-nbi.de 40

Vermittler Trader/Broker/Mediator: Komponente, die Server kennt und Referenzen auf sie vermitteln kann Registrierung/Abmeldung von Servern (1) Angabe der exportierten Schnittstelle Referenz auf sich Aufsuchen eines passenden Servers Angabe einer Schnittstellenbeschreibung (2) Ergebnis: Referenz (3) für RPC (4) 2 3 Broker 1 4 Klient Server AG Netzbasierte Informationssysteme http://www.ag-nbi.de 41

Designentscheidungen Designentscheidungen Welche Informationen speichert der Broker Nur Schnittstellen, weitere Informationen? Nur statische Informationen, auch dynamische? Welche Informationen gibt der Broker heraus? Ist der Broker nur beim Auffinden von Referenzen beteiligt oder vermittelt er jeden RPC Aufruf? Bei allen Technologien finden wir eine Art Broker Java RMI: Registry OMG OMA: CORBA/ORB Web Services: UDDI Internet: DNS AG Netzbasierte Informationssysteme http://www.ag-nbi.de 42

Fehler AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Fehlerquellen / Ausfälle Server nicht erreichbar für RPC Maschine ausgefallen Netzwerk ausgefallen Transportschicht maskiert Fehler durch Neuversuche etc. Broker maskiert Fehler durch andere Serverwahl Klient muss Fehler verarbeiten Server fällt während RPC Ausführung aus Ausfall vor RPC -> Nicht erreichbar Ausfall während RPC -> Klient wartet, Seiteneffekte realisiert Ausfall nach RPC -> Klient wartet, Seiteneffekte eingetreten AG Netzbasierte Informationssysteme http://www.ag-nbi.de 44

Fehlerquellen / Ausfälle Klient fällt während RPC Ausführung aus Server kann Ergebnis nicht abliefern Neugestarteter Klient kann alte RPCs absagen Neugestarteter Klient kann alten RPC übernehmen Server kann Klient überwachen, bei Timeout und Feststellung von Klient-Ausfall RPC abbrechen Server kann bei Ergebnisablieferung Timeout setzen und Ergebnis bei Ablauf verwerfen AG Netzbasierte Informationssysteme http://www.ag-nbi.de 45

Fehlerquellen Server hat Schnittstelle geändert und bietet Dienst nicht mehr an RPC Mitteilungen gehen verloren Anforderung, Teile davon Ergebnis AG Netzbasierte Informationssysteme http://www.ag-nbi.de 46

Ablaufsemantik Mix aus Fehlerquellen und Reaktion darauf ergibt unterschiedliche semantische Eigenschaften: may-be Semantik: Anforderungsnachricht wird abgeschickt, Empfang nicht überprüft RPC wird nicht ausgeführt oder einmal ausgeführt Passend wenn Klient kein Ergebnis braucht und kein Nebeneffekt (Beispiel: Unkritische Benachrichtigung über neue Mail) at-least-once: Nachrichtenempfang wird quittiert Nachricht wird abgeschickt, bei keiner Antwort erneut RPC wird Mindestens 1 Mal ausführt Problem: Mehrfache Bearbeitung mit Nebeneffekten kann zu inkonsistenten Daten führen (Beispiel: Überweisung) AG Netzbasierte Informationssysteme http://www.ag-nbi.de 47

Ablaufsemantik at-most-once: Erneute Anforderung wird mit bisherigen Anforderungen abgeglichen RPC wird höchstens 1 Mal ausgeführt, nicht teilweise Ausfall vor Verarbeitung: Nicht ausgeführt Ausfall während Verarbeitung: Neustart, Konsistenz durch Transaktion Ausfall nach Verarbeitung: Ergebniskopie nach Neustart versandt exactly-once (= at-least-once + at-most-once): Anforderungswiederholungen+Duplikatvermeidung RPC wird genau 1 Mal ausgeführt. Aber: Was genau passiert, wenn Server ausfällt? AG Netzbasierte Informationssysteme http://www.ag-nbi.de 48

Zusammenfassung AG Netzbasierte Informationssysteme http://www.ag-nbi.de

Zusammenfassung 1. Client-Server als dominierendes Interaktionsmuster 2. Muster mit mehreren Servern 1. Client-Server selten pur auftretend 2. Muster: Proxy, Proxy cache, Broker, Trader, Filter, Balancer Koordinator, 3. Remote Procedure Call 1. Vorteile Verteilung 2. Unterschiede zum lokalen Prozeduraufruf 4. Komponenten beim RPC 1. Schnittstellen 2. Stubs 3. Bindungen/Broker 5. Fehler 1. Ausfälle 2. Reaktionen auf Fehler AG Netzbasierte Informationssysteme http://www.ag-nbi.de 50

Literatur Andrew D. Birrell, Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems. Volume 2, Issue 1 (February 1984) pp 39 59. AG Netzbasierte Informationssysteme http://www.ag-nbi.de 51