用于图分析和同步的方法和系统的制作方法

文档序号:6548270阅读:145来源:国知局
专利名称:用于图分析和同步的方法和系统的制作方法
技术领域
本发明一般涉及计算机系统,尤其涉及计算机系统数据结构的操纵。
背景技术
许多有用的计算机系统应用程序结合了具有节点(即,顶点)和节点之间的连接(即,边)的图数据结构,例如,与网络、组织结构和数据库模式交互的计算机系统应用程序。结果,各种类型的图管理系统(GMS)变得越来越普及。一种公用的GMS操作是在图管理系统内或之间的图复制,或更一般地是两个图的同步。
为本描述的目的,图管理系统可被归类成已验证图管理系统(VGMS)和未验证图管理系统。已验证图管理系统可在每一次图操纵操作之后验证所管理的图是否为有效状态。例如,已验证图管理系统可禁止将导致连接到不存在的节点或将违反某些其它已配置图约束的图操纵操作。已验证图管理系统的示例包括某些轻量级目录访问协议(LDAP)服务器和结构化查询语言(SQL)服务器。
同步图时会导致困难的特定图约束是基础结构连接(或基础结构边)约束。基础结构连接是(在某些情况中,必须是)作为相关节点的创建的一部分所创建的连接。基础结构连接的示例包括LDAP模式类继承关系和用于定义对象和对象类的某些其它关系。
当将循环图(即,具有环路或回路的图)复制到已验证图管理系统时会产生问题。例如,在不修改循环图的情况下,可能无法在已验证图管理系统中以避免尝试连接到尚未存在节点的顺序创建节点和相关联的基础结构连接。如果已验证图管理系统禁止创建到不存在节点的连接,则它可能无法将循环图复制到已验证图管理系统。
图1示出了将简单的循环图100复制到示例已验证图管理系统时的问题。节点102和基础结构连接104需要节点106在它们被创建之前存在。节点106和基础结构连接108需要节点110在它们被创建之前存在。然而,节点110和基础结构连接112需要节点102在它们被创建之前存在。结果,对于节点102、106和110及其相关联的基础结构连接104、108和112,没有避免尝试创建到尚未存在的节点的连接的创建顺序。可能无法将图100复制到已验证图管理系统。
实际上,图可以比图100复杂得多。由于各种连接类型,会产生进一步的问题。除基础结构连接之外,可能有多种类别的连接,包括例如在必要时改变分类以实现复制和/或同步的连接。

发明内容
本节提出了本发明的某些实施例的简化概述。本概述并非本发明的广泛综述。它并不意味着确定本发明的关键/决定性元素或描绘本发明的范围。其唯一的目的是以简化的形式提出本发明的某些实施例,作为以后给出的更详细描述的序言。
在本发明的一个实施例中,划分循环图。循环图的划分可包括循环图的非循环分量和一组已划分连接。循环图的划分可以有特定的顺序。循环图的元素可用特定的串行化顺序来串行化。循环图的元素的串行化顺序可对应于循环图的划分顺序,例如,循环图的非循环分量的元素可以在已划分连接组的元素之前被串行化。在本发明的一个实施例中,计算机系统包括一图串行化组件,它被配置成划分循环图,并确定循环图的元素的串行化顺序。在本发明的一个实施例中,循环图的串行化的确以确定的串行化顺序来串行化循环图的元素。


尽管所附权利要求书以细节陈述了本发明的特征,然而当结合附图阅读以下详细描述时,可以最好地理解本发明及其优点,附图中图1是简单循环图的示意图;图2所示是可用于实现本发明的一个实施例的示例性计算机系统的示意图;图3所示是依照本发明的一个实施例的示例高级计算机系统体系结构的示意图;图4所示是依照本发明的一个实施例的示例图同步组件的示意图;图5所示是依照本发明的一个实施例用于同步两个图的示例步骤的流程图;图6是示例非循环图的示意图;图7是示例循环图的示意图;图8所示是依照本发明的一个实施例用于划分图的示例步骤的流程图;图9是另一示例循环图的示意图;
图10是又一示例循环图的示意图;图11是依照本发明的一个实施例划分的示例图的示意图;图12所示是依照本发明的一个实施例用于串行化图的示例步骤的流程图;以及图13所示是依照本发明的一个实施例的示例图同步应用编程接口的框图。
具体实施例方式
在继续描述本发明的各个实施例之前,现在提供可在其中实施本发明的各个实施例的计算机的描述。尽管并非所需,但本发明将在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序包括例程、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。此处所使用的术语“程序”可以意味着单个程序模块或共同运作的多个程序模块。此处所使用的术语“计算机”和“计算设备”包括电子地执行一个或多个程序的任何设备,包括个人计算机(PC)、手持式设备、多处理器系统、基于微处理器的可编程消费者电子设备、网络PC、小型机、图形输入板PC、膝上计算机、具有微处理器或微控制器的消费者电器、路由器、网关、集线器等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序可以位于本地和远程存储器存储设备中。
参考图2,示出了其中可实现本发明的各方面的计算机202的基本配置的示例。在其最基本的配置中,计算机202通常包括至少一个处理单元204和存储器206。处理单元204执行指令来实现依照本发明的各个实施例的任务。在实现这类任务时,处理单元204可将电信号发送到计算机202的其它部分和计算机202之外的设备以引起某些结果。根据计算机202的确切配置和类型,存储器206可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。这一最基本配置在图2中由虚线208内的组件示出。
计算机202也可具有另外的特征/功能。例如,计算机202也可包括另外的存储(可移动210和/或不可移动212),包括但不限于,磁盘、光盘或磁带。计算机存储介质包括以用于储存包括计算机可执行指令、数据结构、程序模块或其它数据的信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机202访问的任一其它介质。任何这类计算机存储介质可以是计算机202的一部分。
计算机202较佳地还包含允许装置与其它计算装置,如(多个)远程计算机216进行通信的通信连接214。通信连接是通信介质的一个示例。通信介质通常包含诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。作为示例而非局限,术语“通信介质”包括无线介质,如声学、RF、红外和其它无线介质。本发明使用的术语“计算机可读介质”包括计算机存储介质和通信介质。
计算机202也可具有输入设备218,如键盘/小键盘、鼠标、输入笔、语音输入设备、触摸输入设备等等。也可包括输出设备220,如显示器、扬声器、打印机等等。所有这些设备在本领域中是众所周知的,因此无需在此详细描述。
在以下描述中,将参考由一个或多个计算装置执行的行动和操作的符号表示来描述本发明,除非另外指明。由此,可以理解,这类行动和操作,有时称为计算机执行的,包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,从而以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是存储器的物理位置,具有由数据的格式所定义的具体特性。然而,尽管在上述的上下文环境中描述本发明,它并不意味着限制,如本领域的技术人员所理解的,后文所描述的各种行动和操作也可以硬件实现。
在本发明的一个实施例中,诸如计算机202的计算机系统包括一图同步组件,以便于在图管理系统内和/或之间的图同步。具体地,图同步组件可以促进已验证图管理系统处的循环图的同步。图同步组件可以通过将每一循环图划分成包括非循环图和一组被称为已划分连接或已划分边的非基础结构连接的多个分区,来促进已验证图管理系统处的循环图同步。已划分连接可以被理解为从循环图中“剪下”的连接组,以将循环图变换成非循环图,即,以将循环图简化成其非循环分量。
由图同步组件执行的循环图划分可以使得所得的非循环图具有满足与循环图相关的特定已验证图管理系统的一组已配置图约束的高可能性,例如,可以对非循环图确定图元素(即,节点和连接)创建顺序,使得由连接引用的每一节点的确在连接创建时存在。一旦在已验证图管理系统处建立了非循环图,可用相对较低的约束违反可能性来添加已划分连接,由此以相对较高的可能性在已验证图管理系统处实现了循环图的同步。
图3描述了依照本发明的一个实施例的高级计算机系统体系结构。在图3中,图同步组件302与管理基础图306的已验证图管理系统304,以及管理目标图310的图管理系统308交互。图同步组件302、图管理系统308和已验证图管理系统可驻留在分开的计算机或单个计算机上(如图2的计算机202)。图管理系统308可以是已验证图管理系统,尽管它不必要如此。在本发明的一个实施例中,图同步组件302可以被结合到图管理系统308和/或已验证图管理系统304中。在本发明的一个实施例中,基础图306和目标图310可由同一已验证图管理系统或由同一已验证图管理系统的不同版本来管理。尽管为了清晰性,图3示出了单个目标图310,然而如本领域的技术人员所理解的,本发明的一个实施例可包括并处理多个目标图。
图同步组件302可依照由已验证图管理系统304和图管理系统308分别施加的约束来创建、读、更新和删除基础图306和目标图310。在本发明的一个实施例中,图同步组件302的一个任务是将基础图306与目标图310同步。基础图306可以是空图(即,没有节点和连接)。基础图306可包括目标图310的一个或多个节点和/或连接的副本或版本。在同步之后,目标是令基础图306至少具有目标图310的每一节点和连接的副本。图同步组件302的示例细节在下文参考图4来描述。
图4描述了依照本发明的一个实施例的示例图同步组件402。图同步组件402包括图管理系统(GMS)通信404模块,它由图同步引擎406使用来与包含基本和目标图的图管理系统通信,如已验证图管理系统304(图3)和图管理系统308。图管理系统通信404模块被明确地描述为包括用于向已验证图管理系统发送消息和从其接收消息的已验证图管理系统(VGMS)发送408模块和已验证图管理系统接收410模块,以及用于向图管理系统发送消息和从其接收消息的图管理系统(GMS)发送412模块和图管理系统接收414模块。图管理系统通信404模块可包括用于与包括其它图同步组件的任一合适类型的图管理系统进行通信的其它模块。
图同步引擎406可使用图管理系统通信404模块来请求和接收基础和目标图的副本。根据基础和目标图,图同步引擎406可创建工作图416。工作图416中的每一节点和连接可与一个或多个同步标签(如,数据字段)相关联,如,“在基础图中存在”标签、“图同步目录”标签、“图同步权值”标签、“已划分连接”标签和/或“串行化顺序”标签。每一图同步标签可以与一个或多个属性类型和值相关联。作为管理图的结果,图同步组件402本身是一种类型的图管理系统。图同步组件402可以是已验证图管理系统,但是在这一情况下,由图同步组件402强制的图约束通常是松弛的,以避免图同步组件402帮助解决的那种类型的图复制问题。
图同步引擎406可向工作图416的节点和连接分配图同步标签和图同步标签属性值。图同步引擎406可根据图同步标签的存在和/或属性值划分工作图416。图同步引擎406然后可从已划分的工作图416中为管理基础图306的已验证图管理系统304(图3)创建图串行化418。图串行化418可指定一图元素创建顺序,用于将已验证图管理系统304处的基本图306与目标图310同步。
图串行化418可以用已验证图管理系统304(图3)理解(即,能够进行语法分析)的格式储存。或者,图管理系统通信404模块可以能够将图串行化418格式化成任一合适的图串行化格式。合适的图串行化格式示例包括用于轻量级目录访问协议服务器的LDAP数据交换格式(LDIF),以及用于结构化查询语言服务器的结构化查询语言(SQL)脚本,这两者在本领域中都是众所周知的,无需在此详细描述。
图同步组件402还可包括一图同步图形用户界面(GUI)420。图同步图形用户界面可显示图同步组件402属性,例如,工作图416的节点和连接及其相关联的图同步标签、图同步引擎406的状态和进度、由图同步引擎406用于划分工作图416并创建图串行化418的参数、图串行化418以及图管理系统通信状态和参数。图同步组件402属性可以用任一合适的图形表示来显示,例如,工作图连接可以用对应于其划分状态(即,已划分或未划分)和/或与连接相关联的图同步权值的颜色和/或加亮来显示。
计算机系统用户可使用图同步图形用户界面420来控制图同步组件402的操作。具体地,计算机系统用户可调整图同步引擎406使用的参数和表达式,来自动地划分工作图416和/或手动地调整工作图416的划分。诸如“轻微地剪除”和“严重地剪除”等高级划分设置可与低级划分参数一起呈现,其每一个都与一组低级划分参数相关联,以供用户选择。
图同步组件402可以用全自动模式、部分自动模式和/或手动模式来执行。在手动模式中,图同步组件402可令最大量信息对计算机系统用户可用,并主要响应于用户通过图同步图形用户界面420的输入来采取行动。在部分自动模式中,图同步组件402可主要显示概要级信息,并寻找用户对于诸如更新已验证图管理系统处的基础图等主要行动的批准。在全自动模式中,图同步组件402可显示最少的信息,如进度和/或状态,或者图同步图形用户界面在全自动模式中是不活动的。
图同步组件402还可包括图同步应用编程接口(API)422。图同步应用编程接口422可使计算机系统组件能够配置和控制图同步组件402。依照本发明的一个实施例的示例图同步应用编程接口在下文参考图13更详细地描述。
图5描述了依照本发明的一个实施例用于同步两个图的示例步骤。例如,图5的步骤可以由图4的图同步组件402来执行。在步骤502,可检索基础图的副本。例如,图同步引擎406可以请求并接收图3的基础图。在步骤504,可检索目标图的副本。例如,图同步引擎406可请求并接收目标图310。
在步骤506,可创建工作图416(图4)。例如,图同步引擎406可用目标图310(图3)的每一节点和连接例示工作图416。此时也可发生工作图416的节点和连接的加标签。例如,目标图310中所存在的也存在于基础图306中的图元素可以在工作图416中被加标签为“在基础图中存在”。
在步骤508,工作图416(图4)可被划分成多个分区,包括非循环分量和一组已划分连接。被加标签为“在基础图中存在”的图元素也可作为已划分来处理,或者从工作图416中移除。依照本发明的一个实施例用于划分工作图416的示例步骤在下文参考图8更详细地描述。
在步骤510,可对已划分工作图416的图元素确定图串行化顺序。工作图416划分可具有一种顺序,并且图串行化顺序可以对应于工作图416划分的顺序,例如,按图串行化顺序,非循环分量的图元素可以在已划分连接之前到来。工作图416分区中的图元素可具有一串行化顺序,例如由与节点和/或连接相关联的“串行化顺序”标签指定的顺序。在步骤512,可通过以确定的图串行化顺序串行化工作图416的图元素来从工作图416创建图串行化418。在本发明的一个实施例中,确定图串行化顺序与创建图串行化418是一个整体。依照本发明的一个实施例用于创建图串行化418的示例步骤在下文参考图12更详细地描述。
在步骤514,图串行化418(图4)可被上传(即,传递)到已验证图管理系统304(图3)。已验证图管理系统304可常规地处理上传的图串行化,以用目标图310节点和连接来更新基础图306。在本发明的一个实施例中,作为已验证图管理系统304对上传的图串行化的常规处理的结果,基础图306变得与目标图310同步。
在更详细描述工作图416(图4)划分和串行化之前,描述依照本发明的一个实施例的示例划分和串行化策略是有益的。图6描述了一个示例有向非循环图600,它具有七个节点602、604、606、608、610、612和614,以及六个连接616、618、620、622、624和626。节点604和606分别用连接616和618从节点602连接出来。节点608和610分别用连接620和622从节点604连接出来。节点612和614分别用连接624和626从节点606连接出来。非循环图600是一种树型图,但是该树图类型不是必要的约束,例如,如果节点612也直接从节点602连接出来,则图600将仍是非循环的。另外,尽管本申请中描述的每一示例图包括有向连接(即,“连接到”一个节点或从一个节点“连接出”的连接,而非简单地连接两个节点的连接),然而如本领域的技术人员所理解的,本发明的实施例不必如此限制。
如果连接616、618、620、622、624和626的每一个是基础结构连接(即,连接616作为节点604的创建的一部分而创建,连接618作为节点606的创建的一部分而创建,连接620作为节点608的创建的一部分而创建,等等),并且约束是不可以创建到不存在节点的连接,则在图600的可能节点和连接创建顺序中,仅某些是有效的。例如,节点604和连接616可能无法在节点602之前创建。类似地,节点608和连接620可能无法在节点604之前创建。然而,例如,一旦创建了节点602,则若干后续的有效节点创建顺序是可能的,包括节点604之后节点606之后节点608,或者节点604之后节点608之后节点606,或者节点606之后节点604之后节点608,等等。
图600的有效节点创建顺序(以及任一合适的非循环图)可以通过依照图600的常规广度优先步查中从合适的根节点开始的广度优先层归类节点来确定。例如,图600的合适的根节点可以通过从任意的节点开始下行图600到节点602来确定。如果图600的节点602是广度优先步查的第一层,则节点604和606在第二层,而节点608、610、612和614在第三层。给定这一归类,有效节点创建顺序可以通过在较后广度优先层节点之前安排较前的广度优先层节点的创建来构造。例如,在图600的情况下,有效节点创建顺序可以通过首先安排节点602的创建,然后安排节点604和606的创建(以任何顺序),然后安排节点608、610、612和614的创建(以任一合适的顺序)来确定。
然而,并非每个图都是非循环的。图7描述了一个示例有向循环图700,它具有非循环图600(图6)的节点602、604、606、608、610、612和614,以及连接616、618、620、622、624和626,以及从节点614到节点602的另外的连接702,它创建了图700中的回路或环路(即,从节点602到节点606到节点614然后回到节点602)。如果连接702是可划分的(如,是非基础结构连接,或能够成为非基础结构连接),则将连接702从图700中划分出来可将循环图700简化成非循环图600。然后可通过划分连接以将循环图简化成非循环分量(如,对于循环图700为非循环图600)、如上文参考图6所描述的对非循环分量确定有效节点和连接创建顺序、然后将已划分的连接追加到节点和连接创建顺序(已划分连接可以用任一合适的顺序来追加),来确定循环图700(以及任一合适的循环图)的有效节点和连接创建顺序。
图700可通过划分包括连接618、连接626和连接702的多个连接的一个或多个来简化成非循环图。从特定的循环图中划分出哪一或哪些连接取决于各种因素,如该连接是否可划分、该连接如何被归类、以及通过划分该连接打破的图回路数。例如,如果连接618和连接702是基础结构连接,而连接626不是,则连接626可以被选中用于划分,而不是选择连接618或连接702。如果划分一个特定连接比另一连接打破了更多的图回路(即,该连接参与了更多的图回路),则可选中打破更多图回路的连接优于其它连接,用于划分。例如,如图所示,图700的连接618、626和702的每一个参与单个回路。然而,如果有从节点610到节点614的另外的连接,则连接702参与两个图回路,而连接702可被选中优于图700的其它连接,用于划分。
描述了示例划分和串行化策略之后,现在更详细地描述用于划分工作图416(图4)的示例步骤。图8描述了依照本发明的一个实施例用于划分工作图416的示例步骤。在步骤802,例如,可通过将连接与一个或多个图同步标签相关联,向一个或多个图同步类别分配工作图416的一个或多个连接。图同步类别可以适用于任一合适类型的图,例如“可划分连接”和“基础结构连接”。图同步类别也可以对特定类型的图是特定的。例如,如果工作图416表示轻量级目录访问协议(LDAP)模式,则合适的图同步类别包括“可能的上级连接”和“系统可能上级连接”。
在步骤804,可检测图4的工作图416的强连接分量(SCC)(不包括每一已划分的连接)。如本领域的技术人员明白的,图的强连接分量是最大子图,其中,每一节点可从每一其它子图节点到达。可将任一合适的强连接分量(SCC)检测算法结合到本发明的实施例中。合适的常规强连接分量检测算法示例包括在本发明的附录A中。
在本发明的一个实施例中,图对于图的每一强连接分量具有至少一个回路。在步骤806,可核查工作图416(图4)中的强连接分量的计数。如果强连接分量的计数为零,则在本发明的一个实施例中,不包括每一已划分连接的工作图416是非循环的,并且同步过程可以前进到例如图同步步骤,如图5的步骤510。如果强连接分量的计数大于零,则可能需要更多的连接划分,并且过程可以前进到步骤808。
在步骤808,可枚举图4的工作图416(不包括每一已划分连接)的回路。对于工作图416的每一连接,可以为连接参与其中的图回路数保持一计数。例如,计数可作为与该连接相关联的图同步标签的属性来储存。在回路枚举期间可以递增该计数,或者在回路枚举之后从回路枚举数据中计算该计数。
在本发明的一个实施例中,具有一个或多个强连接分量的图的回路可以用修改的深度优先步查从合适的根节点开始枚举。例如,一个或多个强连接分量的任一节点可以是合适的根节点。对常规深度优先步查的修改包括步查的对象要访问连接而非节点,并且所访问的回路被记录以帮助避免对回路的重复计数。示例图将有助于回路枚举细节的描述。
图9描述了一个示例有向循环图900,它具有五个节点902、904、906、908和910,以及八个连接,标记为A、B、C、D、E、F、G和H。节点902用连接A连接到节点904。节点904分别用连接B和C连接到节点906和908。节点906分别用连接D和E连接到节点902和910。节点908分别用连接F和G连接到节点906和910。节点910用连接H连接到节点902。图900最初作为单个强连接分量来检测。
从节点902开始,深度优先步查可通过连接A前进到节点904,然后通过连接B前进到节点906,然后通过连接D回到节点902,由此标识了第一回路ABD。从节点906开始的下一选择可以是连接E通往节点910,然后通过连接H回到节点902,由此标识了第二回路ABEH。从节点904开始的下一选择可以是连接C通往节点908,然后连接F通往节点906,然后通过连接D回到节点902,由此标识了第三回路ACFD。剩余的回路ACFEH和ACGH可以被类似地枚举,对连接A、B、C、D、E、F、G和H分别得到总回路计数5、2、3、2、2、2、1和3(即,连接A参与5个图回路,连接B参与2个图回路,连接C参与3个图回路,等等)。
图10描述了一个示例有向循环图1000,它具有六个节点1002、1004、1006、1008、1010和1012,以及七个连接,被标记为J、K、M、N、P、Q和R。在图1000中,节点1002分别用连接J和K连接到节点1004和1006。节点1004用连接M连接到节点1008,而节点1006用连接N连接到节点1008。节点1008用连接P连接到节点1010,节点1010用连接R连接到节点1012,而节点1012用连接Q连接回到节点1008。图1000的节点1008、1010和1012及其相关联的连接作为单个强连接分量来检测。
在以与上述相对于图900(图9)描述的类似方式从节点1002开始执行图1000的深度优先步查时,可能用回路来枚举两条路径,即JMPRQ和KNPRQ,其每一个包含回路PRQ。然而,在本发明的一个实施例中,图1000的连接P、Q和R的每一个的回路计数为1。例如,可通过在随后枚举的回路中识别序列PRQ,并防止对序列重复的相关联回路计数的递增,避免对连接P、R和Q的重复计数。
返回到图8,在步骤808枚举了工作图416(图4)的回路之后,过程可前进到步骤810。在步骤810,可对工作图416的连接的每一个(不包括每一已划分的连接)确定图同步权值。例如,特定连接的图同步权值可以等于在步骤808中对连接确定的回路计数,或等于对连接的回路计数的线性变换,如乘数和/或正或负偏移,或等于对连接的回路计数的非线性变换,如回路计数的指数函数。每一连接的确定的图同步权值可以储存在与连接相关联的图同步标签中。
每一图同步类别可具有相关联的回路计数变换,用于为该图同步类别中的连接确定图同步权值。例如,第一图同步类别可以与第一线性回路计数变换相关联,第二图同步类别可以与第二线性回路计数变换相关联,第三图同步类别可以与非线性回路计数变换相关联。图同步权值可以跨图同步类别进行比较,或者可以仅在相关联的图同步类别中进行比较,例如,为确定最优图同步权值的目的所进行的比较。
在步骤812,可从工作图416(图4)中划分出最优加权的连接。工作图416的最优加权的连接可以是具有最高确定的图同步权值的连接,或者具有最低权值的连接,或者具有最接近于诸如零等目标图同步权值的确定权值的连接。另外,为使被认为是最优加权的,可要求确定的图同步权值在一最小阈值之上,或低于一最大阈值,或在指定的图同步权值范围之内。
在将工作图416(图4)的每一连接考虑为最优加权的连接的候选者并用于划分的同时,可将最优加权的连接的候选者限于一个或多个特定连接类别,例如,候选者可被限于非基础结构连接。另外,连接图同步类别可具有一种顺序,如连续的顺序,并且可对候选连接考虑每一连接图同步类别。连接图同步类别可被部分地排序。如果例如在考虑每一连接图同步类别之前已找到了一个合适的最优加权的连接,则一个顺序中的每一连接图同步类别不需要被考虑。如果与类别内的连接相关联的图同步权值可以跨类别进行比较,则可同时考虑多个连接图同步类别。例如,如果在考虑了候选连接的每一连接图同步类别之后没有找到合适的最优加权连接,并且图同步组件402被配置成准许连接图同步类别改变,则可改变连接的图同步类别(即,重新归类)。
可通过将“已划分的连接”图同步标签与连接相关联,或添加或更新某一其它合适的图同步标签或其它合适的划分指示符,从工作图416(图4)中划分出最优加权连接。在从工作图416中划分出最优加权连接之后,过程可返回到步骤804,以检测工作图416的任何剩余的强连接分量,并在需要时划分更多的连接。从工作图416中划分出的该组连接可以是将工作图416简化成其非循环分量所需的最小已划分连接组。
现在更详细地描述用于串行化已划分工作图416(图4)的示例步骤。一个示例图将有助于描述串行化细节。图11描述了依照本发明的一个实施例划分的示例工作图1100(已划分的连接未示出)。图1100包括三个不相交的非循环分量。第一非循环分量包括四个节点1102、1104、1106和1108。第二非循环分量包括六个节点1110、1112、1114、1116、1118和1120。第三非循环分量包括四个节点1122、1124、1126和1128。
图12描述了依照本发明的一个实施例用于串行化图1100(图11)的示例步骤。在步骤1202,可选择图1100的合适的先前未访问的根节点。例如,图1100的合适的根节点可以通过从图1100的任意(先前未访问的)节点开始下行图1100到节点1102、1110或1122之一来确定。在步骤1204,如上文参考图6进一步描述的,可用从选择的根节点开始的非循环分量的广度优先步查来确定与所选择的根节点相关联的非循环分量中每一节点的广度优先层。例如,在广度优先步查期间,广度优先层可被储存在与节点相关联的“串行化顺序”标签的属性中。
在某些图中(如,图11的图1100),可能无法从单个根节点开始遍历该图(即,访问该图的每一节点)。在步骤1206,可判断在步骤1204的步查期间是否已访问了图1100的每一节点。如果已访问了图1100的每一节点,则确定了图1100中每一节点的广度优先层,并且串行化过程可前进到步骤1208。如果尚未访问图1100的一个或多个节点,则在本发明的一个实施例中,过程返回到步骤1202,以选择另一合适的根节点用于另一广度优先步查。在本发明的一个实施例中,合适的根节点的候选者被限于没有来自其它节点的流入(inbound)连接的节点,这可使用常规的图操作来确定。步查可以继续,直到访问了图1100的每一节点。
在步骤1208,可通过依照步骤1204中确定的其广度优先层列出图1100的节点和连接,开始从已划分的工作图1100(图11)中创建图串行化418(图4)。向图串行化418列出图1100的节点和连接可包括列出图1100的节点和连接的已验证图管理系统304(图3)所理解的创建、读、更新和/或删除命令。例如,可以如下向图串行化418列出图1100的节点和相关联的连接节点1102、1110和1122(以任一合适的顺序),然后节点1104、1106、1112、1114、1124和1126(以任一合适的顺序)及其相关联的连接,然后节点1108、1116和1128(以任一何时的顺序)及其相关联的连接,并且然后节点1118和1120(以任何顺序)及其相关联的连接。
在步骤1210,可以用任一合适的顺序向图串行化418(图4)列出图1100(图11)的已划分连接。在步骤1210之后,在本发明的一个实施例中,图串行化418的确包含适用于将基础图306(图3)和目标图310同步的图串行化,并且同步过程可前进到已验证管理系统上传步骤,如图5的步骤514。
图13描述了依照本发明的一个实施例的示例图同步应用编程接口1300。图同步应用编程接口1300包括设置划分参数1302元素、获取划分参数1304元素、划分图1306元素、串行化图1308元素和同步图1310元素。每一应用编程接口元素1302、1304、1306、1308和1310可包括一个或多个接口规范,它们指定了计算机系统可用来配置、控制图同步组件402(图4)和/或与其交互的方式。如本领域的技术人员明白的,接口规范可包括函数调用规范、程序对象规范、诸如请求/响应消息对等消息规范、和/或任一其它合适的编程接口规范。
设置划分参数1302应用编程接口元素可使计算机系统组件能够设置由图同步组件402(图4)在划分工作图416时所使用的一个或多个划分参数。接口规范参数可包括连接图同步类别(已排序和未排序的),与每一连接图同步类别相关联的回路计数变换、关于图同步权值是否可在连接图同步类别内或跨连接图同步类别比较的指示符、用于确定诸如目标权值等最优图同步权值以及最大和最小权值阈值的准则、以及关于指定的类别中的连接是否可被重新归类到指定的其它类别的指示符。例如,与每一连接图同步类别相关联的回路计数变换可被指定为简单的乘法和偏移(对于线性变换),它具有定义诸如常规电子表格应用程序或常规编程语言所使用的那些字符串的表达式,或具有任一合适的变换规范。
获取划分参数1304应用编程接口元素可使计算机系统组件能够检索由图同步组件402使用的一个或多个划分参数。获取划分参数1304元素的接口规范参数可包括关于检索哪些划分参数的指示符,以及诸如等待和超时标志等并行编程(多线程)行为说明符。
划分图1306应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例由图同步组件402来划分图。接口规范参数可包括要划分的图。例如,图的已划分连接可具有与其相关联的“已划分连接”图同步标签。
串行化图1308应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例由图同步组件402串行化图。接口规范参数可包括要串行化的图,以及期望的串行化类型。例如,串行化的图可提供为节点和连接的已排序列表,或者对包括诸如节点和连接创建命令等合适的LDAP数据交换格式(LDIF)元素的LDIF文件的引用。
同步图1310应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例来同步图。接口规范参数可包括对基础和目标图的引用。例如,图引用可包括对图管理系统的引用,如网络主机名或统一资源定位器(URL)、以及诸如字母数字字符串或全局唯一标识符(UUID)等图名。
在每一引用都个别且特别地被指示为通过引用结合于此并按其整体来陈述的相同意义上,此处所引用的所有参考,包括出版物、专利申请和专利,都通过引用结合于此。
在描述本发明的上下文中(尤其是所附权利要求书的上下文中),术语“一”、“一个”、“该”和类似对象的使用被解释为覆盖单数和多数,除非此处另外指明或与上下文明显相抵触。术语“由……组成”、“具有”、“包括”和“包含”被解释为开放端口术语(即,意味着“包括但不限于”),除非另外指明。此处对值范围的引用仅作为对落入该范围内的每一单独的值的个别提及的一种速记方法,除非此处另外指明,并且每一单独的值被结合到本说明书中,如同它被个别地引用一样。此处所描述的所有方法可以用任一合适的顺序来执行,除非此处另外指明或与上下文明显相抵触。此处所提供的任一和所有示例,或者示例性语言(如,“诸如”)的使用仅为了更好地阐明本发明,并非对本发明的范围施加限制,除非另外声明。本说明书中没有任何语言应当被解释为表明任何未要求保护的元素对本发明的实施是必需的。
此处描述了本发明的较佳实施例,包括发明人已知用于实现本发明的最佳模式。基于阅读以上描述,本领域的技术人员可以清楚这些较佳实施例的变异。发明人期望本领域的技术人员在适当时采用这些变异,并且发明人期望本发明可以用此处特别描述的之外来实施。因此,本发明包括申请法律所准许的所附权利要求书中所陈述的主题的所有修改和等效技术方案。此外,上述元素在其所有可能的变异中的任一组合由本发明包含在内,除非此处另外指明或与上下文明显相抵触。
附录A找出有向图中的强分量有向图G的强分量S是G中尽可能大的强连接子图。即,如果G的任何其它节点或边被添加到S,则它将不再是强连接的。如果对于任何两个顶点u和v,有一从顶点u到顶点v的有向路径(同时也有从顶点v到顶点u的有向路径),则有向图是强连接的。本算法能找出图的所有有向分量。
本算法可用于交通工程师的道路系统模型,它具有由有向边表示的单向街道,以及对应于顶点u和v的交汇点之间由两条有向边(u,v)和(v,u)表示的双向街道。决定当一条街道因修路而被除去时整个道路系统是否可达的问题等效于确定在删除了适当的边之后该图是否为强连接的。见结尾处的注释可找到完成这一目标的更简单的算法。
本算法基于找出有向回路(其中第一个顶点等于最后一个顶点,但没有其它重复顶点的有向闭合路径)。有向回路是强连接的,因为从任一节点开始可跟随该回路到达任一其它节点。可以此方式找出所有的分量,因为强分量中的任意两个顶点u和v在从u到v的有向路径以及随后从顶点v回到顶点u的有向路径形成的有向回路上。
1.初始设置a.其某些或所有边都为有向的图/有向图。用两条有向边(u,v)和(v,u)替换任一无向边(u,v)。从任一顶点s处开始。
b.分量被储存在集合S1,S2,S3,......中2.迭代a.从s进行改进深度优先查找(包括后向跟踪),创建遵循边方向的查找路径。每次将顶点v添加到查找路径中,然后检查在该查找路径上是否已有从v指向顶点w的边(由此检测有向回路)。
b.如果检测到有向回路C,则将C的节点和边如下添加到分量集合Si之一中(保持DFS查找路径不变)■如果C没有与任何先前定义的集合Si的任何节点公用的节点,则将C的节点和边放在新集合Si中,或者,■如果C具有只与一个先前定义的Si公用的节点,则将C的节点和边添加到该集合Si,或者,■如果C具有与两个或多个先前定义的Si公用的节点,则将所有这些合并成它们之一,并将C的节点和边添加到该集合。
■回到部分(a)并继续深度优先查找。
c.当深度优先查找终止(由于它后向跟踪到起始节点s并且没有更多的查找是可能的)时,则■如果访问了所有的节点(在Si之一中),则到总结,或者■选择一未访问的节点,称它为s,它是DFS的新起始节点,并到上述的部分2(a)。
3.总结找到的每一单独的集合是强连接分量(也参阅结尾处的注释)。
注释(a)该算法在节点不包含在任何有向回路中时将单个节点标识为强分量。
(b)连接两个不同的强分量Si的节点的那些边将不包括在任一Si中(因此在这一情况下,合并所有的强分量不创建原始的有向图)。
(c)为解决道路工程师的问题,可使用更简单的算法。该问题是检查当移除一条有向边(u,v)(表示单向街道)时,强连接有向图(表示道路系统)仍是强连接的。为此,从u开始并进行不使用边(u,v)的改进深度优先查找。如果在此查找中找到顶点v,则它仍是强连接的。
权利要求
1.一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行一种方法,包括将具有多个图元素的循环图划分成多个分区,所述多个图元素包括多个节点和多个连接,所述多个分区包括包括所述循环图的非循环分量的第一分区;以及包括所述循环图的一组已划分连接的第二分区;以及为所述循环图的多个图元素确定一串行化顺序,所述串行化顺序对应于所述多个分区的顺序。
2.如权利要求1所述的计算机可读介质,其特征在于所述方法还包括从第一图管理系统检索基础图;以及从第二图管理系统检索目标图;以及所述循环图包括所述目标图中不在所述基础图中的每一图元素。
3.如权利要求2所述的计算机可读介质,其特征在于,所述第一图管理系统包括已验证图管理系统。
4.如权利要求3所述的计算机可读介质,其特征在于,所述已验证图管理系统包括轻量级目录访问协议(LDAP)服务器。
5.如权利要求1所述的计算机可读介质,其特征在于,所述方法还包括创建所述具有所确定的串行化顺序的循环图的串行化;以及将所述循环图的串行化传递到图管理系统。
6.如权利要求5所述的计算机可读介质,其特征在于,所述循环图的串行化包括LDAP数据交换格式(LDIF)条目。
7.如权利要求1所述的计算机可读介质,其特征在于,所述串行化顺序对应于一图元素创建顺序。
8.如权利要求1所述的计算机可读介质,其特征在于,在所述串行化顺序中,所述第一分区的图元素在所述第二分区的图元素之前。
9.如权利要求1所述的计算机可读介质,其特征在于,所述串行化顺序还对应于所述循环图的非循环分量的图元素的顺序。
10.如权利要求9所述的计算机可读介质,其特征在于,所述循环图的非循环分量的图元素的顺序对应于所述循环图的非循环分量的深度优先步查。
11.如权利要求1所述的计算机可读介质,其特征在于为所述循环图的多个图元素确定所述串行化顺序包括为所述循环图的非循环分量的多个图元素确定一串行化顺序;以及所述循环图的非循环分量的多个图元素的每一个的串行化顺序对应于所述循环图的非循环分量的广度优先步查中所述图元素层。
12.如权利要求11所述的计算机可读介质,其特征在于所述循环图的非循环分量包括多个不相交的非循环图;以及所述循环图的非循环分量的广度优先步查遍历了所述多个不相交非循环图的每一个。
13.如权利要求1所述的计算机可读介质,其特征在于,所述循环图的已划分连接组被从所述循环图的多个连接中划分出来,以确定所述循环图的非循环分量。
14.如权利要求1所述的计算机可读介质,其特征在于,所述循环图的已划分连接组的每一连接是根据为所述连接所确定的权值从所述循环图的所述多个连接中选择的。
15.如权利要求1所述的计算机可读介质,其特征在于,所述方法还包括枚举所述循环图的至少一个回路;以及为所述循环图的至少一个连接的每一个确定一权值,为所述连接确定的权值是所述连接参与其中的图回路数的函数。
16.如权利要求15所述的计算机可读介质,其特征在于,所述连接参与其中的图回路数的函数包括所述连接参与其中的回路数的线性函数。
17.如权利要求1所述的计算机可读介质,其特征在于,所述方法还包括为所述循环图的多个连接的每一个确定一权值;以及划分出所述循环图的一最优加权连接。
18.如权利要求17所述的计算机可读介质,其特征在于,所述最优加权连接是最高加权连接。
19.如权利要求1所述的计算机可读介质,其特征在于所述循环图的每一连接与多个连接类别的至少一个相关联;所述多个连接类别包括多个已排序连接类别;以及划分所述循环图包括按顺序考虑所述多个已排序连接类别的每一个。
20.如权利要求1所述的计算机可读介质,其特征在于,所述方法还包括检测所述循环图的零个或多个强连接分量(SCC);以及如果检测到零个强连接分量,则从所述划分步骤开始前进。
21.如权利要求1所述的计算机可读介质,其特征在于所述循环图对应于一轻量级目录访问协议(LDAP)模式;以及所述串行化顺序对应于LDAP数据交换格式(LDIF)文件中的条目的顺序。
22.一种包括图同步组件的计算机化系统,所述图同步组件被配置成至少将具有多个图元素的循环图划分成多个分区,所述多个分区包括所述循环图的非循环分量;以及一组已划分连接;以及为所述循环图的多个图元素确定一串行化顺序,所述串行化顺序对应于所述多个分区的顺序。
23.如权利要求22所述的计算机化系统,其特征在于所述计算机化系统还包括管理基础图的第一图管理系统;以及管理目标图的第二图管理系统;所述图同步组件还被配置成至少从所述第一图管理系统检索所述基础图;以及从所述第二图管理系统检索所述目标图;以及所述循环图包括所述目标图中不在所述基础图中的每一图元素。
24.如权利要求23所述的计算机化系统,其特征在于,所述第一图管理系统包括已验证图管理系统。
25.如权利要求24所述的计算机化系统,其特征在于,所述已验证图管理系统包括轻量级目录访问协议(LDAP)服务器。
26.如权利要求22所述的计算机化系统,其特征在于,所述图同步组件包括一图同步图形用户界面(GUI),它使所述计算机化系统的用户至少能够调整图划分参数。
27.如权利要求22所述的计算机化系统,其特征在于,所述图同步组件能够被配置成用于多个操作模式,所述多个操作模式包括多个自动操作模式;以及一全自动操作模式。
28.如权利要求22所述的计算机化系统,其特征在于为所述循环图的多个图元素确定所述串行化顺序包括为所述循环图的非循环分量的多个图元素确定一串行化顺序;以及所述循环图的非循环分量的多个图元素的每一个的串行化顺序对应于所述循环图的非循环分量的广度优先步查中所述图元素层。
29.如权利要求22所述的计算机化系统,其特征在于,所述图同步组件还被配置成至少枚举所述循环图的至少一个回路;以及为所述循环图的至少一个连接的每一个确定权值,为所述连接确定的权值是所述连接参与其中的图回路数的函数。
30.如权利要求22所述的计算机化系统,其特征在于所述循环图对应于一轻量级目录访问协议(LDAP)模式;以及所述串行化顺序对应于LDAP数据交换格式(LDIF)文件中条目的顺序。
31.一种其上具有数据结构的计算机可读介质,所述数据结构包括一循环图的串行化,所述循环图具有多个图元素,所述循环图的串行化以一串行化顺序串行化了所述多个图元素,所述串行化顺序对应于所述循环图的多个分区的顺序,所述循环图的多个分区包括包括所述循环图的非循环分量的第一分区;以及包括所述循环图的一组已划分连接的第二分区。
32.如权利要求31所述的计算机可读介质,其特征在于所述循环图包括一目标图中不在一基础图中的每一图元素;所述基础图对应于由第一图管理系统管理的图;以及所述目标图对应于由第二图管理系统管理的图。
33.如权利要求32所述的计算机可读介质,其特征在于,所述第一图管理系统包括已验证图管理系统。
34.如权利要求33所述的计算机可读介质,其特征在于,所述已验证图管理系统包括轻量级目录访问协议(LDAP)服务器。
35.如权利要求31所述的计算机可读介质,其特征在于为所述循环图的多个图元素确定所述串行化顺序包括为所述循环图的非循环分量的多个图元素确定一串行化顺序;以及所述循环图的非循环分量的多个图元素的每一个的串行化顺序对应于所述循环图的非循环分量的广度优先步查中所述图元素层。
36.如权利要求31所述的计算机可读介质,其特征在于所述循环图的已划分连接组包括所述循环图的至少一个最优加权连接;以及所述循环图的连接的权值是根据所述连接参与其中的图回路数来确定的。
37.如权利要求31所述的计算机可读介质,其特征在于所述循环图对应于一轻量级目录访问协议(LDAP)模式;以及所述循环图的串行化包括LDAP数据交换格式(LDIF)条目。
全文摘要
循环图可被划分。该循环图的分区可包括该循环图的非循环分量和一组已划分连接。该循环图的分区可具有一特定顺序。该循环图的元素可用一特定的串行化顺序来串行化。该循环图的元素的串行化顺序可对应于该循环图的分区的顺序。该循环图的非循环分量的元素可在已划分连接组的元素之前被串行化。一种计算机系统可包括一图同步组件,它被配置成划分循环图并确定该循环图的元素的串行化顺序。该循环图的串行化以所确定的串行化顺序串行化该循环图的元素。
文档编号G06F17/30GK1700211SQ200510066829
公开日2005年11月23日 申请日期2005年4月21日 优先权日2004年5月21日
发明者D·加弗利洛夫 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1