Engineering Distributed Objects