最後に、Push Notificationを紹介します。O2Oビジネスを展開する場合、サーバから利用者のAndroidスマートフォンへ情報を直接送り届けたい、という状況が発生します。
例えば「ある店舗でタイムセールスを行うので、店舗の近くに居る利用者へメッセージを送り店舗へ誘導したい」などという場合ですね。
ただし、カーナビなどの専用デバイスとは異なり、サービス提供者が配布したアプリが必ずフォアグラウンドで起動しているとは限りません。そこで「サーバ側が望むタイミングで」メッセージを受け取ってもらうためには、工夫が必要になります。
Androidでは、バックグラウンドで動作し続ける「Service」を作ることができます。また、定期的に処理を実行するための「AlarmManager」サービスも最初から組み込まれています。
これらを利用して、「定期的にサーバへ問い合わせし、条件に合致した場合は通知領域へメッセージを出す」という図5のようなPull型のアプリを作ることは可能です。
しかし、このような実装をした場合、タイミングを逃さないようにするために頻繁に問い合わせをするとバッテリが持ちませんし、問い合わせをするタイミングでネットワーク通信ができなかった場合の処理も自力で実装しなければなりません。「サービス提供者が望むタイミングでメッセージを送り届ける」という要求には、あまり適していませんね。
このような「サービス提供者が望むタイミングでメッセージを送り届ける」場合には、Push Notificationが役に立ちます。Androidの場合、「GCM(Google Cloud Messaging for Android)」という名称でサービスが提供されています。
図6のように、Androidスマートフォン・サービス提供者のサーバ・GCMサーバ群が連動することで、サービス提供者のサーバが任意のタイミングで個々のAndroidスマートフォンにメッセージを送信できるようになります。
このメッセージはサービス提供者が配布したアプリが起動していなくても処理できます。もしAndroidスマートフォンがメッセージを受け取れない場合でも、GCMサーバ群がメッセージをキューイングしてくれます。致れり尽くせりですね。
Androidでは、これまで「C2DM(Cloud to Device Messaging)」という名称でPush Notificationサービスが提供されていました。しかし2012年6月26日よりC2DMは非推奨になり、新しいGCMに移行するようにアナウンスされています。既存のC2DMアプリは現時点でも稼働しているようですが、新規にC2DMアプリを登録できなくなっています。
Push Notificationを用いれば、鮮度の高いOnline情報を適切なOffline状態の利用者へ送り届けられます。OnlineとOfflineのさまざまなチャネルを結び付けるための技術の1つとして、上手く活用してください。
次回は、【1】の屋内測位技術を利用する実装例として、複数のWi-Fiアクセスポイント情報を活用し「今あなたはどの部屋にいるのか?」を教えてくれるSaaS「Walkbase」を利用したアプリについて、ソースコードを交えて解説します。
Copyright © ITmedia, Inc. All Rights Reserved.