Book Image

Oracle Application Integration Architecture (AIA) Foundation Pack 11gR1: Essentials

By : Hariharan V Ganesarethinam
Book Image

Oracle Application Integration Architecture (AIA) Foundation Pack 11gR1: Essentials

By: Hariharan V Ganesarethinam

Overview of this book

<p>Every Enterprise should have a learning curve in building better integration solutions from inaccuracy. Since Integration becomes the backbone of every corporate IT system, it is important to build the integration solution based on industry proven best practices. Oracle being a leader in enterprise solutions brings industry best practices and open standards as Oracle AIA framework. Oracle AIA Foundation Packs provide an open standard data model, templates and methodologies to build integrations and processes for enterprise applications. This book will guide you through the Oracle AIA fundamentals and development practices.<br /><br />Oracle Application Integration Architecture (AIA) Foundation Pack 11gR1 focuses on the fundamentals of integration, the AIA approach to integration and various integration components in AIA. This book is developer- friendly as the structure of the book explains each component right from architecture to development. <br /><br />This book covers Oracle AIA and its approach for better collaboration with integration teams. It covers all the components of the Oracle AIA Foundation Pack.<br /><br />This book begins with AIA fundamentals, architecture, and components from Enterprise Business Objects (EBO), Enterprise Business Message (EBM), Enterprise Business Services (EBS), Application Business Connector Service (ABCS), and Enterprise Business Flow (EBF). However, this is not enough to build enterprise solution, so this book also covers AIA security, version management, design patterns, error handling, and centralized repository. In turn, this book doesn't leave out testing; it covers Composite Asset Validation System (CAVS). Finally, the last chapter ends with case studies that express real-time scenarios.</p>
Table of Contents (20 chapters)
Oracle Application Integration Architecture (AIA) Foundation Pack 11R1: Essentials
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface

Integration flow


In order to meet the business flow, there are various integrations required between the business systems and partners. Oracle SOA Suite and AIA Foundation pack was identified as a framework for integrating the systems in mature SOA approach. The Oracle AIA foundation pack provides a proven approach of adopting SOA integration and the availability of EBO and EBM canonical message schema helps to build the integration solution quickly. The integration between the e-commerce portal and JD Edwards also flows through Oracle Fusion middleware. However, we are going to focus on the integration between JD Edwards and the shipment provider for this case study.

As shown in the preceding diagram, the order data synchronization between the e-commerce portal and JD Edwards goes through Oracle SOA infrastructure. Once the online order is processed in the JD Edwards application, the processed order generates a shipment order, which has been delivered to the shipment provider through the service interface provided by the shipment service provider. Once the vaccines are delivered to the customer, the shipment provider generates a list of order status in a file format that can be delivered back through FTP. Oracle SOA infrastructure picks up those files through the FTP adapter, processes each order status, and updates it in the e-commerce portal. As our focus is on the shipment order flow between JD Edwards to shipment provider, the following sections will detail out the approach followed to identify the EBO, EBM, and EBS development.

AIA Integration Reference Architecture

As mentioned earlier, Oracle AIA played a middleware role to integrate the internal and external systems. The following diagram will show the shipment order integration through Oracle AIA approach:

In the shipment order integration, JD Edwards will generate the shipment request message. Oracle AIA will then transform the message into a shipment request format as expected by the shipment provider. The transformed shipment request will be sent to the shipment provider through the shipment request interface. In order to meet the approach, we need to carry out the following steps:

  1. 1. Identify the EBO first and then the EBM.

  2. 2. Identify the EBS Service Operations from EBS WSDL.

  3. 3. Define ABCS process for applications interfaces.

  4. 4. Validate the integration interfaces using CAVS.

Identifying EBO followed by EBM

The development team decided to implement the EBO format provided by Oracle AIA to meet the message structure between the JD Edwards and the shipment provider. Oracle AIA foundation pack's out-of-box installation comes with various predefined business objects as EBO and EBMs. For shipment, the development team decided to use the ShipmentRequestEBO and ShipmentRequestEBM that come as parts of AIA Metadata. However, ShipmentRequestEBO and ShipmentRequestEBM do include various data elements to meet a wide range of integration needs. Therefore, it has been decided to customize the ShipmentRequestEBO and ShipmentRequestEBM to meet the specific requirement. Oracle AIA foundation pack's EBO and EBM schema covers wide range of requirements. In most of the use case scenarios, it is required to customize the EBO and EBM schema model to meet the requirements. In addition, it is not a good approach to contain the entire used elements as parts of the message schema. The customized EBO and EBM are separated from the original EBO and EBM for better handling during development and upgrades.

The EBM message model, which is used for creating a shipment request and response from the ShipmentRequestEBM.xsd, is shown as follows:

<!-- Create ShipmentRequest Response Service -->
<xsd:complexType name="CreateShipmentRequestResponseEBMType">
<xsd:complexContent>
<xsd:extension base="corecom:EBMType">
<xsd:sequence>
<xsd:element name="DataArea"
type="CreateShipmentRequestResponseDataAreaType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
/xsd:complexType>
<xsd:element name="CreateShipmentRequestResponseEBM"
type="CreateShipmentRequestResponseEBMType"/>
<xsd:complexType name="CreateShipmentRequestResponseDataAreaType">
<xsd:sequence>
<xsd:element ref="corecom:CreateResponse"/>
<xsd:element ref="CreateShipmentRequestResponse"/>
</xsd:sequence>
/xsd:complexType>
<xsd:complexType name="CreateShipmentRequestResponseType">
<xsd:complexContent>
<xsd:extension base="ShipmentRequestEBMType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="CreateShipmentRequestResponse"
type="CreateShipmentRequestResponseType"/>

Identifying EBS Service Operations from EBS WSDL

Once the EBO and EBM are identified, it is obvious that we should use the EBS that accommodates the identified EBM in the service operation. In this use case, we should use ShipmentRequestEBS to meet the requirement. Therefore, it has been decided to use the ShipmentRequestEBS as the EBS operation; however, Oracle AIA ShipmentRequestEBS includes many request and response operations including create, update, query, cancel, , and so on. As it is required to receive a confirmation message from the shipment provider for every shipment request, they decided to use the request and response type operations for this requirement.

The request operation used for this requirement from the ShipmentRequestEBSV1.WSDL is shown, as follows:

<operation name="CreateShipmentRequestResponse">
<documentation>
<svcdoc:Operation>
<svcdoc:Description>This callback operation will be used to
provide the CreateShipmentRequest Response.</svcdoc:Description>
<svcdoc:MEP>ASYNC_REQ_RESPONSE</svcdoc:MEP>
<svcdoc:DisplayName>CreateShipmentRequestResponse
</svcdoc:DisplayName>
<svcdoc:LifecycleStatus>Active</svcdoc:LifecycleStatus>
<svcdoc:Scope>Public</svcdoc:Scope>
<svcdoc:InitiatorService>ShipmentRequestEBSV1
</svcdoc:InitiatorService>
<svcdoc:InitiatorInterface>CreateShipmentRequestResponseEBM
</svcdoc:InitiatorInterface>
<svcdoc:InitiatorOperation>CreateShipmentRequestRequest
</svcdoc:InitiatorOperation>
</svcdoc:Operation>
</documentation>
<input message="ebs:CreateShipmentRequestRespMsg"/>
</operation>