(计算机应用技术专业论文)基于wcf的分布式程序的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于wcf的分布式程序的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于wcf的分布式程序的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于wcf的分布式程序的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于wcf的分布式程序的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着软件工程的发展,软件编程模型在不断演变。与此同时,分布式领域 各种技术层出不穷,这些技术与软件编程模型相结合,促进了分布式技术的应 用和发展。尽管当前软件开发模型很好的解决了开发过程中的问题,然而对系 统进行维护与扩展时,由于结构与技术的限制,往往力不从心。用户需要大量 的资源维护已有的复杂系统,现存的应用很难整合。此外,由于市场、技术等 原因,各种分布式技术之间的互连互通存在问题,特别是在异构平台下构建分 布式应用时格外明显。面向服务架构( s o a ) 的出现,提供了一种新的软件开 发模型,它具有良好的松耦合、与平台无关、灵活和互操作等特性,成为近年 来流行的开发模型。 w c f ( w i n d o w sc o m m u n i c a t i o nf o u n d a t i o n ) 是m i c r o s o f t 最新推出的基于 s o a 架构的网络通信a p i 。w c f 统一了现有的多种m i c r o s o f t 分布式技术,提 供了对跨供应商互操作性支持,显式的面向服务特性,使其成为m i c r o s o f t 新 一代分布式开发的核心技术。 本文首先介绍了分布式开发模型的发展过程,对传统c s 与b s 的特点及 基于分布式组件技术的多层b 愿开发模型的优缺点进行分析。接下来介绍了 s o a ,探讨了w e bs e r v i c e 技术的特点。在此基础上对w c f 体系结构,通信模 型进行分析。通过w c f 与w e bs e r v i c e 的比较,指出w c f 的优势。本文提出 了w c f 与多层b s 相结合的开发模型,并以参与开发的信息管理系统为背景, 介绍了如何利用该模型开发分布式应用。通过介绍该开发模型的特点,指出 w c f 在构建分布式应用中的优势,并在此过程中分析了w c f 的思想及技术特 点,介绍了如何通过w c f 构建灵活、安全、可靠、具有良好互操作性的分布 式程序,为构建w c f 的应用提供参考。本文最后介绍了w c f 的安全机制与配 置方法,分析了w c f 灵活的安全机制,解决了w c f 在开发过程中面向对象与 面向服务的过渡及大数据流的传输问题。 关键词:w c f ,s o a ,分布式,n e t a b s t r a c t w i t ht h e d e v e l o p m e n to fs o f t w a r ee n g i n e e r i n g ,t h em o d e lo f s o f t w a r e c o n s t r u c t i o ni ss t i l li ne v o l u t i o n a tt h es a m et i m e ,n e wt e c h n o l o g i e si nd i s t r i b u t e d f i e l da l ee m e r g i n gi n e n d l e s s l y t h e s et e c h n o l o g i e s w i t ht h en e ws o f t w a r e d e v e l o p m e n tm o d e l ,h a v i n gp r o v i d i n g ap o w e r f u l s u p p o r t f o r d e v e l o p i n g c o m p l i c a t e d ,h i g h e f f i c i e n ta n dr o b u s td i s t r i b u t e da p p l i c a t i o n a n dt h i sh a sg r e a t l y p r o m o t e dt h ea p p l i c a t i o na n dd e v e l o p m e n t o fd i s t r i b u t e dt e c h n o l o g i e s a l t h o u g ht h e c u r r e n ts o f t w a r ec o n s t r u c t i o nm o d e lh a ss u c c e s s f u l l ys o l v e dp r o b l e m si ns o f t w a r e d e v e l o p i n g ,i tc a n tc o m eu pw i t hm a i n t a i n i n ga n de x p a n d i n ge x i s t e n ts y s t e m u s e r s n e e dg r e a tt i m ea n dr e s o u r c et om a n a g et h ec o m p l i c a t e ds y s t e ma n di ti sr e a l l yh a r d t oc o n f o r m i s t f u r t h e rm o r e ,d i f f e r e n tt e c h n o l o g i e sa r en o te a s yt oc o m m u n i c a t e , b e c a u s eo fm a r k e ta n dp r o f i tr e a s o n s a n dt h e s ep r o b l e m sa r ee s p e c i a l l yp a t e n c y w h e n d e v e l o p i n g d i s t r i b u t e d a p p l i c a t i o n i n h e t e r o g e n e o u s e n v i r o n m e n t s e r v i c e - o r i e n t e da r c h i t e c t u r e ( s o a ) i san e wg e n e r a t i o no fa r c h i t e c t u r ei d e o l o g y a p p l y i n gf o rd i s t r i b u t e ds o f t w a r ed e v e l o p m e n t s o ah a ss o l v e dt h ep r o b l e m so f a p p l i c a t i o n sf o rf l e x i b i l i t ya n di n t e r c o n n e c t i v i t yw o n d e r f u l l y , b e c a u s eo fi t sf e a t u r e s o fl o o s ec o u p l i n g ,i nd e p e n d e n to f p l a t f o r me t c a n di ti sw i d e l yu s e dt o d a y w c f ( w i n d o w sc o m m u n i c a t i o nf o u n d a t i o n ) i san e wn e t w o r kc o m m u n i c a t i o n a p ib a s e do ns o ab ym i c r o s o f t i th a st h r e es p e c i a la t t r i b u t e s :u n i f yw i t h m i c r o s o f t st e c h n o l o g y , s u p p o r ti n t e r c o n n e c t i v i t yb yd i f f e r e n tc o m p a n y , a p p a r e n t s u p p o r ts e r v i c e o r i e n t e d ,a n dt h e s ef e a t u r e sm a k ei t a sak e r n e lt e c h n o l o g yf o r d e v e l o p i n gd i s t r i b u t e da p p l i c a t i o n t h i sd i s s e r t a t i o nr e v i e w st h eh i s t o r yo fd i s t r i b u t e ds o f t w a r ed e v e l o p m e n tm o d e l , a n a l y s e sa d v a n t a g e sa n dd i s a d v a n t a g e so ft r a d i t i o n a lc sa n db sm o d e l ,e s p e c i a l l y t h em u l t i t i e rb sm o d e lb a s e do nd i s t r i b u t e dc o m p o n e n t t h i sd i s s e r t a t i o n i n t r o d u c e sb a s i cc o n c e p t ,c o m p o n e n t sa n dc h a r a c t e r so fs o a , a n dd or e s e a r c ho n w e bs e r v i c e a n dt h e n ,t h i sd i s s e r t a t i o nd i s c u s e st h ea r c h i t e c t u r ea n dt e c h n o l o g y d e t a i l so fw c e b yc o m p a r i n gw c fw i t hp o p u l a rt e c h n o l o g yw e bs e r v i c e ,t h i s d i s s e r t a t i o nc o n c l u d e st h ea d v a n t a g e so fw c et h i sd i s s e r t a t i o n p r e s e n t san e w 1 1 d e v e l o p i n gm o d e lb yc o m b i n a t i o nw c f a n dm u l t i t i e rb a s e db s t h i sd i s s e r t a t i o n u s e sam i n i m i sb ya u t h o ra sb a c k g r o u n d ,a n di n t r o d u c e sh o wt od e v e l o pa d i s t r i b u t e da p p l i c a t i o nw i t ht h i sm o d e l b yi n t r o d u c i n gc h a r a c t e r so ft h i sm o d e l ,t h i s d i s s e r t a t i o na n a l y s i sa d v a n t a g e so fw c fi nc o n s t r u c t i n gd i s t r i b u t e da p p l i c a t i o n ,a n d i n t r o d u c e sh o wt oc o n s t r u c t f l e x i b l e ,s e c u r i t y , r e l i a b l e a n dh a s w o n d e r f u l l y i n t e r c o n n e c t i v i t yd i s t r i b u t e da p p l i c a t i o n t h i sd i s s e r t a t i o na n a l y s i st h ec o n c e p to f w c fa n dt e c h n o l o g yc h a r a c t e r s ,a n dp r o v i d e sa ne x a m p l ef o rs u c hk i n ds y s t e m d e v e l o p m e n t a n dl a s t t h i sd i s s e r t a t i o na n a l y s i st h es e c u r i t ym e c h a n i s mo fw c f , a n ds o l v e dt h ep r o b l e m sf r o mo ot os o am o d e la n dl a r g ed a t ap r o c e s s i n g k e yw o r d :w c f ,s o a ,d i s t r i b u t e ,n e t i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 期: 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅:学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 武汉理工人学硕士学位论文 1 1 研究背景和意义 第1 章绪论 分布式技术的出现将物理分散的资源、处理逻辑整合成统一的工作平台, 并在整个系统上进行分配与优化,克服了传统集中式系统的缺陷。随着技术的 进步,特别是自上世纪9 0 年代中期以来,w e b 在分布式应用上起了越来越重 要的作用。以w e b 为核心的分布式技术提供了越来越多的服务,电子邮件、网 络聊天、电子商务等网络应用的出现,为分布式系统开发提供了机遇和挑战。 基于w e b 的分布式系统可以减少部署费用,而且具有平台无关的特性,成为分 布式技术发展的趋势。 为了适应分布式技术的发展,基于组件的多层b s 开发模型孕育而生,这 种开发模型基于某种分布式组件技术,将系统分为三层或多层。分布式组件技 术以m i c r o s o f t 公司和s u n 公司为代表,如m i c r o s o f t 公司d c o m ( 分布式组件 技术) 【1 1 ,n e tr e m o t i n g 2 1 ,m s m q 3 】( 消息队列) 等,s u n 公司的j 2 e e 平台下 的j a v ab e a n ( j a v a 组件) ,e j b ( 企业级j a v a 组件) 。从开发和应用角度来看,这 种模型比传统的c s 或b s 有更大优势。它适合团队开发,有明确的分工,协 同工作,提高了开发效率。可以结合多方面的人才,只需要少数人对系统全面 了解,从一定程度上降低了开发的难度1 4 j 。分布式组件使开发人员对软件系统 的底层处中( 如对事务和消息的处理) 解脱出来,把这些工作交给专门的应用服 务器厂商完成,开发人员可以专注于对业务的处理,有助于开发出高效、健壮 的软件产品。这种开发模式下部署方案灵活,业务逻辑可以根据管理需要迁移。 客户端和商业逻辑的维护相对独立,降低了成本。 然而分布式组件本身也有局限性。如d c o m 是m i c r o s o f t 公司推出的,运 行在w i n d o w s 平台下。n e tr e m o t i n g 适合在n e tr e m o t i n g 程序之间传递消 息。j 2 e e 平台适合与本平台内程序通信。这些技术在互操作性上存在先天的不 足,使得开发人员只能在开发之前做出取刽引。 安全、高效、可互操作是构建分布式系统的目标。s o a ( 面向服务的架构) 的出现正好满足上述要求1 6 1 。s o a 将应用程序的不同功能单元构建为服务,这 武汉理工大学硕士学位论文 些服务通过定义良好的接口和契约联系起来。接口采用中立的方式定义,它独 立于实现服务的硬件平台、操作系统和编程语言。使得构建在各种系统中的服 务以统一、通用的方式进行交互。服务使用者甚至不必关心与之通信的特定服 务的实现方式,因为底层基础设施或服务总线将代理使用者做出适当的选择。 基础设施对请求者隐藏了尽可能多的细节,特别是来自不同实现技术,如j 2 e e 或n e t 的技术规范,不影响s o a 的用户对服务的调用。如果已经存在一个优 化过的服务实现,我们就可以从容地重新考虑用一个更好的服务实现来代替原 有服务,且不需要对代码进行修改,从而减少了维护成本【6 j 。 根据软件开发的发展趋势,m i c r o s o f t 公司推出了基于s o a 的网络开发新技 术w c f ( w i n d o w sc o m m u n i c a t i o nf o u n d a t i o n ,w i n d o w s 通信基础) 。w c f 采用面 向服务的新型编程模型简化了分布式应用程序的开发。它提供分层的体系结构, 支持多种风格的分布式应用程序开发。w c f 对“w s 宰,标准的内置支持,提供 了安全、可靠、协商过的互操作。对于开发人员来说,这减少了达到异构平台 互操作所需的基础结构代码量。对于企业来说,这意味着在组织内部和外部与 客户、伙伴和供应商交互的能力,而不管他们使用的是什么平台。由于w c f 的基本通信机制是s o a p ,因此w c f 应用程序可与大量运行于各种上下文环境 的其他软件进行通信。概括地说,w c f 具有统一性、互操作性、安全与可信赖、 兼容性,为快速构建分布式应用提供了新选择1 7 j 。 1 2 国内外研究现状 1 2 1 国外研究现状 为构建软件选择最佳的抽象模型是一个不断演变的过程。对象是目前构建 应用程序业务逻辑的主流方法,但使用对象构建应用程序与应用程序之间的通 信模型却没有达到同样的成功。一种较好的方法是将软件的各个独立块之间的 交互显式地构建为“服务”。面向对象的应用程序现已存在大量的支持,但将服 务作为基本软件构造块来考虑,则还是一种比较新的观念。因此,专门用于创 建面向服务的应用程序的技术还没有得到广泛应用1 8 j 。 m i c r o s o f t 用于构建面向服务应用程序的代号为i n d i g o 的框架,正好改变 了这一状况,它允许目前创建面向对象应用程序的开发人员采用n e t 2 武汉理二r 大学硕士学位论文 f r a m e w o r k 以相似的方式来创建面向服务的应用程序。同时为了让这些应用程 序能够与运行在w i n d o w s 和其他平台上的软件有效地进行交互,它还实现了 s o a p 和其他w e b 服务技术,这样开发人员就可以创建可靠、安全且能够与 运行在任何系统上的软件实现互操作的事务型服务。随着n e tf r a m e w o r k 3 0 的正式发布,i n d i g o 正式更名为w c f ,并成为m i c r o s o f t 公司n e t 战略的重要 组成部分展示在人们的面前。w c f 成为w i n d o w sv i s t a 操作系统和w i n d o w s s e r v e r 2 0 0 8 操作系统的一部分。 w c f 是m i c r o s o f t 平台上的s o a 架构,用于构建分布式、可交互的应用程 序,它统一了a s m x ,n e tr e m o t i n g 与e n t e r p r i s es e r v i c e 的开发模型。w c f 一经推出就受到了广泛的推崇,受到广大程序开发人员的欢迎,m i c r o s o f t 公司 专门建立了网站用来发布w c f 相关的消息,现在与w c f 相关的技术书籍也层 出不穷。m i c r o s o f t 公司对w c f 技术进行了大量的宣传,m s d n 对w c f 进行 了具体的解析,在m i c r o s o f t 网站的w e b c a s t 频道上有详细的教程,此外大量基 于w c f 的示例程序被开发出来。2 0 0 6 年6 月,s u n 公司启动名叫探戈( t a n g o ) 项目的开放源代码提案。w c f 的工程师们正在和j a v aw e bs e r v i c e s 的工程师一 起致力于企业应用特性的互操作性支持。探戈项目的重点在于互操作性的五个 关键功能区域。由此看来,w c f 已经得到了业界的重视,必将成为w i n d o w s 平台下开发分布式应用使用的重要技术。 1 2 2 国内研究现状 自从w c f 推出后,国内很多程序员和编程社区也纷纷跟进,发表了大量的 技术分析文章,并开发了一些基于w c f 的应用程序,对w c f 的外文图书的翻 译也在进行中。 总体而言,国内w c f 研究工作与国外是同步的,但在w c f 的应用上相对 较少,相信随着v i s u a ls t u d i o2 0 0 8 中文版的发布,w c f 的应用也必定会增加。 1 3 论文内容组织 本论文的内容组织如下: 1 、第1 章绪论。介绍了课题的研究背景及国内外研究状况,阐述课题的 主要研究内容。 3 武汉理工大学硕十学位论文 2 、第2 章分布式开发模型与w c f 技术介绍。叙述了分布式开发模型的发 展过程,分析了这些开发模型的特点,比较了这些模型在构建分布应用程序中 的优点与不足。介绍了s o a 与w e bs e r v i c e 技术,分析了它们的特点。在此基 础上介绍了w c f 技术,对w c f 的层次结构,技术组成进行了分析。 3 、第3 章信息管理系统分析与总体设计。介绍了作者参与开发的小型信 息管理系统的功能、特点。结合w c f 技术,提出基于w c f 的多层b s 开发模 型,并对系统架构进行设计。 4 、第4 章信息管理系统的实现。根据前面的分析和设计给出了系统具体 实现流程,并对实现界面和代码进行介绍。在此过程中介绍了w c f 构建分布 式应用的实现过程,并比较了w c f 与w e bs e r v i c e 技术,指出了w c f 技术的 优势。 5 、第5 章w c f 关键技术的研究。详细地研究了w c f 如何解决面向服务 与面向对象两种编程模型的转化,以及w c f 如何解决大数据流的传输问题。 6 、第6 章总结与展望。对本文内容进行总结,对w c f 发展趋势进行展望, 分析了w c f 的发展方向。 4 武汉理工大学硕士学位论文 第2 章分布式开发模型与w c f 技术介绍 2 1c s 开发模型介绍 上世纪九十年代,随着信息化的深入,特别是网络技术的发展,传统大型 集中式主机和网络文件服务器体系结构的不足日趋明显,资源过于集中于主机 上,使得主机负载过重,往往成为系统的瓶颈i 引。 随着个人电脑价格下降和性能提升,特别是数据库技术的成熟,人们提出 了c s ( 客户机朋艮务器体系) 结构,也称为两层开发模型。这种模型逐渐成为分 布式开发的主要模型。其结构如图2 - 1 所示: 业务逻辑 数 业务逻辑 据 访 数 问 据 层 库 业务逻辑 客户端 服务器 图2 - 1c s 开发模型 在这种开发模型中,应用程序的业务逻辑和数据处理逻辑分布在客户和服 务器两端。客户端接收用户的输入请求,经过处理后将数据发送给数据库服务 器,并将返回结果显示给用户。与集中式系统相比,c s 开发模型有如下优点1 1 0 】: 1 服务器负荷较轻。 业务逻辑集成在客户端,服务器仅负责数据请求,不需要与用户直接交互, 减轻了服务器的负载。 5 武汉理工大学硕士学位论文 2 数据的储存管理功能透明。 数据库服务器负责数据的储存管理,客户端在得到相应的权限后,对数据库 的访问是透明的,方便了程序开发和用户的使用。 3 将业务逻辑与数据库相分离,层次结构清晰。 数据与业务处理分离的开发模型比集中式系统结构清晰,有利于分布式程序 开发。 c s 开发模型的出现,推进了分布式技术的应用与发展,其自身也有如下的 不足: 1 数据安全性差 由于业务逻辑集成在客户端,服务端无从了解操作的合法性,给系统留下潜 在的安全隐患。 2 代码可重用性差 c s 开发模型的程序基于不同开发工具、数据库平台,由于兼容性的原因, 代码很难重用。 3 维护困难 如果应用程序升级,必须重新重新安装客户端,软件系统的重新安装和调试 非常麻烦,每个客户机上的应用程序都需维护,增加了成本。 2 2b s 开发模型介绍 针对两层c s 开发模型的不足,开发人员提出将业务逻辑从客户端剥离出 来,交给应用服务器,而前台则集中处理业务的展示,如界面的设计、数据的 收集等。随着w e b 技术的发展,人们提出基于w e b 浏览器与服务器的开发模 型即b s 开发模型,并根据需要采用三层或多层的开发模式,典型的b s 开发 模型如图2 2 所示【1 1 】: 在这种开发模型中,传统的客户端程序被浏览器取代,用户输入的信息通 过w e b 页面提交给后台w e b 服务器处理,并显示返回结果。与c s 开发模型 相比,b s 有很多优势,概括起来有如下几剩1 2 j : 1 协议开放 传统c s 开发模型所采用的通信协议与运行平台,开发工具紧密相关,它 的应用往往是专用的,不能适应不同的应用环境。而b s 开发模型采用的h t r p 、 6 武汉理工人学硕士学位论文 s o a p 等协议是经过标准化组织所确定的,保证了应用的通用性和跨平台性。 同时,标准化使得b s 程序直接接入i n t e r n e t ,具有良好的扩展性、伸缩性。 w c b 浏览器 tjh 呦议 l 业务逻辑 l l 龇务逻辑 l | 蟾棼逻辑 il 业务逻辑 | w e b 服务器 掌 数据库服务器 。 图2 2b s 开发模型 2 界面友好,表现力丰富,具有良好的交互性 在b s 开发模型中,开发人员结合网页设计工具,可以迅速开发丰富多彩 的网页,比传统c s 开发模型具有更强的表现能力。基于动态脚本如a s e n e t , j s p ,p h p 等开发的网页,可以展示最新的页面内容。此外,动态页面具备优 秀的交互功能,可以将用户的请求信息实时的发送给远程服务器处理并得到响 应。而c s 用户的界面是由客户端软件所决定的,不用软件使用的方法和界面 风格各不相同,c s 系统都要求对用户重新培训,成本高。b s 用户的界面都统 一在浏览器上,易于使用、界面友好。 3 维护简单,升级容易 c s 开发模型的应用必须开发出专用的客户端软件,无论是安装、配置还是 升级都需要在所有的客户机上实施,浪费了人力和物力。b s 的应用只需在客 户端装有通用的浏览器即可,维护工作都在服务器端进行。当系统升级时,只 针对本地服务器完成相应的工作,升级容易。 4 数据库安全性好 客户端不与数据库直接相连,而是通过w e b 服务器进行处理,最大限度的 保证了数据库的安全。 7 武汉理工大学硕士学位论文 2 2 1 分布式组件技术 b s 为分布式开发提供了良好的开发模型。当应用发生改变时,如何充分利 用已有成果,保证已开发代码能移植到新应用中,最大程序节省投资是程序开 发过程需要解决的问题。不同于在集中和封闭环境下发展起来的传统软件,分 布式应用,特别是在w e b 环境下的分布式开发,现有的软件理论、方法、技术 难以有效地适应或基本不能适应这种新的软件形态,传统方法也难以适应网络 组件的协同性、自适应性,以及需求的多目标性;在软件可靠性方面,难以适 应w e b 环境所要求的整体化、可靠性与安全性1 1 3 】。 分布式组件技术正是在这种背景下产生的,其基本思想是将大而复杂的软 件应用分成一系列可先行实现、易于开发、理解和调整的软件单元,这些软件 单元被称为组件( c o m p o n e n t s ) 。以组件为基础的软件开发方案,效率高,费用低, 可靠性好【1 4 l 。分布式组件都有可能在将来被复用。围绕分布式组件进行组织开 发,使得开发人员能在原有工作的基础上,不断完善新系统的功能并减少开发 时间。 2 2 2 基于分布式组件技术的多层b s 开发模型 在软件模块化的趋势下,分布式组件技术与b s 开发模型相结合,形成了 新的开发模式。基于分布式组件的b s 开发模型如图2 3 所示: w c b 灏j 览器 t1 l r r 协议 、i p 务埋辑q k 务埋辑 , 纷伽式组件分铂式组件 w e b 服务器 参 数据库服务器 图2 3 基于分布式组件的b s 开发模型 这种开发模型继承了b s 的优点如:维护简单、成本降低、数据安全性好 8 武汉理工大学硕士学位论文 等,也结合了分布式组件技术代码模块化的优点。在这种开发模型中,代码以 分布式组件的形式封装,有利于代码的重用。此外,利用现有的商用组件,开 发人员从软件系统的底层处中( 如对事务和消息的处理) 解脱出来,把这些工作 交给专门的服务器应用服务器厂商完成,可以专注于对业务的处理,有助于开 发高效、健壮的分布式应用程序。 2 3s o a 介绍 随着软件系统规模迅速增大,不同种类的操作系统、应用软件、系统软件 相互交织,使得软件应用环境异常复剁1 5 1 7 】。企业面对市场的竞争,需要对业 务的变化做出快速的反应,但重新建立业务流程的代价极其高昂。传统开发模 式是面向需求的,由于需求难以准确表述、业务流程的复杂性使得许多具备通 用功能的软件不能满足用户所有的需求。很多开发是严格按照客户提出的功能 来进行设计的【1 8 】,这种开发方式很难适应业务需求的改变。随着信息化的发展, 当企业考虑到业务集成的时候,就不可避免地出现了诸多困难,明显地感觉到 对开发的整体费用和复杂性程度不能进行很好地控制。如何利用现有的应用程 序和投资,解决新的业务需求,并且能适应业务的变化,是软件开发模型需要 回答的问题。 传统的软件开发方法中,业务的表示与处理是紧密关联的。例如在三层b s 开发模型中,业务逻辑层直接暴露给用户界面层,当需要发生改变时,用户界 面层和业务逻辑层必须同时进行修改,代码修改量很大导致各种业务逻辑代码 很难重用。此外,用户界面与业务逻辑的实现技术也是紧密耦合,如果业务逻 辑层采用c o m 技术,则用户界面层也需要采用c o m 技术。此外,在面向对 象编程中,服务端暴露给客户端的是对象或方法。在复杂的应用环境中,它可 能涉及到多个对象、方法的互操作。客户端开发人员需要了解这些具体的对象 与方法,加大了客户端开发的难度i l 剐。 由于已有平台采用的技术各不相同,开发商为了维护自身的利益往往比较 保守,各种分布式技术之间,不同平台软件之间很难进行通信与互操作,这也 为企业的分布式应用带来了麻烦。 为了解决这些问题,s o a ( 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 ,面向服务架构) 应运 而生。w 3 c 将s o a 定义为:“一种应用程序体系结构,在这种体系结构中,所 9 武汉理工大学硕七学位论文 有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以定义 好的顺序调用这些服务来形成业务流程”。s o a 提供了一种结构和组织基础结 构及业务功能的方法,特别适合在分布式环境中设计、开发、部署和管理离散 逻辑单元( 服务) 模型的方法【1 9 1 。 2 3 1s o a 的体系结构 s o a 将应用程序的不同功能单元称为服务,并通过接口的形式对外公开。 服务采用标准协议,通过网络来访问。服务提供者开发出各种各样有用的服务, 经过严格测试后把服务发布到公共的服务注册表上,服务消费者( 请求者) 通过 查找服务注册表获得所需要的服务,然后就可以使用所需要的服务了。s o a 由 服务注册者、服务消费者与服务提供者组成,体系结构模型如下图所示1 1 8 l : 图2 4s o a 的体系结构 1 服务提供者 服务提供者是提供服务的实体,接受服务消费者的调用请求并进行响应。 2 服务注册者 服务注册者主要作用是用来搜索网络上可用的服务以及相关具体信息。服 务注册者使用的协议相当于一个服务目录,它是接收并存储服务契约的实体, 供服务消费者查询服务之用。服务提供者需要将服务的信息发布到服务注册中 心。 3 服务消费者 服务消费者从服务注册者处查询需要的服务,并通过传输机制来调用服务, 服务消费者可以是应用程序或另一个服务。它提供服务的w s d l 文档并通过 s o a p 协议来与要访问的服务通信。 1 0 武汉理工大学硕士学位论文 2 3 2s o a 的优点 s o a 的服务提供者与消费者之间是通过接口和契约联系起来。接口是采用 中立的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言,解 决了分布式应用中互操作性问题。这使得构建在各种系统中的服务可以以一种 统一和通用的方式进行交互,降低了系统内部的耦合度,便于系统的扩展及与 其他系统的应用集成。通过分析服务间的交互,s o a 可以帮助企业了解何时以 及为什么业务逻辑被切实执行了,屏蔽复杂业务逻辑,从而降低复杂度;通过 组织专业分工,使软件开发大规模化成为可能。s o a 的优点可以概括如下网之l j : 1 松散耦合 服务接口与服务提供者相互分离,实现了松散耦合。服务消费者通接口调用 服务提供者的服务,它只关注服务的具体功能以及接口的方法与参数,并不关 心服务的具体实现方式,服务实现者能够在完全不影响服务使用者的情况下进 行修改。同样服务提供者也不需要了解服务消费者的需求,通进服务接口对服 务的具体内容进行抽象组合。 2 跨平台与可重用性 s o a 支持业界开放的标准,如x m l 、s o a p 、w s d l 以及其他标准。服务 接口采用标准化的描述,使得该服务可以提供给异构平台和任何用户接口使用。 服务交互需要的全部细节,包括消息格式、传输协议和位置等,可以通过w s d l 得到。服务接口允许服务的调用者独立于服务实现的软硬件平台和编写服务所 用的编程语言。近年来出现的x m l 和w e bs e r v i c e 增加了全新的重要功能,将 s o a 推向更高的层面,并提升了s o a 的价值。x m l 和w e b 服务标准化的开 放性使企业能够在所部署的所有技术和应用中采用s o a 。s o a 提供的服务,使 应用功能得以通过标准化接口提供,并可基于标准化传输方式、协议进行调用。 s o a 中通过服务接口的形式屏蔽了许多专用性a p i 的复杂性和晦涩性,有 利于遗留程序的重用,有利于对已有软件的复用。 3 易维护和良好的伸缩性 服务结构通过服务提供者和服务使用者的松散耦合关系,屏蔽了系统内部复 杂的业务逻辑,简化了开发和维护。依靠服务设计、开发和部署所采用的结构 模型实现了伸缩性。服务提供者可以独立调整服务以满足新的需求,服务使用 者则可以通过组合变化的服务来实现新的需求。服务提供者和服务使用者的松 武汉理工大学硕士学位论文 散耦合关系及对开放标准的采用,确保了系统的易维护性和良好的伸缩性。 2 3 3w e bs e r v i c e 简介 s o a 的提出为程序开发提供了很好的开发模式,w e bs e r v i c e 技术则是这种 开发模式的具体实现技术之一。 w e bs e r v i c e 使用基于x m l 的消息作为数据通信方式,从而消除了使用不 同组件模型、操作系统与编程语言系统之间存在的差异,使异类系统能够作为 计算网络的一部分协同运行。w e bs e r v i c e 可以认为是一种部署在w e b 上的对象, 同时w e bs e r v i c e 的基石是以x m l 为主的、开放的w e b 规范技术。它的主要目 标是在现有的各种异构平台基础上构成一个通用的与平台、语言无关的技术层, 各种平台上的应用依靠该技术层来实施相互的连接和集成1 2 。 w e bs e r v i c e 使用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 是在分布式的环境中交换信息的简单的协议i z 2 j ,它是一 种轻量的、简单的、基于x m l 的协议,它被设计成在w e b 上交换结构化的 和固化的信息。s o a p 可以和现存的许多因特网协议和格式结合使用,包括超 文本传输协议( h i t ) ,简单邮件传输协议( s m t p ) ,多用途网际邮件扩充协议 ( m i m e ) 。它还支持从消息系统到远程过程调m ( r p c ) 等大量的应用程序。通 过s o a p 协议,w e bs e r v i c e 可以简单、有效的为服务消费者提供服务。 w e bs e r v i c e 使用w s d l ( w 曲s e r v i c ed e s c r i p t i o nl a n g u a g e ,w 曲服务描述 语言v 2 3 】定义如何利用x m l 语法描述w e bs e r v i c e 的规范。它通过在服务提供 者和服务请求者之间交换的消息来描述w e bs e r v i c e ,可被看作是w e bs e r v i c e 和外界沟通的桥梁。大多数w e bs e r v i c e 都带有w s d l 文档,指定应用程序提 供的w e bs e r v i c e 信息,w s d l 文档描述了客户调用w e bs e r v i c e 所需的一些关 键信息。同s o a p 一样,w s d l 也是x m l 文本。w s d l 是一种基于i d l ( 接1 2 1 定义语言) 的服务描述语言,它的作用类似于c o m 和c o r b a 中的接e l 定义文 件,它将w e bs e r v i c e 描述定义为一组服务访问点,客户端可以通过这些服务访 问点对包含面向文档信息或面向过程调用的服务进行访问( 类似远程过程调 用) 。w s d l 首先对访问的操作和访问时使用的请求响应消息进行抽象描述, 然后将其绑定到具体的传输协议和消息格式上,以最终定义具体部署的服务访 问点。相关的具体部署的服务访问点通过组合就成为抽象的w e b 服务。w s d l 基于x m l ,能够为应用软件自动识别和使用,而w s d l 文档一般也是由w e b 1 2 武汉理丁大学硕十学位论文 s e r v i c e 编制软件自动生成。在具体使用中,可以对w s d l 进行扩展( 类似于w e b 的可扩展性) ,这样无论通信时使用何种消息格式和网络协议,都可以对服务访 问点及其使用的消息格式进行描述。在w s d l 的框架中,可以使用任意的消息 格式和网络协议,如同s o a p 中可以使用任意的网络协议样。在w s d l 规范 中,定义了如何使用s o a p 消息格式、h t r pg e t p o s t 消息格式以及m i m e 格 式来完成w e bs e r v i c e 交互的规范。 w 曲s e r v i c e 服务的定义与注册是通过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 r ya n di n t e g r a t i o n 即统一描述、发现和集成协议v 冽实现的。u d d i 始于 2 0 0 0 年,由a r i b a ,i b m ,m i c r o s o f t 和其他3 3 家公司创立。u d d i 提供了一个 机制,以一种有效的方式来浏览,发现w e bs e r v i c e 以及它们之间的相互作用。 为促进商业性w e bs e r v i c e 的互操作性能力而推出的一项计划。u d d i 本质上是 为解决当前在开发基于组件化的,而w e bs e r v i c e 中所使用的技术方法无法解决 的一些问题。u d d i 具有非凡的技术简单性,它为w e bs e r v i c e 在技术层次上提 供。 w e bs e r v i c e 技术继承了s o a 的优点,为解决分布、异构的企业应用提供了 比较好的解决方案。通过它,可以将现有应用程序的功能和数据以x m lw e b s e r v i c e 形式公开。然后,便可以创建使用此x m lw e bs e r v i c e 集合的复合应用 程序以实现各个构成应用程序之间的互操作性。w e bs e r v i c e s 使得整个应用程 序开发从以操作系统为中心的应用程序组织模式扩展到以网络为中心的组织模 式1 2 5 l 。 2 4w c f 技术 w e bs e r v i c e 的出现为分布式、异构的企业应用提供了较好的解决方案。而 其自身也存在需要完善之处。首先,w e bs e r v i c e 的协议技术基础是标准化的, 但各大厂商在具体的实现上又加入了自定义的内容,因此在互操作性并不完善。 其次,由于使用x m l 作为消息传输的载体,解决了消息在异构平台上通信的 问题,但其缺点在于消息的内容有大量的冗余,面对大量数据传输时w e b s e r v i c e 系统效率低下。最后,w e bs e r v i c e 在解决安全、可靠性消息传输及事务 处理上,开发人员需要编写大量的代码才能达到目标

温馨提示

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

评论

0/150

提交评论