A Community-based approach for application composition in a Peer-to-Peer environment