The Contextual Service Adaptation Framework will provide a generic platform for supporting the adaptation of services to diverse contexts according to a virtually infinite variety of dimensions. In fact, our understanding of context is very much in line with a widely agreed definition:
In SOA4All we do however take a slightly wider approach to context that is not limited to interactions between users and machines but also between machines. After all, one of the main advantages service-oriented technologies provide is the capacity to compose existing services in order to provide more advanced ones. Somewhat implicit in this definition of context is the fact that the relevance of contextual information is dependent on the actual application or service being provided. For instance, the location of the consumer might be irrelevant for some services whereas it might be key in other situations where for example the appropriate legal regulations need to be applied. In fact he underlying essence is that what can be considered as relevant contextual information depends on the task being performed. In a scenario where billions of services are provided and consumed, the diversity of the tasks that will be supported will presumably be outstanding and there needs to be appropriate means for supporting adapting services to contextual factors rather than providing specific services for each and every particular context one may encounter.
The project uses a knowledge-based approach to adaptation, which relies on the use of formalised knowledge within a large-scale pervasive and distributed infrastructure. Ontologies are the most appropriate modelling mechanism for such contextual knowledge, since they are essentially generically applicable and provide facilities for:
In the light of this broad understanding of context, our approach to context adaptation is based on a set of conceptualisations providing the means for modelling contextual information of any kind, and a general purpose machinery able to manage contextual data, use it for recognising concrete contexts within particular situations, and apply this contextual knowledge for adapting services. Therefore, central to our approach, much like the definition of context itself, is the genericity of our framework so that it can cover the wide range of situations one is likely to encounter in a Web of billions of services.
Research in Knowledge Engineering has over the years devoted major efforts to defining ontologies, Problem Solving Methods and languages and frameworks for representing them in a way that can support automated reasoning. The main goal has been to identify classes of generic components and reasoning patterns that can be reused across different domains in order to enhance and simplify the development of Knowledge-Based Systems. The knowledge Knowledge-Based Systems build upon is typically characterised as static or dynamic. Static knowledge captures the concepts, properties, and relationships for domains of interest (e.g., medical, manufacturing, etc.). Static knowledge is most often represented with ontologies, which are widely understood as “formal explicit specifications of a shared conceptualisation for a domain of interest”. Dynamic knowledge is usually defined as a mixture between traditional software procedures and inference rules that declaratively define reasoning steps. Indeed, the ability to define behavioural aspects when developing Knowledge-Based Systems is important, and in many cases essential, as Musen points out: “Many intelligent systems are designed primarily to answer queries about large bodies of knowledge. In these cases, ontologies provide most of the representational muscle needed to build complete systems. To build systems that solve real-world tasks, however, we must not only specify our conceptualisations, but also clarify how problem-solving ideally will occur.”
Many researchers have advocated the development of Knowledge-Based Systems by reusing Problem-Solving Methods (PSMs), that is software components that encode domain-independent sequences of inference steps for solving particular tasks [39, 42, 44, 46-48]. PSMs provide access to their functionality by means of formally defined interfaces (e.g., ontologies) in a domain-independent manner so that their expertise can be reused across different domains. For example, a Configuration PSM defines the concepts and relationships required for solving any kind of configuration problem, independently of the domain it is applied to, e.g., elevators construction.
Our framework will provide three main generic services to the overall SOA4All vision: Context Management, Context Recognition and Service Adaptation based on Context. To do so, we shall base our development on the use of PSMs for capturing the dynamic knowledge for supporting Context Recognition (see Figure) and Service Adaptation in a domain-independent way, and ontologies both for defining the interfaces of these services and for capturing contextual information in a sharable and machine processable way.
Context Management will be supported in our framework by means of an ontology stack that will provide the basis for capturing formally contextual data. Contextual information will be gathered both at runtime through monitoring and at design time based on user interactions. This context information will be managed by a federation of Context Repositories forming a cloud of distributed data which will profit from the global scale of the infrastructure, to derive further information from emerging social networks in a Web 2.0 fashion. In fact, we foresee that this constellation of Context Repositories will give birth to new business models centred around the strategic business value of contextual information gathered over time by diverse organisations within particular communities.
Our epistemological basis for context information generation and context recognition is based on Heuristic Classification, a well-known Problem Solving Method for solving Classification tasks. In a nutshell, Heuristic Classification is a Knowledge Level method that “relates data to a pre-enumerated set of solutions by abstraction, heuristic association, and refinement”. Within our framework we therefore approach the task of determining a (set of) relevant context(s) based on a wide range of information concerning users and services, as a process involving the abstraction of information gathered, its heuristic classification with respect to general cases, and the refinement to the particular case at hand. In fact, it is this very process of heuristically classifying contextual information that produces contextual knowledge which can then support the appropriate adaptation of services. The reader should notice that we are here distinguishing between contextual information (i.e., all the contextual information gathered may it be useful in the situation at hand or not) and contextual knowledge which can support the system acting rationally.
Once the particular context or sets of contexts have been determined, our framework will support the adaptation of services at design time, while creating composite services, and at runtime based on available contextual information at that particular moment. Again, we build upon the use of a generic Problem Solving Method to support this task. In particular, we will use Parametric Design. Parametric Design is a simplification of Configuration Design, whereby the components to be configured have a parametrised solution template to guide the design process. In this particular scenario design problem solving is a matter of assigning values to these parameters. We view the adaptation of services to particular contexts as a Parametric Design task where the parameters are context dependent features of the service such as the currency, the kind of user, etc. The main idea is therefore to minimize the computation complexity of typical approaches such as Planning by providing templates and supporting customization through Parametric Design.