[Перевод] Введение в SOLID: новый редецентрализованный интернет Тима Бернерса-Ли
Создание нового децентрализованного интернета долгие годы волнует умы специалистов. Профессор Тим Бернерс-Ли пошел еще дальше и нашел способ редецентрализовать интернет. Что это значит, как с этим связан проект Solid и что такое «поды»? Читайте в нашем переводе статьи Arnav Bansal, опубликованной на сайте freeCodeCamp.
Недавно профессор Тим Бернерс-Ли представил проект под названием Solid. Я решил ознакомиться с ним. В этой статье я объясню, для чего нужен Solid и как вы можете начать работать с ним.
Что такое Solid?
Solid — это попытка редецентрализовать интернет.
Редецентрализовать?
Раньше интернет представляли как децентрализованное общее пространство для считывания и записи данных. Первый браузер, который назывался WorldWideWeb, был также и редактором.
Однако с развитием интернета структура веб-приложений по целому ряду причин стала централизоваться. Данные пользователей превратились в источник силы и дохода интернет-компаний.
Solid — решение этой проблемы.
Solid — это новая парадигма для веб-приложений, которая обратно совместима с существующим интернетом.
Solid — это набор технологий, группа связанных протоколов и внедрений, а также растущее сообщество. Совсем как интернет.
Разделение приложений и данных
До появления интернета ваши данные хранились на личном компьютере.
Как только люди начали пользоваться множеством компьютеров, а в повседневную жизнь вошли еще и смартфоны, модель «ваши данные остаются с вами» сменилась на «ваши данные находятся в одном или нескольких крупных центрах обработки и хранения информации по всему миру, которыми управляют разработчики приложений».
Таким образом, приложения оказались тесно связаны с данными пользователей. Создание какого-либо приложения для сети предполагает глобальное управление персональными данными.
Приложения и их способность приносить деньги измеряются тем, как построена их база данных. Ваши данные тяжело переносить, поскольку в разных приложениях хранение информации сильно различается.
Что в результате? Почти каждое приложение является изолированным. Это снижает мотивацию разработчиков вводить новшества на уровне приложений. Существующие платформы защищены от сбоев, так как блокировка данных ограничивает пользователей в перемещениях.
Правила защиты данных
В некоторых странах были приняты законы о защите данных. Компании обязаны сделать вашу личную информацию управляемой, чтобы вы могли скачать или удалить ее.
Таким образом пользователям пытаются вернуть контроль над их данными. Это законное предписание, но не техническая реальность. Вся информация о пользователях по-прежнему находится у разработчиков, и от возможности скачать свои данные мало толка, если вы не можете перенести их в другое приложение.
Поды: держите свои данные при себе
Проект Solid решает технический аспект этой проблемы. Он позволяет создавать приложения таким образом, чтобы они могли считывать и записывать данные, которые хранятся в вашем поде (англ. «pod» — personal online data).
У вас и ваших друзей есть поды, которые содержат информацию. Вы даете приложениям разрешение на доступ к вашему поду.
У вас их может быть несколько: один вы используете дома, другой на работе. Ваш под может существовать на компьютере, или распределяться между вашими устройствами, или храниться для вас на каком-то ресурсе.
Поды содержат связанные данные. Ваш под может быть связан с информацией на моем поде или где-то в интернете.
Мы хотим, чтобы приложения работали на разных устройствах, но при этом наши данные были независимыми. И нам нужно, чтобы различные приложения могли использовать одни и те же данные и имели к ним доступ.
Идеи, лежащие в основе Solid
Изучение проекта Solid напомнило мне, как я делал первые шаги в веб-разработке. Помню, как одновременно осваивал HTML, CSS, JavaScript и фреймворки, которые использовались на тот момент.
Отличие лишь в том, что Solid это новый проект и найти помощь в его освоении сложнее.
Если подумываете начать разработку для Solid, то перед вами собрание основных концептов.
(P.S. Если вы хотите сразу перейти к делу, читайте раздел «Первые шаги»).
Связанные данные
Сила Solid и интернета в целом заключается в том, как все данные скрепляются гиперссылками.
В Solid вы храните созданные вами данные где угодно. Ваша личная информация, скорее всего, хранится в вашем поде. Как и в интернете, для доступа к этим данным вам нужно перейти по URL-адресу.
Самое время представить вам расшифровку названия Solid: SOcial LInked Data (общественные связанные данные).
Читайте подробности о связанных данных в контексте проекта Solid.
Среда описания ресурса (RDF)
RDF — это способ представления связанных данных посредством утверждений вида subject-predicate-object
. Их также называют триплетами.
RDF — это абстрактная модель. Ее даже можно представить на примере английских предложений. Перед вами задание из списка задач:
T1 is a task
T1 is labelled "Write an article about Solid"
T1 is due October 5rd 2018
T1 is assigned to @itsarnavb
T1 is incomplete
Turtle
Turtle — это компактный способ представления данных RDF с помощью URL для передачи subject
, predicate
и object
.
.
.
.
Три ссылки в каждой строке — Subject, Predicate и Object соответственно.
Они повторяются, их тяжело читать, поэтому у turtle есть система префиксов и условных обозначений. Это особенно важно при работе с большими документами.
@prefix p: .
@prefix rel: .
@prefix book: .
p:Nassim_Taleb rel:author book:The_Black_Swan,
book:Antifragile,
book:Skin_in_the_Game.
Читайте больше о turtle. Также вы можете ознакомиться с полным документом о turtle здесь. Это подробный публичный профиль профессора Рубена Вербора, который является частью команды создателей Solid.
Семантическая паутина
Тим Бернерс-Ли наилучшим образом объясняет смысл всего этого:
«Я мечтаю о том, чтобы интернет [с помощью компьютеров] мог анализировать все сетевые данные — контент, ссылки и транзакции между людьми и компьютерами. «Семантическую паутину», которая сделает это возможным, еще только предстоит разработать, но когда это произойдет, ежедневными механизмами торговли, бюрократическими процедурами и нашей повседневной жизнью будут заниматься машины, общающиеся между собой. «Интеллектуальные агенты», которых люди так давно расхваливают, наконец-то станут реальностью».
Первые шаги
Выполняйте эти задачи в любой удобной для вас последовательности.
Переходите на Solid
Вы поможете экосистеме Solid, если:
- вложитесь в разработку самого проекта Solid и инфраструктуры, связанной с ним;
- будете разрабатывать приложения, используя Solid.
Но имейте в виду, что в данный момент разработка для Solid — это тернистый путь со множеством проб и ошибок, на котором вам придется задавать глупые вопросы и искать на них ответы. Тут нет Stack Overflow, куда можно было бы обратиться. Для того, чтобы отладить некоторые ошибки, вам, вероятно, потребуется погрузиться в исходный код.
Вот сообщества, в которых вам могут помочь:
И наконец, вот мой Twitter для личных сообщений: @itsarnavb. Я попытаюсь ответить на все поступающие вопросы или найду того, кто сможет это сделать.
Я буду поддерживать актуальность этой статьи, опираясь на лучшие ресурсы для изучения Solid.
Дополнительные материалы