TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #401

@systemswing

Системный сдвиг

Просмотры2,690Количество просмотров
Опубликован27 июн.27.06.2024, 13:46
Содержимое поста

Содержимое

Ответ на вчерашнюю загадку: мы-то сейчас уже не знаем и не помним, но 1990-е — это время, когда архитектура клиент-сервер победила архитектуру мейнфреймов. Филдинг понятно, про мейнфреймы в своей диссертации не пишет, она у него посвящена архитектуре сетевых программных систем, то есть заведомо не централизованных. Упоминание разных архитектур есть в главе 2, где Филдинг разделяет архитектуры на централизованные, распределенные и сетевые. Централизованные — это как раз мейнфреймы. Такая здоровенная железка, реально шкаф, с сотней+ процессоров, дисковыми (а когда-то и ленточными) накопителями, со специальной ОС, специальными СУБД, очень хорошо заточенными на конкретное железо. Помните книгу "Мифический человеко-месяц"? Они там как раз и разрабатывали OS/360 — операционную систему для IBM-овских мейнфреймов System/360. Это самый дорогостоящий проект создания ПО в истории. Начальная стоимость разработки ОС оценивалась в 30-40 млн. долларов, в итоге превратившихся в 500 млн. Общая стоимость вместе с железом — 5 млрд. в ценах 60-х годов. Это дороже Манхэттенского проекта и на втором месте после программы "Аполлон". В итоге IBM владел 90% рынка мейнфреймов, и почти весь бизнес использовал именно их. Мейнфрейм имеет централизованную архитектуру: всё происходит внутри него. Терминалы, при помощи которых к нему подключаются — не клиенты, это вообще не компьютеры, это только устройства ввода и вывода. Вычисления, память — всё внутри мейнфрейма. Так были устроены все корпоративные системы до 90-х годов. Развитие сетевых технологий шло принципиально другим путем: в сети изначально все узлы равны, и все "умные". Впрочем всё это было не очень важно, пока компьютеры (а не терминалы) появились на каждом столе в офисе. Это были "микрокомпьютеры", или персоналки — от Apple, Commodore и опять IBM (тут они не пропустили тренд). А такие же компьютеры, но чуть мощнее и в другом корпусе — стали серверами. Только стоили они на десятичные порядки дешевле мейнфреймов — те вообще часто не покупали, а брали в аренду, настолько они были дорогими. В 90-х полупроводниковая база стала достаточно мощной для решения интересных задач. Если поднять статьи 90-х годов, мы увидим много обсуждений "клиент-сервер vs мейнфрейм" (вот, например, из 1995 года) То есть, в 90-е постулат использования архитектуры клиент-сервер был ещё не совсем очевиден. Всё ещё кипело и бурлило. Даже есть взять децентрализованные системы — не все они обязательно являются клиент-серверными. Может быть, они ведут себя, как единый компьютер, размещенный на нескольких физических устройствах (например, распределенные файловые системы). Филдинг в диссертации рассматривает и анализирует несколько видов архитектур: ➡️ pipe-and-filter (актуален и сейчас, особенно для обработки потоков данных); ➡️ репликация и кэширование (системы, которые эмулируют для пользователя централизованную обработку — суперактуальны сейчас, практически в каждом проекте); ➡️ разнообразные версии клиент-серверной и многослойной архитектуры: с передачей состояния и без передачи состояния, с кэшированием и без, с комбинациями типа "Layered-Client-Cache-Stateless-Server". Пример клиент-серверного взаимодействия с передачей состояния — удаленные сессии, когда соединение поддерживается и состояние соединения — а часто и состояние выполняемого приложения — хранится на сервере. Сюда же относится удаленный доступ к данным (помните, в мейнфреймах СУБД были встроены прямо в ОС, ничего удаленного не требовалось!) — по типу SQL-запросов. На сервере хранится состояние транзакции для каждого клиента. ➡️ виртуальные машины (тоже архитектурный стиль!) ➡️ p2p взаимодействия ➡️ событийно-ориентированные взаимодействия (привет, event sourcing!), к которым Филдинг относит, неожиданно, Model-View-Controller (!) ➡️ распределенные объекты (слышали что-то про стандарт CORBA? я тоже почти нет)