AWS 導入事例:Juniper Mist AI を活用した位置情報サービスのデモ用アプリケーション開発

Home \ フォージビジョンクラウドが担当させていただいた事例の紹介ページ \ AWS 導入事例:Juniper Mist AI を活用した位置情報サービスのデモ用アプリケーション開発

Juniper Mist AI を活用した位置情報サービスのデモ用アプリケーション開発

ジュニパーネットワークス社が提供する「Juniper Mist AI (以下、Mist)」は利用者の利用環境を学習し UX を改善する AI 搭載無線アクセスポイントです。この「Mist」が持つ位置情報技術を活用するための取り組みとして、フォージビジョンは「Mist」を利用しイベント会場などで位置情報を活用したサービスを提供するためのデモおよび評価用アプリケーションを開発しました。

プロジェクト名・製品名

Mist の拡張デモンストレーション・アプリケーション開発

クライアント

ジェイズ・コミュニケーション株式会社: Mist Systems のディストリビュータであり、Mist 製品の販売展開やマーケティング活動を実施

技術

AWS Code Commit, AWS Code Build, AWS Code Pipeline, AWS CloudFormation, Amazon API Gateway, AWS Lambda, Amazon Simple Storage Service (S3), Amazon DynamoDB, Amazon Cognito, Amazon CloudWatch

担当範囲

iOS アプリケーション開発、API 開発、AWS インフラ構築

ストーリー

背景、目的

フォージビジョンはシステムを導入しているクライアント、また世の中の要望などからイベント会場や商業施設などで位置情報を活用したサービスを希望する声があることから、スマートフォン向けのデモおよび評価用アプリケーションの開発を進めました。

以下の Mist が提供する機能を利用することによりシステム開発が効率的に実施できるため、Mist を利用する前提でのシステム開発を進めました。

  • ビーコン検知機器を個別での設置が不要
    電波強度の調整が簡易にできる
  • 機器の管理が Mist 側で一元管理できる
  • これらの位置情報について、Web-API から利⽤できるインターフェースが⽤意されている

また下記理由からスマートフォン向けのアプリケーションの開発を進めました。

  • Mist の管理画面から位置情報を確認できるが、管理者以外への公開方法が限られている Mist が提供するデモアプリ(Mist Experience)は道案内など個人向けのサービスを備えているのに対して、ユーザ間での情報共有を視覚的に⾏えるデモをしたい
  • PoC を実施する際に、検証を⾏えるアプリケーションを⽤意したい

ポイント

  • リアルタイムに位置情報を把握できる
  • 拡張性を考慮したシステム設計(今回開発する iOS 以外にも Android、Web アプリケーションなどと連携)と機能追加など
  • スマホアプリケーション開発から API 開発、AWS インフラ構築まで一気通貫で対応できる高い技術力

アプリケーションの特徴

  • 管理システムに登録されたビーコンの情報だけでなく、統制されていない、いわゆる「野良ビーコン」の位置もバイ・ネームで取得ができ位置が把握できる
  • 遠隔地からも位置情報が把握でき、把握できるビーコン情報もグループを分けて表示することができる
  • iOS アプリケーション本体に Mist ライブラリを導入したため、Mist アプリケーションの情報に加えて本アプリケーションが起動している端末の場所も把握ができる
  • 人の動き、密度などを過去に遡って把握できる
  • システム登録により、さまざまな Mist 機器を設置した場所の情報が取れる

構成情報

今回、フォージビジョンが担当したのはiOS用アプリケーション開発と、アプリケーションがWebViewで表示するための静的 Web コンテンツ作成、iOSアプリケーションがMistAPIにリクエストするための仲介API構築などです。

ログイン画面も用意し、ログイン認証には Amazon Cognitoを利用しました。DynamoDBにはCognitoのユーザー情報に紐付けるための所属情報なども格納しました。DynamoDBには、CloudWatch Eventsで定期的にLambda関数を呼び出し、アクセスポイント情報をキャッシュするようにしてMistAPIの負荷を軽減しました。これにより例えば、一人のユーザーが複数のマップ情報を閲覧する場合に、MistAPI側ではなくAWS側で紐づける情報を保持しアプリケーションでスムーズに切り替えができるようにしました。

仲介 API として API Gateway を構築したのは、MistAPI の呼び出し制限や MistAPI の機能を補完するためです。Amazon S3 に静的Web コンテンツを配置し、iOS アプリケーションは、アプリケーション本体に格納したエンドポイント情報をキーに API Gateway 経由で MistAPI をリクエストするようにしました。これにより改ざんやなりすましを防ぐセキュアな通信を実現しました。

更に、API は RESTful API の仕様に準拠して開発しているため、将来 Android 対応が必要になった場合でもアプリケーションの開発だけ行えば、API はそのまま利用できます。Android 開発のコストを抑えられるようにReact ベースの WebView を採用しました。
全ての環境は Code シリーズで管理し、改修も行えるようになりました。

苦労した点・工夫したポイントなど

当初、「MistAPI」の取り組み開始時における技術情報の収集についてはジェイズ・コミュニケーション社のエンジニアの方にご協力いただき、作業の進行と共に技術情報を共有して取り組みを進めることができました。

MistAPI は、Mist の Web 画面で取得できる情報以上の、非常に多くの機能を提供しています。そのため、同様の構成を保つようにドキュメントを読み込む必要がありました。そして、MistAPI の仕様確認や質問などはジェイズ・コミュニケーション社経由でジュニパー社への確認を進めてもらい、会社間のコミュニケーションを密に行うことで後戻りのないスムーズな開発を心がけました。

デザイン部分ではログインして、まず設定画面を表示するのではなくマップを表示して視覚的に分かりやすいインターフェイスにするなど、短時間の間に何度もワイヤーフレームを書き換えてイメージを固めていきました。

動作検証の面では、ジェイズ・コミュニケーション様に貸与いただいた評価機器を使って、アプリケーションの終了時の挙動や、バックグラウンドで動作している間の情報収集などの仕様を実機で調査しデモンストレーションとの乖離が起きないように品質を上げていきました。

デモンストレーション・アプリケーションが実現したもの

デモンストレーション・アプリケーションを利用することで、現地に行かずとも、どこに誰がいるか過去の特定の時間に人が集まっていた場所はどこかなどが把握できるようになりました。加えて、単一アカウントでメニューからマップが変更できるようになり利便性を向上させました。

繰り返しになりますがサーバー側で API を配置しているため、あとはアプリケーションだけ開発すればAndroidでも利用できるようプランニングしました。

今回の開発プロジェクトは、企画から完成まで3ヶ月程度と短いスケジュールでしたが、フォージビジョンのスマートフォンアプリケーション開発から、API開発、AWSインフラ構築まで一気通貫で対応できる高い技術力によって成功できたと自負しております。