背景技术
目前互联网上下载的最大问题是速度慢,其次基于不同的传输协议有不同的下载流程(也称为下载逻辑)。用户往往头疼于下载速度慢,要使用不同的下载协议,下载任务中断后难于恢复,多个下载任务难于追踪和管理等问题。
因此,在下载过程中可能需要如下操作:
错误重连:当连接或下载过程中出现错误时,下载客户端主动地重新连接下载服务器。
断点续连:下载中断后,在传输协议和下载服务器支持的情况下,从中断点开始继续下载。
多点下载:把数据或程序分成多个片断用多个连接同时下载。
片断重组:多点下载接收到的各个数据或程序片断重新组合成完整的数据或程序。
多下载任务管理:管理多个下载任务的添加、修改、删除、开始、暂停以及优先级调整等。
这样下载任务基于某种传输协议,针对某个下载服务器上的某个数据或程序进行下载,并支持开始下载、停止下载、错误重连、断点续连、多点下载、片断重组等操作的任务。
请参照图1所示,现有技术中许多需要有下载的功能的下载应用程序A、B作为下载客户端1,通过自己的下载子模块实现各自专用的下载流程(因传输协议A、B不同)。这些下载子模块简单或复杂,但都作为其中的一个功能模块存在于下载应用程序A、B中,最终体现为各种应用。例如:带有自动升级的下载应用程序,该下载应用程序需要自己实现登陆到FTP或HTTP等下载服务器2下载升级程序到本地的下载子模块。如果要实现断点续连的功能,也必须自己实现断点续连的处理流程。该技术方案的缺点是每个下载应用程序都要实现各自专用的下载流程,无法相互调用;对很多下载任务的追踪和管理的操作也都需要自己提供具体解决方案。
另外,目前现有技术中有许多支持HTTP、FTP等多种流行的下载工具,比如流行的网络蚂蚁(NetAnts)、网际快车(FlashGet)等,实现一种支持多协议下载、多下载任务管理的专用下载工具。请参照图2所示,下载客户端1设置有这些专用下载工具10,该专用下载工具10包括有用于管理下载任务及查看下载信息的用户界面101、对下载任务进行管理的下载任务管理模块102、具有多种传输协议的协议模块103,其中协议模块103与下载服务器2直接通信并基于相应传输协议产生相应下载流程。用户界面101对下载任务管理模块102进行功能调用而下载任务管理模块102对协议模块103进行功能调用,同时协议模块103向下载任务管理模块102反馈下载信息,进而下载任务管理模块102向用户界面101反馈下载信息。
这样该专用下载工具10可以支持多种流行的下载协议;支持通过多点下载、片断重组来提高下载的速度;支持下载任务的错误重连、断点续连;维护下载任务列表,提供多个下载任务的添加、修改、删除、开始、暂停以及优先级调整等的管理功能;用户可以通过用户界面来方便地添加、修改、删除、开始、暂停下载任务,以及调整下载任务的优先级别;用户可以通过用户界面查看下载任务的属性、进度、状态等信息;以及通过一个用户界面来实现与用户交互。
但是这种专用下载工具的具体下载功能与用户交互表现集于同一应用程序中,处理复杂;用户被迫接受该专用下载工具提供的交互见面和交互模式;其他应用程序难以调用该专用下载工具如前述的下载应用程序A、B。
发明内容
本发明解决的问题是针对现有技术存在的不足,提供一种既可提高下载速度,又可便于管理及方便调的下载装置。
为解决上述问题,本发明网络下载装置包括:若干个用于用户进行界面管理的下载应用程序模块;与下载应用程序模块分离的一个通用下载服务模块,该模块提供统一的通用接口,允许所述若干个下载应用程序模块通过该通用接口与所述通用下载服务模块相连,该模块还直接与下载服务器进行通信和数据传输,以下载网络数据;所述通用下载服务模块包括:下载信息分发器,用于管理下载应用程序模块和将反馈的下载信息分发给相应的下载应用程序模块;下载任务管理器,用于管理若干下载任务并将接收到的下载信息反馈给下载信息分发器;下载协议容器,包括并管理若干种协议模块,其中,协议模块由下载任务管理器所调用,且将接收到的下载信息反馈给下载任务管理器,每种协议模块负责相应传输协议的下载流程,且基于该种传输协议直接与下载服务器通信和数据传输。
所述通用接口包括:下载信息监听接口,设置在下载应用程序模块上,用于从下载信息分发器接收下载信息;注册订阅接口,设置在通用下载服务模块的下载信息分发器上,用于建立识别下载应用程序模块的通行证及识别相关联的下载任务的任务标识,且持有通行证的下载应用程序模块将其下载信息监听接口注册到下载信息分发器上以订阅相关联的下载任务的下载信息;外部功能调用接口,设置在下载任务管理器上,通过该外部功能调用接口,持有通行证的下载应用程序模块调用下载任务管理器。
所述协议模块包括如下属性:相应协议的下载地址,用于与相应下载服务器建立连接,以实现相应的下载流程;本地路径,用于保存所下载的网络数据;与服务器连接数目,用于表示所要下载的网络数据分成多少个连接同时下载;协议的扩展属性,针对相应协议的扩展属性。
所述下载协议容器通过协议模块列表进行增加、删除、或查询所述协议模块,以实现对所述协议模块的管理,该协议模块列表的内容包括有协议类型及协议模块位置。
所述下载任务管理器对协议模块的调用包括:设置协议模块属性,或命令协议模块开始或暂停下载。
所述协议模块向所述下载任务管理器反馈的下载信息的内容包括:下载的当前状态、下载实际使用连接的数目、下载的进度及下载日志。
所述下载任务管理器通过下载任务列表进行下载任务管理,所述下载任务列表的内容与所述协议模块的属性相关联。
所述下载信息分发器具有下载应用程序模块的通行证列表及记录订阅下载信息的下载任务标识的订阅列表,其中,通行证列表的内容包括通行证标识;订阅列表的内容包括下载任务的任务标识及反馈信息类型,每个订阅列表对应一个通行证标识。
所述的下载应用程序模块是指单独的下载界面模块或者想使用下载功能的应用程序模块。
与现有技术相比,本发明具有以下优点:
剥离下载和下载管理的功能到一个专门的通用下载服务模块,能为多个下载应用程序使用;
对于具体的各种下载技术的实现,这些下载应用程序来说是透明的,下载应用程序不必关心各种下载技术的具体实现;
下载应用程序可以有选择地订阅自己关心的下载信息,并对其作出自己的响应和表现。
具体实施方式
请参照图3所示,本发明网络下载工具(本实施例中,安装在下载客户端1上),包括一个或多个用于用户进行界面管理的下载应用程序3及与下载应用程序3分离且通过通用接口4与下载应用程序3连接的通用下载服务模块5,并且该通用下载服务模块5直接与下载服务器2进行通信和数据传输,以下载网络数据。
本发明网络下载工具使用一个独立的通用下载服务模块5来负责各种协议的下载流程下以及多下载任务的管理逻辑。该通用下载服务模块5作为一个提供通用下载和下载管理的服务,在下载客户端1中只运行唯一的一个通用下载服务模块5,它提供统一的通用接口4,允许多个使用下载业务的下载应用程序3连接到通用下载服务模块5,使用通用下载服务模块5提供的下载功能;下载应用程序3也可以注册到通用下载服务模块5订阅下载信息,有选择地监听各个下载任务的状态、进度、日志等信息,并各自对其处理和表现。
连接到通用下载服务模块5的下载应用程序3是指单独的下载界面(例如图4中的用户界面下载应用程序30)或者任何想使用下载功能的应用程序(例如图4中的下载应用程序31及下载应用程序32,自身需要从下载数据/程序进行升级)。具体的各种下载技术的实现,对于这些下载应用程序来说是透明的。只需要向通用下载服务模块5发出下载功能调用的请求,然后选择自己关心的下载信息反馈来响应,而不必关心各种下载技术的具体实现。
请参照图4所示,下面对本发明网络下载工具进行详细描述。
所述通用下载服务模块5包括:
下载信息分发器51,用于管理下载应用程序3和将反馈的下载信息分发给相应的下载应用程序3;
下载任务管理器52,用于管理若干下载任务并将接收到的下载信息反馈给下载信息分发器51;
下载协议容器53,包括并管理若干种协议模块(例如图4中的协议A模块531和协议B模块532);
其中协议模块由下载任务管理器52所调用,且将接收到的下载信息反馈给下载任务管理器52,每种协议模块(例如协议A模块531和协议B模块532)负责相应传输协议的下载流程,且基于该种传输协议直接与下载服务器2通信和数据传输,例如图4中协议A模块531和协议B模块532分别负责传输协议A和传输协议B的下载流程,且基于传输协议A和传输协议B分别与下载服务器21、22进行通信和数据传输。
所述通用接口4包括:
下载信息监听接口41,设置在各个下载应用程序3上,用于从下载信息分发器51接收下载信息;
注册订阅接口42,设置在通用下载服务模块5的下载信息分发器51上,用于建立识别下载应用程序3的通行证及识别相关联的下载任务的任务标识,且持有通行证的下载应用程序3将其下载信息监听接口41注册到下载信息分发器51上以订阅相关联的下载任务的下载信息;
外部功能调用接口43,设置在下载任务管理器52上,通过该外部功能调用接口43,持有通行证的下载应用程序3调用下载任务管理器52。外部下载应用程序可以通过外部功能调用接口43添加、删除各种协议的下载任务,也可以开始、暂停一个已经添加的下载任务或调整它的优先级。下载应用程序调用外部功能调用接口43的任何功能时,必须提供有效的通行证才被准许。
下面针对各个部分作进一步描述。
协议模块包括如下属性:相应协议的下载地址,用于与相应下载服务器2建立连接,以实现相应的下载流程;本地路径,用于保存所下载的网络数据;与服务器连接数目,用于表示所要下载的网络数据分成多少个连接同时下载;协议的扩展属性,针对相应协议的扩展属性。
例如,协议A模块531,针对某种特定的传输协议A,专门负责的该协议的下载流程。协议A模块531知道该传输协议A的规定的下载流程,并且直接与下载服务器21通过该传输协议A通信和传输数据或程序。
相应该协议A模块531具有如下属性:
协议A的下载地址(包含服务器名、端口号、数据或程序相对地址和名称、登陆用户名、登陆密码等信息);
下载到的数据或程序保存到本地的路径;
数据或程序分成多少个连接同时下载;
A协议的扩展属性(针对特定A协议的属性)
比如,一个具体的HTTP协议模块具有如下属性:
协议HTTP的下载地址:服务器名:www.tencent.com;端口号:80;数据或程序相对地址和名称:/download/qq2003.exe;登陆用户名:hata;登陆密码:123;
下载到的数据或程序保存到本地的路径:C:\Downloads\qq2003setup.exe;
数据或程序分成多少个连接同时下载:5;
协议HTTP的扩展属性:发送应用页、使用cookie。
下载协议容器53通过协议模块列表进行增加、删除、查询协议模块,以实现对协议模块的管理,该协议模块列表的内容包括有协议类型及协议模块位置。
其中,协议模块的管理:下载协议容器53负责管理各种协议模块,维护当前包含的各种协议模块的协议模块列表,可以通过配置增加、删除某个下载协议模块。比如:下载协议容器53的当前配置文件包含了HTTP协议模块和FTP协议模块的信息,那么这个下载协议容器53读取这个配置文件就可以知道自己包含哪些协议模块,也可以通过修改这个配置文件来增加一个MMS协议模块或者删除FTP协议模块。
协议模块的查询:可以被下载任务管理器52查询下载协议容器53包含了哪些协议模块、或者查询是否包含某个协议模块。比如:下载任务管理器52可以向下载协议容器53查询是否包含HTTP协议模块,下载协议容器53检查自己的协议模块列表,若发现有HTTP协议模块,则返回给下载任务管理器52该HTTP协议模块的接口,否则返回不支持。
下载任务管理器52对协议模块的调用包括:协议模块属性的设置、开始或暂停下载。当下载任务管理器52需要传输协议为A的下载任务时,先向下载协议容器53查询相应的协议A模块531,然后再直接调用该协议A模块。具体地,以HTTP协议模块为例,下载任务管理器52可以设置前述HTTP协议模块的属性、命令该HTTP协议模块开始下载、暂停下载。
协议模块向下载任务管理器52反馈的下载信息的内容:
下载的当前状态(包括正在连接、已连接、正在接受数据、已完成下载、下载已暂停、下载失败等下载过程中的状态信息);
下载实际用了多少个连接下载(如果下载服务器2支持多个连接,则尽量用模块属性中定义的连接数连接,如果不支持那么多,则用下载服务器支持的最大连接数连接;如果下载服务器不支持多个连接,则用单个连接);
下载的进度(指当前每个连接所下载到的字节数);
下载的日志(指每当状态变迁、向下载服务器2发送信息、下载服务器2返回信息时的日志信息)。
具体地,以HTTP协议模块为例,在HTTP协议模块连接或下载过程中,该以HTTP协议模块为例,向下载任务管理器52反馈下载当前状态、连接数、进度、日志等信息。
另外,下载任务管理器52通过下载任务列表进行下载任务管理,下载任务列表的内容与协议模块的属性相关联(下载任务的任务标识、协议类型、相应协议的下载地址、本地路径、与服务器连接数目、相应协议的扩展属性)。下载任务管理器52负责多个下载任务的管理,维持一个可以永久性存储的下载任务列表。同时该下载任务管理器52也接受协议模块的下载反馈信息并把这个下载反馈信息转交给下载信息分发器51。
下载信息分发器51具有下载应用程序3的通行证列表及记录订阅下载信息的下载任务标识的订阅列表,其中通行证列表的内容包括通行证标识、而订阅列表的内容包括下载任务的任务标识及反馈信息类型,每个订阅列表对应一个通行证标识,也就是说,每个订阅列表是某个通行证标识对应的订阅列表。通过通行证列表和订阅列表以及统一的被下载应用程序3调用的注册订阅接口42,下载信息分发器51实现多下载应用程序3的管理和下载信息的反馈分发,进一步实现多个下载应用程序3同时下载的识别和对应下载信息的反馈分发。
本发明网络下载工具在执行下载任务的应用中,可能进行注册和注销、订阅、添加下载任务、删除下载任务、开始或暂停下载任务、下载信息的反馈等操作流程如下:
1)注册和注销
下载应用程序3首先要通过注册订阅接口42注册获得一个唯一的通行证标识(ID)并将其保存在下载信息分发器51的通行证列表中,该下载应用程序3有了这个通行证标识才能调用下载任务管理器52提供的外部功能调用和订阅相关的下载信息。
相应地,下载应用程序3通过下载信息监听接口41获得通行证标识。这个下载信息监听接口41口提供了一系列诸如“任务状态改变了”、“任务进度改变了”、“任务日志改变了”等的事件,以便被下载信息分发器51反馈相关的下载信息(见订阅)。
下载应用程序3也可以注销这个通行证标识,一旦注销这个通行证标识,那么下载任务管理器52就不再为持有这个通行证标识的下载应用程序3提供服务,和这个通行证标识相关联的所有下载任务都会被停止和删除。
2)添加下载任务
当添加某个传输协议的下载任务时,外部下载应用程序3必须通过通用接口提供通行证标识、下载的协议类型以及下载任务属性(指下载任务列表中与协议模块的属性相关联的内容,见协议模块的属性)给下载任务管理器52。下载任务管理器52首先向下载信息分发器51查询这个通行证标识是否已被注册,若没有注册则返回失败,否则执行下面的步骤:下载任务管理器52向下载协议容器53查询是否有该协议的协议模块存在,如果没有则返回失败,如果有,则获得该协议的对应协议模块的接口,添加一个下载任务,并把该下载任务和这个协议的协议模块以及下载应用程序3的通行证标识关联起来,同时也生成一个唯一的下载任务的任务标识(下载任务ID)返回给下载应用程序3,并且将该下载任务的任务标识和相关联的协议模块的属性添加到下载任务列表中。
3)订阅
注册了通行证标识的下载应用程序3添加的下载任务成功后就获得了一个唯一的下载任务的任务标识(见下载任务管理器52中的添加下载任务)。下载应用程序3通过提供通行证标识和下载任务的任务标识经由注册订阅接口42从下载信息分发器51上订阅自己添加的那个下载任务的下载信息。这些下载信息包括:下载任务的状态、进度、日志等,下载应用程序3可以订阅全部,也可以订阅其中的一部分。下载信息分发器51保存着一份通行证标识列表和下载任务的任务标识订阅列表,并维护它们之间的对应关系,通过某通行证标识添加的下载任务的下载信息,只有持有该通行证标识的下载应用程序3才能订阅。
4)下载信息的反馈流程
当一个下载任务的协议模块开始下载时,各种的下载信息首先反馈到下载任务管理器52,下载任务管理器52找到该下载任务对应的通行证标识和下载任务的任务标识,再把这个下载信息连同它的对应的下载任务标识和通行证标识一起反馈给下载信息分发器51,下载信息分发51查找相应通行证标识列表和下载任务的任务标识订阅列表,若该下载信息已被订阅,则把该下载信息反馈到持有该通行证标识的下载应用程序3的下载信息监听接口41,否则抛弃这个下载信息。下载应用程序3的下载信息监听接口41收到这个下载信息后,就可以对这个下载信息作出自己的处理和表现。
5)删除下载任务
删除一个下载任务时,同样要验证通行证标识,验证成功后下载任务管理器52的下载任务列表中查找是否存在该下载任务,若存在则从下载任务列表中删除,否则返回失败。
6)开始或暂停下载任务
开始或暂停一个下载任务通行证标识验证成功后,下载任务管理器51查找是否存在该下载任务若存在则找到与这个下载任务关联的协议模块,并命令这个协议模块开始或暂停下载,否则返回失败。
综上所述,本发明网络下载工具
剥离下载和下载管理的功能到一个专门的通用下载服务模块,能为多个下载应用程序使用。
对于具体的各种下载技术的实现,这些下载应用程序来说是透明的,下载应用程序不必关心各种下载技术的具体实现。
下载应用程序可以有选择地订阅自己关心的下载信息,并对其作出自己的响应和表现。