Coordination Models and Languages as Software Integrators