copyright ©2010 oracle corporation made available under creative commons attribution-share alike...
TRANSCRIPT
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLink Runtime Architecture
DataSource
Ecl
ipse
Lin
k
Persistence Manager
CacheQuery
TX
Object Data
Conversion
Presentation Interface (JSP,Servlet,Struts,Web Service, Custom)
Application Logic (EJB Session Beans, Java Classes)
JavaEEServer
Business Entities (EJB Entity Beans, Java Classes)
JDBC
XDB
JDBC
EIS
JCA
MappingsO-R
Container Services
JTACMP/BMP
ConnectionPools
JAXB
File,Document
O-X
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Caching Architecture
EntityManager
Session
EntityManagerFactory
Server
UnitOfWork
TX Cache IsolatedCache
Shared Cache Cache Coordination
JMS (MDB)RMI CORBAIIOP
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLinkDomain ModelDomain Model
XML Data Legacy SystemsDatabases
Java SEJava SE Java EEJava EE OSGiOSGi SpringSpring ADFADF
Meta DataMeta DataApplication InterfaceApplication Interface
Persistence ManagerPersistence Manager
Data Source Accessor and PlatformData Source Accessor and Platform
@ Annotations
Java API
MappingMapping
MetadataMetadata
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Oracle Toplink
Oracle TopLink Roadmap
9.0.4 10.1.3 11g Future
Original API & Metadata: oracle.toplink.*
ORM/OXM, JAXB, EISORM
EclipseLinkJPA, MOXy, SDO, DBWS, EIS
(org.eclipse.persistence.*)
TopLink EssentialsJPA
(oracle.toplink.essentials.*)
10.1.3.1
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLink Roadmap
1.0 1.1 1.2 2.0
OracleTopLink
2.1
11g 11gR1
EclipseLink
1.0.
1
1.0.
2
1.1.
1
EclipseGalileo
(1.1.2)
EclipseHelios
(2.1)
GlassFish v3JavaEE 6
(2.0)
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Eclipse Persistence Services “EclipseLink”
Eclipse Persistence Services Project (EclipseLink)
DBWSDBWS
SDOSDO
EISEIS
MOXyMOXy
JPAJPA
XML Data Legacy SystemsDatabases
Java SEJava SE Java EEJava EE OSGiOSGi SpringSpring ADFADF
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLink: Distributions
Eclipse.org www.eclipse.org/eclipselink/downloads
http://download.eclipse.org/rt/eclipselink/updates
Oracle TopLink 11g
WebLogic Server 10.3.1
GlassFish v3 Replaces TopLink Essentials
JPA 2.0 Reference Implementation
Spring Source Spring Framework
Spring OSGi Bundle Repository
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLink Developer Tool Support
EclipseLink is a Runtime Project but supported by IDEs
Eclipse IDE EclipseLink support included by Dali in Eclipse 3.4 (Ganymede)
EclipseLink included in Eclipse 3.5 (Galileo) – JavaEE Enhanced Dali support for use of EclipseLink
Oracle Enterprise Pack for Eclipse (OEPE)
MyEclipse
JDeveloper 11g JPA, Native ORM, OXM, and EIS mapping
NetBeans
Standalone Workbench Native ORM, OXM, EIS
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Metadata UsageAPI Metadata Tooling
JPAJPA 1.0
EntityManager(Factory)Query
Persistence.xml
@Annotationsorm.xml
eclipselink-orm.xml
JDeveloper
Eclipse IDE
NativeORM
SessionUnitOfWork
Query
sessions.xmlMap (deployment) XML
API
Workbench
JAXB
JAXB 2
Marshaller/UnMarshallerJAXBContext
@Annotations
jaxb.properties
JDeveloper
tljaxb (XJC/JXC)
Workbench
NativeOXM
JAXB 2
or
Native Session
sessions.xml
Map (deployment) XML
jaxb.properties
API
JDeveloper
Workbench
SDOSDO 2.1
DataFactory, Type, PropertyXSD or API sdo-compiler
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EclipseLink Java Persistence
Customer
id: intname: StringcreditRating: int
CUST
ID NAME C_RATING
<customer id=“…”> <name>…</name> …</contact-info></customer>
Relational
XML
Java
JPAJPA
SDOSDO
MOXyMOXy
DBWSDBWS
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Where does EclipseLink JPA fit?
RelationalDatabase
Java SE/EE/OSGi
JPA Persistence Provider
Design Time Runtime
Mapping Metadata
Java Classes
Database Schema
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Cache Coordination
L2 Cache Coordination
Messaging
JMS, RMI, IIOP, CORBAType specific configuration
Modes: Invalidate, Sync, Sync+New, None
@Entity
@Cache(
coordinationType = INVALIDATE_CHANGED_OBJECTS)
Application
EntityManager
EntityManagerFactory
L2 CacheCache
Coordination
L1 Cache
…
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
EntityManagerFactory
L2 and L1 Caching
Client-2
EntityManager -2
L1 Cache
EntityManager -1
Client-1
L2 Cache Read Pool Write Pool
WriteRead
ReadRead
WriteWrite
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
MOXy Binding Layer
elements/attributes
Objects
EclipseLink OXM
Objects
document unmarshalling
produces objects
results are returned as
raw xml
XPath is used tospecify mapping
object creation and updates through object-level API
XPathquery
Java App
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
SDO Runtime—“Static SDO”
SDO runtime combines:
Java SDO Classes
XML Schema
XML Document
Java SE/EE
SDO Implementation(EclipseLink MOXy)
Java SDO Classes
XML Schema
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
SDO Runtime—“Dynamic SDO”
SDO runtime using:
XML Schema
XML Document
Java SE/EE
SDO Implementation(EclipseLink MOXy)XML Schema
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Application Database
SQL
RowsObjects
Query
EclipseLink
JDBC
EclipseLink Query Execution
ObjectBuilder
Mappings
QueryFramework
SQL
Stored Procedure
Cache
Cache Hit?
Cache Result?
JP QL
Expressions
Query By Example
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Caching
EntityManagerEntityManagerFactory
Client SessionUnitOfWork
Server Session
RDBMS
SharedCache
TX Cache Isolated Cache
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Client-Server Session
Client (1)reading
Client (2)reading
Client Session (1) Client Session (2)
Server Session
Shared Cache
Server Application
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Client Write Access
Client (1)reading
Client (2)editing
Client Session (1) Client Session (2)
Server Session
Shared Cache
Server Application
Unit of Work
Cache
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Native Meta Model
Project (Map)Session
ClassDescriptor
Class javaClass
Mapping
attributeName
DatabasePlatform
*
*
ServerPlatform
Policies
InstantiationClone/CopyInheritance
LockingSequencing
…
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Default Cache Behavior
QueryFramework
1. OO Query2. SQL Query
3. Results
4. Does PK for row exist in cache?
5. YES: Get from cache
5. NO: Build bean/object from results
6. Return object results
Cache
Copyright ©2010 Oracle CorporationMade available under Creative Commons Attribution-Share Alike 3.0 Unported
Identity Map
Person1
Person2
PersonN
Identity map for person
Identity mapfor address
Identity map is indexed by primary key
Session1
2
N