This document summarizes a case study where a province in the Netherlands modeled their grants and permits processes using the Oracle BPA Suite and executed the processes using BPEL. Key findings included impedance mismatches between BPMN models and BPEL execution, incorrect use of BPMN syntax, and a lack of clear guidance from Oracle on how to integrate the BPA Suite and SOA Suite technologies. While BPA Suite allowed business users to model processes, integrating the models with a BPEL implementation presented many challenges.
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
BPA to BPEL Case Study
1. BPA Suite to BPEL: a Case Study
Lonneke Dikmans
November 2011 | Nuremberg, Germany
11||29
x
2. Vennster
• Integrated approach from three perspectives
• Senior consultants with specific expertise and industry
knowledge
• Add value, share knowledge
• Partnership
• Lonneke Dikmans is Oracle Ace Director
Human
Business IT
22||29
x
3. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Executing the processes: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
33||29
x
4. Context | Province Overijssel
Province
● 1.130.664 inhabitants
● 26 municipalities
● 1000 employees
● 10 units (roads, culture,
agriculture etc)
● grants, permits,
development
SOA and BPM
● NORA, PETRA, ORA
● Dutch case management
44||29
x
5. Context | Project
Process
• Grants and permits
• Based on a standardized case management process
Tooling
• Oracle SOA Suite11g
• Oracle BPA Suite11g
• COTS case metadata system
55||29
x
6. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Executing the processes: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
66||29
x
7. Modeling the process: BPMN | Tool
Process modeling
• Model the processes in BizAgi
• Free, used as input for the bidding process-> no middleware
yet!
77||29
x
9. Modeling the process: BPMN | BPMN
Objects
• Activities (Task, sub process)
• Events (Start, Intermediate, End)
• Gateways (If, Parallel)
• Flow (Sequence, message)
Roles
• Lanes and pools
99||29
x
10. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Execution of the processes: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
10 ||29
10 x
11. Executing the processes: BPEL | Tool
BPEL Development
• Develop the process in JDeveloper
• Based on the process models
11 ||29
11 x
12. <!-- HelloWorld BPEL Process -->
<process name="HelloWorld" targetNamespace="http://samples.otn.com/helloworld" suppressJoinFailure="yes"
xmlns:tns="http://samples.otn.com/helloworld" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-
process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" >
<!-- List of services participating in this BPEL process -->
<partnerLinks>
<!-- The 'client' role represents the requester of this service. It is used for callback. The location and
correlation information associated with the client role are automatically set using WS-Addressing. -->
<partnerLink name="client" partnerLinkType="tns:HelloWorld" myRole="HelloWorldProvider"
partnerRole="HelloWorldRequester" />
</partnerLinks> <!-- List of messages and XML documents used as part of this BPEL process --> <variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="input" messageType="tns:HelloWorldRequestMessage"/>
<!-- Reference to the message that will be sent back to the requestor during callback --> <variable
name="output" messageType="tns:HelloWorldResultMessage"/>
</variables>
<!-- Orchestration Logic -->
<sequence>
<!-- Receive input from requestor. Note: This maps to operation defined in HelloWorld.wsdl -->
<receive name="receiveInput" partnerLink="client" portType="tns:HelloWorld" operation="initiate"
variable="input" createInstance="yes"/>
<!-- Generate content of output message based on the content of the input message. -->
<assign>
<copy>
<from expression="concat('Hello ',bpws:getVariableData('input', 'payload','/tns:name'))"/>
<to variable="output" part="payload" query="/tns:result"/>
</copy>
</assign>
<!-- Asynchronous callback to the requester. Note: the callback location and correlation id is
transparently handled using WS-addressing. -->
<invoke name="replyOutput" partnerLink="client" portType="tns:HelloWorldCallback" operation="onResult"
inputVariable="output" />
</sequence>
</process>
12 ||29
12 x
13. Executing the processes: BPEL |Transform
BPMN in BPA BPEL Remark
Activity Scope Including calls to service
Start event Receive activity If no trigger
Pick If ‘multiple’
Separate process If timer
End event Invoke, reply, Depends on the result type. If
throw, none is modeled, no activity is
compensation, generated in BPEL
termination
Gateway Switch, pick, or Depending on type of gateway
flow and flow object that follows
gateway
13 ||29
13 x
14. Executing the processes: BPEL |Transform
BPMN in BPA BPEL Remark
Connecting N.A See spec for some exceptions
objects
Sub process Invoke activity, not
scope
Swim lanes N.A Don’t exist in BPEL. Tasks are
assigned to correct role
Business data Variables Not often available
14 ||29
14 x
15. Executing the processes: BPEL | Transform
DEMO BPA Suite -> Oracle JDeveloper
1. Create a BPA Suite database
2. Model a process
3. Create a blueprint
4. Import blueprint in JDeveloper
5. Technical implementation
15 ||29
15 x
16. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Execution of the process: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
16 ||29
16 x
17. Design perspective | Considerations
Process models
• Main process and sub processes (intake, process, decide,
deliver)
• How to handle user interaction versus process flow
• Translation from BPMN to BPEL
• How to handle ad-hoc tasks
• Error handling
Governance
• Ease of use of modeling tool
• Versioning of models and code
• Change management
• Match process models and code
17 ||29
17 x
18. Design perspective | Findings
Incorrect use of BPMN (syntax and semantic errors)
• No start event
• Use of signal instead of message
• Scope / subject of process (one grant versus an arrangement)
No Layering
• Missing overall process
• business versus implementation view
Impedance mismatch
• No “go to” in BPEL
• Two start events
• Technical decisions in the process model; what to automate how
• Different target audience (business analyst versus developer)
18 ||29
18 x
19. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Execution of the processes: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
19 ||29
19 x
20. Development | Considerations
Decide on relationship SCA – BPMN process
• One SCA for all BPMN processes
• One SCA per BPMN process
• One SCA per BPMN process plus sub processes
Guidelines
• No composite in a composite possible in SOA Suite 11g
• If a process is callable (reusable) from multiple other
processes use separate SCA
• Otherwise (embedded) generate BPEL in same SCA
Can’t design this just in BPA Suite
20 ||29
20 x
21. Example
BPMN process with reusable sub process
● SendDocuments: called in multiple (sub) processes
BPMN process with embeded sub process
● FirstRequest: embedded in “process request”
21 ||29
21 x
22. Development perspective | Findings
Use of CDM in BPEL
● Too much data for BPEL (not for SCA)
● Changes have huge impact (assigns, XSLT, partnerlinks)
● WSDLs and XSDs get copied into project instead of use of MDS
On Message event
● BPEL onMessage or Pick activity (for retry and error handling)
Ending a process
● Business error solved by technical error
“Loosing the connection”
• One BPEL is connected to one BPA database
22 ||29
22 x
25. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes: BPMN
● Execution the processes: BPEL
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
25 ||29
25 x
26. Licensing perspective | Partner & Customer
Oracle SOA Suite versus Oracle BPM Suite
● At the time, Oracle very focused on Oracle SOA Suite.
● Business analyst activities versus development activities
● Case management versus BPM unclear at customer
Software AG versus Oracle
● Need for Archimate plug-in. Not offered by Oracle
● Unclear architecture, versus business architecture, versus
BPM versus process design
● Software AG up selling after the deal
26 ||29
26 x
27. Agenda | BPA to BPEL: a case study
Introduction
● Context
● Modeling the processes
Case
● Design perspective
● Development perspective
● Licensing perspective
Conclusion
● Do it again?
27 ||29
27 x
28. Conclusion | BPA Suite to BPEL
Governance
● Need business analyst during development
● Stay connected or start over from scratch
● Very little to no support from Oracle
• Policy: Software AG makes money on training
• Partners are not enabled
• Little knowledge
● BPA Suite modeling experience is not very good
Technical
● Need both BPMN and BPEL knowledge
• During design and development
● Design as little technical detail as possible in BPMN diagrams
28 ||29
28 x
29. Conclusion | do it again?
Yes
● No good alternative for business in control
● No good alternative for business architecture – BPM link
● Cheaper than Oracle BPM studio
● Proven technology (both BPA Suite and BPEL)
No
● Oracle BPM Suite is better fit
● Oracle is committed to Oracle BPM Suite
● Having multiple vendors is nightmare for organization
29 ||29
29 x
30. BPA Suite to BPEL: a Case Study
Lonneke Dikmans
November 2011 | Nuremberg, Germany
30 ||29
30 x