2015 Volume 23 Issue 1 Pages 41-57
As distributed computing becomes part of the daily life of an expressive number of people, it becomes important to rethink the way we express compatibility between the components of distributed systems. This paper proposes a mechanism to check service compatibility based on service contracts. We propose that a contract should be specified in terms of a process calculus and that interacting services should have their algorithms verified against such contracts. This way, we can formally check if they can reach a target state, meaning that they can successfully interact. In order to guide the compatibility check we propose a variation of the Java programming language to create a Domain-Specific Language (DSL). This DSL, along with a run time model, was specially designed to allow for an automated examination of behavior in a message-oriented middleware environment. We provide a qualitative evaluation of our proposal through the analysis of an example involving the dynamic creation of interconnections.