Backend обработчик
Для игрового хостинга необходимо написать новый backend обработчик на удаленные сервера.
1. Программа должна слушать определенный порт, принимать запросы и обрабатывать их (сейчас например используется xml-rpc, есть что-то лучше - предложите)
2. Язык разработки значения особого не имеет, главное, чтобы все работало быстро (сейчас используем обработчик на java)
3. По возможности, если это стоит того, программа должна обрабатывать каждый запрос в отдельном потоке (но это не принципиально)
4. Программа должна осуществлять проверку подлинности отправителя (сейчас авторизация ижет через удаленную базу и по md5 паролю, а также используется ограничение по IP, есть что-то лучше - предложите)
5. Список основных команд ниже. Подробности по запросу. Также имеется описание API текущего обработчика.
Список команд:
- запуск и остановка игрового сервера (сейчас просто вызывается внешний shell скрипт)
- установка игрового сервера (несколько этапов)
* создание unix юзера
* создание папки в /home для него
* копирование в эту папку файлов шаблона игры (шаблон - директория с файлами, путь получаем от отправителя)
* создание файла конфигурации (смотрите ниже)
* установка chown на папку юзера (сейчас идет простой вызов chown -R)
- создание и редактирование файла конфигурации:
* берем шаблон файла, в котором необходимо заменить переменные вида %port% (или любой другой шаблон) на параметры из запроса от отправителя
* записать/сохранить файл в определенное место (параметры в запросе - путь и название файла)
* при редактирование просто перезаписываем файл (хотя лучше сделать то, что быдет быстрее)
- обновление игрового сервера:
* просто копируем файлы из папки в папку с игровым сервером (путь передается в запросе)
- удаление игрового сервера:
* удаляем юзера
* удаляем все его файлы
- переустановка игрового сервера:
* удаляем сервера
* устанавливаем сервер
- получение статуса сервера (сейчас идет простой вызов внешнего shell скрипта)
- получение лога сервера:
* берем последние 100 строк из файла лога (путь до файла - в запросе)
- листинг определенного каталога, поиск всех файлов с определенным расширением и возвращение отправителю списка этих файлов без расширения (например поиск в каталоге /home/s1 файлов *.so)
Вроде это все, если не забыл что-то...
Разработка на самом деле не такая сложная :)
Есть вопросы - задавайте.
Просьба указывать сразу примерные сроки, когда можете начать (я не тороплюсь) и примерную стоимость разработки.