Extending substitutability in composite services by allowing asynchronous communication