DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping
Projektmeeting Stufe I Kick-Off Stufe II
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
E-Commerce Shop System
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
JPQL Java Persistence Query Language
Java Beans von Raoul Schneider.
Druck / Ausgaben unter LSF
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Konstruktoren.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
XDoclet ETIS SS05.
Transaction Script Software Component Technology for Distributed Applications.
Introducing the .NET Framework
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
JDBC EDV JDBC.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Systementwicklungsprojekt:
JDBC: JAVA Database Connectivity
Die Persistenzschicht
Herzlich Willkommen… welcome… soyez la bienvenue….
Working With Persistent Objects
Vom XML Schema zur relationalen Datenbank Seminararbeit zum Multimedia-Seminar im SS 2002 Erstellt von: Thomas Dickel.
Wir bauen uns eine Webapplikation!
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Programme dokumentieren mit JavaDoc
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
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.
Allgemeines zu Datenbanken
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Von Isabelle Spörl und Simon Schausberger
Referent: Stephan Metzler
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Was ist überhaupt eine Datenbank?
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
Hibernate (OR-Mapping)
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
JOMP
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
O/R - Mapper Hibernate ETIS SS04. Hibernate 2 Gliederung Motivation Architektur Persistente Klassen Mapping-Files Konfiguration und Datenbanken Ablauf.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Objektorientierte (OO) Programmierung
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
Entwicklung einer Webapplikation mittels HTML, PHP, MySQL, jQuery, und Smarty-Templates am Beispiel einer Studienarbeitsverwaltung.
1 TopLink - flexible Persistenz im Oracle Application Server.
Recent Magazine Ad.
Von Wietlisbach, Lenzin und Winter
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH

Übersicht Aufgabe Persistenz-Schicht TopLink als O/R-Mapper Realisierung Ausblick

Aufgabe Migration einer Client-Server- Applikation nach J2EE

Fachl. Anforderungen Ergonomisch Datenintegrität Erweiterung der Funktionalität

Techn. Anforderungen Java Applikation J2EE Thin-Client Plattformunabhängig Performant Zukunftssicher Abwärtskompatibel

J2EE Architektur Quelle: Sun

Persistenz-Schicht Eine Abstraktionsebene, welche die Details der Speicherung in einer Datenbank von Objekt- und Applikationsschicht trennt

JDBC JDBC ist kein Persistenz- Framework, aber es bietet die Möglichkeit, auf seiner Basis ein Framework zu erstellen JDBC verwendet SQL und liefert relationale „result sets“ Sehr schnell Hoher Programmieraufwand

Entity Beans Langsam Skalierbar Hohe Komplexität Aufwändig zu Warten

O/R Mapper Bester Kompromiss zwischen Nutzen und Aufwand OJB (Apache) Hibernate (Sourceforge) CoCo-Base TopLink

O/R-Mapper Bytecode-Enhancing Via Reflection Deklarativ (XML)

Vorteile eines Persistenz- Frameworks Übernimmt die Übersetzung von Datenbankobjekten in Java-Objekte Stellt eine abstrahierte Abfragesprache zur Verfügung Verwaltet Datenbankanbindungen und Transaktionen

Eigenentwicklung ? Meist Projektressourcen > 40 % Hohe Wartungskosten Fehleranfälligkeit in Applikationen Flexibilität bei Applikationsänderung

Was ist TopLink ? O/R-Mapper Deklarativer Mapper „proven industry-standard persistence framework“

Realisierung Standard-Vorgehensweise Randbedingungen Übernahme des Datenbank- Schema Beispiel

Standard-Vorgehen

Daten-Modell

Beispiel WebPSE Use-Case

Beispiel WebPSE Use-Case „Spesen erfassen“ Tabelle „Spesen“ P_ID CHAR(30) M_ID NUMBER(3) BETRAG NUMBER(19,2) DATUM DATE ZWECK VARCHAR2(2000) ZAEHLER NOT NULL NUMBER(22)

Java-Klasse public class Spesen { private double betrag; private Date datum; private BigDecimal mitarbeiterId; private String projektId; private BigDecimal spesenId; private String zweck; private Projekt projekt = null; // Rückreferenz auf Projekt public Spesen () { } getter/setter - Methoden

TopLink Workbench Klassen Tabelle Mapping-Info

TopLink Workbench

Konfiguration Möglichkeit des nativen Sequencing Lazy Initialisation via „Indirection“ Verschiedene Mappings möglich  „Direct to Field“  „One to One“  „One to Many“  „Many to Many“ Implizite Typkonvertierung Und vieles mehr....

Object-Caching Standard-Verhalten Abfrage SQL-Query Ergebnis(se) Existenzprüfung mit Primary Key im Cache  Ja  “liefere Objekt aus Cache“  Nein  Datenbank-Abfrage, „erstelle Objekt im Cache und liefere es zurück“

Caching-Strategien None Always Only if newer Version

Metadaten-Architektur Mit Hilfe der Workbench werden Metadaten im XML-Format erzeugt  Mapping-Informationen sind nicht im Objekt gespeichert  TopLink verändert weder das Objektmodell noch das Datenbank- Schema Schnelles Anpassen Änderungen (Datenbank)

Projekt-Deskriptor Deskriptoren

Beispiel WebPSE Import der generierten Metadaten mit Hilfe einer Java-Klasse Herstellen der Datenbankanbindung Datanbankanbindung im Kontext der Applikation Serviceorientierte Architektur Use-Cases in Struts-Actions implementiert Ergebnisse werden in FormBeans gewrappt und auf JSPs ausgegeben

Abfragen 1 public Spesen readSpesen(BigDecimal id) { Spesen spe = new Spesen(); ExpressionBuilder builder = new ExpressionBuilder(); Expression expr = builder.get("spesenId").equal(id); spe = (Spesen)session.readObject(Spesen.class,expr); return spe; }  Vorteil: Kein einziges SQL-Statement nötig  Kann aber bei Bedarf in der „Mapping Workbench“ konfiguriert werden Lesen aus DB/Cache

Abfragen 2 public Vector spesenAnzeigen(String projektId) { Vector vecSpesen = new Vector(); ReadAllQuery query = new ReadAllQuery(Spesen.class); ExpressionBuilder builder = new ExpressionBuilder(); Expression expr1 = builder.get("projektId").equal(projektId); Expression expr2 = builder.get("mitarbeiterId").equal(userId); Expression finalExpr = expr1.and(expr2); query.setSelectionCriteria(finalExpr); query.addAscendingOrdering("datum"); vecSpesen =(Vector)session.executeQuery(query); return vecSpesen; } Erstellen der Abfrage Sortieren

Datensicht FormBean Actions

Zusammenfassung Reduzierung des Entwicklungsaufwands Intuitive graphische Oberfläche zum Entwickeln (Mapping Workbench) 100% Pure Java Anbindung an fast jede relationale und nicht-relationale Datenbank durch passende JDBC-Treiber möglich

Alternativen Open Source  OJB (Apache)  Hibernate (Sourceforge) Commercial  TopLink  CoCo-Base

Ausblick Komplette Migration der Applikation Komplettes Abschalten der ‚alten‘ Client-Server-Applikation Zugang zur Applikation über die Firmen-Homepage

Schluss Schlechte Dokumentation/Kompatibilität Hoher Einarbeitungsaufwand Durch Migration höhere technologische Qualität Leichte Wartbarkeit Leichte Anpassung

DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in modernen J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH