A contract-oriented middleware