Skip to Main Content
The reuse of software services often requires the introduction of adapters. In the case of coarse-grained services, and especially services that engage in long-running conversations, these adapters must deal not only with mismatches at the level of individual interactions, but also across interdependent interactions. Existing techniques support the synthesis of adapters at design-time by comparing pairs of service interfaces. However, these techniques only work under certain restrictions. This paper explores a runtime approach to service interface adaptation. The paper proposes an adaptation machine that sits between pairs of services and manipulates the exchanged messages according to a repository of mapping rules. The paper formulates an operational semantics for the adaptation machine, including algorithms to compute rule firing sequences and criteria for detecting deadlocks and information loss. The adaptation machine has been implemented as a prototype and tested on common business processes.