Omat työkalut
Osiot
Olet täällä: Etusivu > @CSC-lehden arkisto > 2008 > @CSC 1/2008 > Chipster – designing software architecture for better user experience
Sivun toiminnot

Chipster – designing software architecture for better user experience

Chipster is an analysis environment for DNA microarray data. From user’s perspective Chipster is a graphical tool for data analysis, but behind the client application there is a distributed system hidden away. Client application runs at the user’s computer and connects to the server environment through a broker server. Server components are also connected using the broker, and it is possible to connect external Web Services to the environment.

Improved user experience

Improved user experience was the key goal when development of Chipster was started. We wanted to offer a well designed user interface, a comprehensive collection of analysis tools and wrap it up in a software package that is easy to install and deploy. These considerations formed the basis for the software architecture behind Chipster.

For implementing a full graphical user interface that runs on any platform we chose Java Swing framework. Purely web-based technologies would have limited responsiveness and interactivity of the client application, so they were not chosen. The client software however utilizes Java Web Start to make installation and version updates as easy as possible for end users. Most of the functionality is in the client application, making Chipster architecture a so called thick (or fat) client architecture. This decision simplified user interaction, made handling network latency easier and allowed better distribution of processing load, as visualisations are generated in the client.

Visualizations were developed in collaboration

For visualisation we use a variety of different packages, most importantly JFreeChart. We have also developed data analysis specific extensions to JFreeChart in cooperation with The University of Helsinki. Visualisation subsystem is interactive and connected to the rest of the system. For example it is possible to identify an interesting group of genes from a live 3D scatterplot and fetch annotations for the genes using external Web Services based data sources, such as GeneCruiser at the MIT Broad Institute.

Chipster is easy for users and system administrators alike

The Chipster environment consists of computing and authentication services and clients. They are knit together using a message oriented paradigm: messages are passed using a message broker and files are transferred using a file broker. Message oriented paradigm results in an asynchronous system. It was a good fit to our case, as our Swing-based user interface is implemented using events, another asynchronous paradigm. Message orientation allowed us to easily decouple heavy processing from normal client behaviour, making the interface responsive also under load.

Brokering makes the system very flexible and allows a wide selection of different physical architectures to be used. Only brokers need server sockets, so services can be installed behind firewalls. Actual communication protocols, for example TCP or SSL, can be configured based on the needs of the installation in question. Message passing is designed to be broadcast based, which together with brokering makes components very loosely coupled. For example computing services can be added and removed on the fly, and components can be restarted without affecting other components. This way the Chipster environment is not only easy for end users, but also for system administrators and power users in charge of application support.

Tool selection is simple to expand

Tools are added easily by using a simple annotation system. No modifications or custom wrappers are needed. Client application scans the available tool selection and their descriptions at startup, and required pieces of the user interface are generated to match the available tool selection. As many of the tools we offer are based on R/Bioconductor package, the R environment support is especially strong. Power users can inspect R source code using the client application, and the system allows local modifications to be made to actual tool scripts. Pre-initialised R environments are pooled at the computing service so that analysis requests can be processed as fast as possible.


Kallio Aleksi
aleksi.kallio at csc.fi