Webプラットフォームの全体像を知る
通信サービスの統一基盤「Windows Communication Foundation」
WCFは端的に言うと「.NET開発における通信サービス部分を統括しているサービス基盤」です。
これまで、マイクロソフトは用途に応じて様々なサービスを用意してきました。分散テクノロジーごとに最適なサービスが出てきた反作用として様々なサービスを学習するコストの発生や、適切な使い分けをするための知識が必要でした。
その煩雑さを解放する事を目的として登場したのがWCFです。WCFでは、MSMQ、Webサービス、Web Service Enhansements、.NET Remotingなどの通信サービスに統一的な手段でアクセスできます。
図3:Windows Communication Foundationとは?(クリックで拡大) |
.NETにおけるサービス開発はWCFを使用する事で、利用するサービスを意識せずに利用できると覚えておきましょう。なお、昨今では次に紹介するSilverlightでn階層のアプリケーションを構築する際に利用するフレームワーク「WCF RIA Services」や、データのみをRESTfulに提供する「WCF Data Services」など、WCFベースの新しいテクノロジーも登場しています。
マイクロソフトのRIAフレームワーク「Silverlight」
Silverlightはマイクロソフトが提供するRIAアプリケーションフレームワークです(もちろんクロスプラットフォーム対応)。少し前まではマイクロソフトの対Flash戦略だ!とも言われていましたが、バックエンドのロジックが現時点ではJavaScriptよりも高速に動作する点、ストリーム配信部分での恩恵、オフラインでも動作する機能などにより、Flashとは異なるニーズが生まれてきています。
アプリケーションのデザイン部分は、XAMLと呼ばれるXML拡張のマークアップ言語をExpression Blendでデザインし、ロジックはVS 2010を使用してVBやC#で記述します。Flashなど他のRIA製品同様にデザイナとデベロッパーが協業しやすいように分離されているのも特徴の一つです。メディア配信部分はExpression Encoderを使用する事で、撮影済みの動画を簡単に編集し、Silverlightアプリケーションに変換する事ができまます。
図4:Expression Encoderのメイン画面(クリックで拡大) |
Windows Azure Platform概要
正式サービスが開始されているWindows Azure Platformですが、多くの場所で解説されているようにGoogle App Engineと同様のPaaS(Platform as a Service)型のクラウドプラットフォームです。
図5:Windows Azure Platformの全体像(クリックで拡大) |
Windows Azure Platformは開発したアプリケーションを展開し、実行するためのデプロイ環境とも言えます。PaaSのフロントエンドとして利用するWindows Azure、クラウド上のデータベースSQL Azure、クラウドとオンプレミスを接続するWindows Azure AppFabric、3つの製品から成り立つプラットフォームです。また、根底にはクラウド上のハードウエア情報などを抽象化して冗長化などのスケーラビリティや高可用性を提供しているファブリックコントローラーや、このようにアプリケーションを実行するためのプラットフォームやミドルウェアが提供されていて、これらのみを利用する場合は、従来必要だったWebサーバーの導入が不要になります。
メリットはそれだけではありません。従来はサーバーを購入する時RAID構成などの冗長化や負荷分散も検討し、最も負荷の高くなるケースを想定して構成を決めていたため、多くのコストが発生していました。しかしWindows Azure Platformでは、適切な設定を実施する事で、負荷が高くなる時間帯にはコンピューティング機能を増やし、負荷が低い時間帯にはコンピューティング機能を最小構成に変更できます。極論を言うと、キャンペーン期間などにのみ利用して、すぐに解約するという利用すらできます。利用した分だけもちろんコストは発生しますが、Windows Azure Platformを活用する事で、従来使用していたIT資産のコストから大幅に削減できる可能性が高い事を感じられるのではないでしょうか。
また、Google App Engineでは実現できない機能として、社内サーバーなどのオンプレミス環境と、Windows Azure Platform間の連携を実現できるWindows Azure Platform AppFabricがあります。ビジネスアプリケーションを全てクラウド上に展開するのはまだ現実的ではありませんが、この機能により、社内に保持したいデータなどは社内に置いたまま、クラウド環境のアプリケーションと必要な時に連携してハイブリッドクラウドの環境でアプリケーションを展開できるようになります。他にも、SQL Azureと呼ばれるクラウド上のSQL Serverもあります。このようにエンタープライズアプリケーションを展開する場合にはWindows Azureは魅力的なPaaSだと言えるでしょう。
まとめ
Webプラットフォーム全体を鳥瞰するという事で、駆け足になりましたが開発環境からデプロイ環境まで簡単にご紹介しました。まずはどのようなものがあるのかを認知していただき、次回以降に各項目を少しずつ掘り下げて現場での採用または活用につなげていただければと思います。次回はASP.NET Web Form全般についてです。お楽しみに。
【参考文献】
「ASP.NET デベロッパー センター | MSDN」(アクセス:2011/02)