サービス化: WCF
現在のアプリケーション(特にWebアプリケーション)には、「サービス化」というものが求められます。ここでいう「サービス」とは以下のようなものを指します(Figure 9)。
- ある程度まとまった単位の機能を提供する
- メッセージ交換などの通信方式が標準化されていて、異なる技術・異なる組織間で互いを利用できる
アプリケーションに対して標準化された通信方式でアクセスできる窓口を用意してサービス化することもできますし、複数のサービスの組み合わせとして1つのアプリケーションを構築する方法も考えられます。
サービス化の最大の利点は、サービス間の独立性を保てることです。例えば、アプリケーションが古くなってきたからといって、いきなり全体を作り直すのは大変なので、部分的に作り直したい場合もあります。その際、機能単位が密に結合してしまっていると、新技術を導入したり、開発会社を変更したりといったことが非常に困難になります。サービス化されていれば、部分的な置き換えがしやすくなります。
ただし、「標準化された通信方式」と言っても、用途によってさまざまな種類の標準があり、要件に応じた選定が必要になります。
.NET Frameworkでは、WCF(Windows Communication Foundation)というサービス作成用のフレームワークがあります。WCFでは、サービスの提供機能の内容(contract:規約)と、通信方式(binding:結合方式)を分けて考えることができて、Figure 10に示すように、任意の組み合わせが可能です。
RIA: Silverlight
RIA(Rich Internet Application)というものが近年注目を集めています。RIAは、ブラウザプラグインとしてリッチなユーザーインターフェイスを実現しようというもので、以下のような、デスクトップ・アプリケーションとWebアプリケーションのよいところを両取りしたものです。
- デスクトップ・アプリケーション並みのリッチさ
- Webアプリケーションのように、インストール不要の手軽さ
MicrosoftもSilverlightというブラウザプラグインを提供して、日本では2010年6月時点で75%の普及率となっています(プラグインのダウンロード・サイズは4MB程度で、プラグインが入っていない場合でも即座にインストール可能です)。開発者視点でいうと、Silverlightには以下のような特徴があります。
- .NET Frameworkのサブセットにあたる機能を提供している
- WPFと同様のモデルで開発できる
すなわち、デスクトップ・アプリケーションの開発経験のある開発者であれば、Silverlight開発も容易に行えます。