where to use osb
DESCRIPTION
TRANSCRIPT
WHERE TO USE THE ORACLE SERVICE BUS ? OBUG Connect24 April 2012 @ MECC Maastricht
Who ?
Jan van Zoggeljvzoggel.wordpress.com
Edwin Biemondbiemond.blogspot.com
J/E
Agenda
Overview OSB & SOA Suite Using the OSB Bad Practices
E
Enterprise Service Bus
An ESB on its own is not a complete SOA solution, even though it is often marketed that way.
Gartner/Burton Group 2007
E
How to use the OSB ?
J
J
Agenda
Overview OSB & SOA Suite Using the OSB Bad Practices
E
OSB
Finance domain CRM domain
OSBOSB
CRM ApplicationFIN Application
OSBOSB
OSB
BPELBPEL
Mediator
MediatorBPEL
Mediator
Mediator Mediator
WS
Load balancing ThrothlingDyn. RoutingSLA / Endpoint
intercomposite
SB Transports
E
Mediator
BizApi
Mediator Mediator
BR
Where to use Mediator ?
Loosely coupling of Oracle BPEL Intra composite EDN Multi routing Specific features:
MDS usage Domain Value mapping Xref (cross referencing ) support Synchronous / Asynchronous Routing
E
Where to use Oracle BPEL ?
Stateful Long running processes (dehydration store) Service Orchestration Compensation Fault framework Business Rules & Human workflow
J
Async Service in OSB
10g BPEL transport 11g SOA-direct transport
E
Agenda
Overview OSB & SOA Suite Using the OSB Bad Practices
E
Using the OSB ?
High volume* Stateless* Security Transformation Throttling
Caching Load balancing Endpoint SLA Transports Routing
J
Security
Use OWSM for 11g & 12c
E
Transformation
XQuery XSLT support Java callout support for JSON, JEJB transport
E
Control the workload
J
ThrottlingLimit requests on Business ServiceUses memory Queue, no failoverpriority possible
Control the workload
Work ManagersProtect WebLogic Server (Max Threads)
J
Caching
Based on Oracle Coherence Protect back-end from heavy load Configurable time-to-live Uses Cache Token Expression
e.g. fn:data($body/s01:getEmployee/EmpID)
J
Load Balancing
Multiple load balancing algorithms Endpoint management:
Supports service pooling Automatic URI elimination
J
Endpoint SLA
Alert Rules Overview
E
Transports
OSB transports > JCA transports Database + AQ use JCA -> JDeveloper File JCA reads chunks (large files) JEJB transport (java object over the bus)
E
Text Processing
MFL will disappear Use Native Format Builder of Oracle SOA
Suite Use Oracle B2B (part of SOA Suite) for EDI,
HL7, RosettaNet, etc
E
Routing
Using Dynamic Routing Transport type must be the same Mediator: dynamic with business rules
+ interface must be the same Routing based on message content & headers
( performance ) Mediator: only message content
J
Enrichment
Use the Service Callout Mediator: almost impossible
J
Publish
Fire-and-Forget messages (1 way) Logging / Audit
Publish to local JMS Minimize message loss Prevent failure Offload with Store-and-Forward
E
Validate
Use Validate action early in proxy (stage) Prevent transformation errors Prevent invalid information to back-end
Basic XML schema validation No schematron support
E
Error handling
Default the request $body returned (echo) Stage, Pipelines, Route & System $fault in OSB is no valid SOAP Fault Best Practice:
define Error handling strategy define <soap:Fault> mapping
J
Agenda
Overview OSB & SOA Suite Using the OSB Bad Practices
E
Bad practice I - Datamodel
J
Same WSDL
Bad practice II - Orchestration
E
Bad practice III – execute-SQL
fn-bea:execute-sql($datasrc, $rowElemName, $sql, $param1-n)
• Officially only retrieve (select), but …• Designed for simple lookup (name value pair)• Risk: bad SQL fired at database• Increasing rows resultset => bad performance
E
Bad practice IV – Java galore
J
Bad practice V – Complexity
J
Conclusion
An ESB on its own is not a complete SOA solution, even though it is often marketed that way.
Gartner/Burton Group 2007
E
Questions
?
Shameless plug
The Oracle Service Bus Development Cookbook is a book which contains more than 80 practical recipes to develop service- and message-oriented solutions on the Oracle Service Bus 11g.
OTN + Packt recipes available