本申请涉及计算机信息处理技术领域,特别涉及一种缓存资源、更新缓存资源的方法、客户端、服务器及系统。
背景技术:
随着移动互联网的飞速发展,越来越多的移动应用被开发出来供用户终端使用,而且逐渐成为了互联网用户终端中不可或缺的一部分,在各种场合任意时间都有可能被使用到。
移动互联网最大的特点是“移动”性,用户终端可以在物理位置不固定的情况下使用互联网,可给用户终端提供极大的方便。但是,当前移动网络的覆盖面还不是很广泛,用户终端不可能随时随地的享受移动互联网带来的便利。因此,有些移动应用采用离线缓存技术方案,把己经下载过的资源缓存到本地,使得用户终端在无网络的情况下也能继续使用。如此,可以节约用户终端流量,满足用户终端的个性化的需求。
在当前的移动应用中,一般都是用HTML5(Hypertext Markup Languages,超文本标记语言5)的离线缓存功能。HTML5近十年来发展得如火如茶,在HTML5平台上,视频、音频、图像、动画以及同电脑的交互都被标准化,HTML5的功能越来越丰富,最重要的是其具有离线缓存移动Web应用的功能。基于HTML5的离线缓存功能,许多移动应用都是结合HTML5开发出来的,此类移动应用可以称之为移动Web应用,其主要是使用HTML5技术,并能够在文本浏览器中运行,如Javascript(脚本),(CSS(Cascading Style Sheet,级联样式表)等。借助HTML5的离线缓存功能开发出来的移动应用也具有离线缓存功能。在HTML5的离线缓存方案中,移动设备通常是通过Application Cache API(应用缓存接口)提供离线存储功能,指定浏览器缓存特定文件以供离线用户访问。用户采用HTML5离线功能存储离线资源时,通常是访问目标资源并下载目标资源。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:现有的HTML5离线功能实现的缓存资源的方法通常需要在页面访问一次后将页面及资源离线化,对于未访问过的页面及资源通常无法获取离线化资源,因此现有的缓存资源的方法不能灵活缓存用户需要的离线资源。
技术实现要素:
本申请实施例的目的是提供一种缓存资源、更新缓存资源的方法、客户端、服务器及系统,以实现灵活缓存用户需要的离线资源。
为解决上述技术问题,本申请实施例提供一种缓存资源、更新缓存资源的方法、客户端、服务器及系统。是这样实现的:
一种缓存资源的方法,包括:服务器接收离线化资源列表,根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件;客户端在预设时间获取所述服务器上的总控文件,根据所述总控文件缓存离线化资源,存储所述总控文件。
一种缓存资源的方法,包括:客户端在预设时间获取服务器上根据所述离线化资源列表生成的总控文件;所述客户端根据所述总控文件缓存离线化资源,存储所述总控文件。
一种缓存资源的方法,包括:服务器接收离线化资源列表;所述服务器根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。
一种更新缓存资源的方法,包括:服务器检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;发送所述新的总控文件至客户端;所述客户端接收所述服务器发来的新的总控文件,比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源。
一种更新缓存资源的方法,包括:服务器检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;所述服务器发送所述新的总控文件至客户端。
一种更新缓存资源的方法,包括:客户端接收服务器发来的新的总控文件;所述客户端比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
一种缓存资源的服务器,包括:列表接收单元和文件生成单元;其中,所述列表接收单元,用于接收离线化资源列表;所述离线化资源列表用于表示需要缓存的离线资源的信息;所述文件生成单元,用于根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。
一种缓存资源的客户端,包括:文件接收单元和资源缓存单元;其中,所述文件接收单元,用于在预设时间获取所述服务器上根据离线化资源列表生成的总控文件;所述资源缓存单元,用于根据所述总控文件缓存离线化资源,存储所述总控文件。
一种缓存资源的系统,包括:缓存资源的服务器和缓存资源的客户端;所述缓存资源的 服务器,用于接收离线化资源列表,根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件;所述缓存资源的客户端,用于在预设时间获取所述缓存资源的服务器上根据所述离线化资源列表生成的总控文件,根据所述总控文件缓存离线化资源,存储所述总控文件。
一种更新缓存资源的服务器,包括:文件更新单元和更新信息发送单元;其中,所述文件更新单元,用于检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;所述更新信息发送单元,用于发送所述新的总控文件至更新缓存资源的客户端。
一种更新缓存资源的客户端,包括:更新信息接收单元和缓存更新单元;其中,所述更新信息接收单元,用于接收更新缓存资源的服务器发来的新的总控文件;所述缓存更新单元,用于比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
一种更新缓存资源的系统,包括:更新缓存资源的服务器和更新缓存资源的客户端;所述更新缓存资源的服务器,用于检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;发送所述新的总控文件至更新缓存资源的客户端;所述更新缓存资源的客户端,用于接收所述更新缓存资源的服务器发来的新的总控文件;比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的缓存资源的方法、客户端、服务器及系统将符合用户需要的缓存资源的列表发送给服务器,服务器生成对应的离线资源包和总控文件,用户在特定的时间可以获取总控文件,并根据总控文件中的信息下载离线资源包并进行离线资源的存储,不需要访问离线资源的页面即可以实现灵活缓存用户需要的离线资源。本申请实施例提供的更新缓存资源的方法、客户端、服务器及系统,当离线资源发生变更时,可以及时检测变更的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件,客户端通过比较新的总控文件和客户端当前存储的总控文件可以确定更新了的目标离线资源,并对客户端存储的目标离线资源进行更新,可以保证客户端缓存的资源随着在线资源的更新进行更新,可以实现灵活缓存用户需要的离线资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请缓存资源的方法一个实施例的流程图;
图2是本申请以服务器为主体的缓存资源的方法一个实施例的流程图;
图3是本申请以客户端为主体的缓存资源的方法一个实施例的流程图;
图4是本申请更新缓存资源的方法一个实施例的流程图;
图5是本申请以服务器为主体的更新缓存资源的方法一个实施例的流程图;
图6是本申请以客户端为主体的更新缓存资源的方法一个实施例的流程图;
图7是本申请缓存资源的系统一个实施例的模块图;
图8是本申请缓存资源的服务器一个实施例的模块图;
图9是本申请缓存资源的客户端一个实施例的模块图;
图10是本申请更新缓存资源的系统一个实施例的模块图;
图11是本申请更新缓存资源的服务器一个实施例的模块图;
图12是本申请更新缓存资源的客户端一个实施例的模块图。
具体实施方式
本申请实施例提供一种缓存资源、更新缓存资源的方法、客户端、服务器及系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是本申请缓存资源的方法一个实施例的流程图。如图1所示,所述缓存资源的方法可以包括:
S101:服务器接收离线化资源列表,根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。
所述服务器可以接收离线化资源列表。
所述离线化资源列表可以用于表示需要缓存的离线资源的信息。
所述离线化资源列表可以是客户端发来的。所述离线化资源列表还可以是第三方发来的,或者是服务器接收到的用户输入的离线化资源列表信息。
所述离线化资源列表可以包括:离线资源的名称、离线资源的统一资源定位符(简称 URL)及离线资源的格式。所述离线资源可以包括超文本标记语言(简称HTML)页面,以及所述HTML页面中加载的层叠样式表(简称css)和/或直译式脚本语言(js)等。
所述服务器根据所述离线化资源列表可以生成离线资源包及与所述离线资源包对应的总控文件。所述总控文件可以包括:总控文件的版本信息、离线资源包的版本信息以及所述离线资源包在服务器的存储地址。
所述离线资源包可以包括:离线资源和所述离线资源的配置信息;所述离线资源的配置信息可以用于表示所述离线资源的URL以及所述离线资源在所述离线资源包中的地址。
S102:客户端在预设时间获取所述服务器上的总控文件,根据所述总控文件缓存离线化资源,存储所述总控文件。
客户端可以在预设时间获取所述服务器上的总控文件。具体地,所述客户端可以在预设的时间点获取所述总控文件;例如,实施客户端每天10点和20点的时候分别获取总控文件。所述客户端还可以从起始时间点开始,每间隔预设时间间隔获取所述总控文件;例如,所述客户端可以从每天5点开始,每间隔1小时获取所述总控文件。
所述客户端可以根据所述总控文件缓存离线化资源,具体可以包括:根据所述总控文件下载所述总控文件对应的离线资源包,存储所述离线资源包中的离线资源;记录所述离线资源的统一资源定位符与所述客户端中存储所述离线资源的地址之间的对应关系。
所述客户端可以存储所述总控文件。
当客户端接收到访问某一URL地址的请求时,可以查找所述客户端存储的离线资源的URL中是否包括所述要访问的URL地址,若已经存储,可以根据所述记录的离线资源的统一资源定位符与所述客户端中存储所述离线资源的地址之间对应关系,获取所述要访问的URL地址对应的客户端存储的离线资源。若所述客户端存储的离线资源的URL中没有包括所述要访问的URL地址,所述客户端可以访问网络获取所述URL对应的资源文件。
图2是本申请以服务器为主体的缓存资源的方法一个实施例的流程图。如图2所示,所述方法可以包括:
S201:服务器接收离线化资源列表。
S202:所述服务器根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。所述总控文件可以包括:总控文件的版本信息、离线资源包的版本信息以及所述离线资源包在服务器的存储地址。
图3是本申请以客户端为主体的缓存资源的方法一个实施例的流程图。如图3所示,所述方法可以包括:
S301:客户端在预设时间获取所述服务器上根据离线化资源列表生成的总控文件。
S302:所述客户端根据所述总控文件缓存离线化资源,并存储所述总控文件。
上述以客户端或服务器为执行主体的缓存资源的方法实施例的具体实施过程可以参见图1所示的缓存资源的方法实施例。本申请在此不在赘述。
上述实施例公开的缓存资源的方法,将符合用户需要的缓存资源的列表发送给服务器,服务器生成对应的离线资源包和总控文件,用户在特定的时间可以获取总控文件,并根据总控文件中的信息下载离线资源包并进行离线资源的存储,不需要访问离线资源的页面即可以实现灵活缓存用户需要的离线资源。
图4是本申请更新缓存资源的方法一个实施例的流程图。如图4所示,所述更新缓存资源的方法可以包括:
S401:服务器检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;发送所述新的总控文件至客户端。
服务器可以检测当前总控文件对应的离线资源是否发生变更。具体地,所述服务器可以每隔预设时间间隔检测所述总控文件对应的离线资源是否发生变更,或者,所述服务器可以接收所述总控文件对应的离线资源发生变更的推送消息。
若所述服务器检测到所述总控文件对应的离线资源发生了变更,可以根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件。
所述新的总控文件中可以包括:新的总控文件的版本信息、新的离线资源包的版本信息以及所述新的离线资源包在所述服务器上的存储地址。
所述服务器可以发送所述新的总控文件至客户端。
S402:所述客户端接收所述服务器发来的新的总控文件,比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源。
所述客户端可以接收所述服务器发来的新的总控文件,比较所述新的总控文件与客户端当前存储的总控文件,可以确定目标离线资源。所述目标离线资源可以包括:更新的离线资源。所述比较新的总控文件与客户端当前存储的总控文件,确定目标离线资源,具体可以包括:可以比较所述新的总控文件与客户端存储的总控文件中的离线资源包的版本信息,版本信息发生变化的离线资源包对应的离线资源可以为目标离线资源。
所述客户端可以更新所述目标离线资源。具体地,可以下载版本信息发生变化的离线资 源包,存储所述新的离线资源包中的离线资源,删除所述客户端中存储的版本信息发生变化的离线资源部;记录所述更新后的离线资源的统一资源定位符与所述客户端中存储所述更新后离线资源的地址之间的对应关系。
图5是本申请以服务器为主体的更新缓存资源的方法一个实施例的流程图。如图5所示,所述方法可以包括:
S501:服务器检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件。
S502:所述服务器发送所述新的总控文件至客户端。
图6是本申请以客户端为主体的更新缓存资源的方法一个实施例的流程图。如图6所示,所述方法可以包括:
S601:客户端接收服务器发来的新的总控文件。
S602:所述客户端比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
上述以客户端或服务器为主题的更新缓存资源的方法实施例的具体实施过程可以参见图4所示的缓存资源的方法实施例。本申请在此不在赘述。
上述实施例公开的更新缓存资源的方法实施例,当离线资源发生变更时,可以及时检测变更的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件,客户端通过比较新的总控文件和客户端当前存储的总控文件可以确定更新了的目标离线资源,并对客户端存储的目标离线资源进行更新,上述方法可以保证客户端缓存的资源随着在线资源的更新进行更新,可以实现灵活缓存用户需要的离线资源。
图7是本申请缓存资源的系统一个实施例的模块图。如图7所示,所述缓存资源的系统可以包括:缓存资源的服务器110和缓存资源的客户端120;
所述缓存资源的服务器110,可以用于接收离线化资源列表,根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。
所述缓存资源的客户端120,可以用于在预设时间获取所述缓存资源的服务器110上根据所述离线化资源列表生成的总控文件,根据所述总控文件缓存离线化资源,存储所述总控文件。
图8是本申请缓存资源的服务器一个实施例的模块图。如图8所示,所述缓存资源的服务器110,可以包括:列表接收单元111和文件生成单元112;其中
所述列表接收单元111,可以用于接收离线化资源列表;所述离线化资源列表可以用于 表示需要缓存的离线资源的信息。
所述文件生成单元112,可以用于根据所述离线化资源列表生成离线资源包及与所述离线资源包对应的总控文件。
图9是本申请缓存资源的客户端一个实施例的模块图。如图9所示,所述缓存资源的客户端120可以包括:文件接收单元121和资源缓存单元122;其中
所述文件接收单元121,可以用于在预设时间获取所述缓存资源的服务器110上的根据离线化资源列表生成的总控文件;
所述资源缓存单元122,可以用于根据所述总控文件缓存离线化资源,存储所述总控文件。
上述实施例公开的缓存资源的系统、客户端和服务器与本申请缓存资源的方法实施例相对应,可以实现本申请缓存资源的方法,达到本申请缓存资源的方法实施例的技术效果。
图10是本申请更新缓存资源的系统一个实施例的模块图。如图10所示,所述更新缓存资源的系统,可以包括:更新缓存资源的服务器210和更新缓存资源的客户端220;
所述更新缓存资源的服务器210,可以用于检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;发送所述新的总控文件至更新缓存资源的客户端220;
所述更新缓存资源的客户端220,可以用于接收所述更新缓存资源的服务器210发来的新的总控文件;比较所述新的总控文件与客户端当前存储的总控文件,确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
图11是本申请更新缓存资源的服务器一个实施例的模块图。如图11所示,所述更新缓存资源的服务器210,可以包括:文件更新单元211和更新信息发送单元212;其中,
所述文件更新单元211,可以用于检测总控文件对应的离线资源是否发生变更,若是,根据更新后的离线资源生成新的离线资源包及与所述新的离线资源包对应的新的总控文件;
所述更新信息发送单元212,可以用于发送所述新的总控文件至更新缓存资源的客户端220。
图12是本申请更新缓存资源的客户端一个实施例的模块图。如图12所示,所述更新缓存资源的客户端220,可以包括:更新信息接收单元221和缓存更新单元222;其中,
所述更新信息接收单元221,可以用于接收更新缓存资源的服务器210发来的新的总控文件;
所述缓存更新单元222,可以用于比较所述新的总控文件与客户端当前存储的总控文件, 确定目标离线资源,更新所述目标离线资源;所述目标离线资源用于表示更新的离线资源。
上述实施例公开的更新缓存资源的系统、客户端和服务器与本申请更新缓存资源的方法实施例相对应,可以实现本申请更新缓存资源的方法,达到本申请更新缓存资源的方法实施例的技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器 计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。