APP下载

将Web作为中间层服务选课系统的设计与实现

2013-04-03张志华张栋峰

中国现代教育装备 2013年5期
关键词:中间层客户端服务器

张志华 张栋峰

1.北京北大方正软件技术学院 河北廊坊 065001 2.华北电力大学教务处 河北廊坊 065001

1 原有选课系统存在的问题

随着招生规模和选课容量的扩大,原有选课系统已不能满足现在的需要。特别是当学生大量集中于某个时间段内选课时,系统访问量急剧增加,这对于提供Web应用的服务器而言,CPU;I/O处理能力成为瓶颈[1]。并且,随着用户数量的增加,给用户有限的时间进行选课,使得矛盾更加突出,容易造成系统拥堵,服务器无法响应等问题。

2 选课系统的体系结构

通过对选课过程分析,发现选课过程中大量时间是学生在浏览一些与自己课程相关的信息,其他课程及相关信息不是有效信息,被使用的频率极低。因此,我们在设计过程中应着重考虑以下问题:细分上述访问类型,过滤掉无效访问和数据传输;增加人性化设计、更好的信息提示;提高选课系统的效率,使选课系统更加方便易用。开发服务器、客户端的模式,并将Web作为中间层服务的选课模式[2](如图1所示)。其目的是通过减少单次使用时间,减少服务器连接次数,从而减少并发几率,提高服务效率,提高系统的可用性。

图1 选课系统的体系结构

3 将Web服务作为中间层服务的特点

其主要目的是:分类处理数据以便减少数据传输量。经过分析,根据对数据变动频率的分析,选课系统中的数据可以分为两类:(1)频繁变动的数据,例如:选课学生使用的密码,每次选课后变动的课程。(2)非频繁变动的数据,例如:课程信息,经过排课后,某些课程可能因为一些特殊原因需要调整上课时间、地点、任课教师等。而学生的基本信息,包括学号、姓名、班级、专业、院系等,课程编号、名称、学时、学分、教室、地点等信息在选课期间基本不会发生变动。

把这两类数据分类处理,分别采取不同的处理方式,使经常变动的数据能够随时更新,不常变动或基本不变的数据定期更新。经过分类处理,从而减轻单次处理大量数据的压力。提高用户登录使用系统的效率。其数据流程图如图2所示。

图2 选课系统数据流程图

4 选课系统的主要模块设计

4.1 中间层服务设计

为了利用Web服务,我们设计了几个Asp服务页面作为中间件,通过网页连接数据库进行身份验证、数据提取、选课数据提交等(如图3所示)。

图3 中间层服务设计

在Web服务的中间层设计中,由于将系统数据进行了特殊考虑,因此,通过中间层传递的数据非常少。经过分析,传统选课系统也采用3层或多层的结构设计,但中间层要承担所有数据的转发传递工作,因此,运行过程中的传输速度慢,出现拥堵就难以避免。我们设计Web服务的中间层,执行功能包括用户身份验证和选课课程信息的提取,这个过程中传递的数据经过了严格的限制,每一个用户登录系统一次,通过Web中间层传递的数据不超过150个字符,这样,中间层服务就极大地提高了单次验证用户和提取用户选课数据的效率,减少了登录用户排队等待服务的时间,使得用户登录速度加快。用户一旦通过Web中间层的用户验证后,连接断开,提交之前不再连接中间层。经过统计,登录选课学生一般选课时间5~30分钟。以往我们限制学生选课的登录时间,因为登录时间越长,占用服务器资源越多,现在不仅不限制,还希望不要太短,不要频繁登录,减少Web中间层服务器的连接压力,同时学生登录以后有一段时间的斟酌考虑,比较、调整也需要留有时间,因此,这样的设计契合了学生的需求,也给系统运行带来好处。

4.2 中间层下载文件设计

经过分析,那些基本不变或变动较少的数据采取定期更新方式,打包以后直接下载给用户使用(如图4所示)。

图4 中间层下载文件设计

Web服务器上的本地数据库文件,通过Web服务器上的SQL Server服务器进行数据调度更新,更新定期进行。具体过程如下:

步骤1:利用Web服务器上独立运行的SQL Server服务器来调取数据。SQL Server服务器远程调取数据库服务器上的数据,写入本地Access文件,供客户端下载使用。SQL Server服务器中建立了一个本地包,调度本地包,使本地包能够每天执行一次,防止选课期间基础数据(如任课教师、上课时间、上课地点等)信息更改,使学生每次登录时下载使用的数据保持最新。

步骤2:在Web服务器上的SQL Server服务器中建立本地包,定期执行文件压缩。为了减少网络上传输的数据量,压缩过程非常重要,没有经过压缩的Access数据库文件大小为19 M左右,经过压缩,大小为430 k左右,无论在局域网还是在广域网,400 k大小的文件下载都不会耗费太长时间。

4.3 客户端程序设计

客户端应用程序能够弥补Web程序设计的不足,充分发挥本地资源调用的优势,通过客户端程序,完成数据库文件压缩包的下载,本地解压缩,动态创建本地数据库连接,并按照方便使用的方式显示课表。由于课程信息都从本地离线数据包中读取,因此不用与远程数据库连接,减少网络数据传输流量,并充分发挥本地应用程序响应速度快、界面易于构造的优势,给选课用户更好的体验和更加丰富的信息显示(如图5所示)。

图5 客户端程序设计

5 选课系统主要模块的实现

5.1 客户端使用的本地数据库文件下载过程

此过程完成网络连接的测试,数据文件的下载,数据文件的解压缩,得到本地数据库文件。然后立即删掉压缩文件,避免给使用者的机器留下临时文件。当进度条填满时,开始调用登录界面(如图6所示)。

图6 客户端登录界面

登录主要完成的任务是验证学号、密码是否有效。其数据传输过程如图7所示。

图7 身份验证过程

由于用户名、密码传递没有直接的用户输入,而是通过客户端程序推送过来,在进行数据传递的过程中,客户端程序首先对输入字符进行检查,不符合规范的输入,或异常的字符可以进行过滤,保证服务器不会受到注入式攻击。并且由于使用者不能直接看到中间层服务器的服务地址,无法直接通过网页调用,所有连接中间层服务器的操作都是通过客户端来实现,因此屏蔽了无效和多余的访问,保证了服务器的服务效率和安全。

服务器页面中调用服务器存储过程进行用户身份验证。验证结果通过,将返回一个字符串,否则返回错误信息(如图8所示)。

图8 验证过程及返回信息的过程

把返回的字符串按照4位1段进行分析,得到14个ID号,然后在本地客户端中查找到这些ID号代表的课程信息,从本地数据库中查询。

通过本地数据表,把所有服务器中本学期选课需要显示、查询的基本数据都已经在本地构造出来,这样就能够在学生选课过程中显示需要的各种信息,能够使选课进行过程中原来需要请求数据库服务器的网络访问回避了,从而使服务器的访问次数减少,原来需要网络传输的数据量也不需要,因此,学生在登录进选课服务器以后的选课期间,实际选课系统是不连接数据库的,相当于一个离线的系统。并且,本地数据的存取操作极大地提高了系统的执行效率,不会有速度慢、延迟的情况出现。

经过这样设计的选课过程,最大限度地减少了网上通过Web应用传输的数据,通过充分利用文件服务的优势,将本来需要大量在Web应用中内部传递的信息分离出来,只留下关键数据在Web应用中传输,从而保证了Web应用的响应速度,极大地提高了选课应用程序的效率。并且,经过这类结构设计的选课模型,把学校人数、课程门数等传统系统中非常影响系统运行效率的因素减到最少,由于大部分选课客户端都运行在校园网内的局域网环境之下,因此,数据传输很少出现延迟和拥堵。

目前,我们经过几次选课测试,出现拥堵次数的时段极大地减少,仅在极端的情况下才会出现;比如,选课开始时,由于开始时间确定,并发几率增高,登录验证稍有延迟,另外就是选课的退补选阶段,由于此阶段采取先选先得的原则,因此会出现短时拥堵的情况。但不会影响整体实施效果。

5.2 客户端的选课过程

使用Delphi开发的客户端程序连接本地数据库进行数据及界面处理时能够发挥Delphi的开发优势,在课程查询,课程选择时能够更加人性化,操作方式更加方便,界面也更友好(如图9所示)。

图9 选课主界面

5.3 选课数据提交过程

选课结束,要进行数据提交,此过程和登录过程刚好相反,要在本地应用程序中对所选课程进行处理,将所有已选课程的ID号排列好,按照选课用户设计的选课志愿顺序进行排列,组成一个单独由课程ID号组成的长字符串,调用Web服务器上的Asp页面进行数据提交(如图10所示)。

图10 选课数据提交过程

提交的界面如图11所示。

图11 提交界面

至此,一次选课登录过程结束。

6 结束语

经过封装的数据传递过程,保证了数据传递的安全性,使得中间无论是网络还是其他原因造成的意外,都会保证数据传递的完整。由于数据处理的操作大部分是在数据库服务器进行,中间只是进行数据传递,因此,处理方式的一致性使得系统具有良好的可维护性。如果选课的规则改变,或有程序处理方式需要更新,只需要在服务器端进行更新,客户端不受任何影响。使得客户端C/S应用程序的缺点得以回避。

数据库结构保证了选课过程中对数据传递量的精确控制,使通过选课过程传递的数据量尽可能少,保证了整个系统的连接数据库、提取数据库中数据的效率。这也是客户端设计过程中的关键点。

[1] 上海交通大学选课系统[EB/OL].[2006-03].http://pec.sjtu.edu.cn/.

[2] 朱静丽.基于WEB的选课系统的设计与实现[D].广州:华南理工大学,2007.

猜你喜欢

中间层客户端服务器
Zn-15Al-xLa中间层对镁/钢接触反应钎焊接头性能影响
服务器组功能的使用
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
PowerTCP Server Tool
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
如何利用合作教学激发“中间层”的活跃
浅谈通信综合营帐数据中间层设计原则与处理流程