WO2017125015A1 - Method for processing workflow of distributed system and workflow engine system - Google Patents

Method for processing workflow of distributed system and workflow engine system Download PDF

Info

Publication number
WO2017125015A1
WO2017125015A1 PCT/CN2017/071524 CN2017071524W WO2017125015A1 WO 2017125015 A1 WO2017125015 A1 WO 2017125015A1 CN 2017071524 W CN2017071524 W CN 2017071524W WO 2017125015 A1 WO2017125015 A1 WO 2017125015A1
Authority
WO
WIPO (PCT)
Prior art keywords
workflow
execution
node
workflows
nodes
Prior art date
Application number
PCT/CN2017/071524
Other languages
French (fr)
Chinese (zh)
Inventor
姚远
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2017125015A1 publication Critical patent/WO2017125015A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Definitions

  • the present disclosure relates to the field of computer communication technologies, such as a distributed system workflow processing method and a workflow engine system.
  • the management process between nodes in a distributed system can interact with each other through messages, such as a process in which a user applies for a cloud hard disk in a cloud computing project, and the management main process sends a message to create a command to the storage management process, and the storage management process receives and executes the creation. After the execution of the command, the message to the management main process is returned to the management main process, and the management main process receives the response message of the successful execution, and then updates the user resource library, and the process ends.
  • messages such as a process in which a user applies for a cloud hard disk in a cloud computing project
  • the management main process sends a message to create a command to the storage management process, and the storage management process receives and executes the creation.
  • the message to the management main process is returned to the management main process, and the management main process receives the response message of the successful execution, and then updates the user resource library, and the process ends.
  • the application process of the above cloud hard disk can be understood as an administrator (such as a management main process) sending a command to an executor (such as a storage management process), the executor receives and executes the command, and replies a response message to the manager, however
  • an administrator such as a management main process
  • an executor such as a storage management process
  • the executor receives and executes the command, and replies a response message to the manager, however
  • the above-mentioned distributed system with reliable and low message delivery can usually use the AB template to process the work process in the management process.
  • the definition of the AB template can refer to the use of non-reliable message interaction between ABs, and A needs to pay attention to or manage B.
  • the result of the current operation ie: resource management
  • the progress of the operation ie: state management
  • the business process is complex, and is usually composed of multiple workflow nodes. If each workflow node adopts an AB template, the complexity of processing the business process through encoding is improved.
  • the present disclosure provides a distributed system workflow processing method and a workflow engine system, which can simplify the implementation of a complex system for processing complex business processes and reduce duplication of effort in encoding.
  • the embodiment provides a distributed system workflow processing method, which may include: acquiring service information of a distributed system; and setting a plurality of workflows according to the acquired service information, where each workflow includes multiple directed Workflow nodes for acyclic graphs; and periodically monitor the execution status of each workflow node until all workflows are completed.
  • the embodiment provides a distributed system workflow engine system, which may include: a service acquisition module configured to obtain service information of a distributed system; and a workflow setting module configured to set according to the acquired service information.
  • a service acquisition module configured to obtain service information of a distributed system
  • a workflow setting module configured to set according to the acquired service information.
  • Workflows, each workflow includes a plurality of directed acyclic graph workflow nodes; a workflow engine module configured to periodically monitor the execution status of each workflow node until all workflows are completed.
  • the embodiment further provides a non-transitory computer readable storage medium storing computer executable instructions for executing the distributed system workflow processing method.
  • the embodiment further provides a server, the server comprising one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory when processed by one or more When the device is executed, the above distributed system workflow processing method is executed.
  • the embodiment further provides a computer program product, the computer program product comprising a computer program stored on a non-transitory computer readable storage medium, the computer program comprising program instructions, when the program instruction When executed by a computer, the computer is caused to perform the distributed system workflow processing method described above.
  • a distributed system workflow processing method and a workflow engine system provided by the embodiment are configured to decompose a complex business process into a plurality of workflow nodes including a directed acyclic graph, and periodically monitor each The execution status of the workflow nodes until each workflow node completes the corresponding work, then it is determined that all the workflows are completed, thereby simplifying the implementation of the distributed system processing complex business processes and reducing the duplication of work during coding.
  • FIG. 1 is a schematic flowchart diagram of Embodiment 1 of a distributed system workflow processing method according to an embodiment of the present disclosure.
  • FIG. 2 is a schematic diagram of a vertex representation active network of a second embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure.
  • FIG. 3 is a schematic diagram of the workflow engine monitoring in the third embodiment of the distributed system workflow processing method according to the embodiment.
  • FIG. 4 is an application field of a fourth embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure. Schematic diagram of the scene.
  • FIG. 5 is a schematic diagram of an application scenario of a fifth embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic structural diagram of Embodiment 1 of a distributed system workflow engine system according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of a hardware of a server according to an embodiment of the present disclosure.
  • the workflow (Workflow) involved in this embodiment may be an abstraction, generalization, and description of complex business processes and business rules between different operational steps in a distributed system. That is, the workflow can use the computer to automatically deliver documents, information, or tasks according to predetermined rules to achieve business goals.
  • the method in this embodiment can solve the problem that the business process is complicated in a large-scale distributed system.
  • each workflow node adopts an AB template, the technical problem of processing the business process by encoding is complicated.
  • FIG. 1 is a schematic flowchart diagram of Embodiment 1 of a distributed system workflow processing method according to the present disclosure. As shown in FIG. 1, the method includes S110-S130.
  • the distributed system may refer to a set of multiple servers, which can be used for communication and resource sharing, providing high computing performance and availability, thereby satisfying the requirements of the user for processing the service, and the local server obtaining the service information.
  • the service information may include creating a cloud disk copy service, a clone image service, and other services.
  • each workflow includes multiple A workflow node with a directed acyclic graph.
  • each workflow may include a plurality of directed acyclic graph-free workflow nodes.
  • the directed acyclic graph includes vertices and directional paths connecting the vertices.
  • FIG. 2 is a schematic diagram of a vertex representation activity network of a second embodiment of a distributed system workflow processing method.
  • a vertex may be used to represent an activity
  • a directed path may be used to represent a sequence relationship between activities.
  • This directed acyclic graph is an Activity On Vertices (AOV) network.
  • AOV Activity On Vertices
  • vertex i can be called the sender of vertex j, or vertex j is the receiver of vertex i, from which it can be seen that Ci must be active before Cj.
  • a separate workflow engine can be designed, and the workflow engine can be a separate process for monitoring the execution of all workflows.
  • the workflow engine periodically searches for a workflow node with a degree of entry 0 in the workflow, and urges the workflow node with the degree of entry 0 to perform work if it works. After the completion, the workflow node is taken out from the workflow model of the directed acyclic graph, and then the workflow node with the degree of entry 0 is continuously searched, and the workflow node with the degree of entry 0 is urged to perform the work, if the work is performed.
  • FIG. 3 is a schematic diagram of the workflow engine monitoring in the third embodiment of the distributed system workflow processing method according to the embodiment, as shown in FIG.
  • the workflow engine detects the workflow node A and the workflow node G with a degree of entry 0, and urges the workflow node A and the workflow node G to perform corresponding work. After the workflow nodes A and G complete the corresponding work, the workflow nodes A and G are deleted from the workflow model of the directed acyclic graph.
  • the workflow engine detects a workflow node B with an entry degree of 0, urging the workflow node B to perform the corresponding work. After the workflow node B completes the corresponding work, the workflow node B is deleted from the workflow model of the directed acyclic graph.
  • the workflow engine detects workflow nodes C and D with an ingress of 0, urging workflow nodes C and D to perform the corresponding work.
  • the workflow engine detects the workflow nodes E and F with an ingress of 0, urging the workflow nodes E and F to perform the corresponding work.
  • the workflow nodes E and F are deleted from the workflow model of the directed acyclic graph. At this point, the workflow engine can no longer find a workflow node with an entry degree of 0, and the entire workflow is determined to be complete.
  • a distributed system workflow processing method provided by the embodiment provides a plurality of workflows according to the acquired service information by acquiring service information of the distributed system, and each workflow includes multiple directed acyclic graphs.
  • the flow node and periodically monitors the execution status of each workflow node until each workflow node completes the corresponding work, and determines that all workflows are completed.
  • the method is to decompose a complex business process into a workflow of a plurality of directed acyclic graph workflow nodes, and periodically monitor the execution status of each workflow node in the workflow network workflow until each work
  • the flow node completes the corresponding work and determines that all workflows are completed. This simplifies the implementation of complex business processes for distributed systems and reduces duplication of effort in coding.
  • the method may further include: respectively, according to the predetermined process of the acquired service information, numbering the workflow and the workflow node, and setting an execution sequence of the workflow node, and establishing a description A database of workflows and workflow nodes.
  • the workflow and the workflow node are separately numbered according to the predetermined process of the obtained service information, where the predetermined process of the service information may generally refer to a resource that the service needs to acquire and related steps for implementing the effect,
  • the number can be a letter or a number, but each number is not repeated, it is a unique identifier; and the order in which each workflow node performs work is arranged, and the time of execution work and its detailed data can be recorded in the storage system.
  • the workflow engine can monitor each workflow node to perform work in order, so that it can distinguish which process the workflow node is triggered by, and can also determine the execution result of the previous workflow node, and the workflow node. After the execution is successful, the next workflow node is triggered, and thus all the workflows can be completed quickly and orderly.
  • the database may include a workflow table, an execution table, and a sequence table.
  • the workflow table may include the number and execution status of all workflow nodes.
  • the execution table may include the number of the workflow node and the number, execution content, execution status, and execution progress of the associated workflow.
  • the sequence table may include coding and order relationships of workflow nodes that perform work.
  • a plurality of databases may be designed to describe the AOV workflow, including adopting a Workflow table, an Action table, a Sequence table, etc., wherein all Workflow nodes may be saved in the Workflow table.
  • Number and execution status, in the Action table, the number of the workflow node and the number, execution content, execution status, and execution progress of the workflow node may be saved, and the sequence and the order of the workflow node that performs the work may be saved in the Sequence table.
  • Relationship that is, through the description of the above database, defines "What should each workflow node do?", so that the workflow engine can query the database to know the upstream and downstream workflow nodes corresponding to each workflow node, and The request message is sent to the workflow node that needs to perform work until all workflows are monitored, which simplifies the coding process and makes it easier to implement these complex business processes.
  • the method may further include: periodically scanning the workflow table according to a preset time period, and sequentially tracking each workflow node to perform work according to an order relationship between the workflow nodes in the sequence table. The state, and feedback the execution progress of the workflow node, urging the workflow point solution of the unfinished work according to the execution progress of the workflow node until each workflow node completes the corresponding work, and determines to complete all the workflows.
  • a loop timer may be set, the workflow table is periodically scanned, a workflow node that has not been completed is found, and a command message is sent to the workflow node.
  • the workflow node may want to cycle the timer reply.
  • a response message or call the Finish Action function interface to inform the workflow engine that the workflow node has completed execution, the workflow engine will feedback the execution progress of the workflow node to the next workflow node, and the next workflow node will The execution state of the workflow node is saved in the Action table.
  • the workflow engine is Periodic monitoring is performed to prevent loss of messages.
  • the workflow node may first respond to the current execution status, for example, by using the progress percentage, thereby improving the user experience.
  • the Action table may further include: a function name that processes success, failure, and timeout conditions.
  • the command when the workflow node that is the sender sends a command to the workflow node that is the receiver, the command may be executed successfully, or may fail, or may expire after the command is issued, and the response may not be received.
  • the storage resource is insufficient, the application for the cloud disk will fail, or the storage process may exit abnormally.
  • the sender has not received the response message, and the above execution table also includes functions for processing success, failure, and timeout.
  • the name can be used to perform the complex business process flow when the workflow node receives the success, failure, and timeout messages according to the corresponding function name in the execution table.
  • Each of the workflow nodes has an attribute as a sender or a receiver.
  • the distributed system workflow processing method provided in this embodiment can be implemented when corresponding to different application scenarios.
  • FIG. 4 is a schematic diagram of an application scenario of a fourth embodiment of a distributed system workflow processing method according to an embodiment of the present invention.
  • application scenario 1 when an AB template is used, when a workflow node is sent as a When it is the attribute of the receiver, the workflow directly defines the "who commands what to do", that is, the work that each workflow node needs to perform, and the workflow engine sends the request message directly to the responsible work.
  • the workflow node in order to prevent the loss of the message, also periodically tracks the workflow node until the workflow node responsible for performing the work is completed, wherein the workflow engine does not see the execution method of the workflow node.
  • the execution method of the workflow node may be a third-party library function, or a program execution body such as sending a message to another process or a thread, or creating another workflow.
  • the workflow can be ended after the execution of the workflow node responsible for performing the work.
  • FIG. 5 is a schematic diagram of an application scenario of a fifth embodiment of a distributed system workflow processing method according to an embodiment of the present invention.
  • the workflow engine can act as an intermediary between the two workflow nodes.
  • the workflow engine can first find the workflow node that performs the work, instead of sending the monitoring request as the sender node of the sender.
  • the workflow node as the receiver sends the execution progress and the final result to the workflow engine.
  • the workflow node as the receiver answers the final result (success or failure) the workflow engine can forward the result to the sending.
  • the sender's workflow node ends the workflow node to continue operation.
  • the distributed system workflow processing method provided in this embodiment can implement complex service processing better, whether it is applied to the application scenario of the AB template or the complex application scenario 2, so that the message delivery is more reliable.
  • FIG. 6 is a schematic structural diagram of Embodiment 1 of a distributed system workflow engine system according to the embodiment. As shown in FIG. 6, the system may include:
  • the service obtaining module 10 is configured to obtain service information of the distributed system.
  • the workflow setting module 20 is configured to set a plurality of workflows according to the acquired service information, where each workflow includes a plurality of directed acyclic graph workflow nodes;
  • the workflow engine module 30 is arranged to periodically monitor the execution state of each workflow node until all workflows are completed.
  • the distributed system workflow engine system may include: the service acquisition module acquires service information of the distributed system, and the workflow setting module sets multiple workflows according to the acquired service information, and each work
  • the flow includes a plurality of directed acyclic graph workflow nodes, and the workflow engine module periodically monitors the execution status of each workflow node until all workflows are completed.
  • the system is to decompose a complex business process into a plurality of workflow nodes including a directed acyclic graph, and periodically monitor the execution status of each workflow node until each workflow node completes the corresponding Work, determine that all workflows are completed, which simplifies the implementation of complex business processes for distributed systems and reduces duplication of effort in coding.
  • the workflow setting module 20 may be further configured to respectively number the workflow and the workflow node according to a predetermined process of the acquired service information, and set an execution sequence of the workflow node, and establish a description.
  • the system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
  • the database may include a workflow table, an execution table, and a sequence table.
  • the workflow table may include the number and execution status of all workflow nodes.
  • the execution table may include the number of the workflow node and the number, execution content, execution status, and execution progress of the associated workflow.
  • the sequence table may include coding and order relationships of workflow nodes that perform work.
  • the system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
  • the workflow engine module 30 may be further configured to periodically scan the workflow table according to a preset time period, and sequentially track the workflow node performing work according to the order relationship between the workflow nodes in the sequence table. Status, and feedback the execution progress of the workflow node, urging according to the execution progress of the workflow node until all workflows are completed.
  • the system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
  • the execution table may further include: a function name that processes success, failure, and timeout conditions.
  • the system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
  • the embodiment further provides a non-transitory computer readable storage medium storing computer executable instructions for executing any of the above distributed system workflow processing methods.
  • FIG. 7 is a schematic structural diagram of a hardware of a server according to the embodiment.
  • the server includes:
  • a processor 410 and a memory 420 may also include a communications interface 430 and a bus 440.
  • the processor 410, the memory 420, and the communication interface 430 can complete communication with each other through the bus 440.
  • Communication interface 430 can be used for information transmission.
  • the processor 410 can call the logic instructions in the memory 420 to perform the distributed system work processing method of the above embodiment.
  • the logic instructions in the memory 420 described above may be implemented in the form of software functional units and sold or used as separate products, and may be stored in a computer readable storage medium.
  • the technical solution of the embodiment may be embodied in the form of a software product stored in a storage medium, including a plurality of instructions for causing a computer device (which may be a personal computer, a server, or The network device or the like) performs all or part of the steps of the method described in this embodiment.
  • the foregoing storage medium may be a non-transitory storage medium, including: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
  • the program when executed, may include a flow of an embodiment of the method described above, wherein the computer readable storage medium may be a magnetic disk, an optical disk, a read only memory (ROM), or a random access memory. (RAM), etc.
  • the computer readable storage medium may be a magnetic disk, an optical disk, a read only memory (ROM), or a random access memory. (RAM), etc.
  • the present disclosure provides a distributed system workflow processing method and a workflow engine system, which can decompose a complex business process into workflows composed of a plurality of workflow nodes based on directed acyclic graphs, and periodically monitor work.
  • the execution state of the workflow node in the flow network workflow until all the workflows are completed which simplifies the implementation of the complex system processing complex business process and reduces the duplication of work during coding.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Provided are a method for processing a workflow of a distributed system and a workflow engine system. The method comprises: acquiring service information of a distributed system; arranging, according to the acquired service information, multiple workflows, each workflow comprising multiple workflow nodes in a directed acyclic graph; and regularly monitoring an execution state of each workflow node until completion of all workflows.

Description

分布式系统工作流处理方法和工作流引擎系统Distributed system workflow processing method and workflow engine system 技术领域Technical field
本公开涉及计算机通信技术领域,例如一种分布式系统工作流处理方法和工作流引擎系统。The present disclosure relates to the field of computer communication technologies, such as a distributed system workflow processing method and a workflow engine system.
背景技术Background technique
分布式系统中节点之间的管理流程可以通过消息来相互交互,例如云计算项目中用户申请云硬盘的流程,管理主进程向存储管理进程发送创建命令的消息,存储管理进程接收并执行该创建命令的消息,在执行成功后,向管理主进程回复执行成功的应答消息,管理主进程收到该执行成功的应答消息后,更新用户资源库,流程结束。上述这套云硬盘的申请流程可以理解为管理者(如管理主进程)向执行者(如存储管理进程)发送一个命令,执行者接收并执行该命令,并向管理者回复一个应答消息,然而在用编码实现该申请流程时,可能会有多种复杂、不可控的因素使得管理者和执行者之间的消息传递可靠性很低。The management process between nodes in a distributed system can interact with each other through messages, such as a process in which a user applies for a cloud hard disk in a cloud computing project, and the management main process sends a message to create a command to the storage management process, and the storage management process receives and executes the creation. After the execution of the command, the message to the management main process is returned to the management main process, and the management main process receives the response message of the successful execution, and then updates the user resource library, and the process ends. The application process of the above cloud hard disk can be understood as an administrator (such as a management main process) sending a command to an executor (such as a storage management process), the executor receives and executes the command, and replies a response message to the manager, however When implementing the application process with coding, there may be a variety of complex and uncontrollable factors that make the message delivery reliability between the manager and the performer low.
上述消息传递可靠低的分布式系统通常可以采用AB模板来处理管理流程中的工作环节,其中,该AB模板的定义可以是指AB之间采用非可靠消息交互,且A需要关注或管理B的当下操作结果(即:资源管理),或需要关注操作的进度(即:状态管理)。The above-mentioned distributed system with reliable and low message delivery can usually use the AB template to process the work process in the management process. The definition of the AB template can refer to the use of non-reliable message interaction between ABs, and A needs to pay attention to or manage B. The result of the current operation (ie: resource management), or the progress of the operation (ie: state management).
但是,在大型分布式系统中,业务流程较为复杂,通常由多个工作流节点交互组成,如果每个工作流节点都采用AB模板,导致通过编码处理业务流程的过程复杂度提高。However, in a large-scale distributed system, the business process is complex, and is usually composed of multiple workflow nodes. If each workflow node adopts an AB template, the complexity of processing the business process through encoding is improved.
发明内容Summary of the invention
本公开提供了一种分布式系统工作流处理方法和工作流引擎系统,可以简化分布式系统处理复杂业务流程的实现方式,减少编码时的重复劳动。The present disclosure provides a distributed system workflow processing method and a workflow engine system, which can simplify the implementation of a complex system for processing complex business processes and reduce duplication of effort in encoding.
第一方面,本实施例提供一种分布式系统工作流处理方法,可以包括:获取分布式系统的业务信息;根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点;以及定时监控每个工作流节点的执行状态,直至完成所有工作流。 In a first aspect, the embodiment provides a distributed system workflow processing method, which may include: acquiring service information of a distributed system; and setting a plurality of workflows according to the acquired service information, where each workflow includes multiple directed Workflow nodes for acyclic graphs; and periodically monitor the execution status of each workflow node until all workflows are completed.
第二方面,本实施例提供一种分布式系统工作流引擎系统,可以包括:业务获取模块,设置为获取分布式系统的业务信息;工作流设置模块,设置为根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点;工作流引擎模块,设置为定时监控每个工作流节点的执行状态,直至完成所有工作流。In a second aspect, the embodiment provides a distributed system workflow engine system, which may include: a service acquisition module configured to obtain service information of a distributed system; and a workflow setting module configured to set according to the acquired service information. Workflows, each workflow includes a plurality of directed acyclic graph workflow nodes; a workflow engine module configured to periodically monitor the execution status of each workflow node until all workflows are completed.
第三方面,本实施例还提供一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述分布式系统工作流处理方法。In a third aspect, the embodiment further provides a non-transitory computer readable storage medium storing computer executable instructions for executing the distributed system workflow processing method.
第四方面,本实施例还提供一种服务器,该服务器包括一个或多个处理器、存储器以及一个或多个程序,所述一个或多个程序存储在存储器中,当被一个或多个处理器执行时,执行上述分布式系统工作流处理方法。In a fourth aspect, the embodiment further provides a server, the server comprising one or more processors, a memory, and one or more programs, the one or more programs being stored in the memory when processed by one or more When the device is executed, the above distributed system workflow processing method is executed.
第五方面,本实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述分布式系统工作流处理方法。In a fifth aspect, the embodiment further provides a computer program product, the computer program product comprising a computer program stored on a non-transitory computer readable storage medium, the computer program comprising program instructions, when the program instruction When executed by a computer, the computer is caused to perform the distributed system workflow processing method described above.
本实施例提供的一种分布式系统工作流处理方法和工作流引擎系统,通过将复杂的业务流程分解为多个包括有向无环图的工作流节点的工作流,并周期性地监控每个工作流节点的执行状态,直至每个工作流节点完成对应的工作,则确定完成所有的工作流,从而可以简化分布式系统处理复杂业务流程的实现方式,减少编码时的重复劳动。A distributed system workflow processing method and a workflow engine system provided by the embodiment are configured to decompose a complex business process into a plurality of workflow nodes including a directed acyclic graph, and periodically monitor each The execution status of the workflow nodes until each workflow node completes the corresponding work, then it is determined that all the workflows are completed, thereby simplifying the implementation of the distributed system processing complex business processes and reducing the duplication of work during coding.
附图说明DRAWINGS
附图用来提供对本公开技术方案的相关理解,并且构成说明书的一部分,与本实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。The drawings are used to provide a relevant understanding of the technical solutions of the present disclosure, and are used to explain the technical solutions of the present disclosure together with the present embodiments, and do not constitute a limitation of the technical solutions of the present disclosure.
图1为本实施例提供的一种分布式系统工作流处理方法实施例一的流程示意图。FIG. 1 is a schematic flowchart diagram of Embodiment 1 of a distributed system workflow processing method according to an embodiment of the present disclosure.
图2为本实施例提供的一种分布式系统工作流处理方法实施例二的顶点表示活动网络示意图。FIG. 2 is a schematic diagram of a vertex representation active network of a second embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure.
图3为本实施例提供的一种分布式系统工作流处理方法实施例三的工作流引擎监控示意图。FIG. 3 is a schematic diagram of the workflow engine monitoring in the third embodiment of the distributed system workflow processing method according to the embodiment.
图4为本实施例提供的一种分布式系统工作流处理方法实施例四的应用场 景示意图。FIG. 4 is an application field of a fourth embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure. Schematic diagram of the scene.
图5为本实施例提供的一种分布式系统工作流处理方法实施例五的应用场景示意图。FIG. 5 is a schematic diagram of an application scenario of a fifth embodiment of a distributed system workflow processing method according to an embodiment of the present disclosure.
图6为本实施例提供的一种分布式系统工作流引擎系统实施例一的结构示意图。FIG. 6 is a schematic structural diagram of Embodiment 1 of a distributed system workflow engine system according to an embodiment of the present disclosure.
图7为本实施例提供的一种服务器的硬件结构示意图。FIG. 7 is a schematic structural diagram of a hardware of a server according to an embodiment of the present disclosure.
具体实施方式detailed description
为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本实施例进行详细说明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。In order to make the objects, technical solutions and advantages of the present disclosure more apparent, the embodiments will be described in detail below with reference to the accompanying drawings. It should be noted that the embodiments in the present invention and the features in the embodiments may be arbitrarily combined with each other without conflict.
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。The steps illustrated in the flowchart of the figures may be executed in a computer system such as a set of computer executable instructions. Also, although logical sequences are shown in the flowcharts, in some cases the steps shown or described may be performed in a different order than the ones described herein.
本实施例涉及的工作流(Workflow),可以是对分布式系统中复杂的业务流程及不同操作步骤之间业务规则的抽象、概括、描述。即:工作流可以利用计算机,按预定规则自动传递文档、信息或者任务,来实现业务目标。The workflow (Workflow) involved in this embodiment may be an abstraction, generalization, and description of complex business processes and business rules between different operational steps in a distributed system. That is, the workflow can use the computer to automatically deliver documents, information, or tasks according to predetermined rules to achieve business goals.
本实施例涉及的方法,可以解决在大型分布式系统中,业务流程较为复杂,当每个工作流节点都采用AB模板时,导致通过编码处理业务流程的过程复杂的技术问题。The method in this embodiment can solve the problem that the business process is complicated in a large-scale distributed system. When each workflow node adopts an AB template, the technical problem of processing the business process by encoding is complicated.
下面以可选实施例对本公开技术方案进行详细说明。下面多个可选实施例可以相互结合,对于相同或相似的概念或过程可以在不同实施例中相互参考。The technical solution of the present disclosure will be described in detail below with an optional embodiment. The following alternative embodiments may be combined with each other, and the same or similar concepts or processes may be referred to each other in different embodiments.
图1为本提供的一种分布式系统工作流处理方法实施例一的流程示意图。如图1所示,所述方法包括S110-S130。FIG. 1 is a schematic flowchart diagram of Embodiment 1 of a distributed system workflow processing method according to the present disclosure. As shown in FIG. 1, the method includes S110-S130.
在S110中,获取分布式系统的业务信息。In S110, the service information of the distributed system is obtained.
可选地,分布式系统可以是指由多个服务器组成一个集合,该系统可以用于通信和资源共享,提供较高的计算性能和可用性,从而满足用户处理业务的需求,本地服务器获取业务信息,该业务信息可以包括创建云硬盘拷贝业务、克隆镜像业务和其他业务。Optionally, the distributed system may refer to a set of multiple servers, which can be used for communication and resource sharing, providing high computing performance and availability, thereby satisfying the requirements of the user for processing the service, and the local server obtaining the service information. The service information may include creating a cloud disk copy service, a clone image service, and other services.
在S120中,根据所获取的业务信息设置多个工作流,每个工作流包括多个 有向无环图的工作流节点。In S120, multiple workflows are set according to the acquired service information, and each workflow includes multiple A workflow node with a directed acyclic graph.
可选地,根据所获取的业务信息,将复杂的业务流程分解为多个工作流,其中,工作流可以是指业务信息中的工作如何前后组织在一起的逻辑和规则,通过计算机以恰当的模型进行表示并对该逻辑和规则实施计算,在本实施例中,每个工作流可以包括多个有向无环图的工作流节点。其中,有向无环图包括顶点以及连接顶点的有向路径。Optionally, the complex business process is decomposed into multiple workflows according to the acquired business information, where the workflow may refer to logic and rules of how the work in the business information is organized together, and is appropriately The model performs representations and performs calculations on the logic and rules. In this embodiment, each workflow may include a plurality of directed acyclic graph-free workflow nodes. Wherein, the directed acyclic graph includes vertices and directional paths connecting the vertices.
图2为本提供的一种分布式系统工作流处理方法实施例二的顶点表示活动网络示意图,如图2所示,可以用顶点表示活动,用有向路径代表活动间的先后关系,可以称这种有向无环图为顶点表示活动(Activity On Vertices,AOV)网络。示例性地,在AOV网中,若从顶点i到顶点j之间存在一条有向路径,且有向路径从顶点i指向顶点j,则可以称顶点i是顶点j的发送者,或者称顶点j是顶点i的接收者,由此可知,Ci必须先于Cj进行活动。如图2中所示,C3和C4之间存在一条有向路径,且有向路径从顶点C3指向顶点C4,则C3是先于C4活动的,同理,在C8和C9之间也存在一条有向路径,且有向路径从顶点C8指向顶点C9,则C8是先于C9活动的;在C5和C6之间也存在一条有向路径,且有向路径从顶点C5指向顶点C6,则C5是先于C6活动的;在C4和C6之间也存在一条有向路径,且有向路径从顶点C4指向顶点C6,则C4是先于C6活动的,并以此类推。2 is a schematic diagram of a vertex representation activity network of a second embodiment of a distributed system workflow processing method. As shown in FIG. 2, a vertex may be used to represent an activity, and a directed path may be used to represent a sequence relationship between activities. This directed acyclic graph is an Activity On Vertices (AOV) network. Illustratively, in the AOV network, if there is a directed path from vertex i to vertex j, and the directed path points from vertex i to vertex j, then vertex i can be called the sender of vertex j, or vertex j is the receiver of vertex i, from which it can be seen that Ci must be active before Cj. As shown in Figure 2, there is a directed path between C3 and C4, and the directed path points from vertex C3 to vertex C4, then C3 is active before C4. Similarly, there is also a relationship between C8 and C9. A directed path, and the directed path points from vertex C8 to vertex C9, then C8 is active before C9; there is also a directed path between C5 and C6, and the directed path points from vertex C5 to vertex C6, then C5 It is active before C6; there is also a directed path between C4 and C6, and the directed path points from vertex C4 to vertex C6, then C4 is active before C6, and so on.
在S130中,定时监控每个工作流节点的执行状态,直至完成所有工作流。In S130, the execution state of each workflow node is periodically monitored until all workflows are completed.
可选地,在本实施例中,可以设计单独的工作流引擎,该工作流引擎可以是一个独立的进程,用于监控所有的工作流的执行情况。例如,在基于有向无环图的工作流模型中,工作流引擎会周期性地查找工作流中入度为0的工作流节点,催促该入度为0的工作流节点执行工作,如果工作完成了,就将该工作流节点从有向无环图的工作流模型中取出,然后继续查找入度为0的工作流节点,并催促该入度为0的工作流节点执行工作,如果工作完成,将该工作流节点从有向无环图的工作流模型中取出,并以此循环,直到在该工作流模型中再也找不到入度等于0的工作流节点,此时确定整个工作流完成。其中入度可以是指在有向无环图中某顶点作为图中有向路径的终点的次数之和,入度为0可以是指有向无环图中的节点不作为任何有向路径的终点,即该节点所连接的所有有向路径均把这节点作为起点。图3为本实施例提供的一种分布式系统工作流处理方法实施例三的工作流引擎监控示意图,如图3所示,在第一阶段中, 工作流引擎检测到入度为0的工作流节点A和工作流结点G,催促工作流节点A和工作流节点G执行相应工作。工作流节点A和G完成对应的工作后,将工作流节点A和G从有向无环图的工作流模型中删除。在第二阶段中,工作流引擎检测到入度为0的工作流节点B,催促工作流节点B执行相应工作。工作流节点B完成对应的工作后,将工作流节点B从有向无环图的工作流模型中删除。在第三阶段中,工作流引擎检测到入度为0的工作流节点C和D,催促工作流节点C和D执行相应工作。工作流节点C和D完成对应的工作后,将工作流节点C和D从有向无环图的工作流模型中删除。在第四阶段中,工作流引擎检测到入度为0的工作流节点E和F,催促工作流节点E和F执行相应工作。工作流节点E和F完成对应的工作后,将工作流节点E和F从有向无环图的工作流模型中删除。此时工作流引擎再也找不到入度为0的工作流节点,确定整个工作流完成。Optionally, in this embodiment, a separate workflow engine can be designed, and the workflow engine can be a separate process for monitoring the execution of all workflows. For example, in a workflow model based on a directed acyclic graph, the workflow engine periodically searches for a workflow node with a degree of entry 0 in the workflow, and urges the workflow node with the degree of entry 0 to perform work if it works. After the completion, the workflow node is taken out from the workflow model of the directed acyclic graph, and then the workflow node with the degree of entry 0 is continuously searched, and the workflow node with the degree of entry 0 is urged to perform the work, if the work is performed. After completion, the workflow node is taken out from the workflow model of the directed acyclic graph, and is cycled until the workflow node with the degree of entry equal to 0 can no longer be found in the workflow model. The workflow is complete. The degree of entry can refer to the sum of the number of times a certain vertex in the directed acyclic graph is the end point of the directed path in the graph, and the degree of entry 0 can mean that the node in the directed acyclic graph does not act as any directed path. The end point, that is, all directed paths connected to the node, uses this node as a starting point. FIG. 3 is a schematic diagram of the workflow engine monitoring in the third embodiment of the distributed system workflow processing method according to the embodiment, as shown in FIG. 3, in the first phase, The workflow engine detects the workflow node A and the workflow node G with a degree of entry 0, and urges the workflow node A and the workflow node G to perform corresponding work. After the workflow nodes A and G complete the corresponding work, the workflow nodes A and G are deleted from the workflow model of the directed acyclic graph. In the second phase, the workflow engine detects a workflow node B with an entry degree of 0, urging the workflow node B to perform the corresponding work. After the workflow node B completes the corresponding work, the workflow node B is deleted from the workflow model of the directed acyclic graph. In the third phase, the workflow engine detects workflow nodes C and D with an ingress of 0, urging workflow nodes C and D to perform the corresponding work. After the workflow nodes C and D complete the corresponding work, the workflow nodes C and D are deleted from the workflow model of the directed acyclic graph. In the fourth phase, the workflow engine detects the workflow nodes E and F with an ingress of 0, urging the workflow nodes E and F to perform the corresponding work. After the workflow nodes E and F complete the corresponding work, the workflow nodes E and F are deleted from the workflow model of the directed acyclic graph. At this point, the workflow engine can no longer find a workflow node with an entry degree of 0, and the entire workflow is determined to be complete.
本实施例提供的一种分布式系统工作流处理方法,通过获取分布式系统的业务信息,根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点,并通过定时监控每个工作流节点的执行状态,直至每个工作流节点完成对应的工作,确定完成所有工作流。该方法是通过将复杂的业务流程分解为多个有向无环图的工作流节点的工作流,并周期性地监控工作流网络工作流中每个工作流节点的执行状态,直至每个工作流节点完成对应的工作,确定完成所有的工作流。从而可以简化分布式系统处理复杂业务流程的实现方式,减少编码时的重复劳动。A distributed system workflow processing method provided by the embodiment provides a plurality of workflows according to the acquired service information by acquiring service information of the distributed system, and each workflow includes multiple directed acyclic graphs. The flow node, and periodically monitors the execution status of each workflow node until each workflow node completes the corresponding work, and determines that all workflows are completed. The method is to decompose a complex business process into a workflow of a plurality of directed acyclic graph workflow nodes, and periodically monitor the execution status of each workflow node in the workflow network workflow until each work The flow node completes the corresponding work and determines that all workflows are completed. This simplifies the implementation of complex business processes for distributed systems and reduces duplication of effort in coding.
可选地,在S120中,该方法还可以包括:根据所获取的业务信息的预定流程,对工作流和工作流节点分别进行编号,并设置所述工作流节点的执行顺序,建立描述所述工作流及工作流节点的数据库。Optionally, in S120, the method may further include: respectively, according to the predetermined process of the acquired service information, numbering the workflow and the workflow node, and setting an execution sequence of the workflow node, and establishing a description A database of workflows and workflow nodes.
可选地,根据所获取的业务信息的预定流程,对工作流和工作流节点分别进行编号,其中,该业务信息的预定流程通常可以是指这个业务需要获取的资源以及实现效果的相关步骤,而该编号可以用字母或者数字,但每个编号均不重复,是唯一的标识;并编排每个工作流节点执行工作的顺序,可以在存储系统中记录执行工作的时间及其详细的数据,如作为发送者的工作流节点,以及与该发送者对应的作为接收者的工作流节点的地址、参数、执行状态和执行进度等等,建立描述所述工作流及工作流节点的数据库,使得工作流引擎可以监控每个工作流节点按照顺序执行工作的情况,从而可以区分工作流节点是由哪个流程触发的,还可以确定上一个工作流节点的执行结果,以及本工作流节点 执行成功后触发下一个工作流节点的情况等,进而可以快速有序的完成所有的工作流。Optionally, the workflow and the workflow node are separately numbered according to the predetermined process of the obtained service information, where the predetermined process of the service information may generally refer to a resource that the service needs to acquire and related steps for implementing the effect, The number can be a letter or a number, but each number is not repeated, it is a unique identifier; and the order in which each workflow node performs work is arranged, and the time of execution work and its detailed data can be recorded in the storage system. Establishing a database describing the workflow and the workflow node, such as a workflow node as a sender, and an address, a parameter, an execution state, and an execution progress of the workflow node as the recipient corresponding to the sender, and the like The workflow engine can monitor each workflow node to perform work in order, so that it can distinguish which process the workflow node is triggered by, and can also determine the execution result of the previous workflow node, and the workflow node. After the execution is successful, the next workflow node is triggered, and thus all the workflows can be completed quickly and orderly.
可选地,所述数据库可以包括工作流表、执行表和顺序表。Optionally, the database may include a workflow table, an execution table, and a sequence table.
所述工作流表可以包括所有工作流节点的编号和执行状态。The workflow table may include the number and execution status of all workflow nodes.
所述执行表可以包括所述工作流节点的编号以及所属工作流的编号、执行内容、执行状态和执行进度。The execution table may include the number of the workflow node and the number, execution content, execution status, and execution progress of the associated workflow.
所述顺序表可以包括执行工作的工作流节点的编码和顺序关系。The sequence table may include coding and order relationships of workflow nodes that perform work.
可选地,可以设计多种数据库来描述AOV工作流,其中包括采用工作流(Workflow)表,执行(Action)表,顺序(Sequence)表等,所述Workflow表中可以保存所有工作流节点的编号和执行状态,所述Action表中可以保存工作流节点的编号以及所属工作流的编号、执行内容、执行状态和执行进度,所述Sequence表中可以保存执行工作的工作流节点的编码和顺序关系,即通过上述数据库的描述,定义了“各工作流节点应该做什么事情”,这样可以方便工作流引擎去查询这些数据库,从而知道每一个工作流节点对应的上下游工作流节点,并将请求消息发送给需要执行工作的工作流节点直至监控完成所有工作流,进而可以简化编码的过程,更容易实现这些复杂的业务流程。Optionally, a plurality of databases may be designed to describe the AOV workflow, including adopting a Workflow table, an Action table, a Sequence table, etc., wherein all Workflow nodes may be saved in the Workflow table. Number and execution status, in the Action table, the number of the workflow node and the number, execution content, execution status, and execution progress of the workflow node may be saved, and the sequence and the order of the workflow node that performs the work may be saved in the Sequence table. Relationship, that is, through the description of the above database, defines "What should each workflow node do?", so that the workflow engine can query the database to know the upstream and downstream workflow nodes corresponding to each workflow node, and The request message is sent to the workflow node that needs to perform work until all workflows are monitored, which simplifies the coding process and makes it easier to implement these complex business processes.
同时,使用数据库保存Workflow表,Action表和Sequence表,定义了工作流的整个过程,如果遇到有需要重新启动工作流的情况,不论是在发送者、接收者还是工作流引擎,都可以执行重启操作,而不影响工作流的最终执行。At the same time, using the database to save the Workflow table, Action table and Sequence table, defines the entire process of the workflow, if there is a need to restart the workflow, whether it is in the sender, receiver or workflow engine, can be executed Restart the operation without affecting the final execution of the workflow.
可选地,在S130中,该方法还可以包括:按照预设时间段周期性地扫描所述工作流表,根据顺序表中的工作流节点间的顺序关系依次跟踪每个工作流节点执行工作的状态,并反馈所述工作流节点的执行进度,根据工作流节点的执行进度催促未完成工作的工作流点解,直至每个工作流节点均完成对应的工作,确定完成所有的工作流。Optionally, in S130, the method may further include: periodically scanning the workflow table according to a preset time period, and sequentially tracking each workflow node to perform work according to an order relationship between the workflow nodes in the sequence table. The state, and feedback the execution progress of the workflow node, urging the workflow point solution of the unfinished work according to the execution progress of the workflow node until each workflow node completes the corresponding work, and determines to complete all the workflows.
可选地,可以设置循环定时器,周期扫描工作流表,找到尚未完成的工作流节点,向该工作流节点发送命令消息,该工作流节点接收到该命令消息后,可以想循环定时器回复一个应答消息或者调用Finish Action函数接口,告知工作流引擎该工作流节点已经完成了执行,该工作流引擎会反馈该工作流节点的执行进度给下一个工作流节点,由下一个工作流节点将该工作流节点的执行状态保存到Action表中,如果没有收到该工作流节点的应答,则工作流引擎一 直会进行周期性的监控,从而防止消息的丢失。另外,如果该工作流节点执行资源分配等耗时操作时,可以在该工作流节点收到消息时,先应答一下当前的执行情况,例如用进度百分比来表示,从而改善用户体验。Optionally, a loop timer may be set, the workflow table is periodically scanned, a workflow node that has not been completed is found, and a command message is sent to the workflow node. After receiving the command message, the workflow node may want to cycle the timer reply. A response message or call the Finish Action function interface to inform the workflow engine that the workflow node has completed execution, the workflow engine will feedback the execution progress of the workflow node to the next workflow node, and the next workflow node will The execution state of the workflow node is saved in the Action table. If the response of the workflow node is not received, the workflow engine is Periodic monitoring is performed to prevent loss of messages. In addition, if the workflow node performs time-consuming operations such as resource allocation, the workflow node may first respond to the current execution status, for example, by using the progress percentage, thereby improving the user experience.
可选地,所述Action表还可以包括:处理成功、失败和超时情况的函数名称。Optionally, the Action table may further include: a function name that processes success, failure, and timeout conditions.
可选地,当作为发送者的工作流节点向作为接收者的工作流节点发送命令时,该命令有可能执行成功,也有可能会失败,也有可能在命令发出后就一直超时,收不到应答,例如:存储资源不足时,则申请云硬盘会失败,也可能存储进程异常退出了,则发送者一直收不到应答消息,而上述执行表中还包括了处理成功、失败和超时情况的函数名称,可以用于当工作流节点接收到成功、失败和超时的消息时,根据执行表中对应的函数名称进行操作,从而更容易实现复杂的业务处理流程。Optionally, when the workflow node that is the sender sends a command to the workflow node that is the receiver, the command may be executed successfully, or may fail, or may expire after the command is issued, and the response may not be received. For example, if the storage resource is insufficient, the application for the cloud disk will fail, or the storage process may exit abnormally. The sender has not received the response message, and the above execution table also includes functions for processing success, failure, and timeout. The name can be used to perform the complex business process flow when the workflow node receives the success, failure, and timeout messages according to the corresponding function name in the execution table.
每个工作流节点都有作为发送者或者接收者的属性,当对应不同的应用场景,本实施例提供的分布式系统工作流处理方法都可以实现。Each of the workflow nodes has an attribute as a sender or a receiver. The distributed system workflow processing method provided in this embodiment can be implemented when corresponding to different application scenarios.
图4为本实施例提供的一种分布式系统工作流处理方法实施例四的应用场景示意图,如图4所示,在应用场景一中,即为AB模板时,当工作流节点既作为发送者,又作为接收者的属性时,则工作流直接定义了“命令谁做什么事情”,即派发了每个工作流节点需要执行的工作,直接由工作流引擎将请求消息发送给负责执行工作的工作流节点,为了防止消息的丢失,还要周期性地跟踪该工作流节点,直至负责执行工作的工作流节点执行完成,其中,对于该工作流节点的执行方法,工作流引擎是看不到的,其中,该工作流节点的执行方法可以是调用第三方库函数,也可以是发送消息给其他的进程或线程等程序执行体还可以是创建另外一个工作流。直至负责执行工作的工作流节点执行完成之后,该工作流就可以结束了。FIG. 4 is a schematic diagram of an application scenario of a fourth embodiment of a distributed system workflow processing method according to an embodiment of the present invention. As shown in FIG. 4, in application scenario 1, when an AB template is used, when a workflow node is sent as a When it is the attribute of the receiver, the workflow directly defines the "who commands what to do", that is, the work that each workflow node needs to perform, and the workflow engine sends the request message directly to the responsible work. The workflow node, in order to prevent the loss of the message, also periodically tracks the workflow node until the workflow node responsible for performing the work is completed, wherein the workflow engine does not see the execution method of the workflow node. The execution method of the workflow node may be a third-party library function, or a program execution body such as sending a message to another process or a thread, or creating another workflow. The workflow can be ended after the execution of the workflow node responsible for performing the work.
图5为本实施例提供的一种分布式系统工作流处理方法实施例五的应用场景示意图,如图5所示,在应用场景二中,当需要两个工作流节点分别作为发送者和接收者的属性时,此时,工作流引擎可以作为这两个工作流节点的中介,该工作流引擎可以先查找到执行工作的工作流节点,代替作为发送者的工作流节点发送监控请求,当作为接收者的工作流节点会把执行进度和最终结果都发给工作流引擎,当作为接收者的工作流节点应答最终结果(成功或者失败)之后,工作流引擎可以再将结果转发给作为发送者的工作流节点,最终由作为发 送者的工作流节点来结束该工作流节点是否继续操作。FIG. 5 is a schematic diagram of an application scenario of a fifth embodiment of a distributed system workflow processing method according to an embodiment of the present invention. As shown in FIG. 5, in application scenario 2, when two workflow nodes are required as senders and receivers respectively, At the time of this, the workflow engine can act as an intermediary between the two workflow nodes. The workflow engine can first find the workflow node that performs the work, instead of sending the monitoring request as the sender node of the sender. The workflow node as the receiver sends the execution progress and the final result to the workflow engine. After the workflow node as the receiver answers the final result (success or failure), the workflow engine can forward the result to the sending. The workflow node, ultimately as the hair The sender's workflow node ends the workflow node to continue operation.
因此,本实施例提供的分布式系统工作流处理方法不论是应用到AB模板的应用场景一,还是复杂的应用场景二,都可以较好的实现复杂业务的处理,从而使得消息传递更可靠。Therefore, the distributed system workflow processing method provided in this embodiment can implement complex service processing better, whether it is applied to the application scenario of the AB template or the complex application scenario 2, so that the message delivery is more reliable.
可选地,图6为本实施例提供的一种分布式系统工作流引擎系统实施例一的结构示意图,如图6所示,该系统可以包括:Optionally, FIG. 6 is a schematic structural diagram of Embodiment 1 of a distributed system workflow engine system according to the embodiment. As shown in FIG. 6, the system may include:
业务获取模块10,设置为获取分布式系统的业务信息;The service obtaining module 10 is configured to obtain service information of the distributed system.
工作流设置模块20,设置为根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点;The workflow setting module 20 is configured to set a plurality of workflows according to the acquired service information, where each workflow includes a plurality of directed acyclic graph workflow nodes;
工作流引擎模块30,设置为定时监控每个工作流节点的执行状态,直至完成所有工作流。The workflow engine module 30 is arranged to periodically monitor the execution state of each workflow node until all workflows are completed.
本实施例提供的一种分布式系统工作流引擎系统,该系统可以包括:业务获取模块获取分布式系统的业务信息,工作流设置模块根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点,工作流引擎模块定时监控每个工作流节点的执行状态,直至完成所有工作流。该系统是通过将复杂的业务流程分解为多个包括有向无环图的工作流节点的工作流,并周期性地监控每个工作流节点的执行状态,直至每个工作流节点完成对应的工作,确定完成了所有的工作流,从而可以简化分布式系统处理复杂业务流程的实现方式,减少编码时的重复劳动。The distributed system workflow engine system provided by this embodiment may include: the service acquisition module acquires service information of the distributed system, and the workflow setting module sets multiple workflows according to the acquired service information, and each work The flow includes a plurality of directed acyclic graph workflow nodes, and the workflow engine module periodically monitors the execution status of each workflow node until all workflows are completed. The system is to decompose a complex business process into a plurality of workflow nodes including a directed acyclic graph, and periodically monitor the execution status of each workflow node until each workflow node completes the corresponding Work, determine that all workflows are completed, which simplifies the implementation of complex business processes for distributed systems and reduces duplication of effort in coding.
可选地,所述工作流设置模块20还可以设置为根据所获取的业务信息的预定流程对工作流和工作流节点分别进行编号,并设置所述工作流节点的执行顺序,建立描述所述工作流及工作流节点的数据库。Optionally, the workflow setting module 20 may be further configured to respectively number the workflow and the workflow node according to a predetermined process of the acquired service information, and set an execution sequence of the workflow node, and establish a description. A database of workflows and workflow nodes.
本实施例提供的系统,可以执行上述方法实施例,其实现原理和技术效果类似。The system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
可选地,所述数据库可以包括工作流表、执行表和顺序表。Optionally, the database may include a workflow table, an execution table, and a sequence table.
所述工作流表可以包括所有工作流节点的编号和执行状态。The workflow table may include the number and execution status of all workflow nodes.
所述执行表可以包括所述工作流节点的编号以及所属工作流的编号、执行内容、执行状态和执行进度。The execution table may include the number of the workflow node and the number, execution content, execution status, and execution progress of the associated workflow.
所述顺序表可以包括执行工作的工作流节点的编码和顺序关系。 The sequence table may include coding and order relationships of workflow nodes that perform work.
本实施例提供的系统,可以执行上述方法实施例,其实现原理和技术效果类似。The system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
可选地,所述工作流引擎模块30还可以设置为按照预设时间段周期性地扫描所述工作流表,根据顺序表中的工作流节点间的顺序关系依次跟踪工作流节点执行工作的状态,并反馈所述工作流节点的执行进度,根据工作流节点的执行进度催促直至完成所有的工作流。Optionally, the workflow engine module 30 may be further configured to periodically scan the workflow table according to a preset time period, and sequentially track the workflow node performing work according to the order relationship between the workflow nodes in the sequence table. Status, and feedback the execution progress of the workflow node, urging according to the execution progress of the workflow node until all workflows are completed.
本实施例提供的系统,可以执行上述方法实施例,其实现原理和技术效果类似。The system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
可选地,所述执行表还可以包括:处理成功、失败和超时情况的函数名称。Optionally, the execution table may further include: a function name that processes success, failure, and timeout conditions.
本实施例提供的系统,可以执行上述方法实施例,其实现原理和技术效果类似。The system provided in this embodiment can perform the foregoing method embodiments, and the implementation principle and technical effects are similar.
可选地,本实施例还提供一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任意一种分布式系统工作流处理方法。Optionally, the embodiment further provides a non-transitory computer readable storage medium storing computer executable instructions for executing any of the above distributed system workflow processing methods.
可选地,图7为本实施例提供的一种服务器的硬件结构示意图,如图7所示,该服务器包括:Optionally, FIG. 7 is a schematic structural diagram of a hardware of a server according to the embodiment. As shown in FIG. 7, the server includes:
处理器(processor)410和存储器(memory)420;还可以包括通信接口(Communications Interface)430和总线440。A processor 410 and a memory 420; may also include a communications interface 430 and a bus 440.
其中,处理器410、存储器420和通信接口430可以通过总线440完成相互间的通信。通信接口430可以用于信息传输。处理器410可以调用存储器420中的逻辑指令,以执行上述实施例的分布式系统工作处理方法。The processor 410, the memory 420, and the communication interface 430 can complete communication with each other through the bus 440. Communication interface 430 can be used for information transmission. The processor 410 can call the logic instructions in the memory 420 to perform the distributed system work processing method of the above embodiment.
此外,上述的存储器420中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质,也可以是暂态存储介质。 In addition, the logic instructions in the memory 420 described above may be implemented in the form of software functional units and sold or used as separate products, and may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the embodiment may be embodied in the form of a software product stored in a storage medium, including a plurality of instructions for causing a computer device (which may be a personal computer, a server, or The network device or the like) performs all or part of the steps of the method described in this embodiment. The foregoing storage medium may be a non-transitory storage medium, including: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk. A medium that can store program code, or a transitory storage medium.
最后需要说明的是,本领域普通技术人员可理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来执行相关的硬件来完成的,该程序可存储于一个非暂态计算机可读存储介质中,该程序在执行时,可包括如上述方法的实施例的流程,其中,该计算机可读存储介质可以为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。Finally, it should be understood that those skilled in the art can understand that all or part of the process of implementing the above embodiment method can be completed by executing related hardware by a computer program, and the program can be stored in a non-transitory computer. In reading a storage medium, the program, when executed, may include a flow of an embodiment of the method described above, wherein the computer readable storage medium may be a magnetic disk, an optical disk, a read only memory (ROM), or a random access memory. (RAM), etc.
工业实用性Industrial applicability
本公开提供了一种分布式系统工作流处理方法和工作流引擎系统,可以通过将复杂的业务流程分解为多个基于有向无环图的工作流节点组成的工作流,并周期性监控工作流网络工作流中工作流节点的执行状态,直至完成所有的工作流,从而可以简化分布式系统处理复杂业务流程的实现方式,减少编码时的重复劳动。 The present disclosure provides a distributed system workflow processing method and a workflow engine system, which can decompose a complex business process into workflows composed of a plurality of workflow nodes based on directed acyclic graphs, and periodically monitor work. The execution state of the workflow node in the flow network workflow until all the workflows are completed, which simplifies the implementation of the complex system processing complex business process and reduces the duplication of work during coding.

Claims (11)

  1. 一种分布式系统工作流处理方法,应用于服务器中,包括:A distributed system workflow processing method, applied to a server, comprising:
    获取分布式系统的业务信息;Obtaining business information of the distributed system;
    根据所获取的业务信息设置多个工作流,每个工作流包括多个有向无环图的工作流节点;以及Setting a plurality of workflows according to the acquired business information, each workflow comprising a plurality of directed acyclic graph workflow nodes;
    定时监控每个工作流节点的执行状态,直至完成所述多个工作流。The execution status of each workflow node is periodically monitored until the plurality of workflows are completed.
  2. 根据权利要求1所述的方法,在所述根据所获取的业务信息设置多个工作流之后,还包括:The method of claim 1, after the setting a plurality of workflows according to the acquired service information, further comprising:
    根据所获取的业务信息的预定流程,对工作流和工作流节点分别进行编号,并设置所述工作流节点的执行顺序,建立描述所述工作流及工作流节点的数据库。The workflow and the workflow node are respectively numbered according to the predetermined process of the acquired business information, and the execution order of the workflow node is set, and a database describing the workflow and the workflow node is established.
  3. 根据权利要求2所述的方法,其中,所述数据库包括工作流表、执行表和顺序表;The method of claim 2, wherein the database comprises a workflow table, an execution table, and a sequence table;
    所述工作流表包括所有工作流节点的编号和执行状态;The workflow table includes the number and execution status of all workflow nodes;
    所述执行表包括所述工作流节点的编号以及所属工作流的编号、执行内容、执行状态和执行进度;以及The execution table includes a number of the workflow node and a number of the workflow to which it belongs, an execution content, an execution status, and an execution progress;
    所述顺序表包括执行工作的工作流节点的编码和顺序关系。The sequence table includes the encoding and ordering relationships of the workflow nodes that perform the work.
  4. 根据权利要求3所述的方法,其中,所述定时监控每个工作流节点的执行状态,直至完成所有工作流,包括:The method of claim 3 wherein said timing monitors an execution state of each workflow node until all workflows are completed, including:
    按照预设时间段周期性地扫描所述工作流表,根据顺序表中的工作流节点间的顺序关系依次跟踪每个工作流节点执行工作的状态,并反馈每个工作流节点的执行进度,根据工作流节点的执行进度进行跟踪,直至完成所有的工作流。Periodically scanning the workflow table according to a preset time period, sequentially tracking the execution status of each workflow node according to the order relationship between the workflow nodes in the sequence table, and feeding back the execution progress of each workflow node. Tracking based on the progress of the workflow node until all workflows are completed.
  5. 根据权利要求3所述的方法,其中,所述执行表还包括:处理成功、失败和超时情况的函数名称。The method of claim 3 wherein said execution table further comprises: a function name for processing success, failure, and timeout conditions.
  6. 一种分布式系统工作流引擎系统,包括:A distributed system workflow engine system comprising:
    业务获取模块,设置为获取分布式系统的业务信息;a service acquisition module, configured to obtain service information of the distributed system;
    工作流设置模块,设置为根据所获取的业务信息设置多个工作流,所述每个工作流包括多个有向无环图的工作流节点; a workflow setting module, configured to set a plurality of workflows according to the acquired service information, where each workflow includes a plurality of directed acyclic graph workflow nodes;
    工作流引擎模块,设置为定时监控每个工作流节点的执行状态,直至完成所有工作流。The workflow engine module is configured to periodically monitor the execution status of each workflow node until all workflows are completed.
  7. 根据权利要求6所述的系统,其中,所述工作流设置模块还设置为:The system of claim 6 wherein said workflow setting module is further configured to:
    在根据所获取的业务信息设置多个工作流之后,根据所述业务信息的预定流程,对工作流和工作流节点分别进行编号,并设置所述工作流节点的执行顺序,建立描述所述工作流及工作流节点的数据库。After setting a plurality of workflows according to the acquired service information, the workflows and the workflow nodes are respectively numbered according to a predetermined process of the service information, and the execution order of the workflow nodes is set, and the description is performed. A database of streams and workflow nodes.
  8. 根据权利要求7所述的系统,其中,所述数据库包括工作流表、执行表和顺序表;The system of claim 7 wherein said database comprises a workflow table, an execution table, and a sequence table;
    所述工作流表包括所有工作流节点的编号和执行状态;The workflow table includes the number and execution status of all workflow nodes;
    所述执行表包括所述工作流节点的编号以及所属工作流的编号、执行内容、执行状态和执行进度;以及The execution table includes a number of the workflow node and a number of the workflow to which it belongs, an execution content, an execution status, and an execution progress;
    所述顺序表包括执行工作的工作流节点的编码和顺序关系。The sequence table includes the encoding and ordering relationships of the workflow nodes that perform the work.
  9. 根据权利要求8所述的系统,其中,The system of claim 8 wherein
    所述工作流引擎模块还设置为按照预设时间段周期性地扫描所述工作流表,根据顺序表中的工作流节点间的顺序关系依次跟踪每个工作流节点执行工作的状态,并反馈每个工作流节点的执行进度,根据工作流节点的执行进度进行跟踪直至完成所有的工作流。The workflow engine module is further configured to periodically scan the workflow table according to a preset time period, and sequentially track the status of each workflow node performing work according to the order relationship among the workflow nodes in the sequence table, and feed back The execution progress of each workflow node is tracked according to the execution progress of the workflow node until all workflows are completed.
  10. 根据权利要求8所述的系统,其中,所述执行表还包括:处理成功、失败和超时的情况函数名称。The system of claim 8 wherein said execution table further comprises: a case function name for processing success, failure, and timeout.
  11. 一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-5任一项所述的分布式系统工作流处理方法。 A non-transitory computer readable storage medium storing computer executable instructions for performing the distributed system workflow processing method of any of claims 1-5.
PCT/CN2017/071524 2016-01-18 2017-01-18 Method for processing workflow of distributed system and workflow engine system WO2017125015A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610031716.7A CN106980530A (en) 2016-01-18 2016-01-18 A kind of distributed system workflow processing method and workflow engine system
CN201610031716.7 2016-01-18

Publications (1)

Publication Number Publication Date
WO2017125015A1 true WO2017125015A1 (en) 2017-07-27

Family

ID=59340535

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/071524 WO2017125015A1 (en) 2016-01-18 2017-01-18 Method for processing workflow of distributed system and workflow engine system

Country Status (2)

Country Link
CN (1) CN106980530A (en)
WO (1) WO2017125015A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108961033A (en) * 2018-05-17 2018-12-07 平安科技(深圳)有限公司 Multiservice system exchange method and device, storage medium, electric terminal
CN110704095A (en) * 2019-09-03 2020-01-17 深圳壹账通智能科技有限公司 Workflow-based configuration processing method and device, computer equipment and storage medium
CN111178777A (en) * 2019-12-31 2020-05-19 深圳市创梦天地科技有限公司 Method for interaction between workflow and service system
CN111353766A (en) * 2020-03-31 2020-06-30 中国建设银行股份有限公司 Service process processing system and method of distributed service system
CN111382983A (en) * 2018-12-27 2020-07-07 中国电信股份有限公司 Workflow control method, workflow node and system
CN111464390A (en) * 2020-03-31 2020-07-28 中国建设银行股份有限公司 Network application system monitoring and early warning method and system
CN112799797A (en) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 Task management method and device
CN112817744A (en) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 Task processing method and device
CN113467782A (en) * 2021-07-02 2021-10-01 建信金融科技有限责任公司 Method, device and equipment for determining business process
CN114095343A (en) * 2021-11-18 2022-02-25 深圳壹账通智能科技有限公司 Disaster recovery method, device, equipment and storage medium based on double-active system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491777A (en) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 Task executing method, device, equipment and storage medium
CN110245914A (en) * 2019-05-22 2019-09-17 深圳壹账通智能科技有限公司 A kind of cross-system business handling method, apparatus, computer equipment and storage medium
CN111104102A (en) * 2019-11-20 2020-05-05 杭州端点网络科技有限公司 Method for constructing multi-service scene automatic assembly line
CN111324629B (en) * 2020-02-19 2023-08-15 望海康信(北京)科技股份公司 Service data processing method and device, electronic equipment and computer storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452541A (en) * 2008-12-31 2009-06-10 中山大学 Method for optimizing dynamic lattice work stream by employing particle cluster algorithm
EP2107514A1 (en) * 2008-03-31 2009-10-07 British Telecommunications Public Limited Company Process monitoring
CN103226759A (en) * 2013-04-25 2013-07-31 中山大学 Dynamic cloud workflow scheduling method based on genetic algorithm
CN103413205A (en) * 2013-08-26 2013-11-27 国家电网公司 Quick develop and design method and device for SAP workflow
CN105243521A (en) * 2015-11-20 2016-01-13 华润电力投资有限公司河南分公司 Workflow management method and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2107514A1 (en) * 2008-03-31 2009-10-07 British Telecommunications Public Limited Company Process monitoring
CN101452541A (en) * 2008-12-31 2009-06-10 中山大学 Method for optimizing dynamic lattice work stream by employing particle cluster algorithm
CN103226759A (en) * 2013-04-25 2013-07-31 中山大学 Dynamic cloud workflow scheduling method based on genetic algorithm
CN103413205A (en) * 2013-08-26 2013-11-27 国家电网公司 Quick develop and design method and device for SAP workflow
CN105243521A (en) * 2015-11-20 2016-01-13 华润电力投资有限公司河南分公司 Workflow management method and system

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108961033A (en) * 2018-05-17 2018-12-07 平安科技(深圳)有限公司 Multiservice system exchange method and device, storage medium, electric terminal
CN108961033B (en) * 2018-05-17 2023-09-01 平安科技(深圳)有限公司 Multi-service system interaction method and device, storage medium and electronic terminal
CN111382983B (en) * 2018-12-27 2023-07-28 中国电信股份有限公司 Workflow control method, workflow node and system
CN111382983A (en) * 2018-12-27 2020-07-07 中国电信股份有限公司 Workflow control method, workflow node and system
CN110704095A (en) * 2019-09-03 2020-01-17 深圳壹账通智能科技有限公司 Workflow-based configuration processing method and device, computer equipment and storage medium
CN112799797B (en) * 2019-11-14 2024-04-16 北京沃东天骏信息技术有限公司 Task management method and device
CN112799797A (en) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 Task management method and device
CN111178777A (en) * 2019-12-31 2020-05-19 深圳市创梦天地科技有限公司 Method for interaction between workflow and service system
CN111178777B (en) * 2019-12-31 2024-01-30 深圳市创梦天地科技有限公司 Method for interaction between workflow and business system
CN111353766A (en) * 2020-03-31 2020-06-30 中国建设银行股份有限公司 Service process processing system and method of distributed service system
CN111464390A (en) * 2020-03-31 2020-07-28 中国建设银行股份有限公司 Network application system monitoring and early warning method and system
CN112817744A (en) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 Task processing method and device
CN113467782B (en) * 2021-07-02 2022-12-09 中国建设银行股份有限公司 Method, device and equipment for determining business process
CN113467782A (en) * 2021-07-02 2021-10-01 建信金融科技有限责任公司 Method, device and equipment for determining business process
CN114095343A (en) * 2021-11-18 2022-02-25 深圳壹账通智能科技有限公司 Disaster recovery method, device, equipment and storage medium based on double-active system

Also Published As

Publication number Publication date
CN106980530A (en) 2017-07-25

Similar Documents

Publication Publication Date Title
WO2017125015A1 (en) Method for processing workflow of distributed system and workflow engine system
WO2019104713A1 (en) Machine learning method, master node, work node, and system
CN107423942B (en) Service transfer method and device
CN107688489B (en) Method and system for scheduling tasks
CN107623731B (en) Task scheduling method, client, service cluster and system
CN113672352B (en) Method and device for deploying federal learning task based on container
CN110880100A (en) Business approval processing method, device and system
CN106060189B (en) A kind of distribution domain name registration system
CN111240812A (en) Task execution method and device
CN110611707A (en) Task scheduling method and device
CN110557416B (en) Multi-node collaborative blocking method and system
CN114328432A (en) Big data federal learning processing method and system
CN115022264A (en) Message pushing method and device, electronic equipment and computer readable storage medium
CN111460038A (en) Quasi-real-time data synchronization method and device
CN113590433B (en) Data management method, data management system, and computer-readable storage medium
CN107465725B (en) Heterogeneous long transaction processing system and method based on client information control system
CN115145702A (en) Information processing method and device based on secure multi-party computing
CN110839061B (en) Data distribution method, device and storage medium
CN111835809A (en) Work order message distribution method, work order message distribution device, server and storage medium
US20180082262A1 (en) Optimize meeting based on organizer rating
CN113220480B (en) Distributed data task cross-cloud scheduling system and method
WO2016197858A1 (en) Method and device for message notification
CN114780217B (en) Task scheduling method, device, computer equipment and medium
CN112825525A (en) Method and apparatus for processing transactions
CN111625323A (en) Distributed task processing method, device, equipment and computer readable storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17741046

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17741046

Country of ref document: EP

Kind code of ref document: A1