知識マップ: Windowsのプロセス間通信をどう選ぶか ── 名前付きパイプ / TCP / gRPC / 共有メモリ / COM 判断表

記事「Windowsのプロセス間通信をどう選ぶか ── 名前付きパイプ / TCP / gRPC / 共有メモリ / COM 判断表」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

Windowsのプロセス間通信は、同一マシン内の要求応答であれば名前付きパイプが第一候補になり、OS標準のアクセス制御と統合されている一方でパイプ名の占有(スクワッティング)という固有のリスクを抱える。マシンを越える要件や言語混在が見えている場合はローカルTCPかgRPCを選び、TCPは自前のフレーミング設計が必須になる一方、サービスや呼び出しの種類が増えて自前プロトコルの維持が負担になったらgRPCが有効で、.NET 8以降は名前付きパイプをトランスポートに使える。大容量・高頻度のデータは共有メモリ(メモリマップトファイル)が最速だが同期を提供しないため、制御は名前付きパイプ、データは共有メモリという2チャネル構成に分けるのが定石であり、32bit/64bitブリッジではCOMまたは名前付きパイプが選択肢になる。

WindowsのプロセスIPC選定の知識マップ同一マシン内の要求応答には名前付きパイプ、マシン越えや自前プロトコルの維持負担にはローカルTCPとgRPC、大容量高頻度データには共有メモリ、32bit/64bitブリッジにはCOMや名前付きパイプという使い分けと、それぞれが抱える設計課題の関係を示す図推奨される対応推奨される対応推奨される対応前提とする利用する推奨される対応推奨される対応用いるのは非推奨推奨される対応前提とする利用する利用する推奨される対応推奨される対応用いるのは非推奨で構成できる原因になり得る軽減する用いるのは非推奨推奨される対応前提とするプロセス間通信(IPC)名前付きパイプ同一マシン内の要求応答通信ローカルTCPマシンをまたぐ通信の必要性gRPCフレーミング(メッセージ境界の決定)サービス・メッセージ増加による自前プロトコル維持負担小規模なツール間通信(コマンド数個)ファイルマッピング(メモリマップトファイル)大容量・高頻度データ転送制御面とデータ面の分離(2チャネル構成)COM(コンポーネントオブジェクトモデル)32bit/64bitブリッジPipeSecurity(名前付きパイプのACL)パイプ名の占有(スクワッティング)ファイル連携疎結合・非同期のバッチ連携Windowsサービス

概念間の関係(全21件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

プロセス間通信(IPC)
別プロセスとデータや合図をやり取りする仕組みの総称。
名前付きパイプ
Windowsのプロセス間通信手段のひとつ。リモートからの利用はアプリ自身のポートではなくSMB(TCP 445)を経由する。
ローカルTCP
localhostに対するTCP接続によるプロセス間通信で、言語・ランタイム・OSをまたいで通信できる汎用的なIPC手段。
gRPC
HTTP/2ベースの高性能なRPCフレームワーク。WCFサーバーのmodern化先の1つ。
ファイルマッピング(メモリマップトファイル)
ファイルの内容をプロセスやシステムのアドレス空間にマップする仕組み。ディスク上のファイルに裏打ちされる形と、CreateFileMappingにINVALID_HANDLE_VALUEを渡してページファイルに裏打ちされる形(名前付き共有メモリ)がある。Windowsのキャッシュマネージャー自身の実装基盤でもある。
制御面とデータ面の分離(2チャネル構成)
開始・停止・設定変更などの制御メッセージと、実データの転送とで別のIPCチャネルを使い分ける設計。
COM(コンポーネントオブジェクトモデル)
公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。
ファイル連携
一方のプロセスが出力フォルダーにファイルを置き、もう一方が拾って処理する疎結合な連携方式。
Windowsサービス
ユーザーのサインインと無関係にバックグラウンドで動くWindowsのプロセス。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。