Surfer is an extensible framework for selecting and ranking grid resources. A resource is defined as anything that needs selecting such as compute resources, storage resources, and data resources. The user specifies the set of resource types desired, the constraints that must hold over all the resources, and the ranking function to be used to order the resources. For each request received, Surfer returns a set of resource tuples, where each tuple contains a resource instance for each resource type requested, each tuple satisfies the specified constraints, and tuples are ordered by descending values of the given ranking function. Constraints and ranking functions are Boolean and numeric expressions, respectively, using a set of built-in arithmetic, Boolean and relational operators, and a set of functions supplied by information providers, which are implemented independently of the framework and integrated into the system using a single configuration line.

Providers supply functions of arbitrary type that represent selected information such as the number of CPUs of a compute resource, free disk space of a storage resource, etc. Providers also supply queries used to generate resource sets that define the set of resources that are selectable. Information providers are invisible to the end user, who only sees the set of resource types selectable as well as the set of functions available. The framework decides which provider is responsible for each function, whether to use queries or function calls, and how results are correlated.

This program was written by Paul Kolano of Advanced Management Technology for Ames Research Center. For further information, access http://opensource.arc.nasa.gov/  or contact the Ames Technology Partnerships Division at (650) 604-2954. ARC-15295-1