HMB模式基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通信,如图8-9所示。消息总线是系统的连接件,负责消息的传递、过滤和分派,以及处理结果的返回;各个构件挂接在消息总线上,向总线登记感兴趣的消息类型;构件根据需要发出消息,由消息总线负责把该消息分派到系统中所有对此消息感兴趣的构件,消息是构件之间通信的唯一方式;构件接收到消息后,根据自身状态对消息进行响应,并通过总线返回处理结果。由于构件通过总线进行连接,并不要求各个构件具有相同的地址空间或局限在一台机器上,因此该模式可以较好地刻画分布式并发系统,以及基于CORBA、DCOM和EJB规范的系统。
如图8-9所示,系统中的复杂构件可以分解为比较简单、底层的子构件,这些子构件控件通过局部消息总线进行连接,这种复杂的构件称为复合智能虚拟控件。如果子构件仍然比较复杂,可以进一步分解。如此分解下去,整个系统形成了树状的拓扑结构,树结构的末端结点称为叶结点,它们是系统的原子构件,不再包含子构件,原子构件的内部可以采用不同于HMB的模式,例如数据流模式、面向对象模式、管道—过滤器模式等,这些属于构件的内部细节,但要集成到HMB模式的系统中,必须满足HMB模式的构件模型的要求。另外,整个系统也可以作为一个构件,通过更高层次的消息总线,集成到更大系统中。于是,可以采用统一的方式刻画整个系统和组成系统的单个构件。
(www.xing528.com)
图8-9 HMB模式的系统示意图
同HMB模式一样,CORBA和C2模式也都是基于消息总线的。相比较而言,符合CORBA模式的系统只有一条消息总线,所有构件直接连接在这条唯一的总线上,称为基于线性消息总线;在C2模式的系统中,不同层次的构件通过消息总线连接起来,不同的消息总线也可以直接相连,消息总线形成某种意义上的网状结构,称为基于网状消息总线;HMB模式支持系统和构件的逐层分解和细化,整个系统和组成系统的各层复合构件都有自身的(局部)消息总线,因此称为基于层次消息总线。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。