《基于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 。