ADF BC Und EJB/JPA Im Vergleich Hendrik Gossens
Total Page:16
File Type:pdf, Size:1020Kb
ADF Persistenzmechanismen ADF BC und EJB/JPA im Vergleich Hendrik Gossens Nürnberg,| 19.11.2013 MT AG GESCHÄFTSFORM INHABERGEFÜHRTE AG HAUPTSITZ RATINGEN GRÜNDUNGSJAHR 1994 BESCHÄFTIGTE 180 FESTANGESTELLTE MITARBEITER BETEILIGUNGEN MT-IFS GMBH (RATINGEN), MT-IFS SARL (LUXEMBURG) BUSINESS SOCIAL BUSINESS MOBILE INTELLIGENCE SOLUTIONS SOLUTIONS SOLUTIONS APPLICATION INTEGRATION IT SYSTEM DEVELOPMENT SERVICES SERVICES business by integration | Agenda 1. Objektrelationales Mapping (ORM) 2. ADF Business Components (ADFbc) 3. Enterprise Java Beans (EJB) und Java Persistence API (JPA) 4. Showcase 5. Gegenüberstellung der Konzepte 3 | ADF BC und EJB/JPA im Vergleich Objektrelationales Mapping (ORM) ° Überführung von (Java-)Objekten in Datenbankstrukturen und umgekehrt - OOP-Sprachen kapseln Daten und Verhalten in Objekten - Relationale Datenbank speichern Daten in Tabellen => Object-relational Impedance Mismatch ° Einsatz von Frameworks wie ADFbc oder EJB/JPA empfehlenswert Department - Struktur - Identität departmentId: Long - Datenkapselung departmentName: String - Datentypen - Arbeitsweise … -… 4 | ADF BC und EJB/JPA im Vergleich ADF Schichtenarchitekur 5 | ADF BC und EJB/JPA im Vergleich ADF Business Components ° „Standard“-Persistenz-Framework von ADF ° Objektrelationales Mapping ° Transaktion und Locking ° Möglichkeiten der Manipulation ähnlich zu Forms (doDML, before lock, …) ° LOVs auf Attributen ° Wesentliche Komponenten • Entity Objects • View Objects • Assoziationen • View Links • Application Modules 6 | ADF BC und EJB/JPA im Vergleich Konzeptuelle Sicht auf ADFbc Quelle: Oracle ADF Fundamentals Schulung 7 | ADF BC und EJB/JPA im Vergleich Gründe für ADF BC ° Gute Integration mit JDeveloper ° Gute Integration mit Oracle Datenbank ° Metadatengetrieben (XML) ° Deklarative Herangehensweise ° Einfach zu erlernen für Umsteiger aus der „alten“ Oracle-Welt ° Wiederverwendbarkeit bestehender SQL-Kenntnisse (z.B. bei View Criterias) ° Java Implementierung anpassbar (Vererbung, Hook Points, …) ° Gute Skalierbarkeit ° Standardweg für ADF-Applikationen ° Gute Testbarkeit durch Business Components Tester 8 | ADF BC und EJB/JPA im Vergleich Java Persistence API (JPA) ° Schnittstelle um relationale Daten in Java-Applikationen zu verwalten ° Objektrelationales Mapping ° Leichtgewichtig ° Industrie-„Standard“ ° Vielfältige Persistence Provider (BatooJPA, EclipseLink, Hibernate, OpenJPA, …) ° EclipseLink (früher Oracle TopLink) Referenzimplementierung von JPA 2.0 ° Plain Old Java Objects (POJO) ° Nutzung von JPA ist nicht auf Enterprise Java Beans (EJB) beschränkt - JPA ist Untermenge von EJB3, Implementierung bereitgestellt durch „Persistence Provider“ - EJB Implementierung bereitgestellt durch EJB Container des Application Servers ° Konfigurierbar via Annotations und/oder XML 9 | ADF BC und EJB/JPA im Vergleich Konzeptuelle Sicht auf JPA Persistence erzeugt konfiguriert durch Persistence PersistenceUnit EntityManager Unit Factory erzeugt find() persist() merge() Persistence verwaltet EntityManager remove() Entity Context 10 | ADF BC und EJB/JPA im Vergleich PersistenceUnit - Ausschnitt persistence.xml 11 | ADF BC und EJB/JPA im Vergleich persistence.xml – JDeveloper-Tooling (11g) 12 | ADF BC und EJB/JPA im Vergleich Beispiel JPA 13 | ADF BC und EJB/JPA im Vergleich Wichtige Begrifflichkeiten im EJB-Umfeld Session Beans Entity Beans (@Entity) Container- Bean- singleton stateless stateful managed managed persistence persistence Message-Driven Beans EJB 3.1 14 | ADF BC und EJB/JPA im Vergleich Konzeptuelle Sicht auf EJB SessionBean EntityManager (Service) find() persist() merge() remove() persistence.xml … DataSource „Entity Bean“ @Entity Department @Id departmentId: Long departmentName: String … 15 | ADF BC und EJB/JPA im Vergleich Gründe für JPA/EJB ° Einfach erlernbar ° Breite Anzahl an Java Entwicklern ° Gute Dokumentation und Hilfestellung durch Java Community ° Datenbankunabhängig ° Offener Standard => verringert Gefahr des „Vendor Lock-In“ ° Geringer Konfigurationsaufwand ° Eigene, SQL-ähnliche Abfragesprache (JPQL) + named queries ° Criteria Queries ° Multitenant Entities ° Breite Toolunterstützung (JDeveloper, Eclipse, NetBeans, …) ° Plain Old Java Objects (POJO) => Jede Java-Klasse persistierbar ° Gute Testbarkeit, z.B. mit Hilfe von JUnit ° Metadatengetrieben (XML oder Annotations) 16 | ADF BC und EJB/JPA im Vergleich JPA in ADF ° Verschiedene Möglichkeiten - ADF EJB DataControl => EJB und JPA ° Criteria Support ° Create/Merge/Delete Entities ° Transaktionsunterstützung - ADF Java DataControl => Java Facade und JPA ° Transaktionsunterstützung (Operations) ° Criteria Support ° Create/Merge/Delete Entities ° Model-Tester (via DataControl.dcx) - … 17 | ADF BC und EJB/JPA im Vergleich EJB in ADF Zu implementierende EJB Funktionalität ° Typischerweise getter pro named query ° queryByRange(String jpqlStmt, int firstResult, int maxResults) - Wenn diese Methode implementiert ist, dann nutzt DataControl diese statt der getter-Methode ° Transaktionssteuerung ° public boolean isTransactionDirty() ° public void rollbackTransaction() ° public void commitTransaction() 18 | ADF BC und EJB/JPA im Vergleich EJB in ADF Optionen im Transaktionsverhalten Session Bean singleton stateless stateful Bean-Managed Transaction Implizites commit Explizites commit Container-Managed Transaction Implizites commit Explizites commit EJB Container Showcase | Gegenüberstellung ADF BC und EJB/JPA ADFbc EJB/JPA bc4j.xcfg persistence.xml EJB Session Bean Application Module Java Service Facade View Objects Named Queries Entity Objects Entities 21 | ADF BC und EJB/JPA im Vergleich Zusammenfassung ° ADF unterstützt viele Möglichkeiten um ORM zu realisieren ° Ähnliche Konzepte von ADF BC und JPA ° JDeveloper unterstützt beide Persistenz-Frameworks gut (Editoren, …) ° Abstraktion und Austauschbarkeit über DataControls ° Auswahl u.a. abhängig vom Vorwissen der Entwickler ° ADF BC eher für Umsteiger aus der „Oracle“-Welt ° JPA hat bei Java-Entwicklern oft höhere Akzeptanz ° ADF BC deklarativer, JPA etwas mehr Programmieraufwand ° ADF BC Integration in JDeveloper besser als EJB/JPA ° Bei bestehendem Oracle Datenmodell: Erfahrungsgemäß besser ADF BC ⇒ Sonst ggf. JPQL-Queries mit Oracle-Spezifika notwendig ° Hoher Aufwand ° Vorteile von JPA gehen verloren 22 | ADF BC und EJB/JPA im Vergleich Quellen ° http://docs.oracle.com/html/E24396_01/ejb3_overview_arch.html ° Oracle ADF Fundamentals Schulung 11g ° Update/Insert With JPA and EJB using ADF (Shay Schmelzer) http://www.youtube.com/watch?v=VyPOhmWD5Y0 ° http://docs.oracle.com/cd/E28280_01/web.1111/b31974/bcquerying.htm ° http://openejb.apache.org/jpa-concepts.html ° http://docs.oracle.com/middleware/1212/adf/ADFDC/ejb.htm ° http://docs.oracle.com/cd/E37547_01/tutorials/tut_jpa_app/tut_jpa_ejb.html ° http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1212-nf- 1964675.html ° http://docs.oracle.com/middleware/1212/adf/ADFDC/ejb.htm#CHDEEAIH 23 | ADF BC und EJB/JPA im Vergleich Vorträge auf der ADF BC und EJB/JPA im Vergleich ADF Persistenz-Frameworks im Vergleich – JPA/EJB Hendrik Gossens, Di, 11 Uhr vs. ADF BC Continuous Integration für Oracle DB und Apex Peter Busch, Dominic Ketteltasche, Di, 12 Uhr Mein Backup – die richtige Strategie oder der totale Volker Mach, Di 16 Uhr Irrweg? Das APEX QS-Plugin Oliver Lemm, Mi, 12 Uhr Forms goes APEX – wie man es richtig macht Niels de Bruijn, Sven-Olaf Kelbert, Mi 15 Uhr USABLE_FILE_MB im Oracle ASM oder wenn der Ernst Leber, Mi, 16 Uhr nutzbare Plattenplatz negativ wird Erstellen einer mobilen Applikation mit PhoneGap Wolfgang Nast, Do, 9 Uhr und ADF Mobile Experten-Panel: APEX und DB-Programmierung Niels de Bruijn, Do, 11 Uhr Java Unterstützung von Multithreading in den Wolfgang Nast, Do, 12 Uhr Versionen 1.0 bis 7 3 Wochenenden Strohwitwer Christof Kaller, Do, 12 Uhr business by integration | Treffen der Deutschen ADF Community Wann Dienstag, 19. Nov., 14.00 – 14.45 Uhr Wo Warum Neuigkeiten zu Oracle ADF erfahren Raum Sydney Mit Product Managern und Experten sprechen Networking und ... | Deutsche Oracle ADF Community • Oracle ADF Community auf XING • Twitter: @ADFCommunityDE • ADF Spotlight : 30-minütige Web Seminare an jedem 2. Freitag • ADF Project Sessions : Serie von eintägigen Workshops • Regelmäßige Treffen mit Fachvorträgen und Diskussionen • Zusammenarbeit mit der DOAG (Jahreskonferenz, SIG) • DOAG Barcamp und ADF Hacker‘s Event (30./31. Januar 2014) Werden Sie Teil unserer Community! | Vielen Dank. MT AG Balcke-Dürr-Allee 9 40882 Ratingen Telefon: +49 (0) 21 02 309 61-0 Telefax: +49 (0) 21 02 309 61-101 E-Mail: [email protected] www.mt-ag.com|.