Notification Hub:Androidブロードキャストプッシュ型通知サポート
年初、Windows Azureに、Notification Hubという新機能を導入し、ハイスケールにブロードキャストプッシュ型通知が送信できるようになりました。
Notification Hubの初回プレビューでは、iOSおよびWindowsデバイスでこのサポートが使用できました。今回、新たにAndroidデバイスにもプッシュ型通知が送信できるようになったNotification Hubサポートについてご紹介いたします。
プッシュ型通知は、モバイルアプリケーションには欠かせないコンポーネントです。これは、アプリの関わりと使用を増加させたい顧客アプリだけでなく、従業員のビジネスイベントに対する反応を増加させる最新情報が必要な企業アプリにも、重要なものです。
Notification Hubを使用して、どのタイプのアプリ(Mobile Service、Webサイト、クラウドサービス、仮想マシン)からでもデバイスへプッシュ型通知を送信できます。
Notification Hubは以下のような機能を提供します。
クロスプラットフォームのプッシュ型通知サポート
Notification Hubは、共通のAPIを提供して、iOS、Android、Windows Storeにプッシュ型通知をただちに送信します。
アプリは、プラットフォームに特有のフォーマットもしくはプラットフォーム依存の方法で通知を送信できます。
効率的なマルチキャスト
Notification Hubは、少ない待ち時間で何千・何百万ものデバイスへプッシュ型通知のブロードキャストができるように最適化されます。サーバーのバックエンドは、Notification Hubへ1つのメッセージを送ると、何百万ものプッシュ型通知が自動でユーザに送信されます。Notification Hubに登録の際、デバイスやアプリは、ユーザあたりのタグの数を指定できます。
これらのタグは、前もって準備したり廃棄する必要がなく、非常に簡単な方法でフィルターされた通知を、1つのAPIのコールで、無限数のユーザやデバイスへ送信できます。
極限スケール
Notification Hubは、アプリケーションを再構築したり共有することなく、何百万ものデバイスに到達できるようにします。
Pub/Subルーティングメカニズムにより、非常に効率的な方法で通知をブロードキャストできます。これにより、独自のルーティングインフラを構築することなく、何百万ものユーザーへ通知メッセージを、信じられないぐらい簡単な方法で、ルーティングおよび送信できるようになります。
バックエンドアプリからの使用
Notification Hubは、Mobile Service、Webサイト、クラウドサービス、IAAS VMなど、どんなバックエンドサーバアプリとも簡単に統合できます。
Androidに、プッシュ型通知を送信するためのNotification Hubの構成は簡単にできます。
Notification Hubを、Windows Azure管理ポータルで新規作成します(New->App Services->Service Bus->Notification Hub)。
次に、https://code.google.com/apis/consoleから、Googleクラウドメッセージング登録をし、APIキーを獲得したら、Googleクラウドメッセージング設定にあるNotification Hub管理ページのCONFIGUREタブにそのキーをペーストするだけです。
AndroidアプリのMainActivityクラスにあるOnCreateメソッドにコードを追加すると、Notification Hubにデバイスが登録されます。
gcm = GoogleCloudMessaging.getInstance(this); String connectionString = "<your listen access connection string>"; hub = new NotificationHub("<your notification hub name>", connectionString, this); String regid = gcm.register(SENDER_ID); hub.register(regid, "myTag");
これで、.NETバックエンド(または、Node、Java、PHP)から、“myTag”タグに登録されたWindows Store、Android、iOSデバイスへ、1つのAPIコールを通じて(文字通り、たった1つのAPIコールで登録した何百万ものクライアントへメッセージをブロードキャストできます)通知をブロードキャストできます。
var hubClient = NotificationHubClient.CreateClientFromConnectionString( “<your connection string with full access>”、 "<your notification hub name>"); hubClient.SendGcmNativeNotification("{ 'data' : {'msg' : 'Hello from Windows Azure!' } }", "myTag”);
Notification Hubは、究極にスケーラブルで、クロスプラットフォーム、プッシュ型通知のインフラを提供するため、何百万ものモバイルユーザやデバイスへプッシュ型通知メッセージを効率的にルーティングできます。これにより、プッシュ型通知ロジックを大幅に簡易化し、よりスケーラブルにすることで、より良いアプリの構築が可能になります。
Notification Hubの詳細については、ここからMSDNをご確認ください。
まとめ
上記機能はすでに本番環境にあり、すぐに利用可能です(注:まだプレビューのものもあります)。もしまだWindows Azureアカウントをお持ちでなければ、無償トライアルにサインアップして、上記機能をすぐにお試し頂けます。アプリの構築方法などの詳細は、Windows Azure Developer Centerで確認してください。
Hope this helps,
Scott
P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。