An Engineering Method for Adaptive, Context-aware Web Applications
Users of Web-based software encounter growing complexity of the software resulting from the increasing amount of information and service offering. As a consequence, the likelihood that users employ the software in a manner compatible with the provider's interest decreases. Depending on the purpose of the Web application, a provider's goal can be to guide and influence user choices in information and service selection, or to assure user productivity. An approach at addressing these goals is to adapt the software's behavior during operation to the context in which it is being used. The term context-awareness originates in mobile computing, where research projects have studied context recognition and adaptation in specific scenarios. Context-awareness is now being studied in a variety of systems, including Web applications. However, how to account for context in a Web Engineering process is not yet established, nor is a generic means of using context in a Web software architecture. This dissertation addresses the question of how context-awareness can be applied in a general-purpose, systematic process for Web application development: that is, in a Web Engineering process. A model for representing an application's context factors in ontologies is presented. A general-purpose methodology for Web Engineering is extended to account for context, by putting in relation context ontologies with elements of the application domain. The application model is extended with adaptation specifications, defining at which places in the application adaptation to context is to occur, and according to what strategy. Application and context models are system interpretable, in order to support automatic adaptation of a system's behavior during its operation, that is, consequently to user requests. Requirements for a corresponding Web software architecture for context are established first at the conceptual level, then specifically in a content-based architecture based on an XML stack. The CATWALK software framework, an implementation of an architecture enabling adaptation to context is described. The framework provides mechanisms for interpreting application and context models to generate an adaptive application, meaning to generate responses to user requests, where the generation process makes decisions based on context information. For this purpose, the framework contains default implementations for context recognition and adaptation mechanisms. The approach presented supports a model-based development of Web applications which adapt to context. The CATWALK framework is an mplementation for model interpretation in a run-time system and thus simplifies the development of Web applications which adapt to context. As the framework is component-based and follows a strict separation of concerns, the default mechanisms can be extended or replaced, allowing to reduce the amount of custom code required to implement specific context-aware Web applications or to study alternative context inference or adaptation strategies. The use of the framework is illustrated in a case study, in which models are defined for a prototypical application, and this application is generated by the framework. The purpose of the case study is to illustrate effects of adaptation to context, based on context description and adaptation specifications in the application model.