代理型通知
“Web Service 代理型通知”规范定义如何使中介 NotificationBroker 负责将一个或多个发布者生成的消息传播到零个或多个 NotificationConsumer。
WS-BrokeredNotification V1.3 OASIS 标准的第 4 节描述了代理型通知,如下所示:
通知进程中存在三个不同阶段
- 观察情况及其显着特征;
- 创建用于捕获情况的显着特征的通知工件;以及
- 将通知的副本分发到零个或多个相关各方。
在大多数情况下,第 1 和第 2 阶段是在 WS-Notification 体系结构范围外部发生的;此规范未限制这些阶段必须发生的发生方式。我们将执行第 1 和第 2 阶段的实体称为发布者。
但是,规范的 WS-Notification 系列指定了消息传播应采取的发生方式。WS-Notification 中的通知通过以下两种主要模式进行传播:直接和代理。
在使用“直接”模式的情况下,发布 Web Service 实现与 NotificationProducer 接口相关联的消息交换;它负责接受预订消息并将通知发送给相关各方。此 Web Service 的实现者可以选择对此行为进行编程或委托给预订和通知传递行为的专用实现。WS-BaseNotification V1.3 OASIS 标准对这种情况进行了说明。
在使用代理的情况下,中介 NotificationBroker 负责将一个或多个发布者生成的消息传播到零个或多个 NotificationConsumer。
发布者与 NotificationBroker 之间的关系相关联的三种模式:简单发布、代理启动的发布以及按需发布。
下图说明了简单发布:

在简单发布方案中,发布者实体仅负责执行核心发布者功能 - 观察情况并对描述该情况的通知工件进行格式化。 发布者将通知消息发送至 NotificationBroker 时发生传播步骤。
在代理启动的发布模式中,发布者的角色由实现 NotificationProducer 的 Web Service 扮演。观察情况和格式化通知的行为在 NotificationProducer 自身的实现逻辑中发生。 NotificationProducer 在将通知消息发送给 NotificationBroker 时传播了通知。也可以将通知消息发送至任何将预订该 NotificationProducer 的 NotificationConsumer 来传播通知。
注意:在前两种情况中的任何一种情况下,NotificationBroker 可能需要发布者在发送通知消息之前注册。例如,如果代理程序需要控制可发布到给定主题的人员,那么它可以在此注册期间执行访问控制检查。但是,如果发布者未预先注册即进行发布,那么 NotificationBroker 可以允许其进行发布。
最后一个模式(基于需求的模式)要求发布者是 NotificationProducer,从而可接受预订消息。 基于需求的发布旨在用于以下情况:由于执行观察情况的行为或格式化通知工件的行为的开销可能较高,因此如果没有此通知的相关各方,应避免执行。发布者指示其意图以通过注册 NotificationProducer 或将 RegisterPublisher 请求消息的需求组件设置为“true”来使用此模式。 基于这种样式的注册,NotificationBroker 会将预订消息发送至发布者(请回忆:在这种情况下,发布者必须实现与 NotificationProducer 接口相关联的消息交换)。

此外,NotificationBroker 会暂停其预订,尽管发布者提供的信息没有活动订户。当 NotificationBroker 有活动订户时,它必须继续向发布者进行预订。
Copyright © OASIS Open 2004-2006. All Rights Reserved.
可以复制本文档及其翻译版本并提供给他人,对其进行注释或说明或者有助于文档实现的全部或部分衍生品可以进行编译、复制、发布和分发,而不受任何限制,前提是所有此类副本和衍生品包含了上述版权声明和本段。但是,此文档本身不能以任何方式进行修改,例如,移除版权声明或对 OASIS 的引用,除非根据需要进行开发 OASIS 规范,在这种情况下,必须遵循 OASIS 知识产权文档中定义的版权过程,或根据需要将其翻译为英语之外的其他语言。