-
Notifications
You must be signed in to change notification settings - Fork 0
MS_NetworkBinding
- 戻る(通信技術、WCF(
MS_WCF.md))- Binding (ネットワーク)
Binding (ネットワーク)は、
「RPCのようなAPI呼出を、どのような
Binding(プロトコルや通信方式、拡張仕様を含む)
を使用して、オブジェクトに紐つけるか?」
のようなコンテキストで使用される。
Bindingが取扱う範囲は、プロトコルと異なり、
TCP/IP〜メッセージキュー+其の使い方までと、幅が広い。
例えば、OSI参照モデルの下位プロトコルに
上位の仕様が組み込まれているケースが多い。
- 例えばTCP/IPでは、
プロトコルレベルで単方向/双方向などの通信方式を規定しないが、
Bindingでは単方向/Request&Response/(非同期)双方向の定義がされる。 - 例えばHTTPでは、
Bindingで SOAP、WS-* の仕様が追加される。
(TCP, UDP)
- TCP
送信元のコンピュータ上のプログラムから別のコンピュータ上の別のプログラムへと
信頼できる順序通りのオクテット列の転送を行う。 - UDP
明確なハンドシェイクを省いたコネクションレスであり、
送達確認などを行わない言わば無手順方式のデータ転送で、
信頼性・順序性・データ完全性を保証しないことで
トランスポート層でのそのような処理のオーバーヘッドを削減する。
HTMLなどのコンテンツの送受信に用いられるリクエスト&レスポンス型のプロトコル。
-
HTTP
WWWブラウザ等で使用されているHTML参照用のプロトコルだったが、
以下の理由で、現在では、Webアプリケーション、Web APIなどにも利用されている。- Webサーバ、APサーバ(CGI)と連動させて容易にサービスを構築・提供可能。
- 容易に利用可能なリクエスト&レスポンス型プロトコル(通信処理部の隠ぺい)。
- プロキシサーバー経由でイントラネット → インターネットへのアウトバウンドがサポート。
- 下記HTTPSを使用して容易に暗号化が可能(IPsecは構築が難しい)。
- HTTPS(SSL/TLS)
SSL/TLS 暗号化がサポートされたHTTP
DBとの2フェーズコミットが必要な
- メッセージング基盤
- 非同期実行基盤
を構築する場合に利用する。ただし、
- TPモニタ(MS-DTC:
MS_MSDTC.md)の構築を必要としたり、 - 構築方法、専用APIを理解する必要があったり、
構築〜利用までの難易度が高い。従って、DBをキューとして使用する案件も多い。
このためマイクロソフトは、SQL ServerにService Brokerというミドルウェアを実装しているが、
アプリケーション開発者は、Service Broker を使用すれば、
通信やメッセージングの複雑な内部のプログラミングを行わなくても、
データ ワークロードを複数のデータベースに分散できます。
メッセージング基盤、非同期実行基盤は、
カスタマイズ要素が多いためか、複雑なものは普及するに至っていない。
補足(最新化): MSMQ は現在も Windows の機能として残るが新規開発では推奨されない。 クラウド前提であれば Azure Service Bus / Azure Queue Storage、 オンプレミスなら RabbitMQ / Kafka を選ぶのが一般的。 SQL Server Service Broker も Azure SQL Database では 限定的なサポートに留まる(Managed Instance のみ)。
同一マシン内(またはSMB経由)のプロセス間通信に使われる。
(WCF: MS_WCF.md)
WS-Iの活動停止と共に、この辺も幕を下ろした感がある。
WS-I Basic Profile 1.1 に準拠。
(非同期)双方向通信をサポート。
分散トランザクションとセキュリティで保護された信頼できるセッションをサポート。
- 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
- トークンを発行するための WS-Trust
- トークン形式として、WSS SAML (Security Assertions Markup Language) Token Profile 1.0 および 1.1
- (非同期)双方向通信をサポート。
- 複数コンピューターの通信に適した、セキュリティで保護された信頼できるバインド。
ピア ツー ピア ネットワーク アプリケーション用のセキュリティで保護されたバインド。
※ NetPeerTcpBinding は .NET Framework 4.5 で非推奨(Windows の Peer-to-Peer Networking 依存)。
- (非同期)双方向通信をサポート。
- プロセス間通信に適した、セキュリティで保護された信頼できるバインド。
- WCFで利用できるバインディングの中で最も速度が速いらしい。
- NetMsmqBinding
- コンピューター間通信に適している、キューに置かれたバインド
- NetMsmqBindingクライアント ⇔ MSMQ ⇔ NetMsmqBindingサービスホスト
- MsmqIntegrationBinding
- MSMQメッセージを WCF メッセージにマッピングする。
- レガシーのMSMQクライアントから使用する場合、こちらを使用する。
- MSMQクライアント ⇔ MSMQ ⇔ MsmqIntegrationBindingサービスホスト
補足(最新化): WCF は .NET Core 以降サーバー側が移植されておらず、 OSS の CoreWCF が受け皿になっている。 CoreWCF がサポートするのは BasicHttpBinding / WSHttpBinding / NetTcpBinding / NetNamedPipeBinding などで、MSMQ 系や WS-Federation 系は範囲外または限定的。
Tags: 通信技術, .NET開発, ASP.NET
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。