3 - J (suc1)
3 - J (suc1)
3 - J (suc1)
Set of flashcards Details
Flashcards | 68 |
---|---|
Language | Deutsch |
Category | Riddles and Jokes |
Level | Primary School |
Created / Updated | 06.01.2014 / 15.01.2014 |
Weblink |
https://card2brain.ch/box/3_j_suc1
|
Embed |
<iframe src="https://card2brain.ch/box/3_j_suc1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Ein verteiltes System ist
<Verteilte Systeme und Anwendungen>
ein System, in dem Hard- und Softwarekomponenten, die sich auf untereinander vernetzten Computer befinden, miteinander kommunizieren und Ihre Aktionen koordinieren, indem sie Nachrichten austauschen
Eine verteilte Anwendung ist
<Verteilte Systeme und Anwendungen>
aus verschiedenen Komponenten besteht und ein verteiltes System zur Lösung eines Anwendungsproblems benutzt
Komponenten einer verteilten Anwendung kommunizieren miteinander mit Hilfe von Nachrichten
Einem Standard-Anwender erscheint eine verteilte Anwendung wie eine gewöhnliche, nicht verteilte Anwendung (transparent)
Schichten einer Anwendung
<Verteilte Systeme und Anwendungen>
Datenhaltung Datenbanken / Dateien
Datenverarbeitung Geschäftslogik / Prozesssteuerung
Datenpräsentation Diverse Datensichten Kommunikation mit Benutzer (UI)
Verteilte Systeme - Vorteile
<Verteilte Systeme und Anwendungen>
Besseres Abbild der Realität (Leistungen werden dort erbracht, wo sie benötigt werden)
Wirtschaftlichkeit und Lastverteilung
Bessere Skalierbarkeit
Fehlertoleranz
Verteilte Systeme - Nachteile
<Verteilte Systeme und Anwendungen>
Höhere Komplexität durch Verteilung und Heterogenität
Komplexe Netzinfrastruktur
Höhere Sicherheitsrisiken (Verletzlichkeit)
Modell (Abbildung der Wirklichkeit)
<Verteilte Systeme und Anwendungen>
Mit einem Modell werden allgemeine Eigenschaften und Design eines Systems beschrieben
Die wichtigsten Komponenten des Systems und deren Aufgaben
Die Interaktion zwischen unterschiedlichen Komponenten des Systems
Wie das Verhalten der Komponenten (einzeln und kollektiv) beeinflusst werden kann
Softwareschichten Modell
<Verteilte Systeme und Anwendungen>
Applikation (Unabhängig von Platform)
Middleware (Verbirgt die Heterogenität des verteilten Systems)
Platform
- OS (ermöglicht zugriff auf systemressourcen)
- HW
Architektur Modelle, aufgabe
<Verteilte Systeme und Anwendungen>
Das Architekturmodell eines verteilten Systems
vereinfacht und abstrahiert die Erfassung von Funktionen der einzelnen Komponenten
definiert die Verteilung von Komponenten in einem Netz von Computern
definiert die Beziehung von Komponenten untereinander (Rolle in der Kommunikation, Kommunikationsmuster)
Architektur Modelle, Beispiele
<Verteilte Systeme und Anwendungen>
Peer-To-Peer Modell
Client-Server
Client-Server: Variante Applet
Client-Server: Mobile Agenten
Client-Server: Spontane Netzwerke
Mehrfacher Server
Proxy-Server
Aufgabenteilung zwischen Client uns Server bei 2-Tier-Architektur
<Verteilte Systeme und Anwendungen>
Thin Client reine Präsentation von Daten
Fat Client Präsentation, Verarbeitung und teilweise Datenhaltung
Performance von modellen, beinhaltet
<Verteilte Systeme und Anwendungen>
Antworten auf eine Anfrage schnell
Durchsatz von Daten
Lastbalancierung
Quality of Service von Modellen, beinhaltet
<Verteilte Systeme und Anwendungen>
Verfügbarkeit des Systems
Zuverlässigkeit des Systems
Sicherheit
Transparenz durch Middleware, erklärung
<Verteilte Systeme und Anwendungen>
Das verteilte System wirkt wie eine Ganzheit
Der Benutzer nimmt es gar nicht wahr, dass es sich bei dem System, das von ihm benutzt wird, um ein verteiltes System handelt Folie
DBMS-Unabhängigkeit
<DB Zugriff>
Eine Anwendung soll nicht von einem konkreten DBMS abhängig sein.
Eine Zwischenschicht zwischen Anwendung und DBMS soll als "Übersetzer" dienen
Lösungen: ODBC JDBC
DBMS und Treiberkonzept
<DB Zugriff>
Allgemeine Definition: Ein DB-Treiber ist eine Softwarekomponente, welche die Kommunikation zwischen einer Anwendung und einer Datenbank ermöglicht.
JDBC-Treiber
ist eine Komponente, welche die Kommunikation zwischen einer Java-Anwendung und einer Datenbank ermöglicht.
stellt für den Client eine einheitliche Java-Schnittstelle zur Verfügung.
Zugriff auf Datenbank - Ablauf
<DB Zugriff>
Erstellung der Verbindung zur Datenbank
Erstellung der SQL-Anweisungsfolge
Senden der Anweisungsfolge zum Datenbank-Server und ihre Ausführung
Verarbeitung der Ergebnisse
Schliessen der Verbindung zur Datenbank
Laden eines JDBC-Treibers
<DB Zugriff>
Class.forName("org.postgresql.Driver");
Verbindung aufbauen
<DB Zugriff>
String url = "jdbc:postgresql://147.88.100.100:5432/raum_db";
String user = "student";
String pwd = "geheim";
// Aufbau der Verbindung
Connection con = DriverManager.getConnection(url, user, pwd);
Statement kreieren
<DB Zugriff>
Statement stm = con.createStatement();
Schreibender Zugriff
<DB Zugriff>
int anz = 0;
String delQuery = "DELETE FROM tbl_raum WHERE id_raum=2";
anz = stm.executeUpdate(delQuery)
Lesender Zugriff
<DB Zugriff>
String query = "SELECT * FROM tbl_raum";
ResultSet rs = stm.executeQuery(query)
ResultSet durchlaufen
<DB Zugriff>
while(rs.next()){
str = "Raum: " + rs.getString("bezeichnung");
str += ", Anz. Plaetze: " + rs.getInt("anz_plaetze");
System.out.println(str);
}
Verbindung schliessen
<DB Zugriff>
.close
Connection
Statement
ResultSet
Beim Schliessen einer Connection-Instanz, werden alle Statement- und ResultSet-Instanzen implizit geschlossen
Property-Datei, aufgabe
<DB Zugriff>
Bei einem Austausch des DBMS muss einzig die entsprechende property-Datei ersetzt bzw. angepasst werden, während der Programmcode unangetastet bleibt
Die entsprechende Treiberklasse muss verfügbar und im CLASSPATH sein
Metadaten, arten
<DB Zugriff>
DatabaseMetaData
ResultSetMetaData
Idee von OR mapper
<OR mapping>
Das Ziel: Ein Framework haben, das die Übersetzung zwischen "objektorientiert" und "relational" möglichst automatisch vornimmt.
Beispiel: - JPA als Spezifikation und
- Hibernate / EclipseLink / OpenJPA als Implementierung (Provider)
Java Persistence API (JPA)
<OR mapping>
- JPA ist eine Spezifikation, mit der die für OR-Mapping benötigten Funktionalitäten in der Java-Welt definiert werden.
- Vorteile:
- ermöglicht das Speichern von Daten auf OO-Weise (als Objekte)
- einfach im Gebrauch und nicht von irgendeinem Provider abhängig
- in der Industrie von führenden Unternehmen eingesetzt
- stellt die Portabilität von Anwendungen sicher
- kann sowohl mit JEE als JSE verwendet werden
Anforderungen an ein O/R Mapper !!!
<OR mapping>
- Verbindungsverwaltung
- Mapping von Klassen auf Attribute auf Tabellen und Spalten
- Formulierung und Ausführung von SQL-Befehlen
- Transaktionssteuerung
- Verwaltung von Relationen und Navigation darüber
- Abbildung von Vererbungsbeziehungen
- Generierung technischer Ids
- Zurverfügungstellung objektorientierter Suchmöglichkeiten
- Caching von Daten
Klase ORM fähig machen
<OR mapping>
import ...
@Entity
implements serializable => add generated UID
@Id
@GeneratedValue
private int id; => generate setters and getters for id
(OneTo...)
standard konstrukor
TODO in der testklasse
Annotationen
<OR mapping>
sind Sprachelemente, mit denen das Einbinden von Metadaten in den Quellcode möglich wird
- beginnen mit dem Zeichen @ gefolgt von dem Namen der Annotation
- können (optional) auch Parameter enthalten
- Annotationen werden von einer passenden Komponente (z. B. beim Compilieren des Quellcodes) entsprechend verwertet
Annotationen Beispiele
<OR mapping>
- @Entity - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name="Nachname") - @JoinTable(name="student_lerngruppe") - @JoinColumn(name="lerngruppe_id") - @ManyToMany(mappedBy="projects")
Persistenzkontext !!!
<OR mapping>
Die Summe aller von einem EntityManger verwalteten Entities
- Kann sich, je nach Bedarf, ändern:
neue Entities werden hinzugefügt
eine oder mehreren Entities werden entfernt (detached)
JPA-Provider braucht diverse Informationen, um - Verbindung zur Datenbank aufzubauen und - Tabellen anzulegen
<OR mapping>
Die Datei persistence.xml muss im Verzeichnis META-INF sein (siehe das Bild)
Erzeugen einer EntityManagerFactory
<OR mapping>
entityManagerFactory = Persistence.createEntityManagerFactory("BooksPU");
Kreieren eines EntityManager-Objekts
<OR mapping>
EntityManagerFactor factory = JpaUtil.getEntityManagerFactory();
EntityManager em = factory.createEntityManager();
Methoden der Klasse EntityManager
<OR mapping>
void persist (Object entity)
<T> T find(Class<T>, Object primaryKey)
<T> T merge (T entity)
void remove (Object entity)
Adresse speichern
<OR mapping>
em.getTransaction().begin();
Adresse adr = new Adresse ( … );
em.persist(adr);
em.getTransaction().commit();
em.close();
Assoziationen
<OR mapping>
- Ownership: A oder B
- Kardinalität: 1:1, 1:n, m:n
- Direktionalität: ja / nein
zusätzliche Verknüpfungstabelle
<OR mapping>
@JoinTable