Wann spricht man von einem Distributed System?
Ein Distributed System ist ein System, dessen Komponenten sich auf verschiedenen Netzwerkcomputern befinden, welche dann miteinander agieren.
Was sind die Hauptmerkmale eines Distributed Systems?
No shared memory (-> Senden von Messages nötig) Kommunikation über Messages Mehrere,räumlich von einander getrennte Komponenten (Physical Distribution) Arbeiten zusammen um ein Ziel zu erreichen
Was sind die Vorteile eines Distributed Systems?
Billiger da billige Hardware anstatt spezieller Server benutzt werden kann Load Balance Arbeit wird gerecht auf die Komponenten aufgeteilt Parallelization Parallele Abarbeitung von Daten Independence Gegeben durch verschiedene Standorte Scalability Beliebiges Hinzufügen von weiteren Komponenten Fault Tolerance Fliegt eine Komponente raus, macht es denn andern nix aus
Woraus besteht ein Distributed System? (Hardware und Systemebene)
Hardwarelevel Prozessoren + Speicher (Computer) (In)Direkten Verbindung (Kabel, Lan, Bridges) Transport Protokolle (TCP, UDP..) System und Anwendungslevel Verteiltes Dateisystem, auf welches ein Netzwerk zugreifen kann Kommunikationsysteme, welche Prozesse miteinander verbinden Verteilte Anwendungen, auf welche ein Netzwerk zugreifen kann
Was macht Middleware?
Middleware kümmert sich um die benötigte Verbindung zwischen heterogenen Netzwerken, Anwendungen und Systemplattformen. Bereitstellung der benötigten Mittel zur Kommunikation zwischen den einzelnen Komponenten Sitzt zwischen Betriebssystem und Anwendung organisiert den Transport komplexer Daten (sog. messaging) vermittelt Funktionsaufrufe zwischen den Komponenten (sog. Remote Procedure Calls)
Welche Systemmodelle behandelt man bei Distributed Systems?
Client-Server-Modell Objektorientierte Modell Komponentenbasierte Modell Serviceorientierte Modell
Wie funktioniert das Client Server Modell?
- Teilt Programme in Server und Clients auf - Aufgaben werden mittels Server auf verschiedene Rechner verteilt - Können bei Bedarf Clients zur Lösung ihrer eigenen Aufgaben angefordert werden -> Client called Server (stellt Request), Server gibt Antwort Client: Der, der den Dienst braucht Server: Der, der den Dienst anbietet
Wie sind die Rollen des Clients und Servers im CS-Modell definiert?
Client Fragt eine Dienstleistung(Service) oder Operation an Auf Hardwarebene meist Computer, Laptops etc. Server Implementiert eine Dienstleistung , Operation und gibt ein Ergebnis bzw. eine Antwort Auf Hardwarebene meist Server Computer , ohne Austausch mit User
Was sind Nachteile für besonders große Verteilte Systeme in Bezug auf das CS-Modell?
Long Response Time Sofern ein Client über mehrere Server fragen muss, um eine Antwort zu erhalten, kann sich die Wartezeit immens hinauszögern. Availability Es reicht ein Computer welcher nicht ordnungsgemäß, gar nicht oder sehr langsam arbeitet, um die ganze Kette zu stören oder gar zu unterbrechen. Intransparency Selbst wenn der Client nah am Server liegt, sagt dies nichts darüber aus, wie lang die Übertragung dauert, da Server n viel weiter weg sein kann.
Wie funktioniert das Objekt-orientierte Modell?
Objekte werden auf verschiedene Adressräume verteilt Ein Objekt sendet eine Nachricht über Value and Reference Parameter Semantics an ein anderes Objekt um eine Aufgabe zu erfüllen Das ganze wird durch Remote Method Invocation ermöglicht, welches den Aufruf einer Methode eines entfernten Java-Objekts bezeichnet.
Wie unterscheiden sich das CS-Modell und das Object Oriented Model im Bezug auf Datenzugriff, -übertragung etc.
Welches ist besser?
Client Server Prozeduales Modell mit Einschränkungen Indirekter Datenzugriff mithilfe via RPC-Servern Datenübertagung über Wertparameter Fester Standort Object Oriented Kommunikation über Objekte Direkter Datenzugriff zu den Objekten Datenübertragung über Referenzparameter (an die Objekte) Kein fester Standort Object Oriented ist besser, denn es hat insgesamt ein besseres Level of Abstraction
Was ist ein Nachteil beim Object Oriented Modell? Durch welches Modell kann dies verbessert werden?
Ein Mangel an Flexibilität -> Einführung eines noch höhren Level of AbstractionComponent-based Trennung von Code und Konfiguration
Was sind die Vorteile eines Service-orientierten Modells?
Plattform und Programmiersprachenunabhängig durch Verwenden webbasierter Protokolle und auf XML basierter Datenrepräsentation Höhere Granularität Sehr hohes Abstraktionslevel Geringer Grad der Abhängigkeit mehrerer Hard- oder Software-Komponenten untereinander
Wie ist die Clustering Architektur aufgebaut? Vor und Nachteile?
Ähnlich zur Three Tier Architecture, nur mit einer Clusterebene als Processing Tier, welche Processing Servers zusammenfasst und mit einem Query Fixchange versieht. Diese überprüft, an welchen Server die query versendet werden soll. Vorteil: Fault tolerance, aufgrund der Query Fixchange, welche inaktive Server erkennt Parallel Processing, durch unterteilen der Anfragen Load Distribution Faster Nachteil: Consistency Problems
Wie ist die Three Tier Architecture aufgebaut?
1.Tier : Presentation Tier, User Interface 2.Tier : Processing Tier, implementiert die Business Logic 3.Tier : Datamangment, Implementierung von Datenbanken, Speichern von Anwendungsdaten
Was ist Cloud Computing?
Client kann über eine "Cloud" übers Internet auf eine Vielzahl configurable computing resources zugreifen (Server, Netzwerke, Anwendungen..) Vorteil: Keine Investitionskosten für Server-Hardware Geräte-, zeit- und ortsunabhängiger Zugriff Skalierbarkeit
Was sind die fünf Charakteristiken von Cloud Computing?
On-demand Self Service läuft automatisch ohne Interaktion mit dem Service Provider ab. Broad Network Access über das Netz verfügbar und nicht an einen bestimmten Client gebunden. Resource Pooling: Ressourcen des Anbieters liegen in einem Pool vor, aus dem sich viele Anwender bedienen können Rapid Elasticity Services können schnell und elastisch zur Verfügung gestellt werden, in manchen Fällen auch automatisch. Measured Services Ressourcennutzung kann gemessen und überwacht werden und entsprechend bemessen auch den Cloud-Anwendern zur Verfügung gestellt werden
Was ist der Vorteil gegenüber Cloud Computing zu herkömmlichen vor-Ort?
Immer und viel billiger Skalierbar Sicherer, sofern dem Provider vertraut werden kann Skalierbare Kosten, pay-per-use Kein Netzwerkadmin zur Wartung nötig (aber womöglich Cloud Experte) Jedoch : Im Gegensatz zur vor-Ort nur limitierter Zugriff (Admin Interfaces)
Vier Arten von Services!
Transaction service Kontrolliert Transaktionen Security service Sorgt für Authentifizierung Encryption Sichert Daten vor fremden Zugriff Directory services Nötig, damit auf etwas zugegriffen werden kann
Vergleich der drei Arten von Peer to Peer Architektur!
Centralized Geringer Overhead Limitierte Skalierbarkeit Fault Tolerance low, wenn eine Komponente ausfällt, fällt alles aus Geringe Komplexität Decentralized,flat hoher Overhead durch Flooding Limitiert durch Flooding Fault Tolerance high Mittlere Komplexität Decentralized,hierarchical medium Overhead, wächst mit Anzahl Superpeers Hohe Skalierbarkeit Fault Tolerance mittel, wenn Superpeer ausfällt, ist nur dessen Untermenge nicht mehr erreichbar Hohe Komplexität
Wie unterscheiden sich die drei Peer to Peer Arten?
Centralized Alle Knoten sind an einem zentralen Knoten gebunden, welcher als Directory funktioniert Pure P2P –Decentralized, Flat Kein zentraler Knoten, jeder Knoten ist mit irendeinem Nachbar verbunden, Nachrichten werden geflooded bis sie am Ziel angekommen ist. Hybrid P2P –Decentralized, Hierarchical Es gibt Supernodes, welche Teil-Directories besitzen -> Flooding zwischen den Supernodes
Wo wird Peer to Peer eingesetzt?
Parallel Application Collaboration Content Sharing
Wie unterscheidet sich Peer to Peer von Client Server?
m Unterschied zum Peer-to-Peer-Modell, bei dem ein beteiligtes Programm innerhalb des Netzwerkes gleichzeitig Client und Server darstellt, sind beim Client-Server-Modell die Komponenten Client und Server getrennt und auf verschiedene Programme verteilt.