Systems and methods for providing a self-electing service
Abstract
Describes a method for on-demand services for managed devices. The method includes configuring services for managed devices. The service is configured on at least one additional managed device in the network segment. The method also includes determining whether the managed device is selected to provide the service by negotiating with the at least one additional managed device in the network segment based on a pre-configured election rule.
Term
10.6 yearsto projected expiry
Projected expiry 12 May 2037, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
25 claims: 2 independent, 23 dependent
- 1一种用于受管理设备的自选服务的方法,包括: 为所述受管理设备配置服务,其中,所述服务被配置在网络段中的至少一个附加的受 管理设备上;以及 通过基于预先配置的当选规则与所述网络段中的所述至少一个附加的受管理设备进 行协商来确定所述受管理设备是否被选择提供所述服务。
- 2根据权利要求1所述的方法,其中,确定所述受管理设备是否提供所述服务包括: 基于预先配置的当选规则所指示的准则来确定所述受管理设备的当选得分; 将所述受管理设备的当选得分与至少一个附加的受管理设备的当选得分进行比较;以 及 当所述受管理设备的当选得分比所述至少一个附加的受管理设备的当选得分大一个 阈值量时,选择所述受管理设备提供所述服务。
- 3根据权利要求2所述的方法,其中,所述当选得分指示所述受管理设备作为候选者提 供所述服务有多好。
- 4根据权利要求2所述的方法,其中,所述预先配置的当选规则被提供给所述网络段中 的每个受管理设备,并且其中,每个受管理设备使用预先配置的当选规则来确定它自己的 当选得分。
- 5根据权利要求2所述的方法,其中,在所述网络段上发送的多播消息中将所述受管理 设备的当选得分和所述至少一个附加的受管理设备的当选得分传送给彼此。
- 6根据权利要求1所述的方法,其中,当所述受管理设备被选择提供所述服务时,所述 方法进一步包括: 在多播信道上发送周期性消息,所述周期性消息指示所述受管理设备被选择提供所述 服务,所述周期性消息还包括所述受管理设备的当选得分,其中,所述至少一个附加的受管 理设备在接收到所述周期性消息时允许所述受管理设备提供所述服务。
- 7根据权利要求1所述的方法,进一步包括: 当所述受管理设备加入所述网络段时,在多播信道上发送查询消息,所述查询消息指 示所述受管理设备能够提供所述服务并且查询所述网络段中的另一受管理设备是否正在 提供所述服务。
- 8根据权利要求7所述的方法,进一步包括: 从第二受管理设备接收查询响应,所述查询响应指示所述第二受管理设备被选择提供 所述服务,所述查询响应还包括所述第二受管理设备的当选得分;以及 通过将所述第二受管理设备的当选得分与所述受管理设备的当选得分进行比较来确 定所述受管理设备是否被选择代替所述第二受管理设备来提供所述服务。
- 9根据权利要求1所述的方法,其中,当所述受管理设备被选择提供所述服务时,所述 方法进一步包括: 在多播信道上从第二受管理设备接收查询消息,所述查询消息查询所述服务是否正被 提供;以及 在所述多播信道上发送指示所述受管理设备被选择提供所述服务的查询响应消息,所 述查询响应消息包括所述受管理设备的当选得分。
- 10根据权利要求1所述的方法,其中,当先前选择的受管理设备变为离线或停止提供 所述服务时,其余的受管理设备基于预先配置的当选规则来协商谁将提供所述服务。 根据权利要求1所述的方法,其中,在所述协商期间交换的消息包括来自于始发者 的密码签名,使得接受者能够对所述消息进行验证,其中,如果用于消息的密码签名不匹 配,则所述消息被丢弃。
- 1112 .根据权利要求1所述的方法,其中,当所述受管理设备被选择提供所述服务时,所述 方法进一步包括: 向管理服务器报告所述受管理设备被选择提供所述服务;以及 从所述管理服务器接收指示所述受管理设备是否应开始所述服务的指令。
- 1213 .根据权利要求12所述的方法,进一步包括: 将指示所述服务的状态的状态报告发送到所述管理服务器。
- 1314 .一种被配置用于自选服务的受管理设备,包括: 处理器; 存储器,该存储器与所述处理器进行电子通信;以及 存储在所述存储器中的指令,该指令可执行为: 为所述受管理设备配置服务,其中,所述服务被配置在网络段中的至少一个附加的受 管理设备上;以及 通过基于预先配置的当选规则与所述网络段中的所述至少一个附加的受管理设备进 行协商来确定所述受管理设备是否被选择提供所述服务。
- 1415 .根据权利要求14所述的受管理设备,其中,可执行为确定所述受管理设备是否将提 供所述服务的指令包括可执行为进行以下操作的指令: 基于预先配置的当选规则所指示的准则来确定所述受管理设备的当选得分; 将所述受管理设备的当选得分与至少一个附加的受管理设备的当选得分进行比较;以 及 当所述受管理设备的当选得分比所述至少一个附加的受管理设备的当选得分大一个 阈值量时,选择所述受管理设备提供所述服务。
- 1516 .根据权利要求15所述的受管理设备,其中,所述当选得分指示所述受管理设备作为 候选提供所述服务有多好。
- 1617 .根据权利要求15所述的受管理设备,其中,所述预先配置的当选规则被提供给所述 网络段中的每个受管理设备,并且其中,每个受管理设备使用预先配置的当选规则来确定 它自己的当选得分。
- 1718 .根据权利要求15所述的受管理设备,其中,在所述网络段上发送的多播消息中将所 述受管理设备的当选得分和所述至少一个附加的受管理设备的当选得分传送给彼此。
- 1819 .根据权利要求14所述的受管理设备,其中,当所述受管理设备被选择提供所述服务 时,所述指令进一步可执行为: 在多播信道上发送周期性消息,所述周期性消息指示所述受管理设备被选择提供所述 服务,所述周期性消息还包括所述受管理设备的当选得分,其中,所述至少一个附加的受管 理设备在接收到所述周期性消息时允许所述受管理设备提供所述服务。
- 1920 .根据权利要求14所述的受管理设备,进一步包括可执行为进行以下操作的指令: 当所述受管理设备加入所述网络段时,在多播信道上发送查询消息,所述查询消息指 示所述受管理设备能够提供所述服务并且查询所述网络段中的另一受管理设备是否正在 提供所述服务。
- 2021 .根据权利要求20所述的受管理设备,进一步包括可执行为进行以下操作的指令: 从第二受管理设备接收查询响应,所述查询响应指示所述第二受管理设备被选择提供 所述服务,所述查询响应还包括所述第二受管理设备的当选得分;以及 通过将所述第二受管理设备的当选得分与所述受管理设备的当选得分进行比较来确 定所述受管理设备是否被选择代替所述第二受管理设备来提供所述服务。
- 2122 .根据权利要求14所述的受管理设备,其中,当所述受管理设备被选择提供所述服务 时,所述指令进一步可执行为: 在多播信道上从第二受管理设备接收查询消息,所述查询消息查询所述服务是否正被 提供;以及 在所述多播信道上发送指示所述受管理设备被选择提供所述服务的查询响应消息,所 述查询响应消息包括所述受管理设备的当选得分。
- 2223 .根据权利要求14所述的受管理设备,其中,当先前选择的受管理设备变为离线或停 止提供所述服务时,其余的受管理设备基于预先配置的当选规则来协商谁将提供所述服 务。
- 2324 .根据权利要求14所述的受管理设备,其中,在所述协商期间交换的消息包括来自于 始发者的密码签名以使得接受者能够对所述消息进行验证,其中,如果用于消息的密码签 名不匹配,则所述消息被丢弃。
- 2425 .根据权利要求14所述的受管理设备,其中,当所述受管理设备被选择提供所述服务 时,所述指令进一步可执行为: 向管理服务器报告所述受管理设备被选择提供所述服务;以及 从所述管理服务器接收指示所述受管理设备是否应开始所述服务的指令。
- 2526 .根据权利要求25所述的受管理设备,进一步包括可执行为进行以下操作的指令:将 指示所述服务的状态的状态报告发送到所述管理服务器。
Independent claims25
157 paragraphs, as filed
System and method for providing self-selected service
[0001] CROSS REFERENCE TO RELATED APPLICATIONS
[0002] This application is a continuation of and claims the priority of U.S. Patent Application No. 15/154733 entitled "Systems and Methods for Providing a Self-Electing Service" filed on May 13, 2016, and this application is incorporated by reference Incorporated into this article.
Technical field
[0003] The present disclosure generally relates to computers and computer-related technologies. More specifically, the present disclosure relates to a system and method for providing a self-electing service between peer-to-peer computing devices on a network.
Background technique
[0004] The use of electronic devices in modern society has become increasingly common. As the cost of electronic devices decreases, and as the usefulness of electronic devices increases, people are using them for a variety of purposes. For example, many people use electronic devices to perform work tasks and seek entertainment. One type of electronic device is a computer.
[0005] Computer technology continues to develop at a rapid pace. Commonly used computers include everything from handheld computing devices to large multi-processor computer systems. These computers include software (such as applications that include a user interface) to make them useful and accessible to end users. Computers are increasingly linked to other computers through networks. With the expansion of computer technology, the size of the network continues to increase. A network can link computers that are far apart.
[0006] One of the challenges involved in the network is the provision of services. One or more computing devices in the network may be configured to provide services in a network segment. Traditionally, network administrators must individually configure each of these computing devices for this task. However, this can be burdensome for the administrator. In addition, when the service is repeated, or when the computing device that provides the service fails or goes offline, problems may occur. From this discussion, it can be observed that the system and method for providing on-demand services between peer-to-peer computing devices on the network may be beneficial to the operation and management of the computer network.
Description of the drawings
[0007] FIG. 1 is a block diagram illustrating a configuration of a network for providing on-demand services;
[0008] FIG. 2 is a block diagram illustrating a managed device configured to provide an on-demand service;
[0009] FIG. 3 is a flowchart illustrating a method for providing on-demand services;
[0010] FIG. 4 is a flowchart illustrating another configuration of a method for providing an on-demand service;
[0011] FIG. 5 is a flowchart illustrating another configuration of a method for providing on-demand services;
[0012] FIG. 6 is a flowchart illustrating another configuration of a method for providing an on-demand service;
[0013] FIG. 7 is a flowchart illustrating another configuration of a method for providing on-demand services;
[0014] FIG. 8 is a block diagram illustrating a configuration of a network in which the system and method for providing on-demand services can be implemented; and
[0015] FIG. 9 illustrates various components that can be utilized in a computing device.
Detailed ways
[0016] A method for on-demand services of managed devices is described. The method includes configuring services for managed devices. The service is configured on at least one additional managed device in the network segment. The method further includes determining whether the managed device is selected to provide the service by negotiating with the at least one additional managed device in the network segment based on a pre-configured election rule.
[0017] Determining whether the managed device provides the service may include determining the election score of the managed device based on a criterion indicated by a pre-configured election rule. The election score of the managed device may be compared with the election score of at least one additional managed device. When the election score of the managed device is greater than the election score of the at least one additional managed device by a threshold amount, the managed device may be selected to provide the service. The selection score indicates how well the managed device provides the service as a candidate.
[0018] Pre-configured election rules may be provided to each managed device in the network segment. Each managed device can use pre-configured election rules to determine its own election score. The election score of the managed device and the election score of the at least one additional managed device are transmitted to each other in a multicast message sent on the network segment.
[0019] When the managed device is selected to provide the service, the method further includes sending periodic messages on a multicast channel. The periodic message may indicate that the managed device is selected to provide the service. The periodic message may also include the election score of the managed device. The at least one additional managed device allows the managed device to provide the service when receiving the periodic message.
[0020] The method may also include sending a query message on a multicast channel when the managed device joins the network segment. The query message may indicate that the managed device can provide the service and query whether another managed device in the network segment is providing the service.
[0021] The method may further include receiving a query response from the second managed device. The query response may indicate that the second managed device is selected to provide the service. The query response may also include the election score of the second managed device. The method may further include determining whether the managed device is selected to replace the second managed device to provide the service by comparing the election score of the second managed device with the election score of the managed device.
[0022] When the managed device is selected to provide the service, the method may further include receiving an inquiry message from the second managed device on a multicast channel. The query message can query whether the service is being provided. The method may further include sending a query response message indicating that the managed device is selected to provide the service on a multicast channel, the query response message including the election score of the managed device.
[0023] When the previously selected managed device becomes offline or stops providing the service, the remaining managed devices negotiate who will provide the service based on pre-configured election rules.
[0024] The messages exchanged during the negotiation may include a cryptographic signature from the originator so that the recipient can verify the message. If the cryptographic signature used for the message does not match, the message can be discarded.
[0025] When the managed device is selected to provide the service, the method may further include reporting to the management server that the managed device is selected to provide the service. The method may further include receiving an instruction from the management server indicating whether the managed device should start the service. The method may further include sending a status report indicating the status of the service to the management server.
[0026] Also described is a managed device configured for an on-demand service. The managed device includes a processor, a memory that communicates with the processor, and instructions stored in the memory. The instructions may be executable to configure services for the managed device. The service is configured on at least one additional managed device in the network segment. The instruction also
It may be performed to determine whether the managed device is selected to provide the service by negotiating with the at least one additional managed device in the network segment based on a pre-configured election rule.
[0027] Various configurations of the system and method will now be described with reference to the accompanying drawings, in which the same reference numerals may indicate the same or functionally similar elements. As generally described and exemplified in the drawings herein, the configuration of the current system and method can be arranged and designed in a variety of different configurations. Therefore, as shown in the drawings, the following more detailed description of several configurations is not intended to limit the scope of the claimed system and method, but only represents various configurations of the system and method.
[0028] FIG. 1 is a block diagram illustrating a configuration of a network 100 for providing an on-demand service 118. The network 100 may include multiple managed devices 102a-c. Examples of managed devices 102a-c include desktop computers, laptop computers, tablet computers, servers, cellular phones, smart phones, routers, gaming systems, and the like. The network 100 may include one or more local area networks (LAN), wide area networks (WAN), wireless local area networks (WLAN), the Internet, and the like.
[0029] In the field of computer management, sometimes what is needed is for one or more devices to provide a specific service 118 (or a set of services 118) on a network segment. In implementation, the network segment can be a sub-network (also called a sub-network) subdivision of an Internet Protocol (IP) network. Network segments can be connected to larger networks via routers and switches.
[0030] The service 118 is any kind of processing that provides a certain service. Examples of services 118 that the managed device 102 may provide include, but are not limited to: pre-launch services (for example, pre-launch execution environment (PXE) services), device discovery services, and media streaming services (for example, Universal Plug and Play (UPnP) )). The service 118 can be a Windows service, a Linux/Unix daemon, a standard process, or even a service within a given process that can be enabled and disabled.
[0031] The network segment may include multiple managed devices 102. In an implementation, the managed device 102 is a computing device that is configured to communicate with the management server 104 and receive instructions from the management server 104. The management server 104 may be located in the same network segment as the managed device 102, or the management server 104 may be located in another network location. For example, the managed device 102 may communicate with the management server 104 via the Transmission Control Protocol/Internet Protocol (TCP/IP), through an intranet or an extranet.
[0032] In implementation, the managed device 102 may include an agent module that implements control processing and/or management processing within the network segment. The agent module can also communicate with the management server 104. For example, the managed device 102 may be configured to detect unmanaged devices that access the network segment, and report these unmanaged devices to the management server 104.
[0033] In current network operations, the administrator must install the service 118 on one managed device 102 in each subnet. It is difficult for an administrator to have a special configuration that must be installed on only one computer on each subnet. In other words, having a separate configuration that includes the installation of the service 118 and finding a group of managed devices 102 (one on each subnet) is a challenge. This is a time-consuming process that requires the administrator to know which managed device(s) 102 will receive service 118, which managed device(s) 102 will provide service 118, and which managed device(s) 102 will not provide service 118 . This problem is complicated in a network 100 that includes multiple network segments (each network segment each has one or more managed devices 102 that provide services 118 in a given network segment).
[0034] At present, the responsibility of the network administrator is to know which managed device 102 the service 118 is installed on, and then to deal with one configuration of the installation package that enables the service 118 feature and another configuration that does not enable the service 118. Configuration. In addition, the administrator must then deploy these various configurations to the appropriate managed device 102. In other words, the system administrator must create different client configurations, some client configurations have the desired service 118 while others do not. The administrator must also decide on which machines to install the configuration with service 118 and on which machines to install the configuration without service 118. Through this discussion, it can be seen that what the administrator wants is not to have to specifically assign each managed device
102 is configured to provide service 118 or not provide service 118.
[0035] At a certain point in time, the managed device 102 that is providing the service 118 may become offline (eg, shut down). This may be unintentional or intentional. The administrator then assumes that the service 118 being provided on the network segment will no longer be provided. Currently, no managed device 102 is providing service 118. In this case, the network segment will lose the expected service 118. When the service 118 or the managed device 102 goes offline, there is no mechanism to allow another managed device 102 to take over without the intervention of the administrator.
[0036] In addition, when multiple managed devices 102 provide redundant services 118, the opposite problem may occur. For example, the administrator may accidentally install an agent package to enable the service 118 on all managed devices 102. These managed devices 102 may start to flood the management server 104 with more information than needed. This is an inefficient use of network resources. It is desirable that multiple systems can provide service 118, but only one managed device 102 may be necessary at any given time in each network segment.
[0037] The systems and methods described herein provide client on-demand services 118 between peer-to-peer managed devices 102 on the network 100. These methods provide service 118 failover and eliminate service 118 duplication. Multiple managed devices 102 may be configured to provide service 118, but once installed, only one managed device 102 or a limited number of managed devices 102 will provide service 118.
[0038] Multiple managed devices 102 in a network segment can be configured in a similar manner so that any one of them can provide a given service 118. In the example shown in FIG. 1, three managed devices 102 are configured to be able to provide the same service 118. The managed device A 102a, the managed device B 102b, and the managed device C 102c are all configured to provide the same service 118. It should be noted that this example describes a single service 118. However, multiple managed devices 102 may be configured to provide multiple services 118. Although three managed devices 102 are shown, it should be appreciated that more or fewer managed devices 102 may be included in a given network segment.
[0039] The managed devices 102@-c may be configured with optional communicators 110a-c and optional controllers 112a-c, respectively. The optional communicator 110 can communicate with the management server 104. The optional communicator 110 can also communicate with other managed devices 102 through the multicast channel 120. The optional controller 112 can be configured to start and stop various kinds of services 118 on the managed device 102.
[0040] During deployment, the administrator can configure equal capabilities for multiple managed devices 102. Therefore, all managed devices 102 can be configured identically when they are installed. As mentioned above, it is currently necessary to create a unique configuration that enables the service 118, and then a managed device 102 or a group of managed devices 102 needs to be selected for separation from other systems by using the standard configuration (where the service 118 is not installed) installation.
[0041] In implementation, the system administrator can configure what managed device 102 can provide services 118, what services 118 should be provided, and which subnets should have some or any of these services 118. This can be configured at the management server 104. The configuration information 106 about all the managed devices 102 in the managed enterprise may include information such as the following: devices that are eligible to provide specific services 118, services 118 that should be provided, and the services on which each service 118 should be provided Subnet. The administrator can change these to meet the business needs of the company or customer.
[0042] The management server 104 may also include status information 108 in which the status from the managed device 102 is reported to the management server 104 for reporting and management purposes. The status information 108 can be maintained on files, databases, or any other kind of permanent storage.
[0043] It should be noted that the system and method described herein can be implemented with or without the management server 104. For example, the managed device 102 may be configured to receive the configuration information 106 from the management server 104 and send it to the management server 104.
104 reports status information 108. Alternatively, the managed device 102 may provide the on-demand service 118 without the management server 104. The managed devices 102 automatically decide among themselves which device(s) 102 should provide the service 118 in a reliable and trustworthy manner. The managed device 102 can determine whether it is selected to provide the service 118 by negotiating with at least one additional managed device 102 in the network segment. The negotiation may be based on pre-configured election rules 114.
[0044] The election rules 114 may be provided to each managed device 102 in the network segment. For example, the election rule 114 may be installed on the managed device 102 as part of the self-selection controller 112. The election rules 114 may be the same for each managed device 102, thereby providing a uniform standard for evaluating the suitability of the managed device 102 to provide the service 118. The election rules 114 may include criteria that allow the managed device 102 to determine its election score 116. The selection score 116 indicates how good a given managed device 102 is to provide service 118 as a candidate.
[0045] The winning scoring system may include various criteria associated with the managed device 102. The criteria may include the device type (eg, desktop vs. laptop), processor speed, available hard disk space, and whether the managed device 102 is already running the desired service 118. Other criteria may be part of the election rules 114. The election rules 114 can be updated so that criteria can be added, modified, or removed.
[0046] Each managed device 102 may use pre-configured election rules 114 to determine its own election score 116. The managed device 102 may periodically recalculate its election score 116 to reflect changes in the managed device 102.
[0047] The managed device 102 can communicate its election score 116 with other managed devices 102. For example, when the managed devices 102 on the network segment become online, the managed devices 102 may broadcast a query message indicating that they can provide a service 118 or a group of services 118 of the managed device 102. The self-selected communicator 110 may send a query message with the election score 116 of the managed device 102. In the implementation, the sent messages are cryptographically signed by the originator so that the recipient can verify that they can trust these messages. If the cryptographic signatures do not match, the message is discarded. The query message may include the identification (ID) of the given service 118.
[0048] The message may be sent on the multicast channel 120. Multicast refers to a communication technology in which a single computing device can send the same data to many (or even all) computing devices on a network segment. The use of multicast messages is more efficient than establishing point-to-point communication. In point-to-point communication, each managed device 102 in the subnet establishes a connection.
[0049] When receiving the election score 116 of another managed device 102, a given managed device 102 can compare its election score 116 with the election score 116 of the other managed device 102. The managed device 102 with the highest election score 116 wins and is selected to provide the service 118. If there is a tie, a tiebreaker algorithm can be used to decide which managed device 102 wins.
[0050] In the example shown in FIG. 1, the managed device B 102b has a higher selection score 116b than the managed device A 102a or the managed device C 102c. Therefore, the managed device BIO2b is selected to provide the service 118b. The managed device A 102a and the managed device C 102c are not selected to provide the service 118.
[0051] In implementation, if another managed device 102 is currently providing services 118, when the election score 116 of a given managed device 102 is greater than the election score of the other managed device 102 by a threshold amount , The given managed device 102 is selected to provide the service 118.
[0052] Once selected, the managed device 102 can send a message on the multicast channel 120 to indicate to another managed device 102 that it has been selected to provide the service 118. The selected managed device 102 may include its election score 116 in the message to allow another managed device 102 to compare their election score 116.
[0053] The selected managed device 102 may send periodic heartbeat messages on the multicast channel 120 so that all the managed devices 102 can recognize that the selected managed device 102 that provides the service 118 is still running. If the selected managed device 102 stops providing the service 118 or goes offline for some reason, the remaining managed devices 102 can negotiate who will provide the service based on the pre-configured election rules 114. For example, the remaining managed devices 102 may start the selection process again and exchange the selection score 116 to determine which managed device 102 is selected to provide the service 118.
[0054] If the managed device 102 that is providing the service 118 becomes offline, another managed device 102 will pick up and provide the service 118 through an on-demand service, thereby providing dynamic failover capabilities. If the managed device 102 that once provided the service 118 comes back online, and another managed device 102 has taken over, they will negotiate so that only one of them will continue to provide the service 118.
[0055] In an implementation, once elected, the managed device 102 can register with the management server 104 to see whether the service 118 (or multiple services 118) should be provided on the network segment where the managed device 102 is located. If the service 118 should be enabled on the network segment, the selected managed device 102 can start the service 118. If the service 118 should not be enabled, the selected managed device 102 may continue to send a periodic heartbeat message on the multicast channel 120 indicating that the selected managed device 102 is still selected. However, the selected managed device 102 may not enable the service 118.
[0056] In implementation, the selected managed device 102 only reports to other managed devices 102 that it has been selected. The selected managed device 102 does not report to the peer managed device 102 whether it is providing services. In this implementation, the selected managed device 102 does not publish the fact that the service 118 has been disabled or enabled for the subnet where the selected managed device 102 is located. In another implementation, the selected managed device 102 may publish the information to the peer managed device 102.
[0057] The status of the service(s) 118 may (optionally) be reported to the management server 104 periodically, so the system administrator knows that it is still running. In implementation, the interval for status reporting is configurable, so system administrators can balance the timeliness of data being sent with the amount of network bandwidth they are willing to allow it to consume. The selected managed device 102 can send the status information 108 to the management server 104. By limiting the status report to the selected managed devices 102, network resources can be saved.
[0058] In an implementation, the management server 104 may include a graphical interface that lists the subnets and the managed devices 102 included in each subnet. This gives the administrator to select a list of subnets in the network 100 from the graphical interface. The administrator can browse these subnets in turn. For example, the administrator may or may not want a given service 118 on a given subnet. The administrator can enable or disable the service 118 on the subnet from the management server 104. This implementation provides granularity at the subnet level. These decisions can be communicated to the managed device 102 via the configuration information 106.
[0059] In addition, the administrator can also enable or disable the service 118 at the device level. For example, the administrator may not want to provide the service 118 on the laptop of a particular individual. The administrator can disable the service 118 for this particular laptop, but other managed devices 102 on the subnet will still be able to provide the service 118 locally there.
[0060] The graphical interface on the management server 104 can display status information 108. For example, the graphical interface may provide the administrator with a list of subnets, which managed devices 102 are selected, and how long the service 118 has been running. In this way, the administrator can recognize that the system is healthy. The administrator can identify when a given managed device 102 last reported.
[0061] It should be noted that the example described in conjunction with FIG. 1 is discussed in terms of only having a single managed device 102 provide the service 108. In another example, multiple managed devices 102 may be selected to provide service 118 based on the selection process. For example, the two managed devices 102 with the highest election score 116 may be selected to provide the service 118, and so on.
[0062] The described system and method for providing on-demand services 118 frees the system administrator from having to create different client configurations (some of which have the desired service 118, while others do not). This also frees the administrator from having to decide on which managed devices 102 to install configurations with services 118 and on which managed devices 102 to install configurations without services 118. If the service 118 or the managed device 102 goes offline, the automatic failover allows another managed device 102 to take over without the intervention of the administrator. If at some point in time, multiple managed devices 102 provide service(s) 118 and fewer managed devices 102 are desired, then managed devices 102 negotiate among themselves, and there is only one ( Or several) will provide services 118. This can be especially beneficial when mobile devices join a network segment.
[0063] FIG. 2 is a block diagram illustrating a managed device 202 configured to provide an on-demand service 218. The managed device 202 may be implemented according to the managed device 102 described in conjunction with FIG. 1.
[0064] The managed device 202 includes an agent module 222. The agent module 222 may be implemented by hardware, software, or a combination of hardware and software. The agent module 222 may include a self-selected communicator 210 and a self-selected controller 212. As described in conjunction with FIG. 1, the self-selected communicator 210 can communicate with other managed devices 202 on the multicast channel 120. The optional communicator 210 can also communicate with the management server 104.
[0065] The agent module 222 may establish a connection between the management server 104 and the managed device 202, where the management server 104 has some control over the managed device 202. For example, the proxy module 222 may allow the management server 104 to remotely control the operational aspects of the managed device 202. Other examples of the functions of the agent module 222 include, but are not limited to: running diagnostic tests on the managed device 202, installing device drivers and/or applications on the managed device 202, scanning for malware on the managed device 202, sending reports To the management server 104, prohibit unauthorized use of the managed device 202 (for example, prohibit software installation, prohibit browsing), relay information to the management server 104, manage the license usage of the managed device 202, and manage the managed device 202 on the managed device 202 Power protection, direct certain activities on the managed device 202 (for example, what software is running), and/or perform maintenance and/or repair on the managed device 202.
[0066] Multiple managed devices 202 in a network segment may be configured to provide one or more services 118. Each managed device 202 can be configured with the same proxy module 222. Therefore, the managed device 202 may equally be able to provide a given service 218. In this example, the managed device 202 is configured with multiple services 218. Alternatively, the managed device 202 may be configured with a single service 218.
[0067] The managed device 202 can use the election rules 214 to negotiate with other managed devices 202 whether it will provide the service 218. The election rules 214 may include criteria 224 that the managed device 202 uses to determine the election score 216. The criterion 224 may reflect the characteristics of the managed device 202. Each criterion 224 may provide an election score 216 for a given characteristic. These election scores 216 may indicate how well the managed device 202 is to provide the service 218 as a candidate.
[0068] One criterion 224 may be the amount of random access memory (RAM) that the managed device 202 has. A higher election score 216 may be associated with more RAM, and a lower election score 216 may be associated with less RAM.
[0069] Another criterion 224 may be processor speed, where a faster processor speed has a higher election score 216 compared to a lower processor speed. Another criterion 224 may be the amount of hard disk space available. Another criterion 224 may include the type of device (e.g., desktop vs laptop).
[0070] The election rules 214 may vary according to the type of service 218 being provided. For example, if the service 218 is associated with a wired connection (eg, an Ethernet type connection), as opposed to a wireless connection, if the managed device 202 has a wired network connection, the criteria for connection 224 may give a higher selection score 216 . In another example, the service 218 may be related to a wireless connection. In this case, if the managed device 202 has a wireless network connection, it is used to connect
The criterion 224 can give a higher winning score 216.
[0071] Another criterion 224 may be whether the managed device 202 is currently selected to provide the service 218. It is beneficial to avoid quickly cutting off service 218 on one managed device 202 and starting service 218 on another managed device 202. When the managed device 202 is currently selected to provide services, the criterion 224 may have a higher selection score 216. It should be noted that other criteria 224 may be used to determine the election score 216 of the managed device 202.
[0072] The managed device 202 may evaluate its own characteristics according to the election rules 214 to determine the election score 216. For example, the managed device 202 may evaluate each criterion 224 to determine a set of winning scores 216. The managed device 202 may add up the election scores 216 of all the criteria 224 to determine its total election score 216. The scoring system enables the managed devices 202 in the network segment to determine which managed device 202 is most likely to provide the service 218 or is the best candidate to provide the service 218.
[0073] The managed device 202 may compare its election score 216 with the election score 216 of another managed device 202 to determine who will provide the service 218. In one implementation, the managed device 202 with the highest selection score 216 is selected to provide the service 218. In another implementation, the election score 216 of the managed device 202 must be greater than the election score 216 of another managed device 202 that is currently selected to provide the service 218 by an election score threshold 228. The election score threshold 218 may be the amount that the election score 216 of the managed device 202 must exceed to be selected to provide the service 218. In this way, a given managed device 202 must have a sufficiently high selection score 216 before switching options.
[0074] In an example, the first managed device 202 and the second managed device 202 may be configured to provide services 218 in a network segment. In addition, the winning score threshold 228 has a value of "10". In this example, the first managed device 202 is currently selected to provide the service 218. In addition, the first managed device 202 has an election score of 150.
[0075] In one situation, the second managed device 202 has an election score of 140. In this case, the first managed device 202 has a higher selection score and continues to be selected to provide the service 218.
[0076] In another situation, the second managed device 202 has an election score of 152. Even if the second managed device 202 has a higher election score, the difference between the two election scores (ie, 152-150=2) is less than the election score threshold 228 of 10. Therefore, the first managed device 202 continues to be selected to provide the service 218.
[0077] In yet another case, the second managed device 202 has an election score of 160. In this case, the election score 216 of the second managed device 202 is greater than the election score 216 and the election score threshold 228, and the second managed device 202 is selected to provide the service 218. At this moment, both the first managed device 202 and the second managed device 202 realize that the first managed device 202 should abdicate and let the second managed device 202 provide services 218.
[0078] In a case where two or more managed devices 202 have the same winning score 216, the managed device 202 may adopt a tie-breaking algorithm. In an implementation, the managed device 202 can create a random ID. This can be a globally unique ID (GUID). When a tie occurs, the managed devices 202 can compare their GUIDs with each other. Whichever managed device 202 has the highest GUID or the lowest GUID will be the selected winner. Because they are globally unique, one managed device 202 is guaranteed to be higher or lower than all other managed devices 202, in which case it will then be selected.
[0079] In an implementation, the managed device 202 can record the service status 230 of a given service 218. When the managed device 202 is in operation, the optional controller 212 can record the service status 230 on the different services 218. The service status 230 may indicate whether a given service 218 is active, and which managed device 202 is providing the service 218. The service status 230 information may be stored in the memory. When the managed device 202 becomes online in the network segment (for example, powered on or joins the network segment), the managed device 202 does not know the service status 230.
[0080] The optional communicator 210 may send a query message with the ID of the service 218 on the multicast channel 120. Other managed devices 202 in the network segment can listen. If another managed device 202 has been elected, the managed device 202 will respond with a query response including the election score of the managed device 202.
[0081] If the managed device 202 sends a query message and no other managed device 202 responds, the managed device 202 that initiated the query can assume that it is the only managed device 202 on the network segment, and there is no other managed device 202. The device 202 is selected to provide the service 218. In this case, the managed device 202 can become an optional service 218.
[0082] Once the managed device 202 is selected to provide the service 218, the selected managed device 202 can send periodic heartbeat messages. The heartbeat message can be sent after the heartbeat message interval 234, which is a configurable amount of time. The heartbeat message may be sent on the multicast channel 120. The heartbeat message may indicate that the managed device 202 is still selected to provide the service 218.
[0083] The managed device 202 may include a query timer 232. The managed device 202 may send a query message on the multicast channel 120 when the query timer 232 expires. The query message may indicate that the managed device 202 can provide the service 218, and may query whether another managed device 202 in the network segment is providing the service 218. The optional controller 212 may reset the query timer 232 when receiving a heartbeat message, query response, or other message from another managed device 202 selected to provide the service 218.
[0084] In implementation, the managed device 202 may implement security features to ensure the authenticity of messages exchanged on the multicast channel 120. The multicast channel 120 is essentially an open broadcast channel, so anyone who can listen on the multicast channel 120 will be able to view all the traffic that is going on and off.
[0085] A malicious device may add its own message to the multicast channel 120. Malicious devices may even distort where the message came from. It may insert a message so that it appears to come from a previously selected managed device 202 or some other device.
[0086] To prevent this, each managed device 202 in the network segment can be configured with an encrypted trust chain between them when they are installed. Each managed device 202 can create a private key 236. The managed device 202 can then create a certificate signing request (CSR), the CSR has been forwarded to the management server, the management server then signs it, and sends back a public certificate 238 (e.g., CRT file or certificate file).
[0087] If all managed devices 202 have been signed with the same certificate or signed by the same management server, they will inherently trust each other. In one approach, when the managed device 202 sends a message on the multicast channel 120, then the managed device 202 will broadcast their public certificate 238 first. The other managed device 202 will capture these announcement certificates 238, and if the public certificate 238 has been signed by a trusted management server, it will save a copy of them in the public certificate cache 240. When the message is received, the message can then be checked against the received public certificate 238. If it passes the password check (for example, the message is verified that it was signed by the managed device 202 that sent it), then the managed device 202 can trust it. In this case, the message can only be sent by the managed device 202 with the private key 236.
[0088] If the new managed device 202 is online, it can start to view messages from other managed devices 202. If the new managed device 202 does not have the public certificate 238 of the other managed device 202, the new managed device 202 may send a request for the public certificate 238 of the other managed device 202 to them. The new managed device 202 may store the received public certificate 238 in its public certificate cache 240. The new managed device 202 can then begin to verify any incoming messages.
[0089] In implementation, the message may not be encrypted. However, the message can be signed to ensure that no other device can generate a message that appears to come from a valid managed device 202, and also to ensure that the message has not been tampered with.
[0090] Another concern is replay attacks. In this case, a malicious device can record a message from a valid sender on the network and then save it. Then, when appropriate, the malicious device can rebroadcast the message to the network, and all those devices that are listening cannot distinguish whether it comes from a valid managed device 202.
[0091] In order to solve the replay attack, the self-selected communicator 210 may maintain a message counter 242. This can be a 64-bit up counter. Each time a new message is sent by the managed device 202, the message counter 242 is incremented by one. The managed device 202 may include the count value of the message counter 242 in the sent message. When a message is received from another managed device 202, the receiving managed device 202 can determine whether the count value of the message is within a tolerance level. If the message is outside the tolerance level, the message is ignored.
[0092] In an example, the monitored managed device 202 that performs monitoring can view a data packet (for example, a command message) from the transmitted managed device 202, where the count value of the data packet is 1000. Then, the monitored and managed device 202 suddenly sees a message with a count value of 501. The monitoring managed device 202 will immediately discard the second message because it will recognize that the second message must be very old because the count value on it is unreasonable. Because multicast traffic may get packets out of order, it may receive messages with count values of 10, then 9, then 11. These count values are relatively close to each other in numbers and sequence, so these messages will be within tolerance levels and are considered valid.
[0093] It should be noted that using date and/or time may be problematic for verifying messages. There is no good reference point for date and time. The managed device 202 may have the date and time set incorrectly. Therefore, the message counter 242 method avoids the problem of incorrectly configuring the date and time.
[0094] FIG. 3 is a flowchart illustrating a method 300 for providing an on-demand service 118. The method 300 may be executed by the managed device 102. The managed device 102 may be part of a network segment (for example, a subnet).
[0095] The managed device 102 may be configured 302 to serve 118. The service 118 may be configured 302 on at least one additional managed device 102 on the network segment.
[0096] The managed device 102 may determine 304 whether it is selected to provide the service 118 by negotiating with at least one additional managed device 102 in the network segment based on a pre-configured election rule 114. In an implementation, determining 304 whether the managed device 102 will provide the service 118 may include determining the election score 116 of the managed device 102 based on the criteria 224 indicated by the pre-configured election rules 114. The managed device 102 may use the pre-configured election rules 114 to determine an election score 216 for one or more criteria 224 associated with the managed device 102. The selection score 216 indicates how well the managed device 102 provides the service 118 as a candidate.
[0097] The managed device 102 may compare its own election score 116 with the election score 116 of at least one additional managed device 102. The election score of the managed device 102 and the election score of the additional managed device(s) 102 are transmitted to each other in a multicast message sent on the multicast channel 120 of the network segment. The messages exchanged during the negotiation may include a cryptographic signature from the originator so that the recipient can verify the message. If the cryptographic signature used for the message does not match, the message is discarded.
[0098] When the election score of the managed device 102 is greater than the election score 116 of the additional managed device 102(s) by a threshold amount, the managed device 102 may be selected to provide the service 118. For example, if the difference between the election score 116 of the managed device 102 and the election score 116 of the currently selected managed device 102 is greater than the election score threshold 228, the managed device 102 is now selected to provide the service 118.
[0099] FIG. 4 is a flowchart illustrating another configuration of a method 400 for providing an on-demand service 118. Method 400 can
Executed by the managed device 102. The managed device 102 may be part of a network segment (for example, a subnet). The managed device 102 may be configured with a service 118. The service 118 may be configured on at least one additional managed device 102 on the network segment. In this example, the second managed device 102 is also configured to provide services 118 on the network segment.
[0100] The managed device 102 may receive 402 a message from the second managed device 102. For example, the second managed device 102 may send a query message when joining a network segment. Alternatively, the second managed device 102 may send periodic heartbeat messages when it is currently selected to provide the service 118. The message can be received 402 on the multicast channel 120.
[0101] The message may include the election score 116 of the second managed device 102. The second managed device 102 may use the election rules 114 provided to both the managed device 102 and the second managed device 102 to calculate its election score 116.
[0102] The managed device 102 may determine 404 its election score 116 based on the criteria indicated by the pre-configured election rules 114. For example, the election rules 114 may include one or more criteria 224 associated with the managed device 102. The managed device 102 may determine the election score 116 for each criterion 224. If multiple criteria 224 are considered, the managed device 102 may add the election score 116 to obtain its total election score 116. It should be noted that the managed device 102 may determine 404 its election score 116 either before or after receiving the message from the second managed device 102 (step 402).
[0103] The managed device 102 may compare 406 its election score 116 with the election score 116 of the second managed device 102. If the managed device 102 determines 408 that its election score 116 is greater than a threshold amount (for example, the election score threshold 228), the managed device 102 may become 410 selected to provide the service 118.
[0104] The managed device 102 may send 412 a multicast message indicating that it is selected to provide the service 118. The message may include the election score 116 of the managed device 102 so that other managed devices 102 in the network segment can compare their election scores 116 to verify that the selected managed device 102 has the highest election score 116.
[0105] The managed device 102 may periodically send a message (for example, a heartbeat message) on the multicast channel 120. The periodic message may indicate that the managed device 102 is selected to provide the service 118. The periodic message may also include the election score 116 of the managed device 102. The additional managed device(s) 102 may allow the managed device 102 to provide the service 118 when receiving the periodic message. In other words, other managed device(s) 102 in the network segment can receive the periodic message, recognize that the selected managed device 102 has the highest score, and approve the selected managed device 102 Continue to act as the selected provider of service 118.
[0106] In an alternative implementation, the managed device 102 may report to the management server 104 when it is selected to provide the service 118. The managed device 102 may receive an instruction from the management server 104 indicating whether the managed device 102 should start a service. The managed device 102 may periodically send a status report indicating the status of the service 118 to the management server 104.
[0107] If the managed device 102 determines 408 that its election score 116 is not greater than a threshold amount (eg, the election score threshold 228), the managed device 102 may allow 414 the second managed device 102 to provide the service 118. If the second managed device 102 is currently selected to provide the service 118, the managed device 102 may permit the second managed device 102 to continue as the selected service 118 provider. If the managed device 102 is currently the selected service 118 provider, the managed device 102 may abdicate and allow 414 the second managed device 102 to provide the service 118.
[0108] FIG. 5 is a flowchart illustrating another configuration of a method 500 for providing an on-demand service 118. The method 500 may be executed by the managed device 102. The managed device 102 may join 502 a network segment (for example, a subnet). For example, the managed device 102 may be powered on, or may be a mobile device that joins a network segment.
[0109] The managed device 102 may be configured 118. The service 118 can be configured 302 in at least one attachment on the network segment
Add to the managed device 102.
[0110] The managed device 102 may send 504 the query message on the multicast channel 120 of the network segment. The query message may indicate that the managed device 102 can provide the service 118. The query message also queries whether another managed device 102 in the network segment is providing a service 118.
[0111] The managed device 102 may determine 506 whether the query response is received from the second managed device 102. If no query response is received, this indicates that the managed device 102 is the first device to join the network segment. If the query response is not received, the managed device 102 may become 508 selected to provide the service 118.
[0112] The managed device 102 may send 510 a multicast message indicating that it is selected to provide the service 118. This can be achieved as described in conjunction with FIG. 4.
[0113] The managed device 102 may determine 506 that the query response is received. The query response can indicate the second managed device
102 is selected to provide service 118. The query response may also include the election score 116 of the second managed device 102.
[0114] The managed device 102 may compare 512 its election score 116 with the election score 116 of the second managed device 102. If the managed device 102 determines 514 that its election score 116 is greater than a threshold amount (eg, the election score threshold 228), the managed device 102 may become 508 selected to provide the service 118. If the managed device 102 determines 514 that its election score 116 is not greater than a threshold amount, the managed device 102 may allow 516 the second managed device 102 to provide the service 118.
[0115] FIG. 6 is a flowchart illustrating another configuration of the method 600 for providing the on-demand service 118. The method 600 may be executed by the managed device 102. The managed device 102 may be part of a network segment (for example, a subnet). The managed device 102 may be configured with a service 118. The service 118 may be configured on at least one additional managed device 102 on the network segment. In this example, another managed device 102 is initially selected to provide service 118 on the network segment.
[0116] The managed device 102 may fail 602 to receive periodic messages from the selected managed device 102 within the heartbeat message interval 234. For example, the selected managed device 102 may send periodic messages (for example, a small heartbeat). At a certain moment, the selected managed device 102 may become offline or stop providing services 118. At this moment, the selected managed device 102 can stop sending periodic heartbeat messages.
[0117] The managed device 102 may negotiate with the remaining managed device(s) 102 to determine who will provide the service 118. As described in conjunction with FIG. 1, the negotiation may be based on the use of pre-configured election rules 114 to determine the election score 116 of the remaining managed device(s) 102.
[0118] If the managed device 102 determines 606 that it is selected to provide the service 118, the managed device 102 may send 608 a multicast message indicating that it is selected to provide the service 118. This can be achieved as described in conjunction with FIG. 4. If the managed device 102 determines 606 that it is not selected to provide the service 118, the managed device 102 may allow 610 another managed device 102 to provide the service 118.
[01] FIG. 7 is a flowchart illustrating a method 700 for providing an on-demand service 118. In step 702, the system administrator at the management server 104 can configure what managed devices 102 can provide services 118, what services 118 should be provided, and which subnets should have some or any of these services 118.
[0120] In step 704, an agent module 222 may be created, and then the agent module 222 may be installed on the managed devices 102 that are all capable of running the desired service(s) 118. The proxy module 222 may include client-side optional components (for example, the optional communicator 110 and the optional controller 112).
[0121] In step 706, any one or all of the optional communicators 110 and optional controllers 112 on the subnet are online, and broadcast a message indicating that they can provide a service 118 or a group of services 118. These messages can be multicast
Send on channel 120. The sent message can be cryptographically signed by the originator so that the recipient can verify that they can trust the message. If the cryptographic signatures do not match, the message is discarded.
[0122] In step 708, each managed device 102 uses a set of election rules 114 to create an election score 116. The selection score 116 determines how well a given managed device 102 provides each service 118 as a candidate. The managed device 102 with the highest election score 116 wins. If there is a tie, a tie-breaking algorithm can be used to decide which managed device 102 wins.
[0123] In step 710, once selected, the managed device 102 registers with the management server 104 to see if the service(s) 118 should be provided on the subnet where the managed device 102 is located. If the service 118 should be enabled on the subnet, the selected managed device 102 can enable the service 118.
[0124] In step 712, the status of the service(s) 118 is periodically reported to the management server 104, so the system administrator knows that it is still running. The reporting frequency can be configurable. The selected managed device 102 can send the status information 108 to the management server 104.
[0125] In step 714, a periodic heartbeat message may be sent on the multicast channel 120, so that all managed devices 102 can recognize that the selected managed device 102 that provides the service 118 is still running. If the selected managed device 102 stops providing the service 118 or becomes offline for some reason, the remaining managed devices 102 return to step 708 and start the selection process again.
[0126] FIG. 8 is a block diagram illustrating a configuration of a network 800 in which the system and method for providing on-demand service 118 can be implemented. The management server 804 is connected to the router 850. The router 850 is connected to switches 856a, 856b, and 856c. The switch 856a is connected to several nodes 854a, 854b, 854c, etc. via their respective subnets 852a, 852b, and 852c. The switch 856b is connected to several nodes 854d, 854e, 854f, etc. via their respective subnets 852d, 852e, and 852f. The switch 856c is connected to several nodes 854g, 854h, etc. via their respective subnets 852g and 852h. The subnet H952h includes one or more managed devices 102.
[0127] Although FIG. 8 shows only one router 850, a limited number of switches 856, subnets 852, and nodes 854, many, different numbers of routers 850, switches 856, subnets 852, and nodes 854 may be included in The system and method for providing on-demand service 118 can be implemented in a network and/or system.
[0128] It should be noted that the management server 804 may be implemented according to the management server 104 described in conjunction with FIG. 1. In addition, the managed device 102 may be an example of one or more of the managed devices 102 and 202 described herein.
[0129] FIG. 9 illustrates various components that may be used in the computing device 958. The computing device 958 may be configured according to one or more of the managed devices 102, 202 and the management server 104 described herein. The computing device 958 may include a processor 960 and a memory 962. The memory 962 may include instructions 964a and data 966a. The processor 960 controls the operation of the computing device 958, and may be, for example, a microprocessor, a microcontroller, a digital signal processor (DSP), or other devices known in the art. The processor 960 typically performs logical and mathematical operations based on instructions 964b and/or data 966b received from the memory 962.
[0130] The computing device 958 may typically include one or more communication interfaces 970 for communicating with other electronic devices. The communication interface 970 may be based on wired communication technology, wireless communication technology, or both. Examples of different types of communication interface 970 include line port, parallel port, universal serial bus (USB), Ethernet adapter, IEEE bus interface, small computer system interface (SCSI) bus interface, infrared (IR) communication port, Bluetooth Wireless communication adapter, etc.
[0131] The computing device 958 may typically include one or more input devices 974 and one or more output devices 968. Examples of different kinds of input devices 974 include keyboards, mice, microphones, remote control devices, buttons, joysticks, tracking
Ball, touchpad, light pen, etc. Examples of different kinds of output devices 968 include speakers, printers, and so on. One specific type of output device that can be included in a computer system is a display device 972. The display device 972 used with the configuration disclosed herein may utilize any suitable image projection technology, such as liquid crystal display (LCD), light emitting diode (LED), gas plasma, electroluminescence, cathode ray tube (CRT), and the like.
[0132] The display controller 976 may also be provided for converting data stored in the memory 962 into text, graphics, and/or moving images (as appropriate) to be displayed on the display device 972. Of course, FIG. 9 only illustrates one possible configuration of the computing device 958. Various other architectures and components can be utilized.
[0133] In the above description, reference numerals are sometimes used in combination with various terms. Where the term is used in conjunction with a reference number, this is intended to refer to a particular element shown in one or more drawings. Where a term is not used with a reference number, this is meant to refer generally.
[0134] The term "determining" includes a variety of actions. Therefore, "determining" can include calculation, calculation, processing, derivation, investigation, search (for example, search in a table, database, or another data structure), ascertain Wait. In addition, "determining" may include receiving (for example, receiving information), accessing (for example, accessing data in a memory), etc. In addition, "determining" may include resolving, selecting, choosing, establishing, and the like.
[0135] The word "based on" does not mean "based only on", unless expressly specified otherwise. In other words, the wording "based on" describes both "based only on" and "based on at least
[0136] The term "processor" should be broadly interpreted to include general-purpose processors, central processing units (CPU), microprocessors, digital signal processors (DSP), controllers, microcontrollers, state machines, etc. In some cases, "processor" may refer to application specific integrated circuits (ASIC), programmable logic devices (PLD), field programmable gate arrays (FPGA), etc. The term "processor" may refer to a combination of processing devices For example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DPS core, or any other such configuration.
[0137] The term "memory" should be broadly interpreted as covering any electronic component capable of storing electronic information. The term memory can refer to various types of processor-readable media, such as random access memory (RAM), read-only Memory (ROM ), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical Data storage, etc. If the processor can read information from the memory and/or write information to the memory, the memory is said to be in electronic communication with the processor. The memory integrated with the processor is in electronic communication with the processor.
[0138] The terms "instruction" and "code" should be broadly interpreted to include any type of computer-readable statement(s). For example, the terms "instruction" and "code" may refer to one or more programs, routines, subroutines, functions, processes, and so on. "Instructions" and "code" may include a single computer-readable statement or many computer-readable statements.
[0139] The term "computer-readable medium" refers to any available non-transitory tangible medium that can be accessed by a computer or a processor. By way of example and not limitation, the computer-readable medium may include RAM, ROM, EEPROM, CD-ROM, or other optical disk memory, magnetic disk memory, or other magnetic storage devices, or may be used to carry or carry in the form of instructions or data structures. Any other medium that stores desired program codes and can be accessed by a computer. Disks and optical disks as used herein include compact disks (CD), laser disks, optical disks, digital versatile disks (DVD), floppy disks, and Blu-ray® disks, where disks usually reproduce data magnetically, while optical disks reproduce data optically with lasers data.
[0140] Software or instructions can also be sent through a transmission medium. For example, if the software is sent from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital customer line (DSL), or wireless technology (such as infrared, radio, and microwave), the coaxial cable Cable, fiber optic cable, twisted pair, DSL or wireless technology (such as infrared, radio, and microwave) are covered
Included in the definition of transmission media.
[0141] The methods disclosed herein include one or more steps or actions for achieving the described methods. The method steps and/or actions can be interchanged with each other without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
[0142] It is to be understood that the claims are not limited to the precise configurations and components exemplified above. Without departing from the scope of the claims, various modifications, changes and changes can be made in the arrangement, operation and details of the systems, methods and devices described herein.
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| CN101984632A | Cites | China | A | Search report | 1-64 |
| CN102483716A | Cites | China | A | Search report | 1-64 |
| CN102804712A | Cites | China | A | Search report | 1-24 |
| CN102939765A | Cites | China | A | Search report | 1-64 |
| CN1338689A | Cites | China | A | Search report | 1-24 |
| US2004186897A1 | Cites | United States of America | A | Search report | 1-64 |
| US2005198359A1 | Cites | United States of America | X | Search report | 1-26 |
| WO2015054300A1 | Cites | World Intellectual Property Organization (WIPO) | A | Search report | 1-24 |
| URTZI AYESTA 等: "Scheduling in a Random Environment: Stability and Asymptotic Optimality", 《IEEE》 | Non-patent | – | – | Search report | – |
15 members in 7 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 15154733 | United States of America | – | |
| 201615154733 | United States of America | A | |
| 2017032396 | United States of America | W |
Members15
| Document | Office | Kind | |
|---|---|---|---|
| CA3022677A1 | Canada | A1 | |
| US2017331708A1 | United States of America | A1 | |
| WO2017197258A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US10116526B2 | United States of America | B2 | |
| AU2017264954A1 | Australia | A1 | |
| AU2017264954A8 | Australia | A8 | |
| CN109314719AThis record | China | A | |
| BR112018073174A2 | Brazil | A2 | |
| EP3456035A1 | European Patent Office (EPO) | A1 | |
| EP3456035A4 | European Patent Office (EPO) | A4 | |
| CN109314719B | China | B | |
| CN114189549A | China | A | |
| AU2022202117A1 | Australia | A1 | |
| EP3456035B1 | European Patent Office (EPO) | B1 | |
| CN114189549B | China | B |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Patent grantGrantedGR01 | GR01 | |
| Entry into force of request for substantive examinationSE01 | SE01 | |
| PublicationPB01 | PB01 |
Numbers
- Publication
- 109314719
- Application
- 800294242
Titles2
- Chinese
- 用于提供自选服务的系统和方法
- English
- System and method for providing self-selected service
Classification
- CPC, 4
- H04L41/5054
- H04L67/34
- H04L67/1093
- H04L67/00
- IPC, 1
- H04L29 08