AVS

Anwendung verteilter Systeme

Anwendung verteilter Systeme


B. M.
Diese Lernkarten behandeln fortgeschrittene Konzepte der Informatik auf Universitätsniveau, mit Fokus auf REST, Authentifizierung und Ressourcenmanagement. Sie decken Themen wie HTTP-Methoden, Idempotenz, Sicherheit und Zugriffskontrollen ab, einschließlich der Verwendung von Tickets und Capabilities. Praktische Beispiele und Verfahren wie Kerberos, RESTful APIs und sichere Authentifizierungsmethoden werden erklärt. Ideal für Studierende und IT-Profis, die ihr Verständnis von Netzwerkprotokollen und Sicherheit vertiefen möchten.
Cartes-fiches
123
Utilisateurs
2
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
20.09.2016 / 19.01.2017

Cartes-fiches

Versuchen Sie möglichst präzise den Begriff des Verteilten Systems zu definieren. Ist nach Ihrer Definition das Web ein Verteiltes System?

Vernetzte Komponenten innerhalb eines Netzwerks mit verschiedenen Hardware-Rechner realisiert

Beschreiben Sie die grundsätzliche Architektur eines Client-ServerSystems. Wann ist eine Komponente ein Client und wann ein Server?

Client = Software in der Rolle eines Anforderers einer Dienstleistung

Server = Software in der Rolle eines Erbringers einer Dienstleistung

Was wird eigentlich unter einer Komponente (in der Software) verstanden? Definieren Sie diesen Begriff in Hinblick auf Service und Benutzt-Relation. 

Klassenkomplex mit einer explizit definierten Schnittstelle, an der eine in sich geschlossene Leistung erbracht wird und die eine weit gehend freie Kombinierbarkeit mit anderen Komponenten ermöglicht.

Was wird unter einer Benutzt-Relation verstanden? 

Abhängigkeit von der Korrektheit, d.h. der korrekten Erbringung einer Dienstleistung an einer definierten Schnittstelle

Nennen Sie mindestens zwei wichtige Ziele, die mit dem Konzept der Komponenten realisiert werden sollen. 

Große Unabhängigkeit und damit Eigenständigkeit

• Hoher Wiederverwendungsgrad

• Programmieren im Großen

• Basis Verteilter Systeme

Auf welche prinzipiellen Arten können Komponenten interagieren? Nennen Sie zwei Möglichkeiten. 

Schnittstellen

Konnektoren

Erläutern Sie die Funktion der Middleware in Bezug auf die Komponententechnologie. Skizzieren Sie dabei, welche Aufgaben die Middleware hat.

(auch) Realisierung der Schnittstelle zwischen zwei oder mehreren Komponenten als Schicht eines verteilten Systems 

Nennen Sie vier Beispiele für Implementierungen von Middleware. 

DCOM, COM+, .NET

ODBC (Microsoft), JDBC (S

 – JBOSS

Bei Corba gibt es eine IDL. Was ist das? Wofür steht das Kürzel IDL?

 Abstrakte Sprache zur Technologie-unabhängigen Beschreibung von Schnittstellen

 

Interface Definition Language 

Können Komponenten wie Klassen auch in Vererbungsbeziehungen stehen? Begründen Sie die Antwort. 

Komponenten sollten in keiner Vererbungsbeziehung untereinander stehen (Corba erlaubt es aber z.B.). • Begründung: – Jede Vererbung öffnet eine Sicht auf eine konkrete Implementierung und verletzt damit das Prinzip der Kapselung. – Durch Vererbung entstehen stark gekoppelte Systeme, die nach längerer Weiterentwicklung nur noch schwer wartbar sind.

Bei der Beschreibung von Architekturen können Standpunkte eingenommen und aus deren Sicht etwas definiert werden. Erläutern Sie dieses Verfahren anhand eines Beispiels.

 Ein Standpunkt ist eine konkrete Kombination von Aspekten, die durch die Interessen der Projektbeteiligten bestimmt ist.

Komponenten und Konnektoren-Standpunkt: Aufbau des Komponentensystems

• Laufzeitstandpunkt: Komponenten und Laufzeitumgebungen bzw. Sprachen

• Prozess-Standpunkt: Threads und Prozesse sowie Synchronisation

• Verteilungsstandpunkt: Wo welche Komponenten laufen

Was wird unter Persistenz einer Komponente verstanden?

 Fähigkeit eines Programms/Software/Komponente ihren internen Zustand länger als die Lebenszeit des korrespondierenden Objekts im RAM zu erhalten

Komponenten werden meist innerhalb von Containern betrieben. Was ist das? 

Laufzeitumgebung zum Management von Komponenten

Zwischen Container und Komponente liegt ein Management-Interface. Nennen Sie Beispiele von Operationen dieses Interfaces. 

getter setter

Was wird unter eine Factory-Klasse verstanden? 

Objekterzeugung durch Aufruf einer Methode

Wo sollten die Factory-Klassen zum Aufbau einer Komponente liegen? Im Container oder in der Komponente selbst? 

im Container

Was sind (in Java z.B.) Annotations?

Die Programmiersprache Java stellt mit Javadoc und den Annotationen zwei Mechanismen zum Einbinden von Metadaten zur Verfügung. Diese werden insbesondere im J2EE-Umfeld eingesetzt, um verschiedene Dateien automatisiert zu erzeugen. Dazu zählen beispielsweise SQL-Dateien, Deployment-Deskriptoren und die mit Enterprise Java Beansverbundenen Schnittstellen (Remote Interface, Home Interface, ...).

Ist Parallelität innerhalb einer Komponente sinnvoll? Nennen Sie dazu ein gutes Beispiel.

Ja

CSCW, VideoKonferenzen, WFMS

Der Container kann in einen Upper und einen Lower Layer aufgeteilt werden. Nennen Sie jeweils Beispiele für Funktionen dieser Schichten. 

upper layer: Laden, Starten, Stoppen • Entladen • Wiederanlauf

 

lower layer: Kommunikation • Betriebssystem

Welche drei Arten von Beziehungen können zwei Komponenten haben? 

Zwischen Threads • Zwischen Prozessen • Zwischen Systemen

Ein Container hat viele Aufgaben, erläutern Sie die folgenden: Authentifizierung, Permission, Time, Mover

Auth: Authentifizierung (Prüfung der Identität)

Permission: Vergabe von Rechten (Autorisierung)

Time: Abstimmung der Uhren

File: Austausch von Dateien •

Transport: Schnittstelle zum Kommunikationssystem

Welche drei Funktionen hat der Booter innerhalb der Container? 

Hoch- und Herunterfahren der Anwendung, Migration

Wenn Sie eine verteilte Applikation abstrakt, also implementierungsunabhängig beschreiben wollen, was benötigen Sie dazu? IDL/CDL, ADD oder CDD?

CDD

Was ist ein Prozess und was ein Thread? Und was wird in dieser Lehrveranstaltung unter einer Task verstanden? 

Prozess = Sequentiell ablaufendes Programm

• Thread = Faden = Coroutine = Light weight Process = Eigenständiges sequentiell ablaufendes Programmstück als Teil eines Prozesses

Der zusammenfassende Oberbegriff von Thread und Prozess soll hier Task heißen (mit einer Tasktabelle)

Was ist ein kritischer Abschnitt? Gibt es zwei gleiche kritische Abschnitte? Wodurch können kritische Abschnitte mit einander verbunden sein?

Kritischer Abschnitt = Bereich im Code, bei dessen Ausführung Probleme mit anderen Threads auftreten können

 Variablen, Platten

Alle kritischen Abschnitte, die sich auf dieselbe Menge von Betriebsmitteln beziehen, werden zu einer Klasse zusammen gefasst.

Was bedeutet bei kritischen Abschnitten eine Klasse? Müssen kritische Abschnitte derselben oder anderer Klassen koordiniert werden?

Wenn an mehreren Stellen auf dieselben Variablen aus verschiedenen Threads zugegriffen wird, so bilden alle diese Stellen jeweils kritische Abschnitte derselben Klasse. • Alle kritischen Abschnitte einer Klasse müssen untereinander abgestimmt werden. • Kritische Abschnitte verschiedener Klassen brauchen nicht koordiniert zu werden.

 Was ist ein Deadlock? Nennen Sie dazu ein Beispiel. Was wird unter Starvation verstanden? 

Warten auf ein Ereignis, das nicht eintreten kann, da die das Ereignis signalisierenden Vorgänge auf eine Aktivität eines Tasks warten, der selbst auf das Ereignis wartet.

You-after-you-Problem – Verkehrskreuzung mit vier Autos

 

Starvation = Zu langes Warten auf ein mögliches Ereignis als Folge übermäßiger "Ungerechtigkeit" zwischen Tasks

Beschreiben Sie das Szenario der Spaghetti essenden (und auch denkenden) Philosophen. Konstruieren Sie eine Deadlock-Situation und eine Situatuion, bei der Starvation entsteht.

Ein Philosoph isst entweder Spaghetti oder er denkt. Essen und Denken müssen sich abwechseln und nicht zu lange dauern (in beiden Fällen drohen sonst gesundheitliche Schäden). • Philosophen benötigen zum Essen zwei Gabeln (Erziehung). • Bestimmte Algorithmen der Philosophen führen zu Deadlocks, andere zu Starvation, andere sind vollkommen korrekt.

 

Folgendes Verfahren führt zum Deadlock: – Jeder nimmt die Gabel rechts – Jeder wartet auf die Gabel links • Folgendes Verfahren führt zum Verhungern (Starvation): – Jeder nimmt die Gabel rechts – Wenn die fehlende Gabel nicht verfügbar ist, legt er die rechte Gabel zurück. – Es beginnt von vorn

Beschreiben Sie eine durchaus reale Situation im Straßenverkehr, in der ein Deadlock entsteht. 

Verkehrskreuzung mit vier Autos

Welche Aufgaben haben die beiden abstrakten Operationen enter() und leave() (wie sie in der Veranstaltung eingeführt wurden)? 

 lock() und unlock() 

Welche drei prinzipiellen Arten der Interprozess-Kommunikation werden in der Praxis benutzt? Schildern Sie deren Funktionsweise.

speicherbasiert :Shared Memory

strombasiert:Pipe Named Pipe, Sockets

nachrichtenbasiert : Messages, Signale Exceptions 

Zwei Threads im selben Prozess wollen miteinander kommunizieren. Welche der drei Arten von Interprozess-Kommunikation ist am schnellsten und auch meist am sinnvollsten?

speicherbasiert

Mit welcher Hardware-Komponente wird die Interprozess-Kommunikation mit der Benutzung gemeinsamen RAMs zwischen Prozessen realisiert?

MMU

Neben den binären Semaphoren gibt es noch die Integer-Semaphoren. Wodurch unterscheiden diese sich von den binären? 

Die eine Semaphore (empty) zählt die freien Bereiche, die andere die belegten Bereiche.

Definieren Sie den Remote Procedure Call als Gegensatz zum Local Procedure Call. 

Local Procedure Call = Sprung in eine Routine desselben virtuellen Speichers (VM)

 

 Remote Procedure Call (RPC) = wie Local Procedure Call, nur dass die Routine in einem anderen virtuellen Speicher liegt als der Aufrufer

Können zwei Threads mit einem Remote Procedure Call miteinander kommunizieren? Bedingungen dafür? 

werden auf gleichem Betriebssystem ausgeführt

 Mit welchen besonderen Problemen muss sich die Implementierung des Remote Procedure Calls im Gegensatz zum lokalen Prozeduraufruf beschäftigen? Nennen Sie zwei.

Sendequeue ist voll

 

Empfangsqueue ist voll

Warum kann beim Remote Procedure Call in jedem Falle vom Client und vom Server gesprochen werden? Dagegen werden beim einfachen Nachrichtenaustausch nur Daten zwischen Gleichberechtigten ausgetauscht.

Ergebnis der Nachricht wird zurückgesendet

Was macht die reply()-Operation anders als die send()-Operation? 

Antwort auf den Empfang mit Bezug auf das Empfangene

Beschreiben Sie das Send-and-Wait-Protokoll. Sind bei diesem Protokoll Deadlocks möglich? 

der Sender nach einem Senden immer auf die Bestätigung durch den Empfänger wartet,

 

nein

Étudier