From concurrent engineering to collaborative engineering: an agent-oriented approach