In this paper we discuss the design space of methods for integrating information from Web services into websites. We focus primarily on client-side mash-ups, in which code running in the user's browser contacts Web services directly without the assistance of an intermediary server or proxy. To create such mash-ups, we advocate the use of "widgets," which are easy-to-use, customizable HTML elements whose use does not require programming knowledge. Although the techniques we discuss apply to any Web-based information system, we specifically consider how an OPAC can become both the target of Web services integration and also a Web service that provides information to be integrated elsewhere. We describe three widget libraries we have developed, which provide access to four Web services. These libraries have been deployed by us and others.Our contributions are twofold: We give practitioners an insight into the trade-offs surrounding the appropriate choice of mash-up model, and we present the specific designs and use examples of three concrete widget libraries librarians can directly use or adapt. All software described in this paper is available under the LGPL Open Source License.
■ ■ BackgroundWeb-based information systems use a client-server architecture in which the server sends HTML markup to the user's browser, which then renders this HTML and displays it to the user. Along with HTML markup, a server may send JavaScript code that executes in the user's browser. This JavaScript code can in turn contact the original server or additional servers and include information obtained from them into the rendered content while it is being displayed. This basic architecture allows for myriad possible design choices and combinations for mash-ups. Each design choice has implications to ease of use, customizability, programming requirements, hosting requirements, scalability, latency, and availability.
server-side mash-upsIn a server-side mash-up design, shown in figure 1, the mash-up server contacts the base server and each source when it receives a request from a client. It combines the information received from the base server and the sources and sends the combined HTML to the client.Server-side mash-up systems that combine base and mash-up servers are also referred to as data mash-up systems. Such data mash-up systems typically provide a Web-based configuration front-end that allows users to select data sources, specify the manner in which they are combined, and to create a layout for the entire mash-up.