Multiprocessor Programming Toolkit for Design Reuse
US-2024394048-A1 · Nov 28, 2024 · US
US9639338B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9639338-B2 |
| Application number | US-201314650577-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 8, 2013 |
| Priority date | Dec 11, 2012 |
| Publication date | May 2, 2017 |
| Grant date | May 2, 2017 |
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.
A computer-implemented method for deploying an application on a computing resource includes: defining sets of groups of tenants for categorizing the plurality of tenants; assigning each tenant to at least one group of tenants; providing a deployment model for each combination of an application component of the plurality of application components and a tenant; determining constraint information for each combination of application component and tenant depending on the deployment model, wherein the deployment model is configured to enable each tenant to include and/or exclude entire groups of tenants from sharing one or more application components and/or infrastructure of the computing resource; determining a valid deployment configuration of the application depending on the constraint information associated with each application component; and deploying the application on the computing resource accordingly.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method for deploying an application on a computing resource, wherein the application is provided remotely to a plurality of tenants of users, wherein the application comprises a plurality of application components, the computer-implemented method comprising: defining groups and sub-groups of tenants for categorizing the plurality of tenants, including defining a first group and a first plurality of sub-groups associated with the first group of tenants; assigning each tenant of the plurality of tenants to at least one group and/or at least one sub-group; providing a deployment model for each combination of: an application component of the plurality of application components and a tenant of the plurality of tenants; determining constraint information for each combination of application component and tenant depending on the deployment model, wherein the deployment model is configured to enable each tenant of the plurality of tenants to include and/or exclude entire groups and sub-groups of tenants from sharing one or more application components and/or infrastructure of the computing resource, wherein including or excluding the first group causes the first plurality of sub-groups associated with the first group of tenants to be included or excluded, respectively, wherein a hierarchical relationship between the plurality of application components corresponds to a directed graph without cycles, and wherein a further application component is associated with a higher level application component; determining a valid deployment configuration of the application on the computing resource depending on the constraint information associated with each application component of the plurality of application components; and deploying the application on the computing resource depending on the determined valid deployment configuration; wherein the valid deployment configuration is determined via an optimization method; wherein in a first step of the optimization method at least one initial deployment unit of a plurality of initial deployment units is generated per application component of the plurality of application components, the plurality of initial deployment units being associated with an initial deployment level of a sequence of deployment levels; wherein in a second step of the optimization method a plurality of further deployment units associated with a further deployment level is generated, the plurality of further deployment units being generated depending on a plurality of preceding deployment units associated with a preceding deployment level in the sequence of deployment levels; wherein the second step of the optimization method comprises determining a minimum number of further deployment units for deploying the plurality of preceding deployment units on the further deployment level depending on the constraint information. 2. The computer-implemented method according to claim 1 , wherein determining constraint information for each combination of application component and tenant comprises: deriving the constraint information associated with the application component from further constraint information associated with the further application component of the plurality of application components; or receiving the constraint information from the tenant of the plurality of tenants which is associated to the application component. 3. The computer-implemented method according to claim 1 , wherein the valid deployment configuration of the application is optimized by minimizing a total number of deployment units associated with all deployment levels. 4. The computer-implemented method according to claim 1 , further comprising: enabling each tenant of the plurality of tenants to include and/or exclude a module of an individual application component of the plurality of application components, wherein the module is a cryptographic module for encryption and/or decryption of data associated with the individual application component. 5. The computer-implemented method according to claim 1 , further comprising: enabling each tenant of the plurality of tenants to include and/or exclude the application component of the plurality of application components. 6. The computer-implemented method according to claim 1 , wherein determining a valid deployment configuration includes generating a number of instances of each application component of the plurality of application components depending on the constraint information. 7. The computer-implemented method according to claim 6 , wherein the computing resource includes a plurality of computing machines in a computing environment, and wherein deploying the application on the computing resource includes running at least one instance of the number of instances of each application component of the plurality of application components on at least one computing machine of the plurality of computing machines. 8. The computer-implemented method according to claim 7 , wherein determining a valid deployment configuration includes assigning each instance of the number of instances of the at least one application component to exactly one computing machine of the plurality of computing machines depending on the constraint information. 9. The computer-implemented method according to claim 7 , wherein determining a valid deployment configuration includes assigning each tenant to exactly one instance of the number of instances depending on the constraint information. 10. The computer-implemented method according to claim 1 , wherein providing a deployment model for each combination of tenant and application component includes: providing the tenant with a set of deployment models; enabling the tenant to assign exactly one deployment model of the set of deployment models to each application component of the plurality of application components; and enabling the tenant, for each application component of the plurality of application components, to determine constraint information for the assigned deployment model. 11. The computer-implemented method according to claim 10 , wherein enabling the tenant to assign exactly one deployment model to each application component of the plurality of application components includes assigning one of a private deployment model, a public deployment model, a white deployment model, a black deployment model and/or a gray deployment model; wherein the private deployment model is configured to disable the sharing of the application component with all other tenants; wherein the public deployment model is configured to enable the sharing of the application component with all other tenants; wherein the white deployment model is configured to enable the sharing of the application component with all other tenants of a whitelist specified by the tenant; wherein the black deployment model is configured to disable the sharing of the application component with all other tenants of a blacklist specified by the tenant; wherein the gray deployment model is configured to enable or disable the sharing of the application component with another tenant as specified by the tenant. 12. The computer-implemented method according to claim 1 , wherein determining the valid deployment configuration includes, for each tenant of the plurality of tenants, specifying a required resource for each application component of the plurality of application components, wherein the required resource includes size of memory and/or number of processors. 13. The computer-implemented method according to claim 1 , wherein determining the valid deployment configuration includes specifying available co
Software deployment · CPC title
Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.