Server, communication system, and computer program
By transmitting device information and additional information to external devices without storing it in the device, the system addresses data overflow and leakage concerns, ensuring secure and efficient data handling.
Patent Information
- Application Number
- JP2024047938
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-25
- Publication Date
- 2025-10-07
AI Technical Summary
The storage of destination specification information in a device can lead to issues such as increased data storage and potential leakage of information.
A system where additional information is not stored in the device, but rather transmitted to an external server, with device information and additional information being combined and sent to an external device through a relay server and API server.
Prevents issues associated with storing additional information in the device, such as data overflow and leakage, by ensuring that only device information and combined data are transmitted externally.
Smart Images

Figure 2025147605000001_ABST
Abstract
Description
[Technical Field]
[0001] The present specification relates to a server, a communication system, and a computer program. [Background technology]
[0002] Patent Document 1 discloses a technique in which a device such as a printer uploads device management information, such as the amount of remaining ink and the number of pages printed, to a server. In this technique, the device receives destination designation information from a management server and stores the destination designation information in its own memory. The device periodically or irregularly identifies a destination for the device management information based on the stored destination designation information and uploads the device management information to the destination. [Prior art documents] [Non-patent literature]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2018-185651 Summary of the Invention [Problem to be solved by the invention]
[0004] However, problems may arise due to the destination specification information being stored in the device.
[0005] This specification discloses a technique that can prevent problems from occurring due to information being stored in a device used for a service. [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 communicably connected to a device and an external device, the server including: a request receiving unit that receives from the external device a setting request that requests the device to set settings related to a service that uses the device, the setting request including device identification information that identifies the device, setting information that indicates settings related to the service, and additional information; a storage processing unit that, when the setting request is received, stores the additional information in a database in association with the device identification information included in the setting request; and a storage processing unit that, when the setting request is received, stores the additional information in a database in association with the device identification information included in the setting request. a setting information sending unit that sends first data from the device, the first data including device information and device identification information sent based on the setting information, an additional information acquiring unit that, when the first data is received, acquires from the database the additional information that has been stored in association with the device identification information included in the first data, and a data sending unit that, when the first data is received, transmits to the external device transmission data that includes the device information included in the first data and the additional information acquired from the database.
[0008] According to the above configuration, no additional information is transmitted to the device, but transmission data including the device information and the additional information is transmitted to the external device. As a result, transmission data including the device information and the additional information transmitted from the device can be transmitted to the external device without storing the additional information in the device. Therefore, for example, since the additional information is not stored in the device, problems caused by storing the additional information in the device can be suppressed. For example, storing the additional information in the device can cause problems such as an increase in the amount of data stored in the device or leakage of the additional information from the device. According to the above configuration, problems caused by storing information in a device used for a service can be suppressed.
[0009] The technology disclosed in this specification can be realized in various forms, such as a communication system including a device, an external device, and a server, a communication method using a device, an external device, and a server, a computer program for realizing these servers, systems, and methods, a recording medium on which the computer program is recorded, and the like. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram showing the configuration of a system 1000. [Figure 2] An explanatory diagram of database DBs. [Figure 3] FIG. 10 is a sequence diagram of the setting process. [Figure 4] FIG. 10 is a diagram showing an example of a setting request. [Figure 5] FIG. 10 is a first sequence diagram of a data transmission process. [Figure 6] FIG. 10 is a diagram showing an example of specific data and combined data. [Figure 7] FIG. 10 is a second sequence diagram of the data transmission process. [Figure 8] FIG. 10 is a sequence diagram of the data acquisition process. DETAILED DESCRIPTION OF THE INVENTION
[0011] A. Working Example A-1. Configuration of System 1000 1 is a block diagram showing the configuration of a system 1000. The system 1000 includes a printer 100, a relay server 200, an API server 300, a terminal device 400, and a mail server 500.
[0012] Printer 100 is a device that consumes ink as a printing material to perform printing. Printer 100 includes a CPU 110 as a controller for printer 100, a volatile storage device 120 such as DRAM, and a non-volatile storage device 130 such as a hard disk or flash memory. Printer 100 also includes a display unit 140 such as a liquid crystal display for displaying images, an operation unit 150 such as buttons or a touch panel for acquiring user operations, a printing mechanism 170, and a communication interface (IF) 180.
[0013] The communication IF 180 is an interface for connecting to the Internet IT, for example, a wired interface conforming to Ethernet (registered trademark) or a wireless interface conforming to the Wi-Fi standard.
[0014] The CPU 110 is a computing device (processor) that processes data. The volatile storage device 120 provides a buffer area for temporarily storing various intermediate data generated when the CPU 110 performs processing. The non-volatile storage device 130 stores a computer program PGp for controlling the printer 100 and a database DBp in which various information, described below, is recorded.
[0015] In this embodiment, the computer program PGp is provided by being stored in advance in the nonvolatile storage device 130 at the time of manufacturing the printer 100. Alternatively, the computer program PGp may be provided, for example, in a form in which it is downloaded from a server connected via the Internet IT, or in a form in which it is recorded on a storage medium such as a DVD-ROM or USB memory.
[0016] CPU 110 executes the computer program PGp to perform various processes for controlling printer 100. For example, CPU 110 executes printing processes and service-related processes. Printing processes are processes for controlling printing mechanism 170 to cause printing mechanism 170 to print an image. Service-related processes are processes for providing services using printer 100 in cooperation with relay server 200 and API server 300, as will be described later. Specifically, service-related processes include processes in which printer 100 (CPU 110) receives setting information from relay server 200 and stores it as its own setting information, as will be described later. Service-related processes include processes in which printer 100 (CPU 110) transmits various information, such as history information indicating a printing history, to relay server 200 based on the stored setting information.
[0017] The database DBp stores various setting information for the printer 100, as well as destination information (e.g., IP address) and authentication information for accessing the relay server 200. The setting information includes, for example, setting information related to printing (setting information related to paper, setting information related to print mode), and setting information sent from the relay server 200 for the service-related processing described above. Hereinafter, when the term "setting information" is used simply, it means setting information sent from the relay server 200 for the service-related processing.
[0018] The printing mechanism 170 performs printing under the control of the CPU 110. The printing mechanism 170 of this embodiment is an inkjet printing mechanism that prints an image on a recording medium using multiple types of ink (for example, four types of ink: cyan, magenta, yellow, and black) contained in ink tanks 190 as color materials. Alternatively, the printing mechanism 170 may be an electrophotographic printing mechanism that prints an image on a recording medium using toner contained in a toner cartridge as color material.
[0019] The relay server 200 and the API server 300 are computers, such as cloud servers, operated by a business that provides services using the printer 100 (for example, a business that manufactures and sells the printer 100).
[0020] The relay server 200 includes a CPU 210 as a controller of the relay server 200, a volatile storage device 220 such as a DRAM, a non-volatile storage device 230 such as a hard disk or flash memory, and a communication interface (IF) 280. The communication IF 280 is, for example, a wired interface that complies with Ethernet (registered trademark).
[0021] The CPU 210 is a computing device (processor) that processes data. The volatile storage device 220 provides a buffer area for temporarily storing various intermediate data generated when the CPU 210 performs processing. The non-volatile storage device 230 stores computer programs PGs and databases DBs.
[0022] The computer programs PGs are provided, for example, in the form of being uploaded by a business operator that operates a service that uses the printer 100. The CPU 210 of the relay server 200 executes the computer programs PGs to function as a controller for the control unit CP and database DBs of the relay server 200. The control unit CP executes processing related to the service that uses the printer 100. As will be described in detail later, the relay server 200 executes relay processing that relays communication between the printer 100 and the API server 300. The database DBs stores information necessary for the relay processing, as will be described later.
[0023] Similar to the relay server 200, the API server 300 includes a CPU 310 as a controller, a volatile storage device 320, a non-volatile storage device 330, and a communication IF 380. The volatile storage device 320 provides a buffer area for temporarily storing various intermediate data generated when the CPU 310 performs processing. The non-volatile storage device 230 stores a computer program PGa.
[0024] Like the computer programs PGs, the computer program PGa is provided in a form uploaded by a business operator that operates a service that uses the printer 100. The CPU 310 of the API server 300 executes the computer program PGa to realize the functions of the API server 300. As will be described later, the API server 300 provides an API (Application Programming Interface) that enables external devices such as the terminal device 400 and a server (not shown) to use the relay server 200. In other words, the external devices can use the service (the above-mentioned relay process) provided by the relay server 200 via the API server 300.
[0025] The terminal device 400 is a computer used by a user of the printer 100, such as a personal computer or smartphone. The terminal device 400 includes a CPU, memory, a display unit (e.g., a liquid crystal display), an operation unit (e.g., a touch panel or keyboard), and a communication interface (not shown). An application program AP is installed in the terminal device 400. The application program AP causes the CPU of the terminal device 400 to realize functions that provide services using the printer 100. Hereinafter, functions realized by the CPU of the terminal device 400 by executing the application program AP will also be referred to as a "terminal application." The terminal application in this embodiment, for example, manages information about the printer 100 used by the user (print history, remaining amount of printing material such as ink), and provides a service that displays and notifies the user. The service provided by the terminal application is one of the services that use the printer 100.
[0026] The mail server 500 is a known server that relays the sending and receiving of emails to and from client devices. For example, when the mail server 500 receives an email containing a destination email address from the API server 300, it sends the email to the destination indicated by the email address (e.g., the terminal device 400) via another mail server.
[0027] FIG. 2 is an explanatory diagram of the database DBs. As shown in FIG. 2, the database DBs stores one or more pieces of additional information in association with device identification information. The device identification information is a unique ID assigned to a device such as the printer 100. The device identification information may be any information capable of identifying a device, such as a serial number or a device token, which is authentication information assigned to a device. One piece of additional information is composed of a pair of a key and a value (hereinafter also referred to as an information pair). In this specification, one information pair is expressed in a format in which the key and value constituting the information pair are separated by a slash " / ". For example, in this embodiment, the name (item name) of the additional information is used as the key, and the specific content (content) of the additional information is used as the value. For example, an information pair in which the key (item name) is "user ID" and the value (content) is "U1111" is expressed as "user ID / U1111".
[0028] 2, for example, three pieces of additional information, "User name / U1111," "User name / KEN," and "Destination email address / xxx@yyy.xxx," are stored in association with device identification information "DI_1." Also, for example, three pieces of additional information, "User name / U2222," "Destination email address / xxx@xxx.xxx," and "Execution instruction / Save," are stored in association with device identification information "DI_2."
[0029] The printer 100, relay server 200, API server 300, terminal device 400, and mail server 500 are each connected to the Internet IT via their own communication IF. For this reason, for example, the relay server 200 can communicate with the printer 100 and API server 300 via the Internet IT. In addition, the API server 300 can communicate with the mail server 500 and terminal device 400 via the Internet IT.
[0030] A-2. Operation of System 1000 The following describes the operation of system 1000, including the relay processing by relay server 200. The relay processing includes a process in which relay server 200 relays setting information transmitted from API server 300 and transmits it to printer 100. The relay processing also includes a process in which relay server 200 relays periodic data transmitted from printer 100 and transmits it to API server 300.
[0031] A-2-1.Setting process In Fig. 3, the system 1000 executes a setting process in which setting information is stored in the printer 100 based on a setting request sent from the terminal device 400. Fig. 3 is a sequence diagram of the setting process. For example, a user starts a terminal application on the terminal device 400 and inputs a management instruction to the terminal application to manage the operation history of the printer 100 (for example, a print history or a history of remaining ink). Upon receiving the user's management instruction, the terminal device 400 (terminal application) starts the setting process of Fig. 3.
[0032] In S2, the terminal device 400 (terminal application) sends a setting request SR1 to the API server 300. Communication between the terminal device 400 and the API server 300 is performed according to a known protocol, for example, HTTP (Hypertext Transfer Protocol). The setting request SR1 is data for requesting a device (for example, the printer 100) to perform settings related to a service that uses the printer 100. Here, "performing settings" means storing the setting information in the database DBp of the printer 100 and enabling the settings indicated by the setting information.
[0033] When API server 300 receives setting request SR1, CPU 310 of API server 300 transmits the received setting request SR1 as is to relay server 200 in S4. Communication between API server 300 and relay server 200, like communication between terminal device 400 and API server 300, is performed in accordance with a known protocol, for example, HTTP (Hypertext Transfer Protocol).
[0034] Fig. 4 shows an example of a setting request. The setting request SR1 in Fig. 4(A) includes device identification information, setting information, and additional information. In Fig. 4, the device identification information, setting information, and additional information are each written in the format of the information pair ("key / value") described above.
[0035] The device identification information indicates the device (in this embodiment, the printer 100) to which the setting information included in the setting request SR1 should be set; in other words, the destination of the setting information. In the example of FIG. 4(A), the setting request SR1 includes the identification information "DI_2" of the printer 100 as the device identification information ("device identification information / DT_2"). The device identification information may be obtained in advance from the printer 100 by the terminal device 400 communicating with the printer 100, or may be input by the user, for example.
[0036] The setting information indicates the content of settings related to a service that uses the printer 100. For example, a terminal application needs to collect information from the printer 100 to provide a service that uses the printer 100. For this purpose, the setting information is information that causes the printer 100 to transmit log information used for the service. For example, the setting information includes information indicating the transmission target and information indicating the transmission timing. The transmission target is the content of the information that the printer 100 should transmit. Information specified as the transmission target includes, for example, log information indicating the usage history of the printer 100. The log information may include, for example, information indicating the printer 100's printing history, error and malfunction history, and ink level history. The transmission target may be any other information, such as print setting information, network setting information, and current ink level information. Furthermore, the transmission target may be only a portion of the log information described above, such as the printing history, log information, or ink level history. The transmission timing is the timing at which the printer 100 should transmit the information to be transmitted multiple times. The transmission timing may be specified by the transmission frequency, such as once a month or once a day, and the transmission time. The transmission timing may also be specified by the transmission interval (for example, a few seconds to a few days). The transmission timing may also be specified by an action that triggers transmission (for example, power-on, the occurrence of a specific error, or the occurrence of a specific device operation (for example, printing)). The setting information may be default information that is pre-installed in the application program AP, or may be information input by the user.
[0037] In the example of Fig. 4(A), the setting request SR1 includes, as setting information, an information pair indicating log information as the transmission target and an information pair indicating "12:00 every day" as the transmission timing. That is, the value of the information pair with "setting information" as the key includes two information pairs, namely, "transmission target / log information" and "transmission timing / 12:00 every day." In this way, the value of the information pair can have a nested structure that includes one or more other information pairs.
[0038] The terminal application of this embodiment executes a service that provides the user with the usage history of the printer 100, so in the example of Fig. 4(A), log information is specified as the transmission target. Also, the transmission timing is specified to be every day (once a day) at 12:00.
[0039] In the example of Fig. 4(A), the setting request SR1 includes, as additional information, a user ID, a destination email address, and execution instruction information. Therefore, as shown in Fig. 4(A), the value of the information pair with "additional information" as a key includes three information pairs, namely, "user ID / U22222", "destination email address / xxx@xxx.xxx", and "execution instruction / save".
[0040] Any information can be used as the additional information. As will be described later, the additional information is not sent to the device that is the destination of the setting information. As will be described later, the additional information is sent to the API server 300 or the destination of the specific data together with specific data (described in detail later) that is sent from the device (e.g., the printer 100) based on the setting information. For this reason, the additional information includes, for example, information that should be referenced by the API server 300 or the destination of the specific data. Like the setting information, the additional information may be default information that is pre-installed in the application program AP, or may be information input by the user.
[0041] Specifically, the additional information may include destination information indicating a destination of the specific data. The destination information may include, for example, an email address indicating the destination (also called a destination email address), a uniform resource locator indicating the location of the destination (also called a destination URL), an IP address indicating the destination (also called a destination IP address), and push notification destination information indicating the destination of the push notification (for example, a push notification ID).
[0042] The additional information may include an execution instruction that instructs the API server 300 or an external device that has received the specific data to execute a process using the specific data. The execution instruction value may include, for example, save, analyze, notify error, or prioritize.
[0043] The save instruction is an instruction to save the specific data in the external device to which the specific data is sent. The analysis instruction is an instruction to perform a specific analysis using the specific data in the external device to which the specific data is sent. The analysis may be, for example, a predetermined analysis, such as an analysis that predicts the future number of prints or ink consumption based on print history information included in the specific data. Alternatively, the specific content of the analysis may be specified by additional information.
[0044] The error notification instruction is, for example, an instruction to extract information about the error and send it to a predetermined notification destination when history information included in the specific data indicates an error. Information indicating the predetermined notification destination may be included in the additional information.
[0045] A priority instruction is, for example, an instruction to execute a process using specific data that includes a priority instruction in preference to a process using other specific data that does not include a priority instruction. For example, specific data periodically transmitted from printer 100 is usually processed sequentially in the order in which it was received by the external device to which the specific data is transmitted. Specific data that includes a priority instruction is received before the specific data, and if there is other specific data that has not yet been processed, it is processed before the other specific data. In this way, a priority instruction can be considered a type of order-specifying instruction that specifies the order in which specific data is processed.
[0046] The execution instruction may include various other instructions, such as an instruction to create a graph showing the progress of the number of printed sheets and the amount of ink consumed based on the log information, or an instruction to automatically order ink if the amount of ink consumed is below a certain level.
[0047] The additional information is not limited to destination information and execution instructions, but may also include other information related to the service using the printer 100. The additional information may include, for example, user information (such as a user ID or user name) of the user using the service.
[0048] In this embodiment, data including information pairs each consisting of a key and a value, such as the setting request SR1, is written using a known data format called JSON (JavaScript Object Notation). The data including information pairs is not limited to JSON, and may be written using a markup language such as XML (Extensible Markup Language) or HTML (HyperText Markup Language).
[0049] Returning to Figure 3, the explanation will continue. When relay server 200 receives setting request SR1, control unit CP (CPU 210) of relay server 200 extracts the device identification information and additional information included in setting request SR1 in S6. In S8, control unit CP passes the extracted device identification information and additional information to database DBs along with a storage instruction. When the controller of database DBs receives the storage instruction, in S10, it associates the device identification information and additional information received along with the storage instruction and stores them in database DBs. For example, when setting request SR1 of Figure 4(A) is received in S4, a one-line entry EN indicated by the dashed line in Figure 2 is created and stored in database DBs.
[0050] In S11, the control unit CP extracts setting information from the setting request SR1 received in S4. In S12, the control unit CP transmits a setting request SR2 including the extracted setting information to the printer 100 via the communication IF 280.
[0051] In this embodiment, when the printer 100 is powered on, it establishes a constant connection with the relay server 200. As a result, while the printer 100 is powered on, the relay server 200 can spontaneously send data to the printer 100 via the constant connection without receiving a request from the printer 100. Note that the constant connection is established according to a protocol called MQTT (Message Queuing Telemetry Transport), for example. Alternatively, the constant connection may be established according to another protocol, for example, XMPP (eXtensible Messaging and Presence Protocol).
[0052] For example, when the constant connection is established, the relay server 200 receives device identification information from the printer 100 and manages the constant connection in association with the device identification information. The control unit CP sends the setting request SR2 using the constant connection associated with the device identification information included in the setting request SR1 received in S4. As a result, the setting request SR2 is sent to the printer 100, which is the device identified by the device identification information.
[0053] Fig. 4(B) shows the setting request SR2 sent to the printer 100. This setting request SR2 includes only the setting information included in the setting request SR1 shown in Fig. 4(A). In other words, the setting request SR2 does not include additional information or device identification information.
[0054] When printer 100 receives setting request SR2, printer 100 (CPU 110) stores the setting information included in setting request SR2 as valid settings in database DBp. This puts printer 100 into a state where it can send specific data to relay server 200 in accordance with the setting information. In other words, printer 100 can send specific data, including information specified as a transmission target in the setting information, to relay server 200 at the transmission timing specified in the setting information.
[0055] A-2-2. Data transmission process (after setting process) Fig. 5 is a first sequence diagram of the data transmission process. Fig. 5 shows the data transmission process that is executed after the setting information is set in the printer 100 by the setting process described above. This data transmission process is executed by the system 1000 when the printer 100 transmits specific data to the relay server 200 in accordance with the setting information.
[0056] In S22, the printer 100 transmits the specific data to the relay server 200 in accordance with the setting information stored in its own database DBp. Here, it is assumed that the setting information included in the setting request SR2 in FIG. 4B is stored in the database DBp. In this case, the printer 100 transmits the specific data to the relay server 200 at 12:00, which is the time specified as the transmission timing. As described above, the printer 100 has established a constant connection with the relay server 200 while the printer 100 is powered on. The specific data is transmitted using this constant connection.
[0057] FIG. 6 shows an example of specific data and combined data (described later). The specific data SD1 in FIG. 6(A) includes the printer 100's identification information "DI_2" and the log information "LD_2" designated as a transmission target by the setting information. That is, the specific data SD1 in FIG. 6(A) includes two information pairs (key / value): "device identification information / DI_2" and "log information / LD_2." The printer 100 stores log information indicating its own operation history in a database DBs, and updates the log information each time it performs an operation such as printing. For example, the printer 100 includes the portion of the log information that has not yet been transmitted to the relay server 200 in the specific data and transmits it to the relay server 200.
[0058] When the relay server 200 receives the identification data, the control unit CP of the relay server 200 extracts the device identification information from the identification data in S24. When the identification data SD1 of Fig. 6(A) is received, "DI_2" is extracted as the device identification information.
[0059] In S26, the control unit CP passes the extracted device identification information to the database DBs, and instructs the database DBs to search for additional information associated with the device identification information.
[0060] When the controller of the database DBs receives the search instruction, in S28, the controller searches the database DBs for the device identification information received together with the search instruction. If an entry including the device identification information is found by the search, the controller of the database DBs acquires the additional information included in that entry. In the example shown in FIG. 2, when the received device identification information is "DI_2", the entry EN indicated by the dashed line is found. Therefore, in this case, the additional information included in the entry EN, in other words, the three pieces of additional information "user ID / U22222," "destination email address / xxx@xxx.xxx," and "execution instruction / save" associated with the device identification information "DI_2" are acquired.
[0061] In S30, the controller of the database DBs passes the acquired additional information to the control unit CP.
[0062] When the control unit CP receives the additional information from the database DBs, in S32 it combines the additional information received from the database DBs with the specific data already received from the printer 100 to generate combined data SD2. Fig. 6(B) shows an example of the combined data SD2. The combined data SD2 in Fig. 6(B) is data in which the three pieces of additional information "user ID / U22222," "destination email address / xxx@xxx.xxx," and "execution instruction / save" are combined with the specific data SD1 in Fig. 6(A).
[0063] In S34, the control unit CP transmits the generated combined data SD2 to the API server 300. Thus, in this embodiment, the destination to which the control unit CP transmits specific data received from the device is always the API server 300.
[0064] When API server 300 receives combined data SD2, CPU 310 of API server 300 acquires destination information from additional information included in combined data SD2 in S36. In this embodiment, the destination information is any one of an email address, a URL, an IP address, and a push notification ID, as described above. For example, when combined data SD2 of FIG. 6(B) is received, "destination email address / xxx@xxx.xxx" is acquired as the destination information, and therefore the destination information is an email address.
[0065] In S40, API server 300 uses the acquired destination information to send the combined data SD2 to the destination indicated by the destination information. For example, if the destination information is an email address, API server 300 sends the combined data SD2 to mail server 500 in the form of an email addressed to that email address (FIG. 5).
[0066] When the mail server 500 receives the combined data SD2 (email), in S42 it transmits the combined data SD2 to an external device according to the email address. In this embodiment, the email address is an address that can be received by the terminal device 400 (terminal application), so the combined data SD2 is received by the terminal device 400 via, for example, one or more other mail servers.
[0067] If the destination information is a URL or an IP address, for example, the API server 300 sends the combined data SD2 to the URL or IP address according to HTTP. As a result, the combined data SD2 is received by the external device indicated by the URL or IP address. If the destination information is a push notification ID, for example, the API server 300 sends the push notification ID and the combined data SD2 to a well-known push notification server (not shown). The push notification server sends a push notification including the combined data SD2 to the external device to which the push notification ID is assigned.
[0068] When the terminal device 400 receives the combined data SD2, the terminal device 400 (terminal application) determines the process to be executed based on the execution instruction included in the combined data SD2 in S44. For example, since the additional information of the combined data SD2 in Fig. 6(B) includes "execution instruction / save", the terminal device 400 determines the process to be executed as "save" using the log information "LD_2".
[0069] In S46, the terminal device 400 executes the process determined in S44. That is, in S46, the terminal device 400 saves the log information "LD_2" included in the combined data SD2 in its own nonvolatile storage device (not shown).
[0070] The terminal device 400 (terminal application) can use the log information stored in its own nonvolatile storage device 230 for various purposes. For example, the terminal device 400 may use the log information to display the print history of the printer 100 on the display unit in response to a user instruction. Alternatively, the terminal device 400 may use the log information to notify the user of a guide to purchasing a consumable item such as ink or paper when the remaining amount of the consumable item in the printer 100 falls below a certain level.
[0071] A-2-3. Data transmission process (no setting process) Although the data transmission process that is executed after the setting information is set in the printer 100 by the setting process has been described, the transmission of specific data by a device (e.g., the printer 100) may be executed even if the setting process is not executed. For example, if the user enables the log information update function in the printer 100, the printer 100 may transmit specific data including log information based on default setting information that has been stored in the printer 100 in advance.
[0072] 7 is a second sequence diagram of the data transmission process. Fig. 7 shows the data transmission process executed when the setting process is not executed. This data transmission process is executed by the system 1000 when the printer 100 transmits specific data to the relay server 200 in accordance with the setting information pre-stored in the printer 100.
[0073] In S52, the printer 100 transmits specific data to the relay server 200 in accordance with the default setting information. The specific data to be transmitted is assumed to be the specific data SD1 in FIG. 6A described above. The specific data is transmitted using the constant connection established between the printer 100 and the relay server 200, similar to S22 in FIG. 5.
[0074] When the relay server 200 receives the identification data SD1, the control unit CP of the relay server 200 extracts the device identification information from the identification data in S54, similar to S24 in Fig. 5. When the identification data SD1 in Fig. 6(A) is received, "DI_2" is extracted as the device identification information.
[0075] In S56, the control unit CP passes the extracted device identification information to the database DBs, instructing it to search for additional information associated with the device identification information, in the same way as in S26 of FIG.
[0076] When the controller of the database DBs receives the search instruction, in S58 it searches the database DBs for the device identification information received together with the search instruction. As described above, the additional information is stored in the database DBs in the setting process of Fig. 3 (S10 in Fig. 3). For this reason, if the setting process of Fig. 3 is not executed, an entry including the received device identification information will not be found by the search.
[0077] For this reason, in S60, the controller of the database DBs sends a notification (also called a no-information notification) to the control unit CP indicating that no additional information is stored in the database DBs.
[0078] When the control unit CP receives a no information notification from the database DBs, it instructs the database DBs to store the specific data SD1 in S66. When the controller of the database DBs receives the storage instruction, it stores the specific data SD1 in the database DBs in S68. Since the specific data SD1 includes device identification information and log information as described above (FIG. 6(A)), storing the specific data SD1 in the database DBs without separating it means storing the device identification information and log information in association with each other in the database DBs.
[0079] As described above, in the data transmission process of FIG. 7 , the relay server 200 (control unit CP) stores the specific data SD1 in the database DBs without transmitting the specific data SD1 to the API server 300. The reason for this is as follows: In the data transmission process of FIG. 3 , the additional information linked to the specific data SD1 includes destination information. On the other hand, in the data transmission process of FIG. 7 , the additional information is not present, so the relay server 200 cannot associate the destination information with the specific data SD1 and transmit it to the API server 300. For this reason, even if the API server 300 receives the specific data SD1, it cannot recognize the destination of the specific data SD1 and therefore cannot transmit the specific data SD1 to an external device. Furthermore, the API server 300 does not have the function of temporarily storing the specific data SD1. For this reason, in the data transmission process of FIG. 7 , the specific data SD1 is stored in the database DBs of the relay server 200.
[0080] A-2-4. Data acquisition process 7, the specific data SD1 sent from the printer 100 is stored in the database DBs of the relay server 200. The data acquisition process is a process in which the terminal device 400 acquires the specific data SD1 from the relay server 200 in order to use the log information included in the specific data SD1.
[0081] 8 is a sequence diagram of the data acquisition process. This data acquisition process is executed by the system 1000 when the terminal device 400 transmits a data request to the API server 300. The transmission of the data request by the terminal device 400 is executed periodically, for example, specifically once a day or at predetermined intervals.
[0082] In S70, the terminal device 400 (terminal application) transmits a data request for specific data to the API server 300. The data request includes the device identification information of the printer 100.
[0083] When the API server 300 receives the data request, the CPU 310 of the API server 300 transmits the received data request to the relay server 200 as is in S72.
[0084] When the relay server 200 receives the data request, the control unit CP of the relay server 200 passes the device identification information included in the data request to the database DBs in S74, and instructs the database DBs to search for specific data including the device identification information.
[0085] When the controller of the database DBs receives the search instruction, in S76 the controller searches the database DBs for specific data including the device identification information received together with the search instruction. If the search finds specific data including the device identification information, S77 to S82 in FIG. 8 are executed.
[0086] In S77, the controller of the database DBs acquires the specific data found by the search from the database DBs. For example, the specific data SD1 (FIG. 6(A)) stored in the database DBs in S68 of FIG. 7 is acquired. In S78, the controller of the database DBs passes the acquired specific data SD1 to the control unit CP. In S79, the controller of the database DBs deletes the specific data SD1 from the database DBs.
[0087] When the control unit CP receives the specific data SD1 from the database DBs, in S80 it transmits the specific data SD1 to the API server 300. The specific data SD1 is transmitted to the API server 300 as a response to the data request in S72.
[0088] When the API server 300 receives the specific data SD1, the CPU 310 of the API server 300 transmits the specific data SD1 to the terminal device 400 in S82. The specific data SD1 is transmitted to the terminal device 400 as a response to the data request in S70.
[0089] When the terminal device 400 receives the identification data SD1, the terminal device 400 can use the log information included in the identification data SD1 for various purposes. For example, the terminal device 400 stores the log information in its own nonvolatile storage device, similar to when the terminal device 400 receives the combined data SD2 in the data transmission process of FIG. 6. For example, the terminal device 400 can use the stored log information to provide the user with a print history, notify them of purchase instructions for consumables, etc.
[0090] If the specific data including the device identification information is not found by the search in S76, S84 to S88 in FIG. 8 are executed.
[0091] In S84, the controller of the database DBs sends a notification (also called a no-data notification) to the control unit CP indicating that the specific data including the received device identification information cannot be found.
[0092] When the control unit CP receives the no data notification from the database DBs, in S86 it transmits the no data notification to the API server 300. The no data notification is transmitted to the API server 300 as a response to the data request in S72.
[0093] When the API server 300 receives the no-data notification, the CPU 310 of the API server 300 transmits the no-data notification to the terminal device 400 in S88. The no-data notification is transmitted to the terminal device 400 as a response to the data request in S70.
[0094] According to the present embodiment described above, in the setting process of FIG. 3, relay server 200 receives setting request SR1 for printer 100 from API server 300 (S4 in FIG. 3). When relay server 200 receives setting request SR1, it stores additional information in database DBp in association with the device identification information included in setting request SR1 (S8 and S10 in FIG. 3). When relay server 200 receives setting request SR1, it sends setting request SR2 (FIG. 4(B)) to printer 100, which includes the setting information included in setting request SR1 but does not include additional information (S12 in FIG. 3). In other words, relay server 200 sends the setting information included in setting request SR1 to printer 100, but does not send the additional information included in the setting request to printer 100.
[0095] Furthermore, in the data transmission process of FIG. 5, the relay server 200 receives the specific data SD1 (FIG. 6(A)) transmitted based on the setting information from the printer 100 (S22 of FIG. 5). When the relay server 200 receives the specific data SD1, it retrieves the stored additional information associated with the device identification information included in the specific data SD1 from the database DBs (S28 of FIG. 5). When the relay server 200 receives the specific data SD1, it transmits the combined data SD2 (FIG. 6(B)) including the log information included in the specific data SD1 and the additional information retrieved from the database DBs to the API server 300 (S34 of FIG. 5).
[0096] As described above, in this embodiment, no additional information is sent to the printer 100, but the combined data SD2 including the log information and the additional information is sent to the API server 300. As a result, the combined data SD2 including the log information and the additional information sent from the printer 100 can be sent to an external device such as the API server 300 without storing the additional information in the printer 100. Therefore, for example, since the additional information is not stored in the printer 100, problems caused by storing the additional information in the printer 100 can be suppressed. For example, if the additional information were stored in the printer 100, the amount of data stored in the printer 100 could increase. Furthermore, the additional information could include personal information such as an email address or a user name. If the additional information were stored in the printer 100, there could be a risk of the additional information being leaked from the printer 100. In this embodiment, it is possible to suppress such problems caused by storing the additional information in the printer 100.
[0097] Furthermore, according to this embodiment, the additional information includes destination information (e.g., a destination email address or a destination URL) indicating the destination of the specific data SD1 (the destination of the log information) (FIGS. 2 and 4(A)). The destination information is used by the API server 300, which receives the combined data SD2, to transmit the combined data SD2 to another device (e.g., mail server 500). In other words, the API server 300 uses the destination information included in the received combined data SD2 to transmit the combined data SD2 to the destination indicated by the destination information.
[0098] As a result, even if the printer 100 does not store the destination of the log information, the printer 100 only needs to send the specific data SD1 including the log information to the relay server 200. As a result, the specific data SD1 is sent to the appropriate destination via the relay server 200 and the API server 300.
[0099] Furthermore, in this embodiment, the setting information includes information indicating the timing of multiple transmissions (transmission timing information) and information indicating the content of the information to be transmitted (transmission target information) (FIGS. 4(A) and 4(B)). As a result, the terminal device 400 can cause the printer 100 to transmit the specific data SD1 multiple times by transmitting a single setting request to the relay server 200 via the API server 300. For example, in services that use the printer 100, it is often necessary to periodically collect information about the printer 100 (for example, historical information such as log information). In such cases, the necessary settings can be easily made for the printer 100.
[0100] Furthermore, in this embodiment, the additional information includes instruction information (execution instruction information) that instructs the terminal device 400, which receives the combined data SD2 transmitted from the API server 300, to execute a process using information (e.g., log information) included in the combined data SD2 (FIG. 4(A)). As a result, the printer 100 does not need to include instruction information in the identification data SD1. In other words, even if the printer 100 does not store instruction information, when the terminal device 400 receives information such as log information, it can execute appropriate processing using the information.
[0101] More specifically, the information included in the identification data SD1 includes log information, which is history information indicating the operation history of the printer 100. As a result, for example, the terminal device 400 (terminal application) can provide a service that uses the operation history of the printer 100 by collecting the log information of the printer 100. Furthermore, as described above, the execution instruction information includes information indicating at least one of the following instructions (FIG. 2): a save instruction to save the log information; an error notification instruction to notify when the log information indicates an error; an analysis instruction to perform a specific analysis using the log information; and an instruction specifying the order of processing using the log information (e.g., a priority instruction). As a result, even if the printer 100 does not store the instruction information, the terminal device 400 that receives the combined data SD2 including the log information can be caused to appropriately perform save, analysis, and error notification as processing using the log information of the printer 100. Furthermore, the terminal device 400 can be caused to execute processing using the log information in an appropriate order.
[0102] Furthermore, according to this embodiment, as described in FIG. 7, the printer 100 can transmit the specific data SD1 without receiving the setting information from the relay server 200. To this end, the relay server 200 receives the specific data SD1 transmitted from the printer 100 without receiving the setting information (S52 in FIG. 7). In this case, the relay server 200 stores the specific data SD1 as is in the database DBs (S68 in FIG. 7). That is, the log information is stored in the database DBs in association with the device identification information included in the specific data SD1. Then, as described in FIG. 8, the relay server 200 receives a data request from the API server 300 after the log information has been stored in the database DBs (S72 in FIG. 8). When the data request is received, the relay server 200 transmits the specific data SD1 including the log information to the API server 300 (S82 in FIG. 8). As a result, even if the setting process is not performed, the specific data SD1 transmitted from the printer 100 can be transmitted to the API server 300 in response to a request from the API server 300. As a result, for example, when the printer 100 uploads specific data SD1 including log information to the relay server 200 even without performing the setting process, the terminal device 400 can obtain the log information of the printer 100 by sending a data request to the relay server 200 via the API server 300.
[0103] As can be seen from the above explanation, the printer 100 in this embodiment is an example of a device, and the API server 300 is an example of an external device. Also, the specific data SD1 is an example of first data and second data, the log information is an example of device information, and the combined data SD2 is an example of transmission data.
[0104] B. Variations (1) In the above embodiment, the external device that communicates directly with relay server 200 is API server 300 (FIG. 1). Alternatively, terminal device 400 may communicate directly with relay server 200 without going through API server 300. In this case, API server 300 may be omitted. In this case, in the setting process of FIG. 3, terminal device 400 sends a setting request to relay server 200 at S2 without going through API server 300. Then, in the data transmission process of FIG. 5, relay server 200 acquires destination information from the additional information at S34 and uses the acquired destination information to transmit merged data SD2 to the destination indicated by the destination information. That is, the processes that API server 300 would perform at S36 and S40 of FIG. 5 are executed by relay server 200 instead of API server 300.
[0105] In this modification, in the setting process of Fig. 3, the external device that is the sender of the setting request received by relay server 200 is terminal device 400, and in the data transmission process of Fig. 5, the external device that is the destination to which relay server 200 sends combined data SD2 is mail server 500. That is, in the embodiment, for external devices that directly communicate with relay server 200, the external device that is the sender of the setting request and the external device that is the destination of combined data SD2 are the same device (API server 300). In contrast, in the modification, for external devices that directly communicate with relay server 200, the first external device (terminal device 400) that is the sender of the setting request and the second external device (mail server 500) that is the destination of combined data SD2 are different devices.
[0106] In this modification, the relay server 200 uses the destination information included in the additional information to send the combined data SD2 to a destination corresponding to the destination information, so there is little need to include destination information in the combined data SD2. For this reason, the combined data SD2 may include only the additional information excluding the destination information (for example, the execution instruction and user ID in FIG. 2), or may include all additional information including the destination information, as in the embodiment. Even if unnecessary destination information is included in the combined data SD2, no problem is likely to occur if the device that received the combined data SD2 is configured not to transfer the combined data SD2 if the destination indicated by the destination information is itself.
[0107] (2) In the above embodiment, the execution instruction included in the additional information is an instruction to a device (e.g., terminal device 400) that receives the combined data SD2 via API server 300. Not limited to this, all or part of the execution instruction included in the additional information may include an instruction to API server 300. The execution instruction to API server 300 may include, for example, an instruction to return the combined data SD2 to relay server 200 if transmission of the combined data SD2 to the destination (S40 in FIG. 5) fails.
[0108] In addition, if the additional information includes both an execution instruction for the API server 300 and an execution instruction for the terminal device 400 (terminal application), the additional information may also include information specifying the device or application that is the target of the execution instruction.
[0109] (3) In the above embodiment, the device that uses the relay server 200 via the API server 300 is the user's terminal device 400, but this is not limited to this. For example, a server that provides a service that uses the printer 100 to the user of the printer 100 may use the relay server 200 via the API server 300.
[0110] As an example, a case will be described in which a print management server that provides a pay-per-use print service utilizes relay server 200. For example, the print management server generates configuration information for each printer under management to transmit remaining ink level information and the number of pages printed each time printing is performed. The print management server then transmits a configuration request to relay server 200 via API server 300, the configuration request including the configuration information, additional information including destination information indicating its own URL, and device identification information of the printer under management. This configuration request is transmitted in steps S2 and S4 of FIG. 3 in the same manner as in terminal device 400. As a result, the configuration process of FIG. 3 is executed, and the configuration information is set in printer 100.
[0111] As a result, each time printing is performed by the printer 100, specific data including remaining ink level information and the number of pages printed is sent from the printer 100 to the relay server 200. When the specific data is sent from the printer 100 to the relay server 200, the data transmission process of FIG. 5 is executed, and combined data including remaining ink level information and the number of pages printed is sent to the print management server via the relay server 200 and the API server 300. This allows the print management server to manage the remaining ink level information and the number of pages printed in the printer 100. For example, if the remaining ink level in the printer 100 falls below a reference level, the print management server executes a process to ship refill ink to the user of the printer 100. For example, the print management server executes a process to tally the number of pages printed by the printer 100 by month and charge the user of the printer 100. In this way, the print management server can provide a printing service that uses the printer 100.
[0112] Furthermore, for example, the print management server can send the log information of the printer 100 to another server by including the URL of the other server as the destination information included in the setting request. For example, the destination of the remaining ink amount information may be a shipping server that executes the ink shipping process, and the destination of the number of printed sheets may be a billing server that executes the billing process for printing.
[0113] (4) In the above embodiment, it is assumed that the additional information includes destination information. Alternatively, the additional information does not need to include destination information. In this case, for example, in the data generation process of FIG. 5, when the control unit CP of the relay server 200 receives the additional information from the database DBs in S30, the control unit CP determines whether the additional information includes destination information. If the additional information includes destination information, the control unit CP combines the additional information with the specific data to generate combined data, as shown in S32 and S34 of FIG. 5, and transmits the combined data to the API server 300. If the additional information does not include destination information, the control unit CP instructs the database DBs to store the specific data, as in S66 and S68 of FIG. 7, and stores the specific data in the database DBs. If the additional information does not include destination information, the API server 300 cannot transfer the combined data SD2. Therefore, the terminal device 400 receives the specific data through the data acquisition process of FIG. 8.
[0114] (5) The setting request in FIG. 4A is an example and is not limited to this. For example, the setting information included in the setting request includes information on the transmission target and information on the transmission timing, but it may also include only one of the information on the transmission target and the information on the transmission timing. In this case, the other of the information on the transmission target and the information on the transmission timing may be set as a default setting in the printer 100. The setting information may also include setting information for other setting items. For example, the setting information may include settings for performing various operations, such as setting information for turning on the power once a day and connecting to a network.
[0115] (6) In the above embodiment, the printer 100 is used as the device used for the service, but other types of devices may also be employed. The device may be, for example, a scanner or digital camera that generates image data by optically reading an object using an image sensor. The device may be, for example, a sewing machine that forms an image such as a pattern on fabric by embroidering it with thread, or a terminal device such as a smartphone or personal computer.
[0116] Furthermore, the device is not limited to an image processing device such as a printer, scanner, camera, or sewing machine, but may be any device that can be connected to the Internet (IT). For example, the device may be a device unrelated to images, such as a home appliance such as a refrigerator or microwave, or may be a music player or a temperature sensor.
[0117] The content of the setting information, for example, the content of the transmission target and the transmission timing, is changed as appropriate depending on the type of device used and the mode of the service. The content of the additional information is also changed as appropriate depending on the type of device used and the mode of the service. In general, services that use devices may employ, for example, services that can be realized by storing setting information in the device and remotely controlling the device, or services that can be realized by storing setting information in the device and collecting information about the device from the device.
[0118] (7) In the above embodiments, part of the configuration realized by hardware may be replaced by software, and conversely, part or all of the configuration realized by software may be replaced by hardware.
[0119] The present invention has been described above based on examples and modifications, but the above-described embodiments of the invention are intended to facilitate understanding of the present invention and are not intended to limit the present invention. The present invention may be modified or improved without departing from the spirit and scope of the claims, and equivalents thereof are also included in the present invention. [Explanation of symbols]
[0120] 1000...system, 100...printer, 110...CPU, 120...volatile storage device, 130...nonvolatile storage device, 140...display unit, 150...operation unit, 170...printing mechanism, 190...ink tank, 200...relay server, 210...CPU, 220...volatile storage device, 230...nonvolatile storage device, 300...API server, 310...CPU, 320...volatile storage device, 330...nonvolatile storage device, 400...terminal device, 500...mail server, AP...application program, DBp, DBs...database, 180...communication IF, 280...communication IF, 380...communication IF, IT...Internet, PGa, PGp, PGs...computer program
Claims
1. A server communicably connected to a device and an external device, a request receiving unit that receives a setting request from the external device to request the device to perform settings related to a service that uses the device, the setting request including device identification information that identifies the device, setting information that indicates content of settings related to the service, and additional information; a storage processing unit that, when the setting request is received, stores the additional information in a database in association with the device identification information included in the setting request; a setting information transmitting unit that, when the setting request is received, transmits the setting information included in the setting request to the device identified by the device identification information included in the setting request, and does not transmit the additional information included in the setting request to the device; a data receiving unit that receives, from the device, first data including device information and the device identification information that are transmitted based on the setting information; an additional information acquisition unit that, when the first data is received, acquires from the database the additional information that has been stored in association with the device identification information included in the first data; a data transmitting unit that, when the first data is received, transmits to the external device transmission data including the device information included in the first data and the additional information acquired from the database; A server comprising:
2. 2. The server of claim 1, the additional information includes destination information indicating a destination of the device information, The destination information is used by the external device receiving the transmission data to transmit the device information included in the transmission data to another device.
3. 2. The server of claim 1, The setting information includes information indicating the timing of execution of multiple transmissions of the device information, and information indicating the content of the device information to be transmitted in the multiple transmissions.
4. 2. The server of claim 1, The additional information includes instruction information that instructs either the external device or a communication device that receives the device information transmitted from the external device to perform a process using the device information.
5. 5. The server according to claim 4, the device information includes history information indicating an operation history of the device; The instruction information includes information indicating at least one of a save instruction to save the history information, a notification instruction to notify when the history information indicates a specific operation of the device, an analysis instruction to execute a specific analysis process using the history information, and an order designation instruction to designate the order of processing using the history information, on the server.
6. 2. The server of claim 1, the data receiving unit receives, from the device, second data transmitted by the device without receiving the setting information, the second data including the device information and the device identification information; When the second data is received, the storage processing unit stores the device information in a database in association with the device identification information included in the second data; the request receiving unit receives a request for the device information from the external device after the device information is stored in the database; The server, wherein the data transmission unit transmits the device information to the external device when a request for the device information is received.
7. 2. The server of claim 1, the external device includes a first external device and a second external device; the request receiving unit receives the setting request from the first external device; The data transmission unit transmits the transmission data to the second external device.
8. 1. A communication system comprising: a device; An external device; a server communicably connected to the device and the external device; Equipped with The external device is transmitting to the server a setting request for requesting the device to make settings related to a service using the device, the setting request including device identification information for identifying the device, setting information indicating the content of the setting related to the service, and additional information; The server When receiving the setting request, the additional information is stored in a database in association with the device identification information included in the setting request; When receiving the setting request, transmit the setting information included in the setting request to the device identified by the device identification information included in the setting request, but do not transmit the additional information included in the setting request to the device; The device comprises: When receiving the setting information, transmitting first data including device information and the device identification information based on the setting information to the server; The server When receiving the first data, the additional information stored in association with the device identification information included in the first data is acquired from the database; When receiving the first data, the communication system transmits to the external device transmission data including the device information included in the first data and the additional information acquired from the database.
9. 9. The communication system of claim 8, the additional information includes destination information indicating a destination of the device information, The external device is When receiving the transmission data, the communication system transmits the device information included in the transmission data to a destination indicated by the destination information included in the transmission data.
10. A computer program for a server communicatively connected to a device and an external device, a request receiving function that receives a setting request from the external device to request the device to perform settings related to a service that uses the device, the setting request including device identification information that identifies the device, setting information that indicates the content of settings related to the service, and additional information; a storage processing function for storing the additional information in a database in association with the device identification information included in the setting request when the setting request is received; a setting information transmission function that, when the setting request is received, transmits the setting information included in the setting request to the device identified by the device identification information included in the setting request, and does not transmit the additional information included in the setting request to the device; a data receiving function for receiving, from the device, first data including device information and the device identification information transmitted based on the setting information; an additional information acquisition function that, when the first data is received, acquires from the database the additional information that has been stored in association with the device identification information included in the first data; a data transmission function of transmitting, when the first data is received, transmission data including the first data and the additional information acquired from the database to the external device; A computer program that enables a computer to realize the above.
Citation Information
Patent Citations
Communication apparatus, management server, management system, and program
JP2018185651A