Method for coordinating multiple device management servers
Patent Information
- Application Number
- DE602019075510
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-07-20
- Filing Date
- 2019-07-02
- Publication Date
- 2025-09-10
- Estimated Expiration
- 2039-07-02
AI Technical Summary
Existing equipment management systems struggle with managing heterogeneous devices in a multi-server environment, leading to issues such as temporary connectivity loss, device malfunctions, and incompatibilities due to operations like rebooting or updating firmware, which compromise network security and smooth operation.
A method and system for coordinating multiple equipment management servers using a central coordination server that receives instructions, determines dependencies between devices, and orchestrates the execution of operations based on these dependencies and predefined rules, ensuring proper sequencing and compatibility.
This approach avoids device disconnection during operations, prevents programming interface incompatibilities, and maintains network security by accounting for device dependencies, reducing bandwidth usage and maintaining system integrity.
Description
[0001] The present invention relates to the field of equipment communicating in M2M (for "Machine To Machine" in English, or "from machine to machine" in French), and in particular to the coordination of equipment management servers to coordinate the operations of different equipment in a network.
[0002] In 2017, the number of connected objects in circulation worldwide was estimated at around 20 billion. By 2025, according to predictions, this number will exceed 75 billion. This growing number of connected objects, as well as the ability for these objects to exchange data with each other via the Internet of Things (IoT), makes the development of device management servers necessary.
[0003] The purpose of an equipment management server is to manage the operations of a fleet of equipment, whether mobile or not, connected to a network. For example, this equipment may include computers, tablets, mobile phones, printers, etc. This equipment may also include equipment from a wide variety of application areas, such as home automation (for example, a presence or motion detector, or a connected thermostat), transportation (for example, a bicycle, scooter, or car equipped with sensors), logistics (for example, objects equipped with radio frequency identification devices, such as an RFID chip), health (for example, surgical tools equipped with sensors, or measuring / monitoring equipment configured to transmit information concerning a patient's biological variables to a server), etc.
[0004] In particular, an equipment management server manages the execution of operations on equipment, and ensures the security and sustainability of the network, in particular by propagating security patches and carrying out equipment updates.
[0005] Due to the heterogeneity of the equipment, it is generally necessary to have a plurality of management servers, which must communicate with each other to ensure the joint management of the groups of equipment with which they are associated.
[0006] However, existing solutions do not allow for the management of certain configurations which can harm the smooth running of management operations or the security of equipment.
[0007] For example, certain operations such as rebooting or updating the firmware of a device can cause a temporary loss of connectivity for that device. As a result, devices connected to it also temporarily lose connectivity. In the event of an urgent security update operation on these devices, the device management servers that manage these devices cannot reach them. As a result, the update cannot be performed, compromising the security of the devices.
[0008] Other operations such as configurations or updates to the application programming interfaces (APIs) of devices can cause malfunctions between devices. For example, if one device has not updated a programming interface, this can result in an inability to communicate with devices that have updated their programming interface.
[0009] Thus, there is a need to improve equipment management in a multi-server environment. The prior art of the present invention includes US patent publication US 2013 / 024556A1 which discloses machine-to-machine device operation coordination.
[0010] The present invention improves the situation.
[0011] To this end, the present invention proposes a method for coordinating a plurality of equipment management servers in a computer network, said plurality of equipment management servers comprising at least a first management server and a second separate management server, the method, implemented by a coordinating computer server, comprising: receiving a first instruction intended for a first device attached to said first management server; receiving a second instruction intended for a second device attached to said second management server; obtaining dependency information relating to a dependency between the first device and the second device; obtaining rules for coordinating execution of the first instruction and the second instruction; determining an order of execution of the first instruction and the second instruction from the dependency information and the coordination rules obtained; generating and sending a first command signal for executing the first instruction and a second command signal for executing the second instruction according to the determined order.
[0012] Advantageously, the coordination method takes into account the dependencies that exist between the different devices in the network to orchestrate the execution of operations on these devices. This makes it possible to avoid, for example, that a device on which an operation is in progress (such as an update) is disconnected from the network because another operation (such as a reboot) is implemented on the device that provides the connection. This also makes it possible to avoid problems of incompatibility between the programming interfaces of two devices, when these two devices are linked in the execution of a series of operations (for example, switching on lamps via a voice assistant).
[0013] "Instruction to a device" means an instruction relating to a management operation to be executed on this device. "Rules for coordinating the execution of instructions received" means rules for coordinating the execution of management operations associated with the instructions received. In the following, for the sake of simplification, the rules for coordinating the execution of instructions may be referred to as "rules for coordinating the execution of operations".
[0014] A "dependency" between two pieces of equipment means that the operation of one piece of equipment is linked to the operation of the other piece of equipment, or that the performance of an operation by / on one piece of equipment has an effect on the other piece of equipment.
[0015] Considering device dependencies is particularly beneficial in a multi-server environment, where devices that depend on each other can be managed by separate, independent servers. When dependent devices are managed by independent servers, an operation can be initiated on one device without considering the impact it has on its dependent devices. This can compromise the proper functioning of dependent devices, as well as the security of the entire network.
[0016] Furthermore, the fact that coordination is managed by an "intermediate" server (which "intercepts" the instructions, stores them and determines their execution order before retransmitting them) avoids the management servers having to communicate with each other and manage the coordination of operations on their own. This allows the structure of the management servers to remain unchanged, and limits the number of interconnections, thus reducing bandwidth usage.
[0017] The coordination server determines an execution order (i.e., a scheduling of the operations to be executed) for the instructions, and controls the execution of the instructions according to the determined order. The determined execution order defines a scheduling criterion for a sequential sending of the control signals (e.g., in the determined order), or for a sequential execution of the operations associated with the control signals (e.g., in the determined order), or for any other technique for sending signals according to a scheduling.
[0018] For example, such dependency information may include: connectivity dependency information between the first equipment and the second equipment; and / or service dependency information between the first equipment and the second equipment.
[0019] A "connectivity dependency" between two devices means that one of the devices provides connectivity or is connected to the other device via a communication protocol. A "service dependency" between two devices means that the execution of a service on one of the devices involves the other device.
[0020] According to one embodiment, the first control signal may be sent to the first management server, and the second control signal may be sent to the second management server.
[0021] In this embodiment, the coordination server transmits a signal to the servers to command the execution of the operations, and it is the management servers that send the signal to execute the operations to the devices, as is done on conventional device management servers. The management servers can further notify the coordination server of the execution of the operations in order to orchestrate the execution of the operations.
[0022] According to an alternative embodiment, the first control signal can be sent to the first equipment, and the second control signal can be sent to the second equipment.
[0023] In this alternative embodiment, the coordination server itself sends the command to execute operations to the devices. In other words, it is not necessary to go back through the management servers to command the execution of operations on the devices. In this configuration, security, certification, and interoperability mechanisms can be integrated into the coordination server. The operator's agreement may also be required.
[0024] In one or more embodiments, the method may further comprise: for each current management server among the first management server and the second management server, receiving descriptive data corresponding to said current management server, said descriptive data comprising: a definition of a plurality of equipments attached to said current management server, dependency information between equipments of said plurality of equipments (311, 312) attached to said current management server, a definition of operations associated with said plurality of equipments attached to said current management server, and a definition of effects associated with said operations on at least one equipment among said plurality of equipments attached to said current management server; determining said execution coordination rules from said descriptive data received for the first management server and the second management server.
[0025] For example, the coordination server can receive, from each management server, a set of information making it possible to describe the equipment attached to it, as well as the possible operations for this equipment, and the effects that these operations can generate on other equipment that depends on this equipment. From this information, the coordination server can determine the order of execution of the operations on the different equipment of the network, from the rules for coordinating the execution of the different instructions.
[0026] Furthermore, execution coordination rules can be determined from predetermined quality of service criteria.
[0027] These quality of service criteria can be derived from service contracts signed between a customer and an operator.
[0028] The management operations associated with the plurality of devices may in particular comprise: a restart of a device among said plurality of devices attached to said current management server, an update on a device among said plurality of devices attached to said current management server, a configuration of a device among said plurality of devices attached to said current management server, or a reset of a device among said plurality of devices attached to said current management server.
[0029] Effects associated with the operations may include: loss of connectivity of one of said plurality of devices attached to said current management server, or functional incompatibility between two of said plurality of devices attached to said current management server.
[0030] In one or more embodiments, the method may further comprise, for each control signal of said first control signal and said second control signal, receiving an acknowledgment of said control signal.
[0031] In one or more embodiments, the method may further comprise, for each control signal of said first control signal and said second control signal, receiving an acknowledgment of execution of the respective instruction associated with said control signal.
[0032] This makes it possible to verify that the control signals have been received (in the case of acknowledgments) by the receiving entities (e.g., management servers or equipment), and / or to verify that an operation has been initialized / executed / taken into account (in the case of execution acknowledgments). In the case where an acknowledgment of receipt / execution is not received at the coordination server, callback and error handling mechanisms can be implemented. Thus, it can be decided, for example, to send the control signal again.It may also be decided, alternatively or additionally, to stop sending other control signals until an acknowledgement of receipt / execution has been received (for example, all commands corresponding to subsequent operations, with respect to the determined order of execution of the instructions, to the operation for which the acknowledgement of receipt / execution has not been received).
[0033] In one or more embodiments, the execution order may define an instruction to be executed first among the first instruction and the second instruction. The method may further include receiving the execution acknowledgment of the instruction to be executed first in response to sending the associated command signal, and the command signal associated with the instruction to be executed second may be sent only after receiving said execution acknowledgment.
[0034] This makes it possible to only send a control signal to a device when the previous operation has been executed. Thus, if for example an operation B absolutely requires that an operation A has been previously carried out, such an embodiment makes it possible to ensure that operation B is not executed while operation A is not completed.
[0035] The present invention also relates to a server for coordinating a plurality of equipment management servers in a computer network, said plurality of equipment management servers comprising at least a first management server and a second management server, the coordination server being configured to: receiving a first instruction intended for a first device attached to said first management server and a second instruction intended for a second device attached to said second management server; obtaining dependency information relating to a dependency between the first device and the second device; obtaining rules for coordinating execution of the first instruction and the second instruction; determining an execution order for the first instruction and the second instruction from the dependency information and the coordination rules obtained; generating and sending a first execution control signal for the first instruction and a second execution control signal for the second instruction according to the determined order.
[0036] According to another aspect, the invention relates to a system comprising: a plurality of equipment management servers in a computer network, said plurality of equipment management servers comprising at least a first management server and a second management server; a plurality of equipments attached to said plurality of equipment management servers, said plurality of equipments comprising at least a first equipment attached to said first management server and a second equipment attached to said second management server; at least one memory storing: a dependency database comprising dependency information relating to a dependency between equipments among said plurality of equipments; and a coordination knowledge base comprising a plurality of rules for coordinating instructions on equipments among said plurality of equipments;a coordination server configured to: receive a first instruction to said first equipment and a second instruction to said second equipment; obtain, from the dependency database, dependency information between the first equipment and the second equipment; obtain, from the coordination knowledge base, rules for coordinating execution of the first instruction and the second instruction; determine an execution order for the first instruction and the second instruction from said retrieved dependency information and said obtained coordination rules; generate and send a first execution control signal for the first instruction and a second execution control signal for the second instruction according to the determined order.
[0037] The memory can also store instructions received for the various devices attached to the management servers. This makes it possible in particular to determine an execution order on a set of instructions (for example, instructions received during a predetermined time interval, or a predetermined number of instructions received).
[0038] The "memory" can be distributed, so that dependency databases and coordinating knowledge bases, and / or instructions can be stored on different physical media.
[0039] Furthermore, the system may further comprise a dependency module configured to detect / manage dependencies between different equipment in the system. The dependency module may be connected to the dependency database. In one embodiment, the dependency module is included in the coordination server.
[0040] A computer program, implementing all or part of the method described above, installed on one or more pre-existing equipment(s), is in itself advantageous, since it allows the coordination of a plurality of management servers.
[0041] Thus, the present invention also relates to a computer program comprising instructions for implementing certain of the steps of the method described above, when this program is executed by a processor.
[0042] This program may use any programming language (e.g., an object language or otherwise), and may be in the form of interpretable source code, partially compiled code, or fully compiled code.
[0043] There figure 4 , described in detail below, can form the flowchart of the general algorithm of such a computer program according to an embodiment of the invention. Some or all of the steps of this flowchart can be executed in parallel, or in a sequential mode.
[0044] Another aspect relates to a non-transitory storage medium for a computer-executable program, comprising a data set representing one or more programs, said one or more programs comprising instructions for, upon execution of said one or more programs by a computer comprising a processing unit operatively coupled to memory means and to an input / output interface module, to execute all or part of the method described above.
[0045] Other characteristics and advantages of the invention will become apparent from reading the description which follows. This description is purely illustrative and must be read in conjunction with the appended drawings in which: there figure 1 illustrates a system comprising a plurality of equipment management servers, according to one embodiment of the invention; the figure 2 represents an example of dependencies between several computer devices; the figure 3 represents a coordination server of a plurality of equipment management servers, according to one embodiment of the invention; the figure 4 is a flowchart of the method for coordinating a plurality of equipment management servers, according to one embodiment of the invention; figure 5 illustrates an example of a device for coordinating a plurality of equipment management servers, according to one embodiment of the invention.
[0046] There figure 1 illustrates a system comprising a plurality of equipment management servers, according to one embodiment of the invention.
[0047] There figure 1 represents a first management server 110 responsible for managing a first set 11 of equipment 111, 112, 113 connected to a network 100, as well as a second management server 120 responsible for managing a second set 12 of equipment 121, 122 connected to the same network 100. The two management servers 110 and 120 are independent. The network 100 can be any computer network, such as a local area network (LAN) or a wide area network (WAN) for example. In a particular embodiment, a piece of equipment comprises a management server which can manage other equipment attached to it.
[0048] The coordination server 130 makes it possible to coordinate the execution of operations on the different equipment 111, 112, 113, 121, 122. In particular, the coordination server 130 can be configured to calculate and determine an order of execution of the operations, so that there is no malfunction on the system.
[0049] Indeed, some operations need to be carried out before others. For example, if software needs to be updated urgently on certain equipment, the "parent" equipment that provides the network connection to this equipment must not be powered down. Thus, if an instruction to restart this parent equipment has been issued, it may be decided that the restart of the parent equipment takes place after the software update of the equipment connected to this parent equipment.
[0050] According to one embodiment, the coordination server 130 is configured to receive an instruction concerning a management operation to be performed on a piece of equipment or by a piece of equipment among the pieces of equipment 111, 112, 113, 121, 122. This instruction may in particular concern an operating mode of the equipment (for example, “turn on / off / restart the equipment”, “increase / reduce the screen brightness”, “use the battery saver”, etc.), an action to be performed on software (for example, “install / uninstall / update software”), etc.
[0051] This instruction can be sent to the coordination server 130 by the management server 110, 120 to which the equipment is attached, by another management server, or by an external entity. Of course, it is possible to combine these embodiments, so that certain instructions can be sent to the coordination server 130 by one or more management servers 110, 120, while other instructions are sent to the coordination server 130 by one or more external entities.
[0052] Sending to the coordination server 130 instructions concerning operations to be performed on a device or by a device among the devices 111, 112, 113, 121, 122 can be carried out via one or more communication technologies. By way of example and in a non-limiting manner, it is possible to use one or more technologies among wired communication, and wireless technologies such as Wifi, Bluetooth, Bluetooth LE, Infrared, NFC, Zigbee, Enocean, Z-Wave, Sigfox, LTE-M or LoRaWAN.
[0053] The coordination server 130 is further configured to determine an execution order of the operations to be performed. Once this execution order has been determined, the coordination server 130 can generate control signals concerning the operations to be performed and transmit them to the management servers 110, 120. The management servers 110, 120 can then manage the execution of the operations by the equipment 111, 112, 113, 121, 122 attached to them.
[0054] To determine the execution order, the coordination server can advantageously take into account the dependencies that exist between the different devices. According to one embodiment, the coordination server is configured to receive information on these dependencies. In this case, sending to the coordination server 130 the dependency information between the devices 111, 112, 113, 121, 122 can be carried out via one or more communication technologies. By way of example and in a non-limiting manner, it is possible to use one or more technologies among wired communication, and wireless technologies such as Wifi, Bluetooth, Bluetooth LE, Infrared, NFC, Zigbee, Enocean, Z-Wave, Sigfox, LTE-M or LoRaWAN.
[0055] A "dependency" between two devices means that the operation of one of the devices is linked to the operation of the other device, or that the execution of an operation by / on one device has an effect on the other device. In particular, there may be a connectivity dependency between two devices, when one device provides connectivity to the other device, or one device is connected to another device. The connectivity dependency may be physical (for example, in the case of a wired connection such as an Ethernet cable or powerline connection) or logical (for example, in the case of a wireless connection, such as a Wi-Fi or Bluetooth connection). For example, in the case of headphones communicating via Bluetooth with a multifunction mobile terminal (or "smartphone" in English), there is a connectivity dependency between the headphones and the multifunction mobile terminal.
[0056] There may also be a so-called "service dependency" (or "functional service dependency") between devices, for example when one device is configured to trigger the execution of an operation by another device. For example, a voice assistant may be configured to control the switching off of the lights in a room if it has been detected by a presence detector that no one is present in this room (there is then a service dependency between the presence detector, the lights and the voice assistant).
[0057] There figure 2 represents an example of dependencies between several computer devices.
[0058] On the figure 2 , connectivity dependencies are represented by dotted arrows, while service dependencies are represented by solid arrows.
[0059] For example, the equipment 111, 112 and 113 of the first group of equipment may correspond respectively to a multifunction mobile, Bluetooth earphones and a connected watch, and the equipment 121 and 122 of the second group of equipment may correspond to a television (television over IP) and to an access gateway or electronic box, or "box" in English, providing fixed and / or mobile access to high-speed Internet.
[0060] In this example, the box 122 is configured to provide Wi-Fi connectivity to the multifunction mobile 111, the connected watch 113 and the television 121. The multifunction mobile is configured to communicate via Bluetooth with the earphones 112 and with the watch 113. When the earphones 112 are connected to the multifunction mobile 111, an application can be launched from the multifunction mobile 111, the connected watch 113 or the television 121 to send audio content to the earphones 112. Furthermore, the television is configured to display video content from a control signal emitted by the box 122.
[0061] This example illustrates the complexity of the dependencies that can exist between different devices managed by independent management servers, and the need to take these dependencies into account to ensure the proper functioning and security of these devices.
[0062] There figure 3 represents a coordination server of a plurality of equipment management servers, according to one embodiment of the invention.
[0063] As shown in the figure 3 , a first management server 301 ensures the management of a first equipment 311, and a second management server 302, independent of the first management server 301, ensures the management of a second equipment 312.
[0064] The coordination server 300 ensures the coordination of the management servers 301 and 302, and in particular the coordination of the operations which must be carried out on the equipment 311, 312 attached to the management servers 301, 302. In order to take into account the dependencies which may exist between the equipment 311, 312 of the network, the coordination server comprises a dependency module 330.
[0065] The dependency module 330 is configured to manage the dependencies between the different devices 311, 312, in particular the connectivity dependencies and the service dependencies. The dependency module 330 can be connected to a dependency database 320. In one embodiment of the invention, the dependency database 320 can contain data making it possible to characterize all the dependencies, as well as the type of dependency, between the different devices 311, 312 of the network. For example, the dependency database 320 can be constructed from an entity-relationship diagram (ERD) model, a data dictionary, a dependency graph, or any other tool making it possible to characterize relationships between entities.
[0066] Advantageously, the dependency module 330 is further configured to update the dependencies recorded in the dependency database 320, by adding new dependencies, by deleting obsolete dependencies, or by updating dependencies (for example, the type of dependency) between devices, according to the evolution of the system (addition / deletion of devices in the system, modification of the interconnection between the devices to exchange information, etc.).
[0067] In one embodiment, the determination of dependencies is carried out by the dependency module 330, and therefore within the coordination server 300. For example, this determination can be carried out by analyzing the communications between the different devices 311, 312.
[0068] In an alternative embodiment, the determination / management of dependencies is performed by the devices 311, 312. According to this embodiment, the dependency database may be distributed among the devices (each device stores information relating to the dependencies it may have with other devices). The devices 311, 312 may provide the dependency module 330 with information relating to their dependencies with other devices. For example, a device 311 may define a protocol for sending to the dependency module 330 the dependencies it may have with other devices 312 in the system. The dependency information may be described in the data model of the protocol.
[0069] For example, for connectivity dependency, the equipment 311 may be configured to analyze communications on its various communication interfaces, in order to detect connectivity dependency when another equipment 312 connects to / disconnects from one of these interfaces. For service dependency, the information may be extracted from the firmware of the equipment 311, in the case where the latter comprises a description of the possible services for the equipment 311, as well as the service dependencies with the services performed by the other equipment 312 of the system. This description may, for example, be written in a file encapsulated in the firmware. This information may be sent to the dependency module 330 of the coordination server 300, in particular after a firmware update, or after an activation / or deactivation of the services concerned.For example, a new firmware update of a television may allow the addition of the new functionality “turn on a lamp by voice command”. The firmware update includes information on the service dependency between the television and the lamp associated with this new functionality (for example the different versions of the programming interfaces of the lamp with which the functionality is compatible, or the references of the lamps for which the functionality is compatible). After the firmware update and the activation of the service associated with this new functionality, the dependency information associated with this new service may be sent from the equipment 311 to the dependency module 330.
[0070] In another embodiment, the dependency information may be transmitted to the dependency module 330 by the management servers 301, 302. For this, the management servers 301, 302 must follow a protocol allowing such transmission of information. For example, the TR-069 protocol provides for a two-way exchange of identity between a device and the gateway. The device communicates its identifier as well as the gateway identifier to the auto-configuration server (ACS) and the gateway communicates to the auto-configuration server the devices connected to it. According to the TR-069 standard, the device and the gateway may be managed by the same auto-configuration server, or by two separate and independent auto-configuration servers.Thus, such a protocol allows transmission of connectivity dependency information from the management server 301, 302 to the dependency module 330 of the coordination server 300.
[0071] For service dependencies, the dependency information may be provided by the management server following an activation of a service in a device 311 referenced in another service of another device 312. The services embedded in the firmware must be described and known by the management server 301, 302. In other words, the management server 301, 302 must have the description of the possible services for the device 311, as well as the service dependencies with the services performed by the other devices 312 of the system (for example, the compatibility of the programming interfaces). The dependency information may be updated after receiving a firmware update confirmation or an activation / deactivation of the service.
[0072] In another embodiment, the dependency information may be transmitted to the dependency module 330 by an external component. For example, an interactive service may allow users to describe dependencies between devices (in particular by using speech recognition software - a user may orally describe the dependency to the voice assistant, which may then translate this data into the form of a dependency graph). According to another example, an external component may be configured to analyze the network, collect information about the devices and determine the dependencies (and types of dependencies) between the devices. In this case, user authorization may be requested beforehand for reasons of personal data protection.In another example, if the different devices are managed by the same operator, it is possible to explore the Information System database (including customer contracts, equipment description sheets, etc.) to define dependencies between the devices. To do this, it is possible to use algorithms such as "natural language processing" (NLP). In this example, authorization from both the user and the Information System may be requested in advance for reasons of personal data protection.
[0073] Of course, a combination of the preceding embodiments can be used for retrieving the dependency information within the dependency module 330. For example, part of the information can be sent from the equipment 311, 312, another part of the information can be sent from the management servers 301, 302, etc.
[0074] Furthermore, the choice of components configured to send dependency information to the dependency module 330 depends on the constraints on the equipment side 311, 312, the management server side 301, 302, and the user side. For example, the identification of dependencies within the equipment 311, 312 offers the highest level of protection of a user's personal data. However, this identification requires a certain number of resources, which a piece of equipment does not necessarily have. On the management server side 301, 302, the latter must have a protocol for retrieving dependency information and transmitting it to the dependency module 330.If the protocol of the management server 301, 302 does not allow the recovery / transmission of dependency information, and if the equipment 311, 312 does not have sufficient resources, an external component can be used, if user-side authorization has been previously obtained for reasons of personal data protection.
[0075] The determination of dependency information can be implemented following a request (from a user, a service, etc.), to limit bandwidth consumption, or “continuously”, so that the dependency database 320 is permanently up to date and can thus possibly be used by other services.
[0076] A first instruction, corresponding to the initiation of a first management operation concerning the first equipment 311, is sent by the first management server 301 in charge of the first equipment 311. A second instruction, corresponding to the initiation of a second management operation concerning the second equipment 312, is sent by the second management server 302 in charge of the second equipment 312. The management operations can be initiated in parallel or sequentially.
[0077] The instructions are received at the coordination server 300, via the supervision module 350. The supervision module 350 is configured to calculate and determine an execution order between the management operations corresponding to the instructions received, in particular from the dependencies between the equipment 311, 312, recorded in the dependency database 320.
[0078] The order of execution of the management operations can be determined by the supervision module 350 according to different decision schemes, which can be predefined or chosen according to the configuration of the system (number of management operations to be performed, available bandwidth, etc.). In one embodiment, the supervision module 350 can be configured to apply a “first in, first out” (FIFO) type method. According to this method, the operations are executed in their order of arrival. If an instruction for a first device 311 is transmitted first to the supervision module 350, the associated operation is executed first, and all other operations intended for the devices 312 which have a dependency with the first device 311 are locked until the first operation is completed.Then, the second operation corresponding to the instruction transmitted to the supervision module 350 just after the first instruction is initiated in a similar manner.
[0079] Advantageously, the order of execution between the management operations corresponding to the instructions received is further determined from rules for coordinating execution of the operations, and consequently of the associated instructions, defined from “coordination policies” recorded in a coordination knowledge base 340.
[0080] In one embodiment, the supervision module 350 may comprise a buffer memory for storing a set of instructions as well as the management operations being executed, and determining the order of execution and the orchestration of this set of instructions. For example, the set of stored instructions may comprise all the instructions received during a given time interval (for example, all the instructions received during 15 minutes at the supervision module), or a predetermined number of instructions (for example, 10 instructions received consecutively). Instruction collection windows are thus defined. At the end of a window, the supervision module determines the order of execution of the operations corresponding to the instructions stored in the window, while a new window is initialized.
[0081] The coordination policies stored in the coordination knowledge base 340 can be determined as follows.
[0082] Each management server 301, 302 intended to be coordinated by the coordination server 300 sends data making it possible to describe the equipment 311, 312 which is attached to it, the various possible operations on this equipment 311, 312 which are likely to have a temporary effect on the other equipment, as well as the effects which may be generated following an execution of these operations. This data can be sent to the supervision module 350, to another module (different from the supervision module 350 and the dependency module 330) of the coordination server 300, or to a processing module external to the coordination server 300.
[0083] In a multi-server environment like the one shown in figure 3 , the management servers 301, 302 are generally independent and heterogeneous. Thus, this descriptive data can advantageously be constructed from a model defining a common vocabulary making it possible to describe the different operations and the effects associated with their executions.
[0084] For example, possible operations that may temporarily affect other equipment may include: rebooting the equipment; updating the equipment firmware; configuring the equipment (changing settings, enabling / disabling a service, etc.); and resetting the equipment (restoring the factory configuration).
[0085] The effects that may be generated following the execution of these operations may include: loss of connectivity; and functional incompatibility.
[0086] For example, a reset or configuration operation that disables a service on one device may cause functional incompatibility if another device uses that service. In another example, an update, reboot, or reset operation on a device may cause a loss of connectivity for that device and devices connected to it.
[0087] From the descriptive data of the different possible operations and the effects that can be generated following the execution of these operations, it is possible to define coordination policies, which include a set of rules for coordinating the execution of operations according to the different possible configurations.
[0088] For example, a coordination policy may include the following execution coordination rules: if the coordination server 300 receives operations of the “restart”, “update” or “reset” type for one or more equipment(s) 311, 312; and if there are connectivity dependencies between the equipments 311, 312 concerned; then the execution of these operations is done according to the following order: the operations on the “parent” equipments (i.e. those which provide the connectivity or initiate the connection) first, and the operations of the “child” equipments next.
[0089] Execution coordination rules can also be set or determined according to predetermined objectives. For example, it may be decided that all operations aimed at improving the security of equipment or the system, such as correcting security vulnerabilities, have priority over others.
[0090] Furthermore, it may be useful to consider quality of service contracts when determining security policies (as a coordination policy), particularly in cases where the different management servers are managed by different operators. A "quality of service contract" (or "Service Level Agreement" or "SLA") is a contract between a service provider and a customer, defining the expected objectives and the level of service that the customer wishes to obtain from the provider, as well as the responsibilities of each party.From the quality of service contracts, it is possible to determine different priority levels for management servers (for example, if the management servers correspond to different operators and the customer has chosen to favor operator X over other operators, the operations associated with the management server of operator X may have priority over other operations), for operations (for example, if the contract stipulates that operations on certain equipment have priority over operations on other equipment), etc.
[0091] Coordination policies can be more complex. In particular, they can combine several of the previous examples. They can also go beyond coordinating received operations, for example by generating new operations not initially designed to guarantee the operation of devices that depend on these services, such as checking the status of services (enabled / disabled) after executing operations, or checking the compatibility of programming interfaces before executing device management operations. For example, if a service dependency is detected between two devices affected by the operations received by the coordination server, it can request the management server to check whether the services of the "dependent" device are still active.If services are disabled, the coordination server can identify the services and request the management server to initiate an activation operation on the services affected by this dependency. This generates new operations that were not initially planned.
[0092] According to another example, if a service dependency between two devices is detected in a multi-operator system of management servers, the coordination server may possibly block the execution of operations if an incompatibility of the programming interfaces is detected or foreseeable. For example, if an operation to update a programming interface of a device A is available, while other devices use this programming interface, but are not yet updated to support this new version, the coordination server blocks the update of the device A until the devices that depend on this device A are compatible. The rules relating to the firmware programming interfaces and to the compatibility with external programming interfaces may be entered by the supervision module 350 in the coordination knowledge base.
[0093] The coordination policies can be defined by the supervision module 350, by another module of the coordination server 300, or by a module external to the coordination server 300.
[0094] Referring again to the figure 3 , the supervision module 350 can, from the execution coordination rules, associated with the coordination policies, determine the order of execution of the operations on the equipment 311 and 312 and transmit them to the management servers 301, 302. The supervision module 350 can thus be configured to send to the first management server 301 a command signal for execution of the first operation on the first equipment 311, and to send to the second management server 302 a command signal for execution of the second operation on the second equipment 312.
[0095] In the example of the figure 3 , the supervision module 350 is configured to determine the order of execution and orchestrate the execution of operations with the management servers 301, 302. Of course, these two functions can be provided by two separate modules of the coordination server 300.
[0096] According to one embodiment, the control signals are sent to the respective management servers 301, 302 according to the determined execution order. For example, if the execution order indicates that the operation on the first equipment 311 must be performed after the operation on the second equipment 312, then the following steps can be performed, in this order: a control signal is sent to the second management server 302 to control the execution of the second operation; then, a control signal is sent to the first management server 301 to control the execution of the first operation.
[0097] Of course, any other method that allows operations to be executed in the determined order can be used. For example, it is possible to include, in the control signals, time stamp information indicating when the operation is to be executed.
[0098] In the case where operations can be performed in parallel, it is possible to assign the same execution order to these operations.
[0099] In one embodiment, each management server 301, 302 can, after receiving the control signal intended for it, send an acknowledgment message to indicate that it has received the control signal. In this embodiment, the supervision module 350 can be configured to send a current control signal only after receiving the acknowledgment of the previously sent control signal.
[0100] Alternatively or in addition, each management server 301, 302 sends an acknowledgment of execution relating to the operation on the equipment for which it is responsible. This acknowledgment of execution may, for example: indicate that the operation is complete. In this case, the message is issued after the operation has been completed. This embodiment is advantageous when one operation must be completed before another operation can be initiated (for example, a security update on a computer must be completed before synchronizing data from a multifunction mobile to that computer); or indicate that the operation is being performed. In this case, the message may simply indicate that the operation has been initiated. This embodiment is advantageous when operations can be performed in parallel.
[0101] A coordination server as defined above can be advantageously used in many areas.
[0102] For example, in the field of connected homes and home automation, service and connectivity dependencies are numerous. For example, in the case of managing a customer's local network, a number of devices (such as the TV decoder, or STB for "set-top box" in English) depend on the customer's internet access gateway for local network connectivity. A conflict can occur if, while a device is itself downloading new firmware, the access gateway is asked to reboot or change its own firmware, resulting in a loss of connectivity. The first update would then be corrupted. A coordination server as defined in the present invention makes it possible to ensure that an equipment management command will not be carried out on an element providing connectivity during an update of another device dependent on it.
[0103] Still in the field of the connected home, many new services implement voice assistants that interact with connected objects by connecting to their programming interface. An update of a connected object that would modify the exposed programming interface of the object can make the service inoperable, unless the resources describing the interface are updated on the voice assistant. Therefore, an update of a connected object may require a configuration / update of another object. A coordination server as defined in the present invention makes it possible to coordinate and identify cross-impacts between objects and to take the necessary measures for service continuity. Indeed, in the proposed solution, the coordination server can command the voice assistant management server to update the resources of the objects that may be impacted.
[0104] The same management issues are found in the fields of smart cities and smart industries. Indeed, these fields operate and use "Internet of Things gateway" type equipment, which offers cellular connectivity services similar to those of access gateways located in homes. Similarly, managing service dependency, and in particular the consistency of updates, between multiple devices at the same time is an issue that also arises in these fields.
[0105] Furthermore, the proposed solution allows for multi-level coordination. On the one hand, the proposed solution allows for inter-operator coordination, which can be particularly interesting, especially in the case of over-the-top (OTT) services. In this case, each operator can have its own coordination server, and all the coordination servers are themselves coordinated at a higher level. In this case, agreements between the operators concerned are necessary. On the other hand, the proposed solution allows for inter-manufacturer coordination. Indeed, coordination between equipment management systems is possible. For example, there can be coordination between firmware updates on connected lamps, and on voice assistants configured to control the switching on / off of these lamps remotely.In this case, both manufacturers have an interest in setting up a common coordination server external to their own systems.
[0106] There figure 4 is a flowchart of the method for coordinating a plurality of equipment management servers, according to one embodiment of the invention.
[0107] In an optional step 401, descriptive data is transmitted from a management server to the coordination server. As described previously, this data makes it possible to describe the equipment attached to the management server, the various possible operations on this equipment, as well as the effects that can be generated following execution of these operations. Alternatively, the descriptive data can be transmitted to an external server.
[0108] In steps 402 and 403, the coordination server receives instructions corresponding to two operations on two devices managed by two separate management servers, as described above.
[0109] In step 404, the coordination server obtains dependency information between the two devices, as described previously.
[0110] Still in step 404, the coordination server can obtain execution coordination rules, defined for example by coordination policies as mentioned previously.
[0111] An execution order for the operations is then determined (step 405) from the dependency information, as well as from obtained execution coordination rules.
[0112] As described above, control signals for controlling the execution of the operations according to the determined execution order are then generated (step 406), and sent (step 407) to the corresponding servers.
[0113] There figure 5 illustrates an example of a device for coordinating a plurality of equipment management servers, according to one embodiment of the invention.
[0114] In this embodiment, the device 500 comprises a memory 505 for storing instructions allowing the implementation of the method, data relating to the operations to be executed received, data relating to the dependencies between the equipment and temporary data for carrying out the different steps of the method as described previously.
[0115] The device further comprises a circuit 504. This circuit can be, for example: a processor capable of interpreting instructions in the form of a computer program, or an electronic card whose steps of the method of the invention are described in the silicon, or even a programmable electronic chip such as an FPGA chip (for "Field-Programmable Gate Array" in English), such as a SOC (for " System On Chip » in English) or as an ASIC (for “ Application Specific Integrated Circuit » in English).
[0116] THE SOC or system-on-chip are embedded systems that integrate all the components of an electronic system into a single chip.
[0117] A ASIC is a specialized electronic circuit that combines custom features for a given application. ASICs are typically configured during manufacturing and can only be simulated by the user.
[0118] Programmable logic circuits of type FPGA (Field-Programmable Gate Array) are user-reconfigurable electronic circuits.
[0119] This device comprises an input interface 503 for receiving data from instructions, dependency information and acknowledgements / execution, and an output interface 506 for providing control signals for executing operations in the determined order. Finally, the computer may comprise, to allow easy interaction with a user, a screen 501 and a keyboard 502. Of course, the keyboard is optional, particularly in the context of a computer in the form of a touch pad, for example.
[0120] In a particular embodiment, the input interface 503 is arranged to receive coordination policies.
[0121] Depending on the embodiment, the device 500 may be a computer, a computer network, an electronic component, or other apparatus having a processor operably coupled to a memory, as well as, depending on the embodiment selected, a data storage unit, and other associated hardware such as a network interface and a media reader for reading and writing to a removable storage medium (not shown in the figure). The removable storage medium may be, for example, a compact disc (CD), a digital video / versatile disc (DVD), a flash drive, a USB flash drive, etc.
[0122] Depending on the embodiment, the memory, data storage unit, or removable storage medium contains instructions that, when executed by the control circuit 504, cause the control circuit 504 to perform or control the input interface 503, output interface 506, data storage in memory 505, and / or data processing portions of the proposed method implementation examples described herein.
[0123] The control circuit 504 may be a component implementing the control of the units 503, 505 and 506 of the device 500.
[0124] Furthermore, the device 500 can be implemented in software form, in which case it takes the form of a program executable by a processor, or in hardware form, such as an application-specific integrated circuit (ASIC), a system on chip (SOC), or in the form of a combination of hardware and software elements, such as for example a software program intended to be loaded and executed on an electronic component described above (e.g. FPGA, processor).
[0125] The device 500 may also use hybrid architectures, such as CPU+FPGA, GPU ( Graphics Processing Unit ) or an MPPA ( Multi-Purpose Processor Array ).
[0126] Furthermore, the functional diagram presented on the figure 4 is a typical example of a program some of whose instructions can be carried out on the server described. As such, the figure 4may correspond to the flowchart of the general algorithm of a computer program within the meaning of the invention.
[0127] Of course, the present invention is not limited to the embodiments described above as examples; it extends to other variants.
[0128] Other achievements are possible.
[0129] For example, there may be multiple coordination servers, each associated with a group of management servers belonging to the same operator. In other words, there may be one coordination server per operator. In this case, to coordinate inter-operator equipment management operations based on the dependency between the equipment, a hierarchical coordinator that coordinates the coordination servers of each operator is required. Moreover, in this case, operators must share the same meta-model for the dependency databases and the coordination knowledge bases, respectively, to ensure interoperability between the coordination servers.
[0130] Depending on the embodiment selected, certain acts, actions, events, or functions of each of the methods described herein may be performed or occur in a different order than they were described, or may be added, merged, or may not be performed or occur, as the case may be. In addition, in some embodiments, certain acts, actions, or events are performed or occur concurrently and not successively.
[0131] Although described through a number of detailed exemplary embodiments, the proposed method and the equipment for implementing the method include various variations, modifications and improvements which will be apparent to those skilled in the art, it being understood that these various variations, modifications and improvements are within the scope of the invention, as defined by the following claims. In addition, different aspects and features described above may be implemented together, or separately, or substituted for each other, and all of the various combinations and sub-combinations of the aspects and features are within the scope of the invention. Furthermore, some systems and equipment described above may not incorporate all of the modules and functions described for the preferred embodiments.
Claims
1. Method for coordinating a plurality of device management servers (301, 302) in a computer network, said plurality of device management servers comprising at least a first management server (301) and a second management server (302) which are distinct from one another, the method, implemented by a coordination computer server (300), comprising: - receiving (402) a first instruction for a first device (311) connected to said first management server (301); - receiving (403) a second instruction for a second device (312) connected to said second management server (302); - obtaining (404) dependence information relating to a dependence between the first device (311) and the second device (312); - obtaining coordination rules for executing the first instruction and the second instruction; - determining (405), on the basis of the dependence information and the coordination rules obtained, an order for executing the first instruction and the second instruction; - generating (406) and sending (407) a first control signal for executing the first instruction and a second control signal for executing the second instruction according to the determined order.
2. Method according to Claim 1, wherein said dependence information comprises: - connectivity dependence information between the first device (311) and the second device (312); and / or - service dependence information between the first device (311) and the second device (312).
3. Method according to either of the preceding claims, further comprising: - for each current management server among the first management server (301) and the second management server (302), receiving (401) descriptive data corresponding to said current management server, said descriptive data comprising: a definition of a plurality of devices (311, 312) connected to said current management server, dependence information between devices of said plurality of devices (311, 312) connected to said current management server, a definition of operations associated with said plurality of devices connected to said current management server, and a definition of effects associated with said operations on at least one device among said plurality of devices connected to said current management server; - determining said execution coordination rules on the basis of said received descriptive data for the first management server and the second management server.
4. Method according to Claim 3, wherein said execution coordination rules are further determined on the basis of predetermined quality-of-service criteria.
5. Method according to one of the preceding claims, further comprising: - for each control signal among said first control signal and said second control signal, receiving a confirmation of receipt of said control signal.
6. Method according to one of the preceding claims, further comprising: - for each control signal among said first control signal and said second control signal, receiving a confirmation of execution of the respective instruction associated with said control signal.
7. Method according to Claim 6, wherein the order of execution defines an instruction to be executed first among the first instruction and the second instruction, the method further comprising: - receiving the confirmation of execution of the instruction to be executed first in response to the sending of the associated control signal; wherein the control signal associated with the instruction to be executed second is sent (407) only after said confirmation of execution has been received.
8. Server (300) for coordinating a plurality of device management servers (301, 302) in a computer network, said plurality of device management servers comprising at least a first management server (301) and a second management server (302) which are distinct from one another, the coordination server being configured to: - receive (402) a first instruction for a first device (311) connected to said first management server (301); - receive (403) a second instruction for a second device (312) connected to said second management server (302); - obtain (404) dependence information relating to a dependence between the first device (311) and the second device (312); - obtain coordination rules for executing the first instruction and the second instruction; - determine (405), on the basis of the dependence information and the coordination rules obtained, an order of execution for the first instruction and the second instruction; - generate (406) and send (407) a first control signal for executing the first instruction and a second control signal for executing the second instruction according to the determined order.
9. System comprising: - a plurality of device management servers (301, 302) in a computer network, said plurality of device management servers comprising at least a first management server (301) and a second management server (302) which are distinct from one another; - a plurality of devices (311, 312) connected to said plurality of device management servers (301, 302), said plurality of devices comprising at least a first device (311) connected to said first management server (301) and a second device (312) connected to said second management server (302); - at least one memory storing: - a dependence database (320) comprising dependence information relating to a dependence between devices among said plurality of devices (311, 312); and - a coordination knowledge base (340) comprising a plurality of coordination rules for instructions on devices among said plurality of devices (311, 312); - a coordination server (300) configured to: - receive (402) a first instruction for said first device (311); - receive (403) a second instruction for said second device (312); - obtain (404), from the dependence database, dependence information between the first device (311) and the second device (312); - obtain, from the coordination knowledge base, coordination rules for executing the first instruction and the second instruction; - determine (405), on the basis of said dependence information obtained and said coordination rules obtained, an order of execution for the first instruction and the second instruction; - generate (406) and send (407) a first control signal for executing the first instruction and a second control signal for executing the second instruction according to the determined order.
10. Computer program product comprising instructions for implementing the method according to one of Claims 1 to 7 when this program is executed by a processor.