OracleWorld Presentation - Introducnig JCA - PowerPoint PPT Presentation

About This Presentation
Title:

OracleWorld Presentation - Introducnig JCA

Description:

... PIC S9(4) COMP. 03 C002-ERROR-TABLE OCCURS 10. 06 C002-ERROR-CODE PIC X ... 03 C002-LOGIN-STATUS PIC X. COMMAREA is Input/Output buffer for the CICS program ... – PowerPoint PPT presentation

Number of Views:130
Avg rating:3.0/5.0
Slides: 43
Provided by: itamaranko
Category:

less

Transcript and Presenter's Notes

Title: OracleWorld Presentation - Introducnig JCA


1
(No Transcript)
2
Accessing Oracle and Non-Oracle Data Sources from
J2EE Applications Introducing JCA
Session id 40045
  • Lars EweProduct Manager
  • Oracle Corporation

Itamar AnkorionProduct Manager Attunity
3
Agenda
  • J2EE Connector Architecture (JCA)
  • Oracle Application Server and JCA
  • Customer Case Study Lloyds
  • The future of JCA
  • Oracle Application Server 10g Integration
  • QA

4
J2EE Connector Architecture Introduction
5
JDBC 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

6
JCA 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

7
What 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
8
J2EE 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

9
J2EE 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
10
Oracle Application Server 10g and JCA
11
Oracle 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

12
Oracle 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
13
Oracle 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

14
Connection 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

15
Connection 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

16
Container Managed Sign-On (CMSO)
  • Configure container to take care of sign-on to
    EIS transparently
  • Choose between different schemes
  • Declarative
  • Programmatic

17
CMSO Overview
18
Declarative 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

19
Programmatic 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

20
Customer Case Study
  • Oracle Application Server integration with
    back-end Mainframe CICS

21
The Players
  • The Lloyds Insurance Market (Lloyds)
  • International Underwriters Association (IUA)
  • Xchanging Ins-Sure Services (XIS)
  • Steria ? System Integration
  • Oracle ? OC4J
  • Attunity ? CICS JCA Adapter

22
Claim 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

23
Solution Architecture
Oracle Application Server (Solaris)
Web Browsers
FixNAT Firewall
JSP
?
OS390
CICS
24
The 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

25
CICS 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)
26
CICS 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
27
JCA 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
28
Using 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
29
Other 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

30
What 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

31
Bottom Line
  • Its Standard (JCA CCI, XML)
  • Its Easy (use Java APIs and Objects)
  • Its Fast (proved architecture in a day)
  • It Works !

32
The 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

33
The future of JCA
34
JCA 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

35
JCA 2.0?
  • Release after J2EE 1.4
  • Provide CCI meta-data support
  • Add XML support to CCI
  • Other QoS enhancements

36
Oracle Application Server 10g Integration
37
Integrate 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

38
Oracle 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

39
Oracle 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

40
Reminder please complete the OracleWorld
online session surveyThank you.
41
A
42
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com