DYNAMIC ROUTING OF ENDPOINTS USING ORACLE ENTERPRISE SERVICE BUS (ESB)



Similar documents
INSTALLING AND INVOKING ORACLE DATA INTEGRATOR (ODI) PUBLIC WEB SERVICES

Objectif. Participant. Prérequis. Pédagogie. Oracle SOA Suite 11g - Build Composite Applications. 5 Jours [35 Heures]

What I Advise Every Customer To Do On Their Oracle SOA Projects

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

Closer Look at Enterprise Service Bus. Deb L. Ayers Sr. Principle Product Manager Oracle Service Bus SOA Fusion Middleware Division

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Oracle SOA Suite: The Evaluation from 10g to 11g

Oracle Enterprise Service Bus

Oracle Service Bus Examples and Tutorials

Real World Integration Challenges and Enterprise Service Bus (ESB)

Oracle Service Bus. User Guide 10g Release 3 Maintenance Pack 1 (10.3.1) June 2009

Who are We Specialized. Recognized. Preferred. The right partner makes all the difference.

Oracle Managed File Transfer SOA Integration

ESB Versus ActiveVOS

AquaLogic ESB Design and Integration (3 Days)

An Oracle White Paper March Guide to Implementing Application Integration Architecture on Oracle Service Bus

Oracle SOA Suite Then and Now:

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

WELCOME. Where and When should I use the Oracle Service Bus (OSB) Guido Schmutz. UKOUG Conference

Application. 1.1 About This Tutorial Tutorial Requirements Provided Files

1 What Are Web Services?

1 What Are Web Services?

Business Process Execution Language for Web Services

Oracle Service Bus Statement of Direction August 2008

ActiveVOS Server Architecture. March 2009

Web Services in Oracle Fusion Middleware. Raghu Kodali Consulting Product Manager & SOA Evangelist Oracle Fusion Middleware Oracle USA

The webmethods ESB. The Foundation of your SOA. Jean-Michel Ghyoot, Principal Solution Architect, March 28, 2013

Setting Up an AS4 System

Oracle SOA Suite 11g Oracle SOA Suite 11g HL7 Inbound Example

AquaLogic Service Bus

A Comprehensive Solution for API Management

Oracle Service Bus: - When to use, where to use and when not to use

Query JD Edwards EnterpriseOne Customer Credit using Oracle BPEL Process Manager

Oracle Business Activity Monitoring 11g New Features

Oracle Product Master Data Management Integration

Oracle WebLogic Server: Remote Monitoring and Management

CA Nimsoft Service Desk

Solution Brief ealliance EDI Solutions

Oracle Project Portfolio Management Integration Pack for Primavera P6 and Oracle E-Business Suite Implementation Guide

Oracle Web Service Manager 11g Field level Encryption (in SOA, WLS) March, 2012

OpenESB standalone edition Version 3.0 OpenESB set up in a multiple environments context. Application configurations and variables

SERVICE ORIENTED ARCHITECTURE

Listeners. Formats. Free Form. Formatted

OPEN ESB 2.3 TUTORIAL. Working with FILEBC

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Exam 1z0-102 Oracle Weblogic Server 11g: System Administration I Version: 9.0 [ Total Questions: 111 ]

Building and Using Web Services With JDeveloper 11g

Oracle SOA Suite/B2B as a Critical Mission Hub for a High Volume Message Use Case

OpenESB Standalone Edition V3.0 Web admin console

OPEN ESB 2.3 TUTORIAL. (Throttling in BPEL SE)

Enterprise Service Bus

Next-Generation ESB. Kevin Conner SOA Platform Architect, Red Hat Keith Babo JBoss ESB Project Lead, Red Hat. June 23rd, 2010

WebSphere ESB Best Practices

: Test 217, WebSphere Commerce V6.0. Application Development

A standards-based approach to application integration

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

URI Dialing. Set Up URI Dialing

Getting started with API testing

Reusing Existing * Java EE Applications from Oracle SOA Suite

SOA and ESB. Mark Jeynes IBM Software, Asia Pacific

Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL wann soll welche Komponente eingesetzt werden?

White Paper. TIA Architecture Overview

SCA-based Enterprise Service Bus WebSphere ESB

Amplify Service Integration Developer Productivity with Oracle SOA Suite 12c

Oracle WebLogic Server 11g: Administration Essentials

E-Business Suite Oracle SOA Suite Integration Options

ecommerce: Oracle B2B 11g

JBOSS ESB. open source community experience distilled. Beginner's Guide. Enterprise. Magesh Kumar B

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Using SOA to Enhance Notifications. Rajas Kirtane 8/11/2014

Oracle Application Server Adapters for Files, FTP, Databases, and Enterprise Messaging

SONIC ESB 7. KEY CAPABILITIES > Connects, mediates and controls. KEY BENEFITS > Creates new processes using

ORACLE SOA SUITE. Product Overview

Oracle SOA Suite 12c Implementation

Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0

INTEGRATING ESB / BPM / SOA / AJAX TECHNOLOGIES

What's New in ActiveVOS 9.1

Avoiding Web Services Chaos with WebSphere Service Registry and Repository

ORACLE MANAGED FILE TRANSFER

Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial

IBM WebSphere ESB V6.0.1 Technical Product Overview

Oracle Fusion Middleware

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP LTM for SIP Traffic Management

Release Notes for SOA Suite 11g Technology Preview 4

RED HAT JBOSS FUSE COMPARED WITH ORACLE SERVICE BUS

EBS SOA Integration Options

Oracle SOA Suite 11g: Essential Concepts Student Guide

IBM DataPower SOA Appliances & MQ Interoperability

ORACLE MOBILE SUITE. Complete Mobile Development Solution. Cross Device Solution. Shared Services Infrastructure for Mobility

WebSphere Commerce and Sterling Commerce

Dynamic Decision-Making Web Services Using SAS Stored Processes and SAS Business Rules Manager

IBM. Implementing SMTP and POP3 Scenarios with WebSphere Business Integration Connect. Author: Ronan Dalton

Magic xpi 4.0 Release Notes

Transcription:

DYNAMIC ROUTING OF ENDPOINTS USING ORACLE ENTERPRISE SERVICE BUS (ESB) A White Paper prepared by Raastech Author Ahmed Aboulnaga Copyright Raastech 2010

INTRODUCTION This white paper provides a working example on how to configure an ESB service to dynamically route to multiple endpoints with a single SOAP service adapter using Oracle Enterprise Service Bus (ESB) 10g. The purpose is to allow the ESB service to parse the incoming message, and based on the input, route to the appropriate endpoint, which may not be defined during design time and which may also be updated dynamically as needed. Why is dynamic routing needed? No modifications to the ESB service is needed if a new SOAP service is added which has the same WSDL but a different endpoint. This allows for you to dynamically add multiple endpoints without having to re-update and redeploy your service. What are the disadvantages of this approach? It is not possible through the ESB Control console to show how the request was routed (i.e., which endpoint was invoked). One has to edit the XSL to add the variables during the design time, though this is a one time process. AN OVERVIEW OF IMPLEMENTING DYNAMIC ROUTING This section provides a brief overview of the steps involved in using ESB to dynamically route. 1. Create a Domain Value Map (DVM) within ESB Control that contains the endpoints. For example, there may be 3 copies of the same service, each one designed to create a customer record based on different continents. System EBS-US EBS-EU EBS-AS Endpoint http://cpllc.info:7777/createcustomer http://eu.cpllc.info:80/createcustomer https://as.cpllc.info/createcustomer Raastech White Paper 2 / 8

For example, if a U.S. customer payload is encountered, the expectation is that it is routed to the EBS-US service to be created within that environment. 2. Create the mapper file (i.e., XSL transformation) within your ESB service, and map/transform the fields as necessary. This takes place during design time. 3. View the source of the XSL file, and add the following (which is an example) immediately before the <xsl:template match="/"> tag to update the outbound header: <xsl:variable name="locationin" select="orcl:lookup-dvm('endpoints', 'System', /imp1:datas/imp1:data/imp1:application, 'Endpoint','')"/> <xsl:variable name="locationout" select="ehdr:setoutboundheader('/shdr:esbheader/shdr:location', $LocationIn, 'shdr=http://xmlns.oracle.com/esb;')"/> EXPLANATION Here, we explain the steps above in more detail. The following statement performs the DVM lookup, and places the lookup result in a variable called $LocationIn: <xsl:variable name="locationin" select="orcl:lookup-dvm('endpoints', 'System', /imp1:datas/imp1:data/imp1:application, 'Endpoint','')"/> The lookup-dvm function accepts 5 parameters and takes the form: Parameter Example Explanation dvmname Endpoints Name of the DVM sourcecolumn System The column that will be looked up in the DVM sourcevalue /imp1:datas/imp1:data/imp1:application The value to look up within this column targetcolumn Endpoint The name of the target column to get value defaultvalue Default value Raastech White Paper 3 / 8

The setoutboundheader function is one of four key header transformation extension functions, as shown in the example below: <xsl:variable name="locationout" select="ehdr:setoutboundheader('/shdr:esbheader/shdr:location', $LocationIn, 'shdr=http://xmlns.oracle.com/esb;')"/> The setoutboundheader function accepts 3 parameters and takes the form: Parameter Example Explanation xpathexpression /shdr:esbheader/shdr:location There are several in and out header properties for JMS, File, AQ, and SOAP that can be manipulated Value System Value namespacedecl shdr:http://xmlns.oracle.com/esb Takes the form prefix=namespace; DEVELOPMENT WALK-THROUGH The following steps walk through the development process using JDeveloper and ESB Control. 1. Create the DVM Create an XML file (e.g., endpoints_dvm.xml) with the following content: <?xml version = '1.0' encoding = 'UTF-8'?> <dvm name="endpoints" isnew="null"> <description>dynamic endpoints for all systems</description> <columns> <column name="system"/> <column name="endpoint"/> </columns> <rows> <row> <cell>ebs-us</cell> <cell>http://cpllc.info:7777/createcustomer</cell> </row> <row> <cell>ebs-eu</cell> <cell>http://eu.cpllc.info:80/createcustomer</cell> </row> Raastech White Paper 4 / 8

<row> <cell>ebs-as</cell> <cell>https://as.cpllc.info/createcustomer</cell> </row> </dvm> This DVM represents the mapping between the target systems and their actual endpoints, and can be updated dynamically in the future and/or as needed. In the example above, the DVM has two columns; the first column System denotes the system name you want to route to, and the second column Endpoint is the actual endpoint. 2. Import the DVM Using the ESB Control console, create the DVM by importing the XML file above. 3. Create the ESB Service Using JDeveloper, create a simple ESB consisting of: Inbound file adapter Routing service Outbound SOAP service Only one outbound SOAP service is required, even though there are 3 endpoints. The WSDL of this SOAP service may have a hardcoded SOAP address location similar to the following, but can be ignored. For example, it may look like the following: <soap:address location="http://192.168.1.50/cust/customerregservicesoaphttp"/> 4. Create the Mapper File Raastech White Paper 5 / 8

Create a new mapper file (i.e., XSL transformation) between the routing service and the SOAP service. 5. Transform the Outbound Header Utilize the header transformation extension function setoutboundheader to update the outbound header and override the SOAP address location that is hardcoded in the WSDL. Click on Source to view the source of your XSL file just created, and immediately before the statement <xsl:template match="/">, add the following: <xsl:variable name="locationin" select="orcl:lookup-dvm('endpoints', 'System', /imp1:datas/imp1:data/imp1:application, 'Endpoint','')"/> <xsl:variable name="locationout" select="ehdr:setoutboundheader('/shdr:esbheader/shdr:location', $LocationIn, 'shdr=http://xmlns.oracle.com/esb;')"/> The design will look similar to the following. As seen from the screenshot below, in addition to the mapping, two variables are created; LocationIn and LocationOut: 6. Test the ESB Service This example uses the message input variables (/imp1:datas/imp1:data/imp1:application) to perform a DVM lookup and identify the target endpoint to invoke. ADDITIONAL INFORMATION Other header functions that can be utilized include: String getrequestheader (String xpathexpression, String namespacedecl) void setoutboundheader (String xpathexpression, String value, String namespacedecl) Raastech White Paper 6 / 8

String getinboundresponseheader (String xpathexpression, String namespacedecl) void setresponseheader (String xpathexpression, String value, String namespacedecl) The table below lists additional header properties for various adapters: References for Oracle ESB Header Support: http://www.oracle.com/technology/products/integration/esb/files/esb-presentationheaders.pdf About Raastech: Raastech specializes in information technology development and systems integration. Founded in 2009, Raastech provides management consulting, systems development, and integration to both federal agencies and commercial organizations. We provide value to our clients by being innovative and dependable partners in achieving their objectives. For more information, please visit http://www.raastech.com. About the Author: Ahmed Aboulnaga is a Technical Director at Raastech and has extensive experience in Oracle Fusion Middleware. He has been involved in the architecting and implementation of large scale systems involving middleware technologies such as Oracle SOA Suite, Oracle Application Integration Architecture, Oracle Data Integrator, Oracle Integration B2B, Oracle Identity Management, and numerous other Oracle middleware technologies. Raastech White Paper 7 / 8

Raastech White Paper: Overview of the Oracle AIA Foundation Pack PIP Auditor September 2010 Raastech Headquarters: 2201 Cooperative Way, Suite 600 Herndon, VA 20171 www.raastech.com Copyright 2010 Raastech, Inc. All rights reserved. Raastech White Paper 8 / 8