Method and system for file deployment via dynamically assigned local relays
A method in a first client computing device among a plurality of client computing devices connected to a local area network (LAN) includes: receiving an update instruction from a device management subsystem external to the LAN; in response to receiving the update instruction, obtaining status data via the LAN for each of the client computing devices; based on the status data, determining whether to activate a controller operating mode at the first client computing device; in response to activating the controller operating mode, selecting, at the first client computing device, one of the plurality of client computing devices to operate in a local relay operating mode; instructing the selected client computing device to activate the local relay operating mode, for causing the selected client computing device to obtain an update file from the device management subsystem and to deploy the update file to the client computing devices via the LAN.
1 . A method in a first client computing device among a plurality of client computing devices connected to a local area network, the method comprising:
storing configuration data;
receiving an update instruction from a device management subsystem external to the local area network;
in response to receiving the update instruction,
determining that the first client computing device satisfies a first wave condition defined in the configuration data where the first wave condition is based on an attribute of an identifier of the first client computing device, and
obtaining status data via the local area network for each of the client computing devices;
based on the status data, determining whether to activate a controller operating mode at the first client computing device;
in response to activating the controller operating mode, selecting, at the first client computing device, one of the plurality of client computing devices to operate in a local relay operating mode;
instructing the selected client computing device to activate the local relay operating mode, for causing the selected client computing device to obtain an update file from the device management subsystem and to deploy the update file to the client computing devices via the local area network.
2 . The method of claim 1 , wherein the plurality of client computing devices each belong to a subnetwork of the local area network.
3 . The method of claim 1 , wherein the status data includes respective network identifiers for the plurality of client computing devices; and wherein determining whether to activate the controller operating mode includes:
determining that a local network identifier of the client computing device is smaller than each of the respective network identifiers.
4 . The method of claim 1 , further comprising:
obtaining the status data according to the configuration data.
5 . The method of claim 4 , further comprising: obtaining status data at a start time specified in the configuration data.
6 . The method of claim 4 , wherein the configuration data defines a time period for obtaining the status data; the method further comprising initiating the determination of whether to activate the controller operating mode after the time period has expired.
7 . The method of claim 1 , further comprising:
in response to instructing the selected client computing device to activate the local relay operating mode, activating a client operating mode at the first client computing device.
8 . The method of claim 7 , further comprising:
in response to activating the client operating mode, transmitting a search request for local relays;
receiving a message from the selected client computing device containing a network identifier of the update file at the selected client computing device; and
transmitting a transfer request to the selected client computing device for the update file.
9 . The method of claim 8 , further comprising: when no response to the transfer request is received, transmitting a further transfer request.
10 . The method of claim 8 , further comprising:
receiving the update file and storing the update file at the first client computing device.
11 . The method of claim 10 , further comprising:
in response to receiving the update file, determining whether to activate the local relay operating mode at the first client computing device.
12 . A computing device, comprising:
a communications interface configured to establish a connection to a local area network;
a memory storing configuration data; and
a processor configured to:
receive, via the communications interface, an update instruction from a device management subsystem external to the local area network;
in response to receiving the update instruction,
determine that the first client computing device satisfies a first wave condition defined in the configuration data where the first wave condition is based on an attribute of an identifier of the first client computing device, and
obtain status data from a plurality of client computing devices connected to the local area network;
based on the status data, determine whether to activate a controller operating mode at a first client computing device;
in response to activating the controller operating mode, select one of the plurality of client computing devices to operate in a local relay operating mode;
instruct the selected client computing device to activate the local relay operating mode, for causing the selected client computing device to obtain an update file from the device management subsystem and to deploy the update file to the client computing devices via the local area network.
13 . The computing device of claim 12 , wherein the plurality of client computing devices each belong to a subnetwork of the local area network.
14 . The computing device of claim 12 , wherein the status data includes respective network identifiers for the plurality of client computing devices; and wherein the processor is configured to determine whether to activate the controller operating mode by:
determining that a local network identifier of the client computing device is smaller than each of the respective network identifiers.
15 . The computing device of claim 12 , wherein the processor is configured to obtain the status data according to the configuration data.
16 . The computing device of claim 15 , wherein the processor is further configured to:
obtain status data at a start time specified in the configuration data.
17 . The computing device of claim 15 , wherein the configuration data defines a time period for obtaining the status data; and
wherein the processor is further configured to initiate the determination of whether to activate the controller operating mode after the time period has expired.
18 . The computing device of claim 12 , wherein the processor is further configured to:
in response to instructing the selected client computing device to activate the local relay operating mode, activate a client operating mode at the first client computing device.
19 . The computing device of claim 18 , wherein the processor is further configured to:
in response to activating the client operating mode, transmit a search request for local relays;
receive a message from the selected client computing device containing a network identifier of the update file at the selected client computing device; and
transmit a transfer request to the selected client computing device for the update file.
20 . The computing device of claim 19 , wherein the processor is further configured to:
when no response to the transfer request is received, transmit a further transfer request.
21 . The computing device of claim 19 , wherein the processor is further configured to:
receive the update file and store the update file in the memory.
22 . The computing device of claim 21 , wherein the processor is further configured to:
in response to receiving the update file, determine whether to activate the local relay operating mode.