Мало кто задумывается о том, что сегодня во многих индустриях происходит передел сфер влияния, например, компания Nokia является крупнейшим производителем цифровых видеокамер – она встраивает свои камеры в мобильные устройства, выходящие миллионными тиражами. Кто еще производит столько камер? Ниша, ранее принадлежавшая ряду известных производителей электроники, захватывается другими игроками. Компания Apple, которая традиционно работала на рынке компьютеров, наоборот, пошла в область мобильных устройств, а Nokia выпускает нетбуки, и подобные примеры можно продолжить. Такие прорывы возможны лишь для компаний, которые активно внедряют инновации, созданные в собственных исследовательских центрах и поддержанные сформированным вокруг них сообществом разработчиков и пользователей. Компания Nokia совместно с университетами по всему миру проводит перспективные исследования в сфере ИТ, активно привлекая для этого российские вузы. Как организована исследовательская деятельность компании и участие в ней российских ученых и студентов рассказывает Сергей Баландин, ведущий научный сотрудник Исследовательского центра Nokia, представитель компании в России и СНГ по исследованиям и разработкам, глава программ университетского и научно-исследовательского сотрудничества в России и СНГ.
Какова структура и тематика разработок, проводимых исследовательским центром Nokia?
Подразделения Центра распределены по всему миру, и большинство их размещаются рядом с ведущими университетами региона, например в США – недалеко от кампусов Массачусетского технологического института, Калифорнийского университета в Беркли и Стэнфордского университета. Есть подразделения в Кембридже в Великобритании, в Бангалоре, в Швейцарии, Китае и Найроби. Самые крупные подразделения Исследовательского центра Nokia находятся в Финляндии – в Тампере и Хельсинки, где работает команда, которая взаимодействует с Россией.
Центр ведет исследования по четырем основным направлениям: когнитивное радио – работа с радиоинтерфейсами; высокопроизводительные программно-аппаратные платформы мобильных устройств; Rich Context Modeling – создание новых видов сервисов; новый пользовательский интерфейс – использование мобильных устройств в различных сценариях.
Помимо собственных подразделений Центр Nokia работает с партнерами по открытым инновациям, образующими сеть университетов по всему миру. В России и Балтийском регионе такую функцию для компаний Nokia и Nokia Siemens Networks выполняет сообщество FRUCT (Finnish-Russian University Cooperation in Telecommunications), объединяющее университеты России, Финляндии и Дании.
Как строятся взаимоотношения центра с университетами?
В ряде университетов, например, в МТИ и Стэнфордском университете, создаются так называемые лаблеты – большие исследовательские лаборатории, в которых примерно поровну сотрудников из университета и из Nokia. Такие лаборатории принимают непосредственное участие в учебном процессе университетов, организуя лекции по новейшим тенденциям и технологиям в области мобильных решений. Кроме того, очень много наших специалистов одновременно занимаются научной деятельностью в университетах.
Одним из инициаторов создания FRUCT была программа университетского сотрудничества Nokia в России, но сейчас ее участниками со стороны отрасли помимо Nokia являются также Nokia Siemens Networks и Symbian Foundation. В программе участвуют 18 университетов, из которых один датский, пять финских, 12 российских, а также Санкт-Петербургский институт информатики и автоматизации РАН. В рамках этой программы в России организовано пять совместных исследовательских лабораторий с университетами и совместная научная группа со СПИИРАН. В каждой из лабораторий сформированы группы, обладающие компетенцией мирового уровня в определенной области. Членов этих групп мы просим создавать учебные курсы для обмена знаниями с университетами – участниками FRUCT. Программа обмена началась осенью 2009 года, и, например, один из таких курсов в Петрозаводском государственном университете читал представитель лаборатории, организованной в Санкт-Петербургском государственном электротехническом университете (ЛЭТИ). Это был курс по платформе Qt, позволяющей создавать приложения для всех видов мобильных устройств и для компьютеров.
Как в сообществе участников FRUCT появились российские университеты?
Основная идея отбора партнеров в рамках программы FRUCT – работа на опережение и накопление знаний, которые станут востребованными мобильной индустрией через год-два. Сначала мы смотрим на опыт работы и интересные результаты в смежных областях. Например, в ПетрГУ очень серьезно занимались разработками с открытым кодом на платформе Linux и уже почти 20 лет сотрудничали с финскими университетами, а поскольку эта операционная система очень популярна в Финляндии, то в университете начали работать в этом направлении. Около двух лет назад Nokia предложила открытую мобильную ОС на базе Linux, получившую название Maemo, и сейчас это платформа нашего флагманского продукта Nokia N900, а на момент начала нашего сотрудничества с ПетрГУ эта система находилась еще на этапе внутренних исследований и разработок. За два года университет смог стать серьезным центром компетенций по Maemo.
Как определяются темы исследований в совместных лабораториях Nokia в России?
Наше сотрудничество основано на том, что темы выбираются совместно. Я противник «тупого субконтрактинга», и ниша для России – это именно совместные проекты, требующие серьезной интеллектуальной работы.
FRUCT является инкубатором, в котором мы нащупываем области взаимных интересов и стараемся организовать реальное сотрудничество. Примером может служить участие СПИИРАН в проекте по разработке технологии «интеллектуальных пространств» (smart spaces), которая сегодня считается одним из наиболее перспективных принципов предоставления сервисов. Идея smart spaces состоит в том, что все устройства, которые нас окружают – мобильные телефоны, сенсоры, мониторы и т.д. – объединяются в общее пространство и самостоятельно в проактивном режиме анализируют, какие потребности есть у пользователей и предлагают сервисы, облегчающие жизнь пользователя.
Представим себе, что человек слушает музыку с мобильного устройства, но когда он входит в дом, правильнее переключить это прослушивание на большой музыкальный центр, если он не занят и это не помешает другим. Тут возникает огромное количество исследовательских задач: например, если кто-то в доме в это время смотрит телевизор, то работа музыкального центра может ему мешать. Здесь же решаются вопросы энергосбережения, использования «зеленых» технологий и т.д. «Интеллектуальные пространства» – одно из направлений работы Центра Nokia, и результаты этой работы можно будет со временем увидеть в реальных продуктах. Наши коллеги в лаборатории СПИИРАН вели исследования в области архитектуры smart spaces, а впоследствии в эту работу был вовлечен и ПетрГУ.
В демо-комнатах Nokia уже можно увидеть, как работают базовые принципы таких решений. На ресурсе SourceForge выложен пакет с открытым кодом Smart M3 (Multipart, Multidevice, Multivendor), это открытая программная реализация smart spaces, которая может быть уже сейчас установлена на всех устройствах, работающих под управлением ОС Maemo и Linux.
Кому принадлежит идея smart spaces?
Одно из первых упоминаний smart spaces было в Nokia – интеллектуальные пространства являются следствием технологической конвергенции. Сегодня мир компьютеров, мир мобильных устройств, мир Интернет и в определенной степени мир потребительской электроники, фактически, слились в единое большое пространство. Мы встраиваем цифровые видеокамеры в мобильные устройства, которые производятся миллионами, – ниша, ранее принадлежавшая производителям потребительской электроники, неожиданно захватывается другими игроками. Поэтому неудивительно, что мы начинаем думать, как задействовать ресурсы других устройств. Например, сейчас рядом со мной находится компьютер, подключенный к сети, и для него, в отличие от мобильных устройств, энергопотребление не является ценным ресурсом. Я часто использую Skype для связи с коллегами из университетов, но Skype потребляет очень много энергии, поэтому я хотел бы, чтобы, когда я рядом с ноутбуком, мой смартфон и ноутбук узнавали, что они рядом, а Skype автоматически запускался бы на компьютере, для экономии энергии на мобильном устройстве. Это еще не интеллектуальные пространства, но именно такие мысли подталкивают к их созданию. Почему бы, например, не воспользоваться телевизионным дисплеем для чтения SMS-сообщений, если пожилому человеку трудно делать это с маленького экрана мобильного телефона? Инфракрасный канал, который используется для пульта дистанционного управления, можно задействовать для передачи таких сообщений, а со временем будет появляться все больше бытовой техники с продвинутыми коммуникационными возможностями.
Есть два подхода к реализации интеллектуальных пространств, и над этими технологиями сейчас параллельно работают несколько компаний. Первый подход заключается в централизованном создании smart spaces, реализация которых будет схожа с идеей облаков, однако в нашем проекте перспективнее второй подход, при котором интеллектуальные пространства распределены – не должно быть центра, который координирует ваше личное пространство. Наличие такого центра, конечно, многое облегчает, например, упрощается поиск, однако это же создает угрозу безопасности персональной информации. Важно помнить, что ключевое свойство интеллектуальных пространств – переход от реактивного предоставления сервисов к проактивному, чтобы больше не надо было запускать приложение для получения необходимого сервиса. Для этого приложения должны собирать и обрабатывать большой объем информации о пользователе, должны многое знать, чтобы понимать предпочтения и привычки своего владельца и соответствующим образом реагировать. Поэтому мы считаем, что для обеспечения безопасности личного пространства пользователю будет комфортнее при распределенной реализации такого решения.
Платформа Smart M3 полностью размещается на устройствах пользователей – вся логика и данные интеллектуального пространства находятся на устройствах, которые находятся под прямым контролем пользователей. Например, часть может быть на ноутбуке, часть на мобильном устройстве, часть на холодильнике, если у него есть встроенный компьютер под управлением, например, Embedded Linux, и т.д. Как один из возможных носителей может использоваться и любой интернет-сервис, скажем, если пользователь решит, что для него безопасно и удобно разместить фотографии в Сети. Важно, чтобы выбор того, где физически размещать критическую информацию, делал пользователь. Но даже в этом случае вопросов безопасности остается огромное количество, по крайней мере, массовые утечки становятся мало реальными. Пробить защиту определенного устройства можно, но украсть личную жизнь миллионов, взломав один центральный сервер, при такой конфигурации невозможно.
Кроме того, повышается безопасность в случае использования проактивных сервисов в условиях катастроф. Одним из первых сценариев применения smart spaces был ураган Катрина – как сообщить жителям, чтобы они уезжали? В условиях, когда основная сеть GSM повреждена, наличие мобильных устройств позволяет выстроить временную (ad hoc) сеть и передать эту информацию. Или можно поставить специальные накопительные столбы с передатчиками Bluetooth, антенны большой мощности, которые по такой сети из пользовательских устройств будут собирать информацию. Но это возможно только при условии распределенного подхода к построению интеллектуальных пространств.
Если ставится цель быстрого вывода первых коммерческих решений на рынок, то централизованный подход выглядит более привлекательным. Однако нами уже выпущена первая пробная открытая реализация интеллектуальных пространств. Мы осознаем сложные стороны выбранного подхода, поэтому привлекли на свою сторону сообщество Open Source. Важно также сказать, что эта разработка ведется в рамках европейского проекта SOFIA (Smart Objects for Intelligent Applications), он был инициирован Nokia, но в нем принимают участие и другие компании, например, Fiat, а также ряд университетов.
Каковы детали технологии smart spaces?
Пользователям нужны не столько приложения, сколько решение их проблем, причем тех проблем, которые пользователи даже не осознают, а система автоматически их определяет и решает. В реализации интеллектуальных пространств надо рассматривать три компонента: устройства, информация и программные модули на различных устройствах. На сегодняшний день устройства – это настольные компьютеры, Интернет, различные сенсоры, мобильные устройства, потребительская электроника. Информация поступает из множества источников, включая как личные настольные компьютеры и мобильные устройства, так и ресурсы Сети, например социальные сети. Говоря о приложениях, мы также имеем в виду приложения на настольных системах, мобильные приложения, интернет-сервисы, встроенные системы.
Как эволюционировали пользовательские сервисы? До 2000 года большинство программных решений ориентировалось на конкретный тип устройства. Затем появились платформы типа Java, позволяющие создавать приложения сразу для множества типов устройств. Следующим шагом было создание приложений, ориентированных на работу в браузере, когда сервис выносится в Интернет и реализуются интерфейсы для разных типов устройств, будь то мобильный телефон или компьютер. И, наконец, появилось понятие «пространств», когда пользователю уже не приходится определять, работает он с приложением в Интернет, на мобильном устройстве или на ПК, все это объединяется в некое целое.
Соответственно, эволюционировали элементы предоставления сервисов. Если сначала основным элементом сервиса было приложение, затем Web-страница, то следующим шагом могут стать активные агенты, которые способны перемещаться с одного устройства на другое, проактивно обрабатывать информацию, накапливать ее и предоставлять на ее основе сервис, когда он становится необходимым.
У пользователей постоянно возникает потребность в новых сервисах и приложениях, но мобильные устройства имеют физические ограничения для их реализации, и интеллектуальные пространства – один из способов устранить эти ограничения. Предпосылками для создания smart spaces становятся изменение парадигмы программирования, появление кросс-платформных решений сначала на уровне языков программирования, затем на уровне операционных систем. Важно также, что сами пользователи психологически приняли распределенные решения, готовы согласиться с тем, что приложения и информация не обязательно должны находиться непосредственно на устройстве. Так появилась модель SaaS, все активнее используются ннтернет-репозитории для хранения различных данных и т.д.
Сейчас наблюдается тенденция к разрастанию и усложнению сервисов, например, любой современный клиент электронной почты содержит множество функций, которые никогда не используются. А это означает усложнение интерфейсов и лишнее энергопотребление, фактор не очень принципиальный, если система установлена на компьютере, но критичный, если речь идет о мобильном устройстве. Поэтому в интеллектуальных пространствах мы ушли от целостных приложений к агентам, решающим конкретные, гранулированные задачи.
В интеллектуальных пространствах каждый агент выполняет свою определенную функцию, и физически они могут быть распределены как угодно, система сама перемещает агенты, находя для них наиболее удобные места. Например, агент для написания и прочтения почты правильно будет держать на мобильном устройстве, а поисковый агент лучше разместить на вспомогательном сервере, чтобы не хранить всю базу данных адресов на телефоне. Переход к такой парадигме позволяет экономить энергию, радикально сокращать объемы сетевой передачи данных и высвобождать ресурсы для развития новых сервисов.
Следующий элемент архитектуры – базы знаний. От табличной базы мы переходим к деревьям знаний. Информация представляется в виде «триплов» – субъект-объект-связь между ними, что позволяет превратить информацию в знание. Фактически, это чем-то напоминает упрощенную схему устройства мыслительного процесса человека. Подобный подход дает возможность реализовать развитый поиск и, главное, построить систему автоматического анализа и генерации выводов (reasoning) на основе имеющейся информации. Специальные механизмы дедуктивного схождения (deductive closure) позволяют на накопленных знаниях строить новые знания, дедуктивно вырабатывать новые связи. Например, зная, что я люблю зеленый чай и что в офисе есть зеленый чай определенной марки, который выбирают большинство сотрудников, система может сама предложить мне взять именно его.
В smart spaces данные или знания отделены от приложений. Сейчас пользователям очень часто приходится выполнять неудобную операцию copy/paste. Если отказаться от привязки данных к конкретным приложениям и создать общее пространство знаний, эта операция больше не понадобится. Здесь возникает огромное количество исследовательских задач. Простейшее приложение, реализуемое в нашей лаборатории в Петрозаводске, – объединение нескольких календарей за счет импортирования данных из Outlook, Google Calendar, календаря на мобильном телефоне, календаря из социальной сети «В контакте». Меня не должно беспокоить, в каком конкретно приложении зафиксирована важная для меня встреча, главное, я не должен ее пропустить. Сейчас мне нужно проверять каждый из календарей.
Складывается впечатление, что все-таки должен быть центр принятия решений о том, где разместить агентов, некая центральная база знаний?
Система имеет централизованную логическую структуру, но распределенную реализацию. Логически у дерева знаний, разумеется, есть корень, но на уровне реализации это просто указатель, и не принципиально, на каком устройстве он будет размещен.
Один пользователь может работать с несколькими интеллектуальными пространствами. Например, мое личное пространство – знания, которые принадлежат только мне. Частью информации я готов поделиться с родными, частью – с коллегами. Эти пространства знаний взаимосвязаны, но логически независимы. По сути, мы организуем их по тому же принципу, как воспринимает человек свои знания.
В каких-то ситуациях мы «схлестываем» наши знания, в каких-то — размежевываем. Например, если бы у нас были установлены агенты smart spaces, вам не пришлось бы просить ссылку на описание Smart M3 – в моем пространстве были бы определены уровни доступа к этому описанию, в соответствии с которыми по запросу ваш агент легко бы ее получил. Что касается ссылки на Smart М3, то мобильное устройство могло бы проследить, что эти вопросы уже поднимались, установить, что ссылка есть в почте, и также ее передать. На время нашей встречи наши интеллектуальные пространства частично объединяются, мы обмениваемся необходимой информацией, и возможно, будет разумным оставить их связанными до момента публикации, чтобы я мог принять участие в корректировании текста, после чего их можно разделить. Так оба участника получают новые знания, которые автоматически интегрируются в их интеллектуальные пространства.
Технология Smart М3 представляет собой конкретную открытую реализацию этих идей. Агенты в M3 называются Knowledge Processor, приложение формируется из некоторого их количества, например, один такой «процессор знаний» производит чтение электронной почты, другой – написание. Такая схема открывает возможность индивидуализации приложений – если я захочу изменить приложение, я закажу соответствующий модуль, что значительно снижает стоимость разработок и сокращает число проблем, встающих перед разработчиками. Использование общего пула информации не требует перекомпиляции огромного программного пакета при изменении сервиса – достаточно добавить новые или изменить существующие информационные связи.
Такой способ создания и развития программных продуктов ставит в равные условия как больших игроков, так и малых. Известно, что значительная часть инноваций исходит от небольших команд, а такая реализация платформы позволяет, во-первых, свободно подключиться к ней любому игроку, поскольку она является открытой, а во-вторых, не требует огромных инвестиций в разработку, достаточно создавать небольшие дополнения – свой уникальный, но лучший чем у остальных, маленький модуль. На этом можно строить собственную бизнес-модель. Тем самым стимулируется честная конкуренция, а в конечном итоге, достигается повышение качества сервисов для пользователей.
И такие предпринимательские инициативы могут зарождаться в университетской среде?
Это и происходит в рамках FRUCT, задача которого – инкубация, правда, не столько бизнес-инкубация, сколько инкубация компетенций, то есть новых знаний в совокупности с нишей их приложения. Дальше с этими компетенциями можно идти в бизнес или в науку. Если команда четко представляет, в какой нише она является лучшей, у нее не будет особых проблем с созданием собственного бизнеса. Но если им интересней научные изыскания, они останутся в науке. Здесь очень важно соблюдать баланс – нельзя самых лучших перетаскивать только в бизнес, тогда наука окажется обескровленной. В рамках FRUCT мы стараемся предельно аккуратно относиться к поддержанию этого баланса и особенно помогаем тем молодым специалистам, которые хотят остаться в науке. Например, организованный нами обмен лекциями между лабораториями ничего не дает с точки зрения бизнеса, но позволяет лабораториям расширять свои компетенции. Кроме того, это серьезно улучшает отношение к Nokia со стороны университетов. Сейчас многие активные вузы сами приходят с инициативой присоединиться к FRUCT, потому что видят в этой программе честный вариант общения – сначала идет инвестиция в знания, а потом их совместное использование.
Технологии smart spaces уже реализованы в виде продукта?
Система Smart М3 передана сообществу для тестирования и развития (sourceforge.net/projects/smart-m3). Но прежде чем это станет продуктом для массового пользователя, нужно проделать еще много работы, в том числе реализовать достаточное количество сервисов, решить все вопросы безопасности.
Мобильные устройства все больше используются в бизнесе. Как это учитывают разработки по созданию smart spaces?
Сценарии использования smart spaces в бизнесе имеют один из самых высоких приоритетов. Здесь открывается множество интересных задач, например, управление знаниями. Самая неприятная ситуация в управлении знаниями в компании возникает, когда вы не знаете, чего вы не знаете. Интеллектуальные пространства помогают справиться с этой проблемой. Механизмы дедуктивного схождения позволяют объединить все, что вы знаете, в структуру, выявить ситуации, когда вы не знаете, ЧТО вы знаете, и локализовать те области, где вы не знаете, ЧЕГО вы не знаете.
С помощью smart spaces можно реализовать, например, совершенно другой уровень телеконференций. Не надо тратить время на синхронизацию между устройствами и согласование расписаний участников. Сейчас организация таких телеконференций требует больших усилий от офисных ассистентов, в условиях большой загруженности участников это серьезная комбинаторная задача. Интеллектуальные пространства позволяют делать это автоматически, более того, обеспечивают расположение презентаций в правильном порядке, так чтобы они логично дополняли друг друга. Работающие прототипы таких приложений были сделаны совместно с СПИИРАН.
Потребует ли глобальная конвергенция новых компетенций от специалистов, возможно, кардинальных изменений в подготовке студентов в университетах?
На мой взгляд, главное – научить человека учиться. В любом случае, знания, которые мы приобретаем в университете, быстро устаревают, и чтобы быть на острие, необходимо постоянно работать на «передовом крае» интересующей вас области. Поэтому важно, чтобы в университетах студенты на примерах тех дисциплин, которые они изучают, учились системно подходить к решению проблем, смотреть на задачи не с точки зрения конкретного предмета или технологии, а с точки зрения необходимости эту задачу решить максимально эффективно и удобно для потребителя. Студенты должны понимать, что, вернувшись с занятий по дизайну на курс программирования, они должны применить знания в дизайне пользовательского интерфейса. В этом, на мой взгляд, состоит важная часть университетской культуры. В рамках FRUCT мы стараемся открывать участникам принципы налаживания учебы и работы в других организациях – членах FRUCT, например, помогать российским вузам увидеть лучшие элементы культуры скандинавских университетов. Это важно потому, что дает возможность научиться чему-то новому. Точно так же мы делимся с университетами культурой исследований и разработок в Nokia. Мы привлекаем университеты к совместной работе над стратегическими направлениями для Nokia.
Software Forges, инструментальные платформы для разработчиков программного обеспечения, возникли в недрах сообщества Open Source, а теперь и крупные корпорации внедряют технологию «кузницы кодов» в свою практику.
Операционная система Maemo для мобильных платформ построена на базе Debian Linux. Программа FRUCT работает над популяризацией платформы и продвижением принципов Mobile Open Source в Российских университетах и сообществе разработчиков. Российскому сообществу разработчиков Maemo данная программа помогает преодолеть традиционные для российских участников движения с открытым кодом проблемы языка и недостаточной информированности о происходящем. Сайт maemo.fruct.org объединяет возможности социальной сети для разработчиков и функции новостного портала по всем решениям категории Open Source для мобильных платформ, предоставляя возможность сравнения и анализа современных тенденций в области мобильных разработок.
Под эгидой FRUCT постоянно проводятся конференции, семинары и тренинги по Maemo. Центрами кристаллизации российских компетенций по разработкам для этой ОС стали совместные лаборатории FRUCT с Петразаводским и Нижегородским госуниверситетами, Санкт-Петербургским государственным электротехническим университетом «ЛЭТИ», Санкт-Петербургским государственным университетом аэрокосмического приборостроения.