[发明专利]一种文件下载方法和装置有效
申请号: | 201010580747.0 | 申请日: | 2010-12-06 |
公开(公告)号: | CN102487401A | 公开(公告)日: | 2012-06-06 |
发明(设计)人: | 黄仁海 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 张驰;宋志强 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 下载 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件下载方法和装置。
背景技术
目前,服务器处理业务请求的方式包括同步的处理方式和异步的处理方式。
在同步处理方式下,调用者向服务器发起业务请求后,需要等待服务器的处理结果,然后调用者根据该处理结果继续后面的步骤。
在异步处理方式下,调用者向服务器发起业务请求后,不需要等待服务器的处理结果,在服务器完成针对该请求的处理后,向该调用者发起通知,然后调用者再根据该通知执行该业务请求对应的后续步骤。
多任务的服务器一般采用如下两种方式提高效率:
其一,在同步处理方式下采用多线程的方式,其实现相对简单。
其二,采用异步处理方式。由于在异步处理方式下,调用者在发起一项业务请求之后、且收到该项业务请求处理完毕的通知之前,该调用者还可以发起其他项业务请求,因而一般情况下,异步处理方式具有更高的效率。
由于在异步处理方式下,一项业务的各个处理步骤被分开,因此中间数据需要保存下来,以便后续步骤的进行,且业务逻辑的描述以若干动作响应组成,因此引入状态机以保存中间数据和描述业务逻辑。
状态机是一个有向图形,由一组节点和一组相应的转移函数组成,一个状态机对象对应一个完整的客户端的请求/响应过程。
一种典型的采用异步处理方式的多任务服务器是异步并发下载服务器,其结构如图1所示。
图1是异步并发下载服务器的模块化结构示意图。
如图1所示,异步并发下载服务器包括前端网络交互模块、异步并发处理模块和源数据读取模块。
其中,前端网络交互模块,用于与客户端进行通信;异步并发处理模块,是异步并发下载服务器的核心模块,用于按照业务逻辑进行业务处理;源数据读取模块,用于与异步并发下载服务器的后台系统相连,并进行相应的业务处理。
图2是异步并发下载服务器的进程结构示意图。
如图2所示,异步并发下载服务器中的包括三个进程,分别为:网络接收器、核心处理进程和网络连接器。这三个进程都采用异步处理方式,三个进程之间通过专用的信息通道来传递信令和数据。
其中,网络接收器位于前端网络交互模块中,核心处理进程位于异步并发处理模块中,网络连接器位于源数据读取模块中。
网络接收器,用于与客户端进行通信。具体地,网络接收器监听与客户端相连的端口,接收客户端的连接请求,将客户端发来的数据转发给核心处理进程,将核心处理进程回复的数据转发给客户端,向核心处理进程通知网络变化事件,例如通知链接已关闭、数据发送完毕等事件。
核心处理进程是核心模块,用于按照业务逻辑进行业务处理,向网络接收器回复处理结果。
网络连接器,用于从后台分布式系统拉取数据。具体地,网络连接器接收核心处理进程的请求,将该请求完整发送给相关服务器,接收相关服务器的回复并转发给核心处理进程,向核心处理进程通知网络变化事件,例如链接关闭、网络异常等事件。
图3是核心处理进程的状态机示意图。
如图3所示,核心处理进程从当前所述状态机开始,按照图3所示主驱动循环的箭头顺序依次经历其他状态机。例如,如果核心处理进程当前所处状态为收到链接/请求状态,则经历的状态按顺序为:创建状态机对象并加入状态机池、探测网络事件并触发相关状态机、进行其他相关调度、如果收到结束通知则退出当前处理进程,如果超时则进行超时处理。
图3所示状态机的主驱动循环的单轮时间为2-3ms,其中,在收到当前状态机完成的通知后,直接进入下一状态机。
图4是异步并发下载服务器进行文件下载的流程。
如图4所示,该流程包括:
步骤401,核心处理进程监测到接收器事件,该接收器事件为收到网络接收器发来的文件下载请求,则核心处理进程进入收到请求进行初始化的状态。
步骤402,核心处理进程在初始化完毕后,进入查询文件信息的状态。具体地,核心处理进程向网络连接器推送查询文件请求。
步骤403,核心处理进程监测到网络连接器回复文件信息的事件,进入得到文件信息的状态。
步骤404,核心处理进程向网络连接器推送下载文件分片的请求,进入下载文件分片的状态。
步骤405,核心处理进程监测到网络连接器回复分片数据的事件后,进入得到分片数据的状态。
步骤406,核心处理进程进入回复客户端分片数据的状态,通过网络接收器向客户端推送分片数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010580747.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:水性合成革的双面涂胶制造设备
- 下一篇:用于涂覆线的浸槽提升机构