Oracle SOA Development - Hands-On from Start to Finish

102
Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223 [email protected] Oracle SOA Development Hands-On from Start to Finish Wednesday, November 18,2015 2:20 - 3:15 pm VT425

Transcript of Oracle SOA Development - Hands-On from Start to Finish

Raastech, Inc.2201 Cooperative Way, Suite 600Herndon, VA [email protected]

Oracle SOA DevelopmentHands-On from Start to Finish

Wednesday, November 18,20152:20 - 3:15 pm

VT425

© Raastech, Inc. 2015 | All rights reserved. Slide 2 of 102@Raastech

Agenda

1. Understanding Oracle Integration Products

2. Our “Integration” Use Case

3. Implementing the Solution

4. Summary

© Raastech, Inc. 2015 | All rights reserved. Slide 3 of 102@Raastech

© Raastech, Inc. 2015 | All rights reserved. Slide 4 of 102@Raastech

About Me

Ahmed Aboulnaga @Ahmed_Aboulnaga

18+ years Oracle experience

Author of “Oracle SOA Suite 11g Administrator’s Handbook”

Author of “Oracle SOA Suite 12c Administrator’s Guide”

OCE (SOA Foundation Practitioner)

Oracle ACE

© Raastech, Inc. 2015 | All rights reserved. Slide 5 of 102@Raastech

About Raastech

Small systems integrator founded in 2009

Headquartered in the Washington DC area

Specializes in Oracle Fusion Middleware

Oracle Platinum Partner 1 in 3,000 worldwide

Oracle SOA Specialized 1 in 1,500 worldwide

Oracle ACEs 2 in 500 worldwide

© Raastech, Inc. 2015 | All rights reserved. Slide 6 of 102@Raastech

© Raastech, Inc. 2015 | All rights reserved. Slide 7 of 102@Raastech

Oracle Fusion Middleware

© Raastech, Inc. 2015 | All rights reserved. Slide 8 of 102@Raastech

Oracle Fusion Apps

Oracle E-Business Suite

Oracle JD Edwards

Oracle PeopleSoft

Oracle Siebel

Oracle Retail

More…

Oracle Fusion Middleware

© Raastech, Inc. 2015 | All rights reserved. Slide 9 of 102@Raastech

Oracle Database

Oracle MySQL

Oracle Fusion Middleware

© Raastech, Inc. 2015 | All rights reserved. Slide 10 of 102@Raastech

Oracle Linux

Oracle Solaris

Oracle VM

Oracle Exadata/Exalogic

Oracle SPARC

Oracle Storage Products

Oracle Fusion Middleware

© Raastech, Inc. 2015 | All rights reserved. Slide 11 of 102@Raastech

Oracle Fusion Middleware

Oracle Fusion Middleware

© Raastech, Inc. 2015 | All rights reserved. Slide 12 of 102@Raastech

Oracle Integration Products

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 API Gateway (OAG)

Oracle Service Registry (OSR)

Oracle B2B Integration

© Raastech, Inc. 2015 | All rights reserved. Slide 13 of 102@Raastech

Oracle Integration Products

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

© Raastech, Inc. 2015 | All rights reserved. Slide 14 of 102@Raastech

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

© Raastech, Inc. 2015 | All rights reserved. Slide 15 of 102@Raastech

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

© Raastech, Inc. 2015 | All rights reserved. Slide 16 of 102@Raastech

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

© Raastech, Inc. 2015 | All rights reserved. Slide 17 of 102@Raastech

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

© Raastech, Inc. 2015 | All rights reserved. Slide 18 of 102@Raastech

© Raastech, Inc. 2015 | All rights reserved. Slide 19 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

High-Level Flow of Use Case

© Raastech, Inc. 2015 | All rights reserved. Slide 20 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

OSB Proxy Service

OSB Proxy Service

OSB Proxy Service

Why OSB?

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

© Raastech, Inc. 2015 | All rights reserved. Slide 21 of 102@Raastech

<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> OSB Proxy Service

OWSM Policy

Why OWSM?

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

© Raastech, Inc. 2015 | All rights reserved. Slide 22 of 102@Raastech

SOA Suite Composite

BPEL(calculate tax)

Mediator(route)

Why SOA Suite?

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

© Raastech, Inc. 2015 | All rights reserved. Slide 23 of 102@Raastech

SOA Suite Composite

BAM Reports

Why BAM?

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

© Raastech, Inc. 2015 | All rights reserved. Slide 24 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

The Oracle Integration Layer

Bringing it all together…

© Raastech, Inc. 2015 | All rights reserved. Slide 25 of 102@Raastech

© Raastech, Inc. 2015 | All rights reserved. Slide 26 of 102@Raastech

<?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>

Create XML Schema

Create the Order.xsd schema file

An XML schema describes the structure of an XML message

© Raastech, Inc. 2015 | All rights reserved. Slide 27 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 28 of 102@Raastech

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)

);

Create the backend database tables

These tables represent the backend for our order system

© Raastech, Inc. 2015 | All rights reserved. Slide 29 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 30 of 102@Raastech

Create the BAM Data Objects

BAM Data Objects are essentially tables

Used to store data that is published to BAM

© Raastech, Inc. 2015 | All rights reserved. Slide 31 of 102@Raastech

BAM Data Objects are essentially tables

Used to store data that is published to BAM

Create the BAM Data Objects

© Raastech, Inc. 2015 | All rights reserved. Slide 32 of 102@Raastech

Create the BAM Data Objects

© Raastech, Inc. 2015 | All rights reserved. Slide 33 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 34 of 102@Raastech

BAMData Object

SOA Suite Composite

BPEL(calculate tax)

Mediator(route)

WebOrders Table

MobileOrders Table

Price x 1.05

OrderType = ‘W’

OrderType = ‘M’

© Raastech, Inc. 2015 | All rights reserved. Slide 35 of 102@Raastech

Create SOA composite

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

© Raastech, Inc. 2015 | All rights reserved. Slide 36 of 102@Raastech

Create a SOA project

© Raastech, Inc. 2015 | All rights reserved. Slide 37 of 102@Raastech

Create a SOA project

© Raastech, Inc. 2015 | All rights reserved. Slide 38 of 102@Raastech

Create Database Adapters for each table

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

© Raastech, Inc. 2015 | All rights reserved. Slide 39 of 102@Raastech

Drag Database Adapter to pane

© Raastech, Inc. 2015 | All rights reserved. Slide 40 of 102@Raastech

Provide a name for the reference

Use Database Adapter configuration wizard

© Raastech, Inc. 2015 | All rights reserved. Slide 41 of 102@Raastech

Choose a database to connect to

© Raastech, Inc. 2015 | All rights reserved. Slide 42 of 102@Raastech

Select the table name and columns from the database

Select table and columns

© Raastech, Inc. 2015 | All rights reserved. Slide 43 of 102@Raastech

Select type of operation on this table

© Raastech, Inc. 2015 | All rights reserved. Slide 44 of 102@Raastech

Database Adapters created in JDeveloper

© Raastech, Inc. 2015 | All rights reserved. Slide 45 of 102@Raastech

Create SOA Mediator component

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

© Raastech, Inc. 2015 | All rights reserved. Slide 46 of 102@Raastech

Create a name for the Mediator component

Create SOA Mediator component

© Raastech, Inc. 2015 | All rights reserved. Slide 47 of 102@Raastech

Use the XSD we created earlier as our message input

Create SOA Mediator component

© Raastech, Inc. 2015 | All rights reserved. Slide 48 of 102@Raastech

Create a WSDL for the Mediator component

© Raastech, Inc. 2015 | All rights reserved. Slide 49 of 102@Raastech

Create a routing rule

© Raastech, Inc. 2015 | All rights reserved. Slide 50 of 102@Raastech

Select the Database Adapter we had created earlier

Select the Database Adapter

© Raastech, Inc. 2015 | All rights reserved. Slide 51 of 102@Raastech

Create a filter expression

© Raastech, Inc. 2015 | All rights reserved. Slide 52 of 102@Raastech

Create a filter expression

© Raastech, Inc. 2015 | All rights reserved. Slide 53 of 102@Raastech

Create a transformation

© Raastech, Inc. 2015 | All rights reserved. Slide 54 of 102@Raastech

Map the XML to the Database Adapter object

© Raastech, Inc. 2015 | All rights reserved. Slide 55 of 102@Raastech

How the composite looks like so far

© Raastech, Inc. 2015 | All rights reserved. Slide 56 of 102@Raastech

BPEL is used for orchestration or complicated logic

Simply drag the “BPEL Process” to the composite pane

Create SOA BPEL component

© Raastech, Inc. 2015 | All rights reserved. Slide 57 of 102@Raastech

Create SOA BPEL component

© Raastech, Inc. 2015 | All rights reserved. Slide 58 of 102@Raastech

Link the BPEL to the Mediator

© Raastech, Inc. 2015 | All rights reserved. Slide 59 of 102@Raastech

Create an ‘Assign’ activity

© Raastech, Inc. 2015 | All rights reserved. Slide 60 of 102@Raastech

Multiple the price

© Raastech, Inc. 2015 | All rights reserved. Slide 61 of 102@Raastech

Multiply the price

© Raastech, Inc. 2015 | All rights reserved. Slide 62 of 102@Raastech

Map rest of BPEL elements to Mediator object

© Raastech, Inc. 2015 | All rights reserved. Slide 63 of 102@Raastech

Create an ‘Assign’ activity for the response

© Raastech, Inc. 2015 | All rights reserved. Slide 64 of 102@Raastech

Create an ‘Assign’ activity for the response

© Raastech, Inc. 2015 | All rights reserved. Slide 65 of 102@Raastech

Create BAM Adapter

Similar to the Database Adapter, drag the BAM Adapter

Will query the BAM server and list all available data objects

© Raastech, Inc. 2015 | All rights reserved. Slide 66 of 102@Raastech

Create BAM Adapter

© Raastech, Inc. 2015 | All rights reserved. Slide 67 of 102@Raastech

Create BAM Adapter

© Raastech, Inc. 2015 | All rights reserved. Slide 68 of 102@Raastech

Map BPEL object to BAM object

© Raastech, Inc. 2015 | All rights reserved. Slide 69 of 102@Raastech

How the final SOA composite looks like

© Raastech, Inc. 2015 | All rights reserved. Slide 70 of 102@Raastech

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

© Raastech, Inc. 2015 | All rights reserved. Slide 71 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 72 of 102@Raastech

OWSM Policy

OSB Project

ProxyService

Business Service

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

SOA Composite

© Raastech, Inc. 2015 | All rights reserved. Slide 73 of 102@Raastech

Create OSB project

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

© Raastech, Inc. 2015 | All rights reserved. Slide 74 of 102@Raastech

Create OSB project

© Raastech, Inc. 2015 | All rights reserved. Slide 75 of 102@Raastech

Import the SOA composite WSDL

© Raastech, Inc. 2015 | All rights reserved. Slide 76 of 102@Raastech

Import the SOA composite WSDL

© Raastech, Inc. 2015 | All rights reserved. Slide 77 of 102@Raastech

Create OSB Business Service

© Raastech, Inc. 2015 | All rights reserved. Slide 78 of 102@Raastech

Create OSB Business Service

© Raastech, Inc. 2015 | All rights reserved. Slide 79 of 102@Raastech

Create OSB Proxy Service

© Raastech, Inc. 2015 | All rights reserved. Slide 80 of 102@Raastech

Create OSB Proxy Service

© Raastech, Inc. 2015 | All rights reserved. Slide 81 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 82 of 102@Raastech

Click on Proxy Service

© Raastech, Inc. 2015 | All rights reserved. Slide 83 of 102@Raastech

Attach OWSM Policy to OSB Proxy Service

© Raastech, Inc. 2015 | All rights reserved. Slide 84 of 102@Raastech

…to identify exposed URL

© Raastech, Inc. 2015 | All rights reserved. Slide 85 of 102@Raastech

Final OSB exposed WSDL

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

© Raastech, Inc. 2015 | All rights reserved. Slide 86 of 102@Raastech

Web Application

OSB Proxy Service

Mobile Application

SOA Suite Composite

Database Table 1

& Table 2

BAM Reports

OWSM Policy

© Raastech, Inc. 2015 | All rights reserved. Slide 87 of 102@Raastech

Test with soapUI

Use soapUI to test the WSDL

© Raastech, Inc. 2015 | All rights reserved. Slide 88 of 102@Raastech

Observe authentication failure

Seems to be some security error

Valid error… no username/password provided in payload!

© Raastech, Inc. 2015 | All rights reserved. Slide 89 of 102@Raastech

Test with security token in SOAP header

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

© Raastech, Inc. 2015 | All rights reserved. Slide 90 of 102@Raastech

Observe instance in EM Console

© Raastech, Inc. 2015 | All rights reserved. Slide 91 of 102@Raastech

View instance flow

Clicking on the instance ID shows a successful flow

Data only inserted to the ‘WebOrders’ table as expected

© Raastech, Inc. 2015 | All rights reserved. Slide 92 of 102@Raastech

View Mediator instance details

© Raastech, Inc. 2015 | All rights reserved. Slide 93 of 102@Raastech

Confirm data in database

Querying the database table confirms this

© Raastech, Inc. 2015 | All rights reserved. Slide 94 of 102@Raastech

Confirm data in BAM Data Object

Data also published to BAM!

Can now create a report to query this Data Object

© Raastech, Inc. 2015 | All rights reserved. Slide 95 of 102@Raastech

© Raastech, Inc. 2015 | All rights reserved. Slide 96 of 102@Raastech

Summary

1. Create an XML Schema

2. Create the database tables

3. Create the BAM Data Object

© Raastech, Inc. 2015 | All rights reserved. Slide 97 of 102@Raastech

Summary

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 componenti. Create a web service interface using the XSD fileii. Create 2 routing rules to the 2 database servicesiii. Use a filter expression on the 'OrderType' element

e. Create a BPEL componenti. Link the BPEL component with the Mediator componentii. Map the input of the BPEL to the input of the Mediatoriii. But multiple the price by 1.05iv. Create a BAM Adapter to the BAM Data Objectv. Map the input of the BPEL to the BAM Adapter

© Raastech, Inc. 2015 | All rights reserved. Slide 98 of 102@Raastech

Summary

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

© Raastech, Inc. 2015 | All rights reserved. Slide 99 of 102@Raastech

Take Aways

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

© Raastech, Inc. 2015 | All rights reserved. Slide 100 of 102@Raastech

Final Thoughts

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

© Raastech, Inc. 2015 | All rights reserved. Slide 101 of 102@Raastech

Contact Information

Ahmed Aboulnaga

Technical Director

@Ahmed_Aboulnaga

[email protected]

© Raastech, Inc. 2015 | All rights reserved. Slide 102 of 102@Raastech

Q&A