Patent Publication Number: US-9432441-B2

Title: Relaying device, image processing device, and system comprising image processing device and relaying device

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     This application claims priority to Japanese Patent Application No. 2013-046467, filed on Mar. 8, 2013, the contents of which are hereby incorporated by reference into the present application. 
     TECHNICAL FIELD 
     The present specification discloses a relaying device connected with an image processing device and a server via a network. 
     DESCRIPTION OF RELATED ART 
     In recent years, an electronic file storing service capable of storing an electronic file in a storage server on a network has been widespread. 
     SUMMARY 
     A desired electronic file may be uploaded from an image processing device to an electronic file storing service. However, when data formats which can be interpreted by the image processing device are limited, there are cases in which the electronic file in a data format which cannot be interpreted by the image processing device cannot be uploaded from the image processing device to the electronic file storing service. 
     In one aspect of the teachings disclosed herein, a relaying device may be provided. The relaying device may comprise, a network interface, a processor, and a memory storing instructions. The instructions, when executed by the processor, may cause the relaying device to perform receiving via the network interface, from a image processing device which is connected with the network, selected data format instruction information identifying a selected data format. The selected data format may be a data format selected as the data format in uploading upload data transmitted from the image processing device to a server device which is: configured to store uploaded data; and connected with the network. The instructions may cause the relaying device to perform executing a conversion processing in a case that the upload data transmitted from the image processing device is data in a first format which can be generated by the image processing device and the data format identified by the selected data format instruction information is a second format which cannot be generated by the image processing device, or in a case that the upload data transmitted from the image processing device is data in a third format which cannot be interpreted by the image processing device and the data format identified by the selected data format instruction information is not the third format. The conversion processing may include: receiving the upload data transmitted from the image processing device; and converting the received upload data into converted data in the data format identified by the selected data format instruction information. The instructions may cause the relaying device to perform transmitting the converted data to the server device via the network interface. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  shows the configuration of a communication system; 
         FIG. 2  shows a sequence diagram of various processing executed by each device; 
         FIG. 3  shows a sequence diagram of various processing executed by each device; 
         FIG. 4  shows a sequence diagram of various processing executed by each device; 
         FIG. 5  shows a sequence diagram of various processing executed by each device; 
         FIG. 6  shows a sequence diagram of various processing executed by each device; 
         FIG. 7  shows a sequence diagram of various processing executed by each device; 
         FIG. 8  shows an example of a main screen display; 
         FIG. 9  shows an example of a server selection screen display; and 
         FIG. 10  shows an example of a data selection screen display. 
     
    
    
     EMBODIMENT 
     (System Configuration) 
     As shown in FIG. 1 , a communication system  2  includes a multi-function peripheral  10 , a mediation server  60 , contents servers  100  and  110 , and a conversion server  200 . The multi-function peripheral  10  is connected with a LAN  4 . The mediation server  60 , the contents servers  100  and  110 , and the conversion server  200  are connected with the Internet  6 . 
     (Structure of Multi-Function Peripheral  10 ) 
     The multi-function peripheral  10  may execute a Printing function, a Scan function, a Copy function, a FAX function, or the like. The multi-function peripheral  10  comprises an operating unit  12 , a display unit  14 , a network interface (described as “I/F,” hereinafter)  16 , a print executing unit  18 , a scan executing unit  19 , and a controller  20 . The operating unit  12  has a plurality of keys. A user can input various instructions to the multi-function peripheral  10  by operating the operating unit  12 . The display unit  14  is a display for displaying various pieces of information. The network I/F  16  is connected to the LAN  4 . The print executing unit  18  comprises an inkjet or laser printing mechanism. The scan executing unit  19  comprises a scan mechanism such as a CCD or CIS. The controller  20  comprises a CPU  22  and a memory  24 . The CPU  22  executes various processes in accordance with program  25  stored in the memory  24 . 
     (Structure of Mediation Server  60 ) 
     The mediation server  60  is a server independent of the conversion server  200  and the contents servers  100  and  110 . The mediation server  60  is a server for mediating supply of image data from the contents servers  100  and  110  to the multi-function peripheral  10 . The mediation server  60  is a server provided by a vendor of the multi-function peripheral  10 . The mediation server  60  includes a network I/F  62  and a controller  70 . The controller  70  includes a CPU  72  and a memory  74 . The CPU  72  performs various processing in accordance with a program  75  stored in the memory  74 . 
     (Structure of the Conversion Server  200 ) 
     The conversion server  200  is a server configured as a separate entity from the mediation server  60  and the contents servers  100  and  110 . The conversion server  200  executes conversion processing, described below, of data of various types. The conversion server  200  may be a server which is provided to a vendor of the multi-function peripheral  10 . The conversion server  200  comprises a network interface  262  and a controller  270 . The controller  270  comprises a CPU  272  and memory  274 . The memory  274  stores a program  275 . The CPU  272  executes various processing according to the program  275 . 
     Some features relating to the description in the present specification are hereby explained. In the present specification, the description “the CPU  72  of the mediation server  60  receives various types of information” includes the technical meaning “the CPU  72  of the mediation server  60  receives various types of information via the network interface  62 ”. Further, the description “the CPU  72  of the mediation server  60  transmits various types of information” includes the technical meaning “the CPU  72  of the mediation server  60  outputs various types of information via the network interface  62 ”. Similar features exist regarding the CPU  272  of the conversion server  200  and the network interface  262 . Similar features exist regarding the CPU  22  of the multi-function peripheral  10  and the network interface  16 . 
     In the present specification, a case is explained in which the mediation server  60  and conversion server  200  are connected by the Internet  6  (that is, when a device functioning as the mediation server  60  and a device functioning as the conversion server  200  are disposed at physically distant positions), but other configurations are possible. The mediation server  60  and conversion server  200  may be realized as a single server. In this case, in the single server, a program which functions as the mediation server  60  and a program which functions as the conversion server  200  run, and communication between the programs is performed via a bus in the server. When the mediation server  60  and conversion server  200  are realized as a single server, in the present specification, communication which is explained as communication between the mediation server  60  and the conversion server  200  may be taken to mean communication between the program which functions as the mediation server  60  and the program which functions as the conversion server  200 . Further, a configuration may be realized in which a program which functions as the mediation server  60 , and moreover also functions as the conversion server  200 , runs on a single server. In this case, in the present specification, communication which is explained as communication between the mediation server  60  and the conversion server  200  may replaced with passing of data within the program which functions as the mediation server  60  and which moreover functions as the conversion server  200 . 
     (Structure of Contents Servers  100  and  110 ) 
     The contents servers  100  and  110  each are a server used for an online service provided by the vender of the multi-function peripheral  10 . The contents servers  100  and  110  are so called storage servers. Note that the contents servers  100  and  110  may be servers used for an online service for lending file storage areas of the respective contents servers  100  and  110  to a user. The online service includes “Evernote (registered trademark of Evernote Corporation)”, “Google (registered trademark of Google, Inc.) Docs”, “PICASA (registered trademark of Google”, Inc.), “FACEBOOK (registered trademark of Facebook, Inc.)”, etc. A user of the online service can upload or download various types of data to or from a storage area assigned to the user via the Internet  6 . 
     The contents server  100  comprises a data storage area  101 . The data storage area  101  is an area in which various data is stored. Data stored in the data storage area  101  includes data in a first format which can be interpreted by the multi-function peripheral  10 , data in a second format which cannot be generated by the multi-function peripheral  10 , and data in a third format which cannot be interpreted by the multi-function peripheral  10 . An example of the data in the first format is data in an image file format. Specific examples of the data in the image file format include data in the JPEG (abbreviation of Joint Photographic Experts Group) format, data in a bitmap format, and data in the GIF (abbreviation of Graphics Interchange Format) format. An example of the data in the second format and data in the third format is data in a document file format. Specific examples of the data in the document file format include data in a word processing software format, data in a spreadsheet software format, and data in a presentation software format. 
     (Role of Mediation Server  60 ) 
     A business operator providing the contents server discloses a dedicated API (abbreviation of Application Program Interface) for requiring a reply of a folder name of a folder stored in the contents server or a file name of image data stored in the contents server. When the multi-function peripheral supports an API of the contents server, the multi-function peripheral can require a reply of information of the contents server. When specification of the API is changed, it becomes necessary to update software of the multi-function peripheral to support the changed API. However, it is painful for the user to update the software of the multi-function peripheral that is already operating. Accordingly, in the embodiment, the mediation server  60  is provided in order that the multi-function peripheral  10  can upload data to the contents server even when the multi-function peripheral  10  does not support the API of the contents server. That is, the mediation server  60  supports the API for requiring a reply of a folder name of a folder stored in the contents server or a file name of image data stored in the contents server. Furthermore, there is a case in that a plurality of contents servers of different types is connected to the Internet. Furthermore, the business operator providing each contents server discloses a dedicated API (abbreviation of Application Program Interface) to upload data to the contents server. It is necessary for the multi-function peripheral  10  to support APIs of a plurality of contents servers in order to upload data to the respective contents servers, so that it is necessary to store a number of programs. However, storage capacity of a memory of the multi-function peripheral  10  is small as compared with a PC, etc. 
     Accordingly, in the embodiment, the mediation server  60  is provided so that the multi-function peripheral  10  can upload data to each of the plurality of contents servers without storing a number of programs in the multi-function peripheral  10 . That is, the mediation server  60  supports a plurality of APIs for the plurality of respective contents servers. Then, in a state where the multi-function peripheral  10  uploads data to a specific contents server (for example, the contents server  100 ) among the plurality of contents servers, the mediation server  60  uses an API for the specific contents server to perform various communications to be described below (for example, communication in S 31  illustrated in  FIG. 2  and communication in S 53  and S 73  illustrated in  FIG. 3 ) with the specific contents server. Herewith, the multi-function peripheral  10  can upload data to the specific contents server even when the multi-function peripheral  10  does not support the API for the specific contents server. 
     (Operation of Communication System) 
     Operation of the communication system will be described using sequence diagrams of  FIGS. 2 to 7 . When receiving an order for displaying a main screen, the CPU  22  of the multi-function peripheral  10  cause the display unit  14  to display the main screen in S 515 . The order for displaying the main screen may be input from the operating unit  12  by a user. Data for displaying the main screen may be preliminarily stored in the memory  24 . An example of the main screen  201  is shown in  FIG. 8 . The main screen  201  includes button images B 1  to B 4 . The button images B 1  to B 4  are images for receiving an input of an execution order among a plurality of functions. The functions accepted by the button images B 1  to B 4  are an Internet function, a Copy function, a FAX function, and a Print function, respectively. 
     In the description example of the present embodiment, a case of uploading various types of data to the contents server  100  will be described. In this case, the button image B 1  included in the main screen  201  is selected. In S 517 , the CPU  22  of the multi-function peripheral  10  transmits button image identification information for identifying the selected button image B 1  to the mediation server  60 . An example of the button image identification information is “Internet” which is the name of the button image B 1 . 
     When receiving the button image identification information from the multi-function peripheral  10 , the CPU  72  of the mediation server  60  specifies a server selection screen  211  as a screen data that is subsequently to be sent to the multi-function peripheral  10 . The server selection screen  211  is a screen for allowing the user to select any one of the contents servers  100  and  110 . 
     In S 518 , the CPU  72  of the mediation server  60  generates server selection screen data for displaying the server selection screen  211 . Information (not illustrated) indicating which information needs to be included in the server selection screen data is stored in the memory  74 . The CPU  72  of the mediation server  60  generates the server selection screen data according to this information. The server selection screen data includes information indicating that button images B 11  and B 12  are to be included in the server selection screen  211 , information indicating that a screen for selecting any one of the button images B 11  and B 12  is to be displayed, information indicating that server names “Server  100 ” and “Service  110 ” correspond to the button images B 11  and B 12 , respectively, and information indicating character strings to be displayed in association with the button images B 11  and B 12 . In S 519 , the CPU  72  of the mediation server  60  transmits the server selection screen data to the multi-function peripheral  10 . 
     When receiving the server selection screen data from the mediation server  60 , the CPU  22  of the multi-function peripheral  10  displays the server selection screen  211  on the display unit  14  in S 521 . As illustrated in  FIG. 9 , the server selection screen  211  includes the button images B 11  and B 12 . The button images B 11  and B 12  are images for accepting selection of the contents servers  100  and  110 , respectively. The CPU  22  of the multi-function peripheral  10  creates bitmap information or the like for displaying the images of the button images B 11  and B 12  based on the server selection screen data received from the mediation server  60  and displays the server selection screen  211  on the display unit  14 . In this manner, since the bitmap information is created by the multi-function peripheral  10 , bitmap information for displaying the images of the button images B 11  and B 12  does not need to be included in the server selection screen data. Further, bitmap information for displaying the Up and Down arrow buttons illustrated in  FIG. 9  does not need to be included in the server selection screen data. The user operates the operating unit  12  to select a button image that represents the contents server, from which image data is to be downloaded, on the server selection screen  211 . In the present embodiment, a case that the user selects the button image B 11  (that is, the contents server  100 ) will be described as an example. Notably, the concept of “selecting a server” may include a concept of “selecting a service”. Specifically, selecting the contents server  100  may be equivalent to selecting a service that the contents server  100  provides. Further, in a case that a plurality of servers for providing one service is present, the concept of “selecting a server” may include the concept of selecting at least one of the plurality of servers. 
     In S 523 , the CPU  22  of the multi-function peripheral  10  transmits service identification information corresponding to the button image selected by the user to the mediation server. In the example explained in this embodiment, service identification information including the server name “Server  100 ” is transmitted to the mediation server. In S 524 , the CPU  72  of the mediation server  60  generates scan/media selection screen data to display a scan/media selection screen based on the service identification information received from the multi-function peripheral  10 . The scan/media selection screen is a screen to accept input regarding use of either data generated by scan processing or data saved on media as data for uploading to the contents server. Media is storage media which can be connected to the multi-function peripheral  10 . Media can store data in various formats, including data in the above-described first to third formats. An example of media is a memory card, not shown. 
     In S 525 , the CPU  72  of the mediation server  60  transmits the scan/media selection screen data to the multi-function peripheral  10 . The CPU  22  of the multi-function peripheral  10 , when receiving the scan/media selection screen data from the mediation server  60 , causes the display unit  14  to display the scan/media selection screen in S 527 . Details of the scan/media selection screen are similar to the above-described server selection screen  211 , and so a detailed explanation is omitted. 
     In S 528 , the CPU  22  accepts selection of one among scanning and media. For example, the selection may be regarded as being accepted when the user operates the operating unit  12 , and selects the button image indicating the processing to be executed on the scan/media selection screen, the selection is accepted. When scanning is selected (S 528 : Scan), processing proceeds to S 529 . 
     In S 529 , the CPU  22  of the multi-function peripheral  10  transmits scan identification information indicating that scanning has been selected to the mediation server  60 . In S 531 , the CPU  72  of the mediation server  60  transmits to the contents server  100  storable data type information request information, to request that storable data type information be transmitted to the mediation server  60 . Storable data type information is information indicating the types of data formats which can be stored in the contents server  100 . One example of storable data type information is an extension indicating a data format. The contents server  100 , when receiving storable data type information request information from the mediation server  60 , transmits storable data type information to the mediation server  60 . In S 533 , the CPU  72  receives the storable data type information. 
     In S 534 , the CPU  72  of the mediation server  60  generates data format selection screen data for display of a data format selection screen  221  based on the storable data type information received in S 533 . The data format selection screen is a screen to cause the user to select a data format when uploading data to a selected contents server. The data format selection screen may also display a list of data formats which can be stored in the selected contents server, and accept selection by the user of a data format from the list. In the example explained in this embodiment, the data format selection screen data includes information indicating that the button images B 21  to B 25  are included in the data format selection screen  221 , information indicating that a screen is displayed for selection of one of the button images B 21  to B 25 , and information indicating the data format names corresponding to each of the button images B 21  to B 25 . In S 535 , the CPU  72  transmits the data format selection screen data to the multi-function peripheral  10 . 
     In S 537  the CPU  22  of the multi-function peripheral  10 , when receiving the data format selection screen data from the mediation server  60 , causes the display unit  14  to display the data format selection screen  221 . The CPU  22  accepts processing to select the selected data format, which is the data format used in uploading to the contents server  100 . As shown in  FIG. 10 , the data format selection screen  221  includes the button images B 21  to B 25 . Each of the button images B 21  to B 25  is an image to accept selection of a selected data format. The user operates the operating unit  12  and selects a button image on the data format selection screen  221  that indicates the data format desired for the upload. 
     In S 541 , the CPU  22  of the multi-function peripheral  10  transmits selected data format instruction information corresponding to the button image selected by the user to the mediation server  60 . Selected data format instruction information is information to identify the selected data format. The selected data format instruction information may be described using a URL (abbreviation of Uniform Resource Locator) description method. In S 543 , the CPU  72  of the mediation server  60  generates scan setting screen data to display a scan setting screen based on the selected data format instruction information. A scan setting screen is a screen to accept input of various scan settings (for example, the format of data to be generated, resolution, color mode, and similar). 
     In S 545 , the CPU  72  of the mediation server  60  transmits the scan setting screen data to the multi-function peripheral  10 . In S 547  the CPU  22  of the multi-function peripheral  10 , when receiving the scan setting screen data from the mediation server  60 , causes the display unit  14  to display the scan setting screen. The CPU  22  accepts input of various scan settings by the user via the operating unit  12 . One example of various scan settings is the data format of the upload data generated by scanning (for example, JPEG or GIF). 
     In S 551 , the CPU  22  of the multi-function peripheral  10  transmits scan setting information to the mediation server  60 . Scan setting information may include upload data format instruction information to identify the data format of upload data. An example of upload data format instruction information is an extension. 
     In S 557 , the CPU  72  of the mediation server  60  determines whether the conversion processing between the data format which can be generated by the multi-function peripheral  10  and the data format which cannot be generated by the multi-function peripheral  10  must be performed for the upload data. Specifically, when the upload data to be transmitted from the multi-function peripheral  10  is data in a first format which can be generated by the multi-function peripheral  10 , and moreover the data format when the upload data is saved to the contents server  100  is a second format which cannot be generated by the multi-function peripheral  10 , then it is determined that conversion processing is necessary. This determination may be performed by comparing the data format identified in the upload data format instruction information included in the scan setting information received in S 551  with the data format identified in the selected data format instruction information received in S 541 . For example, when the upload data is in the JPEG format or PDF format, and the data format when saving the upload data to the contents server  100  is a word processor software format, it is determined that conversion processing is necessary. When it is determined that conversion processing is necessary (S 557 : YES), processing proceeds to S 561 , and the conversion processing order processing P 1 , wait command processing P 2 , and first upload processing P 3  are executed. 
     The conversion processing order processing P 1  (S 561  to S 621 ) is processing to upload the upload data from the multi-function peripheral  10  to the conversion server  200 . In this processing, an execution order is then given for conversion processing of the upload data which has been uploaded to the conversion server  200 . The conversion processing is processing to convert the upload data into converted data in the data format identified by the selected data format instruction information. Processing to upload the upload data to the conversion server  200  for conversion processing may also be called “conversion uploading”. Further, processing to upload the upload data and the converted data to save the same to the contents server may be called “save uploading”. A specific example of the conversion processing is processing to convert data in the word processor software format into data in the JPEG format. 
     Details of the conversion processing order processing P 1  are explained below. In S 561 , the CPU  72  of the mediation server  60  generates scan upload execution order information. Scan upload execution order information is information to order the multi-function peripheral  10  to upload the upload data generated by the scan processing. In S 563 , the CPU  72  transmits the scan upload execution order information to the multi-function peripheral  10 . In S 565 , the CPU  22  of the multi-function peripheral  10  executes scanning of an image. Specifically, the user sets a sheet on which a prescribed image has been recorded on the scan executing unit  19 , and presses a button to start reception on the operating unit  12 , then the CPU  22  causes the scan executing unit  19  to scan the image recorded on the sheet, and creates upload data from the scanned image data. The scan executing unit  19  scans the image based on the scan settings input in S 547 . 
     In S 571 , the CPU  22  transmits conversion upload destination URL reception request information and template reception request information to the mediation server  60 . Conversion upload destination URL reception request information is information to request a conversion upload destination URL, which is information necessary to perform uploading to the conversion server  200 . Template reception request information is information to request a template for an upload message, described below. In S 573 , the CPU  72  of the mediation server  60  transmits conversion upload data ID reception request information to the conversion server  200 . Conversion upload data ID reception request information is information to request a conversion upload data ID to the conversion server  200 . The conversion upload data ID is a data ID for identifying upload data uploaded to the conversion server  200 . In S 575 , the CPU  272  of the conversion server  200  transmits the conversion upload data ID to the mediation server  60 . 
     In S 577 , the CPU  72  creates a template for an upload message. A template for an upload message is a template for a message when uploading upload data to the conversion server  200 . 
     In S 579 , the CPU  72  transmits the conversion upload destination URL and the template for the upload message to the multi-function peripheral  10 . An example of the conversion upload destination URL is the URL of the conversion server  200 . 
     In S 581 , the CPU  22  creates the upload message based on the received template, the received conversion upload destination URL, and the upload data created in S 565 . Specifically, the multi-function peripheral  10  stores binary data as the upload data, the conversion upload destination URL, the data size of the upload data, and various other information at prescribed positions in the template received from the mediation server  60 . Due to this, an upload message suitable for the conversion server  200  can be created. 
     In S 583 , the CPU  22  transmits the upload message to the conversion server  200 . In S 585 , the CPU  272  of the conversion server  200  transmits conversion upload result information to the multi-function peripheral  10 . Conversion upload result information is information indicating whether the upload data was normally uploaded to the conversion server  200 . In S 587 , the CPU  22  of the multi-function peripheral  10  transmits the conversion upload result information to the mediation server  60 . 
     In S 589 , the CPU  72  of the mediation server  60  decodes the conversion upload result information and creates a decoding result. Conversion upload result information is information transmitted from the conversion server  200  to the multi-function peripheral  10 , and thus has specifications particular to the conversion server  200 . Hence by using a decoding program, not shown, included in the program  75  stored in the mediation server  60 , the conversion upload result information can be decoded. A decoding result is a message in a format interpretable by the multi-function peripheral  10 . The decoding result includes the conversion upload result included in the decoded conversion upload result information. 
     In S 619 , the CPU  72  transmits data conversion request information to the conversion server  200 . Data conversion request information is information to request execution of conversion processing of upload data identified by the conversion upload data ID received in S 575  (that is, the upload data uploaded to the conversion server  200  in S 583 ). In S 621 , the CPU  272  of the conversion server  200  transmits converted data reception information to the mediation server  60 . Converted data reception information may include a conversion job ID. The conversion job ID is information to identify conversion processing performed according to the processing to request execution of conversion processing (S 619 ). 
     Wait command processing P 2  (S 631  to S 651 ) is processing to cause the multi-function peripheral  10  to wait until the completion of conversion processing, once the conversion processing has been started for the upload data. The conversion server  200  executes the conversion processing of the upload data in response to the reception of the data conversion request information in S 619 . The conversion processing may be performed for the upload data divided into prescribed data amounts (for example, 100 kB). 
     In S 631 , the CPU  72  of the mediation server  60  transmits conversion completion confirmation request information to the conversion server  200 . The conversion completion confirmation request information is information requesting confirmation by the conversion server  200  as to whether the conversion processing requested of the conversion server  200  in S 619  has been completed. 
     In S 632 , the CPU  272  of the conversion server  200  determines whether the conversion processing has completed. Specifically, using the converted data reception information included in the conversion completion confirmation request information, one conversion processing item for determination as to whether the conversion processing has completed is specified. Then, it is determined whether the conversion of a prescribed amount of data (for example, 100 kB) in the leading portion of the upload data to be converted in the specified conversion processing has completed. In a case that the conversion processing has not completed (S 632 : NO), processing proceeds to S 633 . 
     In S 633 , the CPU  272  transmits to the mediation server  60  incomplete conversion notification information indicating that conversion processing has not completed. In S 635 , the CPU  72  of the mediation server  60  generates a wait command in response to the reception of the incomplete conversion notification information. 
     The wait command is an order to cause the multi-function peripheral  10  to wait for the completion of the conversion processing. 
     In S 637 , the CPU  72  transmits the wait command to the multi-function peripheral  10 . In S 639 , the CPU  22  of the multi-function peripheral  10  executes wait processing to wait for the completion of the conversion processing. The wait processing may for example be processing in which a timer which had been started to detect a timeout of the conversion processing is reset and again started. Or, for example, the wait processing may be processing in which, by increasing the timeout time stored in memory  24  such that the time until timeout of conversion processing is extended, whereby the time until timeout of conversion processing is lengthened. The reason for executing the wait processing will be explained. In a case that the period from input of scan settings (S 551 ) until reception of processing completion notification information (S 667 ) exceeds the timeout time, a timeout error occurs. In such a case, a communication error may occur in the network interface  16  of the multi-function peripheral  10 , and the reception of the processing completion notification information may be failed. Hence by performing the wait processing, the occurrence of the timeout error is prevented. 
     In S 641 , the CPU  22  transmits to the mediation server  60  the wait processing completion information indicating that wait processing execution has completed. Then processing returns to S 631 . 
     However, in a case that in S 632  it is determined that the conversion processing has completed (S 632 : YES), the processing proceeds to S 651 . In S 651 , the CPU  272  of the conversion server  200  transmits to the mediation server  60  the conversion completion notification information indicating that the conversion processing of a prescribed data amount in the leading portion of the upload data has completed. 
     The first upload processing P 3  is explained. The first upload processing P 3  (S 653  to S 669 ) is processing to upload and save the converted data from the mediation server  60  to the contents server  100 . In S 653 , the CPU  72  of the mediation server  60  transmits converted data reception order information to the conversion server  200 . Converted data reception order information is an order to cause the conversion server  200  to transmit the converted data, identified by the converted data reception information, to the mediation server  60 . 
     In S 655 , the CPU  272  of the conversion server  200  transmits the converted data, specified by the converted data reception order information, to the mediation server  60 . In the conversion server  200 , when performing the conversion processing of the upload data for a prescribed amount of data at a time (for example, 100 kB), in S 655  the converted data may be transmitted in units of the prescribed amount of data at a time to the mediation server  60 . 
     In S 657 , the CPU  72  of the mediation server  60  transmits save uploading destination URL reception request information to the contents server  100 . Save uploading destination URL reception request information is information to request a save uploading destination URL, which is information necessary to perform uploading to the contents server  100 . In S 659 , the CPU  72  receives a save uploading destination URL transmitted from the contents server  100 . In S 661 , the CPU  72  of the mediation server  60  transmits converted data to the contents server  100 . In S 663 , the CPU  72  receives save uploading result information transmitted from the contents server  100 . Save uploading result information is information indicating whether the converted data has been stored normally on the contents server  100 . 
     In S 665 , the CPU  72  decodes the save uploading result information and creates a decoding result. For example, when the data size of the uploaded converted data exceeds the data size which can be stored in the contents server  100 , a decoding result is created indicating that saving was not possible because the capacity was exceeded. 
     In S 667 , the CPU  72  of the mediation server  60  transmits processing completion notification information to the multi-function peripheral  10 . Processing completion notification information includes data to cause the display unit  14  of the multi-function peripheral  10  to display the decoding result. In S 669 , the CPU  22  of the multi-function peripheral  10  causes the display unit  14  to display the decoding result based on the processing completion notification information. Then, the flow of processing is ended. 
     On the other hand, when in S 557  it is determined that conversion processing of upload data is not necessary (S 557 : NO), it is determined that the upload data will be uploaded to the contents server  100  without conversion. Hence processing proceeds to S 561   a  in  FIG. 5 , and second upload processing P 3   a  is executed. 
       FIG. 5  is used to explain the second upload processing P 3   a . The second upload processing P 3   a  (S 561   a  to S 669   a ) is processing to upload and save upload data from the multi-function peripheral  10  to the contents server  100 . 
     In S 561   a , the CPU  72  of the mediation server  60  generates the scan upload execution order information. In S 563   a , the CPU  72  transmits the scan upload execution order information to the multi-function peripheral  10 . In S 565   a , the CPU  22  of the multi-function peripheral  10  executes the image scanning and creates the upload data. In S 571   a , the CPU  22  transmits the save uploading destination URL reception request information and the template reception request information to the mediation server  60 . 
     In S 573   a , the CPU  72  of the mediation server  60  transmits the save uploading destination URL reception request information to the contents server  100 . In S 575   a , the CPU  72  receives the save uploading destination URL transmitted from the contents server  100 . In S 577   a , the CPU  72  creates the template for an upload message. In S 579   a , the CPU  72  transmits the save uploading destination URL and the template for an upload message to the multi-function peripheral  10 . In S 581   a , the CPU  22  creates the upload message. In S 583   a , the CPU  22  transmits the upload message to the contents server  100 . In S 585   a , the CPU  22  receives the save uploading result information transmitted from the contents server  100 . 
     In S 587   a , the CPU  22  of the multi-function peripheral  10  transmits the save uploading result information to the mediation server  60 . In S 589   a , the CPU  72  of the mediation server  60  decodes the save uploading result information and creates a decoding result. In S 667   a , the CPU  72  transmits the processing completion notification information to the multi-function peripheral  10 . In S 669   a , the CPU  22  of the multi-function peripheral  10  causes the display unit  14  to display the decoding result based on the processing completion notification information. Then, the flow of processing is ended. 
     On the other hand, in S 528  in  FIG. 2 , when media is selected (S 528 : media), processing proceeds to S 529   b  ( FIG. 6 ). In S 529   b , the CPU  22  of the multi-function peripheral  10  transmits media identification information indicating that media has been selected to the mediation server  60 . The processing from S 531  to S 541  in  FIG. 6  is similar to the processing from S 531  to S 541  in  FIG. 2 , and so an explanation is omitted. 
     In S 543   b , the CPU  72  of the mediation server  60  generates upload data selection screen data to display the upload data selection screen. An upload data selection screen is a screen to accept operations to select upload data from various data stored in media. In S 545   b , the CPU  72  transmits the upload data selection screen data to the multi-function peripheral  10 . In S 547   b , the CPU  22  of the multi-function peripheral  10 , in receiving the upload data selection screen data from the mediation server  60 , causes the display unit  14  to display the upload data selection screen. The CPU  22  accepts an upload data selection by the user via the operating unit  12 . 
     When an upload data selection is accepted, in S 551   b  the CPU  22  transmits the upload data selection information to the mediation server  60 . Upload data selection information may include upload data format instruction information to identify the data format of the upload data. 
     In S 557   b , the CPU  72  of the mediation server  60  determines whether the conversion processing of the upload data must be performed. Specifically, when the upload data transmitted from the multi-function peripheral  10  is data in a third format which cannot be interpreted by the multi-function peripheral  10 , and in addition the data format when saving the upload data to the contents server  100  is not the third format, then it is determined that conversion processing is necessary. This determination may be made by comparing the data format identified using upload data format instruction information included in the upload data selection information received in S 551   b  with the data format identified using selected data format instruction information received in S 541 . For example, when the upload data is in the word processor software format, and the data format when saving the upload data to the contents server  100  is the JPEG format or a presentation software format, it is determined that conversion processing is necessary. 
     In a case that it is determined that conversion processing is necessary (S 557   b:  YES), processing proceeds to S 561   b . In S 561   b , the CPU  72  of the mediation server  60  generates upload execution order information. Upload execution order information is information to order the multi-function peripheral  10  to upload the upload data read out from the media. In S 563   b , the CPU  72  transmits the upload execution order information to the multi-function peripheral  10 . Then, processing proceeds to S 571  in  FIG. 3 . The subsequent processing is as described above, and so an explanation is omitted. 
     On the other hand, in a case in S 557   b  where it is determined that conversion processing is not necessary (S 557   b:  NO), then it is determined that the upload data read out from the media is to be uploaded to the contents server  100  without conversion. Hence processing proceeds to S 561   c  in  FIG. 7 , and third upload processing P 3   b  is executed. In S 561   c , the CPU  72  of the mediation server  60  generates upload execution order information. In S 563   c , the CPU  72  transmits the upload execution order information to the multi-function peripheral  10 . Thereafter, the processing from S 571   a  to S 669   a  in  FIG. 7  is similar to the processing from S 571   a  to S 669   a  in  FIG. 5 , and so an explanation is omitted. 
     (Advantageous Effect) 
     In the mediation server  60  described in the present specification, when the upload data transmitted from the multi-function peripheral  10  is data in the first format (that is, data which can be generated by the multi-function peripheral  10 ), and the data format when storing the upload data on the contents server  100  is data in the second format (that is, data which cannot be generated by the multi-function peripheral  10 ) (S 557 : YES), then upload data can be converted into the converted data which is data in the second format by the conversion server  200  (S 561  to S 651 ), and the converted data can be stored in the contents server (S 661 ). Further, when upload data transmitted from the multi-function peripheral  10  is data in the third format (that is, data which cannot be interpreted by the multi-function peripheral  10 ), and the data format when saving the upload data on the contents server  100  is not the third format (S 557   b:  YES), the upload data can be converted into converted data in a data format other than the third format by the conversion server  200  (S 561   b  to S 651 ), and the converted data can be stored in the contents server (S 661 ). Due to this, upload data generated by the multi-function peripheral  10  can be stored in the contents server  100  in a type of data format which cannot be generated by the multi-function peripheral  10 . 
     In a mediation server  60  described in the present specification, when the data format of upload data and the data format used in uploading to the contents server are the same (S 557 : NO), the multi-function peripheral  10  can be made to execute processing for uploading of the upload data to a contents server (S 583   a ). Hence conversion processing (S 561  to S 651 ) can be omitted. 
     In a mediation server  60  described in the present specification, the save uploading destination URL, which is information to transmit the converted data to the contents server, can be received from the contents server (S 659 ), and the converted data can be transmitted to the contents server (S 661 ). Due to this, converted data can be stored in the contents server. 
     In a mediation server  60  described in the present specification, the storable data type information, indicating the types of data formats which can be stored in the contents server, can be received from the contents server (S 533 ). Further, the multi-function peripheral  10  can be made to display the types of data formats which are storable by the contents server (S 535 ). Due to this, the upload data can be stored in the contents server in the data format in which the contents server can store data. 
     In the mediation server  60  described in the present specification, the wait command to cause the multi-function peripheral  10  to wait for the completion of the conversion processing during execution of the conversion processing can be transmitted to the multi-function peripheral  10  (S 637 ). Further, in response to the completion of the conversion processing (S 632 : YES), the converted data can be transmitted to the contents server (S 661 ). Hence the situation in which the timeout or other error occurs in the multi-function peripheral  10  can be prevented. 
     In a mediation server  60  described in the present specification, the save uploading result information transmitted from the contents server can be received (S 663 ), whether the processing to store converted data on the contents server has been successful can be decoded (S 665 ), and the multi-function peripheral  10  can be made to display the decoding result (S 669 ). Due to this, the user can confirm whether converted data could be stored in the contents server  100 . 
     In the communication system  2  described in the present specification, information such as the selected data format instruction information (S 541 ) can be described using the URL description method. The URL description method is a widely known method, and thus when communicating the above information between the mediation server, the conversion server, contents server, and other devices, the method can be used without dependence on models. 
     The communication system  2  described in the present application comprises the mediation server  60  and the conversion server  200 . The mediation server  60 , conversion server  200 , and contents servers  100  and  110  are interconnected through the Internet  6 . Various kinds of data, such as contents data and converted data reception information, are communicated between the mediation server  60  and the conversion server  200 . According to this, even when the mediation server  60  and the conversion server  200  are separate servers, and are interconnected via a communication path, the contents server can be made to store converted data. 
     While specific embodiments of the present invention have been described in detail above, such description is for illustrative purposes only and is not intended to limit the scope and claims of the invention. Techniques described in the claims of the invention include various modifications and changes made to the specific examples illustrated above. Modifications according to the above embodiments are listed below. 
     (MODIFIED EXAMPLE) 
     Processing to determine whether the conversion processing must be performed, as indicated in S 557  and S 557   b , on the upload data need not necessarily be performed by the mediation server  60 . For example, the processing may be performed by the multi-function peripheral  10 . In this case, the CPU  22  of the multi-function peripheral  10  may determine whether conversion processing is necessary based on the selected data format accepted in S 537  (that is, the data format when uploading to the contents server  100 ) and the data format of the upload data accepted in S 547 , and transmit the information indicating the determination result to the mediation server  60 . 
     In S 661 , various configurations may be used for uploading converted data to the contents server  100 . For example, the conversion server  200  may upload converted data to the contents server  100 . In this case, in S 653  the CPU  72  of the mediation server  60  may transmit, to the conversion server  200 , upload request information to upload converted data to the contents server  100 . Then, the CPU  272  of the conversion server  200  may transmit the converted data to the contents server  100 , and receive save uploading result information from the contents server  100 . The CPU  272  may transmit the received save uploading result information to the mediation server  60 . 
     Further, converted data generated by the conversion server  200  may be uploaded to the contents server  100  via the multi-function peripheral  10 . In this case, the subject performing the processing of S 653  to S 661  may be the multi-function peripheral  10  rather than the mediation server  60 . 
     In S 547   b , data which can be selected on the upload data selection screen may be limited to data formats determined in advance. For example, when there is the constraint that only data in the JPEG format can be selected as upload data, then only file names of data in the JPEG format may be displayed on the upload data selection screen. 
     Various methods may be used to cause the multi-function peripheral  10  to execute wait processing (S 639 ) to wait for completion of conversion processing. For example, the multi-function peripheral  10  may execute wait processing in receiving incomplete conversion notification information indicating that conversion processing has not been completed. The multi-function peripheral  10  may receive incomplete conversion notification information from the conversion server  200 . 
     S 571  is not limited to a configuration in which the conversion upload destination URL is requested to the mediation server  60 . When the server to be accessed to execute conversion processing is fixed as the conversion server  200 , an URL to access the conversion server  200  may be stored in advance in memory  24  of the multi-function peripheral  10 . In this case, in S 571  the URL to access the conversion server  200  may be read out from memory  24 . 
     In S 515 , various configurations may be used to cause the display unit  14  to display the main screen. For example, when an order to display the main screen is input by the user to the operating unit  12 , the multi-function peripheral  10  may access the mediation server  60 . The mediation server  60  may create main screen data to cause display of the main screen, and may transmit the data to the multi-function peripheral  10 . The multi-function peripheral  10  may display the main screen based on the main screen data. 
     In the present embodiment, a case was explained in which contents servers  100  and  110  are connected to the Internet  6 ; but three or more contents servers may be connected to the Internet  6 . 
     In the embodiment, the case is described in which the CPUs  22 ,  72  and  272  of the multi-function peripheral  10 , the mediation server  60  and the conversion server  200  execute processing according to software, but is not limited thereto. At least a part of functions provided according to the software may be provided by hardware such as a logic circuit. 
     A concept that includes the mediation server  60  and the conversion server  200  may be referred to as a “relaying device”. That is, the “relaying device” as claimed may include the configuration including the mediation server  60  and the conversion server  200  as described in the specification.