Corporate PPT Template

Download Report

Transcript Corporate PPT Template

BPEL 2.0
Oracle BPEL PM 10.1.3
[email protected]
Presales Architect Fusion Middleware
Agenda
• Einführung
• 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
?
Asynchrony, Flow Coordination, Data
Transformation, Compensation, Version Control,
Auditing
Scalability
Orchestration
ADF
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
?
Not enough metadata
 Not tool friendly
Process Flow
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
Router
• A Process is a Service
end
BPEL by Example
<variable>
<process>
BPEL Flow
10:00am
start
Credit Rating
<faultHandlers>
Get Rating
<invoke>
<flow>
<partnerLink>
Handle Negative
Credit Exception
Send Loan Application
Send Loan Application
<invoke>
United Loan
<receive>
<partnerLink>
Receive Loan Offer
Receive Loan Offer
</flow>
<switch>
</process>
?
end
Select Lowest Offer
03:00pm
Star Loan
<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
Cooper
Get Ticket
Details
Human
Workflow
User Task
Assign tasks
John
Steinbeck
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
Attachments
Comments
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
5-15 min
receive
select
PORTAL
review
end
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!