异步服务使用回调交互模式进行对象间通信。例如,可以在面向消息的中间件供应商所提供的发布/预订系统中或在系统和设备管理域中使用异步服务。
WS-Notification 服务
异步服务在 WS-Notification 规范中进行了标准化:
- WS-BaseNotification 定义 NotificationProducers 和 NotificationConsumers 的 Web 服务接口。
此规范包括由希望承担这些角色的服务供应商实施的标准消息交换以及关联的操作需求。
- WS-BrokeredNotification 定义 NotificationBroker 的 Web 服务接口。NotificationBroker 是一个中介,和其他一些机制一起用于支持并非服务供应商本身的实体发布消息。它包括由 NotificationBroker 服务供应商实施的标准消息交换,以及参与代理通知的服务供应商和请求者的关联操作需求。
- WS-Topics 定义了一种机制,用于对预订的相关项(称为主题)进行组织和分类。这些主题与 WS-BaseNotification 和 WS-BrokeredNotification 中定义的通知机制结合使用。
您可以通过在测试内创建异步请求来测试实施 WS-Notification 规范的 Web 服务和 XML 服务。异步请求包含对应的 WS-Notification 规范的接口以及回调结构。
专有异步服务
您可以测试没有实施 WS-Notification 规范的专有异步服务。要测试这些服务,请手动创建包含服务接口的服务请求,然后向该请求中添加异步回调结构。
异步请求的 XML 数据必须包含指定回调接收方 URL 的端点。在测试期间,此端点用于将回调重定向到测试者而不是真实接收方。
回调结构
要测试异步服务,您必须在测试中创建异步请求结构,如下图中所示:
Web 服务请求或普通 XML 请求提供了预订操作并包含回调元素,该元素描述测试在以下三种状态下的行为:
- 并行包含在预定请求之后以及在等待通知响应时运行的测试元素。
- 接收包含在从服务接收到通知响应时运行的测试元素。
- 超时包含在经过回调元素中指定的延迟后未接收到通知响应时运行的测试元素。
当并行、接收和超时元素中包含的所有内容都已完成运行时,将在异步请求后对测试中的下一个元素继续运行。
在测试中生成异步回调结构的方法取决于异步服务是否使用 WS-Notification 规范:
- WS-Notification 服务:在测试中创建异步请求。
- 专用服务:在测试中手动创建 Web 服务请求或 XML 请求,然后向该请求中添加异步回调结构。