Where to use OSB

36
WHERE TO USE THE ORACLE SERVICE BUS ? OBUG Connect 24 April 2012 @ MECC Maastricht

description

 

Transcript of Where to use OSB

Page 1: Where to use OSB

WHERE TO USE THE ORACLE SERVICE BUS ? OBUG Connect24 April 2012 @ MECC Maastricht

Page 2: Where to use OSB

Who ?

Jan van Zoggeljvzoggel.wordpress.com

Edwin Biemondbiemond.blogspot.com

J/E

Page 3: Where to use OSB

Agenda

Overview OSB & SOA Suite Using the OSB Bad Practices

E

Page 4: Where to use OSB

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

Page 5: Where to use OSB

How to use the OSB ?

J

Page 6: Where to use OSB

J

Page 7: Where to use OSB

Agenda

Overview OSB & SOA Suite Using the OSB Bad Practices

E

Page 8: Where to use OSB

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

Page 9: Where to use OSB

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

Page 10: Where to use OSB

Where to use Oracle BPEL ?

Stateful Long running processes (dehydration store) Service Orchestration Compensation Fault framework Business Rules & Human workflow

J

Page 11: Where to use OSB

Async Service in OSB

10g BPEL transport 11g SOA-direct transport

E

Page 12: Where to use OSB

Agenda

Overview OSB & SOA Suite Using the OSB Bad Practices

E

Page 13: Where to use OSB

Using the OSB ?

High volume* Stateless* Security Transformation Throttling

Caching Load balancing Endpoint SLA Transports Routing

J

Page 14: Where to use OSB

Security

Use OWSM for 11g & 12c

E

Page 15: Where to use OSB

Transformation

XQuery XSLT support Java callout support for JSON, JEJB transport

E

Page 16: Where to use OSB

Control the workload

J

ThrottlingLimit requests on Business ServiceUses memory Queue, no failoverpriority possible

Page 17: Where to use OSB

Control the workload

Work ManagersProtect WebLogic Server (Max Threads)

J

Page 18: Where to use OSB

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

Page 19: Where to use OSB

Load Balancing

Multiple load balancing algorithms Endpoint management:

Supports service pooling Automatic URI elimination

J

Page 20: Where to use OSB

Endpoint SLA

Alert Rules Overview

E

Page 21: Where to use OSB

Transports

OSB transports > JCA transports Database + AQ use JCA -> JDeveloper File JCA reads chunks (large files) JEJB transport (java object over the bus)

E

Page 22: Where to use OSB

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

Page 23: Where to use OSB

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

Page 24: Where to use OSB

Enrichment

Use the Service Callout Mediator: almost impossible

J

Page 25: Where to use OSB

Publish

Fire-and-Forget messages (1 way) Logging / Audit

Publish to local JMS Minimize message loss Prevent failure Offload with Store-and-Forward

E

Page 26: Where to use OSB

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

Page 27: Where to use OSB

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

Page 28: Where to use OSB

Agenda

Overview OSB & SOA Suite Using the OSB Bad Practices

E

Page 29: Where to use OSB

Bad practice I - Datamodel

J

Same WSDL

Page 30: Where to use OSB

Bad practice II - Orchestration

E

Page 31: Where to use OSB

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

Page 32: Where to use OSB

Bad practice IV – Java galore

J

Page 33: Where to use OSB

Bad practice V – Complexity

J

Page 34: Where to use OSB

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

Page 35: Where to use OSB

Questions

?

Page 36: Where to use OSB

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