Реализация P2P или распределенной системы - PullRequest
2 голосов
/ 14 ноября 2009

У меня есть работа по реализации распределенной системы узлов (например, узлов p2p), каждый из этих узлов (скажем, A, B, C и D) выполняет определенные функции и должен взаимодействовать друг с другом для выполнения различных операций, таких как синхронизация. операции и другие вещи, такие как 15 A-узлов, взаимодействуют с группой из 5 B-узлов, чтобы попасть в очередь наименее загруженного узла и получить номер токена, а затем ждать C, чтобы перенаправить их на свободный узел D и т. д.

Я немного растерялся, как мне заняться дизайном:

  1. Протокол, о котором я подумал, заключается в инкапсуляции структуры типа операции и других отправляемых вещей. Кроме того, это делается с использованием схемы подтверждения, поэтому я могу быть уверен, что другая сторона получила сообщение.
  2. Как я расскажу об аспекте распределенного взаимного исключения, поскольку у меня нет центрального сервера. Я предполагаю, что каждый узел реплицирует данные, но это звучит слишком дорого (не говоря уже о глупости).
  3. Какова основная методология проектирования, которой следовали при реализации систем p2p, т.е. как я могу реализовать программу таким образом, чтобы она блокировалась при получении, но также могла отправлять дальнейшие обновления и т. Д. И в то же время получать информацию от других о состояние всей системы.

Кроме того, каковы другие проблемы, которые мне, возможно, придется рассмотреть / лицо Я также был бы признателен, если бы вы указали мне несколько хороших онлайн-ресурсов по внедрению p2p и распределенных систем.

Спасибо !!

1 Ответ

1 голос
/ 14 ноября 2009

Вероятно, было бы неплохо провести некоторое исследование последовательных схем хеширования. Хорошая отправная точка:

Я уверен, что если вы сделаете базовый поиск в Google по типу «peer to peer», вы найдете много вещей для чтения. Вы также можете взглянуть на некоторые документы по дизайну популярных одноранговых приложений, таких как Gnutella, BitTorrent и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...