Information processing equipment, distributed processing system, and program

By integrating device identification verification in cloud servers' processing results transmission, the system prevents erroneous data delivery and optimizes communication time in distributed processing systems.

JP7881934B2Active Publication Date: 2026-06-30FUJIFILM 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-06-30

AI Technical Summary

Technical Problem

In systems where multiple terminal devices request distributed processing from multiple servers, including cloud servers, there is a need to prevent erroneous data transmission to unintended destinations, which is not adequately addressed by existing configurations.

Method used

The system includes cloud servers that provide processing results to terminal devices with device identification information, allowing the terminal devices to confirm the transmission destination and ensuring accurate data delivery by verifying device identification information during and after data transmission.

Benefits of technology

This approach reduces the risk of data transmission errors and shortens communication time by confirming the transmission destination, enhancing data integrity and efficiency in distributed processing systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007881934000001
    Figure 0007881934000001
  • Figure 0007881934000002
    Figure 0007881934000002
  • Figure 0007881934000003
    Figure 0007881934000003
Patent Text Reader

Abstract

To allow detection of faulty transmission of data from a cloud server in an information processing device.SOLUTION: Image forming devices 100A, 100B being an information processing device each provide a processing execution instruction and device identification information (device ID) on the device to cloud servers 200A, 200b, 200C that execute distributed processing, acquire identification information on processing (job ID) and the device identification information (device ID) from the individual cloud servers, and when the acquired device identification information (device ID) is the device identification information (device ID) on the device, acquire a result of processing that is identified by the identification information on processing (job ID) acquired together with the device identification information (device ID) from the cloud server being a transmission source of the device identification information (device ID).SELECTED DRAWING: Figure 1
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 apparatus. 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 the distributed commission data 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 the divided print job to the printing apparatus. The printing apparatus 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 multiple terminal devices can each request distributed processing from multiple servers, it is necessary to suppress errors such as servers sending data to terminal devices that are not their intended destinations. This is also true when each server performing distributed processing is a server built in a so-called cloud environment (cloud server).

[0006] Unlike configurations in which jobs are processed in a distributed manner by multiple cloud servers without associating them with the information processing device, the present invention aims to enable the information processing device to detect erroneous transmission of data from the cloud server. [Means for solving the problem]

[0007] The present invention according to claim 1 is Equipped with a processor, The aforementioned processor, The cloud server performing the distributed processing is provided with execution instructions for the process and device identification information of the device itself. The processing identification information and the device identification information are obtained from each of the aforementioned cloud servers. The information processing device is characterized in that, when the acquired device identification information is the device identification information of the device itself, it acquires the processing result of the process identified by the processing identification information acquired together with the device identification information from the cloud server that is the source of the device identification information. The present invention according to claim 2 is The aforementioned processor, When initiating communication with the aforementioned cloud server to obtain the processing results, the device identification information is obtained from each of the said cloud servers to determine whether or not it is the device identification information of the device itself. The information processing device according to claim 1, characterized in that when acquiring the processing results from each of the aforementioned cloud servers, it acquires the device identification information again and determines whether or not it is the device identification information of its own device. The present invention according to claim 3 is The information processing apparatus according to claim 2, characterized in that the processor acquires the device identification information along with the processing result when acquiring the processing result from each of the cloud servers. The present invention according to claim 4 is The processing result is data generated in units of data blocks. The information processing apparatus according to claim 1, characterized in that the processor acquires device identification information for each data block, and acquires the data of the data block if the acquired device identification information is the device identification information of the device itself. The present invention according to claim 5 is The information processing apparatus according to claim 4, wherein the processor acquires device identification information along with the data of each data block. The present invention according to claim 6 is The information processing apparatus according to claim 4 or claim 5, characterized in that the processing result is image data generated in page units as data blocks. The present invention according to claim 7 is The information processing device according to claim 4 or claim 5, characterized in that the processing result is video data generated in frame units as data blocks. The present invention according to claim 8 is In a distributed processing system that executes distributed processing using multiple cloud servers in response to instructions from a terminal device and provides the processing results to the terminal device, Each of the aforementioned multiple cloud servers is: The terminal device receives an execution instruction for processing and the device identification information of the terminal device. In response to the execution instruction, the server executes the processing assigned to it in the distributed processing. This is a distributed processing system characterized by transmitting identification information of the executed process and device identification information to the terminal device, and transmitting the processing result to the terminal device in response to a response from the terminal device. The present invention according to claim 9 is Each of the aforementioned multiple cloud 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 8, characterized in that when transmitting the processing result to the terminal device, the device identification information is transmitted again. The present invention according to claim 10 is The distributed processing system according to claim 9, characterized in that each of the plurality of cloud servers transmits the device identification information along with the processing result when transmitting the processing result to the terminal device. The present invention according to claim 11 is The processing result is data generated in units of data blocks. The distributed processing system according to claim 8, characterized in that each of the plurality of cloud servers transmits device identification information to the terminal device for each data block and transmits the data of the data block. The present invention according to claim 12 is The distributed processing system according to claim 11, characterized in that each of the plurality of cloud servers transmits device identification information to the terminal device along with the data of each data block. The present invention according to claim 13 is On the computer, A function that provides execution instructions for processing and device identification information of the device to a cloud server that performs distributed processing, A function to obtain processing identification information and device identification information from each of the aforementioned cloud servers, When the acquired device identification information is the device identification information of the device itself, the function acquires the processing result of the process identified by the processing identification information acquired together with the device identification information from the cloud server that is the source of the device identification information. This program is characterized by its ability to achieve the above. [Effects of the Invention]

[0008] According to the invention of claim 1, unlike the configuration of only acquiring the processing result, it is possible to confirm whether the transmission destination of the processing result by the server is the own device. According to the invention of claim 2, unlike the configuration of acquiring the device identification information only at the start of communication, when the cloud server executes distributed processing related to a plurality of terminal devices, it is possible to confirm whether the transmission destination of each processing result is the own device. According to the invention of claim 3, compared with the configuration of acquiring the processing result after acquiring the device identification information, the time required for communication can be shortened. According to the invention of claim 4, unlike the configuration of acquiring the device identification information only once at the start of communication or the like, when the cloud server executes distributed processing related to a plurality of terminal devices, it is possible to confirm whether the transmission destination of each processing result is the own device. According to the invention of claim 5, compared with the configuration of acquiring the processing result after acquiring the device identification information, the time required for communication can be shortened. According to the invention of claim 6, it is possible to acquire image data while confirming whether the transmission destination is the own device in page units. According to the invention of claim 7, it is possible to acquire video data while confirming whether the transmission destination is the own device in frame units. According to the invention of claim 8, unlike the configuration of only transmitting the processing result, the occurrence of mistransmission can be suppressed. According to the invention of claim 9, unlike the configuration of transmitting the device identification information only at the start of communication, when the cloud server executes distributed processing related to a plurality of terminal devices, it is possible to confirm the transmission destination for each processing result. According to the invention of claim 10, compared with the configuration of transmitting the processing result after transmitting the device identification information, the time required for communication can be shortened. According to the invention of claim 11, unlike the configuration of transmitting the device identification information only once at the start of communication or the like, when the cloud server executes distributed processing related to a plurality of terminal devices, it is possible to confirm the transmission destination for each processing result. According to the invention of claim 12, the time required for communication can be shortened as compared with the configuration of transmitting the processing result after transmitting the device identification information. According to the invention of claim 13, in a computer installed with the program of the present invention, unlike the configuration of obtaining only the processing result, it is possible to confirm whether the transmission destination of the processing result by the server is the own device.

Brief Description of the Drawings

[0009] [Figure 1] It is a diagram showing a configuration example of a system to which the present embodiment is applied. [Figure 2] It is a diagram showing the configuration of an image forming apparatus to which the present embodiment is applied. [Figure 3] It is a diagram showing a procedure for transmitting image data from a cloud server to an image forming apparatus. [Figure 4] It is a diagram showing a state where a failure has occurred in one cloud server during the transmission of image data and the transmission of the image data has been interrupted. [Figure 5] It is a diagram showing the operations of the image forming apparatus and the cloud server after a failure has occurred in the cloud server. [Figure 6] It is a flowchart showing the operation of the cloud server. [Figure 7] It is a flowchart showing the operation of the image forming apparatus.

Embodiments for Carrying Out the Invention

[0010] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying 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, various modifications and alternative 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, The cloud server performing the distributed processing is provided with instructions to execute the process and device identification information of the device itself. The processing identification information and the device identification information are obtained from each of the aforementioned cloud servers. An information processing device characterized in that, when the acquired device identification information is the device identification information of the device itself, it acquires the processing result of the process identified by the processing identification information acquired together with the device identification information from the cloud server which is the source of the device identification information.

2. The aforementioned processor, When initiating communication with the aforementioned cloud server to obtain the processing results, the device identification information is obtained from each of the said cloud 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 results from each of the aforementioned cloud 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 the processor acquires the device identification information along with the processing result when acquiring the processing result from each of the cloud servers.

4. The processing result is data generated in units of data blocks. The information processing apparatus according to claim 1, characterized in that the processor acquires device identification information for each data block, and acquires the data of the data block if the acquired device identification information is the device identification information of the device itself.

5. The information processing apparatus according to claim 4, characterized in that the processor acquires device identification information along with the data of each data block.

6. The information processing apparatus according to claim 4 or claim 5, characterized in that the processing result is image data generated in page units as data blocks.

7. The information processing apparatus according to claim 4 or 5, characterized in that the processing result is video data generated in frame units as data blocks.

8. In a distributed processing system that executes distributed processing using multiple cloud servers in response to instructions from a terminal device and provides the processing results to the terminal device, Each of the aforementioned multiple cloud servers is: The terminal device receives an execution instruction for processing and the device identification information of the terminal device. In response to the execution instruction, the server executes the processing assigned to it in the distributed processing. A distributed processing system characterized by transmitting identification information of the executed process and device identification information to the terminal device, and transmitting the processing result to the terminal device in response to a response from the terminal device.

9. Each of the aforementioned multiple cloud 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 8, characterized in that when transmitting the processing result to the terminal device, the device identification information is transmitted again.

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

11. The processing result is data generated in units of data blocks. The distributed processing system according to claim 8, characterized in that each of the plurality of cloud servers transmits device identification information to the terminal device for each data block and transmits the data of the data block.

12. The distributed processing system according to claim 11, characterized in that each of the plurality of cloud servers transmits the device identification information to the terminal device along with the data of the data block for each data block.

13. On the computer, A function that provides execution instructions for processing and device identification information of the device to a cloud server that performs distributed processing, A function to obtain processing identification information and device identification information from each of the aforementioned cloud servers, When the acquired device identification information is the device identification information of the device itself, the function acquires the processing result of the process identified by the processing identification information acquired together with the device identification information from the cloud server that is the source of the device identification information. A program characterized by its ability to achieve this.