Всё мое ношу с собой — слова философа Бианта (VI в. до н. э.)
Мир становится мобильней а предприятия эксплуатирующие инженерные сети крайне нуждаются в актуальной информацией которую можно получить только непосредственно контактируя с инфраструктурой, чем и занимается в своей каждодневной работе линейный персонал. Сейчас эти две тенденции пересеклись, в том смысле, что появились все более простые и апробированные технологические возможности для создания подобных решений. Интерес к этой теме довольно велик. Попробуем разобраться, что предлагает в качестве мобильных решений платформа ArcGIS для предприятий эксплуатирующих инженерные сети (Utility).
Приступая к реализации проекта создания или приобретения готового мобильного ПО нужно четко понимать какие возможности предоставляет платформа ArcGIS. Для начала, вообще забудем об ArcGIS и рассмотрим с какими типами приложений на сегодняшний день мы работаем на мобильных устройствах. Калькулятор не понадобится, так как их всего 2 — это нативные приложения и веб-приложения. Споры о том что лучше, обычно сопровождают начало любого проекта по созданию мобильного ПО. С выходом HTML5 у веб-приложений появились шансы на победу, но в целом это до сих пор дискуссионный вопрос. Общие соображения сводятся к тому что если приложение должно активно использовать аппаратную платформу мобильного устройства, а именно:
- работать с модулем GPS
- отправлять и получать сообщения
- работать со сложной графикой с высоким уровнем интерактивности а значит использовать аппаратное ускорение
- работать в отсоединенном режиме и т.д.
То его следует создавать нативным, хотя повторюсь, идет постепенное стирание этих граней. Функциональные требования заказчиков из сферы Utility можно свести к следующим типам приложений:
- Осмотры и инспекции
- Управление мобильными бригадами и аварийно-восстановительными работами (в рамках ТОиР)
- Снятие показаний приборов учета
- Контроль растительности для ВЛ
Указанные выше приложения с большой вероятностью будут использовать аппаратную платформу и будут функционировать в условиях отсутствия связи и доступа в Интернет. С другой стороны, если связь доступна и приложение будет просто отображает карту или даже предполагается ввод несложных данных (точечные объекты) то все это возможно реализовать и в веб-приложении. Давайте вернемся к нативным приложениям и будем их рассматривать как основную технологию. Немного фактов: Сейчас на рынке основные мобильные платформы это Android (77% в России и 79% в мире), iOS (11% в России и 13% в мире), Windows Phone (7% в России и растет с выходом Win Phone 8 что даже несколько выше мирового уровня). Создавать нативные ГИС-приложения используя платформу Esri можно на всех указанных платформах. Они существуют как в виде готовых приложений от самой Esri так и в виде приложений «собранных» на ArcGIS Runtime SDK для конкретных задач и для разных платформ — тут можно использовать полную аналогию с традиционной настольной линейкой. ArcGIS for Desktop — готовое приложение, а ArcGIS Engine SDK или новый ArcGIS Runtime SDK — комплект средств разработки если нужна уникальная функциональность. Ссылки на готовые мобильные приложения:
- ArcGIS for Android (https://play.google.com/store/apps/details?id=com.esri.android.client&hl=ru)
- ArcGIS for iOS — https://itunes.apple.com/us/app/arcgis/id379687930
- ArcGIS for Windows Phone — http://www.windowsphone.com/ru-ru/store/app/arcgis/7cb003be-990a-e011-9264-00237de2db9e
Это приложения с уже готовой функциональностью и они сами построены на все на том же ArcGIS Runtime SDK, о чем чуть ниже.
Немного отвлекусь, для объяснения позиционирования ArcGIS Runtime SDK. Основная идея Esri выстроить общую (функционально инвариантную) платформу для комплектов средств разработки (далее SDK) для всех популярных платформ. Так как архитектура всех операционных систем очень различна, к примеру мобильный платформы все еще ориентированны на архитектуру ARM, это вызывает сложности при реализации. Фактически различные коллективы разработчиков создают очень непохожие SDK с похожими возможностями. Runtime SDK для настольного Windows (ArcGIS Runtime SDK for WPF) конечно стоит в стороне и как правило функционально впереди, т.к. у этой платформы максимальные возможности. С другой стороны, все мобильные Runtime-ы сейчас примерно выравнены по функциональности. Ниже я их перечислю:
- ArcGIS Runtime SDK for Windows Phone — http://resources.arcgis.com/en/communities/windows-phone-sdk/
- ArcGIS Runtime SDK for Android — https://developers.arcgis.com/en/android/
- ArcGIS Runtime SDK for iOS — https://developers.arcgis.com/en/ios/
По началу, все эти SDK были ориентированы на работу онлайн и в этом смысле не очень подходили для создания профессиональных мобильных решений. Сейчас все эти SDK постепенно созревают до этой функциональности, включая в себя:
- функции по работе с локальным кэшем (реализованы уже довольно давно)
- функции по использованию базовых ГИС-сервисов в отсоединенном режиме (геокодирование, прокладка маршрутов).
- функции по отсоединенному редактирование (пожалуй самая нужная функция) с возможность загрузить изменения в базу геоданных в виде версии.
Последняя функция уже была давно реализована в ArcGis for Mobile но сам этот продукт сильно ограничен поддерживаемыми платформами (Windows Mobile и Win XP/7/8 ). Так же как и все упомянутые выше решения ArcGis for Mobile существует как в виде готового приложения так и в виде ArcGIS Runtime SDK for Windows Mobile.
Теперь, после создания базиса в виде набора SDK, в ESRI начинают появляться некие производные продукты. Широко рекламируемая в последнее время связка Collector и Dashboard — оба построены на этих SDK. Collector на мобильных SDK (iOS, Android, Windows 8 обычная и RT) а Dashboard на ArcGIS Runtime SDK for WPF.
Это один из первых примеров реализации концепции Apps — простые и удобные приложения для бизнеса а не для ГИС профессионалов. В свою очередь на этой связке появились отраслевые решение — по сути это продукт настройки Dashboard, т.к. Collector пока не предполагает глубокую кастомизацию. Для Utility таким примером является ArcGIS for Electric и ArcGIS for Gas. Справедливости ради нужно отметить, что помимо настроенного Dashboard и Collector в них еще входят шаблоны веб-приложений для разных задач актуальных для предприятий сферы Utility. У Collectora и Dashboard-а есть одна особенность или ограничение — он работает с подпиской ArcGIS Online или с продуктом Portal for ArcGIS.
Не могу упомянуть ArcPad, который является пионером в мире мобильных приложений. Приложения до сих пор остается самым функциональным. Это фактически “маленькая” профессиональная ГИС с огромным количеством функций. Основные минусы его: он создавался в старой парадигме — работа стилусом а не пальцем, плюс он поддерживает только Windows Mobile. По моему мнению, если в компании уже не закуплены устройства на Windows Mobile (а такие выпускаются все меньше и меньше) и работать с ним будут не ГИС профессионалы, не стоит рассматривать это решение.
Теперь о готовых решениях. Выше я упомянул некоторые от самой Esri. Как известно, ESRI концентрируется на создании платформы, а многие отраслевые решения создаются бизнес-партнерами поверх ГИС-платформы ArcGIS. Надо отметить, что мобильные решения в таких продуктах, это как правило часть вертикальных решений, т.е. не имеет смысла их внедрять не внедрив всю линейку продуктов.
Как ни странно, все западные решения именовавшиеся мобильными до недавнего времени были по сути настольными приложениями построенными ArcGIS Engine, т.к. до сих пор в западной практике основным мобильным устройством в сфере Utility является защищенный ноутбук.
Более “правильные” примеры строились на ArcGIS for Mobile. Из того, что приходит на ум и с чем приходилось сталкиваться — это готовое приложение для предприятий эксплуатирующих сети водоснабжения/водоотведения созданное в Esri (сейчас оно в виде исходных кодов выложено в GitHub), решение 3-GIS Mobile, Trimble Connect). Многие только начинают изучать и использовать Runtime SDK для других мобильных платформ (в планах у 3-GIS, Trimble заявляет об этом). Telvent (теперь Schneider Electric) в этом году анонсировал комплексное решение Orbit Mobile построенное на ArcGIS Runtime SDK (заявлена поддержка iOS, Win 7/8/RT) которое будет не просто мобильным приложением а неким набором из приложений и облачных сервисов для автоматизации работы полевого персонала.
В конце, хочется отметить что с появлением площадки ArcGIS Marketplace узнавать о и приобретать подобные приложения станет еще проще.