Хабрахабр

[Перевод] Введение в 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, то перед вами собрание основных концептов.

S. (P. Если вы хотите сразу перейти к делу, читайте раздел «Первые шаги»).

Связанные данные

Сила 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.

<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/The_Black_Swan>.
<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/Antifragile>.
<http://example.org/person/Nassim_Taleb> <http://example.org/relation/author> <http://example.org/books/Skin_in_the_Game>.

Три ссылки в каждой строке — Subject, Predicate и Object соответственно.

Это особенно важно при работе с большими документами. Они повторяются, их тяжело читать, поэтому у turtle есть система префиксов и условных обозначений.

@prefix p: <http://example.org/person/> .
@prefix rel: <http://example.org/relation/> .
@prefix book: <http://example.org/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.

Дополнительные материалы

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть