CS 441 Engineering Distributed Objects for Cloud Computing