Oracle Application Integration
Architecture (AIA) Foundation
Pack 11gR1: Essentials
Develop and deploy your Enterprise Integration
Solutions using Oracle AIA
Hariharan V. Ganesarethinam
PUBLISHING
professional expertise distilled
BIRMINGHAM - MUMBAI
Oracle Application Integration Architecture (AIA)
Foundation Pack 11gR1: Essentials
Copyright © 2012 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy
of the information presented. However, the information contained in this book is
sold without warranty, either express or implied. Neither the author, nor Packt
Publishing, and its dealers and distributors will be held liable for any damages
caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: February 2012
Production Reference: 1170212
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-84968-480-4
www.packtpub.com
Cover Image by Tina Negus (tina_manthorpe@sky.com)
Credits
Author
Hariharan V. Ganesarethinam
Reviewers
Sandeep Phukan
Senthil Raja
Arun Ramesh
Acquisition Editor
Rukshana Khambatta
Lead Technical Editor
Dayan Hyames
Technical Editors
Mehreen Shaikh
Llewellyn F. Rozario
Azharuddin Sheikh
Copy Editor
Neha Shetty
Project Coordinator
Jovita Pinto
Proofreader
Lynda Sliwoski
Indexer
Hemangini Bari
Graphics
Manu Joseph
Production Coordinator
Alwin Roy
Cover Work
Alwin Roy
About the Author
Hariharan V. Ganesarethinamis associated with Aspire Systems Inc, USA
as Senior Architect of Enterprise Architecture Solutions. He leads enterprise
architecture, integration, and SOA solutions for various customers of Aspire
Systems Inc. He has around 15 years of experience in the IT industry with a variety
of technologies, strategy, and enterprise solution experiences. He has architected
various enterprise-level solutions based on SOA, BPM, and EAI architectures. Prior
to Aspire Systems, he was leading various integration and research projects in MGL
Americas and Unisys India.
Hariharan is very passionate in researching and learning upcoming technologies,
architecture, and industry's best practices. His expertise and knowledge in SOA, EAI,
ESB, BPM, and SOA Governance has made him comfortable in providing technical
and business solutions to folks across the globe. He has hands-on experience in
implementing SOA and EAI projects using Web Services, Oracle SOA Suite, Oracle
AIA, iWay Service Manager, and Java CAPS. He is also an Oracle certified Oracle
SOA Architect Expert.
Hariharan is well known in the SOA industries through his articles published on IT
Toolbox (http://it.toolbox.com/blogs/soa-governance/) and SYS-CON Media
(http://vghariharan.sys-con.com/). He has written many articles in the area
of SOA and SOA Governance. His articles are related to various decision-making
situations in the SOA implementation. He owns a group in www.linkedin.com
called "SOA, EA and IT Governance Practitioners Forum" through which he shares
and consolidates industries view on SOA and EA practices. He also presented a
paper in the IBI Summit 2010 about "Service Reusability and Best Practices".
Acknowledgement
If everyone is moving forward together, then success takes care of itself.—Henry Ford
As Henry said, the success of this book is made up of many hands. First, I would
like to thank Rukshana Khambatta, the Acquisition Editor of Packt Publishing
for her confidence in my skills and abilities. Even though I have written many
articles online, this is my first book and she guided me very well in the beginning
that triggered me to complete it. Jovita Pinto, the Project Coordinator from Packt
Publishing would be the next person that I would like to thank since she was very
patient in approaching me and gathering my deliveries. I always believe in review
because that helps to correct our mistakes and align towards success. Even though
I do not have any direct contact with the reviewers of this book, I believe their
contribution added a lot of value during the process of writing.
I would also like to thank my wife Shanthi Hariharan who encouraged me whenever
I lost my confidence and felt lazy. Many times, she reminded me to complete and
deliver my write-ups to the publishing office. Finally, I would like to thank my kids,
my dad, and my friends who directly or indirectly have appreciated my efforts.
About the Reviewers
Arun Rameshstarted his IT career in 2005 and has since worked on challenging
integration assignments. He has been a part of some major IT consulting giants,
globally. He has a niche portfolio of skills in integration-related technologies from
multiple vendors. He is currently, a Senior Technical Consultant specializing in
integrations on Oracle Fusion Middleware based on Service Oriented Architecture.
He has been a part of major pioneering implementation milestones using
Oracle Fusion Middleware and Oracle AIA. He has also been instrumental in
implementations using Oracle stack with the integration layer being Oracle AIA. He
is an expert in complex and very large customizations in AIA PIPs and has been a
front runner for one such challenging engagement for a telecom major in Europe.
He has been a reviewer for various books on Oracle Fusion Middleware and Oracle
BPM. He is distinguishably known in the public domain for his technology blog on
Oracle Fusion Middleware and Oracle AIA, which provides numerous technical tips,
product reviews, code snippets, and solutions to other blogger queries.
I would like to take this opportunity to thank my family who
supported and encouraged me in spite of all the times that it took me
away from them. It was a long and difficult journey for them.
I would also like to thank all those who have helped me in some way
to complete the review of this book and whose names I have failed to
mention.
Sandeep Phukanhas more than eight years of experience in integration
technologies and Java. He currently works as an Architect in Anatas Consulting,
Sydney, a leader in Cloud Computing and next generation Enterprise Architecture
Solutions for Asia Pacific region. Earlier, he worked as a Technical Lead for Nokia
Siemens Network R&D, Bangalore, assisting on the integration of Next Generation
Unified Convergent Billing Systems based on Oracle Fusion Middleware 11g.
Prior to this, Sandeep worked with Oracle SSI, Bangalore as a Senior Consultant,
where his key involvement was Oracle AIA for Communications (Telco PIP). During
this period he travelled to several countries around the world, aiding customers in
developing customizations for Oracle AIA artifacts.
Sandeep is a certified Java Developer and has a keen interest in Low Bandwidth
Transports and Distributed Algorithms. During his time at Oracle SSI, he was
actively involved with the SSI Innovation Centre, where he created a number
of utility extensions to the Oracle SOA Suite. He also maintains an open source
repository of several SOA utilities in the Google code repository, http://code.
google.com/p/soalabs/.
Sandeep is also an avid researcher in the area of SOA Governance. He has published
a number of papers in the Oracle Technology Network (OTN) on technology neutral
Designtime Dependency analysis of SOA Artifacts. Reference One of his inventions
on this subject (Graph Based Designtime Dependency Analysis) has recently been
accepted for a Patent in the US Patents and Trademarks Office (USPTO).
I would like to thank my loving wife, Aparupa, for her patience
during those late night researches and my friends and colleagues at
Anatas, NSN, and Oracle who were always there whenever I needed
them.
Senthil Rajais a consultant with Cognizant focusing on SOA technologies with
three years of overall experience. He has been involved in development of SOA-based projects throughout his career. Senthil has a Bachelor of Engineering degree in
Electronics and Communications engineering from the Anna University.
I would like thank my colleagues for their help in reviewing
this book.
www.PacktPub.com
Support files, eBooks, discount offers and more
You might want to visit www.PacktPub.comfor support files and downloads related to
your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub
files available? You can upgrade to the eBook version at www.PacktPub.comand as a print
book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
service@packtpub.comfor more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up
for a range of free newsletters and receive exclusive discounts and offers on Packt books
and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book
library. Here, you can access, read and search across Packt's entire library of books.
Why Subscribe?
• Fully searchable across every book published by Packt
• Copy and paste, print and bookmark content
• On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access
PacktLib today and view nine entirely free books. Simply use your login credentials for
immediate access.
Instant Updates on New Packt Books
Get notified! Find out when new books are published by following @PacktEnterpriseon
Twitter, or the Packt EnterpriseFacebook page.
Table of Contents
Preface 1
Chapter 1: Overview of Oracle AIA 7
Various types of integration 8
Data integration 8
Functional integration 8
Presentation (UI) integration 8
Business process integration 8
Business to business integration 9
Integration architectures 9
Point-to-point 9
Shared data repository 10
Remote Procedure Call (RPC) 10
Message oriented middleware (MOM) 11
Web service integration 12
Service-oriented Architecture 13
What is Oracle AIA? 16
What is Oracle AIA Process Integration Pack? 16
Oracle AIA Foundation Pack concepts 17
Components of AIA Foundation Pack 21
Enterprise Business Objects (EBO) 22
Enterprise Business Messages (EBM) 22
Enterprise Business Services (EBS) 23
Enterprise Business Flow (EBF) 24
Application Business Connector Services (ABCS) 24
Oracle Enterprise Repository (OER) 25
Composite Application Validation System (CAVS) 25
Oracle AIA Reference Architecture 26
AIA Process Reference Model 27
Table of Contents
[ii ]
The role of Oracle Fusion Middleware 28
Oracle SOA Suite 11g 29
Summary 30
Chapter 2: Enterprise Business Objects 31
Overview of Enterprise Business Objects 31
Exploring EBO 33
Core EBO 35
Core EBO groups 35
Common EBO groups 35
EBO Components group 38
Business components 38
Reference components 39
Common components 40
Structure of EBOs 40
Custom EBO 41
Extending EBOs 42
Industry EBOs 44
Infrastructure components 44
Data types 45
Summary 46
Chapter 3: Enterprise Business Messages 47
Overview of Enterprise Business Message (EBM) 48
EBM characteristics 49
Exploring AIA EBMs 50
Structure of EBM 51
EBMHeader 53
EBMHeader components 55
EBMHeader child components 56
DataArea 62
EBM use cases 64
EBM request and response message 64
Summary 66
Chapter 4: Enterprise Business Services 67
Overview of Enterprise Service Bus 67
Role of EBS in AIA 69
Characteristics of EBS 70
Structure of the EBS definition 71
Definitions element 71
Types element 72
Message element 72
Table of Contents
[iii ]
PortType element 73
One-way operation pattern in EBS 73
Two-way or request and response operation pattern in EBS 73
Exploring Enterprise Business Service Library 74
Types of EBS 75
Entity type EBS 75
Process type EBS 77
Understanding the EBS architecture 79
Architecture for entity services EBS 80
Architecture for process services EBS 81
EBS Message Exchange Patterns (MEP) 82
Synchronous request and response pattern 83
Asynchronous fire and forget pattern 84
Asynchronous request and delayed response pattern 85
Steps to identify the message pattern 87
EBS design principles 88
EBS routing principles 89
EBS implementation 90
Constructing WSDL for process service EBS 90
Developing EBS using Oracle Mediator 91
Developing synchronous request and response pattern EBS 94
Developing asynchronous one-way pattern EBS 96
Developing asynchronous request delayed and response pattern EBS 96
Summary 97
Chapter 5: Application Business Connector Services 99
ABCS in AIA 100
ABCS Architecture 101
Validate 102
Enrich 103
Transform 103
Operate 103
Route 103
Key definitions of ABCS architecture 104
Design principles of ABCS 105
Designing ABM Schema 105
Developing ABCS 106
Developing ABCS using AIA Service Constructor 106
Developing ABCS manually using Oracle JDeveloper 120
Briefly about extending ABCS using Custom Code 124
Summary 124
Table of Contents
[iv ]
Chapter 6: Enterprise Business Flow 125
Overview of Enterprise Business Flow 125
Common characteristics of Enterprise Business Flow 126
EBF architecture 126
Building Enterprise Business Flow 128
Identifying service contract for EBF 128
Identifying the EBF candidate 128
Creating the service contract for an EBF 129
Building EBF as BPEL Service 131
Business use case for EBF 138
Summary 141
Chapter 7: AIA Security 143
Levels of security implementations 143
Transport level security 144
Message level security 144
Access control level security 144
Security in Oracle SOA Suite 145
Implementing security in AIA 146
Securing AIA services 147
Appling predefined policies to AIA services 148
Securing ABCS 152
Summary 153
Chapter 8: Versioning 155
Importance of version management 155
Services version management 156
AIA versioning 157
AIA versioning approach 158
Schema (EBO/EBM) versioning 159
Services (EBS) versioning 162
ABCS versioning 164
Summary 164
Chapter 9: AIA Design Patterns 165
AIA message processing patterns 166
Synchronous request and response pattern 166
Asynchronous fire and forget pattern 168
Asynchronous delayed response pattern 170
Guaranteed delivery pattern 172
Other message processing patterns 174
Service routing pattern 174
Competing consumers pattern 175
Table of Contents
[v ]
Asset centralization pattern 175
Data model centralization 175
Service contract centralization 176
Asset extensibility patterns 176
Extending EBO/EBM 176
Extending EBS and ABCS 177
Extending EBF and transformation 177
Summary 178
Chapter 10: Error Handling and Logging 179
Fault handling in BPEL 180
Business faults 180
System faults 181
AIA error-handling framework 182
Fault handling in AIA 184
Configuring AIA fault policy files 184
Customize the association between custom fault polices and bindings 187
Enabling error notification 188
Disable error notification 190
Updating MDS 191
Error logging 193
Enable trace logging 194
Enabling system/service level tracing 194
Configuring system log level 196
View logfiles 198
Summary 199
Chapter 11: Service Management Using Oracle Enterprise
Repository 201
SOA Governance 202
Design-time governance 202
Implementation-time governance 202
Run-time governance 203
OER as AIA repository 203
Configuring OER as AIA repository 204
Accessing AIA contents in OER 208
Project lifecycle workbench and OER 210
Business process modeling phase 210
Service design and construction phase 210
Deployment planning phase 210
Deployment phase 211
AIA Project Lifecycle Workbench 211
Harvesting design-time composites into OER 211
Table of Contents
[vi ]
Set up design-time harvesting using AIA Foundation Pack 212
Harvesting deployed composites into OER 212
Summary 213
Chapter 12: Composite Application Validation System 215
Composite Application Validation System testing framework 216
AIA architecture and CAVS components 216
Test Definition 218
Simulator Definition 218
Design prerequisites for CAVS enabling 219
Using CAVS user interface 220
Gathering test information 220
Create and execute a test definition using CAVS user interface 221
Create Simulator Definition using CAVS user interface 225
Enabling ABCS to route through CAVS 229
CAVS routing 230
Create routing setup ID in CAVS user interface 232
Summary 233
Appendix: Case Study 235
Sales and distribution 235
Business / data flow 236
Integration flow 237
AIA Integration Reference Architecture 238
Identifying EBO followed by EBM 239
Identifying EBS Service Operations from EBS WSDL 240
Defining ABCS process for application interfaces 241
Validating the integration interfaces using CAVS 242
Key benefits of using AIA 243
Summary 243
Index 245
Preface
Oracle Application Integration Architecture (AIA) Foundation Pack is a commercial
integration framework provided by Oracle Corporation. Oracle AIA provides a
systematic approach of building business process integrations for an enterprise that
helps it to consolidate their IT assets. Oracle AIA foundation pack also provides
a set of application independent Enterprise Business Objects, Enterprise Business
Messages, Enterprise Business Services, SOA based reference architecture, and
test methodologies that help to build uniform integration infrastructure. Using
AIA Foundation Pack, an enterprise can achieve quicker SOA adoptability and
reusability. Oracle AIA framework requires Oracle SOA Suites in both design time
and runtime environments.
The scope of this book is to provide the readers with essential details about various
AIA foundation pack components and the role of each component in integration
architecture. The book starts with generic integration architecture, approaches, and
importance of building application integrations using the SOA approach.
What this book covers
Chapter 1, Overview of Oracle AIArevisits the fundamentals of integrations,
advancement of integration using Service Oriented Architecture, and the role of
Oracle AIA Foundation Pack in the application integration scenarios. At the end of
this chapter, the reader will get a good understanding of various integration types
and an overview of Oracle AIA FP and its architecture model.
Chapter2,Enterprise Business Objectsexplains the concept of business objects, need
of business objects, Enterprise Business Objects (EBOs), various types of EBOs, and
physical locations of the EBO files in the Oracle AIA Foundation Pack. This chapter
also covers the need of customizing the EBO components.
Preface
[2 ]
Chapter 3, Enterprise Business Messagescovers integration messaging model, business
messages, web service messaging, and Enterprise Business Messages. Also, it
explains the relationship of an EBO and EBM in the AIA approach. This chapter
also covers the physical location of EBM in the AIA FP installation and the need for
customizing EBM.
Chapter 4, Enterprise Business Servicescovers the need of business services, web
service operations, and role of Enterprise Business Services in the AIA model. Also,
this chapter will help to find the appropriate WSDL file in the AIA FP path and
screen-by-screen instructions to build the EBS using JDeveloper.
Chapter 5, Applications Business Connector Servicescovers the role of ABCS in the AIA
approach, the need of ABCS, and screen-by-screen approach to build ABCS using
JDeveloper. At the end of this chapter, the reader will have hands-on experience in
building the ABCS component.
Chapter 6, Enterprise Business Flowcovers the need of business processes in
application integration and building business processes using Oracle BPEL. This
chapter also covers the systematic instructions to build the business processes by
making use of AIA components.
Chapter 7, AIA Securitycovers the various levels of security requirements for
application integrations and how Oracle AIA supports security through Oracle SOA
Suite. This chapter also explains the steps required to build AIA security by defining
security policies and securing ABCS.
Chapter 8, AIA Versioningcovers the importance of version management in
integration and versioning approach followed in AIA. This chapter also covers
versioning techniques for various AIA components including EBO, EBM, EBS, and
ABCS.
Chapter 9, AIA Design Patternscovers the various message exchange patterns with
diagrammatic explanations. This chapter also covers the AIA supported message
exchange patterns, asset management patterns, and so on. At the end of this chapter,
the reader will have a detailed understanding of various AIA integration design
patterns and samples.
Chapter 10, Error Handling and Loggingcovers the various type of faults including
business faults and system faults. Also, it covers the AIA error handling framework,
configuring fault handlers, error notification approach, and various logging
mechanisms supported by AIA configurations.
Chapter 11, Service Management using Oracle Enterprise Repositorycovers the SOA
governance models, introduction to Oracle Enterprise Repository, and service
management using OER. This chapter also guides the reader to import the AIA
configurations in the OER and harvesting design time configuration.
Preface
[3 ]
Chapter 12, Composite Application Validation Systemexplains the Oracle AIA CAVS
framework, CAVS role in the AIA approach, test definition, simulator definitions,
and CAVS user interface. As this chapter guides the reader to create and test
definitions and simulators using CAVS, the reader would get a basic understanding
of applying CAVS in the AIA project.
Appendix,covers a case study with real time scenarios, which explains how
AIA components are used to accomplish the integration requirement. The case
study explains the approach followed to identify the EBO, EBM, EBS, and ABCS
components required to build the integration for the real time use case. At the end of
this chapter, the reader should have a good understanding of how to approach AIA
integration project from design to implementation
What you need for this book
You will need the following software to be installed or required to configure Oracle
AIA Foundation Pack 11gR1 before you go through the chapters:
• Oracle SOA Suite 11g(11.1.1.5.0)
• Oracle AIA FP 11g(11.1.1.5.0)
• Oracle Express Edition XE (10.2.0.1)
• Repository Creation Utility 11.1.1.5.0
• JDeveloper 11.1.1.5.0
• SOA Extension for JDeveloper 11.1.1.5.0
• Oracle WebLogic Server + Coherence - Package Installer 10.3.5
• Oracle Enterprise Repository 11g(11.1.1.5.0)
Please refer to the Oracle installation documents for configuration, and install the
these software. Also, please ensure that you have sufficient systems configurations to
run these software.
Who this book is for
If you are a Business Analyst, Integration Architect, or a Developer working in
Oracle applications integration, who is looking forward to understanding Oracle
AIA fundamentals and development practice, then this is the best guide for you.
This book assumes that you have a fundamental knowledge of Oracle SOA Suite and
its components.
Preface
[4 ]
Conventions
In this book, you will find a number of styles of text that distinguish between
different kinds of information. Here are some examples of these styles, and an
explanation of their meaning.
Code words in text are shown as follows: "We can include other contexts through the
use of the includedirective."
A block of code is set as follows:
When we wish to draw your attention to a particular part of a code block, the
relevant lines or items are set in bold:
BankAccount…
EBM
BankAccountEBO
New termsand important wordsare shown in bold. Words that you see on the
screen, in menus or dialog boxes for example, appear in the text like this: "On this
page, refer to the Child Componentssection where we can find the ItemLotEBO as
a child component."
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Preface
[5 ]
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about
this book—what you liked or may have disliked. Reader feedback is important for us
to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to feedback@packtpub.com,
and mention the book title through the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing
or contributing to a book, see our author guide on www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to
help you to get the most from your purchase.
Downloading the example code
You can download the example code files for all Packt books you have purchased
from your account at http://www.packtpub.com. If you purchased this book
elsewhere, you can visit http://www.packtpub.com/support and register to have
the files e-mailed directly to you.
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes
do happen. If you find a mistake in one of our books—maybe a mistake in the text or
the code—we would be grateful if you would report this to us. By doing so, you can
save other readers from frustration and help us improve subsequent versions of this
book. If you find any errata, please report them by visiting http://www.packtpub.
com/support, selecting your book, clicking on the errata submission formlink, and
entering the details of your errata. Once your errata are verified, your submission
will be accepted and the errata will be uploaded to our website, or added to any list
of existing errata, under the Errata section of that title.
Preface
[6 ]
Piracy
Piracy of copyright material on the Internet is an ongoing problem across all media.
At Packt, we take the protection of our copyright and licenses very seriously. If you
come across any illegal copies of our works, in any form, on the Internet, please
provide us with the location address or website name immediately so that we can
pursue a remedy.
Please contact us at copyright@packtpub.comwith a link to the suspected
pirated material.
We appreciate your help in protecting our authors, and our ability to bring you
valuable content.
Questions
You can contact us at questions@packtpub.comif you are having a problem with
any aspect of the book, and we will do our best to address it.
Overview of Oracle AIA
Application integration becomes the most common project in every enterprise
and corporate. Integration is an important core component in IT systems. Oracle
Application Integration Architecture(AIA) is a framework based on a Service
Oriented Architecture approachthat provides proven methodologies and best
practices for integrating application systems. However, before we jump into
AIA, let's understand the need for an application integration and various
integration methodologies.
Small and large enterprises invest in building various business systems and
applications to facilitate business functions and growth. However, due to various
technology advancements, most of the applications and business systems developed
over a period are in different ages and capabilities. Many enterprises are quite
successful with their business applications, but not very successful in collaborating
the data and business functions. In earlier days, data collaboration between
applications systems was through manual entry that lead to a lack of data integrity
and human errors. In order to avoid the data integrity issue and human errors, most
of the investments were made towards integrating business systems. Therefore,
integration becomes one of the mandatory agendas in every quarter. Why is such
an investment going towards that? It is because of the organization's growth,
acquisition, partner relationships, lack of standards, and technology barriers.
In this chapter, we will revisit some of the fundamentals of integration and Oracle
AIA components. As part of that, the following topics will be covered:
• Various types of integration
• Integration architectures
• AIA and its flavors
• The Oracle AIA framework approach
• Components of AIA
• The Oracle AIA Reference Architecture
• The role of Oracle Fusion Middleware
Overview of Oracle AIA
[8 ]
Various types of integration
There are various types of integrations which are followed by enterprises and
industries. Integrations can be classified based on the need, scope, and architectural
approaches.
Data integration
Data integration is about transferring or sharing the information between business
systems and partners. In this approach, only the data will be shared between systems
and partners in the form of binary files, text files, documents, and objects. It does not
include sharing business functions and processes. Shared folders, file transfers, FTP
transfers, SQL loader, and ETL are the most common data integration mechanisms
used by many enterprises. These approaches have some limitations such as data
integrity, duplicate transfer, network failure, and delivery guarantee.
Functional integration
Most of the business application products and custom solutions provide API-based
interfaces for certain business functions or logic, which can be executed by external
systems. A functional integration has a more flexible approach when compared to
the data integration approach. In addition, functional integration encapsulates the
business functions and ensures that only certain functions are executed by external
systems. It also has a few limitations such as tight integration, increased dependency,
and so on.
Presentation (UI) integration
Presentation integration is about screen scraping and data capturing from the
application console and screens. This approach has many limitations and constraints
that force a limited success. In addition, it has challenges in maintaining data
integrity and security.
Business process integration
Process integration means collaborating various business functions and partner
programs to meet a long-running business process based on data integration and
business functional integration approaches. Process integration provides clear
separation of the business functions and integration interfaces.
Chapter 1
[9 ]
Business to business integration
As we know, B2B integrationis about collaboration between two different
enterprises, partners, or vendors through a domain-specific and standard-based
integration approach. Such collaboration includes data, business functions, and
process integrations. XML-based standards such as EDI, HL7, and RosettaNet are
widely-known B2B integration standards.
Integration architectures
There are various integration mechanisms or architectural approaches followed by
industries to achieve integration needs.
Point-to-point
This approach is also known as one-to-one integration. Point-to-pointis basically
a decentralized networking approach to directly link two computers or systems.
From the integration point of view, it is more about integrating two different
systems or interfaces through a common transportation mechanism. A point-to-point
integration architecture creates higher dependency between application systems and
interfaces as it basically enforces a tight integration model.
This approach initially shows a lower up-front investment, but when more links are
created between each application, the complexity of the integration increases. Once
the complexity increases, it becomes difficult to customize or enhance the interface.
This approach also requires updating each integrated application if any one of the
systems require changes in the interface data model. This approach is depicted in the
following diagram:
Overview of Oracle AIA
[10 ]
Shared data repository
Basically, a centralized database repository will be shared across all applications
and systems for information distribution. The central database system will act as
an integration point. The database schema accepts all applications' input and also
provides access to other systems which require that information. This approach
increases the complexity in the database systems and a schema should be more
generic. This approach also loads more complexity at the application's side as
publishing or fetching the data from the repository has to handle all validation and
elimination logic. Therefore, this approach increases the maintenance overhead. This
approach is depicted in the following diagram:
System C
Data Repo
System D
System A System B
Data Repo
Remote Procedure Call (RPC)
Remote Procedure Call(RPC) is a protocol-based integration approach where
one application or system calls the service or the function hosted by another
remote application over the network. Basically, RPC uses a client-server model
for communication. In addition, RPC works as a request-reply approach, so the
requesting systems have to wait for the response from the provider system. Even
though the entire communication happens over the TCP/IP network, applications
don't need to implement the underlying networking procedures and protocols.
System A System B RPC
Chapter 1
[11 ]
As the end-to-end communication happens over TCP/IP, it is considered an
expensive solution. In addition, this approach will affect the performance as
compared to other approaches. Java RMIand CORBAare well known technologies
that work based on the RPC model, which is a subset of the TCP/IP protocol.
Another disadvantage of this approach is that both systems that interact with each
other should interpret the language-dependent objects sent over the network.
Message oriented middleware (MOM)
Message oriented middleware is an infrastructure-based integration approach where
distributed systems and applications share data/information as messages over the
network. This is the most popular and efficient integration architecture adopted by
many enterprises. Comparing to the preceding approaches, the message oriented
integration approach facilitates loose coupling, less dependency, and high reliability.
The MOM architectureis, basically, built around the Message Queue(MQ)and JMS
using a messaging broker. A message broker is a server mechanism that persists
messages and tracks message deliveries. Typically, a message oriented integration
approach follows a publish/subscribe pattern. Most of the messaging brokers are
based on Java Messaging Service(JMS)standards. IBM WebSphere MQand TIBCO
EMSare based on JMS standards. AMQP(Advanced Message Queue Protocol)is
another messaging standard which is being followed by brokers, such as Apache
Qpidand Rabbit MQ.
System A
Publish
Message Queue
System C
System B
Subscribe
Deliver
Subscribe
Deliver
The MOM integration approach is widely adopted in the bulk or large volume of
data transfer between multiple systems. As the nature of this architecture supports
data exchange between various systems, it also has some limitations. The MOM
approach does not support the synchronous request/response message exchange
pattern. Moreover, the MOM approach does not enforce any open standardization;
so many product vendors have their own implementation approach and standards.
Overview of Oracle AIA
[12 ]
Web service integration
Web services are open standard-based integration mechanisms which help to
establish loosely-coupled integration communication between application systems.
Web service provides an interface that can be consumed through an XML-based
messaging model over various protocols. There are two types of web service
implementations which are SOAP-based web services and REST architecture-based
services. As web services are loosely-coupled interfaces, they are being used for the
enterprise application integration by exposing legacy application functions. A web
service-based integration is basically a point-to-point integration model. However,
due to its open standards approach, it is easier to implement and reuse so that
it is being adopted widely for the past few years. Web service interfaces are the
fundamental for building SOA and BPM solutions.
Service Consumer
SOAP Response
Service Provider
SOAP Request
WSDL
Service Registry
WSDL
Provide WSDL
WSDL
Publish WSDL
The web service integration approach is based on the following open standards:
• XML: It is a text-based meta language that helps to define a uniform
messaging model
• XML schema: It is an XML-based metadata definition based on W3C
standards
Chapter 1
[13 ]
• SOAP: A messaging protocol for exchanging structured information
• WSDL(Web Service Description Language): It is a descriptive artifact
which elaborates service operations, input message structure, output
message structure, data binding, and service endpoint URI
• REST(Representational State Transfer): It is a style of architecture for
service-based integration
• WADL(Web Application Description Language):It is similar to WSDL, but
WADL elaborates the RESTful service interfaces and operations in the form
of XML
SOAP and REST Web Services are two different styles of service
implementation. The SOAP Web Service is basically a standards-based
interface whereas REST is an architecture style of interface which
provides access to the enterprise resources. The REST-based Web
Service architecture best fits for CRUD (GET, PUT, POST, and DELETE)
operations only. SOAP-based Web Services are basically meant for
implementing complex business functions, which could be consumed
by known or third party systems. The SOAP Web Service enforces
policy and contract agreements.
Service-oriented Architecture
Service Oriented Architecture(SOA) is a style of architecture which is based on
services, open standards, and principles. The SOA approach basically decouples the
enterprise system as reusable service components and orchestrates those services to
meet various business processes and integration requirements. SOA is predominantly
implemented by using web services, enterprise service bus, and process orchestration
technologies. As mentioned in earlier sections, each older integration approach has
some limitation and complexity, which prevents the adoption of such solutions at
the enterprise level. In addition, these approaches tightly integrate the application on
a point-to-point basis. Therefore, it takes an enormous amount of effort and cost to
enhance and align integration interfaces to meet the dynamic business requirements.
However, SOA principles are enforcing to build service components as loosely-coupled, transport independent, reusable, and highly collaborative. The web services-based service architectureprovides a better control in building open standard services,
business processes, and an integration interface that helps to quickly align when
needed. SOAP, BPEL, and WSDL are common open standards which are being used to
build services and business processes.
Overview of Oracle AIA
[14 ]
Notes:
There is a wrong perception that web services are SOA. Web services
basically help to build loosely-coupled interfaces. Even if an enterprise
has more than 100 web services, it does not mean that the enterprise has
an SOA infrastructure. Service Oriented Architecture means basically,
decomposing enterprise business processes and functions as services,
and building business processes by orchestrating the services. This can
be achieved by using various frameworks and technologies. However,
web service is the most commonly adopted approach to implement such
architectures. The SOA approach also requires governance and monitoring
methodologies to identify the improvement opportunities. Therefore, web
services are just integration interfaces and do not mean SOA.
As the Oracle AIA productis based on SOA principles and standards, let's have an
overview of the service-oriented architecture, tools, and technologies in more detail:
Presentation Services
SOA Layer
Business Processes Services
Service Monitoring and Management
SOA Governance and Policy Management
Service Security and Policy Enforcement
Event
Processing
Batch
Processing
Messaging
Services
Services
Virtualization
Business
Rules
Business
Services
Utility
Services
Data
Services
Adapter
Services
Infrastructure
Services
Third Party
Services
Internal&External Applications
Service
Repo
Chapter 1
[15 ]
The preceding diagram expresses the typical SOA reference architecture. The SOA
reference architecture is used as a blueprint that includes components of solution,
guidelines, and development templates for stakeholders, business analysts,
architects, and development teams. The reference architecture should outline the
layers of service-oriented solution, infrastructure components, architecture layers,
building blocks, design guidelines, and policies standards.
The SOA reference architecture should represent various service components
involved in the enterprise infrastructure. Typically, the SOA reference architecture
should have infrastructure component layers, core business services, adapter service
for exposing legacy application functionalities, third party integration services,
data/information access services, infrastructure services such as an e-mail services,
messaging services, and so on. All such services are consumed by business processes
in an orchestrated mode to meet business process requirements. Such business
processes are also services which will be triggered by the user interface components
or other events.
A service-oriented architecture approach facilitates the creation of most flexible
and reusable service components by exposing new and existing IT assets. Basically,
this approach enforces to build business functions and resources as services which
should be orchestrated to achieve business processes. This also includes integrating
business systems with partner services. An SOA approach can be implemented on an
application level, a program level, or an enterprise level. However, building mature
services and business processes at an enterprise level should boost the return on
investment and robotic solution.
Even though the architecture does not enforce it, building a highly-matured
enterprise level, service-oriented solution requires a variety of tools and technologies,
including web services, Canonical XML, Application Servers, Messaging Services,
Enterprise Service Bus (ESB), BPEL, Business Process Management (BPM), Business
Rules Engine, Adapters, Complex Event Processer, Business Activity Monitors,
Service Registry, and Repository and Security. The Oracle Fusion Middleware
platform includes all these tools and technologies in addition to portals, data
clustering, and application development frameworks.
Implementing an optimized enterprise service-oriented solution is more complex
than the traditional software development approach. It also requires well-defined
implementation methodologies and governance to be succeeded. Designing
reference architectures is one of the critical phases in the implementation lifecycle.
Overview of Oracle AIA
[16 ]
What is Oracle AIA?
The Oracle Application Integration Architecture is a complete standards-based
integration and processing framework promoted by Oracle Corporation based on
the Oracle Fusion Middleware platform. The AIA framework is designed and built
based on the various collections of SOA best practices, principles, and standards.
Therefore, an AIA approach provides an SOA-based integration framework, reference
architecture, implementation methodologies, and best practices for integrating various
business applications. This approach helps to build the application integration and
enterprise business processes as more generic and align those processes to meet
business requirements. The AIA integration approach also helps to build a Plug-and-Play integration solution which lowers IT costs, is faster to build, aligns quickly, and
reduces the maintenance overhead. It also addresses the SOA design pain points, such
as service decomposition, granularity and standard adoption.
AIA facilitates enterprises to use the existing application assets to build composite
business processes and integration solutions. Oracle has a variety of application
products which require an integration solution to seamlessly collaborate with each
other. Oracle has understood the importance of integrating its application products,
so Oracle provides best practices and reference solutions to build such integrations.
Oracle has two flavors of AIA products for its customers. Based on the customer's
need and scope, a customer can choose from the following flavors:
• Oracle AIA Foundation Pack
• Oracle AIA Process Integration Pack
What is Oracle AIA Process Integration
Pack?
Oracle AIA Process Integration Packs(PIPs) is a prebuilt integration package across
Oracle's application solutions such as Siebel CRM, PeopleSoft, Oracle E-Business
Suite, Agile PLM, Portal, and SAP. As PIP is a prebuilt package, it facilitates Oracle
customers to rapidly deploy it to meet immediate application integration processes
for Oracle applications. PIP packs are available not only for Oracle application's
integration, but also for various domain-specific processes, such as driver-management for transportation, communication and revenue management for
accounting, and so on.
Chapter 1
[17 ]
Assume that we have to integrate an Order-to-Cash process flow between the Siebel
CRM and Oracle EBS application, and the prebuilt PIP package is already available
with Oracle. In a traditional SOA integration approach, we need to validate the
application interfaces, messaging schema model, domain-specific standards to make
decisions on the interface architecture, standards for messaging structure, data
transformation, service interface description, discovery, and many more. All these
tasks require enormous effort in analysis, design, development, and testing phases.
Oracle AIA PIP implementation eliminates most of these efforts and helps to quickly
adopt the AIA approaches. All we have to do is purchase the package, align the data
models, and deploy in various environments as per the guidelines. At the time of
writing, there are more than 25 prebuilt integrations and business process solutions
available and they continue to grow. All these processes and integration solutions
are built based on the Oracle AIA Foundation Pack framework. Customers who
already have made a lot of investment in Oracle products and want to adopt SOA
quickly can benefit from PIPs the most.
The scope of this book is to explore the Oracle AIA Foundation Pack 11gR1 and it
does not cover Oracle AIA Process Integration Pack in depth. Let's discuss a little
more about Oracle AIA PIP before getting into the AIA Foundation Pack.
Oracle AIA Foundation Pack concepts
Oracle AIA Foundation Pack is an SOA-based integration framework that includes
building blocks of various components. The AIA building block components help
to build complex end-to-end integration solutions based on a schema, an abstract
or concrete WSDL, and a BPEL or Bus Component and Composite. The Oracle AIA
Foundation Pack introduces a standard-based approach to integrate enterprise
application systems as process-oriented composite application architecture. A
composite application includes building an application solution with a combination
of multiple service components, business functions, infrastructure services, business
objects, rules, and business processes. Oracle Fusion Middleware helps to build such
composite applications, and it can also be used to build the components of composite
applications. As Oracle AIA components are running on Oracle SOA Suite, the
composite approach could be easily adopted in Oracle AIA.
Overview of Oracle AIA
[18 ]
For better understanding, let's start from a simple point-to-point integration
approach. In a point-to-point integration approach, the message/request object
should be submitted by the requesting application to the provider application. The
communication between the requester and provider could be through a file transfer,
an HTTP request/response, a SOAP protocol, or a direct API call. In that case, there
is no intermediate compound or layer involved in this approach. It is the requesting
application's responsibility to build the message in the format that is accepted by
the provider. In addition, the requesting application should transform the response
message received from the provider into its own format. Therefore, the requesting
and providing applications should communicate directly, as depicted in the
following diagram:
Requester Application
Request Message
Response Message
Provider Application
The SOA best practices dictates that there should be an easily extensible canonical
model between the two services, so that additional services can be accommodated
with minimal changes later. Service virtualization should be used, so that the
requesting services and the providing services are de-coupled, and orchestration
is done with extensibility points. Therefore, to eliminate the tighter integration,
we need to build a common canonical and standard interface middle component
to handle all messages. This common intermediate component should handle
messages in the standard data format, layout, and business process flows as services.
In addition, this component should be deployed in common platforms, so that all
applications could consume these services. The common platform should be hosted
in a service-oriented infrastructure. As it is a common platform for applications
to meet the standard, there should be a transformation component which should
transfer the messages that are received from the application to the common standard
layout. The transformers are used to map between application-specific messages and
a canonical data model. Therefore, communication will navigate through standard
layout-based services. There should be a transformer component at the provider
application side which should reformat the message from middleware standard
format into the provider format. This approach removes the transformation and
message formatting responsibilities from the requesting and providing applications.
Chapter 1
[19 ]
In addition, the common standard-based middleware can be utilized by other
applications which requires message routing and transformation services from the
provider. This procedure is depicted in the following diagram:
Oracle Fusion Middleware
AIA Composite Application
Transformer Services
Transformer Services
Message Model
& Business Services
Requester Application Provider Application
Middleware
The preceding diagram represents the role of Oracle Fusion Middlewarein AIA.
The Oracle Fusion Middleware is used as a platform where AIA components are
deployed. In the enterprise infrastructure environment, there is a high possibility of
having more integration components and business services for all applications. Such
environments require a centralized single service reference registry and repository
for all schema and WSDL, where the requesting application identifies and chooses
appropriate services for specific integration requirements. If there is no similar
service available, then enforce to develop new service components and publish those
to the service registry for reference.
Overview of Oracle AIA
[20 ]
In addition, such a service integration approach requires an effective error handling
mechanism, service and message level security, and integration testing framework
to facilitate the integration development. The combination of all these components
makes the entire integration a highly mature service-oriented integration platform.
This is all about the Oracle Application Integration Architecture framework
and approach.
Oracle Fusion Middleware
AIA Composite Application
Transformer Services
Transformer Services
Message Model
& Business Services
Requester Application Provider Application
Middleware
Automated Testing Suite
Repo
The following are the features of the Oracle AIA Foundation Pack:
• Helps to build a standard-based integration architecture between enterprise
applications
• Highly robust integration framework for building service-oriented
integration architecture
• Supports a high volume of transactions for enterprise mission-critical
applications and infrastructure
• Ability to encapsulate the functionalities provided by Oracle applications
and other enterprise application systems
• Supports business process decomposition, analysis, service design, service
construction, process definition, and deployment/upgrade plans
Chapter 1
[21 ]
• Supports monitoring integration services and process flows at runtime
• Supports design and runtime artifact governance
Components of AIA Foundation Pack
So far, we have seen the Oracle integration approach and various components (in
general) involved in building a service-oriented integration. In essence, the AIA
Foundation Pack is a set of artifacts that are used to create, govern, and maintain
the SOA-based integration. Now we have to explore the various components of the
Oracle AIA Foundation Pack.
Oracle Fusion Middleware
AIA Composite Application
ABCS
ABCS
AIA EBO,EBS
& EBF
Requester Application Provider Application
Middleware
CAVS OER
EBM
EBM
Application
Specific
Message (ABM)
Application
Specific
Message (ABM)
The Oracle AIA Foundation Pack includes several components to meet various
standards and best practices to build the enterprise-level application integration
architecture. The following is a list of components that AIA includes, and will be
explored in this book:
• Enterprise Business Objects (EBO)
• Enterprise Business Messages (EBM)
• Application Business Connector Services (ABCS)
• Enterprise Business Services (EBS)
Overview of Oracle AIA
[22 ]
• Enterprise Business Flow (EBF)
• Enterprise Repository (ER)
• Composite Application Validation System (CAVS)
As this book covers all preceding components in the following chapters, we will
have a brief overview of each component in this chapter.
Enterprise Business Objects (EBO)
An EBO is essentially a design-time view of business entities. In technical terms,
it defines the schema of the message types which can be exchanged between
different components of AIA. As we have seen in the last section, AIA provides
a standard-based integration approach through its centralized component. If we
define the standard-based object for all integration communication, it prevents tight
integrations and it is easier to manage integration challenges and modifications.
EBO is standard-based common business objects that are known to business data
models such as sales orders, claims, medical records, customers, and so on. A
business objectis a highly generalized business entity and has been carefully
made to be as exhaustive as possible. Therefore, it abstracts the data models at a
higher level (application independent canonical model). Therefore, the integration
developed based on the AIA approach provides a higher flexibility to manage lower-level changes without changing integration objects and messages. This approach
also eliminates the effort required for requesting applications to accommodate the
messaging changes. Therefore, EBO helps to design and develop messaging objects
at once and reuse as much as possible. Each EBO will be defined in the XML schema
(XSD) and refer to each other wherever applicable, minimizing redundancy and
promoting reusability.
Enterprise Business Messages (EBM)
An EBM is an EBO that is used in a particular context. It is the message that is
exchanged between services at runtime. While EBOs represent the XSD or the
schema for a business entity, an EBM represents the concrete XML in a particular
context. For example, a SalesOrderEBOused for the creation of a sales order is
a Create SalesOrderEBM, a SalesOrderEBO used for deletion of a SalesOrder
is a Delete SalesOrderEBM, and so on. Therefore, an EBM is one or more EBOs
and a verb, or action, used in a particular context. EBSs also exchange XML-based
messages between two applications as part of request/response communication.
However, EBMs includes business tasks or function-specific enterprise business
objects. An EBM could be a generic messaging payload or a content-specific message
payload.
Chapter 1
[23 ]
In addition, EBM may include one or more EBOs in the same message. As the
fundamental messaging architecture does not hold any underlying transportation
mechanism, EBM also supports the transport of natural messaging.
In the messaging architecture, a message includes a header and body.
The header helps to carry message-specific metadata information
between applications. This header information is used for security, client
application ID, and environment-specific information. In the enterprise-service architecture, the header plays a crucial role to keep track of the
message information for monitoring and auditing purposes.
Enterprise Business Services (EBS)
Enterprise Business Services(EBS) is a core component in the AIA-based
integration approach. EBS is an independent service component based on web
service interfaces which helps to execute business tasks and functions. EBS, typically,
consists of an abstract WSDL and service routing component. The WSDL defines
service operations, messaging patterns, and XML payloads for each operation.
Enterprise business services are coarse-grained web services that accept EBM as
a message payload from the requesting application, routing the message, and
finally, responding back to the requester in the EBM format. EBS makes sure that
the interfaces to underlying services are standardized, and helps to specify the
granularity of the service. It is an independent service, but can also communicate
with other EBSs.
In an SOA approach, web services can be implemented at different levels
or layers. This is called service granularities. There are two levels
of granularity which are typically practiced. They are Fine-grained
and Coarse-grainedweb services. Implementing web services at a
lower level are Fine-grained web services, such as update the customer
address. Coarse-grained web services are at higher/generic level, such as
account service.
Overview of Oracle AIA
[24 ]
Enterprise Business Flow (EBF)
Enterprise Business Flowis used for orchestrating flows between two or more
services exposed through EBS or other EBFs. EBFs are basically business processes.
Business processes are organizational processes being followed to fulfill certain
business goals. Such processes are required to interact with various divisions or
business group's business activities. Processes kick off by a particular business
event, then a process executes various business activities in a step-by-step or
orchestrated approach. EBF is nothing but a business process component for Oracle
AIA. Oracle AIA supports business processes' orchestration by executing various
EBS components defined in the enterprise integration environment. AIA delegates
all orchestration flows into the business services and shields such flows clearly from
the Application Layer. The logic behind this is that the core business logic of an
integration changes rarely as compared to the application side or end applications.
Therefore, changes at the application end do not necessarily necessitate changes to
the Business Flow layer represented by EBFs. In AIA, all processes are also exposed
as EBS interface through web services.
Application Business Connector Services
(ABCS)
As we have seen earlier, one of the best approaches is to have a validation and
transformation component for each service, which integrates applications through
Oracle AIA. Application Business Connector Service(ABCS) helps to bridge the
gap between AIA EBS and application-specific data models. ABCS is responsible
for validating the input request, transforming the message, enforcing security, and
handling errors. ABCS can be requester-specific or provider-specific. The requestor
is defined by the consuming application and the provider is defined by the service
provider application. A requestor accepts the input message in an application
specific format (ABM) and sends the response using the same format. A provider
accepts the input from EBS or directly from a requester in EBM (common canonical
data) and sends the response through the same channel. In addition, the provider
ABCS plays a crucial role in exposing application business functions as services,
which cannot be directly exposed as AIA's EBO.
Chapter 1
[25 ]
Oracle Enterprise Repository (OER)
In the enterprise SOA infrastructure, application business components, functions,
processes, and resources are decomposed as business services. Therefore, in a
typical enterprise environment, there is a high possibility of having hundreds of
business services. It is highly difficult to manage the lifecycle of enterprise services
and processes. There is a need of repository to handle service lifecycle, version
management, monitoring, and auditing. Oracle Enterprise Repositoryprovides
such an enterprise-level service governance support, which is also an integral part
of Oracle AIA FP 11g. The earlier version of Oracle AIA (Oracle AIA 2.4 and 2.5)
supports Business Service Repository(BSR). However, the Oracle AIA Foundation
Pack 11g release 1 consolidates the BSR functionalities with OER.
If you are using Oracle AIA 2.4 or 2.5 and would like to migrate to
Oracle AIA 11g Release 1, you must migrate all your AIA service
components from the BSR version to OER. Oracle provides a separate
migration guide for its customers.
Composite Application Validation System
(CAVS)
So far, we have seen the various core components of the Oracle AIA Foundation
Pack which help to build the AIA approach-based integration solutions. As we know
how development components are important in an integration solution, similarly,
validating the integration solution is very important to produce a quality product.
The Oracle AIA-based integration approach may invoke various business functions
of application systems. Therefore, validating such an integration invocation through
a simplified testing framework provides more flexibility. Oracle AIA Composite
Application Validation Systemis a testing simulation framework which helps to
invoke EBS, ABCS, and EBF in real-time scenarios. CAVS also includes a validation
framework, service simulator, error handling configuration, and test repository to
store the testing definitions and other user interfaces.
Overview of Oracle AIA
[26 ]
Oracle AIA Reference Architecture
In general, designing and implementing an SOA integration solution is a very
complicated process. The SOA implementation requires a strong roadmap and
implementation lifecycle to succeed. An iterative development methodology-based implementation lifecycle fits best for the SOA implementation. In addition,
the reference architecture plays a crucial role to eliminate the design complexity
and redundancy. In a real-time scenario, if we want to construct a corporate office
building, we need an architectural blueprint for construction. Similarly, the SOA
reference architecture acts as a blueprint for the enterprise SOA implementation.
The Oracle AIA reference architecture modelis almost similar to the SOA reference
architecture, as seen in the following diagram:
Utility Business
Services
Service Monitoring and Management
SOA Governance and Policy Management
Security
Enterprise Business Systems
Business Process Layer
Business
Registry
Core AIA Services Layer
Oracle Fusion Middleware Platform
Enterprise Business
Objects Enterprise Business
Messages
Enterprise Business
Services ABCS
Business Process
Flow
Process Integration
Pack
The preceding diagram represents the AIA reference architecture based on the
SOA reference architecture approach. As we have seen, the entire AIA application
solution should be deployed in the fusion middleware to get service-oriented
advantages. If we look at the architecture, we will find that the complete solution is
separated as two layers. Basically, this increases the performance of the integration
solution. In the architecture world, we should design the solution with simplified
layers to increase the performance and reduce latency.
Chapter 1
[27 ]
Similarly, the AIA approach requires building an integration solution by the AIA
core service layer and business process flow layer. All the AIA service components
should be grouped together as part of the core service layer. The AIA components
such as EBO, EBM, and EBS are part of the core service layer. All these core
services are consumed to build EBF and business processes. The Oracle Enterprise
Repositorycould play the role of service repository where all AIA business
services can be registered. As the AIA integration solution deployed in the fusion
middleware platform, securing services, policy governance, and monitoring can be
implemented using fusion components.
Now the question is to identify the processes and business services to define the
reference architecture. Oracle has suggested a process reference model in which a
collection of best practices is gathered from various Oracle application customers.
AIA Process Reference Model
The Oracle AIA Process Reference Model is a proven best practice collected from
and based on previous application integrations. This approach helps to identify
the business processes, business activities, and build repository to keep track of the
evaluation of the processes. This model is depicted in the following diagram:
Business
Process
Business
Activity
Business System A
Task Task
Business
Activity
Task Task
Business
Activity
Task Task
Business System B Business System C
Overview of Oracle AIA
[28 ]
Business processes are a collection of coordinated business tasks and business
functions distributed across various business systems, which are executed in order
to meet the organized goals. Some of the business processes that we would have
come across are Order-to-Cash and Claim processes. Business activities are a set
of tasks that execute a business function such as credit payment processing, order
fulfillment, and so on. Finally, a task is a small activity which does not have any
dependency on other tasks and activities such as create customer, check order status,
and so on. In the composite application development, we can follow the top-down
drilling approach to identify the business processes and its activities, and expose
those functions as business services. Once the business tasks and activities are
identified, we then need to build the business process workflow to meet the process
requirements.
Apart from regular processes and business components, there are other utilities
services that should also be designed as per the AIA reference architectures, which
include e-mail notifications, adapter services for legacy integration, validation
services, data set processing, and so on. Such services are grouped together as utility
services which can be used by AIA integration solutions. This approach also helps to
reuse such services for future requirements.
The role of Oracle Fusion Middleware
The Oracle Fusion Middleware is an enterprise platform that provides solutions
for various enterprise needs. Fusion middleware supports a variety of standards
for integration, business processes, business intelligence, web development,
content management and hosting servers, enterprise governance, and so on. One
of the primary integration and process implementation components in the fusion
middleware includes Oracle SOA Suiteand Oracle Service Bus. The Oracle SOA
Suite is built based on various patterns from enterprise application integration and
service-oriented architecture.
Chapter 1
[29 ]
Oracle SOA Suite 11g
The Oracle SOA Suite is a set of components used to build mature, service-oriented
architecture at an enterprise level. It is a central component in fusion middleware.
The Oracle SOA Suite provides components for enabling services for existing
applications and infrastructure assets, securing the service components, orchestrating
services to build business processes, and building service composite applications.
The following are the componentsof the Oracle SOA Suite 11g product:
• Oracle Mediator
• Oracle Technical/Application Adapters
• Oracle BPEL Process Manager
• Human Workflow
• Oracle Service Bus
• Oracle Business Rules
• Oracle Enterprise Manager
• Oracle Complex Event Processing
• Oracle B2B
• Oracle Web Service Manager
• Oracle Business Activity Monitor
• Oracle Metadata Repository
• JDeveloper IDE
The Oracle SOA Suite is the foundation technology for Oracle AIA. The Oracle SOA
Suite helps to build the AIA integration application by using various components,
such as mediator, Oracle service bus, Adapters, Oracle BPEL process manager, and
so on. The mediator is used to build the EBS component, whereas BPEL is used to
build integration ABCS, EBF components of AIA. As the AIA approach is based on
service-oriented principles, the Oracle SOA Suite best fits for implementing
AIA solutions.
Overview of Oracle AIA
[30 ]
Summary
In this chapter, we have seen the various application integration requirements and
architecture methodologies. Oracle AIA provides a standard-based application
integration framework to build highly-scalable, processes-oriented integration
solutions for enterprise assets. In addition, we have seen a brief overview of AIA
concepts and integration approaches using Oracle SOA Suite.
The following chapters in this book cover more details about AIA components and
one real-time use case of an AIA implementation.
The next chapter will cover the primary core component of the AIA approach,
Enterprise Business Object(EBO), including the following topics:
• An overview of EBO
• Elements of EBO
• Exploring EBO
• The physical structure of EBO
• Various domain-specific EBO components
• Extending EBO
Enterprise Business Objects
In this chapter, we are going to learn the core component of AIA called Enterprise
Business Objects. A business object is a set of business entities combined to meet
specific business goals such as a sales order, product, or bank account.
The following topics are covered in this chapter:
• Overview of Enterprise Business Objects
• Exploring EBO
• Core EBO
• Common EBO Groups
• Infrastructure components
Overview of Enterprise Business Objects
Enterprise Business Objects (EBOs) are a highly grained set of business entity
objects, which are used for business information sharing across enterprise business
applications. These have been defined using information from several best of
breed applications and standards. EBOs define all business information required
to accommodate AIA-specific business integration. These are basically used for
standard-oriented canonical business data models such as sales order, claims,
medical records, customer information, and so on. Understanding EBOs and EBMs
is much easier if you are familiar with canonical XML, XSD, and Web Service
messages. Even though EBOs have been defined from information available from
several applications, they themselves are not attached to any specific application and
represent a generic standard based on a canonical model. In a typical integration
approach, source and target system data models should be mapped directly from
object to object. This type of approach is increasing the risk of frequent modification
in the mapping if any one of the system modifies its data model. Oracle AIA EBO
componentseliminate this risk by providing a data model at abstract level. This
approach will also minimize manual coding, data transformation, and validations.
Enterprise Business Objects
[32 ]
For example, a sales order arises from two different applications, say A and B,
containing two different definitions for sales order. If an application X wants
to communicate with both A and B, it is necessary for X to transform messages
separately for both A and B. Instead, if a formal definition of a sales order were to
be made available, say SalesOrderFormat, which abstracts from the definitions
underlying both systems A and B, then the application X can simply transform to
the SalesOrderFormatand communicate with both applications seamlessly. This
is the rationale behind EBOs—to create a standards-based abstraction of known
business entities that is as exhaustive as possible so as to reduce direct mapping
and streamlining data models. AIA extends this concept further to include standard
guidelines not only for the content of the EBO, but also for the way in which an EBO
is designed, named, versioned, and extended.
The EBOs are in the form of XML Schema Definition(XSD). Also, the EBO structure
and design is based on the UN/CEFACT XML Naming and Design Rules. It is also
based on the XML Naming and Design Rulesby OAGISand UN/CEFACT Core
Component Technical Specification. Each and every EBO includes two schema
models; one presents the definition of that EBO and another presents the definition
of operations (functions) that should be executed by that EBO. EBO does not act
independently in the Oracle AIA or Fusion infrastructure; however, it is part of
Enterprise Business Messages (EBM) and Enterprise Business Services (EBS).
As EBOsare in the form of XML schema, EBOs follow the best practices in the
industry and that includes:
• XML Schema root elements (xsd:schema) should be defined using attributes
elementFormDefault="qualified"or "unqualified".
• The XML version=" "attribute should be used to indicate the actual
version of the schema.
• All namespaces used in the XML schema must be identified in the xmlns
attribute at root element level.
• The targetNamespaceattribute should be used to identify the target
namespace in the XML schema.
• XML schema namespace should be used as xsd.
Chapter 2
[33 ]
Notes:
• Even though Oracle AIA installation and configuration is out of
scope for this book, there are a few steps that should be executed
properly to install Oracle AIA FP 11g successfully.
• Install Oracle Database or Oracle XE and it should start running.
• Install Oracle Repository Creation Utility (RCU), which should
connect to database and create necessary SOA and BPM
repositories.
• Install Oracle WebLogic Server 11g and Oracle SOA Suite 11g, and
configure the SOA domain prior to installing Oracle AIA FP 11g.
Start running the SOA Domain.
• Install Oracle AIA 11g (preferably complete installation).
• Oracle AIA can be installed as complete installation or manually.
Exploring EBO
Oracle AIA Foundation Pack 11g installation brings a set of predefined EBO schemas
packed in the directory structure. The following screenshot will show the physical
structure of the EBO groups as directories:
Enterprise Business Objects
[34 ]
Oracle AIA enterprise objects (EBOs) are grouped as three packages based on
the business model of the EBO, which are Core, Industry, and Infrastructure
components:
Core EBOs
Industry EBOs
Infrastructure EBOs
Oracle AIA EBOs
• The Core EBO includes fundamental business objects that are used for
various business integrations. The EnterpriseObjectLibrary/Core/EBO
folder contains EBOs for common business use case such as, sales orders, bill
of materials, bank account, project, shipment plan, and so on.
• The Industry EBOsinclude various specially-designed industry-specific
EBO components. The industry business object folder can be found under
EnterpriseObjectLibrary/Industry:
° Banking and wealth management
° Communications
° Health science
° Insurance
° Public Sector
° Utilities
Infrastructure componentscan be found under EnterpriseObjectLibrary/
Infrastructure/. Infrastructure components do not include generic EBO
components. They are basically fundamental data types, code lists, and other web
services components. Also, infrastructure components include the custom data types
and other metadata components designed for specific requirements.
Oracle AIA Foundation Pack 11gincludes enterprise objects and other artifacts
necessary to build AIA solutions. Enterprise Object Library(EOL)comes under
AIA Metadata and AIA Component's folder structure. In a typical AIA installation,
the Enterprise Object Library is located under the $AIA_HOME\AIAMetaData\
AIAComponents\EnterpriseObjectLibraryfolder.
Chapter 2
[35 ]
Enterprise Objects Library folder contains both EBO and EBM components. EBMs
are a custom view of EBOs and business entities. EOL includes two varieties of EBO
components, which are core EBO components and industry-specific EBO components.
Core EBO
As the name indicates, Core EBOs are a set of common business objects. AIA FP R1
has more than 90 core EBO components, which are used to integrate with various
Oracle Apps solutions. In order to identify and browse the list of EBO objects, open
the EBOIndexhtml file in the html viewer:
$AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Core/
EBOIndex.html
Oracle AIA Core EBOs includes four different groups of EBOs, which are known as
Common, Common EBO, Custom, and EBO. Oracle AIA maintains all the versions of
every EBO component to support backward compatibility.
Core EBO groups
The following packages are parts of Core EBO. All the following groups are
separated as folders under Enterprise Object Library.
Common EBO groups
Common EBOs are also called as reusable EBOs. Reusable business objects
represent objects that are commonly used or extended in core EBOs such as item,
party, shipment, calendar, person, bill of materials, and so on. Common EBOs are
independent business objects but may be part of an another EBO.
Enterprise Business Objects
[36 ]
For example, calendar is a Common EBO; however, it has been used as part of the
BusinessCalendarEBO:
Business Concept
Independent Concept
EBO
Common EBO
ItemLotBalance EBO
ItemLot EBO
The preceding diagram demonstrates that independent concepts are derived from
Business concepts. EBOs and Common EBOs are identified and defined based
on the business and independent concepts. The preceding diagram shows that
ItemLotBalanceEBOis part of EBO the package. However, it extends the ItemLot
EBO from a common EBO. As we read earlier, Common EBOs are a basic level EBO,
which are used and extended based on the specific EBO requirements.
Let us cross-check this by physically referring to the AIA Enterprise Object Library.
The following steps should be executed one by one for better understanding:
1. Go to $AIA_HOME/\AIAMetaData\AIAComponents\
EnterpriseObjectLibrary\Core\CommonEBO\V1folder.
2. Open the ItemLot.htmlfile in your browser, which will display the
following screen:
Chapter 2
[37 ]
3. On that html page, we can verify the ItemLot EBO and its attributes.
4. Now go to the $AIA_Home/AIAMetaData/AIAComponents/
EnterpriseObjectLibrary/Core/EBO/ItemLotBalance/V1/folder and
open ItemLotBalanceEBO.htmlfile:
Enterprise Business Objects
[38 ]
5. On this page, refer to the Child Componentssection where we can find the
ItemLotEBO as a child component. This shows that the ItemLotBalance
EBO uses the ItemLotEBO as a child component, and that is why ItemLot
EBO has been packed with common EBOs.
EBO Components group
Oracle AIA has a list of predefined EBOs as part of EBO package under Enterprise
Object Library. Before getting into the package and folder structure, we will dive a
little deeper into EBOs for better understanding. Oracle AIA fundamental EBOs are
comprised of five major components. They are:
• Business components
• Reference components
• Common components
• Infrastructure components
• Shared components
Business components
Business Component is a dependant business object, specific to a business, which
does not exist independently but only in context of a business goal. In an EBO,
Business components are basically business concepts that are specific to an enterprise
business object but do not act independently. Business components always depend
on the dependent concepts that exist in the context of EBO.
Business components are based on the following characteristics:
1. Business concepts are self-contained components to support a specific
business function or operation. For example, a create purchase order
function.
2. Business components are independent concepts or dependent concepts.
However, an independent concept has its own lifecycle.
3. A dependent business concept does not exist by itself because it is depending
on another concept. For example, a purchase order header and purchase
order line.
The following figuredepicts this:
Chapter 2
[39 ]
Independent Concept Dependent Concept
Purchase Order
Purchase Order Header
Purchase Order Line
Reference components
Reference components are actually foreign keys. Also, reference components could
be another EBO in the Core EBO package. The most common scenario is that a group
of attributes could be a part of reference EBO structure. Also, reference components
share namespace with common components.
The advantage of using reference components is that they reduce redundancy,
and development and maintenance overhead because they are associated with
another EBO.
For example, CustomerPartyReference in the SalesOrder is another EBO itself, which
is a CustomerPartyEBO:
Enterprise Business Objects
[40 ]
Common components
Common components include business data types, which are applicable to
almost all of the EBOs and EBM components. Common components may also
share the same namespace. Some of the common components are ShipmentType,
ComponentIndentificationType, OperationType, and so on:
Identification
type IdentificationType
Operation Type
Name
type NameType
languageCode
type xsd:normalizedString
languageLocalCode
type xsd:normalizedString
Description
type TextType
languageCode
type xsd:normalizedString
languageLocaleCode
type xsd:normalizedString
0:
0:
Structure of EBOs
As we have seen earlier, EBOs are common business objects, which are following
standard schema structure in all business objects. The structure of the EBOs are
mostly standard structures.
1. The first part of the EBO is
and a list of schema being used in
the entire EBO schema.
2. The first part of the EBO should be schema imports . Imports
include common components, Metadata, CodeLists, DataTypes, and other
EBOs, if any.
3. The third portion of the EBO should be EBO elements for
EBO object and followed by EBOTypeobjects.
Chapter 2
[41 ]
targetNameSpace
:DataTypes.xsd .....
:custom....EBO.xsd .....
EBO
type EBOType
EBOType
- actionCode
type corecom:ActionCodeType
The default set of EBOs are located in the EnterpriseObjectLibrary/Core/EBO/
folder. Oracle AIA maintains all versions of EBO components. EBO components are
continuously updated based on the various inputs received and best practices followed
by various customers. So, in order to maintain backward compatibility and support
existing AIA implementations, Oracle AIA maintains every version of each EBO.
Custom EBO
Oracle AIA brings a set of predefined business object used across various industries.
As Oracle has a wide variety of business application systems, Oracle collected
various business and application objects based on prior implementation and best
practices. So, Oracle AIA Enterprise Object Library includes a variety of predefined
EBOs. However, Oracle AIA allows its customer to customize the predefined EBOs
to meet various individual business integration requirements.
In order to maintain the customizations uniformly (and also to differentiate the
customization between various instances of Oracle AIA) Oracle AIA grouped all
customizable EBOs as custom EBO packages. So the original EBOs (default version of
EBOs) are separated from custom EBOs. Also, in order to facilitate the development
to differentiate original EBOs from custom EBOs and also to accommodate custom
EBOs as a part of EBM, all custom EBOs are named with a prefix as "Custom". In
addition, one of the primary reasons for Custom EBO is that customer does not lose
their custom changes during upgrades, as AIA does not update the custom directory
in case of upgrades.
Enterprise Business Objects
[42 ]
Custom EBOs are located in the following location and follow the same package
folder structure as Core EBOs: $AIA_Home\AIAMetaData\AIAComponents\
EnterpriseObjectLibrary\Core\Custom.
For example: CustomSalesOrderEBO.xsd, CustomQuoteEBO.xsd, and
CustomPriceListEBO.xsd.
Extending EBOs
In real-time AIA implementation, we may have to customize the existing EBOs and
EBMs to meet the business requirements. Oracle AIA supports customizing EBOs
and EBMs to meet potential demands. In the previous sections, we have explored the
physical structure of EBOs in the AIA installation. Now, we are going to extend one
of the EBOs.
We assume that purchase orders should be shared across business systems through
AIA integration pattern. However, the existing PO EBO requires additional
parameter as priority. The following steps should be executed to customize the PO
EBO in the out-of-the-box AIA:
1. First, we need to identify the EBO schema, which should be customized
(in this case, add addition element). Go to the $AIA_Home\AIAMetaData\
AIAComponents\EnterpriseObjectLibrary\Core\Custom\EBO\
PurchaseOrder\V1/folder and open CustomPurchaseOrderEBOschema file
in JDeveloper.
2. Now, select the customPurchaseOrderEBOTypeand right-click to display the
list of options. Now, select Insert Inside ComplexTypeand select sequence
from the menu items.
3. This should insert a sequence object in the customPurchaseOrderEBOType.
Now, select the Sequenceand right-click to display the list of menu items.
Again, select the Insert Inside Sequenceand select Element.
4. Rename the element (usually it should be created as element1) as Priority.
Now, we have to set the type of the element.
5. Now, right-click the priority element and select the Set typefrom the menu
item. Now, it should prompt to enter the type of the element. Here, we can
select the element type from the list or enter corecom:identificationType.
6. Now save the file. We have completed the customization by adding
additional elements in the custom PO EBO. The customization should as look
as follows:
Chapter 2
[43 ]
Now, we have to verify that how this EBO customization reflects in the PO EBM (we
are going to explore in detail about EBM in next chapter). The following steps should
be executed to validate the customization in EBM.
1. In order to verify the EBM, we have to open the EBM object in JDeveloper
IDE to verify it.
2. Go to the $AIA_HomeAIA\MetaData\AIAComponents\
EnterpriseObjectLibrary\Core\EBO\PurchaseOrder\V1folder and open
the PurchaseOrderEBMschema in JDeveloper.
3. Extend the PurchaseOrderEBMTypeand scroll down to till the end of
it where we can view the custom element and its value as Priority. The
customization should show what is seen in the following screenshot:
Similar to the preceding steps, we can extend any EBO schema according to our
customization needs. However, we have to ensure that we are following these steps
properly for it to work correctly.
Enterprise Business Objects
[44 ]
Industry EBOs
Industry EBO package contains a list of industry-specific EBOs. We can physically
view the list of industry EBOs supported by AIA by going to the folder $AIA_HOME/
AIAMetaData\AIAComponents\EnterpriseObjectLibrary\Industry. The
following figure will list down the industries supported by Oracle AIA EBOs:
Banking and Wealth Management
Communications
Health Sciences
Insurance
Public Sectors
Utilities
Let us take one of the industry packages and explore it further into those EBOs.
Industry-specific EBO packages are also structured like a Core EBO package. Go
to Insurance industry EBO folder $AIA_HOME/AIAMetaData\AIAComponents\
EnterpriseObjectLibrary\Industry\Insurance. In this folder we can see the
folder structure as Common, CommonEBO, Custom, and EBO. If we refer to the
list of EBOs in the EBO folder, the entire EBOs list in this folder is related to the
insurance sector. Similarly, each industry package's EBO folder has its own EBOs.
AIA enterprise object library facilitates us to maintain and customize the EBOs,
and common data types, metadata, and code lists specific to the industry. This
approach allows the development team to maintain a clean EBO repository specific
to industries.
Infrastructure components
Infrastructure components are a collection of various data types, metadata and code
lists that are being used to build core EBOs. There are two types of data types being
used such as Simpledata typesand Complexdata types.
Examples for Field Level or Simple data types are DataType, NumericType,
StringType, and so on.
Chapter 2
[45 ]
Examples for Complex types are AmountType, QuantityType, and so on.
EBOs are designed by reusing the infrastructure objects that are inherited by
different components. Metadata's elements are used in EBM header and body, and
code lists are normally values such as language queryand debug.
Data types
Data types are used to define the data type of each EBO attribute and hence, data
types are defined at the infrastructure level. AIA differentiates the data types as
Coredate typesand Businessdata types. Core data types are used across all EBOs
to define the attribute type. Business data types are restrictive data types applicable
only to certain business attribute representations.
The following screenshot shows the list of core and business data types supported as
parts of infrastructure components.
In order to view the list of infrastructure data types supported by AIA, open the html
file from $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/
Infrastructure/V1/DataTypes.html.
Enterprise Business Objects
[46 ]
Summary
Enterprise Business Objects are not independent components of the AIA
infrastructure. They are used along with Enterprise Business Messages (EBM) in
Enterprise Business Services. Application Business Connector Services (ABCS),
Enterprise Business Flow (EBF), and EBMs are providing a runtime-specific view for
EBOs in the business service integration.
In order to revisit what we learned about EBOs in this chapter, let us go through the
following points:
• We learned about the Business objects and EBO in AIA
• Explored the physical folder structure of an EBO
• Various components of EBO and its structure
• Needs of custom EBO folders, and custom EBOs
EBOs cannot be used as is in the AIA implementation; EBOs are basically a design
time schema model. We need to bind the specific view of EBO along with EBM. In
the next chapter, we are going to explore more about EBM.
Enterprise Business
Messages
Before we jump into the AIA Enterprise Business Message (EBM) standards, let us
understand a little more about Business Messages. In general, Business Message
is information shared between people, organizations, systems, or processes. Any
information communicated to any object in a standard understandable format are
called messages.
In the application integration world, there are various information-sharing
approaches that are followed. We already explored some of those in the Chapter
1, Overview of Oracle AIA. Therefore, we need not go through it again, but in a
service-oriented environment, message-sharing between systems is the fundamental
characteristic. There should be a standard approach followed across an enterprise,
so that every existing or new business system could understand and follow the
uniform method. XML technology is a widely-accepted message format by all the
technologies and tools.
Oracle AIA framework provides a standard messaging format to share the
information between AIA components. In this chapter, we are going cover the
following topics:
• Overview of Enterprise Business Messages (EBM)
• Structure of EBM
• EBM Use Cases
Enterprise Business Messages
[48 ]
Overview of Enterprise Business
Message (EBM)
Enterprise Business Messages (EBMs) are business information exchanged between
enterprise business systems as messages. EBMs define the elements that are used
to form the messages in service-oriented operations. EBM payloads represent
specific content of an EBO that is required to perform a specific service. In an AIA
infrastructure, EBMs are messages exchanged between all components in the
Canonical Layer. Enterprise Business Services (EBS) accepts EBM as a request
message and responds back to EBM as an output payload. However, in Application
Business Connector Service (ABCS), the provider ABCS accepts messages in the EBM
format and translates them into the application provider's Application Business
Message(ABM)format. Alternatively, the requester ABCS receives ABM as a
request message, transforms it into an EBS, and calls the EBS to submit the EBM
message. Therefore, EBM has been a widely-accepted message standard within
AIA components.
The context-oriented EBMsare built using a set of common components and EBO
business components. Some EBMs may require more than one EBO to fulfill the
business integration needs. The following diagram describes the role of an EBM in
the AIA architecture:
AIA Composite Application
Requester ABCS
Provider ABCS
AIA EBO,EBS
and EBF
Requester Application Provider Application
EBM
EBM
Application
Specific
Message (ABM)
Application
Specific
Message (ABM)
Chapter 3
[49 ]
EBM characteristics
The fundamentals of EBM and its characteristics are as follows:
• Each business service request and response should be represented in an EBM
format using a unique combination of an action and an EBO instance.
• One EBM can support only one action or verb.
• EBM component should import the common component to make use of
metadata and data types across the EBM structure.
• EBMs are application interdependencies. Any requester application that
invokes Enterprise Business Services (EBS) through ABCS should follow the
EBM format standards to pass as payload in integration.
• The action that is embedded in the EBM is the only action that sender or
requester application can execute to perform integration.
• The action in the EBM may also carry additional data that has to be done
as part of service execution. For example, the updateaction may carry
information about whether the system should notify after successful
execution of update.
• The information that exists in the EBM header is common to all EBMs.
However, information existing in the data area and corresponding actions
are specific to only one EBM.
• EBM headers may carry tracking information, auditing information, source
and target system information, and error-handling information.
• EBM components do not rely on the underlying transport protocol. Any
service protocols such as HTTP, HTTPs, SMTP, SOAP, and JMS should carry
EBM payload documents.
Enterprise Business Messages
[50 ]
Exploring AIA EBMs
We explored the physical structure of the Oracle AIA EBO in the previous chapter;
EBMs do not have a separate structure. EBMs are also part of the EBO's physical
package structure. Every EBO is bound with an EBM. The following screenshot will
show the physical structureof the EBM groups as directories:
As EBOs are grouped as packages based on the business model, EBMs are also a part
of that structure and can be located along with the EBO schema under the Core
EBO package.
Chapter 3
[51 ]
Structure of EBM
In Oracle AIA, EBOs and EBMs follow standard structures to meet best practice
in business integration. EBMs follow a messaging architecture for all business
integration requirements. The following screenshot will show the structure of an
EBM (for example, a Bank Account EBM):
QueryBankAccountEBMType
EBMType
EBMHeader
type EBMHeaderType
language code
type LanguageCodeType
DataArea
type QueryBankAccountDataAreaType
QueryBankAccountEBM
type QueryBankAccountEBMType
versionID
type StringType
languageCode
type LanguageCodeType
Basically EBMs are divided into two parts, (EBM) Headerand Data Area. The primary
structure of EBM includes EBM Header, action to be executed using the given data
(Data Area), and global attributes. Every service request and response is presented
in the EBM by a combination of operation and instance. EBM cannot process more
than one type of operation. For example, both query and update operations cannot be
executed in the same message or a single request. In AIA, EBM carries the message
payload in both service requests and responses. Each EBM is associated with a specific
EBO and thus an EBO package structure includes the EBM schema as well. Let us
explore EBM and EBO physical structure and references further.
For our case, we will explore Bank Account EBO and EBM in its physical
package location. Go to $AIA_Home/AIAMetaData\AIAComponents\
EnterpriseObjectLibrary\Core\EBO\BankAccount\V1folder. In this folder we
can find both BankAccountEBOand BankAccountEBMschema definitions. Open the
BankAccountEBMin the JDeveloper.
Enterprise Business Messages
[52 ]
The first part of the EBM includes the reference schema elements of includeand
importparts where we can see the schema location reference of BankAccountEBO.
xsdin the xsd:includeelement shown as follows:
..........
..........
...........
...........
BankAccount…
EBM
BankAccountEBO
The preceding script shows how the common and custom EBOs are included in
the EBM.
Chapter 3
[53 ]
EBM global attributes
Each and every EBM has two global attributes apart from EBM Header and Data
Area elements. They are used to maintain information about that EBM. These two
attributes are shown in the following diagram:
QueryBankAccountEBMType
attributes
versionID
languageCode
EBM Header
DataArea
QueryBankAccountEBM
• versionID: This attribute is used to maintain the version number of the EBM.
Since Oracle AIA, EBM, and EBO supports many versions of business objects
and messages, it is necessary to maintain the version number as a global
attribute.
• languageCode: This attribute is used to hold the EBM message language
information from the Meta.xsdschema definition. Oracle AIA supports
carrying a variety of language-specific information through EBM and EBOs.
The default language code is en-US.
EBMHeader
In Oracle AIA, every EBM should have a header in addition to a data area. An
EBM header basically provides information to identify the source and target of the
message, to log and trace the messages, and additional information to help in the
routing and processing of the message. Understanding EBM and EBM header is very
important in order to handle different integration scenarios. The goal of the EBM
headeris to hold the information that can be used for:
• Audit information
• Header errors and traces
• Source and target system information
Enterprise Business Messages
[54 ]
The following image will show the EBM header from one of the Oracle AIA EBMs:
attributes
EBMID
EBMName
EBOName
CreationDateTime
RequestEBMID
VerbCode
MessageProcessingInstruction
Sender
Target
Business Scope
EBMTracking
FaultNotification
MessageBatch
xacml-content:Request
B2B Profile
0:
This providesamechanism
to capture the batch concept.
A batch isacollection of
instances which is treated as
one entity or processed as a
group and has its own
identifier and additional
information.
If the EBM is being used in a
B2B flow, i.e is used to
either trigger an outboard
Provider B2BCSImpl or is
generated by an inbound
Requestor B2BCSImpl, this
element captures the sending
and receiving trading partner
information
0:
0:
0:
0:
EBMHeader
EBMHeaderType
Custom
Chapter 3
[55 ]
EBMHeader components
EBM header components are grouped as two sets of components. They are primary
headercomponents and secondaryheadercomponents. The primary header
components hold raw information about the EBM payload. However, the secondary
components of the EBM header holds information about the messages, systems, and
processes involved in the EBM payload.
EBMID
This element contains identity information about the EBM. This element's data type
should be IdentifierType. An ID can be generated by using the XPathfunction,
shown as follows:
orcl:generate-guid().
8883838383838383883838383838
. . .
EBMName
This element contains the name of the EBM. This element's data type should be
NameType:
...
......
EBOName
This element contains the fully-qualified EBO name in the following notation. The
datatype of this element is NameType:
{namespaceURI}localpart
{http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/
BankAccount/V1}CreateAccount
..
CreationDateTime
As the name expresses the meaning, this element contains a timestamp about
the EBM when created. This element supports the DateTimeTypedata type. This
timestamp should be UTC, which is also used to present the current timestamp and
GMT offsets. The current timestamp can be generated by using the XPathexpression
function current-datetime().
Enterprise Business Messages
[56 ]
RequestEBMID
This element contains the GUID that identifies the service requester identity and the
unique request ID. The data type for the request ID should be IdentifierType. The
enterprise business service responds back this request ID as part of the response:
2011-08-02T10:19:23.45-04:00
...
. . .
VerbCode
The element contains the verb code of the EBM. The data type supported by this
element is CodeType. Some of the common verb codes used in EBM are Query,
Create, Delete, and so on:
Query
. . .
The overall EBM Header structure should be looks like below.
8883838383838383883838383838
ProcessFulfillmentOrderUpdateEBM
{http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/
FulfillmentOrder/V1}FulfillmentOrderEBO
2011-08-02T10:19:23.45-04:00
61e315eb-a1e0-4d14-89aa-fa4ff282c4b6
process
.
EBMHeader child components
In this section, we are going to explore some of the common header and child
componets that are used in the EBM.
Chapter 3
[57 ]
MessageProcessingInstruction
This element contains information or instructions about the message processing
method. This element is used to identify whether this instance of message should be
considered as a production message, and if it should go through standard process
or is it a test level message and should just pass the test case. Message processing
instruction element has the following three attributes:
• EnvironmentCode
• DefinitionID
• InstanceID
EnvironmentCode: This attribute could be set as Composite Application Validation
System(CAVS)or PRODUCTION. The default value of this attribute should be
PRODUCTION. If value of this attribute is set as PRODUCTIONthen it means the request
must be sent to the concrete service endpoint. If it is a CAVS then service request
should be sent to the CAVS simulator.
Note that the Composite Application Validation Systems (CAVS) are
testing simulator utility tools provided by Oracle AIA to validate the
business integration created by using Oracle AIA FP. We will explore
them in detail in Chapter 12, Composite Application Validation System, and
look at aspects such as approach that should be followed in CAVS and
its test case configurations, and so on.
DefinitionID: This property is used to define the test definition ID created in the
CAVS. This attribute property should be populated with the value of property from
AIAConfigurationProperties.xml.
Note that the AIAConfigurationProperties.xmlcan be located
after deploying AIA in the SOA Domain environment. However, the
template version of the configuration properties file can be located under
the $AIA_Home\AIAMetaData\configfolder.
InstanceID: This attribute should contain information about the instance of the
message processing instruction. This attribute may be populated automatically (may
be through Xpath) by the AIA infrastructure. Please make sure that the corecom
namespace is declared properly in the schema.
Enterprise Business Messages
[58 ]
This is explained in the following example:
Banking-Account-Creation
BANKACCT/10002121
BusinessScope
BankAccountEBS
CreateBankAccount
Sender element
This element is used to contain information about the service requester application.
The Senderelement has a separate set of sub elements to capture and carry forward
elaborate information about the requesting application:
0:
Sender
Custom
Description
IPAddress
SenderMessageID
TransactionCode
CallingServiceName
Application
ContactName
ContactEmail
ContactPhoneNumber
ESBHeaderExtension
ObjectCrossReference
WSAddress
ID
0:
0:
0:
0:
Chapter 3
[59 ]
The following table shows details about each sub elementof the Senderelement:
Attribute Name Purpose
ID It contains sender system's unique identification code. It is
a mandatory field.
Description Description about the sender system.
IPAddress This element contains the IP address of the sender system.
SenderMessageID This ID can be used to identify the unique message sent by
the sender system.
TransactionCode This is a task identification code. This element should be
used to generate the message by the sender system.
CallingServiceName Name of the application business component service.
Application This element should have information about the
originating application.
ContactName Sender application's contact name.
ContactEmail Sender application's contact e-mail ID.
ContactPhoneNumber Sender application's contact phone number.
ESBHeader This element contains more detail about the EBM header.
It acts as an extension of the EBM header. This element has
attributes such as Name, DataTypeCodeand Value.
ObjectCrossReference This element contains an identifier of the sender object and
corresponding cross-reference identifier. This element can
be used for bulk processing messaging.
Custom This element is a complex type which can be extended to
use custom elements.
The following sample format shows the header elementsof the EBM structure:
PPLS_101
8989898989898989898889
{http://xmlns.oracle.com/
SamplePeopleApp}
CreateCustomerSiebelInputFileReader
1.0
Enterprise Business Messages
[60 ]
Target Element
The Targetelement will be used to send the target system information while sending
the EBM. Usually, the Oracle Mediator will be used to define routing rules in the
composite application. So, all the messages received from the source system should
follow the same routing rule. But for the bulk processing scenario, there may be a use
case where the routing rules should be overridden with exception. Such exceptional
routing rule could be handled by this target element:
PORTAL_101
...
Service1
PORTAL_101
BusinessScope
The BusinessScopesection of the EBM header captures information related to the
scope of the business specification. As per Oracle the AIA standard, every EBM must
have at least two BusinessScopeelements. One of the BusinessScopeelements
must be described at the end to end business process that the EBM engaged. The
second one should describe as the message associated in the process flow:
BusinessScopeType
ID
Name of the process
Custom
InstanceID
BusinessScopeTypeCode
Indicates the type of the process
EnterpriseServiceName
0:
Name of the Enterprise business
process service name
Action of the Enterprise business service
EnterpriseServiceOperationNa...
Business Scope
0:
Chapter 3
[61 ]
The following elements are used in the business scope as part of EBM header.
• ID: This element is an optional identifier for the execution service contract.
• InstanceID: This element is used to carry unique identification for a
particular scope instance. This could be an alpha numeric code provided by
application.
• BusinessScopeTypeCode: This element should hold the information about
the business scope of the particular message instance. This value should be
BusinessScopeor BusinessServiceor Message.
• EnterpriseServiceName: This is basically the message creator name. It could
be either ABCS or EBS name.
• EnterpriseServiceOperationName: This element should store the name of
the EBS operation that triggered this message.
• Custom: This is a custom element, which can be extended to carry any other
information along with scope details.
EBMTracking
As the element name expresses the purpose, the EBMTrackingelements are used
to track the message passing through the various nodes of integration. So the
tracking element may populate multiple times in the EBM in order to record all the
execution units that the message passes through. The following are the elements of
EBMTracking.
• SequenceNumber: This element contains the sequence number of the
execution node.
• ExecutionUnitID: This element contains the ID of the execution node or
process.
• ExecutionUnitName: This element contains the execution unit name that the
EBM passes through.
• ImplementationCode: This element references the type of the execution such
as BPEL, Mediator, or Java Service.
• ActivityDateTime: This element records the execution date and time.
The below sample schema model shows the structure of the EBMTracking:
1
110
{http://xmlns.oracle.com/ABCSImpl/Portal/
BankAccount/v1}Query
BankPortalABCSImpl
Enterprise Business Messages
[62 ]
Mediator
..
FaultNotification
In a Web Service-based integration approach, the faultelement is used to populate
exception that occurs during message transfer. Integration is more vulnerable due
to the independence of each system. In order to build more robotic integration,
exception and error should be properly captured, and necessary action should be
taken to handle it. In Oracle AIA EBM, the FaultNotificationelement can be used
to populate the fault messages while transferring EBM between ABCS and EBS.
MessageBatch
This element contains information about the batch processes. This element helps to
capture collection of instances, which is treated as one entity or processed as a group.
B2BProfile
This element contains the sending and receiving trading partner information for
the B2B integration document flows. This element introduced an Oracle AIA FP 11g
along with the B2B integration feature. This element has child elements, which are
as follows:
• SendingTradingPartner: This element contains information about sending
a trading partner.
• ReceiverTradingPartner: This element contains information about EBM
receiver trading partner.
Custom
This element is used to extend the EBM header by adding an extra custom element,
which it may require. However, we have to ensure that the data type used by custom
elements should be in compliance with common data types defined by Oracle AIA FP.
DataArea
So far we have seen a very elaborative view of the EBM header and its elements.
DataAreais also an important part of EBM. In EBM, DataAreacontains information
about the message to be processed along with necessary action identifications. Also
the DataAreawill contain the business objects and references. In AIA, the business
objects are instances of EBO. The following image will show a high level view of
DataAreain EBM:
Chapter 3
[63 ]
attributes
EBMHeader
CreateBankAccountDataAreaType
CreateType
corecom:Create
CreateBankAccount
CreateBankAccounType
attributes
DataArea
attributes
CreateBankAccountEBMType
CreateBankAccountEBM
One of the fundamental rules of EBM is that each message request and response
should be represented in an EBM by a unique action and an EBO type instance.
According to that rule, each DataArea(DataAreaelement is sequential) should
have one element that represents the action to be taken and another element should
represent the context-specific object required to execute that action. So for each
service, there should be a request EBM object and response EBM object.
Let us take the example of the create bank account service and its
EBMs. In create bank account service request message, DataAreaof
CreateBankAccountResponseEBMTypehas two elements in a sequence. One is
corecom:CreateRequestResponseand another one is the CreateBankAccount
object and its attribute. In this, CreateBankAccountis an object of
CreateBankAccountTypeEBO.
Similarly, in the response EBM of create bank account, there should be an action
element that should represent corecom:CreateResponseand a response object of
the CreateBankAccountTypeelement.
Enterprise Business Messages
[64 ]
The following diagram shows the typical EBM message structure:
EBMHeader
CreateBankAccountResponseDataAreaType
corecom:CreateResponse
CreateBankAccountResponse
CreateBankAccounResponseType
attributes
DataArea
attributes
CreateBankAccountResponseEBMType
CreateBankAccountResponseE...
EBM use cases
In this section, we are going to explore one of the message exchange types and how
EBM supports these scenarios.
EBM request and response message
The most common message exchange model that every integration project might
have is request-response type. The requester requests information from another
system and the responder system responds with the information based on the
request parameters. This model is typically used in the web systems.
Source
ABCS
System
Oracle AIA
EBS
Target
ABCS
System
CreateBankAccountResponseEBM CreateBankAccountResponseEBM
EBO EBO
EBO EBO
CreateBankAccountEBM CreateBankAccountEBM
From the preceding diagram, we can see that source ABCS system sends
CreateBankAccountEBMto the Bank Account EBS service using BankAccountEBO.
The request has been sent to the target system by EBS in the request EBM format.
The target ABCS system generates the output in the BankAccountResponseEBMwith
BankAccountEBO. The same response message forwards back to the source ABCS
service through bank account service. The diagram shows the simple version of EBM
use case in the AIA model. Basically, it forces to use the standard format within AIA
implementation except the area where application requires ABM format.
Chapter 3
[65 ]
The following code shows the request EBM format:
Source System Bank Account
CREATEBankAccount/10081
BusinessScope
BankAccountEBS
CreateBankAccount
CreateBankAccountReqMessage
ACCTMSG/10101
Message
BankAccountEBS
CreateBankAccount
The following code shows the response EBM format:
Source System Bank Account
CREATEBANKACCT/10081
BusinessScope
BankAccountEBS
CreateBankAccount
] CreateBankAccountResMessage
ACCTMSG/10110
Message
BankAccountEBS
CreateBankAccount
In our use case, if we notice the request EBM and response EBM, then the primary
difference is the message ID. The message ID is considered as a key change in the
EBM header, which will help to keep track of the difference between request and
response EBMs. We are going to explore EBM and EBO further in the next chapter,
along with EBS.
Enterprise Business Messages
[66 ]
Summary
So far we have seen fundamental details about the Oracle AIA EBO and EBM
structures and their purpose. EBO and EBM are fundamentals of the Oracle AIA
data integration. In the following chapter we are going to see more details about
Enterprise Business Services (EBS) and Application Business Connector Services
(ABCS), which are used to create service interfaces. EBO and EBM are populated as
payload in the EBS and ABCS. Before we proceed to further chapters, it is good to
refresh our knowledge in the fundamentals of Web Services and Interfaces since EBS
and ABCS are based on service interface and contracts.
Enterprise Business Services
In this chapter, we are going to learn about the AIA Enterprise Business Service.
In general, business services are service components that expose a specific business
function/task. A business service accepts various parameters as part of a request
message to execute the business services and responds back with a message
generated by that business function/task. In enterprise infrastructure, exposing
application business functions as services is important to leverage application
capabilities across the organization. Technically, service can be enabled through
various approaches as we have seen in Chapter 1, Overview of Oracle AIA.
The following topics are covered in this chapter:
• Overview of Enterprise Service Bus
• Structure of the EBS definition
• Types of EBS
• EBS design principles
• EBS implementation
Overview of Enterprise Service Bus
In Oracle Application Integration Architecture, Enterprise Business Services (EBS)
is a core foundation block. When you read the word "services", immediately it
reminds you of web services and its concepts. As Oracle AIAis deployed and runs
on top of Oracle SOA Suite, Enterprise Business Services are based on web services
architecture. Therefore, EBS represents application or service independent web
service definitions for business integration tasks.
Enterprise Business Services
[68 ]
EBSs are defined as web services, distributed with service contract as abstract Web
Service Definition Language(WSDL)along with service operations, message
exchange patterns, and schema definition for message requests and responses. In
addition, EBS can be used as independent service or it can interact with another EBS.
EBSs are mostly coarse-grained business services, which perform a specific business
activity such as creating a bank account in the banking system or fetching bank
account balance information from the same banking system. These coarse-grained
EBSs support such synchronous and asynchronous message exchange patterns.
Note that in a Service Oriented Architecture, services are defined as on
two levels, which are coarse-grained and fine-grained services. Coarse-grained services are abstract level business functions, which should
include many business task definitions. However, fine-grained business
services are absolute business services. They are just at the bottom level
only to execute a particular business task.
EBS components belong to the canonical layer of AIA. Basically, EBS's request and
response payload uses standards-based enterprise message format, which is nothing
but EBM. As we have seen earlier, EBM typically contains one or more instances of
EBOs that is defined from business message formats, metadata, and message
header formats.
For example, let us consider the Bank Account EBS meta model from Oracle
AIA FP. The bank account management-related services are encompassed in the
BankAccountEBS.wsdldefinition. The BankAccountEBS.wsdldefinition includes
various operations to handle accounts management business activities. One
such business operation is to create a bank account, which includes payload as
CreateBankAccountand CreateBankAccountResponseservice operation. Both
payload message structures are defined as parts of CreateBankAccountEBM. If
we refer to the CreateBankAccountEBM, the DataAreais basically referring to the
instance of CreateBankAccountEBO(we already have seen this type of EBO/EBM
models in detail in Chapter 2, Enterprise Business Objectsand Chapter 3, Enterprise
Business Messages). So, the CreateBankAccountoperation of BankAccountEBS.wsdl
definition should look like the following screenshot:
Chapter 4
[69 ]
Similar to the CreateBankAccountoperation, each EBS should have many
operations, which depend on the business service that the EBS provides. In
our bank account EBS, there are many operations and responses including
the CreateBankAccount, DeleteBankAccount, QueryBankAccount, and
UpdateBankAccountoperations. The preceding screenshot also shows a list of
operations (requests).
Role of EBS in AIA
The following are the roles that Enterprise Business Service plays in the AIA approach:
• Receive request EBM from a requester application through requester ABCS
or another EBS or EBF.
• Identify and route the request to the required target or Provider Service
(typically an ABCS or another EBS or EBF).
• Receive the response EBM from the provider application, such as provider
ABCS or EBF or another EBS and routes the response message to the
requestor ABCS, EBF, or another EBS.
Enterprise Business Services
[70 ]
Characteristics of EBS
Oracle AIA EBS components encompass some fundamental unique characteristics,
which are as follows:
• The EBS component does not predetermine any backend implementation
system such as Oracle PeopleSoft, Oracle Agile, or E-Business Suites. It is
application agnostic and lies in the canonical layer of AIA.
• EBS basically provides service oriented integration interfaces for your choice
of backend systems. It basically plays a mediator between requester and
provider systems.
• Each EBS contains various operations, which can be invoked by a requester
ABCS, another EBS, or Enterprise Business Flow (EBF).
• EBS always takes the EBM as an input message and gives the output message
in the same format.
• Every EBS operation should have a verb-based operation used as an
operation identifier, for example, create, query, update, delete, and so on. So
whether a service is Synchronized or Asynchronized is defined by using a
verb.
• EBS may route the messages to another EBS, EBF, or ABCS based on the
routing rules defined in the rules of that operation.
Chapter 4
[71 ]
Structure of the EBS definition
The following diagram will show the sample structure of the Enterprise Business
Service. As EBS is based on web services, EBS definition follows the typical structure
of WSDL:
Enterprise Business Service(WSDL)
Types
xsd : Schema
message
portType
Operation:Create()
Operation:Update()
Operation:Delete()
Operation:Query()
Definitions
Definitions element
The element is the root element of the WSDL. It defines the name
of the web service. This element acts as a container of the overall description
and includes all other elements. The elements include the
targetNamespaceattribute. The targetNamespaceattributesprovide reference to
the schema being used in the entire web services in messages. An example of the
targetNamespaceis given as follows:
Enterprise Business Services
[72 ]
Types element
The element is used in the input and output format of the web service
operations. In EBS, the input and output messages are in the format of EBM, the
element imports the reference EBM under its sub element.
The following is an example of the element:
Message element
The element is used to describe the data being communicated between
service consumers and providers. In the AIA case, the provider is an EBS and the
consumer could be an ABCS or a client application that is capable of sending the
EBM as a message payload.
The element should have zero to many elements and each
element should be mapped with one parameter of input or output message. Each
element should be matched with a datatype defined in the element.
In EBM, the element should refer to the definition of the EBO. The
following is an example of the element:
Chapter 4
[73 ]
PortType element
The element is used to combine and build the one-way or request-response operation. The element should act as a container to define
multiple types of operations under one web service. Also, a element
binds a different format of request and response messages under one service
operation.
In EBS, the element contains various operations required under one core
business function. The following is an example of the element:
One-way operation pattern in EBS
A one-way operation is nothing but a service that can only receive messages. Such
web service operation should have only input message format. Therefore, it should
only have the element. However, Oracle EBS has many one-way operations.
The following is an example of the element:
In the preceding example, the CreateBankAccountoperation has only one input
message because it will only receive messages from the consumer applications. It
never responds back to the consumers. In EBS, most of the create, read, update, and
delete (CRUD) operations are one-way operations.
Two-way or request and response operation pattern
in EBS
In request and response model, the web service operation should be capable of
accepting input message and also returning response messages. Also, EBS supports
different formats of input and output messages. So the request and response
operation should have both and