oredev tomstenstrom oracle bpel - Øredev...

34
An Introduction to BPEL Tom Stenström Principal Sales Consultant [email protected]

Upload: vuongduong

Post on 06-Feb-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

An Introduction to BPEL

Tom StenströmPrincipal Sales Consultant

[email protected]

2

All about agility...

3

Agenda

• The background

• BPEL – an overview

• Usage scenarios – customer experiences

• The bigger picture...

4

Trends in business

Increasingly Complex Infrastructure

Increasingly Demanding Users

End-to-End ProcessesMore Customization

Shorter Change Cycles

More Insight

NEED:

Enterprise Agility

BOTTLENECKS:

• Visibility

• Process• Data

IT

5

What do they want?• Save money – i.e. Do more with less...

• Make more money!

• Be more agile to changes in business –models, rules, execution, compliance etc.

• Get new IT support for the business without developing from the gound up

• But...– The ”language gap” between IT and business makes this a pain

• The challenge– Find common ground...

6

The Convergence Of

Architectures

Enterprise InformationArchitecture

Service-Oriented Architecture

Grid ComputingArchitecture

APPLICATIONS

INFRASTRUCTUREINFORMATION

7

The Application Model is

Evolving…

Web Solution SOA Solution

More Interoperable

More Modular Business Processes

Richer Clients

Packaged Applications

FulfillmentCenter

CustomerService

BusinessPartners

1

2

3

1

2

3

8

Why Orchestration?

vs.

9

What is BPEL?• Markup language for composing a set of discrete

services into an end-to-end process flow

• Deals explicitly with the functional aspects of business processes

• Rich support for async interactions, parallel processing and exception management.

• Leverages things like XML Schema, XSLT, XML Query, WS-Security, WS-Addressing and WSIF.

• Composability: A process flow is automatically a service.

• BPEL is executed by a ”BPEL Engine”

10

Some BPEL basics

BPEL defines a model and a grammar for describing the behavior of a business process based on interactions between the process and its partners.

A BPEL process is a reusable definition that can be deployed in different ways and in different scenarios, while maintaining a uniform application-level behavior across all of them.

An Abstract Process is a partially specified process that is not intended to be executed and that must be explicitly declared as abstract .

An Executable Process is fully specified and thus can be executed

- Web Services Business Process

Execution Language Version 2.0Public Review Draft, 23rd August, 2006

11

The early BPEL Value

Proposition

Build your ownProcess Logic

BPELProcess Logic

Cost/Complexity

describe

implement

manage

adapt

describe

implement

manage

adapt

Implement 1-off complexorchestration elements as

part of each application

Exceptions are

the rules

Complex and

fragmented logicA single component encapsulates

all the process logic

Side-by-side versioning

Console has built-in support for

testing, audit trails.

Compensating Transactions

makes exception handling easy

Higher level of programming

abstraction

Leverage infrastructure: write

20 to 30 times less code!

“Reduce the cost and complexity of process integration initiatives”

12

Just a fad?• 10+ years of research and development

from Microsoft (XLANG) and IBM (WSFL, FDML)

• Status today: V2.0 in Public Review

• Wide customer adoption today

• Vendor support

• Driven by OASIS WSBPEL TC

Gartner believes that BPEL will

emerge as the leading industry

standard for Web service

orchestration and coordination

of business processes.

- David Smith, Research Vice

President and fellow, Gartner

BPEL is the future of the

integration space in my

view…Why? Because the value is

so much higher when you provide

not only a way to integrate

applications, but also a way to

create services from them and put

them into business processes

- John Rymer, Vice President,

Forrester Research, Inc.

BPEL is getting a lot of attention, and rightly so. The flexibility it provides in orchestrating Web Services, coupled with its ability to implement real-time workflows, will give us a winning

edge that will help us react quickly and efficiently to our ever-changing business requirements.

Peter Zadrozny, CTO of StrongMail Systems

13

OASIS Tech Commitee

14

?

BPEL, The Orchestrator and the

De-coupler

BPEL

IU

PORTAL

J2EE

TOMCAT

Web Service

Java Service

ERPSAP, Oracle, etc.

User Tasks

DatabaseStored Procedures

15

BPEL Activity Set

Select Lowest Offer

10:00am

Handle Negative

Credit Exception

Credit Rating

start

end

BPEL Flow

?

United Loan Star Loan

Get Rating

Send Loan Application

Receive Loan Offer

03:00pm

Send Loan Application

Receive Loan Offer

<process>

</process>

<switch>

<variable>

<faultHandlers>

<receive>

<invoke>

<invoke>

<flow>

</flow>

<partnerLink>

<partnerLink> <partnerLink>

16

BPEL<process name="SyncHelloWorld"

targetNamespace="http://tutorial.oracle.com"suppressJoinFailure="yes" xmlns:tns="http://tutorial.oracle.com"xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"xmlns:bpelx=http://schemas.oracle.com/bpel/extension>

</process name>

<partnerLinks><partnerLink name="client"<!-- comments... -->

partnerLinkType="tns:SyncHelloWorld"</partnerLinks>

<variables><!-- Reference to the message passed as input during initiation --><variable name="input"

messageType="tns:SyncHelloWorldRequestMessage"/><!-- Reference to the message that will be returned to the requester --><variable name="output"

messageType="tns:SyncHelloWorldResponseMessage"/></variables>

17

More BPEL<assign>

<copy><from expression="concat('Hello ',bpws:getVariableData('input',

'payload','/tns:name'))"/><to variable="output" part="payload" query="/result"/></copy>

</assign>

<sequence name="main"><!-- Receive input from requester.Note: This maps to operation defined in SyncHelloWorld.wsdl -->

<receive name="receiveInput" partnerLink="client"portType="tns:SyncHelloWorld"operation="process" variable="input"createInstance="yes"/>

<reply name="replyOutput"partnerLink="client"portType="tns:SyncHelloWorld"operation="process"variable="output"/>

</sequence>

18

Some BPEL Interaction

Patternsreceive

reply

1. Sync Request Response

receive

step N

Step 1

2. Fire and Forget

receive

6. Change Handler

Handle

change

scope

On event A

receive

reply

validate

4. Partial Processing

invoke

2 seconds

2 days

receive

invoke

validate

5. Progress Observer

invoke

1 day

2 days

receive

invoke

3. Async. Request Response

4 hours

19

How would you create BPEL?

20

Or this way?

21

How would you deploy BPEL?

BPEL

Console

MA

NA

GE

J2EE Application Server

(Oracle AS, WebLogic, JBoss, WebSphere)

Core BPEL Engine

WSDL Binding Built-in Integration Services

File, FTP

Web Service

Java, JMS, JCA

Database

XQuery XSLT User

Tasks

BPEL

Eclipse, JDeveloper

BPEL Designer

BPEL Process Manager

JAVA

RDBMS

(Oracle, SQL*Server…)(Oracle Database)

iWay

22

Usage examples•Financial Services Order/Payment Processing

New Account Provisioning ProcessTrade Exception Management

•High Tech Order ManagementTrading Partner Integration

•Telecom Cell Phone ActivationVoIP ProvisioningDSL Provisioning

•Government Medicare Eligibility Determination and Enrollment Satellite Data ExchangePublish and Process FormsEmployee On-boarding

•Transportation Fleet and Asset Management

•Travel Reservations / one-stop-shop booking

•Retail Sales Data Integration

DSL Provisioning at Large Telco•Application for the provisioning and activation of DSL lines. Belgacom is processing up to

15,000 DSL provisions / day through SOA and BPEL processes which link their customer

interfaces and OSS layer, managing activation and repair.

Struts

BPEL

Telco Activation Services

DSL Activation Manager

6000+ network equipment endpoints (SLEE gateway)

SDSL Activation Manager

Sales/Customer Service Interfaces and Order Review

Exception Management

Billing Services

Account Management Services

Reporting Services

Register for New ServiceSelf-service web app

Call Center

Application Server

24

Overall Approach at Pan-European

Agency Service

Partner C

Service

Partner B

Service

Partner A

BPEL PMBPEL PM

“Network of service

partners”

BPEL SolutionBPEL Solution

DesignManagement

Console

Engine

BPEL SolutionBPEL Solution

DesignManagement

Console

BPEL SolutionBPEL Solution

DesignManagement

Console

BPEL SolutionBPEL Solution

DesignManagement

Console

25

• Cut the development time by half– Improved productivity by cutting down on coding and

improved workflow designer makes process design easier

• Highly available and scalable– System Y was designed with 99.9% uptime requirement

and network load of 240 Mbits/second and 100,000 messages daily

• Technology agnostic– Application server and database server independent

means no redesign and minimal support

• Simplify management by establishing overreaching technical architecture, infrastructure, and protocols

– Standards compliant

Benefits Realized in using BPEL technology large consulting service provider

26

Lessons Learnt in project at US on-

line services provider

&

&SENSORS

• Tremendous value of facilitating collaboration between retired federal HR experts (“hundreds of years of public service experience”) and J2EE developers

• Experts can read BPEL process maps created by developers

• Next step : Process Modeling Tool

• A Need to decouple functionality and event trigger instrumentation

• Solution: Aspect-oriented programming

27

SOA: Top Down vs. Bottom Up?

Business Analyst

Integration Developer

Notation LayerBPMN or UML

Executable LayerXML, XQuery, BPEL, Rules

Service DeveloperBusiness ServicesAdapters, Java, Struts, JSF

Existing Systems

MAINFRAMEPACKAGED

APPLICATIONS

JAVADATABASE

Activity Activity Activity

assign invoke receive assign

28

The BPM Lifecycle

BPMLifecycle

Monitor

Optimize

Business Process

Monitoring(BAM)

Implement

Deploy

Execute

Business Process Execution (BPE)

Model

Simulate

Business Process Analysis (BPA)

29

Blueprint For Building A SOBA

.NET, SAP, Mainframe, Oracle, Retek, PeopleSoft, Siebel, etc

Enterprise Service Bus (WS-*)2. Naming/Registry, Filtering,

Transformation, SLA(Dynamic)

Java

Portal4. Access

(Unified)

5. Security(Declarative)

6. Monitoring(In-Context,Real-time)

Model Driven - Declarative Programming

fx

BPEL XSLTBusiness

RulesPortlets

3. Assembly, Orchestration(Transparency)

CEPJSF

Pages

1. Portfolio of Business Services and Events(Granularity)

30

More than BPEL...

BPM

Toolsets WS Security

and

Management

Service

Registry

Business

Activity

MonitoringRules

EnginesESB

Enterprise Service Bus

Data Hubs

Portals, AJAX, RIA,

JSF, .Net, Flex, ...

Grid Computing

Adapters,

JCA, WSIF,

JBI, ...

Declarative and

modeldriven

devlopment BPEL Business

Process Orchestration

31

A Technology Stack

32

Vendors?

• Oracle – Oracle BPEL PM• Microsoft – BizTalk• IBM – WS Business Integration Server• BEA – AquaLogic• SUN – CAPS (Composite App Platform

Suite)• Jboss – jBPM• Software AG - Crossvision• Intalio, ActiveBPEL and others

33

So – it’s all about agility...

34