[go: up one dir, main page]

CN102254233A - Flow driving method and flow driving device - Google Patents

Flow driving method and flow driving device Download PDF

Info

Publication number
CN102254233A
CN102254233A CN2010101800468A CN201010180046A CN102254233A CN 102254233 A CN102254233 A CN 102254233A CN 2010101800468 A CN2010101800468 A CN 2010101800468A CN 201010180046 A CN201010180046 A CN 201010180046A CN 102254233 A CN102254233 A CN 102254233A
Authority
CN
China
Prior art keywords
execution
business logic
flow
execution object
called
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN2010101800468A
Other languages
Chinese (zh)
Other versions
CN102254233B (en
Inventor
陈乜云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kingdee Tianyanyun Computing Co ltd
Original Assignee
Shenzhen Kingdee Middleware Co ltd
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 Shenzhen Kingdee Middleware Co ltd filed Critical Shenzhen Kingdee Middleware Co ltd
Priority to CN201010180046.8A priority Critical patent/CN102254233B/en
Publication of CN102254233A publication Critical patent/CN102254233A/en
Application granted granted Critical
Publication of CN102254233B publication Critical patent/CN102254233B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The invention discloses a flow driving method and a flow driving device and belongs to the field of computers. The method comprises the following steps of: determining a flow element of a flow to be driven and a flow behavior which corresponds to the flow element; mapping the flow element into a corresponding executable object, and assembling the flow behavior of the flow element into the corresponding executable object; and during external call of the executable object, starting an execution process of the executable object. The invention has the advantages that: by mapping the flow element into the corresponding executable object, starting the execution process of the executable object during the external call of the executable object, and summarizing the behavior characteristics of various kinds of flow languages by the executable object, the flow is driven, flow languages such as blocky flow language and graphic flow language can be supported, the expansibility of the flow driving is improved, and the portability of the flow driving can be improved due to no binding with any specific data storage layer technology and an inversion of control (IOC) container.

Description

流程驱动方法及装置Process driving method and device

技术领域 technical field

本发明涉及计算机领域,特别涉及一种流程驱动方法及装置。The invention relates to the field of computers, in particular to a process driving method and device.

背景技术 Background technique

随着计算机技术的日益发展,流程语言的种类也越来越多。尽管流程语言的语法与格式各不相同,但要解决的问题却是大体相同的,流转行为是一致的。设计一个适应各种流程语言的通用驱动系统,有利于提高BPM(Business ProcessManagement,业务流程管理系统)引擎的开发效率;可以使得BPM产品线具有高度的扩展性;也可以满足在一个系统中同时支持多种流程语言的特殊需求。With the development of computer technology, there are more and more types of process languages. Although the syntax and format of the process language are different, the problems to be solved are generally the same, and the flow behavior is consistent. Designing a general-purpose drive system that adapts to various process languages is conducive to improving the development efficiency of the BPM (Business Process Management, business process management system) engine; it can make the BPM product line highly scalable; Special requirements for multiple process languages.

现有技术一提供的驱动系统,首先提出了PVM(Process Virtual Machine,流程虚拟机)这个概念,并利用该PVM成功驱动了BPEL(Business ProcessExecution Language,业务流程执行语言)和JPDL(Java business processmanagement Process Definition Language,业务流程管理过程定义语言)。现有技术二则开发了Windows Workflow Foundation(工作流框架)系统,虽然没有取名“PVM”,但是该系统的设计目标和PVM是一致的,该系统可驱动各种与BPEL语言类似的流程语言。The driving system provided by prior art 1 first proposed the concept of PVM (Process Virtual Machine, process virtual machine), and successfully drove BPEL (Business Process Execution Language, business process execution language) and JPDL (Java business processmanagement Process) using this PVM. Definition Language, business process management process definition language). The second prior art has developed the Windows Workflow Foundation (workflow framework) system. Although it is not named "PVM", the design goal of this system is consistent with PVM. This system can drive various process languages similar to BPEL language .

在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:In the process of realizing the present invention, the inventor finds that the prior art has at least the following disadvantages:

现有技术一提供的PVM在运行时严重依赖开放源代码的对象关系映射框架(Hibernate),该PVM还具有IOC(Inversion of Control,控制反转)容器等组件,这些组件本质上与PVM无关,反而导致该产品无法与其他产品集成,导致移植性差;现有技术二对于图状流程语言,如BPMN(Business ProcessModeling Notation,业务流程建模标注)等则较难胜任,尤其对于有自由跳转、取回、加签等需求的业务流程;另外,由于严重依赖于.Net Framework,导致扩展性也较差。The PVM provided by prior art 1 relies heavily on the object-relational mapping framework (Hibernate) of open source code at runtime, and this PVM also has components such as IOC (Inversion of Control, inversion of control) containers, and these components have nothing to do with PVM in essence, On the contrary, this product cannot be integrated with other products, resulting in poor portability; the second prior art is difficult for graphical process languages, such as BPMN (Business Process Modeling Notation, business process modeling annotation), especially for free jump, Retrieval, signing and other required business processes; in addition, due to the heavy dependence on .Net Framework, the scalability is also poor.

发明内容 Contents of the invention

为了提高流程驱动的扩展性及可移植性,进而提高流程驱动的实用性能,本发明实施例提供了一种流程驱动方法及装置。所述技术方案如下:In order to improve the expansibility and portability of the process-driven, and further improve the practical performance of the process-driven, the embodiments of the present invention provide a process-driven method and device. Described technical scheme is as follows:

一方面,提供了一种流程驱动方法,所述方法包括:In one aspect, a process-driven method is provided, the method comprising:

确定待驱动流程的流程元素,及所述流程元素对应的流程行为;Determine the process elements of the process to be driven, and the process behavior corresponding to the process elements;

将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;Mapping the process element into a corresponding execution object, and assembling the process behavior of the process element into the corresponding execution object;

在外部调用所述执行对象时启动所述执行对象的执行过程。The execution process of the execution object is started when the execution object is called externally.

另一方面,提供了一种流程驱动装置,所述装置包括:In another aspect, a process driving device is provided, the device comprising:

确定模块,用于确定待驱动流程的流程元素,及所述流程元素对应的流程行为;A determining module, configured to determine the process elements of the process to be driven, and the process behavior corresponding to the process elements;

映射模块,用于将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;A mapping module, configured to map the process element to a corresponding execution object, and assemble the process behavior of the process element into the corresponding execution object;

驱动模块,用于在外部调用所述执行对象时启动所述执行对象的执行过程。The driving module is used to start the execution process of the execution object when the execution object is called externally.

本发明实施例提供的技术方案的有益效果是:The beneficial effects of the technical solution provided by the embodiments of the present invention are:

通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器进行绑定,因此,具有很高的可移植性。By mapping the process elements to the corresponding execution objects, and starting the execution process of the execution objects when the execution objects are called externally, that is, using the execution objects to summarize the behavior characteristics of various process languages, and realizing the driving of the process, it can not only support blocks Graphical process language can also support graph-like process language well, thereby improving the scalability of process-driven; in addition, because the technical solution provided by the embodiment of the present invention is not bound to any specific data storage layer technology and IOC container , therefore, has high portability.

附图说明 Description of drawings

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings that need to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present invention. For those skilled in the art, other drawings can also be obtained based on these drawings without creative effort.

图1是本发明实施例一提供的流程驱动方法流程图;FIG. 1 is a flowchart of a process-driven method provided by Embodiment 1 of the present invention;

图2是本发明实施例二提供的BPMN2.0与流程驱动装置的关系示意图;Fig. 2 is a schematic diagram of the relationship between BPMN2.0 and the process driving device provided by the second embodiment of the present invention;

图3是本发明实施例二提供的流程驱动方法流程图;Fig. 3 is a flow chart of the process driving method provided by Embodiment 2 of the present invention;

图4是本发明实施例二提供的BPMN2.0的流程元素示意图;FIG. 4 is a schematic diagram of flow elements of BPMN2.0 provided by Embodiment 2 of the present invention;

图5是本发明实施例二提供的BPMN2.0的流程元素的流程行为示意图;5 is a schematic diagram of the process behavior of the process elements of BPMN2.0 provided by Embodiment 2 of the present invention;

图6是本发明实施例二提供的各种执行对象示意图;Fig. 6 is a schematic diagram of various execution objects provided by Embodiment 2 of the present invention;

图7是本发明实施例二提供的各种执行对象之间的关系示意图;FIG. 7 is a schematic diagram of the relationship between various execution objects provided by Embodiment 2 of the present invention;

图8是本发明实施例二提供的执行对象结构示意图;FIG. 8 is a schematic diagram of the execution object structure provided by Embodiment 2 of the present invention;

图9是本发明实施例三提供的流程驱动装置结构示意图;Fig. 9 is a schematic structural diagram of a process driving device provided by Embodiment 3 of the present invention;

图10是本发明实施例三提供的驱动模块结构示意图;Fig. 10 is a schematic structural diagram of a driving module provided by Embodiment 3 of the present invention;

图11是本发明实施例三提供的执行单元结构示意图。FIG. 11 is a schematic structural diagram of an execution unit provided by Embodiment 3 of the present invention.

具体实施方式 Detailed ways

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。In order to make the object, technical solution and advantages of the present invention clearer, the implementation manner of the present invention will be further described in detail below in conjunction with the accompanying drawings.

实施例一Embodiment one

参见图1,本实施例提供了一种流程驱动方法,该方法流程具体如下:Referring to FIG. 1, this embodiment provides a process-driven method, and the process of the method is as follows:

101:确定待驱动流程的流程元素,及该流程元素对应的流程行为;101: Determine the process element of the process to be driven, and the process behavior corresponding to the process element;

102:将该流程元素映射到对应的执行对象中,并将该流程元素的流程行为装配到对应的执行对象中;102: Map the process element to the corresponding execution object, and assemble the process behavior of the process element into the corresponding execution object;

103:在外部调用该执行对象时启动该执行对象的执行过程。103: Start the execution process of the execution object when the execution object is called externally.

本实施例提供的方法,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。The method provided in this embodiment maps the process elements to the corresponding execution objects, and starts the execution process of the execution objects when the execution objects are called externally, that is, summarizes the behavioral characteristics of various process languages with the execution objects, and realizes the process The driver can not only support the block process language, but also support the graph-like process language, thereby improving the scalability of the process drive; in addition, because the technical solution provided by the embodiment of the present invention is not related to any specific data storage layer Technology and IOC container binding, therefore, has high portability.

实施例二Embodiment two

本实施例提供了一种流程驱动方法,该方法通过将流程元素映射到对应的执行对象中,以执行对象概括各种流程语言的行为特征,实现对流程的驱动。为了便于说明,本实施例以BPMN2.0流程语言为例进行说明,图2为该BPMN2.0流程引擎与流程驱动装置之间的关系示意图。参见图3,本实施例提供的方法流程具体如下:This embodiment provides a method for driving a process. The method maps process elements to corresponding execution objects, and uses the execution objects to summarize the behavioral characteristics of various process languages, so as to drive the process. For ease of description, this embodiment takes the BPMN2.0 process language as an example for illustration, and FIG. 2 is a schematic diagram of the relationship between the BPMN2.0 process engine and the process driving device. Referring to Figure 3, the method flow provided by this embodiment is specifically as follows:

301:确定待驱动流程的流程元素,及该流程元素对应的流程行为;301: Determine the process element of the process to be driven, and the process behavior corresponding to the process element;

针对该步骤,每个特定的流程语言都包含了各种流程元素,关于如何确定待驱动流程的流程元素及对应的流程行为,本实施例不做具体限定。以BPMN2.0流程语言为例,其流程元素如图4所示,包含了Process,Activity,Event,SequnceFlow等流程元素,对应的流程行为可如图5所示。For this step, each specific process language includes various process elements, and how to determine the process elements and corresponding process behaviors of the process to be driven is not specifically limited in this embodiment. Taking the BPMN2.0 process language as an example, its process elements are shown in Figure 4, including Process, Activity, Event, SequnceFlow and other process elements, and the corresponding process behavior can be shown in Figure 5.

302:为该流程元素选择对应的执行对象;302: Select a corresponding execution object for the process element;

具体地,本实施例以Executable Object表示执行对象,将其看作是一个具有特定行为的Java Bean,并定义了三种进程,即执行进程execute()、唤醒进程awaken()和结束进程complete()。其中,execute()用于执行业务逻辑,该业务逻辑即为映射到该执行对象中的流程所承载的业务逻辑;awaken()用于唤醒执行对象,实际应用时,通过进行数据恢复唤醒执行对象;complete()则在execute()执行业务逻辑结束后被调用。Specifically, the present embodiment represents the execution object with Executable Object, regards it as a Java Bean with specific behavior, and defines three kinds of processes, namely the execution process execute(), the wake-up process awaken() and the end process complete( ). Among them, execute() is used to execute business logic, which is the business logic carried by the process mapped to the execution object; awake() is used to wake up the execution object, and in actual application, wake up the execution object by performing data recovery ; complete() is called after execute() executes business logic.

虽然每个执行对象都有execute(),awaken(),complete()三个进程,但这些进程的具体实现方式不一定完全相同。参见图6,根据进程实现方式的不同,可以将执行对象分为网(NetInstance),节点(NodeInstance)和弧(ArcInstance)三种类型。其中,一个网可以包含若干个互相连接的节点和弧;节点可以有若干个输入弧和若干个输出弧,每个弧必须有一个输入节点和一个输出节点;另外,一个网可以包含子网,各种执行对象之间的关系可如图7所示。Although each execution object has three processes of execute(), awaken(), and complete(), the specific implementation methods of these processes are not necessarily identical. Referring to FIG. 6 , according to different process implementation methods, execution objects can be divided into three types: net (NetInstance), node (NodeInstance) and arc (ArcInstance). Among them, a network can contain several interconnected nodes and arcs; a node can have several input arcs and several output arcs, and each arc must have an input node and an output node; in addition, a network can contain subnetworks, The relationship between various execution objects can be shown in FIG. 7 .

关于如何为流程元素选择对应的执行对象,本实施例不对具体的选择方式进行限定,仍以BPMN2.0中的流程元素为例,可以选择将Process流程元素映射到Net类型的执行对象中,Activity、Event等流程元素映射到Node类型的执行对象中,而将SequnceFlow等流程元素映射到Arc类型的执行对象中。Regarding how to select the corresponding execution object for the process element, this embodiment does not limit the specific selection method, still taking the process element in BPMN2.0 as an example, you can choose to map the Process flow element to the execution object of the Net type, Activity Process elements such as , Event, etc. are mapped to the execution object of Node type, and process elements such as SequnceFlow are mapped to the execution object of Arc type.

303:将该流程元素映射到对应的执行对象中,并将该流程元素的流程行为装配到对应的执行对象中;303: Map the process element to the corresponding execution object, and assemble the process behavior of the process element into the corresponding execution object;

其中,将该流程元素的流程行为装配到对应的执行对象中之后,可以将所有执行对象装配到内核管理器,由该内核管理器负责管理一系列有互相关系的执行对象,在外部调用执行对象时,通过该内核管理器负责调用执行对象的执行过程。Among them, after the process behavior of the process element is assembled into the corresponding execution object, all execution objects can be assembled into the kernel manager, and the kernel manager is responsible for managing a series of execution objects with mutual relations, and calling the execution object externally , through which the kernel manager is responsible for invoking the execution process of the execution object.

304:在外部调用该执行对象时启动该执行对象的执行过程。304: Start the execution process of the execution object when the execution object is called externally.

针对该步骤,由于不同的流程定义语言表达所承载的业务逻辑的方式不一样,ExecutableObject不可能将所有的情况预先硬编码到流程驱动装置架构中。因此,本实施例提供的方法采用扩展点的设计思想来满足这个需求:为每个ExecutableObject装配了3个扩展点,即引用3个固定的接口:IncomingLogic,BusinessLogic,LeavingLogic,如图8所示。For this step, since different process definition languages express the carried business logic in different ways, it is impossible for the ExecutableObject to pre-hardcode all situations into the process driver architecture. Therefore, the method provided in this embodiment adopts the design concept of extension points to meet this requirement: 3 extension points are assembled for each ExecutableObject, that is, 3 fixed interfaces are referenced: IncomingLogic, BusinessLogic, and LeavingLogic, as shown in FIG. 8 .

其中,IncomingLogic接口中设置有canBeFired()对象,用于判断业务逻辑是否满足了执行条件;BusinessLogic中设置有perform()对象,用于执行真正的业务逻辑;LeavingLogic中设置有determineLeavingStragegy()对象,用于在业务逻辑结束时指示下一步操作,下一步操作可能是执行一个新的ExecuteObject,也可能是返回上一级ExecuteObject,并调用其complete()方法。Among them, the canBeFired() object is set in the IncomingLogic interface, which is used to judge whether the business logic meets the execution conditions; the perform() object is set in the BusinessLogic, which is used to execute the real business logic; the determineLeavingStragegy() object is set in the LeavingLogic. Indicates the next operation at the end of the business logic. The next operation may be to execute a new ExecuteObject, or return to the previous ExecuteObject and call its complete() method.

则启动执行对象的执行过程时,首先调用IncomingLogic接口中设置的canBeFired()对象,再调用BusinessLogic中设置的perform()对象,最后调用LeavingLogic中设置的determineLeavingStragegy()对象,也就是说,启动执行对象的执行过程时,具体包括:When starting the execution process of the execution object, first call the canBeFired() object set in the IncomingLogic interface, then call the perform() object set in the BusinessLogic, and finally call the determineLeavingStragegy() object set in the LeavingLogic, that is, start the execution object During the implementation process, it specifically includes:

判断是否可触发执行对象所对应的业务逻辑;Determine whether the business logic corresponding to the execution object can be triggered;

如果是,则执行业务逻辑,并在执行结束之后指示下一步操作。If yes, execute the business logic and indicate the next action after the execution ends.

其中,执行业务逻辑,具体包括:Among them, execute business logic, specifically including:

调用执行进程execute()执行业务逻辑,并在执行业务逻辑结束后,调用结束进程complete();Call the execution process execute() to execute the business logic, and after the execution of the business logic, call the end process complete();

如果需要长时间执行业务逻辑,则将执行对象的状态保存在存储介质中,直至执行业务逻辑结束,调用唤醒进程awaken()进行数据恢复,并在数据恢复后调用结束进程complete()。If the business logic needs to be executed for a long time, save the state of the execution object in the storage medium until the execution of the business logic ends, call the wake-up process awake() for data recovery, and call the end process complete() after the data recovery.

本实施例提供的方法,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。The method provided in this embodiment maps the process elements to the corresponding execution objects, and starts the execution process of the execution objects when the execution objects are called externally, that is, summarizes the behavioral characteristics of various process languages with the execution objects, and realizes the process The driver can not only support the block process language, but also support the graph-like process language, thereby improving the scalability of the process drive; in addition, because the technical solution provided by the embodiment of the present invention is not related to any specific data storage layer Technology and IOC container binding, therefore, has high portability.

实施例三Embodiment three

参见图9,本实施例提供了一种流程驱动装置,该装置包括:Referring to FIG. 9, this embodiment provides a process driving device, which includes:

确定模块901,用于确定待驱动流程的流程元素,及流程元素对应的流程行为;A determination module 901, configured to determine the process elements of the process to be driven, and the process behavior corresponding to the process elements;

映射模块902,用于将流程元素映射到对应的执行对象中,并将流程元素的流程行为装配到对应的执行对象中;A mapping module 902, configured to map process elements to corresponding execution objects, and assemble process behaviors of process elements into corresponding execution objects;

驱动模块903,用于在外部调用执行对象时启动执行对象的执行过程。The driving module 903 is configured to start the execution process of the execution object when the execution object is called externally.

具体地,参见图10,驱动模块903,具体包括:Specifically, referring to FIG. 10, the driving module 903 specifically includes:

判断单元9031,用于在外部调用执行对象时,判断是否可触发执行对象所对应的业务逻辑;Judging unit 9031, configured to judge whether the business logic corresponding to the execution object can be triggered when the execution object is called externally;

执行单元9032,用于在判断单元9031判断可触发业务逻辑时,执行业务逻辑;The executing unit 9032 is configured to execute the business logic when the judging unit 9031 judges that the business logic can be triggered;

指示单元9033,用于在执行单元9032执行业务逻辑结束后,指示下一步操作。The instructing unit 9033 is configured to instruct the next operation after the executing unit 9032 finishes executing the business logic.

进一步地,参见图11,执行单元9032,具体包括:Further, referring to FIG. 11, the execution unit 9032 specifically includes:

第一调用子单元9032a,用于调用执行进程执行业务逻辑;The first calling subunit 9032a is used to call the execution process to execute business logic;

第二调用子单元9032b,用于在第一调用子单元9032a调用的执行进程执行业务逻辑结束后,调用结束进程;The second calling subunit 9032b is used to call the end process after the execution process called by the first calling subunit 9032a finishes executing business logic;

第三调用子单元9032c,用于在第一调用子单元9032a调用的执行进程需要长时间执行业务逻辑时,将执行对象的状态保存在存储介质中,直至执行业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。The third calling subunit 9032c is used to save the state of the execution object in the storage medium when the execution process called by the first calling subunit 9032a needs to execute the business logic for a long time, until the execution of the business logic ends, and calls the wake-up process to perform data processing. Restore, and call the end process after the data is restored.

本实施例提供的装置,通过将流程元素映射到对应的执行对象中,并在外部调用该执行对象时启动执行对象的执行过程,即以执行对象概括各种流程语言的行为特征,实现对流程的驱动,不仅可以支持块状流程语言,也可以很好地支持图状流程语言,从而提高了流程驱动的扩展性;另外,由于本发明实施例提供的技术方案不与任何特定的数据存储层技术及IOC容器绑定,因此,具有很高的可移植性。The device provided in this embodiment maps the process elements to the corresponding execution objects, and starts the execution process of the execution objects when the execution objects are called externally, that is, summarizes the behavioral characteristics of various process languages with the execution objects, and realizes the process The driver can not only support the block process language, but also support the graph-like process language, thereby improving the scalability of the process drive; in addition, because the technical solution provided by the embodiment of the present invention is not related to any specific data storage layer Technology and IOC container binding, therefore, has high portability.

需要说明的是:上述实施例提供的流程驱动装置在驱动流程时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流程驱动装置与流程驱动方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that when the process driving device provided in the above embodiment drives the process, it only uses the division of the above-mentioned functional modules as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional modules according to needs. The internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the process driving device provided in the above embodiment and the process driving method embodiment belong to the same idea, and its specific implementation process is detailed in the method embodiment, and will not be repeated here.

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the above embodiments of the present invention are for description only, and do not represent the advantages and disadvantages of the embodiments.

本发明实施例中的全部或部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。All or part of the steps in the embodiments of the present invention can be realized by software, and the corresponding software program can be stored in a readable storage medium, such as an optical disk or a hard disk.

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the protection of the present invention. within range.

Claims (7)

1.一种流程驱动方法,其特征在于,所述方法包括:1. A flow-driven method, characterized in that the method comprises: 确定待驱动流程的流程元素,及所述流程元素对应的流程行为;Determine the process elements of the process to be driven, and the process behavior corresponding to the process elements; 将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;Mapping the process element into a corresponding execution object, and assembling the process behavior of the process element into the corresponding execution object; 在外部调用所述执行对象时启动所述执行对象的执行过程。The execution process of the execution object is started when the execution object is called externally. 2.根据权利要求1所述的方法,其特征在于,所述在外部调用所述执行对象时启动所述执行对象的执行过程,具体包括:2. The method according to claim 1, wherein the starting the execution process of the execution object when calling the execution object externally comprises: 判断是否可触发所述执行对象所对应的业务逻辑;Judging whether the business logic corresponding to the execution object can be triggered; 如果是,则执行所述业务逻辑,并在执行结束之后指示下一步操作。If yes, execute the business logic, and indicate the next operation after the execution ends. 3.根据权利要求2所述的方法,其特征在于,所述执行所述业务逻辑,具体包括:3. The method according to claim 2, wherein the executing the business logic specifically comprises: 调用执行进程执行所述业务逻辑,并在执行所述业务逻辑结束后,调用结束进程;calling the execution process to execute the business logic, and calling the end process after executing the business logic; 如果需要长时间执行所述业务逻辑,则将所述执行对象的状态保存在存储介质中,直至执行所述业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。If the business logic needs to be executed for a long time, the state of the execution object is saved in the storage medium until the execution of the business logic ends, the wake-up process is called for data recovery, and the end process is called after the data recovery. 4.根据权利要求1所述的方法,其特征在于,所述执行对象分为网,节点和弧;4. The method according to claim 1, wherein the execution objects are divided into nets, nodes and arcs; 其中,每个网包含多个互相连接的节点和弧;每个节点包含多个输入弧和多个输出弧;每个弧至少包含一个输入节点和一个输出节点。Among them, each network contains multiple interconnected nodes and arcs; each node contains multiple input arcs and multiple output arcs; each arc contains at least one input node and one output node. 5.一种流程驱动装置,其特征在于,所述装置包括:5. A process drive device, characterized in that the device comprises: 确定模块,用于确定待驱动流程的流程元素,及所述流程元素对应的流程行为;A determining module, configured to determine the process elements of the process to be driven, and the process behavior corresponding to the process elements; 映射模块,用于将所述流程元素映射到对应的执行对象中,并将所述流程元素的流程行为装配到所述对应的执行对象中;A mapping module, configured to map the process element to a corresponding execution object, and assemble the process behavior of the process element into the corresponding execution object; 驱动模块,用于在外部调用所述执行对象时启动所述执行对象的执行过程。The driving module is used to start the execution process of the execution object when the execution object is called externally. 6.根据权利要求5所述的装置,其特征在于,所述驱动模块,具体包括:6. The device according to claim 5, wherein the drive module specifically comprises: 判断单元,用于在外部调用所述执行对象时,判断是否可触发所述执行对象所对应的业务逻辑;A judging unit, configured to judge whether the business logic corresponding to the execution object can be triggered when the execution object is called externally; 执行单元,用于在所述判断单元判断可触发所述业务逻辑时,执行所述业务逻辑;an executing unit, configured to execute the business logic when the judging unit judges that the business logic can be triggered; 指示单元,用于在所述执行单元执行所述业务逻辑结束后,指示下一步操作。The instructing unit is configured to instruct the next operation after the execution unit finishes executing the business logic. 7.根据权利要求6所述的装置,其特征在于,所述执行单元,具体包括:7. The device according to claim 6, wherein the execution unit specifically comprises: 第一调用子单元,用于调用执行进程执行所述业务逻辑;The first calling subunit is used to call the execution process to execute the business logic; 第二调用子单元,用于在所述第一调用子单元调用的执行进程执行所述业务逻辑结束后,调用结束进程;The second calling subunit is used to call the end process after the execution process called by the first calling subunit finishes executing the business logic; 第三调用子单元,用于在所述第一调用子单元调用的执行进程需要长时间执行所述业务逻辑时,将所述执行对象的状态保存在存储介质中,直至执行所述业务逻辑结束,调用唤醒进程进行数据恢复,并在数据恢复后调用结束进程。The third calling subunit is used to save the state of the execution object in the storage medium when the execution process called by the first calling subunit needs to execute the business logic for a long time until the execution of the business logic ends , call the wake-up process for data recovery, and call the end process after data recovery.
CN201010180046.8A 2010-05-20 2010-05-20 Process driving method and device Expired - Fee Related CN102254233B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010180046.8A CN102254233B (en) 2010-05-20 2010-05-20 Process driving method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010180046.8A CN102254233B (en) 2010-05-20 2010-05-20 Process driving method and device

Publications (2)

Publication Number Publication Date
CN102254233A true CN102254233A (en) 2011-11-23
CN102254233B CN102254233B (en) 2014-04-23

Family

ID=44981481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010180046.8A Expired - Fee Related CN102254233B (en) 2010-05-20 2010-05-20 Process driving method and device

Country Status (1)

Country Link
CN (1) CN102254233B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662725A (en) * 2012-03-15 2012-09-12 中国科学院软件研究所 Event-driven high concurrent process virtual machine realization method
CN105224341A (en) * 2015-11-09 2016-01-06 中国民生银行股份有限公司 The implementation method of program development and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005191A1 (en) * 2001-07-02 2003-01-16 Bea Systems, Inc. Programming language extensions for processing xml objects and related applications
CN100571167C (en) * 2006-02-24 2009-12-16 国际商业机器公司 Method and apparatus for unit testing of web service business processes
CN101668047A (en) * 2009-09-30 2010-03-10 北京航空航天大学 Method and device for automatically generating composite service description language
CN101695080A (en) * 2009-09-30 2010-04-14 北京航空航天大学 Execution method of BPMN composition service and execution device thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005191A1 (en) * 2001-07-02 2003-01-16 Bea Systems, Inc. Programming language extensions for processing xml objects and related applications
CN100571167C (en) * 2006-02-24 2009-12-16 国际商业机器公司 Method and apparatus for unit testing of web service business processes
CN101668047A (en) * 2009-09-30 2010-03-10 北京航空航天大学 Method and device for automatically generating composite service description language
CN101695080A (en) * 2009-09-30 2010-04-14 北京航空航天大学 Execution method of BPMN composition service and execution device thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662725A (en) * 2012-03-15 2012-09-12 中国科学院软件研究所 Event-driven high concurrent process virtual machine realization method
CN102662725B (en) * 2012-03-15 2015-01-28 中国科学院软件研究所 Event-driven high concurrent process virtual machine realization method
CN105224341A (en) * 2015-11-09 2016-01-06 中国民生银行股份有限公司 The implementation method of program development and device
CN105224341B (en) * 2015-11-09 2018-09-14 中国民生银行股份有限公司 The implementation method and device of program development

Also Published As

Publication number Publication date
CN102254233B (en) 2014-04-23

Similar Documents

Publication Publication Date Title
CN102103497B (en) Finite state machine actuating device and method, and method for establishing and using finite state machine
CN103984818B (en) AUV (autonomous underwater vehicle) design flow visualization modeling method based on Flex technology
JP4856237B2 (en) Declarative definitions that allow graphic designers to be reused
CN110362363A (en) A method of model realization controls terminal applies when based on operation
CN104737133A (en) Distributed application optimization using service groups
WO2020248510A1 (en) Terminal application behaviour reflection processing method
CN102110162B (en) Method and device for realizing monitoring on SQL (structured query language) database
CN102591710B (en) Shared object represents
CN104268346B (en) A kind of implementation method of the Simulation Application visualization the integration environment based on object class interaction figure
CN107479866A (en) The method that open terminal applies data and function are realized based on reconfiguration technique
CN116820908A (en) Locust-based performance testing methods, devices, equipment and media
Kolovos et al. The epsilon pattern language
CN115016769A (en) Construction method and application development method of scaffolding based on domain-driven design
CN102254233A (en) Flow driving method and flow driving device
CN110162563A (en) A kind of data storage method, system and electronic equipment and storage medium
CN102479076A (en) Method, device and business system for recording audit logs
WO2020248512A1 (en) Method for constructing runtime model of terminal application behavior
CN110908644A (en) Configuration method and device of state node, computer equipment and storage medium
US10102243B2 (en) Specification of database table relationships for calculation
US7735090B2 (en) On demand software contract modification and termination in running component assemblies
US20120210258A1 (en) Compositional dashboards with processor components
CN102566998B (en) Flow engine method for designing based on Data Source
CN104572835A (en) Method and device for building process meta model
CN106156112A (en) The operational approach of business form and the operation device of business form
CN117492721B (en) General rapid development method applied to building digital information system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: SHENZHEN JINDIE TIANYAN MIDDLEWARE Co.,Ltd.

Address before: 518057 Guangdong City, Nanshan District province high tech Zone in the middle of the industrial zone of the sparrow tower M-6 building, floor 1, area 3, second, 4

Patentee before: SHENZHEN KINGDEE MIDDLEWARE Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: South South technology twelve road 518057 in Guangdong province Shenzhen City Guangdong streets Nanshan District high tech Industrial Park, No. 2, Kingdee Software Park building A floor 2 South Block

Patentee after: Shenzhen Kingdee tianyanyun computing Co.,Ltd.

Address before: 518057 south block, 2f, building a, Kingdee Software Park, No. 2, Keji South 12th Road, South District, high tech Industrial Park, Yuehai street, Nanshan District, Shenzhen

Patentee before: SHENZHEN JINDIE TIANYAN MIDDLEWARE Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140423