Interface
= Schnittstelle
- Teil eines Systems zur Kommunikation / Datenaustausch
Beispiel:
Modifikator interface MyInterface
{
final Modifikator Datentyp variable = Wert;
Modifikator Datentyp methode();
}
- gleicher Aufbau wie Klassen
- einziger Unterschied: besitzt keine Implementierungen
- Teil eines Systems zur Kommunikation / Datenaustausch
Beispiel:
Modifikator interface MyInterface
{
final Modifikator Datentyp variable = Wert;
Modifikator Datentyp methode();
}
- gleicher Aufbau wie Klassen
- einziger Unterschied: besitzt keine Implementierungen
EJB-Struktur
– Session Beans bilden die Schnittstelle zum Client.
– Message Driven Beans bilden die Schnittstelle zu einem JMS Provider.
– Entities (früher Entity Beans) bilden die Schnittstelle zur Datenhaltung.
– Message Driven Beans bilden die Schnittstelle zu einem JMS Provider.
– Entities (früher Entity Beans) bilden die Schnittstelle zur Datenhaltung.
Deployment Descriptor
– XML-basierte Schnittstellenbeschreibung der Bean zum Container
Entities - Lebenszyklus
• NEW
– Nach Aufruf des new-Operators ist ein Objekt zunächst transient und nicht mit einer Tabellenzeile verbunden. Ein transientes Objekt kann durch den Aufruf eines Persistenzmanagers persistent werden oder indem es von einem persistenten Objekt referenziert wird.
• MANAGED
– Ein persistentes Objekt hat eine Datenbankidentität. Jedes persistente Objekt hat einen Persistenzkontext, mit dem Änderungen am Objekt festgestellt werden können.
• REMOVED
– Ein Objekt kann explizit gelöscht werden. Es wird am Ende der Unit-of-Work in der Datenbank gelöscht. Solange ist es nur als zu löschen gekennzeichnet.
• DET ACHED
– Wenn der Persistenzkontext eines Objekts geschlossen wird, existiert das Objekt als Java-Objekt weiter, ist aber von der Datenbank losgelöst.
Der OR-Mapper garantiert dann nicht mehr, dass das Objekt mit der Datenbank synchronisiert wird.
– Nach Aufruf des new-Operators ist ein Objekt zunächst transient und nicht mit einer Tabellenzeile verbunden. Ein transientes Objekt kann durch den Aufruf eines Persistenzmanagers persistent werden oder indem es von einem persistenten Objekt referenziert wird.
• MANAGED
– Ein persistentes Objekt hat eine Datenbankidentität. Jedes persistente Objekt hat einen Persistenzkontext, mit dem Änderungen am Objekt festgestellt werden können.
• REMOVED
– Ein Objekt kann explizit gelöscht werden. Es wird am Ende der Unit-of-Work in der Datenbank gelöscht. Solange ist es nur als zu löschen gekennzeichnet.
• DET ACHED
– Wenn der Persistenzkontext eines Objekts geschlossen wird, existiert das Objekt als Java-Objekt weiter, ist aber von der Datenbank losgelöst.
Der OR-Mapper garantiert dann nicht mehr, dass das Objekt mit der Datenbank synchronisiert wird.
Callback-Methode
= eine Funktion, die einer anderen Funktion als Parameter übergeben und von dieser unter gewissen Bedingungen aufgerufen wird
Dependency Injection
= Entwurfsmuster bezeichnet, welches die Abhängigkeiten eines Objekts zur Laufzeit reglementiert
-> Benötigt ein Objekt beispielsweise bei seiner Initialisierung ein anderes Objekt, ist diese Abhängigkeit an einem zentralen Ort hinterlegt – es wird also nicht vom initialisierten Objekt selbst erzeugt.
-> Benötigt ein Objekt beispielsweise bei seiner Initialisierung ein anderes Objekt, ist diese Abhängigkeit an einem zentralen Ort hinterlegt – es wird also nicht vom initialisierten Objekt selbst erzeugt.
Annotationen
= Sprachelement, das die Einbindung von Metadaten in den Quelltext erlaubt
- beginnen mit einem @-Zeichen
- beginnen mit einem @-Zeichen
Persistenz-Kontext
= definiert den Bereich, in dem spezielle Entity-Objekte
erzeugt, persistiert und entfernt werden können
erzeugt, persistiert und entfernt werden können
Entity Manager
sorgt für:
– das Laden von Entities aus der Datenbank
– das Speichern von Änderungen in der Datenbank
– das Laden von Entities aus der Datenbank
– das Speichern von Änderungen in der Datenbank
Komponentenmodell
= konkrete Ausprägungen des Paradigmas der komponentenbasierten Entwicklung
- spezifiziert neben der genauen Form und Eigenschaften der Komponenten auch, wie Komponenten miteinander sprechen und verbunden werden können
- spezifiziert neben der genauen Form und Eigenschaften der Komponenten auch, wie Komponenten miteinander sprechen und verbunden werden können
Enterprise JavaBean
= Serverseitiges, verteiltes Komponentenmodell der Java EE Plattform
– JavaBeans als verteilte Komponenten
– Kommunikation über Java RMI und lokal
- Container als Komponentenlaufzeitumgebung -> betreibt Komponenten gemäß vorgegebener Konfiguration
– JavaBeans als verteilte Komponenten
– Kommunikation über Java RMI und lokal
- Container als Komponentenlaufzeitumgebung -> betreibt Komponenten gemäß vorgegebener Konfiguration
Session Bean
– repräsentieren Abläufe (Prozesse) einer Anwendung
– sind immer mit Client-Sitzungen assoziiert
– werden Clients bei einem Aufruf zugeordnet
– sind immer mit Client-Sitzungen assoziiert
– werden Clients bei einem Aufruf zugeordnet
Stateless/Singleton Session Bean
Stateless Session Beans und Singleton Session Beans repräsentieren eine Sitzung genau für die Dauer eines Methodenaufrufs.
Stateful Session Beans
- stellen für einen vom Client festgelegten Zeitraum einer Sitzung zur Verfügung.
Message Driven Bean
– erweitern das synchrone Komponentenmodell (Java RMI) um asynchrone Kommunikation
Entities
– repräsentieren die Daten einer Anwendung
– bilden die Datenbank im Hauptspeicher nach
– bilden die Datenbank im Hauptspeicher nach
Warteschlangenverwalter
- Verantwortlich für die Verwaltung der Warteschlangen
- Aufgaben:
- Zuordnung von ankommenden Nachrichten zu Warteschlangen
- Überwachung der Nachrichten (Größe, Format)
- Überwachung des Warteschlangenlebenszyklus
- Aufgaben:
- Zuordnung von ankommenden Nachrichten zu Warteschlangen
- Überwachung der Nachrichten (Größe, Format)
- Überwachung des Warteschlangenlebenszyklus
Java Message Service (JMS)
= Programmierschnittstelle für die Ansteuerung einer Message Oriented Middleware (MOM) zum Senden und Empfangen von Nachrichten aus einem Client heraus
- Standard einer einheitlichen Zugriffsschnittstelle für Java-Anwendungen auf einen MOM-Server
- Teil der Java-Plattform
- Standard einer einheitlichen Zugriffsschnittstelle für Java-Anwendungen auf einen MOM-Server
- Teil der Java-Plattform
ConnectionFactory
– enthält alle notwendigen Informationen, die ein JMS Client zum Aufbau aktiver Verbindungen zu einem JMS Provider benötigt
– bietet über eine Schnittstelle Methoden zur Initialisierung einer Verbindung
– bietet über eine Schnittstelle Methoden zur Initialisierung einer Verbindung
Destination
– repräsentiert eine konkrete Warteschlange des JMS Providers
– wird von einem JMS Client zum Einstellen und Auslesen von Nachrichten verwendet
– wird von einem JMS Client zum Einstellen und Auslesen von Nachrichten verwendet
Webanwendung
= Anwendungsprogramm nach dem Client-Server-Modell, zur Kommunikation zwischen Webclient und Webserver.
- Am Webserver liegen statische HTML-Seiten
- Diese werden über HTTP in den Browser geladen
- Mensch-Maschine-Kommunikation
- Am Webserver liegen statische HTML-Seiten
- Diese werden über HTTP in den Browser geladen
- Mensch-Maschine-Kommunikation
Webservice
- Anwendungen (auf Webservern) kommunizieren unabhängig vom Anwender
- Vision Automatisierung:
- Anwendungen suchen sich automatisch Dienste im
Web, die sie zur Bearbeitung einer Anfrage benötigen
- Kommunikation bleibt transparent
- Maschine-Maschine-Kommunikation
- Vision Automatisierung:
- Anwendungen suchen sich automatisch Dienste im
Web, die sie zur Bearbeitung einer Anfrage benötigen
- Kommunikation bleibt transparent
- Maschine-Maschine-Kommunikation
HTML
= textbasierte Auszeichnungssprache zur Strukturierung digitaler Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten
- HTML-Dokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt
- dient dazu, einen Text zu strukturieren, aber nicht zu formatieren
- HTML-Dokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt
- dient dazu, einen Text zu strukturieren, aber nicht zu formatieren
XML
- bietet die Möglichkeit komplexe Datenstrukturen innerhalb eines Dokuments darzustellen
- stellt diese als Text unter Angabe des verwendeten Zeichensatzes dar
- ist beliebig zwischen Systemen und Plattformen austauschbar
- stellt diese als Text unter Angabe des verwendeten Zeichensatzes dar
- ist beliebig zwischen Systemen und Plattformen austauschbar
SOAP
= Simple Object Access Protocol
= Netzwerkprotokoll, mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgeführt werden können
- Standard für das Middleware-Protokoll der Webservices
- In den meisten Fällen wird SOAP in Kombination mit HTTP verwendet
= Netzwerkprotokoll, mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgeführt werden können
- Standard für das Middleware-Protokoll der Webservices
- In den meisten Fällen wird SOAP in Kombination mit HTTP verwendet
WSDL
- XML-basierte Schnittstellensprache zur Beschreibung von Webservices
- definiert und beschreibt alle aufrufbaren Operationen eines Webservices sowie die beim Aufruf ausgetauschten Nachrichten (Strukturen, Datentypen)
- ermöglicht einen von Applikationen lesbaren Zugang zu Diensten und eine weitgehend automatisierte Integration von Diensten zu neuen Anwendungen noch zur Laufzeit
- definiert und beschreibt alle aufrufbaren Operationen eines Webservices sowie die beim Aufruf ausgetauschten Nachrichten (Strukturen, Datentypen)
- ermöglicht einen von Applikationen lesbaren Zugang zu Diensten und eine weitgehend automatisierte Integration von Diensten zu neuen Anwendungen noch zur Laufzeit
UDDI
= bezeichnet einen standardisierten Verzeichnisdienst, der die zentrale Rolle in einem Umfeld von dynamischen Web Services spielen sollte
- Veröffentlicht werden darin:
- WSDL-Definitionen von Webservices
- Veröffentlicht werden darin:
- WSDL-Definitionen von Webservices
CORBA
= unterschiedliche Programmiersprachige Welten zusammenführen
- offener Middleware- Standard für verteilte ORB-Plattformen
- Ziel: Spezifikation einer Kommunikationsinfrastruktur für verteilte Objekte nach dem RMI-Programmiermodell
- offener Middleware- Standard für verteilte ORB-Plattformen
- Ziel: Spezifikation einer Kommunikationsinfrastruktur für verteilte Objekte nach dem RMI-Programmiermodell
POA
= Portable Object Adapter
- verwaltet Serverobjekte in ihren verschiedenen Lebensphasen (initialisieren, aktivieren, passivieren, löschen)
- übersetzt die verschiedenen Programmierwelten in eine Einheit
- nimmt Aufrufe vom ORB entgegen und sucht entsprechendes Skeleton
- generiert eindeutige Objektreferenzen zu Serverobjekten
- verwaltet Serverobjekte in ihren verschiedenen Lebensphasen (initialisieren, aktivieren, passivieren, löschen)
- übersetzt die verschiedenen Programmierwelten in eine Einheit
- nimmt Aufrufe vom ORB entgegen und sucht entsprechendes Skeleton
- generiert eindeutige Objektreferenzen zu Serverobjekten
OMA
= Object Management Architecture
- Spezifikation einer Architektur für verteilte, objektorientierte Anwendungen auf Basis von CORBA
- Spezifikation einer Architektur für verteilte, objektorientierte Anwendungen auf Basis von CORBA
ORB
= Object Request Broker
- Vermittler, der die Kommunikation von Objekten innerhalb eines verteilten Systems
- betriebssystem- als auch programmiersprachenunabhängig
- Vermittler, der die Kommunikation von Objekten innerhalb eines verteilten Systems
- betriebssystem- als auch programmiersprachenunabhängig
General Inter-ORB Protocol
= abstraktes Protokoll zur Kommunikation von Object Request Brokern (ORBs) im Bereich des Verteilten Rechnen
- unabhängig vom verwendeten Transportprotokoll
- unabhängig vom verwendeten Transportprotokoll
Interoperablilität
= Fähigkeit zur Zusammenarbeit von verschiedenen Systemen, Techniken oder Organisationen
- Einhaltung gemeinsamer Standards
- Einhaltung gemeinsamer Standards
Interface Definition Language
= Schnittstellenbeschreibungssprache mit C++-ähnlicher Syntax, die für CORBA entwickelt wurde
Container
Container sorgen dafür, dass Software verlässlich läuft, nachdem sie von einer Umgebung in eine andere versetzt worden ist.
Beispiel: vom Laptop des Entwicklers in eine Testumgebung, von der Testumgebung in die Produktion.
Beispiel: vom Laptop des Entwicklers in eine Testumgebung, von der Testumgebung in die Produktion.
Thread
- sequenzielle Abfolge von Anweisungen
- mehrere Threads können auch parallel laufen
-> Ermöglicht das gleichzeitige Ablaufen von Programmteilen
- Beispiel:
public class MehrmalsP
{
public static void main(String[] args)
{
ABCPrinter p1 = new ABCPrinter();
ABCPrinter p2 = new ABCPrinter();
p1.start();
p2.start();
}
}
- mehrere Threads können auch parallel laufen
-> Ermöglicht das gleichzeitige Ablaufen von Programmteilen
- Beispiel:
public class MehrmalsP
{
public static void main(String[] args)
{
ABCPrinter p1 = new ABCPrinter();
ABCPrinter p2 = new ABCPrinter();
p1.start();
p2.start();
}
}
Stream
= Datenströme
- werden verwendet, um Daten in ein Programm einzulesen bzw. Daten aus einem Programm auszugeben
- dient zur Kommunikation eines Programmes mit seiner Umgebung
- werden verwendet, um Daten in ein Programm einzulesen bzw. Daten aus einem Programm auszugeben
- dient zur Kommunikation eines Programmes mit seiner Umgebung
Serialisierung
= Abbildung von strukturierten Daten auf eine sequenzielle Darstellungsform
- es wird eine Kopie des vorhandenen Objektes erstellt
- Kennzeichnung von serialisierbaren Objekten: Klasse implementiert das (leere) Interface java.io.Serializable.
Beispiel:
public ObjectOutputStream(OutputStream out)
-> erzeugt einen Serialisierungs-Strom in Verbindung mit dem Byte-Strom out.
- es wird eine Kopie des vorhandenen Objektes erstellt
- Kennzeichnung von serialisierbaren Objekten: Klasse implementiert das (leere) Interface java.io.Serializable.
Beispiel:
public ObjectOutputStream(OutputStream out)
-> erzeugt einen Serialisierungs-Strom in Verbindung mit dem Byte-Strom out.
Verteiltes System
Ein verteiltes System ist ein System,
– in dem sich Hardware und Software- Komponenten auf vernetzten Computern befinden und
– nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren.
Beispiel: Das Internet.
– in dem sich Hardware und Software- Komponenten auf vernetzten Computern befinden und
– nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren.
Beispiel: Das Internet.
Eigenschaften
- Merkmale, die ein Objekt von einem anderen unterscheiden
- Attribute eines Objektes enthalten Informationen über seinen aktuellen Zustand
- werden meist durch Variablen beschrieben
- Attribute eines Objektes enthalten Informationen über seinen aktuellen Zustand
- werden meist durch Variablen beschrieben
Transparanz
= Verbergen der Separation der einzelnen Komponenten in einem verteilten System vor dem Benutzer und dem Applikationsprogrammierer, sodass das System als Ganzes wahrgenommen wird, und nicht als Sammlung voneinander unabhängiger Komponenten.
Verteilte Anwendung
Eine verteilte Anwendung ist eine Anwendung,
– die ein verteiltes System zur Lösung eines Anwendungsproblems nutzt und
– aus verschiedenen Komponenten besteht, die mit den Komponenten des verteilten Systems sowie mit den Anwendern kommunizieren.
Beispiel: mobile Anwendungen, z.B. Kalender
– die ein verteiltes System zur Lösung eines Anwendungsproblems nutzt und
– aus verschiedenen Komponenten besteht, die mit den Komponenten des verteilten Systems sowie mit den Anwendern kommunizieren.
Beispiel: mobile Anwendungen, z.B. Kalender
Direkte Netzwerkprogrammierung
- Verwendung von Sockets und Kommunikation über I/O-Streams
• Vorteil: Gutes Tuning möglich
• Nachteil: Probleme beim Datenaustausch
• Vorteil: Gutes Tuning möglich
• Nachteil: Probleme beim Datenaustausch
Abstrakte Netzwerkprogrammierung
- Einsatz von Middleware (Softwareschicht zwischen TCP/IP und Anwendungen)
• Vorteil: Keine explizite Socket- und Stream-Programmierung nötig
• Nachteil: Overhead
• Vorteil: Keine explizite Socket- und Stream-Programmierung nötig
• Nachteil: Overhead
Architekturmodell
Ein Architekturmodell beschreibt:
– die Rollen der Anwendungskomponenten innerhalb der verteilten Anwendung
– die Beziehungen zwischen den Anwendungskomponenten
– die Rollen der Anwendungskomponenten innerhalb der verteilten Anwendung
– die Beziehungen zwischen den Anwendungskomponenten
IP
= Adresse in Computernetzen, die auf dem Internetprotokoll (IP) basiert.
Beispiel: Internet
- wird Geräten zugewiesen, die an das Netz angebunden sind
-> machen diese Geräte adressierbar und erreichbar
Beispiel: Internet
- wird Geräten zugewiesen, die an das Netz angebunden sind
-> machen diese Geräte adressierbar und erreichbar
Port
= Teil einer Netzwerk-Adresse, der die Zuordnung von TCP- und UDP-Verbindungen und -Datenpaketen zu Server- und Client-Programmen durch Betriebssysteme bewirkt.
- Zu jeder Verbindung dieser beiden Protokolle gehören zwei Ports, je einer auf Seiten des Clients und des Servers
- Zu jeder Verbindung dieser beiden Protokolle gehören zwei Ports, je einer auf Seiten des Clients und des Servers
Socket
= ein vom Betriebssystem bereitgestelltes Objekt, das als Kommunikationsendpunkt dient.
- Teil des Datenaustausches
- Teil des Datenaustausches
Client-Server-Modell
- beschreibt eine Möglichkeit, Aufgaben und Dienstleistungen innerhalb eines Netzwerkes zu verteilen
- Aufgaben werden von Programmen erledigt, die in Clients und Server unterteilt werden
- Aufgaben werden von Programmen erledigt, die in Clients und Server unterteilt werden
Protokoll
= ein spezieller Satz von Regeln, den Endpunkte einer Kommunikationsverbindung zur Kommunikation verwenden
- spezifizieren Interaktionen zwischen den kommunizierenden Geräten
Beispiel: TCPI/IP-Protokoll
- spezifizieren Interaktionen zwischen den kommunizierenden Geräten
Beispiel: TCPI/IP-Protokoll
Nebenläufigkeit
= Eigenschaft eines Systems, mehrere Berechnungen, Anweisungen oder Befehle gleichzeitig ausführen zu können
- können dabei miteinander interagieren
- können dabei miteinander interagieren
Middleware
= Software-Schicht zwischen dem Übertragungsnetzwerk und den Anwendungs-Komponenten, die eine reibungslose, standardisierte Interaktion zwischen den Komponenten ermöglichen soll.
In der Praxis häufig:
– Sammlung von Werkzeugen und Klassen mit vorgefertigten "Lösungen"
– Bequeme Anwendungsentwicklung
In der Praxis häufig:
– Sammlung von Werkzeugen und Klassen mit vorgefertigten "Lösungen"
– Bequeme Anwendungsentwicklung
Transparenz bei Middleware
- "Verborgene" Verteilung/Kommunikation über eigenes Protokoll
Kommunikationsorientierte Middleware
- konzentriert sich auf die Bereitstellung einer Kommunikationsinfrastruktur für verteilte Anwendungen
- setzt dabei auf dem verteilten System auf Anwendungskomponente
- ist zuständig für:
– die Bereitstellung einer Schnittstelle zur Kommunikationsinfrastruktur
– die Datentransformation
– die Fehlerbehandlung
Beispiel: Java RMI
- setzt dabei auf dem verteilten System auf Anwendungskomponente
- ist zuständig für:
– die Bereitstellung einer Schnittstelle zur Kommunikationsinfrastruktur
– die Datentransformation
– die Fehlerbehandlung
Beispiel: Java RMI
Anwendungsorientierte Middleware
- setzt auf kommunikationsorientierter Middleware auf
- erweitert diese um Funktionalitäten zur Unterstützung verteilter Anwendungen:
– Laufzeitumgebung
– Dienste
– Komponentenmodell
- eignet sich auf Grund ihrer Eigenschaften insbesondere für Informationssysteme, da diese meist
Komponentenmodell Laufzeitumgebung
– software-intensiv
– datenzentriert
– interaktiv
– nebenläufig
Beispiel: JavaEE
- erweitert diese um Funktionalitäten zur Unterstützung verteilter Anwendungen:
– Laufzeitumgebung
– Dienste
– Komponentenmodell
- eignet sich auf Grund ihrer Eigenschaften insbesondere für Informationssysteme, da diese meist
Komponentenmodell Laufzeitumgebung
– software-intensiv
– datenzentriert
– interaktiv
– nebenläufig
Beispiel: JavaEE
Deserialisierung
- Rekonstruieren eines Objekts anhand seiner systemunabhängigen Binärdarstellung
Beispiel:
public ObjectInputStream(InputStream in)
-> erzeugt einen Deserialisierungs-Strom in Verbindung mit dem Byte-Strom in.
Beispiel:
public ObjectInputStream(InputStream in)
-> erzeugt einen Deserialisierungs-Strom in Verbindung mit dem Byte-Strom in.
RPC
= entfernter Prozeduraufruf
- ermöglicht einem Client-Prozess den entfernten Aufruf einer Prozedur auf einem Server-Prozess
- verwendet Kommunikation nach dem Anfrage-Antwort-Prinzip (also synchron)
- setzt auf verschiedenen Hilfsprozeduren auf
- ermöglicht einem Client-Prozess den entfernten Aufruf einer Prozedur auf einem Server-Prozess
- verwendet Kommunikation nach dem Anfrage-Antwort-Prinzip (also synchron)
- setzt auf verschiedenen Hilfsprozeduren auf
RMI
=entfernter Methodenaufruf
- ermöglicht es einem Objekt, Methoden eines entfernten Objekts aufzurufen
- verwendet Kommunikation nach dem Anfrage-Antwort-Prinzip (also synchron)
- setzt auf dem Proxy-Pattern auf
- ermöglicht es einem Objekt, Methoden eines entfernten Objekts aufzurufen
- verwendet Kommunikation nach dem Anfrage-Antwort-Prinzip (also synchron)
- setzt auf dem Proxy-Pattern auf
MOM
= Message Oriented Middleware
- asynchronen Kommunikation
- Unterstützung der verschiedenen Messaging-Modelle
- Warteschlangenverwaltung
- Verbindungsmanagement
- asynchronen Kommunikation
- Unterstützung der verschiedenen Messaging-Modelle
- Warteschlangenverwaltung
- Verbindungsmanagement
Stub + Skeleton
- werden aus der Schnittstellenspezifikation generiert
- sind verantwortlich für Marshalling und Unmarshalling
- ermöglichen die Zusicherung von Zugriffs- und Ortstransparenz
- sind verantwortlich für Marshalling und Unmarshalling
- ermöglichen die Zusicherung von Zugriffs- und Ortstransparenz
Proxy
- dient als Zwischenspeicher für Aufrufergebnisse vom Server
- Ziel: Verbesserung der Performance
- Beispiel: Proxy zum Zwischenspeichern von Webseiten
- Ziel: Verbesserung der Performance
- Beispiel: Proxy zum Zwischenspeichern von Webseiten
Cluster
= Möglichkeit zur Gewährleistung von Verfügbarkeitsanforderungen
- arbeiten mit Replikaten von Software- und Hardwarekomponenten
-> Fällt eine der Komponenten aus, übernimmt das Replikat die Aufgaben
- arbeiten mit Replikaten von Software- und Hardwarekomponenten
-> Fällt eine der Komponenten aus, übernimmt das Replikat die Aufgaben
Namensdienste
- Zweck:
– Veröffentlichung von Diensten und Ressourcen im Intranet oder Internet
– Zuordnung von Namen zu Referenzen auf die Dienste/Ressourcen
- Beispiel: RMI
– Veröffentlichung von Diensten und Ressourcen im Intranet oder Internet
– Zuordnung von Namen zu Referenzen auf die Dienste/Ressourcen
- Beispiel: RMI
Transaktionsverwaltung
- Anwendungen, die in irgendeiner Form mit der Speicherung und Auslieferung von Daten arbeiten, benötigen Transaktions- Management zur Sicherung des ACID-Prinzips (Alles-oder-Nichts-Prinzip)
-erfolgt:
- durch Ressourcenmanager für einfache Transaktionen
- durch einen Transaktionsdienstfürkomplexe (verteilte,verschachtelte) Transaktionen auf Anwendungsebene
-erfolgt:
- durch Ressourcenmanager für einfache Transaktionen
- durch einen Transaktionsdienstfürkomplexe (verteilte,verschachtelte) Transaktionen auf Anwendungsebene
Verteilte Transaktionen
• Vertikal verteilte Transaktion
– Zwischenspeicherung der Daten aus der Datenbank in einem Cache auf der Middle-Tier bei datenzentrierten Anwendungen
– Der Transaktionsdienst hat die Aufgabe, die Daten im Cache mit den Daten in der Datenbank konsistent zu halten
– In der Regel: Tier-übergreifende Verwaltung von Transaktionen
• Horizontal verteilte Transaktion
– Erweiterung der vertikal verteilten Transaktion
– Mehrere Ressourcen (z. B. mehrere Datenbanken) müssen in die
Transaktion integriert werden
– Zwischenspeicherung der Daten aus der Datenbank in einem Cache auf der Middle-Tier bei datenzentrierten Anwendungen
– Der Transaktionsdienst hat die Aufgabe, die Daten im Cache mit den Daten in der Datenbank konsistent zu halten
– In der Regel: Tier-übergreifende Verwaltung von Transaktionen
• Horizontal verteilte Transaktion
– Erweiterung der vertikal verteilten Transaktion
– Mehrere Ressourcen (z. B. mehrere Datenbanken) müssen in die
Transaktion integriert werden
Persistenzdienst
– Intelligente Schnittstelle für die Anwendung zur Datenbank
– Unterstützung der transaktionsgesicherten Persistierung der Daten
– Unterstützung der transaktionsgesicherten Persistierung der Daten
OR-Mapper
= Object-Relational-Mapper
– bildet Objekte im Hauptspeicher auf relationale Datenbanktabellen ab
– ist die häufigste (aber nicht einzige) Art der Persistierung
– bildet Objekte im Hauptspeicher auf relationale Datenbanktabellen ab
– ist die häufigste (aber nicht einzige) Art der Persistierung
Laufzeitumgebung
• setzt auf dem Betriebssystem des jeweiligen Knotens im verteilten System auf
• erweitert die Funktionalität des Betriebssystems um:
– verbesserte Ressourcenverwaltung
– erhöhte Verfügbarkeit
– verbesserte Sicherheitsmechanismen
• erweitert die Funktionalität des Betriebssystems um:
– verbesserte Ressourcenverwaltung
– erhöhte Verfügbarkeit
– verbesserte Sicherheitsmechanismen
Heuristik
- Praxisbewährte Regeln und Konzepte als Richtlinien
- Verallgemeinerungen von konkreten gesammelten Erfahrungen
- Häufig unbewusst eingesetzt
- Verallgemeinerungen von konkreten gesammelten Erfahrungen
- Häufig unbewusst eingesetzt
Entwurfsmuster
= bewährte Lösungsschablonen für wiederkehrende Entwurfsprobleme
- bieten erprobte Lösungsansätze
- ermöglichen dadurch bessere Entwürfe
- bieten erprobte Lösungsansätze
- ermöglichen dadurch bessere Entwürfe
Architekturmuster
= bestimmen grundlegende Organisation und Interaktion zwischen den Komponenten einer Anwendung
Observer
- Empfang von Ereignissen (Events) von außen
- Weiterleitung der Ereignisse an Objekte (Listener), die sich als Interessenten angemeldet haben
- Einsatz bei grafischen Benutzungsoberflächen
- Weiterleitung der Ereignisse an Objekte (Listener), die sich als Interessenten angemeldet haben
- Einsatz bei grafischen Benutzungsoberflächen
Factory
= erzeugt auf Anfrage Objekte zu Klassen und stellt diese der Anwendung zur Verfügung
Singleton
= in der Softwareentwicklung eingesetztes Entwurfsmuster und gehört zur Kategorie der Erzeugungsmuster
- stellt sicher, dass von einer Klasse genau ein Objekt existiert
- stellt sicher, dass von einer Klasse genau ein Objekt existiert
MVC
= Model-View-Controller-Pattern
- zur Entwicklung grafischer Benutzungsoberflächen
- weite Verbreitung
- zur Entwicklung grafischer Benutzungsoberflächen
- weite Verbreitung
Data Access Object
= ein Entwurfsmuster, das den Zugriff auf unterschiedliche Arten von Datenquellen (z. B. Datenbanken, Dateisystem) so kapselt, dass die angesprochene Datenquelle ausgetauscht werden kann, ohne dass der aufrufende Code geändert werden muss.
- eigentliche Programmlogik von technischen Details der Datenspeicherung befreit werden und flexibler einsetzbar sein
- eigentliche Programmlogik von technischen Details der Datenspeicherung befreit werden und flexibler einsetzbar sein
Entfernte Referenz
- ist über Raum und Zeit garantiert eindeutig
- besteht aus:
– Internetadresse -> gibt den Rechner an
– Port-Nummer und Zeit -> identifizieren eindeutig den Prozess
– Objektnummer -> identifiziert das Objekt
– Schnittstelle -> beschreibt die entfernte Schnittstelle
- wird von einer speziellen Schicht, der Remote-Referenz-Schicht, erzeugt, wenn eine lokale Referenz als Argument an einen anderen Prozess übergeben wird, und in dem korrespondierenden Proxy gespeichert
- besteht aus:
– Internetadresse -> gibt den Rechner an
– Port-Nummer und Zeit -> identifizieren eindeutig den Prozess
– Objektnummer -> identifiziert das Objekt
– Schnittstelle -> beschreibt die entfernte Schnittstelle
- wird von einer speziellen Schicht, der Remote-Referenz-Schicht, erzeugt, wenn eine lokale Referenz als Argument an einen anderen Prozess übergeben wird, und in dem korrespondierenden Proxy gespeichert
RMI Registry
- Bereitstellung von Referenzen auf Service-Objekte
- RMI-Umgebung generiert bei der Anmeldung eines Service-Objekts an der RMI-Registry eine Objektreferenz
Diese enthält:
– die IP-Adresse,
– den Port,
– die Objekt-ID.
- RMI-Umgebung generiert bei der Anmeldung eines Service-Objekts an der RMI-Registry eine Objektreferenz
Diese enthält:
– die IP-Adresse,
– den Port,
– die Objekt-ID.
Referenz-Semantik
Soll das Ergebnis eines Aufrufs als entfernte Referenz vorliegen, muss das Objekt nicht kopiert werden, sondern bleibt entfernt.
Asynchrone Kommunikation
= Modus der Kommunikation, bei dem das Senden und Empfangen von Daten zeitlich versetzt und ohne Blockieren des Prozesses stattfindet.
- Sender ist nicht blockiert; der Prozess kann nach dem Senden der Nachricht sofort weiterarbeiten.
- Sender ist nicht blockiert; der Prozess kann nach dem Senden der Nachricht sofort weiterarbeiten.
Point-to-point
- einfache asynchrone Kommunikation zwischen zwei Prozessen (Anwendungen)
Broadcasting
- Nachrichten werden an alle erreichbaren und/oder registrierten Prozesse versendet
Request-reply
Verschicken einer Nachricht (Request) und das Empfangen einer Antwortnachricht (Reply) erfolgen als eine Einheit
Publish-Subscribe Modell
- Prozesse erhalten Rollen als Publisher bzw. Subscriber
- Subscriber abonnieren Nachrichten zu einem Thema
- Publisher veröffentlichen Nachrichten zu einem Thema
- Subscriber abonnieren Nachrichten zu einem Thema
- Publisher veröffentlichen Nachrichten zu einem Thema
Kartensatzinfo:
Autor: @destructive_influen...
Oberthema: Verteilte Systeme
Thema: Verteilte Systeme
Schule / Uni: DHBW Stuttgart
Ort: Stuttgart
Veröffentlicht: 27.04.2016
Tags: Prof. Dr. Ratz, 2016
Schlagwörter Karten:
Alle Karten (89)
keine Schlagwörter