ensuring interoperable service-oriented systems through engineered self-healing
Many modern software systems dynamically discover and integrate third party libraries, components and services that comply with standard APIs. Compliance with standard APIs facilitates dynamic binding, but does not always guarantee full behavioral compatibility. For instance, problems that derive from behavior incompatibility are quite frequent in service-oriented applications that dynamically bind service implementations that match API specifications. This paper proposes a technique to engineer applications with a self-healing layer that dynamically reveals and fixes interoperability problems. The core elements of the technique are catalogs and a runtime infrastructure. Catalogs support developers in configuring the self-healing layers. The runtime infrastructure enacts the configured self-healing strategies. This paper discusses both the effectiveness of our solution and the relevance of the problem in the context of service-oriented applications, referring to a case study of Web2.0 social applications that integrate the standard APIs del.icio.us and OpenSocial . As an outcome of this experience we present an inconsistency catalog that supports the configuration of self-healing layers for Web2.0 applications.
integration mismatches self-healing software integration faults