「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[WCF]]
--[[通信技術]]

* 目次 [#pa845a36]
#contents

*概要 [#nc5ff827]
Binding (ネットワーク)は、

>「RPCのようなAPI呼出を、どのような~
Binding(プロトコルや通信方式、拡張仕様を含む)~
を使用して、オブジェクトに紐つけるか?」

のようなコンテキストで使用される。

*Bindingの種類 [#m8f9025f]
Bindingが取扱う範囲は、プロトコルと異なり、~
TCP/IP~メッセージキュー+其の使い方までと、幅が広い。

例えば、[[OSI参照モデル>https://ja.wikipedia.org/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB]]の下位プロトコルに~
上位の仕様が組み込まれているケースが多い。

-例えばTCP/IPでは、~
プロトコルレベルで単方向/双方向などの通信方式を規定しないが、~
Bindingでは単方向/Request&Response/(非同期)双方向の定義がされる。

-例えばHTTPでは、~
BindingではSOAP、WS-*の仕様が追加がされる。
Bindingでは[[SOAP]]、WS-*の仕様が追加がされる。

**TCP [#sb1ba9c9]
送信元のコンピュータ上のプログラムから~
別のコンピュータ上の別のプログラムへと~
信頼できる順序通りのオクテット列の転送を行う。

**UDP [#j8b663b8]
明確なハンドシェイクを省いたコネクションレスであり、~
送達確認などを行わない言わば無手順方式のデータ転送で、~
信頼性・順序性・データ完全性を保証しないことで~
トランスポート層でのそのような処理のオーバーヘッドを削減する。

**HTTP, HTTPS [#mb4b7b2b]
HTMLなどのコンテンツの送受信に用いられるリクエスト&レスポンス型のプロトコル。

***HTTP [#xca05d69]

WWWブラウザ等で使用されているHTML参照用のプロトコルだったが、~
以下の理由で、現在では、Webアプリケーション、Web APIなどにも利用されている。

-Webサーバ、APサーバ(CGI)と連動させて容易にサービスを構築・提供可能。
-容易に利用可能なリクエスト&レスポンス型プロトコル(通信処理部の隠ぺい)。
-プロキシサーバー経由でイントラネット → インターネットへのアウトバウンドがサポート。
-下記HTTPSを使用して容易に暗号化が可能(IPSECは構築が難しい)。

***HTTPS [#t5550ef2]
SSL暗号化がサポートされたHTTP

**MSMQ [#ra3de855]
DBとの2フェーズコミットが必要な
-メッセージング基盤、
-非同期実行基盤

を構築する場合に利用する。

ただし、

-TPモニタ(MS-DTC)の構築を必要としたり、
-構築方法、専用APIを理解する必要があったり、

構築~利用までの難易度が高い。

従って、DBをキューとして使用する案件も多い。

このためマイクロソフトは、SQL Serverに~
Service Brokerというミドルウェアを実装しているが、

-SQL Server Service Broker~
http://msdn.microsoft.com/ja-jp/library/bb522893.aspx~
> アプリケーション開発者は、Service Broker を使用すれば、~
 通信やメッセージングの複雑な内部のプログラミングを行わなくても、~
 データ ワークロードを複数のデータベースに分散できます。

--メッセージング基盤
--非同期処理基盤

メッセージング基盤、非同期実行基盤は、~
カスタマイズ要素が多いためか、~
複雑なものは普及するに至っていない。

**名前付きパイプ [#faa0c3c8]

*[[WCF]]のBinding [#q13849d2]
-.NET Framework 3.0新技術の使い分け指針 - @IT~
3. WCF(Windows Communication Foundation)活用時の考慮点 > バインディングの使い分け~
http://www.atmarkit.co.jp/fdotnet/special/dotnetfx3002/dotnetfx3002_02.html

-システム標準の相互運用性バインディングがサポートしている Web サービス プロトコル~
https://msdn.microsoft.com/ja-jp/library/ms730294.aspx

**HTTP系 [#oe20ef36]
WS-Iの活動停止と共に、この辺も幕を下ろした感がある。

-時代はRESTへ。~
SOAPの終わりを象徴する、Webサービス標準化団体のWS-Iが活動終了 - Publickey~
http://www.publickey1.jp/blog/10/restsoapwebws-i.html

***BasicHttpBinding [#gd4aaf57]
WS-I Basic Profile 1.1 に準拠。

***WsDualHttpBinding [#dccfb7d9]
(非同期)双方向通信をサポート。

***WsHttpBinding [#eb42f764]
分散トランザクションとセキュリティで保護された信頼できるセッションをサポート
。

-HTTP 1.1
-MTOM
-WS-Addressing 2005/08
-WSS SOAP Message Security 1.0
-WSS SOAP Message Security UsernameToken Profile 1.1
-WSS SOAP Message Security X.509 Certificate Token Profile 1.1
-WSS SOAP Message Security Kerberos Token Profile 1.1
-WS-ReliableMessaging
-WS-Coordination

***wsFederationHttpBinding [#n00a537d]
-トークンを発行するための WS-Trust
-トークン形式として、WSS SAML (Security Assertions Markup Language) Token Profile 1.0 および 1.1

**TCP/IP系 [#d6678303]
***NetTcpBinding [#e216c7da]
-(非同期)双方向通信をサポート。
-複数コンピューターの通信に適した、セキュリティで保護された信頼できるバインド。

***NetPeerTcpBinding [#vfa011a4]
ピア ツー ピア ネットワーク アプリケーション用のセキュリティで保護されたバインド。

**その他 [#fb9af464]
***NetNamedPipeBinding [#badfb042]
-(非同期)双方向通信をサポート。
-プロセス間通信に適した、セキュリティで保護された信頼できるバインド。
-WCFで利用できるバインディングの中で最も速度が速いらしい。


***Microsoft メッセージ キュー (MSMQ) [#j89b2307]
-NetMsmqBinding
--コンピューター間通信に適している、キューに置かれたバインド
--NetMsmqBindingクライアント ⇔ MSMQ ⇔ NetMsmqBindingサービスホスト

-MsmqIntegrationBinding
--MSMQメッセージを WCF メッセージにマッピングする。
--レガシーのMSMQクライアントから使用する場合、こちらを使用する。
--MSMQクライアント ⇔ MSMQ ⇔ MsmqIntegrationBindingサービスホスト

--Integrating Traditional .NET MSMQ Application~
with WCF 3.5 using MsmqIntegrationBinding | DotNetCurry~
http://www.dotnetcurry.com/ShowArticle.aspx?ID=418

----
Tags: [[:通信技術]], [[:.NET開発]], [[:ASP.NET]]



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS