アプリを開発する上で欠かせない存在なのがプッシュ通知です。mBaaSでのプッシュ通知は売りの一つになっています。プッシュ通知についてmBaaSのようなクラウドサービスを使わない場合、選択肢と上がってくるのはスクラッチでの開発か、プッシュ通知サーバの導入です。
プッシュ通知サーバを使う利点としてはスクラッチに比べれば導入が容易であったり、疎結合になることだと思います。そこで今回はオープンソースのプッシュ通知管理サーバを紹介します。
Countly/countly-server
SDKはUnity、iOS、Android、Cocos2d、PhoneGap、Windows Phone、Blackberry、Titaniumと多岐に渡っています。
airnotifier/airnotifier
Python製のプッシュ通知管理サーバです。iOS/Android/Windows Phoneに対応しています。SDKはなく、APIベースでURLを叩いてトークンを設定する仕組みになっています。データはMongoDBで管理されます。
rs/pushd
Smile-SA/node-pushserver
Web APIのみの提供で、トークンの登録と実際のプッシュ通知はWeb API経由で行います。SDKはないので受け取った後の処理なども基本的にすべて自力での実装になります。
aerogear/aerogear-unifiedpush-server
Uniqush - Push Notification Solution for Mobile Platforms
Helios ???? An Extensible Open-Source Mobile Backend Framework
いかがでしょうか。プッシュ通知サーバだけを独立して用意するのはシステムの複雑性を回避したり、メンテナンスコストを下げるのには向いているかと思います。プッシュ通知の送信については多くのライブラリが存在しますが、トークンの登録まであるのはそう多くはありません。
mBaaSの利点としてはこれらプッシュ通知サーバと同様にシステムを疎結合にできること、SDKを使うことでトークンの登録やプッシュ通知を受信した時の処理をシンプルにできること、プッシュ通知の開封レポートをはじめとする管理画面が用意されていることが利点と言えます。
また、プッシュ通知の送信はバックグラウンドで行われるため、メンテナンスを忘れているといつの間にか届かなくなっていたということも少なくありません。数万のデバイスに対する安定したプッシュ通知の運用を考えるならばmBaaSを使う方が手軽ではないでしょうか。外部にデータを預けるのが企業上できないという時には今回紹介したようなシステムが役立つはずです。