Message-Based Service Brokering and Dynamic Composition in the SAI Middleware