Enabling Scalable Information Sharing for Distributed Applications Through Dynamic Replication