Проект "Свободные голосования"

Электронная системы голосований через интернет
Текущее время: 16 апр 2024, 13:59

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 16 янв 2012, 15:20 
Не в сети

Зарегистрирован: 11 янв 2012, 11:51
Сообщения: 83
Андрей писал(а):
... то, что информацию нужно передать от первого компа с реальным IP не означает что инициатором tcp соединения должен быть именно он. С абсолютно тем-же успехом инициировать соединение может комп за NAT или прокси. И по этому соединению все нормально передается с первого компа на второй. Именно так работают торрентсы за NAT и прокси.

Таким образом вы ставите распостранение информации по сети п2п в зависимость от активности узлов системы ЭГ внутри NATа. Клиент на таком узле должен сам постоянно "тюкать" другие узлы системы в надежде получить текущую информацию по голосованиям. Поэтому же у узла за NATом весьма ограниченные возможности по выполнению функций маршрутизатора системы голосований.

Вопрос про объемы входящей и хранимой информации пока замнем для ясности.

yurial писал(а):
В "полезных статьях для разработчиков" есть ссылка на STUN.

Насколько я понял, STUN иногда помогает решить проблему доступа к узлам за NAT. Но не для всех типов NAT. И не решает проблему антивирусных и прочих FW, а также прокси доступа в инет. Короче, далеко не универсален.

Подводим итог по этой части. Система ЭГ может быть построена по принципу п2п с точки зрения хранения (и обработки) данных. При этом клиент ХРАНИТ данные о голосованиях на этом узле и ЗАПРАШИВАЕТ данные о голосованиях на других узлах. При универсальном подходе самостоятельно инициировать распостранение данных узлы не могут.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2012, 16:36 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
IgorK писал(а):
Андрей писал(а):
... то, что информацию нужно передать от первого компа с реальным IP не означает что инициатором tcp соединения должен быть именно он. С абсолютно тем-же успехом инициировать соединение может комп за NAT или прокси. И по этому соединению все нормально передается с первого компа на второй. Именно так работают торрентсы за NAT и прокси.

Таким образом вы ставите распостранение информации по сети п2п в зависимость от активности узлов системы ЭГ внутри NATа. Клиент на таком узле должен сам постоянно "тюкать" другие узлы системы в надежде получить текущую информацию по голосованиям. Поэтому же у узла за NATом весьма ограниченные возможности по выполнению функций маршрутизатора системы голосований.

Если бэкэнд клиента подключен к другим бэкэндам любым способом - вообще не имеет значения способ этого подключения. Какая вам разница откуда взялся tcp канал если вы по нему можете слать информацию в обе стороны?

Ну и какая разница за NAT клиент или имеет реальный IP если и тот и другой имеет одинаковое количество коннектов к другим бэкэндам? И у этих коннектов одинаковые свойства.

IgorK писал(а):
Подводим итог по этой части. Система ЭГ может быть построена по принципу п2п с точки зрения хранения (и обработки) данных. При этом клиент ХРАНИТ данные о голосованиях на этом узле и ЗАПРАШИВАЕТ данные о голосованиях на других узлах. При универсальном подходе самостоятельно инициировать распостранение данных узлы не могут.

Честно говоря странный вывод. Не понимаю я вашу логику.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2012, 20:21 
Не в сети

Зарегистрирован: 11 янв 2012, 11:51
Сообщения: 83
Андрей писал(а):
Если бэкэнд клиента подключен к другим бэкэндам любым способом - вообще не имеет значения способ этого подключения. Какая вам разница откуда взялся tcp канал если вы по нему можете слать информацию в обе стороны?

Разницы нет тогда, когда tcp соединение уже установлено. Но установившееся соединение не держится вечно. И рано или позно (скорее рано, чем наоборот), разрывается. Более того, после обмена данными логично программно разорвать соединение - зачем его держать вечно, расходуя ресурсы системы? А дальше инициировать соединение может опять только бэкэнд клиента (который за FW). Если до этого момента в глобальной системе произошли изменения, а клиент по какой-то причине связь не устанавливает, то об изменениях ему принудительно сообщить не удастся - он защищен всякими FW.

Андрей писал(а):
IgorK писал(а):
Подводим итог по этой части. Система ЭГ может быть построена по принципу п2п с точки зрения хранения (и обработки) данных. При этом клиент ХРАНИТ данные о голосованиях на этом узле и ЗАПРАШИВАЕТ данные о голосованиях на других узлах. При универсальном подходе самостоятельно инициировать распостранение данных узлы не могут.

Честно говоря странный вывод. Не понимаю я вашу логику.

Давайте тогда по частям.
1. На узле произошли голосования. Предполагаю, что клиент ХРАНИТ эти данные, а не уничтожает их с этого узла после передачи другим узлам группы.
2. Клиент ЗАПРАШИВАЕТ данные о голосованиях на других узлах. Он инициирует соединение. К этому времени на других узлах группы уже могли пройти голосования или другие значимые события. Эти данные перекачиваются на узел для выравнивания БД узлов группы.
3. Если брать крайний случай, все, кроме одного узла группы, могут быть расположены за FW. Единственный способ инициировать распостранения данных по голосованиям - узлы за NATом инициирую соединения с единственным "реальным" и ЗАПРАШИВАЮТ у него данные. Т.е. универсальный подход к ПО клиента - он хранит данные по своим голосования и инцициирует соединения с другими узлами для запроса у них данных группы.
Такая моя логика. Описание в таких терминах вы, как разработчики, мне не дали. Поэтому пытаюсь сделать "реинжиниринг" сам.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2012, 21:13 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
IgorK писал(а):
2. Клиент ЗАПРАШИВАЕТ данные о голосованиях на других узлах. Он инициирует соединение. К этому времени на других узлах группы уже могли пройти голосования или другие значимые события. Эти данные перекачиваются на узел для выравнивания БД узлов группы.

Для демонстрационного прототипа это утверждение верно.

IgorK писал(а):
3. Если брать крайний случай, все, кроме одного узла группы, могут быть расположены за FW. Единственный способ инициировать распостранения данных по голосованиям - узлы за NATом инициирую соединения с единственным "реальным" и ЗАПРАШИВАЮТ у него данные. Т.е. универсальный подход к ПО клиента - он хранит данные по своим голосования и инцициирует соединения с другими узлами для запроса у них данных группы.
Такая моя логика. Описание в таких терминах вы, как разработчики, мне не дали. Поэтому пытаюсь сделать "реинжиниринг" сам.

Не верно. STUN описывать как организовать подключение между 2мя нодами за NATом используя ноду с внешним адресом.

ps Установка соединения более ресурсоемкая операция, чем поддержка. См. документацию по TCP/IP, syn, ask, keepalive.

_________________
AF4B DFB0 0E41 2F7A 09FD 4971 96F0 B176 EA1C DD85


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2012, 21:39 
Не в сети

Зарегистрирован: 11 янв 2012, 11:51
Сообщения: 83
yurial писал(а):
Для демонстрационного прототипа это утверждение верно.

Угадал хоть в чем-то наконец. Почему только для прототипа?

yurial писал(а):
Не верно. STUN описывает как организовать подключение между 2мя нодами за NATом используя ноду с внешним адресом.
Методично повторяю, что расчитывать на определенную конфигурацию условий доступа узла в инет для системы, претендующей на массовое распостранение и использование - неправильно. NAT на шлюзе может не поддерживать STUN, в системе и на узле могут быть дополнительные уровни защиты сетевого трафика. Пользователь может не иметь доступа или желания (имеет право) для конфигурации защиты специально для ПО узла голосования.

yurial писал(а):
ps Установка соединения более ресурсоемкая операция, чем поддержка. См. документацию по TCP/IP, syn, ask, keepalive.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 янв 2012, 21:57 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
IgorK писал(а):
yurial писал(а):
Для демонстрационного прототипа это утверждение верно.

Угадал хоть в чем-то наконец. Почему только для прототипа?

После реализации прототипа будет разрабатываться распределенная БД с распределенным подсчетом результата.
IgorK писал(а):
yurial писал(а):
Не верно. STUN описывает как организовать подключение между 2мя нодами за NATом используя ноду с внешним адресом.
Методично повторяю, что расчитывать на определенную конфигурацию условий доступа узла в инет для системы, претендующей на массовое распостранение и использование - неправильно. NAT на шлюзе может не поддерживать STUN, в системе и на узле могут быть дополнительные уровни защиты сетевого трафика. Пользователь может не иметь доступа или желания (имеет право) для конфигурации защиты специально для ПО узла голосования.

У вас торренты работают?
IgorK писал(а):
yurial писал(а):
ps Установка соединения более ресурсоемкая операция, чем поддержка. См. документацию по TCP/IP, syn, ask, keepalive.

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

Определитесь "Да" или есть "Наилучший способ".
О того что один из 32 узлов отвалился вам на много хуже не станет. У вас торренты работают? :)

_________________
AF4B DFB0 0E41 2F7A 09FD 4971 96F0 B176 EA1C DD85


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 янв 2012, 09:48 
Не в сети

Зарегистрирован: 11 янв 2012, 11:51
Сообщения: 83
yurial писал(а):
После реализации прототипа будет разрабатываться распределенная БД с распределенным подсчетом результата.

На узле в БД хранятся все ИСХОДНЫЕ результаты голосований в группе. Если ограничить размер группы разумными пределами, то любой узел может сам подвести любые итоги голосований в этой группе. Распределять БД в этом случая нет необходимости.
Результаты голосований во всех других группах в ОБРАБОТАННОМ, а значит, значительно сокращенном виде, можно получить от доверенных узлов этих других групп. При разумном количестве других групп таким образом на узле (на всех узлах нашей группы) могут храниться результаты голосования всего субъекта. И каждый узел в состоянии (по требуемым вычислительным ресурсам) сам подвести итоги.
Если при этом структура групп вложенная, т.е. построена по иерархии, то на узлах нашей группы могут храниться результаты голосований субъекта любого (всероссийского, всемирного) размера.
Принципиальным здесь является вопрос: допускается ли промежуточная обработка данных в группах и использование этих данных другими группами? Или каждый раз при подсчете неким узлом результатов голосования в субъекте должны использоваться ИСХОДНЫЕ данные голосований всего субъекта?

yurial писал(а):
У вас торренты работают? :)

У меня дома три компа и точка доступа с NAT. Сын качает фильмы с peer -сетей. Наверное, используя торренты (я сам не балуюсь, поэтому терминологией не владею). Но для работы его качалки я прописал на точке доступа правила для входящих пакетов, без которых качалка не работала.

yurial писал(а):
Определитесь "Да" или есть "Наилучший способ".
О того что один из 32 узлов отвалился вам на много хуже не станет.

Юрий, не сомневаюсь в Вашей квалификации в разработке проектов и написании кода приложений, использующих сетевые ресурсы. Но, имхо, не очень корректны реализации, свободно распоряжающиеся ресурсами (не своих) компьютеров. Это относится к любым типам ресурсов - к оперативной и "твердой" памяти, вычислительным и ресурсам сети. В итоге получаются монстры, плохо перевариваемые любыми компами, оттого не пользующиеся особой популярностью у широких народных масс.
"Да" - ресурсы, требуемые для поддержания соединения, меньше, чем они же на установку соединения.
Нет текущей передачи данных (все уже передано-принято) - соединение разрываем, ресурсы освобождаем.
При возникновении нового события на узле голосования - пришел еще один человек и хочет голосовать - устанавливаем соединение и производим обмен данными. И так по циклу. Такая логика работы есть "наилучший способ".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 янв 2012, 09:58 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
IgorK писал(а):
На узле в БД хранятся все ИСХОДНЫЕ результаты голосований в группе. Если ограничить размер группы разумными пределами, то любой узел может сам подвести любые итоги голосований в этой группе. Распределять БД в этом случая нет необходимости.
Результаты голосований во всех других группах в ОБРАБОТАННОМ, а значит, значительно сокращенном виде, можно получить от доверенных узлов этих других групп. При разумном количестве других групп таким образом на узле (на всех узлах нашей группы) могут храниться результаты голосования всего субъекта. И каждый узел в состоянии (по требуемым вычислительным ресурсам) сам подвести итоги.
Если при этом структура групп вложенная, т.е. построена по иерархии, то на узлах нашей группы могут храниться результаты голосований субъекта любого (всероссийского, всемирного) размера.
Принципиальным здесь является вопрос: допускается ли промежуточная обработка данных в группах и использование этих данных другими группами? Или каждый раз при подсчете неким узлом результатов голосования в субъекте должны использоваться ИСХОДНЫЕ данные голосований всего субъекта?

Это вы прочитали мой вчерашний пост про распределенное хранение данных?
IgorK писал(а):
У меня дома три компа и точка доступа с NAT. Сын качает фильмы с peer -сетей. Наверное, используя торренты (я сам не балуюсь, поэтому терминологией не владею). Но для работы его качалки я прописал на точке доступа правила для входящих пакетов, без которых качалка не работала.

Плохая качалка :)
IgorK писал(а):
Юрий, не сомневаюсь в Вашей квалификации в разработке проектов и написании кода приложений, использующих сетевые ресурсы. Но, имхо, не очень корректны реализации, свободно распоряжающиеся ресурсами (не своих) компьютеров.

1) Лучше иметь хоть что-то чем ничего;
2) Если есть конкретные предложения - они обсуждаются, но уже в рамках пост-демонстрационного проекта.
IgorK писал(а):
При возникновении нового события на узле голосования - пришел еще один человек и хочет голосовать - устанавливаем соединение и производим обмен данными. И так по циклу. Такая логика работы есть "наилучший способ".

Нет у нас таких узлов, не узнаете вы ничего, если не будет ни с кем соединения.

_________________
AF4B DFB0 0E41 2F7A 09FD 4971 96F0 B176 EA1C DD85


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 янв 2012, 10:26 
Не в сети

Зарегистрирован: 11 янв 2012, 11:51
Сообщения: 83
yurial писал(а):
Это вы прочитали мой вчерашний пост про распределенное хранение данных?

Нет, Ваш пост я не читал. (К тому же вчера Вы пост на такую тему не писали или я его, как всегда, не нашел). Под "распределенным хранением данных" в СУБД я понимал и понимаю другое.

yurial писал(а):
1) Лучше иметь хоть что-то чем ничего;
2) Если есть конкретные предложения - они обсуждаются, но уже в рамках пост-демонстрационного проекта.

Под вывеской "прототип" вы проектируете утопию. Если можно согласиться с предложенным принципом хранения данных в прототипе (все ИСХОДНЫЕ данные хранятся на узле), то принцип взаимодействия прототипа - открытая локальная сеть - существует только в Вашем воображении. Потратив время на проектирование и отладку взаимодействия узлов прототипа вы будете разрабатывать эту функцию системы заново для любой реальной сети компьютеров.

yurial писал(а):
Нет у нас таких узлов, не узнаете вы ничего, если не будет ни с кем соединения.

Берем, как всегда, граничный случай. Система установлена на группу узлов, каждый из которых находится за мощным FW. Очевидно, что начать работу такая система ЭГ сможет только при наличии какого-то известного всем компьютера, так или иначе принимающего входящие соединения. Т.е. сервера. Других способов нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 янв 2012, 11:27 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
IgorK писал(а):
Юрий, не сомневаюсь в Вашей квалификации в разработке проектов и написании кода приложений, использующих сетевые ресурсы.

Мне прям больше ответить нечего.
Вы хотите понять, что мы делаем или оспорить принятые решения?

_________________
AF4B DFB0 0E41 2F7A 09FD 4971 96F0 B176 EA1C DD85


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB