IP Library Granted Patent US 11,507,591
Granted Patent B2
US 11,507,591 · App. 16/775,802 · Granted Nov 22, 2022

Methods, systems, and computer readable mediums for command engine execution

Inventors: Geoffrey David Bourne (Allen, TX); Jeffery Jon Hayward (Lucas, TX); Jonathan Peter Streete (San Jose, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/258G06F16/2425G06F40/211G06F40/253
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,507,591
App. No.
16/775,802
Granted
Nov 22, 2022
Kind
B2
Abstract

Methods, systems, and computer readable mediums for command engine execution are disclosed. One method for command engine execution includes receiving free-form information for requesting or modifying information about a computing system. The method also includes identifying a portion in the free-form information that is unsupported by a command engine. The method further includes converting, using a grammar module that supports the portion, the free-form information into at least one compatible command for interacting with at least one data set. The method also includes requesting or modifying the information about the computing system by interacting with the at least one data set using the at least one compatible command.

Claims (68)

1. A method for command engine execution, the method comprising:

receiving free-form information for requesting or modifying information about a computing system;

identifying a portion in the free-form information that is unsupported by a command engine;

sending, via a broadcast or multicast network address, at least some of the free-form information to two or more grammar modules for requesting assistance with processing the portion, wherein each of the two or more grammar modules is configured to receive requests for assistance sent to the broadcast or multicast network address and to respond to the requests that it is capable of supporting;

receiving a response from the grammar module that supports the portion;

converting, using the grammar module that supports the portion, the free-form information into at least one compatible command for interacting with at least one data set; and

requesting or modifying the information about the computing system by interacting with the at least one data set using the at least one compatible command.

2. The method of claim 1 wherein converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command comprises generating a sequence of commands, wherein at least one command in the sequence of commands is configured to use results from a previous command in the sequence of commands.

3. The method of claim 1 comprising:

receiving second free-form information for requesting or modifying second information about the computing system;

identifying a second portion in the free-form information that is unsupported by the command engine;

requesting, from a grammar module registry, information about a second grammar module that supports the second portion; and

receiving, from the grammar module registry, an endpoint identifier for communicating with the second grammar module.

4. The method of claim 3 wherein requesting, from the grammar module registry, information about the second grammar module that supports the second portion comprises:

sending at least some of the second free-form information to the grammar module registry;

determining whether the second grammar module supports the second portion;

in response to determining that the second grammar module supports the second portion, determining whether usage requirements for utilizing the second grammar module are satisfied; and

in response to determining that the usage requirements are satisfied, sending the endpoint identifier for communicating with the second grammar module that supports the second portion and meets the usage requirements.

5. The method of claim 3 wherein the second grammar module registers with the grammar module registry by registering the second portion that is supported by the grammar module, a required parameter indicating an object or a value needed for supporting the second portion, a predicate indicating a condition to be satisfied before supporting the second portion, a filter indicating whether the second grammar module is usable, or the endpoint identifier for communicating with the second grammar module.

6. The method of claim 1 wherein converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command comprises:

sending, to the grammar module, at least the portion of the free-form information; and

receiving, from the grammar module, a valid portion of the at least one compatible command.

7. A system for command engine execution, the system comprising:

a processor; and

a command engine implemented using the processor, wherein the command engine is configured for:

receiving free-form information for requesting or modifying information about a computing system;

identifying a portion in the free-form information that is unsupported by a command engine;

sending, via a broadcast or multicast network address, at least some of the free-form information to two or more grammar modules for requesting assistance with processing the portion, wherein each of the two or more grammar modules is configured to receive requests for assistance sent to the broadcast or multicast network address and to respond to the requests that it is capable of supporting;

receiving a response from the grammar module that supports the portion;

converting, using the grammar module that supports the portion, the free-form information into at least one compatible command for interacting with at least one data set; and

requesting or modifying the information about the computing system by interacting with the at least one data set using the at least one compatible command.

8. The system of claim 7 wherein converting, using the grammar module, the free-form information into the at least one compatible command comprises generating a sequence of commands, wherein at least one command in the sequence of commands is configured to use results from a previous command in the sequence of commands.

9. The system of claim 7 wherein the command engine is further configured for:

receiving second free-form information for requesting or modifying second information about the computing system;

identifying a second portion in the free-form information that is unsupported by the command engine;

requesting, from a grammar module registry, information about a second grammar module that supports the second portion; and

receiving, from the grammar module registry, an endpoint identifier for communicating with the second grammar module.

10. The system of claim 9 wherein the command engine is further configured for:

sending at least some of the second free-form information to the grammar module registry;

determining whether the second grammar module supports the second portion;

in response to determining that the second grammar module supports the second portion, determining whether usage requirements for utilizing the second grammar module are satisfied; and

in response to determining that the usage requirements are satisfied, sending the endpoint identifier for communicating with the second grammar module that supports the second portion and meets the usage requirements.

11. The system of claim 9 wherein the second grammar module registers with the grammar module registry by registering the second portion that is supported by the grammar module, a required parameter indicating an object or a value needed for supporting the second portion, a predicate indicating a condition to be satisfied before supporting the second portion, a filter indicating whether the second grammar module is usable, or the endpoint identifier for communicating with the second grammar module.

12. The system of claim 7 wherein the command engine is further configured for:

sending, to the grammar module, at least the portion of the free-form information; and

receiving, from the grammar module, a valid portion of the at least one compatible command.

13. A non-transitory computer readable medium having stored thereon executable instructions which, when executed by at least one processor of a computer, cause the computer to perform steps comprising:

receiving free-form information for requesting or modifying information about a computing system;

identifying a portion in the free-form information that is unsupported by a command engine;

sending, via a broadcast or multicast network address, at least some of the free-form information to two or more grammar modules for requesting assistance with processing the portion, wherein each of the two or more grammar modules is configured to receive requests for assistance sent to the broadcast or multicast network address and to respond to the requests that it is capable of supporting;

receiving a response from the grammar module that supports the portion;

converting, using the grammar module that supports the portion, the free-form information into at least one compatible command for interacting with at least one data set; and

requesting or modifying the information about the computing system by interacting with the at least one data set using the at least one compatible command.

14. The non-transitory computer readable medium of claim 13 wherein converting, using the grammar module, the free-form information into the at least one compatible command comprises generating a sequence of commands, wherein at least one command in the sequence of commands is configured to use results from a previous command in the sequence of commands.

15. The non-transitory computer readable medium of claim 13 comprising further executable instructions which, when executed by at least one processor of a computer, cause the computer to perform further steps comprising:

receiving second free-form information for requesting or modifying second information about the computing system;

identifying a second portion in the free-form information that is unsupported by the command engine;

requesting, from a grammar module registry, information about a second grammar module that supports the second portion; and

receiving, from the grammar module registry, an endpoint identifier for communicating with the second grammar module.

16. The non-transitory computer readable medium of claim 15 wherein requesting, from the grammar module registry, information about the second grammar module that supports the second portion comprises:

sending at least some of the second free-form information to the grammar module registry;

determining whether the second grammar module supports the second portion;

in response to determining that the second grammar module supports the second portion, determining whether usage requirements for utilizing the second grammar module are satisfied; and

in response to determining that the usage requirements are satisfied, sending the endpoint identifier for communicating with the second grammar module that supports the second portion and meets the usage requirements.

17. The non-transitory computer readable medium of claim 15 wherein the second grammar module registers with the grammar module registry by registering the second portion that is supported by the grammar module, a required parameter indicating an object or a value needed for supporting the second portion, a predicate indicating a condition to be satisfied before supporting the second portion, a filter indicating whether the second grammar module is usable, or the endpoint identifier for communicating with the second grammar module.

18. The non-transitory computer readable medium of claim 13 wherein converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command comprises:

sending, to the grammar module, at least the portion of the free-form information; and

receiving, from the grammar module, a valid portion of the at least one compatible command.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
MERGER Recorded Oct 27, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054177/0462 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2020
From: BOURNE, GEOFFREY DAVID; HAYWARD, JEFFERY JON; STREETE, JONATHAN PETER
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 053089/0270 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
Continuity (2)
Continuation 15395878 · Dec 30, 2016
Related Publication 20200167363A1 · May 28, 2020