Thursday, March 18 2004 10:24 AM
在开发界,耦合是指两个实体相互依赖于对方的一个量度。程序员每天都在(有意识地或者无意识地)做出影响耦合的决定:类耦合,API耦合,应用程序耦合等等。
两个应用程序间的耦合并不一定是坏事,但是过多的耦合会使得你的企业软件难于管理。而且在你打算扩展应用程序或者为公司编写新的应用程序或服务的时候也会减少你的开发选择。Java 消息服务(JMS)可以帮助我们减少应用程序间的耦合,而同时又允许应用程序间的通信以及使用对方的资源。 JMS 一般都包含至少三个组成部分:两个JMS 客户和一个 JMS 服务器。两个客户通过 JMS 服务器相互通信。JMS 客户是使用 JMS API发送和接收消息的常规应用程序。 JMS 服务器可以是任何实现 JMS 规范的应用程序。一些 JMS 服务器是更大的应用程序的一部分;还有一些是专门负责 JMS 任务的应用程序。有很多第三方商业资源和一些开放源代码资源的 JMS 服务器可供选择使用。 应用程序使用 JMS 相互通信有两个方法可以选用:JMS 主题和 JMS 队列。主题和队列只在很少一些地方有区别,其中最明显的区别是它们发送消息的方式不同。 JMS 主题从一个 JMS 客户接收消息然后将这些消息分发给所有注册为主题监听者的 JMS 客户。相反,JMS 队列只将消息分发给一个客户,不管有多少客户注册为队列监听者。如果两个或者多个客户注册到一个队列,同时一个消息存储在队列中,那么只有一个客户能接收到这个消息。JMS 规范没有规定哪个客户将接收这个消息。 不管你是使用 JMS 主题还是 JMS 队列,消息中所要传递的数据的类型都在于你自己。一些程序员通过他们的消息系统发送商业对象,而其它程序员以文本格式发送 XML 消息从而进一步地减少耦合。 如果你以前没有用过 JMS,那么可能是因为你还没有一个使用它的原因。如果你以前编写过你自己的消息系统,那么很可能你将从 JMS API 中受益。 JMS 到现在已经出现了几年时间了,而且已经证明是一种很实用的技术。拿出来自己研究一下吧。 本文作者:David Petersheim是Genscape公司的应用开发主任。他设计和开发服务器端应用程序来获取和处理实时能源数据。 |