Verteilte Systeme - HTWG Konstanz - AIN 5
Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase
Karteikarten für das Fach Verteilte Systeme von Prof. Dr. Haase
Kartei Details
Karten | 104 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 06.02.2016 / 26.01.2025 |
Weblink |
https://card2brain.ch/box/verteilte_systeme_htwg_konstanz_ain_5
|
Einbinden |
<iframe src="https://card2brain.ch/box/verteilte_systeme_htwg_konstanz_ain_5/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Lernkarteien erstellen oder kopieren
Mit einem Upgrade kannst du unlimitiert Lernkarteien erstellen oder kopieren und viele Zusatzfunktionen mehr nutzen.
Melde dich an, um alle Karten zu sehen.
-für Nachrictenintegrität(A sendet an B)
-->B(und kein Dritter unterwegs) kann erhaltene Nachricht nicht verändern
-->B kann sicher sein dass A Sender ist
-->A kann nicht leugnen Nachricht gesendet zu haben
-E-Commerce
-Nachricht digital signieren:
-->A verschlüsselt mit privatem Schlsüssel Ka-
-->wenn B Nahricht mit Ka+ entschlüsseln kann muss sie zuvor mit Ka- verschlüsselt worden sein
-Elektronische Dokumente die durch eine digitale Signatur einen öffentlichen Schlüssel an einen Namen (schlüsselinhaber) binden
- in einer public key infrastructure(PKI) gehört die Sginatur einer Certificate Authory(CA)
-können genutz werden um öffentliche Schlüssel zu tauschen un die Authentizität der Sender sicherzustellen
Transport Layer Security
-->authentisierungsprotokoll für sichere Internetkommunikation
-->hemeals Secure Socket Layer(SSL)
-->fügt eine sichere Transportschicht zwischen Transport und Anwendungsschicht ein
M-Maintainability: Wartbarkeit (wie leicht kann ausgefallenes System repariert werden)
A-Availability:Verfügbarkeit(unmittelbare Benutzbarkeit,auf Zeitpunkt bezogen)
R-Reliability:Zuverlässigkeit(system läuft ausfallfrei,auf zeitintervall bezogen)
S-Safety:Funktionssicherheit(passiert nichts schlimmes wenn System vorübergehend nicht korrekt arbeitet)
Fallen aus wenn sie ihre Zusagen(Spezifikation) nichtmehr einhalten können.
-Ursache wird als Störung(fault) bezeichnet
-Vorübergehend(transient): einmaliger Vorfall
-Wiederkehrend: unberechenbares Wiederauftreten
-Permanent: Fehler bleibt bestehen bis fehlerhafte Komponente ersetzt
-Informationsredundanz
-zeitliche redundanz
-technische redundanz
-->anwendung der bereits bekannten Replikationsstrategien
--->urbildbasiert: koordinator der writeoperationen koordiniert, stürtzt koordinator ab wählen übrigen Prozesse einen neuen
--->aktive replikation/quorumbasierte Protokolle
-für einigungsproblem in verteiltem System
-zu übereinstimmung in fehlerhaftem verteiteln system kommen
-Mehere lager, generäle können funnktonieren oder Verräter seinm können über Boten kommunizieren
-->a: alle loyalen Generäle treffen geliche Entscheidung
-->B:keline Anzahl verräter kann keine schechte Entscheidung herbeiführen
Was gibt es für unterschiedliche Fälle bei den Byzantinischen Generälen?
-synchrone und assynchrone Systeme (gehen zusammen jeweils immer einen schritt weiter)
-kommunkiationsverzögerung ist begrenzt oder nicht
-nacrichtenauslieferung in korrekter Reihenfolge oder nicht
-nachrichtenübertragung per unicast oder multicast
Was für mögliche Probleme gibt es?
-Anfrage geht verloren
-Server stürtz nach Erhalt der Anfrage ab
-Antwort geht verloren
-Client stürtzt nach Senden der Afrage ab
Was für mögliche Probleme gibt es?
-->Anfrage geht verloren: Was tun?
-Timer starten beim abschicken der Anfrage
-Wenn Timer vor Eintreffen einer Antwort abläuft ->anfrage erneut schicken
(anfrage tatsächlich verloren gegangen: korrektes Verhalten aus Server sicht
Anfrage geht wiederholt verloren: Client gibt auf
Anfrage geht nicht verloren: Server erhält anfrage doppelt)
-->u.U. bereits in Transportpotokoll(z.b. in TCP, nicht in UDP)
Was für mögliche Probleme gibt es?
-->Server stürtzt ab: Was tun?
nachdem er Dienst ausgeführt hat:
-hängt von dienssemantik ab -->keine weitere Aktion
-->erneute Ausführung
bevor er Dienst ausgeführt hat:
-->Nachricht erneut schicken (evnt. an anderen Server)
Was für mögliche Probleme gibt es?
-->Antwort geht verloren: Was tun?
Problem: Für Client nicht zu utnerscheiden von Servercash
-->einfachster fall: idempotente operationen ->Dienst beliebig oft erneut anfordern
1)min-einmal-semantik: operation so oft anfordern bis erfolgreich
2)höchstens-einmal-semantik:sofortige Aufgabe bei ausbleibender Antwort
Was für mögliche Probleme gibt es?
-->Client-Crash: Was tun?
Client stürtzt ab bevor Server Antwort sendet->elternlose antworten können zu Problemen führen(Ressourcenverschwendung,..)
Lösungen:
-Extermination: client speichert angestossene Dienste persistent,löscht nach Neustart noch eintriffende Antworten
-Reinkarnation: Verwendung von Epochen ->lebenszeit des Client
-->Client Neustart->neue Epoche
-->Broadcast mit neuer Epoche an alle Computer
-->die löschen anhängige alte Requests
-->client löscht antworten von überlebenden alten Requests
Alle Prozesse einer Gruppe bekommen jede gesendete Nachricht
-verteilte Aufgabe (Videokonferenz,internettelefonie)
-Robustheit,Zuverlässigkeit,Verfügbarkeit (redundante Datenkopien,..)
-Teile müssen auf bestimmten Rechnern laufen(spezielle HW,..)
-Wirtschaftlichkeit: mehere schwache Rechner billiger als ein starker
-Nutzung brachliegender Ressourcen
-Lastverteilung
-verrignerte Antwortzeiten bei Aufteilung iner Aufgabe in parallele Teilaufgaben
-Verteilungstransparenz:
--Verteiltes System aussehen lassen wie lokales
--Transparent bzgl Eigenschaftwenn die für Benutzer unsichtbar ist
--verschiedene Transparenzaspekte
-Skalierbarkeit:
-fähigkeit zu wachsen ohne wesentliche Anpassung der Algorithmen/Protokolle
--Größe(Hinzufügen neuer Komponenten)
--geographische Verteilung(verteilt in institution,stad,land, vollkommen banane
--administrative Verteilung(system funkt auch bei verteilung über administrative Domänen hinweg)
-Erhöht den Parallelitätsgrad durch Vermeiden von blockieremdem Warten, selbst auf 1 Prozessorkernsystem
-Verringert durchschnittliche Bearbeitungszeit fallls Threads parallel ausgeführt werden/blockierendes Warten enthalten
POOL_SIZE = Kerne / CPU-Intensität
-um sich gegenseitig zu synchronisieren
-um ergebisse miteinander auszutauschen
(über Kooperation -> gemeinsame DAten oder Kommunikation .> Nachrichtenaustausch)
-führt kritische Abschnitte in Transaktionen aus die im Konfliktfall zurückgesetzt und neu durchgeführt werden
-kommt aus DBMS Bereich
-optimistische Konfliktstrategie
-typische Sprache: Clojure
Einsatzgebiet: Bei Threadinteraktion mit Kooperation(gemeinsame Daten)
-Inkonsistenzen aufgrund konkurrierenden Zugriffs auf gemeinsame Daten
Schützen durch: Sperren, Software Transactional Memory(STM)
-verteiltes Betriebssystem(DOS):lokale mechanismen implementieren systemweit verfügbare Dienste, Ortstransparenz
-Netzwerkos(NOS):benutzer verwendet explizit Dienste von anderern Rechnern, keine Orttransparenz,skalierbarer,offener,heute in allen gängigen OS
-Middleware: weitere Softwareschickt eingeführt,kombiniert Vorteile von DOS(transparenz, einfachheit) und NOS(offenheit,Skalierbarkeit)
Die aufteilung der Funktionalität auf Komponenten
für verteilte systeme relevant:
-->geschichtete Architekturen
-->objektbasierte Architekturen
-->datenzentrierte ARchitekturen
-->ereignisbasierte Architekturen
-schichtweise Anordung der Komponenten
-höhere Sschicht = komplexere Dienste
-Immer nur Komponenten von Schicht drunter verwenden
-Anforderungen von oben nach unten, Antworten von unten nach oben
-Häufig verwendet, bestehd aus Präsentations-,Anwendungs-,Persistenzschicht
-Innerhalb der schichten meistens weiter geschichtet
-Objekte entsprechen Komponenten
-Interaktion erfolgt in Form von Methodenaufrufen
-häufig Kombination von SChichten und objektbasierter ARchitektur
-->Objekte scichten zugeordnet, aufrufe nur innerhalb derselben oder in niedererer Schicht
-Komponenten kommunizieren über gemeinsames Repo miteinander
-zeitliche Entkopplung der Komponenten voneinander
-Kommunikation über Weitergabe von Ereignissen
-Publish/Subscribe: Komponenten können EReignisse veröffentlichen, Middleware(Ereignisbus) sorgt für Weiterleitung an Komponenten die Ereignisse zuvor abonniert haben
-Kombinierbar mit datenzentrierter Arch. (gemeinsame Datenräume)
-
- 1 / 104
-