APP下载

基于三层C/S架构的高校业务信息管理系统轻量级数据传输框架的设计与实现

2017-08-07刘磊施勇刘庆俞

淮南师范学院学报 2017年3期
关键词:网络连接服务器端客户端

刘磊,施勇,刘庆俞

(淮南师范学院网络信息中心,安徽 淮南 232038)

基于三层C/S架构的高校业务信息管理系统轻量级数据传输框架的设计与实现

刘磊,施勇,刘庆俞

(淮南师范学院网络信息中心,安徽 淮南 232038)

在充分调研本校教务、学工、就业等业务信息管理系统基础上,重点针对各业务系统的数据传输管理模块进行研究,设计一套独立的基于三层C/S架构的轻量级数据传输框架,为研发业务信息管理系统提供基础数据传输功能的支持。

高校业务信息管理;轻量级架构;数据传输;C/S

1引言

作为各类业务信息管理系统的基础功能,数据传输框架的性能优劣直接决定着整个业务系统的稳定性和系统响应速度。本文首先针对教务、学工、就业等业务信息管理系统展开调研,发现这些业务系统的底层数据传输模块在结构和功能方面具有一定的共性,存在将其与上层的业务逻辑处理模块剥离的可能性。因此,本文旨在设计一套独立的轻量级的数据传输框架,简化数据传输管理模块,实现业务逻辑和数据传输的功能剥离,并以此研发具备稳定高效数据传输能力的原型系统,从而为学校自主研发各类业务信息管理系统提供基础平台支持。

2系统平台架构分析

目前,高校主流的业务信息管理系统大多基于B/S或C/S架构,①李云云:《浅析B/S和C/S体系结构》,《科技之友》2011年第1期,第6-8页。也有部分系统采用B/S和C/S相结合的交叉架构。②谢伟明:《基于B/S和C/S混合架构的教务管理系统的设计与实现》,《科技风》2017年第2期,第39-40页。候杰:《基于C/S、B/S混合模式的高校试卷管理系统的设计与实现》,《电脑知识与技术》2016年第23期,第54-55、58页。

C/S架构(Client/Server),是由客户机与服务器合作完成的系统平台架构。传统的C/S架构是两层结构,其中的表示层与功能层包括显示逻辑和业务处理逻辑部分被放在客户端,而数据层包括数据处理逻辑和数据库放在服务器端。两层C/S架构中,在服务器和客户机上各自运行应用程序,服务器主要承担对数据库的管理,客户机完成业务处理和显示功能。后来,为了使系统的逻辑结构更加清晰,提高系统和软件的可维护性和可扩展性,又发展出三层结构的C/S架构,③唐玉琦等:《三层c/s模式体系结构研究》,《科技咨询》2009年第9期,第5页。其中将功能层的业务处理逻辑部分转移至服务器端,与服务器端数据层分别放在不同的服务器中,这样能够最大程度地适应客户机数目的增加和处理负荷的变动。

B/S架构(Browser/Server)是WEB兴起后的一种系统架构,WEB浏览器作为客户端最主要的应用软件。B/S架构也是一种具有三层结构的系统架构,这种架构统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

由于高校业务信息管理系统主要面向校园网用户,所有终端都处于一个局域网内,更多是集中于业务部门的信息管理人员,网络状况相对单一,且用户量较少,系统无需考虑在Internet网络中为海量用户提供服务时的服务器负载问题;为最大程度满足用户个性化需求并提供强大的交互功能,需要设计功能丰富、结构灵活的客户端软件。综上两方面因素考虑,本文将采用C/S架构作为轻量级数据传输框架的实现架构。

3系统总体设计

图1系统整体框架图

本文首先对业务信息管理系统进行了整体设计,如图1所示,系统采用三层C/S架构实现,在服务器端,业务处理和数据管理分别搭建在不同的服务器上,这样做一方面可以有效降低数据库访问量,从而提高数据安全性;另一方面将业务处理与用户访问管理功能移至服务器前端能够满足多用户实时访问需求。

系统采用分层结构设计,包括服务器端的业务逻辑层、数据传输层及客户端的表示层与数据传输层,其中主要将数据传输层与业务层、表示层进行分离并进行模块集成。本文重点研究的轻量级数据传输框架主要针对数据传输层,具体包括服务器端的网络连接管理模块、数据传输模块、用户身份认证模块及客户端的网络连接模块、数据传输模块、用户登录模块。这种数据传输框架主要优点如下:

1.轻量级数据传输框架中的“轻”主要归功于系统的研发框架———Qt对于网络连接管理及数据传输良好的性能支持。Qt框架中的Qt Network模块包含众多支持网络编程的类,能够为研发人员提供简便、高效、稳定性好的网络管理方式。本文在此基础上进一步优化封装,使得仅通过设计网络连接管理模块、数据传输模块、用户身份认证模块等少数几个功能模块就能实现对系统高质量的网络支持。

2.本框架实现了数据传输层与上层业务逻辑层的分离,保持了各层间相对独立的松耦合状态,使系统变得灵活且易维护。框架通用性强,重用性高,通过设计高效且通用性强的数据传递接口函数,各类业务信息系统研发人员能够专注于业务流程的设计研发,无需考虑底层数据的传输,从而提高研发效率。

3.1服务器端

3.1.1网络连接管理模块

此模块主要功能是负责管理用户的网络连接,一方面通过采用端口监听机制实时监听用户的连接请求,当用户请求连接时,该模块负责初始化网络连接环境,分配系统资源;另一方面实现网络访问控制功能,通过设计网络连接池控制用户连接数量,并通过优先级确定网络连接响应顺序,从而实现网络连接的高效管理。系统在初始化阶段根据不同用户身份设定网络连接优先级P_User,配置网络连接池Connection_Pool并设置最大连接数量Max_ConnectionNum,设置等待连接请求等待队列L_Wait。具体算法实现过程如下:

Step1.系统初始化网络环境,监听网络连接端口。

Step2.若有新连接请求New_Connection,判断Connection_Pool内活动连接数是否超过Max_ConnectionNum。若未超过,则转Step6;否则,执行下一步。

Step3.将新连接的优先级P_User_New与Connection_Pool内活动连接的P_User_Current进行比较。若P_User_New高于所有P_User_Current,则转Step5;否则,执行下一步。

Step4.将New_Connection添加至L_Wait中,并将L_Wait按照优先级由高至低排序。

Step5.断开P_User_Current值最小的网络连接,将连接资源让给New_Connection,并将P_User_Current添加至L_Wait中。

Step6.建立连接,分配网络资源。

3.1.2数据传输模块

此模块是轻量级数据传输框架的核心模块,主要功能是通过封包、拆包、校验等操作保证数据传输的完整性和稳定性,具体功能包括:一是负责接收客户端发送来的数据,并对其进行数据的拆包、提取等处理,获得控制信息和数据信息。二是接收业务处理模块返回的数据结果并进行封包处理,再发送至客户端。

由于本文采用的是基于Qt框架的QTcpSocket实现数据网络传输功能,QTcpSocket在发送数据时可以不受数据包大小限制,一次性将数据全部发出,而在接收数据时,由于受到本地数据缓冲池等因素影响,无法一次性接收所有数据,因此需要进行多次接收。根据QTcpSocket的上述特点,本文通过在源数据的头部添加数据长度信息Length,以及在数据包尾部添加结束符Check_bit来对发送数据进行标识。一个完整的数据包结构如下:

“Lenght::长度值;源数据;Check_bit”

由于数据发送过程较简单,其发送算法不做赘述。这里,仅对数据接收算法进行分析,具体算法实现过程如下:

Step1.接收第一个数据包,读取本次接收数据的总长度值Length_Total,并记录当前接收数据总长度值Length_Current。

Step2.继续接收数据,统计Length_Current,判断数据是否包含Check_bit。若未包含,则继续执行Step2;否则,执行下一步。

Step3.判断数据是否接受完整。若Length_Current=Length_Total,则转Step5;否则,执行下一步。

Step4.丢弃此次接受的数据,并发送错误信息;Step5.对接收数据进行拼包处理,提取源数据。源数据中由控制信息和数据信息两部分构成。其中控制信息分为身份认证信息和业务处理信息两类,若是身份认证信息,则通过用户身份认证模块进行身份认证;若是业务处理信息,则根据其具体类型将数据信息提交给业务层对应的业务处理模块进行处理。

3.1.3用户身份认证模块

此模块主要负责对用户进行身份验证。传统C/ S架构中,一般会将此模块归于业务层中,本文之所以将其移至数据传输层,作为数据传输框架的一部分,主要是为了在业务服务器前端屏蔽掉不必要的网络连接,从而降低业务服务器运行压力,以保证业务服务器能够专注于业务逻辑的处理。

当新的网络连接请求到来时,用户身份认证模块首先提取用户身份信息,若通过认证则保持连接,将控制权交给业务层,等待用户的业务处理请求;若未通过认证则反馈客户端并断开连接。为了能在数据传输层完成用户的身份认证,此模块需要从数据库中拷贝一份用户信息,当数据库中的用户身份信息发生更改时,同步更新拷贝数据。

3.2客户端

3.2.1网络连接模块

此模块主要负责管理客户端自身的网络连接,包括发送网络连接请求、监听连接状态以及断网重连等功能。客户端软件在运行起始阶段会完成此模块的加载,初始化系统的网络运行环境,并分配网络资源。模块在加载完成后,通过网络嗅探功能,用户可以搜索到局域网内的其他网络主机信息,通过选定其中条目进行连接,也可以通过指定Ip地址和Port端口远程连接到服务器。

3.2.2数据传输模块

此模块也是轻量级数据传输框架的核心模块,主要负责客户端的数据接收和发送处理,具体实现算法与服务器端的数据传输模块类似。此模块会管理一块数据缓冲区暂存从服务器端接收的数据,由于缓冲区容量较小,因此当发送来的数据量较大时需要进行多次接收,并通过对数据的拆包,以及对长度信息和结束符的校验保证数据的完整性。如果数据校验失败,则自动向服务器端发送重发请求,并反馈用户错误信息。

3.2.3用户登录模块

此模块主要负责客户端用户的身份信息管理和系统登录操作,包括新用户注册、用户登录两方面功能。用户在进行身份验证过程中,模块会暂时占用数据传输接口资源,此时用户无法进行业务操作;当完成验证以后,此模块会释放数据传输接口的控制权,移交给上层模块使用。

4系统实现

本文以轻量级数据传输框架为基础,根据本校网络运维业务需求,研发出一套网络信息运维管理系统,系统主要为网络运维管理人员提供运维信息的存档、统计、查询等功能,并以数据可视化手段予以展示。系统由服务器端软件和客户端软件两部分构成,运行界面如图2、3所示,系统以Qt作为系统软件开发平台,运用其提供的网络管理类中丰富的网络连接及管理函数实现数据传输框架,并通过设计功能完备的中间接口函数为上层模块提供支持,成功将系统的数据传输层与业务逻辑层的进行了分离,实现了系统各模块间的独立,研发人员在业务逻辑层仅需考虑业务信息的处理,无需关心网络层具体的数据传输控制,提高了系统的研发效率。

图2服务器端运行界面

图3客户端运行界面

图4系统性能图

由于本系统属于小型业务系统,主要面向部门内部管理人员,用户数相对较少,业务数据量不多,业务服务器运行压力较小,因此本系统暂将数据库服务器与业务服务器搭建在一台物理服务器上。我们重点对系统(主要针对客户端)的响应速度和发送数据包成功率进行了测试,结果如图4所示,在服务器发送数据量相同情况下,通过对比不同并发访问人数的系统响应时间可以发现,当并发用户人数小于10人时,系统响应时间变化不大,系统响应速度普遍较快,且数据包发送成功占比较高;当超过20人时,系统响应时间增长较快,系统响应速度相对较慢,且数据包发送丢失占比也会相对增大。因此,就目前结果而言,本文设计的轻量级数据传输框架能够满足一定的业务需求,但对于大量用户并发操作的支持还有待进一步优化。

5结语

本文通过对本校在用的各类业务信息管理系统的深入研究,设计出以三层C/S架构为基础的轻量级数据传输框架,成功将网络连接管理与数据传输功能从业务系统中剥离出来并进行了模块集成。本框架不仅能保证系统稳定的数据传输和快速响应,而且能够为高校自主研发各类业务信息管理系统提供基础数据传输的平台支持。然而,由于各类业务的处理流程存在着差异,本框架在对业务逻辑层提供支持时需要进行功能上的完善,同时需要优化针对大量用户的并发响应。因此,怎样设计通用性更强、模块化更高以及并发处理更优的中间接口将是后续工作重点研究的内容。

Design and implementation of lightweight data transmission framework based on C/S architecture for university business information management system

LIU Lei,SHI Yong,LIU Qingyu

Based on the full research of our school's educational administration,student administration, employment administration,and other business information management system,this paper centers on the data transmission management module of each business system,and designs an independent lightweight data transmission framework based on three layer C/S architecture,to provide the basic data transfer function support for the research and development of business information management system for different business backgrounds.

information management of university business;lightweight architecture;data transmission; C/S

TP311.5

A

1009-9530(2017)03-0088-04

2017-01-13

刘磊(1987-),男,淮南师范学院网络信息中心助理工程师。

猜你喜欢

网络连接服务器端客户端
Linux环境下基于Socket的数据传输软件设计
个性化设置 Win10 的网络连接信息
如何看待传统媒体新闻客户端的“断舍离”?
运动想象的大尺度动态功能网络连接
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用