An interaction calculus for concurrent systems