加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

HUSTOJ随笔7-SAE部署

发布时间:2020-12-17 01:02:18 所属栏目:安全 来源:网络整理
导读:SAE(sina application engine) 是新浪的云计算平台,最大的特点是跟LAMP平台几乎无缝的兼容性。 因此在SAE上部署HUSTOJ的Web部分是完全没有问题的,只需在db_info.inc.php设置 static ?$OJ_SAE =true ; 然后参考 http://code.google.com/p/hustoj/wiki/HTTPJ

SAE(sina application engine) 是新浪的云计算平台,最大的特点是跟LAMP平台几乎无缝的兼容性。

因此在SAE上部署HUSTOJ的Web部分是完全没有问题的,只需在db_info.inc.php设置

static ?$OJ_SAE=true; 

然后参考

http://code.google.com/p/hustoj/wiki/HTTPJudge

进行judged的配置。

这里需要说明的是,新浪云平台具有较多的安全限制,支持的计算平台仅限web,并不能支持编译、运行、监控等操作。

所以,必须另行架设判题机运行judged/judge_client,但是由于SAE已经提供了公网Web出口,所以对于没有自己互联网出口的学校来说就是非常难得的资源。

而judged可以在内网运行,甚至可以不必24小时在线,比如只在8-16点(上班时间)在线,老师可以用自己办公室的机器上装个虚拟机的方式来解决。

实际上HTTPJudge的运行机制正是为SAE量身打造的。

因为传统的judged必须连接mysql来轮询和完成任务,而SAE没有提供外部网络连接mysql的机制,这就逼迫我思考如何让judged能够连接到SAE的数据库上去。

因为SAE唯一的对外出口就是Web(HTTP),因此在HTTP基础上实现一套判题任务的查询、更新机制就是最直接的答案。

当然有很多标准可以采纳,如WebService,XML-RPC,json-rpc等,但是由于我比较懒、也比较笨,所以就自行定制了一套最为简化的实现,类似Unix的管道流的文本界面。


此外,由于SAE不支持文件操作API,所以类似图片上传等功能都不能正常运行。有能力的用户可以自行修改代码,使用SAE的Storage功能实现模拟文件操作。

没有开发能力的用户可以在本地搭建完全相同题库和数据的OJ,在加题后采用SAE的SVN界面进行上传同步,可以最大化减少SAE的维护工作量。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读