CN103649945B - 最近使用的文档列表的自动同步 - Google Patents

最近使用的文档列表的自动同步 Download PDF

Info

Publication number
CN103649945B
CN103649945B CN201280030495.1A CN201280030495A CN103649945B CN 103649945 B CN103649945 B CN 103649945B CN 201280030495 A CN201280030495 A CN 201280030495A CN 103649945 B CN103649945 B CN 103649945B
Authority
CN
China
Prior art keywords
list
document
mru
user
file
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.)
Active
Application number
CN201280030495.1A
Other languages
English (en)
Other versions
CN103649945A (zh
Inventor
E.埃文斯
A.丰特
S.马基内尼
E.库特
C.韦布斯特
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN103649945A publication Critical patent/CN103649945A/zh
Application granted granted Critical
Publication of CN103649945B publication Critical patent/CN103649945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Abstract

提供最近使用的(MRU)客户端同步引擎来同步与客户端机器相关联的用户的最近使用的(MRU)文档列表和文件托管服务器的MRU文档列表。文件托管服务器的MRU文档列表包含存储在文件托管服务器上的用户的最近使用的文档的列表。存储在文件托管服务器上的用户的文档在一个或多个web启用的客户端机器上对用户而言是可访问的。MRU客户端同步引擎利用文件托管服务器的MRU文档列表来分析与用户在客户端机器上使用的文档有关的注册表数据,以确定用户的最近使用的文档。

Description

最近使用的文档列表的自动同步
背景技术
最近使用的(MRU)文档列表包含至用户最近已打开或保存的文档的链接。MRU文档列表是用于访问最近使用过的文档的便利机制。通过将这些链接存储在MRU文档列表中,用户不必导航至文档的位置来打开它。用户可以点击MRU文档列表中的链接并且快速访问文档而不知道该文档的位置。
用户的文档可以远程存储在通过web(网络)浏览器可访问的文件托管服务器上。用户可以通过web启用的(web-enabled)计算设备来访问存储在文件托管服务器上的文档。每一个计算设备具有MRU文档列表,其包含在登录到该计算设备上的同时用户最近从文件托管服务器以及其他位置中使用的文档。然而,计算设备中的MRU文档列表未必准确地反映用户可能从另一计算设备已使用的存储在文件托管服务器上的最近使用的文档。
发明内容
提供这个综述部分来以简化形式介绍下面在具体描述部分中进一步描述的概念的选择。这个综述部分并不打算用于标识所请求保护的主题的关键特性或基本特性,也不打算用于限制所请求保护的主题的范围。
用户可以将文档存储在web可访问的文件托管服务器中并使用任何的web可访问的客户端机器来访问这些文档。文件托管服务器包含MRU服务器文档列表,对于每一个用户而言,MRU服务器文档列表列出存储在文件托管服务器上的用户最近使用的文档。客户端机器包含MRU客户端文档列表,其包括存储在文件托管服务器和/或客户端机器上的用户最近使用的文档。每一个客户端机器可能不知道用户已从其他的客户端机器对存储在文件托管服务器上的用户的文档进行的访问。因此,在特别的客户端机器上的MRU文档列表未必准确地反映用户最近使用的文档。为了在多个web可访问的计算设备上维持用户最近使用的文档的统一视图(unified view),提供MRU同步引擎来同步MRU文档列表。
在实施例中,MRU同步引擎从文件托管服务器获得配置列表并将配置列表与存储在客户端机器的注册表中的文档条目进行比较。配置列表包含与存储在文件托管服务器上的用户最近使用的文档有关的配置数据。注册表是存储与用户从客户端机器中使用的文档有关的数据的客户端机器上的数据库。MRU同步引擎分析配置列表和注册表列表二者中的信息,以确定哪些文档已被最近使用了。另外,MRU同步引擎将保持MRU服务器文档列表为当前的所需要的更新通知文件托管服务器。
通过阅读下面的具体描述和审阅相关联的附图,这些以及其他的特性和优点将是显然的。将明白:前面的一般描述和下面的具体描述二者仅是解释性的并且不限制所请求保护的方面。
附图说明
图1说明用于自动同步MRU客户端文档列表与MRU服务器文档列表的示例系统。
图2说明用于自动同步MRU客户端文档列表与MRU服务器文档列表的另一示例系统。
图3是说明用于自动同步MRU文档列表的示例方法的流程图。
图4是说明用于执行同步MRU文档列表的操作的示例方法的流程图。
图5是注册表列表中的条目的示例布局。
图6是配置列表中的条目的示例布局。
图7是说明用于分析注册表列表和配置列表中的条目的示例方法的流程图。
图8是说明用于分析合并列表的示例方法的流程图。
图9是说明用于创建更新的MRU客户端文档列表的示例方法的流程图。
图10是说明示例操作环境的框图。
图11是说明示例客户端机器的框图。
图12是说明示例文件托管服务器的框图。
具体实施方式
各种实施例涉及用于自动同步引用共同集合的文档的多个MRU文档列表的技术。MRU文档列表是用户已最近使用的文档的列表。用户可以将文档存储在用户可以从任何的web启用的客户端机器中访问的web可访问的文件托管服务器中。文件托管服务器和web启用的计算设备各自包含列出用户最近已使用的存储在文件托管服务器上的用户的文档的MRU文档列表。用户可以使用若干客户端机器从文件托管服务器访问用户的文档。每一个客户端机器可能不知道用户从其他的客户端机器对这些文档的访问。因此,在特别的客户端机器上的MRU文档列表可能没有准确地反映用户最近使用的文档。为了在多个web启用的客户端机器上维持在文件托管服务器上存储的最近使用的文档的统一视图,提供在这些设备上同步用户的MRU文档列表的机制。
MRU同步引擎可以在客户端机器中被利用来同步MRU客户端文档列表与MRU服务器文档列表。MRU客户端文档列表包含至用户从客户端机器中使用过的最近使用的文档的链接。MRU服务器文档列表包含至存储在文件托管服务器上通过任何的客户端机器访问过的用户最近使用的文档的链接。
MRU同步引擎从文件托管服务器获得配置列表并将配置列表与客户端机器的注册表列表进行比较。配置列表包含与MRU服务器文档列表中的每一个文档有关的配置数据。注册表列表包含与用户在客户端机器上使用的每一个文档有关的配置数据。MRU同步引擎分析两个文件中的信息,以确定哪些文档是用户最近使用的文档。另外,MRU同步引擎将可能可归因于用户的来自客户端机器的使用的MRU服务器文档列表所需要的更新通知文件托管服务器。注意力现在转到用于执行这种同步的技术的更详细的描述。
图1说明用于自动同步MRU文档列表的示例系统100。系统100包括经由通信网络104耦合到文件托管服务器106的一个或多个客户端机器102a、120b(共同称为102)。客户端机器102可以是任何类型的计算设备,诸如个人计算机、服务器、笔记本计算机、膝上型计算机、台式计算机、个人数字助理、智能电话、蜂窝电话、寻呼机、消息传递设备、平板计算机、手持计算机等等。
文件托管服务器106可以是任何类型的web可访问的文件存储系统,诸如服务器、web服务器、网络服务器、存储服务器、文件共享服务器等等。文件托管服务器106的示例是Windows Live Sky Drive、Google Docs、Box.net等等。通信网络104促进在客户端机器102与文件托管服务器106之间的通信。通信网络104可以利用任何的通信协议来体现(embody)任何类型的通信媒介,诸如有线或无线网络。
每一个客户端机器102可以包含注册表108、注册表列表109、MRU同步引擎110、MRU客户端文档列表112和文档文件夹114。文件托管服务器106可以包含MRU应用编程接口(API)处理程序过程116、配置列表117和文件系统118。文件系统118可以包含用于每一个用户120的文件夹,其包含存储在文件托管服务器中的用户的文档和MRU服务器文档列表132,其中MRU服务器文档列表132包含至用户最近使用的文档的链接。
每一个客户端机器102可以包含注册表108,其是用于存储由操作系统使用的配置数据和设置的中央储存库(repository)。在一些实施例中,注册表108可以被配置成与分层文件夹相似的文件的结构,其中每一个文件子集被称为注册表单元(registry hive)。每一个注册表单元与类似于文件系统中的文件夹的注册表键值(key)相关联。
每当访问或重新配置文件时,条目被放置在与文档类型相关联的注册表键值中。例如,注册表键值“HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\FileMRU”存储与word文档有关的条目,注册表键值“HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\PowerPoint\File MRU”存储与power point文件有关的条目,而注册表键值“HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\File MRU”存储与excel文件有关的条目。
应该指出:虽然通常在基于Windows®的操作系统的上下文中使用术语“注册表”,但是在这里披露的技术并不约束于任何特别的操作系统或注册表配置。也能够采用提供类似功能的其他技术,诸如而非限制,在Linux或基于Unix的操作系统中使用的配置文件等等。
注册表列表109包含与用户从客户端机器102使用或访问的所有文档有关的配置数据。注册表列表109可以包含用于存储在客户端机器、文件托管服务器和其他的远程存储位置上的文档的条目。
MRU同步引擎110可以是将特别的MRU客户端文档列表与MRU服务器文档列表同步的应用。MRU同步引擎110可以被体现在软件中并且被实现为软件组件、程序、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、指令集、计算代码、代码段、进程、线程及其任何组合。作为选择,MRU同步引擎110可以是另一应用的一部分并被实现为独立执行线程或进程。这些实施例并没有被约束于任何特别类型的用于MRU同步引擎的软件实现方式。
MRU客户端文档列表112是用户已最近使用的最近使用文档的清单。MRU客户端文档列表中的每一个文档的名称是至该文档的文件的位置的快捷方式(shortcut)。MRU客户端文档列表112可以列出本地存储在客户端机器102上的文档和存储在文件托管服务器106上的文档。在一个或多个实施例中,文档可以是word文档、power point文档和/或excel文档。每一个文档被配置成文件,并且在这里可交换地使用这些术语“文档”和“文件”。MRU客户端文档列表112在某些操作系统中可以被称为“Recently Used(最近使用的)”文件夹、“My Recent Documents(我的最近文档)”文件夹、“Recent Item(最近项目)”文件夹等等。
MRU客户端文档列表112可以利用追踪(track)用户使用的文档的应用来维持。该应用可以基于指示用户最后访问文档的时间的时间戳将文档添加到MRU客户端文档列表。用户的访问可以包括打开文档或保存文档。该应用可以追踪MRU变化,以便重新配置文档的状态(例如,被删除、被锁定)。即使最近由于“锁定(pin)”文档而没有访问该文档,用户也可以选择将该文档保持在MRU客户端文档列表上。通过“锁定”文档,用户指示其偏爱(preference)以便将文档保持在MRU客户端文档列表上而不考虑其使用。用户可以“解锁(unpin)”曾被锁定的文档,从而允许其访问的时间来确定其在MRU客户端文档列表上的放置。虽然文档保留为可访问的,但是用户也可以选择从MRU客户端文档列表中“删除”该文档。针对删除文档的随后访问可以将该文档放回到MRU客户端文档列表上。
在MRU客户端文档列表112中列出的文档利用至该文档的实际位置的链接来代表。这些链接用于快速访问文档,而无需从其实际位置打开该文档。
文档文件夹114在单独的快捷方式文件夹142中列出本地存储在客户端机器102上的文档以及存储在文件托管服务器106中的用户的文档。虽然图1的文档文件夹显示每个文档的名称,但是文档名称实际上是至否则被称为快捷方式的文档的位置的链接。
如客户端机器102A中所示的,用户A具有包含本地存储在客户端机器102A上的文档worddoc1.doc 138的文档文件夹114A。文档文件夹114A包括子文件夹,即文件托管服务器快捷方式142,其包含至存储在文件托管服务器106上的用户的文档presentation1.ppt124的链接。在客户端机器102A上用于用户A的MRU客户端文档列表112A包括worddoc1.doc138和presentation1.ppt 124。
如客户端机器102B中所示的,用户A具有包含本地存储在客户端机器102B上的文档worddoc3.doc 144的文档文件夹114B。文档文件夹114B包含子文件夹,即文件托管服务器快捷方式148,其包含至存储在文件托管服务器106上的用户的文档presentation1.ppt124和worddoc2.doc 128的链接。在客户端机器102B上用于用户A的MRU客户端文档列表112B包括presentation1.ppt 124、worddoc2.doc 128和worddoc3.doc 144。
文件托管服务器106包含一个或多个MRU应用编程接口(API)处理程序过程116、配置列表117和文件系统118。MRU同步引擎110通过一个或多个API与文件托管服务器106交互作用。API可以被实现为远程过程调用。远程过程调用是一种形式的消息传递,其中发送方似乎在利用特定参数执行或调用本地过程。远程过程调用的处理程序运行在独立的地址空间中。MRU同步引擎110使用一个或多个API将针对MRU服务器文档列表132所需要的更新通知文件托管服务器106。MRU API处理程序过程116从MRU同步引擎110接收在API过程调用中使用的特定参数并且相应地处理这些特定参数。MRU API处理程序过程116位于文件托管服务器106中。
配置列表107是包含在MRU服务器文档列表132中列出的每个文档的条目的文件。每一个条目包含与文档的配置有关的配置数据,其包括该文档在所有的客户端机器102上的使用。
文件托管服务器106上的文件系统118对于每一个用户可以包含文件夹(filefolder)。如图1所示,文件托管服务器106具有用于用户A 120的文件夹,其包含存储用户的文档的子文件夹122以及MRU服务器文档列表132。MRU服务器文档列表132是列出存储在文件托管服务器106上的文档中用户最近使用的文档的文件夹。MRU服务器文档列表132包括presentation1.ppt 124和worddoc2.doc 128。用户可以选择采用上面针对MRU客户端文档列表讨论的相同方式将文档保持在MRU服务器文档列表132上。即,用户可以采用如上所述的相同方式“锁定”、“解锁”和“删除”MRU服务器文档列表132中的文档。
如图1所示,名为File Hosting Server(文件托管服务器)122的子文件夹存储用户A的文档presentation1.ppt 124和worddoc2.doc 128。通过将这些文档124、128存储在文件托管服务器106上,用户A可以从与客户端机器分离的web接口中访问这些文档。用户A可以在客户端机器102A上使用MRU客户端文档列表来打开存储在文件托管服务器106上的文件presentation1.ppt 124。通过在客户端机器A上凭借MRU客户端文档列表112A访问presentation1.ppt 124,用户A能够避免通过web浏览器来访问presentation1.ppt 124。同样,用户A可以在客户端机器102B上使用MRU客户端文档列表112B来打开文档presentation1.ppt和worddoc2.doc,其中每一个文档存储在文件托管服务器106上。
对于存储在文件托管服务器106上的用户最近使用的文档,用户的MRU服务器文档列表132应反映那些用户最近使用的文档。尤其在用户在另一客户端机器上使用过那些文档时,MRU客户端文档列表112可能没有反映那些文档的最近使用。为此,每一个客户端机器102将MRU服务器文档列表132和用户的与特别的客户端机器102相关联的MRU客户端文档列表112同步。
例如,如图1所示,MRU客户端文档列表112A显示:用户A的在客户端机器102A上的最近使用的文档是worddoc1.doc 138和presentation1.ppt 124。在文件托管服务器106上存储presentation1.ppt 124。然而,MRU客户端列表112B显示:在客户端机器102B上用户A的最近使用的文档包括presentation1.ppt 124和worddoc2.doc 128,其中这两个文档存储在文件托管服务器106上。用于用户A的MRU服务器文档列表132A显示:presentation1.ppt 124和worddoc2.doc 128二者最近由用户A使用过。MRU客户端文档列表112A似乎与存储在文件托管服务器106上的用户A的文档的最近访问不同步。
参考图2,显示图1的系统,其中在客户端机器102A上用户A的MRU客户端文档列表112A相对于存储在文件托管服务器106上的在客户端机器102B上最近使用过的用户A的文档进行同步。客户端机器102A利用MRU同步引擎110A将MRU客户端文档列表112A与MRU服务器文档列表132同步。客户端机器102A包含合并列表111A,其是临时文件,用于合并注册表列表109和配置列表117中的条目,以便生成更新的MRU客户端文档列表112A。如图2所示,MRU客户端文档列表112A现在包括worddoc2.doc 128,并且所有的用户A的MRU客户端文档列表112A、112B相对于存储在文件托管服务器106上的用户A的最近使用的文档是同步的。
应该指出:导致MRU服务器文档列表没有反映用户的最新使用的其他情况可能发生。例如,如果从MRU服务器文档列表132中删除过文档并且稍后在客户端机器102上重新打开过该文档,那么该文档有资格在MRU服务器文档列表132上被考虑。此外,如果文档的锁定状态在客户端机器102上被改变,这可能影响该文档在MRU服务器文档列表132上的放置。
注意力现在转至参考各种示例方法的实施例的操作的更详细讨论。可能意识到:除非另有声明,否则有代表性的方法未必非得按照所介绍的顺序或者以任何特别的顺序来执行。而且,针对这些方法描述的各种活动能够以串行或并行方式或串行与并行操作的任何组合来执行。这些方法对于给定集合的设计和性能约束能够按照要求、使用所描述的实施例或可选择的实施例的一个或多个硬件元素和/或软件元素来实现。例如,这些方法可以被实现为逻辑(例如,计算机程序指令),用于利用逻辑设备(例如,通用或专用计算机)的执行。
图3说明用于自动同步MRU文档列表的示例方法的流程图。应该指出,方法200可以代表在这里描述的一个或多个实施例所执行的一些或所有的操作,并且该方法能够包括比图3中所描述的操作更多或更少的操作。在实施例中,该方法可以说明用于MRU同步引擎110的操作。
在若干实施例中,MRU同步引擎110可以在用户初始地从客户端机器102登录到用户账户时被自动激活(方框202)。在可选择的实施例中,MRU同步引擎110可以由用户直接激活(方框202)。在激活之后,一旦在文件托管服务器106上用户被登录到用户账户,MRU同步引擎110启动同步操作(方框202)。
MRU同步引擎110确定可以执行同步操作的频率(方框204)。在实施例中,同步操作可以根据轮询频率来执行。轮询频率可以是默认值、用户配置输入或其组合,并且可以用于确定在初始同步之后执行同步操作的时间间隔。
MRU同步引擎110可以初始地在激活MRU同步引擎110 时执行同步操作(方框206)。此后,根据轮询频率,执行附加同步。在被指示执行更新的时间(方框208,是),当要执行附加更新时(方框210,否),MRU同步引擎110可以同步MRU客户端和MRU服务器文档列表(方框206)。否则,当不是执行更新的时间时(方框208,否),该方法轮询,直至下一次更新发生。当用户登出客户端机器102时或在满足了轮询频率时(方框210,是),同步更新被终止。
在另一实施例中,在更新了MRU服务器文档列表132时,MRU同步引擎110可以从文件托管服务器106接收通知。MRU同步引擎110可以在接收到配置列表117之后执行同步操作,而不是根据轮询频率执行这些同步操作。在另一实施例中,当新的条目被放置到MRU服务器文档列表132上时,MRU同步引擎110可以从文件托管服务器106接收通知。文件托管服务器106可以将新的条目转发至MRU同步引擎110,而MRU同步引擎110随后可以在接收之后更新MRU客户端文档列表112。注意力现在转到执行客户端和服务器MRU文档列表的同步的方法的讨论。
参考图4,显示说明用于同步MRU文档列表的方法206的流程图。注册表108中的文档条目的快照或拷贝可以被制作并被存储在注册表列表109中(方框302)。存储在注册表109中的文档条目可以具有包含图5所示的数据字段的格式。转到图5,注册表109中的文档条目可以包含项目编号402、条目类型404、锁定状态406、最后修改时间戳408、标记字段410和地址字段412。项目编号402是指示条目在注册表键值中的放置的引用。条目类型指示条目的类型。例如,文本串“REG_SZ”指示该文档是Office文档而不是元数据。锁定状态406指示该文档是否停留在MRU文档列表上。当文档被“锁定”时,该文档保留在MRU文档列表上而无论其是否最近被使用了。最后修改时间戳408指示该文件被使用过的最后时间,而标记410用于操作系统的使用。地址412是文档的位置,并且该地址可以是URL、物理地址、网络地址或DAV地址。
转回到图4,MRU同步引擎110向文件托管服务器106请求配置列表117(方框304)。在一个或多个实施例中,可以通过API来提出该请求。作为选择,可以在客户端机器102与文件托管服务器106之间发送消息。用户的配置列表117可以采用XML(可扩展标记语言)文件或JSON(JavaScript Object Notation(对象符号))文件的形式来构造。
配置列表117中示例文档条目的数据格式可以如图6所示来配置。参考图6,显示包含DAV地址502、最后修改时间戳504、锁定状态506、锁定时间戳508、删除标记510和删除时间戳512的配置列表117中的条目。DAV地址502是MRU客户端文档列表所使用的相同地址并且是文件托管服务器上的唯一标识符。最后修改时间戳504指示该文件被打开或被保存的最后时间。锁定状态506指示该文档是否将停留在MRU文档列表上。锁定时间戳508指示该文档被锁定的时间。删除标记510指示是否从MRU服务器文档列表中删除过该文档,而删除时间戳512指示删除的时间。
转回到图4,在用户正操作在客户端机器102上的同时,配置列表117可能还没有被更新来反映对文档进行的最近使用或变化。MRU同步引擎110可能发现这些变化并且通知文件托管服务器106,以便相应地更新MRU服务器文档列表132(方框306)。特别地,MRU同步引擎110可能发现:从MRU服务器文档列表132中删除过的文档随后还在客户端机器102上被重新打开过或被重新保存过。MRU同步引擎110也可能检测到被解锁并随后被用户在操作在客户端机器102上的同时重新锁定过的文档。在这两种情况中,这些文档可以被放回到MRU服务器文档列表132上。
转到图7,MRU同步引擎110读取客户端注册表列表中的每一个条目(方框602)并将注册表列表中的条目的地址字段412与配置列表117中的DAV地址502进行匹配(方框604)。配置列表117中的删除标记510在用户从MRU服务器文档列表132中删除该文档时被提升(raise),并且删除时间戳512指示该删除发生时的时间。注册表列表中相应条目的最后修改时间戳408指示该文档被使用时的最后时间。当删除标记510被提升并且注册表条目中的最后修改时间戳408晚于删除时间戳512时,则在从MRU服务器文档列表132中删除过该文档之后在客户端机器102上重新打开过该文档(方框606)。在这种情况中,MRU同步引擎110通过API过程调用将这种状况通知文件托管服务器106(方框606)。
接下来,MRU同步引擎110确定是否由用户在操作在客户端机器102上的同时锁定了以前被解锁过的文档。为了检测这种状况,MRU同步引擎110将注册表列表中的文档条目的锁定状态406与配置列表117中的相应条目进行比较(方框608)。当配置列表117中的锁定状态506指示该文档未被锁定并且配置列表117中的锁定时间戳508早于注册表列表中相应条目的最后修改时间戳408时,MRU同步引擎110通过API过程调用通知文件托管服务器106:该文档条目已被锁定了(方框608)。
返回参考图4,MRU同步引擎110将注册表列表109和配置列表117合并成合并列表111,其包含注册表列表中与所讨论的文档有关的所有条目以及配置列表117中的所有条目(方框308)。随后可以针对在客户端机器102上最近已打开、修改、保存或锁定的文档来分析合并列表111(方框310)。
参考图8,MRU同步引擎110继续按照地址来对合并列表111进行排序。特别地,注册表列表的地址字段412以及MRU服务器文档列表132的DAV地址502可以被用作排序标准(方框702)。在按照地址对合并列表条目进行排序时,具有共同地址的条目一个接一个进行定位。因此,更容易将注册表列表中的文档条目与其在配置列表117中的相应条目进行匹配。
MRU同步引擎110将注册表列表中文档的条目与配置列表117中的相应条目(即,条目配对)进行比较(方框704)。对于每一个这样的条目配对(方框704),针对在用户正操作在客户端机器102上的同时对文档进行的没有在配置列表117中得到反映的最近使用,MRU同步引擎110分析条目配对。
MRU同步引擎110将注册表列表条目的最后修改时间戳408与最后修改时间戳504进行比较(方框706)。如果注册表列表上的最后修改时间戳407是不近的(less recent),那么晚于该文档在文件托管服务器132上的最后使用在客户端机器102上已访问了该文档。在这种情况下,MRU同步引擎110通过API过程调用将这个事件通知文件托管服务器106(方框706)。
另外,MRU同步引擎110针对注册表列表109和配置列表117二者中的文档条目来比较锁定状态和锁定时间戳,以便确定是否由操作在客户端机器102上的用户修改过该文档的锁定状态(方框708)。如果注册表列表中文档的条目上的锁定状态406和锁定时间戳408不近于配置列表117中相应条目上的锁定时间戳508,则由用户在操作在客户端机器102上的同时修改过该文档的锁定状态。MRU同步引擎110通过API过程调用将这种情况通知文件托管服务器106(方框708)。最后,对于每一个条目配对,具有不近的最后修改时间戳的条目被删除(方框710)。
转回到图4,随后从合并列表111中创建新的MRU客户端文档列表(方框312)。参考图9,合并列表111按照锁定状态来排序,以便将锁定的文档置于合并列表111的顶端(方框802)。接下来,依照最后修改时间戳对解锁的文档进行排序,以便将具有最晚时间戳的解锁文档放置在具有较早时间戳的那些文档的前面(方框804)。此后,合并列表111可以被修整为只包括在MRU客户端文档列表中允许的最大数量的条目(方框806)。最近使用的文档位于列表的顶端,而较早使用的文档位于合并列表111的末端。如果合并列表111中条目的数量超过在MRU客户端文档列表中允许的条目的最大数量,那么合并列表111只取(take)从合并列表111的顶端开始的最大数量(方框806)。
合并列表111在此时是更新的MRU客户端文档列表。更新的MRU客户端文档列表中的每一个条目可以被写入注册表108(方框808),并且新的MRU客户端文档列表替换现有的MRU客户端文档列表(方框810)。转回到图4,MRU同步引擎110利用在更新的MRU客户端文档列表中包含的地址或快捷方式来替换用于文件托管服务器文档的文档文件夹(方框314)。注意力现在转到操作环境的讨论。
现在参考图10,显示示例操作环境920的示意框图。操作环境920可以包括通过通信框架924与一个或多个服务器926通信的一个或多个客户端922。在实施例中,客户端922可以被配置成使用存储在服务器926中的文档或数据,并且客户端922可以作为客户端机器102来实现。在实施例中,服务器926可以从一个或多个客户端922接收请求来访问其中存储的文档和数据。在实施例中,服务器926可以作为文件托管服务器106来实现。
客户端922可以作为硬件设备、软件模块或作为其组合来体现。这样的硬件设备的示例可以包括但不限于计算机(例如,服务器、个人计算机、膝上型计算机等等)、蜂窝电话、个人数字助理或任何类型的计算设备等等。客户端922也可以作为具有在单条执行路径、多条并发执行路径(例如,线程、进程等等)中或以任何其他方式执行的指令的软件模块来体现。
服务器926可以作为硬件设备、软件模块或作为其组合来体现。这样的硬件设备的示例可以包括但不限于计算机(例如,服务器、个人计算机、膝上型计算机等等)、蜂窝电话、个人数字助理或任何类型的计算设备等等。服务器926也可以作为具有在单条执行路径、多条并发执行路径(例如,线程、进程等等)中或以任何其他方式执行的指令的软件模块来体现。
通信框架924促进在客户端922与服务器926之间的通信。通信框架924可以利用任何的通信协议来体现任何类型的通信媒介,诸如有线或无线网络。
参考图11,客户端机器102可以具有处理器934、存储器936和网络接口938。处理器934可以是任何市场上可买到的处理器,并且可以包括双微处理器和多处理器架构。网络接口938促进在客户端机器102与通信网络104之间的有线或无线通信,以便在客户端机器102与文件托管服务器106之间提供通信路径。
存储器936可以是能够存储处理器可执行指令、过程、应用和数据的任何计算机可读存储媒体或计算机可读媒体。计算机可读媒体与传播的信号诸如通过载波发送的调制数据信号无关。它可以是任何类型的存储设备(例如,随机存取存储器、只读存储器等等)、磁储存器、易失性储存器、非易失性储存器、光储存器、DVD、CD、软盘驱动器、盘驱动器、闪存等等。存储器936也可以包括一个或多个外部存储设备或远程定位的存储设备。存储器936可以包含如下的指令和数据:
● 操作系统940;
● 注册表108;
● MRU同步引擎110;
● MRU客户端文档列表112;
● 文档文件夹114;
● 注册表列表109;
● 合并列表111;以及
● 各种其他的应用和数据944。
参考图12,文件托管服务器106可以具有处理器954、存储器956和网络接口958。处理器954可以是任何市场上可买到的处理器并且可以包括双微处理器和多处理器架构。网络接口958促进在文件托管服务器106与通信网络104之间的有线或无线通信,以便在客户端机器102与文件托管服务器106之间提供通信路径。
存储器956可以是任何的计算机可读存储媒体或计算机可读媒体,其可以存储处理器可执行的指令、过程、应用和数据。计算机可读媒体与传播的信号诸如通过载波发送的调制数据信号无关。它可以是任何类型的存储设备(例如,随机存取存储器、只读存储器等等)、磁储存器、易失性储存器、非易失性储存器、光储存器、DVD、CD、软盘驱动器、盘驱动器、闪存等等。存储器956也可以包括一个或多个外部存储设备或远程定位的存储设备。存储器956可以包含如下的指令和数据:
● 操作系统960;
● MRU API处理程序过程116;
● 包含文档120和MRU服务器文档列表132的文件系统964;
● 配置列表117;以及
● 其他的应用和数据972。
虽然以特定于结构特性和/或方法动作的语言描述了主题,但是将明白:在所附的权利要求书中定义的主题不一定限于如上所述的具体特性或动作。相反,上述的具体特性和动作被披露为实现这些权利要求的示例形式。
例如,系统100的各种实施例可以使用硬件元素、软件元素或二者的组合来实现。硬件元素的示例可以包括设备、组件、处理器、微处理器、电路、电路元素、集成电路、专用集成电路、可编程逻辑设备、数字信号处理器、现场可编程门阵列、存储单元、逻辑门等等。软件元素的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口、指令集、计算代码、代码段及其任何组合。确定是否使用硬件元素和/或软件元素来实现实施例,这根据任何数量的因素诸如所期望的计算速率、功率电平、带宽、计算时间、负载均衡、存储资源、数据总线速度和其他的设计或性能约束、对于给定的实施方式、按照要求而可能改变。
一些实施例可以包括存储介质来存储指令或逻辑。存储介质的示例可以包括一种或多种类型的能够存储电子数据的计算机可读存储媒体,其包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。逻辑的示例可以包括各种软件组件,诸如程序、过程、模块、应用、代码段、程序栈、中间件、固件、方法、例程等等。在实施例中,例如,计算机可读存储介质可以存储可执行计算机程序指令,这些可执行计算机程序指令当由处理器执行时导致该处理器根据所描述的实施例来执行方法和/或操作。这些可执行计算机程序指令可以根据预定义的计算机语言、方式或句法来实现,以便指示计算机执行一定功能。这些指令可以使用任何适当的高级、低级、面向对象、视觉、编译和/或解释编程语言来实现。
在各种实施例中,在这里描述的系统100可以包括计算机实现的系统,其具有多个组件、程序、过程、模块。如在这里使用的,这些术语用于指计算机相关的实体,其包括或硬件、软件与硬件的组合或软件。例如,组件可以被实现为在处理器上运行的进程、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行的线程、程序和/或计算机。作为例证,在服务器上运行的应用以及服务器可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以按照要求对于给定的实施方式被定位在一个计算机上和/或被分布在两个或更多的计算机之间。并不以这种方式来限制这些实施例。

Claims (10)

1.一种计算机实现的方法,包括:
获得注册表列表,其包括与用户从客户端机器中访问过的多个用户文档有关的配置数据;
发送针对存储在远程文件托管服务器上的配置列表的请求,所述配置列表包括与所述用户最近使用的MRU服务器文档有关的配置数据;
响应于发送所述针对所述配置列表的请求,在所述客户端机器处接收所述配置列表;
将所述注册表列表与所述配置列表组合成合并列表;
通过所述注册表列表的地址字段和所述配置列表的地址对所述合并列表进行排序,以创建包括来自所述注册表列表的文档条目和对应的来自所述配置列表的文档条目的文档条目配对,其中所述配置列表的地址是所述文件托管服务器上的唯一标识符;
针对经过排序的合并列表中的每一个文档条目配对,将来自所述注册表列表的文档条目的锁定状态和锁定时间戳与来自所述配置列表的文档条目的锁定状态和锁定时间戳进行比较,以确定来自所述注册表列表的文档条目的锁定状态是否已经由所述用户从所述客户端机器进行了修改;
当确定来自所述注册表列表的文档条目的锁定状态已经由所述用户从所述客户端机器进行了修改,向所述远程文件托管服务器发送锁定状态修改通知;以及
从经过排序的合并列表中形成MRU客户端文档列表,该MRU客户端文档列表包括至用户最近使用的文档的链接的文件夹,
其中,该文件夹是文件系统结构的一部分。
2.根据权利要求1所述的方法,包括:
将存储在所述文件托管服务器上的由用户在客户端机器上最近使用过的文档通知所述文件托管服务器。
3.根据权利要求1所述的方法,包括:
将从客户端机器对在所述配置列表中列出的文档进行的更新通知所述文件托管服务器。
4.根据权利要求1所述的方法,包括:
将所述注册表列表中的条目与所述配置列表中的相应条目进行匹配,以及
基于与所述合并列表中的每个条目相关联的较早的最后修改时间戳,删除一个匹配条目。
5.根据权利要求1所述的方法,包括:
在从所述文件托管服务器接收到信息之后形成MRU客户端文档列表。
6.一种计算机实现的方法,包括:
给用户提供一个或多个用户文档,至少一个用户文档存储在文件共享服务器上,所述文件共享服务器被配置成允许用户从多个客户端机器使用存储在所述文件共享服务器上的用户文档;
在选择客户端机器上提供注册表列表,所述注册表列表具有由用户从选择客户端机器最近使用的用户文档的列表;
在所述文件共享服务器上维持配置列表,所述配置列表具有由用户从任何的客户端机器最近使用的用户文档的服务器列表;
合并所述注册表列表与所述配置列表,以形成合并列表;
通过所述注册表列表的地址字段和所述配置列表的地址对所述合并列表进行排序,以创建包括来自所述注册表列表的文档条目和对应的来自所述配置列表的文档条目的文档条目配对,其中所述配置列表的地址是所述文件共享服务器上的唯一标识符;
针对经过排序的合并列表中的每一个文档条目配对,将来自所述注册表列表的文档条目的锁定状态和锁定时间戳与来自所述配置列表的文档条目的锁定状态和锁定时间戳进行比较,以确定来自所述注册表列表的文档条目的锁定状态是否已经由所述用户从所述选择客户端机器进行了修改;
当确定来自所述注册表列表的文档条目的锁定状态已经由所述用户从所述选择客户端机器进行了修改,向所述文件共享服务器发送锁定状态修改通知;以及
利用用户最近使用的用户文档从所述注册表列表和所述配置列表中形成MRU客户端文档列表,该MRU客户端文档列表包括至用户最近使用的用户文档的链接的文件夹,其中,该文件夹是文件系统结构的一部分。
7.根据权利要求6所述的方法,包括:
确定是否由用户从选择客户端机器最近使用了存储在所述文件共享服务器上的第一用户文档;和
通知所述文件共享服务器。
8.根据权利要求6所述的方法,包括:
确定是否存储在所述文件共享服务器上的第一用户文档被从所述配置列表中删除过并且由用户在选择客户端机器上最近使用过;以及
通知所述文件共享服务器。
9.根据权利要求6所述的方法,包括:
将所述注册表列表中的条目与所述配置列表中的相应条目进行匹配;以及
基于与所述合并列表中的每个条目相关联的较早的最后修改时间戳,删除一个匹配条目。
10.根据权利要求9所述的方法,包括:
依照最后修改时间戳,对解锁条目进行排序;以及
使用从所述合并列表的顶端开始的阈值数量的条目来形成MRU客户端文档列表。
CN201280030495.1A 2011-06-20 2012-06-13 最近使用的文档列表的自动同步 Active CN103649945B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/163,742 US9501490B2 (en) 2011-06-20 2011-06-20 Automatic synchronization of most recently used document lists
US13/163,742 2011-06-20
US13/163742 2011-06-20
PCT/US2012/042108 WO2012177446A2 (en) 2011-06-20 2012-06-13 Automatic synchronization of most recently used document lists

Publications (2)

Publication Number Publication Date
CN103649945A CN103649945A (zh) 2014-03-19
CN103649945B true CN103649945B (zh) 2017-04-12

Family

ID=47354569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280030495.1A Active CN103649945B (zh) 2011-06-20 2012-06-13 最近使用的文档列表的自动同步

Country Status (6)

Country Link
US (1) US9501490B2 (zh)
EP (1) EP2727014B1 (zh)
JP (1) JP6050343B2 (zh)
KR (1) KR101963917B1 (zh)
CN (1) CN103649945B (zh)
WO (1) WO2012177446A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103369003A (zh) * 2012-03-30 2013-10-23 网秦无限(北京)科技有限公司 一种利用云计算扫描移动设备的冗余文件的方法和系统
CN103365882A (zh) * 2012-03-30 2013-10-23 网秦无限(北京)科技有限公司 一种移动终端上垃圾文件清理的方法和系统
US9170701B2 (en) * 2012-04-04 2015-10-27 Sap Portals Israel Ltd Suggesting contextually-relevant content objects
CN104424162A (zh) * 2013-08-21 2015-03-18 鸿合科技有限公司 一种生成最近使用的文档记录的方法及装置
US9235328B1 (en) * 2014-09-23 2016-01-12 Allscripts Software, Llc Big data selector system and method
US9832149B2 (en) 2014-09-30 2017-11-28 Microsoft Technology Licensing, Llc Treatment of cloud-based and local attachments in communication applications
US9141709B1 (en) 2014-11-20 2015-09-22 Microsoft Technology Licensing, Llc Relevant file identification using automated queries to disparate data storage locations
CN104462296B (zh) * 2014-11-28 2020-12-04 小米科技有限责任公司 文件的管理方法、装置及终端
CN105824827A (zh) * 2015-01-06 2016-08-03 阿里巴巴集团控股有限公司 一种文件路径的存储和本地文件的访问方法及装置
JP6217669B2 (ja) * 2015-02-27 2017-10-25 コニカミノルタ株式会社 プリンタードライバープログラム
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN110018761B (zh) * 2018-01-10 2022-02-25 腾讯科技(深圳)有限公司 对最近使用文件进行管理的方法、装置及终端
CN108228894B (zh) * 2018-02-05 2023-07-04 腾讯科技(深圳)有限公司 查看最近使用文件的方法、装置及终端
US11829723B2 (en) 2019-10-17 2023-11-28 Microsoft Technology Licensing, Llc System for predicting document reuse
US11790165B2 (en) 2021-01-26 2023-10-17 Microsoft Technology Licensing, Llc Content element recommendation system
EP4285241A1 (en) 2021-01-26 2023-12-06 Microsoft Technology Licensing, LLC Collaborative content recommendation platform
US11947993B2 (en) * 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs
CN115129677B (zh) * 2022-08-30 2022-11-22 睿云奇智(青岛)科技有限公司 一种算子文档的同步方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3584540B2 (ja) 1995-04-20 2004-11-04 富士ゼロックス株式会社 文書複写関係管理システム
JP3648051B2 (ja) * 1998-02-02 2005-05-18 富士通株式会社 関連情報検索装置及びプログラム記録媒体
JP2002149459A (ja) 2000-11-10 2002-05-24 Mitsubishi Electric Corp 冗長化データベース管理・検索システム
AU2002303126A1 (en) 2001-03-16 2002-10-03 Novell, Inc. Client-server model for synchronization of files
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US20050165935A1 (en) 2004-01-22 2005-07-28 Moody Paul B. Method and system for providing information regarding recently accessed documents of a remote user through an awareness client program
US7395267B2 (en) 2004-02-11 2008-07-01 Fuji Xerox Co., Ltd. System and method for customized document selection
US7412447B2 (en) 2004-03-01 2008-08-12 Fuji Xerox Co., Ltd. Remote file management using shared credentials for remote clients outside firewall
US20050278280A1 (en) * 2004-05-28 2005-12-15 Semerdzhiev Krasimir P Self update mechanism for update module
US7340686B2 (en) 2005-03-22 2008-03-04 Microsoft Corporation Operating system program launch menu search
US8645376B2 (en) 2008-05-02 2014-02-04 Salesforce.Com, Inc. Method and system for managing recent data in a mobile device linked to an on-demand service
US20080005685A1 (en) 2006-06-30 2008-01-03 Clemens Drews Interface mechanism for quickly accessing recently used artifacts in a computer desktop environment
US8005832B2 (en) 2006-08-29 2011-08-23 Switchbook, Inc. Search document generation and use to provide recommendations
US9946722B2 (en) 2007-11-30 2018-04-17 Red Hat, Inc. Generating file usage information
US8738651B2 (en) * 2008-03-06 2014-05-27 Lenovo (Singapore) Pte Ltd Techniques for updating a relevant document list associated with a software application within a computer system
US9710443B2 (en) 2008-07-21 2017-07-18 Oracle International Corporation Simplifying access to documents accessed recently in a remote system
US20110276770A1 (en) 2009-01-19 2011-11-10 University College Dublin, National University Of Ireland, Dublin Method and system for analysing most recently used registry keys
WO2011004380A1 (en) 2009-07-09 2011-01-13 Xeround Systems Ltd. Database system with query interception and redirection
KR101672454B1 (ko) * 2009-10-30 2016-11-04 삼성전자 주식회사 컨텐트 이용 이력에 기반한 네트워크 컨텐트 서비스 관리 방법 및 장치

Also Published As

Publication number Publication date
EP2727014B1 (en) 2022-02-23
WO2012177446A3 (en) 2013-02-28
US20120323935A1 (en) 2012-12-20
EP2727014A4 (en) 2015-06-03
WO2012177446A2 (en) 2012-12-27
JP2014523577A (ja) 2014-09-11
CN103649945A (zh) 2014-03-19
KR20140038991A (ko) 2014-03-31
KR101963917B1 (ko) 2019-03-29
JP6050343B2 (ja) 2016-12-21
US9501490B2 (en) 2016-11-22
EP2727014A2 (en) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103649945B (zh) 最近使用的文档列表的自动同步
US11200044B2 (en) Providing access to a hybrid application offline
US11829853B2 (en) Systems and methods for tracking and representing data science model runs
KR101376916B1 (ko) 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치
US9332063B2 (en) Versatile application configuration for deployable computing environments
US9152732B2 (en) Browser cache assist for accessing web-based content
US7933871B2 (en) Discovering and updating templates
CN106104514B (zh) 加速访问对象存储库中的对象的方法、系统及介质
US7917507B2 (en) Web data usage platform
CN102520841B (zh) 收集用户接口
CA2831381C (en) Recovery of tenant data across tenant moves
US8103673B2 (en) Systems and methods for provisioning content from multiple sources to a computing device
US11086891B2 (en) Systems and methods for tracking and representing data science data runs
WO2007123930A2 (en) Method and architecture for goal oriented applications, configurations and workflow solutions on-the-fly
US20120331392A1 (en) System and method for data-driven web page navigation control
CN102804202B (zh) 内容网格搜索
US20120216100A1 (en) Service registry policy aggregator
CN101388891A (zh) 管理呈现实体的呈现信息的装置和方法
US8707171B2 (en) Service registry policy editing user interface
CN107408055B (zh) 代码缓存系统
US9703848B2 (en) Caching linked queries for optimized compliance management
US20080163264A1 (en) Directory Service that Provides Information from a Plurality of Disparate Data Sources
US9940311B2 (en) Optimized read/write access to a document object model
US20100114978A1 (en) Methodology for the Automatic Capture of Process Information in Federated Knowledge Systems
Soueidi Microsoft Azure Storage Essentials

Legal Events

Date Code Title Description
PB01 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: 20150625

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

Effective date of registration: 20150625

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant