WCF(Windows Communication Foundation)とは、プログラム同士がネットワークを通じてやり取りする仕組みを、共通の作法で作れるようにしたマイクロソフトの技術のことです。.NET Frameworkの一部として提供され、企業内のシステム連携で広く使われてきました。
現実世界に例えると、WCFは郵便、宅配便、社内便を一つの窓口で扱える受付のようなものです。届け方が違っても、差し出す側の手続きは同じで済みます。どの方法で届けるかは、窓口の設定で切り替えられます。
WCF図解
前後の技術との関係
| 技術 | 時期 | 位置づけ |
|---|---|---|
| asmx | 2002年ごろ | SOAPに特化した初期の方式 |
| WCF | 2006年ごろ | 多様な通信方式をまとめて扱う |
| Web API | 2012年ごろ | RESTを中心とした軽い方式 |
| gRPC | 現在 | 新規開発での推奨 |
ばらばらだった通信技術を束ねた
生まれた背景です。それまでは、Webサービス、Windows同士の通信、メッセージの待ち行列など、方式ごとに別々の技術と書き方が必要でした。WCFはこれらを一つの枠組みにまとめ、どの方式でも同じ考え方で作れるようにすることを目指して登場しました。
三つの要素で決める
設計の考え方の核です。「どこで受け付けるか」「どう運ぶか」「何を提供するか」の三つを組み合わせて、一つの窓口を定義します。英語の頭文字からABCと呼ばれることもあります。この三つを分けて考えるため、運び方だけを差し替えることが容易になっています。
設定ファイルで通信方式を変えられる
実務での大きな利点です。プログラムを書き換えなくても、設定ファイルの記述を変えるだけで、HTTPで運ぶか、社内向けの高速な方式で運ぶかを切り替えられます。同じ処理を、社外向けと社内向けで別々の方式で公開する、といった使い方もできました。
安全や信頼性の機能を備えた
企業で選ばれた理由です。通信の暗号化、利用者の認証、メッセージが確実に一度だけ届くことの保証、複数の処理をまとめて成功か失敗かに揃える機能などを、設定で有効にできます。業務システムに必要な堅さを、自前で作り込まずに手に入れられる点が評価されました。
設定が複雑になりがちだった
裏返しの弱点です。何でもできる代わりに設定項目が非常に多く、思いどおりに動かすまでに時間がかかることが少なくありませんでした。設定ファイルが長大になり、どこを変えれば何が変わるのかを把握しにくい、という声は当時から多く聞かれていました。
新しい.NETには引き継がれなかった
現在の位置づけです。マイクロソフトが刷新した現在の.NETには、WCFのサーバー側の機能が含まれておらず、新規開発ではgRPCやWeb APIが推奨されています。既存の資産を移すための受け皿として、有志による後継の取り組みが公開されており、マイクロソフトも支援しています。
既存のシステムでは現役
最後に実務の現実です。長く使われてきた業務システムでは、WCFで作られた部品がいまも動いており、保守や移行の対象として扱われています。すぐに止まるわけではありませんが、将来の移行を見据えて、どの部分が依存しているかを把握しておくと計画が立てやすくなります。
あわせて知っておきたい用語
- SOAP:
XMLで要求と応答をやり取りする通信の取り決めです。 - asmx:
ASP.NETでWebサービスを作るときの拡張子です。 - .NET Framework:
マイクロソフトが提供するアプリ開発の基盤です。 - REST API:
URLとHTTPの作法に沿ってやり取りする方式です。



コメント