Inter-Client Communication Conventions Manual(ICCCM、日本語ではクライアント間通信規約マニュアル)は、
X Window Systemにおいて、同一
サーバ上で動作するクライアント同士が互いに連携するための標準規格です。この規格は、
1988年にMITのX Consortiumによって検討が開始され、バージョン1.0が
1989年7月に、バージョン2.0が
1994年初めにリリースされました。
X Window Systemは、その設計思想として「方針ではなく機構」を提供することを目指しています。つまり、具体的なインターフェースやルールは、システムではなく個々のクライアントに委ねられているのです。そのため、クライアント間での相互運用性を確保するためには、標準的な規約が不可欠となります。そこで策定されたのがICCCMです。ICCCMは、具体的にはカット&ペーストにおけるバッファの共有、
ウィンドウマネージャとの連携、セッション管理、共有リソースの操作方法、デバイスにおける色管理といった、クライアント間での共通認識が必要な機能に関するルールを定めています。
しかしながら、ICCCMはその仕様が曖昧で、実際に正しく実装することが非常に難しい規格として知られています。実際、書籍「The UNIX-Haters Handbook」では、ICCCMを「技術的な災難」と酷評し、「壊れたプロトコルのゴミ捨て場」「後方互換性の悪夢」「過去のどうでもいい問題に対する複雑な解決策」「業界の裸の王様の道徳的・知的退廃を隠すカサブタの集合体」などと、手厳しく批判しています。さらに、ICCCMの一部は既に時代遅れとなっており、現在の環境に適さない部分も指摘されています。
今日の
X Window Systemのクライアント開発者は、多くの場合、ウィジェットツールキットや
デスクトップ環境を利用して開発を行っており、ICCCMの仕様を直接参照することは少なくなっています。しかし、ICCCMの不明瞭な部分を明確にし、現代の環境に合わせて更新しようという試みとして、
Extended Window Manager Hints (EWMH) が登場し、広く受け入れられています。EWMHは、必要に応じて拡張が続けられており、ICCCMの課題を解決する上で重要な役割を果たしています。
ICCCMは、その複雑さと実装の難しさから批判も多い規格ではありますが、
X Window Systemにおけるクライアント間通信の基礎を築いた重要な存在です。EWMHなどの後継規格に影響を与え、今日の
デスクトップ環境の発展に貢献しました。ICCCMの歴史と課題を理解することは、
X Window Systemのアーキテクチャを深く理解する上で不可欠であると言えるでしょう。
[外部リンク]
Inter-Client Communication Conventions Manual, Version 2.0
Inter-Client Communication Conventions Manual, Version 2.0(日本語訳)
[参考文献]
* Garfinkel, Weise & Strassmann (1994). The UNIX-Haters Handbook