APP下载

一种基于SOA的高校试题库系统设计

2009-03-14

新媒体研究 2009年4期
关键词:试题库

谭 宁

[摘要]介绍SOA的概念、特征、优点等,较为深入讨论SOA的实现技术Web Services及在.NET平台上的创建、发布和客户端调用过程。其次,通过对高校试题库的需求分析,提出基于SOA的高校试题库系统的系统架构和分层设计。

[关键词]面向服务的体系结构 Web服务 .NET 试题库

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220044-01

一、系统的功能

学生使用教师或者考试管理员分配的账号登录考试系统,然后选择需要参加的考试科目。选定考试科目后,开始答题。系统自动计算学生已经参考的时间。如果在考试时间内没有答完试卷,系统自动交卷。交卷后,系统马上批阅试卷,并给考试结果。系统需要解决的主要问题因为考试是有特定的对象的,所以考生进入系统应该进行身份验证。考生进入考试系统后,需要选择考试科目,所以系统还应有考试科目选择的功能。本系统的用户可分为系统管理员,普通管理员(或教师),学生和普通用户四类。

二、系统架构总体设计

(一)SOA架构

该试题库系统采用SOA架构,其中服务实现技术由Microsoft.NET的Web Services来实现。系统中各模块的功能都定义为独立的服务,这些服务为表示层(客户端)显露可调用的Web Service接口。业务外观层,通过单个服务或者多个服务的组合来形成业务流程,从而为表示层提供了一个整体的业务逻辑视图。根据SOA架构的特征,在该系统中采用SOA架构将获得以下优势:

(1)客户端技术。无论是Windows Forms客户端还是Web客户端程序或者是外部程序(其他系统或者Web服务),都可以通过标准化的Web Service接口的调用来获得业务逻辑。

(2)集成度。合作院校的外部用户也能像内部用户一样访问相同的服务,这样可以更好的集成本校和合作院校的信息。比如,在组卷模块中,通过发布用户注册服务和组卷服务,合作院校的外部客户就可以在自己的系统中直接调用该服务而获得题库信息和组卷的服务。

(3)系统。系统的业务逻辑可以完全以第三方提供的服务或者服务组合来实现。假设一个高校需要共享和获得试题库资源的服务等功能,则唯一需要做的是根据本校的需要开发自己风格的客户端展示界面,然后远程连接服务提供商提供的标准的用户注册、试题采编、组卷等业务逻辑的Web服务。而专业的服务提供商则开发业务逻辑服务组件,并为用户提供业务逻辑服务,不同的院校用户组合这些逻辑来实现自己的业务需求。

(二)分层体系结构

试题库系统采用分层体系结构,从外到内主要分为如下几层:表示层、业务外观层、业务层、数据访问层和数据库层。

表示层主要提供友好的用户界面,使得最终用户能够方便地使用本系统。在该系统中,表示层主要包括注册、登陆、试题采编、组卷、查询等模块的用户界面的实现及表单提交、与下一层的交互(调用业务外观层的Web服务接口)等功能。

业务外观层主要提供标准化的服务接口,从而使得该服务可以提供给在任何异构平台和任何本地或者远程用户使用。在该系统中,通过引入业务外观层,隔离了业务层和表示层,确保了此两层之间的相互独立、松散耦合,提高了业务逻辑组件的复用性和应对需求变化的能力。在该系统中,业务外观层用注册、登录、试题采编、组卷等Web Services封装了业务逻辑组件及细粒度业务Web服务。

业务层主要提供系统的业务逻辑和控制,细粒度的服务也在该层得以实现。该系统中,业务层主要包括:注册、登陆、试题采编、组卷、查询等组件。

数据访问层主要提供了业务组件和底层数据的一个平滑过渡,使得业务层只处理业务逻辑而不必关心底层的数据模式。在该系统中,所有后台试题库数据库表(如课程总表、题型总表、试题表集、知识点总表、试卷总表、试卷表集、系统用户信息表、用户组信息表等)的操作都被封装在一个数据访问组件(借助ADO.NET来实现)中。

数据层主要提供了数据信息和数据逻辑,所有与数据有关的安全性、完整性、数据的一致性、并发操作等都在数据层。

系统的层次化结构,使得系统在各层次上的组件能单独更新、替换或增加、拆除。因此,系统维护更方便,代价相对低得多。而且,因各组件互相独立,更换组件对系统其它部分并无影响,所以更新维护更加安全可靠。系统的分层结构,可以使得软件开发的专业化分工成为可能。高度的专业分工,一方面由于系统开发的细分,使得系统精确度提高,另一方面也会促使系统开发的高度协作,从而使得流水线生产的引入变得势在必行,其最终将会导致软件大规模生产的到来。

(三)技术架构总体设计

从整体架构来看,本系统是以SOA为基础的解决方案,整个系统由若干服务和服务组合构成。在概念上,可以将服务视为整个解决方案的组件。这里仅简介表示层和数据访问层采用的技术。

(1)表示层。表示层为用户提供友好的使用界面。当前,客户端应用程序模型最为常用的有两种:客户端/服务器模型(C/S)和浏览器/服务器模型(B/S)。由于本系统的开放特性,用户点比较多、规模较大、部署和维护成本较高,因此采用浏览器/服务器模型。采用B/S模型具有易于安装和部署、维护的优势。该层实现技术采用ASP.NET技术和C#语言。

(2)数据访问层。数据访问层主要负责业务层和数据层之间的交互。因为数据库是最常用,也是最有效的数据存储方法,因此,支持高效的数据库存储是数据访问层首要考虑的问题。在Windows.NET平台下,使用ADO.NET来连接和访问数据库。在数据库的访问中,所有的操作都可以分为这么几大类:数据库的连接、查询、插入、修改和删除,是非常有规律的。这样使得可以让这个工作通过封装成独立的一个组件(DAL组件)来执行。这样,一方面可以简化很多同数据库交互方面的代码编写工作量,能够减少出现出错率,另一方面,由于框架封装了不同数据库之间的差异,使得在编写程序的时候,不用考虑不同数据库之间的差异,而将这个工作交给DAL去做,从而实现了系统的后台数据库无关性。

通过对系统的功能性需求分析,并针对面向服务的软件体系结构,给出了该系统框架设计。从目前高校的信息化建设的实际情况来看,技术整合、信息资源共享和快速应对需求变化是一个相当迫切的需要。对试题库系统采用SOA架构进行构建是一个有意义的尝试。

参考文献:

[1]周珂,基于SOA软件架构的企业应用[J]. 微机发展,2005.11.

[2]郑晓东、王志坚、周晓峰,一种基于Web Service的分布式计算模型研究及其实现[J]. 计算机工程与应用,2004.01.

作者简介:

谭宁,男,汉,副教授,研究方向为计算机网络。

猜你喜欢

试题库
加强高校试题库建设与管理的讨论
使用ASP.NET实现试题库系统试题导入及修改维护的一种方法
高校试题库建设方案探索
解剖学实验考试题库建设实践与探讨
浅谈基于Web试题库系统的设计
基于Blackboard平台的医学生物化学与分子生物学教学题库建设及应用