私の部署(DPE)では大きく2つの活動があります。1つ目は「Face to Face でお客様訪問しながら製品や技術、サービスを採用して頂く Depth 活動」、それから「Web やイベント 、セミナー等々不特定多数のオーディエンスに対して広く訴求していくBroad 活動」 です。昨年まで自分はインフラストラクチャー推進部に所属しクライアント、サーバー製品を幅広く担当していましたが、何れも Depth でした。そして、今年はクラウドチームに所属がチェンジ、担当する製品のフォーカスは狭まり(Azure)ますが、Depth だけでなく Broad にも注力していきますね。というのが昨年 Blog をあまり POST しなかった(サボった)言い訳で、今年はちゃんと Blog で情報発信出来るようになければ・・・と決意。

   

さてクラウドチーム入りした今年一発目は Azure の Mobile Services をご紹介します。とはいえ、いきなり Mobile Services の紹介をする前にその背景を考えてみましょう。

 

Mobile Services 登場の背景

ここ 2、3 年でスマートフォンやタブレットなどモバイルデバイスの利用が急増しています。このブログを読むような方はバリバリに活用しているのではないかと思います。そして、クラウドにある天気やレシピや地図などのサービスへのトラフィックも PC を上回る勢いです。そういった中、当然ながらサービズプロバイダーは各社競ってモバイルデバイスに対応したアプリを提供し、それがクラウドサービスのフロントエンドの主役になりつつあります。とはいえ、デバイスに対応したアプリ開発にはそれなりにコストがかかるもので、サーバーサイドもアプリの機能に応じて新規で作ったり、作り変えたりすることがよくあります。

特に、次のような機能はクラウドにアクセスする多くのアプリに求められます。

・ユーザー認証

・プッシュ通知

・クラウドストレージやSNSとの連携

 

従来これらの機能を開発者がいちから作っていく方法が一般的でした。しかし、類似した機能を各社別々で作っていくのは効率が悪いです。そこで「多くのアプリが必要とするような機能は、いちいち開発しないでサービスとして提供しよう」という考え方が登場しました。それを BaaS(Backend as a Service)といいます。Wikipedia に 「Backend as a service (BaaS), also known as "mobile backend as a service" (MBaaS)」と記述がありますが、”モバイルに特化型”バックエンドサービスを強く意識しているのが分かります。そして、この BaaS を提供するのが Windows Azure の Mobile Services です。今まで、 Windows Azure では PaaS、 IaaS を提供してきたわけですが、これに BaaS が追加されます。イメージ的には モバイル特化型 PaaS って感じでしょうか。(SaaS と PaaS の間ぐらいかもしれません)

さて、その Mobile Services では次の機能を提供します。つまり上記で紹介した「クラウドにアクセスする多くのアプリに求めらる」機能です。

・ユーザー認証

  Microsoft Account にのみならず Facebook ID、Twitter ID でも認証が可能

・プッシュ通知

  WNS、WPNS、APNS に対応(スケジューリングも可能)

  ※GCM も予定

・クラウドストレージや SNS との連携

    SQL Database を使ったデータの CRUD に対応

 

Azure が提供するもの

image

 

サーバーサイドは Script を使って柔軟にカスタマイズすることが可能です。  また、Mobile Services ではサーバーサイドの機能だけでなく、そこにアクセスするためのクライアントアプリの雛形を自動生成してくれるのも便利です。アプリの雛形は Windows 8、 Windows Phone、 iOSが提供されています。(※ Android も提供予定)

mobileService

 

という感じで Mobile Services 登場の背景を探ってみました。

実際の使い方は同僚エバの鈴木章太郎さんブログやトレーニングを参考にしてくださいね。

Virtuoso - Shotaro Suzuki's Blog

Windows Azure Mobile Services を使った Windows ストア アプリ開発