基于构件的软件开发
摘要:
2007年上半年,我参加了**市信息办技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要为了支持**市党政机关专网的二期建设所开发设计的,它是一个在线式的远程服务平台。在项目的开发过程中,我充分的进行基于构件的软件开发,考虑到软件复用和以后的扩展等方面,文中介绍了构件平台的选择,几种COM构件的开发,平台的实现过程。基于构件的开发大大提高了软件的质量,缩短了开发周期。该项目现在以完满完成,得到用户的一致好评。但现在看来,在开发过程中也出现了一些不足,文中就构件的划分和使用方面谈了自己的一些看法。
正文:
2007年上半年,我有幸参加了*市信息办技术服务平台的项目开发,并在其中担任系统平台设计和部分开发工作,本项目隶属于**市党政机关专网(党政内网),是电子政务建设的一部分,市党政机关专网是政务信息化建设的基石,在市政务信息化建设和发展中具有举足轻重的地位,随着**市信息化建设的要求不断提高,要在下半年开展市党政机关专网的二期工程建设,二期工程覆盖的范围更广,为了配合二期工程的建设,对此项目有较高的要求。
由于此平台是一个综合性的在线式基于WEB的远程技术支持平台,存储着核心信息数据,提供:任务发布和查询,拓扑图查询,机关代码查询,软件支持下载,BBS,VOD视频教程等服务,功能的多样化,必然会在软件开发中出现重复开发的现象,所以在开发初期我从该系统的需求分析入手,着重考虑了软件复用,在开发过程中采用了基于构建的软件开发方法。我将软件设计为B/s结构,三层体系架构:用户界面层,应用逻辑层,数据库层。用户界面层考虑到用户的易用等方面,用的是浏览器(如IE等),通过ASP语言来实现同应用逻辑层构件交互;应用逻辑层来处理各种应用功能的实现,负责事务处理,主要通过使用COM组件方式实现,以构建形式进行设计开发,考虑到以后的扩展和软件的复用性,也可大大的提高了开发效率;数据库层用SQLSERVER来实现。
结合我部门的实际情况,我部门现有的各级软件系统都是基于WINDOWS系列平台,且开发人员对COM组件技术也比较熟悉,对开发语言VB6也很熟悉,在这里我选择Microsoft应用服务器的解决方案,用windowsserver2000作为应用服务器(它集成了2MTS,ASP,
IIS,MSMQ,COM,DCOM),确定使用Microsoft的COM组件技术来开发该平台。用SQL
SERVER2000为后台数据库,用ASP+IIS5.0来架构网站。
由于COM组件既可以被嵌入动态WEB页面,还可以在LAN或桌面环境的VB,C等应用中使用。另外该组件之间是彼此独立的。当应用需求发生变更时,可能需要更换中间层的个别COM组件,但并不影响其他组件的继续使用。组件具有若干对外接口(属性和方法),可以根据不同的应用需求,由选择的使用不同接口。即使不再使用某些接口时,COM组件本身仍然可以继续使用。同一coM组件可以在不同的应用环境中重复使用。
由于该系统以在线服务支持为主,主要包括了用户互交操作,资料输入,数值处理,数据存储等几个方面,我们依据平台的主要功能,为了节省开发时间和提高维护效率,我决定把公用的代码模块都作成了组件,例如把记录操作(如记录的删除,增加,修改等),数据库操作,查询做成用户管理组件,把用户身份证和用户类型识别作成用户管理组件,把所有实现与数据库的连接作成连接组件,把用户的错误操作,与系统的互交出错等作成错误处理组件。对于各组件采用VB6语言进行编写,并写成DLL文件,同过注册成为COM程序,供各个组件调用。在数据库连接方面,我们采用了ADO技术。由于ADO采用了OLE-DB技术,使能访问各式各样的数据并提高了访问性能。
在该平台开发过程中,主要设计和实现了以下一些COM组件:
1用户管理组件,包括身份认证功能
我们主要定制COM组件用户管理组件USERCHECK。DLL进行用户管理处理。该组件主要完成两个功能:一是身份认证功能,主要是提供用户登录时验明身份,保证应用的安全性。二是根据用户所输入的帐户名确定该用户的类别。
因此,该组件具有两个接口,每个接口代表组件的某个属性或方法。对用户的登录请求作出相应得处理:如果是普通用户登录则转入普通用户平台,如果是管理员登录就转入管理员平台。
2查询和提交信息组件
我们主要制定COM组建Querysys.dl1进行查询和提交信息处理。该组件主要完成两个功能:一是提供查询相关信息;二是提交相关信息。
该组件有两个接口,每个接口代表组件