Patent ID: 7461054

Claim:
A method to be performed on a computer to provide programmatic access to different types of computing resources provided by the computer, the computing resources comprising hardware devices and software components of the computer, where different resources have corresponding different resource-specific APIs for directly accessing the resources, and where a discovery module is provided to be used by applications to obtain function instances corresponding to the resources, the discovery module having an API used by the applications to submit requests and return corresponding function instances, a function instance comprising metadata about its corresponding resource and activation data for activating the resource-specific API of the corresponding resource, the method comprising: receiving from an application a request for one or more function instances, where the request is received by the discovery module; identifying underlying function instances using API layer data, where the underlying function instances implement resource-specific APIs that are specific to resources that correspond to the underlying function instances, wherein API layer data specifies an underlying function instance resource category, the underlying function resource category defining a generic type of resource that includes resources with similar functionality and that is used to identify at least two underlying function instances that are in the resource category but which have different resource-specific APIs; creating the requested one or more function instances corresponding to the underlying function instances, the creating including copying metadata about a resource from an underlying function instance to a function instance being created, and copying metadata from the API layer data to the function instance being created; and returning to the application the created one or more function instances, each function instance containing a metadata field and an activation field, the metadata field including the copied metadata, and the activation field containing information for activating an implementation of a resource-specific API for accessing the corresponding resource.