(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf_第1页
(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf_第2页
(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf_第3页
(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf_第4页
(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机软件与理论专业论文)一种基于soa架构的中间件平台的研究与实现.pdf.pdf 免费下载

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

文档简介

哈尔滨理工大学工学硕士学位论文 一种基于s o a 架构的中间件平台的研究与实现 摘要 随着国民经济的发展,国内信息化建设需求呈几何级数增长。如何提高 软件开发的生产力以适应不断增长的信息化建设需求;如何保证软件产品适 应多变的客户化需求,是信息化建设领域必需要解决的两个核心问题。面向 业务的应用集成中间件平台可以采取与程序实现技术无关的面向业务需求的 定义方式实现具体的客户化需求,能够实现业务能力的积累与重用,保证业 务需求变更增加的快速有效实现,这样就为上述两个问题提出了解决途径。 对于多层结构的中间件平台来说,整个系统间的物理耦合程度较高,不 利于进行分布式应用开发;在面对客户新需求的提出或新交互设备的添加 时,系统需要进行重新的开发;系统的支撑数据与底层数据直接绑定,无法 进行有效复用,在应用过程中容易造成大量冗余数据。基于上述情况本文提 出了基于s o a 的中间件平台的解决方案。并陈述了其研究与实现过程。 本文首先研究分析了中间件技术,详细描述了中间件的研究现状及发展 趋势并分析了本课题的研究意义;其次本文讨论了s o a 技术的概念与特 点,描述了s o a 的服务提供者、服务请求者、服务器代理者三种角色及其 分别承担的操作、阐述了s o a 应用的意义;然后,着重研究了s o a 的分析 与设计方法,结合面向对象技术的优势组合了一种基于s o a d 的混合建模 方法并给出了建模过程。最后,利用本文给出的建模方法设计了耦合性较低 的系统架构,并采用n e t 技术构建了整个平台。 本中间件平台具有良好的可扩展性和可移植性,可轻松实现系统的远程 部署和调用。与此同时,本中间件系统继承了以前版本的信息系统业务需求 分析的科学方法论,确保了软件知识的积累和业务复用,保证了软件的质 量,缩短了开发的周期,极大的方便了后期的维护。 关键词中间件;面向服务体系结构:面向服务分析与设计;面向对象分析 与设计;可扩展标记语言 哈尔滨理工大学t 学硕士学位论文 r e s e a r c ha n dr e a l i z a t i o no fm i d d l e w a r e b a s e do ns o a a b s t r a c t w i t ht h ee c o n o m i c a ld e v e l o p e m e n t t h er e q u i r e m e n to fc i v i la u t o m a z a t i o ni s i n c r e a s i n ga ts p e e do fg e o m e t r i cp r o g r e s s i n g t h e r ea r et w oc o r ei s s u e sf a c e db y t h ef i e l d so fi n f o r m a t i o nc o n s t r u c t i o n ;f i r s t ,h o wt o i m p r o v ep r o d u c t i v i t yo f d e v e l o p m e n tt om e e tt h ec h a l l e n g eo fi n c r e a s i n gr a t e so fc h a n g e ;a n ds e c o n d , h o wt om e e tt h ec h a n g i n gn e e d so fc u s t o m e r s t h eb u s i n e s s o r i e n t e da p p l i c a t i o n i n t e g r a t o rm i d d l e w a r ec a nd o p tak i n do fd e f i n i t i o nt oa c h i e v et h ec u s t o m e r s s p e c i f i cr e q u i r e m e n t s , e n s u r e e x p a n d a b i l i t y ; a n db ec o n s i s t e n tw i t h r e q u i r e m e n t sa n a l y s i s ;t h i s k i n do fm i d d l e w a r eh a v et h ea b i l i t yt o k e e p p r o g r a m s t r u c t u r ea n dt h ed a t as t o r a g em o d e ls e p a r a t e ,a sw e l la st or e u s e e x i s t i n gd e f i n i t i o nc o m p o n e n t sa n de x t e n dd e f i n i t i o nt om e e tf u t u r ec u s t o m e r n e e d s a st ot h em i d d l e w a r eb a s e do nt h es t r u c t u r eo ft h em u l t i l a y e r s ,t h ep h y s i c a l c o u p l i n gd e g r e eo ft h es y s t e mi sr e l a t i v e l yh i g h ,w h i c hr u na g a i n s tt h ed i s t r i b u t e d a p p l i c a t i o nd e v e l o p m e n t ;i nt h ef a c eo fn e wc u s t o m e r so rn e wd e m a n db yt h e a d d i t i o no fi n t e r a c t i v e e q u i p m e n t ,t h es y s t e m n e e df o r r e d e v e l o p m e n t ;t h e s u p p o r td a t aw h i c hi sb i n d e dt ot h eu n d e r l y i n gd a t ad i r e c t l y , i su n a b l et oc a r r yo u t e f f e c t i v e m u l t i p l e x i n g d u e t ot h ea b o v es i t u a t i o n ,am i d d l e w a r ep l a t f o r m s o l u t i o n sb a s e do ns e r v i c eo r i e n t e da r c h i t e c t u r e ( s o a ) i sp r o p o s e d ,a n di t s r e s e a r c ha n di m p l e m e n t a t i o np r o c e s si sp r e s e n t e d t h i sp a p e rf i r s t l ys t u d i e st h et e c h n o l o g y , t h er e a e a r c hs t a t u sa n dd e v e l o p m e n t t r e n do ft h em i d d l e w a r e ,a n a l y s i s e st h es i g n i f i c a n c eo ft h i si s s u e ;s e c o n d ,t h i s p a p e rd i s c u s s e st h ec o n c e p tt e c h n o l o g ya n df e a t u r e so fs o a ,e x p l a i n st h e s i g n i f i c a n c eo ft h es o n sa p p l i c a t i o n ;t h el a s tb u to n e ,t h ep a p e rf o c u s e so nt h e m e t h o d so fs e r v i c e so r i e n t e da n a l y s i sa n dd e s i g n ( s o a d ) ,g i v e sah y b r i d m o d e l i n g m e t h o da n di t sm o d e l i n gp r o c e s s ,t h em e t h o di sb a s e do ns o a d i i 哈尔滨理工大学工学硕士学位论文 c o m b i n i n g t h ea d v a n t a g e so fo b je c t o r i e n t e d t e c h n o l o g y ;f i n a l l y ,t h ep a p e r d e s i g n sas y s t e ma r c h i t e c t u r ew i t hal o wc o u p l i n gd e g r e ea n dp r e s e n t e d si t s r e s e a r c ha n di m p l e m e n t a t i o np r o c e s s t h es y s t e mh a sag o o ds c a l a b i l i t ya n dp o r t a b i l i t y , a n dc a nb ee a s i l yd e p l o y e d i te n s u r e st h ea c c u m u l a t i o no fa p p l i c a t i o ns o f t w a r ek n o w l e d g e ,r e a l i z e sb u s i n e s s r e u s e ,a n ds h o r t e n st h ep e r i o do fa p p l i c a t i o ns o f t w a r ed e v e l o p m e n t k e y w o r d sm i d d l e w a r e ,s e r v i c eo r i e n t e da r c h i t e c t u r e ,s e r v i c e - o r i e n t e da n a l y s i s a n dd e s i g n ,o b je c t - o r i e n t e d a n a l y s i s a n d d e s i g n ,e x t e n s i b l e m a r k u pl a n g u a g e l l i 哈尔滨理工大学硕士学位论文原创性声明 本人郑重声明:此处所提交的硕士学位论文面向业务中| 白j 件的研究与设 计,是本人在导师指导下,在哈尔滨理工大学攻读硕士学位期间独立进行研究 工作所取得的成果。据本人所知,论文中除已注明部分外不包含他人己发表或撰 写过的研究成果。对本文研究工作做出贡献的个人和集体,均己在文中以明确方 式注明。本声明的法律结果将完全由本人承担。 作者签名:日期:2 删8 年弓月矽l = j 哈尔滨理工大学硕士学位论文使用授权书 面向业务中间件的研究与设计系本人在哈尔滨理工大学攻读硕士学位期 间在导师指导下完成的硕士学位论文。本论文的研究成果归哈尔滨理工大学所 有,本论文的研究内容不得以其它单位的名义发表。本人完全了解哈尔滨理工大 学关于保存、使用学位论文的规定,同意学校保留并向有关部门提交论文和电子 版本,允许论文被查阅和借阅。本人授权哈尔滨理工大学可以采用影印、缩印或 其他复制手段保存论文,可以公布论文的全部或部分内容。 本学位论文属于 保密 口, 在年解密后适用授权书。 不保密固。 ( 请在以上相应方框内打) 作者签名:劣罾 日期:知嵋年;月切日 新签名:胀日期:加譬年毕月7 日 哈尔滨理工大学工学硕士学位论文 1 1 课题背景 第l 章绪论 随着信息技术的发展和在社会各领域的深入推广,信息技术对社会、企业 以至个人的生产、生活方式产生了极为深入的影响。反过来,用户又对信息技 术的发展不断提出更高的要求。在这个相互影响的发展过程中,计算机软件在 信息技术的发展过程中始终扮演着重要的角色。企业信息化程度的提高使企业 用户对企业级应用软件的要求越来越苛刻: 1 规模和复杂度 企业级的应用规模一般都十分庞大,复杂程度也相对较高。一个发展成熟 的企业级应用软件,需要一个庞大体系的支撑,不仅能解决企业用户所提出的 各种应用要求,还要能充分考虑到行业发展所需涉及到的领域。而撇开业务上 的应用要求,软件对诸如系统事务的处理要求也是日渐复杂【l 】。 2 成本 企业在信息化方面投入的成本,也即计算机软件所占的比重在发达国家一 般可以达到甚至超过5 0 ,在银行、证券等关键应用领域这个比重值更可高达 8 0 以上。软件成本的居高不下往往成为制约企业信息化的重要原因。如何降 低成本成为节约企业i t 投资的关键。 3 可定制 企业为了适应竞争的要求,其应用软件往往很少会千篇一律。在实施企业 级i t 应用时往往需要进行大量的应用软件定制工作,将企业应用软件与业务 处理流程进行整合,才能真正达到促进业务发展的效果。要实现定制,往往不 是设置一些参数这么简单。企业级的应用必需具有灵活性,具备二次开发能 力,可随时调整其业务流程以适应企业和环境的变化【l 】。 4 信息共享 在企业i t 建设的初期,一个企业往往形成了多个不同的计算机系统,各 个系统分别对企业部分的业务信息进行处理。随着企业信息化程度的提高,整 合企业内部各个计算机系统,实现跨系统的信息共享成为提高信息价值的有效 途径。例如近年来银行提出的以客户为中心的服务理念就必须建立在跨越计算 机系统的客户信息共享的基础上【2 】。 哈尔滨理工大学工学硕士学位论文 基于以上的种种问题,提供一个面向企业具体业务的中间件产品以支撑 企业复杂的应用,为企业的应用提供快速开发、定制、降低企业软件成本。该 中间件应该可以进行业务生成管理、业务流程管理。同时和目前己有的企业应 用系统结合,可以全方位的支撑应用系统。本课题正是致力于此方面的研究。 1 2 课题研究意义 中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系 统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作 系统、数据库管理系统本身做不了洲2 1 。中间件的这一作用,在技术不断发展 之后,使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财 力投入。 对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提 供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和 系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定 义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护 中的重大投资p j 。 具体地说,面向应用软件开发的中间件系统的意义在于: 中间件系统屏蔽了低层操作系统的复杂性,使程序开发人员面对一个 简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务 上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术 上的负担【l l 】; 简化开发:基于中间件系统的开发过程不同于传统的编程方式,开发 者只需要通过图形化的拖拽即可完成大部分的开发工作; 敏捷思想:借鉴s s a d m 的简化分析方法,从多个角度把握需求,设 计过程与开发过程可以有机地结合起来,同时可以根据x m l 形式的代码方便 地产生开发文档,大大简化了开发流程【4 j ; 降低系统环境变更风险:可以把部署与开发工作分开进行,这样在一 定程度降低了在开发前期将软件部署结构固化下来而造成的后期无法在后期变 更系统环境的风险; 任务并行处理:并行的分布式团队开发,大大降低了由于需要划分和 重新同步结果而产生的复杂性,可以更灵活、有效地利用企业开发资源,减少 团队之间沟通成本,提高应用开发的效率和软件质量【3 】。 哈尔滨理工大学1 二学硕士学位论文 面向服务体系结构( s o a ) 是一种全新的系统架构,其将系统组织成群组 服务的模式,每一个服务都提供一组定义良好的功能几何。整个系统其实就被 设计和实现为一组相互交互的服务,而将功能以服务的形式展现出来是该系统 灵活性的关键。它使得系统中的某些服务能够充分利用其他的服务同时却无需 考虑其物理位置,系统可通过添加新的服务来不断的升级【4 】。 由此可见,基于s o a 架构的中间系统有着更突出的优点: 系统的耦合程度进一步降低,而中间件平台自身的可维护性、可扩展性 大大加强; 可轻松实现分布式开发及远程部署; 面对不同的企业级应用可通过增减特定的服务来实现大规模的业务复用 而不需进行重新的开发; 支撑数据的服务化将数据的冗余显著减少,进而提升业务应用的效率。 1 3 中间件技术概述 计算机技术在迅速发展,从硬件技术看,c p u 速度越来越高,处理能力越 来越强;从软件技术看,应用程序的规模不断扩大,特别是i n t e m e t 及n 椭r 的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平 台上运行。这一切都对新一代的软件开发提出了新的需求。 另外,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台 需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需 要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些都需要一种 构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而 中间件系统正是在这个环境下产生【5 l 。 1 3 1 中间件的概念 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可复用软件的范畴。为了 直观地把握中间件的基本概念,可以将网络和系统软件之上、应用系统之下的 广裹疆域都视做中间件的领地,中间件被概括地理解为起承上启下作用的应用 支撑平台。应用的“多态性”、系统软件的复杂性,都需要依赖各种类型的中间 件在其中运筹、调和【4 j 。 中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软 件共享资源提供支撑,广义地看,中间件的总体作用是为处于自己上层的应用 哈尔滨理工大学工学硕士学位论文 软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软 件【5 1 。 1 3 2 国内外中间件技术研究现状 当前国内外的中间件技术的发展水平主要呈现如下特点: 1 中间件技术丰富。中间件目前的分类主要分为通讯中间件 ( c o m m u n i c a t i o nm i d d l e w a r e ) 、应用服务器( a p p l i c a t i o ns e r v e r ) 、数据集成中间 件( d a t ai n t e g r a t o r ) 、应用集成中间件( a p p l i c a t i o ni n t e g r a t o r ) 、流程集成中间件 ( b u s i n e s sp r o c e s sm a n a g e m e n t ) 和b 2 b 应用集成中间件( b 2 ba p p l i c a t i o n i n t e g r a t o r ) 。图1 1 给出了目前中间件技术体系,由此可见中间件技术的丰富 性。 图i - 1 中间件技术体系图 f i g 1 1t e c h n o l o g ys y s t e mo fm i d d l e w a r e 2 中间件作为企业基础软件。随着中间件技术的发展,现在的中间件 哈尔滨理工大学工学硕士学位论文 早已不仅仅实现客户机和服务器的互连,还要实现应用之间的互操作,也就是 数据和应用的集成【6 】。2 0 0 2 年在中间件技术上最值得关注的一件事是:为了追 随企业应用集成需求的发展,中间件已经突破原来的认识局限。当前的一些中 间件公司,例如i b m ,b e a ,已经将中间件产品家族称为应用基础架构 ( a p p l i c a t i o ni n f r a s t r u c t u r e ) ,充分体现了中间件在企业信息系统中的地位,同时 也意味着中间件己经成为提供用户互动、应用连接、流程整合、数据集成和应 用集成的全方位支撑软件。 3 w e bs e r v i c e s 技术的兴起。c o r b a 、数据集成中间件和事务处理中 间件可以方便地实现企业内部资源整合的任务,x m l 和w e bs e r v i c e 技术则进 一步将企业各类服务以标准形态发布到i n t e r n e t 上,更加符合在剧烈竞争环境 下企业业务流程动态整合的需【3 】求。结合c o r b a 等核心中间件平台技术和 x m l ,w e bs e r v i c e 技术建立的企业计算基础架构,将具有稳定的内部结构和良 好的外部表现形态,且更具弹性、更能够满足企业对信息化系统全方位的要 求。 4 应用框架不断丰富,领域设施不断完善。在2 0 0 1 年,o m g 组织通过 了模型驱动架构( m d a :m o d e l d r i v e na r c h i t e c t u r e ) 规范【2 j ,2 0 0 2 年,大量工具 开发 5 厂商开始进入中间件领域,形成模型驱动下各类计算平台( 如 c o r b a 、j 2 e e 之间,各类o l a p 工具之间) 互操作应用框架。这一技术趋势促 使应用框架开始从计算平台中分离出来,从而形成普适服务和普适应用框架的 概念,这同时也给各个领域提供了一个在业务逻辑和业务流程上积累企业信息 资产的机会和空间,也意味着将来的应用系统将在业务层、技术平台层、实现 层进一步解藕,应用框架和领域设施具有更广泛的适用性1 5 j 。 1 3 3 中间件发展趋势 中间件作为构筑企业信息系统和电子商务系统的基石和核心技术,向着标 准化、构件化方向发展。具体来看,有以下几个发展趋势: 规范化。对于不同类型的中间件,目前都有一些规范可以遵循,如消息类 j m s ;对象类的c o r b a 、c o m d c o m ;交易类的x a 、o t s 、j t a j t s ;应用 服务器类的j 2 e e ;数据访问类的o d b c 、j d b c ;w e b 服务有s o a p 、 w s d l 、u d d i 等。这些规范的建立极大地促进了中间件技术的发展,同时保 证了系统的扩展性、开放性和互操作。 哈尔滨理工大学工学硕士学位论文 构件化和松耦合。除了已经得到较为普遍应用的c o r b a 、d c o m 等适应 i n t r a n e t 的构件技术外,随着企业业务流程整合和电子商务应用的发展,中间 件技术朝着面向w e b 、松散耦合的方式发展,基于x m l 和w e b 服务的中间件 技术,使得不同系统之间、不同应用之间的交互建立在非常灵活的基础上【7 j 。 平台化。目前,一些大的中间件厂商在已有的中间件产品基础上,都提出 了完整的面向互联网的软件平台战略计划和应用解决方案。s u n 公司是最早提 出“网络就是计算机的公司,一直致力于向企业提供受到广泛欢迎的网络软 件,对互联网的应用和发展发挥了重要作用。i b m 公司提出了面向网络应用的 “1 日金山计划”,以w e b s p h e r e 、d b 2 、t i v o l i 、d o m i n o 等四大品牌组成基础架 构平台,提供从中间件、服务器到解决方案的一揽子组合服务 9 1 。 1 4 主要研究内容 本中间件平台将实现支持s o a 的系统架构,以业务数据处理服务为核 心,通过x m l 数据总线将业务逻辑层中的各项服务有效集成,在实现业务协 同处理的同时,实现接入服务、分发服务、业务逻辑处理服务功能的全冗余与 可扩展,借助于内置的消息传输机制,保证数据可靠传输。其主要研究内容有 如下几个方面: 1 掌握面向服务架构( s o a ) 软件开发的原理,分析现有中间件平台的 架构与s o a 架构的差异和近似之处。涉及到的技术为s o a ( 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 ) 的概念及面向对象的关系。 2 系统建模和体系结构的设计, 这一研究内容中需要掌握面向服务分析设计方法( s e r v i c e o r i e n t e d a n a l y s i sa n dd e s i g n ,s o a d ) 原理和过程,并针对本项目进行有效改进。主要 涉及的技术为s o a d 技术。 3 分析中间件平台现有的体系结构,将现有体系结构中符合未来s o a 架构体系的部分融入到该体系结构中。 4 完善s o a 体系架构下的数据描述。 在这一研究阶段内,将以x m l 作为信息中间表示形式将包括用户、组织 机构、权限和功能活动在内的支撑数据进行描述。主要涉及到的技术有 x m l 、d o m 技术以及x p a t h 、x s l t 技术等。 5 建立面向服务架构( s o a ) 下的工作流体系。 利用s o a 技术将工作流系统的基本元素对象和组件封装为两种粗细粒度 哈尔滨理工大学工学硕士学位论文 不同的服务,以便实现工作流的松耦合及动态配置。主要涉及到的技术为w e b 服务( w e b s e r v i c e ) 技术。 哈尔滨理工大学工学硕士学位论文 第2 章基于s o a 中间件理论基础 面向业务中间件系统继承信息系统业务需求分析的科学方法论结构化系统 分析与设计( s t r u c t u r e ds y s t e ma n a l y s i sa n dd e s i g nm e t h o d ,s s a d m ) ,结合面 向对象编程思想( o o p ) 和先进的面向服务体系结构理论( s e r v i c e o r i e n t e d a r c h i t e c t u r e ,s o a ) ,以x m l 为数据总线设计实现。 2 1 面向对象编程技术和o o a d 方法 2 1 1 面向对象编程技术 面向对象编程( o b j e c to r i e n t e dp r o g r a m m i n g ,o o p ) 是一种计算机编程架 构。o o p 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或 对象组合而成。o o p 达到了软件工程的三个主要目标:重用性、灵活性和扩展 性l i 引。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象 发送信息。o o p 主要有以下的概念: 组件:数据和功能一起在运行着的计算机程序中形成的单元,组件在 o o p 计算机程序中是模块和结构化的基础。 抽象性:程序有能力忽略正在处理中信息的某些方面,即对信息主要方面 关注的能力。 封装:又名信息封装:确保组件不会以不可预期的方式改变其它组件的内 部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状 态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调 用的方法。 多态性:组件的引用和类集会涉及到其它许多不同类型的组件,而且引用 组件所产生的结果依据实际调用的类型。 继承性:允许在现存的组件基础上创建子类组件,这样做统一并增强了多 态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类 为现存的类的扩展,这样就可以将这些类组织成树形或网状结构,体现了动作 的通用性l 1 5 j 。 o o p 的许多原始思想都来之于s i m u l a 语言,并在s m a l l t a l k 语言的完善和 标准化过程中得到更多的扩展和对以前的思想的重新注解。可以说面向对象思 哈尔滨理工大学工学硕士学位论文 想和面向对象的编程语言( o b j e c t o r i e n t e dp r o g r a m m i n gl a n g u a g e ,o o p l ) 几 乎是同步发展相互促进的。与函数式程序设计( f u n c t i o n a l p r o g r a m m i n g ) 和逻 辑式程序设计( l o g i c p r o g r a m m i n g ) 所代表的接近于机器的实际计算模型所不 同的是,o o p 几乎没有引入精确的数学描述,而是倾向于建立一个对象模型, 它能够近似的反映应用领域内的实体之间的关系,其本质是更接近于一种人类 认知事物所采用的哲学观的计算模型。由此,导致了一个自然的话题,那就是 o o p 到底是什么? 在o o p 中,对象作为计算主体,拥有自己的名称,状态以 及接受外界消息的接口。在对象模型中,产生新对象,旧的对象销毁,发送消 息,响应消息就构成o o p 计算模型的根本。 对象的产生有两种基本方式。一种是以原型( p r o t o t y p e ) 对象为基础产生 新的对象。一种是以类( c l a s s ) 为基础产生新对象1 25 。原型的概念已经在认 知心理学中被用来解释概念学习的递增特性,原型模型本身就是企图通过提供 一个有代表性的对象为基础来产生各种新的对象,并由此继续产生更符合实际 应用的对象。而原型一委托也是o o p 中的对象抽象,代码共享机制中的一种。 一个类提供了一个或者多个对象的通用性描叙。从形式化的观点看,类与类型 有关,因此一个类相当于是从该类中产生的实例的集合。而这样的观点也会带 来一些矛盾,比较典型的就是在继承体系下,子集( 子类) 对象和父集( 父 类) 对象之间的行为相融性可能很难达到,这也就是o o p 中常被引用的,子 类型不等于子类。而在一种所有皆为对象的世界观背景下,在类模型基础上还 诞生出了一种拥有元类( m e m c l a s s ) 的新对象模型。即类的本身也是一种其他 类的对象。以上三种根本不同的观点各自定义了三种基于类( c l a s s b a s e d ) ,基 于原型( p r o t o t y p e b a s e d ) 和基于元类( m e t a c l a s s 。b a s e d ) 的对象模型。而这 三种对象模型也就导致了许多不同的程序设计语言。我们经常接触的c + + , j a v a 都是使用基于类的对象模型,但除此之外还有很多我们所没有接触的 o o p l 采用了完全不一样的对象模型,他们是在用另外一种观点诠释o o p 的 内涵。 把组件的实现和接口分开,并且让组件具有多态性。不过,两者还是有根 本的不同。o o p 强调在程序构造中语言要素的语法。我们必须得继承,使用 类,使用对象,对象传递消息。泛型编程( g e n e r i cp r o g r a m m i n g ,g p ) 不关心 你继承或是不继承,它的开端是分析产品的分类,有些什么种类,他们的行为 如何。两件东西相等意味着什么? 如何正确地定义相等操作,不单单是相等操 作那么简单,“相等”意味着两个对象部分,或者至少基本部分是相等的,据 此我们就可以有一个通用的相等操作。对于对象的种类。假设存在一个顺序序 哈尔滨理工大学工学硕士学位论文 列和一组对于顺序序列的操作。那么这些操作的语义是什么? 如果复杂度权衡 的角度看,我们应该向用户提供什么样的顺序序列? 该种序列上存在那些操 作? 那种排序是被需要的? 只有对这些组件的概念差异的前提下,我们才能提 到实现的问题:使用模板、继承还是宏,使用什么语言和技术。 g p 的基本观点是把抽象的软件组件和它们的行为用标准的分类学分类, 出发点就是要建造真实的、高效的和不取决于语言的算法和数据结构【1 6 1 。当然 最终的载体还是语言,没有语言就没法编程。标准模板库的开发使用c + + ,我 们也可以用a d a 语言来实现,用其他的语言来实现也行,结果会有所不同, 但基本的东西是一样的。到处都要用n - - 分查找和排序,而这就是人们正在做 的1 3 引。对于容器的语义,不同的语言会带来轻微的不同。但是基本的区别很清 楚是g p 所依存的语义,以及语义分解。例如,我们决定需要一个组件,然后 指出这个组件在不同的语言中如果工作。显然重点是语义以及语义分类。而 o o p 所强调的是清楚的定义类之间的层次关系。 2 1 2 面向对象的分析和设计方法 o o a d 是现代软件企业广为采用的一项有效技术。o o a d 方法要求在设 计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售 人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实 体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并 保持他们的结构、关系和行为为模式1 1 7 j 。 目前众多的软件项目有什么样的问题呢? 早些拥有e r p 的企业在企业发 展的过程中发现原有的e r p 系统需要改进,可是要改进或者是更改现有的 e r p 系统,唯一的方法就是重新开发一个e r p 系统。这对于企业来说是笔不 小的支出。此时,落后的信息系统就成为制约企业发展的重要因素。是什么原 因造成了这种情况呢? 主要的因素是传统的系统分析是在假定需求不变的情况 下进行的,这样可以把企业的资源配置到最优的程度。可是在现代瞬息万变的 社会,一个企业固守l e t 有模式,势必会在竞争中处于劣势。既然企业的需求是 变化的:不稳定的,那么以变化的需求为基础建立起来的企业信息系统当然也 就不稳定了。这时候,有个问题就产生了,前面我们已经说过,需求是项目的 根本,既然需求都是不稳定的,那么何以建立起稳定的企业信息系统昵? 首先要比较面向过程和面向对象的开发方法的差别,传统的面向过程的开 发方法焦点集中于过程,开发者集中于以函数为核心的过程,例如前些年很多 哈尔滨理工大学工学硕士学位论文 人试图编写一些通用转账函数来满足银行的需求。面向过程的开发语言包括: c o b o l 、p a s c a l 、c 及c 的变形语言。面向对象的概念是在近十年才进入中国 的,而它的思想至今也没有真正意义上得到普及。简单的说,面向对象就是面 向世界,世界上的任何事物都是对象,因此面向对象是很自然的思想,是符合 我们的思维习惯的。面向对象的语言包括了s m a l l t a l k 、c + + 、j a v a ,还有 o b j e c tp a s c a l 以及c 撑。 需求是不稳定的,那么需求之中是不是没有稳定的东西呢? 有的,就是对 象。世界都是由对象组成的,而对象都是持久的,例如动物、植物已经有相当 长的时间。虽然对象也在变化,动物,植物也在不断的进化。但对象在一个相 当长的时期内都存在,动植物的存在时间肯定比任何一家企业长久。面向对象 的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业 对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定 得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。 这种开发的方法就被称为o o a d t l 9 1 。 2 2 面向服务体系结构 随着企业计算的发展,企业级应用需求要求新的软件系统不再是从底层做 起,而只是依据企业逻辑需求重新组织己有的数据存储,将现有的数据和事务 通过新的渠道,比如i n t e m e t 浏览器或者手持设备呈现给用户。另外,为了提 高企业计算的高效性、可用性、规模性,现有许多的操作系统都是分布式操作 系统,运行在许多机器之上。这样的企业级解决方案就必须协调运行在群组硬 件之上,实现这种系统的一种方法就是将该系统组织成群组服务的模式,每一 个服务都提供一组定义良好的功能集合。整个系统其实就被设计和实现为一组 相互交互的服务,而将功能以服务的形式展现出来是该系统灵活性的关键。它 使得系统中的某些服务能够充分利用其他的服务同时却无需考虑其物理位置 【l 引。系统通过添加新的服务来不断的升级,这样就应运而生了s o a 。 2 2 1s o a 的概念 什么是面向服务的体系结构( s e r v i c eo r i n e t e d a ra r c h i t e c t u r e ,s o a ) ? 目前 没有准确的定义,也没有绝对的准则。事实上,s o a 仍然在不断地成熟之中。 面向服务的体系结构是下一代分布式应用开发的体系结构蓝图。文【1 9 】为此定 义:面向服务的体系结构( s o a ) 是一个体系结构类型,目的是实现交互的软件 哈尔滨理工大学工学硕士学位论文 代理之间的松散耦合。服务是一个工作单元,由服务提供者提供,服务消费者 获取想要的结果。提供者和消费者都充当软件代理的角色获取自身的利益。 g a r t n e r 关于s o a 的定义:面向服务的体系结构( s o a ) 是客户端服务器 ( c l i n e s e r v e r ,c s ) 软件设计方法,其中的应用包括软件服务和软件服务消费者 ( 也称客户端或服务请求者) 。s o a 不同于普通的c s 结构,因为它的软件组件 分别使用标准的接口实现松散耦合【2 0 1 。 面向服务的体系结构( s o a ) 是一种用于构建分布式系统的方法,采用s o a 这种方法构建的分布式应用程序可以将功能作为服务交付给终端用户,或用于 构建其他的服务。面向服务的体系结构( s o a ) 支持跨企业和业务合作伙伴之间 的端到端集成。这就提供了一种灵活的业务流程模型,使得客户可以迅速地响 应新的顾客需求、新的业务机会以及竞争的威胁【2 n 。 s o a 连接结构如图2 1 所示。该结构描述了面向服务的体系结构的角色、 操作和基本构件。 图2 一ls o a 连接结构图 f i g 2 1s t r u c t u r eo fs o a sc o n n e c t i o n 面间服务的体系结构中的角色包括: 1 服务使用者:服务使用者是一个应用程序、一个软件模块或需要一 个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服 务,并且执行服务功能。服务使用者根据接口契约来执行服务。 2 服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和 执行来自使用者的请求。它将自己的服务和接口契约发布到服务注朋中心, 以便服务使用者可以发现和访问该服务。 3 服务注册中心:服务注册中心是服务发现的支持者。它包含一个可 哈尔滨理工大学工学硕士学位论文 用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。 面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册 中心这三种角色中的某一种( 或多种) 【2 3 】。 面向服务的体系结构中的操作包括: 1 发布:为了使服务可访问,需要发布服务描述以使服务使用者可以 发现和调用它。 2 发现:服务请求者定位服务,方法是查询服务注册中心来找到满足 其标准的服务。 3 绑定和调用:在检索完服务描述之后,服务使用者继续根据服务描 述中的信息来调用服务【2 3 】。 面向服务的体系结构中的构件包括: 1 服务:可以通过已发布接口使用服务,并且允许服务使用者调用服 务。 2 服务描述:服务描述指定服务使用者与服务提供者交互的方式。它 指定来自服务的请求和响应的格式。服务描述可以指定一组前提条件、后置 条件和服务质量( q u a l i t yo fs e r v i c e ,q o s ) 级别。 除了动态服务发现和服务接口契约的定义之外,面向服务的体系结构还 具有以下特征:服务是自包含和模块化的,服务支持互操作性,服务是松散 耦合的,服务是位置透明的,服务是由组件组成的组合模块【z 4 1 。 2 2 2 s o a 组成元素 s o a 组成元素可以分成功能元素和服务质量元素。图2 2 展示了体系结构 堆栈以及在一个面向服务的体系结构中可能观察到的元素。体系结构堆栈分成 两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体系结 构的服务质量方面。这些元素详细描述如下: 功能性方面包括: 1 传输。传输是一种机制,用于将来自服务使用者的服务请求传送给 服务提供者,并且将来自服务提供者的响应传送给服务使用者。 2 服务通信协议。服务通信协议是一种经过协商的机制,通过这种机 制,服务提供者和服务使用者可以就将要请求的内容和将要返回的内容进行 沟通。 3 服务描述。服务描述是一种经过协商的模式,用于描述服务是什 哈尔滨理工大学工学硕士学位论文 么、应该如何调 图2 - 2s o a 体系结构兀素图 f i g 2 2e l e m e n t so fs o a 用服务以及成功地调用服务需要什么数据。 4 服务。服务指实际可供使用的服务。 5 业务过程。业务过程是一个服务的集合,可以按照特定的顺序并使 用一组特定的规则进行调用,以满足业务要求。注意,可以将业务过程本身 看作是服务,这样就产生了业务过程可以由不同粒度的服务组成的观念。 6 服务注册中心。服务注册中心是一个服务和数据描述的存储库,服 务提供者可以通过服务注册中心发布它们的服务,而服务使用者可以通过服 务注册中心发现或查找可用的服务1 2 4 j 。 2 2 3s o a 应用的意义 当今的企业正面对两项挑战:迅速改变的能力和降低成本的要求。为了保 持竞争力,企业必须快速地适应内部因素( 如兼并和重组) 或外部因素( 如竞争能 力和顾客要求) 。需要经济而灵活的t i 基础设施来支持企业。采用面向服务的 体系结构将给我们带来几方面的好处,有助于我们在今天这个动荡的商业环境 中取得成功t 1 利用现有的资产s o a 提供了一个抽象层一服务层,通过这个抽象 层,企业可以继续利用它在i t 方面的投资,方法是将这些现有的资产封装 成提供企业功能的服务,这些业务服务是现有组件的集合。使用新的服务 哈尔滨理工大学工学硕士学位论文

温馨提示

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

评论

0/150

提交评论