Maintaining and updating software versions via hierarchy

US10656935B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10656935-B2
Application numberUS-201715449229-A
CountryUS
Kind codeB2
Filing dateMar 3, 2017
Priority dateOct 13, 2015
Publication dateMay 19, 2020
Grant dateMay 19, 2020

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.

The described technology is directed towards maintaining and using a version-based hierarchy of software resources (e.g., file system files) to return version-specific responses to clients. A client sends its version information with each data request, and gets back a response based upon that version. Version changes are made by maintaining the current version of each software code resource and overriding the current version with a previous version for clients as needed. The technology allows updates (e.g., for new devices and new software resource versions) to be supported by inserting resources into the resource hierarchy and moving resources therein based upon versioning. A system based on deltas is also contemplated, in which only parts of a file may be changed relative to a different version, instead of overriding the entire file.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: maintaining, by a system comprising a processor, a hierarchy of software entities, including different sub-hierarchies corresponding to different versions of at least some of the software entities; receiving, by the system, from a requestor a version identifier and a request for a software entity set comprising one or more software entities corresponding to that version identifier; accessing, by the system, the hierarchy of software entities to select a version-based software entity set selected at least in part via the version identifier, wherein the accessing comprises: obtaining, by the system, a version-based template for a software entity of the version-based software entity set corresponding to the version identifier, obtaining, by the system, a generic version of the software entity, and customizing, by the system, the generic version of the software entity using the version-based template to generate version-based software entity corresponding to the version identifier; and returning, by the system, information corresponding to the selected software entity set to the requestor, the information comprising the version-based software entity corresponding to the version identifier. 2. The method of claim 1 , wherein the maintaining the hierarchy of software entities comprises maintaining a hierarchy of: data structures, code sections, heuristic rules, data templates or data, or any combination of data structures, code sections, heuristic rules, data templates or data. 3. The method of claim 1 , wherein the maintaining the hierarchy of software entities comprises maintaining a file system of files, each file corresponding to a software entity. 4. The method of claim 1 , wherein the maintaining the hierarchy of software entities comprises maintaining at least one software entity containing change data relative to at least one source software entity. 5. The method of claim 4 , wherein the maintaining the at least one software entity containing change data comprises maintaining hierarchical software entities used for API documentation. 6. The method of claim 1 , wherein the accessing the hierarchy of software entities comprises building a path order in the hierarchy ordered to correspond to a most-specific version to a least-specific version, and searching via the path order until a software entity is found. 7. The method of claim 1 , wherein the accessing the hierarchy of software entities comprises building a path order in the hierarchy ordered to correspond to a least-specific version to a most-specific version, selecting one or more software entities from the least specific version into a selected set, and replacing any software entity in the selected set having a version that is more specific than the version in the selected set. 8. The method of claim 1 , further comprising, receiving, by the system, a type of a requested data item as part of the request for the software entity set, and selecting at least one software entity based at least in part upon the type of the data item. 9. The method of claim 8 , further comprising determining, by the system, the type of the data item by matching an identifier of the data item to a regular expression. 10. The method of claim 1 , wherein the request for the software entity set is associated with a token, and further comprising, obtaining, by the system, the version identifier based upon information in the token. 11. The method of claim 10 , wherein the accessing the hierarchy of software entities to select the version-based software entity set selected at least in part via the version identifier comprises using the version identifier and device type or device class information. 12. The method of claim 1 , wherein the returning the information corresponding to the selected software entity set to the requestor comprises returning one software entity from one sub-hierarchy corresponding to one version, and returning another software entity from another sub-hierarchy corresponding to another version. 13. The method of claim 1 , wherein the returning the information corresponding to the selected software entity set to the requestor comprises returning information to the requestor indicating that the selected software entity set is no longer supported. 14. A system comprising: a processor; and a memory communicatively coupled to the processor, the memory having stored therein computer-executable components, comprising: request handling logic of a data service, the request handling logic configured to receive a client request for a requested data item, in which the request is associated with a client version identifier; resource selection logic, the resource selection logic coupled to the request handling logic, the resource selection logic configured to access a hierarchy of resource files arranged in version-based sub-hierarchies to obtain a resource set comprising one or more resources that correspond to the requested data item and the client version identifier; response generation logic coupled to the resource selection logic, the response generation logic configured to: use the resource set to obtain a version-based template file corresponding to the client version identifier, obtain a generic version of the requested data item, customizing the generic version of the requested data item using the version-based template file to generate version-based requested data item corresponding to the client version identifier, and generate a response for the requested data item that includes the version-based requested data item corresponding to the client version identifier; and the request handling logic configured to return the response in response to the client request. 15. The system of claim 14 , wherein the resource set comprises: a declarative file, or the version-based template file or a version-based expansion rule file, and wherein the response generation logic uses the expansion rule file to return with the response at least one additional data item based at least in part on the client version identifier. 16. The system of claim 14 , wherein the request handling logic, resource selection logic, and response generation logic are maintained as: part of a multiple version-aware front-end data service that communicates with a back-end data service, or as part of a multiple version back-end data service that communicates with a front-end data service. 17. The system of claim 14 , wherein the response generation logic uses a selected file from the resource set to generate a response that includes at least part of the selected file's data. 18. The system of claim 14 , wherein a file in the hierarchy of resource files comprises a delta file containing change information of one version relative to a source file of another version, and further comprising logic that applies data of the delta file to data of the source file to provide a resource of the resource set. 19. A non-transitory computer-readable medium having instructions stored thereon that, in response to execution, cause a system including a processor to perform operations, the operations comprising: receiving a client request for a requested data item, in which the client request is associated with a client version identifier; selecting a resource set from a hierarchy of resource data structures, in which the resource data structures are arranged in version-based sub-hierarchies; using the resource set to obtain a version-based template file corresponding to the client v

Assignees

Inventors

Classifications

  • Server selection for load balancing · CPC title

  • characterized by the use of Application Program Interface [API] libraries · CPC title

  • Updates (security arrangements therefor G06F21/57) · CPC title

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • for providing content or additional data updates, e.g. updating software modules, stored at the client (deployment, distribution, installation, update of software G06F8/65; error detection or correction during software upgrading G06F11/1433; arrangements for updating broadcast information or broadcast-related information H04H60/25) · 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 US10656935B2 cover?
The described technology is directed towards maintaining and using a version-based hierarchy of software resources (e.g., file system files) to return version-specific responses to clients. A client sends its version information with each data request, and gets back a response based upon that version. Version changes are made by maintaining the current version of each software code resource and…
Who is the assignee on this patent?
Home Box Office Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 19 2020 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).