[发明专利]一种动态库自动服务化封装方法、系统及应用有效
申请号: | 202010124121.2 | 申请日: | 2020-02-27 |
公开(公告)号: | CN111459489B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 张小刚;齐乐;王绍源;边耐政;陈华 | 申请(专利权)人: | 湖南大学 |
主分类号: | G06F8/40 | 分类号: | G06F8/40;G06F9/445 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清;廖元宝 |
地址: | 410082 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 自动 服务 封装 方法 系统 应用 | ||
1.一种动态库自动服务化封装方法,其特征在于,包括步骤:
S01、预先进行动态库、动态库中函数的描述,形成函数描述文件;
S02、读取函数描述文件并进行解析,获得待加载动态库的名称和路径、以及动态库内各函数的类型,建立函数名称/类型映射表,并对动态库进行预加载;
S03、根据函数名称从函数名称/类型映射表中查找到对应的函数类型指针,获得该函数在预加载的动态库中对应的地址,完成函数的调用;
所述步骤S03的具体过程为:
S31、接收到函数列表信息请求后,读取由函数描述文件解析而成的函数列表信息;
S32、根据函数调用请求中的函数名称以及参数信息,根据函数名称从函数名称/类型映射表中查找到对应的函数类型指针,获得该函数在预加载的动态库中对应的地址、函数类型,以及该类型函数的处理函数,在处理函数中完成对函数的调用;
在步骤S01中,所述函数的描述基于函数类型,函数类型的定义方法如下:
S11、对函数类型进行简化,其中函数类型是基于函数的函数与返回值;
S12、基于简化的函数,对函数类型进行定义:返回值类型_参数1类型|参数2类型|参数3类型|…,其中下划线前是函数返回值类型,下划线后面为第1,2,3…参数的类型。
2. 根据权利要求1所述的动态库自动服务化封装方法,其特征在于,在步骤S01中,所述函数描述文件通过json语法将库提供商、库路径、库中函数名、函数类型以及函数功能进行组织而得到。
3.一种动态库自动服务化封装系统,用于执行如权利要求1或2所述的动态库自动服务化封装方法,其特征在于,包括
文件解析模块,用于对预先形成的函数描述文件进行解析,建立函数名称/类型映射表以及本地函数列表;
动态库预加载模块,用于从函数描述文件中获得待加载动态库的名称和路径,对动态库进行预加载;
服务发布交互模块,用于接收函数列表查询请求,读取本地函数列表,获取函数名称;接收函数调用请求,调用函数解析调用模块;
函数解析调用模块,用于根据服务发布交互模块获取的函数名称,从函数名称/类型映射表中查找到对应的函数类型指针,获得该函数在预加载的动态库中对应的地址,完成本地函数的调用;
在文件解析模块中,预先进行动态库、动态库中函数的描述,形成函数描述文件;其中所述函数的描述基于函数类型,函数类型的定义方法如下:
对函数类型进行简化,其中函数类型是基于函数的函数与返回值;
基于简化的函数,对函数类型进行定义:返回值类型_参数1类型|参数2类型|参数3类型|…,其中下划线前是函数返回值类型,下划线后面为第1,2,3…参数的类型。
4.根据权利要求3所述的动态库自动服务化封装系统,其特征在于,还包括函数类型库,用于加载各种预设函数类型指针以及该类函数参数解析方法。
5.根据权利要求4所述的动态库自动服务化封装系统,其特征在于,所述服务发布交互模块包括函数列表查询服务接口和函数调用服务接口。
6.一种动态库自动服务化封装系统的应用方法,其特征在于,
当客户端进程发送获取函数列表信息请求后,动态库自动服务化封装系统形成的服务端创建新线程,在该线程中读取函数描述文件并进行解析,并返回给客户端;
客户端获得函数列表信息,传递需要调用的函数名称以及对应参数给服务端;
针对客户端发来的函数调用请求,服务端创建新的线程,在线程中对函数参数进行解析,根据函数名获得库中的地址、函数类型,以及该类型函数的处理函数;
在处理函数中完成对本地函数的调用,函数的返回值将转换成字符串送回客户端;
处理函数中完成对本地函数的调用的具体过程为:
接收到函数列表信息请求后,读取由函数描述文件解析而成的函数列表信息;
根据函数调用请求中的函数名称以及参数信息,根据函数名称从函数名称/类型映射表中查找到对应的函数类型指针,获得该函数在预加载的动态库中对应的地址、函数类型,以及该类型函数的处理函数,在处理函数中完成对函数的调用;
在函数描述文件中,所述函数的描述基于函数类型,函数类型的定义方法如下:
对函数类型进行简化,其中函数类型是基于函数的函数与返回值;
基于简化的函数,对函数类型进行定义:返回值类型_参数1类型|参数2类型|参数3类型|…,其中下划线前是函数返回值类型,下划线后面为第1,2,3…参数的类型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010124121.2/1.html,转载请声明来源钻瓜专利网。