Synchronization of controlled device state using state table and eventing in data-driven remote device control model
DC CAFCFirst Claim
1. A distributed computing network having at least one computing device, the distributed computing network comprising:
- a controlled computing device;
a state table maintained by the controlled computing device and representing an operational state of the controlled computing device;
a user controller device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device to effect a change in the operational state of the controlled computing device represented in the state table;
a user control point module in the user controller device operating to obtain a copy of the state table of the user controller device and subscribe to change notifications of the state table; and
an event source module in the controlled computing device operating according to an eventing model to distribute the change notifications to any subscribing user controller device upon a change to the state table representing the operational state of the controlled computing device, wherein the change notifications represent the respective change in the state table, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing user controller device.
6 Assignments
Litigations
7 Petitions
Reexamination
Accused Products
Abstract
Controlled devices according to a device control model maintain a state table representative of their operational state. Devices providing a user control point interface for the controlled device obtain the state table of the controlled device, and may also obtain presentation data defining a remoted user interface of the controlled device and device control protocol data defining commands and data messaging protocol to effect control of the controlled device. These user control devices also subscribe to notifications of state table changes, which are distributed from the controlled device according to an eventing model. Accordingly, upon any change to the controlled device'"'"'s operational state, the eventing model synchronizes the device'"'"'s state as represented in the state table across all user control devices.
754 Citations
22 Claims
-
1. A distributed computing network having at least one computing device, the distributed computing network comprising:
-
a controlled computing device;
a state table maintained by the controlled computing device and representing an operational state of the controlled computing device;
a user controller device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device to effect a change in the operational state of the controlled computing device represented in the state table;
a user control point module in the user controller device operating to obtain a copy of the state table of the user controller device and subscribe to change notifications of the state table; and
an event source module in the controlled computing device operating according to an eventing model to distribute the change notifications to any subscribing user controller device upon a change to the state table representing the operational state of the controlled computing device, wherein the change notifications represent the respective change in the state table, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing user controller device. - View Dependent Claims (2, 3, 4, 5, 6)
the state table having a plurality of entries, wherein each entry of the state table comprises at least a variable identifier, a type and a current value;
at least one entry of the state table being of a type of data buffer, and containing a file as its current value;
whereby a change to the current value of said at least one entry effects a file transfer from the controlled device to said any subscribing user control device.
-
-
3. The distributed computing network of claim 1 wherein the controlled computing device is an embedded computing device.
-
4. The distributed computing network of claim 1, further comprising a computer-readable medium controlled computing device having encoded thereon the state table representing the operational state of the controlled computing device, the state table comprising:
-
a plurality of entries, each entry comprising;
a variable identifier; and
a current value.
-
-
5. The distributed computing network of claim 4 wherein each entry of the state table further comprises:
-
a variable type;
a designation of legal values; and
a designation of a default value.
-
-
6. The distributed computing network of claim 5 wherein the variable type can include a data buffer containing a file, whereby transmission of the state table between devices effects transfer of the file.
-
7. In a distributed computing network having a controlled computing device, a state table maintained by the controlled computing device and representing an operational state of the controlled computing device, a user controller device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device and communicating with the controlled computing device via a device control protocol to effect remote operational control of the controlled computing device, a user control point module in the user controller device operating to obtain the state table of the user controller device and subscribe to change notifications of the state table, and an event source module operating according to an eventing model to distribute the change notifications to any subscribing user controller device upon a change to the operational state of the controlled computing device, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing user controller device, a method of maintaining data representing a current state of the controlled computing device at the user controller device, the method comprising:
-
responsive to a controlled device state subscription request of the user controller device per a subscription eventing model, distributing an initial controlled computing device state event having a predefined initial sequence number and data defining a present state of the controlled computing device to the user controller device;
upon changes in the controlled device state, distributing controlled computing device state update events having sequence numbers assigned according to a sequential order following the predefined initial sequence number and data defining said changes to the user controller device; and
in response to a renewed controlled device state subscription request, recommencing distributing the initial controlled computing device state event and controlled computing device state update events to the user controller device so as to permit the user controller device to reinitialize to the controlled computing device'"'"'s present state upon failure to receive the controlled computing device state update events in sequential order of their assigned sequence numbers. - View Dependent Claims (8, 9, 10)
-
-
11. In a distributed computing network having a controlled computing device, a state table maintained by the controlled computing device and representing an operational state of the controlled computing device, a user controller device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device and communicating with the controlled computing device via a device control protocol to effect remote operational control of the controlled computing device, a user control point module in the user controller device operating to obtain the state table of the user controller device and subscribe to change notifications of the state table, and an event source module operating according to an eventing model to distribute the change notifications to any subscribing user controller device upon a change to the operational state of the controlled computing device, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing user controller device, a method of maintaining data representing a current state of the controlled computing device at the controller computing device, the method comprising:
-
sending from the user controller device a state subscription request conforming to a subscription eventing model by which the controlled computing device distributes sequentially numbered state events to subscribing devices commencing with an initial state event that conveys a full data representation of a state of the controlled computing device and continuing with state update events that convey partial updates of the controlled computing device state;
upon receiving the initial state event, initializing storage at the user controller device of a representation of the controlled computing device'"'"'s state with the full data representation in the initial state event;
upon receiving state update events, updating the storage with the partial updates; and
upon a failure to receive a state update event in accordance with their sequential numbering, repeating the actions of sending the state subscription request, initializing the storage and updating the storage. - View Dependent Claims (12, 13, 14, 15, 16)
producing a user control interface display at the user controller device based at least in part on the representation of the controlled computing device'"'"'s state in the storage.
-
-
15. The method of claim 11 further comprising:
sending from the user controller device a control command for an operation of the controlled computing device depending at least in part on the representation of the controlled computing device'"'"'s state in the storage.
-
16. A user controller device operational in accordance with the method of claim 11.
-
17. A computer readable software carrying medium having computer software carried thereon for implementing a peer networking control protocol for a plurality of control point computing devices in a distributed data communications network to effect control of a controlled computing device, the distributed data communications network having the controlled computing device, a state table maintained by the controlled computing device and representing an operational state of the controlled computing device, a control point computing device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device and communicating with the controlled computing device via a device control protocol to effect remote operational control of the controlled computing device, a user control point module in the control point computing device operating to obtain the state table of the control point computing device and subscribe to change notifications of the state table, and an event source module operating according to an eventing model to distribute the change notifications to any subscribing control point computing device upon a change to the operational state of the controlled computing device, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing control point computing device, the computer software comprising:
-
a subscription registration program module operative when executed on the controlled computing device to register, in response to a subscription request of the control point computing device, such device as a subscribing control point computing device to receive state events from the controlled computing device;
a state eventing program module operative when executed on the controlled computing device to distribute state events to the subscribing control point computing device, and further operative to assign sequence numbers to the state events in sequential order, the state events commencing with an initial state event having data for initializing a controlled computing device state table stored at the subscribing control point computing device to reflect a then present state of the controlled computing device, the state events continuing with state update events having data for updating the controlled computing device state table to reflect a changed state of the controlled computing device; and
the subscription registration program module further operative in response to a renewed subscription request of the subscribing control point device to cause the state eventing program module to recommence distributing a further sequence of initial state event and state update events to the subscribing control point computing device so as to permit the subscribing computing device to reinitialize its stored controlled computing device state table after failure to receive the state update events in sequence.
-
-
18. A computer readable software carrying medium having computer software carried thereon for implementing a peer networking control protocol for a plurality of control point computing devices in a data communications network to effect control of a controlled computing device, the data communications network having the controlled computing device, a state table maintained by the controlled computing device and representing an operational state of the controlled computing device, a control point computing device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device and communicating with the controlled computing device via a device control protocol to effect remote operational control of the controlled computing device, a user control point module in the control point computing device operating to obtain the state table of the control point computing device and subscribe to change notifications of the state table, and an event source module operating according to an eventing model to distribute the change notifications to any subscribing control point computing device upon a change to the operational state of the controlled computing device, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing control point computing device, the computer software comprising:
-
a state subscriber program module operative when executed on a control point computing device to communicate from the control point computing device a state subscription request conforming to a subscription eventing model of the peer networking control protocol by which the controlled computing device distributes sequentially numbered state events to subscribing devices commencing with an initial state event that conveys a full data representation of a state of the controlled computing device and continuing with state update events that convey partial updates of the controlled computing device state;
a controlled device state storage initialization program module operative when executed on the control point computing device to in response to the initial state event to initialize storage at the control point computing device of a data structure representation of the controlled computing device'"'"'s state according to the full data representation in the initial state event;
a controlled device state update program module operative when executed on the control point computing device to in response to the state update events to update the data structure representation in the storage according to the partial updates in the state update events; and
a sequence validation program module operative when executed on the control point computing device to detect a failure to receive any of the state events as per their sequential numbering, and operative upon detecting such failure to cause the state subscriber program module to communicate a renewal state subscription request from the control point computing device so as to re-commence distribution of sequentially numbered state events with a renewed initial state event from the controlled computing device in conformance with the subscription eventing model and thereby effect re-initialization of the data structure representation by the controlled device state storage initialization program module. - View Dependent Claims (19)
a user control interface display program module operative when executed on the control point computing device to display a user control interface display at the control point computing device based at least in part on the stored data structure representation of the controlled computing device'"'"'s state.
-
-
20. A peer networking state eventing and control protocol method for effecting state-concurrent multi-master control of a controlled computing device by a plurality of control point computing devices communicating on a data communications network, the data communications network having the controlled computing device, a state table maintained by the controlled computing device and representing an operational state of the controlled computing device, a control point computing device having user input/output capability for presenting a user perceptible device control interface for remote user interaction with the controlled computing device and communicating with the controlled computing device via a device control protocol to effect remote operational control of the controlled computing device, a user control point module in the control point computing device operating to obtain the state table of the control point computing device and subscribe to change notifications of the state table, and an event source module operating according to an eventing model to distribute the change notifications to any subscribing control point computing device upon a change to the operational state of the controlled computing device, so as to thereby synchronize the user perceptible device control interface with the changed operational state among said any subscribing control point computing device, the method comprising:
-
from a plurality of the control point computing devices, receiving state eventing subscription requests;
responsive to the state eventing subscription requests, registering subscriptions of the respective control point computing devices to state events from the controlled computing device;
communicating state events having information descriptive of a state of the controlled computing device to the respective control point computing devices of the registered subscriptions;
receiving a control command from a control point computing device instructing the controlled computing device to perform a specified operation affecting the state of the controlled computing device;
responsive to the control command, performing the specified operation; and
communicating further state events having information descriptive of the state of the controlled computing device after the specified operation is performed to the respective control point computing devices of the registered subscriptions, whereby the plurality of control point computing devices having registered subscriptions can maintain concurrent storage of data representing the state of the controlled computing device. - View Dependent Claims (21, 22)
responsive to a state eventing subscription request of a control point computing device, communicating an initial state event having data defining a full data structure representation of the state of the controlled computing device upon registering the subscription of the control point computing device;
upon changes in the state of the controlled computing device, communicating state update events having data defining changes to the data structure representation of the state of the controlled computing device, wherein the initial state event and state update events have sequence numbers assigned in sequential order; and
in response to a renewed state eventing subscription request, repeating the communicating of initial state event and state update events, whereby the control point computing device can reinitialize storage of the data structure representation of the state of the controlled computing device after failure to receive the state update events in sequential order of their assigned sequence numbers.
-
-
22. The peer networking state eventing and control protocol method of claim 20 further comprising assigning the sequence number of the initial state event and state update events commencing with a predefined sequence number for the initial state event.
Specification