IP Library › Granted Patent US 11,249,803
Granted Patent B2
US 11,249,803 · App. 16/809,154 · Granted Feb 15, 2022

Usecase specification and runtime execution

Inventors: Yi Yang (Princeton, NJ); Kunal Rao (Monroe, NJ); Srimat Chakradhar (Manalapan, NJ); Giuseppe Coviello (Princeton, NJ); Min Feng (Monmouth Junction, NJ); Murugan Sankaradas (Dayton, NJ)
G06F9/4887G06F9/46G06F9/461G06F9/48G06F9/485G06F9/4806G06F9/4843G06F9/4881
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 11,249,803
App. No.
16/809,154
Granted
Feb 15, 2022
Kind
B2
Abstract

A computer-implemented method includes obtaining a usecase specification and a usecase runtime specification corresponding to the usecase. The usecase includes a plurality of applications each being associated with a micro-service providing a corresponding functionality within the usecase for performing a task. The method further includes determining that at least one instance of the at least one of the plurality of applications can be reused during execution of the usecase based on the usecase specification and the usecase runtime specification, and reusing the at least one instance during execution of the usecase.

Claims (85)

1. A computer-implemented method comprising:

obtaining a usecase specification and a usecase runtime specification corresponding to the usecase, the usecase including a plurality of applications each being associated with a micro-service providing a corresponding functionality within the usecase for performing a task;

determining that at least one instance of the at least one of the plurality of applications can be reused during execution of the usecase based on the usecase specification and the usecase runtime specification;

reusing the at least one instance during execution of the usecase;

managing execution of the usecase within a runtime system to perform the task based on the usecase specification and the usecase runtime specification, including:

building the usecase by combining the plurality of applications, including setting up connections between usecase child instances corresponding to the plurality of applications;

executing the usecase, including executing the usecase child instances to provide the micro-services;

setting up a handler for terminating execution of the usecase;

determining that the usecase should be stopped after a predetermined time interval based on a signal received by the handler; and

stopping the usecase; and

obtaining the usecase child instances, including:

loading child instances and connections between the child instances in-memory, the connections between child instances being set up based on spawn type;

determining that all the usecase child instances are not present in-memory;

generating one or more child instances that are not present in-memory based on spawn type;

wherein determining that the usecase should be stopped after a predetermined time interval further includes:

putting the runtime system to sleep for the predetermined time interval; and

determining that the handler has received the signal to stop the usecase after the runtime system wakes up.

2. The method of claim 1 , wherein:

obtaining the usecase specification further includes specifying the usecase by specifying:

data associated with the usecase, the data associated with the usecase including a usecase identifier, a usecase name and usecase metadata;

application dependencies and application instances; and

instance connections; and

obtaining the usecase runtime specification further includes specifying usecase execution by specifying:

the usecase identifier;

an instance name;

a usecase node/machine; and

a usecase configuration.

3. The method of claim 1 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that an instance configuration from the specifications matches at least one existing instance of the plurality of applications.

4. The method of claim 1 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that the instance configuration and an instance node/machine configuration from the specifications matches at least one existing instance of the plurality of applications.

5. The method of claim 1 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that the at least one instance of the at least one application already exists.

6. The method of claim 1 , wherein managing execution of the usecase further includes, in response to execution of the usecase abruptly failing, resuming operation by reusing previously existing child instances.

7. A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method comprising:

obtaining a usecase specification and a usecase runtime specification corresponding to the usecase, the usecase including a plurality of applications each being associated with a micro-service providing a corresponding functionality within the usecase for performing a task;

determining that at least one instance of the at least one of the plurality of applications can be reused during execution of the usecase based on the usecase specification and the usecase runtime specification;

reusing the at least one instance during execution of the usecase;

managing execution of the usecase within a runtime system to perform the task based on the usecase specification and the usecase runtime specification, including:

building the usecase by combining the plurality of applications, including setting up connections between usecase child instances corresponding to the plurality of applications;

executing the usecase, including executing the usecase child instances to provide the micro-services;

setting up a handler for terminating execution of the usecase;

determining that the usecase should be stopped after a predetermined time interval based on a signal received by the handler; and

stopping the usecase; and

obtaining the usecase child instances, including:

loading child instances and connections between the child instances in-memory, the connections between child instances being set up based on spawn type;

determining that all the usecase child instances are not present in-memory; and

generating one or more child instances that are not present in-memory based on spawn type;

wherein determining that the usecase should be stopped after a predetermined time interval further includes:

putting the runtime system to sleep for the predetermined time interval; and

determining that the handler has received the signal to stop the usecase after the runtime system wakes up.

8. The computer program product of claim 7 , wherein:

obtaining the usecase specification further includes specifying the usecase by specifying:

data associated with the usecase, the data associated with the usecase including a usecase identifier, a usecase name and usecase metadata;

application dependencies and application instances; and

instance connections; and

obtaining the usecase runtime specification further includes specifying usecase execution by specifying:

the usecase identifier;

an instance name;

a usecase node/machine; and

a usecase configuration.

9. The computer program product of claim 7 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that an instance configuration from the specifications matches at least one existing instance of the plurality of applications.

10. The computer program product of claim 7 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that the instance configuration and an instance node/machine configuration from the specifications matches at least one existing instance of the plurality of applications.

11. The computer program product of claim 7 , wherein determining that the at least one instance that can be reused during execution of the usecase further includes determining that the at least one instance of the at least one application already exists.

12. The computer program product of claim 7 , wherein managing execution of the usecase further includes, in response to execution of the usecase abruptly failing, resuming operation by reusing previously existing child instances.

13. A system comprising:

a memory device for storing program code; and

at least one processor device operatively coupled to a memory device and configured to execute program code stored on the memory device to:

obtain a usecase specification and a usecase runtime specification corresponding to the usecase, the usecase including a plurality of applications each being associated with a micro-service providing a corresponding functionality within the usecase for performing a task;

determine that at least one instance of the at least one of the plurality of applications can be reused during execution of the usecase based on the usecase specification and the usecase runtime specification; and

reuse the at least one instance during execution of the usecase;

wherein the at least one processing device is further configured to execute program code stored on the memory device to managing execution of the usecase within a runtime system to perform the task based on the usecase specification and the usecase runtime specification by:

building the usecase by combining the plurality of applications, including setting up connections between usecase child instances corresponding to the plurality of applications;

executing the usecase, including executing the usecase child instances to provide the micro-services;

setting up a handler for terminating execution of the usecase;

determining that the usecase should be stopped after a predetermined time interval based on a signal received by the handler, including putting the runtime system to sleep for the predetermined time interval, and determining that the handler has received the signal to stop the usecase after the runtime system wakes up; and

stopping the usecase.

14. The system of claim 13 , wherein the at least one processor device is further configured to:

obtain the usecase specification by specifying:

data associated with the usecase, the data associated with the usecase including a usecase identifier, a usecase name and usecase metadata;

application dependencies and application instances; and

instance connections; and

obtain the usecase runtime specification by specifying:

the usecase identifier;

an instance name;

a usecase node/machine; and

a usecase configuration.

15. The system of claim 13 , wherein the at least one processor device is further configured to manage execution of the usecase by, in response to execution of the usecase abruptly failing, resuming operation by reusing previously existing child instances.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2021
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 058367/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2020
From: YANG, YI; RAO, KUNAL; CHAKRADHAR, SRIMAT; COVIELLO, GIUSEPPE; FENG, MIN; SANKARADAS, MURUGAN
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 052015/0833 →
Continuity (2)
Provisional Application 62816427 · Mar 11, 2019
Related Publication 20200293371A1 · Sep 17, 2020