[发明专利]一种动态库自动服务化封装方法、系统及应用有效
申请号: | 202010124121.2 | 申请日: | 2020-02-27 |
公开(公告)号: | CN111459489B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 张小刚;齐乐;王绍源;边耐政;陈华 | 申请(专利权)人: | 湖南大学 |
主分类号: | G06F8/40 | 分类号: | G06F8/40;G06F9/445 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清;廖元宝 |
地址: | 410082 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 自动 服务 封装 方法 系统 应用 | ||
本发明公开了一种动态库自动服务化封装方法及系统,属于计算机技术领域,用于解决目前动态库人工服务化封装开发成本及维护成本高、标准混乱的技术问题,采用的技术方案为:预先进行动态库描述、函数类型定义以及参数描述,形成函数描述文件;读取函数描述文件并进行解析,获得待加载动态库的名称和路径、以及动态库内各函数的类型,建立函数名称/类型映射表,并对动态库进行预加载;根据函数名称从函数名称/类型映射表中查找到对应的函数类型指针,获得该函数在预加载的动态库中对应的地址,完成函数的调用。本发明的方法及系统均具有灵活性高、操作简便、开发成本及维护成本低等优点。
技术领域
本发明主要涉及计算机技术领域,特指一种动态库自动服务化封装方法、系统及应用。
背景技术
随着工业自动化进程不断发展,工业现场中使用机器人的场景越多越多。不同型号的机器人控制方法均有所差异。目前通行的做法是,厂商提供机器人控制的SDK(软件开发工具包)一般是动态链接库形式,供上位机用户调用,动态库中厂商通过套接字形式与机器人本地交互实现对机器人的控制。这种方式将会导致:如果多个用户需要与某台机器人进行信息交互时,均需要配置安装相应动态库环境。
随着面向服务架构(Service Oriented Architecture,SOA)的应用逐渐成熟,为机器人功能灵活拓展提供一个新的思路。利用SOA架构的粗粒度、开放式、松耦合的服务结构特点,提升分布式机器人系统的灵活性,实现工业机器人软件的敏捷开发。
动态库的服务化封装,目的是将本地封装的函数功能库映射互联网上,以服务形式供更多用户使用,降低分布式系统中各节点的耦合性。目前基于动态库的服务化封装还是依靠人工,该过程可以分解成两个部分:服务发布、动态库加载。服务的发布有很多框架工具,例如c++下的gsoap、java ee中Axis等等。动态库的加载则有两种方式,静态调用与动态调用。对于一个已知动态库的服务化封装流程如下:
步骤1:查看动态库的接口文档,根据文档设计服务接口;
步骤2:设计服务框架,生成服务发布代码;
步骤3:库中函数的加载映射;
步骤4:将动态库中各函数嵌入服务框架中。
由于每个库中函数的名称型式都有一定的差异,现行的动态库服务化封装主要还是依靠人工,首先需要人工设计库中每个函数的接口,然后映射到库中具体的函数。
上述步骤都需要技术人员参与深度参与,从而导致现有的动态库人工服务化封装存在以下不足:
1、从技术要求来说,服务化封装对要求开发人员对网络开发有较深入的了解,需要针对库中的接口设计相应服务接口,增加系统开发成本,同时手动服务化封装复杂且工作量较大,存在技术风险;
2、由于涉及代码编写,后期还需要专人维护升级,增加后期维护成本;
3、不同团队实现的服务封装标准难免存在差异,各种自定义标准导致更加混乱(不同厂商定义各自标准)。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种灵活性高、操作简便、成本低的动态库自动服务化封装方法、系统及应用。
为解决上述技术问题,本发明提出的技术方案为:
一种动态库自动服务化封装方法,包括步骤:
S01、预先进行动态库描述、函数类型定义以及参数描述,形成函数描述文件;
S02、读取函数描述文件并进行解析,获得待加载动态库的名称和路径、以及动态库内各函数的类型,建立函数名称/类型映射表,并对动态库进行预加载;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010124121.2/2.html,转载请声明来源钻瓜专利网。