Title: OracleWorld Presentation - Introducnig JCA
1(No Transcript)
2Accessing Oracle and Non-Oracle Data Sources from
J2EE Applications Introducing JCA
Session id 40045
- Lars EweProduct Manager
- Oracle Corporation
Itamar AnkorionProduct Manager Attunity
3Agenda
- J2EE Connector Architecture (JCA)
- Oracle Application Server and JCA
- Customer Case Study Lloyds
- The future of JCA
- Oracle Application Server 10g Integration
- QA
4J2EE Connector Architecture Introduction
5JDBC a history of database integration
- First we built our own databases
- Proprietary concepts, rocket-science
- Then came along commercial databases
- Some common concepts, difficult to integrate
- Then SQL (ODBC, JDBC) came along
- Standard access to any database
- Today database access is a non-issue
- My kid brother can do it
6JCA the future of application integration
- First Application Integration hurt
- Dissimilar technology, data, messaging...
- Then came along XML
- Standard, exchangeable data structure
- Still need to know each disparate system
- Then JCA came along
- Standard access to any application
- Starting today application integration is
becoming a non-issue
7What is the benefit of JCA?
- The connector architecture reduces the
integration effort from an (m n) problem to an
(m n) problem, where m is the number of
application servers and n the number of EISs to
be integrated
EIS
EIS
AppServer
AppServer
JCA
mn
mn
8J2EE Connector ArchitectureKey Components
- J2EE Application Server (AS)
- Container for resource adapter(s)
- Enterprise Information System (EIS)
- Resource Adapter (RA)
- Connects EIS resource to the JCA infrastructure
- Common Client Interface (CCI)
- Provides a common programming interface model for
interacting with EIS via resource adapters - Quality of Service (QoS) Facilities
- Connection transaction management and security
9J2EE Connector Architecture
Container-Component Contract
J2EE Application Component
OC4J - J2EE Application Server
Client API (e.g. CCI)
System Contracts
Resource Adapter
Connection Manager
Transaction Manager
EIS specific contracts
Security Manager
Enterprise Information System
10Oracle Application Server 10g and JCA
11Oracle Application Server 10g (9.0.4) Containers
for J2EE
J2EE 1.3 APIs
OC4J Support
JSP 1.2 Servlet 2.3 EJB 2.0 JDBC 2.0
Extension JMS 1.0 JNDI 1.2 Connector Architecture
1.0 JTA 1.0 Java Mail 1.2 JAXP 1.1 JAAS 1.0
12Oracle Application Server
AJP13
JNDI
Oracle HTTP Server
Web Container
JMS
AJP
HTTP
mod_oc4j
JDBC
JCA
Web Client
JTA
EJB Container
ORMI
JAXP
ORMI
JAAS
EJB Client
OC4J Server Process
13Oracle Application Server 10g (9.0.4) JCA
Quality of Service (QoS)
- Oracles JCA container implementation
- provides additional QoS
- Connection Pooling
- Container Managed Sign-On (CMSO)
- Declarative CMSO
- Programmatic CMSO
14Connection Pooling
- Specify minimum number of connections to create
at startup - Limit the size of the connection pool by setting
the maximum number of connections - Choose between fixed, fixed_wait and dynamic
schemes for handling overflow of connection
requests - Pick a timeout for fixed wait scheme
15Connection Pooling Example
- ltconnection-poolinggt
- ltdescriptiongt
- Pool with a minimum of one connection and a
- maximum of three, when all three
connections - are in use, a request for connection should
- wait 60 seconds for a connection to free
up, - else receive an exception
- lt/descriptiongt
- ltproperty name"minConnections" value"1" /gt
- ltproperty name"maxConnections" value"3" /gt
- ltproperty name"scheme" value"fixed_wait" /gt
- ltproperty name"waitTimeout" value"60" /gt
- lt/connection-poolinggt
16Container Managed Sign-On (CMSO)
- Configure container to take care of sign-on to
EIS transparently - Choose between different schemes
- Declarative
- Programmatic
17CMSO Overview
18Declarative CMSO Example
- ltconnector-factory name"..." location"..."gt
- ...
- ltsecurity-configgt
- ltprincipal-mapping-entriesgt
- ltdefault-mappinggt
- ltres-usergtguestlt/res-usergt
- ltres-passwordgtguestpwlt/res-passwordgt
- lt/default-mappinggt
- ltprincipal-mapping-entrygt
- ltinitiating-usergtscottlt/initiating-use
rgt - ltres-usergtscottlt/res-usergt
- ltres-passwordgttigerlt/res-passwordgt
- lt/principal-mapping-entrygt
- lt/principal-mapping-entriesgt
- lt/security-configgt
- ...
- lt/connector-factorygt
19Programmatic CMSO
- Provide custom authentication module
- Plug-in JAAS modules or implement OC4J-specific
interfaces - JAAS modules are portable as compared to the
OC4J-specific alternative - Authentication modules that implement
OC4J-specific interfaces are simpler to write and
deploy compared to JAAS modules
20Customer Case Study
- Oracle Application Server integration with
back-end Mainframe CICS
21The Players
- The Lloyds Insurance Market (Lloyds)
- International Underwriters Association (IUA)
- Xchanging Ins-Sure Services (XIS)
- Steria ? System Integration
- Oracle ? OC4J
- Attunity ? CICS JCA Adapter
22Claim Convergence Project
- Business Goals
- Reduce TCO (operating and maintenance costs) by
converging two CICS based Claim systems - Increase end-user productivity with web
interfaces - Establish agile IT foundation to quickly
introduce new capabilities in the future
23Solution Architecture
Oracle Application Server (Solaris)
Web Browsers
FixNAT Firewall
JSP
?
OS390
CICS
24The Technical Objectives(i.e., Challenges)
- Standard integration of J2EE and CICS (JCA, XML)
- Develop productivity (known skill sets and tools)
- Isolate legacy from the Java developers
- Turn legacy into reusable services (SOA)
- Agile, reusable architecture foundation
- Save on maintenance
- Robust, Simple mainframe connectivity
- Native data type mapping (into XML)
- No changes to CICS applications
- No coding per transactions
25CICS LogIn Program COMMAREA
COMMAREA is Input/Output buffer for the CICS
program
- 01 C002-COMMAREA.
- 03 C002-TRANS-ID PIC X(4)
- 03 C002-SESSION-NO PIC S9(9) COMP.
- 03 C002-PROG-STATUS PIC S9(4) COMP.
- 03 C002-ERROR-COUNT PIC S9(4) COMP.
- 03 C002-ERROR-TABLE OCCURS 10.
- 06 C002-ERROR-CODE PIC X(4).
- 06 C002-ERROR-TEXT PIC X(70).
- 03 C002-WARNING-COUNT PIC S9(4) COMP.
- 03 C002-WARNING-TABLE OCCURS 10.
- 06 C002-WARNING-CODE PIC X(4).
- 06 C002-WARNING-TEXT PIC X(70).
- 03 C002-ACCOUNT-CODE PIC X(4)
- 03 C002-NET-USER-ID PIC X(8)
- 03 C002-PASSWORD PIC X(8)
- 03 C002-SECTION-CODE PIC X(4).
- 03 C002-LOGIN-STATUS PIC X.
The mapped Output parameter (LogInOut)
The mapped Input parameters (LogInIn)
26CICS JCA Adapter Metadata
- lt?xml version'1.0'?gt
- ltadapter nameCICS' version'1.0'
type'acadmin'vendor'Attunity Ltd.'gt - ltinteraction name"logIn" mode"sync-send-receive"
input"logInIn" output"logInOut"gt - ltinteractionSpec program"LC0010R0"/gt
- lt/interactiongt
- ltinteraction name"logOff" mode"sync-send-receive
" input"logOffIn" output"logOffOut"gt - ltinteractionSpec program"LC0010R0"/gt
- lt/interactiongt
- ltschema version'1.0'gt
- ltrecord name'logInIn'gt
- ltfield name'C002_NET_USER_ID'
type'string' nativeType'string length'8' /gt - ltfield name'C002_PASSWORD'
type'string' nativeType'string length'8' /gt - lt/recordgt
- ltrecord name'logInOut'gt
- ltfield name'C002_TRANS_ID'
type'string' nativeType'string'length'4'
default'LY02'/gt - ltfield name'C002_SESSION_NO'
type'int' nativeType'int4' /gt
Adapter Type CICS
Adapter Interactions
In/Out Message Definition (Schema)
Native Data Type/Structure Mapping
27JCA Deployment Descriptor
- lt?xml version"1.0"?gt
- lt!DOCTYPE oc4j-connector-factories PUBLIC
"-//Oracle//DTD Oracle Connector 1.0//EN"
"http//xmlns.oracle.com/ias/dtds/oc4j-connector-f
actories.dtd"gt - ltoc4j-connector-factoriesgt
- ltconnector-factory location"eis/attunityCICS"
connector-name"Attunity Connect Legacy Adapter"gt - ltconfig-property name"userName" value""/gt
- ltconfig-property name"password" value""/gt
- ltconfig-property name"eisName"
valueCICSClaimsSystem"/gt - ltconfig-property name"serverName"
valuemyMainframe"/gt - ltconfig-property name"workspace"
value"Navigator"/gt - ltconfig-property name"portNumber"
value"2551"/gt - ltconfig-property name"persistentConnection"
value""/gt - ltconfig-property name"keepAlive" value""/gt
- ltconnection-poolinggt
- ltproperty name"scheme" value"dynamic" /gt
- ltproperty name"maxConnections" value"10" /gt
- ltproperty name"minConnections" value"5" /gt
- lt/connection-poolinggt
- lt/connector-factorygt
Define Connector Factory
Specify a JNDI location for the JCA Adapter
Adapter Connection Attributes
Connection Pooling
28Using the JCA Adapter
-
- Context ic new InitialContext()
- String name "javacomp/env/eis/attunityCICS"
- javax.resource.cci.ConnectionFactory cf
(ConnectionFactory) ic.lookup (name) - try
- javax.resource.cci.Connection con
cf.getConnection() - Interaction interaction
con.createInteraction() - AttuInteractionSpec iSpeq new
AttuInteractionSpec("logIn") -
- RecordFactory rf cf.getRecordFactory()
- MappedRecord queryRecord
rf.createMappedRecord("logInIn") - queryRecord.put("_at_C002_NET_USER_ID",event.
getUsername()) - queryRecord.put("_at_C002_PASSWORD",event.get
Password()) - Record oRec interaction.execute(iSpeq,
queryRecord) - Element outEl ((DomRecord)oRec).getDom()
- String session (String)((MappedRecord)oRec).ge
t("_at_C002_SESSION_NO")
Lookup CICS JCA Adapter
Get Connection and Create Interaction (LogIn)
Build interaction input document (LogInIn)
Execute the interaction
Parse interaction response
Close
29Other Integration Considerations
- Coordinate transaction calls (transID)
- Firewall
- Support FIXNAT
- Transparent to the App Server
- Connection Pooling
- Oracle side (OC4J)
- Mainframe CICS side (Attunity Connect)
- Performance
- Pre-loaded adapter definitions and listeners
30What Have We Seen?
- Standard Integration APIs
- JCA CCI getConnection, createInteraction,
execute... - XML manipulate in/out docs
- Flexible Adapter Definition
- Map Interactions to legacy Programs
- Robust Native-data structure (e.g. COBOL) Mapping
- Simple values, Arrays, Inner Structures, etc.
- Powerful manipulation of interaction messages
- Other Capabilities
- Transactions (expose as XAResource), Batch
interactions
31Bottom Line
- Its Standard (JCA CCI, XML)
- Its Easy (use Java APIs and Objects)
- Its Fast (proved architecture in a day)
- It Works !
32The Results
- Its pretty simple to introduce new
transactions, so the team can expand the claims
system in almost any direction - By making data entry more intuitive and user
friendly, we can improve throughput... This will
also increase our capacity for taking on
potential new business - Stuart Allan, XIS Convergence Program
33The future of JCA
34JCA 1.5 (JSR 112)
- Release with J2EE 1.4
- Enable inbound communication
- Transaction inflow
- Message inflow
- Provide JMS Provider pluggability
- Enhanced/new QoS Contracts
- Lifecycle management
- Work management
- Packaging model
35JCA 2.0?
- Release after J2EE 1.4
- Provide CCI meta-data support
- Add XML support to CCI
- Other QoS enhancements
36Oracle Application Server 10g Integration
37Integrate Your Business
Single Integration Tool
Exchanges
E-Business Suite
3rd Party Apps
Any Data Source
Custom Apps
Messaging Systems
- Improve efficiency using integrated business
processes - Open, standards-based architecture
- Single solution for A2A, B2B, and web services
integration - Best solution pre-integrated with Oracle
E-Business Suite
38Oracle Application Server 10g Integration
B2B Services
- Improve efficiency using integrated business
processes - Common view approach minimizes impact of adding
applications - Pre-certified JCA based adapters
- Business process intelligence
39Oracle Application Server Integration
Fast Deployment via Packaged Adapters
- Applications
- Oracle 11.5.X
- Oracle 10.7
- SAP R/3
- SAP R/4
- Peoplesoft
- Ariba
- Commerce One
- JD Edwards
- Siebel
- Siebel 2000
- i2
- Any J2CA Application
- Databases
- Oracle7.3, 8.0, 8i, 9i
- MS SQL-Server
- IBM DB/2 UDB
- Sybase
- Informix
- J2CA Datasources
- Messaging
- Oracle AQ
- MQ-Series
- TIBCO
- Legacy
- CICS
- New EDI
- Transports
- SOAP
- HTTP, HTTP-S
- SMTP
- FTP
- CORBA/IIOP
- COM/COM
- Generic DB
- Flat File
40Reminder please complete the OracleWorld
online session surveyThank you.
41A
42(No Transcript)