4. Who is this guy?
• Frank Munz
• Research in supercomputing and
medical imaging
• Worked for and with TIBCO, BEA and Oracle
• Founded munz & more in 2006
• Focus Oracle middleware …
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #4
7. The Enemy
Interwoven silos with point to point integration
RichClient
Portal
WebApp
web
service?
-‐>
Fraud
Billing
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Network
CRM
Slide #7
8. General Questions
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #8
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #9
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #10
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #11
12. Reduced Complexity
EAI reduces complexity from O(n*n) to O(n):
One change per system changed.
Portal
RichClient
WebApp
EAI
-‐>OSB
Fraud
FTP
Billing
JMS
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Network
EJB
CRM
JAXWS
Slide #12
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #13
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #14
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #15
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #18
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."
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #19
20. What is SOA?
SOA = BPM + ESB + X
so what is X? Repository, Registry, Governance, …
and what happened with EAI? often replaced by ESB
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #20
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #22
23. BPEL/BPMN
Human
Workflow
Business
Rules
Mediator
Unified
RunJme
Policy Manager
Common JCA-based connectivity infrastructure
Eclipse
/
JDeveloper
Oracle
Service
Bus
JPD,
SOAP
SOAP,
WS
JMS,RMI
Oracle
WLS
WLIntegraJon
WLI
Oracle
Tuxedo
DSP,
SOAP
Web-‐based
console
XQuery
MQSeries
ALDataServicesPlaPorm
ALDSP
SOAP,
(s)Tp,
file
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
MQ
SAP
etc.
SQL
Slide #23
24. Service Bus Functionality Overview I
• Loose coupling
• Location Transparency
• Dynamic Routing
• Schema Transformation
• Protocol mix and match
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #24
25. Service Bus Functionality Overview II
• Service Aggregation
• Load balancing, Clustering for Availability
• Security
• Monitoring
• Configuration driven
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #25
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.
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #26
27. Proxy and Business Service
Oracle
Service
Bus
ServiceImpl1
Client1
ProxyServiceA
BusinessServiceX
ServiceImpl1
Client2
ProxyServiceB
BusinessServiceY
ServiceImpl2
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #27
28. Location Transparency
OSB uses Business Services
Business Service =
How to talk to service implementation
This configuration can by changed anytime.
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #28
29. Transport and Binding Layer
Client2
BusinessServiceX
ProxyServiceB
BusinessServiceY
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Transport
ProxyServiceA
ServiceImpl1
Binding
Binding
Client1
Transport
Oracle
Service
Bus
ServiceImpl1
ServiceImpl2
Slide #29
30. Context Variables
Variables are filled automatically
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #30
31. Message Flow in Proxy
A request
A
A
A
A
A
A
A
A
A
A
A
A
R
response
Pipeline
Stage
Action A
Request path
Response path
Routing Node
R
Route Node
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #31
33. Log Action
Logs Xquery expression with annotation text
and severity level to stdout.
OSB console:
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #33
34. Dynamic Routing
Routing based on runtime conditions:
• Outcome of call to another service
• Logical expression
• Content of message body
• Content of transport header
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #34
35. Schema Transformation
• XSD schema -> XSD schema
• binary (MFL) -> XSD schema
• XQuery or XSLT
Example:
Transform SAP address format to company-wide
address format.
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #35
36. Eclipse: XQuery Mapper
Import Xquery from Eclipse as OSB resource
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #36
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
JMS
email
ProxyServiceA
BusinessServiceX
email
file
ProxyServiceB
BusinessServiceY
File
EJB
Tuxedo
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #38
39. JMS Endpoint URI
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #39
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #40
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?
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #44
45. Server Health
Click on Server Snapshot for per server view
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #45
46. Service Health
• Overview -> click Name for details
• Select services with error
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #46
48. Operation Metrics
Good result for jitterAndMem implementation:
(errors are provoked with illegal test data)
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #48
49. Detail: Action Metrics
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #49
50. SLA Conditions
Depend on type count vs. min/max/avg
Conditions can be combined
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #50
51. Reporting Console
Search for reports via key
Purge all reports or range asynchronously
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #51
53. 2 Scenarios...
Web Services Security Pass-Through:
• Proxy ignores WS-Security header, payload encrypted
• OSB forwards message to service implementation
Client
ProxyService
BusinessService
ServiceImpl
Active intermediary:
• Security header examined
• Encrypted messages get decrypted at proxy service
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #53
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #54
55. Transport Level Security
Protocols like http, ftp, jms over SSL
Easier to configure
Endpoint to endpoint only
-> messages are not encrypted in between
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #55
56. SAML and WLS / OSB
SAML Pass-Through =
• OSB = passive intermediary
• OSB forwards SAML token to service impl.
Active intermediary
Oracle
Service
Bus
Client
AuthenJcator
SAML
CredenJal
Mapper
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Service
Impl
SAML
IdenJty
Asserter
Slide #56
58. Distributed OSB Cluster
Clients
Clients
Clients
Oracle
Service
Bus
Cluster
Managed
Server1
Load
Balancer
ProxyService
BusinessService
Managed
Server2
ProxyService
WLS
Cluster
ServiceA
ServiceA
ServiceA
BusinessService
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #58
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #59
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #61
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
(c) 2009/2010 Dr. Frank Munz / munz & more (Event:DOAG Nürnberg 11/2010)
Slide #62
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