Distributed Objects and Middleware