Mobile Services Based on Client-Server or P2P Architectures facing Issues of Context-Awareness and Heterogeneous