API namespace virtualization

US10089119B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10089119-B2
Application numberUS-71638110-A
CountryUS
Kind codeB2
Filing dateMar 3, 2010
Priority dateDec 18, 2009
Publication dateOct 2, 2018
Grant dateOct 2, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. The method of claim 1 the identifying further based on a runtime parameter that indicates a configuration of a runtime environment of the computing device. 3. The method of claim 2 where the runtime parameter comprises an identification of a hardware capability of the computing device. 4. The method of claim 1 , where: the received request is a first request that the API namespace is to be loaded; the component is a first component; the loaded set of components comprises a first set of components; and the method further comprising: in response to receiving a second request to load the API namespace: identifying, based on the parameters and the map, a second set of components that implements other functions that fulfill the interface contract; and loading the identified second set components. 5. The method of claim 4 further comprising: receiving a call through an interface implemented by the loaded first set of components; determining, in response to the received call, whether a function is to be implemented according to computer executable instructions in the loaded first set of components according to computer executable instructions in the loaded second set of components; and executing, in response to the received call, the implemented function. 6. The method of claim 1 wherein the set of components comprises a plurality of dynamically linked libraries, and wherein the loading comprises loading the plurality of dynamically linked libraries. 7. The method of claim 1 , further comprising dynamically modifying the map. 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. 9. The at least one computer memory of claim 8 , where the map comprises a value for at least one runtime parameter associated with the interface contract. 10. The at least one computer memory of claim 8 , where the map is further configured for linking each of a plurality of versions of the API namespace to a respective set of components. 11. The at least one computer memory of claim 8 , where the identifying is further based on a current hardware configuration. 12. The at least one computer memory of claim 8 , where the map further links at least two interface contracts to a same set of components, and where the identified set of components comprises at least one of a plurality of dynamically linked libraries. 13. The at least one computer memory of claim 8 where the identifying is further based on a current hardware configuration. 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. 15. The computing device of claim 14 further configured to: execute a first component of the set of components; determine, based on the executing, that a function is to be performed that is not in the set of components, request, based on determining that a function is to be performed that is not in the set of components, a second request to load a second API namespace; identify, based on the map and in response to the second request, a second set of components that implements the function that is not in the set of components and that fulfills an interface contract of the second API namespace; and load the identified second set of components. 16. The computing device of claim 14 where the map is associated with an operating system of the computing device. 17. The computing device of claim 16 , where the map comprises a plurality of linkages that each link a namespace with a set of components, where at least some of the linkages are based on one or more runtime parameters. 18. The computing device of claim 17 , where the one or more runtime parameters comprise a hardware capability of the computing device.

Assignees

Inventors

Classifications

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title

  • Selecting among different versions · CPC title

  • Formation of subprogram jump address · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10089119B2 cover?
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…
Who is the assignee on this patent?
Kishan Arun, Thirumalai Karthik, Pletcher Richard A, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/44521. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 02 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).