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.
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.
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
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
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
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
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();
}
}
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.
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
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
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
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
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
Flashcard set info:
Author: @destructive_influen...
Main topic: Verteilte Systeme
Topic: Verteilte Systeme
School / Univ.: DHBW Stuttgart
City: Stuttgart
Published: 27.04.2016
Tags: Prof. Dr. Ratz, 2016
Card tags:
All cards (89)
no tags