Почти 40 лет в компьютерных науках доминировала парадигма интерактивных компьютерных систем, предложенная в свое время Джозефом Ликлайдером. Она возникла из-за необходимости обеспечить взаимодействие пользователей с мэйнфреймами в режиме разделения времени и достигла пика развития на волне персональных компьютеров. Однако ничто не вечно. Не исключено, что с развитием компьютерных сетей эта парадигма претерпит существенные изменения, и на смену ей придет иная. В корпорации Intel считают, что будущее за проактивными компьютерными системами, то есть, за сетевой средой, которая «предвидит» потребности пользователей и даже выполняет какие-то действия от их лица.

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

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

И правда, если какому-либо пользователю доступны ресурсы одного или нескольких собранных в единую систему компьютеров, то интерактивное взаимодействие необходимо и достаточно — лучше него пока ничего не придумано. Но если человек попадает в насыщенную компьютерами среду, где на него приходятся десятки или даже сотни устройств (причем о существовании многих из них он не знает), то он просто не в состоянии взаимодействовать с каждым в силу физических ограничений. Следовательно, требуется иная модель, которая свяжет компьютеры непосредственно с окружающим миром, позволит им действовать с упреждением и самостоятельно от лица пользователя. Такая парадигма получила название proactive computing [1]. Дэвид Тенненхаус, один из руководителей исследований и разработок в корпорации Intel, представил смену парадигм в виде трех последовательных эволюционных этапов (рис. 1).

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

Среди ряда свойств проактивных компьютерных систем в интерпретации Intel можно выделить три основных.

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

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

Рис. 2. Экспериментальная модель персонального сервера

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

Уже сегодня по программе проактивного компьютинга в Intel ведутся несколько проектов. Совместно с университетом штата Вашингтон разрабатывается система Labscape, предназначенная для комплексной автоматизации микробиологической лаборатории. Название проекта, явно намекающее на landscape, можно понять как «информационный пейзаж лаборатории». Система Labscape свяжет в единое информационное пространство все приборы и оборудование лаборатории и, таким образом, обеспечит автоматический сбор результатов данных с экспериментальных установок и их предварительный анализ без личного участия персонала.

Другой пример — прибор недалекого будущего. Идея создания «персонального сервера» (personal server) инспирирована двумя технологическими достижениями — развитием беспроводных коммуникаций и постоянным повышением плотности записи на диски. В 2012 году диск диаметром 1 дюйм сможет вмещать 1 Тбайт данных, что позволит создать носимое устройство с практически неограниченным объемом хранимых данных. К тому времени окружающая среда будет насыщена источниками, передающими данные через эфир, и устройствами, дающими возможность эти данные просматривать. Карманный сервер станет своего рода личной библиотекой, видеотекой, аудиотекой и т.д. Он сможет автоматически обнаруживать источники данных и устанавливать взаимодействие с другими персональными серверами, готовыми передавать и принимать данные, причем делать это с упреждением запросов владельца.

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

  • Интегрированные исполнительные примитивы (Intel Integrated Performance Primitives (IPP). Эта технология позволяет с равной эффектностью выполнять ядра программного обеспечения на архитектурах от Intel и при этом даже «самые внутренние» циклы ядра могут быть оптимизированы без особых сложностей.
  • Возможности, основанные на XML. Язык XML обеспечивает универсальность библиотекам разных типов и механизмам маркировки вне зависимости от аппаратных и программных платформ.
  • Миграция. В ближайшем будущем придется иметь дело с тысячами устройств, причем многие из них будут обладать минимальными ресурсами. Соответственно, необходимы будут механизмы для перемещения вычислений с одного узла на другой. В лаборатории Intel, расположенной в Питсбурге, разрабатывается один таких механизмов — Internet Suspend/Resume. Он позволяет приостановить (suspend) вычисления на одном узле Internet и без каких-либо проблем возобновить (resume) их на другом узле. В университете штата Вашингтон разрабатываются виртуальная машина и программное обеспечение промежуточного слоя, поддерживающие этот механизм миграции.
  • Системы хранения данных. Узлы сети нового типа должны иметь системы хранения данных и файловые системы нового типа, позволяющие подключать к ним персональные серверы и формировать глобальную среду для надежного хранения файлов.
  • Запросы на «живые» данные (Querying «Live» Data). При создании больших программных систем и систем хранения данных возникнет необходимость в обработке запросов, направленных к обычным «живым», неструктурированным данным, по образу и подобию запросов к СУБД. К примеру, работу в этом направлении ведет Калифорнийский университет Беркли (проект Telegraph).

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

С технологической точки зрения проактивный компьютинг вполне можно назвать второй стороной медали разрешения проблемы сложности, если первой считать адаптивные и адаптируемые системы. Разработчики Intel сравнивают свой подход с одним из решений в этой области, а именно с Autonomic Computing от IBM [2]. По их мнению, основные принципы преодоления барьера сложности, заложенные в Autonomic Computing (самоконтроль, самолечение, автоконфигурирование и др.), нисколько не противоречат подходу Intel. Данные принципы распространяются на проектирование как отдельных компонентов, так и системы в целом. Они могут использоваться и при создании проактивных компьютерных систем. Различие между двумя этими концептуальными подходами заключается в том, что второй сфокусирован не на том, как системы проектируются, а на том, как они работают.

Литература
  1. D. Tennenhouse, Proactive Computing. Communications of the ACM, 43, 2000.
  2. R. Want, T. Pering, D. Tennenhouse. Comparing autonomic and proactive computing, IBM Systems Journal, vol. 42, no. 1, 2003.