Sie sind auf Seite 1von 32

BPEL 2.

0
Oracle BPEL PM 10.1.3
Bernd.Trops@oracle.com
Presales Architect Fusion Middleware

Agenda
Einfhrung
BPEL 2.0
Overview of Oracle BPEL PM 10.1.3 Major
Features
New workflow architecture
Decision service, Rules engine integration
BPEL Test capability

Q&A, Feedback and Comments

Process Orchestration Requirements


Java Services (EJB)

Connectivity

Heterogenous
Messaging Destinations
(JMS)

Back Ends
Silos of API and mechanisms
Opaque/heterogeneous
data definitions
Legacy Applications
(JCA, adapters)
Synchronizing multiple data stores

Portal
Java Platform

Flow Control

User Tasks

?
Orchestration
ADF

Asynchrony, Flow Coordination, Data


Transformation, Compensation, Version Control,
Auditing

Scalability
Unpredictable loads
Asymmetric
Web Services (Sync
and Async)performance capabilities

Management and Security


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

Interaction/Access
Catalog, Customization, Access

Process Orchestration Today


Java Services (EJB)
Messaging Destinations (JMS)
Legacy Applications (JCA, adapters)

Portal

Today

Java Platform

User Tasks

?
ADF

Process Flow

Not enough metadata


Not tool friendly
Proprietary languages
Web Services
andskill
Async)sets, consulting
(Sync
Rare
Hard Wired/Code
Rigid, difficult to change
Incompatible Infrastructures
Difficult to manage and scale

Introduction to BPEL

What is BPEL?
Markup language for composing a set of discrete services into
an end-to-end process flow
SalesDB

start

10+ years of R&D from

Duplicate
Number!

MSFT and IBM

SOAP but also Java, JCA


Rich Flow Semantics

Billing

Optimized Bindings
XPATH+XSLT+XQuery
WS-Security
A Process is a Service

Router

end

BPEL by Example
<variable>

BPEL Flow
<process>

10:00am

start
Credit Rating

Get Rating

<partnerLink>

<faultHandlers>
<invoke>
<flow>

Handle Negative
Credit Exception

Send Loan Application

Send Loan Application

United Loan

<invoke>

Star Loan

<receive>
<partnerLink>

Receive Loan Offer

Receive Loan Offer

</flow>
<switch>
</process>

end

Select Lowest Offer

03:00pm

<partnerLink>

Exploring Orchestration with BPEL


Activities
Assign

Reply

Compensate

Scope

Empty

Sequence

Flow

Switch

Invoke

Terminate

PartnerLink

Throw

Pick

Wait

Receive

While

New in BPEL 2.0


Improved data access
Variable XPath Binding ($ notation)
makes BPEL variable data available in XPath
expressions as XPath variables leading to simplified
expressions (without requiring usage of
bpws:getVariableData).

Message parts
are available as a variable for each part and may be
referenced as $varX.partN. BPEL 2.0 also adds
support for variables based on XSD complex types.

New in BPEL 2.0


Improved data manipulation
BPEL 2.0 enables complex XML
transformations within BPEL processes by
introducing bpel:doXslTransform().
keepSrcElement to control whether the
destination element name is overwritten
inline variable initialization,
extension assign to enable implementations
to extend assign capabilities

New in BPEL 2.0


New activities
forEach, which executes the enclosed scope,
in serial or parallel, a variable number of
times.
repeatUntil, which repeats enclosed scope
until specified condition is true,
extensionActivity, which improves the ability
of BPEL implementations to provided
extended activities

New in BPEL 2.0


Enriched fault handling
BPEL 2.0 improves fault handling by
introducing finer grain knobs in the catch
construct, and a rethrow activity,
advanced fault handling features are also
introduced including termination handler
and exitOnStandardFault attribute on
scopes.

New in BPEL 2.0


Advanced message operations
BPEL 2.0 introduces Join-style Correlation
set to enable multi-start process scenarios.
Local PartnerLinks
initializePartnerRole to facilitate process
binding during deployment

New in BPEL 2.0


Syntax makeovers
Many changes in BPEL 2.0 are syntactic in
nature;
changes from switch to if-elseif-else,
changes from terminate to exit
different cases of compensate
compensate
compensateScope

Not in BPEL 2.0


BPEL4People
People Activities People can perform tasks assigned
to them by business processes
People Initiating Processes People can initiate
processes such as Expense Report
People Managing Business Processes Business
processes may require intervention to move the process
forward
Transition between Human and Automated
Business processes may change human activities to
automated activities and vice versa
Escalations Escalation mechanisms are needed to
escalate tasks that are not performed within expected
time
Nomination Some situations may require performers
to be assigned (nominated) on an instance basis (run
time)

Major BPEL PM 10.1.3 Features


Many workflow improvements
Decision service - Rules engine integration
BPEL Test capability

BPEL PM 10.1.3
Workflow Services

Oracle BPM Workflow Features


Task Assignment

Task routing

Users
Roles
Groups

Management Rules

Escalation
Delegation
Vacation
Work load balancing

Declarative patterns
Ad-hoc routing
Document based routing
Dispatching

Notifications
Declarative specification of:
When assigned, expired,
Who assignee, manager,
Email, Voice, Pager, SMS

Work-list Application

Reports, Audit Trails,

Profile based assignee,


supervisor, group owner,
process owner
Auto-generated JSP forms
Integration with ADF
Comments & Attachments
Available as portlets
Completely customizable
Web Services and Java API

Productivity and distribution


reports
Complete history and audit
trail

Identity Management
Roles and Org. Hierarchy
Integrates with OID, LDAP,
JAZN; custom plug-ins for
other directories

New Workflow Demo Scenario Help Desk Request Flow


Help Desk BPEL Process
HelpDesk App

Receive
Request

James
Coope
r

Get Ticket
Details

Human
Workflow

User Task

Assign tasks
John
Steinbe
ck

Receive
Response
Set Outcome
Email

Notify
Customer
end

Irving
Stone

Work-list Application - Home


Supervisors can
access Staff
tasks.

Filter by Category (assigned


to who), Priority, or Status
(Assigned, Completed)

Organize work
into views (like
search folders)

Claim (lock) work


assigned to Group

Default Task Form


Action

Advanced
Actions

Save
Payload Data

Comments

Attachments

History

BPEL PM 10.1.3
Decision Service

BPM & Rules - Usage Scenarios


Rules engines can be invoked as a Decision Service from
a BPEL process.
Dynamic processing

Intelligent routing
Validation of policies within process
Constraint checks

Ad-hoc Workflow

Policy based task assignment


Various escalation policies
Load balancing of tasks

Business Activity Monitoring

Alerts based on certain policies


Dynamic processing based KPI reasoning

Decision Service
(Rules)

Business Process
(BPEL)

Decision Service - Concepts


Enables users to easily wire any Rules engine with a BPEL process
Key ideas:
Abstracts proprietary rule engine apis via a standard web service
interface.
Will work with any rules engine. Support for Oracle Business Rules
and iLog JRules (BLAZE expected, others possible)
Provides access to rules repository at design time (JDev) to enable
user to browse rule sets
Supports both stateless and stateful interaction patterns
Example: ExecuteFunction, AssertFacts, WatchFacts etc.

Implementation Details
Generates specific WSDL based on rule set being invoked
Metadata about rule engine and repository captured in .decs XML file in
BPEL project
Supports both SOAP and WSIF bindings

Modified Loan Flow Demo BPEL + Rules


PORTAL

Loan Advisor
Rules

LOAN FLOW BPEL PROCESS

receive

Rules
Engine

getPhone

Rule Author

Rules
Engine

Decision
Service

getRating

Decision
Service

Union Loan

Credit Rating
Rules

receive

select
PORTAL

review

end

5-15
min

Web Services Interface: XML, SOAP,


WSDL, WSIF

invoke
invoke

Approval Task

Worklist
Application

BPEL PM 10.1.3
BPEL Test Feature

BPEL Test Framework


Provides a mechanism that allows users to automate testing of their
BPEL processes:

Emulate partners/services
Verify process actions (assert)
Calculate code coverage
Supports both service and system faults

Results integrated into BPEL Console as well as Ant-JUnit reports


User experience:
Create test case driver file (export from audit trail)
Deploy and run test cases via console or command-line
View results, fix process logic and repeat

BPEL Test Framework


1. Create XML unit test driver from instance audit trail

BPEL Test Framework


2. Execute tests

BPEL Test Framework


3. View results, code coverage, fix as needed and repeat

Getting Your Hands on 10.1.3

http://otn.oracle.com/soa
http://otn.oracle.com/bpel

Q&A
and
Feedback!