- Workflow application
A workflow application is where various applications, components and people must be involved in the processing of data to complete an instance of a process. For example, consider a purchase order that moves through various departments for authorization and eventual purchase. The orders may be treated as messages, which are put into various queues for processing. It is critical that the state of the queues are captured. A workflow process involves constant change and update. You can introduce new components into the operation without changing any code.
There are two ways of developing workflow applications. The first one is to design workflow models in a dedicated language and then to link the tasks in these models to worklist handlers (for human tasks) or software applications (for automated tasks). Workflow languages usually come with an associated graphical notation, but some are textual or XML-based. Languages that can be used for workflow definition in this way include:
*Dedicated workflow specification languages:
**XPDL
**YAWL
**SCUFL
*Executable process definition languages based onWeb Service s:
**BPEL
**BPML
**WSFL
**XLANG
**Wf-XML
**SWSL
*Job Definition Format sAnother approach to develop workflow applications is to use a programming language in conjunction with libraries and interfaces that capture abstractions for task coordination. The following are examples of such libraries and interfaces:
*Windows Workflow Foundation
*Workflow OSID It is also possible to use languages designed for
business process modeling (e.g. theBusiness Process Modeling Notation ) to specify workflows. However, to fit the purpose of workflow specification, such notations need to be enhanced with additional constructs to capture data passing, data transformations and routing conditions, to bind tasks to their implementation, etc.. Indeed, business process modeling is about capturing business processes at a higher level of abstraction, in order to enable their analysis through methods such as simulation. Meanwhile, workflow specification is about capturing processes at a level of detail that is sufficient to enable their execution.For the purpose of static analysis, e.g. to detect semantic errors at design-time, it is also possible to represent workflow in a mathematical form using formal notations such as
Petri net s.
Wikimedia Foundation. 2010.