免费论文查重: 大雅 万方 维普 turnitin paperpass

简论软件园软件园开发协作平台设计与实现

最后更新时间:2024-01-18 作者:用户投稿原创标记本站原创 点赞:4825 浏览:12300
论文导读:传递的方式。开发协作平台系统结构图如图1所示。权限控制模块的作用是在协作开发的过程中,实现各个用户之间的文件操作权限控制,即当一个文件被一个用户打开时,与其协同开发的其他用户(被共享有这个项目的用户)将无法打开这个文件;当文件的拥有者释放这个文件时(关闭该文件或退出系统),该文件才能被其他人操作。该模块主
摘要:开发协作平台将分布在不同场所的工作人员高效组织起来,通过虚拟化技术在一个实时工作环境里进行高效协作,并在不同的项目组之间应用一致的流程和标准,从而提高开发效率,实现各类开发工件之间的完整追踪能力和生命周期管理,使软件交付活动更加透明。
关键词:开发协作;Dojo;Equinox;Comet
1摘自:毕业论文结论www.7ctime.com
007—9599 (2012) 14—0000—02
一、背景
自2000年6月国务院18号文件的签发以来,中国软件业经历了10多年的高速发展。时至今日,我国的软件园区已达200多家。但在成绩的背后,也应该看到我国具有核心竞争力的软件园区数量与国外相比依然偏少,主要原因在于产业公共服务缺乏、园区内企业之间以及企业内部组织之间不能高效地协作、产业链不完善等。这严重制约了我国软件业的发展,软件园开发协作平台的构建能够较好地解决这些问题。
软件园开发协作平台是一个开放性的平台,提供了一套支持在线开发的软件开发工具库,用于支持软件外包园区内各个企业间进行协作开发,减小其运作成本,从而实现整合外包园区内各个企业的研发资源和能力,同时提高协作性,最终实现提高整个软件园区的市场竞争力。

二、系统核心架构

开发协作平台的核心是一个整合了多个功能接口的业务平台,业务平台之下细分为权限控制模块、安全控制模块、文件处理模块、代码编辑模块、用户管理模块等五大功能模块。这五大功能模块是在对线编码工具进行功能分析和整合后所得出的高度内聚,彼此之间耦合度很低的功能套件,是整个平台功能实现的支撑。其中,部分模块又是对更加底层的数据或工具进行封装和二次处理后所形成的。在业务平台与前端页面之间由传统的请求\应答消息接口和服务器推送接口作为消息传递的方式。开发协作平台系统结构图如图1所示。
权限控制模块的作用是在协作开发的过程中,实现各个用户之间的文件操作权限控制,即当一个文件被一个用户打开时,与其协同开发的其他用户(被共享有这个项目的用户)将无法打开这个文件;当文件的拥有者释放这个文件时(关闭该文件或退出系统),该文件才能被其他人操作。该模块主要由User、UserManagement和FileSystem三个核心类组成。用户管理器UserManagement负责监管多个用户的生命周期,每个用户User都拥有一个FileSystem作为其专属的文件管理器,用于处理其相关的文件工作。用户的生命周期分为生成阶段,文件操作阶段,用户挂起阶段,消亡阶段。其中生成阶段和消亡阶段分别在用户登录和退出时发生,进行资源分配和资源回收工作。文件操作阶段是指用户打开或拥有至少一个文件,此时用户具有文件操作、修改的权力,并且此时要对被用户打开的文件加锁。加锁的过程中,实际上是对这个用户包含的FileSystem进行操作,即将文件状态信息和拥有权注入到FileSystem中。当用户释放资源时,也是操作其所包含的FileSystem对象的相关数据结构。
安全控制模块和文件处理模块相辅相成。一方面安全控制是对文件处理的安全控制,另一方面文件处理要受到安全控制的限制。为了更好地模块化开发,本系统将常用的文件操作类组织成文件处理模块,而将和安全有关的类组织成安全控制模块。图5所示是安全控制核心类的结构图,FileSystem类作为每个用户专属的文件系统管理和操作类,包含了四个支持安全控制的类,即ZipCipherUtil、Upload、JarGenerator、CipheUtil。其中ZipCipherUtil类用于提供文件和文件夹压缩和解压缩服务;Upload类提供文件上传功能,根据此功能能够实现本地文件和项目上传到平台进行开发或共享;JarGenerator用于将项目或文件打包成.jar格式的,可以提供给用户进行下载和本地化操作;CipherUtil类用于提供加密和解密功能。四个类被FileSystem类整合,共同协作,结合安全控制文件结构,实现了一套相对简单的安全控制机制。
代码编辑模块作为在线开发工具的核心功能,其涵盖面十分广泛,包含的子功能也非常多,因此采用Eclipse下的Equinox插件体系来完成。其关于代码编辑模块的核心包是org.eclipse.core.resources和org.eclipse.jdt.core这两个包。这两个包提供了一系列相关的工具,并且已经封装成相对来说操作较为简单的接口,无需自己从底层实现。
如图3所示的代码编辑模块核心类结构可以看出,ClientMessageHandler类专门用做功能接口,其主要功能是处理前端发送过来的各种消息,并经过初步解析和封装后调用后台各个功能块和系统;而调用后台功能块和系统是通过访问UserManagement实现的,因为UserManagement中保存了当前活跃的用户列表,ClientMessageHandler收到消息后从UserManagement中获得操作相关的用户,再通过User中的FileSystem将web操作映射到本地;所有底层的功能实现块全部承接到FileSystem下,也就是说FileSystem这个类是一个针对指定用户的功能平台,各个上层模块进行本地操作实际上就是通过层与层之间的访问追溯到指定用户的FileSystem再进行操作。
代码编辑模块提供了代码编译、代码编辑、项目打包、项目结构管理等功能。其中项目打包功能,项目结构管理功能已通过其他模块完成,只要进行简单的关联调用即可。代码编辑功能除了要提供最基础的文档输入功能(即复制、粘贴、剪切、字体格式颜色处理、保存、撤销、重复、查找)以外,还需要实现针对代码编辑的特殊功能需求,比如自动缩进、关键字高亮(JA语言)、花括号匹配、自动补全等功能。
用户管理和交流模块实际上是一系列跟用户有关的附属基础功能集合,包括用户管理、用户交流管理、项目共享管理。用户管理的功能是当用户登录时,进行验证,验证通过后从数据库和文件系统中提取相关资源进行分配。这一功能由User论文导读:
Management类实现,其中封装了一系列针对用户管理的操作,包括用户的登录、注销等。用户数据库与项目的其他子平台共用,相互协调统一。如图4所示的用户交流与项目共享核心类结构可以看出,用户交流与项目共享的功能封装在CollaborationsGenerator类中,其主要操作方法是访问UserManagement,获取其包含的User列表。通过根据索引查找到指定的User后再对其所包含的FileSystem进行操作。FileSystem中有专门用于存储该用户协作对象,协作项目,拥有资源的数据结构。而CollaborationsGenerator类也正是通过控制这些数据结构来实现用户交流与项目共享功能。每当该操作完成后,CollaborationsGener源于:论文格式范例www.7ctime.com
ator类会使用服务器推送接口将项目更新(主要是拥有权变更信息)传递给相关的用户,无刷新更新其前端页面。而用户交流可以通过广播和向指定用户发送两种方式进行消息传输,用户接收到的消息将会在控制台中呈现。

三、系统实现

由于在实际开发过程中,发生文件冲突的仅仅是进行项目共享的用户,所以当项目共享过程发生时,会在User对象中保存其正在进行共享的用户信息。每当要打开一个文件时,用户可以通过访问其所包含的共享用户信息,遍历他们是否拥有该文件的资源,如果有则放弃打开过程,并在界面上提示该文件已被加锁;如果没有在其共享用户的拥有文件列表中找到该资源,则打开该文件。在本系统中,采用服务器推送接口实现文件状态信息实时更新,如图5所示显示当前文件为非锁定(可打开)状态。
安全控制文件结构中主要包含三个目录,即store目录、workplace目录、recover目录。Store目录用于保存平台各个文件和项目数据,当用户不在线时,其所拥有的文件和项目将被统一加密压缩,置放与store文件夹中,而这个文件夹将被平台管理员管理,用户没有直接访问该文件夹的权力;加密压缩后的压缩包文件无法以正常的方式打开,只有经过平台解密后才能被读取;workplace是当前活跃项目的存放文件夹,即平台上操作文件或项目实际上是在用户登录后,从store文件夹下找到属于其的项目,解压缩到workplace目录下,然后再进行操作;recover文件夹是用于存放被删除的文件,用户也可以在删除后向平台管理员申请,将误删除的文件恢复。全部文件操作基于Eclipse下Equinox插件体系来完成,这个插件已将文件操作封装为针对某些节点,不需要从底层写代码。
代码编辑区域总体上纵向分为三个板块,分别是工具栏,代码编辑区和控制台。工具栏提供各种操作,包括当前文件保存、保存全部、复制、剪贴、粘贴、全文查找、撤销、重复、缩进、字体颜色设置、自动补全、项目打包、执行功能。代码编辑区域以文件标签的方式来进行各个当前已打开的文件之间切换,简单方便。控制台作为系统消息的显示区域,也可以用于显示系统输出流输出的文字,作为项目的调试,此外,用户之间聊天交流的显示区域也在控制台中。
四、结束语
本文给出了软件园开发协作平台的设计与实现核心内容,该平台作为软件园外包协作平台的三个子系统之一,可用于解决软件园企业协作开发的一些相关问题,具有一定的实际意义。该系统采JA语言实现,采用了Dojo、Equinox、Comet等框架,具有良好的可扩展性。
参考文献:
(美)MartinFowler.企业应用架构模式[M].王怀民等译.北京:机械工业出版社,2011
陈华军.J2EE构建企业级应用解决方案[M].人民邮电出版社,2002
[3]吕辉.我国软件外包产业发展现状研[D].北京交通大学,2008