Communication systems, computer programs, and servers
The described communication system optimizes server-terminal device interactions by establishing specific connections for task management, enabling spontaneous task completion notifications and reducing communication load through controlled connection durations.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- BROTHER KOGYO KK
- Filing Date
- 2024-12-25
- Publication Date
- 2026-07-07
Smart Images

Figure 2026112688000001_ABST
Abstract
Description
Technical Field
[0001] This specification relates to communication technology between a terminal device and a server.
Background Art
[0002] In the system disclosed in Patent Document 1, when a situation occurs where information such as an error should be transmitted by a printer, the printer transmits the information to a server system. When the information received from the printer is highly real-time information, the server system pushes and notifies the information to a user's terminal device.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above technology, it cannot be said that sufficient consideration has been given to the connection for push notification, and there is a possibility that the load for communication between the terminal device and the server increases.
[0005] This specification discloses a technology capable of suppressing the load for communication between a server and a terminal device.
Means for Solving the Problems
[0006] The technology disclosed in this specification is made to solve at least part of the above problems and can be realized as the following application examples.
[0007] [Application Example 1] A communication system comprising a terminal device and a server, wherein the terminal device transmits a task screen request to the server by communication according to a first protocol, and in response to the transmission of the task screen request from the terminal device to the server, the server transmits task screen data for displaying information regarding the execution status of a task performed on the device to the terminal device, and in response to the transmission of the task screen data from the server to the terminal device, the task screen is displayed on the display unit of the terminal device using the task screen data, and when the task screen is displayed on the display unit, a specific connection according to a second protocol is made between the terminal device and the server, which is initiated spontaneously by the server. A communication system comprising: establishing a specific connection that enables the transmission of data to a device; the server acquiring status information that indicates the execution status of a task performed on the device, including termination information acquired when the task is completed; the server voluntarily sending a task completion notification based on the termination information to the terminal device via the specific connection when the termination information is acquired by the server; updating the task screen displayed on the display unit based on the termination notification when the termination notification is sent from the server to the terminal device; and disconnecting the specific connection between the terminal device and the server when the termination notification is sent from the server to the terminal device.
[0008] According to the above configuration, when a task screen is displayed on the terminal device in response to a task screen request, a specific connection is established between the server and the terminal device, which allows the server to spontaneously send data. Furthermore, when a task is completed, a task completion notification is sent from the server to the terminal device, and the specific connection is disconnected. As a result, the duration for which the specific connection is maintained can be suppressed, thereby reducing the load on communication between the server and the terminal device.
[0009] Furthermore, the technologies disclosed herein can be implemented in various forms, for example, as servers, terminal devices, communication methods, computer programs for realizing the functions of such methods or devices, and recording media (e.g., non-temporary recording media) on which such computer programs are recorded. [Brief explanation of the drawing]
[0010] [Figure 1] A block diagram showing the configuration of System 1000. [Figure 2] A diagram illustrating the server's database. [Figure 3] The first sequence diagram of the device management process. [Figure 4] The second sequence diagram of the device management process. [Figure 5] The third sequence diagram of the device management process. [Figure 6] The fourth sequence diagram of the device management process. [Figure 7] Fifth sequence diagram of the device management process. [Figure 8] A diagram showing an example of the device management screen W1. [Figure 9] A diagram showing an example of the task management screen W2. [Figure 10] Diagram illustrating the update process for the task management screen W2. [Figure 11] A diagram showing an example of the detailed display screen W3. [Modes for carrying out the invention]
[0011] A. Examples A-1. Configuration of System 1000 Figure 1 is a block diagram showing the configuration of system 1000. System 1000 comprises a terminal device 100, a management server 200, a relay server 300, and printers 400A to 400C. Printers 400A to 400C and terminal device 100 are connected to the local area network NT. The local area network NT is connected to the internet IT. The management server 200 and relay server 300 are connected to the internet IT. Terminal device 100 and printers 400A-400C are connected to the management server 200 and relay server 300 so as to be able to communicate with them via the local area network NT and the internet IT.
[0012] The terminal device 100 is a computer, such as a personal computer, used by the administrator who manages the printer 400A-400C. In a modified example, the terminal device 100 may be a smartphone or a tablet computer. The terminal device 100 includes a CPU 110 as the controller of the terminal device 100, a volatile storage device 120 such as RAM, and a non-volatile storage device 130 such as a hard disk drive or flash memory. The terminal device 100 also includes a display unit 140, an operation unit 150 that receives user input, and a wired or wireless communication interface 180 for connecting to the local area network NT.
[0013] The CPU 110 is a processing unit (processor) that performs data processing. The volatile memory device 120 provides a buffer area for temporarily storing various intermediate data generated when the CPU 110 performs processing. The non-volatile memory device 130 stores the browser program PGt. The CPU 110 functions as a web browser by executing the browser program PGt. The terminal device 100 (CPU 110), which functions as a web browser, cooperates with servers 200 and 300 to perform the device management processing described later.
[0014] The display unit 140 is, for example, a liquid crystal display, and the operation unit 150 is a mouse, a keyboard, or a touch panel. The communication IF 180 is an interface for connecting to a network such as a local area network NT, for example, a wired interface compliant with Ethernet (registered trademark) or a wireless interface compliant with the Wi-Fi standard.
[0015] The management server 200 and the relay server 300 are, for example, computers operated by an operator (for example, an operator who manufactures and sells printers 400A - 400C) that operates a device management service to be described later, for example, a cloud server. For example, an operator who operates a device management service may upload computer programs PGm and PGr to be described later to a virtual cloud server constructed on a physical server of another operator such as Amazon Web Services (AWS (registered trademark)) to realize the management server 200 and the relay server 300.
[0016] The management server 200 includes a CPU 210 as a controller of the management server 200, a volatile storage device 220 such as a DRAM, a non-volatile storage device 230 such as a hard disk or a flash memory, and a communication IF 280. The communication IF 280 is, for example, a wired interface compliant with Ethernet (registered trademark).
[0017] The CPU 210 is an arithmetic unit (processor) that performs data processing. The volatile storage device 220 provides a buffer area for temporarily storing various intermediate data generated when the CPU 210 performs processing. The non-volatile storage device 230 stores a computer program PGm and a database DBm.
[0018] The computer program PGm is provided, for example, by being uploaded by a service provider operating a device management service. The CPU 210 of the management server 200 functions as a web processing unit WM and a task processing unit TM by executing the computer program PGm. The web processing unit WM mainly performs processing related to communication with the terminal device 100 (web browser) in the device management processing described later. The task processing unit TM mainly performs processing related to the execution of predetermined tasks performed by the printers 400A-400C in the device management processing described later.
[0019] Figure 2 is a diagram illustrating the server's database. Figure 2(A) shows an overview of the database DBm of the management server 200. The database DBm stores user information, device information, and task information.
[0020] User information refers to the information of the administrator user of the managed printer (e.g., printer 400A-400C). User information includes, for example, the user ID, authentication information associated with the user ID (e.g., email address and password), and various management information. Management information includes, for example, the user's address, age, and gender.
[0021] Device information refers to information about the managed printer and is managed in association with, for example, the user ID of the printer's administrator. Device information includes, for example, the device ID and various management information. Management information includes, for example, the printer's model name, serial number, status (described later), and firmware version information (described later).
[0022] Task information is information about tasks performed on the managed printer, and is managed in association with, for example, the device ID. In this embodiment, tasks include firmware updates and file transfers, as will be described later. Task information includes, for example, the task ID and information indicating the type and status of the task (described later).
[0023] For example, when a user uses the device management service for the first time, they access the management server 200 using their own terminal device (e.g., terminal device 100) and submit an application for use. A user ID is generated by the management server 200 and assigned to the user at the time of the application. Some user information and device information are recorded in the database DBm based on the user's input at the time of the application. In addition, as will be described later, the management server 200 can communicate with the managed printers (e.g., printers 400A-400C) via the relay server 300. Some device information is collected from the managed printers via the relay server 300 and recorded in the database DBm.
[0024] The relay server 300 is equipped with the same CPU 310, volatile storage device 320, non-volatile storage device 330, and communication interface 380 as the management server 200. The non-volatile storage device 330 stores the computer program PGr and the database DBr, which will be described later.
[0025] The computer program PGr is provided, for example, by being uploaded by a service provider operating a device management service. The CPU 310 of the relay server 300 executes the computer program PGr, primarily performing the process of relaying communication between the management server 200 and the printers 400A-400C.
[0026] For example, in this embodiment, printers 400A and 400C maintain a constant connection with the relay server 300 while their power is on. This constant connection follows protocols such as MQTT (Message Queuing Telemetry Transport) or XMPP (eXtensible Messaging and Presence Protocol). Through the relay server 300, the management server 200 can spontaneously send data (e.g., various information and instructions) to the printers, and the printers can also spontaneously send data to the management server 200.
[0027] Figure 2(B) shows an overview of the database DBr of the relay server 300. The database DBr stores, for example, connected device information. The connected device information is information about printers that currently have a permanent connection with the relay server 300. The connected device information includes, for example, the IP address and serial number of the printer that has a permanent connection with the relay server 300.
[0028] The printer 400A includes a control unit 410 and a print execution unit 450. The control unit 410 is a computer that controls the print execution unit 450 and includes, for example, a CPU (not shown) and memory (volatile memory device or non-volatile memory device). The print execution unit 450 is a device that prints an image on a sheet such as paper (an example of a printing medium) using printing material (e.g., toner or ink) in a predetermined manner (e.g., laser method or inkjet method).
[0029] The control unit 410 of the printer 400A has a computer program (also called firmware, not shown) installed that implements various processes for controlling the printer 400A.
[0030] The printer 400A is equipped with a communication interface (e.g., an interface compliant with Ethernet® or Wi-Fi standards) not shown in the diagram, and is connected to the local area network NT via this communication interface as described above.
[0031] Printers 400B and 400C have the same configuration as printer 400A. In the following description, when it is not necessary to distinguish between printers 400A-400C, the suffix will be omitted and they will be referred to simply as printer 400.
[0032] A-2. Operation of System 1000 In system 1000, the terminal device 100, the management server 200, the relay server 300, and the printer 400A-400C work together to perform device management processing. This provides the management user of the printer 400A-400C with a device management service.
[0033] Figures 3-7 are sequence diagrams of the device management process. For example, a user uses the device management service when they want to perform a task related to the printer 400 (e.g., firmware update) or when they want to check information about the printer 400 (e.g., status). Specifically, the user inputs a login instruction to the device management service into the terminal device 100. For example, the user operates the terminal device 100 to launch a web browser and inputs an instruction to access a predetermined URL (Uniform Resource Locator) into the web browser. The predetermined URL is the URL of the device management screen provided by the management server 200. This starts the device management process shown in Figures 3-7.
[0034] In S2 of Figure 3, the CPU 110 (web browser) of the terminal device 100 sends a device management screen request to the management server 200. The communication between the terminal device 100 and the management server 200, shown by the solid line in the figure, is performed using HTTP (Hypertext Transfer Protocol). Data sent from the terminal device 100 to the management server 200 is sent as an HTTP request, and data sent from the management server 200 to the terminal device 100 is sent as an HTTP response to the HTTP request. For example, the device management screen request is an HTTP request sent to the predetermined URL mentioned above. In HTTP communication, the management server 200 cannot spontaneously send data to the terminal device 100 at any time. That is, in HTTP communication, the management server 200 can only send data to the terminal device 100 as a response to an HTTP request sent from the terminal device 100 (HTTP response). In this specification, HTTP communication includes both normal HTTP communication and HTTPS (Hypertext Transfer Protocol Secure) communication.
[0035] In S4, authentication processing is performed between the terminal device 100 (CPU 110) and the management server 200 (CPU 210). For example, when the web processing unit WM of the management server 200 receives a device management screen request, it sends data from an authentication information input screen (not shown) to the terminal device 100. When the terminal device 100 receives the data from the input screen, it displays the input screen on the display unit 140. The user enters authentication information (e.g., email address and password) into the input screen. The terminal device 100 sends the entered authentication information to the management server 200. The web processing unit WM of the management server 200 performs user authentication based on the received authentication information. If a positive authentication result is obtained, the web processing unit WM sends, for example, an access token to the terminal device 100. In subsequent communications, when the terminal device 100 sends data (e.g., an HTTP request) to the management server 200, it includes the access token in the data. The management server 200 verifies that the terminal device 100 is an authenticated device by checking the access token each time communication occurs (not shown).
[0036] If a positive authentication result is not obtained during the S4 authentication process, the process is interrupted (not shown in the diagram). The following explanation assumes that a positive authentication result was obtained during the S4 authentication process.
[0037] In S6, the web processing unit WM of the management server 200 sends the data from the device management screen W1 to the terminal device 100. Specifically, the web processing unit WM retrieves information about devices (for example, printers 400A-400C) associated with the user ID of the logged-in management user from the database DBm (Figure 2(A)). The web processing unit WM generates data for the device management screen W1 that includes this information and sends this data to the terminal device 100.
[0038] When terminal device 100 receives data from the device management screen W1, in S8 it uses the data to display the device management screen W1 on the display unit 140. Figure 8 shows an example of the device management screen W1. The device management screen W1 includes screen switching buttons SB1 and SB2, a device information display area DA, and task execution buttons TB1 and TB2.
[0039] The screen switching buttons SB1 and SB2 are buttons that switch the screen displayed on the web browser of the display unit 140 between the device management screen W1 and the task management screen W2 (described later). In Figure 8, button SB1, which corresponds to the device management screen W1, is pressed and enabled, so the device management screen W1 is displayed. The device information display area DA displays a table showing information on the registered printers 400A-400C of the logged-in administrator user. This table contains one row of printer information LI for each registered printer 400. The printer information LI includes the status of the printer 400, the serial number of the printer 400, and the firmware version information of the printer 400.
[0040] A checkbox CB is located to the left of the printer information LI for each printer 400. The checkbox CB is used to select the printer 400 that will be the target of the task described later.
[0041] The status of printer 400 indicates whether printer 400 is online or offline. Printer 400 being online means that printer 400 is connected to the Internet IT and can communicate with management server 200. Printer 400 being offline means that printer 400 is in a different state than online, i.e., it is not connected to the Internet IT and therefore cannot communicate with management server 200.
[0042] In this embodiment, as described above, the management server 200 and the printer 400 communicate via the relay server 300. For this reason, when the printer 400 is online, it can be said that a permanent connection is established between the printer 400 and the relay server 300. Conversely, when the printer 400 is offline, it can be said that a permanent connection is not established between the printer 400 and the relay server 300.
[0043] The firmware version information for Printer 400 indicates the version of the firmware currently installed on the Printer 400.
[0044] Task execution buttons TB1 and TB2 are buttons for inputting instructions to have the printer 400 execute a predetermined task. Button TB1 is for inputting an instruction to execute a task to update the firmware of the printer 400. Button TB2 is for inputting an instruction to execute a task to send a file to the printer 400 and have the printer 400 perform processing related to that file. If the file is a configuration file for the printer 400, the printer 400 will update its settings by saving the file. If the file is a print data file, the printer 400 will execute printing according to the print data.
[0045] The user selects one or more printers 400 on which the task should be executed by checking the corresponding checkbox CB for each printer 400. The user then enters the task execution command by clicking either the task execution button TB1 or TB2. When either task execution button TB1 or TB2 is clicked, additional screens may appear, such as a confirmation screen for the execution command or a screen for entering task-related settings (e.g., instructions for selecting files to send) (not shown in the diagram). The following describes the processing that occurs when a task execution command is entered. Note that a task execution command can be entered with multiple printers 400 selected, and can therefore target multiple printers 400.
[0046] When a task execution instruction is input, in S10 of Figure 3, the terminal device 100 sends a task execution request to the management server 200. The task execution request includes, for example, task configuration information. The task configuration information includes various information necessary for task execution, such as information indicating the printer 400 on which the task should be executed.
[0047] When the web processing unit WM of the management server 200 receives a task execution request, in S11 it calls the task processing unit TM and passes the task execution request to it. When the task processing unit TM of the management server 200 receives the task execution request, in S12 it sends a task execution command to the relay server 300. The task execution command includes, for example, information indicating one or more destination printers 400 and information indicating the type of task. Communication between the management server 200 and the relay server 300 is performed using communication that follows a predetermined protocol (HTTP in this embodiment).
[0048] When the web processing unit (WM) sends a task execution command, it updates the task information stored in the database DBm in S13. For example, it generates status information to be managed for each task and stores it in the database DBm. The status is set to a value that indicates the initial state (such as task start).
[0049] When the relay server 300 (CPU 310) receives a task execution command, it sends the command to the destination printer 400 in S14. If there are multiple destination printers 400, the task execution command is sent to each of the multiple printers 400 (for example, printers 400A-400C). Communication between the relay server 300 and the printers 400 is performed using the always-on connection described above.
[0050] When the printer 400 (CPU 410) receives a task execution command, it executes the task in accordance with the command in S20. For example, if the task is a firmware update, the printer 400 sequentially performs a series of processes, including checking its own firmware version, checking for the latest firmware version, downloading an update file to update to the latest firmware, and updating the firmware using the update file.
[0051] Next, we will explain the process of switching the screen displayed on the display unit 140 (web browser) of the terminal device 100 from the device management screen W1 to the task management screen W2. It should be assumed that at least one task is running at this point.
[0052] The user can input a command to display the task management screen W2 to the terminal device 100 by clicking the screen switching button SB2 on the device management screen W1. When the command to display the task management screen W2 is input to the terminal device 100, the terminal device 100 sends a task management screen request to the management server 200 at S32 in Figure 4.
[0053] When the web processing unit WM of the management server 200 receives a task management screen request, it sends the task management screen W2 data to the terminal device 100 in S34. For example, when the web processing unit WM receives a task management screen request, it retrieves task information for tasks currently running on printers 400A-400C associated with the user ID of the logged-in management user from the database DBm (Figure 2(A)). The web processing unit WM generates task management screen W2 data containing this information and sends this data to the terminal device 100.
[0054] When terminal device 100 receives data from task management screen W2, in S38 it uses the data to display task management screen W2 on display unit 140. Figure 9 shows an example of task management screen W2. Task management screen W2 includes screen switching buttons SB1 and SB2, task information display areas DA1 and DA2, and a detail display button TB3.
[0055] In Figure 9, the button SB2 corresponding to the task management screen W2 is pressed and enabled, so the task management screen W2 is displayed. The first task information display area DA1 displays a table showing information about tasks currently running on the registered printer 400 of the logged-in administrator user. This table contains one line of task information TIn for each task execution instruction given by the user. The running task information TIn includes information indicating the task type, task status, task start date and time, and the target of the task.
[0056] In this embodiment, the task type is either the firmware update or file transfer described above. The status is a general indication of the task's execution state, for example, sending a command or executing a command. Since the task information TIn contains information about the task in progress, the status included in the task information TIn does not include a status indicating that execution has finished. The target of the task indicates the number of devices targeted by the task.
[0057] The second task information display area DA2 displays a table showing the log of completed tasks, specifically, information on tasks completed on the registered printer 400 of the logged-in administrative user. This table contains one line of task information TIe for each task execution instruction given by the user. The completed task information TIe includes information such as the task type, task status, task start date and time, task end date and time, and the target of the task.
[0058] In this embodiment, the task type is either the firmware update or file transfer described above. The status is the state of the task after it has finished executing, and can be either "Completed," meaning it finished successfully, or "Error," meaning it finished incompletely due to an error. Thus, in this specification, task completion includes both successful completion and interruption due to an error. The target of the task indicates the number of devices targeted by the task.
[0059] To the left of each task information entry (TIn, TIe), there is a checkbox (CB). This checkbox (CB) is used to select the task to be included in the detailed task display described later.
[0060] When the task management screen W2 is displayed in S38, the terminal device 100 sends a bidirectional connection request to the management server 200 in S40. For example, the data on the task management screen W2 includes a computer program (e.g., JavaScript code) that describes the processes to be executed after the task management screen W2 is displayed. The CPU 110 (web browser) of the terminal device 100 sends a bidirectional connection request to the management server 200 according to the program. The bidirectional connection request asks the management server 200 to establish a bidirectional connection. A bidirectional connection is a connection that allows the terminal device 100 to voluntarily send data to the management server 200, and also allows the management server 200 to voluntarily send data to the terminal device 100. In this embodiment, the bidirectional connection is a connection that follows a protocol called WebSocket. Therefore, in this embodiment, the bidirectional connection request is a WebSocket connection request.
[0061] When the management server 200 receives a bidirectional connection request, the web processing unit WM of the management server 200 executes the connection process in S42. In the connection process, for example, the web processing unit WM generates connection information such as a connection ID and stores it in the database DBm, associating it with the user ID of the user of the terminal device 100 (i.e., the management user of printer 400A-400C). When the connection process is completed, the web processing unit WM sends a connection completion notification to the terminal device 100 in S44.
[0062] The series of operations S40-S44 establish a bidirectional connection between the management server 200 and the terminal device 100. In this embodiment, the operations S40-S44 are called WebSocket opening handshakes, and these operations establish a WebSocket connection as a bidirectional connection. From this point onward, the communications between the terminal device 100 and the management server 200 shown by dashed lines are performed using the WebSocket connection.
[0063] Here, the printer 400 (CPU 410) executing the task, whenever there is a change in the task's execution state, voluntarily sends task status information indicating the change in state to the relay server 300 using the established permanent connection between the printer and the relay server 300. A change in the task's execution state includes, for example, if the task is a firmware update, the completion of the download of the firmware update file, the completion of the firmware installation using the update file, or the occurrence of an error. In other words, the task status information includes information that is sent when the task's execution state changes from a first state to a second state that is different from the state in which the task has ended. Specifically, for example, the task status information includes information indicating that the download of the firmware update file has been completed and the state has changed to one in which the firmware installation using the update file is to be performed.
[0064] After a bidirectional connection is established between the management server 200 and the terminal device 100, a change occurs in the task execution status of the printer 400, and in S46, the printer 400 sends task status information indicating this change to the relay server 300.
[0065] When the relay server 300 (CPU 310) receives the task status information in S46, it sends the task status information to the management server 200 in S48. When the task processing unit TM of the management server 200 receives the task status information, it passes the task status information to the web processing unit WM in S50. In S51, the task processing unit TM updates the task information in the database DBm based on the task status information. For example, it updates the information indicating the status of the task in the printer 400 according to the task status information.
[0066] When the web processing unit WM of the management server 200 receives task status information, in S52 it voluntarily sends a task status notification based on the task status information to the terminal device 100 using a WebSocket connection. The task status notification is a notification that the execution status of a task has changed at the printer 400. The task status notification includes, for example, the task ID and information indicating the content of the status change. When the terminal device 100 receives the task status notification, in S54 it updates the task management screen W2 displayed on the display unit 140 based on the task status notification. Specifically, the terminal device 100 updates the status of the task information TIn in the first task information display area DA1 according to the task status notification.
[0067] In this way, the same process is performed each time there is a change in the execution status of a task in the printer 400. For example, suppose that there is another change in the execution status of a task in the printer 400, and in S56 the printer 400 sends task status information indicating this change to the relay server 300.
[0068] In this case, the relay server 300 (CPU 310) transmits the task status information to the management server 200 in S58. When the task processing unit TM of the management server 200 receives the task status information, it passes the task status information to the web processing unit WM in S60. In S61, the task processing unit TM updates the task information in the database DBm based on the task status information. When the web processing unit WM of the management server 200 receives the task status information, it generates a task status notification based on the task status information in S62 and voluntarily transmits it to the terminal device 100 using a WebSocket connection. When the terminal device 100 receives the task status notification, it updates the task management screen W2 displayed on the display unit 140 in S64 based on the task status notification.
[0069] Note that in Figure 4 and Figure 5 (described later), task status information is transmitted from a single printer 400. In reality, as described above, task execution instructions may be issued to multiple printers 400 (for example, three printers 400A-400C). For this reason, tasks may be executed on each of the multiple printers 400 (for example, three printers 400A-400C). In this case, task status information is transmitted to the relay server 300 from each of the multiple printers 400, for example, three printers 400A-400C. Therefore, in this case, the management server 200 sends separate task status notifications to the terminal device 100 for each task on the multiple printers 400. Also, multiple tasks may be executed in parallel on a single printer 400. In this case, task status information for each of the multiple tasks is transmitted from the single printer 400 to the relay server 300. Therefore, in this case, the management server 200 sends separate task status notifications to the terminal device 100 for each of the multiple tasks on the single printer 400.
[0070] Next, we will explain what happens when a task displayed in the first task information display area DA1 of the task management screen W2 is completed. When a task running on the printer 400 is completed, the printer 400 sends task status information (also called completion information) to the relay server 300, as shown in S66 of Figure 5, indicating that the task has been completed. Task completion includes both normal completion (completion) and abnormal completion due to errors, as described above. This task status information is sent to the management server 200 via the relay server 300, similar to the task status information explained in Figure 4.
[0071] In other words, in S68 of Figure 5, the relay server 300 transmits the task status information to the management server 200. When the task processing unit TM of the management server 200 receives the task status information, in S70 it passes the task status information to the web processing unit WM. In S71, the task processing unit TM updates the task information in the database DBm based on the task status information. For example, the task information stored in the database DBm is updated to indicate that the task corresponding to the task status information has been completed.
[0072] When the web processing unit WM of the management server 200 receives task status information, in S72 it voluntarily sends a task status notification (i.e., a completion notification indicating the end of a task) based on the task status information to the terminal device 100 using a WebSocket connection. When the terminal device 100 receives the task status notification, in S74 it updates the task management screen W2 displayed on the display unit 140 based on the task status notification.
[0073] Figure 10 is an explanatory diagram of the update to the task management screen W2. Specifically, as shown in Figure 10, in the task management screen W2, the display of task information TIn for completed tasks is removed from the first task information display area DA1.
[0074] In S75, the terminal device 100 determines whether all tasks displayed in the first task information display area DA1 have finished. As described above, tasks may be executed on each of the multiple printers 400, or multiple tasks may be executed on a single printer 400. For this reason, each time each of the multiple tasks finishes, task status information (completion information) indicating the completion of the task is sent from one or more printers 400 to the relay server 300. Consequently, each time each of the multiple tasks finishes, a completion notification is spontaneously sent from the management server 200 to the terminal device 100. As a result, when the terminal device 100 receives completion notifications for all tasks displayed in the first task information display area DA1, all task information TIn displayed in the first task information display area DA1 is deleted.
[0075] For this reason, for example, if all task information TIn displayed in the first task information display area DA1 is deleted, it is determined that all tasks displayed in the first task information display area DA1 have finished. If task information TIn remains displayed in the first task information display area DA1, it is not determined that all tasks displayed in the first task information display area DA1 have finished. In the example in Figure 5, it is assumed that at S75, it is determined that all tasks displayed in the first task information display area DA1 have finished.
[0076] If, in S75, it is determined that all tasks displayed in the first task information display area DA1 have finished, the processing from S76 onwards will not be executed. If, in S75, it is determined that all tasks displayed in the first task information display area DA1 have finished, then in S76, a bidirectional connection disconnection request is sent to the management server 200. For example, the data in the task management screen W2 includes a computer program (for example, JavaScript code) that describes the processing to be executed when the task management screen W2 is updated. The CPU 110 (web browser) of the terminal device 100 performs the determination in S75 and sends the bidirectional connection disconnection request according to the program.
[0077] A bidirectional connection disconnection request asks the management server 200 to disconnect the bidirectional connection that has been established between the terminal device 100 and the management server 200. As described above, in this embodiment the bidirectional connection is a WebSocket connection, so in this embodiment the bidirectional connection disconnection request is a WebSocket disconnection request.
[0078] When the management server 200 receives a connection disconnection request from both sides, the web processing unit WM of the management server 200 executes the disconnection process in S78. In the disconnection process, for example, the web processing unit WM deletes connection information such as the connection ID from the database DBm. Once the disconnection process is complete, the web processing unit WM sends a disconnection completion notification to the terminal device 100 in S80.
[0079] The series of operations S76-S80 disconnects the bidirectional connection between the management server 200 and the terminal device 100. In this embodiment, the operations S76-S80 are called WebSocket closing handshakes, and these operations disconnect the WebSocket connection.
[0080] In S82, after the bidirectional connection (WebSocket connection) has been disconnected, the terminal device 100 sends a task log request to the management server 200. The task log request is sent using HTTP-compliant communication; that is, the task log request is sent as an HTTP request.
[0081] When the management server 200 receives a task log request, the web processing unit (WM) of the management server 200 sends the task log data to the terminal device 100 in S84. Specifically, the web processing unit (WM) reads a list of information on tasks completed on the printer 400 associated with the logged-in user ID from the database DBm to generate task log data, and sends this data to the terminal device 100. The transmission of the task log data is performed using communication that conforms to HTTP. That is, the task log data is sent as an HTTP response.
[0082] When terminal device 100 receives task log data, terminal device 100 updates the task management screen W2 displayed on display unit 140 based on the data in S86. As shown in Figure 10, task information TIe is updated in the second task information display area DA2 of task management screen W2. In the example in Figure 10, the task information that was displayed in the first task information display area DA1 in Figure 9 is displayed in the second task information display area DA2 as new completed task information TIe2. Thus, task information TIe2 related to the task corresponding to the completion notification acquired in S72 (i.e., the completed task) is sent from management server 200 to terminal device 100 in S84 as part of the task log, and task information TIe2 is displayed in the second task information display area DA2 in S86.
[0083] Next, we will explain the case where a user inputs a command to end the display of the task management screen W2 before the task displayed in the first task information display area DA1 of the task management screen W2 has finished.
[0084] In this embodiment, the display termination instruction includes a display instruction for the device management screen W1, which is entered when the screen switching button SB1 (Figure 9) is clicked, and a display instruction for the detailed display screen W3 (described later), which is entered when the detailed display button BT3 (Figure 9) is clicked. The display instruction for the device management screen W1 instructs the system to terminate the display of the task management screen W2 and display the device management screen W1 (Figure 8). The display instruction for the detailed display screen W3 instructs the system to terminate the display of the task management screen W2 and display the detailed display screen W3, which will be described later.
[0085] If a command to display the device management screen W1 is entered while the task management screen W2 is being displayed, the process shown in the sequence in Figure 6 will be executed instead of the process shown in the sequence in Figure 5.
[0086] When a command to display the device management screen W1 is received, the terminal device 100 sends a bidirectional connection disconnection request to the management server 200 at S88 in Figure 6, similar to S76 in Figure 5. For example, the data on the task management screen W2 includes a computer program (e.g., JavaScript code) that describes the processing to be executed when switching to the device management screen W1. The CPU 110 (web browser) of the terminal device 100 executes the transmission of the bidirectional connection disconnection request according to the program.
[0087] When the management server 200 receives a bilateral connection disconnection request, the web processing unit WM of the management server 200 performs a disconnection process in S90, similar to S78 in Figure 5. Once the disconnection process is complete, the web processing unit WM sends a disconnection completion notification to the terminal device 100 in S92, similar to S80 in Figure 5.
[0088] Steps S88-S92 in Figure 6 are the same as steps S76-S80 in Figure 6, and these steps disconnect the bidirectional connection between the management server 200 and the terminal device 100.
[0089] In S94, after the bidirectional connection (WebSocket connection) has been disconnected, the terminal device 100 sends a device management screen request to the management server 200. The device management screen request is a request for data on the device management screen W1. The transmission of the device management screen request is performed using communication that conforms to HTTP. That is, the device management screen request is sent as an HTTP request.
[0090] When the management server 200 receives a device management screen request, the web processing unit (WM) of the management server 200 generates data for the device management screen W1 in S96 and sends this data to the terminal device 100. The transmission of the data for the device management screen W1 is performed using communication that conforms to HTTP. That is, the data for the device management screen W1 is sent as an HTTP response.
[0091] When terminal device 100 receives data from device management screen W1, terminal device 100, in S98, displays device management screen W1 (Figure 8) on display unit 140 in place of task management screen W2, which is currently displayed, based on the data. This terminates the display of task management screen W2.
[0092] If a command to display the detailed view screen W3 is entered while the task management screen W2 is being displayed, the process shown in the sequence in Figure 7 will be executed instead of the process shown in the sequence in Figure 5. The command to display the detailed view screen W3 is entered, for example, by selecting the task to be displayed in detail using the checkbox CB on the task management screen W2, and then clicking the detailed view button TB3. Here, we will explain assuming that a running task displayed in the first task information display area DA1 has been selected, and then the command to display the detailed view screen W3 has been entered.
[0093] When a display instruction for the detailed view screen W3 is received, the terminal device 100 sends a bidirectional connection disconnection request to the management server 200 at S100 in Figure 7, similar to S76 in Figure 5. For example, the data on the task management screen W2 includes a computer program (e.g., JavaScript code) that describes the processing to be executed when switching to the detailed view screen W3. The CPU 110 (web browser) of the terminal device 100 executes the transmission of the bidirectional connection disconnection request according to this program.
[0094] When the management server 200 receives a bilateral connection disconnection request, the web processing unit WM of the management server 200 performs a disconnection process in S102, similar to S78 in Figure 5. Once the disconnection process is complete, the web processing unit WM sends a disconnection completion notification to the terminal device 100 in S104, similar to S80 in Figure 5.
[0095] Steps S100-S104 in Figure 7 are the same as steps S76-S80 in Figure 6, and these steps disconnect the bidirectional connection between the management server 200 and the terminal device 100.
[0096] In S106, after the bidirectional connection (WebSocket connection) has been disconnected, the terminal device 100 sends a detailed display screen request to the management server 200. The detailed display screen request is a request for the data of the detailed display screen W3. The transmission of the detailed display screen request is performed using communication that conforms to HTTP. That is, the detailed display screen request is sent as an HTTP request.
[0097] When the management server 200 receives a request for a detailed display screen, the web processing unit (WM) of the management server 200 generates data for the detailed display screen W3 in S108 and sends this data to the terminal device 100. The transmission of the data for the detailed display screen W3 is performed using communication that conforms to HTTP. That is, the data for the detailed display screen W3 is sent as an HTTP response.
[0098] When terminal device 100 receives data from the detailed display screen W3, terminal device 100, in S110, displays the detailed display screen W3 on the display unit 140 in place of the task management screen W2 currently displayed, based on the data. This terminates the display of the task management screen W2.
[0099] Figure 11 shows an example of the detailed display screen W3. The detailed display screen W3 includes a task details display area DAd and a return button TB4.
[0100] The task details display area DAd shows a table containing detailed information about the selected task. This table includes, for example, one row of detailed information TId for each printer 400 that the task will run on. If there are three target printers 400 for the task selected on the task management screen W2, then, as shown in the example in Figure 11, three rows of detailed information TId will be displayed in the task details display area DAd.
[0101] The detailed information TId includes the task status, the model name of the printer 400 executing the task, the node name, and the IP address. The node name is identification information used by the user's terminal device (e.g., terminal device 100) to identify the printer 400 during communication between the terminal device and the printer 400. While the task management screen W2 displays only one status per task execution instruction, the detailed display screen W3 displays the task status for each printer. Therefore, the user can understand the execution status of each printer's task by referring to the detailed display screen W3.
[0102] When the detailed display screen W3 is displayed in S110, the terminal device 100 sends a bidirectional connection request to the management server 200 in S112, similar to S40 in Figure 4. For example, the data on the detailed display screen W3 includes a computer program (e.g., JavaScript code) that describes the processing to be executed after the detailed display screen W3 is displayed, similar to the data on the task management screen W2. The CPU 110 (web browser) of the terminal device 100 sends a bidirectional connection request to the management server 200 according to this program.
[0103] When the management server 200 receives a connection request from both sides, the web processing unit WM of the management server 200 executes the connection process in S114, similar to S42 in Figure 4. Once the connection process is complete, the web processing unit WM sends a connection completion notification to the terminal device 100 in S116, similar to S44 in Figure 5.
[0104] The series of processes from S112 to S116 establish a bidirectional connection (a WebSocket connection in this embodiment) between the management server 200 and the terminal device 100. Thereafter, similar to when the task management screen W2 is displayed, the transmission of task status notifications from the management server 200 to the terminal device 100 while the detailed display screen W3 is displayed is performed using the WebSocket connection.
[0105] Figure 7 illustrates a case where, after a bidirectional connection (WebSocket connection) is established between the management server 200 and the terminal device 100, a change occurs in the task execution status of the printer 400, and in S118, the printer 400 sends task status information indicating this change to the relay server 300.
[0106] When the relay server 300 receives the task status information in S118, it transmits the task status information to the management server 200 in S120. When the task processing unit TM of the management server 200 receives the task status information, it passes the task status information to the web processing unit WM in S122. In S124, the task processing unit TM updates the task information in the database DBm based on the task status information.
[0107] When the web processing unit WM of the management server 200 receives task status information, in S126 it voluntarily sends a task status notification based on the task status information to the terminal device 100 using a WebSocket connection. When the terminal device 100 receives the task status notification, in S128 it updates the detailed display screen W3 displayed on the display unit 140 based on the task status notification. Specifically, the terminal device 100 updates the status of the corresponding detailed information TId in the task detailed information display area DAd according to the task status notification.
[0108] Thus, even while the detailed display screen W3 is displayed, the same process is performed whenever there is a change in the execution status of a task on printer 400, just as when the task management screen W2 is displayed as described above.
[0109] Although the sequence diagram is omitted, if all tasks being displayed are completed while the detailed display screen W3 is being displayed, the bidirectional connection (WebSocket connection) will be disconnected, similar to when all tasks being displayed are completed while the task management screen W2 is being displayed (Figure 5).
[0110] For example, when a task running on printer 400 is completed, printer 400 sends task status information indicating the completion of the task to relay server 300, as shown in S66 of Figure 5.
[0111] Then, the process in S68-72 of Figure 5 is executed, and a task status notification (completion notification) is sent to the terminal device 100 using a WebSocket connection. When the terminal device 100 receives the task status notification, it updates the detailed display screen W3 displayed on the display unit 140 based on the task status notification. For example, the terminal device 100 changes the status of the corresponding detailed information TId on the detailed display screen W3 to information indicating that the task has been completed (for example, "Completed" or "Completed due to error").
[0112] Subsequently, the terminal device 100 determines whether all tasks displayed in the task details display area DAd of the detailed display screen W3 have finished. If the task details display area DAd contains detailed information TId of tasks that have not finished, the bidirectional connection is not disconnected.
[0113] When all tasks displayed in the task details display area DAd have finished, the bidirectional connection is disconnected. In this case, the series of processes (WebSocket closing handshake) shown in S76-S80 in Figure 5 are executed, and the bidirectional connection (WebSocket connection) between the terminal device 100 and the management server 200 is disconnected.
[0114] This section also explains the case where a user inputs a command to exit the detailed view screen W3 before all tasks displayed in the task details display area DAd of the detailed view screen W3 have finished. For example, an exit command is input by clicking the return button TB4 on the detailed view screen W3. This command instructs the system to exit the detailed view screen W3 and return to the state where the task management screen W2 is displayed.
[0115] In this case, the terminal device 100 and the management server 200 execute the process shown in S68-72 of Figure 5 to temporarily disconnect the bidirectional connection (WebSocket connection) between the terminal device 100 and the management server 200. After that, the terminal device 100 and the management server 200 execute the process to display the task management screen W2 described above. Specifically, the process shown in S32-S44 of Figure 4 described above is executed again. As a result, the task management screen W2 is displayed on the display unit 140 instead of the detailed display screen W3, and a bidirectional connection (WebSocket connection) is re-established between the terminal device 100 and the management server 200. This makes it possible for the management server 200 to spontaneously send task status notifications to the terminal device 100 using the bidirectional connection.
[0116] According to the embodiment described above, the system 1000 sends a task management screen request from the terminal device 100 to the management server 200 via HTTP-compliant communication (S32 in Figure 4). Upon receiving the task screen request from the terminal device 100 to the server 200, the server 200 sends data for the task management screen W2, which displays information regarding the execution status of tasks performed on the printer 400, to the terminal device 100 (S34 in Figure 4). Upon receiving the data for the task management screen W2 from the server 200 to the terminal device 100, the system 1000 displays the task management screen W2 on the display unit 140 of the terminal device 100 (S38 in Figure 4). When the task management screen W2 is displayed on the display unit 140, a bidirectional connection is established between the terminal device 100 and the system 100 according to the WebSocket protocol (S40-S44 in Figure 4). The management server 200 acquires task status information indicating the execution status of tasks performed on the printer 400 (S48, S58 in Figure 4, S68 in Figure 5). This task status information includes completion information acquired when a task is completed (S68 in Figure 5). When the completion information is acquired by the management server 200, system 1000 voluntarily sends a task completion notification based on the completion information from the management server 200 to the terminal device 100 using a bidirectional connection (S72 in Figure 5). When the completion notification is sent from the management server 200 to the terminal device 100, system 1000 updates the task management screen W2 displayed on the display unit 140 based on the completion notification (S74 in Figure 5). When the completion notification is sent from the management server 200 to the terminal device 100, system 1000 disconnects the bidirectional connection between the terminal device 100 and the management server 200 (S76-S80 in Figure 5).
[0117] As a result, when the task management screen W2 is displayed on the terminal device 100 in response to a device management screen request, a bidirectional connection is established between the terminal device 100 and the management server 200, which allows the server to spontaneously send data. Furthermore, when a task is completed, the server 200 sends a task completion notification to the terminal device 100, and the bidirectional connection is disconnected. As a result, the increase in the period during which the bidirectional connection is maintained can be suppressed, thereby reducing the load on communication between the management server 200 and the terminal device 100. For example, maintaining the bidirectional connection uses the resources of the management server 200, such as for holding connection information, but the burden on such resources can be reduced. This is especially effective when the management server 200 provides device management services to a large number of printers and terminal devices, as the resource burden tends to be large in such cases.
[0118] Furthermore, since the system 1000 also establishes and disconnects a bidirectional connection when displaying the detailed display screen W3 (see Figure 7, etc.), it can suppress an increase in the period during which the bidirectional connection is maintained for displaying the detailed display screen W3, thereby further reducing the load on communication between the management server 200 and the terminal device 100.
[0119] Furthermore, according to this embodiment, the task status information includes status change information received when the task execution state changes from a first state to a second state different from the state in which the task has finished. Whenever the management server 200 acquires status change information (S48, S58 in Figure 4), the system 1000 spontaneously sends a task status notification based on the status change information from the management server 200 to the terminal device 100 using a bidirectional connection (S52, S62 in Figure 4). As a result, changes in the execution state of tasks on the printer 400 can be quickly notified to the terminal device 100 using a bidirectional connection. Therefore, for example, the progress of tasks being executed on the printer 400 can be quickly communicated to the management user.
[0120] Furthermore, according to this embodiment, whenever the management server 200 acquires completion information for each of the multiple tasks running on the printer 400, the system 1000 spontaneously sends a completion notification based on this completion information from the management server 200 to the terminal device 100 using a bidirectional connection. When the system 1000 receives completion notifications for all of the multiple tasks from the server 200 to the terminal device 100, it disconnects the bidirectional connection between the terminal device 100 and the server 200 (S75, S76-S80 in Figure 6). Once all of the multiple tasks running on the printer 400 have finished, the task status will not change any further unless a new task execution instruction is given, thus reducing the need to maintain the bidirectional connection. According to this embodiment, since the bidirectional connection is disconnected when all of the multiple tasks running on the printer 400 have finished, the bidirectional connection can be disconnected at an appropriate time. Therefore, the increase in the period during which the bidirectional connection is maintained can be suppressed even more effectively.
[0121] Furthermore, according to this embodiment, a termination instruction is obtained from the system 1000 user to end the display of the task management screen W2 (Figures 6 and 7). If a bidirectional connection is established between the terminal device 100 and the server 200 at the time the termination instruction is obtained, the bidirectional connection is disconnected (S88-S92 in Figure 6, S100-S104 in Figure 7). When the display of the task management screen W2 ends, there is no longer a need to update the task management screen W2, thus reducing the need to maintain the bidirectional connection. According to this embodiment, the bidirectional connection is disconnected at the time the display of the task management screen W2 ends, so the bidirectional connection can be disconnected at an appropriate time. Therefore, the increase in the period during which the bidirectional connection is maintained can be suppressed even more effectively.
[0122] Furthermore, according to this embodiment, the task management screen W2 includes a first task information display area DA1 that displays information about tasks that have not yet been completed by the printer 400 (Figure 9). The process of updating the task management screen W2 in response to a completion notification being sent from the management server 200 to the terminal device 100 (S74-S86 in Figure 5) includes the process of deleting the task information TIn corresponding to the completion notification from the first task information display area DA1 (Figure 10). As a result, task information TIn that has not yet been completed by the printer 400 can be appropriately displayed on the task management screen W2.
[0123] Furthermore, according to this embodiment, the task management screen W2 includes a second task information display area DA2 that displays information about tasks that have been completed by the printer 400 (Figure 9). The process of updating the task management screen W2 in response to a completion notification being sent from the management server 200 to the terminal device 100 (S74-S86 in Figure 5) includes the process of sending a task log containing task information TIe2 corresponding to the completion notification from the management server 200 to the terminal device 100 (S84 in Figure 5), and the process of displaying the task information TIe2 in the second task information display area DA2 of the task management screen W2 (S86 in Figure 5) (Figure 10). This makes it possible to display task information in an easy-to-understand manner, separated into information about tasks that are currently running and information about completed tasks.
[0124] Furthermore, according to this embodiment, the process of sending a task log containing task information TIe2 corresponding to the completion notification from the management server 200 to the terminal device 100 (S84 in Figure 5) is executed after the bidirectional connection is disconnected (S76-S80 in Figure 5). In other words, the transmission of the task log is performed using HTTP-compliant communication without using a bidirectional connection. As a result, communication of information regarding completed tasks (e.g., task logs) is performed without using a bidirectional connection, thus suppressing communication using bidirectional connections, and consequently, more effectively suppressing the increase in the period during which bidirectional connections are maintained.
[0125] In this embodiment, HTTP is an example of the first protocol, and websocket is an example of the second protocol. The task management screen W2 and the detailed display screen W3 are examples of task screens, printers 400A-400C are examples of devices, and the task status notification is an example of status information. In this embodiment, tasks that have not yet been completed by printer 400 are examples of first-type tasks, and tasks that have been completed by printer 400 are examples of second-type tasks. Also, the task information TIe2 (Figure 10) corresponding to the completion notification in this embodiment is an example of specific information.
[0126] B. Variations (1) In the above embodiment, one bidirectional connection is established for one task management screen W2. Therefore, even if task information TIn for multiple tasks is displayed on one task management screen W2, the number of bidirectional connections remains one. However, the system 1000 may, for example, establish one bidirectional connection for each task. For example, when the system 1000 displays the task management screen W2 on the terminal device 100, it may establish as many bidirectional connections as there are tasks currently running, and each time the status of a task changes, it may send a task status notification from the management server 200 to the terminal device 100 using the bidirectional connection corresponding to the task. In this case, each time a task is completed, the system 1000 disconnects the bidirectional connection corresponding to the completed task.
[0127] Furthermore, system 1000 may establish one bidirectional connection for each printer. For example, when system 1000 displays the task management screen W2 on terminal device 100, it may establish bidirectional connections for each printer currently executing a task, and each time the task status of a printer changes, it may send a task status notification from the management server 200 to terminal device 100 using the bidirectional connection corresponding to the printer. In this case, system 1000 disconnects the bidirectional connection corresponding to the printer whose tasks have been completed each time all tasks for a printer have been completed.
[0128] (2) In the above embodiment, task status information is sent from the printer 400 to the relay server 300 each time the execution status of a task changes in the printer 400 (S46, S56 in Figure 4). However, the printer 400 may send task status information to the relay server 300 only when some important changes occur among the changes in the execution status of tasks that occur in the printer 400.
[0129] Furthermore, whenever the management server 200 obtains task status information from the printer 400 via the relay server 300, it sends a task status notification based on that task status information to the terminal device 100 (S52, S62 in Figure 4). However, the management server 200 may periodically obtain task status information from the printer 400 and, only when it obtains information indicating an important change in execution status from the obtained task status information, send a task status notification based on that information to the terminal device 100.
[0130] (3) In the above embodiment, when a task completion notification is sent from the management server 200 to the terminal device 100 (S72 in Figure 5), the terminal device 100 determines whether all tasks displayed on the task management screen W2 have been completed (S75 in Figure 5), and if all tasks displayed on the task management screen W2 have been completed, the terminal device 100 sends a bidirectional connection disconnection request to the management server 200, thereby disconnecting the bidirectional connection (S76-S80 in Figure 5). Alternatively, when a task completion notification is sent from the management server 200 to the terminal device 100 (S72 in Figure 5), the management server 200 may determine whether all tasks displayed on the task management screen W2 have been completed by the terminal device 100, and if all tasks displayed on the task management screen W2 have been completed, the management server 200 sends a bidirectional connection disconnection request to the terminal device 100, thereby disconnecting the bidirectional connection.
[0131] In this specification, when "the management server 200 disconnects the bidirectional connection," it includes both cases: when the management server 200 disconnects the bidirectional connection in response to a bidirectional connection disconnection request from the terminal device 100, and when the management server 200 itself sends a bidirectional connection disconnection request to the terminal device 100 and disconnects the bidirectional connection. Similarly, when "the management server 200 establishes a bidirectional connection," it includes both cases: when the management server 200 establishes a bidirectional connection in response to a bidirectional connection request from the terminal device 100, and when the management server 200 itself sends a bidirectional connection request to the terminal device 100 and establishes a bidirectional connection.
[0132] (4) In the above embodiment, the screen for displaying information regarding the execution status of tasks includes two types: the task management screen W2 (Figure 9) and the detail display screen W3 (Figure 11). Alternatively, the screen for displaying information regarding the execution status of tasks may consist only of the task management screen W2 or only of the detail display screen W3. For example, if only the detail display screen W3 is used, the detail display screen W3 may be displayed instead of the task management screen W2 when the screen switching button SB2 is clicked on the device management screen W1. Even in this case, when the detail display screen W3 is displayed on the terminal device 100, a bidirectional connection is established between the terminal device 100 and the management server 200, and when all tasks displayed on the detail display screen W3 are completed, the bidirectional connection may be disconnected.
[0133] (5) In the above embodiment, WebSocket is used as the protocol for bidirectional connection. Alternatively, other protocols may be used as the protocol for bidirectional connection. For example, XMPP (Extensible Messaging and Presence Protocol) or MQTT (Message Queuing Telemetry Transport) may be used as the protocol for bidirectional connection.
[0134] (6) In the above embodiment, HTPP is used as the protocol for sending and receiving data on screens displayed on the terminal device 100, such as the task management screen W2 and the detailed display screen W3. Alternatively, other protocols, such as FTP (File Transfer Protocol), may be used.
[0135] (7) In the above embodiment, a printer 400 is used as the device managed by the device management service, but other types of devices may be used. The device may be, for example, a scanner or a digital camera that generates image data by optically reading an object using an image sensor. The device may be, for example, a sewing machine that forms an image such as a pattern on fabric by embroidering on the fabric using thread.
[0136] Furthermore, the devices are not limited to image processing devices such as printers, scanners, cameras, and sewing machines; various devices configured to connect to the Internet of Things (IT) can be used. For example, the devices could be unrelated to images, such as household appliances like refrigerators or microwave ovens, or even music players or temperature sensors.
[0137] Furthermore, the tasks performed on the device are not limited to the firmware updates and file transfers mentioned above, but may be various tasks depending on the device being used. These tasks may include, for example, predetermined image processing, configuration processing, and information gathering processes performed on the device.
[0138] (8) The server configuration of system 1000 is an example and is not limited thereto. For example, in the above embodiment, communication between printer 400A-400C and management server 200 is performed via relay server 300. Alternatively, communication between printer 400A-400C and management server 200 may be performed directly without going through relay server 300. Also, the processing performed by management server 200 may be performed by multiple servers. For example, the processing performed by web processing unit WM and the processing performed by task processing unit TM may be performed by two different servers that are connected to each other in a communicative manner. In addition, the authentication process for authenticating users (S4 in Figure 3) may be performed by an authentication server other than management server 200.
[0139] (9) In the above embodiment, some of the configurations implemented by hardware may be replaced with software, or conversely, some or all of the configurations implemented by software may be replaced with hardware.
[0140] Furthermore, if some or all of the functions of the present invention are implemented by a computer program, the program may be provided in the form of a computer-readable recording medium (for example, a non-temporary recording medium). The program may be used while stored on the same or a different recording medium (computer-readable recording medium) as it was provided. "Computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but may also include internal storage devices within a computer such as various ROMs, and external storage devices connected to a computer such as hard disk drives.
[0141] The present invention has been described above based on examples and modifications. However, the embodiments of the invention described above are for the purpose of facilitating understanding of the present invention and do not limit it. The present invention can be modified and improved without departing from its spirit and claims, and the present invention includes equivalents thereof. [Explanation of Symbols]
[0142] 1000...System, 100...Terminal device, 110...CPU, 120...Volatile memory device, 130...Non-volatile memory device, 140...Display unit, 150...Operation unit, 200...Management server, 210...CPU, 220...Volatile memory device, 230...Non-volatile memory device, 300...Relay server, 310...CPU, 320...Volatile memory device, 330...Non-volatile memory device, 400...Printer, 410...Control unit, 410...CPU, 450...Print execution unit, DBm, DBr...Database, 180...Communication IF, 280...Communication IF, 380...Communication IF, IT...Internet, LI...Printer information, NT...Local area network, PGm, PGr...Computer program, PGt...Browser program, TId...Detailed information, TIe, TIn...Task information, TM...Task processing unit, W1...Device management screen, W2...Task management screen, W3...Detailed display screen, WM...Web processing unit
Claims
1. A communication system comprising terminal devices and a server, A task screen request is sent from the terminal device to the server via communication in accordance with the first protocol. In response to the task screen request being sent from the terminal device to the server, the server sends task screen data for displaying information regarding the execution status of tasks performed on the device to the terminal device. In response to the data of the task screen being transmitted from the server to the terminal device, the task screen is displayed on the display unit of the terminal device using the data of the task screen. When the task screen is displayed on the display unit, a specific connection is established between the terminal device and the server, which follows a second protocol and allows the server to spontaneously transmit data. The server acquires state information that indicates the execution status of the task performed on the device, and includes termination information that is acquired when the task is completed. Upon acquisition of the termination information by the server, the terminal device voluntarily sends a task completion notification based on the termination information from the server using the specific connection. In response to the termination notification being sent from the server to the terminal device, the task screen displayed on the display unit is updated based on the termination notification. A communication system that disconnects the specific connection between the terminal device and the server in response to the termination notification being sent from the server to the terminal device.
2. A communication system according to claim 1, The aforementioned state information includes state change information acquired when the execution state of the task changes from a first state to a second state which is different from the state in which the task has ended. A communication system in which, each time the server acquires the state change information, the server spontaneously sends a notification based on the state change information to the terminal device using the specific connection.
3. A communication system according to claim 1, The status information acquired by the server includes a plurality of status information indicating the execution status of a plurality of tasks currently running on the device, Each time the server obtains the completion information for each of the multiple tasks, the server spontaneously sends a completion notification based on the obtained completion information to the terminal device using the specific connection. A communication system that disconnects the specific connection between the terminal device and the server in response to the server sending completion notifications for all of the multiple tasks to the terminal device.
4. A communication system according to claim 1, The user gives a command to terminate the display of the task screen, A communication system that disconnects the specific connection between the terminal device and the server if such a connection has been established at the time the termination instruction is received.
5. A communication system according to claim 1, The task screen includes a first display area that displays information about a first type task that has not yet been completed by the device. A communication system in which the process of updating the task screen in response to the termination notification being sent from the server to the terminal device includes the process of deleting the task information corresponding to the termination notification from the first display area.
6. A communication system according to claim 5, The task screen further includes a second display area that displays information about a second type of task that has been completed by the device. A communication system in which the process of updating the task screen in response to the termination notification being sent from the server to the terminal device further includes the process of sending specific information of the task corresponding to the termination notification from the server to the terminal device, and the process of displaying the specific information in the second display area.
7. A communication system according to claim 6, A communication system in which the process of transmitting task identification information corresponding to the termination notification from the server to the terminal device is performed after the specific connection is disconnected.
8. A communication system according to any one of claims 1 to 7, The first protocol mentioned above is HTTP (Hypertext Transfer Protocol), The second protocol mentioned above is a WebSocket communication system.
9. A computer program for a server connected to a terminal device, A receiving function that receives a task screen request from the terminal device by communication in accordance with the first protocol, A display control function that, upon receiving the aforementioned task screen request, transmits task screen data for displaying information regarding the execution status of a task performed on the device to the terminal device, thereby causing the task screen to be displayed on the display unit of the terminal device. In response to the task screen being displayed on the display unit, the system establishes a specific connection between the terminal device and the server, which is a specific connection that conforms to a second protocol and is capable of voluntarily transmitting data from the server. A function for acquiring status information that indicates the execution status of the task performed on the device, and which includes termination information acquired when the task is completed, An update function that, upon acquiring the aforementioned termination information, spontaneously sends a task termination notification based on the termination information to the terminal device using the specified connection, thereby updating the task screen displayed on the display unit based on the termination notification; A disconnection function that disconnects the specific connection with the terminal device in response to sending the termination notification, A computer program that enables a computer to realize something.
10. A server connected to a terminal device, A receiving unit that receives a task screen request from the terminal device by communication in accordance with the first protocol, A display control unit, which, upon receiving the aforementioned task screen request, transmits task screen data for displaying information regarding the execution status of a task performed on the device to the terminal device, thereby causing the task screen to be displayed on the display unit of the terminal device, When the task screen is displayed on the display unit, the establishment unit establishes a specific connection between the terminal device and the server, which is a specific connection that conforms to a second protocol and is capable of voluntarily transmitting data from the server. An acquisition unit that acquires status information indicating the execution status of the task performed on the device, including completion information acquired when the task is completed; An update unit that, upon acquiring the aforementioned termination information, spontaneously transmits a task termination notification based on the aforementioned termination information to the terminal device using the aforementioned specific connection, thereby updating the task screen displayed on the display unit based on the termination notification; A disconnection unit that disconnects the specific connection with the terminal device in response to sending the termination notification, A server equipped with the following features.
11. A communication method using terminal equipment and a server, A task screen request is sent from the terminal device to the server via communication in accordance with the first protocol. In response to the task screen request being sent from the terminal device to the server, the server sends task screen data for displaying information regarding the execution status of tasks performed on the device to the terminal device. In response to the data of the task screen being transmitted from the server to the terminal device, the task screen is displayed on the display unit of the terminal device using the data of the task screen. When the task screen is displayed on the display unit, a specific connection is established between the terminal device and the server, which follows a second protocol and allows the server to spontaneously transmit data. The server acquires state information that indicates the execution status of the task performed on the device, and includes termination information that is acquired when the task is completed. Upon acquisition of the termination information by the server, the terminal device voluntarily sends a task completion notification based on the termination information from the server using the specific connection. In response to the termination notification being sent from the server to the terminal device, the task screen displayed on the display unit is updated based on the termination notification. A communication method for disconnecting the specific connection between the terminal device and the server in response to the termination notification being sent from the server to the terminal device.
12. A computer program for a server, A receiving function that receives task screen requests from a terminal device via communication following a first protocol, A display control function that, upon receiving the aforementioned task screen request, transmits task screen data for displaying information regarding the execution status of a task performed on the device to the terminal device, thereby causing the task screen to be displayed on the display unit of the terminal device. When the task screen is displayed on the display unit, the establishment function establishes a specific connection between the terminal device and the server, which is a specific connection that conforms to a second protocol and is capable of voluntarily transmitting data from the server. A function for acquiring status information that indicates the execution status of the task performed on the device, and which includes termination information acquired when the task is completed, An update function that, upon acquiring the aforementioned termination information, spontaneously sends a task termination notification based on the termination information to the terminal device using the specified connection, thereby updating the task screen displayed on the display unit based on the termination notification; A disconnection function that disconnects the specific connection with the terminal device in response to sending the termination notification, A computer program that causes the server's computer to implement the above.