This article needs additional citations for verification .(January 2021) |
A workflow application is a software application which automates, to at least some degree, a process or processes. The processes are usually business-related but can be any process that requires a series of steps to 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. [1]
For example, consider a purchase order 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 frequent maintenance. For example, the normal approver of purchase orders may be on vacation, in which case, the application will request approval from alternate approvers.
Workflow applications can be developed using a graphical designer, a programming language, or a combination of the two.
Some software products provide a means to create workflow applications with a diagram-based graphical designer alone. These types of systems rely on the ability to capture all of the information relevant to the workflow process through a specialized interface aimed at non-programmers, and then compile that information into a functional workflow application. Sometimes, however, the need for utilizing a programming language arises when more complex rules need to be integrated into the workflow, such as calculations for validating data in input forms.
For code-based workflow design, workflow applications can be developed with any general-purpose programming language, but specialized workflow languages also exist. These usually come with an associated graphical notation (such as BPMN), [2] but some are textual or XML-based. Specialized languages that can be used for workflow definition in this way include:
The above languages are based on XML syntax and while suitable for manipulation by software, they may be difficult for non-technical people to work with. Therefore, their use is generally augmented by graphical notations enabling the creation of flowchart-like diagrams that are easier for people to develop and interpret: creating 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:
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). WF workflows, for example, can be created using Microsoft Visual Studio diagrammatically (their XML equivalent is XAML), 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 a formal notation such as Petri nets.
Camunda Platform is a free and open workflow and decision automation platform. Camunda Platform ships with tools for creating workflow and decision models, operating deployed models in production, and allowing users to execute workflow tasks assigned to them. It is developed in Java and released as source-available software; the Desktop Modeler is licensed under the MIT License, other components under proprietary licenses.
The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL, is an OASIS standard executable language for specifying actions within business processes with web services. Processes in BPEL export and import information by using web service interfaces exclusively.
A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure Programing language.
In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.
Extensible Application Markup Language is a declarative XML-based language developed by Microsoft for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
Business process modeling (BPM) in business process management and systems engineering is the activity of representing processes of an enterprise, so that the current business processes may be analyzed, improved, and automated. BPM is typically performed by business analysts, who provide expertise in the modeling discipline; by subject matter experts, who have specialized knowledge of the processes being modeled; or more commonly by a team comprising both. Alternatively, the process model can be derived directly from events' logs using process mining tools.
A UML tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language (UML), which is the industry standard general-purpose modeling language for software engineering.
Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes in a business process model.
A swimlane is used in process flow diagrams, or flowcharts, that visually distinguishes job sharing and responsibilities for sub-processes of a business process. Swimlanes may be arranged either horizontally or vertically.
The XML Process Definition Language (XPDL) is a format standardized by the Workflow Management Coalition (WfMC) to interchange business process definitions between different workflow products, i.e. between different modeling tools and management suites. XPDL defines an XML schema for specifying the declarative part of workflow / business process.
The Business Process Definition Metamodel (BPDM) is a standard definition of concepts used to express business process models, adopted by the OMG. Metamodels define concepts, relationships, and semantics for exchange of user models between different modeling tools. The exchange format is defined by XSD and XMI, a specification for transformation of OMG metamodels to XML. Pursuant to the OMG's policies, the metamodel is the result of an open process involving submissions by member organizations, following a Request for Proposal (RFP) issued in 2003. BPDM was adopted in initial form in July 2007, and finalized in July 2008.
Workflow Management Coalition (WfMC) was a consortium formed to define standards for the interoperability of workflow management systems. The coalition was disbanded in 2019 and no longer exists.
jBPM is an open-source workflow engine written in Java that can execute business processes described in BPMN 2.0. jBPM is a toolkit for building business applications to help automate business processes and decisions. It's sponsored by Red Hat, part of the JBoss community and closely related to the Drools and OptaPlanner projects in the KIE group. It is released under the ASL by the JBoss company.
The RISE Editor is a free information modeling tool for information system development based on model driven development. Functionality includes automatic interface composition, database generation and updates, data insertion, programming interface publishing and web service generation. The modeling takes place in Entity Relationship Diagrams (ERD). The layout for these diagrams can be changed to Relational Database or Unified Modeling Language (UML), the functionality stays the same though.
In systems engineering, software engineering, and computer science, a function model or functional model is a structured representation of the functions within the modeled system or subject area.
Bizagi is a privately owned software company established in 1989 with headquarters in the US, and offices in UK, Spain, Germany & Latin America. Its name is a portmanteau of "business" and "agility".
IBM Blueworks Live is a business process modeller, belonging under the set of IBM SmartCloud applications. The application is designed to help organizations discover and document their business processes, business decisions and policies in a collaborative manner. It is designed to be simple and intuitive to use, while still having the capabilities to implement more complex models. Blueworks Live adheres to the BPMN 2.0 standard developed and maintained by BPMN.org.
Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.
WorkflowGen is a web-based low-code business application creation solution developed by Advantys. As a workflow software and business process management (BPM) solution, WorkflowGen enables organizations to automate human and system-based processes via a visual interface in a low programming environment.
Microsoft Power Platform is a line of business intelligence, app development, and app connectivity software applications. Microsoft developed the Power Fx low-code programming language for expressing logic across the Power Platform. It also provides integrations with GitHub and Teams.