(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf_第1页
(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf_第2页
(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf_第3页
(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf_第4页
(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机科学与技术专业论文)基于soa的jbi构件可视化组装工具的研究与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院工学硕士学位论文 摘要 当前企业应用集成( e n t e r p r i s ea p p l i c a t i o ni n t e 酉a t i o n ,e a i ) 技术的主要任务 是如何将高度异构、分布的各个应用有效地集成起来。具有粗粒度、松散耦合和 标准化特征的面向服务的架构( s e i c e o r i e m e d 舡c l l i t e c t i 玳,s o a ) 以及j a v a 业 务集成( j a v ab u s i n e s si n t e 露a t i o n ,j b i ) 技术为此提供了很好的解决方案。 j b i 定义了一种可插拔、构件化的企业服务总线( e n t e 叩r i s es e r v i c eb u s ,e s b ) 架构和基于w s d l 的抽象服务模型,可以采用构件技术把软件功能分解成独立的 构件加以实现,通过“搭积木 的方式组装构件生产软件。但是,目前基于s o a 且遵循j b i 规范的构件技术尚缺乏可视化实现和图形化工具的支持。本文研究与实 现构件可视化组装工具其目的便是试图在这方面提供必要的支持。 本文研究的构件可视化组装工具是基于面向服务的架构并且构件结构完全遵 循j b i 规范的一个工具模块集合,它由构件打包、构件组装和构件部署三大工具模 块组成。本文的主要工作包括以下三个方面: ( 1 ) 深入研究j b i 规范中构件模型和构件部署模型,明确构件打包、构件组 装和构件部署的原理和内容,结合可视化特点设计实现不同构件的模型展示。 ( 2 ) 设计了基于s o a 的j b i 构件可视化组装工具的体系结构框架,定义设计 了构件可视化工具的使用流程,实现了工具的图形化操作界面。 ( 3 ) 结合可视化的思想以易用性为原则,完成设计了构件打包模块、组装模 块和部署模块,主要包括工具的体系结构、交互模型和关键流程。 主题词:s o a ,j b i 构件,可视化组装,m v c ,构件组装 第i 页 国防科学技术大学研究生院丁学硕七学位论文 a b s t r a c t ,n l em a i l lt a s ko 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 ) t e c h n o l o g i e si sh o w h i g l l l yh e t e r o g e n e o u sa n dd i s t r i b u t e dt h ev 撕o u sa p p l i c a t i o n se 舵c t i v e l yn e 伊a _ t e t o g e t h e r c h a r a c t e r i s t i c sw i t hc o a r s e 一伊a i n e d ,l o o s e l yc o u p l e da n ds t a i l d a r d i z a t i o no ft l l e s e r v i c e - o r i e n t e da r c l l i t e c t u r e ( s o a ) a 1 1 dj a v ab u s i n e s s 础e g r a t i o n ( j b i ) t e c h n o l o g y p r o v i d eag o o ds o l u t i o np r o 铲锄 j b id e f i n e sam o d u l e i n ga n dc o m p o n e m b a s e d 仔锄e w o r kb a s e do nt h ee n t e 印r i s e s e n r i c eb u s ( e s b ) 锄dw s d la b s t m c ts e r v i c em o d e l ,t h es o f h v a r e 舢1 c t i o nc a i lb e d e c o m p o s e di n t os e p a r a t ec o m p o n e n t st ob e a c h i e v e db ys o f h v a r ec o m p o n e m t e c i l i l o l o g y ,f o l l o w e db y ”b u i l d i n g ”a p p r o a c ht oa s s e m b l i n gt h e s ec o m p o n e n t sa n d p r o d u c i n gs o 胁a r e h o w e v e r ,b a s e do nt l l e s o aa i l df o l l o w st h ej b is t a n d a r d c o m p o n e mt e c h n o l o g yi sl a c ko fs u p p o nf o r t h er e a l i z a t i o no fv i s u a l i z a t i o na i l dg r a p l l i c s t o o l s 1 1 1t h i sp a p e r ,t l l ev i s u a lc o m p o n e n ta s s e m b l yt o o l st oa c l l i e v ei t sp u r p o s ei st o p r o v i d et h en e c e s s a 拶s u p p o r ti nt h j sv i e w t h i sp a p 髓s t u d i e sc o m p o n e n ta s s e m b l yv i s u a l i z a t i o nt o o l i sas e to fs t a n d a r dt o o l b a s e do nt h es o aa n ds t m c t u r ei 1 1 如l lc o m p l i a n c ew i t hj b ic o m p o n e n t s ,w l l i c hc o n s i s t s o fc o m p o n e n tp a c k a g i n g ,c o m p o n e n ta s s e m b l ya n dd e p l o y m e n to fc o m p o n e n t s t h e m a i nt o p i co ft h i sw o r ki n c l u d et l l ef 0 1 l o w i n gt h r e ea s p e c t s : ( 1 ) i n d e p mr e s e a r c ht 0d e p l o yj b ic o m p o n e n t sa n dc o m p o n e n tm o d e l ,d e f i n i t u d e p r i n c i p l e 跚1 dc o n t e n to fc o m p o n e n tp a c k a g i n g ,c o m p o n e n ta s s e m b l ya 1 1 dd e p l o y m e n to f c o m p o n e n t s ,d i s p l a y i n gm o d e lo fd i f f e r e mc o m p o n e m sc o m b i n i n gv i s u 甜d e s i g n f e a t u r e s ( 2 ) d e s i g na r c l l i t e c t u r e 行锄e w o r k ,d e f i n et h eu s eo fn o wa n dr e a l i z eg r a p l l i c a l u s e ri m e 矗犯eo fv i s u a la s s e m b l yt o o lb a s e do ns o ao fj b ic o m p o n e n t ( 3 ) t h ec o m b i n a t i o no fv i s u a lt h i n k i n gi nu s a b i l i t yp r i n c i p l e ,c o m p l e t i n gt h e c o m p o n e n tp a c k a g i n gm o d u l e ,m o d u l ea s s e m b l ya n dd e p l o y m e mm o “l e so ft o o l i n c l u d i n gt ot h ea r c m t e c t u r e ,i n t e r a c t i o nm o d e la i l dk e yp r o c e s s e s k e yw o r d s : s e n ,j c e - o r i e n t e d a r c h i t e c t u 陀, j b l c o m p o n e n t , v i s u a i a s s e m b i y ,m o d e i - v i e w c o n l r o e r ,c o m p o n e n ta s s e m b i y 第i i 页 国防科学技术大学研究生院工学硕士学位论文 图2 1 图2 2 图2 3 图3 1 图3 2 图3 3 图3 4 图3 5 图3 6 图3 7 图3 8 图4 1 图4 2 图4 3 图4 4 图 图 图 图 图4 9 图4 1 0 图4 1 1 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图4 1 6 图4 1 7 图4 1 8 图4 1 9 图4 2 0 图4 2 l 图目录 面向服务的架构模型。7 j b i 架构顶层视图1 1 j b i 构件系统1 4 基本构件生命周期状态图2 3 e c l i p s e 工作台2 6 j b i 构件i d e 2 7 m v c 的u m l 类图2 8 g e f 结构图。3 0 安装和部署描述符之一3 4 安装和部署描述符之二3 4 安装和部署描述符之三3 5 可视化组装工具体系结构3 7 可视化组装工具结构框架3 9 可视化组装工具主界面:4 0 j b i 标准消息交换模式4 1 消息交换模式图例4 l i n 0 n l y 消息交换模式4 l r - o b u s ti n 0 1 1 1 y 消息交换模式4 2 i n o u t 消息交换模式4 2 i no p t i o n a l o u t 消息交换模式4 3 g e f 定义的标准连接线4 3 j b i 构件i d e 实现的连接线。4 4 可视化组装工具使用流程4 4 可视化组装工具交互模型4 5 服务单元生命周期状态图5 3 服务集合生命周期状态图5 4 构件生命周期状态图5 5 扩展构件生命周期状态图5 6 构件安装过程消息序列图5 7 构件卸载过程消息序列图5 7 部署生命周期状态图5 8 可视化组装统一查询组合应用6 1 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目: 学位论文作者签 学位论文版权使用授权书 现 茂| 8b 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借闶;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目 学位论文作者 作者指导教师 国防科学技术大学研究生院_ i 学硕七学位论文 第一章绪论 在过去的四十年里用软件体系结构来处理软件复杂性,现在提出面向服务的 架构作为软件体系结构的发展新阶段来帮助i t 组织挑战越来越多的复杂性应用。 随着企业应用的规模与复杂度不断增加,需要对新的业务需求进行快速反应,不 断减少i t 成本,以及吸收、集成新的业务伙伴和客户群。在分布式构件技术的基 础上,为提高应用的可用性、可移植性、可扩展性和可重用性,并满足复杂应用 需求、适应快速需求变化,j b i 构件技术应运而生。本文以j b i 规范为背景、j b i 构件为模型,目的为服务构件之间提供强有力的交互支撑,研究与实现了基于s o a 的j b i 构件可视化组装工具。 1 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 m ) 1 2 j 主要是解决横亘于 企业或政府的“信息孤岛”问题,顺畅企业或政府的信息流程,为企业带来更大 的利益,为政府带来更好的服务能力。当运行的计算机应用软件系统多于一个, 系统相互间要进行数据、信息和业务交流时,就有不同系统的集成问题。同时随 着w e b 服务( w e bs e i c e s ,w s ) 标准逐渐被广泛采纳与实现,高度异构的软件 系统之间互操作已经取得了前所未有的进步。面向服务的架构( s e r v i c e o r i e n t e d 心c h i t e c t u r e ,s o a ) 【3 】在这种背景下焕发生机,它定义和提供i t 基础设施,允许 不同应用相互交换数据、参与业务流程,而无需考虑底层实现采用的操作系统和 编程语言。 分布式构件技术带来社会分工的细化,使得构件开发及组装过程中涉及的软 件人员角色变为构件开发者、构件组装者、构件部署者、构件平台提供者、工具 提供者。在构件技术广泛应用的同时,为了进一步提高开发的效率,保证软件的 质量,降低开发人员的培训成本,为构件的软件开发人员提供相应的开发工具、 组装工具、部署工具的支持,已经成为应用中越来越关注的问题。 利用s o a 提供的这种较面向对象和基于构件更好的软件复用方法去构建出一 个松散耦合的分布式系统使其达到复用度高和扩充性好的目的。在s o a 中,首先 各个应用的功能被封装为基于标准来描述和供访问的服务;其次借助于s o a 的通 用连接能力,这些来自不同应用的服务不需要关心对方的位置和实现技术,而是 以松散耦合的方式相互交互来完成集成;最后通过服务组合,服务可以按不同的 方式来组合成为不同的业务流程。总之,这种通过重用粗粒度服务而不是在底层 编程来开发新应用以满足业务新需求的方法,使得i t 组织能够以更少的投入、更 第l 页 国防科学技术大学研究生院j :学硕十学位论文 快的速度、更好的质量来开发应用。 1 2 技术背景 构件的概念最早出现在1 9 6 8 年n a t o 软件工程会议上,基于构件的开发 ( c o i n p o n e n t - b a s e dd e v e l o p m e n t ,c b d ) 或基于构件的软件工程( c o m p o n e n t b a s e d s o 俞w a r ee n g i n e e 面g ,c b s e ) 是一种软件开发新范型,它是在一定构件模型的支 持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构 造应用软件系统的过程。目前业界广泛认可的构件模型主要有三类:o m g 组织的 c o r b a u 引,m i c r o s o r 公司的c o m d c o m c o m + ,s u n 公司的j a v a b e a l l s e j b 。 不同构件模型的存在导致了不同构件之间的异构性:一方面是构件模型的异构性, 另一方面是运行平台的异构性。构件的异构性导致了构件互操作困难,阻碍了基 于构件的软件开发的发展。遵守同一构件模型标准是构件生产和组装的基础,不 同的构件生产者提供的构件能否进行组装的基本条件是标准化。 2 0 0 5 年6 月,s u n 提交的j a v a 业务集成( j a v ab u s i n e s si n t e g r a t i o n ,j b i ) 1 4 j 1 0 版技术规范( j s r 2 0 8 ) 获得了j c p ( j a v ac o m m u l l i 田p r o c e s s ) 组织批准。j b i 通过 基于标准的架构解决了业务集成问题,它采用可插拔、构件化的企业服务总线 ( e n t e r p r i s es e r v i c eb u s ,e s b ) 架构和基于w s d l 的抽象服务模型交互,并支 持w e b 服务技术和b p e l 引擎等,以一种非侵入的方式基于已有的系统进行无缝 集成。只要符合j b i 开放标准规范,任何第三方供应商提供的构件都能被支持互操 作,从而可以采用构件技术把软件功能分解成一个个独立的构件加以实现,然后 通过“搭积木”的方式组装这些构件来生产软件。 j b i 完全实现了面向服务的架构可以使现有系统无缝集成应用,但是目前基于 s o a 且遵循j b i 规范的构件技术缺少可视化实现和图形化工具支持,这种现实背 景和技术支持都促成了构件可视化组装工具的研究与实现。遵循构件技术的特色, 应用开发具体分为四个步骤:构件的开发、打包、组装和部署四个阶段。数据信 息的可视化技术日新月异飞速发展,e c l i p s e 平台的广泛应用、e m f ( e c l i p s e m o d e l i n gf r a m e 、v o r k ) 的简单性和便利性以及g e f ( g r a p h i c a le d i t i n gf r 锄e 、o r k ) 基于m v c 体系结构的优势,使得基于g e f 图形编辑器的应用变得日益广泛。g e f 图形编辑器是一种基于m d a 的工具,它建立在m v c 体系结构基础之上,模型和 视图之间的依赖关系比较弱,并具有良好的互操作性和可重用性。 1 3 研究现状 为了使构件组装技术付诸实用应该对构件组装提供一定的工具支持,下面是 第2 页 国防科学技术大学研究生院j :学硕十学位论文 目前国内外在这方面的一些主要研究成果: _ w r e n , u m v e r s 时o fc a l i f - o m i a ,i r v i n e 开发的一个基于构件的开发环境,可以实现构 件检索、构件选择、构件配置、构件部署、构件演化等功能。 c o b a l t e t 刚c o m p u t e r & s o n 眦鹏l a b o r a t o 巧开发的一个支持使用c 2 构架风格来组合 e j b 构件的c a s e 工具。 a c m e s t u d i o c 锄e g i em e l l o nu n i v e r s 匆开发的对a c m ea d l 进行可视化编辑的工具,但 是它并不支持构件的组装。 j b a s s e m b l e r 北京大学开发的青鸟构件组装工具,是青鸟软件生产线系统的核心工具, j b a s s e m b l e r 在复合构件中可以自动进行相关组成构件的连接与合并,生成实际的 系统。 e o s 普元公司的p r i m e t o r 正o s 是基于j 2 e e 平台之上的完整的系统架构,是面向构 件的完整的互联网应用体系。 针对当前企业应用的迫切需求,一些研究机构和开发组织推出了基于j b i 的相 关开源企业服务总线项目,另外还有一些企业服务总线可兼容j b i 构件,但是它们 采用非标准j b i 实现。但是它们都有一个共同点那就是关于构件可视化组装部分均 是一个比较薄弱的环节: s u n 公司的o p e n e s b o p e n e s b 是第一个基于j b i 技术规范和参考实践的全方位开源的企业服务总 线,其主要特点是提供了i d e 用于构件和服务组装的可视化开发与管理,集成构 件有b p e l 2 0 服务引擎和s o a p 绑定构件等。 a p a c h e 组织的s e r v i c e m i x s e i c e m i x 是l o g i c b l a z e 公司在a - p a c h e 组织下孵化的开源轻量级e s b 。它遵 循j b i 标准,支持多种绑定协议,比如h t t p 、j m s 和r s s 等;还提供了多种服 务引擎,包括x p a t h 、d r o o l s 、g r o o v ) ,规则引擎等。其主要特点是支持轻量级p o j o 构件开发提高了集成效率,它目前提供打包部署工具,通过用户图形界面的形式 为用户提供交互信息的方式。 b o s t e c h 公司的c h a i n b u i l d e r c h a i l l b u i l d e re s b 是遵从j b i 技术规范的一个图形化的开源工具。c h a i n b u i l d e r e s b 构件是用j a v a 语言编写而成,设计为图形用户界面,能够插入e c l i p s e 开发平 台。c h a i n b u i l d e re s b 区别于其它工具在于它强调拖放直观且易使用的制图综合方 第3 页 国防科学技术人学研究生院t 学硕士学侮论文 法。 o b i e c t w e b 组织的p e t a l s p e t a l s 以j b i 容器作为核心,采用o b i e c t w e b 开源的c e l t i x 作为它的传输层。 它的架构基于f r a c t a l 构件模型,p e t a l s 提供了监控工具,可以监控整个服务网络的 状况。 i o n a 公司c e l t i x c e l t i x 是兼容j b i 的开源企业服务总线。其主要特点是提供完整的j a x - w s2 o 功能,支持多种协议,包括w s a d d r e s s i n g 、w s r e l i a b l em e s s a g i l l g 等。 这几个开源项目和原来纯手工操作相比,在一定程度上方便了用户操作、减 轻了用户负担。但是本质上来讲,工具界面和用户交互的信息还是表现为抽象数 据,尤其是在组装阶段工具没有挖掘信息的可视化特征,因而最终开发出来的交 互界面生硬工具易用性不强。 面向服务的构件可视化组装工具力求在较完整地实现j b i 规范同时,为用户提 供概念简单、使用方便的组装工具支持。与同种类型工具比较,该可视化组装工 具有以下突出特点:其一,实现构件可视化,视图形象直观,易于接受使用;其 二,通过友好的交互界面,对构件包和组装包的属性进行配置,无需用户面对复 杂的描述文档;其三,操作简单方便,通过构件图形端口之间的连线建立构件之 间的映射关系,构建组装图形;其四,实现组装的零编程,对图形的操作完全代 替以往繁琐的手工操作,大大提高组装人员的工作效率。 1 4 本文工作 在分析基于s o a 的j b i 规范的基础上,结合构件组装的特点,以可视化为目 标,对j b i 构件可视化组装工具进行研究与设计,并通过应用实例展示了该工具进 行构件可视化组装的过程。它不仅将j b i 构件组装可视化,同时简化构件开发部署 过程,用户只需要进行拖拉连线等简单界面操作,从而实现了将j b i 构件组装成具 体应用时的零编程。该工具遵循构件化软件设计开发思想,体现基于s o a 的j b i 规范优越性,把理论研究和实际应用结合在一起。本文的具体研究内容如下: ( 1 ) 研究了面向服务的架构的优越性和j a v a 业务集成的规范性在应用背景和 技术背景下促使基于s o a 的j b i 构件可视化组装工具的产生。 ( 2 ) 研究了j a v a 业务集成规范中j b i 构件框架、j b i 构件模型和j b i 构件部 署模型,论证了j b i 构件可视化组装工具的必要性和可行性。 ( 3 ) 研究了j b i 构件可视化组装工具的相关实现技术,具体包括目前的构件 技术、流行的可视化技术、m v c 设计模式、图形化编辑框架和可扩展标记语言的 应用。 第4 页 国防科学技术大学研究生院t 学硕士学位论文 ( 4 ) 研究了j b i 构件可视化组装工具的具体实现,具体包括可视化组装工具 的体系结构、图形界面设计、使用流程设计和三大工具模块的具体实现,构件打 包、构件组装和构件部署是贯穿全文的线索和主要内容。 ( 5 ) 研究了构件组装机制、构件分解原则,以及构件之间不同连接类型的图 形化区别实现,不断完善工具功能使之应用更加广泛。 本文的主要创新贡献如下:把流行的面向服务的架构和j a v a 业务集成的构件 规范与最新的可视化技术相结合研究实现了j b i 构件可视化组装工具,基于e c l i p s e 的开发平台、m v c 的设计模式和g e f 图形化编辑框架等最新相关技术的融合,使 j b i 构件可视化组装工具运行效率高、图形界面好、插件扩展强。 1 5 论文结构 本文共分五章,各章节的内容概述如下: 第一章为绪论,论述了本课题的应用背景、技术背景、研究现状以及课题的 主要工作,最后给出了论文的组织结构。 第二章介绍了面向服务的架构和j a v a 业务集成,重点阐述了j b i 构件,包括 构件框架和构件模型等。 第三章是j b i 构件可视化组装工具的研究,论述了与之密切相关的技术支持, 包括构件技术、可视化技术、e c l i p s e 开发平台、m v c 设计模式、图形化编辑框架 等。 第四章是j b i 构件可视化组装工具的实现,详细论述了构件打包、构件组装和 构件部署三大工具模块构成的可视化组装工具。, 第五章结束语,对全文进行了概括总结,并对下一步工作进行了展望。 最后是致谢和参考文献。 第5 页 国防科学技术人学研究生院工学硕十学位论文 第二章基于s o a 的jb i 构件 面向服务的架构存在时间已超过二十年但一直未得到广泛应用,由于w e b 服 务的出现并被广泛接纳,s o a 终于迎来了自己的春天。就开发体系结构而言s o a 是将来的一个发展趋势,s o a 将数据和信息作为服务公开的模型使其成为了一个 非常强大的概念,与当前的应用程序构建块范例截然不同。s o a 的基本思想是将 企业或组织封装在服务组成的构造中,其中从数据到逻辑和业务功能都成为了某 种类型的服务。这些事务问的粘合剂主要是w e b 服务,w e b 服务通常在超文本传 输协议( h 1 v r p ) 的基础上使用简单对象访问协议( s o a p ) 。当s o a 与普及计算 ( u b i q u i t o u sc o m p u t i n g ) 或效用计算( u t i l i t ) ,c o m p u t i n g ) 模型结合使用时可提供 巨大的计算潜能。 2 1 面向服务的架构 2 1 1 面向服务的架构概述 随着软件开发方法研究的发展和分布式技术应用的深入,基于多种开发平台 和工具的商业系统得到大量应用,使得企业中的软件系统变得日益庞大和复杂。 由于传统的软件开发使用的平台、开发工具、操作系统在结构上的紧耦合,导致 这些位置上分散的独立系统逐渐形成了所谓的“信息孤岛”。为了更好的重用已 有模块、加快软件开发速度,使这种重用可以不用考虑各自运行平台和开发环境 的差异,并使被重用的模块可以方便地由旧系统纳入新系统,一种称为面向服务 的架构( s e r v i c e o r i e m e d 加c h i t e c t u r e ,s o a ) 的软件设计方法被提了出来,这种 通过对服务流程化的组织来构建分布式系统的方法既是体系结构模型,又是编程 模型。服务是s o a 中的基础设施,位于业务需求和底层技术之间的抽象层次中。 在开发基于s o a 软件系统的过程中,首先要明确功能需求和可获得服务之间的动 态关系以及服务与实现服务的底层技术的关系。其次,s o a 中的基本服务必须满 足定义明确和功能单一的要求,每个独立部署的服务不必依赖其它系统。最后, 整个系统功能需求的满足通过服务的流程化组织而得到实现。 2 1 1 1 面向服务的架构定义 从体系结构的角度可以认为s o a 是一种松散耦合的软件体系结构,在这种体 系结构中由各自独立可复用的服务去构成系统功能,这些服务向外公布有意义明 确的接口,软件的开发是通过对这些实现透明的接口的调用来完成1 5 j 。 在面向服务的架构中服务是一个逻辑实体,其合约是由一个或多个已经发布 第6 页 国防科学技术大学研究生院丁学硕十学位论文 的接口定义的。面向服务的架构每个实体的角色并非固定,可以同时充当以下三 种角色中的一个或多个【6 】。在面向服务的架构中主要有以下三种角色: 服务消费者:服务消费者是需要使用服务的应用程序或其它的服务。通过 对注册中心的服务进行查询后根据接口说明信息并使用某种传输协议与 服务绑定并执行服务功能。 _ 服务提供者:服务提供者是创建服务的实体。可以从服务消费者处接受请 求并可以远程执行所请求服务。通过向注册中心发布服务接口信息以供服 务消费者发现和访问服务。 _ 服务注册中心:服务注册中心处于中心位置提供了展示服务的功能。服务 消费者通过查询存储有服务信息库的注册中心以找到感兴趣服务的接口 信息。 图2 1面向服务的架构模型 服务消费者、服务提供者和服务注册中心通过三个基本操作相互作用:服务 提供者向服务注册中心发布服务,服务请求者通过服务注册中心查找所需的服务, 并绑定到这些服务上。如图2 1 所示。在面向服务的架构中主要的操作有: _ 发布:服务的描述信息必须被发布以便服务消费者发现和调用。 发现:服务请求者通过查询注册中心去定位符合其需求标准的服务。 _ 绑定和调用:在获得服务描述信息之后,服务消费者据此去调用服务。 2 1 1 2 面向服务的架构实现技术 ( 1 ) x m l ( e x t e n s i b l em a r k u pl a l l g u a g e ,可扩展标记语言) :x m l l 0 标准 是一个基于文本的w o 订dw i d ew e b ( w 3 c ) 组织规范的标记语言。x l l 严格地 定义可移植的结构化数据,可以作为定义数据描述语言的语言,例如标记语法或 词汇、交换格式和通讯协议。 , ( 2 ) s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c o l ,简单对象访问协议) :s o a p 是 一个基于订l 的,用于在分布式环境下交换信息的轻量级协议。s o a p 在请求者 第7 页 国防科学技术大学研究生院工学硕士学位论文 和提供者对象之间定义了一个通讯协议,该请求对象可以在提供的对象上执行远 程方法调用。尽管s o a 没有定义通讯协议,但大多数组织和企业的s o a 实现中 s o a p 都是分布式对象通讯的基础协议,所以s o a p 甚至被称为面向服务的架构协 议( s e r v i c e s o r i e n t e d 心c m t e c t u r ep r o t o c 0 1 ) 。s o a p 的优点在于它完全和厂商无关, 相对于平台、操作系统、目标模型和编程语言可以独立实现,另外传输和语言绑 定以及数据编码的参数选择都是由实现决定的。 ( 3 ) w s d l ( w e bs e r v i c e sd e s c r i p t i o nl a i l g u a g e ,w e b 服务描述语言) :w s d l 是一个提供描述服务i d l 标准方法的x m l 词汇。它为服务提供者提供了一个简单 的方法,描述远程方法调用( r m i ) 的请求消息和响应消息的格式。w s d l 不依 赖于底层的协议和编码要求来涉及服务i d l 这个主题。通常w s d l 提供一种抽象 的语言,利用各自的参数和数据类型来定义被发布的操作,该语言还涉及了服务 的位置和绑定细节的定义。 ( 4 ) u d d i ( u n i v e r s a ld e s c r i p t i o n 、d i s c o v e 珂a l l di n t e 酣i o n ,统一描述、发 现和集成) :u d d i 规范提供了一组公用的s o a pa p i ,使得服务中介得以实现。 u d d i 规范是由i b m 、m i c r o s o r 和a m a 制定的,促进了基于w e b 的服务的创建、 描述、发现和集成。 2 1 1 3 面向服务的架构优势 面向服务的架构可以基于现有的系统投资来发展,而不需要彻底重新创建系 统,企业组织可以将开发力量集中在创建服务、利用现有的技术、结合基于构件 方法开发软件。部署面向服务的架构与传统开发方法相比,它具有标准化、松散 耦合、共享服务和粗粒度等特点,其优势具体表现为: 易于集成现有系统:在对现有系统不做修改的前提下,s o a 可将现有系统 和应用迅速转换为服务构件,通过封装提供服务接口的应用层来访问遗留 系统,因此不用修改现有系统体系结构。 一拥有丰富服务资源:企业组织可以通过合并构建在不同的机器上、运行在 不同的操作系统中、用不同的编程语言开发的构件来创建服务,面向服务 的架构用服务和构件的概念包容所有可用资源。 _ 具有标准化的架构:只要符合相关标准,无论何时开发的构件都可以合并 在一个结构良好的s o a 系统中。不同开发者开发的构件将被作为服务方便 地添加部署到现有的基础构架中。 _ 提升开发效率:由于s o a 在可复用方面的特点,新的软件在设计、开发、 测试和部署时可以充分利用已有服务构件,开发周期可以显著缩短。 -降低开发维护复杂度:通过采用s o a 体系结构,在进行二次开发时成本急 剧减少,同时由于系统具有松散耦合的特征,维护成本也大大减少。 第8 页 国防科学技术大学研究生院工学硕士学位论文 2 1 2w e b 服务概述 w e b 服务( w e bs e r v i c e s ,w s ) 是使应用程序可以用与平台无关和与编程语 言无关的方式进行相互通信的一项技术【2 8 1 。w e b 服务是一个软件接口,它描述了 一组操作,可以在网络上通过标准化的l 消息传递来访问这组操作。它使用基 于x m l 语言的协议来描述要执行的操作或者要与另一个w e b 服务交换的数据。 一组用这种方式相互作用的w e b 服务在面向服务的架构中定义了特殊的w e b 服务 应用程序。 2 1 2 1w e b 服务特点 在任何面向服务的环境中都需要进行一些w e b 服务基本操作:需要创建w e b 服务,并定义其接口和调用方法;需要将w e b 服务发布到一个或更多的内联网 ( i n t r a l l e t ) 或互联网( i n t e m e t ) 储存库中,供潜在的用户查找;需要查找w e b 服 务供潜在的用户调用:无论基于什么好处都要调用w e b 服务;当w e b 服务不再可 用或不再需要时,需取消其发布。w e b 服务技术与c o i m a 、d c o m 、e j b 【l6 j 等类 似也可以看作一种分布式构件技术,它有如下特点: ( 1 ) 应用的分布式:w e b 服务是松散耦合的,它的调用方式灵活,支持动态 绑定,而且对用户具有分布透明性。应用中服务请求者不用关心服务提供者的数 据源格式是什么、某一服务请求需调用哪些服务、服务请求在w e b 上怎样被执行 等。此外w e b 服务内部或服务构件的变更对服务请求者是完全透明的。 ( 2 ) 应用到应用的交互:分布式的环境中,若采用集中控制方式服务器有较 大的负荷,并且系统不具有健壮性。因此应用到应用( a p p l i c a t i o n t o a p p l i c a t i o n ) 的交互使得w e b 服务更具可伸缩性,这一特征在p 2 p ( p o i n t s - t o p o i n t s ) 架构上的 w e b 服务中体现得尤其显著。 ( 3 ) 平台无关性:w e b 服务的界面、跨w e b 服务的事务、工作流、消息认 证、安全机制均采用规范的协议和约定;w e b 服务采用简单、易理解的标准w e b 协议作为构件界面描述和协同描述规范,并且所有公用的协议完全使用开放的标 准协议进行描述、传输和交换。 ( 4 ) 应用的可集成性:由于w e b 服务屏蔽了不同软件平台的差异,因此具有 可集成的能力。我们可以通过组装功能简单的w e b 服务,得到新的功能复杂的 w e b 服务。 ( 5 ) w e b 服务的易管理性:u d d i 注册中心提供了w e b 服务统一描述、发现 和集成的规范。u d d i 使用一个x m l 文档来描述企业及其提供的服务,利用u d d i 可以方便地查询发布w e b 服务的相关企业和详细技术信息。 第9 页 国防科学技术人学研究生院t 学硕十学位论文 2 1 2 2w e b 服务用途 编程语言和计算机科学在不断发展,软件业最终会接受这样的事实:跨多个 操作系统、编程语言和硬件平台集成软件应用程序不可能由任何一个专门的环境 来解决。w e b 服务所使用的x m l 可以用真正与平台无关的方式来描述所有数据、 跨系统交换数据,因此转向了松耦合应用程序。w e b 服务可以在较抽象的层面上 工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以w e b 服务可以更方便地处理数据,允许软件更自由地进行通信。由此可见w e b 服务有 如下用途: 让任何平台上的用任何语言编写的服务进行交互; 一将应用程序功能概念化成任务,从而形成面向任务的开发和工作流; - 允许松耦合,这意味着每当其中某个或多个服务在设计或实现中发生变更 时,服务应用程序之间的交互作用不会因此中断; _ 使现有的应用程序能适应变化中的业务条件和客户需要; 一 向现有或原有的软件应用程序提供服务接口,而无需改变原来的应用程 序,从而使这些应用程序完全可以运行在新的服务环境; _ 引入其它一些与原有功能无关的管理或操作功能,从而在业务计算环境中 增加其通用性和实用性。 w e b 服务涉及到一系列描述服务、发送服务和服务间相互作用的相关协议: s o a p 、w s d l 、u d d i 、w s t r a l l s a c t i o n 、w s c o o r d i n a t i o n 、b p e l 4 w s ( b u s i n e s s p r o c e s se x e c u t i o nl a n g u a g ef o rw e bs e r v i c e s ) 、w s s e c 嘶t y 、w s - p o l i c y 和w s t m s t 等。 2 2 1jb i 概述 2 2 j a v a 业务集成 j a v a 业务集成( j a v ab u s i n e s si n t e g r a t i o n ,j b i ) 即j s i 毪0 8 是一种企业服务总 线( e m e r p d s es e r v i c eb u s ,e s b ) ,使我们能够用j a v a 实现面向服务的架构j 。 企业正转向以面向服务的架构和网络服务以提供灵活的i t 系统,用一种成本低廉 的方式来支持快速变化的商业需求。j b i 的主要目的是提供一个基于服务的平台作 为对现有j a v 棚2 e e 平台功能的扩展。j b i 定义了一种通过插拔构件间交互传递中 间消息( m e d i a t e dm e s s a g ee x c h a n g e ) 的方式构建集成的架构方案。 2 2 - 2j b i 系统架构 j b i 提供了一个可插拔构件放置的环境。该环境为构件服务的运行,构件之间 第1 0 页 国防科学技术大学研究生院工学硕士学位论文 的交互和整个j b i 系统及其安装构件的管理提供了一套服务。j b i 使用标准的服务 描述语言来描述插拔构件间基于消息的服务调用达到构件之间的交互,这

温馨提示

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

评论

0/150

提交评论