Web 消息传递服务是一个发布和预订实现,用于将浏览器连接至 WebSphere® Application Server 服务集成总线 (SIB) 以实现服务器端事件推送。
客户机/服务器通信是通过使用 Bayeux 协议实现的。Bayeux 协议是基于 HTTP 的消息传递路由协议。Bayeux 协议的客户机支持由 Dojo Toolkit 提供。目前,Dojo Toolkit 是唯一支持 Bayeux 协议的 JavaScript 库,但任何用于实现 Bayeux 协议支持的 JavaScript 库或 HTTP 客户机都可以与 Web 消息传递服务通信。Web 消息服务实现将入局 Bayeux 请求连接至服务集成总线,从而允许已连接至服务集成总线的 Web Service、JMS 客户机或任何项目将事件发布至基于 Web 的客户机。您可以通过以下方式在新应用程序或现有应用程序中使用 Web 消息传递服务:将运行时 Java™ 归档 (JAR) 文件放入 WebSphere Application Server,将实用程序文件库 JAR 文件放入应用程序 Web 模块,设置简单配置文件并配置 Servlet 映射。
有关更多信息,请参阅 Bayeux 和 cometd Web 站点。
在典型应用程序中,浏览器将按照指定的时间间隔或轮询来定期请求获得服务器中的更新。Bayeux 协议通信类型与传统的轮询模型不同,该通信通过长期存在的 HTTP 连接进行,在该 HTTP 连接中,服务器通常保持某个连接处于开放状态一段时间,以等待要推送至浏览器的事件。 通过此样式的通信,Web 容器不能缩放,因为每一个处于等待状态的客户机都耗用一个线程(正在等待一个事件)。 用于处理此样式的请求的其他服务器具有不同的缩放方法。因为 Web 消息传递服务旨在与现有版本的 WebSphere Application Server 配合工作,并且当前的 Web 容器通过这种通信方法不能很好地缩放,所以在 Web 消息传递服务中引入了一种新机制以实现可伸缩性。
这种新机制利用通道框架体系结构并创建用于扩展 HTTP 通道的新通道框架通道,以将入局 Bayeux 请求连接至服务集成总线。
通过 Dojo Toolkit cometd 客户机模块,使得对 Web 消息传递服务的当前浏览器支持成为可能。初始化、预订、取消预订和发布操作都通过 cometd 客户机进行简化。通过 cometd 客户机,服务器驱动的事件被集成到 Dojo 事件和主题系统中。在 Ajax Developer's Guide 和 QuoteStreamer 样本应用程序中提供了 Dojo cometd 用法示例。
Web 消息传递服务将浏览器客户端连接至内置消息传递引擎和服务集成总线,以预订和发布事件以及接收消息。服务集成总线的底层网桥通过对服务集成总线主题空间的直接 API 调用发生。将消息发布至 Web 客户机的方式有多种,因为 Web 客户机已连接至服务集成总线。其中一些选项包括:标准 Enterprise JavaBeans (EJB) 发布至主题、JMS 客户机发布至主题、Web Service、或 Web 客户机本身发布至其他 Web 客户机。