TopLink das performante und flexible Persistenz- Framework

Werbung
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
Herunterladen