A model-driven approach to enable the distributed simulation of complex systems