2012年11月22日木曜日

BaaS(Backend as a Service)のプッシュ通知サービス

最近、BaaS(Backend as a Service)っていう言葉をよく聞きます。これは、スマートデバイス(モバイル)アプリケーション向けに、サーバサイド実装の手間を省くため、データベースへの保存・参照、SNSとの連携、プッシュ通知、認証、ファイル保存などの機能を簡単に呼び出すことができるサービスです。(実際はモバイルのみが対象ではないものもあり、本当にモバイル特化の場合は、MBaaSという呼び方をする場合もあるそうです。)これらのサービスにはSDK(開発キット)が提供されておりAPIをコールするだけで呼び出すことができたり、RESTでアクセスする機能が提供されています。
今回は、そのBaaSの中の1つのサービス「プッシュ通知」機能について、各ベンダーごとにどのようなサービスを提供しているのかを見ていきたいと思います。

その前に、プッシュ配信の仕組みについては、ほとんどのベンダーがApple、Google、Microsoftが提供するサービス「APNS(Apple Push Notification Service)」、「GCM(Google Cloud Messaging for Android)」、もしくはMicrosoftの「WNS(Windows Push Notification Service)」をベースに作っています。簡単に言えばラップしているだけのサービスなので、以下のようにBaaSベンダーはプッシュされたメッセージを各ベンダーごとに振り分けるというようなサーバを用意しているというイメージになります。


このことから、以下のページを参考にして、自分で実装することもできます。

ただ、簡単になっていますので、BaaSを使った方が便利ではありますね。

では、各BaaSベンダーのサービスです。

Microsoft Mobile Services
上記でも軽く触れました名前の通りのMicrosoftがAzure上で提供する「Windows Push Notification Service (WNS)」というサービスです。そのため以下のようにWindowsがサポート対象ですが、将来的にはAndroidやiOSにも対応するようです。
・プラットフォーム: Windows Store, Windows Phone
・言語: C#など

ACS(Appcelerator Cloud Services)
モバイル開発ツールで有名な「Titanium Mobile」を作っている会社「Appcelerator」がCocoafishという会社を買収して、ACSという名称で提供しています。
・プラットフォーム: Android or iOS
・言語: JavaScript, REST, AS3, Java for Android

Buddy
ここのサービスは、他とは違いAndroidとiOSに加え、Windows系もサポートしています。内部的には上記のWindows Push Notification Service(WNS)を使っているようです。
・プラットフォーム: Android, iOS, Windows Store, Windows Phone 
・言語: Java, Objective-C, C#

appiaries(国産)
国産のBaaSのようです。ただ、プッシュ配信は、まだ未提供のようです。将来的にはAndroid/iOS対応予定とのこと。

Parse
・プラットフォーム: Android, iOS
・言語: REST, JavaScript, Java for Android, Objective-C for iOS

StackMob

・プラットフォーム: Android, iOS
・言語: Java for Android, Objective-C for iOS, REST
   
Kinvey
http://www.kinvey.com/
・プラットフォーム: Android, iOS
・言語: Java for Android, Objective-C for iOS

その他、ApplicasaQuickbloxSencha.ioなどの有名なBaaSがありますが、あまり変わらなそうなので、とりあえずこれらは未調査。


上記サービスは基本的に、APNS、GCM、WNSをベースに作られていますが、プッシュ配信と言えば、HTML5のWebSocketが有名です。そこで、WebSocketをベースにプッシュ配信サービスを提供しているベンダーを少し挙げてみます。

pusher
PHP, Ruby, JavaScriptなどWebSocket ClientのAPIがあればアクセス可能

Kaazing
http://kaazing.com/
プッシュ通知サービスは、Kaazing WebSocket Gateway (HTML5 Edition)と呼ばれるようです。こちらもWebSocket Clientのライブラリからアクセスできますが、あらかじめ、Java, JavaScript, .Net, SilverLight, AIR, Flex, Flashなどのライブラリが用意されているようです。また、WebSocket以外にも、JMS, AMQP, XMPPもサポートしています。(ただし、WebSocketほどメジャーではないですが。)

以上がプッシュ通知のサービスですが、今後はBuddyなどのようにAPNS、GCM、WNSを連携するのみでなく、さらにWebSocketなどもサポートされていくのではないかと思います。

0 件のコメント:

コメントを投稿