已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 s o a 是一种面向服务的架构方法,与传统的面向对象和基于构件的软件开 发方法相比,s o a 具有服务共享、基于标准等特点。随着软件技术的发展,尤 其是w e b 服务的出现,s o a 架构技术正得到广泛的应用。 网络考试系统是一种常用的计算机教育应用系统,它可以合理利用考试资 源、提高教学效率。目前国内的网络考试系统多是面向应用的,存在重复开发、 资源共享性差等问题。 本文描述了如何采用面向服务的设计方法,实现一个松散耦合的网络考试系 统。概括起来,论文的主要研究工作有: 1 网络考试系统需求分析 本文给出了基于网络的考试系统需求分析,并结合系统中“考务管理子系统 的具体应用,在遵循s o a 架构和各层次模式的基础上对其进行了详细的分析和 设计。同时,对其分析过程、用例建模、静态结构以及动态行为模型进行了具体 说明。 2 基于s o a 的网络考试系统的设计 结合基于s o a 的网络考试系统的开发实例,本文提出了设计系统时可参照 的划分结构层次的方法,并抽象出各层次设计实现时所应遵循的模式。提出了在 服务层使用w e bs e r v i c ei n t e r f a c e 以使较细粒度的w e b 服务只集中在应用程序内 部;提出了在服务组件层中引入s e s s i o nf a c a d e 作为会话门面。 3 系统实现的关键技术的研究 根据之前提出的系统需求和设计,本文讨论了基于s o a 的网络考试系统实 现过程中的一些关键技术。包括s e s s i o nf a c a d e 的生成;使用j a x r p c 将e j b 封装成w e b 服务;使用w s d l 对w e b 服务进行规范化描述;使用b p e l 4 w s 描 述w e b 服务流程等。 关键词:面向服务架构w e b 服务网络考试系统设计模式 r e s e a r c ha n di m p l e m e n t a t i o no fa ni n t e r n e tb a s e d e x a m s y s t e mu s i n gs o a a bs t r a c t s o ai sad e v e l o p m e n tm e t h o do fs 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 c o m p a r e dw i t h t h et r a d i t i o n a ld e v e l o p m e n tm e t h o d ss u c ha so b j e c t - o r i e n t e dp r o g r a m m i n ga n dt h e t e c h n o l o g y b a s e do nt h e c o m p o n e n t ,s o ah a sm a n ya d v a n t a g e s ,s u c h a s s e r v i c e s s h a r i n ga n ds t a n d a r d s b a s e d ,a n ds oo n w i t ht h ed e v e l o p m e n to ft h e s o f t w a r et e c h n o l o g ya n dt h ea p p e a r a n c eo ft h ew e bs e r v i c e ,s o aw i l lb ea p p l i e d m o r ea n dm o r ew i d e l y i n t e r n e tb a s e de x a ms y s t e r ni sap o p u l a rc a es o f t ,w h i c hc o u l dt a k ea d v a n t a g e o fe d u c a t i o nr e s o u r c e sr e a s o n a b l ya n di m p r o v et h et e a c h i n ge f f i c i e n c y c u r r e n t l y , a l l t h ed e s i g na p p r o a c h e su s e df o rt h ei n t e m e tb a s e de x a ms y s t e ma r ea p p l i c a t i o n - o r i e n t e d t h e r e f o r e ,s o m ep r o b l e m s e x i s ts u c ha sr e p e t i t i o n d e v e l o p m e n to r n o n - s h a r i n gr e s o u r c e s t h et h e s i sd e s c r i b e dh o wt od e s i g na n di m p l e m e n tal o o s e l yc o u p l e di n t e m e t b a s e de x a n ls y s t e mu s i n gs 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 t h em a i n l yw o r k so ft h e t h e s i sf o c u so nt h ef o l l o w i n ga s p e c t s : 1 r e q u i r e m e n ta n a l y s i so f t h ei n t e m e tb a s e de x a ms y s t e mu s i n gs o a t h et h e s i s p r o p o s e dt h er e q u i r e m e n t so ft h e i n t e m e tb a s e de x a n ls y s t e m c o m b i n e dw i t ht h ea p p l i c a t i o no ft h e “e x a ma f f a i rm a n a g e m e n ts u b s y s t e m i nt h e i n t e m e tb a s e de x a ms y s t e m ,t h et h e s i sd e s c r i b e di t sa n a l y s i sa n dd e s i g nb a s e do n p a t t e r n so fe a c hh i e r a r c h ya n ds t r u c t u r eo fs o a m e a n w h i l e ,i te l a b o r a t e da n a l y s i s p r o c e s s ,u s ec a s em o d e l i n g ,s t a t i cs t r u c t u r ea n dd y n a m i ca c t i o nm o d e lo f t h es y s t e m 2 d e s i g no ft h ei n t e r n e tb a s e de x a ms y s t e mu s i n gs o a c o m b i n i n g w i t ht h ei n s t a n c eo ft h ei n t e r n e tb a s e de x a n ls y s t e mu s i n gs o a ,t h e t h e s i sp r o p o s e dt h em e t h o du s e dt od i v i d et h es t r u c t u r eh i e r a r c h i e sw h e nas y s t e mi s d e s i g n e da n dd e s c r i b e ds o m ed e s i g np a t t e r n su s e dt oi m p l e m e n tt h ed e s i g n t h et h e s i s p u tf o r w a r daw e bs e r v i c ei n t e r f a c e ,w h i c hi su s e di ns e r v i c el a y e r , t oi n t e g r a t et h e t t w e bs e r v i c e sw i t ht h ef i n eg r a n u l a r i t yi n t ot h ei n s i d eo fp r o g r a m i na d d i t i o n ,t h e t h e s i sp r o p o s e dt h a ts e s s i o nf a c a d es h o u l db eu s e di nt h es e r v i c ec o m p o n e n tl a y e r 3 r e s e a r c ho ft h ek e yt e c h n o l o g i e si nt h es y s t e m si m p l e m e n t a t i o n a c c o r d i n gt ot h ea n a l y s i sa n dd e s i g n ,t h et h e s i sd i s c u s s e dt h ek e yt e c h n o l o g i e s o ft h ei m p l e m e n t a t i o nf o rt h ei n t e m e tb a s e de x a n ls y s t e mu s i n gs o ai nd e t a i l s u c h a st h ei m p l e m e n t a t i o np r o c e s so fas e s s i o nf a c a d e ,e n c a p s u l a t i n ge j bs e r v i c e si n t o t h ew e bs e r v i c e sw i t hj a x - r p c ,d e s c r i b i n gt h ew e bs e r v i c e si ns t a n d a r d i z a t i o nw i t h w s d la n dd e s c r i b i n gt h ew e bs e r v i c e b u s i n e s sp r o c e s sw i t hb p e l 4 w s k e y w o r d s :s o a ,w e bs e r v i c e ,i n t e m e tb a s e de x a n ls y s t e m ,d e s i g np a t t e r n i i i 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。 本人允许论文被查阅和借阅。本人授权西北大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研 究所等机构将本学位论文收录到中国学位论文全文数据库或其它 相关数据库。 保密论文待解密后 学位论文作者签名 l 崩 器。 删年伽诊日沙哆年钐月沙日 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外,本论文不包含其他人已经 发表或撰写过的研究成果,也不包含为获得西北大学或其它教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签名: 如移年 日 1 1 研究背景和意义 第一章绪论 随着软件开发方法研究的发展和分布式技术的广泛应用,基于多种开发平台 和工具的软件系统得到了大量应用,使得企业中的软件系统变得日益庞大和复 杂。同样,高校的i t 系统建设也是如此,各种考试系统、教学系统、教学管理 系统、作业系统等也常常使用不同的语言在多种平台上开发。这些系统之间有很 多功能属于重复开发,既浪费资源又不便于管理,各系统之间也很难进行信息共 - - l 早。 此外,由于传统的软件开发使用的平台、开发工具、操作系统在结构上的紧 耦合,导致了这些位置上分散的独立系统逐渐形成了所谓的“信息孤岛”【l 】。 为了更好地重用已有模块,使这种重用可以不用考虑各自运行的平台和开发 环境的差异,需要一种新的软件开发方法。这种方法能使被重用的模块可以方便 地由旧系统纳入新系统,从而加快软件开发的速度。 从软件发展史上来看,软件开发已经经历了面向过程、面向对象和面向构件 等几个阶段。由于面向过程的方法高度耦合,不适合于大型软件系统的开发,面 向对象的方法只能支持同种语言的复用,而面向构件虽然能做到构件二进制级别 共享但是局限于特定平台。因此,一种称为面向服务的架构( 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 ) 的软件设计方法被提了出来,这种通过对服务流程化的组织来 构建分布式系统的方法既是架构模型,又是编程模型。 从图1 1 可以看出面向服务的架构是在构件层之上又增加了服务层【2 】: 图i i 对象、组件和服务的三层模式 如图1 1 所示,面向对象的语言和技术是实现构件的较好方式。虽然一个良 好设计的面向构件的应用并非一定可以转变为良好的面向服务的应用,但构件却 是实现服务最好的方式。这种转变就是在已有应用之上又实现了一个服务层。 因此,基于s o a 的应用系统具有以下优点: 1 编码灵活性。基于模块化的低层服务、采用不同组合方式创建高层服务, 从而实现重用,这些都体现了编码的灵活性。此外,由于服务使用者不直接访问 服务提供者,这种服务方式本身也可以灵活实现。 2 支持多种客户类型。借助精确定义的服务接口和对x m l 、w e b 服务标准 的支持,可以支持多种客户类型,包括p d a 、手机等新型访问渠道。 3 更易维护。服务提供者和服务使用者的松散耦合关系及对开放标准的采 用确保了系统更易维护。 4 更好的伸缩性。依靠服务设计、开发和部署所采用的架构模型实现伸缩 性。服务提供者可以彼此独立调整,以满足服务需求。 5 更好的可用性。该特性在服务提供者和服务使用者的松散耦合关系上得 以体现。 本文讨论了如何利用s o a 思想提供的这种比面向对象和面向构件更具优势 的软件开发方法,去构建一个松散耦合的分布式网络考试系统。尝试利用s o a 架构所具有的上述优越性,使网络考试系统达到复用度高和扩充性好,并尽可能 充分利用已有资源的目的。 2 1 2s o a 在国内外研究现状 面向服务的架构基于“软件变服务”的思想,提出了一种新的解决软件重用 问题和软件集成问题的方案。通过采用面向服务的架构,企业能够迅速便捷地构 建开放的、模块化的、可重用的、与平台无关的、可扩展的分布式应用系统。作 为s o a 的一种实现手段,w e b 服务提供了基于x m l 标准接口的中间件,具有 完好的封装性、松散的耦合性、协议规范的标准性以及高度的可集成性等特点, 能够很好地满足s o a 应用模式的需求 3 1 。目前很多软件公司都注重于这一领域 的研究和开发: ( 1 ) m m 公司在s o a 相关产品研发上不遗余力,已经投入超过数亿美元建立 s o a 研发中心,其产品绝大多数是基于s o a 的。如为企业电子商务提供统一的 身份认证和授权管理的t i v o l i 认证管理系统。 ( 2 ) h p 公司为了向客户提供更加灵活的软件,以帮助其实现业务流程的自动 化,计划将o r a c l ef u s i o nm i d d l e w a r e 融入其面向服务的架构产品系列中去,利 用o r a c l e 的软件和h po p e n v i e w 管理软件套件,开发和提供基于s o a 的业务服 务,以帮助客户对其业务流程进行自动化,集成不同的数据和应用,同时充分利 用现有服务。 ( 3 ) b e aa q u a l o g i e 为企业提供了获得生产级s o a 部署所有优势的途径。 b e aa q u a l o g i c 产品家族提供了一种可互操作的基础架构和一组可重用的基础 架构服务,用于管理s o a 和组装复合应用程序,而无须考虑底层技术,并且可 以实现如下四方面的性能:首先,可以提高业务响应能力、效率和敏捷性;其次, 可以降低i t 环境的复杂性;再次,还能增加业务服务的重用性;最后,它还能 有效地降低应用程序的生命周期成本等。作为首款完全针对s o a 而构建的产品 套件,b e aa q u a l o g i c 产品家族为i t 提供了一组统一的产品来处理消息传递、 服务管理、数据一致和安全需要等需求。而这些需求的实现则是由它项尖级的四 大功能模块产品组合完成的。 ( 4 ) 复旦协达近年来推出的基于s o a 的协同软件是国内较成熟的应用s o a 设计理念的产品【3 】。 其它国内的大型i ,r 企业如太极计算机股份有限公司、神州数码有限公司等 在s o a 领域内的研究和应用技术也走在业界的前列,并向客户提供相应的技术 解决方案。 有关s o a 架构的研究和应用,国外的相关领域和企业目前已经做了较多的 工作,国内也在积极地开展研究。虽然s o a 被称作是面向对象和基于构件的软 件开发方法之后的下一代技术,但是目前仍没有以上两种开发方法成熟,且目前 的应用并不广泛。然而,由于s o a 自身具有的优势符合未来软件发展的趋势, 随着各大软件供应商在此展开的深入研究和激烈竞争,它必然会成为下一代主流 的开发技术而得到广泛支持和应用。 1 3 网络考试系统介绍 s o a 是一种架构概念,在研究这种架构的同时,本文选择了网络考试系统作 为应用领域。本节将对网络考试系统进行简要介绍。 1 3 1 网络考试系统概念 网络考试是随着计算机科学与网络技术的飞速发展,以计算机为辅助手段的 新型考试方法。它己经在社会众多领域中逐步得到应用与推广,尤其在各种培训、 教育教学领域发展迅速。它使培训者、教育者从出题、组卷、组织考试、阅卷评 分、试卷分析等费时费力的传统工作中解脱出来,使它们能够将主要的精力转移 到利用现代化的科技手段提高教学效率和教育质量的改革中去,更好地适应现代 教育形势的发展【4 】。 依托计算机网络平台和现代化多媒体技术的网络考试具有传统考试方式无 可比拟的优势【4 】。网络考试突破了传统考试中考场空间、时间的限制。它利用网 络的广阔空间,把考场从学校延伸到了家中、机房、办公室及其它任何网络能够 覆盖的区域,并可随时随地对考生进行考试,加上数据库技术的利用,使得考试 过程中的多种信息能够存储、记录、重现,让考试变得更公平公正,更具权威性、 透明性和可靠性。网络考试实现了传统考试与现代科技的完美结合,符合现代教 育体制的要求,代表着现代化考试的改革和发展方向。 网络远程教育和考试在国外一些发达国家已蓬勃发展起来,凭借着先进的互 4 联网技术,人们选修课程和考试都是通过网络进行的。另外,国外一些著名的考 试,也采用了网络考试的形式,如微软公司的m c s e ( m i c r o s o f t 系统工程师认证 考试) 、托福考试、g r e ( 美国研究生入学考试) 等。 在国内,网络考试规模还比较小,而在国外一些国家,网络提交作业和网络 考试已经比较普及。 如何开发出基于网络环境下的复用度高和扩充性好并尽可能充分利用已有 资源的网络考试系统,是一个新的研究课题。 1 3 2 网络考试系统的国内外发展情况 当前在国外已有3 0 0 0 所大学、教育机构使用网络考试系统,其中包括:普 林斯顿大学、卡耐基梅隆大学、杜克大学、哈佛大学医学院、南洋理工大学、香 港城市大学等。可见,开发一个可以跨平台、兼容性强的网络考试系统,有着强 烈的社会需求。 美国是目前远程教育规模最大的国家,它的高等学校向全社会提供各种远程 教育,接受远程高等教育的学生约占全日制在校学生的3 3 。英国近年要整合国 内各大学的力量,建立一所网上大学。这是一个不需要校园的大学组织,学员可 以选择其中任何一所大学提供的课程,而它的运转将按照公司化的组织进行。 现代远程教育的蓬勃发展为网络考试的实现和应用提供了肥沃的土壤,促进 了网络考试系统的技术成熟和广泛普及。 在我国,远程教育也同样是方兴未艾、蓬勃发展。虽然较之国外还略显缓慢, 却仍保持上升态势。我国正处于教育供需矛盾突出阶段,教育软件严重不足,教 资力量匮乏,学习人数逐年快速增长。国内网络考试系统的发展迅猛,诸多高校 和教育机构纷纷改革考试形式、争上网络考试项目。但不同网络考试系统并不互 相兼容,重复开发现象普遍,造成了教育软件资源严重浪费的局面。不同学校、 不同考试系统间处于分离状态,很难实现资源的共享以及软件的重用。这也是制 约目前网络考试系统发展的软肋【5 】。 1 3 3 网络考试系统的发展要求 首先,当前大多数网络考试系统中,网络考试、资源管理各自独立运行,不 同的考试和资源系统大多处于相对分离的状态,很难集成在一起。 第二,虽然目前的网络技术已为教育资源在低水平上的自治与共享、学习活 动提供了基本技术条件,但是允许网络考试资源进行交换的标准却没有很好地统 一,因此妨碍了考试资源的共享与交流。因此,国际上已有不少国家和组织致力 于教育技术标准的研究。 第三,当前网络考试系统技术手段落后,在体系架构上大多采用传统的c s 或者简单的b s 架构,从技术上造成了系统间难以实现资源共享的鸿沟,缺少通 用的数据编辑和保存形式,不同操作系统和数据库平台上的子系统很难进行交互 和共享数据:缺少有效的模块集成手段,基于不同平台的模块很难集成,系统的 扩展性和伸缩性比较差,难以把考试环境下各种信息资源进行整合,不能很好发 挥网络考试的优越性。造成了各个高校、教育机构开发的网络考试系统,考试资 源之间相互独立,形成分割的模块,难以实现统一接口,和直接调用第三方资源 的目标。落后的体系结构和技术成为了资源共享瓶颈。 最后,缺乏和信息化环境下考试模式配套的统筹分析方式。难以对考试和学 生进行有效评估【6 】。 1 3 4 网络考试系统基本功能 网络考试系统是网络教学的一个重要组成部分。它可以彻底消除传统考试形 式的种种弊端,节省人力、物力、财力,提高效率,可以方便地为教师提供“创 建试卷”、“批阅试卷”、“试题分析等教学和考试过程中的必要步骤。也可以为 学生提供一种对所学课程进行自我评价的手段,从而帮助学生把握重点、找到差 距,进行更有效的学习。总之,它可以满足为教师提供一种比较学生对课程掌握 程度的手段,也为今后教学提供具有重要参考价值的各种数据。 一个完备的网络考试系统要能够充分利用网络优势,提供适合网络教学的考 试模式和考试环境,有效管理和使用网络资源,更好地指导学生进行学习;形成 6 一套完整的考试体系和教学质量评价体系。要实现这一要求,除了需要具备一套 完善的题库,还应具备以下功能: 1 基本的题库管理功能,实现试题添加、删除、修改、查询等操作;试题 不只有客观题,还有主观题,要能囊括各科组卷时所要求的试题类型。 2 灵活的组卷功能。组卷是教师为学生提供统一命题、以备考试的一份试 卷。组卷方式分为手动组卷和自动组卷两种方式。组卷方式的多种选择,目的是 给用户更大的选择机会,能够直接参与组卷,控制组成试卷的各项指标,而且也 能够快速地由系统自动生成。 3 随机选择试题功能。随机选题能体现试卷的客观性:在满足必要的条件 下,由系统从候选题目中随机选定组成试卷。 4 方便的考试监控功能,在考试的时候有权限的教师可以随时了解考生数 量、答题情况。 5 评分时,要求客观题由系统自动评分,主观题由教师手动评分。 6 完备的成绩统计和成绩查询功能。 除了以上功能外,网络考试系统应具备所有传统考试的功能。例如“阅卷人 记录 任一学生的试卷由哪个老师何时批阅,是否有改动过的情况记录。进 入系统的各个角色在行使各自权限的关键操作时,都将被记入日至,以备事后查 验等。 总之,网络考试系统是一个功能全面、繁杂而应用广泛的系统。如果在系统 设计或实现的过程中没有优化和处理好,只注重功能的实现,而忽视了服务的共 享;只注重基本应用,忽视了模块可重用。系统将会是一个紧耦合的结构,不利 于模块的复用、资源的共享,不利于服务的移植和组装。而且系统结构的灵活性 差,当业务需求发生变化时,系统的全局都会受到影响。本文从设计和实现的角 度重点分析了网络考试系统,使之在基于面向服务的构建方法中优化系统结构和 性能,更好地发挥其作用,为考试和教学服务。 1 4 本文工作 本文在探讨s o a 架构技术的基础上,针对网络考试系统开发实践,对系统 7 的结构框架、设计原理和实现方法进行了深入研究和探讨。本文认为基于w e b 服务的标准化、松散耦合的s o a 构建方式是一种比较理想的面向服务的实现方 式。因此,本文从u m l 分析设计、基于s o a 的架构设计和w e b 服务的应用等 方面进行了重点阐述。 为了适应构建灵活而强大的网络考试系统的要求,论文的主要工作内容集中 在以下几点: 1 s o a 架构和网络考试系统的现状研究 本文根据s o a 架构技术和网络考试系统的发展现状,说明了把两者相结合 进行研究和应用的意义。同时,本文对s o a 的概念、组成、优势以及w e b 服务 的相关技术进行了较为详细的说明。 2 基于网络的考试系统需求分析 本文给详尽地给出了基于s o a 的网络考试系统的需求分析,并结合系统中 “考务管理子系统”的具体应用,讨论了如何使用u m l 方法为基于s o a 的网 络考试系统进行设计和建模。文章对需求分析、用例建模、静态结构以及动态行 为模型进行了具体说明。 3 基于s o a 的网络考试系统的架构分析 为了对网络考试系统构造出一个结构清晰、易于扩展、系统功能复用度高的 架构,首先要对网络考试系统进行良好的分层设计。本系统的一个主要工作就是 对基于s o a 的系统结构进行分析设计和层次划分,并在各层次的设计上提出自 己的解决方案,即对每一层总结出相应的模式。 在本文给出的层次中,表示层用以提高系统的模块化程度;业务流程层用以 编排和组装服务;提出在服务层使用w e bs e r v i c ei n t e r f a c e 模式实现服务复用和 异构系统的集成。指出在服务组件层使用s e s s i o nf a c a d e 暴露粗粒度的服务,提 高系统的耦合性。同时,结合考试系统的开发实践,给出了各层的应用实例。 4 系统实现的关键技术的研究 文章在讨论了网络考试系统需求分析、基于s o a 的开发技术以及层次结构 的基础上,研究了系统实现中的一些关键技术细节。包括:s e s s i o nf a c a d e 的生 成;利用j a x r p c 将e j b 封装成w e b 服务;w s d l 对w e b 服务进行约定的规 范化描述;利用b p e l 4 w s 进行w e b 服务流程的描述等。 8 1 5 论文结构 全文共分为六章: 第一章,绪论。论述了本文的研究背景及意义,阐明了目前s o a 架构在国 内外研究应用现状。此外,本章介绍了网络考试系统的概念、国内外发展情况和 发展要求,对网络考试系统的基本功能进行了分析。简要说明本文的研究工作。 第二章,s o a 及相关技术。本章首先对s o a 的概念进行了介绍,并将其与 传统的软件开发方法进行了比较,说明了面向服务架构所具有的特点和优势。然 后,本章对s o a 的典型应用- w c b 服务中所用到的协议和技术进行了具体的 讨论。 第三章,基于网络的考试系统需求分析。本章开始给出了整个网络考试系统 的需求说明。并以“考务管理子系统 的分析和设计过程为例,讨论了如何使用 u m l 方法为网络考试系统设计和建模,本章对需求分析、用例建模、静态结构 以及动态行为模型进行了具体说明。 第四章,基于s o a 的网络考试系统的设计。本章对基于s o a 的网络考试系 统的整体结构框架进行了分析和设计。按照分层思想对系统进行划分,在深入分 析各层次设计的基础上提出了相应的设计模式,并借助系统开发实例对其进行了 详尽的说明。 第五章,基于s o a 的网络考试系统的实现。在对系统综合分析与设计的基 础上,本文研究了如何结合基于s o a 的开发技术、层次结构具体实现松散耦合、 面向服务的网络考试系统。 第六章,结束语。本章主要对全文进行了总结,并对面向服务架构当前发展 现状和未来趋势进行了讨论。 9 2 1s o a 架构 2 1 1s o a 的概念 第二章s o a 及相关技术 面向服务的架构( 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 ) 是一个组件模型。面向 服务的架构将应用程序中的不同功能单元称为服务,并通过对这些服务定义良好 的接口而将其联系起来。接口是采用中立的方式进行定义的,也就是说它应该独 立于实现服务的硬件平台、操作系统和编程语言。这使得构建在这种系统中的服 务可以以统一和通用的方式进行交互 7 1 。 这种具有中立接口定义( 没有强制绑定到特定的实现上) 的特征称为服务之 间的松耦合。一方面,松耦合系统具有灵活性,而且当组成整个应用程序的任何 一个服务的内部结构和实现发生改变时,它仍能够继续存在。而另一方面,紧耦 合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当 需要对部分或整个应用程序进行某种形式的更改时,系统全局都会受到影响。 对松耦合系统,来源于应用程序的需要应该根据业务需要变得更加灵活,以 适应不断变化的环境【8 】o 比如经常改变的政策、上级部门的规定、产品报价、各 部门或单位之间的关系、以及其它与业务有关的因素,这些因素甚至会影响业务 的性质。因此应该定义这样的需求:一旦需要就可以对完成或执行任务的方式进 行必要的更改。 虽然面向服务的架构不是一个新鲜事物,但它却是更传统的面向对象模型的 替代模型。作为紧耦合的面向对象的模型已经存在二十多年了。虽然基于s o a 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向 服务的。由于考虑到了系统内的对象,所以虽然s o a 是基于面向对象的,但是 作为一个整体却不是面向对象的。s o a 系统原型的一个典型例子是通用对象请 求代理架构( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) 。c o r b a 已经出现很长 时间了,其定义的概念与s o a 相似。 1 0 然而,现在的s o a 随着软件开发技术的发展已经有所不同了,这些技术是 以可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,x m l ) 为基础的。通过使用 w e b 服务描述语言( w e bs e r v i c e sd e f i n i t i o nl a n g u a g e ,w s d l ) ,一种基于x m l 的语言来描述接口,服务可以被轻松地转移到更动态且更灵活的接口系统中【9 】, 比以前c o r b a 中的接口描述语言( i n t e r f a c ed e f i n i t i o nl a n g u a g e ,i d l ) 具有更加 明显的优越性。 w e b 服务并不是实现s o a 的惟一方式。上述的c o r b a 是另一种方式, 同样面向消息的中间件( m e s s a g e o r i e n t e dm i d d l e w a r e ) 系统也是一种方式。但 是为了建立架构模型,所需要的并不只是服务描述,而是需要定义整个应用程序 如何在服务之间执行其工作流,尤其需要找到业务的操作和业务中所使用软件的 操作之间的转换点。而s o a 能够将业务流程与技术流程联系起来,并且映射这 两者之间的关系。例如,组织一场考试的操作是业务流程,而更新试题库、增加 新的试题却是技术流程。因此,工作流可以在s o a 的设计中扮演重要的角色。 此外,动态业务的工作流不仅可以包括系统内部各部门之间的操作,甚至还 可以包括与系统外部的合作伙伴进行的操作。因此,为了提高效率,需要定义如 何得知服务之间关系的策略,这种策略常常采用服务级协定和操作策略的形式。 最后,所有这些都必须处于一个信任和可靠的环境之中,以保障根据预先约 定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何s o a 中 都起着重要的作用【l o 】。 2 1 2s o a 的组成 结合上一节所述,本节将利用图表说明s o a 系统中的各个组成元素引,如 图2 1 所示: 图中f u n c t i o n s 部分包括以下元素: 1 t r a n s p o r t :表示了服务提供者和服务使用者之间的消息传输所采用的协 议,如h t t p 、f t p 等。 2 s e r v i c ec o m m u n i c a t i o np r o t o c o l :表示了服务之间通信所采用的协议,即 服务提供者和服务使用者之间如何理解对方发送的消息。例如s o a p 协议 等。 3 s e r v i c ed e s c r i p t i o n :表示了如何对服务本身进行描述,即描述了服务所需 的入口参数,返回值,服务所在位置等信息。例如w s d l 等。 4 s e r v i c e :表示了可被调用的服务本身。 5 b u s i n e s sp r o c e s s :表示了为达到业务需求目的而按照规则和一定序列调用 的一组服务集合,它可以将细粒度的服务组合为粗粒度的服务。这些业务 流程描述通常有b p m 、w s f l 、b p e l 等。 6 s e r v i c er e g i s t r y :保存有服务数据和描述信息。服务提供者可以将其服务 信息在此发布,服务使用者可以在这里查找服务。 图2 1 面向服务架构中的组成元素 图2 1 中的q o s ( q u a l i t yo f s e r v i c e ) 包括了下列部分: 1 p o l i c y :表示了一组使服务使用者得到服务提供者所提供服务的规则。 2 s e c u r i t y :表示了一组在服务使用者的认证、授权、访问控制等方面的规则。 3 t r a n s a c t i o n :表示了一组服务在共同完成一项任务时所要遵循的属性。 4 。 m a n a g e m e n t :表示了用以管理服务提供者和服务使用者的一组属性。 2 1 3s o a 的优势 与传统的软件开发方法相比,s o a 具有松散耦合、基于标准、共享服务和 可变粒度等特点,利用这些特点可以分别发挥其带来的优势【1 1 】,分析如下: 1 松散耦合。 1 2 服务提供者和消费者可以用定义良好的接口来独立开发。服务实现者可以更 改服务中的接口、数据或者消息版本,而不对服务使用者造成影响。松散耦合消 除了对系统两端进行紧密控制的需要。就系统的性能、可伸缩性以及高可用性而 言,每个系统模块都可以实现独立管理,而实现的改变被隐藏了起来。松散耦合 要求基于标准的接口和中间件积极地管理和代理终端系统之间的请求,为服务提 供者和使用者提供了独立性。 2 基于行业标准。 s o a 可以用基于行业标准的技术实现,继而消除了因使用特定标准而使服务 使用者所受的限制。并且使用基于标准的技术可打破行业或技术平台的垄断并促 进所有服务的最优组合。 3 可重用的服务。 由于服务是在目录中发布并且分布在整个网络中,所以它们更容易被发现和 重用。另一种重用是将服务重新组合。服务重用避免了重复开发之烦琐,同时提 高了实现中的一致性。服务的重用比起组件或者类的重用更容易实现。 4 同步服务调用( i 冲c 方式) 。 在同步服务调用中,调用方进行调用、传递所需的参数,中断并等待响应。 如果服务提供者可用,那么同步服务调用可为请求提供立即响应。同步服务对于 要求实时响应的应用程序来说是至关重要的,例如p o r t a l 或者q u e r y 。 5 异步服务调用( 文档方式) 。 在异步服务调用中,调用方向消息收发服务发送一个包含完全上下文的消 息,收发服务将该消息传递给接收者。接收者处理该消息并通过消息总线向调用 方返回响应。在消息正在处理的过程中,调用方不会中断。由于粗粒度消息和消 息收发服务的使用,可以对服务请求进行排队并以最合适的系统速度来处理它 们。这种方法具有高度可伸缩性。调用方并不在处理过程中保持网络连接,并且 由于调用方并不会中断,所以它们不会受处理延迟的影响,也不会受异步服务执 行中所存在问题的影响。 6 利用现有组件开发。 通过使用现有的软件组件来开发服务。现有的软件组件并不需要修改就可以 将其功能作为服务提供出来。服务是用组件的接口定义开发或生成的。淡化了修 1 3 改、测试以及维护现有软件的必要性。 7 数据访问服务。 数据访问、集成、转换以及重用服务。这样可以隐藏数据源的复杂性,同时 加强跨数据源的一致性、完整性以及安全性。 8 组合服务。 组合服务将新的应用程序逻辑及事务处理与已有的进行了合并。这样能充分 利用已有系统,装配或者编排服务简化了异构系统的集成。组合服务可以使来自 现有系统的功能被重用并重新组合。 9 共享的或企业的基础架构服务: 基于s o a 构建的所有应用程序所使用的公共服务称为共享的基础架构服 务。使用共享的基础架构服务可以提供一致性,并允许单点管理。其它的共享服 务( 例如与安全相关的服务) 可以通过将现有的产品作为直接提供服务的方式创 建。 1 0 细粒度服务: 细粒度服务实现最小的功能,同时消耗并返回最小量的数据。这样可在粒度 级实施严格的安全和访问策略。此外,细粒度服务的实现和单元测试都很简单, 而且相互独立。 1 1 粗粒度服务: 粗粒度服务比细粒度服务实现更多的功能,并消耗不同数量的结构化数据或 者消息。它不需要通过网络多次调用来提供有意义的业务功能。 2 2w e b 服务 s o a 中的应用是由服务使用者通过接口访问服务形成的。潜在使用者可发 现由服务提供者发布的该类接口并通过网络来进行调用,这种设计思想同w e b 服务这种灵活而强大的具体实现技术有着某种程度的暗合【l o 】,因此,使用w e b 服务来实现s o a 具有天然的优势。 此外,s o a 是一种不受限于具体技术的架构,定位于特定技术的集合如w e b 服务,r m i ,c o m ,c o r b a 等之上。从广义角度来说,可以被上述任意一种具 1 4 体技术来实现。从严格的意义上讲,只能由符合协议中立的技术去实现。相比以 前的分布式计算技术,w e b 服务技术具有更好的可靠性,扩展性,易用性,且具 有协议开放性。虽然w e b 服务并非是实现s o a 的必需组件,而且部署了w e b 服务也并非意味实现了s o a t l 2 】。但由于它所具有的上述特点使其在实现s o a 时 具有重要优势,因此,在实现s o a 架构时往往采用w e b 服务技术。 基本的w e b 服务栈由s o a p ,w s d l ,u d d i 等技术组成,其服务栈结构如 图2 2 所示。 服务发布与发现 u d d i 服务描述 w s d l x m l 消息 s o a p 传输网络 h t t p 、f t p e t c 图2 2 w e b 服务基本协议栈 接下来,文章将对w e b 服务中的相关技术进行讨论。 2 2 1x m l x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 是w e b 服务平台中表示数据的基本格 式,即x m l 是w e b 服务通信协议的数据编码方式。x m l 主要的优点在于它既 与平台无关,又与厂商无关【1 3 】。 x m l 解决了数据表示的问题。从应用的角度看,从工作流到查询数据库, 直到同合作伙伴交换信息,x m l 格式表示的消息封装了词汇表,可以同时在行 业组织内部和外部使用。此外,它还有较好的弹性和可扩展性,允许使用附加的 信息。并且x m l 提供了可访问的进程入口,从而可强化业务规则,并且增强了 互操作性,为信息的自动处理提供了可能。 除了上述优点外,x m l 还具有良好的跨平台移植性和自描述性等特点。 2 2 2s o a p 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 0 1 ) 是一种轻型的基于x m l 的简单通信协 议,它定义了一种通过网络传送x m l 消息的格式。该消息由一个s o a p 封装 ( e n v e l o p e ) 元;素、一个可选择的s o a p 头元素( h e a d e r ) 和一个必需的s o a p 体元 素组成。 s o a p 在请求者对象和提供者对象之间定义了一个通讯协议。这样,在面向 对象编程环境中,请求者对象可以执行一个对提供者对象的远程方法调用。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 a r c h i t e c t u r ep r o t o c 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【初中生物】真菌-2024-2025学年七年级生物上册同步教学课件(人教版2024)
- 【初中生物】微生物的分布-2024-2025学年七年级生物上册同步备课课件(人教版2024)
- 2024就智能工厂建设与运营的合资合同
- 2024年度清雪业务承包合同
- 2024年度特许经营与加盟合同
- 2024建设工程的项目合作协议合同范本
- 2024个人小额贷款合同
- 2024股份合伙人合同范本
- 2024年工程设计合作伙伴协议
- 2024年度原材料采购担保合同
- 工业自动化系统集成项目验收方案
- 新教科版科学六年级上册全册实验汇总 (超全)
- 王洪图黄帝内经80课时讲稿
- 摊铺机司机班组级安全教育试卷
- 重症肌无力指南
- 限制被执行人驾驶令申请书
- 项目主要施工管理人员情况
- 个人借条电子版模板
- 关于学习“国语普通话”发声亮剑【三篇】
- 玻璃厂应急预案
- 婴幼儿游戏照料(婴幼儿回应性照护课件)
评论
0/150
提交评论