This section will describe the problems that motivate the work and outline the opportunities that can be exploited to overcome these problems.
From research collected since the inception of the project It has been found that there is not an easy way to view the data generated by all the different types Folding@home clients; the only way to currently view this data is to search though the plain text log files that are generated by the client that only display a small sub-set of data produced, the rest is stored in a proprietary binary file stored within the client's working directory.
The folding at home client is a piece of software that runs on a user's machine, there are different types of client depending on the platform that is going to be run on. The different clients are:
The problem with this is that there are a large number of clients to test against; this poses a problem of the difficulty of collecting test data.
Another problem produced by this is the lack of understanding and knowledge of the proprietary file formats that the Folding@home client uses to store it's data; the penalty associated with this lack of knowledge is the time involved to research and fully understand it in enough depth to extract the information required.
The greatest opportunity of this work is to exploit new technology; as the Folding@home project has been designed to run on as many systems as possible to increase its uptake of its users, it makes sense to use a programming language that will be portable to encompass all of these platforms. "Java provides three distinct types of portability: source code portability, CPU architecture portability, and OS/GUI portability" (Roulo M, 1997) making it the perfect language to develop a single application to administer every one of the current clients used within Folding@home. Another opportunity of studying the Folding@home project at this time is that a new client is in development at the time of writing; this new client is a major overhaul of the client as it stands at the moment and will introduce an API to Folding@home for the first time allowing extraction of data from the client easier via the passing of messages similar to JSON. I thought it would be better for a user of the Folding@home user to see exactly what they are contributing to whilst using the client.