Johannes Passing, 17.01.2006 Prevayler. HPI, Seminar Advanced Database Technology - WS2005/2006 2 Agenda Einführung Persistenzhaltungs-Konzepte Einsatzarten.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

E-Commerce Shop System
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Programmieren im Großen von Markus Schmidt und Benno Kröger.
www.materna.de1 Evaluierung einer aus Open Source Komponenten bestehenden J2EE Umgebung Marcus Jäger ~ Fachinformatiker Anwendungsentwicklung ~
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Indizierung von Graphen durch häufige Subgraphen (2)
Zusammenfassung der Vorwoche
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Ausnahmen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Indirekte Adressierung
Java: Referenzen und Zeichenketten
DOM (Document Object Model)
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Das JavaCard-Betriebssystem
Speicherung von XML- Dokumenten als Large Objects.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
JDBC EDV JDBC.
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Informationssysteme SS Informationssysteme Grundvorlesung Informatik Sommersemester 2004 Universität des Saarlandes, Saarbrücken Dr. Ralf Schenkel.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Java Data Objects (JDO) und Implementierung in FastObjects.
Einführung und Überblick
JDBC: JAVA Database Connectivity
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Neue Module und weitere Entwicklung in uniLIME Gerald Schuster, Advanced Technical Software, Wien.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Allgemeines zu Datenbanken
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Transaktion Huang Zhenhao FU Shuai.
Thread Synchronisation in JAVA
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
XML und Datenbanken © 2006 Markus Röder
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Datenanbindung in Webapplikationen
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
prof. dr. dieter steinmann Seite: 1 SAP Seminar 2006 Toleranzgrenzen, Tabellenpflege Foliensatz.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Synchronisation paralleler Transaktionen  AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (2/13) Im folgenden wird ein vereinfachtes.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
6.3 Verteilte Transaktionen
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
EJB Architektur für große Web - Applikationen Gerald Weber
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
SQL Basics Schulung –
 Präsentation transkript:

Johannes Passing, Prevayler

HPI, Seminar Advanced Database Technology - WS2005/ Agenda Einführung Persistenzhaltungs-Konzepte Einsatzarten von Datenbanken Object Prevalence Konzepte Prevayler Konzepte Datensicherheit Performanz Fazit

HPI, Seminar Advanced Database Technology - WS2005/ Einführung Persistenzhaltung für objektorientierte Programme Verwendung von RDBMS und O/R-Mapping Objektmodell und relationales Modell sehr unterschiedlich Mapping idR nicht transparent Mapping aufwändig und teuer Ideal: Objektmodell mit Geschäftsobjekten Objekte besitzen ACID-Eigenschaften Objekt-Implementierung entspricht der transienter Objekte Kein Mapping o.ä. notwendig Einfachere und schnellere Entwicklung

HPI, Seminar Advanced Database Technology - WS2005/ Persistenzhaltung – Einsatzarten von Datenbanken Application Database [Fowler] Exklusiv von einer einzigen Applikation verwendet Schema ist auf spezifische Anforderungen angepasst Evolutionäre Schemaentwicklung möglich Konsistenz kann von Applikation sichergestellt werden Trigger, Constraints etc. nicht unbedingt erforderlich Einfach verständliches Schema

HPI, Seminar Advanced Database Technology - WS2005/ Persistenzhaltung – Einsatzarten von Datenbanken Application Database (2) Interoperabilität hat geringen Stellenwert In-Process-Implementierung möglich Kein externer Zugriff notwendig (ODBC etc) Typische Anwendungen 3 Schichten-Systeme Datenbank durch Applikation verkapselt (EJB, COM+, WebServices etc) Desktop-Anwendungen Kein externer Zugriff notwendig Datenbank wird an Applikation angepasst Datenbank ist Mittel, Applikations-Daten persistent zu halten

HPI, Seminar Advanced Database Technology - WS2005/ Persistenzhaltung – Einsatzarten von Datenbanken Integration Database [Fowler] Wird von mehreren Applikationen genutzt Dient der Daten-Integration zwischen Applikationen Schema muss allen Applikationen gerecht werden Generelles, oftmals komplexes Schema Hohe Schemastabilität notwendig Hoher Stellenwert von Konsistenzsicherung auf Datenbank-Ebene Einsatz von Trigger, Constraints, Stored Procedures

HPI, Seminar Advanced Database Technology - WS2005/ Persistenzhaltung – Einsatzarten von Datenbanken Integration Database (2) Hoher Stellenwert von Interoperabilität Netzwerkzugriff erforderlich Meist separate Maschine für Datenbank Schnittstellen wie ODBC, JDBC, OLEDB notwendig Typische Anwendungen ERP-Systeme OLTP-Systeme Applikation wird an Datenbank angepasst Applikation ist Mittel zum Zugriff auf die Datenbank und deren Modifizierung

HPI, Seminar Advanced Database Technology - WS2005/ Object Prevalence Konzept, In-Memory Datenstrukturen mit ACID-Semantik zu versehen Erstmals 1987 von A. D. Birrell, M. B. Jones und E. P. Wobber in A Simple and Efficient Implementation for Small Databases veröffentlicht Name Object Prevalence von Klaus Wuestefeld eingeführt Gründer des Prevayler-Projektes

HPI, Seminar Advanced Database Technology - WS2005/ Object Prevalence Konzepte Alle Daten werden in einer einzigen Datenstruktur abgelegt Gesamte Datenstruktur befindet sich im Arbeitsspeicher Prämissen: Es steht stets genug Arbeitsspeicher zur Verfügung RAM-Preise sinken stetig Durch 64 Bit-Maschinen kann Adressknappheit umgangen werden In-process Ausführung Application Database Gegensatz zu RDBMS-Konzept – RDBMS ist so konzipiert, dass nicht alle Daten im Arbeitsspeicher gehalten werden müssen

HPI, Seminar Advanced Database Technology - WS2005/ Object Prevalence Konzepte (2) Periodischer Snapshot der Datenstruktur Abspeicherung auf persistentem Medium Zugriff auf Datenstruktur geschieht indirekt Command-Pattern Write Ahead Log für modifizierende Zugriffe Log beinhaltet Modifizierungen seit letztem Snapshot Abspeicherung auf persistentem Medium Startup/Recovery Einlesen des letzten Snapshots Log wird eingespielt

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler Projekt Prevayler Gegründet durch Klaus Wuestefeld Erste öffentliche Implementierung des Object Prevalence- Konzeptes Konzept nicht grundsätzlich neu, aber erstmals universell implementiert Implementiert in Java Open Source (BSD Lizenz) Erstes Release 2001 (noch unter LGPL) Inzwischen existieren weitere Implementierungen neben Prevayler Bekannt durch Performanz-Angaben 9000 mal schnellere Abfragen als Oracle (über JDBC) 3000 mal schnellere Abfragen als MySQL (über JDBC) kein TPC-C o.ä. verfügbar

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Konzepte Datenstruktur Objektbaum als Datenstruktur Keine Einschränkung bzgl. Implementierung Enthält sämtliche Business-Objekte Es existiert ein einziges Wurzel-Objekt Alle weiteren Objekte sind über Wurzel-Objekt erreichbar wird als PrevalentSystem bezeichnet Objektbaum muss serialisierbar sein Implementierung von java.io.Serializable oder java.io.Externalizable Zur Snapshot-Erzeugung

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Konzepte Datenzugriff Zugriffe nur durch Command-Objekte Lesen: Query-Objekt Schreiben: Transaction-Objekt Nur programmatischer Zugriff möglich Keine Query Language o.ä. Prevayler weiß nicht, was Transactions/Queries tatsächlich tun Synchronisation und Snapshots auf Datenstruktur- statt Objekt-/Page-Ebene Gegensatz zu RDBMS

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Konzepte Datenzugriff (2) Alle Zugriffe werden seriell ausgeführt Während Ausführung wird gesamte Datenstruktur gesperrt Lesender Zugriff Implementierung der Query-Schnittstelle Zugriffe werden nicht protokolliert Query-Objekte dürfen niemals Modifikationen ausführen public interface Query { public Object query( Object prevalentSystem, Date executionTime) throws Exception; }

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Konzepte Datenzugriff (3) Modifizierender Zugriff Implementierung der Transaction-Schnittstelle (bzw. TransactionWithQuery) Transaction-Objekt muss serialisierbar sein Wird vor Ausführung in Transaction Log serialisiert Verhalten muss deterministisch sein Während Startup/Recovery werden Commands erneut ausgefüht Externe Ressourcen dürfen idR nicht verwendet werden Prevayler-Zeit muss statt Systemzeit verwendet werden public interface Transaction extends java.io.Serializable { public void executeOn( Object prevalentSystem, Date executionTime); }

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Datensicherheit Snapshots Gesamter Objektbaum wird serialisiert Standard: Java Object Serialization Alle Objekte, nicht nur dirty Objekte werden serialisiert Ablauf 1.Objektbaum sperren 2.Objektbaum serialisieren und speichern 3.Objektbaum entsperren 4.Snapshot als vollständig markieren 5.Transaction Log trunkieren, alte Snapshots löschen (optional) Downtime während Serialisierung Kann durch Replikation vermieden werden Periodische Durchführung Intervalldauer bestimmt Downtime und Recovery-Dauer

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Datensicherheit Transaktionsverarbeitung Ablauf 1.Test auf Serialisierbarkeit des Transaction-Objekts 2.Approval durch Censor 3.Eintrag in Transaction Log 4.Aufruf Transaction.executeOn() Transaction-Command gilt als atomar Atomarität muss durch Command selbst sichergestellt werden Bei Fehler müssen alle Modifikationen rückgängig gemacht werden Aufwändig bei kompositen Aktionen Transaction.executeOn kann Exception werfen Ergebnis hängt von verwendetem Censor ab

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Datensicherheit Transaktionsverarbeitung – Censors Censors Genehmigen Commands (Approval) vor Ausführung LiberalTransactionCensor Keine Prüfung der Commands Commands werden sofort auf Haupt-Datenstruktur ausgeführt Wenn Fehler auftritt, muss dies von Command behandelt werden – sonst: inkonsistente Datenstruktur

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Datensicherheit Transaktionsverarbeitung – Censors (2) StrictTransactionCensor Command wird doppelt ausgeführt Command wird zunächst auf Kopie der Datenstruktur (Food Taster) ausgeführt Wenn erfolgreich: Ausführung auf Haupt-Datenstruktur Bei Fehler (Exception): Transaktion wird abgebrochen Kopie der Datenstruktur wird verworfen und neu erstellt Sehr teure Operation Konsequenz Höhere Konsistenz-Sicherheit Erhöhter Speicherbedarf und Ausführungszeit

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Datensicherheit ACID Durability durch Snapshots und Logs sichergestellt Isolation durch serielle Command-Ausführung Entwickler muss Atomarität von Commands sicherstellen Ggf. durch Kompensation Sonst: Gefahr inkonsistenter Datenstruktur Entwickler muss Konsistenz der Datenstruktur sicherstellen Vor und nach erforgreicher/fehlerhafter Ausführung eines Commands muss Datenstruktur konsistent sein Fehlerhafte Command-Implementierung kann gesamte Datenkonsistenz zerstören

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Performanz Allgemein Vergleich mit RDBMS schwierig RDBMS meist out-of-process Verwendung von ODBC/JDBC/etc Verfügbare Performanz-Messungen beziehen sich auf 1- Prozessor-Maschinen Flaschenhals Synchronisation Serielle Ausführung von Queries und Transactions Problematisch bei stark nebenläufigen Systemen Problematisch auf SMP-Systemen Weitere CPUs werden nicht optimal ausgenutzt Problematisch bei langen Transaktionen Lange Wartezeit auf Lock

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Performanz Lesender Zugriff Kein Zugriff auf persistenten Speicher notwendig Alle Daten befinden sich in Arbeitsspeicher Bei sinnvollem Einsatz von Hashtables etc sehr schneller Zugriff Minimaler Overhead Kann Größenordnungen schneller sein als RDBMS Modifizierender Zugriff Zugriff auf persistenten Speicher notwendig WriteAhead-Logging Bei StrictTransactionCensor: Zusätzlicher Overhead Rollbacks teuer Etwa gleiche Größenordnung wie RDBMS

HPI, Seminar Advanced Database Technology - WS2005/ Prevayler – Schemaevolution Schemaevolution Werden Klassen ausgetauscht, müssen diese mit Snapshot bzw. Transaction Log kompatibel sein Sonst: Deserialisierung nicht mehr möglich Beispiel: Löschen/Hinzufügen eines Attributs Einschränkungen hängen von Serialisierungsverfahren ab Standard: Java Object Serialization Sehr strikt Durch serialVersionUID, transient fields, SerialPersistentFields und Externalizable lässt sich Serialisierung beeinflussen Abwärtskompatibilität häufig nicht realisierbar Workaround: 1.Snapshot mit alten Klassen laden 2.Datenstruktur mit neuen Klassen erzeugen 3.Snapshot erzeugen Sehr aufwändig, erfordert Downtime

HPI, Seminar Advanced Database Technology - WS2005/ Fazit Einsatz Als Application Database für moderate Datenmengen Vornehmlich Lese-Zugriff auf Daten Verwendung Keinerlei O/R-Mapping notwendig Schnelle Entwicklung Hohe Transparenz für Geschäfts-Objekte Jedoch geringe Transparenz bei Datenzugriff (Query/Transaction-Modell proprietär) Performanz Hohe Lese-Performanz Nicht für stark nebenläufige oder SMP-Systeme ausgelegt Datensicherheit Erfordert Sorgfalt vom Entwickler Erreicht nicht die Sicherheit und Robustheit moderner RDBMS

HPI, Seminar Advanced Database Technology - WS2005/ Referenzen [RJW] Birrell, Andrew; Jones, Michael; Wobber, Edward: A Simple and Efficient Implementation for Small Databases, digital Systems Reseach Center, 1987 [Carver] Carver, Frank: Thoughts about Prevayler and Databases ( ) [Evans] Evans, Huw: Why Object Serialization is Inappropriate for Providing Persistence in Java, Department of Computing Science, University of Glasgow [Fowler] Fowler, Martin: Design Bliki ( ) [Melton] Melton, Hayden: An Evaluation of Object Prevalence, Dept. of Electrical and Electronic Engineering, University of Auckland [ON] Obermayer, Nathanael: ACID gratis, iX Ausgabe [Prevayler] Prevayler Homepage, [Spille] Spille, Mike: Prevayler Revisited ( ) [PT] Printezis, Tony: Garbage Collection in the Java HotSpot Virtual Machine, DevX ( ) [WE] Wolff, Eberhard: Die schnellste Datenbank der Welt, Java Magazin Ausgabe