Processing server, server system, and method

JP2025034286APending Publication Date: 2025-03-13BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023140578
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-30
Publication Date
2025-03-13

Smart Images

  • Figure 2025034286000001_ABST
    Figure 2025034286000001_ABST
Patent Text Reader

Abstract

To facilitate a connection between a connection server related to an updated state of a communication device after establishment of an always-on connection and the communication device.SOLUTION: When update information is obtained after establishment of an always-on connection between a communication device and a target connection server, updated device state information is determined using the update information. When a specific condition is satisfied, the updated target connection server is determined to be a connection server associated with server state information related to the updated device state information. When the specific condition is satisfied, updated connection information for a connection with the updated target connection server is output to the communication device.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This specification relates to a continuous network connection. [Background technology]

[0002] Servers have traditionally been used for maintaining a constant network connection. Patent Document 1 discloses the following technology: A server system for a constant connection includes a plurality of constant connection processing units and a control unit. Each of the plurality of constant connection processing units includes a plurality of constant connection execution units. The control unit receives a first request for a constant connection from a terminal device. In response to the first request, the control unit determines, from among the plurality of constant connection processing units, a target constant connection processing unit that is one constant connection processing unit with which a constant connection with the terminal device should be established. After determining the target constant connection processing unit, the control unit transmits, to the terminal device, destination data indicating the destination of a second request for a constant connection, the destination data indicating the target constant connection processing unit. In response to a second request from the terminal device, the target constant connection processing unit establishes a constant connection between the terminal device and one of the plurality of constant connection execution units included in the target constant connection processing unit. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2023-076038 Summary of the Invention [Problem to be solved by the invention]

[0004] A communication device and a connection server may establish a permanent connection. After the permanent connection is established, the state of the communication device may change. Due to the change in the state of the communication device, the appropriate connection server may change. However, there is room for improvement regarding the connection between the communication device and the connection server associated with the updated state of the communication device after the permanent connection is established.

[0005] This specification discloses techniques for facilitating a connection between a communication device and a connection server associated with an updated state of the communication device after the establishment of a permanent connection. [Means for solving the problem]

[0006] The techniques disclosed in this specification can be implemented in the following application examples.

[0007] [Application Example 1] A processing server includes: a status information determination unit that determines device status information that represents a status of a communication device; a connection server determination unit that uses a plurality of server status information that represents a status of a connection server configured to perform a constant connection, the server status information being associated with a plurality of connection servers, and the device status information to determine a target connection server that is a connection server for a constant connection with the communication device from the plurality of connection servers; a connection information output unit that outputs connection information for connection with the target connection server to the communication device; and a connection information output unit that outputs, to the communication device, connection information for connection with the target connection server, and a status update unit that updates the status of the communication device without receiving an instruction from the communication device. an acquisition unit that acquires update information indicating new status, wherein when the update information is acquired after the establishment of a constant connection between the communication device and the target connection server, the status information determination unit determines updated device status information using the update information, the connection server determination unit determines the updated target connection server to be a connection server that corresponds to server status information related to the updated device status information when a specific condition is satisfied, and the connection information output unit outputs updated connection information for connecting to the updated target connection server to the communication device when the specific condition is satisfied.

[0008] According to this configuration, after the permanent connection is established, it is possible to facilitate the connection between the communication device and the connection server associated with the server status information related to the updated device status information.

[0009] The technology disclosed in this specification can be realized in various forms, such as a method for determining a connection server, a processing server for determining a connection server, a method for establishing a constant connection, a server system for establishing a constant connection, a computer program for realizing the functions of these methods or devices, a recording medium (e.g., a non-temporary recording medium) on which the computer program is recorded, etc. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating an embodiment of a server system. [Figure 2] FIG. 3 is a schematic diagram showing an example of cluster label data 301. [Figure 3] FIG. 10 is a sequence diagram illustrating an example of a constant connection establishment process. [Figure 4] 10 is a flowchart illustrating an example of a process for determining device label information DI. [Figure 5] FIG. 4 is a schematic diagram showing an example of monitoring frequency data 402. [Figure 6] 10 is a flowchart illustrating an example of a process for allocating a node cluster. [Figure 7] FIG. 3 is a schematic diagram showing an example of cluster device data 302. [Figure 8] 10 is a flowchart illustrating an example of a connection server update process. [Figure 9] 10 is a flowchart illustrating an example of a connection server update process. [Figure 10] FIG. 10 is a sequence diagram illustrating an example of a process for using a service. [Figure 11] FIG. 10 is a schematic diagram illustrating another example of monitoring frequency data. [Figure 12] 10A to 10C are sequence diagrams illustrating an example of an update process. [Figure 13] 10A and 10B are schematic diagrams showing other examples of items included in label information and methods of acquiring information for determining the items. [Figure 14]10A and 10B are schematic diagrams showing other examples of items included in label information and methods of acquiring information for determining the items. [Figure 15] 10A and 10B are schematic diagrams showing other examples of items included in label information and methods of acquiring information for determining the items. [Figure 16] 10A and 10B are flowcharts illustrating an example of an acquisition process. DETAILED DESCRIPTION OF THE INVENTION

[0011] A. First Example: A1. System configuration: 1 is a schematic diagram showing an embodiment of a server system. This system 1000 includes a DNS server 60, a service server 70, a management terminal 80, multiple communication devices 90A and 90B, a user terminal 95, and a server system 100. These devices 60, 70, 80, 90A, 90B, 95, and 100 are connected to a network NT. The network NT may include the so-called Internet. The network NT may also include a so-called local network.

[0012] In this embodiment, the first communication device 90A is a printing device having a print execution unit 90PR. Although not shown, the hardware configuration of the second communication device 90B is the same as that of the first communication device 90A. The service server 70 provides various services for using multiple communication devices, including the communication devices 90A and 90B, via the network NT. For example, the service server 70 causes the first communication device 90A to print an image in response to a request from a user terminal 95 (such a service is also called remote printing). The server system 100 executes various processes for maintaining a constant connection between the service server 70 and the multiple communication devices 90A and 90B.

[0013] The server system 100 includes multiple connection servers 10A, 10B, and 10C, a management load balancer 20, a cluster management server 30, a selection server 40, a control server 50, and a monitoring server 55. The connection servers 10A, 10B, and 10C each establish a constant connection with a communication device (e.g., a first communication device 90A). As described below, the connection servers 10A, 10B, and 10C each have node clusters 12A, 12B, and 12C, each having multiple nodes configured to establish a constant connection. The cluster management server 30 executes a process of assigning node clusters to communication devices. The management load balancer 20 distributes communication loads among multiple node clusters by allocating communications between the cluster management server 30 and the node clusters to the node clusters that are the communication targets. The selection server 40 selects device label information to be assigned to the communication devices. As will be described later, label information is assigned to each node cluster 12A, 12B, and 12C in advance. Then, a node cluster having label information suitable for the device label information of the communication device is assigned to the communication device. The monitoring server 55 monitors the operation of each of the multiple connection servers (e.g., connection servers 10A, 10B, and 10C). The control server 50 controls the server system 100.

[0014] The first connection server 10A has a first load balancer 11A and a node cluster 12A. The node cluster 12A has a plurality of nodes (including nodes 13A1-13A3). The plurality of nodes have the same hardware configuration. Hereinafter, when there is no need to distinguish between the individual nodes of the first node cluster 12A, each node will also be referred to as a node 13A.

[0015] In this embodiment, the node 13A establishes a constant connection with a communication device (e.g., a first communication device 90A). Various methods can be used to establish a constant connection. In this embodiment, the node 13A establishes a communication session for the constant connection according to the Extensible Messaging and Presence Protocol (XMPP). The service server 70 can communicate with the communication device using the node 13A. The first load balancer 11A distributes constant connections with multiple communication devices to multiple nodes 13A, thereby distributing the load of the constant connections to the multiple nodes 13A.

[0016] Similarly, the other connection servers 10B and 10C also have load balancers 11B and 11C and node clusters 12B and 12C. The hardware configuration of each of the load balancers 11B and 11C is the same as that of the first load balancer 11A. The second node cluster 12B has multiple nodes 13B, and the third node cluster 12C has multiple nodes 13C. The hardware configuration of the nodes 13B and 13C is the same as that of the node 13A. The server system 100 may include three or more connection servers. Hereinafter, when there is no need to distinguish between individual connection servers, each connection server will also be referred to as a connection server 10. The load balancer and node cluster of the connection server 10 will also be referred to as a load balancer 11 and a node cluster 12. The nodes included in a node cluster 12 will also be referred to as nodes 13. The total number of nodes 13 included in one node cluster 12 may vary among multiple node clusters 12.

[0017] In this embodiment, the devices 11, 13, 20, 30, 40, 50, 55, 60, 70, 80, and 90A each include a computer. Specifically, the devices 11, 13, 20, 30, 40, 50, 55, 60, 70, 80, and 90A include processors 11p, 13p, 20p, 30p, 40p, 50p, 55p, 60p, 70p, 80p, and 90p (e.g., a Central Processing Unit (CPU) or a System on a chip (SoC)), volatile memory devices 11v, 13v, 20v, 30v, 40v, 50v, 55v, 60v, 70v, 80v, 90v (e.g., DRAM), non-volatile memory devices 11n, 13n, 20n, 30n, 40n, 50n, 55n, 60n, 70n, 80n, 90n (e.g., flash memory), and communication interfaces 11i, 13i, 20i, 30i, 40i, 50i, 55i, 60i, 70i, 80i, 90i (e.g., one or both of a wired LAN interface (e.g., Ethernet (registered trademark)) and a wireless interface (e.g., IEEE802.11)). Non-volatile memory devices 11n, 13n, 20n, 30n, 40n, 50n, 55n, 60n, 70n, 80n, and 90n pre-store programs 11pg, 13pg, 20pg, 30pg, 40pg, 50pg, 55pg, 60pg, 70pg, 80pg, and 90pg for the operation of corresponding devices 11, 13, 20, 30, 40, 50, 55, 60, 70, 80, and 90A. The processors 11p, 13p, 20p, 30p, 40p, 50p, 55p, 60p, 70p, 80p, and 90p execute various processes described below in accordance with programs 11pg, 13pg, 20pg, 30pg, 40pg, 50pg, 55pg, 60pg, 70pg, 80pg, and 90pg. The programs of the communication devices (for example, program 90pg of the first communication device 90A) are examples of firmware.

[0018] The nonvolatile storage device of the load balancer 11 of the connection server 10 (for example, the nonvolatile storage device 11n of the load balancer 11A of the first connection server 10A) stores distributed data 101 indicating the correspondence between communication devices and nodes. The nonvolatile storage device 30n of the cluster management server 30 stores cluster label data 301 and cluster device data 302. The nonvolatile storage device 40n of the selection server 40 stores device label configuration data 401 and monitoring frequency data 402. The nonvolatile storage device 50n of the control server 50 stores API history data 501, constant connection history data 502, user correspondence data 503, and service history data 504. The user correspondence data 503 indicates the correspondence between the identifier of the user using the service, the identifier of the communication device used for the service, the model name of the communication device, the identifier of the service, and device label information (described later). As will be described later, when a user starts using a new service, the identifier of that service is registered in the user correspondence data 503. When a user ends using a service, the identifier of that service is deleted from the user correspondence data 503. Details of the other data 101, 301, 302, 401, 402, 501, 502, and 504 will be described later.

[0019] The nonvolatile storage device 70n of the service server 70 stores service correspondence data 701 and history data 702. The service correspondence data 701 indicates the correspondence between the identifier of a user who uses a service, the identifier of a communication device used for the service, and the identifier of the service. As will be described later, when a user starts using a new service, the identifier of that service is registered in the service correspondence data 701. When a user ends use of a service, the identifier of that service is deleted from the service correspondence data 701. The history data 702 indicates the usage history of the service.

[0020] The DNS server 60 performs name resolution on the network NT. The nonvolatile storage device 60n of the DNS server 60 stores record data RD indicating the correspondence between IP addresses and domain names. The record data RD indicates multiple correspondences including correspondences R1-R3. These correspondences R1-R3 indicate the load balancers 11A-11C, respectively. Although not shown in the figure, the record data RD also indicates the correspondence between the control server 50 and the service server 70.

[0021] The user terminal 95 is a terminal device operated by a user, such as a smartphone, tablet computer, or personal computer. By operating the user terminal 95, the user can cause the service server 70 to execute various processes. The management terminal 80 is a terminal device operated by an administrator of the server system 100, such as a smartphone, tablet computer, or personal computer. The administrator can configure various settings for the server system 100 by accessing the server system 100 through the management terminal 80. For example, the administrator edits control data such as data 301, 401, and 402.

[0022] FIG. 2 is a schematic diagram showing an example of cluster label data 301. The cluster label data 301 indicates the correspondence between cluster identifiers and server label information SI. The cluster identifier is the identifier of the node cluster 12 (and thus the connection server 10 having the node cluster 12). The cluster identifier of each of the multiple node clusters 12 is predetermined. In FIG. 2, the cluster label data 301 indicates the correspondence between each of multiple cluster identifiers, including eight cluster identifiers C1-C8. In this embodiment, the server label information SI indicates a combination of three items: a region item GG, a model item GJ, and a monitoring frequency item GL. The region item GG indicates the region where the communication device is used (e.g., the destination or country of the communication device). In FIG. 2, the region item GG is selected from multiple regions, including a first region GG1 and a second region GG2. The model item GJ indicates the model of the communication device. In FIG. 2, the model item GJ is selected from multiple models, including a first model GJ1 and a second model GJ2.

[0023] The monitoring frequency item GL indicates the frequency with which the monitoring server 55 monitors the node cluster 12. The monitoring server 55 monitors the operation of each of the multiple connection servers 10. In this embodiment, the processor 55p of the monitoring server 55 periodically transmits a response request to each node 13 of each connection server 10. The node 13 transmits a response to the monitoring server 55 in response to the response request. A node 13 having a malfunction cannot transmit a response. If the processor 55p receives a response within a predetermined waiting time from the transmission of the response request, it classifies the node 13 that transmitted the response as a normal node 13. If the processor 55p does not receive a response within a predetermined waiting time from the transmission of the response request, it classifies the node 13 to which the response request was addressed as an abnormal node 13. If the processor 55p detects an abnormal node 13, it executes processing to resolve the malfunction of the node 13 (e.g., notifying an administrator). The monitoring frequency item GL in FIG. 2 indicates the frequency of monitoring (in this embodiment, the frequency of transmitting a response request). In this embodiment, the monitoring frequency item GL is selected from a plurality of monitoring frequencies including a low frequency GLL and a high frequency GLH that is higher than the low frequency GLL. The low frequency GLL and the high frequency GLH may each have various frequencies (for example, once every hour, once every 6 hours, once every 12 hours, once every day, once every 2 days, etc.).

[0024] In this way, in this embodiment, server label information SI is pre-assigned to the node clusters 12 (and thus to the connection servers 10) so that multiple node clusters 12 distribute the load according to the combination of the region item GG, the model item GJ, and the monitoring frequency item GL.

[0025] A2. Always-on connection: FIG. 3 is a sequence diagram showing an example of a process for establishing a constant connection. FIG. 3 shows an example of a process for establishing a constant connection when the first communication device 90A establishes a constant connection with the server system 100. The processor 90p of the first communication device 90A starts a process for establishing a constant connection in response to the power state of the first communication device 90A being switched from an off state to an on state. For example, when a user turns on the power of the first communication device 90A for the first time, the process of FIG. 3 determines an initial connection server 10 for the constant connection, and a constant connection between the first communication device 90A and the initial connection server 10 is established. Furthermore, when the constant connection is disconnected due to a communication error or the like, the processor 90p starts a process for establishing a constant connection.

[0026] In S110, the processor 90p transmits a communication device registration request to the control server 50. The registration request includes terminal information data of terminal information related to the communication device 90A. The terminal information may include any information related to the communication device 90A (for example, an identifier, IP address, model name, firmware version, etc. of the communication device 90A). In this embodiment, the terminal information includes the identifier and model name of the communication device 90A. Furthermore, in this embodiment, the non-volatile storage device 90n pre-stores data indicating the terminal information (not shown). The processor 90p can acquire the terminal information by referring to this data.

[0027] In S120, the processor 50p of the control server 50 transmits a request to determine device label information, which is label information to be assigned to the communication device 90A, to the selection server 40. The determination request includes the terminal information data received in S110. The processor 50p also references the user correspondence data 503 (FIG. 1) to acquire the identifiers of services associated with the identifier of the communication device 90A. The total number of services associated with the identifier of the communication device may be zero (for example, when the constant connection establishment process is executed for the first time for the communication device). When the total number of services associated with the identifier of the communication device is one or more, the determination request further includes data of the identifiers of the services associated with the identifier of the communication device.

[0028] In S130, the processor 40p of the selected server 40 determines device label information. Fig. 4 is a flowchart showing an example of processing for determining device label information DI. In S510, the processor 40p of the selected server 40 references the device label configuration data 401 (Fig. 1) to acquire the assigned label configuration, which is the configuration of the device label information DI. As shown in Fig. 2, in this embodiment, the server label information SI indicates a combination of three items: area item GG, model item GJ, and monitoring frequency item GL. In this embodiment, the device label configuration data 401 indicates that the combination of area item GG, model item GJ, and target device frequency dGL, which is the target of the monitoring frequency item GL, should be determined as device label information DI.

[0029] In S520, the processor 40p acquires information used to determine the device label information DI. In this embodiment, the processor 40p acquires the identifier and model name of the communication device by referencing the terminal information data included in the determination request received in S120 (FIG. 3). The processor 40p acquires the target monitoring frequency by referencing the monitoring frequency data 402 (FIG. 1). FIG. 5 is a schematic diagram showing an example of the monitoring frequency data 402. In this embodiment, the monitoring frequency data 402 indicates the correspondence between the service item GA and the target monitoring frequency tGL. The service item GA indicates a service for using the communication device. The target monitoring frequency tGL is a target value of the monitoring frequency item GL (FIG. 2). In this embodiment, the target monitoring frequency tGL is predetermined for each service. A low-frequency GLL is associated with services for which the importance of communication availability via the connection server 10 is relatively low, such as no service and information acquisition. A high-frequency GLH is associated with services for which the importance of communication availability via the connection server 10 is relatively high, such as remote printing and remote scanning. The processor 40p refers to the target monitoring frequencies tGL associated with each of the service identifiers included in the determination request, and adopts the highest target monitoring frequency tGL as the target monitoring frequency tGL for determining the device label information DI. If the determination request does not include service identifier data, the processor 40p adopts the low frequency GLL associated with "none."

[0030] In S530 (FIG. 4), the processor 40p uses the information acquired in S520 to determine the device label information DI according to the assigned label configuration. In this embodiment, the processor 40p uses the identifier of the communication device 90A to determine the region item GG of the device label information DI. The correspondence between the identifier of the communication device and the region item GG is predetermined. For example, the region item GG is determined to be the first region GG1. The processor 40p also uses the model name of the communication device 90A to determine the model item GJ of the device label information DI. For example, the model item GJ is determined to be the first model GJ1. The processor 40p also uses the target monitoring frequency tGL acquired in S520 to determine the target device frequency dGL. The target device frequency dGL may be determined to be any frequency equal to or greater than the target monitoring frequency tGL adopted in S520. In this embodiment, the target device frequency dGL of the device label information DI is set to the same frequency as the target monitoring frequency tGL adopted in S520. For example, if the determination request does not include data of the service identifier, the target device frequency dGL is determined to be the low frequency GLL associated with "none." Then, the processor 40p ends the processing in FIG. 4, that is, S130 in FIG.

[0031] Note that for a specific type of communication device, instead of assigning a specific node cluster 12, it may be preferable to distribute the node cluster 12 to be assigned among multiple node clusters 12. For example, if the number of shipments of a specific type of communication device corresponding to a specific destination or a specific model name is small, the node cluster 12 to be assigned to the specific type of communication device may be distributed among multiple node clusters 12. In this embodiment, if the communication device is a specific type of communication device, the processor 40p does not determine specific device label information DI, but determines null device label information DI.

[0032] In S140 (FIG. 3), the processor 40p of the selection server 40 notifies the control server 50 of the determined device label information DI. The processor 50p of the control server 50 registers the correspondence between the device label information DI and the identifier and model name of the communication device acquired in S110 in the user correspondence data 503.

[0033] In S150, the processor 50p of the control server 50 transmits a request to allocate the node cluster 12 to the communication device 90A to the cluster management server 30. The allocation request includes data indicating the device label information DI acquired in S140 and information related to the communication device 90A (such as an identifier and an IP address).

[0034] In S160, the processor 30p of the cluster management server 30 assigns a node cluster 12 to the communication device 90A. The assigned node cluster 12 is one node cluster 12 that should establish a constant connection with the communication device 90A. FIG. 6 is a flowchart showing an example of the node cluster assignment process. In S610, the processor 30p acquires device label information DI (S150 (FIG. 3)).

[0035] In S620, the processor 30p determines whether the device label information DI is empty. If the device label information DI is empty (S620: Yes), in S630, the processor 30p extracts all node clusters as candidate clusters, and proceeds to S650.

[0036] If the device label information DI is not empty (S620: No), in S640, the processor 30p refers to the cluster label data 301 (FIG. 2) and extracts a node cluster that matches the device label information DI as a candidate cluster. In this embodiment, the processor 30p extracts a node cluster to which the device label information DI is assigned as a candidate cluster. Specifically, the processor 30p extracts a node cluster associated with server label information SI that includes options for all items in the device label information DI as a candidate cluster. For example, if the region item GG of the device label information DI is the first region GG1, the model item GJ is the first model GJ1, and the target device frequency dGL is the low-frequency GLL, the processor 30p extracts a first cluster identifier C1 associated with server label information SI that includes the first region GG1, the first model GJ1, and the low-frequency GLL. Hereinafter, it is assumed that the first cluster identifier C1 indicates the first node cluster 12A (i.e., the first connection server 10A). After S640, the processor 30p proceeds to S650.

[0037] In S650, the processor 30p determines whether the total number N of candidate clusters is 1. If N=1 (S650: Yes), in S660, the processor 30p determines the candidate cluster as a target node cluster (also simply referred to as a target cluster), which is a node cluster to be assigned to the communication device. The processor 30p adds data indicating the correspondence between the identifier of the target cluster and the identifier of the communication device to the cluster device data 302 (FIG. 1).

[0038] FIG. 7 is a schematic diagram showing an example of cluster device data 302. The cluster device data 302 indicates the correspondence relationship between cluster identifiers and communication device identifiers. In FIG. 7, the cluster device data 302 indicates the correspondence relationship between each of a plurality of cluster identifiers including four cluster identifiers C1-C4. Each of a plurality of communication device identifiers including eight communication device identifiers T1-T8 is associated with one of the cluster identifiers. In S660 (FIG. 6), the processor 30p adds the communication device identifier indicated by the request in S150 (FIG. 3) (e.g., the identifier of the communication device 90A) to the communication device identifiers associated with the cluster identifier of the target cluster. Then, the processor 30p ends the process of FIG. 6, i.e., S160 (FIG. 3).

[0039] If the total number N of candidate clusters is different from 1 (FIG. 6: S650: No), in this embodiment, N>1. In this case, in S665, the processor 30p acquires connection information from each of the N connection servers 10 (FIG. 1) corresponding to the N candidate clusters. Communication between the cluster management server 30 and the connection servers 10 is relayed by the management load balancer 20. The connection information is information indicating the connection status of the connection servers 10, and in this embodiment, indicates the number of constant connections. The number of constant connections is the number of constant connections established with the connection servers 10. The processor 30p acquires connection information from the load balancer 11 of each connection server 10.

[0040] In S670, the processor 30p selects one target cluster (i.e., one connection server 10) so as to minimize the imbalance in the number of constant connections among the N candidate clusters. For example, the processor 30p selects the node cluster 12 having the smallest number of constant connections as the target cluster from the N candidate clusters. As in S660, the processor 30p adds data indicating the correspondence between the identifier of the target cluster and the identifier of the communication device to the cluster device data 302 (FIG. 7). Then, the processor 30p ends the process of FIG. 6, i.e., S160 (FIG. 3).

[0041] Here, the first communication device 90A is assigned the first node cluster 12A of the first connection server 10A. Hereinafter, the assigned node cluster is also referred to as the target node cluster. The connection server having the target node cluster is also referred to as the target connection server.

[0042] In S170 (FIG. 3), the processor 30p of the cluster management server 30 transmits to the control server 50 a notification that the node cluster allocation has been completed.

[0043] After S110, in S180, the processor 90p of the first communication device 90A sends a request for a destination for accessing the node cluster to the control server 50. This request includes data indicating the identifier of the communication device 90A. In this embodiment, a URL (Uniform Resource Locator) is used as the destination. Hereinafter, the destination will also be referred to as a cluster URL. Note that S180 may be executed at various times. For example, the processor 90p may execute S180 after a predetermined time has elapsed after S110. Alternatively, the processor 50p of the control server 50 may send a completion notification of the node cluster allocation to the first communication device 90A in response to the completion notification of S170. Then, the processor 90p of the first communication device 90A may execute S180 in response to this completion notification.

[0044] In S190, in response to the request in S180, the processor 50p of the control server 50 sends a request for the cluster URL to the cluster management server 30. This request includes data indicating the identifier of the communication device 90A.

[0045] In S200, the processor 30p of the cluster management server 30 refers to the cluster device data 302 (FIG. 7) and searches for a cluster identifier associated with the identifier of the communication device 90A. The processor 30p notifies the control server 50 of the cluster URL associated with the searched cluster identifier. In this embodiment, the cluster identifier is associated in advance with the URL of the load balancer 11 of the connection server 10 associated with the cluster identifier. For example, if the cluster identifier indicates the first connection server 10A (FIG. 1), the URL of the first load balancer 11A is associated with that cluster identifier.

[0046] In S210, the processor 50p of the control server 50 notifies the communication device 90A of the cluster URL.

[0047] In S220, the processor 90p of the communication device 90A sends a constant connection establishment request to the device indicated by the cluster URL. The IP address of the destination device (here, the first load balancer 11A) is provided by the DNS server 60 (FIG. 1). The constant connection establishment request includes data indicating information related to the communication device 90A (including the IP address and the communication device identifier).

[0048] In S230, the processor 11p of the first load balancer 11A of the first connection server 10A selects one node 13A from the multiple nodes 13A of the first node cluster 12A to be assigned to the sender of the constant connection establishment request (here, the communication device 90A). The one node 13A is selected so as to reduce the imbalance in load or the imbalance in the number of constant connections among the multiple nodes 13A of the first node cluster 12A. In this embodiment, the node 13A is selected so as to reduce the imbalance in the number of constant connections. Hereinafter, the selected node 13A will also be referred to as the target node 13A. The processor 11p of the load balancer 11A adds data indicating the correspondence between information related to the communication device (in this embodiment, including the identifier and IP address of the communication device) and the target node to the distributed data 101 (FIG. 1).

[0049] In S240, the processor 11p of the first load balancer 11A of the first connection server 10A supplies the always-on connection establishment request from the communication device 90A to the target node 13A of the first connection server 10A. In response to the always-on connection establishment request, the processor 13p of the target node 13A executes processing for establishing the always-on connection by communicating with the communication device 90A. As a result, a always-on connection between the communication device 90A and the target node 13A is established. Then, the processing for establishing the always-on connection ends.

[0050] After the constant connection is established, the target node 13A and the communication device 90A maintain the constant connection by performing so-called KeepAlive communication (S250). For example, the processor 13p of the target node 13A transmits KeepAlive data addressed to the communication device 90A according to a predetermined schedule (for example, at predetermined time intervals). In response to receiving the KeepAlive data, the processor 90p of the communication device 90A transmits data indicating a response addressed to the target node 13A. This maintains the communication session between the target node 13A and the communication device 90A. Note that instead of the target node 13A, the processor 90p of the communication device 90A may transmit the KeepAlive data addressed to the target node 13A according to a predetermined schedule.

[0051] In this embodiment, the load balancer 11 or the node 13 of the target connection server 10A transmits result data indicating the result of the connection check by KeepAlive communication to the control server 50 (S255). The result data indicates the identifier of the communication device, the IP address of the communication device, the date and time, and a flag indicating whether the connection check was successful or not. The processor 50p of the control server 50 adds the result data to the constant connection history data 502 (FIG. 1) (S260). In this way, the constant connection history data 502 is updated to indicate the constant connection history for each communication device. S250-S260 are executed repeatedly.

[0052] In this embodiment, the communication between the communication device 90A and the target node 13A is relayed by the first load balancer 11A. Alternatively, after S230, the target node 13A and the communication device 90A may communicate directly without going through the first load balancer 11A.

[0053] Another communication device (for example, the second communication device 90B) also establishes a constant connection with the connection server 10 assigned to the communication device in S160 by a process similar to that of FIG.

[0054] A3. Connection Server Update: 8 and 9 are flowcharts showing an example of the connection server update process. FIG. 9 shows a continuation of FIG. 8. In this embodiment, the connection server update process is performed when a user starts using a new service and when the user stops using a service. This update process updates the service correspondence data 701 of the service server 70 and the user correspondence data 503 of the control server 50. Then, the node 13 that establishes a constant connection with the communication device is updated.

[0055] In S910, the service server 70 receives a service update request from the user. The service update request includes data indicating a service to be started, a service to be stopped, or both, and a target device identifier. The service to be started is a service whose use is requested to be started. The service to be stopped is a service whose use is requested to be stopped. The target device identifier is an identifier of a target device that is associated with a service. Hereinafter, it is assumed that the user starts remote printing using the first communication device 90A. In this case, the service update request indicates a service to be started that indicates remote printing, and a target device identifier that indicates the first communication device 90A.

[0056] In this embodiment, a user inputs an update request to the service server 70 by logging in to the service server 70. The update request is associated with the identifier of the logged-in user. Various methods may be used for logging in and inputting the update request. For example, the program 70pg of the service server 70 may be configured to provide an application programming interface (API) for logging in and inputting the update request. The user may log in and input the update request through a dedicated application running on an external device such as the user terminal 95. Alternatively, the program 70pg may be configured to provide a web page for logging in and inputting the update request. The user may log in and input the update request through a browser running on an external device such as the user terminal 95.

[0057] In S913, the processor 70p of the service server 70 registers the service update in the service correspondence data 701. If the update request indicates a starting service, the processor 70p registers the correspondence between the identifier of the logged-in user (referred to as a target user identifier), the target device identifier, and the identifier of the starting service in the service correspondence data 701. If the update request indicates a stopping service, the processor 70p deletes the identifier of the stopping service that is associated with the target user identifier and the target device identifier from the service correspondence data 701.

[0058] In S916, the processor 70p sends a service update request to the control server 50. This request includes data indicating the identifier of the service to be started or stopped, the target user identifier, and the target device identifier.

[0059] In S920, the processor 50p of the control server 50 registers the service update in the user correspondence data 503. If the request in S916 indicates a start service, the processor 50p registers the correspondence between the target user identifier, the target device identifier, and the identifier of the start service in the user correspondence data 503. If the request in S916 indicates a stop service, the processor 50p deletes from the user correspondence data 503 the identifier of the stop service that is associated with the target user identifier and the target device identifier.

[0060] In S923, the processor 50p acquires device label information DI of the target device identifier by referring to the user correspondence data 503. The processor 50p stores the acquired device label information DI data in a storage device (for example, the volatile storage device 50v or the non-volatile storage device 50n) as the data of the device label information DI before the update.

[0061] The following steps S926, S930, and S933 are the same as S120, S130, and S140, respectively, of Figure 3. In S926, the processor 50p refers to the user correspondence data 503 to obtain the model name and service identifier associated with the target device identifier. The processor 50p transmits a determination request including data indicating the target device identifier, model name, and service identifier to the selection server 40. Note that if the total number of services associated with the target device identifier is zero, the service identifier is omitted.

[0062] In S930, the processor 40p of the selected server 40 executes the process of Fig. 4 to determine the device label information DI. The determination results for the region item GG and the model item GJ are the same as the determination results in S130 of Fig. 3. The target device frequency dGL is determined to be the target monitoring frequency tGL (here, high frequency GLH) associated with remote printing by the monitoring frequency data 402 (Fig. 5).

[0063] In S933, the processor 40p notifies the determined device label information DI to the control server 50. The processor 50p of the control server 50 registers the correspondence between the device label information DI and the target device identifier acquired in S916 in the user correspondence data 503.

[0064] In S936, the processor 50p determines whether a specific condition is met. If the specific condition is met, the connection server 10 is updated. In this embodiment, the specific condition is that the updated device label information DI is different from the device label information DI before the update. In this embodiment, if one or more of the multiple items GG, GJ, and dGL are different before and after the update, it is determined that the updated device label information DI is different from the device label information DI before the update. If there are no differences between the updated device label information DI and the device label information DI before the update, it is determined that the updated device label information DI is the same as the device label information DI before the update.

[0065] If the specific condition is not met, that is, if the updated device label information DI is the same as the device label information DI before the update (S936: No), the control server 50 terminates the update process without performing the process for updating the connection server 10.

[0066] If the specific condition is met, that is, if the updated device label information DI includes a part that is different from the device label information DI before the update (S936: Yes), then in S940 the processor 50p sends an allocation request to the cluster management server 30. S940 is the same as S150 (FIG. 3). The allocation request includes data indicating the device label information DI acquired in S933 and the target device identifier.

[0067] In S942, the processor 30p of the cluster management server 30 refers to the cluster device data 302 (FIG. 7) to acquire a cluster identifier associated with the target device identifier. The processor 30p stores the acquired cluster identifier data in a storage device (for example, the volatile storage device 30v or the nonvolatile storage device 30n) as the cluster identifier data before the update.

[0068] S944 is the same as S160 (FIG. 3). The processor 30p determines the target cluster using the device label information DI acquired in S940 and the cluster label data 301 (FIG. 2). For example, if the device label information DI indicates a first region GG1, a first model GJ1, and a high-frequency GLH, the processor 30p adopts the second cluster identifier C2 (FIG. 2) associated with this information GG1, GJ1, and GLH as the identifier of the target cluster. In this way, by using the updated device label information DI, the processor 30p can adopt an identifier of the target cluster (here, the second cluster identifier C2) that is different from the identifier of the target cluster before the update (here, the first cluster identifier C1). Hereinafter, the second cluster identifier C2 will be assumed to indicate the second node cluster 12B (i.e., the second connection server 10B).

[0069] If the cluster identifier of the target cluster is different from the cluster identifier before the update, the processor 30p further updates the cluster device data 302 (FIG. 7). The processor 30p adds the target device identifier to the communication device identifiers associated with the updated target cluster identifier, and deletes the target device identifier from the communication device identifiers associated with the cluster identifier before the update. If the updated cluster identifier is the same as the cluster identifier before the update, the update of the cluster device data 302 is omitted.

[0070] S946 is the same as S170 (FIG. 3). The processor 30p sends a notification to the control server 50 that the node cluster assignment has been completed.

[0071] The following S950 and S953 (FIG. 9) are the same as S190 and S200, respectively, of FIG. 3. In S950, the processor 50p of the control server 50 sends a cluster URL request (including data of the target device identifier) ​​to the cluster management server 30. In S953, the processor 30p of the cluster management server 30 references the cluster device data 302 (FIG. 7) to search for a cluster identifier associated with the target device identifier. The processor 30p notifies the control server 50 of the cluster URL associated with the searched cluster identifier. This cluster URL indicates the second connection server 10B associated with the second cluster identifier C2.

[0072] In S956, the processor 50p of the control server 50 transmits a transmission request for an instruction to obtain a URL to the cluster management server 30. This transmission request includes data of the target device identifier.

[0073] In S960, the processor 30p of the cluster management server 30 references the data stored in the storage device in S942 (FIG. 8) and acquires the pre-update cluster identifier associated with the target device identifier. The processor 30p sends a transmission request for an instruction to acquire a URL addressed to the target device to the load balancer 11 of the connection server 10 indicated by the pre-update cluster identifier (here, the first load balancer 11A of the first connection server 10A) via the management load balancer 20. This transmission request includes data of the target device identifier.

[0074] In S963, the processor 11p of the first load balancer 11A of the first connection server 10A refers to the distributed data 101 and searches for a node 13A (referred to as a communication node 13A) that is associated with the target device identifier. The processor 11p sends a request to send a URL acquisition instruction (including data of the target device identifier) ​​to the searched communication node 13A. The processor 13p of the communication node 13A sends a URL acquisition instruction to the first communication device 90A indicated by the target device identifier.

[0075] The subsequent steps S966 and S970 are similar to S180 and S210, respectively, in Fig. 3. At S966, the processor 90p of the first communication device 90A sends a cluster URL request (including data indicating the identifier of the communication device 90A) to the control server 50. At S970, the processor 50p of the control server 50 notifies the communication device 90A of the cluster URL (here, the cluster URL acquired at S953) associated with the identifier of the communication device 90A included in the request of S966.

[0076] The subsequent steps S973, S976, S980, S983, S986, and S990 are respectively similar to steps S220, S230, S240, S250, S255, and S260 of Figure 3. The only difference between the process of Figure 9 and the process of Figure 3 is that the second connection server 10B is used in place of the first connection server 10A (Figure 1) in the process of Figure 9.

[0077] In S973, the processor 90p of the communication device 90A sends a constant connection establishment request indicating information related to the communication device 90A (including the IP address and the identifier of the communication device) to the second load balancer 11B of the second connection server 10B indicated by the cluster URL. Note that in S973, the processor 90p may reboot the communication device 90A before sending the constant connection establishment request. Then, the processor 90p may send the constant connection establishment request after the reboot.

[0078] In S976, the processor 11p of the second load balancer 11B selects a target node 13B for the communication device 90A from the multiple nodes 13B of the second node cluster 12B. The method for selecting the target node 13B is the same as the selection method in S230 (FIG. 3). The processor 11p of the load balancer 11B adds data indicating the correspondence between information related to the communication device (including the identifier and IP address of the communication device in this embodiment) and the target node 13B to the distributed data 101 of the second load balancer 11B.

[0079] In S980, the processor 11p of the second load balancer 11B supplies the target node 13B with a constant connection establishment request from the communication device 90A. In response to the constant connection establishment request, the processor (not shown) of the target node 13B executes processing for establishing a constant connection by communicating with the communication device 90A. As a result, a constant connection between the communication device 90A and the target node 13B is established. In this way, the connection server that establishes the constant connection with the communication device 90A is changed from the first connection server 10A to the second connection server 10B.

[0080] After the constant connection is established, in S983, the target node 13B and the communication device 90A maintain the constant connection through KeepAlive communication. In S986, the second connection server 10B (load balancer 11B or target node 13B) transmits result data indicating the result of the connection confirmation to the control server 50. In S990, the constant connection history data 502 (FIG. 1) is updated, similar to S260 (FIG. 3).

[0081] A3.Service: 10 is a sequence diagram showing an example of processing for using a service provided by the service server 70 (FIG. 1). In S310, the service server 70 receives a service request from an external device such as the user terminal 95. Hereinafter, the service request is assumed to be a request for printing by the first communication device 90A. In this embodiment, the service request includes data indicating the identifier of the user who will use the service, data indicating that the requested service is remote printing, data indicating the identifier of the communication device to be used for the service (here, the first communication device 90A), and image data of the image to be printed.

[0082] In S350, the processor 70p of the service server 70 sends a print request addressed to the first communication device 90A to the control server 50. In this embodiment, the processor 70p generates print data for the first communication device 90A using image data of the image to be printed. The processor 70p stores the print data in the non-volatile storage device 70n and generates a URL (also called a print URL) for accessing the print data. The print request includes data indicating the print URL, a destination identifier that is the identifier of the destination device (here, the first communication device 90A), and a user identifier. The print request is made via an API for remote printing provided by the control server 50.

[0083] In S360, the processor 50p of the control server 50 sends a request to send a print request to the cluster management server 30. This request includes data indicating the print URL and the destination identifier.

[0084] In S370, the processor 30p of the cluster management server 30 references the cluster device data 302 (FIG. 7) and acquires a cluster identifier associated with the destination identifier. The processor 30p sends a print request transmission request to the load balancer 11 of the connection server 10 indicated by the acquired cluster identifier (here, the second load balancer 11B of the second connection server 10B) via the management load balancer 20. This transmission request includes data indicating the print URL and the destination identifier. In S380, the processor 30p sends a completion notification to the control server 50. In S390, the processor 50p of the control server 50 sends a completion notification to the service server 70.

[0085] In S400, the processor 11p of the second load balancer 11B of the second connection server 10B refers to the distributed data 101 (FIG. 1) and searches for information related to the communication device associated with the destination identifier and the node 13B (referred to as communication node 13B). The processor 11p sends a print request transmission request to the searched communication node 13B. This transmission request includes data indicating a print URL and information related to the communication device (e.g., a destination identifier and an IP address). The processor (not shown) of the communication node 13B sends the print request to the first communication device 90A indicated by the transmission request. This print request includes data indicating the print URL.

[0086] In S410, the processor (not shown) of the communication node 13B notifies the cluster management server 30 of the transmission result of the print request (e.g., success or failure) via the management load balancer 20. In S415, the processor 30p of the cluster management server 30 notifies the control server 50 of the transmission result. In S420, the processor 50p of the control server 50 updates the API history data 501 using the information acquired in S350 and the transmission result acquired in S415. The API history data 501 indicates the usage history of APIs (Application Programming Interfaces). The APIs that are the subject of the history are APIs that the server system 100 (here, the control server 50) makes public to the service server 70, and include APIs for requesting services such as remote printing and remote scanning. For example, the print request in S350 is made through an API for remote printing. The processor 50p adds, for example, data indicating the identifier of the user who requested the service, the identifier of the communication device, the date and time, and a flag indicating whether the communication between the node 13 and the communication device was successful or unsuccessful, to the API history data 501. In S430, the processor 50p sends a result notification including information used to update the API history data 501 to the service server 70. In S440, the processor 70p of the service server 70 updates the history data 702 (FIG. 1). For example, the processor 70p adds, to the history data 702, data indicating the identifier of the user, the identifier of the communication device used for the service, the date and time, and a flag indicating whether the communication between the node 13 and the communication device was successful or unsuccessful.

[0087] In S450, the processor 90p of the first communication device 90A accesses the print URL indicated by the print request and sends a print data request. In this embodiment, the print URL indicates print data stored in the non-volatile storage device 70n of the service server 70. In S460, the processor 70p of the service server 70 sends the print data to the first communication device 90A in response to the request. In S470, the processor 90p of the first communication device 90A controls the print execution unit 90PR in accordance with the print data, causing the print execution unit 90PR to print an image. Note that if sending the print request in S400 fails, S450-S470 are omitted.

[0088] In S480, the processor 90p of the first communication device 90A notifies the control server 50 of the print result. The print result includes, for example, a flag indicating whether printing was successful or unsuccessful, the number of sheets printed if printing was successful, and the identifier of the first communication device 90A. In S483, the processor 50p of the control server 50 registers print information including the print result and the user identifier in the service history data 504. In S486, the processor 50p notifies the service server 70 of the print information. In S490, the processor 70p of the service server 70 registers the print information in the history data 702. The processing of FIG. 10 then ends.

[0089] The processor 50p of the control server 50 may determine a job identifier for identifying each service request in response to the service request (e.g., S350). The devices 50, 30, 10B, 70, and 90A may also transmit the job identifier when transmitting various information. The devices 50, 30, 10B, 70, and 90A can perform consistent processing for the service request by referring to the job identifier.

[0090] As described above, in this embodiment, the server system 100 (FIG. 1) is configured to establish a constant connection with communication devices such as communication devices 90A and 90B. The server system 100 includes a plurality of connection servers 10, a management load balancer 20, a cluster management server 30, a selection server 40, a control server 50, and a monitoring server 55. As described with reference to FIGS. 3, 8, and 9, the devices 20-50 share the processing for controlling the plurality of connection servers 10. Hereinafter, the entirety of the devices 20-50 will also be referred to as a processing server 5. Each of the plurality of connection servers 10 is an example of a connection server configured to establish a constant connection. The communication devices 90A and 90B are examples of communication devices that establish a constant connection with the connection servers.

[0091] The processing server 5 executes the following processes. In each of S130 (FIG. 3), S920, and S930 (FIG. 8), the processing server 5 determines device label information DI of the communication device 90A. As described in FIGS. 2 and 4, the device label information DI represents a combination of the region item GG, the model item GJ, and the target device frequency dGL. Such device label information DI is an example of device status information representing the status of the communication device 90A.

[0092] 2, each of the multiple connection servers 10 (and thus each of the multiple node clusters 12) is associated with server label information SI. The server label information SI represents a combination of a region item GG, a model item GJ, and a monitoring frequency item GL. Such server label information SI is an example of server status information that represents the status of the connection server 10.

[0093] In S160 (FIG. 3) and S944 (FIG. 8), the processing server 5 uses a plurality of pieces of server label information SI and device label information DI associated with the plurality of connection servers 10, respectively, to determine a target connection server, which is a connection server 10 including a node cluster 12 for constant connection with the communication device 90A, from the plurality of connection servers 10. In S160 (FIG. 3), the target connection server is determined to be the first connection server 10A, and in S944 (FIG. 8), the target connection server is determined to be the second connection server 10B.

[0094] In S210 (FIG. 3) and S970 (FIG. 9), the processing server 5 outputs the cluster URL to the communication device 90 A. The cluster URL is an example of connection information for connecting to the target connection server 10.

[0095] In S916 (FIG. 8), the processing server 5 acquires a service update request without receiving an instruction from the communication device 90A. The service update is an example of an update to the state of the communication device 90A. The service update request (in this embodiment, indicating one or both of a start service and a stop service) is an example of update information indicating an update to the state of the communication device 90A.

[0096] S920 and S930 (FIG. 8) are executed when update information (here, a service update request (S916 (FIG. 8))) is acquired after the constant connection between the communication device 90A and the target connection server 10A is established (FIG. 3). In S920 and S930, the processing server 5 determines updated device label information DI using the update information.

[0097] The determination of the updated target connection server in S944 (FIG. 8) is executed when a specific condition is satisfied (S936: Yes). In S944, the processing server 5 determines the updated target connection server to be the connection server 10B with the second cluster identifier C2 that is associated with the server label information SI (here, GG1, GJ1, GLH (FIG. 2)) related to the updated device label information DI.

[0098] The output of the cluster URL in S970 (FIG. 9) is executed when a specific condition is satisfied (FIG. 8: S936: Yes). In S970, the processing server 5 outputs the updated cluster URL for connecting to the updated target connection server 10B to the communication device 90A.

[0099] According to the above configuration, after establishing a constant connection, the processing server 5 can promote a connection between a connection server that corresponds to the server label information SI (i.e., server status information) related to the updated device label information DI (i.e., device status information) and a communication device (e.g., a connection between the second connection server 10B and the first communication device 90A).

[0100] Furthermore, in this embodiment, the operation of each of the multiple connection servers 10 is monitored by the monitoring server 55 at a monitoring frequency (monitoring frequency item GL in FIG. 2) associated with the connection server 10. As shown in FIG. 2, the multiple connection servers 10 include multiple connection servers 10 associated with different monitoring frequencies. The server label information SI (FIG. 2) includes a monitoring frequency item GL. The monitoring frequency item GL is an example of monitoring frequency information associated with the monitoring frequency of the connection server 10. As described in FIG. 4, the device label information DI includes a target device frequency dGL. The target device frequency dGL is an example of target frequency information associated with the target monitoring frequency tGL. In S944 (FIG. 8), the processing server 5 uses the following server label information SI as the server label information SI (FIG. 2) related to the updated device label information DI. That is, the server label information SI includes a monitoring frequency item GL associated with a monitoring frequency that is equal to or greater than the target monitoring frequency tGL associated with the target device frequency dGL included in the updated device label information DI. For example, if the target device frequency dGL indicated by the device label information DI indicates a low-frequency GLL, server label information SI including the low-frequency GLL or a high-frequency GLH higher than the low-frequency GLL may be used. If the target device frequency dGL indicated by the device label information DI indicates a high-frequency GLH, server label information SI including the high-frequency GLH may be used. With this configuration, the processing server 5 can promote connection between the connection server monitored at an appropriate monitoring frequency and the communication device.

[0101] In this embodiment, as described in FIG. 4, the device label information DI includes a target device frequency dGL that is associated with the target monitoring frequency tGL (FIG. 5). The target monitoring frequency tGL is associated with the service item GA. The target device frequency dGL is an example of information associated with a service for using a communication device. When the device label information DI includes information associated with a service, the processing server 5 can promote a connection between a connection server suitable for the service and the communication device.

[0102] In this embodiment, as described in S916, S920, and S930 (FIG. 8), the update information used to determine the device label information DI includes a service update request. The service update request is an example of service update information indicating an update of a service for using the communication device. By using the update information including the service update information, the processing server 5 can determine the device label information DI suitable for the service update.

[0103] In this embodiment, as described in S130 (FIG. 3) and FIG. 4, the processing server 5 determines initial device label information DI including the region where the communication device 90A is used (here, region item GG) and the model of the communication device 90A (here, model item GJ) in order to determine an initial target connection server (here, the first connection server 10A) for the communication device 90A. In S160, the processing server 5 determines the initial target connection server 10A using a plurality of pieces of server label information SI (FIG. 2) and the initial device label information DI. In S210, the processing server 5 outputs initial connection information (here, a cluster URL) for connecting to the initial target connection server 10A to the communication device 90A. In S916 (FIG. 8), the processing server 5 acquires update information including service update information (here, a service update request) indicating an update of a service for using the communication device 90A from the service server 70 that provides a service for using the communication device 90A. In S920 and S930, the processing server 5 determines updated device label information DI using the update information including the service update information. As a result, the processing server 5 can determine an initial target connection server (the first connection server 10A in FIG. 3) suitable for the region and model. When a service is updated, the processing server 5 can determine device label information DI suitable for updating the service. For example, the service update information may indicate a start service, which is a service whose use is requested to start. In this case, the processing server 5 can determine device label information DI suitable for the start service (for example, device label information DI including a target device frequency dGL indicating a target monitoring frequency tGL of the start service).

[0104] Furthermore, in this embodiment, in S936 (FIG. 8), the processing server 5 compares the updated device label information DI with the device label information DI before the update. The specific condition for determining the updated target connection server includes that the updated device label information DI is different from the device label information DI before the update. If the updated device label information DI is the same as the device label information DI before the update (S936: No), the processing server 5 does not determine the updated target connection server and ends the processing of FIG. 8. If the specific condition is met (S936: Yes), the processing server 5 determines the updated target connection server in S944. Therefore, the processing load on the processing server 5 can be reduced compared to when the updated target connection server is determined regardless of whether the updated device label information DI is the same as the device label information DI before the update.

[0105] Furthermore, in this embodiment, when a specific condition is satisfied (FIG. 8: S936: Yes), S960-S963 (FIG. 9) and S970 (FIG. 9) are executed. In S960-S963 (FIG. 9), the processing server 5 outputs an instruction to the communication device 90A via the target connection server 10A that has established a constant connection with the communication device 90A to acquire from the processing server 5 updated connection information (here, a cluster URL) for connecting to the updated target connection server 10B. In S970, the processing server 5 outputs the updated connection information to the communication device 90A in response to a request for updated connection information from the communication device 90A (S966). In this way, the processing server 5 can appropriately output connection information to the communication device 90A in response to a request from the communication device 90A.

[0106] In this embodiment, the server system 100 (FIG. 1) includes a plurality of connection servers 10 configured to establish a constant connection, and a processing server 5 that determines a target connection server, which is a connection server for establishing a constant connection with a communication device (e.g., communication device 90A), from the plurality of connection servers 10. Therefore, the server system 100 can appropriately promote a constant connection between the communication device and the target connection server.

[0107] B. Second Example: 11 is a schematic diagram showing another example of the monitoring frequency data. In this example, the monitoring frequency data 402b indicates the correspondence between the states of the items GB, GC, and GI and the target monitoring frequency tGL.

[0108] The print frequency item GB indicates the number of pages printed NP by remote printing. The unit of the number of pages printed NP may be, for example, the number of pages per day. When the number of pages printed NP is large, the availability of communication via the connection server 10 is more important than when the number of pages printed NP is small. Therefore, a low frequency GLL is associated with a number of pages printed NP less than the threshold value NPth, and a high frequency GLH is associated with a number of pages printed NP equal to or greater than the threshold value NPth. The threshold value NPth is experimentally determined in advance so that the processing server 5 can determine an appropriate target connection server.

[0109] The communication frequency item GC indicates an API usage frequency F1. An API with an API usage frequency F1 is an API that generates communication with the node 13 among the APIs that the server system 100 (here, the control server 50) makes public to the service server 70. Specifically, an API with an API usage frequency F1 is an API for making service requests (e.g., S310 in FIG. 10 ) such as remote printing and remote scanning. The unit of the API usage frequency F1 may be, for example, the number of times the API is used per day. When the API usage frequency F1 is high, the availability of communication via the connection server 10 is more important than when the API usage frequency F1 is low. Therefore, an API usage frequency F1 below a threshold F1th is associated with a low frequency GLL, and an API usage frequency F1 equal to or greater than the threshold F1th is associated with a high frequency GLH. The threshold F1th is experimentally determined in advance so that the processing server 5 can determine an appropriate target connection server.

[0110] The usage frequency item GI for each user indicates the service usage frequency F3 for each user identifier. The unit of the service usage frequency F3 may be, for example, the number of times all services are used per day. When the service usage frequency F3 is high, the availability of communication via the connection server 10 is more important than when the service usage frequency F3 is low. Therefore, a service usage frequency F3 below the threshold F3th is associated with a low frequency GLL, and a service usage frequency F3 equal to or greater than the threshold F3th is associated with a high frequency GLH. The threshold F3th is experimentally determined in advance so that the processing server 5 can determine an appropriate target connection server.

[0111] The connection server's update process using the information NP, F1, and F3 may be various processes. FIG. 12(A) is a sequence diagram showing an example of update process using the number of printed sheets NP and the API usage frequency F1. S9A is executed instead of S910-S920 in FIG. 8. After S9A, the process proceeds to S923 (FIG. 8). The processor 50p of the control server 50 periodically executes the update process of FIG. 12(A) for each communication device identifier. In S9A, the processor 50p acquires the number of printed sheets NP and the API usage frequency F1.

[0112] The number of printed sheets NP is obtained, for example, as follows: The processor 50p of the control server 50 references the service history data 504 (FIG. 1) and obtains the history of print results associated with the identifier of the communication device. The processor 50p uses the history of print results to obtain the cumulative number of printed sheets and the service usage start date. The processor 50p calculates the number of printed sheets NP by dividing the cumulative number of printed sheets by the number of days from the service usage start date to the present.

[0113] The method for acquiring the API usage frequency F1 is, for example, as follows: The processor 50p references the API history data 501 (FIG. 1) and acquires the API usage history associated with the identifier of the communication device. The processor 50p uses the API usage history to acquire the cumulative number of uses and the service usage start date. The processor 50p calculates the API usage frequency F1 by dividing the cumulative number of uses by the number of days from the service usage start date to the present.

[0114] The processing following S9A is similar to the processing from S923 onwards in Figures 8 and 9. The determination request (S926 (Figure 8)) includes information NP and F1. In S930 (i.e., the processing in Figure 4), the processor 40p of the selection server 40 may adopt the highest target monitoring frequency tGL among multiple target monitoring frequencies tGL associated with multiple items including information NP and F1, as the target monitoring frequency tGL for determining device label information DI.

[0115] FIG. 12(B) is a sequence diagram showing an example of an update process using the service use frequency F3. S9B1-S9B3 are executed instead of S910-S920 in FIG. 8. After S9B3, the process proceeds to S923 (FIG. 8). The processor 50p of the control server 50 periodically executes the update process of FIG. 12(B) for each user identifier. The method for acquiring the service use frequency F3 is as follows. In S9B1, the processor 50p of the control server 50 requests the service server 70 to transmit the service usage history associated with the user identifier to be processed. In S9B2, the processor 70p of the service server 70 refers to the history data 702 (FIG. 1) to acquire the service usage history associated with the user identifier and transmits data representing the acquired usage history to the control server 50. In S9B3, the processor 50p of the control server 50 uses the usage history to acquire the cumulative number of times the service has been used and the start date of use for each service. The processor 50p calculates the service use frequency F3 by dividing the cumulative number of uses by the number of days from the earliest start date of use to the present. The processing following S9B3 is similar to the processing from S923 onwards in FIGS. 8 and 9. The determination request (S926 (FIG. 8)) includes the service use frequency F3. In S930 (i.e., the processing in FIG. 4), the processor 40p of the selection server 40 may adopt the highest target monitoring frequency tGL among one or more target monitoring frequencies tGL associated with one or more items including the service use frequency F3 as the target monitoring frequency tGL for determining the device label information DI. When multiple communication devices are associated with the user identifier to be processed, the processor 50p may execute the processing from S923 onwards for each communication device.

[0116] FIG. 12C is a sequence diagram illustrating an example of an update process using information NP, F1, and F3. S9C is executed instead of S910-S920 in FIG. 8. After S9C, the process proceeds to S923 (FIG. 8). In this embodiment, the processor 55p of the monitoring server 55 periodically collects the number of printed sheets NP, the API usage frequency F1, and the service usage frequency F3 from other servers (e.g., the control server 50 and the service server 70). The processor 55p then periodically transmits data representing the information NP and F1 of each communication device identifier and the service usage frequency F3 of each user identifier to the control server 50. The process following S9C is similar to the process from S923 onward in FIGS. 8 and 9. The processor 50p of the control server 50 executes the process from S923 onward using the information NP and F1 for each communication device identifier. The processor 50p also executes the process from S923 onward using the service usage frequency F3 for each user identifier.

[0117] Note that S9A (FIG. 12(A)) may be added to the processing of FIGS. 8 and 9. The processor 50p of the control server 50 may execute S9A in response to a service update request (S916). S9B1-S9B3 (FIG. 12(B)) may be added to the processing of FIGS. 8 and 9. The processor 50p may execute S9B1-S9B3 in response to a service update request (S916). Also, S9A (FIG. 12(A)) may be added to the processing of FIG. 3. The processor 50p of the control server 50 may execute S9A in response to a registration request (S110). S9B1-S9B3 (FIG. 12(B)) may be added to the processing of FIG. 3. The processor 50p may execute S9B1-S9B3 in response to the registration request (S110). In either case, the determination request (S120 (FIG. 3), S926 (FIG. 8)) may include one or more types of information among the information NP, F1, and F3. One or more types of information arbitrarily selected in advance from the service item GA (FIG. 5) and the information NP, F1, and F3 (FIG. 11) may be used in the connection server update process.

[0118] The device label information DI includes a target device frequency dGL associated with the target monitoring frequency tGL (FIGS. 5 and 11). When the target device frequency dGL indicates a target monitoring frequency tGL associated with the number of printed sheets NP, the target device frequency dGL is an example of information associated with the frequency of printing performed using a communication device. When the target device frequency dGL indicates a target monitoring frequency tGL associated with an API usage frequency F1, the target device frequency dGL is an example of information associated with the usage frequency by a communication device of an application programming interface (API) for a service. When the target device frequency dGL indicates a target monitoring frequency tGL associated with a service usage frequency F3, the target device frequency dGL is an example of information associated with the usage frequency of a service for using a communication device. When the device label information DI includes such information, the processing server 5 can promote connection between a communication device and a connection server suitable for the number of printed sheets NP, API usage frequency F1, or service usage frequency F3.

[0119] C. Third Example: 13 to 15 are schematic diagrams showing other embodiments of items included in label information (here, server label information SI (FIG. 2) and device label information DI (FIG. 4)) and methods of acquiring information for determining the items. The label information is not limited to the region item GG (FIG. 2), the model item GJ, and the items indicating the monitoring frequency (here, the monitoring frequency item GL and the target device frequency dGL), but various other items can also be used. 13 to 15 show 11 items GA-GK that are examples of usable items. Each figure shows the correspondence between the type of information, the item, the acquisition method, and the determination rule for the cluster label data 301 (FIG. 2). The items GA-GK are classified into five types: "service information," "history information," "connection source information," "user information," and "device specification information." The acquisition method is an example of a method for acquiring information used to determine each item, and is performed, for example, at S520 in FIG. 4.

[0120] As will be described later, items determined based on the history of the communication device may be used as device label information DI. When the power state of the communication device is switched from an off state to an on state, the communication device starts processing for establishing a constant connection (FIG. 3). Also, when the constant connection is disconnected due to a communication error or the like, the communication device starts processing for establishing a constant connection. Here, a node cluster 12 different from the node cluster 12 previously assigned to the communication device may be assigned to the communication device based on the history of the communication device. Items GA-GK will be explained below in order.

[0121] C1.Service Item GA: The service item GA (FIG. 13) is the service item GA described in FIG. 5 and other figures. The service item GA is selected from a plurality of services, including, for example, remote printing GA1, remote scanning GA2, information acquisition GA3, and "no service (not shown)." In the remote printing GA1 service, the service server 70 causes a communication device to print an image via the network NT (see, for example, FIG. 10). In the remote scanning GA2 service, the service server 70 causes a communication device having a reading device to read an object (e.g., a document sheet) and transmits the read image data to a user terminal (e.g., the user terminal 95) via the network NT. In the information acquisition GA3 service, the service server 70 obtains information from the communication device and performs specific processing using the obtained information. For example, if the communication device has a print execution unit, the service server 70 obtains remaining amount information indicating the remaining amount of consumables (e.g., color materials (e.g., ink or toner), printing paper, etc.) from the communication device. If the remaining amount is below a threshold, the service server 70 executes a consumable ordering process.

[0122] In S520 of FIG. 4, the processor 40p of the selection server 40 may acquire information for determining the service item GA from the service server 70. FIG. 16(A) is a flowchart showing an example of the acquisition process. In S710, the processor 40p of the selection server 40 transmits data indicating the identifier of the communication device to the service server 70. In S720, the processor 70p of the service server 70 refers to the service correspondence data 701 (FIG. 1) and acquires a service identifier associated with the identifier of the communication device. The processor 70p transmits the acquired service identifier data to the selection server 40. The processor 40p of the selection server 40 determines the service item GA using the service identifier. Note that a priority order may be assigned in advance to multiple available services. When multiple services are associated with the identifier of the communication device, the processor 40p may determine the service item GA using the service indicating the highest priority.

[0123] The decision rule for the cluster label data 301 (FIG. 2) may be selected from, for example, two rules RA1 and RA2. The first rule RA1 associates a specific service item GA (e.g., remote printing GA1 and remote scanning GA2) with multiple cluster identifiers. Even if one connection server 10 fails, the service server 70 can provide the service of the specific service item GA for communication devices connected to other connection servers 10. Other service items GA (e.g., information acquisition GA3 and "no service") may also be associated with multiple cluster identifiers. Alternatively, other service items GA may be associated with one cluster identifier. If a connection server 10 fails, the service server 70 can provide the service after a constant connection is restored.

[0124] The second rule RA2 associates a different cluster identifier with each service. Even if the connection server 10 for one service fails, the service server 70 can still provide other services.

[0125] The quality of the constant connection may differ among the multiple connection servers 10. The quality of the connection server 10 may be adjusted to a quality appropriate for the corresponding service. For example, the quality of the constant connection for remote printing GA1 and remote scanning GA2 may be higher than the quality of the constant connection for information acquisition GA3 and "no service." Any method may be used to adjust the quality of the constant connection. For example, the connection server 10 may have an alternative device for each of the devices 11 and 13. The monitoring server 55 may periodically monitor the connection server 10 (also called a health check). If a possible abnormality is detected by the health check, the monitoring server 55 may replace the device with an alternative device. The quality of the constant connection can be improved by increasing the frequency of health checks. The quality of the constant connection can also be improved by adjusting the conditions for abnormality detection by the health check to make it easier to detect possible abnormalities. One or both of the frequency of health checks and the conditions for abnormality detection may differ among the multiple connection servers 10. The health check method may be any method for detecting possible abnormalities. For example, the health check may include one or more of the following processes: sending a response request to the load balancer 11, sending a response request to each node 13, acquiring the processor usage rate of the load balancer 11, acquiring the processor usage rate of each node 13, acquiring the memory usage rate of the load balancer 11, and acquiring the memory usage rate of each node 13. The abnormality detection condition may be satisfied when one of the following conditions is met: no response is received within a predetermined waiting time from the sending of the response request; the processor usage rate is equal to or greater than a predetermined processor threshold; or the memory usage rate is equal to or greater than a predetermined memory threshold. The waiting time, the processor threshold, and the memory threshold may be set for each connection server 10. The processor threshold and the memory threshold may differ between the load balancer 11 and the node 13. Note that when one device includes multiple processors, the processor usage rate of the device may be various summary statistics (e.g., average, median, maximum) of the usage rates of the multiple processors.

[0126] C2.Print frequency item GB: The printing frequency item GB is the printing frequency item GB described in Fig. 11. The printing frequency item GB is selected, for example, from a first group GB1 (the number of printed sheets per day NP is equal to or greater than a predetermined threshold value NPth) and a second group GB2 (the number of printed sheets per day NP is less than the threshold value NPth).

[0127] In S520 of FIG. 4, the processor 40p of the selection server 40 may acquire information used to determine the printing frequency item GB (for example, the number of printed sheets NP or the history of print results) from the service server 70. This acquisition may be performed by a process similar to that of FIG. 16(A). The method of calculating the number of printed sheets NP may be the same as that of FIG. 12(A).

[0128] The decision rule for the cluster label data 301 (FIG. 2) may be selected from, for example, two rules RB1 and RB2. The first rule RB1 associates the first group GB1 with multiple cluster identifiers. Even if one connection server 10 fails, the service server 70 can perform remote printing for communication devices connected to other connection servers 10. The second group GB2 may also be associated with multiple cluster identifiers. Alternatively, the second group GB2 may be associated with a single cluster identifier.

[0129] The second rule RB2 associates each group with a different cluster identifier. Even if the connection server 10 for one group fails, the service server 70 can provide services to other groups. Here, the quality of constant connection may differ among the multiple connection servers 10. For example, the quality of constant connection for the first group GB1 may be higher than the quality of constant connection for the second group GB2.

[0130] C3.Communication frequency item GC: The communication frequency item GC is the communication frequency item GC described in Fig. 11. The communication frequency item GC is selected from, for example, a first group GC1 (API usage frequency F1 is equal to or greater than a predetermined threshold F1th) and a second group GC2 (API usage frequency F1 is less than a predetermined threshold F1th).

[0131] In S520 of FIG. 4, the processor 40p of the selected server 40 may acquire information used to determine the communication frequency item GC (e.g., API usage frequency F1 or API usage history) from the control server 50. FIG. 16(B) is a flowchart showing an example of the acquisition process. In S750, the processor 40p of the selected server 40 transmits data indicating the identifier of the communication device to the control server 50. In S760, the processor 50p of the control server 50 refers to the API history data 501 (FIG. 1) and acquires the API usage history associated with the identifier of the communication device. The processor 50p transmits the acquired usage history data to the selected server 40. The processor 40p of the selected server 40 calculates the API usage frequency F1 using the API usage history and determines the communication frequency item GC. The calculation method of the API usage frequency F1 may be the same as the calculation method described in FIG. 12(A).

[0132] The decision rule for the cluster label data 301 (FIG. 2) may be selected from, for example, two rules RC1 and RC2. The first rule RC1 associates each of the groups GC1 and GC2 with a plurality of cluster identifiers so as to reduce the bias in API usage frequency F1 among the plurality of connection servers 10. For example, the first group GC1 and the second group GC2 are associated with a plurality of common cluster identifiers.

[0133] The second rule RC2 associates a different cluster identifier with each group in the communication frequency category GC. Even if the connection server 10 for one group fails, the service server 70 can provide services to other groups. Here, the quality of constant connection may differ among the multiple connection servers 10. For example, the quality of constant connection for the first group GC1 may be higher than the quality of constant connection for the second group GC2.

[0134] C4. Error Frequency Item GD: The error frequency item GD (FIG. 14) indicates a group of API error frequencies FE. The API of the API error frequency FE is the same as the API of the API usage frequency F1 (FIG. 13). The error frequency item GD is selected, for example, from a first group GD1 (API error frequency FE is equal to or greater than a predetermined threshold value FEth) and a second group GD2 (API error frequency FE is less than a predetermined threshold value FEth).

[0135] In S520 of FIG. 4, the processor 40p of the selected server 40 acquires information used to determine the error frequency item GD from the control server 50 in accordance with the processing of FIG. 16(B). In S750, the processor 40p of the selected server 40 transmits data indicating the identifier of the communication device to the control server 50. In S760, the processor 50p of the control server 50 refers to the API history data 501 (FIG. 1) and prepares information regarding the API error frequency FE (e.g., the cumulative number of errors and the number of days from the start date of service use to the present) from the usage history of the API associated with the identifier of the communication device. Then, the processor 50p transmits data indicating the prepared information to the selected server 40. The processor 40p of the selected server 40 refers to the data from the control server 50, calculates the API error frequency FE, and determines the error frequency item GD (e.g., FE = cumulative number of errors / number of days).

[0136] The rule for determining the cluster label data 301 (FIG. 2) related to the error frequency item GD may be, for example, the following rule RD1. This rule RD1 associates the first group GD1 with one or more specific cluster identifiers. This configuration increases the likelihood that the cause of the error can be determined by investigating a specific node cluster 12 corresponding to the specific cluster identifier (for example, the cause can be determined without investigating other node clusters 12). The second group GD2 may be associated with one or more cluster identifiers different from the one or more specific cluster identifiers associated with the first group GD1.

[0137] C5. Mass Cutting Item GE: The simultaneous disconnection item GE (FIG. 14) is an item related to a group of multiple IP addresses whose constant connections were simultaneously disconnected in the past. When a problem occurs in a network device (e.g., a router or gateway) that processes communications from multiple IP addresses, the constant connections of the multiple IP addresses are simultaneously disconnected. When the problem in the network device is resolved, requests to establish constant connections from the multiple IP addresses are simultaneously sent to the server system 100.

[0138] The simultaneous disconnection item GE is selected from, for example, a first group GE1 and a second group GE2. The first group GE1 is a group of multiple IP addresses whose constant connections have been simultaneously disconnected in the past. The second group GE2 is a group of IP addresses not included in the first group GE1. The simultaneous disconnection condition, which is the condition for an IP address to be included in the first group GE1, may be various conditions. For example, the simultaneous disconnection condition may be that the constant connections of more than a predetermined threshold (e.g., 100) IP addresses have been disconnected in the past within a predetermined time period (e.g., 10 minutes).

[0139] At S520 in FIG. 4, the processor 40p of the selection server 40 acquires information used to determine the simultaneous disconnection item GE from the control server 50 in accordance with the processing of FIG. 16(B). At S750, the processor 40p of the selection server 40 transmits data indicating the IP addresses of the communication devices to the control server 50. At S760, the processor 50p of the control server 50 references the constant connection history data 502 (FIG. 1) and generates a list of multiple IP addresses that satisfy the simultaneous disconnection condition. The processor 50p transmits data indicating whether the IP address of the communication device is included in the list of IP addresses to the selection server 40. The processor 40p of the selection server 40 references the data from the control server 50 and determines the simultaneous disconnection item GE.

[0140] The rule for determining the cluster label data 301 (FIG. 2) related to the simultaneous disconnection item GE may be, for example, the following rule RE1. This rule RE1 associates the first group GE1 with multiple cluster identifiers. The reason for this is as follows: A failure in a network device may occur again after being resolved. When the re-occurring failure is resolved, requests to establish constant connections from multiple IP addresses included in the first group GE1 may arrive at the server system 100 all at once. When the cluster label data 301 is determined according to rule RE1, the requests to establish constant connections from multiple IP addresses can be distributed to multiple node clusters 12. The second group GE2 may be associated with one or more cluster identifiers different from the multiple cluster identifiers associated with the first group GE1.

[0141] C6. Communication failure item GF: The communication failure item GF (Figure 14) is an item related to a group of multiple communication devices that have experienced communication failures in the past. Multiple communication devices may be used in the same area. For example, multiple communication devices may be used in the same destination area. Also, multiple communication devices may be provided by a distributor and used in the distributor's sales area. The continuous connection of multiple communication devices used in the same area may be prone to disconnection. For example, the network in the destination area may be unstable. The network in the distributor's sales area may be unstable.

[0142] The communication failure item GF is selected from, for example, a first group GF1 and a second group GF2. The first group GF1 is a group that is prone to communication failure. The second group GF2 is a group of communication devices that are not included in the first group GF1. In this embodiment, the identifiers of multiple communication devices are divided into multiple groups (also called terminal groups) in advance. One terminal group is made up of identifiers of multiple communication devices used in the same area. The multiple terminal groups are in different areas, i.e., have different geographical locations. The failure group condition, which is a condition for a target terminal group to be included in the first group GF1, may be various conditions that indicate a likelihood of communication failure. For example, the failure group condition may be that, among the multiple communication devices included in the target terminal group, the continuous connection of a predetermined percentage (e.g., 30%) or more of the communication devices has been disconnected in the past within a predetermined time period (e.g., 10 minutes).

[0143] At S520 in FIG. 4, the processor 40p of the selection server 40 acquires information used to determine the communication failure item GF from the control server 50 in accordance with the processing of FIG. 16(B). At S750, the processor 40p of the selection server 40 transmits data indicating the identifier of the communication device to the control server 50. At S760, the processor 50p of the control server 50 references the constant connection history data 502 (FIG. 1) and extracts a terminal group that satisfies the failure group condition from a plurality of predetermined terminal groups. The processor 50p transmits data indicating whether the identifier of the communication device is included in a terminal group that satisfies the failure group condition to the selection server 40. The processor 40p of the selection server 40 references the data from the control server 50 and determines the communication failure item GF.

[0144] The decision rule for the cluster label data 301 (FIG. 2) related to the communication failure item GF may be selected from, for example, two rules RF1 and RF2. The first rule RF1 associates the first group GF1 with multiple cluster identifiers. The reason for this is as follows: A communication failure may occur again in an area where a communication failure occurred. When the communication failure that has occurred again is resolved, requests to establish constant connections from multiple communication devices of the terminal group included in the first group GF1 may arrive at the server system 100 all at once. When the first rule RF1 is adopted, the requests to establish constant connections from multiple communication devices can be distributed to multiple node clusters 12. The second group GF2 may be associated with one or more cluster identifiers different from the multiple cluster identifiers associated with the first group GF1.

[0145] The second rule RF2 associates a different cluster identifier with each group of communication failure items GF. According to this configuration, when a communication failure occurs in a terminal group included in the first group GF1, the impact of the communication failure on the node cluster 12 associated with the second group GF2 is mitigated.

[0146] The communication failure item GF may be determined using an IP address instead of the identifier of the communication device.

[0147] C7.Regional Item GG: The region item GG (FIG. 14) is the region item GG described in FIG. 3. The region item GG is an item related to the connection source of the constant connection. The region item GG may be selected from a plurality of regions including, for example, a first region GG1, a second region GG2, and a third region GG3.

[0148] At S520 in FIG. 4, the processor 40p of the selection server 40 refers to the terminal information data included in the determination request received at S120 (FIG. 3) to acquire information (here, an identifier of the communication device) used to determine the region item GG. Alternatively, the processor 40p may acquire information from the control server 50 in accordance with the processing of FIG. 16(B). At S750, the processor 40p of the selection server 40 transmits data indicating information about the communication device (e.g., an identifier, an IP address, etc.) to the control server 50. At S760, the processor 50p of the control server 50 uses the information about the communication device to transmit data indicating information about a region associated with the communication device to the selection server 40. The correspondence between the information about the communication device and the region is determined in advance. The processor 40p of the selection server 40 refers to the data from the control server 50 to determine the region item GG.

[0149] The rule for determining the cluster label data 301 (FIG. 2) related to the region item GG may be, for example, the following rule RG1. This rule RG1 associates a different cluster identifier with each region in the region item GG. With this configuration, when a communication failure occurs in one region, the impact of the communication failure on node clusters 12 associated with other regions is mitigated. Note that the region item GG may be determined based on various information related to the region, such as the IP address of the communication device and the business region of the distributor that provides the communication device, instead of the destination of the communication device.

[0150] C8.User Item GH: The user field GH (FIG. 15) indicates a user associated with the communication device. The user is, for example, the owner of the communication device. The user field GH may be selected from a plurality of user identifiers including a first user identifier GH1 and a second user identifier GH2.

[0151] At S520 in FIG. 4, the processor 40p of the selection server 40 acquires information used to determine the user item GH from the control server 50 in accordance with the processing of FIG. 16(B). At S750, the processor 40p of the selection server 40 transmits data indicating the identifier of the communication device to the control server 50. At S760, the processor 50p of the control server 50 refers to the user correspondence data 503 (FIG. 1) to acquire the identifier of the user associated with the identifier of the communication device. The processor 50p transmits the data indicating the user identifier to the selection server 40. The processor 40p of the selection server 40 determines the user item GH by referring to the data from the control server 50.

[0152] The rule for determining the cluster label data 301 (FIG. 2) for the user item GH may be selected from, for example, two rules RH1 and RH2. The first rule RH1 associates one cluster identifier with each user identifier. When multiple communication devices are associated with one user identifier, the multiple communication devices are associated with the same cluster identifier. With this configuration, when a malfunction occurs in one node cluster 12, the number of users affected by the malfunction can be reduced. Note that multiple user identifiers may be associated with one cluster identifier.

[0153] The second rule RH2 associates multiple cluster identifiers with each user identifier. This second rule RH2 is a rule for distributing multiple communication devices to multiple node clusters 12 when multiple communication devices are associated with one user identifier. In S670 of FIG. 6, the processor 30p of the cluster management server 30 determines one target node cluster (i.e., one target connection server) for each user identifier by round robin. In this case, S665 may be omitted. When the second rule RH2 is used, the possibility that all communication devices associated with one user identifier become unusable due to a malfunction of one node cluster 12 is reduced.

[0154] C9. User Frequency Item GI: The user use frequency item GI (FIG. 15) indicates a group of service use frequencies F3 for each user identifier. The user use frequency item GI is selected from, for example, a first group GI1 (service use frequency F3 is equal to or greater than a predetermined threshold F3th) and a second group GI2 (service use frequency F3 is less than a predetermined threshold F3th).

[0155] In S520 of FIG. 4, the processor 40p of the selection server 40 acquires information used to determine the user use frequency item GI from the service server 70 in accordance with the processing of FIG. 16(A). In S710, the processor 40p of the selection server 40 transmits data indicating the identifier of the communication device to the service server 70. In S720, the processor 70p of the service server 70 refers to the service correspondence data 701 and acquires the user identifier associated with the identifier of the communication device. The processor 70p refers to the history data 702 and prepares information regarding the user use frequency item GI (e.g., the total number of times all services have been used and the number of days from the earliest service use start date to the present) from the service use history associated with the user identifier. The processor 70p transmits data indicating the prepared information to the selection server 40. The processor 40p of the selection server 40 refers to the data from the service server 70, calculates the service use frequency F3, and determines the user use frequency item GI (e.g., F3 = total number of times used / number of days).

[0156] The rule for determining the cluster label data 301 (FIG. 2) related to the user usage frequency item GI may be, for example, the following rule RI1. This rule RI1 associates the first group GI1 with one or more specific cluster identifiers. The second group GI2 is associated with one or more cluster identifiers that are not included in the one or more specific cluster identifiers associated with the first group GF1. The connection server 10 associated with the specific cluster identifier provides a higher quality of constant connection than the other connection servers 10. With this configuration, when a new communication device is used by a user with a high service usage frequency F3, the possibility of a malfunction of the node cluster 12 due to the load of the constant connection of the communication device is reduced.

[0157] C10. Model Item GJ: The model item GJ (FIG. 15) is the model item GJ described in FIG. 3. The model item GJ may be selected from a plurality of models including, for example, a first model GJ1 and a second model GJ2.

[0158] At S520 in FIG. 4, the processor 40p of the selection server 40 refers to the terminal information data included in the determination request received at S120 (FIG. 3) to acquire information (here, a model name) used to determine the model item GJ. Alternatively, the processor 40p may acquire information from the control server 50 in accordance with the processing of FIG. 16(B). At S750, the processor 40p of the selection server 40 transmits data indicating information about the communication device (e.g., an identifier, an IP address, etc.) to the control server 50. At S760, the processor 50p of the control server 50 uses the information about the communication device to transmit data indicating a model of the communication device to the selection server 40. The correspondence between the information about the communication device and the model is predetermined. The processor 40p of the selection server 40 refers to the data from the control server 50 to determine the model item GJ.

[0159] The rule for determining the cluster label data 301 (FIG. 2) for the model item GJ may be, for example, the following rule RJ1. This rule RJ1 associates a different cluster identifier with each model of the model item GJ. Here, the functions of the communication device (particularly, the function for constant connection) may differ among the multiple models. For example, the communication protocol for constant connection may differ among the multiple models. In this case, the node cluster 12 is configured to have functions suitable for the functions of the communication device of the corresponding model. In this way, the multiple node clusters 12 may have functions different from each other. Then, each model of the model item GJ may be associated with a node cluster 12 having functions suitable for the model.

[0160] C11.Version Item GK: The version item GK (FIG. 15) indicates the version of the firmware of the communication device. The version item GK may be selected from a plurality of versions including, for example, a first version GK1 and a second version GK2.

[0161] In S520 of FIG. 4, the processor 40p of the selection server 40 refers to the terminal information data included in the determination request received in S120 (FIG. 3) to obtain information (here, the firmware version) used to determine the version item GK.

[0162] The rule for determining the cluster label data 301 (FIG. 2) related to the version item GK may be, for example, the following rule RK1. This rule RK1 associates a different cluster identifier with each version of the version item GK. Here, the functions of the communication device (particularly, the function for always-on connection) may differ between multiple versions. For example, the communication protocol for always-on connection may differ between multiple versions. In this case, the node cluster 12 is configured to have functions suitable for the functions of the communication device of the corresponding version. In this way, the multiple node clusters 12 may have functions different from each other. Then, each version of the version item GK may be associated with a node cluster 12 having functions suitable for the version.

[0163] 8 and 9, information used to determine the device label information (e.g., terminal information data) may be provided to the selection server 40 by the determination request of S926 (FIG. 8) instead of the determination request of S120 (FIG. 3). The label information may include one or more items arbitrarily selected from the above items GA-GK. Here, options for each item (e.g., the first group GB1 and the second group GB2 of the print frequency item GB (FIG. 13)) may be associated with a cluster identifier according to the rules for the corresponding items. The device label configuration data 401 (FIG. 1) may be determined in advance to indicate the configuration of the label information (e.g., a list of items included in the label information). However, the rules for determining the cluster label data 301 are not limited to the rules of FIGS. 13-15, and may be various other rules. For example, a different cluster identifier may be associated with each option for an item, regardless of the content of the item.

[0164] The device label information DI may include a service item GA (e.g., a service identifier). In this case, the service item GA is an example of information associated with a service for using the communication device. The device label information DI may include a print frequency item GB (e.g., number of prints NP). In this case, the print frequency item GB is an example of information associated with the frequency of printing performed using the communication device. The device label information DI may include a communication frequency item GC (e.g., API usage frequency F1). In this case, the communication frequency item GC is an example of information associated with the frequency of use by the communication device of an application programming interface (API) for the service. The device label information DI may include a usage frequency item GI (e.g., service usage frequency F3). In this case, the usage frequency item GI is an example of information associated with the frequency of use of a service for using the communication device. The device label information DI may include multiple items. In this case, the cluster identifier (FIG. 2) may be associated with a combination of multiple options for the multiple items.

[0165] D. Variations: (1) As described above, the procedure (e.g., communication protocol) for the constant connection between the communication device and the connection server 10 may differ depending on the firmware version of the communication device. In this case, the server system 100 may include multiple connection servers 10 associated with different constant connection procedures. The connection server update process accompanying the firmware update of the communication device may be various processes. For example, the communication device downloads new firmware from a server (not shown). The communication device restarts. The communication device then starts operating in accordance with the new firmware. The communication device starts the constant connection establishment process of FIG. 3. The registration request sent in S110 includes data on the new firmware version. The processing server 5 assigns the connection server 10 suitable for the new version to the communication device (S160).

[0166] Furthermore, the new firmware may be configured to support both a procedure for the firmware before the update (referred to as the first procedure) and a procedure for the new firmware (referred to as the second procedure). In this case, the connection server may be updated, for example, as follows: The communication device downloads new firmware from a server (not shown). The communication device restarts. The communication device starts operating in accordance with the new firmware. Here, the communication device establishes a constant connection with the connection server before the update in accordance with the first procedure. The communication device notifies the control server 50 of the new firmware version. In response to this notification, the control server 50 starts the connection server update process (for example, the process from S923 onwards in FIGS. 8 and 9).

[0167] (2) The status information including the device status information (e.g., device label information DI) and the server status information (e.g., server label information SI) may include various information other than the above information (e.g., items GA-GL). The status information may include, for example, one or more pieces of information arbitrarily selected from the following information: (A) Device specification information indicating the specifications of the communication device (for example, the number of types of color materials that can be used for printing, the resolution of the reading device, details of the functions that the communication device has, etc.). (B) User information relating to the user of the communication device (e.g., the user's age, the language setting of the communication device, etc.). (C) Service information related to the service (e.g., frequency of readings by the reading device, etc.). (D) History information related to the communication history of the communication device (e.g., the cumulative number of disconnections of a constant connection, etc.) In either case, the processing server 5 can use the device status information and the server status information to appropriately distribute the multiple communication devices to the multiple connection servers 10. Here, one or more pieces of information included in the initial device status information for determining the initial connection server 10 may be set to predetermined initial information (for example, the service item GA (FIG. 13) and the user item GH (FIG. 15) may be set to none).

[0168] (3) The update information indicating an update to the status of the communication device may indicate an update to any status of the communication device. For example, the update information may indicate a change in an item included in the device status information (e.g., device label information DI). The updated device status information may then be set to information that reflects the change indicated by the update information. As in the embodiments of FIGS. 8, 9, 12(B), and 12(C), the processing server 5 may acquire the update information from a device other than the processing server 5 (e.g., the monitoring server 55, the service server 70, or the communication device). As in the embodiment of FIG. 12(A), the processing server 5 may acquire the update information without accessing a device other than the processing server 5. In either case, the processing server 5 may acquire the update information without receiving an instruction from the communication device. This allows the processing server 5 to determine the device status information (and thus update the connection server) independently of the communication device.

[0169] (4) The specific condition for determining the updated connection server is not limited to the condition of S936 (FIG. 8) and may be any condition. For example, the specific condition may include obtaining permission from an administrator of the server system 100. For example, the administrator may permit the update of the connection server if the server system 100 does not have a malfunction. If the server system 100 has a malfunction, the administrator may prohibit the update of the connection server.

[0170] (5) The method of outputting the updated cluster URL (more generally, the updated connection information) to the communication device may be various other methods instead of the method described in S956-S970 of FIG. 9. For example, the processing server 5 may output the updated cluster URL to the communication device 90A in S960 and S963 without receiving a request for the cluster URL from the communication device 90A. The communication device 90A may execute S973 in response to receiving the cluster URL. Furthermore, the connection information is not limited to a URL and may be various information for connecting to the connection server (for example, information indicating a destination on a network, such as an IP address).

[0171] (5) The process of acquiring information used to determine device label information may be various other processes instead of the process of referring to information included in the registration request at S110 (FIG. 3), the process of referring to information included in the request at S916 (FIG. 8), and the processes of FIGS. 12(A)-12(C). For example, the processor 40p of the selection server 40 may request information related to the communication device from the communication device.

[0172] (6) The process for determining the target monitoring frequency tGL associated with the target device frequency dGL in the device label information DI may be various other processes instead of the processes described with reference to FIGS. 5 and 11. For example, the correspondence between the communication device model and the target monitoring frequency tGL may be determined in advance. The processor 50p of the control server 50 may adopt the target monitoring frequency tGL associated with the communication device model.

[0173] (7) The connection information used in S665 and S670 of FIG. 6 is not limited to the number of established constant connections with the connection server 10, and may indicate various connection states of the connection server 10. For example, the connection information may indicate the load of the connection server 10. In S670, the processor 30p may select one node cluster 12 (i.e., one connection server 10) so as to minimize the load imbalance among the N candidate clusters. The load of the connection server 10 may be evaluated using, for example, one or both of the overall processor utilization rate and the overall memory utilization rate. The overall processor utilization rate may be various summary statistics (average, median, maximum, etc.) of multiple processor utilization rates of the multiple nodes 13. The overall memory utilization rate may be various summary statistics (average, median, maximum, etc.) of multiple memory utilization rates of the multiple nodes 13. Note that in S670, one node cluster 12 may be selected from the N candidate clusters by round robin. In this case, S665 may be omitted. 3, the processor 11p of the load balancer 11 may select one node 13 so as to reduce the imbalance in load among the plurality of nodes 13. Alternatively, one node 13 may be selected by round robin.

[0174] (8) The process for establishing a constant connection is not limited to the above processes (e.g., Figures 3, 8-9, 12(A), 12(B), and 12(C)), and may be various other processes. For example, the processor 30p of the cluster management server 30 may notify the control server 50 of the cluster URL in S170 (Figure 3). In response to the notification in S170, the processor 50p of the control server 50 may notify the communication device 90A of the cluster URL. In this case, S180-S210 may be omitted.

[0175] (9) The configuration of the processing server 5 may be various other configurations instead of the configuration of FIG. 1 . For example, the total number of nodes 13 included in one connection server 10 may be various numbers equal to or greater than one. When the total number of nodes 13 is one, the load balancer 11 may be omitted from the connection server 10. The node 13 may be configured with a dedicated hardware circuit such as an application specific integrated circuit (ASIC) instead of a computer. Other devices in the server system 100 (e.g., devices 11, 20, 30, 40, 50, and 55) may also be configured with dedicated hardware circuits. The functions of two or more devices included in the processing server 5 may be performed by a single device. For example, the cluster management server 30 may have the function of the management load balancer 20, and the management load balancer 20 may be omitted. The control server 50 may have the function of the selection server 40, and the selection server 40 may be omitted. The processing server 5 may be configured with a single server. Furthermore, the monitoring server 55 may be omitted.

[0176] In each of the above embodiments, part of the configuration realized by hardware may be replaced by software, and conversely, part or all of the configuration realized by software may be replaced by hardware.

[0177] Furthermore, when some or all of the functions of the present disclosure are realized by a computer program, the program can be provided in a form stored on a computer-readable recording medium (e.g., a non-transitory recording medium). The program can be used in a state stored on the same or a different recording medium (computer-readable recording medium) from when it was provided. The "computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but can also include internal storage devices within a computer, such as various ROMs, and external storage devices connected to a computer, such as a hard disk drive.

[0178] The above-described examples and modifications can be combined as appropriate. The above-described examples and modifications are provided to facilitate understanding of the present disclosure and are not intended to limit the present invention. The present invention may be modified or improved without departing from the spirit thereof, and the present invention includes equivalents thereof. [Explanation of symbols]

[0179] 5...processing server, 10, 10A-10C...connection server, 11, 11A-11C...load balancer, 12, 12A-12C...node cluster, 13, 13A-13C...node, 20...management load balancer, 30...cluster management server, 40...selection server, 50...control server, 55...monitoring server, 60...DNS server 60, 70...service server, 80...management terminal, 90A, 90B...communication device, 90PR...print execution unit, 95...user terminal, 100...server system, 1000...system, NT...network,

Claims

1. A processing server, a status information determination unit for determining device status information representing a status of the communication device; a connection server determination unit that uses a plurality of pieces of server status information representing states of a connection server configured to perform a constant connection, the server status information being associated with a plurality of connection servers respectively, and the device status information to determine a target connection server that is a connection server for a constant connection with the communication device from among the plurality of connection servers; a connection information output unit that outputs connection information for connecting to the target connection server to the communication device; an acquisition unit that acquires update information indicating an update of the state of the communication device without receiving an instruction from the communication device; Equipped with the state information determination unit determines updated device state information using the update information when the update information is acquired after the constant connection between the communication device and the target connection server is established; the connection server determination unit determines, when a specific condition is satisfied, the updated target connection server as a connection server associated with server status information related to the updated device status information; the connection information output unit outputs, when the specific condition is satisfied, updated connection information for connecting to the updated target connection server to the communication device. Processing server.

2. 2. The processing server according to claim 1, The operation of each of the plurality of connection servers is monitored by a monitoring server at a monitoring frequency associated with the connection server; the plurality of connection servers include a plurality of connection servers associated with different monitoring frequencies; the server status information includes monitoring frequency information associated with the monitoring frequency of the connection server, the device status information includes target frequency information associated with a target monitoring frequency, the connection server determination unit uses, as the server status information related to the updated device status information, server status information including monitoring frequency information associated with a monitoring frequency equal to or greater than a target monitoring frequency associated with the target frequency information included in the updated device status information. Processing server.

3. 3. A processing server according to claim 1, The device status information includes one or more types of information among information associated with a service for using the communication device, information associated with a frequency of printing performed using the communication device, information associated with a frequency of use by the communication device of an application programming interface (API) for a service, and information associated with a frequency of use of a service for using the communication device. Processing server.

4. 3. A processing server according to claim 1, the update information includes service update information indicating an update of a service for using the communication device; the status information determination unit determines the updated device status information using the service update information; Processing server.

5. 3. A processing server according to claim 1, The state information determination unit determines initial device state information including a region in which the communication device is used and a model of the communication device in order to determine an initial target connection server for the communication device; the connection server determination unit determines the initial target connection server by using the plurality of server status information and the initial device status information; the connection information output unit outputs initial connection information for connecting to the initial target connection server to the communication device; the acquisition unit acquires, from a service server that provides a service for using the communication device, update information including service update information indicating an update of a service for using the communication device; the status information determiner determines the updated device status information using the update information including the service update information. Processing server.

6. The processing server according to claim 1 or 2, further comprising: a comparison unit that compares the updated device status information with device status information before the update; the specific condition includes that the updated device status information is different from the device status information before the update; The connection server determination unit If the updated device status information is the same as the device status information before the update, the updated target connection server is not determined; determining the updated target connection server if the particular condition is met; Processing server.

7. The processing server according to claim 1 or 2, further comprising: an instruction output unit that outputs, when the specific condition is satisfied, an instruction to acquire, from the processing server, the updated connection information for the connection with the updated target connection server, to the communication device via the target connection server that has established a constant connection with the communication device; the connection information output unit outputs the updated connection information to the communication device in response to a request for the updated connection information from the communication device when the specific condition is satisfied. Processing server.

8. 1. A server system, comprising: A plurality of connection servers configured to provide a constant connection; a processing server that determines a target connection server, which is a connection server for a constant connection with a communication device, from the plurality of connection servers; Equipped with The processing server includes: a status information determination unit for determining device status information representing a status of the communication device; a connection server determination unit that determines a target connection server, which is a connection server for a constant connection with the communication device, from the plurality of connection servers by using a plurality of server status information representing states of the connection servers and the device status information, the plurality of server status information being associated with the plurality of connection servers respectively; a connection information output unit that outputs connection information for connecting to the target connection server to the communication device; an acquisition unit that acquires update information indicating an update of the state of the communication device without receiving an instruction from the communication device; Equipped with the state information determination unit determines updated device state information using the update information when the update information is acquired after the constant connection between the communication device and the target connection server is established; the connection server determination unit determines, when a specific condition is satisfied, the updated target connection server as a connection server associated with server status information related to the updated device status information; the connection information output unit outputs, when the specific condition is satisfied, updated connection information for connecting to the updated target connection server to the communication device. Server system.

9. 1. A method for outputting information to a communication device, comprising: a state information determination step of determining device state information representing a state of the communication device; a connection server determination step of determining, from among the plurality of connection servers, a target connection server that is a connection server for a constant connection with the communication device, using a plurality of server status information representing states of a connection server configured to perform a constant connection, the server status information being associated with a plurality of connection servers, respectively, and the device status information; a connection information output step of outputting connection information for connecting to the target connection server to the communication device; an acquisition step of acquiring update information indicating an update of the state of the communication device without receiving an instruction from the communication device; Equipped with the state information determination step includes a step of determining updated device state information using the update information when the update information is acquired after a constant connection between the communication device and the target connection server is established; The connection server determination step includes a step of determining, when a specific condition is satisfied, an updated target connection server as a connection server associated with server status information related to the updated device status information; the connection information output step includes a step of outputting updated connection information for connecting to the updated target connection server to the communication device when the specific condition is satisfied. method.

Citation Information

Patent Citations

  • Server system

    JP2023076038A