18
Distributed Systems (Fach) / RPC (Lektion)
Anzeige
- Wie sind die Schritte bei RPC? Local Call, Encode, Runtime System (Provides UI) [CLIENT] Send Call-Packet Receive Call-Packet, Decode ,Execute,Encode [SERVER] Send Result Packet UI, decode ,local result [CLIENT]
- Was bedeutet marshalling und unmarshalling? Marshalling Encode, also Konvertierung eines Parameter Sets von intern-spezifisch zu serialisiert (also speicher/versendbar) Unmarshalling Decode, also Rekonstruktion eines Parameter Sets von serialisiert zu Receiver-spezifisch, sodass es der Receiver lesen kann Notwendig aufgrund der Vorschriften von Servern und Heterogenität interner Datenrepräsentation
- Was ist ein Stub und was macht er? Ein Stück eines Codes, welches für die Konvertierung eines Parameter Sets während RPC zuständig ist. Dies muss sein, da zB. pointer auf bestimmte Parameter in dem Adressraum des einen Computers woanders hinzeigen als beim Adressraum des anderen. Stubs sind sowohl auf Client, als auch auf Serverseite nötig.
- Was sind die Charakteristiken von RPC? Narrow Channels -> Bottleneckgefahr bei zuvielen Daten Data Exchange: call parameters and result Befindet sich auf dem Level der Programming Languages Kommuniziert zwischen verschiedenen Adressräumen Synchroner Transfer eines Control Thread vom Client zum Server und zurück
- Was ist der Sinn von RPC? Einem lokalen Computer (Client) ermöglichen die Procedures eines anderen weiter entfernten (remote) Computers aufzurufen. (Server)
- Wie findet der Client einen passenden Server? Zuerst muss der Client einen passenden Server mithilfe des Directory Servers finden. Jener hat die Interfaces eines Servers in einem Control Table gespeichert. Nun stellt der Client einen Request mit dem Namen des benötigten Interfaces, welcher der Directory Server dann nachschlägt und matched.
- Was bedeutet Binding? Binding is the process of coupling a client and a server by resolving the address of the server at client side.
- Welche Arten von Binding sind möglich? Direct addressing Direkte Abfrage der IP und Portnumber, Anspassung der IP über config Broadcast Request Mit Logical Name, Server werden in einem lokalen Netzwerk oder im Internet gesucht Directory Service Server registriert sich mit Logical name bei einem Directory Service Client fragt Server nach dem Logical name ab Client bekommt Servervorschlag des Directory Services Client kann nun Request an diesen senden
- Vor und Nachteile der 3 Binding Arten? Direct Addressing + Schnelle Bindung ohne jegliche Netzwerkkommunikation und Service - Statisch, keine Neubindung während der Runtime - Eventuell Rekompilieren nötig, bei Rekonfiguration des Servers - Ändert sich der Port funktioniert das Ganze nicht mehr Broadcast + Kein Service für Binden nötig, direkte Kommunikation mit potentiellen Services + Funktioniert gut im LAN - Broadcast funktioniert nicht mit jedem Netzwerk - Hoher Overhead bei großen Netzwerken durch Flooding von Suchanfragen Directory Service + Flexibles Binden und Entbinden basierend auf logical Names + Hohe Skalierbarkeit - Komplex, Netzwerk , Bindungs und Kommunikationsservice benötigt
- Welche Transport Protokoll benutzt RPC? UDP/IP oder TCP/IP. TCP wird bevorzugt aufgrund der bereits enthaltenen Fehlererkennung.
- Anzeige
- Welche Optimierung für Übertragungsprotokolle gibt es? active/passive connection state -> kann ein und ausgeschaltet werden only implicit connection release -> schaltet sich nach einem längeren timeout aus
- Welche Ansätze gibt es in einem RPC System, um Fehler zu beheben? (Error Semantics) Maybe Keinerlei Handlung bei verlorenen Nachrichten (Nur bei unwichtigen Operationen) At-least-once Versendet sooft, bis eine Antwort kommt. Dabei können Duplikate entstehen. At-most-once Erkennt zusätzlich Duplikate, jene werden nicht nochmal ausgeführt. Exactly-once Garantiert ein einmaliges Versenden, zusätzliche Erkennung von Computer und Serverabstürzen -> Neustart
- Durch was können Fehler in RPC entstehen? Client Crash Server Crash Message Delay Message Loss
- Was sind Probleme bei RPC? Kein Support für Multicast/Broadcast Streng synchron -> kein paralleles senden, warten Nicht geeignet für mass data transfer Transparency Violations, zB. bei globalen Variablen welche dann nicht mehr global sind, pointers (da verschiedene Adressräume)
- Vergleich zwischen RPC und Mass-Transfer Protokollen (TCP..) RPC Verbessert die Response Time Kein wirklicher Flow Control Server-Load Limit Kein Speichern von State Informations Kein Protokoll zum Verbindungsaufbau Data Transfer beginnt sofort nach der Initialsierung Andere Stellt lediglich eine Verbindung her Flow Control Kein Server-Load Limit Speichern von State Informations zur Optimierung Protokoll für die Connection Parameter
- Unterschied zwischen synchron und asynchroner Request? Synchronous Synchronous Request blockiert den Client bis die Operation durchgeführt wurde. Asynchronous Asynchronous Request blockt den Client nicht. Währenddessen kann jede mögliche andere Operation durchgeführt werden.
- Wie läuft eine Nachrichtenübertragung bei RPC ab? Client calls stub. Stub marshalls the given parameters and makes a system call. Runtime Environment sends the message from client to server. Runtime Environment on Server receives message and sends them to server stub. Stub unmarshalls the data and calls Server Procedure. Than same steps in reverse.
- Wobei setzt man Threads in RPC ein? Wie werden diese zugewiesen? Im RPC-Server -> paralelle Ausführung möglich Processing of several calls Im Client -> asynchrone calls möglich Simultaneous calls on several servers Zuweisung erfolgt entweder by call oder mit einem Process Pool