Information processing system, information processing device and program

The system ensures coordinated processing by reconnecting and resuming jobs from interrupted points, addressing resource wastage and disconnection issues in information processing systems.

JP7797816B2Active Publication Date: 2026-01-14FUJIFILM BUSINESS INNOVATION CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021156404
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-09-27
Publication Date
2026-01-14
Estimated Expiration
2041-09-27

AI Technical Summary

Technical Problem

When a part of a job executed by an information processing device is handled by an external device, resources like memory are unnecessarily consumed until the external processing is completed, and there is a risk of connection loss between jobs, leading to potential disconnection and resource wastage.

Method used

The system implements a mechanism where the information processing device connects to an external server, instructs it to execute a process, releases resources, and waits for completion confirmation. If the connection is lost, it re-inquires and resumes the job from the interrupted point, ensuring coordinated processing even after disconnection.

Benefits of technology

This approach reduces unnecessary processing duplication and prevents redundant data reception, maintaining processing coordination and resource efficiency even in temporary disconnections.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007797816000001
    Figure 0007797816000001
  • Figure 0007797816000002
    Figure 0007797816000002
  • Figure 0007797816000003
    Figure 0007797816000003
Patent Text Reader

Abstract

To provide an information processing device which can, when causing an external device to execute part of a series of processing, restore the linkage in processing even when a connection to the external device is temporarily cut off.SOLUTION: An information processing device 100 connects to a processing execution server 200 which is connectable from itself and gives instruction to execute processing as a first job, then releases resources used in the first job. The information processing device transmits inquiry to the processing execution server 200 regarding whether or not the processing is completed, and when receiving a response indicating the processing executed by the processing execution server 200 has been completed, executes a second job which is separate from the first job and is linked to the first job. When a connection between the information processing device and the processing execution server 200 is cut before or during the execution of the second job, the information processing device transmits an inquiry to the processing execution server 200 again regarding whether or not the processing is completed, and waits for a response from the processing execution server 200.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system, an information processing device, and a program. [Background technology]

[0002] In data processing by an information processing device, part of a job may be executed by an external device. In this case, the processing is executed while exchanging data and processing results between devices, for example, according to a workflow that defines the individual processes included in the job and the entities that execute each process.

[0003] Patent Document 1 discloses an information processing system in which workflow information defining the order of multiple processes and the information processing device that will be the executing entity for each of the multiple processes defines one information processing device selected from the multiple information processing devices as the executing entity, and each of the multiple processes defined in the workflow information is executed by the information processing device defined as the executing entity in the defined order, and the process defined in the workflow information as being executed by one information processing device selected from the multiple information processing devices is executed by the one information processing device selected in accordance with predetermined judgment conditions. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Patent No. 6264800 Summary of the Invention [Problem to be solved by the invention]

[0005] When a part of the processing of a job executed by an information processing device is executed by an external device, the job related to that processing remains in the information processing device until the processing by the external device is completed, resulting in unnecessary consumption of resources such as memory. Therefore, it is conceivable to execute the operations of the information processing device before the processing by the external device starts and the operations after the processing by the external device is completed as separate jobs, and release the resources after the execution of the earlier job. However, if the connection between the information processing device and the external device is severed after the execution of the earlier job, there is a risk that the connection between the earlier job and the later job will be severed.

[0006] The present invention aims to enable the restoration of processing coordination even if the connection with the external device is temporarily disconnected, compared to a configuration in which, when an information processing device has an external device execute part of a series of processes, the operations before and after the process to be executed by the external device are executed as separate jobs. [Means for solving the problem]

[0007] The present invention according to claim 1 is a processor; The processor: As a first job, the device connects to an external server that can be connected to, instructs the external server to execute a process, and then releases resources used in the first job; inquiring of the external server as to whether the processing has been completed, and waiting for a response from the external server; when a response to the inquiry indicating that the processing by the external server has been completed is received, a second job that is different from the first job and that cooperates with the first job is executed; If the connection between the device itself and the external server is cut off before or during the execution of the second job, the device again inquires of the external server whether the processing has been completed, and receives a response from the external server. Wait, If the connection between the device itself and the external server is lost during the execution of the second job, the second job to be executed after the inquiry is re-executed will be executed from the process interrupted in the previous second job. The information processing device is characterized in that: Claim 2 The present invention relates to When an operation of receiving data from the external server is performed in the second job and the connection between the device itself and the external server is lost before the reception is completed, the processor executes processing in the second job to be executed after re-executing the inquiry from the point where the reception of data was interrupted in the previous second job. Claim 1 The information processing device is described in the above. Claim 3 The present invention relates to a processor; The processor: As a first job, the device connects to an external server that can be connected to, instructs the external server to execute a process, and then releases resources used in the first job; inquiring of the external server as to whether the processing has been completed, and waiting for a response from the external server; when a response to the inquiry indicating that the processing by the external server has been completed is received, a second job that is different from the first job and that cooperates with the first job is executed; if the connection between the device itself and the external server is cut off before or during the execution of the second job, the device again inquires of the external server whether the processing has been completed or not, and waits for a response from the external server; before When a query to the external server is executed again, the external server is notified of information indicating that the query is a re-execution of an already executed query. , love It is an information processing device. Claim 4 The present invention relates to The processor: taking over the authority to execute the second job related to the first job executed by another information processing device; inquiring of the external server based on the execution authority as to whether the processing has been completed, and waiting for a response from the external server; 10. The method of claim 1, wherein the second job is executed when a response indicating that the processing by the external server has been completed is received in response to the inquiry. or claim 3 The information processing device is described in the above. Claim 5 The present invention relates to When the processor makes the inquiry based on the execution authority of the second job taken over from the other information processing device, the processor notifies the external server of information indicating that the inquiry is a re-execution of an inquiry that has already been executed by the other information processing device. Claim 4The information processing device is described in the above. Claim 6 The present invention relates to An information processing device and a server are provided, The information processing device includes: Sending data to be processed to the server as a first job; Inquiring the server as to whether the processing has been completed and waiting for a response from the server; when receiving a response to the inquiry indicating that the processing by the server has been completed, acquiring, as a second job separate from the first job, data of a processing result for the data to be processed that was sent to the server by the first job; if the connection between the device itself and the server is cut off before or during the execution of the second job, the device again inquires of the server whether the processing has been completed and waits for a response from the server; The server acquiring data to be processed from the information processing device and executing processing on the data; In response to the inquiry from the information processing device, a response indicating that the processing has been completed is sent; The information processing system is characterized in that, in response to a request from the information processing device after the response, data of the processing result is transmitted to the information processing device. Claim 7 The present invention relates to When the connection between the information processing device and the server is cut off before the transmission of the processing result data is completed, the server resumes the transmission of the data in response to a request from the information processing device after responding to the re-execution of the inquiry, and starts the transmission of the data from the part where the transmission was interrupted in the previous transmission. Claim 6 The information processing system is described in Claim 8 The present invention relates to When the server receives an inquiry about processing of the data to be processed received from the information processing device from another information processing device that has the authority to receive the data of the processing result, the server responds to the inquiry from the other information processing device, and transmits the data of the processing result to the other information processing device in response to a request from the other information processing device after the response. Claim 6 The information processing system is described in Claim 9 The present invention relates to On the computer, a process of connecting to an external server connectable from the device itself as a first job, instructing the external server to execute a process, and then releasing resources used in the first job; a process of inquiring of the external server as to whether the process has been completed or not, and waiting for a response from the external server; a process of executing a second job that is different from the first job and cooperates with the first job when a response indicating that the processing by the external server has been completed is received in response to the inquiry; a process of inquiring again of the external server whether or not the processing has been completed and waiting for a response from the external server when the connection between the device itself and the external server is lost before or during the execution of the second job; If the connection between the device itself and the external server is lost during the execution of the second job, in the second job to be executed after the inquiry is re-executed, a process to be executed from the process interrupted in the previous second job; The program is characterized by executing the following. The present invention according to claim 10 is On the computer, a process of connecting to an external server connectable from the device itself as a first job, instructing the external server to execute a process, and then releasing resources used in the first job; a process of inquiring of the external server as to whether the process has been completed or not, and waiting for a response from the external server; a process of executing a second job that is different from the first job and cooperates with the first job when a response indicating that the processing by the external server has been completed is received in response to the inquiry; a process of inquiring again of the external server whether or not the processing has been completed and waiting for a response from the external server when the connection between the device itself and the external server is lost before or during the execution of the second job; When a query to the external server is to be executed again, a process of notifying the external server of information indicating that the query is to be executed again; The program is characterized by executing the following. [Effects of the Invention]

[0008] According to the invention of claim 1, In comparison with a configuration in which the second job is simply re-executed when the connection between the local device and the external server is lost, unnecessary duplication in the processing of the second job can be reduced. Claim 2 According to the invention, compared to a configuration in which the second job is simply re-executed, it is possible to prevent redundant reception of data that has already been received. Claim 3 According to the invention, compared to a configuration in which a query is simply re-executed, it is possible to suppress the occurrence of problems in the external server due to duplication of queries. Claim 4 According to the invention, it is possible to cope with a case where an information processing device cannot execute a second job, compared to a configuration in which only an information processing device that executed a first job can execute a second job. Claim 5 According to the invention, compared to a configuration in which a query is simply re-executed based on the inherited execution authority, it is possible to suppress the occurrence of problems in the external server due to overlapping queries from different information processing devices. Claim 6 According to the invention, compared to a configuration in which the operations before and after the processing that the information processing device has the server execute as separate jobs, even if the connection between the information processing device and the server is lost, the coordination between the lost processes can be restored after the connection is restored. Claim 7 According to the invention, compared to a configuration in which the transmission of the processing result data is simply executed again, it is possible to avoid redundant transmission of data that has already been transmitted. Claim 8 According to the invention, compared to a configuration in which only the information processing device that sent data to the server can obtain the processing results, it is possible to deal with cases in which an information processing device whose connection with the server has been interrupted does not recover. According to the invention of claim 9, in a computer having the program of the present invention installed, when the connection between the device itself and an external server is lost, unnecessary duplication in the processing of the second job can be reduced compared to a configuration in which the second job is simply re-executed. According to the invention of claim 10, in a computer on which the program of the present invention is installed, Compared to a configuration in which the query is simply re-executed, this configuration can prevent problems caused by duplicate queries in the external server. [Brief explanation of the drawings]

[0009] [Figure 1] 1 is a diagram showing the overall configuration of an information processing system according to an embodiment of the present invention. [Figure 2] FIG. 1 is a diagram illustrating a configuration of an image processing device. [Figure 3] FIG. 10 is a sequence diagram showing data exchange between the image processing device and the processing execution server for the first job. [Figure 4] FIG. 10 is a sequence diagram showing data exchange between the image processing device and the processing execution server for the second job. [Figure 5] 10 is a flowchart illustrating an operation of the information processing device. [Figure 6] 10 is a flowchart showing the operation of processing execution. [Figure 7] FIG. 10 is a sequence diagram showing an operation when the connection between the image processing apparatus and the processing execution server is disconnected in the second job. [Figure 8] 10 is a flowchart illustrating an operation of the information processing device when the connection between the information processing device and the process execution server is disconnected. [Figure 9] 10 is a flowchart illustrating an operation of the process execution server when the connection between the information processing device and the process execution server is disconnected. [Figure 10] FIG. 10 is a diagram illustrating a first modified example of the information processing system according to the present embodiment. [Figure 11] FIG. 10 is a diagram illustrating a second modified example of the information processing system according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[0011] <System configuration> 1 is a diagram showing the overall configuration of an information processing system according to this embodiment. The information processing system of this embodiment includes an information processing device 100, a processing execution server 200, and a management server 300. The information processing device 100 is a device that executes data processing. In addition to a personal computer, the information processing device 100 may be any of a variety of devices that have a data processing function and can be connected to the processing execution server 200 and management server 300, which are external devices, via a network.

[0012] The processing execution server 200 is a server that acquires data from the information processing device 100 and executes processing. The processing execution server 200 is a server provided on a network, and may be configured as a single server machine, or may be realized by a virtual server or cloud server in which the functions of the processing execution server 200 are realized by multiple servers. The processing execution server 200 is an example of an external server. The management server 300 is a storage server that stores and manages data. The management server 300 stores data of the processing results by the information processing device 100 and the processing execution server 200. The management server 300 is an example of an external device.

[0013] The information processing device 100, the process execution server 200, and the management server 300 are connected via a network. In the configuration shown in Fig. 1, a firewall 400 is set up between the information processing device 100 and the process execution server 200, and the information processing device 100 and the management server 300 are protected by this firewall 400. Therefore, the information processing device 100 can access the process execution server 200, but the process execution server 200 cannot access the information processing device 100 or the management server 300 beyond the firewall 400.

[0014] As described above, the information processing device 100 can be realized using various devices that perform data processing. As an example, consider a case where the information processing device 100 is realized by an image processing device. Hereinafter, this image processing device as the information processing device 100 will be referred to as the "image processing device 100" by adding the reference numeral of the information processing device 100. In the system shown in FIG. 1 , the image processing device 100 requests the processing execution server 200 to perform part of the processing on the data to be processed, such as an image. The processing execution server 200 processes the image acquired from the image processing device 100. Then, upon receiving a request from the image processing device 100, the processing execution server 200 returns the processing result for the image to the image processing device 100. The image processing device 100 sends the processing result data acquired from the processing execution server 200 to the management server 300.

[0015] Consider a specific example of how the image processing device 100 and the processing execution server 200 are used. For example, the image processing device 100 scans an image of a form, such as an invoice or receipt, and requests the processing execution server 200 to analyze the image of the form. Alternatively, the image processing device 100 may acquire electronic data of the form and request the processing execution server 200 to analyze the form based on the electronic data. Hereinafter, this form image data and electronic data will be collectively referred to as "form data." The processing execution server 200 analyzes the form data acquired from the image processing device 100 and performs data processing according to the form content recognized based on the analysis results. The processing execution server 200 also identifies a storage location for the analysis results and data processing results based on the form content. Then, in response to a request from the image processing device 100, the processing execution server 200 returns the analysis results of the form data and the results of data processing according to the form content. The image processing device 100 sends the analysis results and data processing results acquired from the processing execution server 200 to the management server 300, where they are stored.

[0016] <Configuration of information processing device> 2 is a diagram showing the configuration of image processing device 100. Here, the configuration of image processing device 100 will be described as an example of information processing device 100. Image processing device 100 includes control unit 110, storage unit 120, operation unit 130, display unit 140, image reading unit 150, image forming unit 160, communication unit 170, and image processing unit 180. Each of these functional units is connected to bus 101, and exchanges data via this bus 101.

[0017] The control unit 110 controls the above-mentioned functional units in the image processing device 100. The control unit 110 is also a functional unit that executes various types of data processing. The control unit 110 includes a central processing unit (CPU) 111, which is a calculation means, and a random access memory (RAM) 112 and a read-only memory (ROM) 113, which are storage means. The RAM 112 is a main memory and is used as a working memory when the CPU 111 performs calculations. The ROM 113 stores programs and data such as pre-prepared setting values, and the CPU 111 reads the programs and data directly from the ROM 113 to execute the processing. The programs and data are also stored in the storage unit 120. The CPU 111 loads the programs stored in the storage unit 120 into the RAM 112 and executes them. The various data processing and control functions of the image processing device 100, which will be described later, are realized, for example, by the CPU 111 executing programs.

[0018] The storage unit 120 is a functional unit that stores programs and data to be executed by the CPU 111 as described above, as well as various data generated by various operations, such as image data read by the image reading unit 150. The storage unit 120 is realized by a storage device such as a magnetic disk device or an SSD (Solid State Drive).

[0019] The operation unit 130 is a functional unit that accepts user operations. The operation unit 130 is configured, for example, by hardware keys, a touch sensor that outputs a control signal according to the position pressed or touched by a finger, etc. The operation unit 130 may be configured as a touch panel that combines a touch sensor with a liquid crystal display that constitutes the display unit 140.

[0020] The display unit 140 is a functional unit that displays information images that present various information to the user, preview images of images to be processed such as read or output, operation images for the user to perform operations, etc. The display unit 140 is configured, for example, with a liquid crystal display. The above-mentioned operation unit 130 and the display unit 140 can be combined to be used as a user interface means for the user to input and output information to and from the image processing device 100.

[0021] The image reading unit 150 is a functional unit that optically reads an image on a document. Examples of image reading methods include a CCD method in which light irradiated onto a document from a light source is reduced by a lens and reflected light is received by a CCD (Charge Coupled Device), and a CIS method in which light irradiated onto a document in sequence from an LED (Light Emitting Diode) light source is received by a CIS (Contact Image Sensor).

[0022] The image forming unit 160 is a functional unit that forms an image based on image data on a recording material such as paper using an image forming material. As a method for forming an image on a recording material, for example, an electrophotographic method is used in which toner is used as the image forming material and the toner attached to a photosensitive member is transferred to the recording material to form an image.

[0023] The communication unit 170 is a functional unit that transmits and receives commands and data to and from an external device. An interface according to the communication method with the external device is used as the communication unit 170. The connection with the external device may be via a network or may be a direct connection. The communication line may be a wired line or a wireless line.

[0024] The image processing unit 180 is a functional unit that includes a processor as a calculation means and a working memory, and performs image processing such as color correction and gradation correction on an image represented by image data. Note that the CPU 111 of the control unit 110 may serve as the processor, and the RAM 112 of the control unit 110 may serve as the working memory.

[0025] <Data transfer and processing procedures> Next, a description will be given of the procedure for transferring and processing data between the image processing device 100 and the processing execution server 200. In the following description, the above-mentioned form data will be used as an example of data to be processed.

[0026] The image processing device 100 accesses the processing execution server 200, causes the processing execution server 200 to execute part of the processing, such as analysis, on the form data to be processed, and obtains the processing results. Here, the image processing device 100 executes, as separate jobs, the operation of sending the form data to be processed to the processing execution server 200 and the operation of obtaining the processing results from the processing execution server 200. Hereinafter, the operation of sending the data to be processed to the processing execution server 200 will be referred to as a first job, and the operation of obtaining the processing results from the processing execution server 200 will be referred to as a second job.

[0027] By dividing these operations into separate jobs, after the first job is completed and before the second job is started, the image processing device 100 can release resources such as memory space used to execute the jobs and use them to execute other processes. However, because these operations are divided into separate jobs, a mechanism is required for the image processing device 100 and the process execution server 200 to recognize that these jobs are related jobs relating to the same processing target. Here, as an example, a job ID is set as identification information used to identify related jobs.

[0028] Furthermore, the process execution server 200 cannot access the image processing device 100 through the firewall 400. Therefore, in order for the process execution server 200 to send the processing results to the image processing device 100, the image processing device 100 must issue a request to the process execution server 200 to send the processing results. This requires a mechanism for the image processing device 100 to recognize that the processing by the process execution server 200 has been completed. Here, it is assumed that the image processing device 100 performs an operation to inquire of the process execution server 200 as to whether or not the processing has been completed.

[0029] 3 is a sequence diagram showing data exchange between the image processing device 100 and the process execution server 200 for the first job. First, the image processing device 100 (referred to as "information processing device" in the figure) makes a connection request to the process execution server 200 (a). In response to this connection request, the process execution server 200 generates a job ID and sends it to the image processing device 100 (b). When the image processing device 100 acquires the job ID from the process execution server 200, it adds the acquired job ID to the form data to be processed and sends it to the process execution server 200 (c).

[0030] When the processing execution server 200 receives the data to be processed and the job ID, it executes processing on the received form data (d). Here, the processing execution server 200 analyzes the received form data and recognizes the contents of the form. Then, the processing execution server 200 executes data processing according to the recognized contents of the form. Depending on the contents of the data processing, the processing execution server 200 may add information obtained by executing the data processing to the processing result as additional information. For example, when the image processing device 100 stores the processing result by the processing execution server 200 in the management server 300, and if information on the storage destination is obtained from the results of the analysis and data processing by the processing execution server 200, the information on the storage destination is added to the processing result.

[0031] 4 is a sequence diagram showing data exchange between the image processing device 100 and the processing execution server 200 for the second job. After transmitting form data to the processing execution server 200, the image processing device 100 (referred to as "information processing device" in the figure) makes an inquiry to receive a notification of processing completion from the processing execution server 200 (e). The inquiry is made, for example, by long polling. Upon receiving the inquiry from the image processing device 100, the processing execution server 200 completes data processing (d), and then responds to the inquiry to notify the image processing device 100 that the data processing has been completed (f).

[0032] When the image processing device 100 receives a notification from the process execution server 200 indicating that the data processing has been completed, it transmits a request to the process execution server 200 to send the processing results together with the job ID acquired for the first job (g). In response to the transmission request received from the image processing device 100, the process execution server 200 returns the processing results corresponding to the job ID to the image processing device 100 (h). The image processing device 100 transmits the processing results acquired from the process execution server 200 to the management server 300 (i). At this time, if additional information is added to the processing results, the image processing device 100 may execute processing on the processing results acquired from the process execution server 200 based on the acquired additional information. For example, if information on the storage destination of the processing results is added to the processing results as additional information, the image processing device 100 transmits the processing results to the storage destination based on the additional information.

[0033] As described above, in this embodiment, in response to an access from the image processing device 100 to the process execution server 200, the process execution server 200 issues a job ID, and this job ID is shared between the image processing device 100 and the process execution server 200. The image processing device 100 then adds this job ID to the data to be sent to the process execution server 200 for the first job and to the transmission request for obtaining the processing results for the second job. This enables the process execution server 200 to recognize that the data to be processed that was received earlier and the transmission request for the processing results that was received later are from related jobs.

[0034] Furthermore, after transmitting the data to be processed to the process execution server 200, the image processing device 100 queries the process execution server 200 regarding the completion of the process. By responding to this query, the process execution server 200 can notify the image processing device 100 that the processing has been completed across the firewall 400, and the image processing device 100 can recognize that the processing in the process execution server 200 has been completed. The method for this query is not particularly limited as long as the response from the process execution server 200 allows the query to pass through the firewall 400. As an example, using long polling as described above can reduce the cumbersome process of the image processing device 100 having to repeatedly query the process execution server 200 until it receives a response, as occurs with normal polling, etc.

[0035] <Operation of information processing device> FIG. 5 is a flowchart showing the operation of the information processing device 100. Note that in this operation example, the above-mentioned form data will also be described as an example of data to be processed. The image processing device 100 as the information processing device 100 first connects to the process execution server 200, acquires and saves a job ID from the process execution server 200 (S501). The acquired job ID is stored, for example, in the storage unit 120 shown in FIG. 2. Next, the image processing device 100 attaches the acquired job ID to the form data to be processed and transmits it to the process execution server 200 (S502). This starts data processing in the process execution server 200. The above operation corresponds to the operation of the first job by the information processing device 100.

[0036] Next, the image processing device 100 makes an inquiry to the process execution server 200 regarding the completion of the process (S503). The inquiry is made by, for example, long polling. When the image processing device 100 receives a response to the inquiry from the process execution server 200 (S504), the image processing device 100 sends a request to send the processing results to the process execution server 200, along with the job ID acquired in S501 (S505). The image processing device 100 then acquires the processing results from the process execution server 200 (S506). The operations subsequent to the request to send the processing results shown in S505 correspond to the operations of the information processing device 100 for the second job.

[0037] Next, the image processing device 100 determines whether additional information has been added to the acquired processing result. Here, it is assumed that information indicating the storage destination of the processing result can be added as additional information. For example, if the path of the management server 300 as the storage destination is specified depending on the type of form to be processed, or if the storage destination is recorded in the document of the form, the storage destination of the processing result is specified as a result of processing the form data by the processing execution server 200. In such cases, information on the storage destination specified by data processing is added to the processing result as additional information.

[0038] If additional information is added to the processing result (YES in S507), the image processing device 100 then determines, based on the additional information, whether or not a change is required in the parameters of the process to be executed on the processing result of the processing execution server 200. For example, in the example in which the storage destination information is added, if the storage destination is determined in advance to be the management server 300 and the path of the management server 300 is specified by the additional information, the path must be added as a parameter in the storage destination information. Also, if the storage destination is determined in advance up to the path of the management server 300, but the path specified by the additional information is different from the predetermined path, the path must be changed as a parameter in the storage destination information. On the other hand, if the storage destination is determined in advance up to the path of the management server 300 and the path specified by the additional information is the same as the predetermined path, the path must not be changed as a parameter in the storage destination information.

[0039] If the parameters need to be changed (YES in S508), the image processing device 100 changes the relevant parameters based on the additional information (S509). Then, the image processing device 100 transmits the processing results to the management server 300, which is a storage server, in accordance with the changed parameters, and stores them (S510). Also, if no additional information is added to the processing results acquired from the processing execution server 200 (NO in S507) or if there is no need to change the parameters based on the additional information (NO in S508), the image processing device 100 transmits the processing results to the management server 300 in accordance with the original settings, and stores them (S510).

[0040] <Operation of the processing execution server> 6 is a flowchart showing the operation of the process execution server 200. When the process execution server 200 receives a connection request from the image processing device 100, it generates and saves a job ID and transmits the generated job ID to the image processing device 100 (S601). Thereafter, the process execution server 200 receives the form data to be processed, to which the job ID has been added, from the image processing device 100 (S602). The process execution server 200 also receives an inquiry from the image processing device 100 regarding the completion of processing (S603).

[0041] The processing execution server 200 executes processing on the received form data (S604), and when the processing is complete, transmits a response to the inquiry accepted in S603 to the image processing device 100 (S605, S606). After that, when the processing execution server 200 receives a processing result acquisition request with the job ID generated in S601 added from the image processing device 100 (YES in S607), it transmits the processing result corresponding to the received job ID to the image processing device 100 (S608).

[0042] On the other hand, if there is no need to send the processing results to the image processing device 100, the image processing device 100 does not send a request to obtain the processing results (NO in S607), and the processing execution server 200 ends the processing. A case where there is no need to send the processing results to the image processing device 100 is a case where the image processing device 100 does not process the processing results of the processing execution server 200. For example, this may be the case where the processing results are not returned to the image processing device 100 but are retained in the processing execution server 200, or where they are stored in a server located outside the firewall 400 (on the same side as the processing execution server 200). Whether or not there is a need to send the processing results to the image processing device 100 is predetermined, and may be specified when the form data to be processed is received, or may be identified as a result of data processing.

[0043] <Operation when the connection between the information processing device and the processing execution server is disconnected> Next, the operations of the information processing device 100 and the process execution server 200 when the connection between the information processing device 100 and the process execution server 200 is disconnected will be described. When the process execution server 200 executes data processing in response to a request from the image processing device 100 (which serves as the information processing device 100), an event may occur in which the image processing device 100 is unable to obtain the processing results of the process execution server 200. For example, after the first job is completed, a failure may occur in the image processing device 100, making it unable to connect to the process execution server 200, or the image processing device 100 may be powered off. In such a case, after the connection between the image processing device 100 and the process execution server 200 is restored, it is necessary to perform an operation to once again send a transmission request from the image processing device 100 to the process execution server 200 to obtain the processing results.

[0044] Fig. 7 is a sequence diagram showing the operation when the connection between the image processing device 100 and the process executing server 200 is disconnected during the second job. Fig. 7 shows the operation during the second job, but since the focus here is on the resumption of data exchange between the image processing device 100 and the process executing server 200, the transmission of data from the image processing device 100 to the management server 300 shown in Fig. 4 (operation (i) in Fig. 4) is omitted.

[0045] 7, the operations of (d) data processing in the process executing server 200, (e) inquiry from the image processing device 100 to the process executing server 200, (f) notification from the process executing server 200 to the image processing device 100, and (g) request from the image processing device 100 to the process executing server 200 to transmit the processing results are the same as the operations (d) to (g) shown in Fig. 4. Next, the process executing server 200 transmits the processing results in response to the request from the image processing device 100, but it is assumed that the connection between the image processing device 100 and the process executing server 200 is cut off and the transfer of the processing results is interrupted (h').

[0046] When the connection between the image processing device 100 and the process executing server 200 is restored, the image processing device 100 makes a new inquiry to the process executing server 200 to receive notification of the completion of processing (e'). This inquiry may also notify the process executing server 200 that this is a second inquiry. Upon receiving the inquiry from the image processing device 100, the process executing server 200 responds to the inquiry and notifies the image processing device 100 that the data processing has been completed (f').

[0047] When the image processing device 100 receives a notification from the process execution server 200 indicating that the data processing has been completed, it transmits a request to resend the processing results together with the job ID acquired in the first job to the process execution server 200 (g'). In response to the transmission request received from the image processing device 100, the process execution server 200 returns the processing results corresponding to the job ID to the image processing device 100 (h).

[0048] In the above example, the operation was described when the transmission of processing results from the processing execution server 200 to the image processing device 100 was interrupted due to the disconnection between the image processing device 100 and the processing execution server 200. In contrast, if the connection between the image processing device 100 and the processing execution server 200 is disconnected before the processing results are transmitted from the processing execution server 200 to the image processing device 100, the image processing device 100 re-executes the query after the connection is restored, and subsequent communication is carried out. Note that if the connection between the image processing device 100 and the processing execution server 200 is disconnected before the image processing device 100 makes the first query (e), the image processing device 100 can simply make the first query (e) as normal operation after the connection is restored.

[0049] <Operation of information processing device when connection is disconnected> 8 is a flowchart showing the operation of the information processing device 100 when the connection between the information processing device 100 and the process executing server 200 is disconnected. When the connection with the process executing server 200 is disconnected (S801), the image processing device 100 as the information processing device 100 first determines whether or not the processing result has been acquired from the process executing server 200. If the processing result has already been acquired (YES in S802), the image processing device 100 does not need to acquire the processing result again. Therefore, the image processing device 100 proceeds to the operation from S507 onwards shown in FIG. 5.

[0050] If the processing result has not been acquired (NO in S802), the image processing device 100 re-inquires of the process execution server 200 about the completion of the process (S803). When the image processing device 100 makes the first inquiry, it stores information indicating that the inquiry has been made in a non-volatile storage device (e.g., the storage unit 120 shown in FIG. 2). This information is erased when a response to the inquiry is received. After the image processing device 100 disconnects from the process execution server 200, it checks the storage device and, if there is an inquiry for which a response has not been received, re-inquires. The timing for making the inquiry may be, for example, after a certain time has elapsed after the connection with the process execution server 200 is disconnected. If there is no response to the inquiry from the process execution server 200 for, for example, a certain time (NO in S804), the image processing device 100 determines that the connection with the process execution server 200 has not been restored and repeats the inquiry about the completion of the process. Alternatively, the image processing device 100 and the process execution server 200 may communicate with each other, and the query may be re-executed after it is confirmed that the connection with the process execution server 200 has been restored.

[0051] If there is a response to the inquiry from the process execution server 200 (YES in S804), the image processing device 100 determines whether reception of the processing result has been interrupted. In other words, the image processing device 100 determines whether the connection with the process execution server 200 was cut off while the processing result was being received. If reception of the processing result has been interrupted (YES in S805), the image processing device 100 identifies the point at which reception was interrupted (S806) and resumes reception of the processing result from the interrupted point onwards (S807).

[0052] Here, in order to identify the point where reception was interrupted, when transmitting processing results from the processing execution server 200 to the image processing device 100, it is necessary for at least one of the processing execution server 200 and the image processing device 100 to constantly monitor how much of the entire processing results has been transmitted. For example, if there are multiple data files of processing results to be transmitted, information on whether transmission has been completed for each file may be stored. In addition, various existing mechanisms for monitoring the progress of data transfer may be applied.

[0053] The interruption point may be identified based on the processing result data that has not yet been transmitted by the processing execution server 200, or may be identified based on the processing result data that has been completely received by the image processing device 100.

[0054] In the former case, the processing execution server 200 identifies the interruption point and transmits the unsent processing result data. Therefore, the image processing device 100 does not need to retain information on the processing results that have been received, and simply requests the processing execution server 200 to resend the processing results, and reception from the interruption point onwards is resumed.

[0055] In the latter case, information on the processing results that has been received by the image processing device 100 is sent to the processing execution server 200. Then, based on this information, the processing execution server 200 identifies and transmits processing result data that has not been received by the image processing device 100. Therefore, compared to the former case, the load on the image processing device 100 is greater.

[0056] However, if there is a time lag between the time when the data transmitted from the process execution server 200 is received by the image processing device 100 and the time when the connection between the process execution server 200 and the image processing device 100 may be disconnected during that time, the latter method may be more likely to identify the interruption point. In the operation example shown in Fig. 8, the latter method is assumed, and the image processing device 100 identifies the interruption point.

[0057] If the reception of the processing results has not been interrupted (NO in S805), in other words, if the connection was disconnected before the reception of the processing results began, the image processing device 100 requests the processing execution server 200 to receive all the data of the processing results (S808).

[0058] <Processing execution server behavior when connection is disconnected> 9 is a flowchart showing the operation of the process execution server 200 when the connection between the information processing device 100 and the process execution server 200 is disconnected. When the process execution server 200 disconnects the connection with the image processing device 100 (which serves as the information processing device 100) (S901) and then receives another inquiry about the completion of processing from the image processing device 100 (S902), it transmits a response to the inquiry (S903). This inquiry is made, for example, together with a notification indicating that an inquiry that has already been made is being re-executed, and this causes the process execution server 200 to recognize that this is a re-execution of an inquiry that was made before the connection between the information processing device 100 and the process execution server 200 was disconnected.

[0059] Next, the process executing server 200 determines whether the transmission of the processing result has been interrupted. In other words, the process executing server 200 determines whether the connection with the image processing device 100 was interrupted during the transmission of the processing result. If the transmission of the processing result has been interrupted (YES in S904), the process executing server 200 identifies the point at which the transmission was interrupted (S905) and resumes the transmission of the processing result from the interrupted point onwards (S906).

[0060] If the transmission of the processing results has not been interrupted (NO in S904), in other words, if the connection was disconnected before the transmission of the processing results began, the processing execution server 200 transmits all data of the processing results in response to a request from the image processing device 100 (S907).

[0061] <First Modification> In this embodiment, the operation of the information processing device 100 sending the form data to be processed to the processing execution server 200 and the operation of obtaining the processing results from the processing execution server 200 are considered to be separate jobs. Utilizing this, as a modified example of this embodiment, a configuration may be adopted in which the first job and the second job are executed by different information processing devices 100. In other words, it may be possible to set execution authority for a second job related to a first job executed by one information processing device 100 to another information processing device 100. In this case, the other information processing device 100 executes the second job for which execution authority has been set, and obtains data of the processing result for the data to be processed that has been sent to the server by the first job related to this second job.

[0062] When the processing execution server 200 executes data processing in response to a request from the information processing device 100, an event may occur in which the information processing device 100 is unable to obtain the processing results of the processing execution server 200. For example, after the first job is completed, a failure may occur in the information processing device 100, making it unable to connect to the processing execution server 200, or the information processing device 100 may be powered off, or another process with a heavy load may be started in the information processing device 100. In such cases, the second job may be taken over and executed by an information processing device 100 other than the information processing device 100 that executed the first job. The execution authority for the second job is taken over by the information processing device 100 that executed the first job passing a job ID to the other information processing device 100.

[0063] From the viewpoint of the information processing device 100 that takes over the execution authority for the second job, this information processing device 100 takes over the execution authority for the second job related to the first job executed by the other information processing device 100, and executes the second job based on this execution authority. This information processing device 100 acquires the job ID set for the first job executed by the other information processing device 100, and adds this job ID to the second job to make a request to the process execution server 200 to acquire data of the processing result. Then, the information processing device 100 acquires the processing result of the data identified based on this job ID.

[0064] Fig. 10 is a diagram showing a first modified example of the information processing system according to the present embodiment. In the example shown in Fig. 10, the information processing device 100 that executes the first job is referred to as the information processing device 100a with the suffix "a", and the information processing device 100 that executes the second job is referred to as the information processing device 100b with the suffix "b".

[0065] In the configuration shown in FIG. 10, the information processing device 100a requests the process execution server 200 to perform part of the processing on the data to be processed as a first job. The process execution server 200 processes the data acquired from the information processing device 100a. Meanwhile, the information processing device 100b requests the process execution server 200 to send the processing results as a second job. Upon receiving the request from the information processing device 100b, the process execution server 200 returns the processing results to the information processing device 100b. The information processing device 100b sends the processing result data acquired from the process execution server 200 to the management server 300.

[0066] In this embodiment, a job ID is used as a mechanism for the image processing device 100 and the process execution server 200 to recognize that the first job and the second job are related jobs for the same processing target. Specifically, the process execution server 200 issues a job ID in response to an access from the information processing device 100a to the process execution server 200. The process execution server 200 then recognizes that these operations are related jobs by adding this job ID to the transmission of the data to be processed (the first job) and the transmission request of the processing results (the second job). When the process execution server 200 receives a request for the processing results, with the job ID added, from another information processing device 100b different from the information processing device 100a that performed the first job, the process execution server 200 transmits the processing results of the data identified by this job ID to the information processing device 100b.

[0067] 7, if the connection between the process execution server 200 and the information processing device 100a is disconnected while the process result is being sent from the process execution server 200 to the information processing device 100a, the other information processing device 100b may take over the second job and acquire the process result. In this case, even if the information processing device 100a had acquired part of the process result data in the interrupted communication, the information processing device 100b does not have that data and therefore receives all of the process result data from the process execution server 200. Furthermore, if the connection between the process execution server 200 and the information processing device 100a is disconnected after the information processing device 100a makes an inquiry regarding the completion of the process, the information processing device 100b notifies the process execution server 200 that the inquiry regarding the completion of the process is a repeat inquiry.

[0068] In this modification, the job ID is used in the second job, and the job ID is passed from the information processing device 100a to the information processing device 100b. Here, if it is known in advance that the information processing device 100a will have difficulty executing the second job, such as when performing processing with a high load, the information processing device 100b can be identified in advance and the job ID can be transferred and stored. On the other hand, if the information processing device 100a suddenly becomes unable to execute the second job due to a failure or the like, the job ID cannot be stored in the information processing device 100b in advance. Therefore, a mechanism is needed that makes the job ID available in the information processing device 100b after it is determined that the information processing device 100a cannot execute the second job.

[0069] As an example, the job ID may be stored in a storage device that can be shared by the information processing device 100a and the information processing device 100b, so that the job ID can be used when the information processing device 100b needs to execute the second job. Also, if the number of information processing devices 100b that can execute the second job is small, the job ID may be copied in advance and passed to and stored in each information processing device 100b.

[0070] Furthermore, when the information processing device 100b executes the second job on behalf of the information processing device 100a, it is possible to set the authority to execute the second job for the information processing device 100b rather than simply transferring the job ID. For example, the process execution server 200 or another server (hereinafter, these servers will be referred to as "authority management servers") may manage the authority to execute the second job, accept a request to execute the second job on behalf of the information processing device 100a, and set the authority to execute the second job on behalf of the information processing device 100a. In this case, the authority to set the authority to execute the second job on behalf of the information processing device 100a may be limited to specific users (hereinafter, these administrators and users will be referred to as "authorized users"), such as the administrator of the information processing device 100a or the user who executed the first job. The authorized user is identified based on, for example, login information used when the first job was executed or management information of the information processing device 100a.

[0071] The authorized user connects to the authority management server using his / her own terminal device and requests authority to execute the second job on his / her behalf. Here, the authorized user's terminal device is, for example, a personal computer that can connect to the authority management server via a network. The authority to execute the proxy is set, for example, by the authority management server issuing a passcode and notifying the authorized user's terminal device. After obtaining the passcode, the authorized user inputs the passcode into the information processing device 100b to execute the second job. The information processing device 100b notifies the processing execution server 200 of the input passcode, makes an inquiry regarding the completion of the processing and a request to obtain the processing results, and obtains the processing results.

[0072] <Second Modification> In this embodiment, the processing results of the process execution server 200 are stored in the management server 300, which is located inside the firewall 400 (on the same side as the information processing device 100). Therefore, the process execution server 200 returns the processing results in response to a request from the information processing device 100, and the information processing device 100 sends the acquired processing results to the management server 300. In contrast, if the management server 300 is located outside the firewall 400 (on the same side as the process execution server 200), the process execution server 200 does not need to send the processing results to the management server 300 via the information processing device 100.

[0073] Fig. 11 is a diagram showing a second modified example of the information processing system according to this embodiment. In the configuration shown in Fig. 11, the management server 300 is provided outside the firewall 400 (on the same side as the process execution server 200). Therefore, the process execution server 200 does not require a transmission request from the information processing device 100, and after processing of the data to be processed is completed, it transmits the processing results directly to the management server 300.

[0074] Here, when the information processing device 100 needs to recognize whether or not the processing of the processing execution server 200 has been completed, it may make an inquiry by long polling or the like, as described with reference to the sequence diagram of Fig. 4 and the flowchart of Fig. 5. In this case, the processing execution server 200 does not return the processing result to the information processing device 100 in response to the inquiry, but returns information indicating that the processing has been completed.

[0075] Although the embodiments of the present invention have been described above, the technical scope of the present invention is not limited to the above-described embodiments. For example, in the above-described embodiment, the information processing device 100 transmits the processing results of the processing execution server 200 acquired in the second job to the management server 300 and stores them therein. However, if an image processing device is used as the information processing device 100, the acquired processing results may be printed out or otherwise processed.

[0076] 7 to 9, when the interrupted second job is resumed, the transfer of the processing results is resumed from the interrupted point. In contrast, for the second job that is executed after the connection between the information processing device 100 and the processing execution server 200 is restored, the interrupted point may not be identified and all processing results may always be transferred. In this way, there is no need for the information processing device 100 or the processing execution server 200 to manage the progress of the transmission of the processing results.

[0077] 7 to 9, the operation of transmitting one processing result has been described. In contrast, if the transmission of processing results based on multiple first jobs is interrupted or not transmitted due to a disconnection between the information processing device 100 and the processing execution server 200, after the connection is restored, the information processing device 100 may specify the order in which the multiple processing results are transmitted, or may selectively request the transmission of only some of the multiple processing results. Various other modifications and alternative configurations that do not depart from the scope of the technical concept of the present invention are included in the present invention. [Explanation of symbols]

[0078] 100...information processing device (image processing device), 110...control unit, 111...CPU, 112...RAM, 113...ROM, 120...storage unit, 130...operation unit, 140...display unit, 150...image reading unit, 160...image forming unit, 170...communication unit, 180...image processing unit, 200...processing execution server, 300...management server

Claims

1. a processor; The processor: As a first job, the device connects to an external server that can be connected to, instructs the external server to execute a process, and then releases resources used in the first job; inquiring of the external server as to whether the processing has been completed, and waiting for a response from the external server; when a response indicating that the processing by the external server has been completed is received in response to the inquiry, a second job is executed that is different from the first job and that cooperates with the first job; if the connection between the device itself and the external server is cut off before or during execution of the second job, the device again inquires of the external server whether or not the processing has been completed, and waits for a response from the external server; An information processing device characterized in that, if the connection between the device and the external server is lost during execution of the second job, the second job to be executed after re-executing the query is executed from the processing that was interrupted in the previous second job.

2. The information processing device according to claim 1, characterized in that, in the second job, if an operation of receiving data from the external server is performed and the connection between the processor and the external server is lost before the reception is completed, the processor executes processing in the second job to be executed after re-executing the query from the point where the reception of data was interrupted in the previous second job.

3. A processor is provided, The processor: As a first job, the device connects to an external server that can be connected to, instructs the external server to execute a process, and then releases resources used in the first job; inquiring of the external server as to whether the processing has been completed, and waiting for a response from the external server; when a response indicating that the processing by the external server has been completed is received in response to the inquiry, a second job is executed that is different from the first job and that cooperates with the first job; if the connection between the device itself and the external server is cut off before or during execution of the second job, the device again inquires of the external server whether or not the processing has been completed, and waits for a response from the external server; When a query to the external server is to be executed again, the information processing device notifies the external server of information indicating that the query is to be executed again.

4. The processor: taking over the authority to execute the second job related to the first job executed by another information processing apparatus; inquiring of the external server based on the execution authority as to whether the processing has been completed, and waiting for a response from the external server; 4. The information processing apparatus according to claim 1, wherein the second job is executed when a response to the inquiry indicating that the processing by the external server has been completed is received.

5. The information processing device according to claim 4, characterized in that when the processor makes the inquiry based on the execution authority of the second job inherited from the other information processing device, it notifies the external server of information indicating that the inquiry is a re-execution of an inquiry that has already been executed by the other information processing device.

6. An information processing device and a server are provided, The information processing device includes: Sending data to be processed to the server as a first job; Inquiring the server as to whether the processing has been completed and waiting for a response from the server; When a response indicating that the processing by the server has been completed is received in response to the inquiry, data of a processing result for the data to be processed that was transmitted to the server by the first job is acquired as a second job separate from the first job; if the connection between the device itself and the server is cut off before or during execution of the second job, the device again inquires of the server whether the processing has been completed and waits for a response from the server; The server acquiring data to be processed from the information processing device and executing processing on the data; In response to the inquiry from the information processing device, a response indicating that the processing has been completed is sent; an information processing system that transmits the processing result data to the information processing device in response to a request from the information processing device after the response;

7. The information processing system described in claim 6, characterized in that if the connection between the information processing device and the server is lost before the transmission of the processing result data is completed, the server resumes transmitting the data from the part where transmission was interrupted during the previous transmission when the data transmission is resumed in response to a request from the information processing device after responding to the re-execution of the query.

8. The information processing system described in claim 6, characterized in that when the server receives a processing inquiry for the data to be processed received from the information processing device from another information processing device that has the authority to receive the processing result data, it responds to the inquiry from the other information processing device and, in response to a request from the other information processing device after the response, transmits the processing result data to the other information processing device.

9. On the computer, a process of connecting to an external server connectable from the device itself as a first job, instructing the external server to execute a process, and then releasing resources used in the first job; a process of inquiring of the external server as to whether the process has been completed or not, and waiting for a response from the external server; a process of executing a second job that is different from the first job and cooperates with the first job when a response indicating that the processing by the external server has been completed is received in response to the inquiry; a process of inquiring again of the external server whether or not the processing has been completed and waiting for a response from the external server when the connection between the device itself and the external server is lost before or during the execution of the second job; If the connection between the device itself and the external server is lost during the execution of the second job, the second job is executed after the inquiry is re-executed, and the process is executed from the point where the previous second job was interrupted; A program characterized by causing a program to be executed.

10. A computer comprising: a process of connecting to an external server connectable from the device itself as a first job, instructing the external server to execute a process, and then releasing resources used in the first job; a process of inquiring of the external server as to whether the process has been completed or not, and waiting for a response from the external server; a process of executing a second job that is different from the first job and cooperates with the first job when a response indicating that the processing by the external server has been completed is received in response to the inquiry; a process of inquiring again of the external server whether or not the processing has been completed and waiting for a response from the external server when the connection between the device itself and the external server is lost before or during the execution of the second job; When a query to the external server is to be executed again, a process of notifying the external server of information indicating that the query is to be executed again; A program characterized by causing a program to be executed.

Citation Information

Patent Citations

  • Plug device

    JP1987064800A

  • Cash payout system and program

    JP2016224659A

  • Information processing system, image forming apparatus, information processing apparatus, information processing method, and information processing program

    JP2018156692A

  • Printing system, server, and printing method

    JP2021071879A