Architecture for enabling fine granular service chaining
US-2017155724-A1 · Jun 1, 2017 · US
US9886303B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9886303-B2 |
| Application number | US-201615182966-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 15, 2016 |
| Priority date | Jun 15, 2016 |
| Publication date | Feb 6, 2018 |
| Grant date | Feb 6, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Application code is obtained at a compiler toolchain, which accesses a package manager that tracks dependencies for a set of software components including application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages. A dependency solver is employed to select a sub-set of the set of packages that satisfy the dependencies. The sub-set of packages is assembled into an executable bundle, including a statically-linked binary built entirely from the sub-set of the selected packages that contains no external dependencies except calls to an interface defined entirely by the hypervisor interface-level packages, and a specialized monitor built entirely from the sub-set of the selected packages that runs on a standard operating system, loads and executes the statically-linked binary, and interacts with the statically-linked binary only through the interface defined by the hypervisor interface-level packages.
Opening claim text (preview).
What is claimed is: 1. A method comprising: obtaining, at a compiler toolchain, application code for an application to be implemented; accessing, with said compiler toolchain, a package manager which tracks dependencies for a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; employing a dependency solver of said package manager to select a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; and with said compiler toolchain, assembling said sub-set of packages into an executable bundle to implement said application, said executable bundle comprising: a statically-linked binary built entirely from said sub-set of said selected packages that contains no external dependencies except calls to an interface defined entirely by said hypervisor interface-level packages, and a specialized monitor built entirely from said sub-set of the selected packages that runs on a standard operating system, loads and executes said statically-linked binary, and interacts with said statically-linked binary only through said interface defined by said hypervisor interface-level packages. 2. The method of claim 1 , wherein, in said assembling step: said statically-linked binary comprises a specialized virtual machine image; and said specialized monitor comprises an executable type-2 micro-hypervisor. 3. The method of claim 2 , wherein, in said assembling step, said specialized virtual machine image comprises a unikernel. 4. The method of claim 3 , further comprising: distributing said executable bundle; creating, with said executable type-2 micro-hypervisor, an isolated context to run said unikernel; and running said unikernel in said isolated context created by said executable type-2 micro-hypervisor. 5. The method of claim 4 , further comprising taking action with said executable type-2 micro-hypervisor whenever said unikernel exits said isolated context. 6. The method of claim 3 , wherein, in said employing step, said selected sub-set of said set of packages comprises packages corresponding to only those of said set of software components needed to implement said application. 7. The method of claim 1 , wherein, in said assembling step, said standard operating system comprises Linux. 8. The method of claim 1 , wherein, in said obtaining step, said application is to be implemented in a cloud environment. 9. The method of claim 1 , wherein, in said accessing step, said set of software components further comprises middleware-level components represented as middleware-level packages and operating system-level components represented as operating system-level packages. 10. A system comprising: one or more processors configured to execute: a compiler toolchain which obtains application code for an application to be implemented; a software component library storing a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; and a package manager in communication with said compiler toolchain and said software component library, said package manager in turn comprising a dependency solver, said package manager tracking dependencies for said set of software components represented as said set of packages, said package manager being accessed by said compiler toolchain, said dependency solver of said package manager selecting a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; wherein said compiler toolchain assembles said sub-set of packages into an executable bundle to implement said application, said executable bundle comprising: a statically-linked binary built entirely from said sub-set of said selected packages that contains no external dependencies except calls to an interface defined entirely by said hypervisor interface-level packages, and a specialized monitor built entirely from said sub-set of the selected packages that runs on a standard operating system, loads and executes said statically-linked binary, and interacts with said statically-linked binary only through said interface defined by said hypervisor interface-level packages. 11. The system of claim 10 , wherein: said statically-linked binary comprises a specialized virtual machine image; and said specialized monitor comprises an executable type-2 micro-hypervisor. 12. The system of claim 11 , wherein said specialized virtual machine image comprises a unikernel. 13. The system of claim 12 , further comprising said executable type-2 micro-hypervisor and said unikernel, wherein: said executable type-2 micro-hypervisor creates an isolated context to run said unikernel; and said unikernel runs in said isolated context created by said executable type-2 micro-hypervisor. 14. The system of claim 13 , wherein said executable type-2 micro-hypervisor takes action whenever said unikernel exits said isolated context. 15. The system of claim 12 , wherein said selected sub-set of said set of packages comprises packages corresponding to only those of said set of software components needed to implement said application. 16. The system of claim 10 , wherein said standard operating system comprises Linux. 17. The system of claim 10 , wherein said application is implemented in a cloud environment. 18. The system of claim 10 , wherein said set of software components further comprises middleware-level components represented as middleware-level packages and operating system-level components represented as operating system-level packages. 19. A non-transitory computer readable medium comprising computer executable instructions which when executed by a computer cause the computer to perform the method of: obtaining, at a compiler toolchain, application code for an application to be implemented; accessing, with said compiler toolchain, a package manager which tracks dependencies for a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; employing a dependency solver of said package manager to select a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; and with said compiler toolchain, assemb
Runtime code conversion or optimisation · CPC title
Compilation · CPC title
Link editing before load time · CPC title
Monitoring or debugging support · CPC title
Network integration; Enabling network access in virtual machine instances · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.