Антон Борисов
Точная геонавигация в городе
с помощью технологии Wi2Geo
При посещении крупных городов как часто вам приходит в голову мысль: как же легко здесь, наверное, заблудиться? Если частенько, то стоит вас разочаровать. Заблудиться в каменных джунглях становится всё труднее и труднее. Несмотря на отсутствие качественного приема сигналов GPS в местах городской застройки, появляются новые методы определения точного местоположения человека.
Если раньше нам, как потребителям информационной продукции, предлагались решения, с помощью которых мы самостоятельно должны были реализовывать и предоставлять самим себе ту или иную услугу, то сейчас постепенно на главную роль выходит предоставление готовых сервисов и услуг. Удобнее разобрать на конкретном примере. Предположим, что вы намереваетесь посетить с творческим визитом некий мегаполис. Дома предварительно вы обзавелись картами города для КПК или ноутбука. Естественно, что начертание улиц и шоссе в нем будет почти в актуальном состоянии. Чего нельзя будет сказать о расположении гостиниц, кафе, магазинов. Понятно, что кто-то постоянно производит мониторинг подобного рода информации и поддерживает карты в должном состоянии. Но карты надо еще найти, а затем, уже будучи на месте, попытаться сориентироваться с помощью того же GPS. Человек – существо своеобразное. Ему хочется если уж не «всего и сразу», то уж точно в виде «здесь и сейчас». То есть хочет знать свое расположение без всякого поиска карт, их закачивания в КПК и уж точно без долгого ожидания, пока приемник GPS выдаст точные координаты. Благо быстро и точно определить свои координаты в городских условиях уже можно.
Как это реализуется на практике, в повседневной жизни? Предлагаю с автором идеи Денисом Алаевым рассмотреть организацию услуги Wi2Geo, которой и посвящено сегодняшнее интервью.
Денис, в чем заключается идея проекта?
Основой проекта является технология позиционирования в городе при помощи Wi-Fi-сетей. Принципиальное отличие от существующих систем навигации (GPS) заключается в интерактивности, т.е. создаваемый сервис будет не только средством для определения местоположения, но и инструментом общения, обмена информацией (текущее местоположение, история перемещений). Среди прочих отличий и преимуществ важно отметить:
- возможность навигации в любой точке города, в том числе на узких улицах и внутри зданий;
- существенно меньшее, чем у GPS, время, требуемое для приведения устройства в рабочий режим;
- более высокая точность по сравнению с GPS и системами GSM-позиционирования (до 1 метра);
- cущественно большая аудитория и нулевая стоимость входа (чтоб начать пользоваться, не нужно ничего покупать, достаточно поставить клиентское приложение).
Схема работы Wi2Geo
Исходя из вышеперечисленного означает ли, что отправка запросов на серверную часть проекта будет идти через любые интернет-каналы? Предполагается ли клиентскую часть распространять вместе с базой данных точек присутствия Wi-Fi?
Да, отправка запросов на серверную часть будет идти через любые интернет-каналы. Это может быть GPRS, CDMA, тот же Wi-Fi, главное, чтобы клиентское приложение могло соединиться с нашим сервером. На данный момент уже существует приложение для ноутбуков, которое хранит базу данных о Wi-Fi-точках локально, но используется оно только для внутреннего тестирования. Думаю, что в ближайшее время мы начнем распространять базу данных точек вместе с клиентскими приложениями для ноутбуков, это намного увеличит скорость позиционирования и уберет необходимость подключаться к интернет-каналам. Но тем не менее стоимость GPRS-трафика не такая уж и большая, а на каждый запрос приходится не больше 200 байт в обе стороны, так что мы не видим каких-либо серьезных причин добавлять возможность оффлайн-позиционирования в мобильные клиенты.
Кого вы рассматриваете в качестве потенциальной аудитории?
Благодаря широкому распространению технологии Wi-Fi и значительному снижению цен на Wi-Fi-совместимые мобильные устройства количество таких устройств и точек доступа существенно выросло в последние годы и продолжает увеличиваться. Согласно исследованиям ABI Research, к 2012 году количество продаж Wi-Fi-чипсетов достигнет миллиарда в год. ABI также прогнозирует, что к 2011 году будет продаваться больше 250 миллионов электронных устройств и более 360 миллионов карманных устройств, оснащенных Wi-Fi. На данный момент почти 100% выпускаемых ноутбуков содержат Wi-Fi-чипсет в базовой комплектации. Все владельцы таких устройств являются потенциальными пользователями нашего сервиса.
Какова бизнес-модель? За счет чего предполагается зарабатывать деньги?
Конечному пользователю основные сервисы будут предоставляться бесплатно. Зарабатывать мы предполагаем на дополнительных сервисах, возможно, на рекламе, а также на продаже доступа к API для сторонних разработчиков, которым интересно добавить возможность Wi-Fi-позиционирования в уже существующие или какие-то новые проекты. То, что такая заинтересованность есть, мы уже уверены – на данный момент у нас есть несколько договоренностей с уже существующими проектами, которые хотят добавить возможность позиционирования через Wi-Fi.
Можете назвать эти проекты или хотя бы их сферу деятельности?
Их огласить пока нельзя, а сфера их деятельности – в основном информационные порталы и социальные сети, есть также пара сервисов, предоставляющих услуги корпоративным клиентам.
А как вы предполагаете вставлять рекламу – что-то наподобие IFRAME или иначе?
Можно и IFRAME, на самом деле это технические детали, посмотрим, вполне возможно, что это будет и JavaScript.
Знакомились ли с зарубежным опытом? Есть ли аналогичные сервисы на рынке?
Да, аналоги есть. Например, на американском рынке действуют две компании близкой направленности: http://www.skyhookwireless.com и http://www.navizon.com. Первая (по нашим оценкам) достаточно успешна и реализует похожие бизнес-модели в США и Канаде. К описываемому направлению проявляет серьезный интерес компания Intel – они инвестировали в SkyHookWireless и ведут свои научные разработки. На российском рынке в данный момент ничего похожего нет.
Navizon на своей карте покрытия показывает и Москву. Они со своей технологией уже вышли на рынок РФ или это своеобразная промо-акция получилась?
Да, у Navizon есть карта покрытия в Москве и даже Санкт-Петербурге. Но мы не считаем его своим конкурентом. Во-первых, сделать карту покрытия и выйти на рынок – это абсолютно разные вещи. Карту покрытия для Navizon делают пользователи, видимо, так случайно получилось. Мы не думаем, что на данный момент Navizon серьезно смотрит на российский рынок. Во-вторых, карта покрытия в Москве и Санкт-Петербурге уже сейчас у нас больше примерно в полтора раза, чем у Navizon. В-третьих, у нас разные бизнес-модели, Navizon продает свои приложения, что очень сложно, учитывая «российскую» ментальность, мы же будем предоставлять Wi-Fi-позиционирование вместе с ПО бесплатно.
Как именно происходит добавление новых сетей? За счет энтузиастов, целенаправленного обхода или как-то по-другому?
Одновременно и так, и так. Во-первых, мы постоянно объезжаем новые места, увеличивая покрытие. Во-вторых, есть подпроект – http://labs.wi2geo.ru, там энтузиасты могут посмотреть статистику по Wi-Fi-точкам, а также залить свои собранные Wi-Fi-точки. Получается очень эффективно, например, в Санкт-Петербурге, Анталии и Иркутске мы никогда не собирали точек, но тем не менее они там есть.
Кроме вас, как идеолога проекта, кто еще занят в проекте?
На данный момент в проекте работают 4 человека, считая и меня. Мы уже достаточно давно знакомы и работали над несколькими проектами, так что проблем с взаимопониманием нет.
Денис Алаев - автор проекта (справа) и Александр Доржиев - один из участников проекта
И «как дошли до жизни такой»?
Мы все из Иркутска, переехали в Москву в разное время, но знаем друг друга давно, еще оттуда. Двое из нас окончили матфак ИГУ, еще один – МФТИ, я сам окончил МАИ, сейчас являюсь аспирантом. Когда-то давно вместе работали в одном интернет-сервис-провайдере, потом еще делали несколько интернет-проектов, в частности, своего хостинг-провайдера.
Корни алгоритма и реализации, каковы они?
В рамках моей кандидатской диссертации был изобретен и реализован алгоритм, позволяющий определять местоположение с точностью от 2 до 15 метров. Отлажен механизм сбора информации о точках Wi-Fi-доступа, необходимой для работы сервиса. Было проведено исследование уже зарегистрированных патентов смежной тематики, и мы посчитали, что формулы расчета местоположения – собственно, know-how – позволяют получить нам патент. Поэтому мы подали заявку на его получение.
Дело в том, что сам алгоритм, которым мы пользуемся, – это не триангуляция. Мы составляем карту мощностей распределения сигналов, при этом нам совсем не нужно знать, где по-настоящему находится Wi-Fi-точка, достаточно знать, в каком месте (широта, долгота) и с какой мощностью мы принимали сигнал от данной конкретной точки доступа. На основе этой информации строятся карты распределения мощностей сигналов, и уже по этим картам определяется местоположение мобильного устройства.
Наверняка вы столкнулись со сложностями в реализации, сколько вы открыли для себя технических изюминок?
Технических изюминок оказалось много. Например, мы параллельно делаем навигацию через GSM, выяснилось, что там достаточно сложно сделать триангуляцию. По умолчанию телефон видит только одну соту, но там есть так называемое инженерное меню, включив которое, можно увидеть больше одной соты. Но доступ к этому меню был только в старых моделях. В современных же телефонах до него практически невозможно достучаться, а значит, и видеть больше одной соты, отсюда не может быть и триангуляции. Приходится определять навигационные координаты только по одной точке, а это, как ни крути, в лучшем случае метров 300-500 (в центре Москвы, там где базовые станции стоят достаточно часто).
Со сбором информации об окружающих Wi-FI-сетях проблем особых не было, ни на Windows Mobile, ни на Windows XP/Vista (на момент написания этих строк у нас есть ПО только под эти две платформы). За исключением того, что в ОС Windows Vista лучше пользоваться утилитой netsh, нежели запросами через NDIS, к сожалению, вариант через NDIS работает только в очень ограниченном количестве Wi-Fi-чипсетов, например, с Atheros работает, а с Broadcom – нет.
Мобильный клиент для ноутбука
В апреле вы посещали несколько мероприятий, в том числе и в МАИ. Хотелось бы выяснить ряд моментов: удалось ли найти инвесторов и насколько финансирование из внешних источников актуально для такого стартапа, как ваш?
Да, верно, посещали. В первую очередь из-за того, что я являюсь аспирантом МАИ. А финансирование из внешних источников всегда актуально, причем больше не для того, чтобы сделать технологию, а для продвижения технологии на рынке, особенно это касается нашего стартапа, так как сама по себе идея достаточно нова, и нужно объяснить пользователям, что это удобно и нужно. В данный момент мы ведем переговоры с несколькими венчурными фондами и компаниями о возможном финансировании проекта. На ранней стадии проект финансировался из средств основателей. Текущие источники финансирования мы не хотели бы называть.
Когда вы знакомились с зарубежным материалом, то каковы текущие применения (или возможные применения) увидели для промышленного сектора, среднего или малого бизнеса? Понятно, что сфера развлечений, по всей видимости, будет лидировать.
Безусловно, есть много применений для бизнеса. Наш сервис можно применять для служб такси, тогда диспетчеры будут точно знать, где находятся их автомобили, также мы видим большую зону применения для курьерских служб и вообще для всех логистических компаний.
То есть привязать можно разные сферы, например, Аэрофлот и туристические агентства? В том плане, что предоставлять местоположение разных структур рядом с аэропортами, местами отдыха.
Конечно, привязать можно абсолютно разные сферы. Навигация также плотно связана с нашей жизнью и всем, что мы делаем, как и телефонная связь. Вот только используемые для навигации средства на сегодняшний день оставляют желать лучшего. Мы пытаемся это изменить.
А выбранный вами инструментарий – операционная система, SQL-движок, механизмы масштабирования, на чем остановили выбор?
Серверы стоят на операционной системе FreeBSD, мы используем PHP в качестве FrontEnd, в качестве BackEnd выступает движок WiGONE (Wi2Geo Orientation and Navigation Engine), который, собственно, занимается расчетом координат через Wi-Fi и GSM, сам движок написан на Java, в качестве базы данных мы используем MySQL и OLAP4J (the Open Java API for OLAP), в силу специфики алгоритма он нам очень помогает. Технология просто масштабируется, нужно только поставить второй Java-сервер и начать распределять запросы между ними. По нашим расчетам, один такой сервер сможет выдерживать до 100 тысяч пользователей ежедневно.
Почему выбрали FreeBSD? Было ли это сделано исходя из каких-то политических соображений или исходя из прагматических соображений и опыта?
Во-первых, конечно, благодаря опыту. Мы в принципе достаточно давно уже используем FreeBSD (начинали еще с 3.х). Во-вторых, основной движок написан на Java, а, как известно, языку Java – почти все равно, на какой платформе в итоге работает ПО. И к тому же Windows Server нужно покупать, а FreeBSD не просто так имеет приставку Free.
Расскажите, пожалуйста, о клиентской части. Насколько вам удается делать единое ядро программы?
На данный момент, как я уже говорил, клиентское ПО написано для двух платформ Windows Mobile 5/6 и Windows XP/Vista (stand-alone и IE plugin). Для Windows XP/Vista ядро цельное, различаются только участки кода, которые отвечают за сканирование Wi-Fi-сетей. В Windows XP мы сканируем при помощи NDIS, а в Windows Vista сканирование происходит при помощи встроенной в OS консольной утилиты netsh. Эта утилита появилась еще во втором сервис-паке Windows XP, но вот только в XP, она не умеет сканировать Wi-Fi-сети, в Vista уже умеет, что очень хорошо, так как другие, «классические», методы работают в Vista не всегда. Платформы Windows Mobile 5 и 6, как выяснилось, не очень сильно отличаются друг от друга, поэтому удалось написать код, который одинаково работает и на пятерке, и на шестерке. Также ведется работа по созданию клиентских приложений для iPhone, Symbian, Linux.
Рассматривали ли вы возможность сделать унифицированный клиент на Java? Если да, то почему отказались?
Рассматривали. Если говорить про ноутбуки, то написать унифицированный клиент на Java не представляется возможным, так как даже внутри одного семейства ОС (Windows) приходится прибегать к разным методам опрашивания точек, нечего и говорить, что будет, когда мы попробуем перенести приложение на *nix. В любом случае придется пользоваться JNI, а это не сильно проще, чем написать отдельные приложения для каждой из платформ. Возможно, в будущем мы поменяем политику и сделаем единого Java-клиента, который будет обращаться уже к специализированным демонам на *nix-платформах или системным сервисам на Windows.
С мобильными платформами дело обстоит еще хуже. Из J2ME нет доступа к состоянию Wi-Fi-окружения. Из J2ME даже нельзя получить информацию о GSM-сотах. Есть, конечно, полумифическая спецификация JSR179, по которой можно получить информацию о GSM, но она присутствует буквально на единицах моделей телефонов. Поэтому на мобильных платформах тоже приходится писать native-приложения.
Проводили ли вы аналитические расчеты – какие места больше всего запрашивают и в какое время суток?
По географии у нас пока нет аналитики. Пока можем сказать, что в течение суток делается больше ста тысяч запросов на определение местоположения. 60% запросов делается, как это ни странно, с ноутбуков, остальные 40% делаются с устройств Windows Mobile. Думаю, что эта ситуация резко изменится, когда мы выйдем из фазы бета-тестирования сервиса. Основная часть запросов делается днем и ближе к вечеру. Кстати, уже есть пользователи, которые пользуются флэш-виджетами для LiveJournal, чтобы определять и показывать свое местоположение друзьям.
Заблудиться можно, но сложно
Могут ли владельцы Wi-Fi-спотов отслеживать клиентов Wi2Geo, которые находятся в данный момент в зоне видимости их сети? Например, для своей внутренней статистики.
По умолчанию владельцы Wi-Fi-точек доступа не могут ничего отслеживать. Сканирование происходит в пассивном режиме – мы ведь всего лишь настраиваемся на определенную частоту и принимаем сигналы, как радио. Никаких подключений со стороны Wi-Fi-точек не существует. Теоретически, конечно, можно сделать такую возможность со стороны Wi2Geo, т.е. если владелец Wi-Fi-спота докажет, что он владелец, можно говорить ему сколько пользователей (естественно, обезличенных) находится в радиусе действия его сети. Но мне кажется, что в этом нет смысла. Сделать такую статистику не очень просто, а вот толку от нее практически никакого.
Насколько я знаю, у вас запланирована осенняя презентация проекта. Где она будет проходить?
Проходить это будет 18-25 сентября 2008 года в Алуште. Полное точное название: «XVII Международный научно-технический семинар «Современные технологии в задачах управления, автоматики и обработки информации».
Какие вы видите перспективы до конца года? Что может быть реализовано в рамках города (какие-либо приложения для муниципалитетов, геоинформатики и т. п.)?
До конца года мы планируем значительно расширить покрытие, добавить еще несколько городов-миллионников, написать ПО под максимально возможное количество платформ (под Windows Mobile 5/6 и Windwos XP/Vista уже есть, будет для Symbian, iPhone, Linux, MAC OS), также мы планируем открыть API для возможности писать свои сервисы сторонним разработчикам на основе нашей платформы.
И в качестве послесловия стоит высказать пару своих мыслей. По мере роста городов и более плотной концентрации жителей, такого рода сервисы будут весьма востребованы. Не важно, что конечный пользователь, по всей видимости, не будет обращаться напрямую к серверам Wi2Geo. За него это будут делать социальные сети. А уж в какой форме и что именно они, сети, будут предлагать, покажет будущее. В любом случае, заблудиться скоро будет очень и очень проблематично.