CN100507908C - Method and system for graph analysis and synchronization - Google Patents

Method and system for graph analysis and synchronization Download PDF

Info

Publication number
CN100507908C
CN100507908C CN 200510066829 CN200510066829A CN100507908C CN 100507908 C CN100507908 C CN 100507908C CN 200510066829 CN200510066829 CN 200510066829 CN 200510066829 A CN200510066829 A CN 200510066829A CN 100507908 C CN100507908 C CN 100507908C
Authority
CN
China
Prior art keywords
plurality
cyclic graph
connection
graph
serialization
Prior art date
Application number
CN 200510066829
Other languages
Chinese (zh)
Other versions
CN1700211A (en
Inventor
D·加弗利洛夫
Original Assignee
微软公司
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
Priority to US57328804P priority Critical
Priority to US60/573,288 priority
Priority to US10/918,776 priority
Application filed by 微软公司 filed Critical 微软公司
Publication of CN1700211A publication Critical patent/CN1700211A/en
Application granted granted Critical
Publication of CN100507908C publication Critical patent/CN100507908C/en

Links

Abstract

循环图可被划分。 FIG cycle may be divided. 该循环图的分区可包括该循环图的非循环分量和一组已划分连接。 The partition may comprise a loop of FIG acyclic component of the cyclic graph and a set of the divided connector. 该循环图的分区可具有一特定顺序。 The loop may have a partition of FIG particular order. 该循环图的元素可用一特定的串行化顺序来串行化。 Elements of the cyclic graph serializing available a particular serialization order. 该循环图的元素的串行化顺序可对应于该循环图的分区的顺序。 Serialization order of the elements of the cyclic graph may correspond to the order of the partitions of the cyclic graph. 该循环图的非循环分量的元素可在已划分连接组的元素之前被串行化。 Elements of the acyclic component of the cyclic graph may be serialized before the elements connected to the divided groups. 一种计算机系统可包括一图同步组件,它被配置成划分循环图并确定该循环图的元素的串行化顺序。 A computer system may comprise a diagram of the synchronization component that is configured to divide the cycle diagram and determine the serialization order of the elements of the cyclic graph. 该循环图的串行化以所确定的串行化顺序串行化该循环图的元素。 Serialization of the cyclic graph in the determined serialization order of the elements of the cyclic graph serialization.

Description

第1/16页 Page 1/16

用于图分析和同步的方法和系统 A diagram and synchronization methods and systems

技术领域 FIELD

本发明一般涉及计算机系统,尤其涉及计算机系统数据结构的操纵。 The present invention relates generally to computer systems and more particularly relates to manipulate the data structures of the computer system. 背景技术 Background technique

许多有用的计算机系统应用程序结合了具有节点(即,顶点)和节点之间的连接(即,边)的图数据结构,例如,与网络、组织结构和数据库模式交互的计算 Many useful computer system applications in conjunction with the nodes (i.e., vertices) and the connection between the nodes (i.e., edge) of the data structure, e.g., interact with the network, the database structure and mode of calculation

机系统应用程序。 System applications. 结果,各种类型的图管理系统(GMS)变得越来越普及。 As a result, various types of management information system of (GMS) are becoming increasingly popular. 一种公用的GMS操作是在图管理系统内或之间的图复制,或更一般地是两个图的同歩。 A utility of FIG GMS operation is the replication or between a management system in the FIG., Or more generally with two ho FIG.

为本描述的目的,图管理系统可被归类成已验证图管理系统(VGMS)和未验证图管理系统。 For purposes of this description, FIG management system may be categorized into verified FIG Management System (VGMS) and unverified management system of FIG. 已验证图管理系统可在每一次图操纵操作之后验证所管理的图是否为有效状态。 FIG verified management system may verify after each managed FIG manipulation operation is a valid state in FIG. 例如,已验证图管理系统可禁止将导致连接到不存在的节点或将违反某些其它己配置图约束的图操纵操作。 For example, FIG verified management system may prohibit the lead connected to the node does not exist or to have some other configuration of FIG violate constraints FIG manipulation operations. 己验证图管理系统的示例包括某些轻量级目录访问协议(LDAP)服务器和结构化査询语言(SQL)服务器。 Figure management system has been verified examples include some of the Lightweight Directory Access Protocol (LDAP) server and Structured Query Language (SQL) server.

同步图时会导致困难的特定图约束是基础结构连接(或基础结构边)约束。 FIG particular FIG synchronization constraints cause difficulty is the infrastructure connection (or infrastructure edge) constraint. 基础结构连接是(在某些情况中,必须是)作为相关节点的创建的一部分所创建的连接。 Infrastructure is connected (in some cases, must be) created as part of the connection associated nodes created. 基础结构连接的示例包括LDAP模式类继承关系和用于定义对象和对象类的某些其它关系。 Exemplary infrastructure connections include LDAP schema class inheritance relationships and some other relationships used to define objects and classes of objects.

当将循环图(即,具有环路或回路的图)复制到己验证图管理系统时会产生问题。 When the cyclic graph (i.e., having a loop or loops of FIG) to cause problems when the management system has verified FIG. 例如,在不修改循环图的情况下,可能无法在已验证图管理系统中以避免尝试连接到尚未存在节点的顺序创建节点和相关联的基础结构连接。 For example, without modifying the cyclic graph may not be verified in FIG management system attempts to avoid the order to connect to the infrastructure node does not yet exist and create nodes associated connector. 如果已验证图管理系统禁止创建到不存在节点的连接,则它可能无法将循环图复制到已验证图管理系统。 If you have verified management information system of prohibition to create a connection node does not exist, then it may not be able to copy the map to cycle management system has been verified map.

图1示出了将简单的循环图100复制到示例己验证图管理系统时的问题。 Figure 1 shows a simple copy of the loop 100 to FIGS example has a problem management system verification FIG. 节点102和基础结构连接104需要节点106在它们被创建之前存在。 Infrastructure node 102 and node 106 requires connection 104 exist before they are created. 节点106和基础结构连接108需要节点110在它们被创建之前存在。 Node 106 and infrastructure nodes 110 requires the presence of 108 connector before they are created. 然而,节点110和基础结构连接112需要节点102在它们被创建之前存在。 However, the infrastructure node 110 and node 102 requires the presence of 112 connector before they are created. 结果,对于节点102、 106和110及 As a result, for a node 102, and 106 and 110

6其相关联的基础结构连接104、 108和112,没有避免尝试创建到尚未存在的节点的连接的创建顺序。 6 to its associated infrastructure connection 104, 108 and 112, there is no attempt to avoid the creation order to create a connection to a node not already exist. 可能无法将图100复制到已验证图管理系统。 100 may not be able to copy the chart to map management system has been verified.

实际上,图可以比图100复杂得多。 In fact, the map can be much more complicated than Figure 100. 由于各种连接类型,会产生进一步的问题。 Because each type of connection, will produce further problems. 除基础结构连接之外,可能有多种类别的连接,包括例如在必要时改变分类以实现复制和/或同步的连接。 In addition to infrastructure connection, there may be connected a variety of categories, including, for example, change the classification if necessary to achieve the connection or replication and / synchronization.

发明内容 SUMMARY

本节提出了本发明的某些实施例的简化概述。 This section presents a simplified summary of certain embodiments of the present invention. 本概述并非本发明的广泛综述。 This summary is not an extensive overview of the invention. 它并不意味着确定本发明的关键/决定性元素或描绘本发明的范围。 It does not mean that the present invention is to identify key / critical elements or to delineate the scope of the present invention. 其唯一的目的是以简化的形式提出本发明的某些实施例,作为以后给出的更详细描述的序言。 Its sole purpose is to present some simplified form embodiments of the present invention, as a prelude to the more detailed description presented later.

在本发明的一个实施例中,划分循环图。 In one embodiment of the present invention, the division cycle in FIG. 循环图的划分可包括循环图的非循环分量和一组已划分连接。 FIG division cycles may include acyclic component and a set of cyclic graphs the divided connector. 循环图的划分可以有特定的顺序。 FIG cycle may be divided in a specific order. 循环图的元素可用特定的串行化顺序来串行化。 FIG loop elements available specific serial order of serialization. 循环图的元素的串行化顺序可对应于循环图的划分顺序,例如,循环图的非循环分量的元素可以在已划分连接组的元素之前被串行化。 Serialization order of the elements of the cyclic graph may correspond to the cyclic graph partitioning sequence, e.g., a non-cyclic component elements of the cyclic graph may be serialized before the elements connected to the divided groups. 在本发明的一个实施例中,计算机系统包括一图串行化组件,它被配置成划分循环图,并确定循环图的元素的串行化顺序。 In one embodiment of the present invention, the computer system including a serializer FIG assembly, which is configured to divide the cycle chart and determine the serialization order of the elements of the cyclic graph. 在本发明的一个实施例中,循环图的串行化的确以确定的串行化顺序来串行化循环图的元素。 In one embodiment of the present invention, the cyclic graph does serialize serialized in order to determine the cyclic graph serializing the elements.

附图说明 BRIEF DESCRIPTION

尽管所附权利要求书以细节陈述了本发明的特征,然而当结合附图阅读以下详细描述时,可以最好地理解本发明及其优点,附图中: 图i是简单循环图的示意图; While the appended claims set forth in detail the features of the present invention, however, when the following detailed description read in conjunction with the accompanying drawings, the present invention may best be understood and the advantages thereof, the accompanying drawings in which: Figure i is a schematic diagram of a simple cyclic graph;

图2所示是可用于实现本发明的一个实施例的示例性计算机系统的示意图; 图3所示是依照本发明的一个实施例的示例高级计算机系统体系结构的示意 As shown in FIG. 2 is a schematic diagram of an exemplary embodiment of a computer system implementing the present invention; FIG. 3 is a schematic exemplary high-level architecture of a computer system in accordance with one embodiment of the present invention shown in FIG.

图; Figure;

图4所示是依照本发明的一个实施例的示例图同步组件的示意图; FIG. 4 is a schematic illustration showing an embodiment of the present invention in accordance with a synchronizing component;

图5所示是依照本发明的一个实施例用于同步两个图的示例步骤的流程图; FIG 5 is in accordance with one embodiment of the present invention, a flow chart of FIG synchronization example for two steps shown;

图6是示例非循环图的示意图; 图7是示例循环图的示意图; FIG 6 is a schematic diagram of an example acyclic graph; FIG. 7 is a schematic illustration of the cycle diagram;

图8所示是依照本发明的一个实施例用于划分图的示例步骤的流程图; 图9是另一示例循环图的示意图;图IO是又一示例循环图的示意图; FIG 8 is a flowchart shown in accordance with an embodiment of the steps for partitioning a graph of the present invention; FIG. 9 is a schematic diagram of another example cyclic graph; FIG IO is a schematic diagram of yet another example cyclic graph;

图11是依照本发明的一个实施例划分的示例图的示意图; 11 is a schematic view showing an example in accordance with an embodiment of the present invention, division of;

图12所示是依照本发明的一个实施例用于串行化图的示例步骤的流程图;以 FIG 12 is a flowchart illustrating the steps for the embodiment of FIG serialization according to one embodiment of the present invention shown; to

and

图13所示是依照本发明的一个实施例的示例图同步应用编程接口的框图。 As shown in FIG. 13 is a block diagram of an example of FIG programming interface in accordance with one embodiment of the present invention, the synchronization application.

具体实施方式 Detailed ways

在继续描述本发明的各个实施例之前,现在提供可在其中实施本发明的各个实施例的计算机的描述。 Before the description of various embodiments of the present invention, there is now provided which may be implemented in a computer description of the various embodiments of the present invention. 尽管并非所需,但本发明将在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。 Although not required, the invention will be described, such as program modules, being executed by computer instructions executed by a computer in a general context. 一般而言,程序包括例程、对象、 组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。 Generally, programs include routines, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. 此处所使用的术语"程序"可以意味着单个程序模块或共同运作的多个程序模块。 As used herein, the term "program" can mean a single program module or multiple program modules operate together. 此处所使用的术语"计算机"和"计算设备"包括电子地执行一个或多个程序的任何设备,包括 As used herein, the term "computer" and "computing device" includes any device that electronically executes one or more programs, comprising

个人计算机(PC)、手持式设备、多处理器系统、基于微处理器的可编程消费者电子设备、网络PC、小型机、图形输入板PC、膝上计算机、具有微处理器或微控制器的消费者电器、路由器、网关、集线器等等。 A personal computer (PC), handheld devices, multiprocessor systems, microprocessor-based programmable consumer electronics, network PC, minicomputers, tablet the PC, a laptop computer, a microprocessor or microcontroller consumer appliances, routers, gateways, hubs, and so on. 本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。 The present invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices linked through a communications network. 在分布式计算环境中,程序可以位于本地和远程存储器存储设备中。 In a distributed computing environment, programs may be located in both local and remote memory storage devices.

参考图2,示出了其中可实现本发明的各方面的计算机202的基本配置的示例。 Referring to Figure 2, there is shown an example in which the computer aspects of the invention may be implemented in the basic configuration 202. 在其最基本的配置中,计算机202通常包括至少一个处理单元204和存储器206。 In its most basic configuration, the computer 202 typically includes at least one processing unit 204 and memory 206. 处理单元204执行指令来实现依照本发明的各个实施例的任务。 The processing unit 204 executes instructions to implement various embodiments of the tasks in accordance with the present invention. 在实现这类任务时,处理单元204可将电信号发送到计算机202的其它部分和计算机202之外的设备以引起某些结果。 In carrying out such tasks, the processing unit 204 may transmit electrical signals to a device other than the computer 202 and other portions of the computer 202 to cause some result. 根据计算机202的确切配置和类型,存储器206可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。 Depending on the exact configuration and type of computer 202, memory 206 may be volatile (such as RAM), nonvolatile (such as ROM, flash memory, etc.) or some combination of the two. 这一最基本配置在图2中由虚线208内的组件示出。 This most basic configuration in FIG. 2 by those components within dashed line 208 is shown.

计算机202也可具有另外的特征/功能。 The computer 202 may also have additional features / functionality. 例如,计算机202也可包括另外的存储(可移动210和/或不可移动212),包括但不限于,磁盘、光盘或磁带。 For example, computer 202 may also include additional storage (removable 210 and / or non-removable 212) including, but not limited to, magnetic or optical disks or tape. 计算机存储介质包括以用于储存包括计算机可执行指令、数据结构、程序模块或其它数据的信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。 Computer storage media includes volatile storage include nonvolatile and any method or technology for a computer-executable instructions, data structures, program modules, or other data implemented, removable and non-removable media. 计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可W、ffl术1培4子尸/T别呈tl'、J憎赵升口J出1T异-个儿乂UZ W问tf'J1士一共匕丌乂贞。 Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or W, ffl a sub-culture technique corpse 4 / T was not tl ', J repellent ZHAO Sheng out port 1T iso J - height qe UZ W Q Disabled tf'J1 total dagger Ji Chen qe. 1士1口J込f^TT异个儿存储介质可以是计算机202的一部分。 Disabled 1 1 J f ^ TT includes the postage isobutyl height storage media may be part of computer 202.

计算机202较佳地还包含允许装置与其它计算装置,如(多个)远程计算机i 216进行通信的通信连接214。 The computer 202 preferably further comprises means allows with other computing devices, such as a (multiple) remote communication computers i 216 214 a communication connection. 通信连接是通信介质的一个示例。 A communication connection is an example of communication media. 通信介质通常包含诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。 Communication media typically comprise a carrier wave or other transport mechanism, such as a modulated data signal, computer readable instructions, data structures, program modules, or other data, and includes any information delivery media. 作为示例而非局限,术语"通信介质"包括无线介质,如声学、RF、红外和其它无线介质。 By way of example and not limitation, the term "communication media" includes wireless media such as acoustic, RF, infrared and other wireless media. 本发明使用的术语"计算机可读介质"包括计算机存储介质和通信介质。 The terms used in the present invention, "computer readable media" includes both computer storage media and communication media.

计算机202也可具有输入设备218,如键盘/小键盘、鼠标、输入笔、语音辅f 入设备、触摸输入设备等等。 The computer 202 may also have input device 218, such as a keyboard / keypad, mouse, pen, voice f the auxiliary device, touch input device, etc. 也可包括输出设备220,如显示器、扬声器、打印机等等。 It may also include an output device 220, such as a display, speakers, printer, and the like. 所有这些设备在本领域中是众所周知的,因此无需在此详细描述。 All these devices are well known in the art, and therefore need not be described in detail herein.

在以下描述中,将参考由一个或多个计算装置执行的行动和操作的符号表示来描述本发明,除非另外指明。 Action In the following description, made with reference to one or more computing devices and perform symbolic representations of operations of the present invention will be described, unless otherwise indicated. 由此,可以理解,这类行动和操作,有时称为计算机执行的,包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。 Accordingly, it is understood that such actions and operations are sometimes referred to, including manipulating the processing unit of the computer of electrical signals representing data in a structured form of computer-implemented. 这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,从而以本领域的技术人员都理解的方式重配置或改变了计算机的操作。 This converted data manipulation or location in memory system of the computer maintenance on it, so as to present art are appreciated in the art reconfiguration or change the operation of the computer. 维护数据的数据结构是存储器的物理位置,具有由数据的格式所定义的具体特性。 Data is maintained are physical locations of memory data structure having the specific characteristics defined by the format of the data. 然而,尽管在上述的上下文环境中描述本发明,它并不意味着限制,如本领域的技术人员所理解的,后文所描述的各种行动和操作也可以硬件实现。 However, although the invention has been described in the above context, it is not meant to be limiting, as those skilled in the art will appreciate that various actions and operations described hereinafter may also be implemented in hardware.

在本发明的一个实施例中,诸如计算机202的计算机系统包括一图同步组件, 以便于在图管理系统内和/或之间的图同步。 In one embodiment of the present invention, the computer system 202 comprises a computer such as a diagram of the synchronization component in order to synchronize in FIG FIGS management system and / or between. 具体地,图同步组件可以促进已验证图管理系统处的循环图的同步。 In particular, FIG synchronization component may facilitate the synchronization system of FIG verified circulation management at FIG. 图同步组件可以通过将每一循环图划分成包括非循环图和一组被称为己划分连接或己划分边的非基础结构连接的多个分区,来促进已验证图管理系统处的循环图同步。 FIG synchronization component may each cycle by dividing FIG comprises acyclic graph into a set of non-infrastructure and is referred to have been divided or partitioned edges connected to a plurality of partitions connected to facilitate management system of FIG verified at the loop in FIG. Synchronize. 已划分连接可以被理解为从循环图中"剪下"的连接组,以将循环图变换成非循环图,即,以将循环图简化成其非循环分量。 The divided connector may be understood from the drawing loop "cut" the group is connected to the circulating FIG into acyclic graph, i.e., the cycle in order to simplify FIG its acyclic component.

由图同步组件执行的循环图划分可以使得所得的非循环图具有满足与循环图相关的特定已验证图管理系统的一组己配置图约束的高可能性,例如,可以对非循环图确定图元素(即,节点和连接)创建顺序,使得由连接引用的每一节点的确在连接创建时存在。 Cyclic graph partitioning performed by the diagram of the synchronization component may be such that the resultant acyclic graph has a cycle diagram associated with satisfying specific verified FIG management system has set a high possibility that the configuration of FIG constraints, for example, may be determined acyclic graph of FIG. element (i.e., node and link) creation order, such that each node referenced by a connection does exist at the connection creation. 一旦在已验证图管理系统处建立了非循环图,可用相对较低的约束违反可能性来添加已划分连接,由此以相对较高的可能性在己验证图管理系统处实现了循环图的同步。 Once the acyclic graph in FIG verified management system, the available relatively low possibility to add a constraint violation has been divided, whereby a relatively high likelihood of achieving a cycle diagram in FIG verification system has managed at Synchronize. 闺3袖还」i仅照牟反明h'、」一t头她i列tf'」咼级Tr昇机条统棒矛、结佝。 The Inner Sleeve 3 also "i illuminated only against Ming Mu h ',' i a t her head column tf '' 咼 stage Tr helicopter lance article rod system, Koh junction. 仕图j屮, FIG. Shi j Cao,

图同步组件302与管理基础图306的已验证图管理系统304,以及管理目标图310 的图管理系统308交互。 FIG synchronization component 302 and management infrastructure 306 of FIG verified FIG interaction management system 308 304, and managed objects management system 310 of FIG. 图同步组件302、图管理系统308和已验证图管理系统可驻留在分开的计算机或单个计算机上(如图2的计算机202)。 FIG synchronization component 302, management system 308 and FIG verified FIG management system may reside on separate computers or a single computer (computer 202 in FIG. 2). 图管理系统308可以是已验证图管理系统,尽管它不必要如此。 FIG management system 308 may be verified FIG management system, although it is not necessary so. 在本发明的一个实施例中,图同步组件302可以被结合到图管理系统308和/或己验证图管理系统304中。 In one embodiment of the present invention, FIG synchronization component 302 may be incorporated into the system 308 of FIG management and / or management system has verified 304 in FIG. 在本发明的一个实施例中,基础图306和目标图310可由同一已验证图管理系统或由同一已验证图管理系统的不同版本来管理。 In one embodiment of the present invention, the base 310 in FIG 306 and FIG target verified by the same management system, or by the same FIG verified different versions of the management system to manage FIG. 尽管为了清晰性,图3示出了单个目标图310, 然而如本领域的技术人员所理解的,本发明的一个实施例可包括并处理多个目标图。 While for purposes of clarity, FIG. 3 shows a single target map 310, however, as appreciated by those skilled in the art, an embodiment of the present invention may comprise a plurality of targets and the processing of FIG.

图同步组件302可依照由已验证图管理系统304和图管理系统308分别施加的约束来创建、读、更新和删除基础图306和目标图310。 FIG synchronization component 302 may be created in accordance with the constraints 308 are applied by the management system 304 of FIG verified and management system, read, update and delete FIGS base 306 and the target 310 in FIG. 在本发明的一个实施例中,图同步组件302的一个任务是将基础图306与目标图310同步。 In one embodiment of the present invention, a task FIG synchronization component 302 is to synchronize with the base map 306,310 objectives FIG. 基础图306 可以是空图(即,没有节点和连接)。 FIG base 306 may be a null graph (i.e., no nodes and connections). 基础图306可包括目标图310的一个或多个节点和/或连接的副本或版本。 FIG base 306 may comprise one or more nodes 310 of FIG targets and / or a copy or version of the connection. 在同歩之后,目标是令基础图306至少具有目标图310的每一节点和连接的副本。 After the same ho, FIG objective is based at least 306 copies of each node and the connection to the target 310 of FIG. 图同步组件302的示例细节在下文参考图4来描述。 FIG synchronization component 302 in the exemplary details hereinafter be described with reference to FIG.

图4描述了依照本发明的一个实施例的示例图同步组件402。 FIG 4 depicts an exemplary embodiment in accordance with one embodiment of the present invention, the synchronization component 402. 图同步组件402 包括图管理系统(gms)通信404模块,它由图同步引擎406使用来与包含基本和目标图的图管理系统通信,如己验证图管理系统304 (图3)和图管理系统308。 FIG synchronized assembly 402 comprises FIG management system (GMS) communications 404 module, which communicate using FIG management system comprising a base and a target map and, as already verified FIG management system 304 (FIG. 3) and management system consists of a synchronization engine 406 308. 图管理系统通信404模块被明确地描述为包括用于向已验证图管理系统发送消息和从其接收消息的已验证图管理系统(vgms)发送408模块和己验证图管理系统接收410模块,以及用于向图管理系统发送消息和从其接收消息的图管理系统(gms)发送412模块和图管理系统接收414模块。 FIG communication management system module 404 are explicitly described as including a verified to FIG management system 408 and a transmission module to send messages and have received from the management system of FIG verification message management system of FIG verified (vgms) receiving module 410, and with to send a message to FIGS management system and a transmission module 412 and module 414 receives from the management system the received message management system of FIG. (gms). 图管理系统通信404模块可包括用于与包括其它图同步组件的任一合适类型的图管理系统进行通信的其它模块。 FIG communication management module 404 may include other modules for communicating with any suitable type of a management system of FIG synchronization include other components of FIG.

图同步引擎406可使用图管理系统通信404模块来请求和接收基础和目标图的副本。 FIG synchronization engine 406 may use the communication system of FIG management module 404 to request and receive copies of base and target graphs. 根据基础和目标图,图同步引擎406可创建工作图416。 According to the foundation and goal, and FIG synchronization engine 406 can create a work chart 416. 工作图416中的每一节点和连接可与一个或多个同步标签(如,数据字段)相关联,如,"在基础图中存在"标签、"图同步目录"标签、"图同步权值"标签、"已划分连接"标签和z或"串行化顺序"标签。 Each node is connected and the working graph 416 may be (e.g., data fields) associated, e.g., "on the basis of the presence of the drawing" label, "FIG synchronize directories" tab, "Synchronization FIG weights with one or more synchronization tags "tag," the divided connector "tab and z or" serialization order "tab. 每一图同步标签可以与一个或多个属性类型和值相关联。 Each of a synchronization tag may be associated with one or more attribute types and values. 作为管理图的结果,图同步组件402本身是一种类型的图管理系统。 As a result of the control chart, FIG synchronization component 402 is itself a type of management system of FIG. 图同步班1十4U2 口j bA定G貌址闺官埋乐统,1旦定仕込一'l肓饥r,出闺I叫EF狃件4UZ独刺t1、」 图约束通常是松弛的,以避免图同步组件402帮助解决的那种类型的图复制问题。 FIG synchronization classes 1 + 4U2 port j bA given G appearance access Gui official buried music system, 1 denier given Shi includes the postage a 'l blind hunger r, the Gui I called EF accustomed member 4UZ single stab t1, "Constraint normally loose, in order to avoid the type of diagram chart synchronization component 402 to help solve replication problems.

图同步引擎406可向工作图416的节点和连接分配图同步标签和图同步标签属性值。 FIG synchronization engine 406 may assign node and connection diagram of the synchronization and the synchronization tag attribute values ​​to the working tag 416 of FIG. 图同步引擎406可根据图同步标签的存在和/或属性值划分工作图416。 FIG synchronization engine 406 may be present and / or delineation FIG attribute values ​​416 according to the synchronization label. 图同步引擎406然后可从已划分的工作图416中为管理基础图306的已验证图管理系统304 (图3)创建图串行化418。 FIG synchronization engine 406 may then create 418 of FIG serialization manager 306 of FIG verified based management system 304 in FIG. (FIG. 3) from the divided operation 416 in FIG. 图串行化418可指定一图元素创建顺序,用于将已验证图管理系统304处的基本图306与目标图310同步。 FIG serialization 418 may specify a map element creation order for the basic FIG verified management system 304 of FIG. 306,310 synchronize with the target in FIG.

图串行化418可以用已验证图管理系统304 (图3)理解(即,能够进行语法分析)的格式储存。 FIG serialization 418 may format (i.e., syntax analysis can be performed) by the management system 304 of FIG verified (FIG. 3) stored understood. 或者,图管理系统通信404模块可以能够将图串行化418格式化成任一合适的图串行化格式。 Alternatively, the communication system of FIG management module 404 may be capable FIG serialized into any suitable format 418 of FIG serialization format. 合适的图串行化格式示例包括用于轻量级目录访问协议服务器的LDAP数据交换格式(LDIF),以及用于结构化查询语言服务器的结构化查询语言(SQL)脚本,这两者在本领域中都是众所周知的,无需在此详细描述。 Suitable example of FIG serialization formats include a Lightweight Directory Access Protocol server LDAP Data Interchange Format (the LDIF), and Structured Query Language (SQL) for structured query language server script, both in the present are well-known in the field, need not be described in detail.

图同步组件402还可包括一图同步图形用户界面(GUI) 420。 FIG synchronization component 402 may also include a graphical user interface of a synchronization (GUI) 420. 图同步图形用户界面可显示图同步组件402属性,例如,工作图416的节点和连接及其相关联的图同步标签、图同步引擎406的状态和进度、由图同步引擎406用于划分工作图416并创建图串行化418的参数、图串行化418以及图管理系统通信状态和参数。 FIG synchronization graphical user interface may display diagram of the synchronization component 402 attributes, for example, the working nodes and connections and FIG FIGS synchronization tag associated with the status and progress of a synchronization engine 416 to 406, the sync engine 406 of FIG. FIG work for dividing 416 and 418 create a map of the serial parameters, Figure serialization 418 and chart management system communication status and parameters. 图同步组件402属性可以用任一合适的图形表示来显示,例如,工作图连接可以用对应于其划分状态(即,已划分或未划分)和/或与连接相关联的图同步权值的颜 FIG synchronization component 402 attributes may be any suitable display a graphical representation, for example, showing the connection work can be divided corresponding to its state (i.e., the divided or partitioned) and / or the right in FIG sync value associated with the connection of color

色和/或加亮来显示。 Color and / or displayed highlighted.

计算机系统用户可使用图同步图形用户界面420来控制图同步组件402的操作。 The computer system user may be a user interface 420 to control the operation of FIG synchronization component 402 sync pattern of FIG. 具体地,计算机系统用户可调整图同步引擎406使用的参数和表达式,来自动地划分工作图416和/或手动地调整工作图416的划分。 In particular, the computer system user may adjust parameters and expressions FIG synchronization engine 406 used to automatically map into delineation 416 and / or manually adjust the work 416 of FIG. 诸如"轻微地剪除"和"严重地剪除"等高级划分设置可与低级划分参数一起呈现,其每一个都与一组低级划分参数相关联,以供用户选择。 Such as "slightly cut off" and "severely cut off" and the like may be presented with advanced division provided with a lower division parameters, each of which is divided into a lower and a set of parameters associated with, for user selection.

图同步组件402可以用全自动模式、部分自动模式和/或手动模式来执行。 FIG synchronization component 402 may be fully automatic mode, a partially automated mode and / or manual mode is performed. 在手动模式中,图同步组件402可令最大量信息对计算机系统用户可用,并主要响应于用户通过图同步图形用户界面420的输入来采取行动。 In manual mode, FIG synchronization component 402 may make a maximum amount of information available to the computer system user and take action primarily in response to user input through the graphical user interface of a synchronization 420. 在部分自动模式中,图同步组件402可主要显示概要级信息,并寻找用户对于诸如更新已验证图管理系统处的基础图等主要行动的批准。 In the partially automated mode, FIG synchronization component 402 may primarily display summary-level information and seek user approval for such as updating the system of FIG verified based management of the main operations of FIG. 在全自动模式中,图同步组件402可显示最少的信息, 如进度和/或状态,或者图同步图形用户界面在全自动模式中是不活动的。 In automatic mode, FIG synchronization component 402 may display minimal information such as progress and / or state, or in the graphical user interface of FIG automatic synchronization mode is not active.

11m r=ni H /,n /VL <八、丁"^rr +丫_ HEH P=1 ,卜m Atii工口i~i / at>t、 网日J_t rr^: mi白T口 11m r = ni H /, n / VL <eight, D "^ rr + Ah _ HEH P = 1, m Atii Bu ual i ~ i / at> t, network daily J_t rr ^: mi White T interface

图I口JZF5丑1十4UZ比KTt!if[i团l口J少/ArtJ柳《王f女wv/ir丄乂4zz。 FIG JZF5 ugly port I 1 + 4UZ! If [i port group is less than l KTt J / ArtJ Liu "Wang f Female wv / ir Shang qe 4zz. 図inj,/旦rrj柳/|'王接口422可使计算机系统组件能够配置和控制图同步组件402。 Chart inj, / denier rrj Liu / | 'Wang interface 422 allows computer system components to configure and control the synchronization component 402 of FIG. 依照本发明的一个实施例的示例图同步应用编程接口在下文参考图13更详细地描述。 According to an exemplary embodiment of the present invention, FIG synchronization application programming interface described in more detail below with reference to FIG. 13.

图5描述了依照本发明的一个实施例用于同步两个图的示例步骤。 FIG 5 depicts an embodiment of the present invention in accordance with an exemplary steps for synchronizing two graphs. 例如,图5 的歩骤可以由图4的图同步组件402来执行。 For example, FIG. 5 ho step may be synchronized assembly 402 of FIG. 4 is performed. 在步骤502,可检索基础图的副本。 In step 502, it can retrieve a copy of the base of FIG. 例如,图同步引擎406可以请求并接收图3的基础图。 For example, FIG synchronization engine 406 may request and receive base 3 of FIG. 在步骤504,可检索目标图的副本。 In step 504, a copy of the target graph may be retrieved. 例如,图同步引擎406可请求并接收目标图310。 For example, FIG synchronization engine 406 may request and receive the target 310 in FIG.

在步骤506,可创建工作图416 (图4)。 At step 506, it may create a working graph 416 (FIG. 4). 例如,图同步引擎406可用目标图310 (图3)的每一节点和连接例示工作图416。 For example, the synchronization engine 406 of FIG. FIG available target 310 (FIG. 3) of each node and connection 416 illustrated in FIG work. 此时也可发生工作图416的节点和连接的加标签。 At this time, work and tagged connection graph node 416 may also occur. 例如,目标图310中所存在的也存在于基础图306中的图元素可以在工作图416中被加标签为"在基础图中存在"。 For example, the target 310 in FIG present also present in the base element of FIG. FIG. 306 may be tagged as "present on the basis of the figure" 416 in the working FIG.

在步骤508,工作图416 (图4)可被划分成多个分区,包括非循环分量和一组已划分连接。 In step 508, the working graph 416 (FIG. 4) may be divided into a plurality of partitions including an acyclic component and a set of the divided connector. 被加标签为"在基础图中存在"的图元素也可作为已划分来处理, 或者从工作图416中移除。 FIG element is tagged as "present on the basis of the figures" may also be used as the divided processed or removed from the work 416 in FIG. 依照本发明的一个实施例用于划分工作图416的示例步骤在下文参考图8更详细地描述。 According to one embodiment of the present invention showing an example of work for dividing step 416 is described in more detail below with reference to FIG.

在步骤510,可对已划分工作图416的图元素确定图串行化顺序。 At step 510, may determine the divided working element 416 of FIG. FIG serialization order. 工作图416 划分可具有一种顺序,并且图串行化顺序可以对应于工作图416划分的顺序,例如, FIG partitioning work 416 may have a sequential, and FIG serialization order may correspond to the order of division of the working graph 416, e.g.,

按图串行化顺序,非循环分量的图元素可以在已划分连接之前到来。 A serial sequence diagram of FIG acyclic component elements may be coming before the divided connector. 工作图416 分区中的图元素可具有一串行化顺序,例如由与节点和/或连接相关联的"串行化顺序"标签指定的顺序。 FIG working element 416 of FIG partitions may have a serialization order, for example the order specified by the node and / connector associated "serialization order" or label. 在步骤512,可通过以确定的图串行化顺序串行化工作图416的图元素来从工作图416创建图串行化418。 At step 512, may be created from the working graph 416 by element 416 of FIG. FIG serialization order to determine a serialization operation map 418 of FIG serialization. 在本发明的一个实施例中,确定图串行化顺序与创建图串行化418是一个整体。 In one embodiment of the present invention, FIG determined serialization order of FIG create serialization 418 as a whole. 依照本发明的一个实施例用于创建图串行化418的示例步骤在下文参考图12更详细地描述。 According to one embodiment of the present invention for creating a serialization FIG example of step 418 described below in more detail with reference to FIG.

在步骤514,图串行化418 (图4)可被上传(即,传递)到已验证图管理系统304 (图3)。 In step 514, FIG serialization 418 (FIG. 4) may be uploaded (i.e., transmitted) to the management system 304 of FIG verified (FIG. 3). 已验证图管理系统304可常规地处理上传的图串行化,以用目标图310节点和连接来更新基础图306。 FIG verified management system 304 may conveniently be uploaded FIG serialization process, to update the base map 306 in the target node 310 and is connected to FIG. 在本发明的一个实施例中,作为已验证图管理系统304对上传的图串行化的常规处理的结果,基础图306变得与目标图310 同步。 In one embodiment of the present invention, as a result verified FIG uploaded management system 304 of FIG serial processing routine, FIG base 306 becomes synchronized with the target 310 in FIG.

在更详细描述工作图416 (图4)划分和串行化之前,描述依照本发明的一个实施例的示例划分和串行化策略是有益的。 In the more detailed description of the working graph 416 (FIG. 4) before partitioning and serialization, an example partitioning and serialization strategy in accordance with an embodiment of the present invention is advantageous. 图6描述了一个示例有向非循环图600, 它具有七个节点602、 604、 606、 608、 610、 612和614,以及六个连接616、 618、 6 depicts an example directed acyclic graph 600 having seven nodes 602, 604, 606, 608, 610, 612 and 614, and six connection 616, 618,

12620、 622、 624和626。 12620, 622, 624 and 626. 节点604和606分别用连接616和618从节点602连接出来。 Nodes 604 and 606 respectively 616 and 618 is connected from node 602 is connected. 节点608和610分别用连接620和622从节点604连接出来。 Nodes 608 and 610 respectively 620 and 622 is connected from node 604 is connected. 节点612和614 分别用连接624和626从节点606连接出来。 Nodes 612 and 614 respectively 624 and 626 is connected from node 606 connected to it. 非循环图600是一种树型图,但是该树图类型不是必要的约束,例如,如果节点612也直接从节点602连接出来,则图600将仍是非循环的。 Acyclic graph 600 is a tree diagram, but the tree graph type is not necessary constraints, for example, if node 612 is also connected directly from node 602, then the graph 600 will still be acyclic. 另外,尽管本申请中描述的每一示例图包括有向连接(即, "连接到" 一个节点或从一个节点"连接出"的连接,而非简单地连接两个节点的连接),然而如本领域的技术人员所理解的,本发明的实施例不必如此限制。 Further, each of the example of FIG Although the present description includes application to the connection (i.e., "connected to" or a node from a node "out of connection" connection, rather than simply two connection nodes), but such Those skilled in the art will appreciate, embodiments of the present invention is not necessarily so limited.

如果连接616、 618、 620、 622、 624和626的每一个是基础结构连接(即, 连接616作为节点604的创建的一部分而创建,连接618作为节点606的创建的一部分而创建,连接620作为节点608的创建的一部分而创建,等等),并且约束是不可以创建到不存在节点的连接,则在图600的可能节点和连接创建顺序中,仅某些是有效的。 If the connection 616, 618, 620, 622, 624 and 626 each of which is an infrastructure connection (i.e., connection 616 as part of the node creation 604 is created, the connection 618 as part of the node creation 606 is created, the connection 620 as part of creating the created node 608, etc.), and the constraint is not possible to create a connection node does not exist, the node 600 in FIG possible to create order and connected, only some are valid. 例如,节点604和连接616可能无法在节点602之前创建。 For example, the nodes 604 and 616 are connected may not be created before node 602. 类似地, 节点608和连接620可能无法在节点604之前创建。 Similarly, the connecting node 608 and 620 may not be created before node 604. 然而,例如, 一旦创建了节点602,则若干后续的有效节点创建顺序是可能的,包括节点604之后节点606之后节点608,或者节点604之后节点608之后节点606,或者节点606之后节点604 之后节点608,等等。 However, for example, once created 602, then several subsequent valid node creation order is possible, the node after the node 608 after 608 or the node 604 node 606 then includes a node 604 then node 606, or node after the node 604 node after 606 608, and so on.

图600的有效节点创建顺序(以及任一合适的非循环图)可以通过依照图600 的常规广度优先步查中从合适的根节点开始的广度优先层归类节点来确定。 FIG create a valid node 600 in order (and any suitable acyclic graph) may be determined by a breadth-first search step preferentially layer collation from a suitable root node in accordance with a conventional start of breadth 600 of FIG. 例如, 图600的合适的根节点可以通过从任意的节点开始下行图600到节点602来确定。 For example, a suitable root node of graph 600 may be determined by beginning from any downstream node 600 to node 602 in FIG. 如果图600的节点602是广度优先步查的第一层,则节点604和606在第二层,而节点608、 610、 612和614在第三层。 If node 600 of FIG. 602 is a first layer of breadth-first search step, the node 604 and the second layer 606, and node 608, 610, 612 and 614 in the third layer. 给定这一归类,有效节点创建顺序可以通过 Given this classification, valid node creation order by

在较后广度优先层节点之前安排较前的广度优先层节点的创建来构造。 Before later breadth-first-tier nodes arranged to construct than create a breadth-first-tier nodes before. 例如,在图600的情况下,有效节点创建顺序可以通过首先安排节点602的创建,然后安排节点604和606的创建(以任何顺序),然后安排节点608、 610、 612和614的创建(以任一合适的顺序)来确定。 For example, in the case of FIG 600, the valid node creation order may be by first arrangement creates node 602 and then arrange the nodes 604 and 606 to create (in any order), and then arrange the nodes 608, 610, 612 and 614 to create (in a any suitable order) is determined.

然而,并非每个图都是非循环的。 However, not every acyclic graphs are. 图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)。 7 depicts an example directed cyclic graph 700 having the nodes acyclic graph 600 (FIG. 6) 602, 604, 606, 608, 610, 612 and 614, and a connection 616, 618, 620, 622, 624, and 626, and further connected to node 602 from node 614 to 702, it creates 700 in FIG circuit or loop (i.e., from node 602 to node 606 to node 614 and then back to node 602). 如果连接702是可划分的(如,是非基础结构连接,或能够成为非基础结构连接),则将连接702从图700中划分出来可将循环图700简化成非循环图 If the connection 702 is divided (e.g., a non-infrastructure connected or can be connected to a non-infrastructure), 702 700 divided out of the cycle may FIG connector 700 will be reduced to FIG acyclic FIG.

13OUU。 13OUU. %、乂口Kl旭;iiL乂ij7r还t安W^i泪W、^1问'K^乂3F1泪W、刀'里WU ,》J 丁1泪知1、囟/0l» 乂、J 非循环图600)、如上文参考图6所描述的对非循环分量确定有效节点和连接创建顺序、然后将已划分的连接追加到节点和连接创建顺序(己划分连接可以用任一合适的顺序来追加),来确定循环图700 (以及任一合适的循环图)的有效节点和连 %, Qe port Kl Xu; IIL qe ij7r further t Ann W ^ i tears W, ^ 1 Q 'K ^ qe 3F1 tears W, knife' in WU, "J Ding a tear-known one, halogen / 0l» qe, J acyclic graph 600), determining the effective nodes described above with reference to FIG. 6 for the acyclic component and a connection creation order, and then the divided connected sequentially added to the nodes and connections in order of creation (already divided connector may be any suitable to append), to determine the cyclic graph 700 (and any suitable cyclic graph) of the active nodes and is connected

接创建顺序。 Then the order of creation.

图700可通过划分包括连接618、连接626和连接702的多个连接的一个或多个来简化成非循环图。 FIG. 700 may include a connection by dividing 618, a plurality of connector 702 and the connector 626 connected to one or more acyclic simplified FIG. 从特定的循环图中划分出哪一或哪些连接取决于各种因素, 如该连接是否可划分、该连接如何被归类、以及通过划分该连接打破的图回路数。 FIG divided from a specific cycle which is connected, or out of which depends on various factors, such as whether the connection is divided, how the connection is classified, and the number of connections by dividing break the circuit of FIG. 例如,如果连接618和连接702是基础结构连接,而连接626不是,则连接626 可以被选中用于划分,而不是选择连接618或连接702。 For example, if the connector 618 and the connector 702 is an infrastructure connection 626 is not connected, the connection 626 may be selected for partitioning rather than selecting connector 618 or connector 702. 如果划分一个特定连接比另一连接打破了更多的图回路(即,该连接参与了更多的图回路),则可选中打破更多图回路的连接优于其它连接,用于划分。 If the split ratio of a specific connection to break the connection to another circuit of FIG more (i.e., involved in the connection circuit of FIG more), may be selected to break the circuit connection diagram more than other connections, for dividing. 例如,如图所示,图700的连接618、 626和702的每一个参与单个回路。 For example, as shown in FIG 700 is connected to 618, 626 and 702 involved in each individual circuit. 然而,如果有从节点610.到节点614的另外的连接,则连接702参与两个图回路,而连接702可被选中优于图700的其它连接, 用于划分。 However, if the node 610. Also connected to node 614, the connection 702 in FIG participation two circuit 702 may be connected to other connections than in FIG selected 700 for partitioning.

描述了示例划分和串行化策略之后,现在更详细地描述用于划分工作图416 (图4)的示例步骤。 Having described an example partitioning and serialization strategy, example steps for partitioning the working graph 416 (FIG. 4) will now be described in more detail below. 图8描述了依照本发明的一个实施例用于划分工作图416的示例步骤。 FIG 8 depicts an embodiment of the present invention in accordance with an exemplary steps for partitioning the working graph 416. 在步骤802,例如,可通过将连接与一个或多个图同歩标签相关联,向一个或多个图同步类别分配工作图416的一个或多个连接。 In step 802, for example, by connecting to one or more associated with the FIG ho tag, a synchronization category assignment operation map 416 or more connections to one or more of FIG. 图同步类别可以适用于任一合适类型的图,例如"可划分连接"和"基础结构连接"。 FIG synchronization categories may be applicable to any suitable type of FIG, for example, "can be divided into connected" and "infrastructure connection." 图同步类别也可以对特定类型的图是特定的。 FIG synchronization categories may also be particular to a particular type of FIG. 例如,如果工作图416表示轻量级目录访问协议(LDAP) 模式,则合适的图同步类别包括"可能的上级连接"和"系统可能上级连接"。 For example, if the working graph 416 represents a lightweight directory access protocol (LDAP) mode, FIG suitable synchronization categories include "may be connected on the upstream" and "system may be connected on the upstream."

在步骤804,可检测图4的工作图416的强连接分量(SCC)(不包括每一已划分的连接)。 At step 804, strongly connected components may work detecting FIG. 416 of FIG. 4 (the SCC) (each of the divided connector is not included). 如本领域的技术人员明白的,图的强连接分量是最大子图,其中, 每一节点可从每一其它子图节点到达。 As those skilled in the art will appreciate, FIG strongly connected component is the largest subgraph, wherein each node reachable from each other subgraph node. 可将任一合适的强连接分量(SCC)检测算法结合到本发明的实施例中。 You can be any suitable strongly connected component (SCC) detection algorithm is incorporated into embodiments of the present invention. 合适的常规强连接分量检测算法示例包括在本发明的附录A中。 Suitable examples of conventional strongly connected component detection algorithm is included in Appendix A of the present invention. -' - '

在本发明的一个实施例中,图对于图的每一强连接分量具有至少一个回路。 In one embodiment of the present invention, FIG circuit having at least one for each strongly connected component of FIG. 在步骤806,可核查工作图416 (图4)中的强连接分量的计数。 In step 806, the count 416 in FIG verification strongly connected components (FIG. 4). 如果强连接分量的计数为零,则在本发明的一个实施例中,不包括每一己划分连接的工作图4'16 是非循环的,并且同步过程可以前进到例如图同步步骤,如图5的步骤510。 If the count of strongly connected components is zero then, in one embodiment of the present invention, the work does not include acyclic 4'16 FIG been divided every connection, and the synchronization procedure may proceed to the step of synchronizing FIG e.g., FIG. 5 step 510. 如果 in case

14强连接分量的计数大于零,则可能需要更多的连接划分,并且过程可以前进到步骤 Count 14 strongly connected component is greater than zero, the connection may need more divided, and the process may proceed to step

808。 808.

在步骤808,可枚举图4的工作图416 (不包括每一己划分连接)的回路。 In step 808, the work can be enumerated FIG. 4 FIG. 416 (each division does not comprise hexyl) loop. 对于工作图416的每一连接,可以为连接参与其中的图回路数保持一计数。 For each connection the working graph 416, the circuit of FIG number may be involved holding a count of connection. 例如,计数可作为与该连接相关联的图同步标签的属性来储存。 For example, count is an attribute of a synchronization tag associated with the connection to storage. 在回路枚举期间可以递增该计数,或者在回路枚举之后从回路枚举数据中计算该计数。 The count may increment circuit during enumeration or calculated from the count data enumeration loop circuit after enumeration.

在本发明的一个实施例中,具有一个或多个强连接分量的图的回路可以用修改的深度优先步查从合适的根节点开始枚举。 In one embodiment of the present invention, having one or more strongly connected components of the circuit of FIG enumeration can check from a suitable root node starts with a modified depth-first step. 例如, 一个或多个强连接分量的任一节点可以是合适的根节点。 For example, any one or a plurality of strongly connected components of a node may be a suitable root node. 对常规深度优先步查的修改包括步查的对象要访问连接而非节点,并且所访问的回路被记录以帮助避免对回路的重复计数。 Conventional modified depth priority search step of recording comprises the step search circuit connection instead of an object to be accessed node and accessed to help avoid double counting of the loops. 示例图将有助于回路枚举细节的描述。 Figure example will help to describe the details of the enumeration loop.

图9描述了一个示例有向循环图900,它具有五个节点902、卯4、 906、 908 和910,以及八个连接,标记为A、 B、 C、 D、 E、 F、 G禾口H。 9 depicts an example directed cyclic graph 900 having five nodes 902, d 4, 906, 908 and 910, and eight connector, labeled A, B, C, D, E, F, G Hekou H. 节点902用连接A 连接到节点904。 Node 902 is connected to node 904 is connected with the A. 节点904分别用连接B和C连接到节点906和908。 Node 904 B and C are respectively connected to nodes 906 and 908 connected to the. 节点906分别用连接D和E连接到节点902和910。 Nodes 906 and 902 are respectively connected to the node 910 connecting D and E. 节点908分别用连接F和G连接到节点906和910。 Node 908 connected to node 906 and connection 910 F and G. 节点910用连接H连接到节点902。 Node 910 is connected to node 902 is connected with the H. 图900最初作为单个强连接分量来检测。 FIG originally 900 as a single strongly connected component is detected.

从节点902开始,深度优先歩查可通过连接A前进到节点904,然后通过连接B前进到节点906,然后通过连接D回到节点902,由此标识了第一回路ABD。 Starting from the node 902, the depth-first search through the ho proceeds to connecting node A 904, and then proceeds to connecting node B 906, and then back to the node D 902 by the connection, thereby identifying the first loop ABD. 从节点906开始的下一选择可以是连接E通往节点910,然后通过连接H回到节点902,由此标识了第二回路ABEH。 The next choice from node 906 may start connection gateway node E 910, and then back to the node 902 via connection H, thereby identifying the second circuit ABEH. 从节点904开始的下一选择可以是连接C通往节点908,然后连接F通往节点906,然后通过连接D回到节点卯2,由此标识了第三回路ACFD。 Selecting a next node 904 may be connected to the starting node C leads 908, and then connected to access node F 906, and then back to the node D through the connection sockets 2, thereby identifying a third circuit 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个图回路,等等)。 The remaining circuit ACFEH ACGH and may be similarly enumerated, connection A B, C, D, E, F, G and H respectively to give a total count circuit 5, 2, 3, 2, 2, 2, 1 Wo Jie 3 (i.e., connection A circuit involved in FIG. 5, FIG. 2 connecting circuits involved in B, C participate in connection to FIG 3 circuit, and the like).

图IO描述了一个示例有向循环图1000,它具有六个节点1002、 1004、 1006、 1008、 1010禾n 1012,以及七个连接,被标记为J、 K、 M、 N、 P、 Q和R。 FIG IO describes an example directed cyclic graph 1000 having six nodes 1002, 1004, 1006, 1008, 1010 Wo n 1012, and seven connections are labeled J, K, M, N, P, Q, and R. 在图1000中,节点1002分别用连接J和K连接到节点1004和1006。 In FIG 1000, a node 1002 is connected to node 1004 and 1006 is connected with the J and K. 节点1004用连接M连接到节点1008,而节点1006用连接N连接到节点1008。 Node 1004 is connected to node 1008 connecting M, with the node 1006 is connected to node 1008 connecting N. 节点1008用连接P连接到节点IOIO,节点1010用连接R连接到节点1012,而节点1012用连接Q连接回到节点1008。 Node 1008 is connected to the connection node P IOIO, node 1010 is connected to node 1012 is connected with R, and node 1012 connected to the connection back to the node Q 1008. 图1000的节点1008、 1010和1012及其相关联的连接作为站入P兄二iir 4念z\县Tt?:払、、純1 勺:二I 1bK比:i文刀里^NK伙U o FIG 1000 node 1008, 1010 and 1012 and their associated connections as both the inbound read iir 4 P brother two Z \ County ,, Tt ?: partial payment spoon pure 1: two I 1bK ratio: I described in the knife partner U ^ NK o

在以与上述相对于图900(图9)描述的类似方式从节点1002开始执行图1000 的深度优先步查时,可能用回路来枚举两条路径,即JMPRQ禾n KNPRQ,其每一个包含回路PRQ。 When in a similar manner as described above with respect to FIG. 900 (FIG. 9) described starts from node 1000 executes 1002 the depth-first search step, the circuit may be used to enumerate two paths, i.e. JMPRQ Wo n KNPRQ, each of which comprises loop PRQ. 然而,在本发明的一个实施例中,图1000的连接P、 Q和R的每一个的回路计数为1。 However, in one embodiment of the present invention, showing the connection of the P 1000, a loop count of each of Q and R 1. 例如,可通过在随后枚举的回路中识别序列PRQ,并防止对序列重复的相关联回路计数的递增,避免对连接P、 R和Q的重复计数。 For example, it can be identified by sequence PRQ in subsequently enumerated loop, and to prevent incrementing of the sequence repetition count associated circuits, to avoid the connection P, R and Q repeat count.

返回到图8,在步骤808枚举了工作图416 (图4)的回路之后,过程可前进到步骤810。 After returning to FIG. 8, step 808 in FIG enumerating work 416 (FIG. 4) of the circuit, the process may proceed to step 810. 在步骤810,可对工作图416的连接的每一个(不包括每一已划分的连接)确定图同步权值。 In step 810, a connection may be determined for each of the working graph 416 (each of the divided connector is not including) FIG synchronization weights. 例如,特定连接的图同步权值可以等于在步骤808中对连接确定的回路计数,或等于对连接的回路计数的线性变换,如乘数和/或正或负偏移,或等于对连接的回路计数的非线性变换,如回路计数的指数函数。 For example, FIG synchronization weight for a particular connection may be equal to the loop count at step 808 to determine connection or equal to the linear transformation circuit connected to the counter, such as multipliers and / or positive or negative offset, or equal to the connection non-linear conversion circuit count, loop count as an exponential function. 每一连接的 Each connection

确定的图同步权值可以储存在与连接相关联的图同步标签中。 FIG synchronization weights may be stored in the determination of a synchronization tag associated with the connection.

每一图同步类别可具有相关联的回路计数变换,用于为该图同步类别中的连接确定图同步权值。 Each category may have a circuit diagram of the synchronization count conversion associated weights for determining a synchronization for a connection diagram of FIG synchronization category. 例如,第一图同步类别可以与第一线性回路计数变换相关联, 第二图同步类别可以与第二线性回路计数变换相关联,第三图同步类别可以与非线性回路计数变换相关联。 For example, a first category may be associated synchronizing FIG transformation of a first linear counting circuit, the second FIG synchronization category may be associated with a second linear transformation counting circuit, a third diagram of the synchronization category may be associated with a non-linear transformation circuit count. 图同步权值可以跨图同步类别进行比较,或者可以仅在相关联的图同步类别中进行比较,例如,为确定最优图同步权值的目的所进行的比较。 FIG synchronization weights can be compared across FIG synchronization category, or can be compared only in FIG synchronization associated with a category, for example, comparison to determine optimal weights for synchronization purposes in FIG performed.

在步骤812,可从工作图416 (图4)中划分出最优加权的连接。 In step 812, the optimal weighting can be divided into a connection from the working graph 416 (FIG. 4). 工作图416 Figure 416 work

的最优加权的连接可以是具有最高确定的图同步权值的连接,或者具有最低权值的连接,或者具有最接近于诸如零等目标图同步权值的确定权值的连接。 Optimal weighting connection may be synchronized with the highest weights of FIG determined, or has the lowest connection weights, the connection or having a value closest to a target weight synchronizing FIG such as zero or the like to determine the weights. 另外,为使 In addition, to make

被认为是最优加权的,可要求确定的图同步权值在一最小阈值之上,或低于一最大阈值,或在指定的图同步权值范围之内。 Is considered to be the best weighted, may require synchronization of the weights on a graph to determine the minimum threshold, or below a maximum threshold, or within a range of a synchronization of the weights assigned. - -

.在将工作图416 (图4)的每一连接考虑为最优加权的连接的候选者并用于划分的同时,可将最优加权的连接的候选者限于一个或多个特定连接类别,例如,候选者可被限于非基础结构连接。 In the working graph 416 (FIG. 4) of each connection considered candidates for connection for optimum weighting of the divided and simultaneously, optimal weighting can be candidates for connection are connected is limited to one or more specific categories, e.g. , candidates may be restricted to non-infrastructure connection. 另外,连接图同步类别可具有一种顺序,如连续的顺序,并且可对候选连接考虑每一连接图同步类别。 The connection diagram of the synchronization category may have a different order, such as sequential order, and may be connected to each of the candidate connections to consider synchronization categories FIG. 连接图同步类别可被部分地排序。 FIG connector synchronization categories may be partially ordered. 如果例如在考虑每一连接图同步类别之前已找到了一个合适的最优加权的连接,则一个顺序中的每一连接图同步类别不需要被考虑。 If, for example considerations have found a suitable optimally weighted connections connected FIG synchronization before each category is a connection diagram of each synchronization sequence categories need not be considered. 如果与类别内的连接相关联的图同步权值可以跨类别进行比较,则可同时考虑多个连接图同步类别。 If the connection associated with FIG intraclass synchronization weights can be compared across categories may be considered simultaneously connected to a plurality of synchronization categories FIG. 例如, 如果在考虑了候选连接的每一连接图同步类别之后没有找到合适的最优加权连接, 并且图同步组件402被配置成准许连接图同步类别改变,则可改变连接的图同步类sii f日n 舌主^iti米、 For example, no suitable optimally weighted connections if after considering each of the candidate connections connected FIG synchronization categories, and FIG synchronization component 402 is configured to permit connection of a synchronization category changes, synchronization classes can be changed in FIG connected sii f day n m ^ iti main tongue,

可通过将"已划分的连接"图同步标签与连接相关联,或添加或更新某一其 May be prepared by "the divided connector" FIG synchronization tag associated with the connection, or adding or updating some of its

它合适的图同步标签或其它合适的划分指示符,从工作图416 (图4)中划分出最优加权连接。 Other suitable FIG synchronization tag or other suitable partitioning indicator, divided from the working graph 416 (FIG. 4) in the optimal weighted connections. 在从工作图416中划分出最优加权连接之后,过程可返回到步骤804, 以检测工作图416的任何剩余的强连接分量,并在需要时划分更多的连接。 After partitioning the optimally weighted connections from the working graph 416, the process may return to step 804 to detect any remaining strongly work FIG connected components 416, and divided more connections when needed. 从工作图416中划分出的该组连接可以是将工作图416简化成其非循环分量所需的最小已划分连接组。 Partitioned from the working graph 416 may be connected to the set 416 of FIG simplified work into a desired non-cyclic component connected to the minimum of the divided group.

现在更详细地描述用于串行化已划分工作图416 (图4)的示例步骤。 Example steps for serializing the divided working graph 416 (FIG. 4) will now be described in more detail below. 一个示例图将有助于描述串行化细节。 FIG example will help describe a serialization details. 图11描述了依照本发明的一个实施例划分的示例工作图1100 (己划分的连接未示出)。 FIG 11 depicts an example of division in accordance with a working embodiment of FIG embodiment of the present invention, 1100 (connection not shown already divided). 图1100包括三个不相交的非循环分量。 FIG acyclic component 1100 includes three disjoint. 第一非循环分量包括四个节点1102、 1104、 1106和1108。 A first acyclic component includes four nodes 1102, 1104, 1106 and 1108. 第二非循环分量包括六个节点lllO、 1112、 1114、 1116、 1118和1120。 The second component comprises a non-cyclic six nodes lllO, 1112, 1114, 1116, 1118 and 1120. 第三非循环分量包括四个节点1122、 1124、 1126和1128。 The third acyclic component includes four nodes 1122, 1124, 1126 and 1128.

图12描述了依照本发明的一个实施例用于串行化图1100 (图11)的示例步骤。 Figure 12 depicts example steps for serializing FIG embodiment 1100 (FIG. 11) in accordance with one embodiment of the present invention. 在步骤1202,可选择图1100的合适的先前未访问的根节点。 In step 1202, a suitable selectable FIG previously unvisited root node 1100. 例如,图1100 的合适的根节点可以通过从图1100的任意(先前未访问的)节点开始下行图1100 到节点1102、 1110或1122之一来确定。 For example, a suitable root node of the graph 1100 can be from any node of the graph 1100 (previously unvisited) started down, or one of FIGS. 11101122 1100 node 1102 to be determined. 在步骤1204,如上文参考图6进一步描述的,可用从选择的根节点开始的非循环分量的广度优先步查来确定与所选择的根节点相关联的非循环分量中每一节点的广度优先层。 In step 1204, as described above with reference to FIG. 6 described further, available acyclic component from the selected root node of the breadth-first search step to determine the breadth of the acyclic component associated with the selected root node of each node in the priority Floor. 例如,在广度优先步査期间, 广度优先层可被储存在与节点相关联的"串行化顺序"标签的属性中。 For example, during the breadth-first search step, a breadth-first level may be stored in the attribute "serialization order" tag associated with the node.

在某些图中(如,图11的图iioo),可能无法从单个根节点开始遍历该图(即, In certain figures (e.g., FIG. 11 iioo), may not be traversing the drawing from a single root node (i.e.,

访问该图的每一节点)。 Each access node in the graph). 在步骤1206,可判断在步骤1204的步查期间是否已访问了图1100的每一节点。 In step 1206, it may be determined during step 1204 to check whether the step has visited each node 1100 of FIG. 如果已访问了图1100的每一节点,则确定了图1100中每一节点的广度优先层,并且串行化过程可前进到步骤1208。 If each node visited FIG 1100, it is determined that the breadth-first layer of each node in FIG. 1100 and the serial process may proceed to step 1208. 如果尚未访问图1100 的一个或多个节点,则在本发明的一个实施例中,过程返回到歩骤1202,以选择另一合适的根节点用于另一广度优先步查。 If one or more nodes not visited FIG 1100, in one embodiment of the present invention, the process returns to step 1202 ho, to select another suitable root node for another breadth-first search step. 在本发明的一个实施例中,合适的根节点的候选者被限于没有来自其它节点的流入(inbound)连接的节点,这可使用常规的图操作来确定。 In one embodiment of the present invention, a suitable root node candidate is not limited to inflow from other nodes (inbound) connections, which may be used to determine operation of the conventional FIG. 步查可以继续,直到访问了图iioo的每一节点。 Further investigation may continue until each node visited diagram of iioo.

在步骤1208,可通过依照步骤1204中确定的其广度优先层列出图1100的节点和连接,开始从已划分的工作图1100 (图11)中创建图串行化418 (图4)。 In step 1208, which may be determined by a breadth-first layer 1100 of FIG lists the nodes and connections, and begin to create FIG serialization 418 (FIG. 4) from the divided work FIG 1100 (FIG. 11) in accordance with step 1204. 向图串行化418列出图IIOO的节点和连接可包括列出图IIOO的节点和连接的已验证 418 listed in FIG IIOO serialization graph nodes and the connections may include those listed in FIG IIOO nodes and connections verified

17图管理系统304 (图3)所理解的创建、读、更新和/或删除命令。 17304 (Figure 3) Figure understood to create management systems, read, update and / or delete commands. 例如,可以如下向图串行化418列出图1100的节点和相关联的连接:节点1102、 lllO和1122(以任一合适的顺序),然后节点1104、 1106、 1112、 1114、 1124和1126 (以任一合适的顺序)及其相关联的连接,然后节点1108、 1116和1128 (以任一何时的顺序) 及其相关联的连接,并且然后节点1118和1120 (以任何顺序)及其相关联的连接。 For example, the following can be listed in FIG serializer 418 and associated connection node 1100 of FIG: nodes 1102, lllO and 1122 (in any suitable order), then nodes 1104, 1106, 1112, 1114, 1124 and 1126 (in any suitable order) and their associated connections, and nodes 1108, 1116 and 1128 (when in either order) and its associated connector, and then nodes 1118 and 1120 (in any order) and its associated connector.

在步骤1210,可以用任一合适的顺序向图串行化418 (图4)列出图1100 (图11)的已划分连接。 In step 1210, it may be any suitable sequence to FIG serialization 418 (FIG. 4) are listed in FIG 1100 (FIG. 11) of the divided connector. 在步骤1210之后,在本发明的一个实施例中,图串行化418 的确包含适用于将基础图306 (图3)和目标图310同步的图串行化,并且同步过程可前进到已验证管理系统上传步骤,如图5的步骤514。 After step 1210, in one embodiment of the present invention in FIG serialization 418 it does contain a base adapted to FIGS. 306 (FIG. 3) and a target 310 of FIG. FIG synchronous serialization and synchronization process may proceed to verified management system upload step, step 514 in FIG. 5.

图13描述了依照本发明的一个实施例的示例图同歩应用编程接口1300。 FIG 13 depicts an example application programming interface with ho 1300 in accordance with one embodiment of the present invention. 图同步应用编程接口1300包括设置划分参数1302元素、获取划分参数1304元素、划分图1306元素、串行化图1308元素和同步图1310元素。 FIG synchronization application programming interface 1300 includes a set partitioning parameters 1302 element, division parameter acquisition element 1304, element 1306 of FIG divided, element 1310 and element 1308 serialization graph synchronization FIG. 每一应用编程接口元素1302、 1304、 1306、 1308和1310可包括一个或多个接口规范,它们指定了计算机系统可用来配置、控制图同步组件402 (图4)和/或与其交互的方式。 Each application programming interface element 1302, 1304, 1306, 1308 and 1310 may include one or more interface specifications that specify the configuration of the computer system may be used to control the FIG synchronization component 402 (FIG. 4) and / or to interact with it. 如本领域的技术人员明白的,接口规范可包括函数调用规范、程序对象规范、诸如请求/响应消息对等消息规范、和/或任一其它合适的编程接口规范。 As those skilled in the art will appreciate, the interface specifications may include function call specifications, program object specifications such as request / response message specification peer message, and / or any other suitable programming interface specification.

设置划分参数1302应用编程接口元素可使计算机系统组件能够设置由图同步组件402 (图4)在划分工作图416时所使用的一个或多个划分参数。 Set punctuating parameters 1302 application programming interface element allows the computer system components can be provided in one or more divided when dividing the working parameters used by the graph 416 in FIG synchronization component 402 (FIG. 4). 接口规范参数可包括连接图同步类别(已排序和未排序的),与每一连接图同步类别相关联的回路计数变换、关于图同步权值是否可在连接图同步类别内或跨连接图同步类别比较的指示符、用于确定诸如目标权值等最优图同步权值以及最大和最小权值阈值的准则、以及关于指定的类别中的连接是否可被重新归类到指定的其它类别的指示符。 Interface specification parameters may include a connection diagram of the synchronization categories (ordered and unordered), connected with each category in FIG synchronous conversion circuit counts associated weights to whether the synchronization map may connect in FIG synchronization category or across FIG synchronization connection category comparison indicator, such as the criteria for determining the optimal weights sync FIG target weight and the like, and the maximum value of the minimum weight threshold, and whether the connection of the specified categories may be re-categorized to specified other categories indicator. 例如,与每一连接图同步类别相关联的回路计数变换可被指定为简单的乘法和偏移(对于线性变换),它具有定义诸如常规电子表格应用程序或常规编程语言所使用的那些字符串的表达式,或具有任一合适的变换规范。 For example, the loop count associated with each connection diagram of the synchronization category may be specified as a simple conversion multiplication and offset (for linear transformation), which has defined those strings such as conventional spreadsheet applications or conventional programming language used expression, or with any suitable transformation specification.

获取划分参数1304应用编程接口元素可使计算机系统组件能够检索由图同步组件402使用的一个或多个划分参数。 Get partitioning parameters 1304 application programming interface element allows the computer system components to retrieve one or more parameters used by dividing the synchronization component 402 in FIG. 获取划分参数1304元素的接口规范参数可包括关于检索哪些划分参数的指示符,以及诸如等待和超时标志等并行编程(多线程)行为说明符。 Partitioning parameters 1304 element acquisition interface specification parameters may include an indicator as to which partitioning parameters to retrieve as well as wait and timeout flags and other parallel programming (multithreaded) behavior specifiers.

划分图1306应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例由图同步组件402来划分图。 FIG divided 1306 application programming interface element allows the computer system components prepared from the synchronization component 402 of FIG. FIG divided in accordance with one embodiment of the present invention is capable of. 接口规范参数可包括要划分的图。 Interface specification parameters may include a partition to FIG. 例如,图的已 For example, FIG been

18划分连接可具有与其相关联的"己划分连接"图同步标签。 Dividing connection 18 may have associated therewith "divided connector has" FIG synchronization label.

串行化图1308应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例由图同步组件402串行化图。 Serialization graph 1308 application programming interface element assembly to cause a computer system embodiment 402 of FIG. FIG serial synchronization component in accordance with an embodiment of the present invention. 接口规范参数可包括要串行化的图,以及期望的串行化类型。 Interface specification parameters may include serialization to the map, and the type of serialization desired. 例如,串行化的图可提供为节点和连接的已排序列表,或者对包?舌诸如节点和连接创建命令等合适的LDAP数据交换格式(LDIF)元素的LDIF文件的引用。 For example, FIG serialization may be provided as nodes and links sorted list or packet? Tongue connection such as nodes and create commands suitable LDIF file LDAP Data Interchange Format (LDIF) a reference element.

同步图1310应用编程接口元素可使计算机系统组件能够依照本发明的一个实施例来同步图。 FIG synchronization application programming interface element 1310 allows computer system components in accordance with one embodiment of the present embodiment is possible to synchronize the invention FIG. 接口规范参数可包括对基础和目标图的引用。 Interface specification parameters may include references to base and target graphs. 例如,图引用可包括对图管理系统的引用,如网络主机名或统一资源定位器(URL)、以及诸如字母数字字符串或全局唯一标识符(UUID)等图名。 For example, reference may include a reference to FIG. FIG management system, such as a network host name or a uniform resource locator (the URL), such as a string of alphanumeric characters and or globally unique identifier (UUID), etc. FIG name.

在每一引用都个别且特别地被指示为通过引用结合于此并按其整体来陈述的 In each of the references individually and specifically indicated to be incorporated by reference herein in its entirety to press the stated

相同意义上,此处所引用的所有参考,包括出版物、专利申请和专利,都通过引用结合于此。 The same meaning, all references cited herein, including publications, patent applications, and patents, are incorporated herein by reference.

在描述本发明的上下文中(尤其是所附权利要求书的上下文中),术语"一"、 "一个"、"该"和类似对象的使用被解释为覆盖单数和多数,除非此处另外指明或与上下文明显相抵触。 In the context of the description of the present invention (especially in the context of the appended claims), the terms "a", "an", "the" and similar referents used to be construed to cover both the singular and the most, unless otherwise indicated herein or clearly contradicted by context. 术语"由……组成"、"具有"、"包括"和"包含"被解释为开放端口术语(即,意味着"包括但不限于"),除非另外指明。 The term "consisting of ......", "having", "including" and "comprising" is interpreted as an open port terms (i.e., meaning "including, but not limited to,") unless otherwise indicated. 此处对值范围的引用仅作为对落入该范围内的每一单独的值的个别提及的一种速记方法,除非此处另外指明,并且每一单独的值被结合到本说明书中,如同它被个别地引用一样。 Here the only reference of the range of values ​​as a shorthand method as mentioned in each separate value falling within the range of the individual, unless otherwise indicated herein, and each separate value is incorporated into the specification, as it is referenced as individually. 此处所描述的所有方法可以用任一合适的顺序来执行,除非此处另外指明或与上下文明显相抵触。 All methods described herein can be used in any suitable order, unless otherwise indicated herein or clearly contradicted by context. 此处所提供的任一和所有示例,或者示例性语言(如,"诸如") 的使用仅为了更好地阐明本发明,并非对本发明的范围施加限制,除非另外声明。 Any one provided herein and all examples, or exemplary language (e.g., "such as") is intended merely to better illuminate the invention and does not pose a limitation on the scope of the invention unless otherwise claimed. 本说明书中没有任何语言应当被解释为表明任何未要求保护的元素对本发明的实施是必需的。 No language in the specification should be construed as indicating any non-claimed element of the embodiment of the present invention is required.

此处描述了本发明的较佳实施例,包括发明人已知用于实现本发明的最佳模式。 Herein described preferred embodiments of the present invention, including the best mode known to the inventors for implementing the present invention. 基于阅读以上描述,本领域的技术人员可以清楚这些较佳实施例的变异。 Upon reading the foregoing description, one skilled in the art can clearly preferred variant embodiment of the embodiment. 发明人期望本领域的技术人员在适当时采用这些变异,并且发明人期望本发明可以用此处特别描述的之外来实施。 The inventors expect skilled artisans to employ such variants, when appropriate, and the inventors of the present invention desirable than specifically described herein may be implemented. 因此,本发明包括申请法律所准许的所附权利要求书中所陈述的主题的所有修改和等效技术方案。 Thus, the themes set forth all modifications and equivalents of the invention include application permitted by law in the appended claims. 此外,上述元素在其所有可能的变异中的任一组合由本发明包含在内,除非此处另外指明或与上下文明显相抵触。 Moreover, any combination of the above-described elements in all possible variations of the present invention included, unless otherwise indicated herein or clearly contradicted by context. 附录A 找出有向图中的强分量 Appendix A to find a strong component of FIG.

有向图G的强分量S是G中尽可能大的强连接子图。 S strong G component G to FIG as large as possible is strongly connected subgraph. S口,如果G的任何其它节点或边被添加到51,则它将不再是强连接的。 S port, if any other edge of the node G is added to, or 51, it will no longer be strong connection. 如果对于任何两个顶点"和v,冇一从顶点"到顶点v的有向路径(同时也有从顶点v到顶点"的有向路径),则冇向图是强连接的。本算法能找出图的所有有向分量。 If for any two vertices "and v, Nuisance a from the vertex" to vertex v directional path (also available as a directed path from a vertex v to vertex "), the Nuisance the graph is strongly connected to this algorithm can find showing all of the components have.

本算法可用于交通工程师的道路系统模型,它具有由有向边表示的单向街迈, 以及对应于顶点"和v的交汇点之间由两条有向边(M, v)和(w, w)表示的双向街道。 决定当一条街道因修路而被除去时整个道路系统是否可达的问题等效于确定在删除了适当的边之后该图是否为强连接的。见结尾处的注释可找到完成这一H标的史简单的算法。 The system model of the present road traffic engineer the algorithm can be used, which has a directed edge represented by a one-way street step, and between the vertices corresponding to "v and the intersection of the two sides have a (M, v) and (w , w) represented two-way street. when the decision is removed due to a street road up the entire road system is equivalent to the problem of determining see deleted at the end of the appropriate side after the figure whether it is a strong connection Notes can be found through a simple algorithm that H history of the subject.

本算法基于找出有向回路(其中第一个顶点等于最后一个顶点,但没有其它重复顶点的有向闭合路径)。 This algorithm has to find circuit (where the first vertex is equal to the last vertex, but no other repetitive vertex directed closed path). 有向回路是强连接的,因为从任一节点开始可跟随该回路到达任一其它节点。 There is a strong connection to the circuit, since the start of the loop can be followed from any node to reach any other node. 可以此方式找出所有的分量,因为择分量中的任意两个顶 You can find all the components in this way, because any two components in the top selection

点"和v在从"到v的有向路径以及随后从顶点v回到顶点:"的有向路径形成的有 Points "and from v" to v and are then returned from the vertex v to vertex path: "path are formed to have

向回路上。 Back on the road.

1. 初始设置: 1. Initial settings:

a. 其某些或所有边都为有向的图/有向图。 a. some or all sides are directed in FIG / directed graph. 用两条有向边(",v)和(v,")辨换任一无向边(",v)。从任一顶点s处开始。 With two directed edge ( ", v) and (v,") identified a transducer according to any undirected edges ( ", v). S from the beginning at each vertex.

b. 分量被储存在集合A, &, &,......中 b. component is stored in the set A, &, &, ...... in

2. 迭代 2. Iteration

a. 从s进行改进深度优先査找(包括后向跟踪),创建遵循边方向的杏 a. s improve the depth-first search (including the tracking back), following the direction of creating apricot

找路径。 To find the path. 每次将顶点v添加到查找路径中,然;fe检查在该查找路径上 Each vertex v is added to the search path, then; Fe checked to find the path

是否已有从v指向顶点w的边(由此检测有向IU路)。 Has there been a vertex point v w edges (IU passage to thereby detect).

b. 如果检测到有向回路C,则将C的节点和边如下添加到分量集合&之一中(保持DFS查找路径不变): b If the circuit detects a C, C nodes and edges will be added to the following components in one set & (DFS search path remains unchanged):

■如果C没有与任何先前定义的集合&的住何节点公用的节点, ■ If C does not live any set of nodes where & previously defined common node,

则将c的节点和边放在新集合&中,或者, ■ 如果C具有只与一个先前定义的&公用的节点,则将c的节点和边添加到该集合&,或者, C nodes and edges will be placed in the new & collection, or, ■ if the common node C has & only one previously defined, c nodes and edges will be added to the collection &, or,

■如果c具有与两个或多个先前定义的&公用的节点,则将所有 ■ If the common node & c has two or more previously defined, then all

这些合并成它们之-一,并将c的节点和逊添加到该集合。 These are combined into the - a, and the node c to the collection and Johnson. ■回到部分(a)并继续深度优先查找。 ■ Back to section (a) and continue to the depth-first search.

c.当深度优先査找终止(由于它后向跟踪到起始哲点5并且没有更多的 c. When the depth-first search is terminated (due to its backward track to the starting point Tetsuya 5 and no more

查找是可能的)时,则 Find is possible), then

■如果访问了所有的节点(在&之一中),则到总结,或者• 选择一未访问的节点,称它为s,它是riFs的新起始节点,并到上述的部分2(a)。 ■ If all access nodes (one &), then to a summary, or • a non-selected access node, called s, it is a new start node riFs and to said part 2 (a ).

3 • 总结- 3 • Summary -

找到的每一单独的集合是强连接分量(也参阅结尾处的注释)。 Each individual set is found strongly connected components (also see the note at the end).

注释: Comment:

(a) 该算法在节点不包含在任何有向回路中时将单^^节点标识为强分量。 (A) the algorithm does not contain any node will have a strong component of the single loop when ^^ is a node identifier.

(b) 连接两个不同的强分量&的节点的那些边将不包瞎在任一&中(因此在这一情况下,合并所有的强分量不创建原始的有向图)。 Those edges (b) two different strongly connected components & nodes will not included in either & blind (and therefore in this case, all of the strong components are not combined to create the original directed graph).

(c) 为解决道路工程师的问题,可使用更简单的算法;。 (C) To address the problem of road engineers can use a simpler algorithm;. 该问题是检杏当移除一条有向边(",力(表示单向街道)时,强连接有向图(表乖道路系统)仍是强连接的。为此,从w开始并进行不使用边(w,v)的改进深度优先查找。如果在此査找中找到顶点v,则它仍是强连接的。 This problem is the subject of apricot removed when a directed edge ( "force (represented by one-way streets), the strongly connected digraph (Table good road system) are still strongly connected to this end, and does not start from the w improved depth using an edge (W, v) of the first search. If you find a vertex v in this lookup, it is still strongly connected.

21 twenty one

Claims (27)

1. 一种用于图同步的方法,包括:从第一图管理系统检索基础图;从第二图管理系统检索目标图;基于基础图和目标图创建循环图,所述循环图包括所述目标图中不在所述基础图中的每一图元素;将具有多个图元素的所述循环图划分成多个分区,所述多个图元素包括多个节点和多个连接,所述多个分区包括:包括所述循环图的非循环分量的第一分区;以及包括所述循环图的一组已划分连接的第二分区;以及为所述循环图的多个图元素确定一串行化顺序,所述串行化顺序对应于所述多个分区的顺序。 FIG. 1. A method for synchronizing, comprising: retrieving from a first management information system of FIG base; from the second search target management system of FIG FIGS; FIG target base view and FIG create a loop, the loop comprising the basis of FIG. FIG certain elements of the drawing are not each base figure; FIG loop having a plurality of the elements of FIG divided into a plurality of partitions, the plurality of nodes and a plurality of map elements comprising a plurality of connectors, said plurality partition comprising: a first partition of the cyclic acyclic graph component; and a second partition comprising a set of the divided connecting the cyclic graph; and determining a plurality of serial elements of the cyclic graph in FIG. of the order, the serialization order corresponding to the order of the plurality of partitions.
2. 如权利要求l所述的方法,其特征在于,所述第一图管理系统包括已验证图管理系统。 2. A method as claimed in claim l, wherein said first system comprises a verified graph manager management system of FIG.
3. 如权利要求2所述的方法,其特征在于,所述己验证图管理系统包括轻量级目录访问协议LDAP服务器。 The method according to claim 2, characterized in that said management system comprises hexyl verification FIG Lightweight Directory Access Protocol (LDAP) server.
4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 创建所述具有所确定的串行化顺序的循环图的串行化;以及将所述循环图的串行化传递到所述第一图管理系统。 4. The method according to claim 1, wherein said method further comprises: creating a serialization of the cyclic graph having the determined serialization order; and serialization of the cyclic graph transmitted to the first management system in FIG.
5. 如权利要求4所述的方法,其特征在于,所述循环图的串行化包括LDAP 数据交换格式LDIF条目。 5. The method according to claim 4, wherein the cyclic graph serialization formats include LDAP data interchange LDIF entry.
6. 如权利要求l所述的方法,其特征在于,在所述串行化顺序中,所述第一分区的图元素在所述第二分区的图元素之前。 6. The method according to claim l, wherein, in the serialization sequence, prior to the first element of FIG. FIG element in the second partition of the partition.
7. 如权利要求l所述的方法,其特征在于,所述串行化顺序还对应于所述循环图的非循环分量的图元素的创建顺序。 7. The method according to claim l, wherein the serialization order further corresponds to the order of creation map elements of the acyclic component of the cyclic graph.
8. 如权利要求7所述的方法,其特征在于,所述循环图的非循环分量的图元素的创建顺序对应于所述循环图的非循环分量的深度优先步查。 8. The method according to claim 7, characterized in that, to create a sequence diagram of elements of the acyclic component of the cyclic graph corresponds to a depth-first search step acyclic component of the cyclic graph.
9. 如权利要求l所述的方法,其特征在于:为所述循环图的多个图元素确定所述串行化顺序包括为所述循环图的非循环分量的多个图元素确定一串行化顺序;以及所述循环图的非循环分量的多个图元素的每一个的串行化顺序对应于所述循环图的非循环分量的宽度优先步查中所述图元素层。 9. The method according to claim l, wherein: determining a plurality of elements of the cyclic graph in FIG serialization sequence comprising a plurality of said map elements of the acyclic component of the cyclic graph is determined as a string row of the sequence; and a serialization order for each of a plurality of elements of FIG acyclic component of the cyclic graph corresponds to the width of the acyclic component of the cyclic graph in FIG element layer priority check step.
10. 如权利要求9所述的方法,其特征在于: 所述循环图的非循环分量包括多个不相交的非循环图;以及所述循环图的非循环分量的宽度优先步查遍历了所述多个不相交非循环图的每一个。 10. The method according to claim 9, wherein: the acyclic component of the cyclic graph comprises a plurality of disjoint acyclic graphs; and the width of the acyclic component of the cyclic graph of the priority of the traversed search step each of said plurality of disjoint acyclic graph.
11. 如权利要求1所述的方法,其特征在于,所述循环图的已划分连接组被从所述循环图的多个连接中划分出来,以确定所述循环图的非循环分量。 11. The method according to claim 1, wherein the cyclic graph is partitioned from the plurality of said connection groups are partitioned from the cyclic graph to determine the acyclic component of the cyclic graph.
12. 如权利要求1所述的方法,其特征在于,所述循环图的已划分连接组的每一连接是根据为所述连接所确定的权值从所述循环图的所述多个连接中选择的。 12. The method according to claim 1, wherein the cyclic graph is divided into groups each connection is connected from the cycle diagram according to said plurality of said connection weights determined value selected.
13. 如权利要求l所述的方法,其特征在于,所述方法还包括: 枚举所述循环图的至少一个回路;以及为所述循环图的至少一个连接的每一个确定一权值,为所述连接确定的权值是所述连接参与其中的图回路数的函数。 13. The method according to claim l, wherein said method further comprises: enumerate at least one cycle of the circuit of FIG.; And determining a weight of each of the at least one connection for the cyclic graph, the connection weights are determined as a function of the number of connections involved in the circuit of FIG therein.
14. 如权利要求13所述的方法,其特征在于,所述连接参与其中的图回路数的函数包括所述连接参与其中的回路数的线性函数。 14. The method according to claim 13, wherein said function of the number of connections involved in the connection circuit comprises FIG involved a linear function of the number of loops.
15. 如权利要求l所述的方法,其特征在于,所述方法还包括: 为所述循环图的多个连接的每一个确定一权值;以及划分出所述循环图的一最优加权连接。 15. The method according to claim l, wherein said method further comprises: determining a weight for each of the plurality of cycles to FIG connected; and divided into an optimum weight of the cyclic graph connection.
16. 如权利要求15所述的方法,其特征在于,所述最优加权连接是最高加权连接。 16. The method according to claim 15, wherein the optimally weighted highest weighted connections connected.
17. 如权利要求l所述的方法,其特征在于: 所述循环图的每一连接与多个连接类别的至少一个相关联; 所述多个连接类别包括多个已排序连接类别;以及划分所述循环图包括按顺序考虑所述多个已排序连接类别的每一个。 17. The method according to claim l, wherein: at least one associated connecting each of said plurality of connection with FIG cycle categories; a plurality of connection categories include a plurality of connection categories ordered; and division FIG comprising the circulation of the plurality of sequentially ordered consideration of each connection category.
18. 如权利要求l所述的方法,其特征在于,所述方法还包括: 检测所述循环图的零个或多个强连接分量SCC;以及如果检测到零个强连接分量,则从所述划分步骤开始前进。 18. The method according to claim l, wherein said method further comprises: detecting the cyclic graph zero or more strongly connected components of the SCC; and if the detected zero strongly connected components from the said dividing step begins to advance.
19. 如权利要求l所述的方法,其特征在于: 所述循环图对应于一轻量级目录访问协议LDAP模式;以及所述串行化顺序对应于LDAP数据交换格式LDIF文件中的条目的顺序。 19. The method according to claim l, wherein: the cyclic graph corresponds to a Lightweight Directory Access Protocol LDAP schema; and the serialization order corresponding to the LDAP Data Interchange Format LDIF file entry order.
20. —种计算机系统,包括: 管理基础图的第一图管理系统; 管理目标图的第二图管理系统; 图同步组件,所述图同步组件被配置成至少:从所述第一图管理系统捡索所述基础图; 从所述第二图管理系统检索所述目标图;基于基础图和目标图创建循环图,所述循环图包括所述目标图中不在所述基础图中的每一图元素;将具有多个图元素的循环图划分成多个分区,所述多个分区包括:所述循环图的非循环分量;和一组已划分连接;以及为所述循环图的多个图元素确定一串行化顺序,所述串行化顺序对应于所述多个分区的顺序。 20. - kind of computer system, comprising: a first base management system for managing FIG diagram; FIG second management system for managing a target graph; FIG synchronization component, the diagram of the synchronization component configured to at least: the first from FIG management FIG picking system cable to the base; FIG retrieve the target from the second graph management system; FIG create a circular base and a target based on FIG view the circulating FIG comprising the target figure is not the base in each of FIG. a map element; FIG loop having a plurality of map elements into a plurality of partitions, the plurality of partitions comprising: an acyclic component of the cyclic graph; and a plurality of the divided; and a plurality of the cyclic graph FIG determining a serial number of elements order, the serialization order corresponding to the order of the plurality of partitions.
21. 如权利要求20所述的计算机系统,其特征在于,所述第一图管理系统包括已验证图管理系统。 21. The computer system according to claim 20, wherein the management system comprises first to FIG verified management system of FIG.
22. 如权利要求21所述的计算机系统,其特征在于,所述已验证图管理系统包括轻量级目录访问协议LDAP服务器。 22. The computer system according to claim 21, wherein the verified FIG LDAP server management system includes a Lightweight Directory Access Protocol.
23. 如权利要求20所述的计算机系统,其特征在于,所述图同步组件包括一图同步图形用户界面GUI,它使所述计算机化系统的用户至少能够调整图划分参数。 23. The computer system according to claim 20, wherein said assembly comprises a synchronous FIG FIG synchronization graphical user interface the GUI, which allows a user of the computerized system can be adjusted at least punctuating parameters FIG.
24. 如权利要求20所述的计算机系统,其特征在于,所述图同步组件能够被配置成用于多个操作模式,所述多个操作模式包括:全自动操作模式;部分自动模式;手动模式。 24. The computer system according to claim 20, wherein said synchronization component can be configured to FIG plurality of operating modes, said plurality of operation modes comprising: a mode of automatic operation; partially automated mode; Manual mode.
25. 如权利要求20所述的计算机系统,其特征在于:为所述循环图的多个图元素确定所述串行化顺序包括为所述循环图的非循环分量的多个图元素确定一串行化顺序;以及所述循环图的非循环分量的多个图元素的每一个的串行化顺序对应于所述循环图的非循环分量的宽度优先步查中所述图元素层。 Determining the serialization order determining a plurality of map elements including acyclic component of the cyclic graph into a plurality of elements of the cyclic graph in FIG: 25. The computer system of claim 20, wherein serialization order; and a serialization order for each of the plurality of elements of FIG acyclic component of the cyclic graph corresponds to the width of the acyclic component of the cyclic graph in FIG element layer priority check step.
26. 如权利要求20所述的计算机系统,其特征在于,所述图同步组件还被配置成至少-枚举所述循环图的至少一个回路;以及为所述循环图的至少一个连接的每一个确定权值,为所述连接确定的权值是所述连接参与其中的图回路数的函数。 And each of said at least one loop of FIG connection; at least one loop of the cyclic graph enumeration - 26. The computer system according to claim 20, wherein said synchronization component is further configured to FIG least determining a weight, the weight determined for the connection is involved in the connection function of the number of loops which FIG.
27. 如权利要求20所述的计算机系统,其特征在于-所述循环图对应于一轻量级目录访问协议LDAP模式;以及所述串行化顺序对应于LDAP数据交换格式LDIF文件中条目的顺序。 27. The computer system according to claim 20, characterized in that - the cyclic graph corresponds to a Lightweight Directory Access Protocol LDAP schema; and the serialization order corresponding to the LDAP Data Interchange Format LDIF file entry order.
CN 200510066829 2004-05-21 2005-04-21 Method and system for graph analysis and synchronization CN100507908C (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US57328804P true 2004-05-21 2004-05-21
US60/573,288 2004-05-21
US10/918,776 2004-08-13

Publications (2)

Publication Number Publication Date
CN1700211A CN1700211A (en) 2005-11-23
CN100507908C true CN100507908C (en) 2009-07-01

Family

ID=35476278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510066829 CN100507908C (en) 2004-05-21 2005-04-21 Method and system for graph analysis and synchronization

Country Status (1)

Country Link
CN (1) CN100507908C (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239404B2 (en) * 2010-06-10 2012-08-07 Microsoft Corporation Identifying entries and exits of strongly connected components
US9811936B2 (en) * 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
CN108073583A (en) * 2016-11-08 2018-05-25 华为技术有限公司 A kind of component method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999931A (en) 1997-10-17 1999-12-07 Lucent Technologies Inc. Concurrency control protocols for management of replicated data items in a distributed database system
US6031548A (en) 1997-06-13 2000-02-29 International Business Machines Corporation Progressive multi-level transmission and display of triangular meshes
US6499037B1 (en) 1999-09-09 2002-12-24 Lucent Technologies Inc. System and method for serializing updates to ancestor sites in a distributed database
CN1493984A (en) 2002-11-01 2004-05-05 英业达股份有限公司 Distribution type data synchronous system and its method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031548A (en) 1997-06-13 2000-02-29 International Business Machines Corporation Progressive multi-level transmission and display of triangular meshes
US5999931A (en) 1997-10-17 1999-12-07 Lucent Technologies Inc. Concurrency control protocols for management of replicated data items in a distributed database system
US6499037B1 (en) 1999-09-09 2002-12-24 Lucent Technologies Inc. System and method for serializing updates to ancestor sites in a distributed database
CN1493984A (en) 2002-11-01 2004-05-05 英业达股份有限公司 Distribution type data synchronous system and its method

Also Published As

Publication number Publication date
CN1700211A (en) 2005-11-23

Similar Documents

Publication Publication Date Title
Chakrabarti et al. Focused crawling: a new approach to topic-specific Web resource discovery
Kalashnikov et al. Exploiting relationships for domain-independent data cleaning
Franklin et al. From databases to dataspaces: a new abstraction for information management
Medina et al. BRITE: Universal topology generation from a user's perspective
KR101169171B1 (en) Object model tree diagram
US7483923B2 (en) Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US7016910B2 (en) Indexing, rewriting and efficient querying of relations referencing semistructured data
Raynal Distributed algorithms for message-passing systems
US6829606B2 (en) Similarity search engine for use with relational databases
US7076736B2 (en) Method and apparatus for sharing many thought databases among many clients
Ural et al. A test sequence selection method for protocol testing
AU2007218127B2 (en) Synchronization peer participant model
US7401104B2 (en) Systems and methods for synchronizing computer systems through an intermediary file system share or device
Bevan Usability
EP1686496B1 (en) Systems and methods for providing a user interface with an automatic search menu
US7082386B2 (en) Generalized software modeling tool
JP4132137B2 (en) Integration of information resources of information server
KR19990028677A (en) Method and apparatus for modifying an existing relational database to reflect changes made in a corresponding semantic object model
US20130138609A1 (en) Cross-polination synchronization of data
US7260572B2 (en) Method of processing query about XML data using APEX
US7664742B2 (en) Index data structure for a peer-to-peer network
Craswell Mean reciprocal rank
JP2006018821A (en) System and method for providing conflict handling for peer-to-peer synchronization of units of information manageable by hardware/software interface system
US20070016575A1 (en) Consolidating local and remote taxonomies
Holzmann Tracing protocols

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of the right of patent application or the patent right