copyright ©2010 oracle corporation made available under creative commons attribution-share alike...

23
Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source EclipseLink Persistence Manager Cache Query TX Object Data Conversi on Presentation Interface (JSP,Servlet,Struts,Web Service, Custom) Application Logic (EJB Session Beans, Java Classes) JavaEE Server Business Entities (EJB Entity Beans, Java Classes) JDBC XDB JDBC EIS JCA Mappings O-R Container Services JTA CMP/ BMP Connection Pools JAXB File, Document O-X

Upload: alexander-ayers

Post on 27-Mar-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 2: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 3: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 4: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 5: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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)

Page 6: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 7: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 8: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 9: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 10: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 11: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 12: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 13: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 14: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 15: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 16: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 17: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 18: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 19: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 20: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 21: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 22: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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

Page 23: Copyright ©2010 Oracle Corporation Made available under Creative Commons Attribution-Share Alike 3.0 Unported EclipseLink Runtime Architecture Data Source

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