HPO: A programming environment for object-oriented metacomputing