In this paper we examine technical development of client-side mashups and the characteristics of client-side mashups in general. Based on our hands-on experiences in developing various client-side mashups and tools, we provide a novel set of guidelines that can help a developer choose the right methods when building new mashups. Even though mashup patterns for enterprise server-side mashups have been described (Ogrinz, 2009), this kind of a set of practical methods for creating client-side mashups has not been available earlier. Furthermore, in order to enable different vendors to provide service interfaces and to compose mashup clients, we describe a reference architecture for client-side mashups. In summary, the goal of the paper is to give an extended overview of our experiences on client-side mashup development. This paper is an extended version of our earlier papers (Salminen, Nyrhinen, Mikkonen, & Taivalsaari, 2010; Mikkonen & Salminen, 2011).
The paper is structured as follows. First, we discuss mashups and mashup development in general. Then, we group our findings into practical guidelines that can be applied to the development of new mashups. Afterwards, we describe our mashup reference architecture. Following that, we provide hands-on mashup development examples based on real-life applications that we have created. We then go on to discuss the experiences and lessons learned during the implementation of these applications. Finally, we then draw some conclusion and discuss the directions for future work, including the steps that pave the way towards mashware (Taivalsaari, 2009) – full-fledged mashup applications that consist of software components that have been downloaded from multiple sites and then dynamically combined into new applications.