Balancer>> 2. Ведение распределённой базы пользователейBalancer> Однако, такой вариант может обеспечить неплохую защищённость системы от падения отдельных узлов. Блоги соответствующего сервера станут недоступны, а вот пользователь сможет работать (читая доступные блоги) с другого, работающего сервера.
читал?
===
Современный интернет похож на пруд. То, что легко увидеть, заглянув в эти камыши, — это гуси (сайты). Они плавают на поверхности, они всем видны. Но есть еще караси (посетители), их несравненно больше, чем гусей, но их не видно — караси под водой. Мы лишь иногда видим круги на воде, и по ним можем догадываться, что караси здесь невидимо ходят.
Ситуация эта не менялась много лет, но браузеры развивались, и теперь браузер пользователя — это некий агрегат, который управляется скриптами, способен сам бегать по разным сайтам, собирая информацию для страницы, и — что особо интересно! — эту информацию хранить. Потому что есть html5, браузерные хранилища, есть кое-где SQLite, есть флэш-хранилища наконец. И все это может хранить информацию чуть ли не до 5 мегабайт и больше. Есть отдельный вопрос, доступна ли эта информация только сайту, который ее туда положил на хранение или можно ее сделать общедоступной. Этим вопросом я пока не интересовался, но и не суть важно. Кроме того, компьютер посетителя — это не терминал, а самостоятельная штука большой вычислительной мощности (иногда — больше, чем сервер).
Теперь смотрим сюда:
.....
Что это было?! Этого всего на моем сайте нет и никогда не было. Я тут ни при чем вообще. Эти блоки сам собрал на вашем экране ваш браузер, пока собирал эту страницу. Он побегал по разным сайтам и собрал. А сайты, между прочим, его отметили как посетителя, записали в статистику, провернули счтчик посещаемости и т.п. Но я и мой сайт тут ни при чем — я только дал вашему браузеру, грубо говоря, что-то вроде такого (владельцы движка поймут):
{_IMBLOAD:
Error _}
{_IMBLOAD:
Леонид Каганов: 2010/11/13 Биноник: сделали сервер публичного проекта _}
{_IMBLOAD:
http://vasya_pupkin.dyndns.org/blog/2010/11/12.html _}
{_IMBLOAD:
Ошибка 404: файл не существует _}
Это работает, причем уже полгода как (только обновиться бы, я там подправил чуть
. Работает это, правда, только с сайтами на движке, которые поддерживают мой протокол IMBLOAD. Я пока не интересовался вопросом, может можно какой-то JSON употребить, не изобретая велосипедов. Для чего это нужно? Во-первых, таким способом можно читать, например, френд-ленту. Не на одном сайте, и не специальными клиентами, а вот так вот — браузер сам пробежался, куда надо было, и собрал. Кроме того, необязательно копировать себе понравившийся пост Васи Пупкина — пусть он грузится с родного сайта, вдруг Вася написал дополнение или исправил опечатки?
Следите за мыслью дальше. Обратим внимание, блок номер три от Васи Пупкина — «не загрузился». На самом деле, такого сайта и нет, это я для примера. Почему сайт не отвечает? Да не важно. Быть может, блог Васи Пупкина находится на его домашнем компьютере, и он сейчас выключен, а Вася на неделю уехал в деревню.
И вот дальше начинается самое интересное. Предположим, браузер видит, что сайт недоступен. Нет гуся на пруду, в нашей терминологии. Но есть караси. Которые, быть может, хорошо знают этого гуся, быть может, были у него на сайте совсем недавно и у них в кэше (который, как мы помним, много мегабайт) могла сохраниться его страница. Дело за малым: найти карася, у которого остался кэш. Конечно, браузеры между собой общаться не могут. Но они могут послать сигнал на ближайший сайт системы о том, что такой-то узел не отвечает, нет ли кэша? Кэша, понятное дело, у сайта нет. Но зато он теперь будет спрашивать всех проходящих мимо браузеров, не сохранилось ли у них этого материала. И если сохранилось — то пришлите на сайт, чтобы его снова раздавать.
Мораль: нет ничего невозможного в том, чтобы создать технологию и сеть движков, которая бы стирала разницу между гусями и карасями. В результате мы получаем надежную отказоустойчивую самовосстанавливающуюся систему. И как только я закончу строить на binoniq.net традиционную «гусиную» составляющую (блогохостинг с классическими пользовтаелями), я наверно начну эксперименты по работе с «карасями», потому что я думаю, что за этим будущее. По крайней мере — одна из важных составляющих информационного будущего.
===