Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen

Ähnliche Dokumente
Migration der Datenbankzugriffsschnittstelle in Client/Server-Anwendungen

Übung B. JPA Java Persistence API. Prof. Dr. Andreas Schmietendorf 1. Übung B (Exkurs)

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

Eclipse und EclipseLink

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

Java-Objekte mit SQL verheiraten

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Die Hochschule MünchenM

Datenzugriffskomponente mit JPA 2.1

Enterprise JavaBeans (mit JBoss)

Java Persistence API. Phillip Ghadir Oliver Tigges

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Enterprise JavaBeans Überblick

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

Spring & Hibernate Eine praxisbezogene Einführung

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Rapid Java wie mit Forms

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

Eberhard Wolff. Spring. Framework für die Java-Entwicklung. "BJ dpunkt.verlag

Wiederholung. Systemtests

Criteria API: Komplexe SQL Queries mit Eclipslink bauen

UI-Architekturen mit JSF

Hibernate Das Praxisbuch für Entwickler

Software- /Systemarchitektur

JDO Java Data Objects

Ausgemustert? Der Einfluss von EJB 3.0 auf J2EE Design Patterns. Java Forum Stuttgart, 5. Juli 2007 Stefan M. Heldt

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

Criteria API Komplexe SQL-Queries mit Eclipselink bauen 1

Daten Bank. 6. Vorlesung

Spring & Hibernate HANSER. Eine praxisbezogene Einführung. Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr

Persistenz. Ralf Gitzel

Daten Bank. 6. Vorlesung

Referent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: Deutsche Software Engineering & Research GmbH

Software Engineering. 8. Persistenz

MyCoRe > V1.0: Technische Weiterentwicklung

3-Tier-Architecture und J2EE

Softwareentwicklung mit Enterprise JAVA Beans

Persistenz Muster. Muster rund um den Datenbank Zugrif

<Insert Picture Here> Oracle Forms Roadmap in Richtung SOA

Inhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

Rene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate

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

Big Data in der Praxis

Großer Beleg. Vergleich Persistenzkonzepte Newtron Framework J2EE. Robert Vogel. 08/2002 Vergleich Persistenzkonzepte 1

Einfluss von Programmierschnittstellen auf Anwendungsperformance

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Die OSGi Service Plattform

Java Database Connectivity. Gracin Denis, IB 4 C

Von Forms auf Java in 10 Tagen Traum oder Wirklichkeit?

Inhaltsverzeichnis Einleitung Imperative Sprachkonzepte Objektorientierte Sprachkonzepte

Erfahrungsbericht - Oracle ADF 11g im produktiven Einsatz

Der Tiger im Tank: PL/SQL-Logik in Java-Anwendungen optimal nutzen

Enterprise JavaBeans Überblick

5. Programmierschnittstellen für XML

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

Übung3. Test der Möglichkeiten des JDBC-Interfaces. Prof. Dr. Andreas Schmietendorf 1. Übung 3

5. Programmierschnittstellen für XML

10. OLAPLINE-Anwendertreffen

Java Database Connectivity (JDBC) zum Zugriff aus in z.b. in Java geschriebenen Applikationen

Hibernate. Persistenz in Java-Systemen mit Hibernate und der Java Persistence API. dpunkt.verlag

Übungsaufgabe Transaktion als Middleware

2 Konzept der objektrelationalen Abbildung

Techniker Krankenkasse, Hamburg: 10 Jahre produktives Java Enterprise

Enterprise JavaBeans Überblick

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Datenbankzugriff aus Eclipse Rich-Client- Anwendungen über das Internet

Das Leben der Anderen

ADF Persistenzmechanismen

Entwicklung per Click?

Programmierung von Java- Webanwendungen. paluno

Fast Analytics on Fast Data

Datenmanagement in Android-Apps. 16. Mai 2013

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Objekt-relationales Mapping und Performance-Tuning

Steuerflucht ins Ausland? Bringt nichts!

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

EJB 3 - Erfahrungen aus der Praxis. Heiko W. Rupp

Inhalt. 1 Einleitung Warum dieses Buch? Der rote Faden Danksagung URL zum Buch 4. TEIL I Einführung 5

Java 8 Date Time API mit PostgreSQL. Swiss PGDay 2016

Java Persistence mit Hibernate

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Entwicklung einer unterstützenden Suchfunktion für den ConSol*-Profil-Generator

Kapitel 5: Das Design

TopLink. das performante und flexible Persistenz- Framework

Einführung: Verteilte Systeme - Remote Method Invocation -

09:35 10:20 Die SOA Strategie von Oracle (Oracle Forms und Fusion Middleware) Forms Roadmap to SOA Entwicklung mit JDeveloper und Oracle ADF

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Hibernate Eine Einführung

Common Warehouse Metamodel und Imperfektion

TopLink. das performante und flexible Persistenz- Framework

ORM-Frameworks Des einen Freud, des anderen Leid

Entwicklung von ADF-Applikationen JDeveloper vs. Eclipse. Jürgen Menge Oracle Deutschland

Transkript:

Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen Christian Böhmer, isys Software GmbH Björn Grimm, Hochschule München 1 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Agenda Einleitung Theorie Zugriffstechniken Klassische Zugriffstechniken ORM-Ansatz Praxis Migrationsanalyse Zielsetzung Durchführung Leistungsbetrachtung Codevergleich Fazit 2 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Einleitung Projekt Verwalter-Service Auftraggeber: Hausbank München Projektumfang: 8-15 Mitarbeiter, ~550.000 LOC (Java), ~250 Tabellen 3 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Einleitung Systemarchitektur 4 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Einleitung Aufgabenstellung EJB EJB EJB EJB DAO DAO ORM Datenbank 5 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Einleitung Erhoffte Vorteile Bessere Anpass- und Wartbarkeit der Datenbankzugriffsschnittstelle Verbesserte Leistung Weniger Fehler Befürchtete Nachteile Risiko Realisierbarkeit Teilweise wesentlich schlechtere Leistung 6 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Klassische Zugriffstechniken Weitestgehend direkte Verwendung von JDBC, gestützt durch Design Patterns Kapsellung der JDBC Zugriffe in eigenen Hilfsklassen Definition eines Datenbankaufrufes erfolgt generell durch SQL 7 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Data Access Object (DAO) / Data Mapper Zugriff erfolgt über zentrale Zugriffsklassen Zugriffsklassen können Datenbankeinträge laden übergebene Objekte speichern bzw. ändern 8 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Active Record Pattern Ein Objekt repräsentiert einen Datensatz Gesamte Zugriffslogik ist im Objekt selbst enthalten find Methode save Methode insert Methode 9 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Row Data Gateway Nahezu identisch zum Active Record Pattern Enthält keine Geschäftslogik Mehr objektorientierter Ansatz, da Kapsellung durch Interfaces erfolgt 10 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Table Data Gateway Verwaltet ganze Tabellen einer Datenbank in einem Objekt Eine Instanz enthält somit alle Datensätze dieser Tabelle 11 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken ORM-Ansatz (1) ORM ist die Abkürzung für Object-Relational-Mapping Objekte werden direkt auf die Datenbank abgebildet Implementierung der Zugriffslogik nicht notwendig Wird zur Laufzeit vom ORM-Framework vorgenommen Abbildungsbeschreibung kann erfolgen durch deklarative Konfigurationsdateien Annotationen im Programmcode 12 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken ORM-Ansatz (2) Bietet den Vorteil, dass das zugrundeliegende Datenbanksystem ohne Anpassung am Programmcode ausgetauscht werden kann Datenbankabfragen erfolgen über SQL native Abfragesprache, ähnlich zu SQL Vertreter des ORM-Ansatzes Java Persistence API (JPA) Java Data Object (JDO) Container Managed Persistence (CMP) 13 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Java Persistence API Spezifiziert im Java Community Process, JSR 220 Frameworks verwenden Reflection für die Realisierung Bekannte Implementierungen Hibernate EclipseLink bzw. TopLink 14 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Theorie - Zugriffstechniken Java Data Object Spezifiziert im Java Community Process, JSR 243 Frameworks verwenden Byte Code Manipulation für die Realisierung Bekannte Implementierungen Apache JDO DataNucleus 15 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Migrationsanalyse Zielsetzung Durchführung Leistungsbetrachtung Codevergleich 16 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Migrationsanalyse Problemstellen identifizieren und mögliche Workarounds finden An leistungskritischen Prozessen implementieren, um Erfahrungen zu sammeln Vorgehen für die Durchführung erstellen, an der sich andere Entwickler orientieren können Entscheidungshilfe für oder gegen eine komplette Migration der ausgewählten Anwendung 17 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Zielsetzung Festlegen von Mindestvoraussetzungen Konkret Ressourcenverbrauch bei kritischen Prozessen darf maximal um 20% steigen Verarbeitungszeit bei kritischen Prozessen darf maximal um 20% steigen Verwendetes ORM-Produkt ist Hibernate 18 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Durchführung Probleme die während der Durchführung aufgetreten sind Verwendung primitiver Datentypen Annotationen an den Getter-Methoden und nicht an den Datenfeldzuweisungen Logik in den Getter- und Setter-Methoden Sicherheitsfrage, wenn Annotationen im Code verwendet werden Automatisches Nachladen von Daten in einer Mehrschicht-Architektur führt zu Lazy-Loading-Problem 19 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Leistungsbetrachtung Vergleich der vorhandenen DAO und der Hibernate Implementierung Wichtig sind möglichst identische Voraussetzungen für die Messungen Aufbau der Testmessungen Daten aus 15 Tabellen laden und an den Client transportieren Der Testfall sollte ein aufwändiger Prozess sein, um Ausmaß bei Problemfällen besser einschätzen zu können Messung umfasste 10 Einzelmessungen und wurden im Client unter der Verwendung des gleichen Aufrufes gemessen Programminterne Zwischenspeicher wurden deaktiviert Dauer zwischen den Messungen mind. 30 Sekunden, um Zwischenspeicherung der SQL-Befehle zu minimieren 20 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Leistungsbetrachtung - Messreihe Messreihe 1 2 3 4 5 6 7 8 9 10 Mittelwert DAO-Pattern 93 91 82 77 101 76 68 64 89 70 81 Hibernate 427 328 369 375 353 453 430 313 349 354 375 500 450 400 350 300 250 200 150 DAO-Pattern Mittelwert DAO Hibernate Mittelwert Hibernate 100 50 0 1 2 3 4 5 6 7 8 9 10 21 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Praxis Codevergleich DAO Pattern Hibernate Einsparung bis zu 75% der Datenzugriffsschicht 22 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Fazit Empfehlungen Migration der Datenbankzugriffsschicht unter bestimmten Voraussetzungen möglich Auftretende Probleme sind lösbar, bis auf die Leistungsunterschiede Grundvoraussetzung sollte sein, dass der Datenbankzugriff in einer eigenen Schicht erfolgt Vorhandenes DAO-Pattern ließe sich schon mit Hibernate kombinieren 23 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Fazit Erfahrungen Migration zum ORM-Ansatz muss für jedes Projekt differenziert betrachtet werden Beim Zugriff auf komplexe Tabellenstrukturen und beim Laden großer Datenmengen ist zum Teil sehr lange Zugriffszeiten unvermeidbar Problematisch kann dies in leistungskritischen Prozessen oder während der Batch-Verarbeitung sein 24 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Fragen? 25 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm

Kontakt Christian Böhmer Software Architekt E-Mail: c.boehmer@isys-software.de isys Software GmbH Lucile-Grahn-Str. 37 81675 München Mitarbeiter 75, davon 50 Festangestellt 26 Migration der Datenbankzugriffsschnittstelle in Client-/Server-Systemen C. Böhmer, B. Grimm