指南:确定消息驱动的 Bean
主题
简介 
本指南关注确定消息驱动的 Bean。在指南:消息驱动的 Bean 中提供了关于消息驱动的 Bean 的更多指南。在指南:Enterprise JavaBeans 中提供了关于 EJB 的常规指南。
消息驱动的 Bean 的一些特性有:
- 它们是无状态的。
- 它们不将值或异常返回给客户端。
- 它们没有接口,因为客户端不直接访问消息驱动的 Bean,但通过向 Bean 服务的目的地(或端点)发送消息,间接访问它们。有一个监听程序方法(在 JMS 消息驱动的 bean 中是“onMessage()”)通常用于处理所有消息。这表示必须在运行时执行类型检查,使用“instanceOf()”操作来确定接收到的消息类型。
可以从任何地方(包括其它 EJB、Web 组件和应用程序客户机)将消息发送至容器。该容器按需要调用消息驱动的 EJB 来处理传入的消息事件。消息驱动的 EJB 可以直接访问其它会话、实体 EJB 或 EIS 层以处理消息。
确定消息驱动的 Bean 
消息驱动的 bean 提供异步处理消息的方法。会话和实体 bean 只可以同步调用。消息驱动的 bean 被作为对整个系统定义并行性的一部分进行标识。请参阅指南:并行以获取关于并行的常规指南,例如去耦调用者和调用代码的设计模式。消息驱动的 Bean 通常被作为活动:描述运行时体系结构的一部分进行标识,以作为在 EJB 容器中提供并行的方法。因此,通常不直接从分析类标识它们,而是为解决特定设计问题(例如性能和耦合问题)而标识它们。
引入消息驱动的 bean 的一些原因有:
- 在软件的不同区域之间分隔问题-可以向队列发送消息而不用耦合至这些消息的使用者。还可以支持多个发送者和接收者。
- 通过允许消息发送者执行处理而不是在同步调用时被阻塞(例如在调用实体或会话 bean 时发生),来提高性能。
- 通过允许消息发送者即使在消息使用者脱机的时候也继续工作,来提高可靠性。
- 可以使用消息传递接口后面的面向消息的中间件提供其它优点 - 例如受保证的消息传递。
- 存在现有的、使用消息传递通信的设计元素(例如早先的系统)。
对消息驱动的 Bean 建模 
请参阅指南:确定 Enterprise JavaBeans(EJB)以获取关于对 EJB 建模的常规指南。但是注意,通常将消息驱动的 bean 建模为进程视图的一部分。关于在进程视图中对消息驱动的 bean 建模的特定指南,请参考指南:描述 J2EE 应用程序的运行时体系结构。
将结果返回给消息发送者
消息驱动的 bean 不能直接将响应发送至消息发送者。
发送响应的典型策略是引入响应的另一个目的地或端点。请参阅 [ROM02] 以获取关于该策略的更多详细信息。
|