The Greenfinch Project
An Introduction to Greenfinch
Greenfinch is a framework for testing OGSA grid services. It has two major functions:
  1. To exercise grid services by providing a scriptable client which can call any method of the service and provide analysis of the results.
  2. To test complex failures in groups of cooperating services by providing a way to test the behaviour of the individual services in response to failures by some of the services they interact with.
The Greenfinch Client
The Greenfinch client is a highly extensible scripted application written in Java. The client reads XML configuration files which specify the tasks needed to initialise the environment before testing can begin, then a series of invocations which the client should make. The results of these invocations can be run through any external program and the results logged or displayed to screen. Arbitrarily many analysis programs may be run against any given run, each logging its output to a separate file. In addition, there exists the potential to provide internal plugins, in the form of Java classes, which have access to a full set of information about the run.
Creating Services that Fail
Complex grid services interact with other services during their execution. Testing their behaviour when these other services are unreliable is difficult, firstly because of the large number of possible scenarios that can occur, and secondly because creating purpose built services that fail predictably enough to be used for testing is difficult and time consuming. Greenfinch provides the ability to augment existing services with predictable failure behaviour, the ability to create "fake" services without a real implementation which will fail in a predictable fashion and an API for developing other services with the same predictable failure capabilities.