• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/28

Click to flip

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
- 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
Komponentenprogramm
UML als Sprache für die Architekturdokumentation - Verteilungsdiagramm (Deploymentdiagramm)
Verteilungsdiagramm (Deploymentdiagramm)
Verteilungsdiagramm (Deploymentdiagramm)