Windows Azure モバイルサービスGA(まとめ)
以前このBlogで BaaS としての機能を提供する Windows Azure モバイルサービスの背景や概要 を解説しました。当時はプレビューということもあり、従来からサービスを提供しているappiaries、parse などに比べ後塵を拝していたかもしれません。しかし、2013年6月にモバイルサービスが正式リリースしたことで大幅に機能が追加され柔軟性、安定性が増しています。何より美しく使い易いWindows Azure管理ポータルから様々なサービスと組み合わせ利用できるのは便利です。「漸くMBaaSに本気で取り組みはじめたか!」といった出来栄えになりつつあるので、注目して頂きたい。
ここでは全体的にモバイルサービスに関する情報をまとめておきます。ご存じの内容も多いかもしれませんが、ここ最近バラバラと情報が出てきてまとまったものが見当たらなかったもので。
マルチプラットフォーム対応
Windowsストアアプリをはじめ、Windows Phone 8、iOS、Android、HTML/JavaScriptと幅広いプラットフォームに対応しています。いまやマルチプラットフォーム対応は必須でしょう。
プラットフォームごとのチュートリアルはこちらを参考にしてください。
https://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started/?fb=ja-jp
データの CRUD 操作を含め、モバイルサービスはREST APIを公開します。
https://msdn.microsoft.com/en-us/library/windowsazure/jj710108.aspx
スケール
価格帯の異なる無料、スタンダード、プレミアムの 3 つの層で提供されます。SQL データベース20MB(無料)に加え、無料枠が提供されてたは嬉しいですね。個人でアプリを開発するホビーユーザーなどは無償枠をガンガン利用して頂きたいと思います。また、将来的にアプリを利用するユーザーが増加して収益が望めるのであれば、スタンダートやプレミアムに変更することもできます。
標準およびプレミアムでは自動スケールの機能を利用できます。これは他のホステッドサービスのようにCPU負荷に応じたスケールアウト機能ではありません。モバイルサービスでは1ユニットあたりのトランザクション数が決まっているため、それを超えた場合に自動スケールしてユニットを増やす仕組みを提供します。
料金の詳細
https://www.windowsazure.com/ja-jp/pricing/details/mobile-services/
API
以前は各テーブルのCRUD操作それぞれに対して1つのサーバーサイドスクリプトを実装できる仕組みになっていました。現在はRESTスタイルのカスタムAPIを複数定義できるようになりました。プッシュ通知の実装などはカスタムAPIで実装してもよいかもしれませんね。
モバイルサービスではサーバーサイドロジックをJavaScriptで実装します。これは、モバイルサービスを.NET開発者だけでなくOSS系も含め幅広く利用して頂くことを目的にしています。個人的には C# で開発したいですが、ポイントさえ押さえればさほど難しくはないと思うので .NETerな開発者にもあきらめずに利用して頂きたいと思います。
カスタム API の詳細
https://msdn.microsoft.com/ja-jp/library/windowsazure/dn303368.aspx
モバイルサービスのスクリプトリファレンス
https://msdn.microsoft.com/ja-jp/library/windowsazure/jj554226
サンプルソース
https://www.windowsazure.com/en-us/develop/mobile/how-to-guides/work-with-server-scripts/?fb=ja-jp
スケジューラー
ジョブを定義して定期的もしくはオンデマンドで実行することができます。用途としてはモバイルサービスに閉じたものではないので、様々なシーンで利用できます。
例えば応用例として、Build Insider で次のような使い方が紹介されています。
スケジュールされたジョブ機能とWindows Azure Webサイトを組み合わせた定期処理の実装
https://www.buildinsider.net/web/webapibatch/01
チュートリアル
https://www.windowsazure.com/en-us/develop/mobile/tutorials/schedule-backend-tasks/
動画(How to)
構成
Gitを使ったソース管理やサービスの監視を行うことができます。
Gitを使ってローカル環境で開発したソースコードをそのままモバイルサービスにコミットできるようになったのは非常に便利ですね。開発しやすくなりました。
ソース管理のチュートリアル
https://www.windowsazure.com/en-us/develop/mobile/tutorials/store-scripts-in-source-control/
プッシュ通知
プッシュ通知は WNS(Windows ストアプリ)、MPNS(Windows Phone)、APNS(iOS)、GCM(Android) に対応しています。
プッシュ通知のチュートリアル
https://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-push-dotnet/
ID
認証についてはMS、FaceBook、Twitter、Googleが使えます。
チュートリアル
https://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-users-dotnet/
Visual Studio 2013連携
プレビュー公開されている Visual Studio 2013 ですがモバイルサービスとの連携が強化されています。
Windows ストアアプリとモバイルサービスを連携して、容易なプッシュ通知を実現できたり、サーバーエクスプローラからモバイルサービスへ接続することが出来るようなっています。
詳細はこちら
https://msdn.microsoft.com/en-us/library/windows/apps/dn263175.aspx
尚、Windows Azure 仮想マシンのギャラリーで Visual Studio 2013入りイメージが公開されているので簡単に試せます。
その他リソース
チュートリアル
https://www.windowsazure.com/en-us/develop/mobile/resources/?fb=ja-jp
Windows Azure:モバイルバックエンド環境の大幅アップデート
https://codezine.jp/article/detail/7224
Windows Azure: Webサイト/モバイル サービスの正式リリース (GA)、新しい自動スケールとアラートのサポート、MSDNでのクレジット カード不要
https://satonaoki.wordpress.com/2013/06/28/azure-mobile-websites-2/