Main

Tips and Tricks Archives

August 7, 2008

Enterprise Business Message and Enterprise Business Service Extensibility - What's the story?

In AIA, we talk about extensibility for Enterprise Business Objects, XSLTs, BPEL processes and also ESB Routing Rules.

But what about Enterprise Business Message and Enterprise Business Service?

Lets look at Enterprise Business Message first.

Since an Enterprise Business Message is assembly for schema components, extensibility would mean a new EBM. The solution is to create a new EBM xsd containing the required EBM definitions.

For example, lets say there is ItemEBM.xsd which has CreateItemEBM, UpdateItemEBM and QueryItemEBM. There is a need for DeleteItemEBM and ValidateItemEBM. To extend the ItemEBM.xsd, create a CustomItemEBM.xsd and include in it the definitions for DeleteItemEBM and ValidateItemEBM.

Similarly, extending Enterprise Business Service would mean adding new operations. This can be accomplished by creating an extension EBS (a new ESB routing service), for holding the customer specific operations. This newly created ESB routing service can either use the same EBM or the newly created EBM (for housing the Enterprise Business Messages for these new operations). Since these are newly created entities, they are totally upgrade safe.

So, ItemEBS continues to support the standard CRUD operations and is based on the shipped ItemEBS.wsdl. For a custom operation, you need to

  • Create a new wsdl file CustomItemEBS.wsdl defining the interface / contract including the operations
  • Create a new ESB project containing a routing service CustomItemEBS pointing to your new wsdl
  • Deploy the CustomItemEBS

March 7, 2009

Custom Extensions to AIA Error Handling

Robust error handling is an integral requirement for all integrations. AIA Error Handling Framework allows capturing any error happening in the integration scenario in a consistent manner. However, there are scenarios when it is not sufficient to capture the error message but we also need to capture the specific details of the failed business message, such as the Order Processing scenario where there is a need to capture the details of the failed orders and log tickets in the Trouble Ticket application. This can now be achieved with extending the AIA fault message and have custom processing on certain failed messages.

EHExtension_Solution_thumb.jpg

Foundation Pack 2.3 comes with enhanced capabilities to extend Error Handling Framework. The extensions target two key areas:
1. Fault Handler Extension and enrichment of Fault Message
AIA Fault Message have a new element, ApplicationFaultData of type xsd:any. This can be used to hold any Fault Message enrichment as desired by the application context. For example, Order Fallout related information specific to a certain order. PIP implementations can extend the default AIA Fault Handler and plug-in their custom handlers to enrich the faults occurring in any scenarios.

2. Notifications Extension
Default AIA Error Handling Framework does email notifications and assign tasks on Error Console. At times there is a need to do something more such as pushing faulted instance details to custom trouble ticketing applications or to do custom notifications. Each PIP implementation requirements are varied and use cases have broad range.
Foundation Pack 2.3 provides the capability to stamp custom JMS Correlation IDs on each faulted message through simple UI interface. PIP Implementations can have custom listeners on AIA_ERROR JMS Topic to pick messages that need custom processing.

Detailed information can be found in AIA Foundation Pack 2.3 Guide

March 30, 2009

SOA Content and Technical Governance using AIA Foundation Pack

In an enterprise application integration scenario, SOA Governance is about visibility and control during the entire service lifecycle; including design time, where this boils down to maximizing the investments made in building the service portfolio to ensure that it provides for interoperability, reusability and extensibility. The AIA Foundation Pack allows you to satisfy these criteria using content and technical level governance.

image 

Content level governance – the key to Interoperability and Reusability

The AIA Foundation Pack provides content level governance at all the abstraction layers. The Enterprise Business Objects (EBO) and Enterprise Business Services (EBS) development go through thorough scrutiny with Subject Matter Experts (SME) from each of the Oracle application areas (yes, including Fusion applications) to come up with a rationalized object model. It then undergoes a standardization pass, which ensures adherence to standards such as UN/CEFACT Core Component Technical Specifications (CCTS) and XML Naming and Design Rules (NDR). This level of governance renders the common object and services model instantly relevant as opposed to a theoretical model that is hard to implement, since it has been already vetted for mapping against most of the Oracle applications logical data models as part of the rationalization process.

Data models aside, the reason why the rationalization was even initiated in the first place is due to a compelling need at the business process level. The reference process models supplied with the Foundation Pack also allow you to drill down from the lowest levels of the process models right into the associated canonical objects and services. This allows you to now take your pick of the application capability that can best satisfy the business task at hand. Since the canonical layer has just “virtualized” your application capabilities, so you can start with the business problem instead of the constraints of the technology. This level of content governance not only relieves you from having to tackle with the typical SOA governance issues of having to decide on the right-sized service granularity, but it also creates a common platform for business and IT stakeholders to collaborate on i.e. shared semantics and a business process approach to integrations.

image

The content level governance just does not stop here, but goes deep into the implementation. Once the canonical objects are mapped to the actual application interfaces (Web Services, Component Interfaces, Interface Tables, APIs etc), these mappings can be then viewed using the XSLT Mapping Analyzer (XMAN) utility which analyzes the XSL maps and presents a tabular view of the EBO – Application mapping. In the case of Oracle AIA PIPs, custom extensions to the Oracle provided maps are highlighted which allows for easier identification during upgrades.  In addition, map reports from existing Oracle PIP assets can be viewed to assist in and accelerate custom Application Business Connector Service (ABCS) development as well as ensure that your custom maps are in accordance with the Oracle best practices. The tool can also be invaluable when comparing the same report from different transformations (potentially developed by different teams) to ensure that there are no mapping conflicts, which can be otherwise very difficult to detect.  (This is currently manual but in the process of being automated).

image

More on the XMAN tool can be found in this post.

Technical level governance – the key to Extensibility and Reusability

With an ever-growing asset inventory of design patterns and programming guidelines, manual checking for compliance to the AIA Integration Developers Guides standards checklist can get a little tedious. PIP Auditor is a tool designed to enhance productivity and improve the quality of the services by checking your AIA services for compliance to programming best practices and patterns found in the AIA Integration Developers Guide, as well as other industry best practices as appropriate.

The report output is categorized per TOGAF standards and a compliance “score” is presented. Developers can drill down into the problem areas and identify the areas to fix in order to achieve compliance.

image

Violations can be drilled down into right down to the file level and where relevant, even even down to the line/column number e.g. in the case of naming convention violations.

image

The design of the tool is flexible enough to allow for incremental patching of new rules – more than 70 rules have already been implemented as part of an internal beta release, with more coming soon before we make it available on Metalink.

More on the PIP Auditor tool can be found in this post.

There are a lot more productivity enhancing tools and utilities that are available as part of the AIA Foundation Pack, such as an Artifacts Generator and a Build Install Generator tools, which we will be discussing on this forum in future posts.

September 17, 2009

The Power of XMAN

Unlike X-Men, XMAN is not a fictitious super hero but its powers are amazing. As part of AIA Developer Tools, it allows you to introspect the mapping structure in complex XSL transformation and presents a user friendly report in HTML and CSV format. This empowers the functional and technical analysis of the code to resolve technical governance issues of consistency in attribute mappings and XREF/DVM usage.

Some of the Benefits are:

  • Functional interoperability between PIPs.
  • Jumpstart projects and encourages reuse by using existing mapping information.
  • Enhances productivity by helping populate design time EBO mapping spreadsheets.
  • Assist with PIP upgrades by identifying custom extensions.

Viewing the HTML report is useful for viewing one service at a time; however there are times when we need to see the attribute mappings across connectors to ensure semantic consistency or to ensure all related connectors are using same XREF and DVM. For this purpose, AIA allows to download the consolidated report in CSV format and you can follow the below steps to import it in MS Excel,

  • Open a new Excel spreadsheet file.
  • In the menu bar, select Data -> Get External Data -> From Text. (Text - to - columns in Excel 2003 and prior versions)
  • 'Import text file' dialog box appears. Choose the csv file which you want to import.
  • 'Text import Wizard' dialog box appears. Choose 'Delimited' option in the 'Original Data Type' selection. Click 'Next'.
  • Select 'Other' check box and enter '~' in the text box. Click 'Next' and Click 'Finish'.
  • Put appropriate column headers as following,
    Custom, ServiceType, FileName, EBO, Application, Service, Operation, Source Xpath, DVM, XREF, Target Xpath, EBM, ABM

Now you may go about creating pivot tables and analyze DVM and XREF usage. One example to show the number of a particular XREF table usage in any service for a given application would be to create a pivot table and; select Service & Operation as "Report Filter", select Application as "Column Labels", select XREF as "Row Labels" and select ABM as "Values".

Similarly, you may analyze a specific attribute usage or DVM usage.

Look for XMAN at AIA Implementation Resources wiki

September 24, 2009

AIA Error Notifications

In a typical SOA deployment, there are a number of services deployed and thousands of messages exchanged on any given day. Howsoever we design our services and optimize the service deployment infrastructure, exceptions do happen. These exceptions can be broadly categorized as System Faults and Business Faults.

AIA Error Handling Framework captures all the exceptions in a consistent manner and provides notification capability out of the box to notify appropriate people about the exception. This enables them to analyze the exception and take appropriate corrective action.

AIA Email notifications can be configured in as little as 15 minutes following these 4 steps;

1. Define appropriate Users and Roles

For a given exception, the service SLA may require you to notify different users. You may need to notify different people for system errors, network issues etc. and different people for business errors such as data validation or CreditCheckFailed etc. AIA provides an XML based user repository (JAZN), but you could also configure your existing user store such as LDAP to define various roles of system users, integration admin, participating application admin etc.

If you are using JAZN,

  • Update “$SOA_HOME/j2ee/oc4j_soa/config/system-jazn-data.xml” file to define roles and users. AIA defines default AIAIntegrationAdmin role and AIAIntegrationAdminUser out of the box.
  • Update “$SOA_HOME/bpel/system/services/config/user-properties.xml” file to populate various attributes for these roles and users. Ensure to provide a valid email address for your domain.

2. Associate Roles to a specific Exceptions

AIA provides ability to notify different roles based on process name, service name, system id and error code. You can setup these notifications on AIA Console -> Setup -> Error Notification screen. For more information, see Oracle Application Integration Architecture Core Infrastructure Components Guide, "Setting Up Error Notifications for Oracle AIA Processes". It also explains the logic used to determine notification roles for an error.

If no appropriate role is defined for a certain error, AIA notify the default role (AIAIntegrationAdmin) defined in AIAConfigurationProperties.xml file.

3. Configure Email channel

Update “$SOA_HOME/bpel/system/services/config/ns_emails.xml” file;

  • In the <EmailAccounts> element, set the “NotificationMode” attribute to “EMAIL”, instead of “NONE”.
  • In the <GeneralSettings> section, set the <FromAddress> to a valid email address for your domain.
  • In the <OutgoingServerSettings> section, set the correct <STMPHost> and <STMPPort> for your domain.
  • Comment out <IncomingServerSettings> section if you do not have a need for it.

4. Restart BPEL Process Manager

Now you should see email notifications triggered for every error in the AIA system.

Oracle SOA Suite 10g supports five channels of notifications, Email, Pager, Fax, SMS and Voice. AIA provides an implementation for Email notifications, but it is easy to configure any other channel and provide custom notifications if needed.

AIA 2.0.1 and MLR # 18

The 10.1.3.3.1 SOA Bundle Patchset (MLR) are cumulative patches on SOA Suite and are released every 2-3 months. The latest is MLR#18 (Patch 8372118) and all AIA 2.0.1 implementations should upgrade to this for better system stability. This has more than 300 fixes on the base platform.

Recently after upgrading the system to MLR 18, we observed an issue where CustomerPartyEBS is timing Out after invoking CreateCustomerPartyPortalProvABCS. This is not easy to debug as you can not find the instance of CreateCustomerPartyPortalProvABCS process in BPEL console and there is not much information in log files as well. The fix for this issue is mentioned in Metalink Note 880473.1.

This is also liked from AIA Implementation Resources on Oracle Wiki

About Tips and Tricks

This page contains an archive of all entries posted to The Official AIA Blog in the Tips and Tricks category. They are listed from oldest to newest.

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type and Oracle