The development of workflow technology has made some achievements after years of efforts. But in the actual application, the application of enterprises is still less, the scope of application is narrow, the effect is not ideal.
Process design is a higher challenge to designers, in reality, the process managed by the computer needs flexible definition, convenient path modification, easy to use, but these several goals are contradictory. What’s more, it’s difficult to analyze a process in the real world, let alone design and implement it.
The primary difficulty of process design is actually the primary difficulty of software: real-world complexity. Any description of reality (graphics or words) is not perfect, “not recognizing the true face of lushan” is the common problem facing design. Designers have to realize that all the process model is simplified to reality, computer according to certain information, only the reality of the process there are a lot of uncertainty, although computer experts confidently tell managers it is management problem, vowed to can use a computer system to “improve” the management of the enterprise, But they don’t seem to realize that business management has been developing for hundreds of years, and computers are not a hundred years old.
People often complain that the process design of computer systems is too rigid. Because many times standard processes are constructed before applications and enforced by some centralized authority, this rigidity is inevitable. At the same time, the lack of freedom for participants makes the workflow management system seem unfriendly. As a result, they are often ignored or bypassed, or even eventually abandoned. Another difficulty is that not only are there many names for process processing, such as dynamic models, workflows, and so on, but there are also many different definitions of processes. Faced with these difficulties, designers undoubtedly need great courage to carry out process design.
1 overview of workflow design
Workflow is defined by the Workflow Management Alliance as “a business process that can be fully or partially automated, transmitted and executed between different actors according to a series of process rules, documents, information or tasks”.
(1) Workflow
Simply put, workflow is the abstraction and generalization of the process from start to finish of concrete work in reality. This process involves many factors: task order, route rules, time constraints, and so on.
(2) Process definition
A process definition is a formal representation of a business process that defines the activities and information involved in running the process. This information includes the start and finish conditions of the process, the activities that make up the process and the rules for navigating between the activities, the tasks that users need to complete, the applications that may be invoked, the reference relationships between workflows, and the definition of workflow data. This process of definition may be done by designers with pen and paper, but more and more designers are using process definition tools to do this.
(3) Process instance
Often referred to as a work, it is a running instance of a process definition. For example, a customer order process, a customer complaint process accepted by the customer service center.
(4) Workflow management system
Similar to database management system, it is a software system. This program stores the definition of the process and triggers changes in the process state according to the process definition used to drive the process. The basis for this push is often referred to as a workflow engine.
(5) Process definition tool
It is also a set of software system, the relationship between the software and workflow management system is the same as the relationship between database design tools and database management system. It may be stand-alone software or part of a workflow management system. As mentioned earlier, designers often use process definition tools to do process definition work. It provides common workflow elements to improve designer productivity.
(6) Participants
Answer the “who” question in the business process. It can be specific people or roles (multiple people within an enterprise that have a particular role in common), it can be automated systems, or even other systems.
(7) Activities
An activity is an element in a process definition, and an activity may change what the process processes data, the state of the process, and possibly push the process into other activities. An activity can be done by a person or it can be an automated process by the system, typically sending a message to a participant specified in the process definition when an activity exceeds a time limit that the activity can tolerate.
(8) Activity owner
One of the participants, who has the authority to decide whether the activity ends or not, and when he does, moves the activity to another activity, either the next or the previous one.
(9) Job owners
A work owner is an actor who has overall control over the execution of a process instance.
(10) Work items
Represents the work to be performed by the participants of the activity in the process instance.
To analyze the process flow in the real world, you must first describe the flow of the target system, which can also be called modeling. A process is a complex transaction and must be described in many ways, including: “who”, the participants of the process; “What”, what work participants do; The “when”, the time limit for completion of the work, and the data flow of the work and the control flow for completion of the work need to be stated.
It is considered that the natural language to describe such a complex transaction is easy to cause ambiguity, so people in natural language defines some formal languages to select a subset of this subset can truly describe the process, and can get rid of the natural language of the complex and changeable, actually want to humans and machines in understanding the bridge on the processing flow, Like other computer languages and later unified Modeling languages, these formal languages are also called “workflow definition languages”. Similarly, in order to describe the actual processing flow, people also thought of the graphical approach. Finite-state automata are a good tool for analyzing and changing states. This approach requires a complete list of all states in the process and their combinations. As the process becomes large, the state graph corresponding to the automata expands too much. Because Petri net has strict mathematical basis and graphical normative semantics, it has been recognized in describing discrete event dynamic system and has strong model analysis ability. It has been widely used in workflow description and analysis. Although some people think that graphics are not the best way to represent workflow, most designers prefer to use graphics because of its intuitiveness.
Petri net is a mathematical representation of discrete parallel system. Petri nets were invented by Carl A. Petri in the 1960s to describe asynchronous, concurrent computer system models. Petri net not only has strict mathematical expression, but also has intuitive graphical expression, rich system description means and system behavior analysis technology, but also provides a solid conceptual basis for computer science.
Workflow management system
According to Workflow Management Coalition (WFMC) definition, Workflow Management system is a “Workflow definition, Management and execution system through software execution driven by Workflow formal representation”. Its main goal is to manage the sequence of each activity in the business process and the call of the corresponding human resources or information resources related to the activity, and realize the automation of the business process.
Just like relational databases, specialized workflow management systems have emerged. These systems have been specially designed to solve common problems encountered by designers in process design from different perspectives: node definition, path selection, data flow, etc.
Unfortunately, unlike relational databases, which are based on relational algebra and support standard SQL, these workflow management systems are based on different mathematical models and provide completely different interfaces. Therefore, these workflow management systems have their own characteristics, but their application is limited due to the lack of universality and mutual cooperation of other systems.
WFMC provides a reference model containing six basic modules, which are considered to be the most basic components of a workflow management system. The reference model also includes the interface standards between these modules.
(1) Process definition tool
This part of the software provides a graphical or other interface to the designer. The designer abstracts the actual workflow, converts the workflow definition submitted by the designer into a formal language description, and provides the basis for the workflow execution service to process the workflow instance.
(2) Workflow execution service
This service is the core of the workflow management system. It uses one or more data flow engines to interpret process definitions, activate valid process instances, and drive process instances to run in different activities. Interact with customer applications, other workflow service executors, and other applications to create, execute, and manage process instances. At the same time, this part of the software maintains an activity list for each user, telling the user the current task must be handled. If necessary, the user can be alerted to the arrival of a task via E-mail or even a short message.
(3) Other workflow execution services
Large enterprise workflow applications often include multiple workflow management systems. This requires effective interaction between these workflow management systems to avoid the phenomenon of information isolation.
(4) Client applications
This is the interface for the end user to use this part of the software to perform the necessary processing on the data of the workflow and, if the user is the owner of the current activity, to change the activity of the process instance through the client application to push the process instance to another activity.
(5) The called application
This is usually the handler of the data carried in the workflow, and the handler of electronic documents is used a lot. They are invoked by the workflow execution service during the execution of the process instance to present the pending data to the end user. Information about these applications, including name, invocation, parameters, and so on, should be defined in the process definition.
(6) Management and monitoring tools
As the database management system more or less provides some ways to tell the administrator the current state of the database, the workflow management system should also provide the state of the process instance query, suspend, restore, destroy and other operations, while providing system parameters, system running statistics and other data.
Flow design is the most difficult part of system design, and its complexity comes directly from the complexity of the real world. And until now, the design of the process is still a work in progress.