Nowadays, modern applications are often constructed by reusing and assembling distributed and collaborating entities,
, software components, Web services, or Software as a Service in cloud computing environments. In order to facilitate the integration of independently developed components (
, peers) that may reside in different organizations, it is necessary to provide a global contract to which the peers participating in a service composition should adhere. Such a contract is called
, and specifies interactions among a set of services from a global point of view.