Sie sind auf Seite 1von 39

Oracle Service Bus vs. Oracle Enterprise Service Bus vs.

BPEL wann soll welche


Komponente eingesetzt werden?

Guido Schmutz, Technology Manager / Partner

Basel

Baden

Bern

Lausanne

Zrich

Dsseldorf

Frankfurt/M.

Freiburg i. Br.

Hamburg

Mnchen

Stuttgart

Wien

Introduction
Guido Schmutz
Working for Trivadis for more than 12 years Co-Author of different books Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA Member of Trivadis Architecture Board Trivadis Technology Manager More than 20 years of software development experience

Contact: guido.schmutz@trivadis.com

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Agenda
Introduction Oracle SOA Suite ESB and BPEL in the Architecture ESB and BPEL Usage Scenarios
Data are always part of the game.

Summary

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Basic idea of SOA: Services instead of Applications

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Service Classification
Basic services / Elementary Services
Basic service

Foundation of the SOA Represent basic functionality of a domain Data centric or logic centric

Composed Services / Composite services


Composed service

Technology gateways, faades and functionality-adding services Acts as client and server

Process service

Process (centric) services


Encapsulates the organisation's business processes SOA client and server Maintain process state

Public enterprise service

Public enterprise services


Interface for cross-enterprise integration

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

SOA Classification Stage of Expansion


Process enabled SOA
= basic + composition + process + enterprise layer
Enterprise layer
Travel web site Billing app

Process layer

Booking process

Composition layer
BookAndBill

Basic layer
Train Customer Hotel Booking Billing

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

What is BPEL?
BPEL is an official WS-* Standard Designed for the implementation of (business) process services in a declarative way
Graphically XML syntax behind

What is an ESB?
Enterprise Service Bus is not a Standard! What to look for in an Enterprise Service Bus?
Connectivity Agility Visibility, Change & Control Service Virtualization
Message Enhancement

Programming in the large vs. programming in the small

Message Processing

Protocol Transformation

Message Transformation

Service Mapping

Enterprise Service Bus

Routing

Process Choreography

Security

Service Orchestration

Transaction Management

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Integration Patterns (also applicable for SOA)


Message Router Message Resequencer

Message Filter

Canonical Data Model

Message Translator

Content Enricher

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Agenda
Introduction Oracle SOA Suite ESB and BPEL in the Architecture ESB and BPEL Usage Scenarios
Data are always part of the game.

Summary

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

History of Oracle SOA platform


Oracle ESB

Oracle Service Bus

Oracle BPEL
Source: Oracle OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Oracle SOA Suite Components


BPEL Process Manager (BPEL)
BPEL Process Manager is the primary composition, orchestration and process engine in the SOA Suite

Oracle Enterprise Service Bus (OESB) old ESB


Oracles primary service bus prior to BEA acquisition After acquisition of BEA its role is to provide mediation services between SOA Suite components In 11g this will be known as the Mediator and acts as a component in an SCA assembly OESB is the only ESB available if running on a non-Weblogic server

Oracle Service Bus (OSB) used to be ALSB


Oracles primary service bus the preferred platform for service virtualization and interactions external to the SOA Suite Currently OSB is only available on WebLogic server but the intention is provide it on other platforms as well in the future OSB is the foundation of service bus functionality moving forward
OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Fusion Middleware Oracle SOA Suite 10.1.3.4


BPA Suite REAL-TIME VISIBILITY & PROCESSING Enterprise Modeling BPM Suite Business User Modeling JDeveloper Application Development Framework BAM

GOVERNANCE CEP

Enterprise Manager

Alerts Events Business Monitoring Data ORCHESTRATIONStreams BPEL Process Manager

GOVERNANCE Monitoring
Web Services Manager WS Policies Security Enterprise Repository SOA lifecycle governance Registry UDDI
JRockit VM & RT

System

Native Business Human BPEL Workflow ROUTING &Rules SERVICES DATA


OSB and OESB Routing Transform Data Integrator Data ETL & Replication Quality B2B
Partners

SOA Agility CONNECTIVITY Adapters


Apps DB Legacy

Coherence Cache Messaging

J2EE Application Server


(Oracle AS, WebLogic, WebSphere, JBoss)

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

Source: Oracle

2009

Feature Mapping
OESB
Value Mapping Process State/ Long running Process Orchestration Human Workflow Decision Service Adapter (JCA) Instance Monitoring Resubmit JDeveloper XA Support Message Filter Message Validation XSLT Transformation Graphical Flow Message Orchestration Asynchronous Messaging Message Ordering Security Eclipse/Web Console Reliable Messaging Service Types and Transport Service Pooling (Load Balancing) Cross-Reference Tables (XREFs)

BPEL
Compensation Parallel Processing Sensors

XQuery Transformation Message Throttling Split-Join SLA Dashboard


OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

OSB
2009

Service Classification and the Oracle SOA Suite


Basic service

OSB OESB

Composed service

BPEL
Process service

BPMN

Public enterprise service

OSB OWSM
2009

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

Oracle SOA Suite 11g (from July 1st 2009!)


10gR3
BPEL
Mediator Mediator

rev

11g
Business Business Rules Rules BPEL BPEL Human Human Workflow Workflow

Rules Human Workflow Oracle ESB

Service/Event Delivery API Policy Manager

Service Infrastructure

Repository

AquaLogic Service Bus 3.0

Oracle Service Bus 3.1

Oracle Service Bus 11g

SCA platform Enterprise Manager integration BAM sensors End-to-end security JDeveloper tooling Integrated SOA Governance J2EE portability

rev today
Objectives:

rev Fall 2008 FY 2009

Provide all Oracle and BEA customers with a seamless upgrade path Use Oracle Service Bus as the vehicle to deliver new ESB features Use OESB in hot-pluggable environments, for mediation and internal apps AIA use cases
OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Oracle SOA Suite 11g Mediator in SCA Composite

Mediator

Source: Taken from SOA Suite 11g Preview 4 of June 2008


OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Agenda
Introduction Oracle SOA Suite ESB and BPEL in the Architecture ESB and BPEL Usage Scenarios
Data are always part of the game.

Summary

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

SOA Architecture

Mediator (OESB)

Basic Service

Human Interaction

Rules

BPEL

Oracle Data Integrator (ODI)


OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

FTP

OSB

OSB

Federated Service Bus Infrastructure


Application level
multiple application buses per domain, one for each application

Domain level
multiple domain buses, one for each domain
OSB

Corporate (enterprise) level


one corporate bus for the enterprise
OSB

External level
one external gateway for the enterprise
Mediator (OESB)

Mediator (OESB)

Source: http://soa-eda.blogspot.com/2009/03/federared-service-bus-infrastructure.html
OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Multiple SOA Domains linked by Enterprise-level ESB

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

Command and Control: SOA


2009

Agenda
Introduction Oracle SOA Suite ESB and BPEL in the Architecture ESB and BPEL Usage Scenarios
Data are always part of the game.

Summary

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Trivadis Integration Architecture Blueprint

Integration View

Application and Information View Communication Layer

Mediation Layer

Collection/ Distribution Layer


Ziel: Connecting

Ziel: Forwarding Aufgabe: Informationen aufbereiten, filtern und weiterleiten (Mediator)

Ziel: Transporting Aufgabe: Informationen bereitstellen und speichern oder weiterverarbeiten

Aufgabe: Aufgabe: Informationen aus Informationen von den Quellen zusammen Quell- an die stellen und an die Ziele Zielsysteme bertragen verteilen (Transporter) (Collector & Distributor)

Informationsfluss

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Trivadis Integration Architecture Blueprint

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Canonical Datamodel in Mediation Layer


Collection Layer Mediation Layer Distribution Layer

Collector Adapter Mapper Message Translator

Mediator Message Translator Router

Distributor Mapper Adapter

Collector Adapter Mapper Message Translator Message Translator

Distributor Mapper Adapter

Q Q

Q Q

Q C Q C C

Z Z

Z Z

Z Z

Mediator (OESB) or OSB

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Canonical Datamodel in the Process Layer

Mediator (OESB) or OSB

BPEL Process Manager

Mediator (OESB) or OSB

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Basic Services on the ESB


Both OESB and OSB are suitable for implementing Basic Services on the bus
Especially suited to wrap existing logic if there is an appropriate adapter available OSB supports REST-style services as well

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Process Services with BPEL


BPEL is the execution language to declaratively implement and automate business processes
Human interaction is supported for workflow-style processes Use canonical data model pattern and translate in ESB
Integration View Application
Process

Application and Information View Transport


Communication
Application

Integration Domain
Mediation Collection/Distribution

BPEL

receive

Event-Driven Consumer

JMS Adapter

JMS

Queue

FTP Adapter invoke invoke Content Based Router DB Adapter

FTP

SQL*Net

Oracle

invoke

Endpoint

EJB Adapter

RMI/IIOP

EJB Session Bean

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Composite Services in BPEL


BPEL can be used to implement composite services in a declarative way
canonical pattern is optional and usage depends on the composite service

Integration View Application


Process

Application and Information View Transport


Communication

Integration Domain
Mediation Collection/Distribution

BPEL

ESB receive SOAP Adapter SOAP Application

invoke Protocol Transformation

SOAP Adapter

SOAP

Basic Service

invoke

HTTP Adapter

HTTP

Basic Service

invoke

EJB Adapter

RMI/IIOP

EJB Session Bean

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Asynchronous Messaging on the ESB


ESB can wrap/hide (legacy) asynchronous queue-based behavior in the backend by a Web Service interface

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Routing, Enrichment and Message Translation on the ESB


Integration View Application
Process
ESB Event-Driven Consumer JMS Adapter JMS Queue

Application and Information View Transport


Communication
Application

Integration Domain
Mediation Collection/Distribution

Enrichment

SQL

SQL*Net

Oracle

Content-Based Router

Message Translator Message Translator

FTP Adapter

FTP

CSV

Database Adapter

SQL*Net

Oracle

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Process service triggers traditional population

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

ESB and BPEL in the Oracle Application Integration Architecture (AIA)


Oracle AIA is using the same principles and combines ESB and optionally BPEL in a similar way

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Service-Oriented Integration

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Agenda
Introduction Oracle SOA Suite ESB and BPEL Usage Scenarios ESB and BPEL in the Architecture
Data are always part of the game.

Summary

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Summary
Its important to know the place of BPEL and ESB (OESB or OSB) in an SOA(rchitecture)
Basic Services => OESB or OSB Composite Services => BPEL or in simple cases OESB/OSB Process Services => BPEL and BPMN (in 2010)

Both OESB and OSB can be used today to implement ESB services The OESB will be downgraded to the Mediator Service Engine in an SCA composite in SOA Suite 11g
=> little bus

The OSB is Oracles primary ESB


Also suited for stand-alone usage, without the Oracle SOA Suite => large bus
OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden? 2009

Thank you!

?
www.trivadis.com

Basel

Baden

Bern

Lausanne

Zrich

Dsseldorf

Frankfurt/M.

Freiburg i. Br.

Hamburg

Mnchen

Stuttgart

Wien

OSB: Advanced Service Pooling and Throttling


Routing to active endpoints, service load balancing
Option for the system to automatically take non-responsive URIs out of the pool, and put them back in as they become responsive Alerts will be generated when the status of the endpoint changes from Up and vice versa
Service Clients
Endpoint URL 1 Proxy Svc Bus Svc

Down

Endpoint URL 2 Endpoint URL 3

Client 1

OSB Cluster

If a URI is non-responsive, take the URI out of the pool Bring the URI back in the pool when it is back-up

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

OSB: Split-Join
Incoming payload is split into multiple service invocations Multiple service responses are aggregated into single payload Parallel action results into significant performance improvement

Request Payload AquaLogic Service Bus


ProcessOrder Split ForEach 15 ProcessOrder Join

Response Payload

JOIN

SPLIT
Order 1 Order 2 Order 3 Response Response Response 1 2 3

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009

Oracle SOA Suite 11g

OSB vs. OESB vs. BPEL - wann soll welche Komponente eingesetzt werden?

2009