All enterprise-level system software today has a common goal: to support business processing processes. Some processing processes are fully automated and only dependent on interactions between applications. Most other processing processes depend on people to initialize the processing process and approve the documents used in the process, solve any exceptions. That is to say, we may call this series of discrete steps a well-known workflow and use it to describe the activities of people and software systems involved in the process. Once a workflow is defined, an application can support the business processing process around this definition (workflow.
Creating and executing a workflow in a software system is a unique challenge:
A. Some business processing processes take several hours, days, or even days to complete. For example, how can we maintain the current state of a workflow (maintenance information of an Application) for such a long time?
B. This long-running workflow will also be accessible to other software. How can we make this Asynchronous interaction challenge easier for developers to develop?
C. Some fixed interaction modes in software are usually relatively straightforward (process hard coding-Translator's note), but people need better flexibility-such as freely changing business processing processes. How can a workflow handle these diverse and unpredictable behaviors?
If no basic platform has been established, it is very difficult to meet such requirements. Of course, if a technology is designed to support such a workflow, creating such a useful software system can make it simple.
Miscosoft's windows workflow foudnation (WF) is used to address such requirements. It is. net Framework 3.0 (3.5) is a component provided to developers as part of the Windows development platform. It provides a common basic platform for creating workflow-based applications in windows. Whether these applications interact with the software system, people, or both.
1. What is required by the workflow application system?
To understand what a workflow platform like WF can provide, we will study a variety of Workflow-based application systems. Below are some examples:
A. Any application system that implements a long running processing process is a normal workflow. The process in the system interacts with people. It may take several hours or days for these people to respond. This is the most important instance scenario for such applications. For example, a document approval process built around a workflow will give you some knowledge.
B. an ASP. the. NET application allows users to control how pages are displayed in sequence through workflows. In this way, you can easily change the display stream of pages without changing the web pages (code in the pages. The page control logic is clearly separated from the UI.
C. A composite application in a service-oriented environment can implement core behaviors through workflows. Currently, more and more application systems expose their logic through services, creating business processing processes for these services becomes increasingly simple. A workflow technology like WF provides a basic platform for controlling and integrating the logic of calling these services in complex applications.
D. an application oriented to specific problems, such as a CRM system or a vertical industry system. For example, financial services can all be built on a workflow, this type of application features processing one or more business processes. These application systems that drive the logic of business processes are built on a basic platform for public workflows such as WF, which allows faster construction, easier changes, and simpler customization.
If you want to have a deeper understanding of the needs of the basic workflow platform, it is best to look at an example of a workflow application system with more details. Assume that an independent software developer (isV) wants to develop a workflow-based application system of an insurance company. This shows an automatic insurance policy business process that the application system must support:
The process starts when a submitter sends a request for a new insurance policy. This submitter may be an insurance agent of a call center or a request submitted by a customer over the Internet. No matter if the request is sent to the application system, the application system creates a workflow instance based on the new request information. At the beginning, the workflow compares the policies and rules of the company based on the information provided by the request. If the application fails to meet the company's Insurance Standards, the application will be rejected by the application system. On the contrary, a workflow uses the personal credit service of an external application system to obtain the applicant's credit history. If the applicant's credit score reaches a certain standard, this application will pass immediately! Applicants with high-risk credit information with historical bad debts must be approved by the manager. If the request is approved, the request will be received. Otherwise, the application will be rejected.
This example reveals many requirements of a workflow-based application system, including:
A. ability to make decisions based on business rules: Some of these business rules are simple rules, such as determining whether to "yes" or "no" based on the credit check results ". There are also more complex rules, such as evaluating a large number of potential rule sets for the next initial insurance decision.
B. interaction with external systems or software of a workflow: In this example, an initial request is sent from another system, such as an ASP. NET page. There are other aspects, such as interaction with credit services, through web services or other technologies.
C. interaction with people: in this example, the manager needs to review some application orders, so that the workflow application needs to have an interface to interact with users, or interact with people through other software.
D. the ability to maintain the state throughout the workflow lifecycle, especially those involved in the workflow. For example, in the preceding example, a workflow takes a long time to complete (for example, a manager has been out for one day, or during a two-week vacation), building a scalable system also requires a way to stop the workflow and persistently save its status, in this way, you can reactivate the next action and import its status information.
These are basic requirements for workflows, but most application systems face the challenge without these supporting workflow infrastructure.
The workflow framework not only provides these basic functions, but also provides the following functions:
A. A method similar to the component method. In such a workflow, each step is implemented by a specific software module, this method is very useful for predicting the creation of some pre-defined steps in a particular field, such as insurance applications or system management, and then applying them to many inaccessible workflows.
B. graphical tools used to create and modify workflows: because a workflow consists of a certain number of steps, you can use graphical tools to illustrate these steps and their relationships.
C. Monitor the capabilities of workflows during running and check their running status in real time.
D. A Method to add steps to a workflow instance: A workflow that interacts only within the software often does not require this function, but this elastic function, it is a common requirement in some workflows that interact with people.
Workflow is a unique technology with unique advantages and requirements. It is a common method when it takes a long time to apply in certain fields, an effective basic workflow platform makes it more useful. Workflow has been a mainstream software developer for many years. It is only a secondary role, not a star. Now, it is time to change!