A goal-based framework for semantic service provisioning

Service-Oriented Computing (SOC) is a paradigm for the design, use and management of distributed system applications in the form of services. The vision of SOC is that services represent distributed pieces of functionality that can be combined (or composed, in SOC terms) to generate new functionality with more added-value. In an ideal scenario based on this vision, a service client expresses requirements to a software infrastructure, and the infrastructure discovers, selects and invokes services with no need for further human interaction. Non-functional requirements such as cost, trust and privacy, amongst others, should also be stated by the service client and resolved automatically by the infrastructure. The SOC vision also overlaps with some of the characteristics of Pervasive Computing. In his seminal paper about Pervasive Computing (also known as Ubiquitous Computing), Weiser foresaw that computing, sensing and communication devices would be transparently embedded in our surrounding environment. These computer-enriched environments would grant access to information and services everywhere and anytime. Readily available information can contribute to the realization of the SOC vision specially by allowing a software infrastructure to gather information related to service execution without needing direct user interaction. Although completely automatic service provisioning is the ultimate objective of SOC, much work still has to be done to realize this objective. Furthermore, the spreading of SOC and Pervasive computing will require these technologies to become more appealing to non-technical users in their daily life. Scenarios with significant numbers of available services, service providers and service clients, may give rise to issues such as: (i) how to express service requests in an intuitively appealing way (suited for nontechnical end-users); (ii) how to tackle semantic interoperability issues among service requests, service descriptions and the internal interpretation of terms in the service operation that use different conceptual models; (iii) how to support the discovery, selection and invocation of services that fulfill the service client’s goals in the least disruptive and invasive manner; and (iv) how to combine services executed by humans with services executed by computational systems. In our work we have addressed scenarios where non-technical users are surrounded by communication-enabled intelligent devices and sensors, and where a large number of services is available. In these scenarios, additional support should be provided to the end-users to help them deal with the (possibly) overwhelming amount of decisions and interactions regarding service provisioning steps, namely, service request specification, service discovery, selection, agreement, composition and invocation. In this thesis we present a conceptual framework to support dynamic service provisioning to non-technical users. The main contributions of our framework are: (i) to allow service clients to express their service requests using goals, which is a concept closer to their intuitive understanding than technical artifacts as, for instance, a WSDL document; (ii) to reduce the need of direct user interactions with the services through the use of information automatically gathered from the environment; (iii) to provide a domain specification language that supports domain specialists in modeling both domain concepts and services. Moreover, this domain specification language provides modeling primitives that allows the distinction between computational and social services, which are provided by computing systems and humans, respectively. The concrete results of this thesis are: (i) the description and design of the goal-based framework for dynamic service provisioning; (ii) the design and the implementation of a prototype of the framework’s software platform supporting the dynamic service provisioning; (iii) the definition of a foundational ontology providing the ontological grounding for the (iv) domain specification language. The framework proposed in this thesis has been evaluated with representative case studies that cover the use of the framework in modeling application domains and the operation of the software platform to support dynamic service provisioning in these domains.