IP Library › Granted Patent US 9,015,465
Granted Patent B2
US 9,015,465 · App. 14/160,403 · Granted Apr 21, 2015

Systems and methods for metadata-driven command processor and structured program transfer protocol

Inventor: Douglas T. Migliori (Newport Coast, CA)
Assignee: Automatic Data Capture Technologies Group, Inc.
G06F9/4416G06F7/00G06F17/30G06F9/4401
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,015,465
App. No.
14/160,403
Granted
Apr 21, 2015
Kind
B2
Abstract

Systems and methods for facilitating on-demand delivery and processing of program(s) and program-compatible application(s) on a plurality of different machines. In an embodiment, a metadata-driven command processor on a machine sends a request for a booting program and application to an agent. In response to the request, the agent invokes a resource to generate a booting program dataset that defines the booting program and an application dataset that defines the application, generates a response dataset comprising two or more nested datasets, wherein the two or more nested datasets comprise at least the booting program dataset and the application dataset, and sends the response dataset to the metadata-driven command processor. The metadata-driven command processor copies the booting program dataset and the application dataset into a process dataset comprising two or more nested datasets, and processes the first process dataset to execute the booting program and application on the machine.

Claims (124)

1. A method for facilitating on-demand delivery and processing of one or more programs and program-compatible applications, the method comprising, using at least one hardware processor:

from a first metadata-driven command processor on a first machine, sending a first request dataset for a booting program and application to a first agent, wherein the first request dataset comprises an identification of a resource;

in response to the first request dataset, by the first agent,

invoking the identified resource to generate a booting program dataset that defines the booting program and an application dataset that defines the application,

generating a first response dataset, wherein the first response dataset comprises two or more nested datasets, wherein the two or more nested datasets comprise at least the booting program dataset and the application dataset, and

returning the first response dataset; and, by the first metadata-driven command processor,

receiving the first response dataset,

copying the booting program dataset and the application dataset from the first response dataset into a first process dataset comprising two or more nested datasets, wherein the application dataset that is copied into the first process dataset comprises a representation of a two-dimensional array of element values, and wherein each of two or more of the element values comprises a portion of source code for a user interface or event handler, and

processing the first process dataset to execute the booting program and the application on the first machine, wherein executing the application on the first machine comprises constructing the user interface or event handler using the portions of source code from the two or more element values,

wherein each of the first request dataset, as sent by the first metadata-driven command processor, the first response dataset, as returned by the first agent, the booting program dataset, the application dataset, and the first process dataset comprises a representation of a two-dimensional array of element values configured to be referenced by row and column indices, and

wherein each of the booting program dataset and the application dataset comprises at least one representation of a two-dimensional array of element values nested within an element of another representation of a two-dimensional array of element values.

2. The method of claim 1 , further comprising:

from the first metadata-driven command processor, sending a second request dataset for an additional program-compatible application to a second agent, wherein the second request dataset comprises an identification of a resource, and wherein the second agent is the same as or different than the first agent;

in response to the second request dataset, by the second agent,

invoking the resource identified in the second request dataset to generate an additional application dataset that defines the additional program-compatible application,

generating a second response dataset, wherein the second response dataset comprises one or more nested datasets, wherein the one or more nested datasets comprise the additional application dataset, and

returning the second response dataset; and,

by the first metadata-driven command processor,

receiving the second response dataset,

copying the additional application dataset from the second response dataset into the first process dataset, and

continuing to process the first process dataset on the first machine.

3. The method of claim 1 , further comprising:

from the first metadata-driven command processor, sending a second request dataset to execute a statement to a second agent, wherein the second request dataset comprises the statement and an identification of a resource, and wherein the second agent is the same as or different than the first agent;

in response to the second request dataset, by the second agent,

invoking the resource identified in the second request dataset to execute the statement,

receiving a resource response from the identified resource,

generating a second response dataset, wherein the second response dataset comprises a data dataset that defines the resource response, and

returning the second response dataset; and,

by the first metadata-driven command processor,

receiving the second response dataset,

copying the data dataset from the second response dataset into the first process dataset, and

continuing to process the first process dataset on the first machine.

4. The method of claim 1 , further comprising, by the first agent,

receiving a request dataset, initiated by a second metadata-driven command processor on a second machine, to send the first process dataset;

generating a second response dataset based on the first process dataset, wherein the second response dataset comprises two or more nested datasets that define a program, one or more program-compatible applications, and a current execution state of the one or more program-compatible applications; and

returning the second response dataset.

5. The method of claim 4 , further comprising, by the second metadata-driven command processor:

receiving the second response dataset;

copying the two or more nested datasets of the second response dataset into a second process dataset; and

processing the second process dataset to execute the program and the one or more program-compatible applications on the second machine, beginning from the current execution state.

6. The method of claim 1 , wherein one or both of the booting program dataset and the first metadata-driven command comprises one or more functions and one or more commands associated with each of the one or more functions.

7. The method of claim 6 , wherein processing the first process dataset comprises executing the one or more commands associated with at least one of the one or more functions.

8. The method of claim 7 , wherein each of the one or more commands performs one or more of calling a command, transferring dataset values, clearing dataset values, sending a request dataset, and receiving and processing a response dataset.

9. The method of claim 1 , wherein the first agent further processes a request dataset, and wherein processing a request dataset comprises one or more of:

loading a program and at least one program-compatible application;

loading one or more additional program-compatible applications;

executing one or more statements by invoking identified resources; and

transferring a loaded program, loaded one or more program-compatible applications, and a current execution state of the one or more program-compatible applications to a second metadata-driven command processor on a second machine over the at least one network.

10. The method of claim 6 , wherein the first metadata-driven command processor further processes an event, and wherein processing an event comprises receiving a machine event from the first machine and, in response to the machine event, calling one of the one or more functions in the nested datasets of the booting program dataset.

11. The method of claim 8 , wherein transferring dataset values comprises one or more of appending, updating, or deleting one or more rows in one or more nested datasets based on one or more current element values of another row in one or more nested datasets, and wherein the first metadata-driven command processor generates the request dataset and a current execution state of the application by transferring dataset values.

12. The method of claim 8 , wherein clearing dataset values comprises clearing values in a nested dataset of the application dataset.

13. The method of claim 8 , wherein sending a request dataset and receiving and processing a response dataset comprises invoking a local agent on the first machine to either process a request using a resource of the first machine, or send a request dataset to a remote agent on a second machine over the at least one network for processing and then receiving a response dataset.

14. The method of claim 1 , wherein the first agent and the resource are on the first machine.

15. The method of claim 1 , wherein the first agent and the resource are on a second machine that is different than the first machine, wherein sending the first request dataset to the first agent from the first metadata-driven command processor comprises communicating the first request dataset to the first agent via a second agent on the first machine, and wherein returning the first response dataset comprises communicating the first response dataset to the first metadata-driven command processor via the second agent on the first machine.

16. A system for facilitating on-demand delivery and processing of one or more programs and program-compatible applications, the system comprising:

a first machine comprising at least one hardware processor and a first metadata-driven command processor; and

a first agent;

wherein the first metadata-driven command processor initiates sending of a first request dataset for a booting program and application to the first agent, wherein the first request dataset comprises an identification of a resource;

wherein, in response to the first request dataset, the first agent

invokes the identified resource to generate a booting program dataset that defines the booting program and an application dataset that defines the application,

generates a first response dataset, wherein the first response dataset comprises two or more nested datasets, wherein the two or more nested datasets comprise at least the booting program dataset and the application dataset, and

returns the first response dataset;

wherein the first metadata-driven command processor

receives the first response dataset,

copies the booting program dataset and the application dataset from the first response dataset into a first process dataset comprising two or more nested datasets, and

processes the first process dataset to execute the booting program and the application on the first machine; and

wherein each of the first request dataset, the first response dataset, the booting program dataset, the application dataset, and the first process dataset comprises a representation of a two-dimensional array of element values configured to be referenced by row and column indices.

17. The system of claim 16 ,

wherein the first metadata-driven command processor initiates sending of a second request dataset for an additional program-compatible application to a second agent, wherein the second request dataset comprises an identification of a resource, and wherein the second agent is the same as or different than the first agent;

wherein, in response to the second request, the second agent

invokes the resource identified in the second request dataset to generate an additional application dataset that defines the additional program-compatible application,

generates a second response dataset, wherein the second response dataset comprises one or more nested datasets, wherein the one or more nested datasets comprise the additional application dataset, and

returns the second response dataset; and,

wherein the first metadata-driven command processor

receives the second response dataset,

copies the additional application dataset from the second response dataset into the first process dataset, and

continues to process the first process dataset on the first machine.

18. The system of claim 16 ,

wherein the first metadata-driven command processor initiates sending of a second request dataset to execute a statement to a second agent, wherein the second request dataset comprises the statement and an identification of a resource, and wherein the second agent is the same as or different than the first agent;

wherein, in response to the second request dataset, the second agent

invokes the resource identified in the second request dataset to execute the statement,

receives a resource response from the identified resource,

generates a second response dataset, wherein the second response dataset comprises a data dataset that defines the resource response, and

returns the second response dataset; and,

wherein the first metadata-driven command processor

receives the second response dataset,

copies the data dataset from the second response dataset into the first process dataset, and

continues to process the first process dataset on the first machine.

19. The system of claim 16 , wherein the agent further:

receives a request dataset, initiated by a second metadata-driven command processor on a second machine, to send the first process dataset;

generates a second response dataset based on the first process dataset, wherein the second response dataset comprises two or more nested datasets that define a program, one or more program-compatible applications, and a current execution state of the one or more program-compatible applications; and

returns the second response dataset.

20. The system of claim 19 , further comprising the second metadata-driven command processor, wherein the second metadata-driven command processor:

receives the second response dataset;

copies the two or more nested datasets of the second response dataset into a second process dataset; and

processes the second process dataset to execute the program and the one or more program-compatible applications on the second machine, beginning from the current execution state.

21. The system of claim 16 , wherein one or both of the booting program dataset and the first metadata-driven command processor comprises one or more functions and one or more commands associated with each of the one or more functions.

22. The system of claim 21 , wherein processing the first process dataset comprises executing the one or more commands associated with at least one of the one or more functions.

23. The system of claim 22 , wherein each of the one or more commands performs one or more of calling a command, transferring dataset values, clearing dataset values, sending a request dataset, and receiving and processing a response dataset.

24. The system of claim 16 , wherein the first agent further processes a request dataset, and wherein processing a request dataset comprises one or more of:

loading a program and at least one program-compatible application;

loading one or more additional program-compatible applications;

executing one or more statements by invoking identified resources; and

transferring a loaded program, loaded one or more program-compatible applications, and a current execution state of the one or more program-compatible applications to a second metadata-driven command processor on a second machine over the at least one network.

25. The system of claim 21 , wherein the first metadata-driven command processor further processes an event, and wherein processing an event comprises receiving a machine event from the first machine and, in response to the machine event, calling one of the one or more functions in the nested datasets of the booting program dataset.

26. The system of claim 23 , wherein transferring dataset values comprises one or more of appending, updating, or deleting one or more rows in one or more nested datasets based on one or more current element values of another row in one or more nested datasets, and wherein the first metadata-driven command processor generates the request dataset and a current execution state of the application by transferring dataset values.

27. The system of claim 23 , wherein clearing dataset values comprises clearing values in a nested dataset within the application dataset.

28. The system of claim 23 , wherein sending a request dataset and receiving and processing a response dataset comprises invoking a local agent on the first machine to either process a request using a resource of the first machine, or send a request dataset to a remote agent on a second machine over the at least one network for processing and then receiving a response dataset.

29. The system of claim 16 , wherein the first agent and the resource are on a second machine that is different than the first machine, wherein sending the first request dataset to the first agent from the first metadata-driven command processor comprises communicating the first request dataset to the first agent via a second agent on the first machine, and wherein returning the first response dataset comprises communicating the first response dataset to the first metadata-driven command processor via the second agent on the first machine.

30. A non-transitory computer-readable medium having stored thereon:

a first metadata-driven command processor comprising a first set of instructions; and

an agent comprising a second set of instructions;

wherein the first metadata-driven command processor initiates sending of a first request dataset for a booting program and application to the first agent, wherein the first request dataset comprises an identification of a resource;

wherein, in response to the first request dataset, the first agent

invokes the identified resource to generate a booting program dataset that defines the booting program and an application dataset that defines the application,

generates a first response dataset, wherein the first response dataset comprises two or more nested datasets, wherein the two or more nested datasets comprise at least the booting program dataset and the application dataset, and

returns the first response dataset;

wherein the first metadata-driven command processor

receives the first response dataset,

copies the booting program dataset and the application dataset from the first response dataset into a first process dataset comprising two or more nested datasets, and

processes the first process dataset to execute the booting program and the application on the first machine,

wherein the first metadata-driven command processor is configured to, in response to an event or further response dataset, construct a further request dataset by appending, updating, or deleting one or more rows in one or more nested datasets within the process dataset and the further request dataset based on element values in the booting program dataset that include command codes and column and row indices referencing one or more nested datasets within the process dataset and the further request dataset, and also based on element values in the application dataset that include agent and resource identifiers and statement components, wherein the constructed further request dataset comprises an identification of an agent, an identification of a resource, and a statement that is executed by the identified resource to construct a user interface, query or modify a database, or control a machine; and

wherein each of the first request dataset, the first response dataset, the booting program dataset, the application dataset, and the first process dataset comprises a representation of a two-dimensional array of element values configured to be referenced by row and column indices, and

wherein each of the booting program dataset and the application dataset comprises at least one representation of a two-dimensional array of element values nested within an element of another representation of a two-dimensional array of element values.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2016
From: AUTOMATIC DATA CAPTURE TECHNOLOGIES GROUP, INC.
To: MIGLIORI, DOUGLAS T.
Reel/Frame 039936/0992 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2014
From: MIGLIORI, DOUGLAS T.
To: AUTOMATIC DATA CAPTURE TECHNOLOGIES GROUP, INC.
Reel/Frame 032101/0015 →
Continuity (4)
Continuation 13830249 · Mar 14, 2013
Provisional Application 61762779 · Feb 8, 2013
Provisional Application 61783362 · Mar 14, 2013
Related Publication 20140229726A1 · Aug 14, 2014