はじめに
2011年3月11日に発生した東日本大震災。震災発生直後,重要なWebサイトが次々とダウンする中,クラウドのコミュニティによって多くのWebサイトが非常に短い時間で復旧しました。Windows Azureも対応が非常に速かったクラウドの1つ。これまでの常識では考えられない作業時間で既存Webサイトを震災発生直後の膨大なアクセスに耐えうるWebサイトに早変わりさせました。クラウドの環境構築の速さと柔軟性,高い耐障害性などの特徴が震災発生以降注目され,BCP対応にクラウドを利用する動きも非常に増えてきました。
クラウド同様に震災後非常に注目されるようになったのが,我々が今や仕事を含め日常的に使うようになったソーシャルプラットフォームです。その上で広がる無数のアプリケーション群を支えているのがクラウドであることはもう皆さんもご存知かもしれません。ゲームを含む非常に多くのアプリケーションが今やクラウドの上にホストされ,日々新しいユーザ体験を我々に提供してくれています。リリースまでのスピードが求められるソーシャルアプリケーション。そのスピード開発がクラウドアプリケーション構築で求められています。
そんなクラウドへアクセスするクライアントが,今やデスクトップPCに代わりスマートフォンになったと言っても過言ではありません。iPhoneに代表されるiOS,国内メーカーも参入を開始したAndroidに続き,2011年8月に国内でもWindows Phoneが発売され,主要なスマートフォンラインナップが日本でも揃ってきました。
本連載ではMicrosoftが提供するクラウド“Windows Azureプラットフォーム”と,同じくMicrosoftが提供する“Windows Phone”デバイスに焦点を置き,この2つを組み合わせたアプリケーション・サービス開発について取り上げていきます。
第1回目となる本記事ではWindows AzureプラットフォームとWindows Phone,それぞれの技術概要について紹介していきます。
Windows Azureプラットフォームとは
Windows Azureプラットフォームはマイクロソフトが提供するクラウドサービスです。コンピューティング,データベース,ストレージなどで構成されています。
中心となるのがWindows Azureコンピューティングで,Webアプリケーションサーバに相当するWebロールとバックグラウンド処理を実行するワーカーロールの2つを用いてクラウドアプリケーションを構築します。WebロールやワーカーロールのアプリケーションはもちろんVisual StudioでC#やVisual Basicを用いて開発を行う事ができ,.NET開発ノウハウのある方は,その資産の多くを流用することができます。
またデータベースとしてSQL Azureが提供されており,ポピュラーなSQLベースでのデータベース開発をクラウドスケールでもこれまでに近い開発スタイルで行う事が可能になっています。
これら以外には,仮想マシーンを提供するVMロール,CDN,キャッシュ,仮想ネットワーク,サービスバス,アクセスコントロールなどの機能群をまとめたWindows Azure AppFabricが存在します。
Windows Azureストレージとは
Windows Azureストレージはクラウドならではのスケーラビリティや耐久性を有するストレージで主にBLOB,キュー,テーブルの3つのサービスで構成されています。これらのストレージにはWindows Azureアプリケーション開発で用いられる開発ツールであるWindows Azure SDKやREST,RESTアクセス処理を使いやすくしたスマートフォン向け開発ツールであるWindows Azure Toolkit for Android/iOS/ Windows Phoneの主に3つの方法でアクセスすることができます。
BLOBは静止画や動画,HTMLやJavaScriptなどの静的なファイルを保存しておくストレージになります。フォルダに相当する「コンテナ」を作成することができ,コンテナごとにアクセス制御を行うことが可能です。BLOBのデータ1つ1つにはURLが割り当てられるので,フルアクセスのオブジェクトはHTTPによるアクセスで簡単に取得できます。
キューは待ち行列のストレージで,メッセージを通じてWebロールとワーカーロール間などを繋ぎ,互いに連携するアプリケーション間を疎結合にすることができます。
テーブルはいわゆるKVS(Key-Value Storage)でRDBであるSQL Azureとは異なり,キーと値のペアでデータを格納します。
Windows Phoneとは
Microsoftがスマートフォンプラットフォームとしてゼロからすべてを一新して開発したのがWindows Phoneです。OSのバージョンとしてはWindows Phone 7が最初のバージョンで,日本国内でリリースされた端末に搭載されたバージョンがコードネームMangoと呼ばれるOSでWindows Phone 7.1が搭載されています。
- ※:OSや後述のWindows Phone SDKのバージョンは7.1で,スマートフォン端末でのバージョンの呼び方はWindows Phone 7.5になりますが,同じものです。
Windows PhoneではネイティブアプリケーションをSilverlight(Silverlight for Windows Phone)とXNAによって開発します。Silverlightはこれまではデスクトップブラウザ向けのRIA開発で用いられてきた開発技術で,Windows Phoneの滑らかな画面遷移や,美麗な動画再生などを実現しています。Silverlightベースのアプリケーション開発では,画面構成を記述するタグベースのマークアップ言語であるXAMLとロジックを記述するC#またはVisual Basicを用いてアプリケーションを開発します。
Windows Phoneの代名詞ともいえるPanoramaレイアウトの例が下記になります。複数の画面が横1列に並んでおり,フリックによって非常に滑らかに画面遷移を行うことができます。Windows Phoneでは,XAMLを用いることにより,Panoramaアプリケーションも簡単に構築できます。
Silverlightで用いられるXAMLを中心とした開発スタイルは今後Windows 8の新しいネイティブアプリケーションである「MetroStyleApps」を開発する際にも用いられ,スマートフォン,タブレット,デスクトップとさまざまなクライアント向けのアプリケーションを開発する共通の開発スタイルの1つになっていくものと筆者は考えています。

