Content area
Full Text
Irish Library and Information Schools: University College Dublin
Edited by Ian Cornelius
Introduction
OJAX provides an open source federated-search service for metadata from Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) compatible repositories ([30] Wusteman and O'hIceadha, 2006). It is being developed using Web 2.0 open source design methods and usability testing within an agile software development framework.
This article provides a case study of OJAX's development to date and illustrates how the methodologies and principles chosen have helped to ensure usability. It first briefly explains the technology behind rich internet applications. The various methodologies and principles involved in the design, development and evaluation of OJAX are then introduced. These are agile methodology, the principles of open source and Web 2.0 software, and usability testing. How these facets can complement one another to produce a usable system is explained. The OJAX system is then described, concentrating on its architecture and its use of Ajax to support the iterative nature of search. This is followed by a discussion of the methods used to evaluate OJAX, in particular, usability testing.
Rich internet applications
The OJAX federated search service (http://ojax.sourceforge.net) is an example of a rich internet application (RIA). That is, it is a web application that offer users the features, functionality and dynamic interactivity of a traditional desktop application. One of the key techniques used in many RIAs, including OJAX, is Ajax ([7] Garrett, 2005; [30] Wusteman and O'hIceadha, 2006), as popularised by Google applications such as Gmail and Google Maps.
All RIAs enable asynchronous communication between browser clients and server-side systems. In an Ajax web application, the web page incorporates an Ajax engine written in JavaScript. Users interact with this engine in the same way that they would with a standard web page except that, instead of every action resulting in a request for an entire new page from the server, user actions generate JavaScript calls to the Ajax engine. If the engine needs data from the server, it requests this asynchronously in the background. So the user is not left waiting for the server to respond to their input. In addition, the entire page need not be refreshed at every user interaction; instead, individual page elements can be rapidly updated as required.
The adoption of...