下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论基于构件的软件开发【摘要】本文以我参与的ATEL2.0在线学习平台(该平台是ATEL1.0版本的升级,以下简称ATEL平台)开发项目为例,讨论了基于构件的软件开发技术。ATEL在线学习平台是我们公司自主开发,自主运营的平台,该平台是基于“云计算”中SAAS(软件即服务)模式的网络学习平台。通过互联网,为客户提供完整的远程教育及网络培训功能。本文首先介绍了基于构件开发技术的基本思想和实施步骤,介绍了ATEL平台选用构件技术来开发的原因。然后具体介绍了ATEL平台基于构件开发过程中对构件获取、构件的修改、构件的组装、获取和修改过程中对构件的评价,以及对构件的管理等。我在项目中担任了系统架构设计师,自始至终参与了整个项目的建设。自2011年1月份项目启动至2011年9月份新品发布历时9个月,取得了客户和业界的好评。项目能够确保质量提前完成,节约了成本并保证质量,很大程度得益于基于构件的开发技术。【正文】ATEL在线学习平台是我们公司自主开发,自主运营的平台,该平台是基于“云计算”中SAAS(软件即服务)模式的网络学习平台。通过互联网,为客户提供完整的远程教育及网络培训功能。ATEL平台可以广泛应用于大型企业、政府协会、教育机构、高等院校等各类机构的远程教育及网络培训业务。ATEL2.0平台于2011年1月开始建设,我担任了系统架构设计师职务。ATEL平台由多个业务子系统构成,主要包括:学习管理系统(LMS),帮助学员安排学习进程,测试和练习;学习内容管理系统(LCMS),为机构高效的设计、创建和发布在线学习课程到LMS供学员学习,并能测量该课程的学习效果;ATEL管理平台(SAAS-Portal),针对各种机构的业务特点,实现各种业务管理功能的集成;交易中心(CSHOP),实现了机构与机构之间的课件交易,学习者与机构的课程的交易;ATEL课件中心(CWC),实现对课件的添加、发布,分发到各个课件存储节点。现在软件行业竞争越来越激烈,除了要有好的商业模式外,软件本身的推出周期的速度,经常会影响公司发展,谁抢得了先机,谁就有可能获得更大的市场份额,经常是一步慢,步步慢。所以如何提高软件的开发速度,同时保证开发质量,越来越受到行业的重视。我们公司基于SAAS模式的E-Learning在线学习平台,采用SAAS模式做E-Learning,和传统软件最大的不同是:多租户。为了快速推出我们的ATEL平台,我们采用了构件开发技术。采用构件开发技术,可以减少软件开发中的重复性工作,降低开发成本,缩短周期,改善软件质量和灵活性。基于构件开发过程中包括对构件获取、构件的提取、构件的评价、构件的修改、构件的组装以及对构件的管理等过程。大量可复用的构件是有效地使用构件开发技术的前提,获取构件的途径有多种途径,第一种在现有构件库中提取符合要求的构件,或对已有构件做适当修改,在ATEL1.0版本已经积累了不少的构件,并经过时间的验证是稳定的和正确的,所以ATEL2.0平台开发中大部分构件从构件库里选择的,这也是成本最低的。第二是采用第三方构件,比如开源软件,或市场上购买商业软件,开发平台和数据库这些基础平台都是选用优秀的平台,我想做应用软件产品公司的很少有自己去开发这些基础平台的,还有一些是就是通用性很强的构件,我们一般选用开源的很成熟的构件,可以节省我们自己开发的成本。第三是自己开发符合需求的构件,当构件库和第三方的没有能满足需求的构件的时候,必须开发新的构件,以满足系统需要。以下是ATEL平台获取构件的具体过程:1)构件库中提取构件或修改在ATEL1.0版本开发中,提取和抽象了一些公用模块作为单独的构件。XJson是客户端和服务器端数据交互构件,程序员只用在一个基于XML格式的后缀名为Xjson文件里写好要执行的SQL和对应参数,用Jquery的AJAX方法请求就可以通过该文件获取需要的数据,不用写执行数据库操作的对象和类,极大的简化了系统的开发。CWS课件播放器构件,是我们在ATEL1.0开发的一个支持IMS/Scrom国际标准的课件播放器,运行稳定,但无法支持跨域交互数据。在ATEL2.0平台里,为了把CWS与LMS/LCMS拆分,实现解耦,提升系统的扩展性,这就涉及到跨域问题,需要修改该构件。目前大部分浏览器无法支持跨域交互数据,因此我们引入跨域技术,原理就是采用脚本注入方式,我们开发了两种跨域获取数据的JS构件。2)采用的第三方构件ATEL平台采用了B/S多层分布式架构,以.NET平台作为我们的开发平台。前端表示层采用HTML+jQuery+AJAX,功能层采用Asp.NET+Spring.NET+Xjson;数据层是SQLSERVER2005。以下是选择这些第三方构件的原因:HTML静态页加载速度快,AJAX是创建交互式网页的技术,jQuery是优秀的JavaScirpt框架并兼容各种浏览器;.NET平台具有开放性、分布性、平台无关性的大型企业级开发平台,SQLSERVER2005和.NET都是微软公司的产品,相互无缝结合;开源Spring.NET是基于IoC(依赖注入)和AOP(面向方面编程)的架构,Spring.NET的IOC容器可以解决如何在企业应用中将类、对象和服务以松散耦合组合成应用程序的问题;运行环境中发生问题,需要日志系统日志记录来快速诊断程序问题,log4net是开源的功能强大的日志记录组件。3)新开发的构件为了增加页面内容元素的复用,我们设计了页面分区块加载的JS构件,在某个HTML页面元素上加载指定URI网页上的内容。该构件类似A的用户控件,程序员开发的某个页面功能,其他人可以直接加载到自己的页面,提高了复用的粒度。我们还设计开发了一些实用的JS生成特定控件的方法,有支持翻页的Table数据绑定控件、动态创建树控件等。在开发过程中,我们抽取了不少构件,比如单点登录构件、权限管理构件等…,限于篇幅,不再详述。构件组装过程中,我们采用了基于功能和面向对象的组装技术相结合,根据系统需求,从构建库提取、第三方构件、新开发构件等多种途径获取构件。把这些构件相互连接,或和现有开发中的软件元素相互连接,实现构件的组装。随着构件的增多,需要对大量构件的进行有效管理,我们公司有专门的Wiki系统对构件进行描述、分类与组织。方便开发人员对构件进行检索与提取、理解评价、修改构件。经常发生有些程序员不知道构件库里已有某个构件,造成重复开发;还有就是对构件不理解,无法很好的使用构件库里的构件。这些都是程序员对现有构建不够了解,需要加强程序员对已有构件的熟悉,可以做不定期的构件培训讲解,增加构件的使用率。回顾整个项目实施过程,从通用性角度看,企业新开发的构件不如第三方构件通用和成熟,从行业角度来看,企业自己开发构件能够满足业务领域的大部分开发,这是第三方构件无法达到的。从行业发展来看,会有越来越多的行业领域的服务构件被开发出来,供更多的行业客户使用,这给行业软件服务提供商提供了更多的商业机会。ATEL平台通过采用基于构件开发技术,提高了开发效率,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年亲子协议模板
- 2025年增资协议合同条款
- 2025年度个人承包工程劳务合同模板4篇
- 2025年合作环境科学书籍出版协议
- 搅拌站项目合作开发合同(二零二五年)3篇
- 2025年度环保认证木地板采购与施工合同4篇
- 2025年度乡村旅游资源承包经营权转让合同4篇
- 2025年度股权质押担保与文化产业融合发展合同
- 二零二五年度足疗养生馆加盟投资协议
- 2025年度美容院美容师服务提成劳务合同模板
- 2024-2030年中国海泡石产业运行形势及投资规模研究报告
- 动物医学类专业生涯发展展示
- 2024年同等学力申硕英语考试真题
- 消除“艾梅乙”医疗歧视-从我做起
- 非遗文化走进数字展厅+大数据与互联网系创业计划书
- 2024山西省文化旅游投资控股集团有限公司招聘笔试参考题库附带答案详解
- 科普知识进社区活动总结与反思
- 加油站廉洁培训课件
- 现金日记账模板(带公式)
- 消化内科专科监测指标汇总分析
- 混凝土结构工程施工质量验收规范
评论
0/150
提交评论