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

Исторический контекст

Говоря простыми словами, архитектура — это то, как устроена вещь. По сути, архитектура — это искусство и наука проектирования вещей, но в мире вычислительных систем приоритет назначают теории, науке, потому что это практично. Для сохранения знаний и лучших методик разрабатывают архитектурные шаблоны.

Считается, что первые рассуждения об архитектуре компьютера появились в переписке Чарльза Бэббиджа и Ады Лавлейс в 1843 году, когда Бэббидж перерабатывал проекты разностной и аналитической машин. Архитектуры обсуждались между ними весьма активно, но если Бэббидж находил их выражение в вычислениях, то Лавлейс — в программировании. Так были заложены основы существующего сегодня разнообразия компьютерных архитектур.

Через 90 лет на волне прогресса в области электричества и полупроводниковых приборов Алан Тьюринг, Конрад Цузе и другие начали создавать прототипы компьютеров, работавших по схожим принципам и в качестве основной функции имевших вычисления. В 1945 году Джон фон Нейман описал компьютерную архитектуру, в соответствии с которой впоследствии было создано множество различных компьютеров, каждый со своими особенностями, но все они подчинялись общим принципам.

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

На практике к 1950 году концепция компьютерной архитектуры вышла за рамки наборов инструкций и логических схем: в понятие компьютерной системы стали включать периферийные устройства, языки программирования и прикладное ПО. Для интеграции всех этих компонентов потребовались архитекторы систем.

В 1950–1960-е годы взаимосвязанные архитектуры процессоров, шин, операционных систем, периферийных устройств обычно контролировались одним поставщиком — в число первых продавцов таких ранних монолитных систем вошли IBM, Sperry Rand и Control Data Corporation. В то время появилась профессия архитектора продукта — человека, способного спроектировать компоненты и интегрировать их в единое решение.

В 1950-х годах компьютеров стало достаточно много, для того чтобы появилась потребность в их объединении, что не предусматривалось в первоначальном наборе технологических параметров компьютерных систем, поэтому началась разработка сетевых архитектур, которые стали применяться в 1960-е. Подключение периферийных устройств: хранилищ, мониторов, сканеров и принтеров — усложнило архитектуры проектирования и развертывания, что привело к появлению потребности в архитекторах решений, которые сопоставляли требования бизнеса с возможностями продуктов.

В конце 1950-х годов зародилась, а в 1960-х стала активно развиваться компьютерная наука. Отношения между нею, математикой, электронным машиностроением и инженерией ПО всегда были конкурентными — факультеты компьютерных наук в ту эпоху обычно делились на вычислительно-ориентированные с уклоном в математику и инженерно-ориентированные с технологическим уклоном. Понятие «компьютерная архитектура» приобрело несколько разных значений в зависимости от научно-исследовательского или делового контекста.

Частичный отход от мейнфреймов в 1970-х годах вызвал потребность в новых компьютерных и сетевых архитектурах. Появление мини-компьютеров и локальных сетей вызвало фрагментацию традиционных бизнес-моделей, связанных с компьютерами, и распространение операционной системы Unix, языков Си, Smalltalk и SQL. С экономической и технической точек зрения началась демократизация компьютеров, стали зарождаться парадигмы архитектуры системной интеграции, что привело к существенному росту бизнеса компьютерных услуг — отныне поставщики продавали компьютерные решения, а клиенты платили за консультации по их наиболее эффективному внедрению.

Все более сложной становилась инженерия ПО и данных — возникли отдельные дисциплины. Специалисты в обеих областях понимали значение и ценность архитектуры в соответствующих применениях. Происшедшая в то время конвергенция экономической теории монетаризма и управленческой науки отразилась в интересе к оптимизации всех элементов компьютерной архитектуры, в том числе вычислительных. Как следствие, в университетах появился предмет «управленческие информационные системы», что в итоге вызвало интерес к регламентному управлению как основе архитектуры предприятия. Появление мини-компьютера и Ethernet, как следствие архитектурной работы предыдущих лет, в середине 1970-х резко изменило бизнес-модели поставки компьютеров.

В 1980-х годах стали цениться архитектуры компьютерной безопасности, хотя еще за 10 лет до этого они были лишь предметом исследований. Usenet облегчил обмен знаниями, TCP/IP — объединение компьютеров и распределение вычислений; Wordstar, VisiCalc и Lotus 1-2-3 упростили хранение и перенос бизнес-данных. Печально знаменитый взлом компьютеров DEC, проведенный Кевином Митником в 1979 году, стал предвестником грядущего: компьютеры, сети и данные оказались беззащитны. Проектирование систем с акцентом на безопасности стало приоритетом для всех элементов компьютерной архитектуры, хотя и не везде эти задачи начали решать сразу.

Писатель-фантаст Джон Браннер предвосхитил появление интернет-червей в романе 1975 года «Наездник ударной волны» — в 1988 году Роберт Моррис воплотил предвидение фантаста в реальность, создав первую программу-червь. Это привело к новому усложнению архитектуры безопасности, к чему практически никто не был готов.

В начале 1980-х годов военные и научные сети, включая Arpanet, Milnet, Bitnet, NSFnet и другие, начали взаимодействовать друг с другом — был создан прообраз открытой сети Интернет. Приложения, хосты и шлюзы, разрабатываемые в то время, в основном опирались на открытые стандарты. Крупные игроки, включая IBM, DEC, Novell и Microsoft, пытались продвигать проприетарные сетевые платформы, но эти попытки окончились неудачей. В то время зародилась идея архитектуры Интернета.

Время, когда все стало невероятно сложным

В 1980-х годах начался активный выпуск процессоров, поддерживающих вновь возникающие возможности. Архитектуры RISC, MIPS и VLSI меняли вычисления и программирование, а технология КМОП во многих компьютерах вытесняла N-MOP и ТТЛ-схемы. Появление персональных компьютеров меняло промышленную экономику, а с развитием графических пользовательских интерфейсов работа с компьютерами стала доступной широкому кругу людей.

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

В IBM сделали попытку взять под контроль всю сложность информационной архитектуры, предложив методологию Business Systems Planning, — в 1987 году появилась модель Закмана, позволившая формализовать и обобщить наработки корпорации, которые та до этого предлагала предприятиям в качестве проприетарного сервиса. На предприятиях внедряли всё, что могло бы позволить взять сложность под контроль, но в конечном счете эти проекты оказывались неэффективными, очень дорогими и нередко подрывавшими бизнес [1].

Ко времени появления червя Морриса в 1988 году стало очевидно, что многие элементы компьютерной среды, от процессора до сети, имели легко эксплуатируемые дыры. Индустрии также недоставало связной интеграционной архитектуры, что стало понятным, когда компании начали массово инициировать проекты, которые часто оказывались провальными, становясь героями новостей информационных агентств [2].

В результате анализа провалов почти всегда выяснялось, что их причины — чересчур большая сложность систем, неверное понимание общей архитектуры и недоработки в архитектуре отдельных компонентов [3]. Из-за высокого уровня общей сложности упускались из виду элементарные ошибки, такие как путаница между метрическими и имперскими единицами измерения в роботизированном зонде Mars Climate Orbiter, из-за чего тот в 1998 году бездарно сгорел в атмосфере Марса, так и не успев начать работу. Семь лет спустя элементарную ошибку в вычислениях допустили в Европейском космическом агентстве, что привело к взрыву ракеты Ariane 5. Скрытые ошибки в процессорах и программном обеспечении приводили к катастрофическим результатам: в конце 1980-х из-за арифметического переполнения в аппарате лучевой терапии Therac-25 погибли семь пациентов.

Закон Мура, популяризованный в 1975 году, продолжал действовать, и к 1984 году чипы уже выпускали по технологии 1 мкм. Сохранение экспоненциального роста числа транзисторов в процессорах означало, что очень быстро оно достигнет триллиона, но в вышедшем в 1985 году чипе Intel 80386 их было только 275 тыс. Этот процессор оказался достаточно надежным, но к 1994 году выяснилось, что его суперскалярный преемник Pentium выдает ошибки при вычислениях с плавающей запятой, из-за которых возникали весьма неприятные последствия. На этом этапе архитекторы аппаратных систем стали гораздо больше внимания уделять роли средств функциональной верификации в понимании и устранении дефектов процессоров.

Знаменательным десятилетием для компьютерной архитектуры стали 1990-е годы. В 1991-м для широкой публики стали доступны Всемирная паутина и шифрование электронной почты по технологии PGP, которое позволило защитить часть информации, пересылаемой по Сети. Распространились компьютеры потребительского класса и пакеты вроде Microsoft Office, которые заработали эффективнее с появлением 64-разрядных процессоров. В 1995 году появился доступный Интернет, возникли Amazon, Yahoo, eBay, был выпущен Internet Explorer. Продукты, решения и корпоративные архитектуры нуждались в оперативном масштабировании, так как появились децентрализованные вычисления и хранилища, которые нужно было соединять друг с другом. Благодаря Интернету возникли новые сервисы, но многие из них, как, например, Encyclopedia Britannica, стали героями новостей о провалах из-за отказов по причине неверной архитектуры.

В 1996 году в США был принят закон о телекоммуникациях, в котором Интернет впервые фигурировал в качестве средства массовой информации. Закон потребовал новых средств и архитектур безопасности для управления контентом. А в 1998-м был принят закон Digital Millenium Copyright Act, ограничивший личное использование материалов, защищенных авторским правом, и освободивший провайдеров онлайн-сервисов от ответственности за нарушение авторских прав пользователями. Европейская директива об электронной коммерции 2000 года заставила архитекторов еще больше внимания уделять юридическим и регуляторным вопросам — в 2001 году серия судов уничтожила бизнес-модель p2p-сервиса Napster из-за обвинений в нарушениях авторского права.

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

Большинство компаний эры доткомов в начале 2000-х развалились, но, благодаря архитектурам, созданным для поддержки их сервисов, были основаны или продолжали развитие Google, Facebook, Amazon и Saleforce. Появилась идея облака и его варианты — платформа в виде сервиса, ПО в виде сервиса и др., которые дали толчок развитию новой волны архитектурных моделей, позволяющих масштабировать и поддерживать подобные решения. Предприниматели и компании пользовались этими новыми архитектурами, бросая вызов традиционным отраслям: телефонной связи, телевидению, печатной периодике и банковской сфере. Вокруг социальных сетей и криптовалют родились новые отрасли, а благодаря открытому коду и онлайн-репозиториям изменились принципы программирования. Возникли новые бизнес-модели, опирающиеся на облачные службы, — например, по обеспечению конфиденциальности и безопасности в виде сервиса.

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

Вкратце о новейшей истории: на пороге — новый виток миниатюризации электроники, ожидаемый с внедрением технологии 3 нм для изготовления чипов. Программы-вымогатели и массовый взлом систем заставляют пересматривать существующие архитектуры обеспечения безопасности. Машинное обучение меняет отношение людей к данным и принципы работы с ними, внедрение соответствующих технологий ведет к переменам во всем, от автомобилей до биологических наук. Датчики новых поколений генерируют шквалы новых данных, которые нужно собирать, сортировать и экономично преобразовывать в полезную информацию. Распространение микросервисов требует новых архитектур оркестровки. На волне популярности минимального программирования (low-code/no-code) пользователи обращаются к новым средствам разработки, однако управляющие корпоративные архитектуры не поспевают за этим процессом.

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

***

Сооснователь Woflram Research Теодор Грей выпустил образовательно-игровое приложение, в котором разъясняется роль молекул в качестве основы архитектуры всех веществ и предметов в мире. Применительно к миру компьютеров, очевидно, что залог успеха любого решения — качественная, грамотно спроектированная архитектура.

Литература

1. S. Kotusev. Enterprise architecture frameworks: The fad of the century. British Computer Society, July 2016. URL: https://www.academia.edu/26669887/Enterprise_Architecture_Frameworks_The_Fad_of_the_Century (дата обращения: 12.11.2021).

2. J. Williams. Avoiding the CNN moment // IT Prof. — 2001. — Vol. 3, N. 2. — Р. 72. doi: 10.1109/6294.918228.

3. The CNN moment: Trouble in paradise. In Dot-Com & Beyond, Santa Clara, CA: Sun Microsystems Press, 2001. — P. 19–32.

Джозеф Вильямс (joseph.williams@pnnl.gov) — директор отделения Тихоокеанской северо-западной национальной лаборатории.

Joseph Williams, The Computing Architectures Donnybrook. IEEE Computer, October 2021, IEEE Computer Society. All rights reserved. Reprinted with permission.