[发明专利]基于linuxC语言的轻量级流程调度方法无效

专利信息
申请号: 201110055573.0 申请日: 2011-03-09
公开(公告)号: CN102129389A 公开(公告)日: 2011-07-20
发明(设计)人: 季君 申请(专利权)人: 南京恩瑞特实业有限公司
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 南京天华专利代理有限责任公司 32218 代理人: 徐冬涛;瞿网兰
地址: 211110 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 linuxc 语言 轻量级 流程 调度 方法
【说明书】:

技术领域

发明涉及一种计算机C语言技术,尤其是一种流程调度方法,具体地说是一种基于linux C语言的轻量级流程调度方法。

背景技术

目前,在JAVA中,我们可以使用反射机制来实现动态加载,通过JAVA的反射机制,编译器能够方便地定位并初始化实现类,从而实现运行时动态加载不同的运行模块,实现运行流程的动态调度。然而,在C和C++中,编译器并没有提供反射机制,而流程调度框架一般都比较重,如何实现一个轻量级的、基于动态加载的流程调度引擎,是急需解决的难题之一。

对于linux C或者C++项目而言,若果用户要求实现流程可配置,我们的第一反应是利用商用的流程引擎来实现。但商用流程引擎对资源的需求和开销都是很高的,很多情况下,迫切需要一个简单的流程调度来满足用户的需求。

发明内容

本发明的目的是针对linux C系统下实现流程可配置存在的资源需求和开销高的问题,设计一个基于linux C语言的轻量级流程调度方法。

本发明的技术方案是:

一种基于linux C语言的轻量级流程调度方法,其特征是它包括以下步骤:

首先针对所有的流程模块进行接口设计,将所有的流程模块抽象出一个统一的接口,通过调用接口来实现调用具体的流程模块;

对于需要流程调度的模块来说,前一个流程的输出,就是后一个流程的输入;为此,把流程调度的所有模块作为一个黑匣子,则整个流程的输入和输出应该走遍流程的每一个步骤,而流程只是对输入数据进行调控;在linux C语言中,动态加载针对的是so动态库,通过加载不同的动态库来实现动态加载;然后通过以下方法进行动态调用:

首先,有一个流程定义,需按步骤进行Flow1、Flow2、Flow3、Flow1和Flow4的处 理;因为其中不确定哪些流程会重复处理,因此通过0/1来控制是否进行该流程;

为此,定义一种流程定义和解析策略:通过一位ASCII字符来定义流程名称,通过一个string(char*)字符串来定义该流程定义对应的处理模块的so文件的具体路径信息,并用$PATH表示具体的路径信息;这样,通过一个字符串来定义本次的流程,然后提交给流程调度模块。

流程调度模块解析流程定义的每一位字符,然后从流程定义表中获取该处理流程的动态库的路径,通过dlopen()方法打开动态库,并通过dlsym()方法来执行,最后通过dlclose来关闭动态库;当流程定义的字符串没有处理完毕时,不断重复上述操作,直到处理完毕;

其次按以下处理逻辑进行调度:

第1步:用户获取流程别名,并将流程别名和输入输出数据提交给流程引擎;

第2步:流程引擎获取到流程别名后,在流程配置表中查询并获取其定义的具体流程信息;

第3步:获取第一位流程定义字符;

第4步:在流程定义表中获取该流程的处理模块so的定义信息,并将输入信息和定义信息提交给执行模块;

第5步:执行模块动态加载并执行定义信息中的so文件,修改输入输出信息;

第6步:获取下一位流程定义字符,如果该字符为空,则转第7步,否则转第4步;

第7步:流程执行完毕。

所述的接口定义规格如下:

所述的so动态库是通过对结构的程序编译生成的:

重复对不同的so动态库进行编译生成不同的so处理模块,最终形成动态库文件。

本发明的有益效果:

本发明资源需求和开销小,运行效率高。

本发明解决了linux C或者C++项目下无需借且商用引擎即可实现流程的可配置问题,可降低软件开发成本。

本发明通过代码来实现处理模块的动态加载,并实现流程的动态调度。用户只需要对流程配置表进行手动维护,就可以配置可重复处理的流程。当然,如果用户的流程数量很多时,一位字符串无法定义一个单独的流程,此时可以通过多个字符串来定义一个流程;在流程解析时,对连续的多个字符串进行匹配来获取流程的动态处理模块,从来实现流程的动态调度。

附图说明

图1是本发明的流程定义图。

图2是本发明的流程定义表。

图3是本发明的流程配置表。

图4是本发明的轻量级流程调度处理逻辑。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明。

如图1-3所示。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京恩瑞特实业有限公司,未经南京恩瑞特实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110055573.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top