Еще раз, соль моего варианта, что весь форум именно распределен, а не скопирован по узлам сети. Боюсь, что мы говорим об абсолютно разных вещах. Сообщения темы пользователь получает либо целиком, либо порциями, но только через поиск! Чтобы предотвратить лишний трафик, у темы есть дата изменения — это банально.
Просто расскажу, как я вижу работу своего варианта:
Я захожу, вижу список разделов… Ищу тему «куплю пылесос», у меня считается хэш этой фразы. Мне присылается тема/несколько, удовлетворяющих поиску, я выбираю нужную, подтягиваются сообщения из нее. Я постю ответ, при этом мое сообщение не остается у меня, а уходит на узел/узлы, ответственные за его хэш, я могу также определить теги для этого сообщения, если вдруг кто захочет искать по сообщениям, далее сообщение также регистрируется в теме (информация о его хэше).
>Правильно понимаю, что каждое сообщение имеет указатель на «родителя-тему»?
Ага. С каждым сообщением опять же связать набор тегов, поэтому хешировать не каждое слово сообщения, а только ключевые. При этом чтобы не получать повторные данные можно в заголовки ответа включать время модификации (при условии наличия единого времени), т.е. проводить банальное кеширование.
Думаю, что чаще все-таки ищут по темам, а не сообщениям.
> Да еще хотелось бы передавать сообщения при создании (получении), а не получать послав запрос, т.е. сократив два движения в одно.
Передавать кому? Сразу всем участникам? Это дикий трафик. Вы предлагаете хранить у каждого свою копию форума? Это как-то сумбурно и очень накладно.
>Поиск по тегам вещь безусловная нужная, но без нее получается достаточно изолированная и «секретная» система: не зная хэш не найдешь тему. Это хорошая защита от спама.
Не знаю, это еще и защита от пользователя…
>Я не уверен, что понял правильно, но кажется вы предлагаете синхронизировать тему через «держателя», обычно пользователя, который начал разговор?
Нет, держатель имеет право ее модифицировать (удалять неугодные, цензурить и т.п.)
У вас список «узлов, хранящие тему» это все участники? — Нет. Это узлы, ответственные за хэш названия темы.
>Проблема как идентифицировать сообщения, чтобы у всех участников они были одинаковыми, чтобы запрашивать только недостающие сообщения.
Я вообще предлагаю стягивать только нужное по поиску :) знать только список разделов форума на первом этапе, все остальное — поиск…
На основе DHT? Т.е., например, Kademlia?
Ну я бы вводил тогда три типа сущностей: разделы, темы, сообщения.
Соответственно, привязал бы темы к разделам, сообщения к темам. Таким образом, можно отправлять запросы на поиск каждой сущности. Запрос на добавление сообщения к теме обрабатывается узлами, хранящими ее (они просто дополняют список сообщений внутри себя). Модерировать тему имеет право только создатель, как я думаю. Идентифицировать его можно с помощью публичного ключа.
Клиенту не помешало бы поддерживать закладки, любимое и т.п., дабы сделать итоговый продукт удобоваримым и оправданным.
Вопрос, конечно, интересный, надеюсь, я правильно его понял?..
Что Вы сами думаете о своей идее (наработки, черновики)?
//
Да, забыл заметить в заметке, что в структурированных сетях на Kademlia (да и в других) проблема поиска по ключевым словам и тегам следующим образом: пользователь, публикующий файл должен определить набор тегов и ключевых слов, связанных с файлом, тогда будет вызвать специальный вариант STORE для ключей, произведенных ключевыми словами, который разместит ссылку на настоящий ключ. Того же эффекта, в-принципе, можно добиться, создав в файловой системе символические ссылки на нужный файл с именами-тегами.
Xlib объективно проигрывает по скорости XCB за счет своей модели запросов. Сверх того, в XCB вся соль в наличии у многих действий, единиц идентификаторов — многопоточный код наворачивать гооораздо безопасней.
Пробовал писать на XCB оконный Hello World с часиками: это же ужас какой-то! Во-первых, объем кода больше, чем тот же случай на Xlib, раза в два-три. Более того, вменяемой документации по XCB нет. Даже официальный мануал написан очень и очень поверхностно.
Остается качать исходники и заглядывать, анализировать… И после этого обвинять тулкиты в несоответствии стандартам уже как-то не особо и хочется — во имя результата все средства хороши, особенно если они преподносят его на блюдечке. Уж на тот же Qt я по части документации ругаться точно не буду… Не говоря уже о всяких прелестях вроде QtCreator и т.п.
Поставил себе обе Оперы. Аппарат — Nokia E50. Mobile честно предупредила при установке, что несовместима с данным телефоном.
На деле же работает, если выгрузить остальной софт, правда может вылететь от пришедшей СМСки. Не хватает памяти…
Mini же вполне себе бегает итак…
Просто расскажу, как я вижу работу своего варианта:
Я захожу, вижу список разделов… Ищу тему «куплю пылесос», у меня считается хэш этой фразы. Мне присылается тема/несколько, удовлетворяющих поиску, я выбираю нужную, подтягиваются сообщения из нее. Я постю ответ, при этом мое сообщение не остается у меня, а уходит на узел/узлы, ответственные за его хэш, я могу также определить теги для этого сообщения, если вдруг кто захочет искать по сообщениям, далее сообщение также регистрируется в теме (информация о его хэше).
habrahabr.ru/blogs/p2p/107342/#comment_3385442
Ага. С каждым сообщением опять же связать набор тегов, поэтому хешировать не каждое слово сообщения, а только ключевые. При этом чтобы не получать повторные данные можно в заголовки ответа включать время модификации (при условии наличия единого времени), т.е. проводить банальное кеширование.
Думаю, что чаще все-таки ищут по темам, а не сообщениям.
> Да еще хотелось бы передавать сообщения при создании (получении), а не получать послав запрос, т.е. сократив два движения в одно.
Передавать кому? Сразу всем участникам? Это дикий трафик. Вы предлагаете хранить у каждого свою копию форума? Это как-то сумбурно и очень накладно.
>Поиск по тегам вещь безусловная нужная, но без нее получается достаточно изолированная и «секретная» система: не зная хэш не найдешь тему. Это хорошая защита от спама.
Не знаю, это еще и защита от пользователя…
>Я не уверен, что понял правильно, но кажется вы предлагаете синхронизировать тему через «держателя», обычно пользователя, который начал разговор?
Нет, держатель имеет право ее модифицировать (удалять неугодные, цензурить и т.п.)
У вас список «узлов, хранящие тему» это все участники? — Нет. Это узлы, ответственные за хэш названия темы.
>Проблема как идентифицировать сообщения, чтобы у всех участников они были одинаковыми, чтобы запрашивать только недостающие сообщения.
Я вообще предлагаю стягивать только нужное по поиску :) знать только список разделов форума на первом этапе, все остальное — поиск…
Ну я бы вводил тогда три типа сущностей: разделы, темы, сообщения.
Соответственно, привязал бы темы к разделам, сообщения к темам. Таким образом, можно отправлять запросы на поиск каждой сущности. Запрос на добавление сообщения к теме обрабатывается узлами, хранящими ее (они просто дополняют список сообщений внутри себя). Модерировать тему имеет право только создатель, как я думаю. Идентифицировать его можно с помощью публичного ключа.
Клиенту не помешало бы поддерживать закладки, любимое и т.п., дабы сделать итоговый продукт удобоваримым и оправданным.
Вопрос, конечно, интересный, надеюсь, я правильно его понял?..
Что Вы сами думаете о своей идее (наработки, черновики)?
//
Да, забыл заметить в заметке, что в структурированных сетях на Kademlia (да и в других) проблема поиска по ключевым словам и тегам следующим образом: пользователь, публикующий файл должен определить набор тегов и ключевых слов, связанных с файлом, тогда будет вызвать специальный вариант STORE для ключей, произведенных ключевыми словами, который разместит ссылку на настоящий ключ. Того же эффекта, в-принципе, можно добиться, создав в файловой системе символические ссылки на нужный файл с именами-тегами.
Про JXTA не слыхивал даже ранее, спасибо за ссылку, гляну. Пугает вот только отсутствие новостей и старые бренды Sun на сайте.
Остается качать исходники и заглядывать, анализировать… И после этого обвинять тулкиты в несоответствии стандартам уже как-то не особо и хочется — во имя результата все средства хороши, особенно если они преподносят его на блюдечке. Уж на тот же Qt я по части документации ругаться точно не буду… Не говоря уже о всяких прелестях вроде QtCreator и т.п.
На деле же работает, если выгрузить остальной софт, правда может вылететь от пришедшей СМСки. Не хватает памяти…
Mini же вполне себе бегает итак…
Заранее благодарен :)