Oracle SOA Development - Hands-On from Start to Finish
-
Upload
raastech -
Category
Technology
-
view
340 -
download
0
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 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 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 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 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 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 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 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 50 of 102@Raastech
Select the Database Adapter we had created earlier
Select the Database Adapter
© 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 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 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 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 83 of 102@Raastech
Attach OWSM Policy to OSB Proxy Service
© 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 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