论基于构件的软件开发
摘要:
基于构件的软件开发是提高软件生产效率和软件产品质量的有效途径,本文结合我们的实践,以“在线学习支持服务平台”项目为例,讨论了基于构件的软件开发的技术的应用。由于我校现有的各级软件系统都是基于微软Windows系列平台,因此我们确定使用微软的COM组件技术来开发该平台,并介绍了该平台所使用的几种COM组件,主要采用VB6语言编写通用模块并生成DLL文件及注册成为COM程序,客户端用ASP语言来实现并通过ADO技术来调用SQLSERVER2000和COM组件。
在本项目中的开发过程中,我担任了系统设计工作。
正文:
“在线学习支持服务平台”是面向我校开放教育学生进行远程学习教学辅导,经过多年的远程教育模式的探索,确立了成熟完善的远程教育教学模式--利用先进的网络数字信息技术,为广大的学生提供开放的教育平台和最优秀的教育资源,突出个性、学生自主学习的教学。
“在线学习支持服务平台”是一个综合性的在线式基于WEB的远程教学平台,存储着核心信息数据,提供网上课程、信息发布、查询、BBS、VOD视频点播等教学服务,该系统的开发技术主要集软件复用、企业级应用程序开发等技术于一体的“基于构件的软件开发”。系统运行于WINDOWSSERVER2000,用SQLSERVER2000为后台数据库,用ASP+IIS5.0来架构网站。
由于COM组件既可以被嵌入动态Web页面,还可以在LAN或桌面环境的VB、C等
应用中使用。另外该组件之间是彼此独立的。当应用需求发生变更时,可能需要更换中间层的个别CoM组件,但并不影响其他组件的继续使用。组件具有若干对外接口(属性和方法),可以根据不同的应用需求,有选择地使用不同的接口。即使不再使用某些接口时,COM组件本身仍然可继续使用。同一COM组件可以在不同的应用环境中重复使用。因此,结合我校的实际情况,我校现有的各级软件系统都是基于微软Windows系列平台,且开发人员对COM组件技术也较熟悉,对开发语言VB6也很熟悉,因此我们确定使用微软的COM组件技术来开发该平台。
该平台采用B/s结构进行设计,把整个系统分为三个层:数据库层,应用逻辑层,用户界面层。用户界面是浏览器(如IE等),并通过ASP语言来实现同应用逻辑层构件交互。应用逻辑层负责事务处理,应用逻辑层用主要通过使用COM组件方式来实现,数据库层用SQLServer。
我们依据平台的主要功能,在平台开发中,如果采用传统的方法来开发,则每实现一个功能都要编写同样的代码,为了节省开发时间和提高维护效率,我们把共用的代码模块都做成组件,例如我们把记录操作(如记录的删除、增加、修改等)、数据库操作、查询做成用户管理组件,把用户身份认证和用户类型识别做成用户管理组件,把所有实现与数据库的连接做成连接组件,把用户的错误操作、与系统的交互出错等做成错误处理组件。对于各组件我们采用VB6语言进行编写并生成DLL文件,通过注册成为COM程序,供各个组件调用。在数据库连接方面,我们采用了ADO技术。由于ADO采用了OLE-DB技术,使能访问各式各样的数据并提高了访问性能。
在该平台的开发过程中,主要设计和实现了以下一些COM组件:
(1)用户管理组件,包括身份认证功能
我们主要定制COM组件用户管理组件UserCheck.dll进行用户管理处理。该组件主要完成两个功能:一是身份认证功能,主要是提供用户登录时验明身份,保证应用的安全性。二是根据用户所输入的账户名确定该用户的类别。
因此,该组件具有三个接口,每个接口代表组件的某个属性或方法。对用户的登录请求做出相应的处理:如果是学生登陆则转入学生学习平台,如果是教师登陆则转入教师平台,如果是管理员登陆则转入管理员平台。
(2)查询和提交信息组件
我们主要定制COM组件QuerySys.dll进行查询和提交信息处理。该组件主要完成两个功能:一是供学生用于查询学生成绩和查询课程信息;三是提交学生注册信息。
该组件具有两个接口,每个接口代表组件的某个属性或方法。如果学生的请求是查询功能(QueryInfo方法),则将查询信息请求做出相应的处理,并将查询结果集返回给出学生。如果学生的请求是提交注册信息(Submitinfo方法),则将提交信息请求做出相应处理,并将信息提交提示返回给用户。
(3)连接组件
我们主要定制COM组件Conector.dll,该组件主要完成与数据库的连接。该组件具有一个接口,那就是确定数据源,以便自动连接后台数据库。
(4)错误处理组件。
我们主要定制C