Verteilte Systeme
Fragen zu verteilten Systemen, beruhend auf der Vorlesungsreihe Verteilte Systeme an der DH Villingen-Schwenningen, Studiengang Wirtschaftsinformatik
Fragen zu verteilten Systemen, beruhend auf der Vorlesungsreihe Verteilte Systeme an der DH Villingen-Schwenningen, Studiengang Wirtschaftsinformatik
-
- 1 / 94
-
Cartes-fiches
Cloud Computing
Verfügbarkeit von IT-Infrastrukturen, Plattformen und Anwendungen über das Internet (on demand)
- verwendet Virtualisierung
- Utility Computing
Utility Computing
nur aktuell benötigte Ressourcen werden zur Verfügung gestellt und bezahlt
Arten von Clouds und Erläuterungen
Private Cloud: Provider und User gehören der selben Organisation an
Public Cloud: Provider und User gehören unterschiedlichen Organisationen an
Hybrid Cloud: Daten der Private und Public Clouds werden genutzt
Cloud Computing Landscapes
- Software as a Service
- Infrastructure as a Service
- Plattform as a Service
Software as a Service SaaS
Erklärung, Beispiel, Nutzer
- Softwareanwendungen laufen auf dem Browser bzw. Applikationsserver
- Bsp. : Google Docs
- Nutzer: Unternehmen, Privatpersonen
Plattform as a Service PaaS
Erklärung, Beispiel, Nutzer
- Betriebsplattform
- Bsp. Google App Engine
- Nutzer: IT-Planer, Entwickler
Infrastructure as a Service IaaS
Erklärung, Beispiel, Nutzer
- virtuelle IT-Infrastruktur und Hardware
- Bsp. Amazon Elastic Compute Cloud
- Nutzer: IT-Dienstleister, IT-Abteilungen
Cloud- Vorteile
- hohe Leistungsfähigkeit
- Kosteneinsparungen
- Flexibilität
Cloud-Nachteile
- Sicherheit
- Vendor- Lock-In
Grid Computing
Verbindung dezentraler Rechenkapazitäten zu einem virtuellen Hochleistungscomputer zur Bearbeitung rechnerintensiven Aufgaben
Was ist ein Socket?
vom Betriebssystem zum Zugriff auf TCP und UDP zur Verfügung gestellt
Funktionsweise Socket
- Server bietet Dienste an und wartet
- Client stellt Verbindungsanfrage
- Server erstellt neuen Socket und akzeptiert Client
- Response/Request Verfahren
- Server löscht Socket und schliesst Verbindung
Race Conditions
Race Conditions entstehen bei gemeinsamer Nutzung von Speicher und Dateien
Möglichkeiten zum Wechselseitigem Ausschluss
- Interruptsperrungen
- SperrVariablen einsetzen
- Strikter Wechsel
Semaphoren - Problem und Lösung
Problem: Race Condition beim Zählen
Lösung: Sempahor
- spez. Software-Objekte, de vom Betriebssystem bereitgestellt werden
- besitzt Zählervariable
Aufbau eines Semaphors
Semaphors Name
Zähler, Integer
Warteschlange
P: Down
V: Up
Funktion: Semaphor "Up"
= freigeben
Zähler = Zähler +1;
Wenn Warteschlange != leer {
älteste Prozedur aus der Schlange entsperren
}
Funktion: Semaphor "Down"
= nächste Prozedur
wenn Zähler = 0{
Prozess blockieren, an Warteschlange hängen
}
Zähler -1
Arten von Semaphoren
- binärer Semphor (mutex): nur 0 und 1
- Zählsemaphor: alle Zahlen
DocumentRoot
Startverzeichnis
DirecotryIndex
Start Dokument
Alias
erlaubt HTML Datei an anderer Stelle zu speichern als im DocoumentRoot
Virtual Host
Server kann auch mit anderem Hostname als Domain angesprochen werden
WebDAV
- dient zum Datentransfer
- ersetzt FTP
- direkte Bearbeitung und Erstellung im HTML-Editor
- gerade bearbeitete Dateien werden für andere gesperrt
- erweitert HTTP
MVC- Pattern
Bei einem komplexen Serversystem, kann der Zusammenhang zwischen Skripten, HTML-Dateien kompliziert werden. Daher das MVC- Pattern:
Model: Datenbank
Controller: Eingabe
View: Ansicht
AJAX
Server- Anfragen werden im Hintergrund ohne Neuladen ausgeführt
Bsp. Google Maps
Web Services
Konzept: Mensch - zu -Mensch- Kommunikation
Browser -- FTP/HTTP--> Server
Applikationsserver --SOAP/XML-->Applikationsserver
WSDL
Web Services Description Language
XML Datei beschreibt was für Daten zurückkommen bei Anfrage
REST
Representational State Transfer
Alle Ressourcen werden mit einer URL adressiert
HTTP Methoden: POST, GET, DELETE, PUT
Vorteile von REST
- einfache Programmierung
- JSON oder XML statt SOAP
- unabhängig von der Plattform
Same-Origin-Policy
Skripte werden können nur auf eigene Domain zugreifen
Zum Umgehen wird CORS verwendet
NOSQL-DB
= not only SQL
- wird bei vielen Lese- und Schreibanfragen verwendet
- nicht relational
- skalierbar
Eventual Consistency
= nur eventuell konsistent -> kein ACID
tritt bei Replikationen auf
Bsp. Anzeigen von Nachrichten
CAP- Theorem
C: konsistent (alle Nutzer greifen auf die selben Daten zu)
A: Availibility
P: Partitionierung
NoSQL-Kategorien inkl. Beispiele und Erklärung
- Dokumentenorientere DB
Schlüssel -> Dokument
Bsp. mongoDB - Key-Value-DB
Schlüssel -> kleiner Wert
Bsp. bei Logs, Amazon Dynamo - Spaltenorientierte DB
Spalten werden einzeln gespeichert, anders als bei SQL (Zeilen)
Bsp. Cassandra - Graphen DB
Beziehungen werden gespeichert
Bsp. Facebook- Freundschaften, Neo4J
Arten von Konsistenzen, Darstellung anhand von
N.. Anzahl aller vorhandenen Nodes
W... Anzahl aller Nodes, die beschrieben werden müssen
R... Anzahl aller Nodes, die gelesen werden müssen
- W=N, R=1 Consistency by writes
- R=N, R=1 Consistency by reads
- W+R <= N Eventual Consistency
- W+R > N Conssitency by quorum
Vector Check
NodeID, Versionssnr.
hilft bei Bestimmung von zeitl. Reihenfolge von Dateien
Map/ Reduce
= Verarbeitung riesiger Datenmengen
Map: Funktion liefert Daten pro Dokument und speichert in einem Zwischenergebnis
Reduce: Nimmt Zwischenergebnisse und fasst diese zu Endergebnis, z.B. Statistik, Sortieren
Cross-Site-Scripting
- auch CSS
- Angriff auf den Client
- Client klickt auf den vorbereiteten Link und führt Javascript Datei aus
Gegenmassnahmen: Cross-Site-Scripting
- alle <script> Tags entfernen
- Eingaben überprüfen mit RegEx
- Sonderzeichen durch HTML-Entities ersetzen