总线目标
服务集成具有下列类型的总线目标,每个总线目标具有不同的用途:队列、主题空间、外部和别名。
- 队列目标
- 队列目标表示消息队列,并用于点到点消息传递。 服务集成队列目标位于特定总线成员(应用程序服务器或应用程序服务器集群)中。 生产者将消息发送至队列目标时,服务集成总线会将该消息传送至该总线成员中的消息传递引擎。 消息传递引擎随后将消息传送至使用者。 必要时,消息传递引擎会对消息进行排队直到使用者准备好接收该消息。
- 主题空间目标
- 主题空间目标表示一组发布和预订主题,并用于发布/预订消息传递。 特定消息(发布)的主题是该消息的一个属性。
服务集成主题空间目标不在特定总线成员中。 服务集成将预订列表保留在主题空间中并针对该列表匹配每个发布。 新发布与主题空间中的一个或多个预订匹配时,服务集成将该发布的副本传送至每个订户。 必要时,服务集成可对发布消息进行排队直到订户准备好接收该消息。 如果新发布未与任何预订匹配,那么服务集成会废弃该发布。
- 外部目标
- 外部目标表示在另一总线(外部总线)中定义的目标。 可以将外部目标用于点到点消息传递。 如果您需要针对外部总线上的个别目标覆盖安全性设置或消息传递缺省值,那么可以使用外部目标。
外部总线可以是另一个服务集成总线或 IBM MQ 网络 (即,一个或多个互连的 IBM MQ 队列管理器或队列共享组)。 生产者将消息发送至外部目标时,服务集成会将该消息传送至外部总线。 然后外部总线负责适当地根据其目标定义对消息排队。
要覆盖外部总线上目标的消息传递缺省值,可以配置外部目标的属性(例如,缺省优先级)。 要覆盖安全设置和控制本地总线中的哪些用户和组可访问外部总线中的目标,可以配置外部目标的目标角色。 当连接至本地总线的应用程序将消息发送至外部总线中的目标时,会应用这些属性。
请勿将外部目标用于发布/预订消息传递。 应用程序使用本地总线中的主题空间目标在本地发布消息,并且您配置服务集成总线链路或者 WebSphere MQ 链路。 这些链路将已发布消息传播到外部总线或者订户用于接收消息的总线。 对于到服务集成总线的链接,请 配置主题空间映射。 对于到 WebSphere MQ 网络的链路,请 配置发布/预订网桥。
- 别名目标
- 别名目标映射总线目标的备用名称。 可使用别名目标来进行点到点消息传递或发布/预订消息传递。 别名目标会将总线名称和目标名称(标识)映射到一个目标(在该目标中,总线名称和/或目标名称不相同)。 别名目标可以映射到队列目标或主题空间目标。 必要时,别名目标可链接到一起,以便期望目标本身是别名目标。当需要使用备用名称来标识一个目标时,应该使用别名目标。 例如:
- 服务集成目标可能具有不符合 IBM MQ 命名限制的名称 (例如,名称太长)。 对于此类目标,您可以定义将符合 IBM MQ的名称映射到服务集成名称的别名目标。 IBM MQ 应用程序可以使用符合 IBM MQ的名称将消息发送到目标。
- 您可以将别名目标指定给分区队列目标的队列点的子集,因此使用别名目标来限制生产和消费应用程序使用的队列点。
使用别名目标时,还可以设置别名目标的属性(例如,缺省服务质量)。 应用程序使用别名目标时,这些属性会覆盖期望目标的属性。 如果不希望覆盖属性,请将别名目标配置为从期望目标继承相应属性。
使用别名目标时,还可以配置别名目标的目标角色。 应用程序使用别名目标时,本地总线中的服务集成使用这些角色来控制本地总线中的哪些用户和组可访问该期望目标。 如果不希望覆盖期望目标的安全性,请将别名目标配置为将授权检查交由期望目标负责。
总线目标可以是持久目标或临时目标。 当管理员配置服务集成目标时,该目标是持久目标,在管理员将其明确删除之前将一直存在。 相反,临时目标仅在应用程序使用它时才存在。 通常,应用程序使用 JMS 临时目标时会发生这种情况。 服务集成创建对应的临时服务集成总线目标。
可以使用一个或多个调解来配置队列目标、主题空间目标和别名目标。 在生产应用程序将消息发送至目标之后到任何使用应用程序从目标接收该消息之前,处理过该消息的程序都称为调解程序。 例如,调解可修改实际的消息和/或将消息重定向至另一目标或另一目标系列。
- 在使用者可以从该目标检索消息之前,缺省正向路由路径会定义中间目标(消息必须通过此目标才能达到目标位置)的顺序列表。 每个中间目标会将其调解程序应用于消息。
- 应答目标是发送应答消息的下一个目标。