Here’s a challange for fans of protocol independence; try to describe it in strict architectural terms, i.e. in terms of constraints applied to components, connectors, and data.