LINUX.ORG.RU

Метаинформация и метасерверы, freeciv/skulltag-like: принципы создания


0

1

Сабж. Есть некая FOSS программа, клиент серверная. Ее структура, это несколько взаимодействующих серверов за которые цепляются несколько клиентов. Ну например в разных отделах организации или там в коллаборирующих организациях, и клиенты которые к ним коннектятся. Такой мини грид-мини или мини-облако.

На примере freeciv'а. Есть толпа юзеров которые играют во freeciv, точнее в некий «freeciv». Но у каждого юзера могут быть несколько клиентов и несколько серверов. И юзер может захотеть присоединится к игре идущей в каком то другом месте, и/или подключить к этой игре какие то свои сервера. Если конечно те кто играет в эту игру ему разрешат. Или разрешить подключатся к себе.

Важный момент - в нашем проекте надо аннонсить на метасервер, или еще куда, список «внутриигровых объектов». Например городов и игроков, в терминологии freeciv.

Как это сделано например во freeciv. Есть метасервер. Это сервер на котором сервера регистрируются, создавая список активных серверов и их прав доступа, статуса и пр. Клиенты подключаются к метасерверу, получают список серверов и позволяют запустившему клиент потребителю выбрать - с кем ему играть, и пр.

Проблема в том что этот центральный сервер уязвим. Хорошо когда freeciv - а если клиентов и метаинформации много больше? А у авторов FOSS программы совершенно нет ресурсов содержать сервер метаинформации, тем более его очень желательно криптографически защитить от м***в.

Соотв вопрос. Как бы организовать эту службу метаинформации вообще без сервера под управлением команды разработки нашего «freeciv»? Да и один сервер - это тоже плохо. Нужен механизм.

Например есть гугл-поиск. Он хранит документы со всей сети - если в него закинуть через бесплатную страничку какие то текстовые метатеги, их можно будет найти поиском.

Или например те же бесплатные странички - у того же гугла. Если разместить на них метаинфо о «городах» и проиндексировать гуглом, то другие пользователи смогут найти аннонсы городов и подключится к ним.

Или например есть репозитории типа битбакета или гуглокода. Метаинформацию о «городах» можно хранить в них. При чем необязательно в одном репозитории - скорее наоборот, некая группа пользователей программы может аннонсить туда метаинфу о общедоступных обьектах («городах»).

Или например бесплатные хостинги - программа храниния метаинфы может быть на голом php.

Или есть тот же гугловый app engine.

Тут возникают опять же вопросы надежности всего этого с точки зрения неприятных субъектов ломающих чужие игрушки. Если каждый пользователь может ставить свои хранилища метаинформации, значит нужно учесть что он это может делать со злыми целями. Это добавляет дополнительные переменные во всю систему.

Применения этого всего могут быть разные, точнее данные методы могут быть интересны любому распределенному сервису. Вот этот круг вопросов и было бы интересно обсудить. Идеи опять же. как теоретические так и практические.

★★☆
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.