富客户端的文件断点续传方法及系统的制作方法

文档序号:7719922阅读:146来源:国知局
专利名称:富客户端的文件断点续传方法及系统的制作方法
技术领域
本发明涉及web应用中的文件传输领域,尤其涉及一种富客户端的文件断点续传 方法及系统。
背景技术
在传统的web应用中,一般采用的是被称为“瘦客户端”的B/S软件体系结构,即 在客户端不必安装专门的软件,只需要一个浏览器即可,业务逻辑都由服务器处理。在这种 应用环境下,用户上传文件时一次只能选择一个文件,然后再点击相应的上传按钮。若是上 传多个文件,需要重复操作多次,操作不便;如果网络环境不好,往往在上传到一定比例时 失败,再次上传时需要重新开始,既浪费网络资源又浪费时间和精力。最近几年,业界提出了“富客户端”的概念。富客户端将类似Windows应用的更多 功能引入到web应用中,使web应用的用户体验达到或接近Windows应用的效果。现有的 富客户端技术大致可分为两类AJAX技术,这种技术归根到底是DOM+CSS+Jav必cript的组 合技术,解决了页面整体提交、刷新以及页面内交互操作的问题;SilverLight、Flex等浏 览器插件技术,丰富了用户体验和交互,提供用户上下文安全的文件操作功能。但是,由于 浏览器或富客户端组件受到“安全限制”的制约,即,要保证“客户端安全”,所以在没有用户 “显示”操作的情况下,浏览器或富客户端组件不能操作客户端本地文件(包括列举文件、 读写文件),因而在文件传输中断之后仍然需要重新开始传输整个文件,而不能进行断点续 传。也就是说,在由于网络环境差或者关闭web页面等原因导致文件传输中断的情况下,由 于安全性原因,不能对客户端文件进行读写,从而导致不能实现文件的断点续传,而只能重 新开始传输整个文件。为了解决现有富客户端技术中的文件传输问题,诸如mofile网络硬盘、web迅 雷等采用浏览器插件技术来实现富客户端的文件断点续传,具体地讲,通过插件(OCX或 firefox插件)扩展浏览器功能来对客户端文件进行读写,从而实现文件的断点续传。但 是,mofile、web迅雷等构建的是一个比较封闭的系统,其客户端专门负责客户端文件的读 写,其服务端专门负责服务端文件的存储,而对于客户端和服务端之间的文件传输过程并 不进行监测和控制,从而导致无法掌控整个文件传输过程,在出现网络故障等原因中断文 件传输的情况下不能有效率地进行续传,从而使得文件传输成功率和传输效率降低。具体 地讲,web迅雷专注于客户端下载过程,文件下载服务器由各个服务商提供,因此,web迅雷 无法对多个服务端提“传输控制”等特殊要求,这些服务端也不对web迅雷客户端进行监测 和控制等特殊处理。因而,web迅雷不能结合服务端对文件传输过程进行监控。基于类似 的考虑,mofile专注于存储和共享,直接通过web服务器对文件传输进行控制,也不结合文 件服务端对整个传输过程进行监控。此外,现有的富客户端技术仍具有传统web应用中传输文件的多项限制,例如,传 输文件只能单选、客户端无法过滤文件类型、文件大小受限制、传输成功率受网络影响大、 传输效率低等。

发明内容
为了解决现有技术中存在的上述问题,本发明提供一种富客户端的文件断点续传 方法及系统,以通过直接对客户端文件进行操作来实现富客户端的文件断点续传,并对整 个文件传输过程进行监测和控制,从而提高文件传输成功率和传输效率。根据本发明的一方面,提供一种富客户端的文件断点续传系统,该系统包括客户 端,包括内嵌于web页面的ActiveX控件,该ActiveX控件定点读写客户端文件;和服务端, 包括文件服务模块和web应用模块,文件服务模块定点读写服务端文件,与客户端ActiveX 控件断点传输文件数据,web应用模块协调客户端ActiveX控件和服务端文件服务模块在 文件数据传输过程中完成应用相关的业务处理。根据本发明的另一方面,提供一种富客户端的文件断点续传方法,该方法包括以 下步骤客户端ActiveX控件向服务端web应用模块发送文件传输请求,并获取传输控制数 据;客户端ActiveX控件根据传输控制数据与服务端文件服务模块断点传输文件数据;和 客户端ActiveX控件或服务端web应用模块根据传输控制数据执行文件验证。所述传输控制数据包括客户端文件全路径、文件大小、文件块大小、各文件块传输 状态和文件摘要。本发明在客户端使用IE浏览器支持的ActiveX控件,因而不受到“安全限制” 的制约,可直接操作客户端文件,从而可实现富客户端的文件断点续传过程。通过客户端 ActiveX控件与服务端web应用模块之间的交互以及服务端web应用模块对服务端文件 服务模块的控制,实现对文件传输整个过程的监测和控制,从而极大地提高文件传输成功 率和传输效率。具体地讲,当文件传输中断之后再次启动传输过程时,根据传输控制数据, 获知被中断的文件块和未传输的文件块,通过服务端web应用模块协调客户端ActiveX 控件和服务端文件服务模块完成这些文件块的传输,从而实现文件断点续传。此外,由于 ActiveX控件可实现Win32程序的所有功能,所以本发明可实现多选文件、自动过滤文件类 型、自动启动文件传输等富客户操作,为用户提供了 Windows应用级别的客户端操作体验。


图1是根据本发明的富客户端的文件断点续传系统的框图。图2是根据本发明的富客户端的文件断点上传过程的流程图。图3是根据本发明的富客户端的文件断点下载过程的流程图。
具体实施例方式在本发明中,使用IE浏览器支持的ActiveX控件来实现对客户端文件的操作,使 用客户端ActiveX控件和服务端web应用模块之间的交互以及服务端web应用块对服务端 文件服务模块的控制来实现文件断点续传。作为业务应用来说,IE浏览器支持的ActiveX 控件的使用是建立在客户端对web应用的信任(也就是控件的信任)的基础上的,所以 ActiveX控件不存在浏览器或富客户端组件所面临的“安全限制”的制约,可直接对客户端 文件进行操作,从而实现富客户端的文件断点续传。以下,将参考附图详细描述根据本发明的富客户端的文件断点续传方法及系统。这里,文件断点续传包括定点读取客户端文件并将其断点上传到服务端的过程和定点读取 服务端文件并将其断点下载到客户端的过程。参考图1,根据本发明的富客户端的文件断点续传系统包括客户端,包括内嵌于 web页面的ActiveX控件10 ;服务端,包括web应用模块12和文件服务模块14。在将客 户端ActiveX控件10嵌入web页面时,配置ActiveX控件的属性,包括web应用程序协调 URL、文件数据传输方式(http或ftp)、http文件服务程序URL或ftp文件服务相关信息、 文件标识(或未创建文件)等。客户端ActiveX控件10定点读写客户端文件。服务端文 件服务模块14定点读写服务端文件,与客户端ActiveX控件10断点传输文件数据。服务 端web应用模块12协调客户端ActiveX控件10和服务端文件服务模块14在文件数据传 输过程中完成应用相关的业务处理。具体地讲,在文件断点上传过程中,客户端ActiveX控件10向服务端web应用模 块12发送上传文件和下载传输控制数据的请求,根据从服务端web应用模块12接收的传 输控制数据定点读取客户端文件块,并将这些文件块上传到服务端文件服务模块14 ;服务 端web应用模块12响应于从客户端ActiveX控件10接收的上传文件的请求创建传输控制 数据文件,响应于从客户端ActiveX控件10接收的下载传输控制数据的请求将传输控制数 据发送到客户端ActiveX控件10,更新文件块传输状态,对上传成功的文件进行验证;服务 端文件服务模块14响应于客户端ActiveX控件10的上传请求将客户端ActiveX控件10 断点上传的文件块定点写入服务端。在文件断点下载过程中,客户端ActiveX控件10向服务端web应用模块12发送 下载文件的请求,根据服务端web应用模块12的回复在本地创建传输控制数据文件,根据 传输控制数据向服务端文件服务模块14请求下载文件,将服务端文件服务模块14断点下 载的文件块定点写入到客户端,更新文件块传输状态,并对下载成功的文件进行验证;服务 端web应用模块12响应于客户端ActiveX控件10的下载请求将文件相关信息作为所述回 复发送到客户端ActiveX控件10,协调客户端ActiveX控件10和服务端文件服务模块14 完成断点下载;服务端文件服务模块14响应于从客户端ActiveX控件10接收的下载请求 定点读取服务端文件块并将其下载到客户端ActiveX控件10。图2是根据本发明的富客户端的文件断点上传方法的流程图。参考图2,该断点上 传方法包括以下步骤(1)在步骤SiOO中,客户端ActiveX控件向服务端web应用模块发送上传文件的 请求,请求信息包括客户端文件全路径、文件大小和文件摘要。在步骤S102中,服务端web 应用模块根据从客户端ActiveX控件接收的请求信息创建传输控制数据文件,该传输控制 数据文件包括客户端文件全路径、文件大小、文件摘要、文件块大小、各文件块传输状态等 信息,并在步骤S104中将文件标识返回给客户端ActiveX控件。文件块传输状态用0或1 标识,表示该文件块是否传输完毕。(2)在步骤S106中,客户端ActiveX控件向服务端文件服务模块发送上传文件的 通知,通知信息包括文件标识和文件大小。在步骤S108中,服务端文件服务模块向客户端 ActiveX控件发送成功与否的回复。(3)在步骤SllO中,客户端ActiveX控件向服务端web应用模块发送下载传输控 制数据的请求,请求信息包括文件标识。在步骤S112中,服务端web应用模块根据接收的文件标识将传输控制数据返回到客户端ActiveX控件。(4)在步骤Sl 14中,客户端ActiveX控件根据从服务端web应用模块接收的传输 控制数据检查各文件块传输状态,并确定是否还有未上传的文件块。如果还有未上传的文 件块,则重复执行步骤S116至步骤SU8。否则,执行步骤S130至步骤S134。(5)在步骤S116中,客户端ActiveX控件根据控制传输数据定点读取当前将上 传的文件块,并在步骤S118中根据传输控制数据向服务端文件服务模块请求上传当前文 件块数据,请求信息包括文件标识、文件块位置、文件块大小。在步骤S120中,服务端文 件服务模块根据接收的请求信息将当前文件块数据写入服务端文件,并在步骤S122中向 ActiveX控件发送成功与否的回复。(6)在步骤SlM中,客户端ActiveX控件通知服务端web应用模块文件块传输成 功,通知信息包括文件标识、文件块位置和文件块大小。在步骤SU6中,服务端web应用程 序更新文件块传输状态,具体地讲,将文件块传输状态由未传输(0)变为已传输(1),并在 步骤SU8中向客户端ActiveX控件发送成功与否的回复。(7)在步骤S130中,客户端ActiveX控件通知服务端web应用模块文件传输完毕, 通知信息包括文件标识。在步骤S132中,服务端web应用模块根据传输控制数据中的文 件摘要对文件进行验证,若通过验证,则更新文件传输状态,做相应的清理工作,并在步骤 S134中向客户端ActiveX控件发送成功与否的回复。(8)最后,客户端ActiveX控件根据服务端web应用模块的回复做相应的传输结果 展不。如果在上述过程中发生错误或者在上述过程中返回未成功的回复,那么再次启动 上传过程时,从步骤SllO开始,即,客户端ActiveX控件再次向服务端web应用模块发送下 载传输控制数据的请求,根据传输控制数据中的文件块传输状态,获知各文件块是否已上 传完毕以及未上传的块。然后,客户端ActiveX控件根据从web应用模块接收的传输控制 数据读取被中断的文件块并重新上传该文件块和后面的未上传的文件块。这样,根据传输 控制数据,通过web应用协调客户端和服务端,对整个文件断点上传过程进行监测和控制, 从而极大地提高传输成功率和传输效率。图3是根据本发明的富客户端的文件断点下载方法的流程图。参考图3,该断点下 载方法包括以下步骤(1)在步骤S200中,客户端ActiveX控件向服务端web应用模块发送下载文件的 请求,请求信息包括文件标识。在步骤S202中,服务端web应用模块向客户端ActiveX控 件发送文件大小、文件块大小和文件摘要;(2)在步骤S204中,客户端ActiveX控件根据从服务端web应用模块接收的回复 在本地创建传输控制数据文件,该传输控制数据文件包括客户端文件全路径、文件大小、文 件块大小、各文件块传输状态和文件摘要;(3)在步骤S206中,客户端ActiveX控件根据本地创建的传输控制数据检查各文 件块传输状态,并确定是否还有未下载的文件块。如果还有未下载的文件块,则重复执行步 骤S208至步骤S218。否则,执行步骤S220至步骤S2M ;(4)在步骤S208中,客户端ActiveX控件根据传输控制数据向服务端文件服务模 块发送下载文件块的请求,请求信息包括文件标识、文件块位置和文件块大小。在步骤S210中,服务端文件服务模块响应于下载请求定点读取服务端文件块,并在步骤S212中,将读 取的服务端文件块发送给客户端ActiveX控件;(5)在步骤S214中,客户端ActiveX控件将接收的文件块定点写入客户端文件,并 更新文件块传输状态;(6)在步骤S216中,客户端ActiveX控件向服务端web应用模块发送文件块下载 成功通知,通知信息包括文件标识、文件块位置和文件块大小。在步骤S218中,服务端web 应用模块向客户端ActiveX控件发送成功与否的回复;(7)在步骤S220中,客户端ActiveX控件根据传输控制数据中的文件摘要对下载 的文件进行验证。若验证成功,则删除本地创建的传输控制数据文件;(8)在步骤S222中,客户端ActiveX控件向服务端web应用模块发送文件下载完 毕通知,通信信息包括文件标识。在步骤S2M中,服务端web应用模块向客户端ActiveX 控件返回成功与否的回复。(9)最后,客户端ActiveX控件做下载结果展示。如果在上述过程中发生错误或者在上述过程中返回未成功的回复,那么再次启动 下载过程时,从步骤S206开始,即,客户端ActiveX控件根据本地创建的传输控制数据检查 各文件块传输状态,并确定是否还有未下载的文件块。如果还有未下载的文件块,则重新下 载这些文件块。与文件断点上传过程一样,根据传输控制数据,通过web应用协调客户端和 服务端,对整个文件断点下载过程进行监测和控制,从而极大地提高传输成功率和传输效 率。从上可看出,无论是断点上传还是断点下载,概括而言,根据本发明的文件断点续 传方法主要包括以下步骤步骤a、客户端ActiveX控件向服务端web应用模块发送文件传输请求,并获取传 输控制数据;步骤b、客户端ActiveX控件根据传输控制数据与服务端文件服务模块断点传输 文件数据;和步骤C、客户端ActiveX控件或服务端web应用模块根据传输控制数据执行文件验 证。而且,由于ActiveX控件的操作能力等同于Win32程序,可实现Win32程序的所有 功能,因此,在本发明中,可实现传输文件的多选和自动启动传输等富客户操作。此外,在现有的web ajax技术中只能在用户选择文件之后判断该文件的文件类 型,因此不能预先自动过滤文件类型。但是,在本发明中,通过给ActiveX控件配置一个扩 展名属性,该ActiveX控件就可根据这个属性设置文件选择对话框可选的文件类型,这样 在用户选择文件前就已经对文件类型进行过滤。也就是说,根据本发明的富客户端的文件 断点续传方法可根据配置自动过滤文件类型。通过以上实施例可看出,由于在客户端使用了 IE浏览器支持的ActiveX控件, 因此可直接对客户端文件进行操作。具体地讲,由于IE浏览器支持ActiveX控件,所以 ActiveX控件不受“客户端安全限制”的制约,因此可在网页中“记忆”客户端本地文件全 路径,然后根据这个路径将文件进行分块读写,从而实现富客户端的文件断点续传。而且, 在整个文件传输过程中,根据传输控制数据,通过web应用协调客户端和服务端,可实现对整个文件传输过程的监测和控制,从而提高文件传输成功率和传输效率。此外,根据本发明 的富客户端的文件断点续传方法及系统突破了传统web页面传输文件的多项限制,提供了 Windows应用级别的富客户端操作体验,例如可多选文件、自动过滤文件类型、自动启动传输等。 但是,应该理解,本发明不限于所公开的实施例,任何类似的修改和替换都应包括 在本发明中。例如,所述传输控制数据的内容不限于实施例所公开的内容,可包括控制所需 的任何信息。传输这些传输控制数据的格式和方式可采用任何已知的格式和方式。本发明 的文件断点续传方法及系统可支持任何传输协议,不限于实施例中所公开的http和ftp传 输协议。
权利要求
1.一种富客户端的文件断点续传系统,其特征在于,该系统包括客户端,包括内嵌于web页面的ActiveX控件,该ActiveX控件定点读写客户端文件;和服务端,包括文件服务模块和web应用模块,文件服务模块定点读写服务端文件,与客 户端ActiveX控件断点传输文件数据,web应用模块协调客户端ActiveX控件和服务端文 件服务模块在文件数据传输过程中完成应用相关的业务处理。
2.根据权利要求1所述的富客户端的文件断点续传系统,其特征在于,在文件断点上传过程中,客户端ActiveX控件向服务端web应用模块发送上传文件和下载传输控制数据的请 求,根据从服务端web应用模块接收的传输控制数据定点读取客户端文件块,并将这些文 件块上传到服务端文件服务模块;服务端web应用模块响应于从客户端ActiveX控件接收的请求创建传输控制数据文件 并将传输控制数据发送到客户端ActiveX控件,并对上传成功的文件进行验证;服务端文件服务模块响应于客户端ActiveX控件的上传请求将客户端ActiveX控件断 点上传的文件块定点写入服务端。
3.根据权利要求1所述的富客户端的文件断点续传系统,其特征在于,在文件断点下载过程中,客户端ActiveX控件向服务端web应用模块发送下载文件的请求,根据服务端web应 用模块的回复在本地创建传输控制数据文件,根据传输控制数据向服务端文件服务模块请 求下载文件,将服务端文件服务模块断点下载的文件块定点写入到客户端,并对下载成功 的文件进行验证;服务端web应用模块响应于客户端ActiveX控件的下载请求将文件相关信息作为所述 回复发送到客户端ActiveX控件,协调客户端ActiveX控件和服务端文件服务模块完成断 点下载;服务端文件服务模块响应于从客户端ActiveX控件接收的下载请求定点读取服务端 文件块并将这些文件块下载到客户端ActiveX控件。
4.一种根据权利要求1所述的富客户端的文件断点续传系统的文件断点续传方法,其 特征在于,该方法包括以下步骤步骤a、客户端ActiveX控件向服务端web应用模块发送文件传输请求,并获取传输控 制数据;步骤b、客户端ActiveX控件根据传输控制数据与服务端文件服务模块断点传输文件 数据;和步骤C、客户端ActiveX控件或服务端web应用模块根据传输控制数据执行文件验证。
5.根据权利要求4所述的文件断点续传方法,其特征在于,所述传输控制数据包括客户端文件全路径、文件大小、文件块大小、各文件块传输状态 和文件摘要。
6.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点上传过程中,在步骤a中,服务端web应用模块根据从客户端ActiveX控件 接收的客户端文件全路径、文件大小和文件摘要创建传输控制数据文件,并响应于客户端ActiveX控件的下载传输控制数据的请求将传输控制数据发送给客户端ActiveX控件。
7.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点上传过程中,在步骤b中,客户端ActiveX控件根据传输控制数据检查各文 件块传输状态,定点读取客户端文件块,将未上传的文件块上传到服务端文件服务模块;服 务端文件服务模块将这些文件块定点写入服务端文件;服务端web应用模块响应于客户端 ActiveX控件的文件块上传成功通知来更新文件块传输状态。
8.根据权利要求7所述的文件断点续传方法,其特征在于,在步骤b中,当文件上传中断后再次启动上传时,客户端ActiveX控件重新向服务端 web应用模块请求下载传输控制数据,并根据下载的传输控制数据重新上传被中断的文件 块和未上传的文件块。
9.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点上传过程中,在步骤c中,响应于客户端ActiveX控件的文件上传完毕通 知,服务端web应用模块根据传输控制数据中的文件摘要对上传成功的文件进行验证并更 新文件传输状态。
10.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点下载过程中,在步骤a中,客户端ActiveX控件根据从服务端web应用模块 接收的文件大小、文件块大小和文件摘要在本地创建传输控制数据文件。
11.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点下载过程中,在步骤b中,客户端ActiveX控件根据传输控制数据检查各文 件块传输状态并请求服务端文件服务模块下载未下载的文件块,服务端文件服务模块将未 下载的文件块下载到客户端ActiveX控件;客户端ActiveX控件将这些文件块定点写入客 户端文件,并更新文件块传输状态。
12.根据权利要求11所述的文件断点续传方法,其特征在于,在步骤b中,当文件下载中断后再次启动下载时,根据传输控制数据文件中的传输控 制数据重新下载被中断的文件块和未下载的文件块。
13.根据权利要求5所述的文件断点续传方法,其特征在于,在文件断点下载过程中,在步骤c中,客户端ActiveX控件根据传输控制数据中的文件 摘要对下载的文件进行验证。
全文摘要
本发明提供一种富客户端的文件断点续传方法及系统。所述系统包括客户端和服务端,客户端包括内嵌于web页面的ActiveX控件,服务端包括文件服务模块和web应用模块。ActiveX控件定点读写客户端文件,文件服务模块定点读写服务端文件,与ActiveX控件断点传输文件数据,web应用模块协调ActiveX控件和文件服务模块在文件数据传输过程中完成应用相关的业务处理。所述文件断点续传方法包括ActiveX控件向web应用模块发送文件传输请求,并获取传输控制数据;ActiveX控件根据传输控制数据与文件服务模块断点传输文件数据;ActiveX控件或web应用模块根据传输控制数据执行文件验证。本发明通过ActiveX控件和web应用,实现富客户端的文件断点续传过程及其监测和控制,极大地提高文件传输成功率和传输效率。
文档编号H04L29/06GK102055784SQ20091023715
公开日2011年5月11日 申请日期2009年11月6日 优先权日2009年11月6日
发明者朱建波, 李明珠 申请人:北京北大方正电子有限公司, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1