基于HTTP的客户机服务器通信系统和方法.pdf

上传人:111****11 文档编号:4751016 上传时间:2018-11-05 格式:PDF 页数:14 大小:3.51MB
返回 下载 相关 举报
摘要
申请专利号:

CN201080067366.0

申请日:

2010.06.11

公开号:

CN102939598A

公开日:

2013.02.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 15/16申请日:20100611|||公开

IPC分类号:

G06F15/16; G06F9/06

主分类号:

G06F15/16

申请人:

惠普发展公司,有限责任合伙企业

发明人:

詹森·D·戈德曼

地址:

美国德克萨斯州

优先权:

专利代理机构:

北京德琦知识产权代理有限公司 11018

代理人:

罗正云;王琦

PDF下载: PDF下载
内容摘要

提供用于健壮、有效且安全的客户机-服务器通信的系统和方法。例如,这种客户机-服务器通信的一种方法可以包括在服务器中经由HTTP接收来自客户机的长轮询HTTP请求和客户机状态消息,例如文件供给。这种文件供给可以指示例如从客户机可供传输的一个或多个文件。之后,服务器可以发出作为对长轮询HTTP请求的响应的命令,例如文件请求。这种文件请求可以请求可供传输的一个或多个文件中的至少一个文件。之后,服务器可以从客户机经由FTP接收一个或多个文件中的至少一个文件。

权利要求书

权利要求书一种方法,包括:
在服务器中接收来自客户机的长轮询HTTP请求;
在所述服务器中经由HTTP从所述客户机接收文件供给,其中所述文件供给指示从所述客户机可供传输的一个或多个文件;
响应于所述长轮询HTTP请求,从所述服务器发出文件请求,其中所述文件请求用于请求可供传输的一个或多个文件中的至少一个文件;以及
在所述服务器中经由FTP从所述客户机接收所述一个或多个文件中的所述至少一个文件。
根据权利要求1所述的方法,其中在标识所述客户机的特定客户机统一资源定位器(URL)处接收所述文件供给。
根据权利要求1所述的方法,包括:在所述服务器中接收指示所述一个或多个文件中的所述至少一个文件在标识所述客户机的特定客户机统一资源定位器(URL)处已被完全传输的确认消息。
根据权利要求1所述的方法,包括:利用所述服务器确定在所述服务器中是否已从所述客户机接收到指示所述一个或多个文件中的所述至少一个文件已被完全传输的确认消息,并且当已接收到确认时,将所述一个或多个文件中的所述至少一个文件存储在所述服务器中。
根据权利要求1所述的方法,包括:利用所述服务器确定在所述服务器中是否已从所述客户机接收到指示所述一个或多个文件中的所述至少一个文件已被传输的确认消息,并且当未接收到确认时,从所述服务器再次发出所述文件请求。
根据权利要求5所述的方法,其中定期地执行确定是否已从所述客户机接收到所述确认消息的步骤。
根据权利要求5所述的方法,其中在已从所述客户机接收到一定数据量之后,执行确定是否已从所述客户机接收到所述确认消息的步骤,其中将所述数据量估计成等于所述一个或多个文件中的所述至少一个文件的大小。
根据权利要求1所述的方法,包括:利用所述服务器确定是否应当请求从所述客户机可供传输的所述一个或多个文件,并且当确定应当请求所述一个或多个文件时,将对所述一个或多个文件的文件请求添加至客户机队列,所述客户机队列列出将来发出文件请求所针对的文件,其中至少部分地基于所述客户机队列发出所述文件请求。
根据权利要求1所述的方法,包括:在发出所述文件请求之前,利用所述服务器确定网络业务量或到所述客户机的业务量低于阈值。
根据权利要求1所述的方法,包括:在发出所述文件请求之前,利用所述服务器确定所述客户机未在接收流式文件。
一种系统,包括:
客户机,被配置为发起长轮询HTTP请求,将关于所述客户机的信息经由HTTP传递给特定客户机统一资源定位器,以及接收响应于所述长轮询HTTP请求的特定客户机命令;和
服务器,被配置为接收所述长轮询HTTP请求,经由HTTP在特定客户机统一资源定位器处接收关于所述客户机的信息,至少部分地基于关于所述客户机的信息产生所述特定客户机命令,以及传递所述特定客户机命令,作为对所述长轮询HTTP请求的响应。
根据权利要求11所述的系统,其中关于所述客户机的信息包括文件供给,所述文件供给指示从所述客户机可供传输的一个或多个文件,并且其中所述命令包括文件请求,所述文件请求用于请求所述一个或多个文件中的至少一个文件。
根据权利要求11所述的系统,包括:另一客户机,被配置为发起另一长轮询HTTP请求,将关于所述另一客户机的信息经由HTTP传递给另一特定客户机统一资源定位器,以及接收响应于所述另一长轮询HTTP请求的另一特定客户机命令;
其中所述服务器被配置为接收所述另一长轮询HTTP请求,经由HTTP在所述另一特定客户机统一资源定位器处接收关于所述另一客户机的信息,至少部分地基于关于所述客户机的信息产生所述另一特定客户机命令,以及传递所述另一特定客户机命令,作为对所述长轮询HTTP请求的响应。
一种方法,包括:
从客户机向服务器发起长轮询HTTP请求;
从所述客户机经由HTTP向所述服务器传送文件供给,其中所述文件供给指示从所述客户机向所述服务器可供传输的一个或多个文件;
在所述客户机中从所述服务器接收响应于所述长轮询HTTP请求的文件请求,其中所述文件请求用于请求可供传输的所述一个或多个文件中的至少一个文件;以及
经由FTP从所述客户机向所述服务器传输所述一个或多个文件中的所述至少一个文件。
根据权利要求14所述的方法,包括:利用所述客户机通过收集和封装与可供传输的所述一个或多个文件相关联的元数据来确定所述文件供给。

说明书

说明书基于HTTP的客户机‑服务器通信系统和方法
背景技术
该部分旨在向读者介绍可能与本公开的下面所描述或要求保护的各方面有关的现有技术的各个方面。该介绍被认为有助于向读者提供便于更好地理解本公开的各个方面的背景信息。因此,应当明白,这些阐述应当以这种方式理解,而不应当视为是对现有技术的认可。
用户可以将多个文件在本地存储在若干个不同的计算机上,但是可能希望从每个计算机访问这些文件。例如,用户可以将多个媒体文件(例如照片、音乐和视频)建立或存储在属于用户的多个家庭计算机上。这些文件可以被复制到家庭服务器(例如基于微软视窗家庭服务器(WHS)的服务器)上。家庭服务器可以允许用户将照片、音乐和视频的远程副本从服务器串流至各个家庭计算机。
将文件从单独的计算机手动复制到服务器可能是繁琐的。因此,用户可能希望服务器在没有明显用户干预的情况下对特定文件执行自动收集。已经开发出执行这种自动文件收集的技术,但是这些技术可能具有某些限制。例如,这些技术可能鉴于访问安全的目的而限制服务器发起的通信和/或可能低效地复制来自多个客户机的相同文件。
附图说明
图1是根据实施例的客户机‑服务器系统的框图;
图2是描述根据实施例可以将来自客户机的文件存储在服务器上的方式的框图;
图3是图示根据实施例的自动文件收集的方式的流程图;
图4是描述图3的自动文件收集的客户机侧方法的实施例的流程图;以及
图5是描述图3的自动文件收集的服务器侧方法的实施例的流程图。
具体实施方式
下面将描述本公开的一个或多个实施例。为了提供这些实施例的简洁描述,在说明书中未描述实际实现的全部特征。应当理解,在开发任何这样的实际实现过程中,如在任何的工程或设计项目中,必须做出多个特定实现的判定来实现开发者的特定目标,例如符合系统相关的和商业相关的限制,这些限制可能因实现不同而不同。而且,应当理解,这种开发努力可能是复杂且耗时的,但是对于得到本公开益处的本领域技术人员来说仍然是设计、生产和制造的常规任务。
提供的实施例涉及健壮、安全和有效的基于HTTP的客户机‑服务器通信。根据这样的实施例,不是提供每个客户机直接访问服务器上的存储器共享并且允许每个客户机将文件保存到服务器共享上,而是每个客户机仅在服务器请求这么做时才可以传输文件。具体地说,指定的客户机可以向服务器发起长轮询超文本传输协议(HTTP)请求。然后,服务器可以在服务器准备好时以发给客户机的命令来对长轮询请求做出响应。以此方式,服务器可以在不直接访问客户机的文件系统的情况下安全地从客户机请求特定文件。
同时,客户机可以收集与本地客户机存储器中的可用文件有关的信息。客户机可以将该收集的文件信息经由HTTP通过文件供给(file offer)传送给服务器侧的HTTP处理机(HTTP handler),服务器侧的HTTP处理机可以作出HTTP确收的响应。正是根据这种文件供给,服务器可以确定存储在各个客户机上但未储存在服务器上的文件。然后,服务器响应于客户机最初所发送的长轮询HTTP请求而可以通过发送文件请求命令来从客户机请求那些文件。随后,通过经由文件传输协议(FTP)将文件传输至服务器,客户机可以在不直接访问服务器共享的情况下提供文件。
由于客户机发起所有与服务器的通信,因此可以维持客户机的相对高的安全水平。而且,由于服务器可以根据需要决定何时响应于长轮询HTTP请求来向客户机发出文件请求,因此服务器可以请求客户机仅在网络带宽可用时发送某些文件。还应当注意到,因为当在多个客户机上可获得指定文件时,服务器可以选择哪个客户机提供该文件,因此所提供的实施例可能是更有效的。通过允许服务器选择文件的单个来源点,可以降低或消除多个客户机将同一文件复制给服务器的倾向。
考虑到以上所述的,图1呈现了这种客户机‑服务器系统10,该客户机‑服务器系统10包括能够经由HTTP与服务器14通信的一个或多个客户机12。因此,客户机‑服务器系统10可以包括至少一个服务器14和任何合适数量的客户机12,合适数量的客户机12在图1中被标记为1至N。每个客户机12可以包括内存18、存储器20、用户接口22、网络接口24以及一个或多个处理器16,还可以包括其它装置。客户机12的各个功能框可以包括硬件要素、软件要素或硬件要素和软件要素的结合。图1所示的客户机12的框旨在仅代表客户机12的具体实现的一个示例,并且旨在图示在客户机12中可以存在的组件类型。
作为示例,客户机12可以是由惠普公司生产的笔记本或台式计算机。此外或可替代地,客户机12可以是能够存储文件并经由HTTP发起与服务器14通信的任何其它适合的电子设备。处理器16和/或其它数据处理电路可以可操作地联接到内存18和存储器20,以执行用于实现当前公开的客户机‑服务器技术的各种算法。这些算法可以被编码在可以由处理器12运行的并且可以存储在任何适合的制品中的程序和/或指令,任何适合的制品包括至少共同地存储指令或例行程序的一种或多种有形计算机可读介质,例如内存18和/或存储器20。
存储器20可以存储大量文件,这些文件中的一些文件可以被复制在其它客户机12的非易失性存储器20中。客户机12的存储器20可以包含媒体文件,例如照片、音乐和视频,还可以包含其它文件。当用户经由用户接口22(例如显示器、扬声器和/或键盘和鼠标)与客户机12交互时,用户可以访问或修改在存储器20中包含的文件。在某些实施例中,客户机12可以串流来自服务器14的文件或者可以访问位于服务器14处的文件。
服务器14可以代表能够实现目前公开的客户机‑服务器通信的任何适合的服务器。作为示例,服务器14可以是能够运行微软视窗家庭服务器(WHS)的家庭服务器,例如由惠普公司生产的HP MediaSmart服务器。与客户机12类似,服务器14可以包括内存28、非易失性存储器30、网络接口32以及一个或多个处理器26。这些组件26‑32可以以与客户机12的对应组件类似的方式操作。
服务器14可以从与服务器14通信的客户机12的存储器20收集某些文件。具体地说,如图2所示,服务器的存储器30通常可以包括指定文件的至多一个副本,即便该文件可能同时存储在不止一个客户机12处。图2图示分别属于客户机‑服务器系统10中的两个不同客户机12的两个存储器20A和20B。如图所示,客户机的存储器20A包括被标记为“A”、“B”和“Z”的三个文件。客户机的存储器20B包括被标记为“A”、“Y”和“Z”的三个文件。虽然在客户机的存储器20A和20B上存储六个文件例子,但是总共仅存在四个唯一的文件。因此,为了获得每个文件的一个唯一的副本,服务器的存储器30可仅需要从客户机的存储器20A和20B中的每个存储器接收几个文件。如图所示,服务器的存储器30可以从第一客户机的存储器20A获得第一组文件34(文件“A”和“B”),并且从第二客户机的存储器20B获得第二组文件36(文件“Y”和“Z”)。
为了收集某些文件,客户机‑服务器系统10可以执行自动文件收集技术40,如图3所示。自动文件收集技术40可以包括服务器14和任何合适数量的客户机12之间的通信。如图3所示,加入到客户机‑服务器系统10中的每个客户机12可以经由两个并行线程(即命令/请求线程42和文件收集线程44)操作。
一般而言,命令/请求线程42可以向服务器14的长轮询处理机48发出并保持长轮询HTTP请求46。长轮询HTTP请求46可以形成服务器14可以任意做出响应的与服务器14之间的第一通信线路。长轮询HTTP请求46可以长时间不终止,并且可以在长轮询HTTP请求46超时而没有得到响应时由命令/请求线程42再次发出。当服务器14决定向客户机12发出命令(例如文件请求50或配置重载消息)时,服务器14可以发出该命令,作为对长轮询HTTP请求46的响应。由于服务器14仅对由客户机12发起的HTTP通信做出响应,因此不需要在客户机12上运行的特殊鉴权接口或侵入式接口(例如web服务器)来从服务器14向客户机12发送命令。在接收这种对长轮询HTTP请求46的响应之后,命令/请求线程42可以再次发出并保持长轮询HTTP请求46。
文件收集线程44可以确定在客户机12的存储器20上存储的某些文件的状态。例如,文件收集线程44可以查找在客户机12的存储器20中存储的所有某些类型的文件(例如所有媒体文件)。通过收集与这些文件相关的元数据,文件收集线程44可以将这样的元数据封装到描述从客户机12向服务器14可供传输的文件的一个或多个文件供给52内。随后,文件收集线程44可以将文件供给52中的一个或多个文件供给经由HTTP传送至服务器14处的特定客户机统一资源定位器(URL)。
服务器14上的HTTP处理机54可以接收来自客户机12的文件供给52并且以确收包56的方式做出答复。通过接收确收包56,文件收集线程44可以知道哪些文件供给52已被服务器14接收以及哪些文件供给52由于网络或其它故障的原因而可能被中断。被中断的文件供给52可以以后再次发送。
当接收文件供给52时,服务器14可以确定是否应当请求来自客户机12的在文件供给52中描述的一个或多个文件。例如,如果文件供给52指示客户机12正在存储当前未位于服务器的存储器30上的文件或者正在存储位于服务器的存储器30中的但是从上次复制以后已被改变的文件,那么服务器14可以确定收集所供给的文件(框58)。对该期望的文件的请求58可以被添加到服务器14上的客户机队列60中,客户机队列60可以包括服务器14应当从各个客户机12请求的文件的列表。根据客户机队列60并且依据当前网络业务量和其它考虑,如下面介绍的,服务器14可以决定从客户机12请求特定文件(框62)。
长轮询处理机48可以查看客户机队列60上的特定文件请求62,并且响应于长轮询HTTP请求46,长轮询处理机48可以以文件请求50的命令的方式做出答复。这种文件请求50可以包括可具体地标识文件请求50所请求的文件的某些标识信息。客户机12的命令/请求线程42可以接收文件请求50命令。作为响应,命令/请求线程42可以将文件64的副本经由文件传输协议(FTP)传输至服务器14上的FTP空间66。
当文件已被完全传输时,命令/请求线程42可以经由HTTP向服务器14处的特定客户机文件确认URL发出确认消息68。该确认消息68可以包括与文件请求50相关联的表示该文件已被完全传输的标识信息。当HTTP处理机54接收确认消息68时,HTTP处理机54可以验证仍需要目前位于FTP空间66内的所请求的文件64。如果这样,那么HTTP处理机54可以促使将该文件从FTP空间66传输到存储器30的服务器共享中的适当位置内。HTTP处理机54还可以提供表示其已接收确认消息68的确收包70。
由客户机12和服务器14执行的技术40的具体要素分别由图4和图5表示。首先转到图4,流程图80表示从客户机12的角度执行技术40的方法的实施例。流程图80可以在命令/请求线程42发出长轮询HTTP请求46(框82)时开始。文件收集线程44分别可以查找某些文件,收集与这些文件相关的元数据,并且将这样的元数据封装到一个或多个文件供给内(框84)。应当理解,不论客户机12当前是否能够连接至服务器14(例如,如果至服务器14的网络连接不可用,则可能发生这种情况),文件收集线程44都可以执行这种任务。在执行框84时,文件收集线程44可以将一个或多个文件供给52经由HTTP传送至服务器14处的特定客户机文件供给URL。
如上面提到的,命令/请求线程42可以在很大程度上独立于文件收集线程44操作。一般而言,命令/请求线程42可以确保长轮询HTTP连接保持向服务器14开放。为此,如果长轮询HTTP请求46超时(判定框88),那么命令/请求线程42可以发出另一长轮询HTTP请求46(框82)。如果长轮询HTTP请求46没有超时,那么命令/请求线程42可以等待,直到接收到作为对长轮询请求46的答复的命令(例如文件请求命令50)为止(判定框90)。
当接收响应于长轮询HTTP请求46的文件请求50时,命令/请求线程42可以获得所请求的文件并且将所请求的文件经由FTP传输至服务器14(框92)。当已传输该文件时,命令/请求线程42可以经由HTTP发送确认消息68(框94)。
图5的流程图100表示服务器14在执行自动文件收集技术40时采取的动作。流程图100可以在服务器14的长轮询处理机48接收到来自对应客户机12的一个或多个长轮询HTTP请求46时开始(框102)。正如应当理解的,长轮询处理机48可能不一定立即对这些长轮询HTTP请求46做出响应。因此,各个长轮询HTTP请求46可能偶尔超时并被重新发送。长轮询处理机48因此可能在新的长轮询HTTP请求46被再次发送时接收它们,这可能发生在整个流程图100的其它时间。此外,如果长轮询HTTP连接断开(例如,服务器14未能从指定客户机12接收长轮询HTTP请求46),那么服务器14可以为以后长轮询HTTP连接再次变得可用的时刻保留通信(例如文件请求50)。
在某一时刻,服务器14上的HTTP处理机54可以在某些特定客户机统一资源定位器(URL)处接收一个或多个文件供给52(框104)。例如,回顾图2的示例,服务器14可以在与第一客户机12相关联的第一URL处接收指示文件“A”、“B”和“Z”可供传输的文件供给52。同时,服务器14可以在与第二客户机12相关联的第二URL处接收指示文件“A”、“Y”和“Z”可供传输的文件供给52。基于这些文件供给52和/或可能已经存储在服务器14的存储器30中的文件,服务器14可以确定是否收集上述文件以及从哪个客户机12收集(框106)。在一个实施例中,如果客户机12之一可能更有效地传输这些文件或者由于其它原因,那么来自该客户机12的文件传输可以被优先考虑。
如果服务器14确定收集由文件供给52指示的指定文件(判定框108),那么在考虑与网络和/或客户机12的状态有关的某些因素(框112)之前,可以将对特定文件的请求添加至客户机队列60(框110)。或者,如果服务器14确定不收集来自文件供给52的指定文件(判定框108),那么过程可以直接流向框112,而不向客户机队列60添加任何新的文件请求。在框112处考虑的各个因素可以包括例如网络上的当前业务量、客户机12是否当前正向服务器14传输文件、服务器14是否当前正将文件(例如音乐文件或视频文件)串流给客户机12和/或客户机12是否当前正主动地执行文件请求50会干预的任务。
基于网络状态和/或客户机12的状态,服务器14可决定向客户机12发出文件请求命令50,来获得关于客户机队列60中的请求所列出的文件。如果服务器14根据当前网络状态和/或客户机12状态确定不发出文件请求命令50(判定框114),那么服务器14在再次考虑决定是否发出文件请求命令50的这些因素之前可以等待某一段时间(框116)。如果服务器14根据适合的网络状态和/或客户机12的状态确定发出文件请求命令50(判定框114),那么长轮询处理机48可以对从中请求文件的客户机12的开放的长轮询HTTP请求46做出响应。
然后,服务器14可以经由FTP从客户机12接收所请求的文件(框120)。如果服务器14未能接收到确认消息68(判定框122),那么服务器14可以决定在其它时间再次发出文件请求命令50。例如,服务器14可以定期地检查(例如每天一次,每小时一次,每半小时一次,等等)是否已经接收所请求的文件的确认消息68。在某些实施例中,服务器14可以根据所请求的文件的期望大小来在已经接收某一预期量的数据之后检查是否接收到确认消息68。
当HTTP处理机54接收确认消息68时(判定框122),服务器14可以在将该文件从FTP空间66移动至存储器30的服务器共享之前验证仍需要所接收的文件。例如,在某些实施例中,确认消息68可以包括与已被传输的文件相关联的元数据。服务器14可以利用与最近接收的文件相关联的元数据来确定所传输的文件是否是最新的。也就是说,如果从接收文件请求50起文件已变化,如可以由新的文件供给52来指示,那么服务器14可以确定不需要最近传输的文件。以此方式,服务器14可以确保在其存储器30上包含的文件是最新的,尤其是在客户机12和服务器14之间的通信被中断的情况下。
应当指出,客户机‑服务器系统10可能比其它类似的系统更安全,这是因为根据自动文件收集技术40,客户机12发起所有与服务器14的通信。具体地说,服务器14可以响应于可不断地被客户机12更新的长轮询HTTP请求46来根据需要发送命令。如上面提到的,响应于长轮询HTTP请求46来发送命令可以不再需要服务器14对客户机12的侵入式访问以及客户机12对服务器14的侵入式访问。例如,客户机‑服务器系统10可以不需要在客户机12上运行的特殊鉴权接口或侵入式接口(例如web服务器)来执行自动文件收集。此外,通过允许长轮询HTTP请求46超时而不再次发出另一长轮询HTTP请求46,客户机12可以选择不从服务器14接收命令。
此外,客户机‑服务器系统10可能是更以系统为焦点的而不是以用户为焦点的。也就是说,在自动文件收集技术40下,服务器14而不是客户机12决定是否向服务器的存储器30传输指定文件。由于服务器14可以从多个客户机12接收文件供给52,所以服务器14可以考虑当前在服务器的存储器30中存储的文件以及来自单独的客户机30的可供给的文件。因此,服务器14可以获得可供传输的文件、已经被传输的文件和未来计划传输的文件的系统范围的综览。
该系统范围的综览可以提高效率。例如,服务器14可以改变其系统范围的知识来处理文件冲突(例如,当相同文件或类似文件的两个副本在本地存储在不同客户机12上时),否则,文件冲突可能导致相同文件的多个副本被存储在服务器14的存储器30上。而且,服务器14可根据网络状态和单独客户机12的状态调节文件传输的速率,以保持所希望的性能水平。
最后,自动文件收集技术40不仅可以提高效率,还可以证明是更健壮的。具体地说,客户机12可以意识到与服务器14的通信失效,并且服务器14可以意识到与每个客户机12的通信失效。如上面提到的,如果客户机12发送文件供给52,但未接收到HTTP确收56,那么客户机12可以使文件供给52排队以在别的时间传送。如果客户机12经由FTP向服务器14传输文件并且随后向服务器14发送确认消息68,那么如果未接收到作为响应的HTTP确收70,客户机12可以使该文件排队以供再次传送。类似地,如果服务器14发出命令,例如文件请求50,但是从未接收到确认消息,那么服务器14可以使该命令排队并在以后再次发送该命令。此外,如果服务器14由于任何原因失效,那么可以保存其客户机队列60的状态。因此,尽管某些文件传输进程可能丢失,但是文件请求50完全可以在客户机12和服务器14恢复通信时重新传送。
此外,应当理解,自动文件收集技术40可以针对大量其它形式的客户机‑服务器通信扩展。例如,响应于长轮询HTTP请求46,服务器14可以提供作为文件请求52的替代或者除文件请求52以外的任何适合命令。这种命令可以使服务器14能够发起例如客户机12上的备份过程或者配置状态重载过程。因此,例如,当接收到这种命令时,命令/请求线程42可以使另一线程(例如文件收集线程44)再次发送所有文件供给52。在另一示例中,响应于命令,命令/请求线程42可以使另一线程发起备份过程。服务器14响应于长轮询HTTP请求46可发送的其它命令可以包括例如在服务器的存储器30上已分配哪些空间的指示。
已示出作为示例的上述特定实施例,并且应当理解,这些实施例可容许有各种修改和替代形式。还应当理解,权利要求不旨在局限于所公开的具体形式,而是旨在覆盖落入本公开的精神和范围内的所有修改、等同和替换。

基于HTTP的客户机服务器通信系统和方法.pdf_第1页
第1页 / 共14页
基于HTTP的客户机服务器通信系统和方法.pdf_第2页
第2页 / 共14页
基于HTTP的客户机服务器通信系统和方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《基于HTTP的客户机服务器通信系统和方法.pdf》由会员分享,可在线阅读,更多相关《基于HTTP的客户机服务器通信系统和方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102939598 A (43)申请公布日 2013.02.20 CN 102939598 A *CN102939598A* (21)申请号 201080067366.0 (22)申请日 2010.06.11 G06F 15/16(2006.01) G06F 9/06(2006.01) (71)申请人 惠普发展公司, 有限责任合伙企业 地址 美国德克萨斯州 (72)发明人 詹森D戈德曼 (74)专利代理机构 北京德琦知识产权代理有限 公司 11018 代理人 罗正云 王琦 (54) 发明名称 基于HTTP的客户机-服务器通信系统和方法 (57) 摘要 提供用于健壮、 。

2、有效且安全的客户机 - 服务 器通信的系统和方法。 例如, 这种客户机-服务器 通信的一种方法可以包括在服务器中经由 HTTP 接收来自客户机的长轮询 HTTP 请求和客户机状 态消息, 例如文件供给。 这种文件供给可以指示例 如从客户机可供传输的一个或多个文件。 之后, 服 务器可以发出作为对长轮询 HTTP 请求的响应的 命令, 例如文件请求。 这种文件请求可以请求可供 传输的一个或多个文件中的至少一个文件。 之后, 服务器可以从客户机经由 FTP 接收一个或多个文 件中的至少一个文件。 (85)PCT申请进入国家阶段日 2012.12.11 (86)PCT申请的申请数据 PCT/US20。

3、10/038352 2010.06.11 (87)PCT申请的公布数据 WO2011/155945 EN 2011.12.15 (51)Int.Cl. 权利要求书 2 页 说明书 6 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 6 页 附图 5 页 1/2 页 2 1. 一种方法, 包括 : 在服务器中接收来自客户机的长轮询 HTTP 请求 ; 在所述服务器中经由 HTTP 从所述客户机接收文件供给, 其中所述文件供给指示从所 述客户机可供传输的一个或多个文件 ; 响应于所述长轮询 HTTP 请求, 从所述服务器发出文件请求, 其中。

4、所述文件请求用于请 求可供传输的一个或多个文件中的至少一个文件 ; 以及 在所述服务器中经由 FTP 从所述客户机接收所述一个或多个文件中的所述至少一个 文件。 2. 根据权利要求 1 所述的方法, 其中在标识所述客户机的特定客户机统一资源定位器 (URL) 处接收所述文件供给。 3. 根据权利要求 1 所述的方法, 包括 : 在所述服务器中接收指示所述一个或多个文件 中的所述至少一个文件在标识所述客户机的特定客户机统一资源定位器 (URL) 处已被完全 传输的确认消息。 4. 根据权利要求 1 所述的方法, 包括 : 利用所述服务器确定在所述服务器中是否已从 所述客户机接收到指示所述一个或多。

5、个文件中的所述至少一个文件已被完全传输的确认 消息, 并且当已接收到确认时, 将所述一个或多个文件中的所述至少一个文件存储在所述 服务器中。 5. 根据权利要求 1 所述的方法, 包括 : 利用所述服务器确定在所述服务器中是否已从 所述客户机接收到指示所述一个或多个文件中的所述至少一个文件已被传输的确认消息, 并且当未接收到确认时, 从所述服务器再次发出所述文件请求。 6. 根据权利要求 5 所述的方法, 其中定期地执行确定是否已从所述客户机接收到所述 确认消息的步骤。 7. 根据权利要求 5 所述的方法, 其中在已从所述客户机接收到一定数据量之后, 执行 确定是否已从所述客户机接收到所述确认。

6、消息的步骤, 其中将所述数据量估计成等于所述 一个或多个文件中的所述至少一个文件的大小。 8. 根据权利要求 1 所述的方法, 包括 : 利用所述服务器确定是否应当请求从所述客户 机可供传输的所述一个或多个文件, 并且当确定应当请求所述一个或多个文件时, 将对所 述一个或多个文件的文件请求添加至客户机队列, 所述客户机队列列出将来发出文件请求 所针对的文件, 其中至少部分地基于所述客户机队列发出所述文件请求。 9. 根据权利要求 1 所述的方法, 包括 : 在发出所述文件请求之前, 利用所述服务器确定 网络业务量或到所述客户机的业务量低于阈值。 10. 根据权利要求 1 所述的方法, 包括 :。

7、 在发出所述文件请求之前, 利用所述服务器确 定所述客户机未在接收流式文件。 11. 一种系统, 包括 : 客户机, 被配置为发起长轮询HTTP请求, 将关于所述客户机的信息经由HTTP传递给特 定客户机统一资源定位器, 以及接收响应于所述长轮询 HTTP 请求的特定客户机命令 ; 和 服务器, 被配置为接收所述长轮询HTTP请求, 经由HTTP在特定客户机统一资源定位器 处接收关于所述客户机的信息, 至少部分地基于关于所述客户机的信息产生所述特定客户 机命令, 以及传递所述特定客户机命令, 作为对所述长轮询 HTTP 请求的响应。 权 利 要 求 书 CN 102939598 A 2 2/2。

8、 页 3 12. 根据权利要求 11 所述的系统, 其中关于所述客户机的信息包括文件供给, 所述文 件供给指示从所述客户机可供传输的一个或多个文件, 并且其中所述命令包括文件请求, 所述文件请求用于请求所述一个或多个文件中的至少一个文件。 13. 根据权利要求 11 所述的系统, 包括 : 另一客户机, 被配置为发起另一长轮询 HTTP 请求, 将关于所述另一客户机的信息经由 HTTP 传递给另一特定客户机统一资源定位器, 以 及接收响应于所述另一长轮询 HTTP 请求的另一特定客户机命令 ; 其中所述服务器被配置为接收所述另一长轮询 HTTP 请求, 经由 HTTP 在所述另一特定 客户机统。

9、一资源定位器处接收关于所述另一客户机的信息, 至少部分地基于关于所述客户 机的信息产生所述另一特定客户机命令, 以及传递所述另一特定客户机命令, 作为对所述 长轮询 HTTP 请求的响应。 14. 一种方法, 包括 : 从客户机向服务器发起长轮询 HTTP 请求 ; 从所述客户机经由 HTTP 向所述服务器传送文件供给, 其中所述文件供给指示从所述 客户机向所述服务器可供传输的一个或多个文件 ; 在所述客户机中从所述服务器接收响应于所述长轮询 HTTP 请求的文件请求, 其中所 述文件请求用于请求可供传输的所述一个或多个文件中的至少一个文件 ; 以及 经由 FTP 从所述客户机向所述服务器传输。

10、所述一个或多个文件中的所述至少一个文 件。 15. 根据权利要求 14 所述的方法, 包括 : 利用所述客户机通过收集和封装与可供传输 的所述一个或多个文件相关联的元数据来确定所述文件供给。 权 利 要 求 书 CN 102939598 A 3 1/6 页 4 基于 HTTP 的客户机 - 服务器通信系统和方法 背景技术 0001 该部分旨在向读者介绍可能与本公开的下面所描述或要求保护的各方面有关的 现有技术的各个方面。 该介绍被认为有助于向读者提供便于更好地理解本公开的各个方面 的背景信息。因此, 应当明白, 这些阐述应当以这种方式理解, 而不应当视为是对现有技术 的认可。 0002 用户可。

11、以将多个文件在本地存储在若干个不同的计算机上, 但是可能希望从每个 计算机访问这些文件。例如, 用户可以将多个媒体文件 (例如照片、 音乐和视频) 建立或存储 在属于用户的多个家庭计算机上。这些文件可以被复制到家庭服务器 (例如基于微软视窗 家庭服务器 (WHS) 的服务器) 上。家庭服务器可以允许用户将照片、 音乐和视频的远程副本 从服务器串流至各个家庭计算机。 0003 将文件从单独的计算机手动复制到服务器可能是繁琐的。因此, 用户可能希望服 务器在没有明显用户干预的情况下对特定文件执行自动收集。 已经开发出执行这种自动文 件收集的技术, 但是这些技术可能具有某些限制。 例如, 这些技术可。

12、能鉴于访问安全的目的 而限制服务器发起的通信和 / 或可能低效地复制来自多个客户机的相同文件。 附图说明 0004 图 1 是根据实施例的客户机 - 服务器系统的框图 ; 0005 图 2 是描述根据实施例可以将来自客户机的文件存储在服务器上的方式的框图 ; 0006 图 3 是图示根据实施例的自动文件收集的方式的流程图 ; 0007 图 4 是描述图 3 的自动文件收集的客户机侧方法的实施例的流程图 ; 以及 0008 图 5 是描述图 3 的自动文件收集的服务器侧方法的实施例的流程图。 具体实施方式 0009 下面将描述本公开的一个或多个实施例。为了提供这些实施例的简洁描述, 在说 明书中。

13、未描述实际实现的全部特征。 应当理解, 在开发任何这样的实际实现过程中, 如在任 何的工程或设计项目中, 必须做出多个特定实现的判定来实现开发者的特定目标, 例如符 合系统相关的和商业相关的限制, 这些限制可能因实现不同而不同。而且, 应当理解, 这种 开发努力可能是复杂且耗时的, 但是对于得到本公开益处的本领域技术人员来说仍然是设 计、 生产和制造的常规任务。 0010 提供的实施例涉及健壮、 安全和有效的基于 HTTP 的客户机 - 服务器通信。根据这 样的实施例, 不是提供每个客户机直接访问服务器上的存储器共享并且允许每个客户机将 文件保存到服务器共享上, 而是每个客户机仅在服务器请求这。

14、么做时才可以传输文件。具 体地说, 指定的客户机可以向服务器发起长轮询超文本传输协议 (HTTP) 请求。然后, 服务 器可以在服务器准备好时以发给客户机的命令来对长轮询请求做出响应。以此方式, 服务 器可以在不直接访问客户机的文件系统的情况下安全地从客户机请求特定文件。 0011 同时, 客户机可以收集与本地客户机存储器中的可用文件有关的信息。客户机可 说 明 书 CN 102939598 A 4 2/6 页 5 以将该收集的文件信息经由 HTTP 通过文件供给 (file offer) 传送给服务器侧的 HTTP 处 理机 (HTTP handler) , 服务器侧的 HTTP 处理机可以。

15、作出 HTTP 确收的响应。正是根据这种 文件供给, 服务器可以确定存储在各个客户机上但未储存在服务器上的文件。 然后, 服务器 响应于客户机最初所发送的长轮询 HTTP 请求而可以通过发送文件请求命令来从客户机请 求那些文件。随后, 通过经由文件传输协议 (FTP) 将文件传输至服务器, 客户机可以在不直 接访问服务器共享的情况下提供文件。 0012 由于客户机发起所有与服务器的通信, 因此可以维持客户机的相对高的安全水 平。而且, 由于服务器可以根据需要决定何时响应于长轮询 HTTP 请求来向客户机发出文件 请求, 因此服务器可以请求客户机仅在网络带宽可用时发送某些文件。 还应当注意到, 。

16、因为 当在多个客户机上可获得指定文件时, 服务器可以选择哪个客户机提供该文件, 因此所提 供的实施例可能是更有效的。通过允许服务器选择文件的单个来源点, 可以降低或消除多 个客户机将同一文件复制给服务器的倾向。 0013 考虑到以上所述的, 图1呈现了这种客户机-服务器系统10, 该客户机-服务器系 统 10 包括能够经由 HTTP 与服务器 14 通信的一个或多个客户机 12。因此, 客户机 - 服务 器系统 10 可以包括至少一个服务器 14 和任何合适数量的客户机 12, 合适数量的客户机 12 在图 1 中被标记为 1 至 N。每个客户机 12 可以包括内存 18、 存储器 20、 用。

17、户接口 22、 网络 接口 24 以及一个或多个处理器 16, 还可以包括其它装置。客户机 12 的各个功能框可以包 括硬件要素、 软件要素或硬件要素和软件要素的结合。图 1 所示的客户机 12 的框旨在仅代 表客户机 12 的具体实现的一个示例, 并且旨在图示在客户机 12 中可以存在的组件类型。 0014 作为示例, 客户机 12 可以是由惠普公司生产的笔记本或台式计算机。此外或可替 代地, 客户机 12 可以是能够存储文件并经由 HTTP 发起与服务器 14 通信的任何其它适合的 电子设备。处理器 16 和 / 或其它数据处理电路可以可操作地联接到内存 18 和存储器 20, 以执行用于。

18、实现当前公开的客户机 - 服务器技术的各种算法。这些算法可以被编码在可以 由处理器12运行的并且可以存储在任何适合的制品中的程序和/或指令, 任何适合的制品 包括至少共同地存储指令或例行程序的一种或多种有形计算机可读介质, 例如内存 18 和 / 或存储器 20。 0015 存储器 20 可以存储大量文件, 这些文件中的一些文件可以被复制在其它客户机 12 的非易失性存储器 20 中。客户机 12 的存储器 20 可以包含媒体文件, 例如照片、 音乐和 视频, 还可以包含其它文件。当用户经由用户接口 22 (例如显示器、 扬声器和 / 或键盘和鼠 标) 与客户机 12 交互时, 用户可以访问或。

19、修改在存储器 20 中包含的文件。在某些实施例 中, 客户机 12 可以串流来自服务器 14 的文件或者可以访问位于服务器 14 处的文件。 0016 服务器 14 可以代表能够实现目前公开的客户机 - 服务器通信的任何适合的服务 器。作为示例, 服务器 14 可以是能够运行微软视窗家庭服务器 (WHS) 的家庭服务器, 例如 由惠普公司生产的 HP MediaSmart 服务器。与客户机 12 类似, 服务器 14 可以包括内存 28、 非易失性存储器 30、 网络接口 32 以及一个或多个处理器 26。这些组件 26-32 可以以与客 户机 12 的对应组件类似的方式操作。 0017 服务。

20、器 14 可以从与服务器 14 通信的客户机 12 的存储器 20 收集某些文件。具体 地说, 如图2所示, 服务器的存储器30通常可以包括指定文件的至多一个副本, 即便该文件 可能同时存储在不止一个客户机 12 处。图 2 图示分别属于客户机 - 服务器系统 10 中的两 说 明 书 CN 102939598 A 5 3/6 页 6 个不同客户机 12 的两个存储器 20A 和 20B。如图所示, 客户机的存储器 20A 包括被标记为 “A” 、“B” 和 “Z” 的三个文件。客户机的存储器 20B 包括被标记为 “A” 、“Y” 和 “Z” 的三个文 件。虽然在客户机的存储器 20A 和 。

21、20B 上存储六个文件例子, 但是总共仅存在四个唯一的 文件。因此, 为了获得每个文件的一个唯一的副本, 服务器的存储器 30 可仅需要从客户机 的存储器 20A 和 20B 中的每个存储器接收几个文件。如图所示, 服务器的存储器 30 可以从 第一客户机的存储器 20A 获得第一组文件 34(文件 “A” 和 “B” ) , 并且从第二客户机的存储 器 20B 获得第二组文件 36(文件 “Y” 和 “Z” ) 。 0018 为了收集某些文件, 客户机 - 服务器系统 10 可以执行自动文件收集技术 40, 如图 3 所示。自动文件收集技术 40 可以包括服务器 14 和任何合适数量的客户机。

22、 12 之间的通 信。如图 3 所示, 加入到客户机 - 服务器系统 10 中的每个客户机 12 可以经由两个并行线 程 (即命令 / 请求线程 42 和文件收集线程 44) 操作。 0019 一般而言, 命令 / 请求线程 42 可以向服务器 14 的长轮询处理机 48 发出并保持长 轮询 HTTP 请求 46。长轮询 HTTP 请求 46 可以形成服务器 14 可以任意做出响应的与服务器 14 之间的第一通信线路。长轮询 HTTP 请求 46 可以长时间不终止, 并且可以在长轮询 HTTP 请求 46 超时而没有得到响应时由命令 / 请求线程 42 再次发出。当服务器 14 决定向客户 机。

23、 12 发出命令 (例如文件请求 50 或配置重载消息) 时, 服务器 14 可以发出该命令, 作为对 长轮询 HTTP 请求 46 的响应。由于服务器 14 仅对由客户机 12 发起的 HTTP 通信做出响应, 因此不需要在客户机 12 上运行的特殊鉴权接口或侵入式接口 (例如 web 服务器) 来从服务 器 14 向客户机 12 发送命令。在接收这种对长轮询 HTTP 请求 46 的响应之后, 命令 / 请求 线程 42 可以再次发出并保持长轮询 HTTP 请求 46。 0020 文件收集线程44可以确定在客户机12的存储器20上存储的某些文件的状态。 例 如, 文件收集线程 44 可以查。

24、找在客户机 12 的存储器 20 中存储的所有某些类型的文件 (例 如所有媒体文件) 。 通过收集与这些文件相关的元数据, 文件收集线程44可以将这样的元数 据封装到描述从客户机 12 向服务器 14 可供传输的文件的一个或多个文件供给 52 内。随 后, 文件收集线程 44 可以将文件供给 52 中的一个或多个文件供给经由 HTTP 传送至服务器 14 处的特定客户机统一资源定位器 (URL) 。 0021 服务器 14 上的 HTTP 处理机 54 可以接收来自客户机 12 的文件供给 52 并且以确 收包 56 的方式做出答复。通过接收确收包 56, 文件收集线程 44 可以知道哪些文件。

25、供给 52 已被服务器 14 接收以及哪些文件供给 52 由于网络或其它故障的原因而可能被中断。被中 断的文件供给 52 可以以后再次发送。 0022 当接收文件供给 52 时, 服务器 14 可以确定是否应当请求来自客户机 12 的在文件 供给 52 中描述的一个或多个文件。例如, 如果文件供给 52 指示客户机 12 正在存储当前未 位于服务器的存储器30上的文件或者正在存储位于服务器的存储器30中的但是从上次复 制以后已被改变的文件, 那么服务器14可以确定收集所供给的文件 (框58) 。 对该期望的文 件的请求 58 可以被添加到服务器 14 上的客户机队列 60 中, 客户机队列 6。

26、0 可以包括服务 器 14 应当从各个客户机 12 请求的文件的列表。根据客户机队列 60 并且依据当前网络业 务量和其它考虑, 如下面介绍的, 服务器 14 可以决定从客户机 12 请求特定文件 (框 62) 。 0023 长轮询处理机 48 可以查看客户机队列 60 上的特定文件请求 62, 并且响应于长轮 询 HTTP 请求 46, 长轮询处理机 48 可以以文件请求 50 的命令的方式做出答复。这种文件 说 明 书 CN 102939598 A 6 4/6 页 7 请求 50 可以包括可具体地标识文件请求 50 所请求的文件的某些标识信息。客户机 12 的 命令 / 请求线程 42 可。

27、以接收文件请求 50 命令。作为响应, 命令 / 请求线程 42 可以将文件 64 的副本经由文件传输协议 (FTP) 传输至服务器 14 上的 FTP 空间 66。 0024 当文件已被完全传输时, 命令 / 请求线程 42 可以经由 HTTP 向服务器 14 处的特定 客户机文件确认 URL 发出确认消息 68。该确认消息 68 可以包括与文件请求 50 相关联的 表示该文件已被完全传输的标识信息。当 HTTP 处理机 54 接收确认消息 68 时, HTTP 处理 机 54 可以验证仍需要目前位于 FTP 空间 66 内的所请求的文件 64。如果这样, 那么 HTTP 处 理机 54 可。

28、以促使将该文件从 FTP 空间 66 传输到存储器 30 的服务器共享中的适当位置内。 HTTP 处理机 54 还可以提供表示其已接收确认消息 68 的确收包 70。 0025 由客户机 12 和服务器 14 执行的技术 40 的具体要素分别由图 4 和图 5 表示。首 先转到图 4, 流程图 80 表示从客户机 12 的角度执行技术 40 的方法的实施例。流程图 80 可 以在命令 / 请求线程 42 发出长轮询 HTTP 请求 46(框 82) 时开始。文件收集线程 44 分别 可以查找某些文件, 收集与这些文件相关的元数据, 并且将这样的元数据封装到一个或多 个文件供给内 (框 84) 。

29、。应当理解, 不论客户机 12 当前是否能够连接至服务器 14(例如, 如 果至服务器 14 的网络连接不可用, 则可能发生这种情况) , 文件收集线程 44 都可以执行这 种任务。在执行框 84 时, 文件收集线程 44 可以将一个或多个文件供给 52 经由 HTTP 传送 至服务器 14 处的特定客户机文件供给 URL。 0026 如上面提到的, 命令 / 请求线程 42 可以在很大程度上独立于文件收集线程 44 操 作。一般而言, 命令 / 请求线程 42 可以确保长轮询 HTTP 连接保持向服务器 14 开放。为 此, 如果长轮询 HTTP 请求 46 超时 (判定框 88) , 那么。

30、命令 / 请求线程 42 可以发出另一长轮 询 HTTP 请求 46(框 82) 。如果长轮询 HTTP 请求 46 没有超时, 那么命令 / 请求线程 42 可 以等待, 直到接收到作为对长轮询请求 46 的答复的命令 (例如文件请求命令 50) 为止 (判定 框 90) 。 0027 当接收响应于长轮询 HTTP 请求 46 的文件请求 50 时, 命令 / 请求线程 42 可以获 得所请求的文件并且将所请求的文件经由 FTP 传输至服务器 14(框 92) 。当已传输该文件 时, 命令 / 请求线程 42 可以经由 HTTP 发送确认消息 68(框 94) 。 0028 图 5 的流程图。

31、 100 表示服务器 14 在执行自动文件收集技术 40 时采取的动作。流 程图 100 可以在服务器 14 的长轮询处理机 48 接收到来自对应客户机 12 的一个或多个长 轮询 HTTP 请求 46 时开始 (框 102) 。正如应当理解的, 长轮询处理机 48 可能不一定立即对 这些长轮询 HTTP 请求 46 做出响应。因此, 各个长轮询 HTTP 请求 46 可能偶尔超时并被重 新发送。长轮询处理机 48 因此可能在新的长轮询 HTTP 请求 46 被再次发送时接收它们, 这 可能发生在整个流程图100的其它时间。 此外, 如果长轮询HTTP连接断开 (例如, 服务器14 未能从指定。

32、客户机12接收长轮询HTTP请求46) , 那么服务器14可以为以后长轮询HTTP连 接再次变得可用的时刻保留通信 (例如文件请求 50) 。 0029 在某一时刻, 服务器 14 上的 HTTP 处理机 54 可以在某些特定客户机统一资源定位 器 (URL) 处接收一个或多个文件供给 52(框 104) 。例如, 回顾图 2 的示例, 服务器 14 可以 在与第一客户机 12 相关联的第一 URL 处接收指示文件 “A” 、“B” 和 “Z” 可供传输的文件供 给 52。同时, 服务器 14 可以在与第二客户机 12 相关联的第二 URL 处接收指示文件 “A” 、 “Y” 和 “Z” 可供。

33、传输的文件供给 52。基于这些文件供给 52 和 / 或可能已经存储在服务器 说 明 书 CN 102939598 A 7 5/6 页 8 14的存储器30中的文件, 服务器14可以确定是否收集上述文件以及从哪个客户机12收集 (框 106) 。在一个实施例中, 如果客户机 12 之一可能更有效地传输这些文件或者由于其它 原因, 那么来自该客户机 12 的文件传输可以被优先考虑。 0030 如果服务器14确定收集由文件供给52指示的指定文件 (判定框108) , 那么在考虑 与网络和 / 或客户机 12 的状态有关的某些因素 (框 112) 之前, 可以将对特定文件的请求添 加至客户机队列 6。

34、0(框 110) 。或者, 如果服务器 14 确定不收集来自文件供给 52 的指定文 件 (判定框108) , 那么过程可以直接流向框112, 而不向客户机队列60添加任何新的文件请 求。在框 112 处考虑的各个因素可以包括例如网络上的当前业务量、 客户机 12 是否当前正 向服务器 14 传输文件、 服务器 14 是否当前正将文件 (例如音乐文件或视频文件) 串流给客 户机 12 和 / 或客户机 12 是否当前正主动地执行文件请求 50 会干预的任务。 0031 基于网络状态和 / 或客户机 12 的状态, 服务器 14 可决定向客户机 12 发出文件请 求命令 50, 来获得关于客户机。

35、队列 60 中的请求所列出的文件。如果服务器 14 根据当前网 络状态和 / 或客户机 12 状态确定不发出文件请求命令 50(判定框 114) , 那么服务器 14 在 再次考虑决定是否发出文件请求命令50的这些因素之前可以等待某一段时间 (框116) 。 如 果服务器 14 根据适合的网络状态和 / 或客户机 12 的状态确定发出文件请求命令 50 (判定 框114) , 那么长轮询处理机48可以对从中请求文件的客户机12的开放的长轮询HTTP请求 46 做出响应。 0032 然后, 服务器 14 可以经由 FTP 从客户机 12 接收所请求的文件 (框 120) 。如果服务 器 14 未。

36、能接收到确认消息 68(判定框 122) , 那么服务器 14 可以决定在其它时间再次发出 文件请求命令 50。例如, 服务器 14 可以定期地检查 (例如每天一次, 每小时一次, 每半小时 一次, 等等) 是否已经接收所请求的文件的确认消息 68。在某些实施例中, 服务器 14 可以 根据所请求的文件的期望大小来在已经接收某一预期量的数据之后检查是否接收到确认 消息 68。 0033 当 HTTP 处理机 54 接收确认消息 68 时 (判定框 122) , 服务器 14 可以在将该文件 从 FTP 空间 66 移动至存储器 30 的服务器共享之前验证仍需要所接收的文件。例如, 在某 些实施。

37、例中, 确认消息 68 可以包括与已被传输的文件相关联的元数据。服务器 14 可以利 用与最近接收的文件相关联的元数据来确定所传输的文件是否是最新的。也就是说, 如果 从接收文件请求 50 起文件已变化, 如可以由新的文件供给 52 来指示, 那么服务器 14 可以 确定不需要最近传输的文件。以此方式, 服务器 14 可以确保在其存储器 30 上包含的文件 是最新的, 尤其是在客户机 12 和服务器 14 之间的通信被中断的情况下。 0034 应当指出, 客户机 - 服务器系统 10 可能比其它类似的系统更安全, 这是因为根据 自动文件收集技术 40, 客户机 12 发起所有与服务器 14 的。

38、通信。具体地说, 服务器 14 可以 响应于可不断地被客户机 12 更新的长轮询 HTTP 请求 46 来根据需要发送命令。如上面提 到的, 响应于长轮询 HTTP 请求 46 来发送命令可以不再需要服务器 14 对客户机 12 的侵入 式访问以及客户机 12 对服务器 14 的侵入式访问。例如, 客户机 - 服务器系统 10 可以不需 要在客户机 12 上运行的特殊鉴权接口或侵入式接口 (例如 web 服务器) 来执行自动文件收 集。此外, 通过允许长轮询 HTTP 请求 46 超时而不再次发出另一长轮询 HTTP 请求 46, 客户 机 12 可以选择不从服务器 14 接收命令。 0035。

39、 此外, 客户机 - 服务器系统 10 可能是更以系统为焦点的而不是以用户为焦点的。 说 明 书 CN 102939598 A 8 6/6 页 9 也就是说, 在自动文件收集技术 40 下, 服务器 14 而不是客户机 12 决定是否向服务器的存 储器 30 传输指定文件。由于服务器 14 可以从多个客户机 12 接收文件供给 52, 所以服务 器 14 可以考虑当前在服务器的存储器 30 中存储的文件以及来自单独的客户机 30 的可供 给的文件。因此, 服务器 14 可以获得可供传输的文件、 已经被传输的文件和未来计划传输 的文件的系统范围的综览。 0036 该系统范围的综览可以提高效率。例。

40、如, 服务器 14 可以改变其系统范围的知识 来处理文件冲突 (例如, 当相同文件或类似文件的两个副本在本地存储在不同客户机 12 上 时) , 否则, 文件冲突可能导致相同文件的多个副本被存储在服务器 14 的存储器 30 上。而 且, 服务器14可根据网络状态和单独客户机12的状态调节文件传输的速率, 以保持所希望 的性能水平。 0037 最后, 自动文件收集技术 40 不仅可以提高效率, 还可以证明是更健壮的。具体地 说, 客户机 12 可以意识到与服务器 14 的通信失效, 并且服务器 14 可以意识到与每个客户 机 12 的通信失效。如上面提到的, 如果客户机 12 发送文件供给 5。

41、2, 但未接收到 HTTP 确收 56, 那么客户机 12 可以使文件供给 52 排队以在别的时间传送。如果客户机 12 经由 FTP 向 服务器 14 传输文件并且随后向服务器 14 发送确认消息 68, 那么如果未接收到作为响应的 HTTP 确收 70, 客户机 12 可以使该文件排队以供再次传送。类似地, 如果服务器 14 发出命 令, 例如文件请求 50, 但是从未接收到确认消息, 那么服务器 14 可以使该命令排队并在以 后再次发送该命令。此外, 如果服务器 14 由于任何原因失效, 那么可以保存其客户机队列 60 的状态。因此, 尽管某些文件传输进程可能丢失, 但是文件请求 50 。

42、完全可以在客户机 12 和服务器 14 恢复通信时重新传送。 0038 此外, 应当理解, 自动文件收集技术 40 可以针对大量其它形式的客户机 - 服务器 通信扩展。例如, 响应于长轮询 HTTP 请求 46, 服务器 14 可以提供作为文件请求 52 的替代 或者除文件请求 52 以外的任何适合命令。这种命令可以使服务器 14 能够发起例如客户机 12 上的备份过程或者配置状态重载过程。因此, 例如, 当接收到这种命令时, 命令 / 请求线 程 42 可以使另一线程 (例如文件收集线程 44) 再次发送所有文件供给 52。在另一示例中, 响应于命令, 命令 / 请求线程 42 可以使另一线。

43、程发起备份过程。服务器 14 响应于长轮询 HTTP请求46可发送的其它命令可以包括例如在服务器的存储器30上已分配哪些空间的指 示。 0039 已示出作为示例的上述特定实施例, 并且应当理解, 这些实施例可容许有各种修 改和替代形式。 还应当理解, 权利要求不旨在局限于所公开的具体形式, 而是旨在覆盖落入 本公开的精神和范围内的所有修改、 等同和替换。 说 明 书 CN 102939598 A 9 1/5 页 10 图 1 说 明 书 附 图 CN 102939598 A 10 2/5 页 11 图 2 说 明 书 附 图 CN 102939598 A 11 3/5 页 12 图 3 说 明 书 附 图 CN 102939598 A 12 4/5 页 13 图 4 说 明 书 附 图 CN 102939598 A 13 5/5 页 14 图 5 说 明 书 附 图 CN 102939598 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1