Как в Канаде ищут пропавших детей

в 10:41, , рубрики: azure, IoT, microsoft, Microsoft Azure, Microsoft Technical Case Studies, Блог компании Microsoft, Интернет вещей, облачная инфраструктура, облачные сервисы, облачные технологии, облачные услуги, разработка мобильных приложений

В прошлом году в одной лишь Канаде пропали 45 000 детей. Пугающая статистика. Для того, чтобы максимально увеличить процент найденных было разработано решение с использованием Xamarin и Azure, о котором мы расскажем под катом.

Как в Канаде ищут пропавших детей - 1

Цикл статей «Microsoft Technical Case Studies»

1. Power BI Embedded, IoT и машинное обучение для обработки термограмм мозга.
2. Как в Канаде ищут пропавших детей.
3. Интернет вещей в археологии: как технологии помогают контролировать состояние античного митреума.
4. Loading…

Введение

Современные дети на «ты» с высокими технологиями, они используют их для игр, общения и учебы. Но с большими возможностями приходит большая ответственность как со стороны родителей, так и со стороны самих детей. Необходимо постоянно контролировать, с кем дети общаются и обмениваются информацией в Интернете, иначе может случиться беда. Директор Общества по поиску пропавших детей Канады (MCSC) Аманда Пик (Amanda Pick) и её команда без устали работают, чтобы предотвратить несчастья. Они обращают особое внимание на онлайн-ресурсы, поскольку злоумышленники всё чаще используют их для реализации своих планов.

Вернуть каждого ребенка домой — эта главная цель MCSC (Общества по поиску пропавших детей Канады), некоммерческой ассоциации со штаб-квартирой в Калгари. Одна из задач — собрать информацию о ребёнке (например, последнее известное местонахождение и контакты) и передать представителям местных правоохранительных органов.

MCSC тесно сотрудничает не только с муниципалитетом и полицией Калгари, но и с корпорацией Microsoft. Недавно прошел совместный семинар, который помог участникам понять, как функции Azure, Xamarin и передовые методики DevOps помогут быстрее и эффективнее собирать и предоставлять полиции информацию о детях, которые числятся пропавшими без вести.

Результатом работы семинара стало приложение, созданное на основе следующих служб и методик:

  • функции Azure;
  • службы хранилища Azure;
  • непрерывной интеграции;
  • методологии «инфраструктура как код»;
  • Visual Studio Team Services;
  • инструментов Xamarin.

Целью четырехдневного семинара было начало использования Azure в MCSC для получения сведений о последнем известном местонахождении ребенка, его контактах и общении в социальных сетях (например, Twitter и Facebook).

Постановка задачи

В ходе встречи с Амандой и командой MCSC мы изучили проблемы, связанные со сбором информации о пропавшем ребёнке. Достаточно просто узнать, например, во что ребенок был одет и где его видели в последний раз, но вот на получение других подробных сведений иногда уходило несколько дней или даже недель.

Команда подразделения Microsoft Canada поставила перед собой задачу ускорить сбор дополнительной информации. Наша цель состояла в автоматизации поиска информации о ребенке в Интернете путем извлечения данных из его учетных записей в социальных сетях.

Как в Канаде ищут пропавших детей - 2

Первая половина дня ушла на составление схемы текущего процесса передачи в полицию сведений о пропавшем ребенке.

Как в Канаде ищут пропавших детей - 3

Вот в чем она заключалась:

  1. Предоставить родителям и (или) детям возможность регистрировать свои учётные записи из социальных сетей в базе данных MCSC.
  2. Если зарегистрированный ребёнок пропадает без вести, он сам или его родитель может воспользоваться решением Child Finder (через функции Azure), чтобы увидеть последнее известное местонахождение ребёнка, с кем он контактировал и о чём беседовал. Для этого в ленте социальной сети необходимо воспользоваться хэштегом #hfm (help find me – «помочь найти меня»).
  3. Решение Child Finder получит всю необходимую информацию непосредственно через интерфейс API социальных медиа.
  4. Функция Azure будет отправлять собранную информацию непосредственно в правоохранительные органы, уведомляя их о пропаже ребенка в соответствующем районе и предоставляя дополнительные сведения, собранные с помощью социальных медиа.
  5. Для входа в приложение представители правоохранительных органов будут использовать Azure Active Directory Authentication. Это гарантирует, что все собранные данные будут доступны только тем, у кого есть соответствующие права и полномочия.
  6. В приложении будут доступны отчеты и дополнительная информация о пропавших детях.

Хэштегом #hfm могут воспользоваться только те, у кого есть доступ (имя пользователя и пароль) к учётной записи. Такое ограничение гарантирует неприкосновенность частной жизни ребёнка, поскольку только сам ребёнок или люди, которым он доверяет (например, его родители), могут активировать функцию Azure для контроля его учётной записи в социальных сетях.

Представителям MSCS и полиции Калгари было предложено упражнение: составить схему потока создания ценности. Это помогло им осознать необходимость оптимизации и ускорения существующих подходов к поиску информации. Такой подход подтвердил свою эффективность, даже с учётом того, что в решении реализован абсолютно новый процесс. На основе схемы была сформирована карта ресурсов для специалистов.

Как в Канаде ищут пропавших детей - 4

Затем команда подготовила схему потоков данных для предлагаемого проекта. Одной из главных задач было обеспечение безопасности и предоставление инструментов для самостоятельной работы, что обусловлено конфиденциальностью собираемой и отправляемой информации. Была реализована поддержка Twitter OAuth, чтобы ребёнок и (или) его родители могли активировать мониторинг учётной записи. Сбор данных об учётной записи активируется с помощью хэштега #hfm. Также был реализован экран входа для представителей правоохранительных органов.

Цели проекта

Проект, реализованный для MCSC, основан на следующих технологиях.

Веб-приложение Azure

  • На базе Azure создан портал для родителей или детей, которые желают зарегистрировать учётные записи социальных сетей с целью их мониторинга.
  • Функции Azure использовались для мониторинга зарегистрированных учётных записей в социальных сетях после обнаружения специального хэштега (Функции Azure позволяют выполнять небольшие фрагменты кода в облаке. Для решения конкретной задачи можно написать другой код, для исполнения которого не потребуется инфраструктура или даже целое приложение).
  • При обнаружении хэштега все метаданные (местоположение, время и дата) и результаты анализа сообщений будут собраны и направлены в правоохранительные органы с помощью специального мобильного приложения Xamarin.

Мобильное приложение Xamarin

  • Разработаны правила проверки подлинности, чтобы доступ мог получить только персонал с соответствующими полномочиями.
  • Представители правоохранительных органов получают уведомления о новых отчётах и могут использовать приложения для просмотра соответствующих метаданных и результатов анализа сообщений.
  • Представители MCSC также будут проинформированы с помощью этого же приложения и смогут оказать содействие в работе правоохранительных органов.

DevOps

  • Упражнение с описанием потока создания ценности помогло сформировать схему процесса, а также схему сбора и распространения информации из базы данных через веб-приложение Azure и мобильное приложение Xamarin.
  • Хранилища GitHub для инфраструктуры (функции Azure), проверка подлинности (веб-портал Azure) и клиент (Xamarin) использовались на протяжении всего проекта.
  • Чтобы ускорить разработку и развёртывание, были созданы потоки непрерывной интеграции.
  • Для развёртывания среды и компонентов в целях обеспечения целостности использовалась методология «инфраструктура как код».

Решения, шаги и результаты

Процесс

Ребёнок (или его родитель) регистрирует учётную запись социальной сети на сайте MCSC, подтверждая свое согласие на мониторинг. Этот функционал реализован в виде приложения Node.js под названием authorization, которое в настоящее время подключено к Twitter.

Как в Канаде ищут пропавших детей - 5

Кроме того, для перехвата сообщений с хэштегом #hfm используется приложение Azure Logic. Такие сообщения приложение добавляет в очередь служебной шины.

Когда в этой очереди появляется сообщение, функция Azure анализирует его и сверяется с репозиторием информации об авторизации в DocumentDB. Если автор сообщения зарегистрирован в базе данных, то сообщение добавляется в следующую очередь, а в противном случае — просто игнорируется.

Из следующей очереди другая функция Azure извлекает сообщение и дополняет данные. В настоящее время процесс добавляет сведения о местонахождении, полученные от устройства, с которого был отправлен твит, или определенные на основе IP-адреса этого устройства. Дополненное сообщение добавляется в третью очередь.

На заключительном этапе функция Azure сохраняет сообщение в соответствующем формате в DocumentDB.

По завершении выполняемых функциями Azure операций дополненные данные будут доступны клиенту через REST API. API предоставляет доступ к информации из учётной записи пользователя и собранным данным из социальных сетей. Этот API реализован в файле Node.js, запускаемом в экземпляре веб-приложения Azure. Этот же API также отвечает за проверку подлинности в клиентском приложении.

Мобильное приложение Xamarin, которым пользуются поисковые отряды и полицейские, подключается к REST API, позволяя визуализировать данные и даже отслеживать местоположение (при наличии соответствующей информации). Воспользоваться этим приложением можно только после авторизации. В следующем выпуске отчёты обо всех пропавших детях будут публиковаться на централизованной информационной панели, которая перенаправляет информацию в правоохранительные органы в пределах указанного района.

Методы решения поставленных задач

В данной работе применялись следующие инструменты.

GitHub — для хранения всего исходного кода, выпускаемого под лицензией Apache. Размещая исходный код в открытом доступе, мы подключаем к этой важной работе всех желающих и предоставляем более широкому кругу пользователей возможность использовать подобные системы для поиска пропавших без вести или решения других задач, связанных с идентификацией и отслеживанием местоположения людей.

Службы Visual Studio Team Services помогли обеспечить поддержку сборок непрерывной интеграции и процесса развёртывания. Члены команды проекта находились в Торонто и Калгари. Благодаря VSTS они могли обмениваться кодом и участвовать в совместной работе.

Платформа Azure предоставила самые простые, экономичные и масштабируемые службы. Учитывая текущий набор требований к процессам и системам хранения данных, решение должно обрабатывать огромные объёмы данных с минимальными задержками.

Приложение Node.js собирает данные о самостоятельной регистрации пользователей, желающих получить доступ к хэштегу. Эту страницу можно адаптировать к потребностям клиента.

Процесс приёма данных позволяет быстро найти контент, самостоятельно зарегистрированный пользователем. В текущей версии мы решили использовать приложение логики (Logic App), поскольку затраты на него намного меньше, чем на длительно выполняемую функцию Azure. Приложение логики обращается к Twitter каждые 30 секунд. При обнаружении твита с искомым хэштегом приложение добавляет этот твит в очередь обработки.

Последующий процесс построен на базе надёжных функций и очередей Azure, обеспечивающих надлежащую обработку даже в случае возникновения ошибок. Функции Azure также обеспечивают высокую масштабируемость и позволяют свести затраты к минимуму. У каждого этапа процесса своя задача: для начала, необходимо определить, зарегистрирован ли автор твита. Если такой пользователь не зарегистрирован, сообщение просто игнорируется без создания копий, что гарантирует конфиденциальность. Далее необходимо запросить дополнительную информацию. В текущей версии мы сосредоточились на добавлении геопространственных данных, однако можно включать и другую информацию. Наконец, элемент извлекается из последней очереди и помещается в базу DocumentDB, доступ к которой осуществляется через REST API с помощью клиента Xamarin.

Формы Xamarin.Forms помогли обеспечить поддержку развертываний в ОС Android, iOS и Windows, гарантируя при этом единообразное представление для пользователей на всех доступных устройствах и оптимизированный процесс развертывания. Клиентское приложение предоставляет данные в удобном формате. Благодаря полной поддержке REST в Xamarin мы подключаемся к REST API, импортируем данные и отображаем их в виде списка. Клиентское приложение позволяет просматривать данные (или «дела») и сортировать их по состояниям: «открыто», «в архиве» и «просмотрено». Если в выбранном деле присутствуют геолокационные данные, то приложение покажет на карте последнее известное местонахождение пользователя социальных сетей. Кроме того, приложение использует шаблон MVVM — стандартную архитектуру, которую RedBit применяет в своих мобильных приложениях. Команда разработчиков RedBit помогла интегрировать некоторые компоненты исходного кода MVVM Light.

Как в Канаде ищут пропавших детей - 6

Дальнейшие шаги

Приложение Facebook/Instagram. Система поддерживает несколько каналов различных социальных сетей. Данные из этих сетей будут встроены в один процесс со своими характеристиками.

Приложение Twitter. В настоящее время в качестве точки взаимодействия приложение логики использует учётную запись JefKingTweets. В дальнейшем приложение будет перенесено на учётную запись MCSC.

Периодичность обработки твитов в приложении логики. В настоящее время данные поступают примерно раз в 30 секунд, этот интервал в случае необходимости можно будет изменить.

Функция Azure для дополнения данных. В системе может собираться дополнительная контекстуальная информация, которая будет полезна поисковым отрядам. Например, можно выгрузить историю твитов пользователя, чтобы узнать, кто его друзья и где он любил бывать. Можно в течение следующих 48 часов отслеживать новые твиты и пытаться определить местоположение. Можно также контролировать другие геолокационные метки, которые помогут определить местонахождение ребёнка.

Автоматическая настройка функции Azure. В ходе реализации проекта функция Azure настраивалась вручную. В дальнейшем в целях упрощения управления и повышения безопасности будет реализована автоматическая настройка с помощью служб Visual Studio Team Services.

Методика DevOps

Ниже речь пойдёт о методиках DevOps, которые применялись в процессе реализации проекта.

Value stream mapping

Это упражнение обычно выполняется в отношении существующего набора процессов и действий, связанных с разработкой конкретного решения. В данном случае мы изучили существующий процесс и выслушали предложения по его совершенствованию от представителей MCSC, полиции и муниципалитета Калгари. Как уже говорилось ранее, команда проекта составила схемы и тщательно изучила функции Azure и клиентское приложение. Удалось не только определить возможности для оптимизации, но и реализовать их, чтобы ускорить разработку решения и достичь высокого уровня автоматизации. В результате Value stream mapping в этот проект добавлены следующие функции:

  1. Проверка подлинности в мобильном приложении. С её помощью представители правоохранительных органов получают защищенный доступ к данным о пропавших детях, которые функция Azure передает из учетной записи в Twitter.
  2. Изображение из профиля в Twitter. Изображение добавлено в отчет, поскольку оно также может помочь в поисках пропавшего ребёнка.

Репозиторий на GitHub

Создана новая организация на GitHub и несколько репозиториев для упрощения и ускорения работы команд специалистов, принимающих участие в проекте.

Как в Канаде ищут пропавших детей - 7

В итоге были созданы репозитории:

  • authorization: авторизация клиента в социальной сети;
  • client: разработка приложения Xamarin;
  • client-api: интерфейс API для клиентских устройств;
  • client-registration: регистрация push-уведомлений;
  • infrastructure: инфраструктура Azure;
  • messaging: передача и обработка серверных сообщений.

Непрерывная интеграция

Чтобы ускорить сборку и развёртывание мы создали четыре потока непрерывной интеграции в службах Visual Studio Team Services:

  • client-api-ci;
  • messaging-ci;
  • authorization-ci;
  • Infra-DEV-CI.

Как в Канаде ищут пропавших детей - 8

Каждое из них включает в себя задачи для создания правильной сборки, в том числе npm, gulp, Grunt и другие (в зависимости от языка и типа сборки). Клиентские приложения Xamarin развёрнуты с помощью решения HockeyApp в службах Visual Studio Team Services.

Непрерывное развёртывание

Созданы четыре очереди управления релизами, чтобы команда могла создавать программное обеспечение в рамках коротких циклов. Такой подход обеспечивает возможность выпуска релиза в любой момент. Платформа HockeyApp обеспечила дополнительную гибкость, поскольку приложения доставляются непосредственно на устройства, размещать клиентское приложение в магазине нет необходимости. Такой подход ускоряет все процессы и снижает затраты и риски, связанные с развёртыванием изменений, позволяя устанавливать добавочные обновления для приложений в производственной среде.

Как в Канаде ищут пропавших детей - 9

Инфраструктура как код

Инфраструктура для решения создана с помощью набора шаблонов JSON, которые используются для развёртывания среды и других компонентов, которые требуются решению. Шаблоны JSON загружаются в репозиторий infrastructure в GitHub, на них распространяется тот же процесс управления сборками и релизами, что и на остальной исходный код. Этот процесс гарантирует согласованное развёртывание для группы ресурсов в среде разработки, тестовой и производственной средах.

Как в Канаде ищут пропавших детей - 10

Заключение

Команда проекта успешно разработала процедуру регистрации для идентификации пользователей, процесс сбора, обработки и дополнения данных, интерфейс API и приложение для клиентских устройств.

Эти компоненты помогут ассоциации MCSC быстро создавать и оптимизировать свои сервисы. Благодаря применению методики DevOps процесс оптимизации и расширения возможностей значительно ускоряется.

Как в Канаде ищут пропавших детей - 11

Кроме того, в ходе работы команда проекта успешно получила GPS-данные от Twitter и Facebook и представила эти данные в приложении Xamarin.

В процессе разработки структурной схемы проекта выявлена необходимость создания информационной панели для центрального офиса, чтобы можно было проверять информацию перед её отправкой в местные правоохранительные органы. Эта возможность будет реализована в следующем релизе.

Представители MCSC, полиции и муниципалитета Калгари по достоинству оценили возможность непрерывного совершенствования кода, развертывания дополнительных функций через GitHub и передачи приложений на мобильные устройства с помощью HockeyApp.

Напоминаем, что бесплатно попробовать Microsoft Azure можно здесь.

Если вы увидели неточность перевода, сообщите, пожалуйста, об этом в личные сообщения.

Автор: Microsoft

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js