API namespace virtualization
First Claim
1. A method performed on a computing device that includes at least one processor and memory, the method comprising:
- receiving, by the computing device from a component that was coded against an interface contract that corresponds to an application programming interface (“
API”
) namespace, a request to load the API namespace that represents a predefined collection of functions that fulfill the interface contract, where the received request includes parameters that identify;
the API namespace, a particular version of the API namespace required by the component, and the component;
identifying, by the computing device based on the parameters and a map, a set of components that implement the predefined collection of functions represented by the particular version of the API namespace, where the interface contract is decoupled from the set of components, where the interface contract defines APIs of the predefined collection of functions, and where the map links the particular version of the API namespace to the set of components that implements the predefined collection of functions that fulfill the interface contract; and
loading the identified set of components.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer operating system with a map that relates API namespaces to components that implement an interface contracts for the namespaces. When an API namespace is to be used, a loader within the operating system uses the map to load components based on the map. An application can reference an API namespace in the same way as it references a dynamically linked library, but the implementation of the interface contract for the API namespace is not tied to a single file or to a static collection of files. The map may identify versions of the API namespace or values of runtime parameters that may be used to select appropriate files to implement an interface contract in scenarios that may depend on factors such as hardware in the execution environment, a version of the API namespace against which an application was developed or the application accessing the API namespace.
96 Citations
18 Claims
-
1. A method performed on a computing device that includes at least one processor and memory, the method comprising:
-
receiving, by the computing device from a component that was coded against an interface contract that corresponds to an application programming interface (“
API”
) namespace, a request to load the API namespace that represents a predefined collection of functions that fulfill the interface contract, where the received request includes parameters that identify;
the API namespace, a particular version of the API namespace required by the component, and the component;identifying, by the computing device based on the parameters and a map, a set of components that implement the predefined collection of functions represented by the particular version of the API namespace, where the interface contract is decoupled from the set of components, where the interface contract defines APIs of the predefined collection of functions, and where the map links the particular version of the API namespace to the set of components that implements the predefined collection of functions that fulfill the interface contract; and loading the identified set of components. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. At least one computer memory storing computer-executable instructions that, based on execution by at least one computing device, configure the at least one computing device to:
-
receive, from a component that was coded against an interface contract that corresponds to an application programming interface (“
API”
) namespace, a request to load the API namespace that represents a predefined collection of functions that fulfill the interface contract, where the received request includes parameters that identify;
the API namespace, a particular version of the API namespace required by the component, and the component;identify, based on the parameters and a map a, a set of components that implement the predefined collection of functions represented by the particular version of the API namespace, where the interface contract is decoupled from the set of components, where the interface contract defines APIs of the predefined collection of functions, and where the map links the particular version of the API namespace to the set of components that implements the predefined collection of functions that fulfill the interface contract; and load the identified set of components. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing device comprising:
-
at least one processor; memory; and at least one program module according to which the computing device is configured to; receive, from a component that was coded against an interface contract that corresponds to an application programming interface (“
API”
) namespace, a request to load the API namespace that represents a predefined collection of functions that fulfill the interface contract, where the received request includes parameters that identify;
the API namespace, a particular version of the API namespace required by the component, and the component;identify, based on the parameters and a map a, a set of components that implement the predefined collection of functions represented by the particular version of the API namespace, where the interface contract decoupled from the set of components, where the interface contract defines APIs of the predefined collection of functions, and where the map links the particular version of the API narnespace the set of components that implements the predefined collection of functions that fulfill the interface contract; and load the identified set of components. - View Dependent Claims (15, 16, 17, 18)
-
Specification