Modular Co-Versioning in a Dynamically Linked Runtime Environment

US2016239279A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016239279-A1
Application numberUS-201514622639-A
CountryUS
Kind codeA1
Filing dateFeb 13, 2015
Priority dateFeb 13, 2015
Publication dateAug 18, 2016
Grant date

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.

Modular co-versioning may involve the creation of multi-version libraries that may include multiple versions of a class. A multi-version library may include a base version and one or more other versions each of which may correspond to a particular, respective version of a software development kit, runtime environment or software platform, according to various embodiments. At runtime, a multi-version library may be searched in order to load a version of a class that corresponds to the version of the currently executing runtime environment. If the multi-version library does not include a version of the class corresponding to the currently executing version of the environment/platform, a version of the class corresponding to a previous version of the environment may be loaded if found in the multi-version library. Alternatively, if no other version of the class is found, a base version of the class may be loaded from the multi-version library.

First claim

Opening claim text (preview).

1 . A non-transitory, computer-readable storage medium storing program instructions that when executed on a computing device cause the computing device to perform: loading, at runtime by a runtime module executing within a runtime environment, a class from a runtime linkable, multi-version library, wherein the multi-version library is configured to include multiple versions of classes, wherein all versions of a respective class correspond to an identical class signature for the respective class; wherein said loading comprises: determining whether the multi-version library includes a version of the class associated with a current version of a software development kit for implementing software executable within a respective current version of the runtime environment; and in response to determining that the multi-version library does include the version of the class associated with the current version of the software development kit, loading, from the multi-version library, the version of the class associated with the current version of the software development kit. 2 . The non-transitory, computer-readable storage medium of claim 1 , wherein to load the version of the class associated with the current version of the software development kit, the program instructions further cause the computing device to perform: loading the version of the class from a folder in the multi-version library associated with the current version of the software development kit, wherein the folder is configured to store versions of multiple classes, each associated with the current version of the software development kit. 3 . The non-transitory, computer-readable storage medium of claim 1 , wherein the program instructions further cause the computing device to perform: in response to determining that the multi-version library does not include the version of the class associated with the current version of the software development kit: determining whether the multi-version library comprises a version of the class associated with a specific previous version of the software development kit, wherein the specific previous version of the software development kit occurs prior than the current version of the software development kit in a defined order of software development kit versions; and in response to determining that the multi-version library does include the version of the class associated with the specific previous version of the software development kit, loading, from the multi-version library, the version of the class associated with the specific previous version of the software development kit. 4 . The non-transitory, computer-readable storage medium of claim 3 , wherein the program instructions further cause the computing device to perform: in response to determining that the multi-version library does not include the version of the class associated with the specific previous version of the software development kit, loading a base version of the class from the multi-version library, wherein the base version of the class is not associated with any particular version of the software development kit. 5 . The non-transitory, computer-readable storage medium of claim 3 , wherein to load, from the multi-version library, the version of the class associated with the specific previous version of the software development kit, the program instructions further cause the computing device to perform: loading the version of the class associated with the specific previous version of the software development kit from a folder in the multi-version library associated with the specific previous version of the software development kit, wherein the folder is configured to store versions of multiple classes, each associated with the specific previous version of the software development kit. 6 . The non-transitory, computer-readable storage medium of claim 1 , wherein said determining whether the multi-version library includes a version of the class associated with a current version of a software development kit is performed without regard to the presence, within the multi-version library of a version of the class associated with a later version of the software development, wherein the later version of the software development kit occurs after the current version of the software development in a defined order of software development kit versions. 7 . The non-transitory, computer-readable storage medium of claim 1 , wherein the multi-version library is a multi-version archive implemented using a platform-independent, object oriented programming language. 8 . A computing device, comprising: a processor; and a memory coupled to the processor, wherein the memory comprises program instructions that when executed by the processor, cause the processor to perform: executing a class loader within a runtime environment; loading, at runtime by the class loader, a class from a runtime linkable, multi-version library, wherein the multi-version library is configured to include multiple versions of classes, wherein all versions of a respective class correspond to an identical class signature for the respective class; wherein said loading comprises: determining whether the multi-version library includes a version of the class associated with a current version of a software development kit for implementing software executable within a respective current version of the runtime environment within which the class loader is executing; and in response to determining that the multi-version library does include the version of the class associated with the current version of the software development kit, loading, from the multi-version library, the version of the class associated with the current version of the software development kit. 9 . The computing device of claim 8 , wherein to load the version of the class associated with the current version of the software development kit, the program instructions further cause the processor to perform: loading the version of the class from a folder in the multi-version library associated with the current version of the software development kit, wherein the folder is configured to store versions of multiple classes, each associated with the current version of the software development kit. 10 . The computing device of claim 8 , wherein the program instructions further cause the processor to perform: in response to determining that the multi-version library does not include the version of the class associated with the current version of the software development kit: determining whether the multi-version library comprises a version of the class associated with a specific previous version of the software development kit, wherein the specific previous version of the software development kit occurs prior than the current version of the software development kit in an order to software development kit versions; and in response to determining that the multi-version library does include the version of the class associated with the specific previous version of the software development kit, loading, from the multi-version library, the version of the class associated with the specific previous version of the software development kit. 11 . The computing device of claim 10 , wherein the program instructions further cause the processor to perform: in response to determining that the multi-version library does not include the version of the class associated with the specific previous version of the software development kit, loading a base version of the class from the multi-version library, wherein the base version of the class is not associated with any particular version of the software development kit.

Assignees

Inventors

Classifications

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

  • G06F8/54Primary

    Link editing before load time · CPC title

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

  • Selecting among different versions · 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 US2016239279A1 cover?
Modular co-versioning may involve the creation of multi-version libraries that may include multiple versions of a class. A multi-version library may include a base version and one or more other versions each of which may correspond to a particular, respective version of a software development kit, runtime environment or software platform, according to various embodiments. At runtime, a multi-ve…
Who is the assignee on this patent?
Oracle Int Corp
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 Thu Aug 18 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).