CN102934101A - 针对本地和远程数据的透明访问机制 - Google Patents

针对本地和远程数据的透明访问机制 Download PDF

Info

Publication number
CN102934101A
CN102934101A CN2011800295727A CN201180029572A CN102934101A CN 102934101 A CN102934101 A CN 102934101A CN 2011800295727 A CN2011800295727 A CN 2011800295727A CN 201180029572 A CN201180029572 A CN 201180029572A CN 102934101 A CN102934101 A CN 102934101A
Authority
CN
China
Prior art keywords
data
access
storage
remote storage
local
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
CN2011800295727A
Other languages
English (en)
Other versions
CN102934101B (zh
Inventor
N.沙马
T.马尼翁
A.J.萨加
N.古普塔
F.默罕默德
A.G.班达卡
K.拉曼
O.阿米加
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 CN102934101A publication Critical patent/CN102934101A/zh
Application granted granted Critical
Publication of CN102934101B publication Critical patent/CN102934101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/172Caching, prefetching or hoarding of files
    • 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

Abstract

统一数据访问机制能够对本地或远程存储的数据提供透明访问。应用程序能够将数据请求和数据修改指向该单一组件而无需预先了解数据存储在哪里。统一数据访问机制能够与同步机制相一致地进行工作,所述同步机制能够保持本地数据和远程数据之间的数据同步。可以基于数据的命名空间将所请求或修改的数据识别为本地或远程存储的。如果数据被远程存储,则与在其中执行应用程序的用户进程空间相关联的用户凭证被用来识别相关认证信息并随后在被要求的情况下将其提供至远程数据存储。

Description

针对本地和远程数据的透明访问机制
背景技术
对于包括传统个人计算机以及个人数字助理、蜂窝电话等在内的现代计算设备而言,网络通信能力已经变得随处可见。结果,这样的计算设备所采用的有所增加的信息量从在物理上与这样的计算设备分离并且通过一个或多个网络与之建立通信的存储设备所获得。类似地,这样的计算设备所创建的有所增加的信息量也经常并不存储在与该计算设备自身同处一地的存储介质上,而是存储在与这样的计算设备物理分离并且通过网络通信与这样的计算设备通信连接的存储媒体上。
存储在联网存储媒体上并从那里加以利用的信息能够提供优于本地存储信息的好处,所述联网存储媒体诸如一个或多个服务器计算设备的存储媒体。例如,可从联网存储媒体获得的信息能够由多个不同计算设备所访问,这样的访问经常是同时的,由此支持更大的共享和协同能力。类似地,存储在一个或多个服务器计算设备上的存储媒体上的信息能够接收到提供给那些服务器计算设备的支持的实际的好处,例如包括数据冗余、数据备份、不可中断电源以及其它类似的好处。然而,不幸的是,存储在联网存储媒体上并且从那里加以利用的信息与本地存储的信息相比同样会具有缺陷。最值得注意的是,针对能够通过其与联网存储媒体进行通信的网络的访问并非是一直可用的。此外,数据跨网络的提供会受到各种延迟的影响,而所述延迟在数据存储于计算设备本地的存储介质上时通常并不存在。这样的延迟可以包括网络吞吐量、网络等待时间以及联网存储媒体无法以有效方式同时向大量进行请求的客户端提供数据。
传统上,软件应用程序的开发人员必须事先决定包括其软件应用程序的计算机可执行指令是否将尝试访问存储在这样的计算机可执行指令在其上执行的计算设备本地的数据或者它们是否将尝试访问远程存储在诸如联网存储媒体上的数据。这样的开发人员通常所采用的不同函数调用和访问方法取决于他们的应用程序所尝试访问的数据存储在哪里。
发明内容
在一个实施例中,一种单独的统一访问机制能够透明地提供对所请求数据的访问而无论该数据是在计算设备本地还是其远程存储,所述计算设备执行包括该统一访问机制的计算机可执行指令。所述统一访问机制能够利用所请求数据的命名空间来确定该数据是可本地获得还是要从远程位置获取。
在另一个实施例中,所述统一访问机制能够与同步机制相整合,所述同步机制能够保持本地存储数据和远程存储数据之间的等同以使得针对本地存储数据的改变能够自动反映在远程存储数据中。
在另外的实施例中,即使在计算设备执行包括从包括远程存储数据的网络断开通信连接的统一访问机制的计算机可执行指令时,所述统一访问机制也能够对本地存储的数据进行编辑。随后重新连接至网络能够使得所述同步机制依据对本地存储数据所执行的编辑来更新远程存储数据。
提供本发明内容用于以简化形式引入将在下面的具体实施方式中进一步描述的一系列概念。本发明内容并非旨在确定要求保护的主题的关键因素或必要特征,也不旨在用来限制要求保护的主题的范围。
从以下参考附图所进行的详细描述,另外的特征和优势将是显而易见的。
附图说明
当配合附图时可以最好地理解以下具体实施方式。
图1是示例性计算设备的框图;
图2是示例性统一访问机制的一种示例性在线操作的框图;
图3是示例性统一访问机制的另一种示例性在线操作的框图;
图4是示例性统一访问机制的一种示例性离线操作的框图;
图5是示例性统一访问机制的另一种示例性离线操作的框图;
图6是示例性统一访问机制的一种示例性操作的流程图;和
图7是示例性统一访问机制的另一种示例性操作的流程图。
具体实施方式
以下描述涉及一种统一访问机制,其对执行该统一访问机制的计算设备上本地存储的数据以及在计算设备远程存储的数据提供透明访问。该统一访问机制能够基于所请求数据的命名空间来识别数据是否能够本地获取。本地存储的数据可以通过同步机制而与远程存储的数据相同步,所述同步机制能够与该统一访问机制相整合。如果执行统一访问机制的计算设备失去到网络的连接,则针对本地存储的数据所进行的编辑随后在网络连接重新建立时能够透明地与远程存储的数据同步。
虽然以下描述针对统一访问机制在诸如超文本传输协议(HTTP)的具体普遍协议以及诸如互联网的具体普遍网络的环境内的实施方式,但是它们并非局限于此。特别地,所描述的机制在协议和网络两方面是不可知论的(agnostic),并且能够以与以下对任意协议或网络所描述的相同的方式进行操作。这样,对HTTP、互联网或网站的引用意味着仅是示例性而并非指示对所描述机制的任何具体限制。
虽然并未要求,但是以下的描述将处于一个或多个计算设备所执行的诸如程序模块之类的计算机可执行指令的一般环境之中。更具体地,除非另外指出,否则该描述将参考由一个或多个计算设备或外设所执行的动作以及操作的符号表示。这样,将要理解的是,有时被指为被计算机执行的这样的动作和操作包括由以结构化形式表示数据的电信号的处理单元所进行的操控。该操控对数据进行变换或者将其维护在存储器中的位置,这以本领域技术人员非常理解的方式重新配置或以其它方式改变计算设备或外设的操作。维护数据的数据结构是具有数据格式所定义的特定属性的物理位置。
通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会意识到的是,计算设备无需局限于常规的个人计算机,而是包括其他计算配置,包括手持设备、多处理系统、基于未出具利器的或可编程的消费者电器、网络PC、小型计算机、大型计算机等。类似地,计算设备无需局限于独立计算设备,因为该机制也可以在分布式计算环境中进行实践,其中任务由通过通信网络进行链接的远程处理设备所执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
转向图1,示出了示例性计算设备100。示例性计算设备100可以包括一个或多个中央处理单元(CPU)120、系统存储器130,以及将包括系统存储器在内的各种系统组件耦接至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构的任一个,包括存储器总线或存储器控制器、外围总线以及使用各种总线架构的任一个的局部总线。
计算设备100通常还包括计算机可读媒体,其可以包括可由计算设备100所访问的任意可用媒体,并且包括易失性和非易失性媒体以及可移动和非可移动媒体。作为示例而非限制,计算机可读媒体可以包括计算机存储媒体和通信媒体。计算机存储媒体包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的任意方法或技术所实施的媒体。计算机存储媒体包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁性盒带、磁带、磁盘存储或其它磁性存储设备,或者能够被用来存储所期望信息并且能够被计算设备100所访问的任意其它介质,但是并不局限于此。通信媒体通常以诸如载波或其它传输机制的经调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任意信息传递媒体。作为示例而非限制,通信媒体包括诸如有线网络或直接线路连接的有线媒体,以及诸如声音、RF、红外和其它无线媒体的无线媒体。以上的任意组合也可以包括在计算机可读媒体的范围之内。
系统存储器130包括诸如只读存储器(ROM)131和随机访问存储器(RAM)132之类的易失性和/或非易失性存储器形式的计算机存储媒体。基本输入/输出系统133(BIOS)通常存储在ROM 131中,其包含诸如在启动期间有助于在计算设备100内的元素之间传输信息的基本例程。RAM 132通常包含可由处理单元120立即访问和/或当前由其进行操作的数据和/或程序模块。作为示例而非限制,图1图示了操作系统134、其它程序模块135和程序数据136。程序模块135可以包括一个或多个应用程序,诸如第三方应用181,其可以由可由中央处理器120依据本领域技术人员已知的机制进行执行的计算机可执行指令所构成。程序模块135还可以包括本地HTTP服务器182,其可以对包括本地数据183和远程数据171在内的数据提供统一访问,这将在以下更为详细地进行描述。虽然被示出为程序模块135的一部分,但是本地HTTP服务器182同样可以是操作系统134的一部分,或者可以是操作系统134的组件和其它程序模块的混合。程序数据136可以包括本地数据183,在一个实施例中,其可以是对于其它客户端计算设备而言有意义的数据,并且因此可以被远程存储以使得其能够被那些其它客户端计算设备所访问。例如,本地数据183可以包括用户可能希望从多个计算设备而不仅仅是客户端计算设备100进行访问的联系信息。作为另一个示例,本地数据183可以包括用户可能希望在除客户端计算设备100之外的其它计算设备上加以利用或者被提供以对其的访问的书签或其它应用设置。
计算设备100还可以包括其它可移动/非可移动、易失性/非易失性计算机存储媒体。仅作为示例,图1图示了硬盘驱动器141,其从非可移动的、非易失性磁性媒体进行读取并且向其进行写入。可以随示例性计算设备使用的其它可移动/非可移动、易失性/非易失性计算机存储媒体包括磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等,但是并不局限于此。硬盘驱动器141通常通过诸如接口140的非可移动存储器接口连接至系统总线121。
以上所讨论以及在图1中图示的驱动器及其相关联的计算机存储媒体为计算设备100提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被图示为存储操作系统144、其它程序模块145和程序数据146。注意,这些组件可以与操作系统134、其它程序模块135和程序数据136相同或不同。操作系统144、其它程序模块145和程序数据146在这里被给予不同附图标记以最低程度说明了它们为不同副本。这样,程序模块145的第三方应用191和本地HTTP服务器192,以及程序数据146的本地数据193同样被给予不同附图标记而以最低程度说明了它们分别为第三方应用181、本地HTTP服务器182和本地数据183的不同副本。
此外,计算设备100可以使用到一个或多个远程计算机的逻辑连接而在联网环境中进行操作。为了说明简要,计算设备100在图1中被示为连接到网络160,其并不局限于任何特定网络或网络协议。图1中所描绘的逻辑连接是一般网络连接151,其可以是局域网(LAN)、广域网(WAN)或其它网络。计算设备100通过网络接口或适配器150连接至一般网络连接151,所述网络接口或适配器150进而连接至系统总线121。在联网环境中,相对于计算设备100或者其部分或外设所描绘的程序模块可以存储在通过一般网络连接151通信耦接至计算设备100的一个或多个其它计算设备的存储器中。将要意识到的是,所示出的网络连接是示例性的,并且可以使用在计算设备之间建立通信链路的其它手段。
网络160可能已经向其通信耦接了联网存储170。联网存储170可以表示通信耦接至一个或多个服务器计算设备的存储媒体,所述服务器计算设备进而通信耦接至网络160。因此,以与硬盘驱动器141通过存储器接口140通信耦接至客户端计算设备100类似的方式,代表联网存储170的存储媒体可以同样通信耦接至一个或多个服务器计算设备,所述服务器计算设备可以包括与被图示为客户端计算设备100的一部分并且在以上详细描述的那些相类似的组件。类似地,以与客户端计算设备100经由网络接口150通信耦接至网络160相类似的方式,这些一个或多个服务器计算设备同样能够通信耦接至网络160。然而,为了说明简要以及便于参考,联网存储170将独立于其与一个或多个服务器计算设备的关联进行图示和引用,原因在于那些服务器计算设备的操作对于本领域技术人员而言是公知的并且与以下所描述的机制无关。
联网存储170可以包括远程数据171,其可以包括可由在客户端计算设备100上执行的进程所访问并且对其有用的信息。此外,远程数据171可以包括其作为由客户端计算设备100本地维护的本地数据183和193的副本的部分173。例如,网络存储170可以是一个或多个网站的一部分,所述网站被定向以使得用户能够从诸如客户端计算设备100的多个计算设备访问某些信息。因此,在这样的示例中,远程数据171例如可以包括由客户端计算设备100的用户或者已经许可这样的用户访问其照片的其它个人所拍摄的照片。在这样的示例中,远程数据171的部分173可以是客户端计算设备100的用户已经上传的照片,并且因此那些相同的照片可以作为本地数据183和193而被保留在客户端计算设备100上,而远程数据171的其余部分可以是其它个人已经上传的照片,它们还没有或者将永远不会作为本地数据183和193而被下载到客户端计算设备100。作为另一个示例,远程数据171可以包括不同类型的数据,其中的诸如部分173的一些可以作为本地数据183和193被同步至客户端计算设备100,而其它则不可以如此。因此,在这样的示例中,远程数据171可以包括联系信息,其可以作为部分173的一部分并且可以作为本地数据183和193被同步至客户端计算设备100,并且远程数据171还可以包括诸如从数据馈送或其它源远程获得的信息,它们可以不必与客户端计算设备100进行同步,并且仅可以通过网络160经由访问而被网络存储170所获得。
转向图2,这里所示出的系统200图示了示例性机制,通过该机制,本地HTTP服务器182当在客户端计算设备100上运行时可以作为统一访问机制,使得诸如第三方应用181的应用程序经由针对数据的单次请求220而透明地访问本地数据193或远程数据171。最初,如所示出的,第三方应用181可以将针对数据的请求220指向本地HTTP服务器182。在超文本传输协议的背景下,这样的请求可以采取GET请求的形式。然而,无论所采用的特定协议如何,针对数据的请求220都可以包括哪些数据被请求的指示。基于这样的指示,本地HTTP服务器182能够确定数据是否可以作为如之前所描述的能够存储在客户端计算设备100本地的存储介质上的本地数据193的一部分而获得,或者该数据是否仅可以作为能够存储在联网存储170上的远程数据171的一部分而获得。
在一个实施例中,所请求数据能够位于何处的确定可以基于所请求数据的命名空间。例如,如图2的系统200所示,某些命名空间(图2中的所指定的命名空间A、B和C)的数据能够从本地数据193获得,而除包括之前所提到的命名空间A、B和C之外还包括其它命名空间(所指定的命名空间D和E)的不同命名空间集合的数据则可以从远程数据171所获得。与哪些命名空间由作为本地数据193的一部分的数据所表示以及哪些命名空间由仅可作为远程数据171的一部分而获得的数据所表示相关的信息可以被本地HTTP服务器182所保留并且在接收到针对数据的请求220时被引用。
在一个实施例中,本地HTTP服务器182所维护的与数据的哪些命名空间存储在哪些位置中相关的信息可以由同步组件210所通知。例如,本地HTTP服务器182可以指导同步组件210在本地数据193和远程数据171中对应于命名空间A、B和C的部分173之间同步那些命名空间的数据。基于同步组件210所进行的已经成功执行了这样的同步的指示,其诸如通过通信230进行指示,本地HTTP服务器182能够维护指示命名空间A、B和C的数据可作为本地数据193的一部分而获得的信息。相反,如果同步组件210向本地HTTP服务器182提供了本地数据193与远程数据171的部分173最近的同步还没有成功执行的指示,则本地HTTP服务器182能够维护指示命名空间A、B和C的数据仅可以从远程数据171获得的信息,这是因为本地数据193可能并不反映该数据的最近版本。
可替换地,同步组件210可以选择要在本地数据193和远程数据171的部分173之间同步哪些数据,并且能够仅通知本地HTTP服务器182所选择数据的命名空间。例如,同步组件210可以给出独立的用户接口,其使得计算设备100的用户能够单独选择要在本地数据193和远程数据171的部分173之间进行同步的数据的一个或多个类型或命名空间。然而,本地HTTP服务器182所维护的关于数据的哪些命名空间可以本地获得以及哪些仅可以远程获得的信息仍然能够如以上所描述的那样进行维护。
在一个实施例中,同步组件210可以是现有的同步组件,诸如目前可普遍获得的那些同步组件。典型地,这样的同步组件210能够对客户端计算设备100到网络160的连接进行监视,并且当这样的连接连续或周期性地得以维护时,将远程数据171的部分173与本地数据193进行比较。如果检测到差异,则同步组件210能够利用已知的同步手法或技术按照需要将最近数据从本地数据193复制到远程数据171的部分173,或者反之亦然。
回到本地HTTP服务器182的操作,一旦其从诸如第三方应用181的应用程序接收到针对数据的请求220,本地HTTP服务器182就能够确定所请求的数据是否为从本地数据193获得的数据的命名空间的一部分,或者所请求的数据是否为仅能够从远程数据171获得的数据的命名空间的一部分。如果请求220所请求的数据是从本地数据193获得的数据的命名空间的一部分,则本地HTTP服务器182能够从本地数据193取得所请求的数据,如图2的系统200的通信240和241所图示的。相反,如果请求220所请求的数据是仅能够从远程数据171所获得的数据的命名空间的一部分,则本地HTTP服务器182能够如通信250和251所图示的从远程数据171获得所请求的数据。如本领域技术人员将要认识到的,通信250和251可以包括诸如将通过图1所示的客户端计算设备100的网络接口150、网络160自身以及托管联网存储170的一个或多个服务器计算设备来进行的网络通信。
一旦本地HTTP服务器182已经从远程数据171或本地数据193获得了所请求的数据,其就能够如通信260所图示的将该数据返回至进行请求的应用。以这样的方式,本地HTTP服务器182能够提供数据的单一来源,而无论该数据是在计算设备100本地还是其远程存储。因此,诸如第三方应用181的应用程序仅需要将针对数据的请求(诸如针对数据的请求220)指引到本地HTTP服务器182,而无论所请求的数据是能够本地还是远程获得。在一个实施例中,本地HTTP服务器182能够向客户端计算设备100上执行的其它进程提供互联网协议(IP)地址,从而原本被设计为从联网存储170(诸如从可以提供用户接口的一个或多个网站,通过该用户接口可以方便地访问存储在联网存储170上的数据)请求数据的应用程序能够被轻易地修改为另外对本地HTTP服务器182加以利用。对于每个应用而言,如果所请求的数据实际上能够本地获得,则对本地HTTP服务器182的利用能够提供速度上的益处,而如果数据仅能够远程获得则仅增加了最小的开支。
翻到图3,这里所示出的系统300图示了支持数据的编辑或修改的示例性机制系列。最初,诸如第三方应用181的应用能够经由通信320尝试改变一些数据,所述通信320可以将经改变的数据提供至本地HTTP服务器182。在超文本传输协议的具体背景下,改变数据的通信320可以经由HTTP POST命令或其它类似命令来提供经改变的数据。然而,无论所采用的特定协议如何,改变数据的通信320都可以包括哪些数据被改变以及其应当变为的新数据的指示。利用这样的信息,本地HTTP服务器182能够基于被改变数据的命名空间以以上详细描述的方式来识别这样的数据是否存在于本地数据93中,或者其是否仅存在于远程数据171中。如果第三方应用181尝试改变的数据仅作为远程数据171的一部分而存在,则本地HTTP服务器182能够诸如经由通信350将经改变的数据提供至远程数据171。如本领域技术人员将会获知的,通信350可以包括网络通信,诸如将通过图1所示的客户端计算设备100的网络接口150、网络160自身以及托管联网存储170的一个或多个服务器计算设备进行指引的网络通信。
然而,如果通信320所改变的数据是本地数据193的一部分,则本地HTTP服务器182能够如通信340所图示的改变数据的本地副本。随后,作为通信340的一部分,诸如同步机制210的独立同步进程能够利用已知同步手法或技术来检测本地HTTP服务器182所执行的数据改变。在检测到变化的情况下,如通信370所图示的,同步机制210能够通过将经改变的数据从本地数据193复制到远程数据171的部分173而将本地数据193与远程数据171的与之相对应的部分173进行同步。以这样的方式,如果所改变的数据实际上是本地数据193的一部分,则第三方应用181经由通信320所请求的改变能够在本地数据193和远程数据171中都得以反映。
翻到图4,这里所示出的系统400图示了与图2的系统200所图示的那些相类似的示例性机制系列,除了如图4所示出的,系统400的客户端计算设备100不再保持到网络160的通信连接,因此所述网络160没有在图4中被示出。诸如第三方应用181的应用仍然能够向本地HTTP服务器182发送针对数据的请求,诸如以上所描述的针对数据的请求220。还如以上所描述的,本地HTTP服务器182能够确定数据是否可在本地获得,并且如果是,则本地HTTP服务器182能够经由通信240和241从本地数据193获得这样的数据,并且随后经由通信260将该所请求并且现在所获得的数据提供回进行请求的应用,所有这些在之前都已经进行了描述。
然而,在图4的系统400的背景下,客户端计算设备100不再保持到网络160的通信连接,如果本地HTTP服务器182确定请求220所请求的数据是仅能够从之前所示出的远处数据171所获得的数据的命名空间的一部分,则本地HTTP服务器182能够尝试访问这样的数据,并且当这样的尝试由于缺少到网络160的通信连接而失败时,本地HTTP服务器182能够向进行请求的第三方应用181返回数据不可访问的通知460。在一个实施例中,数据不可访问的通知460可以等同于如果它们请求第三方应用181直接尝试访问远程数据171,或者仅可经由到网络160的连接所获得的任意其它信息而本要被提供至进行请求的第三方应用181的类型的通知。
图5的系统500图示了与图4所示相类似的情形,其中客户端计算设备100不再保持到网络160的通信连接,所述网络160因此没有在图5中被示出。在图5的系统500中,诸如第三方应用181的应用诸如能够经由通信320以之前所描述方式尝试改变数据。如以上所描述的,如果本地HTTP服务器182确定了所要改变的数据仅可以作为远程数据171的一部分而获得,之前所示出的,则本地HTTP服务器182能够尝试改变这样的数据并且当这样的尝试由于缺少到网络160的通信连接而失败时,本地HTTP服务器182能够以之前所描述的方式返回数据不可访问的通知460。
然而,如果本地HTTP服务器182确定了所要改变的数据是处于本地数据193的数据的命名空间的一部分,则其能够经由通信340以之前所描述的方式对该数据进行改变。同步机制210随后能够如之前那样检测这样的改变。以同步领域技术人员所公知的方式,如通信570所图示的,同步机制210能够保留与该数据改变相关的信息,并且能够在随后重新建立客户端计算设备100和网络160(图5中未示出)之间的通信连接时将经改变的数据复制到本地数据193与之同步的远程数据171的部分173(二者也没有在图5中示出)。以这样的方式,即使在客户端计算设备100从网络160脱离通信耦接时,诸如第三方应用181的应用也能够经由本地HTTP服务器182执行数据访问和数据修改,至少是针对作为本地数据193而本地保留的数据的命名空间的一部分的数据。在客户端计算设备100从网络160脱离通信耦接时所能够对本地数据193进行的任何变化随后都能够在与网络160的通信连接被重新建立时被同步机制210反映回远程数据171。
翻到图6,这里所示出的流程图600图示了能够由以上示出和详细描述的诸如本地HTTP服务器182的组件所执行的示例性步骤系列。最初,如图6所示,在步骤610可以从本地执行的计算机可执行指令接收针对数据的请求,所述计算机可执行指令诸如第三方应用181,这也在以上被示出和描述详细。随后,在步骤615,可以确定作为所请求数据的命名空间的一部分的数据是否被本地存储。如果在步骤615确定所请求的数据属于其数据在本地存储的命名空间,则处理能够进行至步骤660,其中能够从本地存储获取所请求的数据。在一个实施例中,如以上所描述的,在步骤660从本地存储获取数据之前,可以进行图6的流程图600没有具体图示的确定。更具体地,这样的确定能够验证与数据的本地副本相关的数据已经被同步机制成功同步。如果还没有成功执行这样的同步机制,则处理能够返回步骤620。在一个实施例中,在这样的情况下,如果在步骤620确定到网络的通信连接当前不可用,则处理能够返回步骤660并且从本地存储获取所请求的数据,因为这样的数据可以是当前可用数据的最佳副本。然而,在另一个实施例中,数据可以具有与之相关联的截止期(expiration),以使得如果数据的本地副本还没有进行最近的同步,并且与网络的通信连接不可用,则如果与网络的通信连接已经不可用超过了预先确定的时间长度,就可以认为数据已经过期或者以其它方式变为陈旧的。在这样的情况下,即使数据的副本就存在于本地存储中,也能够在步骤625给出错误,其在以下更为详细地进行描述,这是因为这样的副本可以被认为是陈旧或过期的。然而,一旦在步骤660从本地存储获得了数据,则随后在步骤665,相关处理能够在步骤660获得的所请求数据被提供至进行请求的计算机可执行指令时结束。
然而,如果在步骤615确定了所请求的数据是其数据并非本地存储的命名空间的一部分,则步骤620的后续确定能够确定当前在其上执行步骤的计算设备是否保持由与网络的通信连接,其中远程存储的所请求数据能够通过所述通信连接而被访问。如果在步骤620确定了当前没有保持这样的通信连接,则相关处理能够在步骤625结束,同时向进行请求的计算机可执行指令返回指示没有到所请求数据的通信连接的错误。可替换地,如果在步骤620确定了保持有到相关网络的通信连接,则处理可以进行至步骤630。在步骤630,可以从联网存储请求在步骤610所请求的数据。
存储在联网存储中的数据被一种或多种认证机制所保护。例如,能够在联网存储上存储数据的网站在提供对该数据的访问之前可以要求提供各种认证信息。典型地,这样的认证信息可以包括具体用户的标识,诸如用户名,以及所共享的秘密,诸如用户和认证网站都知道的密码。例如,能够向用户提供对该用户的照片以及与该用户相关联的其它用户的照片的网络访问的网站可以在显示那些照片或以其它方式提供对那些照片的访问之前请求用户提供用户名和密码。
在一个实施例中,无论数据是本地还是远程存储,针对这样的数据提供透明访问的组件可以进一步提供自动认证机制以促成获得远程存储的数据。典型地,例如,为了这样的组件甚至从本地执行的计算机可执行指令接收到针对数据的请求,诸如在步骤610中所接收的请求,本地执行的计算机可执行指令将需要作为用户进程的一部分来执行,所述用户处理将允许它们对针对数据提供透明访问的该组件进行访问。因此,典型地,那些计算机可执行指令代表其执行的用户将已经诸如通过提供标识和认证信息而登录到客户端计算设备上。虽然客户端计算设备所实施的使得用户能够登录的认证机制可以不同于各种网站所实施的可以保护对远程存储数据的访问的那些机制,但是用户在能够访问提供对数据的透明访问的组件之前在客户端计算设备上得到认证的单纯事实可使得这样的组件能够将这样的用户的凭证与各网站或能够保护远程存储的数据的其它保护机制所要求的相关标识和认证信息进行关联。
因此,如果在步骤635确定了需要进行认证,则处理可以进行至步骤640,其中能够获得进行请求的计算机可执行指令在用户的进程空间中执行的该用户的身份。利用这样的身份,能够确定步骤635所需要的认证信息。例如,能够在客户端计算设备上的用户的身份和该用户在能够通过其访问远程数据的一个或多个各种网站的认证凭证之间保持关联。在一个实施例中,这样的信息可以被高速缓存,以使得用户可以被要求提供至少一次与特定的所请求数据相关的认证信息,但是随后在后续访问期间,这样的信息可以利用提供对数据的透明访问的组件而被高速缓存并且可以简单地基于客户端计算设备上的用户的身份进行引用,所述请求在步骤610从所述用户的进程空间被接收。因此,如所示出的,在步骤645,这样的高速缓存能够利用步骤645所确定的用户的身份进行引用,并且可以从其获得适当的认证信息。在步骤645获得的认证信息随后可以在步骤650被提供至进行请求的网络实体。在成功认证之后,可以在步骤655从联网存储获得所请求的数据。相关处理随后能够在步骤655结束,同时将这样的数据提供至进行请求的计算机可执行指令。
然而,如果在步骤635确定了不需要认证,则处理可以简单地进行至在步骤655从联网存储获得所请求数据,并且随后在步骤665将这样的所请求数据提供至进行请求的计算机可执行指令。
翻到图7,这里所示出的流程图700图示了与以上参考图6的流程图所描述的那些相类似的示例性步骤系列,其区别在于如图7的流程图700所示出的,处理可以在步骤710开始,其中从本地执行的计算机可执行指令接收所要存储的经改变数据,或者以其它方式接收对指定数据进行编辑或以其它方式进行修改的请求。如前所述,诸如能够在步骤715确定所要改变的数据的命名空间是否是其数据在本地存储的命名空间。如果所要改变的数据在本地存储,则处理可以进行至步骤760,经改变的数据在其中能够被存储在本地存储中。随后,相关处理能够在步骤765结束,同时向在步骤710提供这样的数据的计算机可执行指令返回确认或者其它成功的指示。
可替换地,如果在步骤715确定了数据被远程存储,则可以在步骤720检查所述计算机可执行指令正在其上执行的计算设备是否保持与网络的通信连接,而这样远程存储的数据可以通过所述通信连接而被访问。如果没有保持这样的通信连接,则相关处理可以在步骤725结束,同时向在步骤710针对其接收了改变数据的请求的计算机可执行指令进行错误指示。
如果所述计算机可执行指令正在其上执行的计算设备保持了与网络的通信连接,而远程存储的数据可以通过所述通信连接而被访问,则该处理能够进行至步骤730,经改变的数据可以在此时被提供至联网存储。如果如步骤735所确定的,需要认证来访问或以其它方式改变联网存储上的相关数据,则处理能够以步骤740、745和750进行,它们等同于以上参考图6的流程图600详细描述的步骤640、645和650。如果需要认证并且其被成功提供,或者如果不需要认证,则处理能够以步骤755进行,经改变的数据能够在此时被存储在联网存储上。相关处理随后能够在步骤765结束,同时向在步骤710从其最初接收经改变数据的计算机可执行指令返回确认或其它成功的指示。
返回图2,给定以上描述,能够看到以上所描述的机制的优势在于,当前示例中的本地HTTP服务器182能够提供单一接口,诸如第三方应用程序181的应用程序能够通过所述接口访问数据而无论这样的数据的存储位置如何。因此,例如,如果在同步机制210未来的表现形式中,属于命名空间D的数据也在远程数据171和本地数据193之间被同步,则无需对诸如第三方应用181的应用程序进行修改以利用这样本地可用的数据。相反,对于这样的应用程序透明的是,针对命名空间D的数据的进一步的请求现在将由本地HTTP服务器182从本地数据193而得以满足,并且如果适当,将被同步机制210同步回远程数据171。类似地,例如如果命名空间A的数据不再由同步机制210进行同步,诸如第三方应用程序181的应用程序将仍然继续适当进行操作而没有修改,这是因为针对这样的数据的请求将简单地被本地HTTP服务器182从远程数据171透明地满足。
如能够从以上描述所看到的,已经提供了一种用于对本地和远程数据二者提供透明访问而无论数据的实际位置如何的机制。借鉴于这里所描述主题的许多可能变化,我们请求保护我们的发明以使得所有这样的实施例都可以处于以下权利要求及其等同形式的范围之内。

Claims (13)

1. 一种对本地存储的数据和远程存储的数据二者提供透明访问的方法,所述方法包括步骤:
将至少一个命名空间的数据在本地存储的数据和远程存储的数据之间进行同步以使得在本地存储的数据上所执行的对数据的至少一个命名空间的数据的改变被复制到远程存储的数据,并且使得在远程存储的数据上所执行的对数据的至少一个命名空间的数据的改变被复制到本地存储的数据;
提供用于数据集合的访问的单一接口,而无论所述数据集合是本地存储的数据还是远程存储的数据的一部分;
在所提供接口上接收指向所述数据集合的数据访问请求;
基于所述数据集合的命名空间确定所述数据集合是本地存储的数据还是远程存储的数据的一部分;
如果所述确定指示所述数据集合是本地存储的数据的一部分,则提供对来自本地存储的数据的数据集合的访问;并且
如果所述确定指示所述数据集合是远程存储的数据的一部分并且如果执行计算机可执行指令的计算设备包括到远程存储的数据的通信连接,则提供对来自远程存储的数据的数据集合的访问。
2. 根据权利要求1的方法,其中提供对来自本地存储的数据的数据集合的访问包括检查数据的同步状态,并且在数据同步处于当前的情况下仅提供对来自本地存储的数据的数据集合的访问。
3. 根据权利要求1的方法,其中提供对来自本地存储的数据的数据集合的访问包括检查到远程存储的数据的通信连接的状态,并且在本地存储的数据并不陈旧的情况下仅提供对来自本地存储的数据的数据集合的访问。
4. 根据权利要求1的方法,其中提供对来自远程存储的数据的数据集合的访问包括针对认证机制进行认证,对远程存储的数据的访问通过所述认证机制而得以被保护。
5. 根据权利要求4的方法,其中所述认证包括计算机可执行指令,其用于基于从其进程空间接收数据访问请求的用户的标识获得标识和认证信息以提供至所述认证机制。
6. 根据权利要求5的方法,其中所述标识和认证信息从高速缓存获得以便访问远程存储的数据,所述高速缓存与用户相关联并且由所述标识和认证信息的在先实体、由用户所填入。
7. 根据权利要求1的方法,其中所接收的数据访问请求包括对所述数据集合进行修改的请求,其中对所述数据集合提供访问包括依据修改所述数据集合的请求对所述数据集合进行修改。
8. 根据权利要求7的方法,其中如果执行所述方法的计算设备并不包括到远程存储的数据的通信连接,则所述同步包括在到远程存储的数据的通信连接恢复时将经修改的数据集合复制到远程存储的数据。
9. 包括用于执行权利要求1的步骤的计算机可执行指令的一个或多个计算机可读媒体。
10. 一种计算设备,包括:
本地存储的数据;
至少一个应用程序;
同步机制,其用于将至少一个命名空间的数据在本地存储的数据和远程存储的数据之间进行同步以使得在本地存储的数据上所执行的对数据的至少一个命名空间的数据的改变被复制到远程存储的数据,并且使得在远程存储的数据上所执行的对数据的至少一个命名空间的数据的改变被复制到本地存储的数据;和
统一数据访问机制,其提供对本地存储的数据和远程存储的数据的透明访问,所述统一数据访问机制执行包括以下的步骤:
     提供用于数据集合的访问的单一接口,而无论所述数据集合时本地存储的数据还是远程存储的数据的一部分;
     在所提供接口上接收来自至少一个应用程序的指向所述数据集合的数据访问请求;
     基于所述数据集合的命名空间确定所述数据集合是本地存储的数据还是远程存储的数据的一部分;
     如果所述确定指示所述数据集合是本地存储的数据的一部分,则对至少一个应用程序提供对来自本地存储的数据的数据集合的访问;并且
     如果所述确定指示所述数据集合是远程存储的数据的一部分并且如果所述计算设备包括到远程存储的数据的通信连接,则对至少一个应用程序提供对来自远程存储的数据的数据集合的访问。
11. 根据权利要求10的计算设备,其中所述统一数据访问机制执行包括以下的进一步的步骤:如果向至少一个应用程序提供对数据集合的访问是来自于远程存储的数据,则针对认证机制进行认证,对远程存储的数据的访问通过所述认证机制而得以被保护。
12. 根据权利要求11的计算设备,其中所述统一数据访问机制执行包括以下的进一步的步骤:基于用户的标识而获得标识和认证信息以提供至所述认证机制,至少一个应用程序在所述用户的进程空间中在计算设备上执行。
13. 根据权利要求10的计算设备,其中从至少一个应用程序接收的数据访问请求包括所述至少一个应用程序所进行的修改数据集合的请求;并且其中由所述统一数据访问机制提供对数据集合的访问包括由所述统一数据访问机制依据所述至少一个应用程序所进行的修改数据集合的请求而对所述数据集合进行修改。
CN201180029572.7A 2010-06-15 2011-06-06 针对本地和远程数据的透明访问机制 Active CN102934101B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/815713 2010-06-15
US12/815,713 US8386424B2 (en) 2010-06-15 2010-06-15 Transparent access mechanism for local and remote data
PCT/US2011/039303 WO2011159514A2 (en) 2010-06-15 2011-06-06 Transparent access mechanism for local and remote data

Publications (2)

Publication Number Publication Date
CN102934101A true CN102934101A (zh) 2013-02-13
CN102934101B CN102934101B (zh) 2015-10-07

Family

ID=45097048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180029572.7A Active CN102934101B (zh) 2010-06-15 2011-06-06 针对本地和远程数据的透明访问机制

Country Status (5)

Country Link
US (1) US8386424B2 (zh)
EP (1) EP2583185A4 (zh)
CN (1) CN102934101B (zh)
HK (1) HK1181144A1 (zh)
WO (1) WO2011159514A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018065847A1 (en) * 2016-10-04 2018-04-12 International Business Machines Corporation Consistent hashing configurations supporting multi-site replication

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869097B2 (en) * 2011-03-23 2014-10-21 Infosys Limited Online integrated development environment with code assist
US9373358B2 (en) 2011-11-08 2016-06-21 Adobe Systems Incorporated Collaborative media editing system
US8898253B2 (en) * 2011-11-08 2014-11-25 Adobe Systems Incorporated Provision of media from a device
US9288248B2 (en) 2011-11-08 2016-03-15 Adobe Systems Incorporated Media system with local or remote rendering
US8768924B2 (en) 2011-11-08 2014-07-01 Adobe Systems Incorporated Conflict resolution in a media editing system
US9088461B2 (en) * 2012-06-21 2015-07-21 International Business Machines Corporation Common web accessible data store for client side page processing
US9858288B2 (en) 2012-08-03 2018-01-02 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US9424437B1 (en) 2012-10-12 2016-08-23 Egnyte, Inc. Systems and methods for providing file access in a hybrid cloud storage system
US10324953B1 (en) * 2014-06-26 2019-06-18 EMC IP Holding Company LLC Managing remote data center from another data center
US10380076B2 (en) 2014-07-21 2019-08-13 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
JP6395540B2 (ja) * 2014-09-25 2018-09-26 株式会社東芝 連携システム、プログラム
US11144510B2 (en) * 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US20170177613A1 (en) * 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102370A1 (en) * 2003-10-23 2005-05-12 Yun Lin Truth on client persistent caching
US20050198385A1 (en) * 2004-01-30 2005-09-08 Aust Brian S. System and method for generating a consistent user name-space on networked devices
US20060117018A1 (en) * 2004-11-30 2006-06-01 Microsoft Corporation Method and system for caching remote files locally
US20090327447A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Extending sharing options of local computing resources

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0713183A3 (en) * 1994-11-18 1996-10-02 Microsoft Corp Network-independent shadow files
US7930629B2 (en) 2005-07-14 2011-04-19 Microsoft Corporation Consolidating local and remote taxonomies
US20080028416A1 (en) 2006-02-20 2008-01-31 Topeer Corporation System and Method for Controlling Local Computer Applications Using a Web Interface
US7509477B2 (en) 2006-04-12 2009-03-24 Microsoft Corporation Aggregating data from difference sources
US7797453B2 (en) 2006-09-29 2010-09-14 Microsoft Corporation Resource standardization in an off-premise environment
US7680067B2 (en) * 2007-03-09 2010-03-16 Palm, Inc. Peer-to-peer data synchronization architecture
ATE501484T1 (de) * 2007-05-07 2011-03-15 Software Ag Verfahren und server zur synchronisierung einer vielzahl von auf eine datenbank zugreifenden clients
US20090106456A1 (en) 2007-10-19 2009-04-23 Urs Muller Method and apparatus for interactions of web applications with the local host environment
EP2202897B1 (en) * 2008-12-23 2015-11-04 Telefonaktiebolaget L M Ericsson (publ) Technique for synchronizing network access modules in a mobile communication device
US8255909B2 (en) * 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
FR2942330B1 (fr) * 2009-02-13 2011-08-19 Renesas Design France Sas Dispositif de traitement de l'information communiquant permettant un acces rapide a un ensemble d'informations personnelles
US8284908B2 (en) * 2009-12-08 2012-10-09 Verizon Patent And Licensing Inc. Synchronizing voicemail among multiple client access points

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050102370A1 (en) * 2003-10-23 2005-05-12 Yun Lin Truth on client persistent caching
US20050198385A1 (en) * 2004-01-30 2005-09-08 Aust Brian S. System and method for generating a consistent user name-space on networked devices
US20060117018A1 (en) * 2004-11-30 2006-06-01 Microsoft Corporation Method and system for caching remote files locally
US20090327447A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Extending sharing options of local computing resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018065847A1 (en) * 2016-10-04 2018-04-12 International Business Machines Corporation Consistent hashing configurations supporting multi-site replication
US10248659B2 (en) 2016-10-04 2019-04-02 International Business Machines Corporation Consistent hashing configurations supporting multi-site replication
US10725971B2 (en) 2016-10-04 2020-07-28 International Business Machines Corporation Consistent hashing configurations supporting multi-site replication
US10831714B2 (en) 2016-10-04 2020-11-10 International Business Machines Corporation Consistent hashing configurations supporting multi-site replication

Also Published As

Publication number Publication date
HK1181144A1 (zh) 2013-11-01
EP2583185A2 (en) 2013-04-24
US20110307442A1 (en) 2011-12-15
US8386424B2 (en) 2013-02-26
WO2011159514A2 (en) 2011-12-22
WO2011159514A3 (en) 2012-04-05
CN102934101B (zh) 2015-10-07
EP2583185A4 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
CN102934101A (zh) 针对本地和远程数据的透明访问机制
US10880287B2 (en) Out of box experience application API integration
EP3391613B1 (en) Certificate renewal and deployment
EP3235213B1 (en) No password user account access
EP2756444B1 (en) Resource access authorization
JP5976258B1 (ja) ライトインストーラ
EP3203709B1 (en) Cloud service server and method for managing cloud service server
US11140147B2 (en) SAML SSO UX improvements
TW200908608A (en) Automatically managing system downtime in a computer network
CN101689169B (zh) 分布式操作系统中外部硬件装置的管理
US20090222505A1 (en) Peer to peer software license management system for temporarily relocating available software licenses
EP3533200B1 (en) Fault tolerant automatic secret rotation
CN111475795A (zh) 一种面向多应用进行统一认证授权的方法及装置
US20200233699A1 (en) Platform-based change management
US20120311375A1 (en) Redirecting requests to secondary location during temporary outage
JP4504969B2 (ja) データ更新処理装置、データ更新処理方法及びデータ更新処理プログラム
CN101114265A (zh) 启用数据处理系统的输入/输出适配器的方法和装置
AU2014412020B2 (en) Techniques to transform network resource requests to zero rated network requests
CN109428872B (zh) 数据传输方法、设备、服务器及启动方法、系统
US10693939B2 (en) Providing modified protocol responses
US20120310912A1 (en) Crawl freshness in disaster data center
US20160072881A1 (en) Client system communication with a member of a cluster of server systems
US11711373B2 (en) Platform-based authentication for external services
US20220337583A1 (en) Authentication system
WO2020246093A1 (ja) 情報提供方法、情報提供システムおよびサーバ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1181144

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150610

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

Effective date of registration: 20150610

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1181144

Country of ref document: HK