Programming language interoperability engine and enforcement in multi-tenant environments

US11620116B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11620116-B2
Application numberUS-202117245666-A
CountryUS
Kind codeB2
Filing dateApr 30, 2021
Priority dateApr 30, 2021
Publication dateApr 4, 2023
Grant dateApr 4, 2023

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.

Techniques herein enable a tenant of a multi-tenant database to select a programming language to interact with a platform that uses a default programming language. A tenant-specific engine may manage a runtime context associated with the tenant in which a tenant may input code that is translated into the default programming language and executed. During execution, the tenant-specific engine may enforce various multi-tenant protections associated with the tenant. For example, the tenant-specific engine may monitor the runtime context and operations of the translated code, and may enforce computational limitations of the tenant as the translated code is executed.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for data processing at an application server, comprising: initiating, by a programming language interoperability application, a runtime context associated with a tenant of a multi-tenant database, the runtime context configured for inputting code associated with a first programming language supported by the programming language interoperability application; initiating a tenant-specific engine for the tenant based at least in part on initiating the runtime context, the tenant-specific engine configured to monitor computational limits associated with a second programming language supported by the programming language interoperability application; accessing, by the tenant-specific engine, the multi-tenant database to obtain a first set of computational limits specific to the tenant and a second set of computational limits specific to the tenant; executing one or more instances of translated code associated with the runtime context, wherein the translated code comprises code translated from the first programming language to the second programming language by the programming language interoperability application; and monitoring, by the tenant-specific engine, the first set of computational limits specific to the tenant and the second set of computational limits specific to the tenant based at least in part on the one or more instances of the translated code. 2. The method of claim 1 , wherein monitoring the first set of computational limits specific to the tenant and the second set of computational limits specific to the tenant comprises: monitoring the execution of the one or more instances of the translated code to obtain a number of computations performed by the programming language interoperability application. 3. The method of claim 2 , further comprising: initiating a runtime exception based at least in part on the number of computations performed by the programming language interoperability application exceeding one of the first set of computational limits or the second set of computational limits. 4. The method of claim 3 , further comprising: refraining from executing one or more additional instances of the translated code based at least in part on the number of computations performed by the programming language interoperability application exceeding one of the first set of computational limits or the second set of computational limits. 5. The method of claim 1 , further comprising: executing, by the programming language interoperability application, the one or more instances of the translated code based at least in part on the first set of computational limits; and monitoring, by the tenant-specific engine, the one or more instances of the translated code executed by the programming language interoperability application based at least in part on the second set of computational limits. 6. The method of claim 1 , wherein the first set of computational limits comprises a processor time limit associated with the programming language interoperability application. 7. The method of claim 1 , wherein the second set of computational limits comprises a memory usage limit associated with the runtime context, a number of statements limit associated with the runtime context, or a combination thereof. 8. The method of claim 1 , wherein each of the first and second sets of computational limits is based at least in part on a user type associated with the tenant, a tenant identifier (ID) of the tenant, a tenant status of the tenant, a code type of the first programming language, or any combination thereof. 9. The method of claim 1 , further comprising: inputting the code associated with the first programming language to the runtime context; and translating, by the programming language interoperability application, one or more statements of the code associated with the first programming language to obtain the one or more instances of translated code. 10. An apparatus for data processing at an application server, comprising: a processor; memory coupled with the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to: initiate, by a programming language interoperability application, a runtime context associated with a tenant of a multi-tenant database, the runtime context configured for inputting code associated with a first programming language supported by the programming language interoperability application; initiate a tenant-specific engine for the tenant based at least in part on initiating the runtime context, the tenant-specific engine configured to monitor computational limits associated with a second programming language supported by the programming language interoperability application; access, by the tenant-specific engine, the multi-tenant database to obtain a first set of computational limits specific to the tenant and a second set of computational limits specific to the tenant; execute one or more instances of translated code associated with the runtime context, wherein the translated code comprises code translated from the first programming language to the second programming language by the programming language interoperability application; and monitor, by the tenant-specific engine, the first set of computational limits specific to the tenant and the second set of computational limits specific to the tenant based at least in part on the one or more instances of the translated code. 11. The apparatus of claim 10 , wherein the instructions to monitor the first set of computational limits specific to the tenant and the second set of computational limits specific to the tenant are executable by the processor to cause the apparatus to: monitor the execution of the one or more instances of the translated code to obtain a number of computations performed by the programming language interoperability application. 12. The apparatus of claim 11 , wherein the instructions are further executable by the processor to cause the apparatus to: initiate a runtime exception based at least in part on the number of computations performed by the programming language interoperability application exceeding one of the first set of computational limits or the second set of computational limits. 13. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to: refrain from executing one or more additional instances of the translated code based at least in part on the number of computations performed by the programming language interoperability application exceeding one of the first set of computational limits or the second set of computational limits. 14. The apparatus of claim 10 , wherein the instructions are further executable by the processor to cause the apparatus to: execute, by the programming language interoperability application, the one or more instances of the translate code based at least in part on the first set of computational limits; and monitor, by the tenant-specific engine, the one or more instances of the translated code executed by the programming language interoperability application based at least in part on the second set of computational limits. 15. The apparatus of claim 10 , wherein the first set of computational limits comprises a processor time limit associated with the programming language interoperability application. 16. The apparatus of claim 10 , wherein the second set of computational limits comprises a memory usage limit associated with the runtime context, a number of statements limit associated with the runtime cont

Assignees

Inventors

Classifications

  • G06F8/51Primary

    Source to source · CPC title

  • G06F8/40Primary

    Transformation of program code · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • Query processing · 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 US11620116B2 cover?
Techniques herein enable a tenant of a multi-tenant database to select a programming language to interact with a platform that uses a default programming language. A tenant-specific engine may manage a runtime context associated with the tenant in which a tenant may input code that is translated into the default programming language and executed. During execution, the tenant-specific engine may…
Who is the assignee on this patent?
Salesforce Com Inc, Saleforce Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/51. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2023 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).