(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机应用技术专业论文)基于中间件技术的数据交换平台的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 目前,行业信息化发展迅猛,但以往众多信息系统的开发缺乏整体规划和系 统性,随着异构环境不断增加,数据交换困难,“信息孤岛 问题愈发突出。从而 在i n t e m e t 环境下,消除巨大的信息孤岛,实现信息共享、达到信息一致性的要求 越来越迫切。 数据交换是解决此问题的有效方式。以中间件为核心支撑系统的软件平台是 这种网络化的应用解决方案。平台的集成和协同特性可以解决目前信息化中普遍 存在的“信息孤岛”问题。尤其是消息中间件,以其可靠连接、异步通信、可靠 队列、持久存储、负载平衡等优势,成为交换平台中数据通信的首选。 本文针对目前企业的需求,设计并实现了一种以中间件技术为基础的数据交 换平台,面向全行业的信息系统,搭建异构数据之间有效共享的、通用的信息交 互平台。 文章深入研究了消息中间件的特点,并参考其通讯机制,提出了一种交换域 划分交换区域的设计思想。文中给出了平台的总体结构模型,及数据交换模型, 详细描述了数据交换系统的实现,即以j m s 为主要通信方式,以x m l 描述此消息系 统上传输的数据的实现方式。并阐述了平台相关的配置管理,及目前实际运行的 情况。 通过实践,证明本平台的交换模式可以实现异构数据源之间的数据传递与共 享,是一种可行的数据交换的中间件平台架构。 【关键词】数据交换中间件j a v a 消息服务交换域 基于中间件技术的数据交换平台的设计与实现 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 fd a t ae x c h a n g ep l a t f o r m b a s e do nm i d d l e w a r et e c h n o l o g y l iw e n f e i ( c o m p u t e r a p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db y :p r o f e s s o rl it 0 n g n o w , i n f o r m a t i o no fa l li n d u s t r i e sh a sd e v e l o p e ds w i f t l y , b u tt h ed e v e l o p m e n to f m a n ym i sh a sb e e nl a c kf o rg o o dp l a n n i n ga n ds y s t e m a t i s m ,a st h ei n c r e a s eo ft h e d i f f e r e n te n v i r o m e n t s ,i tb e c o m e sm o r ea n dm o r ed i 笳c u l tt os h a r ed a t aa n dc o m e si n t o b e i n ga n i n f o r m a t i o ni s o l a t e di s l a n d ”s o ,i ti s m o r ep r o m i n e n tt oc a n c e lt h el a r g e i n f o r m a t i o ni s o l a t e di s l a n d ,r e a l i z et h ed a t as h a r i n ga n dc o n s i s t e n tu n d e ri n t e r a c t d a t ae x c h a n g ei sa ne f f e c t i v ew a yt os o l v et h i sp r o b l e m t h es o f t w a r ep l a t f o r m w i t hm i d d l e w a r ea si t sc o r ei st h es o l v e n tt ot h en e ta p p l i c a t i o n t h ei n t e g r a t i o na n d c o l l a b o r a t i o no fp l a t f o r mc a l ls o l v et h e p r o b l e m i n f o r m a t i o ni s o l a t e d i s l a n d e s p e c i a l l y t h e m e s s a g e - o r i e n t e dm i d d l e w a r e , b e c o m e st h e f i r s tc h o i c e o ft h e c o m m u n i c a t i o nm o d e lo ft h ep l a t f o r m ,f o ri t sa d v a n t a g e so fc r e d i b l ec o n n e c t i o n , a s y n c h r o n i s mc o m m u n i c a t i o nm e c h a n i s m , c r e d i b l eq u e u e ,p e r s i s t e n ts t o r a g e ,l o a d b a l a n c ea n ds oo n a c c o r d i n gt ot h en e e d so ft h ee n t e r p r i s e s ,t h i sp a p e rd e s i g n e da n di m p l e m e n t e da d a t a e x c h a n g ep l a t f o r mb a s e do n t h em i d d l e w a r et e c h n o l o g y , b u i l ta l le f f e c t i v e i n t e r a c t i v ep l a t f o r mi ns h a r i n gi n f o r m a t i o n , f o ra n yi n d u s t r y t h i sp a p e rr e s e a r c h e dt h ec h a r a c t o ro ft h em o m d e e p l y , a n db r i n g sa nd e s i g ni d e a t h a tp a r t i o nt h en e t w o r k 谢md x - d o m a i na c c o r d i n gt om o m t h ep a p e ri n t r o d u c t e d t h em a i ns 缸u c t u r ea n dt h ee x c h a n g em o d e lo ft h i sp l a t f o r m , t h e nd e s c r i b e dt h e i m p l e m e n t a t i o no f t h ed a t ae x c h a n g es y s t e mi nd e t a i l ,t h a ti s ,j m sa st h em a i nw a yo f c o m m u n i c a t i o n a n dx m l a st h ee x p r e s s i o no fd a m t h r o u g ht h em e s s a g es y s t e m a l s o ,i t d e s c r i b e dt h ec o n s o l em a n a g e m e n to ft h ep l a t f o r m ,a n dt h ec u r r e n tr u n n i n gs i t u a t i o n p r a c t i c eh a sp r o v e dt h a tt h ee x c h a n g em o d e lw h i c hi sb r o u g h ta n di m p l e m e n t e db y t h i sp a p e r , c a nr e a l i z et h ed a t at r a n s f e r r i n ga n ds h a r i n ga m o n gt h ed i f f e r e n td a t a r e s o u r c e s ,a n dc a nb ea ne f f e c t i v ep l a t f o r ma r c h i t e c t u r ef o rd a t ae x c h a n g e k e y w o r d s d a t ae x c h a n g e m i d d l e w a r ej a v am e s s a g es e r v i c e e x c h a n g ed o m a i n i i 引言 引言 近年来,企业信息化进程快速发展,对各种旧有应用的不断扩充和新应用的 不断增加,企业i t 部门面临诸如不同硬件平台、不同网络环境、不同数据库之间 的互操作,多种应用模式并存,造成多个系统之间数据交换不规范、网状数据共 享不通畅、数据同步无保证、数据安全无保证等问题,产生了“信息孤岛 现象。 建立跨区域的,实现异构系统之间、新老系统之间信息的透明交换是基础性 工作。如果单纯依赖传统的系统软件或工具软件提供的功能已经不能满足要求, 用户迫切需要的是一种简捷、屏蔽和疏通了复杂的基础技术细节,使企业的计算 系统开发、部署与管理变得轻松和谐的企业应用新方式。于是,基于中间件的数 据交换平台软件开始在i t 应用中发挥出其无可替代的承上启下作用。 中间件近几年来逐渐成为构建网络分布式应用系统的重要支撑工具。它能够 解决网络分布计算环境中多种异构数据资源的互联共享问题,实现多种应用软件 的协同工作,是网络分布式应用软件的网络“操作系统”。随着中间件技术的不断 发展,在现今的交换系统中,核心的通信机制多采用消息中间件。面向消息中间 件采用消息传递和排队技术,实现分布环境中的进程通信,其优势为: ( 1 ) 通讯程序可在不同的时间运行。程序不在网络上直接相互通话,而是间 接地将消息放入消息队列,因为程序间没有直接的联系。 ( 2 ) 对应用程序的结构没有约束。通讯程序之间可以是一对一的关系,一对 多和多对一方式,甚至是上述多种方式的组合。多种通讯方式并不增加应用程序 的复杂性。 ( 3 ) 程序与网络复杂性相隔离。程序将消息放入消息队列或从中取出消息来 进行通讯,与此关联的全部活动,比如维护消息队列处理网络的重新启动等是 m o m 的任务,程序不直接与其它程序通话,并且不涉及网络通讯的复杂性。 基于消息中间件的这些特性,本文论述了以中间件技术为核心技术的数据交 换平台的设计与实现。提出以交换域来划分交换区域,以交换节点服务实现单个 数据源的交换配置信息的设计思想。主要包含数据安全交换系统、数据标准定制、 数据转换、元数据服务器、平台配置管理工具功能。实现异构数据系统之间的数 据共享与转换。文中重点阐述如何利用消息中间件来进行消息传递,及如何将数 据源的数据表示成标准的消息格式。文章的主体结构如下所述。 论文第一章主要说明问题相关领域的发展现状,介绍了数据交换技术,及该 技术的常用实现方式及存在问题,给出本系统的研究目标。第二章详细介绍了中 间件技术,侧重于消息中间件的学习,其中j m s 的特性是本平台需要利用的。第三 基于中间件技术的数据交换平台的设计与实现 章详细分析了数据交换的现有环境,给出了系统的总体设计方案以及主要功能描 述。第四章详细的介绍了数据交换部分的具体实现方法,并围绕j m s 消息机制描述 出不同节点间数据交互的全过程。第五章给出了平台配置管理工具的实现,平台 的管理性能,并介绍了平台的部署方式,及在某企业内部试运行的实际情况。 设计并开发一个完整的数据交换平台是一个庞大的工作,涉及到较多的理论 知识和实现技术,因此本文所实现的系统只是平台的核心部分,完成整个平台的 架构设计,实现基本的数据交换需求,还有许多的地方需要完善。加之作者水平 有限,难免存在遗漏和不足,敬请批评指正。 2 第一章数据交换平台概念的提出 第一章数据交换平台概念的提出 1 1 数据交换的需求背景 目前,众多行业信息系统出现了缺乏整体规划和系统性的问题,系统彼此间 缺乏统一的工作流管理和数据流管理。在地域间及应用系统间的数据交换,多采 用单独开发特定数据交换程序来实现,过多的单点连接增加系统的复杂性和不稳 定性,数据交换困难,“信息孤岛”问题愈发突出。随着信息融合需求的不断增加, 原有各垂直系统间的互操作性就越来越必要,对系统能够无缝地进行通信和共享 数据,从而在i n t e m e t 环境下,消除巨大的信息孤岛,实现信息共享、达到信息的 一致性的要求越来越迫切。 数据交换是解决此问题的有效方式。数据交换是一种计算机应用技术,根据 事先达成的协议,将信息按照一定的标准进行格式化处理,并把这些格式化的数 据,通过计算机通信网络在其计算机系统之间进行交换和自动处理。 作为计算机通信技术的一部分,数据交换可以应用于制造业、运输业、零售 业以及卫生保健和政府部门等各种经济部门之中。目前随着数据交换需求的扩大, 其发展趋势大致有这样三个方向: ( 1 ) 应用的行业越来越多; ( 2 ) 与其它信息传送技术和系统的一体化; ( 3 ) 与i n t e m e t 结合得越来越紧密。 1 2 平台的开发背景 1 2 1 软件平台化的趋势 软件通用产品与用户需求个性化的矛盾过于突出,使得近年软件平台成了焦 点。涌现出各种各样的平台软件,如数据交换平台、报表生成平台、电子商务软 件平台、电子政务平台、e r p 平台等等。 ( 1 ) 什么是软件平台 软件平台是指用来构建与支撑应用软件的独立软件系统。它是开发与运行应 用软件的基础,是任何一个应用软件得以实现与应用的必要条件。 软件平台用一个简单的公式定义,即“软件平台= 中间件软件+ 通用业务组件 。 以中间件为核心的软件平台技术的产生是一种必然要求,不同于国外厂商的基础 架构软件,软件平台更强调对用户的直接价值。软件平台有两个基本要素,即支 撑环境和开发体系,支撑环境是指应用软件系统开发与运行的基本条件,开发体 基于中间件技术的数据交换平台的设计与实现 系是指开发与维护管理应用软件的工具与方法。 ( 2 ) 软件平台的典型特征 软件平台的典型特征可归纳为以下几个要点。软件平台以中间件为基础,中 间件是软件平台的核心支撑系统。软件平台一般是网络化的应用解决方案,需要 基于中间件技术去构建。 软件平台的中间件层较好地解决了异构系统的互联,并且为各种不同的系统 的集成提供了一个集成的框架:软件平台的通用业务组件层提供了实现快速的应 用集成的预置组件。整个集成过程便捷、快速、可靠。 软件平台是应用系统的核心支撑,整个软件平台需要部署到用户的实际环境 中去。由于应用系统不可能一次建成,因此软件平台必须支持应用方便地扩充。 软件平台的扩展能力来自于中间件软件的通用性和通用业务组件的可扩充能力。 ( 3 ) 软件平台发展趋势 目前软件平台表现出两种新趋势:一是软件基础架构平台的兴起,二是业务 流程管理平台的诞生。前者是一种为复杂应用软件系统提供通用技术基础架构的 软件平台,如有b e a 的w e b l o g i c 、i b m 的w e b s p h e r e :后者是指以业务导向和驱动 的、可快速构建应用软件的软件平台。业务流程管理平台是一个新出现的层级, 它的出现将大大缩短大型应用软件系统的开发周期,减少软件开发成本。目前从 事业务流程管理平台的代表提供商有j u s t e p 、东软金算盘、用友、金蝶等,国外厂 商有b a a n 、s a p 等。 1 2 2 数据交换平台的研究及发展现状 数据交换是解决数据共享的有效方式,而平台化的软件架构是这种网络化的 应用解决方案。以中间件为构件的基础平台不仅可为正在建设的各种不同网络应 用提供强大的开发和运行支撑,而且平台的集成和协同特性可以解决目前信息化 中普遍存在的“信息孤岛 。 数据交换平台的逻辑功能即“软总线+ 软构件”模式架构,数据交换平台类似 一根智能消息传输总线,连接了分布的异构系统中的各个构件,负责各构件与数 据源这间的数据访问传输。数据交换平台可实现任意个系统之间的任意的数据交 互。逻辑模型如图1 1 所示。 4 第一章数据交换平台概念的挺山 剖1 1 数据交换平台实施方案图 我国早已经丌始重视和普及数据交换技术,并与平台软件结合在一起,近几 年很多公司在数据交换平台方面都已经快速发展。下面列举两个典型的数据交换 平台软件,也是本文前期研究时的重要参考。 方正数码公司2 0 0 2 年提出了面向信息资源整合的跨地域、跨部门不同业务系 统之间的数据整合提供了进行转换和交流的安全信息交换平台方正易畅 l n f o h u b 。方正易畅l n f o h u b 安全信息交换平台的信息系统中为终端节点提供安全可 靠的消息传输。它采用基于x v i l 技术的消息结构进行信息的表达,存储及传输。 作为封装在消息结构中的消息内容可以是x m l 格式的信息,也可以是采用用户自己 定义的格式的信息。 北京慧点开发的基于数据交换中心的统一政务交换平台支持跨平台异构应用 系统,可以解决数据共享与集成问题,适用于电子政务、大规模企业的应用系统 数据集成和业务集成。数据交换中心利用w e bs e r v i c e 技术来实现,以x m l 为跨平 台数据交换的技术,以j a v a 为跨平台代码交换的技术,建立了各政务应用系统沟通 和对社会服务的接口标准和服务标准,实现了赵好的数掘封装、交换和共享。 1 3 本文所述数据交换平台的研究目标 前面所述的数据交换平台软件,是本文的重要参考,本文旨在提出一种面向 全行业的的数据交换平台的软件架构,主要致力于下面几点问题的解决。 ( 1 ) 网络通信传输标准:增强对异构网络环境的适应性处理: ( 2 ) 数据标准化:提供独立的业务数据访问与转换处理的接口; ( 3 ) 针对行业;面向全行业,不针对具体业务数据的通用交换模式。 本文所提出的数掘交换平台的解决方案,虽不足以完全解决上面的所有问题, 5 基于中间件技术的数据交换平台的设计与实现 但是借鉴已有平台并对其进行改进。本文欲阐述的交换平台设计方案,采用消息 中间件为核心技术,提出了交换域的设计思想,拥有可扩展的消息传输虚拟接口, 适应不同网络环境,如特殊安全隔离装置的区域等。提供专用的数据访问处理a p i , 供用户统一访问或二次开发。平台面向全行业,设计一种通用的数据表示模式与 交换模式,而只需针对具体行业,进行底层的配置信息编写,且注重扩展性。 6 第二章中间件技术 第二章中间件技术 2 1 中间件技术总述 2 1 1 什么是中间件 随着计算机应用范围的扩展,许多应用程序需在网络环境的异构平台上运行。 在分布式异构环境中,通常存在多种硬件系统平台( 如p c ,工作站,小型机等) , 各个硬件平台上存在多种系统软件( 如不同的操作系统、数据库、语言编译器等) , 以及风格各异的用户界面,硬件系统平台间采用不同的网络协议和网络体系结构 连接。如何将这些系统集成起来并开发新的应用是一个非常现实而困难的问题。 为解决分布异构问题,提出了中间件( m i d d l e w a r e ) 的概念。中间件是处于应用 软件和系统软件之间的一类软件,是独立于硬件或数据库厂商( 处于其产品的中 间,实现其互连) 的一类软件,是客户方与服务方之间的连接件,是需要进行二 次开发的中间产品。 中间件提供位于硬件及操作系统和应用之间的通用服务。如图2 1 所示,这些 服务具有标准的程序接口和协议【l 】。服务提供针对不同的操作系统和硬件平台的、 符合接口和协议规范的多种实现。中间件的主要作用是用来屏蔽网络硬件平台的 差异性和操作系统与网络协议的异构性,使应用软件能平滑地运行于不同的硬件 系统或操作系统之上。同时中间件在负载平衡、连接管理和调度方面起了很大的 作用,使企业级应用的性能得到大幅提升,满足关键业务的需求。 图2 1 中间件平台的位置 中间件应具有如下的一些特点: 满足大量应用的需要。 基于中间件技术的数据交换平台的设计与实现 运行于多种硬件和o s 平台。 支持分布计算,提供跨网络、硬件和o s 平台的透明性应用或服务的交互。 支持标准的协议。 支持标准的接口。 由于标准接口对于可移植性和标准协议对于互操作性的重要性,使中间件成 为许多标准化工作的主要部分。对应用软件开发,中间件要比操作系统和网络服 务更重要,它提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的 计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对 外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开 发和维护中的重大投资。 2 1 2 中间件的分类 中间件包含范围十分广泛,针对不同的应用需求有多种各具特色的中间件产 品。如消息中间件、对象中间件、交易中间件、数据访问中间件、应用服务器中 间件和安全中间件等多种类型的软件产品。在不同的角度或不同的层次上,对中 间件的分类也有所不同。根据中间件在系统中所起的作用和采用的技术不同,大 致划分为以下五种【2 3 】: ( 1 ) 数据库中间件( d m ,d a m b a s em i d d l e w a r e ) 数据库中间件是应用最广泛,技术最成熟的一种中间件。最典型的实例就是 o d b c ,o d b c 是一种基于数据库的中间件标准,它允许应用程序与本地或者异地 的数据库进行通信,并提供了一系列的应用程序接1 2 a p i 。在写数据库程序的时候, 只需在o d b c 中添加一个数据源,就可以直接在应用程序中使用这个数据源,而不 用关系目标数据库的实现机制,甚至不必了解o d b c 向应用程序提供了哪些应用程 序接口a p i 。实际上在数据库中间件处理模型中,数据库是信息存贮的核心单元, 中间件完成通信的功能。 ( 2 ) 远程过程调用中间件( r p c ,r e m o t ep r o c e d u r ec a l l ) 远程过程调用是另外一种形式的中间件,它在客户朋艮务器计算方面,比数据 库中间件又迈进了一步。r p c 沿用了大多数程序员都非常熟悉的编程模式程序 员如同调用本地过程一样在程序中调用远程过程,启动远程过程的运行,然后将 运行结果返回给本地程序。此外,远程过程调用可以将程序的控制传递到远端的 服务器中。 r p c 的灵活特性使它有比数据库中间件更广泛的应用,可以在更复杂的客户 服务器计算环境中应用。它不仅可以调用远端的子程序,而且这种调用是跨不同 操作系统平台的。 r 第二章中间件技术 r p c 也有一些缺点,主要原因是r p c 一般用于应用程序之间的通信,而且采用 同步通信方式,因此适用于小型的、简单的、不要求异步通信方式应用。对于一 些大型应用,这种方式不是很适合,因为此时需要考虑网络或者系统故障,处理 并发操作、缓冲、流量控制以及进程同步等一系列复杂问题。 ( 3 ) 面向消息中间件( m o m ,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 中间件 产品有i b m 的m q s e r i e s 、b e a 的m e s s a g e q 等。 面向消息中间件连接多个客户端程序( 通常是应用程序) ,可以同时提供可 靠便捷的数据同步和异步的传输。比如在一个广域网环境下,使用消息中间件可 以保证两个在不同子网内的数据库系统可以可靠地进行数据交换,而不用过多的 在网路改造上投入。 ( 4 ) 基于对象请求代理的中间件( o r b ,o b j e e tr e q u e s tb r o k e r ) 对象请求代理是近年来才发展起来的一项新技术,它可以看作是和编程语言 无关的面向对象的r p c 应用,可视为从面向对象过渡到分布式计算的强大推动力 量。从管理和封装的模式上看,对象请求代理和远过程调用有些类似,不过对象 请求代理可包含比远过程调用和消息中间件更复杂的信息,并且适用于非结构化 的或者非关系型的数据。 目前有两种对象请求代理的标准,分别是c o r b a 和d c o m ,这两种标准是相 互竞争的,而且两者之间区别很大,这在一定程度上阻碍了对象请求代理中间件 的标准化进程。 ( 5 ) 事务处理中间件( t p m ,t r a n s a c t i o np r o c e s s i n gm o n i t o r ) 事务处理中间件是一种复杂的中间件产品,是针对复杂环境中分布式应用的 速度和可靠性要求而实现的。它给程序员提供了一个事务处理的a p i ,程序员可以 使用这个程序接口编写高速而且可靠的分布式应用程序基于事务处理的应用 程序。 事务处理中间件向用户提供一系列的服务,如应用管理,管理控制,以及应 用程序间的消息传递等。常见功能包括全局事务协调、事务的分布式两段提交、 资源管理器支持、故障恢复、高可靠性、网络负载平衡等等。 以上是五种中间件的概述,由于中间件需要屏蔽分布环境中异构的操作系统 和网络协议,它必须能够提供分布环境下的通讯服务,目前可实现这种通讯机制 9 基于中间件技术的数据交换平台的设计与实现 的中间件有三种,分别是上述提到的远程过程调用,面向消息的中间件,对象请 求代理。 它们可向上层应用提供不同形式的通讯服务,包括同步、排队、订阅发布、 广播等等。在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同 领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器o t m 等。通讯 平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应 用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供 处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用 调用框架,用户程序也不必关心框架结构、执行流程、对系统级a p i 的调用等,所 有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易 管理性、高可用性和可移植性。 2 1 3 中间件产品的应用与发展 中间件产品概念两极分化,即由通用中间件逐渐分化为与平台软件( 如操作 系统、数据库管理系统等) 结合日趋紧密的基础中间件,和与行业应用系统结合 日益紧密的应用中间件。 基础中间件典型产品,包含应用服务器、消息中间件、数据访问中间件等, 开发厂商包括b e a 、m m 、东方通科技、微软和o r a c l e 等中间件厂商。 应用中间件典型产品,如电子政务系统集成开发平台等,其开发商主要是国 内众多中小软件企业和系统集成商。应用中间件实际上是针对具体的行业应用系 统,整合其相关的功能而开发的一种应用集成平台,其本质应当属于行业应用软 件的范畴。 近几年中间件产品逐渐成为构建网络分布式应用系统的重要支撑工具。它能 够解决网络分布计算环境中多种异构数据资源的互联共享问题,实现多种应用软 件的协同工作,是网络分布式应用软件的网络“操作系统 。利用中间件可大幅 提高应用软件系统的开发效率,增强系统稳定性,使系统便于维护管理,同时具 有良好的伸缩性与可扩展性,充分保护用户投资、降低系统投资风险。因此技术 和应用的发展使中间件成为分布式应用的关键性基础设施,可广泛适用于政府部 门、银行、证券、保险、电力、电信、交通与军事等关键性的网络分布应用。 目前中间件产品已开始在我国应用于金融、电信、邮政、交通、电力、公安、 政府及电子商务等领域,但多为国外的产品所垄断,因此发展中国自己的中间件 平台,对于提高信息化建设水平,解决信息安全等问题都具有极其重要的意义。 同时,国内的研究基础与国外先进水平差距不大,为中间件技术的研究与应用提 供了机会。 1 0 第二章中间件技术 此外,中间件的意义不仅仅在于它自身解决的关键技术问题,而且对于软件 的二次开发有着相当重要的积极作用【4 】。因为,中间件产品将不仅是一种软件产品, 更多的将提供一种计算模型与标准,一个良好的网络分布应用开发平台,第三方 开发适于各种领域应用的软件,带动软件产业的发展。本文所提出的软件平台也 将抽取出符合业务需要的数据交换中间件供应用整合。 因此,以中间件技术为基础的应用平台将是我国软件产业切入基础软件领域 的一次契机,推动我国基础关键软件的突破,带动软件的规模化和产业化。国家 有关部门已把中间件列入重点发展的软件项目,其中本文所述的数据交换平台也 位列其中。 2 2 面向消息的中间件 2 2 1 面向消息的中间件在平台中的作用 由前面的研究中可知,在分布式应用中,完成不同系统间的数据传递通信, 实质上有两种实现方式完全不同的方式,它们是基于r p c 的中间件和消息中间件 ( m o m ) 。基于r p c 的中间件包括j a v a r m i 、o m g sc o r b a 及m i c r o s o f td c o m : 消息中间件包括m m sm q s e d e s 、p r o g r e s s ss o n i c m q 及f i o r a n om q 等等。 相对于r p c ,消息中间件在分布式环境通信中的优势有以下几点【2 】: ( 1 ) 在r p c 的环境中,各应用系统必须时时地联系在一起以保证它们之间的 通讯畅通,而在m o m 环境中,系统间可能是脱节的且根本无须知道对方的存在。 也就是说,消息中间件的优点在于能够提供客户与服务器之间的同步和异步连接, 并且在任何时刻都可以将消息进行传送或者存储转发,这是消息中间件比远程过 程调用更进一步的原因。 ( 2 ) 消息中间件能够实现程序与网络复杂性相隔离,而忽视企业原有系统处 于不同网络环境中,涉及不同的通信方式。程序在消息队列中存取消息,与此关 联的全部活动,如维护消息队列、处理网络重启和在网络中移动消息等是中间件 的任务,程序不直接与其它程序通话,不涉及网络通讯的复杂性。同时,消息中 间件能够屏蔽操作系统和网络协议的差异,因此便于为应用程序提供其它通讯机 制,以满足不同领域的需要。 ( 3 ) 消息中间件通常都提供丰富的a p i 函数接口,可以支持标准开发语言, 特别是对标准的c c + + 和j a v a 的支持,方便在不同应用平台的应用开发,同时实际 上也增强了消息传输中间件的跨平台能力。 ( 4 ) 与远程过程调用相比,消息中间件不支持程序控制的传递,不过这种缺 憾和它的优势比起来是无关紧要的。 基于中间件技术的数据交换平台的设计与实现 总结起来,消息中间件( m o m ) 能做到真正跨平台的数据通信,满足异构平 台的数据通信要求。消息中间件利用高效可靠的消息传递机制进行平台无关的数 据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排 队模型,实现分布环境下的平台节点扩展进程间的通信,并支持多通讯协议、语 言、应用程序、硬件和软件平刽。 基于m o m 的这些特点,它被广泛地应用于企业中,为应用程序提供一个相对稳 定的高层应用环境。消息中间件适用于需要在多个进程之间进行可靠的数据传送 的分布式环境,尤其是近年来应用整合成为新一轮应用系统建设的热点,其中消 息中间件扮演了重要的角色。本文所述平台即使用面向消息的中间件,作为数据 交换进程的通信方式。 随着消息中间件应用的发展,消息中间件的应用前景会越来越广阔,将会脱 离数据传输的范畴而成为一种新的应用模式:用消息驱动使异步更合理更优化; 用消息队列来实现负载均衡机制也是一个很好的理念;目前各种消息队列服务系 统都各自用自己的传输协议,将来的发展趋势会有通用的传输协议。 2 2 2j a v a 消息服务 以往由于消息中间件的实现厂商不同,使其接口不够开放,不能很好适应 i n t e m e :境下的应用,而这种情况已随着j a v a s o f t 发布j a v a 消息服务( j a v am e s s a g e s e r v i c e ) 规范而有所改变。如今,m o m 已逐渐为消息基本结构和应用服务器开发人 员广为接受。 j m s 规范代表在基于标准的消息中间件领域的领先概念,是一种基于j 2 e z 标准 的接口规范,它包括了消息的创建、发送和接收a p i ,以及一个提供诸如持久、验 证和事务语义的消息服务【5 】。与j d b c 相似,开发人员可以用相同的j m sa p i 访问不 同的系统,而与消息中间件的提供厂商无关,这样就可使分布式应用可以在不同 消息中间件产品之间转移。 ( 1 ) j m s 的异步通信方式 j m s 消息系统的应用为分布式系统的通信提供了便利,因为消息的处理是以异 步方式进行的,这意味着j m s 客户发送一个消息之后无需等待响应而可以继续执行 其他指令。异步处理较之同步处理相比,好处是: a ) 提高了系统的性能,由于异步处理不再采用阻塞调用方式,删s 客户发送 消息之后还可以继续向前推进; b ) 使系统更加健壮,在异步调用过程中如果消息的接收者发生异常,不会像 同步处理那样使得客户机由于无法得到响应而崩溃; c ) 使得系统更加灵活,采用异步处理的分布式系统可以建立在一种相对宽松 1 2 第二章中间件技术 的架构上,消息的发送者和接收者无需为了通信而同时在线,也无需知道对方存 在与否。 ( 2 ) j m s 的两种通信机制 在m s 中,消息发送客户机只需要将消息发送到虚拟的主题队列上,其他订阅 该主题的消息接受客户机设置的监听器就会监听,如果有新的消息到来,就从消 息队列中得到该消息。j m s 支持两种异步消息处理模式:点对点( p o i n t 。t o - p o i n t ) 和发布订阅( p u b l i s h s u b s c r i b e ) 1 6 】。 a ) 在点对点模型中,消息的发送者向一个消息队列发送消息,然后消息的接 收者就可以从该消息队列中取得消息:消息的发送者和接收者之间一一对应的关 系,每个消息都有一个指定接收者,接收者可以不同,但是只有一个接收者来使 用消息。如图2 - 2 所示。 图2 - 2 点对点模型图 b ) 在发布订阅模型中,消息的发布者向一个主题通道发布消息,而消息的 订阅者可以通过该主题通道取得消息。不同于点对点模型,消息的发布者和订阅 者之间是一对多的关系。多个用户订阅一个特定的主题消息并接收那个消息,不 必管其它订阅者的数量是多少。消息订阅者和消息发布者保持互相独立,不需要 接触即可保证消息的传送。如图2 3 所示。 图2 3 发布订阅模型图 ( 3 ) 采用j m s 系统的特征 a ) 与平台无关性。j m s 是种基于j a v a 的技术,因而它具有与j a v a 相同的这种 特性。 b ) 松耦合性。包括运行状态和应用系统两个方面【7 1 。 运行状态的松耦合。在消息的传输过程中,所有涉及到的过程( 或运行的线 程) 都是松散联结的。当发送方向队列传送数据时,无须考虑接收进程是否存在, 1 3 基于中间件技术的数据交换平台的设计与实现 因为消息的生产者和消费者的运行状态彼此是完全独立的,即使他们在不同的时 间运行,传输事务仍可成功。 应用系统的松耦合。消息技术产生了另一类的松耦合,即应用级别的松耦 合。通常每个应用只是关心读消息和写消息,它们担心读、写消息所需的那些a p i , 而j m s 是一个标准的a p i ,它不太可能随着时间而改变,且消息携带着业务接口在 各应用间传送,这就将应用间的整合从以接口为中心转向以数据为中心。 由于j m s 应用彼此间并不直接进行通信,因此它是以数据为中心的应用,这种 应用提供了进程级别和应用级别解耦的一种结合。因为现在系统不与进程或程序 绑定,两个需要通讯的远程系统无须依赖对方就能运行。 c ) 异步特性。发送用例向队列发送数据后,不用等待接收方的回复,因为接 收用例可以在任何有效的时间内从队列中获得数据。从发送方的角度来看,异步 消息意味着一个进程或线程向目的地发送消息后不希望得到任何回复;而从接收 方的角度来看,异步消息意味着它收到信息后,并不需要立即发送回复给发送者。 d ) 可靠性。j m s 具有消息系统的可靠性。它可以选择把消息保存到持久存储 器中。可以在客户断开连接时保存消息,并在客户端重新连接到服务时发送它们。 e ) 事务特性。在消息系统中包含回滚和提交两个概念,它们的存在确保了消 息系统的两个基本操作读消息和写消息能够顺利的完成。 在上述架构中,可以将异步接收用例和下一步处理作为一个事务的范围,这 样可确保所接收的数据全部进入后续的处理过程。如果在后续的处理过程中出现 故障,事务将无法提交,并被回滚,同时异步接收用例将重新从目的地中接收数 据,只有事务提交后,目的地中的数据才会被清除。 2 2 3w e b l o gics e r v e r 对j m s 标准的实现 b e aw e b l o g i cs e r v e r 是一种市场市场的应用服务器,用于企业级的、多层次 的完全分布式的应用。实现了j 2 e e l 3 、w 曲服务和相关标准,诸如s c r v c l c t 、j s p 、 j d b c 、j n d i 、r m i 、j m s 等等。重点阐述w e b l o g i cs e r v e r 提供的j m s 标准的完全 实现。下面列举重要的几方面的内容。 ( 1 ) 支持规范定义的点对点和发布订阅a p i ,并支持点对点和发布6 订阅域中 定义的基本对象【5 1 ,如下所列: 连接工厂( c o n n e e t i o n f a c t o r y ) 。连接工厂由管理员创建,并在启动时被绑定 至u j n d i 树中,j m s 客户端使用j n d i 查找连接工厂,再使用连接工厂建立刑s 连接。 w e b l o g i c 有两个默认的连接工厂:w e b l o g i c j m s c o n n e c t i o n _ f a c t o r y 和w c b l o g i c j m s x a c o n n c c t i o n f a c t o r y 。 连接( c o n n e c t i o n ) 。j m s 连接代表蹦s 客户端恭l w e b l o g i cs e r v e r 间的活动连 1 4 第二章中间件技术 接。j m s 客户端创建连接的方法是调用c o n n e c t i o n f a e t o r y 的c r e a t e q u e u e c o n n e e t i o n 或c r e a t e t o p i c c o n n e c t i o n 方法。 会话( s e s s i o n ) 。j m s 会话代表客户端与j m ss e r v e r 的交谈状态。可以从j m s 连接创建会话,而且会话代表j m s 客户端和服务器之间会话的一个线程。p t p 模型 使用j a v a x j m s q u e u e s e s s i o n ,发布订i 阅j a v a x j m s t o p i c s e s s i o n 。 目的地( d e s t i n a t i o n ) 。j m s 目的地是生产者和消费者的实际消息传递资源。 p t p 消息传递定义j a v a x j m s q u e u e ,发布订阅包墒a v a x j m s t o p i c 。 j m s 支持的上述两种通信模型的基本对象都是单独定义的,但它们的功能在两 个域中是完全一样的,即它们采用统一的编程模型。 ( 2 ) 支持的消息类型 j m s 有5 种标准的消息类型,三种结构化或半结构化的消息类型( m a p m e s s a g e 、 o b j e c t m e s s a g e 和s t r e a m m e s s a g e ) 以及两种非结构化的或自由格式的消息类型 ( t e x t m e s s a g e f 阿l b y t e s m e s s a g e ) 用。而w e b l o g i cj m s 额外实现了另一种消息类型。 列出如下: s t r e a m m e s s a g e 。由一个已序列化的流对象组成。必须按照编写它们的顺序从 流中读取,通常用于与j a v 堪元相关的对象。 m a p m e s s a g e 。由名称值对组成的消息。类似哈希表,这些对无序,且每个名 称在地图中必须唯一,值通常是j a v a 基元相关的对象。 t e x t m e s s a g e 。一种保存文本字符串的消息类型。 o b j e c t m e s s a g e 。保存已序列化的对象的消息。 b y t e s m e s s a g e 。原始的字节流需要完全控制原始消息格式的客户端可以使用这 种消息类型。 x m l m e s s a g e 。w e b l o g i cj m s 对t e x t m e s s a g e 类型的扩展类型,以优化x m l 消 息的改善和选择。但会引起与其他消息类型无关的开销。 ( 3 ) 消息确认 j m ss e r v e r 将会保留每条消息,直到消费者确认消息为止。当在事务中消费消 息时,提交事务时就会做出确认。j m s 规范了三种标准的确认模式jw e b l o g i c 又 增加了两种。分别是a u t 0

温馨提示

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

评论

0/150

提交评论