`
mouer
  • 浏览: 101975 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

中间件与JMS

    博客分类:
  • J2EE
阅读更多

究竟什么是中间件,也就是中间件的定义是什么?
针对这个问题,应该说还没有一个标准的定义,或者说还没有完全取得学术界和产业界的共识。
顾名思义,中间件就是处于中间的软件。但这种不是从功能,或者特性来定义的概念,而是用“位置”来定义的名字,就容易被不同的人从不同角度赋予其不同的含义。
我国学术界一般认可的定义是“中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性”(北京大学梅宏)。
中科院软件所研究员仲萃豪形象地把中间件定义为“平台+通信”。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。
中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。形象地说就是“上下”之间的“中间”。


中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。
IDC对中间件的定义为:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算机资源和网络通信。
因而中间件是指一类软件,是基于分布式处理的软件,最突出的特点是其网络通信功能。也可认为中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,可以有符合接口和协议的多种实现。



 
1.2 中间件的分类

按照IDC的分类方法,中间件可分为六类:[1]

1) 终端仿真/屏幕转换

2) 数据访问中间件(UDA)

3) 远程过程调用中间件(RPC)

4) 消息中间件(MOM)

5) 交易中间件(TPM)

6) 对象中间件

然而在实际应用中,一般将中间件分为两大类:一类是底层中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件、应用服务器、消息中间件、数据访问中间件等;另一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件、工作流中间件、门户中间件等,他们通常会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中间件运行。

1.2.1 终端仿真/屏幕转换

此类中间件用于实现客户机图形用户接口与已有的字符接口方式的服务器应用程序之间的互操作,应用与早期的大型机系统,现在已很少使用。

1.2.2 数据访问中间件

此类中间件是为了建立数据应用资源互操作的模式,对异构环境下的数据库或文件系统实现联接。

1.2.3 远程过程调用中间件

此类中间件可以使开发人员在需要时调用位于远端服务器上的过程,屏蔽了在调用过程中的通信细节。一个应用程序使用RPC来远程执行一个位于不同地址空间里的过程,在效果上看和执行本地调用相同。

1.2.4 交易中间件

此类中间件是专门针对联机交易系统而设计的。联机交易系统需要处理大量并发进程,处理并发涉及到操作系统,文件系统,编程语言,数据通信,数据库系统,系统管理,应用软件等。而交易中间件根据分布式交易处理的标准及参考模型,对资源管理,交易管理和应用进行了实现,从而使得基于交易中间件开发应用程序更为简单。交易中间件基本上只适用于联机交易系统,是一种较为专用的中间件。

1.2.5 消息中间件

此类中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

消息中间件可以即支持同步方式,又支持异步方式。异步中间件比同步中间件具有更强的容错性,在系统故障时可以保证消息的正常传输。异步中间件技术又分为两类:广播方式和发布/订阅方式。由于发布/订阅方式可以指定哪种类型的用户可以接受哪种类型的消息,更加有针对性,事实上已成为异步中间件的非正式标准。目前主流的消息中间件产品有IBM的MQSeries,BEA的MessageQ和Sun的JMS等[1]。

1.2.6 对象中间件

传统的对象技术通过封装、继承及多态提供了良好的代码重用功能。但这些对象只存在与一个程序中,外界并不知道它们的存在,也无法访问它们。对象中间件提供了一个标准的构建框架,能使不同厂家的软件通过不同的地址空间,网络和操作系统实现交互访问。对象中间件的目标是为软件用户及开发者提供一种应用级的即插即用的互操作性。目前主流的对象中间件有OMG的CORBA,Microsoft 的COM以及IBM的SOM,Sun的RMI等。

1.3 中间件的特点

一般来讲,中间件具有以下一些特点:满足大量应用的需求,运行于多种硬件和操作系统平台,支持分布式计算,支持标准接口和协议。开发人员通过调用中间件提供的大量API,实现异构环境的通信,从而屏蔽异构系统中复杂的操作系统和网络协议。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。分布式应用软件借助中间件可以在不同的技术之间共享资源。

总的来说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少了程序设计的复杂性,将注意力集中与自己的业务上,不必再为程序在不同软件系统上的移植而重复工作,从而大大减少了技术上的负担。

二、消息中间件原理

面向消息的中间件(MOM),提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于存储和转发的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的MOM通信。MOM提供了有保证的消息发送(至少是在尽可能地做到这一点),应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节。

2.1 消息中间件简介

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。

如下图所示,应用程序A与应用程序B通过使用 MOM 的应用程序编程接口(API)发送消息进行通信。



 

MOM将消息路由给应用程B,这样消息就可以存在于完全不同的计算机上,MOM 负责处理网络通信。如果网络连接不可用,MOM会存储消息,直到连接变得可用时,再将消息转发给应用程序B。
灵活性的另一方面体现在,当应用程序A发送其消息时,应用程序B甚至可以不处于执行状态。MOM将保留这个消息,直到应用程序B开始执行并试着检索消息为止。这还防止了应用程序A因为等待应用程序B检索消息而出现阻塞。 这种异步通信要求应用程序的设计与现在大多数应用程序不同,不过,对于时间无关或并行处理,它可能是一个极其有用的方法。

  • 大小: 11.5 KB
  • 大小: 10.9 KB
分享到:
评论

相关推荐

    消息中间件与JMS.pdf

    ### 消息中间件与JMS详解 #### 摘要 随着企业信息化建设的深入,数据集成和系统整合的需求日益增长。为了更好地满足这些需求,消息中间件作为一种基于异步处理模型的技术,逐渐受到广泛关注。不同于传统的RPC(远程...

    消息中间件和JMS消息服务.pdf

    ### 消息中间件与JMS消息服务详解 #### 一、引言 随着分布式系统的规模和复杂度不断增加,传统的远程过程调用(RPC)中间件技术如CORBA、DCOM、RMI等逐渐暴露出局限性。这些技术通常采用同步通信方式,这导致客户和...

    消息中间件和JMS消息服务.rar

    消息中间件和Java消息服务(JMS)是企业级应用集成中的关键组件,它们在分布式系统中起到数据传输和解耦的重要作用。本压缩包文件“消息中间件和JMS消息服务.rar”可能包含了关于这两个主题的详细资料,旨在帮助读者...

    activemq中间件视频 jms规范

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循Java消息服务(JMS)规范,为分布式系统提供高效、可靠的消息传递。本教程通过视频形式深入讲解了ActiveMQ的使用和JMS规范的相关知识。 Java消息服务...

    java中间件之jms

    它的设计目的是为了定义一套标准接口,让Java应用程序能够与消息中间件进行交互,类似于JDBC在数据库访问方面的角色。值得注意的是,JMS本身并不实现消息服务,而是由具体的供应商(如ActiveMQ、IBM MQ等)来提供...

    消息中间件和JMS原理

    【消息中间件和JMS原理】是分布式系统中重要的组件,它们主要解决了传统RPC(Remote Procedure Call)中间件存在的性能、健壮性和可扩展性的不足。RPC中间件如CORBA、DCOM、RMI,虽然方便了跨网络的函数调用,但其...

    JMS中间件ActiveMQ介绍

    ### JMS中间件ActiveMQ介绍 #### JMS (Java Message Service) 概述 Java Message Service(JMS)是Sun Microsystems提出的一种规范,用于统一不同的消息传递中间件(Message-Oriented Middleware, MOM)系统的接口...

    消息中间件和jms消息服务

    消息中间件和JMS消息服务在IT行业中扮演着至关重要的角色,尤其是在构建大型分布式系统时。传统的RPC中间件如CORBA、DCOM和RMI虽然广泛应用,但它们在处理复杂性和同步通信方面存在局限。为了解决这些问题,面向消息...

    fuse esb mq jms

    ### 二、消息中间件与 JMS 的理解 - **消息中间件**:一种软件层,用于在分布式系统中进行进程间通信。它允许应用程序通过标准接口进行通信,而无需了解底层网络协议。 - **Java消息服务 (JMS)**:一种 Java 平台中...

    JMS优秀硕士学位论文(六)-基于JMS的消息中间件的研究与实现

    内容为基于JMS的消息中间件的研究与实现,格式为CAJ,页数为54

    JMS优秀硕士学位论文(二)-JMS消息中间件在数据集成系统中的研究与应用

    内容为JMS消息中间件在数据集成系统中的研究与应用,格式为CAJ,页数为为54

    JMS+activeMQ消息中间件

    **ActiveMQ**是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,为应用程序提供了一个中间件,允许应用程序之间进行异步的消息通信。ActiveMQ支持多种协议,如OpenWire、AMQP、STOMP、MQTT等,适用于多种...

    国产化中间件产品对接,jms的接口参考

    标题中的“国产化中间件产品对接,jms的接口参考”指的是在信息技术领域,特别是中国国内,使用本土化的中间件产品进行系统间的通信,而这里的通信机制是基于Java消息服务(Java Message Service,简称JMS)。JMS是...

    Java消息中间件JMS,ActiveMQ.zip

    Java消息中间件JMS,ActiveMQ

    基于JMS的消息中间件的实现-论文.zip

    在论文中,作者将JMS与JMX结合,构建了一个分布式的管理框架。这种结合使得消息中间件不仅能够处理消息传输,还能通过JMX进行远程监控和管理,从而提高运维效率和系统稳定性。例如,管理员可以使用JMX工具查看消息...

    java实现的基于jms协议的消息队列中间件,源码!

    Java实现的基于JMS(Java Message Service)协议的消息队列中间件是一种用于应用程序间异步通信的重要技术。消息队列允许应用程序将消息发送到队列而不必等待接收方的响应,提高了系统的可扩展性和容错性。JMS是Java...

    ActiveMQ In Action精简版

    ### 消息中间件与JMS的理解 消息中间件是一种软件,用于在分布式系统中实现应用程序之间的异步通信,它可以提高系统的可扩展性、可靠性和松耦合度。JMS(Java Message Service)是Java平台上的一种消息中间件API,...

    JMS优秀硕士学位论文(一)-JMS消息中间件的设计与实现

    内容为JMS消息中间件的设计与实现,格式为CAJ,页数为69

    基于JMS的消息中间件的实现-论文

    本文不仅展示了JMS与JMX结合的创新应用,而且为消息中间件的开发提供了理论支持和实践指导。对于理解和实现高效的消息服务系统具有重要的参考价值。 本文的贡献在于为开源社区提供了宝贵的参考资源,并鼓励了更多的...

Global site tag (gtag.js) - Google Analytics