Context-Aware Computing — это не технологии, не методика и не методология, а всего лишь абстрактная идея, которая потенциально может обрести множество разнообразных воплощений, от отвлеченных философских рассуждений до вполне конкретных аппаратно-программных реализаций. Суть этой незамысловатой идеи почти тривиальна — создание устройств или систем, учитывающих условия окружающей среды, в которой пребывает пользователь. В отличие от всех остальных производимых человеком артефактов, создаваемые посредством компьютерных технологий способны к «обучению», то есть они могут получать и накапливать данные об окружающей среде. Если можно создавать устройства и системы, учитывающие знания и опыт, то можно получить интеллектуальные системы, способные адаптироваться к не запрограммированным заранее ситуациям, воспринимать изменения в окружающей среде на более высоком, чем сегодня, уровне и взаимодействовать с человеком.

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

Теоретически изменить существующее положение призвано направление Context-Aware Computing, которое уже полтора десятилетия широко обсуждается в академических кругах, но малоизвестно за их пределами. Встречающийся перевод этого термина как «контекстно-зависимые вычисления» не выдерживает критики, поскольку сomputing — это не то же самое, что computation: здесь речь идет не о вычислениях с использованием компьютеров, а об использовании компьютеров для обработки данных, поэтому пока лучше использовать аббревиатуру CAC.

В CAC ключевым является слово контекст, который на самом примитивном уровне можно рассматривать как априорное знание, имеющееся у получателя информации, прежде чем он получит в свое распоряжение сообщение с полезными сведениями. Контекст — это то, чего не хватает современным компьютерным системам, действующим по фиксированным программам и неспособным к обучению. Главное достоинство контекстного подхода заключается в возможности сократить объем передаваемых данных. Контекст является основой человеческого общения — в жизни обычно бывает достаточно сказать несколько слов, чтобы донести смысл сообщения, однако этого качества пока полностью лишено общение с машиной. Например, фраза «Сказали завтра будет как вчера» потрясает своей лаконичностью применительно к погоде, когда говоривший явно рассчитывал на общий для собеседников контекст (информированность о погоде накануне, на понимание того, что об ухудшении погоды было сообщено по радио). Всего пять слов, а чтобы записать то же самое без учета контекста, потребовалось бы слов на порядок больше.

На протяжении всей истории компьютеров средства взаимодействия человека с ними (Human Computer Interaction, HCI) развивались на сугубо техническом уровне: экран, клавиатура, мышь, сенсорные экраны и т. д. Их несовершенство стимулировало специалистов из разных областей к анализу проблем HCI c философской и кибернетической точки зрения, однако, к сожалению, из подобного рода работ не следует ничего практического. Поэтому для конструктивного разговора о CAC нужно для начала освободить слово «контекст» от сопровождающих его философских наворотов, и тогда окажется, что контекст — это среда существования субъекта или объекта. Из опубликованных определений для нашего случая ближе всех оказывается самое простое: «Контекст — это информация, которая может быть использована для характеристики ситуации, в которой пребывает личность, место или объект, имеющие отношение к взаимодействию пользователя с приложением, включая и пользователя, и приложение». В таком случае CAC — это такой подход к ИТ, который строится с учетом свойств окружающей среды и призван компенсировать слабость существующих компьютерных технологий, не позволяющих самостоятельно накапливать знания о контексте и лишенных способности соотносить новые полученные сведения с имеющимися.

О двуединстве, теоретической и практической стороне CAC написано много, и еще в 2001 году известный специалист по HCI Пол Дориш, профессор Калифорнийского университета в Ирвайне, написал статью «В поисках основ для CAC» (“Seeking a Foundation for Context-Aware Computing”). Но ни у него, ни в другой доступной литературе по CAC нет четкого разделения по природе контекста в процессе информационного обмена, отсюда и возникло смешение «высокого» (context in social analysis) с «низким» (technical conceptions of context). Высокое — это психолого-философские рассуждения Терри Винограда1, Люси Шухман и других известных ученых, основывающих свои работы на принципах этнометодологии, разработанных Гарольдом Гарфинкелем. Этнометодология изучает в том числе и роль языка в социальном взаимодействии методами анализа разговора (conversation analysis). Прямых продуктивных результатов в этих исследованиях получено не было, но косвенные результаты великолепны. Низкое — это создание распределенных систем из устройств, взаимодействующих между собой с использованием известного им контекста и приложений, использующих контекст.

Изобретатель будущего и его Dynabook

Задолго до того, как энтузиастами-любителями были собраны прототипы будущих персональных компьютеров, в 1972 году сотрудник исследовательского центра Xerox PARC Алан Кей задался целью снабдить каждого ребенка своим личным компьютером.

Леонид Черняк

В списке прогнозов на 2012 год аналитики Gartner поставили CAC на седьмое место, объясняя это намечающимися рыночными тенденциями и считая, что более половины крупных предприятий начнут так или иначе использовать CAC уже к 2013 году, а в 2016 году до одной трети мобильных устройств будет работать с учетом контекстной зависимости, причем уже в 2015 году пользователи мобильных устройств будут тратить на услуги, поддерживаемые САС, до 15% от общей оплаты за трафик, что составит 96 млрд долл. Непосредственным стимулом для публикации прогнозов Gartner и нынешнего подъема интереса к САС стало оптимистическое выступление Джастина Ратнера, директора Intel Labs и технического директора Intel, сделанное им осенью 2010 года. Он описал предстоящие фундаментальные изменения, к которым может привести способность к осознанию контекста, и впервые использовал термин context-aware в выступлении перед аудиторией практических специалистов. «CAC позволят принципиально изменить способы взаимодействия с устройствами, которые смогут адаптироваться к вам, изучать ваши привычки, предпочтения, знать ваше местонахождение», — сказал Ратнер. Он справедливо отметил, что концепция CAC не нова и своими корнями уходит в исследования, которые были выполнены под руководством Марка Вейзера еще в начале 90-х в Xerox PARC, на родине оконного графического интерфейса. Назвав Вейзера в качестве основателя работ по CAC, Ратнер четко обозначил, какое из возможных направлений развития CAC было выбрано в Intel как предпочтительное.

ПК умер — да здравствует ПК!

В 1987 году группа специалистов из Xerox PARC под руководством Марка Вейзера разработала устройства с плоским экраном размером с книгу ParcPad, компактное ParcTab и активный бейдж Active Badge, которые можно назвать предтечами нынешних «подов».

Леонид Черняк

Вейзер — автор концепции Ubiquitous Computing (ubicomp). Исследованиями в области CAC по программе Ubiquitous Computing в период с 1992 по 1995 год занималась группа в составе Билла Шилита, Номана Адамса, Роя Уонта и других. Часть из них продолжила исследования в Intel Research, а затем и в Google Research, вот почему интерпретация CAC в Intel унаследовала много от ubicomp. Начиная с 1987 года в Xerox PARC под руководством Марка Вейзера были созданы различные устройства, которые можно назвать предтечами нынешних «пэдов», «подов» и «табов». Ubiquitous computing, или pervasive computing, — модель, при которой компьютеры проникают во все сферы человеческой деятельности. Ubicomp рассматривают как следующую после ПК модель HCI, которая отличается наличием множества субъектов и объектов, объединенных в одну общую систему работы с информацией. Переход на ubicomp определяют как эпоху вхождения машин в человеческую среду вместо попыток инкорпорирования человека в машинную среду, как делают сейчас. Машины сами должны узнавать о среде обитания человека, набирать необходимый контекст и понимать адресованные им обращения шире, чем непосредственно то, что в этих сообщениях сказано.

Самой первой попыткой создания прототипа Ubicomp можно считать систему определения человека по активным бейджам, которая была разработана в конце 80-х годов в американской исследовательской лаборатории Olivetti с использованием Active Badge, созданных в Xerox PARC. Тогда еще не было мобильных телефонов, и ношение бейджа с радиочастотным датчиком позволяло оператору корпоративной телефонной станции перенаправить звонок в ту комнату, где в данный момент находится сотрудник. Эта идея получила более полное развитие, когда в Xerox PARC был создан один из первых мобильных компьютеров ParcTab, снабженный инфракрасным интерфейсом, обеспечивавшим связь с датчиками, установленными в помещении. В основном это устройство использовалось в качестве графического терминала, а приложения выполнялись на серверах. В результате объединения всех устройств получалась распределенная мобильная вычислительная система (mobile distributed computing system) — более развитая форма, чем просто мобильная система, поскольку она включает в себя и компьютеры, и их пользователей, к которым относится часть создаваемого контекста. Контекстные приложения (context-aware software) учитывают местоположение пользователя, кто и что находится рядом с ним (люди, серверы, другие устройства). В зависимости от возможностей мобильного компьютера могут быть использованы и другие сенсоры — например, акселерометр, датчики освещения, измерение уровня шума, качество мобильной связи и др.

 

Вперед, к контексту
Первый мобильный компьютер ParcTab, снабженный инфракрасным интерфейсом

Прямыми продолжателями дела Вейзера стали исследователи из лаборатории Intel Interaction and Experience Research, в которой вместе с компьютерными инженерами и учеными работают антропологи, социологи, лингвисты и представители других специальностей. Свой интерес к CAC в Intel объясняют сменой действующей парадигмы взаимодействия человека с компьютером, которое может изменить очень многое, в том числе и производство процессоров.

Современные мобильные устройства обладают не только более широкими коммуникационными способностями (беспроводные компьютерные сети разных типов, сотовая телефония), но и более развитыми сенсорами, своего рода органами чувств (глобальное позиционирование, фото- и видеокамеры, при желании количество и тип сенсоров можно увеличить). В универсальных устройствах (сотовые телефоны) и в специализированных можно накапливать контекст, необходимый для оптимизации HCI и сокращения объема передаваемых данных, формируя диалоговую полосу пропускания (conversational bandwidth). В Intel представления о контексте ограничивают теми знаниями, которые могут накапливать умные мобильные устройства о предпочтениях своего хозяина, для того чтобы снабжать его более полезными сведениями, выбирая из внешней среды только необходимые данные. Уже сейчас существует немало готовых решений (например, телефон, распознающий жесты хозяина), а в Индии, стране с самым высоким уровнем заболевания диабетом, мобильный телефон служит для активного контроля соотношения подвижности человека с потреблением пищи — для этого достаточно фотографировать съедаемые блюда. Осуществлять контроль эмоционального состояния тоже в принципе несложно, нужно лишь соотнести пульс с движением, для этого достаточно акселерометра, но в будущем можно будет оценивать и эмоции. То, что могут дать мобильные устройства в стиле CAC, потрясает и настораживает — при всей их пользе и эффективности они образуют систему слежки и контроля много мощнее Большого Брата.

По закону Белла

Зарождающийся сегодня класс мобильных компьютерных систем нового поколения составит серьезную конкуренцию ПК только тогда, когда будут соблюдены все условия, постулированные еще Гордоном Беллом.

Леонид Черняк

Компания Intel сосредоточила свое внимание на интеллектуальных гаджетах, но этим область CAC не ограничена — работа с контекстом позволит повысить эффективность большинства информационных систем, связывающих человека с окружающей средой. Их главная отличительная особенность — способность к адаптации в изменяющихся условиях без вмешательства пользователя. Пока можно говорить только о подходах к созданию такого рода систем, но их появление — вопрос времени. Один из возможных подходов описан в статье группы авторов из ЛЭТИ (А. И. Водяхо, Н. А. Жукова, М. Г. Пантелеев, Д. В. Пузанков «Использование онтологических контекстов в интеллектуальных проблемно-ориентированных информационно-управляющих системах»). В основе данного подхода лежит использование онтологических контекстов, а сам подход может быть использован в таких областях, как системы управления компьютерными сетями, системы поддержки принятия решений, системы e-learning и многоагентные системы. В качестве гипотетического примера приложения в работе приводится система поддержки принятия решений при ликвидации чрезвычайных ситуаций. Диспетчер принимает решение о ликвидации последствий, например, крупной транспортной аварии, сопровождаемой пожаром. Система выполняет функции советчика и может быть доступна как Web-сервис. Информация о происшествии поступает в форме SOAP-сообщения (Simple Object Access Protocol — простой протокол доступа к объектам), содержащего информацию о типе и месте происшествия. По типу события из репозитария извлекается абстрактный контекст (контексты), имеющий отношение к данному типу происшествий. Может потребоваться, например, вызов скорой помощи и эвакуатора. Каждому из этих событий соответствует собственный контекст. Контексты сливаются, и запускаются бизнес-процессы наполнения контекста данными.

Наибольшую популярность приобрели следующие методики создания систем класса CAC:

  • Context Toolkit — архитектура для создания единого контекста на основании данных, поступающих от отдельных сенсоров, обработанных соответствующими виджетами и собранных на сервере в базе знаний;
  • Context Aware Multimedia Middleware (CMM) — ПО связующего слоя, предназначенное для фильтрации мультимедийного контента, например в проектах интеллектуальных зданий;
  • Context Broker Architecture (CoBrA) — мультиагентная система, используемая в ПО для интеллектуальных сред обитания, в том числе конференц-залов, интеллектуальных зданий и автомобилей;
  • Service-Oriented Context Aware Middleware (SOCAM) — конструкция для разработки разнообразных приложений класса CAC, обеспечивающая получение, раскрытие и интерпретацию различных контекстных сервисов.

***

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

 

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