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

Примечание

Если существует отдельный компонент, например кнопка выключения, который может остановить работу всей системы в целом, то такая система не является распределенной.

Цель технологии блокчейна

При проектировании программной системы можно выбрать используемый тип архитектуры, подобно тому, как выбирается двигатель для автомобиля. Решение по выбору архитектуры может быть принято независимо от функциональных аспектов уровня приложения. Кто-то может создать распределенную систему, кто-то – централизованную систему, но с одинаковой функциональностью на уровне приложения. Архитектура является всего лишь одним из средств достижения конечной цели при реализации системы. Таким образом, платежная система, описанная в табл. 2.1, может быть реализована либо как распределенная, либо как централизованная система.

Каждая из двух описанных выше архитектурных концепций обладает собственными достоинствами и недостатками, а также своими особыми способами достижения конечной цели. Выбор конкретной архитектуры определяет в дальнейшем, как вы будете реализовывать функциональные и нефункциональные аспекты системы. В частности, эти архитектурные концепции предлагают совершенно различные подходы к обеспечению целостности. Это как раз тот момент, когда на сцене появляется блокчейн. Технология блокчейна (blockchain) (цепочка блоков транзакций) представляет собой инструментальное средство обеспечения целостности распределенных программных систем. Таким образом, блокчейн можно рассматривать как инструмент реализации нефункционального аспекта на уровне реализации.

Примечание

Главная цель технологии блокчейна – реализация и поддержка целостности в распределенных системах.

Перспектива

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

Резюме

• Архитектура программной системы определяет, как организованы ее компоненты и как они связаны друг с другом.

• Централизованная и распределенная программные архитектуры могут считаться полностью противоположными друг другу.

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

• Практическое правило: если в системе имеется отдельный элемент, способный полностью остановить ее работу, то можно с уверенностью утверждать, что такая система не является распределенной, вне зависимости от сложности ее архитектуры.