Modeling Diverse and Complex Interactions Enabled by Middleware as Connectors in Software Architectures