Oracle Developer Day Sponsored by: Sponsored by: Sponsored by: - - PDF document

oracle developer day
SMART_READER_LITE
LIVE PREVIEW

Oracle Developer Day Sponsored by: Sponsored by: Sponsored by: - - PDF document

Oracle Developer Day Sponsored by: Sponsored by: Sponsored by: Sponsored by: Track #1 - Session #4 BPEL Introduction Presenter Name Presenter Title Page 1 1 Agenda Orchestration What is BPEL ? BPEL Programming Language


slide-1
SLIDE 1

1

Page 1

Sponsored by: Sponsored by: Sponsored by: Sponsored by:

Oracle Developer Day

Track #1 - Session #4

BPEL Introduction

Presenter Name Presenter Title

slide-2
SLIDE 2

2

Page 2

Agenda

  • Orchestration
  • What is BPEL ?
  • BPEL Programming Language
  • Steps to Build a Business Process
  • Oracle BPEL Process Manager

Orchestration Requirements

?

  • Java Services (EJB)

Messaging Destinations (JMS) User Tasks Web Services (Sync and Async) Legacy Applications (JCA, adapters)

Orchestration

Connectivity

Heterogenous Back Ends Silos of API and mechanisms Opaque/heterogeneous data definitions Synchronizing multiple data stores

Flow Control

Asynchrony, Flow Coordination, Data Transformation, Compensation, Version Control, Auditing

Scalability

Unpredictable loads Asymmetric performance capabilities

Management and Security

Access control, Encryption, Logging, Metering Independent of the service

Interaction/Access

Catalog, Customization, Access

slide-3
SLIDE 3

3

Page 3

Orchestrate Services

BPEL BPEL Credit Rating Credit Rating

WSDL WSDL

Service Bus Service Bus Star Loan Star Loan Order Entry Order Entry United Loan United Loan

A A D D A A P P T T E E R R A A D D A A P P T T E E R R W W S S D D L L

Fulfillment Fulfillment

A A D D A A P P T T E E R R

Application Server Application Server

What is BPEL?

Bad Credit !

start end

Markup language for composing a set of discrete services into an end-to-end process flow

  • 10+ years of R&D from

MSFT and IBM

  • SOAP but also Java, JCA
  • Rich Flow Semantics
  • Optimized Bindings
  • XPATH+XSLT+XQuery
  • WS-Security
  • A Process is a Service

Star Loan Star Loan

United Loan United Loan Credit Check Credit Check

slide-4
SLIDE 4

4

Page 4

BPEL History

2000/05 XLang (Microsoft) 2001/03 BPML (Intallio et al) 2001/05 WSFL (IBM) 2001/06 BPSS (ebXML) 2002/03 BPEL4WS 1.0 (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 2002/06 2003/04 WSCI (Sun et al) WSCL (HP) 2002/08

Proprietary Standard

2005/2006 WS-BPEL 2.0 (OASIS)

BPEL – Programming Language

  • Variables
  • Activities
  • Control Flow
  • Scope
  • Fault Handling
  • Event Handling
slide-5
SLIDE 5

5

Page 5

BPEL - Variables

  • Used to store, reformat and transform

messages

  • Required to send and receive messages
  • Each variable has a Type

Example:

<variables> <variable name="loanApplication" messageType="ns2:LoanServiceRequestMess age"/> </variables>

BPEL - Activities

  • Primitive Activities

– <invoke> – <receive> – <assign> – <reply> – <throw> – <terminate> – <wait>

  • Structured Activities

– <sequence> – <switch> – <pick> – <flow> – <link> – <while> – <scope>

slide-6
SLIDE 6

6

Page 6

BPEL - Activities

  • <invoke>

– Invoke a service synchronously Ex: Invoke Credit Service

  • <receive>

– Waits for the incoming message, either to start the process or for a callback Ex: Wait for a message from United Loan

  • <reply>

– Return response for synchronous process, relate to initial <receive>

  • <assign>

– Copy data between variables, expressions and endpoint references – Used with XPath expressions and XSLT engine Ex: Copy Loan Application from input payload to United Loan input

BPEL – Scope

  • Scopes can be used to divide the business

process into organized parts

  • A <scope> is an execution context for the

contained activities, and a process is, itself, a <scope>

  • A <scope> defines local variables and can

catch and handle either specific faults or all faults that occur with it Ex: GetCreditRating Scope – Invoke Credit Service and catch exceptions

slide-7
SLIDE 7

7

Page 7

BPEL – Control Flow

  • BPEL provides the usual branching and looping control flow

constructs

  • A <sequence> executes activities in serial order
  • A <switch> executes at most one alternative based on

expressions specified on child <case> elements with an

  • ptional <otherwise>

Ex: Choose between United and Star loan offers based on lower APR

  • A <while> loops through activities while a variable's value

is true

  • BPEL provides a parallel control construct through the

<flow> activity Ex: Invoke United and Star Loan services in parallel

Partner Links

  • Links to all parties that process interacts
  • Links can be to Web Services

Ex: CreditService, UnitedLoanService, StarLoanService

  • Links can be to other BPEL processes as

well

  • PartnerLinkTypes

– Declares how parties interact and what each party offers

slide-8
SLIDE 8

8

Page 8

BPEL - Fault Handling

  • Handle faults to enable completion of

process using <faultHandlers>

  • Use <catch> activity to handle specific

faults Ex: Catch bad credit exception and terminate the process

  • Use <catchAll> to handle all other faults

Steps to Build Business Process

  • 1. Define Public Interface
  • 1. Define Public Interface
  • 2. Create Partner Dictionary
  • 2. Create Partner Dictionary
  • 3. Create Message and Type Dictionary
  • 3. Create Message and Type Dictionary
  • 4. Implement Transformation Logic
  • 4. Implement Transformation Logic
  • 5. Implement Orchestration Logic
  • 5. Implement Orchestration Logic
  • 6. Create a Test Environment
  • 6. Create a Test Environment
  • 7. Iterate
  • 7. Iterate
  • 8. Live Pilot
  • 8. Live Pilot
  • 9. Fine
  • 9. Fine-
  • tune Operations Tasks

tune Operations Tasks

slide-9
SLIDE 9

9

Page 9

Step 1: Define Public Interface

Deliverables:

  • WSDL description of the interface of the implemented BPEL process

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

LoanRow BPEL Process

Step 2: Create Partner Dictionary

Deliverables:

  • List of the WSDL of the services that will be invoked as part of the BPEL Process
  • For each partner, document the order in which operations will be invoked (choreography)
  • Make sure that each use case describes both positive and negative use cases

bpel.xml

Deployment Descriptor End point reference binding

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

LoanRow BPEL Process Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service

slide-10
SLIDE 10

10

Page 10

Step 3: Create Message and Type Dictionary

Deliverables:

  • A set of XML Schema files that describe the type of the messages and XML documents used as

part of the BPEL process. bpel.xml

Deployment Descriptor End point reference binding

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service LoanRow BPEL Process

Schedule Response

variables variables

Schedule Request Exchange Request more…

Step 4: Transformation Logic

Deliverables:

  • A set of XSLT and XQuery files that encapsulate mapping information

across the various types used in the BPEL process bpel.xml

Deployment Descriptor End point reference binding

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service LoanRow BPEL Process Schedule Map Schedule Map XSLT XSLT

W W S S D D L L

transformation transformation

variables variables

loanApplication crInput crOutput more…

slide-11
SLIDE 11

11

Page 11

Step 5: Orchestration Logic

Deliverables:

  • Implement the workflow that ties the interactions across partners into an end-to-end business process.
  • Make sure that all exceptions and timeouts are managed properly

Select Lowest Offer

Negative Credit faultHandler Synchronous <invoke> <receive> <invoke> <process>

  • <receive>.

<invoke> <invoke> Get Rating

Send Loan Application Receive Loan Offer

<receive>.

Receive Loan Offer Send Loan Application

Star Loan Star Loan

Credit Rating Credit Rating United Loan United Loan

Step 6: Iterate

Deliverables:

  • Add incrementally new partners
  • Keep on improving exception management
  • Create automated test and regression framework

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

  • rchestration

bpel.xml

Deployment Descriptor End point reference binding

Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service LoanRow BPEL Process

variables variables

loanApplication crInput crOutput more… Schedule Map Schedule Map XSLT XSLT

W W S S D D L L

transformation transformation

slide-12
SLIDE 12

12

Page 12

Step 7: Create test environment

Deliverables:

  • Implement dummy test services for each end point

(could be BPEL or your favorite Web services publishing technology)

  • Create test scenario for each positive and negative use cases
  • Crash test, longevity test (integrity/reliability)
  • Performance test, stress test

Dummy Test Services

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

  • rchestration

bpel.xml

Deployment Descriptor End point reference binding

Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service LoanRow BPEL Process

variables variables

loanApplication crInput crOutput more… Schedule Map Schedule Map XSLT XSLT

W W S S D D L L

transformation transformation

Step 8: Live Pilot

Deliverables:

  • Wire BPEL process to real end points
  • Run regression tests

Integration over internet/intranet

LoanFlow.wsdl WSDL

LoanFlow

initiate

  • nResult

Client Callback

  • rchestration

bpel.xml

Deployment Descriptor End point reference binding

Credit Rating Credit Rating

W W S S D D L L

Web Service Web Service Start Loan Start Loan

W W S S D D L L

Web Service Web Service United Loan United Loan

W W S S D D L L

Web Service Web Service LoanRow BPEL Process

variables variables

loanApplication crInput crOutput more… Schedule Map Schedule Map XSLT XSLT

W W S S D D L L

transformation transformation

slide-13
SLIDE 13

13

Page 13

Step 9: Fine-tune Operation Tasks

Deliverables:

  • Exception Management
  • Integration with Web Service Management Framework
  • Security
  • Archiving

Oracle BPEL Process Manager

Enterprise-strength infrastructure for designing, deploying and managing BPEL business processes

  • Comprehensive and native

BPEL implementation

  • Easy-to-use modeling tool
  • Scalable and reliable engine
  • Flexible binding framework
  • Rich management and

monitoring

  • Get up and running in less

than 15 minutes! BAM BAM Application Server Application Server ( Oracle, BEA, JBoss, IBM) ( Oracle, BEA, JBoss, IBM)

Transformation Transformation Correlation Correlation WSIF Binding WSIF Binding Queuing Queuing SAP SAP EBS EBS DB DB File File … … XSLT XSLT Mapper Mapper Adapter Adapter Factory Factory BPEL BPEL Console Console BPEL BPEL Designer Designer Workflow Workflow Rule Rule BPEL Engine BPEL Engine

Dehydration Store (Oracle Database)

Oracle BPEL Process Manager Oracle BPEL Process Manager

slide-14
SLIDE 14

14

Page 14

Cross Platform

Application Server

  • Oracle Application Server
  • WebLogic Server
  • WebSphere
  • JBoss

Database

  • Oracle Database
  • SQL Server
  • Oracle Lite
  • Sybase
  • Pointbase

IDE

  • JDeveloper
  • Eclipse

Operating Systems

  • Linux
  • Window XP/2003
  • Solaris
  • HP UX
  • zOS

BPEL Console

KEY FEATURES

  • Visual Monitoring
  • Auditing
  • BPEL Debugging
  • In-flight Instance

Administration

  • Performance Tuning
  • Partitioning/Domains
slide-15
SLIDE 15

15

Page 15

D E M O N S T R A T I O N Join Over 4,500,000 Developers! Join Over 4,500,000 Developers! Join Over 4,500,000 Developers! Join Over 4,500,000 Developers! Free Software Downloads Free Software Downloads Free Software Downloads Free Software Downloads Free Technical Advice Free Technical Advice Free Technical Advice Free Technical Advice

www.oracle.com/technology/products/ www.oracle.com/technology/products/ www.oracle.com/technology/products/ www.oracle.com/technology/products/jdev jdev jdev jdev

  • tn
  • tn
  • tn
  • tn.oracle.com/tech/

.oracle.com/tech/ .oracle.com/tech/ .oracle.com/tech/webservices webservices webservices webservices

  • tn
  • tn
  • tn
  • tn.oracle.com/tech/java

.oracle.com/tech/java .oracle.com/tech/java .oracle.com/tech/java

  • tn
  • tn
  • tn
  • tn.oracle.com/

.oracle.com/ .oracle.com/ .oracle.com/bpel bpel bpel bpel

slide-16
SLIDE 16

16

Page 16

Learn Oracle From Oracle

  • Instructor led training
  • Self-Study
  • Online learning
  • Oracle Certification
  • Oracle iLearning
  • Oracle Tutor
  • racle.com/education

A Q &

Q U E S T I O N S Q U E S T I O N S A N S W E R S A N S W E R S

slide-17
SLIDE 17

17

Page 17

Sponsored by: Sponsored by: Sponsored by: Sponsored by:

Oracle Developer Day