Server system and computer program
A server system manages printer capacity updates, addressing inefficiencies in updating printing information by resending instructions as needed, ensuring accurate tracking of printable sheets.
Patent Information
- Application Number
- JP2025181568
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-10-28
- Publication Date
- 2026-01-23
AI Technical Summary
Existing systems face challenges in efficiently updating printing information, such as the number of printable sheets, in printers, leading to inefficiencies and potential inaccuracies.
A server system is implemented to manage and update the available capacity of printers by sending instructions to update the printer's memory, with mechanisms to resend instructions if not initially received, ensuring accurate reflection of printing data.
Ensures accurate and timely updates to printing capacity, enhancing user experience and operational efficiency by maintaining accurate tracking of printable sheets.
Smart Images

Figure 2026012277000001_ABST
Abstract
Description
[Technical Field]
[0001] The present specification relates to a technique for controlling a printer. [Background technology]
[0002] A system has been proposed in which a user is charged for the number of printable pages and is allowed to print the number of printable pages on a printer in accordance with the number of printable pages (see Patent Document 1). If a user wishes to print more than the number of printable pages, the user can continue to use the printer by paying an additional fee to purchase additional printable pages. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2021-18621 Summary of the Invention [Problem to be solved by the invention]
[0004] It is not easy to update the data indicating printing information such as the number of printable sheets in the printer, and there is room for improvement.
[0005] This specification discloses a technique for reflecting data updates in a printer. [Means for solving the problem]
[0006] The techniques disclosed in this specification can be implemented in the following application examples.
[0007] [Application Example 1] A server system comprising: a first acquisition unit configured to acquire a request to add a printer's available capacity from a terminal device; and a first transmission unit configured to transmit, in response to the addition request, an instruction to update the available capacity indicated by control data stored in the printer's memory device, the update instruction addressed to the printer; wherein the first transmission unit is configured to, in a first case in which the update instruction is not received by the printer, resend the update instruction addressed to the printer in response to a resend condition related to the printer being satisfied.
[0008] According to this configuration, in the first case where the update instruction is not received by the printer, the server system can appropriately resend the update instruction addressed to the printer.
[0009] The technology disclosed in this specification can be realized in various forms, such as a data processing method and data processing device, a server system configured to process data, a computer program for realizing the functions of the method or device, a recording medium (e.g., a non-transitory recording medium) on which the computer program is recorded, and the like. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating an example of a system according to an embodiment of the present invention. [Figure 2] (A)-(C) are schematic diagrams showing examples of data 131, 531, and 532, respectively. [Figure 3] FIG. 10 is a sequence diagram illustrating an example of a printing process. [Figure 4] FIG. 10 is a sequence diagram illustrating an example of a process for purchasing the number of printable sheets. [Figure 5] FIG. 10 is a sequence diagram illustrating an example of a process for reflecting the cumulative number of charges. [Figure 6] FIG. 10 is a sequence diagram illustrating an example of a reflection process. [Figure 7] 10 is a flowchart illustrating an example of a retransmission process. [Figure 8] 10 is a flowchart illustrating an example of a retransmission determination process. [Figure 9] 10 is a flowchart illustrating an example of a priority order retransmission process. [Figure 10] 10 is a flowchart illustrating another embodiment of a retransmission process. [Figure 11] 10 is a flowchart illustrating another embodiment of the reflection process. DETAILED DESCRIPTION OF THE INVENTION
[0011] A. First Example: A1.Device configuration: FIG. 1 is a schematic diagram illustrating an example of a system according to this embodiment. The system 1000 includes a printer 100, a terminal device 200, a service server 500, a connection server 600, and a payment server 700. In this embodiment, the service server 500 and the connection server 600 are provided by a print service provider. The payment server 700 is provided by a payment service provider. The print service provider provides the printer 100 to a user who has applied for a print service. The service server 500 assigns a printable number to the printer 100. The printer 100 allows the user to print the printable number. The user can purchase a printable number. When the printable number is purchased, the service server 500 assigns the printable number updated by the purchase to the printer 100. The payment server 700 processes the payment for the purchase of the printable number. The connection server 600 establishes a constant connection with the printer 100. Any method may be used to maintain the constant connection. For example, the connection server 600 and the printer 100 establish a communication session for a constant connection according to the Extensible Messaging and Presence Protocol (XMPP). The connection server 600 and the printer 100 maintain a constant connection by performing periodic KeepAlive communication. Communication between the printer 100 and the service server 500 is performed via the connection server 600. These devices 100, 200, 500, 600, and 700 are connected to a network NT. The network NT may include the so-called Internet. The network NT may also include a so-called local network.
[0012] The printer 100 has a processor 110, a storage device 115, a display unit 140, an operation unit 150, a print execution unit 160, and a communication interface 180. These elements are connected to one another via a bus. The storage device 115 includes a volatile storage device 120 and a non-volatile storage device 130. The processor 110 is a device that performs data processing, such as a CPU. The volatile storage device 120 is, for example, a DRAM, and the non-volatile storage device 130 is, for example, a flash memory.
[0013] The display unit 140 is a device that displays images, such as a liquid crystal display, an organic EL display, or an LED display. The operation unit 150 is a device that receives user operations, such as a button, a lever, or a touch panel overlaid on the display unit 140. The communication interface 180 is an interface for communicating with other devices (for example, the communication interface 180 includes one or more of a USB interface, a wired LAN interface, and an IEEE802.11 wireless interface). In this embodiment, the communication interface 180 is connected to a network NT.
[0014] The print execution unit 160 is a device that prints an image using a printing material (e.g., toner or ink) on a sheet such as paper (an example of a print medium) using a predetermined method (e.g., a laser method or an inkjet method).
[0015] The nonvolatile storage device 130 stores a program PG1 and control data 131. The program PG1 is stored in advance as firmware in the nonvolatile storage device 130 by the manufacturer of the printer 100. The processor 110 executes the program PG1 to perform various processes, which will be described later. The control data 131 will be described in detail later.
[0016] The terminal device 200 has a processor 210, a storage device 215, a display unit 240, an operation unit 250, and a communication interface 280. These elements are connected to each other via a bus. The storage device 215 includes a volatile storage device 220 and a non-volatile storage device 230. The processor 210 is a device that performs data processing, such as a CPU. The volatile storage device 220 is, for example, a DRAM, and the non-volatile storage device 230 is, for example, a flash memory.
[0017] The display unit 240 is a device that displays images, such as a liquid crystal display, an organic EL display, or an LED display. The operation unit 250 is a device that receives user operations, such as a button, a lever, or a touch panel overlaid on the display unit 240. The communication interface 280 is an interface for communicating with other devices (for example, the communication interface 280 includes one or more of a USB interface, a wired LAN interface, and an IEEE802.11 wireless interface). In this embodiment, the communication interface 280 is connected to a network NT.
[0018] The non-volatile storage device 230 stores a program PG2 and account data 231. Although not shown, an operating system (e.g., ANDROID (registered trademark), iOS (registered trademark), etc.) runs on the terminal device 200. Various applications can run on the operating system. The program PG2 is an application program that runs on the operating system. Alternatively, the program PG2 may be an application program that runs on another application (such a program is also called a mini program). The program PG2 is downloaded to the terminal device 200 from a server (not shown). Alternatively, the program PG2 may be provided in a state where it is stored in a portable storage device (e.g., a CD-ROM, a USB flash drive, etc.). The processor 210 executes the program PG2 to perform various processes, which will be described later. Details of the account data 231 will be described later.
[0019] The servers 500, 600, and 700 each include a processor 510, 610, or 710, a storage device 515, 615, or 715, and a communication interface 580, 680, or 780. These elements are connected to one another via a bus. The storage device 515, 615, or 715 includes a volatile storage device 520, 620, or 720, and a nonvolatile storage device 530, 630, or 730, respectively. The processor 510, 610, or 710 is a device that performs data processing, such as a CPU. The volatile storage device 520, 620, or 720 is, for example, a DRAM, and the nonvolatile storage device 530, 630, or 730 is, for example, a flash memory. The communication interfaces 580, 680, and 780 are interfaces for communicating with other devices (for example, each of the communication interfaces 580, 680, and 780 includes one or more of a USB interface, a wired LAN interface, and an IEEE802.11 wireless interface). In this embodiment, the communication interfaces 580, 680, and 780 are each connected to a network NT.
[0020] The nonvolatile storage devices 530, 630, 730 previously store programs PG5, PG6, PG7 for operating the corresponding servers 500, 600, 700. The processors 510, 610, 710 execute various processes, which will be described later, in accordance with the programs PG5, PG6, PG7.
[0021] The nonvolatile storage device 530 of the service server 500 further stores user data 531, service data 532, and history data 533. The nonvolatile storage device 630 of the connection server 600 further stores connection data 631. The nonvolatile storage device 730 of the payment server 700 further stores payment data 731. Details of these data will be described later.
[0022] Although not shown, a server operating system runs on the servers 500, 600, and 700. The programs PG5, PG6, and PG7 may be application programs that run on the operating system. Alternatively, the programs PG5, PG6, and PG7 may be programs embedded in the operating system.
[0023] 2(A) to 2(C) are schematic diagrams showing examples of data 131, 531, and 532, respectively. FIG. 2(A) shows control data 131 stored in the nonvolatile storage device 130 of the printer 100 (FIG. 1). The control data 131 indicates a cumulative charge number D11 and a cumulative print number D12. Hereinafter, the cumulative charge number D11 will also be referred to simply as the cumulative charge number D11. Furthermore, the cumulative print number D12 will also be referred to simply as the cumulative print number D12. The cumulative charge number D11 is the cumulative value of the number of printable sheets granted to the printer 100. The charge number indicates the number of printable sheets granted to the printer 100. The cumulative number of printed sheets D12 is the cumulative value of the number of sheets printed by the printer 100. As will be described in detail later, the processor 110 of the printer 100 updates the cumulative charge count D11 in response to instructions from the service server 500, and updates the cumulative print count D12 in response to printing execution. The printer 100 is requested to print various numbers of sheets NP (NP is an integer greater than or equal to 1). The processor 110 executes printing when "NP+D12" is less than or equal to "D11".
[0024] FIG. 2(B) shows user data 531 stored in the nonvolatile storage device 530 of the service server 500 (FIG. 1). The user data 531 shows the correspondence between a user identifier UID and a printer identifier PID. The user identifier UID is an identifier for a user who uses a printer (e.g., printer 100). The printer identifier PID is an identifier for a printer (e.g., printer 100). The correspondence between the user identifier UID and the printer identifier PID is registered in the user data 531 when a user applies to the print service provider. As will be described in detail later, the number of printable sheets is managed (e.g., purchased) in association with the user identifier UID.
[0025] FIG. 2(C) shows service data 532 stored in the nonvolatile storage device 530 of the service server 500 (FIG. 1). The service data 532 shows a cumulative charge count D51, a reflected cumulative charge count D52, a cumulative charge addition timestamp D53, a cumulative charge reflection timestamp D54, and a cumulative print count D55. Hereinafter, the cumulative charge count D51 will also be referred to simply as the cumulative charge count D51. The reflected cumulative charge count D52 will also be referred to simply as the reflected cumulative charge count D52. The cumulative print count D55 will also be referred to simply as the cumulative print count D55. An information set DS including five pieces of information D51-D55 indicates an information set associated with one printer identifier PID. The service data 532 indicates multiple information sets DS for multiple printer identifiers PID.
[0026] The cumulative charge number D51 is a cumulative value of the charge number, and increases with the purchase of the printable number. As will be described in detail later, the processor 510 of the service server 500 (FIG. 1) updates the cumulative charge number D51 in accordance with the purchase of the printable number. In accordance with the update of the cumulative charge number D51, the processor 510 sends an instruction to the printer 100 to update the cumulative charge number D11 (FIG. 2(A)). The processor 110 of the printer 100 updates the cumulative charge number D11 to the same value as the cumulative charge number D51.
[0027] The reflected cumulative charge number D52 is the cumulative charge number that has been reflected in the cumulative charge number D11 of the control data 131 (FIG. 2(A)) of the printer 100 (FIG. 1). As will be described in detail later, the processor 110 of the printer 100 notifies the service server 500 of the result of updating the cumulative charge number D11. If the notification indicates that the update was successful, the processor 510 of the service server 500 updates the reflected cumulative charge number D52 to the same value as the cumulative charge number D11 (D52 = D11 = D51). If the update of the cumulative charge number D11 of the printer 100 has not been completed, the reflected cumulative charge number D52 may differ from the cumulative charge number D51.
[0028] The cumulative charge addition timestamp D53 indicates the date and time when the cumulative charge number D51 was updated. The cumulative charge reflection timestamp D54 indicates the date and time when the reflected cumulative charge number D52 was updated. The processor 510 can obtain the current date and time by referencing a timer (not shown) provided in the service server 500.
[0029] The cumulative number of prints D55 is the cumulative value of the number of sheets printed by the printer 100 (FIG. 1). As will be described in detail later, the processor 110 of the printer 100 requests the service server 500 to update the cumulative number of prints D55 in response to the execution of printing. In response to the request, the processor 510 of the service server 500 updates the cumulative number of prints D55 to the same value as the cumulative number of prints D12.
[0030] Although not shown, history data 533 of service server 500 (FIG. 1) indicates the usage history of each printer. The usage history indicated by history data 533 includes the date on which the printer was first used. Various methods may be used to determine the date on which the printer was first used. For example, the date on which the printer was first used may be the date on which the printer was registered in user data 531 (FIG. 2(B)). Alternatively, the date on which the printer was first used may be the date on which communication from the printer first reached service server 500. When the printer is first used, processor 510 adds data indicating the date on which the printer was first used to history data 533.
[0031] A2.Printing process: Fig. 3 is a sequence diagram showing an example of printing processing. Fig. 3 shows an example of processing when printer 100 executes printing. At the top of the figure, an example of pre-printing service data 532 and control data 131 is shown. In this example, D51 = D52 = D11 = 1000, and D55 = D12 = 943.
[0032] In S110, the printer 100 receives a print request from an external device. The print request sending device may be any device capable of communicating with the printer 100. For example, if the communication interface 180 of the printer 100 (FIG. 1) includes a USB interface, the print request sending device may be an external device (e.g., a personal computer) connected to the USB interface via a wired connection. If the communication interface 180 includes an IEEE802.11 wireless interface, the print request sending device may be an external device (e.g., a smartphone, tablet computer, etc.) connected wirelessly to the wireless interface. The printer 100 may also receive a print request from the service server 500. The service server 500 may send a print request to the printer 100 in response to an instruction from a user's terminal device (e.g., terminal device 200).
[0033] Printing requirements may include various types of data. In this embodiment, the printing requirements include image data of an image to be printed (referred to as target image data). The data format of the target image data may be any data format. The target image data may be, for example, bitmap data (such as JPG (Joint Photographic Experts Group), PNG (Portable Network Graphics)), or image data described in a page description language (such as PDF (Portable Document Format), XPS (XML Paper Specification)). Hereinafter, it is assumed that the target image data represents NP images to be printed on NP sheets (NP is an integer of 1 or more). The number NP is referred to as the number of printed sheets NP.
[0034] In S115, the processor 110 refers to the control data 131 (FIG. 2(A)) and acquires the cumulative charge number D11 and the cumulative print number D12.
[0035] In S120, the processor 110 determines whether the sum of the cumulative print number D12 and the number of printed sheets NP is less than or equal to the cumulative charge number D11. D11 < D12 + NP indicates that the cumulative print number D12 exceeds the cumulative charge number D11 due to printing NP sheets. In this case (S120: No), the processor 110 ends the process without executing printing. The processor 110 may execute a process of notifying the user that printing has not been executed. For example, the processor 110 may display information indicating a shortage of the cumulative charge number D11 on the display unit 140.
[0036] If D12+NP is less than or equal to D11 (S120: Yes), in S125, processor 110 causes print execution unit 160 to print NP sheets using the target image data. For example, processor 110 generates print data using the target image data. Processor 110 supplies the print data to print execution unit 160. Print execution unit 160 performs printing in accordance with the print data. The data format of the print data may be any data format suitable for print execution unit 160. Alternatively, processor 110 may supply the target image data to print execution unit 160 (i.e., print execution unit 160 may be configured to print an image using the target image data).
[0037] In this way, printing is permitted when the number of prints NP is equal to or less than “D11-D12.” The difference (D11-D12) between the cumulative charge number D11 and the cumulative print number D12 indicates the number of printable sheets.
[0038] In S130, processor 110 updates control data 131. Specifically, processor 110 adds the number of printed sheets NP to the cumulative number of printed sheets D12. For example, if the cumulative number of printed sheets D12 before the update is 943 and the number of printed sheets NP is 10, the cumulative number of printed sheets D12 after the update is 953 (=943+10).
[0039] In S135, the processor 110 sends an update request addressed to the service server 500 to the connection server 600. The update request includes data indicating the printer identifier PID associated with the printer 100 and data indicating the updated cumulative print count D12.
[0040] In S140, the processor 610 of the connection server 600 transmits the update request from the printer 100 to the service server 500.
[0041] In S145, the processor 510 of the service server 500 updates the service data 532 in response to the update request. In this embodiment, the processor 510 sets the cumulative print count D55 of the information set DS corresponding to the printer identifier PID indicated by the update request to the same value as the cumulative print count D12 indicated by the update request. For example, if D12=953, the cumulative print count D55 is set to 953. The processing of FIG. 3 then ends.
[0042] A3.Purchase process: FIG. 4 is a sequence diagram showing an example of the process for purchasing printable sheets. In this embodiment, printable sheets can be purchased for each of multiple printers. Hereinafter, it is assumed that the printable sheets are purchased for printer 100. An example of pre-purchase service data 532 is shown at the top of the diagram. In this example, D51 = D52 = 1000.
[0043] In S210, the user operates the operation unit 250 of the terminal device 200 (FIG. 1) to input a purchase instruction indicating the number of sheets to be purchased. In response to the purchase instruction, the processor 210 of the terminal device 200 transmits a request to increase the number of printable sheets to the service server 500. The increase request includes data indicating a user identifier UID, data indicating a printer identifier PID, and data indicating the number of sheets to be purchased. In this embodiment, the user identifier UID and printer identifier PID are input in advance to the terminal device 200 by the user. The account data 231 (FIG. 1) indicates the input information UID and PID. The processor 210 acquires the information UID and PID by referencing the account data 231. Alternatively, the user may input a purchase instruction indicating information specifying either or both the user identifier UID and the printer identifier PID. Hereinafter, it is assumed that the printer identifier PID indicates the printer 100.
[0044] In S215, the processor 510 of the service server 500 executes a payment process for the additional request by communicating with the payment server 700. The payment process is performed based on the user identifier UID and the purchased quantity indicated in the additional request. Through the payment process, an amount equivalent to the purchased quantity is paid from the user corresponding to the user identifier UID to the printing service provider. The payment process may be various processes suitable for the payment server 700. For example, the processor 510 of the service server 500 transmits a payment request including data indicating the user identifier UID and the amount equivalent to the purchased quantity to the payment server 700. The processor 710 of the payment server 700 executes a payment process in response to the payment request. The payment data 731 indicates information used in the payment process (e.g., the correspondence between the user identifier UID and a transfer account). The processor 510 of the service server 500 may proceed with the payment process in cooperation with the terminal device 200 in addition to the payment server 700.
[0045] In S220, the processor 510 of the service server 500 updates the information set DS associated with the printer identifier PID in the service data 532 (FIG. 2(C)). Specifically, the processor 510 adds the number of purchases to the cumulative charge number D51. In the example of FIG. 4, the cumulative charge number D51 before the update is 1000, and the number of purchases is 100. In this case, the cumulative charge number D51 after the update is 1100 (1000 + 100). The processor 510 also updates the cumulative charge addition timestamp D53 to the current date and time, and the purchase process then ends.
[0046] In this way, the cumulative charge number D51 increases through the purchase process. The reflected cumulative charge number D52 is updated through the reflection process described below. After the purchase process, the cumulative charge number D51 differs from the reflected cumulative charge number D52 until the reflected cumulative charge number D52 is updated.
[0047] A4. Reflection process: 5 is a sequence diagram showing an example of a process for reflecting the cumulative recharge number. An example of control data 131 before update is shown at the top of the diagram. Here, D11=1000.
[0048] In S310, the processor 510 of the service server 500 refers to the service data 532 (FIG. 2C). As described in FIG. 2C, the service data 532 indicates a plurality of information sets DS for a plurality of printer identifiers PID. FIG. 5 shows the processing for one printer identifier PID (here, the printer identifier PID of the printer 100). Although not shown, the processor 510 executes the processing of FIG. 5 for each of the plurality of printer identifiers PID.
[0049] In S310, processor 510 determines whether cumulative charge number D51 is the same as reflected cumulative charge number D52. If D51=D52 (S310: Yes), processor 510 ends the reflection processing of FIG.
[0050] If the cumulative charge number D51 differs from the reflected cumulative charge number D52 (S310: No), in S320 the processor 510 sends an update instruction addressed to the printer 100 to the connection server 600. The update instruction includes data indicating the cumulative charge number D51 and data indicating the printer identifier PID of the destination printer 100. Hereinafter, it is assumed that D51=1100.
[0051] In S325, the processor 610 of the connection server 600 transmits the update instruction received from the service server 500 to the printer 100. The connection data 631 (FIG. 1) indicates the correspondence between the printer identifier PID and information indicating the location on the network (e.g., IP address) of the printer connected to the connection server 600 via a constant connection. The processor 610 references the connection data 631 and transmits the update instruction to the printer associated with the printer identifier PID indicated by the update instruction.
[0052] In S330, in response to the update instruction, the processor 110 of the printer 100 updates the cumulative charge number D11 of the control data 131 to the same value as the cumulative charge number D51 indicated by the update instruction (here, the cumulative charge number D11 is updated from 1000 to 1100).
[0053] In S335, the processor 110 transmits an update result notification addressed to the service server 500 to the connection server 600. The update result notification includes data indicating the updated cumulative charge number D11 (hereinafter, the update result notification may also be simply referred to as a result notification).
[0054] In S340, the processor 610 of the connection server 600 transmits the result notification received from the printer 100 to the service server 500.
[0055] In S350, the processor 510 of the service server 500 determines whether or not the cumulative charge number D51 has been successfully reflected in the control data 131 of the printer 100. In this embodiment, the processor 510 determines that the reflection has been successful when the service server 500 receives a result notification from the printer 100. The processing to be performed when it is determined that the reflection has not been successful will be described later.
[0056] If it is determined that the reflection was successful (S350: Yes), in S370, processor 510 updates the reflected cumulative charge number D52 to the same value as the cumulative charge number D11 indicated by the result notification. In the example of Fig. 5, the cumulative charge number D11 is 1100. In this case, the updated reflected cumulative charge number D52 is 1100. Processor 510 also updates the cumulative charge reflection timestamp D54 to the current date and time.
[0057] In S380, the processor 510 transmits a notification of completion of the reflection to the terminal device 200. Then, the reflection process of FIG. 5 ends.
[0058] The processor 510 of the service server 500 repeatedly executes the reflection process. As a result, processor 510 can reflect the cumulative charge number D51 in the cumulative charge number D11 of printer 100 in accordance with an increase in the cumulative charge number D51 due to the purchase process. Processor 510 similarly repeats the reflection process for other printers as well.
[0059] FIG. 6 is a sequence diagram showing an example of the reflection process. FIG. 6 shows an example in which the reflection of the cumulative charge number D51 is not successful. The reflection of the cumulative charge number D51 can fail due to various reasons. For example, if the printer 100 is powered off, the cumulative charge number D11 of the printer 100 is not updated. Furthermore, if there is a problem with the network connecting the printer 100 and the connection server 600, the printer 100 cannot receive an update instruction. S310, S320, and S325 in the figure are the same as S310, S320, and S325 in FIG. 5, respectively. However, in S325 in FIG. 6, it is assumed that the printer 100 cannot receive an update instruction from the connection server 600.
[0060] After sending the update instruction (S325), the processor 610 of the connection server 600 is unable to receive a result notification from the printer 100. In this case, in S345, the processor 610 sends an error notification to the service server 500. The error transmission condition for sending the error notification may be various conditions that indicate that the update instruction has not been received by the printer 100. For example, the error transmission condition may be that the connection server 600 does not receive a result notification from the printer 100 before a predetermined first waiting time has elapsed after sending the update instruction.
[0061] In S350, the processor 510 of the service server 500 determines whether the update of the cumulative charge number D51 was successful. In this embodiment, the processor 510 determines that the update was not successful if the service server 500 receives an error notification from the connection server 600. In this embodiment, the connection server 600 sends either a result notification from the printer (FIG. 5: S340) or an error notification (FIG. 6: S345) to the service server 500. Therefore, the condition for determining that the update was not successful is the same as the service server 500 not receiving a result notification from the printer 100. Note that the processor 510 may determine that the update was not successful if, after sending the update instruction (S320), the processor 510 does not receive a result notification from the printer 100 before a predetermined second waiting time has elapsed. Note that the condition that the service server 500 does not receive a result notification from the printer 100 is an example of a condition indicating that the update instruction was not received by the printer 100.
[0062] If it is determined that the update was not successful (S350: No), in S410 the processor 510 sends an error notification to the terminal device 200. In S420, the processor 210 of the terminal device 200 displays error information indicating the error on the display unit 140. The error information may include, for example, a message indicating that the cumulative charge number D11 of the printer 100 has not been updated. A user who observes the error information may take action to resolve the error (for example, switching the power state of the printer 100, restarting a network device connected to the printer 100, etc.).
[0063] The error notification (S410) may include data indicating various information such as the cause of the error, the cumulative charge number D51, the reflected cumulative charge number D52, etc. Then, in S420, the processor 210 may display on the display unit 140 the information indicated by the data included in the error notification.
[0064] After S410, in S430, processor 510 of service server 500 adds the update instruction to the retransmission targets. For example, processor 510 stores update instruction data indicating the update instruction for the retransmission target in storage device 515 (e.g., non-volatile storage device 530). The update instruction data may include data indicating the cumulative charge number D51 and data indicating the printer identifier PID of the destination printer. Then, processor 510 ends the reflection process. In this embodiment, the processor 510 can execute the reflection process (FIG. 5 or FIG. 6) for each of the multiple printer identifiers PID. Therefore, multiple update instructions for multiple printers can be subject to retransmission. Note that the update instructions subject to retransmission are retransmitted by the retransmission process described below.
[0065] A5.Resend process: 7 is a flowchart showing an example of the retransmission process. The processor 510 of the service server 500 (FIG. 1) executes the retransmission process to retransmit the update instruction to be retransmitted (see S430 in FIG. 6) to the printer.
[0066] At S530, processor 510 executes a retransmission determination process. The retransmission determination process is a process for determining whether or not an update instruction satisfies a retransmission condition, which is a condition for retransmission. FIG. 8 is a flowchart showing an example of the retransmission determination process. FIG. 8 shows the process for one update instruction. When multiple update instructions are to be retransmitted, processor 510 executes the process of FIG. 8 for each update instruction.
[0067] In this embodiment, the retransmission condition is met when any one of a plurality of predetermined specific conditions is met. The plurality of specific conditions are judged in a predetermined order of priority. If all of the specific conditions are not met, the retransmission condition is not met. Here, the update instruction that is the target of the retransmission judgment process is also referred to as the target update instruction. The printer that is the destination of the target update instruction is also referred to as the target printer. In the following description, the target printer is assumed to be printer 100 (printer 100 is also referred to as the target printer 100).
[0068] In S615, the processor 510 determines whether a first specific condition is satisfied. The first specific condition may be various conditions. In this embodiment, the first specific condition is that the time difference between the latest timestamp of a communication from the target printer 100 and the current time is less than or equal to a predetermined time threshold (e.g., 30 minutes). This condition indicates that the target printer 100 is likely to be online, i.e., that communication between the service server 500 and the target printer 100 is likely to be possible. This condition is an example of a communication specific condition related to communication between the service server 500 and the printer 100. The latest timestamp is a timestamp different from the cumulative charge reflection timestamp D54 (FIG. 2(C)) and is a timestamp of any communication from the target printer. A printer (e.g., the printer 100) may perform various communications with the service server 500. For example, the processor 110 of the printer 100 may notify the service server 500 that communication is possible when the power of the printer 100 is switched from off to on. The processor 510 of the service server 500 adds timestamp data indicating the latest timestamp of communication from the printer 100 to the history data 533 (FIG. 1). In S615, the processor 510 refers to the history data 533 and determines whether the first specific condition is satisfied.
[0069] If the first specific condition is met (S615: Yes), in S618, the processor 510 determines that the focus update instruction should be retransmitted with the first priority, and ends the processing of FIG.
[0070] If the first specific condition is not met (S615: No), in S625, the processor 510 determines whether the second specific condition is met. The second specific condition may be various conditions. In this embodiment, the second specific condition is that the number of usable days of the target printer 100, estimated from the transition history of the cumulative print count D55 (FIG. 2C), is less than or equal to a predetermined threshold number of days (e.g., seven days). The number of usable days is an estimate of the number of days for which printing is possible using the target printer 100 when the cumulative charge count D51 is not reflected in the cumulative charge count D11 of the target printer 100. In other words, the number of usable days is an estimate of the number of days until the cumulative print count D12 reaches the cumulative charge count D11 if the cumulative charge count D11 of the target printer 100 is not updated and the past usage frequency of the target printer 100 continues into the future. When the number of usable days is small, it is preferable to update the cumulative charge count D11 frequently.
[0071] In this embodiment, the number of usable days is estimated as follows: Processor 510 calculates the number of days in use, which is the number of days from the start date of use of printer 100 to the present. Processor 510 references history data 533 (FIG. 1) to obtain the start date of use of the target printer 100. Processor 510 calculates the number of pages printed per day by dividing the cumulative number of pages printed D55 by the number of days in use. Processor 510 calculates an estimate of the unupdated number of printable pages by subtracting the cumulative number of pages printed D55 from the reflected cumulative charge number D52. Processor 510 calculates the number of usable days by dividing the calculated number of printable pages by the number of pages printed per day.
[0072] In this way, the number of available days is the number of days estimated using the usage history of printer 100 (here, the cumulative number of prints D55 and the number of days used). Specifically, the number of available days is the number of days estimated to be required for printing the number of printable sheets (D52-D55) indicated by the reflected cumulative charge number D52 (i.e., the unupdated cumulative charge number D11) and the cumulative number of prints D55. The second specific condition in this embodiment is an example of a number-of-days condition indicating that the number of available days is equal to or less than the number-of-days threshold.
[0073] If the second specific condition is met (S625: Yes), in S628, the processor 510 determines that the focus update instruction should be retransmitted with the second priority, and ends the processing of FIG.
[0074] If the second specific condition is not satisfied (S625: No), in S633, the processor 510 acquires the connection history of the focused printer 100. The connection history indicates the history of the times when the focused printer 100 was online and the times when it was offline. The connection history may be acquired by any method. In this embodiment, the processor 510 stores communication history data indicating the communication history between the service server 500 and the focused printer 100 in the storage device 515 (e.g., the non-volatile storage device 530) (not shown). The processor 510 updates the communication history data every time it communicates with the focused printer 100. The processor 510 acquires the connection history by referencing the communication history data. Alternatively, the processor 510 may inquire of the connection server 600 about the history of the time during which a constant connection with the focused printer 100 was maintained. The processor 510 may then acquire the connection history by referencing the time during which the constant connection was maintained.
[0075] In S635, the processor 510 determines whether a third specific condition is met. The third specific condition may be various conditions. In this embodiment, the third specific condition is that the current time is within the estimated online time. The estimated online time is the time during which the target printer 100 is likely to be online.
[0076] The schedule for switching the printer's power state may be roughly the same regardless of the day. For example, the printer's power may be switched from off to on at 9:00 a.m. and from on to off at 5:00 p.m. This switching may be repeated every day. In this case, the target printer 100 is likely to be online between 9:00 a.m. and 5:00 p.m., meaning that communication between the service server 500 and the target printer 100 is likely to be possible. The third specific condition in this embodiment is an example of a communication specific condition related to communication between the service server 500 and the printer 100. If the processor 510 resends the target update instruction within the estimated online time, the target printer is likely to be able to receive the target update instruction.
[0077] The processor 510 estimates the estimated online time using the connection history acquired in S633. Any method may be used to estimate the estimated online time. For example, the processor 510 divides a day into multiple time segments and calculates the online rate for each time segment using the connection history. The multiple time segments may be, for example, 24 segments each having an hour duration. The online rate is, for example, the proportion of online time out of the total time during the period in which the target printer 100 is in use. The online rate for one time segment having an hour duration from 10:00 to 11:00 is calculated, for example, as follows: Assume that 100 days have passed since the target printer 100 began to be used. In this case, the total time for one time segment is 1 hour * 100 days = 100 hours. The processor 510 calculates the total online time for the time segment from 10:00 to 11:00. For example, if one or more communications occur during the hour from 10:00 to 11:00, the processor 510 may consider the entire hour to be online time. If the total online time in the time segment from 10:00 to 11:00 is 80 hours out of the total time (here, 100 hours), the online rate is 80% (=80 hours / 100 hours). The processor 510 adopts the entire time segment having an online rate equal to or greater than a predetermined online threshold (e.g., 70%) as the estimated online time.
[0078] If the third specific condition is satisfied (S635: Yes), in S638, the processor 510 determines that the focus update instruction should be retransmitted with the third priority, and ends the processing of FIG.
[0079] If the third specific condition is not satisfied (S635: No), in S645, the processor 510 determines whether the fourth specific condition is satisfied. The fourth specific condition may be various conditions. In this embodiment, the fourth specific condition is that the time difference between the cumulative charge addition timestamp D53 (FIG. 2C) and the cumulative charge reflection timestamp D54 is equal to or greater than a predetermined time difference threshold (e.g., one day). This time difference indicates the elapsed time from the last update of the cumulative charge number D11 of the printer 100 to the increase of the cumulative charge number D51 due to a purchase process. A large time difference indicates that the cumulative charge number D11 of the printer 100 has not been updated for a long time. Therefore, when the time difference is large, it is preferable to update the cumulative charge number D11 frequently. Note that the cumulative charge reflection timestamp D54 is an example of the update history of the cumulative charge number D11 indicated by the control data 131 stored in the storage device 115 (here, the non-volatile storage device 130) of the printer 100. The fourth specific condition of this embodiment is an example of an update specific condition that is a condition related to the update history of the cumulative charge number D11.
[0080] If the fourth specific condition is satisfied (S645: Yes), in S648, the processor 510 determines that the focus update instruction should be retransmitted with the fourth priority, and ends the processing of FIG.
[0081] If the fourth specific condition is not satisfied (S645: No), processor 510 determines in S658 that the retransmission condition is not satisfied, and ends the processing in Fig. 8. In this case, the priority of the noted update instruction is not determined.
[0082] 8, i.e., after S530 in FIG. 7, at S540, the processor 510 executes a priority order retransmission process. FIG. 9 is a flowchart showing an example of the priority order retransmission process. At S710, the processor 510 transmits an update instruction of the first priority. At S720, the processor 510 transmits an update instruction of the second priority. At S730, the processor 510 transmits an update instruction of the third priority. At S740, the processor 510 transmits an update instruction of the fourth priority. Then, the processor 510 ends the process of FIG. 9, i.e., S540 in FIG. 7. In this way, the processor 510 retransmits update instructions that satisfy the retransmission condition in order of priority. Note that the processor 510 excludes the retransmitted update instructions from the list of instructions to be retransmitted.
[0083] In this way, when multiple update instructions are to be resent, processor 510 transmits the update instructions in order of priority. After transmitting the update instructions, the process following S320 in Fig. 5 or Fig. 6 is executed for the transmitted update instructions. If the resent update instruction is not received by the printer again (Fig. 6: S350: No), processor 510 adds the update instruction to the list of instructions to be resent again (S430).
[0084] After S540 (FIG. 7), the processor 510 proceeds to S530. Then, the processor 510 repeatedly executes the process of FIG. 7. This allows the processor 510 to resend the target update instruction to the target printer 100 in response to the resend condition related to the target printer 100 being satisfied.
[0085] An upper limit may be set for the total number of update instructions that can be transmitted in one prioritized retransmission process (S540 (FIG. 7), FIG. 9). For example, in S540, processor 510 may select ND (ND is an integer equal to or greater than 1) update instructions in order of priority from among a plurality of update instructions that satisfy the retransmission condition. Then, processor 510 may execute the process of FIG. 9 for the ND update instructions. Processor 510 may adjust the number ND of update instructions each time it executes S540. For example, processor 510 may determine the number ND as the number of update instructions that can be transmitted in one S540 process (e.g., the maximum number that can be transmitted) each time it executes S540. In this case, if the load on service server 500 is high, number ND may be reduced. Alternatively, number ND may be determined in advance. Processor 510 may also repeat S530 and S540 in parallel. In this case, too, in S540, processor 510 may select ND update instructions in order of priority and transmit the selected ND update instructions in order of priority. In either case, if an update instruction with a lower priority is waiting to be retransmitted and another update instruction with a higher priority satisfies the retransmission condition, processor 510 retransmits the update instruction with the higher priority first. It is also preferable that processor 510 retransmits the update instruction without adding a waiting time. This configuration allows processor 510 to quickly reflect updates to cumulative charge number D51 in cumulative charge number D11 of printer 100.
[0086] As described above, in this embodiment, the processor 510 of the service server 500 (FIG. 1) executes the following process. In S210 (FIG. 4), the processor 510 acquires from the terminal device 200 a request to add the number of printable sheets of the printer 100. The number of printable sheets is an example of the usable amount of the printer 100. In S220, the processor 510 updates the cumulative charge number D51 of the service data 532 in response to the addition request. In response to the update of the cumulative charge number D51, the determination result of S310 (FIGS. 5 and 6) becomes No, and the processor 510 executes S320. Thus, the processor 510 executes S320 in response to the addition request. In S320, the processor 510 transmits an update instruction addressed to the printer 100. This update instruction is an instruction to update the cumulative charge number D11 indicated by the control data 131 stored in the storage device 115 (here, the non-volatile storage device 130) of the printer 100. 3, the difference between the cumulative charge number D11 and the cumulative print number D12 indicates the number of printable sheets. In this way, the instruction to update the cumulative charge number D11 is an example of an instruction to update the number of printable sheets.
[0087] 6, if the service server 500 does not receive a result notification from the printer 100, i.e., if the update instruction of S320 is not received by the printer 100, the processor 510 adds the update instruction to the list of items to be resent in S430. As described in FIG. 7, in response to the resend condition related to the target printer 100 being satisfied in S530, the processor 510 resends the update instruction addressed to the target printer 100 in S540. Thus, in this embodiment, the processor 510 can appropriately resend an update instruction to the printer if the update instruction is not received by the printer.
[0088] The result notification of S335 and S340 (FIG. 5) includes data indicating the updated cumulative charge number D11. The data indicating the updated cumulative charge number D11 is an example of data indicating that updating of the cumulative charge number D11 based on the update instruction (i.e., updating of the number of printable sheets (D11-D12)) has been completed. Then, as explained in S350 (FIG. 6), if the service server 500 does not receive a result notification from the printer 100 (S350: No), the processor 510 adds the update instruction to the list of items to be resent in S430. Thus, in this embodiment, if updating of the cumulative charge number D11 of the printer 100 has not been completed, the processor 510 can resend the update instruction to the printer 100.
[0089] 8, if the first specific condition is satisfied (S615: Yes), the retransmission condition is satisfied. As described above, the first specific condition in this embodiment is an example of a communication specific condition related to communication between the service server 500 and the printer 100. The first specific condition indicates that there is a high possibility that communication between the service server 500 and the target printer 100 is possible. In other words, the first specific condition is configured such that, when the first specific condition is satisfied, there is a high possibility that communication between the service server 500 and the printer 100 is possible compared to when the first specific condition is not satisfied. Therefore, the processor 510 can resend the update instruction addressed to the printer 100 when the first specific condition is satisfied, that is, when there is a high possibility that communication with the printer 100 is possible.
[0090] 8, if the third specific condition is satisfied (S635: Yes), the retransmission condition is satisfied. As described above, the third specific condition in this embodiment is an example of a communication specific condition related to communication between the service server 500 and the printer 100. The third specific condition indicates that there is a high possibility that communication between the service server 500 and the target printer 100 is possible. In other words, the third specific condition is configured such that, when the third specific condition is satisfied, there is a high possibility that communication between the service server 500 and the printer 100 is possible compared to when the third specific condition is not satisfied. Therefore, the processor 510 can resend the update instruction addressed to the printer 100 when the third specific condition is satisfied, that is, when there is a high possibility that communication with the printer 100 is possible.
[0091] As shown in FIG. 8, if the fourth specific condition is met (S645: Yes), the resend condition is met. As described above, the fourth specific condition in this embodiment is an example of an update specific condition related to the update history of the cumulative charge number D11 of the printer 100 (in this embodiment, the cumulative charge reflection timestamp D54). In this embodiment, the fourth specific condition indicates that the cumulative charge number D11 of the printer 100 has not been updated for a long period of time. If the fourth specific condition is met, it is preferable to update the cumulative charge number D11 quickly. In such a case, the processor 510 can resend the update instruction to the printer 100.
[0092] As shown in FIG. 8, if the second specific condition is satisfied (S625: Yes), the resend condition is satisfied. As described above, the second specific condition in this embodiment is an example of a days condition indicating that the number of usable days estimated using the printer 100's usage history (here, the cumulative print count D55 and the number of days used) is equal to or less than the threshold number of days. The number of usable days is the number of days estimated to be required for printing the number of printable sheets indicated by the reflected cumulative charge count D52 (i.e., the cumulative charge count D11 indicated by the printer 100's control data 131) and the cumulative print count D55 (usually the same as the printer 100's cumulative print count D12). The second specific condition indicates that if the printer 100's cumulative charge count D11 is not updated, the estimated period for which the printer 100 can continue to be used is short. In other words, if the second specific condition is satisfied, it is preferable to update the printer 100's cumulative charge count D11 quickly. In such a case, the processor 510 can resend an update instruction to the printer 100. The second specific condition is an example of a number-of-sheets specific condition related to the number of printable sheets.
[0093] 6, if the update instruction is not received by the printer 100 (S350: No), in S410 the processor 510 sends an error notification addressed to the terminal device 200. The error notification indicates that the update instruction was not received by the printer 100. In this way, the processor 510 can notify the terminal device 200 that the update instruction was not received by the printer 100.
[0094] In this embodiment, the purchase process (FIG. 4) and the reflection process (FIGS. 5 and 6) can be executed for each of multiple printers. Assume that the purchase process is executed for each of N printers (N is an integer equal to or greater than 2). In this case, the processor 510 acquires N addition requests at S210 N times of the purchase process (FIG. 4). The processor 510 executes the reflection process N times in response to the N addition requests. The processor 510 transmits N update instructions addressed to each of the N printers at S320 N times of the reflection process (FIGS. 5 and 6). If the update instructions are not received by the printers (FIG. 6: S350: No), as described in FIG. 7, the processor 510 resends the update instructions (S540) in accordance with the resend condition (S530). The resend condition is related to the printer that is the destination of the update instructions. Here, if the N update instructions are not received by the N printers, the processor 510 resends each of the N update instructions in accordance with N retransmission conditions associated with the N printers (S530) (S540). As shown in FIG. 8, each of the N retransmission conditions is satisfied when one of K (K is an integer greater than or equal to 2) specific conditions is satisfied (in this embodiment, K=4). Each of the K specific conditions is pre-associated with one of L (L is an integer greater than or equal to 2 and less than or equal to K) priorities. In this embodiment, L=4, and the priorities differ among the four specific conditions. As described with reference to FIGS. 7-9, when a retransmission condition corresponding to an update instruction is satisfied, the processor 510 resends the update instruction in order of the priorities associated with the satisfied specific conditions. Here, it is assumed that M retransmission conditions corresponding to M (M is an integer greater than or equal to 2 and less than or equal to N) update instructions out of the N update instructions are satisfied. In this case, processor 510 retransmits M update instructions in order of priority associated with specific conditions that correspond to the update instructions and that are satisfied. Therefore, when M retransmission conditions corresponding to the M update instructions are satisfied, processor 510 can retransmit M update instructions in an appropriate order.
[0095] B. Second Example: Fig. 10 is a flowchart showing another embodiment of the retransmission process. Processor 510 of service server 500 (Fig. 1) executes the retransmission process of Fig. 10 instead of the retransmission process of Fig. 7. In this embodiment, processor 510 retransmits an update instruction that satisfies the retransmission condition after a waiting time associated with the priority has elapsed. Details of the retransmission process will be described below.
[0096] At S510, processor 510 searches for an update instruction for which a waiting time has not been determined from among the update instructions to be retransmitted. If there is an update instruction for which a waiting time has not been determined (S510: Yes), at S520, processor 510 selects an update instruction for which a waiting time has not been determined. At S530, processor 510 executes retransmission determination processing for the update instruction selected at S520. The processing for one update instruction is the same as the processing in FIG. 8.
[0097] In S550, the processor 510 determines the waiting time for an update instruction that satisfies the retransmission condition among the update instructions for which the waiting time has not been determined. In this embodiment, the processor 510 determines the waiting time for the update instruction to be the waiting time that is previously associated with the priority determined in S530. The higher the priority, the shorter the waiting time. The correspondence relationship between the priority and the waiting time is, for example, as follows: First Priority: Zero 2nd priority: 1 hour 3rd priority: 12 hours 4th priority: 1 day
[0098] In S560, processor 510 starts measuring the time for each update instruction for which the waiting time was determined in S550. The measured time is substantially the same as the elapsed time since the retransmission condition was satisfied (hereinafter, the measured time is also referred to as the elapsed time). After S560, processor 510 proceeds to S570.
[0099] At S510, if there is no update instruction for which the waiting time is pending (S510: No), processor 510 skips S520-S560 and proceeds to S570.
[0100] In S570, processor 510 transmits an update instruction for which the waiting time has elapsed. Specifically, processor 510 compares the elapsed time with the waiting time for each update instruction. Then, if the elapsed time is equal to or greater than the waiting time, processor 510 transmits the update instruction. Processor 510 excludes the retransmitted update instruction from the update instruction to be retransmitted. Then, processor 510 proceeds to S510. Thereafter, processor 510 repeats the processing of FIG. 10.
[0101] After the update instruction is transmitted, the process following S320 in Fig. 5 or Fig. 6 is executed for the transmitted update instruction. If the retransmitted update instruction is not received by the printer again (Fig. 6: S350: No), processor 510 adds the update instruction to the list of items to be retransmitted (S430).
[0102] As described above, in this embodiment, whether or not the retransmission condition is satisfied is determined by the processing of FIG. 8. As shown in FIG. 8, the retransmission condition is satisfied when any one of K (K is an integer equal to or greater than 2) specific conditions is satisfied (in this embodiment, K=4). Each of the K specific conditions is previously associated with one of L (L is an integer equal to or greater than 2 and equal to or less than K) priorities. In this embodiment, L=4, and the priorities differ among the four specific conditions. If the update instruction is not received by printer 100 (FIG. 6: S350: No), processor 510 retransmits the update instruction by the retransmission processing of FIG. 10. Specifically, when a retransmission condition is satisfied, processor 510 determines a waiting time based on the priority associated with the satisfied specific condition (S530, S550). Then, processor 510 retransmits the update instruction addressed to the printer after the waiting time has elapsed (S560, S570). Therefore, processor 510 can retransmit the update instruction addressed to the printer at an appropriate time based on the priority. Furthermore, the transmission dates and times of the multiple update instructions are distributed over a wide time range. In this way, the concentration of communication load on the network within a short period of time caused by the retransmission of multiple update instructions is mitigated.
[0103] C. Third Example: FIG. 11 is a flowchart showing another embodiment of the reflection process. FIG. 11 shows an example of the process subsequent to S350 when the determination result of S350 (FIG. 6) is No. S410, S420, and S430 are the same as S410, S420, and S430 of FIG. 6, respectively. If the cumulative charge number D11 (FIG. 2(A)) of the printer 100 is not updated, printing by the printer 100 may become impossible due to a shortage of the cumulative charge number D11. In this case, after S420, the user may input a new purchase instruction into the terminal device 200 (S440). In response to the purchase instruction, the processor 210 of the terminal device 200 transmits a new addition request to the service server 500. The processor 510 of the service server 500 may execute S215 and S220 of FIG. 4 in response to this addition request. However, if there are update instructions (i.e., update instructions to be resent) that are not reflected in the cumulative charge count D11 of the printer 100, the addition request of S440 may be an excessive request. In this embodiment, the processor 510 of the service server 500 inquires of the user whether or not a new update instruction should be sent to the printer 100 in response to the addition request of S440.
[0104] After S440, in S445, the processor 510 of the service server 500 determines whether or not there remains an update instruction for the retransmission target related to the addition request of S440. The update instruction for the retransmission target related to the addition request is an update instruction for the retransmission target associated with the printer identifier PID indicated by the addition request.
[0105] If there are any update instructions remaining to be resent, i.e., if the update instructions have not been reflected (FIG. 11: S445: No), in S450, the processor 510 requests a user instruction from the terminal device 200 indicating whether or not a new update instruction should be sent to the printer 100.
[0106] In S455, the processor 210 of the terminal device 200 (FIG. 1) displays a confirmation screen on the display unit 240. Although not shown, the confirmation screen includes a message asking whether to add to the printable number based on the addition request of S440 or to cancel.
[0107] In S460, the user inputs a user instruction indicating whether to increase or cancel the printable number by operating operation unit 250. Processor 210 acquires the input user instruction.
[0108] In S465, the processor 210 transmits data indicating the user instruction to the service server 500.
[0109] In S470, processor 510 of service server 500 determines whether the user instruction indicates an increase in the printable number of sheets. If the user instruction indicates cancellation (S470: No), processor 510 ends the process.
[0110] If the user instruction indicates an increase in the printable number of sheets (S470: Yes), the processor 510 proceeds to S215 in FIG. 4. Similarly, if the determination result in S445 is Yes (i.e., if the update instruction has already been reflected), the processor 510 proceeds to S215 in FIG. 4. The processor 510 executes a payment process (S215) and an update process (S220) for the service data 532. Thereafter, as in each of the above embodiments, the processor 510 executes a reflection process (FIG. 5 or FIG. 6). In S320 (FIG. 5 or FIG. 6), the processor 510 transmits a new update instruction to the printer 100 in response to the addition request in S440 (FIG. 11).
[0111] As described above, the processor 510 of the service server 500 can acquire a new request to add a new printable page count to the printer from the terminal device when an update instruction has not been received by the printer (S440). In this case, in S450 and S465, the processor 510 acquires a user instruction from the terminal device indicating whether or not a new update instruction should be sent to the printer in response to the new addition request. Therefore, the processor 510 can execute processing appropriate to the user instruction. In this embodiment, if the user wishes to send a new update instruction (S470: Yes), the processor 510 sends the new update instruction (S320 (FIG. 5 or FIG. 6)). If the user does not wish to send a new update instruction (S470: No), the processor 510 cancels the sending of the new update instruction.
[0112] D. Variations: (1) The retransmission condition is not limited to the condition in the embodiment described in FIG. 8 , and may be various conditions. The retransmission condition is not limited to the conditions in S615 and S635, and may be satisfied when various specific communication conditions are met. The specific communication condition may be various conditions related to communication between the service server 500 and the printer. The specific communication condition may be a condition indicating that communication between the service server 500 and the printer is likely possible. For example, the specific communication condition may be that a permanent connection with the printer is currently established. The processor 510 of the service server 500 inquires of the connection server 600 whether a permanent connection with the target printer 100 is currently established. If a permanent connection is currently established, the processor 510 may determine that the update instruction for the target printer 100 satisfies the specific communication condition. If this specific communication condition is adopted, the processor 510 can immediately send an update instruction to the printer in response to a change in the printer status from offline to online.
[0113] Furthermore, the processor 110 of the printer 100 may be configured to periodically notify the service server 500 of information about the printer 100 (e.g., the cumulative charge count D11 and the cumulative print count D12) when the printer 100 is online. The frequency of this notification may vary, such as once per hour. When the printer 100 sends periodic notifications to the service server 500, both the conditions described in S615 and S635 of FIG. 8 can appropriately indicate that communication between the service server 500 and the printer 100 is likely to be possible. For example, in S635, the processor 510 can estimate an appropriate estimated online time using the history of periodic notifications. Note that the method for estimating the estimated online time may be any method that estimates the time during a day when the printer is likely to be online.
[0114] (2) The retransmission condition is not limited to the condition of S645 (FIG. 8), and may be satisfied when various update specification conditions are met. The update specification condition may be various conditions related to the update history of the printable number (D11-D12 in the above embodiment) indicated by control data (e.g., control data 131 (FIG. 2A)) stored in the printer's storage device. For example, the update specification condition may be that the time difference (D53-D54) between the cumulative charge addition timestamp D53 (FIG. 2C) and the cumulative charge reflection timestamp D54 is equal to or less than a predetermined time difference threshold (e.g., one day). If this time difference is large, the user may tolerate delays in updating the cumulative charge number D11 of the printer 100. Therefore, the processor 510 may not prompt the retransmission of the update instruction if the time difference is large, but may prompt the retransmission of the update instruction if the time difference is small.
[0115] The time difference used to determine whether the update specification condition is satisfied may be the time difference (current - D54) between the cumulative charge reflection timestamp D54 (FIG. 2C) and the present. The update specification condition may be that this time difference is equal to or greater than a predetermined time difference threshold (e.g., one day). This time difference indicates the amount of time that has elapsed since the cumulative charge number D11 of the printer 100 was updated. A large time difference indicates that the cumulative charge number D11 of the printer 100 has not been updated for a long time. Therefore, when the time difference is large, it is preferable to update the cumulative charge number D11 quickly. Note that when this time difference (current - D54) is large, the user may tolerate delays in updating the cumulative charge number D11 of the printer 100. Therefore, the update specification condition may be that the time difference (current - D54) is equal to or less than a predetermined time difference threshold (e.g., one day).
[0116] The time difference used to determine whether the update specification condition is satisfied may be the time difference (current time - D53) between the cumulative charge addition timestamp D53 (FIG. 2C) and the present time. The update specification condition may be that this time difference is equal to or greater than a predetermined time difference threshold (e.g., one day). This time difference indicates the amount of time that has elapsed since the cumulative charge number D51 of the service server 500 increased due to the purchase process. A large time difference indicates that the cumulative charge number D11 of the printer 100 has not been updated for a long time since the increase in the cumulative charge number D51 due to the purchase process. Therefore, when the time difference is large, it is preferable to update the cumulative charge number D11 quickly. Note that if the update instruction is to be resent, the cumulative charge reflection timestamp D54 (i.e., the timestamp of the update of the printer's cumulative charge number D11) precedes the cumulative charge addition timestamp D53. In this way, the cumulative charge addition timestamp D53 is related to the update history of the cumulative charge number D11 of the printer 100. Therefore, the condition that uses the time difference between the cumulative charge addition timestamp D53 and the present is an example of an update specification condition related to the update history of the printable number (D11-D12) indicated by the control data 131 of the printer 100. Note that if this time difference (present-D53) is large, the user may be tolerant of delays in updating the cumulative charge number D11 of the printer 100. Therefore, the update specification condition may be that the time difference (present-D53) is equal to or less than a predetermined time difference threshold (for example, one day).
[0117] (3) The retransmission condition is not limited to the condition in S625 (FIG. 8), and may be satisfied when various number-specifying conditions are met. The number-specifying condition may be various conditions related to the number of printable sheets. For example, the number-specifying condition may be that the unupdated estimated number of printable sheets is equal to or less than a predetermined number threshold (e.g., 20 sheets). The processor 510 estimates the unupdated number of printable sheets using the service data 532 (FIG. 2(C)). Specifically, the processor 510 calculates the number of printable sheets by subtracting the cumulative number of prints D55 from the reflected cumulative charge number D52. The calculated number of printable sheets (D52-D55) is an estimate of the unupdated number of printable sheets that does not reflect the update of the cumulative charge number D51. If the estimated number of printable sheets is low, it is preferable to update the cumulative charge number D11 of the printer 100 quickly. Processor 510 updates information D52 and D55 with reference to notifications from printer 100 (FIGS. 3 and 5). Therefore, it can be said that processor 510 calculates the printable number (D52-D55) with reference to notifications from printer 100.
[0118] Any method may be used to estimate the unupdated number of printable sheets. For example, when the printer 100 is online, the processor 110 of the printer 100 may be configured to periodically notify the service server 500 of information about the printer 100 (e.g., the cumulative charge number D11 and the cumulative print number D12). In this case, the processor 510 may estimate the unupdated number of printable sheets by referring to the latest notification. For example, the processor 510 may calculate the unupdated number of printable sheets by subtracting the cumulative print number D12 from the cumulative charge number D11. In this way, the processor 510 may estimate the unupdated number of printable sheets by referring to notifications already received from the printer.
[0119] Note that the sheet number determination condition may be configured using either, or both, of the day number condition described in S625 (FIG. 8) and the printable sheet number condition that the estimated value of the unupdated printable sheet number is less than or equal to the sheet number threshold. For example, the sheet number determination condition may be satisfied when the day number condition is satisfied. The sheet number determination condition may be satisfied when the printable sheet number condition is satisfied. The sheet number determination condition may be satisfied when either, or both, of the day number condition and the printable sheet number condition are satisfied. The sheet number determination condition may not be satisfied when only one of the day number condition and the printable sheet number condition is satisfied, and may be satisfied when both are satisfied.
[0120] (4) The retransmission condition may be configured using any number of one or more specific conditions. And when one or more arbitrary specific conditions are satisfied, the retransmission condition may be satisfied. For example, the retransmission condition may be configured using one or more communication specific conditions, one or more update specific conditions, and one or more sheet number specific conditions. The retransmission condition may be configured using other types of conditions different from any of the communication specific condition, the update specific condition, and the sheet number specific condition. One or more types of conditions among the communication specific condition, the update specific condition, and the sheet number specific condition may be omitted from the retransmission condition.
[0121] Also, the retransmission condition may be satisfied when any one of K (K is an integer of 2 or more) specific conditions is satisfied. Here, any one of L (L is an integer of 2 or more and K or less) priorities may be pre-associated with each of the K specific conditions. The same priority may be associated with two or more specific conditions (in this case, L < K). In any case, the correspondence relationship between the specific condition and the priority is not limited to the correspondence relationship in FIG. 8 and may be arbitrarily determined. And the processor 510 may retransmit an update instruction that satisfies the retransmission condition by executing the process of FIG. 7 or the process of FIG. 10. Note that the priority may be omitted. For example, the processor 510 may retransmit the update instruction in the order in which the retransmission condition is satisfied.
[0122] (5) The processing executed by the service server 500 is not limited to the above processing, and may be various processing. For example, the processor 510 may store in the storage device 515 (e.g., the non-volatile storage device 530) data indicating various information indicating the number of sheets that can be printed by the printer 100, not limited to the combination of information D51, D52, and D55 in FIG. 2C. For example, the processor 510 may store in the storage device 515 data indicating the number of sheets purchased for each purchase process (FIG. 4). Then, in response to the number of sheets purchased being reflected in the control data of the printer 100 (e.g., the cumulative charge number D11 (FIG. 2A)), the processor 510 may delete the reflected data on the number of sheets purchased from the storage device 515. Furthermore, the processor 510 may store in the storage device 515 a combination of flag data indicating whether or not the information has been reflected and data indicating the number of sheets purchased. Then, in response to the purchased number being reflected in the cumulative charge number D11 of the printer 100, the processor 510 may change the flag of the reflected purchased number from "not reflected" to "reflected."
[0123] (6) The processing executed by a printer (e.g., printer 100) is not limited to the above processing and may be various processing. For example, in the reflection processing of FIG. 5, processor 110 of printer 100 sends an update result notification in response to the update instruction. Alternatively, processor 110 may send an update result notification to service server 500 separately from the response to the update instruction. Furthermore, the update result notification sent by printer 100 preferably includes data related to the updated number of printable sheets, such as the updated cumulative charge number D11. However, the update result notification may be a notification indicating that the update has been completed, without including data related to the updated number of printable sheets. The data related to the updated number of printable sheets may be various data that can be used to calculate the updated number of printable sheets, such as the updated cumulative charge number D11 or the cumulative print number D12.
[0124] 2A, the processor 110 may store in the storage device 115 (e.g., the non-volatile storage device 130) data indicating various information indicating the number of pages that can be printed by the printer 100. For example, the processor 110 may store control data indicating the number of pages that can be printed in the storage device 115, instead of the combination of the information D11 and D12. The processor 110 may update the control data in response to an update instruction from the service server 500.
[0125] (7) In the embodiment of FIG. 6, if the update instruction is not received by the printer (S350: No), the processor 510 of the service server 500 adds the update instruction to the list of items to be resent (S430). The condition for determining that the update instruction was not received by the printer (also referred to as an error condition) is not limited to the service server 500 not receiving an update result notification from the printer, and may be various other conditions. For example, the error condition may be the service server 500 not receiving a response to the update instruction from the printer. Note that the response to the update instruction may not necessarily indicate that the update at the printer 100 has been completed. Therefore, it is preferable that the processor 510 of the service server 500 determine that the update instruction was received by the printer when it receives data from the printer that explicitly indicates that the update at the printer has been completed (for example, data indicating the updated cumulative charge count D11). In this case, the error condition is that the service server 500 does not receive data from the printer indicating that the update has been completed.
[0126] (8) If the update instruction is not received by the printer (FIG. 6: S350: No), the process of notifying the user of the error may be any process instead of the process of S410. For example, processes such as sending an email to the user's email address, sending an SMS (Short Message Service) message to the user's phone number, or sending an MMS (Multimedia Messaging Service) message to the user's device may be adopted. Note that such notification (e.g., S410 in FIG. 6) may be omitted.
[0127] (9) In each of the above embodiments, the service server 500 manages the printer using the number of printable sheets, which is an example of the usable amount of the printer. When the printer performs single-sided printing, the number of printable sheets is the same as the number of printable pages. When the printer performs double-sided printing, the number of printable sheets is half the number of printable pages. The service server 500 may manage the printer using other types of usable amount instead of the number of printable sheets. For example, the usable amount may indicate any parameter that changes depending on the printing of an image, such as the number of printable pages or the usable amount of color material (ink, toner, etc.). In either case, the purchase process (FIG. 4) may be various processes that add the usable amount. The printer may allow printing within the usable amount.
[0128] (10) A user identifier UID (FIG. 2(B)) may be associated with multiple printers (i.e., multiple printer identifiers PID). Furthermore, printers may be managed using a physical device that indicates the actual printer and a logical device associated with the physical device. For example, the printer identifier PID associated with the user identifier UID by the user data 531 (FIG. 2(B)) may be the identifier of a logical device. The logical identifier may then be associated with the identifier of the physical device. The available capacity (e.g., the number of printable pages) may be assigned to the logical device. When a printer is replaced due to a malfunction or other reason, the logical device may remain unchanged, but the identifier of the physical device associated with the logical device may be changed. The new printer may then inherit the available capacity assigned to the logical device.
[0129] (11) In each of the above embodiments, the service server 500 (FIG. 1) receives a request to add a printer's available capacity (FIG. 4) and then sends an update instruction to the printer (FIGS. 5 and 6). The configuration of the server system that executes such processing may be various other configurations instead of the configuration of the service server 500. For example, the service server 500 may establish a constant connection with the printer instead of the connection server 600 (the connection server 600 may be omitted). Furthermore, multiple devices (e.g., computers) that can communicate with each other via a network may share some of the processing functions of the server system and collectively provide the functions of the server system (a system including these devices corresponds to a server system).
[0130] In each of the above embodiments, a part of the configuration realized by hardware may be replaced by software, and conversely, a part or all of the configuration realized by software may be replaced by hardware. For example, the function of S220 in Fig. 4 may be realized by a dedicated hardware circuit.
[0131] Furthermore, when some or all of the functions of the present invention are realized by a computer program, the program can be provided in a form stored on a computer-readable recording medium (e.g., a non-transitory recording medium). The program can be used while stored on the same or a different recording medium (computer-readable recording medium) from when it was provided. The "computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but can also include internal storage devices within a computer, such as various ROMs, and external storage devices connected to a computer, such as a hard disk drive.
[0132] The present invention has been described above based on examples and modified examples, but the above-described embodiments of the invention are intended to facilitate understanding of the present invention and do not limit the present invention. The present invention may be modified or improved without departing from the spirit thereof, and the present invention includes equivalents thereof. [Explanation of symbols]
[0133] 100...printer, 110...processor, 115...storage device, 120...volatile storage device, 130...non-volatile storage device, PG1...program, 131...control data, 140...display unit, 150...operation unit, 160...print execution unit, 180...communication interface, 200...terminal device, 210...processor, 215...storage device, 220...volatile storage device, 230...non-volatile storage device, PG2...program, 231...account data, 240...display unit, 250...operation unit, 280...communication interface, 500...service server, 510...processor, 515...storage device, 520...volatile storage device, 5 30...non-volatile storage device, PG5...program, 531...user data, 532...service data, 533...history data, 580...communication interface, 600...connection server, 610...processor, 615...storage device, 620...volatile storage device, 630...non-volatile storage device, PG6...program, 631...connection data, 680...communication interface, 700...payment server, 710...processor, 715...storage device, 720...volatile storage device, 730...non-volatile storage device, PG7...program, 731...payment data, 780...communication interface, 1000...system, NT...network
Claims
1. A server system, a first acquisition unit configured to acquire a request for additional printer usable capacity from a terminal device; a first transmission unit configured to transmit an instruction to update the available capacity indicated by control data stored in a storage device of the printer in response to the addition request, the instruction being addressed to the printer; Equipped with the first sending unit is configured to, in a first case in which the update instruction is not received by the printer, resend the update instruction addressed to the printer in response to a resend condition related to the printer being satisfied; Server system.
2. 2. The server system according to claim 1, In the first case, The server system does not receive a response to the update instruction from the printer; and the server system does not receive data from the printer indicating that updating of the available capacity based on the update instruction has been completed; A server system that is either
3. 3. The server system according to claim 1, the retransmission condition is satisfied when a communication-specific condition, which is a condition related to communication between the server system and the printer, is satisfied; When the communication specific condition is satisfied, there is a higher possibility that communication between the server system and the printer is possible than when the communication specific condition is not satisfied. Server system.
4. 4. The server system according to claim 1, the retransmission condition is satisfied when an update-specific condition, which is a condition related to an update history of the available capacity indicated by the control data stored in the storage device of the printer, is satisfied. Server system.
5. 5. A server system according to claim 1, The retransmission condition is satisfied when a number-specific condition, which is a condition related to the number of printable sheets indicated by the usable amount, is satisfied. Server system.
6. 6. The server system according to claim 5, The number specifying condition is: a printable sheet number condition indicating that the printable sheet number indicated by the unupdated estimated value of the available capacity of the printer is equal to or less than a sheet number threshold; a day condition indicating that the number of days estimated using the usage history of the printer during which the printable number of sheets will be printed is equal to or less than a day threshold; configured using one or both of Server system.
7. 7. The server system according to claim 1, further comprising: a second sending unit configured to, in the first case, send a notification to the terminal device indicating that the update instruction is not received by the printer;
8. 8. The server system according to claim 1, further comprising: a second acquisition unit configured to acquire, when the first acquisition unit acquires a new request to add the available capacity of the printer from the terminal device while the update instruction has not been received by the printer, a user instruction indicating whether or not to send a new update instruction for the available capacity addressed to the printer in response to the new addition request, from the terminal device; Server system.
9. 9. A server system according to claim 1, the first acquisition unit is configured to acquire N addition requests for N printers (N is an integer equal to or greater than 2); the first transmission unit is configured to transmit N update instructions addressed to the N printers, respectively, in response to the N addition requests; the first transmission unit is configured to, when the N update instructions are not received by the N printers, retransmit each of the N update instructions in accordance with N retransmission conditions associated with the N printers, respectively; Each of the N retransmission conditions is satisfied if any of K specific conditions (K is an integer equal to or greater than 2) is satisfied; Each of the K specific conditions is previously associated with one of L priorities (L is an integer between 2 and K), the first transmission unit is configured, when M retransmission conditions corresponding to M (M is an integer of 2 or more and N or less) update instructions among the N update instructions are satisfied, to retransmit the M update instructions in order of priority associated with the satisfied specific conditions corresponding to the update instructions. Server system.
10. 9. A server system according to claim 1, the retransmission condition is satisfied when any of K specific conditions (K is an integer equal to or greater than 2) is satisfied; Each of the K specific conditions is previously associated with one of L priorities (L is an integer between 2 and K), the first transmission unit is configured to, in the first case, retransmit the update instruction addressed to the printer in response to the retransmission condition being satisfied, after a waiting time determined based on a priority associated with the satisfied specific condition has elapsed. Server system.
11. A computer program comprising: a first acquisition function configured to acquire a request for additional printer capacity from a terminal device; a first transmission function configured to transmit, in response to the addition request, an instruction to update the available amount indicated by control data stored in a storage device of the printer, the instruction being addressed to the printer; This is realized on a computer, the first sending function is configured to, in a first case in which the update instruction is not received by the printer, resend the update instruction addressed to the printer in response to a resend condition associated with the printer being satisfied; Computer program.
Citation Information
Patent Citations
Program
JP2021018621A