Web service composition is a vibrant area of research. New service composition practices emerge continuously, and many Web service composition practices that came into being in the past are constantly changing and adapting to the environment. The drivers of this constant evolution are both intrinsic (e.g., the advent of new Web services such as cloud services, digital services) and extrinsic (e.g., cost saving). These factors propel the development of the field in order to meet the needs of today's world. A particular set of factors raise the need for simplification in service composition. Two of the most noteworthy are the evolution of end-users from simple consumers of software applications to users with sophisticated IT skills who are able to create applications, and the exponential growth and high-frequency release of APIs which require rapid integration into existing computing environments. Nevertheless, Web service composition, which involves the integration of autonomous and heterogeneous software systems (i.e., Web Services) to obtain a new software system, is still a difficult, tedious, and error-prone task. The question that this dissertation seeks to address is: “Can service composition be liberated?” In this thesis we propose novel models and techniques that aim to make the service composition task more intuitive and natural for the user. The proposed approaches are in the areas of service composition representation and specification. We first propose a common framework to incorporate knowledge from different existing Web service composition representations in order to facilitate global sharing and knowledge reuse. The framework consists of a Linked Data model, a set of semiautomatic extracting methods to populate the knowledge base, and a graph query system that enhances the service composition knowledge discovery. Thereupon, we introduce a Web service composition data-flow language based on spreadsheets. The purpose of this language is to relieve end-user programmers of the burden of specifying data flows in complex languages only accessible to professional developers. In addition to the spreadsheet-based language, we propose supporting techniques to create an environment that empowers users with the ability to specify data-flow expressions seamlessly.
展开▼