Efficient bundling and delivery of client-side scripts

US10713020B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10713020-B2
Application numberUS-201816184625-A
CountryUS
Kind codeB2
Filing dateNov 8, 2018
Priority dateNov 8, 2018
Publication dateJul 14, 2020
Grant dateJul 14, 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.

A computing system may include a computing device configured to build modules of script code into bundles, and a bundler application executable to perform operations comprising: obtaining one or more of the modules of script code that are designated for bundling with one another; organizing the modules of script code into one or more chunks; for each respective chunk of the one or more chunks: (i) determining whether the respective chunk is to be assigned a deterministic chunk identifier or a non-deterministic chunk identifier, and (ii) assigning the respective chunk a chunk identifier as determined, where deterministic chunk identifiers are usable for referencing by additional modules of script code both within and not within in the respective chunk, and where the deterministic chunk identifiers are independent of characteristics of the computing device; and writing the one or more chunks to a bundle.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising: a computing device configured to build modules of script code into bundles, wherein the computing device comprises one or more processors and memory; and a bundler application stored in the memory and configured to be executed by the one or more processors, wherein execution of the bundler application causes the bundler application to perform operations comprising: obtaining one or more of the modules of script code that are designated for bundling with one another; based on dependencies between the modules of script code, organizing the modules of script code into one or more chunks; for each respective chunk of the one or more chunks: (i) determining whether the respective chunk is to be assigned a deterministic chunk identifier or a non-deterministic chunk identifier, and (ii) assigning the respective chunk a chunk identifier as determined, wherein deterministic chunk identifiers are usable for referencing by additional modules of script code both within and not within in the respective chunk, and wherein the deterministic chunk identifiers are independent of characteristics of the computing device; and writing, in the memory, the one or more chunks to a bundle. 2. The computing system of claim 1 , further comprising: a server device with access to the bundle and an additional bundle, wherein both the bundle and the additional bundle contain a particular chunk with a particular deterministic chunk identifier, and wherein the server device is configured to: based on presence of the particular deterministic chunk identifier, provide no more than one copy of the particular chunk to a web client when the web client requests both the bundle and the additional bundle. 3. The computing system of claim 1 , wherein the modules of script code are JavaScript modules. 4. The computing system of claim 1 , wherein determining whether the respective chunk is to be assigned the deterministic chunk identifier or the non-deterministic chunk identifier comprises: reading, from configuration settings, dependency information related to the respective chunk; and assigning the deterministic chunk identifier or the non-deterministic chunk identifier based on the dependency information related to the respective chunk. 5. The computing system of claim 1 , wherein the respective chunk is assigned the deterministic chunk identifier, and wherein the deterministic chunk identifier includes a module name of a particular module of script code within the respective chunk. 6. The computing system of claim 5 , wherein the deterministic chunk identifier also includes a module version of the particular module of script code. 7. The computing system of claim 1 , wherein the respective chunk contains exactly one module of script code. 8. The computing system of claim 1 , wherein the modules of script code are organized into exactly one chunk. 9. The computing system of claim 1 , further comprising: for each respective module of the one or more of the modules of script code: (i) determining whether the respective module is to be assigned a deterministic module identifier or a non-deterministic module identifier, and (ii) assigning the respective module a module identifier as determined, wherein deterministic module identifiers are usable for referencing by additional modules of script code both within and not within in the respective module and are independent of characteristics of the computing device. 10. The computing system of claim 9 , wherein the respective module is assigned the deterministic module identifier, and wherein the deterministic module identifier includes a module name of the respective module. 11. The computing system of claim 10 , wherein the deterministic module identifier also includes a module version of the respective module. 12. A computer-implemented method comprising: obtaining, by a bundler application executing on a computing device, one or more modules of script code that are designated for bundling with one another; based on dependencies between the modules of script code, organizing, by the bundler application, the modules of script code into one or more chunks; for each respective chunk of the one or more chunks, the bundler application: (i) determining whether the respective chunk is to be assigned a deterministic chunk identifier or a non-deterministic chunk identifier, and (ii) assigning the respective chunk a chunk identifier as determined, wherein deterministic chunk identifiers are usable for referencing by additional modules of script code both within and not within in the respective chunk, and wherein the deterministic chunk identifiers are independent of characteristics of the computing device; and writing, by the bundler application, the one or more chunks to a bundle. 13. The computer-implemented method of claim 12 , wherein a server device has access to the bundle and an additional bundle, wherein both the bundle and the additional bundle contain a particular chunk with a particular deterministic chunk identifier, the computer-implemented method further comprising: based on presence of the particular deterministic chunk identifier, provide no more than one copy of the particular chunk to a web client when the web client requests both the bundle and the additional bundle. 14. The computer-implemented method of claim 12 , wherein determining whether the respective chunk is to be assigned the deterministic chunk identifier or the non-deterministic chunk identifier comprises: reading, from configuration settings, dependency information related to the respective chunk; and assigning the deterministic chunk identifier or the non-deterministic chunk identifier based on the dependency information related to the respective chunk. 15. The computer-implemented method of claim 12 , wherein the respective chunk is assigned the deterministic chunk identifier, and wherein the deterministic chunk identifier includes a module name of a particular module of script code within the respective chunk. 16. The computer-implemented method of claim 15 , wherein the deterministic chunk identifier also includes a module version of the particular module of script code. 17. The computer-implemented method of claim 12 , wherein the respective chunk contains exactly one module of script code. 18. The computer-implemented method of claim 12 , wherein the modules of script code are organized into exactly one chunk. 19. The computer-implemented method of claim 12 , further comprising: for each respective module of the one or more of the modules of script code: (i) determining whether the respective module is to be assigned a deterministic module identifier or a non-deterministic module identifier, and (ii) assigning the respective module a module identifier as determined, wherein deterministic module identifiers are usable for referencing by additional modules of script code both within and not within in the respective module and are independent of characteristics of the computing device. 20. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a computing system, cause the computing system to perform operations comprising: obtaining, by a bundler application executing on the computing system, one or more modules of script code that are designated for bundling with one another; based on dependencies between the modules of script code, organizing, by the bundler application, t

Assignees

Inventors

Classifications

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

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

  • Installation · 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 US10713020B2 cover?
A computing system may include a computing device configured to build modules of script code into bundles, and a bundler application executable to perform operations comprising: obtaining one or more of the modules of script code that are designated for bundling with one another; organizing the modules of script code into one or more chunks; for each respective chunk of the one or more chunks: …
Who is the assignee on this patent?
Servicenow Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/433. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 14 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).