1, what is WFMS
(1) Definition
l Workflow system is a standardized process description as an input software component, which maintains the running status of the process and assigns activities between people and applications.
l Basic concept:
Ø Process definition: a specificized description of a business process or process
Ø Process Instance: A running entity defined by the process
Ø State (state, or waiting state): Represents a dependency of an external participant; this means that the process engine must wait until the external participant notifies the status of the current system to complete
Ø Action: During the process running, the workflow system is a program logic that responds to the specified event run; when the event specified during the process is running, the workflow system starts and implements these actions.
Ø Process Context Variable: Save the context information of each process; usually declare these variables in the process definition, and then instantiate during process instance generation
(2) Target
l Places for Enterprise Application System Integration (EAI): Most enterprise-class IT architecture includes various special applications; these specialized applications provide a set of fixed automation business processes; while the workflow system describes business process as input and The execution of the management process instance is more flexible than special applications; therefore, the workflow system and specialized system are complementary, using the workflow system to manage the global business process, combined with all special applications to build an EAI platform
l Assist in the development of workflow software involving multi-person related tasks
l In other applications: Developing a special application company can embed the workflow engine into their software; here, the workflow engine is just as a software component, mainly for reuse and application software. Sexuality
2, workflow case
The introduction of workflow can benefit from software development levels and business.
(1) Simplified development
l Reduce development risks: business analysts and developers use the same language to talk (such as status and action terminology), which means that developers don't have to convert users to software design.
l Concentrate: Business process changes often, the biggest benefit of using the workflow system is: implementation is no longer a software fragment that is scattered in various systems
l Accelerate application development - Your software no longer has the task that the process ends with participants, the development is faster, the code is easier to maintain
(2) Business Process Management (BPM)
Before you can automate business processes, analyze them and create a standardized description is a hard but there is a good return:
l Improve efficiency: Many business process automation is to remove many unnecessary steps
l Better process control: Through standard working methods and tracking audits, the management of business processes is improved.
l Improve customer service - the consistency of the process, improve the predictability of each level to customer response
l Flexibility: Based on the process-based software control, it can be redesigned to meet the changes in business needs.
l Business process improvement: focusing business processes, resulting in their streamlineability and simplification
l Improved iterative development support: Workflow system makes new business processes easy to deploy, business process software can use iterative way development, so use the workflow system to develop more effective, lower risk (3) Late
l Workflow system is the lack of enterprise application development
l The default way to incorporate business process logic in Enterprise Software is dispersed, which means that business process logic spreads in various systems, such as EJB containers, database triggers, message agents, etc.
l This leads to software difficult to maintain, and the result makes it changing the business process software as the final choice; they often prefer to change the process instead of software
l Suppose we recognize this problem and intend to centralize a process-related code; this can work well for a process, but to implement multiple processes, the code of management status and process variable is copied everywhere
l The third method is to extract the copy code, put it in a centralized library; this is a workflow management system
3, further
(1) WFMS interface
l WFMS is defined as input
l You can view the process as a UML activity diagram, a UML state map or a limited state machine
l Workflow system is responsible for maintaining the execution status and context of these process definitions
l For this reason, there is a need for a change in the state; the state change of the running process can be recorded for monitoring management.
l The following is the interface of WFMS:
Ø Define interface: Allow process developers to deploy process definitions; "process developers" are combined with business analysts and software developers
Ø Perform the interface: User and system can operate the process instance; process instance is execution of the process definition; the process defined by the control stream is described by the state machine; the two main methods of the execution interface are to start a state of the flow instance and notify the workflow system. End
Ø Application interface: Indicates interactions between workflow systems and external systems initiated by the workflow system. When a user or system manages a process instance, an event is generated; the process definition can specify the executable code logic of a response event, and the program code can communicate with other systems outside the organization.
Ø Monitoring interface: Manager obtains statistics of the process running record by monitoring the interface; sometimes, running records can also be used to track audits
(2) Four levels of process definition
The content defined by the process can be divided into four different levels: state, context, program logic, and user interface (UI)
l
Ø All status statements and control flow belong to the state layer of the business process;
Ø The control flow of the standard program language defines the order of the instructions that must be executed, determined by our writing command, if statement, cycle statement, etc., the control flow in the business process is basically the same, but use basic elements instead of instructions; business processes The basic element is a state;
Ø In the process, the state (or waiting state) specifies a dependency of external participants; the state is like "Now the X system or y person must do some things, waiting until the participant notification task has completed the outside trigger";
Ø The state in the process definition also specifies which participator is executed; WFMS builds a list of task using the information representing the name of the participant, which is a general feature of WFMS; for a state of people involved, WFMS must calculate it at runtime. Specific people, such computing makes WFMS must depend on organizational information; Ø Process defined control flow is a state between group and combined status;
Ø The logic between state specifies which execute paths can be implemented concurrently, those are row it; and send the path to model crossings and federation, and the row it performs path to use judgment and incorporated;
Ø UML activity map is often used to model business process;
Ø Although the activity map is an intuitive and universal expression, there is a major problem in the graphical expression, that is, there is no distinction state and action, use activities to model;
Ø The second problem of the UML activity map is introduced in the UML2.0 version, when multiple migration reaches an activity (read-only state), the previous version is specified as a default merge, and specified in version 2.0 as It needs to be synchronized by default;
Ø As long as the two build words are made as follows, the UML activity map can still be used to model the business process status layer:
Ø When using a graphic to express business processes, only the state layer (status and control flow) is molded, and the action is not included. This means that the rectangles in the graph are state instead of activity;
Ø If multiple migration reaches a state, the default is defined as a merge that does not require synchronization;
Ø In the process of execution, WFMS uses token (token) as an indicator of the tracking process; when the token arrives, it is assigned to the WFMS wait for external participants;
Ø External participants can be individuals, organizational, or computer systems, and we define executers or systems for process runs as Participants;
Ø The token is assigned to a participant only when WFMS needs to access organizational structure information.
Ø Workflow system builds a list of tasks by assigning tokens
l upper and lower layers
Ø Process context variable or abbreviated variable is the variable related to the process instance;
Ø Process variable allows process developers to store data in the life cycle of the process instance;
Ø WFMS has a fixed set of data types, or you can define your own data type;
Ø Note that variables can also be saved, for example, can reference records in the database, files on the network;
Ø Another interesting aspect of the process variable is: how WFMS is converted to information;
Ø Workflows are used to achieve tasks and data between various heterogeneous systems inside the organization;
Ø For artificial implementation in business processes, WFMS is responsible for collecting related data from other related systems, such as SAP, database, CRM system, and document management system. Each artificial step in the business process is only collected and calculated from the heterogeneous system;
Ø In this way, data from different systems is converted and presented as information.
l Program logic layer
Ø Action is a program logic that WFMS executes in response to specify events during the process run.
Ø Program logic can be in the form of binary or source code, software pieces written in any language or script
Ø Program logic layer will need to perform all software chip combinations according to the information of the specified event
l user interface layer
Ø Participant fills a state by popping data to process variables
Ø Some WFMS allows specified which data can be filled into the process, and how to store into process variables
Ø Can generate the UI form to collect this information from the user
(3) Executive business processes relative to WFMS
l The current new trend in the current BPM is the centralized specification of the executive business process.
l XLANG, WSFL, and BPML merged to interactive (message exchange) BPEL
l BPEL is defined in a service architecture (SOA) environment, one of the prerequisites is that the service must declare using a WSDL
l BPEL specifies a set of XML syntax that is seen as a programming language, through the integrated control flow defined in WSDL.
l Among the methods used by business processes and status-based WFMs, there are three main differences:
Ø Based on state VS-oriented message: State-based WFMS-based WFMS is center, the workflow engine maintenance status, and calculates the migration from one state to another; on the other hand, the executable flow like BPEL Responding to the definition of the input message, you can view a set of responses and other information as a business process, which explains why BPEL is a stateful WFMS; for example, the BPEL responded to the ONMessage event processor input message, Can be executed when migrating between states
Ø Process example ID VS message relationship: One of the complexities of the executable business process is a message relationship; a part of the process description must indicate how the BPEL engine determines the identity of the process instance from the input message, which must be based on an input message; And the state-based WFMS generates IDs for each created process instance, and the client can use this ID while calling the engine API.
Ø Core Workflow Engine API VS Abstract Service End Point (Endpoint): Status-based WFMS provides a set of core APIs, which means that the client is executed by calling the core API manages all process instances; in executable business processes, each process Expressed as a service, which means that each process definition has a different access point