(管理科学与工程专业论文)企业应用集成模式下的消息传递系统研究.pdf_第1页
(管理科学与工程专业论文)企业应用集成模式下的消息传递系统研究.pdf_第2页
(管理科学与工程专业论文)企业应用集成模式下的消息传递系统研究.pdf_第3页
(管理科学与工程专业论文)企业应用集成模式下的消息传递系统研究.pdf_第4页
(管理科学与工程专业论文)企业应用集成模式下的消息传递系统研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

中国科学技术大学学位论文相关声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究 工作所取得的成果。除已特别加以标注和致谢的地方外,论文中 不包含任何他人已经发表或撰写过的研究成果。与我一同工作的 同志对本研究所做的贡献均已在论文中作了明确的说明。 本人授权中国科学技术大学拥有学位论文的部分使用权, 即:学校有权按有关规定向国家有关部门或机构送交论文的复印 件和电子版,允许论文被查阅和借阅,可以将学位论文编入有关 数据库进行检索,可以采用影印、缩印或扫描等复带q 手段保存、 汇编学位论文。 保密的学位论文在解密后也遵守此规定。 作者签名: 1 年i , , e 1 侈日 中国科学技术大学硕士声位论文 摘要 随着信息化建设的不断深入,各个应用系统之间的信息共享与协同工作问题 越来越受到重视。因此,运用企业应用集成( e a i ) 技术实现各个应用系统之间 的互联互通,打破信息孤岛困境,形成资源共享、业务协作的分布式应用体系成 为企业级应用的研究热点。在各种应用集成技术中,消息传递系统作为一种松耦 合的通信手段具有了很大的灵活性。 本文首先从企业应用集成的不同层面和集成模式两个方面分析了e a i 技术。 而后对当前几种主要的中间件技术进行了分析,中间件技术是现在企业应用集成 的主流技术和构造消息传递系统的技术基础。接着,论文探讨了构造一个完整消 息传递系统所需的技术、及其总体结构和各部分的技术细节。 s u n 公司的j m s 规范在事实上已经成为消息传递系统的标准化编程接口,对 j m s 接口的实现是每个消息传递系统的必备工作。因而,论文对j m s 技术进行 了详尽的分析和研究。 论文最后介绍了某大型医疗机构的应用整合项目,该项目采用消息传递技术 构建作为基础架构软件。论文作者直接并主要参与设计了项目中的消息传递系 统,提出m y m o m ( 保密原因本文暂定名称) 消息传递系统的体系结构并给予实 现。m y m o m 分为系统配置、通讯和连接、系统基础服务、应用接口和系统管理五 个主要模块,论文对这五个模块的设计和实现进行详细介绍。 关键词:e a i ;中间件;消息;消息传递系统;j m s 4 ! 里型兰茎苎查兰堡主兰垡垦苎 a b s t r a c t a l o n gw i t ht h ed e e p e n i n go fd i g i t a l i z a t i o nc o n s t r u c t i o n m o r ea n dm o r ea t t e n t i o n h a sb e e np a i dt ot h ei n f o r m a t i o ns h a r i n ga n dc o l l a b o r a t i o ni n v e s t i g a t i o na m o n g a p p l i c a t i o ns y s t e m s t h e r e f o r e , t h ea p p l i c a t i o no fe n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ( e a i ) w h i c hr e a l i z e sc o n n e c t i o nb e t w e e na p p l i c a t i o ns y s t e m s , b r e a k st h ed i l e m m ao f i s o l a t e d i n f o r m a t i o ni s l a n d s , e n a b l e sd i s t r i b u t e d a p p l i c a t i o ns y s t e m s , a n d c h a r a c t e r i z e db yr e s o u r c es h a r i n ga n db u s i n e s sc o l l a b o r a t i o n ,h a sb e c o m ear i s i n ga r e a o f r e s e a r c h a m o n gd i f f e r e ma p p l i c a t i o ni n t e g r a t i o nt e c h n i q u e s ,m e s s a g et r a n s m i s s i o n s y s t e ms h o w sg r e a tf l e x i b i l i t ya sac o m m u n i c a t i o nm e t h o db a s e do nl o o s ec o u p l i n g i nt h i sp a p e r , f i r s t l yi t a n a l y z e se a it e c h n i q u e sf r o mt w oa s p e c t s :d i f f e r e n t i n t e g r a t i o nl e v e l sa n di n t e g r a t i o nm o d e l s s e c o n d l y , i ta n a l y z e ss o m eo ft h ep o p u l a r m i d d l e w a r ew h i c hi st h et e c h n i c a lf o u n d a t i o no fm a i n s t r e a mt e c h n i q u e sa n dm e s s a g e t r a n s m i s s i o ns y s t e mb u i l d i n gi nm o d e me n t e r p r i s e sa p p l i c a t i o ni n t e g r a t i o n a n dt h e n , i td i s c u s s e sa l lt h er e q u i r e dt e c h n i q u e st oc o n s t r u c tac o m p l e t em e s s a g et r a n s m i s s i o n s y s t e ma n di t sf r a m e w o r kw i t ht h et e c h n i c a ld e t a i l sf o re a c hp a r t t h e m sc r i t e r i o no fs u n ( c o m p a n y ) h a sa l r e a d yb e c o m eas t a n d a r d i z e d p r o g r a m m i n gi n t e r f a c ef o rm e s s a g et r a n s m i s s i o ns y s t e mi np r a c t i c e t h er e a l i z a t i o n o f j m si n t e r f a c ei san e c e s s i t yf o re a c hm e s s a g et r a n s m i s s i o ns y s t e m t h u s , ad e t a i l e d a n a l y s i sa n d r e s e a r c ho f j m sw a sc o n d u c t e d i nt h ee n d ,a ne a io fab i gm e d i c a li n s t i t u t i o nt h a te m p l o y st h em e s s a g e t r a n s m i s s i o nt e c h n o l o g ya st h eb a s i cf r a m es o f t w a r ew a sp r e s e n t e d t h ea u t h o r p a r t i c i p a t e di nt h ed e s i g na n dw a sm a i n l yr e s p o n s i b l ef o rt h em e s s a g et r a n s m i s s i o n s y s t e mw i t hw h i c ht h em y m o m f at e m p o r a r yn a r r i ef o rt h es a k eo fi n t e l l e c t u a l p r o p e r t yp r o t e c t i o n ) w a sr e a l i z e d ,m y m o m c o n s i s t so f5 m o d u l e s :s y s l e m c o n f i g u r a t i o n ,c o m m u n i c a t i o na n dc o n n e c t i o n ,b a s i cs y s t e ms e r v i c e ,a p p l i c a t i o n i n t e r f a c ea n ds y s t e ma d m i n i s t r a t i o n , t h ed e s i g na n di m p l e m e n t a t i o no fw h i c ha r e i l l u s t r a t e di nd e t a i l si nt h ep a p e r k e yw o r d s :e a i :m i d d l e w a v e ;m e s s a g e :m e s s a g et r a n s m i s s i o ns y s t e m ;m s 5 中国科学技术大学硕士学位论文 企业应用集成模式下的消息传递系统研究 第一章、绪论 1 1 研究背景 随着信息化的发展,现代企业一般都会有大量独立的应用存在。这些应用要 么是从独立的软件商处购买,要么由企业定制开发,要么是以前遗留系统的一部 分。这些应用往往都是异构的,运行在不同的操作系统或数据库平台之上,采用 不同的程序语言开发,体系架构也千差万别。因而,在这些企业之完全有可能发 现m 个w e b 站点,n 个部门解决方案和无数个具体业务系统。 造成这种混乱局面的原因很多。首先企业的信息化建设是一个渐进的过程: 其次企业的需求是多方面和多层次的。没有可能甸建一个大一统的系统满足企业 的所用要求:另外将业务功能分散到多个系统中,能够为企业提供很大的灵活性; 此外企业的人事制度和部门架构往往也可能造成这一混乱局面。 但是,企业的业务流程会同时涉及到多个应用系统,因此要求这些系统能够 协同,但接口、架构的不统一往往使得这些本应紧密集成的应用系统成为了一个 个“信息孤岛”。于是,在需求的催生下,企业应用集成技术( e a i ) 应运而生。 传统的e a i 系统大多采用r m i ,c o r b a ,d c o m 等分布式技术,是一种紧耦合的 集成模式,比较适用于那些对性能要求比较高的、需要多种层次集成的应用集成 系统。传统的企业应用集成一般为点对点集成,这就导致整合成本过高与整合效 率过低的现象,并且实施代价昂贵,持续时问长、花费代价大。并且,传统的 e a i 最初并没有充分考虑到和企业外部信息系统的共享,所以对电子商务、特别 是i n t e r n e t 应用的支持较差。 而基于消息的集成是一种标准化的松耦合集成模式,系统与系统间通过消息 相互联系。在发送个消息时,不需要通信双方同时在线或者都准备好,消息在 传递过程中进行各种转换,通信双方都不用了解具体的转换。松耦合还有助子集 成人员选择不同的消息传递方式,如把消息广播给多个接受者,或把消息路由给 单个接受者或者其它拓扑结构等等。这样就能把集成设计和具体业务系统开发分 离开;有利于开发人员设计出低祸合与高内聚的系统组件。因而基于消息的集 成模式解决了传统e a i 的问题,更适用于当前需要更大的灵活性、改动频繁的应 6 中国科学技术大学硕士学位论文 用集成系统。 本人圆为工作的关系参加了菜大型医疗机构蛉应用整合项舀。该机构2 0 0 0 年就已经上马了h i s 系统,随后又上马了l i s 系统,影像系统等数个大型系统, 此外许多科室还有自己的专业系统,如肿瘤科的细胞切片系统等。为了实现医院 信息系统由“面向管理”向“面向临床”的转交,妊须将众多的系统整合在一起。 我在此项目中负责总体技术架构和基础软件的规划设计工作,在进行大量的调研 和技术准备的基础上,决定采用消息传递技术架构信息总线来连接各个系统。 在本项舀中,消息总线由三部分组成:公共数据字典和规范数据模型、公共 命令集合、消息传递系统。论文作者设计了消息总线的总体架构并直接参与了消 息传递系统的实现。在本文最后一部分,论文详细介绍了此消息传递系统。 1 2 论文的结构安排 本文对利用消息传递技术实现企业应用集成进行了深入的研究,全文的结构安排 如下: 第一章、绪论;对论文的研究背景进行了阐述。 e 第二章、介绍了企业应用集成的概念和各种模式与实现技术。 第三章、消息传递系统属于中间件的一种介绍了中间件的概念、分类。 第四章、全面分析了消息传递系统的架构和技术特征。 第五章、2 m s 在事实上己经成为消息传递系统的标准化编程接口,本章对j m s 技术进行分析 p 第六章、实现了一个消息传递系统并对其进行了全面介绍 第七章、总结和下一步的研究展望 1 3 论文的主要贡献 目前对消息系统的研究主要面对应用和消息系统的接口,而对消息系统 7 中国科学技术大学硕士学位论文 自身特性的研究比较少,本文对消息传递系统的整体架构和技术特征进 行分析和研究。对消息传递技术进行了全面详尽的阐述。 e 设计了一个完整的消息传递系统m y m o m 。m y m o m 全面符合j m s 规范,支持 点到点( p o i n t t o p o i n t ) ( p t p ) 模型和发布订阅( p u b s u b ) 模型; 支持同步与异步消息发送;支持j d b c 持久性管理用数据库表来存储消息: 提供可视化管理界面:能够与t o m c a t 这样的s e r v l e t 容器结合;支持r m i , t c p ,h t t p 与s s l 协议;支持客户端验证;提供可靠消息传输、事务和 消息过滤功能。 8 中国科学技术大学硕士声位论丈 第二章、企业应用集成 2 1 企业应用集成的定义 企业应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) 简称e a i ,就是将 业务流程、应用软件、硬件和各种标准联合起来,在一个企业内或者更多的企业 应用系统之间实现无缝集成。使它们像一个整体一样进行业务处理和信息共享, 从而提高企业效率,为客户提供灵活的业务服务。 2 2e a i 的五个层面 e a i 涉及技术广泛,实施起来比较复杂,因而可以被划分为多个层面,在实 际中,具体层面的划分也有所不同。我们这里给出了一个可以划分为五个层面的 解决方案,即用户交互、应用连接、业务流程整合、构建整合以及信息集成。 f 用户交互:实现应用用户界面统一的接入与安全机制,利用门户技术进 行构建,强调的是要将来自多个信息源的信息以一种可定制的、个性化 的界面展现给用户。 应用连接:通过h u b 或总线粲构,实现应用与应用之阊的连接,完成相 关的数据路由与数据格式转换,保证信息能够及时和准确传递。该层面 提供了应用程序之间的互连从而也成为e a i 的基础。本文消息中间件是 实现这个层面的主力军。 f 业务流程整合:实现业务流程管理,包括工作流管理和自动化流程两个 方面。这个层面强调的是对涉及不同系统、不同角色人员所进行的活动 的控制和协调。该层面既可以将多个离散的应用当作一个应用程序管理, 从而实现流程自动化。也可以将企业业务流程从应用逻辑中剥离开,并 集中到相应的业务流程管理工具中来统管理并根据需要调整。 e 构建整合:这个层面包含两个部分,一部分是构建与现有应用兼容的新 9 中国科学技术大学硕士学位论文 应用,另一部分是对现有资源进行重用以适应新环境的需要。这个层面 强调的是新发布应用程序对企业遗留资产的兼容。当在e a i 过程中需要 编写代码来实现新功能,并希望新的程序能和现有的应用集成,我们可 以选用某些企业级的连接技术。特定到j 2 e e 平台,可以通过埘s 、j c a 以及w e b 服务来实现。 信息集成:实现数据集成。在异构的数据源之间实现数据层的直接整合。 这个层面强调的是将企业内部的信息通过联邦、变换和复制技术将企业 内部的信息源集成在一起,集成的数据源将屏蔽底层数据源的位置、类 型等物理特性。会以统一的视图和接口呈现给用户或者应用程序。 2 3 几种主要e a i 集成模式 在当前的许多集成项目中,最常运用的有以下几种类型的集成 2 3 1 、信息门户模式 在实际工作中,许多用户必须访问多个系统才能得到某个问题的答案,或者 完成项业务活动。信息门户能把信息从多个信息源集中到一个显示画面上,以 避免用户登录多个系统,并在多个系统问进行切换。简单的信息门户把屏幕分成 多个区域,每个区域显示一个业务系统的信息。复杂的信息门户还会在区域之间 提供有限的交互。 2 3 2 、数据复制模式 许多业务系统往往需要访问相同的数据,而这些系统一般都会有自己的数据 库。当业务发生变更是,要求这些数据库中的数据要保持同步,这时就要用到基 于数据复制的集成策略。要实现数据复制有很多种方法。例如,可以将数据导出 到文件中,再把它们重新导入到其它系统中;有的数据库中可配置触发器,当数 据发生改变或增加删除数据时自动触发动作,将数据与其它系统同步。 1 0 中国科学技术大学硕士学位论文 2 3 3 、业务功能共享模式 共享业务的功能一般称作服务。服务是一种定义明确的功能,它对外开放并 响应来自“服务客户”的请求。首先,需要某种形式的服务目录,它是所有可用 服务的一个集中列表。其次。每个服务都要以某种方式提供接口描述,以便其 它应用熊与之协商建立通信。当前,业界对业务功能共享模式极为追捧,出现很 多新名词对其进行包装,如面向服务的体系结构( s e r v i c eo r i e n t e d a r c h i t e c t u r e ,s o b ) ,w e b 服务( w e b s e r v i c e s ) 等。 2 3 4 、分布式业务模式 传统上分布式应用间通过c o l l i + ,r m i 等技术远程通信。但这些应用间的合作 并不能称作应用集成。因为,这些系统的通信组件是紧耦合的,相互之间互相直 接依赖:其次,一般来说系统间的通信要求是同步的。 面向服务的体系结构的出现使得分布式应用和应用集成之间的界限变的极 其模糊。可以使用已有的服务开发新系统。因此,调用服务可以看作两个应用之 间的集成。 2 3 5 、b 2 b ( 企业到企业) 的集成模式 以上几种集成模式主要讨论的是单个企业内部应用之间的交互。有时,外部 供应商和商业合作伙伴也会提供某些业务功能,或要求获取某些信息。这种情况 下,就需要b 2 b 集成模式。b 2 b 集成模式主要强调数据格式的标准化和传输的安 全性,如e d i 技术和电子“会话”技术等。 中国科学技术大学硕士学位论文 第三章、中间件技术 为解决分布异构问题,人们提出了中间件( 1 n i d d l e w a r e ) 的概念。中间件是位 于平台( 硬件和操作系统) 和应用之间的通用服务,如图3 一l 所示,这些服务具 有标准的程序接口和协议。针对不同的操作系统和硬件平台。它们可以有符合接 口和协议规范的多种实现。 l 应用i i 应用i fj 中件 ( 分布系统服务) 硬件硬件 操作系统操作系统 图3 一l 中间件示意图 也许很难给中间件一个严格的定义,但中问件应具有如下的一些特点: e 满足大量应用的需要 e运行于多种硬件和o s 平台支持分布计算,提供跨网络、硬件和o s 平台 的透明性的应用或服务的交互 支持标准的协议 支持标准的接口 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成 为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络 服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不 管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持 1 2 中国科学技术大学硕士学位论文 中问件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应 用软件开发和维护中的重大投资。 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的 中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或 不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中 异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这 种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要 几类: g 远程过程调用中间件( r e m o t ep r o c e d u r ec a l1 ) g 面向消息的中间件( m e s s a g e o r i e n t e dm i d d l e w a r e ) 对象请求代理中间件( o b j e c tr e q u e s tb r o k e r s ) 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等, 在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服 务。如事务处理监控器、分布数据访问,对象事务管理器o t m 等。平台为上层应 用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结 构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事 件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架, 用户程序也不必关心框架结构、执行流程、对系统级a p i 的调用等,所有这些由 框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、 高可用性和可移植性。下面。针对几类主要的中间件分别加以简要的介绍。 3 。1 、远程过程调用中间件 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使 用r p c 来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行 本地调用相同。事实上,一个r p c 应用分为两个部分:s e r v e r 和c l l e n t 。s e r v e r 提供一个或多个远程过程;c l i e n t 向s e r v e r 发出远程调用。s e r v e r 和c l i e n t 可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统 之上。它们通过网络进行通讯。相应的s t u b 和运行支持提供数据转换和通讯服 中国科学技术大学硕士。 位论文 务,从而屏蔽不同的操作系统和网络协议。在这里r p c 通讯是同步的。采用线程 可以进行异步调用。 在r p c 模型中,c l i e n t 和s e r v e r 只要具备了相应的r p c 接口,并且具有r p c 运 行支持,就可以完成相应的互操作,而不必限制于特定的s e r v e r 。因此,r p c 为c l l e n t s e r v e r 分布式计算提供了有力的支持。同时,远程过程调用r f c 所提 供的是基于过程的服务访问,c l l e n t 与s e r v e r 进行直接连接,没有中间机构来 处理请求,因此也具有一定的局限性。比如,r p c 通常需要一些网络细节以定位 s e r v e r ;在c l l e n t 发出请求的同时,要求s e r v e r 必须是活动的等等。 3 2 、面向消息的中间件 m o m 指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于 数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在 分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软 件平台。目前流行的m o m 中间件产品有i b m 的m q s e r i e s 、b e a 的m e s s a g e q 等。 消息传递和排队技术有以下三个主要特点: 通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地 将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。 消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序 在运行,也不意味着要立即处理该消息。 对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以 是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的 组合。多种通讯方式的构造并没有增加应用程序的复杂性。 程序与网络复杂性相隔离:程序将消息放入消息队列或从消息队列中取出 消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队 列之间的关系、处理网络的重新启动和在网络中移动消息等是m o m 的任务, 程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。 3 3 、对象请求代理中间件 1 4 中国科学技术大学硕士学位论文 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计 算并发展为当今软件技术的主流方向。1 9 9 0 年底。对象管理集团o m g 首次推 出对象管理结构o l h ( o b j e c t l i a n a g e m e n ta r c h i t e c t u r e ) ,对象请求代理( o b j e c t r e q u e s tb r o k e r ) 是这个模型的核心组件。它的作用在于提供一个通信框架,透 明地在异构的分布计算环境中传递对象请求。c o r b a 规范包括了o r b 的所有标准 接口。1 9 9 1 年推出的c o r b a1 1 定义了接口描述语言o m gi d l 和支持 c l i e n t s e r v e r 对象在具体的o r b 上进行互操作的a p i 。c o r b a2 0 规范描述的 是不同厂商提供的o r b 之间的互操作。 对象请求代理( o r b ) 是对象总线,它在c o r b a 规范中处于核心地位,定义异 构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间 c l l e n t s e r v e r 关系的中间件。o r b 使得对象可以透明地向其他对象发出请求或 接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。o r b 拦截请 求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结 果等。c l i e n t 对象并不知道同s e r v e r 对象通讯、激活或存储s e r v e r 对象的机 制,也不必知道s e r v e r 对象位于何处、它是用何种语言实现的、使用什么操作 系统或其他不属于对象接口的系统成分。 值得指出的是c l l e n t 和s e r v e r 角色只是用来协调对象之间的相互作用,根 据相应的场合,o r b 上的对象可以是c i t e n t ,也可以是s e r v e r ,甚至兼有两者。 当对象发出一个请求时,它是处于c l i e n t 角色;当它在接收请求时,它就处于 s e r v e r 角色。大部分的对象都是既扮演c l i e n t 角色又扮演s e r v e r 角色。另外 由于o r b 负责对象请求的传送和s e r v e r 的管理,c l i e n t 和s e r v e r 之间并不直 接连接,因此,与r p c 所支持的单纯的c 1 i e n t s e r v e r 结构相比,o r b 可以支持 更加复杂的结构。 中国科学技术大学硕士学位论文 第四章、消息传递系统 消息传递系统是种特别的中间件,它支持通用消息在分布式应用环境中进 行交换。在这个环境中数据以消息的形式进行交换,消息同时支持在分布的应用 环境中以同步或异步的方式进行交互。消息中间件系统通过提供目录服务,安全 服务和管理服务等支持消息来确保消息队列的可靠性。消息传递系统主要是基于 客户机服务器结构的,通过允许应用分布到不同的异构的平台来提高系统的互 操作性和弹性,降低了开发多操作系统和多网络协议的应用的复杂性,把开发者 和不同操作系统以及网络接口a p i 函数等的细节问题隔离开了。消息传递系统允 许进行通讯的客户端通过消息通道同步或异步方式通信,这些客户端分成消息的 生产者和消息的消费者两个角色。 4 1 、消息传递通道 一旦在企业应用集成中采用消息传递系统将一组应用连接起来,首先要解决 的就是信息通道的问题。非常明显消息传递系统不能是一个大桶,一个应用随机 地将消息丢进来,再由其他应用随机地抓取信息。它必须是一组已知连接,按照 事先规定好地,可预知地路径传递消息。这样就要弓l 入消息通道酌概念,通道可 以看作是消息传递系统中的逻辑地址,对于应用问的不同连接,传递系统中有不 同的通道且每一个通道有唯一的标识。这样一个应用发送信息时,将信息添加到 不同的通道中去,虽然应用不知道最终由那个应用获取到信息,但它可以确定的 知道获得到信息的应用肯定对信息感兴趣;同样,接受方只要根据需要的信息类 型绑定通道,就一定能获得想要的数据。 本文在对通道的研究中发现,良好工作的通道需要解决以下问题,: f 调用者如何保证只有一个接受者收到信息。 e 如何让发送者把消息广播或组播给所有感兴趣的接受者。 f 如何发送数据才能让接受者知道怎样处理数据。 1 6 中国科学技术大学硕士学位论文 f 接受者万收到无意义的消息,怎样处理。 怎样处理无法传递的消息。 一旦消息传递系统崩溃,怎样在系统恢复工作以后确保消息的正确发送。 现在下文一一加于说明 4 1 1 、点对点通道 点对点通道解决了如何保证只有一个接受者收到信息的问题,只要消息被消 费了一次,就将其删除出通道。通道的接受者可以有多个,它们能同时消费多个 消息。但是对于菜个特定的消息,只能有一个接受者能消费。在只有一个接受者 时,消息只消费一次很容易解决。当有多个接受者,就必须引入消费竞争机制。 采用这种机制,消息的消费和处理都很容易扩展,因为这些操作可以很方便的在 多个消费者之间实现负载平衡:即使这些消费者是分布在不同计算机的多个应 用,也很容易实现分布式的消息处理。 4 1 2 、发布一定购通道 发布一定购通道主要应用于广播或组播消息,消息的发送方称为发布者,接 受方称为定购者。只有在定购者都得到消息后,该消息才算消费一次。其工作原 理如下:它有一个输入通道,由这个输入通道分解成多个输出通道,每个输出通 道对应一个定购者。当消息发布到通道是,发布一定购通道将消怠拷贝到每个输 出通道,每个输出通道只对应一个定购者,它只能将消息消费一次,这样每个定 购者都能而且只能获得消息一次,每个消息副本在被消费后就从输出通道中删 除。 4 1 3 、通道的数据类型 应用间传送的信息的数据可能是多种类型的,发送方很清楚自己发送的是那 种类型的数据,但它如何告知接受方呢。种做法是在信息首部放入一个标志, 告诉接受方自己发送的是哪一类的数据。但这样以来,就必须修改接受方应用, 在其程序中加入一条判断语句。但这,在很多情况下,应用是被封装好的,很难 1 7 中国科学技术大学硕士学位论史 对其进行修改。 另一种做法就是不同类型的数据使用不同的通道。这样指定通遭上的数据都 是同一类型的。发送者间不同的消息送入不同类型的通道,接受者只要知道在某 条通道上接受消息,也就知道了消息类型,从而也就知道了如何处理消息。 4 1 4 、非法消息通道 接受者有可能从通道中收到一条不能处理的消息,它可能是首部的属性有错 误,也可能消息体的语法或浯义有问题。接受者发现这些错误的消息时,可以忽 略这一问题,把消息重新放回通道中,但这样消息有可能被其他消费者收到,带 来通道的紊乱,并降低系统的效率。接受者也可以丢弃错误消息,但这会使得本 应被发现的问题隐藏起来。 非法消息通道类似于消息传递系统的错误日志,但有问题的消息被应用发现 后,就将这一消息丢入非法消息通道,非法消息通道的建立可以发现应用集成中 存在的问题,可以发现消息错误的原因,定位问题,并加以解决。 4 1 。5 、死通道 非法消息通道用于处理能够发送和接受但不能处理的消息,而死通道中时消 息传递系统无法正确发送的消息。 消息不能发送的原因很多。比如系统配置有问题,比如两络不逐,比如消息 传送路径上的计算机死机。一旦消息传递系统无法传送某个消息,就必须对消息 做出处理。将消息留在原处会扰乱系统:直接将消息删除会让发送者以为消息已 经发送成功;将消息送回发送者,因为发送者并不是接受者,因此并不能识别和 处理返回的消息。引入死通道后,不论消息在传送路径中的哪一环节死掉,都将 死亡消息丢入死通道,死亡消息的处理就会得到自动处理。 4 1 6 、持久通道 使用消息传递系统可以实现应用间的异步通信,消息传递系统采用存储转发 过程,在接受者收到信息之前存储信息。因此,要实现信息的可靠传输是应该将 1 8 中国科学技术大学硕士位论文 信息存储在那里。一般情况下信息是存储在内存中,但所有的机器都有可能有死 机或内存不足等意外情况发生。为了应对这些意外情况的发生,消息传递系统可 利用内建或外接的数据库保存消息,也可以将消息保存在本地文件中,这就实现 了消息传输的持久性。 持久性可以增强可靠性。但这是以性能为代价的。发送者在发送消息时,要 等到消息安全的存储到数据库或文件中,发送操作才能成功完成。同样,只有消 息成功的转发并到下一个数据库或文件中,消息才能从本地删除,这一过程一直 到接受者成功收到消息为止。 4 2 、消息 利用消息传递系统连接各个应用,消息传递系统将应用之间相互传递的各类 操作命令和数据都看成是消息。一般来说,一个消息由两个基本部分组成: 消息头:供消息传递系统使用的信息,包括信息源、目的地、返回地址、 关联标识,消息序列码、和消息有效期等等。 f 消息体:真正被传送的数据,由应用提供,消息传递系统一般只是原封 不动的传递。 对消息传递系统来说,所有的消息都是一样的:按照消息首部描述的信息传 送消息体中的数据。但对于应用来说,不同的消息的使用方式是不同的,命令消 息可以调用另一个应用的过程;文档消息可把一组数据传递给另一个应用;事件 消息可以其它应用通知自身发生的变化;如果需要其他应用返回一个结果,就要 使用请求应答消息。 4 2 1 、命令消息 应用如果想要调用其它应用的功能,一般的做法是进行远程调用。但远程调 用有一个缺点:它是同步的,如果调用不能立即执行,调用会失败,程序也会报 错。利用消息传递系统可以实现异步调用,应用不用等待调用结果的返回。利用 命令消息可以将过程调用转换成消息。命令消息其实只是一个常规的消息,只是 其中恰好包含了一个过程调用命令而已。命令消息一般采用点到点通道发送,以 1 9 中国科学技术大学硕士学位论文 保证命令只被执行一次。 4 2 2 、文档消息 在应用间共享数据的方法很多,采用文件传输和共享数据库甚至远程过程调 用都可以达到这个目的。但这些方法都存在不同的缺点,在大多数情况下,采用 消息传递要共享的数据会更好一些。文档消息和命令消息的主要区别在于:命令 消息告诉接受耆进行何种动作,而文档消息只是向接受者传送数据,如何操作由 接受者自己决定。 4 2 3 、事件消息 在进行应用集成是,经常需要使用事件通知来协调各个应用的行动,消息传 递系统用事件消息来完成这一工作。事件消息和命令消息很相象,它们的主要区 别在于时间限制和内容:事件消息在存在性和事件限制方面比事件消息要求的要 严格多,而内容一般并不重要,甚至可以为空。 事件消息的典型使用是观察者模式,观察者模式描述了如何设计宣布事件的 主体和消费事件的观察者。当主体需要通知事件时,它会创建二个事件对象,把 这个对象封装在消息中,然后发布到通道中:观察者接受事件消息、获取事件、 并处理事件。消息传递不会修改所宣布的事件,但要确保通知到达观察者。 4 2 4 、请求应答模式 本质上消息传递系统的通道都是单向的,消息沿通道单方向传输,从发送者 传到接受者。这种单向的异步传输模式使得发送者和接受者得到解耦合。以上几 种消息的传递一般也都是单向通信的,但应用往往会需要双向的通信,发送了一 个消息后,还会要求接受者返回响应。 请求应答由两部分组成:请求者发送消息并等待应答消息,应答者接受请 求消息并用应答消息做出回应。请求应答一般使用在以下几个方面:利用消息 封装p , p c 过程、利用消息传递查询、通知于确认。 在某些方面,请求消息类似于方法调用。但不同点在于,方法调用一定是同 中国科学技术大学硕士学位论文 步的。而请求者却既可以采用同步阻塞的方法,也可以采用异步回调的方法。 4 2 5 、返回地址 当需要接受者返回响应时,如果采用硬编码的方式,因为每个接受者可能要 处理来自多个不同发送者的消息,而且每个消息的应答通道也可能并不固定,会 造成软件灵活性的下降。此外,发送者可能并不希望应答送回自己,而是发送给 其它指定应用,接受者在这种情况下就更难以处理消息。 解决这一难题的方法可以在信息首部增加一个返回地址属性。接受者在得到 请求信息时,从首都中提取出返回地址,处理完信息后,按照返回地址指定的目 的地,将应答消息发给目的应用。 4 2 6 、关联标识 因为消息传递系统是一种异步应用,发送者在发出消息后并不会立即得到应 答消息。这样在应答消息到达是,发送者可能已经发出了多个消息,返回的消息 对应于那个请求就成为一个问题。这样就要在信息首部加入关联标识,以知道收 到的响应消息对应于那个已发送的消息。其使用如下:当请求消息被发送时,为 它分配个唯一的请求i d ,接受者接到该消息后保存请求i d ,并将请求i d 作为 关联标识添加到应答消息首部。当请求者处理应答是,通过关联标识就能知道应 答对应的是哪个请求。 4 2 7 、消息序列码 应用发送消息时,可能消息中的数据量会很大,一个消息放不下,必须将消 息进行拆分。接受者在收到这些被拆分后的消息时,要想知道这些消息实际是一 个整体,就必须在信息酋都加入消息序列码。 消息序列码由三部分组成: p 序列标识符:把本消息簇和其他消息簇区分开。 e 位置标识符;唯一的标识序列中的各个消息,并对消息进行排序。 大小或结束标识符:指定消息簇中消息的数量,或者标记簇中最后一个 2 1 中国科学技术大学硕士学位论文 消息。 4 2 8 、消息有效期 利用消息传递系统可以保证消息传送到接送者,但无法保证传送花费的时 间。在对时间性有要求的应用中,无法及时到达的消息就是无用消息。利用在消 息首部中加入消息有效期就可以标识出这些无用消息。 4 3 、消息路由 在企业应用集成中通常要连接许多异构的系统,利用消息通道既可以将这些 系统集成到一起,有可以保持其相互的解耦合。在前文中已经论述过,为了使接 受者知道如何处理各类不同类型的消息,可以为每一种消息类型分别创建单独的 消息通道,并将这些通道与所需的处理步骤连接起来。但是,这就要求消息的创 建者知道不同处理步骤的选择标准,这样才能把消息发布给正确的通道。采用这 种方法会导致消息通道个数的激增,而通道并不是一种无代价的资源,会消耗 c p u 和内存。此外,消息在传送到目的地之前要经过那些操作和处理步骤,消息 源并不知道。因此,消息源也就不能把消息正确地发给正确地通道。 针对这些问题,消息传送系统就必须要有消息路由机制。消息路由器可以根 据多种标准来确定输入消息的输出通道。根据路由标准的不同可以将消息路由器 分成;基于消息类型的路由器、消息过滤器、接受表、分解器、聚合器和重排器。 4 3 1 基于消息类型的路由器 基于消息类型的路由器是最为基本的一类路由器。它会检查消息的内容,并 根据消息中包含的数据不同( 如是否存在某些字段、是否有指定的字段值等) 把 消息路由到不同的输出通道中上。使用该种路由器。消息的生产者只需把所有消 息发送到一个通道中,由基于类型的路由器发送到正确的通道中,从而减轻发送 应有的负担,并避免消息生产者和特定目标通道的耦合。其缺点是消息传递系统 必须对所有可能的接受者和消息类型都了如指掌。每当增加、修改和删除接受者 时,都要对路由器进行修改。给维护带来了很大麻烦。 中国科学技术大学硕士学位沦文 4 3 2 消息过滤器 消息过滤器是一种特殊的基于消息类型的路由器,可以根据预先设定的一组 规则把不需要的消息从通道中删除。消息过滤器一般是一种只有一个输出通道的 路由器。如果消息和指定的规则匹配,该消息被路由到输出通道;反之则丢弃。 还有一类消息过滤器,除了直接路由和丢弃之外,还可以对消息进行一些操 作。其可以通过附加的动作和限定规则来滤除掉消息中的一些内容。这在发布 定购通道中特别有用。假设有a 、b 两个定购方应用都对某个消息感兴趣,但感 兴趣的数据项目不同,就可以在消息副本进入不同定购方通道时,利用消息过滤 器消除不需要的消息。 4 3 3 接受表 消息传递系统提供了发布一定赐通道。能把发布的消息的副本发送给每个定 购该通道的接受者。接受者集合时由对指定通道的预先定购来决定的,因而定购 者列表是静态的,无法基于各个消息来控制定购者列表。发布一定购通道只提供 了两种选择:要么定购通道中酶所有消息。要么什么也不定贿,这就不具有灵活 性。 每个潜在接受者可以通过消息过滤器来选择性的消费消息,但这就把由谁接 受消息的逻辑分布n - r 各个消费者,增加了维护酌困难且效率低下。 接受表模式为每个潜在接受者定义一个通道,并在系统中维护一张接受者和 通道的对应表。在消息生产者发送消息时附带上一个接受者列表,系统在转发消 息时根据接受者列表和系统中的对应表发送消息,

温馨提示

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

评论

0/150

提交评论