CN102970333A - 从远程客户机设备进行文件读取 - Google Patents

从远程客户机设备进行文件读取 Download PDF

Info

Publication number
CN102970333A
CN102970333A CN2012104186852A CN201210418685A CN102970333A CN 102970333 A CN102970333 A CN 102970333A CN 2012104186852 A CN2012104186852 A CN 2012104186852A CN 201210418685 A CN201210418685 A CN 201210418685A CN 102970333 A CN102970333 A CN 102970333A
Authority
CN
China
Prior art keywords
file
client devices
application file
application
roaming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012104186852A
Other languages
English (en)
Other versions
CN102970333B (zh
Inventor
M·迈尔斯克夫
C·杨
K·V·哈登
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102970333A publication Critical patent/CN102970333A/zh
Application granted granted Critical
Publication of CN102970333B publication Critical patent/CN102970333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/64Details of telephonic subscriber devices file transfer between terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

从远程客户机设备进行文件读取。描述了用于电子文件读取系统的技术。一种方法可包括从第一客户机设备向文件读取服务器发送对漫游文件列表的请求,以及由该第一客户机设备从文件读取服务器接收该漫游文件列表。该漫游文件列表包括与存储在第二客户机设备上的应用文件相关联的唯一标识符。该唯一标识符包括标识该第二客户机设备的机器标识符和标识存储在该第二客户机设备上的应用文件的文件路径的本地文件路径部分。基于在漫游文件列表中指示的第二客户机设备的机器状态,存储在该第二客户机设备上的应用文件可被下载到第一客户机设备。对其他实施例也予以描述并要求保护。

Description

从远程客户机设备进行文件读取
技术领域
本发明涉及电子文件读取系统。
背景技术
保存在第一机器的硬盘驱动器或其他存储器组件本地的应用文件是不易于经由对该第一机器远程的第二机器来访问的。这是由于各机器之间的本地存储器中的差异造成的。供用户访问存储在第一机器上的应用文件的一种方式是首先将该应用文件从该第一机器传送到服务器主存的位置,该服务器主存的位置可由该用户通过对该第一机器远程的第二机器来访问。然而,这需要用户预计来认识到在将来会需要该应用文件并将该文件保存到用户可使用对该第一机器远程的第二机器来访问它的服务器主存的位置。这还需要用户具有对服务器主存的位置的访问权并需要该服务器主存的位置上的足够空间来保存该应用文件。
或者,应用文件可在第一和第二机器之间同步,使得用户可以从任一机器访问这一应用文件。然而,这需要对等地同步该应用文件,但是不论是否会经由第二机器访问该应用文件,这都需要来自第一机器的附加资源。这导致设备资源的浪费。另外,对等地同步应用文件还可需要将该应用文件保存在第一机器的硬盘驱动器的特定位置中,并且进而需要用户预计到在将来会需要该应用文件。本发明的改进正是针对这些和其他考虑事项而需要的。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例一般涉及电子文件读取系统。具体地,一些实施例涉及被安排成从远程客户机设备检索应用文件的电子文件读取系统。该电子文件读取系统可允许用户将应用保存在第一客户机设备上并从对该第一客户机设备远程的第二客户机设备检索该同一应用文件。在一个实施例中,用户向web服务注册第一和第二客户机设备,以允许它们之间的通信。该文件读取系统利用从第一客户机设备发送给文件读取服务器上的web服务的漫游文件列表。漫游文件列表包括保存在第一客户机设备本地的应用文件的列表。第二客户机设备从文件读取服务器检索漫游文件列表。在一个实施例中,如果第一客户机设备的机器状态是“开启(ON)”,则用户可以选择漫游文件列表上列出的应用文件以从该第一客户机设备下载。第一客户机设备的机器状态确定保存在该设备本地的应用文件是否可供下载至第二客户机设备。在第一客户机设备与第二客户机设备之间建立通信连接以允许应用文件下载到该第二客户机设备。
例如,在一个实施例中,一种装置可包括逻辑设备和在该逻辑设备上操作的文件管理器组件。该逻辑设备可包括例如访问存储器的处理器。文件管理器组件可用于从文件读取服务器经由它们之间建立的通信连接来接收漫游文件列表。该漫游文件列表包括与存储在远程客户机设备上的应用文件相对应的应用文件标识符。文件管理器组件可用于从文件读取服务器接收漫游文件列表中的应用文件标识符,其中一状态指示符表示其上存储该应用文件的远程客户机设备的机器状态。在文件读取服务器与远程客户机设备之间建立通信连接,以允许从该远程客户机设备检索应用文件。文件管理器组件可用于接收存储在远程客户机设备上的应用文件。该装置还可包括可用于打开从远程客户机设备接收到的应用文件的应用程序。文件管理器组件建立与服务器主存的位置的通信连接,并且可用于向该服务器主存的位置发送控制指令,以将从远程客户机设备接收到的应用文件保存在该服务器主存的位置以供用户将来检索。对其他实施例也予以描述并要求保护。
附图说明
图1示出文件读取系统的一实施例。
图2示出图1的系统的消息流的一实施例。
图3示出示例性的全局唯一标识符的框图。
图4示出文件读取系统的框图。
图5示出图3的系统的消息流的一实施例。
图6示出文件读取系统的框图。
图7示出漫游文件列表的功能框图。
图8A示出最近文件列表的示例性用户界面视图。
图8B示出最近文件列表的示例性用户界面视图。
图8C示出最近文件列表的示例性用户界面视图。
图9示出文件读取系统的一实施例。
图10示出图9的系统的消息流的一实施例。
图11示出文件读取系统的框图。
图12示出文件读取系统的框图。
图13示出示例性的全局唯一标识符的框图。
图14示出文件读取系统的框图。
图15示出漫游文件列表的功能框图。
图16示出文件读取系统的框图。
图17示出图16的系统的逻辑流程的一个实施例。
图18示出计算体系结构的实施例。
图19示出通信架构的实施例。
具体实施方式
各实施例一般涉及用于向第二远程客户机设备提供对保存在第一客户机设备的本地存储器上的文件的访问的文件读取系统。该文件读取系统生成包括与保存在第一客户机设备上的应用程序相关联的应用文件的应用文件标识符的漫游文件列表。该漫游文件列表由文件读取服务器例如基于从第一客户机设备发送到由该文件读取服务器实现的web服务的应用文件的最近文件列表来生成。
在许多情况下,诸如知识工作者等用户可以使用适于给定工作环境的多个异类计算设备。例如,该用户在家中或办公室可具有用于核心工作的台式计算机、用于移动工作的膝上型计算机、以及用于即时联系的智能电话。尽管使用多个异类设备在计算平台的形式上增加了方便性,但它带来了跨这些多个设备的文件管理的增加复杂度的成本。该文件读取系统通过允许用户容易地从多个异类设备访问应用文件而不管哪一设备当前存储该应用文件来解决了这些和其他问题。结果,该文件读取系统降低了与跨多个设备来管理应用文件相关联的成本,同时增强了用户方便性、灵活性、以及体验。
该文件读取系统可以允许用户从对第一客户机设备远程的第二客户机设备访问保存在该第一客户机设备本地的应用文件,而不必预计到需要首先将该应用文件保存到服务器主存的位置或可移动存储器设备。相反,漫游文件列表可由web服务来维护,并可由向该web服务注册的经授权客户机设备来访问以选择在该漫游文件列表中标识的特定应用文件,以供从第一客户机设备下载到第二客户机设备。
用户将应用文件保存到第一客户机设备上的本地存储器时,分配唯一标识符来作为该特定应用文件的漫游设置。该唯一标识符包括第一客户机设备唯一的机器标识符和表示该应用文件存储在该第一客户机设备上的何处的本地文件路径部分。经由各种通信网络中的任一种来将漫游文件列表从第一客户机设备提供给web服务。用户可以向该web服务注册各特定客户机设备,以使得这些客户机设备能访问该漫游文件列表以及在该漫游文件列表上标识的应用文件,而不管该应用文件存储在哪一客户机设备上。在已注册用户从第二客户机设备访问应用程序时,该应用程序向web服务请求漫游文件列表。web服务检查第一客户机设备的机器状态。在将漫游文件列表发送给第二客户机设备之前,web服务可以基于第一客户机设备的机器状态来更新该漫游文件列表中标识的应用文件的可用性。或者,web服务可以将该漫游文件列表发送给第二客户机设备,并随后在该漫游文件列表被显示给第二客户机设备的用户之前发送一个或多个更新以指示在该漫游文件列表上标识的应用文件中的每一个的可用性。作为另一替换方案,web服务可以将该漫游文件列表发送给第二客户机设备并且可在该漫游文件列表被显示给第二客户机设备的用户之后并在第一客户机设备的机器状态被web服务更新时,向第二客户机设备发送后续更新。例如,如果第一客户机设备的机器状态是“开启”,则对第二客户机设备而言,存储在第一客户机设备上的应用文件是可经由文件读取服务器获得的。如果第一客户机设备的机器状态是“关闭(OFF)”,则对第二客户机设备而言,存储在第一客户机设备上的应用文件是不可经由文件读取服务器获得的。或者,第一客户机设备的机器状态可以处于“待机”模式。在这种情况下,如果该客户机设备可由web服务访问,则该设备的机器状态将被当作开启,并且如果该客户机设备不可由web服务访问,则该设备的机器状态将被当作关闭。以此方式,漫游文件列表被第二客户机设备接收并且指示该列表中包括的应用文件中的每一个的可用性。如果用户选择漫游文件列表上标识的可用应用文件以供下载,则web服务通过网络自动建立与第一客户机设备的通信连接,并检索所选应用文件以供下载到第二客户机设备。以此方式,将文件保存到第一机器上的本地存储器的用户可通过使用最近编辑的文件的漫游列表从第二机器无缝地访问该同一文件。
图1示出包括任何数量的客户机设备110-1……110-N的文件读取系统100的框图,其中“N”是正整数。值得注意的是,对文件读取系统100的不同设备或组件使用“N”不一定暗示相同数量的不同设备或组件。文件读取系统100还可包括经由网络140与客户机设备中的一个或多个进行通信的文件读取服务器150。客户机设备110-1……110-N中的每一个一般包括逻辑设备(例如,逻辑设备130-1)和某种形式的存储器120-1。为易于解释起见,所示出的客户机设备110-1……110-N中的每一个包括具有特定拓扑结构的有限数量的元件。然而,应当明白,取决于所采用的客户机设备的类型,客户机设备110-1……110-N中的每一个可包括参考图16所描述的元件以及具有替换拓扑结构的更多或更少元件。这样的客户机设备110-1……110-N中的每一个可包括但不限于个人计算机(PC)、移动设备、个人数字助理、移动计算设备、智能电话、计算机、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板计算机、服务器、工作站、小型计算机、分布式计算系统、多处理器系统、基于处理器的系统、游戏设备、消费电子设备、电视机、数字电视机、上述设备的组合、或上述设备的web呈现。
出于本公开的目的,客户机设备110-1和110-2将被用作客户机设备110-1……110-N的示例,然而,本文的描述同样适用于客户机设备110-1……110-N中的任一个。具体而言,客户机设备110-1包括被安排成执行具有文件管理器组件173-1的应用程序170-1的逻辑设备130-1。存储器120-1可被用来存储应用文件125-1……125-N,并且文件管理器组件173-1被用来向用户提供应用文件125-1……125-N中的一个或多个。例如,在一个实施例中,逻辑设备130-1可包括具有处理器和存储器的处理系统。例如,用户可以使用文件管理器组件173-1和应用程序170-1来创建、打开、编辑、打印、复制、或以其他方式管理一个或多个应用文件125-1……125-N。或者,应用程序170-1可被存储在可经由网络140访问的远程服务器应用上,它访问存储在客户机设备110-1的存储器120-1中的应用文件125-1……125-N。应用程序170-1的示例可包括基于客户机的应用程序(即“客户机应用程序”),诸如但不限于
Figure BDA00002316368300051
WORD、MICROSOFT
Figure BDA00002316368300052
MICROSOFT
Figure BDA00002316368300053
MICROSOFT
Figure BDA00002316368300061
MICROSOFT
Figure BDA00002316368300062
MICROSOFT
Figure BDA00002316368300063
MICROSOFT
Figure BDA00002316368300064
MICROSOFT PROJECT、MICROSOFTPUBLISHER、MICROSOFT
Figure BDA00002316368300065
WORKSPACE、MICROSOFT
Figure BDA00002316368300066
MICROSOFT OFFICE INTERCONNECT、MICROSOFT OFFICEPICTURE MANAGER、MICROSOFT SHAREPOINT DESIGNER、MICROSOFTLYNC。应用程序170-1的示例还可包括基于服务器的应用程序(即“云应用程序”),诸如但不限于MICROSOFT WINDOWS
Figure BDA00002316368300067
MICROSOFT OFFICEWEB APPLICATION、MICROSOFT OFFICE LIVE、MICROSOFT LIVEMEETING、MICROSOFT OFFICE PRODUCT WEB SITE、MICROSOFTUPDATE SERVER、以及MICROSOFT OFFICE 365。
值得注意的是,虽然文件管理器组件173-1在图1中被示为应用程序170-1的集成部分,但可以明白,文件管理器组件173-1可被实现成与应用程序170-1分开的另一软件应用程序的一部分。例如,文件管理器组件173-1可被实现成系统程序的一部分,如客户机设备110-1的可由应用程序170-1访问的操作系统(OS)的一部分。或者,文件管理器组件173-1可被实现成与应用程序170-1分开的独立软件程序。这一实现可以允许文件管理器组件173-1被用作各不同应用程序170-1之间的共享资源。另外,虽然文件读取服务器150被示为并描述为单个服务器环境,但这是出于易于解释的目的。应当理解,文件读取服务器150可被实现成一个或多个服务器、服务器场、和/或分布式服务器架构。例如,文件读取服务器150可以表示对漫游文件列表(例如,180)的生成和传输进行管理的第一服务器、和与该第一服务器进行通信并对从一个客户机设备(例如,110-1)检索到的且发送给另一客户机设备(例如,110-2)的应用文件(例如,125-1)的读取/传输进行管理的分开的服务器。
下文描述根据一示例性实施例的、文件读取服务器150基于从特定客户机设备(例如,客户机设备110-1)接收到的最近文件列表(例如,175-1)来生成漫游文件列表(例如,180)。漫游文件列表180是通过提取最近文件列表175-1中包含的信息的全部或部分来生成的。具体而言,最近文件列表175-1是由文件管理器组件173-1生成的,文件管理器组件173-1向保存在客户机设备110-1上的每一应用文件分配唯一标识符。或者,最近文件列表由与文件管理器组件173-2分开但位于应用程序170-2内的程序来生成,在这种情况下,本文描述的由文件管理器组件173-2所执行的步骤将由这一分开的程序来照样地执行。当应用文件125-1……125-N被存储在存储器120-1中时,文件管理器组件173-1向特定应用文件分配全局唯一标识符(GUID)。简言之(并且如参考图3更详细地描述的),GUID包括机器标识符305和本地文件路径部分310。GUID对客户机设备110-1……110-N的特定用户而言可以是本地唯一的,并且该用户对所有其他用户而言是全局唯一的。机器标识符305是客户机设备110-1……110-N中的特定一个(例如,客户机设备110-1)的唯一标识符,并且本地文件路径部分310是客户机设备110-1中的特定一个内的存储特定应用文件(例如,应用文件125-1)的路径。在保存每一应用文件125-1……125-N时,与每一应用程序(例如,应用程序170-1)相关联的文件管理器组件(例如,文件管理器组件173-1)向该应用文件分配唯一GUID。
最近文件列表175-1包括由与特定应用程序170-1相关联的客户机设备110-1的用户访问的应用文件125-1……125-N中的某一些。在用户打开特定应用程序170-1时,可以提供最近文件列表175-1。例如,MICROSOFT WORD的最近文件列表175-1可以提供最近存储在客户机设备110-1的存储器120-1中的文档文件的列表。最近文件列表175-1可以是特定应用程序的所有应用文件的子集,可按应用文件的预定数量来限定、和/或可按日期范围来限定。这向应用程序170-1提供了一种用于标识来自应用文件125-1……125-N的与用户最相关的一组应用文件的方便方式。同样,存储在存储器120-1中的每一应用文件125-1……125-N包括GUID。最近文件列表175-1可以向用户提供GUID,或在最近文件列表175-1中列出的应用文件被保存在客户机设备110-1本地时,可以只提供从GUID的全部或一部分中导出的用户可阅读的文件路径。
虽然最近文件列表175-1可包括应用文件125-1……125-N的子集,对最近存储在客户机设备110-1的存储器120-1中的应用文件125-1……125-N使用了时间限制,但可以明白,最近文件列表175-1可另选地移除该时间限制并包括存储在客户机设备110-1的存储器120-1中的应用文件125-1……125-N的整个集合。在这一安排中,用户可以从另一客户机设备(例如,110-2)检索客户机设备110-1所存储的应用文件125-1……125-N中的任一个。
最近文件列表175-1被发送给其中生成漫游文件列表180的文件读取服务器150。这可例如在使用应用程序170-1期间由文件管理器组件173-1按各种预定时间间隔进行,在出现了来自应用程序170-1的特定指令后发送,或基于来自与客户机设备110-1不同的客户机设备(例如,110-2)的对漫游文件列表180的更新来从文件读取服务器150推送。在文件读取服务器150接收到最近文件列表175-1时,服务器文件管理器155可以处理该最近文件列表175-1以生成漫游文件列表180。这一处理可包括提取从文件管理器组件173-1接收到的最近文件列表175-1中包含的数据的全部或部分,并且包括与该最近文件列表175-1中标识的每一应用文件相关联的GUID。根据特定应用程序(例如,170-1)的需要,该处理可任选地包括数据模式之间的数据格式转换。漫游文件列表180中标识的应用文件125-1……125-N不一定保存在文件读取服务器150上,相反,漫游文件列表180是在从客户机设备110-1接收到的最近文件列表175-1上标识的应用文件125-1……125-N的列表。另外,每当最近文件列表175-1被保存到文件读取服务器150时,服务器文件管理器155重写或重新处理在最近文件列表中接收到的信息以生成当前漫游文件列表180。具体而言,根据给定实现的需要,服务器文件管理器155可以提取最近文件列表175-1中接收到的信息的任何部分,但必须至少包括应用文件125-1……125-N中的每一个的GUID。
可基于应用文件125-1……125-N与之相关联的特定应用程序170-1来生成漫游文件列表180,和/或由客户机设备110-1、110-2来生成。具体而言,服务器文件管理器155可以生成客户机设备110-1上的每一不同类型的应用程序170-1的漫游文件列表180。例如,如果客户机设备110-1包括文字处理应用程序和数据库应用程序,则与客户机设备110-1上的对应的应用程序170-1相关联的每一文件管理器组件173-1可为每一应用程序170-1生成分开的最近文件列表175-1并将这些最近文件列表175-1中的每一个发送给文件读取服务器150。进而,服务器文件管理器155可为与文字处理和数据库应用程序中的每一个相关联的每一接收到的最近文件列表175-1生成分开的对应的漫游文件列表180。或者并且作为另一示例,服务器文件管理器155可从客户机设备110-1接收最近文件列表175-1中的每一个,并生成对客户机设备110-1唯一的或对已注册用户唯一的一个漫游文件列表180,并将这一漫游文件列表180保存在文件读取服务器150上。
为了将最近文件列表175-1发送到文件读取服务器150以生成漫游文件列表180,在客户机设备110-1和文件读取服务器150之间建立通信会话。具体而言,web服务160通过经由网络140建立文件读取服务器150和客户机设备110-1之间的机器到机器连接,来提供它们之间的通信。web服务160还被用来经由网络140提供客户机设备110-1与客户机设备110-2之间的通信和交互,以及对应用文件125-1……125-N中的一个或多个到远程客户机设备110-2的传输和漫游文件列表180、181和182的传输进行管理,如下文更详细地描述的。虽然网络140被示为单个网络,但应当理解,网络140可包括任何数量的分开和/或互连的网络,如参考图19更详细地描述的。
文件读取系统100的各设备可以通过网络140利用web服务160来彼此通信web服务160是被设计成支持通过网络140的可互操作的机器到机器交互的软件体系结构。在各实施例中,web服务160可以实现各web技术,包括基于远程过程调用(RPC)的技术、基于简单对象访问协议(SOAP)的技术、基于面向服务的体系结构(SOA)的技术、或基于代表性状态转移(REST)的技术、以及其他。
在一个实施例中,例如,web服务160可以利用按机器可处理格式描述的接口,如按web服务描述语言(WSDL)格式描述的接口。其他系统按由其使用SOAP信息的描述所规定的方式来与web服务160交互。SOAP是用于交换结构化信息以通过计算机网络实现web服务的协议规范。SOAP依赖于可扩展标记语言(XML)来作为消息格式。SOAP还依赖于其他应用层协议来进行消息协商和传输,如RPC和超文本传输协议(HTTP)。SOAP可以形成web服务协议栈的基础层,提供可在其上构建web服务160的基本消息收发框架。HTTL是用于客户机-服务器计算的应用层请求-响应协议规范。
用户必须向web服务160注册才能利用文件读取系统100。另外,用户还必须向web服务注册特定设备(例如,110-1……110-N),如台式计算机、膝上型计算机、以及智能电话,才能使这些设备被web服务160识别以发送/接收漫游文件列表以及在这些设备之间下载特定应用文件。用户向文件读取系统100注册以及将特定客户机设备(例如,110-1……110-N)向web服务160注册可以由应用程序170-1自动执行或可由用户发起。另外,作为注册过程的一部分,用户可以在不同的客户机设备之间任意地分配不同的许可级别。例如,用户可以将台式计算机向web服务160注册,并向这一设备分配许可,以使得可从该设备检索应用文件并可将应用文件下载到该设备或者,用户可以将膝上型计算机向web服务160注册,并向这一设备分配许可,以使得应用文件只可从远程客户机设备下载到该设备。web服务160存储与已注册客户机设备中的每一个相关联的许可简档。通过注册特定客户机设备,在例如该客户机设备上的应用程序尝试从web服务检索漫游文件列表时,web服务认证该客户机设备,从而阻止对漫游文件列表以及存储在客户机设备本地的应用文件的未经授权的访问。
将客户机设备110-1向web服务160注册以允许将最近文件列表175-1发送到文件读取服务器150以及稍后提供始自另一客户机设备(例如,图4中示出的客户机设备110-2,它也向web服务160注册了)的对保存在客户机设备110-1上的应用文件125-1……125-N的受控制访问。例如,客户机设备110-1可以使用符合特定数据模式的XML消息收发来向web服务160注册。服务器文件管理器155接收客户机设备110-1的唯一标识符并将其存储在文件读取服务器150中以供web服务160访问。客户机设备(例如,客户机设备110-1)的被用来将该客户机设备向web服务160注册的唯一标识符可对应于GUID的机器标识符,如下文更详细地描述的。以此方式,用户将特定客户机设备(例如,110-1、110-2)向web服务160注册以选择可读取或检索保存在其他已注册客户机设备上的应用文件的那些设备。
此处所包括的是表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图或逻辑流程形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
图2示出图1的系统的逻辑流程200的一个实施例。逻辑流程200可表示由在此所描述的一个或多个实施例(诸如例如客户机设备110-1)所执行的操作中的一些或全部。
在图2中示出的实施例中,在框201,应用程序请求存储应用文件。例如,应用程序170-1(且更具体地,文件管理器173-1)处理用户请求以将应用文件125-1保存到存储器120-1。应用文件125-1与特定应用程序170-1相关联。
在框203,逻辑流程200向待存储的应用文件分配GUID。例如,应用程序170-1的文件管理器组件173-1向特定应用文件125-1分配GUID,它包括与特定客户机设备110-1相关联的机器标识符305(图3)和与存储在客户机设备110-1内的唯一路径中的特定应用文件125-1相关联的本地文件路径部分310(图3)。在框205,逻辑流程200将应用文件存储在存储器中。例如,与应用程序170-1相关联的应用文件125-1可被存储在客户机110-1的存储器120-1中。
在框207,逻辑流程200使用所存储的应用文件的GUID来更新最近文件列表。例如,应用程序170-1的文件管理器组件173-1使用存储在存储器120-1中的应用文件的GUID来更新最近文件列表175-1。
在框211,逻辑流程200将最近文件列表发送给web服务器。例如,应用程序170-1所生成的最近文件列表175-1被经由网络140发送给文件读取服务器150以供服务器文件管理器155进行存储。如上所述,通过注册过程来对特定客户机设备110-1唯一地标识最近文件列表175-1。最近文件列表175-1上列出的每一应用文件(例如,125-1)包括标识其中存储每一应用文件(例如125-1)的特定客户机设备(例如,110-1)的GUID。以此方式,web服务160确定哪一应用文件(例如,125-1)被保存在哪一客户机设备(例如,110-1)上,如下文更详细地描述的。
图3是示出示例性GUID 300的框图。同样,在用户将与特定应用程序(例如,170-1)相关联的应用文件(例如,125-1)保存到特定客户机设备(例如,110-1)的存储器(120-1)本地时,向保存在本地的应用文件分配GUID 300。每一GUID 300被用来标识在最近文件列表175-1上提供的应用文件(例如,125-1)。因而,每一GUID 300与最近文件列表175-1上标识的每一应用文件(例如,125-1)之间存在一对一的对应关系。在文件读取服务器150从客户机设备110-1的文件管理器组件173-1接收最近文件列表175-1,并将它保存为漫游文件列表180,来自最近文件列表175-1的每一GUID 300被包括在漫游文件列表180中。因而,漫游文件列表180包括表示从客户机设备110-1接收到的最近文件列表175-1中标识的特定应用文件(例如,125-1)的每一GUID 300。
如图3所示,GUID 300可包括机器标识符305和本地文件路径部分310。GUID 300的机器标识符305标识其上保存应用文件125-1的特定机器或客户机设备(例如,110-1)。机器标识符305的一个示例可包括全局唯一的设备序列号或媒体访问控制(MAC)地址。或者,机器标识符305可由应用程序170-1随机分配,并且可以是对特定用户(例如,110-1)本地专用的而非对所有用户(例如,110-1……110-N)全局唯一的。例如,可向用户的台式计算机分配本地唯一标识符“机器1”,可向同一用户的膝上型计算机分配本地唯一标识符“机器2”,并且可向该用户的移动设备分配本地唯一标识符“机器3”。以此方式,已注册客户机设备对特定用户而言是唯一的,而该特定用户对所有用户而言是全局唯一的。
GUID 300的本地文件路径部分310标识特定客户机设备(例如,110-1)内的存储该应用文件(例如125-1)的位置和文件名,并且对特定客户机设备是唯一的。本地文件路径部分310的一个示例可包括其中存储应用文件的存储器路径,包括适当的硬盘驱动器、文件夹、以及文件名。保存在同一客户机设备(例如110-1)上的应用文件(例如,125-1)可具有GUID 300的相同的机器标识符305,但将具有包括不同本地文件路径的不同本地文件路径部分310,其中每一本地文件路径包括不同文件名,通常在本地文件路径的末尾用与特定应用程序(例如,170-1)相关联的文件扩展名来指示。相反,保存在不同客户机设备上的应用文件可具有相同的本地文件路径部分310,但将具有不同的机器标识符305。例如,保存在客户机设备110-1的硬盘驱动器上的应用文件125-1通常指示该特定驱动器指定连同一个或多个文件夹和/或子文件夹、应用文件125-1的文件名、以及用于指示与该所保存的应用文件相关联的特定应用程序170-1的文件扩展名。例如,本地文件路径部分310可包括以下:Computer→OS(C:)→Program Files→Microsoft Office→Office 15→test.docx因而,GUID 300提供与每一所保存的应用文件125-1……125-N相关联的标识符,使得在第一客户机设备110-1的机器状态处于开启状态的情况下,与保存在第一客户机设备110-1上的特定应用程序170-1相关联的最近文件列表175-1上标识的应用文件125-1……125-N中的一个或多个可由远程客户机设备(例如,110-2)访问。如更详细地描述的,如果客户机设备向web服务160进行了注册并且机器状态是开启,则存储在该客户机设备上的应用文件可供其他已注册客户机设备经由文件读取服务器150来下载。如果客户机设备向web服务160进行了注册,但机器状态是关闭,则存储在该客户机设备上的应用文件不可供其他已注册客户机设备下载。
图4结合第二客户机设备(例如,客户机设备110-2,它是与客户机设备110-1分开的设备)示出了文件读取系统100的框图。具体而言,客户机设备110-2可以是与上述客户机设备110-1相同的类型,但在物理上和逻辑上与客户机设备110-1分开。客户机设备110-2可以处于与客户机设备110-1相同或不同的位置,并且可包括对应的逻辑设备130-2和存储任何数量的应用文件126-1……126-N的存储器120-2。例如,客户机设备110-1可以是位于用户的办公室的台式计算机,且客户机设备110-2可以是便携式计算机;或者客户机设备110-1可以是用户家中的膝上型计算机,且客户机设备110-2可以是位于用户的办公室的台式计算机。
本文中使用术语“可用”或“不可用”旨在表明是否可使用文件读取系统100从远程客户机设备下载应用文件。在用户打开(对客户机设备110-1远程的)客户机设备110-2上的应用程序170-2时,应用程序170-2向web服务160发送用于检索保存在文件读取服务器150上的漫游文件列表180的控制指令。web服务160建立与保存在文件读取服务器150上的漫游文件列表180中标识的客户机设备110-1的安全通信会话,以确定相应机器的状态(例如,“开启状态”还是“关闭状态”)。如果最近文件列表175-1上标识的客户机设备110-1处于开启状态并且可由文件读取服务器150访问,则web服务160更新存储在文件读取服务器150上的漫游文件列表180以指示保存在客户机设备110-1上的漫游文件列表180上标识的一个或多个应用文件125-1……125-N是可用的。如果最近文件列表175-1上标识的客户机设备110-1处于关闭状态并且不可由文件读取服务器150访问,则web服务160更新存储在文件读取服务器150上的漫游文件列表180以指示保存在客户机设备110-1上的漫游文件列表180上标识的一个或多个应用文件125-1……125-N是不可用的。
或者,web服务160可以将漫游文件列表180发送给客户机设备110-2并随后在将漫游文件列表180显示给客户机设备110-2的用户之前基于客户机设备110-1的机器状态发送一个或多个更新以指示应用文件(例如,125-1……125-N)中的每一个的可用性。作为另一替换方案,web服务160可以将漫游文件列表180发送给客户机设备110-2并且在漫游文件列表180被显示给客户机设备110-2之后,但在web服务160更新客户机设备110-1的机器状态时,还可向客户机设备110-2发送后续更新。以此方式,如果客户机设备110-1的机器状态在web服务将漫游文件列表180发送给客户机设备110-2时是关闭的,但客户机设备110-1的机器状态变成开启状态,则web服务160向已经显示给客户机设备110-2的用户的漫游文件列表180提供这一更新。为易于解释,将理解,应用文件125-1将表示可在与客户机设备110-1相关联的漫游文件列表180上标识的应用文件125-1……125-N中的一个或多个。如果在保存在文件读取服务器150上的漫游文件列表180中标识的客户机设备110-1不处于开启状态,或者因其他原因不可由文件读取服务器150访问,则web服务160更新最近文件列表175-1以指示保存在客户机设备110-1上的漫游文件列表180上标识的应用文件125-1是不可用的。一旦最近文件列表175-1上标识的客户机设备110-1的机器状态被更新成开启或关闭,web服务160就经由网络140将经更新的漫游文件列表180发送给远程客户机设备110-2上的应用程序170-2,以指示保存在该客户机设备上的应用文件是可用的还是不可用的。在漫游文件列表180上的基于对应的客户机设备110-1的机器状态而被标识为不可用的应用文件125-1在漫游文件列表180被提供给应用程序170-2的文件管理器组件173-2时仍然被标识在该漫游文件列表中,但被指示为是不可用的,如参考图8更详细地描述的。或者,web服务160可以从漫游文件列表180中移除不可用的应用文件,并且只向客户机设备110-2提供可用应用文件(125-1……125-N)的列表。以此方式,客户机设备的机器状态(例如,开启或关闭)指定存储在客户机设备上的应用文件对其他客户机设备是可用的还是不可用的。
图5示出图4的文件读取系统的逻辑流程500的一实施例。逻辑流程500可表示由在此所描述的一个或多个实施例(诸如例如客户机设备110-2)所执行的操作中的一些或全部。
在图5所示的实施例中,在框501,逻辑流程500监视对客户机设备上的应用程序的访问。例如,在用户访问客户机设备110-2上的应用程序170-2时,应用程序170-2生成最近文件列表175-2,但等待用来自漫游文件列表180的标识存储在已注册客户机设备110-1上的某些应用文件125-1的应用文件信息来更新最近文件列表175-2。
在框503,逻辑流程500向web服务器请求客户机设备110-1的漫游文件列表。例如,应用程序170-2的文件管理器组件173-2或应用程序170-2建立与文件读取服务器150的安全通信会话,以使web服务160将漫游文件列表180发送给客户机设备110-2。
在发送漫游文件列表之前,在框505,逻辑流程500确定来自web服务的漫游文件列表中标识的每一客户机设备的状态。例如,在将漫游文件列表180发送给客户机设备110-2之前,服务器文件管理器155利用web服务160来确定与保存在客户机设备110-1本地的最近文件列表175-1中标识的每一GUID300的机器标识符305相对应的客户机设备110-1的状态(例如,开启状态还是关闭状态)。作为另一示例,漫游文件列表180可被发送给客户机上110-2,并随后由web服务160基于客户机设备110-1的机器状态来更新。在漫游文件列表180上标识的应用文件可用的情况下,逻辑流程500在框507使用可用指示符来更新漫游文件列表,并且在漫游文件列表上标识的应用文件不可用的情况下,逻辑流程500在框509使用不可用指示符(与可用指示符不同)来更新漫游文件列表180。例如,如果漫游文件列表180包括带有GUID 300的应用文件,该GUID 300具有对应于客户机设备110-1的机器标识符305,则web服务160检查客户机设备110-1的机器状态。为了确定客户机设备110-1的机器状态,web服务160尝试经由网络140使用例如SOAP消息收发来在文件读取服务器150和客户机设备110-1之间建立通信连接。如果客户机设备110-1的机器状态是开启,则web服务160使用可用指示符来更新漫游文件列表180上标识的、具有与客户机设备110-1相对应的GUID 300的机器标识符305的应用文件。如果客户机设备110-1的机器状态是关闭,则web服务160不能建立文件读取服务器150与客户机设备110-1之间的安全通信会话。在这后一种情况下,用不可用指示符来更新在最近文件列表175-1上标识的、具有与客户机设备110-1相对应的GUID 300的机器标识符305的应用文件125-1……125-N。或者,基于客户机设备110-1的关闭机器状态的不可用应用文件125-1……125-N可从漫游文件列表180中移除。经更新的漫游文件列表180被保存在文件读取服务器150上。以此方式,客户机设备110-2下载、打开、或以其他方式访问漫游文件列表180中标识的应用文件的可用性是基于客户机设备110-1的机器状态来更新的。
在框511,逻辑流程500将经更新的漫游文件列表发送给客户机设备110-2。例如,一旦服务器文件管理器155确定了漫游文件列表180上由对应的GUID300标识的客户机设备110-1的机器状态,并且用对应的指示符更新了最近文件列表180以表明存储在与GUID 300的机器标识符305相对应的客户机设备110-1上的应用文件是可用的还是不可用的,服务器文件管理器155就利用web服务160来将经更新的漫游文件列表180发送给客户机设备110-2。
图6结合在从文件读取服务器150接收到漫游文件列表180后的客户机设备110-2示出了文件读取系统100的框图。具体而言,最近文件列表175-2与保存在客户机设备110-2本地的关联于应用程序170-2的应用文件126-1……126-N相关联。在客户机设备110-2经由在文件读取服务器150与客户机设备110-2之间建立的通信链路从文件读取服务器150接收到漫游文件列表180时,文件管理器组件173-2将漫游文件列表180与最近文件列表175-2相组合以生成漫游文件列表181。同样,漫游文件列表180由web服务160更新以基于客户机设备110-1的机器状态来指示存储在客户机设备110-1上的应用文件对客户机设备110-2可用还是不可用。因而,漫游文件列表181是漫游文件列表180和最近文件列表175-2的组合,指示对客户机设备110-2的用户可用的应用文件以及不可用的应用文件。或者,在对客户机设备110-1、110-2两者使用单个漫游列表的情况下最近文件列表175-2可被添加到漫游文件列表180。
图7示出漫游文件列表181的功能框图。具体而言,漫游文件列表181是客户机设备110-2经由网络140从文件读取服务器150接收到的漫游文件列表180和与存储在客户机设备110-2本地上的一个或多个应用文件126-1……126-N相关联的最近文件列表175-2的组合。漫游文件列表180上标识的由于对应的客户机设备110-1的机器状态(例如,关闭)而不可用的应用文件125-1仍然被标识在漫游文件列表181中,但被指示为对客户机设备110-2的用户不可用。
图8A示出漫游文件列表181的用于与示例性客户机设备110-2相关联的可用和不可用应用文件的可视化的示例性用户界面视图800。示例性用户界面视图800由文件管理器组件173-2产生,并且在打开应用程序170-2时和/或在用户请求例如打开所保存的文件等特定操作时发起。用户界面视图800可经由与客户机设备110-2相关联的输出设备(例如,显示器)来显示给用户。
同样,漫游文件列表181包括分别来自应用文件列表175-2和漫游文件列表180的应用文件125、126。作为示例并处于解释的目的,应用文件列表175-2可包括存储在客户机设备110-2本地的应用文件126-1和126-2,并且漫游文件列表180可包括存储在远程客户机设备110-1上的应用文件125-1、125-2以及125-3。在这一特定示例中,客户机设备110-1可被称为“远程客户机设备”,因为它在物理上远离包括漫游文件列表181的客户机设备110-2。因而,漫游文件列表181的用户界面视图800列出了来自最近文件列表175-2的应用文件126-1和126-2(存储在客户机设备110-2本地并对其可用)以及来自漫游文件列表180的保存在客户机设备110-1上的应用文件125-1、125-2和125-3。应用文件125-1、125-2、125-3、126-1以及126-2各自分别具有对应的GUID300-1……300-5。每一应用文件125-1、125-2、125-3、126-1以及126-2可具有相关联的状态指示符以向用户表明特定应用文件125-1、125-2、125-3、126-1以及126-2对客户机设备110-2可用还是不可用。例如,应用文件125-1、125-2和125-3被示为具有包括粗体文本的状态指示符,以指示这些应用文件没有被保存在用户设备110-2本地。应用文件126-1和126-2不具有这样的粗体文本,因为它们被标识在最近文件列表175-2上,保存在客户机设备110-2本地并对其可用。
粗体文本是表明漫游文件列表181上的应用文件125-1、125-2、125-3、126-1以及126-2未被保存在客户机设备110-2本地的视觉指示的示例。作为示例而非限制,与应用文件名125-1、125-2和125-3相关联的粗体文本可以是绿色表示,以指示这些应用文件没有被保存在客户机设备110-2本地,但对客户机设备110-2而言,每一个都是可从远程客户机设备110-1获得的。或者,与应用文件125-1、125-2和125-3相关联的粗体文本可以是红色表示,以指示这些应用文件没有被保存在客户机设备110-2本地并且对客户机设备110-2的用户不可用。缺少与应用文件126-1和126-2相关联的色彩可指示这些应用文件被保存在客户机设备110-2本地并且对用户可用。可以明白,也可使用其他视觉指示符以及其组合。
图8B示出漫游文件列表181的用于与示例性客户机设备110-2相关联的可用和不可用应用文件的可视化的另一示例性用户界面视图840。漫游文件列表181的用户界面840示出了应用文件125-1、125-2、125-3、126-1以及126-2的列表,各应用文件分别具有对应的GUID 300-1……300-5。应用文件125-1、125-2、125-3、126-1以及126-2中的特定一些可具有相关联的指示符以向用户表明特定应用文件125-1、125-2、125-3、126-1以及126-2是可用的还是不可用的。例如,图标810-1、810-2、以及810-3可以分别位于应用文件125-1、125-2、125-3旁边,以指示这些应用文件125-1、125-2、125-3没有被保存在客户机设备110-2本地,并且还可被着色以指示这些应用文件是否对客户机设备110-2可用。继续该示例,图标810-1、810-2、以及810-3可以位于应用文件125-1、125-2、125-3旁边,以指示这些应用文件125-1、125-2、125-3没有被保存在客户机设备110-2本地,但还可被着色成红色以指示这些应用文件125-1、125-2、125-3对客户机设备110-2是不可用的。或者,图标810-1、810-2、以及810-3可以位于应用文件125-1、125-2、125-3旁边,以指示这些应用文件125-1、125-2、125-3没有被保存在客户机设备110-2本地,但还可被着色成绿色以指示这些应用文件125-1、125-2、125-3对客户机设备110-2是可用的。因而,图标810-1、810-2以及810-3可以提供备选视觉指示,以指示漫游文件列表181上的某些应用文件对客户机设备110-2的用户是否可用。
图8C示出漫游文件列表181的用于与示例性客户机设备110-2相关联的可用和不可用应用文件的可视化的又一示例性用户界面视图850。漫游文件列表181的用户界面850示出了应用文件125-1、125-2、125-3、126-1以及126-2的列表,各应用文件分别具有对应的GUID 300-1……300-5。同样,与应用文件125-1、125-2、125-3相关联的粗体文本可以表示没有保存在客户机设备110-2本地的文件的色彩代码,应用文件126-1和126-2缺少这样的粗体文本指示这些应用文件被存储在客户机设备110-2本地并且对其可用。。
作为另一示例性替换方案,应用文件125-1、125-2、125-3还可具有相关联的图标810-1、810-2和810-3作为进一步视觉指示,以指示应用文件是可用还是不可用。因而,与应用文件125-1、125-2、125-3相关联的粗体文本可以表示绿色,以指示这些应用文件没有保存在客户机设备110-2本地,其中相关联的图标810-1、810-2和810-3也被着色成绿色以指示相关联的客户机设备(客户机设备110-1)的机器状态是开启状态并且应用文件125-1、125-2、125-3是可用的,但在能由用户访问之前必须被下载到客户机设备110-2。或者,粗体文本可以表示红色以指示应用文件125-1、125-2、125-3没有被存储在客户机设备110-2本地,并且相关联的图标810-1、810-2和810-3也被着色成红色以指示存储应用文件125-1、125-2、125-3的客户机设备(例如,客户机设备110-1)的机器状态是关闭状态并且因此应用文件125-1、125-2、125-3是不可用的。以此方式,用户可容易地在视觉上标识保存在本地的这些文件和可从远程设备获得的那些文件以及存储在远程客户机设备上但不可用的那些文件。同样,如果应用文件存储在客户机设备110-2本地,或者如果它被存储在远程客户机设备(例如,110-1)并且该远程客户机设备的机器状态是开启状态,则该应用文件对用户可用。
图9示出文件读取系统100的框图,其中与应用文件125-1最初被存储在本地的客户机设备110-1不同的客户机设备110-2下载了应用文件(例如,125-1)。在这一特定使用场景中,客户机设备110-1可被称为“远程客户机设备”,因为它在物理上远离正下载应用文件125-1的客户机设备110-2,并且客户机设备110-2可被称为“本地客户机设备”,因为它实际上正执行下载操作。另外,为易于解释,存储在客户机设备110-1上的应用文件125-1表示存储在远程客户机设备110-1(在图1中示出)的存储器120-1中的应用文件125-1……125-N中的、被选择下载到客户机设备110-2的一个应用文件。然而,应当理解,保存在远程客户机设备110-1上的并且标识在漫游文件列表181上的应用文件125-1……125-N中的任一个可被选择下载到客户机设备110-2。
例如,客户机设备110-2的用户可以请求经由文件读取服务器150和网络140下载被保存在远程客户机设备101-1(在图1中示出)的、漫游文件列表181上标识的应用文件125-1。具体而言,客户机设备110-2上的用户可以经由例如图8A-8C中示出的用户界面来选择漫游文件列表181中标识的可用应用文件125-1。所选应用文件125-1可供基于web服务160所确定的远程客户机设备110-1的机器状态来下载,如以上参考图3-6所描述的。一旦客户机设备110-2的用户选择了应用文件125-1,文件管理器组件173-2经由网络140向文件读取服务器150发送用于指令web服务160检索存储在客户机设备110-1上的应用文件125-1的控制指令910。web服务160建立与客户机设备110-1的安全通信会话,并基于与所选应用文件125-1相关联的GUID来从存储器120-1读取或检索应用文件125-1。服务器文件管理器155接收应用文件125-1,并且使用web服务160所建立的通信会话来经由网络140将所返回的应用文件125-1从文件读取服务器150下载到客户机设备110-2。
如上所述,客户机设备110-1、110-2经由网络140与web服务160通信以传输最近文件列表175-1以及向文件读取服务器150传输并从中检索应用文件(例如,125-1)。存在着允许向web服务注册和与其通信(如经由网络140的web服务160)的标准web服务规范、体系结构、以及调用模型,如WebServices Interoperability Organization(WS-I)(web服务互操作性组织)所定义的。可以使用多个不同的技术来提供这种通信,这些技术中的任一种可被用来将客户机设备110-1、110-2向web服务160注册以及允许传输最近文件列表175-1、漫游文件列表180、181以及应用文件125-1。然而,作为背景,客户机设备110-1与web服务160之间的典型交互将被描述为以下一种方式的示例:客户机110-1与web服务160通信以将最近文件列表175-1和应用文件125-1传送到文件读取服务器150以及客户机设备110-1、110-2和web服务160之间的注册和通信。以下描述同样适用于web服务160与客户机设备110-1……110-N中的任一个之间的通信。
例如,为了与web服务160进行通信,客户机设备110-1的应用程序(例如,应用程序170-1)使用从web服务160获得的WSDL文件向web服务160发起过程调用。使用WSDL文件中定义的与web服务160相关联的服务端点来与web服务160建立通过网络140的HTTP通信信道。通过该HTTP连接使用SOAP和RPC将过程调用从应用程序170-1发送给web服务160。简言之,RPC是启用客户机设备110-1和web服务160之间的数据交互和功能调用的进程间通信机制。web服务160接受该过程调用,基于该过程调用来执行处理,并且经由所建立的HTTP通信信道通过网络140也使用SOAP和RPC来向客户机设备110-1返回响应。客户机设备110-1将响应从web服务160返回给应用程序170-1。这一过程一般描述可实现的客户机设备110-1……110-N与web服务160之间的注册、认证、以及通信的一种方式。
图10示出图9的系统的逻辑流程1000的一个实施例。逻辑流程1000可表示由在此所描述的一个或多个实施例(诸如例如客户机设备110-2)所执行的操作中的一些或全部。
在图10中示出的实施例中,在框1010,用户选择存储在远程客户机设备上的可用应用文件,其中应用文件的可用性是基于该远程客户机设备的机器状态的。例如,文件管理器组件173-2处理来自用户的请求以选择保存在远程客户机设备110-1上的应用文件125-1。应用文件125-1具有基于客户机设备110-1的机器状态的相关联的可用性指示符。具体而言,如果客户机设备110-1的机器状态是开启,则对应于漫游文件列表181中包括的所选应用文件125-1的GUID 300具有相关联的视觉指示,以指示应用文件125-1是可从客户机设备110-1获得的。
在框1020,特定客户机设备的文件管理器组件发送用于从远程客户机设备检索用户所选择的可用应用文件的控制指令。例如,客户机设备110-2的文件管理器组件173-2经由网络140向文件读取服务器150发送控制指令910,以指令服务器文件管理器155经由web服务160检索存储在远程客户机设备110-1上的所选应用文件125-1。
在框1040,控制指令由文件读取服务器150接收,以检索客户机设备110-2的用户所选择的可用应用文件。例如,文件读取服务器150从客户机设备110-2接收控制指令910,并且web服务160建立与远程客户机设备110-1的安全通信会话。
在框1060,经由在web服务160与远程客户机设备110-1之间建立的安全通信会话来从远程客户机设备110-1检索可用应用文件。例如,web服务160基于与其相关联的GUID 300从远程客户机设备110-1的存储器120-1读取或检索所选应用文件125-1,并且文件读取服务器150上的文件管理器155接收所选应用文件125-1。
在框1080,将可用应用文件从文件读取服务器150发送给客户机设备110-2。例如,文件读取服务器150上的服务器文件管理器155使用由web服务160建立的客户机设备110-2与文件读取服务器150之间的通信会话经由网络140将可用应用文件125-1发送给客户机设备110-2。
在框1090,将所选应用文件下载到客户机设备110-2。例如,客户机设备110-2经由文件读取服务器150下载从客户机设备110-1检索到的所选应用文件125-1,并且用户使用文件管理器组件173-2和应用程序170-2打开该文件。
图11示出文件读取系统100的框图,其中客户机设备110-2(并且具体而言是文件管理器组件173-2)经由网络140将应用文件125-1保存到网络服务器950。具体而言,如以上参考图10的系统所述,文件管理器组件173-2从文件读取服务器150下载应用文件125-1。在客户机设备110-2的用户利用应用程序170-2(并且具体而言是文件管理器组件173-2)来打开应用文件125-1时,文件管理器组件173-2经由用户界面和输出设备(例如,显示器)向该用户显示以下提示:所下载的文件是“只读”的。在客户机设备110-2的用户保存和/或使用应用程序170-2修改并保存应用文件125-1的情况下,用户可以通过经由网络140将应用文件125-1上传到网络服务器950来这样做。网络服务器950的示例可包括但不限于:MICROSOFT SHAREPOINT SERVER、MICROSOFTWINDOWS LIVE
Figure BDA00002316368300211
MICROSOFT LYNC SERVER、MICROSOFTOFFICE FORMS SERVER、MICROSOFT OFFICE
Figure BDA00002316368300212
SERVER、MICROSOFT OFFICE PROJECT SERVER、MICROSOFT OFFICE PROJECTPORTFOLIO SERVER、以及MICROSOFT OFFICE
Figure BDA00002316368300213
SERVER。具体而言,文件管理器组件173-2向网络服务器950上的服务器应用程序发送用于保存应用文件125-1的控制指令。一旦在网络服务器950和客户机设备110-2之间建立了通信会话,应用文件管理器组件173-2就经由网络140将应用文件125-1发送给服务器950。
因为所下载的文件是只读格式,所以在应用文件125-1的新版本被保存和/或应用文件125-1被重命名的情况下,用户可将应用文件125-1保存到客户机设备110-2上的本地存储器120-2。在任一情况下,文件管理器组件173-2将生成专用于应用文件125-1的重命名版本或新版本的新GUID 300,并且将用应用文件125-1的重命名版本或新版本来更新与应用程序170-2相关联的漫游文件列表181。在应用文件125-1被保存成新版本的情况下,可以实现各种版本化和同步过程来在客户机设备110-1和110-2之间协调应用文件125-1的各版本。在任一情况下,下载到客户机设备110-2的但被保存成不同文件或版本的应用文件125-1将收到新GUID 300,并且将不再与最初保存在客户机设备110-1上的应用文件125-1相关联。
图12示出文件读取系统100框图,其中用网络标识符960来更新漫游文件列表181中的与从客户机设备110-1下载并被保存到网络服务器950的应用文件相关联的GUID,以标识该应用文件的较新版本被存储在何处。因为应用文件125-1被从远程客户机设备110-1下载到客户机设备110-2并被保存到网络服务器950,所以系统100用网络标识符960更新应用文件125-1的GUID以在该同一应用文件的两个版本之间进行区分,即最初存储在客户机设备110-1上的应用文件和由用户存储在网络服务器950上的该应用文件的相同版本或较新版本。
具体而言,在用户将应用文件125-1保存在网络服务器950上时,网络标识符960被发送到应用程序170-2的文件管理器组件173-2。网络标识符960可以是指示应用文件125-1被存储在网络服务器950上的何处的网络服务器文件路径。这样的网络服务器文件路径的示例可以是统一资源标识符(URI)或其他专用网络服务器文件路径。
文件管理器组件173-2接收网络标识符960并将该网络标识符添加到与漫游文件列表181上的应用文件125-1相关联的GUID。具体而言并且如以上参考图7描述的,漫游文件列表181包括与客户机设备110-1相关联的从文件读取服务器150接收到的漫游文件列表180和与客户机设备110-2本地的应用程序170-2相关联的最近文件列表175-2。因为应用文件125-1的源最初是客户机设备110-1,所以与应用文件125-1相关联的GUID 300包括客户机设备110-1的机器标识符305和本地文件路径部分310,该本地文件路径部分标识客户机设备110-1内的存储该应用文件125-1的位置和文件名。然而,应用文件125-1随后被客户机设备110-2的用户存储在网络服务器950上,这是与客户机设备110-1(即,该应用文件的初始源)不同的位置。网络标识符960表示最初从客户机设备110-1检索到的应用文件125-1的新的保存位置。以此方式,与应用文件125-1相关联的GUID 300可被更新以包括网络标识符960,连同表示客户机设备110-1的机器标识符305和本地文件路径部分310的先前GUID信息。
图13是与保存在网络服务器950上的应用文件125-1相关联的示例性GUID 970的框图。应当理解,根据本公开内容,虽然以下描述是参考应用文件125-1进行的,但GUID 970的格式同样适用于由第二客户机设备(例如110-2)从第一客户机设备(例如110-1)下载并保存到网络服务器(例如950)的任何应用文件。图13中示出的GUID 970可类似于图3中示出的GUID 300,但用附加信息进行了修改。例如,GUID 970包括机器标识符305、本地文件路径部分310、以及网络标识符960。机器标识符305标识其上最初保存应用文件125-1的特定机器或客户机设备,在该示例中是客户机设备110-1。GUID 970的本地文件路径部分310标识与特定应用程序170-1相关联的、在客户机设备110-1内存储应用文件125-1的位置和文件名。网络标识符960可表示网络服务器950上的存储应用文件125-1的文件路径,它被添加到机器标识符305和本地文件路径部分310以构成GUID 970。
图14示出文件读取系统100的框图,其中由客户机设备110-2的文件管理器组件173-2生成的漫游文件列表182被经由网络140发送给文件读取服务器150。一旦应用文件被存储在了网络服务器950上,漫游文件列表182就被系统100用来识别出最初存储在客户机设备110-1本地的应用文件的较新版本被存储在网络服务器上并且向用户警告该应用文件的这一较新版本。例如,如果用户不再使用客户机设备110-2,而是返回使用客户机设备110-1并尝试访问应用文件125-1,则向该用户警告应用文件125-1的较新版本被存储在网络服务器950上。随后向该用户给出访问存储在网络服务器950上的较新版本还是访问存储在客户机设备110-1本地的初始版本的选项。正是由于使用了漫游文件列表182(从客户机设备110-2发送给文件读取服务器150并稍后与客户机设备110-1的最近文件列表175-1进行比较)才使得系统100能够向用户警告应用文件的较新版本是可用的。
具体而言,如参考图11所述,在应用文件125-1被存储在网络服务器950上时,与应用文件125-1相关联的GUID 970是从漫游文件列表181中标识的GUID 300进行修改得到的。同样,漫游文件列表181包括保存在客户机设备110-1上的应用文件,以及与保存在客户机设备110-2本地的、应用程序170-2的应用文件126-1……126-N相关联的最近文件列表175-2。在应用文件125-1被存储在网络服务器950上时,文件管理器组件173-2用GUID 970更新漫游文件列表181并生成漫游文件列表182。以此方式,漫游文件列表182包括最近文件列表175-2以及保存到网络服务器950的应用文件125-1的GUID 970。漫游文件列表182被文件管理器组件173-2经由网络140发送到文件读取服务器150,并且与客户机设备110-1的最近文件列表175-1进行比较(如下所述)以确定应用文件125-1的较新版本是否对用户可用。漫游文件列表182可在使用应用程序170-2期间由文件管理器组件173-2按各种预定时间间隔发送到文件读取服务器150,或可在出现了来自应用程序170-2的特定指令之后发送。
图15示出漫游文件列表182的框图。漫游文件列表182是漫游文件列表181和与漫游文件列表181上标识的一个或多个应用文件相关联的网络标识符960的组合。具体而言,漫游文件列表181是漫游文件列表180中标识的应用文件与最近文件列表175-2上标识的应用文件的组合。同样,漫游文件列表180标识保存在客户机设备110-1上的应用文件,并且最近文件列表175-2标识保存在客户机设备110-2本地的应用文件。在应用文件125-1被保存到网络服务器950时,向应用文件125-1的GUID 300分配网络标识符960以构成GUID 970。文件管理器组件173-2用与应用文件125-1相关联的GUID 970更新漫游文件列表181来生成漫游文件列表182。以此方式,漫游文件列表182包括:(i)基于接收到的漫游文件列表180的保存在客户机设备110-1上的应用文件125-1……125-N;(ii)来自文件管理器173-2的最近文件列表175-2上标识的、客户机设备110-2本地的应用文件126-1……126-N;(iii)客户机设备110-2从客户机设备110-1接收到的、但被保存到网络服务器950的应用文件125-1……125-N。漫游文件列表182上标识的由于客户机设备110-1的机器状态而不可用的应用文件仍然被标识在漫游文件列表182中,但被指示为对客户机设备110-2的用户不可用,与图8A-8C的示例性用户界面视图相一致。
图16示出文件读取系统100的框图,其中客户机设备110-1的用户打开应用程序173-1以检索先前保存在设备110-1本地的应用文件。应用程序173-1将控制指令发送到web服务160以检索先前从客户机设备110-2保存在文件读取服务器150上的漫游文件列表182。将漫游文件列表182与关联于应用程序170-1的最近文件列表175-1进行比较。同样,最近文件列表175-1列出由与特定应用程序170-1相关联的客户机设备110-1的用户访问的应用文件125-1……125-N中的某一些。
在用户选择最近文件列表175-1上标识的特定应用文件125-1……125-N时,文件管理器组件173-1检查保存在文件读取服务器150上的漫游文件列表182以确定所选应用文件125-1……125-N是否具有新位置。具体而言,文件管理器组件173-1检查来自最近文件列表175-1的所选应用文件125-1……125-N的GUID(例如,300)与漫游文件列表182上的同一应用文件的GUID(例如,300)。如果最近文件列表175-1上的所选应用文件125-1……125-N的GUID(例如,300)与漫游文件列表182上的同一应用文件的GUID(例如,300)相匹配,则文件管理器组件173-1打开存储在存储器120-1中的所选应用文件125-1……125-N。如果最近文件列表175-1上的所选应用文件125-1……125-N的GUID(例如,300)与漫游文件列表182上的同一应用文件125-1……125-N的GUID(例如,970)不匹配,则文件管理器组件173-1利用不匹配的GUID(例如,970)的网络标识符960来向网络服务器950发送请求以从网络服务器950检索该应用文件125-1……125-N。作为示例,所选应用文件125-1的在最近文件列表175-1上标识的GUID 300包括对应的机器标识符305和本地文件路径部分310。然而,如果同一应用文件125-1被用户经由客户机设备110-2保存到网络服务器950,则除机器标识符305和本地文件路径部分310外,GUID970还将包括网络标识符960。因而,在应用文件125-1已被保存到新位置(例如,网络服务器950)的情况下,同一应用文件125-1的GUID 300将不匹配。在这种情况下,文件管理器组件173-1向用户呈现提示,指示所选应用文件125-1的新版本可用以及用户是否想要切换到保存在网络服务器950上的应用文件125-1。
图17示出文件读取系统100的逻辑流程1700的一个实施例。逻辑流程1700可以表示由本文描述的一个或多个实施例执行的操作中的一些或全部,如检索最初由客户机设备110-1上的用户保存但随后由客户机设备110-2上的用户下载并保存到网络服务器950的应用文件。
在图17所示的实施例中,逻辑流程1700对照漫游文件列表来检查应用文件的GUID。例如,在用户经由最近文件列表175-1选择应用文件125-1(最初保存在客户机设备110-1本地)时,文件管理器组件173-1检查保存在文件读取服务器150上的漫游文件列表182以确定所选应用文件125-1是否具有新的保存位置。或者,漫游文件列表182可从文件读取服务器150下载并保存到客户机设备(例如,110-1),在这种情况下,在用户选择应用文件125-1来确定它是否具有新的保存位置时,文件管理器组件173-1检查本地客户机设备110-1上的漫游文件列表182。这一替换方案提供系统性能,因为文件管理器组件173-1不必与文件读取服务器150进行通信,而是在客户机设备110-1本地执行检查。
在框1705,逻辑流程1700确定最近文件列表上的GUID是否与漫游文件列表上的GUID相匹配。例如,文件管理器173-1检查来自最近文件列表175-1的所选应用文件125-1的GUID与漫游文件列表182上的同一应用文件1125-1的GUID以确定它们是否匹配。
如果最近文件列表上的GUID与漫游文件列表上的同一应用文件的对应的GUID相匹配,则在框1707,逻辑流程1700从本地客户机设备打开应用文件。例如,如果最初保存在客户机设备110-1上的应用文件125-1没有被保存到网络服务器950,则最近文件列表175-1上标识的应用文件125-1的GUID 300将与漫游文件列表182上标识的应用文件125-1的GUID 300相匹配。这指示应用文件125-1的新版本不存在。因而,文件管理器173-1打开存储在客户机设备110-1的存储器120-1本地中的应用文件125-1。
如果最近文件列表上的GUID与漫游文件列表上的同一应用文件的对应的GUID不匹配,则在框1709,逻辑流程1700呈现提示,指示所选应用文件的新版本可用。例如,如果应用文件125-1最初保存在客户机设备110-1上但随后被客户机设备110-2的用户访问并被保存到网络服务器950,则最近文件列表175-1中标识的GUID 300与最近文件列表182中标识的针对同一应用文件125-1的GUID 970将不匹配。具体而言,在最近文件列表175-1上标识的所选应用文件125-1的GUID 300包括对应的机器标识符305和本地文件路径部分310。然而,因为同一应用文件125-1被用户经由客户机设备110-2保存到网络服务器950,则除机器标识符305和本地文件路径部分310外,GUID 970还将包括网络标识符960。因而,同一应用文件125-1的GUID 300和970将不匹配,并且将向用户呈现提示,指示应用文件125-1的较新版本可从网络服务器950获得。
在框1711,逻辑流程1700基于指示所选应用文件的新版本可用的提示的呈现,来确定用户是否选择应用文件的较新版本。例如,文件管理器组件173-1确定客户机设备110-1的用户是否选择了保存在网络服务器950上的应用文件125-1的较新版本。如果用户没有选择应用文件125-1的较新版本,则在框1707,逻辑流程打开保存在本地客户机设备上的应用文件125-1。例如,如果用户没有选择打开应用文件125-1的保存在网络服务器950上的较新版本,则应用管理器组件173-1打开保存在客户机设备110-1的存储器120-1中的应用文件125-1。
如果用户选择了应用文件的新版本,则在框1713,逻辑流程1700从网络服务器检索应用文件。例如,如果用户选择打开应用文件125-1的保存在网络服务器950上的较新版本,则文件管理器组件173-1从网络服务器950检索该应用文件。
图18示出示例性计算体系结构1800的实施例,如适于实现上述系统100的各实施例的客户机设备110-1和110-2。计算体系结构1800包括各种常见计算元件,如一个或多个处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件,等等。然而,各实施例不限于由计算体系结构1800来实现。
如图18所示,计算体系结构1800包括处理单元1804、系统存储器1806以及系统总线1808。处理单元1804可以是可购得的各种处理器中的任一种。双微处理器和其他多处理器架构也可用作处理单元1804。系统总线1808向包括但不限于系统存储器1806的各系统组件提供到处理单元1804的接口。系统总线1808可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。
例如,系统存储器1806可以包括各种类型的存储器单元,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、或适于存储信息的任何其他类型的介质。在图18示出的所示实施例中,系统存储器1806可包括非易失性存储器1810和/或易失性存储器1812。基本输入/输出系统(BIOS)可以存储在非易失性存储器1810中。
计算机1802可包括各种类型的计算机可读存储介质,包括内置硬盘驱动器(HDD)1814、用于读写可移动磁盘1818的磁软盘驱动器(FDD)1816、以及用于读写可移动光盘1822(例如,CD-ROM或DVD)的光盘驱动器1820。HDD 1814、FDD 1816、以及光盘驱动器1820可分别由HDD接口1824、FDD接口1826和光盘驱动器接口1828连接到系统总线1808。用于外置驱动器实现的HDD接口1824可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储在驱动器和存储器单元1810、1812中,包括操作系统1830、一个或多个应用程序1832(如应用程序170-1、170-2)、其他程序模块1834和程序数据1836。用户可以通过一个或多个有线/无线输入设备,例如键盘1838和诸如鼠标1840等定点设备将命令和信息输入到计算机1802中。其他输入设备可包括话筒、红外(IR)遥控器、操纵杆、游戏垫、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统总线1808的输入设备接口1842连接到处理单元1804,但也可通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其他接口连接。
监视器1844或其他类型的显示设备也经由诸如视频适配器1846等接口连接到系统总线1808。监视器1844是用于显示图8A-8C中示出的各视图的用户界面设备的示例。除了监视器1844之外,计算机还可包括诸如扬声器、打印机等其他外围输出设备。
计算机1802可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机1848)的逻辑连接在联网环境中操作。远程计算机1848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机1802描述的许多或所有元件,但为简明起见仅示出了存储器/存储设备1850。所描绘的逻辑连接包括到局域网(LAN)1852和/或例如广域网(WAN)1854等更大网络的有线/无线连接。这种LAN和WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN联网环境中使用时,计算机1802通过有线和/或无线通信网络接口或适配器1856连接到LAN 1852。适配器1856可以方便到LAN 1852的有线和/或无线通信,并且还可包括其上设置的用于使用适配器1856的无线功能进行通信的无线接入点。
当在WAN联网环境中使用时,计算机1802可包括调制解调器1858,或连接到WAN 1854上的通信服务器,或具有用于诸如通过因特网等通过WAN1854建立通信的其他装置。或为内置或为外置以及有线和/或无线设备的调制解调器1858经由输入设备接口1842连接到系统总线1808。在联网环境中,相对于计算机1802所描绘的程序模块或其部分可以存储在远程存储器/存储设备1850中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机1802可操作来使用IEEE 802标准系列来与有线和无线设备或实体进行通信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话进行无线通信(例如,IEEE 802.11空中调制技术)的无线设备。这至少包括Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为IEEE802.11x(a、b、g等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
图19示出适用于实现上述系统100的各实施例的示例性通信架构1900的框图。通信架构1900包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器,等等。然而,各实施例不限于由通信架构1900来实现。
如图19所示,通信架构1900包括一个或多个客户机1902和服务器1904。客户机1902可实现系统100。客户机1904可实现服务器系统150和/或950。客户机1902和服务器1904可操作地连接到可被用来存储相应客户机1902和服务器1904本地的信息(如cookie和/或相关联的上下文信息)的一个或多个相应客户机数据存储1908和服务器数据存储1910。
客户机1902和服务器1904可以使用通信框架1906在彼此之间传递信息。通信框架1906可实现任何公知通信技术和协议,诸如参考系统100所描述的那些。通信框架1906可以被实现为分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)。
本文描述的各实施例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。确定一实施例是否使用硬件元件和/或软件元件来实现可视给定实现所需根据任何数量的因素而变化,这些因素如所需计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
一些实施例可包括制品。制品可包括用于存储逻辑的存储介质。存储介质的示例可包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括各种软件元件,诸如软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。例如,在一个实施例中,制品可以存储可执行计算机程序指令,该指令在由计算机执行时使得该计算机执行根据所描述的各实施例的方法和/或操作。可执行计算机程序指令可包括任何合适类型的代码,诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码等。可执行计算机程序指令可根据用于指示计算机执行特定功能的预定义的计算机语言、方式或句法来实现。这些指令可使用任何合适的高级、低级、面向对象、可视、已编译和/或已解释编程语言来实现。
一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构、或特性包括在至少一个实施例中。出现在说明书中各个地方的短语“在一个实施例中”并不必全都指的是同一实施例。
一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些术语不必旨在互为同义词。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语“耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交互。
要强调的是,提供了本公开的摘要以符合37C.F.R.1.72(b)节要求使读者能快速确定本技术公开的特性的摘要。提交摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施例中。此公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中明确陈述的更多特征的意图。相反,如所附权利要求书所反映,发明性的主题存在于比单个已公开实施例的所有特征少的特征中。从而,据此将所附权利要求结合进详细描述中,其中每个权利要求独立地代表一个单独的实施例。在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三”等等只用作标记,而不旨在将数字要求强加于其对象上。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (15)

1.一种装置,包括:
能用于从文件读取服务器接收漫游文件列表的逻辑设备,所述漫游文件列表包括与存储在远程客户机设备上的应用文件相对应的应用文件标识符。
2.如权利要求1所述的装置,其特征在于,所述应用文件标识符包括与其上存储所述应用文件的远程客户机设备的身份相对应的机器标识符部分和与所述远程客户机设备内的存储位置相对应的文件路径部分。
3.如权利要求1所述的装置,其特征在于,所述漫游文件列表中的应用文件标识符包括表示其上存储所述应用文件的远程客户机设备的机器状态的状态指示符。
4.如权利要求1所述的装置,其特征在于,所述逻辑设备能用于经由所述文件读取服务器向所述远程客户机设备发送用于检索存储在所述远程客户机设备上的应用文件的控制指令。
5.如权利要求1所述的装置,其特征在于,所述逻辑设备能用于经由所述文件读取服务器接收存储在所述远程客户机设备上的应用文件。
6.如权利要求5所述的装置,其特征在于,所述逻辑设备能用于发送用于将从所述文件读取服务器接收到的应用文件保存到网络服务器的控制指令。
7.如权利要求6所述的装置,其特征在于,所述逻辑设备能用于使用与其上存储所述应用文件的网络服务器相关联的网络服务器标识符来更新所述漫游文件列表上的应用文件标识符。
8.如权利要求1所述的装置,其特征在于,所述逻辑设备能用于接收存储在所述远程客户机设备上的应用文件,将所述应用文件保存到网络服务器,以及使用与其上存储所述应用文件的网络服务器相关联的网络服务器标识符来更新所述漫游文件列表上的应用文件标识符。
9.一种方法,包括:
从第一客户机设备向文件读取服务器发送对漫游文件列表的请求;以及
由所述第一客户机设备从所述文件读取服务器接收所述漫游文件列表,其中所述漫游文件列表包括与保存在第二客户机设备上的应用文件相关联的全局唯一标识符(GUID),所述GUID包括标识所述第二客户机设备的机器标识符部分和标识存储在所述第二客户机设备上的应用文件的文件路径的本地文件路径部分。
10.如权利要求9所述的方法,其特征在于,包括接收所述漫游文件列表,所述漫游文件列表带有与关联于存储在所述第二客户机设备上的应用文件的GUID相对应的、指示所述第二客户机设备的机器状态的指示符。
11.如权利要求9所述的方法,其特征在于,包括:
从所述第一客户机设备发送控制指令,以指令所述文件读取服务器检索存储在所述第二客户机设备上的应用文件;以及
由所述第一客户机设备经由所述文件读取服务器接收存储在所述第二客户机设备上的应用文件。
12.如权利要求9所述的方法,其特征在于,所述应用文件标识符是与所述第二客户机设备上的、最初存储所述应用文件的位置相对应的初始应用文件标识符,所述方法包括:
由所述第一客户机设备打开从所述第二客户机设备接收到的应用文件;
将由所述第一客户机设备接收的所述应用文件保存到网络服务器;以及
使用与其上存储所述应用文件的网络服务器相对应的网络标识符来更新所述漫游文件列表上的应用文件标识符,以形成经更新的应用文件标识符。
13.如权利要求12所述的方法,其特征在于,向所述文件读取服务器发送带有所述网络标识符的漫游文件列表。
14.至少一个包括多个指令的机器可读介质,所述指令响应于在计算设备上执行而使得所述计算设备执行如权利要求9到13中任一项所述的方法。
15.一种装置,包括用于执行如权利要求9到13中的任一项所述的方法的装置。
CN201210418685.2A 2011-10-27 2012-10-26 从远程客户机设备进行文件读取 Active CN102970333B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/282,616 US8965958B2 (en) 2011-10-27 2011-10-27 File fetch from a remote client device
US13/282,616 2011-10-27

Publications (2)

Publication Number Publication Date
CN102970333A true CN102970333A (zh) 2013-03-13
CN102970333B CN102970333B (zh) 2016-12-21

Family

ID=47800213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210418685.2A Active CN102970333B (zh) 2011-10-27 2012-10-26 从远程客户机设备进行文件读取

Country Status (5)

Country Link
US (2) US8965958B2 (zh)
EP (1) EP2771803B1 (zh)
CN (1) CN102970333B (zh)
ES (1) ES2641439T3 (zh)
WO (1) WO2013063333A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279190A (zh) * 2014-07-21 2016-01-27 联想(北京)有限公司 信息处理方法、装置及电子设备
CN107003865A (zh) * 2014-10-31 2017-08-01 威睿公司 利用远程应用的文件共享
CN111131497A (zh) * 2019-12-31 2020-05-08 五八有限公司 文件传输方法、装置、电子设备及存储介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006053019A2 (en) 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US8965958B2 (en) * 2011-10-27 2015-02-24 Microsoft Corporation File fetch from a remote client device
US10057318B1 (en) 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9876849B2 (en) * 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
US10235152B2 (en) * 2015-06-05 2019-03-19 Apple Inc. System and method for downgrading applications
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US10169033B2 (en) * 2016-02-12 2019-01-01 International Business Machines Corporation Assigning a computer to a group of computers in a group infrastructure
US11860819B1 (en) * 2017-06-29 2024-01-02 Amazon Technologies, Inc. Auto-generation of partition key
US10684843B1 (en) * 2017-09-28 2020-06-16 American Megatrends International, Llc Firmware updates using updated firmware files in a dedicated firmware volume
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US11112941B2 (en) * 2018-11-06 2021-09-07 Dropbox, Inc. Content item creation from desktop tray
US11100053B2 (en) 2018-11-06 2021-08-24 Dropbox, Inc. Technologies for integrating cloud content items across platforms
CN111143607B (zh) * 2019-11-18 2024-05-24 视联动力信息技术股份有限公司 一种信息获取方法和装置
US11770454B2 (en) * 2020-12-14 2023-09-26 Citrix Systems, Inc. Native application integration for enhanced remote desktop experiences
JP2023137937A (ja) * 2022-03-18 2023-09-29 キヤノン株式会社 通信機能を備える電子機器、その制御方法及びプログラム
US20240061668A1 (en) * 2022-08-16 2024-02-22 Sap Se Automatic upgrade of on-premise software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027673A1 (en) * 2003-07-28 2005-02-03 Kabushiki Kaisha Toshiba Method and apparatus for handling digital content in a network
US20090150486A1 (en) * 1999-09-14 2009-06-11 Franco Louis M System and method for delivering remotely stored applications and information
CN101529437A (zh) * 2005-04-22 2009-09-09 微软公司 附近媒体的聚集和同步

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04130950A (ja) 1990-09-21 1992-05-01 Toshiba Corp ネットワークシステム
US6618752B1 (en) * 2000-04-18 2003-09-09 International Business Machines Corporation Software and method for multicasting on a network
US7165088B2 (en) * 2001-01-24 2007-01-16 Microsoft Corporation System and method for incremental and reversible data migration and feature deployment
US7024427B2 (en) * 2001-12-19 2006-04-04 Emc Corporation Virtual file system
US20040145605A1 (en) 2003-01-28 2004-07-29 Sujoy Basu Access method and system for remote desktops
JP4320195B2 (ja) * 2003-03-19 2009-08-26 株式会社日立製作所 ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法
US7412447B2 (en) 2004-03-01 2008-08-12 Fuji Xerox Co., Ltd. Remote file management using shared credentials for remote clients outside firewall
US20060075144A1 (en) 2004-09-24 2006-04-06 International Business Machines Corp. Remote access to a local hard drive
US7496611B2 (en) * 2005-04-18 2009-02-24 Microsoft Corporation Disambiguating globally unique identifiers after duplication
EP1802072B1 (en) 2005-12-22 2010-05-05 Microsoft Corporation Peer-to-peer message format
US20090070427A1 (en) 2007-09-07 2009-03-12 Gava Fabio M System and method for device-directed processing of remote desktop documents
US20090305778A1 (en) 2008-06-06 2009-12-10 Turbine, Inc. Installed game software sharing via peer-to-peer network
US8805787B2 (en) * 2009-10-30 2014-08-12 Verizon Patent And Licensing Inc. Network architecture for content backup, restoring, and sharing
US8965958B2 (en) * 2011-10-27 2015-02-24 Microsoft Corporation File fetch from a remote client device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150486A1 (en) * 1999-09-14 2009-06-11 Franco Louis M System and method for delivering remotely stored applications and information
US20050027673A1 (en) * 2003-07-28 2005-02-03 Kabushiki Kaisha Toshiba Method and apparatus for handling digital content in a network
CN101529437A (zh) * 2005-04-22 2009-09-09 微软公司 附近媒体的聚集和同步

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279190A (zh) * 2014-07-21 2016-01-27 联想(北京)有限公司 信息处理方法、装置及电子设备
CN105279190B (zh) * 2014-07-21 2021-07-16 联想(北京)有限公司 信息处理方法、装置及电子设备
CN107003865A (zh) * 2014-10-31 2017-08-01 威睿公司 利用远程应用的文件共享
CN107003865B (zh) * 2014-10-31 2021-01-12 威睿公司 利用远程应用的文件共享
CN111131497A (zh) * 2019-12-31 2020-05-08 五八有限公司 文件传输方法、装置、电子设备及存储介质
CN111131497B (zh) * 2019-12-31 2022-08-26 五八有限公司 文件传输方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
EP2771803A1 (en) 2014-09-03
CN102970333B (zh) 2016-12-21
US8965958B2 (en) 2015-02-24
ES2641439T3 (es) 2017-11-10
EP2771803B1 (en) 2017-06-28
WO2013063333A1 (en) 2013-05-02
US20130110903A1 (en) 2013-05-02
EP2771803A4 (en) 2015-06-17
US20150195338A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
CN102970333A (zh) 从远程客户机设备进行文件读取
US10122798B2 (en) System and process for managing network communications
US20230110131A1 (en) Internet of things
US10341468B2 (en) System and method for managing communications between a portable data terminal and a server
US11716356B2 (en) Application gateway architecture with multi-level security policy and rule promulgations
US9077717B2 (en) Propagation and adoption of extensions across applications in networked solutions
CN102067559B (zh) 所搜集媒体传输的远程选择和授权
US20130332524A1 (en) Data service on a mobile device
US20170249448A1 (en) System and method for updating downloaded applications using managed container
US7945675B2 (en) System and method for delegation of data processing tasks based on device physical attributes and spatial behavior
US8117297B2 (en) System and method of device-to-server registration
US8122130B2 (en) Access control system and method for wireless application provisioning
US9113282B2 (en) Mobile core client architecture
CN102770870A (zh) 专用网络文件服务器
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
CN103947153A (zh) 搜索网络中的对象的方法和系统
US20070261045A1 (en) Method and system of configuring a directory service for installing software applications
US20240031630A1 (en) Platform-agnostic media framework
KR101879812B1 (ko) 클라이언트 프로그램이 탑재된 사용자 단말, 클라우드 장치, 관리 서버 및 이를 포함하는 클라우드 서비스 시스템
US20150282121A1 (en) Local resource sharing method of machine to machine component and apparatus thereof
US10679391B1 (en) Mobile phone notification format adaptation
CA2606036C (en) Access control system and method for wireless application provisioning
Feng et al. A component-level self-configuring personal agent platform for pervasive computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant