CN101106489A - 状态同步系统及方法 - Google Patents
状态同步系统及方法 Download PDFInfo
- Publication number
- CN101106489A CN101106489A CNA2006101015103A CN200610101510A CN101106489A CN 101106489 A CN101106489 A CN 101106489A CN A2006101015103 A CNA2006101015103 A CN A2006101015103A CN 200610101510 A CN200610101510 A CN 200610101510A CN 101106489 A CN101106489 A CN 101106489A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- service state
- electronic installation
- recognition code
- version recognition
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Abstract
状态同步方法,包括取得存储在第一电子装置本地高速缓存空间中第一服务状态版本识别码;藉询问多个第二电子装置取得每第二电子装置中存储的第二服务状态版本识别码;判断每一第二服务状态版本识别码是否较第一服务状态版本识别码为旧;当第二服务状态版本识别码较第一服务状态版本识别码为旧时,传送向前更新请求给存储较旧第二服务状态版本识别码的第二电子装置,使该第二电子装置启动向上检查程序以更新较旧第二服务状态版本识别码。第一服务状态版本识别码与第二服务状态版本识别码由第三电子装置的服务产生。第一、二及三电子装置构成事件传播树状结构,第三电子装置位于该树状结构的根节点,第一、二电子装置位于该树状结构的叶节点。
Description
技术领域
此发明涉及一种事件同步技术,特别涉及一种在超大型分散服务环境中的状态同步系统及方法。
背景技术
在分布式环境(特别是于以事件来驱动的服务管理系统)中的装置可分享共通的状态(common states),来达成服务协调与统合(service coordinationand collaboration)的目的。一般而言,在服务管理系统中,服务状态改变的通知可以异步性(asynchronous)的方式来进行,亦即是一个服务(或一个中央管理平台)逐一通知所有改变的状态给装置。然而,当共通状态的值被高速缓存(cache)在装置中时,不同装置可用不同的方式来维护高速缓存的共通状态,所以,不同装置间可能会拥有不一致的共通状态的值,进而造成服务统合失败的情形。因此,需要一种状态同步装置及方法,用以降低不同装置间拥有不一致的共通状态的值的发生机会。
发明内容
本发明的目的在提供一种状态同步系统及方法,用以降低不同装置间拥有不一致的共通状态的值的发生机会。
本发明第一实施例提供一种状态同步方法,使用第一电子装置执行。第一实施例中包含以下步骤:取得存储在第一电子装置的本地高速缓存空间中的第一服务状态版本识别码;藉由询问多个第二电子装置来取得每一第二电子装置中所存储的第二服务状态版本识别码;判断每一第二服务状态版本识别码是否较第一服务状态版本识别码为旧;以及当第二服务状态版本识别码较第一服务状态版本识别码为旧时,传送向前更新请求给存储较旧的第二服务状态版本识别码的第二电子装置,使得存储较旧的第二服务状态版本识别码的第二电子装置启动向上检查程序以更新较旧的第二服务状态版本识别码。其中,第一服务状态版本识别码与第二服务状态版本识别码是由第三电子装置中的服务所产生。第一电子装置、第二电子装置以及第三电子装置被组织成事件传播树状结构,第三电子装置位于事件传播树状结构中的根节点,以及第一电子装置与第二电子装置位于事件传播树状结构中的叶节点。
本发明第二实施例另提供一种状态同步方法,使用第一电子装置执行。第二实施例中包含以下步骤:由第二电子装置接收向上检查请求,此向上检查请求包含第一服务状态版本识别码以及相应于第一服务状态版本识别码的第一服务状态值;取得存储在第一电子装置的本地高速缓存空间中的第二服务状态版本识别码;当第二服务状态版本识别码较第一服务状态版本识别码为旧时,向第三电子装置传送向上检查请求以启动向上检查程序,此向上检查程序用以将向上检查请求向上传送到造成服务版本不一致的电子装置;判断第三电子装置是否失效;当第三电子装置失效时,分别使用第一服务状态版本识别码与第一服务状态值更新原本存储在第一电子装置的本地高速缓存空间中的第二服务状态版本识别码与相应于第二服务状态版本识别码的第二服务状态值;以及当第三电子装置失效时,向第二电子装置传送向下更新请求以启动向下更新程序,此向下更新程序用以向下通知直接或间接连结于第一电子装置的所有节点,存储相应于第一服务状态版本识别码的第一服务状态值。第一电子装置、第二电子装置与第三电子装置被组织成事件传播树状结构,第一电子装置为第二电子装置的父节点,并且,第三电子装置为第一电子装置的父节点。
本发明第三实施例更提供一种状态同步方法,使用第一电子装置执行。第一电子装置中的本地高速缓存空间存储第一服务状态版本识别码与相应于第一服务状态版本识别码的第一服务状态值。第三实施例中包含以下步骤:由第二电子装置接收向前更新请求,此向前更新请求包含第二服务状态版本识别码与相应于第二服务状态版本识别码的第二服务状态值,且第二服务状态版本识别码较第一服务状态版本识别码为新;在接收向前更新请求后,由第三电子装置接收向下更新请求,向下更新请求包含第三服务状态版本识别码与相应于第三服务状态版本识别码的第三服务状态值;分别使用第三服务状态版本识别码与第三服务状态值更新原本存储在第一电子装置的本地高速缓存空间中的第一服务状态版本识别码与第一服务状态值;判断第三服务状态版本识别码是否较第二服务状态版本识别码为新;以及当第三服务状态版本识别码较第二服务状态版本识别码为新时,传送向后更新请求给第二电子装置,用以驱动第二电子装置启动主要节点移转程序。此主要节点移转程序用以将传送向前更新请求的任务由第二电子装置移转给第一电子装置。其中第一电子装置、第二电子装置以及第三电子装置被组织成事件传播树状结构,第一电子装置与第二电子装置位于事件传播树状结构中的叶节点,以及,第三电子装置为第一电子装置的父节点。
本发明实施例提供一种状态同步系统,包括第一、第二、第三与第四电子装置。第一电子装置包含一个服务。其中,第一电子装置、第二电子装置、第三电子装置以及第四电子装置被组织成事件传播树状结构。第一电子装置代表事件传播树状结构中的根节点,第二电子装置代表事件传播树状结构中的转递节点,第三电子装置以及第四电子装置代表事件传播树状结构中的叶节点。第三电子装置以及第四电子装置向服务订阅相应于服务的多个事件通知,以及第一电子装置阶层式地通过第二电子装置逐一传送事件通知给第三电子装置与第四电子装置。第四电子装置取得存储在第四电子装置的本地高速缓存空间中的第一服务状态版本识别码,藉由询问第三电子装置来取得第三电子装置中所存储的第二服务状态版本识别码,判断第二服务状态版本识别码是否较第一服务状态版本识别码为旧,当第二服务状态版本识别码较第一服务状态版本识别码为旧时,传送向前更新请求给第三电子装置,使得第三电子装置启动向上检查程序以更新较旧的第二服务状态版本识别码。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合附图,作详细说明如下。
附图说明
图1示出了依据本发明实施例的状态同步系统的网络结构示意图;
图2示出了依据本发明实施例的个人计算机的硬件结构图;
图3示出了依据本发明实施例的分布式事件传播机制示意图;
图4示出了范例的状态不一致示意图;
图5是范例的事件传播树状结构示意图;
图6是依据本发明实施例的由主要节点执行的状态同步方法;
图7是依据本发明实施例由非主要节点的叶节点执行的状态同步方法;
图8是依据本发明实施例的由转递节点或根节点执行的状态同步方法;
图9a是依据本发明实施例的由转递节点执行的状态同步方法;
图9b是依据本发明实施例的由非主要节点的叶节点执行的状态同步方法;
图10是范例的向前更新示意图;
第11、12与13图示出了依据本发明实施例的状态同步示意图;
图14是依据本发明实施例的由主要节点执行的状态同步方法;
图15是范例的主要节点移转示意图;
图16示出了依据本发明实施例的状态同步计算机可读取存储媒体示意图。
附图符号说明
10-状态同步系统;11、13、15、17、19-个人计算机;
21-处理单元;22-内存;23-存储装置;24-输出装置;
25-输入装置;26-通信装置;27-总线;S-根节点;
R1、R2、...、R9、R10-转递节点;L1、L2、L3、L4-叶节点;
Rk-1、Rk、Rk*、Rk’-转递节点;Li、Lj-叶节点;
T0-事件传播树状结构;Tk、Tk*、Tk’-子树;
V10、V11、V12、V13、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、S14430、S14450-方法步骤;160-存储媒体;1620-状态同步计算机程序。
具体实施方式
图1示出了依据本发明实施例的状态同步系统10的网络结构示意图。在较佳的情况下,此网络结构包括个人计算机11、13、15、17与19。其中,个人计算机11、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订阅一个服务,以便将来可接收到所订阅的服务的事件通知(其中包含服务状态值的信息)。当多部个人计算机订阅同一个服务时,个人计算机11可使用单点发布(unicasting)、多点发布(multicasting)或广播(broadcasting)的方式传递事件通知给订阅的计算机。订阅的计算机在接收到事件通知后,将其中的服务状态值存储在本地的高速缓存空间(local cache)。此外,订阅的计算机亦可主动向个人计算机11请求(request)服务状态值,并依据接收到的回复(response)中的服务状态值来更新本地所高速缓存的服务状态值。在此须注意的是,个人计算机11亦会传送相应于服务状态值的有效期间(validduration),代表在其有效期间逾时前,此高速缓存的服务状态值会处在一个有效的状态。
图2示出了依据本发明实施例的个人计算机11、13、15、17与19的硬件结构图。个人计算机11、13、15、17与19中的一者,包括处理单元21、内存22、存储装置23、输出装置24、输入装置25、通信装置26,并使用总线27将其连结在一起。除此之外,熟习此技艺人士也可将个人计算机11、13、15、17与19中的一者实施于其它计算机系统结构(configuration)上,例如,多处理器系统、以微处理器为基础或可编程的消费性电子产品(microprocessor-based or programmable consumer electronics)、网络计算机、迷你计算机、大型主机、笔记型计算机以及类似的设备。其中,以微处理器为基础或可编程的消费性电子产品可包括手机、投影机、显示屏幕、个人数字助理(personal digital assistant,PDA)、数字录像设备、数字音乐播放器等。处理单元21可包含一单一中央处理单元(central-processingunit;CPU)或者是关连于平行运算环境(parallel processing environment)的多个平行处理单元。内存22包含只读存储器(read only memory;ROM)、闪存(flash ROM)以及/或动态存取内存(random access memory;RAM),用以存储可供处理单元21执行的程序模块以及数据。一般而言,程序模块包含常序(routines)、程序(program)、对象(object)、组件(component)等,用以执行状态同步功能。本发明亦可以实施于分布式运算环境,其运算工作被一连结于通信网路的远程处理设备所执行。在分布式环境中,个人计算机11、13、15、17与19中的一者的功能执行,也许由本地以及多部远程计算机系统共同完成。在分布式环境中,程序模块可同时存在于本地以及远程记忆存储装置中,而远程访问结构包含分布式组件对象模型(DCOM)、通用对象请求中介结构(CORBA)、网页组件(Web objects)、网络服务(Web Services)或其它类似结构。
当订阅服务的个人计算机或电子装置散落在一个大型网络环境中时,使用一个分布式事件传播机制(distributed event dissemination mechanism)来传送事件通知给个人计算机或电子装置。图3示出了依据本发明实施例的分布式事件传播机制示意图。所有的个人计算机或电子装置被组的成为一个事件传播树状结构(event casting tree),使用类似瀑布的方法(cascade-like way)将事件通知由上而下传递。事件传播树状结构包含三种基本节点:根节点(root node)S、转递节点(relay node)R1至R10等、与叶节点(leaf node)L1至L4等。根节点S代表包含服务的个人计算机或电子装置,此服务为事件发布者,用以通过转递节点R1至R10等将事件通知传递至叶节点L1至L4等。叶节点L1至L4等为事件接收者,其向事件发布者订阅事件通知服务(event notification service)。转递节点R1至R10等代表中间(in-between)装置,位于根节点S与叶节点L1至L4等之间。转递节点可为个人计算机、电子装置、或甚至是网络装置,例如,无线接取点、基站、集线器、桥接器、路由器或其它用以处理网络通信的节点。
事件通知可包装成如下所示的格式:
Event notification
service_identifiersid;
service_location_reference slr;
relay_node_identifierrid;
state sValue;
version vValue;
time tValue;
duration dValue;
事件通知中包含多种数据域位,用以纪录服务识别码(serviceidentifier,sid)、服务位置参考(service location reference,slr)、转递节点识别码(relay node identifier,rid)、服务状态值(service statevalue,sValue)、服务状态版本识别码(service state version,vValue)、事件产生时间(tValue)与有效期间(valid duration,dValue)。版本识别码用以区分不同的事件通知。每一个版本识别码可包含一个服务识别码(service identifier)与一个事件识别码(event identifier),两识别码间以连字号(hypen)隔开,格式如下所示:
version:=”service identifier”-“event identifier”。
其中的转递节点识别码字段在初始化时设为空值(“null”value),包装在最初的事件通知中,并由根节点传送给子转递节点。每当转递节点接收到一个事件通知时,将自己的识别码加入到此事件通知中的转递节点识别码字段,并且将更新后的事件通知传送给子转递节点或叶节点。此外,转递节点将父节点识别码(parent’s rid)、以及事件通知中的服务识别码(sid)、服务状态值(sValue)与服务状态版本识别码(vValue),纪录到本地高速缓存空间中。纪录的格式可表示为<sid,parent’s rid,vValue,sValue>。每当叶节点接收到一个事件通知时,将父节点识别码(parent’s rid)以及事件通知中的服务识别码(sid)、转递节点识别码(slr)、服务状态值(sValue)与服务状态版本识别码(vValue)等信息,纪录到本地高速缓存空间中。纪录的格式可表示为<sid,slr,parent’s rid,vValue,sValue>。
任意两个叶节点可能在服务统合时发现拥有不同版本的服务状态值,而产生状态不一致的情况。其可能有存在许多造成状态不一致的原因,举例来说,可能因其中的一个转递节点暂时失效,造成暂时性的事件传递路径中断,或者是某两个节点间的传递路径上发生网络壅塞的请况。图4示出了范例的状态不一致示意图。事件传播树状结构T0中拥有一个根节点S,根节点S连结至一个转递节点Rk-1,并且,转递节点Rk-1连结至两个转递节点Rk*与Rk。当转递节点Rk*发生暂时性地不可预期的装置错误时,事件通知就无法传递到直接或间接连结于转递节点Rk*的所有转递节点或叶节点,因而造成子树(sub-tree)Tk*与Tk间产生状态不一致的情形。当叶节点Li与Lj间进行服务统合并检查彼此间的服务状态版本时,则会发现叶节点Li所拥有的服务状态值版本较叶节点Lj中所拥有的为旧。
假设一个统合群组(collaborative group)中包含m个叶节点,L1、L2至Lm。在相同统合群组中的所有叶节点,皆存储相应于同一个服务的服务状态值于其本地高速缓存空间中。在理想的情况下,在相同统合群组中的所有叶节点拥有相同版本识别码的服务状态值,例如,在相同统合群组中的任意两个叶节点Li与Lj所拥有的服务状态值版本为Vi=Vj。在进行服务统合作业之前,叶节点L1、L2至Lm需要先比对特定服务状态值的版本识别码。为有利于状态同步作业的进行,其中的一个叶节点须扮演主要节点(master node)的角色。主要节点从其它叶节点搜集服务状态值的版本信息,并且将较新的服务状态值传递给拥有较旧的服务状态值的叶节点。以下举出一个范例来说明主要节点的决定。图5是范例的事件传播树状结构示意图,其中包含四个叶节点L1、L2、L3与L4,其分别拥有V12、V11、V10与V12等版本的服务状态值,其中越大的服务状态版本识别码代表相应的服务状态值越新。拥有最大的服务状态版本识别码并且位为事件传播树状结构中的最右边的叶节点,被赋予担任主要节点的任务,如叶节点L4。
图6是依据本发明实施例的状态同步方法,由主要节点执行,例如图5的L4。在步骤611,取得存储在本地高速缓存空间的服务状态版本识别码Vi,此识别码相应于本地高速缓存空间中存储的最新的服务状态值本地高速缓存空间可被包含在内存22或存储装置23(如图2所示)中。在步骤S621,藉由发出多个请求(requests)来询问并取得所有其它叶节点(如图5中的L1至L3)所存储的服务状态版本识别码。在步骤S623,依序选择从叶节点所取得的其中的一服务状态版本识别码Vj,此识别码相应于其中的一个叶节点中所存储的最新的服务状态值。在步骤S631,判断Vj是否较Vi为旧,是则进行步骤S641的处理,否则进行步骤S651的处理。在步骤S641,传送向前更新请求(forward update request)给拥有此服务状态版本识别码Vj的叶节点。向前更新请求包括服务状态版本识别码Vi与相应的服务状态值。有关叶节点接收到向前更新请求的详细后续处理,请见以下图7的说明。在步骤S651,判断是否处理完所有叶节点的服务状态版本识别码,是则结束整个方法流程,否则进行步骤S623的处理。图10是范例的向前更新示意图,由叶节点L4担任主要节点,并且在执行图6所示的方法时,传送向前更新请求给叶节点L2与L3。
图7是依据本发明实施例的状态同步方法,由非主要节点的叶节点执行,例如如图5中的L1至L3。在步骤S711,从主要节点接收向前更新请求。在步骤S721,传送向上检查请求(upward check request)给父节点(可为转递节点或根节点),此请求中包括由主要节点所取得的服务状态值及其版本识别码。父节点识别码可由本地高速缓存空间中取得。
图8是依据本发明实施例的状态同步方法,由转递节点或根节点(如图3中的S、R1至R10等)执行。在步骤S811,接收到由子节点所传来的向上检查请求。在步骤S813,取得向上检查请求中的服务状态值及其服务状态版本识别码Vb。在步骤S815,取得存储在本地高速缓存空间中的服务状态识别码Va,此识别码相应于本地高速缓存空间中存储的最新的服务状态值。在步骤S821,判断Va是否较Vb为旧,是则进行步骤S831的处理,否则进行步骤S841的处理。在步骤S831,传送向上检查请求给父节点(可为转递节点或根节点),此请求中包括由接收的向上检查请求中所取得的服务状态值及其版本识别码。父节点识别码可由本地高速缓存空间中取得。在较佳的情况下,当父节点接收到向上检查请求后,会回复一个向上检查认可信息(upward checkacknowledgement),用以指出父节点已成功地接收到此向上检查请求并进行后续的处理。在步骤S833,判断父节点是否失效,是则进行步骤S835的处理,否则结束整个方法。例如,当向上检查请求逾时后,还没接收到由父节点接收到向上检查认可信息,则判断父节点失效。在步骤S835,使用取得的服务状态值及其服务状态版本识别码Vb来更新本地高速缓存空间中的服务状态值及其服务状态版本识别码。在步骤S841,传送向下更新请求(downwardupdate request)给所有的子节点(可为转递节点或叶节点),此请求中包括由本地高速缓存空间所取得的服务状态值及其版本识别码Va。在此须注意的是,服务状态版本识别码Va可能相同于或较新于由向上检查请求中所取得的服务状态版本识别码Vb。
图9a是依据本发明实施例的状态同步方法,由转递节点(如图3中的R1至R10等)执行。在步骤S911,接收到由父节点所传来的向下更新请求。在步骤S913,取得向下更新请求中的服务状态值及其服务状态版本识别码。在步骤S931,传送向下更新请求给所有连结的子节点(可为转递节点或叶节点),此请求中包括由接收的向下更新请求中所取得的服务状态值及其版本识别码。在步骤S941,使用取得的服务状态值及其服务状态版本识别码来更新本地高速缓存空间中的服务状态值及其服务状态版本识别码。
图9b是依据本发明实施例的状态同步方法,由非主要节点的叶节点执行,例如如图5中的L1至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所示的方法,子树Tk*中的所有的节点皆会使用接收的向下更新请求中的服务状态值及其服务状态版本识别码来更新本地高速缓存空间中的服务状态值及其服务状态版本识别码(如图9a与9b中的步骤S941所示)。
图12示出了依据本发明实施例的状态同步示意图。当主要节点Lj检测到所拥有的服务状态版本识别码Vj较叶节点Li中所拥有的服务状态版本识别码Vi为新时,传送向前检查请求给叶节点Li(如图6中的步骤S641所示)。参考图7所示的方法,当叶节点Li接收到向前检查请求后,传递一个向上检查请求给父节点来启动一个向上检查程序,用以将向上检查请求传送到造成服务状态版本不一致的节点。参考图8所示的方法,此向上检查程序会将此向上检查请求依序传送到转递节点Rk。当转递节点Rk检测到父节点失效时,使用从向上检查所取得的服务状态值及其服务状态版本识别码Vj来更新存储在本地高速缓存空间中的服务状态值及其服务状态版本识别码(如图8中的步骤S835所示),并且传送向下更新请求给所有的子节点(如图8中的步骤S841所示)来启动一个向下更新程序。此向下更新程序用以向下更新转递节点Rk所直接或间接连结的所有节点中的服务状态值及其服务状态识别码。参考图9a与9b所示的方法,子树Tk*中的所有的节点皆会使用接收的向下更新请求中的服务状态值及其服务状态版本识别码来更新本地高速缓存空间中的服务状态值及其服务状态版本识别码(如图9a与9b中的步骤S941所示)。
图13示出了依据本发明实施例的状态同步示意图。首先,当叶节点L2与L3接收由主要节点L4所传送的向前更新请求,并分别由适当节点执行完如第7、8、9a与9b图所示的方法后,叶节点L2与L2分别由向下更新请求中取得服务状态版本识别码V13与V14,并且服务状态版本识别码V13与V14较新于向前更新请求中所包含的服务状态版本识别码V12。所以,叶节点L2与L3分别传送包含服务状态版本识别码V13与V14的向后更新请求给主要节点L4,用以启动主要节点移转程序。
图14是依据本发明实施例的状态同步方法,由主要节点执行,例如图5的L4。在步骤14100,由叶节点接收多个向后更新请求,每一向后更新请求中包含发出请求的叶节点识别码以及存储的服务状态版本识别码。在步骤S14200,依据向后更新请求中的服务状态版本识别码决定出即将担任主要节点的叶节点。通常,拥有最大的服务状态版本识别码的叶节点中的一者,即可被赋予担任主要节点的任务。然而,为增进决定主要节点的效率,可制定一个准则来决定主要节点,此准则定义可被赋予担任主要节点的任务的叶节点为拥有最大的服务状态版本识别码并且位为事件传播树状结构中的最右边或最左边的叶节点,如图13中的叶节点L3。在步骤S41310,传送移转请求(transfer request)给决定的叶节点,此请求中包含即将移转主要节点的功能任务(亦即是传送向前更新请求的任务)给决定的叶节点的信息。在步骤S14330,从决定的叶节点接收相应于上述移转请求的认可信息(acknowledgement)。在步骤S14410,传送叶节点顺序表(ordered list)给决定的叶节点,此节点顺序表包含多个在相同统合群组中的叶节点识别码,任意两个相邻叶节点识别码必须满足以下列两个准则中的一者:(1)顺序较先的叶节点识别码所对应的叶节点所拥有的服务状态识别码,较新于顺序较后的叶节点识别码所对应的叶节点所拥有的服务状态识别码;(2)当顺序较先的叶节点识别码所对应的叶节点所拥有的服务状态识别码相同于顺序较后的叶节点识别码所对应的叶节点所拥有的服务状态识别码时,顺序较先的叶节点识别码所对应的叶节点位于顺序较后的叶节点识别码所对应的叶节点的左方。举例来说,参考图13,叶节点L2至L4分别拥有相应于服务状态版本识别码V12、V13、V14与V12的服务状态值。叶节点顺序表则为<L3、L2、L1、L4>。此叶节点顺序表可帮助决定的叶节点(亦即是新的主要节点)传递如上所述的向前更新请求给顺序较后于自己的所有叶节点L2、L1与L4。在步骤S14430,从决定的叶节点接收认可信息,此认可信息表示决定的叶节点已接收到叶节点顺序表的信息。在步骤S14450,传送移转通知(transfer announcement)给统合群组中的所有叶节点,此移转通知指出主要节点的功能任务已经移转至决定的叶节点。图15是范例的主要节点移转示意图,叶节点L4将主要节点的功能任务移转给叶节点L3。接着,新的主要节点L3传递向前更新请求给叶节点L2、L1与L4。
再者,本发明实施例更提出一种计算机可读取存储媒体,用以存储一计算机程序,上述计算机程序用以实现状态同步方法,这些方法会执行如上所述的步骤。图16示出了依据本发明实施例的状态同步计算机可读取存储媒体示意图。此存储媒体160,用以存储状态同步计算机程序1620,当此程序被加载到处理单元21(如图2所示)并执行时,实现如上所述的状态同步方法。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (16)
1.一种状态同步方法,使用一第一电子装置执行,该方法包括:
取得存储在上述第一电子装置的一本地高速缓存空间中的一第一服务状态版本识别码;
藉由询问多个第二电子装置来取得每一上述第二电子装置中所存储的一第二服务状态版本识别码;
判断每一上述第二服务状态版本识别码是否较上述第一服务状态版本识别码为旧;以及
当上述第二服务状态版本识别码较上述第一服务状态版本识别码为旧时,传送一向前更新请求给存储上述较旧的第二服务状态版本识别码的上述第二电子装置,使得存储上述较旧的第二服务状态版本识别码的上述第二电子装置启动一向上检查程序以更新上述较旧的第二服务状态版本识别码,
其中,上述第一服务状态版本识别码与上述第二服务状态版本识别码是由一第三电子装置中的一服务所产生,上述第一电子装置、上述第二电子装置以及上述第三电子装置被组织成一事件传播树状结构,上述第三电子装置位于上述事件传播树状结构中的根节点,以及上述第一电子装置与上述第二电子装置位于上述事件传播树状结构中的叶节点。
2.如权利要求1所述的状态同步方法,更包括:
在传送上述向前更新请求给存储上述较旧的第二服务状态版本识别码的上述第二电子装置后,从存储上述较旧的第二服务状态版本识别码的上述第二电子装置接收一向后更新请求,其中,上述向后更新请求包含较上述第一服务状态版本识别码为新的一第三服务状态版本识别码;
传送一移转请求给产生上述向后更新请求的上述第二电子装置,上述移转请求包含即将移转传送上述向前更新请求的任务给产生上述向后更新请求的上述第二电子装置的信息;以及
在从产生上述向后更新请求的上述第二电子装置接收到相应于上述移转请求的一认可信息后,传送多个移转通知给上述第二电子装置,上述移转通知包含已移转传送上述向前更新请求的任务给产生上述向后更新请求的上述第二电子装置的信息。
3.如权利要求2所述的状态同步方法,更包括:
在从产生上述向后更新请求的上述第二电子装置接收到相应于上述移转请求的上述认可信息后,传送一叶节点顺序表给产生上述向后更新请求的上述第二电子装置,
其中,上述叶节点顺序表包含相应于上述第一电子装置与上述第二电子装置的多个叶节点识别码,上述叶节点顺序表中的上述任意两个相邻叶节点识别码满足两个准则中的一者,上述第一准则指出上述顺序较先的叶节点识别码所对应的电子装置所拥有的服务状态识别码,较新于上述顺序较后的叶节点识别码所对应的电子装置所拥有的服务状态识别码,以及,上述第二准则指出当上述顺序较先的叶节点识别码所对应的电子装置所拥有的服务状态识别码,相同于上述顺序较后的叶节点识别码所对应的电子装置所拥有的服务状态识别码时,上述顺序较先的叶节点识别码所对应的电子装置位于上述事件传播树状结构中的上述顺序较后的叶节点识别码所对应的电子装置的左方或右方。
4.一种状态同步方法,使用一第一电子装置执行,该方法包括:
由一第二电子装置接收一向上检查请求,上述向上检查请求包含一第一服务状态版本识别码以及相应于上述第一服务状态版本识别码的一第一服务状态值;
取得存储在上述第一电子装置的一本地高速缓存空间中的一第二服务状态版本识别码;
当上述第二服务状态版本识别码较上述第一服务状态版本识别码为旧时,向一第三电子装置传送上述向上检查请求以启动一向上检查程序,上述向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电子装置;
判断上述第三电子装置是否失效;
当上述第三电子装置失效时,分别使用上述第一服务状态版本识别码与上述第一服务状态值更新原本存储在上述第一电子装置的上述本地高速缓存空间中的上述第二服务状态版本识别码与相应于上述第二服务状态版本识别码的一第二服务状态值;以及
当上述第三电子装置失效时,向上述第二电子装置传送一向下更新请求以启动一向下更新程序,上述向下更新程序用以向下通知直接或间接连结于上述第一电子装置的所有节点,存储相应于上述第一服务状态版本识别码的上述第一服务状态值,
其中,上述第一电子装置、上述第二电子装置与上述第三电子装置被组织成一事件传播树状结构,上述第一电子装置为上述第二电子装置的父节点,以及,上述第三电子装置为上述第一电子装置的父节点。
5.如权利要求4所述的状态同步方法,在判断上述第三电子装置是否失效的步骤中,更包括:
当上述向上检查请求逾时后,还没接收到由上述第三电子装置接收到一向上检查认可信息时,判断上述第三电子装置失效,
其中,上述向上检查认可信息指出上述第三电子装置已接收到上述向上检查请求。
6.如权利要求4所述的状态同步方法,其中,上述第一与第二服务状态版本识别码与上述第一与第二服务状态值由一第四电子装置中的一服务所产生,上述第四电子装置位于上述事件传播树状结构中的根节点。
7.一种状态同步方法,使用一第一电子装置执行,上述第一电子装置中的一本地高速缓存空间存储一第一服务状态版本识别码与相应于上述第一服务状态版本识别码的一第一服务状态值,其方法包括:
由一第二电子装置接收一向前更新请求,上述向前更新请求包含一第二服务状态版本识别码与相应于上述第二服务状态版本识别码的一第二服务状态值,上述第二服务状态版本识别码较上述第一服务状态版本识别码为新;
在接收上述向前更新请求后,由一第三电子装置接收一向下更新请求,上述向下更新请求包含一第三服务状态版本识别码与相应于上述第三服务状态版本识别码的一第三服务状态值;以及
分别使用上述第三服务状态版本识别码与上述第三服务状态值更新原本存储在上述第一电子装置的上述本地高速缓存空间中的上述第一服务状态版本识别码与上述第一服务状态值;
判断上述第三服务状态版本识别码是否较上述第二服务状态版本识别码为新;
当上述第三服务状态版本识别码较上述第二服务状态版本识别码为新时,传送一向后更新请求给上述第二电子装置,用以驱动上述第二电子装置启动一主要节点移转程序,
其中,上述主要节点移转程序用以将传送上述向前更新请求的任务由上述第二电子装置移转给上述第一电子装置,上述第一电子装置、上述第二电子装置以及上述第三电子装置被组织成一事件传播树状结构,上述第一电子装置与上述第二电子装置位于上述事件传播树状结构中的叶节点,以及,上述第三电子装置为上述第一电子装置的父节点。
8.如权利要求7所述的状态同步方法,其中,上述第一、第二与第三服务状态版本识别码与上述第一、第二与第三服务状态值由一第四电子装置中的一服务所产生,上述第四电子装置位于上述事件传播树状结构中的根节点。
9.如权利要求7所述的状态同步方法,在接收上述向前更新请求后,以及于接收上述向下更新请求前,更包括:
传送一向上检查请求给上述第三电子装置以启动一向上检查程序,上述向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电子装置。
10.一种状态同步系统,包括:
一第一电子装置,包含一服务;
一第二电子装置;
一第三电子装置;以及
一第四电子装置,
其中,上述第一电子装置、上述第二电子装置、上述第三电子装置以及上述第四电子装置被组织成一事件传播树状结构,上述第一电子装置代表上述事件传播树状结构中的根节点,上述第二电子装置代表上述事件传播树状结构中的转递节点,上述第三电子装置以及上述第四电子装置代表上述事件传播树状结构中的叶节点,上述第三电子装置以及上述第四电子装置向上述服务订阅相应于上述服务的多个事件通知,上述第一电子装置阶层式地通过上述第二电子装置逐一传送上述事件通知给上述第三电子装置与上述第四电子装置,以及,上述第四电子装置取得存储在上述第四电子装置的一本地高速缓存空间中的一第一服务状态版本识别码,藉由询问上述第三电子装置来取得上述第三电子装置中所存储的一第二服务状态版本识别码,判断上述第二服务状态版本识别码是否较上述第一服务状态版本识别码为旧,当上述第二服务状态版本识别码较上述第一服务状态版本识别码为旧时,传送一向前更新请求给上述第三电子装置,使得上述第三电子装置启动一向上检查程序以更新上述较旧的第二服务状态版本识别码。
11.如权利要求10所述的状态同步系统,其中,上述第四电子装置在传送上述向前更新请求给上述第三电子装置后,从上述第三电子装置接收一向后更新请求,其中,上述向后更新请求包含较上述第一服务状态版本识别码为新的一第三服务状态版本识别码,上述第四电子装置于接收到上述向后更新请求后,传送一移转请求给上述第三电子装置,上述移转请求包含即将移转传送上述向前更新请求的任务给上述第三电子装置的信息,上述第四电子装置在从上述第三电子装置接收到相应于上述移转请求的一认可信息后,传送一移转通知给一第五电子装置,上述移转通知包含已移转传送上述向前更新请求的任务给上述第三电子装置的信息,上述第五电子装置代表上述事件传播树状结构中的叶节点,上述第五电子装置向上述服务订阅相应于上述服务的多个事件通知,以及,上述第一电子装置阶层式地通过上述第二电子装置逐一传送上述事件通知给上述第五电子装置。
12.如权利要求11所述的状态同步系统,其中,上述第四电子装置在从上述第三电子装置接收到相应于上述移转请求的上述认可信息后,传送一叶节点顺序表给上述第三电子装置,上述叶节点顺序表包含相应于上述第三电子装置、上述第四电子装置与上述第五电子装置的多个叶节点识别码,上述叶节点顺序表中的上述任意两个相邻叶节点识别码满足两个准则中的一者,上述第一准则指出上述顺序较先的叶节点识别码所对应的电子装置所拥有的服务状态识别码,较新于上述顺序较后的叶节点识别码所对应的电子装置所拥有的服务状态识别码,以及,上述第二准则指出当上述顺序较先的叶节点识别码所对应的电子装置所拥有的服务状态识别码,相同于上述顺序较后的叶节点识别码所对应的电子装置所拥有的服务状态识别码时,上述顺序较先的叶节点识别码所对应的电子装置位于上述事件传播树状结构中的上述顺序较后的叶节点识别码所对应的电子装置的左方或右方。
13.如权利要求10所述的状态同步系统,其中,上述第二电子装置由上述第三电子装置接收代表启动上述向上检查程序的一向上检查请求,上述向上检查请求包含上述第一服务状态版本识别码以及相应于上述第一服务状态版本识别码的一第一服务状态值,上述第二电子装置取得存储在上述第二电子装置的一本地高速缓存空间中的一第三服务状态版本识别码,当上述第三服务状态版本识别码较上述第一服务状态版本识别码为旧时,上述第二电子装置向一第五电子装置传送上述向上检查请求以启动一向上检查程序,上述向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电子装置,其中,上述第五电子装置代表上述事件传播树状结构中的转递节点且代表上述第二电子装置的父节点,上述第二电子装置判断上述第五电子装置是否失效,当上述第五电子装置失效时,上述第二电子装置分别使用上述第一服务状态版本识别码与上述第一服务状态值更新原本存储在上述第二电子装置的上述本地高速缓存空间中的上述第三服务状态版本识别码与相应于上述第三服务状态版本识别码的一第三服务状态值,以及,向上述第三电子装置传送一向下更新请求以启动一向下更新程序,上述向下更新程序用以向下通知上述第三电子装置存储相应于上述第一服务状态版本识别码的上述第一服务状态值。
14.如权利要求13所述的状态同步系统,其中,当上述向上检查请求逾时后,上述第二电子装置还没接收到由上述第五电子装置接收到一向上检查认可信息时,判断上述第五电子装置失效,上述向上检查认可信息指出上述第三电子装置已接收到上述向上检查请求。
15.如权利要求10所述的状态同步系统,其中,上述第三电子装置由一第四电子装置接收上述向前更新请求,上述向前更新请求包含上述第一服务状态版本识别码与相应于上述第一服务状态版本识别码的一第一服务状态值,上述第一服务状态版本识别码较上述第二服务状态版本识别码为新,上述第三电子装置于接收上述向前更新请求后,由上述第二电子装置接收一向下更新请求,上述向下更新请求包含一第三服务状态版本识别码与相应于上述第三服务状态版本识别码的一第三服务状态值,上述第三电子装置分别使用上述第三服务状态版本识别码与上述第三服务状态值更新原本存储的上述第二服务状态版本识别码与上述第二服务状态值,上述第三电子装置判断上述第三服务状态版本识别码是否较上述第一服务状态版本识别码为新,当上述第三服务状态版本识别码较上述第一服务状态版本识别码为新时,传送一向后更新请求给上述第四电子装置,用以驱动上述第四电子装置启动一主要节点移转程序,上述主要节点移转程序用以将传送上述向前更新请求的任务由上述第四电子装置移转给上述第三电子装置。
16.如权利要求15所述的状态同步系统,其中,上述第三电子装置在接收上述向前更新请求后,以及在接收上述向下更新请求前,上述第三电子装置传送一向上检查请求给上述第二电子装置以启动一向上检查程序,上述向上检查程序用以将上述向上检查请求向上传送到造成服务版本不一致的电子装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101015103A CN101106489A (zh) | 2006-07-12 | 2006-07-12 | 状态同步系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101015103A CN101106489A (zh) | 2006-07-12 | 2006-07-12 | 状态同步系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101106489A true CN101106489A (zh) | 2008-01-16 |
Family
ID=39000186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101015103A Pending CN101106489A (zh) | 2006-07-12 | 2006-07-12 | 状态同步系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101106489A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764830A (zh) * | 2008-11-28 | 2010-06-30 | 新奥特(北京)视频技术有限公司 | 一种基于消息订阅方式的状态同步方法及系统 |
CN108234173A (zh) * | 2016-12-21 | 2018-06-29 | 中国电信股份有限公司 | 节点副本更新方法和装置 |
CN111135559A (zh) * | 2019-12-27 | 2020-05-12 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
-
2006
- 2006-07-12 CN CNA2006101015103A patent/CN101106489A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764830A (zh) * | 2008-11-28 | 2010-06-30 | 新奥特(北京)视频技术有限公司 | 一种基于消息订阅方式的状态同步方法及系统 |
CN108234173A (zh) * | 2016-12-21 | 2018-06-29 | 中国电信股份有限公司 | 节点副本更新方法和装置 |
CN108234173B (zh) * | 2016-12-21 | 2021-05-04 | 中国电信股份有限公司 | 节点副本更新方法和装置 |
CN111135559A (zh) * | 2019-12-27 | 2020-05-12 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
CN111135559B (zh) * | 2019-12-27 | 2023-06-27 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110851253B (zh) | 一种远程运维的方法、系统、存储介质及电子设备 | |
KR101577920B1 (ko) | 위치-기반 그룹 생성 방법, 장치 및 시스템 | |
CN106874334B (zh) | 一种数据处理方法及装置、资讯处理系统 | |
CN107357571B (zh) | 设备组件程序的维护方法及系统 | |
CN101421985A (zh) | 使用无线信标广播来提供媒体消息 | |
CN103379159A (zh) | 一种分布式Web站点数据同步的方法 | |
CN108712501A (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
CN101383839A (zh) | 基于数据服务器的数据分发系统及其实现方法 | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN101453487A (zh) | 用于混合系统的存储器到存储装置通信的方法和系统 | |
CN101326512A (zh) | 自动的设备博客创建 | |
US7366505B2 (en) | Apparatus and method for delivering messages to a mobile information terminal | |
CN110990081A (zh) | 微服务注册、发现方法及装置、存储介质及电子设备 | |
CN104394601A (zh) | 一种WiFi无线网络的访问控制方法、装置及路由器 | |
CN111880948A (zh) | 数据刷新方法、装置、电子设备及计算机可读存储介质 | |
CN102833272A (zh) | 一种基于用户订阅的下载方法及装置 | |
CN101675424A (zh) | 用于可扩展和冗余电信系统的进程间通信方法和装置 | |
US20160183082A1 (en) | Information processing device, server device, data communication system, data communication method, and computer-readable storage medium storing data communication program | |
CN101106489A (zh) | 状态同步系统及方法 | |
CN112714042B (zh) | 压力测试方法、装置、电子设备和存储介质 | |
CN100531059C (zh) | 状态同步系统及方法 | |
CN103024049A (zh) | 实现浏览器数据同步的系统 | |
CN112825525B (zh) | 用于处理事务的方法和装置 | |
CN115951923B (zh) | 订阅事件管理方法、显示系统、设备和存储介质 | |
CN111935316B (zh) | 一种前端设备目录获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |