Новый клиент-серверный протокол
Новый клиент-сервер предполагает передачу сообщений на языке xml по протоколу http.
Преймущества
- работа с базой данных переносится полностью на сторону сервера.
- расширяем
- возможно написание параллельного тестировщика, так чтобы один поток запрашивал несколько задач, а затем запускал много потоков (по числу задач), которые бы получали исходный код, тестировали задачу и отсылали решение. Это позволит получать информацию о задаче (лимиты времени, памяти) один раз, параллельно запускать винкилл.
Описание протокола (однопоточный httpClientServer)


Проблемы
- следующую информацию о компиляторах целесообразно хранить в конфиге на клиенте: название bat-файла, расширение файла. Сейчас эта информация хранится в базе данных и запрашивается с сервера, тогда как сами файлы тестировщика лежат на клиенте, и с сервером никак не завязаны.
- в таблице clients базы данных используется поле ip для идентификации клиента, таким образом невозможно запустить несколько тестировщиков на машинах с одним Ip
- в таблице submits вместо поля host логичнее писать поле с id клиента из таблицы clients