Enhancing availability of cooperative applications through interoperable middleware