状态同步系统及方法

文档序号:7964843阅读:145来源:国知局
专利名称:状态同步系统及方法
技术领域
此发明涉及一种事件同步技术,特别涉及一种在超大型分散服务环境中 的状态同步系统及方法。
背景技术
在分布式环境(特别是于以事件来驱动的服务管理系统)中的装置可分享
共通的状态(common states),来达成服务协调与统合(service coordination and collaboration)的目的。 一般而言,在服务管理系统中,服务状态改变 的通知可以异步性(asynchronous)的方式来进ff,亦即是一个月艮务(或一个中 央管理平台)逐一通知所有改变的状态给装置。然而,当共通状态的值被高速 緩存(cache)在装置中时,不同装置可用不同的方式来维护高速緩存的共通状 态,所以,不同装置间可能会拥有不一致的共通状态的值,进而造成服务统
合失败的情形。因此,需要一种状态同步装置及方法,用以降低不同装置间 拥有不一致的共通状态的值的发生机会。

发明内容
本发明的目的在提供一种状态同步系统及方法,用以降低不同装置间拥 有不 一致的共通状态的值的发生机会。
本发明第一实施例提供一种状态同步方法,使用第一电子装置执行。第 一实施例中包含以下步骤取得存储在第 一 电子装置的本地高速緩存空间中 的第一服务状态版本识别码;藉由询问多个第二电子装置来取得每一第二电 子装置中所存储的第二服务状态版本识别码;判断每一第二服务状态版本识 别码是否较第一服务状态版本识别码为旧;以及当第二服务状态版本识别码 较第一服务状态版本识别码为旧时,传送向前更新请求给存储较旧的第二服 务状态版本识别码的第二电子装置,使得存储较旧的第二服务状态版本识别 码的第二电子装置启动向上检查程序以更新较旧的第二服务状态版本识别
码。其中,第一服务状态版本识别码与第二服务状态版本识别码是由第三电 子装置中的服务所产生。第一电子装置、第二电子装置以及第三电子装置被 组织成事件传播树状结构,第三电子装置位于事件传播树状结构中的根节点, 以及第一电子装置与第二电子装置位于事件传播树状结构中的叶节点。
本发明第二实施例另提供一种状态同步方法,使用第 一 电子装置执行。
第二实施例中包含以下步骤由第二电子装置接收向上检查请求,此向上检 查请求包含第一服务状态版本识别码以及相应于第一服务状态版本识别码的 第 一服务状态值;取得存储在第 一 电子装置的本地高速緩存空间中的第二服 务状态版本识别码;当第二服务状态版本识别码较第一服务状态版本识别码 为旧时,向第三电子装置传送向上检查请求以启动向上检查程序,此向上检 查程序用以将向上检查请求向上传送到造成服务版本不一致的电子装置;判 断第三电子装置是否失效;当第三电子装置失效时,分别使用第一服务状态 版本识别码与第 一服务状态值更新原本存储在第 一 电子装置的本地高速緩存 空间中的第二服务状态版本识别码与相应于第二服务状态版本识别码的第二 服务状态值;以及当第三电子装置失效时,向第二电子装置传送向下更新请 求以启动向下更新程序,此向下更新程序用以向下通知直接或间接连结于第 一电子装置的所有节点,存储相应于第一服务状态版本识别码的第一服务状 态值。第一电子装置、第二电子装置与第三电子装置被组织成事件传播树状 结构,第一电子装置为第二电子装置的父节点,并且,第三电子装置为第一 电子装置的父节点。
本发明第三实施例更提供一种状态同步方法,使用第 一 电子装置执行。 第 一电子装置中的本地高速缓存空间存储第 一服务状态版本识别码与相应于 第 一服务状态版本识别码的第 一服务状态值。第三实施例中包含以下步骤 由第二电子装置接收向前更新请求,此向前更新请求包含第二服务状态版本 识别码与相应于第二服务状态版本识别码的第二服务状态值,且第二服务状 态版本识别码较第一服务状态版本识别码为新;在接收向前更新请求后,由 第三电子装置接收向下更新请求,向下更新请求包含第三服务状态版本识别 码与相应于第三服务状态版本识别码的第三服务状态值;分别使用第三服务 状态版本识别码与第三服务状态值更新原本存储在第一电子装置的本地高速 緩存空间中的第一服务状态版本识别码与第一服务状态值;判断第三服务状 态版本识别码是否较第二服务状态版本识别码为新;以及当第三服务状态版
本识别码较第二服务状态版本识别码为新时,传送向后更新请求给第二电子 装置,用以驱动第二电子装置启动主要节点移转程序。此主要节点移转程序 用以将传送向前更新请求的任务由第二电子装置移转给第一电子装置。其中 第一电子装置、第二电子装置以及第三电子装置被组织成事件传播树状结构, 第一电子装置与第二电子装置位于事件传播树状结构中的叶节点,以及,第 三电子装置为第一电子装置的父节点。
本发明实施例提供一种状态同步系统,包括第一、第二、第三与第四电 子装置。第一电子装置包含一个服务。其中,第一电子装置、第二电子装置、 第三电子装置以及第四电子装置被组织成事件传播树状结构。第一电子装置 代表事件传播树状结构中的根节点,第二电子装置代表事件传播树状结构中 的转递节点,第三电子装置以及第四电子装置代表事件传播树状结构中的叶 节点。第三电子装置以及第四电子装置向服务订阅相应于服务的多个事件通 知,以及第一电子装置阶层式地通过第二电子装置逐一传送事件通知给第三 电子装置与第四电子装置。第四电子装置取得存储在第四电子装置的本地高 速緩存空间中的第 一服务状态版本识别码,藉由询问第三电子装置来取得第 三电子装置中所存储的第二服务状态版本识别码,判断第二服务状态版本识 别码是否较第一服务状态版本识别码为旧,当第二服务状态版本识别码较第 一服务状态版本识别码为旧时,传送向前更新请求给第三电子装置,使得第 三电子装置启动向上检查程序以更新较旧的第二服务状态版本识别码。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举 出较佳实施例,并配合附图,作详细说明如下。


图1示出了依据本发明实施例的状态同步系统的网络结构示意图2示出了依据本发明实施例的个人计算机的硬件结构图3示出了依据本发明实施例的分布式事件传播机制示意图4示出了范例的状态不一致示意图5是范例的事件传播树状结构示意图6是依据本发明实施例的由主要节点执行的状态同步方法;
图7是依据本发明实施例由非主要节点的叶节点执行的状态同步方法;
图8是依据本发明实施例的由转递节点或根节点执行的状态同步方法;
图9a是依据本发明实施例的由转递节点执行的状态同步方法;
图9b是依据本发明实施例的由非主要节点的叶节点执行的状态同步方
法;
图IO是范例的向前更新示意困;
第11、 12与13图示出了依据本发明实施例的状态同步示意图; 图14是依据本发明实施例的由主要节点执行的状态同步方法; 图15是范例的主要节点移转示意图16示出了依据本发明实施例的状态同步计算机可读取存储媒体示意图。
附图符号说明
10-状态同步系统;11、 13、 15、 17、 19-个人计算机; 21-处理单元;22-内存;23-存储装置;24-输出装置; 25-输入装置;26-通信装置;27-总线;S-根节点;
R,、 R2..... R9、 R,。-转递节点;L,、 L2、 L3、 L「叶节点;
Rk—,、 Rk、 Rk*、 Rk,-转递节点;Li、 L厂叶节点; T。-事件传播树状结构;Tk、 Tk*、 Tk,-子树; V10、 V 、 V12、 V3、 V14-服务状态版本识别码; S611、 S621、 S623、 S631、 S641、 S651-方法步骤; S711、 S721 -方法步骤;
S811、 S813、 S815、 S821、 S831、 S833、 S835、 S841 -方法步骤; S911、 S913、 S931、 S941、 S951、 S961-方法步骤; S14100、 S14200、 S14310、 S14330、 S14410、 S1443(K S14450-方法步 骤;160-存储媒体;1620-状态同步计算机程序。
具体实施例方式
图1示出了依据本发明实施例的状态同步系统10的网络结构示意图。在 较佳的情况下,此网络结构包括个人计算机11、 13、 15、 17与19。其中, 个人计算机ll、 13、 15、 17与19可以实体联机(wired-connection)、无线 或混合实体联机与无线的方式彼此连接。而熟习此技艺者皆了解个人计算机 11、 13、 15、 17与19间的连结也许须通过多个中介节点,例如,无线接取 点(access point)、基站(base station)、集线器(hub)、桥接器(bridge)、
路由器(router)或其它用以处理网络通信的中介节点。状态同步系统10采用 发布者-订阅者模型(publisher-subscriber model)或推播模型(push model) 来进行状态改变通知。详而言之,个人计算机11在网络上公布(advertise) 提供的服务,使得个人计算机13、 15、 17与19可以发现并订阅这些被公布 的服务。个人计算机11扮演一个状态来源(state source)角色,其使用异步 的方式来传递包含服务状态值的事件通知(event notification)给个人计算 机13、 15、 17与19。个人计算机13、 15、 17与19可向个人计算机11订阅 一个服务,以便将来可接收到所订阅的服务的事件通知(其中包含服务状态值 的信息)。当多部个人计算机订阅同一个服务时,个人计算机ll可使用单点 发布(unicasting)、 多点发布(multicasting)或广4番(broadcasting)的方式 传递事件通知给订阅的计算机。订阅的计算机在接收到事件通知后,将其中 的服务状态值存储在本地的高速緩存空间(local cache)。此外,订阅的计算 机亦可主动向个人计算机11请求(request)服务状态值,并依据接收到的回 复(response)中的服务状态值来更新本地所高速緩存的服务状态值。在此须 注意的是,个人计算机11亦会传送相应于服务状态值的有效期间(valid duration),代表在其有效期间逾时前,此高速緩存的服务状态值会处在一个 有效的状态。
图2示出了依据本发明实施例的个人计算机11、 13、 15、 17与19的硬 件结构图。个人计算机ll、 13、 15、 17与19中的一者,包括处理单元21、 内存22、存储装置23、输出装置24、输入装置25、通信装置26,并使用总 线27将其连结在一起。除此之外,熟习此技艺人士也可将个人计算机11、 13、 15、 17与19中的一者实施于其它计算机系统结构(configuration)上, 例如,多处理器系统、以微处理器为基础或可编程的消费性电子产品 (microprocessor-based or programmable consumer electronics)、 网络计 算机、迷你计算机、大型主机、笔记型计算机以及类似的设备。其中,以微 处理器为基础或可编程的消费性电子产品可包括手机、投影机、显示屏幕、 个人H字助理(personal digital assistant, PDA)、凄t字录4象i殳备、H字音 乐播放器等。处理单元21可包含一单一中央处理单元(central-processing unit; CPU)或者是关连于平行运算环境(parallel processing environment) 的多个平行处理单元。内存22包含只读存储器(read only memory; ROM)、 闪存(flash ROM)以及/或动态存取内存(random access memory; RAM),用以
存储可供处理单元21执行的程序模块以及数据。 一般而言,程序模块包含常 序(routines)、程序(program)、对象(object)、组件(component)等,用以 执行状态同步功能。本发明亦可以实施于分布式运算环境,其运算工作被一 连结于通信网路的远程处理设备所执行。在分布式环境中,个人计算机ll、 13、 15、 17与19中的一者的功能执行,也许由本地以及多部远程计算机系 统共同完成。在分布式环境中,程序^f莫块可同时存在于本地以及远程记忆存 储装置中,而远程访问结构包含分布式组件对象模型(DCOM)、通用对象请求 中介结构(C0RBA)、网页组件(Web objects)、网络服务(Web Services)或其 它类似结构。
当订阅服务的个人计算机或电子装置散落在一个大型网络环境中时,使 用一个分布式事件传播机制(distributed event dissemination mechanism) 来传送事件通知给个人计算机或电子装置。图3示出了依据本发明实施例的 分布式事件传播机制示意图。所有的个人计算机或电子装置被组的成为一个 事件传播树状结构(event casting tree),使用类似瀑布的方法 (cascade-like way)将事件通知由上而下传递。事件传播树状结构包含三种 基本节点根节点(root node)S、转递节点(relay node) R,至R,。等、与叶节 点(leaf node)L,至U等。根节点S代表包含服务的个人计算机或电子装置, 此服务为事件发布者,用以通过转递节点R,至Rw等将事件通知传递至叶节点 L,至L等。叶节点L,至L,等为事件接收者,其向事件发布者订阅事件通知服 务(event notification service)。转递节点R,至Ri。等代表中间(in-between) 装置,位于根节点S与叶节点"至L4等之间。转递节点可为个人计算机、电 子装置、或甚至是网络装置,例如,无线接取点、基站、集线器、桥接器、 路由器或其它用以处理网络通信的节点。 事件通知可包装成如下所示的格式 Event notification
service — ident if ier s id;
service_location_reference sir;
relay_node —identifier rid;
state sValue;
version vValue;
time tValue;duration dValuej
事件通知中包含多种数据域位,用以纪录服务识别码(service identifier, sid)、月良务位置参考(service location reference, slr)、转 递节,、i口、另'J石马(relay node identifier, rid)、月良务一夫'悉^直(service state value, sValue)、月艮务3犬态版本识另寸石马(service state version, vValue)、 事件产生时间(tValue)与有效期间(valid duration, dValue)。版本识别码 用以区分不同的事件通知。每一个版本识别码可包含一个服务识别码 (service ident if ier)与一个事件识别码(event identifier),两识别码间 以连字号(hypen)隔开,格式如下所示
version: = ,, service identifier" - "event identifier"。
其中的转递节点识别码字段在初始化时设为空值("null" value),包 装在最初的事件通知中,并由根节点传送给子转递节点。每当转递节点接收 到一个事件通知时,将自己的识别码加入到此事件通知中的转递节点识别码 字段,并且将更新后的事件通知传送给子转递节点或叶节点。此外,转递节 点将父节点识别码(parent' s rid)、以及事件通知中的服务识别码(s id)、 服务状态值(sValue)与服务状态版本识别码(vValue),纪录到本地高速緩存 空间中。纟己录的格式可表示为〈sid, parent' s rid, vValue, sValue〉。每 当叶节点接收到一个事件通知时,将父节点识别码(parent' srid)以及事件 通知中的服务识别码(sid)、转递节点识别码(slr)、服务状态值(sValue)与 服务状态版本识別码(vValue)等信息,纪录到本地高速緩存空间中。纪录的 格式可表示为〈sid, sir, parent' s rid, vValue, sValue〉。
任意两个叶节点可能在服务统合时发现拥有不同版本的服务状态值,而 产生状态不一致的情况。其可能有存在许多造成状态不一致的原因,举例来 说,可能因其中的一个转递节点暂时失效,造成暂时性的事件传递路径中断, 或者是某两个节点间的传递路径上发生网络壅塞的请况。图4示出了范例的 状态不一致示意图。事件传播树状结构T。中拥有一个根节点S,根节点S连 结至一个转递节点Rw,并且,转递节点Rw连结至两个转递节点R,与Rk。当 转递节点V发生暂时性地不可预期的装置错误时,事件通知就无法传递到直 接或间接连结于转递节点1*的所有转递节点或叶节点,因而造成子树 (sub-tree) V与TJ司产生状态不一致的情形。当叶节点L;与LJ司进行服务统 合并检查彼此间的服务状态版本时,则会发现叶节点Li所拥有的服务状态值
版本较叶节点Lj中所拥有的为旧。
假设一个统合群组(collaborative group)中包含m个叶节点,L'、 1^至 Lm。在相同统合群组中的所有叶节点,皆存储相应于同一个服务的服务状态 值于其本地高速緩存空间中。在理想的情况下,在相同统合群组中的所有叶 节点拥有相同版本识别码的服务状态值,例如,在相同统合群组中的任意两 个叶节点Li与Lj所拥有的服务状态值版本为V产Vj。在进行服务统合作业之前, 叶节点L,、 L至Lm需要先比对特定服务状态值的版本识别码。为有利于状态 同步作业的进行,其中的一个叶节点须4分演主要节点(master node)的角色。 主要节点从其它叶节点搜集服务状态值的版本信息,并且将较新的服务状态 值传递给拥有较旧的服务状态值的叶节点。以下举出一个范例来说明主要节 点的决定。图5是范例的事件传播树状结构示意图,其中包含四个叶节点L,、 L2、 L3与",其分别拥有V,2、 V 、 V,。与Vi2等版本的服务状态值,其中越大的 服务状态版本识别码代表相应的服务状态值越新。拥有最大的服务状态版本 识别码并且位为事件传播树状结构中的最右边的叶节点,被赋予担任主要节 点的任务,如叶节点L。
图6是依据本发明实施例的状态同步方法,由主要节点执行,例如图5 的L"在步骤611,取得存储在本地高速緩存空间的服务状态版本识别码Vi, 此识别码相应于本地高速緩存空间中存储的最新的服务状态值本地高速緩存 空间可被包含在内存22或存储装置23(如图2所示)中。在步骤S621,藉由 发出多个请求(requests)来询问并取得所有其它叶节点(如图5中的L'至L》 所存储的服务状态版本识别码。在步骤S623,依序选择从叶节点所取得的其 中的一服务状态版本识别码Vj,此识别码相应于其中的一个叶节点中所存储 的最新的服务状态值。在步骤S631,判断Vj是否较Vi为旧,是则进行步骤 S641的处理,否则进行步骤S651的处理。在步骤S641,传送向前更新请求 (forward update request)给拥有此服务状态版本识别码Vj的叶节点。向前 更新请求包括服务状态版本识别码Vi与相应的服务状态值。有关叶节点接收 到向前更新请求的详细后续处理,请见以下图7的说明。在步骤S651,判断 是否处理完所有叶节点的服务状态版本识别码,是则结束整个方法流程,否 则进行步骤S623的处理。图IO是范例的向前更新示意图,由叶节点U担任 主要节点,并且在执行图6所示的方法时,传送向前更新请求给叶节点L与 L3。
图7是依据本发明实施例的状态同步方法,由非主要节点的叶节点执行, 例如如图5中的L,至L3。在步骤S711,从主要节点接收向前更新请求。在步 骤S721,传送向上4全查请求(upward check request)给父节点(可为转递节 点或根节点),此请求中包括由主要节点所取得的服务状态值及其版本识別 码。父节点识别码可由本地高速緩存空间中取得。
图8是依据本发明实施例的状态同步方法,由转递节点或根节点(如图3 中的S、 R,至R,。等)执行。在步骤S811,接收到由子节点所传来的向上检查 请求。在步骤S813,取得向上检查请求中的服务状态值及其服务状态版本识 别码Vb。在步骤S815,取得存储在本地高速緩存空间中的服务状态识别码Va, 此识别码相应于本地高速緩存空间中存储的最新的服务状态值。在步骤S821, 判断Va是否较Vb为旧,是则进行步骤S831的处理,否则进行步骤S841的处 理。在步骤S831,传送向上检查请求给父节点(可为转递节点或根节点),此 请求中包括由接收的向上检查请求中所取得的服务状态值及其版本识别码。 父节点识别码可由本地高速緩存空间中取得。在较佳的情况下,当父节点接 收到向上4全查请求后,会回复一个向上检查认可信息(upward check acknowledgement),用以指出父节点已成功地接收到此向上才全查请求并进行 后续的处理。在步骤S833,判断父节点是否失效,是则进行步骤S835的处 理,否则结束整个方法。例如,当向上检查请求逾时后,还没接收到由父节 点接收到向上检查认可信息,则判断父节点失效。在步骤S835,使用取得的 服务状态值及其服务状态版本识别码Vb来更新本地高速緩存空间中的服务状 态值及其服务状态版本识别码。在步骤S841,传送向下更新请求(downward 叩date request)给所有的子节点(可为转递节点或叶节点),此请求中包括由 本地高速緩存空间所取得的服务状态值及其版本识别码Va。在此须注意的是, 服务状态版本识别码Va可能相同于或较新于由向上检查请求中所取得的服务 状态版本识别码Vb。
图9a是依据本发明实施例的状态同步方法,由转递节点(如图3中的R, 至"等)执行。在步骤S911,接收到由父节点所传来的向下更新请求。在步 骤S913,取得向下更新请求中的服务状态值及其服务状态版本识别码。在步 骤S931,传送向下更新请求给所有连结的子节点(可为转递节点或叶节点), 此请求中包括由接收的向下更新请求中所取得的服务状态值及其版本识别 码。在步骤S941,使用取得的服务状态值及其服务状态版本识别码来更新本
地高速緩存空间中的服务状态值及其服务状态版本识别码。
图9b是依据本发明实施例的状态同步方法,由非主要节点的叶节点执
行,例如如图5中的L,至L3。其中,步骤S911、 S913与S931的详细操作可 参考图9a中的说明。在步骤S951,判断从向下更新请求所取得的服务状态 版本识别码是否较新于由向前更新请求所取得的服务状态版本识别码,是则 进行步骤S961的处理,否则结束整个方法。在步骤S961,传送向后更新请 求(backward update request)给主要节点,例如如图5中的L4,用以启动主 要节点移转程序。向后更新请求中包含从向下更新请求所取得的服务状态值 及其服务状态版本识别码。
以下更举出数个实例来说明如第6至9a、 9b图所示的状态同步方法的详 细运作情形。图11示出了依据本发明实施例的状态同步示意图。首先,当主 要节点Lj检测到所拥有的服务状态版本识别码Vj较叶节点Li中所拥有的服务 状态版本识别码Vi为新时,传送向前检查请求给叶节点Li (如图6中的步骤 S641所示)。参考图7所示的方法,当叶节点Li接收到向前检查请求后,传 递一个向上检查请求给父节点来启动一个向上检查程序,用以将向上检查请 求传送到造成服务状态版本不一致的节点。参考图8所示的方法,此向上检 查程序会将此向上检查请求依序传送到转递节点Rk。当转递节点Rk检测到所 拥有的服务状态版本识别码并非较向上检查请求中所包含的服务状态版本识 别码为旧时,传送向下更新请求给所有的子节点(如图8中的步骤S841所示) 来启动一个向下更新程序。此向下更新程序用以向下更新转递节点Rk所直接 或间接连结的所有节点中的服务状态值及其服务状态识别码。参考图9a与 9b所示的方法,子树Tj中的所有的节点皆会使用接收的向下更新请求中的
服务状态值及其服务状态版本识别码来更新本地高速緩存空间中的服务状态 值及其服务状态版本识别码(如图9a与9b中的步骤S941所示)。
图12示出了依据本发明实施例的状态同步示意图。当主要节点Lj检测到 所拥有的服务状态版本识别码Vj较叶节点Li中所拥有的服务状态版本识别码 Vi为新时,传送向前检查请求给叶节点"(如图6中的步骤S641所示)。参 考图7所示的方法,当叶节点Li接收到向前检查请求后,传递一个向上检查 请求给父节点来启动一个向上检查程序,用以将向上检查请求传送到造成服 务状态版本不一致的节点。参考图8所示的方法,此向上检查程序会将此向 上检查请求依序传送到转递节点Rk。当转递节点Rk检测到父节点失效时,使
用从向上检查所取得的服务状态值及其服务状态版本识别码Vj来更新存储在
本地高速緩存空间中的服务状态值及其服务状态版本识别码(如图8中的步 骤S835所示),并且传送向下更新请求给所有的子节点(如图8中的步骤S841 所示)来启动一个向下更新程序。此向下更新程序用以向下更新转递节点Rk 所直接或间接连结的所有节点中的服务状态值及其服务状态识别码。参考图 9a与9b所示的方法,子树T,中的所有的节点皆会使用接收的向下更新请求 中的服务状态值及其服务状态版本识别码来更新本地高速緩存空间中的服务 状态值及其服务状态版本识别码(如图9a与9b中的步骤S941所示)。
图13示出了依据本发明实施例的状态同步示意图。首先,当叶节点L2 与L3接收由主要节点L4所传送的向前更新请求,并分别由适当节点执行完如 第7、 8、 9a与9b图所示的方法后,叶节点L与1^分别由向下更新请求中取 得服务状态版本识别码Vn与V14,并且服务状态版本识别码V,3与V"较新于向 前更新请求中所包含的服务状态版本识别码V12。所以,叶节点L2与Ls分别传 送包含服务状态版本识别码Vu与V,4的向后更新请求给主要节点L4,用以启 动主要节点移转程序。
图14是依据本发明实施例的状态同步方法,由主要节点执行,例如图5 的L。在步骤14100,由叶节点接收多个向后更新请求,每一向后更新请求 中包含发出请求的叶节点识别码以及存储的服务状态版本识别码。在步骤 S14 2 00 ,依据向后更新请求中的服务状态版本识别码决定出即将担任主要节点的叶节点。通常,拥有最大的服务状态版本识别码的叶节点中的一者,即 可被赋予担任主要节点的任务。然而,为增进决定主要节点的效率,可制定 一个准则来决定主要节点,此准则定义可被赋予担任主要节点的任务的叶节点为拥有最大的服务状态版本识别码并且位为事件传播树状结构中的最右边 或最左边的叶节点,如图13中的叶节点L"在步骤S41310,传送移转请求 (transfer request)给决定的叶节点,此请求中包含即将移转主要节点的功能任务(亦即是传送向前更新请求的任务)给决定的叶节点的信息。在步骤 S14330 ,从决定的叶节点接收相应于上述移转请求的认可信息 (acknowledgements在步骤S14410,传送叶节点顺序表(ordered list)给 决定的叶节点,此节点顺序表包含多个在相同统合群组中的叶节点识别码, 任意两个相邻叶节点识别码必须满足以下列两个准则中的一者(1)顺序较先 的叶节点识别码所对应的叶节点所拥有的服务状态识别码,较新于顺序较后
的叶节点识别码所对应的叶节点所拥有的服务状态识别码;(2)当顺序较先的
叶节点识别码所对应的叶节点所拥有的服务状态识别码相同于顺序较后的叶 节点识别码所对应的叶节点所拥有的服务状态识别码时,顺序较先的叶节点 识别码所对应的叶节点位于顺序丰支后的叶节点识别码所对应的叶节点的左
方。举例来说,参考图13,叶节点L2至L分别拥有相应于服务状态版本识别 码V,2、 V3、 V"与V,2的服务状态值。叶节点顺序表则为〈L3、 L2、 L" L〉。此 叶节点顺序表可帮助决定的叶节点(亦即是新的主要节点)传递如上所述的向 前更新请求给顺序较后于自己的所有叶节点L2、 L,与L"在步骤S14430,从 决定的叶节点接收认可信息,此认可信息表示决定的叶节点已接收到叶节点 顺序表的1言息。在步艰《S14450,传送移專争通杀口 (transfer announcement)纟合 统合群组中的所有叶节点,此移转通知指出主要节点的功能任务已经移转至 决定的叶节点。图15是范例的主要节点移转示意图,叶节点L4将主要节点的 功能任务移转给叶节点L3。接着,新的主要节点L3传递向前更新请求给叶节 点"、L与L4。
再者,本发明实施例更提出一种计算机可读取存储媒体,用以存储一计 算机程序,上述计算机程序用以实现状态同步方法,这些方法会执行如上所 述的步骤。图16示出了依据本发明实施例的状态同步计算机可读取存储媒体 示意图。此存储媒体160,用以存储状态同步计算机程序1620,当此程序被 加载到处理单元21(如图2所示)并执行时,实现如上所述的状态同步方法。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何 熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰, 因此本发明的保护范围当视后附的申请专利范围所界定者为准。
权利要求
1.一种状态同步方法,使用一第一电子装置执行,该方法包括取得存储在上述第一电子装置的一本地高速缓存空间中的一第一服务状态版本识别码;藉由询问多个第二电子装置来取得每一上述第二电子装置中所存储的一第二服务状态版本识别码;判断每一上述第二服务状态版本识别码是否较上述第一服务状态版本识别码为旧;以及当上述第二服务状态版本识别码较上述第一服务状态版本识别码为旧时,传送一向前更新请求给存储上述较旧的第二服务状态版本识别码的上述第二电子装置,使得存储上述较旧的第二服务状态版本识别码的上述第二电子装置启动一向上检查程序以更新上述较旧的第二服务状态版本识别码,其中,上述第一服务状态版本识别码与上述第二服务状态版本识别码是由一第三电子装置中的一服务所产生,上述第一电子装置、上述第二电子装置以及上述第三电子装置被组织成一事件传播树状结构,上述第三电子装置位于上述事件传播树状结构中的根节点,以及上述第一电子装置与上述第二电子装置位于上述事件传播树状结构中的叶节点。
2. 如权利要求1所述的状态同步方法,更包括在传送上述向前更新请求给存储上述较旧的第二服务状态版本识别码的 上迷第二电子装置后,从存储上述较旧的第二服务状态版本识别码的上述第 二电子装置接收一向后更新请求,其中,上述向后更新请求包含较上述第一 服务状态版本识别码为新的一第三服务状态版本识别码;传送一移转请求给产生上述向后更新请求的上述第二电子装置,上述移 转请求包含即将移转传送上述向前更新请求的任务给产生上述向后更新请求 的上述第二电子装置的信息;以及在从产生上述向后更新请求的上述第二电子装置接收到相应于上述移转 请求的一认可信息后,传送多个移转通知给上述第二电子装置,上述移转通 知包含已移转传送上述向前更新请求的任务给产生上述向后更新请求的上述 第二电子装置的信息。
3.如权利要求2所述的状态同步方法,更包括 在从产生上述向后更新请求的上述第二电子装置接收到相应于上述移转 请求的上述认可信息后,传送一叶节点顺序表给产生上述向后更新请求的上 述第二电子装置,其中,上述叶节点顺序表包舍相应于上述第一电子装置与上迷第二电子 装置的多个叶节点识别码,上述叶节点顺序表中的上述任意两个相邻叶节点 识别码满足两个准则中的一者,上述第一准则指出上述顺序较先的叶节点识 别码所对应的电子装置所拥有的服务状态识别码,较新于上述顺序较后的叶 节点识别码所对应的电子装置所拥有的服务状态识别码,以及,上述第二准 则指出当上述顺序较先的叶节点识别码所对应的电子装置所拥有的服务状态 识别码,相同于上述顺序较后的叶节点识别码所对应的电子装置所拥有的服 务状态识别码时,上述顺序较先的叶节点识别码所对应的电子装置位于上述 事件传播树状结构中的上述顺序较后的叶节点识别码所对应的电子装置的左 方或右方。
4. 一种状态同步方法,使用一第一电子装置执行,该方法包括 由一第二电子装置接收一向上检查请求,上述向上检查请求包含一第一服务状态版本识别码以及相应于上述第一服务状态版本识别码的一第一服务 状态值;取得存储在上述第 一 电子装置的一本地高速緩存空间中的 一第二服务状 态版本识别码;当上述第二服务状态版本识别码较上述第一服务状态版本识别码为旧 时,向一第三电子装置传送上述向上检查请求以启动一向上检查程序,上述 向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电 子装置;判断上述第三电子装置是否失效;当上述第三电子装置失效时,分别使用上述第一服务状态版本识别码与 上述第一服务状态值更新原本存储在上述第一电子装置的上述本地高速緩存 空间中的上述第二服务状态版本识别码与相应于上述第二服务状态版本识别 码的一第二服务状态值;以及当上述第三电子装置失效时,向上述第二电子装置传送一向下更新请求 以启动一向下更新程序,上述向下更新程序用以向下通知直接或间接连结于 上述第一电子装置的所有节点,存储相应于上述第一服务状态版本识别码的 上述第一服务状态值,其中,上述第一电子装置、上述第二电子装置与上述第三电子装置被组 织成一事件传播树状结构,上述第一电子装置为上述第二电子装置的父节点, 以及,上述第三电子装置为上述第一电子装置的父节点。
5. 如权利要求4所述的状态同步方法,在判断上述第三电子装置是否失 效的步骤中,更包括当上述向上检查请求逾时后,还没接收到由上述第三电子装置接收到一 向上检查认可信息时,判断上述第三电子装置失效,其中,上述向上检查认可信息指出上述第三电子装置已接收到上述向上 -险查请求。
6. 如权利要求4所述的状态同步方法,其中,上述第一与第二服务状态 版本识别码与上述第一与第二服务状态值由一第四电子装置中的一服务所产 生,上述第四电子装置位于上述事件传播树状结构中的根节点。
7. —种状态同步方法,使用一第一电子装置执行,上述第一电子装置中 的一本地高速緩存空间存储一第一服务状态版本识别码与相应于上述第一服 务状态版本识别码的一第一服务状态值,其方法包括由一第二电子装置接收一向前更新请求,上述向前更新请求包含一第二 服务状态版本识别码与相应于上述第二服务状态版本识别码的一第二服务状 态值,上述第二服务状态版本识别码较上述第一服务状态版本识别码为新;在接收上述向前更新请求后,由一第三电子装置接收一向下更新请求, 上述向下更新请求包含一第三服务状态版本识别码与相应于上述第三服务状 态版本识别码的一第三服务状态值;以及分别使用上述第三服务状态版本识别码与上述第三服务状态值更新原本 存储在上述第一电子装置的上述本地高速緩存空间中的上迷第一服务状态版 本识别码与上述第 一服务状态值;判断上述第三服务状态版本识别码是否较上述第二服务状态版本识别码 为新;当上述第三服务状态版本识别码较上述第二服务状态版本识别码为新 时,传送一向后更新请求给上述第二电子装置,用以驱动上述第二电子装置 启动一主要节点移转程序,其中,上述主要节点移转程序用以将传送上述向前更新请求的任务由上述第二电子装置移转给上述第一电子装置,上述第一电子装置、上述第二电 子装置以及上述第三电子装置被组织成一事件传播树状结构,上述第一电子 装置与上述第二电子装置位于上述事件传播树状结构中的叶节点,以及,上 述第三电子装置为上述第一电子装置的父节点。
8. 如权利要求7所述的状态同步方法,其中,上述第一、第二与第三服 务状态版本识别码与上述第一、第二与第三服务状态值由一第四电子装置中 的一服务所产生,上述第四电子装置位于上述事件传播树状结构中的根节点。
9. 如权利要求7所述的状态同步方法,在接收上述向前更新请求后,以 及于接收上述向下更新请求前,更包括传送一向上检查请求给上述第三电子装置以启动一向上检查程序,上述 向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电 子装置。
10. —种状态同步系统,包括 一第一电子装置,包含一服务; 一第二电子装置; 一第三电子装置;以及 一第四电子装置,其中,上述第一电子装置、上述第二电子装置、上述第三电子装置以及 上述第四电子装置被组织成一事件传播树状结构,上述第 一电子装置代表上 述事件传播树状结构中的根节点,上述第二电子装置代表上述事件传播树状 结构中的转递节点,上述第三电子装置以及上述第四电子装置代表上述事件 传播树状结构中的叶节点,上述第三电子装置以及上述第四电子装置向上述 服务订阅相应于上述服务的多个事件通知,上述第一电子装置阶层式地通过 上述第二电子装置逐一传送上述事件通知给上述第三电子装置与上述第四电 子装置,以及,上述第四电子装置取得存储在上述第四电子装置的一本地高 速緩存空间中的一第 一服务状态版本识别码,藉由询问上述第三电子装置来 取得上述第三电子装置中所存储的一第二服务状态版本识别码,判断上述第 二服务状态版本识别码是否较上述第一服务状态版本识别码为旧,当上述第 二服务状态版本识别码较上述第一服务状态版本识别码为旧时,传送一向前 更新请求给上述第三电子装置,使得上述第三电子装置启动一向上检查程序 以更新上述较旧的第二服务状态版本识别码。
11. 如权利要求IO所述的状态同步系统,其中,上述第四电子装置在传送上述向前更新请求给上述第三电子装置后,从上述第三电子装置接收一向 后更新请求,其中,上述向后更新请求包含较上述第一服务状态版本识别码 为新的一第三服务状态版本识别码,上述第四电子装置于接收到上迷向后更 新请求后,传送一移转请求给上述第三电子装置,上述移转请求包含即将移 转传送上述向前更新请求的任务给上述第三电子装置的信息,上述第四电子 装置在从上述第三电子装置接收到相应于上述移转请求的一认可信息后,传 送一移转通知给一第五电子装置,上述移转通知包含已移转传送上述向前更 新请求的任务给上述第三电子装置的信息,上述第五电子装置代表上述事件 传播树状结构中的叶节点,上述第五电子装置向上述服务订阅相应于上述服 务的多个事件通知,以及,上述第一电子装置阶层式地通过上述第二电子装 置逐一传送上述事件通知给上述第五电子装置。
12. 如权利要求11所述的状态同步系统,其中,上述第四电子装置在从 上述第三电子装置接收到相应于上述移转请求的上述认可信息后,传送一叶 节点顺序表给上述第三电子装置,上述叶节点顺序表包含相应于上述第三电 子装置、上述第四电子装置与上述第五电子装置的多个叶节点识别码,上述 叶节点顺序表中的上述任意两个相邻叶节点识别码满足两个准则中的一者, 上述第一准则指出上述顺序较先的叶节点识别码所对应的电子装置所拥有的 服务状态识别码,较新于上述顺序较后的叶节点识别码所对应的电子装置所 拥有的服务状态识别码,以及,上述第二准则指出当上述顺序较先的叶节点 识别码所对应的电子装置所拥有的服务状态识别码,相同于上述顺序较后的 叶节点识别码所对应的电子装置所拥有的服务状态识别码时,上述顺序较先 的叶节点识别码所对应的电子装置位于上述事件传播树状结构中的上述顺序 较后的叶节点识别码所对应的电子装置的左方或右方。
13.如权利要求10所述的状态同步系统,其中,上述第二电子装置由 上述第三电子装置接收代表启动上述向上检查程序的一向上检查请求,上述 向上检查请求包含上述第 一服务状态版本识别码以及相应于上述第 一服务状 态版本识别码的一第一服务状态值,上述第二电子装置取得存储在上述第二 电子装置的一本地高速緩存空间中的一第三服务状态版本识别码,当上述第 三服务状态版本识别码较上述第一服务状态版本识别码为旧时,上述第二电 子装置向一第五电子装置传送上述向上检查请求以启动一向上检查程序,上述向上4全查程序用以将上述向上4企查i奮求向上传送到造成"良务版本不一致的 电子装置,其中,上述第五电子装置代表上述事件传播树状结构中的转递节 点且代表上述第二电子装置的父节点,上述第二电子装置判断上述第五电子 装置是否失效,当上述第五电子装置失效时,上述第二电子装置分別使用上 述第一服务状态版本识别码与上述第一服务状态值更新原本存储在上述第二电子装置的上述本地高速緩存空间中的上述第三服务状态版本识别码与相应 于上述第三服务状态版本识别码的一第三服务状态值,以及,向上述第三电子装置传送一向下更新请求以启动一向下更新程序,上述向下更新程序用以 向下通知上述第三电子装置存储相应于上述第 一服务状态版本识别码的上述 第一服务状态值。
14. 如权利要求13所述的状态同步系统,其中,当上述向上检查请求逾 时后,上述第二电子装置还没接收到由上述第五电子装置接收到一向上检查 认可信息时,判断上述第五电子装置失效,上述向上检查认可信息指出上述 第三电子装置已接收到上述向上检查请求。
15. 如权利要求IO所述的状态同步系统,其中,上述第三电子装置由一 第四电子装置接收上述向前更新请求,上述向前更新请求包含上述第一服务 状态版本识别码与相应于上述第 一服务状态版本识别码的 一第 一服务状态 值,上述第一服务状态版本识别码较上述第二服务状态版本识别码为新,上 述第三电子装置于接收上述向前更新请求后,由上述第二电子装置接收一向 下更新请求,上述向下更新请求包含一第三服务状态版本识别码与相应于上 述第三服务状态版本识別码的一第三服务状态值,上述第三电子装置分别使 用上述第三服务状态版本识别码与上述第三服务状态值更新原本存储的上述 第二服务状态版本识别码与上述第二服务状态值,上述第三电子装置判断上 述第三服务状态版本识别码是否较上述第一服务状态版本识别码为新,当上 述第三服务状态版本识别码较上述第一服务状态版本识别码为新时,传送一向后更新请求给上述第四电子装置,用以驱动上述第四电子装置启动一主要 节点移转程序,上述主要节点移转程序用以将传送上述向前更新请求的任务 由上述第四电子装置移转给上述第三电子装置。
16. 如权利要求15所述的状态同步系统,其中,上述第三电子装置在接 收上述向前更新请求后,以及在接收上述向下更新请求前,上述第三电子装 置传送一向上检查请求给上述第二电子装置以启动一向上检查程序,上述向上4全查程序用以将上述向上才全查请求向上传送到造成服务版本不一致的电子桂害 衣旦。
全文摘要
状态同步方法,包括取得存储在第一电子装置本地高速缓存空间中第一服务状态版本识别码;藉询问多个第二电子装置取得每第二电子装置中存储的第二服务状态版本识别码;判断每一第二服务状态版本识别码是否较第一服务状态版本识别码为旧;当第二服务状态版本识别码较第一服务状态版本识别码为旧时,传送向前更新请求给存储较旧第二服务状态版本识别码的第二电子装置,使该第二电子装置启动向上检查程序以更新较旧第二服务状态版本识别码。第一服务状态版本识别码与第二服务状态版本识别码由第三电子装置的服务产生。第一、二及三电子装置构成事件传播树状结构,第三电子装置位于该树状结构的根节点,第一、二电子装置位于该树状结构的叶节点。
文档编号H04L12/28GK101106489SQ200610101510
公开日2008年1月16日 申请日期2006年7月12日 优先权日2006年7月12日
发明者胡志麟 申请人:明基电通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1