How does D-Bus differ from Inter-Client Exchange (ICE)?
ICE was developed for the X Session Management protocol (XSMP), as part of the X Window System (X11R6.1). The idea was to allow desktop sessions to contain nongraphical clients in addition to X clients. ICE is a binary protocol designed for desktop use, and KDE’s DCOP builds on ICE. ICE is substantially simpler than D-Bus (in contrast to most of the other IPC systems mentioned here, which are more complex). ICE doesn’t really define a mapping to objects and methods (DCOP adds that layer). The reference implementation of ICE (libICE) is often considered to be horrible (and horribly insecure). DCOP and XSMP are the only two widely-used applications of ICE, and both could in principle be replaced by D-Bus.