Communication device and computer program for communication device

The communication device addresses notification delays and failures by operating in parallel polling and server push modes, enhancing the reliability and speed of process execution notification receipt.

JP2026042837APending Publication Date: 2026-03-11BROTHER KOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-12-26
Publication Date
2026-03-11

AI Technical Summary

Technical Problem

Existing communication devices experience delays in receiving process execution notifications due to instability in XMPP mode and inefficiencies in polling mode, leading to delayed printing and potential notification failures.

Method used

A communication device operates in parallel modes, using both polling and server push connections to ensure timely and reliable receipt of notifications, employing a notification receiving unit that switches between first and second modes based on environmental conditions.

Benefits of technology

The device quickly and accurately receives process execution notifications, minimizing delays and failures by leveraging dual operation modes, ensuring efficient communication with notification servers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026042837000001_ABST
    Figure 2026042837000001_ABST
Patent Text Reader

Abstract

To provide a technology that enables a communication device to quickly and appropriately receive a process execution notification from a notification server. [Solution] When a terminal device sends a process execution instruction to a notification server, a communication device receives a process execution notification from the notification server and executes a predetermined process. The communication device operates in parallel in a first mode and a second mode, and in the first mode, sends a polling signal to the notification server and receives the process execution notification from the notification server, and in the second mode, establishes a server push connection and receives the process execution notification from the notification server.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This specification discloses a technique related to a communication device that receives a process execution notification from a notification server and executes a predetermined process. [Background technology]

[0002] Patent Document 1 discloses a printer capable of printing according to GCP (short for Google Cloud Print). When the printer has established an XMPP (eXtensible Messaging and Presence Protocol) connection with a print intermediary server (hereinafter referred to as "XMPP mode"), the printer receives a print-related notification from the print intermediary server when a print job is generated by the print intermediary server, without periodically sending a polling signal to the print intermediary server. If communication with the print intermediary server becomes unstable while the printer is operating in XMPP mode, the printer closes the XMPP stream and transitions to a state in which it periodically sends a polling signal to the print intermediary server (hereinafter referred to as "polling mode"). If the print intermediary server has a print job when the printer sends the polling signal, the printer receives a print-related notification from the print intermediary server. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2012-187866 Summary of the Invention [Problem to be solved by the invention]

[0004] In polling mode, the above notification is not sent from the print intermediary server to the printer between the time the print job is generated on the print intermediary server and the time the printer sends a polling signal to the print intermediary server. As a result, it takes time from the time the print job is generated until printing begins. On the other hand, in XMPP mode, there is a possibility that the printer may not be able to properly receive the above notification from the print intermediary server.

[0005] This specification provides a technique that enables a communication device to quickly and appropriately receive a process execution notification from a notification server.

[0006] A communication device disclosed in this specification may include a notification receiving unit that, when a processing execution instruction is transmitted from a terminal device to a notification server, receives a processing execution notification from the notification server, and a processing executing unit that executes a predetermined process when the processing execution notification is received from the notification server. The notification receiving unit may operate in parallel in a first mode and a second mode, and in the first mode, may transmit a polling signal to the notification server, and, when the polling signal is transmitted to the notification server after the processing execution instruction is transmitted from the terminal device to the notification server, receive the processing execution notification from the notification server as a response to the polling signal. In the second mode, the notification receiving unit may establish a server push connection between the communication device and the notification server, and, when the processing execution instruction is transmitted from the terminal device to the notification server while the connection is established, receive the processing execution notification from the notification server using the connection.

[0007] According to the above configuration, the communication device operates in parallel in each of the first mode and the second mode and receives a process execution notification from the notification server. Therefore, even if the communication device cannot receive a process execution notification from the notification server in the second mode, the communication device can properly receive the process execution notification from the notification server in the first mode. Furthermore, compared to a configuration in which the communication device operates only in the first mode, the communication device can quickly receive the process execution notification from the notification server in the second mode. Therefore, the communication device can quickly and properly receive the process execution notification from the notification server.

[0008] A computer program for implementing the above-described communication device, a computer-readable recording medium storing the computer program, and a method executed by the communication device are also novel and useful. Also novel and useful is a system including the communication device and one or more other devices (e.g., a notification server and / or a terminal device). [Brief explanation of the drawings]

[0009] [Figure 1] 1 shows the configuration of a communication system. [Figure 2] 10 shows a sequence diagram of a process for registering information about a printer in a print intermediary server. [Figure 3] 10 shows a flowchart of an action determination process. [Figure 4] The sequence diagram for Case A is shown below. [Figure 5] The sequence diagram for Case B is shown below. [Figure 6] The sequence diagram for Case B1 is shown below. [Figure 7] The sequence diagram for Case B2 is shown below. [Figure 8] 10 shows a flowchart of an operation determination process according to a second embodiment. [Figure 9] The sequence diagram for Case C is shown below. [Figure 10] The sequence diagram for Case D is shown below. [Figure 11] 13 shows a flowchart of an operation determination process according to a third embodiment. [Figure 12] The sequence diagram for Case E is shown below. [Figure 13] 13 shows a sequence diagram of case F of the fourth embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] (First Example) (Configuration of communication system 2; Figure 1) As shown in FIG. 1, the communication system 2 includes a printer 10, a mobile terminal 50, multiple access points (hereinafter referred to as "APs (abbreviation of Access Point)") 60 and 70, and a print intermediary server 100. The printer 10 can selectively belong to a LAN (abbreviation of Local Area Network) 62 in which the AP 60 operates as a master station, or a LAN 72 in which the AP 70 operates as a master station. The print intermediary server 100 is connected to the Internet 6. When the printer 10 belongs to the LAN 62 or the LAN 72, it can communicate with the print intermediary server 100 via the AP 60 or the AP 70. In a modified example, the LAN 62 and the LAN 72 may be wired LANs instead of wireless LANs. When the mobile terminal 50 belongs to the LAN 62 or the LAN 72, it can communicate with the printer 10 and the print intermediary server 100 via the AP 60 or the AP 70. In a modified example, the mobile terminal 50 may communicate with the print intermediary server 100 using cellular communication such as 3G, 4G, or 5G.

[0011] (Printer 10 configuration) The printer 10 is a peripheral device (for example, a peripheral device of a mobile terminal 50) that can execute a printing function. The printer 10 includes a display unit 12, a wireless LAN interface 14, a print execution unit 18, and a control unit 30. Each of the units 12 to 30 is connected to a bus line (reference numerals omitted).

[0012] The display unit 12 is a display for displaying various information. The display unit 12 also functions as a so-called touch panel (i.e., an operation unit operated by a user). The wireless LAN interface 14 is a wireless interface for performing wireless communication in accordance with the Wi-Fi standard. Specifically, the wireless LAN interface 14 establishes a wireless connection with the AP 60 or AP 70. As a result, the printer 10 belongs to the LAN 62 or LAN 72. The print execution unit 18 is a printing mechanism such as an inkjet type or laser type.

[0013] The control unit 30 includes a CPU 32 and a memory 34. The CPU 32 executes various processes in accordance with a program 36 stored in the memory 34. The memory 34 is configured with a volatile memory, a non-volatile memory, etc. In addition to the program 36, the memory 34 also stores proxy settings.

[0014] The proxy settings include flag information indicating either "enabled," which indicates that the proxy server 71 is to be used, or "disabled," which indicates that the proxy server 71 is not to be used. The proxy settings may further include multiple setting values ​​for using the proxy server 71. The multiple setting values ​​include the IP address of the proxy server 71, a port number used for communication with the proxy server 71, a user name, and a password. The flag information and each setting value are stored in the memory 34 in response to being input into the printer 10 by the user.

[0015] (AP60,70 configuration) Each of the APs 60 and 70 has a DHCP (Dynamic Host Configuration Protocol) server function. Therefore, the APs 60 and 70 can assign IP addresses to devices belonging to the LANs 62 and 72, respectively. The LAN 72 formed by the AP 70 further includes a proxy server 71.

[0016] (Configuration of mobile terminal 50) The mobile terminal 50 is a portable terminal device such as a mobile phone, a smartphone, a PDA, or a tablet PC. In a modified example, a desktop PC, a notebook PC, or the like may be used instead of the mobile terminal 50. Hereinafter, the mobile terminal 50 will be referred to as the "terminal 50."

[0017] (Configuration of the print intermediary server 100) The print intermediary server 100 is a server that provides a cloud printing service, such as the GCP (Google (registered trademark) Cloud Print) service. In a cloud printing service, when the print intermediary server 100 receives a print instruction including image data from a terminal device (e.g., 50), it sends a notification to a printer (e.g., 10). The print intermediary server 100 then converts the image data to generate print data and sends the print data to the printer. The print intermediary server 100 is not a server installed by the vendor of the printer 10, but is a server installed by a business that provides a cloud printing service. In a modified example, the print intermediary server 100 may be a server installed by the vendor of the printer 10. Hereinafter, the print intermediary server 100 will be referred to as the "server 100."

[0018] (Registration process: Figure 2) Referring to FIG. 2, a process for registering information about the printer 10 with the server 100 so that the printer 10 can receive a cloud printing service from the server 100 will be described. In the initial state of FIG. 2, the printer 10 and the terminal 50 belong to the same LAN (i.e., LAN 62 or LAN 72). When the printer 10 belongs to LAN 62, the printer 10 uses the AP 60 to communicate with the terminal 50 and the server 100. When the printer 10 belongs to LAN 72, the printer 10 uses the AP 70 to communicate with the terminal 50 and the print intermediary server 100, and further uses the proxy server 71 to communicate with the print intermediary server 100. However, the AP 60, AP 70, and proxy server 71 are not shown in FIG. 2. These devices are also omitted from the sequence diagrams from FIG. 5 onwards unless specifically necessary.

[0019] For ease of understanding, the following description will be focused on the printer 10 rather than the CPU 32 when describing the processing executed by the CPU 32 of the printer 10 in accordance with the program 36. Furthermore, all of the following communications executed by the printer 10 are executed via the wireless LAN interface 14. Therefore, the following description of communications will omit the phrase "via the wireless LAN interface 14" when describing the processing.

[0020] In response to receiving an operation from the user, the terminal 50 accesses, for example, a web server in the printer 10. Then, in response to receiving a further operation from the user for the printer 10 to receive the cloud printing service, the terminal 50 transmits a registration instruction to the printer 10 at T10.

[0021] When the printer 10 receives a registration instruction from the terminal 50 at T10, the printer 10 transmits a registration request including a printer ID, which is information for identifying the printer 10, to the server 100 at T12.

[0022] When the server 100 receives a registration request from the printer 10 in T12, it generates a PIN code in T14 and stores the printer ID included in the registration request in association with the generated PIN code. Next, in T20, the server 100 transmits the PIN code and a login URL (short for Uniform Resource Locator) to the printer 10. The login URL is information indicating the location of authentication screen data (described below) within the server 100.

[0023] When the printer 10 receives the PIN code and the URL from the server 100 in T20, it transmits them to the terminal 50 in T22.

[0024] When the terminal 50 receives the PIN code and the URL from the printer 10 in T22, it displays them in T30. Next, when the terminal 50 accepts an operation to select a URL from the user in T32, it transmits an authentication request including the URL to the server 100 in T40.

[0025] When the server 100 receives an authentication request from the terminal 50 in T40, the server 100 transmits, in T42, authentication screen data identified by the URL included in the authentication request to the terminal 50. The authentication screen data is data representing an authentication screen for inputting a PIN code.

[0026] In T42, the terminal 50 receives the authentication screen data from the server 100, and in T44 displays the authentication screen represented by the authentication screen data. Next, in T46, the terminal 50 accepts input of the PIN code displayed in T30 from the user. In this case, the terminal 50 transmits the input PIN code to the server 100 in T50.

[0027] When the server 100 receives a PIN code from the terminal 50 in T50, it authenticates the received PIN code in T52. Specifically, the server 100 determines whether the received PIN code has been stored. If the server 100 determines that the received PIN code has been stored, that is, if authentication is successful, it generates an access token (hereinafter referred to as AT (short for Access Token)), which is a unique character string, in T54. Then, in T56, the server 100 stores the printer ID and the generated AT in association with each other, and in T60, it sends an authentication notification including the generated AT to the printer 10.

[0028] In T62, the printer 10 stores the AT included in the authentication notification in the memory 34. This completes the registration process.

[0029] (Printer operation decision process: Figure 3) Next, an operation determination process executed by the CPU 32 of the printer 10 will be described with reference to Fig. 3. The process of Fig. 3 is started when the registration process ends or when the power of the printer 10 is turned on.

[0030] The processes of S10 and S12 are a series of processes for determining whether the printer 10 is in a proxy environment or a non-proxy environment. A proxy environment is an environment in which the printer 10 communicates with devices on the Internet 6 using a proxy server 71 (i.e., a situation in which the printer 10 belongs to the LAN 72). A non-proxy environment is an environment in which the printer 10 communicates with devices on the Internet 6 without using a proxy server 71 (i.e., a situation in which the printer 10 belongs to the LAN 62).

[0031] In S10, the printer 10 determines whether the flag information included in the proxy settings in the memory 34 indicates "valid" and whether each setting value (IP address, port number, etc.) is stored. If the flag information indicates "valid" and each setting value is stored, the printer 10 determines that the printer 10 is in a proxy environment (YES in S10) and proceeds to S30. On the other hand, if the flag information indicates "invalid" or if the flag information indicates "valid" but each setting value is not stored (NO in S10), the printer 10 proceeds to S12. The printer 10 makes the determination in S10 based on the proxy settings, and therefore can appropriately determine whether the printer 10 is in a proxy environment.

[0032] In S12, the printer 10 determines whether the URL of a WPAD (Web Proxy Auto-Discovery Protocol) file is stored in the memory 34. WPAD will now be described. When the printer 10 is attached to the LAN 62 or LAN 72, it requests the AP 60 or AP 70 to assign an IP address. The AP 60 or AP 70 has a DHCP server function and automatically assigns an IP address to the printer 10. If a proxy server 71 exists on the LAN 72, the AP 70 also sends the URL of the WPAD file to the printer 10 when assigning an IP address to the printer 10. The WPAD file is a file that indicates information about the proxy server 71. Therefore, when the printer 10 receives the URL of the WPAD file from the AP 71, it can determine that the proxy server 71 exists on the LAN 72, i.e., that the printer 10 is in a proxy environment.

[0033] If printer 10 belongs to LAN 72, printer 10 has already received the URL of the WPAD file from AP 71, so it determines that printer 10 is in a proxy environment (YES in S12) and proceeds to the processing of S30. On the other hand, if printer 10 belongs to LAN 62, it has not received the WPAD file from AP 60, so it determines that printer 10 is not in a proxy environment (i.e., in a non-proxy environment) (NO in S12), and proceeds to the processing of S40. Printer 10 makes the determination of S12 based on whether or not it has received the URL of the WPAD file, so it can appropriately determine whether or not printer 10 is in a proxy environment.

[0034] In S30, the printer 10 operates in parallel in a Polling Mode (hereinafter referred to as "PM") and an Event Wait Mode (hereinafter referred to as "EWM"). PM is a mode for repeatedly sending a polling signal to the server 100 and receiving a notification from the server 100. EWM is a mode for receiving a notification from the server 100 without sending a polling signal to the server 100. When S30 ends, the processing in FIG. 3 ends.

[0035] In PM, the server 100 sends a notification to the printer 10 in response to a polling signal from the printer 10. Therefore, there may be a delay in sending the notification that the print instruction has been received from the server 100 to the printer 10. As a result, there may be a delay in starting printing. On the other hand, in EWM, the server 100 can send a notification that the print instruction has been received to the printer 10 immediately after receiving the print instruction from the terminal 50. Therefore, the notification is quickly sent from the server 100 to the printer 10. As a result, there is less delay in starting printing. However, as a result of research by the present inventors, it has been found that when the printer 10 is in a proxy environment and operates in EWM, there is a possibility that an event may occur in which the printer 10 cannot receive a notification from the server 100 (hereinafter referred to as a "reception impossible event").

[0036] In view of the above circumstances, in this embodiment, when the printer 10 is in a proxy environment, it operates in parallel in the PM and the EWM (S30). Therefore, even if a reception-disabled event occurs in the EWM, the printer 10 can properly receive a notification from the server 100 in the PM. Furthermore, when a reception-disabled event does not occur, the printer 10 can quickly receive a notification from the server 100 in the EWM. In this way, the printer 10 can quickly and properly receive a notification from the server 100.

[0037] In S40, the printer 10 operates only in EWM. When S40 ends, the processing of FIG. 3 ends. As described above, in this embodiment, the printer 10 operates only in EWM when it is in a non-proxy environment (S40). This is because the possibility of a reception failure event occurring is low when the printer 10 is in a non-proxy environment. Therefore, even when the printer 10 operates only in EWM, it can quickly and appropriately receive notifications from the server 100. Furthermore, because the printer 10 does not operate in parallel as PM and EWM, it is possible to prevent the processing load and communication load from increasing.

[0038] (Case A: Figure 4) Next, referring to FIG. 4, we will explain Case A, which is realized when the printer 10 belongs to the LAN 62. In Case A, the proxy settings of the printer 10 include flag information "disabled" and do not include any setting values. FIG. 4 is a continuation of the process in FIG. 2. Although not shown, after the process in FIG. 2, the process in FIG. 4 starts in response to the printer 10 being powered off and then on. This also applies to FIG. 5, FIGS. 9 and 10 of the second embodiment, and FIG. 12 of the third embodiment, which will be described later.

[0039] When the printer 10 is powered on (triggering the process in FIG. 3), the printer 10 belongs to the LAN 62 formed by the AP 60, and in T100 sends an IP address request to the AP 60. In this case, the printer 10 receives IP address candidates from the AP 60 in T102.

[0040] The printer 10 determines in T110 that it is in a non-proxy environment because the proxy setting flag information indicates "invalid" (NO in S10) and the URL of the WPAD file has not yet been received (NO in S12). Therefore, the printer 10 operates in EWM (S40).

[0041] Next, in T120, the printer 10 transmits an IP address approval request to the AP 60, and in T122 receives a notification from the AP 60 that the IP address has been assigned. Subsequent communications performed by the printer 10 are also performed via the AP 60. However, in FIG. 4, for ease of viewing, the manner in which communications are performed via the AP 60 is omitted. This also applies to FIGS. 6 and 7, FIG. 9 of the second embodiment, FIG. 12 of the third embodiment, and FIG. 13 of the fourth embodiment, which will be described later.

[0042] The printer 10 (i.e., the CPU 32) launches an EWM task 10B (in other words, a processing thread) for operating in EWM. At T124, the EWM task 10B uses the stored AT (see T62 in FIG. 2) to establish a persistent connection in accordance with HTTP with the server 100. A persistent connection is what is called a constant connection, and is a connection that allows signals to be sent from the server 100 to the printer 10 even if no signals are sent from the printer 10 to the server 100. In other words, a persistent connection is a connection for executing server push-type communication.

[0043] Next, at T130, the EWM task 10B sends a Get-Notification (Event Wait Mode) Request (hereinafter referred to as "GN (EWM) Req") to the server 100. The GN (EWM) Req is a signal for requesting the server 100 to send a notification to the printer 10 when a print instruction is received from the terminal 50. As a result, when the server 100 receives a print instruction from the terminal 50, it sends a Get-Notification (Event Wait Mode) Response (hereinafter referred to as "GN (EWM) Res") including a Job-ID to the printer 10. Meanwhile, the server 100 sends a GN (EWM) Res not including a Job-ID to the printer 10 every time a predetermined waiting time has elapsed without receiving a print instruction from the terminal 50. The predetermined waiting time is, for example, 60 seconds ("s" stands for seconds).

[0044] The EWM task 10B sends a GN(EWM)Req at T130, and immediately thereafter at T132, receives a GN(EWM)Res that does not include a Job-ID from the server 100. Thereafter, the EWM task 10B receives a GN(EWM)Res that does not include a Job-ID from the server 100 every 60 seconds at T134 and T136.

[0045] When the EWM task 10B receives a GN(EWM)Res at T132, T134, or T136, it transitions to a blocking state at T133, T135, or T137. The blocking state is a state in which other processing cannot be executed until a GN(EWM)Res is received again. That is, the blocking state is a state in which only the reception of a GN(EWM)Res is monitored. This makes it possible to prevent an event from occurring in which a GN(EWM)Res is received while the EWM task 10B is executing other processing. Therefore, when the EWM task 10B receives a GN(EWM)Res in the blocking state, it can quickly execute processing according to the GN(EWM)Res.

[0046] As described above, in this embodiment, a GN (EWM) Res that does not include a Job-ID is sent from the server 100 to the printer 10 every 60 seconds. Therefore, when the EWM task 10B receives a GN (EWM) Res, it maintains a blocking state for a time longer than 60 seconds (for example, 90 seconds). When the EWM task 10B receives a GN (EWM) Res in a blocking state, it releases the blocking state and executes processing according to the GN (EWM) Res. For example, the EWM task 10B determines whether the GN (EWM) Res includes a Job-ID, and if the GN (EWM) Res does not include a Job-ID, it transitions back to the blocking state, and if the GN (EWM) Res includes a Job-ID, it executes processing related to printing.

[0047] In response to receiving a print execution operation from the user, the terminal 50 transmits a print instruction to the server 100 in T140. The print instruction includes image data representing the image to be printed designated by the user.

[0048] The server 100 receives a print instruction from the terminal 50 at T140 before 60 seconds have elapsed since the server 100 sent the GN(EWM)Res at T136. In this case, the server 100 converts the received image data at T142 to generate print data in a data format that can be interpreted by the printer 10. The server 100 also generates a Job-ID and stores the print data in association with the Job-ID. Then, before 60 seconds have elapsed since the server 100 sent the GN(EWM)Res at T136, that is, immediately after receiving the print instruction from the terminal 50, the server 100 sends a GN(EWM)Res including the Job-ID to the printer 10 at T150 using the persistent connection described above.

[0049] When the EWM task 10B receives a GN(EWM)Res including a Job-ID from the server 100 using the persistent connection in T150, it releases the blocking state, and in T160 to T166, it executes communication with the server 100 to receive print data. Specifically, in T160, the EWM task 10B sends a Fetch-job Request including the Job-ID to the server 100, and in T162 receives a Response including Job information from the server 100. The Job information is information that indicates the printing conditions (for example, paper size, number of colors, whether double-sided printing is enabled, etc.) set by the user of the terminal 50. Then, in T164, the EWM task 10B sends a Fetch-Document Request including the Job-ID to the server 100, and in T166 receives a Response including the print data associated with the Job-ID from the server 100.

[0050] Next, at T170, the EWM task 10B causes the print execution unit 18 to start printing the image represented by the print data. Specifically, the EWM task 10B supplies the print data to the print execution unit 18. As a result, the print execution unit 18 starts printing, and when printing is completed, the printed paper is provided to the user of the terminal 50.

[0051] As shown in the above-described Case A, the printer 10 operates only in EWM when it is in a non-proxy environment. This allows the printer 10 to quickly and appropriately receive the GN(EWM)Res including the Job-ID (T150).

[0052] (Case B: Figure 5) 5, a description will be given of Case B, which is realized when the printer 10 belongs to the LAN 72. In Case B, the proxy settings of the printer 10 include flag information "enabled" and each setting value.

[0053] In T200, the printer 10 sends an IP address request to the AP 70. In this case, in T202, the printer 10 receives from the AP 70 a candidate IP address to be set in the printer 10 and the URL of the WPAD file. In T204, the printer 10 stores the received URL in the memory 34.

[0054] In the proxy settings, the printer 10 determines in T210 that the printer 10 is in a proxy environment because the flag information indicates "enabled" and each setting value is stored (YES in S10 of FIG. 3). Therefore, the printer 10 operates in parallel as a PM and an EWM (S30).

[0055] Next, in T220, the printer 10 transmits an approval request for the IP address to the AP 70, and in T222, receives a notification from the AP 70 that the IP address has been assigned.

[0056] (Case B1: Figure 6 (unstable communication)) Case B1 in Fig. 6 is a continuation of the case in Fig. 5. In particular, Fig. 6 shows a case in which a reception impossible event occurs. The printer 10 (i.e., the CPU 32) launches a PM task 10A for operating in PM and an EWM task 10B for operating in EWM. This allows the PM task and the EWM task to execute processing in parallel, and as a result, the printer 10 is able to operate in parallel as a PM and an EWM.

[0057] At T230, the PM task 10A transmits a Get-Notification (Polling Mode) Request (hereinafter referred to as "GN(PM)Req") to the server 100, and immediately thereafter, at T232, receives a Get-Notification (Polling Mode) Response (hereinafter referred to as "GN(PM)Res") that does not include a Job-ID from the server 100. The GN(PM)Res includes polling time information indicating 30 seconds specified by the server 100. The polling time information indicates the time from when the GN(PM)Res is received until when the next GN(PM)Req is transmitted.

[0058] Meanwhile, in T234, the EWM task 10B uses the stored AT (see T62 in FIG. 2) to establish a persistent connection in accordance with HTTP with the server 100. This connection is similar to the connection at T124 in FIG. 4. Next, in T240, the EWM task 10B sends a GN(EWM)Req to the server 100, and immediately thereafter, in T242, receives a GN(EWM)Res that does not include a Job-ID from the server 100. Then, in T243, the EWM task 10B transitions to a blocking state.

[0059] For convenience of illustration, FIG. 6 is depicted as if the PM task 10A first executes processing such as T230, and the EWM task 10B second executes processing such as T240. However, the EWM task 10B may execute processing first, or the PM task 10A and the EWM task 10B may execute processing simultaneously. This also applies to other drawings in which both the PM task 10A and the EWM task 10B are running.

[0060] When 30 seconds indicated by the polling time information included in the GN(PM)Res has elapsed since the PM task 10A received the GN(PM)Res at T232, the PM task 10A transmits a GN(PM)Req to the server 100 at T250, and immediately thereafter, at T252, receives a GN(PM)Res that does not include a Job-ID from the server 100. In this way, the PM task 10A transmits a GN(PM)Req to the server 100 every 30 seconds indicated by the polling time information.

[0061] If the server 100 receives a print instruction from the terminal 50 at T260 before 30 seconds have elapsed since sending the GN(PM)Res at T252, the server 100 generates print data at T262 and stores the print data in association with the Job-ID.The server 100 then attempts to send a GN(EWM)Res including the Job-ID to the printer 10 using the persistent connection. However, in case B1, a reception impossible event occurs, and the GN(EWM)Res including the Job-ID is not received by the printer 10.

[0062] Thereafter, in T270, the PM task 10A transmits a GN(PM)Req to the server 100, and in T272 receives a GN(PM)Res including polling time information and a Job-ID from the server 100. In this case, in T270, the PM task 10A associates the Job-ID with the status information "Waiting to print" and stores the association in the status table in the memory 34. Next, in T280 to T286, the PM task 10A communicates with the server 100 to receive print data. The processing of T280 to T286 is the same as T160 to T166 in FIG. 4, except that the processing is executed by the PM task 10A instead of the EWM task 10B.

[0063] When the PM task 10A receives the print data from the server 100 in T286, it causes the print execution unit 18 to start printing the image represented by the print data in T290.

[0064] Thereafter, at T292, the PM task 10A executes a status check to confirm whether all printing according to the print data has been completed. Specifically, the PM task 10A supplies a status request to the print execution unit 18 and acquires status information from the print execution unit 18. If the PM task 10A acquires the status information "printing", it executes the status check again. In this way, the PM task 10A repeatedly executes the status check. The time interval for repeatedly executing the status check is, for example, 5 seconds. Although not shown, if the PM task 10A acquires the status information "printing", it associates the status information "printing" with the above Job-ID and stores the status information "printing" in the status table instead of the status information "waiting to print".

[0065] After the status check is performed in T292, printing ends. In this case, the PM task 10A performs the status check in T294 to obtain the status information "printing completed," and in T296 associates the status information "printing completed" with the above Job-ID and stores the status information "printing completed" in the status table instead of the status information "printing."

[0066] Next, the PM task 10A executes termination processing at T298. The termination processing includes, for example, processing to erase the print data from the memory 34 and processing to notify the server 100 that printing has finished. As described above, in this embodiment, since the PM task 10A executes the status check, the printer 10 can execute the status check more quickly than in a configuration in which the EWM task 10B executes the status check. This is because the EWM task 10B maintains a blocking state for a long period of time and cannot execute status checks frequently. Therefore, in this embodiment, the printer 10 can execute the termination processing more quickly.

[0067] Although not shown in the figure, when the processing of T298 ends, the PM task 10A resumes repeatedly sending a GN(PM)Req to the server 100. In addition, the EWM task 10B sends a GN(EWM)Req to the server 100 every time the blocking state is released without receiving a GN(EWM)Res.

[0068] As shown in the above-described case B1, the printer 10 operates in parallel in the PM and the EWM when it is in a proxy environment. Therefore, even if a reception failure event occurs in the EWM, the printer 10 can properly receive the GN(PM)Res including the Job-ID in the PM (T272).

[0069] (Case B2: Figure 7 (stable communication)) Case B2 is a case where no reception impossible event occurs in EWM. T330 to T362 are the same as T230 to T262 in Figure 6. In case B2, since no reception impossible event occurs in EWM, the EWM task 10B receives a GN(EWM)Res including a Job-ID from the server 100 at T370 using the persistent connection described above before 30 seconds have elapsed since receiving the GN(PM)Res at T352, that is, immediately after a print instruction is sent from the terminal 50 to the server 100.

[0070] When the EWM task 10B receives the GN(EWM)Res in T370, it releases the blocking state, and in T380 supplies the Job-ID included in the GN(EWM)Res to the PM task 10A. Then, in T381, the EWM task 10B transitions to the blocking state again.

[0071] When the PM task 10A acquires a Job-ID from the EWM task 10B in T381, it associates the Job-ID with the status information "waiting to print" and stores the associated Job-ID in the status table in T382. The subsequent processing is the same as the processing of T280 to T298 in FIG. 6. In this case, the PM task 10A also executes the status check, so the printer 10 can quickly execute the termination processing. Furthermore, since the PM task 10A, not the EWM task 10B, executes the processing for receiving print data from the server 100, the EWM task 10B can quickly transition to the blocking state (T381). This allows the EWM task 10B to quickly receive a GN(EWM)Res from the server 100. Therefore, the printer 10 can quickly receive a GN(EWM)Res including, for example, a new Job-ID and quickly execute printing according to the new Job-ID. Furthermore, the printer 10 can quickly receive a GN(EWM)Res containing print stop information, for example, and quickly stop printing.

[0072] As shown in the above-described case B2, the printer 10 operates in parallel in the PM and the EWM when it is in a proxy environment. Therefore, when a reception impossible event does not occur, the printer 10 can quickly receive the GN(PM)Res including the Job-ID in the EWM (T370).

[0073] (Correspondence) The printer 10 and the server 100 are examples of a "communication device" and a "notification server", respectively. The PM and EWM are examples of a "first mode" and a "second mode", respectively. A print instruction is an example of a "processing execution instruction". A GN(EWM)Res containing a Job-ID or a GN(PM)Res containing a Job-ID is an example of a "processing execution notification". A GN(PM)Req is an example of a "polling signal". Printing is an example of a "predetermined process". A case where S10 in FIG. 3 is YES or S12 is YES is an example of a case where the first condition is satisfied. A case where S12 is NO is an example of a case where the second condition is satisfied. The WPAD file is an example of "existence information." The PM task 10A and the EWM task 10B are examples of the "first task" and the "second task," respectively.

[0074] 4, 6, and 7, each process for receiving a GN(EWM)Res including a Job-ID or a GN(PM)Res including a Job-ID (for example, T124 to T136, T150 in FIG. 4, T230 to T252, T270, T272 in FIG. 6, and T330 to T352, T370 in FIG. 7) is an example of a process realized by a "notification receiving unit." T170 in FIG. 4 and T290 in FIG. 6 are examples of a process realized by a "processing executing unit."

[0075] (Second embodiment: Figure 8) Next, a second embodiment will be described. In the second embodiment, the process of FIG. 8 is executed instead of the process of FIG.

[0076] S10 and S12 in FIG. 8 are the same as S10 and S12 in FIG. 3. If the printer 10 determines that it is in a proxy environment (YES in S10 or YES in S12), the printer 10 operates only as PM in S32. As described above, if the printer 10 is in a proxy environment, a reception failure event may occur in EWM. In this embodiment, the printer 10 operates only as PM when it is in a proxy environment, and therefore can properly receive a GN(PM)Res containing a Job-ID from the server 100. Furthermore, because the printer 10 does not operate in parallel as PM and EWM, it is possible to prevent the processing load and communication load from increasing.

[0077] If the answer to S12 is NO, i.e., if the printer 10 determines that it is in a non-proxy environment, the printer 10 operates in parallel in PM and EWM in S42. As described above, when the printer 10 is in a non-proxy environment, the likelihood of a reception failure event occurring in EWM is low. However, it cannot be denied that a reception failure event may occur even when the printer 10 is in a non-proxy environment. For this reason, the printer 10 of this embodiment operates in parallel in PM and EWM when the printer 10 is in a non-proxy environment. As a result, even if a reception failure event occurs in EWM, the printer 10 can properly receive a GN(PM)Res including a Job-ID from the server 100 in PM. Furthermore, when a reception failure event does not occur, the printer 10 can quickly receive a GN(EWM)Res including a Job-ID from the server 100 in EWM.

[0078] (Case C: Figure 9) 9, a case C that is realized when the printer 10 belongs to the LAN 72 will be described. In case C, the proxy settings of the printer 10 include flag information "enabled" and each setting value.

[0079] T400 to T422 are the same as T200 to T222 in Figure 5. The printer 10 launches the PM task 10A. The PM task 10A sends a GN(PM)Req to the server 100 at T430, and receives a GN(PM)Res from the server 100 that does not include a Job-ID at T432. When 30 seconds indicated by the polling time information has elapsed since the PM task 10A received the GN(PM)Res at T432, the PM task 10A again sends a GN(PM)Req to the server 100 at T434, and receives a GN(PM)Res from the server 100 that does not include a Job-ID at T436. That is, the PM task 10A repeatedly sends a GN(PM)Req to the server 100 and repeatedly receives a GN(PM)Res from the server 100.

[0080] If the server 100 receives a print instruction from the terminal 50 at T440 before 30 seconds have passed since the server 100 sent the GN(PM)Res at T436, the server 100 generates print data at T442 and stores the print data in association with the Job-ID. After that, 30 seconds have passed since the server 100 sent the GN(PM)Res at T436, the server 100 receives a GN(PM)Req from the printer 10 at T450. In this case, the server 100 sends a GN(PM)Res including polling time information and the Job-ID to the printer 10 at T452.

[0081] When the PM task 10A receives a GN(PM)Res including a Job-ID from the server 100 in T452, it executes the same processes as T280 to T298 in Fig. 6. Although not shown in the figure, when the PM task 10A finishes the process of T298, it repeatedly transmits a GN(PM)Req to the server 100.

[0082] As shown in the above-mentioned Case C, when the printer 10 is in a proxy environment, it operates only as a PM. Therefore, the printer 10 can properly receive the GN(PM)Res including the Job-ID (T452). In addition, because the printer 10 does not operate in parallel as a PM and an EWM, it is possible to prevent the processing load and communication load from increasing.

[0083] (Case D: Figure 10) 10, a case D that is realized when the printer 10 belongs to the LAN 62 will be described. In case D, the proxy settings of the printer 10 include flag information "invalid" and do not include any setting values.

[0084] T500 to T522 are the same as T100 to T122 in FIG. 4. The subsequent processing is the same as the processing in case B1 in FIG. 6 or case B2 in FIG. 7. When the printer 10 is in a non-proxy environment, it operates in parallel with the PM and EWM. Therefore, even if a reception-disabled event occurs in the EWM as in case B1 in FIG. 6, the printer 10 can properly receive the GN(PM)Res including the Job-ID in the PM (T272 in FIG. 6). Also, when a reception-disabled event does not occur as in case B2 in FIG. 7, the printer 10 can quickly receive the GN(PM)Res including the Job-ID in the EWM (T370 in FIG. 7).

[0085] (Correspondence) A case where NO is returned in S12 in Fig. 8 is an example of "a case where the first condition is satisfied." A case where YES is returned in S10 or YES is returned in S12 in Fig. 8 is an example of "a case where the second condition is satisfied." In Fig. 9, Fig. 6 cited in Fig. 10, and Fig. 7 cited in Fig. 10, each process for receiving a GN(EWM)Res including a Job-ID or a GN(PM)Res including a Job-ID (for example, T430 to T436, T450, T452 in Fig. 9) is an example of a process realized by a "notification receiving unit."

[0086] (Third Example: Figure 11) Next, a third embodiment will be described. In the third embodiment, the process of Fig. 11 is executed instead of the process of Fig. 3. In the process of Fig. 11, the mode in which the printer 10 should operate is determined depending on whether the printer 10 periodically receives GN(EWM)Res, regardless of whether the printer 10 is in a proxy environment or a non-proxy environment.

[0087] In S50, the printer 10 first operates in EWM. That is, the printer 10 establishes a persistent connection with the server 100 and sends a GN(EWM)Req to the server 100.

[0088] In S60, the printer 10 monitors whether a GN(EWM)Res that does not include a Job-ID has been received from the server 100. In this embodiment, a GN(EWM)Res that does not include a Job-ID is transmitted from the server 100 to the printer 10 every 60 seconds. In a modified example, a time period other than 60 seconds may be used. If the printer 10 receives a GN(EWM)Res that does not include a Job-ID from the server 100 every 60 seconds, the printer 10 determines YES in S60 and continues to operate in EWM mode. On the other hand, if the printer 10 does not receive a GN(EWM)Res that does not include a Job-ID from the server 100 even after 60 seconds have passed since the printer 10 transmitted a GN(EWM)Req, or if the printer 10 does not receive a GN(EWM)Res that does not include a Job-ID from the server 100 even after 60 seconds have passed since the printer 10 received the previous GN(EWM)Res from the server 100, the printer 10 determines NO in S60 and proceeds to S70.

[0089] In S70, the printer 10 operates in parallel in the PM and the EWM. As a result, even if a reception-disabled event occurs in the EWM, the printer 10 can properly receive the GN(PM)Res including the Job-ID from the server 100 in the PM. Furthermore, if no reception-disabled event occurs, the printer 10 can quickly receive the GN(EWM)Res including the Job-ID from the server 100 in the EWM.

[0090] (Case E: Figure 12) Case E, which is realized by the processing in FIG. 11, will be described with reference to FIG. 12. In Case E, the printer 10 may belong to either the LAN 62 or the LAN 72. That is, the printer 10 may be in either a proxy environment or a non-proxy environment. When the printer 10 belongs to the LAN 62, it executes processing similar to T100 to T122 in FIG. 4. On the other hand, when the printer 10 belongs to the LAN 72, it executes processing similar to T200 to T222 in FIG. 5.

[0091] The printer 10 first operates in EWM (S50 in FIG. 11). The printer 10 launches the EWM task 10B. Then, the EWM task 10B establishes a persistent connection with the server 100 in T600. Next, the EWM task 10B sends a GN(EWM)Req to the server 100 in T610, and immediately thereafter, in T612, receives a GN(EWM)Res that does not include a Job-ID from the server 100. In T614 and T616, the EWM task 10B receives a GN(EWM)Res that does not include a Job-ID from the server 100 every 60 seconds (YES in S60). In this case, the printer 10 continues to operate in EWM.

[0092] After that, a reception impossible event occurs in the printer 10. As described above, for example, if the printer 10 is in a proxy environment, a reception impossible event may occur. Also, even if the printer 10 is in a non-proxy environment, a reception impossible event may occur. The EWM task 10B does not receive a GN(EWM)Res that does not include a Job-ID from the server 100 even though 60 seconds have passed since receiving the GN(EWM)Res of T616 (NO in S60). In this case, the printer 10 starts operating in parallel with the PM and EWM (S70).

[0093] First, in T618, the printer 10 disconnects the persistent connection. Then, the printer 10 executes the same process as in Case B1 of FIG. 6 or Case B2 of FIG. 7. As shown in Case E above, when the printer 10 does not receive a GN(EWM)Res from the server 100, that is, when a reception-impossible event occurs, the printer 10 operates in parallel in the PM and the EWM. Therefore, even when a reception-impossible event occurs, the printer 10 can properly receive a GN(PM)Res containing a Job-ID in the PM (T272 of FIG. 6). Furthermore, when a reception-impossible event does not occur, the printer 10 can quickly receive a GN(EWM)Res containing a Job-ID from the server 100 (T370 of FIG. 7).

[0094] (Correspondence) A GN(EWM)Res that does not include a Job-ID is an example of a "predetermined signal." 60 seconds is an example of a "predetermined time." NO at S60 in FIG. 9 is an example of a "case where the first condition is met." YES at S60 is an example of a "case where the second condition is met." In FIGS. 6 and 7 cited in FIG. 12, each process for receiving a GN(EWM)Res that includes a Job-ID or a GN(PM)Res that includes a Job-ID is an example of a process realized by a "notification receiving unit."

[0095] (Fourth embodiment: Figure 13) A fourth embodiment will be described with reference to Fig. 13. In the first to third embodiments described above, when both the PM task 10A and the EWM task 10B are running, the PM task 10A receives print data from the server 100 and checks the status of the print execution unit 18. In this embodiment, a thread pool 10C is used instead of the PM task 10A, and the EWM task 10B receives print data and checks the status.

[0096] The thread pool 10C is a task that executes processing according to queuing obtained from various tasks. For example, the thread pool 10C executes processing to send a GN(PM)Req to the server 100 in response to queuing obtained from the EWM task 10B. That is, the thread pool 10C can operate as a PM task or as another task.

[0097] 13 shows case F that is realized instead of case B1 in FIG. 6 of the first embodiment. In case F, first, the EWM task 10B establishes a persistent connection with the server 100 in T700. Then, the EWM task 10B sends a GN(EWM)Req to the server 100 in T710, and receives a GN(EWM)Res that does not include a Job-ID from the server 100 in T712.

[0098] Next, the EWM task 10B supplies the queuing to the thread pool 10C at T714. Then, the EWM task 10B transitions to a blocking state at T716. In this embodiment, the time for maintaining the blocking state is set shorter than 90 seconds in the first embodiment. For example, the time is 30 seconds.

[0099] When the thread pool 10C acquires queuing from the EWM task 10B at T714, it sends a GN(PM)Req to the server 100 at T720, and receives a GN(PM)Res that does not include a Job-ID from the server 100 at T722.

[0100] If the server 100 receives a print instruction from the terminal 50 at T730 before 30 seconds have elapsed since sending the GN(PM)Res at T722, the server 100 generates print data at T732 and stores the print data in association with the Job-ID. In Case F, a reception impossible event occurs, and the GN(EWM)Res including the Job-ID is not received by the printer 10.

[0101] After that, the EWM task 10B releases the blocking state and supplies queuing to the thread pool 10C at T734. Next, the EWM task 10B transitions to the blocking state at T736.

[0102] When the thread pool 10C acquires queuing from the EWM task 10B in T734, it sends a GN(PM)Req to the server 100 in T740, and receives a GN(PM)Res including a Job-ID from the server 100 in T742. In this case, the thread pool 10C associates the Job-ID with the status information "waiting to print" and stores them in the status table in T744.

[0103] Thereafter, the EWM task 10B releases the blocking state, and in T746, recognizes that the Job-ID and the status information "waiting to print" are associated in the status table. In this case, the EWM task 10B executes communication to receive print data in T750 to T756. T750 to T756 are the same as T160 to T166 in FIG. 4.

[0104] When the EWM task 10B receives print data from the server 100 in T756, in T760, the EWM task 10B causes the print execution unit 18 to start printing of the image represented by the print data. After that, in T762, the EWM task 10B executes a status check on the print execution unit 18. After the status check in T762 is executed, printing ends. In this case, in T764, the EWM task 10B executes a status check and acquires the status information "printing completed", and in T766, associates the status information "printing completed" with the above Job-ID and stores the status information "printing completed" in the status table instead of the status information "printing".

[0105] Next, the EWM task 10B executes termination processing at T768. As described above, in this embodiment, since the EWM task 10B receives print data and checks the status, it is sufficient to provide a thread pool 10C that can execute various processes, including processes related to PM. Since there is no need to provide a dedicated task for operating in PM, the resources of the printer 10 can be used effectively. In this embodiment, the thread pool 10C is an example of a "first task."

[0106] Although specific examples of the present invention have been described above in detail, these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and variations of the specific examples exemplified above. Modifications of the above-mentioned embodiments are listed below.

[0107] (Variation 1) The printer 10 may be configured to always operate in parallel in the PM and EWM modes without executing the determinations of S10 and S12 in Figure 3. Generally speaking, the "notification receiving unit" may operate in parallel in the first mode and the second mode regardless of whether the first condition or the second condition is met.

[0108] (Variation 2) The printer 10 may operate only in PM in S40 of Fig. 3. Generally speaking, the "notification receiving unit" may operate only in the first mode of the first and second modes when the second condition that the communication device is in a non-proxy environment is met.

[0109] (Variation 3) The printer 10 may operate only in EWM in S32 of Fig. 6. Generally speaking, the "notification receiving unit" may operate only in the second mode of the first mode and the second mode when the second condition that the communication device is in a proxy environment is satisfied.

[0110] (Variation 4) S10 in Fig. 3 may be omitted. In this case, only the determination in S12 is performed, and if YES in S12, the process proceeds to S30, and if NO in S12, the process proceeds to S40. In another variation, S12 in Fig. 3 may be omitted. In this case, only the determination in S10 is performed, and if YES in S10, the process proceeds to S30, and if NO in S10, the process proceeds to S40. Generally speaking, the method for determining whether a communication device is in a proxy environment or a non-proxy environment is not limited to the method in the above embodiment.

[0111] (Variation 5) In S30 of Fig. 3, the printer 10 does not need to launch both task 10A or 10C for operating in PM and task 10B for operating in EWM, and may launch only one task for operating in PM and EWM. Generally speaking, the "notification receiving unit" may be realized by only one task.

[0112] (Variation 6) The "communication device" does not have to be a printer, but may be other devices such as a scanner, a facsimile, a PC, or a server. If a scanner is an example of a "communication device," a scan execution instruction sent from terminal 50 to server 100 is an example of a "processing execution instruction," and the scan process executed by the scanner is an example of a "predetermined process." If a PC is an example of a "communication device," a data transmission instruction sent from terminal 50 to server 100 is an example of a "processing execution instruction," and the process of the PC downloading data from server 100 is an example of a "predetermined process."

[0113] (Variation 7) In the above embodiment, the CPU 32 of the printer 10 executes the program 36 to realize the processes shown in Figures 2 to 10. Alternatively, any of the processes may be realized by hardware such as a logic circuit.

[0114] Furthermore, the technical elements described in this specification or drawings may exhibit technical utility either alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. Furthermore, the technologies illustrated in this specification or drawings simultaneously achieve multiple objectives, and achieving one of those objectives is itself technically useful. [Explanation of symbols]

[0115] 2: Communication system, 6: Internet, 12: Display unit, 14: Wireless LAN interface, 18: Print execution unit, 30: Control unit, 32: CPU, 34: Memory, 36: Program, 50: Mobile terminal, 60, 70: AP, 62, 72: LAN, 71: Proxy server, 100: Print intermediary server

Claims

1. A communication device, a notification receiving unit that receives a process execution notification from the notification server when a process execution instruction is transmitted from the terminal device to the notification server; a processing execution unit that executes a predetermined process when the processing execution notification is received from the notification server; The notification receiving unit operate in parallel in the first mode and the second mode; In the first mode, sending a polling signal to the notification server; receiving, from the notification server, the processing execution notification that is a response to the polling signal, when the polling signal is transmitted to the notification server after the processing execution instruction is transmitted from the terminal device to the notification server; In the second mode, a server push connection is established between the communication device and the notification server; receiving the processing execution notification from the notification server using the connection when the processing execution instruction is transmitted from the terminal device to the notification server while the connection is established; Communication equipment.

2. The notification receiving unit operating in parallel in each of the first mode and the second mode when a first condition is satisfied; The communication device according to claim 1 , wherein the communication device operates in only one of the first mode and the second mode when a second condition different from the first condition is satisfied.

3. the first condition is met when the communication device is in a proxy environment; the second condition is met when the communication device is in a non-proxy environment; the proxy environment is an environment for executing communication with the notification server using a proxy server; The communication device according to claim 2 , wherein the non-proxy environment is an environment for executing communication with the notification server without using the proxy server.

4. The communication device according to claim 3 , wherein the notification receiving unit operates only in the second mode of the first mode and the second mode when the second condition is satisfied.

5. the second condition is met when the communication device is in a proxy environment; the first condition is met when the communication device is in a non-proxy environment; the proxy environment is an environment for executing communication with the notification server using a proxy server; The communication device according to claim 2 , wherein the non-proxy environment is an environment for executing communication with the notification server without using the proxy server.

6. The communication device according to claim 5 , wherein the notification receiving unit operates only in the first mode of the first mode and the second mode when the second condition is satisfied.

7. The communication device further comprises a memory; The notification receiving unit If proxy setting information for using the proxy server is stored in the memory, the communication device is determined to be in the proxy environment; The communication device according to claim 3 , wherein the communication device is determined to be in the non-proxy environment when the proxy setting information is not stored in the memory.

8. The notification receiving unit When presence information indicating the presence of the proxy server is received from a DHCP (abbreviation of Dynamic Host Configuration Protocol) server, the communication device is determined to be in the proxy environment; The communication device according to claim 3 , wherein the communication device determines that the communication device is in the non-proxy environment when the presence information is not received from the DHCP server.

9. In the second mode, the second condition is satisfied when a predetermined signal is received from the notification server every time a predetermined time elapses without receiving the processing execution notification from the notification server; the notification receiving unit continuously operates only in the second mode of the first mode and the second mode when the second condition is satisfied; 3. The communication device according to claim 2, wherein in the second mode, the first condition is satisfied when the predetermined time has elapsed without the processing execution notification being received from the notification server and the predetermined signal is not received from the notification server.

10. 10. The communication device according to claim 1, wherein the notification receiving unit is realized by a first task for operating in the first mode and a second task for operating in the second mode, the second task being processable in parallel with the first task.

11. The first task includes: After the predetermined process is started, the predetermined process is monitored for completion; The communication device according to claim 10 , wherein when the predetermined process is completed, a termination process is executed in conjunction with the completion of the predetermined process.

12. The communication device further includes a print execution unit, the predetermined process includes a process of causing the print execution unit to execute printing in accordance with print data received from the notification server, The communication device according to claim 10 , wherein the first task is to receive the print data from the notification server.

13. The second task includes: After the predetermined process is started, the predetermined process is monitored for completion; The communication device according to claim 10 , wherein when the predetermined process is completed, a termination process is executed in conjunction with the completion of the predetermined process.

14. The communication device further includes a print execution unit, the predetermined process includes a process of causing the print execution unit to execute printing in accordance with print data received from the notification server, The communication device according to claim 10 or 13, wherein the second task is to receive the print data from the notification server.

15. 1. A computer program for a communication device, comprising: The computer of the communication device comprises the following parts: a notification receiving unit that receives a process execution notification from the notification server when a process execution instruction is transmitted from the terminal device to the notification server; a processing execution unit that executes a predetermined process when the processing execution notification is received from the notification server; The notification receiving unit operate in parallel in the first mode and the second mode; In the first mode, sending a polling signal to the notification server; receiving, from the notification server, the processing execution notification that is a response to the polling signal, when the polling signal is transmitted to the notification server after the processing execution instruction is transmitted from the terminal device to the notification server; In the second mode, a server push connection is established between the communication device and the notification server; receiving the processing execution notification from the notification server using the connection when the processing execution instruction is transmitted from the terminal device to the notification server while the connection is established; Computer program.

Citation Information

Patent Citations

  • printer

    JP2012187866A