|Thesis abstract: |
With the Web 2.0 revolution, new technologies, new standards and new application models have been introduced in the Web scenario. The Web has become more mature and full of potentialities as a platform for the development of interactive rich applications. The use of client-side scripting languages, the diffusion of Web Services and public APIs, and the always increasing basic skills of laypeople in the development of Web applications shaped up a scenario in which a new class of web applications, the mashups, was born. Mashups integrate, at different levels of the application stack, data, functionality and user interfaces from different resources such as Web Services, public APIs or enterprise databases. Mashups emerged in response to the need of users, not necessarily experts of technology, to quickly assemble Web resources to create new Web applications solving their situational needs. One characterizing feature of these applications is that they are very often developed by the end users, i.e., people who actually need the final application. To accommodate this practice, which can be fruitful in several situations where the possibility of constructing applications satisfying specific needs is required, in the last years different tools, conceived to offer intuitive composition languages, have been proposed. Unfortunately, most of such tools, after a couple of years of activity, were dismissed.
My PhD thesis aims at investigating and defining a framework that includes models, composition paradigms and tools for the End-User Development (EUD) of mashups. Two main reasons for the failure of the mashup tools so far proposed are indeed their incompleteness with respect to the users needs and their difficulty of use. The framework defined in this thesis aims therefore at covering the most salient activities in a mashup life cycle, and proposes a new composition paradigm based on abstractions that try as much as possible to hide technical details. The end users are enabled to integrate data of diverse resources, to create components that could be used in a mashup composition, to generate mashups that can be deployed on different kinds of devices (e.g., mobile devices or multitouch screens). We have also investigated collaboration mechanisms to allow groups of users to share resources and co-create applications. This last feature is particularly fruitful to promote the potential of mashup composition as a paradigm for knowledge sharing and creation.