CN104011698A - 基于从相应的主应用程序数据导出的标识符来访问补充数据 - Google Patents

基于从相应的主应用程序数据导出的标识符来访问补充数据 Download PDF

Info

Publication number
CN104011698A
CN104011698A CN201280060545.0A CN201280060545A CN104011698A CN 104011698 A CN104011698 A CN 104011698A CN 201280060545 A CN201280060545 A CN 201280060545A CN 104011698 A CN104011698 A CN 104011698A
Authority
CN
China
Prior art keywords
data
application program
server
unique identifier
supplementary
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
CN201280060545.0A
Other languages
English (en)
Other versions
CN104011698B (zh
Inventor
G.T.勒曼
V.德
R.H.罗德里格斯
A.博伊科
G.费尔普斯
J.(J.)刘
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 CN104011698A publication Critical patent/CN104011698A/zh
Application granted granted Critical
Publication of CN104011698B publication Critical patent/CN104011698B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • 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]

Abstract

应用程序的主数据被存储在位于远端的第一服务器处,比如云存储处。所述应用程序的用户可能希望对主数据进行修改或添加以创建在所述第一服务器中存储不被支持的补充数据。本发明的配置包括一种在第二存储服务提供商(例如,企业内联网)处的第二服务器上存储补充数据(例如,编辑,添加等)的方法。由该相同用户在不同计算机设备上执行的所述应用程序的不同实例可以从所述第一存储服务提供商获取所述主数据以及从所述第二存储服务提供商处获取所述补充数据。

Description

基于从相应的主应用程序数据导出的标识符来访问补充数据
背景技术
在计算机和网络技术领域,术语“云”和“云计算”经常被用作例如因特网之类的某些网络技术的比喻,所述因特网是计算机,路由器,服务器等底层网络基础设施的抽象,其支持很多不同类型的计算机资源之间的连接。
所谓的“云计算”是虚拟化、面向服务的架构、自治和实用计算的广泛采用的自然进化。在某些情况下,云计算使用户不必是某些应用程序特征方面的专家或不必控制某些应用程序特征;这些特征由云中的服务管理,并且云存储通常是由被称为云存储服务提供商的第三方实体所提供。因此,云计算可以为诸如企业之类的实体(单独实体,云存储服务提供商)中的用户提供一种对计算机系统增加容量或添加能力的方法,而不需要投资新的基础设施,培训新的人员,许可新的软件等。常规的云计算技术为用户提供示例服务,例如,远程文档管理和存储,电子邮件和联系人管理等,而不管用户使用哪个设备连接到云。以这种方式,用户可以在他或她的办公室处的一个比如台式计算机的计算设备上访问云中的一个文档,然后稍后从另一个计算设备,例如他或她的家庭计算机访问相同的文档。访问云存储的应用程序使用一套标准化的、发布良好的应用程序编程接口(API)和预设云存储的数据格式来做这件事。
因此云在给各用户提供有用的服务方面是有帮助的,并且由用户操作的对应设备可能很大程度上或完全依靠由云提供的服务。这提供了在多个不同计算机中的任意一个上执行计算机应用程序的实例的能力,而没有必须在一个受限制的位置,比如单个计算机设备中存储与应用程序相关联的数据的麻烦。
发明内容
允许在不同计算设备上执行软件应用程序的不同实例的诸如云计算之类的常规技术的使用可能遭受不足。例如,假设第三方云存储服务使用一个特定的API提供特定数据格式的特定数据的云存储(例如给定的预定记录格式或数据格式,比如XML的联系人数据)。多个第三方软件公司可以各自开发和销售访问以该特定数据格式存储在云中的数据的软件程序(例如联系人管理者软件)。这样的软件的一个供应商可能希望创建该软件的使用户能够添加补充数据到他们的联系人信息的新版本或更新版本。作为一个示例,该软件的新版本可能允许用户标识优选或喜爱的人的联系人信息。在这种情况下,云存储服务提供商可能不支持这种补充数据的存储,因为云存储的预定义联系人记录或数据格式不适于允许添加补充数据。这可能是这种情况,因为所有管理联系人数据的不同软件程序的很多供应商可能使用相同的云存储服务,从而联系人数据格式未快速地适应来自某些供应商的新的数据存储需求。当这个问题本身在常规情况下出现时,该软件的新版本必须在本地存储设备(例如,安装了该软件的新版本并且目前正在运行其实例的该用户的台式计算机的盘系统)中存储该补充数据。这种常规方法的一个问题是,如果用户在另一个计算设备上操作相同的软件(例如,在他或她的移动设备上执行软件的另一个实例),则在该另一计算机系统上创建的补充数据对于在移动设备上的该同一个用户的软件的相同版本将不可用,因为云存储不支持该补充数据的存储,并且移动设备无法访问用户用于创建所述补充数据的所述另一计算设备的本地盘。
本文所公开的实施例基本上克服了上面讨论的常规技术的不足之处。本文的实施例包括在可由用户操作的多个设备访问的(例如,与云分离的,或者加上云存储的)辅助远程位置处存储补充数据(例如,与由第三方存储提供商如云存储进行存储的主数据的修改或补充相关的数据)的一种或多种方式。如本文中所讨论的,因为补充数据对于多个设备中的每个都是可用的,所以在不同计算设备上使用一个给定的软件应用程序的用户可以在这些不同设备中的任意一个上执行应用程序的一个实例,并且本文所公开的技术和机制允许软件的那些分离的实例被提供除由云存储的数据之外的存储在辅助存储位置(例如,第二云存储区域,或者可由多个用户计算设备访问并且支持补充数据的存储的公司服务器)中的补充数据。
在一个示例中,用户在网络中的第一计算机设备上执行应用程序的第一实例。假设第一实例是一个允许用户管理个人的联系人数据的联系人管理软件程序。通过应用程序的该第一实例,用户从第一服务器获取主应用程序的数据。这个主应用程序数据可以是,例如,按照由给定的云存储供应商操作的(由第一服务器存储的)云存储所要求的预定义或固定的数据格式进行存储的数据。在该应用程序的第一实例的使用期间,用户可以操作该第一实例来产生要与主应用程序数据相关联的补充应用程序数据。例如,用户可以购买一个联系人管理者软件的新版本,该新版本使用户能够在主应用程序数据中标识喜欢的联系人。以给定数据格式存储主应用程序数据的第一服务器或第一存储服务提供商(例如,通过云存储供应商操作的云计算环境)可能不能够支持补充应用程序数据的存储,因为云存储数据格式不适应补充数据的存储。为了克服这个问题,应用程序的第一实例(例如,从用户)接收补充应用程序数据,并将其与主应用程序数据相关联。例如,在一个实施例中,为了将补充数据与主应用程序数据相关联,该应用程序的第一实例至少部分地基于主应用程序数据计算唯一标识符值(例如,散列值)。在一个具体实施例中,生成唯一标识符值可包括应用散列函数到主应用程序数据的至少一部分以产生唯一标识符值。其他示例是,将与操作所述应用程序的第一实例的用户相关联的用户身份的散列包括在唯一识别符中。该应用程序的第一实例转发唯一标识符值以及补充应用程序数据到第二服务器用于补充应用程序数据的后续获取。第二服务器可以是,例如,在企业内联网上提供存储的服务器,所述企业内联网不同于云存储但也可由用户的各种计算设备(每个操作联系人管理者软件程序的独立实例)访问。第二服务器允许由在用户设备上的应用程序的一个或多个其他实例中的任何一个通过唯一标识符来进行补充应用程序数据的后续获取,从而即使在云存储(即,第一服务器)不支持补充数据的存储的情况下,也允许每个设备上的用户体验包括访问补充数据。
示例实施例的另外的细节将参考附图,详细描述和权利要求书在下面提供。应注意,示例实施例的这种初步讨论并不是详细说明本公开或要求保护的发明的每个实施例和/或递增的新颖方面。相反,这个简要描述只呈现了概括实施例和高出常规技术的相应的新颖点。对于本发明的额外的细节和/或可能的观点(变更)以及额外的新颖点,读者关注下文进一步讨论的本公开的详细描述部分和相应的附图。除了提供与不同实施例相关联的额外细节,以下详细描述包括实施例的进一步的概要。因此,本简要描述不限制本发明和/或所附权利要求的范围。
附图说明
从以下的本文优选实施例的更具体的描述中,本发明的上述和其它目的,特征和优点将是显而易见的,如附图中所示,其中贯穿不同视图,相同的参考符号涉及相同的部分。图不必是按比例绘制的,相反,重点在于图示实施例,原理,概念等。
图1是根据本文实施例的网络环境的示例图,其中,应用程序的第一实例启动补充应用程序数据的生成以及在第二服务器处的后续存储。
图2是根据本文实施例的网络环境的示例图,其中,应用程序的第一实例生成唯一标识符值用于随后在第二服务器处索引补充应用程序数据。
图3是根据本文实施例的网络环境的示例图,其中,应用程序的第二实例启动从第二服务器获取所存储的补充应用程序数据。
图4是根据本文实施例的网络环境的更具体的示例图,其中,应用程序的第二实例使用唯一标识符值启动从第二服务器获取所存储的补充应用程序数据。
图5是一个根据本文实施例的示例图,其图示出了使用唯一标识符值来映射主应用程序数据和补充应用程序数据。
图6是一个根据本文实施例的示例图,其图示出了由一个应用程序实例使用主应用程序数据和补充应用程序数据来在图形用户界面中显示信息。
图7是一个根据本文实施例的示例图,其图示出了实现应用程序实例的示例计算机体系结构。
图8是一个根据本文实施例的流程图,其图示出了为相应的补充应用程序数据的后续获取生成唯一标识符值的示例方法。
图9是一个根据本文实施例的示例图,其图示出了根据所获取到的主应用程序数据为相应的补充应用程序数据的后续获取生成唯一标识符值。
具体实施方式
本文所公开的示例实施例提供使得在不同计算设备上使用软件应用程序的多个实例(例如膝上型计算机,台式计算机和移动设备上的同一个程序)的用户能够访问由这些应用程序实例创建的所有数据的机制。该系统适应这样的情形,其中由应用程序创建和存储的数据的一部分(即,主数据)被存储在例如可能由第三方供应商操作的具有受限的或预定义的数据格式的云存储中。如果该应用程序使用户能够创建补充数据(例如,应用程序的新版本可以提供用于增强的用户特征,该用户特征要求存储由于数据格式限制而不能存储在云存储中的补充用户数据),则所述机制在本文中公开了所述应用全都将该补充数据存储在由第二存储服务提供商提供的辅助存储装置(例如,由公司内联网操作的、用户的计算设备可以访问的非云存储)中。
根据一个实施例,应用程序的主数据可被存储在位于远端的云计算环境中的第一存储服务提供商处。如本文所使用的,术语主数据包括应用程序可以存储在第一服务器上的第一服务提供商中的数据,其中第一服务器可以是,例如,云服务器。该应用程序的用户可能希望以第一存储服务提供商不支持的方式修改主数据。这样的修改,增加等在此称为补充数据,该补充数据不能被存储在由所述第一存储服务提供商操作的第一服务器中(即,不能被存储在云中,例如因为云存储不提供用于处于其数据或记录格式的该补充数据)。换句话说,第一存储服务提供商可能不支持用户想要对主数据进行的、并且用户希望能够在他或她的任何计算设备上访问的改变和/或添加(补充数据)的存储。常规的解决方案是在用户设备中本地地存储补充数据。然而,在这种常规的解决方案中,用户在能够访问该补充数据的同时将不能够(或对用户而言很难)在多个设备上使用该应用程序。当用户从一个设备转移到另一个设备并期望所有的数据、改变和添加在所有设备上都可用时,这是有问题的。
为使用户免于受限于仅在单个的计算机设备上执行应用程序,而能够访问所有的数据,本文的配置提供了通过网络连接在第二存储服务提供商处存储修改的数据(例如,补充的应用程序数据,诸如,举例来说,与主应用程序数据相关联的编辑或添加)的机制和技术。通过使用本文所公开的系统,在不同计算机设备上执行的应用程序的不同实例可以从第一存储服务提供商(例如,从由第三方供应商操作的云)处获取主数据,以及从第二存储服务提供商(例如,由软件用户的雇主操作的企业内联网服务器,该企业内联网服务器是不同于该第三方云存储服务提供商的实体)处获取补充应用程序数据。因此,对应的用户并不限于只在单个机器上执行应用程序的实例,并且能够在多个用户计算设备上获得对主要和补充数据二者的访问。
图1是根据本文实施例的网络环境的示例图,其中,应用程序的第一实例生成补充应用程序数据并将其存储在第二服务器处。
在这个示例中,网络环境100包括多个存储服务提供商120(例如,存储服务提供商120-1,存储服务提供商120-2等),以及网络190。存储服务提供商120-1包括服务器110-1和在其中存储数据的相应存储库180-1。在本示例中,存储服务提供商120-1可以是由给定的云服务器存储提供商操作的云存储服务。存储服务提供商120-2包括服务器110-2,和在其中存储数据的相应存储库180-2。存储服务提供商120-2在本示例中可以是企业内联网。应当理解的是,存储服务提供商120可以是相同或不同的实体,企业或组织。
网络190可以包括诸如因特网,移动电话网络等资源,并且可以进一步包括可以由相同用户或不同的用户操作的一个或多个计算机设备115。
每个计算机设备115可以为一个或多个用户执行应用程序140的实例。在本示例中,计算机设备115-1执行应用程序实例140-1并且计算机设备115-2执行应用程序实例140-2 。根据另外的实施例,同一台计算机设备可以被用来执行不同的应用程序实例140。 应用程序实例140-1和140-2可以在相同或不同的时间被执行。在该示例中,存储服务提供商120-1可以是由第三方云存储服务(第一存储服务提供商)操作的可通过公共网络(比如因特网)访问的云存储系统。与此相反,在该相同示例中,存储服务提供商120-2可以是在一个企业内联网可用的仅应用程序实例140的授权用户可访问的存储装置。应用程序实例140-1和140-2的用户可以是操作和/或控制对第二服务器110-2的访问的公司(例如第二存储服务提供商120-2)的雇员。
通常,如将在下面的本申请的附图和文本中所讨论的,在执行中,应用程序实例140-1在客户端设备上操作,并与服务器110-1通信以产生并启动将主应用程序数据210-1 (也称为主数据)存储在存储库180-1中(例如,将数据存储在要求或者可能受限于特定的预定义数据格式的云中)。在该示例中,假设计算机设备115-1的用户还产生补充数据250-1(也称为补充应用程序数据)。补充数据250-1可以从操作应用程序实例140的用户产生。补充数据250-1的示例包括用户针对在他或她的联系人列表中的给定联系人提供喜欢的指示。这个示例不旨在限制。补充数据250-1是由应用程序140 (或实例140-1或140-2)产生的不能与主应用程序数据210-1一起由第一存储服务提供商120-1操作的第一服务器110-1所存储的任何数据。补充数据250-1不能与主数据210-1一起存储可能有很多原因。示例包括一个或多个这样的情形,其中补充应用程序数据250-1的数据格式,记录格式,协议,数据类型,大小,安全性要求,或其他方面或特性在技术上不被存储服务器提供商120-1支持,不与存储服务器提供商120-1兼容或者不允许被存储服务器提供商120-1存储。
通过举例的方式,存储服务提供商120-1可以不被配置为在存储库180-1中存储特定类型的数据(比如补充数据250-1),因为存储主数据210-1所需要的数据或记录格式不能够在云存储中扩展(即,由第一存储服务提供商120-1所存储的数据)以包括所述补充数据。如果许多实体具有使用由第一存储服务提供商120-1提供的云存储来存储数据的不同的软件应用程序并且云存储的数据格式不经常更新,那么这种情况可能存在。与之相比,应用程序140的软件供应商可能发布应用程序140的新版本,该新版本使用户能够添加在应用程序140的早期版本或发布中不存在的额外信息(例如,标识一个给定的联系人为喜欢的联系人)。在本示例中,该新的喜欢的联系人信息是第一存储服务提供商120-1不支持进行存储的补充数据250 – 1。如本文所述的那样,通过与服务器110-2通信,应用程序实例140-1启动在存储库180-2中对补充数据的存储。
因此,应用程序数据的一部分可以被存储在网络环境100中的多个不同位置处。例如,应用程序数据的第一部分可以被存储在存储库180-1中;该应用程序的第二部分可以被存储在存储库180-2中;等等。本文所公开的系统允许在不同设备115上操作的应用程序140的多个实例识别其中存在可用(即,存储在辅助位置120-2,180-2中)的补充应用程序数据的情形,并且允许对该补充数据进行访问(读,写,更新)而不需要对与应用程序主存储服务提供商120-1(例如云存储环境)相关联的数据格式,协议,存储机制等等进行修改。该系统克服了例如当在第一版本中最初发布允许访问预定义数据格式的可操作来在云存储中存储数据(被称为主数据)的软件应用程序140时产生的问题。该应用程序140然后可以在一个较新的发布中被修改,以允许用户创建,存储和/或更新额外的数据(称为补充数据250-1)。云存储可以由不允许对数据类型,存储格式等进行修改的第三方存储服务来提供。作为一个具体的示例,第一存储服务提供商120-1可以不更新云存储数据的格式以支持该补充数据250-1的存储。这里所公开的系统通过使用第二服务器110-2存储该补充数据250-1使得能够存储和访问它。因此,该系统使得应用程序140能够被修改,并且仍然使用云存储(例如120-1 )来存储主应用程序数据,同时允许辅助或补充存储提供商120-2存储额外的补充数据250-1。该系统还使得给定用户可以在不同的计算机系统(例如膝上型设备,台式设备,移动设备)上操作的应用程序140的不同实例,完全识别该用户的主和补充应用程序数据二者的存在,并访问这两组数据。
图2是根据本文的实施例的网络环境的示例图,其中应用程序的第一实例生成唯一标识符值用于索引补充应用程序数据。
例如,如所示,用户在第一计算机设备115-1上执行应用程序的实例140-1。通过应用程序实例140-1,用户通过与存储服务提供商120-1的服务器110-1通信来获取主应用程序数据210-1。用户提供输入给应用程序实例140-1以为任何合适的目的而使用主应用程序数据210-1,例如在图形用户界面中显示信息。
应注意,如果主应用程序数据210-1尚未存储在存储库180-1中,则用户可以提供输入给应用程序实例140-1以创建这样的数据并将其存储在存储库180-1中。
在这个示例中,在应用程序实例140-1使用期间,用户产生关于存储在存储库180-1中的主应用程序数据210-1的补充应用程序数据250-1。该补充应用程序数据250-1可以指示关于主应用程序数据210-1的增强,修改,编辑,额外信息等。因此,补充应用程序数据250-1可以以某种方式与主应用程序数据210-1相关联。通过一个非限制性示例的方式,如将在本说明书后面讨论的,主应用程序数据210可以是联系人信息,使得用户能够与网络环境中的一个或多个其他人进行通信。
如所提到的,假定在本示例中,存储主应用程序数据210-1的存储服务提供商120-1和服务器110-1不能够支持存储由用户产生的补充应用程序数据250-1。根据本文的实施例,应用程序实例140-1接收从计算机设备115-1的用户输入的补充应用程序数据250-1 。如本文所述,在计算机设备115-1上执行的应用程序140将补充应用程序数据250-1与主应用程序数据210-1进行关联。例如,在一个实施例中,为了将补充应用程序数据250-1与主应用程序数据210-1相关联,应用程序实例140-1利用处理函数225基于,例如,主应用程序数据210-1的至少一部分来计算唯一标识符值230-1。在一个具体实施例中,处理函数225通过结合操作应用程序第一实例的用户的用户身份应用散列函数到主应用程序数据210-1的至少一部分来生成唯一标识符值230-1。这为补充应用程序数据产生唯一标识符值以便允许在另一设备上的应用程序的第二实例的用户访问补充应用程序数据。以这种方式,当用户在不同设备上操作同样的软件时,补充应用程序数据对于每个实例将是可用的。
应用程序实例140-1转发唯一标识符值230-1到服务器110-2。该应用程序实例140-1也转发补充应用程序数据250-1到第二存储服务提供商120-2以在存储库180-2中存储。所述唯一标识符230-1和补充应用程序数据250-1可分离地发送或在单条记录中一起发送到第二存储服务提供商120-2。在一个实施例中,存储服务提供商120-2通过在映射260中包括UIV230-1和到补充应用程序数据250-1的指针的一个条目来将唯一标识符值(UIV)230-1与补充应用程序数据250-1相关联。
在一个实施例中,映射260中的UIV230-1用作补充应用程序数据250-1的索引。例如,如所讨论的,应用程序实例140-1启动在存储服务提供商120-2的存储库180-2中存储补充应用程序数据250-1,因为存储服务提供商120-1不能或未被配置为存储该补充应用程序数据250-1。
如上面所讨论的,应用程序实例140-1还通知存储服务提供商120-2,该唯一标识符值230-1对应于补充应用程序数据250-1。因此,在一个实施例中,应用程序实例140-1有效地产生了作为在映射260中的索引条目的UIV230。例如,在映射260中的条目将UIV230-1与存储在存储库180-2中的补充应用程序数据250-1的指针相关联。
存储服务提供商120-2的服务器110-2允许在网络环境100中操作的应用程序140的一个或多个其他实例中的任一个对补充应用程序数据250-1进行后续获取。一般来说,并且如下面更详细地解释的,这是通过让应用140的任意一个实例,在执行时,为一组已获取到的主应用程序数据210-1计算所述UIV值,然后将它传送给补充应用程序数据服务器110-2而完成的。服务器110-2可以使用该UID来检查映射160,以确定是否存在任何补充应用程序数据250-1。
一个给定的用户可以在第一时间点执行应用程序实例140-1。该给定用户可在稍后的时间执行应用程序实例140-2。通过访问存储服务提供商120,该给定用户能够在存储服务提供商120-2中保存修改(例如,通过补充应用程序数据)并在稍后的时间使用在相同或不同计算机设备上执行的应用程序140的一个实例来获取它们。
图3是网络环境的示例图,其中,操作应用程序的第二实例的用户使用UIV230启动从根据本文实施例的第二服务器获取所存储的补充应用程序数据。
如所示,应用程序实例140-2与存储服务提供商120-1进行通信,以获取存储在存储库180-1中的主数据。应用程序实例140-2产生UIV130并且将UIV130传送给存储服务提供商120-2以从存储库180-2中获取补充数据。如所提到的,并且如下面进一步讨论的那样,使用UIV存储补充应用程序数据并从存储服务提供商120-2获取补充应用程序数据的能力使得一个或多个用户能够从网络环境100中的任何位置处的一台计算机设备执行该应用程序140的一个实例,而不会丢失数据或不得不在计算机设备中本地地存储该数据。
图4是根据本文实施例的网络环境的示例图,其中,应用程序的第二实例使用唯一标识符值启动从第二服务器获取所存储的补充应用程序数据。
假定在本示例中,网络环境100中的用户在对应的计算机设备(例如115-2)上启动应用程序实例140-2的执行(图1)。
应用程序实例140-2显示图形用户界面以便用户查看。通过相对于图形用户界面的输入,用户可以请求查看刚好被存储在存储库180-1和180-2中的一个或两个中的与应用程序140相关联的(主的或补充的)数据。
在本示例中,假设应用程序实例140-2的用户操作图形用户界面以显示至少需要从存储库180-1获取主应用程序数据210-1的信息。响应于所述输入,该应用程序实例140-2从存储服务提供商120-1获取主应用程序数据210-1。如下面所讨论的,应用程序实例140-2的图形用户界面可以由用户以需要应用程序实例140-2获取补充应用程序数据250-1的方式(例如,用户请求查看他或她喜欢的联系人)操作。
应记得在这个示例中存储服务提供商120-1的服务器110-1是不能在存储库180-1中存储补充应用程序数据250-1的(例如,补充数据250-1不能存储在云存储系统中)。通过非限制性示例的方式,补充应用程序数据250-1可指示当在图形用户界面上显示数据时要应用的特殊特征,以及由提供商120-1提供的云存储系统的数据、记录格式、协议或者其他操作不支持该补充数据250-1的存储。
在一个实施例中,应用程序实例140-2执行对服务器110-2的查询以检查修改或补充应用程序数据是否可从存储服务提供商120-2获取。如下面所述,这是通过为主数据210-1计算UIV130并且将此UIV值发送到辅助(补充)存储服务提供商1202来完成的。如果有可用于主应用程序数据210-1的补充应用程序数据,则应用程序实例启动从存储服务提供商120-2获取这种数据。
为了获取补充应用程序数据250-1 ,在获取主应用程序数据210-1的副本以后,应用程序实例140-2至少部分地基于对从服务器110-1获取到的主应用程序数据210-1的处理(即,获取)产生唯一标识符值(之前由应用程序实例140-1生成的相同的UIV)。例如,在一个实施例中,应用程序实例140-2应用处理函数225,例如散列函数到主应用程序数据210-1的至少一部分,以产生唯一标识符值230-1 。散列函数可以包括散列主应用程序数据210-1的某个部分或多个不同的部分或全部以得到UIV 130-1 。用户身份可以包括在这个散列中以产生能够被用于关联该用户的该应用程序(即,该版本)的特定适当的补充应用程序数据250组的UIV 230-1。
在一个实施例中,处理函数225是在补充应用程序数据最初被产生时由第一应用程序实例140-1用于产生唯一标识符值230-1的相同处理函数。
在这个示例中,假设自从应用程序实例140-1在存储库180-1中存储主应用程序数据210-1以来主应用程序数据210-1未改变,则应用程序实例140-2的处理函数225产生当在存储服务提供商120-2中启动补充应用程序数据250-1的存储时应用程序实例140-1生成的相同的索引值。
例如,应用程序实例140-2基于主应用程序数据210-1产生唯一标识符值230-1。在这种情况下,由应用程序实例140-2产生的唯一标识符值230-1与由应用程序实例140-1产生的唯一标识符值230-1相同,因为应用程序140的两个实例对相同的主应用程序数据210-1应用了相同的处理函数。
应用程序实例140-2使用它刚刚产生的唯一标识符值230-1作为索引以识别将从存储服务提供商120-2获取的补充应用程序数据。例如,应用程序实例140-2通过转发它产生的唯一标识符值230-1到服务器110-2以启动补充应用程序数据250-1的获取。服务器110-2将唯一标识符值230-1映射到该补充应用程序数据250-1被存储在存储库180-2中的一个位置。
服务器110-2从存储库180-2中获取补充应用程序数据250-1,并将其转发给应用程序实例140-2。该应用程序实例140-2从而接收到来自服务器110-2的补充应用程序数据250-1。
在一个实施例中,应用程序实例140-2利用所获取到的主应用程序数据210-1来识别主设置信息。应用程序实例140-2利用所获取到的补充应用程序数据250-1来识别相对于由主应用程序数据210-1所指定的主设置的修改。
以这种方式,被执行的同一应用程序的多个不同应用程序实例中的每个都可以访问存储在云中的一个或多个不同位置处的应用程序数据,而无须在单个计算机设备中本地地存储该数据(其将潜在地限制应用程序的使用)。
如所提到的,主应用程序数据210-1和对应的补充应用程序数据250-1可以是在地址簿应用程序中所使用的联系人信息。在这样的一个实施例中,当用户启动其中应用程序数据不能被写回到位于网络环境100中的存储服务提供商120-1的动作、命令等时,应用程序实例140-1基于主应用程序数据210-1的属性(例如,特定的联系人信息)创建唯一标识符值230-1(例如,索引值,基于散列的键等)。应用程序实例140-1使用该唯一标识符值230-1作为键或索引值以存储只由该键识别的附加联系人信息。例如,在一个实施例中,客户端或应用程序实例140-1然后发送该唯一标识符值230-1到存储服务提供商120-2 。服务器110-2存储该唯一标识符值(例如,键,索引值,散列值等)并且允许补充应用程序数据250-1(通过本文公开的机制)被提供给可以访问地址簿和对应应用程序数据的任何客户端(例如,网络环境100中的应用程序实例140)。
在一个实施例中,当应用程序实例140-2尝试同步时,应用程序实例140-2为由存储服务提供商120-1存储并从其获取到的主应用程序数据指定的每个联系人产生一个唯一标识符值。应用程序实例140-2转发所述唯一标识符值到服务器110-2以检查对于每个对应的联系人而言,补充数据是否可用。如果是,则服务器120-2转发适当的补充应用程序数据给应用程序实例140-2。通过对地址簿中每个联系人的主应用程序数据和补充应用程序数据的获取,应用程序实例140-2可以被恰当地同步。
在某些情况下,对于存储在存储库180-1中的一个给定的主数据组而言,可能没有任何的补充应用程序数据。在这种情况下,该应用程序实例140-2仅利用从存储服务提供商120-1获取到的主应用程序数据来启动在图形用户界面中显示相应信息。
图5是一个根据本文实施例的示例图,其图示出了使用唯一标识符值来映射主应用程序数据和补充应用程序。
如先前所讨论的,相应的应用程序140的用户在存储服务提供商120-1的存储库180-1中启动多组主应用程序数据210(例如,主应用程序数据210-1,主应用程序数据210-2,主应用程序数据210-3等)的存储。如所提到的,通过一个非限制性示例的方式,主应用程序数据可以是联系人信息。
如先前所讨论的,对应用户可以通过生成补充应用程序数据来修改主应用程序数据。在本示例中,用户产生补充应用程序数据250-1 。
以如前所讨论的方式,相应的应用程序实例140-1产生唯一标识符值230-1,并启动在存储服务提供商120-2处对补充应用程序数据250-1和唯一标识符值230-1的存储。
如本示例中进一步所示,用户产生与主应用程序数据210-3相关联的补充应用程序数据250-3 。该相应的应用程序实例140-1产生唯一标识符值230-3,并启动在存储服务器提供商120-2中对唯一标识符值250-3及相应的补充应用程序数据250-3的存储。
如所提到的,映射260存储为相应的主应用程序数据产生的唯一标识符值和补充数据之间的关联。
在一个实施例中,存储服务提供商120-2可为多个不同用户中的每个存储补充数据。在这种情况下,映射可以被配置为基于每个用户分组标识符值。例如,请求获取补充应用程序数据的应用程序实例在检查补充应用程序数据的可用性时也可以提供用户标识符给服务器110-2。
通过该用户标识符,存储服务提供商120-2可以识别将要检查的在映射260中的相应的唯一标识符值组(而不是检查映射260中所有的唯一标识符值),以识别补充应用程序数据是否为该用户存储在存储服务提供商120-2中。
图6是一个根据本文实施例的示例图,其图示出了一个应用程序实例使用主应用程序数据和补充应用程序数据。
假设在本示例中,由相应用户通过应用程序实例140-1所产生的主应用程序数据对应于地址簿中的联系人信息条目。例如,假设主应用程序数据210-1包括与第一联系人,比如约瑟夫·史密斯相关联的信息(例如姓名,电子邮件信息,电话信息等);假设主应用程序数据210-2包括与第二联系人,比如约翰·多伊相关联的信息;假设主应用程序数据210-3包括与第三联系人,比如大卫·约翰逊相关联的信息;等等。
如前面所讨论的,主应用程序数据210可以由用户或某个其他资源来产生。
存储服务提供商120-1能够存储与对应联系人相关联的某种信息,例如姓名,电子邮件信息,电话号码等。然而,假设在本示例中,应用程序140支持这样的功能,例如当在图形用户界面中显示联系人信息时,使用黑体文本来指示联系人信息中喜欢的人),添加额外文本以在联系人附近显示,等等。
如上文指出的,存储服务提供商120-1可能不支持这种信息的存储有若干原因。如所提到的,应用程序的实例可以被配置为在这样的情况下启动补充应用程序数据250的创建。例如,应用程序实例140-1产生补充应用程序数据250-1以指示选择高亮约瑟夫·史密斯为喜欢的人;应用程序实例140-1产生补充应用程序数据250-3 以指示要为条目大卫·约翰逊显示的额外信息(例如,公司和头衔信息);等。当应用程序实例140-1被开发人员(比如软件工程师)撰写(例如编码)时,开发人员可以利用本文公开的机制来针对任何不能在主存储服务提供商120-1中被存储为主数据210的数据在补充存储服务提供商120-2中存储补充应用程序数据。可以为本文公开的一般功能,比如主应用程序数据的获取,UIV的创建 ,以及UIV和存储装置之间的通信以及使用补充存储服务提供商120-2的补充应用程序数据的获取而提供应用程序编程接口(API )。
以如前面所讨论的方式,应用程序实例140-1启动在存储服务提供商120-2中存储补充应用程序数据和相应的唯一标识符值。
当相同或不同用户启动应用程序实例140-2的执行,以查看网络环境100中的联系人信息时,应用程序实例140-2启动主应用程序数据的获取。通过应用处理函数225到主应用程序数据的全部或所选部分,应用程序实例140-2启动唯一标识符值的生成和相应的补充应用程序数据的获取。在这种情况下,应用程序实例启动补充应用程序数据250-1,补充应用程序数据250-3等的获取,并将由补充应用程序数据指定的设置应用到最终显示在联系人管理者图形用户界面630中的地址簿中的联系人信息。
在一个实施例中,应注意的是,应用程序实例140-2可以启动对将在地址簿中显示的主应用程序数据信息的进一步的修改。在这种情况下,如果一个给定实例140启动对由存储服务提供商120-1存储的一组主应用程序数据的改变,则该给定实例基于对该组主应用程序数据的改变产生一个新的唯一标识符值并将更新的唯一标识符值转发到服务器110-2以便存储在映射260中。以这种方式, 相对于最新的主应用程序数据组,该UIV始终是“当前的”。如果用户还修改了相应的补充应用程序数据,则该应用程序实例还将已更新的补充应用程序数据转发到所述存储服务提供商120-2以用于存储和后续获取。因此,通过更新的唯一标识符值,另一个应用程序实例即使主应用程序数据已经被改变也仍然可以获取该补充应用程序数据,并且补充应用程序数据的任何改变也被(由存储服务提供商120-2 )捕获和存储以用于后续获取。
图7是根据本文实施例的用于执行与应用程序实例140相关联的功能的计算机系统的示例框图。
计算机系统700可以包括一个或多个作为服务器,客户端等进行操作的计算机化的设备,比如个人计算机,工作站,便携式计算设备,控制台,网络终端,处理设备,网络设备等。
应注意的是,下面的讨论提供了一个指示如何根据本文的实施例执行与应用程序实例140相关联的功能的基本实施例。然而,应该注意的是,如本文描述的用于执行该操作的实际配置可以根据对应应用而变化。另外还应注意的是,服务器110-1,110-2,等等中的每个可以被配置为拥有类似的资源,例如计算机可读存储介质和对应的一个或多个处理器设备,以执行如本文所讨论的功能。
如所示,本示例的计算机系统700包括将计算机可读存储介质312耦合的互连311,计算机可读存储介质312例如是可存储和获取数字信息的非暂时型的计算机可读存储介质。计算机系统700还包括处理器设备313,I / O接口314,和通信接口317。
I / O接口314提供到输入/输出设备的连接,输入/输出设备例如是存储库780以及,如果存在的话,其他设备比如显示屏730,外围设备316(例如,键盘,计算机鼠标等)等。
计算机可读存储介质312可以是任何合适的设备,比如存储器,光学存储装置,硬驱动器,软盘等。在一个实施例中,计算机可读存储介质312是被配置为存储指令和/或数据的存储介质(即,硬件存储介质)。
通信接口317使计算机系统700和处理器设备313能够通过网络190进行通信,以从多个不同的远程资源(比如其他计算机,服务器等)中的任意一个获取信息和/或向其转发信息。如所提到的,I / O接口314允许处理器设备313从存储库780获取相应的信息。
如所示,计算机可读存储介质312可以利用由处理器设备313执行的应用程序实例140(例如,软件,固件等)进行编码。
在一个实施例运行期间,处理器设备313通过互连311的使用来访问计算机可读存储介质312以发起,运行,执行,解释或以其他方式执行存储在计算机可读存储介质312上的应用程序140 –X的指令。
应用程序140 -X的执行产生处理功能,例如在处理器设备313中的进程141 。换言之,与处理器设备313相关联的应用程序140 - X表示在计算机系统700中的处理器设备313里面或上面的执行的应用程序140的一个实例。
本领域技术人员将理解,计算机系统700可以包括其他进程和/或软件和硬件组件,比如控制硬件资源的分配和使用以执行应用程序140的操作系统。
根据不同的实施例,应注意的是,计算机系统700可以是各种类型的设备中的任何一种,其包括,但不限于,个人计算机系统,台式计算机,膝上型计算机,笔记本,上网本计算机,大型计算机系统,手持式计算机,工作站,网络计算机,应用程序服务器,存储设备,消费者电子设备,诸如照相机,摄像机,机顶盒,移动设备,视频游戏控制台,手持式视频游戏设备,外围设备,诸如交换机,调制解调器,路由器或一般地,任何类型的计算或电子设备。
应用程序实例140所支持的功能现在将通过图8和图9中的流程图来讨论。应注意的是,相对于上面针对图1至7所讨论的概念会有某种重叠。此外,应注意的是,下面的流程图中的步骤不需要总是以所示的顺序来执行。也就是说,这些步骤可以以任何适当的顺序被执行。
图8是根据本文实施例的图示出处理主应用程序数据的方法的流程图800。
在步骤810 中,应用程序实例140-1获取主应用程序数据210-1。主应用程序数据210-1可以从服务器110-1获得或由用户产生。
在步骤820中,应用程序实例140-1接收要与主应用程序数据210-1相关联的补充应用程序数据。
在步骤830中,应用程序实例140-1至少部分地基于主应用程序数据210-1来计算唯一标识符值230-1。
在子步骤840中,应用程序实例140-1应用一个处理函数,比如散列函数到主应用程序数据210-1的至少一部分(例如,电子邮件地址,电话号码等) ,以产生唯一标识符值230-1来与补充应用程序数据250-1关联。
在步骤850中,应用程序实例140-1转发唯一标识符值230-1到服务器110-2;服务器110-2使得能够通过应用程序实例140-2 对补充应用程序数据250-1进行后续获取。
在步骤860中,应用程序实例140-1启动在服务器120-2中存储补充应用程序数据250-1。
在步骤870中,服务器110-2启动在映射260中存储索引条目,以便将唯一标识符值230-1关联到存储在存储库180-2中的补充应用程序数据250-1 。
图9是图示出了根据本文实施例的处理应用程序数据的方法的流程图900。
在步骤910中,应用程序实例140-2从服务器110-1获取主应用程序数据210-1。
在步骤920中,应用程序实例140-2至少部分地基于从服务器110-1获取的主应用程序数据210-1来产生唯一标识符值230-1。
在子步骤930中,应用程序实例140-2应用一个散列或其它合适的函数到主应用程序数据210-1的至少一部分,以产生唯一标识符值230-1。
在步骤940中,应用程序实例140-2利用(由应用程序实例140-2所产生的)所述唯一标识符值230-1作为索引,以识别存储在存储服务提供商120-2中的补充应用程序数据250-1 。
在子步骤950中,应用程序实例140-2转发该唯一标识符值230-1到服务器110-2 。第二服务器110-2映射由应用程序实例140-2产生的唯一标识符值230-1到补充应用程序数据250-1。
在步骤960中,应用程序实例140-2启动从服务器110-2获取补充应用程序数据250-1。
在子步骤965中,应用程序实例140-2从服务器110-2接收补充应用程序数据250-1。
在步骤970中,应用程序实例140-2利用获取到的主应用程序数据140-2来识别与应用程序实例140-2相关联的主设置。
在步骤980中,应用程序实例140-2利用补充应用程序数据250-1来识别相对于由主应用程序数据210-1所指定的主设置的修改。
使用本文所公开的技术,所执行的相同的应用程序的多个不同实例中的每个都可以访问由云计算环境提供的数据服务,同时仍然允许通过访问存储在一个或多个不同位置处的补充应用程序数据来对应用程序进行定制,而无须在本地存储补充数据(其将限制计算机系统的使用)。以这种方式,即使云计算环境可能不支持附加特征,利用本文所公开的系统的应用程序也可以为用户提供额外的服务并且这些服务(其需要存储和访问补充数据)将在该用户使用的不同设备上可用。
应用程序的不同实例用于产生唯一标识符值以获取补充应用程序数据的相同的处理函数相对于该应用程序的用户可以是唯一的。因此,只有该用户的应用程序(可能的应用程序可以在其中)能够产生适当的键或索引值来获取补充应用程序数据。因此,本文的实施例可以提供在常规技术之上的安全级。
如所提到的,在一个示例实施例中,主应用程序数据和补充应用程序数据可以涉及到在地址簿中使用的联系人信息。在这种实施例中,在应用程序的第一实例中,当用户操作应用程序来创建或修改不能被写回到位于网络中的第一存储服务提供商的数据时,应用程序140基于主应用程序数据的属性(例如,特定的联系人信息)创建唯一标识符值(例如,一个索引值,基于散列的键等),并使用该键来存储仅由该键识别的额外的联系人信息。然后,应用程序发送该唯一标识符值到第二存储服务提供商。第二存储服务提供商存储该唯一标识符值,并允许补充应用程序数据被同步到由该用户操作的该应用程序的任何其他实例。
当应用程序的第二实例尝试同步时,应用程序的第二实例为每个联系人产生散列值。该应用程序的第二实例转发所述散列值(即,唯一标识符值)到补充服务器以检查对于相应的联系人,补充数据是否可用。如果是的话,补充服务器转发该数据到应用程序的第二实例。通过从第一存储服务提供商获取主应用程序数据以及从第二存储服务提供商获取每个联系人的补充应用程序数据,该应用程序的第二实例可被恰当地同步。
本文的技术非常适合于在软件的多个实例可以在连接到网络的多个位置完全不同的设备上执行的应用程序中使用。然而,应该注意的是,本文的实施例不限于在这样的应用中使用,并且本文所讨论的技术也非常适用于其他应用。
应注意的是,本文的实施例可以包括一个或多个计算机化的设备,工作站,手持或膝上型计算机,或类似物的配置以执行和/或支持本文公开的方法操作中的任何一个或全部。换句话说,一个或多个计算机化的设备或处理器可以被编程和/或配置来如本文所述的那样操作以执行本发明的不同实施例。
此外,本文的其他实施例包括软件程序来执行上文概述的以及下文详细公开的步骤和操作。一个这样的实施例包括计算机程序产品,该计算机程序产品包括在其上软件指令被编码以便随后执行的计算机可读存储介质(即,任何类型的硬件存储介质)。当在具有处理器的计算机化的设备中执行时,所述指令和/或程序使得所述处理器执行本文所公开的操作。这样的布置通常被作为软件,代码,指令和/或其他数据(例如,数据结构)而被提供,所述软件,代码,指令和/或其他数据被布置或编码在非暂时性计算机可读存储介质上,比如光学介质(例如,CD-ROM ),软盘,硬盘,记忆棒等,或者其他介质,诸如在一个或多个ROM,RAM, PROM等中的固件或微代码,或专用集成电路(ASIC)等。该软件或固件或其他这种配置可被安装在一个计算机化的设备上,以使得所述计算机化的设备执行本文所述的技术。
本公开的其他实施例包括软件程序和/或相应的硬件来执行上文概述的以及下文详细公开的的任何方法实施例的步骤和操作。为清晰的缘故,添加了步骤的排序。这些步骤可以以任何合适的顺序进行。
应当理解的是,如本文所讨论的,系统,方法,装置,计算机可读存储介质上的指令等,可以严格地具体实现为软件程序,软件和硬件的混合体,或者单独的硬件,比如在处理器内或操作系统中或在一个软件应用程序中。本发明的示例实施例可以在产品和/或软件应用程序中实现,例如由美国华盛顿州雷蒙德市的微软公司所制造的那些。
此外,虽然本文每个不同的特征,技术,配置等可在本公开的不同地方讨论,但是其意图是每个概念可以相互独立地执行,或在适当时,这些概念可以彼此组合地被使用。因此,如本文所描述的一个或多个本发明可以以多种不同的方式体现和查看。
基于本文阐述的说明书,阐述了许多具体细节以提供对要求保护的主题的透彻理解。然而,本领域技术人员可以理解所要求保护的主题可以在没有这些具体细节的情况下实践。在其他实例中,普通技术人员所熟知的方法,装置,系统等没有被详细描述,以便不混淆所要求保护的主题。详细描述中的某些部分是以关于存储在计算系统存储器(比如计算机存储器)中的数据比特或二进制数字信号的操作的算法或符号表示来呈现的。这些算法描述或表示是在数据处理领域中的普通技术人员用以传达他们工作的实质给本领域的其他技术人员的技术的示例。本文一般描述的算法被认为是导致期望结果的操作或类似处理的自相一致的序列。在本上下文中,操作或处理包括对物理量的物理操纵。通常,虽然不是必须的,但是这些量可以采取能够通过处理电路和/或软件被存储,传送,组合,比较或以其他方式操纵的电或磁信号的形式。有时主要是为了通用的原因,已经证明将此类信号称为比特,数据,值,元素,符号,字符,术语,号码,数字或类似物是方便的。然而,应当理解的是,所有这些和类似的术语将与适当的物理量相关联,并且仅仅是方便的标记。如从下面的讨论中明显看出的,除非以其他方式特别声明,否则应意识到,在整个该说明书讨论中使用诸如“处理”,“计算”,“运算”,“确定”等术语指的是诸如计算机或类似的电子计算设备之类的计算平台的动作或处理,所述计算平台操纵或变换表示为计算平台的存储器,寄存器或其他信息存储设备,传输设备或或显示设备中的物理的电子或磁的量。
虽然本发明已经参照本发明的优选实施例被具体地展示和描述,但本领域技术人员应理解的是,在不背离由所附权利要求所限定的本申请的精神和范围的情况下可以在其中进行形式和细节上的各种改变。这样的变化旨在被该本申请的范围覆盖。因此,本申请的实施例的上述描述并不旨在限制。相反,对本发明的任何限制都在下面的权利要求中呈现。

Claims (15)

1.一种方法,包括:
在应用程序的第一实例中:
  从第一服务器获取主应用程序数据;
  接收要与主应用程序数据相关联的补充应用程序数据;
  至少部分地基于所述主应用程序数据来计算第一唯一标识符值;以及
  转发所述第一唯一标识符值到第二服务器,所述第二服务器使得所述应用程序的第二实例能够使用所述第一唯一标识符值来进行所述补充应用程序数据的后续获取。
2.如权利要求1中的方法,还包括:
在所述应用程序的所述第二实例中:
  从所述第一服务器获取所述主应用程序数据;
  至少部分地基于所述主应用程序数据来计算第二唯一标识符值;以及
  利用由所述第二实例产生的所述第二唯一标识符值作为索引以识别所述补充应用程序数据并从所述第二服务器获取所述补充应用程序数据。
3.如权利要求2中的方法,其中利用由所述第二实例产生的所述第二唯一标识符值包括:
转发由所述应用程序的所述第二实例产生的所述第二唯一标识符值到所述第二服务器,所述第二服务器通过将所述第二唯一标识符值与所述第一唯一标识符值进行比较来将所述第二唯一标识符值映射到所述补充应用程序数据;以及
从所述第二服务器接收所述补充应用程序数据。
4.如权利要求3中的方法,还包括:
由第一存储服务提供商操作所述第一服务器;
操作作为第二存储提供商的所述第二服务器;以及
其中所述第二存储服务提供商是与所述第一存储服务提供商不同的实体,并且其中所述补充应用程序数据是不能在所述第一服务器中被存储为主应用程序数据的数据。
5.如权利要求2中的方法,还包括:
通过所述应用程序的所述第二实例:
  利用所述获取的主应用程序数据来识别由所述应用程序使用的主设置;以及
  利用所述补充应用程序数据来识别相对于所述主设置的修改,所述修改是不能与所述主应用程序数据一起被存储在所述第一服务器中的数据。
6.如权利要求1中的方法,还包括:
通过所述应用程序的所述第一实例:
  在所述第二服务器中存储所述补充应用程序数据;
  产生将所述第一唯一标识符值与存储在所述第二服务器中的所述补充应用程序数据进行关联的索引条目;以及
  存储所述索引条目以从所述第二服务器获取所述补充应用程序数据。
7.如权利要求1中的方法,还包括:
通过所述应用程序的第二实例:
  利用所述第一唯一标识符值作为识别所述补充应用程序数据的索引;以及
  从所述第二服务器接收所述补充数据。
8.如权利要求1中的方法,其中至少部分地基于所述主应用程序数据来计算所述第一唯一标识符值包括:
应用散列函数到所述主应用程序数据的至少一部分和操作所述应用程序的第一实例的用户的用户身份以产生所述第一唯一标识符值来与所述补充应用程序数据相关联,从而允许所述应用程序的第二实例的所述用户访问所述补充应用程序数据;以及
其中所述主应用程序数据至少部分地指定由所述应用程序的所述第一实例使用的设置信息;
其中由所述第一唯一标识符值索引的所述补充应用程序数据指定相对于所述主应用程序数据的修改。
9.如权利要求1中的方法,还包括:
通过所述应用程序的所述第二实例:
  从所述第一服务器获取所述主应用程序数据;
  修改所述主应用程序数据;
  在所述第一服务器中存储所述修改的主应用程序数据;
  基于所述修改的主应用程序数据计算所述第二唯一标识符值;以及
  转发用于所述修改的主应用程序数据的所述第二唯一标识符值到所述第二服务器,所述第二唯一标识符值允许所述应用程序的后续实例为所述应用程序的后续实例的用户识别与所述主应用程序数据相关联的补充应用程序数据。
10.如权利要求9中的方法,其中所述用户在网络环境中的第一位置处的第一计算机上执行所述应用程序的所述第一实例;并且
其中所述用户在网络环境中的第二位置处的至少一个第二计算机上执行所述应用程序的第二实例和后续实例。
11.一种方法,包括:
通过在计算机设备上执行的应用程序的第一实例:
  从第一服务器获取主应用程序数据;
  至少部分地基于所述主应用程序数据计算唯一标识符值;以及
  利用由所述第一实例产生的所述唯一标识符值作为索引以识别由第二服务器存储的补充应用程序数据;以及
  从所述第二服务器获取所述识别的补充应用程序数据。
12.如权利要求11中的方法,其中利用由所述第一实例计算的所述唯一标识符值包括:转发由所述应用程序的所述第一实例产生的所述唯一标识符值到所述第二服务器,所述第二服务器映射所述唯一标识符值到所述补充应用程序数据;以及
其中从所述第二服务器启动所述补充应用程序数据的获取包括从所述第二服务器接收所述补充应用程序数据。
13.如权利要求12中的方法,还包括:
由第一存储服务提供商操作所述第一服务器;
操作作为第二存储提供商的所述第二服务器;以及
其中所述第二存储服务提供商是与所述第一存储服务提供商不同的实体,并且其中所述补充应用程序数据是不能在所述第一服务器中被存储为主应用程序数据的数据。
14.如权利要求11中的方法,其中所述应用程序的第二实例在将所述唯一标识符值用作识别所述补充应用程序数据的索引之前启动下述步骤的执行:
从所述第一服务器获取所述主应用程序数据;
接收要与所述主应用程序数据相关联的所述补充应用程序数据;
至少部分地基于所述主应用程序数据计算所述唯一标识符值;以及
转发所述唯一标识符值到所述第二服务器。
15.如权利要求11中的方法,还包括:
利用所述获取的主应用程序数据来识别由所述应用程序使用的主设置;以及
利用所述补充应用程序数据来识别相对于所述主设置的修改;以及
其中产生所述唯一标识符值包括:
  应用散列函数到主应用程序数据的至少一部分以产生所述唯一标识符值;并且其中所述主应用程序数据至少部分地指定要由所述应用程序的所述第一实例使用的设置信息;以及
其中由所述唯一标识符值索引的所述补充应用程序数据指定相对于所述主应用程序数据的修改。
CN201280060545.0A 2011-12-09 2012-11-29 基于从相应的主应用程序数据导出的标识符来访问补充数据 Active CN104011698B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/315,304 US9396277B2 (en) 2011-12-09 2011-12-09 Access to supplemental data based on identifier derived from corresponding primary application data
US13/315304 2011-12-09
PCT/US2012/066916 WO2013085779A1 (en) 2011-12-09 2012-11-29 Access to supplemental data based on identifier derived from corresponding primary application data

Publications (2)

Publication Number Publication Date
CN104011698A true CN104011698A (zh) 2014-08-27
CN104011698B CN104011698B (zh) 2016-11-16

Family

ID=48573056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280060545.0A Active CN104011698B (zh) 2011-12-09 2012-11-29 基于从相应的主应用程序数据导出的标识符来访问补充数据

Country Status (6)

Country Link
US (2) US9396277B2 (zh)
EP (1) EP2788886B1 (zh)
JP (2) JP6150816B2 (zh)
KR (1) KR102032583B1 (zh)
CN (1) CN104011698B (zh)
WO (1) WO2013085779A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229771B2 (en) * 2012-03-08 2016-01-05 Microsoft Technology Licensing, Llc Cloud bursting and management of cloud-bursted applications
US9317709B2 (en) 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
US9444896B2 (en) 2012-12-05 2016-09-13 Microsoft Technology Licensing, Llc Application migration between clouds
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US20150127770A1 (en) * 2013-11-06 2015-05-07 Pax8, Inc. Distributed Cloud Disk Service Provisioning and Management
JP2017521773A (ja) 2014-06-19 2017-08-03 トムソン ライセンシングThomson Licensing クラウドサービス補足組み込み自然言語処理エンジン
US11212366B2 (en) * 2018-12-11 2021-12-28 Sap Se Kubernetes as a distributed operating system for multitenancy/multiuser
US11381476B2 (en) 2018-12-11 2022-07-05 Sap Se Standardized format for containerized applications
CN110189171B (zh) * 2019-05-27 2021-08-06 北京金山安全软件有限公司 特征数据的生成方法、装置及设备
US20210092199A1 (en) * 2019-09-24 2021-03-25 International Business Machines Corporation Cachability of single page applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020123334A1 (en) * 2000-05-09 2002-09-05 Dana Borger Systems, methods and computer program products for dynamically inserting content into web documents for display by client devices
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
CN101448132A (zh) * 2007-11-30 2009-06-03 株式会社日立制作所 内容分发系统
CN102801766A (zh) * 2011-11-18 2012-11-28 北京安天电子设备有限公司 一种云服务器负载均衡及数据冗余备份的方法及系统

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651108B2 (en) * 1995-08-14 2003-11-18 Next Software, Inc. Method and apparatus for generating object-oriented world wide web pages
US6173287B1 (en) * 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
US6799298B2 (en) * 1998-03-11 2004-09-28 Overture Services, Inc. Technique for locating an item of interest within a stored representation of data
AU2001243513A1 (en) * 2000-03-07 2001-09-17 Broadcom Corporation An interactive system for and method of automating the generation of legal documents
AU2001271489A1 (en) 2000-06-27 2002-01-08 Peoplestreet, Inc. Systems and methods for managing contact information
US7080076B1 (en) * 2000-11-28 2006-07-18 Attenex Corporation System and method for efficiently drafting a legal document using an authenticated clause table
US20030104470A1 (en) * 2001-08-14 2003-06-05 Third Wave Technologies, Inc. Electronic medical record, library of electronic medical records having polymorphism data, and computer systems and methods for use thereof
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US20040012618A1 (en) * 2002-07-18 2004-01-22 Finney Randolph L. Legal document generating system
US6671698B2 (en) * 2002-03-20 2003-12-30 Deere & Company Method and system for automated tracing of an agricultural product
US6952697B1 (en) * 2002-06-21 2005-10-04 Trust Licensing, Llc Media validation system
US20040001099A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation Method and system for associating actions with semantic labels in electronic documents
US7801838B2 (en) * 2002-07-03 2010-09-21 Ramp Holdings, Inc. Multimedia recognition system comprising a plurality of indexers configured to receive and analyze multimedia data based on training data and user augmentation relating to one or more of a plurality of generated documents
EP1690199A4 (en) * 2003-11-14 2007-04-25 Research In Motion Ltd SYSTEM AND METHOD FOR EXTRACTING AND PRESENTING A PARTIAL CONTENT (SAFE) OF DOCUMENT
US7707039B2 (en) * 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
WO2005081802A2 (en) 2004-02-24 2005-09-09 Caretouch Communications, Inc. Intelligent message delivery system
JP4519573B2 (ja) * 2004-08-27 2010-08-04 株式会社日立製作所 データ処理システム及び方法
US7506006B2 (en) 2004-09-03 2009-03-17 Microsoft Corporation Synchronization for smart clients
US7916649B2 (en) * 2004-09-30 2011-03-29 Alcatel-Lucent Usa Inc. Apparatus and method for monitoring and analysis of communication over a wireless network
JP4377790B2 (ja) * 2004-09-30 2009-12-02 株式会社日立製作所 リモートコピーシステムおよびリモートコピー方法
US7316347B2 (en) * 2005-01-07 2008-01-08 Ctb Mcgraw-Hill Linking articles to content via RFID
US7317907B2 (en) 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US9286388B2 (en) * 2005-08-04 2016-03-15 Time Warner Cable Enterprises Llc Method and apparatus for context-specific content delivery
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US7606810B1 (en) * 2006-04-27 2009-10-20 Colin Jeavons Editorial related advertising content delivery system
US7734065B2 (en) * 2006-07-06 2010-06-08 Abbyy Software Ltd. Method of text information recognition from a graphical file with use of dictionaries and other supplementary data
JPWO2008010473A1 (ja) * 2006-07-19 2009-12-17 パナソニック株式会社 分散ファイル管理システム
US20080040768A1 (en) * 2006-08-14 2008-02-14 Alcatel Approach for associating advertising supplemental information with video programming
US7685177B1 (en) 2006-10-03 2010-03-23 Emc Corporation Detecting and managing orphan files between primary and secondary data stores
US8185826B2 (en) * 2006-11-30 2012-05-22 Microsoft Corporation Rendering document views with supplemental information content
US7818396B2 (en) * 2007-06-21 2010-10-19 Microsoft Corporation Aggregating and searching profile data from multiple services
JP5046863B2 (ja) * 2007-11-01 2012-10-10 株式会社日立製作所 情報処理システム及びデータ管理方法
US8775647B2 (en) * 2007-12-10 2014-07-08 Deluxe Media Inc. Method and system for use in coordinating multimedia devices
US7991740B2 (en) 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8219524B2 (en) 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8209437B2 (en) 2008-09-25 2012-06-26 Rockliffe Systems, Inc. Personal information management data synchronization
JP5367470B2 (ja) * 2009-06-11 2013-12-11 日本放送協会 ストレージサーバー装置及びコンピュータプログラム
JP2011186616A (ja) * 2010-03-05 2011-09-22 Nec Corp 分散ファイルシステム並びにリモートファイル処理サーバ、方法及びプログラム
US8266243B1 (en) * 2010-03-30 2012-09-11 Amazon Technologies, Inc. Feedback mechanisms providing contextual information
US9185116B2 (en) * 2010-11-10 2015-11-10 Sony Corporation Methods and systems for use in providing access through a secondary device to services intended for a primary device
US8291041B1 (en) * 2012-05-31 2012-10-16 Google Inc. Systems and methods for disseminating content to remote devices
US8909736B1 (en) * 2012-07-12 2014-12-09 Juniper Networks, Inc. Content delivery network referral

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020123334A1 (en) * 2000-05-09 2002-09-05 Dana Borger Systems, methods and computer program products for dynamically inserting content into web documents for display by client devices
US20070300143A1 (en) * 2006-06-12 2007-12-27 David Michael Vanderport Electronic documentation
CN101448132A (zh) * 2007-11-30 2009-06-03 株式会社日立制作所 内容分发系统
CN102801766A (zh) * 2011-11-18 2012-11-28 北京安天电子设备有限公司 一种云服务器负载均衡及数据冗余备份的方法及系统

Also Published As

Publication number Publication date
JP6150816B2 (ja) 2017-06-21
CN104011698B (zh) 2016-11-16
US9396277B2 (en) 2016-07-19
EP2788886A1 (en) 2014-10-15
KR102032583B1 (ko) 2019-11-08
US20160316002A1 (en) 2016-10-27
EP2788886B1 (en) 2018-10-03
EP2788886A4 (en) 2016-01-20
WO2013085779A1 (en) 2013-06-13
JP2015501050A (ja) 2015-01-08
KR20140099892A (ko) 2014-08-13
JP2017162506A (ja) 2017-09-14
US20130151657A1 (en) 2013-06-13
JP6298197B2 (ja) 2018-03-20

Similar Documents

Publication Publication Date Title
CN104011698A (zh) 基于从相应的主应用程序数据导出的标识符来访问补充数据
CN108292231B (zh) 从数据生成应用的方法和系统
CN107491296B (zh) 与一个或多个扩展应用程序对接的消息应用程序
US10194288B2 (en) Sticker distribution system for messaging apps
CN104395855B (zh) 用户组之间的基于云端的数据项共享和协作
CN102426607B (zh) 可扩展搜索项建议引擎
CN1759391B (zh) 变更请求表注释
US9864736B2 (en) Information processing apparatus, control method, and recording medium
CN103198090A (zh) 用于优化虚拟桌面环境中的存储分配的方法和系统
KR101169801B1 (ko) 파일의 히스토리 관리 방법 및 장치
CN109522751B (zh) 访问权限控制方法、装置、电子设备及计算机可读介质
CN103019675B (zh) 用于在生产力应用中启用服务特征的系统和方法
EP3374858B1 (en) Creating and modifying applications from a mobile device
CN105765533A (zh) 用于固件虚拟化的方法和装置
CN103765845A (zh) 提供对信息的访问
CN104995618A (zh) 电子书题写系统
CN104123155A (zh) 一种基于web的业务系统页面层开发平台及方法
US20140316828A1 (en) System and method for exchanging an electronic ticket
US8544107B2 (en) Information processing system, information processing apparatus, and computer-readable storage medium
CN110119386A (zh) 数据处理方法、数据处理装置、介质和计算设备
CN107862035A (zh) 会议记录的网络读取方法、装置、智能平板和存储介质
CN107145790A (zh) 一种管理应用权限的方法及终端
JP2010514037A (ja) 分散環境でのデータの管理方法および機器
CN102193623A (zh) 信息输入辅助设备和信息输入辅助方法
CN107609871B (zh) 支付轨迹重现方法、装置、系统、电子设备、存储介质

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: 20150630

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

Effective date of registration: 20150630

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