云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 学生在线考试系统的设计与实现 - 毕业论文 - 图文

学生在线考试系统的设计与实现 - 毕业论文 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/4/27 21:02:23

(三)cgi与f-cgi原理简介

在说明FastCGI之前,先说说CGI的前世今生。CGI 即Common Gateway Interface公共网关接口。CGI后端服务器程序的原理是:每次当客户请求到来时(即请求CGI),http服务器或反向代理服务器就会fork+exec生成替换一个新的CGI进程处理客户请求。当CGI执行完毕后,该CGI子进程将会被服务器进程kill掉。也就是说由服务器管理着处理客户请求的CGI子进程。显而易见,当高并发连接环境下,这样的工作模式是很受程序员诟病的。因为频繁地创建和销毁子进程将加大系统的开销和负担。

FastCGI(即fcgi,后文将用fcgi简言之),本质上是对CGI的改进。其工作原理是将用于处理客户连接请求的子进程,即CGI解释器进程长期驻留于内存中并因此获得在性能上的提高。fcgi克服了CGI的弊病,CGI解释器的反复加载是CGI性能低下的主要原因,相反,用fcgi进程管理器调度管理常驻在内存中的CGI解释器会明显提高服务器的性能。

fcgi完整的工作过程如下所述:

首先,fcgi进程管理器( nginx 下 fcgi 与反向代理服务器是分离的)在http服务器或反向代理服务器启动时即载入内存。

接着,fcgi进程管理器进行初始化,随后同时启动多个CGI解释器进程,等待来自客户端的连接。

紧接着,当客户端连接请求到达Http服务器或反向代理服务器时,fcgi进程管理器选择并连接到一个CGI解释器进程。由我们的Http服务器或反向代理服务器将CGI环境变量和标准输入重定向到fcgi子进程。fcgi子进程执行完处理后将标准输出和错误信息重定位到客户端浏览器。这就是本系统客户端和服务器交互通信的原理。

当fcgi子进程关闭连接时,请求便告处理完成。fcgi子进程接着等待并处理来自fcgi进程管理器(运行在Http服务器或反向代理服务器中)的下一个连接,而不急着退出系统,换出到磁盘。而CGI进程在传统的CGI模式中,执行完后就不存在了。

显而易见的是,CGI相对于fcgi相当慢。每一个Web请求到来都要生成一个子进程去处理请求,完成请求时又被主进程析构掉。使用fcgi,所有这些都只在nginx主进程启动时发生一次。一个额外的好处是,持续数据库连接可以工作并运行良好。

简单地说,fcgi服务器优于cgi服务器。因为每次有新的客户链接请求到来时,fcgi使用的是多线程处理方式去处理请求,而cgi则是fork+exec复制替换一个进程去处理请求,存在多进程的开销和负担。

(四)memcached简介

Memcached 是一款分布式内存对象缓存软件,主要用途是动态Web应用中,减轻数据库负载。它通过将已经访问过的数据和对象缓存于内存中,减少对数据库的读访问次数,提高访问数据库的速度。Memcached内部数据结构使用一个存储键值对的哈希表(HashMap),用C语言编写的守

4

护进程(daemon ),而客户端可以采用任何语言编写只需要遵循memcached约定的应用层协议即可与memcached服务器端守护进程通信。因此,memcached具有极强的分布式缓存的能力。memcached的存储机制是,其API使用循环冗余校验计算出存储键值,基于处理哈希冲突的方式寻找出合理的存储数据的服务器,当内部HashMap表格满后,采用LRU(最近未使用的算法)替换出那些不太重要的数据存放在内存中。大多数web应用架构都是将服务器端的重要数据存储在数据库中,把客户端用户请求的数据从数据库中读取并显示在客户端浏览器界面。但对于那些对数据集中访问的大量客户端请求,服务器端从数据库取数据的速度和性能会非常糟糕,最终导致服务器端和客户端响应时延加长,网站访问速度极慢。memcached就可以非常好的解决这个问题。从前文的介绍中不难得出,memcached是一款性能极高的分布式缓存服务器,其主要用途是:通过缓存数据库查询结果,减少对数据库访问次数,提高动态Web应用的响应速度。

本文只是引进对memcached的使用,并非是一个对memcached的历史、发展、使用目的、用途、通信机制和原理、存储算法和优化、安装配置使用的完全指南。更过这方面的细节,可以关注网上或图书中关于memcached的详细介绍。

总而言之,与memcached通信是十分简单可行的,因为他们遵循的是应用层的协议,只要遵循这种协议通信机制,任何语言都可以和memcached服务器端通信。比如:Perl、 PHP、Python、Ruby、 C#、C/C++、 Lua。

这就是本系统选择memcached作为缓存机制的最好诠释。

(五)mysql数据库简介

Mysql数据库是一种开源关系型数据库(RDBMS)软件,后被oracle公司收购。mysql广泛使用于应用程序的后台数据库或企业管理日常数据。对于其社区版本(免费版)提供的功能完全足够用于本系统的开发。Mysql在windows、Linux、类unix操作系统下都有对应版本可供安装使用。

5

二、可行性研究

可行性研究是软件进行之前必须做的工作,可行性分析的结果最终决定了是否继续开发这个项目。本系统主要研究了在经济、技术、法律方面的可行性以及在可行性研究阶段,以概括的形式表达对现有系统的认识的工具:系统流程图、数据流图、数据字典。

(一)经济可行性

本系统一定是具有很好的经济效益的,并且所获得的经济效益并不会少于或略高于其开发成本。随着线上线下O2O概念的流行,越来越多的企业或个人经营者都愿意出资将自身的服务挂牌在网上,使之得到良好的宣传、推广、盈利。假设开发系统的周期为21工作日,各个团队的每日平均工资如表2-1统计所示。

表2-1 开发团队 需求分析团队 测试团队 系统设计团队 工程团队的资金流预算 单位:人数/人 工资/元 天数/天

人数 5 10 10 8 日工资 300 240 180 300 工作天数 20 6 8 10 根据以上预算,项目总支出为:8.28w。

一旦上线,则按每日代理的企业和学校等其他需要在线考试的单位所获得的平均报酬为1600/d,那么预估两年后将会获得116.8w的收入,净利润为108.52w。很显然这在两年内的价值已经是一个相当可观的收入了。

(二)技术可行性

当今现有的技术水平以及开发团队的素质对于实现学生在线登录、注册、答题、查询考试成绩以及管理员管理试题、发布试题、批阅试题、发布成绩等功能具有高度可行性。系统

拟采用c++编写后端服务器逻辑处理(即功能),使用nginx作为反向代理服务器以支持高并发大数据处理,获得性能和效率上的可行性。另外,memcached这种高级的缓存技术,在国内外应用早就变得十分成熟。因此,系统在技术上的可行性也就非常明显。

(三)法律可行性

系统在开发过程中完全遵循独立自主的开发流程,开发过程中使用到的一部分技术也是FSF(自由软件基金会)范围的开源软件或工具,不存在知识产权和产品最终解释权的纠纷。项目中的

6

各部分合同也经过法律程序反复校验,所以,系统在法律方面的可行性是顺理成章的。

(四)系统流程图

在可行性分析阶段,主要的图表是系统流程图。该图表是概括的描绘物理系统的传统工具。其基本思想是用图形符号以黑盒子形式描绘组成系统的各个部件(程序、文件、数据库、人工过程、表格等)。系统流程图是描绘数据在系统各个部件之间的流动情况,不是对数据进行加工处理的控制过程。如图2-1。

输入帐号密码处理结果反馈给终端用户反向代理服务器后端集群服务器1后端集群服务器2后端集群服务器n后端数据库

图2-1 系统流程图

(五)数据流图DFD

数据流图是指信息流和数据从数据源点输入开始,经系统各个程序模块之间经变换处理输出到终点的过程中的流动状态的一种图形化技术。数据流图只关心系统做什么,而不关心如何做的问题。不同于系统流程图,在数据流图中的数据和信息流不能经过任何的物理部件。是一种逻辑模型,其很好地描述了系统的各个逻辑功能。这对于计算机专业人员和非专业人员的用户来说,非常便于沟通和反馈。同时,这将在日后的实际开发中起到非常重要的作用,实际的开发必须立足于此。下面是系统的顶层和分层的数据流图展示。

7

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

(三)cgi与f-cgi原理简介 在说明FastCGI之前,先说说CGI的前世今生。CGI 即Common Gateway Interface公共网关接口。CGI后端服务器程序的原理是:每次当客户请求到来时(即请求CGI),http服务器或反向代理服务器就会fork+exec生成替换一个新的CGI进程处理客户请求。当CGI执行完毕后,该CGI子进程将会被服务器进程kill掉。也就是说由服务器管理着处理客户请求的CGI子进程。显而易见,当高并发连接环境下,这样的工作模式是很受程序员诟病的。因为频繁地创建和销毁子进程将加大系统的开销和负担。 FastCGI(即fcgi,后文将用fcgi简言之),本质上是对CGI的改进。其工作原理是将用于处理客户连接请求的子进程,即CGI解释器进程长期驻留于内存中并因此获得在性能上的提高。fcgi克服了CGI的

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com