JDataSet & Persistenz Layer

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Einer der Dienste im Internet
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Objekt – Relationales – Modell Tomasz Makowski IN
Attribute Protocol.
Was bedeutet XML in Office-Applikationen für Systemadministratoren? Ruprecht Dröge MCSE MCSD MCT Microsoft Pre Sales Consultant.
Attribute Profile.
eXist Open Source Native XML Database
Objektrelationales Mapping mit JPA
ATHOS Benutzertreffen 12. November Archivierung Glashütten, 12. November 2008 HighQSoft GmbH, Karst Schaap
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Client-Server-Architekturen
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
WS 02/03 Netzwerkevon B. Frielinghaus Netzwerke Erzeugung und Änderung.
Datenintegrität Referentielle Integrität create table
ExKurs Datenprüfung 1/9 Dr. Barbara Hoffmann LiteraturKompetenz Datenprüfung Die automatische Datenerfassung durch Citavi ist eine bequeme Art,
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Was versteht man unter XML Schema?
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Seite 1 1 \\ Tracking Information System - Aufragsmanagement -
Geschäftsprozess- und Kostenmanagement
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
Hyperlinks und Anker Links notieren
Datasets und Objektmodelle
Betriebsanleitung DQI-WaWi2.
Webservice Grundlagen
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Grundlagen: Client-Server-Modell
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
..:: MULTI – ABO – KARTE ::.. Projektstudium Chipkarten SS 2003 Vortragende: Katrin Kampfmann, Alexander Lamprati (PM)
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Sandrine Ferrari Benjamin Bäni. CRYSTL-PIM (Product Information System) Ablauf Ausgangslage Ziele Lösungsansatz Komponenten Demonstration.
VU Semistrukturierte Daten 1
OSI- MODELL 7 Schichten Gruppe : WRJ.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Transaktion Huang Zhenhao FU Shuai.
XML und Datenbanken © 2006 Markus Röder
Normalisierungsprozess
ICT – Netzwerk und PC ICT – Modul Netzwerk und PC Gymnasium Kirchenfeld Thomas Jampen Sebastian Forster.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Kamran Awan & Mohammed Soultana
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Client-Server-Modell
Technische Kommunikation, Zusammenarbeit und Kommentierung mit RxView|RxHighlight.
Mehrschichten- Architektur. Sinn: Zur Strukturierung von Software, die eine spätere Änderung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten.
->Prinzip ->Systeme ->Peer – to – Peer
Vortrag - Diplomarbeiten (HS I)
ArcView als SDE - Client SDE Client inklusive! ArcViewGIS: ArcView GIS: Michael Jacobi ESRI GmbH ESRI EUROPEAN USER CONFERENCE.
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
Datenbanken Eine Einführung.
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Verknüpfung von Tabellen
DaimlerChrysler Workshop Architektur HyperbolicModeler  Notes Client  Notes native Java Klassen  Mehr Informationen über Design  Zugriff auf Dokumente.
Datenbanken Maya Kindler 6c.
Lisa Huber DHBW Mannheim
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Identity Management.  Zentrale Begriffe und Probleme  Modellbildung  Methoden zur Authentisierung über HTTP  Technische Aspekte  Compliance  Hindernisse,
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Es ist noch kein Datensatz vorhanden
 Präsentation transkript:

JDataSet & Persistenz Layer Generisches Transfermodel für Datenaustausch zwischen Datenbank und Oberfläche

Problemstellung / Anforderungen Informationsobjekte sollen aus der Datenbank entnommen, an die Oberfläche übergeben und mit den dort vorgenommenen Änderungen zurück in die Datenbank geschrieben werden. Diese Steuerung soll – ähnlich wie beim GuiBuilder – über XML-Dokumente erfolgen. Da Ganze lehnt sich natürlich an .NET an: Dataset Datenbank

Use Case „Daten lesen / ändern / speichern“ Im Zusammenhang mit einem Geschäftsvorfall fordert der Benutzer eine bestimmte Menge von Informationen aus der Datenbank an (vermittelt über einen Persistenz-Layer). Ggf. werden hierbei Suchbegriffe mit übergeben. Die Daten werden aus der Datenbank gemäß einer Vorschrift entnommen und zu einem generischen Dataset zusammengestellt. Der Dataset wird über das Netzwerk an die Oberfläche übertragen. Es findet ein Binding zwischen den Elementen des Dataset und den Widgets der Oberfläche statt. Der Benutzer kann über die Oberfläche den Dataset editieren (ändern, ergänzen, löschen). Der Dataset wird über das Netz zurück an der Persistenz-Layer übertragen. Gemäß den Benutzereingaben werden die Daten (im Rahmen einer Transaktion) in der Datenbank geändert, gelöscht, eingefügt.

Spezielle Features / Implementierungsideen Ein Dataset ist ein generisches Transfermodell. Ein Dataset hält Informationen in einer baumartigen Struktur. Die Regeln, nach denen die Daten zu einem Dataset zusammengestellt werden, sind nicht hart codiert, sondern werden (in XML) definiert. Der Persistenz-Layer erstellt anhand dieser Regeln wiederverwendbare Prepared Statements (JDBC). Fordert der Benutzer Daten an, wird anhand dieser Regeln ein Dataset zusammengestellt und in einem Rutsch (serialisiert) übertragen. Es ist durchaus möglich, dass die Daten für einen Dataset aus verschiedenen Datenbanken stammen. Optimistisches Locking wird automatisch berücksichtigt. Performanz-Überlegungen: Das vielgehörte Vorurteil, dass das wegen XML ja alles nur ganz lahm werden müssen, muss gleich am Anfang entschieden widersprochen werden: Die XML-Definition wird nur beim Hochfahren des Persistenz-Layers einmal eingelesen und dabei alle denkbaren Zugriffe („Request“) auf die Datenbank vorbereitet („Prepared Statements“). Jeder anschließende Zugriff auf die Datenbank bedeutet eine Widerverwendung dieser vordefinierten Requests.

Architektur / Schichtenmodell GuiConfig.xml SOAP RMI Client Server Dataset Config.xml Persistenz Layer Legende JDBC Abhängigkeit; ist definiert durch Datenbank DDL.sql Datenfluss-Protokoll

Persistenz-Layer Datenbank

Struktur eines Dataset Ein Dataset muss nach bestimmten Regeln aus den Tabellen einer Datenbank zusammengestellt werden: Es muss mindestens eine „Root-Table“ geben. Vor hier aus können deren übergeordnete „Parent-Tables“ und deren Parents („Grandparent“ usw.) hinzugefügt werden. Ausgehend von „Root“ können dessen „Child-Tables“ und dessen Childs („Enkel“ usw.) verwendet werden. Es darf nicht von einem Parent zu einem Child navigiert werden! In der Datenbank sollten die entsprechenden Foreign Keys und Indices definiert sein. „Siblings“ werden je nach Kontext wie „Child“ oder „Parent“ behandelt. Das Verbot, von einem Parent wieder zu einem Child zu navigieren hat vor allem den Grund, dass zyklische Datenstrukturen und damit Endlosschleifen vermieden werden sollen. Vermutlich macht das auch fachlich keinen Sinn.

Dataset - Objektmodell Gelb = Schema Grün = Data

Beispiel-Datenbank

Beispiel-Request

Inhalt Dataset - Schema Das sieht so aus, wenn ich zu dem Dataset „getXml()“ sage.

Inhalt Dataset - Data

GuiBuilder – Binding des Dataset Attribute für Binding: root-element element dataset displayMember valueMember Binding einer Tabelle an eine „Child-Table“ Binding einer Combobox element=„.person“ Der Punkt vor person ist wichtig“ Um Combo- und Listboxen initial mit Werten zu füllen, brauchen diese ihren eigenen Dataset. Notation: .ChildTable #ParentTable @Column

Zusammenspiel der Komponenten mit BeanShell #1 import de.pkjs.pl.*; // Persistenz-Layer import de.jdataset.*; // DataSet // Zugriff auf Persistenz-Layer verschaffen: PL pl = GuiSession.getInstance().getAdapter().getDatabase(); // Daten lesen read(event) { // Die Adresse mit dem Primärschlüssel „1“ wird gelesen... JSataSet ds = pl.getDataset(“AdresseEinzel, 1); // ...und wir weisen dieses der Oberfläche zu. event.window.setDatasetValues(ds); }

Zusammenspiel der Komponenten mit BeanShell #2 // Speichern der vom Benutzer geänderten Daten save(event) { // Daten aus der Oberfläche abholen JDatSet ds = event.window.getDatasetValues(); // Nur speichern wenn die Daten auch geändert wurden. if ( ds.hasChanges() ) { // Änderungen aus dem Dataset abholen... JDataSet dsChanges = ds.getChanges(); // ...und die Änderungen an den Persistenzlayer übergeben pl.setDataset(dsChanges); // Alles was als geändert, ergänzt oder gelöscht // gekennzeichnet wurde wieder zurücksetzen. ds.commitChanges(); }

Was fehlt ... HAVING, IN; JOIN Connection Pooling Binding an TreeView