用于供应服务的领导者仲裁的制作方法

文档序号:6360748阅读:123来源:国知局
专利名称:用于供应服务的领导者仲裁的制作方法
用于供应服务的领导者仲裁背景联网的系统已经从若干计算机交换文件发展到复杂的多用途系统。与各计算设备耦合的各种各样以及各种大小的网络执行覆盖了人们日常生活的众多任务。典型的网络可包括多个有线/无线子网络、若干到众多的服务器/客户机、分区、子网,以及更多方面。随着联网系统的数量和种类的增长,提供标准化管理策略的需求造成了各种方法的发展。目录服务是网络管理中强有力的工具,它允许管理员分配策略、部署软件、以及将关键更新应用于组织。与目录不同,目录服务既是信息源,也是使用户可使用信息的功能。目录服务存储与诸如服务器、用户和中央数据库中的其他资源等对象相关联的信息以及设置。信息可在与网络资源通信时用于标识,也可用作对对象适合总体分层方案的情形的定义。目录服务还可在从具有若干计算机、用户以及打印机的小型安装变化到上万个用户、许多不同的域以及跨众多地理位置的大型服务器场的网络中实现。
概述提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在仅仅标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。各实施例涉及用于在目录服务环境中供应服务的锁定机制。根据一些实施例,可通过写入在相对身份(RID)主服务器处维护的共享文件来使得在域中运行的服务担当领导者角色,或者另一单元素(singleton)角色,诸如架构主机、域命名主机、基础结构主机、或者主要域控制器(PDC)仿真器。还可通过周期性地重新写入共享文件来使担当领导者角色的服务延长其角色。其他服务也可周期性地检查文件,并且只要有一服务当前具有领导者角色就将保持被动。如果领导者服务不运作并且不能延长其角色,另一服务可通过写入共享文件来接管以确保在供应服务中有单个领导者。通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。可以理解,前述一般描述和以下详细描述均仅是说明性的,并且不限制所要求保护的各方面。附图简述图I是示出可使用目录服务的联网系统的各示例组件的概念图;图2示出了在示例实现中相对身份(RID)主服务器能够如何用于管理域控制器;图3概念性地示出了基于示例锁文件的单个领导者仲裁系统;图4是可实现根据各实施例的系统的联网环境;图5是可实现各实施例的示例计算操作环境的框图;以及图6示出了根据各实施例的用于供应服务的领导者仲裁的过程的逻辑流程图。详细描述如以上所简述,用于在目录服务环境中供应服务的锁定机制可使服务通过写入在相对身份(RID)主服务器处维护的共享文件来担当领导者角色。担当领导者角色的服务可通过周期性地重新写入共享文件来延长其角色。其他服务也可周期性地检查文件,并且只要有一服务当前具有领导者角色就将保持被动。如果领导者服务不运作并且不能延长其角色,另一服务可通过写入共享文件来接管以确保在供应服务中有单个领导者。在以下具体实施方式
中,参考了构成了详细描述的一部分并作为说明示出了各具体实施例或示例的附图。可组合些方面,可利用其他方面,并且可以在不背离本发明的精神或范围的前提下做出结构上的改变。因此,以下具体实施方式
并不旨在限制,并且本发明的范围由所附权利要求及其等效方案来限定。虽然在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施例,但是本领域技术人员会认识到各方面也可以结合其他程序模块实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,如本领域技术人员理解的,各实施例可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务 由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码包括用于使得计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。例如,计算机可读存储介质可经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘和类似介质中的一个或多个来实现。贯穿本说明书,术语“平台”可以是用于管理联网系统的软件和硬件组件的组合。平台的示例包括但不限于,在多个服务器上执行的托管服务、在单个服务器上执行的应用程序以及类似系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可被实现为视作网络上的服务器的、在一个或多个计算设备上执行的虚拟服务器(软件程序)。图I是示出可使用目录服务的联网系统的各示例组件的概念图。如以上所讨论的,联网系统可在大小和类型上变化,从而包括具有各功能范围的众多不同组件。

图100示出具有目录服务环境的示例系统。该示例系统包括网络设备112,该网络设备可负责网络配置、服务策略的质量、安全策略、以及类似方面。防火墙服务116可负责配置、安全策略、以及虚拟个人网络(VPN)策略。应用服务120可负责服务器配置、授权策略(例如,单次登录)、应用专用的目录信息、以及应用策略。电子邮件服务118可维护邮箱信息、地址簿、以及类似数据。网络操作组件114可维护用户注册表、安全策略、以及类似特征。其他目录110可包括诸如白页、电子商务目录等的专用的目录服务器。目录服务102可与所有这些组件交互,并且便于分配策略、部署软件、将更新应用于组织、以及类似任务。目录服务102还可管理与系统用户104相关联的账户信息、特权、简档、以及策略。目录服务102还可与系统服务器106交互,该系统服务器可管理管理简档、网络信息、打印机以及类似资源、文件共享、以及策略。此外,目录服务102可与负责管理其对应的简档和网络策略的系统客户机108交互。诸如美国华盛顿州的雷德蒙市的微软公司的Active Directory 的目录服务跟踪作为对象的系统组件。对象可以是用户、系统、资源、或者在目录服务中跟踪的服务。尽管某些对象可共享共同的属性,但是其他对象可具有不同的特征。因此,目录服务结构是分层的对象框架。每个对象可代表单个实体(例如,用户、计算机、打印机、或者组)以及其属性。某些对象还可以是其他对象的容器。对象可由其名字唯一地标识并且具有由模式定义的一组属性(例如,对象可包含的特征和信息),这组属性还可确定目录服务可存储的对象的类型。在目录服务结构中,站点是表示主存一个或多个网络的地理位置的对象。站点可包括被称为子网的对象。站点可用于分配组策略对象、便于发现资源、管理活动目录复制、以及管理网络链接通信量。可在多个层查看保存对象的目录服务框架。结构的最顶层是森林。森林是目录结构中每个对象、对象属性、以及规则(属性句法)的集合。森林是是树的集合,而树是一个或多个域的集合。森林、树、和域是目录服务网络中的逻辑部分。因此,可基于目录服务的分层结构来定义被分配给服务器以及类似组件(包括服务)的角色。例如,在根据各实施例的供应服务中便于单个领导者仲裁的RID主服务器可在特定域中(并且不跨域)定义,以确保RID主机的单元素状态。 图2示出了在示例实现中相对身份(RID)主服务器能够如何用于管理域控制器。可在目录服务环境中提供众多服务和操作。图200示出了与RID主服务器相关联的、域控制器之间的示例复制服务。如以下所述,根据定义,RID主服务器222对于每个域是唯一的。因此,它被用于根据各实施例来维护共享的锁文件。在图200中,不同的域控制器224、226和228通过多主控复制230来复制它们自己之间的目录服务数据库的改变。但是,唯一的RID主服务器222用来向域控制器224、226和228分配安全相对标识符。在目录服务结构中,每个域可具有一个或多个域控制器,这些域控制器包括了目录服务数据库的副本并且与其他域控制器同步改变(例如,通过多主控复制)。复制是可在目录服务环境中促成的以及频繁地在拉式的基础上进行的服务的示例。域控制器服务器可向同类域控制器请求更新。如果一个域控制器上的信息改变了(例如,用户改变其口令),则该域控制器可向其他域控制器发送信号以开始对数据的拉式复制,以确保它们都是最新的。灵活的单主控操作(FSMO)是专用的域控制器任务,在标准数据转移以及更新方法不适当时使用。如以上所述,目录结构通常可依靠多个对等域控制器,其中每个域控制器都具有目录结构数据库的副本,并通过多主控复制来同步。不适合多主控复制,并且只在单主控数据库中可行的任务是FSM0。每个域的FSMO的一个示例是RID主机。相对标识符主机可向域控制器分配安全相对标识符,以便向新的目录结构分配安全主体(例如,用户、组或计算机对象)。RID主机还可管理在域之间移动的对象。另一个示例FSMO是主要域控制器(PDC),该主要域控制器处理域中的口令改变。由于在其他域控制器处的错误口令所造成的失败认证尝试可在被拒绝前转发到roc。这确保了用户可以按照任何域控制器的密码改变来立即登录,而不需要等待若干分钟直到改变被复制。进一步的示例FSMO是基础结构主机,它维护了安全标识符、全局用户标识符(GUID)、以及用于跨域引用的对象的域名。该基础结构主机可更新用户和组链接。图3概念性地示出了基于示例锁文件的单个领导者仲裁系统。用于在目录服务环境中供应服务的锁定机制可通过使用存储在如图300所示的RID主服务器322上的共享锁文件332实现。RID主服务器322是灵活的单主控操作(FSMO)角色,并且在目录服务环境中整个域只能有一个RID主服务器322。域中运行的一组服务(例如,334、336、以及338)可通过写入共享的锁文件332来尝试获得领导权。能够获得领导权的第一服务334实例可延长领导权第一预定义的时间段(例如,每X秒)。其他服务实例336、338可保持被动并且在第二预定义的时间段(例如,每Y秒)之后检查领导权状态。第二预定义的时间段(Y)可被选择为比第一预定义的时间段(X)长。如果Y小于X,则被动的实例可在活动实例查验之前获得领导权,而活动实例查验是在X时间间隔之后。如果领导者服务失败,则被动的服务实例可获得领导权并且变为活动。如果RID主服务器322失败,则可转移或者收回角色并且让另一服务器作RID主服务器322来继续目录服务过程。两个过程都确保仅有一个RID主服务器322。根据高优先级继续目录服务的做法,当RID主服务器角色被转移或者收回时,这一信息可被传输至域中的所有服务器。因此,在任何给定时刻,系统确保仅有单个领导者。可基于预期的最坏情况下信息到达域中所有服务器的等待时间来选择Y的值。·
尽管用RID主服务器主存共享锁文件的示例讨论了各实施例,但是每个域中的其他单元素服务器(物理的或虚拟的)也可用于维护该锁文件。例如,上文讨论的PDC或基础结构主机可根据其他实施例主存锁文件。图I到图3中所讨论的不同过程以及系统配置仅用于示例的目的,并且不构成对各实施例的限制。可使用此处描述的原理用更多的或更少的组件(软件或硬件)、不同的配置、以及角色分配来实现各实施例。图4是可实现各实施例的示例联网环境。用于提供具有领导权仲裁的供应服务的平台可通过在诸如托管服务的服务器416上执行的软件来实现。该平台可以通过网络410来与服务器414上执行的其他服务以及诸如智能电话411、膝上型计算机412、台式计算机413、或类似设备(“客户机设备”)等各个计算设备上的客户机应用进行通信。在客户机设备411-413中的任一个上执行的客户机应用可与服务器416提供的供应服务的托管服务交互。服务器414上的其他服务可与供应服务联系以确定在供应操作中的领导者。供应服务可提供通过RID主服务器上的共享锁文件的单个领导者选择,以及对选择的领导者的周期性确认以确保在任一给定时刻不存在多个活动的领导者。可直接地或者通过数据库服务器418来在数据存储419中存储相关的数据,和/或从数据存储419中检索相关的数据。网络410可包括服务器、客户机、因特网服务供应商以及通信介质的任何拓扑结构。根据各实施例的系统可具有静态或动态拓扑结构。网络410可包括诸如企业网络等安全网络、诸如无线开放网络等非安全网络、或因特网。网络410还可包括蜂窝网络(尤其是在服务器和移动设备之间)。此外,网络410可包括诸如蓝牙或类似网络等短程无线网络。网络410提供此处描述的节点之间的通信。作为示例而非限制,网络410可包括例如声学、RF、红外线和其他无线介质的无线介质。可采用计算设备、应用、数据源和数据分发系统的许多其它配置来实现提供用于供应服务的领导者仲裁的平台。此外,图4中所讨论的联网环境仅用于说明目的。各实施例不限于示例应用、模块或过程。
图5及相关联的讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。参考图5,示出了根据各实施例如计算设备500的用于应用的示例计算操作环境的框图。在基本配置中,计算设备500可以是根据各实施例的提供目录服务的并包括至少一个处理单元502和系统存储器504的服务器。计算设备500还可包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器504可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。系统存储器504通常包括适于控制平台操作的操作系统505,诸如来自华盛顿州雷德蒙市的微软公司的WINDOWS 操作系统或类似操作系统。系统存储器504还可以包括一个或多个软件应用,诸如程序模块506、供应服务522、以及锁文件524。供应服务522可仲裁来自目录服务环境中系统内的服务的请求。在接收到来自第一服务的请求后,供应服务522可使得该服务写入共享锁文件524以向其他服务指示第一服务具有领导者角色。还可以使第一服务通过在预定义的时间段重新写入锁文件524来延长其角色。其他服务可周期性地检查该文件并且在第一服务放弃其领导者角色之前保持被动。然后,另一服务可写入锁文件524并且接管领导者角色,依此类推。该基本配置在图5 中由虚线508内的那些组件示出。计算设备500可具有附加特征或功能。例如,计算设备500还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。在图5中通过可移动存储509和不可移动存储510示出了这样的附加存储。计算机可读介质可包括以用于存储例如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器504、可移动存储509和不可移动存储510都是计算机可读介质的示例。计算机可读存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光学存储、磁带、磁盘存储或其他磁性存储设备、或可用于储存所需信息并可由计算设备500访问的任何其他介质。任何这种计算机存储介质都可以是计算设备500的一部分。计算设备500也可具有输入设备512,例如键盘、鼠标、笔、语音输入设备、触摸输入设备和类似输入设备。还可包括输出设备514,例如显示器、扬声器、打印机和其他类型的输出设备。这些设备在本领域中公知并且无需在此处详细讨论。计算设备500还可包含通信连接516,该通信连接允许该设备诸如通过分布式计算环境中的有线或无线网络、卫星链接、蜂窝链接、短程网络和类似机制来与其他设备518进行通信。其他设备518可包括执行通信应用的计算机设备、其他服务器和类似设备。通信连接516是通信介质的一个示例。通信介质可在其中包括计算机可读指令、数据结构、程序模块或其他数据。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及如声学、RF、红外及其他无线介质之类的无线介质。各示例实施例还包括各种方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。图6示出了根据各实施例的用于供应服务的领导者仲裁的过程600的逻辑流程图。过程600可作为目录服务的一部分来实现。过程600从操作610处开始,其中接收到来自域中的一组服务器中的一个的请求。在操作620处,供应服务可使提出请求的服务写入在RID主服务器处维护的锁文件,并且指定该提出请求的服务器为领导者。领导者服务可通过周期性地重新写入锁文件来延长其地位。在操作630处,供应服务可接收到来自另一服务的以尝试写入共享锁文件的形式的另一请求。如在判定操作640处所确定的,如果领导者服务的记录仍在锁文件中(即,该服务是活动的并且仍是领导者),则供应服务可拒绝新服务写入该锁文件。这一服务可保持被动,并且在预定义的时间段之后再次检查。在操作650处,如果先前的领导者服务不再是活动的,或者由于某些原因解除了其领导权,则供应服务可允许新服务写入锁文件并且变为新的领导者。包括在过程600内的各操作是出于说明目的。提供用于供应服务的领导者仲裁可以使用此处所述的各原理通过具有更少或更多步骤、以及不同的操作次序的相似过程来实 现。以上说明书、示例和数据提供了对各实施例组成的制造和使用的全面描述。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施例的示例形式而公开的。
权利要求
1.一种至少部分地在计算设备中执行的用于提供供应服务中的领导者仲裁的方法,所述方法包括 接收来自第一服务的请求; 使所述第一服务通过写入共享锁文件来担当领导者角色; 接收来自第二服务的另一请求; 如果基于所述共享锁文件中的记录所述第一服务仍具有领导者角色,则拒绝所述第二服务的领导者角色;否则 使所述第二服务能够写入所述共享锁文件并且担当领导者角色。
2.如权利要求I所述的方法,其特征在于,还包括 使所述第一服务通过在第一预定义的时间段之后重新写入所述共享锁文件来延长其领导者角色。
3.如权利要求2所述的方法,其特征在于,还包括 使所述第二服务能够在第二预定义的时间段之后检查所述共享锁文件。
4.如权利要求I所述的方法,其特征在于,所述共享锁文件被存储在目录服务环境中域的单元素服务器处。
5.如权利要求4所述的方法,其特征在于,所述单元素服务器是用于向所述域的域控制器分配安全相对标识符的相对标识符(RID)主服务器。
6.如权利要求4所述的方法,其特征在于,所述单元素服务器是物理服务器和虚拟服务器中的一种。
7.如权利要求4所述的方法,其特征在于,还包括 用另一单元素服务器替换所述单元素服务器; 将所述共享锁文件转移到所述另一单元素服务器;以及 通知所述域中的各服务器以使得通过在所述另一单元素服务器处的所述共享锁文件来便于继续领导者仲裁。
8.一种用于提供供应服务中的领导者仲裁的系统,所述系统包括 主存目录服务的目录服务器,所述目录服务被配置为 向域中的单个服务器分配用于资源分配的领导者仲裁任务,其中所述单个服务器维护共享锁文件以便于所述领导者仲裁任务; 主存第一服务的第一服务器,所述第一服务被配置为 通过写入所述共享锁文件来担当领导者角色; 通过在第一预定义的时间段之后重新写入所述共享锁文件来延长领导者角色;以及 主存第二服务的第二服务器,所述第二服务被配置为 尝试写入所述共享锁文件以担当领导者角色; 如果尝试不成功则维持被动模式;以及 在第二预定义的时间段之后重新尝试写入所述共享锁文件以担当领导者角色。
9.如权利要求8所述的系统,其特征在于,所述目录服务还被配置为 响应于单个服务器的失败,执行下列之一转移和收回所述单个服务器的角色; 将所述角色分配给另一单个服务器; 将所述共享锁文件转移到所述另一单个服务器;以及通知所述域中的各服务器关于单个服务器的改变。
10.如权利要求9所述的系统,其特征在于,所述第二预定义的时间段基于预期的最坏情况下用于通知所述域中各服务器的等待时间来确定。
11.如权利要求9所述的系统,其特征在于,所述单个服务器是下列各项之一被配置为向所述域的域控制器分配安全相对标识符的相对标识符(RID)主服务器,被配置为处理所述域中口令改变的主要域控制器(PDC)服务器,以及被配置为维护下列一组中至少一个的基础结构主服务器安全标识符、全局用户标识符(GUID)、以及用于跨域引用的对象的域名。
12.如权利要求9所述的系统,其特征在于,所述目录服务还被配置为 分配策略; 部署软件;以及 将更新应用于所述域中的各服务器。
13.如权利要求9所述的系统,其特征在于,所述第一服务在通过写入所述共享锁文件担当领导者角色之后转变为活动模式。
14.一种具有在其上存储的用于在目录服务环境中提供供应服务中的领导者仲裁的指令的计算机可读存储介质,所述指令包括 向域中的单元素服务器分配用于资源分配的领导者仲裁任务,其中所述单元素服务器维护共享锁文件以便于所述领导者仲裁任务; 接收来自第一服务实例的请求; 使所述第一服务实例能够通过写入所述共享锁文件来担当领导者角色; 接收来自第二服务实例的另一请求; 如果基于所述共享锁文件中的记录所述第一服务实例仍具有领导者角色,则拒绝所述第二服务实例的领导者角色;否则 使所述第二服务实例能够写入所述共享锁文件并且担当领导者角色。
15.如权利要求14所述的计算机可读存储介质,其特征在于,所述指令还包括 使所述第一服务实例能够通过在第一预定义的时间段之后重新写入所述共享锁文件来延长其领导权角色。
使所述第二服务实例能够在第二预定义的时间段之后检查所述共享锁文件,其中如果所述第二服务实例不能担当领导者角色则它维持被动模式。
全文摘要
在目录服务环境中通过锁定机制实现单个领导者供应。使得在域中运行的服务以通过写入在相对身份(RID)主服务器处维护的共享文件来担当领导者角色。还通过周期性地重新写入共享的文件来使担当领导者角色的服务延长其角色。其他服务也可周期性地检查文件,并且只要有一服务当前具有领导者角色就将保持被动。如果领导者服务不运作并且不能延长其角色,另一服务可通过写入共享的文件来接管以确保在供应服务中有单个领导者。
文档编号G06F17/00GK102918519SQ201180026988
公开日2013年2月6日 申请日期2011年5月19日 优先权日2010年6月3日
发明者J·辛格, M·科伯恩, 陈睿 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1