通信设备及其中模块间交互方法

文档序号:7625596阅读:181来源:国知局
专利名称:通信设备及其中模块间交互方法
技术领域
本发明涉及通信领域,特别涉及通信设备内部模块间信息交互技术。
背景技术
随着信息化程度的不断加深,人类对通信的容量、速度、质量以及服务种类的要求越来越高。个人计算机和国际互联网络的普及、数据业务与电子邮件通信以及各种宽带接入技术的飞速发展给通信网络和通信设备带来了革命性的变化。
为了满足越来越高的通信要求,通信设备变得越来越复杂,要求实现的功能也越来越多,使得必然采用标准化、模块化的开发方式。通信设备的开发商大量使用各种任务不同的板卡构成各个通信设备模块,再由这些具有不同功能的模块搭建成完整的通信设备系统,由此可以大量降低开发专属架构所需的成本。所以采用标准化的模块、共享的模块比较容易达到一定的产量,成本自然降低。
由此可见,通信设备实际上是由许多相对独立的板卡或者模块构成,各自形成一个子系统,再组合成一个完整的系统。因此,对于整个系统来说,利用多个子系统间的有效配合是完成系统功能的关键。另外,子系统间的交互是相互配合的主要方面。
为了使得系统内各子系统之间能更好的分工与合作,在现代软件设计过程中普遍采用消息处理机制来大大的降低各子系统之间的耦合度,并且成为子系统间交互的重要方式。这种信息交互是由消息的发送以及消息的接收处理来实现的。
现有技术的通信设备内的一种信息发送发式如图1所示,该方式采用了定时器,并需要消息接收模块的响应。
在步骤101中,模块2作为信息发送的模块,向模块1发送消息。
在步骤102中,模块2在消息发送的同时,启动定时器。
在步骤103中,如果模块2收到模块1返回的响应消息,则转入步骤104,否则,按图2或图3所示的方式处理。
在步骤104中,模块2关闭定时器,并标记该信息发送成功。
在上述信息发送方式的步骤103中,如果直到模块2的定时器超时,仍没有收到模块1返回的响应消息,这时,信息的发送可以按图2所示的方式处理。
步骤201和步骤202与步骤101和步骤102相同。
在步骤203中,直到定时器超时,如果模块2仍未收到响应消息,则返回步骤201,并循环往复,直到模块1响应为止。
另外,如果按图1所示的信息发送方式,在步骤103中,直到定时器超时,仍未收到模块1返回的响应消息的情况,还可以按图3所示的方式处理。
步骤301和步骤302与步骤101和步骤102相同。
在步骤303中,定时器超时时,模块2仍未收到响应消息,则标记该信息发送失败,停止处理。
通信设备内的另一种信息发送方式如图4所示,该方式不采用定时器,也不需要模块1的响应。
步骤401同步骤201,模块2直接向模块1发送消息。
在步骤402中,模块2在发送完消息后,便直接标记信息发送成功。
在实际应用中,上述方案存在以下问题系统资源存在浪费,并会影响系统设备的可靠性,信息传送丢失概率高。
造成这种情况的主要原因在于,因为若信息接收的模块启动异常导致无法正常运行时,会使得大量无法接收的信息在系统设备中发送,浪费系统资源,例如模块2启动异常等情况;因为当信息发送的模块需要给多个模块提供信息时,采用的重新发送并等待响应的方式,会由于一个子系统的错误所造成资源严重的浪费,严重的可能导致整个系统的瘫痪,从而影响系统设备的性能,例如,如图2所示的信息发送方式;因为如果信息发送的模块采用超时停止处理,例如,如图3所示的信息发送方式,或者采用一旦信息送出便标记发送成功,例如,如图4所示的信息发送方式,当信息接收的模块无法正常接收是由于状态错误引起时,那么即使信息接收的模块的状态恢复正常,也无法接收到已经发送信息,导致信息丢失。

发明内容
有鉴于此,本发明的主要目的在于提供一种通信设备及其中模块间交互方法,使得系统在性能和信息丢失概率两方面取得较好的平衡。
为实现上述目的,本发明提供了一种通信设备中模块间交互方法,该设备中作为信息发送者的服务模块复位时会触发作为信息接收者而依赖该服务模块的各客户模块全部复位,包含以下步骤A所述客户模块在复位后向所述服务模块发送请求订阅指定信息的请求消息,如果在预置时长后没有接收到来自该服务模块的响应消息,则重发该请求消息;B所述服务模块在收到来自所述客户模块的请求消息后,向该客户模块返回响应消息;C当所述指定信息发生变化时,所述服务模块直接向所述客户模块发送相应通知消息。
其中,所述服务模块向所述客户模块发送通知消息后,直接标记该客户模块已收到该通知消息,无需该客户模块确认收到该通知消息。
此外在所述方法中,所述步骤B还包含以下子步骤所述服务模块收到来自所述客户模块的请求消息后,建立所述客户模块与其所订阅的指定信息的对应关系,所述步骤C中,当所述指定信息发生变化时,所述服务模块根据所述对应关系向所述客户模块发送相应通知消息。
此外在所述方法中,如果所述指定信息被多个客户模块订阅,则所述服务模块根据所述对应关系,在该指定信息发生变化时,向所有订阅该指定信息的客户模块发送相应通知消息。
此外在所述方法中,所述步骤A中,所述客户模块通过超时重发机制周期性地向所述服务模块重发所述请求消息,直至收到来自该服务模块的响应消息。
此外在所述方法中,所述步骤A中,所述客户模块通过超时重发机制周期性地向所述服务模块重发所述请求消息,直至收到来自该服务模块的响应消息或重发次数超过预置门限。
此外在所述方法中,所述客户模块在启动或复位时向所述服务模块发送所述请求消息。
本发明还提供了一种通信设备,包含作为信息发送者的服务模块和至少一个作为信息接收者的客户模块,所述客户模块进一步包含用于发送消息的发送单元、用于接收消息的接收单元、和定时器;
其中,所述发送单元在客户模块复位后向所述服务模块发送请求订阅指定信息的请求消息,并启动所述定时器;所述接收单元收到对该请求消息的响应消息时停止该定时器;该定时器超时后指示所述发送单元重发所述请求消息;所述服务模块进一步包含用于发送消息的发送单元、用于接收消息的接收单元、用于保存客户模块与其所订阅的指定信息的对应关系的存贮单元、和用于判断被订阅的所述指定信息是否发生了变化的判断单元;其中,所述接收单元收到来自所述客户模块的请求消息后,建立该客户模块与其订阅的指定信息的对应关系并将该对应关系保存在所述存贮单元中,并由所述发送单元向客户模块发送响应消息;当所述判断单元判定所述指定信息发生了变化时,指示所述发送单元根据所述存贮单元中的对应关系向订阅了该指定信息的客户模块发送通知消息。
通过比较可以发现,本发明的技术方案与现有技术的主要区别在于,通过设备中的客户模块先向服务模块发送请求订阅信息的消息,服务模块在接收到该消息后,返回响应消息,如果客户模块在预置时间内没有收到响应消息,则触发重发机制,以保证服务模块接收到该客户模块的订阅请求。服务模块在接收到客户模块的订阅请求后,建立客户模块与其所订阅的信息的对应关系,并根据该对应关系直接将其订阅的信息通过无需响应的一次性方式发送给该客户模块。
这种技术方案上的区别,带来了较为明显的有益效果,即降低了系统设备中信息丢失的概率,同时避免了由于个别客户模块的启动异常而导致整个系统的吊死,节约了系统资源,提高了系统性能。
由于模块的异常往往发生在启动阶段,因此,启动时客户模块发送的订阅请求需要采用重发机制以保证服务模块接收到该请求,而在订阅完成后,整个系统已进入稳定状态,服务模块发送给客户模块所订阅的信息不易丢失,因此,可以降低系统设备中信息丢失的概率。
另外,由于服务模块是将客户模块订阅的信息通过无需响应的一次性方式发送给该客户模块,因此,即使某个客户模块无法正常运行,也不会导致服务模块反复进行发送流程,从而导致整个系统的吊死。而且由于服务模块建立了客户模块与其所订阅的信息的对应关系,因此防止了系统中的无效信息,节约了系统资源,提高了系统性能。


图1是现有技术中通信设备中模块间的信息发送方法流程图;图2是现有技术中通信设备中模块间的信息发送方法流程图;图3是现有技术中通信设备中模块间的信息发送方法流程图;图4是现有技术中通信设备中模块间的信息发送方法流程图;图5是根据本发明第一实施方式的通信设备中模块间信息订阅方式的流程图;图6是根据本发明第一实施方式的通信设备中模块间信息发送方法流程图;图7是根据本发明第二实施方式的通信设备中模块间信息订阅方式的流程图;图8是根据本发明第三实施方式的通信设备中服务模块和客户模块的结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明提供一种通信设备中模块间交互方法,在此,将作为信息发送者的模块称为服务模块,作为信息接收者的模块称为客户模块。
在该设备中,当服务模块复位时会触发相应的各客户模块全部复位。客户模块在复位后或者是启动时,向服务模块发送请求订阅指定信息的请求消息,如果在预置时长后没有接收到来自该服务模块的响应消息,则重发该请求消息。
服务模块在收到来自客户模块的请求消息后,建立该客户模块与其所订阅的指定信息的对应关系,并向该客户模块返回响应消息。当被订阅的指定信息发生变化时,服务模块便根据该对应关系向客户模块发送相应通知消息,并在发送完后直接标记发送成功的信息,无需等待该客户模块确认收到该通知消息。由于服务模块是将客户模块订阅的信息通过无需响应的一次性方式发送给该客户模块,因此,即使某个客户模块无法正常运行,也不会导致服务模块反复进行发送流程,从而导致整个系统的吊死。而且由于服务模块建立了客户模块与其所订阅的信息的对应关系,因此防止了系统中的无效信息,节约了系统资源,提高了系统性能。
其中,服务模块的信息可以被多个客户模块订阅,并且服务模块根据订阅形成的对应关系,在该信息发生变化时,向所有已订阅的客户模块发送相应通知消息。
本发明第一实施方式的通信设备中模块间信息订阅方式如图5所示。由于模块的异常往往发生在启动阶段,因此,启动时客户模块发送的订阅请求需要采用重发机制以保证服务模块接收到该请求。
在步骤501中,客户模块1在启动时,向服务模块发送订阅请求。
在步骤502中,客户模块1在发送订阅请求的同时启动定时器。
在步骤503中,如果服务模块收到了客户模块1对指定信息的订阅请求,则根据该请求记录该客户模块1与指定信息的对应关系,并转入步骤505。
在步骤504中,若客户模块1的定时器定时时间到,仍未收到服务模块的订阅响应消息,则重新启动定时器,返回到步骤501,等待响应。
在步骤505中,服务模块给客户模块1返回订阅响应,通知客户模块1订阅成功。
在步骤506中,客户模块1收到订阅成功的通知,关闭定时器,完成了指定信息的订阅。
本方案是以一个客户模块的信息订阅为例的,对于多个客户模块进行的信息订阅,各客户模块可以进行相同的操作。
当指定信息订阅成功后,服务模块中的指定信息一旦有变更,则会发送通知消息给订阅了该信息的客户模块,其发送方式如图6所示。
在步骤601中,服务模块内被订阅的信息有更改。
在步骤602中,服务模块查找订阅关系表,找到与该变更信息有订阅关系的所有客户模块名单,查到客户模块1和客户模块2。
在步骤603中,服务模块根据该名单向客户模块1发送该信息变更的通知消息。
在步骤604中,服务模块根据该名单向客户模块2发送该信息变更的通知消息。在订阅完成后,整个系统已进入稳定状态,服务模块发送的客户模块所订阅的信息不易丢失,因此,这种在重启时发送请求消息并要求响应,信息发送不要求响应的模块间交互方法,降低了系统设备中信息丢失的概率,同时也避免了由于个别客户模块的启动异常而导致整个系统的吊死,节约了系统资源,提高了系统性能。
本发明第二实施方式的通信设备中模块间信息订阅方式如图7所示。由于服务模块重启,引起了客户模块1、2复位,使得客户模块1、2都将重新发起订阅,其中,客户模块2复位后重新发起订阅如该图所示。
在步骤701中,客户模块2预置发送订阅请求的门限次数。
在步骤702中,客户模块2向服务模块发送指定信息的订阅请求,并等待响应。如果没有收到服务模块的响应消息,则重复步骤702。
在步骤703中,当该指定信息的订阅请求发送次数达到预置的门限次数时,客户模块2仍未收到服务模块的响应消息,则停止该订阅请求。因为多次重发没有响应,客户模块2判定服务模块已发生了严重的故障,不可能提供正常服务,已经没有必要再重发。通常情况下由维护人员排除服务模块的故障后整个设备重新复位,各客户模块再次进行订阅尝试。
本发明第三实施方式的通信设备中模块的结构如图8所示。该设备中包含作为信息发送者的服务模块和一个(或多个)作为信息接收者的客户模块。
具体地说,客户模块中包含用于发送消息的发送单元、用于接收消息的接收单元、和定时器。
其中,客户模块的发送单元在该客户模块复位后,向服务模块发送请求订阅指定信息的请求消息,并启动其内的定时器;而客户模块的接收单元则在收到对该请求消息的响应消息时,停止该定时器;该定时器的功能为,定时超时后指示该客户模块内的发送单元重发请求消息。
而服务模块则包含用于发送消息的发送单元、用于接收消息的接收单元、用于保存客户模块与其所订阅的指定信息的对应关系的存贮单元、和用于判断被订阅的指定信息是否发生了变化的判断单元。
其中,服务模块的接收单元在收到来自客户模块的请求消息后,建立该客户模块与其订阅的指定信息的对应关系,并将该对应关系保存在存贮单元中;并由发送单元向客户模块发送响应消息;当判断单元判定被订阅的指定信息发生了变化时,指示发送单元根据存贮单元中的对应关系向订阅了该指定信息的客户模块发送通知消息。
根据上述的通信设备的两种模块结构,本领域一般技术人员可以理解,这两种结构可以同时存在于一个模块中,使得该模块同时具备服务模块和客户模块的功能。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种通信设备中模块间交互方法,该设备中作为信息发送者的服务模块复位时会触发作为信息接收者而依赖该服务模块的各客户模块全部复位,其特征在于,包含以下步骤A所述客户模块在复位后向所述服务模块发送请求订阅指定信息的请求消息,如果在预置时长后没有接收到来自该服务模块的响应消息,则重发该请求消息;B所述服务模块在收到来自所述客户模块的请求消息后,向该客户模块返回响应消息;C当所述指定信息发生变化时,所述服务模块直接向所述客户模块发送相应通知消息。
2.根据权利要求1所述的通信设备中模块间交互方法,其特征在于,所述服务模块向所述客户模块发送通知消息后,直接标记该客户模块已收到该通知消息,无需该客户模块确认收到该通知消息。
3.根据权利要求1所述的通信设备中模块间交互方法,其特征在于,所述步骤B还包含以下子步骤所述服务模块收到来自所述客户模块的请求消息后,建立所述客户模块与其所订阅的指定信息的对应关系,所述步骤C中,当所述指定信息发生变化时,所述服务模块根据所述对应关系向所述客户模块发送相应通知消息。
4.根据权利要求3所述的通信设备中模块间交互方法,其特征在于,如果所述指定信息被多个客户模块订阅,则所述服务模块根据所述对应关系,在该指定信息发生变化时,向所有订阅该指定信息的客户模块发送相应通知消息。
5.根据权利要求1所述的通信设备中模块间交互方法,其特征在于,所述步骤A中,所述客户模块通过超时重发机制周期性地向所述服务模块重发所述请求消息,直至收到来自该服务模块的响应消息。
6.根据权利要求1所述的通信设备中模块间交互方法,其特征在于,所述步骤A中,所述客户模块通过超时重发机制周期性地向所述服务模块重发所述请求消息,直至收到来自该服务模块的响应消息或重发次数超过预置门限。
7.根据权利要求1至6中任一项所述的通信设备中模块间交互方法,其特征在于,所述客户模块在启动或复位时向所述服务模块发送所述请求消息。
8.一种通信设备,包含作为信息发送者的服务模块和至少一个作为信息接收者的客户模块,其特征在于,所述客户模块进一步包含用于发送消息的发送单元、用于接收消息的接收单元、和定时器;其中,所述发送单元在客户模块复位后向所述服务模块发送请求订阅指定信息的请求消息,并启动所述定时器;所述接收单元收到对该请求消息的响应消息时停止该定时器;该定时器超时后指示所述发送单元重发所述请求消息;所述服务模块进一步包含用于发送消息的发送单元、用于接收消息的接收单元、用于保存客户模块与其所订阅的指定信息的对应关系的存贮单元、和用于判断被订阅的所述指定信息是否发生了变化的判断单元;其中,所述接收单元收到来自所述客户模块的请求消息后,建立该客户模块与其订阅的指定信息的对应关系并将该对应关系保存在所述存贮单元中,并由所述发送单元向客户模块发送响应消息;当所述判断单元判定所述指定信息发生了变化时,指示所述发送单元根据所述存贮单元中的对应关系向订阅了该指定信息的客户模块发送通知消息。
全文摘要
本发明涉及通信领域,公开了一种通信设备及其中模块间交互方法,使得系统在性能和信息丢失概率两方面取得较好的平衡。本发明中,通过设备中的客户模块先向服务模块发送请求订阅信息的消息,服务模块在接收到该消息后,返回响应消息,如果客户模块在预置时间内没有收到响应消息,则触发重发机制,以保证服务模块接收到该客户模块的订阅请求。服务模块在接收到客户模块的订阅请求后,建立客户模块与其所订阅的信息的对应关系,并根据该对应关系直接将其订阅的信息通过无需响应的一次性方式发送给该客户模块。
文档编号H04L12/00GK1988448SQ200510111910
公开日2007年6月27日 申请日期2005年12月23日 优先权日2005年12月23日
发明者汪波 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1