IT-деспотизм или IT-демократия?

7 июль, 2004 - 23:00Андрей Зубинский
Наше обсуждение начнется несколько неожиданно: с опровержения вроде бы очевидного утверждения в преамбуле к статье. Для этого давайте обратимся к цифрам -- согласно данным, представленным в официальном руководстве к одной из лучших программных систем, обеспечивающих создание IT-инфраструктур, основанных на принципах централизованного управления, хранения и обработки информационных ресурсов -- Citrix MetaFrame, "IT-деспотизмом" охвачено фактически целое государство -- свыше 120 тыс. компаний с общим числом работников, использующих IT-ресурсы, более 50 млн. человек (Тим Ризер, Стив Каплан, Алан Вуд, "Citrix MetaFrame Access Suite для Windows Server 2003 -- официальное руководство", 2003 г.). Даже если сравнить эту цифру (50 млн.) с количеством официально проданных лицензий самой массовой ОС Windows XP (более 200 млн.), назвать "узкой нишей" область применения централизованных систем трудно. И уж тем более трудно считать предмет обсуждения малозначительным.


Две модели

Высокоуровневые архитектуры масштабных IT-систем, по сути, можно причислить к одному из двух основных классов на основании достаточно очевидного критерия. Несмотря на очевидность, кратко и емко сформулировать это критериальное свойство на русском языке трудно, поэтому прибегнем к "длинной" формулировке: наблюдается ли в системе ярко выраженная локализация задач хранения и обработки информации- Если анализ IT-системы позволяет ответить на этот вопрос утвердительно, то систему можно отнести к классу централизованных (или, неформально, "IT-деспотичных"). Есть еще одно распространенное современное название для централизованных IT-систем -- SBC (Server-Based Computing), к которому мы прибегать не будем в силу неоднозначности аббревиатуры (SBC -- это и Single Board Computer, и много чего еще). Если же утвердительный ответ невозможен, IT-систему следует относить к классу децентрализованных (или, опять же используя неформальные метафоры, "IT-демократичных"). Например, распространенная клиент-серверная архитектура является ярким образцом децентрализованной системы. Чтобы сразу расставить точки над "i", внесем некоторые необходимые коррективы в столь условный механизм классификации и определимся с используемыми в дальнейшем терминами.

Приведенное критериальное свойство имеет сугубо качественный характер, что, на первый взгляд, вносит неопределенность. И все-таки, даже если представить гипотетически возможную полноценную IT-систему, основанную на intranet-технологии, в которой пользовательские компьютеры фактически выполняют одно-един-ственное приложение -- броузер, можно смело утверждать, что такая система относится к классу централизованных. Ведь хранение и обработка информации в ней локализованы на intranet-сервере (или группе серверов). А уж степень "оснащенности" клиентских машин, их исполнение, характер их использования, системное ПО и прочие нюансы -- в принципе, дело десятое. Эти соображения подталкивают к уточнению нескольких важных терминов, которые являются непременным атрибутом обсуждения централизованных IT-систем. Термины эти давно стали общеупотребительными и даже заезженными, отчего приобрели совершенно недопустимую многозначность. Если с понятием "сервера" в данном контексте все достаточно ясно -- это та аппаратно-программно-территориальная единица ("единица" вовсе не означает, что "сервер" должен быть один) в IT-системе, для которой истинно критериальное свойство, то понятия "терминал" и "тонкий клиент" менее очевидны. Ситуация с этими понятиями усложняется и их "исторической удаленностью" друг от друга: термина-лы ведут свою историю с "мэйн-фреймовых" времен, а "тонкие клиенты" -- явление сравнительно недавнее. Хотя если немного задуматься, то между ними можно найти разве что количественные отличия -- даже самые "тупые" (dumb) алфавитно-цифровые терминалы (АЦТ), по сути, являются специализированными компьютерами, выполняющими строго ограниченное число задач, в перечне которых главные -- взаимодействие с сервером и пользователем. Если не замечать разницы между разрядностью процессоров (у АЦТ обычно восьмибитовых), объемами памяти и прочими сугубо технологическими деталями, то и "тонкие клиенты" во всех своих ипостасях ничем, в сущности, от терминалов не отличаются. Это все те же специализированные компьютеры, выполняющие ограниченное число задач. Потому в дальнейшем, отдавая пальму первенства исторически более ранним терминалам, автор будет употреблять именно этот термин, уточняя его по мере необходимости.

IT-деспотизм или IT-демократия?
Первый графический терминал стоимостью... более 100 тыс. долл. - IBM 2250

Итак, централизованная (или SBC) модель IT-системы. Давайте сразу обратим внимание на очевидное, для начала - на ее структуру. "Звездообразная" высокоуровневая топология с выделенным "местом" локализации всех информационных процессов (сервером) в центральном узле и множеством терминалов -- в периферийных. Второе достаточно очевидное соображение касается требований к пропускной способности соединений между терминалами и сервером -- вне зависимости от сложности решаемых пользователем задач для соединения терминал-сервер всегда есть четко определенное верхнее пороговое значение требуемой полосы пропускания, зависящее исключительно от параметров терминала. Это, можно сказать, фундаментальная характеристика всех без исключения централизованных систем. В децентрализованных (например, в клиент-серверных) системах требования к полосе пропускания соединения между клиентской машиной и сервером, напротив, определяются исключительно спецификой решаемых задач. Интересно отметить, что с повышением быстродействия клиентских машин в таких системах наблюдается эволюционное возрастание требований к полосе пропускания соединений -- ведь увеличение производительности клиентов провоцирует перекладывание большей части задач на "клиентские плечи".

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

Такого краткого "сравнительного анализа" нам, в принципе, достаточно для дальнейшего обсуждения, поэтому на дополнительных особенностях децентрализованных IT-систем мы останавливаться не будем (в конце концов, не угасший еще бум популярности клиент-серверных архитектур породил такое количество материалов об их специфике, что повторять в который раз недавно пройденное не имеет никакого смысла).

Эволюция терминалов -- от АЦТ к тонкому клиенту

Традиционный алфавитно-цифровой терминал - это специализированный микрокомпьютер, предоставляющий пользователю отображаемое экранное пространство (обычно - 24 строки по 80 символов в каждой) и воспринимающий "команды" -- нажатия клавиш на клавиатуре. Современные графические терминалы (тонкие клиенты), по сути, являются вариацией данной идеи, единственное существенное отличие заключается в "порциях" графической информации, обновляемых терминалом на экране. Если для АЦТ такая "порция" - один символ (или "знакоместо"), то для графического терминала -- это "разрешаемый прямоугольный участок" растрового дисплея. Размеры участка не фиксированы и могут, в принципе, даже превышать физическую разрешающую способность устройства отображения (по крайней мере, протоколы типа RFB такого не запрещают). Это фундаментальное отличие порождает ряд следствий -- если АЦТ для обновления одного "знакоместа" требуется передача по соединению одного (или двух - для многобайтных кодировок символов) байта, то графический терминал несоизмеримо прожорливее. Но при использовании традиционных "настольных" программ максимальная потребность графического терминала - полная перерисовка экрана, означающая передачу по сетевому соединению фактически содержимого памяти видеоадаптера. Для снижения требований к максимальной полосе пропускания разработчиками ПО для построения централизованных систем предусмотрены различные способы компрессии данных.


Немного истории... и не только

Как уже говорилось ранее, историческое первенство принадлежит централизованным системам, что позволяет использовать удачную аналогию с: историей развития общества. ЭВМ времен "тотально централизованных вычислений", как и древние государства, слишком дорого обходились создателям и предоставляли очень мало ресурсов. В таких условиях централизованное управление -- вынужденная необходимость. И, естественно, "централизация" не является застывшим, раз и навсегда определенным понятием - под ней сначала подразумевалось монопольное управление и эксплуатация ресурсов ЭВМ одним пользователем ("абсолютная монархия"), затем появилась пакетная обработка ("абсолютная монархия" с ускоренной процедурой коронации), затем -- режим разделения времени ("конституционная монархия"). Именно с появлением поддержки режима разделения времени операционными системами и начался период расцвета централизованных IT-систем   мэйнфреймы IBM буквально стали править миром, а в перечень терминалов попали не только очень близкие к традиционным сегодня АЦТ (например, IBM 2260, отличающиеся от современных АЦТ разве что "вынесением" управляющего терминалом микрокомпьютера в отдельное очень дорогое устройство, рассчитанное на обслуживание группы терминалов), но и настоящие "монстры" вроде IBM 2250 (первый интерактивный графический терминал с манипулятором типа "световое перо" стоимостью более 100 тыс. долл.). По данным уважаемого источника CACM (Communications of the ACM), к 1971 г. в США находились в эксплуатации порядка 70 тыс. терминалов класса IBM 2260, 100 тыс. наследников заканчивающейся эпохи "абсолютной монархии" -- телетайпов и около тысячи графических терминалов 2250.

IT-деспотизм или IT-демократия?
Достойный представитель второй волны централизованных систем -- X-терминал Envizex корпорации HP. Это "почти рабочая станция" на основе мощного для своего времени RISC-процессора i960

Но настоящего пика централизованные системы достигли в период расцвета ОС Unix и DEC VAX VMS. Именно из этих времен к нам пришли и неувядающие АЦТ, производящиеся по сей день и ставшие промышленным стандартом (например, VT-100), и ряд "долгоживущих" программ. Особый этап "Unix-VMS-централизации" обозначился после создания и становления графической платформенно-независимой среды X Window (о ней мы некогда подробно говорили в статье "X Window -- восполняя пробелы", "Компьютерное Обозрение", № 5-7, 2002). Его "особость" заключается в том, что X Window, несмотря на некоторую идеологическую отдаленность от терминалов (хотя термин "X-терминал" и является де-факто стандартным, он не соответствует принятой в этой статье классификации, все-таки X Window -- основа клиент-серверных, т. е. децентрализованных систем), позволила реализовать бюджетную модель "не совсем централизованных" систем. Рабочие X Window станции с "урезанной" функциональностью выпускались серийно достаточно долго -- практически до того момента, когда характеристики ПК достигли более чем приемлемого уровня. Сегодня серийный специализированный X-терминал -- огромная, почти антикварная редкость, его заменили обычные ПК, использующие чаще всего одну из легально бесплатных Unix-подобных ОС и X-сервер (и эта тема не осталась вне нашего внимания -- "Тонкий компьютинг и... Втор-сырье", "Компьютерное Обозрение", № 9, 2000). Клас-сические централизованные системы на основе ОС Unix (или Unix-подобных ОС) по сегодняшний день не утратили актуальности и достаточно широко применяются как в некритичных к графическим возможностям областях -- с использованием обычных АЦТ, так и при построении весьма развитых графических систем (например, анализа результатов научных экспериментов или управления реального времени). Однако, согласно принятой классификации, основанные на возможностях X Window системы относить к классу централизованных можно только условно (это первое обещанное уточнение классификации) в силу того, что X Window не характе-ризуется предельным значением требуемой полосы пропускания, зависящим только от параметров X-терминала. Как и во всех децентрализованных системах, для X Window полоса пропускания определяется особенностями приложений. Но Unix не являлась бы одной из самых гибких операционных систем в истории, если бы кроме классической X Window не было больше ничего. Во-первых, даже ситуация с X Window в какой-то мере исправляется при замене X-протокола неоклассическим протоколом RFB с помощью системы VNC ("Виртуальный сетевой компьютинг", "Компьютерное Обозрение", № 14, 2001). В этом случае на сервере достигается полная локализация процессов обработки информации, а требования к полосе пропускания соединения сервер-терминал действительно определяются только свойствами терминала. Во-вторых, современные Unix-системы поддерживают ряд сервисов, обеспечивающих целый букет разнообразных способов и приемов построения централизованных гетерогенных IT-систем -- от специализированного middleware до аналогичных RFB неоклассических протоколов других платформ (ICA, RDP).

IT-деспотизм или IT-демократия?
Семейство графических терминалов Sun Ray: согласно концепции построения централизованных IT-систем Sun, с этих терминалов пользователи могут получать одновременный доступ к Unix- и Windows-приложениям

Очередной виток развития централизованных систем фактически начался с момента появления "терминальных" версий 32-битной ОС Microsoft Windows и продуктов компании Citrix для этой платформы. Трансформация Windows в пригодную для создания централизованных IT-систем ОС оказалась очень привлекательной благодаря огромному количеству качественного прикладного ПО, разработанного для нее. На сегодняшний день централизованные Unix-системы (будь то на основе коммерческих или свободно распространяемых версий Unix-совместимых ОС) вполне мирно сосуществуют со своими Windows-аналогами и в некоторых случаях отлично их дополняют -- благо проблемы гетерогенности для этих платформ давно и успешно решены.


Экономика централизации

Технические вопросы и нюансы при принятой в статье степени детализации совершенно не важны. Для нас более важны экономические аспекты, оцениваемые "в большом" -- не "точные" цифры, и даже не пресловутый анализ TCO (общая стоимость владения, Total Cost of Ownership) -- слишком велик диапазон возможных вариаций как исполнения централизованных систем, так и условий их создания, развертывания и эксплуатации. При таком разбросе ни о какой "точности" говорить не приходится. Поэтому мы в наших рассуждениях прибегнем к качественному анализу, пусть не претендующему на полноту, но дающему, по крайней мере, достаточную информацию для самостоятельной оценки какой-либо реальной ситуации.

IT-деспотизм или IT-демократия?
Современный графический терминал HP T5300 для централизованных систем на основе серверной ОС Windows (или комбинации Windows и Citrix Metaframe). В машинах такого класса традиционно используются хорошо отработанные аппаратно-программные средства, поддерживаемые платформами Windows CE или Windows XP Embedded
Начнем мы, пожалуй, с самого неприятного -- с соотношения стоимостей развертывания централизованной и децентрализованной IT-систем. Обещать, что это соотношение, выраженное в цифрах, во всех случаях будет меньше единицы, может только неисправимый оптимист. Естественно, существует и исключение из правила, но если внимательно вчитаться в формулировку, назвать его "исключением" непросто: грамотно спроектированная централизованная IT-система на этапе развертывания может оказаться существенно дешевле, чем подчиненная той же цели безграмотно слепленная децентрализованная. И здесь все зависит в первую очередь от умения постановщиков высокоуровневых задач точно, без технократических излишеств и ура-оптимизма определить как информационные потребности, так и реальные возможности выбранных технологических решений. Например, для многих организаций, специализирующихся в оптовой и розничной торговле, может оказаться более чем подходящей централизованная IT-система на основе классического сочетания Unix-сервера и АЦТ. Это позволит уменьшить стоимость оборудования и системного ПО до рекордно низкой отметки (особенно если в качестве серверной ОС выбирается одна из свободно распространяемых Unix-совместимых систем). Но есть маленькое "но" -- наличие на момент создания проекта пригодного к эксплуатации прикладного ПО и организаций, его поддерживающих, т. е. как способных обеспечить быстрый ввод в эксплуатацию, так и имеющих возможность достаточно быстро обучить персонал. В тех случаях, когда такое удачное совпадение имеет место, проекты безусловно удаются и оказываются очень эффективными (примеры, подтверждающие справедливость данного утверждения, можно найти в материалах этого номера журнала). Если же специфика применения системы настоятельно требует использования ПО традиционного, "настольного" класса или в процессе проектирования выясняется, что пригодного прикладного Unix-ПО для решаемых задач просто нет, следует крайне щепетильно рассмотреть все варианты с приобретением уже готового ПО для платформы Windows -- вполне вероятно, что самые дорогие, но существующие сегодня, проверенные программы окажутся куда более разумным выбором, чем ожидаемые в будущем заказные разработки. Впрочем, все это прописная истина, которую другими словами можно сформулировать так: искать соответствия между возможностями ПО и информационными потребностями нужно помня, что любая уже существующая программа лучше, чем еще несуществующая, потому что ожидание -- это не только риск, это еще и время, а время -- это деньги.

А вот теперь стоит вернуться к фундаментальной особенности централизованных систем -- линейной зависимости требований к полосе пропускания соединений при росте масштабов. Экономический аспект этого свойства достаточно очевиден -- централизованные системы, по-видимому, очень хорошо подходят для построения масштабных распределенных IT-структур. Судите сами: широкополосные "дальнобойные" соединения далеко не дешевы на этапе эксплуатации. Соответственно их надо использовать максимально эффективно. Так, крупная ERP-система (Enterprise Resource Planning) в клиент-серверной архитектуре для каждого удаленного пользователя в среднем требует полосы пропускания, большей 128 KB. При росте их числа расходы на содержание только сетевых соединений могут достигать астрономических величин. В централизованных IT-системах требование к полосе пропускания ниже на порядок -- но это только один аспект экономии.

Удаленные "терминальные офисы" не нуждаются в собственной вычислительной мощности и, соответственно, в неизбежно необходимом для обслуживания такой мощности персонале. Это второй аспект.

Любые сетевые соединения могут преподносить сюрпризы, как бы ни были надежны сетевые протоколы, серверы и операционные системы. Стоимость такого сюрприза определяется ценностью информации, передающейся от удаленного сервера через соединение. В "терминальном офисе" ее ценность фактически равна: нулю -- любой сетевой сбой может привести разве что к временной порче картинки на экране монитора или к пропуску нажатия кнопки мыши (естественно, на системы управления, работающие в реальном времени, данное правило не распространяется). пусть этот третий аспект далеко не всегда очевиден, но в ряде случаев его целесообразно учитывать.

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

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


Не панацея...

Достоинств у централизованных IT-систем немало. Но это не означает, что они пригодны "для всех и для каждого". И здесь пора немного поговорить об их "еще одном" фундаментальном свойстве (на самом деле оно является всего лишь следствием из уже неоднократно упоминавшейся "сетевой" особенности). Ничто не бывает идеальным и ничего не бывает "за бесплатно", и более чем скромные фиксированные требования к полосе пропускания соединения между терминалом и сервером не исключение. Расплатой за такую приятную особенность становится максимальное время реакции -- время, необходимое всей системе в целом на полное обновление экрана терминала, которое, увы, немалое (конкретных цифр даже не будем называть, потому что они зависят от массы технических нюансов -- начиная от типа протокола и заканчивая характеристиками графической подсистемы). Гораздо важнее то, что оно фактически исключает возможность комфортной работы пользователей с нуждающимися в частых обновлениях большой экранной области программами. В обширный класс таких программ входят системы автоматизации проектирования, графические и издательские пакеты и т. п. При анализе пригодности централизованной архитектуры IT-системы для решения задач управления реального времени об этой особенности также не следует забывать. Но, как показывает практика, даже в масштабных централизованных проектах доля пользователей, для которых такая специфика значима, относительно невелика. В подобных случаях целесообразно прибегать к построению гибридных архитектур, объединяющих достоинства централизованных и децентрализованных систем. Благо любой рабочей станции или ПК можно придать "терминальные свойства" путем установки соответствующего ПО.