Building Scientific Clouds: The Distributed, Peer-To-Peer Approach