TopLink das performante und flexible Persistenz- Framework Präsentiert von: Bernd Trops Principal Sales Consultant Recent Magazine Ad 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 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 Objekt Zustand Relationale Welt Wo passt TopLink hinein? Überall! TopLink integriert sich in jede Java-Architektur – Java Objekte – Entity Beans BMP für jeden J2EE kompatiblem 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 Oracle9iAS TopLink unterstützte Architekturen TL … Two-Tier: Java clients connecting directly to the database through TopLink. No Application Server, no server environment, client applications directly access RDB. DB TL TL … DB Server … TL … SB DB SB … EB BMP Container TL Server DB … EB CMP Container TL Server Server DB Three-Tier: A very common pattern where TopLink resides within a Java server (J2EE or custom) with several possible server integration points. Typically accessed through server components, web clients, Java clients, and generic XML/CORBA based clients. Session-Beans with Java Objects: An extension of the three tier pattern but with Session Beans wrapping the access to the persistent Java objects. Typically involves JTS integration and handling of serialized data to the client. BMP Entity Beans: An extension of the previous patterns except the persistent data is bean managed within an entity bean. The client code accesses the data through the interface of the entity bean and persistence is relatively transparent. CMP Entity Beans: Similar to the BMP pattern except the mapping, querying and other TopLink calls are automated through the container. Wo passt TopLink hinein? GUI/Browser SQL Server EIS Oracle9i AS J2EE Application Server Oracle XML Servlets/JSP’s EJBs DB2 Java Mapping und Integration Any RDB Oracle9iAS TopLink J2EE Web Services Integration Business Intelligence Portals Wireless 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 ProSiebe n 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 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 E_ID F_NAM E L_NAM E A_ID B_DAT E A_ID CITY STATE ZIP firstName lastName address birthDate TopLink Meta-Data Address city state zip TopLink Mapping Workbench – erstellt die Meta-Daten Mit der TopLink Mapping Workbench erzeugen Sie die Meta-Daten 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. Objekt Abfragen mit Java Beispiel - Expressions Finde alle Kunden die ein Produkt “Schraube-M5” bestellt haben – Syntax für Java Entwickler, einfache Objekt Attribute Abfrage: custExpression.anyOf(“orders”).anyOf(“orderItems”).get (“product”).get("productName").equal(“SchraubeM5”) – Equivalentes 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 OrderItem Customer firstName lastName orders Order 1 * orderDate cost orderItems 1 * quantity discount product 1 1 productName cost weight 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 Performance und Tuning Optionen u u u u u u u u u u u Minimal Writes, Updates Batch Reading, Writing SQL ordering Transformation support Existence checks Stored procedures Read Lock Support Statement Caching Scrolling cursors Partial Attribute Queries u u u u u u u u 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” u Dynamic queries u Query optimization reading 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 TopLink und EJB-2.0 CMP J2EE Message Driven Beans Session Beans Bean Managed Persistance Entity Beans Container Managed Persistance 15% TopLink = EJB-Container support = TopLink Support für Persistenz TopLink und EJB Spezifikation TopLink Vorteile gegenüber J2EE Applikation Server w Mapping Tools w Schema generation tools w Stored Procedure support w Advanced expression support w Mapping Flexibility w In memory querying w Bean-Object relationship support w Batch reading w Batch writing w Bean/Object generation tools w Statement caching w Enhanced Caching options w Reporting framework w Transformation support w Just in time reading flexibility TopLink und EJB Spezifikation TopLink Vorteile gegenüber J2EE Applikation Server w Minimal writes w SQL ordering w BMP support w Java Object support w Event framework w Cache synchronization support w w w w Sequencing flexibility Optimistic locking Pessimistic locking No locking w Performance profiler GUI w Logging support w Interface support w w w w w Partial reads Dynamic queries 2-tier support Inheritance support Open API to support almost any data source TopLink – Summary Reduziert Entwicklungs- und Wartungskosten – die Persistenzschicht ist kein Risikofaktor mehr – Aufteilung in Java und Datenbank-Funktionalitäten – TopLink ist wiederverwendbar über Applikationsgrenzen hinaus Portabilität – Datenbank, ApplikationServer, DB-Schema Ein Jahrzehnt Persistenz Kompetenz Performance, Produktivität, Flexibilität Industriestandard für Java und Datenbank Integration TopLink und BC4J GUI Logik B C 4 J zukünftig TopLink TopLink and BC4J: Solutions For Any Development Approach View Custom Custom UI UI Displays Displays Custom Custom Data Data Binding Binding && Controller Controller Logic Logic Controller Custom Custom UI UI Displays Displays Databound Tags Databound Controls Controls // Tags Custom Custom Controller Controller Logic Logic Data Data Binding Binding Data Data Models Models Domain Layer Model Custom Custom Business Business Domain Domain Classes Classes and and Data Data Models Models Custom Custom Business Business Logic Logic Business Business Rules Rules Business Business Domain Domain Classes Classes Persistence Layer Custom Custom Code Code Built-in Built-in Functionality Functionality Advanced Advanced O/R O/R Mapping Mapping Custom J2EE App Development with TopLink Basic Basic O/R O/R Mapping Mapping Framework-Based J2EE App Dev't with BC4J TopLink und BC4J BC4J – – – J2EE Framework für die Anwendungsentwicklung Erzeugt ein funktionales Geschäftsmodell Erleichert die Erstellung von Benutzerinterfaces TopLink – – – Persistenz-Architektur Bildet ein beliebiges Objektmodell auf bestehende Datenbank-Schema ab Bietet flexible O/R-Abbildungs-Funktionalität THE END