CORBA Programming with TAO - 8.Event Service(事件服务)
摘要:
事件服务(Event Service)通过在通信的双方甚至是多方间引入一个第三方――Event Channel,一定程度上解除Client和Server之间的耦合关系,在通信的过程中,任意一方只需与Event Channel打交道,而无需确切知道对方的存在,从而使得二者由一对一的关系变成多对多的关系。
一、简介
CORBA除了前面讲过的基本的Naming Service(命名服务)外,还定义了许多其它服务,Event Service就是其中的一个。标准的CORBA通信模式中,Client与Server之间的通信是直接的,Client向Server发出调用请求,Server进行处理并返回结果,这种处理方式下,二者之间是完全耦合在一起的一对一的关系。而Event Service则通过在二者之间引入一个第三方--Event Channel,可在一定程度上解除Client和Server之间的耦合关系,在通信的过程中,任意一方只需与Event Channel打交道,而无需确切知道对方的存在,从而使得二者由一对一的关系变成多对多的关系。
CORBA的Event Service定义了两种通信模式,推模式(Push Model)与拉模式(Pull Model)。在推模式下,PushSupplier向Event Channel发送消息,由Event Channel向Cusumer转发消息;在拉模式下,PullConsumer向Event Channel请求消息,由Event Channel向Supplier转发该请求。但是,并不是说PushSupplier只能与PushConsumer通信,PullSupplier只能与PullConsumer通信,由于Event Channel提供的代理同时也扮演着Supplier/Consumer的角色,因此,在实际应用中,我们可以混合使用两种模式,后面的实例将演示PullSupplier与PushConsumer通过Event Channel连接的例子,这种情况下,代理一方面不断地主动从Supplier处请求消息(默认时间间隔1秒),另一方面,又主动将收到的消息向Consumer发送。
文章来源于领测软件测试网 https://www.ltesting.net/