Как МТС «затачивает» свои геолокационные сервисы под корпоративных клиентов
Привет! Начну с краткого введения в тему. У нас есть большой портал «МТС Поиск», на котором представлены геолокационные сервисы от МТС. Портал по функционалу подразделяется на три больших блока.
1. Мониторинг местоположения сотрудников по базовым станциям операторов.
Диспетчер компании может по SIM-картам смартфонов определять местоположение своих выездных сотрудников.
2. «МТС Трекер» и «МТС Координатор».
Диспетчер компании может по SIM-картам, GPS/ГЛОНАСС или Wi-Fi смартфонов определять местоположение своих выездных сотрудников, а также взаимодействовать с ними (в случае «МТС Координатора»).
3. «МТС Транспорт»
Диспетчер компании определяет местоположение подвижного транспорта по сигналам терминалов GPS/ГЛОНАСС, установленных в автомобилях. Точность определения 3–5 метров.
Кратко расскажу историю развития геолокационных сервисов МТС, чуть ниже покажу, как они устроены изнутри. Вначале мы предоставляли возможность определения местонахождения сотрудника по базовым станциям сотовой связи. Однако со временем задачи клиентов потребовали большей точности геопозиционирования. Определение геопозиции в крупных агломерациях с погрешностью в 300 метров не всегда достаточно для решения бизнес-задач. Например, в одном доме находится две точки. Какую из них посетил курьер — не всегда было ясно. Приходилось при расчете KPI давать некие допуски. К примеру, если курьер пробыл в здании не 15, а 30 минут, то, скорее всего, он посетил обе точки.
Мы проанализировали все приложения под iOS и Android, присутствующие на тот момент, в поисках того приложения, которое точнее всего определяет местоположение. В итоге мы выпустили на рынок в 2011 году приложение «МТС Трекер», которое, используя встроенные GPS/ГЛОНАСС-чип или Wi-Fi-модуль, само пишет трек и отправляет координаты на наш сервер.
С развитием смартфонов мы поняли, что телефон может стать полноценным инструментом для постановки задач и контроля их выполнения — не нужно закупать никакого дополнительного оборудования. Так появилось наше приложение «МТС Координатор». Оно вобрало в себя весь функционал «МТС Трекера», а также возможность постановки задач в режиме онлайн, получения отчетов по ним и коммуникации с сотрудником.
Также наш сервис «оброс» функциональным API. Это позволило интегрировать информационные системы заказчиков непосредственно в наш сервис (например, систему «Сбербанк-сервис», которая обрабатывает 3,5 тыс. задач в день). Таким образом, клиенту не приходится ставить задачи в двух системах (в своей и нашей), что дает возможность эффективно работать со штатом разъездных сотрудников 1000+.
Сервис «МТС Координатор» подключается как дополнительная услуга к корпоративному контракту на связь. Для того чтобы сервис использовать, клиенту достаточно иметь на руках помимо контракта несколько смартфонов и SIM-карт, подключенных к услуге «Мобильные сотрудники». Приложение скачивается из App Store и Play Market, устанавливается на телефонии и логинится. И все, работа начинается.
Как все устроено
Немного статистики. Сегодня наш сервис обрабатывает более 1,5 млн запросов в сутки. К услуге подключено около 7 тыс. компаний. Это свыше 1,5 млн абонентов. У нас есть клиенты, у которых данный сервис используют 5+ тыс. сотрудников. Чтобы сервис справлялся с такой нагрузкой, мы провели огромную работу по развитию нашего дата-центра.
В состав платформы входят 100+ серверов, 400 программных компонент и сервисов, 100+ баз данных общим объемом более 100+ терабайт. За сутки платформа обрабатывает 60 млн GPS-локаций от 1,5 млн абонентов.
Компоненты мы разрабатываем по шаблону, предусматривающему некий «джентльменский набор»: приложение — хост с библиотеками инфраструктуры, набор базовых конфигураций и интерфейсы плагинов, которые необходимо реализовать для своего случая. Таким образом, мы серьезно упростили процесс отладки и оптимизации.
Наше оборудование для контроля местоположения транспорта снимает данные акселерометра c частотой 100 раз в секунду и данные по местоположению и скоростью — 1 раз в секунду по нескольким сотням тысяч терминалов. Так что объем данных получается приличный.
На заре проекта мы использовали базу данных в качестве инструмента межпроцессной коммуникации, создавая таблицы для очередей сообщений и отслеживая статусы записей. Совсем скоро базе стало тяжело справляться со своими прямыми обязанностями, поэтому мы сняли с нее часть задач. Так в проекте появились:
— маршрутизируемые очереди RabbitMQ: чтобы заменить поллинг базы конвейерной обработкой данных и генераций событий;
— хранилище состояний Redis: для статичных данных, которые редко меняются, но запрашиваются часто, либо для оперативных данных, необходимых для работы нескольких компонент;
— СУБД Cassandra: как инструмент для хранения растущего объема данных в формате NO SQL с возможностью быстрого масштабирования.
Как выглядит работа «МТС Координатора»
Диспетчер, находясь в своем бэк-офисе, заводит задачу. Задача может быть многокомпонентной и состоять из разного количества полей — в зависимости от потребностей клиента. К примеру, кому-то надо, чтобы исполнитель по мере выполнения задачи просто ставил галочки в нужных полях, а кому-то надо, чтобы исполнитель в нужное поле вписывал, к примеру, серийный номер банкомата, который только что обслужил. Все это можно сделать благодаря широкому настроечному функционалу.
Диспетчер на портале «МТС Поиск» видит в режиме онлайн локацию всех сотрудников (на какой они станции метро и т.д.). На задачу назначается сотрудник, который либо располагается ближе всех к месту выполнения задачи, либо имеет большую компетенцию для решения данного вопроса. Поставленная задача отображается в виде push-уведомления в приложении у выездного сотрудника. В режиме онлайн он может ее посмотреть, принять/отклонить, прокомментировать, обсудить с диспетчером в чате и приступить к ее исполнению. Диспетчер видит процесс принятия сотрудником заявки, статус ее исполнения, отчет, траекторию перемещения сотрудника.
Также на портале генерируется статистика по выполнению задач. Стоит отметить, что есть несколько видов отчетов: по статусу задачи, по статистическим выкладкам, по количеству выполненных задач тем или иным подразделением, по количеству потраченного времени, пройденных метров и так далее.
Энергопотребление
С 2011 года постоянно мы ведем работу, чтобы приложение потребляло как можно меньше ресурсов смартфона и планшета — как память, так и батарейку. Сейчас мы даем клиенту достаточно богатые настройки в целях энергосбережения. Если ему не нужен подробный трек, то можно изменить настройки так, чтобы трек был грубый — локация будет отправляться раз в 5 минут. Кроме того, можно настроить приложение так, чтобы при наличии внешнего питания у него автоматически включалась точная запись трека, а при отсутствии — выключалась. В результате энергопотребление приложения версии 2012 года и последней версии сократилось в разы. По себе знаю: зарядки моего iPhone5 сегодня хватает на сутки. Раньше, конечно, не хватало.
Фотоотчет
По запросу клиентов мы добавили возможность для сотрудников загружать фотоотчет. К задаче можно прикрепить любое количество фотографий. Если ты менчердайзер, то можешь сфографировать полку с выкладкой, отчитаться и уехать. Если ты курьер, то можешь сразу отсканировать подписанные документы и отправить их в офис. Примечательно, что приложение делает геотаргетированную фотографию. Это гарантирует то, что фото сделано в указанном месте, в указанное время.
Геопозиционирование
Как уже было сказано, у нас есть уникальная возможность по определению местоположения выездных сотрудников по трем параметрам: GPS/ГЛОНАСС-чипу, Wi-Fi-модулю и базовым станциям. У конкурентов либо нет такой возможности определения, либо нет такой услуги.
Если сотрудник находится в здании, куда спутники не «добивают», то его поиск идет по базовым станциям. Мы научились мерить уровень сигнала и определять, как далеко человек находится от той или иной базовой станции. Благодаря этому мы повысили точность определения по БС с 2 км до сотен метров, а в городе в пределах 100 м.
Кроме того, определение местоположения сотрудника в здании идет и по Wi-Fi-сетям. Не секрет, что Google собирает данные со всех смартфонов по Wi-Fi-точкам и их местоположению. Точность у Wi-Fi-локации — 10–20 метров. К слову, если смартфон видит 3–5 спутников, то точность определения — 3–5 метров.
Есть клиенты, которые интересуются: можно ли узнать не только в каком здании находится сотрудник, но и на каком этаже. Скажу честно, пока такой опции нет. Технически есть несколько вариантов решения этой задачи. Первый вариант достаточно сложный: в смартфоне есть прибор, который измеряет магнитное поле. С помощью этого датчика может устанавливаться этажность. Второй вариант: создание искусственных маркеров для ориентирования в помещении, например, Bluetooth-маркеров. Смартфон, «проходя» по маркерам, определяет свое местоположение. Как только появится не просто интерес, а заказ, мы сможем реализовать это решение.
Некоторое время назад мы предложили реализовать технологию железнодорожникам. Они хотели видеть в онлайне, как движутся поезда в огромном депо. Оборудовать вагоны GPS-модулями было бы слишком дорого и энергозатратно. Поэтому мы предлагали в качестве решения крепить на вагон пассивную метку, а на стрелках ставить «считыватель». Вагон прокатывается мимо меток, и мы понимаем, где он находится. Пока проект не реализован.
Расскажу еще про один кейс, когда мы под клиента «допиливали» приложение. Так, одной из компаний, владеющей сетью заправок, нужно было контролировать работу сервис-инженеров, проверяющих работу АЗС. Инженеры объезжали все заправки и проверяли, правильные ли выставлены цены, все ли лампочки горят, правильно ли выложен товар и т.д. Клиент требовал зафиксировать не просто проезд инженеров по шоссе мимо заправки, но и факт того, что сотрудник заехал на заправку, зашел в нее и пробыл там какое-то время. Сложность была в том, что сервис-инженеры были оснащены планшетами от Apple. А у iPad очень жесткие требование по написанию ПО, плюс они не дают возможность управлять энергопотреблением. В этом была огромная проблема, потому что если инженер не пользуется какое-то время планшетом, то наше приложение выгружалось и могло не «захватить» факт посещения объекта. В результате мы достаточно сильно доработали приложение для iOS в плане энергопотребления и управления GPS/ГЛОНАСС. Приложение стало в два раза меньше потреблять заряда батарейки и позволило устанавливать баланс между точностью и энергопотреблением. На доработку ушло около двух месяцев. Кроме того, мы разработали для этого клиента уникальный отчет, который отражал не только факт посещения заправки, но и проведенное на объекте время. Исходя из этого, компания теперь ведет оценку работы сервис-инженеров.
Могут ли сотрудники обмануть систему?
Теоретически — да. Можно отредактировать отчетную фотографию, сменив ее геопозицию и время, и загрузить ее в приложение как файл. Но уже будет понятно, что фотография не с фотокамеры, а из файла. В принципе мы можем подключить дополнительный модуль и обнаруживать факты редактирования фотографий. Но пока никто из клиентов не изъявлял желания на внедрение такого модуля.
Подделать геопозицию сотрудника теоретически тоже можно, но дорого. Нужна специальная система подмены координат. В последнее время в соцсетях обсуждают, как якобы подобная система работает около Кремля. Водители заметили, что, подъезжая к Кремлю, они вдруг, согласно навигатору, оказывались во Внуково. У нашего сервиса есть защита от ошибочных координат. Если вдруг человек, согласно GPS-координатам, переместится на слишком большое расстояние с какой-то запредельной скоростью, то эти координаты будут отсеиваться как некорректные.
Все под колпаком?
Очевидно, что кто-то в вашей организации может негативно отнестись к внедрению такого рода сервисов. Дескать, над сотрудниками устанавливают тотальный контроль. Но по моему опыту могу сказать, что персонал позитивно воспринимает внедрение «МТС Координатора». Так как помимо «кнута» в виде определения точной геопозиции каждого сотрудника среди функционала есть и «пряник». Теперь выездному сотруднику не нужно заезжать в офис за заказами, писать отчет руками или забивать цифры в Excel — за тебя это делает приложение. То есть мы даем людям инструмент, который делает их работу более эффективной и удобной, позволяет выполнить больше заявок. Условно, в один день удается выполнять не одну заявку, а пять.
Наши планы на будущее
В будущем мы планируем внедрить полноценный API. Появится более развернутый мессенджеринг, машиноанализ, прогнозирование. Также мы сделаем для клиентов конструктор отчетов и задач под любые вкусы и производственные запросы. Сейчас шаблоны отчетов создаются по фокусному запросу. Мы же хотим сделать так, чтобы наша платформа была максимально гибкая.
Также в перспективе мы внедрим искусственный интеллект, который будет рекомендовать диспетчеру тех или иных сотрудников для выполнения каждой задачи. К примеру, необходимо починить оптоволоконную линию в районе аэропорта Домодедово. Диспетчеру нужно оперативно найти сотрудника, который обладает компетенциями и сможет в кратчайшие сроки туда прибыть. Система будет давать рекомендации, у каких сотрудников минимальное время подъезда, необходимый опыт и «зипы».