Windows Communication Foundation: サービスの時代
公開日: 2005 年 1 月 5 日
Microsoft 認定アーキテクト
Murano Software 社副社長 Andrew Filev 氏
多くの人々が、アプリケーションを構築するためのサービス指向のアプローチについて語ったり、ブログで持論を公開したりしています。それよりもさらに多くの人々が、現在もなお別のアーキテクチャ スタイルを使用してアプリケーションを構築しています。この記事は、サービスの領域に足を踏み入れることを先延ばしし、成熟したソフトウェア開発プラットフォームが登場するのを待ち続けている開発者やアーキテクトに向けたものです。近々 Windows Communication Foundation (WCF) がリリースされれば、より多くの人がサービス指向の利点を活かし、ほとんどストレスなくサービス指向アプローチを採用できるようになるでしょう。WCF (以前のコードネーム "Indigo") は、統一性、相互運用性、拡張性、そして豊富な機能を備えています。これにより、安全で、信頼性が高く、トランザクション処理に対応したサービスが可能になります。
SOAP ベースの Web サービスには、2000 年に発表された時点では大きな問題がありました。あまりにもシンプルで、手が加えられていなかったのです。相互運用性を強化するために、開発者はサービスに制限を設けるか、トランザクションや信頼性向上のための独自のサポートを、事実上、一から開発する必要がありました。その後発表された WS-Security や WS-ReliableMessaging のような Web サービスの拡張機能では多くの問題が解決されましたが、"拡張" Web サービスを利用することと、独自の分散開発技法の間にはかなりのギャップがありました。Windows Communication Foundation はこのギャップを埋め、洗練されたパワフルなソリューションをお届けします。
Windows Communication Foundation により、ASMX、Remoting、Enterprise Services、WSE、MSMQ のプログラミング インターフェイスの違いによるギャップも解消されます。WCF を使用すると、開発者は、1つのプログラミング モデルでさまざまなプロトコルとシステム レベル機能を使用する連係アプリケーションを構築することができます。Windows Communication Foundation は、絶妙なバランスで、サービス指向を前面に押し出し、実装の詳細を開発者に意識させないようにします。この組み合わせを備えているため、分散アプリケーションにおけるサービスのファサードの構築には当然 Windows Communication Foundation が選択されるでしょう。トランザクションとセキュリティ サポートにより、企業は、相互に通信するアプリケーションを構築するための最適なツールを手に入れることができます。そして、Windows Communication Foundation の恩恵を受けるのは企業のソフトウェア開発者だけではありません。
Web サービスやサービス指向アーキテクチャといえば、エンタープライズ アプリケーション統合や B2B というシナリオがすぐに頭に浮かびます。WCF はさらに進化し、ピアツーピア アプリケーションのサポートを導入しています。ファイル共有が広く知られるようになり、P2P アプリケーションが話題になりました。最近では、その注目度は Skype によってさらに高まっています。しかし、まだまだ多くのチャンスがあふれています。ソーシャル ソフトウェアとサービスは、学生のコミュニティだけでなくチームでの業務にも使われるようになりました。P2P は、サーバーをインストールする予定のない臨時のグループや動的なグループとっても、最良の選択肢となるでしょう。Windows Vista と Windows Communication Foundation プラットフォームを一緒に使用すれば、Peer Name Resolution Protocol、People Near Me、Grouping、および PeerChannel も使用することができます。Windows SDK には PeerChannel チャットの優れたサンプル コードが含まれています。ぜひ参考にしてください。
プラットフォーム デザインの重要な特性の 1 つに、さまざまな問題を解決するための一貫したアプローチを提供できるかどうかということがあります。Windows Communication Foundation の素晴らしい特長の 1 つは、これを、相互運用性を備えた Web サービス エンタープライズ システムの世界と、一時的なユーザーのグループのためのピアツーピア ソフトウェアの両方に適用できるという点です。Windows Communication Foundation はシンプルなコンセプトをベースに構築されており、複雑な部分はシステム レベル コードの中に隠されています。このコンセプトとは次のようなものです。
- コントラクトはサービスとの間の送受信を指定します。WCF はサービス コントラクト、データ コントラクト、メッセージ コントラクトを認識します。これらのコンセプトには、ファサード クラスに注釈を付加するための対応する属性があり、C# および VB .NET とのインターフェイスがあります。
- バインディングはサービスとの通信方法を指示します。バインディングは、最下層のトランスポート プロトコルからセキュリティ スキームに至るまで変化する、チャネル スタックの仕様です。バインディングは設定可能です。また、拡張やカスタマイズも可能です。
- アドレスはサービスを検出して他のサービスと区別できるようにします。
サービスによって、アドレス、バインディング、コントラクトで構成されるエンドポイントが世界に向けて公開されます。
サービス持続期間の内部は ServiceBehavior および OperationBehavior 属性を使用して設定します。この動作には、インスタンス化、並列処理、トランザクションなど、Web サービス V1 をより広く採用するために不可欠な、便利な機能が含まれています。このような特性は「宣言」という方法で簡単に設定できます。
この記事では Windows Communication Foundation の概要を幅広くご説明しました。WCF によって、豊富な機能がサービス指向アプリケーションの開発にもたらされ、開発自体も容易になります。WCF は Windows 分野のエンタープライズ ソフトウェア アーキテクトにとって必須のテクノロジとなるでしょう。
|