当需要与消息传递系统(如:基于JMS的系统、J2EE应用服务器、IBM WebSphere MQ服务器或TIBCO)进行数据交换时,应该使用企业消息传递。当企业的IT策略允许在数据库外部同步数据,而不允许同步数据到数据库内部时,企业消息传递也是很有用的。如果情况确实如此,那么可能同步和消息传递都适合使用,企业消息传递向企业中间件服务器发送数据,而同步则从数据库提取数据。
寻找支持企业消息传递的数据管理解决方案。具体来说,要寻找具有如下特点的系统:
·提供综合API,以管理消息和队列,并且要支持多种编程语言和开发环境。
·可以与各种不同的企业消息传递系统集成,保证系统能够支持不断发展的企业架构。
·保证消息交付的一次性,以便在发生系统故障时消息不会交付两次。
·允许将消息组织为事务组,以便组中的消息要么全部交付,要么一条都不交付。
·可以创建控制消息交付的传输规则,大力支持开发人员优化性能、降低成本和消息交付带宽。
·当传输消息以及在消息队列中存储消息时,可以使用128位强加密来加密消息。
使用Web services模型
Web服务为不同的软件应用提供了一种互相交互和交换数据的方法。每一个Web服务都有一个使用Web services描述语言(WSDL)描述的接口。其他系统通过HTTP,使用简单对象存取协议(SOAP)(基于XML)消息与服务交互。正因为如此,接受Web services请求的系统需要某种类型的HTTP服务器。
您将会发现,Web services、企业消息传递和数据库同步之间有很多重要的区别。首先,目前没有任何规范描述Web services数据是如何暂时地或永久地存储的——这与数据库和企业消息传递的情况相反,数据库是高度结构化的数据存储形式,而企业消息传递则使用队列。
其次,不会为了响应Web services请求而返回数据。Web services的通信可以是单向的或双向的,而同步一般是双向的,通过任何给定的企业消息传递队列发送的消息则一般是单向的。
再次,通过Web服务发送的内容没有预定义的格式,此外,它是用XML编码的。相反地,数据库有表、行和列;而企业消息通常有一组头信息、属性,以及特定类型的内容,比如二进制或者文本。
Web services的灵活性提供了一种交换结构化内容的方法,但是需要建立策略和规范,来定义内容的特定结构、存储方式以及内容交换的协议。
在以下的实例中,应该使用Web services:
·企业系统已经有了Web services接口。
·各个系统之间的网络连接持续可用。
·部署额外的中间件服务器,以便用作接口来连接多个系统,而不可行。
当寻找支持Web services的数据管理解决方案时,要寻找具有如下特征的系统:
·具有开发Web services请求的工具,最好支持多种编程语言。
·可以轻松地在Web services请求中嵌入XML格式来检索数据。
·具有内置的HTTP服务器来接收Web services请求。
·同时通过HTTP和HTTPS协议,支持Web service请求的发送和接受,确保数据是安全的。
用XML定义自己的结构
XML已经成为对数据进行编码、交换和存储的通用规范。XML是一种以文本格式表示结构化数据的规范。像HTML一样,XML是一种简单标记语言,但是它也很灵活,这一点又像SGML。XML允许开发人员定义自己的数据结构。XML数据的结构定义可以使用文档类型定义或XML模式描述。
尽管XML提供了一种内容编码的格式,但现在还没有定义数据如何存储和交换的XML规范。这就等于给企业架构师一张白布,架构师可以在上面尽情发挥。但是,要构建管理并与企业系统交换XML数据的基础架构,所费的工夫会以几何级数增长。作为一种信息编码方法,XML已经取得了巨大的成功,但是千万不能认为它是数据管理和交换的完美解决方案。
应该在以下情况中使用XML:
·解决方案需要使用Web services来发送数据。
·外部系统不支持数据同步、不支持基于JMS的消息或者没有Web services接口,但是却具有导入或导出XML数据的工具。
·数据要通过批处理与第三方系统交换。
当我们要寻找支持XML的数据管理解决方案时,应该寻找那种能导入导出XML格式的数据的系统,并且它应该能够使用XSL来将数据转换成不同的格式。
集成应用程序与企业系统的正确模型随具体的IT环境的不同而不同。事实上,可能企业架构师很快就需要使用同步、企业消息传递、Web services和XML。尽管对架构师来说,很难预料到哪些集成模型是必要的,但是应用程序的数据存储方法将会决定该应用程序与其他企业系统集成的难易程度。
通过选择使用跨企业范围的数据库来管理应用程序的数据,架构师可以最大程度地提高企业集成的灵活性。这样就能保证新架构的系统能随着IT环境的发展而发展。通过使用跨企业范围的数据库,应用程序供应商可以更轻松地将其软件解决方案集成到多种客户环境中,从而确保不会因为集成成本过高而丧失销售机会。