HUSTOJ随笔7-SAE部署

1 篇文章 0 订阅
1 篇文章 0 订阅

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的维护工作量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值