Herzlich Willkommen… welcome… soyez la bienvenue….

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Object Relational Mapping
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Cloud42 Dominik Muhler Seminar StuPro cims cims.
Objekt – Relationales – Modell Tomasz Makowski IN
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Ruby on Rails im Überblick
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.
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Komponentenbasierter Taschenrechner mit CORBA
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Systementwicklungsprojekt:
CRM Editor auf der Basis von Qt (Beispiel von Ubi erat Lupa)
FH-Hof Adapter & Facade Pattern Richard Göbel. FH-Hof Motivation Gegeben ist eine Klasse mit vorhandenen Methoden Gefordert ist eine Klasse, die ein bestimmtes.
YouTube5 .0 Projektpräsentation
News Modul Überblick und Erweiterung
Wir bauen uns eine Webapplikation!
EasyDiet Team C Team C1. Das Team Projektdetails Systemvoraussetzungen Funktionsüberblick Showcase Team C2 Agenda.
MDA – Framework AndroMDA
Robotron – Titel der Präsentation Martin Kunze,
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Mit 3 Schichte zum Erfolg
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Architecture Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Sesame Florian Mayrhuber
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Spring Framework.
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.
Oliver Spritzendorfer Thomas Fekete
Referent: Stephan Metzler
OpenStreetMap.org Einleitung und Erläuterung von OSM 1Created by: Rudolf Kremsner.
XML (Extensible Markup Language)
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Datenbankanbindung in Web-Applikationen
Fred 2.0 Projektvorstellung Christoph Müller
UML Präsentation Team 2 Projekt Sportereignis
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Willkommen zum Brückensemester
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Ilmenau, den * * Torsten Kunze
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
EJB Architektur für große Web - Applikationen Gerald Weber
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
Freelance Cakephp Programmierer. Wir empfehlen das CakePHP System, um eine schnelle Entwicklung von Webanwendungen sicherzustellen. CakePHP ist ein bewährtes.
DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH
1 Simulation einer Ladesäule für Elektrofahrzeuge nach dem Open Charge Point Protocol Felix Batke 3. Lehrjahr.
EFFORTMANAGEMENT Jan Gerber Simon Hofmann Lukas Nonnenmacher.
 Präsentation transkript:

Herzlich Willkommen… welcome… soyez la bienvenue…

Name:Frank Dillinger Studium:Angewandte Informatik / Wirtschaft Fachhochschule Kaiserslautern (2000 – 2004) Arbeitgeber:INTRASOFT International S.A EUROPEAN Parliament (Luxembourg) DG INNOVATION AND TECHNOLOGICAL SUPPORT Position:Software Architect Technologien:Java, J EE, Spring, Spring MVC, Hibernate, Maven 2…

Gegenüberstellung zweier Softwarearchitektur - Ansätze unter Verwendung eines Objekt Relationalen Mappers (ORM) wie JPA, Hibernate oder EJB….

Multi Tier / Layer Software Architektur Client Layer (FAT Client, Web Client, (Web)Service..) Business Layer Data Access Layer DATABASE Wie wird die Kommunikation zwischen den Layern realisiert? Welche Objekte werden für die Kommunikation verwendet? ? ?

Business Layer Client Layer Data Transport Object (DTO) Domain Model Object Data Transport Objekte und Kapselung der Persistenz Objekte Jeder Layer verwendet sein eigenes Objekt Persistenz Objekte (PO) nur im Data Access Layer sichtbar. Business Layer verwendet Domain Model. Kommunikation zum Client wird über Data Transport Objekte (DTO)realisiert. Vorteile: Vollständig initialisierte Objekt-Graphen Persistenz Informationen z.B. JPA Annotations nicht in Domain Model sichtbar. Nachteile: aufwändiger zu realisieren Mapping zwischen DTO Domain Model PO muss implementiert und gepflegt werden Data Access Layer Persistence Object (PO) DATABASE Persistence - Framework (OR – Mapper)

Business Layer Client Layer Domain Model Object (POJO) Domain Model Objekt als Transport- und Persistenzobjekt Alle Layer verwenden das Domain Model (POJO) (Plain Old Java Object) Nachteile: Lazy Loading Problematik, wenn Objekt nicht mehr mit dem Persistenz-Framework verbunden ist (Detached Object). Persistenz Informationen z.B. JPA Annotations in Domain Model sichtbar. Vorteile: Kein Mapping (Assembling) zwischen Layern notwendig Domain Model Objekt kann mit Konfiguration (Hibernate Mapping File) oder Annotations (JPA) zu einem Persistenzobjekt gemacht werden) Data Access Layer DATABASE Persistence– Framework (OR Mapper)

7 Anwendung eines Object-Relationalen-Mapping (ORM) Persistenz - Frameworks Ein ORM Framework ermöglicht es (Java) Objekte persistent in einer Relationalen Datenbank abzuspeichern und aus Entities einer Relationalen Datenbank wieder (Java) Objekte zu erstellen. Das Mappen zwischen Objekten und Datenbanktabellen erfolgt mittels META Daten in Form von Annotations (JPA) oder Mapping Files (Hibernate). Das ORM Framework hat Optimierungsfunktionen wie Caching und Lazy Loading integriert. Relational Database Table META Data Java Object Persistence – Framework (OR Mapper)

Audio Book Klassendiagramm:

9 Beispiel: Lazy Laoding

10 Ausdehnung des Persistenz-Frameworks Client Layer Business Layer Domain Model Object (POJO) Data Access Layer Persistence – Framework (OR Mapper) DATABASE session-per-request with detached objects / POJO Façade Open-session-in-view (OSIV) Wo beginnt das ORM Persistenz-Framework ??

Persistenz-Framework bis in den Business Layer ausgedehnt (session-per-request with detached objects / POJO Facade) Client Layer Business Layer Data Access Layer Persistence – Framework (OR Mapper) DATABASE In diesem Ansatz ist das Domain Model Objekt (POJO) nur eine bestimmte Zeit mit dem Persistenz- Framework verbunden. Außerhalb des Persistenz- Frameworks ist Lazy Loading nicht möglich! (Detached Object) Das Domain Model Objekt (POJO) kann wieder mit Persistenz-Framework (Kontext) verbunden werden. (Re-Attached Object) Domain Model Object (POJO) Domain Model Object (POJO) 1.Lazy Loading 2.Fehlende Assoziationen / Objekt-Graph nicht initialisiert 3.Unterscheidung der Vollständigkeit der Objekte (Full / Light Loading)

Client Layer Business Layer Data Access Layer OR Mapper DATABASE Domain Model Object (POJO) 1. Lazy Loading Um eine Lazy Loading Exception zu vermeiden, ist lediglich ein implizites Nachladen / fetchen der Assoziation innerhalb des Persistenz-Frameworks (OR Mapper) notwendig. <class name="de.fd.mediamanager.model.audiobook.AudioBook" table="AUDIO_BOOK" schema="media manager" lazy="true"> <class name="de.fd.mediamanager.model.audiobook.AudioBook" table="AUDIO_BOOK" schema="media manager" lazy= "false">

1.1 Lazy Loading Laden des Audio Books ohne Assoziationen auf Server Seite (Data Access Layer)Laden des Audio Books mit Assoziationen auf Server Seite (Data Access Layer)Laden des Audio Books im Controller (außerhalb des Persistenz – Frameworks, Client Layer)

Unter bestimmten Umständen kann es sein, dass eine Assoziation nicht vorhanden ist, also null ist! Daraus ergibt sich die Frage: Soll / Muss der Objekt – Graph (immer) inizialisiert werden ??? Client Layer Business Layer Data Access Layer Persistence - Framework DATABASE Domain Model Object (POJO) 2.Fehlende Assoziationen / Objekt - Graph nicht initialisiert…

Client Layer Business Layer Data Access Layer OR Mapper DATABASE Domain Model Object (POJO) 2.1 Fehlende Assoziationen / Objekt-Graph nicht initialisiert… Beispiel: Die Kontaktdatenpflege

Client Layer Business Layer Data Access Layer OR Mapper DATABASE Domain Model Object (POJO) 2.2 Fehlende Assoziationen / Objekt - Graph nicht initialisiert… Bevor das Domain Objekt (POJO) das Persistenz–Framework verlässt, kann es sinnvoll sein, es für den Aufenthalt außerhalb des Persistenz–Frameworks zu präparieren. Das Präparieren des POJOs könnte mit Hilfe der Methoden detachObject(AudioBook) und reAttachObject(AudioBook) erfolgen.

2.3 Die Methode detachObject (...) in der Facade... (Business Layer) Die Methode detachObject(..) überprüft den Objekt – Graphen ab dem Startpunkt und erzeugt gegebenenfalls die Assoziationen um den Objekt – Graphen zu komplettieren. Die Werte der Attribute in den Assoziationen werden nicht initialisiert !

2.3 Die Methode reAttachObject (...) in der Facade... (Business Layer) Die Methode reAttachObject(..) beginnt am Ende des Objekt – Graphen die Überprüfung ob die vorhandenen Assoziationen (POJO Objekte) leer sind. Ist ein Objekt leer wird es durch null ersetzt. Somit wird der Objekt – Graph rückwärts überprüft und jedes leere Objekt durchnull ersetzt. Damit dies funktioniert, muss jedes POJO Objekt die MethodeisEmpty() implementieren, da jedes POJO individuell entscheiden muss, ob es leer ist oder nicht. Die Methode reAttachObject (..) ist die Umkehrung von detachObjekt(..)

19 Client Layer Business Layer Data Access Layer Persistence - Framework DATABASE Domain Model Object (POJO) 2.4 Sonar….

Client Layer Business Layer Data Access Layer OR Mapper DATABASE Domain Model Object (POJO) 3. Unterscheidung der Vollständigkeit der Objekte (Full / Light Loading) Getter Funktionen in der Facade (Business Layer)!

21 Business Layer Client Layer Data Transport Object (DTO) Domain Model Object DATABASE Client Layer Business Layer Data Access Layer Persistence – Framework (OR Mapper) DATABASE Domain Model Object (POJO) Data Transport Objekt versus Domain Model (POJO) Data Access Layer Persistence Object (PO) Persistence – Framework (OR Mapper)

22 Vielen Dank für Ihre Aufmerksamkeit…