Среди работ, связанных с исследованием проблем адаптивного и адаптируемого программного обеспечения, особое место принадлежит диссертации, которую защитил в 2001 году Чарльз Херринг. Называется она «Жизнеспособное программное обеспечение. Интеллектуальная парадигма управления для адаптируемых и адаптивных архитектур» (Viable software. The intelligent control paradigm for adaptable and adaptive architecture), отличается же от других публикаций на данную тему тем, что ее автор не только профессионально изучает проблемы разработки программных систем, но и обладает серьезной кибернетической подготовкой. Как ни парадоксально, это редкое сочетание: специалистов, разбирающихся одновременно в теории управления и технологии программирования, практически нет.
![](/data/311/530/1234/077_0.jpg)
Я натолкнулся на диссертацию Чарльза Херринга, воспользовавшись для поиска в Web ключевыми словами «adaptable software», «adaptive software» и именами классиков кибернетики и теории систем, подобных Винеру, Берталанфи, Эшби и Биру. Оказалось, что моему запросу в Google удовлетворяет лишь этот материал!
К оценке уникальности диссертации можно подойти по-разному. Какой-нибудь скептик решит, что уникальность, скорее всего, свидетельствует не в пользу автора. Но с такой точкой зрения нельзя согласиться, если верить в будущий ренессанс кибернетики. Важно, что это не рядовая аспирантская работа. Диссертация написана человеком зрелого возраста, в ней аккумулирован многолетний опыт исследований, предпринятых автором сначала в Соединенных Штатах, а потом в Австралии. За отсутствием книг по программной кибернетике данную работу — в особенности ее первые обзорные главы — вполне можно рассматривать как учебное пособие.
Чарльз Херринг согласился дать интервью нашему журналу. С биографической информацией, богатым послужным списком и работами Херринга можно ознакомиться на его персональном сайте charles-herring.com.
Чарльз, что побудило Вас вложить столь значительный труд в диссертацию?
Прежде всего, я осознавал подлинное значение разных аспектов адаптации в процессе создания сложных систем. В большинстве нетривиальных систем элементы адаптации так или иначе присутствуют, чаще всего, в неявном виде. Когда сложность систем достигает критического значения, проблема адаптации выходит на первый план. К тому же надо учесть эволюционный характер создания сложных систем — вне зависимости от конкретной области применения.
Опыт показывает, что мы не строим сложные информационные системы по заранее разработанному плану, постоянно совершенствуя их по мере необходимости. Чаще всего история программных систем начинается с минимальной функциональности, но в последующем они вынуждены совершенствоваться, поскольку входят в сложную среду, одним из важнейших компонентов которой является человек, предъявляющий все новые требования и модернизирующий программы. В этой человеко-машинной среде протекают сложные процессы, создаются новые и модернизируются существующие программные системы, наконец, меняется сама среда.
Непосредственной мотивацией к написанию данной работы было желание ответить на вопрос, по каким принципам должны анализироваться и создаваться программные системы, чтобы они могли развиваться в согласии со сложной средой (коэволюционировать). Ответ на этот вопрос сформулирован мною в виде Интеллектуальной парадигмы управления (Intellectual Control Paradigm). У нее есть два непосредственных источника, две предпосылки — парадигма управления, разработанная Мэри Шоу (см. M. Show, Beyond Objects: A Software Design Paradigm Based on Process Control, 1995.), и хорошо известная модель жизнеспособных систем (Viable System Model), предложенная Стаффордом Биром. Используя эти источники в сочетании с положениями общей теории систем, я создал методику разработки жизнеспособного программного обеспечения (Viable Software). Я называю «жизнеспособной» такую программную систему, которая способна адаптироваться во времени под воздействием человека или каких-то иных агентов и при этом быть адаптивной.
Уточним различие между адаптивностью и адаптируемостью систем. На мой взгляд, они достигаются совершенно разными средствами и технологическими приемами...
Вы правы. Со своей стороны, я различаю адаптивность и адаптируемость следующим образом. Адаптивность — это способность самой системы, проявляющаяся в ходе ее работы. В свою очередь, адаптируемость — атрибут системы в сочетании с действиями внешнего агента, чаще всего человека, который придает системе новые свойства.
Концептуально адаптируемость проще, чем адаптивность. Обычно адаптируемая система имеет множество правил функционирования, и адаптация к среде сводится к выбору одного из них. Создание адаптируемых систем является одной из важнейших задач системной инженерии. Надеюсь, моя диссертация будет способствовать тому, что называют «миграцией знаний об управлении», и станет вкладом в дело создания подобных систем.
Но, разумеется, конечная цель заключается в создании автоматических адаптивных систем. Попытки их построения на принципах искусственного интеллекта были гигантским шагом — но, к глубочайшему сожалению, в ошибочном направлении. Концентрация интеллекта вокруг проблем искусственного интеллекта не принесла каких-либо позитивных результатов. Мне кажется, настало время вернуться к первоосновам кибернетики, и, собственно, этому посвящена моя диссертация.
Первая ее глава называется «Работа со сложностью». Осознание проблем, вызываемых сложностью, и стало мотивацией моих исследований. Я пришел к выводу, что сложность есть естественный результат совместной эволюции системы и среды. Одна сложность порождает другую, следующего порядка, и мы постоянно хотим делать все более и более сложные вещи. Когда система становится слишком сложной с точки зрения управления, ее необходимо перестроить и переструктурировать. В нашем случае основой для подобной перестройки может быть миграция человеческих знаний об управлении в программные системы.
Как Вы оцениваете текущее состояние дел в области адаптируемых и адаптивных систем?
Мы являемся свидетелями успешного продвижения в этом направлении. Многие компании, прежде всего IBM, Hewlett-Packard и Microsoft, уже осознали проблему сложности и необходимость в системах с элементами саморегулирования. На протяжении последних трех лет эти компании объявили о своих программах по созданию адаптируемых систем.
IBM называет свой подход «самоуправляемыми компьютерными системами» (Autonomic Computing) и строит его по «биологической» аналогии с нервной системой. Из того, что удается узнать, складывается впечатление о серьезности этой исследовательской программы, основанной на глубинном понимании проблемы.
HP предпочитает именовать свое решение «адаптивным предприятием» (Adaptive Enterprise). Здесь тоже обнаруживается некая «биологическая» аналогия, не случайно архитектуре присвоили имя Дарвина (Darwin Reference Architecture). Это, безусловно, решение очень высокого уровня, но пока оно выглядит несколько специфичным, в большей мере отражающим собственные взгляды специалистов HP.
Программа Microsoft, названная «динамической системной инициативой» (Dynamic Systems Initiative), сфокусирована на администрировании систем и их функционировании. Подход Microsoft прагматичен, определен в терминах, более близких к технологиям, но и явно более ограничен, чем два других. С коммерческой точки зрения, перечисленные инициативы пока пребывают в зародышевом состоянии, но очевидно, что необходимость в разрешении проблемы сложности ИТ-систем будет постоянным стимулом к их развитию. Что же касается академических исследований, на момент написания диссертации, то есть на 2001 год, они с достаточной полнотой представлены в моей работе. К сожалению, после защиты я был вынужден заниматься практическими делами и отвлекся от исследований.
Об инициативах IBM, HP и Microsoft написано много, в том числе в нашем журнале. При ознакомлении с ними возникает странное ощущение. С одной стороны, авторитет этих компаний непререкаем. С другой — создается впечатление, что авторам рассматриваемых подходов плохо известны азбучные истины теории управления; зачастую они «изобретают велосипед».
Приходится констатировать, что общая теория систем, теория управления и кибернетика не входят в современные университетские курсы по специальности компьютерные науки, что и является причиной отмеченного Вами парадокса. Из-за недостаточности современного образования усилия коммерческих компаний во многом сводятся к «изобретению колеса» — у нас говорят так. И все же есть определенные достижения в академической науке.
Я бы отметил интеллектуальную теорию управления как лучшее из сделанного за последние годы. Однако эта многообещающая теория остается вне поля зрения компьютерной науки. Большинство специалистов избирает антропоморфный путь развития систем, близкий к интуитивным, а не к аналитическим представлениям. Пример — агентская парадигма. Интеллектуальная теория управления (и я это показываю в своей диссертации) избирает путь структуризации проблемы на строго математическом базисе. В IBM, HP и других компаниях работают толковые люди, а их исследования и разработки мощно финансируются, поэтому хочется верить, что рано или поздно они выйдут на верную дорогу.
Чем объяснить то обстоятельство, что, хоть научная истина и находится на стороне кибернетически мыслящих специалистов, они остаются в меньшинстве, их просто не видно на общем фоне?
Я уже отмечал, что увлечение искусственным интеллектом увело развитие кибернетики от естественного эволюционного пути, первоосновы которого были заложены фон Нейманом, Винером, Эшби и другими. Не хочу наговаривать лишнего на тех, кто занимался проблемами искусственного интеллекта, но надо признать, что академически ориентированные ученые создавали неоправданный бум вокруг потенциальных возможностей искусственного интеллекта. Мощью своего интеллекта они сместили фокус, отвлекли кибернетику и теорию управления от естественного инженерного эволюционного пути. Но если тщательно проанализировать, нетрудно убедиться, что искусственный интеллект — это набор методик, а не систематический подход.
Теперь нам предстоит вернуться на «путь истинный», и в данном отношении есть хорошая новость: многие наработки из области искусственного интеллекта могут быть включены в адаптивные системы, но при этом следует руководствоваться системными представлениями. Должен отметить, что теория сложности в том виде, в каком ее представляют в Институте Санта-Фе, есть ни что иное, как реставрация кибернетики и естественное развитие трудов Эшби.
Как можно охарактеризовать архитектуры, ориентированные на сервисы (service-oriented architecture, SOA) и Web-сервисы в контексте нашей беседы?
Я вынужден зарабатывать на жизнь программированием и, как программист, нахожу технологию Web-сервисов очень полезной. Она мне представляется одним из эволюционных шагов, связанных с переводом программирования на уровень протоколов Internet. Но это — всего лишь технология довольно низкого уровня (Херринг произнес «plumbing», сравнив Web-сервисы с водопроводной системой. — Л.Ч.). Что же касается SOA, из нескольких прочитанных мною статей складывается впечатление, что это — первая попытка создать какую-то архитектуру вокруг Web-сервисов. Все, что я вижу помимо этого, является низкоуровневым и ИТ-ориентированным. Пока нет даже признаков адаптивного поведения, но сейчас делаются только первые шаги, поэтому следует подождать и посмотреть.
Словами «подождать и посмотреть» и закончилась наша беседа с Чарльзом Херрингом. Большинству из нас остается лишь наблюдать за эволюционным процессом, ожидая интересных результатов и испытывая чувство белой зависти к тем, кто вносит в него активный вклад.