320 likes | 556 Views
BPEL 2.0 Oracle BPEL PM 10.1.3 Bernd.Trops@oracle.com 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
E N D
BPEL 2.0 Oracle BPEL PM 10.1.3 Bernd.Trops@oracle.com 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 Connectivity Heterogenous Back Ends Silos of API and mechanismsOpaque/heterogeneous data definitions Synchronizing multiple data stores Java Services (EJB) Messaging Destinations (JMS) Legacy Applications (JCA, adapters) Portal Java Platform Flow ControlAsynchrony, Flow Coordination, Data Transformation, Compensation, Version Control, Auditing ? User Tasks ScalabilityUnpredictable loads Asymmetric performance capabilities Orchestration Web Services (Sync and Async) ADF Management and SecurityAccess control, Encryption, Logging, MeteringIndependent of the service Interaction/AccessCatalog, Customization, Access
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 Process Orchestration Today Java Services (EJB) Messaging Destinations (JMS) Legacy Applications (JCA, adapters) Portal Java Platform ? User Tasks Web Services (Sync and Async) ADF Process Flow
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 MSFT and IBM • SOAP but also Java, JCA • Rich Flow Semantics • Optimized Bindings • XPATH+XSLT+XQuery • WS-Security • A Process is a Service Duplicate Number! Billing Router end
<process> <variable> <flow> <partnerLink> <invoke> <receive> <partnerLink> <partnerLink> </flow> </process> BPEL by Example BPEL Flow 10:00am start Credit Rating <faultHandlers> Get Rating <invoke> Handle Negative Credit Exception Send Loan Application Send Loan Application United Loan Star Loan Receive Loan Offer Receive Loan Offer <switch> ? Select Lowest Offer end 03:00pm
Exploring Orchestration with BPEL Activities Reply Assign Scope Compensate Empty Sequence Flow Switch Invoke Terminate PartnerLink Throw Pick Wait Receive 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
BPEL PM 10.1.3 Workflow Services
Oracle BPM – Workflow Features • Task Assignment • Users • Roles • Groups • Task routing • Declarative patterns • Ad-hoc routing • Document based routing • Dispatching • Management Rules • Escalation • Delegation • Vacation • Work load balancing • Notifications • Declarative specification of: • When – assigned, expired, … • Who – assignee, manager, … • Email, Voice, Pager, SMS • 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 • Reports, Audit Trails, … • 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 Irving Stone John Steinbeck Receive Response Set Outcome Email Notify Customer end
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 Advanced Actions Action 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
Rule Author RulesEngine RulesEngine WorklistApplication Modified Loan Flow Demo – BPEL + Rules Loan AdvisorRules PORTAL LOAN FLOW BPEL PROCESS receive getPhone DecisionService getRating DecisionService Union Loan invoke Credit RatingRules 5-15 min invoke receive select Approval Task Web Services Interface: XML, SOAP, WSDL, WSIF PORTAL review end
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!