Почему сложно писать о передовых информационных технологиях?

Александр Котов 833 слов
информатика технологии децентрализация распределённые системы

Однажды мы выпустили статью «Децентрализованные сервисы против распределённых»[1], где предприняли попытку подтолкнуть читателей к более обдуманному отношению к терминам, таким как «централизованный», «децентрализованный» и «распределённый». Это имеет значение не только с точки зрения теоретической информатики и удобства практической деятельности по написанию программного обеспечения. Часто такие термины используются спекулятивно с целью рекламного продвижения продуктов сомнительного качества, таких как некоторые реализации децентрализованных финансов (DeFi; от англ. decentralized finance), а то и вовсе мошеннических предложений.

Мы не собирались развивать эту тему, так как любая попытка составления подробной классификации обречена на провал. Технологии развиваются быстрее, чем успевают осмысляться, а их сложность не даёт шансов охватить все тонкости. Единственное, что можно сделать — это посоветовать подробнее изучать то, что собираетесь использовать.

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

Однако мы столкнулись, помимо прочего, с обвинениями в невежестве. Это может означать, что мы слишком плохо объяснили нашу мотивацию. Мы хотим исправить эту ошибку, потому что проблемы эпистемологии и языка довольно важны для нас, они касаются мышления о мире вообще, а не только о технологиях.

Та самая "неправильная" картинка
Та самая «неправильная» картинка

Что же не так с распространёнными вариантами использования упомянутых терминов? Начнём с рассмотрения представленной выше картинки, альтернатива которой была показана в нашей статье. Она часто используется для иллюстрации соответствующих терминов, причём не только в популярных статьях, но и в научных публикациях. Так, в одной из рассмотренных нами публикаций децентрализованная система определяется в том числе как система без единой точки отказа, и тут же приводится эта картинка.[3] Если присмотреться к ней, то в примере децентрализованной системы есть один узел, при удалении которого части системы больше не будут связаны. Возможно, это не является противоречием при каком-то экзотическом определении требований к системе, смысла узлов и связей между ними, но рассматриваемая публикация не содержит ничего подобного.

Рассматриваемая выше картинка ведёт своё происхождение из книги «On Distributed Communications Networks»[6][4]. Там даётся определение децентрализованной сети как такой, где отказ центрального узла не приводит к полной потере связности между всеми узлами, а лишь некоторыми. Это было довольно актуально в то время, поскольку количество информации, передаваемой между отдалёнными узлами больших сетей было невелико, а связность внутри организаций могла быть гораздо важнее, чем между ними. Чего нельзя сказать про наше время. Кроме того, автор рассматривает довольно узкий вопрос сетевых топологий, то есть физической связности. У современных же систем есть множество других свойств, таких как доверие между узлами или хранение данных на разных узлах.

Классификация сетевых топологий. Возможно, тоже неправильная или неполная
Классификация сетевых топологий. Возможно, тоже неправильная или неполная

Попытка создать современную классификацию была предпринята, например, в работе 2020 года «Decentralized vs. Distributed Organization: Blockchain, Machine Learning and the Future of the Digital Platform»[7] Там предлагается воспринимать децентрализацию как рассеивание коммуникации, а распределённость как рассеивание принятия решений. Это интересная работа с историческим обзором, собственным теоретическим аппаратом и масштабными выводами, в том числе социально-политического характера. Однако её результаты противоречат устоявшейся терминологии, а также являются слишком сложными, чтобы их можно было корректно применять. Так, в добавок к существующим трём терминам там вводится ещё один — концентрированные системы. Авторы текстов с тремя-то не справляются.

Похожий подход предлагает и создатель криптовалюты Ethereum Виталик Бутерин в статье «The Meaning of Decentralization».[5] Он особенно подчёркивает, что каждая система может классифицироваться тем или иным образом по каждому из трёх различных критериев:

  • Архитектурная децентрализованность — как много узлов в системе? Как много из них могут выйти из строя, не вызывая отказа всей системы?
  • Политическая децентрализованность — как много людей или организаций контролируют систему?
  • Логическая децентрализованность — являются ли интерфейсы и структуры данных системы единым монолитным объектом (как в блокчейне) или нет (как в федеративных социальных сетях)?

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

Главным возражением на нашу статью было противоречие (только кажущееся) нашего определения распределённой системы наиболее распространённому, согласно которому это коллекция узлов, которая выглядит для пользователей как единая когерентная система. Это определение даёт сам Эндрю Таненбаум в книге «Distributed Systems: Principles and Paradigms»[8]. Наше определение, возможно, более широкое, но оно точно полностью включает указанное. Есть, например, распределённые базы данных, управление которыми осуществляет одна инстанция, принимающие некоторые административные решения. Однако необходимость наличия администратора в случае баз данных не вызывает никаких сомнений и при обсуждении может не упоминаться. Большую же часть времени они работают автономно, без какого-либо единого центра принятия решений, и принятие решений действительно осуществляется всей сетью с помощью алгоритмов распределённого консенсуса, таких как Paxos или Raft.

Таким образом, удобство классификаций и определений сильно зависит от того, какие задачи необходимо решать. Как мы уже писали в статье «Почему слово Интернет пишется с прописной буквы?»[2], мы не указываем вам, как и что говорить, лишь помогаем думать эффективнее и не попадаться в ментальные ловушки, расставленные теми, кто на самом деле хочет вас контролировать. Это непростая задача в столь быстро меняющеся мире, но благодаря вашей поддержке и обратной связи мы сможем выполнять её более эффективно.


Связанные статьи

  1. Децентрализованные сервисы против распределённых
  2. Почему слово Интернет пишется с прописной буквы?

Ссылки

Литература

  1. Baran P, «On Distributed Communications Networks» (1964)
  2. Vergne JP, «Decentralized vs. Distributed Organization: Blockchain, Machine Learning and the Future of the Digital Platform» (2020) doi:10.1177/2631787720977052
  3. Tanenbaum AS, Steen MV, «Distributed Systems: Principles and Paradigms» (2006) ISBN-13: 9780132392273