事件通道

corba事件服务中的push和pull模型

人盡茶涼 提交于 2019-12-10 02:15:41
首先说一下Corba中相对比较简单的服务模型,事件服务。 对于事件服务的话,有push和pull两种模型。下面就分别说一下这两种模型具体实现: 首先,push和pull模型都是基于事件通道EventChannel的,两种模型的通信最终都必须通过事件通道push或pull对象的引用,那就简要的说一下事件通道的概念。 事件信道( event channel )是一个既是事件提供者又是事件消费者的插入对象,它允许多个事件提供者和多个事件消费者异步地通信而不需要相互了解。事件信道又是一个标准的 CORBA 对象,驻留在对象请求中介上,可以断开提供者和消费者的通信。 事件信道利用代理 (proxy) 对象撤消时间的提供者和消费者。提供者和消费者不是直接交互作用,而是从事件信道那里获得代理对象,让代理对象在将来的事件交换中代表自己。提供者获得一个消费者代理,而消费者获得一个提供者代理。事件信道通过这些代理对象代理事件的交换。 就 push 模型而言: 1 )、下面说一下事件通道的注册绑定过程,具体实现代码如下: Properties properties = new Properties(); //properties用来设置初始化orb所需要的参数信息 properties.put("org.omg.PortableInterceptor.ORBInitializerClass.bidir