The AIA FP is Oracle's "accelerator framework" for implementing SOA-based system integrations. AIA FP and its prebuilt integrations such as PIPs were originally created to facilitate and accelerate the integration between different Oracle applications such as Siebel, E-Business Suite, PeopleSoft, and JD Edwards, among others. Customers looking to simultaneously implement and integrate several Oracle applications gain huge benefits from employing PIPs, as these significantly reduce the effort and risk involved with building interfaces to support business processes. Given Oracle's aggressive and continuous growth by acquisition, AIA FP and prebuilt integrations have become fundamental to rapidly integrate newly acquired products with their existing apps portfolio.
The AIA FP contains a variety of design-time and runtime artifacts that can be used when defining, designing, building, testing, and deploying SOA solutions. The following diagram presents an overview of the different components that build up the AIA FP:
The AIA FP consists of:
The preceding components will be described in the following sections.
These artifacts include tools, libraries, and other AIA assets that support the design-time phase of a project. These tools are:
For more information on the AIA architecture framework refer to:
AIA Concepts and Technologies Guide:
http://docs.oracle.com/cd/E23943_01//doc.1111/e17363/toc.htm
AIA Reference Process Models User's Guide:
http://docs.oracle.com/cd/E28280_01/doc.1111/e17368/toc.htm.
For more information refer section 4 Working with Service Constructor of the AIA Developers Guide:
http://docs.oracle.com/cd/E28280_01/doc.1111/e17364/workingwservcon.htm#BABBEHEI.
For more information on CCI please refer to section 20 Using the Code Compliance Inspector of the AIA Infrastructure Components and Utilities User's Guide http://docs.oracle.com/cd/E28280_01/doc.1111/e17366/chapter20.htm.
For more information refer section 3 Working with Project Lifecycle Workbench of the AIA Developers Guide.
http://docs.oracle.com/cd/E28280_01/doc.1111/e17364/workingwplw.htm#CHDEIHFG.
For more information on CAVS refer to the AIA Infrastructure Components and Utilities User's Guide.
http://docs.oracle.com/cd/E28280_01/doc.1111/e17366/toc.htm.
For more information on setup pages refer to the AIA Infrastructure Components and Utilities User's Guide.
http://docs.oracle.com/cd/E28280_01//doc.1111/e17366/toc.htm
BOM.xml
), generated from the Project Lifecycle Workbench pack, as input and generates a Deployment Plan file (<projectCode>DP.xml
) and a Harvester Settings file (HarvesterSettings.xml
), based on the information supplied in the BOM.AIAInstallProperties.xml
).These artifacts include tools, libraries, and other AIA assets that support the runtime phases of a project. The supporting tools include:
For a list of all available prebuilt integrations please refer to Oracle's AIA documentation page http://docs.oracle.com/cd/E38316_01/index.htm.
For more information on the AIA Error Handling Framework please refer to section 13 Introduction to Oracle AIA Error Handling of the AIA Infrastructure Components and Utilities User's Guide: http://docs.oracle.com/cd/E28280_01/doc.1111/e17366/chapter13.htm.
For a full list of the AIA Metadata content refer to section 2.1.3.5 Content of $AIA_HOME/AIAMetaData of the AIA Developer's Guide at http://docs.oracle.com/cd/E28280_01/doc.1111/e17364/bldgintflows.htm#BACBBAIC.
The following sections describe in more detail some of the key components of the AIA FP.
For a full description of the AIA FP please refer to 3Oracle's AIA documentation page: http://docs.oracle.com/cd/E28280_01/aia.htm.
Services built with the AIA FP follow a specific development lifecycle as illustrated in the following diagram:
The AIA methodology follows a top-down approach that can be summarized as follows:
In future releases of the AIA FP it is very likely that the use of BPA will be superseded by another Oracle product. BPA Suite is in fact a rebrand of the IDS Scheer ARIS product. Shortly after the acquisition of IDS Scheer by Software AG back in 2009, Oracle announced that support for BPA Suite would end in the mid-term.
http://<soa managed server>:<port>/AIA
). The tasks are entered into a project as follows:For detailed instructions on designing and building services using the AIA Foundation Pack please refer to the AIA Developer's Guide at http://docs.oracle.com/cd/E28280_01/doc.1111/e17364/toc.htm.
The AIA reference architecture consists of a Conceptual Service Architecture and an AIA Shared Service Library. These architectural assets provide the foundations for AIA and enable the adoption of the core SOA design principles such as:
The AIA Conceptual Service Architecture is summarized in the following diagram:
This architecture consists of:
Process Sales Order is an example of a Process Service as it usually requires credit checks and address checks against the customer, human workflow for approvals depending on the sales order amount, availability to promise checks, creation of the order, and frequent notification of the order status to the customer and other systems.
Customer Credit Check is an example of an Activity Service as it delivers a specific business task in support of a broader business process but in itself it may require interaction with more than one system (for example different credit agencies).
Another example of an Activity Service is the Customer Business Service. This service would usually provide CRUD (create, read, update and delete) capabilities. The functionality is delivered by orchestrating and aggregating data from multiple systems that hold customer data.
Create Customer, Read Customer, Update Customer, and Delete Customer are all examples of Data Services as they encompass fine grained business functions against specific backend systems.
The AIA Shared Service Library is basically a Logical Service Architecture derived from the AIA Conceptual Service Architecture. The following diagram depicts it:
As can be seen from the preceding diagram, the AIA Share Service Library consists of a number of service artifacts. These artifacts define the AIA Service Taxonomy and are the building blocks for solutions delivered using AIA.
CBPs are application agnostic as they only interact with an EBS to complete their tasks and also to implement a canonical schema.
EBS services are application agnostics and their contract is based on a canonical schema. EBSs only deal with EBF, CPB, or ABCS. EBSs are typically implemented as SOA Suite 11g composite applications and use the Mediator to route requests to other services.
EBS services don't make use of BPEL as they don't actually do any service orchestration. Instead, they consume EBF or ABCS services as required.
EBF services are application-agnostic as they only deal with EBS services in technical orchestrations.
EBFs are typically implemented as SOA 11g composites applications using the BPEL PM to perform the technical orchestrations. They also implement a canonical schema.
ABCS services are also responsible for implementing the VETO pattern. This means validating (validating semantics and data), enriching (getting additional data required that may be required), transforming (from ABM to EBM), and operating on a message (calling out).
ABCS services are typically implemented as SOA Suite 11g composite applications using mainly Mediator and BPEL components. BPEL is used to enrich the message. Mediator is used to transform and operate. Validation often involves the implementation of WSM policies and other checks such as semantic validations.
There are two types of ABCS:
Although Direct Integrations may result in better business outcomes for some specific integration scenarios, the abuse of this pattern may result in higher operational costs for mid and long term. Therefore, before deciding to implement Direct Integrations we strongly advise you to evaluate the short, mid, and long term benefits of it.
AIA services implement the VETORO integration pattern. This pattern is a variant of the industry-standard pattern VETO, which stands for Validate, Enrich, Transform, Operate. AIA introduces an extra Route and Operate step resulting in the VETORO variant.
Following is an example of an end-to-end interface implemented with AIA:
For more detailed information on the AIA Reference Architecture please refer to section 1 Understanding the Oracle AIA Reference Architecture of the AIA Concepts and Technologies Guide.
http://docs.oracle.com/cd/E28280_01/doc.1111/e17363/chapter01.htm#sthref9.
At the core of any integration, regardless of the architectural style or technology, there must be a message that contains the data required to action a business function. In AIA terms, these messages are referred to as Enterprise Business Messages (EBMs). EBMs are exchanged by the different AIA services in order to transfer messages between the participating applications.
Strictly speaking, EBMs are envelopes that contain the business data that the participating applications are interested in. For this reason EBMs contain certain metadata in an EBM Header that would facilitate the transport of the message to the relevant destinations. This is comparable to how the postal service works. In order to send a letter an envelope must contain a recipient name and address. Without this information the envelope will never reach the destination (chances are that it will never leave the postal office and the message will get lost). Optionally, envelops may contain a return address so it can be returned to the sender's address in case of non-delivery.
An example of an EBM that supports the creation of a customer would be CreateCustomerPartyEBM
and the corresponding response would be CreateCustomerPartyResponseEBM
.
The business data that makes an EBM message relevant for the participating applications are contained in data objects referred to as
Enterprise Business Objects (EBOs). Using our previous analogy, this would be equivalent to the actual letter inside the envelope. Examples of EBOs could be a CustomerPartyEBO
, SalesOrderEBO
, and ItemEBO
, among others. EBOs contain all of the relevant business data required by the participating applications or by the service to perform business logic.
EBMs and EBOs work hand-in-hand and during the transportation of the message they are coupled. Again, going back to our analogy, there wouldn't be much point in delivering an envelope that doesn't contain a letter. Equally, a letter would never be delivered without an envelope containing the recipient's address (perhaps the stamp could be considered as a metric used in cloud services to charge integration based on usage, but that's a topic for a different book).
Both EBMs and EBOs are defined using XML Schema Documents (XSDs). Furthermore, EBMs and EBOs are built using common semantics and frequently implement the Canonical Scheme and Schema Centralization patterns. Individual applications on the other hand normally use their own specific data formatting for messages referred to as Application Business Messages (ABM) that contain Application Business Objects (ABOs). It is the responsibility of ABCSs to transform ABMs/ABOs to EBMs/EBOs and vice versa.
The following diagram illustrates, at a high level, the anatomy of an EBM message:
In a nutshell, an EBM message consists of:
EBMs as well as EBOs are agnostic of the underlying transport mechanism. EBMs can be sent using a variety of transport protocols such as HTTP, JMS, RMI, and others. However, since AIA services are implemented as SOAP web services and defined using the WSDL, the preferred transport is HTTP. The following diagram illustrates how an EBM messages fits in a standard HTTP/SOAP message:
Implementing SOAP web services provides many benefits because AIA can rely on additional standards such as WS-Security to implement security (authentication, authorization, encryption, and signatures), WS-Addressing for asynchronous web services and WS-Policy for implementing several other policies.