Interactive and verifiable web services composition, specification reformulation and substitution

Recent advances in networks, information and computation grids, and WWW have resulted in the proliferation of physically distributed and autonomously developed software components and services. These developments allow us to rapidly build new value-added applications from existing ones in various domains such as e-Science, e-Business, and e-Government. Towards this end, this dissertation develops solutions for the following problems related to Web services and Service-Oriented Architectures: (1) Web service composition. The ability to compose complex Web services from a multitude of available component services is one of the most important problems in service-oriented computing paradigm. In this dissertation, we propose a new framework for modeling complex Web services based on the techniques of abstraction, composition and reformulation. The approach allows service developers to specify an abstract and possibly incomplete specification of the composite (goal) service. This specification is used to select a set of suitable component services such that their composition realizes the desired goal. In the event that such a composition is unrealizable, the cause for the failure of composition is determined and is communicated to the developer thereby enabling further reformulation of the goal specification. This process can be iterated until a feasible composition is identified or the developer decides to abort. (2) Web service specification reformulation . In practice, often times the composite service specification provided by the service developers result in the failure of composition. Typically, handling such failure requires the developer to analyze the cause(s) of the failure and obtain an alternate composition specification that can be realized from the available services. To assist developers in such situations, we describe a technique which given the specification of a desired composite service with a certain functional behavior, automatically identifies alternate specifications with the same functional behavior. At its core, our technique relies on analyzing data and control dependencies of the composite service and generating alternate specifications on-the-fly without violating the dependencies. We present a novel data structure to record these dependencies, and devise algorithms for populating the data structure and for obtaining the alternatives. (3) Web service substitution. The assembly of a composite service that satisfy a desired set of requirements is only the first step. Ensuring that the composite service, once assembled, can be successfully deployed presents additional challenges that need to be addressed. In particular, it is possible that one or more of the component services participating in a composition might become unavailable during deployment. Such circumstances warrant the unavailable service to be substituted by another without violating the functional and behavioral properties of the composition. To address this requirement, we introduce the notion of context-specific substitutability in Web services, where context refers to the overall functionality of the composition that is required to be maintained after replacement of its constituents. Using the context information, we investigate two variants of the substitution problem, namely environment-independent and environment-dependent, where environment refers to the constituents of a composition and show how the substitutability criteria can be relaxed within this model. The work described above contributed to the design and implementation of MoSCoE—an open-source platform for modeling and executing complex Web services (http://www.moscoe.org).