An approach for designing and enacting distributed simulation environments