Next Generation Middleware: Requirements, Architecture, and Prototypes