分布式多处理器系统及其上对等关联状态机间通讯的方法

文档序号:6511691阅读:241来源:国知局
专利名称:分布式多处理器系统及其上对等关联状态机间通讯的方法
技术领域
本发明涉及分布式多处理器系统,更具体地,本发明涉及分布式多处理器系统中对等关联状态机之间通讯的方法。
背景技术
所谓对等关联状态机,是指软件系统中同一业务处理单元内的一对或多个在业务逻辑上地位对等的状态机,并且这些状态机在业务逻辑上存在着一定的关联关系,需要彼此访问对方的状态机数据等相关信息。为了描述简便起见,后文中有些地方直接使用“对等状态机”和“状态机”的术语,指的都是“对等关联状态机”;另外,后文中的“对方状态机”术语,则指的是“一对对等状态机中相对本方状态机而言的另外一方状态机”。
在现有技术中,分布式多处理器系统中不同处理器上的对等关联状态机之间往往通过消息交互方式实现相互通讯。
图1对现有分布式多处理器系统中对等关联状态机之间的消息交互情形进行了说明。
如图1,状态机1_fsm_1和2_fsm_2分别为处理器1和处理器2中的一对对等关联状态机,由于业务逻辑的需要,它们需要相互访问对方的状态机相关数据,现有技术中,往往通过状态机1_fsm_1和2_fsm_2之间的直接消息交互方式实现数据访问。
这样,如果这些对等关联状态机之间关系非常紧密,业务逻辑过程中需要频繁交互访问对方状态机的相关数据时,处理器之间的消息交互的开销,例如处理器的CPU时间占用,就会非常大。
此外,在电信系统软件的开发过程中,通常会面临着这样的实际需求将已有的单处理器系统模式的控制软件系统转换为分布式的多处理器系统模式的控制软件系统,以解决系统容量增大的需求。在单处理器系统的控制软件中,一些业务处理单元的对等状态机之间逻辑关联非常紧密,需要频繁地交互访问对方状态机的相关数据,考虑到通过消息进行交互的开销非常大,往往直接通过应用程序接口(API)方式进行数据信息访问。例如,在软交换系统中,呼叫服务器的媒体控制部分因为与上层业务协议层之间的不对等关系,即多对一关系,如两个/多个呼叫方协议对应一个连接/会议,往往采取集中控制模型实现,其连接管理业务单元的对等状态机之间逻辑关联紧密,需要频繁地交互访问对方状态机的相关数据。
图2以一单处理器呼叫服务器系统中的连接管理业务单元为例对这种数据信息的交互访问进行了说明。
如图2所示,状态机fsm_1和fsm_2为位于一单处理器呼叫服务系统中连接管理业务单元的一对对等关联状态机,它们分别是处于同一呼叫连接两端的主被叫两方。为了生成下层业务单元的状态机low_fsm,它们需要频繁交互访问对方对等状态机的相关数据。由于位于单处理器系统中,对等状态机之间通过API调用直接访问对方状态机的相关数据信息,如连接状态,物理节点信息及其变化更新。
在分布式多处理器系统中,处于同一呼叫连接的两端的对等状态机会运行在不同的处理器上,在这种情况下单处理器上的API调用方式行不通了。传统的处理方法是通过修改状态机所处业务控制单元的程序逻辑机制,将对等状态机之间的API调用转换为消息交互,以适应多处理器之间的消息通讯。现有技术这种从单处理器系统的API访问方式转换到多处理器之间的消息交互方式的方法,需要重新设计修改业务单元的程序逻辑。这极可能会影响到原有系统的业务逻辑,并需要对例如包括程序逻辑的整个业务单元甚至整个系统进行重新测试。现有方法不仅工作量巨大,往往还会带来一些难以准确评估的潜在影响。

发明内容
考虑到上述问题,本发明提出了通过处理器之间的对等状态机搬移实现分布式多处理器系统中不同处理器上的对等状态机之间通讯的方法。通过本发明的方法,可以●通过增加业务单元的状态机搬移的步骤,在基本不影响系统已有的业务逻辑的前提下,实现在分布式处理器系统中直接软件移植单处理器系统已有的状态机业务处理逻辑。本发明的方法只需要新设计和测试该业务单元的状态机搬移步骤,因而系统实现软件移植的成本和对原有业务逻辑产生的影响都相对很小。
●在完成处理器之间的状态机搬移后,可直接利用单处理器系统已有的业务逻辑,如API调用。这避免了不同处理器上的对等状态机之间过多的消息交互,并减少了不同处理器上状态机之间通讯的开销。
根据本发明,提供一种分布式多处理器上对等关联状态机间通讯的方法,包括以下步骤多个处理器之一上的对等状态机收到与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机进行交互访问的消息,并向对方状态机发出搬移协商请求消息;确定一个搬移目的处理器,其中该搬移目的处理器上的对等状态机为该多方对等状态机之一,该多方对等状态机中不同于搬移目的处理器上状态机的其它状态机将在该搬移目的处理器上创建对应的子状态机;各子状态机通过其对应的对等状态机保持与对应的对等状态机所在处理器的其它业务单元的接口,各对等状态机将从其它业务单元收到的消息转发给其子状态机;该搬移目的处理器上的对等状态机及其上创建的各子状态机之间进行交互访问并产生处理响应消息;各子状态机将处理响应消息发送到各对应对等状态机所在处理器上的其它业务单元。
根据本发明,提供一种分布式多处理器系统中状态机的搬移方法,包括多个处理器之一上的对等状态机收到与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机进行交互访问的消息,并向对方状态机发出搬移协商请求消息;接收到搬移协商请求消息的对方状态机将协商请求消息中所携带的权值与自身的权值进行比较,产生比较结果,根据该比较结果确定一个处理器作为搬移目的处理器,被搬移状态机向搬移目的处理器的对等状态机所在的业务单元发起搬移状态机请求消息,该消息中携带该状态机的关键信息,搬移目的处理器收到该请求消息后,在本地创建一个子状态机,并复制请求消息中携带的信息。
根据本发明,提供一种分布式多处理器系统,其中每个处理器内运行的软件系统由包括进行对等状态机交互的对等状态机业务单元和其他业务单元组成,每一对等状态机业务单元包括消息收发器;状态机工厂,用于在处理器上创建状态机,包括子状态机;状态机权值生成与比较器,用于将处理器上对等状态机业务单元中状态机权值的计算生成,以及与来自其他处理器上的状态机的权值的比较;其特征在于,多个处理器之一上的消息收发器接收与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机进行交互访问的消息,并通过收发器向对方状态机发出搬移协商请求消息;接收到协商请求消息的状态机的权值生成与比较器确定搬移目的处理器,其中该搬移目的处理器上的对等状态机为该多方对等状态机之一,并且利用状态机工厂在该搬移目的处理器上创建与被搬移状态机对应的子状态机;各子状态机通过其对应的对等状态机保持与对应的对等状态机所在处理器的其它业务单元的接口,搬移目的处理器上的对等状态机及其上创建的各子状态机之间进行交互访问并产生处理响应消息;各子状态机将处理响应消息发送到各对应对等状态机所在处理器上的其它业务单元。


图1示意性示出现有技术分布式多处理器系统中处理器之间对等状态机的交互访问;图2示意性示出一单处理器呼叫服务器系统中连接管理业务单元的对等关联状态机的交互访问;图3示意性示出根据本发明的分布式多处理器中两个处理器之间对等状态机的交互访问的实例;图4示意性示出根据本发明的分布式多处理器中两个处理器之间对等状态机的搬移流程的实例;
图5示意性示出实现搬移后对等状态机之间的通讯机制的实例;图6示意性示出多个处理器上的对等状态机向同一个处理器上搬移的实例;图7示意性示出分布式多处理器系统中对等状态机多次搬移的实例;图8示意性示出对等状态机多次搬移时的再次搬移流程的实例;图9示出根据本发明的一个实施例的分布式多处理器系统装置。
具体实施例方式
下面结合附图介绍关于不同处理器上对等状态机的搬移的基本概念,并举例说明分布式多处理器系统中处理器之间的状态机搬移步骤,以及搬移完成后分布式多处理器系统中对等状态机交互机制。
状态机搬移的基本概念介绍状态机搬移,是指在分布式多处器系统中,将对等关联状态机中处于一个处理器上的一方状态机搬移到关联的另外一方或多方状态机所在的处理器上,以便在状态机的搬移完成后在单处理器上实现对等关联状态机之间的内部通讯和业务逻辑。
母状态机,是指在状态机搬移过程中被搬移方状态机。
子状态机,是指在状态机搬移过程中在搬移目的处理器中新生成的状态机。
在搬移完成之后,母状态机将所接收的消息请求转发到新生成的子状态机。子状态机接管处理母状态机的所有业务逻辑。
状态机搬移的时机,指系统应该在什么时候引入状态机搬移过程。状态机搬移的目的是为了将分布式系统中不同处理器的对等状态机之间的关联转换为同一处理器上对等状态机之间的关联,以便充分利用单处理器系统中已有的业务处理逻辑。因此,当分布式多处理器系统中一处理器上的状态机收到触发与处于不同于该处理器的其它处理器上的对等状态机之间的发生关联的消息时,系统将触发状态机搬移过程。对于同一处理器上的对等状态机之间的互相关联,以及不同处理器上无相互关联的状态机之间的情形,都没有搬移的必要。
状态机权值,指每个对等状态机在判别搬移方向时的权值属性,对应于一个正的整数数值。状态机权值作为不同处理器上状态机搬移协商时搬移方向判断的依据。
作为举例,在本发明的实施例中,按下述原则确定状态机的权值和搬移方向●原则1(状态机权值的唯一判定原则)在整个分布式多处理器软件系统中,不同处理器上的对等状态机之间的状态机权值互不相同,以达到唯一判定的目的。
●原则2(状态机权值大小的设计原则)状态机权值小意味着搬移该状态机到其他处理器的开销小,即程序逻辑简单,处理器之间交互通讯少,CPU占用时间少。
在下述的所有实施例中,根据上述确定状态机权值的原则,设计状态机的权值的计算公式如下“状态机权值=状态机搬移的开销相对值(例如,范围0~16)×基值(例如10000)+状态机所在处理器的全局逻辑编号值(例如,范围1~9999)”;例如,当所有状态机搬移的开销相对值相同时,取“状态机搬移的开销相对值”为0,则此时“状态机权值=状态机所在处理器的全局逻辑编号值”。
状态机搬移的方向,是指将处于不同处理器上的对等状态机搬移到同一目的处理器上进行交互通讯时,需要确定状态机搬移的目的处理器,即搬移方向。在例如前述状态机权值的定义与原则的条件下,为了确保搬移方向判断结果的唯一性,同时尽可能以最小的处理器CPU开销的代价实现状态机搬移的目的,在本发明实施例中,例如状态机搬移方向为从状态机权值小的状态机所在处理器向权值大的状态机所在处理器上搬移,即搬移目的处理器为状态机权值大的状态机所在处理器。
本发明的状态机搬移过程可以在不影响各处理器的已有业务逻辑的情况下进行。在本发明的优选实施例中,优选所有正在进行状态机搬移的对等状态机缓存接收到的影响搬移过程的其他非搬移相关消息,而在搬移过程完成后再进行缓存消息的处理,以保证状态机搬移过程的有序性和一致性。
应当理解,上述对本发明的说明是示意性的而非限定性的。本领域技术人员通过阅读本发明的说明书可以根据实际需要选择状态机权值的具体计算方法和搬移方向确定原则。
图3示意性示出根据本发明的分布式多处理器中处理器之间对等状态机的交互访问的实例。
如图3,处理器1上的业务单元状态机1_fsm_1与处理器2上的对等状态机2_fsm_2相互呼叫关联,需要频繁访问对方的状态机数据。为了在分布式多处理器系统中充分利用单处理器系统中已有的业务处理逻辑,这里引入处理器之间的对等状态机搬移过程。处理器2上的状态机2_fsm_2通过搬移过程在处理器1上生成了一个新的子状态机1_fsm_2,子状态机1_fsm_2和母状态机2_fsm_2组成一个状态机联合体,将所有可能跨不同处理器的对等状态机1_fsm_1与2_fsm_2之间的关联通讯,转换为同一处理器1上状态机1_fsm_1与新生成的子状态机1_fsm_2之间的关联,彼此之间可以通过API互相访问对方的状态机相关数据,因此,就可以直接应用单处理器系统上的已有业务处理逻辑了。
图4描述了分布式系统中两个处理器上对等状态机之间的搬移过程,该过程包括以下步骤1.处理器2上的状态机2_fsm_2收到触发与处理器1上对等状态机1_fsm_1进行交互访问的消息in_msg,向对端处理器1上的对等状态机1_fsm_1发起搬移协商请求消息moveNego_req,消息中携带该状态机权值fsm_val2,例如22,触发状态机搬移协商流程;2.处理器1上的状态机1_fsm_1收到来自状态机2_fsm_2的搬移协商请求消息后,将其自己的权值fsm_val1,例如111,与状态机2_fsm_2的权值22比较大小,并根据该比较的结果确定搬移方向作为协商结果。在本实例中协商结果为处理器2上的状态机2_fsm_2向处理器1上搬移。随后状态机1_fsm_1向对端处理器上的对等状态机2_fsm_2发出协商响应消息moveNego_rsp;3.处理器2上的状态机2_fsm_2收到协商响应消息moveNego_rsp,知道协商结果是将本状态机往处理器1上搬移,则向处理器1的状态机1_fsm_1所在的业务单元发起搬移状态机请求消息moveFsm_req,消息中携带状态机2_fsm_2中的关键信息;
4.处理器1收到搬移状态机请求消息moveFsm_req,在本地创建一个子状态机1_fsm_2,复制从处理器2上的状态机2_fsm_2带过来的相关状态机信息,设置本状态机为子状态机,并记录处理器2上的状态机2_fsm_2为对应的母状态机,并给对端处理器2上的状态机2_fsm_2回搬移响应消息moveFsm_rsp。
5.处理器2上的状态机2_fsm_2收到搬移响应消息moveFsm_rsp,记录处理器1上新建的子状态机1_fsm_2,并标志本身状态机为母状态机。
至此,将进行如图5所示的状态机通讯交互情形。
图5描述了实现搬移后对等状态机之间的通讯机制。
在搬移完成后,如图5,处理器1上的子状态机1_fsm_2和处理器2上的母状态机2_fsm_2组成了一个跨处理器的状态机联合体,其中子状态机1_fsm_2成为整个状态机联合体的新的业务处理中心,母状态机负责将所有从例如其上层业务单元状态机up_fsm_2和下层业务单元状态机low_fsm_2的其他业务单元收到的消息直接转发到处理器1上的子状态机1_fsm_2,并由子状态机进行处理,而产生的响应消息则可以从子状态机1_fsm_2直接发送到例如上层业务单元状态机up_fsm_2和下层业务单元状态机low_fsm_2的其他业务单元。这样,这个跨处理器的状态机联合体可以通过子状态机1_fsm_2与处理器1上的对等状态机1_fsm_1在处理器1上保持API交互接口,同时通过母状态机2_fsm_2保持与例如上层业务单元状态机up_fsm_2和下层业务单元状态机low_fsm_2等的其他业务单元的接口,使得整个状态机搬移过程对整个系统的其他业务模块透明。
这样,通过搬移后生成的子状态机1_fsm_2和母状态机组成的状态机联合体,将所有可能跨不同处理器的对等状态机1_fsm_1与2_fsm_2之间的关联通讯,转换为同一处理器1上状态机1_fsm_1与新生成的子状态机1_fsm_2之间的关联,而状态机1_fsm_1和1_fsm_2之间可以通过API互相访问对方的状态机等相关数据,因此,就可以直接应用单处理器系统上的已有业务处理逻辑了。
图6描述了多个处理器上的对等状态机向同一个处理器上搬移的实例。在该实例中,例如状态机1_fsm_1的权值赋值为1111,状态机2_fsm_2的权值赋值为222,状态机3_fsm_3的权值赋值为333;此时,一个三方用户以上的会议通话的发起消息,触发了该多方对等状态机之间通讯搬移过程。
如图6所示,两个以上不同处理器上的对等状态机向同一处理器的搬移可以分解为如图3和图4描述的两个处理器上的对等状态机的搬移过程的叠加,其过程简述如下1处理器1上的对等状态机1_fsm_1与处理器2上的对等状态机2_fsm_2之间进行参考图3和图4说明的状态机搬移过程。其中因为状态机2_fsm_2的权值小于状态机1_fsm_1的权值,协商结果为处理器2上的对等状态机2_fsm_2向处理器1上搬移。搬移后生成的子状态机1_fsm_2与处理器2上的母状态机2_fsm_2组成一对状态机联合体。该对状态机联合体的跨处理器通讯过程与图5所描述的过程类似;2处理器1上的对等状态机1_fsm_1与处理器3上的对等状态机3_fsm_3之间进行如图3所示的状态机搬移过程。其中因为状态机3_fsm_3的权值小于状态机1_fsm_1的权值,协商结果为处理器3上的对等状态机3_fsm_3向处理器1上搬移。搬移后生成的子状态机1_fsm_3与处理器3上的母状态机3_fsm_3组成一对状态机联合体。该对状态机联合体的跨处理器通讯过程与图5所描述的过程类似。
这样,处理器2上的2_fsm_2和处理器3上的3_fsm_3都在处理器1上有对应的子状态机,可以分别通过各自的子状态机进行通讯交互。
应当理解,上述实例同样可以应用于三个以上处理器的状态机搬移的情形。
图7描述了对等状态机多次搬移的示意情形,即曾经搬移过的状态机再次向第三方处理器上搬移的实例。在此实例中,例如状态机1_fsm_1的权值赋值为100,状态机2_fsm_2的权值赋值为20,状态机3_fsm_3的权值赋值为3000;处理器2上的状态机2_fsm_2已与处理器1上的对等状态机1_fsm_1曾经进行过跨处理器通讯,如两方通话,状态机2_fsm_2产生过搬移并在处理器1上已生成子状态机1_fsm_2,此后,一个三方以上用户的会议通话的发起消息,触发了图7所示的对等状态机多次搬移过程。
如图7,在处理器2上的状态机2_fsm_2已与处理器1上的对等状态机1_fsm_1进行跨处理器通讯的情况下,状态机2_fsm_2产生过搬移并在处理器1上已生成子状态机1_fsm_2,该子状态机与处理器2上的母状态机2_fsm_2一起组成一个状态机联合体。此后,在处理器1上的对等状态机1_fsm_1和处理器2上的2_fsm_2需要与处理器3上的状态机3_fsm_3进行跨处理器通讯交互的情况下,根据前述的状态机搬移规则,因为状态机1_fsm_1的权值小于状态机3_fsm_3的权值而状态机2_fsm_2的权值小于状态机3_fsm_3的权值,协商结果为协商结果为将处理器1上的对等状态机1_fsm_1和处理器2上的状态机2_fsm_2搬移到处理器3上进行通讯。如参照图3和4所说明的搬移过程,处理器1上的对等状态机1_fsm_1向处理器3上搬移。搬移后生成的子状态机3_fsm_1与处理器1上的母状态机1_fsm_1组成一对状态机联合体。处理器1上的子状态机1_fsm_2会被搬移到处理器3上,在处理器3上生成新的子状态机3_fsm_2,由子状态机3_fsm_2与处理器2上的母状态机2_fsm_2组成一对新的状态机联合体,而处理器1上的原子状态机1_fsm_2则会被释放掉。
图8示意性描述了对等状态机多次搬移时的再次搬移流程。
与图7的示意描述相对应,图8简单描述了对等状态机多次搬移时的再次搬移流程。其中,处理器2上状态机2_fsm_2对应的子状态机1_fsm_2搬移到处理器3的过程与图4描述类似,不同点在于1.对应于图4的第3步,子状态机1_f sm_2向处理器3发起搬移状态机请求消息moveFsm_req时,其消息中除了携带子状态机1_fsm_2中的关键信息外,还需要标志状态机1_fsm_2为子状态机类别并携带其母状态机2_fsm_2的相关位置信息,如处理器2的IP地址和母状态机2_fsm_2实例号;2.处理器3收到搬移状态机请求消息moveFsm_req,在本地创建一个子状态机3_fsm_2,复制从处理器1上的状态机1_fsm_2带过来的相关状态机信息,设置本状态机为子状态机,并根据消息内容判断被搬移状态机为子状态机,记录消息中携带的母状态机2_fsm_2为对应的母状态机,并给对端处理器1上的状态机1_fsm_2回搬移响应消息moveFsm_rsp。
3.处理器1上的子状态机1_fsm_2在收到来自于处理器3上的搬移响应消息movFsm_rsp之后,子状态机1_fsm_2判断自己为处理器2上母状态机2_fsm_2的子状态机,则向处理器2上的母状态机2_fsm_2发送movFsm_ind消息,通知状态机2_fsm_2更新其对应的子状态机为新的位于处理器3上的子状态机3_fsm_2,同时处理器1上的子状态机1_fsm_2释放自己。
这样,处理器2上的母状态机2_fsm_2与处理器3上的子状态机3_fsm_2组成一对新的状态机联合体。
图9描述了本发明的一个实施例的分布式多处理器系统。
如图9,该分布式多处理器系统由多个处理器组成,在本实施例中仅以两个处理器1和2示意性说明,每个处理器内运行的软件系统由包括进行对等状态机交互的对等状态机业务单元和其他业务单元组成。
其他业务单元,指系统软件中同一处理器上除对等状态机业务单元之外的其他业务单元。
对等状态机业务单元由消息收发器、状态机工厂、状态机权值生成与比较器以及对等状态机等部分组成,其中,消息收发器,用于对等状态机业务单元接收从该处理器其他业务单元和其他处理器上发送来的消息以及将本业务单元消息发送到本处理器其他业务单元和其它处理器上;状态机工厂,用于在处理器上创建状态机,包括子状态机;状态机权值生成与比较器,用于处理器上对等状态机业务单元中状态机权值的计算生成,并用于将其状态机权值与来自其他处理器上的状态机的权值比较大小。
下面结合图3所示的实例示意性说明根据本发明的分布式多处理器的工作原理。处理器2上的收发器接收到与处理器1上的对等状态机1_fsm_1进行交互访问的消息,并通过收发器向对方状态机1_fsm_1发出搬移协商请求消息moveNego_req;处理器1的状态机接收到该请求消息后,其权值生成与比较器将请求消息中携带的状态机权值与其自身的状态机权值进行比较以确定搬移目的处理器为处理器1,处理器1的状态机工厂创建与状态机2_fsm_2对应的子状态机1_fsm_2;子状态机1_fsm_2通过对等状态机2_fsm_2保持与处理器2的其它业务单元的接口;
对等状态机2_fsm_2将从其他业务单元收到的消息转发给其子状态机1_fsm_2;处理器1上的对等状态机1_fsm_1及其上创建的子状态机1_fsm_2之间利用已有业务逻辑,例如API调用,进行交互访问,并产生处理响应消息;子状态机1_fsm_2将处理响应消息直接发送到处理器2上的其它业务单元。
为了在分布式多处理器系统中充分利用单处理器系统中已有的业务处理逻辑,本发明提供了通过增加处理器之间的对等关联状态机搬移机制实现分布式系统中对等状态机之间通讯的方法,通过本方法,不但可以较低的成本实现在分布式处理器系统中直接移植应用单处理器系统已有的业务处理逻辑,而且可以避免对等状态机之间过多的消息交互,从而减少处理器间状态机之间直接通讯的开销。
上面已经参照实施例对本发明进行了描述,但是应该理解,本领域技术人员在不脱离本发明范围的情况下可以对本发明作出许多改变和改型。本发明的意图在于以上的详细描述只是说明性的而非限制性的。本发明的精神和范围由所附的权利要求书及其所有等同物来限定。
权利要求
1.一种分布式多处理器上对等关联状态机间通讯的方法,包括以下步骤多个处理器(1,2)之一(2)上的对等状态机(2_fsm_2)收到与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机(1_fsm_1)进行交互访问的消息,并向该多方状态机(1_fsm_1)发出搬移协商请求消息(moveNego_req);确定一个搬移目的处理器(1),其中该搬移目的处理器上的对等状态机为该多方对等状态机之一,对应于该多方对等状态机中不同于搬移目的处理器上状态机的其它状态机(2_fsm_2),将在该搬移目的处理器上分别创建对应的子状态机(1_fsm_2);各子状态机(1_fsm_2)通过各自对应的对等状态机(2_fsm_2)保持与对应的对等状态机所在处理器的其它业务单元的接口,各对等状态机(2_fsm_2)将从其它业务单元收到的消息转发给各自对应的子状态机(1_fsm_2);该搬移目的处理器上的对等状态机(1_fsm_1)及其上创建的各子状态机(1_fsm_2)之间进行交互访问并产生处理响应消息;各子状态机(1_fsm_2)将处理响应消息发送到各自对应对等状态机(2_fsm_2)所在处理器(2)上的其它业务单元。
2.根据权利要求1的方法,其中搬移协商请求消息(moveNego_req)带有其状态机权值,并且确定搬移目的处理器(1)的步骤进一步包括接收到协商请求消息的对方状态机(1_fsm_1)将协商请求消息中所携带的权值与自身的权值进行比较,产生比较结果,根据该比较结果确定一个处理器(1)作为搬移目的处理器,并由该对方状态机发回协商响应消息(moveNego_rsp)。
3.据权利要求2的方法,其中状态机权值的设计原则包括该多个处理器上的对等状态机的状态机权值互不相同;状态机权值的大小对应于搬移该状态机到其他处理器的开销。
4.据权利要求2或3的方法,其中状态机搬移方向的确定原则为状态机搬移方向为从搬移开销小的状态机向搬移开销大的状态机所在处理器上搬移,搬移目的处理器为其状态机搬移开销大的处理器。
5.根据前述权利要求之一的方法,其中创建对应的子状态机(1_fsm_2)的步骤包括被搬移状态机(2_fsm_2)向搬移目的处理器的对等状态机(1_fsm_1)所在的业务单元发起搬移状态机请求消息(moveFsm_req),该消息中携带该状态机的关键信息,搬移目的处理器收到该请求消息后,在本地创建一个子状态机(1_fsm_2),并复制请求消息中携带的信息,记录被搬移的状态机为母状态机,并向母状态机发回搬移响应消息(moveFsm_rsp),被搬移状态机(2_fsm_2)收到搬移响应消息,记录在搬移目的处理器(1)上创建的子状态机(1_fsm_2)并标记本身为母状态机。
6.根据前述权利要求之一的方法,当子状态机需要被搬移到另一搬移目的处理器上时,在该另一搬移目的处理器上创建对应的新子状态机,并释放该子状态机本身。
7.根据权利要求6的方法,其中进一步包括将被搬移的子状态机(1_fsm_2)向该另一搬移目的处理器的对等状态机(3_fsm_3)所在的业务单元发起搬移状态机请求消息(moveFsm_req),该消息中携带该子状态机(1_fsm_2)的关键信息以及被搬移的子状态机(1_fsm_2)为子状态机类别的标志,并携带其对应的母状态机(2_fsm_2)的相关信息;搬移目的处理器(3)收到该请求消息后,在本地创建子状态机(3_fsm_2),并复制请求消息中携带的信息,记录被搬移的子状态机(1_fsm_2)的对应母状态机(2_fsm_2)为母状态机,并向被搬移的子状态机(1_fsm_2)发回搬移响应消息(moveFsm_rsp),被搬移处理器(1)上的子状态机(1_fsm_2)收到搬移响应消息,向其母状态机(2_fsm_2)发送消息(movFsm_ind),通知其母状态机(2_fsm_2)更新其对应的子状态机为新创建的子状态机(3_fsm_2)。
8.根据前述权利要求之一的方法,其中,正在进行状态机搬移的对等状态机缓存接收到的影响搬移过程的其他非搬移相关消息,并在搬移过程完成后对被缓存的消息进行处理。
9.根据前述权利要求之一的方法,其中搬移目的处理器上的对等状态机(1_fsm_1)及其上创建的各子状态机(1_fsm_2)之间的交互访问为应用程序接口调用。
10.分布式多处理器系统中状态机的搬移方法,包括多个处理器(1,2)之一(2)上的对等状态机(2_fsm_2)收到与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机(1_fsm_1)进行交互访问的消息,并向该多方状态机(1_fsm_1)发出搬移协商请求消息(moveNego_req);接收到搬移协商请求消息的对方状态机(1_fsm_1)将协商请求消息中所携带的权值与自身的权值进行比较,产生比较结果,根据该比较结果确定一个处理器(1)作为搬移目的处理器,被搬移状态机(2_fsm_2)向搬移目的处理器的对等状态机(1_fsm_1)所在的业务单元发起搬移状态机请求消息(moveFsm_req),该消息中携带该状态机的关键信息,搬移目的处理器收到该请求消息后,在本地创建子状态机(1_fsm_2),并复制请求消息中携带的信息。
11.据权利要求10的方法,其中状态机权值的设计原则包括该多个处理器上的对等状态机的状态机权值互不相同;状态机权值的大小对应于搬移该状态机到其他处理器的开销。
12.据权利要求10或11的方法,其中状态机搬移方向的确定原则为状态机搬移方向为从搬移开销小的状态机向搬移开销大的状态机所在处理器上搬移,搬移目的处理器为其状态机搬移开销大的处理器。
13.根据前述权利要求10-12之一的方法,其中当子状态机需要被搬移到另一搬移目的处理上时,子状态机在该另一搬移目的处理器上创建对应的新子状态机,并释放该子状态机本身。
14.根据根据权利要求13的方法,其中进一步包括将被搬移的子状态机(1_fsm_2)向另一搬移目的处理器的对等状态机(3_fsm_3)所在的业务单元发起搬移状态机请求消息(moveFsm_req),该消息中携带该子状态机(1_fsm_2)的关键信息以及被搬移的子状态机(1_fsm_2)为子状态机类别的标志,并携带其对应的母状态机(2_fsm_2)的相关信息;搬移目的处理器(3)收到该请求消息后,在本地创建子状态机(3_fsm_2),并复制请求消息中携带的信息,记录被搬移的子状态机(1_fsm_2)的对应母状态机(2_fsm_2)为母状态机,并向被搬移的子状态机(1_fsm_2)发回搬移响应消息(moveFsm_rsp),被搬移处理器(1)上的子状态机(1_fsm_2)收到搬移响应消息,向其母状态机(2_fsm_2)发送消息(movFsm_ind),通知其母状态机(2_fsm_2)更新其对应的子状态机为新创建的子状态机(3_fsm_2)。
15.根据前述权利要求10-14之一的方法,其中搬移目的处理器上的对等状态机及其上创建的各子状态机之间的交互访问为应用程序接口调用。
16.一种分布式多处理器系统,其中每个处理器内运行的软件系统由包括进行对等状态机交互的对等状态机业务单元和其他业务单元组成,每一对等状态机业务单元包括消息收发器;状态机工厂,用于在处理器上创建状态机,包括子状态机;状态机权值生成与比较器,用于处理器上对等状态机业务单元中状态机权值的计算生成,并用于将其状态机权值与来自其他处理器上的状态机的权值的比较;其特征在于,多个处理器(1,2)之一(2)上的消息收发器接收与该多个处理器中不同于该一个处理器的其它处理器上的多方对等状态机(1_fsm_1)进行交互访问的消息,并通过收发器向该多方状态机(1_fsm_1)发出搬移协商请求消息(moveNego_req);接收到协商请求消息的状态机的权值生成与比较器确定搬移目的处理器(1),其中该搬移目的处理器上的对等状态机为该多方对等状态机之一,并且利用状态机工厂在该搬移目的处理器上创建与被搬移状态机对应的子状态机(1_fsm_2);各子状态机(1_fsm_2)通过各自对应的对等状态机(2_fsm_2)保持与对应的对等状态机所在处理器的其它业务单元的接口,该搬移目的处理器上的对等状态机(1_fsm_1)及其上创建的各自子状态机(1_fsm_2)之间进行交互访问并产生处理响应消息;各子状态机(1_fsm_2)将处理响应消息发送到各自对应对等状态机(2_fsm_2)所在处理器(2)上的其它业务单元。
全文摘要
本发明提供了一种实现分布式系统中对等关联状态机之间通讯的方法,通过处理器之间的关联状态机搬移机制,将原处于不同处理器上的其中一方状态机搬移到关联的另外一方或多方状态机所在的处理器上,以在同一处理器上实现这些对等关联状态机之间的内部通讯和业务逻辑,不但可以较低的成本实现在分布式处理器系统中直接移植应用原单处理器系统的业务处理逻辑,而且可以避免关联状态机之间过多的消息交互,从而减少处理器间状态机之间直接通讯的开销。
文档编号G06F15/16GK1804826SQ20051000378
公开日2006年7月19日 申请日期2005年1月11日 优先权日2005年1月11日
发明者皮开阳 申请人:Ut斯达康通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1