一种文件传输的方法与系统与流程

文档序号:16007895发布日期:2018-11-20 20:17阅读:138来源:国知局

本发明属于信息技术领域,具体涉及一种在非直通网络下进行文件传输的方法与系统。



背景技术:

计算机网络的一大特点是实现应用系统间信息共享,文件传输是信息共享中十分重要的内容之一,它实现了数据的交互,完成了数据交换的贯通目标。与此同时,应用系统之间交互的文件大小也与日俱增,对交互的业务系统之间的文件传输效率、稳定性需求的要求越来越高,应用系统间亟需一套安全、高效、可靠的文件传输解决方案。

文件传输已有的技术方案大多是点对点传输,要求文件传输发送端和接收端的应用系统在直通网络环境中,但实际情况中,很多应用系统间会基于安全原因,通过网闸等硬件设备将网络环境隔断为非直通网络,因此,现有通用的点对点传输方案不适用于非直通网络,应用系统间需要一套能够打破非直通网络环境壁垒的文件传输方案。



技术实现要素:

发明目的:针对现有技术中存在的问题,本发明提供了一种在非直通网络中进行文件传输的方法,该方法可以实现处于非直通网络下的应用系统间文件的可靠、高效传输。

技术方案:本发明一方面提供了一种文件传输的方法,该方法适用于文件传输的发送端所处网络与接收端所处网络相互隔离的情况,包括如下步骤:

(1)构建文件间接传输网络,所述文件间接传输网络包括文件发送端接口、文件接收端接口、至少一个主控模型、多个转发模块;各转发模块与主控模块之间通过心跳信号保持长连接;文件发送端接口和文件接收端接口均与至少一个转发模块直接连接;应用系统的文件发送端和接收端分别与文件发送端接口和文件接收端接口连接;

(2)文件发送端接口根据待发送的文件信息生成控制信息,并将所述控制信息通过与文件发送端接口直接连接的转发模块发送至主控模块;所述控制信息包括任务标识、接收端标识;

(3)主控模块生成本次文件传输任务所经过的路由信息,并将路由信息和控制信息发送至传输路径上所有的转发模块;传输路径上的转发模块根据路由信息判断自身是否与相关模块建立连接,如没有建立连接,根据路由信息与相关模块建立临时连接;

(4)文件接收端接口收到路由信息和控制信息后启动接收,并通过与文件接收端接口直接连接的转发模块发回执至主控模块;

(5)主控模块通过转发模块通知文件发送端发送文件;文件发送端接口启动发送,传输路径上的各转发模块根据路由信息转发文件;

(6)文件接收端接口完成接收,并通过与文件接收端接口直接连接的转发模块发回执至主控模块;转发模块断开步骤(3)中建立的临时连接。

作为一种优选,文件发送端接口将待发送文件拆分为若干子文件,再对每一个子文件生成控制信息,所述控制信息的任务标识相同;所述控制信息还包括子文件序号、子文件总数;

步骤(3)中主控模块对每一个子文件的传输均生成路由信息;

步骤(6)中还包括文件接收端接口根据控制信息中的子文件序号合并文件。

进一步地,当一个子文件传输失败时,主控模块根据所述子文件传输对应的控制信息重新生成路由信息,传输路径上的转发模块根据新生成的路由信息重新建立临时连接,文件发送端接口和文件间接传输网络根据新的路由信息对所述子文件进行重发。

进一步地,所述文件间接传输网络中主控模块为主备双机系统。

进一步地,所述步骤(5)中还包括文件发送端接口对文件进行MD5摘要,并将生成的MD5摘要信息与文件一起发送;步骤(6)中文件接收端接口完成接收后,对文件进行MD5摘要,并将生成的MD5摘要信息与文件发送端接口生成的MD5摘要信息进行一致性校验,如果校验失败,通过转发模块发送失败结果,请求文件重发。

另一方面,本发明提供了一种文件传输的系统,包括文件发送端接口、文件接收端接口、至少一个主控模型和多个转发模块;转发模块与主控模块保持长连接;文件发送端接口和文件接收端接口均与至少一个转发模块直接连接;

所述文件发送端接口与文件发送端连接,用于发送文件、生成控制信息;所述控制信息包括任务标识、接收端标识;

所述文件接收端接口与文件接收端连接,用于接收文件并传递给应用系统;

所述主控模块配置有路由表,根据控制信息生成文件传输任务所经过的路由信息;

所述转发模块用于控制信息的转发,并根据路由信息建立临时连接来转发文件流。

有益效果:与现有技术相比,本发明公开的文件传输方法与系统通过构建文件间接传输网络,实现了处于非直通网络下的应用系统间文件的传输;在传输过程中,通过主控模块监控整个传输过程,保证文件传输的可靠和稳定。

附图说明

图1为本发明公开的文件传输方法的流程图;

图2为本发明公开的文件传输系统的架构示意图;

图3为实施例中控制信息的组成示意图;

图4为实施例中转发模块的软件架构示意图;

图5为实施例中主控模块的软件架构示意图。

具体实施方式

下面结合附图和具体实施方式,进一步阐明本发明。

一种文件传输的方法,所述文件传输的发送端所处网络与接收端所处网络相互隔离,如图1所示,包括如下步骤:

步骤1、构建文件间接传输网络,所述文件间接传输网络包括文件发送端接口、文件接收端接口、至少一个主控模型、多个转发模块;各转发模块与主控模块保持长连接;文件发送端接口和文件接收端接口均与至少一个转发模块直接连接;应用系统的文件发送端和接收端分别与文件发送端接口和文件接收端接口连接;

如图2所示,为文件间接传输网络的架构图,图中实线表示长连接,通过心跳信号来保持;虚线表示临时建立的连接。文件发送接口与应用系统的文件发送端连接,文件接收接口与应用系统的文件接收端连接。主控模块与所有的转发模块保持长连接,根据心跳信号,监控各转发模块的连接状态,主控模块内置路由表,针对各转发模块做可配置的负载均衡策略,具体采用对不同的转发模块设置开关或权重来影响路由的生成。

主控模块在架构中具有非常重要的地位,为了保证系统的高可靠性,可以采用主备双机系统的主控模块,双机系统对外显示为一个节点,内部为一主一备两个节点,备用节点在主节点工作时进入休眠模式,当检测到主节点故障时启动备用节点,保证了主控模块的可靠性。

步骤2、文件发送端接口根据待发送的文件信息生成控制信息,并将所述控制信息通过与文件发送端接口直接连接的转发模块发送至主控模块;所述控制信息包括任务标识、接收端标识;

在发送大文件的情况下,文件发送端接口中的文件拆分模块将待发送文件先拆分为若干子文件,再对每一个子文件生成控制信息。此时控制信息的格式如图3所示。

一个文件的传输认为是一个任务,当传输大文件时,拆分成多个子文件分别传输,这些子文件的传输隶属于同一任务,因此控制信息中的任务标识相同,此外为便于接收端进行文件合并,控制信息还包括子文件序号、子文件总数。

步骤3、主控模块生成本次文件传输任务所经过的路由信息,并将路由信息和控制信息发送至传输路径上所有的转发模块;传输路径上的转发模块根据路由信息判断自身是否与相关模块建立连接,如没有建立连接,根据路由信息与相关模块建立临时连接;

当文件发送端接口对文件做了拆分的情况下,主控模块对每一个子文件的传输均生成路由信息,这样将大文件的传输任务分解为多个子任务,实现了大文件的高效传输。

步骤4、文件接收端接口收到路由信息和控制信息后启动接收,并通过与文件接收端接口直接连接的转发模块发回执至主控模块;

步骤5、主控模块通过转发模块通知文件发送端发送文件;文件发送端接口启动发送,传输路径上的各转发模块根据路由信息转发文件;

步骤6、文件接收端接口完成接收,并通过与文件接收端接口直接连接的转发模块发回执至主控模块;转发模块断开步骤(3)中建立的临时连接;

如果发送端对文件进行了拆分,文件接收端接口中的文件合并模块根据控制信息中的子文件序号和子文件总数来对文件进行合并。当有某一子文件传输失败时,返回该子文件的相关信息给主控模块,主控模块根据所述子文件传输对应的控制信息重新生成路由信息,传输路径上的转发模块根据新生成的路由信息重新建立临时连接,文件发送端接口和文件间接传输网络根据新的路由信息对所述子文件进行重发。

为了对文件进行安全传输,本实施例中采用对文件在传输前后进行MD5摘要验证的方法来判断文件是否被篡改、是否需要重发。在文件发送端接口增加MD5摘要生成模块,文件接收端接口增加MD5摘要校验模块。步骤(5)中还包括MD5摘要生成模块对文件进行MD5摘要,并将生成的MD5摘要信息与文件一起发送;步骤(6)中文件接收端接口完成接收后,MD5摘要校验模块对文件进行MD5摘要,并将生成的MD5摘要信息与文件发送端接口生成的MD5摘要信息进行一致性校验,如果校验失败,通过转发模块发送失败结果,请求文件重发。通过采用MD5摘要及验证的步骤,防止文件在传输中被篡改,实现了安全可靠的传输。

在文件传输过程中,转发模块的主要作用是与主控模块、文件发送端接口、文件接收端接口保持连接、进行控制信息和文件流的转发,其处理速度直接影响到文件传输的效率。为实现高效传输,转发模块采用多线程实现,其内部分为两个线程池:线程池1中的线程负责管理文件发送端接口和文件接收端接口注册连接、心跳保持以及转发控制信息;线程池2中的线程负责转发文件流,如图4所示。

主控模块与各转发模块发生连接交互,其内部有一个线程池:线程池中的线程负责管理注册信息、路由表、心跳保持、控制信息的发送与接收、生成路由信息,如图5所示。

本发明公开的文件传输系统在部署时,文件发送端接口、文件接收端接口与应用系统集成部署在一起,方便应用系统进行文件发送或者接收操作;多个转发模块部署在多个服务器上,构建文件传输的路由通道;主控模块部署在主备服务器上,保障文件传输过程的稳定性。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得

在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

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