Static and Adaptive Data Replication Algorithms for Fast Information Access in Large Distributed Systems