The development of pervasive computing has put the light on a challenging
problem: how to dynamically compose services in heterogeneous and highly
changing environments? We propose a survey that defines the service composition
as a sequence of four steps: the translation, the generation, the evaluation,
and finally the execution. With this powerful and simple model we describe the
major service composition middleware.