您的位置:首页 > 其它

实训项目第一周1

2017-05-14 12:20 183 查看
首先,做这个项目的第一步是了解它,这样才能在以后的实际编写中做到心里有数。

我们小组选择的项目为“基于信号处理的在线云评测系统OJ(Online Judge)”,OJ(Online Judge)是一个在线的程序评测系统,学生通过该系统可以充分锻炼自身的编程水平。以往的评测系统往往存在资源分配不均等多种问题,我们团队希望在过去的基础上,在服务器底层进行优化,通过对服务器处理资源的合理使用,以及使用轮询队列对大量并发请求的处理,再通过系统信号同步进行精确的判断,创建一个更为优质的在线云评测系统。

要完成的目标

通过小组团队合作完成本次“基于信号处理的在线云评测系统“实训,熟练掌握Python、HTML和JavaScript语言,了解并会使用当前流行的架构搭建Web应用,最终实现一个B/S架构的在线程序评测系统。通过不断的迭代优化,创建一个效率表现优异的在线云评测平台,能够处理大规模的程序处理请求并准确返回结果,并具备一定的安全性。

系统功能主要划分为以下四个功能,具体业务需求描述如下:

1.评判内核

处理客户端传送来的程序运行请求,基于服务器使用的Linux系统,通过信号同步来获取每一个线程的运行结果,调用Linux内核的API来操作,监视每一个线程直到其运行结束,对于返回状态进行逻辑判断,获得该线程的真实终止信号。对于用户提交的程序返回合适的结果,并对程序正确性进行判断。

2.保证系统安全性

安全性是OJ最大的问题,因为需要用户在我们的系统上编译程序并运行,这时要防范恶意代码对系统造成影响。我们将会对用户提交的代码进行安全性检测,要用低权限运行程序、有可能的话使用沙箱限制更多的权限;保证网站安全,防sql注入等;防范编译器修改:去掉不安全的.h和obj;进行源代码分析,定义一些危险关键字,实现关键词过滤。

3.建立队列保证系统在大流量下正常使用

为应对未来系统投入使用之后,用户量增大,或者一桶作为做大型比赛的载体,需要在服务器要做队列,并实现多服务器评判。

4.前端建设

建立一个美观简洁的前端界面,保证系统有一定美感的同时,清晰的向用户提供我们的题目列表,以及提供给用户直观方便的做题界面。

经过讨论我和另一位组员贾鹏林组成一队来负责数据库方面的搭建。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: