




已阅读5页,还剩120页未读, 继续免费阅读
(计算机软件与理论专业论文)基于j2ee消息服务的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
a b s t r a c t j a v am e s s a g es e r v i c ei sa no p e na p p l i c a t i o np r o g r a m m i n gi n t e r f a c e d e v e l o p e db ys u nm i c r o s y s t e m si n c i tp r o v i d e sac o m m o nw a yf o rj a v a p r o g r a m st oc r e a t e ,s e n d ,r e c e i v ea n dr e a de n t e r p r i s e - m e s s a g i n gs y s t e m s m e s s a g e d i f f e r e df r o mt r a d i t i o n a lm e s s a g i n gt e c h n o l o g i e s ,s u c ha sr e m o t e m e t h o d i n v o c a t i o n ,j m sp r o m o t e s t h e r e l i a b i l i t y o f a s y n c h r o n o u s c o m m u n i c a t i o nb e t w e e n c o m p o n e n t s i nd i s t r i b u t e dc o m p u t i n g e n v i r o n m e n t s , a n dc a nb e u s e df o r e s t a b l i s h i n gl o o s e l y - c o u p l e dm e s s a g i n gs y s t e m t h e r e f o r e ,i ts i m p l i f i e st h ed e v e l o p m e n to fe n t e r p r i s ea p p l i c a t i o n s t h em a i n g o a lo f t h i sp r o j e c ti st od e s i g na n di m p l e m e n tj a v am e s s a g e s e r v i c eb a s e do nj 2 e e t h ej m ss y s t e m ,an e w t y p eo fm e s s a g eo r i e n t e d m i d d l e w a r e ,i sc o m p o s e do ft h ep u r ej a v ai m p l e m e n t a t i o n so fc l i e n ta p i s , j m sp r o v i d e r ,a d v a n c e da p p l i c a t i o ns e r v e rf a c i l i t i e sa n dt h ei n t e r f a c e sb y w h i c hj m sc a nb e i n t e g r a t e di n t oj 2 e e f i r s t l y , t h et e c h n o l o g yb a c k g r o u n do f t h er e s e a r c ha n dd e v e l o p m e n to f j m si si n t r o d u c e di nt h i st h e s i s b a s e do nt h es p e c i f i c a t i o no f j m sv 1 o 2 , w ep r o v i d et h em o d e lo ft h ea r c h i t e c t u r eo fj m sa n de x p l a i nt h eb a s i c c o n c e p t so fj m sa p p l i c a t i o n s ,a d m i n i s t e r e do b j e e t s ,j m sm e s s a g em o d e l , m e s s a g i n g m o d e la n dt h es t a n d a r dj m s i n t e r f a c e s a c c o r d i n g t ot h e a p p l i c a t i o nr e q u i r e m e n t s ,h o wt od e s i g nj m sa p p l i c a t i o ns e r v e rf a c i l i t i e s , h o wt oi n t e g r a t ej m si n t oj 2 e e a p p l i c a t i o ns e r v e r , a n dh o w t om a n a g ej m s a r ea l s od e s c r i b e d i na d d i t i o n ,b a s e do nj m ss p e c i f i c a t i o n ,t h ed e s i g no fc o m m u n i c a t i o n d a t as t r u c t u r e sb e t w e e nc l i e n t sa n dp r o v i d e r si s p r e s e n t e d t h ed e s i g no f c o n n e c t i o n p o o l ,p e r s i s t e n tm e s s a g ed e l i v e r y , d u r a b l es u b s c r i p t i o n , t r a n s a c t i o n a ld e l i v e r ya n dc o n c u r r e n ts e s s i o n sa r ea l s od i s c u s s e di nt h e t h e s i s a sar e s u l t ,t h et e s td a t ao fj m ss y s t e mi sg i v e ni nt h el a t e rp a r to f t h et h e s i s a tl a s t ,w e d e s i g nas i m p l ee b u s i n e s sm o d e lt o s h o wh o wt o p r o g r a mu s i n gj m s k e y w o r d sm e s s a g eo r i e n t e dm i d d l e w a r e ( m o m ) ,j a v am e s s a g es e r v i c e , j m sp r o v i d e r s ,j 2 e ea p p l i c a t i o ns e r v e r , a p p l i c a t i o ns e r v e r f a c i l i t i e s n - 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名: 刭! 鳢 日期:2 一够年3 月j 曰 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 日期:规;年;月弓日 第一章研发背景概述 1 1 引言 第一章研发背景概述 在构造分布式系统特别是松耦合系统的时候,消息中间件( m e s s a g e o r i e n t e dm i d d l e w a r e ,m o m ) 是一种很常见的构建模块。m o m 系统通 常为独立的组件提供可靠的消息传递服务。在采用m o m 的时候,松耦 合的组件通过异步交换消息的方式进行通信,消息管理层可以从应用代 码中分离出来。将m o m 的消息传递系统和同步的远程过程调用系统相 对照,它的异步特性使它适于在将高度自治性的作为设计目标的时候。 m o m 已经存在了很多年,目前最为广泛使用的还是i b m 的m q s e r i e s 。 j m s 是s u n 公司于1 9 9 8 年提出的一种m o m 标准。在继承了j a v a 语言良好的可移植性和平台无关性的情况下,j m s 作为一种新兴的标准 显示除了其强大的生命力。在它的开发中,许多领先的企业讯息厂商给 予了密切的配合。j m s 将j a v a 技术与企业讯息技术结合到一个新型的健 壮的工具中,用于解决企业级消息传送的问题。同时,j m s 的技术规范 基于一组公共讯息概念和编程战略,这些概念和战略得到所有与j m s 技 术兼容的消息系统的支持。 作为j a v a2 的一个标准接口,j m s 促进了分布式计算环境中各个组 件之间的可靠的异步通信,进一步简化了企业开发和集成过程。采用j m s 技术,使各个开发商更容易创建成功的分布式应用,更迅速地将之推向 市场。 本文结合四川省重点科技攻关项目“基于分布对象技术的新一代中 间件”,对基于j 2 e e 消息服务所做的研究和设计做了详细的阐述。文章 首先介绍了课题研发的技术背景,并在第二章详细分析了j m s 的体系结 构。作为文章的重点部分,第三章给出了系统的需求分析以及系统的概 要设计,并在第四章给出了系统的详细设计以及主要模块和关键技术点 的实现。为了说明j m s 编程的技巧和用途,第五章提供了一个简单的电 子商务编程模型。文章的最后部分对现阶段设计中考虑不完善的地方以 及下一步将要进行的工作做出了补充说明,为本文的后续研发工作打下 良好的基础。 第一章研发背景概述 1 2j 2 e e 概述 j 2 e e 是美国s u n 公司刚刚推出的一种全新概念的模型,与传统的互 联网应用程序模型相比有着不可比拟的优势。 当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短 他们和客户之间的响应时间,这就需要存在一种简捷,快速的服务于企业, 合作伙伴和雇员之间。典型的说,提供这些服务的应用软件必须同企业 信息系统( e i s ) 相结合,并提供新的能向更为广阔的用户提供的服务。 这些服务要具备以下的特点: 1 ) 高可用性:来满足现在的全球商业环境 2 ) 安全性:保护用户的隐私和企业数据的安全 3 ) 可依赖性和可扩展性:保证商业交易的正确和迅捷 通常这些服务是由分布的应用程序组成的,包括前端数据端和后端 数据源以及它们之间的层或几层,这些中间层提供了把商业功能和数 据与e i s 相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离 出来,利用成熟的i n t e r n e t 技术使用户在管理上所花费的时间最小 化。j 2 e e 正式降低了开发这种中间层服务的成本和复杂程度,因而使 得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。 j 2 e e 通过定义一种标准的结构来实现它的优势,如下: 1 ) j 2 e e 应用编程模型( a p p l i c a t i o np r o g r a m m i n gm o d e l ) 一一种 用于开发多层次,瘦型客户用户程序的标准设计模型 2 ) j 2 e e 平台( p l a t f o r m ) 一个标准的平台,用来整合j 2 e e 的应 用程序,指定一系列的接口和方法 3 ) j 2 e e 兼容性测试套件( c o m p a t i b i l i t yt e s ts u i t e ) 一套兼容测 试组件,用来检测产品是否同j 2 e e 平台兼容 4 ) j 2 e e 参考实现( r e f e r e n c ei m p l e m e n t a t i o n ) 用来示范j 2 e e 的 能力 2 一 第一章研发背景概述 1 3 中间件概述 1 3 1 中间件的基本概念 图1 1j 2 e e 平台体系结构图 中间件是泛指能够屏蔽操作系统和网络协议的差异,能够为异构系 统之间提供通讯服务的软件。中间件位于平台( 操作系统、硬件) 与应 用软件之间,应该能够有效保护企业的投资,保证应用软件的相对稳定, 实现应用软件的功能扩展。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这 种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系 统之上,管理计算资源和网络通讯。从中间件的定义可以看出,中间件 是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之 间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网 络通讯功能。那么,中间件究竟解决什么问题呢? 首先,应用的互连和 互操作是中间件要解决的第一位的问题。不管这些应用分布在什么硬件 平台上,使用了什么数据库,透过了多么复杂的网络,或是同一电脑中 的不同应用系统。这里所说的互连和互操作是应用之间而不是说系统之 间的,因为中间件是一种应用级的软件,是一种应用集成的关键构件, 3 第一章研发背景概述 1 3 中间件概述 1 3 1 中间件的基本概念 图1 1j 2 e e 平台体系结构图 中间件是泛指能够屏蔽操作系统和网络协议的差异,能够为异构系 统之间提供通讯服务的软件。中间件位于平台( 操作系统、硬件) 与应 用软件之间,应该能够有效保护企业的投资,保证应用软件的相对稳定, 实现应用软件的功能扩展。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这 种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系 统之上,管理计算资源和网络通讯。从中间件的定义可以看出,中间件 是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之 间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网 络通讯功能。那么,中间件究竟解决什么问题呢? 首先,应用的互连和 互操作是中间件要解决的第一位的问题。不管这些应用分布在什么硬件 平台上,使用了什么数据库,透过了多么复杂的网络,或是同一电脑中 的不同应用系统。这里所说的互连和互操作是应用之间而不是说系统之 间的,因为中间件是一种应用级的软件,是一种应用集成的关键构件, 3 第一章研发背景概述 1 3 中间件概述 1 3 1 中间件的基本概念 图1 1j 2 e e 平台体系结构图 中间件是泛指能够屏蔽操作系统和网络协议的差异,能够为异构系 统之间提供通讯服务的软件。中间件位于平台( 操作系统、硬件) 与应 用软件之间,应该能够有效保护企业的投资,保证应用软件的相对稳定, 实现应用软件的功能扩展。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这 种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系 统之上,管理计算资源和网络通讯。从中间件的定义可以看出,中间件 是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之 间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网 络通讯功能。那么,中间件究竟解决什么问题呢? 首先,应用的互连和 互操作是中间件要解决的第一位的问题。不管这些应用分布在什么硬件 平台上,使用了什么数据库,透过了多么复杂的网络,或是同一电脑中 的不同应用系统。这里所说的互连和互操作是应用之间而不是说系统之 间的,因为中间件是一种应用级的软件,是一种应用集成的关键构件, 3 第一章研发背景概述 一个好的中间件产品要能解决应用互连带来的各种问题,通讯要支持各 种通讯协议、各种通讯服务模式、传输各种数据内容、数据格式翻译、 流量控制、数据加密、数据压缩等;中间件核心要解决名字服务、安全 控制、并发控制、可靠性保证、效率保证等。应用开发要能提供基于不 同平台的丰富的开发接口、支持流行的开发工具、支持流行的异构互连 接口标准( 如x a 、i d l 等) ;系统管理要解决对中间件本身的配置、监 控、调谐,为系统的易用易管理提供保证。其次,针对不同的应用领域, 对中间件又有各种不同的要求。由于实际的应用环境千差万别,不能指 望有种包罗万象的中间件解决所有的问题。 1 3 2 中间件分类 按照i d c 的分类方法,中间件可分为以下六类。 1 终端仿真屏幕转换 用以实现客户机图形用户接口与已有的字符接口方式的服务器应用 程序之间的互操作。 2 数据访问中间件 适用于应用程序与数据源之间的互操作模型,客户端使用面向数据 库的a p i ,以提请直接访问和更新基于服务器的数据源,数据源可以是 关系型、非关系型和对象型。这类中间件大都基于s q l 语句,采用同步 通讯方式。 3 远程过程调用中间件 r p c 机制是早期开发分布式应用时经常采用的一种同步式的请求应 答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位 于远端服务器上的过程。r p c 扩展了过程语言中的”功能调用结果返回” 的机制,使得它可以适用于一个远程环境。在采用r p c 机制时,调用远 端的过程只需去引用它,而不必告之网络地址或其它底层信息。 4 消息中间件 尽管消息中间件不像r p c 机制那样流行,但越来越多的分布式应用 采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系 统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用, 当一个事件发生时,消息中间件通知服务方应该进行何种操作。事件可 以是个请求,也可以只是一种警示,警示到来后,即可进行某种处理, 但不需等待应答。使用消息中间件编程采用的是消息中间件的a p i ,可 4 第一章研发背景概述 一个好的中间件产品要能解决应用互连带来的各种问题,通讯要支持各 种通讯协议、各种通讯服务模式、传输各种数据内容、数据格式翻译、 流量控制、数据加密、数据压缩等;中间件核心要解决名字服务、安全 控制、并发控制、可靠性保证、效率保证等。应用开发要能提供基于不 同平台的丰富的开发接口、支持流行的开发工具、支持流行的异构互连 接口标准( 如x a 、i d l 等) ;系统管理要解决对中间件本身的配置、监 控、调谐,为系统的易用易管理提供保证。其次,针对不同的应用领域, 对中间件又有各种不同的要求。由于实际的应用环境千差万别,不能指 望有种包罗万象的中间件解决所有的问题。 1 3 2 中间件分类 按照i d c 的分类方法,中间件可分为以下六类。 1 终端仿真屏幕转换 用以实现客户机图形用户接口与已有的字符接口方式的服务器应用 程序之间的互操作。 2 数据访问中间件 适用于应用程序与数据源之间的互操作模型,客户端使用面向数据 库的a p i ,以提请直接访问和更新基于服务器的数据源,数据源可以是 关系型、非关系型和对象型。这类中间件大都基于s q l 语句,采用同步 通讯方式。 3 远程过程调用中间件 r p c 机制是早期开发分布式应用时经常采用的一种同步式的请求应 答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位 于远端服务器上的过程。r p c 扩展了过程语言中的”功能调用结果返回” 的机制,使得它可以适用于一个远程环境。在采用r p c 机制时,调用远 端的过程只需去引用它,而不必告之网络地址或其它底层信息。 4 消息中间件 尽管消息中间件不像r p c 机制那样流行,但越来越多的分布式应用 采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系 统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用, 当一个事件发生时,消息中间件通知服务方应该进行何种操作。事件可 以是个请求,也可以只是一种警示,警示到来后,即可进行某种处理, 但不需等待应答。使用消息中间件编程采用的是消息中间件的a p i ,可 4 第一章研发背景概述 以很好地扩展到不同的操作系统和硬件平台上。 5 交易中间件 交易中间件是专门针对联机交易处理系统而设计的。联机交易处理 系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编 程语言、数据通讯、数据库系统、系统管理、应用软件,是一个相当艰 巨的任务,但是工作的难度可以通过采用一个交易中间件来简化。交易 中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所 需的编程量。x o p e n 组织专门定义了分布式交易处理的标准及参考模 型,把一个联机交易系统划分成资源管理( r m ) 、交易管理( t m ) 和应 用( a p ) 三部分,定义了应用程序、交易管理器、多个资源管理器是如 何协同工作的。 6 对象中间件 面向对象的技术一直是软件界努力追求的目标,传统的对象技术通 过封装、继承及多态提供了良好的代码重用功能。但是这些对象只存在 一个程序中,外面的世界并不知道它们的存在,也无法访问它们。面向 对象的中间件就是要解决这些问题,它提供一个标准的构件框架,能使 不同的厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。 该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。 面向对象的中间件技术的目标就是为软件用户及开发者提供一种应用级 的即插即用的互操作性,就像现在使用集成块和扩展板一样。有关对象 中间件的标准相继问世,像o m g 组织的c o r b a 、m i c r o s o f t 的c o m 以 及s u n 公司的j 2 e e 等,这些标准都极大地促进了对象中间件技术的发 展。 1 3 3 消息中间件 消息中间件作为一个中间软件,为分布式企业应用系统中创建、发 送、接收和阅读消息提供了一套可靠通用的方法。消息中间件使异步电 子通信迅速可靠,并确保消息的传递,接收通知和交易控制。 消息中间件的核心就是提出了目的地对象( d e s t i n a t i o n ) 的概念, 包括队列( q u e u e ) 和主题( t o p i c ) 。消息客户发送消息到消息中间件上, 消息中间件接收并依次转发到合适的消息接收者上。 消息中间件可以既支持同步方式,又支持异步方式,可以很好地适 5 - 第一章研发背景概述 以很好地扩展到不同的操作系统和硬件平台上。 5 交易中间件 交易中间件是专门针对联机交易处理系统而设计的。联机交易处理 系统需要处理大量并发进程,处理并发涉及到操作系统、文件系统、编 程语言、数据通讯、数据库系统、系统管理、应用软件,是一个相当艰 巨的任务,但是工作的难度可以通过采用一个交易中间件来简化。交易 中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所 需的编程量。x o p e n 组织专门定义了分布式交易处理的标准及参考模 型,把一个联机交易系统划分成资源管理( r m ) 、交易管理( t m ) 和应 用( a p ) 三部分,定义了应用程序、交易管理器、多个资源管理器是如 何协同工作的。 6 对象中间件 面向对象的技术一直是软件界努力追求的目标,传统的对象技术通 过封装、继承及多态提供了良好的代码重用功能。但是这些对象只存在 一个程序中,外面的世界并不知道它们的存在,也无法访问它们。面向 对象的中间件就是要解决这些问题,它提供一个标准的构件框架,能使 不同的厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。 该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。 面向对象的中间件技术的目标就是为软件用户及开发者提供一种应用级 的即插即用的互操作性,就像现在使用集成块和扩展板一样。有关对象 中间件的标准相继问世,像o m g 组织的c o r b a 、m i c r o s o f t 的c o m 以 及s u n 公司的j 2 e e 等,这些标准都极大地促进了对象中间件技术的发 展。 1 3 3 消息中间件 消息中间件作为一个中间软件,为分布式企业应用系统中创建、发 送、接收和阅读消息提供了一套可靠通用的方法。消息中间件使异步电 子通信迅速可靠,并确保消息的传递,接收通知和交易控制。 消息中间件的核心就是提出了目的地对象( d e s t i n a t i o n ) 的概念, 包括队列( q u e u e ) 和主题( t o p i c ) 。消息客户发送消息到消息中间件上, 消息中间件接收并依次转发到合适的消息接收者上。 消息中间件可以既支持同步方式,又支持异步方式,可以很好地适 5 - 第一章研发背景概述 用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息 中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统 故障时可以保证消息的正常传输,因而在过去的两年里增长迅速。消息 中间件技术可以分为两类:点到点方式和发布订阅方式。点到点方式建 立起消息收发的一一对应关系,而发行订阅方式可以指定哪种类型的用 户可以接收哪种类型的消息。发布订阅方式由于更加智能有效,事实上 已成为异步中问件的非正式标准。 消息中间件具有以下一些基本特点: 1 ) 可靠消息发送。应用程序发送消息时,消息发送者和接收者不一 定要求同时在线,消息中间件可以确保消息接收者在吊线的情况下消息 不会丢失。 2 ) 异步通信。消息中间件允许消息发送者发送消息后继续进行其它 工作,而不必等待接收者的响应。 3 ) 交易支持。消息中间件提供了对交易的支持,同时也经常整合在 交易系统中。 4 ) 一次发送,依次接收。消息中间件确保消息可以发送且仅发送一 次,接收者可以按照消息发送的顺序依次接收。 5 ) 消息路由服务。消息通过该服务可以经过最短路径( 或最低代价) 到达消息目的地。系统管理员只需要定义每条路径的代价,消息中间件 就可以为消息计算出最低代价的路径。而且,消息路由服务可以避免单 点失效,因此非常适合用于不可靠的网络环境中。 消息中间件减少了开发跨平台和网络协议软件的复杂性。它屏蔽了 不同操作系统和网络协议的具体细节,通过提供a p i 实现可以提高系统 结构的灵活性以及实现异构平台的互操作。所以应用之间的消息通信都 通过消息服务器进行,新的应用程序可以不经过重新编译和重新连接就 可以部署到分布式系统中。这种消息通信的形式极大的降低了分布式系 统设计和实现的复杂性。 6 第一章研发背景概述 1 4j a v a 消息服务概述 1 4 1j m s 基本概念 j a v a 消息服务( j a v am e s s a g es e r v i c e ,j m s ) ,定义了j a v a 中访问消 m o m 的接口标准,是j 2 e e 体系结构中定义的标准服务之一。j m s 为j a v a 程序提供了一种创建、发送、接收和读取企业级消息系统消息的一般方 法,其目的是提供给消息系统客户一个固定的接口,而且与底层的消息 提供者无关。这样,客户端的应用程序可以在不同的机器和操作系统中 移植,而且能在不同的消息系统产品之间转移。j m s 客户端都是建立在 j a v a 技术上的,从而也能使用其它j a v aa p i ,如j d b c 数据库连接,使 用j a v ab e a n 组件模型,j d n l 名字服务,j t a 客户端交易处理控制以及 j 2 s e 和j 2 e ea p i 来实现企业级应用服务程序。 j m s 定义的消息可以是请求、报告或包含了两个不同应用间需要协调 信息的事件。消息机制提供了一个抽象层,使应用代码与目标系统实现细 节分离。j m s 规定了m o m 的一个相对丰富的形式。它支持多种单向( 异步) 消息发送方式和双向( 请求应答) 方式。消息发送可以是快速的但是没有那 么可靠,或是慢一点但是更可靠。j m s 甚至引入了一种以前非同寻常的特 点可靠订阅,”它允许一个应用程序暂时离线一段时间而后在它再次上 线的时候继续后来的消息发送循环。使用j m s 标准真正的好处在于: 提高开发者的技能( 减少培训费用) 允许对一个m o m 的开发和对另一个m o m 的复用 允许一个应用程序包能够相对容易的在个拥有广泛种类的 m o m 环境中被使用 1 4 2 j m s 和其它企业级j a v aa p i 的关系 1 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) j m s 客户端可以使p 日j d b c 接口,可以将j d b c 和j m s 包含在一个交 易里。这种包含可以在e j b 里,也可以直接调用j t a f j a v at r a n s a c t i o na p i ) 接口实现。 7 第一章研发背景概述 1 4j a v a 消息服务概述 1 4 1j m s 基本概念 j a v a 消息服务( j a v am e s s a g es e r v i c e ,j m s ) ,定义了j a v a 中访问消 m o m 的接口标准,是j 2 e e 体系结构中定义的标准服务之一。j m s 为j a v a 程序提供了一种创建、发送、接收和读取企业级消息系统消息的一般方 法,其目的是提供给消息系统客户一个固定的接口,而且与底层的消息 提供者无关。这样,客户端的应用程序可以在不同的机器和操作系统中 移植,而且能在不同的消息系统产品之间转移。j m s 客户端都是建立在 j a v a 技术上的,从而也能使用其它j a v aa p i ,如j d b c 数据库连接,使 用j a v ab e a n 组件模型,j d n l 名字服务,j t a 客户端交易处理控制以及 j 2 s e 和j 2 e ea p i 来实现企业级应用服务程序。 j m s 定义的消息可以是请求、报告或包含了两个不同应用间需要协调 信息的事件。消息机制提供了一个抽象层,使应用代码与目标系统实现细 节分离。j m s 规定了m o m 的一个相对丰富的形式。它支持多种单向( 异步) 消息发送方式和双向( 请求应答) 方式。消息发送可以是快速的但是没有那 么可靠,或是慢一点但是更可靠。j m s 甚至引入了一种以前非同寻常的特 点可靠订阅,”它允许一个应用程序暂时离线一段时间而后在它再次上 线的时候继续后来的消息发送循环。使用j m s 标准真正的好处在于: 提高开发者的技能( 减少培训费用) 允许对一个m o m 的开发和对另一个m o m 的复用 允许一个应用程序包能够相对容易的在个拥有广泛种类的 m o m 环境中被使用 1 4 2 j m s 和其它企业级j a v aa p i 的关系 1 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) j m s 客户端可以使p 日j d b c 接口,可以将j d b c 和j m s 包含在一个交 易里。这种包含可以在e j b 里,也可以直接调用j t a f j a v at r a n s a c t i o na p i ) 接口实现。 7 第一章研发背景概述 2 ja v a b e a n s j a v a b e a n s 可以用j m ss e s s i o n 发送接收消息。 3 e j b ( e n t e r p r i s ej a v a b e a n s ) 对于e j b 组件来说,j m s 和j d b c 等其它j a v aa p i 一样,是一个很重 要的企业级服务资源。e j b l 1 规范定义客户端只能同步调用e j b ,而2 0 版本的规范定义消息驱动b e a n ( m e s s a g e d r i v e rb e a n ,m d b ) ,通过一个 j m s 客户端发消息异步调用e j b 组件。 4 j t a ( j a v at r a n s a c t i o na p i ) j m s 客户端可以用j t a 启动交易。j m sp r o v i d e r 可以选择是否支持 分布式交易。 5 j t s ( j a v at r a n s a c t i o ns e r v i c e ) j m s 可以和j t s 一起组成一个分布式交易,如将发送接收消息和更新 数据库包含在一个交易里。当j m s 客户运行在个应用服务器中时( 如在 e j b 服务器中) ,分布式交易就应当被自动地处理。 6 j n d i ( j a v an a m i n g a n d d i r e c t o r yi n t e r f a c e ) j m s 客户端通过j n d i 查找或调用j m s 中的管理对象。 1 4 3j m s 在国内外的研究概况 本课题在研究和设计的时候,j m s 的最新版本是1 o 2 。这时,许多 国内外许多公司和机构都对其进行了大量的研究,也有很多著名公司实 现的j m s 产品可供我们选择。但是在撰写本文的时候,s u n 公司已经 推出了更新的j m s l 1 版本。 j m s1 0 2 定义了两种类型的消息传递域( 它们是相互独立的) ,即 点到点和发布订阅。但是j m s l 1 版本统一了这两个域。有了j m s1 1 , 客户机就不再必须专门针对这个或那个域进行实现了。相反,j m s 客户 机可以实现为能与来自任一域的目标一起工作。这极大地简化了j m s a p i ,并为开发者创建更通用、重用性更好的消息传递代码提供了机会。 一旦有实现j m s1 1 的j m s 提供程序和j 2 e e 容器可供使用,j m s 客户机代码的开发者就应该可以开始在他们的新代码中使用版本1 1 的a p i ,并且也可以从将它们现有的j m s1 0 2 代码移植到新的a p i - 8 第一章研发背景概述 2 ja v a b e a n s j a v a b e a n s 可以用j m ss e s s i o n 发送接收消息。 3 e j b ( e n t e r p r i s ej a v a b e a n s ) 对于e j b 组件来说,j m s 和j d b c 等其它j a v aa p i 一样,是一个很重 要的企业级服务资源。e j b l 1 规范定义客户端只能同步调用e j b ,而2 0 版本的规范定义消息驱动b e a n ( m e s s a g e d r i v e rb e a n ,m d b ) ,通过一个 j m s 客户端发消息异步调用e j b 组件。 4 j t a ( j a v at r a n s a c t i o na p i ) j m s 客户端可以用j t a 启动交易。j m sp r o v i d e r 可以选择是否支持 分布式交易。 5 j t s ( j a v at r a n s a c t i o ns e r v i c e ) j m s 可以和j t s 一起组成一个分布式交易,如将发送接收消息和更新 数据库包含在一个交易里。当j m s 客户运行在个应用服务器中时( 如在 e j b 服务器中) ,分布式交易就应当被自动地处理。 6 j n d i ( j a v an a m i n g a n d d i r e c t o r yi n t e r f a c e ) j m s 客户端通过j n d i 查找或调用j m s 中的管理对象。 1 4 3j m s 在国内外的研究概况 本课题在研究和设计的时候,j m s 的最新版本是1 o 2 。这时,许多 国内外许多公司和机构都对其进行了大量的研究,也有很多著名公司实 现的j m s 产品可供我们选择。但是在撰写本文的时候,s u n 公司已经 推出了更新的j m s l 1 版本。 j m s1 0 2 定义了两种类型的消息传递域( 它们是相互独立的) ,即 点到点和发布订阅。但是j m s l 1 版本统一了这两个域。有了j m s1 1 , 客户机就不再必须专门针对这个或那个域进行实现了。相反,j m s 客户 机可以实现为能与来自任一域的目标一起工作。这极大地简化了j m s a p i ,并为开发者创建更通用、重用性更好的消息传递代码提供了机会。 一旦有实现j m s1 1 的j m s 提供程序和j 2 e e 容器可供使用,j m s 客户机代码的开发者就应该可以开始在他们的新代码中使用版本1 1 的a p i ,并且也可以从将它们现有的j m s1 0 2 代码移植到新的a p i - 8 第一章研发背景概述 中受益。 在j m s1 0 2 中,三个通道接口一目的地对象、队列和主题一 不幸地造成了a p i 中的接口数量增加到三倍的后果。为了发送或接收 消息,客户机使用连接生成器来获得一个连接,客户机用这个连接来创 建会话并获得所期望的队列和主题上的消息生产者和消费者。唯一的问 题是每种目标都有它自己的生成器、连接、会话、生产者和消费者接口。 在上述二十七个接口中,只有六个公共接口是发送和接收消息所真正需 要的。队列和主题有时对于区别点到点方式和发布,订阅方式而言很有 用。其它十个接口和九个x a 接口中的至少六个实际上是不需要的,至 少对于编写客户机代码来说是不需要的。 j m s1 1 中的主要变化是添加了新的a p i ,以支持能同时与点对点 或发布订阅一起工作的客户机代码。最新的发行版在公共接口中添加 了一些方法,从而使主题和主题扩展具有多态性。这些新的a p i 使得开 发者能够编写重用性好得多的j m s 客户机代码。j m s 客户机代码只是访 问并使用目标而无须知道哪些目标是队列,哪些目标是主题。被编写用 来访问队列的代码还可以不加修改就以相同方式被重用来访问主题,反 之亦然。这对于j m s1 0 2 来说是不可能的。因为公共接口现在几乎能 够执行它们的特定于域的扩展所能做的所有相同任务,所以特定于域的 子接口实际上已不再需要。 将消息传递域统一起来的微妙但重要的结果是,队列和主题现在可 以通过同一个会话( 从而在同一个交易中) 进行访问。在j m s1 0 2 中, q u e u e s e s s i o n 可以访问不止一个队列,t o p i c s e s s i o n 可以访问多个主 题,但单个会话不能既访问队列又访问主题。因为会话管理着交易,所 以单个交易不能既用来控制队列,又用来控制主题。在j m s1 1 中,不 但单个s e s s i o n 可以访问任一类型的目的地对象,而且单个会话实例可 以用来操纵一个或多个队列以及一个或多个主题,一切都在单个交易中 进行。这意味着单个会话可以创建队列和主题中的生产者,然后使用单 个交易来同时发送队列和主题中的消息。因为单个交易跨越两个目标, 所以,要么队列和主题的消息都得到发送,要么都未得到发送。类似地, 单个交易可以用来接收队列中的消息并将消息发送到主题上。 j m s 1 1 中统一的a p i 使得j m s 客户机代码更简单、更易于维 护,重用性也更好。同时对新规范j m s l 1 的研究将给课题的后续工作 9 第一章研发背景概述 也打下了良好的基础。 1 4 4 主要j m s 产品分析 1 j m q l 1 j m q ( j a v am e s s a g eq u e u e ) 是s u n 公司实现j m s 产品,由纯j a v a 语言开发而成,支持点到点和发布订阅两种消息模式。j m q 提供了一 套简单、有效、灵活的企业级消息解决方案,有以下一些基本特征: 支持w i n d o w s 操作系统( n t 和2 0 0 0 ) 和u n i x 操作系统( s o l a r i s s p a r c ) ,支持j d k l 3 兼容j m s 规范1 0 2 版本,支持点到点消息模式、发布订阅消息 模式以及连接认证模式 j m q 提供者使用j n d i 访问j m s 管理对象。它支持l d a p 和文 件系统服务提供者。j m q 使用命令行方式配置管理对象 j m q 提供远程管理消息路由的工具以及调试、监控客户应用程 序的工具 2 s o n i c m q s o n i e m q 是p r o g r e s s 公司实现的j m s 产品。除了提供基本的消息服 务之外,s o n i c m q 也提供了很多额外的企业级应用开发工具包。s o n i c m q 具有以下一些基本特征: 提供j m s 规范的完全实现,支持点到点消息模式和发布订阅消 息模式 支持层次安全管理 确保消息在i n t e r n e t 上的持久发送 内建x m l 分析器;也提供了一个名为x m l m e s s a g e 接口,该接 口继承t e x t m e s s a g e 标准接i :1 动态路由构架( d r a ) 使企业能够通过单个消息服务器动态的交 换消息 s o n i c m q 支持消息服务器的集群,确保企业级的7 天2 4 小时不 间断运行 1 0 第一章研发背景概述 也打下了良好的基础。 1 4 4 主要j m s 产品分析 1 j m q l 1 j m q ( j a v am e s s a g eq u e u e ) 是s u n 公司实现j m s 产品,由纯j a v a 语言开发而成,支持点到点和发布订阅两种消息模式。j m q 提供了一 套简单、有效、灵活的企业级消息解决方案,有以下一些基本特征: 支持w i n d o w s 操作系统( n t 和2 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时装店入门知识培训方案课件
- 合同管理模板包含风险评估与条款审查功能
- 蓝色科技人工智能日常运用
- 人教版三年级上册第六单元6.1.2《几分之几》课时练(含答案)
- 绿色简约手绘环保公益讲座
- 商业照明设计与安装合同书
- 如何理解诗经中的情感表达:高中诗歌教学计划
- 纪念白求恩李红玲课件
- 企业品牌推广与宣传方案制作工具包
- 2025年软件测试设计师全国计算机技术与软件专业技术资格(水平)考试试卷
- 2025办公室租赁合同简易范本下载
- 定向增发业务培训
- 2025年内河船员考试(船舶辅机与电气2203·一类三管轮)历年参考题库含答案详解(5套)
- 农村土地确权课件
- 餐饮店长转正汇报
- 2025年贵州省中考语文试卷(含答案与解析)
- 2025年昆山校医考试题库
- 2024年黔西南州畅达交通建设运输有限责任公司招聘考试真题
- 2025至2030中国纤维素纳米纤维(CNF)行业项目调研及市场前景预测评估报告
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 公共场所卫生管理员安全教育培训手册
评论
0/150
提交评论