Our goal is to produce a client-server based programming environment to enable massively parallel symbolic computing on heterogeneous ensembles of parallel hardware. Multiple users should be able to logon as clients and use any combination of the resources available, via a single simple language. We want our users to have control over the kind of parallelism employed by their applications, but at the same time we do not want them to have to know anything but the most abstract details of each machine or architecture - approximately how many processors it has, whether it supports SIMD and/or MIMD parallelism, and maybe some indication of the power or supported granularity of each processing node. In this paper, we discuss some of the background issues involved, and show how we use paralations to manipulate participating resources, before describing how we use futures to coordinate our distributed parallel computations. Finally, we outline some of the problems we have encountered with using paralations in this way.