擅长:python、mysql、java
<p>您提供的少数细节意味着您可以对服务器本身进行管理控制,因此我的建议是这样假设的。</p>
<p>我把它当作批处理系统来处理。web服务器接受源文件的上载,进程轮询提交目录,处理该文件,然后将结果提交到web应用程序轮询的另一个目录,直到找到并显示结果为止。</p>
<p>有趣的部分是如何安全地处理执行。</p>
<p>我选择的操作系统是FreeBSD,所以我设置了一个预配置的jail(不要与普通的chroot jail混淆),它可以编译、运行和保存输出。然后,对于每个提交的源文件,为每次执行启动一个原始的监狱副本,其中包含一个源文件副本。</p>
<p>如果监狱的/dev被削减到几乎什么都没有,系统资源限制被安全设置,并且流量无法路由出监狱(绑定到无法破解的地址或只是防火墙),我个人会很乐意在我负责的服务器上运行这个。</p>
<p>既然您使用Linux,我将研究用户模式Linux或Linux VServer,它们在概念上与FreeBSD监狱非常相似(我自己从未使用过它们,但已经阅读过它们)。还有其他一些这样的系统列出了<a href="http://en.wikipedia.org/wiki/Operating_system-level_virtualization" rel="nofollow noreferrer">here</a>。</p>
<p>这种方法比普通的chroot监狱安全得多,而且比使用完全虚拟化(如qemu/kvm或VMware)轻得多。</p>
<p>我不是程序员,所以我不知道你可以用什么样的AJAX-y来调查结果,但我相信这是可以做到的。作为一名管理人员,我会发现这是一个有趣的项目参与。玩得高兴。:)</p>