Skip Headers
Oracle® Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack
11
g
Release 1 (11.1.1.4.0)
E17364-02
Index
Next
Contents
List of Examples
List of Figures
List of Tables
Title and Copyright Information
Preface
Oracle AIA Guides
Documentation Accessibility
Related Documents
Conventions
1
Getting Started with the AIA Development Guide
1.1
Goal of the AIA Development Guide
1.2
Types of Integrations Addressed by AIA
1.3
Integration Styles Addressed by AIA
1.4
How to Use the AIA Development Guide
2
Building AIA Integration Flows
2.1
How to Set Up Development and Test Environments
2.1.1
How to Set Up JDeveloper for AIA Development
2.1.2
How to Set Up the Oracle Fusion Middleware Environment for AIA Development
2.1.2.1
Set Up Oracle SOA Suite
2.1.2.2
Set Up Oracle Enterprise Repository
2.1.2.3
Set Up Oracle Service Registry
2.1.2.4
Set Up Oracle Business Process Publisher
2.1.3
How to Set Up AIA Workstation
2.1.3.1
Prerequisites
2.1.3.2
How to Install AIA Foundation Pack
2.1.3.3
Updating SOA MDS with AIA MetaData
2.1.3.4
Using MDS in AIA
2.1.3.5
Content of $AIA_HOME/AIAMetaData
2.1.3.6
Working with AIA Components Content in $AIA_HOME/AIAMetaData
2.1.3.7
How to Change an Existing File
2.1.3.8
How to Create a New File
2.1.3.9
How to Work with AIAConfigurationProperties.xml in $AIA_HOME/aia_instances/$INSTANCE_NAME/AIAMetaData/config
2.1.3.10
How to Add a New Property to AIAConfigurationProperties.xml
2.1.3.11
How to Work with AIAEHNotification.xml in $AIA_HOME/aia_instances/$INSTANCE_NAME/AIAMetaData/config
2.1.3.12
How to Work with Domain Value Maps in $AIA_HOME/AIAMetaData/dvm
2.1.3.13
How to Work with Cross Reference (Xref) in $AIA_HOME/AIAMetaData/xref
2.1.3.14
How to Work with Fault Policies in $AIA_HOME/AIAMetaData/faultPolicies/V1
2.1.3.15
Updating MDS
2.1.3.16
How to Set Up AIA Project Lifecycle Workbench
2.1.3.17
How to Deploy AIA Foundation Pack Artifacts to Oracle SOA Suite Server
2.1.3.18
How to Deploy AIA Service Artifacts to Oracle SOA Suite Server
2.2
Role of AIA Project Lifecycle Workbench
2.2.1
Introduction to the Tools Used
2.2.2
Introduction to the Business Process Modeling and Analysis Phase
2.2.3
Introduction to the Business Process Decomposition and Service Conception Phase
2.2.4
Introduction to the Service Design and Construction Phase
2.2.5
Introduction to the Deployment Plan Generation Phase
2.2.6
Introduction to the Install and Deploy Phase
2.3
AIA Artifacts in Various Integration Styles
2.3.1
Integration Through Native Application Interfaces Using the Oracle Applications Technology Infrastructure
2.3.2
Understanding Integration Styles with Integration Framework
2.3.2.1
Integration Flow with Requester Application Services
2.3.2.2
Direct Integration Through Application Web Services
2.3.2.3
Integration Through Packaged Canonical and Standardized Interfaces
2.3.3
Bulk Data Processing
2.3.4
Integration Style Choice Matrix
2.4
Development Tasks for AIA Artifacts
2.4.1
Identifying the EBO
2.4.2
Designing an Oracle AIA Integration Flow
2.4.3
Identifying and Creating the EBS
2.4.4
Constructing the ABCSs
2.4.5
Enabling and Registering Participating Applications
2.4.5.1
Enabling Participating Applications
2.4.5.2
Managing the Oracle AIA System Registry
2.4.5.2.1
Understanding the Oracle AIA System Registry
2.4.5.2.2
How to Manage the System Registry Using the Systems Page
2.4.5.2.3
How to Manage the System Registry Using the SystemRegistration.xml Configuration File
2.4.6
Identifying and Creating the EBF
2.5
Testing an Oracle AIA Integration Flow
3
Working with Project Lifecycle Workbench
3.1
Introduction to Project Lifecycle Workbench
3.2
Adding Project Lifecycle Workbench Lookup Values
3.2.1
How to Add Lookup Values
3.3
Working with Project Lifecycle Workbench Projects
3.3.1
How to Define Project Lifecycle Workbench Projects
3.3.2
How to Update Project Lifecycle Workbench Projects
3.3.3
How to Access Project Lifecycle Workbench Projects
3.3.4
How to Edit a Locked Project
3.3.5
How to Delete Project Lifecycle Workbench Projects
3.4
Working with Project Lifecycle Workbench Service Solution Components
3.4.1
How to Define Project Lifecycle Workbench Service Solution Components
3.4.2
How to Update Project Lifecycle Workbench Service Solution Components
3.4.3
How to Access Service Solution Components
4
Working with Service Constructor
4.1
Introducing Service Constructor
4.1.1
Required Software for Using Service Constructor
4.2
Using Service Constructor to Create New Service Solution Components
4.2.1
Creating a New Service Solution Component Project
4.2.2
Describing the Service
4.2.3
Defining the Service Object
4.2.3.1
Defining the Service Object for a Requester ABCS
4.2.3.2
Defining the Service Object for a Provider ABCS
4.2.4
Defining the Target Services
4.2.5
Defining Service Options
5
Harvesting Oracle AIA Content
5.1
How to Set Up Oracle AIA Content Harvesting
5.2
Harvesting Design-Time Composites into Project Lifecycle Workbench and Oracle Enterprise Repository
5.2.1
Introduction to Harvesting Design-Time Composites into Project Lifecycle Workspace and Oracle Enterprise Repository
5.2.2
How to Set Up Environments to Enable Design-Time Harvesting
5.2.2.1
Setting Up for Design-Time Harvesting Using a Non-Foundation Pack Environment
5.2.2.2
Setting Up for Design-Time Harvesting Using a Foundation Pack Environment
5.2.3
How to Harvest Design-Time Composites into Project Lifecycle Workspace and Oracle Enterprise Repository
5.2.3.1
How to Harvest Design-Time Composites into Project Lifecycle Workspace and Oracle Enterprise Repository Using HarvesterSettings.xml
5.2.3.2
How to Harvest Design-Time Composites into Project Lifecycle Workbench Only Using HarvesterSettings.xml
5.2.3.3
How to Harvest Design-Time Composites into Project Lifecycle Workspace and Oracle Enterprise Repository Using Command Line Options
5.3
Harvesting Interfaces to Oracle Enterprise Repository in Bulk
5.3.1
How to Set Up Environments to Harvest Interfaces to Oracle Enterprise Repository in Bulk
5.3.1.1
Setting Up to Harvest Interfaces Using a Non-Foundation Pack Environment
5.3.1.2
Setting Up to Harvest Interfaces Using a Foundation Pack Environment
5.3.2
How to Harvest Interfaces to Oracle Enterprise Repository in Bulk
5.4
Harvesting Deployed Composites into Oracle Enterprise Repository
5.4.1
How to Set Up Environments to Harvest Deployed Composites into Oracle Enterprise Repository
5.4.2
How to Harvest Deployed Composites into Oracle Enterprise Repository
5.4.2.1
Harvesting PIP-Delivered Deployed Composites to Oracle Enterprise Repository
5.4.2.2
Harvesting Custom-Built Deployed Composites to Oracle Enterprise Repository
5.5
Introducing Oracle Enterprise Repository After AIA Installation
6
Working with Project Lifecycle Workbench Bills of Material
6.1
Introduction to Bills of Material
6.2
How to Generate a Bill of Material for an AIA Lifecycle Project
6.3
How to Edit a Bill of Material for an AIA Lifecycle Project
6.4
How to View a Bill of Material for an AIA Lifecycle Project
7
Working with Project Lifecycle Workbench Seed Data
7.1
Introducing Project Lifecycle Workbench Seed Data
7.2
How to Set Up an Environment to Export or Import Seed Data for the First Time
7.3
How to Export Seed Data
7.4
How to Import Seed Data
8
Generating Deployment Plans and Deploying Artifacts
8.1
Introduction
8.2
Extending Deployment Plans
8.2.1
Extending Native Artifacts
8.2.2
Extending Non-Native Artifacts
8.3
Generating Deployment Plans
8.3.1
Input for Deployment Plan Generator
8.3.2
Executing Deployment Plan Generator
8.3.3
Output by Deployment Plan Generator
8.4
Generating Conditional Deployment Plans
8.4.1
Understanding the Deployment Policy File
8.4.2
Executing the Deployment Plan
8.5
Deploying Artifacts
8.5.1
Deploying AIA Shipped Native Artifacts and Non-native Artifacts
8.5.2
Deploying Modified AIA-shipped Artifacts
8.5.2.1
Deploying Modified Native Artifacts and Original Non-native Artifacts
8.5.2.2
Deploying Original Native Artifacts and Modified Non-native Artifacts
8.5.3
Deploying New or Custom Built Artifacts
8.5.3.1
Deploying Newly-added Native Artifacts and Original Non-native Artifacts
8.5.3.2
Deploying Newly Added Non-native Artifacts
8.6
Undeploying Services
9
Generating a Deployment Plan for ODI
9.1
Introduction to Generating a Deployment Plan for ODI
9.2
Generating the BOM for ODI
9.2.1
Understanding the ODIBOM.xml File
9.2.2
Understanding the Sections in the BOM.xml
9.2.2.1
ODIReplaceTokens
9.2.2.2
ODIEncryptPasswords
9.2.2.3
CopyDvmstoODIPath
9.2.2.4
MSTREP_Grp
9.2.2.5
WRKREP_Grp
9.3
Generating a Deployment Plan for ODI
9.3.1
Understanding the ODI Deployment Plan
9.3.1.1
OdiImportObject
9.3.1.2
OdiEncrypt
9.3.1.3
UpdateOdiParams
10
Configuring and Using Oracle Enterprise Repository as the Oracle AIA SOA Repository
10.1
Introduction to Using Oracle Enterprise Repository as the Oracle AIA SOA Repository
10.2
How to Provide EBO and EBM Documentation Links in Oracle Enterprise Repository
10.3
How to Access Oracle AIA Content in Oracle Enterprise Repository
11
Annotating Composites
11.1
Why Annotate a SOA Composite?
11.1.1
What Elements of a Composite Need to be Annotated?
11.1.2
Understanding the Service Annotation Element
11.1.2.1
InterfaceDetails
11.1.2.2
ImplementationDetails
11.1.3
Understanding the Reference Annotation Element
11.1.4
Understanding the TransportDetails Element
11.1.4.1
Annotating DBAdapter
11.1.4.2
Annotating JMSAdapter
11.1.4.3
Annotating AQJMS Adapter
11.1.4.4
Annotating Other Resources
11.1.4.5
Annotating Application Adapter
11.2
How to Annotate the Service Element in a Requester ABCS Composite
11.3
How to Annotate the Reference Element in a Requester ABCS Composite
11.4
How to Annotate the Service Element in a Provider ABCS Composite
11.5
How to Annotate the Reference Element in a Provider ABCS
11.6
How to Annotate the Transport Adapter Composite
11.7
How to Annotate the Service Element in Enterprise Business Flow Composite
11.8
How to Annotate the Reference Element in Enterprise Business Flow Composite
11.9
How to Annotate the Service Element in Composite Business Process Composite
11.10
How to Annotate the Reference Element in Composite Business Process Composite
11.11
Valid Values for Annotation Elements
11.11.1
Valid Values for the Element ArtifactType
11.11.2
Valid Values for the Element ApplicationName
12
Designing and Developing Enterprise Business Services
12.1
Introduction to Enterprise Business Services
12.1.1
Understanding EBS Types
12.1.2
Working with the Enterprise Business Service Library
12.2
Designing the EBS
12.2.1
Understanding Design Guidelines
12.2.2
Understanding Design Considerations
12.2.3
Establishing the MEP of a New Process EBS
12.2.4
How to Establish the MEP for a New Process EBS
12.2.5
How to Handle Errors
12.2.6
How to Secure the EBS
12.2.7
How to Configure Transactions
12.2.8
How to Guarantee Delivery
12.2.9
How to Define the EBS Service Contract
12.3
Constructing the WSDL for the Process EBS
12.3.1
Introduction to WSDL Construction for the Activity Service EBS
12.3.2
How to Complete the <definitions> Section
12.3.3
How to Define Message Structures
12.3.4
How to Check for WS-I Basic Profile Conformance
12.4
Working with Message Routing
12.4.1
Creating Routing Rules
12.4.2
Routing at the EBS
12.4.3
Guidelines for EBS Routing Rules
12.4.4
How to Identify the Target System at EBS
12.5
Building EBS Using Oracle Mediator
12.5.1
How to Develop the Oracle Mediator Service
12.6
Implementing the Fire-and-Forget Message Exchange Pattern
12.6.1
How to Implement Fire-and-Forget Pattern with EBS One-Way Calls
12.6.2
Creating EBS WSDLs
12.6.3
Creating Mediator Routing Services for Asynchronous Fire-and-Forget Patterns with a One-Way Call EBS
12.6.3.1
How to Create Mediator Projects for the Asynchronous Fire-and-Forget MEP
12.6.3.2
How to Create Routing Services for Asynchronous Fire-and-Forget MEP
12.6.3.3
How to Create Routing Rules for Asynchronous Fire-and-Forget MEP
12.6.3.4
How to Implement Error Handling for Asynchronous Fire-and-Forget MEP
12.6.4
Asynchronous Fire-and-Forget MEP Error Handling Using Compensatory Operations
12.6.5
How to Invoke the Compensate Operation of EBS
12.6.6
How to Enable Routing Rules in Compensate Operation Routing Service
12.7
Implementing the Synchronous Request-Response Message Exchange Pattern
12.7.1
How to Implement Synchronous Request-Reply Message Exchange Patterns in EBS
12.7.2
How to Create Mediator Projects for the Synchronous Request-Response MEP
12.7.3
How to Create Routing Services for the Synchronous Request-Response MEP
12.7.4
How to Implement Error Handling for the Synchronous Request-Response MEP
12.8
Implementing the Asynchronous Request-Delayed Response Message Exchange Pattern
12.8.1
How to Implement the Request-Delayed Response Pattern with the Two One-Way Calls of the EBS
12.8.1.1
How to Create the EBS WSDLs for the Request-Delayed Response MEP
12.8.2
Creating Mediator Routing Services for Asynchronous Request-Delayed Response Patterns with Two One-Way Call EBS
12.8.2.1
How to Create Mediator Projects for the Request-Delayed Response MEP
12.8.2.2
How to Create Routing Services
12.8.2.3
How to Create Routing Rules
12.8.3
Asynchronous Request-Delayed Response MEP Error Handling
13
Designing Application Business Connector Services
13.1
Introduction to ABCS
13.1.1
ABCS Types
13.1.1.1
Requester ABCS
13.1.1.2
Provider ABCS
13.1.2
Designing ABCS - Key Tasks
13.2
Defining the ABCS Contract
13.2.1
Defining the Role of the ABCS
13.2.1.1
Designing an ABCS to Participate in a Requester Role
13.2.1.2
Designing an ABCS to Participate in a Provider Role
13.2.2
Constructing ABM Schemas
13.2.3
Analyzing the Participating Application Integration Capabilities
13.3
Identifying the MEP
13.3.1
Introduction to MEPs
13.3.2
Choosing the Appropriate MEP
13.3.2.1
When to Use the Synchronous Request-Response MEP
13.3.2.2
When to Use the Asynchronous Request Only (Fire-and Forget) MEP
13.3.2.3
When to Use the Asynchronous Request Delayed Response MEP
13.4
Technology Options
13.4.1
Outbound Interaction with the Application
13.4.1.1
When to Use JCA Adapters for Outbound Interactions
13.4.1.2
When to Use Standard Web Service Interfaces (SOAP/HTTP, XML/HTTP) for Outbound Interactions
13.4.1.3
When to Use JCA Adapters, (Database, File, JMS, or AQJMS), for Outbound Interactions
13.4.2
Using BPEL for Building ABCS
14
Constructing the ABCS
14.1
Constructing an ABCS
14.1.1
Prerequisites
14.1.2
ABCS as a Composite Application
14.1.3
How Many Components Need to Be Built
14.2
Constructing an ABCS Using Service Constructor
14.2.1
How to Create the ABCS in the Service Constructor
14.2.2
How to Complete ABCS Development for the AIA Service Constructor
14.3
Constructing an ABCS Composite Using JDeveloper
14.3.1
How to Construct the ABCS Composite Using JDeveloper
14.3.2
Developing the BPEL Process
14.3.3
How to Create References, Services, and Components
14.3.4
Moving Abstract Service WSDLs in MDS
14.4
Implementing the Fire-and-Forget MEP
14.4.1
When to Use Compensating Services
14.4.2
How to Invoke the Compensating Service
14.4.3
Additional Tasks Required in Provider ABCS to Implement This MEP
14.4.4
How to Ensure Transactions
14.4.5
How to Handle Errors
14.5
Implementing the Asynchronous Request Delayed Response MEP
14.5.1
How to Populate the EBM Header for Asynchronous-Delayed Response
14.5.2
Setting Correlation for the Asynchronous Request-Delayed Response MEP
14.5.3
Programming Models for Handling Error Response in the Asynchronous Request-Delayed Response MEP
14.5.3.1
Programming Model 1: Using a Separate Service for Error Handling
14.5.3.2
Programming Model 2: Using JMS Queue as a Milestone Between Requester ABCS and the EBS
14.5.3.3
Programming Model 3: Using a Parallel Routing Rule in the EBS
14.5.4
What Tasks Are Required in Provider ABCS to Implement This MEP
14.6
Implementing Provider ABCS in an Asynchronous Message Exchange Scenario
14.6.1
How to Implement the Asynchronous MEP
14.6.2
Using the Programming Models for the Request-Delayed Response Pattern
14.6.3
How to Ensure Transactions in Services
14.6.4
How to Handle Errors in the Asynchronous Request-Delayed Response MEP
14.7
Implementing Synchronous Request-Response Message Exchange Scenario
14.7.1
How to Ensure Transactions in Services
14.7.2
How to Handle Errors in the Synchronous Request-Response MEP
14.7.3
How to Optimize the Services to Improve Response Time
14.8
Invoking Enterprise Business Services
14.8.1
Create
14.8.2
Update
14.8.3
Delete
14.8.4
Sync
14.8.5
Validate
14.8.6
Process
14.8.7
Query
14.9
Invoking the ABCS
14.9.1
How to Invoke an ABCS Directly from an Application
14.9.2
How to Invoke an ABCS Using Transport Adapters
14.9.3
When Does an Enterprise Business Service Invoke an ABCS
15
Completing ABCS Development
15.1
Developing Extensible ABCS
15.1.1
Introduction to Enabling Requester ABCS for Extension
15.1.2
Introduction to Enabling Provider ABCS for Extension
15.1.3
How to Design Extensions-Aware ABCS
15.1.3.1
Configuration Parameters
15.1.4
Designing an ABCS Composite with Extension
15.1.5
Defining Service at Extension Points
15.1.6
Defining a Service Using an Abstract WSDL
15.1.7
How to Specify a Concrete WSDL at Deployment Time
15.1.7.1
Populating the binding.ws Element in the composite.xml
15.1.8
Designing Extension Points in the ABCS BPEL Process
15.1.9
How to Set Up the Extension Point Pre-ProcessABM
15.1.10
How to Set Up the Extension Point Pre-ProcessEBM
15.1.11
How to Test the Extensibility with Servlet as Sample Extension Service
15.2
Handling Errors and Faults
15.2.1
How to Handle Errors and Faults
15.3
Working with Adapters
15.3.1
Interfacing with Transport Adapters
15.3.2
How to Develop Transport Adapters
15.3.3
When to Put Adapters in a Single Composite
15.3.4
Planning Version Adapters
15.3.5
How to Configure a Version Adapter
15.4
Developing ABCS for CAVS Enablement
15.4.1
How to CAVS Enable Provider ABCS
15.4.2
How to CAVS Enable the Requester ABCS
15.4.3
Introduction to the CAVSEndpointURL Value Designation
15.4.4
Purging CAVS-Related Cross-Reference Entries to Enable Rerunning of Test Scenarios
15.5
Securing the ABCS
15.5.1
How to Secure the ABCS
15.6
Enabling Transactions
15.6.1
How to Ensure Transactions in AIA Services
15.6.2
Transactions in Oracle Mediator
15.6.3
Transactions in BPEL
15.6.3.1
Impact of BPEL Activities on Transaction Scope
15.6.4
Developing ABCS to Participate in a Global Transaction
15.6.5
How to Transaction-Enable AIA Services
15.6.5.1
Synchronous Request-Response Scenarios
15.6.5.2
AIA Services in Asynchronous MEP
15.6.5.3
Asynchronous Operation from an ABCS in the Same Thread but in a Different Transaction
15.7
Guaranteed Message Delivery
15.8
Versioning ABCS
15.8.1
Guidelines for Versioning
16
Designing and Constructing Composite Business Processes
16.1
Introduction to Composite Business Processes
16.2
How to Define the Contract for a CBP
16.2.1
How to Identify the CBP
16.2.2
How to Identify the Message Pattern for a CBP
16.3
How to Create the Contract for a CBP
16.3.1
How to Construct the WSDL for the CBP
16.4
How to Implement the CBP as a BPEL Service
17
Designing and Constructing Enterprise Business Flows
17.1
Introduction to Enterprise Business Flows
17.2
How to Define the Contract for an EBF
17.2.1
How to Identify the Need for an EBF
17.2.2
How to Identify the Message Pattern for an EBF
17.2.3
How to Identify the Message Structure
17.3
How to Create the Contract for an EBF
17.3.1
Constructing the WSDL for the EBF
17.4
How to Implement the EBF as a BPEL Service
18
Introduction to B2B Integration Using AIA
18.1
Overview of B2B Integration Using AIA
18.2
Understanding B2B Document Flows
18.2.1
Describing Outbound B2B Document Flows Built Using AIA
18.2.2
Describing Inbound B2B Document Flows Built Using AIA
18.3
Understanding the Oracle B2B Component of Oracle Fusion Middleware
18.3.1
How AIA Complements Oracle Fusion Middleware Oracle B2B
18.4
Understanding the Foundation Pack Infrastructure for B2B
18.4.1
B2B Support in AIA Error Handling Framework
18.4.2
AIA B2B Interface
19
Developing and Implementing Outbound B2B Integration Flows
19.1
Introduction to Developing and Implementing Outbound B2B Integration Flows
19.2
Step 1: Identifying the B2B Document and Analyzing Requirements
19.2.1
How to Identify the B2B Document Protocol
19.2.2
How to Identify the B2B Document Type and Definition
19.2.3
How to Define the Document in Oracle B2B
19.2.4
How to Define the Document in AIA
19.2.5
How to Identify the EBO, EBS, and EBM to Be Used
19.2.6
How to Design Mappings for the B2B Document
19.2.7
How to Publish Mapping to Trading Partners
19.3
Step 2: Developing a New Provider B2B Connector Service
19.3.1
Introduction to a Provider B2B Connector Service
19.3.2
How to Identify the Message Exchange Pattern
19.3.3
How to Develop a B2BCS Service Contract
19.3.4
How to Store a WSDL in the Oracle Metadata Repository
19.3.5
How to Develop a B2B Connector Service
19.3.6
How to Customize the AIA B2B Interface
19.3.7
How to Annotate B2B Connector Services
19.3.8
How to Support Trading Partner-Specific Variants
19.3.8.1
Supporting Trading Partner-Specific Custom Extensions
19.3.8.2
Supporting Trading Partner-Specific XSLTs
19.3.8.3
Supporting Trading Partner-Specific Document Types and Versions
19.3.9
How to Enable Error Handling
19.4
Step 3: Developing or Extending an Existing Enterprise Business Service
19.4.1
How to Route Based on Trading Partner B2B Preferences
19.5
Step 4: Developing or Extending an Existing Requester ABCS
19.5.1
What You Need to Know About Message Exchange Patterns
19.5.2
What You Need to Know About Transformations
19.6
Step 5: Configuring Oracle B2B and Defining Trading Partner Agreements
19.7
Step 6: Deploying and Configuring AIA Services
19.8
Step 7: Testing and Verifying
19.8.1
How to Test Using CAVS
19.8.2
How to Test Using Dummy Trading Partner Endpoints
19.8.2.1
How to Test Using the Production Code Value Set to "Test"
19.8.2.2
How to Test Using Dummy Business Data
19.9
Step 8: Going Live and Monitoring
19.9.1
Monitoring Using Oracle B2B Reports
19.9.2
Monitoring Using Oracle Enterprise Manager Console
19.9.3
Monitoring Using Error Notifications
20
Developing and Implementing Inbound B2B Integration Flows
20.1
Introduction to Developing and Implementing Inbound B2B Integration Flows
20.2
Step 1: Identifying the B2B Document and Analyzing Requirements
20.3
Step 2: Adding Inbound Routing Rules to an AIA B2B Interface
20.3.1
How to Add a New Routing Rule to the AIA B2B Interface
20.4
Step 3: Developing a New Requester B2B Connector Service
20.4.1
Introduction to Requester B2B Connector Services
20.4.2
How to Identify the Message Exchange Pattern
20.4.3
How to Develop a B2BCS Service Contract
20.4.4
How to Store a WSDL in Oracle Metadata Services Repository
20.4.5
How to Develop a B2B Connector Service
20.4.6
How to Annotate B2B Connector Services
20.4.7
How to Support Trading Partner-Specific Variants
20.4.8
How to Enable Error Handling
20.5
Step 4: Developing or Extending an Existing Enterprise Business Service
20.6
Step 5: Developing or Extending an Existing Provider ABCS
20.6.1
What You Need to Know About Transformations
20.7
Step 6: Configuring Oracle B2B and Defining Trading Partner Agreements
20.8
Step 7: Deploying and Configuring AIA Services
20.9
Step 8: Testing and Verifying
20.10
Step 9: Going Live and Monitoring
21
Establishing Resource Connectivity
21.1
Introduction to Resource Connectivity
21.1.1
Inbound Connectivity
21.1.2
Outbound Connectivity
21.2
Modes of Connectivity
21.2.1
Web Services with SOAP/HTTP
21.2.2
When to Use Web Services with SOAP/HTTP
21.2.2.1
Request-Response
21.2.2.2
Request Only
21.2.2.3
Advantages of Using Web Services with SOAP/HTTP
21.2.2.4
Disadvantages of Using Web Services with SOAP/HTTP
21.2.2.5
Important Considerations for Using Web Services with SOAP/HTTP
21.2.3
Session Management for Web Services with SOAP/HTTP
21.2.3.1
Session Types
21.2.3.2
SessionToken
21.2.3.3
Session Pool Manager
21.2.4
Error Handling for Web Services with SOAP/HTTP
21.2.4.1
For Inbound Connectivity
21.2.4.2
For Outbound Connectivity
21.2.4.3
Request-Response and Request-Only System Errors
21.2.4.4
Request-Response Business Errors
21.2.5
Security for Web Services with SOAP/HTTP
21.2.6
Message Propagation Using Queues or Topics
21.2.6.1
Event Notification Without Payloads
21.2.6.2
Events Leading to Message Queuing
21.2.6.3
When to Use Message Propagation Using Queues or Topics
21.2.6.4
Types of Queues
21.2.7
Ensuring Guaranteed Message Delivery
21.2.7.1
When to Use Transaction Boundaries
21.2.8
When to Use JCA Adapters
21.3
Siebel Application-Specific Connectivity Guidelines
21.3.1
Inbound: Siebel Application Interaction with AIA Services
21.3.2
Web Services with SOAP/HTTP
21.3.3
Creating JMS Consumers to Consume Siebel Messages from JMS Queues/Topics
21.3.4
Outbound - Siebel Application Interaction with AIA Services
21.3.5
Web Services with SOAP/HTTP
21.3.5.1
Session Management
21.4
Oracle E-Business Suite Application-Specific Connectivity Guidelines
21.4.1
Inbound: E-Business Suite Application Interaction with AIA Services
21.4.2
Concurrent Program Executable
21.4.3
Business Event Subscription (JCA Connectivity Using OAPPS Adapter)
21.4.4
Outbound: Oracle E-Business Suite Application Interaction with AIA Services
21.5
Design Guidelines
22
Using Oracle Data Integrator for Bulk Processing
22.1
Introduction to Design Patterns for AIA-Oracle Data Integrator Architecture
22.1.1
Initial Data Loads
22.1.2
How to Perform the Oracle Data Integrator Data Load
22.1.3
High Volume Transactions with Xref Table
22.1.4
Intermittent High Volume Transactions
22.2
High-Volume Transactions with Xref Table
22.3
Building Oracle Data Integrator Projects
22.3.1
How to Build Oracle Data Integrator Projects
22.4
Using the XREF Knowledge Module
22.4.1
What You Need to Know About Cross-Referencing
22.5
Working with Oracle Data Integrator
22.5.1
How to Define Variables (Source and Target Column Names)
22.5.2
How to Create the First Interface (Source to Target)
22.5.3
How to Define the XREF View in SOA
22.5.4
How to Create the Second Interface (Update Target Identifier in XREF)
22.5.4.1
How to Create a Package for the Second Interface
22.6
Working with Domain Value Maps
22.7
Using Error Handling
22.8
Oracle Data Integrator Ref Functions
22.9
How to Publish the Package and Data Model as Web Service
23
Working with Message Transformations
23.1
Introduction to Transformation Maps
23.1.1
Connecting Applications to Implement Business Processes
23.1.1.1
Canonical Patterns
23.1.1.2
When to Use Direct Integrations
23.1.2
Using Tools and Technologies to Perform Message Transformations
23.2
Creating Transformation Maps
23.2.1
Considerations for Creating Transformation Maps
23.2.2
Handling Missing or Empty Elements
23.2.3
How to Map an Optional Source Node to an Optional Target Node
23.2.4
How to Load System IDs Dynamically
23.2.5
Using XSLT Transformations on Large Payloads
23.2.6
When to Populate the LanguageCode Attribute
23.2.7
How to Name Transformations
23.3
Making Transformation Maps Extension Aware
23.3.1
How to Make Transformation Maps Extension Aware
23.3.2
How to Make the Transformation Template Industry Extensible
23.4
Working with DVMs and Cross-References
23.4.1
Introduction to DVMs
23.4.2
When to Use DVMs
23.4.3
Using Cross-Referencing
23.4.4
How to Set Up Cross References
23.5
Mapping and Populating the Identification Type
23.5.1
How to Populate Values for corecom:Identification
23.6
Introducing EBM Header Concepts
23.6.1
Standard Elements
23.6.1.1
EBMID
23.6.1.2
EBOName
23.6.1.3
RequestEBMID
23.6.1.4
CreationDateTime
23.6.1.5
VerbCode
23.6.1.6
MessageProcessingInstruction
23.6.1.7
When to Populate Standard Header Fields
23.6.1.8
How to Populate the Message Processing Instruction
23.6.2
Sender
23.6.2.1
SenderMessageID
23.6.2.2
When to Populate Sender System Information
23.6.2.3
How to Populate Sender System Information
23.6.2.4
TransactionCode
23.6.2.5
ContactName
23.6.2.6
ContactEmail
23.6.2.7
ContactPhoneNumber
23.6.2.8
ESBHeaderExtension
23.6.2.9
ObjectCrossReference
23.6.2.10
How to Add Object Cross Reference information in the Sender System Information
23.6.2.11
WS Address
23.6.2.12
Custom
23.6.3
Target
23.6.3.1
ID
23.6.3.2
ApplicationTypeCode
23.6.3.3
Custom
23.6.4
BusinessScope
23.6.4.1
ID
23.6.4.2
InstanceID
23.6.4.3
BusinessScopeTypeCode
23.6.4.4
EnterpriseServiceName
23.6.4.5
EnterpriseServiceOperationName
23.6.4.6
Custom
23.6.4.7
How to Add Business Process Information
23.6.5
Use Case: Request-Response
23.6.5.1
Request EBM
23.6.5.2
Response EBM
23.6.6
Use Case: Asynchronous Process
23.6.6.1
Request EBM
23.6.7
Use Case: Synchronous Process with Spawning Child Processes
23.6.8
EBMTracking
23.6.8.1
SequenceNumber
23.6.8.2
ExecutionUnitID
23.6.8.3
ExecutionUnitName
23.6.8.4
ImplementationCode
23.6.8.5
ActivityDateTime
23.6.8.6
When to Populate EBM Tracking Information
23.6.9
Custom
24
Configuring Oracle AIA Processes for Error Handling and Trace Logging
24.1
Overview of Oracle BPEL and Mediator Process Error Handling
24.1.1
Understanding Oracle BPEL Error Handling
24.1.2
Understanding Oracle Mediator Error Handling
24.2
Overview of AIA Error Handler Framework
24.3
Enabling AIA Processes for Fault Handling
24.3.1
What Do I Need to Know About Fault Policy Files
24.3.1.1
Associating a Fault Policy File with Fault Policy Bindings File
24.3.2
How to Implement Fault Handling in BPEL Processes
24.4
Implementing Error Handling for the Synchronous Message Exchange Pattern
24.4.1
Guidelines for Defining Fault Policies
24.4.1.1
Defining a Fault Policy XML File for Handling Run-time Faults
24.4.1.2
Defining a Fault Policy XML File for Handling Business Faults
24.4.2
Guidelines for BPEL Catch and Catch-All Blocks in Synchronous Request-Response
24.4.2.1
Handling Business Faults
24.4.2.2
Handling Run-time Faults Defined in the Fault Policy File
24.4.2.3
Handling Run-time Faults Not Defined in the Fault Policy File
24.4.3
Guidelines for Configuring Mediator for Handling Business Faults
24.5
Implementing Error Handling and Recovery for the Asynchronous Message Exchange Pattern to Ensure Guaranteed Message Delivery
24.5.1
Overview
24.5.2
Configuring Milestones
24.5.3
Configuring Services Between Milestones
24.5.3.1
Populating Message Resubmission Values
24.5.3.1.1
Populating the ABM with Message Resubmission Values in JMSConsumerAdapter
24.5.3.1.2
Populating the EBM Header with Resubmission Values in the Requester ABCS
24.5.3.2
Configuring All Services to Participate in a Single Global Transaction
24.5.4
Guidelines for BPEL Catch and Catch-All Blocks
24.5.4.1
Handling Run-time Faults Defined in the Fault Policy File
24.5.4.2
Handling Run-time Faults Not Defined in the Fault Policy File
24.5.5
Guidelines for Defining Fault Policies
24.5.6
Configuring Fault Policies to Not Issue Rollback Messages
24.5.7
Using the Message Resubmission Utility API
24.6
How to Configure AIA Services for Notification
24.6.1
Defining Corrective Action Codes
24.6.2
Defining Error Message Codes
24.7
Describing the Oracle AIA Fault Message Schema
24.7.1
Describing the EBMReference Element
24.7.2
Describing the B2BMReference Element
24.7.3
Describing the FaultNotification Element
24.7.3.1
FaultMessage Element
24.7.3.2
IntermediateMessageHop Elements
24.7.3.3
FaultingService Element
24.8
Extending Fault Messages
24.8.1
Introduction to Extending Fault Messages
24.8.2
Extending a Fault Message
24.9
Extending Error Handling
24.9.1
Introduction to Extending Error Handling
24.9.2
Implementing an Error Handling Extension
24.10
Configuring Oracle AIA Processes for Trace Logging
24.10.1
Describing Details of the isTraceLoggingEnabled Custom XPath Function
24.10.2
Describing Details of the logTraceMessage Custom XPath Function
24.10.3
Describing the Trace Logging Java API
25
Working with Security
25.1
Introduction to Oracle AIA Remote Security
25.1.1
Securing Service to Service Interaction
25.1.2
Oracle AIA Recommendations for Securing Services
25.1.3
Introduction to Web Service Security Using Oracle Web Services Manager
25.2
Implementing Security
25.2.1
Enabling Security for AIA Services
25.2.1.1
Should I Secure All AIA Services?
25.2.2
Invoking Secured Application Services
25.2.3
Overriding Policies Using a Deployment Plan
25.2.4
Testing Secured Services using CAVS
25.3
Security for Applications
25.3.1
Enabling Security in Application Services
25.3.2
Invoking Secured AIA Services
25.4
Deploying Security Policies
25.4.1
Oracle AIA Recommendations for Policies
25.5
Policy Naming Conventions
25.5.1
Naming Conventions for Global Policy Sets
25.5.2
Naming Conventions for Overriding Config Params
25.6
How Does AIA Foundation Pack Help in Securing AIA Services?
25.6.1
What Default Policies are Attached to a Service?
25.6.2
How Can the Global Policy be Overridden for an Individual Service?
25.6.3
AIA Security Configuration Properties
25.7
Application Security Context
25.7.1
Introduction to Application Security
25.7.2
How To Exchange Security Context Between Participating Applications and ABCS
25.7.2.1
Requester Applications
25.7.2.2
Provider Applications
25.7.3
Mapping Application Security Context in ABCS To and From Standard Security Context
25.7.4
Using the AppContext Mapping Service
25.7.5
Understanding the Structure for Security Context
25.7.6
Using Attribute Names
25.7.7
Propagating Standard Security Context through EBS and EBF
25.7.8
Implementing Application Security Context
25.7.8.1
How to Implement Requester-Side Application Security Context
25.7.8.2
How to Implement Provider-Side Application Security Context
26
Working with AIA Design Patterns
26.1
AIA Message Processing Patterns
26.1.1
Synchronous Request-Reply Pattern: How to get Synchronous Response in AIA
26.1.2
Asynchronous Fire-and-Forget Pattern
26.1.3
Guaranteed Delivery Pattern: How to Ensure Guaranteed Delivery in AIA
26.1.4
Service Routing Pattern: How to Route the Messages to Appropriate Service Provider in AIA
26.1.5
Competing Consumers Pattern: How are Multiple Consumers used to Improve Parallelism and Efficiency?
26.1.6
Asynchronous Delayed-Response Pattern: How does the Service Provider Communicate with the Requester when Synchronous Communication is not Feasible?
26.1.7
Asynchronous Request Response Pattern: How does the Service Provider Notify the Requester Regarding the Errors?
26.2
AIA Assets Centralization Patterns
26.2.1
How to Avoid Redundant Data Model Representation in AIA
26.2.2
How to Avoid Redundant Service Contracts Representation in AIA
26.3
AIA Assets Extensibility Patterns
26.3.1
Extending Existing Schemas in AIA
26.3.2
Extending AIA Services
26.3.3
Extending Existing Transformations in AIA
26.3.4
Extending the Business Processes in AIA
27
Best Practices for Designing and Building End-to-End Integration Flows
27.1
General Guidelines for Design, Development, and Management of AIA Processes
27.1.1
Interpreting Empty Element Tags in XML Instance Document
27.1.2
Purging the Completed Composite Instances
27.1.3
Syntactic / Functional Validation of XML Messages
27.1.3.1
Syntactic Validation
27.1.3.2
Data / Functional Validation
27.1.4
Provide Provision for Throttling Capability
27.1.5
Artifacts Centralization
27.1.6
Separation of Concerns
27.1.6.1
Using MDS as the Central Storage for Abstract WSDLs, and Other Shared Artifacts
27.1.7
Adapters Inside ABCS Composite OR as Separate Composite
27.1.8
AIA Governance
27.1.9
Using AIA Service Constructor
27.2
Building Efficient BPEL Processes
27.2.1
Using BPEL as "Glue", Not as a Programming Language
27.2.1.1
Keep the Number of BPEL Activities as Minimal as Possible
27.2.1.2
Avoid Large
While
Loop
27.2.2
Avoiding Global Variables Wherever Possible
27.2.3
Avoiding Large FlowN
27.2.4
Controlling the Persistence of Audit Details for a Synchronous BPEL Process
27.2.5
Using Non-Idempotent Services Only When Absolutely Necessary
27.2.6
Defining the Scope of the Transaction
27.2.7
Disabling the Audit for Synchronous BPEL Process Service Components
27.2.8
Including No Break-Point Activity in a Request-Response Flow
28
Tuning Integration Flows
28.1
Introduction to Tuning
28.1.1
How to Use Baselines
28.1.2
How to Handle Resource Saturation
28.1.3
How to Use Proactive Monitoring
28.1.4
How to Eliminate Bottlenecks
28.1.5
Top Performance Areas
28.2
Oracle Database Performance Tuning
28.2.1
How to Tune the Oracle Database
28.2.2
Introducing Automatic Workload Repository
28.2.3
Configuring Performance Related Database Initialization Parameters
28.2.4
Tuning Redo Logs Location and Sizing
28.2.5
Automatic Segment-Space Management (ASSM)
28.2.6
Changing the Driver Name to Support XA Drivers
28.2.6.1
Edit in Oracle WebLogic Server Administration Console
28.2.6.2
Edit the SOADataSource-jdbc.xml file
28.2.7
Configuring Database Connections and Datasource Statement Caching
28.2.7.1
JDBC Datasource Connection Pool Settings
28.2.7.2
Getting the Right Mix of Performance and Fault Tolerance
28.2.8
Oracle Metadata Service (MDS) Performance Tuning
28.2.8.1
Using Database Polling Interval for Change Detection
28.2.8.2
Tuning Cache Configuration
28.3
Configuring the Common SOA Infrastructure
28.3.1
Configuring SOA Infrastructure Properties
28.3.2
Disabling HTTP Logging
28.4
BPEL - General Performance Recommendations
28.4.1
Configuring BPEL Process Service Engine Properties
28.4.2
Configuring BPEL Properties Inside a Composite
28.4.3
How to Monitor the BPEL Service Engine
28.5
Oracle Mediator: General Performance Recommendations
28.5.1
Configuring Mediator Service Engine Properties
28.5.2
How to Monitor the Mediator Service Engine
28.6
Tuning Oracle Adapters for Performance
28.6.1
How to Tune JMS Adapters
28.6.2
How to Tune AQ Adapters
28.6.3
How to Tune Database Adapters
28.6.4
Throttling Inbound Message Flows
28.7
Purging the Completed Composite Instances
28.8
Tuning Java Virtual Machines (JVMs)
28.8.1
How to Optimize the JVM Heap - Specifying Heap Size Values
28.8.1.1
Java Performance Analysis Tools
28.9
Tuning Weblogic Application Server
28.9.1
Domain Startup Mode - Production
28.9.2
Work Manager - default
28.9.3
Tuning Network I/O
29
Oracle AIA Naming Standards for AIA Development
29.1
General Guidelines
29.1.1
XML Naming Standards
29.1.1.1
General Naming Standards
29.1.1.2
General Namespace Naming Standards
29.1.1.3
Participating Applications Names
29.2
Composites
29.3
Composite Business Process
29.4
Enterprise Business Services
29.5
Enterprise Business Flows
29.6
Application Business Connector Service
29.6.1
Requester Application Business Connector Service
29.6.2
Provider Application Business Connector Services
29.7
JMS and Adapters
29.7.1
AQ JMS (Additional Attributes)
29.7.2
Adapter Services Naming
29.7.3
Participating Application Service
29.8
DVMs and Cross References
29.8.1
DVMs
29.8.1.1
Map Name
29.8.1.2
Map Column Names
29.8.2
Cross References
29.8.2.1
Table Name
29.8.2.2
Column Names
29.9
BPEL
29.9.1
BPEL Activities
29.9.1.1
BPEL Process Name and Namespace
29.9.1.2
Assign
29.9.1.3
Compensate
29.9.1.4
Flow
29.9.1.5
FlowN
29.9.1.6
Invoke
29.9.1.7
Java Embedding
29.9.1.8
Pick
29.9.1.9
Receive
29.9.1.10
Scope
29.9.1.11
Sequence
29.9.1.12
Switch
29.9.1.13
Case
29.9.1.14
Terminate
29.9.1.15
Throw
29.9.1.16
Transform
29.9.1.17
Wait
29.9.1.18
While
29.9.2
Other BPEL Artifacts
29.9.2.1
Variables
29.9.2.2
Properties
29.9.2.3
Correlation Sets
29.9.2.4
Correlation Set Properties
29.10
Custom Java Classes
29.11
Package Structure
29.12
Deployment Plans
A
Delivered Oracle AIA XPath Functions
A.1
aia:getSystemProperty()
A.1.1
Parameters
A.1.2
Returns
A.1.3
Usage
A.2
aia:getSystemModuleProperty()
A.2.1
Parameters
A.2.2
Returns
A.2.3
Usage
A.3
aia:getServiceProperty()
A.3.1
Parameters
A.3.2
Returns
A.3.3
Usage
A.4
aia:getEBMHeaderSenderSystemNode()
A.4.1
Parameters
A.4.2
Returns
A.4.3
Usage
A.5
aia:getSystemType()
A.5.1
Parameters
A.5.2
Returns
A.5.3
Usage
A.6
aia:getErrorMessage()
A.6.1
Parameters
A.6.2
Returns
A.6.3
Usage
A.7
aia:getCorrectiveAction()
A.7.1
Parameters
A.7.2
Returns
A.7.3
Usage
A.8
aia:isTraceLoggingEnabled()
A.8.1
Parameters
A.8.2
Returns
A.8.3
Usage
A.9
aia:logErrorMessage()
A.9.1
Parameters
A.9.2
Returns
A.9.3
Usage
A.10
aia:logTraceMessage()
A.10.1
Parameters
A.10.2
Returns
A.10.3
Usage
A.11
aia:getNotificationRoles()
A.11.1
Parameters
A.11.2
Returns
A.11.3
Usage
A.12
aia:getAIALocalizedString()
A.12.1
Parameters
A.12.2
Returns
A.12.3
Usage
A.13
aia:getConvertedDate()
A.13.1
Parameters
A.13.2
Returns
A.13.3
Usage
A.14
aia:getConvertedDateWithTZ()
A.14.1
Parameters
A.14.2
Returns
A.14.3
Usage
B
XSL for Developing CAVS-Enabled Oracle AIA Services
B.1
AddTargetSystemID.xsl
B.2
SetCAVSEndpoint.xsl
Index