Distributed Programming With Ice