This document provides an overview and introduction to Oracle Service Bus 11g. It discusses the positioning of a service bus compared to EAI and BPM. It also summarizes the core features of OSB including loose coupling, location transparency, dynamic routing, schema transformation, and protocol mediation. The document reviews OSB administration interfaces and provides examples of monitoring capabilities in OSB.
3. Agenda
1. Introduction
2. Service Bus Positioning
3. Core OSB Features, Development
4. Monitoring, Security and Clustering
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #3
4. • Frank Munz
• Research in supercomputing and
medical imaging
• Worked for and with TIBCO, BEA and Oracle
• Founded munz & more in 2006
• Focus Oracle middleware …
Who is this guy?
Slide #4(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
7. Interwoven silos with point to point integration
The Enemy
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #7
Portal
RichClient
WebApp
Fraud
Billing
Network
CRM
web
service?
-‐>
8. General Questions
Slide #8(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Where is your business logic ?
What if you need to change it?
How many systems require changes if one
system changes?
Do Web Services help?
-> tight coupling L
9. Why not use e.g. EJBs then?
Similar situation for EJBs:
• Java only
• Changes in interface require new stubs
-> changes in client jar file
Slide #9(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
10. Enterprise Application Integration
(EAI)
EAI tries to solve the integration problem
Examples of EAI System are:
• BEA Weblogic Integration (=WLI, discontinued)
• TIBCO Business Works
• Vitria
• WebMethods
Slide #10(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
11. EAI Characteristics
• Addresses the integration problem
-> Supports plenty of technical protocols
• You need to DEPLOY the solution (EAR / JVM)
• Does NOT support real business processes
-> Technical level, NOT business level
-> No long running processes (e.g. 10 years?)
-> Not good in versioning
Slide #11(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
12. EAI reduces complexity from O(n*n) to O(n):
One change per system changed.
Reduced Complexity
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #12
EAI
-‐>OSB
Portal
RichClient
WebApp
Fraud
FTP
Billing
JMS
Network
EJB
CRM
JAXWS
13. Business Process Management
(BPM)
BPM deals with business workflows
Ideally: what you design is executable
-> Visio templates do not qualify as BPM
Examples of BPM Software:
• Oracle BPM = Aqualogic BPM = Fuego
• TIBCO IProcess & TIBCO InConcert
Slide #13(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
14. BPM Characteristics
• Business architect draws executable workflow
that makes sense for business -> business logic
• Human interaction
• Long running processes
(e.g. 2 yearly vehicle inspection stickers, TÜV)
• Versioning of running processes
Slide #14(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
15. Service Bus
• Similar to EAI (same protocols) but
configuration driven
• Service Bus is stateless
• Often replaces EAI:
Weblogic Integration (=EAI) is obsolete now
• You design message flows on a technical level
Slide #15(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
16. Service Bus
-> Service Virtualization Layer
Slide #16(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
17. Drag and Drop Programming
BPM, EAI and
ESB:
They all have
executable,
graphical flow
diagrams.
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #17
18. Why OSB is not BPM nor EAI
… not a BPM system:
-> neither long running nor stateful nor versioning
… more then an EAI system:
-> configuration driven, registry / repository integration,
SOA focused and better monitoring with SLAs.
OSB typically does NOT host the services
Slide #18(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
19. SOA Definition
"Service-Oriented Architecture is an IT strategy
that organizes the discrete functions contained
in enterprise applications into interoperable,
standards-based services that can be combined
and reused quickly to meet business needs."
Slide #19(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
20. What is SOA?
SOA = BPM + ESB + X
so what is X? Repository, Registry, Governance, …
and what happened with EAI? often replaced by ESB
Slide #20(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
22. Oracle Service Bus
OSB 10gR3
• OSB was BEA Aqualogic Service Bus (ALSB)
• ALSB based on code from Weblogic
Integration (EAI)
• Key product of the BEA acquisition
• Integrates with UDDI V3 registry e.g.
Oracle Enterprise Registry
Slide #22(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
23. (c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #23
Unified
RunJme
Policy Manager
Oracle
Service
Bus
Common JCA-based connectivity infrastructure
Web-‐based
console
Mediator
Oracle
WLS
WLIntegraJon
WLI
SQL
SAP
etc.
MQSeries
ALDataServicesPlaPorm
ALDSP
SOAP,
WS
JMS,RMI
DSP,
SOAP
JPD,
SOAP
SOAP,
(s)Tp,
file
XQuery
MQ
Oracle
Tuxedo
Business
Rules
Human
Workflow
BPEL/BPMN
Eclipse
/
JDeveloper
24. Service Bus Functionality Overview I
• Loose coupling
• Location Transparency
• Dynamic Routing
• Schema Transformation
• Protocol mix and match
Slide #24(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
25. Service Bus Functionality Overview II
• Service Aggregation
• Load balancing, Clustering for Availability
• Security
• Monitoring
• Configuration driven
Slide #25(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
26. Loose Coupling / Mediation
1. Clients talk to service bus
(NOT directly to service implementation)
2. OSB intercepts call = Service Mediation
3. OSB calls service implementation
OSB acts as "service virtualization layer"
OSB can adapt/change message in step 2.
Slide #26(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
27. Proxy and Business Service
Oracle
Service
Bus
ProxyServiceB
BusinessServiceY
Client2
ServiceImpl2
BusinessServiceX
ProxyServiceA
ServiceImpl1
ServiceImpl1
Client1
Slide #27(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
28. Location Transparency
OSB uses Business Services
Business Service =
How to talk to service implementation
This configuration can by changed anytime.
Slide #28(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
29. Transport and Binding Layer
Oracle
Service
Bus
ProxyServiceB
BusinessServiceY
Client2
ServiceImpl2
BusinessServiceX
ProxyServiceA
ServiceImpl1
ServiceImpl1
Client1
Transport
Binding
Transport
Binding
Slide #29(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
30. Context Variables
logical
variable
Purpose
$header SOAP
header
for
SOAP
Else:
empty
<soap:Header/>
$body SOAP
body
for
SOAP
Else:
<soap:Body>
with
enJre
payload
$attachements SOAP
a`achements
$fault typed
error
informaJon
$inbound service,
transport
and
security
informaJon
of
inbound
protocol
$outbound outbound
protocol
$operation current
operaJon
Variables are filled automatically
Slide #30(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
31. Message Flow in Proxy
Pipeline
Stage
Action
Request path
Response path
Routing Node
Route Node
A
A
A
A
R R
A
A
A
A
A
A
A
A
A
A
request response
Slide #31(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
32. Overview Actions
Flow Control Message Processing
Routing
Slide #32(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
33. Log Action
Logs Xquery expression with annotation text
and severity level to stdout.
OSB console:
Slide #33(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
34. Dynamic Routing
Routing based on runtime conditions:
• Outcome of call to another service
• Logical expression
• Content of message body
• Content of transport header
Slide #34(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
35. Schema Transformation
• XSD schema -> XSD schema
• binary (MFL) -> XSD schema
• XQuery or XSLT
Example:
Transform SAP address format to company-wide
address format.
Slide #35(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
36. Eclipse: XQuery Mapper
Import Xquery from Eclipse as OSB resource
Slide #36(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
37. Xquery Join
for $priceRequest in $priceQuote1/ns2:priceRequests/ns2:priceRequest,
$availRequest in $availRequest1
where data($priceRequest/ns2:widgetId) =
data($availRequest/ns0:widgetId)
return
<quoteResponse>
<unitPrice>
{data($priceRequest/ns2:price)}
</unitPrice>
<requestedQuanity>
{data($availRequest/ns0:requestedQuanity)}
</requestedQuanity>
</quoteResponse>
}
38. Protocol Adaption
Oracle
Service
Bus
ProxyServiceB
BusinessServiceY
file
File
BusinessServiceX
ProxyServiceA
email
JMS
email
EJB
Tuxedo
Slide #38(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
39. JMS Endpoint URI
Slide #39(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
40. OSB Admin Interfaces
• Prior to version 3 only web based GUI
• Web based GUI for configuration based runtime
changes, monitoring and management.
No deployment necessary!
• WLS admin console for underlying configuration
• Eclipsed based development started with
OSB 3.0 -> different development process
Slide #40(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
41. OSB Console
http://host:port/sbconsole used for:
Operations
Development
Monitoring
Search
Import / Export
Testing
Slide #41(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
44. Questions addressed
How long does it take to execute this service on
average?
Send me an alert if takes 5 times longer.
What was the longest execution time ever?
How often is the login service on average called
during 10 minutes?
Slide #44(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
45. Server Health
Click on Server Snapshot for per server view
Slide #45(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
46. Service Health
• Overview -> click Name for details
• Select services with error
Slide #46(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
48. Operation Metrics
Good result for jitterAndMem implementation:
(errors are provoked with illegal test data)
Slide #48(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
50. SLA Conditions
Depend on type count vs. min/max/avg
Conditions can be combined
Slide #50(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
51. Reporting Console
Search for reports via key
Purge all reports or range asynchronously
Slide #51(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
53. 2 Scenarios...
Web Services Security Pass-Through:
• Proxy ignores WS-Security header, payload encrypted
• OSB forwards message to service implementation
Active intermediary:
• Security header examined
• Encrypted messages get decrypted at proxy service
ProxyService
BusinessService
Client
ServiceImpl
Slide #53(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
54. Message Level Security
Based on WS-Security Standards
Use WS-Policy assertion to request message
level security for proxy service
• Authentication
• Integrity
• Confidentiality
Example: Secure credit card details only
Slide #54(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
55. Transport Level Security
Protocols like http, ftp, jms over SSL
Easier to configure
Endpoint to endpoint only
-> messages are not encrypted in between
Slide #55(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
56. Service
Impl
SAML and WLS / OSB
SAML Pass-Through =
• OSB = passive intermediary
• OSB forwards SAML token to service impl.
Active intermediaryOracle
Service
Bus
AuthenJcator
SAML
CredenJal
Mapper
Client
SAML
IdenJty
Asserter
Slide #56(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
58. Oracle
Service
Bus
Cluster
Managed
Server1
Managed
Server2
WLS
Cluster
Distributed OSB Cluster
ProxyService
BusinessService
ServiceA
BusinessService
ProxyService
ServiceA
ServiceA
Load
Balancer
Clients
Clients
Clients
Slide #58(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
59. Throttle
Limit number of concurrent messages to business
service.
Exceeding messages put in non-pers. queue.
Queue full or expiration drops messages with
error message
Slide #59(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
61. New in OSB 11g
• WLS 10.3.3 installation then
OSB 11g with Oracle Unified Installer
• Same MW_HOME as SOA Suite
• Coherence result cache:
One single cache for all business services
• JCA Adapter from SOA suite 11g supported
Slide #61(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
62. New in OSB 11g
• Message flow starts own JTA TX
• JEJB = native EJB inbound
Proxy service exposed as stateless session bean
• EJB 3 supported (finally…)
• SOA-DIRECT protocol for SOA suite interaction
• Multiple email endpoints for load balancing
Slide #62(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
64. Middleware and Cloud Computing Book
Published!
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #64
65. Oracle WebLogic 12c Book
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #65
66. … more ?
Win a copy of the book!
http://www.munzandmore.com/blog
Come to my Cloud Computing Talk:
-> today @3pm, in this room
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #66
67. munz & more
Training and Consulting
• WebLogic Admin Training 9 – 12c
• WebLogic Monitoring and Tuning
• Oracle Service Bus Training
• Cloud Training (AWS, Google, Oracle Cloud)
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010) Slide #67