功能

服务质量和管理属性

Orbacus Notify 支持所有标准的服务质量和管理属性。它有办法克服“通知服务”规范固有的缺点。这些方法解决了以下问题:

  • 因通信故障而导致的事件重试
  • 拉取模式的拉取间隔

您可以在更广泛的范围内配置 Orbacus Notify,使其能在各种系统配置下提供最佳性能,例如从少许供应商和消费者到大量外部客户。Orbacus Notify 还能根据诸如事件可靠性和事件吞吐量等竞争需求进行调整。

订购共享

结构化事件在事件报头中按照域和类型进行分类。Orbacus Notify 客户端可以使用该信息首先确保意外事件决不会发生。

每个通知渠道都保留一个由“提供的”事件类型和“订购的”事件类型组成的综合列表。供应商可以添加或去除所提供的事件类型,消费者可以添加或去除所订购的事件类型。所有事件的任何更改都会传递给消费者,而订购更改只会传递给事件供应商。

事件转换

无论事件是否属于同一类型,事件供应商和消费者都可以传递事件。Orbacus Notify 完全支持事件转换,按照消费者要求对事件进行“最低限度的包封”。特别是,结构化供应商提供的结构化事件能以 CORBA::Any 方式递送给无类型消费者。同样,无类型事件能在结构化事件的“正文其余部分”字段中递送给结构化消费者。

递送模型

Orbacus Notify 支持官方推送和拉取递送模型以及混合式组合。

事件服务兼容性

Orbacus Notify 完全向后兼容 OMG 事件服务,可以为您现有的事件服务客户端提供平稳的迁移路径。

事件递送

为了向后兼容事件服务客户端,Orbacus Notify 支持无类型事件的递送。此外,Orbacus Notify 还引入了结构化事件和序列结构化事件递送。

结构化事件使您能够指定每个事件的服务质量,并创建由可过滤字段和不透明字段组成的事件。由于结构化事件是实际的 IDL 类型,因此可过滤字段对 Orbacus Notify 可见,并在事件过滤期间使用。

序列结构化事件

对于单个小事件,基于每个方法的命令开销可能影响整体性能。如果您的客户端经常递送小事件,您可能会考虑使用序列结构化事件。

在这种情况下,一个或多个结构化事件将会一起进行批处理,并在单个方法调用中进行传送。供应商完全控制着序列组成,可以在实际递送之前累积任意数量的事件。同样,对于消费者而言,Orbacus Notify 能使他们配置最大批处理量和事件递送间隔。

过滤

结构化事件由事件报头和事件正文组成,正文则由可过滤字段和不可过滤字段组成。通过使用映射过滤器,Orbacus Notify 支持映射事件报头寿命和优先级属性值。实际上,这种映射改变了事件在 Orbacus Notify 中的处理方式。

转发过滤器使您能在整个服务期间过滤各种位置的事件流。这确保了消费者端的宝贵网络带宽能够得到有目的的使用,不会被不需要的事件占用。