Vesant JDO Genie für transparente Persistenz mit relationalen Datenbanken.

Ähnliche Dokumente
JDO Java Data Objects

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Objekt-relationales Mapping und Performance-Tuning

Objektorientierte Datenbanken

Hibernate Das Praxisbuch für Entwickler

Objektorientierte Datenbanken

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Algorithmen und Datenstrukturen

Übungsaufgabe Transaktion als Middleware

Softwareentwicklung mit Enterprise JAVA Beans

Java Einführung Collections

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Studentische Lösung zum Übungsblatt Nr. 7

Java Einführung Methoden in Klassen

JDBC. Allgemeines ODBC. java.sql. Beispiele

Hibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing

Variablen manipulieren per JDI

II.1.1. Erste Schritte - 1 -

Java für C++ Programmierer

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Programmentwicklung ohne BlueJ

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

Performance Tuning

Technologietag SharePoint 2010

LINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Java Persistence API 2.x. crud + relationships + jp-ql

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Aspektorientierte Middleware Florian Wagner

Inhaltsverzeichnis VII

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Employment and Salary Verification in the Internet (PA-PA-US)

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Java für Computerlinguisten

Übungen zum Workshop Objektrelationales Mapping mit JPA 2.0

Der IBM Websphere Portalserver

Programmieren 2 Selbststudium Semesterwoche 6

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Neue Features in C# 2.0


5. Tutorium zu Programmieren

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Enterprise JavaBeans

Auszug aus JAX-WS Folien

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Effiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution

Java-Schulung Grundlagen

5. Programmierschnittstellen für XML

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching

5. Programmierschnittstellen für XML

C# im Vergleich zu Java

Java Connectivity mit Caché extreme (Persist & Perform ohne Umwege) Gerd Nachtsheim, Senior Sales Engineer, InterSystems

Selbststudium OOP Programmieren 1 - H1103 Felix Rohrer

Entwicklung von Web-Anwendungen auf JAVA EE Basis

SharePoint Provider for Oracle

Schritt 4: Hallo Enterprise Bean

Softwareentwicklung mit Enterprise JAVA Beans

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Vorlesung Informatik II

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

Java Data Objects. Dr. Arno Schmidhauser Letzte Revision: Juni Webseite:

OODBMS Revival oder Renaissance? Einführung und Werkstattbericht über db40

Infinispan - NoSQL für den Enterprise Java Alltag

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Dennis Schulte / Tobias Flohre codecentric AG. Enterprise Java Batch mit Spring

Synchronisation in Java. Invisible Web

GWI Research. Gesellschaft für Wirtschaftsberatung und Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Objekt-Orientierte Programmierung

Warum EJB Technologie (1)?

anaptecs JEAF Plattform JEAF Developer Guide

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Java Beans.

Javakurs für Anfänger

Datenbank und Informationssysteme

Java Einführung Abstrakte Klassen und Interfaces

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

Beispiel: DB-Mock (1/7)

Objektorientierte Programmierung

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

Life Cycle Management

COPPER Best Practices

Kapitel DB:VI (Fortsetzung)

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Oracle BI Publisher in der Oracle Business Intelligence Enterprise Edition Plus. Eine Mehrwertdiskussion

Persistenzschicht in Collaborative Workspace

Probeklausur: Programmierung WS04/05

Transkript:

Vesant JDO Genie für transparente Persistenz mit relationalen Datenbanken. Martin Wessel Senior Pre-Sales Consultant Versant GmbH mailto: Martin.Wessel@versant.net Copyright Versant Europe 2004. All products are trademarks or registered trademarks of the respective companies. The information contained in this document is property of Versant.

Sie entwickeln Anwendungen in Java Wie machen Sie die Business-Objekte Ihrer Anwendungen persistent? Copyright Versant Europe 2004 2

Sie benutzen eine relationale Datenbank Zugriff mit JDBC Bruch in der Datenmodellierung Das Businessmodell ist Java Das Datenmodell ist relational Schlechte Performance bei komplexen Datenmodellen Entwicklung des Mapping-Codes ist sehr aufwendig Copyright Versant Europe 2004 3

Sie haben bereits ein Mapping-Tool Die Plege des Mapping-Codes übernimmt das Tool Das Mapping-Tool unterstützt keinen Standard Copyright Versant Europe 2004 4

Transparente Persistenz mit JDO JDO ist Standard von Sun für transparente Persistenz Versant ist Mitglied in der Expertengruppe Aktuelle Version JDO 1.0.1 Die Anwendungslogik ist Java Das Datenmodell ist Java Copyright Versant Europe 2004 5

Transparente Persistenz mit JDO Die Daten werden gespeichert in: Relationalen Datenbanken ORACLE, DB2, MySQL, Objekt Datenbanken FastObjects j2, FastObjects t7, Versant Developer Suite Copyright Versant Europe 2004 6

Transparente Persistenz mit JDO Anwendungs Architekturen J2ME - Eingebettete Systeme J2SE - Client/Server J2EE - Enterprise Java Beans Integration mit Java Connector Architecture (JCA) Copyright Versant Europe 2004 7

Konzepte von JDO im Detail Entwicklungszyklus Persistence by Reachability Lazy Loading Change Tracking Copyright Versant Europe 2004 8

Employee public class Employee { String name = null; float salary; private Employee () { String name = new String(); salary = (float) 0; } public Employee (String name) { this.name = name; this.salary = (float) 70000; } public void modifysalary(float delta) { salary = salary + delta; } } Copyright Versant Europe 2004 9

JDO Meta Data <jdo> <package name="dilbert"> <class name="employee"> </class> <class name="department"> <field name="employees" embedded="true"> <collection element-type="dilbert.employee"/> </field> </class> </package> </jdo> Copyright Versant Europe 2004 10

JDO Entwicklungszyklus MyClass.java Java Compiler MyClass.class MyClass.class JDO Enhancer XML Metadata JVM Copyright Versant Europe 2004 11

Transparente Persistenz mit JDO Transiente Objekte JVM Applikation Persistente Objekte Änderungen werden transparent in die Datenbank geschrieben Objekte werden transparent aus der Datenbank gelesen JDO Implementierung Zugriff auf RDBMS mit JDBC Direktzugriff auf ODBMS Navigation statt Abfragen Datenbank Copyright Versant Europe 2004 12

Department public class Department { String name = null; Employee manager = null; Set employees = new HashSet(); private Department() {} public Department (String name, Employee manager) { this.name = name; this.manager = manager; employees = new HashSet(); } public void addemployee(employee emp) { employees.add(emp); } Copyright Versant Europe 2004 13

Department (Fortsetzung) public Employee getmanager() { return manager; } public Iterator getemployees() { return employees.iterator(); } public int getnofemployees() { return employees.size(); } } Copyright Versant Europe 2004 14

LoadDatabase public class LoadDatabase { public static void main (String[] args) { if (args.length!= 1) { System.out.println ("Usage: LoadDatabase <properties> ); System.exit (1); } String propertiesfile = args [0]; PersistenceManagerFactory pmfactory = JDOFactory.getPersistenceManagerFactory(propertiesfile); PersistenceManager pm = pmfactory.getpersistencemanager(); Transaction trx = pm.currenttransaction(); Copyright Versant Europe 2004 15

LoadDatabase (Fortsetzung) trx.begin(); Employee boss = new Employee ("Boss"); Department department = new Department("RD", boss); Employee emp1 = new Employee ("Walt"); Employee emp2 = new Employee ("Dilbert"); department.addemployee(emp1); department.addemployee(emp2); pm.makepersistent(department); trx.commit(); pm.close(); Copyright Versant Europe 2004 16

Persistence by Reachability Add() object A object B object C Durch Referenzen direkt oder indirekt erreichbare Objekte gehören ebenfalls dazu. object D Copyright Versant Europe 2004 17

Nach LoadDatabase name: RD manager: employees name: Boss salary: 70.000 name: Walt salary: 70.000 name: Dilbert salary: 70.000 Copyright Versant Europe 2004 18

Lazy Loading object A object B Nur Objekte auf die wirklich zugegriffen wird, sind geladen. object C object D Copyright Versant Europe 2004 19

Change Tracking object A object B object C Nur neue oder geänderte Objekte werden bei einem Commit() geschrieben object D Copyright Versant Europe 2004 20

YearlyJob public class YearlyJob { public static void main (String[] args) { if (args.length!= 1) { System.out.println ("Usage: YearlyJob <properties>"); System.exit (1); } String propertiesfile = args [0]; PersistenceManagerFactory pmfactory = JDOFactory.getPersistenceManagerFactory(propertiesfile); PersistenceManager pm = pmfactory.getpersistencemanager(); Transaction trx = pm.currenttransaction(); Copyright Versant Europe 2004 21

YearlyJob (Fortsetzung) trx.begin(); Query query = pm.newquery( Department.class, "this.manager.name == empname"); query.declareparameters("string empname"); Collection result = (Collection) query.execute ("Boss"); Iterator it = result.iterator(); while (it.hasnext()) { typicaldilbertaction((department) it.next()); } trx.commit(); pm.close(); Copyright Versant Europe 2004 22

TypicalDilbertAction private static final float increase = 5000; private static void typicaldilbertaction(department dep) { Iterator employees = dep.getemployees(); // Manager gets 5000$ more salary dep.getmanager().modifysalary(increase); float decrease = increase/dep.getnofemployees(); } while (employees.hasnext()) { Employee emp = (Employee) employees.next(); emp.modifysalary(-decrease); } Copyright Versant Europe 2004 23

Nach YearlyJob name: RD manager: employees name: Boss salary: 75.000 name: Walt salary: 67.500 name: Dilbert salary: 67.500 Copyright Versant Europe 2004 24

JDO mit Relationalen Datenbanken Reverse Mapping Mapping Architektur der Anwendung Was bietet Versant JDO Genie Copyright Versant Europe 2004 25

Ihre relationale Datenbank ist schon da Sie wollen mit Java auf Ihre relationale Datenbank zugreifen. Lassen Sie sich die Klassen generieren. RDBMS Tabellen Copyright Versant Europe 2004 26

Versant JDO Genie Workbench Versant JDO Genie Workbench Copyright Versant Europe 2004 27

Relationales Mapping Primärschlüssel Datastore Identity Application Identity Mapping von Klassenhierarchien Flat Vertical Copyright Versant Europe 2004 28

Relationales Mapping Feld Mapping Standard Mapping für alle Java Typen Kundenspezifische Anpassungen Automatische Felder (Datum, Zeit) Mapping von Referenzen Referenzen auf zusammengesetzte Primärschlüssel Kaskadierendes Löschen Mapping von Collections JDK 1.5 Generics Kaskadierendes Löschen Automatisches Löschen von Waisen Sortierung der Elemente auch wenn die Liste eigentlich unsortiert ist Copyright Versant Europe 2004 29

Queries und Transaktionen Queries, JDOQL Fetch Groups Erweiterungen (JDO 2.0 preview) tolowercase, contains, containskey, isempty, sql Transaktionen und Locking Pessimistisches Locking Optimistisches Locking Copyright Versant Europe 2004 30

Mehrstufige Architektur ohne JDO Copyright Versant Europe 2004 31

Cache Management Cache pro PersistenceManager ist standard Versant JDO Genie bietet einen gemeinsamen Cache für alle PersistencManager einer PersistenceManagerFactory Benachrichtigungen über Änderungen in einer Clusterumgebung Entfernte PersistenceManager können diesen Cache ebenfalls nutzen Umfangreiches Monitoring Copyright Versant Europe 2004 32

Mehrstufige Architektur mit JDO Genie Copyright Versant Europe 2004 33

Copyright Versant Europe 2004 34

Was Sie mitnehmen sollen! Transparente Persistenz mit JDO Sie wählen die richtige Datenbank Keine Beschränkung durch das Mapping Sie wählen die richtige Architektur Ihr Versant JDO Genie hilft Ihnen bei Ihrer täglichen Arbeit Copyright Versant Europe 2004 35