用于改进的冗余性的事务捆绑的制作方法

文档序号:7675657阅读:113来源:国知局
专利名称:用于改进的冗余性的事务捆绑的制作方法
技术领域
本发明涉及具有多个相依性的冗余控制系统的同步,特别涉及上述同 步中的事务消息。
背景技术
在冗余控制系统中,例如冗余控制卡,控制系统两者之间的同步通过 事务消息来维持。当受控系统的状态诸如通信网路改变时,现用控制系统 上的软件模块被触发,以更新所存储的状态信息。软件模块还发送事务消 息至备用控制系统,并响应于备用控制系统更新所存储的状态信息的版本。 例如,如果信道被创建,则软件模块被调用来填充信道列表条目。软件模 块还发送事务消息至备用控制系统,来指示信道列表条目的改变。备用控 制系统通过填充自身的信道列表条目来响应该事务消息。这样,当转换发 生时,新的现用控制系统将拥有最新的正确反映受控系统状态的信息。在具有状态相依性(d印endencies)的系统中,事件可以触发多个事 务消息。在这样的系统中,事件触发第一软件模块以更新状态信息并发送 事务消息至备用控制系统。第一软件模块还会触发第二软件模块,第二软 件模块负责维持依赖于第一软件模块维持的状态信息的状态信息。第二软 件模块更新现用控制系统上的状态信息,然后将其自身的事务消息发送至 备用控制系统。继续上述的实例, 一旦第一软件模块(信道模块)填充了 信道列表条目,则其可能触发第二软件模块(转发模块)以分配用于新信 道的转发索引。第一软件模块和第二软件模块每个都发送他们自身的事务 消息至备用控制系统。当然,可能存在多于两级的相依性,并且第二软件 模块可能以其自身的事务消息触发第三个软件模块等等。如果当事务消息正在净iL^送时发生转换,则可能出现问题。于是备用
控制系统将拥有不完整的状态信息。这可能会导致各种问题,例如不完整 的状态信息或资源的泄漏。例如,如果上述信道才莫块发送了其事务消息, 但是转发模块的事务消息没有被及时地(即在现用控制系统失效之前)发 送,则备用控制系统(现在是新的现用控制系统)将会表现得好像信道已 经被建立,并假定转发索引已经被分配。仅仅当尝试新信道的使用时,才 会知道信息的缺失并产生错误。另一方面,如果是信道模块没有能够及时 地发送它的事务消息,则备用控制系统将处理来自转发才莫块的事务消息, 并且为不存在的信道分配转发索引。当信道在新的现用控制系统上被重新 创建时,新的现用控制系统上的信道模块将触发转发模块,并且新的转发 索引将被分配。这导致转发索引的泄漏。为了克月良该风险,内部模块审计(intra-module audits )被伴随转换 而执行。内部模块审计对照其每个相依的软件模块检查软件模块的状态信 息,以确定是否所有相依的状态信息是存在的,并分配或解除分配资源, 试图纠正任何缺陷。然而,由于软件模块两者之间的相依性通常不是像上 文给出的实例那样简单,因而内部模块审计可能是非常复杂的。总的来说 问题是当不存在附加的备用控制系统时,在转换之后就引入了这样的复杂 性。这种复杂性难以保持和调试。发明内容根据本发明的一个方面,提供了一种用于传送存储的状态信息的更新 至备用控制系统的方法。软件模块被调用,每个所述软件模块更新所述存 储的状态信息的一部分,每个所述软件模块生成反应所述存储的状态信息 的更新部分的事务消息。来自每个软件模块的事务消息被捆绑为单独的捆 绑的事务消息。所述捆绑的事务消息被传送至所述备用控制系统。在一个 实施例中,软件模块可以将其事务消息作为部分返回值传送至调用软件模 块。根据本发明的另 一方面,提供了 一种用于更新备用控制系统中存储的 状态信息的方法。接收来自现用控制系统的捆绑的事务消息。从所述捆绑
的事务消息中提取事务消息。在多个软件模块的每个软件模块上,根据至 少 一个所述事务消息,所述存储的状态信息的一部分被更新。本发明的方法可以以软件的形式作为指令存储在计算机可读媒体中。 本发明的方法和设备允许相关的事务消息被一起捆绑和发送。从而备 用控制系统能够完整地重建受控系统的状态,包括用于事件或更新的所有 相依的状态。这消除了对内部模块审计的需求,极大地简化了现用控制系 统和备用控制系统两者之间的同步,实现了更加平滑的转换。软件错误的 风险随时间分布,而不是所有都在转换之后立刻发生。在事务消息捆绑期 间,负责保证维持软件模块两者之间的相依性的软件始终运行在现用控制系统上,并且收到更好的测试覆盖和浸透时间(soak time),而不是只有 一次的转换后的审计。转换之后立即运行复杂的内部模块审计的需求避免 了。由于复杂的内部模块审计中的4^使得备用控制系统失效,因为主要最小或甚至消除。


参考附图,从下文优选的实施例的详细描述,本发明的特性和优点将 变得更加明显,其中图1是根据本发明的一个实施例由控制系统上的软件模块执行的方法 流程图;图2 pl根据本发明的一个实施例在现用控制系统中实例事务消息的消 息框图;图3是根据本发明的一个实施例在备用控制系统中实例事务消息的消 息框图;需要注意的是在附图中,相同的部分具有相同的标记。
具体实施方式
根据本发明的一个实施例,现用控制系统包括软件模块,软件模块执 行改变受控制系统控制的系统的状态信息的动作。状态信息的改变^皮传送
至备用控制系统,以便保持现用控制系统和备用控制系统两者之间存储的 状态信息的同步,尽管该传送不是必须由改变状态信息的软件模块来执行。每个软件模块可以调用其他软件模块或者可以被其他软件模块调用。 软件模块通常以分等级的方式被组织。调用第二软件模块的第一软件模块 被称为第二软件模块的调用软件模块,第二软件模块被称为被第 一软件模 块调用的软件模块。参考图1,示出根据本发明的一个实施例控制系统上的软件模块执行的方法流程图。在步骤IO,软件模块被调用。这可以由另一个软件模块或 者网络管理者调用。在步骤12,软件模块执行更新受控制系统控制的系统 的状态信息的动作。在步骤14,软件模块生成事务消息,用于最终的备用 系统使用。事务消息反映软件模块在步骤12执行动作中做出的对状态信息 的改变。在步骤16,软件模块将在步骤14生成的事务消息与任何接收的来自 其他被调用软件模块的事务消息捆绑在一起。被调用的软件模块通常作为 在步骤12执行的动作的一部分已经被调用,但是更普遍的是,可以在软件 模块被设计来调用被调用的软件模块的任何时刻被调用。还应该注意的是, 如果该软件模块在或者接近用于触发事件的软件模块层次的底部,则实际 上可能没有任何4皮调用的软件模块或者任何返回的事务消息。在步骤18,软件模块输出捆绑的事务消息,如果该软件模块在或者接 近软件模块层次的底部,则可能仅包括该软件模块的事务消息。所捆绑的 事务消息通常作为返回值被输出,该返回值将由调用软件模块在调用软件 模块的自身执行的步骤16时读取。然而,如果该软件模块没有调用软件模 块并且在用于触发事件的软件^=莫块层次的顶部,则捆绑的事务消息通过传 送所捆绑的事务消息至备用控制系统而输出。输出的特性取决于软件4莫块 是如何被编码的。以这种方式,单独的软件模块不是独立地传送他们自身的事务消息至 备用控制系统。而是由于事务消息被作为返回值的一部分传给调用软件模 块,因而软件模块层次内部的事物消息被捆绑在一起。仅有顶部的软件模
块传送信息至备用控制系统,这通过传送包括来自所有的软件模块的事务 消息的捆绑事物消息来完成,所述所有的软件模块作为由事件触发的软件 模块层次的一部分最终被调用。参考图2,示出根据本发明的一个实施例事务消息的序列实例。现用 控制系统40包括三个软件模块信道创建模块42,是由事件触发的顶部 软件模块;信道模块44;以及转发模块46。在图2中的每个软件模块的下 面是随时间向下g的时间线。当信道被创建时,例如,由网络管理者创 建,信道创建模块42被触发。信道创建模块42注意事件,特别是新的信 道被创建的事件。信道创建模块调用信道模块44。信道模块44执行动作, 即填充信道列表条目。然后信道模块44调用转发模块46。转发模块46执 行动作,即^f言道分配转发索引。执行该动作时,转发才莫块46生成事务消息B。然而,代替传送该事务 消息至备用控制系统48,转发模块46将事务消息作为其返回值的一部填 充送至信道模块44。信道模块44接收事务消息B,并将其与自身的事务消 息A捆绑,事务消息A是作为执行填充信道列表条目动作的结果而被生成 的。信道模块44将捆绑的事务消息作为其返回值的一部填充送至信道创建 模块42。信道创建模块42将接收的事务消息AB与自身的事务消息E进行 捆绑,所述事务消息E是作为执行创建信道动作的结果而被生成。由于信 道创建模块42是顶部软件模块,其输出绑定的事务消息EAB至备用控制系 统48。于是备用控制系统48具有与创建立新信道的触发事件相关的完整 的状态信息,并且能够更新自身存储的状态信息。参考图3,示出根据本发明的一个实施例在备用控制系统内的事务消 息的序列实例。备用控制系统48内的信道创建模块50 (与现用控制系统 40内的信道创建模块42相似)接收由现用控制系统40的信道创建模块42 发送的捆绑的事务消息EAB。信道创建才莫块50提取事务消息E,并且通过 更新备用控制系统48上所存储的状态信息来记录事件,以反映新信道的创 建。然后,信道创建才莫块50发送部分解捆绑的事务消息AB至信道才莫块52 (与现用控制系统40上的信道模块44相似)。信道模块52提取事务消息A并执行相应的动作,即填充由事务消息A指示的信道条目列表。然后, 信道模块52发送部分解捆绑的事务消息B(在本实例中此处仅包括一个事 务消息)至转发模块54 (与现用控制系统40上的转发模块46相似)。转 发模块54提取事务消息B并执行相应的动作,即分配转发索引给信道。然 后,转发模块54发送回应至信道模块52,信道模块52依次发送回应至信 道创建模块50。本发明作为现用控制系统上的软件模块而被描述。这是为了便于说明, 以便区分一个作为现用控制系统的控制系统,以及作为备用控制系统的单 独的控制系统。由于在任何时刻控制系统通常可以是现用控制系统或备用 控制系统,因此本发明可以被更普遍地理解为在任何控制系统上的相关的 软件模块。示出的实施例仅仅是示例性的,本领域技术人员将理解可以对上文描 述的实施例做出变动,而不脱离本发明的精神。逻辑上等同于参考图l描 述的方法的方法均落在本发明的精神和范围之内。本发明的保护范围由附 加的权利要求单独定义。
权利要求
1. 一种传送存储的状态信息的更新至备用控制系统的方法,包括调用多个软件模块,每个所述软件模块更新所存储的状态信息的一部分,并生成反映所述存储的状态信息的更新部分的事务消息;将来自每个软件模块的事务消息捆绑为单独的捆绑的事务消息;传送所述捆绑的事务消息至备用控制系统。
2. 根据权利要求l的方法,进一步包括,将来自生成事务消息的软件 模块的至少 一个生成的事务消息作为部分返回值传给调用软件模块。
3. 根据权利要求2的方法,其中,传送所述捆绑的事务消息包括^ 不被任何所述多个软件模块调用的顶部软件模块传送所述捆绑的事务消息。
4. 一种更新备用控制系统中存储的状态信息的方法,所述方法包括 从现用控制系统接收捆绑的事务消息; 从所述捆绑的事务消息提取多个事务消息;在多个软件模块的每个软件模块,根据所述多个事务消息的至少一个 更新所述存储的状态消息的一部分。
5. 根据权利要求4的方法,其中提取多个事务消息包括,至少一个所 述软件模块从所述捆绑的事务消息提取至少一个所述多个事务消息,留下 部分解捆绑的事务消息并将所述部分解捆绑的事务消息传送至另一个所述 软件模块。
6. 根据权利要求5的方法,其中接收所述捆绑的事务消息包括,仅在 不被任何其他的所述多个软件模块调用的顶部软件模块接收所述捆绑的事 务消息。
7. —种存储了可由计算机处理器处理的指令的计算机可读介质,所述 指令包括用于执行更新控制系统上存储的状态信息的动作的指令; 用于生成反映对所述状态信息的更新的事务消息的指令; 用于从至少一个被调用的软件模块接收至少一个事务消息的指令,所 述至少一个事务消息作为来自每个所述至少一个被调用的软件模块的返回值的一部分;用于将所述至少一个接收的事务消息与所述生成的事务消息捆绑为捆 绑的事务消息的指令;用于输出所述捆绑的事务消息的指令。
8.根据权利要求7的计算机可读介质,其中,用于输出所述捆绑的事 务消息的指令包括,用于包括将所述捆绑的事务消息作为部分返回值的指 令。
9.根据权利要求7的计算机可读介质,其中,用于输出所述捆绑的事 务消息的指令包括,用于传送所述捆绑的事务消息至备用控制系统的指令。
全文摘要
提供了一种用于简化现用控制系统和备用控制系统两者之间的同步的保持的方法。当响应于触发事件和动作,现用控制系统上的相依的软件模块更新所存储的状态信息时,用于相依的软件模块的事务消息被捆绑在一起,并作为单独的消息发送至备用控制系统。这避免了转换发生时,仅仅部分来自相依的软件模块的事务消息在现用控制系统失效之前被传送时可能产生的问题。
文档编号H04L12/56GK101401074SQ200780008433
公开日2009年4月1日 申请日期2007年3月8日 优先权日2006年3月10日
发明者B·温格, M·卡萨卜, T·怀特 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1