Workflow application
Encyclopedia
A workflow application is a software application which automates, at least to some degree, a process or processes. The processes are usually business-related, but it may be any process that requires a series of steps that can be automated via software. Some steps of the process may require human intervention, such as an approval or the development of custom text, but functions that can be automated should be handled by the application. Advanced applications allow users to introduce new components into the operation.

For example, consider a purchase order
Purchase order
A purchase order is a commercial document issued by a buyer to a seller, indicating types, quantities, and agreed prices for products or services the seller will provide to the buyer. Sending a purchase order to a supplier constitutes a legal offer to buy products or services...

 that moves through various departments for authorization and eventual purchase. The order may be moved from department to department for approval automatically. When all authorizations are obtained, the requester of the purchase order is notified and given the authorization. A workflow process may involve constant change and update. For example, the normal approver of purchase orders may be on vacation, in which case, the application will request approval from alternate approvers.

Development

A workflow application can be developed with any general-purpose programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

, but specialized workflow languages also exist. These usually come with an associated graphical notation (such as BPMN
Business Process Modeling Notation
Business Process Model and Notation is a graphical representation for specifying business processes in a business process model. It was previously known as Business Process Modeling Notation....

), but some are textual or XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

-based. Specialized languages that can be used for workflow definition in this way include:
  • XPDL
    XPDL
    The XML Process Definition Language is a format standardized by the Workflow Management Coalition to interchange business process definitions between different workflow products, i.e...

  • YAWL
    YAWL
    This article is about the workflow system. For the sailing craft, see yawl.YAWL is a workflow language based on the Workflow patterns. The language is supported by a software system that includes an execution engine, a graphical editor and a worklist handler...

  • SCUFL


The above languages are based on XML syntax: while suitable for manipulation by software, they are difficult for non-technical people (the ones who have a deep understanding of specific business/scientific processes) to work with. Therefore, their use is generally augmented by the use of graphical notations that enable the creation of flowchart-like diagrams that are easier for humans to develop and interpret: the creation of such diagrams is in effect a form of "graphical" programming. The software package that allows a user to develop a workflow diagram will typically translate a diagram into its XML equivalent.

Another 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
    Windows Workflow Foundation
    Windows Workflow Foundation 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...

     (WF)
  • Workflow OSID


The use of libraries is generally complementary to diagramming techniques, which are not always sufficient by themselves to create fully functional applications (unless the diagramming tool is part of a specific workflow management system). WWF workflows, for example, can be created using Microsoft Visual Studio diagrammatically (their XML equivalent is XAML
XAML
Extensible Application Markup Language is a declarative XML-based language created by Microsoft used for initializing structured values and objects. It is available under Microsoft's Open Specification Promise...

), and their functionality augmented with code written in C# or VB.NET: a given workflow can be called by an existing software application as a Web service. Software development tools such as Visual Studio or the numerous coding environments for Java will also allow particular components to be designed entirely in code and then used as building blocks in workflow diagrams after they are compiled.

One limitation of certain purely-diagram-based techniques, such as BPMN above, is that 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.. BPMN, while intended to serve as a standard, is deficient in this regard, and so several commercial packages (such as Microsoft Biztalk) address these needs in proprietary ways (specifically, by enhancing the basic set of diagramming icons with additional icons that support the needed functionality.

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
Petri net
A Petri net is one of several mathematical modeling languages for the description of distributed systems. A Petri net is a directed bipartite graph, in which the nodes represent transitions and places...

s.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK