ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

mBaaSデザインパターン(その1)「企業利用アプリ」

mBaaSというのは汎用的な機能を提供しています。そのため、実際のアプリ開発案件に対してmBaaSが使えるのか否か判断がつかないというケースがあるのではないでしょうか。そこで今回からmBaaSデザインパターンとして、案件の形ごとにどうmBaaSが使えるのかを紹介していきたいと思います。

要件

  • 自社内にある顧客データベースを社外からも参照できるようにし、営業効率を高めたい。
  • 顧客からクレームがあった時に近くにいる営業担当者に訪問を促したい。
  • 直行直帰する担当者向けに日報を書けるようにしたい。

社内データの参照について

まず自社内にあるデータベースを参照するという件ですが、主に2つの方法が考えられます。

  • オフィスにあるルータ、ファイアウォールに穴を開けて外部から入れるようにする
  • データをインターネット上にコピーして、それを参照する

ルータに穴を空けるような行為はVPNを使うとしてもセキュリティ上の懸念がありますし、利用までの仕組みが複雑になります。社内にあるデータをインターネット上のサーバにコピーする方法であれば、情報の公開範囲を絞り込めますし、セキュリティレベルを下げずに済みます。ただし、社内とインターネットのサーバ上で双方向に更新できる仕組みは難しいと言えます。そのため、社内のデータをインターネット上にコピーするだけ、インターネット上のデータは変更しないと考えるのが良いでしょう。

mBaaSを使う場合、社内データをデータストアにコピーするのが一般的です。すでにあるデータはすべて消して、改めてデータをコピーするのが良いでしょう。Node.js向けにSDKが公開されていますので、深夜のバッチ処理などを使って社内データを反映します。

近くにいる営業担当者を見つける

外出している営業担当者の位置を把握できれば、一番近くにいる人に顧客へ訪問を促すことができます。この仕組みを実現するためには2つの機能が必要です。

  • バックグラウンドで定期的に位置情報をサーバ内にアップデートする
  • 位置情報検索を使って、顧客の住所付近にいる営業担当者を発見する

この場合、問題になるのは位置情報の定期的なアップデートになるでしょう。そこでもう一つの方法があります。

  • 全端末にプッシュ通知を送信。payloadに位置情報を含んでおく
  • プッシュ通知を受け取った端末が自分の位置情報と比較する
  • 近くであれば、自分が行く旨連絡する

違いとしては指令を出す側が営業担当者の位置情報を確認するのか、営業担当者の持っているデバイスが自分で確認するのかになります。後者の方が技術的にはシンプルで、実装しやすいと思います。

これらを可能にするのはmBaaSの位置情報検索とプッシュ通知になります。

日報を書く

日報を書くためにはデータをインターネット上に保存できる仕組みが必要です。 先ほどの社内データを参照する部分ではデータストアは参照のみという形でした。日報を書く場合は逆にデータストアへのデータ作成や更新といった処理が行われます。

データを書き込んだり、更新や削除といった処理がある場合はデータのアクセス権限が大事になります。そういった仕組みを自前で実装するのは大変ですが、mBaaSを使えばまったく問題になりません。SDKを使うことであっという間に実装できます。

登録したデータはバッチ処理でmBaaSから社内データに反映できるでしょう。この場合もNode.jsのSDKが使えるはずです。日付と営業担当者でユニークなデータとしておくことで、間違った更新や削除を防ぐ必要があります。


このように営業管理システムを考える際にもmBaaSが使えるポイントが多数あります。今回は、

  • データストア
  • 位置情報検索
  • プッシュ通知

を組み合わせる形で考えてみました。他の機能(ファイルストア、会員管理など)も使える場面はありそうです。