Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures