-
Definition Verteiltes System
System, in dem sich Hard- oder Softwarekomponenten auf vernetzten Computern befinden und nur über den Austausch von Nachrichten kommunizieren und Ihre Aktionen koordinieren
-
3 grundsätzliche Probleme bei verteilten Systemen
- Nebenläufigkeit
- Fehlende globale Zeit
- Unabhängige Ausfälle
-
4 Merkmale einer verteilten Anwendung
- VS für fachlich geschlossene Funktionalität
- Verteilung der Logik auf mehrere Komponenten
- Jede Komponente kann auf separatem Knoten (Rechner) liegen
- nutzt ein VS als Kommunikationsinfrastruktur
-
5 Beispiele für verteilte Anwendungen
- FTP
- Web
- Email
- Online-Shop
- Gruppenterminkalender
-
4 Ziele von verteilten Systemen (Motivation)
- Gemeinsame Ressourcennutzung
- Transparenz
- Skalierbarkeit
- Offenheit
-
8 Arten von Transparenz bei verteilten Systemen
- Leistungstransparenz
- Skalierungstransparenz
- Mobilitätstransparenz
- Ortstransparenz
- Zugriffstransparenz
- Nebenläufigkeitstransparenz
- Fehlertransparenz
- Replikationstransparenz
-
3 Merkmale von Nebenläufigkeit
- Ressourcenkapselung
- Synchronisation paralleler Zugriffe
- Beachtung der Problematik bereits beim Design eines Objekts, das Ressourcen kapselt, auf die parallel zugegriffen wird
-
3 Unterziele von Skalierbarkeit
- Kostenkontrolle
- Ressourcenkontrolle
- Leistungskontrolle
-
3 Aspekte der Offenheit bei VS
- Schnittstellen (veröffentlicht)
- Kommunikation (einheitlicher veröffentlichter Mechanismus)
- Heterogenität (unterschiedliche Hard/Software)
-
3 Aspekte der Sicherheit bei VS
- Vertraulichkeit
- Integrität
- Verfügbarkeit
-
4 Handlungsoptionen bei der Fehlerverarbeitung bei VS
- Erkennen
- Tolerieren
- Maskieren
- Ignorieren
-
4 Qualitätsanforderungen an VS
- Zuverlässigkeit
- Sicherheit
- Anpassbarkeit
- Leistung
-
4 Leistungsanforderungen an VS
- Antwortzeiten
- Durchsatz
- Lastverteilung
- Caching und Replikation
-
4 Ziele von Grid Computing
- Universelle Verfügbarkeit von Daten und Applikationen
- Dynamisches Angebot von Rechenleistung
- Kooperation über Firmengrenzen hinweg
- Gewährleistung von Zugriffsrechten und Datensicherheit
-
3 Systemmodelle bei VS
- Interaktionsmodell
- Fehlermodell
- Sicherheitsmodell
-
3 Aspekte des Interaktionsmodells
- Kommunikation
- Koordination
- Rahmenbedingungen
-
4 Fehlerarten beim Fehlermodell
- Dienstverweigerung / Auslassungsfehler
- Verarbeitungsabbruch
- Timing
- Zufällig
-
3 Prozesstypen
- Client-Prozess
- Server-Prozess
- Peer-Prozess
-
4 Client-Server Varianten
- Mobiler Code (Applets)
- Kooperierende Server (domain-Name-Server)
- Replizierte Server
- Proxy-Modell
-
5 Merkmale von mobilen Agenten
- Mobilder Code und aktueller Zustand
- Reist in einem Netzwerk von Computer zu Computer
- Nimmt jeweils einen oder mehrere Lokale Aufrufe vor
- Reduzierte Kommunikationszeit- und kosten
- Potenzielles Sicherheitsrisiko für die ausführende Umgebung
-
3 Merkmale Peer-to-Peer-Modell
- Gleichberechtigte Prozesse interagieren miteinander
- Jeder Prozess kann als Client- und Serverprozess auftreten
- Unabhängig von einem zentralen Server
-
6 Merkmale Ad-Hoc-Kopplung
- keine Konfiguration notwendig
- automatische Erkennung vorhandener Dienste
- automatische Bereitstellung eigener Dienste anhand der Konfiguration
- Reaktion auf Verbindungsabbrüche
- Sicherheitsprobleme
- Datenschutzprobleme
-
Definition Interprozesskommunikation (IPC)
Komponenten einer verteilten Anwendung laufen auf unterschiedlichen Knoten in unterschiedlichen Prozessen bzw. Threads. Mechanismus zum Nachrichtenaustausch zwischen Prozessen und zum sicheren Ressourcenzugriff
-
4 Arten der technischen Umsetzung von IPC
- über Hauptspeicher
- über Dateien
- über Pipes (lokal)
- über Sockets
-
3 Programmiermodelle bei IPC
- Entfernte Prozeduraufrufe (prozedural und synchron)
- Entfernte Methodenaufrufe (objektorientiert und synchron)
- Nachrichtenorientiertes Modell (beliebig programmiert und asynchron)
-
5 Schritte bei RPC
- Entkopplung von Client und Server durch Schnittstellendefinition
- Einführung von Stub und Skeleton als Zugriffsschnittstelle auf Client- und Serverseite
- Stub und Skeleton werden aus der Schnittstellenspezifikation generiert
- verantwortlich für Marshaling und Unmarshaling
- Stub und Skeleton ermöglichen die Zusicherung von Zugriffs- und Ortstransparenz
-
3 Protokolle für den Nachrichtenaustausch bei RPC
- R (Request)
- RR (request und Reply)
- RRA (Request, Reply und Acknowledge)
-
3 Einschränkungen bei entfernten Objekten
- Zugriff auf den Zustand nur über Methoden (Kapselung)
- keine Verwendung des Konstruktors möglich (Factoryklassen/Methoden notwendig)
- Zusätzlicher Fehlertypus (Remoteexception)
-
3 Merkmale Proxy-Pattern
- Client führt Stellvertreterobjekt des eigentlichen Serverobjekts ein (Proxy)
- Proxy und Serverobjekt implementieren die gleiche Schnittstelle
- Client kennt nur die Schnittstelle und nutzt diese für Aufrufe
-
9 Ablaufschritte bei RMI
- Definiere Interface
- Definiere Serverklasse mit Implementierung des Interfaces und instanziere ein Objekt mit Anmeldung bei Registry
- Definiere Clientklasse mit Referenz auf Objekt in der Registry und rufe dessen Methoden auf
- Generierung von Bytecode aller 3 Klassen mittels javac
- Generierung von stub und skeleton Bytecode mittels rmic
- Verteilung der erzeugten Dateien
- Starten der Registry auf dem Server
- Starten des Servers (Objekterzeugung und Anmeldung bei Registry)
- Starten des Clients
-
Interface-Code bei RMI
public interface ServerInterface extends Remote { Date getDatum() throws RemoteException;}
-
Servercode bei RMI
- implements ServerInterface
- main-Methode inklusive try-catch
- neues Objekt von der eigenen Klasse (server)
- ServerInterface stub = (ServerInterface) UnicastRemoteObject.exportObject(serverobjekt,0)
- Registry reg = LocateRegistry.getRegistry()
- reg.bind("ServerInterface", stub)
-
Clientcode bei RMI
- main-Methode inklusive try-catch
- Registry reg = LocateRegistry.getRegistry(hostname)
- ServerInterface stub = (ServerInterface) reg.lookup("ServerInterface")
- Aufruf der Methode des Servers über stub.[Methode]
-
5 Vorteile von RMI
- Einfache Implementierung
- Entfernte Aufrufe sind transparent
- Infrastruktur mit der Java Plattform frei verfügbar
- Caching bei lokaler Verfügbarkeit der Implementierung möglich
- Alle Dienste der Java-Plattform können genutzt werden
-
3 Techniken zur Erreichung von Sicherheit
- Verschlüsselung
- Authentifizierung
- Zugangskontrolle beim Ressourcenzugriff
-
3 Verfahren zur Erreichung von Vertrauen
- Zertifizierung durch vertrauenswürdige Organisation
- Anzahl der Kunden und damit wachsendes Vertrauen
- Mund-zu-Mund Propaganda
-
3 Klassen von Sicherheitsbedrohungen
- Erlangen von Informationen durch unberechtigte Empfänger (Leck)
- Unberechtigte Veränderung von Informationen (Intrigieren)
- Störung des Betriebs durch einen initial nicht zu ermittelnden Verursacher (Vandalismus)
-
5 Angriffsmethoden auf verteilte Systeme
- Unberechtigtes Kopieren von Nachrichten (Lauschangriff)
- Verwendung einer fremden Authentifizierung (Maskerade)
- Nachrichten abfangen und mit verändertem Inhalt weitergeben (Intrigieren)
- Speichern abgefangener Nachrichten und erneuter Versand (Wiederholung)
- Überflutung des Kanals oder der Ressource mit Nachrichten (Verweigerung)
-
4 grundlegende Sicherheitsziele
- Vertraulichkeit
- Integrität
- Authentizität
- Nicht-Abstreitbarkeit
-
3 Stufen der Berechtigungsprüfung
- Identifikation (login)
- Authentifikation (Passwort)
- Authorisierung (Berechtigungen)
-
4 Entwurfsrichtlinien für sichere Systeme
- Offenheit
- Lebenszeitbegrenzung
- Vertrauensbasis
- Angriffsmacht
-
Definition Klartext
Originalnachricht in einer für Menschen lesbaren Form
-
Definition Chiffre
Verschlüsselte Nachricht, die nicht mehr unmittelbar lesbar ist
-
Definition Konfusion bei der Verschlüsselung
Anwendung nicht destruktiver Operationen zur Verschleierung der Beziehung zwischen Blöcken in Klartext und Chiffre
-
Definition Diffusion
Zerstreuung klartextüblicher Wiederholung und Redundanz durch Umsetllung von Teilen des Klartextblocks
-
3 Anwendungsgebiete von Verschlüsselung
- Geheimhaltung und Integrität
- Authentifizierung
- Digitale Signatur
-
8 Arten von Speichersystemen
- Hauptspeicher
- Dateisystem
- Verteiltes Dateisystem
- Web
- Verteilter gemeinsamer Speicher
- Entfernte Objekte
- Persistenter Objektspeicher
- Persistenter verteilter Objektspeicher
-
6 Module von Dateisystemen
- Directory Modul (Dateiname - ID)
- File Modul (ID - Datei)
- File Access Modul (liest Inhalte/Attribute)
- Block Modul (Allokiert Blöcke)
- Device Modul (Datenträger und Caching)
- Access Control Modul (prüft Berechtigungen für Operationen)
-
8 Anforderungen an verteilte Dateisysteme
- Transparenz
- Nebenläufige Aktualisierungen
- Dateireplikation
- Heterogenität
- Fehlertoleranz
- Konsistenz
- Sicherheit
- Effizienz
-
3 verschiedene Dateisystem-Architekturen
- Flacher Dateidienst
- Verzeichnisdienst
- Client-Modul
-
Begriffe bei Uhren
- Uhrauflösung
- Uhrabweichung
- Synchronisationsfehler
- Abweichungsgeschwindigkeit
- Korrektheit
- Monotonie
-
Formeln für Zeitsynchronisation mit Timeserver für ein synchrones System
- Zeit-Timeserver + (Obergrenze max + Untergrenze min) / 2
- optimale Grenze mit N Uhren = (max+min)/1-(1/N)
-
3 Schritte beim Algorithmus von Christian
- Nachricht an Zeitserver mit Zeit und Roundtrip-Time
- Zeitserver setzt seinerseits aktuelle Zeit t_s ein
- System stellt eigene Zeit auf = t_s + Roundtrip-Time / 2
-
5 Merkmale des Algorithmus von Christian
- Probabilistisches Verfahren
- Asynchrones System
- Annahme, dass sich Roundtrip-Time auf beide Nachrichten gleichmäßig verteilt
- Voraussetzung ist eine relativ kurze Nachrichtenlaufzeit
- Verbesserung durch mehrfaches Senden und Verwendung des minimalen Roundtrip-Wertes
-
6 Schritte beim Berkley-Algorithmus (Interne Zeitsynchronisation)
- Master ermittelt Zeit
- Master sendet Zeitanfragen an alle anderen Rechner (Slaves)
- Ermittelt Roundtrip-Time und mittelt über alle Zeitwerte inkl. dem eigenenm
- Master eliminiert vor der Mittelwertbildung alle Werte größer einem definierten Maxima für Roundtrip-Times und Uhrabweichungen als Ausreisser
- Sendet Abweichungsbetrag an jeden Slave
- Bei Ausfall des Masters Auswahl eines neuen über Auswahlalgorithmen
-
Problem beim Berkeley-Algorithmus
Bei neuer Auswahl eines Masters garentieren die Standardauswahlalgorithmen kein festes Intervall für Abschluss der Auswahl, daher keine definierte Genauigkeit mehr
-
4 Entwurfsziele des Network-Time-Protocol (NTP)
- Genauigkeit
- Zuverlässigkeit
- Skalierbarkeit
- Störungsresistenz
-
3 Modi bei NTP
- Multicast - leichte Ungenauigkeit, für LAN's
- Prozeduraufruf - ähnlich Algorithmus von Christian
- Symmetrisch - mehrere Server im LAN, höchste Genauigkeit
-
4 Funktionen des Beobachters bei der verteilten Ereignisbenachrichtigung
- Weitergabe von Nachrichten
- Nachrichten filtern
- Auswertung von Ereignismustern
- Persistieren der Nachrichten
-
3 Merkmale von Middleware
- Softwareschicht zwischen VS und Anwendung zur Unterstützung der IPC
- Setzt auf Transportprotokoll und Zugriffsschnittstelle des VS auf
- verbirgt Verteilungsaspekte einer Anwendung (Transparenz)
-
2 Arten von Middleware
- Kommunikationsorientiert
- Anwendungsorientiert
- Nachrichtenorientiert
-
6 Aktuelle Middleware-Technologien
- RMI
- Java Message Service
- .NET Remoting
- Windows Communication Foundation
- Webservices
- ESB-Systeme
-
3 Merkmale kommunikationsorientierter Middleware
- Setzt direkt auf Protokoll des VS auf
- Dient als Kommunikationsinfrastruktur
- Konzentriert sich auf reine Kommunikationsaspekte
-
5 Aufgaben der Kommunikationsinfrastruktur bei komm.orientierter Middleware
- Kommunikation zwischen Middleware-Schichten
- Lokalisation und Identifikation der Kommunikationspartner
- Unterstützung von Thread- und Prozessverwaltung
- Bereitstellung eines einheitlichen Datenformats
- Logische Einordnung von Middleware
-
5 Probleme bei der Datentransformation bi komm.orientierter Middleware
- Heterogenität der Plattform
- Heterogenität der programmiersprache
- Unterschiedliche Darstellung von Ganzzahlen
- Unterschiedliche Reihenfolge der Speicherung von Bytes
- Unterschiedliche Zeichencodierung
-
2 Lösungsansätze für die Probleme bei der Datentransformation
- Betriebssystemspezifische Middleware
- einheitliches Übertragungsformat
-
Definition Marshaling
Transformation von Daten in ein Übertragungsformat, das geeignet mit einer Nachricht verschickt werden kann. Das Format muss Nachrichtenpartnern und Middleware bekannt sein
-
Definition Unmarshaling
Rücktransformation eines Übertragungsformates in Daten einer konkreten Programmiersprache
-
3 gängige Fehler, die bei Verteilung auftreten
- Fehlerhafte Übertragung auf Bitebene
- Fehlende Nachrichten
- Ausfall von Komponenten
-
4 Schritte beim nachrichtenorientierten Modell bei Middleware
- Sender stellt eine Nachricht in die Warteschlange des Empfängers
- Empfänger nimmt Nachricht entegen, sobald er empfangsbereit ist
- weitgehende Entkopplung von Sender und Empfänger
- Versenden einer Antwortnachricht nicht vorgesehen
-
5 Dienste und Mechanismen nachrichtenorientierter Middleware
- asnychrone Kommunikation
- Unterstützung verschiedener Message-Passing-Modelle
- Warteschlangenverwaltung
- Verbindungsmanagement
- Quality-of-Service-Zusicherungen
-
6 Aufgaben des Queue Managers bei Middleware (Warteschlangenverwalter)
- Verwaltung von Warteschlangen unterschiedlicher Empfänger
- Initiierung von Warteschlangen
- Zuordnung von ankommenden Nachrichten zu Warteschlangen
- Überwachung des Füllungsgrades von Warteschlangen
- Transport von Nachrichten über Subnetz--Grenzen hinaus
- Transformation von Nachrichten in ein anderes Format (Broker)
-
3 Einsatzgebiete nachrichtenorientierter Middleware
- Lose Kopplung von Sender und Empfänger
- Nachrichten weitgehend unabhängig von Programmiersprache
- geeignet für Integration unterschiedlicher Anwendungen
-
3 Modelle nachrichtenorientierter Middlware
- Point-to-Point
- Request-Reply
- Publish-Subscribe
-
3 Schritte Point-to-Point-Model bei nachrichtenorientierter Middleware
- Queue speichert Nachricht bis sie gelesen wird oder abläuft
- Sender stellt Nachricht in die Queue genau eines Empfängers
- Empfänger verarbeiter sobald bereit und sender Empfangsbestätigung
-
3 Merkmale Request-Reply-Model bei nachrichtenorientierter Middleware
- ermöglicht synchrone Kommunikation über asynchrone Middleware
- Verschicken einer Nachricht und Empfangen einer Antwortnachricht als eine Einheit
- mögliche Umsetzung über unterschiedliche Warteschlangen für Request und Reply
-
5 Schritte beim Publish-Subscribe-Model bei nachrichtenorientierter Middleware
- Prozesse erhalten Rollen als Publisher bzw. Subscriber
- Subscriber abonnieren Nachrichten zu einem Thema
- mehrere Empfänger pro Nachricht möglich
- Empfänger erhält nur Nachrichten, solange er existiert
- Publisher veröffentlichen Nachrichten zu einem Thema
-
3 Merkmale Publish Subscribe-Model bei nachrichtenorientierter Middleware
- pro Anwendung zwei lokale Warteschlangen
- Zugriff auf eine Warteschlange nur lokal
- Warteschlangen werden durch WS-Manager verwaltet
-
4 Merkmale Google File System Cluster
- ein Master
- sehr viele Chunkserver
- Chunkserver speichern Dateien
- jede Datei ist in 64 MB große Chunks gespalten
-
6 Merkmale Google File System
- hohe Durchsatzraten
- dafür höhere Latenzzeit
- jede Datei wird mindestens drei mal pro Cluster gespeichert
- Master speichert nur Metadaten der Chunks
- Master erhält Anfragen und verweist auf entsprechende Chunks
- nur ein Master pro Cluster
-
2 Grundprobleme der Nebenläufigkeit
- Herstellung serieller Äquivalenz bei der nebenläufigen Abarbeitung von Operationen
- Übergang von persistentem konsistenten Zustand in selbigen
-
3 Methoden der Nebenläufigkeitskontrolle
- Pessimistische Sperren (Locks)
- Zeitstempel
- Optimistische Kontrolle
-
3 Annomalien bei Transaktionen
- lost-update
- dirty-read
- unrepeatable-read
-
3 Vorteile geschachtelter Transaktionen
- Nebenläufigkeit auf gleicher Hierarchieebene
- Unabhängigkeit einzelner Subtransaktionen für größere Robustheit
- Individuelle Strategien übergeordneter Transaktionen für den Abbruch von Subtransaktionen festlegbar
-
4 Regeln geschachtelter Transaktionen
- Commit erst nach Commit aller Subtransaktionen
- Rollback einer Transaktion führt zum Rollback aller zugehörigen Subtransaktionen
- Subtransaktion trifft unabhängige Entscheidung zum provisorischen Commit oder finalen Rollback
- Commit der Top-Level-Transaktion führt zum finalen Commit
-
2 Punkte zur Behebung von Deadlocks
- Erkennung durch Test des Wartegraphen auf Kreisfreiheit
- Entfernen des Kreises durch Löschen eines Knotens
-
3 Punkte zur Verhinderung von Deadlocks
- Lebensdauerbegrenzung von Sperren über Timeout
- Sperren aller Objekte beim Start der Transaktion
- Anforderung der Sperren in vordefinierter Reihenfolge
-
3 Bereinigungsstrategien bei der optimistischen Nebenläufigkeitskontrolle
- Wiederholen der Auswertung zu einem späteren Zeitpunkt (Verschieben)
- Abbruch aller Konfliktverursacher
- Abbruch der aktuellen Transaktionen
-
3 Schritte 2-Phase-Commit Protokoll
- Alle Teilnehmer werden angefragt, ob sie die Transaktionen erfolgreich durchführen können
- Commit an alle im positiven Fall
- Abort an alle im negativen Fall
-
4 Kernaspekte von SOA
- Andere Komponenten nutzen keine Eigenschaften der inneren Implementierung einer Komponente
- Komponente verfügt über eindeutige Kategorie und klar definierte Schnittstelle
- Services können einfach wiederverwendet werden
- Die Fachlogik muss nur einmal implementiert werden
-
4 Merkmale von Webservices
- Sammlung von technischen Standards
- Ausgerichtet auf Kommunikationsprotokolle auf XML-Basis
- Starke Varianz beim Umfang der Unterstützung durch einzelne Hersteller
- Heute in allen EAI-Tools und Application Servern integriert
-
5 Merkmale von Geschäftsservices
- Funktionalität mit geschäftlicher Bedeutung
- Nutzung auf eindeutige Art und Weise
- klar definierte Reaktionen und Wirkungen
- stehen im Kontext von vertraglichen Pflichten und Nutzen
- werden an den Organisationsgrenzen nach aussen angeboten
-
3 Merkmale von Anwendungsservices
- orientieren sich an Idealvorstellungen der Geschäftsservices
- bilden Geschäftsservices ab, wo eine IT-Unterstützung sinnvoll ist
- werden von Komponenten der Anwendungslandschaft angeboten
-
3 Servicearten bei SOA
- Elementar (Basisfunktionen)
- Zusammengesetzt
- Orchestrierbar
-
4 Anforderungen an SOA-Services
- Wiederverwendbarkeit
- Sinnvolle Granularität
- Eindeutige Schnittstellen
- Klare Beziehungen
-
3 Merkmale ESB
- Standardbasierte Integrationsplattform zur Umsetzung einer SOA
- Mechanismen zum verteilten Betrieb, Transformatino, Sicherheit und Deployment
- Interaktion mit Webservices
-
7 Eigenschaften eines ESB
- Bus-Architektur
- In der Regel JMS basiert
- XSLT Transformation
- Transport im XML Format
- Orchestrierung und Prozessmodellierung (BPEL)
- Monitoring-Mechanismen
- Skalierung / Lastverteilung / Failover
-
4 Punkte der mangelnden Standardisierung von Webservices
- WSDL ist nur Standard für Beschreibung der Service-Signatur
- kein Standardmechanismus für Abbildung der Verfügbarkeit von Antwortzeiten
- kein Standardmechanismus für Versionierung
- vollständige Abdeckung der SOA-Anforderunge noch nicht verfügbar
-
5 Merkmale Java Business Integration (JBI)
- technischer Standard zur Realisierung von SOA in Java
- Architektur zur Integration von Java-basierten SOA Komponenten
- Container-Architektur, die über Plugin-Mechanismen erweiterbar ist
- Infrastruktur basierend auf bekannten Standards
- normalisiertes Nachrichtenformat für Services basierend auf WSDL 2.0
-
5 Eigenschaften Java Messaging Service
- Routing über JMS-Destinations
- Standardisierte Client-API
- Publish-Subscribe Kommunikationsmuster
- Nachrichtenfilterung über Message-Selektoren
- Transaktionen über Messages
-
6 Lücken in der Spezifikation von JMS
- Lastverteilung
- Ausfallsicherheit
- Standardisierte Spezifikation der Payload
- Definition Kommunikationsprotokoll
- Standardisierte Administrations-API
- kein Standard für Request/Reply
-
5 Merkmale OSGi
- hardwareunabhängige und dynamische Softwareplattform
- Anwendungen und Services in Komponentenmodell modularisieren und verwalten
- setzt Java VM voraus
- unterstützt fachliche und technische Versionierung von Komponenten
- unterstützt dynamische Module (zur Laufzeit generiert)
-
4. Schritte beim Top-Down-Verfahren bei SOA
- Systematische Prozessanalyse
- Modularisierung und iterative Verfeinerung
- Identifikation von identischen / ähnlichen Prozessmodulen
- Entwicklung von Business-Services
-
3 Schritte beim Bottom-UP-Verfahren bei SOA (Harvesting)
- Services aus bestehenden Systemen durch Wrapping verfügbar machen
- Identifikation von Service-Kandidaten
- Aggregation zu höherwertigen Services
-
7 Organisatorische und strategische Aspekte bei SOA
- Sponsoren finden in Management und Fachabteilungen
- Mittel- und langfristige Effekte vs Quick Wins
- wer finanziert gemeinsame Dienste?
- Motivation zur Entwicklung wiederverwendbarer Dienste
- Koordination der Weiterentwicklung
- Management der Beziehungen zwischen Diensten
- Integration von Partnern und Zulieferern
-
6 Ebenen des SOA-Reifegradmodells
- 0: Initial
- 1: Dienste
- 2: Prozesse
- 3: Organisation
- 4: Governance
- 5: Optimierung
-
4 erwünschte Eigenschaften paralleler Algorithmen
- Nebenläufigkeit
- Skalierbarkeit
- Lokalität
- Modularität
-
4 parallele Programmiermodelle
- Tasks/Kanal
- Message passing
- Datenparallelisierung
- Shared Memory
-
3 Eigenschaften Task/Kanal Programmiermodell
- parallele Berechnung gleichzeitig in variierender Anzahl Tasks
- Task kapselt sequentielles Programm und lokalen Speicher
- Task bietet In- und Out-Ports zur Kommunikation mit seiner Umgebung
-
4 Schritte beim Parallelen Design-Vorgehen: PCAM
- Partitioning - Partitioniere Algorithmus und Daten
- Communication - bestimme Kommunikation, Kommunikationsstrukturen und Algorithmen
- Agglomeration - Evaluiere Kommunikationsstrukturen
- Mapping - weise Tasks Prozessoren zu für gleichmäßige Auslastung
-
5 Items bei der Partitionierung bei parallelen Algorithmen
- Anzahl Tasks - mindestens eine Größenordnung über tatsächlicher Prozessoranzahl
- Redundanz - Vermeidung redundanter Speicherung
- Berechnungsumfang - Tasks von ähnlicher Größe
- Skalierung - Anzahl Tasks abhängig von Problemgröße
- Alternativen - Mehrere alternative Partitionierungen definieren
-
4 Arten der Kommunikation bei parallelen Algorithmen und jeweils zwei Ausprägungen
- Lokalität - lokal und global
- Strukturiertheit - strukturiert und unstrukturiert
- Dynamik - statisch und dynamisch
- Synchronität - synchron und asynchron
-
4 Aspekte der Kommunikation bei parallelen Algorithmen
- Kommunikationsvorgänge - gleiche viele Vorgänge je Task
- Lokalität - wenige Nachbarn
- gleichzeitige Kommunikation - tetaktete gleichzeitige Kommunikationsvorgänge
- Ordnung - kein Task wartet auf andere
-
8 Aspekte der Agglomeration bei parallelen Algorithmen
- Lokalität
- Redundanz
- Replikation
- Umfang
- Skalierbarkeit
- Nebenläufigkeit
- Occam's Razor (Minimal notwendige Anzahl Tasks)
- Kosten
-
4 Aspekte des Mapping-Design bei parallelen Algorithmen
- Dynamik
- Zentralisierung
- Kosten
- Anzahl
-
4 Algorithmen für Load-Balancing
- Rekursive Bisection - teile Last iterativ verschieden
- Lokal - verteile Last schrittweise unter Nachbarn
- Probabilistisch - zufällige Auswahl des Prozessors für eine Task
- Zyklisch - weise jedem Prozessor jede P-te Task zu, effizient bei starker Lokalität der Last
-
Abdamahls Gesetz zum Speedup
Wenn der sequentielle Anteil eines Algorithmus zu dessen Ausführungszeit 1/s beträgt, liegt der maximal erreichbare Speedup bei s
-
Formel für Effizienz bei Algorithmen
Effizienz E = sequenzielle Zeit T_1 / (Anzahl Prozessoren P * parallele Zeit T_P)
-
3 Kompositionsansätze bei der Modularisierung von parallelen Algorithmen
- sequenziell - alle Prozessoren arbeiten die gleiche Schritte sequenziell ab
- parallel - verschiedene Prozessoren übernehmen verschiedene Schritte
- gleichzeitig - auf jedem Prozessor gleichzeitig unterschiedliche Schritte
-
3 Parallele Designregeln bei der Modularisierung
- Unabhängigkeit
- Datenverteilung
- Komposition
-
4 Auswirkungen der Modularisierung bei parallelen Algorithmen
- zusätzliche Berechnungen
- erhöhte Idle-Zeit durch ungleiche Lastverteilung
- erhöhter Kommunikationsaufwand durch unabhängige Teile
- parallele Komposition erhöht Granularität
-
4 Schritte beim Manager/Worker Designmuster
- ein Manager verteilt Aufgaben auf viele Worker
- Manager sammelt evtl. Ergebnisse ein
- Worker arbeiten einzelnen Arbeitspalete ab
- Worker liefern evtl. Ergebnisse an Manager
-
3 Varianten beim Manager/Worker Designmuster
- Hierarchische Manager/Worker zur Komplexitätsreduktion der Verteilung
- Dezentralisierte Manager
- Hybride Ansätze mit z.B. dezentralen Arbeitspaketen und zentraler Verteilung
-
4 Schritte beim Producer/Consumer Designmuster
- ein oder mehrere Producer erzeugen Arbeitspakete für Consumer
- Producer legen Arbeitspakete in eine Schlange
- ein oder mehrere Consumer holen Arbeitspakete aus der Schlange und verarbeiten sie
- Anzahl Procucer und Consumer gemäß durch Schritte verursachter Last
-
3 Phasen beim Map-Reduce Verfahren
|
|