(计算机应用技术专业论文)支持erp开发的消息传递系统的研究.pdf_第1页
(计算机应用技术专业论文)支持erp开发的消息传递系统的研究.pdf_第2页
(计算机应用技术专业论文)支持erp开发的消息传递系统的研究.pdf_第3页
(计算机应用技术专业论文)支持erp开发的消息传递系统的研究.pdf_第4页
(计算机应用技术专业论文)支持erp开发的消息传递系统的研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 随着世界经济由传统型经济向知识型经济和网络型经济的发展。e r p 在企业 信息化的进程中发挥了巨大的作用。当传统e r p 融入了电子商务的思想,就要求 传统的e r p 软件转型以适应需要,但是它们的应用和商业逻辑一般都是紧耦合的, 改造难度很大。这就要求实现内部逻辑与外部实现间的松耦合结构,中间件技术 的引入就显得十分必要。 首先,本文通过引入中间件和c s c w 技术,采用j 2 e e 构建e r p 系统协作工作平 台,该平台具有良好的可扩展性、灵活性、集成性和协同性。 其次,在该平台的基础上,构建中间件系统体系结构,并提出本文的工作重 点:消息传递系统的设计与开发。为了提高短消息系统的灵活性和增强通信性能 力,本文引入消息中间件技术,以此作为它的通信手段。 望。 最后,为了保证消息传递的安全性,本文对中间件的安全机制作了初步探讨。 结尾部分总结了论文所有的的研究工作,并对工作的进一步发展做出了展 关键词:j 2 e ec s c we r ps m s 中间件消息中间件安全 a b s t r a c t a st h e 酉o b a le c o n o m y b e i n gt r a n s f o r m e di n t ok n o w l e d g ea n dn e t w o r ke c o n o m y f r o mt r a d i t i o n a le c o n o m y , e r ph a sag r e a te f f e c ti ni n f o r m a t i o np r o c e s s w h e n t r a d i t i o n a le r ph a sd r a w ni n t oe bi d e a , t h et r a d i t i o n a le r ps o f t w a r e ss h o u l dc h a n g e i t st y p ef b rt h cs a k eo fa d a p t i n gt oe n t e r p r i s e s d e m a n d b u tt h e i ra p p l i c a t i o na n d c o l n n l e e n c el o g i ca r ea l lt i g h tc o u p l i n g , s oi ti sd i f f c u l tf o rt h e mt ot r a n s f o r m o nt h e b a s i so fa b o v ea s h - i t s ,t h el o o s ec o u p l i n gs t r u c t u r eb e t w e e ni n t e r a ll o g i na n de x t e r a l r e a l i z a t i o ns h o u l db ed e s i g n e d ,m e a n w h i l em i d d l e w a r et e c h n o l o g yb ei n t r o d u c e d f i r s t l y , t h ep a p e ri n t r o d u c e st h em i d d l e w a r ea n dc s c w t e c h n o l o g i e s ,a n da d o p t s j 2 e et os e tu pe r pc o l l a b o r a t i o np l a t f o r m t h i sp l a t f o r mi se x t e n s i b i l i t i v e ,f l e x i b l e , i n t e g r a t i v ea n dc o l l a b o r a t i v e s e c o n d l y , w ef o c u so nt h ed e v e l o p m e n to fe v e r ym i d d l e w a r e ,a n dp r o p o s et h e f o c a ls t u d y i n gp o i n to ft h ep a p e r :t h ed e s i g na n dd e v e l o p m e n to fm e s s a g e t r a n s m i t t i n g s y s t e m i no r d e rt oi m p r o v et h ef l e x i b i l i t yo fs m sa n dt h ea b i l i t yo fc o m m u n i c a t i o n , t h ep a p e ri n t r o d u c e sm i d d l e w a r et e c h n o l o g ya n di ta c t sa st h ec o m m t m i c a t o nm e a n s o f s m s f i n a l l y , t h ep a p e rs i m p l ys t u d i e st h es e c u r i t ym e c h a n i s m so fm i d l l e w a r e c o n s i d e r i n gt h es e c u r i t yo fm e s s a g et r a n s m i t t i n g t h el a s tp a r ts u m m a r i z e sa l lt h er e s e a r c hw o r k sa n dg i v e ss o m ep r o s p e c tt ot h e 如n i l 。rw o r k s k e yw o r d s - j 2 e e ,c s c w , e r p , s h o r tm e s s a g es e r v i c e ,m i d d l e w a r e ,m e s s a g e m i d d l e w a r e ,s e c u r i t y 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特射热以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤壅盘茔或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位擞储签名暇签字醐耐年 另卯 学位论文版权使用授权书 本学位论文作者完全了解墨鲞盘堂有关保留、使用学位论文的规定。 特授权鑫壅盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 、 学位论文储躲候橙枣师躲刮夯叮 签字日期:劢尹7 月g 日签字日期:- 【年1 月f 日 第一章绪论 1 1 引言 第一章绪论 随着世界经济由传统型经济向知识型经济和网络型经济的发展,特别是我国 加入w t o 后,企业直接面对的是国际市场,直接参与的是与国际跨国公司的竞争, 企业的生存和发展日益面临着新的巨大的机遇和挑战。由于信息化已经成为世界 经济的一种大趋势,电子商务越来越成为发达国家普遍采用的经销方式,跨国公 司对信息技术的应用已经达到了相当先进的水平。因此,实现企业信息化不仅是 企业开发利用信息资源、建立快速反应系统、提高市场竞争能力的迫切需要,而 且也是企业参与国际竞争与合作的必要前提,是应对经济全球一体化的必然选 择。 企业信息化就是指企业利用网络、计算机、通信等现代信息技术,通过对信 息资源的深度开发和广泛利用,不断提高生产、经营、管理、决策效率和水平, 从而提高企业经济效益和企业核心竞争力的过程。随着我国企业信息化建设的不 断发展,很多企业和i t 专业厂商已经组织开发了e r p ( e n t e r p r i s er e s o u r c ep l a n ) 系统,极大地提高了我国企业的信息化水平。但传统的e r p 系统大多基于c s 架构, 一般只适用于应用系统的客户端数目较少并且是在同一个区域中的情况。随着企 业业务规模的扩大和市场的发展,企业应用系统现在必须超越传统的企业限制, 将他们的内部系统与i n t e r n e t 上的其他服务系统楣集成。随着孵w 的应用,也出 现b s 架构的e r p 系统,但提供给用户的都是比较简单的界面,即使各级用户的地 位和作用以及他们对解决方案的需求不同,见到的交互界面都是相同的。这种人 机交互方式不符合以用户为中心的设计原则,并不能合理地帮助用户获得他们需 要的功能支持,也容易让用户失去对工作重点的把握。 另外,传统e r p 不断向企业外部扩展形成了e r p i i 概念“1 ,即纳入了供应链管 理、客户关系管理和供应商管理等功能,融入了电子商务的思想,使得企业不再 是信息海洋中的孤岛。这就要求传统的e r p 软件转型以适应需要,但是它们的应 用和商业逻辑一般都是紧耦合的,改造难度很大。这就需要实现内部逻辑与外部 实现间的松耦合结构,中间件技术的引入就显得十分必要。中间件位于操作系统、 第一章绪论 数据库与应用软件之间,这种三层结构有助于对用户屏蔽底层复杂的编程逻辑和 功能改动,而只需提供出清晰的接口。目前e r p 发展得很快,又缺乏统一的规范, 因此采用中间件技术比较适合作为e r p 开发平台的底层支持。但是当前已有的中 间件平台仍然存在着一些问题:平台缺乏清晰的层次划分;紧耦合和相关性强: 平台功能的变动对平台的结构稳定性影响较大等。i n t e r n e t 发展的需要,现在采 用的新的软件结构是一个分布式的多层体系结构。 1 2 中间件技术现状 随着面向对象技术以及i n t e r n e t 技术的发展,分布式组件技术便应运而生, 它由面向对象技术发展而来,以面向对象技术为基础,其可重用性高,可维护性 好,可扩展性强,而分布式组件技术尤其适用于网络应用。当前可以使用的、具 有一定竞争能力的用来开发分布式多层体系结构的应用程序的分布式组件技术 包括c o r b a ,n e t 和j 2 e e 三大主流的组件模型。 c o r b a 是o m g 组织制定的应用软件体系结构和对象技术规范,支持异构分布应 用程序间的互操作性及独立于平台和编程语言的对象重用。c o r b a 技术体系独立 于网络协议、编程语言和软硬件平台,互操作性和开放性很好,可以较好的实现 异构环境下的信息和软件资源共享。 n e t 平台是微软公司提出的一种分布式运算框架,以x m l 为基础,以w e b 服务 为核心,辅以其它各种技术实现,旨在利用i n t e r n e t 上的计算资源和带宽资源, 达到资源最大共享的目的。 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 8 ”是基于j a v a 技术的分布式 企业应用平台和分布式组件,它具有标准j a v a2 的许多特色优势:强大的可移植 性、数据库访问的j d b ca p i 、支持同现有企业资源进行交互的c o r b a 技术等。 1 3 支持e r p 开发的中间件技术 e r p 系统已经从单一高端的企业级系统发展到覆盏到中小型企业的中端系统; 在结构上,已经从分散的功能模块发展到平台化的分层结构。其中包括很多大型 公司如s a p 、s c a l a 、b a a n 、用友和金蝶等,它们的产品如s a p r 3 、s c a l ai s a l a 、 用友u f e r p 和金蝶k 3 等,都是比较成熟的平台化产品,可以帮助客户搭建自己 需要的e r p 系统,提出自己的解决方案。 2 - 第一章绪论 1 3 i 项目介绍 本文是在由天津市科技攻关项目资助的科研项目“支持e r p 开发的中间件与 组件系统”的研究基础以及目前e r p 理论及产品的基础上,针对适用于中小型企 业e r p 系统进行可扩展性、灵活性、集成性、协同性良好等方向的研究。该项目 是在前天津市重点科技攻关项目“通用c s c w 平台b e a c o n 系统”研究成果的 基础上,通过对中间件技术、组件技术、c s c w 技术和e r p 技术的无缝结合,设 计了支持e r p 开发的中间件与组件系统,为开发者提供了一个不受时间地点限制 并且可以充分利用组内资源进行协同开发的一个系统。 1 3 2 主要工作和创新点 本论文的工作围绕一个可扩展的、具有协同性的和组件化的分层的e r p 系统 解决方案而展开,针对该方案,本文主要完成了以下工作: 认真分析并研究项目组开发的天津市重点科技攻关项目“通用c s c w 平台 - - b e a c o n 系统”的体系结构、核心设计与实现及相关机制的设计与应 用: 在研究的基础和目前市场特点上作出支持e r p 组件和中间件开发的需求 分析; 支持e r p 开发的中间件与组件系统的框架分析; 支持e r p 开发的中间件与组件系统的体系结构的分析与设计; 借助无线通信系统对办公协作信息进行实时处理; 设计一套无线通信终端和系统之间进行通信的指令集; 消息传递对象之间信息传递时所用到的加密算法的设计 该项目的创新点体现在: 在支持e r p 开发的消息传递系统的研究中,为了提高短消息系统的灵活 性和增强通信性能,本文使用了消息中间件来完成短消息系统的底层通 信; 利用消息中间件的安全机制来提高企业信息在传递过程中的安全性。 1 4 论文安排 本文阐述了支持e r p 开发的中间件与组件系统的体系结构,消息传递系统的 3 第一章绪论 组成,几个基于消息传递的安全策略的设计和实现。以下各章节安排如下: 第一章为绪言,介绍本文的选题背景、研究工作基础、创新之处和主要研究 工作。 第二章介绍支持e r p 开发的中间件与组件系统的体系结构,以及该体系结构 的各组成部件。 第三章是消息中间件的设计,介绍消息中间件的作用,并且提出一个具体消 息中间件的实例。 第四章是消息收发系统的设计与实现。消息传递系统是e r p 应用的一个重要 协作手段,它可以使得当时不在工作岗位的人员通过手机短信实时处理紧急情 况。 第五章是消息传递过程中信息传递所用到的安全机制。 第六章是结论和展望,本章对全文的研究工作进行了总结,指出了所完成工 作中存在的不足之处和值得进一步研究的方向。 一正 第二章基于1 2 e e 标准的中间件系统的设计方案 第二章基于j 2 e e 标准的中问件系统的设计方案 2 1 j 2 e e 简介 j 2 e e 是美国s u n 公司推出的一种全新的概念模型,与传统的互联网应用程序 模型相比有着不可比拟的优势。j 2 e e 是一种利用j a v a 2 平台来简化诸多与多级企 业解决方案的开发、部署和管理相关的复杂问题的体系结构。j 2 e e 技术的基础就 是核, 0 j a v a 平台或j a v a 2 平台的标准版,j 2 e e 不仅巩固了标准版中的许多优点, 例如。一次编写,到处运行”( w r i t eo n c e ,r u na n y w h e r e ) 的特性、方便存取数 据库的j d b c ,c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安全模式等等, 同时还提供了对e j b ( e n t e r p r i s ej a v ab e a n s ) ,s e r v l e t ,j s p ( j a v a s e r v e r p a g e s ) 以及x m l 等技术的全面支持。图2 - 1 给出了j 2 e e 的体系结构。 图2 一lj 2 e e 的体系结构 2 1 1 e j b ( e n t e r p r i s ej a v ab e a n ) j 2 e e 使用了e j bs e r v e r 作为商业组件的部署环境,在e j bs e r v e r 中提供了分 布式计算环境中组件需要的所有服务,例如组件生命周期的管理、数据库连接的 管理、分布式事务的支持、组件的命名服务等等。有些企业级的e j bs e r v e 还提 供了支持高可用性和高性能的集群技术、失败的自动转移和恢复、应用负载的自 动均衡能力等。实现商业逻辑的e j b 组件可以更高效地运行在应用服务器中,支 持多种客户端的访问,h t t p 的客户端可以先向运行在w e bs e r v e r 上的s e r v l e t 或 5 第二章基于j 2 e e 标准的中闻件系统的设计方案 者j s p 发出请求,在j s p 中嵌入j a v a 的代码调用运行在e j bs e r v e r 中的e j b ,以实 现商业逻辑:而其他的客户端,可以通过h o p 直接访问运行在e j bs e r v e r 中的组 件。一个多层的分布式的应用模型意味着应用逻辑被根据功能而划分成组件,并 且可以在同一个服务器或不同的服务器上安装组成j 2 e e 应用的这些不同的组件。 一个应用组件应被安装在什么地方,取决于该应用组件属于该多层的j 2 e e 环境中 的哪一层。这些层是客户层、w e b 层、业务层及企业信息系统层( e i s ) 。j 2 e e 技术 之所以赢得广泛重视的原因之一就是e j b 。他们提供了一个框架来开发和实施分 布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开 发。e j b 规范定义t e j b 组件在何时如何与它们的容器进行交互作用。容器负责提 供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。e 3 b 规范定义了3 种基本的b e a n 类型:s t a t e l e s ss e s s i o n b e a n s 提供某种单一的服务, 不维持任何状态,在服务器故障发生时无法继续存在,生命期相对较短。例如, 一个s t a t e l e s ss e s s i o nb e a n 可能被用于执行温度转换计算。s t a t e f u ls e s s i o n b e a n :提供了客户端的会话交互,可以存储状态从而代表一个客户。典型的例子 是购物车。s t a t e f u ls e s s i o nb e a n 在服务器故障时无法继续生存,生命期相对 较短。每一个实例只用于一个单个的线程。e n t i t yb e a n s :提供了一致性数据表 示( 通常存放在数据库中) 在服务器故障发生后能继续存在。多用户情况下可以使 用e j b 来表示相同的数据。e n t i t ye j b 的一个典型例子是客户的账号信息。尽管 有以上的区别,所有的e j b 还是有许多共同之处。它们都处理h o m ei n t e r f a c e 。 它定义了一个客户端是如何创建e j b 的。可以在b e a n 中对定义了客户端方法的远 程接口进行调用:b e a n 类则执行了主要的商务逻辑。 2 1 2 j a v as e r v l e t 虽然采用通用网关接口( c o m m o n g a t e w a y i n t e r f a c e ,c g i ) 技术可以使w e b 应用 程序与后台服务交互,并动态地生成网页,解决w e b 客户端与企业基础软件系统相 结合的问题,但是随着企业逐渐转向以w e b 为中心的应用程序时,由于c g i 技术需 要很多资源,因此无法以升级来满足客户数量急剧增加的需求。j a v a s e r v l e t 可 以看作是运行在服务器上的一个小程序,它向开发人员提供以组件为基础、创建 基于w e b 应用的独立于平台的方法。当客户以要处理请求的形式向服务器端程序 发送显式和隐式数据时,服务器程序返还另外一组显式和隐式数据,具有可伸缩、 占用资源少的优点。 - 6 一 第二章基于j 2 e e 标准的中间件系统的设计方案 2 1 3j a v a s e r v e r p a g e s ( j s p ) j s p 的出现弥s f t j a v a s e r v l e t 要求程序员必须熟悉j a v a 编程语言的缺陷。编 写j s p r 需要很少的j a v a 知识,它的大部分代码是用h t 扎编写的。在h t m l 代码中混 和t j a v a 代码段,之后j s p 程序自动被转换成j a v a s e r v l e t 。 2 2e r p 平台体系结构 本文的项目背景是一个新的支持e r p 开发的中间件与组件系统,它采用e r p 基础应用平台e b a p 嘲( e r pb a s i ca p p l i c a t i o np l a t ) 统一数据接口和应用模 型,将c s c w 技术引入e r p 系统,对e r p 应用提供强大的协作机制,使得决策更 准确、管理更高效;基于中间件体系的组件模型使得e r p 应用系统便于扩展和集 成;面向任务的可视化开发环境提高了产品的开发效率,方便用户对系统进行量 身定制以满足不断变化的需求。 平台的体系结构,整个平台搭建在j 2 e e 标准之上,这样做的好处主要有两 点,j 2 e e 是广泛应用的业界标准,平台便于与其他应用集成;j 2 e e 技术对企业 应用提供了强有利的支持,比如数据接口、事务处理,平台可直接利用这些功能。 如图2 2 所示。 图bb 瞄b 杂 哪基础应用乎台一 图2 - 2b e a c o n e r p 2 体系结构图 e r p 基础应用平台( e b a p ) ,是整个系统的核心,项目的其余部分都在此平台 的基础上构建,该平台也采用分层的结构,底层基于j 2 e e 服务器和j a v a 7 第二章基于j 2 e e 标准的中间件系统的设计方案 m a n a g e m e n te x t e n s i o n s ( j 姒) 。其提供的基础服务由d y n a m i cm a n a g e db e a n s ( m b e a n ) 来实现。 在e r p 基础平台之上的基础应用层主要是提供各种常用工具组件,比如协同 工具组件,其余的组件如:人力资源管理、办公自动化等的设计与实现均需要在 领域专家的指导下进行,所有的组件都可扩展,以便对行业应用提供支持。 组件技术可以增强软件的重用性以及开发的简便性,因此可以屏蔽用户开发 e r p 具体功能时面对的复杂策略,并且由于组件可以一次编写编译随时运行,因 此对功能模块的引入和发布也十分方便。系统在基础应用层将提供部分常用的 e r p 功能组件。 支持协同工作的功能组件,在原有研究工作的基础上加入更加灵活强大的协 作机制,该组件构建在e b a p 之上,原有的网络通讯层将由e b a p 取代,其余的各 层分别为负责分发事件的事件处理层、负责权限控制和一致性控制的多用户层以 及负责对共享对象进行摘要和映射的协作适配层等。 2 3 系统体系结构 该系统提供一系列组件与服务,协助用户在此基础上定制自己的e r p 应用。 按照服务的抽象级别以及与具体应用相关的程度,该系统分为三层,上层服务依 靠下层服务来完成自己的功能。 核心组件层:提供了最基本的功能,如日志权限等等。与具体应用无任 何关联。 基本组件层:提供较高层次功能,但与特定领域的应用无关。 扩展组件层:提供高级功能,基于特定领域的应用。 图2 - 3 给出了e r p 系统的体系结构。 8 第二章基于j 2 e e 标准的中间件系统的设计方案 图2 - 3 基于j 2 e e 的中间件系统体系结构 2 3 1 核心组件层 2 3 1 1w e b 框架 该系统面向开发b s 模式的e r p 应用的客户,w e b 框架一方面为开发w e b 方 式的e r p 应用提供了一组a p i 和j s p 标记库,另一方面提供了一个框架,用户可 在此基础上开发m v c 模式的w e b 应用。该模块基于开源项目s t r u t s ,对s t r u t s 进行了进一步的封装。具体来讲,该模块提供了以下三方面的功能。 将一些常用操作如权限控制,记录日志等封装成j s p 标记,简化了j s p 页面的设计。 提供了一组a p i ,方便用户的使用。这组a p i 有两类作用,一是提供了 对各种格式,类型数据的验证,二是对m v c 模式w e b 应用中的控制器进 行了扩展。 提供了一些实用工具类,例如转换日期与整数的类,对数据库精确查询 与模糊查询的类等。 2 3 1 2 日志系统 系统提供两种类型的日志,一是文本日志,另一类是数据库日志。文本日志 有两类用途,一是写在控制台中供程序的调试使用,二是写成文本文件或h t 札 文件供用户察看。数据库日志写入数据库中,供用户察看检索或为灾难恢复提供 基础。该模块是对开源项目l 0 9 4 j 的进一步封装。 9 第二章基于j 2 e e 标准的中间件系统的设计方案 2 3 1 3 权限控制 该模块采用基于角色的权限控制和基于位的权限控制。模块权限控制分为两 级,一是模块级,决定某个用户是否可对某一组功能进行访问,二是功能级,决 定某个用户是否有权限访问某个具体的功能。根据产生的后果,将系统中的操作 分为两类,一类是能产生影响的操作( i n f l u e n t i a lo p e r a t i o n ) ,例如对数据的 更新删除等;另一类是不会产生影响的操作( u n i n f l u e n t i a lo p e r a t i o n ) ,例如 对数据的查找等。该模块对这两类操作分别进行了不同的权限控制策略:对不会 产生影响的操作,只要保证没有权限的用户看不到操作的结果即可,因此只需要 对j s p 页亟进行权限控制即可;对于会产生影响的操作,仅保证用户不能看到操 作的结果还不够,还应当保证用户不能进行适当的操作,因此除了对j s p 页面进 行权限控制,还要对控制器类进行权限控制。这种机制既保证了系统安全,又提 高了性能。 2 3 2 基本组件层 2 3 2 1 报表系统 该模块基于开源项目j a s p e r r e p o r t ,使用户可以简单方便的向不同的输出目 的地生成各种格式的报表,该模块根据用途将报表分为两类,一是以文件形式继 续留在系统中,供用户存档,或由其他模块处理:另一类报表只是由用户临时察 看,不能继续留在系统中。对第一类报表,该模块提供了h t m l ,t x t ,】( m l ,p d f 等多种格式可供选择,对第二种报表,模块提供了向屏幕或打印机输出的功能。 2 3 2 2 协同办公系统 主要是为地理上分布的人员共同合作,协同办公提供消息传递服务。根据时 间跨度的不同,可将消息分为三类:异步消息,发送者发送与接收者接收的时间 跨度比较大;同步消息,发送者发送与接收者接收时间跨度较小;异步实时消息, 发送者向接收者发送消息,如果接收者不在工作岗位,系统将直接向接收者发送 手机短信,通知接收者处理紧急的情况。 2 3 2 3 检索系统 e r p 系统中的数据量异常庞大,格式多种多样,来源各不相同,该模块提供 对这些数据的过滤检索功能。帮助用户迅速找到需要的数据,该模块基于开源项 目l u c e n e 。 一1 0 一 第二章基于j 2 e e 标准的中闻件系统的设计方案 2 3 3 辅助开发插件 为了更好的辅助用户在中间件上进行二次开发,该系统还提供了e c l i p s e 下 的辅助开发插件。该模块以可视化界面的方式,方便了用户配置系统功能以满足 自己的要求。例如用户可以用此插件设置报表的格式,日志的格式。系统功能菜 单等等。 第三章消息中间件的设计 第三章消息中间件的设计 本文致力于负责短消息收发系统的设计与实现。为了提高短消息系统的灵活 性和增强通信性能,本文使用了消息中间件来完成短消息系统的底层通信。 3 1 消息中间件的概念 消息中间件是一种采用消息队列的系统软件或服务程序,分布式应用系统 借助这种软件在不同的技术之间共享资源,网络通讯。它在计算机系统中非常关 键,能实现应用的互连和互操作性,保证系统安全、可靠、高效的运行。消息中 间件位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手 段,并且独立于网络和操作系统。 3 2 消息中间件在短消息系统中的作用 消息中间件为应用的开发带来了极大的方便。如果没有消息中间件,应用开 发者为了传输数据,必须要学会如何使用网络和操作系统的功能,编写相应的应 用程序来发送和接收信息,且交换信息没有一个标准方法,每个应用必须进行特 定的编程从而和多平台、不同环境下的一个或多个应用通信,消息中间件解决了 上述的所有问题。在短消息系统中,消息中间件将整个系统的底层通信分离成为 一个单独的模块,提高了系统的灵活性和重用性,并且使开发者能将精力集中在 短消息的相关问题之上。 3 3 消息中间件服务j m s ( j a v am e s s a g es e r v i c e ) 中间件产品如今己成为集成企业应用的必备构件。除了传统的面向消息的中 间件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 ) 提供商外,企业级消息中间件也被 - 1 2 第三章消息中间件的设计 多个数据库提供商,许多的因特网公司提供。很明显,j a v a 语言客户端和其他中 间件必须能够使用这些消息系统。j m s 为j a v a 客户提供了通用的方法访问这些不 同的消息系统。 j m s 是一套接口和相关语义,定义了客户如何访问企业消息中间件产品。按 照消息的发送和接收方式可将j a v a 消息分为发布订阅、端到端以及请求回复等 类型,所有的消息用户通常被称为客户。一个j m s 应用程序就由中间件产品和多 个客户组成。 3 3 1 j m s 消息风格 3 3 1 1 发布订阅( p u b s u b ) j m s 的p u b s u b 模式定义了j m s 客户端如何向一个已知的基于层次化结构的内 容节点上发布和订阅消息的方法。这些节点在j m s 标准中被称为主题。一个主题 实际上也可被认为是轻量级的搜集和分发提交给它的消息的消息代理。通过将主 题作为中间媒体,发布者和订阅者相互独立开来。主题自动处理发布者和订阅者 之间的交互。 这种类型的消息类似于观看电视,很多电视台播放的电视有很多人收看。因 此,对于发布订阅而言,多个消息提供者同时同多个消息接收者交互。订阅者 ( 监听器,例如手机) 注册各自感兴趣的特定事件。发布者( 事件源) 创建消息 ( 事件) ,从而分发到所有的订阅者上。由于消息中间件的使用,消息的创建者 不用在代码中硬编码消费者列表。图3 - 1 给出了发布订阅消息模型。 图3 - 1 发布订阅消息 3 3 1 2 端到端( p 1 甲) p t p 的含义很简单,系统使用队列传递消息删。客户将消息发送到一个具体 的队列之上,即完成发送任务,而接受方从约定队列中取出消息即可。就像其它 普通的邮箱一样,一个队列之中可能包含消息的混合体,同时就像真正的邮箱一 样,创建和维护每一个队列会耗费很多时间。因而大多数的队列由管理方创建, - 1 3 - 第三章消息中间件的设计 并被当作静态资源放在提供者之上。 对于p t p 而言,每个消息仅存在单个接收者。允许多个接收者从消息队列中 获取捎息,但任何消息仅仅可以接收一次。端到端可以认为是发布订阅的特例。 多个消息创建者能够同时发送消息到消息队列中,但是每个消息仅仅发送给单个 消息接收者。消息创建者可能直接将消息发送个接收者,也可能发送到统一的消 息队列中。通常,消息的处理是依据先进先出( f i f o ) 进行的,但也可能根据实 际的需要存在特例。图3 2 给出了端到端发布模型。 图3 2 端到端消息 请求回复消息模型中的消息创建者需要在后续的某个时间点接收到消息接 收者的回复消息。通常,面向消息的中间件会使用发布订阅和端到端来实现异 步请求回复模型。 3 3 2j m s 的目标 j m s 没有提供包含各种特性的消息系统。相反j m s 提供了适用于各种消息中间 件产品的特性的交集。关键的是j m s 包括了实时复杂企业系统应用所必须的功能。 j m s 定义一套通用的企业工具和消息概念。它试图最小化学习消息产品所必须的 一套概念规则,同时最大化消息应用程序的移植性。 3 3 3 j m s 提供者 j m s 提供者是实施3 m s 消息产品的实体。理想地,5 m s 提供者1 0 0 9 6 用j a v a 语言 编写,以便于运行在a p p l e t s 之中,同时方便安装,并且跨越操作系统和各种体 系结构。j m s 的一个重要目标就是最小化实施p r o v i d e r 所需的工作。 3 3 4 j m s 消息 j m s 仅定义了一套消息接口。客户使用的是j m s 提供者的消息实施。j m s 的另 1 4 第三章消息中间件的设计 一个主要目标是保证创建应用消息有一致性的a p i ,使其独立于j m s 实现者。j m s 消息由三部分组成: ( i ) 消息头。包含路由信息和标识信息。 ( 2 ) 属性。除了标准的头域外,j m s 提供了内建的工具添加可选头域到一个 消息之中,包括:应用相关的属性。与具体应用相关的属性。标准的属性。 j m s 定义的标准属性。提供者相关属性。集成j i s 客户和7 m s 提供者需要的属性, j m s 为此定义了命名规则。 ( 3 ) 消息体。应用程序传送的数据。 3 3 5 j m s 管理 很明显,j m sp r o v i d e :在底层的消息实现技术上显著不同,同时各个供应者 系统的安装和管理方法也有差异。为了实现客户端方便移植的目标,就必须独立 于提供者的技术层面,这通过受管对象实现。受管对象由供应者创建,其后由客 户使用。客户是通过j m s 接口连接受管对象,而管理者是通过自身相关的具体工 具。受管对象由管理者放置在个j n d r 名称空间中。 j m s 定义了两种受管对象: ( 1 ) 连接工厂( c o n n e c t i o n f a c t o r y ) 。该对象让客户使用并与提供者创建连 接。 ( 2 ) 目的地( d e s t i n a t i o n ) 。该对象描述消息发送的目的地和消息从何处接 受。 3 3 6 j m s 应用接口 j 】i j s 建立在一套通用的消息概念之上,每一个j m s 消息p t 瑚叮p u b s u b 均定制了 各自的一套接口。州s 客户使用这些接口便可使用任何一个标准的消息产品,实 现移植性。表3 1 列出了各种消息类型的接口名称及继承关系,各接口成员函数 及详细的使用方法请参阅j m s 规范。 表3 1j m s 标准接口 j m sc o m m o ni n t e r f a c e s p t p - s p e c i f i cp u b s u b s p e c i f i c i n t e r f a c e si n t e r f a c e s c o n n e c t i o n f a c t o r yq u e u e c o n n e c t i o n f a c t o r yt o p i c c o n n e c t i o n f a c t o r y c o n n e c t i o nq u e u e c o n n e c t i o n t o p i c c o n n e c t i o n 1 5 第三章消息中间俘的设计 d e s t i n a t i o nq u e u e t o p i c s e s s i o nq u e u e s e s s i o n t o p i c s e s s i o n m e s s a g e p r o d u c e r q u e u e s e n d e r t o p i c p u b l i s h e r m e s s a g e c o n s u m e r q u e u e r e c e i v e r t o p i c s u b s c r i b e r q u e u e b r o , s e r ( 1 ) c o n n e c t i o n f a t o r y :受管对象,如前节所述用于创建连接。 ( 2 ) c o n n e c t i o n :连接到j m sp r o v i d e r 上的活动连接。 ( 3 ) d e s t i n a t i o n :如前所述是一个受管对象,封装了消息目的地。 ( 4 ) s e s s i o n :单线程的上下文,用于发送和接受消息。 ( 5 ) m e s s a g e p r o d u c e r :由s e s s i o n 创建的对象,用于放送消息到目的地上。 ( 6 ) m e s s a g e c o n s t n n e r :由s e s s i o n 创建的对象,用于接受目的地上的消息。 使用这些接口开发一个j m s 客户端的步骤如下: ( 1 ) 使用j n d i 查找一个c o n n e c t i o n f a c t o r y 对象。 ( 2 ) 使用j n d i 查找一个或多个d e s t i n a t i o n 对象。 ( 3 ) 使用c o n n e c t i o n f a c t o r y 和j m sp r o v i d e e u 建连接用于发送消息。 ( 4 ) 使用连接创建一个或多个j m s 会话。 ( 5 ) 使用会话和目的地创建所需的m e s s a g e p r o d u c e r 和m e s s a g e c o n s u m e r 。 ( 6 ) 开始传送或接受消息。 3 4 短消息系统底层通信消息中间件的设计 消息中间件的设计按照j m s 接口规范进行。这样我们设计的消息中间件在将 来可能通过s u n 公司的j m s 评估,发表在其一致性产品列表中,供任何同s 标准客 户端调用,更重要的可使上层的短消息系统通过标准的接口取得中间件的通信功 能,这对于将来短消息系统的修改带来了很好的灵活性。 中间件”1 的实现分为两个部分,其一为客户端的使用接口,这方面已经由s u n 公司标准化。另一方面为该接口的实现,每个消息实现者均有自己不同的实现方 案,这也是埘sp r o v i d e r 实际的工作。在设计过程中,我们首先考虑j n d i 服务器 和j m s n 务器的网络构造。在分布式环境中,j n d i 服务器可能只有一个,而且它 不仅提供消息对象的查找服务,还提供了其他一些命名服务,如d n s 。命名消息 服务我们选择l d a p ( l i g h t w e i g h td i r e c t o r ya c c e s sp r o t o c 0 1 ) 作为存放受管 对象的机制。l d a p 是查找网络中组织、个人或档案等其它资源的一种软件协议。 1 6 第三章消息中间件的设计 选择l d a p 存放对象的优势在于:( 1 ) l d a p 目录中可以存储各种类型的数据如电子 邮件地址、人力资源数据、公用密匙、联系人列表等等。( 2 ) l d a p 是跨平台的标 准协议,因此应用程序就不用为l d a p 目录放在什么样的服务器上操心了。( 3 ) l d a p 安装容易,维护和优化方便,使用简单明了可以大量节约开发人员的时间,从而 将主要精力投入在项目的特定领域。( 4 ) 最后,l d a p 是轻量级访问协议,没有安 全控制机制,短消息系统可将其纳入自己的体系中实现,从而避免功能冗余。另 外,在消息系统中,j m s 服务器可以有多个,因而消息中间件是工作在由j n d i b 艮 务器、j m s 服务器组成的分布式环境中。总之,消息中间件的框架结构如图3 3 所示。 j m s 客户 一 , 一 一 _ - - 图3 3 消息中间件的框架结构 j n d i 服务器中存放受管对象,并且在约定端口等待j m s 客户端的查询。当其 中对象被客户查找到以后,它们将按照j m s 实现者的规则,透明地将肺s 客户导向 到j m s 服务器集群中,并自动将客户发送出的消息路由到目的地,等待消费客户 取走。这一过程的关键之处在于受管对象需返回给j m s 客户对象引用,并且将以 后的非管理操作直接导向j m s 服务器,中间件使用下面的规则达到上述要求。 ( 1 ) j m s 客户端仅通过标准的j n d i 接口查找到连接工厂和目的地。该结果并 非一个被传递的序列化对象。而是一个引用和一些地址信息。它所指的对象实体 存放在一个j m s 服务器上。在客户端存放是j m s 标准的接口信息,并没有对象的动 作实体代码。 ( 2 ) 客户端根据引用和j n d i 得到的地址信息直接和指定的j m s 服务器进行动 作交互,如创建连接创建会话等。这些动作实际都在服务器端完成,客户端得到 是对象实体的引用同时还包括一些附加信息等。 - 1 7 第三章消息中间件的设计 ( 3 ) 客户端向j m s 服务器目的地发出消息数据,服务器路由给最终的目的地, 等待消息接收者接收。 基于上述的基本路由结构,接下来需要考虑的是,作为底层服务基本构件, 消息中间件需要向上层系统提供的功能性服务。服务需要具备的特性包括: 跨平台,跨硬件性,使得底层差异对上层透明。令分布通信性,使得广 域网上的节点可直接可靠通信。 消息异步传送性,即服务器可通过事件或其他机

温馨提示

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

最新文档

评论

0/150

提交评论