CORBA事件服务与组件模型详解
1. CORBA事件服务概述
CORBA事件服务实现了著名的中介者模式,该模式将两个不希望直接了解彼此的对象解耦。在事件服务中,事件的供应者和消费者不应该直接了解对方,因此引入了事件通道(Event Channel)来协调它们之间的关系。
事件通道负责使事件消息可供消费者的 try_pull() 调用使用。当消费者和供应者的可执行文件运行时,可以看到供应者向事件通道写入消息的过程,以及消费者从事件通道提取消息并打印其内容。供应者依次推送一个长整型、一个短整型、一个双精度浮点型、一个字符串,最后再推送一个长整型(数字13),向消费者表明操作结束,此时消费者线程终止,两个应用程序退出。
2. 供应者和消费者类型
CORBA事件服务定义了供应者和消费者的两种类型:推送(Push)和拉取(Pull)。
- 推送供应者(Push Supplier) :异步地将事件推送到事件通道。
- 推送消费者(Push Consumer) :异步地从事件通道接收事件。
- 拉取供应者(Pull Supplier) :由事件通道定期轮询以获取事件。
- 拉取消费者(Pull Consumer) :定期轮询事件通道以获取事件。
3. 事件通道的IDL定义
以下是事件服务相关的IDL定义:
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



