12/28/2010

Similarities and differences between BPEL and Microsoft Windows Workflow Foundation



Business Process Execution Language (BPEL) or Web Services Business Process Execution Language (WS-BPEL) is an OASIS standard executable language for specifying actions within business processes with web services [1]. And Windows Workflow Foundation (WF) is a Microsoft technology that provides an API, an in process workflow engine, and a rehostable designer to implement long running processes as workflows within .NET applications. The current version of WF was released as part of the .NET Framework version 4[2].


A workflow is a series of distinct programming steps or phases. Each step is modeled in WF as an activity. The .NET Framework provides a library of activities (such as WriteLine, an activity that writes text). Custom activities can also be developed for additional functionality. Activities can be assembled visually into workflows using the Workflow Designer, a design surface that runs within Visual Studio. The designer can also be hosted in other applications.

After above brief introduction I’m going to compare and contrast, or describe similarities and differences between, BPEL and Microsoft Windows Workflow Foundation.

Similarities

• Both BPEL and WF can write directly in code.

• BPEL and WF both deals with Business Processes.

• Both use to write web services and use to handle functions of web servers.

• Both applications are working in service-oriented environment.

• The ability to make decisions based on business rules.

• Offer ways to communicate with other software and other systems outside the workflow.

• Rather than offering a single language and a single tool, WF instead provides a general framework for creating and executing workflows [4] and BEPL has an extensible language plug-in model to allow writing expressions and queries in multiple languages.

• Both use Structured-programming concepts.

• Define business processes that interact with external entities through web service operations.


Differences

• BPEL define business processes using an XML based language. Do not define a graphical representation of processes or provide any particular design methodology for processes. But in WF can also be defined graphically, with code added where required.

• WF can make the application faster to build, quicker to change, and easier to customize but in contrast BPEL is difficult to customize.

• BPEL is XML based so don't have to translate between the XML format and objects in Object Oriented programming language [3].

• WF provides both hierarchical and graph like control regimes, and allow their use to be blended as seamlessly as possible. This should reduce the fragmentation of the process modeling space. But BPEL haven’t this type of functionalities.

• WF has ways to interact with people. Here, a manager must approve some applicants, and so the workflow must be able to display a user interface itself or interact with human beings through other software. BPEL can’t do that.

• WF Managing the flow of execution between activities. Workflow execution can be modeled visually in the designer, using activities such as Flowchart, If, Sequence, Pick, and Parallel. But BEPL hasn’t this type of facilities.

• BPEL support the implicit creation and termination of process instances as the basic lifecycle mechanism.

• In BPEL provide data manipulation functions for the simple manipulation of data needed to define process data and control flow. And in WF use graphical interfaces to data manipulation.


References

[1]http://en.wikipedia.org/wiki/Windows_Workflow_Foundation

[2]http://en.wikipedia.org/wiki/Business_Process_Execution_Language

[3]http://www.theserverside.com/news/thread.tss?thread_id=39006

[4]http://msdn.microsoft.com/en-us/library/aa480215.aspx

1 comment: