Detailed Description
Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While the preferred embodiments of the present disclosure are illustrated in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The term "comprising" and variations thereof as used herein means open ended, i.e., "including but not limited to. The term "or" means "and/or" unless specifically stated otherwise. The term "based on" means "based at least in part on". The terms "one example embodiment" and "one embodiment" mean "at least one example embodiment. The term "another embodiment" means "at least one additional embodiment". The terms "first," "second," and the like, may refer to different or the same object. Other explicit and implicit definitions are also possible below.
In the context of the present disclosure, many existing cloud network devices provided by cloud providers tend to support online upgrades of only devices directly connected thereto through a particular communication protocol (such as cellular networks, LTE networks, etc.). For devices that cannot be directly connected thereto, such as various electronic devices that are indirectly connected to the cloud network device via an IP gateway, the function of online upgrade cannot be realized. Thus, it is challenging to implement online upgrades of cloud-based smart home electronics.
Embodiments of the present disclosure propose an approach to online upgrades of electronic devices to address one or more of the above problems and other potential problems. According to the scheme, the electronic equipment based on the cloud network equipment is upgraded through the network switching equipment. In this way, remote upgrades of the electronic device are made possible, greatly improving upgrade efficiency and saving the cost of maintaining the device upgrade.
FIG. 1 illustrates a block diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. As shown in fig. 1, environment 100 includes cloud network device 110, network switching device 120, and electronic device 130. It should be understood that the structure of environment 100 is described for exemplary purposes only and does not imply any limitation on the scope of the present disclosure. For example, embodiments of the present disclosure may also be applied in environments other than environment 100. It should be understood that the specific numbers of devices described above are given for illustrative purposes only and do not imply any limitation on the scope of the present disclosure. For example, embodiments of the present disclosure may also be applied to more or fewer devices.
Cloud network device 110 may be, for example, a distributed computer, virtual machine, server, etc. provided by a cloud provider, with powerful computing capabilities. The network switching device 120 is a device such as an IP gateway or the like that realizes interconnection between networks of different protocols. The electronic device 130 is a household device such as an electrical outlet, a light, a smoke alarm, an automatic window covering, a motion sensor, etc. The network switching device 120 is directly connected to the cloud network device 110 through, for example, a cellular network, an LTE network, or the like. The network switching device 120 is connected to the electronic device 130 through a communication protocol such as Zigbee.
Fig. 2 schematically illustrates a flowchart of an example method 200 for electronic device upgrades according to an embodiment of the disclosure. For example, the method 200 may be performed by the network switching device 120 as shown in fig. 1. It should be appreciated that method 200 may also be performed by other devices, the scope of the present disclosure is not limited in this respect. It should also be appreciated that method 200 may also include additional actions not shown and/or may omit the actions shown, the scope of the present disclosure being not limited in this respect. The method 200 is described in detail below in conjunction with fig. 1.
At 210, network switching device 120 obtains an upgrade file for electronic device 130 from cloud network device 110.
In some embodiments, the upgrade file may be a firmware image of electronic device 130 that may be uploaded to cloud network device 110 by a vendor of electronic device 130 via its network switching device at an online upgrade portal on cloud network device 110.
In some embodiments, network switching device 120 may obtain the upgrade file of electronic device 130 from cloud network device 110 after receiving a notification from cloud network device 110 that the upgrade file of electronic device 130 is present. Alternatively or additionally, in some embodiments, network switching device 120 may periodically obtain an upgrade file for electronic device 130 from cloud network device 110.
At 220, network switching device 120 determines whether electronic device 130 needs to be upgraded.
In some embodiments, the current version number of the electronic device 130 may be compared to the upgrade version number of the upgrade file. If the upgrade version number of the upgrade file matches the current version number, it is determined that the electronic device 130 needs to be upgraded, otherwise no upgrade is needed. In some embodiments, if the version number is represented digitally, the match may refer to the upgrade version number being greater than the current version number. Alternatively, in some embodiments, if the version number is indicated in letters, the match may refer to the upgrade version number being subsequent to the current version number. The matches may also be represented in other ways.
If it is determined that the electronic device 130 needs to be upgraded, the network switching device 120 sends an upgrade file for the electronic device 130 to the electronic device 130 at 230.
In some embodiments, the electronic device 130, after receiving the upgrade file, sends a message to the network switching device 120 to indicate successful receipt of the upgrade file. Additionally or alternatively, in other embodiments, the network switching device 120 waits a predetermined time, and if the electronic device 130 encounters an unexpected event such as a power outage without successfully receiving the upgrade file, the network switching device 120 stops waiting for a message indicating successful receipt of the upgrade file after exceeding the predetermined time. Additionally or alternatively, in still other embodiments, if the number of times the network switching device 120 sends the upgrade file to the electronic device 130 exceeds a predetermined number of times, the network switching device 120 stops waiting for a message indicating successful receipt of the upgrade file.
At 240, network switching device 120 determines whether feedback information regarding the upgrade of electronic device 130 is received.
In some embodiments, the electronic device 130 sends feedback information to the network switching device 120 after the upgrade is completed. The feedback information may include various information, which in some embodiments may include a current version number of the electronic device 130; additionally or alternatively, in other embodiments, the feedback information may include an identifier to identify whether the electronic device 130 has been successfully upgraded. It should be noted that the feedback information listed herein is merely illustrative and not limiting.
In some embodiments, the electronic device 130 sends the current version number of the electronic device 130 to the network switching device 120 after the upgrade is completed. If the upgrade of the electronic device 130 is successful, the current version number of the electronic device 130 becomes the upgrade version number of the upgrade file. The electronic device 130 then sends the updated current version number to the network switching device 120. If the upgrade of the electronic device 130 fails, the current version number of the electronic device 130 is unchanged. The electronic device 130 then sends the current version number without upgrade to the network switching device 120.
Additionally or alternatively, in other embodiments, the electronic device 130 sends an identifier to the network switching device 120 after the upgrade is completed to identify whether the electronic device 130 has been successfully upgraded. In some embodiments, the identifier may be a binary identifier that identifies "success" or "failure. Alternatively, in other embodiments, the identifier may be a multi-value identifier with a flag indicating whether the upgrade was successful and the cause of the failure.
At 250, network switching device 120 sends upgrade report information to cloud network device 110.
In some embodiments, the upgrade report information may include only feedback information. Alternatively or additionally, in other embodiments, the upgrade report information may include new information generated from feedback information, such as information regarding whether the electronic device has been upgraded to the latest version.
The above exemplary embodiments demonstrate that a method for upgrading an electronic device may enable upgrading of an electronic device based on a cloud network device through a network switching device. The remote upgrading of the electronic equipment is possible, the upgrading efficiency is greatly improved, and the upgrading cost of the maintenance equipment is saved.
Fig. 3 schematically illustrates a flowchart of an example method 300 for determining whether an electronic device needs to be upgraded, according to further embodiments of the present disclosure. Method 300 is another embodiment of step 230 shown in fig. 2. For example, the method 300 may be performed by the network switching device 120 as shown in fig. 1. It should be appreciated that method 300 may also be performed by other devices, and that the scope of the present disclosure is not limited in this respect. It should also be appreciated that method 300 may also include additional actions not shown and/or may omit the actions shown, the scope of the present disclosure being not limited in this respect. The method 300 is described in detail below in conjunction with fig. 1 and 2.
At 310, network switching device 120 determines whether electronic device 130 needs to be upgraded. Similar to step 220, in some embodiments, network switching device 120 may determine whether electronic device 130 needs to be upgraded by comparing the current version number of electronic device 130 to the upgrade version number of the upgrade file.
At 320, if the network switching device 120 determines that the electronic device 130 needs to be upgraded, an upgrade request message is sent to the cloud network device 110.
In some embodiments, cloud network device 110 may send the received upgrade request message to a user using electronic device 130 to indicate to the user that electronic device 130 needs an upgrade. The user of the electronic device 130 may decide whether to upgrade the electronic device 130 according to his own will, and send an upgrade response message to the cloud network device 110 through a device connected to the cloud network device 110, such as a smart phone, a tablet computer, or the like.
After receiving the upgrade response message, cloud network device 110 determines at 330 whether an upgrade of electronic device 130 is required according to the upgrade response message at 340.
At 350, if the upgrade response message indicates that the electronic device 130 needs to be upgraded, an upgrade file is sent to the electronic device 130.
The above exemplary embodiments demonstrate that the method for upgrading an electronic device also enables interaction with a user of the electronic device, making it possible for the user of the electronic device to control the upgrading of the electronic device.
Fig. 4 schematically illustrates an example signaling interaction diagram 400 for an electronic device upgrade according to further embodiments of the present disclosure. It should be appreciated that interaction diagram 400 may also include additional actions not shown and/or that the actions shown may be omitted, the scope of the present disclosure being not limited in this respect. The interaction diagram 400 is described in detail below in conjunction with FIG. 1.
In the embodiment shown in fig. 4, the upgrade file of the electronic device 130 is packaged with the upgrade file of the network switching device 120.
At 410, network switching device 120 receives notification from cloud network device 110 that an upgrade file exists.
At 420, after receiving the notification, network switching device 120 obtains an upgrade file for electronic device 130 from cloud network device 110.
In this embodiment, the upgrade file of the electronic device 130 is encapsulated with the upgrade file of the network switching device 120. At 430, network switching device 120 determines whether itself needs an upgrade. In some embodiments, network switching device 120 first decapsulates the received upgrade file and then, similar to 220, network switching device 120 determines whether itself needs an upgrade by comparing its current version number with the upgrade version number of the upgrade file. If the upgrade version number of the upgrade file matches the current version number, it is determined that the network switching device 120 needs to be upgraded, otherwise no upgrade is needed.
Alternatively, in some embodiments, if the network switching device 120 needs an upgrade, after the upgrade is completed, the network switching device 120 transmits its own upgrade report information to the cloud network device 110 in step 440.
At 450, network switching device 120 determines whether electronic device 130 needs to be upgraded. In some embodiments, it is determined that some or all of the set of electronic devices 130 need to be upgraded by comparing the current version number of each electronic device 130 in the set of electronic devices 130 to the upgrade version number of the upgrade file, respectively. The comparison may be serial, parallel, or in other orders. The scope of the present disclosure is not limited in this respect.
At 460, the network switching device 120 sends an upgrade file to the electronic device 130 determined to need an upgrade. In some embodiments, if a certain electronic device 130 has not sent a message to the network switching device 120 indicating successful receipt of an upgrade file within a predetermined time or after the network switching device 120 attempts to send a predetermined number of times, the network switching device 120 sends the upgrade file to the next electronic device 130. Alternatively, in other embodiments, the transmission of the upgrade files may be parallel or in other orders. The scope of the present disclosure is not limited in this respect.
Optionally, network switching device 120 may also send an upgrade request message to cloud network device 110 at 470 to indicate that electronic device 130 needs an upgrade.
At 480, the electronic device 130 sends feedback information to the network switching device 120 after the upgrade is completed.
At 490, network switching device 120 sends upgrade report information to cloud network device 110. In some embodiments, network switching device 120 may package upgrade report information associated with electronic device 130 with upgrade report information associated with network switching device 120 for transmission to cloud network device 110.
The above exemplary embodiments show that the method for upgrading an electronic device can also ensure compatibility of the electronic device with a network switching device, and realize easier overall control of the electronic device and the network switching device.
Fig. 5 shows a schematic block diagram of an example device 500 that may be used to implement embodiments of the present disclosure. For example, network switching device 120 as shown in fig. 1 may be implemented by device 500. As shown in fig. 5, the apparatus 500 includes a Central Processing Unit (CPU) 501, which may perform various suitable actions and processes in accordance with computer program instructions stored in a Read Only Memory (ROM) 502 or loaded from a storage unit 508 into a Random Access Memory (RAM) 503. In the RAM 503, various programs and data required for the operation of the device 500 can also be stored. The CPU 501, ROM 502, and RAM 503 are connected to each other through a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
Various components in the device 500 are connected to the I/O interface 505, including: an input unit 506 such as a keyboard, a mouse, etc.; an output unit 507 such as various types of displays, speakers, and the like; a storage unit 508 such as a magnetic disk, an optical disk, or the like; and a communication unit 509 such as a network card, modem, wireless communication transceiver, etc. The communication unit 509 allows the device 500 to exchange information/data with other devices via a computer network such as the internet and/or various telecommunication networks.
The various processes and treatments described above, such as methods 200, 300, may be performed by the processing unit 501. For example, in some embodiments, the methods 200, 300 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as the storage unit 508. In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 500 via the ROM 502 and/or the communication unit 509. When the computer program is loaded into RAM 503 and executed by CPU 501, one or more of the acts of the methods 200, 300, 400 described above may be performed.
The present disclosure may be methods, apparatus, systems, computer readable storage media. The computer readable storage medium may have computer readable program instructions embodied thereon for performing various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: portable computer disks, hard disks, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static Random Access Memory (SRAM), portable compact disk read-only memory (CD-ROM), digital Versatile Disks (DVD), memory sticks, floppy disks, mechanical coding devices, punch cards or in-groove structures such as punch cards or grooves having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through wires.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as SMALLTALK, C ++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present disclosure are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information of computer readable program instructions, which can execute the computer readable program instructions.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The foregoing description of the embodiments of the present disclosure has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the technical improvement of the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.