Adapt-Medium : An architecture and a process for modelling and generating Adaptive Distributed Applications