55
1 HrOUG07 Oracle Toplink ili ADF BC? Rudolf Jovanović Principal Senior Consultant Oracle Hrvatska

Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

1HrOUG07

Oracle Toplink ili ADF BC?

Rudolf JovanovićPrincipal Senior Consultant

Oracle Hrvatska

Page 2: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

2HrOUG07

Business Services

Web and WirelessRich Clients

Model

Controller

ViewView

ControllerController

ModelModel(JSR 227)(JSR 227)

ADF Architecture

Page 3: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

3HrOUG07

Business Services Choices

TopLink– O/R Mapping and Persistence– For POJO and EJB CMP

EJBWeb ServicesJavaBeansADF Business Components

– SQL Driven POJOBuild Your Own

Page 4: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

4HrOUG07

JSFJSF

ADF Architecture

ADF Data ControlADF Data Control

ADF BindingsADF Bindings Portlet BindingsPortlet Bindings

StrutsStruts JSFJSF

ADF FacesADF FacesJSPJSPADF SwingADF Swing

JavaJavaClassesClassesEJBEJB

ADFADFBusiness Business

ComponentsComponents

WebWebServicesServices

PortletsPortletsJSRJSR--168168WSRPWSRP

ViewView

ControllerController

ModelModel(JSR 227)(JSR 227)

Business Business ServicesServices

Rich Client Web / Wireless

TopLink Data ServicesTopLink Data Services

Relational DataRelational Data XML DataXML Data

Met

ada t

a S

e rvi

ces

(MD

S)

Me t

ada t

a S

e rvi

ces

(MD

S)

Packaged AppsPackaged Apps

JDBCJDBC JCAJCA JDBCJDBC WSWS XMLXML

Mobile BindingsMobile Bindings

Legacy DataLegacy Data

Page 5: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

5HrOUG07

JSR 227 – J2EE Data Binding

Data Controls – Unified description of any Business Service

CollectionsAttributes Operations

Data Bindings– Usages

Web Services

TopLink

EJB

JavaClasses

Data B

indings BusinessComponents

Swing

JSF

JSP

Data C

ontrol

Business Services

Data BindingService

Page 6: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

6HrOUG07

ADF Business Components

Declarative “SQL based” persistence– Declarative, familiar approach for 4gl developers

Wizards, Editors, and UML Modelers– Visually design and modify declarative component settings

XML-Configured, Lightweight JavaBeansApplicationModule - Business Service Component

– Use as JavaBean, EJB, Web ServiceViewObject - Data Access Component

– Performs SQL queries and coordinates with entity objectsEntityObject - Business Domain Component

– Encapsulates business domain data and validation

Page 7: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

7HrOUG07

ADF Business ComponentsTypes

The Business Components framework comprises two groups of components:

– Business Domain componentsEnforce business rulesEntity Objects, Entity Associations,and Custom Object types

– Data Model componentsProvide data access toclient applicationsView Objects, View Links,and Application Modules

Page 8: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

8HrOUG07

Business Domain Components

– Entity ObjectsEnforce business rules and data validationPersistence, caching Data manipulation

– Entity AssociationsEnforce relational rules between entity objects

– Custom Object Types (Domains)Custom objects, such as AddressTypeObject validation, such as EmailAddress

Page 9: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

9HrOUG07

Data Model Business Components

– Application ModulesManage transactionsDefine data and methods that a client can see

– View ObjectsProvide client access to dataAre collections of data for client access

– View LinksLink View Objects for master-detail coordination

Page 10: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

10HrOUG07

Middle tier

Web Container

Controller

EIS tier

ADF Business Services Tier

Client tier

ADFEntity Object

ADFApplication

Module

ADFView Object

DatabaseValidation

Business LogicValidation

ClientValidation

Mod

el

Database

Business Logic Validation

Page 11: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

11HrOUG07

What is TopLink?

A scalable enterprise Java persistence solution Addressing multiple data formats/storage

– Relational– XML– Non-Relational

Standards based for interoperability– Implements EJB 3.0 JPA and JAXB– Integrates through EJB, JCA, JTA, JDBC

Page 12: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

12HrOUG07

Value of TopLink

Performance and Scalability– Flexible query for optimized data access– Minimize transaction costs– Configurable caching with clustered coordination

Developer Productivity– Simplified mapping using graphical editors – Generation and auto-map wizards– Error detection and warning during development

Flexibility– Support of leading databases and Java containers – Java EE and Java SE

Page 13: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

13HrOUG07

Proven SolutionPersistence Goes Prime Time at the U.S. Department of Defense“I'd say we saved 20% to 30% in development time on the server side thanks to TopLink..”“the Oracle9iAS/TopLink combo performed beyond initial expectations…”Jim Scott, Northrop Grumman

Award winning Persistence•JDJ Reader’s Choice•JavaPro Reader’s Choice•JavaWorld Editor’s Choice

CuraGen Speeds Search for Breakthrough Drugs Using Oracle9iAS“"We handle a massive amount of data at CuraGen, tracking and analyzing hundreds of thousands of experiments each day. Oracle9iAS TopLink has been a critical link in accelerating our genomic research efforts." –Steve Gold, Director of Bioinformatics, CuraGen Corporation

Page 14: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

14HrOUG07

Over 12 Year History

Page 15: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

15HrOUG07

Where does TopLink fit?

Oracle TopLinkOracle TopLink

Object-RelationalMapping

Object-XMLMapping

EIS (JCA)

Packaged Apps Legacy Systems

Java SE

Databases

Java EE

JPA JAXBEJB 2.1CMP/BMP

XML Data

ADF SpringFramework

TopLink MappingWorkbench

Page 16: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

16HrOUG07

TopLink CapabilitiesObject-Relational Mapping

– JPA: Java Persistence API (EJB 3.0/SE)– POJO in any Java container/architecture (EE/SE)– EJB 2.1 CMP and BMP (OC4J)

Object-XML – JAXB – Non-Intrusive (meet in the middle) mapping

EIS mapping using JCA Resource Adapters– XML mapping leveraging OXM and CCI mapping– Support MQSeries, OracleAQ, Sun JCA, XML Files, …

Page 17: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

17HrOUG07

TopLink Object-Relational (ORM)

Data Source

TopLink

Application/Service

Java EE

JTACMP/BMP

ConnectionPools

XDB

JDBC

TopLink MappingWorkbench

Development Runtime

Page 18: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

18HrOUG07

TopLink ORM in an Application

Data Source

J2EE Services

JTACMP/BMP

ConnectionPoolsTo

pLin

k

Persistence Manager

CacheQuery

TX

Object DataConversion

Mappings

XDB

JDBC

J2EE ApplicationApplication/Service Logic (EJB Session Bean, Java Classes)

Persistent Domain Model (EJB Entity Bean, JPA Entity, POJO)

Presentation (JSP,Servlet,Struts,JSF, Web Service, ADF, Custom)

TopLink Session API Java Persistence API EJB 2.1 CMP/BMP

Page 19: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

19HrOUG07

Key Features

– Metadata architecture– Comprehensive visual mapping editors– Advanced mapping support and flexibility– Query flexibility– Caching– Concurrency protection – Transaction support and integration– Performance tuning options– Application server integration

Page 20: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

20HrOUG07

TopLink Design Time

ApplicationDevelopment

SchemaDevelopment

Meta Data

Session XML

Map XML*

Persistent Objects

Mapping Editor

Page 21: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

21HrOUG07

TopLink ORM RuntimeMetadata (Map/Project, Descriptors with Mappings)

– Typically read from XML– Platforms: Database & Server

Session: Primary runtime interface– Accessed through SessionFactory/SessionManager using

sessions configuration (sessions.xml)

Query: Requests to read or modify persistent objectsCache: Performance and Scalability optimizationUnitOfWork: Transactional API for writing changes to objects

Page 22: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

22HrOUG07

Application Database

SQL

RowsObjects

Query

TopLink

JDBC

TopLink Query Execution

EJB/JP QL

OO (API/MW)

Query By Example

ObjectBuilder

Mappings

QueryFramework

SQL

Stored Procedure

Cache

Cache Hit?

Cache Result?

Page 23: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

23HrOUG07

TopLink Caching

Persistent objects cached by “identity”– Identity == Primary Key field(s)

Benefits:– Avoid unnecessary database trips– Avoid re-building objects from data – Enables in-memory query processing– Can be coordinated in clustered deployments

Developer Tasks:– Application specific cache configuration to optimize

performance and minimize stale data – Leverage locking to avoid data corruption

Page 24: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

24HrOUG07

Caching Architecture

ServerSharedCache

SessionIsolatedCache

UnitOfWorkTX

Cache

ServerSharedCache

Session Bus

JDBC/JCA

JMS (MDB)RMI CORBAIIOP

Page 25: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

25HrOUG07

Descriptor Caching OptionsSHARED or ISOLATEDType

– SOFT-WEAK, HARD-WEAK: Shared with limited quantity– WEAK: Only held while used by the application– FULL: Reference data held for application’s life– NONE: Read-only without relationships

Invalidation/Expiration– Time to live (ms), Fixed Time of Day, API

Coordination– Messaging: JMS, RMI, IIOP, CORBA, …– Modes: SYNC, SYNC+NEW, INVALIDATE, NONE

Refresh AlwaysDisable Cache HitsOnly refresh if Newer (leverages optimistic locking field)

Page 26: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

26HrOUG07

Configuring the Cache

Default: objects read are cached and trustedConfiguration by entity type important

– Volatility of data within application and through other applications

– Shared nature of data between application clientsConfiguration Parameters

– Cache isolation, type and size– Refreshing

By query (use-case) or descriptor (always)Expiry/Invalidation

– Cache CoordinationLocking is the only way to avoid potential data corruption in concurrent write scenarios

Page 27: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

27HrOUG07

Concurrency Protection: Locking

Prevent data corruption !!!Java Developers think of locking at the object levelDatabases may need to manage locking across many applicationsTopLink is able to respect and participate in locks at database level

– Optimistic: Numeric, Timestamp, All fields, Selected fields, Changed field

– Pessimistic

Page 28: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

28HrOUG07

TransactionsJava apps typically support many clients sharing small number of db connectionsIdeally would like to minimize length of transaction on database

Tim

e

Begin Txn

Commit TxnBegin Txn

Commit Txn

Page 29: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

29HrOUG07

Transaction Features and SupportUnitOfWork provides Java abstractionMinimizes database interactions

– Calculates the minimal change set at commit time (deferred write)

– Only the minimal DML issuedRespect database integrity

– Orders INSERT, UPDATE and DELETE statements

“Unit Of Work” fully supports JTA

Page 30: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

30HrOUG07

Transactions and the Cache

Client– Acquire UnitOfWork– Make Changes (Read, Update, Delete)– Commit (direct or JTA)

UnitOfWork – Write Changes

1. Calculate minimal changes2. Order SQL statements3. Execute statements

– Cache Merge: Post TX commit1. Merge in Shared/Isolated cache 2. Send change-set to other nodes if using coordination

Page 31: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

31HrOUG07

Performance and Tuning

TopLink focuses on performance and scalabilityHighly configurable and tunable

– Guiding principle: minimize and optimize database calls– Enable application specific tuning– No two applications are the same, TopLink allows for

decisions on what specific behavior needs to be configurable depending on situation

Flexibility of TopLink allows efficient business models and relational schemas to be usedLeverages underlying performance tuning features

– Java, JDBC and the underlying database technology

Page 32: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

32HrOUG07

Performance and Tuning OptionsMinimal Writes, Updates Batch Reading, WritingSQL orderingTransformation supportExistence checks Stored proceduresStatement CachingScrolling cursorsProjection QueriesPartial Attribute QueriesBulk Update Queries

AND MUCH MORE!

“Just in Time” reading Automatic change detectionCaching policies and sizesParameterized SQL (binding)Pre-allocation of sequence numbersCache CoordinationOptimistic, Pessimistic lockingJoining object retrieval optimizationIn memory queryingDynamic queriesOptimized Change Tracking

Page 33: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

33HrOUG07

OracleAS (OC4J) Integration

TopLink CMP support in OC4J– CTS 1.4 compliant EJB CMP solution– Many value-added features beyond specification

Enterprise Manager Support (JMX)Diagnostics

– Monitoring support through DMS– Integrated logging

Security Policies

Page 34: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

34HrOUG07

Oracle DB Features

Oracle native SQL and custom operatorsIsolated session cache and connections for use with Oracle DB’s VPD/OLSProxy AuthenticationSupport for XDB-XMLType and SQLXStored Procedure & FunctionTIMESTAMP & TIMESTAMPTZ (oracle.sql)Configurable value return from writeSpatial, Object-Relational, ADTsHistorical Flashback…

Page 35: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

35HrOUG07

Historical Support

Generic support for any RDBMSCustom support for Oracle 10g+ FlashbackConfigure and use change management of objects over time

– Versioning– Auditing

Point in time queryingHistorical Session

Page 36: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

36HrOUG07

EJB 3.0 Java Persistence API

JSR 220: Enterprise Java Beans 3.0– Component model improvements: SB, MDB, Timer, …– Java Persistence API (JPA)

Goals:– Simplify EJB — make it easier to use

Simplified set of APIsEliminate requirement for deployment descriptorsFacilitate test-driven developmentImprove developer productivityPersistence based on proven solution

– Capture broader range of developersMake it simpler for average developerIncrease developer base, target more corporate developers

Page 37: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

37HrOUG07

Primary Features

POJO-based persistence model– Simple Java classes—not components

Support for enriched domain modelling– Inheritance, polymorphism, etc.

Expanded query language (JP QL)Standardized object/relational mapping

– Using annotations and/or XMLUsable in Java EE and Java SE environmentsSupport for pluggable persistence providers

Page 38: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

38HrOUG07

Entity == POJO@Entity@Table(name=“EMPLOYEE”)public class Employee implements Serializable {

@Id@Column(name=“ID”)

private long id;

@Basic@Column(name=“NAME”)private String name;

public long getId() { return id; }public void setId(long id) { this.id = id; }

public String getName() { return name; }public void setName(String name) { this.name = name; }

}

Page 39: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

39HrOUG07

Entity@Entity@Table(name=“EMPLOYEE”)public class Employee implements Serializable {

@Id@Column(name=“ID”)private long id;

@Basic@Column(name=“ENAME”)private String name;

public long getId() { return id; }public void setId(long id) { this.id = id; }

public String getName() { return name; }public void setName(String name) { this.name = name; }

}

Page 40: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

40HrOUG07

Configuration by Exception@Entity@Table(name=“EMPLOYEE”)public class Employee implements Serializable {

@Id@Column(name=“ID”)private long id;

@Basic@Column(name=“ENAME”)private String name;

public long getId() { return id; }public void setId(long id) { this.id = id; }

public String getName() { return name; }public void setName(String name) { this.name = name; }

}

Page 41: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

41HrOUG07

ORM Config using XML

Annotations and/or XML can be used

<entity class=“model.Employee”><attributes><id name=“id”/><basic name=“name”>

<column name=“ENAME”/></basic>

</attributes></entity>

Page 42: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

42HrOUG07

TopLink Essentials: JPA RI

Open Source Reference Implementation of JPADerived from proven Oracle TopLink productAvailable through Sun’s OS Glass Fish Project

https://glassfish.dev.java.net/

Easy upgrade to full TopLink– Enhanced caching – performance & scalability– Advanced ORM capabilities

Including leveraging of advanced DB features– Object-XML (JAXB) and EIS Support

Shipped as default JPA provider in OracleAS 10.1.3.1

Page 43: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

43HrOUG07

JPA Tooling

JDeveloper 10.1.3– Entities from tables– Session Bean generation

EJB 3.0 Entities or TopLink POJOs– ADF Integration

Eclipse– Dali Project – www.eclipse.org/dali– JPA development support within WTP– Lead by Oracle with contributions from others– Available for download

Page 44: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

44HrOUG07

TopLink JAXBProvides complete Object-XML mapping capabilities

Allows developers to work with XML as objectsGUI tool for mappingEfficiently produce and process SOAP messages

Supports Object-XML standard - JAXB Provides additional flexibility to allow complete control on how objects are mapped

Databases XML Data

Page 45: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

45HrOUG07

TopLink JAXB BenefitsRich set of mappings providing complete control and flexibility to map objects to any XSD

– Direct, composite object, composite collection, inheritance, positional, path, transformation ….

Visual tool to define mappingsLeverages object-relational mapping features and infrastructureEmbraces standards

– JAXB and JAXP compliant– On JAXB EG, pushing advanced features into JAXB 2.0

Page 46: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

46HrOUG07

Combining ORM and JAXB

TopLink’s metadata based approach allows the same POJO model to be mapped to both XML and Relational.

– Supports construction of Web Services using persistent POJOs

– Persistent POJOs can be mapped to any number of XML schemas—support multiple web services

– Mapping is bidirectional: Unmarshall XML to objects and then persistMarshall persistent objects to XML

Page 47: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

47HrOUG07

TopLink EIS

Provide persistence support for non-relational data stores using J2CA/JCACombined with TopLink JAXB support allowing XML interactionsMapping support for CCITopLink Workbench mapping and configuration supportOut of the box support for:

– MQSeries, OracleAQ, Sun JCA, XML Files

Page 48: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

48HrOUG07

Oracle ADF and TopLink

JDeveloper productivity tooling– Generate TopLink JPA entities or TopLink POJOs from

tables– Generate service façade with queries and entity lifecycle

methodsEJB 3.0 Session Beans FacadeJava POJO Façade

– Generate test client

Support for data control generation from service façade enabling rapid and declarative presentation development

Page 49: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

49HrOUG07

Spring Framework and TopLink

Integrated DAO support for TopLink in Spring 1.2Integrated support for TopLink Essentials in Spring 2.0

– Traditional DAO template based approach supported– Spring 2.0 supports JPA container contract which enables

advanced configuration and ease of use– Spring 2.0 ships with TopLink Essentials as default JPA

provider– Certified within OracleAS (OC4J)

Page 50: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

50HrOUG07

TopLink SummaryTopLink ORM

– Any JDBC compliant data sources– Any Java EE compliant application server– Any IDE and toolset– JPA Support and Reference Implementation

TopLink OXM – Any JAXP compliant parser– JAXB compliant API

TopLink support in leading frameworks– Oracle ADF– Spring Framework

Page 51: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

51HrOUG07

TopLink and ADF BC

TopLink“Oracle9iAS TopLink provides an advanced Java persistence architecture for rapid development, deployment and execution of enterprise Java applications with relational databases.”

ADF Business Components (BC4J)“ADF BC is an application development framework that simplifies delivering enterprise applications by generating functional business components that implement J2EE design patterns.”

Page 52: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

52HrOUG07

TopLink and ADF BCTopLink

– Persistence Architecture– Maps Any Business Model to Any Schema– Simplifies Development of Persistence Infrastructure– Provides Advanced O/R Mapping Support

ADF BC– J2EE Application Development Framework– Generates Functional Business Domain Classes & Data Models– Simplifies Building Web/Swing User Interfaces & Web Services– Provides Basic O/R Mapping Support

Page 53: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

53HrOUG07

Custom Business LogicCustom Business Logic

Framework-Based J2EEApp Dev't with ADF BC

Custom J2EE AppDevelopment with TopLink

TopLink and ADF BC: Solutions For Any Development Approach

Advanced O/R MappingAdvanced O/R MappingAdvanced O/R Mapping Basic O/R MappingBasic O/R MappingBasic O/R Mapping

Business Domain ClassesBusiness Domain ClassesBusiness Domain Classes

Data ModelsData ModelsData Models

Data BindingData BindingData Binding

Databound Controls / TagsDataboundDatabound ControlsControls // TagsTagsView

Controller

Model

Custom Business Domain Classes

andData Models

Custom Business Domain Classes

andData Models

Custom UI DisplaysCustom UI Displays

PersistenceLayer

DomainLayer

Custom UI DisplaysCustom UI Displays

Business RulesBusiness RulesBusiness Rules

Custom Data Binding &Controller Logic

Custom Data Binding &Controller Logic

Custom Controller LogicCustom Controller Logic

Custom CodeCustom Code

Built-in FunctionalityBuiltBuilt--in Functionalityin Functionality

Page 54: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

54HrOUG07

TopLink and ADF BCBoth Products help developers build J2EE applications using relational databasesConsider TopLink:

– When you need a persistence architecture for your own application framework

– Your team is familiar with OO/UML techniquesConsider ADF BC :

– When you need a complete application framework to avoid writing your own

– Your team has Oracle Forms/Designer experience

Page 55: Oracle Toplink ili ADF BC? · ADF Data Control ADF Bindings Portlet Bindings Struts JSF ADF Swing JSP ADF Faces Java Classes EJB ADF Business Components Web Services Portlets JSR-168

55HrOUG07

Hvala na paHvala na pažžnji!nji!Za pitanja i Za pitanja i odgovre odgovre nemamo nemamo

vivišše vremena.e vremena.