专利名称:一种分布式系统通信的方法及系统的制作方法
技术领域:
本发明涉及分布式系统通信领域,特别是指一种分布式系统通信的方法及系统。
背景技术:
复杂的数据通信设备为了提高处理能力,一般采用分布式设计,配备多个中央处 理单元(CPU),每个CPU都负责系统中部分模块功能的实现。在逻辑上,不同的CPU执行的 进程在功能上相对独立,相互之间通信量较小;在物理上,不同CPU都在同一个机架或者同 一个机房内,物理连接相对稳定和高效。为了使整个数据通信系统协调运行,不同CPU上的 进程之间需要相互通信,将不同CPU负责的功能关联起来以实现更复杂的功能。
—般,进程之间的通信采用收发消息的方式,消息有优先级时,只有优先级高的消 息发送和处理成功后,优先级低的消息才会被处理;当优先级高的消息发送或处理失败,即 使优先级低的消息发送成功,也不会对优先级低的消息进行处理,现有技术中,采用重发定 时器、等待确认消息、滑窗或缓存等机制进行消息收发,消息发送方没有对消息进行优先级 排序,没有按优先级顺序发送消息,导致优先级低的消息先被发送到消息接收方,消息接收 方对优先级低的消息不做处理,直至接收到优先级高的消息且处理成功后,才处理低优先 级消息。消息发送的顺序没有优先级,先向消息接收方发送优先级低的消息只会导致进程 间通信更繁忙,而对于优先级低的消息的处理无济于事,同时,由于通信线路问题,可能会 导致消息发送方无法接收确认消息,从而认为该消息没有处理成功或没有被处理,重复发 送该消息,导致系统重复处理消息。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式系统通信的方法及系统,提高 分布式系统通信的可靠性。 为达到上述目的,本发明的技术方案是这样实现的
本发明提供了一种分布式系统通信的方法, 源进程单元确定消息的优先级顺序并存入临时缓存和消息模块; 目的进程单元根据接收的消息模块发送的消息的同步序列号确定是否处理该消
息,根据处理结果回复回应消息并存放至消息模块; 源进程单元根据接收的消息模块的回应消息更新临时缓存。 上述方案中,所述确定消息的优先级顺序之前,进一步包括源进程单元将自身存 储的同步序列号增加1并添加至消息的特征字段,将要发送的目的进程单元标志以及目的 进程单元的进程标志添加至消息的特征字段。 上述方案中,所述确定消息的优先级顺序包括源进程单元根据消息类型查询分 布式系统的优先级设定,确定消息的优先级,并存放在临时缓存,将消息以及其优先级顺序 存放在消息模块,由消息模块发送。
上述方案中,所述将消息按照优先级顺序存放在消息模块之后,进一步包括源进程单元启动定时器,定时器超时,将临时缓存中所有目的进程单元标志未全置位的消息以 及其优先级顺序存放至消息模块。 上述方案中,所述根据消息的同步序列号确定是否处理该消息包括根据消息类 型,将接收的消息的同步序列号同自身存储的同步序列号比较,确定大于自身存储的同步 序列号,处理该消息且处理成功时,回复回应消息并按照消息类型将自身存储的同步序列 号更新为接收消息的同步序列号;反之不做处理,并回复回应消息。 上述方案中,所述根据接收的消息模块的回应消息更新临时缓存包括将回应消 息中的同步序列号同临时缓存中消息的同步序列号比较,确定相同,将该消息中与回应消 息中目的进程单元标志相同的目的进程单元标志置位,确定该消息的目的进程单元标志均 被置位,删除该消息。
本发明还提供了一种分布式系统通信的系统,包括 源进程单元,用于确定消息的优先级顺序并存入临时缓存以及消息模块中,接收 消息模块发送的回应消息并更新临时缓存; 消息模块,用于存放源进程单元要发送的消息以及各消息发送的优先级顺序、根 据优先级顺序将消息发送至目的进程单元;存放目的进程单元的回应消息并发送至源进程 单元; 目的进程单元,用于接收消息模块发送的消息并根据消息的同步序列号确定是否 处理消息,根据处理结果回复回应消息。 上述方案中,源进程单元进一步用于,将自身存储的同步序列号基础上增加l,并 添加到要发送消息的特征字段,将要发送的目的进程单元标志以及目的进程单元的进程标 志添加至要发生消息的特征字段。 上述方案中,源进程单元具体用于,根据要发送消息的消息类型查询分布式系统
设定的优先级,将消息存储在临时缓存,将消息以及优先级顺序存储在消息模块中。 上述方案中,源进程单元进一步用于,启动定时器,定时器超时,将临时缓存中所
有目的进程单元标志未全被置位的消息以及其优先级顺序存放至消息模块。 上述方案中,源进程单元具体用于,将收到的回应消息携带的同步序列号同临时
缓存中消息的同步序列号比较,确定相同,将该消息中同回应消息目的进程单元标志相同
的目的进程单元标志置位,若该消息的目的进程单元标志均被置位,删除该消息。 上述方案中,目的进程单元具体用于,按照消息类型,将接收的消息中的同步序列
号,同自身存储的同步序列号比较,确定大于自身存储的同步序列号时,对消息进行处理且
处理成功,回复回应消息,并按照消息类型将自身存储的同步序列号更新为接收消息的同
步序列号;确定小于自身存储的同步序列号时,不做处理,回复回应消息。 上述方案中,源进程单元进一步用于,将自身存储的同步序列号增加l后,将自身
存储的同步序列号同内置的极大值比较,确定大于极大值,将自身存储的同步序列号以及
相应消息中的同步序列号置1。 上述方案中,目的进程单元进一步用于,更新为接收消息的同步序列号后,与内置 的极大值区间比较,确定自身存储的同步序列号处于极大值区间,将自身存储的同步序列 号置0。 由此可见,采用本发明所述的分布式系统通信的方法及系统,区分消息的优先级,将临时缓存中发送失败的消息仍按优先级顺发送,可优化消息发送顺序,通过同步序列号 确定是否处理消息,可以避免消息重复处理,减少分布式系统通信量,从而提高分布式系统 通信的可靠性。
图1为本发明实现分布式系统通信的方法流程示意图;
图2为本发明实现分布式系统通信的系统组成示意图。
具体实施例方式
本发明的基本思想是源进程单元确定消息的优先级顺序并存放至临时缓存和消 息模块,目的进程单元接收消息模块发送的消息,根据消息中的同步序列号确定是否进行 处理,并回应消息,源进程单元根据回应消息更新临时缓存。 下面结合具体实施例和附图来对本发明进行详细说明,如图1所示,本发明实现 分布式系统通信的方法,包括以下步骤 步骤101,源进程单元对消息进行优先级排序,将消息存放在临时缓存以及消息模 块并发送。 源进程单元将自身存储的同步序列号增加1并添加至要发送消息的特征字段,并 且将接收消息的目的进程单元标志以及目的进程单元的进程标志也添加至要发送消息的 特征字段。所述消息可以是分布式系统单元之间进行通信的任意内容的一种,包括消息类 型、特征字段等,所述消息类型为接收消息的目的进程单元的类型,例如为虚拟专用网络 (VPN)业务类型或虚拟局域网(VLAN)业务类型等,所述特征字段包括目的进程单元标志、 相应目的进程单元的进程标志以及同步序列号,所述目的进程单元标志是分布式系统为不 同目的进程单元进行的编号,目的进程单元的进程标志是分布式系统为目的进程单元内部 的进程进行的编号, 一个消息中可包含一个或多个目的进程单元标志及其相应的目的进程 单元的进程标志,源进程单元搜索整个分布式通信系统的目的进程单元以及其进程,并保 存所有目的进程单元及其进程的编号;所述同步序列号用于标志消息发送的序号,源进程 单元发送消息时,其消息的同步序列号为其内部存储的同步序列号基础上加l,并将加1后 的同步序列号更新为当前内部存储的同步序列号; 源进程单元比较当前内部存储的同步序列号与同步序列号极大值,若当前内部存 储的同步序列号小于同步序列号极大值,则源进程单元内部存储以及消息中的同步序列号 保持不变,反之,将源进程单元内部存储以及消息中的同步序列号置l,所述同步序列号极 大值根据同步序列号的数据类型所能达到的最大值来确定。 源进程单元对要发送消息可以根据预检测机制区分消息的优先级,所述根据预检 测机制区分消息的优先级为通过目的进程处理消息的先后顺序区分消息的优先级,分布 式系统一般根据不同的消息类型来确定消息处理的优先级,例如消息类型是VPN业务类型 或VLAN业务类型,具体的目的进程处理的优先级顺序由人为设定并保存在分布式系统,源 进程单元根据消息类型查询分布式系统的优先级设定,以此区分消息的优先级,并将消息 存放在源进程单元的临时缓存以及消息模块的消息队列中,所述临时缓存是源进程单元为 存放消息,在其内部临时开辟的存储空间,当临时缓存中没有消息时,将临时缓存释放;所
6述消息队列用于存放消息以及每个消息的优先级顺序,消息模块的消息队列对保存在其中 的消息按照优先级顺序依次发送。 源进程单元开启内置的定时器开始计时,所述定时器的时间为消息发送至接收回
应消息的最大时间;若定时器超时,源进程单元将缓存中所有目的进程单元标志未全被置
位的消息按照优先级顺序存放至消息模块的消息队列,由消息队列进行发送。 步骤102,目的进程单元接收消息,根据接收消息的同步序列号判断是否需要处理
该消息,如需进行处理,执行步骤103,反之,执行步骤104。 目的进程单元接收消息模块发送的消息后,读取消息中消息类型以及特征字段的 同步序列号,根据消息类型,将自身存储的同步序列号同接收消息的同步序列号相比较,所 述自身存储的同步序列号是目的进程单元按照消息类型进程存储,若大于自身存储的同步 序列号,则执行步骤103对消息进行处理;若小于自身存储的同步序列号,执行步骤104。
步骤103,目的进程单元对接收的消息进行处理且处理成功,回复回应消息。
目的进程单元对接收的消息进行处理,若处理成功,则将自身存储的同步序列号 更新为接收消息的同步序列号,同时向源进程单元返回回应消息,将回应消息存放至消息 模块中的消息队列,由消息队列发送给源进程单元,所述回应消息包括源进程单元之前发 送消息的同步序列号和目的进程单元标志,同时,目的进程单元比较内部存储的同步序列 号与极大值区间,若内部存储的同步序列号在极大值区间的范围内,则将内部存储的同步 序列号置O,所述的极大值区间为内置在目的进程单元,其区间范围为同步序列号极大值减 5至同步序列号极大值;反之,内部存储的同步序列号保持不变。 若目的进程单元对接收的消息处理失败则显示处理失败的信息,不作任何处理。
步骤104,目的进程单元不对接收消息进行处理并向源进程单元发送回应消息。
目的进程单元向源进程单元发送回应消息,所述回应消息包括源进程单元之前发 送消息的同步序列号和目的进程单元标志,同时,目的进程单元比较内部存储的同步序列 号与极大值区间,若内部存储的同步序列号在极大值区间的范围内,则将内部存储的同步 序列号置位,即置为O,反之,内部存储的同步序列号保持不变。 步骤105,源进程单元接收回应消息,根据回应消息更新临时缓存,并返回执行步 骤102。 源进程单元接收消息模块发送的回应消息,将回应消息中的同步序列号同临时缓 存中存储的消息的同步序列号比较,若相同,则将临时缓存中该消息的目的进程单元标志 置位,即置为0,若该消息包含一个或多个目的进程单元标志,只将与收到的回应消息中目 的进程单元标志相同的目的进程单元标志置位,当该消息的所有目的进程单元标志均被置 位,源进程单元将该消息删除。 本发明同样可以对没有优先级的消息进行发送和接收,与具有优先级顺序的消息 的处理方法,不同之处在于,将消息直接存入消息模块的消息队列,消息队列依次发送消息。 本发明还提供了一种分布式系统通信的系统,如图2所示,该系统包括源进程单 元201、消息模块202以及目的进程单元203 : 源进程单元201,用于确定消息的优先级顺序并将消息存入开辟的临时缓存以及 消息模块202中,根据消息模块202发送的回应消息更新临时缓存;
消息模块202,用于存放源进程单元201要发送的消息以及各消息发送的优先级 顺序,根据优先级顺序发送消息至目的进程单元203 ;存放目的进程单元203的回应消息并 发送至源进程单元201 ; 目的进程单元203,用于接收消息模块202发送的消息并做相应处理,回复回应消 息。 源进程单元201具体用于,根据要发送消息的消息类型查询分布式系统设定的优
先级,将消息存储在临时缓存,将消息以及优先级顺序存储在消息模块202中。 源进程单元201进一步用于,将消息存储在临时缓存及消息模块后,启动定时器,
定时器超时,将临时缓存中目的进程单元标志未全被置位的消息按照优先级顺序存放在消
息模块202中。 源进程单元201具体用于,收到消息模块202发送的目的进程单元203的回应消
息,将回应消息携带的同步序列号同临时缓存中消息的同步序列号比较,确定相同,更新该
消息的目的进程单元标志,即将与回应消息中目的进程单元标志相同的目的进程单元标志
置位为0,若该消息的目的进程单元标志均被置位,即均为0,则将该消息删除。 源进程单元201进一步用于,将自身存储的同步序列号基础上增加l,并添加到要
发送消息的特征字段,将要发送的目的进程单元标志以及目的进程单元的进程标志添加至
消息,同时将更新后的自身存储的同步序列号同内置的极大值比较,确定大于极大值,将自
身存储的同步序列号以及相应消息的同步序列号置1 ;所述极大值是根据同步序列号的数
据类型所能达到的最大值来确定的。 目的进程单元203具体用于,将接收的消息模块202发送的源进程单元201的消 息的同步序列号,按照接收消息的消息类型,同自身存储的同步序列号比较,确定大于自身 存储的同步序列号时,对消息进行处理,若成功,回复回应消息并按照消息类型将自身存储 的同步序列号更新为接收消息的同步序列号;确定小于自身存储的同步序列号时,不做处 理,回复回应消息。 目的进程单元203进一步用于,确定接收的消息中的同步序列号大于自身存储的 同步序列号,将自身存储的同步序列号更新为接收消息中的同步序列号,同时与内置的极 大值区间比较,确定处于极大值区间,将自身存储的同步序列号置O;所述极大值区间范围 为极大值减5至极大值。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在 本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护 范围之内。
权利要求
一种分布式系统通信的方法,其特征在于,源进程单元确定消息的优先级顺序并存入临时缓存和消息模块;目的进程单元根据接收的消息模块发送的消息的同步序列号确定是否处理该消息,根据处理结果回复回应消息并存放至消息模块;源进程单元根据接收的消息模块的回应消息更新临时缓存。
2. 根据权利要求1所述的方法,其特征在于,所述确定消息的优先级顺序之前,该方法 进一步包括源进程单元将自身存储的同步序列号增加1并添加至消息的特征字段,将要发送的目 的进程单元标志以及目的进程单元的进程标志添加至消息的特征字段。
3. 根据权利要求2所述的方法,其特征在于,所述确定消息的优先级顺序包括 源进程单元根据消息类型查询分布式系统的优先级设定,确定消息的优先级,并存放在临时缓存,将消息以及其优先级顺序存放在消息模块,由消息模块发送。
4. 根据权利要求3所述的方法,其特征在于,所述将消息按照优先级顺序存放在消息 模块之后,该方法进一步包括源进程单元启动定时器,定时器超时,将临时缓存中所有目的进程单元标志未全置位 的消息以及其优先级顺序存放至消息模块。
5. 根据权利要求1所述的方法,其特征在于,所述根据消息的同步序列号确定是否处 理该消息包括根据消息类型,将接收的消息的同步序列号同自身存储的同步序列号比较,确定大于 自身存储的同步序列号,处理该消息且处理成功时,回复回应消息并按照消息类型将自身 存储的同步序列号更新为接收消息的同步序列号;反之不做处理,并回复回应消息。
6. 根据权利要求5所述的方法,其特征在于,所述根据接收的消息模块的回应消息更 新临时缓存包括将回应消息中的同步序列号同临时缓存中消息的同步序列号比较,确定相同,将该消 息中与回应消息中目的进程单元标志相同的目的进程单元标志置位,确定该消息的目的进 程单元标志均被置位,删除该消息。
7. —种分布式系统通信的系统,该系统包括源进程单元,用于确定消息的优先级顺序并存入临时缓存以及消息模块中,接收消息 模块发送的回应消息并更新临时缓存;消息模块,用于存放源进程单元要发送的消息以及各消息发送的优先级顺序、根据优 先级顺序将消息发送至目的进程单元;存放目的进程单元的回应消息并发送至源进程单 元;目的进程单元,用于接收消息模块发送的消息并根据消息的同步序列号确定是否处理 消息,根据处理结果回复回应消息。
8. 根据权利要求7所述的系统,其特征在于,源进程单元进一步用于,将自身存储的同步序列号基础上增加1,并添加到要发送消息 的特征字段,将要发送的目的进程单元标志以及目的进程单元的进程标志添加至要发生消 息的特征字段。
9. 根据权利要求8所述的系统,其特征在于,源进程单元具体用于,根据要发送消息的消息类型查询分布式系统设定的优先级,将 消息存储在临时缓存,将消息以及优先级顺序存储在消息模块中。
10. 根据权利要求9所述的系统,其特征在于,源进程单元进一步用于,启动定时器,定时器超时,将临时缓存中所有目的进程单元标 志未全被置位的消息以及其优先级顺序存放至消息模块。
11. 根据权利要求7所述的系统,其特征在于,源进程单元具体用于,将收到的回应消息携带的同步序列号同临时缓存中消息的同步 序列号比较,确定相同,将该消息中同回应消息目的进程单元标志相同的目的进程单元标 志置位,若该消息的目的进程单元标志均被置位,删除该消息。
12. 根据权利要求7所述的系统,其特征在于,目的进程单元具体用于,按照消息类型,将接收的消息中的同步序列号,同自身存储的 同步序列号比较,确定大于自身存储的同步序列号时,对消息进行处理且处理成功,回复回 应消息,并按照消息类型将自身存储的同步序列号更新为接收消息的同步序列号;确定小 于自身存储的同步序列号时,不做处理,回复回应消息。
13. 根据权利要求8所述的系统,其特征在于,源进程单元进一步用于,将自身存储的同步序列号增加l后,将自身存储的同步序列 号同内置的极大值比较,确定大于极大值,将自身存储的同步序列号以及相应消息中的同 步序列号置1。
14. 根据权利要求12所述的系统,其特征在于,目的进程单元进一步用于,更新为接收消息的同步序列号后,与内置的极大值区间比 较,确定自身存储的同步序列号处于极大值区间,将自身存储的同步序列号置O。
全文摘要
本发明公开了一种分布式系统通信的方法,源进程单元确定消息的优先级顺序并存入临时缓存和消息模块;目的进程单元根据接收的消息模块发送的消息的同步序列号确定是否处理该消息,根据处理结果回复回应消息并存放至消息模块;源进程单元根据接收的消息模块的回应消息更新临时缓存。本发明还公开了一种分布式系统通信的系统,采用本方法和系统,可优化消息发送顺序,避免消息重复,减少分布式系统通信量,从而提高分布式系统通信的可靠性。
文档编号G06F9/54GK101782891SQ20101013338
公开日2010年7月21日 申请日期2010年3月26日 优先权日2010年3月26日
发明者于浩, 夏丽梅, 孙勇 申请人:中兴通讯股份有限公司