SOA Suite: Service Bus Workshop Oracle

SOA Suite:
Oracle Service Bus
Workshop
Tal Brown
Oracle SOA Team
http://tech.theoracles.co.il
High Level Reference Architecture
Composite Applications
Process
Portals
Mashups
Docs
Collab
Business Processes
Orchestration
Services & Event Infrastructure
Data Access
Connectivity
Legacy
ERP
Core
Events
SOA Governance
Partners
SOA Security
Messaging
SOA Management
Systems, data & services Integration
Adaptive
Messaging
Adaptive Messaging In a Nutshell…
Enterprise
Services
Oracle Service Bus
Service
Clients
Service Messaging
Application
Client
HTTP/SOAP
Application
Client
JMS
Application
Client
FTP
Application
Client
REST
Application
Client
File
WS-RM
Service
Request / Response
TUX
Service
Synch / Asynch
• Any to Any Protocol
• Any to Any Payload
• XML
• non-XML
• Binary
• No WSDL Required
MQ
Service
Split / Join
EJB
Service
Publish / Subscribe
JCA
Service
• Multiple communications paradigms
–
–
–
–
–
Request/response
Synchronous and asynchronous
One-to-many, many-to-one
Pub-sub
Mix-and-match (e.g. sync-to-async)
Adaptive
Messaging
Applications & Database Integration
Message Enrichment and Chaining
• Adapter Certifications
– Packaged with OSB install
• AQ
• Database
• EBusiness Suite
– Packaged separately
• SAP
• PeopleSoft
• Siebel
• JD Edwards
Connectivity
• Web Service Transports
–
–
–
–
–
HTTP/SOAP
WS-Security
WS-Policy
WS-Addressing
WS-RM
Messaging
Services Transport Layer
Transport SDK
• Traditional Messaging
–
–
–
–
–
–
–
–
JMS
MQ
EJB/RMI
Tuxedo
FTP / SFTP
SMTP
File
Native Database Lookup
Service
Service
Service
Service
• Transport SDK
– Enterprise-specific custom transports
• Interoperability
–
NET, Tibco EMS, IBM MQ, IBM
WebSphere, Apache Axis, B2B
Interchange, iWay 5.5 adapters
.
Reliably connects services by
leveraging standards
OSB Solves Brittle Integration
• Costs
– OSB reduces complexity and increases visibility and re-use
• Time to Market
– OSB insulates business logic from “overhead”
• Scalability
– Proven to handle all dimensions of scalability
• Multi-channel Delivery
– Separates service functionality from presentation layers
• Risk
– Allows cached cloud service results to ensure high availability
and retain control
28
Value Proposition
Oracle Service Bus
Oracle Service Bus
delivers business agility, scalability, and
performance into the business infrastructure to
allow businesses to rapidly respond to new
business requests
Unlike traditional ESBs…
Oracle Service Bus provides predictable scalability
for reducing risk, automated service pooling for high
availability, and service virtualization for agility
delivered within a single solution for a lower total
cost of ownership
29
Key Deliverables
Solutio
Oracle Service Bus
Scalability and
Performance
Agility
Oracle
Service Bus
Rapid Service
Enablement
30
Complete, Open &
Integrated
Business Challenge
Brittle Architecture
Worklist
MAINFRAME
31
Process Portal
MS Office
Online Shopping
Mobile Devices
Oracle Service Bus
Feature Overview
Agile Architecture - Rapidly Respond to Change
Worklist
Process Portal
MS Office
Online Shopping
ORACLE SERVICE BUS
MAINFRAME
32
Mobile Devices
Feature Overview
Service Virtualization
Agility within OSB
Worklist
Proxy Services
• Enforces agility by
replacing direct
coupling with a
flexible virtual
endpoint to the
consumer
MS Office
Online
Shopping
Service
Consumer
Proxy
Services
ORACLE SERVICE BUS
Service
Endpoints
33
Portal
MAINFRAME
Mobile
Devices
Automated Service Pooling
Agility within OSB
Proxy Services
Worklist
Portal
MS Office
Online
Shopping
• Enforces agility by replacing
direct coupling with a flexible
virtual endpoint to the
consumer
ORACLE SERVICE BUS
Business Services
• Access service from multiple
endpoints
• Automated Service Pooling
ensures high availability when
apps go down and during
maintenance
34
X
MAINFRAME
Application
Instance 1
Application
Instance 2
Application
Instance 3
Mobile
Devices
Feature Overview
Business Challenge
Expanding Infrastructure into the Cloud
Increased Risk
• Less control with increasing
dependence on multiple cloud service
providers
Dependence on
cloud vendor
reliability
Performance Degradation
• Increasing cloud service usage results
in higher latency due to Internet vs.
LAN based communication
Cloud Vendor B
Cloud Vendor A
Higher latency with
Internet vs. LAN &
Firewalls
ENTERPRISE SERVICE BUS
Unpredictable Scalability
• Uncertain ability to handle spike in load
Business Apps
X
CRM
35
ERP
Sales
Service Result Cache
Feature Overview
Reliability, Performance and Predictable Scalability
Reduced Risk
Cloud Vendor B
Cloud Vendor A
• Service results available even when
application is down
Improved Performance
• Eliminate repeated application requests
for static data
Result accessed from
cache
Predictable Scalability
• Cached results maintained internally
resulting in less dependence on 3rd
party service provider availability
ORACLE SERVICE BUS
Result accessed from
cache
Business Apps
Failure
X
CRM
36
ERP
Sales
Service Result Cache
Feature Overview
Leveraging Coherence and Oracle Fusion Middleware
Checkbox
enabled
 Cache Results?
 Cache Token
 Time To Live
37
Service Change Center
Rapid Service Enablement with OSB
• Change Center
• Allows for fine-grained tuning of
infrastructure
• No need to redeploy entire project
• Intuitive interface for nondeveloper/administrator
• View & resolve conflicts
• Undo, Re-do tasks
• Audit changes
38
Feature Overview
Leverage Existing Infrastructure
Rapid Service Enablement with OSB
• “Embrace & Extend” Strategy
– Reassure customer they don’t have to re-invent the wheel
– E.g. Retain existing services and existing ESB
– OSB will make all existing services (even tightly coupled
ones) and enforce loose coupling to introduce agility to
their existing architecture
• Ease of Use
– “Fit-to-Purpose” interfaces - Available in a Web-based
console and deeper-dive IDE
• Any-to-Any Protocol Support
–
39
Regardless of new business request, OSB is pre-configured to handle the format
Feature Overview
Market Leading ESB…
Complete - Single ESB…not three like IBM
Integrated - Seamless onramp to SOA and Governance
Open - Any-to-Any protocol support for open standards
Best of Breed - Forrester ESB Wave “Leader” 2009
Complete
Integrated
Open
Best of Breed
#
1
#1
40
Overview
– The goal: Give customers the ability to extend the set of standard
functions used in XQuery expressions and XQuery/XSLT resources
with their own implementations, written in Java.
– The rationale: Certain transformations are too complicated or too
inefficient to be done with XQuery/XSLT language. For example,
reuse utility complex transformation functions already existing in java
or even to do something with a database or some external system.
OSB XQuery
Expression / resource
BEA/Oracle
XQuery 1.0 2004 draft engine
XQ Standard functions
fn:concat
fn:abs
…
OSB built-in extensions
fn-bea:uuid
fn-bea:isUserInRole
…
Custom functions
ns0:myfunc
…
41
OSB XSLT
resource
XSLT Engine
(e.g. Apache Xalan)
Feature Highlights – Java Support
• OSB enhanced to support Java Objects
• In the Pipeline, Java Object is represented as
<ctx:java-content ref=”key1”
xmlns:ctx="http://www.bea.com/wli/sb/context”/>
Request
Pipeline
POJOs
Request
Pipeline
Transport Layer
Application
Client
$body
Register to Object
Repository
Key1={obj}
42
<ctx:javacontent
ref=“key1”/>
Feature Highlights – Java Support
• Message Format in the Pipeline
–
–
–
–
The invocation point is the top element
Each argument is listed as a sub-element
Primitives and string arguments are inlined
POJO parameters referred by java-content ref.
<soap:Body>
<tes:some-method xmlns:tes=”default/someURI"
<arg0>99</arg0>
<arg1>true</arg1>
<arg2><con:java-content ref=”key1”
xmlns:con="http://www.bea.com/wli/sb/context”/></arg2>
<arg3><someXML .../></arg3>
</tes:some-method>
</soap:Body>
– XmlObject arguments can be inlined or passed as ref.
• POJOs can only be modified in the pipeline through Java
Callout
43
Feature Highlights – JEJB Inbound
Client Application
Invocation Point =
“Method1”
Args= {Pojo1, …}
Method1
•
•
44
Stateless Session Bean
Method1(Pojo1,…)
Request Pipeline
Result
Method2(Pojo2,…)
Response Pipeline
Inbound EJB Transport exposes the Pipeline as a Stateless Session
Bean
– Communication between the client and proxy service is an EJB
invocation
– Client defines the SLSB interface exposed by the JEJB Proxy
service
– EJB artifacts are generated on the fly at the time of proxy
creation
Transaction and security context is propagated from the client into
the Bus
Feature Highlights – JEJB Outbound
• Business Service URI
points to the JNDI
Provider and JNDI name
of the Remote EJB
45
Feature Highlights – JEJB Outbound
• User Configurations:
–
–
–
–
–
Dispatch Policy
EJB Spec Version
Pass XMLBeans by value
Security Information
Client Jar
• Client Jar contains the
remote/home or business
interfaces to be accessed
by the Business Service
– User selects the EJB
Interface to be accessed
by the JEJB Business
service
46
Feature Highlights – JMS Transport JMS
Queue
Register the Object
with Object Repository
•
•
47
$bodyRequest
Pipeline
<ctx:java-content
ref=”jcid" />
Object
Message
JMS Business
Service
Object
JMS Message
JMS Proxy
Oracle Service Bus
Busine
ss
JMS
Queue
Retrieve the Object
from Object Repository
JMS Services configured with Messaging type ‘Java’ can
receive/send JMS Objects messages
Java Object Support for both JMS inbound and outbound
Overview - Message Flow
Transaction
Service
Clients
FTP
Enterprise
Services
Oracle Service Bus
HTTP
Application
Client
HTTP/SOAP
JMS
Prox
y
Busine
ss
JMS
Service
• Atomic Message Flow
– Simple as checking a box
– All transactional work in message flow committed or aborted
• E.g. Publish, Service Callouts (QOS EO), Reporting, Java Callout, Route
• Two settings for Proxy
– Transaction Required ?
– Same Transaction For Response ?
Benefits
Message flow can execute within TX regardless of the Inbound Protocol
48
Demo
JMS
store
49
JMS
store
Publish
QOS = EO
Request path
route
Response Path
JCA DB
business service
JMS proxy (NON XA)
Diagram of Use Case
Oracle
XE
Overview - Service Result Caching
Service
Provider
Process Flow /
Orchestration
50
Oracle Service Bus
Service
Consumer
Legacy
• Problem
– External service is invoked every time for results
that may be reasonably static
• Eg. Product details, discount info
• Solution
– Service Result Caching
• Benefits
– Faster response times to clients/users
– Reduce load on potentially slow (legacy)
backend systems
– Cache data is always consistent and available
– Operational ease in managing cache capacity
Overview - Service Result Caching
If results not in cache, invoke
service & cache results
Oracle Service Bus
Service
Consumer
Service
Provider
Side Cache Pattern
Check cache
51
Coherence Data Grid
Primary
Node
Get / Put (Cachekey)
P
OSB
Result
Cache
Process Flow /
Orchestration
Legacy
Service Data
Backup
Node
B
Feature Highlights
Business Service - Configuration Details
How to calculate the Cache Token
How long the cached result
will be kept for
52
Feature Highlights
Global Settings
53
Feature Highlights
Business Service - Operational Settings
54
Feature Highlights
Dashboard - Service Health
How often the external
service is invoked
How often the cache is hit
How often the cache is hit
to the external service
55