VSYS Theorie 2020
Theoriefragen
Theoriefragen
Set of flashcards Details
Flashcards | 69 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | University |
Created / Updated | 31.01.2020 / 04.07.2023 |
Weblink |
https://card2brain.ch/box/20200131_vsys_theorie_2020
|
Embed |
<iframe src="https://card2brain.ch/box/20200131_vsys_theorie_2020/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Wie kann bei RMI ein Load-Balancing realisiert werden und welche Maßnahmen sind dafür erforderlich ?
Um ein Loadbalancing bei RMI zu realisieren, benötigt es einer weiteren Komponente (Loadbalancer), welche zwischen den beiden Partnern steht und die einkommenden Anfragen entgegennimmt und entsprechend eines Loadbalancing an die Server verteilt.
RMI verfolgt das Prinzip der Verteilungstransparenz. Wie unterscheidet sich ein entfernter Methodenaufruf von einem lokalen ? Welcher technische Sachverhalt ist die Ursache für diesen Unterschied ? Bei welchen Ausnahmen trifft der Fall nicht zu ?
Bei einem entfernten Methodenaufruf wird eugentlich nur der Stub aufgerufen. Der Stub hat die Methode nicht selber implementiert, er leitet diese an das eigentliche entfernte Objekt weiter. Der technische Sachverhalt ist, dass Client und Server unterschiedliche Adressräume haben.
Ausnahmen sind skalare Werte, welche über Call by Value übergeben werdeund lokale Objekte, welche serialisiert übertragen werden.
In welchem Anwendungszenario von Sockets ist es zwingend erforderlich ein ServerSocket Objekt mit der Methode close() zu schließen, auch wenn das Objekt danach nicht mehr benötigt wird ? Warum ist das erfgorderlich ?
Sockets blockieren eine Verbindung. Erwartet der Server weitere Anfragen auf einem bestimmten Port, die Verbindung mit dem vorherigen Client wurde aber nicht ordnungsgemäß geschlossen, so kann der Server keine weiteren Anfragen mehr entgegennehmen.
Erklären sie kurz den Zusammenhang zwischen dem Grad der Synchronisierung und dem Grad der Nebenläufigkeit zweier Threads. Wie sind in diesem Zusammenhang die Synchronisierung einer Methode und eines Quelltext-Blocks zu bewerten ?
Eine hohe Synchronisierung wirkt einer hohen Nebenläufigkeit entgegen. Synchronisiere ich zu viel oder an den falschen Stellen, erhalte ich ein fast sequentielles Programm. Synchronisiere ich eine Methode, so sperre ich das komplette Objekt für den anderen Thread. Synchronisiere ich nur einen Quelltext-Block innerhalb einer Methode, dann erreiche ich eine höhere Parallelisierung.
Welchen Anforderungen an ein verteiltes System kommt DNS mit den drei Elementen NS Ressource Record, A Ressource Record (Set) und Cache nach ? Welche grundsätzlichen Lösungsansätze verwendet DNS an dieser Stelle ?
Genaue Aufgabenstellung in Gedächtnisprotokoll
DNS kommt hier (a) der Partitionierung und in (b) der Replikation nach. Der Cache kann als eine Unterart der Replikation bzw Vorarbeit gesehen werden, wodurch die processing-time oder auch unnötige Wartezeiten minimiert werden.
DNS versucht hier die Skalierbarkeit verteilter Systeme entgegenzuwirken. Replikation und Partitionierung wirken der Größenskalierbarkeit entgegen, wodurch die processing-time oder auch unnötige Wartezeiten minimiert werden.
Durch die zufällige Vergabe der Anfragen findet eine Art Loadbalancing statt, was der Nebenläufigkeit zu Gute kommt.
Das einfache Client-Server Modell benötigt zwei Klassen auf Server Seite. Warum ist das so und warum werden es bei RMI 5 Klassen ?
Da ein Server mit mehreren Clients kommunizieren soll, reicht eine Klasse, bzw. ein Thread nicht aus -> es wird Multithreading benötigt. Klasse 1 wartet auf Anfragen der Clients. Bei Anfrage wird Thread in Klasse 2 gestartet, welcher die Abbarbeitung übernimmt und Klasse 1 kann weiter auf andere Anfragen warten.
Bei RMI muss Client an entferntes Objekt des Servers gelangen. Dafür wird eine RMIServer Klasse benötigt, welche die Registry erstellt und den Stub exportiert. RMIClientListener wartet dann auf Anfragen des Clients. Der Client ruft durch den ClientListener (Interface 1) eine Methode auf und erhält den Stub für due tatsächliche ClientConnection (implementiert Interface 2).
Somit haben wir den RMIServer (Registry, Export), die beiden bekannten Komponenten RMIClientListener und RMIClientConnection, sowie jeweils ein Interface für die beiden Klassen.
Wie kann bei JMS Loadbalancing erreicht werden ?
JMS -> Multidirektionale Kommunikation
JMS unterstützt den Lastausgleich, indem es mehrere Empfänger in einer Warteschlange zulässt. Die Nachrichten werden Punkt-zu-Punkt übermittelt, wobei nur ein Empfänger eine Nachricht auf einmal erhält. Der JMS-Broker gleicht die Last aus, indem er Nachrichten aus der Warteschlange an alle verfügbaren Empfänger in die Warteschlange übermittelt. Der Algorithmus für den Lastausgleich ist abhängig vom JMS-Provider.
Welches Prinzip führt zu einer Client-Server Architektur ?
Das Prinzip der Verteilung der Ressourcen. Der Server ist passiv und bietet Ressourcen an und der Client ist aktiv und fragt diese an.
Kapselung- und Verteilungsprinzip
Was ist Verteilungstransparenz ?
Verteilung zwischen zwei oder mehrerer Komponenten in einem verteilten System ist als Endbenutzer nicht zu erkennen.
Lok&Feel wie bei lokaler Anwendung
Wieso verteilt man Systeme ?
Je zentralisierter, desto anfälliger.
Dazu kommen mögliche Vorteile in Sachen Performanz, Datensicherheit, Portabilitätsvorteile etc.
Was sind Gründe für die fehlende Umsetzbarkeit einer globalen Uhr ?
Synchronisation mit Latenz und Jitter -> Synchronisation selbst benötigt Zeit, womit die Uhr immer verfälscht sein muss.
Geographische Distanz führt zu Latenz
Was ist Synchronisation ?
Informatik: Austausch von Daten, um auf dem gleiche Stand zu sein
Nicht IN: steht für zeitliche Abstimmung, man weiß wer wann was macht
Eigenschaften von verteilten Systemen ?
- Auf unterschiedliche Systeme verteilt
- Komponenten müssen miteinander kommunizieren
- Meist geographisch getrennt
Was ist eine Ressource ?
Gut, welches in endlicher Menge vorliegt und verbraucht werden kann. In der IT will man Ressource voll auslasten
Warum sind verteilte Systeme wichtig ?
Da irgendwann alles im Netz sein wird (Stichwort IOT)
Vor- und Nachteile verteilter Systeme ?
Vorteile:
- Ausfallsicherheit erhöht
- Kostenfaktor -> günstiger
- Skalierbarkeit
- Ermöglicht Erfüllung von ANforderung von Objekten, welche nicht am gleichen Ort sind
Nachteile:
- Wenn etwas nicht geht, weiß man nicht direkt warum
- Latenzzeit
- Jitter
- Netzbelastung
Was ist eine Domäne ?
Vertrauenswürdiges Netz ohne externen Zugriff
Was ist ein Port ?
Schnittstelle, an welche Daten gesendet werden.
Was ist ein Lookup-Dienst ?
Dezentralisiuerte Komponente. Fällt der Dienst aus, ist das gesamte System tot
Nennen sie ein Besipiel für Relokation
Die Ressource bewegt sich. Z.b. Skype-Call und man läuft aus der HTWG -> anderes Netz -> Anruf bricht ab
Nehmen sie Stellung dazu, ob ein verteiltes transparentes System realistisch ist.
Es gibt immer Dinge, auf welche wir keinen Einfluss haben. Es ist immer Latenz da, es ist immer eine geographische Distanz da, wir können solche Punkte nicht beeinflussen.
Die Faktoren Zeit und Geographische Distanz werden uns noch länger beschäftigen. Eine Anfrage kann unterschiedliche Zeit benötigen, es kann keine Antwort kommen und man weiß nicht warum.
-> Verteilung kann nie vollständig transparent sein
Was ist HTTP-Tunneling ?
Wird verwendet, um Firewalls zu umgehen.
direkt Netzwerkverbindung zwischen zwei Standorten.
Parallelisierungspotenzial von 100% in verteiltem System möglich ?
Nein, da dann keine Kommunikation mehr möglich wäre -> kein VS
0% können tendenziell auch nicht auftreten
Warum Aktivierung von Serverobjekten ?
Alle Objekte am Anfang zu erstellen macht keinenSinn, wegen Garbage Collector, Objekte on-demand, ...
Welcher Fragestellung geht MOM nach ?
Was können wir in verteilten Systemen abstrahieren ?
Milliarden Clients, Peer-to-Peer ist nicht gewünscht, Kommunikationn soll abstrahiert werden
Maximale Entkopplung führt zu Gedanke der MOM
Was ist bei MOM der Unterschied zwischen Message Passing und Message Queing ?
Massage Passing ist direkte Kommunikation -> B erhält Nachricht von A
Message Queing ist indirekte Kommunikation -> Empfänger holt sich die Nachricht
Was ist das Dilemma bei der Message Oriented Middleware ?
Wir wollen entkoppeln, aber jemand muss die Aufgabe ausführen. Was ist wenn dieser jemand ausfällt ?
Nennen sie 4 Unterpunkte von Verteilungstransparenz.
- Zugriffstransparenz: Keine Kenntnis darüber, wie Daten gespeichert werden und wie darauf zugegriffen wird
- Ortstransparenz: Zugriff auf Ressource, ohne Ort zu kennen
- Nebenläufigkeitstransparenz: Verbirgt die Tatsache, dass auf eine Ressource mehrere konkurrierende Prozesse zugreifen
- Replikationstransparenz: Verbirgt die Tatsache, dass eine Ressource in vielen Kopien vorhanden sein kann