NotificationBoard是标准模型库中用于节点内部信息交互的模块。在节点内部,一些模块的信息可能为另外一些模块所需要,若这些模块间直接进行交互,会造成模型间的耦合度过高,不利于模型的扩展和重用。因此,我们采用了NotificationBoard这一模型来统一负责节点内部信息的交互。
例如,模块A需要一种类型为T的状态信息,则A在仿真开始之初向NotificationBoard订阅这一消息。模块B是这一信息的管理者,当发生变化时,B向NotificationBoard发布T消息。NotificationBoard在收到T后,会通知所有订阅了这一消息的模块。需要注意的是,NotificationBoard并不提供对外的接口。如果一个模型需要参与节点内部的信息交互,即需要通过NotificationBoard发布或订阅信息,则该模块需要从cBasicModule类继承,以获取发布和订阅信息的接口。在使用NotificationBoard时,用户并不需要手动在模型中添加NotificationBoard模块,通过使用建模模板即可完成这一功能。在实际的仿真中中,只有“设备”级的模型才能使用。
NotificationBoard模块提供的功能,因此,让新建立的模型使用“设备”级模型建模模板进行建模即可,包括Equipment、IPv4Equipment、IPv6Equipment、MobilityEquipment、MobilityIPv4Equipment、MobilityIPv6Equipment等模型模板均已包含NotificationBoard模块功能。如果用户不使用这些建模模板,则需要手动在建立的设备模型中添加NotificationBoard模块方能使用相关功能。
2016年12月27日
转载请注明原文地址: https://ju.6miu.com/read-572.html