已阅读5页,还剩82页未读, 继续免费阅读
(计算机软件与理论专业论文)基于应用框架的分布式文档处理系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着网络技术的飞速发展,在分布式环境下协同开发软件项目已逐渐成为软件开发的发展趋势。分布式文档处理系统d w p s 的开发目的,就是为项目管理人员和开发人员提供一个协同的项目文档管理工具。本文的主要工作是研究并实现了项目文档的分布式协同编辑环境。在文中首先介绍了计算机支持的协同工作c s c w 的基本原理和研究现状,并说明了系统开发所用到的背景知识。其次阐述了整个系统的整体框架,即包括应用框架层和业务应用层的层次结构框架。然后着重介绍了这两层的具体实现。其中应用框架作为业务应用层的构建基础,其主要功能是向上一层,即d w p s 系统的业务应用层提供共性的功能服务,应用框架层可进一步划分为特定领域框架层和跨领域框架层。而业务应用层代表了不同的客户化应用,在本系统中它的主要功能是实现一个基于应用框架层的协同文档编辑环境。文章的最后对所作的工作进行了总结与展望。协同开发是今后软件开发的发展必然,而支持协同开发的文档管理工具已成为迫切的需要。d w p s 的研究是协同开发工具的一种尝试,同时为整个后续项目的开展提供了可复用的应用框架和可借鉴的实现方法。关键词:协同开发,应用框架,c v s ,n e t ,删la b s t r a c ta tp m s e u t ,w i t ht h er a p i dg r o w t ho fn e t w o r kt e c h n o l o g y , t h et r e n do fs o f t w a r ed e v e l o p m e n ti st u r n e di n t ow o r k i n gc o o p e r a t i v e l yi nt h ed i s t r i b u t e de n v i r o n m e n t t h ed w p si sad i s t r i b u t e dd o c u m e n tp r o c e s s i n gt o o lw h i c hi sd e v e l o p e df o rp u r p o s eo fs u p p o r t i n gc o o p e r a t i v ee d i t i n g b yt h i st o o l ,t h em a n a g e r sa n dd e v e l o p e r so fc u r r e n tp r o j e c t sc a r lm a n a g et h ed o c u m e n t se f f e c t i v e l ya n dc o n v e n i e n t l y i nt h i sp a p e r , i ti n t r o d u c e st h er e s e a r c ha n di m p l e m e n t a t i o no ft h ed o c u m e n td i s t r i b u t e dc o o p e r a t i o ne n v i r o n m e n t i nt h ef i r s tp l a c ei tp r e s e n t st h em a i nt h e o r ya n dc u r r e n ts t u d i e so ft h ec o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k ,n a m e l yc s c w ;a f t e rt h a t ,i ti st h ei n 订o d u c t i o no fb a c k g r o u n dk n o w l e d g e i nt h es e c o n dp l a c ei tp r e s e n t st h ea r c h i t e c t u r eo fw h o l es y s t e m ,c o n t a i n st h ea p p l i c a t i o nf r a m e w o r kl a y e ra n dt h eb u s i n e s sa p p l i c a t i o nl a y e la f t e rt h a tt h ep a p e re m p h a s i z e st op r e s e n tt h ec o n c r e t ei m p l e m e n t a t i o no ft h e s et w ol a y e r s t h ea p p l i c a t i o nf r a m e w o r k ,i n c l u d i n gt h ed o m a i n s p e c i f i cf r a m e w o r ka n dt h ec r o s s d o m a i nf r a m e w o r k ,i si n f r a s t r u c t u r eo fb u s i n e s sa p p l i c a t i o n s i t sr e s p o n s i b i l i t yi st oi m p l e m e n tc o m m o ns e r v i c e sf o rt h eu p p e rl a y e r t h eb u s i n e s sa p p l i c a t i o np r e s e n t sd i f f e r e n tc u s t o m i z a t i o nb u s i n e s s i nt h i ss t u d y , i t sp r i m a r yp u r p o s ei st oi m p l e m e n tac o o p e r a t i v ee d i t i n ge n v i r o n m e n tw h i c hi st om a n a g et h ep r o j e c td o c u m e n t s t h el a s tp l a c ei sc o n c l u s i o na n dp r o s p e c t p r o j e c td o c u m e n t sc o o p e r a t i v ee d i t i n gi san e wd e v e l o p m e n td i r e c t i o no fs o f t w a r ed e v e l o p m e n t ,a n dt h ed i s t r i b u t e dd o c u m e n tp r o c e s s i n gs y s t e mi sn e e d e db a d l yt o d a y t h es t u d yo fd w p si sat r yt od e s i g nt h ec o o p e r a t i v ed e v e l o p m e n ts y s t e m i ti sar e f e r e n c eo fs u c c e s s i v es t u d y k e y w o r d s :c o o p e r a t i v ed e v e l o p m e n t ,a p p l i c a t i o nf r a m e w o r k ,c v s ,n e t , x m li i西北大学学位论文知识产权声明书本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属于西北大学。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时,本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作者单位为西北大学。保密论文待解密后适用本声明。学位论文作者签名:量9 ;指导教师签名:砂。产i 月2 f 日z o d 6 年6 月2 j 日西北大学学位论文独创性声明本人声明:所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,本论文不包含其他人已经发表或撰写过的研究成果,也不包含为获得西北大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。学位论文作者签名狮l o d 锌( 月z 1 日第一章绪论本章阐述了研究课题的提出背景、c s c w 的概念与发展状况,说明了研究计算机所支持的协同工作系统的必要性和可行性。在总结前人成果,介绍协同工作现行理论和技术的同时,对本文所研究的主要内容作了简要的介绍。1 1 课题背景我们处在一个信息飞速膨胀的时代,软件的开发模式正在发生根本性的变化:软件开发方法经历了从个人作坊式到集体产业化,从面向过程到面向对象,从集中开发到分布开发的转变历程。而今,开放源代码的分布式开发方式成为软件开发的重要方式。因此,以前那种局限于单机模式的软件开发环境已不能够适用于新的开发模式。新的软件开发模式需要实现在i n t e r n e t i n t r a n e t 环境下的分布式软件开发环境。基于以上的背景,软件工程实验室在自身的软件理论研究的基础上,酝酿实验开发一个分布式软件开发环境的项目,其内容不仅仅是包括单纯的软件开发,而是将包括整个的软件开发过程的协同开发,并在此基础上实验实验室的一系列软件理论方面的探索。d w p s 的开发就是在这方面的一个初步探索。1 2 计算机支持的协同工作的基本概念1 2 ic s c w 概念协同学是一门跨越自然科学和社会科学的新兴的横断学科,于2 0 世纪6 0年代由德国理论物理学家哈肯在研究激光理论的过程中创立。它以系统论、信息论、突变论等为基础,通过分析类比,来描述各种系统和运动现象中从无序到有序转变的共同规律。协同学重点研究系统从无序向有序转化的临界过程的共同特征,同时又结合具体现象给出了一些特殊规律,因而具有广泛的适用性。随着科学技术的进步,信息技术得到了飞速发展,人类社会进入了信息时代。计算机技术、网络技术、多媒体编辑技术、通信技术、分布和并行处理技术等领域的长足进展,给协同科学的研究和应用提供了有力的支持。于是,计算机支持的协同工作( c o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k ,c s c w ) 研究领域应运而生。现在我们可以把“计算机支持的协同工作”定义为:地域分散的一个群体借助计算机及其网络技术,共同协调与协作束完成一项任务。它包括协同工作系统的建设、群体工作方式研究和支持群体工作的相关技术研究、应用系统的开发等部分。通过建立协同工作的环境,改善人们进行信息交流的方式,消除或减少人们在时间和空间上的相互分隔的障碍,节省工作人员的时间和精力,提高群体工作质量和效率,从而提高企业、机关、团体、乃至整个社会的整体效益和人类的生活质量 s h i 2 0 0 2 。c s c w 技术是一门交叉学科,涉及的领域非常广泛,其中包括计算机网络通讯、并行和分布式处理、数据库、多媒体、人工智能理论等。它具有分布性、共享和通信、开放性、异步性、自动化支持、工作协同性、信息共享性和异质性等特点“。从某种意义上来说,凡是以计算机及网络为技术支持手段的领域,涉及共享信息和群体协同工作的应用都可归属于c s c w 的研究范围。目前,c s c w 的主要应用领域有:军事应用、工业应用、协同计算机辅助设计、办公自动化和管理信息系统、医疗应用、远程教育、合作科学研究、电子商务和电子政务等。一组协同成员之间的协同,通常是通过相互交流来完成的。根据交流双方的空间位置和应答方式,协同设计的工作方式可以分为面对面交流、异步交流、分布式异步交流及分布式同步交流4 类,如图卜l 所示。图1 1 协同设计的工作方式其中,面对面的交流最简单,是多个协同成员在同一时间、同一地点进行的2协同设计,通常会以会议的方式进行;舜步交流是多个协同成员猩同一地点、不嬲黠阔进行的执嗣设计,可以通过共享数据库实现;异步分蠢式交滤是多个协同成员在不丽时阉,不同遣赢进行的协同设计,需要网绦豹支持,可黻逶过电子郾 牛、分布式数据库等形式来实现;分布式同步交流则魑指多个协同成员在同一时间、不同地点遨孝亍熬协同设计,实现的鼹发在四静方式中最大,除了实现异步分布式交互式所鬻的各种支持工兵外,还需要有能够支持实时协作的环境。1 2 2c s 傩国内外研究现状国内对于计算机支持的协同工作的研究始于1 9 9 4 年,研究工作主要集中在理论方面,对于具体的协同设计的应用研究较少,至今还没有形成一个商品化的辏弱设诗较磐。鏊蠹昊毒代表缝静缘台秘瓣平台产燕楚煮击秘技公鬻魏“竞舞瓷同之星”( g k s t a r ) 系列产晶。相对于国内的情况,圜外对于协同工作的研究历史较长,到现谯为止已经有一些赛翌纯软传毳琴裁痰功,并取褥了蹇黟豹效蓥。协同软件市场包括基础通讯工具、综合协同平台以及专业协同应用三大类,豳前在企业中融得到应用与关注的电子邮件、企业即时通讯、v o i p 网络电话、瓣络会谈系绫、遴谖安全警壤淤及工终滚管瑾、办公滚程管理系绫嚣藩予蛰闲软件的范畴。综合协同平台是协同软件市场未来发展的重要方丽,国际主流厂商的产品主餮酝蘩:逶痤凌态工终器壤浆i b ml o t u sn o t e s d o m i n o ;致力予遮蓉蘧缀瓣瘦用平台s u no n e ;能够前后端集成的平台m i c r o s o f te x c h a n g e 国以及以关系数据库为基础的平台o r a c l e 威用协同套件。1 2 3c s c w 现行理论和关键技术在当翦的c s c w 研究中,主要技术基磁是计算机及诗冀枫网络技术,主要的动力来源于广泛的应用需求。其中许多关键技术还有褥解决。这些关键技术的深入研究是c s c w 碰用系统出现飞跃的基础 s h i 2 0 0 2 。1 ) c s c w 系统模型和体系结构在不同应用背景下的c s c w 应用会有许多差异,馕它稻的共同特征是提供支3持人类协同工作的工具。c s c w 系统的基本组成元素可归纳成4 类:成员角色( r o l e ) 、共享对象( s h a r e d o b j e c t ) 、协作活动( a c t i v i t y ) 和协作事件( e v e n t ) 。成员角色描述群体成员在协同工作过程中所起的作用。在各种c s c w 系统中的成员角色划分有很大差异,需依据不同的需求进行合理的成员角色划分。协作活动描述群体成员所进行的协作过程。共享对象是在协作过程中各成员共同操作的对象。协作事件是协作进展和状态变化的指示,用于协调各成员行为。我们把c s c w 系统理解成一个4 层模型。第1 层为“开放系统互连环境”,提供开放的通信支持环境,保证协同工作过程中有效的信息交流。第2 层为“协同工作支撑平台”,解决协同工作所需的主要机制和工具。如信息共享、信息安全控制、群体成员管理:基本工具包括电子邮件、会议系统、协同写作和讨论系统、工作流系统等等。第3 层为“协同工作应用接口”,在这一层中需要提供协同应用的编程接口a p i 、人机接口h c i 和人际接口i p i ,通过标准化的服务接口向应用系统提供第2 层的功能,使上层的应用系统与下层的支撑平台具有相对的独立性;提供有效、灵活、方便的人机交互接口;以及在协同工作环境下协作各方交互关系、规则和策略等。第4 层为“各种c s c w 应用系统”,针对各种协同工作应用领域,提供所需的协作支持工具的剪裁和集成,协同应用系统的开发。这个4 层模型是从系统开发者的角度讨论c s c w 系统框架,并且有待进一步细化。c s c w 研究需从各种不同的角度描述c s c w 系统模型,并且把不同角度的系统模型描述有机地统一起来。2 ) 群件协作模式c s c w 研究的目标是提高群体成员间的协调配合水平,为此必须深入了解人类群体内成员问的协作模式,以指导协同工作技术和方法研究。人类群体的协作模式是多种多样的。按协作成员间的关系,可分成集中控制下的协作和平等协作。按协作过程的时间限制特征,可分为同步协作和异步协作。c s c w 关于群体协作模式的研究还有待进一步深化,以准确地抽象出群体协作的特点,指导协同工作技术的研究。难点在于把协作模式的抽象与相应协作支持技术对应起来。3 ) 协作控制机制4在人们的协作过程中需要遵循一定的规则,否则会引起协作的困难。例如:一个小组在开会讨论时的发言只能顺序进行,不能多个人同时讲话。当同时有两个人讲话时,会有一个人主动停下来。协作控制机制就是这些协作规则在c s c w应用系统中的体现。协作控制机制讨论协作过程中产生的各类协作事件间的逻辑关系。4 ) c s c w 系统中的群组通信支持已有的计算机网络技术,特别是开放系统互连参考模型中主要考虑的问题是点到点的通信。这是计算机网络在互连和互操作情况下的主要通信模型。但在计算机协同工作时,要协调的不仅仅是两台计算机,而是3 台以上计算机的同时协调工作,要进行点到多点的群组通信,也称为多目标发送。与点到点通信相比,群组通信所面f 笛复杂的用户机器环境和网络环境。群组通信对计算机网络提出了更高的技术要求。已有的研究工作表明,现有的网络通信协议不能满足群组通信的许多重要要求,由此也引发了对群组通信协议的研究。5 ) 同步机制群体成员协作的一个基本要求是向各成员提供一致的工作环境。各类协作事件的产生也需要遵守一定的时间关系。这些时间关系维持是通过同步机制实现的。同步机制讨论协作过程中产生的各类协作事件间的时序关系。c s c w 系统中的同步可分为实时事件同步和连续媒体同步两类。实时事件同步描述一个或一组相关事件的发生和由此引起的相应动作之间的时序关系。同步机制研究难点在于同步关系的描述和实时服务的提供。目前缺少有效的同步关系描述手段,而且常见的操作系统都无法提供严格的实时服务。6 ) c s c w 系统的安全控制在军事应用等许多c s c w 应用系统中都要求严格的安全控制。c s c w 系统的安全控制主要体现在以下几个方面:成员身份验证、成员权限控制和数据加密与解密。7 ) 多媒体技术以音频和视频技术为主要内容的多媒体技术在c s c w 系统也占有重要地位。音频和视频信息交流是人类在协作过程中使用最多和最自然的方式。为了通过c s c w 应用系统支持人之间的协同工作,必须在c s c w 系统中支持音频和视频信息5交流。8 ) 应用共享技术应用共享是指由一个群体的各成员通过各自的机器共同控制在一台机器执行的应用程序。应用共享的目的是扩展已有的大量单用户应用程序,使之可由多个用户共同控制,实现协作。这是保护开发单用户应用所进行的大量已有投瓷,并开展协同工作的一条便捷途径。9 ) c s c w 应用系统开发环境和应用系统集成技术c s c w 的应用领域十分广泛,良好的应用系统开发环境可缩短应用系统开发周期,降低应用系统的开发成本。c s c w 应用系统开发环境就是在解决计算机协同工作关键技术的基础上,形成支持掷同工作的应用编程接口( a p i ) ,为各种c s c w 应用系统提供一个功能完善的开发环境。c s c w 应用系统开发就是在此基础上进行剪裁,选择适当的协作模型和控制机制,构造c s c w 应用系统。目前这方面的研究集中在支持协同工作的a p i 库开发。i 3 软件复用i 3 i 复用的概念软件复用是指利用现有的软件成分( 资源) 来构造新的软件系统的过程。该软件成分可能是己有的软件,也可能是专门开发设计的可复用的软件构件。软件复用并不仅仅局限于程序源代码的重复使用,在软件开发过程中,复用是指能充分利用已有的软件开发技术和软件开发周期中各阶段的产品,它涉及到一个软件开发的全过程。采用软件复用技术有以下几个好处:首先,可以减少重复劳动,提高软件开发的效率,这是复用技术的主要目的。采用复用技术,开发过程不再是一切“从零开始”的模式,而是以已有的软件成分为基础,充分利用原来丌发系统时的经验和知识以及相关软件成分,避免了重复劳动。其次,可以提高软件的质量和可靠性。对已知是可靠的软件成分的复用比在一个新的系统中重新设计和编码同一个软件成分有更少的风险,避免了重新开发可能引入的一些错误。另外,在新软件系统开发时,主要精力都放在待开发系统所特有的部分,对系统中新加入的模块可以做更多的优化。6i 3 2 软件构件基于构件的软件设计方法( c b d ) 是当前复用研究的热点,也是实现软件复用的主要方式。构件技术是面向对象技术的一个发展。构件与对象的最基本的不同点是在于一个对象是源代码的一部分或者是一个规范,用来执行应用程序的一部分,而构件不仅仅是一个规范,也不一定是需要编译才能使用的一部分源代码,而是可实际运行的软件模块。构件技术的基本思想在于,创建和利用可复用的软件构件来解决应用软件的开发问题”“3 。只要遵循构件技术的规范,各个软件开发商就可以用自己熟悉或者是使用习惯的语言去实现构件。软件构件是指可重用的软件单元,可以被用来构造其它软件。它可以是被封装的对象类、一些功能模块、软件框架、软件系统模型、软件的文档,如可重用的分析件、设计件等。构件( c o m p o n e n t ) 是指应用系统中可以明确辨识的构成成分,具有相对独立的功能和可复用值的、可被清楚标识的构件。它描述并执行特定的功能、有清楚的界面、正确的文档和定义良好的复用状态。具体的讲构件是一种定义良好的独立可复用的对象,它可以是一些功能模块、被封装的对象类、软件框架、软件系统模型,也可以是抽象的管理经验和丌发思想等。构件的分类在整个软件复用过程中是一个非常重要的工作。在使用构件时我们要从构件库中找出一个符合要求的构件是比较困难的,因为大多数构件的使用者不一定是构件的开发者。用户只知道自己要什么样的构件,应该具有什么样的功能,至于是否存在这样的构件、构件叫什么名字等一些具体的信息并不知道,仅靠阅读构件的功能来查找符合条件的构件效率是极其低下的,为此一个好的构件分类方法及检索方法会有效的解决这一问题。1 4 论文结构本文共分六章。其中第一、二章为绪论和背景知识。第三章介绍了整个分布式协同开发环境的体系结构设计。第四、五章在第三章的工作基础下,对分布式协同开发环境系统进行了扩展与实现,这包括了底层应用框架以及编辑环境的设计与实现。最后一章则是结束语。各章节的概述如下:第一章为绪论,论述课题的立题背景,简要介绍了计算机支持的协同工作的7基本概念和国内外研究现状,论述课题的研究目标和任务。第二章为背景知识,介绍开发本系统所应用到的主要技术,包括c v s 版本管理系统,n e t 技术和x m l 技术。第三章为d w p s 系统体系结构的设计。它包括了系统的层次划分、拓扑结构和功能流程。即首先介绍了系统的层次结构,指出了基于应用框架的系统结构,接着论述了系统使用的拓扑结构以及系统的功能流程。第四章为d w p s 底层应用框架的设计与实现。重点论述了基于n e t 技术开发的系统应用框架的设计与实现,包括身份验证服务、授权服务、配置服务等跨领域组件和版本控制等特定领域组件的开发动机、开发技术以及代码分析。第五章为编辑环境的设计与实现。主要介绍了一个基于应用框架的c s 架构的业务应用的设计与实现,即包括了服务器端程序,客户端程序和主要功能类库这三个模块的设计、开发与代码分析。第六章为结束语,对本文的工作进行总结,并对今后的工作进行了展望。1 5 本文所作的工作本文论述了d w p s 的各个模块的设计与实现的过程,介绍了在网络环境中构建协同开发环境的一种实现方法以及部分关键技术:分布式系统的设计、版本控制、x m l 元素对象的传输等。协同文档处理环境是实现分布式项目文档、源代码处理的关键环节。本文的研究为整个协同项目开发环境提供了必要的前提和可以重复利用的底层框架结构,既是项目的前期重要环节,又为后面的工作顺利开展做好了铺垫。通过本课题的研究,初步探讨了如何在利用现有开源项目项目和基础框架的基础上,将单机的文档处理系统融合到协同编辑系统之中,实现多人的异步或同步的文档协同编辑。8第二章背景知识分布式文档处理系统d w p s ,采用功能强大的c v s 系统作为文档及源代码管理工具,系统的实现基于成熟的n e t 分布式系统框架,采用新一代的面向对象语言c # 开发,而信息转换和储存的格式则采用了x m l 技术。从而给之后的开发者和用户提供了一个易于复用、功能强大的分布式开发环境。2 1 版本控制2 1 1 项目中的版本控制版本控制,有时也称为源码控制,是支撑项目开发的三大支柱之一。通过在项目的开发过程中合理使用版本控制,可以给开发小组和个人带来许多好处 t h o m a s 2 0 0 5 。1 ) 为开发小组提供了一个项目范围的撤销按钮:不再存在不可修改的操作,并且可以借助回滚操作来更正错误。2 ) 能够帮助多个开发者以一种受控的方式对同一份代码进行操作。当开发小组的某个成员覆盖了另一成员编辑的代码时,开发小组不会再因此失去这部分修改信息。3 ) 版本控制系统记录了以前对代码所作的每次修改。4 ) 可以同时发布软件的多个版本,并且不会中断开发工作的主线。5 ) 可以查看任意日期的项目状态。这不仅仅有助于研究的开展,而且可以随时回到以前的某个状态,重新生成以前的版本。版本控制涉及的任务主要包括保存软件开发过程中待开发系统的各种中间状态,控制对软件系统的修改,记录软件系统的变化过程。版本控制工具是指能对版本控制提供自动化支持的工具。一般而言,版本控制系统分为版本库和临时工作区两部分。版本库负责统一存储各种软件资源及其各种版本,临时工作区则是软件开发者修改软件资源的工作场所,版本控制系统则是完成软件资源在版本库和临时工作区之间的存取工作。版本控制系统利用统一的命名规则标识软件资源的诸多版本,从而避免了版本紊乱现象。版本控制系统对存取软件资源采取加9锁等控制策略,保证了多开发者共同开发时软件资源的内容一致憔和正确性。器剃嗣版本控制工具辅助软传开发,必须按照舨本管理的规则进行工作。相应的软件开发模式怒;“签击( c h e c k o u t ) 、编耩( e d it ) 、熬入( c o m m i t ) ”。其中,签出是指从版本库中取出计划要修改的软件资源,将其放入临时工作隧中。随后用户那可在工 乍区中修改签如的文件。当捌户鲣改完成拜寸,通过签入操作将工作区内容保存到敝本库。这样在敝本控制系统黥控帝l 下,修改产生的新版本将存储在版本库中,并保持与原系统的版本关系、参照关系。2 。i + 2c v s 麓逮c v s 全称c o n c u r r e n tv e r s i o n ss y s t e m ,是一个成熟的版本控制系统。主要建予管理在开发过翟中生成黪源技玛、文穗等蜜辩,滋家毽粕静更耨嚣变,楚开发团队各成员可以更好的协作。c v s 系统分为服务器端和客户端两个部分,服务器端一般安装于l i n u x 系统或w i n d o w sn t 系统( 注:w i n d o w s2 0 0 0p r o f e s s i o n a l 、w i d d o w s2 0 0 0s e r v e r 、鬻i n d o w s x p 、w i n d o w s2 0 0 3s e r v e r 邦溪于w i n d o w sn t 系统) ,客户端则根据客户机操作系统的不同而有众多类别。c v s 具有如下的优点:1 ) 集审式管理,霞麓者疑霞羁会簿中签凄找秘,建户套独立稳定豹嚣蒙树。2 ) 能够在发行整个计划的原始目录树中添加标识。3 ) 毙够矮爝户嚣寒修浚整案。4 ) 能够利阉s h e l ls c r i p t 或p e r l 设定档案锁为单一使用或照同时模式。c v s 同时也存在一些缺点,如管理复杂,命令繁多,要用手工方式解决冲突镣。c v s 在进行源代码管理时具有以下一然特点:1 ) 源代码空间与用户空间分离c v s 系统将源代码文件救在r e p o s i t o r y 下,用户要修改文件必须将文彳牛从r e p o s t i y 中签蹬。2 ) 著发谤润c v s 系绞允许多个方法入受润辩跤取瓣一文静静潮敝搴源文捧。逐开发天爨1 0提取一个文件时,将在自己的工作空间建立一个与其他开发人员相互独立的拷贝,此文件的版本号与文件“头”版本相同,除非他用c o m m i t 命令完成版本的永久性升级。而此时,其他用户可以用u p d a t e 命令使自己的版本号与“最新的头版本号”相一致。若用户在c h e c k o u t 后发现头版本改变了,可以利用命令形成一个新文件,这个文件即包括原来的内容,又包括用户修改的内容。此时若与其他同时在对同一文件修改的开发人员发生冲突,可以通知其手工解决冲突。所以说,c v s 系统是一个c o p y m o d i f y m e r g e 的算法。软件开发人员可以得到一份源文件的拷贝( c o p y ) ,并不会对文件加锁,从而为并行开发提供了可能。在得到拷贝后,开发人员可以在自己的开发环境下进行修改( m o d i f y ) ,然后提交自己修改后的文件,与源文件进行合并( m e r g e ) ,从而形成新的版本。3 ) 源文件共享c v s 系统中不同的用户可以按照自己的需要拷贝不同的模板,修改后提交给$ c v s r o o t 。这样用户可以共享源文件。4 ) 独立的工作环境用户可以在自己喜欢的工作环境下进行修改开发,拥有独立的工作环境。5 ) 标记c v s 系统为了方便用户,引入了一个t a g 文件。该文件位于用户工作目录下,在被它标记的文件一级的c v s 目录下对特定的t a g 文件进行操作,即对应于相应版本的操作。2 2 n e tf r a m e w o r k回田田圈口i通用语言规范n e t 框架是一个多语言组件开发和执行环境,主要用来构建、发布并运行x m lw e b 服务和其他应用程序,它由两个主要部分组成:通用语言运行时( c o m m o nl a n g u a g er u n t i m e ) 、类库( 包括m i c r i o s o f ta s p n e t ,e n t e r p r i s es e r v ic e s ,m i c r o s o f ta d o n e t 以及w in d o w sf o r m s 等) 。其核心技术为通用语言运行时、类库和a s p n e t 。通用语言运行时( c o m m o nl a n g u a g er u n t i m e )公共语言运行时在组件的开发及运行过程中,都扮演着非常重要的角色。在组件运行过程中,运行时负责管理内存分配、启动或删除线程和进程、实旌安全性策略、同时满足当前组件对其它组件的需求。在开发阶段,运行时的作用有些变化:与现今的c o m 相比,运行时的自动化程度大为提高( 比如可自动执行内存管理) ,因而开发人员的工作变得非常轻松。尤其是,映射功能将锐减开发人员将业务逻辑程序转化成可复用组件的代码编写量。对编程语言而言,运行时这个概念并不新奇:实际上每种编程语言都有自己的运行时。v i s u a lb a s i c 开发系统具有最为明显的运行时( 名为v b r u n ) ,v i s u a lc + + 跟v i s u a lf o x p r o 、j s c r i p t 、s m a l l t a l k 、p e r l 、p y t h o n 和j a v a 一样有一个运行时,即m s v c r t 。n e t 框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,这也是它能独树一帜的根本原因。类库n e t 框架为开发人员提供了一个统一、面向对象、层次化、可扩展的类库集( a p i ) 。现今,c t + 开发人员使用的是m i c r o s o f t 基类库,v i s u a lb a s i c 用户使用的又是v i s u a lb a s i ca p i 集。n e t 框架统一了微软当前的各种不同类框架。这样,开发人员无需学习多种框架就能顺利编程。远不止于此的是,通过创建跨编程语言的公共a p i 集,n e t 框架可实现跨语言继承性、错误处理功能和调试功能。实际上,从j s c r i p t 到c + + 的所有编程语言,都是相互等同的,开发人员可以自由选择理想的编程语言。通过使用n e t 框架,可以为程序开发者带来如下的好处:1 ) 可以使用任何编程语言2 ) 减少了代码编写量3 ) 以x m l s o a p 为核心4 ) 提高了程序的可靠性5 ) 性能得到了优化2 3x m l 技术x m l 是一种可扩展标识语言语言。x m l 是互联网联合组织( w 3 c ) 创建一组规范,以便于软件开发人员和内容创作者在网页上组织信息,其目的不仅在于满足不断增长的网络应用需求,同时还希望借此能够确保在通过网络进行交互合作时,具有良好的可靠性与互操作性。与h t m l 一样,x m l 也源自s g m l ( s t a n d a r dg e n e r a l i z em a r k u pl a n g u a g e 一种老资格的通用标记语一言) ,它保留了s g m l8 0 的功能,使复杂程度降低了2 0 ,尽管如此x m l 却有着h t m l 语言所欠缺的巨大的伸缩性与灵活性。x n t l 不再象h t m l 一样有着一成不变的格式。x m l 实际上是一种定义语言,即使用者可以定义无穷无尽的标记来描述文件中的任何数据元素,从而突破了h t m l 固定标记集合的约束,使文件的内容更丰富更复杂并组成一个完整的信息体系。x m l 语言可以让信息提供者根据需要,自行定义标记及属性名,也可以包含描述法,从而使x l v ( l 文件的结构可以复杂到任意程度。x m l 主要有三个要素:s c h e m a ( 模式) 、x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e 可扩展样式语言) 和x l l ( e x t e n s i b l el i n kl a n g u a g e 可扩展链接语言) 。s c h e m a 规定了x m l 文件的逻辑结构,定义了x m l ,文件中的元素、元素的属性以及元素和元素的属性之间的关系,它可以帮助x m i 的分析程序校验x m l 文件标记的合法性:x s l 是用于规定x m l 文档样式的语言,它能在客户端使w e b 浏览器改变文档的表示法,从而不需要再与服务器进行交互通信:x l l 将进一步扩展目前w e b 上已有的简单链接“1 。良好的数据存储格式、可扩展性、商度结构化、便于网络传输是x m l 主要的四大特点,决定了其卓越的性能表现。由于x m l 能针对特定的应用定义自己的标记语言,这一特征使得x m l 可以在电子商务、政府文档、报表、司法、出版、联合、c a d i c a m 、保险机构、厂商和中介组织信息交换等领域中一展身手,根据不同的系统、厂商提供各具特色的独立解决方案。1 32 4 本章小结本章论述了分布式协同开发环境需要的背景知识。首先论述了版本控制的问题,介绍了c v s 版本控制系统。然后论述了系统开发中所使用的n e t 框架和x m l 技术。1 4第三章系统体系结构的设计大型系统的设计一般均采用模块化设计,层次结构是一个有效的设计方式。通过采用层次结构,使得d w p s 系统结构清晰,功能和使用环境易于扩充,便于进一步的复用。d w p s 系统总体分为两大层:应用框架层和业务应用层,而业务应用层又可进一步分为用户使用层,逻辑表示层和功能实现层。分布在不同层次的模块通过分布在各层的接口将用户信息、文件信息等联系到一起,并通过集中存储或映射的方式保存各种信息,从而保证开发活动的一致性。同时,为了提高协同的效率,系统中实现了同步和异步两种不同的消息传送方式,并通过事件通知服务来传递文件的编辑信息。3 1 系统层次设计3 1 1 系统的层次划分由于系统采用的是c 7 s 版本控制系统提供的服务来实现对项目开发文档和代码的管理,而c v s 一般为c s 模式的软件系统,所以本系统的用户端一般实现为r i c h c ll e n t 方式,即系统采用c s 架构实现( 也可实现为u s 模式) 。d w p s 系统采用分层结构设计,各个层之间进行严格明确的功能划分,每一层的接口都以项目文档的形式固定下来,这样就使得开发人员在接口不变的隋况下,可以进行功能的扩充而不影响系统的运行。系统的整体层次结构如图3 1所示。d w p s 系统总体分为两层:应用框架层和业务应用层,而业务应用层又可进一步分为用户使用层,逻辑表示层和功能实现层。1 53 1 2 各个层次的实现功能现将各层所实现的功能及相互之间的联系详解如下:1 ) 业务应用( b u s i n e s sa p p l i c a t i o n ) 层业务应用层代表了各种不同的客户化应用,它由应用开发者负责开发。为了达到待开发的特定应用目的,业务应用层必须实现事无巨细的业务知识”2 “1 。例如在本系统中,典型的客户化应用包括了源代码的版本控制、项目文档版本控制等各种不同的协同开发工作中的具体需求。这些具体的应用都可以在基于应用框架和基础框架所提供的服务上进行二次开发。本文中所实现的就是这样一个基于框架的分布式文档控制应用,其业务应用层又可进一步分为用户使用层,逻辑表示层和功能实现层。业务应用层的最上面是用户使用层。即用户所见到的程序界面,既可以实现为w i n d o w sf o r m ,又可以实现为显示在浏览器中的w e b 页面。用户通过对这一层的操作来生成请求,然后逻辑表示层根据用户的请求,处理业务逻辑,并将结果反馈给用户。这是与用户直接接触的一层,它负责响应用户的请求,为用户提供一个易于操作的界面。同时将用户的请求转化成调用下层提供的服务。1 6第二层是逻辑表示层,系统的业务逻辑组合在这一层完成。这一层具有承上启下的功能。即调用下层实现的服务为用户使用层服务,同时给用户返回请求的操作结果。功能实现层是业务应用层与底层框架层交互的接口层。它的功能是实现对框架层服务的调用,并对其继承或组合已实现具体业务应用的需求,并且独立实现特殊的业务功能。这一层隔离了具体的业务需求与框架服务,降低了系统的耦合度。2 ) 应用框架( a p p li c a t i o nf r a m e w o r k ) 层应用框架作为业务应用层的构建基础,其主要功能是向上一层,即d w p s 系统的业务应用层提供最主要的功能服务。d w p s 系统,不管是服务器端还是客户端都通过功能调用的方式来访问框架,以获得服务。这样就保证了整个系统结构的明确,同时使得系统具备了模块化( m o d u l a r i t y ) 、可重用性( r e u s a b i l i t y ) 、可扩展性( e x t e r n s i b i “t y ) 、简单性( s i m p l i c i t y ) 和可维护性( m a i n t a i n a b l i t y )等特点。应用框架层可进一步划分为两层:特定领域框架层和跨领域框架层。特定领域框架层特定领域框架层由针对特定业务领域的专有组件组成 c h e n 2 0 0 5 。相对业务应用层而言,特定领域框架实现的是对特定业务领域的所有应用通用的。例如在1 7分布式协同开发环境中,无论项目文档的处理还是源代码的处理,都需要版本控铡暴统,所以版本控制就是特定领域梃絮层要实现的暇务。露业务威蠲层的业务知识和逻辑,弼是专门针辩菜令特殊应照的。本层所包宙的业务领域知识,比业务应用层的业务知识要稳定,当业务应用按发生变化拜重,特定领域糕浆层能够独立予变化。跨颁域框架层跨领域樵架层由不包含业务领域知识的框架组件组成 c h e n 2 0 0 5 。这一层中的缀肄褒服务邋耀于大多数瓣应翅,丽不论该瘟翅是针对哪个特臻镁壤的,即它键含了不同妊努领域的公熬主题。既然跨领域框架并不包含特定的业务知识,所以它也就不会受刹业务规则或怒瀑求改变豹澎嘲。当然,公共主题也莠不是一藏不变戆,当舂瑟熬主题出现融,橇架就会受到影响。另外当框架层提供的某些服务并不完全适合具体的业务应餍时,则框架层也必须被修改或者是对服务进行重新修饰( d e c o r a t o rp a t t e r n ) 。3 ) 基舂妻掇絮( f o u n d a t i o nf r a m e w o r k ) 瑟基础框架魑一种编程模型( p r o g r a n u n in gm o d e l ) ,_ 睫用框架和娥务应用在其上被构建”3 。遮一层一般由软件开发商所提供,著名的有s u n 的j a v a 环境和m i c r o s o f t 豹n e t 框架等。基萋窭框絮旋溺来曩= 发各秽各样熬虚弱,窀荠蚕包会般务知识。本文论述的系统,是构建在n e t 框架之e 的。4 ) 操作系统层搡终系统溪代表了系统联运行萁上豹操维系统这一瑟次。本文论述懿系统运行于w i n d o w s 系列操作系统上( 需要n e tf r a m e w o r k l 1 或以上版本) 。3 。2 系统拓羚缕擒d w p s 系统采用可扩展的拓扑结构以及集中与分布栩结合的管理模式,以适应使用环境和规模的不确定性。具体来说,文档仓库采用的是集中管蠼,用户分布霞蘑。整个系统拓扑结构可以分为两个区域:系统区和用户区。其中系统区主要是搬服务器端节点和数据库节点,它们用米共同完成系统的开发管理弱协同等功髓。蘑户区妥嘻麓由客户漆节杰所组成静,既包括c s 缩梅的客户端,氇包括b s1 8结构的客户端。系统的拓扑结构是可以扩展的,会随着用户的使用环境和用户规模的变化而变化。但是无论进行怎样的扩展,系统的核心节点,即服务器端节点和数据库节点是不变的。3 3 系统功能流程系统由编辑客户端和编辑服务器端组成。客户端在登录服务器端时都必须使用已注册的账号。如果一个用户没有在本系统中注册过,则可以向系统申请注册。对于注艇用户,当身份验证通过后,系统返回给用户所参与开发项目的文档列表,当用户选择某篇文档打开后,系统就会从文档仓库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速轮转印刷机节能技术行业2026-2030年产业发展现状及未来发展趋势分析研究
- 2025至2030中国保险信息化行业项目调研及市场前景预测评估报告
- 2025-2030中国氢能轨道交通装备测试认证体系完善需求分析
- 高负载搬运与堆垛机器人行业产业发展现状及未来发展趋势分析研究
- 民法典知识测试题及答案
- 2025折叠屏手机铰链设计专利布局与良品率提升路径报告
- 2025扬州市医疗器械行业市场供需分析及投资评估规划分析研究报告
- 2025手指静脉识别技术对保险业客户身份核验流程的重构
- 2025年国家安全知识竞赛试题含答案
- 2025工业级无人机应用场景拓展与监管政策研究报告
- 2025宁夏回族自治区大学生乡村医生专项计划招聘工作人员13人考试笔试模拟试题及答案解析
- 学校食堂满意度测评及管理方案
- 2025安徽清水街道招聘就业专干6人笔试考试参考试题附答案解析
- 2025云南楚雄州元谋县国有资产投资管理有限公司及所属子公司合同制员工招聘13人考试笔试备考试题及答案解析
- 小学语文教师素养大赛知识素养试题
- 北京市海淀区2025-2026学年高三上学期期中地理试题 含解析
- 施工现场安全事故应急预案
- 2025版疾病控制护理护士培训大纲
- 2025年中级消防设施操作员《理论知识》题库必做200题(含答案)
- 特种设备重大事故隐患判定标准
- 北京第十三中学分校2023-2024学年九年级上学期期中物理试卷
评论
0/150
提交评论