schegloff ([info]schegloff) wrote,
@ 2006-11-17 19:44:00


28 replies, 12 authors
Entry tags:f2f

Топология пиринговых сетей - имеющиеся решения и недоуменные вопросы
Пишу сюда, а не в комьюнити, поскольку сказать пока ничего не могу, а только потрепаться. Обзавелся я каким-никаким, но все-таки unlimited Интернетом, и по такому случаю заинтересовался пиринговыми сетями. Так или иначе, для F2F движка придется выбирать какой-то протокол маршрутизации, поэтому решил ознакомиться с существующими решениями. Оказалось, что это не так-то просто сделать.

На первом этапе у меня возник вопрос: а какая из существующих пиринговых сетей самая популярная?! Из Сети сразу же посыпались сведения о 150 млн. скачанных копий eMule, о 50% мирового траффика, занимаемого torrent-файлами, о Skype, так назгрузившем эту самую Сеть, что штатовские провайдеры начали с ним активно бороться. Личный опыт использования "самой популярной" программки Shareaza показал, что Gnutella2 и eDonkey2000 вроде как работают (в части поиска контента), а вроде как и нет (при попытке чего-то скачать оказываешься 2000-м в очереди). Возможно, я что-то не так делаю, но второго случая произвести на меня первое впечатление у этих сетей уже не будет :) Словом, однозначного лидера в p2p технологиях сегодня не существует - всяк кулик свое болото хвалит.

На втором этапе я решил составить список просто хороших решений для p2p-маршрутизации, чтобы изучить их и породить на этой основе либо собственную нетленку, либо указующий перст - "берем это". Список получился вот какой (в порядке субъективной привлекательности):

Skype - видимо, все-таки наилучшее решение в части пиринговой маршрутизации (почему и потянуло в итоге на 4 с лишним миллиарда долларов); но - проприетарное, т.е. использованию "в лоб" не подлежит; тем не менее, в сети F2F мне бы хотелось видеть такое же время отклика

Gnutella2 - судя по обструкции автора в сообществе исходной Gnulella, по крайней мере оригинальное решение в пиринге, но хотя мне и удалось чего-то найти в сети G2, количество откликнувшихся "серверов" - 2 (два) - показалось несколько странным для столь помпезно разрекламированной сети; что-то у нее с маршрутизацией не то.

Freenet - см. статью в Википедии Freenet, оригинальна заранее заложенной в протокол анонимностью, однако клиент написан на Java, и не обновлялся уже пару лет, а новость о спонсировании супер-пупер фринета в размере 15000$ этим летом подавалась электронными СМИ как событие, - что заставляет усомниться в реальном качестве данного решения (ну не верю я, что на богатом Западе не нашлось бы придурка, выложившего в 10 раз больше, будь решение хоть немного юзабельным!)

eDonkey2000 - вот она как раз и есть самая популярная пиринговая сеть в мире, но, насколько я понял, организована по тому же принципу, что и bitTorrent - ссылки на фиксированных серверах, контент на распределенных. Лично я с "осла" скачать тоже ничего не смог, да и "гибридная" технология пиринга вызывает сомнения.

Что со всем этим я собираюсь делать дальше? Неспешно изучать системы в работе, вникать в тематику маршрутизации и готовить следующую публикацию по F2F в комьюнити. Если кто чего полезного напишет, процесс, естественно, ускорится. Ну и кто умеет реально качать чего-то с G2 и eD2000 - расскажите, как оно у вас получается :)

Для справки - откуда я черпал начальную информацию. Начал с дискуссии о всякого рода распределенных файлохранилищах. Прочитал один обзор Технологии Peer-to-Peer, потом второй Пиринговые сети, потом третий - Файлообменные сети.

Нашел статью с объяснением "на пальцах", как работает маршрутизация в сети Gnutella. После этого вспомнил про Skype и обнаружил вот это - Теоретические основы Skype. На этом закончил и решил попросить помощи зала. Уважаемые читатели, кто что по поводу всей этой бодяги думает?



[info]stefashka
2006-11-17 03:32 pm UTC (link)
Есть такой протокол SIP (RFC 3261) - занимается маршрутизацией и поиском агента по символическому имени. Он используется с IP-телефонии. Можете ещё туда посмотреть.

(Reply to this)


[info]sushilshik
2006-11-17 05:01 pm UTC (link)
Круглосуточно закружен aMule (линукс версия eMule) - закачка начинается не сразу, но я никуда и не тороплюсь =)
Чтобы был высокий рейтинг, надо расшарить какие-нибудь интересные файлы с говорящими названиями и постоянно их раздавать.

(Reply to this)


[info]vitus_wagner
2006-11-17 07:31 pm UTC (link)
Хитрость в том что Skype и файло-обменные сети - это принципиально разные технологии.

Задача Skype - организовать быстрый канал между двумя заведомо присутствующими в сети узлами. В телефонии не бывает контента, который имеет смысл, когда его автор в offline.

Задача файлообменных сетей предоставить доступ к неизменному информационному объекту, который, единожды попав в сеть, всегда будет циркулировать в ней в неизменном виде. А разные объекты между собой никак не связаны.

То чего хочется получить от блогосферы - не похоже ни на то, ни на другое. Хотя каждый пост или коммент может рассматриваться как файл в файлообменной сети, но вообще-то во-первых, посты живые, на них дискуссии нарастают. Во-вторых, нам интересны не только объекты но и связи. Причем в первую очередь не между объектами, а между участниками сети. Что-то похожее на рейтинговую систему в тех же файлообменных сетях. Только там оцениваются участники сети по своим возможностям делиться объектами, а нам нужно оценивать авторов и отдельные посты по содержательной ценности.

Самое главное, я не понимаю, ну что так все уперлись в эти p2p? Новомодные глюкавые поделки. Есть еще XMPP (возможности которого в части JUD гораздо ближе к тому, что требуется для блогосферы. Jabber всё-таки социальная сеть). Но ведь есть старые-добрые протоколы DNS, HTTP, gopher, archie etc, наработки которых не поняты и не оценены.

Над всеми довлеет убеждение, что использование тех протоколов, на которых уже третье десятилетие успешно работает основная инфрастурктура интернета чем-то плохо. Они, мол, все серверно-ориентирвоанные. Да десять лет назад, не то что двадцать, самые крутые сервера были куда слабее имели каналы меньшей толщины чем современные домашние машины. Поэтому надо в первую очередь искать хорошо забытое старое. Из тех времен когда весь интернет был p2p.

(Reply to this) (Thread)


[info]kamarado_anton
2006-11-18 11:12 am UTC (link)
Самое главное, я не понимаю, ну что так все уперлись в эти p2p? Новомодные глюкавые поделки. Есть еще XMPP (возможности которого в части JUD гораздо ближе к тому, что требуется для блогосферы. Jabber всё-таки социальная сеть). Но ведь есть старые-добрые протоколы DNS, HTTP, gopher, archie etc, наработки которых не поняты и не оценены.

Над всеми довлеет убеждение, что использование тех протоколов, на которых уже третье десятилетие успешно работает основная инфрастурктура интернета чем-то плохо.


+1

(Reply to this) (Parent)

Хм, а это идея!
[info]schegloff
2006-11-19 07:29 am UTC (link)
Вроде как в Японии во время революции Мэйдзи - сделать всех самураями :)

То есть в проектируемой сети вообще не должно быть "клиентов", а только серверы. Примерно как в понравившийся мне bitTorrent технологии - еще не успел докачать полный файл, а отдельные куски уже пошли в раздачу. То есть при попытке стать клиентом - тут же автоматически становишься сервером, и "карму" (отношение получено/отдано) узла определяет сама технология, а не субъективное желание владельца.

(Reply to this) (Parent) (Thread)

Re: Хм, а это идея!
[info]vitus_wagner
2006-11-19 09:10 am UTC (link)
Тут есть тонкость - надо разделять пользователя сети - человека, и участвующий в сети компьютер. У одного пользователям может быть много компьютеров:
1. Сервер на хостинге (разделяемый с другими пользователями хостинга)
2. Домашний десктоп (разделяемый с членами семьи, которые тоже могут быть участниками сети, который может иметь постоянное подключение, а может и нет)
3. Ноутбук (который постоянного подключения не имеет)
4. PDA/смартфор.

В своё техзадание я закладывал менее жесткое ограничение - каждый человек, участвующий в сети, имеет по крайней мере один компьютер, который играет роль сервера. Одновременно являющийся мастер-сервером для постов данного человека, и кэширующий (и распространяющий далее) информацию, которую данному человеку интересно читать.

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

(Reply to this) (Parent)


[info]hcube
2006-11-17 08:17 pm UTC (link)
Я бы сказал, что надо почитать пресловутого Лукьяненко ;-). Почему не сделать P2P на базе вирусной технологии? Т.е. небольшой такой вирус, который может хранить что-то что ему сказано, небольшого обьема, скажем в десяток мегабайт максимум. И отдавать по p2p запросу нужного формата. Встроиться в винду на уровне сервиса несложно, вири это уже умеют делать. Ну, и следить за общей загруженностью p2p сети, балансируя между обьемом контента и актуальностью.

После чего на базе p2p файлообмена можно уже делать все что угодно.

Другой вариант - файлорасширитель, работающий опять же на базе вирусной технологии. Просто в компе появляется еще один диск - виртуальный, на котором есть ВСЕ. Кликаешь - оно загружается с других узлов со скоростью канала. Можно туда же кинуть какой-то свой файл... ммм... основная проблема боюсь будет не в неубиваемости системы - с ДОСТАТОЧНО хорошо замаскированным вирем его никто не заметит (поскольку на каждом завирусованном компе хранится столько инфы, сколько нужно чтобы обеспечить общий обьем хранилища с нужной избыточностью и не больше - а при большом числе членов в сети и при обмене текстами это очень небольшой обьем). Проблема будет в навигации по этому хранилищу, и эту навигацию и средства индексирования надо продумывать на уровне разработки самой хранилки. Навскидку можно упомянуть разделение контента - текст, изображение, видео, аудио - ОЧЕНЬ по разному надо индексировать. Далее, защита от спама - т.е. от враждебно неактуальной информации ;-). Ну и т.д. Так что построить p2p сеть это полдела, дело - это заставить ее УДОБНО работать. Это вам не гугель, это настоящий адаптивный ИИ должен быть ;-).

(Reply to this) (Thread)


[info]dmi2130
2006-11-18 09:04 am UTC (link)
>>Почему не сделать P2P на базе вирусной технологии? Т.е. небольшой такой вирус, который может хранить что-то что ему сказано, небольшого обьема, скажем в десяток мегабайт максимум. И отдавать по p2p запросу нужного формата. Встроиться в винду на уровне сервиса несложно, вири это уже умеют делать. Ну, и следить за общей загруженностью p2p сети, балансируя между обьемом контента и актуальностью.

Потомучта я и многие другие люди, которые нежелают иметь у себя на машине вирусную активность, сразу организуемся в антикаминити, которое начнёт "отстрел" вирусоделов... А так как :) позволить менять систьему опознания свой-чужой для вируса вы не сможете, то достаточно взламать одну копию вируса... и написать антивирус по вирусной технологии, который будет распространятся в открытую или закрытую и алармить на весь экран "Этеншен ВИРУС АТАК!"

(Reply to this) (Parent)


[info]dmi2130
2006-11-18 09:05 am UTC (link)
>>потом третий - Файлообменные сети.

Ссылка битая, указывает на текущую страницу... или так и должно? :)

(Reply to this) (Thread)

Спасибо, поправил
[info]schegloff
2006-11-18 01:49 pm UTC (link)
Разумеется, так быть не должно. Но когда пихаешь много ссылок, где-нибудь да вляпаешься...

(Reply to this) (Parent)


[info]rombell
2006-11-18 09:24 am UTC (link)
Для устойчивости сети от "повреждений" требуется
1) достаточно много копий контента. Количество копий не может быть слишком большим - нельзя хранить "всё у каждого" - рано или поздно не хватит никаких ресурсов, весь канал будет забиваться синхронизацией. И тем не менее. Пример такого решения ("всё у каждого") - хорошо известная сеть FIDO, совмещающая древовидную систему связей для конф и p2p доступ для файлообмена. Для разумных объёмов трафика - text only - можно использовать такого рода "всё у каждого", разве что только вместо иерархичности связей можно использовать что-то другое. Хотя иерархичность лучше всё-таки иметь "для штатной" работы, пока не возникли трудности, так как это существенно упрощает обмен и синхронизацию, но необходимо предусмотреть автоматический переход на запасные хосты (либо чистый p2p по накопленным адресам) в случае возникновения проблем.
Для присоединённых картинок/файлов уже вполне подходит "обычный" файлобменный пиринг. Для защиты от фальсификации сообщений все сообщения должны подписываться чем-то вроде PGP.
Для системы же "у каждого - часть общего" без выделенного сервера сделать систему распределения частей контента по клиентам - гораздо тяжелее, нужно обеспечить достаточное количество копий контента и в то же время не свалиться во "всё у каждого" - вот так сразу нет даже примерных идей, как это сделать можно.

2) иметь систему поиска контента. Для сети "всё у каждого" это тривиально. Для распределённой ФИДО-подобной иерархичной сети - тоже просто. Для (резервной?) p2p просматриваются три варианта:
а) сервера, хранящие индексированные списки контента
б) сервера, хранящие списки клиентов, и клиент опрашивает других клиентов
в) без серверов - каждый "сам себе сервер", хранит списки полные клиентов и их контента, время от времени связывается с другими клиентами, получает от них обновления по спискам клиентов и индексам контента. Большой трафик на синхронизацию (надо периодически соединяться с _каждым_ известным клиентом), но зато полная связность и абсолютная устойчивость. Сеть будет функционировать, пока есть хотя бы два клиента.

3) иметь систему пополнения контента. Для "всё у каждого" - при наличие серверов, иерархии либо "все со всеми" - достаточно просто; для "у каждого по чуть-чуть" - проблема в том, чтобы оповестить заинтереснованных о возникновении нового контента и сделать некоторое количество копий.

4) модификация контента. Для "всё у каждого" - можно реализовать; для "у каждого по чуть-чуть" - не представляется возможным.

(Reply to this) (Thread)


[info]dmi2130
2006-11-18 03:17 pm UTC (link)
Для устойчивости сети вся её деятельность должна быть проплачена. "Бесплатная" сеть может существовать от платы в виде "общественных работ", но... там тоже проблемы.

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

Сеть из хостов, с приемлемыми условиями хостинга, и развитые средства администрирования для всех элементов системы.

1. Если сообщество или группа сообществ желает иметь некоторую независимость, то они должны обзавестись своим хостингом, а точнее множеством хостов. Должна быть налажена система поиска и актуализации информации о хостерах и условиях хостинга. Обязателен мониторинг качества сервиса по хостерам.
2. Для повышения устойчивости некоторые хосты должны быть отзеркалены, так вполне успешно поступают различные сайты и порталы, которые имеют опасения за свою судьбу. В частности обязательному дублированию подлежат хосты составляющие систему управления именами, которая будет сопоставлять имя пользователя и адресс хоста на котором размещён пользовательский контент.
3. Для повышения устойчивости у каждого пользователя должен стоять клиент, который обеспечит ведение архива пользовательского журнала и дублирование всей служебной информации о журнале. Средства ведения архива должны быть максимально развитые, обеспечивающие востановление по частям. Этот клиет должен кешировать информацию при обмене с системой.

Итого:

1. Множество серверов -- S1, через которые идёт вход в систему. Их задача -- авторизация, оповещение клиентов о состоянии системы, управление имёнами, распределение нагрузки по системе, маршрутизация. Предоставляют клиентам информацию о местонахождении запрошенного контента.
2. Множество серверов -- S2, хранилище контента. Любой подходящий хостинг. Система должна уметь автоматически заводить хостинг и размещать на нём контент, доменное имя не имет значения, но инфомация с данными о хостинге предоставляется пользователю на всякий случай.
3. Множество серверов -- S3, архивы.
4. Множество клиентов на машинах пользователей.

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

В любом случае система потребует организационных мероприятий и администраторов, которые будут заниматься управлением довереных им элементов системы... Делегирование полномочий... Сбор пожертвований... Круг Капитанов (в смысле Админов) и т.д... :)

Возможно и регистрация как некомерческая общественная организация...

(Reply to this) (Parent)


[info]hcube
2006-11-18 03:05 pm UTC (link)
Технически - несложно. Надо просто ввести уровень абстракции 'распределенная ФС', которая как раз и реализуется в хранилке. Тогда все остальное - индексы, данные, системы поиска - они уже лежат в этой ФС (т.е. по сути получаются ОТКУДА-ТО из сети, а откуда - знает только модуль реализации распределенной ФС), и могут быть легко модифицированы. Т.е. никто в сети - даже авток контента не имеет полной копии данных. Он просто КЛАДЕТ их в систему, а система уже сама их расталкивает по 'коллегам', сообразно критериям максимальной скорости доступа к этим данным. При 3-4 кратной избыточности вывести из строя эту распределенную ФС будет практически невозможно - для этого надо ОДНОВРЕМЕННО вывести из строя 3/4 подключенных к системе компов - иначе система 'увидит' недостаточную избыточность и увеличит нагрузку на оставшиеся компы.
Т.е. математически задача выглядит так - есть неизвестное число сетевых устройств хранения на каналах разной пропускной способности. Как организовать на этих устройствах УСТОЙЧИВУЮ систему хранения данных, при этом минимизировав сетевой обмен между ними - это как раз вопрос для изучения. Надо полагать, у нас должен быть аналог FAT, который содержит записи о том, где какой кусочек данных расположен, при этом сам FAT ТОЖЕ расположен на распределенном хранилище. Возможно, таблицу размещения есть смысл держать на ВСЕХ компах и обновлять широковещательными посылками или в динамическом режиме.

Вопрос в том, как обеспечить синхронизацию - это раз. Нужен какой-то алгоритм 'распихивания' данных который не создает меганагрузки на сеть - тут надо поучиться у п2п. Но в отличие от п2п у нас есть задача организовать контент с МАЛОЙ степенью избыточности, в отличие от п2п, которая распространяет миллионы копий одного и того же контента.

И наконец основной вопрос - система поиска и навигации.

(Reply to this) (Thread)


[info]dmi2130
2006-11-18 03:18 pm UTC (link)
>>И наконец основной вопрос - система поиска и навигации.

Основной вопрос, это допустимое время поиска и навигации...

(Reply to this) (Parent) (Thread)


[info]aamonster
2006-11-20 08:29 am UTC (link)
Основной вопрос - это написание ТЗ :-)
Обычное дело.

(Reply to this) (Parent) (Thread)


[info]dmi2130
2006-11-20 08:54 am UTC (link)
:) ТЗ можно и на космолёт написать... Да только летать оно ещё очень долго не будет... если вообще понадобится.

(Reply to this) (Parent) (Thread)


[info]aamonster
2006-11-20 09:07 am UTC (link)
ТЗ пишется/согласуется так, чтобы реализовать можно было. Иначе это не ТЗ.
Следствие: ТЗ не может быть написано заказчиком.

(Reply to this) (Parent) (Thread)


[info]dmi2130
2006-11-20 09:17 am UTC (link)
Так же и не может быть написано испольнителем... :) ...исполнитель пристрастен.

(Reply to this) (Parent) (Thread)


[info]aamonster
2006-11-20 09:21 am UTC (link)
Угу.
Скажем так - кое-как может быть написано исполнителем, разрывающим пасть заказчику. Но оптимально - специально выведенной особью, которая в состоянии понять обоих.

(Reply to this) (Parent)

Заранее прошу прощения за оффтоп
[info]vasya_kurolesov
2006-11-19 11:17 pm UTC (link)
К прошлому нашему разговору об СГО и взаимопомощи. Вот такой "спам" получил от администрации Маил.ру:

Ответы@Mail.Ru - абсолютно новый проект, где ответы дает не робот, а сообщество пользователей. Эффективность его столь высока, что ежедневно на самые разные вопросы в общей сложности поступает почти 200 тысяч ответов. Просто задайте вопрос и тысячи добровольцев поделятся с Вами своими знаниями. Адрес проекта - otvet.mail.ru

(Reply to this)

Вопрос
[info]obsrvr
2006-11-20 06:51 am UTC (link)
Может и не по теме, но все же.
Как можно организовать просмотр в ЖЖ-ленте друзей записей авторов, пишущих в других блогах - mail.ru блогах, liveinternet, diary и др. Или надо завести аккаунт специально для чтения в каком-нибудь другом месте?

(Reply to this) (Thread)

Re: Вопрос
[info]schegloff
2006-11-20 09:45 am UTC (link)
Надо завести аккаунт на ленте.ру и сформировать там RSS-ленту. Занятие занудное, я дальше аккаунта не двинулся.

(Reply to this) (Parent)


[info]aamonster
2006-11-20 08:28 am UTC (link)
А задача-то какая? Freenet, Gnutella/eDonkey/Kaazaa/bitTorrent и Skype решают три совершенно разные задачи. Freenet imho не особо популярна в основном потому, что народ пока не оценил важность именно этой задачи (распределенный бэкап).

(Reply to this) (Thread)

Задача - ТЗ на F2F
[info]schegloff
2006-11-20 09:44 am UTC (link)
Но чтобы не все вообще (вплоть до замены IP на новый протокол) с нуля придумывать, а воспользоваться имеющимися наработками, нужно эти наработки ручками пощупать. Чем собственно и занимаюсь.

F2F, как я теперь начинаю понимать, - это развитие топологии сети, позволяющее формировать "виртуальный сервер" - то есть складывать создаваемый контент в более удобное место, чем собственный винт, ЖЖ или предоплаченный хост. При этом понятие "удобное" пока еще не развернуто - кому-то хочется доступа из любого места, кому-то - защищенности от возможных проблем с копирайтом.

Так что пока идет треп - обмен мнениями обо всем на свете, в ходе которого может и что-нибудь полезное промелькнуть. Для того, кто сумеет заметить :)

(Reply to this) (Parent)

Замечательно, но для меня вот что важно...
[info]sergeikozlovsky
2006-11-20 01:39 pm UTC (link)
Для меня самое важное в том факте, что в пиринговый сетях большую долю ЛИЧНЫХ ресурсов учатники отдают на ОБЩУЮ организацию. Да, она пока малоэффективна - но это пройдет. Главное - караван пошел к колодцу и будет идти каждый день. ВОТ ЭТОТ ВИД УЧАСТИЯ никакая диктатура отменить не в состоянии НИКАК - в этом залог нашего выживания как вида.

Дрекслер Эрик в "Машинах создания" прогнозурует, что государства и общества, которые войдут в нано-тех-эру в состоянии СУ-2 (а может и СУ-3) просто уничтожат свое население - оно будет ненужно для правящей элиты. Поэтому выйти на СУ-4 в ближайшие десятилетия - это вопрос жизни и смерти любого конкретного общества.

И пиринговые сети - это тот самолет братьев Райт, который уже пролетел свои 1000 метров в нужную сторону - создание технических основ СУ-4.

(Reply to this) (Thread)

Вопрос жизни и смерти конкретного НАСЕЛЕНИЯ :)
[info]schegloff
2006-11-20 02:02 pm UTC (link)
С точки зрения концепции социоров, отдельно взятый социор, перебивший мотыгами 90% грамотных людей и загнавший остальные 10% работать в шарашки, может очень даже неплохо выжить как социальный организм - если не найдется другого социального организма, который по первому от души отбомбится. Поэтому интересы отдельно взятого интеллектуала и расцветающих повсюду социоров (с лозунгами "научим Родину любить") расходятся все сильнее и сильнее.

Вот почему я про Третью Мировую уже и не заикаюсь - ИМХО, и так все ясно, а кто еще не понял, по мере нарастания событий своим умом дойдет. Мне теперь технологии интересны.

(Reply to this) (Parent) (Thread)

Re: Вопрос жизни и смерти конкретного НАСЕЛЕНИЯ :)
[info]sergeikozlovsky
2006-11-20 02:14 pm UTC (link)
Серж, анализируя отклики на твою заметку о пиринговых сетях, я вижу, что подавляющее большинство видит только то, из чего можно (или нельзя) извлечь сиюминутную пользу. Потенция для большинства - невидима. Ты из тех, кто делает ее видимой, проектирует мостки в грядущее. Восхищен.

(Reply to this) (Parent)


[info]hcube
2006-11-29 09:45 pm UTC (link)
Спорно по поводу шарашек. Техуровень растет, недовольный жизнью инженер скажем на ТЭЦ может устроить местное Послезавтра - простым задержкой включения поджига газа секунд на 15 ТЭЦ выводится из строя месяца на два. В Москве к примеру это будет под полмиллиона жертв. А если еще и никто эти ТЭЦ чинить не умеет...

По поводу технологии... я тут немного подумал... пожалуй, оптимальна будет такая структура данных - пользователь задает, с какой подробностью ему держать на диске индекс ОБЩЕЙ базы, и этот индекс у него лежит - до заданной подробности в виде связей, дальше - в виде линков на сервера где лежит продолжение структуры связей. База из себя представляет, понятно, ориентированнный граф. Помимо этого, у пользователя есть ответная часть к индекс-системе - а именно сервер, который содержит ЧАСТЬ общей информации и часть системы связей, относящуюся к этой информации. Видимо, довольно крупными кусками, но не только свою собственную, но и ту, которую Система сочла нужной зарезервировать. Т.е. у каждого есть его 'точка входа' в граф, с нужной степенью подробности, и часть (избыточная) этого графа включая конкретно полезные вещи - там, доки, и т.д - с другой.

По сути дела, например сайты производителей всякого железа - это недоразвитый пример того, что должна из себя представлять вторая половина - т.е. система навигации и конкретная документация. Система навигации может и должна быть нелинейной, т.е. не только просто линки по связи, но и 'веерные линки', которые представляют из себя набор переходов-по-условию.

(Reply to this)