This document discusses three levels (signature, semantic, and protocol) at which component interfaces and services can be specified and substituted.
At the signature level, substitutability is determined by whether all services of one component are offered by another. At the protocol level, substitutability requires messages be consistently accepted and ordered. At the semantic level, components must conform behaviorally as well as syntactically to allow substitution.
The document also defines equivalence and interoperation between interfaces or components at each of the three levels. Equivalence means two components can substitute each other, while interoperation means components can successfully interact in their defined roles.