Figure 3.2 shows an example of protocols visualized as finite state machines. The PCM does not limit protocols to one type like finite state machines or petri-nets, but leaves the number and kinds of types open. An interfaces does not necessarily need to define a protocol.
Protocols offer an ability to define dependencies among services of one interface. This allows components to express parts of their internal state in the PCM. Service calls are able to change the state of a component. Depending on the current state, only a limited number of further service calls is possible. Only those calling sequences, that lead from a start to an end state are valid. One can expect a defined behaviour of components only if their interface protocols are fulfilled.
Protocols are tied to interfaces. Anyhow the protocol state depends on the component that implements and provides an interface. Interfaces itself are stateless. This is the same principle as in object-oriented programming where interfaces are stateless, too. Just runtime-instances (objects) of classes which implement an interface have a state.