16

Distributed Systems (Fach) / Java Remote Method Invocation (Lektion)

RMI

Diese Lektion wurde von Sogn erstellt.

Lektion lernen

Anzeige
  • Was ist RMI? Eine Erweiterung von RPC , durch objekt-orientierte Paradigmen Ermöglicht den Aufruf einer Methode eines entfernten Java-Objekts und realisiert die Java-eigene Art des Remote Procedure Call.
  • Vorteile der RMI Erweiterung? Daten können nun nicht mehr nur als Kopien, sondern auch als Referenzen zum Objekt übertragen werden. So können Objektreferenzen nun als Call Parameters versendet werden und als Response Werte von Funktion/Methoden bekommen. Vorteile von Java, wie portability und garbage selection, werden übernommen Vorteile der objektorientierten Programmierung werden übernommen objects can provide remote interfaces -> more flexible implementation of the server functionality due to objects of varying granularity.
  • Vergleich zwischen Futures und Threads für die Implementierung paraleller RPC calls! Threads Im OS integriert Hohe Flexibilität, Arbitrary Call Bundling und Handling mögliches  (Push Notifications) Keine Typisierung während Runtime Hoher Entwicklungsaufwand Futures/Promises Im Code integriert Flexibilität begrenzt durch eingebettete Mechanismen Streng Typisiert, check erfolgt beim Compilen Geringer Entwicklungsaufwand
  • Wie funktioniert AJAX? Es wird eine zusätzliche Schicht eingeführt, die AJAX Engine. Ziel von AJAX ist es, Datenaustausch im Hintergrund zu ermöglichen, ohne dass die Seite jedes mal refreshed werden muss und die klassischen Webanwendungen um additonale Featuers zu erweitern. Die AJAX Engine kümmert sich nun um die Serverkommunikation und dem Rendering der User Interface.
  • Aus welchen Webtechnologien besteht AJAX? CSS, XHTML (Präsentation) DOM (Dynamic Displays) XML, XSLT (Data exchange) XMLHttpRequest (Asynchronous data retrieval) JavaScript (Binding everything)
  • Wann ruft die AJAX-Engine den Server auf? Wenn sie etwas vom Server braucht, was sie selbst dem User nicht beantworten kann Wenn Datensynchronisation mit dem Server nötig oder erzwungen wird Ansonsten arbeitet die AJAX Engine als eigenes System mit lokalen Daten
  • Aus welchen Technologien bestehen die Webservices? SOAP/XML (Kommunikation) WSDL (Interface Description) Directory Service (Binding)
  • Aus welchen Technologien besteht SOAP? Vor und Nachteile? XML (Encoding von Calls und Parametern, Encryption) Realisiert durch HTML + Unabhängig von jeglichen Programmiersprachen + Unterstützt sowohl synchrone als auch asynchrone Interactions - Keine Automatische Garbage Collection - HTTP-Overhead -> Weniger Effizient als direkte Kommunikation
  • Vorteile von Web-based Services? Comfortable, web-based call mechanism Also applicable via firewalls using SOAP / HTTP Enables technology-independent implementation of application logic
  • Wie funktioniert das Message Sending? Aufteilung in Consumer und Supplier Consumer subscribed ein Thema/Event beim Supplier Sobald Information zum Thema verfügbar ist, pushed der Supplier Daten an die Subscriber Message Sending läuft asynchron ab und beinhaltet auch keine Confirmaiton Ebenso gilt eine m:n Beziehung
  • Anzeige
  • Was ist das Prinzip von Message Queing? Supplier sendet Nachrichten an Message Channel, welcher diese in einer Queue speichert. Diese verbleiben dort solange, bis sie vom entsprechenden Consumer abgeholt wurden. Somit kommunizieren Supplier und Consumer nicht gleichzeitig miteinander (asynchron) und hängen auch nicht direkt voneinander ab. (loosely coupled) Vorteil: If one process in a decoupled system fails to process messages from the queue, other messages can still be added to the queue and be processed when the system has recovered.  N:M Verbindung
  • Vergleich zwischen RPC und Message Queing? RPC Close Coupling 1:1 Communication synchronous (problemofdisconnections) Client and Server are synchronized additional effort for reliability necessary (at-most-once-semantics) Message Queing Loose Coupling M:N Communication asychronous explicit synchronization required reliable message exchange based on message queues
  • Was sind die Vor und Nachteile von Messages? Leicht zu managen Robust (Error Compensation i.e.) Flexible Application fields due to m:n (load balancing, parallelization..) Relevant for loose coupling of programmes, especially for Mobile Computing Limitied Communication semantics (Maybe) Interaction model is different than with procedures/method invocations Limitied acessibility of higher services
  • Welche Arten von Stream Communication gibt es? Undirectional On Demand Stream (Youtube) -> Buffering möglich Live Stream (Twitch) -> Buffering nur begrenzt möglich Stream von einem Server an mehrere Clients, ohne jegliche Interaktion zwischen Sender und Receiver Directional Point to Point Conversation (Skype) Multipoint Conference (Mehrere Teilnehmer) Two-way Interaction mit zeitlicher Verbindung , besitzt strengere requirments, da hier Dinge wie Lip-Sync und Konversationsqualität wichtiger sind
  • Welche Phasen durchläuft man beim Verbindungsaufbau (Streamen)? 1) Connection establishment Austausch der Verbindungsinformation (IP, Port..) Verhandlung der Qualitätsparameter Reservieren von Ressourcen 2) Usage Transfer zum Stream Integration potentieller zusätzlicher Teilnehmer Wechsel des Streaming Servers Wechsel in geringere Qualität wegen hohen Netzwerkload 3) Connection Closure Beenden des Datenstreams Freigeben der Ressourcen, welche beansprucht wurden
  • Welche verschiedenen Protokolle gibt es für Steaming? Session Initiation Protocol SIP Etabliert Sessions mit Quality Parameters Kommuniziert via IP Real-Time Transport Protocol (RTP) Versendet die Stream Daten via Packets mit UDP Unterscheidet zwischen Streamtypen (Source ID) Real-Time Control Protocol (RTCP) Dynamic Flow Control der RTP Connection -> informiert über Qualitätverluste