Почти 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. Данные принципы распространяются на проектирование как отдельных компонентов, так и системы в целом. Они могут использоваться и при создании проактивных компьютерных систем. Различие между двумя этими концептуальными подходами заключается в том, что второй сфокусирован не на том, как системы проектируются, а на том, как они работают.
Литература
- D. Tennenhouse, Proactive Computing. Communications of the ACM, 43, 2000.
- R. Want, T. Pering, D. Tennenhouse. Comparing autonomic and proactive computing, IBM Systems Journal, vol. 42, no. 1, 2003.