首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用 Ajax 和 Apache Geronimo 创建异步消息框架-2

用 Ajax 和 Apache Geronimo 创建异步消息框架-2

Apache Geronimo 简介Geronimo 应用服务器是可用于构建企业级应用程序和服务的完全符合 J2EE 规范的应用程序平台。Geronimo 是具有良好的可配置性、模块化且基于使用 IoC 技术有效地将组件与服务解耦的一个架构。Geronimo 还将利用 Java Management Extension (JMX) 和类似的专用管理框架使 Geronimo 成为易于监视、配置和管理的平台。
下载和安装 Apache Geronimo从  部分中列出的站点下载 Geronimo 平台,并将文件解压缩到名为 {GERONIMO_HOME} 的目录中。然后执行 Geronimo 安装的 {GERONIMO_HOME}\bin\ 目录中的 startup 脚本。您应当会看到类似图 1 所示的控制台窗口。
图 1. Geronimo 启动启动控制台显示了一系列载入和启动的模块、连接器和应用程序,Geronimo 运行时环境就在这些对象中创建。您可以使用 Geronimo 安装的 {GERONIMO_HOME}\bin\ 目录中的 shutdown 脚本停止 Geronimo 运行。
异步消息传递异步消息传递系统的设计思想是:消息接收方不知道也不关心给定消息的来源;相反,消息接收方假定它可以收到所有的信息,从而用收到的每条消息执行相应任务。消息发送方与消息接收方之间的这种解耦有时被称为发布/订阅关系,这是异步消息传递系统的一种最有用的功能。
异步消息传递系统通常依赖于消息总线或消息代理公开用于接收消息生成方所发布的消息的队列或事件通道。该总线或代理还将公开一个订阅接口,感兴趣的消息接收方或事件用户可使用此接口将自身注册为针对给定消息或事件类型的通知侦听程序。
Ajax 系统本文介绍的基于异步消息的框架将使用一个消息总线,该总线利用事件通道将源于 Ajax 的消息传送给业务服务。事件通道还可以向感兴趣的侦听程序通知事件是否已经被业务服务成功处理。
耦合 指软件组件与服务相互依赖的程度。定义了一组服务或组件的耦合度将决定在编译时和运行时必须提供哪些对象。松散耦合的组件可以相互独立地运行,还可以相互独立地进行开发和部署,在运行时再指定这些组件的关系。这通常被称为运行时绑定延迟绑定
使用处理异步业务请求的基于消息的框架或总线要求存在松散耦合的业务服务来处理每条独立异步消息的目标业务逻辑。
您可以使用一系列机制将业务服务与服务使用方解耦。远程过程调用(Remote Procedure Call,RPC)存根和框架、基于 XML 模式定义(XML Schema Definition,XSD)模式的签名和标准化接口只是这些机制中的一些。本例将使用标准的粗略接口 BusinessService,该接口将用一般消息数据作为参数定义一个执行方法。
接受一般数据而不接受强类型对象的方法签名的目标在于确保调用函数与目标对象之间的松散耦合。使用强类型对象作为参数从而结合数据与代码,暗示了一种特定行为。在跨组件或服务边界执行行为后,可以轻松形成紧密耦合。传递一般消息数据意味着不执行任何行为并阻止紧密耦合的形成。
清单 4 中的代码片段演示了 BusinessService 接口。
清单 4. 标准业务服务接口
1
2
3
4
5
6
7
8
9
10
public interface BusinessService
   extends Serializable
{
   public void setID(String id);

   public String getID();

   public Object execute(String methodName, Object[] params)
      throws ServiceException;
}

返回列表