![](https://habrastorage.org/getpro/habr/post_images/338/281/9a2/3382819a2b08ba4dcfc2875d62b7041b.jpg)
Информация в сети смертна.
Любой сервис в сети может быть закрыт, и вся накопленная сервисом информация пропадет. Да, некоторые сервисы (привет, Википедия!) дают возможность скачать полный дамп своих данных, и размер этого дампа достаточно не велик, но поднять зеркало и восстановить сервис задача все равно сложная. Не только по техническим причинам, но и по материальным.
★ Чем популярнее сервис, тем больше денег нужно на хостинг.
Это, обычно, не проблема для коммерческого развития ресурса. Больше посетителей — больше денег с рекламы и иных сервисов. Но для поддержки популярного некоммерческого интернационального сервиса это может стать серьезным ударом. Донат и краудфандинг может спасти крупные общеизвестные сервисы, но вот мелким все равно приходится вешать назойливую рекламу, чтобы хотя бы окупить хостинг.
★ Веб обречен быть коммерческим
Сложно сказать, плохо ли это. Коммерческий сервис прежде всего следует интересу владельца, а не комьюнити. Вся информация на сервисе принадлежит владельцу, а не комьюнити. С одной стороны, это позволяет интенсивней и направленней развивать сервис, с другой же стороны это означает, что если в информации нет денег, то она не будет развиваться. А преимущество будут получать конкуренты, у которых больше денег.
Как мы видим, если сервис будет закрыт, воспроизвести его будет проблема. Но каковы риски закрытия сервиса?
- Коммерческий риск (проект не вышел на самофинансирование)
- Коммерческая цензура (контент блокируется решением суда по нарушению имущественных/интеллектуальных прав/патентов)
- Коммерческая самоцензура (часть контента не выгодна владельцу сервиса)
- Политическая цензура (власти не нравится ваша точка зрения, не совпадающая с официальной)
- Общественная цензура (какому либо сообществу не нравится ваше отношение к какой-либо религии, принятию/неприятию сексуальных меньшинств, отношение к оружию и средствам самозащиты)
Вероятно, список можно продолжить (отпишитесь в камментах, какие еще угрозы информации вы видите?), но очевидно риски велики. Вечных сервисов сейчас не существует.
Вы не владеете созданным контентом
Контент в сеть заносится миллионами, если не миллиардами людей. Это — статьи, сообщения и комментарии в форумах, видео, музыка и прочие файлы. Практически каждый пользователь создает какой то контент — нужный или ненужный.
Но кто владеет этим контентом? Тот кто может его удалить — владелец сайта. Все ваши файлы в облаках вам не принадлежат, добрый дядя дает вам возможность их там хранить, но если настроение дяди или его финансовые возможности изменятся — все может исчезнуть. Это казалось бы не новость, но до сих пор “на гитхабе заблокировали аккаунт” или “облако ubuntuone закрылось” или “orkut всё” воспринимается как что то необычное.
Что будет когда закроется Википедия? Ведь добрые глаза ее владельца не всегда смогут приносить столько денег? А что будет если закроется Лурка? Мне будет не хватать их контента, и я представляю как будет обидно авторам которые потратили годы, создавая, редактируя и поддерживая контент.
Сеть знает о вас все
Пару лет назад, я сделал небольшой сервис who-is-tracking-me, который позволял по загруженной истории смотреть, каким сервисам передается информация о ваших визитах в интернете. Более, чем на 80% сайтов есть все возможные системы аналитики и рекламные системе, которые могут собрать о вас полную информацию. Зашли на свою страничку в социальной сети? Отлично, теперь известно как вас, предположительно, зовут. Оставили заказ на пиццу? Известно где вы живете или работаете. Включили яндекс-карты, чтоб без пробок доехать домой? Теперь известен ваш маршрут (кстати, вы замечали что число ваших каждодневных маршрутов не так уж велико, и можно прогнозировать куда вы едете в определенное время?).
С одной стороны, многие скажут “нам нечего скрывать” и будут правы. Моя жизнь слишком проста и банальна, чтоб для кого то такая информация предоставляла ценность. С другой же стороны вся эта информация в совокупности по всем пользователям в отдельности и в реалтайме — просто таки клад для маркетологов. Также эта информация клад для агентств типа АНБ, ЦРУ, ФСБ для выявления “подозрительных” граждан, чья точка зрения отличается от общепринятой. Я не говорю о группах совершающих какие либо противоправные физические действия, это нужно пресекать, но у людей должна быть свобода информация и свобода мысли. Сейчас же все сводится к министерству правды с явной или неявной цензурой.
Выход? Технически, есть
Каким я вижу будущее веба? Каждый сайт представляет из себя веб-приложение. HTML/CSS/JS, статика картинок + манифест, завернутое в zip, подписанный ключом автора сайта. И распределенная документ-ориентированная база данных, которая будет работать в фоне в браузере и обеспечивать данными веб-приложение. По интерфейсу это может выглядеть как MongoDB, так что будем использовать ее термины. У каждого сайта своя база, идентифицируемая по guid сайта. Структура коллекций сайта фиксируется и подписывается автором сайта. Одной из коллекцией должен быть ACL, с иерархией прав. В этой коллекции будут указываться все контент-генерирующие пользователи. Каждый же документ в базе должен быть подписан автором документа.
Очевидно, такая база должна никому не верить из своих соседей, потому вся логика по проверке прав на записи должны быть прописаны в самой базе. Пришел документ, проверяем что id пользователя, подписавшего документ есть в ACL, и он имеет нужные права. Для обеспечения большей независимости пользователей, каждому пользователю следует автоматически генерировать id и ключ при входе на новый сайт.
Одной из сложных проблем является версионирование документов и их консистентость. Возможна ситуация, когда два пользователя будут в один момент времени видеть разную информацию. Но для такой системы я считаю нормальной консистентность “когда-нибудь”, означающую что система будет стараться синхронизовать данные и будет момент времени когда эти данные будут совпадать у двух произвольно взятых пользователей системы. Очевидно такой подход неприемлем, например, при заказе билетов, но action-системы для которых важна синхронность, должны подключаться как restful-сервисы. Следует разделять контент, который переживет полное обновление через некоторое время и action-сервисы.
Для крупных документов, видео-, аудио- или иных крупных документов желательно не использовать gridfs в распределенной базе, а использовать magnet-ссылки. В бизнес правилах на коллекцию для загружаемого пользователями контента нужно прописывать ограничение на размер документа (например аватар пользователя). Torrent же является хорошим транспортным уровнем для передачи файлов.
Устаревание данных. Данные будут сохраняться, пока в них заинтересован хотя бы один пользователь. После того, как исчезает последний “сид” данные погибают. Они могут воскреснуть, если такой сид вернется. Очевидно, данные в базе могут расти и пухнуть без меры. Хорошим средством на мой взгляд является принцип “феникса”. Так как все данные общедоступны (включая как данные базы, так и фронтенд), в определенный момент делается выжимка из актуальных данных и пользователи переходят на новую версию сайта. Желающие, могут оставаться и на старой версии, но когда последний из них перестанет ее использовать — она исчезнет. Так же любой пользователь может форкнуть сайт с его данными. Это вторая сторона полной информационной свободы.
Описание, конечно неполное, много нюансов еще надо учесть, но пока я не вижу неразрешимых проблем. Буду рад услышать ваше мнение о тех проблемах, которые вы видите в такой реализации.
Технически, выход есть, можно создать систему, которая решит все вышеперечисленные проблемы. Но проблема в том, что такая система никому не нужна. В большинстве своем, всех все устраивает. В обществе не назрело острое требование к решению проблем выше, а новая система будет мешать власти и бизнесу. Поэтому, это то будущее Веба, которого скорее всего не будет. Была у меня мысль развернуть краудфандинговую компанию на создание такой системы, можно было бы уложиться в 5-10 млн, но надо ли оно обществу?