bartwell
@bartwell

Как организовать децентрализованный сетевой сервис?

Есть желание реализовать некий сервис на основе приложения для Android. Сервис должен быть децентрализованным, то есть, информация в виде одной общей БД должна передаваться от клиента к клиенту, а не скачиваться с сервера. Как такое можно организовать? Как устройства могут находить друг друга в Интернете? Интересно именно в архитектурном плане.
  • Вопрос задан
  • 567 просмотров
Решения вопроса 1
Jump
@Jump
Системный администратор со стажем.
Есть желание реализовать некий сервис на основе приложения для Android
Теоретически возможно, практически - нереально.
Поясню - децентрализованная БД предполагает хранение и обработку на стороне клиента. Т.е у клиента должны быть ресурсы для хранения, обработки и передачи данных.
Android это фактически синоним мобильных устройств, а на мобильных устройствах с ресурсами то, как раз и проблема.
Емкости хранения небольшие.
Производительность процессора довольно низкая, любые процессорные операции быстро садят батарейку.
Трафик зачастую дорогой, канал в интернет не особо широкий и стабильный, пинг ужасный.

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

Как устройства могут находить друг друга в Интернете? Интересно именно в архитектурном плане.
Абсолютной децентралиции до сих пор не придумали. Есть частичная. Например DHT в торрентах, и подобные.
Принцип обычно такой - есть список заранее определенных серверов, зашитый в клиент, там берется список других нод, а дальше уже запрашиваем по определенному алгоритму у известных нод, требуемую нам информацию. Поиск идет довольно медленно, но вполне эффективно. Начните читать отсюда - https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Konstantin18ko
@Konstantin18ko
Стоматолог
Целесообразно создать иерархию, но должен быть сервер или ресурс хранящий а значение по вертикали, по горизонтали, ip клиента, а также номер каждого обновления(каждое обновление +1 к существующему числу - 0, 1, 2 и т.д.). Как должны располагаться клиенты - главный -0, есть ниже порядком - 1, ещё - 2. Каждый порядок образует слой. Тем самым образуется матрица.
Как то так. Сервер нужен лишь только для подключения, а передача будет между клиентами напрямую.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы