スマホアプリで会員管理システムを構築していて、サービス運用側から会員向けに情報を発信するための仕組みや運用方法をあらかじめ設計しておく必要があります。サービス運営者がニフティクラウドmobilebackend(mBaaS) によく保存されているデータは例えばこのようなデータです。
プッシュ通知:運営からの会員に向けてのお知らせ
静的データ:会員規約・FAQ
テンプレート:位置情報で使うMapデータなど
これらのデータをサービス運営者はどうやって登録しているのでしょうか。その仕組みをシステムを作る部門はどうやって作ったのでしょうか。mbaasを簡易的なCMS(コンテンツマネジメントシステム)として扱って、両者がハッピーになれる仕組みを活用しているケーススタディをご紹介します。
サービス運営者の立場
ある程度の会員数を抱える会員制サービスを運営するにあたって、システムを作る部門と、サービスを運営する部門は別れている場合が多いと思います。ニフティの場合でもWebサイトを運営するメンバーと、WebサイトのCMSを構築するメンバーは別々になっていることが多いです。
その場合、サービスを運営する部門にとってはCMSに「何の仕組をつかっているか」ということよりも「どういう手順で運営するか」の方が運営をうまく回していくという点で重要になってきます。逆にシステムを作る部門にとっては「どんな仕組みでCMSを構築するか」という事がシステム運用をするという点で重要になります。
mBaaSを直接使う方法
システムを作る部門からするとmBaaSのようなあらかじめ機能がサービス化されているものを使ったほうが、開発の量が減るので圧倒的に開発が楽になります。開発者と運用者がおなじメンバーであるような一体感のある規模であれば、こちらの方が手っ取り早く開発をすすめ、リリースも早いです。
リジェクトされないデータ更新のテクニックとして別記事に取り上げました。
アプリ開発でリジェクトされないためのクラウド活用法~ファイルストア編~
- アプリ内のデータを更新したい
- キャンペーンにあわせて背景画像を変更したい
- アイテムのセール期間だけバナー画像を変更したい
- お知らせページやヘルプページなどを更新したい
しかしながら、運用者が開発者とは別の場合、運用者はmBaaSを使う手順や方法を覚える必要があり、かつ、運用者はプッシュ通知だけ送れればいいのに、ファイルを操作できるなど、他事もできてしまう事になるシステム上のリスクや、煩雑さが増えてしまうかもしれません。
独自管理画面を用意する方法
そこでよくある代替案が、そのサービス専用に作られる、いわゆる「独自管理画面」という名のサービスを運営するためのWebアプリケーションです。ただ、トレードオフとして今度はWebアプリケーションの為に独自のデータベースやファイルストレージを構築するとシステム管理が面倒になります。
そこでおすすめなのが、データベースやファイルストレージの部分をPaaSであるmBaaSに任せてしまい、WebアプリケーションからmBaaSにデータを投入する方法です。実はmBaaSはWebアプリケーションからREST APIというインタフェースを介してデータを連携操作できるようにつくられています。
- ドキュメント REST APIリファレンス
- サンプル 【PHP】 サーバからファイルをアップロードしよう![REST API]
この管理画面では下記のような3つの機能が必要になります。
運営者のアカウント管理
静的データやテンプレートの登録
プッシュ通知の登録
運営者のアカウント管理
運営者が管理画面にログインするときの認証、およびユーザレベルに併せて操作できるデータや機能の範囲を変える必要があります。
管理者グループを作成しておくことで、その管理者に所属しているユーザであれば常に全データが参照できるようにしておくと担当者専用の管理画面なども作りやすくなります。 データストアではロールを使ったパーミッションを設定しましょう
プッシュ通知の登録
プッシュ通知配信で運用担当者に特化した機能に絞り込んだ配信画面が必要になります。例えば「iOSユーザの最終ログイン日時1日以内」という絞込ではなく「関東のAマネージャ担当店舗メルマガ」のような運営担当者によりそった切り口で機能を提供する必要があります。
たとえば、京王アプリの例ではこのように使われています。
今回、運用を行う担当者や加盟店様向けに管理画面はmBaaSのコントロールパネルとは別で開発しています。mBaaSのコントロールパネルは技術者にとっては分かりやすいのですが、運用担当者に特化したものではありません。そこで独自の担当者にとって分かりやすい画面を使って、REST API経由でデータを簡単に登録できるようにしています。 「mBaaS採用で、サーバー開発が完全不要に!」 – 京王グループの京王アプリ事例インタビュー
さいごに
管理画面はシステム開発の最後のフェーズから設計しがちですが、あらかじめ活用するPaaSを前提に設計すれば、後々の運用コストを抑えることができます。できるだけデータを保持する部分はクラウドにまかせ、機能で運用をカバーするように設計を心がけましょう。