As the range of services available on the Web increase, new value added services can be created by composing existing ones.
It is then vital to ensure that compositions of web services are free from errors such as deadlocks and synchronisation conflicts.
Current techniques are lacking in this regard because they either (i) do not consider all the different types of temporal
relationships that exist between interactions, or (ii) do not support all types of interactions (i.e. only send and receive,
not service and invoke). In this paper we introduce an approach that overcomes these problems. First, a communication model
is generated by composing interactions of constituent services. Then, the temporal relationships between all the interactions
of the communication model are found using a reasoning mechanism. While doing so, these relationships are compared against
those specified in descriptions of interaction protocols, to detect any deadlocks or synchronisation conflicts.