Reconciling Event- and Agent-Based Paradigms in the Engineering of Complex Systems: The Role of Environment Abstractions