In-process wrapped execution engine(s) for tooling a dynamic program across a process boundary

US9665463B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9665463-B2
Application numberUS-201213489252-A
CountryUS
Kind codeB2
Filing dateJun 5, 2012
Priority dateJun 5, 2012
Publication dateMay 30, 2017
Grant dateMay 30, 2017

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 are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: instantiating a dynamic language execution engine in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running such that the wrapped execution engine provides information regarding execution of a targeted application of the host process to a tooling application; and isolating the wrapped execution engine from other execution engines that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine, the targeted application including one or more of the other execution engines; receiving a request from a tooling process of the tooling application at the wrapped execution engine, the request specifying a tooling operation to be performed with regard to the targeted application; and performing an operation based on receipt of the request. 2. The method of claim 1 , wherein instantiating the dynamic language execution engine comprises: instantiating the dynamic language execution engine in the wrapper object that is hosted in the host process while the host process is running on a first machine such that the wrapped execution engine provides the information regarding the execution of the targeted application of the host process to the tooling application running on a second machine that is different from the first machine. 3. The method of claim 1 , wherein performing the operation comprises: performing at least one of inspecting or modifying a state of the targeted application by the wrapped execution engine via a document object model based on receipt of the request. 4. The method of claim 1 , wherein performing the operation comprises: injecting code into a runtime of the targeted application by the wrapped execution engine based on receipt of the request. 5. The method of claim 1 , wherein performing the operation comprises: performing the tooling operation by the wrapped execution engine, including executing arbitrary native code by the wrapped execution engine based on receiving the request from the tooling process; and providing information regarding execution of the arbitrary native code from the wrapped execution engine to the tooling process. 6. The method of claim 1 , wherein performing the operation comprises: forwarding information regarding a first instance of a user interface that is associated with the targeted application from the wrapped execution engine to the tooling process such that the wrapped execution engine causes a second instance of the user interface to be integrated in the tooling application. 7. The method of claim 6 , further comprising: forwarding association information from the wrapped execution engine to the tooling process, the association information indicating that an association of the first instance of the user interface is changed from a first web page to a second web page; wherein the forwarding of the association information causes an association of the second instance of the user interface to be changed from the first web page to the second web page. 8. The method of claim 1 , wherein receiving the request comprises: receiving a plurality of requests from the tooling process of the tooling application at the wrapped execution engine, the plurality of requests specifying a tooling operation to be performed with regard to the targeted application; and wherein performing the operation comprises: aggregating a plurality of responses that corresponds to the plurality of respective requests at the wrapped execution engine to provide a single response; and sending the single response by the wrapped execution engine to the tooling process via the document object model. 9. The method of claim 1 , further comprising: causing a tooling user interface, which enables a user to access tooling functionality of the tooling process of the tooling application for performing tooling operations with regard to the targeted application, to be moved from a secondary position behind a different user interface to a primary position in front of the different user interface based on occurrence of a designated event with regard to the targeted application, the different user interface being used by the tooling process to provide a visual representation that corresponds to the targeted application; wherein causing the tooling process to be moved comprises: providing a notification by the wrapped execution engine to the tooling process, the notification specifying that the designated event occurs with regard to the targeted application. 10. A system comprising: one or more processors; instantiation logic, implemented using at least one of the one or more processors, configured to instantiate a dynamic language execution engine in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running; and execution logic, implemented using at least one of the one or more processors, configured to execute the wrapped execution engine, the wrapped execution engine configured to provide information regarding execution of a targeted application of the host process to a tooling application, the wrapped execution engine being isolated from other execution engines that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine, the targeted application including one or more of the other execution engines, the wrapped execution engine further configured to receive a request from a tooling process of the tooling application, the request specifying a tooling operation to be performed with regard to the targeted application. 11. The system of claim 10 , wherein the instantiation logic is configured to instantiate the dynamic language execution engine in the wrapper object that is hosted in the host process while the host process is running on a first machine; and wherein the wrapped execution engine is configured to provide the information regarding the execution of the targeted application of the host process to the tooling application running on a second machine that is different from the first machine. 12. The system of claim 10 , wherein the execution logic is configured to run the wrapped execution engine in an environment of the targeted application without the environment being modified to accommodate the wrapped execution engine. 13. The system of claim 10 , wherein the execution logic is configured to run the wrapped execution engine on a thread on which the other execution engines run. 14. The system of claim 10 , further comprising: second instantiation logic configured to instantiate a second dynamic language execution engine in a second wrapper object that is hosted in the tooling application to provide a second wrapped execution engine while the tooling application is running; wherein the second wrapped execution engine is configured to perform operations based on information that is received at the second wrapped execution engine from the tooling application. 15. The system of claim 10 , further comprising: second instantiation logic configured to instantiate a second dynamic language execution engine in a second wrapper object that is hosted in the tooling application to provide a second wrapped execution engine while the tooling application is running; wherein the second wrapped execution engine is configured to call into the tooling application to cause the tooling application to perform operations. 16. The system of claim 10 , f

Assignees

Inventors

Classifications

  • G06F11/362Primary

    Debugging of software · CPC title

  • G06F11/36Primary

    Prevention of errors by analysis, debugging or testing of software · CPC title

  • Isolation or security of virtual machine instances · CPC title

  • Arrangements for program control, e.g. control units (program control for peripheral devices G06F13/10) · CPC title

  • Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity · 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 US9665463B2 cover?
Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution eng…
Who is the assignee on this patent?
Anderson Benjamin J, Fanning Michael C, Rice Timothy S, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F11/362. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 30 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).