bpel 2.0 oracle bpel pm 10.1.3 [email protected] presales architect fusion middleware
TRANSCRIPT
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 Platform
Portal
ADF
Java Services (EJB)
Messaging Destinations (JMS)
User Tasks
Web Services (Sync and Async)
Legacy Applications (JCA, adapters)
Orchestration
ConnectivityHeterogenous Back EndsSilos of API and mechanismsOpaque/heterogeneous data definitionsSynchronizing multiple data stores
Flow ControlAsynchrony, Flow Coordination, Data Transformation, Compensation, Version Control, Auditing
ScalabilityUnpredictable loadsAsymmetric performance capabilities
Management and SecurityAccess control, Encryption, Logging, MeteringIndependent of the service
Interaction/AccessCatalog, Customization, Access
Process Orchestration Today
?
Java Platform
Portal
ADF
Java Services (EJB)
Messaging Destinations (JMS)
User Tasks
Web Services (Sync and Async)
Legacy Applications (JCA, adapters)
Process Flow
Today
Not enough metadata Not tool friendly
Proprietary languages Rare skill sets, consulting
Hard Wired/Code Rigid, difficult to change
Incompatible Infrastructures Difficult to manage and scale
What is BPEL?
Duplicate Number!
SalesDB start
end
Router
Billing
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
BPEL by Example
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>
Exploring Orchestration with BPEL Activities
Assign
Compensate
Empty
Flow
Invoke
PartnerLink
Pick
Receive
Reply
Scope
Sequence
Switch
Terminate
Throw
Wait
While
New in BPEL 2.0Improved 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.0Improved 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.0New 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.0Enriched 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.0Advanced 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.0Syntax 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.0BPEL4People
• 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
Oracle BPM – Workflow Features
Task Assignment• Users• Roles• Groups
Task routing• Declarative patterns• Ad-hoc routing• Document based routing• Dispatching
Notifications• Declarative specification of:
• When – assigned, expired, …• Who – assignee, manager, …
• Email, Voice, Pager, SMS
Management Rules• Escalation• Delegation• Vacation• Work load balancing
Reports, Audit Trails, …• Productivity and distribution
reports• Complete history and audit
trail
Work-list Application• 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
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
Receive Request
Get TicketDetails
Notify Customer
User Task
end
Human Workflow
Assign tasks
Set Outcome
Receive Response
HelpDesk App
JohnSteinbeck
Irving Stone
JamesCooper
Work-list Application - Home
Filter by Category (assigned to who), Priority, or Status
(Assigned, Completed)
Claim (lock) work assigned to Group
Supervisors can access Staff
tasks.
Organize work into views (like search folders)
Decision Service(Rules)
BPM & Rules - Usage Scenarios
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
Rules engines can be invoked as a Decision Service from a BPEL process.
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
PORTAL
Modified Loan Flow Demo – BPEL + Rules
PORTAL
Web
Serv
ices
Inte
rface
: X
ML,
S
OA
P,
WS
DL,
WS
IF
WorklistApplication
Approval Task
DecisionService
RulesEngine
Rule Author
Credit RatingRules
LOAN FLOW BPEL PROCESS
receive
getPhone
invoke
select
receive
review
Union Loan
end
5-15 min
getRating
invoke
DecisionService
RulesEngine
Loan AdvisorRules
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