IP Library Granted Patent US 10,585,911
Granted Patent B1
US 10,585,911 · App. 15/395,878 · Granted Mar 10, 2020

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: VCE IP Holding Company LLC
G06F16/258G06F16/2425G06F17/271G06F17/274
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 10,585,911
App. No.
15/395,878
Granted
Mar 10, 2020
Kind
B1
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 (62)

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;

requesting, from a grammar module registry, information about a grammar module that supports the portion, wherein the grammar module registry accesses registry data about a plurality of grammar modules and selects one or more appropriate grammar modules using the registry data;

receiving, from the grammar module registry, an endpoint identifier for communicating with the grammar module executing at an endpoint device, wherein the endpoint identifier includes a network address associated with the endpoint device, wherein the command engine uses the network address to send to the grammar module a grammar processing request associated with the portion in the free-form information that is unsupported by a command engine;

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 wherein requesting, from the grammar module registry, information about the grammar module that supports the portion comprises:

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

determining whether the grammar module supports the portion;

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

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

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

5. The method of claim 1 comprising:

prior to converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command:

sending at least some of the free-form information to one or more grammar modules for requesting assistance with processing the portion; and

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

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;

requesting, from a grammar module registry, information about a grammar module that supports the portion, wherein the grammar module registry accesses registry data about a plurality of grammar modules and selects one or more appropriate grammar modules using the registry data;

receiving, from the grammar module registry, an endpoint identifier for communicating with the grammar module executing at an endpoint device, wherein the endpoint identifier includes a network address associated with the endpoint device, wherein the command engine uses the network address to send to the grammar module a grammar processing request associated with the portion in the free-form information that is unsupported by a command engine;

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; 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:

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

determining whether the grammar module supports the portion;

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

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

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

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

prior to converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command:

sending at least some of the free-form information to one or more grammar modules for requesting assistance with processing the portion; and

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

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;

requesting, from a grammar module registry, information about a grammar module that supports the portion, wherein the grammar module registry accesses registry data about a plurality of grammar modules and selects one or more appropriate grammar modules using the registry data;

receiving, from the grammar module registry, an endpoint identifier for communicating with the grammar module executing at an endpoint device, wherein the endpoint identifier includes a network address associated with the endpoint device, wherein the command engine uses the network address to send to the grammar module a grammar processing request associated with the portion in the free-form information that is unsupported by a command engine;

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; 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 wherein requesting, from the grammar module registry, information about the grammar module that supports the portion comprises:

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

determining whether the grammar module supports the portion;

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

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

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

17. 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:

prior to converting, using the grammar module that supports the portion, the free-form information into the at least one compatible command:

sending at least some of the free-form information to one or more grammar modules for requesting assistance with processing the portion; and

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

Assignments (5)
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 →
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 →
MERGER Recorded Mar 26, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052236/0497 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2017
From: BOURNE, GEOFFREY DAVID; HAYWARD, JEFFERY JON; STREETE, JONATHAN PETER
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 041437/0129 →