当前位置: 首页 > 专利查询>清华大学专利>正文

一种静态流程模型的编译执行方法及系统技术方案

技术编号:16779049 阅读:63 留言:0更新日期:2017-12-12 23:33
本发明专利技术公开了一种静态流程模型的编译执行方法及系统。该方法包括:获取静态流程模型;对静态流程模型的静态定义进行解析,得到解析后的静态流程模型;将解析后的静态流程模型存储在内存中,记为内存模型;对内存模型进行编码并对代码模板的代码槽进行填充,得到内存模型的源代码文件,保存源代码文件;对源代码文件中的源代码进行编译,生成源代码对应的动态链接库,保存动态链接库;当需要执行静态流程模型时,加载静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。本发明专利技术提供的静态流程模型的编译执行方法及系统能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。

A method and system for compiling and executing a static flow model

The invention discloses a method and system for compiling and executing a static flow model. The method includes: obtaining the static process model; analyze the static definition of static process model, static process model analysis; the static storage process model parsed in memory, denoted as memory model; encoding memory model and code slot of the code templates are filled by the source memory model the code file, save the source code file; the source code file in the source code, dynamic link library source code corresponding to the preservation of the dynamic link library; when you need to perform static process model, static loading process model corresponding to the dynamic link library into memory, in order to achieve the static process execution model. The compilation and execution method and system of the static process model provided by the invention can improve the efficiency of executing the static process model and apply to the operation of complex process instances.

【技术实现步骤摘要】
一种静态流程模型的编译执行方法及系统
本专利技术涉及计算机领域,特别是涉及一种静态流程模型的编译执行方法及系统。
技术介绍
计算机并不能直接接受和执行采用高级语言编写的源代码,先要翻译成机器语言,才能被计算机识别和执行。静态流程模型的执行往往通过解释执行的技术实现,解释执行的效率往往由于需要根据每句计算机语句来实时转为机器指令,从而使得整个系统的执行效率较低。流程模型的一次执行称为该流程对应的实例,一个静态模型执行多次即可产生多条实例,每条实例执行的活动集称为实例对应的轨迹。流程模型的每一次执行都要根据每句计算机语句来实时转为机器指令,即每执行一次就要翻译一次,占用了过多的计算机资源、执行效率低、不适用于复杂的流程实例的运行。
技术实现思路
本专利技术的目的是提供一种静态流程模型的编译执行方法及系统,能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。为实现上述目的,本专利技术提供了如下方案:一种静态流程模型的编译执行方法,所述方法包括:获取静态流程模型;对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;将解析后的静态流程模型存储在内存中,记为内存模型;对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。可选的,所述对所述内存模型进行编码,得到所述内存模型的源代码文件,具体包括:提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;如果是,则返回所述模型仓库中存在的内存模型对应的源代码文件;如果否,对内存模型进行编码,形成源代码文件。可选的,在所述对所述静态流程模型的静态定义进行解析之后,在所述将解析后的静态流程模型存储在内存中之前,还包括:根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确;如果是,则将解析后的静态流程模型存储在内存中,记为内存模型。可选的,所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关等。可选的,所述参数配置包括:开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流等。可选的,所述全局配置包括所述静态流程模型的名称、创建者、版本号等。本专利技术还提供了一种静态流程模型的编译执行系统,所述系统包括:模型获取单元,用于获取静态流程模型;模型解析单元,用于对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;存储单元,用于将解析后的静态流程模型存储在内存中,记为内存模型;源代码生成单元,用于对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;编译单元,用于对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;加载执行单元,用于当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。可选的,所述源代码生成单元,具体包括:参数配置提取子单元,用于提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;查询子单元,用于根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;返回子单元,用于当模型仓库中存在所述内存模型对应的源代码文件时,返回所述模型仓库中存在的内存模型对应的源代码文件;编码子单元,用于当模型仓库中不存在所述内存模型对应的源代码文件时,对内存模型进行编码,形成源代码文件。可选的,所述系统还包括:判断单元,用于根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:本专利技术通过将静态流程模型进行解析,并读取模型的拓扑结构及参数配置,然后将静态流程模型转化为对应逻辑的程序源代码,并将源代码编译成动态链接库,并保存序源代码以及源代码编译成动态链接库,当静态流程模型实例需要运行时,加载对应的动态链接库到内存中,即可实现静态流程模型实例的执行。由于本专利技术将静态流程模型转化为了对应逻辑的程序源代码以及动态链接库,并对其进行了保存,这使得每次需要执行该静态流程模型时,只需加载动态链接库就可以直接进行执行,无需每次都将静态流程模型的源代码中的语句逐句转为机器指令,进而计算机再执行,避免了对计算机资源的浪费,提高了执行效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例静态流程模型的编译执行方法流程图;图2为本专利技术实施例静态流程模型的执行架构图;图3为本专利技术实施例静态流程模型的解析流程图;图4为本专利技术实施例源代码生成过程的流程图;图5为本专利技术实施例加载动态链接库的流程图;图6为本专利技术实施例静态流程模型的编译执行系统结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的目的是提供一种静态流程模型的编译执行方法及系统,能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术实施例静态流程模型的编译执行方法流程图,如图1所示,本专利技术静态流程模型的编译执行方法步骤如下:步骤101:获取静态流程模型;步骤102:对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;步骤103:将解析后的静态流程模型存储在内存中,记为内存模型;步骤104:对对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;步骤105:对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;步骤106:当需要执行所述静态流程模型时,加载所述静态本文档来自技高网...
一种静态流程模型的编译执行方法及系统

【技术保护点】
一种静态流程模型的编译执行方法,其特征在于,所述方法包括:获取静态流程模型;对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;将解析后的静态流程模型存储在内存中,记为内存模型;对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。

【技术特征摘要】
1.一种静态流程模型的编译执行方法,其特征在于,所述方法包括:获取静态流程模型;对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;将解析后的静态流程模型存储在内存中,记为内存模型;对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。2.根据权利要求1所述的编译执行方法,其特征在于,所述对所述内存模型进行编码,得到所述内存模型的源代码文件,具体包括:提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;如果是,则返回所述模型仓库中存在的内存模型对应的源代码文件;如果否,对内存模型进行编码,形成源代码文件。3.根据权利要求1所述的编译执行方法,其特征在于,在所述对所述静态流程模型的静态定义进行解析之后,在所述将解析后的静态流程模型存储在内存中之前,还包括:根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确;如果是,则将解析后的静态流程模型存储在内存中,记为内存模型。4.根据权利要求1所述的编译执行方法,其特征在于,所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关。5.根据权利要求1所述的编译执行方法,其特征在于,所述参数配置包括:开始时间、结束时间、执行...

【专利技术属性】
技术研发人员:闻立杰王建民倪伟渊钱忱王宇娇
申请(专利权)人:清华大学华为技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1