TU Wien:Verteilte Systeme VO (Dustdar)/Pruefung 2021-04-21

Aus VoWi
Zur Navigation springen Zur Suche springen

Frage 1:

You have to conceptualize and implement a new backend system for the Austrian public health sector, i.e., a server-based software which is able to store all patient data and allows doctors and pharmacists to access patient-related data. Explain why you would design the server as either an iterative or a concurrent server. Assume that the software is not running on a single host, but rather in a server cluster, able to serve all incoming requests.

(Sie sollen ein neues Backend-System für das österreichische Gesundheitswesen konzipieren, d. h. eine serverbasierte Software, welche die gesamten Patientendaten speichert und es ÄrztInnen und ApothekerInnen erlaubt, auf diese Patientendaten zuzugreifen. Erklären Sie, warum Sie den Server als iterativen oder nebenläufigen ("concurrent") Server designen würden. Gehen Sie davon aus, dass Ihre Software nicht auf einem einzelnen Host läuft, sondern in einem Server-Cluster, welches alle Anfragen bearbeiten kann.)

Frage 2:

Consider the following topology of Internet Autonomous Systems (ASs), where each circle corresponds to an AS. Each AS is composed of a number of interconnected routers (boxes), and ASs interconnect with each other.

(Betrachten Sie die folgende Topologie von Internet Autonomen Systemen (Internet Autonomous Systems - ASs), wobei jeder Kreis einem AS entspricht. Jedes AS besteht aus mehreren miteinander verbundenen Routern (Boxen), und ASs sind miteinander verbunden.)

You have to select where to place two replica servers. Each replica server should be placed at a router location. Execute an appropriate algorithm for replica server placement that uses the above topology as input, in order to provide a placement of the two servers. That is, decide at which router each server should be installed (e.g., “Server 1 at Router Rx.y, Server 2 at Router Rm.n”), explaining how you reached your decision step by step.

(Sie müssen auswählen, wo zwei Replikatserver platziert werden sollen. Jeder Replikatserver sollte an einem Router-Standort platziert werden. Führen Sie einen geeigneten Algorithmus für die Platzierung von Replikatservern aus, der die obige Topologie als Eingabe verwendet, um eine Platzierung der beiden Server bereitzustellen. Entscheiden Sie also, auf welchem Router jeder Server installiert werden soll (z. B. "Server 1 auf Router Rx.y, Server 2 auf Router Rm.n"), und erläutern Sie Schritt für Schritt, wie Sie zu Ihrer Entscheidung gelangt sind.)

Frage 3:

Despite the fact that the Domain Name System (DNS) has been originally deployed in the 1980s, when the number of objects in the Internet was way smaller than today, DNS still works very well. One reason for this is that DNS scales very well. Please explain how DNS achieves scalability.

(Obwohl das Domain Name System (DNS) bereits in den 1980er-Jahren entwickelt wurde, als die Anzahl an Objekten im Internet sehr viel kleiner war als heute, funktioniert DNS immer noch sehr gut. Ein Grund hierfür ist, dass DNS sehr gut skaliert. Erklären Sie, wie DNS Skalierbarkeit umsetzt.)

Frage 4:

Consider the following public-key cryptosystem: (Betrachten Sie das folgende Kryptosystem mit öffentlichen Schlüsseln:)

   Each user's key information includes a key pair (K+, K-) and a value n, where K+ is the public key, K- is the private key, and n is a modulus used in the encryption and decryption operations of these specific keys, as shown below. The modulus n and key K+ are public information. K- is kept secret by the user. 
   (Die Schlüsselinformationen jedes Benutzers umfassen ein Schlüsselpaar (K+, K-) und einen Wert n, wobei K+ der öffentliche Schlüssel, K- der private Schlüssel und n ein Modulus (Teilungsrest) ist, der bei den Verschlüsselungs- und Entschlüsselungsoperationen dieser spezifischen Schlüssel verwendet wird, wie nachfolgend dargestellt. Der Modulus n und der Schlüssel K+ sind öffentliche Informationen. K- wird vom Benutzer geheim gehalten.)
   The following function is used for encryption and decryption: E(K, m, n) = m^K mod n, where K is the key, m the message, and n the modulus corresponding to the specific key. When this function is used for encryption, K is the encryption key, m is the plaintext message, and the output of the function is the ciphertext (encrypted message). When it is used for decryption, K is the decryption key, m is the ciphertext, and the output is the original plaintext message.
   (Die folgende Funktion wird zum Ver- und Entschlüsseln verwendet: E(K, m, n) = m^K mod n, wobei K der Schlüssel, m die Nachricht und n der dem spezifischen Schlüssel entsprechende Modulus ist. Wenn diese Funktion zur Verschlüsselung verwendet wird, ist K der Verschlüsselungsschlüssel, m die Klartextnachricht und die Ausgabe der Funktion ist der Chiffretext (verschlüsselte Nachricht). Wenn die Funktion zur Entschlüsselung verwendet wird, ist K der Entschlüsselungsschlüssel, m der Chiffretext und die Ausgabe die ursprüngliche Klartextnachricht.)
   To produce message digests, the following hash function is used: H(m) = m mod 5, where m is the message whose hash value we want to compute, and the output is the message digest.
   (Um Nachrichtenübersichten zu erzeugen, wird die folgende Hash-Funktion verwendet: H (m) = m mod 5, wobei m die Nachricht ist, deren Hashwert wir berechnen möchten, und die Ausgabe die Nachrichtenübersicht ist.)

User A wishes to send a message to user B using this cryptosystem. This plaintext message is the integer m = 8. The two users have the following keys:

(Benutzer A möchte mit diesem Kryptosystem eine Nachricht an Benutzer B senden. Diese Klartextnachricht ist die Ganzzahl m = 8. Die beiden Benutzer haben die folgenden Schlüssel:)

   User A: K+A = 7 (public key / öffentlicher Schlüssel), K-A = 3 (private key / privater Schlüssel), nA = 33 (modulus / Modulus),
   User B: K+B = 3 (public key / öffentlicher Schlüssel), K-B = 11 (private key / privater Schlüssel), nB = 15 (modulus / Modulus).

Answer the following questions filling in the correct integer values: (Beantworten Sie die folgenden Fragen und geben Sie die richtigen Ganzzahlwerte ein:)

   If A wishes to send the message encrypted in order to ensure confidentiality, what is the ciphertext value that B will receive?
   (Wenn A die Nachricht verschlüsselt senden möchte, um Vertraulichkeit zu gewährleisten, welchen Chiffretext erhält dann B?)
   Antwort
   If A wishes to assure B of the authenticity and integrity of the message, but not its confidentiality, what is the value of the message signature that B will receive?
   (Wenn A B die Authentizität und Integrität der Nachricht, aber nicht deren Vertraulichkeit versichern möchte, welchen Wert hat die Nachrichtensignatur, die B erhält?)


Frage 5:

Consider a social network where data are replicated across a number of distributed servers. Each user accesses the social network via the closest replica server.

Then, consider the following sequence of events:

   User A accesses the social network via replica server L1 and adds a "like" to B's profile picture.
   B accesses her profile via replica server L1 and sees the "like" from A.
   User C accesses the social network via replica server L1 and adds a "like" to B's profile picture.
   B accesses her account from a different location served by replica server L2, and sees the "like" from A but not the one from C.

Does this system provide monotonic read consistency and why?


(Stellen Sie sich ein soziales Netzwerk vor, in dem Daten auf mehreren verteilten Servern repliziert werden. Jeder Benutzer greift über den nächstgelegenen Replikatserver auf das soziale Netzwerk zu.

Betrachten Sie dann die folgende Abfolge von Ereignissen:

   Benutzer A greift über den Replikatserver L1 auf das soziale Netzwerk zu und fügt dem Profilbild von B ein "like" hinzu.
   B greift über den Replikatserver L1 auf ihr Profil zu und sieht das "like" von A.
   Benutzer C greift über den Replikatserver L1 auf das soziale Netzwerk zu und fügt dem Profilbild von B ein "like" hinzu.
   B greift von einem anderen Ort, der vom Replikatserver L2 bedient wird, auf ihr Konto zu und sieht das "like" von A, aber nicht das von C.

Bietet dieses System eine monotone Lesekonsistenz und warum?)

Frage 6:

You are the provider of a fitness tracking application which runs on a smartphone. The application collects useful data (e.g., user GPS coordinates, environment temperature, user velocity, heartbeat, and other health-related information) from the smartphone itself and from a wearable device (e.g., a smart watch), and sends them to a data analysis component for storage and processing. This component performs big data analytics to extract per user and aggregate fitness-related information, and provides an API to third parties to access anonymized user data for a fee. As the application provider, you have the option of running the data analysis component (i) directly on the user's smartphone, (ii) on another edge computing device of the user, or (iii) in the cloud. Which option would you select and why?

(Sie sind der Anbieter einer Fitness-Tracking-Anwendung, die auf einem Smartphone ausgeführt wird. Die Anwendung sammelt nützliche Daten (z. B. GPS-Koordinaten des Benutzers, Umgebungstemperatur, Benutzergeschwindigkeit, Herzschlag und andere gesundheitsbezogene Informationen) vom Smartphone selbst und von einem tragbaren Gerät (z. B. einer Smartwatch) und sendet sie an eine Datenanalysekomponente zur Verarbeitung und Speicherung. Diese Komponente führt Big-Data-Analysen durch, um Informationen pro Benutzer zu extrahieren und Fitnessinformationen zu aggregieren, und stellt Dritten eine API zur Verfügung, mit der sie gegen eine Gebühr auf anonymisierte Benutzerdaten zugreifen können. Als Anwendungsanbieter haben Sie die Möglichkeit, die Datenanalysekomponente (i) direkt auf dem Smartphone des Benutzers, (ii) auf einem anderen Edge-Computing-Gerät des Benutzers oder (iii) in der Cloud auszuführen. Welche Option würden Sie wählen und warum?)

Frage 7:

Consider the following Read/Write events. Does this system provide sequential consistency? If yes, why? If not, explain why and propose an ordering that offers sequential consistency.

(Betrachten Sie die folgenden R/W-Ereignisse. Bietet dieses System sequentielle Konsistenz? Wenn ja, warum? Wenn nicht, erklären Sie warum und schlagen Sie eine Reihenfolge vor, die sequentielle Konsistenz bietet.)

Frage 8:

You are the lead architect for an Internet of Things system, which needs to comply with real-time requirements in a smart factory. The software runs on a central server and gathers data from various single-board computers (e.g., Raspberry Pis) which are located all over the factory’s shopfloor. Communication between devices is done in a wireless fashion. Since there are many machines on the shopfloor, there could be interferences and data transfer might be faulty. In this setting, would you select TCP (Transmission Control Protocol) or UDP (User Datagram Protocol) for the communication between server and single-board computers? Explain your choice.

(Sie sind der/die Lead-ArchitektIn für ein Internet-of-Things-System, welches Echtzeitanforderungen innerhalb einer „smarten“ Fabrik erfüllen muss. Die Software läuft auf einem zentralen Server und sammelt Daten von einer Anzahl von Einplatinencomputern (z. B. Raspberry Pis), welche überall in der Fabrik verteilt sind. Die Kommunikation zwischen verschiedenen Geräten geschieht dabei drahtlos. Da sich in der Fabrik viele Maschinen befinden, kann es zu Interferenzen kommen, so dass ein Datentransfer fehlerhaft sein kann. Würden Sie in einem solchen System TCP (Transmission Control Protocol) oder UDP (User Datagram Protocol) für die Kommunikation zwischen Server und den Einplatinencomputern verwenden? Begründen Sie Ihre Wahl.)

Frage 9:

In Paxos, the proposer needs a majority of PROMISE messages from the acceptors in order to proceed after a PREPARE message. What would happen if the proposer does not wait for such a majority of PROMISE messages? Would it still be possible to finish a Paxos run successfully? What would be the risk if doing so? Please explain your answer.

(In Paxos benötigt der Vorschlagende eine Mehrheit von PROMISE-Nachrichten von den Akzeptoren, um nach einer PREPARE-Nachricht fortfahren zu können. Was würde passieren, wenn der Vorschlagende nicht auf eine solche Mehrheit von PROMISE-Nachrichten wartet? Wäre es immer noch möglich, eine Paxos-Runde erfolgreich abzuschließen? Was wäre das Risiko dabei? Bitte erklären Sie Ihre Antwort.)

Frage 10:

A small company is developing a mobile application. In order to host the application's back end, which includes user authentication, authorization, and data storage functionality, the company has the option of using either an Infrastructure-as-a-Service (IaaS) or a Platform-as-a-Service (PaaS) solution. For each of the two potential cloud solutions, provide one advantage and one disadvantage.

(Ein kleines Unternehmen entwickelt eine mobile Anwendung. Um das Back-End der Anwendung zu hosten, das Benutzerauthentifizierung, Autorisierung und Datenspeicherungsfunktionen umfasst, kann das Unternehmen entweder eine Infrastructure-as-a-Service- (IaaS) oder eine Platform-as-a-Service-Lösung (PaaS) verwenden. Geben Sie für jede der beiden möglichen Cloud-Lösungen einen Vorteil und einen Nachteil an.)

Frage 11:

In the lecture, we have discussed the “election by bullying” algorithm. In this algorithm, a process sends an ELECTION message to all processes with a higher ID. Why is this necessary? If a process knows that it does not have the highest ID, why does it have to send ELECTION messages – would the algorithm not also work without these messages?

Also, would it not be an alternative to send exactly one ELECTION message only to the process with the highest ID, instead of all processes with a higher ID?

(In der Vorlesung wurde der „Bully-Algorithmus“ diskutiert. Dieser Algorithmus sorgt dafür, dass ein Prozess eine WAHL-Nachricht (ELECTION) an alle Prozesse mit einer höheren ID sendet. Warum ist dies notwendig? Wenn einem Prozess bekannt ist, dass er selbst nicht der Prozess mit der höchsten ID ist, warum sollten dann von diesem Prozess überhaupt WAHL-Nachrichten gesendet werden – würde der Algorithmus nicht auch ohne diese Nachrichten funktionieren?

Weiterhin stellt sich die Frage, ob es nicht ausreichen würde, wenn ein Prozess nur eine WAHL-Nachricht an den Prozess mit der höchsten ID senden würde, statt Nachrichten an alle Prozesse mit einer höheren ID zu senden?)

Frage 12:

A website is replicated across a large number of servers. The domain name of the website is resolved to the IP address of an HTTP load balancer. The load balancer receives a client request and dispatches it to one of the available servers in a random manner. Explain how this setup helps to provide failure transparency, and argue whether it provides replication transparency or not.

(Eine Website wird auf einer großen Anzahl von Servern repliziert. Der Domainname der Website wird in die IP-Adresse eines HTTP-Load-Balancers aufgelöst. Der Load Balancer empfängt eine Client-Anfrage und sendet sie nach einem Zufallsprinzip an einen der verfügbaren Server. Erläutern Sie, wie dieses Setup zur Bereitstellung von Fehlertransparenz beiträgt, und diskutieren Sie, ob es Replikationstransparenz bietet oder nicht.)