  A computing infrastructure where everything is a service offers many new
system and application possibilities. Among the main challenges, however, is
the issue of service substitution for the application execution in such
heterogeneous environments. An application would like to continue to execute
even when a service disappears, or it would like to benefit from the
environment by using better services with better QoS when possible. In this
article, we define a generic service model and describe the equivalence
relations between services considering the functionalities they propose and
their non functional QoS properties. We define semantic equivalence relations
between services and equivalence degree between non functional QoS properties.
Using these relations we propose semantic substitution mechanisms upon the
appearance and disappearance of services that fits the application needs. We
developed a prototype as a proof of concept and evaluated its efficiency over a
real use case.
