一种文件接口系统的制作方法

文档序号:11233847阅读:243来源:国知局

本发明涉及文件接口开发领域,尤其涉及一种文件接口系统。



背景技术:

现有的文件接口系统,其文件接口调度策略都是由crontab管理,具有以下缺点:

1、每当遇到一级客服文件接口需求时,开发人员都需要重新编写相同的代码,复用率低;

2、文件接口调度策略由crontab管理,导致crontab配置文件过多十分混乱,且执行顺序容易出错;

3、操作日志存储混乱,不利于监控,缺乏统一的管理方案;

4、文件接口没有统一的技术规范,接口程序技术架构混乱,上线后维护困难。



技术实现要素:

本发明所要解决的技术问题是针对现有技术的不足,提供一种文件接口系统。

本发明解决上述技术问题的技术方案如下:

一种文件接口系统,包括主函数模块和函数库,其中:

所述主函数模块用于获取接口编号,根据所述接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,并根据所述函数库名加载相应的函数库;

所述函数库用于存储封装过的功能模块,并根据所述执行步骤执行相应的功能模块。

本发明的有益效果是:本发明提供的一种文件接口系统,包括主函数模块和函数库,并通过主函数模块获取接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,并根据函数库名加载相应的函数库,调用函数库中存储的功能模块,实现不同的文件接口功能,该系统具有以下优点:

当遇到一级客服文件接口需求时,开发人员不需要重新编写相同的代码,代码复用率高;

解决文件接口调度策略由crontab来管理,导致crontab配置文件过多十分混乱,且执行顺序容易出错的问题,将调度策略改为可配置,可以动态灵活按配置步骤顺序执行;

文件接口技术规范统一,维护人员仅需掌握sqlplus、sqlldr工具使用方式就可以达到维护的目的,维护方便。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步地,所述功能模块包括:

采集模块,用于采集客服数据,并将所述客服数据写入接口表。

进一步地,所述功能模块还包括:

生成模块,用于从所述接口表中读取所述客服数据,并从所述接口参数配置表中读取文件命名规则,将所述接口表中的客服数据按所述文件命名规则生成客服文件,并将所述客服文件存储到文件目录下。

进一步地,所述功能模块还包括:

传输模块,用于传输所述客服文件。

进一步地,所述传输模块包括:

上传单元,用于将所述客服文件上传到上级服务器;

下载单元,用于将所述上级服务器中的文件下载到本地服务器。

进一步地,所述功能模块还包括:

扫描入库模块,用于扫描所述客服文件,判断是否存在符合所述文件命名规则的客服文件,并将所述客服文件中的客服数据写入实体表中。

进一步地,所述扫描入库模块包括:

扫描单元,用于扫描文件目录下是否存在符合所述文件命名规则的客服文件,如果不存在则发出警告信息;

入库单元,用于当文件目录下存在符合所述文件命名规则的客服文件时,判断所述客服文件是否配置了入库前存储过程,如果配置了,则调用所述入库前存储过程,对所述接口表进行清理或初始化,并将所述客服文件导入到所述接口表中,并判断所述客服文件是否配置了入库后存储过程,如果配置了,则输出所述接口表中的客服文件到实体表。

进一步地,所述功能模块还包括:

后台程序启动模块,用于获取需要执行的后台程序,并直接启动所述后台程序。

进一步地,所述功能模块还用于当所述函数库在根据所述执行步骤执行相应的功能模块时,自动生成相应功能模块的操作日志,并存储在数据库日志表中。

采用上述进一步方案的有益效果是:解决日志存储混乱的不利于监控的问题,将程序执行结果输出到数据库或文件服务器,输出成统一格式的日志,便于根据执行结果添加监控和告警。

进一步地,所述主函数模块和所述功能模块均为shell脚本。

进一步地,所述功能模块可以根据需求进行增加或删除。

进一步地,所述函数库名为函数库的版本,所述函数库的版本不同,其库内的功能模块数量和类型也可以不同。

本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。

附图说明

图1为本发明实施例提供的一种文件接口系统的结构框架图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,为本发明实施例提供的一种文件接口系统的结构框架图,该系统包括主函数模块110和函数库120,其中:

主函数模块110用于获取接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,并根据函数库名加载相应的函数库120,其中,接口编号是接口的唯一标识,在待接入接口的程序启动时传入,函数库名就是接口编号所对应的文件接口所要加载的函数库120的版本信息,执行步骤就是接口编号所对应的文件接口要执行的功能模块的步骤;

函数库120用于存储封装过的功能模块,并根据执行步骤执行相应的功能模块,开发者需要将公共代码封装成shell脚本函数库120,并将shell脚本函数库120以脚本文件的形式上传至服务器,然后将函数库名写入接口参数配置表与接口编号对应的字段。

例如,当接口编号为0001时,执行步骤op_step的字段值为4,1,2,3,主函数读取需要调用的模块为生成模块、扫描入库模块和传输模块,所需要执行的顺序为:

开始→上传/下载→扫描文件→解析入库→生成文件→结束。

上述调用的模块和需要执行的步骤可以根据实际需求自由配置,其执行的模块顺序和数量、执行的功能顺序和数量没有固定地限制。

上述实施例提供的一种文件接口系统,包括主函数模块110和函数库120,并通过主函数模块110获取接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,并根据函数库名加载相应的函数库120,调用函数库120中存储的功能模块,实现不同的文件接口功能,该系统具有以下优点:

当遇到一级客服文件接口需求时,开发人员不需要重新编写相同的代码,代码复用率高;

解决文件接口调度策略由crontab来管理,导致crontab配置文件过多十分混乱,且执行顺序容易出错的问题,将调度策略改为可配置,可以动态灵活按配置步骤顺序执行;

文件接口技术规范统一,维护人员仅需掌握sqlplus、sqlldr工具使用方式就可以达到维护的目的,维护方便。

进一步,功能模块具体包括:

采集模块121,用于通过sql脚本采集客服数据,并将客服数据写入接口表,其中,sql脚本为业务模块,由开发者预先写好。

采集模块121需要从接口参数配置表中读取以下数据:

接口编号:接口的唯一标识,在待接入接口的程序启动时传入;

文件命名规则:客服文件的文件命名规则;

文件名:客服文件的文件名格式;

文件类型:根据文件类型生成不同的文件头和文件名后缀;

接口表:存储采集到的客服数据;

文件内容分隔符:内容分隔符,通常情况下分隔符为‘|’;

文件头检验规则:检测文件头是否存在;

校验文件检验规则:检测校验文件是否存在;

文件命名规则检验规则:检测文件命名规则是否正确;

采集数据用存储过程:主函数模块110要调用采集数据用存储过程来采集客服数据,将采集好的客服数据写入到接口表中。

生成模块122,用于从接口表中读取客服数据,客服数据可以为采集模块121采集到的数据,或预存于接口表中的数据,并从接口参数配置表中读取文件命名规则,通过sqlplus脚本将接口表中的客服数据按文件命名规则生成客服文件,并将客服文件存储到磁盘文件的文件目录下,其中,sqlplus脚本为业务模块,由开发者预先写好。

传输模块123,用于通过ftp脚本传输客服文件,其中,ftp脚本为业务模块,由开发者预先写好,传输模块123具体包括:

上传单元,用于将客服文件上传到上级服务器;

下载单元,用于将上级服务器中的文件下载到本地服务器。

传输模块123还需要从接口参数配置表中读取以下数据:

ip地址、端口号:远程要访问的上级服务器的主机ip地址和端口号;

登录用户名、密码:上级服务器的主机的登录用户名和密码;

远程路径:上级服务器的主机存放文件的路径和位置;

本地路径:本地服务器的主机存放文件的路径和位置;

操作类型:上传或下载。

扫描入库模块124,用于扫描客服文件,判断是否存在符合文件命名规则的客服文件,并将客服文件中的客服数据写入实体表中,扫描入库模块124具体包括:

扫描单元,用于扫描文件目录下是否存在符合文件命名规则的客服文件,如果不存在则发出警告信息;

入库单元,用于当文件目录下存在符合文件命名规则的客服文件时,判断客服文件是否配置了入库前存储过程,如果配置了,则调用入库前存储过程,对接口表进行清理或初始化,并调用sqlldr脚本将客服文件导入到接口表中,并判断客服文件是否配置了入库后存储过程,如果配置了,则输出接口表中的客服文件到实体表。

扫描入库模块124还需要从接口参数配置表中读取以下数据:

扫描文件告警短息发送规则:当客服文件不存在时,判断是否需要下发告警短信;

控制文件:将客服文件导入到接口表时要用到的sqlldr脚本;

入库前存储过程:该字段是存储过程名,如果该字段配置了相应的存储过程名,则客服文件导入到接口表之前,主函数模块110会调用此存储过程来完成初始化的动作;

入库后存储过程:该字段是存储过程名,如果该字段配置了相应的存储过程名,则在客服文件导入到接口表时,主函数模块110会调用此存储过程来执行导入操作。

后台程序启动模块125,用于获取需要执行的后台程序,并通过主函数模块110调用shell脚本直接启动后台程序。

后台程序启动模块125还需要从接口参数配置表中读取以下数据:

后台程序名:主函数模块110启动时后台程序的文件名。

进一步,功能模块还用于当函数库120在根据执行步骤执行相应的功能模块时,自动生成相应功能模块的操作日志,并存储在数据库日志表中。

进一步,主函数模块110和功能模块均为shell脚本。

进一步,功能模块可以根据需求进行增加或删除,例如,还可以增加监控检测模块,用于对文件接口系统的故障进行监控和监测,并及时反馈故障。

进一步,函数库名为函数库120的版本,函数库120的版本不同,其库内的功能模块数量和类型也可以不同,例如,当函数库名为函数库2.0时,其功能模块可以包括采集模块121、生成模块122和传输模块123;当函数库名为函数库3.0时,其功能模块可以包括采集模块121、生成模块122、传输模块123、扫描入库模块124和后台程序启动模块125。

本申请提供的另一种实施例如下:

以调用采集模块的功能为例,对本发明进行进一步的解释与说明。

启动主函数模块,初始化文件接口系统,加载系统初始化的配置参数;

获取配置参数中的接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,执行步骤为只执行采集模块;

根据函数库名加载函数库,调用采集模块;

根据接口编号查找采集数据需要用的采集数据用存储过程;

根据采集数据用存储过程,将统计、分析后形成的客服数据按照文件内容分隔符写入到接口表中,例如,接口表中的数据可以为1|02|20160909|001001|03|02|01…..;

将采集数据的操作日志记录到数据库日志表中。

本申请提供的另一种实施例如下:

以调用生成模块的功能为例,对本发明进行进一步的解释与说明。

启动主函数模块,初始化文件接口系统,加载系统初始化的配置参数;

获取配置参数中的接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,执行步骤为只执行生成模块;

根据函数库名加载函数库,调用生成模块;

根据接口编号从接口参数配置表中调用接口表、文件命名规则和sqlplus脚本;

通过sqlplus脚本将接口表中的客服数据按文件命名规则生成客服文件;

将客服文件存储到磁盘文件的文件目录下;

将生成模块的操作日志记录到数据库日志表中。

本申请提供的另一种实施例如下:

以调用传输模块的功能为例,对本发明进行进一步的解释与说明。

启动主函数模块,初始化文件接口系统,加载系统初始化的配置参数;

获取配置参数中的接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,执行步骤为只执行传输模块;

根据函数库名加载函数库,调用传输模块;

读取接口文件配置表中的操作类型,如果是上传操作,则执行上传单元,根据ip地址和端口号访问上级服务器,按照远程路径上传客服文件;

如果是下载操作,则执行下载单元,根据ip地址和端口号访问上级服务器,根据登录用户名和密码登录上级服务器中的主机,从主机中获取需要下载的文件,将文件按照本地路径存储到本地服务器中;

将传输模块的操作日志记录到数据库日志表中。

本申请提供的另一种实施例如下:

以调用扫描入库模块的功能为例,对本发明进行进一步的解释与说明。

启动主函数模块,初始化文件接口系统,加载系统初始化的配置参数;

获取配置参数中的接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,执行步骤为只执行扫描入库模块;

根据函数库名加载函数库,调用扫描入库模块;

扫描文件目录下是否存在符合文件命名规则的文件;

如果不存在,根据扫描文件告警短息发送规则判断是否需要下发告警短信,如果需要下发告警短信,则根据接口编号和预留号码下发告警短信;

如果存在则继续执行入库单元;

根据文件命名规则判断客服文件是否存在,如果存在且客服文件配置了入库前存储过程,则调用入库前存储过程,对接口表进行清理或初始化;

调用sqlldr脚本将客服文件导入到接口表中;

如果配置了入库后存储过程,则输出接口表中的客服文件到实体表;

将扫描入库模块的操作日志记录到数据库日志表中。

本申请提供的另一种实施例如下:

以调用后台程序启动模块的功能为例,对本发明进行进一步的解释与说明,需事先将需要执行的后台程序上传到指定目录下,指定目录由开发人员事先定义;

启动主函数模块,初始化文件接口系统,加载系统初始化的配置参数;

获取配置参数中的接口编号,根据接口编号从接口参数配置表中读取需要调用的函数库名和执行步骤,执行步骤为只执行后台程序启动模块;

根据函数库名加载函数库,调用后台程序启动模块;

读取接口参数配置表中的start_backrun字段;

根据start_backrun字段获取需要执行的后台程序名;

通过shell脚本直接启动后台程序;

将后台程序启动模块的操作日志记录到数据库日志表中。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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