Гипер-локальный контент Экспертная система на базе WiFi proximity
Д.Е.Намиот, МГУ им. М.В. Ломоносова,Факультет ВМК МГУ, старший научный сотрудник, [email protected]
В статье описывается программная модель доставки местного контента (объявлений, доступных в некоторой локальной области) мобильным абонентам. Приложение SpotEx (Spot Expert) может использовать любую точку доступа Wi-Fi как сенсор присутствия и, соответственно, обеспечить мобильным абонентам просмотр местной информации. Основная идея - это привязать некоторый пользовательский контент к точкам доступа и обеспечить доступ к этому контенту пользователей, находящихся в зоне действия точки (точек) доступа. Результатом работы является продукционная экспертная система, обеспечивающая просмотр сообщений в зависимости от видимости хот-спотов WiFi.
Введение
Википедия определяет context-aware computing как дополнение к гео-системам, где в качестве категорий контекста может выступать не только местоположение, но и время, идентификационные данные пользователя, устройство и т.д. [1]. В данной работе описывается новая модель доступа к гипер-локальному контенту для мобильных пользователей. Рассмотрим некоторые приложения, которые предшествовали подходу SpotEx.
Во-первых, это так называемые Active Badge. Active Badge системы позволяли определять местоположение специальных устройств, которые обозначали себя с помощью уникального повторяющегося сигнала в инфракрасном диапазоне. Если офисное здание оборудовать специальными приемниками, то такого рода системы позволяли определить местоположение бэджа и, соответственно, доставить какую-то информацию тому, кто этот бэдж носит. [2]
Иными словами - это некоторый аппаратный триггер, определяющий информационный контекст. В данном случае, контекст определяется позицией.
Следующий элемент - это маркетинговые решения, основанные Bluetooth proximity. Это так называемые Bluetooth broadcast системы или, проще, системы на основе Bluetooth.
Bluetooth маркетинг включает в себя, в первую очередь, установку вещательного элемента (Bluetooth broadcasting). Этот элемент системы и рассылает данные другим устройствам в зоне видимости. Данные, рас-
пространяемые подобным образом, могут представлять собой тексты, изображения, аудио и видео файлы. Могут распространяться и структурированные данные (vCard, например) [3].
Идея заключается в том, что вещатель может определить присутствие мобильного телефона с включенным протоколом Bluetooth и доставить на него некоторое сообщение (контент). Вместе с тем необходимо отметить, что из соображений безопасности, а равно как и для экономии заряда батареи, Bluetooth на большинстве телефонов чаще всего находится в выключенном режиме.
Да, есть реализации, в которых используется расширенная схема для Bluetooth broadcast. В таком случае от пользователя требуется запустить некоторое приложение на мобильном телефоне и явно указать, что он согласен принимать предлагаемый контент. Смысл в том, что данные в таком случае будут предлагаться только тем, кто явно заявил о согласии их принимать.
Другая потенциальная проблема с Bluetooth broadcast состоит в том, что рассылка контента на мобильные устройства предполагает поддержку на стороне мобильного терминала так называемого O BEX Push Bluetooth профиля. А это не всегда так, даже для современных смартфонов
Основные выводы:
• современные смартфоны могут быть использованы как замена Active Badges
• наша система может базироваться на Wi-Fi. Для смартфонов мы с гораздо большей вероятностью можем ожидать наличие поддержки этой сети во включенном состоянии на мобильном телефоне
• наш бэдж (телефон) должен определять информационные узлы, а не наоборот. Это более безопасно. И возможный контент должен запрашиваться пользователем, а не навязываться ему некоторой автоматической системой.
• термин "распространение" для сообщений должен использоваться как синоним терминов "видим" или "доступен". Автоматическая загрузка сообщений не является обязательной, а даже наоборот, зачастую специально ограничивается.
Для дальнейшей разработки мы можем позаимствовать некоторые идеи из indoor positioning (позиционирования в помещениях).
Википедия определяет системы indoor positioning system (IPS) как сеть беспроводных устройств, которые используются для позиционирования объектов или людей внутри зданий. Очевидно, что конструкционные материалы зданий могут препятствовать распространению сигналов спутниковых систем позиционирования (например, GPS). Поэтому IPS чаще всего строятся на позиционировании относительно бли-
жайших объектов (предметов) с заранее известной позицией (местоположением). Единого подхода к построению IPS нет. Помимо традиционных радио-систем, могут использоваться оптические и акустические системы [4].
При этом каждый их подходов, как правило, предлагает свои собственные программные интерфейсы (API) и свои собственные протоколы.
Системы на базе RFID состоят из сканера и набора тегов. Теги бывают активные (с собственным источником питания) и пассивные. Каждый тег снабжен некоторым уникальным идентификатором, который используется для однозначного определения объекта (или человека) носителя тега.
Сканеры, расположенные внутри здания могут считывать идентификаторы с тегов, которые оказались поблизости. Поскольку точное местоположение каждого сканера известно, то информация о видимых тегах может использоваться для вычисления их местоположения.
Широкополосные системы позиционирования (Ultra-Wideband -UWB) используют опорную сеть сканеров, которые по задержке распространения сигнала от специальных меток позволяют определить местоположение этих самых меток (их носителей).
Системы позиционирования на базе WiFi, например, предлагаемые компанией Ekahau [5], представляют собой программные решения, которые используют инсталлированные в помещении точки доступа WiFi и WiFi интерфейс в мобильном устройстве. Могут также использоваться специальные теги WiFi, которые поддерживают сетевые стандарты 802.11.
Естественным большим преимуществом подобного рода систем является то, что они не требуют специального аппаратного обеспечения. Протоколы 802.11x - стандартизованы, и поэтому подобного рода системы позиционирования, в принципе, могут работать везде, где есть сети WiFi.
Положительным моментом является также то, что единая сеть исключает возможные проблемы и интерференцией радиосигналов, возможной в случае применения специализированных решений [5].
Позиционирование на основе Wi-Fi базируется на сетке хот-спотов Wi-Fi, обеспечивая точность в 20-30 метров. В целом, до наступления некоторого насыщения - чем больше точек вовлечено в процесс позиционирования, тем точнее будет результат.
В целом, WiFi позиционированию и используемым методам триангуляции посвящено достаточно много работ [6], но общая идея WiFi позиционирования остается везде одинаковой и базируется на использовании некоторой опорной сети с известными координатами узлов.
Модель
Как следует из предыдущего рассмотрения, все системы indoor -позиционирования основываются на карте тегов (устройств) с известным местоположением. Это очень важный момент. Карта тегов, по сути, должна быть подготовлена до начала использования сервиса.
Отсюда следуют две главные идеи для нового сервиса SpotEx:
• сервис будет поддерживать так называемые "ad_hoc" сети. Другими словами, для использования сервиса не нужны будут предварительные действия (усилия) по "разметке" опорной сети (WiFi устройств с известным местоположением)
• для многих (если не для большинства) LBS приложений контент (информация) привязанная к конкретному местоположению является более приоритетной информацией, чем простые данные о местоположении. Иными словами, в большинстве LBS приложений местоположение (координаты) определяются именно для нахождения подходящего контента, а не собственно для определения координат.
На базе этих принципов и построен наш сервис SpotEx (Spot Expert) [7]. Что если мы возьмем от indoor positioning только самый первый шаг - определение видимых в данной точке сетей Wi-Fi. В реальности, это уже несет информацию о позиционировании. Если мобильный телефон "видит" какую-то точку доступа, то он находится недалеко от нее. А в качестве второго шага мы добавим возможность задавать правила видимости контента (продукции, если-то операторы), связанные с конкретной точкой доступа. Правила, по сути, описывают видимость точек доступа WiFi для мобильного аьонента. Заметим, что речь не идет о присоединении к конкретной сети, эта работа никак не затрагивает вопросы предоставления доступа или обеспечения безопасности. Мы говорим только о самом факте обнаружения сети. Все, что нужно - это идентификатор SSID и другая публичная информация о точке доступа.
Таким образом, сервис содержит следующие компоненты:
• база данных (хранилище) с правилами, ассоциированными с конкретными Wi-Fi сетями
• редактор правил. Это веб-приложение (в том числе и мобильный веб), которое позволяет создавать (редактировать) указанные выше правила
• клиентское мобильное приложение, которое может определять доступные (видимые) точки доступа Wi-Fi, проверять условия видимости по базе правил и предоставлять доступ к имеющемуся контенту.
Как это в итоге работает? Для существующей (или специально созданной) точки (нескольких точек) доступа WiFi мы можем задать набор правил (типа, ЕСЛИ "доступны точки доступа с идентификатора-
ми NET2 и NET2" TO "показать заданный текст" и т.д.). Пользовательское приложение сканирует список доступных (видимых) сетей, определяет сработавшие правила (они могут зависеть не только от собственно видимости сети/сетей, но и от времени, истории пользователя и т.д.) и открывает пользователю соответствующий контент. Этот контент в текущей версии есть некоторый HTML текст (то есть может содержать любые доступные в мобильном браузере данные).
И правила и тексты для распространения определяются (задаются, модифицируются) владельцами точек доступа (WiFi сетей).
Возможные модели применения такого сервиса достаточно очевидны. Самое простое (по крайней мере, самое простое с точки зрения монетизации) - доставка предложений посетителям в торговых центрах. Это как автоматическая форма такого популярного в социальных сетях механизма как check-in. В социальных сетях, пользователь после авторизации может обозначить свое присутствие в данном магазине/центре и т.д., получив взамен какие-либо специальные предложения (купоны/скидки etc.) В модели SpotEx отпадает необходимость в авторизации, можно автоматически сделать текущие предложения доступными для тех мобильных абонентов, которые находятся в зоне действия соответствующей WiFi сети. При этом, в отличие от систем indoor -позиционирования, не требуется никакая предварительная разметка опорной сети. Более того, как будет показано ниже, такого рода сети могут создаваться и динамически.
По аналогичной схеме можно распространять новости в офисных или жилых комплексах, учебных кампусах. Это простая модель для распространения гипер-локальных новостей.
Существуют коммерческие сервисы, которые предлагают маркетинговые инструменты на базе Wi-Fi proximity. Но все они сводятся к попыткам показать какую-либо коммерческую рекламу пользователям, подключающимся к Wi-Fi сети [8]. Это, по сути, просто подмена начального экрана, который видит присоединяющийся к сети абонент. Подход же описанный в данной статье никак не касается соединения. Нам нужен только сам факт доступности Wi-Fi сети в данном месте.
SpotEx
Почему нам представляется, что системы правил предоставления данных, привязанные к точкам доступа WiFi интересны для применения? Одна из основных причин заключается в том, что речь не идет только о существующих публичных сетях Wi-Fi. Точка доступа WiFi может быть открыта непосредственно на мобильном телефоне. И, определяя данные для такой точки доступа, мы, по сути, определяем данные для конкретного телефона (или - для конкретного мобильного абонента).
Задание собственных точек доступа WiFi доступно, практически, для всех современных смартфонов. Вот пример для iPhone:
Рис. 1. Wi-Fi access point iPhone Такой же сервис есть для операционных систем Android и Symbian:
Рис. 2. Wi-Fi access point Android
Такая форма использования открывает возможность для нового класса систем - динамических LBS. Наши данные (контент) доступны в какой-то ограниченной области (то, что называется location aware data),
их доступность зависит от видимости некоторой точки доступа WiFi. И этот самый триггер видимости может не только менять свое состояние (включен/выключен), но и перемещаться в пространстве.
Таким образом, для создания набора правил нам нужен всего лишь один телефон. Любой владелец телефона является потенциальным контент-провайдером. Точка доступа, к которой будут привязываться правила, может быть открыта на телефоне, и этот же телефон может быть использован для создания/редактирования правил. Таким образом, владелец телефона, например, может предоставлять (показывать) какой-то персональный контент мобильным пользователям, которые в данный момент находятся поблизости. Это открывает ряд новых применений. Например, в дополнение к указанным выше применениям (автоматический check-in, местные новости), можно упомянуть еще и персональные объявления, а также различные игровые применения. Например, когда нужно найти в какой-то области контент, доступный вблизи определенных телефонов.
Как работает хранилище правил?
Каждое правило представляет собой продукцию (логическое заключение if-then). Уловная часть (в текущей версии) формируется как набор логических операций над следующими объектами: Wi-Fi network SSID, уровень сигнала, время дня, ID клиента (см. далее). Другими словами это набор предложений типа:
IF network_SSID IS 'mycafe' AND time is 1pm - 2pm THEN present the coupon for lunch
Поскольку правила представляют собой классическую продукционную систему, мы можем использовать для их обработки хорошо известные алгоритмы, типа Rete [9]. Этот известный алгоритм позволяет оптимизировать проверку большого числа правил за счет того, что пересортировывает сеть правил таким образом, чтобы максимально нагруженные условия проверялись в первую очередь [10].
Таким образом, описываемый сервис включает следующие компоненты:
10. базу данных правил (продукций), определенных для точек доступа WiFi сетей
11. клиентское приложение для смартфонов (в текущей версии -Android, в последующем и iPhone) которое обеспечивает проверку имеющихся правил и визуализацию контента
База данных (хранилище правил) имеет собственный веб-интерфейс (включая мобильный веб - это HTML5 приложение). Соответственно,
мобильного веб доступа полностью достаточно для работы с базой данных.
Дополнительно, хранилище предлагает открытый API (на базе REST), который позволит сторонним разработчикам пополнять (обновлять) базу данных программно. Это сделано для возможной интеграции с ERP системами. Например, программно наполнять систему предложениями, новостями и т.д.
Собственное клиентское приложение, на самом деле, использует именно указанный интерфейс для работы с базой данных.
Можно также отметить, что предложенный подход вовсе не требует наличия единой базы правил (правил для всех возможных точек доступа). Легко можно представить себе ситуацию, когда конфигурируемое клиентское приложение к какой-то частной базе или переключаться меду базами. С точки зрения использования API база правил есть просто некоторый URL для передачи REST запросов.
Помимо указанных выше возможностей применения как средства для автоматического check-in, отдельно хотелось отметить именно возможность распространения гипер-локальных новостей с помощью подобного рода сервиса
Согласно Wikipedia, гипер-локальный контент характеризуется тремя основными элементами. Во-первых, он описывает сущности и события внутри какой-то локальной области, во-вторых - ориентирован на резидентов этой локальной области и, последнее, создан также, преимущественно, локально [11].
С помощью SpotEx, используя всего лишь мобильный телефон, мы можем создать произвольный контент (используя, между прочим муль-ти-медийные файлы с собственного же телефона), описать правила видимости (это всего лишь мобильный веб доступ к хранилищу) и показывать (распространять) этот контент среди окружающих.
Технически, набор правил видимости может быть описан для любой существующей Wi-Fi сети. Но как основной способ использования мы рассматриваем именно специально открытые точки доступа непосредственно на мобильном телефоне. Это позволяет создать довольно большой набор интересных сервисов. Например, персональные объявления. Объявления привязаны к конкретной Wi-Fi сети - то есть, по факту, к конкретному телефону. Естественно, что их доступность (видимость) зависит от текущего положения телефона. А, соответственно, для читателя таких сообщений это типичный context-aware контент.
Можно представить игровые схемы на базе этого подхода. Когда, например, требуется собрать сообщения (загрузить файлы и т.д.) с заданного количества телефонов в определенной области (городе и т.д.)
А возможность добавлять правила и контент программно позволяет строить динамические приложения.
Естественно, что доступ к базе данных будет требовать авторизации пользователей. А в том, что касается клиентов, по крайней мере, в текущей версии, аутентификации не предполагается. Клиенты в такой схеме полностью анонимны. Единственный элемент, который предполагается добавить - это уникальный идентификатор для клиента. Это реально просто уникальный номер (UUID, который может быть присвоен в момент самого первого обращения к системе и храниться на стороне клиента для всех последующих обращений (он будет подставляться в запросы автоматически). Это позволит просто различать клиентов, а также использовать эту информацию в правилах. Наличие уникального идентификатора позволит отслеживать историю обращений. Отметим, что в предложенной модели в качестве такого глобального UUID может выступать просто MAC-адрес клиента. Например, для модели автоматического check-in легко будет описать правила, которые учитывают частоту посещений:
IF предложение от 'mycafe' открывается 3-й раз в течении месяца THEN предложить специальный пакет.
Реализация мобильного клиента на платформе Android использует интерфейс WiFiManager из Android SDK. Этот пакет предоставляет доступ к базовой информации о сетях Wi-Fi. В частности, с его помощью можно получить следующие данные: SSID - имя сети BSSID - адрес точки доступа capabilities - схема аутентификации frequency - частота канала взаимодействия (MHz)\ level - измеренный уровень сигнала (в dBm)
В реальности, все эти параметры могут использоваться при описании правил видимости. Это только первая версия SpotEx [7] использует лишь SSID.
Последующие версии будут двигаться дальше в направлении использования телефона как сенсора присутствия (близости). В частности, возможно добавление Bluetooth.
Важный момент - это то, что рассматривается местоположение (близость) по отношению к другим телефонам.
Для платформы Android существует несколько приложений (например, Locale), которые могут выполнить какие-либо действия в зависимости от текущего местоположения. Например, выключить звук, включить/выключить WiFi. Иными словами, изменяют установки телефона в
зависимости от местоположения. SpotEx решает другую, в некоторой степени обратную, задачу - а что другие мобильные абоненты могут вам предложить, в зависимости от вашего местоположения.
Другим краеугольным моментом сервиса (подхода) является замена определения координат и последующего поиска данных прямым определением локального контента.
Дальнейшие разработки
Как развитие предложенной системы в настоящий момент видятся следующие шаги. Во-первых, по аналогичной схеме может быть добавлена поддержка Bluetooth, так что продукции будут распознавать и узлы Bluetooth. Более долгосрочные цели - задействовать в продукционной модели и другие датчики, доступные на мобильном телефоне.
Во-вторых, будет расширен редактор правил. Он должен превратиться в полноценную мобильную CMS (Content Management System), включая такие элементы как, например, шаблоны для представления данных.
Далее, предложенный подход может быть использован и в других приложениях. Примером этого уже является разработанный сервис Wi-Fi chat [13]. Это тот же самый, по сути, механизм, что и в SpotEx (то есть WiFi proximity), но доступный контент фиксирован - это веб-чат и дискуссионная группа. То есть для всех пользователей вблизи точки доступа (вблизи мобильного телефона, в частности) предлагается веб-чат и форум для обсуждения. Возможные модели применения очевидны. Для Wi-Fi сети на транспорте, например - это средство общения пассажиров, для точки доступа, открытой на телефоне - это персональный коммуникационный инструмент без раскрытия идентификации и т.д.
Заключение
В статье описывается новый метод из области context aware Computing, базирующийся на идеях Wi-Fi proximity. Сервис может использовать как существующие, так и специально созданные (описанные) точки доступа WiFi в качестве триггеров для активации доставки контента (или открытия доступа к нему) на мобильные терминалы. Сервис позволяет пользователям связать (ассоциировать) собственные данные с точками доступа WiFi, равно как и получать доступ к таким же данным, которые были созданы (добавлены) другими пользователями. Сервис может применяться, например, для распространения коммерческой информации в торговых центрах (скидки, купоны, специальные предложения и т.д.), для распространения гипер-локальных новостей (например, в кампусах, в офисных центрах), для создания персональных систем информационного вещания. Подобного рода системы могут
найти свое применение в проектах SmartCity, как средство информирования (оповещения) или раскрытия данных.
На момент написания данной статьи автору неизвестны другие мобильные сервисы с аналогичными характеристиками.
Литература
[1] Wikipedia: http://en.wikipedia.org/wiki/Context_awareness
[2] AT&T Laboratories Cambridge The Active Badge System http://www.cl.cam.ac.uk/research/dtg/attarchive/ab.html Washington
[3] Papandrea, Michela; Giordano, Silvia; Vanini, Salvatore; Cremonese, Piergiorgio; Proximity marketing solution tailored to user needs World of Wireless Mobile and Multimedia Networks (WoWMoM), 2010 IEEE International Symposium E-ISBN:978-1-4244-7263-5
[4] Wikipedia: Indoor positioning system http://en.wikipedia.org/wiki/Indoor_positioning_system
[5] Comparison of Wireless Indoor Positioning Technologies www.productivet.com/docs-2/Wireless_Comparison.pdf
[6] F. Lassabe, P. Canalda, P. Chatonnay and F. Spies "Indoor Wi-Fi positioning: techniques and systems" Annals of Telecommunications Volume 64, Numbers 9 -10, 651-664, DOI: 10.1007/s12243-009-0122-1
[7] SpotEx service: http://spotex.linkstore.ru
[8] Mobile Markerintg: http://www.media-2go.net/Solutions
[9] Charles L. Forgy, "RETE: A fast algorithm for the many pattern/many object pattern match problem", Artificial Intelligence 19(1):17-37, September 1982.
[10] About the Rete Algorithm: http://en.wikipedia.org/wiki/Rete_algorithm
[11] Ceccaroni, L.; Codina, V.; Palau, M.; Pous, M.; PaTac: "Urban, Ubiquitous, Personalized Services for Citizens and Tourists" Digital Society, 2009. ICDS '09. Third International Conference 2009 , Page(s): 7 - 12
[12] Yanying Gu; Lo, A.; Niemegeers, I.; "A survey of indoor posit ioning systems for wireless personal networks" Communications Surveys & Tutorials, IEEE Volume: 11 Issue: 1
[13] WiFi Chat service: http://wifichat.linkstore.ru