IP Library Granted Patent US 9,417,895
Granted Patent B2
US 9,417,895 · App. 12/138,598 · Granted Aug 16, 2016

Concurrent execution of a first instance and a cloned instance of an application

Inventors: Tigran Safari (Fort Lee, NJ); Selvin Sawyers (Piscataway, NJ); Soubir Acharya (Pleasantville, NY); Shinichi Urano (River Edge, NJ)
Assignee: Kubisys Inc.
G06F9/455G06F9/45533G06F11/1433G06F11/302G06F11/3696H04L41/00H04L41/50H04L67/16G06F11/1471
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,417,895
App. No.
12/138,598
Granted
Aug 16, 2016
Kind
B2
Abstract

A cloned instance of an application is executed in a computing environment. The cloned instance and a first instance of the application execute concurrently and access shared data. In some examples, testing of the cloned instance includes interacting with the cloned instance to cause a result without interacting with the first instance, and monitoring the result.

Claims (32)

1. A non-transitory machine-readable storage medium that stores a computer program for testing a computer application having a first instance executing in a computing environment, the computer program including executable instructions to cause a machine to:

execute a cloned instance of the application concurrently with execution of the first instance of the application, wherein executing the cloned instance includes interacting with the computing environment through a communication layer that modifies inbound and outbound communications to and from the cloned instance, said interacting including accessing data in a storage element of the computing environment, the storage element being shared with the first instance;

interact with the cloned instance to cause a result without interacting with the first instance through a storage system layer that: (1) provides a duplicated computing environment that provides the cloned instance a view of data in the storage element relied upon by the first instance of the application, and (2) reconciles the duplicated computing environment with the computing environment in which the first instance is executing by removing data only relevant to incomplete events from a time-fixed data image based on state information associated with filtered write operations of data relied upon by the cloned instance of the application; and

monitor the result.

2. The machine-readable storage medium of claim 1 , wherein the storage element stores the data relied upon by the cloned instance of the application and stores the data relied upon by the first instance of the application, and the instructions to interact with the cloned instance of the application comprise instructions to:

alter the data relied upon by the cloned instance of the application, by the storage layer, without altering the data relied upon by the first instance of the application.

3. The machine-readable storage medium of claim 1 , wherein the instructions to interact with the cloned instance of the application comprise instructions to:

cause the cloned instance of the application to process input.

4. The machine-readable storage medium of claim 1 , wherein the instructions to interact with the cloned instance of the application comprise instructions to:

perform one or more interactions specified in a workflow.

5. The machine-readable storage medium of claim 4 , wherein the workflow comprises a sequence of task specifications, each task specification comprising either a single task or a set of tasks to be executed in parallel.

6. The machine-readable storage medium of claim 4 , wherein the workflow is recorded in an Extensible Markup Language (XML) format.

7. The machine-readable storage medium of claim 1 , wherein the communication layer masks communication between the first instance of the application and the cloned instance of the application.

8. The machine-readable storage medium of claim 1 , wherein modifying the inbound and outbound communications to and from the cloned instance includes modifying addresses or names in the inbound and outbound communications.

9. The machine-readable storage medium of claim 1 , wherein modifying the inbound and outbound communications to and from the cloned instance includes maintaining isolation between the first instance of the application and the cloned instance of the application.

10. The machine-readable storage medium of claim 1 , wherein the communication layer limits usage demand on the computing environment in which the first instance is executing by throttling requests.

11. The machine-readable storage medium of claim 1 , wherein the communication layer provides at least one virtual network to enable communication between multiple cloned instances executing in the duplicated computing environment.

12. A computer-implemented method of testing a computer application having a first instance executing in a computing environment, the method comprising:

executing a cloned instance of the application concurrently with execution of the first instance of the application, wherein executing the cloned instance includes interacting with the computing environment through a communication layer that modifies inbound and outbound communications to and from the cloned instance, said interacting including accessing data in a storage element of the computing environment, the storage element being shared with the first instance;

interacting with the cloned instance to cause a result without interacting with the first instance through a storage system layer that: (1) provides a duplicated computing environment that provides the cloned instance a view of data in the storage element relied upon by the first instance of the application, and (2) reconciles the duplicated computing environment with the computing environment in which the first instance is executing by removing data only relevant to incomplete events from a time-fixed data image based on state information associated with filtered write operations of data relied upon by the cloned instance of the application; and

monitoring the result.

13. The method of claim 12 , wherein the storage element stores the data relied upon by the cloned instance of the application and stores the data relied upon by the first instance of the application, and interacting with the cloned instance of the application comprises:

executing instructions by the storage system layer to alter the data relied upon by the cloned instance of the application without altering the data relied upon by the first instance of the application.

14. The method of claim 12 , wherein interacting with the cloned instance of the application comprises causing the cloned instance of the application to process input.

15. The method of claim 12 , wherein interacting with the cloned instance of the application comprises performing one or more interactions specified in a workflow.

16. The method of claim 15 , wherein the workflow comprises a sequence of task specifications, each task specification comprising either a single task or a set of tasks to be executed in parallel.

17. The method of claim 15 , wherein the workflow is recorded in an Extensible Markup Language (XML) format.

18. The method of claim 12 , wherein the communication layer masks communication between the first instance of the application and the cloned instance of the application.

19. The method of claim 12 , wherein modifying the inbound and outbound communications to and from the cloned instance includes modifying addresses or names in the inbound and outbound communications.

20. The method of claim 12 , wherein modifying the inbound and outbound communications to and from the cloned instance includes maintaining isolation between the first instance of the application and the cloned instance of the application.

21. The method of claim 12 , wherein the communication layer limits usage demand on the computing environment in which the first instance is executing by throttling requests.

22. The method of claim 12 , wherein the communication layer provides at least one virtual network to enable communication between multiple cloned instances executing in the duplicated computing environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2009
From: SAFARI, TIGRAN; SAWYERS, SELVIN; ACHARYA, SOUBIR; URANO, SHINICHI
To: KUBISYS INC.
Reel/Frame 022330/0303 →
Continuity (2)
Provisional Application 60999661 · Oct 19, 2007
Related Publication 20090150885A1 · Jun 11, 2009