During the past seven years services centric computing has emerged as the preferred approach to architect complex software. Software is increasingly developed by integrating remotely existing components, popularly called services. This architectural paradigm, also called Service Oriented Architecture (SOA), brings with it the
benefits of interoperability, agility and flexibility to software design and development. One can easily add or change new features to existing systems, either by the
addition of new services or by replacing existing ones. Two popular approaches have emerged for realizing SOA. The first approach is based on the SOAP protocol for
communication and the Web Service Description Language (WSDL) for service interface description. SOAP and WSDL are built over XML, thus guaranteeing minimal
structural and syntactic interoperability. In addition to SOAP and WSDL, the WS-* (WS-Star) stack or SOAP stack comprises other standards and specification that enable
features such as security and services integration. More recently, the RESTful approach has emerged as an alternative to the SOAP stack. This approach advocates the use of
the HTTP operations of GET/PUT/POST/DELETE as standard service operations and the REpresentational State Transfer (REST) paradigm for maintaining service states.
The RESTful approach leverages on the HTTP protocol and has gained a lot of traction, especially in the context of consumer Web applications such as Maps.
Despite their growing adoption, the stated objectives of interoperability, agility, and flexibility have been hard to achieve using either of the two approaches.
This is largely because of the various heterogeneities that exist between different service providers. These heterogeneities are present both at the data and
the interaction levels. Fundamental to addressing these heterogeneities are the problems of service Description, Discovery, Data mediation and Dynamic configuration.
Currently, service descriptions capture the various operations, the structure of the data, and the invocation protocol. They however, do not capture the semantics
of either the data or the interactions. This minimal description impedes the ability to find the right set of services for a given task, thus affecting the important
task of service discovery. Data mediation is by far the most arduous task in service integration. This has been a well studied problem in the areas of workflow
management, multi-database systems and services computing. Data models that describe real world data, such as enterprise data, often involve hundreds of attributes.
Approaches for automatic mediation have not been very successful, while the complexity of the models require considerable human effort. The above mentioned problems in
description, discovery and data mediation pose considerable challenge to creating software that can be dynamically configured.
This dissertation is one of the first attempts to address the problems of description, discovery, data mediation and dynamic configuration in the
context of both SOAP and RESTful services. This work builds on past research in the areas of Semantic Web, Semantic Web services and Service Oriented Architectures.
In addition to addressing these problems, this dissertation also extends the principles of services computing to the emerging area of social and human computation.
The core contributions of this work include a mechanism to add semantic metadata to RESTful services and resources on the Web, an algorithm for service discovery and
ranking, techniques for aiding data mediation and dynamic configuration. This work also addresses the problem of identifying events during service execution, and
data integration in the context of socially powered services.