基于三层结构的科技项目专家评估打分系统
的开发研究

  陈 超    温州市科技情报研究所  浙江温州 325000

摘 要本文有关温州市科技项目专家评估打分系统的开发,阐述了基于ASP.NET实现面向对象的三层结构应用系统的方法。

关键词 ASP.NET; 三层结构;系统开发

引  言

温州市科技项目专家评估打分系统是对本市每年大量申报的科技项目,进行网上申报、审核、评估和专家打分的一整套系统。此系统免除了纸质文件的传递与审核,减少了人力和物力,方便了企业申报科技计划项目,使项目管理人员对审核和验收的流程一目了然,减少了科技管理工作量,提高了工作效率。

此系统自动将申报的项目分配到市科技局有关处室,再由处室管理人员将项目传递给专家进行打分和评估。专家对项目评估以后,在网上直接打分,完成项目评估。局处室项目管理人员就可以依据专家网上打分情况确定是否立项。项目立项后,系统将自动发送短信通知企业。

本系统采用三层结构。 该结构是目前流行的架构设计模式,它是在由 Buschmann等提出的层模式”[1]基础上发展起来的,由表示层、业务逻辑层和数据访问层三个层次结构组成。它通过分解来管理复杂性对象,同时还可以有效地重复使用业务逻辑并保留与昂贵资源(如数据库)的重要连接基于ASP.NET能够充分发挥本系统完全面向对象的技术特点,实现三层结构B/S系统架构,从而提高开发效率,增强系统的可维护性和扩展性。

一、三层结构模型

1.1、概念

三层架构概述随着软件工程的不断进步和规范以及面向对象编程思想的应用,人们对封装、复用、扩展、移置等方面的要求,使得双层架构显然更加臃肿繁琐,三层程序架构体系应运而生可以说,三层架构体系结构是面向对象思想发展的必然产物。人们对j2ee三层架构体系并不陌生但未得以有效的应用, 不过j2ee三层架构体系的提出,对软件系统的架构产生了巨大的影响,MicrosoftBoland这些公司自然不甘落后,例如Microsoft.net平台,更有甚者,称.netc#java的儿子。那么何谓三层架构?所谓三层架构,是在客户/服务之间加入了一个"中间层",也叫组件层。它与客户层、服务器层共同构成了三层体系。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,是指逻辑上的三层,是指通过引入中间层,将复杂的商业逻辑从传统的双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器,增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用。

通常所说的三层结构为:表现层、业务层和数据层。看每层的功能:

1.表示层(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

2.业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。

业务逻辑层层用于访问数据访问层,从数据层取数据、修改数据以及删除数据,并将结果返回给表层。 

ASP.NET中,该层包括使用SqlClientOleDbSQL ServerAccess数据库取数据、更新数据及删除数据,并把取得的数据放到DataReaderDataSet中返回给表层。返回的数据也许只有一个整型数字,比如一个表的行记录数目,但这也要用数据访问层的数据进行计算。

3.数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务51aspx

BLLDAL

业务逻辑层(Business Logic LayerBLL)和数据访问层(Data Access LayersDAL)。业务逻辑层在数据访问层之上,也就是说BLL调用DAL的类和对象。DAL访问数据并将其转给BLL

ASP.NET中,该层可以用SqlClientOleDbSQL ServerAccess数据库取数据,把数据通过DataSet DataReader的形式给BLLBLL处理数据给表层。有的时候,例如直接把DataSet DataReader送给表层的时候,BLL是一个透明层。

数据层(Data Tier

数据层是数据库或者数据源。在.NET中,通常它是一个SQL ServerAccess数据库,但不仅限于此两种形式,它还可能是OraclemySQL,甚至是XML

1.2、具体区分

1.表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

2.业务逻辑层:主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。

3.数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作,而不必管其他操作。

1.3

  三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。有的三层结构还加了FactoryModel等其他层,实际都是在这三层基础上的一种扩展和应用。

二、 三层B/S结构的温州市科技项目专家评估打分系统开发

2.1需求分析

软件需求分析是系统开发的第一步也是最重要的一个环节,其基本任务是准确地回答系统做什么?这个问题,这需要在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、等方面的需求,通过需求可以有效的设计程序。

分析的目的是为了获得和描述系统中所有的要求,因此分析阶段是一种典型的与用户或客户合作的过程,通常由开发人员同用户或客户共同完成。在这个阶段,开发人员不应该考虑代码或程序实现的细节,而应该把精力放在对现有业务逻辑的理解上,通过与用户之间的充分沟通,逐步理解并描述出得到用户确认的系统模型

2.2系统流程

    本市网上申报的项目,通过交流中心和综合处的审核后,到达各个业务处室,各个业务处室手动分配项目到其下面的子部门,子部门给项目分配专家。

专家通过子部门获得的账号和密码,登录温州市科技项目专家打分系统进行打分。

对打分完成的项目,子部门管理员进行评估,通过则直接进入审核,不通过则进行第二次打分,并重新分配专家。

第二次打分的专家通过子部门获得的账号和密码,登录温州市科技项目专家打分系统进行第二次打分。

第二次打分完成的项目直接进入审核,进过研究和讨论,审核通过项目进入拟立项项目库中,不通过项目则进入不立项项目库中。

拟立项的项目经过评估,通过就进入正式立项(签订合同),不同意就直接进去不立项库中。

2.3具体设计

系统分为三个层:(1)表示层(用户界面)(2)业务逻辑层(BLL)(3)数据访问层(DAL

1.表示层:

采用WEB方式开发,主要是页面设计。分为系统管理员,处室管理员;部门管理员,专家打分4个分模块。

2.业务逻辑层

从数据层取得信息返回给表示层。业务逻辑层共有10个类分别是admin._sp ,application ,contract,expert,expert_project,login,page,score_G,types,ComFun 其中:

1. admin_sp类是对管理员账号进行查找、添加、删除和修改的类;

2. login类是专门针对登录的,由于登录涉及到安全性,我这里专门设了个类。

3. expert类是对管理员账号进行查找、添加、删除和修改的类;

4. application类是对申报的项目进行查找、添加、删除和修改的类。

5. expert_project类是对专家打分的项目进行查找、添加、删除和修改的类。

6. score_G是针对专家打分的分数表进行查找、添加、删除和修改的类。

7. type类是对一些自动生成的编号进行查找、添加、删除和修改的类。

8. page类是对GridView分页的类。

9. contract类是对正式立项的项目进行查找、添加、删除和修改的类。

10. ComFun类是公共函数的类,针对使用的经常使用的公用函数。

3数据访问层

访问数据库,获得数据库信息,并且返回给业务逻辑层。

4.数据库

数据库层是最重要的一环,其中主要的对象有表、视图、存储过程、函数等,数据的许多处理都应该由数据库本身去完成,例如将复杂的查询或者数据写入,都封装为存储过程和函数,将数据写入前后要进行的附加操作用触发器实现等等。对于表的创建一般应以数据库原理的第三范式规范来创建,允许一定的冗余。表及视图的创建规范直接影响到代码编写的难易度。

三、结束语

本文介绍了三层B/S结构系统的基于ASP.NET进行实现的过程和方法,实现的三层结构不仅程序逻辑上结构清晰,而且由于容易发生需求变更的业务逻辑部分实现了分离,因此具有更强的可扩展性和可维护性。同时这种系统在部署时具有很强的灵活性,实现更好的可伸缩性和安全性,满足大规模的企业级B/S应用系统的需求。

四、参考文献

  [1] Frank Buschmann, Regin Meunier, Hans Rohnert et al. Pattern-Oriented Software Architecture[M]. New York: John Wiley & Sons Ltd, 1996.1~50