![Page 1: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/1.jpg)
COP 4991Component Based Software
Development
Lecture #7Workflows/BPEL
Onyeka Ezenwoye
![Page 2: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/2.jpg)
Agenda
Workflow introductionOASIS and WS-BPELMain ConceptsExamplesStatus and support
![Page 3: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/3.jpg)
Motivation
Application integration is a key problem facing businesses– Intra enterprise integration (Enterprise Application Integration)– Integrating with partners (Business Process Integration)
Web services move towards service-oriented computing– Applications are viewed as “services”– Loosely coupled, dynamic interactions– Heterogeneous platforms– No single party has complete control
Service composition– How do you compose services in this domain?
![Page 4: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/4.jpg)
Application Integration
Production
Service
Customer Customer
Accounting
Service
Inventory
Service
Delivery
Service
Sales ServiceSales Service(workflow)
![Page 5: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/5.jpg)
Workflow
Workflows represent a set of activities to be executed, their interdependencies relations, inputs and outputs.
activity1
activity2
activity3input data1
input data2
input data3
activity4
output data
![Page 6: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/6.jpg)
What are workflows?
The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules.
workflow management consortium
![Page 7: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/7.jpg)
Participants perform the work represented by a workflow activity instance and can be human or machine resources. Activities can execute in parallel or in sequence.
Step 1
Step 3Step 2
Step 4
Activity (human or machine)
Condition / dependency
Step 0
Step 5
![Page 8: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/8.jpg)
Main Concepts in Workflow
match-making between participants and activities,
Control flow of work between participants
providing information resources for activities,
designing processes,
managing processes,
the scope of the process environments which can be created
![Page 9: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/9.jpg)
Two-level Programming Model
Programming in the large– Non-programmers implementing flows
• Flow logic deals with combining functions in order to solve a more complex problem (such as processing an order)
Programming in the small– Programmers implementing functions
• Function logic deals with a discrete fine-grained task (such as retrieving an order document or updating a customer record)
![Page 10: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/10.jpg)
Workflow Management Systems
Workflow management systems date back to the late 1980. The are used to coordinate the work of multiple people in a project that has a fixed process.
Pure workflow software
![Page 11: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/11.jpg)
Why workflow management?
Better, Cheaper faster businesses
Improved efficiency - mostly through automation of business processes.
Improved customer service – through consistency in the processes.
Flexibility – software control over processes enables their re-design in line with changing business needs
![Page 12: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/12.jpg)
Workflow Systems should support
- defining process in terms of finer-grained tasks or activities,
- scheduling these activities and
- dispatching (invoking) the activities
- Passing of information between activities
![Page 13: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/13.jpg)
Types of WFMS
Centralized (Orchestration)
Decentralized (Choreography)
![Page 14: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/14.jpg)
Orchestration
A centralized mechanism that describes how diverse services can interact. This interaction includes message exchange, business logic and order of execution.interacting components are not be aware of each other
![Page 15: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/15.jpg)
Choreography
Choreography focuses on enabling the description of how to interact with services at a larger scale than the individual message exchange pattern
Interacting components are aware of each other.
![Page 16: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/16.jpg)
Orchestration
Centralized Approach
ComponentA
WorkflowEngine
1:
2a: *
2b: *
3a: *
3b: *
4:
B C D
![Page 17: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/17.jpg)
Choreography
Decentralized approachComponent
A Component X
1:
3a: *
3b: *
4:
B C D
![Page 18: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/18.jpg)
Centralized Control
Central WFMS
A1 (t1) A2 (t2)A3 (t3) A4 (t4)
t3
t4
bs
bs bf
t1t2
Problems with Centralized Control – Performance bottleneck– do not scale well– May not suitable if systems are inherently autonomous and distributed
![Page 19: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/19.jpg)
Some Challenges for WfMS
Process Representation (control flow & data flow)
Process Specification
Process Definition Interoperability
Process Enactment (automated sequencing)
Process Monitoring & Control/Config.
Process Participant Modelling, Monitoring & Control
![Page 20: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/20.jpg)
Agenda
Workflow introductionOASIS and WS-BPELMain ConceptsExamplesStatus and support
![Page 21: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/21.jpg)
Application Integration
Business Process
WAS.net
CICS
SOAP
RMI/IIOP
MQSeries
MQSeries
Delivery channels
Legacy integration
![Page 22: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/22.jpg)
WS-BPEL Specifications
BPEL4WS 1.0 (7/2002)– Original proposal from BEA, IBM, Microsoft – Combined ideas from IBM’s WSFL and Microsoft’s
XLANG
BPEL4WS 1.1 (5/2003)– Revised proposal submitted to OASIS– With additional contributions from SAP and Siebel
WS-BPEL 2.0– Currently in OASIS undergoing standardization– Committee Draft specification available
![Page 23: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/23.jpg)
WS-BPEL in the WS-* Stack
WS-BPEL
XML, Encoding
Other protocols
Other services
Transportand
Encoding
BusinessProcesses
WSDL, Policy, UDDI, Inspection Description
SecurityReliable
Messaging
Transactions
Coordination
SOAP (Logical Messaging)
QualityOf
Service
You are here
![Page 24: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/24.jpg)
Process Usage Patterns
Aiming for a single approach for both …– Executable processes
• Contain the partner’s business logic behind an external protocol
– Abstract processes• Define the publicly visible behavior of some or all
of the services an executable process offers
• Define a process template embodying domain-specific best practices
![Page 25: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/25.jpg)
Process Model RequirementsPortability and InteroperabilityFlexible Integration– Rich, and easily adaptable to changes in the services it is interacting with
Recursive, type-based composition, enables …– third-party composition of existing services– providing different views on a composition to different parties– inter-workflow interaction– increased scalability and reuse
Separation and composability of concerns– Decoupled from the supporting mechanisms (quality of service,
messaging frameworks)Stateful conversations and lifecycle management– Can carry multiple stateful long-running conversations
Recoverability– Business processes, and in particular long running ones, need a way to
build-in fault handling and compensation mechanisms to handle and recover from errors
![Page 26: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/26.jpg)
Getting the Players Together(*)
BPEL4WS 1.1
(*) BPEL4WS 1.1 authors
![Page 27: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/27.jpg)
OASIS Technical Committee
288 committee members, incl. observers~ 30 active voting members, attending weekly calls
Work on WS-BPEL (TC Charter)– Standardize it– Focus on
• Common concepts for a business process execution language for usage patterns including both the process interface descriptions and executable process models
– Explicitly do not address• Bindings to specific hardware/software platforms and other
mechanisms required for a complete runtime environment for process implementation
![Page 28: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/28.jpg)
OASIS Technical CommitteeIssues Process– List of all issues available at http://www.choreology.com/external/WS_BPEL_issues_list.html
– Issue discussion• Weekly calls• Quarterly face to face meetings
Status– Deadlines (need 2/3 majority to override)
• No new feature issues since Aug 15, 2004• No new feature issue resolution proposals since April 1, 2005• Feature issues that are not resolved are marked as revisitable
– Latest approved committee draft: September 1, 2005
![Page 29: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/29.jpg)
Agenda
Workflow introductionOASIS and WS-BPELMain ConceptsExamplesStatus and support
![Page 30: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/30.jpg)
WS-BPEL Language Structure
Process
Partner links
Data handling
Properties and correlation
Basic and structured activities
Scopes
![Page 31: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/31.jpg)
BPEL and WSDL
BPEL processes are exposed as WSDL services– Message exchanges map to WSDL operations
– WSDL can be derived from partner definitions and the role played by the process in interactions with partners
WebService
Loan Approval Process
receive
reply
WSDLLoan Approval
PortType
![Page 32: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/32.jpg)
Recursive Composition
BPEL processes interact with WSDL services exposed by business partners
WebService
Loan Approval Process
WebService
WSDLLoan Approval
PortType
Financial Institution‘sWeb Service
(Loan Approver)invoke
Interfaces exposed
by the BPEL process
Interfaces consumed
by the BPEL process
receive
reply
![Page 33: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/33.jpg)
Composition of Web Services
Partner Link Type Partner Link Type
Service PService A Service B
A’s WSDL P’s WSDL B’s WSDL
invoke
receive
receive
invoke
invoke
![Page 34: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/34.jpg)
Partner Links
Partner link: instance of typed connector– Partner link type specifies required and/or
provided portTypes– Channel along which a peer-to-peer
conversation with a partner takes place
PartnerLink Type
Port Type 1 Port Type 2
Process 1 Process 2
![Page 35: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/35.jpg)
BPEL Data Model: Variables
0
1
Assignment activities move data
around
Activities’ input and output
kept in scoped variables
Scoped variables typed as WSDL messages orXML Schema elements/types
. . . invoke
assign
reply
. . .
receive
42
![Page 36: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/36.jpg)
Basic Activities
Do a blocking wait for a matching message to arrive
Send a message in reply to a formerly received message
Invoke a one-way or request-response operation
Update the values of variables or partner links with new data
Validate XML data stored in variables
A “no-op” instruction for a business process
Generate a fault from inside the business process
Forward a fault from inside a fault handler
Immediately terminate execution of a business process instance
Wait for a given time period or until a certain time has passed
Invoke compensation on an inner scope that has already completed
receive
reply
invoke
throw
exit
wait
empty
compensate
validate
assign
rethrow
![Page 37: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/37.jpg)
Structured Activities
Contained activities are executed in parallel, partially ordered through control links
Select exactly one branch of activity from a set of choices
Contained activity is repeated while a predicate holds
Contained activity is repeated until a predicate holds
Block and wait for a suitable message to arrive (or time out)
Contained activity is performed sequentially or in parallel, controlled by a specified counter variable
Contained activities are performed sequentially in lexical order
Associate contained activity with its own local variables, fault handlers, compensation handler, and event handlers
if then else
while
scope
pick
sequence
flow
repeatUntil
forEach
![Page 38: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/38.jpg)
Nesting Structured Activities<sequence> <receive .../> <flow> <sequence> <invoke .../> <while ... > <assign>...</assign> </while> </sequence> <sequence> <receive .../> <invoke ... > </sequence> </flow> <reply></sequence>
receive
reply
receive
invoke
invoke
assign
sequence
sequencesequence
flow
while
![Page 39: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/39.jpg)
Scopes and Handlers
Scope– Local variables– Local partner links– Local correlation sets– Set of activities (basic or structured)
Handlers– Event handlers
• Message events or timer events (deadline or duration)
– Fault handlers• Dealing with different exceptional
situations (internal faults)– Compensation handler
• Undoing persisted effects of already completed activities
– Termination handler• Dealing with forced scope termination
(external faults)
. . .
faulthandler
faulthandlers
compensationhandler
terminationhandler
eventhandlers
. . .
. . .
. . .
. . .
correlationsets
partnerlinks
scope
variables
![Page 40: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/40.jpg)
Correlation
Messages in long-running conversations are correlated to the correct process instance
instance nBPEL Engine
Process instance 2
instance 1
2
1
<message name=“requestMessage"> <part name="firstName" type="xsd:string"/> <part name=“lastName" type="xsd:string"/> <part name=“custID" type="xsd:int"/></message>
![Page 41: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/41.jpg)
Process Instance Lifecycle
Business processes defined in BPEL represent stateful Web services– When a process is started, a new instance is
created– The creation and destruction of BPEL process
instances is by design implicit
receive replyinvokeinvoke invoke
![Page 42: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/42.jpg)
Agenda
Workflow introductionOASIS and WS-BPELMain ConceptsExamplesStatus and support
![Page 43: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/43.jpg)
Graph-Oriented Authoring Style
1. A customer asks for a loan, providing name and amount info2. Two services are involved: a) A risk assessor which can approve the loan if the risk is low b) A loan approver which checks the name and approves/disapproves
the loan3. The reply is returned to the customer
invoke
receive
invoke
reply
assign
loanApprovalPT
loanapprover
riskAssessmentPT
loanassessor
amount < 10000 amount >= 10000
risk = "high"
risk = "low" approved = "true"
approved = "false"
flow
![Page 44: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/44.jpg)
Structured Authoring Style
ifbuyer$$ < seller$$
then
else
reply(buyer)
reply(seller)
receive(buyer)
receive(seller)
assign"success"
assign"failure"
sequence
flow if-then-else
![Page 45: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/45.jpg)
Fault Handling and Compensation
compensationhandler
chargecredit card
refundcustomer
shipgoods
faulthandler
notifymanager
compensate
faulthandler
rethrow
Process
flow
scopescope
![Page 46: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/46.jpg)
Process BProcess A
BPEL Partner Link Assignment
receiverequest
invokecallback
PortType-B
PortType-A
invokeservice
6. Receive the callback from the other process
5. Invoke A‘s callback using the received
EPR
receiveresponse
PartnerLink Type
A-role
B-role
partnerlink
partnerlink
3. Receive variable with
A‘s callback EPR from process A
assignEPR
1. Assign EPR from partnerLink (myRole)
to variable
2. Pass variable with A‘s callback EPR to
process B
assignEPR
4. Assign EPR from variable to partnerLink
(partnerRole)
![Page 47: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/47.jpg)
A Travel ReservationAbstract Process ViewExecutable Processes View
getitinerary
getorder
ordertickets
receiveconfirmation
confirmflight
sendtickets
sendconfirmation
submitto agent
receivetickets
receiveconfirmation
selectairline
reserveseats
chargecredit card
plantrip
Agent Process Airline ProcessTraveler Process
![Page 48: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/48.jpg)
Amazon Store WSresultquery
Google Spell-checker WS
resultphrase
<portType name="GooglePortType"> <operation name="doSpellingSuggestion"> <input message="type:String"/> <output message="type:String"/> </operation> </portType>
<portType name=“AmazonPortType"> <operation name="ItemSearch"> <input message="type:ComplexType"/> <output message="type:Array"/> </operation> </portType>
![Page 49: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/49.jpg)
<portType name=“Google-AmazonPortType"> <operation name=“GoogleAmazonSearch"> <input message="type:String"/> <output message="type:Array"/> </operation> </portType>
Amazon Store WSresult
query
Google Spell-checker WS
result
phrase
assignment activity
![Page 50: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/50.jpg)
Agenda
Workflow introductionOASIS and WS-BPELMain ConceptsExamplesStatus and support
![Page 51: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/51.jpg)
WS-BPEL
Portable, interoperable process model for long running business processesFlexible integration of Web services– WSDL abstract interfaces alone used to define
composition• Enables two levels of adaptive behavior
– Abstract partners can be bound to actual services at runtime– The process can choose a protocol for communicating with the
service at runtime
– Services whose data definitions do not match can be composed
• Data transformations can be inlined in process definition
![Page 52: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/52.jpg)
Disadvantages of WS-BPEL
Static process composition.
Process participants (partner‘s web services) must be defined and bound to the process flow at design time.
BPEL standard is not about Semantic Web services:– Partner discovery and bounding at run time not possible.
– Message mediation not possible.
![Page 53: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/53.jpg)
WS-BPEL Adoption: Products
Active Endpoints ActiveWebflow Server ActiveBPEL Engine (open source)bexee BPEL Execution Engine (open source) Cape Clear Orchestrator FiveSight PXE BPWS4J (Test engine from IBM Alphaworks)IBM WebSphere Business Integration – Server Foundation 5.1IBM WebSphere Process Server 6.0OpenLink Virtuoso Universal Server OpenStorm ChoreoServer Oracle BPEL Process Manager Parasoft BPEL Maestro SeeBeyond eInsight BPM Twister (open source)
![Page 54: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/54.jpg)
What’s new since BPEL4WS 1.1?
Activities: if-then-else, repeatUntil, validate, forEachExtension activityCompletion condition in forEach activityVariable initialization XPath access to variable data$variable[.part]/location
XML schema variables for WS-I compliant doc/lit-style WS interactions Locally declared messageExchange for correlating receive and reply activitiesAbstract processes – common base and profiles
![Page 55: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/55.jpg)
WS-BPEL Resources
OASIS Technical Committee http://www.oasis-open.org
BPEL4WS 1.1http://dev2dev.bea.com/technologies/webservices/BPEL4WS.jsp http://www-128.ibm.com/developerworks/library/specification/ws-bpel/http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbiz2k2/html/bpel1-1.asp http://ifr.sap.com/bpel4ws/ http://www.siebel.com/bpel
WS-BPEL 2.0 – latest approved committee draft (September 2005)http://www.oasis-open.org/committees/document.php?document_id=14314&wg_abbrev=wsbpel
Info aggregator sites– Wikipedia
http://en.wikipedia.org/wiki/BPEL
– BPEL Resource Guidehttp://bpelsource.com
Numerous books and conference papers Analyst reports
![Page 56: COP 4991 Component Based Software Development Lecture #7 Workflows/BPEL Onyeka Ezenwoye](https://reader035.vdocuments.us/reader035/viewer/2022062304/56649f565503460f94c7ad3a/html5/thumbnails/56.jpg)
Acknowledgement
Vincent Wade
Rafael Calvo
Dieter König