The Computational Grid has promised a great deal in support of innovative applications, particularly in science and engineering.
However, developing applications for this highly distributed, and often faulty, infrastructure can be demanding. Often it
can take as long to set up a computational experiment as it does to execute it. Clearly we need to be more efficient if the
Grid is to deliver useful results to applications scientists and engineers. In this paper I will present a raft of upper middleware
services and tools aimed at solving the software engineering challenges in building real applications.