■ WCFを学ぶ前に
サービス / クライアントとは
* 自身の機能を、別のプログラムへ提供するプログラムを「サービス(Service)」という * このサービスを利用するプログラムを「クライアント(Client)」という * イメージ的に、以下のように考えると、関係性が分かりやすいかも... + サービス:シェフ(色々な料理を提供) + クライアント:客(注文する人) →メニューという名のインターフェイスにより、客はサービスを受けて、要求を満たすイメージ。
■ WCFとは
WCF;Windows Communication Foundation* .NET Framework 3.0 から導入 => .NET Framework 3.0 より前のプロセス間通信は、.NET Remoting。(詳細は以下の関連記事を参照).NET Remoting ~ プロセス間通信 ~
https://blogs.yahoo.co.jp/dk521123/32863213.html
- クライアントとサービスが、お互いにエンドポイント(後述を参照のこと)という要素を通じて、
=> プロセス間通信(IPC:Inter Process Communication)を実現する技術
}}}http://www.atmarkit.co.jp/fdotnet/wcf/wcf02/wcf02_02.gif
■ 通信の3要素「ABC」
【1】 A : Address(アドレス)「Where」 ... どのアドレスに対してメッセージを送る/受けるのか 【2】 B : Binding(バインディング)「How」 ... どのようにメッセージを送る/受けるのか 【3】 C : Contract(コントラクト)「What」... 何を交換するのか →この3つの要素をまとめてエンドポイント(Endpoint)というhttp://www.atmarkit.co.jp/fdotnet/wcf/wcf02/wcf02_01.html
【1】アドレス
→通信のあて先。(どこに送受信するか)
【2】バインディング
→通信の手段。(どうやって送受信するか)バインディングの種類
http://www5a.biglobe.ne.jp/~imo/wcf.html
より抜粋 * BasicHttpBinding : WS-I Basic Profileに準拠したWebサービス通信 * WsHttpBinding : WS-*プロトコルを使用した高機能なWebサービス通信。 * WsDualHttpBinding : WS-*プロトコルを使用した高機能なWebサービス非同期双方向通信。 * NetTcpBinding : .NET同士の高速マシン間通信。 * NetNamedPipeBinding : .NET同士のマシン内プロセス通信。 * NetMsmqBinding : MSMQによるWCFアプリケーション間通信。 * MsmqIntegrationBinding : 既存のMSMQアプリケーションとの相互接続通信。 * どのように選ぶかは以下を参照のこと。http://www.atmarkit.co.jp/fdotnet/wcf/wcf02/wcf02_03.gif
【3】コントラクト
→通信内容の形式。(何を送受信するか)http://d.hatena.ne.jp/tekk/20091103/1257256369
の説明がすごく分かりやすかったので。。。 * クライアントとサーバのインタフェースにあたる部分を「コントラクト」と呼ぶ。 * クライアント-サーバ間で、どのようなインタフェースで渡すかという取り決め →だから「Contract = 契約」と呼ぶイメージ的には...
■サービスコントラクト ・・・ こんなサービスありますよって契約(コントラクト) ■データコントラクト ・・・ このデータやりとりしますよって契約(コントラクト)
参考資料
MSDN
http://blogs.msdn.com/b/nakama/archive/2008/09/18/part-1-wcf.aspxhttp://msdn.microsoft.com/ja-jp/magazine/ee695819.aspx
http://blogs.msdn.com/b/nakama/archive/2008/10/02/part-3-hello-world-wcf.aspx
その他のサイト
http://codezine.jp/article/detail/1157http://www.atmarkit.co.jp/fdotnet/wcf/wcf02/wcf02_01.html
http://aspnet.keicode.com/basic/wcf-how-to-use-service.php
今後、参考になりそうなサイト
* WCF 自習書http://msdn.microsoft.com/ja-jp/netframework/aa663324.aspx
関連記事
WCF
WCF ~ Hello World編 ~https://blogs.yahoo.co.jp/dk521123/31872515.html
WCF ~ App.configを付加 ~
https://blogs.yahoo.co.jp/dk521123/31874697.html
WCF ~ タイムアウト / Timeout ~
https://blogs.yahoo.co.jp/dk521123/30308127.html
WCF ~ 構築手順編 ~
https://blogs.yahoo.co.jp/dk521123/28767174.html
WCF ~ 例外編[1] ~
https://blogs.yahoo.co.jp/dk521123/29088259.html
WCF ~ 例外編[2] : 例外をクライアントに伝播させる ~
https://blogs.yahoo.co.jp/dk521123/31748722.html
WCF ~ 状態編 ~
https://blogs.yahoo.co.jp/dk521123/29097175.html
WCF ~ インスタンス管理 ~
https://blogs.yahoo.co.jp/dk521123/29162511.html
WCF ~ メッセージ転送モード ~
https://blogs.yahoo.co.jp/dk521123/30301263.html
WCF ~ 大規模データを扱うには ~
https://blogs.yahoo.co.jp/dk521123/29123383.html
WCF ~ WCF に Javaクライアントでアクセスする ~
https://blogs.yahoo.co.jp/dk521123/37962361.html
WCFに関するトラブルシューティング
https://blogs.yahoo.co.jp/dk521123/31879191.html
WCF に Javaでアクセスした際のトラブルシューティング
https://blogs.yahoo.co.jp/dk521123/27253094.html
Windowsサービス
Windowsサービス ~ WCFでクライアント側と通信する ~https://blogs.yahoo.co.jp/dk521123/37953369.html
その他
.NET Remoting ~ プロセス間通信 ~https://blogs.yahoo.co.jp/dk521123/32863213.html