Recent Magazine Ad 2 Präsentiert von: Martin Jäkle Principal Sales Consultant Solution House Development Framework & Integration [email protected] 3 Objekt Relationales Mapping Schreiben der Objekte in die Relational DB – – Objekte müssen in flache Strukturen zerlegt werden Die flachen Strukturen werden in Tabellen gespeichert Objekt-Raum (Java) Relationale Welt 4 Integration von Java und Datenbanken Lesen der Objekte aus der relationalen Datenbank – – Zusammensuchen der notwendigen Daten Erstellen und Verlinken der Objekte Objekt-Raum (Java) Objekt Register Relationale Welt Objekt Zustand 5 Wo passt TopLink hinein? 6 Wo passt TopLink hinein? Überall! TopLink integriert sich in jede Java-Architektur – – Java Objekte Entity Beans BMP für jeden J2EE kompatiblen Applikationsserver CMP für EJB1.1 und EJB2.0 – In alle Java Architekturen JSP Servlet SessionBean Message Driven Beans 2-Tier, 3-Tier, Peer-to-Peer Fat client, thin client JDO ADF 7 Oracle10g AS TopLink J2EE Web Services Integration Business Intelligence Portals Wireless 8 Warum TopLink? Aufgrund von hunderten von erfolgreichen Projekten, an denen tausende von Entwicklern gearbeitet haben, ist TopLink ein sehr robustes Framework, das sich in den verschiedensten Architekturen und Branchen bewährt hat ProSieb en 9 Top Produkt Funktionalitäten Meta-Daten Architektur Intuitive Visuelle Mapping Workbench Vollständiger Mapping Support Flexible Abfragesprache Caching OO-Transaktionsunterstützung Performance Tuning Optionen SDK J2EE Applikation Server Features 10 Meta-Daten Architektur Mapping Information werden im Deskriptor und nicht im Objekt gehalten Meta-Daten bedeutet auch: TopLink verändert weder das Objektmodell noch das DB-Schema Employee firstName lastName address birthDate E_ID TopLink Meta-Data F_NAME A_ID L_NAME CITY A_ID STATE B_DATE ZIP Address city state zip 11 TopLink Mapping Workbench – erstellt die Meta-Daten Mit der TopLink Mapping Workbench erzeugen Sie die MetaDaten 12 Flexible Mappings 13 Vollständiger Mapping Support und Flexibilität Direct to Field, One to One, One to Many, Many to Many – Es werden alle Foreign-Key Varianten der Datenbank unterstützt, inkl. von Join-Tabellen für M-to-M Mapping Object Type, Transformation – Für Aufzählungen (‘Herr’-> ‘H’) oder Konvertierungen (String zu Number) – Benutzer definierte Transformationen Aggregates, Multiple tables – Es können mehrere Objekte auf ein Tabelle abgebildet werden – Ein Objekt kann sich über mehrere Tabellen erstrecken Und vieles mehr – Serialized mappings, Direct Collections, Object-Relational Mappings, etc. 14 Objekt Abfragen mit Java Beispiel - Expressions Finde alle Kunden die ein Produkt “Schraube-M5” bestellt haben – Syntax für Java Entwickler: eine einfache Objekt-Attribute Abfrage: custExpression.anyOf(“orders”).anyOf(“orderItems”).get(“produ ct”).get("productName").equal(“SchraubeM5”) – Äquivalentes SQL-Statement: SELECT t3.ID, t3.FIRST_NAME, t3.LAST_NAME, t3.STREET, t3.CITY, t3.STATE, t3.ZIP FROM CUSTOMER t3, ORDER t2, ORDER_ITEMS t1, PRODUCT t0 WHERE ((t0.PRODUCT_NAME = ‚SchraubeM5') AND ((t2.CUST_ID = t3.ID) AND ((t1.ORDER_ID = t2.ID) AND (t0.ID = t1.PRODUCT_ID)))) Product Customer firstName lastName orders OrderItem Order 1 * orderDate cost orderItems 1 * quantity discount 1 1 productName cost weight product 15 TopLink MW – Query Editor 16 Object Queries mit EJBQL Für EJBQL spricht – – Syntax ist an SQL angelehnt Abfragen referenzieren Objekt-Attribute, und keine Datenbank-Spalten Gegen EJBQL spricht – – – Nur definiert für CMP Es sind nur statische Abfragen möglich Noch sehr jung und noch nicht ausgereift TopLink Value Add – – – EJBQL auch für Java Objects, CMP und BMP In memory EJBQL Mapping Workbench unterstützt EJBQL 17 Standard Cache Verhalten 1. OO Abfrage 5. Nein – erzeuge Objekt Query Framework 2. SQL Query 3. Ergebnis(se) 4. Gibt es das Objekt mit dem PK? Cache 6. Return Objekt 5. JA– es wird aus dem Cache genommen 18 Performance und Tuning Optionen Minimal Writes, Updates Batch Reading, Writing SQL ordering Transformation support Existence checks Stored procedures Read Lock Support Statement Caching Scrolling cursors Partial Attribute Queries Automatic change detection Caching policies and sizes Parameterized SQL Pre-allocation of sequence numbers Cache synchronization support Optimistic, Pessimistic locking Joining object retrieval optimization In memory querying Indirection for “Just in Time” Dynamic queries Query optimization reading 20 TopLink für nicht-Relational Daten Quellen Erlaubt den Zugriff auf nicht relationale Daten Quelle wie: EIS/Mainframe and XML Bietet die gesamt Funktionalität, die TopLink für relationale Datenbanken bietet: – – – Caching, Just in time reading, Transaktions-Integration, etc. Eine Beispielimplementierung für XML ist in der Produktlieferung enthalten 21 TopLink und EJB-2.0 CMP J2EE Message Driven Beans Session Beans Bean Managed Persistance Entity Beans Container Managed Persistance TopLink = EJB-Container support = TopLink Support für Persistenz 22 TopLink und EJB Spezifikation TopLink Vorteile gegenüber J2EE Applikation Server Mapping Tools Schema generation tools Stored Procedure support Advanced expression support Mapping Flexibility In memory querying Bean-Object relationship support Batch reading Batch writing Bean/Object generation tools Statement caching Enhanced Caching options Reporting framework Transformation support Just in time reading flexibility 23 TopLink und EJB Spezifikation TopLink Vorteile gegenüber J2EE Applikation Server Minimal writes SQL ordering BMP support Java Object support Event framework Cache synchronization support Sequencing flexibility Optimistic locking Pessimistic locking No locking Performance profiler GUI Logging support Interface support Partial reads Dynamic queries 2-tier support Inheritance support Open API to support almost any data source 24 ADF Struktur Java Classes JDBC EJB Session Beans TopLink Queries Java Classes ADF Business Components Application Service Object Module EJB Finders EJB Entity Beans TopLink Mapping Web Services ADF Business Components Query View Object Object ADF Business Components Entity Object Business Services Data Access Persistent Business Objects 25 TopLink – Summary Reduziert Entwicklungs- und Wartungskosten – die Persistenzschicht ist kein Risikofaktor mehr – Aufteilung in Objekt- und DatenbankFunktionalitäten – TopLink ist wiederverwendbar über Applikationsgrenzen hinaus Portabilität – Datenbank, Applikations-Server, DB-Schema Ein Jahrzehnt Persistenz Kompetenz Performance, Produktivität, Flexibilität Industriestandard für Java und Datenbank Integration 26 Das ENDE 27