Hands-On with Oracle SOA

98
Hands-On with Oracle SOA November 14 th , 2012 10:30-11:15 Room vt445 Cristian Durca Ahmed Aboulnaga Technical Architect Technical Director Raastec, Inc. Raastech, Inc.

Transcript of Hands-On with Oracle SOA

Page 1: Hands-On with Oracle SOA

Hands-On with Oracle SOA

November 14th, 2012

10:30-11:15

Room vt445

Cristian Durca Ahmed Aboulnaga Technical Architect Technical Director

Raastec, Inc. Raastech, Inc.

Page 2: Hands-On with Oracle SOA

Slide 2 of 98 © Raastech, Inc. 2012 | All rights reserved.

1. Understanding Oracle Integration Products

2. Our “Integration” Use Case

3. Implementing the Solution

4. Summary

Agenda

Page 3: Hands-On with Oracle SOA

Slide 3 of 98 © Raastech, Inc. 2012 | All rights reserved.

UNDERSTANDING ORACLE INTEGRATION PRODUCTS

Page 4: Hands-On with Oracle SOA

Slide 4 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle Fusion Middleware

Page 5: Hands-On with Oracle SOA

Slide 5 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle Fusion Middleware

Oracle Fusion Apps

Oracle E-Business Suite

Oracle JD Edwards

Oracle PeopleSoft

Oracle Siebel

Oracle Retail

More…

Page 6: Hands-On with Oracle SOA

Slide 6 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle Fusion Middleware

Oracle Database

Oracle MySQL

Page 7: Hands-On with Oracle SOA

Slide 7 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle Fusion Middleware

Oracle Enterprise Linux

Oracle Solaris

Oracle VM

Oracle Exadata/Exalogic

Oracle SPARC

Oracle Storage Products

Page 8: Hands-On with Oracle SOA

Slide 8 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle Fusion Middleware

Oracle Fusion Middleware

Page 9: Hands-On with Oracle SOA

Slide 9 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle SOA Suite

Oracle Service Bus (OSB)

Oracle Data Integrator (ODI)

Oracle Web Services Manager (OWSM)

Oracle Application Integration Architecture (AIA)

Oracle Business Activity Monitoring (BAM)

Oracle GoldenGate

Oracle Enterprise Repository (OER)

Oracle Enterprise Gateway (OEG)

Oracle Service Registry (OSR)

Oracle B2B Integration

Oracle Integration Products

Page 10: Hands-On with Oracle SOA

Slide 10 of 98 © Raastech, Inc. 2012 | All rights reserved.

Oracle SOA Suite

Oracle Service Bus (OSB)

Oracle Data Integrator (ODI)

Oracle Web Services Manager (OWSM)

Oracle Application Integration Architecture (AIA)

Oracle Business Activity Monitoring (BAM)

Oracle GoldenGate

Oracle Enterprise Repository (OER)

Oracle Enterprise Gateway (OEG)

Oracle Service Registry (OSR)

Oracle B2B Integration

Oracle Integration Products

Page 11: Hands-On with Oracle SOA

Slide 11 of 98 © Raastech, Inc. 2012 | All rights reserved.

Transforms complex architectures into agile integration

networks by connecting, mediating, and managing

interactions between services and applications

Delivers low-cost, standards-based integration for mission

critical SOA environments where extreme performance

and scalability are requirements

Page 12: Hands-On with Oracle SOA

Slide 12 of 98 © Raastech, Inc. 2012 | All rights reserved.

A comprehensive and easy-to-use solution for policy

management and security of service infrastructure

Provides visibility and control of the policies through a

centralized administration interface offered by Oracle

Enterprise Manager

Page 13: Hands-On with Oracle SOA

Slide 13 of 98 © Raastech, Inc. 2012 | All rights reserved.

A comprehensive, hot-pluggable software suite to build,

deploy and manage Service-Oriented Architectures

(SOA)

Unified application development tooling and end-to-end

lifecycle management

Page 14: Hands-On with Oracle SOA

Slide 14 of 98 © Raastech, Inc. 2012 | All rights reserved.

Gives business executives the ability to monitor their

business services and processes in the enterprise

Correlate KPIs down to the actual business process

themselves

Allows the ability to change business processes quickly or

to take corrective action if the business environment

changes

Page 15: Hands-On with Oracle SOA

Slide 15 of 98 © Raastech, Inc. 2012 | All rights reserved.

OUR “INTEGRATION” USE CASE

Page 16: Hands-On with Oracle SOA

Slide 16 of 98 © Raastech, Inc. 2012 | All rights reserved.

High Level Flow of Use Case

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 17: Hands-On with Oracle SOA

Slide 17 of 98 © Raastech, Inc. 2012 | All rights reserved.

Consider using OSB as your entry (and/or exit) points

OSB is lightweight, and easily supports throttling and caching

OSB proxy services are usually exposed as web services

Why OSB?

Web Application

OSB Proxy Service

Mobile Application

OSB Proxy Service

OSB Proxy Service

OSB Proxy Service

Page 18: Hands-On with Oracle SOA

Slide 18 of 98 © Raastech, Inc. 2012 | All rights reserved.

<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<wsse:Security soap:mustUnderstand="1">

<wsse:UsernameToken>

<wsse:Username>myusername</wsse:Username>

<wsse:Password>mypassword</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soap:Header>

Install the Oracle Service Bus OWSM Extension to provide

support for WS-Security

Attach the policy “oracle/wss_username_token_service_policy”

Client must supply username and password in the SOAP

header

Why OWSM?

OSB Proxy Service

OWSM Policy

Page 19: Hands-On with Oracle SOA

Slide 19 of 98 © Raastech, Inc. 2012 | All rights reserved.

Incoming payload includes:

Item Number

Quantity

Dollar Amount

Type Flag (‘M’ for mobile, ‘W’ for web)

Use BPEL for complicated flows and/or orchestration

(e.g., calculate tax)

Use Mediator to route to the correct table based on the flag

in the payload

Why SOA Suite?

SOA Suite Composite

BPEL

(calculate tax)

Mediator

(route)

Page 20: Hands-On with Oracle SOA

Slide 20 of 98 © Raastech, Inc. 2012 | All rights reserved.

BAM is essentially a reporting tool

Designed to capture in-flight transactions and report on

them in real-time

Does not impact performance of integration flow

In our use case, publish total dollar amounts of web

orders to BAM for management reporting

Why BAM?

SOA Suite Composite

BAM Reports

Page 21: Hands-On with Oracle SOA

Slide 21 of 98 © Raastech, Inc. 2012 | All rights reserved.

Bringing it all together…

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

The Oracle Integration Layer

Page 22: Hands-On with Oracle SOA

Slide 22 of 98 © Raastech, Inc. 2012 | All rights reserved.

IMPLEMENTING THE SOLUTION

Page 23: Hands-On with Oracle SOA

Slide 23 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create the Order.xsd schema file

An XML schema describes the structure of an XML message

Create XML Schema

<?xml version="1.0" encoding="ISO-8859-1" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Order">

<xs:complexType>

<xs:sequence>

<xs:element name="OrderType" type="xs:string"/>

<xs:element name="ItemNumber" type="xs:string"/>

<xs:element name="Quantity" type="xs:positiveInteger"/>

<xs:element name="Price" type="xs:decimal"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Page 24: Hands-On with Oracle SOA

Slide 24 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 25: Hands-On with Oracle SOA

Slide 25 of 98 © Raastech, Inc. 2012 | All rights reserved.

These tables represent the backend for our order system

Create the backend database tables

CREATE TABLE web_orders (

item_number VARCHAR2(10),

quantity NUMBER,

dollar_amount NUMBER(7,2)

);

CREATE TABLE mobile_orders (

item_number VARCHAR2(10),

quantity NUMBER,

dollar_amount NUMBER(7,2)

);

Page 26: Hands-On with Oracle SOA

Slide 26 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 27: Hands-On with Oracle SOA

Slide 27 of 98 © Raastech, Inc. 2012 | All rights reserved.

BAM Data Objects are essentially tables

Used to store data that is published to BAM

Create the BAM Data Objects

Page 28: Hands-On with Oracle SOA

Slide 28 of 98 © Raastech, Inc. 2012 | All rights reserved.

BAM Data Objects are essentially tables

Used to store data that is published to BAM

Create the BAM Data Objects

Page 29: Hands-On with Oracle SOA

Slide 29 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create the BAM Data Objects

Page 30: Hands-On with Oracle SOA

Slide 30 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 31: Hands-On with Oracle SOA

Slide 31 of 98 © Raastech, Inc. 2012 | All rights reserved.

BAM Data Object

SOA Suite Composite

BPEL

(calculate tax)

Mediator

(route)

WebOrders Table

MobileOrders Table Price x 1.05

OrderType = ‘W’

OrderType = ‘M’

Page 32: Hands-On with Oracle SOA

Slide 32 of 98 © Raastech, Inc. 2012 | All rights reserved.

A SOA composite application can consist of multiple

components, such as:

BPEL component

Mediator component

Database Adapters

BAM Adapter

Open up JDeveloper 11g

Create a new SOA project

Create SOA composite

Page 33: Hands-On with Oracle SOA

Slide 33 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a SOA project

Page 34: Hands-On with Oracle SOA

Slide 34 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a SOA project

Page 35: Hands-On with Oracle SOA

Slide 35 of 98 © Raastech, Inc. 2012 | All rights reserved.

Adapters are used for easily referencing technologies

such as databases, file systems, FTP servers, JMS, and

so forth

The Database Adapter hides the underlying

implementation of the connectivity of the database, so

that the SOA developer can focus on building

integrations

Simply drag the Database Adapter to the external

references pane

Create Database Adapters for each table

Page 36: Hands-On with Oracle SOA

Slide 36 of 98 © Raastech, Inc. 2012 | All rights reserved.

Drag Database Adapter to pane

Page 37: Hands-On with Oracle SOA

Slide 37 of 98 © Raastech, Inc. 2012 | All rights reserved.

Use Database Adapter configuration wizard

Provide a name for the reference

Page 38: Hands-On with Oracle SOA

Slide 38 of 98 © Raastech, Inc. 2012 | All rights reserved.

Choose a database to connect to

Page 39: Hands-On with Oracle SOA

Slide 39 of 98 © Raastech, Inc. 2012 | All rights reserved.

Select table and columns

Select the table name and columns from the database

Page 40: Hands-On with Oracle SOA

Slide 40 of 98 © Raastech, Inc. 2012 | All rights reserved.

Select type of operation on this table

Page 41: Hands-On with Oracle SOA

Slide 41 of 98 © Raastech, Inc. 2012 | All rights reserved.

Database Adapters created in JDeveloper

Page 42: Hands-On with Oracle SOA

Slide 42 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a Mediator component

Mediator’s strengths are in transformation and routing

Route to the Database Adapters that we just created…

…based on a filter on the ‘OrderType’ flag

Create SOA Mediator component

Page 43: Hands-On with Oracle SOA

Slide 43 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create SOA Mediator component

Create a name for the Mediator component

Page 44: Hands-On with Oracle SOA

Slide 44 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create SOA Mediator component

Use the XSD we created earlier as our message input

Page 45: Hands-On with Oracle SOA

Slide 45 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a WSDL for the Mediator component

Page 46: Hands-On with Oracle SOA

Slide 46 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a routing rule

Page 47: Hands-On with Oracle SOA

Slide 47 of 98 © Raastech, Inc. 2012 | All rights reserved.

Select the Database Adapter

Select the Database Adapter we had created earlier

Page 48: Hands-On with Oracle SOA

Slide 48 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a filter expression

Page 49: Hands-On with Oracle SOA

Slide 49 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a filter expression

Page 50: Hands-On with Oracle SOA

Slide 50 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create a transformation

Page 51: Hands-On with Oracle SOA

Slide 51 of 98 © Raastech, Inc. 2012 | All rights reserved.

Map the XML to the Database Adapter object

Page 52: Hands-On with Oracle SOA

Slide 52 of 98 © Raastech, Inc. 2012 | All rights reserved.

How the composite looks like so far

Page 53: Hands-On with Oracle SOA

Slide 53 of 98 © Raastech, Inc. 2012 | All rights reserved.

BPEL is used for orchestration or complicated logic

Simply drag the “BPEL Process” to the composite pane

Create SOA BPEL component

Page 54: Hands-On with Oracle SOA

Slide 54 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create SOA BPEL component

Page 55: Hands-On with Oracle SOA

Slide 55 of 98 © Raastech, Inc. 2012 | All rights reserved.

Link the BPEL to the Mediator

Page 56: Hands-On with Oracle SOA

Slide 56 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create an ‘Assign’ activity

Page 57: Hands-On with Oracle SOA

Slide 57 of 98 © Raastech, Inc. 2012 | All rights reserved.

Multiply the price

Page 58: Hands-On with Oracle SOA

Slide 58 of 98 © Raastech, Inc. 2012 | All rights reserved.

Multiply the price

Page 59: Hands-On with Oracle SOA

Slide 59 of 98 © Raastech, Inc. 2012 | All rights reserved.

Map rest of BPEL elements to Mediator object

Page 60: Hands-On with Oracle SOA

Slide 60 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create an ‘Assign’ activity for the response

Page 61: Hands-On with Oracle SOA

Slide 61 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create an ‘Assign’ activity for the response

Page 62: Hands-On with Oracle SOA

Slide 62 of 98 © Raastech, Inc. 2012 | All rights reserved.

Similar to the Database Adapter, drag the BAM Adapter

Will query the BAM server and list all available data objects

Create BAM Adapter

Page 63: Hands-On with Oracle SOA

Slide 63 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create BAM Adapter

Page 64: Hands-On with Oracle SOA

Slide 64 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create BAM Adapter

Page 65: Hands-On with Oracle SOA

Slide 65 of 98 © Raastech, Inc. 2012 | All rights reserved.

Map BPEL object to BAM object

Page 66: Hands-On with Oracle SOA

Slide 66 of 98 © Raastech, Inc. 2012 | All rights reserved.

How the final SOA composite looks like

Page 67: Hands-On with Oracle SOA

Slide 67 of 98 © Raastech, Inc. 2012 | All rights reserved.

Deploy SOA composite

Right-click on the composite name to deploy to SOA server

URL becomes:

http://soadev:8001/soa-infra/services/default/ProcessOrder/calculatetax_client_ep?WSDL

Page 68: Hands-On with Oracle SOA

Slide 68 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 69: Hands-On with Oracle SOA

Slide 69 of 98 © Raastech, Inc. 2012 | All rights reserved.

OWSM Policy

OSB Project

Proxy

Service

Business

Service

http://soadev:8001/soa-infra/... http://soadev:7001/ProcessOrderProxy/...

SOA Composite

Page 70: Hands-On with Oracle SOA

Slide 70 of 98 © Raastech, Inc. 2012 | All rights reserved.

The OSB server is on a separate managed server

Import the WSDL of the SOA composite

Create a Business Service (the link to the SOA composite)

Create a Proxy Service (the exposed interface)

Secure the Proxy Service with an OWSM Policy

Create OSB project

Page 71: Hands-On with Oracle SOA

Slide 71 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create OSB project

Page 72: Hands-On with Oracle SOA

Slide 72 of 98 © Raastech, Inc. 2012 | All rights reserved.

Import the SOA composite WSDL

Page 73: Hands-On with Oracle SOA

Slide 73 of 98 © Raastech, Inc. 2012 | All rights reserved.

Import the SOA composite WSDL

Page 74: Hands-On with Oracle SOA

Slide 74 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create OSB Business Service

Page 75: Hands-On with Oracle SOA

Slide 75 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create OSB Business Service

Page 76: Hands-On with Oracle SOA

Slide 76 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create OSB Proxy Service

Page 77: Hands-On with Oracle SOA

Slide 77 of 98 © Raastech, Inc. 2012 | All rights reserved.

Create OSB Proxy Service

Page 78: Hands-On with Oracle SOA

Slide 78 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 79: Hands-On with Oracle SOA

Slide 79 of 98 © Raastech, Inc. 2012 | All rights reserved.

Click on Proxy Service

Page 80: Hands-On with Oracle SOA

Slide 80 of 98 © Raastech, Inc. 2012 | All rights reserved.

Attach OWSM Policy to OSB Proxy Service

Page 81: Hands-On with Oracle SOA

Slide 81 of 98 © Raastech, Inc. 2012 | All rights reserved.

To identify exposed URL

Page 82: Hands-On with Oracle SOA

Slide 82 of 98 © Raastech, Inc. 2012 | All rights reserved.

The exposed WSDL for the OSB Proxy Service:

http://soadev:7001/ProcessOrderProxy/ProcessOrderPS?wsdl

This is the WSDL that the web/client applications will invoke

Final OSB exposed WSDL

Page 83: Hands-On with Oracle SOA

Slide 83 of 98 © Raastech, Inc. 2012 | All rights reserved.

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

Page 84: Hands-On with Oracle SOA

Slide 84 of 98 © Raastech, Inc. 2012 | All rights reserved.

Use soapUI to test the WSDL

Test with soapUI

Page 85: Hands-On with Oracle SOA

Slide 85 of 98 © Raastech, Inc. 2012 | All rights reserved.

Observe authentication failure

Seems to be some security error

Valid error… no username/password provided in payload!

Page 86: Hands-On with Oracle SOA

Slide 86 of 98 © Raastech, Inc. 2012 | All rights reserved.

Test with security token in SOAP header

With authentication info in header, we get our ‘Done’ response

Page 87: Hands-On with Oracle SOA

Slide 87 of 98 © Raastech, Inc. 2012 | All rights reserved.

Observe instance in EM Console

Page 88: Hands-On with Oracle SOA

Slide 88 of 98 © Raastech, Inc. 2012 | All rights reserved.

Clicking on the instance ID shows a successful flow

Data only inserted to the ‘WebOrders’ table as expected

View instance flow

Page 89: Hands-On with Oracle SOA

Slide 89 of 98 © Raastech, Inc. 2012 | All rights reserved.

View Mediator instance details

Page 90: Hands-On with Oracle SOA

Slide 90 of 98 © Raastech, Inc. 2012 | All rights reserved.

Querying the database table confirms this

Confirm data in database

Page 91: Hands-On with Oracle SOA

Slide 91 of 98 © Raastech, Inc. 2012 | All rights reserved.

Data also published to BAM!

Can now create a report to query this Data Object

Confirm data in BAM Data Object

Page 92: Hands-On with Oracle SOA

Slide 92 of 98 © Raastech, Inc. 2012 | All rights reserved.

SUMMARY

Page 93: Hands-On with Oracle SOA

Slide 93 of 98 © Raastech, Inc. 2012 | All rights reserved.

1. Create an XML Schema

2. Create the database tables

3. Create the BAM Data Object

Summary

Page 94: Hands-On with Oracle SOA

Slide 94 of 98 © Raastech, Inc. 2012 | All rights reserved.

4. Create the SOA composite with JDeveloper

a. Open up JDeveloper 11g

b. Create a SOA project

c. Create 2 Database Adapter services

d. Create a Mediator component i. Create a web service interface using the XSD file

ii. Create 2 routing rules to the 2 database services

iii. Use a filter expression on the 'OrderType' element

e. Create a BPEL component i. Link the BPEL component with the Mediator component

ii. Map the input of the BPEL to the input of the Mediator

iii. But multiple the price by 1.05

iv. Create a BAM Adapter to the BAM Data Object

v. Map the input of the BPEL to the BAM Adapter

Summary

Page 95: Hands-On with Oracle SOA

Slide 95 of 98 © Raastech, Inc. 2012 | All rights reserved.

5. Deploy the SOA composite

a. Get the WSDL of the SOA composite

6. Create an OSB project

a. Create a Business Service using this SOA WSDL

b. Create a Proxy Service as the OSB interface

c. Secure the Proxy Service with an OWSM Policy

7. Test using soapUI

Summary

Page 96: Hands-On with Oracle SOA

Slide 96 of 98 © Raastech, Inc. 2012 | All rights reserved.

Understand where each product should be aligned

There is some overlap between products

There is no one-size fits all architecture

Understand the difference between and usage of OSB,

OWSM, BAM, and SOA Suite

Observe first hand a walkthrough demo:

OSB used as a passthrough, but has other benefits not demo’ed here

OWSM provides a mechanism to attach security policies to a service

BPEL used for orchestration

Mediator used for routing

Take Aways

Page 97: Hands-On with Oracle SOA

Slide 97 of 98 © Raastech, Inc. 2012 | All rights reserved.

All these products are provided as part of a single Oracle

SOA Suite license, so take advantage of them!

You can use any combination of OSB, BPEL, or Mediator

depending on your needs

Final Thoughts

Page 98: Hands-On with Oracle SOA

Slide 98 of 98 © Raastech, Inc. 2012 | All rights reserved.

Contact Information

Cristian Durca

Technical Architect

[email protected]

Ahmed Aboulnaga

Technical Director

[email protected]