Information processing equipment, distributed processing system, and program

The system addresses incomplete processing results in server failures by reallocating tasks and confirming correct destinations, ensuring complete data acquisition and continued processing in distributed server systems.

JP7885547B2Active Publication Date: 2026-07-07FUJIFILM BUSINESS INNOVATION CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJIFILM BUSINESS INNOVATION CORP
Filing Date
2022-03-08
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

In systems with distributed processing across multiple servers, if one server fails, the entire process cannot be completed, leading to incomplete acquisition of processing results.

Method used

The system includes a processor that sends processing commands to servers, verifies device identification information, and upon failure, reallocates tasks to different servers to ensure all processing results are obtained, with notification mechanisms to manage and confirm correct destinations.

Benefits of technology

Ensures complete acquisition of processing results even in server failures by reallocating tasks and confirming correct destinations, reducing communication time and enabling continued processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007885547000001
    Figure 0007885547000001
  • Figure 0007885547000002
    Figure 0007885547000002
  • Figure 0007885547000003
    Figure 0007885547000003
Patent Text Reader

Abstract

To provide a system in which distributed processing is executed by a plurality of servers, and when a failure occurs in one of the servers, can acquire a result of processing distributed to the server.SOLUTION: An information processing device 100 issues, to cloud servers 200 that execute distributed processing, an instruction to execute the processing, acquires, from the individual cloud servers 200, results of the processing distributed to the cloud servers 200 in the distributed processing, when the processing results are not acquired and a predetermined condition is satisfied for individual pieces of processing related to the distributed processing, issues a notification indicating that the processing results are not acquired to the cloud servers 200 that execute the distributed processing, and after the notification, acquires the processing result from the cloud server 200, of the cloud servers 200 that execute the distributed processing, which is different from the cloud server 200 that is distributed with the processing related to the processing result not acquired when the condition is satisfied.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing apparatus, a distributed processing system, and a program.

Background Art

[0002] In data processing, when distributed processing using a plurality of external servers is performed, it is necessary to prepare a mechanism for managing the processes executed in a distributed manner. When not using a server for managing distributed processing, for example, job identification information is added to data transmitted and received between servers or between a server and a terminal device, and processing is managed in the terminal device based on this identification information.

[0003] Patent Document 1 discloses a system including a plurality of client PCs and a printing device. In this system, one client PC divides print data into a plurality of divided data, adds division information and job identification information thereto to generate distributed commission data, and distributes it to other plurality of client PCs. The other client PCs rasterize the divided data included in the received distributed commission data, generate a divided print job including the rasterized divided data, division information, and job information, and transmit it to the printing device. The printing device registers a divided print job record in the spool in association with the received divided print job, and prints, in the order in the print data indicated by the division information, the divided print job in which all the divided print jobs corresponding to the print data have gathered among the divided print jobs registered in the spool.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] In a system where distributed processing is performed by multiple servers, if one of the servers fails and processing results cannot be obtained from that server, the entire process cannot be completed.

[0006] The present invention aims to enable the acquisition of processing results for tasks assigned to a server in a system where distributed processing is performed by multiple servers, in the event of a failure in any of the servers. [Means for solving the problem]

[0007] The present invention according to claim 1 is Equipped with a processor, The aforementioned processor, Send a processing command to the server that performs distributed processing, Processing results of the processes distributed to each server in the distributed processing. Device identification information indicating the destination of the transmission. Obtain, If the acquired device identification information is the device identification information of the device itself, the processing results of the processes distributed to the server in the distributed processing are obtained from the individual servers that are the source of the device identification information. With respect to each individual process related to the aforementioned distributed processing, if the processing result is not obtained and predetermined conditions are met, a notification is sent to each server executing the distributed processing indicating that the processing result has not been obtained. The information processing device is characterized in that, after the aforementioned notification, it obtains the processing result from a server that performs the distributed processing, which is different from the server to which the processing related to the processing result that was not obtained when the aforementioned conditions were met was allocated. Claim 2 The present invention relating to this invention is The aforementioned processor, When initiating communication with the aforementioned server to obtain the processing result, the device identification information is obtained from each of the said servers to determine whether or not it is the device identification information of the device itself. When obtaining the processing results from each of the aforementioned servers, the device identification information is obtained again to determine whether or not it is the device identification information of the own device. Claim 1 This is the information processing device described above. Claim 3 The present invention relating to this invention is The processor, after the notification, when acquiring the processing result from the different server, is characterized by acquiring the device identification information and determining whether or not it is the device identification information of its own device. Claim 2 This is the information processing device described above. Claim 4 The present invention relating to this invention is The processor is characterized by providing the server executing the distributed processing with an execution instruction for the processing, along with its own device identification information. Claim 1 This is the information processing device described above. Claim 5 The present invention relating to this invention is The information processing apparatus according to claim 1, wherein the processor acquires all processing results in the distributed processing and performs processing based on said processing results. Claim 6 The present invention relating to this invention is The processor, with respect to one or more processing results among the processing results in the distributed processing, If the aforementioned notification is not received even after a predetermined number of attempts, the processing based on the processing results of the distributed processing will not be executed, and a predetermined error handling process will be executed. Claim 7 This is the information processing device described above. Claim 7 The present invention relating to this invention is In a distributed processing system that performs distributed processing by multiple servers in response to instructions from a terminal device and provides the processing results to the terminal device, Each of the aforementioned multiple servers is: The terminal device receives an instruction to execute a process, In response to the execution instruction, the server executes the processing assigned to it in the distributed processing. The terminal device is sent the identification information of the executed process and the device identification information indicating the destination of the processing result, and in response to the response from the terminal device, the processing result is sent to the terminal device. A distributed processing system is characterized in that when receiving a notification indicating that the terminal device has not obtained a processing result regarding any of the individual processes in the distributed processing, if at least one of the processes related to the notification is allocated to the own server, the own server executes the newly allocated process and transmits the processing result to the terminal device. Claim 8 The present invention according to Each server among the plurality of servers pre-holds all the target data of the processes related to the distributed processing, and executes the process using the target data of the process allocated to the own server from the held target data. Claim 7 It is the distributed processing system described in Claim 9 The present invention according to further includes a management server that manages the allocation of the distributed processing to the servers, and when each server among the plurality of servers receives the notification, the management server allocates the process specified by the notification to a server different from the server to which the process is allocated. Claim 8 It is the distributed processing system described in Claim 10 The present invention according to When each server among the plurality of servers receives the notification, it communicates with other servers to determine a server that executes the process specified by the notification. Claim 8 It is the distributed processing system described in Claim 11 The present invention according to Each server among the plurality of servers when starting communication to obtain the processing result with the terminal device, transmits the device identification information to the terminal device, and when transmitting the processing result to the terminal device, transmits the device identification information again. Claim 7 It is the distributed processing system described in Claim 12 The present invention according to Each of the aforementioned multiple servers is characterized in that, when transmitting the processing result to the terminal device, it also transmits the device identification information along with the processing result. Claim 11 This is the distributed processing system described in [reference]. Claim 13 The present invention relating to this invention is On the computer, A function that provides processing execution instructions and device identification information of the device to servers that perform distributed processing, From each of the aforementioned servers, the identification information of the process and Upon receiving the aforementioned device identification information, if the device identification information is the device identification information of the device itself, A function to obtain the processing result of a process identified by the process identification information obtained along with the device identification information from the server that is the source of the device identification information, With respect to each individual process related to the aforementioned distributed processing, if the processing result is not obtained and predetermined conditions are met, a function is provided to notify each server executing the distributed processing that the processing result has not been obtained. After the aforementioned notification, the device receives the device identification information of its own device from one of the servers executing the distributed processing, and has a function to obtain the processing results that were not obtained when the conditions were met, This program is characterized by its ability to achieve the above. [Effects of the Invention]

[0008] According to the invention of claim 1, unlike a configuration in which no notification is given when processing results cannot be obtained, even if a failure occurs on any server, the processing results of the processing assigned to that server can be obtained. The system checks whether the destination of the server's processing results is the same device and retrieves the processing results. It is possible. Claim 2 According to this invention, unlike a configuration in which device identification information is acquired only at the start of communication, when the server performs distributed processing related to multiple terminal devices, it is possible to check whether the destination is the same device for each processing result. Claim 3 According to this invention, unlike a configuration in which device identification information is acquired only at the start of communication, it is possible to confirm whether the destination is the same device or not, even with respect to processing results acquired by notification from the information processing device. Claim 4According to this invention, compared to a configuration in which device identification information is provided from a source other than the device itself, it becomes easier to associate the distributed processing to be performed with the destination to which the processing results are sent. Claim 5 According to this invention, compared to a configuration that only obtains the processing results of distributed processing, other processing can be performed based on the processing results. Claim 6 According to this invention, compared to configurations that simply process images based on predetermined rules or policies, it is possible to identify the importance of each sub-region in an image by reflecting the prominence of each part of the image. Claim 7 According to this invention, unlike a configuration where each server only executes the process it was initially assigned to, even if a failure occurs on any of the servers, the process assigned to that server can still be executed. Claim 8 According to this invention, unlike a configuration in which each server holds only the data to which it has been assigned, the assigned processing can be executed immediately after notification. Claim 9 According to this invention, unlike a configuration where each server only executes the process it was initially assigned to, if a failure occurs on any server, the management server can redistribute the relevant process to another server. Claim 10 According to this invention, unlike a configuration where each server only executes the process it was initially assigned to, if a failure occurs on any server, the relevant process can be distributed to another server via communication between the servers. Claim 11 According to this invention, unlike a configuration in which device identification information is transmitted only at the start of communication, when a cloud server performs distributed processing related to multiple terminal devices, the destination can be confirmed for each processing result. Claim 12 According to this invention, the time required for communication can be reduced compared to a configuration in which the processing result is transmitted after the device identification information has been transmitted. Claim 13According to this invention, unlike a configuration in which a computer on which the program of the present invention is installed does not notify when processing results cannot be obtained, even if a failure occurs on any server, the processing results of the processing assigned to that server can be obtained. [Brief explanation of the drawing]

[0009] [Figure 1] This is a diagram showing an example of the configuration of a system to which this embodiment is applied. [Figure 2] This diagram shows the configuration of an image forming apparatus to which this embodiment is applied. [Figure 3] This diagram shows the procedure for transmitting image data from a cloud server to an image forming apparatus. [Figure 4] This diagram shows how the transmission of image data was interrupted when a failure occurred on one of the cloud servers during transmission. [Figure 5] This diagram shows the operation of the image forming apparatus and the cloud server after a failure occurs in the cloud server. [Figure 6] This is a flowchart showing the operation of the cloud server. [Figure 7] This is a flowchart showing the operation of an image forming apparatus. [Modes for carrying out the invention]

[0010] Embodiments of the present invention will be described in detail below with reference to the attached drawings.

[0011] <System Configuration> Figure 1 shows an example of the configuration of a system to which this embodiment is applied. The system of this embodiment comprises an image forming apparatus 100 and a cloud server 200. Figure 1 shows two image forming apparatuses 100 and three cloud servers 200, but the number of each is not limited to the number shown. To distinguish between each image forming apparatus 100, a subscript is added, such as image forming apparatus 100A, 100B, etc., as shown in Figure 1. Similarly, to distinguish between each cloud server 200, a subscript is added, such as cloud server 200A, 200B, 200C, etc., as shown in Figure 1.

[0012] The image forming apparatus 100 acquires image data to be processed from the cloud server 200, performs image forming processing on a medium such as paper, and outputs the result. The image forming apparatus 100 is an example of an information processing device. The cloud server 200 is a server built in a so-called cloud environment on the internet and performs image processing on the image data output by the image forming apparatus 100. For example, the cloud server 200 performs processing such as rasterization, compression, and binarization of images.

[0013] In this embodiment, as shown in Figure 1, image processing is performed by distributed processing across multiple cloud servers 200 (in the illustrated example, cloud servers 200A, 200B, and 200C). The image forming apparatus 100 acquires the data resulting from the distributed image processing across the multiple cloud servers 200 from each cloud server 200, integrates it, and prints it. Also, as shown in Figure 1, each cloud server 200 may perform image processing on the image data output by the multiple image forming apparatuses 100 (in the illustrated example, image forming apparatuses 100A and 100B) in parallel.

[0014] <Configuration of the image forming apparatus 100> Figure 2 shows the configuration of an image forming apparatus 100 to which this embodiment is applied. The image forming apparatus 100 comprises a control unit 110, a storage unit 120, an operation unit 130, a display unit 140, an image reading unit 150, an image forming unit 160, a communication unit 170, and an image processing unit 180. Each of these functional units is connected to a bus 101, and data is exchanged via this bus 101.

[0015] The control unit 110 controls each of the above-mentioned functional units in the image forming apparatus 100. The control unit 110 is also a functional unit that performs various data processing. The control unit 110 comprises a CPU (Central Processing Unit) 111, which is a calculation means, and RAM (Random Access Memory) 112 and ROM (Read Only Memory) 113, which are storage means. RAM 112 is the main memory and is used as working memory when the CPU 111 performs calculation processing. ROM 113 holds data such as programs and pre-prepared setting values, and the CPU 111 reads programs and data directly from ROM 113 and executes processing. Programs and data are also stored in the storage unit 120. The CPU 111 reads the programs stored in the storage unit 120 into RAM 112 and executes them.

[0016] In this embodiment, the CPU 111 of the control unit 110 reads and executes a program to realize various functions described later. The functions realized in this embodiment include transmitting the device ID, receiving and confirming various IDs including the device ID, and receiving data to be processed.

[0017] The memory unit 120 is a functional unit that stores programs and data for the CPU 111 to execute, as well as various data generated by various operations, such as image data read by the image reading unit 150. The memory unit 120 can be implemented by a storage device such as a magnetic disk drive or an SSD (Solid State Drive).

[0018] The operation unit 130 is a functional unit that receives user input. The operation unit 130 is composed of, for example, hardware keys or touch sensors that output control signals corresponding to the position pressed or touched by a finger or the like. It may also be configured as a touch panel, combining a touch sensor and a liquid crystal display that constitutes the display unit 140.

[0019] The display unit 140 is a functional unit that displays information images that present various types of information to the user, preview images of images to be processed such as read or output, and operation images for the user to perform operations. The display unit 140 is composed of, for example, a liquid crystal display. The operation unit 130 and the display unit 140 can be combined and used as a user interface means for the user to input and output information to the image forming apparatus 100.

[0020] The image reading unit 150 is a functional unit that optically reads an image on the document. Examples of image reading methods include the CCD method, which reduces the reflected light from light emitted from a light source onto the document using a lens and receives it with a CCD (Charge Coupled Device), and the CIS method, which receives the reflected light from light emitted sequentially from an LED (Light Emitting Diode) light source onto the document with a CIS (Contact Image Sensor).

[0021] 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 the recording material, for example, an electrophotographic method is used in which toner is used as the image forming material, and the toner attached to the photoreceptor is transferred to the recording material to form an image.

[0022] The communication unit 170 is a functional unit that sends and receives commands and data to and from an external device. The communication unit 170 uses an interface that corresponds to the communication method with the external device. The connection with the external device may be made via a network or by direct connection. The communication line may be a wired line or a wireless line.

[0023] The image processing unit 180 is a functional unit that includes a processor and working memory, which are calculation means, and performs image processing such as color correction and gradation correction on the image data. The CPU 111 of the control unit 110 may be used as the processor, and the RAM 112 of the control unit 110 may be used as the working memory. In this embodiment, at least a portion of the image processing performed on the image data is performed by the cloud server 200. The image processing unit 180 executes image processing that is not performed by the cloud server 200, and which may involve processing or setting changes, where it is determined whether or not to apply these processes when the image forming apparatus 100 outputs the image.

[0024] <Procedure for sending image data> Figure 3 shows the procedure for transmitting image data from the cloud server 200 to the image forming apparatus 100. Figure 3 shows an example in which one image forming apparatus 100 acquires image data from two cloud servers 200A and 200B. Here, distributed processing is performed by distributing the data to be processed to each cloud server 200A and 200B in predetermined data blocks. The data blocks can be set according to the type of data to be processed, the processing capacity of the cloud servers 200A and 200B and the image forming apparatus 100, the communication speed, etc., but in this embodiment, for example, the unit of data block may be one page of image data. In the illustrated example, three pages of image data are transmitted and received, with the first and third pages being processed by cloud server 200A, and the second page being processed by cloud server 200B.

[0025] As a preliminary step, each cloud server 200A and 200B is pre-provided with image data to be processed and setting information for image processing in the output processing unit (hereinafter referred to as "job") of the image forming apparatus 100. On the other hand, each cloud server 200A and 200B is provided with all of the image data in the job, regardless of the distribution of image data to be processed in distributed processing. Each cloud server 200A and 200B performs image processing on the image data assigned to its server from all the image data related to the acquired job, and transmits the processed image data to the image forming apparatus 100. The provision of image data and setting information to each cloud server 200A and 200B, and the distribution of image data in distributed processing are performed, for example, by a management server (not shown) that is set up separately from the cloud server 200.

[0026] In the example shown in Figure 3, the image forming apparatus 100 acquires page-by-page image data from cloud servers 200A and 200B as a result of image processing when executing a job. The acquisition of image data is performed in the following procedure. In the following explanation, the symbols (a) to (k) correspond to the symbols (a) to (k) attached to the arrows in Figure 3 that represent the data exchange that takes place between cloud servers 200A and 200B and the image forming apparatus 100.

[0027] The image forming apparatus 100 first sends a job execution instruction and a device ID to the cloud server 200A (a). Here, the job execution instruction is a command to the cloud server 200 to perform image processing and transmit the processed image data in order for the image forming apparatus 100 to start the printing process. The device ID is identification information for identifying the image forming apparatus 100.

[0028] When the cloud server 200A receives a job execution instruction and device ID from the image forming apparatus 100, it sets a job ID for the job related to the execution instruction and performs image processing on the image data that is the target of the job. The cloud server 200A then transmits the set job ID and the device ID obtained from the image forming apparatus 100 to the image forming apparatus 100 identified by the device ID (b). The job ID is identification information used to identify the job related to the execution instruction. The cloud server 200A also forwards the received job execution instruction, device ID, and set job ID to the cloud server 200B which is responsible for distributed processing.

[0029] The image forming apparatus 100 obtains a job ID and an apparatus ID from the cloud server 200A and verifies whether the obtained apparatus ID is the apparatus ID of its own apparatus. If the obtained apparatus ID matches the apparatus ID of its own apparatus, the image forming apparatus 100 sends a notification to the cloud server 200A indicating that the apparatus ID is correct (hereinafter referred to as a "confirmation notification") (c). The image forming apparatus 100 also retains the obtained job ID and uses it to determine that the image data received from the cloud server 200A thereafter is data for the job related to the execution instruction.

[0030] When the cloud server 200A receives a confirmation notification from the image forming apparatus 100, it begins transmitting image data. Image data is transmitted page by page. Since the cloud server 200A is assigned pages 1 and 3, the cloud server 200A first transmits the image data for page 1, the job ID, the apparatus ID, and the page ID to the image forming apparatus 100 (d).

[0031] The image forming apparatus 100 verifies each ID received from the cloud server 200A. Specifically, for example, it verifies whether the job ID is the job ID received from the cloud server 200A in (b) above, whether the device ID is the device ID of the device itself, and whether it duplicates the page ID of a page already received. If there are no problems with each ID, the image forming apparatus 100 saves the image data of the first page it received and notifies the cloud server 200A that it has received the image data (hereinafter referred to as "acquisition notification") (e).

[0032] The cloud server 200A then transmits the image data for the third page, the job ID, the device ID, and the page ID to the image forming apparatus 100 (f). The image forming apparatus 100 verifies each ID received from the cloud server 200A. If there are no problems with each ID, the image forming apparatus 100 saves the received image data for the third page and notifies the cloud server 200A of its acquisition (g). If there is any untransmitted image data, the cloud server 200A and the image forming apparatus 100 repeat the above process.

[0033] In the example shown in Figure 3, since the transmission of all the distributed image data has been completed, the cloud server 200A performs termination processing and ends the processing related to this job. Termination processing may include, for example, sending a notification to the image forming apparatus 100 indicating that the transmission of the image data for the relevant job has been completed on the cloud server 200A.

[0034] Next, the operation of cloud server 200B will be explained. When cloud server 200B receives a job execution instruction, device ID, and job ID from cloud server 200A, it performs image processing on the image data that is the target of the job. Then, cloud server 200B transmits the device ID and job ID received from cloud server 200A to the image forming apparatus 100 identified by the device ID (h). The image forming apparatus 100 obtains the job ID and device ID from cloud server 200B and checks whether the obtained device ID is the device ID of its own apparatus. If the obtained device ID matches the device ID of its own apparatus, the image forming apparatus 100 sends a confirmation notification to cloud server 200B indicating that the device ID is correct (i).

[0035] When the cloud server 200B receives a confirmation notification from the image forming apparatus 100, it begins transmitting image data. Image data is transmitted page by page, and the cloud server 200B is assigned the second page. Therefore, the cloud server 200B transmits the image data for the second page, the job ID, the apparatus ID, and the page ID to the image forming apparatus 100 (j).

[0036] The image forming apparatus 100 checks each ID received from the cloud server 200B. If there are no problems with each ID, the image forming apparatus 100 saves the received image data of the second page and notifies the cloud server 200B of its acquisition (k). If there is any unsent image data, the cloud server 200B and the image forming apparatus 100 repeat the above process. In the example shown in Figure 3, only the second page is assigned to the cloud server 200B, so the cloud server 200B performs a termination process and ends the processing for this job.

[0037] In the above example, the cloud server 200A set the job ID in response to a job execution instruction from the image forming apparatus 100. Alternatively, the job ID could be pre-set and shared among the cloud servers 200A and 200B performing distributed processing. Alternatively, the image forming apparatus 100 could set the job ID and send it to the cloud servers 200A and 200B performing distributed processing. Also, in the above example, the cloud server 200A forwarded the execution instruction and device ID obtained from the image forming apparatus 100 to the other cloud server 200B performing distributed processing. Alternatively, the image forming apparatus 100 could send the execution instruction and device ID to the cloud servers 200A and 200B performing distributed processing.

[0038] In the above example of operation, cloud servers 200A and 200B transmit the device ID at the start of communication and receive confirmation notification from the image forming apparatus 100. This confirms between cloud servers 200A and 200B and the image forming apparatus 100 that the destination for sending image data in the job is correct. Furthermore, when transmitting image data for each page, cloud servers 200A and 200B transmit the device ID again and receive confirmation notification from the image forming apparatus 100. This confirms once again between cloud servers 200A and 200B and the image forming apparatus 100 that the destination for each page is correct.

[0039] The above example illustrates the operation of one image forming apparatus 100 acquiring image data. However, when a single cloud server 200 transmits image data to multiple image forming apparatuses 100A and 100B, it is possible that page-by-page transmissions to image forming apparatuses 100A and 100B may occur alternately. In such cases, confirming the destination for each page can prevent erroneous transmissions on a page-by-page basis. In the above example, the apparatus ID is sent along with the image data for each page, but this procedure is merely illustrative. The cloud server 200 may also first transmit the apparatus ID when sending image data, receive confirmation from the image forming apparatus 100, and then send the image data.

[0040] <Actions taken in the event of a failure> Figure 4 shows a situation where a failure occurs in one cloud server 200 during the transmission of image data, interrupting the transmission of image data. When a failure occurs in one cloud server 200, the image forming apparatus 100 cannot obtain the data assigned to that cloud server 200 from the failed cloud server 200. Therefore, in this embodiment, when a failure occurs in one cloud server 200, the necessary data is obtained from another cloud server 200.

[0041] In the example shown in Figure 4, image data is transmitted from three cloud servers 200A, 200B, and 200C to the image forming apparatus 100. Cloud server 200A is assigned page 1, cloud server 200B is assigned pages 3 and 4, and cloud server 200C is assigned page 2.

[0042] Assume that a failure occurs in cloud server 200B during the operation of transmitting image data from cloud servers 200A, 200B, and 200C to the image forming apparatus 100. Assume that the failure occurs after cloud server 200B transmits the image data for page 3 but before transmitting the image data for page 4. The image data from cloud servers 200A and 200C is transmitted successfully. In this case, the image forming apparatus 100 acquires the image data for pages 1 through 3, but cannot acquire the image data for page 4. In this embodiment, cloud servers 200A and 200C, which are not experiencing failures, send the image data for page 4 to the image forming apparatus 100 as follows.

[0043] Figure 5 shows the operation of the image forming apparatus 100 and the cloud server 200 after a failure occurs in the cloud server 200. When the image forming apparatus 100 satisfies predetermined conditions while unable to obtain the image data for page 4, it sends a notification to each cloud server 200 indicating that it has not obtained the image data for page 4 (hereinafter referred to as "unreceived notification"). The predetermined conditions can be set in various ways, but for example, they may be the elapsed of a predetermined time. The unreceived notification is sent to all cloud servers 200 (200A, 200B, 200C) that are subject to distributed processing. This is because the image forming apparatus 100 does not know which cloud server 200 has failed.

[0044] Cloud servers 200A and 200C, which are not experiencing failures, will accept the additional allocation of the unsent fourth page upon receiving notification. As a result, the page that was allocated to the failed cloud server 200B will be allocated to another cloud server 200 (either cloud server 200A or cloud server 200C) that is not experiencing failures. The additional allocation is performed, for example, by the management server 300. The management server 300 is a server that manages job execution and provides each cloud server 200 with image data and configuration information to be processed in the job, and distributes image data in distributed processing. Here, we assume that the fourth page has been allocated to cloud server 200C.

[0045] The cloud server 200C, which is assigned page 4, performs image processing on page 4. Then, the cloud server 200C transmits the image data of page 4 according to the procedure described with reference to Figure 3. That is, after confirming the job ID and device ID at the start of transmission, it transmits the image data of page 4, the job ID, the device ID, and the page ID to the image forming apparatus 100.

[0046] The image forming apparatus 100 sends a notification of non-reception to each cloud server 200 that performs distributed processing. It then checks whether the device ID received from the cloud server 200C along with the job ID at the start of communication is the device ID of its own device. If it is the device ID of its own device, it returns a confirmation notification. The image forming apparatus 100 also checks each ID received from the cloud server 200C along with the image data when it receives the image data for the fourth page. If there are no problems, the image forming apparatus 100 saves the received image data for the fourth page and sends an acquisition notification to the cloud server 200C.

[0047] Furthermore, if data transmission processing by the same job as the newly allocated data is ongoing on cloud server 200C, the confirmation at the start of transmission may be omitted. For example, consider a case where the total number of pages of image data related to a job is 10, and pages 3, 6, and 9 have been allocated to cloud server 200C. Suppose that page 8 is additionally allocated when cloud server 200 has completed transmission up to page 6 and page 9 has not yet been transmitted. In this case, since cloud server 200C is continuing the transmission processing by this job (page 9 has not yet been transmitted), it may transmit page 8 as part of this transmission processing.

[0048] In the above example, the management server 300 is assigned additional processing for image data that could not be transmitted to the image forming apparatus 100 by the failed cloud server 200B, but this is merely an example. For example, the cloud servers 200 that are not experiencing failures could exchange information with each other to determine which cloud server 200 will perform the additional image processing and transmission. In this case, during the exchange of information between the cloud servers 200, for example, the load status of each cloud server 200 could be compared, and the additional processing could be assigned to the cloud server 200 with the lightest current load.

[0049] <Operation of Cloud Server 200> Figure 6 is a flowchart illustrating the operation of the cloud server 200. When the cloud server 200 receives a job execution instruction and device ID from the image forming apparatus 100 (S601), it sets the job ID and executes image processing according to the received execution instruction (S602). Then, the cloud server 200 transmits the job ID and device ID to the image forming apparatus 100 (S603).

[0050] Next, if the cloud server 200 receives a confirmation notification from the image forming apparatus 100 within the specified time (YES in S604), it sends the image data processed in S602 to the image forming apparatus 100 in predetermined data blocks (for example, each page). The cloud server 200 also sends each ID (job ID, page ID, and apparatus ID) along with the image data to the image forming apparatus 100 (S605). If the cloud server 200 does not receive a confirmation notification within the specified time (NO in S604), it sends a notification to the image forming apparatus 100 indicating that the job has been terminated due to an error (S611).

[0051] If the cloud server 200 receives a notification from the image forming apparatus 100 within a specified time for the acquisition of image data for the transmitted pages (YES in S606), it determines whether or not it has completed the transmission of all image data (all pages) related to the job. If it has not completed the transmission (NO in S607), it returns to S605 and sends the untransmitted image data and each ID to the image forming apparatus 100. On the other hand, if it has completed the transmission of all image data related to the job (YES in S607), the cloud server 200 determines whether or not it has received a notification of non-received data from the image forming apparatus 100. If it does not receive an acquisition notification within a specified time (NO in S606), the cloud server 200 sends a notification to the image forming apparatus 100 indicating that the job has ended due to an error (S611).

[0052] If no notification of non-received information has been received (NO in S608), the cloud server 200 sends a notification to the image forming apparatus 100 indicating that its own server has finished processing this job (S609). If a failure occurs in another cloud server 200 involved in distributed processing and the cloud server 200 receives a notification of non-received information from the image forming apparatus 100 (YES in S608), the cloud server 200 then determines whether or not it has received an additional allocation of image data to be processed in this job.

[0053] If no additional allocation has been received (NO in S610), the cloud server 200 sends a notification to the image forming apparatus 100 indicating that its own server processing for this job has been completed (S609). On the other hand, if additional image data has been allocated (YES in S610), the process returns to S602, and the cloud server 200 performs image processing on the additionally allocated image data. Then, the cloud server 200 executes the processing from sending the job ID and device ID to the image forming apparatus 100 (S603) onward for the newly processed image data.

[0054] In the above example of operation, the cloud server 200 determines whether or not it has received a notification of non-receipt from the image forming apparatus 100 after it has completed sending all image data related to the job. Alternatively, even before it has completed sending all image data related to the job, if it receives a notification of non-receipt and accepts an additional allocation of image data, it may process the additionally allocated image data in the same way as the image data initially allocated to its own server.

[0055] <Operation of the image forming apparatus 100> Figure 7 is a flowchart showing the operation of the image forming apparatus 100. When the image forming apparatus 100 starts a job, it first sends a job execution instruction and an apparatus ID to the cloud server 200, which performs distributed image processing (S701), and waits for a response from the cloud server 200. Then, when the image forming apparatus 100 receives the job ID and apparatus ID from the cloud server 200 (S702), it determines whether the received apparatus ID is correct or not (whether it matches the apparatus ID of its own apparatus).

[0056] If the received device ID is correct (YES in S703), the image forming apparatus 100 sends a confirmation notification to the cloud server 200 (S704). If the received device ID is incorrect (NO in S703), the image forming apparatus 100 terminates the job with an error (S713). In the case of an error termination, for example, a message indicating that the job has been terminated with an error is displayed on the UI screen shown on the display unit 140 of the image forming apparatus 100 (see Figure 2). The displayed message may include information such as that the job was terminated due to an error, the type of error, and the means of resolving it.

[0057] After sending a confirmation notice, the image forming apparatus 100 determines whether or not it has received the image data within the specified time. If it has received the data within the specified time (YES in S705), the image forming apparatus 100 determines whether there are any problems with each ID received along with the image data. If each received ID is correct (YES in S706), the image forming apparatus 100 saves the received image data and returns an acquisition notice to the cloud server 200 (S707). On the other hand, if any of the received IDs is incorrect (NO in S706), the image forming apparatus 100 terminates the job with an error (S713).

[0058] After sending an acquisition notification to the cloud server 200, the image forming apparatus 100 outputs the saved image data in page order (S708). The image forming apparatus 100 repeats the operations S705 to S708 until all image data (all pages) related to the job has been output (NO in S709). Once all image data has been output (YES in S709), the image forming apparatus 100 completes the job successfully (S710). Upon successful completion, for example, a message indicating successful completion is displayed on the UI screen shown on the display unit 140 of the image forming apparatus 100.

[0059] If the image data is not received within the specified time after sending the confirmation notice (NO in S705), the image forming apparatus 100 sends a non-received notification to the cloud server 200 (S711) and waits for a response from the cloud server 200. The image forming apparatus 100 repeats the non-received notification, for example, at the specified time intervals mentioned in S705, until it reaches a specified number of times (NO in S712). If the image data and each ID are received before the number of non-received notifications reaches the specified number (YES in S705), the image forming apparatus 100 executes the processing from the confirmation of each ID (S706) onward. On the other hand, if the number of non-received notifications reaches the specified number (YES in S712), the image forming apparatus 100 terminates the job with an error (S713).

[0060] In the above operation, the image forming apparatus 100 may either acquire all image data before printing, or it may perform output processing in parallel while receiving image data. Here, the reception of image data from multiple cloud servers 200 is not necessarily in page order. For example, in the example explained with reference to Figures 4 and 5, it is possible that the image data for the third page is received from cloud server 200B before the image data for the second page is received from cloud server 200C. In such a case, in the latter example, the image forming apparatus 100 may, for example, prepare a buffer memory with sufficient data capacity (for example, a capacity equivalent to the amount of data for several pages), buffer the image data received out of order, and output it in page order.

[0061] <Other application examples> In the above embodiment, the information processing device is an image forming apparatus 100, and an example was described in which a job is executed to acquire image data that has undergone image processing by distributed processing of multiple cloud servers 200 and to print it out. However, this embodiment can be applied to various systems that acquire data that has undergone distributed processing of multiple cloud servers 200 and execute a job, in addition to the above embodiment. For example, it may be applied to a system in which the information processing device is a video playback device and a job is executed to acquire video data edited by distributed processing of multiple cloud servers 200 and to play it back.

[0062] In this case, the data block, which is the unit of processing and transmission to the information processing device (video playback device) in each cloud server 200, may be, for example, video data in frame units. In this application example, each cloud server 200 performing distributed processing obtains a job execution instruction and device ID from the information processing device and processes the video data to be processed (in other words, generates processed video data). The cloud server 200 then sends the job ID and device ID to the information processing device and waits for confirmation. Upon receiving confirmation, the cloud server 200 sends the processed video data in frame units, the job ID, the device ID, and the frame ID as identification information for the frame to the information processing device.

[0063] When executing a job, the information processing device first sends a job execution instruction and device ID to the cloud server 200. Upon receiving the job ID and device ID from the cloud server 200, the information processing device verifies the device ID, sends a confirmation notification, and waits for the data to be sent. Upon receiving the processed video data in frame units, job ID, device ID, and frame ID from the cloud server 200, the information processing device verifies each ID, saves the video data, and sends an acquisition notification. The information processing device then plays back the acquired video data in chronological order.

[0064] Furthermore, in the above embodiment, the image forming apparatus 100, which is an example of an information processing device, and the cloud server 200 are configured to directly exchange commands and data. However, such exchange of commands and data may also be performed via a relay by the management server 300. For example, in the configuration example shown in Figure 3, the image forming apparatus 100 sends a job execution instruction and a device ID to one of the cloud servers 200 that perform distributed processing (cloud server 200A in the example of Figure 3). It has also been stated that the image forming apparatus 100 may send execution instructions and device IDs not only to one cloud server 200, but to each cloud server 200 that performs distributed processing.

[0065] In response to this, the image forming apparatus 100 may send execution instructions and device IDs to the management server 300, and the management server 300 may send these execution instructions and device IDs to the cloud server 200 that performs distributed processing. Since the management server 300 manages the distribution of data related to distributed processing to the cloud server 200 that performs distributed processing, it can identify the cloud server 200 to which the execution instructions and device IDs should be sent for each job. This eliminates the need for the image forming apparatus 100 to have prior information on the cloud server 200 that performs distributed processing. Similarly, in the event of a failure in the cloud server 200, the notification of unreceived messages may also be sent from the image forming apparatus 100 to a cloud server 200 that is not experiencing a failure, via the management server 300.

[0066] Although embodiments of the present invention have been described above, the technical scope of the present invention is not limited to the above embodiments. For example, in the above embodiments, it was stated that an image forming apparatus 100, which is an example of an information processing apparatus, may be configured to buffer image data acquired from a plurality of cloud servers 200 in order of pages. In contrast, a management server 300 may perform buffering of the target data, such as image data or video data, and the information processing apparatus may acquire the image data or video data from the management server 300 in order of pages or in chronological order. Furthermore, in the above embodiments, a configuration using a cloud server 200 as the server that performs image processing was described as an example, but the server is not limited to the above cloud server 200. For example, a server machine connected to the outside of the image forming apparatus 100 via a network such as a LAN (Local Area Network) or the Internet, or a server virtually constructed on a network may be used. In addition, various modifications and substitutions of configurations that do not depart from the technical concept of the present invention are included in the present invention. [Explanation of Symbols]

[0067] 100…Image forming apparatus, 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…Cloud server, 300…Management server

Claims

1. Equipped with a processor, The aforementioned processor, Send a processing command to the server that performs distributed processing, From each of the aforementioned servers, device identification information is obtained that indicates the destination for the processing results of the processing assigned to that server in the distributed processing. If the acquired device identification information is the device identification information of the device itself, the processing results of the processes distributed to the server in the distributed processing are obtained from the individual servers that are the source of the device identification information. With respect to each individual process related to the aforementioned distributed processing, if the processing result is not obtained and predetermined conditions are met, a notification is sent to each server executing the distributed processing indicating that the processing result has not been obtained. An information processing device characterized in that, after the notification, it obtains the processing result from a server that performs the distributed processing, which is different from the server to which the processing related to the processing result that was not obtained when the conditions were met was allocated.

2. The aforementioned processor, When initiating communication with the aforementioned server to obtain the processing result, the device identification information is obtained from each of the said servers to determine whether or not it is the device identification information of the device itself. The information processing apparatus according to claim 1, characterized in that when acquiring the processing result from each of the servers, it acquires the device identification information again and determines whether or not it is the device identification information of its own device.

3. The information processing apparatus according to claim 2, characterized in that, after the notification, when the processor obtains the processing result from the different server, it obtains the device identification information and determines whether or not it is the device identification information of its own device.

4. The information processing apparatus according to claim 1, characterized in that the processor provides the server that performs the distributed processing with an instruction to execute the processing, along with the device identification information of the device itself.

5. The information processing apparatus according to claim 1, characterized in that the processor acquires all processing results in the distributed processing and performs processing based on said processing results.

6. The processor, with respect to one or more processing results among the processing results in the distributed processing, The information processing apparatus according to claim 5, characterized in that if the notification is not received even after a predetermined number of attempts, the processing based on the processing result of the distributed processing is not performed, and a predetermined error processing is performed.

7. In a distributed processing system that performs distributed processing by multiple servers in response to instructions from a terminal device and provides the processing results to the terminal device, Each of the aforementioned multiple servers is: The terminal device receives an instruction to execute a process, In response to the execution instruction, the server executes the processing assigned to it in the distributed processing. The terminal device is sent the identification information of the executed process and the device identification information indicating the destination of the processing result, and in response to the response from the terminal device, the processing result is sent to the terminal device. A distributed processing system characterized in that, upon receiving a notification from the terminal device indicating that it has not obtained a processing result for any of the individual processes in the distributed processing, the server executes the newly assigned process when at least one of the processes related to the notification is assigned to it, and transmits the processing result to the terminal device.

8. Each of the aforementioned multiple servers is: All data subject to the aforementioned distributed processing is stored in advance, The distributed processing system according to claim 7, characterized in that it executes the processing using the target data for processing that has been allocated to its own server from the target data it holds.

9. The system further comprises a management server that manages the distribution of the distributed processing to the aforementioned servers, The distributed processing system according to claim 8, characterized in that when each of the multiple servers receives the notification, the management server distributes the processing specified by the notification to a server different from the server to which the processing is currently assigned.

10. The distributed processing system according to claim 8, characterized in that each server in the plurality of servers, upon receiving the notification, communicates with the other servers to determine which server will perform the processing specified by the notification.

11. Each of the aforementioned multiple servers is When initiating communication with the terminal device to obtain the processing result, the device identification information is transmitted to the terminal device. The distributed processing system according to claim 7, characterized in that when transmitting the processing result to the terminal device, the device identification information is transmitted again.

12. The distributed processing system according to claim 11, characterized in that each server in the plurality of servers transmits the device identification information along with the processing result when transmitting the processing result to the terminal device.

13. On the computer, A function that provides processing execution instructions and device identification information of the device to servers that perform distributed processing, The system receives processing identification information and device identification information from each of the aforementioned servers, and if the device identification information is the device identification information of the device itself, it has a function to obtain the processing result of the processing identified by the processing identification information obtained together with the device identification information from the server that sent the device identification information. With respect to each individual process related to the aforementioned distributed processing, if the processing result is not obtained and predetermined conditions are met, a function is provided to notify each server executing the distributed processing that the processing result has not been obtained. After the aforementioned notification, the device receives the device identification information of its own device from one of the servers executing the distributed processing, and has a function to obtain the processing results that were not obtained when the conditions were met, A program characterized by its ability to achieve this.