同步本地和远程数据的制作方法

文档序号:6533307阅读:144来源:国知局
同步本地和远程数据的制作方法
【专利摘要】此处所描述的主题的各方面涉及同步数据。在各个方面,属性被从企业属性存储同步到云属性存储中和/或相反。要同步的属性的列表可基于企业所订阅的云服务、云服务的改变、或出于其它原因而改变。此外,要同步的属性列表可被限于企业的某些对象,这些对象也可随时间而改变。
【专利说明】同步本地和远程数据
[0001]直量
[0002]用于企业的应用以及其它计算资源可被放置在企业的场所内和/或云中。云是经常被用来暗指因特网的术语。这利用了这样的理念,即计算、软件、数据存取、存储、以及其它资源可由连接到因特网的实体来提供而无需用户知晓与递送那些资源的计算体系结构有关的位置或其它细节。在企业的一些资源是从云中提供的而另一些则由位于企业的场所内的服务器来提供的环境中会出现问题。
[0003]在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性【技术领域】。
[0004]
[0005]简单来说,此处所描述的主题的各方面涉及同步数据。在各个方面,属性被从企业属性存储同步到云属性存储中和/或相反。要同步的属性的列表可基于企业所订阅的云服务、云服务的改变、或出于其它原因而改变。此外,要同步的属性列表可被限于企业的某些对象,这些对象也可随时间而改变。
[0006]提供本概述是为了简要地标识在以下详细描述中进一步描述的主题的一些方面。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0007]除非上下文清楚地指出,否则短语“此处所描述的主题”指的是【具体实施方式】中描述的主题。术语“方面”应被当作“至少一个方面”。标识【具体实施方式】中所描述的主题的各方面不旨在标识所要求保护的主题的关键特征或必要特征。
[0008]上述各方面和此处所描述的主题的其它方面是借助于示例说明的,并且不受附图限制,附图中相同的标号指示相似的元素。
[0009]附图简沭
[0010]图1是表示其中可结合本文所描述主题内容的各方面的示例性通用计算环境的框图;
[0011]图2是表示此处所描述主题的各方面可以在其中操作的示例性环境的框图;
[0012]图3是示出根据此处所描述的主题的各方面的同步管理器的一些示例性组件的框图;以及
[0013]图4-5是根据此处所描述的主题的各方面的概括地表示可发生的示例性动作的流程图。
[0014]详细描沭
[0015]定义
[0016]如本文所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。除非上下文另外清楚地指示出,否则术语“或”被当作“和/或”。术语“基于”被当作“至少部分地基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例”被当作“至少一个其他实施例”。
[0017]如本文所使用的,诸如“一”和“该”等术语包括了所指示的项或动作中的一个或多个。具体而言,在权利要求书中,对某一项的引用一般表示存在至少一个这样的项,并且对一动作的引用表示执行该动作的至少一个示例。
[0018]本文中有时可使用术语“第一”、“第二”、“第三”等等。没有其他上下文,权利要求中对这些术语的使用不意在暗示排序,而是用于标识的目的。例如,短语“第一版本”和“第二版本”不一定意味着第一版本是真正的第一个版本或是在第二版本之前创建的,或甚至是第一版本是在第二版本之前被请求或操作的。相反,这些短语用于标识不同的版本。
[0019]标题仅是为了方便;关于给定话题的信息可在其标题指示该话题的章节之外被寻找到。
[0020]其他显式或隐式定义可包括在下文中。
[0021]示例性操作环境
[0022]图1示出可在其上实现本文所描述的主题的各方面的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非旨在对本文所描述的主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
[0023]本文所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。可适用于这里所述的主题的各方面的已知计算系统、环境或配置的例子包括个人计算机,服务器计算机,手持或膝上型设备,多处理器系统,基于微控制器的系统,机顶盒,可编程消费电子设备,网络PC,微型计算机,大型计算机,个人数字助理(PDA),游戏设备,打印机,包括机顶盒、媒体中心或其他家电的家电设备,嵌入汽车或附加到汽车的计算设备,其他移动设备,包括任何上述系统或设备的分布式计算环境等等。
[0024]本文所描述的主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本文所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
[0025]参考图1,用于实现本文所描述的主题的各方面的示例性系统包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130以及将包括系统存储器的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。作为示例,而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线、扩展外围部件互连(PC1-X)总线、高级图形端口(AGP)、以及PCIExpress (PCIe)。
[0026]处理单元120可以连接到硬件安全设备122。安全设备122可以存储并能够生成密钥,所述密钥可用于保护计算机I1的各个方面。在一个实施例中,安全设备122可以包括可信平台模块(TPM)芯片、TPM安全设备等等。
[0027]计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质两者。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
[0028]计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括:RAM、R0M、EEPR0M、固态存储、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任意其它介质。
[0029]通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
[0030]系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 131和随机存取存储器(RAM) 132。包含诸如在启动期间帮助在计算机110内的元件之间传输信息的基本例程的基本输入/输出系统133 (B1S)通常存储在ROM 131中。RAM 132通常包含处理单元120可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
[0031]计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如⑶ROM或其他光学介质等可移动非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡和其他固态存储设备、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141可通过接口 140连接至系统总线121,而磁盘驱动器151和光盘驱动器155可通过诸如接口 150之类的用于可移动非易失性存储器的接口连接至系统总线 121。
[0032]以上讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可与它们不同。操作系统144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。
[0033]用户可以通过输入设备,如键盘162和定点设备161 (通常被称为鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒(例如用于输入语音或其他音频)、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、写字板、相机(用于输入姿势或其他视觉输入)等等。这些以及其它输入设备通常通过耦合到系统总线的用户输入接口 160连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构来连接。
[0034]监视器191或其它类型的显示设备也经由诸如视频接口 190之类的接口连接至系统总线121。除了监视器以外,计算机还可包括诸如扬声器197和打印机196之类的其它外围输出设备,它们可通过输出外围接口 195来连接。
[0035]计算机110可使用到一个或多个远程计算机(诸如,远程计算机180)的逻辑连接而在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,但在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。
[0036]当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等WAN 173来建立通信的其他装置。可为内置或可为外置的调制解调器172可以经由用户输入接口 160或其他合适的机构连接至系统总线121。在联网环境中,相关于计算机110所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它手段。
[0037]同步
[0038]如之前提到的,用于企业的计算资源可被放置在企业的场所内和/或云中。在企业选择本地地提供其自身的计算服务中的一些并且从云端获取其它的计算服务的混合模型中,为了正确地工作,云可能需要具有驻留在企业的计算资源内的数据的副本,或者如果有了副本可更有效率地操作。
[0039]图2是表示此处所描述主题的各方面可以在其中操作的示例性环境的框图。图2中示出的实体是示例性的且不意味着包括一切的可能需要或包括的实体。在其他实施例中,结合图2描述的实体和/或功能可被包括在其他实体(示出或未示出)中或者被放置在子实体中而不背离此处所描述的主题的各方面的精神或范围。在某些实施例中,结合图2所描述的实体和/或功能可跨多个设备分布。
[0040]系统205可包括企业资源210、云资源215、同步管理器220、以及其它实体(未示出)。如这里所使用的那样,术语“实体”要被当作包括以下的全部或一部分来理解:一个或多个设备、一个或多个软件模块或其部分的集合、一个或多个软件模块或其部分与一个或多个设备或其部分的某种组合等等。
[0041]企业资源210可包括企业所拥有并在其直接控制之下的计算资源。这些资源可包括,例如,个人计算机,服务器计算机,手持式或膝上型设备,多处理器系统,基于微控制器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机,大型计算机,蜂窝电话,个人数字助理(PDA),游戏设备,打印机,包括机顶盒、媒体中心或其他电器在内的电器,汽车嵌入式或附连的计算设备,其他移动设备,包括以上系统或设备中的任一种的分布式计算环境坐寸ο
[0042]云资源215可包括可经由云对企业可用的计算资源。云资源215还可包括一个或多个个人计算机,服务器计算机,手持式或膝上型设备,多处理器系统,基于微控制器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机,大型计算机,蜂窝电话,个人数字助理(PDA),游戏设备,打印机,包括机顶盒、媒体中心或其他电器在内的电器,汽车嵌入式或附连的计算设备,其他移动设备,包括以上系统或设备中的任一种的分布式计算环境等。
[0043]云资源215可提供一项或多项服务。服务可包括执行指定任务的一个或多个进程、线程、组件、库等等。一些示例性服务包括电子邮件、文档管理、报告、数据库、计算、日程安排、计划调度、即时消息。
[0044]属性存储225和属性存储226可包括能够提供对数据的访问的任何存储。此处使用的访问可包括读数据、写数据、删除数据、更新数据、以及包括以上两个或更多个的组合等。存储225和226可包括硬盘存储、其他非易失性存储、诸如RAM之类的易失性存储器、其它存储、以上的某种组合等,并可以跨多个设备分布。存储225和226可以是外部的、内部的、或包括系统205内部和外部两者的组件。
[0045]术语“数据”要被宽泛地看作包括可由一个或多个计算机存储元素表示的任何东西。逻辑上,数据可被表示成易失性或非易失性存储器中的一系列I和O。在具有非二进制存储介质的计算机中,数据可根据存储介质的容量来表示。数据可被组织成不同类型的数据结构,包括诸如数字、字母等之类的简单数据类型,分层、链接或其他相关数据类型、包括多个其他数据结构或简单数据类型的数据结构等等。数据的某些例子包括信息、程序代码、程序状态、程序数据、其他数据等等。在一个实施方式中,数据被结构化并且用名称来标记。
[0046]属性是与对象相关联或者被包括在对象中的数据片段。此处所使用的对象可包括一个或多个数据元素。这些数据元素有时被称为属性。例如,用户对象可具有名称属性、地址属性、电话属性、电子邮件属性、管理者属性等等。
[0047]对象可由对象类来定义。例如,对象类可指示对象名称以及该对象类的一个或多个属性类型。对象类的被实例化的对象可包括该对象类的一个或多个属性类型的属性或与之相关联。一些示例性对象类型包括用户、群、联系人、机器,诸如此类。这些类型仅仅作为示例给出,因为本领域技术人员将认识到全部或几乎全部实体可由对象类来定义。基于此处的教示,本领域技术人员可认识到许多对象类可以应用此处的教示,而不背离此处所描述的主题的方面的精神或范围。
[0048]属性存储225可包括企业的数据。例如,属性存储225可包括雇员数据、工资数据、开销数据、电子邮件数据、财会数据、企业层级数据、监督签字数据、签字限制、许可数据、元数据、企业可维护的任何其它数据,诸如此类。这一数据可被存储在企业内的各种位置。属性存储225可包括该数据、参考该数据、或者从企业存储该数据的位置获取该数据。
[0049]属性存储226可包括以从一个或多个企业提供给云资源215的数据。这一数据可被用于提供特定服务给企业的实体。例如,电子邮件数据可允许企业的成员使用主控在云中的电子邮件服务来撰写、发送、以及接收电子邮件以及查找企业的联系人。作为另一示例,成本中心数据可允许财会服务提供开销报告,该报告反映用于企业的各种开销的成本中心。
[0050]属性存储225和属性存储226可以不同方式表示相同的属性。例如,属性存储225可经由文件中的数据来表示属性,而属性存储226可在数据库的表中表示那些相同的属性。
[0051]同步管理器220是在属性存储225和属性存储226之间同步数据的实体。在一个实施例中,同步管理器220可被主控在企业的设备上。在另一实施例中,同步管理器220可被主控在云的计算资源上。在另一个实施例中,同步管理器220可被主控在主控企业资源210和云资源215的系统两者之外的设备上。在另一个实施例中,同步管理器220可以是分布式的,使得它包括在企业的设备上执行的组件以及在云的设备上执行的组件。
[0052]尽管此处经常提到同步管理器220通过将数据从属性存储225发送到属性存储226来在属性存储225和属性存储226之间同步数据,但在其它实施方式中,属性可被主控在属性存储226中并且被同步到属性存储225中。在有一些其它实施方式中,一些属性可被主控在属性存储225中并被同步到属性存储226,而另一些属性可被主控在属性存储226中并被同步到属性存储225。
[0053]周期地或在其它时间,同步管理器220可在属性存储225和属性存储226之间同步数据。为了确定需要被同步的数据,同步管理器可检查特定条件。例如,每隔一小时,同步管理器220可检查以查看:
[0054]1.云资源所需要的属性集是否已改变;
[0055]2.其属性是被需要的对象集是否已改变;以及
[0056]3.代表所述属性的实际数据是否在属性存储225上已改变。
[0057]响应于发现上述情形,同步管理器220可采取的动作如下:
[0058]1.如果云资源所需要的属性集已改变。由云提供给企业的每项服务可能需要一个或多个属性。例如,工资服务可能需要姓名、地址、政府标识符、薪水金额、以及其它属性以便于正确地向企业的雇员支付报酬。电子邮件服务可能需要姓名、电话号码、电子邮件地址、以及其它属性。如果企业具有通过云提供的工资和电子邮件服务两者,则所需的属性集可通过对每项服务所需要的属性应用逻辑或运算符来确定。就以上的示例而言,逻辑或运算符将包括姓名、地址、政府标识符、薪水金额、电话号码、电子邮件地址、以及这两项服务所需的任何其它属性。使用这一相同方法,可为任意数量的服务确定所需的属性集。
[0059]因此,如果企业已订阅了云的另一项服务并且该服务需要尚未被包括在当前需要的属性集中的属性,则该属性被添加到所需要的属性集中。
[0060]类似的,如果企业取消订阅云的服务,则被取消订阅的服务所需要的、而企业所订阅的任何其它服务不需要的任何属性可从所需要的属性集中被移除。
[0061]如果云资源所需要的属性集已改变,则属性可能已被添加到所需要的属性集中和/或从中移除。对于已经被移除的属性,同步管理器220可指示云资源215删除已从该属性集中被移除的属性的先前获取的数据。
[0062]对于已被添加的属性,同步管理器220可从属性存储225中获取相应数据并使这一数据被存储在属性存储226中。
[0063]在一个实施例中,同步管理器220可通过与云资源215内的组件通信并且获取云资源215所需要的属性集来确定云资源215所需要的属性集是否已改变。同步管理器220随后可将这一属性集与之前所需要的属性集作比较,并确定什么属性已被添加(如果有的话)以及什么属性已被删除(如果有的话)。
[0064]云资源215可将数据存储在数据库、文件、或指示每项服务所需要的属性的其它数据结构中。云资源215还可存储指示每个企业已订阅的服务的数据。为了确定每个企业所需要的属性,云资源215的一个组件可将指示每个企业已订阅的服务的数据与指示每个服务所需要的属性的数据相连接。
[0065]2.其属性被需要的对象集已改变。云资源215可能仅需要属性存储225中被选择的对象的属性。例如,企业可具有针对特定用户使用日历服务的许可。日历服务可能需要姓名、电话号码、办公地点、以及其它属性,但仅针对订阅了日历服务的用户。取代同步企业的所有用户的属性,同步管理器220可仅同步订阅了日历服务的用户的属性。
[0066]尽管以上的示例描述了用户对象类的对象,但无意将此处描述的主体的各个方面仅限于用户对象类。事实上,基于此处的教示,本领域技术人员可认识到其它类型的对象类可以应用此处的教示,而不背离此处所描述的主题的方面的精神或范围。
[0067]所需要的对象集可出于各种原因而改变。例如,如果机器已被添加到企业中,则机器对象的属性可能需要从属性存储225同步到属性存储226。
[0068]作为另一示例,所需要的对象集可响应于对服务订阅的改变而改变。例如,如果企业订阅了新的服务,则新的服务可能需要来自企业的某些对象类型的属性。
[0069]一个类中所需要的对象集可被限于该类中可用的总的实例化对象的子集。例如,云中的一项服务可仅需要用作为用于企业的文件夹服务器的类“机器”的对象的属性。作为另一示例,云中的一项服务可仅需要“雇员”类中的某些对象的属性。
[0070]如果对象已被添加到对象集中,则被添加的对象的属性可从属性存储225中获得并存储在属性存储226中。如果对象已从对象集中删除,则已存储在属性存储226上的该已被从对象集中删除的对象的属性也可从属性存储226中删除。
[0071]3.代表所述属性的实际数据在属性存储225上已改变。例如,如果雇员电话号码已改变或地址已改变,则同步管理器220可将这一改变传播到属性存储226。为了节省带宽,在一个实施方式中,替代每次发送所有数据,同步管理器220可发送从上次同步管理器220执行同步之后发生的改变。
[0072]如果需要的是在属性存储225上不存在的属性,则这可取决于实施方式来处理。例如,在一个实施方式中,同步管理器220可告诉企业资源210的组件该缺陷并且允许该组件提供缺失的属性。在另一个实施方式中,同步管理器220可为该属性提供默认数据。在另一实施方式中,云资源215的组件可被用于提供缺失的属性。在又一实施方式中,同步管理器220可能无法执行同步并提供出错消息。
[0073]以上的实施方式并不意图是对处理缺失属性的各种方法的穷尽或详尽的。基于此处的教示,本领域技术人员可认识到可使用的其他实施方式,而不背离此处所描述的主题的各方面的精神或范围。
[0074]图3是示出根据此处所描述的主题的各方面的示例性同步管理器的一些示例性组件的框图。同步管理器220可包括增量管理器305、对象选择器310、属性选择器312、许可管理器315、以及其它组件(未示出)。
[0075]增量管理器305可被操作用于确定自从前一次同步活动之后企业的属性存储中已改变的属性。例如,参考图2和3,增量管理器305可检测自从上一次同步管理器220将属性从属性存储225同步到属性存储226之后属性存储225上已改变的属性。增量管理器305还可将该检测限于仅仅那些已被指示同步的对象和属性。
[0076]对象选择器310可被操作用于接收对要使用的对象的指示以限制要同步的对象。对象选择器可使用该指示来确定要使用的对象以获取属性。例如,对象选择器310可接收用于指示对象的一个或多个规则。规则可陈述用于允许对象被包括以供同步的一个或多个条件。例如,对象选择器310可接收一规则,该规则指示只有具有在美国的家庭地址的对象要被同步。
[0077]属性选择器312可被操作用于确定要被同步的属性。在一个实施方式中,属性选择器312可接收需要被同步的对象类以及对象类的属性的列表,并且可由此为对象类中的合格对象构造需要被同步的属性集。合格对象是不被对象选择器310所限制的那些对象。在另一实施方式中,属性选择器312可简单地接收要同步的属性以及与该属性相关联的对象类的列表。
[0078]许可管理器315可操作用于追踪被许可的服务订户并且创建要使用的对象的指示(例如,规则、列表等)以基于被许可的服务订户来限制要同步的属性。
[0079]在各个实施例中,增量管理器305、对象选择器310、属性选择器312、以及许可管理器315或其中的部分可被主控在企业的资源上、云资源上、企业的资源和云资源外部、以上的两个或更多的组合,诸如此类。此外,在一些实施例中,以上的实体的功能可被组合在一个或多个实体中、包括在其它实体(示出或未示出)中或被放置在子实体中,而不背离此处所描述的主题的各方面的精神或范围。
[0080]图4-5是根据此处所描述的主题的各方面的概括地表示可发生的示例性动作的流程图。为解释简明起见,结合图4-5描述的方法被描绘和描述为一系列动作。可以理解和明白,此处所描述的主题的各方面不受所示出的各动作和/或各动作次序的限制。在一个实施例中,各动作以如下描述的次序发生。然而,在其它实施例中,各动作可以并行地发生、以另一次序发生、和/或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白,该方法也可以替代地经由状态图而被表示为一系列相互关联的状态或者被表示为事件。
[0081]转向图4,在框405处,动作开始。在框410,获取新的方案。如此处所使用的,方案最少指示要被同步的属性。方案还可指示与属性相关联的对象类。方案可指示对象之间的关系、可包括对要包括的属性的扁平表示(例如,“包含列表”)、诸如此类。例如,参考图2,同步管理器220可从云资源215的组件中获取要同步的属性的方案。
[0082]在框415,将新的方案与同步管理器用于前次同步的旧的方案作比较。测试是用于确定新的和旧的方案是否指示相同的要被同步的属性集。例如,参考图2,同步管理器220比较旧的和新的方案以确定它们在指示相同的要同步的属性方面是否一致。
[0083]在框420处,如果新的方案包括要同步的附加属性,则动作在框425处继续;否则,动作在框430处继续。这些附加属性可能来自新的方案指示要同步的现存对象的附加属性和/或该方案指示要同步的新的对象的属性。
[0084]替代地,除了新的方案,也可获取指示要使用的对象的数据来限制要在企业属性存储和云属性存储之间同步的属性。例如,可获取想要寻求同步的对象列表。该列表中找到的对象的属性可被同步,而该列表中未找到的对象的属性可不被同步。该列表可通过指示每个对象或通过使用一个或多个规则来指定,该一个或多个规则在被应用于企业属性存储时确定要包含的对象。在一个实施方式中,对象对应于被许可的服务订户。
[0085]在框425,同步附加属性。例如,参考图2,同步管理器220可对当前同步的每个对象重复并从属性存储225获取对应于附加属性的数据并将该数据发送到属性存储226以供同步。作为另一示例,同步管理器220可对要同步(例如,之前还未同步)的每个附加对象重复并从属性存储225获取对应于对象的所有要同步的属性的数据并将要同步的数据发送到属性存储226。
[0086]在框430处,如果新的方案不包括旧方案的属性/对象,则动作在框435处继续;否则,动作在框440处继续。
[0087]在框435,曾包括在旧方案中但未包括在新方案中的属性不再被同步。例如,参考图2,如果用户对象的属性“成本中心”已在新方案中删除,则这一属性不再从属性存储225同步到属性存储226。作为另一示例,如果方案指示某些用户对象不再被同步,则那些对象的属性不再从属性存储225同步到属性存储226。
[0088]在框440,获取改变的属性。改变的属性是那些在上次同步之后改变的属性。例如,如果用户对象的地址已改变并且该地址仍然要被同步,则获取新的地址。例如,参考图2,当即使在新方案下也同步的地址属性被改变时,同步管理器220从属性存储225获取新的地址。
[0089]在框445,同步改变的属性。例如,参考图2,同步管理器220发送对应于框440处获取的改变的数据的数据并且将这一数据发送到属性存储226。另外,连同同步一起,如果某些对象不再被同步,则可显示或隐式地发送消息给云资源:这些对象的数据可从云资源中删除。
[0090]在框450处,可以执行其他动作(如果有的话)。例如,如果新方案包括要同步的附加属性,所述附加属性可被添加到要周期性地检查改变以从企业属性存储同步到云属性存储的属性集。作为另一示例,如果新方案不包括旧方案的属性,则被删除的属性可从要周期性地检查改变以从企业属性存储同步到第二属性存储的属性集中移除。
[0091]转向图5,在框505处,动作开始。在框510,维护每个从云端可用的服务所需要的属性。例如,参考图2,系统管理员(未示出)等输入、更新、或删除从云资源215可用的每个服务所需要的属性。
[0092]在框515,维护服务属性存储。维护指的是响应于发生的同步活动来存储和/或更新包括在云资源的属性存储上的属性。所述属性已由同步管理器提供,而该同步管理器从服务订户的订户属性存储中获取所述属性。例如,参考图2,云资源215的组件维护属性存储 226。
[0093]在框520,接收对于服务订户的服务订阅的改变的指示。服务订户是向云资源请求服务的实体。例如,参考图2,云资源215的组件可接收企业想要订阅由云资源215主控的电子邮件服务的指示。
[0094]在框525,提供针对因服务的改变而需要从服务订户获取的属性的指示。例如,参考图2,属性存储226可提供针对电子邮件服务的增加而需要的附加属性的指示。
[0095]在框530处,可以执行其他动作(如果有的话)。例如,参考图2,在服务订阅改变之后,云资源215可等待接收服务订户已接收到针对因服务订阅的改变而需要从服务订户获取的属性的指示的消息,并且仅在该消息被接收到之后,删除服务属性存储中对应于已从同步中移除的属性的数据。例如,如果对服务的订阅被取消,则云资源215可等待,直到从企业资源210接收到移除该服务的属性的指令,并且返回指示接收到这一指令的消息。在接收到该消息之后,云资源可删除对应于不再被同步的属性的数据。
[0096]作为另一示例,如果云资源215所主控的服务的一个版本已改变,则数个动作可发生,包括:
[0097]1.云资源215的组件可接收该版本已改变的指示(例如,经由用户或其它接口)。例如,第三方供应商可指示版本已改变并且可提供该改变的版本所需要的属性。
[0098]2.可获取指示属性已被添加、删除、和/或改变以响应于版本改变而同步的数据。
[0099]3.对于订阅该服务的每一个实体,可生成指示需要该实体提供的属性集的更新的数据结构(例如,表、列表、或其它数据结构),并且这一数据结构或从中获取的属性数据可被提供给实体,其中属性数据指示需要由该实体提供的属性集。
[0100]如从上述详细描述中可以看到,已经描述了关于同步数据的各方面。尽管本文所描述的主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入本文所描述的主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。
【权利要求】
1.一种至少部分地由计算机实现的方法,所述方法包括: 获取指示要从第一属性存储同步到第二属性存储的属性的新方案; 将所述新方案与之前获取的旧方案作比较以确定所述新方案与所述旧方案是否相同; 如果所述新方案包括附加的属性要同步,则执行第一组动作来将所述附加的属性从所述第一属性存储同步到所述第二属性存储; 如果所述新方案不包括所述旧方案的属性,则执行第二组动作来停止将曾经包括在所述旧方案中的被删除的属性同步到所述第二属性存储; 获取自从前次同步活动以来在第一属性存储中已改变的经改变的属性;以及 将所述经改变的属性发送给所述第二属性存储。
2.如权利要求1所述的方法,其特征在于,还包括获取要使用的对象的指示,以限制要从所述第一属性存储同步到所述第二属性存储的属性,并且获取自从前次同步活动以来在第一属性存储中已改变的经改变的属性包括获取所述对象中的经改变的属性并且忽略所述指示未指示的其它对象中的经改变的属性。
3.如权利要求2所述的方法,其特征在于,获取对象的指示包括获取对应于被许可的服务订户的对象列表。
4.一种在计算环境中的系统,包括: 同步管理器,所述同步管理器用于执行动作,包括: 获取指示要从第一属性存储同步到第二属性存储的属性的新方案; 将所述新方案与之前获取的旧方案作比较以确定所述要同步的属性是否已改变; 如果所述新方案包括附加的属性要同步,则执行第一组动作来将所述附加的属性从所述第一属性存储同步到所述第二属性存储; 如果所述新方案不包括所述旧方案的全部属性,则执行第二组动作来停止将曾经包括在所述旧方案中的被删除的属性同步到所述第二属性存储; 获取自从前次同步活动以来在第一属性存储中已改变的经改变的属性;以及 将所述经改变的属性发送给所述第二属性存储。
5.如权利要求4所述的系统,其特征在于,所述同步管理器被主控在主控所述第一属性存储的系统的设备上。
6.如权利要求4所述的系统,其特征在于,所述同步管理器被主控在主控所述第二属性存储的系统的设备上。
7.如权利要求4所述的系统,其特征在于,所述同步管理器包括用于接收对要使用的对象的指示以限制要同步的属性的对象选择器,所述对象选择器还用于使用所述指示来确定要使用的对象以获取所述属性。
8.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时执行以下动作,包括: 维护指示从提供云资源的系统处可用的每个服务所需要的属性的数据结构; 维护服务属性存储,所述服务属性存储包括已由同步管理器提供的属性,所述同步管理器从服务订户的订户属性存储中获取所述属性; 接收所述服务订户的服务订阅中的改变的指示;以及 提供针对因服务改变而需要从所述服务订户获取的属性的指示。
9.如权利要求8所述的计算机存储介质,其特征在于,还包括等待接收所述服务订户已接收所述针对因服务改变而需要从所述服务订户获取的属性的指示的消息,并且仅当所述消息被接收之后,删除所述服务属性存储中对应于在提供针对因服务改变而需要从所述服务订户获取的属性的指示时从所述订户属性存储和所述服务属性存储之间的同步中移除的属性的数据。
10.如权利要求8所述的计算机存储介质,其特征在于,还包括: 接收所述系统主控的服务的第二版本已改变的指示; 获取指示属性已相对于属性列表被添加、删除、和/或改变以响应于所述第二版本改变而同步的数据;以及 对于订阅所述服务的每一个实体,生成指示需要提供的属性集的更新的数据结构,并且将所述属性数据提供给所述实体,所述属性数据指示需要由该实体提供的属性集。
【文档编号】G06F15/16GK104169902SQ201380014364
【公开日】2014年11月26日 申请日期:2013年2月25日 优先权日:2012年3月13日
【发明者】C·N·迪德库克, J·M·卢克 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1