Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
28 Cards in this Set
- Front
- Back
Definition verteiltes System
|
- Ein System mit mehreren Prozessräumen
- In einem Prozessraum können mehreren Prozesse ablaufen - Zwischen Prozessen eines oder mehrerer Prozessräume können Infos über Nachrichten ausgetauscht werden - Die einzelnen Subsysteme kooperieren, um eine gemeinsame Aufgabe zu lösen |
|
Definition verteilte Anwendung
|
Ist eine Anwendung, bestehen aus mehreren Prozessen, die verteilt in mehreren Prozessräumen ablaufen
|
|
Motivation für Verteilung - Vorteile
|
- Wirtschaftlichkeit durch Ressourcenteilung
- Performancegewinn durch Parallelisierung - Erhöhung der Rechenleistung - flexibler Lastausgleich - Ausfallsicherheit durch Redundanz |
|
Motivation für Verteilung - Nachteile
|
- Erhöhung der Komplexität
- Entstehung von Sicherheitslücken - Performanceverlust durch geringe Übertragungsbandbreiten - Höherer Testaufwand |
|
Charakteristika verteilter Systeme
|
- Ressourcenteilung
- Offene verteilte Systeme - Nebenläufigkeit - Skalierbarkeit - Fehltoleranz - Transparenz |
|
Kommunikationsformen in verteilten Systemen - mittels Nachrichtenstrom
|
- Punkt-zu-Punkt-Kommunikation: Senderprozess sendet eine Nachricht an einen Empfänger (Port) (z.B. in Java mittels Server- und Client-Sockets)
- zuverlässiger Nachrichtenaustausch: garantierte Ankunft - unzuverlässiger Nachrichtenaustausch: Nachricht wird lediglich abgeschickt - verschiedene Nachrichtenformate |
|
Kommunikationsformen in verteilten Systemen - durch entfernten Methodenaufruf: Remote Procedure Call (RPC)
|
Aufrufsemantik:
- exactly-once (im Client-Server-Umfeld eher schwierig) - maybe (einmal oder keinmal) - at-least-once (mind einmal) - at-most-once (höchstens einmal) |
|
Push vs. Pull
|
push: Senderprozess stößt an
- Basis der ereignisbasierten Kommunikation pull: Empfängerprozess fragt nach |
|
synchron vs. asynchron
|
- synchron: Sender- und Empfängerprozess haben gekoppelten Ablauf
- asynchron: Senderprozess wartet nicht auf Empfängerprozess |
|
Session Beans (sychron, asynchron)
|
Stateful Session Beans (z.B. Einkaufswagen)
- sind mit einem bestimmten Client assoziiert - Zustand bleibt während der gesamten Client-Session erhalten Stateless Session Beans (z.B. Währungsumrechner) - kann auch mehrere verschiedene Clients bedienen - Zustand bleibt nur für einen Methodenaufruf erhalten - alle Instanzen sind äquivalent |
|
Message Driven Beans (asynchron)
|
- reagieren auf Nachrichten, die in einer definierten Warteschlange eingehen
|
|
Kommunikation mit entfernten Komponenten - Enterpise Java Beans (EJB)
|
|
|
EJB Interfaces allgemein
|
- Schnittstelle zu Geschäftsmethoden
- Für jede Methode des Interfaces gibt es eine entsprechende Methode in der EJB-Klasse - Interface wird vom Entwickler festgelegt |
|
Remote Interface
|
EJB Interface mit Zusatzeigenschaften:
- Kann von überall aufgerufen werden - Methodenparameter müssen java.io.Serializable implementieren - Methodenparameter werden als Kopien übergeben (call-by-value) |
|
Local Interface
|
EJB Interface mit Zusatzeigenschaften:
- Kann nur von Komponenten in derselben Deployment-Einheit benutzt werden - Aufruf mittels direktem Methodenaufruf - Methodenparameter können direkt übergeben werden (call-by-reference) |
|
Implementierung der MBD-Bean
|
|
|
EJB Namenskonventionen
|
- Beschreibt ein Muster nach dem bestimmte Dinge benannt werden sollen
- Sorgen für Übersichtlichkeit - Vermindern Konfigurationsaufwand |
|
Namens- und Verzeichnisdienste
|
Benennung und Identifikation von Ressourcen und Objekten im verteilten System
|
|
Aufgaben von Namen
|
- Beschreibung über die Art der Ressource
- Eindeutige Identifikation - Lokalisierung |
|
Ziel von Namen
|
Auffinden von Objekten im verteilten System anhand von Attributen/Namen
|
|
Beispiel von Namen im Java-Umfeld
|
Java Naming and Directory Interface (JNDI)
- Java-Applikationsserver registriert Interface Implementation (II) beim zugehörigen Naming Service -> Client kann dan um Referenz auf Interface mit bestimmten Namen bitten |
|
Architekturmuster: das Tier-Modell
|
Eine Tier ist eine logische Partitionierung, die durch die Trennung von Interessen im System entsteht. Jeder Tier wird eine eindeutige Verantwortlichkeit im System zugeschrieben.
|
|
Typische Verantwortlichkeiten des Tier-Modells
|
- Präsentation (Schnittstelle zum Anwender)
- Anwendungslogistik (Bearbeitung der Anfragen) - Datenhaltung (Speicherung der Daten in Datenbank) Im Tier-Modell wird jede dieser Aufgaben der Anwendungskomponente einer einzelnen Tier zugeordnet |
|
2-Tier-Architektur
|
- Client- und Server-Tier
- Zuordnung der Verantwortlichkeiten -> Präsentation: Client -> Anwendungslogistik: Client und/oder Server -> Datenhaltung: Server - Erstes Verteilungsmodell - Vorteile: einfach und schnell umzusetzen, performant |
|
3-Tier-Architektur
|
- Client-, Middle- und Server-Tier
- Zuordnung der Verantwortlichkeiten: -> Präsentation: Client (z.B. Browser zur Anzeige) -> Anwendungslogik: Middle (z.B. Webserver) -> Datenhaltung: Server-Tier (z.B. Datenbankserver) |
|
4- und n-Tier Architektur
|
- Anwendungslogistik der Middle-Tier (3-Tier) wird auf mehrere Tiers verteilt
- Besserer Schutz einzelner Anwendungsteile - Minimierung der Komplexität der einzelnen Einheiten - Viele verteilte Informationssystem liegen auf 4- und n-Tier Architektur verteilt vor |
|
UML als Sprache für die Architekturdokumentation - Komponentendiagramm
|
Komponentenprogramm
|
|
UML als Sprache für die Architekturdokumentation - Verteilungsdiagramm (Deploymentdiagramm)
|
Verteilungsdiagramm (Deploymentdiagramm)
|