Виток спирали эволюции
Обратимся к мэйнфреймам, в которых в классическом виде была воплощена идея
централизации. Все вычислительные ресурсы были сконцентрированы в едином комплексе, там
же хранились и обрабатывались огромные массивы данных. Достоинства централизованной
архитектуры мэйнфреймов очевидны - это простота администрирования, защиты информации и
ряд других.
Среди множества характерных черт архитектуры мэйнфреймов особо отметим использование в
качестве основного средства доступа к информации алфавитно-цифровых терминалов. Решение
выглядело естественным, логичным и оправданным - если где-либо требовался доступ к
информационной системе, то к этому месту техническая служба подводила кабели и
устанавливала терминал, который тут же начинал работать и пользователь получал доступ к
мэйнфрейму. Если терминал ломался, техническая служба заменяла его, и пользователь
продолжал свою работу. Вообще говоря, терминал подобен бытовой технике - стиральной
машине, холодильнику или утюгу - простому устройству, которое все время функционирует, а в
случае поломки подвергается ремонту или замене.
Обратим внимание: поскольку терминал - устройство простое, не требовалось никаких
специальных действий по настройке и конфигурированию программного обеспечения в виду его
отсутствия. Терминалами управляли с мэйнфрейма, то есть централизованно. Пользователю не
надо было забивать голову данными об устройстве терминалов - достаточно было знать, как его
включить и на какие кнопки нажимать, чтобы запустить программу и работать с ней. Все
терминалы были однотипными - следовательно, гарантировалось, что программа, запущенная
на мэйнфрейме, будет работать (то есть отображать информацию и принимать ввод
пользователя) на них всех абсолютно одинаково. То есть, устройства на рабочих местах
пользователей вели себя предсказуемо и в любой момент могли бы быть заменены.
Все это было просто великолепно с точки зрения руководства компаний, где такая технология
использовалась. Затраты на обслуживание терминалов и линий связи, конечно, были, но это
были предсказуемые и прогнозируемые затраты на выполнение ограниченного набора чисто
технических действий со стопроцентным результатом.
Но вот произошла революция - появились персональные компьютеры. Стало возможным иметь
вычислительные и информационные ресурсы на собственном рабочем месте и управлять ими по
собственному разумению. Появился великолепный оконный графический интерфейс,
несопоставимый по своим возможностям с ограниченным репертуаром прежних алфавитно-
цифровых или даже графических терминалов. Появились новые средства ввода ("мышь" и
другие), интерфейс с пользователем усложнился, стал богатым и разнообразным, насыщенным
цветом, звуком и анимацией. Люди почувствовали вкус к работе с красивыми и изящными
средствами.
Но не это главное. Появились идея переноса части системы для выполнения на персональном
компьютере, непосредственно на рабочем месте - действительно, почему бы не поручить
персональному компьютеру выполнять ту часть программы, которая отвечает за интерфейс с
пользователем (а может быть, и ту часть программы, которая реализует прикладную логику), а
функции обработки данных оставить на центральном компьютере? Таким образом, система
стала распределенной - одна ее часть выполнялась на центральном компьютере, другая - на
персональном, который был объединен в сеть с центральным. Появилась исключительно удобная
и естественная парадигма "клиент-сервер" - модель взаимодействия компьютеров и программ в
сети. Высокими темпами стали развиваться средства разработки приложений в архитектуре
"клиент-сервер", которыми сейчас мы пользуемся для реализации информационных систем.
Начались дискуссии о том, какие функции выполнять на клиенте, какие на сервере, появилось
понятие "толстый" и "тонкий" клиент и так далее (все это хорошо известно по многочисленным
статьям и нет нужды пересказывать эту историю).
Однако архитектура "клиент-сервер" в том виде, в каком она описана выше, имеет два
существенных недостатка, видимых даже при поверхностном анализе. Сравним ее с
централизованной архитектурой мэйнфреймов. В последней абсолютно ВСЯ информационная
система находится на центральном компьютере. На рабочих местах стоят простейшие устройства
доступа, дающие возможность человеку управлять процессами в информационной системе. Ни
малейшего элемента информационной системы на рабочих местах нет - ни единой строки кода,
ни одного файла, ничего. Все процессы происходят на центральной машине, с которым
устройство доступа общается посредством максимально простого протокола (передаются экраны
и коды нажатых клавиш на пульте), аппаратно реализованного в устройстве доступа. Здесь мы
имеем выраженную в концентрированном виде идею "системы, поставляющей информацию"
(рис.2).