Из нескольких предоставленных вами сведений следует, что вы имеете административный контроль над самим сервером, поэтому мое предположение делает это предположение.
Я бы решил это как пакетную систему. Веб-сервер принимает загрузку исходного файла, процесс опрашивает каталог отправки, обрабатывает файл и затем отправляет результат в другой каталог, который веб-приложение опрашивает, пока не найдет результат и не отобразит его.
Самое интересное в том, как безопасно справиться с исполнением.
Моя операционная система - FreeBSD, поэтому я бы настроил предварительно сконфигурированный jail (не путать с vanilla chroot jail), который будет компилировать, запускать и сохранять выходные данные. Затем для каждой отправки исходного файла запускайте чистую копию тюрьмы для каждого выполнения с копией исходного файла внутри.
При условии, что jail / dev сокращен почти до нуля, ограничения системных ресурсов установлены безопасно, и что трафик не может маршрутизироваться из тюрьмы (связанный с unroutable адресом или просто firewalled), мне лично было бы удобно запустить это на сервере под моим руководством.
Поскольку вы используете Linux, я бы исследовал User Mode Linux или Linux-VServer, которые по своей концепции очень похожи на тюрьмы FreeBSD (я никогда не использовал их сам, но читал о них). Есть несколько других таких систем, перечисленных здесь .
Этот метод намного более безопасен, чем ванильная тюрьма для chroot, и он намного легче, чем использование полной виртуализации, такой как qemu / kvm или VMware.
Я не программист, поэтому я не знаю, какую AJAX-y вещь вы могли бы использовать для опроса результатов, но я уверен, что это можно сделать. Как администратор, я бы посчитал, что это интересный проект для участия. Веселитесь. :)