书中一些重点内容节选
一、消息传递产品和技术:
1、 由IBM(WebSphere MQ系统)、Microsoft(BizTalk)、TIBCO、WebMethods、SeeBeyond、Vitria以及其他一些开发商提供的面向消息的中间件和EAI套件。
2、 合并到商业和开放源代码J2EE应用服务器中的Java消息服务(JMS)实现及独立产品。
3、 Microsoft的消息排队(MSMQ),可以通过多个API(包括Microsoft .NET中的System.Messaging库)进行访问。
4、 新兴的支持异步Web服务的Web服务标准(例如WS-ReliableMessaging)以及有关的API,如Sun的用于Web服务扩展(Web Services Extensions,WSE)。
二、应用之间的集成解决方案必须应对以下几个基本挑战:
■网络是不可靠的。
■网络速度慢。
■任何两个应用都是不同的。集成解决方案需要在使用不同编程语言、不同操作平台和不同数据格式的系统之间传送信息。
■改变是难免的。应用会随着时间改变。
开发人员使用以下四种主要方法克服上述挑战:
1、 文件传输——一个应用写文件,之后另一个应用读这个文件。为此,应用之间需要协商文件名、文件的位置、文件格式、文件读写的时间以及谁负责删除这个文件。
2、 共享数据库——多个应用共享相同的数据库,这个数据库位于独立的物理数据库中。由于不存在重复保存的数据资料,因此不必将数据从一个应用传给另一个应用。
3、 远程过程调用——一个应用开放其部分功能,使得其他应用能够远程访问这些过程。它们之间的通信是实时、同步的。
4、 消息传递—— 一个应用向公共消息通道中发布一个消息,其他应用可以在之后某个时间从通道中获得这个消息。应用之间必须协商建立通道以及消息的格式。这种通信是异步的。
每种方法均有其独特的优点和不足。实际上,应用之间可通过多种方法集成,使得每个集成点都能充分利用最合适的方法。
三、消息传递的概念、原理
消息传递是一种能支持高速、异步、程序到程序间可靠通信的技术。程序之间通过发送数据包进行通信,这个数据包即称为消息。通道是连接程序并传递消息的逻辑路径。
四、应用分布与应用集成的区别:
应用分布:它的通信部件是紧耦合的,它们之间相互直接依赖,其中任何一层离开其他层都会失去作用。层间一般采用同步通信。应用的用户一般只接受快速的系统响应。
应用集成:都是独立的应用,它们能各自运行,采用松耦合的方式相互配合。这使得每个应用都能集中完成一部分具体的功能,并将相关的功能委托给其他应用来完成。所有集成应用采用异步通信方式,它们不必等待响应就能继续执行。并发地执行其他任务。集成的应用对时间限制的要求更加宽松。
五、商业消息传递系统
消息传递开发商的产品大致划分为以下四类:
1、 操作系统。消息传递已经成为开发商把必要的软件基础设施集成到操作系统或数据库平台中的共同需要。例如,Windows 2000和Windows XP操作系统包含了Microsoft消息排队(MSMQ)服务软件,通过COM组件和System.Messaging名字空间访问,属于.NET平台的组成部分。Oracle提供了Oracle AQ.
2、 应用服务器。例如JMS、IBM WebSphere、BEA WebLogic
3、 EAI套件。例如IBM WebSphere MQ、Microsoft BizTalk、TIBCO、WebMethods、SeeBeyond、Vitria、CorssWolds。
4、 Web服务工具集。例如WS-Reliability、WS-ReiableMessaging、ebMs
六、应用集成
应用集成的四种主要方式:文件传输、共享数据库、远程过程调用、消息传递。利用文件传输和共享数据库,应用能够共享它们的数据,但不能共享功能。远程过程调用使应用能够共享功能,但是这会让应用紧耦合。消息传递使应用能够共享功能,让应用松耦合。运行消息传递,可以使用可定制的格式频繁地、立即地、可靠地、异步地传输数据包。
CORBA、COM、.NET Remoting、Java RMI、Web服务都实现了远程过程调用。Web服务还提供了额外的功能,它使用了诸如SOAP和XML等标准。Web服务的最大特定是,可以很容易地利用HTTP协议,而这种协议能够轻松地穿过防火墙。
七、消息传递系统