APP下载

华中科技大学:在线考核系统的设计与实现

2013-10-24刘波郑競力邓洪志

中国教育网络 2013年12期
关键词:原型客户端数据库

文/刘波 郑競力 邓洪志

随着互联网技术的进一步发展,新型的教学考核手段得以应用到临床医学教育中。为推进考试科学化和信息化,使用医学理论与实际操作在线考试系统,能够对医学专业学生的平日学习效果进行真实、直接、迅速的反映。华中科技大学在WCF框架下通过应用Silverlight技术在浏览器客户端来访问服务器数据库,设计和实现了临床医学网络考核系统。从系统开发的实践效果来看,基于Silverlight和WCF的这种轻量级服务调用使开发出来的网络应用过程简单高效。整个系统很好地平衡了C/S、B/S结构的优缺点,具有网络响应迅速、访问界面传输流畅、交互应答快捷高效、服务器及访问终端系统并行运行流畅等特点。

系统开发方法

系统开发方法分析

在线考核系统开发方法有以下几种,如面向对象的方法(Object Oriented Development),原型方法(Rapid Application Development),结构化方法(Structured System Analysis and Design)等。在线考核系统,要对并发的浏览器客户端请求即时应答,动态生成不同的试卷页面,还要记录考生的每一步操作痕迹,因而对运行效率要求较高。

图1 三维结构体系

图2 原型化方法工作流程

软件开发要从科学的角度来分析问题,也要从过程的角度来解决问题,最终的目标就是将人类的信息系统管理方式或过程在最大程度上转变为计算机可以高效执行的软件系统。总体说来包含三个方面的内容,即系统的思想、数学的方法和计算机的技术。美国系统工程专家霍尔(H.hall)最先提出了由时间维、逻辑维和知识维三要素所组成的系统方法“三维结构体系”(图1),对软件工程的理解和对软件开发方法分析是非常有益的。

结合目前医学科目考核的实际情况,医学在线考核系统主要采用原型法以及面向对象的方法,并以结构化程序设计为基础来贯穿整个软件的开发过程。

1.原型法

随着新的程序设计语言、关系数据库以及高效的系统开发环境得以应用,软件开发效率大大提高,出现了原型化软件开发方法。原型化开发方法强调抓住核心和关键应用,借助于高效的开发手段,快速构造出系统原型,尽快提交给用户一个可以试用和测试的系统模型。通过试用以后收集用户的反馈信息,进一步明确用户需求,在系统原型的基础之上修改程序来完善功能。由于原型系统可以实际运行,也是最终系统的核心或组成部分,其构造简便,完成速度快,付出代价也相对较低,解决了传统结构化开发方法开发周期长、代价高的缺点。

原型化开发方法的基本过程如图2所示。

值得注意的是,原型化方法也是以结构化软件开发方法为核心的,基本过程就是反复确认用户需求。但对于大规模的软件开发来说,用户的需求有时是难以明确甚至是随着软件的具体使用而不断变化的,使得软件修改变得非常困难。

2.面向对象方法

面向对象的开发方法较好地解决了这个问题,其核心就是将目标转移到系统中的对象身上,先设计好对象的属性与行为,再考虑对象间的操作关系。系统中的每个对象都是一个单独模块,以对象为基础,加上对象之间的操作关系来构成整个系统。面向对象的系统开发过程,可分为系统需求分析、系统设计、系统实现,以及系统测试等几个步骤。如图3所示。

图3 面向对象开发模型

系统体系结构

软件体系结构目前主要有两大结构:C/S结构和B/S结构。与C/S“胖客户端”结构相比较,B/S“瘦客户端”结构的客户端不需要安装特殊的软件,只要客户端计算机能够上网即可访问服务器。

随着网络应用的迅速发展,出现了“富”客户端技术。“富”是指客户端的交互模型,使之具有完全访问宿主操作系统和API的能力以及调用宿主系统的计算能力,从而出现多样化输入方式和符合用户感觉的即时反馈手段。使得“富”客户端模式的应用使用起来就像是使用现有的桌面应用软件如Word,WPS一样。

当前主流的富客户端技术包括Flash、Silverlight等,两者的特点如表1所示。

系统开发技术

.NET框架包括三个主要组成部分:公共语言、服务框架,以及两类应用模板(传统的Windows应用程序模板和基于ASP.NET的面向Web的网络应用程序模板)。

1.基于Silverlight的面向服务的富客户端开发技术

Microsoft Silverlight翻译为“微软银光”,是一种能在各种平台上运行的Web呈现技术。Silverlight这样一个跨浏览器、跨平台的插件,为网络带来多种基于.NET framework的交互式应用程序。对于运行在Macintosh和Windows上的浏览器,Silverlight都可以提供统一而丰富的用户体验。

表1 Silverlight与Flash比较

2.基于WCF的数据库访问技术

WCF(Windows Communication Foundation)是.NET框架的一部分,是一组数据通信的应用程序开发接口。WCF集合了几乎所有由 .NET Framework 所提供的通信方法,通信双方的沟通方式由合约(Contact)来订定。使得WCF可以支持传输层以及消息层的两种安全层次。在 Visual Studio中,所有 WCF 服务的连接都是由客户端的服务代理(WCF Service Proxy)来运行的,开发人员不用花费太多精力在通信上。而服务代理在Visual Studio项目中被称为服务引用(Service Reference)。

在Visual Studio中添加 WCF 的服务引用方法非常简单,只需要在程序代码中引用WCF Service Proxy 对象即可。Silverlight客户端通过添加 Web Service 引用来调用服务方法从而完成数据访问操作。WCF是ASP.NET Web Service的发展或扩展。

WCF Data Services是WCF服务框架下的具体实现方法,也称为ADO.NET Data Service。服务器端通过ADO.NET Entity数据模型,将OData (Open Data Protocol)数据封装为实体模型,然后通过WCF 服务来发布数据;Silverlight 客户端则通过添加 WCF服务引用并通过简单编码实现异步调用来完成数据访问操作。Silverlightenabled WCF Service是Silverlight使用WCF服务操纵SQL Server的主要方法。在服务器端通过LINQ to SQL,将数据封装为实体Model,通过手动编码实现数据的具体操作,发布Silverlightenabled WCF Service服务;而客户端通过添加WCF服务引用和简单编码实现异步调用方法来完成数据访问操作。

WCF RIA Services:WCF RIA Services 简化了针对富Internet应用程序 (RIA)的n层解决方案部署,比前面介绍的WCF服务和Web服务都要简单。基本方法也是首先在服务器端通过ADO.NET Entity数据模型,将数据进行封装,然后通过 Domain Service发布服务。在Silverlight 客户端,通过添加Domain Service引用和简单编码实现同步调用实体类,从而完成业务数据的具体操作。

上述方法的优缺点,如表2所示。

数据库兼容性一般:默认只能访问SQL Server和Access,访问Oracle、DB2等数据库需要安装第三方插件。

以面向对象方法、原型化方法为指导,以Silverlight富客户端的B/S结构作为软件体系结构,网络数据访问方式基于WCF Data Service方式访问数据库,实现医学理论与实际操作在线考试系统的设计和开发应用。

系统设计

通过需求分析,对系统的功能有了清晰的界定,确定系统的逻辑模型和物理模型,包括系统功能模块设计、数据库设计等。系统设计工作包括系统总体设计、代码编写、系统配置以及数据存储、功能模块设计等。设计的基本原则是系统性、可靠性、灵活性以及经济性。

系统总体架构

系统总体架构如图4所示,客户端(带Silverlight插件的浏览器)通过互联网或局域网访问服务器,服务器上通过WCF服务访问数据库。

系统功能设计

整体上系统划分为四个功能模块,包括用户信息管理、医学信息管理、在线考察,以及系统管理。系统将用户管理与系统管理加以区分,由系统管理员对用户实施管理,而硬件系统维护工作则由系统管理完成。

系统数据库设计

Microsoft在Silverlight中的DataGrid没有支持数据集、数据表(DataSet, DataTable),这对于数据显示来说是十分不便的,而客户端与服务端的高效数据传递并不容易实现,因此,系统直接使用了由加拿大 LASKARZHEVSKY SOFTWARE INC开发的开源软件来实现基于WCF的服务器端和客户端即时信息交互。在Silverlight中通过WCF进行异步数据访问的模式设计如图5所示,执行顺序。

基于WCF服务实现数据访问

建立WCF服务:考虑到返回的数据类型的差异,将WCF数据库访问分为2类:查询数据,更新和删除数据。

由于构建Oracle数据库服务器需要较高的配置,而目前MySQL数据库系统搭建比较容易,占用资源也不多,因此,在开发过程中,灵活地配置了2种模式:调试过程中使用MySQL数据库系统,在后期测试和发布转移到Oracle系统。

由于进行了较好的封装,这种转移很容易实现。

服务引用:设计好数据库存取服务代码(dataAccess_wcf_serviceRef.svc,代码源文件为dataAccess_wcf_serviceRef.svc.cs)之后,在项目文件中添加服务引用。

得到服务:dataAccess_ServiceReference。

表2 Silverlight客户端数据库访问技术比较

图4 系统总体架构

图5 WCF异步访问数据库模式

系统实现效果

整个考试系统包含了用户管理、权限认证,试题与试卷资源建设与维护,考试过程控制和统计分析、信息反馈等四大部分,分别由各自的数据库支持,在线考核时每个用户使用“富”浏览器客户端远程登录考核系统,动态生成不重复的整套考核试卷,每个题目都以一个单独的窗口临时生成。

考核系统实时记录被考核对象的每一个电子动作,并将纪录即时发往相应数据库纪录保存,待考核结束或计时结束后立即产生考核结果。

随着校园网络的高速发展,网络规模不断扩大,网络在线考核平台已成为校园网的一个重要应用部分,替代旧的考核机制在医学领域得以广泛应用。传统纸质试卷中,图片只能单色显示。而微生物学、病理学、诊断学、解剖学、影像学等学科中,可放大的彩色图片能更真实直观准确地呈现试题。在线考核系统可提供大体结构、显微结构、免疫ELISA法进行的微生物革兰氏染色结果等涵盖形态学、X片判读、心电图等专业彩色显像技术。为广大学生提供“灵活、方便、科学、公平”的学习测评服务。通过在线考核系统对学生学习进行考核,了解学生学习效果,为改进教学提供了依据。实现了网络题库的及时更新和维护,也保证了试题更新满足教学的要求。相对纸质化的考试而言具有省时、省力、存储方便等优点。当然,由于此项工作实施还处在试点起步阶段,还有很多细节需要补充,但在校园网络应用和发展上指出了一个新的方向。

猜你喜欢

原型客户端数据库
包裹的一切
如何看待传统媒体新闻客户端的“断舍离”?
《哈姆雷特》的《圣经》叙事原型考证
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
数据库
论《西藏隐秘岁月》的原型复现
数据库
数据库