(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的异构系统组件间消息服务模型的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于x m l 的异构系统组件问消息服务模型的设计与实现摘要 摘要 随着我国国家信息化工程的建设发展,各行各业都建立了各自的信息处理系 统,但是,目前企事业等单位现有的软件往往由不同的部门开发,软件之间相互 独立,自成系统,数据标准不一致,数据难以共享。这些系统相互之间需要进行 数据交换或信息交流,从而在客观上就存在不同系统的集成的要求。目前在应用 系统集成中采用的技术大体可以分为两类:基于远程对象调用的分布式计算技术 和基于消息机制的集成技术。 本文从企业信息化建设过程中经常遇到的上述现实问题出发,通过目前对遗 留系统集成采用的两种技术的分析,提出了一种消息服务模型基于x m l 的异 构系统组件间的消息服务模型,文中命名为j a v am e s s a g i n gb r i d g e ( j a v a 消息桥, 文中简称j m b ) 。j m b 模型采用x m l 作为中间数据格式,在消息中间件和应用服 务器之间建立一个“桥”,利用“桥”来实现一个数据传输、交换平台,屏蔽诸 如硬件体系结构、操作系统平台和不同网络结构的异构性。文中设计并实现了模 型的三个组件:消息侦听组件、消息服务组件和业务逻辑调用组件。本文最后给 出了模型的应用实例银行代收养路费公路端消息服务系统。 j m b 最大的特点在于它并不是利用已有的分布式计算技术来实现其功能,它 使用j a v a 语言开发,所以凡是j a v a 语言所具有的平台无关性等优点它都具有,可以 用来实现不同供应商的消息中间件和应用服务器之间或不同的消息中间件之间的 消息传递机制。还可以解决异构的分布式中间件之间的互操作问题。 相比传统消息传送技术如r m i 来说,j i v i b 促进了分布式计算环境中各个组件 之间可靠的异步通信,可以用来构建松散耦合的消息系统,不仅可以简化企业的 应用开发过程,对企业应用系统今后的升级改造、功能扩充都有重要意义。 关键字:异构系统集成,消息服务,中间件,x m l ,e j b 作者:孙丽萍 指导老师:徐汀荣 d e s i g ,n a n d i m p 1 e m e n t a t i o n o 。f m e s s a g e s e r v i 。c e m o d e 1 f o r t h e h e t e r o g e n e o u s c o m p o n e n t s b a s e d o n x m l a b s t r a c t d e s i g na n di m p l e m e n t a t i o no fm e s s a g e s e r v i c em o d e l f o rt h eh e t e r o g e n e o u sc o m p o n e n t sb a s e do nx m l a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n to fc o m p u t e ra n di n f o r m a t i o nt e c h n o l o g i e s ,t h e i n f o r m a t i o np r o c e s s i n gs y s t e m sa n da p p l i c a t i o n se x p a n de v e r y w h e r e h o w e v e r , t h e p r e s e n td e v e l o p m e n to fa p p l i c a t i o ns o f t w a r ei sa l w a y su n d e rt h ec h a r g eo fd i f f e r e n t b r a n c h e s ,s ot h a tt h ei n t e g r a t i o nf o rs o f t w a r ei sb e c o m i n gd i f f i c u l t i ti si m p o r t a n ta n d n e c e s s a r yf o rd i f f e r e n ts y s t e m st oe x c h a n g ea n ds h a r et h ed a t a t h ep r e s e n tt w o t e c h n o l o g i e so fi n t e g r a t i o na r ed i s t r i b u t e dc o m p u t i n gb a s e do nr e m o t eo b j e c t sc a l la n d m e s s a g es e r v i c e t h ed i s s e r t a t i o nf o c u s e so nt h ea n a l y s i sa n di m p l e m e n t a t i o no ft h em e s s a g es e r v i c e m e c h a n i s m t h em a i nc o n t r i b u t i o n sa r es u m m a r i z e da st h ef o l l o w i n g f i r s t l y , t h em e s s a g es e r v i c em o d e ln a m e dj m b ( j a v am e s s a g i n gb r i d g e ) b e t w e e n t h eh e t e r o g e n e o u sc o m p o n e n t sb a s e do nx m li sp r o p o s e d ,w h i c he s t a b l i s h e sab r i d g e b e t w e e nt h em e s s a g em i d d l e w a r e sa n da p p l i c a t i o ns e v e r st ot r a n s p o r td a t aa n de x c h a n g e p l a t f o r m s e c o n d l y , t h ej m bm o d e le m p l o y sx m l a st h em i d d l ed a t as p e c i f i c a t i o n t h e t h r e ec o m p o n e n t so ft h em o d e la r ed e s c r i b e di nd e t a i l ,w h i c ha r em e s s a g el i s t e n e r , m e s s a g es e r v i c ea n db u s i n e s sl o g i c t h i r d l y , t h ea p p l i c a t i o no ft h em o d e li sp r e s e n t e d j m bi s u s e dt od e v e l o pt h e i n t e r f a c ei nb a n kc o s t - a c c e p t i n gs y s t e m t h ea d v a n t a g eo ft h ej m bi st h et r a n s f e rb e t w e e nd i f f e r e n tp r o v i d e r s m e s s a g e m i d d l e w a r e sa n da p p l i c a t i o ns e r v e r s ,o rb e t w e e nd i f f e r e n tm e s s a g em i d d l e w a r e s t h e m o d e lu s e sj a v a ,a n dh a st h ea d v a n t a g e so fp l a t f o r m i n d e p e n d e n t ,c o m p a r i n gw i t ht h e t r a d i t i o n a lm e s s a g es e n d i n gt e c h n o l o g i e s ,s u c ha sr m i ,t h em o d e lj m br e a l i z e st h e c o m m u n i c a t i o n sa n do p e r a t i o n so fh e t e r o g e n e o u sc o m p o n e n t si nd i s t r i b u t e dc o m p u t i n g t h em o d e lj m bc a r lb ee m p l o y e dt oc o n s t r u c tt h el o o s e c o m b i n e dm e s s a g es y s t e m s , w h i c h m a k e st h ed e v e l o p m e n ts i m p l e k e yw o r d s :h e t e r o g e n e o u ss y s t e mi n t e g r a t i o n ,m e s s a g es e r v i c e ,m i d d l e w a r e , x m l ,e j b w f i r e nb ys u nl i p i n g s u p e r v i s e db y x i ut i n g r o n g y9 5 7 1 7 9 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明;所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已 经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书 而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确 方式标明。本人承担本声明的法律责任。 研究生签名: 塑! 豳i 至日期:2 0 0 5 釜,口只二7 自 研究生签名:刊、月b 许 日期:耸,口只2 7 自 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、 中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电子文 档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以 公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权苏卅大 学学位办办理。 研究生签名:塾! 亟叠日 导师签名:彳氇毛日 期:2 塑兰生! ! 旦翌目 期 生:f ! 兰仝 捧干x m l 的异构系统组件问消息服务模型的设汁与实现 第一章前言 第一章前言 1 1 信息化工程建设引发系统集成问题 随着我国国家信息化工程的建设发展,各行各业都建立了各自的信息处理系 统,但是在实施信息化的过程中,经常会出现“重视硬件轻视软件,软件开发严 重滞后”等问题。目前,企事业等单位现有的软件往往由不同的部门开发,软件 之间相互独立,自成系统,数据标准不一致,数据难以共享,形成了企业中的“信 息孤岛”。同时软件开发平台很多,应用水平参差不齐,往往同一类软件也有多个 不同的版本,互不兼容,低水平重复开发现象严重。此外,由于许多软件在扩充 性,开放性方面设计的欠缺,使其对技术发展以及应用需求变化的适应性较差, 造成一些软件不能得到长期稳定的应用,且难以进行信息的交流与沟通。 这些遗留系统在实际工作中发挥着重要作用,经过多年的使用功能日趋完善, 性能也相对稳定,特别是现有的工作人员已经完全适应其工作方式。如果对其进 行升级或完全重新开发,成本是非常昂贵的。在有些情况也是不可能的。 目前,各个单位日常管理中使用的i t 系统往往多于一个,特别是一些应用计 算机进行管理的历史比较长的部门更是如此。这些系统相互之间需要进行数据交 换或信息交流,同时随着各个领域信息化的发展,在部门之间,部门与上级管理 部门之间进行的数据交换就越来越多,越来越频繁,从而在客观上就存在不同系 统的集成的要求。 1 2 异构系统集成技术现状分析 遗留系统集成一直是信息系统集成的重点和难点,其研究的重点是如何实现 在现有的通信手段和遗留应用系统的基础上,结合最新的软件技术和网络技术, 开发适应和促进企事业单位进一步发展的有效集成。 最初在处理遗留系统时,精力主要集中在读懂源代码,提取代码核心功能之 后重新改写,这是一种被称为系统迁移的方法。采取这种方法的代价是高昂的, 在有些时候也是不可能进行的,例如,在许多情况下,获取源代码是十分困难的。 随着面向对象组件技术的发展,遗留系统处理的重点也从迁移转向了集成。 目前异构系统集成类型可以分为两类:一个单位内部的应用系统的集成和不 同单位间的应用系统集成。两者无论从集成的程度、技术、成本上看,还是从管 赫于x m l 的异构系统组件问消息服务模型的设计与实现 第一章前言 理、信息安全的需求上看,都存在很大的差异【1 1 。从集成的程度上看,前者可以进 行较高程度的集成,因为它们同属于一个单位或一个管理辖区,能够进行业务过 程的重组。从系统间的耦合度讲,前者需要实现为一种紧耦合的集成形式,以得 到较高的效率,而后者必须实现为一种松耦合的集成形式,这是由于各个子系统 分别归属不同的所有者,采用的技术也各不相同。另外从系统集成技术上看,集 成度要求的不同必定带来对集成技术要求的不同,对于前者多采用面向数据的集 成方式,而后者多使用面向对象的集成技术。 在进行应用系统集成时,需要采用不同的工具和技术,特别是采用软件复用 技术、构件技术、分布式对象技术和w e b 技术,来对不同应用逻辑进行集成。同 时成功的组织应用集成也需要严格遵照相应标准。目前在应用系统集成中采用的 技术大体可以分为两类:基于远程对象调用的分布式计算技术和基于消息机制的 集成技术【2 j 。 l 、基于分布式对象的分布式计算技术 基于分布式计算( d i s t r i b u t e dc o m p u t i n g ) 是近二十年来影响计算机技术发 展的最活跃因素之一。分布式对象技术是现阶段的主要代表,充分利用业已成熟 的面向对象( o b j e c t o r i e n t e d ) 技术,解决了从集中计算模式向客户服务器模式转 化过程中遇到的许多问题口1 。 分布式对象技术采用面向对象的多层客户h e 务器模式,该模式将分布在网络 上的资源用对象的方式来组织,每个对象都有定义清晰的访问接口。创建和维护 分布式对象实体的应用称为服务器,按照接口访问的应用称为客户。服务器中的 分布式对象不仅能够被访问,而且自身也可作为其它对象的客户。目前基于分布 式对象的成熟的体系结构有:公共对象请求代理体系结构c o r b a ( c o m m o n o b j e c tr e q u e s to b j e c t a r c h i t e c t u r e ) 和m i c r o s o f t 的分布式组件对象模型( d c o m ) 以及e j b 技术【4 】。 公共对象请求代理体系结构 公共对象请求代理体系结构c o r b a ( c o m m o no b j e c tr r q u e s to b j e c t a r c h i t e c t u r e ) 是由o m g ( o b j e c tm a n a g e m e n tg r o u p ) 组织制定的一个工业规 范。c o r b a 是一个异构平台下的语言无关的对象互操作模型,即,c o r b a 的设 计是独立于语言和平台的,可以在任何平台上运行,可以定位在网络的任何地方, 能够使用任何支持i d l 映射的语言【5 】。其支持异质系统的主要特性是:位置透明、 服务器无关、语言无关、实现无关、体系结构无关、操作系统无关、协议无关和 基于x m l 的异构系统组件问消息服务模型的砹计与实现 第一章前言 传输无关。 分布式组件对象模型 组件对象模型( c o m ) 是m i c r o s o f t 的组件软件方案。c o m 是一个标准,也 是一个基于对象的编程模型,旨在推动基于组件的互操作性 6 】。m i c r o s o f t 的分布 式c o m ( d c o m ) 扩展了组件对象的模型技术,使其能够支持在局域网、广域网 甚至i n t e m e t 上不同计算机的对象之间的通讯使用d c o m ,你的应用程序就可以在 位置上达到分布性,从而满足你的客户和应用需求,当客户进程和组件位于不同 的机器时,d c o m 仅仅只是用网络协议来代替本地进程之间的通讯。无论客户还 是组件都不会知道连接它们的线路比以前长了许多。 d c o m 本身提供了分布式系统所需的各种支持,它把与环境有关的要素同组 件代码隔离开来,因此,可以说,d c o m 建立了分布式应用系统的基础结构。 e n t e r p r i s ej a v a b e a n ( e j b ) e j b 是j 2 e e 的核心技术,e n t e r p r i s ej a v a b e a n 规范定义了开发和部署基于事 务性、分布式对象应用程序的服务器端软件组件的体系结构p 1 。企业组织可以构建 它们自己的组件,或从第三方供应商购买组件。这些服务器端组件称作e n t e r p r i s e b e a n ,它们是e n t e r p r i s ej a v a b e a n 容器中驻留的分布式对象,为分布在网络中的 客户机提供远程服务。 e j b 技术的解决方案是将共享数据和商务逻辑集成到一套e j b 组件中,以供 不同类型的客户端f 如s e r v l e t h t m l 和a p p l i c a t i o n ) 访问。e j b 组件控制着对后台 数据的访问,并管理着当前事务以及数据库的内部锁定。通过去除应用中的重复 代码,减少编写数据库控制逻辑的工作,这种方案降低了总的编程量。 简单地说,适合使用e j b 技术的应用具有如下特点【3 1 : 1 ) 具有共享相同商务逻辑的多种类型客户端 2 ) 使用了事务处理 3 ) 需要通过c m p 组件来实现与对象有关的映射 4 ) 需要方法级的安全性 不同分布式对象技术的比较 从设计目标和技术思想上来看,c o r b a 与d c o m 非常相似。两者的目标都 是基于对象的软件构件在分布异构环境中可重用、可移植和可互操作。两者都使 用接口来封装对象的实现。但d c o m 和c o r b a 也存在许多差异吼 首先,d c o m 中的对象是实现一组接口的类的实例,c o r b a 用i d l 语言来 熊于x m l 的异构系统l l i 件问消息服务模型的设计与实现第一章前言 描述接口,并使用i d l 编译器来生成s t u b 和s k e l e t o n ,由它们来完成底层通讯。 其次,d c o m 是在c o m 的基础上发展起来的,它承载了c o m 的技术路线, 在w i n d o w s 应用的集成方面有着得天独厚的优势,但d c o m 没有提供自动的容 错和负载平衡机制,其安全机制也不尽人意,在分布式应用中受到了一定的限制。 而c o r b a 作为一个由多家厂商开发的技术规范,其结构和概念都比较完善,在 跨平台、跨语言方面有很强的能力。然而,各种o r b 产品在具体实现细节上各不 相同,并且各产品的非标准特征给各o r b 之间的互操作也带来了难度。另外, c o r b a 也缺乏易于使用的开发工具。 在功能和技术上,d c o m 和c o r b a 类似,都有接口定义语言( 1 d l ) ,都提 供持久性、安全和事务方面的服务。但它们有一个显著的区别,即c o r b a 是 一个开放的规范,而d c o m 不是。两者的特点决定了c o r b a 和d c o m 适用于 不同的方面。在微软技术体系中,d c o m 应是最佳的选择。而在跨平台系统中, c o r b a 应是较好的选择。 相比d c o m 和c o r b a ,e j b 是较晚出现的分布式对象技术。在某些方面, 它既是这些技术的竞争者,同时也是合作者【t o 。c o r b a ( 公共对象请求中介体系 结构) 在解决供应商垄断问题方面取得了成功。不幸的是,虽然c o r b a 根本改 变了分布式计算,但经验证编程模块过于复杂,而且供应商不能一致地遵守规范。 e j b 引入了比c o r b a 更简单的编程模块,它可以让开发人员创建可移植分布式 组件,称作e n t e r p r i s eb e a n 。e j b 编程模块可以让开发人员创建安全的、事务性 的和持久的商业对象f e n t e r p r i s eb e a n ) ,该对象使用非常简单的编程模块和声明属 性。 2 、基于消息的分布式计算技术 相对于基于分布式对象的计算技术来说,基于消息机制的计算技术通常用于 构造一个松散耦合的系统,允许各个应用程序之间松散耦合,在编译期间不用知 道对方的存在,动态发现应用程序,可以快速、方便的增加用户数目 1 2 1 。它还可 以平衡负载,运用负载平衡算法,将消息发送到负载最小的服务器上,还可以是 服务器自己请求获得消息,从而对分配到的消息进行处理。基于消息机制还可以 保证一些重要的紧急的用户发送的请求可以悠闲地得到响应。通过异步服务器排 列队列,设置优先级,对多个请求进行排序,使优先级高地消息优先得到处理。 而且,基于消息地机制还可以支持并行处理,使多个消息同时被处理,就像分布 式系统中启用了多个线程一样。目前在业界被广泛应用地基于消息地数据交换技 基于x m l 的异构系统组件问消息服井模型的设计与实现 第一章前言 术有: 基于e d i f a c t 标准的数据交换技术 电子数据交换( e d i ) 是将商业或行政事务按照公认的标准生成结构化的数据 报文格式在计算机之间进行电子传输和自动处理。其特点是用标准报文格式表示 的商务信息在计算机之间传输,并允许接受方执行预定的业务。通过e d 标准, 可以使各组织之间的不同文件格式,形成公认的标准数据格式,从而实现彼此之 间文件交换的目的。e d i 的应用离不开结构化的信息形式,即e d i 标准。e d i 标 准主要由三个要素组成:数据元、数据段和标准报文格式【i ”。 e d i 系统通常由e d i 客户端系统和e d i 传输系统组成,其中客户端系统包括 e d i 应用系统和文本格式转换系统,传输系统包括计算机通讯网络和e d i 交换平 台【1 4 l 。 其中e d i 应用系统是由满足应用需求,并能产生或处理与其它e d i 应用系统 进行相互传递e d i 单拒的计算机信息系统,是e d i 应用的基础。 格式转换系统主要负责不同格式报文之间的格式转换的映射软件,包括用于 用户端报文与平面文件之间的格式转换的映射软件,以及用于平面文件与e d i 标 准报文之间的格式转换的翻译软件。 e d i 传输系统包括计算机通讯网络和e d i 交换平台两部分。e d i 交换平台是 e d i 单拒传输的公共平台。e d i 的核心是其标准报文即消息格式。 基于x m l 的数据交换技术。 w 3 c 组织于1 9 9 8 年发布了) ( i l ( 可扩展标记语言) ,具有不受操作系统限制、 良好的可扩展性、传输内容与传输方式相隔离的优异特性而在全世界范围内得到 了越来越多的认可,成为众多商家与用户广泛开发并采用其作为消息封装的技术。【l 5 】 目前,基于x m l 的数据交换标准有: 1 ) a r i b a 的c x m l 2 ) 微软的b i z 砌k 3 ) s o a p 技术 4 ) e b x m l 不同消息机制的比较 e d i 的优点【1 7 1 ,一是推行时间比较长,已经有不少成功案例,二是文档格式 要求严格。但是其缺点也非常明显。首先,e d i 中定义了严格的事务集合。这些事 务集合对数据的内容、结构和处理需求进行了阐述,即在事务集合中嵌入了商务 基于x m l 的异掏系统组件问消息服务模型的世汁与实现 第一章前言 规则。这种固定的事务集合和固定的商务规则使得e d i 非常不灵活。其次,实现 e d i 需要高额的费用,尤其对中小型单位。x m l 优于e d i 的主要方面是:易于处 理的文档语法。x m l 解吸器能自动校核x m l 文档的语法,同时x m l 文档能够转 化为文档的对象模型( d o m ) 树或事件流及其它编程对象,便于编程处理:软件 工具齐全,x m l 具有良好的工具支持。 3 、系统集成技术的比较 从各种分布式技术以及组件模型的发展过程可以清楚的看到,选择使用 c o m d c o m ,或者e j b 等基于分布式对象的技术来开发分布式应用系统时,开发 人员都必须选择使用一种组件模型,再来决定如何集成系统中的各个不同的元素。 1 8 】 因为每一个组件模型都使用了自己的数据封包方式以及通信协议,因此当不同的 组件模型想要集成到一起的时候,无法克服的技术难题就在于了解对方的数据封 包格式和使用的通信协议。很显然随着网络的不断进步以及在更大规模上集成各 种不同的子系统的需求不断增加,使用基于分布式对象的技术无法满足未来对系 统集成的要求。 而基于消息的分布式集成技术则并不要求集成在一起的异构系统必须进行紧 密耦合,它允许各个应用程序之间松散耦合,在编译期间不用知道对方的存在, 动态发现应用程序,并且系统的可扩展性非常好,可以快速、方便地增加用户数 目。同时采用基于消息的分布式集成技术不要求对遗留系统进行较大的改动,因 此在系统开发的成本方面也具有巨大的优势。 1 3 本文的工作 现有的分布式组件构件都存在一个共同的不足,它们要求客户端与系统提供 的服务之间必须紧密耦合,即要求是一个同类基本结构。而i n t e m e t 上的用户相互 之间的联系比较松散,我们根本无法保证远程通信管道的另一端,具备所有我们 需要的基本结构,对于它使用的操作系统、对象模型或编程语言,我们可能一无 所知,这就限制了分布式计算技术与迅速发展的i n t e m e t 互相融合;其次,对象在 实现远程调用时,无法通过现有的某种协议( 如h t t p ,s m t p ) 扩展到互联网上, 这就限制了更多的系统纳入到这种分布式计算环境中,以至于难以在i n t e m e t 上提 供完整的服务;此外,传统系统应变能力较差,如果一端的执行机制发生变化, 另一端便会崩溃,譬如服务器应用程序的接口发生更改,那么客户端必须做相应 的更改。 基于x m l 的异构系统组件问消息服务模型的设计与实现 第一章前言 因此,如果我们要构造一个系统将各个企事单位相关机构的孤立信息系统通 过i n t e m e t 联系起来,能够通过i n t e m e t 协同工作,那么这个系统必定是要基于松散 耦合分布式架构。另外,许多企业应用系统,面临需要增加消息服务的功能,必 须选择一个适用于不同平台的消息服务产品。并且希望,在原有系统上做最小的 改动就可以满足要求,将新的应用与现有的投资连接起来。 通过以上分析研究可以看出,x m l 具有可扩展性和平台独立性的优点,而消 息服务可以构建松散耦合分布式架构,所以本人认为一个基于x m l 的消息服务系 统是一个比较好的解决方案。 目前存在的分布对象技术:o m g 的c o r b a ,m i c r o s o f t 的d c o m 和基于j a v a 的 e j b ,这些中间件本身是为了屏蔽诸如硬件体系结构、操作系统平台和不同网络结 构的异构性,并提供了支持分布式应用的相应服务,但基于不同中间件体系构造 的分布式计算环境,由于底层中间件部件往往是不兼容的,形成了新的更高层次 上的异构问题分布式中间件的异构性。 本文主要的工作并不是利用已有的分布式计算技术来构造一个松耦合系统, 而是完全自己设计实现了一种消息服务模型,在消息中间件和应用服务器之间建 立一个“桥”,利用“桥”可以实现一个数据传输、交换平台。它可以很好地解 决在实际应用中,一个快速增长的领域异构平台之间的互操作性。 本文设计和实现了一种用于消息服务的模型。我们给它一个名称叫做j a v a m e s s a g i n gb r i d g e ( j a v a 消息桥,后面简称j m b ) ,这其中有3 层含义: 1 、用j a v a 语言开发,所以凡是j a v a 语言所具有的平台无关性等优点它都具 有。 2 、用于转发两个消息提供者提供的消息,使用j m b ,将消息从一个消息提供 者的目的地( 目前只是针对队列) 移至另外一个消息提供者的目的地。 3 、当前服务器上的应用程序( 如w e g l o g i c 应用程序) ,需要与第三方消息提 供者( 如i b mm q s e r i e s ) 进行交互时,j m b 就可以承担这个角色,起到一个连接 桥的作用。 本文的内容主要包括以下几点: l 、异构系统集成关键技术的研究 2 、基于x m l 的消息服务模型j m b 的设计和实现 3 、j m b 消息服务模型在银行代收系统中的应用实例 基于x m l 的异构系统组件问消息服并模型的设计与实现第二章技术背景及相关概念 第二章技术背景及相关概念 设计实现j m b 涉及到较多的相关技术,本章就其中较为重要的技术规范进行 介绍,具体包括:x m l 的特点、x m l 文档的结构和e j b 组件服务以及消息发送 模式,最后对目前使用较多的消息中间件技术j m s 进行简单介绍。 2 1x m l 规范【1 9 1 1 、x m l 简介 可扩展标记语言x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 是由万维网协会( w 3 c ) 于1 9 9 8 年推出的一个超越h t m l 能力范围的新语言,是s g m l ( s t a n d a r dg e n e r a l m a r k u pl a n g u a g e ) 的一个重要分支。w 3 c 采取了简化s g m l 的策略,在s g m l 的基础上,去掉语法定义部分,适当简化d t d 部分,并增加了部分互联网的特殊 成分。x m l 提供了一种结构化的统一方法,用于描述和传递数据。x m l 维护了 用户接口与数据的分离,这使得x m l 不仅成为一种创建先进w e b 网页的语言, 而且可以被用于更加广义的数据传输。 2 、x m l 的特点 x m l 之所以能在几年内得到广泛欢迎和使用,正是因为x m l 本身众多的优点。 1 ) 可扩展性。x m l 允许不同的组织和个人都能够建立适合自己需要的标记 集,并且这个x m l 标记集可以迅速的投入使用。从而克服了h t m l 不具有扩展 性的缺点。 2 ) 内容与形式分离。在x m l 中,显示样式从数据文档中分离出来,放在样 式表单文件中,如果需要改动数据的表现方式,无需改动数据文档本身,只要改 动样式表单即可。在x m l 中数据搜索可以简单高效的进行,不必遍历整个x m l 文档,而只需找相关标记下的内容即可。 3 ) 内容独立性。x m l 可以脱离具体应用以一种统一的数据模型来描述保存 在异构环境中的各种数据,屏蔽数据源中应用环境和数据结构的异构性。 4 ) 平台独立性。x m l 文档是纯文本,完全独立于各种开发平台。 3 、x m l 文档的结构 x m l 文档的结构包括逻辑结构和物理结构。 ( 1 ) 逻辑结构。一个x m l 文档的基本构成是x m l 声明和x m l 元素。 1 ) x m l 声明。以“ ”结束,用来表明x m l 文档的版本信息、 基于x m l 的异构系统 l i 件间消息服务模型的设计与实现 第二章技术背景及相关概念 字符编码方式和独立文档声明等基本信息。 2 ) x m l 元素。x m l 文档的核心元素是它的元素。一个x m l 元素包括起始 标记、结束标记以及标记之间的元素内容。 此外,x m l 元素还可以包含若干属性,用以描述元素的一些特性。每个属性 以“属性名= 属性值”的形式出现在开始标记中。在x m l 文档中,包含所有元素 的元素称为根元素,也叫文档元素。根元素直接包含的那些元素称为子元素,子 元素也可以包含自己的子元素。x m l 文档的这种层次结构构成了一种树形结构。 物理结构。从物理角度讲,x m l 文档是由一个或多个存储单元组成,这些存储 单元称为实体。所有的x m l 文档都包含了一个“根实体”,它包含整个文档的内 容,并作为x m l 解析器处理的起点。实体分为已解析实体和未解析实体。已解析 实体的内容是该实体所代表的替换内容,x m l 解析器在处理x m l 文档时把这段 内容作为文档整体的一个组成部分。未解析实体是一种资源,它的内容可以是x m l 文本,也可以不是文本。使用未解析实体是将外部资源保存到x m l 文档中的常用 方法。已解析实体以实体引用的方式使用名字来调用,未解析实体用e n t i t y 属性 中给出的名字调用。 4 、x m l 文档的模式1 2 驯 为了保持x m l 文档的有效性,必须明确确定文件中的信息遵守那些结构。这 通过x m l 的模式来保证。模式就是定义所有可能的有效的x m l 文档集合,即为 x m l 文档定义了一些约束,x m l 文档必须遵循这些约束才认为是有意义的。有 两种方法可以定义x m l 文档的模式:d t d 和x m ls c h e m a 。 1 ) 文档类型定义 文档类型定义( d o c u m e n t t y p ed e f i n i t i o n ,d t d ) 类似数据库概要信息,它定 义了x m l 文档的语法结构。d t d 声明了在一个x m l 文档中可以引用的所有元素 类型、予元素类型以及每个元素显示的顺序和数目。另外,它还定义了元素的属 性、实体引用、处理指令等其它文档特性。d t d 分为内部d t d 文件和外部d t d 文件。内部d t d 文件表示d t d 直接写在x m l 文档中,它所定义的文档类型只能 应用在该x m l 文档中,而外部d t d 文件作为一个外部文件被x m l 文档引用, 它可以方便高效的被多个x m l 文档所共享。 2 ) x m ls c h e m a d t d 对x m l 文档的结构起了很好的描述作用,但它存在一些缺点:采用了 非x m l 文档的语法规则,不支持数据类型,扩展性很差。x m ls c h e m a 正好解决 9 基于x m l 的异构系统组件问消息服务模型的设计与实现 第二章技术背景_ :6 乏相关_ | i c 念 了这些问题。 从根本上来说,x m ls c h e m a 实际上也是x m l 的一种应用,就是将d t d 重 新按照x m l 语言规范来定义。与d t d 相比,两者有如下一些区别: x m l s c h e m a 是x m l 文档,而d t d 有自己特殊的语法。 x m ls c h e m a 利用名域将文档中特殊接点与s c h e m a 说明相联系,一个 x m l 文档可以有多个对应的s c h e m a ,而一个x m l 文档只能有一个相对应的d t d 。 x m ls c h e m a 的内容模型是开放的,可以任意扩充,而d t d 将无法解析扩 充内容。 d t d 只能把内容类型定义为一个字符串,而x m ls c h e m a 允许把元素类型 定义为整型,布尔型、日期型等其它数据类型。 2 2e n t e r p r i s ej a v ab e a n ( e j b 、 在本文最后关于银行代收系统应用实例中, j m b 模型的业务逻辑调用组件是 针对e j b 来进行的,对于一些不支持j m s 的消息中间件,m d b 显得无能为力,这时 可以利用j m b 模型驱动会话b e a n 来实现e j b 与其他系统的互操作问题。 1 、e j b 简介 e j b 是j 2 e e 的核心技术。e j b 是一种服务器端组件,自身具有可重用性。e j b 应用的基本模式是容器组件应用模式。容器对应e j b 服务器或应用服务器,组件 就是e j b 程序。 根据j 2 e e 规范,e j b 有下列3 种不同类型 2 2 】。 会话b e a n 会话b e a n 一般用于实现在应用程序服务器端的控制、处理以及工作流的管理。 可以分为两类:无状态会话b e a n 和有状态会话b e a n 。无状态会话b e a n 在跨方法 调用中不保留客户的状态。当一个方法调用结束后,b e a n 的状态和调用前完全不 一样。多个相同会话b e a n 实例是一样的,可以在多个客户机之间共享。有状态会 话b e a n 在跨方法调用时保存状态,而且代表单一客户机执行。有状态会话b e a n 支持单独客户机和系统之间的长时间交互。 实体b e a n 实体b e a n 是存储在数据库中的记录的一条记录的j a v a 表示。实体b e a n 具有 持久性性能,它们使用e j b 容器和数据库联合方式工作。 消息驱动b e a n o 基于x m l 的异构系统组件间消息服务模型的改汁与实现第二章技术背景及相关 【念 消息驱动b e a n ( m d b ) 通过响应新到达的j m s 消息执行它们的业务逻辑,使 得编程人员能够编写可以异步调用的e j b 。m d b 与会话和实体b e a n 有很大的区 别:客户代码不能获得m d b 的引用,不能直接调用m d b 的方法,客户只能通过 将j m s 信息传送到b e a n 监听的主题或队列来驱动e j b 。因而m d b 很适合费时任 务的延迟处理。 会话e j b 和实体e j b 用于封装业务逻辑,会话e j b 中的数据并不自动同步于 底层的持久性存储,实体e j b 的数据与底层的持久性存储器同步。第三类是消息 驱动e j b ( m d b ) 。它支持异步通信。实体e j b 和会话e j b 支持同步通信,即当 客户机调用e j b 方法时必须等待e j b 返回结果。m d b 利用了j m s 技术,和m d b 的所有通信都是通过j m s 队列或主题的。 2 、e j b 服务器的组成元素 图2 一l 田j 展示的仅仅是j 2 e e 应用服务器的一小部分,即e j b 服务器和命名服 务。e j b 服务器中保存着e j b 容器,并且提供所有容器都需要的通用e j b 服务 图2 - 1e j b 体系结构 2 3 消息服务与消息中间件 l 、消息 消息是个数据单元,从运行在计算机上的一个进程发送到运行在相同或不相同 计算机上的另一个进程。消息可以是简单的文本或更复杂的数据结构,例如j a v a h a s h t a b l e 对象。然而对象必须是可以串行化的。可以串行化的对象可以转化为连 续的字节,通过网络传输,然后重新创建原始对象的副本,这通常用来通过网络 基于x m l 的异构系统纽件间消息服务摸型的l 垃汁与实现 第二章技术背景及相关概念 从一台计算机向另一台计算机传递对象。 2 、消息服务【2 4 】 消息服务支持软件组件或应用程序之间的松耦合分布式通信。消息服务的基 本概念是,两个或更多的客户机能够通过发送和接收消息通信。一般情况下,希 望发送消息的客户机把消息发送到“目标”,然后接收消息的客户机必须访问目标 获取消息,各客户机并不需要同时运行。 3 、消息中间件 2 5 1 面向消息的中间件,或者叫做m o m ,是特殊类型的中间件,可以改善消息的 发送和接收。m o m 是连接到异构应用的基础结构,提供了可靠的机制,使得应用 能够在企业环境中异步创建、发送、和接收消息。 基于m o m 应用的优势在于它们是消息驱动的,可以使用各式各样的格式交 换消息,并快速、可靠地传递消息。m o m 范例包括: i b mm q 系列 f i o r a n o m e s s a g e s e r v e r p r o g r e s ss o n i c m q s i l v e r s t r a m j b r o k e r m q 2 4 通信模型概述 1 、两种通信模式 2 6 1 同步通信 由双方控制同步通信。双方必须主动参与,而且在处理前必须确认消息的接 收,也称做阻塞。当通信量增加的时候,需要更多带宽,这样的实现非常容易受 到硬件、软件、网络错误的影响,导致延迟消息和通信阻塞。超出通信能力时, 会经常丢失消息。 异步通信 在异步通信中,双方是对等的,可以随意发送和接收消息,不需要消息的实 时确认。请求者发送消息后,可以继续进行其它的处理,也称为非阻塞调用。 2 5j m s 消息模型 j m s 是j 2 e e 的一部分,是用来访问消息收发系统的a p i ,j m s 支持两种消息 模型点对点通信( p 2 p ) 与发布订阅通信( p u b s u b ) 。两者均能实现同步或异步通信。 点对点通信 点对点通信模式是能够使用的最简单的通信方法。在此模式中,有一个中心 基于x m l 的异构系统组件间消息服务模型的改计与实现第二章技术背景发相关慨念 队列作为发布的目标( 受

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论