一种适配多种接口采集的方法与流程

文档序号:11590027阅读:203来源:国知局

本发明涉及一种接口采集方法。特别是涉及一种把函数编译成动态库,通过在配置文件中配置动态库,完成特定功能的适配多种接口采集的方法。



背景技术:

在信息化时代,为了提高效率和准确性,设备的管理都采用软件管理。又针对设备的不同,管理软件各不相同,呈现给管理人员的界面和查看方式差别很大,导致设备出现故障时,处理的实效大大降低。

为了解决这个问题,开发了综合网管系统,可以通过各种管理软件的接口,采集到管理软件的数据,统一呈现给用户。但是,要从多个管理软件的多个接口采集数据,需要很多采集器。由于接口协议不通,每个采集器要独立开发,出现了复用率低、冗余大、并且开发进度慢、维护难度大的问题。

为了充分利用既有资源,避免重复开发,提高编码统一度,把共性抽离出来,形成可复用的函数,针对接口协议编写组装、解析数据包函数,并且把流程配置到配置文件中,可以很便捷的变更数据流程,便形成了此方法。



技术实现要素:

本发明所要解决的技术问题是,提供一种可以使代码复用率提高,使开发周期缩短,并且运行流程变更灵活的适配多种接口采集的方法。

本发明所采用的技术方案是:一种适配多种接口采集的方法,包括如下步骤:

1)将套接字的读函数和写函数、mq的收函数和发函数以及数据库的读函数和写函数分别编写为基础函数,形成函数库,一个函数对应一个源码文件保存在函数库中,在基础函数调用时要编译成动态库,以动态库文件进行调用;

2)从接口协议中分别找出登陆信息、登陆反馈信息、数据采集信息和数据采集反馈信息,形成接口解析函数和接口组装函数;

3)编写配置文件;

4)设计数据采集流程。

对步骤1)中所述的基础函数和步骤2)中所述的接口解析函数和接口组装函数的要求如下:

(1)所有基础函数、接口解析函数和接口组装函数的名称一致;

(2)基础函数、接口解析函数和接口组装函数的入参都是通过句柄获取,固定不变的入参从句柄的配置文件哈希表中获取,可变入参是通过句柄的数据缓存指针字段获取;

(3)如果基础函数、接口解析函数和接口组装函数有出参,要通过调用释放函数来释放句柄的数据缓存指针,把出参存入句柄的数据缓存指针字段,把释放数据缓存指针字段的函数赋值给句柄的释放函数;

(4)对基础函数套接字的读函数和写函数,首先判断句柄里的套接字描述符是否可用,可用就调用读函数和写函数;如果不可用再重新生成套接字描述符;其他基础函数都要把链接和断开链接直接写到基础函数里。

第(2)步所述的句柄是一个结构体,包括如下字段:

(a)配置文件哈希表字段:记录配置文件信息;配置文件是xml格式的,以xml格式的标签作为关键字,标签的内容作为哈希表的值,并且把哈希表地址赋值给配置文件哈希表字段;

(b)执行链表指针字段:记录初始化句柄时生成的执行数组,内容是由服务名和服务名内所有的动态库按照先后顺序形成的链表的头地址组成的哈希表,链表的每个节点都是一个包括两个字段的结构体,结构体第一个字段是动态库的名称,第二个字段是指向下一个节点的指针;服务名就是配置文件中xml格式的根节点,一个服务名包括一个以上动态库,同一个服务名的动态库执行顺序是配置文件中该服务名的动态库由上到下的顺序;

(c)数据缓存指针字段:用于存储数据缓存地址,所述数据是字符串或结构体;

(d)释放函数字段:用于释放数据缓存的函数,是函数free,或是其他自定义的释放缓存的函数,当释放函数字段为0,表示什么都不释放;

(e)套接字描述符字段:只有在调用套接字读函数和写函数时使用,用于存储套接字描述符。

第(3)步所述的调用释放函数,包括:

(a)从句柄里中的释放函数字段读取释放函数;

(b)执行释放函数,释放句柄的数据缓存指针;

(c)把数据缓存指针字段设置为空,并且把释放函数字段设置成0。

步骤2)所述的接口解析函数用于按接口协议解析数据包,将解析的数据包形成xml格式,把字段的描述作为标签,字段的内容作为标签的内容;

步骤2)所述的接口组装函数,用于按接口协议组装数据包,把xml格式组装接口协议是求的数据包。

步骤3)所述的编写配置文件,是把套接字写函数动态库命名为服务1;套接字读函数动态库命名为服务2;接口解析函数动态库命名为服务3;接口组装函数动态库为服务4,数据库写函数动态库作命名为服务5。

步骤4)所述的数据采集流程包括:

(1)初始化句柄;

(2)发送登陆指令,包括调用服务4和调用服务1;

(3)接收登陆反馈信息,包括调用服务2和调用服务3;

(4)并判断是否成功,是进入下一步,否则记录错误并结束;

(5)发送数据采集指令,包括数据采集指令形成xml格式,所述的xml格式是把字段的描述作为标签,字段的内容作为标签的内容,把xml格式地址赋值给句柄的数据缓存指针字段,然后调用调用服务4和调用服务1;

(6)接收数据采集反馈信息,包括调用服务2;

(7)解析数据采集反馈信息,包括调用服务3;

(8)数据存入数据库,即调用服务5。

第(1)步包括:

(a)先读取配置文件,把配置文件以哈希表形式存储到内存中,配置文件是xml格式的,以xml格式的标签作为关键字,标签的内容作为哈希表的值,并且把哈希表地址赋值给句柄的配置文件哈希表字段;

(b)由服务名和服务名内所有的动态库按照先后顺序形成的链表的头地址组成的哈希表赋值给执行链表指针字段;

(c)将数据缓存指针字段设置为空;

(d)将释放函数字段设置成0。

所述的调用服务包括:

(a)从句柄的执行链表指针字段读取调用对应服务的服务名内所有的动态库按照先后顺序形成的链表的头地址,赋值给一个指针;

(b)如果指针非空,从指针中读取一个动态库名称,进入下一步;如果指针为空,进入第(e)步;

(c)执行动态库中的函数,每一个动态库里只有一个函数,记录返回结果,进入下一步;

(d)判断返回结果,如果成功,进入第(e)步;如果失败,记录错误,结束;

(e)记录成功,结束。

本发明的一种适配多种接口采集的方法,具有如下特点:

1、把常用功能编写成函数,建立了函数库;

2、函数参数固定,通过配置文件设定固定参数,调用方便实用;

3、配置文件中的服务,可以根据需要灵活配置,不是单一固定的;

4、运行流程通过堆叠动态库,记录在配置文件中,变更数据采集格式方便快捷。

附图说明

图1是本发明一种适配多种接口采集的方法中接口协议的数据交互流程图;

图2是本发明一种适配多种接口采集的方法中数据采集流程图。

具体实施方式

下面结合实施例和附图对本发明的一种适配多种接口采集的方法做出详细说明。

本发明的一种适配多种接口采集的方法,包括如下步骤:

1)将套接字的读函数和写函数、mq的收函数和发函数以及数据库的读函数和写函数分别编写为基础函数,形成函数库,一个函数对应一个源码文件保存在函数库中,在基础函数调用时要编译成动态库,以动态库文件进行调用;

2)从接口协议中分别找出登陆信息、登陆反馈信息、数据采集信息和数据采集反馈信息,形成接口解析函数和接口组装函数;

所述的接口解析函数用于按接口协议解析数据包,将解析的数据包形成xml格式,把字段的描述作为标签,字段的内容作为标签的内容;所述的接口组装函数,用于按接口协议组装数据包,把xml格式组装接口协议是求的数据包。

本发明中对步骤1)中所述的基础函数和步骤2)中所述的接口解析函数和接口组装函数的要求如下:

(1)所有基础函数、接口解析函数和接口组装函数的名称一致;

(2)基础函数、接口解析函数和接口组装函数的入参都是通过句柄获取,固定不变的入参从句柄的配置文件哈希表中获取,可变入参是通过句柄的数据缓存指针字段获取;例如:套接字写函数:ip和端口是固定不变的,这样的参数以xml格式设定在配置文件中,以字段的说明为标记,以具体的内容为值。函数从句柄的配置文件哈希表内读取ip和端口信息;写的内容在句柄的数据缓存指针字段内读取。

所述的句柄是一个结构体,包括如下字段:

(a)配置文件哈希表字段:记录配置文件信息;配置文件是xml格式的,以xml格式的标签作为关键字,标签的内容作为哈希表的值,并且把哈希表地址赋值给配置文件哈希表字段;

(b)执行链表指针字段:记录初始化句柄时生成的执行数组,内容是由服务名和服务名内所有的动态库按照先后顺序形成的链表的头地址组成的哈希表,链表的每个节点都是一个包括两个字段的结构体,结构体第一个字段是动态库的名称,第二个字段是指向下一个节点的指针;服务名就是配置文件中xml格式的根节点,一个服务名包括一个以上动态库,同一个服务名的动态库执行顺序是配置文件中该服务名的动态库由上到下的顺序;

(c)数据缓存指针字段:用于存储数据缓存地址,所述数据是字符串或结构体;

(d)释放函数字段:用于释放数据缓存的函数,是函数free,或是其他自定义的释放缓存的函数,当释放函数字段为0,表示什么都不释放;

(e)套接字描述符字段:只有在调用套接字读函数和写函数时使用,用于存储套接字描述符。

(3)如果基础函数、接口解析函数和接口组装函数有出参,要通过调用释放函数来释放句柄的数据缓存指针,把出参存入句柄的数据缓存指针字段,把释放数据缓存指针字段的函数赋值给句柄的释放函数;

所述的调用释放函数,包括:

(a)从句柄里中的释放函数字段读取释放函数;

(b)执行释放函数,释放句柄的数据缓存指针;

(c)把数据缓存指针字段设置为空,并且把释放函数字段设置成0。

(4)对基础函数套接字的读函数和写函数,首先判断句柄里的套接字描述符是否可用,可用就调用读函数和写函数;如果不可用再重新生成套接字描述符;其他基础函数都要把链接和断开链接直接写到基础函数里。例如数据库的读函数:需要先链接数据库,进行读数据,然后再断开数据库。

3)编写配置文件,所述的编写配置文件,是把套接字写函数动态库命名为服务1;套接字读函数动态库命名为服务2;接口解析函数动态库命名为服务3;接口组装函数动态库为服务4,数据库写函数动态库作命名为服务5。

4)设计数据采集流程,所述的数据采集流程包括:

(1)初始化句柄;包括:

(a)先读取配置文件,把配置文件以哈希表形式存储到内存中,配置文件是xml格式的,以xml格式的标签作为关键字,标签的内容作为哈希表的值,并且把哈希表地址赋值给句柄的配置文件哈希表字段;

(b)由服务名和服务名内所有的动态库按照先后顺序形成的链表的头地址组成的哈希表赋值给执行链表指针字段;

(c)将数据缓存指针字段设置为空;

(d)将释放函数字段设置成0。

(2)发送登陆指令,包括调用服务4和调用服务1;

(3)接收登陆反馈信息,包括调用服务2和调用服务3;

(4)并判断是否成功,是进入下一步,否则记录错误并结束;

(5)发送数据采集指令,包括数据采集指令形成xml格式,所述的xml格式是把字段的描述作为标签,字段的内容作为标签的内容,把xml格式地址赋值给句柄的数据缓存指针字段,然后调用调用服务4和调用服务1;

(6)接收数据采集反馈信息,包括调用服务2;

(7)解析数据采集反馈信息,包括调用服务3;

(8)数据存入数据库,即调用服务5。

上面所述的调用服务包括:

(a)从句柄的执行链表指针字段读取调用对应服务的服务名内所有的动态库按照先后顺序形成的链表的头地址,赋值给一个指针;

(b)如果指针非空,从指针中读取一个动态库名称,进入下一步;如果指针为空,进入第(e)步;

(c)执行动态库中的函数,每一个动态库里只有一个函数,记录返回结果,进入下一步;

(d)判断返回结果,如果成功,进入第(e)步;如果失败,记录错误,结束;

(e)记录成功,结束。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1