CN100362801C - 一种仲裁主对象的方法 - Google Patents
一种仲裁主对象的方法 Download PDFInfo
- Publication number
- CN100362801C CN100362801C CNB2004100428311A CN200410042831A CN100362801C CN 100362801 C CN100362801 C CN 100362801C CN B2004100428311 A CNB2004100428311 A CN B2004100428311A CN 200410042831 A CN200410042831 A CN 200410042831A CN 100362801 C CN100362801 C CN 100362801C
- Authority
- CN
- China
- Prior art keywords
- main object
- timer
- manager
- sends
- main
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种仲裁主对象的方法,该方法包括:a.非主对象判断是否在一段预定时间内收到主对象发送来的广播信息,如果收到,则结束流程;否则该非主对象向管理者发出主对象申请;b.管理者接收所述主对象申请,向发送所述主对象申请的非主对象发送主对象申请确认响应;c.发送所述主对象申请的非主对象收到管理者的主对象申请确认后成为新的主对象。本发明所提供的这种仲裁主对象的方法,可以降低仲裁算法的复杂性,减少进行信息交互的开销,并增加主对象仲裁的灵活性和可靠性。
Description
技术领域
本发明涉及一种用在分布式处理系统中的仲裁主对象的方法。
背景技术
一般地,分布式处理系统包括多个相互连接的分布、对等的对象,由多个对象来处理一个事务,同时,分布式处理系统还可以包括一个管理者,由管理者维护所有对象的属性信息。比如,计算机网络、卫星通信系统、收银机系统、ATM取款机系统等都可以看作是一种分布式处理系统。不同的分布式处理系统,对象的属性信息可能不一样,比如收银机系统,其对象的属性信息包括对象的位置、编号、运行状态和运行时间等。
在分布式处理系统中,经常需要从该分布式处理系统包括的所有对象中仲裁出一个主对象,然后由主对象来维护系统的一些公共信息,并定期向其它非主对象发布包含这些公共信息的广播信息。比如,系统时间同步信息就是一种公共信息,主对象一般需要定期向非主对象发布包含系统时间同步信息的广播信息,以保证整个系统对象时间同步。
现有技术仲裁主对象的一种方法是集中仲裁,也就是由系统管理者从系统对象中指定一个对象作为主对象。具体过程就是:管理者首先向某个对象发送主对象指示,该对象收到管理者的主对象指示后,向管理者发出主对象指示响应,并向其它对象发送广播信息。管理者收到该对象发出的主对象指示响应后,确认主对象指定成功。由于这种仲裁主对象的方法仅需要管理者与某个对象进行很少的信息交互就可以指定一个主对象,因而比较简单,开销也比较小。
但是,由于管理者需要维护所有对象的属性信息,所以管理者不能灵活地处理对象的故障、离开和加入。比如,如果主对象或非主对象离开或发生故障,管理者就需要花费一定的时间来监测、确认对象是否离开或发生故障,或者通过等待超时的方式来判断对象是否离开或发生故障,而管理者在指定一个对象作为主对象之前,也需要花费一定的时间对该对象进行监测、确认该对象是否可用,因而管理者往往不能很快指定一个新的主对象。而且,一个新对象加入系统后,首先由管理者进行登记,然后从主对象获取公共信息,这也增加了处理的复杂性和延迟。另外,如果管理者所指定的主对象不能正常工作,但管理者认为主对象已经指定成功,这就可能造成管理者在很长一段时间内不会重新指定一个新的主对象。因此,由管理者指定主对象的方法会导致主对象的仲裁过于依赖管理者,进行主对象仲裁的灵活性和可靠性比较差。
现有技术仲裁主对象的另一种方法是分布仲裁,也就是由多个分布的对象通过仲裁协议来选出一个主对象。分布对象采用自定义的仲裁协议进行信息交互来选举出一个主对象,由于每个对象都可以申请成为主对象,这就需要每个对象与其它对象进行信息交互以确认是否能够成为主对象。如果当前主对象发生故障或离开了,每个对象就会向其它对象发出请求,然后根据仲裁协议重新仲裁出一个新的主对象。因此,该方法不需要管理者干预就可以仲裁出主对象,可靠性比较高。但是,为了仲裁出一个主对象,每个对象都需要与其它对象进行信息交互以确认是否能够成为主对象,因此,采用这种分布仲裁方法所需要的进行信息交互的开销就会很大,响应的速度也较慢,而且实现起来也比较复杂。
发明内容
有鉴于此,本发明的主要目的在于提供一种仲裁主对象的方法,使其能降低仲裁算法的复杂性,减少进行信息交互的开销,并增加主对象仲裁的灵活性和可靠性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种仲裁主对象的方法,该方法包括以下步骤:
a.非主对象判断是否在一段预定时间内收到主对象发送来的广播信息,如果收到,则结束流程;否则该非主对象向管理者发出主对象申请;
b.管理者接收所述主对象申请,向发送所述主对象申请的非主对象发送主对象申请确认响应;
c.发送所述主对象申请的非主对象收到管理者的主对象申请确认后成为新的主对象。
步骤a中,所述一段预定时间可以为主对象发布广播信息的规定时间与非主对象发起主对象申请的定时器时间长度之和;则步骤a包括:
a1.非主对象判断是否在规定时间内收到主对象发送来的广播信息,如果没有收到,则为该非主对象启动一个定时器开始计时;否则结束流程;
a2.该非主对象判断是否在对应的定时器时间长度内收到主对象发送来的广播信息,如果收到,则该非主对象对应的定时器停止计时,结束流程;否则该非主对象向管理者发出主对象申请。
步骤a1中,在所述为该非主对象启动一个定时器开始计时之前,该方法进一步包括:管理者为该非主对象配置用于定义所述非主对象发起主对象申请的定时器时间长度的时间间隔,并判断该非主对象是否有自然数的编号,如果没有,则管理者为该非主对象分配唯一的自然数编号,否则将该非主对象已有的编号作为对象编号;
则步骤a2中,所述非主对象发起主对象申请的定时器时间长度为非主对象的对象编号与管理者所配置的时间间隔的乘积。
上述方案中,在所述步骤a1之前,该方法可以进一步包括:判断对象是否为加入系统的新对象,如果是,则默认该对象为非主对象,并启动一个定时器开始计时,然后直接执行步骤a2;否则执行步骤a1。该方法还可以包括:在系统重新启动之后,为所有对象分别启动一个定时器开始计时,然后直接执行步骤a2。
另外,该方法进一步包括:所述管理者向发送所述主对象申请的非主对象之外的所有非主对象发送非主对象通知。
该方法还可以包括:非主对象接收管理者发来的非主对象通知,在该非主对象收到非主对象通知后,判断该非主对象的定时器是否停止计时,如果没有停止计时,则将该非主对象的定时器停止计时,结束流程;否则不作处理。
步骤c中,在所述非主对象成为新的主对象之后,进一步包括:该新的主对象向所有非主对象发送广播信息。
由上述方案可以看出,本发明的关键在于:对于每个非主对象,该非主对象判断是否在一段预定时间内收到主对象发来的广播信息,如果没有收到,则非主对象根据自身的对象编号,在不同的时间主动向管理者发出主对象申请来请求成为主对象,发出该主对象申请的非主对象收到管理者的主对象申请确认后,成为主对象。
因此,本发明所提供的这种仲裁主对象的方法可以使非主对象自动判断主对象是否离开或发生故障,并使非主对象主动要求成为主对象,不至于过于依赖管理者,因而可以提高主对象仲裁的灵活性和可靠性。另外,由非主对象在不同的时间主动向管理者发出主对象申请,可以减少多个非主对象同时要求成为主对象的冲突,降低管理者的仲裁负担。而且,通过管理者处理主对象申请并发出的主对象申请确认响应给对应的非主对象,可以减少对象之间的信息交互,进而减少主对象仲裁的开销,并降低仲裁算法的复杂性,简单灵活地实现主对象的仲裁。
附图说明
图1为本发明仲裁主对象的方法流程图;
图2为本发明一个具体实施例系统中对象与管理者分布示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的关键就是:对于每个非主对象,该非主对象判断是否在一段预定时间内收到主对象发来的广播信息,如果没有收到,则非主对象根据自身的对象编号,在不同的时间主动向管理者发出主对象申请来请求成为主对象,发出该主对象申请的非主对象收到管理者的主对象申请确认后,成为主对象。
其中,一段预定时间可以分为两段,分别为主对象发布广播信息的规定时间和广播信息发布超时后非主对象发起主对象申请的定时器时间长度。规定时间是指非主对象定期从主对象接收广播信息的最大时间间隔,用于防止广播信息的抖动,也就是由于线路故障所导致的广播信息的偶尔丢失,只要非主对象在规定时间内收到广播信息,就认为广播信息是正常发送的;非主对象发起主对象申请的定时器时间长度是指在定时器计时结束时控制非主对象向管理者发出主对象申请的时间长度,用于防止主对象离开或发生故障所导致的广播信息的消失。
本发明中,每个对象都需要有一个唯一的、互不相同的对象编号,对象编号范围为从1到N的自然数,N是当前与系统建立连接的对象的个数。这些对象编号可以是系统对象本身固有的、用于标识对象身份的静态信息。如果对象用于标识对象身份的静态信息不是从1到N的自然数;也可以是由管理者为该对象动态分配一个唯一的、从1到N的自然数作为对象编号。另外,还需要由管理者定义一个时间间隔T,用于设置对象定时器的时间长度,时间间隔T的取值大小可以根据系统响应要求、传输时延等来确定。如果系统响应要求高、传输时延小,则时间间隔T的取值可以小一些,否则时间间隔T的取值就可以大一些。
对于预定时间包含主对象发布广播信息的规定时间和广播信息发布超时后非主对象发起主对象申请的定时器时间长度的情况,其中的非主对象发起主对象申请的定时器时间长度随对象编号的不同而不同,设M为一个对象的编号,则该对象定时器的时间长度为M*T。当系统为一个对象启动一个定时器时,该定时器将从初始状态开始计时。如果定时器的计时时间达到定时器的时间长度,则称该定时器计时结束。如果对象在其对应的定时器计时过程中收到广播信息,该对象的定时器就会停止计时,并初始化。
在分布式处理系统中,非主对象一般需要在规定时间内从主对象获取一些公共信息,比如系统时间同步信息,如果非主对象在规定时间内没有从主对象获取到包含系统时间同步信息的广播信息,系统就可能会出现异常。因此,在本实施例中,需要非主对象判断自身是否能够在规定时间内从主对象接收到广播信息。如果非主对象在规定时间内没有收到广播信息,就需要重新仲裁出一个新的主对象。规定时间的值是根据不同应用而设置的。比如,分布式收银机需要在规定时间内从一个收银机获取时间同步信息,规定时间的值可以是1~60分钟,具体的规定时间值可根据当前分布式处理系统所处理业务对时间的精度要求而定。一般来说,规定时间的值要比时间间隔T小。
本实施例中,主对象离开或发生故障之后,其它非主对象就成为被仲裁对象,假设每个被仲裁对象在主对象仲裁过程中一直与管理者保持连接状态。如果某个被仲裁对象没有编号,则管理者为其分配编号。具有编号的被仲裁对象从管理者获取用于设置定时器时间长度的时间间隔T。
如图1所示,本发明仲裁主对象的方法包括以下步骤:
步骤101~102、非主对象判断是否在规定时间内收到主对象发来的广播信息,如果收到,则结束流程;否则为该非主对象启动一个定时器开始计时。
步骤103~105、该非主对象判断是否在对应的定时器时间长度内收到主对象发送来的广播信息或管理者发送来的非主对象通知,如果收到,则该非主对象的定时器停止计时,并初始化,结束流程;否则该非主对象向管理者发出主对象申请。
通常,管理者始终会检测是否收到非主对象发送来的主对象申请,如果管理者接收到主对象申请,则管理者就根据收到的主对象申请向发送该主对象申请的对象发出主对象申请确认响应,并向其它非主对象发出非主对象通知。
步骤106、发送该主对象申请的非主对象接收到管理者发来的主对象申请确认响应后,该非主对象成为新的主对象,并向其它非主对象发送广播信息;其它非主对象收到管理者发来的非主对象通知后,如果定时器没有计时结束,则其它非主对象对应的定时器停止计时,并初始化。
根据上述方案,如果系统重新启动,则在系统启动后,系统将分别为每个对象启动一个定时器开始计时;如果系统运行过程中,一个新对象加入,则将其默认为非主对象,并为其启动一个定时器开始计时;如果系统运行过程中,主对象离开系统或发生故障,则其它非主对象在规定时间内就不能收到主对象发送的广播信息了,这时,系统在规定时间后也将分别为其它非主对象启动一个定时器开始计时。本实施例中,每个非主对象发起主对象申请的定时器时间长度为非主对象的对象编号与时间间隔T的乘积。由于每个对象的编号不同,所以每个定时器的时间长度也不会相同。
这样,非主对象发起主对象申请的定时器时间长度最短的定时器首先计时结束,比如,编号为K的非主对象的定时器首先计时结束,这时,非主对象K就会首先向管理者发送一个主对象申请。如果其它非主对象在各自对应的定时器计时结束之前,没有收到管理者发送来的非主对象通知或主对象发送来的广播信息,则也会向管理者发出一个主对象申请。当管理者收到一个主对象申请,比如是非主对象K发出的主对象申请时,管理者就向非主对象K发送主对象申请确认响应,并向其它非主对象发出非主对象通知。非主对象K收到管理者的主对象申请确认响应后就成为主对象,并向其它非主对象发送广播信息;其它非主对象收到管理者发送来的非主对象通知或主对象发送来的广播信息后,其它非主对象对应的定时器停止计时。如果管理者在收到一个主对象申请之后又收到其它的主对象申请,则管理者将向发送其它的主对象申请的非主对象发出主对象申请确认响应。
由此可见,如果某个非主对象在向管理者发出主对象申请之后就离开或发生故障了,管理者还会向该非主对象发出主对象申请确认响应,但当管理者收到下一个主对象申请时,管理者就会向下一个发送主对象申请的非主对象发出主对象申请确认响应。因此,发出主对象申请的非主对象的离开或发生故障对管理者重新指定主对象的影响很小,进而增加了管理者仲裁主对象的灵活性。
以下举一个具体的例子来说明。
如图2所示,系统包括一个管理者和编号分别为1、2、3和4的四个对象,且这四个对象当前均为非主对象,因此,需要从这四个对象中选出一个对象作为主对象。假设这四个对象已经从管理者获得了时间间隔T。
由于当前没有主对象,因而这四个对象在规定时间内不能收到广播信息。这时,系统为这四个对象分别启动一个定时器,定时器的时间长度分别为1*T、2*T、3*T和4*T。如果对象1对应的定时器计时结束之前,对象1没有收到主对象发送来的广播信息或管理者发送来的非主对象通知,则对象1就会向管理者发出主对象申请。类似地,如果对象2、或对象3、或对象4在其定时器计时结束之前,仍然没有收到主对象发送来的广播信息或管理者发送来的非主对象通知,则也会向管理者发出主对象申请。
当管理者接收到对象1发出的主对象申请时,管理者就会向对象1发出主对象申请确认响应,并向对象2、对象3和对象4发出非主对象通知。对象1在接收到管理者发送来的主对象申请确认响应后,成为主对象,并向对象1、对象3和对象4发布广播信息。对象2、对象3和对象4收到管理者发送来的非主对象通知后,如果其定时器计时没有结束,则定时器停止计时。
由此可见,本发明提供的仲裁主对象的方法仅需要管理者与收到的主对象申请对应的对象进行很少的信息交互就可以完成主对象的仲裁,因而减少了进行信息交互的开销,并增加了主对象仲裁的灵活性。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种仲裁主对象的方法,其特征在于,该方法包括以下步骤:
a.非主对象判断是否在一段预定时间内收到主对象发送来的广播信息,如果收到,则结束流程;否则该非主对象向管理者发出主对象申请;
b.管理者接收所述主对象申请,向发送所述主对象申请的非主对象发送主对象申请确认响应;
c.发送所述主对象申请的非主对象收到管理者的主对象申请确认后成为新的主对象。
2.根据权利要求1所述的方法,其特征在于,步骤a中,所述一段预定时间为主对象发布广播信息的规定时间与非主对象发起主对象申请的定时器时间长度之和;则步骤a包括:
a1.非主对象判断是否在规定时间内收到主对象发送来的广播信息,如果没有收到,则为该非主对象启动一个定时器开始计时;否则结束流程;
a2.该非主对象判断是否在对应的定时器时间长度内收到主对象发送来的广播信息,如果收到,则该非主对象对应的定时器停止计时,结束流程;否则该非主对象向管理者发出主对象申请。
3.根据权利要求2所述的方法,其特征在于,步骤a1中,在所述为该非主对象启动一个定时器开始计时之前,该方法进一步包括:管理者为该非主对象配置用于定义所述非主对象发起主对象申请的定时器时间长度的时间间隔,并判断该非主对象是否有自然数的编号,如果没有,则管理者为该非主对象分配唯一的自然数编号,否则将该非主对象已有的编号作为对象编号;
则步骤a2中,所述非主对象发起主对象申请的定时器时间长度为非主对象的对象编号与管理者所配置的时间间隔的乘积。
4.根据权利要求3所述的方法,其特征在于,在所述步骤a1之前,该方法进一步包括:判断对象是否为加入系统的新对象,如果是,则默认该对象为非主对象,并启动一个定时器开始计时,然后直接执行步骤a2;否则执行步骤a1。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括:在系统重新启动之后,为所有对象分别启动一个定时器开始计时,然后直接执行步骤a2。
6.根据权利要求1或2所述的方法,其特征在于,该方法进一步包括:所述管理者向发送所述主对象申请的非主对象之外的所有非主对象发送非主对象通知。
7.根据权利要求6所述的方法,其特征在于,该方法进一步包括:非主对象接收管理者发来的非主对象通知,在该非主对象收到非主对象通知后,判断该非主对象的定时器是否停止计时,如果没有停止计时,则将该非主对象的定时器停止计时,结束流程;否则不作处理。
8.根据权利要求1或2所述的方法,其特征在于,步骤c中,在所述非主对象成为新的主对象之后,进一步包括:该新的主对象向所有非主对象发送广播信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100428311A CN100362801C (zh) | 2004-05-26 | 2004-05-26 | 一种仲裁主对象的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100428311A CN100362801C (zh) | 2004-05-26 | 2004-05-26 | 一种仲裁主对象的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1705278A CN1705278A (zh) | 2005-12-07 |
CN100362801C true CN100362801C (zh) | 2008-01-16 |
Family
ID=35577726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100428311A Expired - Fee Related CN100362801C (zh) | 2004-05-26 | 2004-05-26 | 一种仲裁主对象的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100362801C (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061600A (en) * | 1997-05-09 | 2000-05-09 | I/O Control Corporation | Backup control mechanism in a distributed control network |
US6363416B1 (en) * | 1998-08-28 | 2002-03-26 | 3Com Corporation | System and method for automatic election of a representative node within a communications network with built-in redundancy |
CN1386346A (zh) * | 2000-07-28 | 2002-12-18 | 三菱电机株式会社 | 通信方法及通信系统 |
US20030140108A1 (en) * | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Master node selection in clustered node configurations |
-
2004
- 2004-05-26 CN CNB2004100428311A patent/CN100362801C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061600A (en) * | 1997-05-09 | 2000-05-09 | I/O Control Corporation | Backup control mechanism in a distributed control network |
US6363416B1 (en) * | 1998-08-28 | 2002-03-26 | 3Com Corporation | System and method for automatic election of a representative node within a communications network with built-in redundancy |
CN1386346A (zh) * | 2000-07-28 | 2002-12-18 | 三菱电机株式会社 | 通信方法及通信系统 |
US20030140108A1 (en) * | 2002-01-18 | 2003-07-24 | International Business Machines Corporation | Master node selection in clustered node configurations |
Also Published As
Publication number | Publication date |
---|---|
CN1705278A (zh) | 2005-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874562A (zh) | 分布式高并发消息队列推送系统 | |
CN105468450A (zh) | 任务调度方法及系统 | |
CN106790694A (zh) | 分布式系统及分布式系统中目标对象的调度方法 | |
CN103199972A (zh) | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 | |
US20100180139A1 (en) | Power Outage Operation Of A Cable Modem | |
EP2688333B1 (en) | Parallel monitoring method and system for communication base station power sources | |
CN112333249B (zh) | 一种业务服务系统及方法 | |
CN101110676B (zh) | 对上行带宽授权进行排序的方法、系统 | |
CN1926825B (zh) | 能够用帧来代替控制站的终端 | |
CN106850255A (zh) | 一种多机备份的实现方法 | |
CN100362801C (zh) | 一种仲裁主对象的方法 | |
KR101227885B1 (ko) | 공유 메모리 채널 다중화 방법 및 그 장치 | |
CN115023929A (zh) | 数据同步方法、装置、系统、电子设备及存储介质 | |
JPH08110888A (ja) | データネットワークを制御する方法及び構成 | |
TWI653863B (zh) | 連接控制電路 | |
CN102811154B (zh) | 资源获取方法与网络服务器系统 | |
CN109586978B (zh) | 总线拓扑网络自组网方法 | |
JP3345546B2 (ja) | データ配送方法及び情報通信装置 | |
JPH09167135A (ja) | 処理分担決定システムと装置と方法 | |
CN104052776A (zh) | Vm开机方法、vmm、共享存储系统、vdi系统及物理主机 | |
CN113398570B (zh) | 服务器分组方法、设备、存储介质和服务器集群 | |
CN116991591B (zh) | 一种数据调度方法、装置及存储介质 | |
JPH11136266A (ja) | 定周期トークンパッシング伝送制御方法 | |
US7274712B2 (en) | System and method of operating the system that responds to channel change requests without causing macro-blocking | |
CN111431780B (zh) | 一种1553b总线系统的通信方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080116 Termination date: 20180526 |