Barbed semantics for open reactive systems