基于面向消息中间件的SOA系统集成技术探索

基于面向消息中间件的SOA系统集成技术探索
基于面向消息中间件的SOA系统集成技术探索

基于MOM-面向消息中间件的SOA系统集成技术探索

一、什么是MOM?

MOM是Message-Oriented Middleware(面向消息的中间件)的缩写,MOM 的作用就是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM产品有IBM的WebSphere MQ和基于JMS标准的系列中间件等。

二、MOM特点

MOM是一个基础架构,在基于MOM的通信环境中,通常是异步地发送和接受消息,它将应用抽象地划分为发送者和接收者,它们之间无需彼此了解,MOM最重要的作用就是将消息转发到它们的目的地。下图就是MOM的简单模型图:

从上图可以看出,为了支持消息传递的异步模型,MOM位于客户端和服务器之间,使用消息队列临时存储调用,并允许客户端和服务器分别在不同的时候运行,消息的目标端也不需要立即处理消息,并且客户端和服务器的程序之间不需要彼此知道对方的存在,它们之间不需要考虑它们之间的网络通讯复杂性。

MOM不同于普通的通讯系统的地方在于,通讯的接收和发送两端必须同时运行,并且消息必须即时处理。

三、MOM原理

MOM要实现高效可靠的消息传递机制,必须实现以下三大功能:

●实现消息的异步发送和接收,实现发布/订阅模式

●实现消息的持久化,保证消息可靠性传输

●优化网络传输,支持断点续传

要实现以上三大功能,需要实现消息队列,消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合的方式,队列是消息的安全存放的位置,队列存储消息直到它被应用程序处理,这样的工作机制,能够保证在各种网络环境下能够可靠的传递。

在消息队列的应用上,各个不同的MOM产品应用上有所不同,例如,JMS 标准的MOM和IBM Websphere MQ实现上就有所区别。

从上图,可以看出IBM WebSphere MQ的结构和JMS结构在队列的应用上略有不同,IBM WebSphere MQ在客户机上存在有传输队列,而JMS在客户机方面不存在任何队列,所以说JMS相对于MQ而言,只是规范了消息的存取,而没有规范消息数据的传输,因为JMS客户机并不拥有存放数据的队列,所以所有发送的操作都要由应用程序来控制,JMS服务器本身不代理传输,也不保证数据在远程队列间的传输可靠性。IBM MQ通过通道与传输队列和远程队列来保证队列间的传输可靠性,IBM MQ支持客户端的断网续传,而客户端的应用程序不用做任何工作,但是,这种方式需要客户端本地安装MQ的客户端。

四、MOM通讯模式

MOM主要存在3工作模式:点对点模式、发布/订阅模式以及消息队列模式,其中,点对点模式和发布/订阅模式统称为消息传递模式。

点对点模式(Point-to-Point)

点对点模式用于消息生产者和消息消费者之间点到点的通信,是一种程序到程序的直接通信模式。消息生产者将消息发送到由某个名字标识的特定消费者,点对点消息允许客户端通过队列这个虚拟通道来同步和异步发送、接收消息,传

统上,点对点模型是一个基于拉取(Pull)或基于轮询(Polling)的消息传递模式,这种模型从队列中请求消息,而不是自动地将消息推送到客户端。点对点消息传送模型的一个突出特点就是:发送到队列的消息被一个而且仅仅一个接收者所接收,即使可能有多个接收者在一个队列中侦听同一消息时,也是如此。

●发布订阅模式(Publish-and-Subscribe)

在发布/订阅模型中,消息会被发布到一个名为主题(topic)的虚拟通道中。消息生产者称为发布者(publisher),而消息消费者则称为订阅者(subscriber)。与点对点模型不同,使用发布/订阅模型发布到一个主题的消息,能够由多个订阅者所接收。有时候,也称这项技术为广播(broadcasting)消息。每个订阅者都会接收到每条消息的一个副本。总地来说,发布/订阅消息传送模型基本上是一个基于推送(push)的模型,其中消息自动地向消费者广播,它们无须请求或轮询主题来获得新消息。

如上图所示,在发布/订阅模式下,没有传统意义上的客户端和服务器,而是在网络中进行消息发布的应用程序和接收某个特定主题消息的应用程序,发布消息的客户端将消息传递给消息代理,有消息代理负责路由消息给相应的订阅消息的客户端,由消息代理实现消息的动态路由,发布者和订阅者在空间上是松耦合的,客户端和服务器不需要知道对方的地址和具体的数量,简化了配置,更容易重用。这种模式也是目前应用最广泛的模式。

●消息队列模式

消息队列模式是一种程序之间的无连接的通信模式,它允许程序通过消息队列进行通信,它将消息放入队列(通常基于内存和硬盘)直接或者按顺序传送,这种方式允许程序按照不同的速度独立运行,而不需要双方之间建立一条逻辑连接。

这种模式需要系统中包含有队列管理器,用于处理本地队列,保证消息传送到存在于本机或者网络中某个位置的目的地。队列管理器与其他节点上的队列器

合作控制网络路由机制。支持不同Qos(服务质量),包括:

●Qos 0至多一次

消息会丢失或重复,但是只发送一次

●Qos 1 至少一次

确保消息到达,但消息重复可能会发生。

●Qos 2 只有一次

确保消息到达一次

消息队列可以是永久性或者非永久性的,永久性的消息存放在硬盘上,非永久性的消息存放在内存中,当队列管理器出现故障时,非永久性队列的消息会全部丢失,而永久性的消息会自动恢复。

消息队列支持触发,当请求消息和应答消息到达本地队列,但是应用程序未处于活动状态时,自动启动这个应用程序。这种方式只有在工作需要完成时,处于活动状态,从而避免不必要的资源浪费。

目前,IBM MQ主要采用就是这种消息队列模式。

五、MOM消息传递模式比较

●点对点模型

在点对点模式下,每个消息都被发送到特定的队列,接收者从队列中获取消息,队列保留着消息,直到它们被消费或者超时。

每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)

发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列。

接收者在成功接收消息之后需向队列应答成功

这种模式保证发送的每条消息都被消费者成功接收。

●发布/订阅模型

在发布/订阅模型中,客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

每个消息可以有多个消费者

发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅之后,才能消费发布者的消息,而且,为了消费消

息,订阅者必须保持运行的状态。

当然,为了缓和这种严格的时间相关性,有些MOM系统,例如利用了JMS 的MOM系统,允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

在JMS中,持久化订阅者可以定义为durable(持久化的),持久化的订阅者注册一个带有JMS保持的唯一标识的持久化订阅,带有相同标识的后续订阅者会再续前一个订阅者的订阅状态,如果持久化订阅没有活动的订阅者,JMS会保持订阅消息,知道消息被订阅接收或者过期。

如果希望发送的消息可以不被做任何处理、或者被一个消费者处理、或者可以被多个消费者处理的话,那么可以采用发布/订阅模型。

六、系统业务集成的目标

信息系统业务集成的目标是构建一个开放、松散耦合的系统集成环境,就目前公司开发的各个产品而言,存在多平台、多开发语言的特点,比如ZLHIS基于VB6+Windows平台、ZLBH基于.net +Windows平台、移动临床基于Java+Android 和Object C+IOS两种平台、社区一部分产品基于B/S架构运行于浏览器,而且在具体实施时还面临第三方厂商业务集成的需要。由于各系统采用的技术路线不统一,进行业务集成是,需要开发新的接口或者采用其他集成方法,最终导致业务

集成成本提高,增加了现有系统的复杂程度,而且随着各个应用系统上的业务交叉点越来越广,传统的数据集成已经不能满足现实的需求,需要一种支持业务流程编排重组的业务流程集成方式才能解决。

SOA是一种软件系统架构和软件设计模式,而WebService是就目前而言最适合实现SOA架构的核心技术,WebService基于XML、SOAP、WSDL和UDDI协议形成了实现SOA的一系列技术的集合。企业服务总线(Enterprise Service Bus,ESB)为SOA系统的实现提供了一个核心架构,是一种分布式的集成框架,ESB 相当于一个WebService的组装平台,它支持各个异构系统间通过Webservice实现面向服务的交互,ESB智能的在企业系统间路由数据流,配合和转换各个系统需要的数据信息,为SOA提供一种连通性基础架构,用以连接SOA中的各个服务。这种模式有助于减少应用接口的数据量和复杂性。

七、MOM在ESB中的应用

ESB概念的四个支柱-MOM、WebService、数据变换和路由智能,其中MOM 是ESB实现消息和事件驱动的核心技术,对于ESB而言,可靠的传输是ESB的基础,比如IBM Message Broker就是建立于IBM MQ基础之上的(这里从名字也可以看得出来),Oracle Service Bus是基于JMS基础之上的。

例如,上图中可靠、异步、安全的消息传递机制就是依赖于JMS方式。

这里再举一个例子:

上图简单示意了,出院程序如何通过ESB调用重庆医保的Webservice接口和ZLHIS出院结算接口,完成出院结算消息提醒,并通知到ZLHIS和ZLBH客户端以及IOS/android设备客户端。

1、出院程序首先调用ESB上公布的出院WebService,传入病人住院号;

2、ESB通过传入的病人住院号调用数据库存储过程,通过病人住院号查询到病

人的医保号和身份证号信息以及住院费用信息;

3、ESB通过服务编排传入医保号和住院费用信息,调用重庆医保接口获得病人

该次住院的医保结算报销费用;

4、将出院报销费用和总费用传给zlhis出院结算WebService,检查该病人住院预

缴金额是否充足,并将欠费金额组织成格式消息发送到消息代理上,消息代理转发消息至指定病区的护士工作站和移动护士工作站。

5、护士通过订阅消息获得病人出院信息,并作相应处理。

在这里,ESB通过服务组织调用不同的WebService或内置业务逻辑进行消息路由后,获得最终结果消息发送到消息代理,由消息代理将消息可靠的、异步的传输到工作站程序上。

因为目前ZLHIS运行环境的复杂性,消息的传递必须具备以下几个条件

1、消息的通知必须是异步的,因为类似于移动设备可能因为移动网络原

因和省电的原因,不可能一直保持连接;

2、消息的通知必须能够通过推送的方式送达;

3、消息接收的客户端要是能够跨平台的;

如果要达到以上几点要求,ESB的消息传递就必须使用MOM,而目前厂商的ESB产品内置了MOM的功能。

目前,常见的厂商ESB产品有IBM WebSphere ESB、IBM WebSphere Message Broker和Oracle Service Bus,其中IBM WebSphere ESB是一种基于平台(基于WebSphere Application Server)的ESB,IBM WebSphereMessageBorker是一种跨平台的ESB,应用于对性能要求相对较高,多种复杂协议存在的集成环境中。Oracle Service Bus是标准的J2EE实现的ESB产品。

IBM的ESB中的MOM是主要采用的是IBM WebSphere MQ,当然也可以支持JMS。

Oracle Service Bus中的MOM主要采用的是JMS技术。

八、IBM MQ和JMS比较

●IBM MQ

IBM MQ是一种基于消息队列模式的消息传输技术,负责两个异构系统之间传递消息,使用简单,而且具有很高的性能和可靠性,IBM号称:一旦发出保证到达。更为重要的是它对各个平台支持都非常好,几乎所有想得到的硬件和操作系统平台以及编程语言,MQ都有专门的API支持。

MQ的功能只限于消息队列传输,如果需要实现MQ的消息路由和消息转换必须要使用IBM Messsage Broker。

MQ的消息队列模式需要依赖于队列管理器,队列管理器可以位于相同或不同的计算机上,它们可以彼此通信,并在不同的队列管理器的队列之间传递消息,队列管理器为消息提供了可靠的传递。

●JMS- Java Message Service

JMS应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

JMS支持点对点和发布/订阅模式,但是不支持队列传输模式,而且不支持客

户机上的消息队列,所以JMS并不能保证对远程队列的传输可靠性。

比较

从上面几点来看,MQ的设计不论在性能和可靠性上都比JMS的MOM要好,MQ支持更多的通信协议,而JMS只支持TCP/IP,另外,MQ在各种平台和开发语言的支持上,明显优于JMS,JMS只支持JAVA的开发环境,而且只支持J2EE规范,不支持J2SE规范。

但是,如果只是仅仅采用IBM MQ进行数据传输,代价并不大,但是要利用MQ实现消息路由和数据转换,就必须要采用IBM MessageBroker,这样的代价就不小了。

另外对于IBM MQ的本地队列在移动设备上是不是存在还存在疑问,如果在移动设备上不存在本地队列传输,MQ在移动设备上的传输可靠性的优点就不能够表现了。

对于目前的应用而言,这两大ESB产品除了MOM的功能值得商榷研究以外,其他三大支柱功能的差别只是在性能以及特殊应用场景上的差别,但从目前来看Oracle Service Bus的JMS在应用上完全不能满足现在的需要,最为致命的一点就是JMS不支持提供目前的VB、.NET和IOS开发平台的API。

要使用JMS,首先要解决JMS客户端的问题,毕竟JMS在J2EE平台上应用的还是比较广泛的,例如,IOS设备以及非Java的软件应用JMS的需求还是比较多的,比如.NET应用JMS,现在有专门的公司开发出JMS Adapter For .NET,帮助.NET 程序来连接JMS,另外一种方案是通过MQ封装JMS消息,利用MQ对JMS进行中转,然后其他客户端比如iOS通过MQ接收消息。而最新的方式是通过MQTT 通讯协议来实现跨平台的应用。

九、MQTT-面向于未来的通讯技术

IBM WebSphere MQ Telemetry Transport(简称MQTT)是一种基于TCP/IP 的轻量级发布/订阅消息传输协议,用于连接大量的远程传感器和控制设备,而有可能成为物联网的重要组成部分。在必须允许低带宽和不可靠的通信并且占用较少内存的设备上,专业化的应用程序就使用MQTT 协议。用户可以编写自己的客户机以使用已发布的协议。

MQTT 产品作为WebSphere MQ 产品的扩展,使用了MQTT V3.1 版本的协

议。它提供了一些小型客户机库,可以将这些客户机库嵌入到运行于不同设备平台上的智能设备中。使用客户机构建的应用程序使用MQ Telemetry Transport(MQTT) 和WebSphere MQ Telemetry 服务并借助WebSphere MQ 来可靠地发布和预订消息。

一个高级MQTT 客户机(即设备的WebSphere MQ Telemetry 守护程序)可以运行于多种平台上。它可以充当一个网络集中器,能够将更多的MQTT 客户机连接至单个队列管理器。对于在网络发生短暂中断期间无法缓存消息的小型设备,它还可以为这些小型设备提供存储转发功能。

该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议

归根结底,MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

1、非常小的通信开销(最小的消息大小为2字节);

2、支持各种流行编程语言(包括C,Java,Ruby,Python等等)且易于使用的客户端;

3、支持发布/预定模型,简化应用程序的开发;

4、提供三种不同消息传递等级,让消息能按需到达目的地,适应在不稳定工作的网络传输需求

MQTT是一个开发式的通信协议,它是WebSphere MQ 7.0.1.3版本以上的插件,它可以直接和WebSphere MQ进行通信,但是MQTT所使用的服务器不仅仅只限于IBM WebSphere MQ,目前还有很多开源的MQTT服务器,同时,因为是开发式的通信协议,MQTT的客户端在很多平台上存在,比如FaceBook最近发布了新版的iOS应用,使用了MQTT更新通知、消息和书签等等。除了IOS,MQTT 还支持JAVA、C#、C、C++、Delphi、Erlang、ActionScript、Object-C、Python等多种开发平台以及操作系统。

MQTT的服务器平台除了WebSphere MQ还有很多,比如:Mosquitto、Apache ActiveMQ等等,下表是各个服务器之间的比较

Key: ? supported ? not supported ? unknown § see limitations 其中值得一提的是Apache ActiveMQ,ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现,并且ActiveMQ可以和WebLogic进行集成,将WebLogic中的消息通过MQTT方式进行发送,从而被MQTT客户端所接收并使用。

JMS+MQTTServer+MQTT Client的通讯模式,不仅能够实现多平台多语言的JMS消息的利用而且能够实现push推送模式,同时MQTT的自身的消息发布质量设置能够保证消息的本身传递的可靠性。

经过JMS+MQTT Server+MQTT改造的应用ESB的出院流程如下:

十、总结

MOM是ESB实现消息和事件驱动的核心技术,相对于B/S架构的应用系统,目前的C/S架构的系统集成对消息在目前多平台、多语言的产品上的使用以及消息即时推送的机制提出了更高的要求,因此对于系统业务的集成改造,在对ESB 产品的选择上,更应慎重对待内置的MOM产品上的选择,因此在实践探索中更需要保持“大胆猜测,小心求证“的态度。

消息中间件及WebSphere MQ入门

消息中间件概述 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供公共的信息交换机制是重要的。 设计分布式应用的方法主要有:远程过程调用(PRC)--分布式计算环境(DCE)的基础标准成分之一;对象事务监控(OTM)--基于CORBA的面向对象工业标准与事务处理(TP)监控技术的组合;消息队列(MessageQueue)--构造分布式应用的松耦合方法。 (a) 分布计算环境/远程过程调用(DCE/RPC) RPC是DCE的成分,是一个由开放软件基金会(OSF)发布的应用集成的软件标准。RPC模仿一个程序用函数引用来引用另一程序的传统程序设计方法,此引用是过程调用的形式,一旦被调用,程序的控制则转向被调用程序。 在RPC实现时,被调用过程可在本地或远地的另一系统中驻留并在执行。当被调用程序完成处理输入数据,结果放在过程调用的返回变量中返回到调用程序。RPC完成后程序控制则立即返回到调用程序。因此RPC模仿子程序的调用/返回结构,它仅提供了Client(调用程序)和Server(被调用过程)间的同步数据交换。 (b) 对象事务监控(OTM)

基于CORBA的面向对象工业标准与事务处理(TP)监控技术的组合,在CORBA 规中定义了:使用面向对象技术和方法的体系结构;公共的Client/Server程序设计接口;多平台间传输和翻译数据的指导方针;开发分布式应用接口的语言(IDL)等,并为构造分布的Client/Server应用提供了广泛及一致的模式。(c) 消息队列(Message Queue) 消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合方法。消息队列的API调用被嵌入到新的或现存的应用中,通过消息发送到存或基于磁盘的队列或从它读出而提供信息交换。消息队列可用在应用中以执行多种功能,比如要求服务、交换信息或异步处理等。 中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,它能实现应用的互连和互操作性,能保证系统的安全、可靠、高效的运行。中间件位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。中间件为开发者提供了公用于所有环境的应用程序接口,当应用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。 如果没有消息中间件完成信息交换,应用开发者为了传输数据,必须要学会如何用网络和操作系统软件的功能,编写相应的应用程序来发送和接收信息,且交换信息没有标准方法,每个应用必须进行特定的编程从而和多平台、不同环境下的一个或多个应用通信。例如,为了实现网络上不同主机系统间的通信,将要求具备在网络上如何交换信息的知识(比如用TCP/IP的socket程序设计);为了

C#下消息中间件开发示例

C#下使用消息中间件ActiveMQ和https://www.360docs.net/doc/7c16624924.html,框架开发示例 1. 消息中间件简介 1.1 消息中间件定义 中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算机资源和网络通信。 因而中间件是指一类软件,是基于分布式处理的软件,最突出的特点是其网络通信功能。也可认为中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,可以有符合接口和协议的多种实现。 中间件可分为六类: 1) 终端仿真/屏幕转换 2) 数据访问中间件(UDA) 3) 远程过程调用中间件(RPC) 4) 消息中间件(MOM) 5) 交易中间件(TPM) 6) 对象中间件 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 消息中间件可以即支持同步方式,又支持异步方式。异步中间件比同步中间件具有更强的容错性,在系统故障时可以保证消息的正常传输。异步中间件技术又分为两类:广播方式和发布/订阅方式。由于发布/订阅方式可以指定哪种类型的用户可以接受哪种类型的消息,更加有针对性,事实上已成为异步中间件的非正式标准。 面向消息的中间件(Message Oriented Middleware,MOM),提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的MOM通信。MOM提供了有保证的消息发送(至少是在尽可能地做到这一点),应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节。 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

中间件知识

中间件知识 1,常见应用系统开发构架: 传统的两层结构:表示层(Presentation Layer):用于处理人机交互。目前最主流的两种表示层是Windows桌面和IE浏览器方式。它主要责任是处理用户请求,例如鼠标点击、输入、HTTP请求等,实际部分业务逻辑。数据层(Data source Layer):处理数据库、消息系统、事务系统。实际部分业务逻辑。 经典的三层结构:表示层(Presentation Layer):用于处理人机交互。目前最主流的两种表示层是Windows桌面和IE浏览器方式。它主要的责任是处理用户请求,例如鼠标点击、输入、HTTP请求等。业务层(Business Layer):模拟了企业中的实际活动,也可以认为是企业活动的模型。数据层(Data source Layer):处理数据库、消息系统、事务系统。 通用的四层结构:表示层(Presentation Layer):用于处理人机交互。目前最主流的两种表示层是Windows桌面和IE浏览器方式。它主要的责任是处理用户请求,例如鼠标点击、输入、HTTP请求等。业务层(Business Layer):模拟了企业中的实际活动,也可以认为是企业活动的模型。数据层(Data source Layer):处理数据库、消息系统、事务系统。安全层(Security Layer):管理系统身份验证、授证、日志等。 主要产品:应用中间件、平台中间件、工作流中间件、数据传输中间件等。 2,什么是中间件 中间件(middleware):是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 IDC对中间件的定义,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。3,为什么要中间件 Internet及WWW的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的软件开发提出了新的需求。在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在这些硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个非常现实而困难的问题。 4,中间件的主要作用 为解决分布异构问题,人们提出了中间件(middleware)的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。 5,数据库中间件(DM,Database Middleware) 数据库中间件在所有的中间件中是应用最广泛,技术最成熟的一种。一个最典型的例子就是ODBC,ODBC是一种基于数据库的中间件标准,它允许应用程序和本地或者异地的数据库进行通信,并提供了一系列的应用程序接口API,当然,在多数情况下这些API都是隐藏在

消息中间件原理与实现

消息中间件原理与实现 10748206桂勇哲 10748210 胡栋梁 10712059 穆斌 摘要: 现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布式应用上比起同步处理模型更具有吸引力。 本文首先介绍了消息中间件的原理,然后实现消息中间件的一些最重要的功能,并说明了实现方法,以及相应功能的应用,最后介绍消息中间件还可以添加哪些重要性质,以更好的进行消息服务,保证消息的一致异步有效的技术。 关键字:消息中间件,实现,点对点,发布/订阅,持久消息 一、中间件简介 1.1 中间件的定义 中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。 中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。 也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点: 满足大量应用的需要 运行于多种硬件和OS平台 支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互 支持标准的协议 支持标准的接口

企业消息中间件技术规范

企业消息中间件技术规范

目录 1.消息中间件概述 (3) 1.1 支持的规范和技术 (3) 1.2 消息传输 (4) 1.3 应用管理 (8) 1.4 系统配置 (9) 1.5 安全与可靠性保障 (12)

1.消息中间件概述 消息中间件是一款标准、安全、高效、集成并具备丰富功能的医用级消息中间件,基于医用消息中间件,为省级人口健康信息平台、区域医疗数据中心、医院信息平台的建设提供了坚实的基础支撑。 消息中间件主要用于医疗领域在应用程序之间传递消息,使这些消息可以在不同的网络协议、不同的计算机系统和不同的应用软件之间传递。消息中间件通过内部的可靠队列传输机制,使数据可以快速、可靠地送达接送方,在传输期间能够应对网络故障、主机宕机等各种意外情况,做到断点续传,保证数据“一次传递、可靠达到”。 1.1 支持的规范和技术 ?支持国标消息中间件软件产品技术规范(GB/T 28168-2011); ?具备良好的跨平台能力,应用编程接口(API)支持各种运行平台,如HP-UX、IBM AIX、SUN SOLARIS、WINDOWS 、Digital UNIX、 SGI、TRU UNIX、Linux等,支持64位操作系统,并且在各平台上的 API接口一致; ?支持多种通讯链路和网络环境,如以太网、SDH、DDN、X.25、帧中继FR、拨号网络、卫星网络等,能根据网络环境对传输效率提供优化; ?支持树形拓扑结构和网状拓扑结构的网络环境; ?持多种网络协议,如TCP/IP、NETBIOS、SNA等; ?支持C、C++、C#、JAVA开发语言,提供动态库、OCX、JAVA三种API模式;支持PB、VB、VC、Delphi等开发工具。

消息中间件在数据交换中的应用研究及其面临的挑战

消息中间件在数据交换中的应用研究及其面临的挑战 摘要:简要介绍了消息中间件在数据交换数据交换中的应用,论述了消息中间件所面临的挑战及应对措施:传输消息大小不受限制;同时支持Windows 2000/nt/98/ME等多种操作系统,并能通过配置充分发挥不同操作系统的性能;实现消息队列操作的回滚与提交,使消息进行多级回执;以COM形式提供MQ Clinent API。关键词:数据交换消息中间件消息队列 COM 计算机技术的不断推陈出新,带来了信息化发展的新浪潮,人们感受到了计算机及网络技术所带来的好处,于是对电子化、信息化应用的需求也越来越迫切。信息技术以其强大的渗透力,深入到社会经济生活的各个方面。在商业金融等领域,电子数据交换作为一种新的商务手段正在被广泛使用。数据交换EDI(Electronic Data Interchange)是一种计算机应用技术,根据事先达成的协议,将信息按照一定的标准进行格式化处理,并把这些格式化的数据,通过计算机通信网络在其计算机系统之间进行交换和自动处理。作为计算机通信技术的一部分,EDI可以应用于制造业、运输业、零售业以及卫生保健和政府部门等各种经济部门之中。消息队列中间件MOM(Message-Oriented Middleware)是一种特定的中间件,它利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1 数据交换的研究与应用现状1.1 国际发展现状及趋势西方发达国家已普遍采用EDI。据统计,1992年底世界上使用EDI的企业超过10万家,95年达到40万家。美国早在60年代初期,就在公路、铁路、海运和空运中应用EDI,而且每年还以100%的速度增长;西欧各国已将EDI应用于汽车、化工、电子、运输、保险、分销零售业中;日本已在销售、贸易、运输、和制造业中广泛使用EDI;新加坡声称95%的贸易用EDI实现。据悉,美国政府及欧洲共同体大部分国家的海关宣布,从1992年起,采用EDI方式办理海关业务,如不采用EDI方式,其手续将被推迟办理,或不再选为贸易伙伴。1996年,亚洲六个国家和地区(中国、日本、印度、马来西亚、菲律宾和中国台湾省)达成协议,将共同开发EDI系统,以便使这些国家和地区在进出口过程中能够实时地采集进出口数据,有效对客户进行管理,减少报关错误。这无疑会加快亚洲国家的EDI建设进程。在欧洲,一些大公司,包括超市连锁公司,已经开始对不开通EDI的供应商实行制裁措施(价格、处理时间、付款方式上实行歧视政策)。新加坡贸易发展局宣布:从1999年1月1日起,所有进出口贸易都必须用EDI方式申报。香港地区从2000年开始全面关闭进出口报关柜台,所有的进出口报关必须通过EDI方式。EDI的发展趋势:(1)应用EDI的行业会增多;(2)EDI 与其他信息传送技术和系统的一体化;(3)EDI技术将受Internet的冲击。1.2 国内发展现状我国也早已经开始重视和普及EDI技术,“八五”抓基础、抓试点;“九五”建立起中国贸易网(China Trade Network),尽快实现与国际贸易网的大联通,全面推行EDI。近几年来,国内方正、中软、启宏科技、南通等软件公司在数据交换平台方面都已经快速发展。方正数码公司2002年提出了面向信息资源整合的跨地域、跨部门应用技术框架,为横跨多个政府机构的服务、监管职能的业务实现和同一机构内多个部门不同业务系统之间的数据整合提供了进行有效转换和交流的安全信息交换平台——方正易畅InfoHub。方正易畅InfoHub安全信息交换平台在信息系统中为终端节点提供安全可靠的消息传输。它采用基于XML技术的消息结构进行信息的表达,存储及传输。而作为封装在消息结构中的消息内容可以是XML格式的信息,EDI格式的信息,或者是采用用户自己定义的格式的信息。由中软网络技术股份有限公司与河南省国家税务局联合开发出《行政管理与监控考核系统》填补了国家办公软件的空白。中软股份在此基础之上建立系统框架,并通过技术框架与功能框架完美结合,使功能不断扩充与完善,完成了《行政管理与监控考核系统》。该系统已经在驻马店市国税局得到了全面的推广与实施,为提升税务行业行政管理水平和质量做出了贡

中间件消息通信技术概要

中间件消息通信技术概要 一、中间件 中间件,就是介于应用系统与系统软件之间的一类软件,它使用系统软件所提供的基础功能,衔接于应用系统的不同部分,能够达到资源共享和功能共享的目的。 消息中间件,是中间件众多产品分类中一个重要部分。它能够适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。 二、几种通信技术的比较 1、CPI-C CPI-C是一种同步对话通信模式。参加通信的一方发起一次对话,同时控制信息流动。数据既可以由发送者传递到接受者,也可以反向流动。 参加通信的两个程序需要跟踪对话的状态,如果异常发生导致连接中断,则需要发送方重建并恢复这次通话。通信双方既可以处于主从地位,也可以处于对等地位。也就是说,CPI-C既支持客户端-服务器环境,也支持对等通信方式。 虽然CPI-C在一般情况下是一种同步通信类型,但是在一定环境中,如CIC S,可以通过“临时数据队列”实现一定程度的异步。 TCP/IP,SNA都支持CPI-C。 由于需要应用程序参与错误的检测与恢复,CPI-C的编程接口相当复杂。

2、RPC RPC,即远程过程调用,也是一种同步,对话方式的类型。一个调用程序向服务器提成申请,该调用被负责通信的转接器发往远端系统。调用者与被调用者关系是固定的,很难实现对等通信。 与CPI-C一样,通信错误需要应用程序自己维护。另外在申请服务得到响应之前,服务申请者被阻隔,这不仅是应用的瓶颈所在,更有可能遭受拒绝式服务攻击。 3、MQI(Message Queue Interface) 消息队列接口为程序提供了一种异步通信方式。一个程序以一个队列作为中转与另一个程序相互通信,这个队列向对于该程序而言既可以是本地,也可以是远程。当程序A与程序B进行通信时,A只需要将消息放入一条与B相通信的队列即可,至于消息何时,以何种协议,何种方式到达程序B与A没有关系。底层的通信细节被接口所覆盖,甚至通信错误的恢复也由队列管理器代劳了,应用程序自身感受不到通信的发生。 由于通信方式和使用的协议无关,因而可以使用各种标准协议,比如TCP/I P,SNA或者其他局域网协议。 当程序A向B发送消息的时候,程序B不需要处于运行状态,消息队列负责了消息的转达。而且一个程序可以通过不同的队列与多个程序进行通信。

中间件期末考试题

一.选择 1.开放系统互操作面临的异构型不包括:(D) A.不同的数据库系统 B.不同的开发工具 C.不同的操作系统 D.不同的软件开发企业 2.以下哪个模块不属于X OPen DTP模型的基本组成部分(C) A.应用程序(AP) B.资源管理器(RM) C.命名服务器(NS) D.事务管理器(TM) 3.下列属于消息访问中间件的是(C) A.SOAP (Web Service 中使用的通信服务协议) B.ORB(对象中间件) C.JMS(Java消息服务) D.ODBC(数据库访问中间件) 4.Web Service 中使用的通信服务协议是(B) A.GIOP(通用ORB互通协议) B.SOAP C.WSDL(服务说明语言) D.IIOP(互联网ORB互通协议) 5.在window平台中,COM进程内组建的文件格式一般是(D) B.exe(外) D.dll(内) 6.ORB通过使用(B )在网络环境中找到分布式对象 A.IP地址 B.IOR C.对象名称 D.GUID 7.windows平台下,COM组件发布时一般把组建相关信息写到(B) A.环境变量 B.注册表 C.同一个文件夹的配置文件 D.命名服务器 8.分布式事务的特征不包括(C) A.隔离性 B.原子性 C.传递性 D.持久性 9.CORBA平台一般使用(D)描述分布式对象的对外服务接口 A.WSDL B.HTML C.IOR D.IDL 10.在分布式对象访问的桩/框架结构中,负责替分布式对象完成底层通信相关工作的是(D) A.客户端桩 B.构建的接口 C.分布式对象自身 D.服务器端框架(Skeleton) 11.下列那种对象不支持分布式对象的实现(C) A.EJB B.CORBA C.JDBC D.DCOM 12.所有COM组件必须要实现的接口是(A) A.IUnknown B.IDispatch C.ClassFactory https://www.360docs.net/doc/7c16624924.html,omCoClass 13.J2EE中,(D)接口用于网络中定位组件和其他资源 A.JMS B.JDBC C.JTA D.JNDI 14.OMA组织定义ORB之间的互通协议为(A ) A.GIOP/IIOP B.HTTP C.TCP D.IP 15.下列属于数据库访问中间件的是(C) A.ORB B.DCOM

消息中间件及WebSphere MQ入门

消息中间件及WebSphere MQ入门 文档选项 打印本页 将此页作为电子邮件发送 级别:初级 娄丽军, 软件部售前工程师 2003 年 11 月 01 日 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 消息中间件概述 消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供公共的信息交换机制是重要的。设计分布式应用的方法主要有:远程过程调用(PRC)--分布式计算环境(DCE)的基础标准成分之一;对象事务监控(OTM)--基于CORBA的面向对象工业标准与事务处理(TP)监控技术的组合;消息队列(MessageQueue)--构造分布式应用的松耦合方法。 (a) 分布计算环境/远程过程调用 (DCE/RPC) RPC是DCE的成分,是一个由开放软件基金会(OSF)发布的应用集成的软件标准。RPC模仿一个程序用函数引用来引用另一程序的传统程序设计方法,此引用是过程调用的形式,一旦被调用,程序的控制则转向被调用程序。 在RPC实现时,被调用过程可在本地或远地的另一系统中驻留并在执行。当被调用程序完成处理输入数据,结果放在过程调用的返回变量中返回到调用程序。RPC完成后程序控制则立即返回到调用程序。因此RPC模仿子程序的调用/返回结构,它仅提供了Client(调用程序)和Server(被调用过程)间的同步数据交换。 (b) 对象事务监控 (OTM) 基于CORBA的面向对象工业标准与事务处理(TP)监控技术的组合,在CORBA规范中定义了:使用面向对象技术和方法的体系结构;公共的Client/Server程序设计接口;多平台间传输和翻译数据的指导方针;开发分布式应用接口的语言(IDL)等,并为构造分布的Client/Server应用提供了广泛及一致的模式。 (c) 消息队列 (Message Queue) 消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合方法。消息队列的API调用被嵌入到新的或现存的应用中,通过消息发送到内存或基于磁盘的队列或从它读出而提供信息交换。消息队列可用在应用中以执行多种功能,比如要求服务、交换信息或异步处理等。中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,它能实现应用的

消息中间件

消息中间件DotNetMQ 原文出处: https://www.360docs.net/doc/7c16624924.html,/Articles/193611/DotNetMQ-A-Complete-Message-Queue-System-f or-NET#WhyNewMessBroker 介绍 在这篇文章中,我将介绍一个新的、独立的开源消息队列系统,该系统是创建在c#和.NET framework 3.5。DotNetMQ message broker,有几个功能,包括保证交付,路由、负载平衡、服务器图……等等。我将首先解释消息的概念和message brokers。然后我将检查DotNetMQ 是什么以及如何使用它。 什么是消息 消息传递是一种异步通信方式在相同或不同的机器上运行的应用程序的可靠传递。项目通过发送数据包的数据消息传达给对方。 消息可以是一个字符串,一个字节数组,一个对象……等等。通常情况下,发送者(生产商)计划创建一个消息并将消息队列和接收机(消费者)计划从队列中获取消息和处理它 发送方和接收方的程序不需要同时运行,因为消息是一个异步的过程。这就是所谓的松散耦合的沟通。 另一方面,Web服务方法调用(远程方法调用)是一种紧耦合和同步通信(可用应用程序必须运行和有效期间完整的通讯;如果脱机或Web服务方法调用期间发生错误,客户端应用程序变得异常) 图- 1:简单的两个应用程序消息传递 在上面的图中,两个应用程序通过消息队列以松散耦合的方式进行通信。如果接收方使用消息慢于发送方生成它,消息的数量将会在队列里增加。同时,接收方可以离线当发送方还在发送消息。在这种情况下,接收方在线时会接收到消息(当它加入队列时) 消息队列通常提供消息代理。Message Broker是一个独立的应用程序(服务),其他应用程序

基于面向消息中间件的SOA系统集成技术探索

基于MOM-面向消息中间件的SOA系统集成技术探索 一、什么是MOM? MOM是Message-Oriented Middleware(面向消息的中间件)的缩写,MOM 的作用就是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM产品有IBM的WebSphere MQ和基于JMS标准的系列中间件等。 二、MOM特点 MOM是一个基础架构,在基于MOM的通信环境中,通常是异步地发送和接受消息,它将应用抽象地划分为发送者和接收者,它们之间无需彼此了解,MOM最重要的作用就是将消息转发到它们的目的地。下图就是MOM的简单模型图: 从上图可以看出,为了支持消息传递的异步模型,MOM位于客户端和服务器之间,使用消息队列临时存储调用,并允许客户端和服务器分别在不同的时候运行,消息的目标端也不需要立即处理消息,并且客户端和服务器的程序之间不需要彼此知道对方的存在,它们之间不需要考虑它们之间的网络通讯复杂性。 MOM不同于普通的通讯系统的地方在于,通讯的接收和发送两端必须同时运行,并且消息必须即时处理。 三、MOM原理 MOM要实现高效可靠的消息传递机制,必须实现以下三大功能: ●实现消息的异步发送和接收,实现发布/订阅模式 ●实现消息的持久化,保证消息可靠性传输 ●优化网络传输,支持断点续传

要实现以上三大功能,需要实现消息队列,消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合的方式,队列是消息的安全存放的位置,队列存储消息直到它被应用程序处理,这样的工作机制,能够保证在各种网络环境下能够可靠的传递。 在消息队列的应用上,各个不同的MOM产品应用上有所不同,例如,JMS 标准的MOM和IBM Websphere MQ实现上就有所区别。 从上图,可以看出IBM WebSphere MQ的结构和JMS结构在队列的应用上略有不同,IBM WebSphere MQ在客户机上存在有传输队列,而JMS在客户机方面不存在任何队列,所以说JMS相对于MQ而言,只是规范了消息的存取,而没有规范消息数据的传输,因为JMS客户机并不拥有存放数据的队列,所以所有发送的操作都要由应用程序来控制,JMS服务器本身不代理传输,也不保证数据在远程队列间的传输可靠性。IBM MQ通过通道与传输队列和远程队列来保证队列间的传输可靠性,IBM MQ支持客户端的断网续传,而客户端的应用程序不用做任何工作,但是,这种方式需要客户端本地安装MQ的客户端。 四、MOM通讯模式 MOM主要存在3工作模式:点对点模式、发布/订阅模式以及消息队列模式,其中,点对点模式和发布/订阅模式统称为消息传递模式。 点对点模式(Point-to-Point) 点对点模式用于消息生产者和消息消费者之间点到点的通信,是一种程序到程序的直接通信模式。消息生产者将消息发送到由某个名字标识的特定消费者,点对点消息允许客户端通过队列这个虚拟通道来同步和异步发送、接收消息,传

AFC系统通信中间件的研究与设计

学校代号10536 学号0810803550 分类号TP391 密级公开 硕士学位论文 AFC系统通信中间件的研究与设计 学位申请人姓名张良春 培养单位长沙理工大学 导师姓名及职称龙鹏飞教授 学科专业计算机应用技术 研究方向人工智能及应用 论文提交日期2011年3月

学校代号:10536 学号:0810803550 密级:公开 长沙理工大学硕士学位论文 AFC系统通信中间件的研究与设计 学位申请人姓名张良春 导师姓名及职称龙鹏飞教授 培养单位长沙理工大学 专业名称计算机应用技术 论文提交日期2011年3月 论文答辩日期2011年5月 答辩委员会主席车生兵教授

Research and Design of Communication Middleware on AFC System by Zhang Liangchun B.E.( Hunan City University) 2008 A thesis submitted in partial satisfaction of the Requirements for the degree of Master of Engineering in Computer Application Technology in Changsha University of Science & Technology Supervisor Professor Long Pengfei March, 2011

长沙理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权长沙理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1、保密□,在______年解密后适用本授权书。 2 (请在以上相应方框内打“√”) 作者签名:日期:年月日 导师签名:日期:年月日

消息中间件在数据交换中的应用.

消息中间件在数据交换中的应用 计算机技术的不断推陈出新,带来了消息化发展的新浪潮,人们感受到了计算机及网络技术所带来的好处,于是对电子化、信息化应用的需求也越来越迫切。信息技术以其强大的渗透力,深入到社会经济生活的各个方面。在商业金融等领域,电子数据交换作为一种新的商务手段正在被广泛使用。 数据交换EDI(Electronic Data Interchange)是一种计算机应用技术,根据事先达成的协议,将信息按照一定的标准进行格式化处理,并把这些格式化的数据,通过计算机通信网络在其计算机系统之间进行交换和自动处理。作为计算机通信技术的一部分,EDI可以应用于制造业、运输业、零售业以及卫生保健和政府部门等各种经济部门之中。 消息队列中间件MOM(Message-Oriented Middleware)是一种特定的中间件,它利用高效可靠的消息传递机制进行平台无关的数据交换,并基于数据通信来进行分布式系统的集成。 1 数据交换的研究与应用现状 1.1 国际发展现状及趋势 西方发达国家已普遍采用EDI。据统计,1992年底世界上使用EDI的企业超过10万家,95年达到40万家。美国早在60年代初期,就在公路、铁路、海运和空运中应用EDI,而且每年还以100%的速度增长;西欧各国已将EDI应用于汽车、化工、电子、运输、保险、分销零售业中;日本已在销售、贸易、运输、和制造业中广泛使用EDI;新加坡声称95%的贸易用EDI实现。据悉,美国政府及欧洲共同体大部分国家的海关宣布,从1992年起,采用 EDI 方式输海关业务,如不采用EDI方式,其手续将被推迟办理,或不再选为贸易伙伴。 1996年,亚洲六个国家和地区(中国、日本、印度、马来西亚、菲律宾和中国台湾省)达成协议,将共同开发EDI系统,以便使这些国家和地区在进出口过程中能够实时采集进出口数据,有效对客户进行管理,减少报关错误。这无疑会加快亚洲国家的EDI建设进程。 在欧洲,一些大公司,包括超市连锁公司,已经开始对不开通EDI的供应商实行制裁措施(价格、处理时间、付款方式上实行岐视政策)。 新加坡贸易发展局宣布:从1999年1月1日起,所有进出口贸易都必须用EDI方式申报。 香港地区从2000年开始全面关闭进出口报关柜台,所有的进出口报关必须通过EDI方式。 EDI的发展趋势: (1)应用EDI的行业会增多; (2)EDI与其他信息传送技术和系统的一体化; (3)EDI技术将受Internet的冲击。 1.2 国内发展现状

三个经典消息中间件的比较

三个经典消息中间件的比较 对于消息中间件,绝大多数熟悉的是MQ(IBM公司出品),这是目前使用最广泛的中间件产品。还有两个也比较流行,他们是JMS和RV。JMS即JAVA消息服务(Java Message Service)应用程序接口是一个JAVA平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信,是一个与具体平台无关的API。TIBCO Rendezvous(或称为TIBCO RV)也是一种中间件,具有发布/订阅(Publish/Subscribe)、基于主题寻址(Subject-Based Addressing) 和自定义数据信息(Self-Describing Data Messages)等专利技术功能,使不同应用平台上的信息在一个共享的虚拟总线Information Bus(TIB)上进行传输交换。 先总结一下消息中间件的功能,以上的三类中间件都实现了这些功能。 ??实现消息的异步发送接收,发布订阅,使得两端的应用解耦(减少或解除应用程序之间的耦合度)。 ??实现消息持久化机制,保证消息可靠性传输。 ??优化网络传输,支持断点续传。 1、区别之是否分布式 RV 和 MQ 都是分布式结构的,和 JMS 消息中间件的星型结构不同。分布式消息中间件的Sever在应用环境里都会部署多个,彼此互联,没有主备之分。JMS消息中间件的应用部署一般都是主备两个Server,消息的发送和接收应用平时和主Server相连,有问题时切换到备 Server,主备Server共用公共的存储设备来保存消息。 2、区别之是否接收端主动 MQ 和 JMS 消息中间件都采用消息接收端主动接收消息的方式。消息从发送端发出后,首先会缓存到Server上,接收端应用发起一个接收消息的请求,Server 把消息作为应答返回给接收端。接收端不执行接收动作,消息就会一直在Server 上保存。RV 和这两种消息中间件都不同,使用的是发送端主动的消息推送模式。消息从发送端发出后,并不在Server上缓存,Server只做路由把消息推送给消息接收端。消息接收端只要连接上Server,订阅要接收的消息,这些消息就会源源不断地从Server那里推送过来,消息先缓存到接收客户端的队列里,接收端应用再从队列里取消息。RV的最大特点就是把一个数据生产者的数据以最快的速度推送到多个数据消费者那里。RV从金融市场数据系统的需求中产生而来,正是这些特点使得它在证券系统得到最广泛的应用。 3、区别之是否便于一对多分布

三个主流消息中间件区别

市场上的消息中间件: mom4j mom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以用任何语言开发. OpenJMS OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性: *. 它既支持点到点(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型。 *. 支持同步与异步消息发送 *. JDBC持久性管理使用数据库表来存储消息 *. 可视化管理界面。 *. Applet支持。 *. 能够与Jakarta Tomcat这样的Servlet容器结合。 *. 支持RMI, TCP, HTTP 与SSL协议。 *. 客户端验证 *. 提供可靠消息传输、事务和消息过滤 UberMQ UberMQ完全实现了Java Message Service 规范。UberMQ是因为现有的许多JMS提供商已经违背了分布式计算的核心原则:快速与简单而开发的。 Hermes JMS 利用它提供的Swing UI可以很好的实现监控JMS providers。 ActiveMQ ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo,轻量级容器和任Java应用程序无缝的给合。 Somnifugi Somnifugi使得工作在同一个java虚拟机中的线程能实现消息互发。 MantaRay MantaRay基于peer-2-peer 技术。它具有以下特性: 1.它既支持点对点(point-to-point)的域,又支持发布/订阅(publish/subscribe)类型的域。 2.并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。 3.消息过滤体制。 4.能与WebLogic and WebSphere 给合。 5.支持TCP, UDP 与HTTP传输协。

中间件

1、事务具有__原子性_、一致性、隔离性和持久 性四个特性。 2、EJB规范中定义了两种实体bean的持久性模型,分别是自管理持久性和容器管理持久性。 3、EJB的必须实现Home 接口和Remote 接口。 4、CORBA中支持服务方的动态对象调用接口称为动态框架接口。 5、微软的COM组件对象模型的IDispatch接口定义了一个函数 Invoke ,该函数能根据一个称为调度ID的整数来决定调用哪个函数。 6、CORBA事件服务中定义了事件提供者、事件消费者和事件通道三种角色,并且定义了 push 和 pull 两种数据传送模型。 1、ORB Object Request Broker,是对象请求总线,它能使对象透明地向其他本地或者远程对象发出请求或获得响应。 2、SOAP Simple Object Access Protocol,是Web服务的通信协议,用来定义消息的XML格式。 3、UDDI Universal Description Discovery and Integration 即统一描述、发现和集成协议。 4、DCOM Distributed Component Object Model,分布式组件对象模型 1、简述中间件的概念、组成结构和作用。 定义:中间件是介于应用系统和系统软件之间的一类软件,是位于操作系统和应用软件之间的一个软件层,向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互通信息。 组成结构:(1)执行环境软件(2)应用开发工具 作用:使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。 2、中间件的特性 (1)易用性

相关文档
最新文档