Patent Description:
Some of devices having a scanner function to read an image and generate electronic data are connectable with a server that provides a predetermined service through a network.

<CIT> discloses a network system that transmits image data obtained by the scanner function to a server of a storage service such that the server stores the image data therein. Additionally, <CIT> discloses a system that attaches image data obtained by the scanner function to an e-mail to transmit the image data to another device. <CIT> relates to an information processing system including at least one computer and a receiving unit that receives data input by an apparatus connected through a network and specifying information of specifying a storage destination of the data from a plurality of candidate storage destinations. <CIT> relates to systems and methods for facilitating direct scanning to network destinations by clients.

In some cases, specific processing such as optical character recognition (OCR) may be required for image data obtained by the scanner function. However, in order to perform the above specific processing in a conventional network system, a user has needed to read data uploaded on a server and purposely perform the specific processing on the thus-read data.

The present invention is intended to solve the above-mentioned problem. Therefore, an object of the present invention is to allow for simple steps of using various services provided on a network onto image data that is obtained by a device connected to the network and uploaded on a server.

The dependent claims define particular embodiments.

The present invention in its first aspect provides a server system as specified in claims <NUM> to <NUM>.

The present invention in its second aspect provides a program as specified in claim <NUM>.

<FIG> is a diagram describing a configuration of an information processing system usable in this embodiment. The information processing system in this embodiment includes a network <NUM>, a client device <NUM> connected to the network <NUM>, an individual MFP <NUM>, a shared MFP <NUM>, a relay server <NUM>, and a server-for-service <NUM>. An MFP herein is a so-called multifunction printer (multifunction peripheral: hereinafter, also referred to as MFP) and is an image processing apparatus having a scanning function and a printing function.

As the network <NUM>, a local area network (LAN), a wide area network (WAN), a telephone line, and a dedicated digital line may be used, for example. An asynchronous transfer mode (ATM), a Frame Relay line, a cable television line, a wireless line for data broadcasting, and the like may also be used. The network <NUM> may be in the form of a so-called communication network such as the Internet implemented by a combination of the above-mentioned various lines.

As the client device <NUM>, a smartphone, a tablet, a general-purpose personal computer, and the like may be used. The individual multifunction peripheral (MFP) <NUM> is an MFP for home use that is premised on being used by one or few people. The shared MFP <NUM> is an MFP with relatively high performance and high functionality that is installed in an office or a public facility. The client device <NUM>, the individual MFP <NUM>, and the shared MFP <NUM> are connected to the Internet through an access point.

In this embodiment, a web browser is installed in each of the client device <NUM> and the individual MFP <NUM>, such that the client device <NUM> and the individual MFP <NUM> can use various web services on the browser through a browsing service provided by an application-for-browsing <NUM> of the relay server <NUM>. That is, the client device <NUM> and the individual MFP <NUM> are capable of indirectly using a service provided by an application-for-service <NUM> through the relay server <NUM>. Therefore, even in a case where a function of the server-for-service <NUM> is updated, the client device <NUM> and the individual MFP <NUM> are capable of using the new function of the server-for-service <NUM> without performing an operation of changing an application. Additionally, since the individual MFP <NUM> can charge the relay server <NUM> with a part of image processing, it is possible to reduce the load on a CPU <NUM> and the usage of a working memory <NUM> (see <FIG>).

On the other hand, the shared MFP <NUM> is capable of directly using a service provided by the application-for-service <NUM> without the relay server <NUM>.

The relay server <NUM> provides the application-for-browsing <NUM> implemented therein in response to an access from the client device <NUM> and the individual MFP <NUM> and manages a screen for browsing a web page in the corresponding terminal device. That is, users of the client device <NUM> and the individual MFP <NUM> can use a service provided by the server-for-service <NUM> in accordance with contents displayed on the browser screen. This web page includes a service login page to login the server-for-service <NUM>, and the like.

In the server-for-service <NUM>, the application <NUM> providing a predetermined service to various terminal devices that are able to communicate through a network is implemented. Hereinafter, the "application providing a predetermined service" is referred to as an "application-for-service". The service provided by the application-for-service <NUM> may include a service of managing image data and a document file owned by a user by the server-for-service <NUM> and enabling browsing of the data and file, for example. There may also be included a service of performing processing such as OCR on image data provided from a user and additionally performing business form processing on the data after OCR, and the like. Moreover, the application-for-service <NUM> is also capable of providing a service of providing and updating file information through an application programming interface (API). The above services are merely examples, and the application-for-service <NUM> is capable of providing various publicly-known services. A user can use such services through a web browser and another graphical user interface (GUI).

The server-for-service <NUM> may provide a service by itself; however, as illustrated in <FIG>, the server-for-service <NUM> may be connected with one or more other servers-for-service 109a, 109b. and provide services provided from these connected servers together. In any case, with various application-for-services being usable through a network like the information processing system in <FIG>, it is possible to reduce the processing load on the individual MFP <NUM> and the shared MFP <NUM> and to provide the individual MFP <NUM> and the shared MFP <NUM> at low prices. In <FIG>, an example in which the relay server <NUM> includes one server (information processing apparatus) is described; however, the relay server <NUM> may include multiple servers. That is, a function may be executed by multiple servers cooperatively operating. Likewise, the server-for-service <NUM> may include multiple servers. In the present disclosure, a configuration including one or more servers is referred to as a server system.

In a case where users of the client device <NUM>, the individual MFP <NUM>, and the shared MFP <NUM> use the application-for-service <NUM>, the users need to login by using account information that is registered in advance. In this embodiment, login means that various terminal devices input account information on them into the server-for-service <NUM>, the server-for-service <NUM> authorizes the account information and the various terminal devices obtain the authorization information. As the login, generally-known open authorization (OAuth) can be used. As a method of the login, a personal identification number (PIN) code issued by the application-for-service <NUM> may be inputted from the various terminal devices.

<FIG> is a block diagram describing a control configuration of the individual MFP <NUM> and the shared MFP <NUM>. The CPU <NUM> as a central processing unit controls the overall device while using the working memory <NUM> as a work area in accordance with a program stored in a program memory <NUM>. The program memory <NUM> includes a ROM and the like and stores not only various program codes but also parameters required to operate a printer unit <NUM> and a scanner unit <NUM>, an application <NUM> for communicating with a server device, and the like. The application <NUM> can also access the printer unit <NUM> to obtain information on consumables such as ink and paper. The working memory <NUM> includes a RAM and the like and is used in a case where the CPU <NUM> performs predetermined image processing, for example. The working memory <NUM> is also used to temporarily save and buffer image data during execution of each service.

The printer unit <NUM> prints an image on not-illustrated paper in accordance with image data received from outside or image data stored in a memory card <NUM>. The printing method is not particularly limited, and an inkjet method, an electrophotographic method, and the like can be employed. The printer unit <NUM> also manages information on consumables such as color materials and paper.

The scanner unit <NUM> optically reads an original copy set on a not-illustrated platen glass and converts the obtained electronic data into image data in a designated file format.

The memory card <NUM> is demountably mounted in a memory card mounting unit <NUM>. The CPU <NUM> can read various data saved in the memory card <NUM> and can save various data into the memory card <NUM>.

A network communication unit <NUM> controls a network connection through a network connection unit <NUM> under control of the CPU <NUM>. The network communication unit <NUM> may be compatible with a wired LAN or may be compatible with a wireless LAN. In a case of a wired LAN, a connector that connects a cable of the wired LAN is the network connection unit <NUM>. In a case of a wireless LAN, an antenna is the network connection unit <NUM>.

A flash memory <NUM> is a non-volatile memory that stores image data received by the network communication unit <NUM>. A display unit <NUM> includes an LCD, for example, and displays various pieces of information to a user. An operation unit <NUM> includes a switch group and the like and accepts an input of a command and information from a user. A bus <NUM> connects the above-described mechanisms with each other.

Under the above-described configuration, the CPU <NUM> can cause the printer unit <NUM> to print an image based on the image data received from a network or the image data read from the memory card <NUM>. Additionally, the CPU <NUM> can cause the scanner unit <NUM> to perform scanner processing and can cause the printer unit <NUM> to print an image in accordance with the obtained image data. Moreover, the CPU <NUM> can save the image data obtained from the scanner processing into the memory card <NUM> and can transmit the image data through the network communication unit <NUM>.

<FIG> is a schematic block diagram describing a control configuration of the client device <NUM>, the relay server <NUM>, and the server-for-service <NUM>. A CPU <NUM> as a central processing unit controls the overall device while using a memory <NUM> as a work area in accordance with a program saved in a disk device <NUM>. The disk device <NUM> stores not only an application <NUM> read by the CPU <NUM> but also a database <NUM>, an OS, and various files. The memory <NUM> includes a RAM and the like and is used by the CPU <NUM> to temporarily save and buffer data and the like.

A network communication unit <NUM> controls a network connection through a network connection unit <NUM> under control of the CPU <NUM>. The network communication unit <NUM> may be compatible with a wired LAN or may be compatible with a wireless LAN. In a case of a wired LAN, a connector that connects a cable of the wired LAN is the network connection unit <NUM>. In a case of a wireless LAN, an antenna is the network connection unit <NUM>. Under control of the CPU <NUM>, a USB communication unit <NUM> controls communication with an externally connected peripheral device through a USB connection unit <NUM>.

An external storage media reading device <NUM> is a device reading file information and the like stored in an external storage medium such as an SD card. A display unit <NUM> includes an LCD, for example, and displays various pieces of information to a user. An operation unit <NUM> includes a keyboard, a mouse, and the like and accepts an input of a command and information from a user. In the client device <NUM>, the display unit <NUM> and the operation unit <NUM> may be a touch panel in which their functions are integrated. A bus <NUM> connects the above-described mechanisms with each other.

The client device <NUM>, the relay server <NUM>, and the server-for-service <NUM> may be virtual computers implemented on another computer.

Next, a specific example of using an application-for-service is described. <FIG> is a flowchart describing processing executed by the relay server <NUM> in a case where a user uses the application-for-service <NUM> of the server-for-service <NUM> by means of the individual MFP <NUM>. This processing is executed with the CPU <NUM> of the relay server <NUM> activating the application <NUM> of the disk device <NUM>. This processing is started with the user accessing the application-for-browsing <NUM> of the relay server <NUM> on a web browser of the client device <NUM> or the individual MFP <NUM>. Here, a case where the user accesses the application-for-browsing <NUM> from the individual MFP <NUM> is described as an example; however, similar steps are performed also in a case of accessing from the client device <NUM>.

When this processing is started, in S501, the relay server <NUM> first transmits a list of services usable in the individual MFP <NUM> to the individual MFP <NUM>. Accordingly, the list of the usable services is displayed on the display unit <NUM> of the individual MFP <NUM>.

<FIG> is a diagram illustrating the list of the services displayed on the display unit <NUM> of the individual MFP <NUM>. In <FIG>, an application list <NUM> displays four menus as options, which are "storage service <NUM> ", "storage service <NUM>", "print service <NUM> ", and "profile execution service". These services may be provided by the server-for-service <NUM> or may be provided by the other servers-for-service 109a, 109b. connected to the server-for-service <NUM> (see <FIG>).

In <FIG>, the "storage service <NUM>" and the "storage service <NUM>" are services of saving and managing the image data read by the scanner unit <NUM> in their corresponding servers. The "print service <NUM>" is a service of providing an image to be printed by the printer unit <NUM> from the server-for-service <NUM>. The "profile execution service" is a service of performing specific processing on the image data obtained by the individual MFP <NUM>, including the scanning processing by the scanner unit <NUM>. The user selects a desired service, or an application to be executed, from these multiple services. Accordingly, information on the selected application is transmitted from the individual MFP <NUM> to the relay server <NUM>, and thus the relay server <NUM> can obtain the information.

<FIG> illustrates a case where the terminal device in use is an MFP, that is, a case where the terminal device in use is a device having a printer function. However, if the terminal device in use is a device having no printer function such as a simple scanner device or a camera, for example, a service that can never be implemented like the "print service <NUM>" is preferably not displayed.

Back to the description of <FIG>. In a case where the information on the application to be executed is obtained in S501, the relay server <NUM> proceeds to S502 and determines whether the set application is a scanning application or a printing application. If the set application has both the functions of printing and scanning, the relay server <NUM> may further transmit a screen in which either of printing or scanning can be selected so as to allow the user to select one.

In S502, in a case where it is determined that the set application is a scanning application, the relay server <NUM> proceeds to S503 and determines whether the set application is a storage application or a profile execution application. The storage application herein means an application that provides a service of saving the image data obtained from the scanning processing by the scanner unit <NUM> into a predetermined server. On the other hand, the profile execution application means an application that performs specific processing such as OCR on the image data obtained from the scanning processing by the scanner unit <NUM>.

In a case where it is determined that the set application is a storage application, the relay server <NUM> proceeds to S504. The relay server <NUM> then transmits a screen for selecting a folder for saving that is managed by the server-for-service <NUM> to the individual MFP <NUM> and obtains setting information on the folder for saving from the individual MFP <NUM>.

<FIG> is a diagram illustrating an example of the folder selection screen displayed on the display unit <NUM> of the individual MFP <NUM> in S504. In <FIG>, a folder list screen <NUM> displays a list of subfolders, which are capable of saving image data therein, in a folder focused within a folder hierarchy. To be specific, first, the highest hierarchy within the folder hierarchy is displayed. In this case, a file <NUM> represents a file that is saved in advance in the same hierarchy as folders <NUM> to <NUM>. When the user selects any one of the above-mentioned multiple folders, the display of the folder list screen <NUM> is updated so as to display a subfolder and a file in the selected folder. In the scanning application, the file <NUM> can never be selected since the user is instructed to select a destination file for saving; therefore, the file <NUM> may not be displayed on the folder list <NUM>. When the user selects a determination button <NUM>, a parent folder of the hierarchy that is being displayed in that moment is selected as a folder into which the image data should be saved.

Back to the description of <FIG>. In a case where it is determined that the set application is a profile execution application in S503, the relay server <NUM> proceeds to S505. The relay server <NUM> then transmits a screen for selecting a profile managed by the server-for-service <NUM> to the individual MFP <NUM> and obtains information on the profile to be executed from the individual MFP <NUM>.

<FIG> is a diagram illustrating an example of the profile selection screen displayed on the display unit <NUM> of the individual MFP <NUM> in S505. In <FIG>, a profile list <NUM> displays a list of profiles registered by the user in advance in the server-for-service <NUM>. The user selects a desired profile from these multiple profiles.

In <FIG>, only the profile names are listed; however, information on each profile such as created date and time and information on someone who created may be appended. Additionally, out of the registered profiles, only a profile that is executable in the individual MFP <NUM> may be displayed, or the registered profiles may be displayed in the descending order of use frequency. Such a display control may be performed by the relay server <NUM> or may be performed by the individual MFP <NUM>.

Back to the description of <FIG>. In S506, the relay server <NUM> transmits a scanning setting screen obtained from the server-for-service <NUM> to the individual MFP <NUM> and obtains scanning setting information set by the user.

<FIG> is a diagram illustrating an example of the scanning setting screen displayed on the display unit <NUM> by the individual MFP <NUM> in S506. In this example, "original copy type", "paper size", "original copy direction", and "resolution" are settable items in a case where the scanning processing is performed by the scanner unit <NUM>. After setting each of these items, the user selects a scanning execution button <NUM>. Accordingly, the information set by the user is transmitted to the relay server <NUM> by the individual MFP <NUM>. Here, the four types of items are exemplified; however, the number and the contents of the setting items can be changed depending on the function of the individual MFP <NUM>. Also, a configuration in which some of or all the items are set to a fixed value so as not to accept the selection by the user may be employed.

Back to the description of <FIG>. In a case where the scanning setting information is obtained in S506, the relay server <NUM> proceeds to S507 and executes the scanning processing. To be specific, the relay server <NUM> transmits a scanning instruction based on the scanning setting information set in S506 to the individual MFP <NUM> so as to cause the individual MFP <NUM> to perform the scanning processing and obtains the thus-obtained image data.

In this process, in a case where it is determined that a storage application is selected in S503, the relay server <NUM> transmits the image data obtained from the scanning processing to the server-for-service <NUM> with the folder setting information obtained in S504. Once receiving them, the server-for-service <NUM> saves the uploaded image into the set folder. On the other hand, in a case where it is determined that a profile execution application is selected in S503, the relay server <NUM> transmits the image data obtained from the scanning processing to the server-for-service <NUM> with the profile information obtained in S505. Once receiving them, the server-for-service <NUM> executes predetermined processing on the uploaded image based on the profile information.

In a case where it is determined that the set application is a printing application in S502, the relay server <NUM> proceeds to S508. The relay server <NUM> then transmits a screen for selecting a file managed by the server-for-service <NUM> to the individual MFP <NUM> and obtains information on an image file to be printed from the individual MFP <NUM>. The file selection screen may be a display screen as illustrated in <FIG>. The user may select the determination button <NUM> after selecting a folder in which the image file to be printed is saved out of the multiple folders and further selecting the image file to be printed. In the printing application, as long as an image file is specified at least, the determination button <NUM> may not be displayed, and therefore an image file may be determined as the printing target once the file is selected.

In S509, the relay server <NUM> transmits the printing setting screen obtained from the server-for-service <NUM> to the individual MFP <NUM> and obtains printing setting information set by the user. The user performs setting to perform the print processing by the printer unit <NUM> through the printing setting screen displayed on the display unit <NUM> of the individual MFP <NUM>. The details of the printing setting screen are not described; however, note that, the user can instruct starting of the print processing after setting "paper type", "paper size", "number of copies ", "image processing", and the like on the printing setting screen.

In S510, the relay server <NUM> obtains the image file set in S508 from the server-for-service <NUM> and executes the printing processing. To be specific, the relay server <NUM> performs image processing on the obtained image file based on the printing setting information obtained in S509 and transmits the image file to the individual MFP <NUM>. Accordingly, the CPU <NUM> of the individual MFP <NUM> causes the printer unit <NUM> to print an image in accordance with the received image data. Here, the image processing based on the printing setting information obtained in S509 is performed by the relay server <NUM>; however, such image processing may be executed by the individual MFP <NUM>. Also, the image processing may be performed by a cooperation of the relay server <NUM> and the individual MFP <NUM>. Then, this processing is terminated.

In <FIG>, a case where the user uses a service related to the individual MFP <NUM> is described; however, if the terminal device in use has no printer function, the relay server <NUM> may not perform the steps of S502 and S508 to S510. That is, after receiving the information on an application to be executed in S501, the relay server <NUM> may proceeds directly to S503.

Additionally, in <FIG>, the processing performed by a relay server in a case where the individual MFP <NUM> uses the application-for-service <NUM> of the server-for-service <NUM> is described; however, similar processing is performed also in a case where no relay server is required like a case where the shared MFP <NUM> uses the application-for-service <NUM> of the server-for-service <NUM>. In this case, note that, the series of processing described in <FIG> is performed by the server-for-service <NUM>.

Details of transmission and reception actually performed between the individual MFP <NUM>, the relay server <NUM>, and the server-for-service <NUM> in some of the steps described in <FIG> are further described below.

<FIG> is a diagram describing the steps of transmission and reception performed between the individual MFP <NUM>, the relay server <NUM>, and the server-for-service <NUM> in order to designate a folder or a file of the server-for-service <NUM> in S504 or S508 in <FIG>. The step executed by the individual MFP <NUM> is performed with the CPU <NUM> of the individual MFP <NUM> operating the application <NUM> held by the program memory <NUM> to control each unit (see <FIG>). The step executed by the relay server <NUM> and the server-for-service <NUM> is performed with the CPU <NUM> of each of the relay server <NUM> and the server-for-service <NUM> controlling each unit based on the program saved in the disk device <NUM> (see <FIG>).

Here, a case where the user uses the application-for-browsing <NUM> of the relay server <NUM> through the individual MFP <NUM> is described as an example; however, the processing is performed in similar steps also in a case where the user uses the client device <NUM>. In this embodiment, in a case where the processing of designating a folder or a file is performed, authorization of the user and approval of the access to the server-for-service <NUM> are performed before the processing. Here, generally known OAuth is described as an example. In OAuth, the relay server <NUM> takes a role as a client, while the server-for-service <NUM> takes a role as a resource server.

Once the user selects a desired application from the screen displayed on the individual MFP <NUM> in S501 in <FIG>, the individual MFP <NUM> requests the relay server <NUM> to activate a corresponding application-for-service (S601). At the request of the individual MFP <NUM>, the relay server <NUM> requests the server-for-service <NUM> to confirm the authorization status of the individual MFP <NUM> (S602). At the request of the relay server <NUM>, the server-for-service <NUM> confirms the authorization status and responds an authorization result indicating whether the service onto the individual MFP <NUM> is valid or invalid to the relay server <NUM> (S602r).

If the authorization result received by the relay server <NUM> is "valid", steps from S603 to S609r are skipped. On the other hand, if the authorization result received by the relay server <NUM> is "invalid", the relay server <NUM> requests the individual MFP <NUM> to be redirected to an URL for authorizing the server-for-service <NUM> (S603). Here, the case where the authorization result is invalid is comparable to a case where the individual MFP <NUM> accesses the server-for-service <NUM> for the first time, or a case where the validity of the last authorization information is expired.

The individual MFP <NUM> that receives the request of being redirected directly accesses the authorization URL of the server-for-service <NUM> (S604). The authorization URL that accepts the access transmits an authorization screen to be displayed on the individual MFP <NUM> (S605).

In accordance with the displayed authorization screen, the user inputs information required for the authorization such as an account ID and a password by using the operation unit <NUM> of the individual MFP <NUM>. The individual MFP <NUM> transmits the inputted authorization information to the authorization URL of the server-for-service <NUM> (S606). In this process, if the authorization processing cannot be completed because of a failure in the user operation and the like, the steps of S605 and S606 are repeated between the server-for-service <NUM> and the individual MFP <NUM>. If the individual MFP <NUM> is in the form that cannot display the authorization screen, the steps of authorization and approval from S605 to S607 may be performed by another terminal device such as the client device <NUM>.

Once the received authorization information is certified, the server-for-service <NUM> requests the individual MFP <NUM> to transmit a callback after completing the authorization (S607).

The individual MFP <NUM> that receives the request of transmitting a callback transmits callback information to the relay server <NUM> (S608). The relay server <NUM> that receives the callback information requests the server-for-service <NUM> to transmit an access token for obtaining a folder/file list of the authorized account based on the received callback information (S609). The server-for-service <NUM> that receives the request transmits the access token to the relay server <NUM> (S609r).

The relay server <NUM> that receives the access token uses the received access token to request the server-for-service <NUM> to transmit the folder/file list associated with the authorized account (S610). The server-for-service <NUM> that receives the request transmits the corresponding folder/file list to the relay server <NUM> (S610r). The relay server <NUM> transmits the received folder/file list to the individual MFP <NUM> (S611). As the folder/file list received by the individual MFP <NUM> is displayed as illustrated in <FIG>, the user of the individual MFP <NUM> can confirm the folder and the file managed by the server-for-service <NUM>.

Once the user selects an arbitrary folder or file, the individual MFP <NUM> transmits information on the selected folder to the relay server <NUM> (S612). The relay server <NUM> that receives the folder information transmits the folder information to the server-for-service <NUM> (S613).

In a case where the folder selected by the user has multiple hierarchies, the steps from S610 to S613 are repeated until a specific saving space is determined, and the display on the folder list <NUM> may be updated every time the steps are repeated.

<FIG> is a diagram describing in detail the steps of transmission and reception performed between the individual MFP <NUM>, the relay server <NUM>, and the server-for-service <NUM> in the scanning processing in S507 in <FIG> in a case where the set scanning application is a storage application. The step executed by the individual MFP <NUM> is performed with the CPU <NUM> of the individual MFP <NUM> operating the application <NUM> held by the program memory <NUM> to control each unit (see <FIG>). The step executed by the server-for-service <NUM> is performed with the CPU <NUM> of the server-for-service <NUM> controlling each unit based on the program saved in the disk device <NUM> (see <FIG>).

Once the scanning setting information based on the setting screen in <FIG> is obtained, the relay server <NUM> transmits the scanning instruction based on the set scanning setting information to the individual MFP <NUM> (S901). The individual MFP <NUM> that receives the scanning instruction uses the scanner unit <NUM> and executes the scanning processing in accordance with the instructed setting (S902). Next, the individual MFP <NUM> transmits the scanned data (image data) obtained from the scanning processing in S902 to the relay server <NUM> (S903). The relay server <NUM> that receives the scanned data uploads binary data of the received scanned data to the server-for-service <NUM> with the information on the folder for saving that is obtained in S504 in <FIG> (S904). In this process, the access token obtained in S609r in <FIG> is used to select a storage server associated with the account. The server-for-service <NUM> that receives the instruction saves the received scanned data into the designated folder (S905).

Here, a management function provided from the profile execution service to the client device <NUM> is described. In this embodiment, the management function is a service of managing a user using a terminal device having no scanning function such as the client device <NUM> and an MFP having the scanning function such as the individual MFP <NUM> and the shared MFP <NUM> by associating the user and the MFP with each other.

<FIG> is a diagram illustrating an example of a menu screen displayed on the client device <NUM> in a case where the management function of the profile execution service is activated. Such a menu screen <NUM> is provided with the user directly accessing the application-for-service <NUM> of the server-for-service <NUM> from a web browser of the client device <NUM> and is displayed through the web browser. The menu screen <NUM> includes buttons of "profile creation", "registration key issue", and "job management", and the user can select a desired item from the buttons.

<FIG> is a diagram illustrating a profile creation screen displayed through the web browser in a case where the user selects the "profile creation" on the menu screen <NUM> in <FIG>. A profile creation screen <NUM> is a screen on which the details of the processing to be performed on the scanned data obtained from the scanning processing are defined as a profile. On the profile creation screen <NUM>, the user inputs or selects a desired content into or from each item and thereafter selects a creation button <NUM>.

In <FIG>, in "profile name", the user can input a desired name as the name of the target profile. The inputted profile name is registered by the server-for-service <NUM> and is displayed as one of the options on a profile list screen described later.

In "cooperation service", the user designates a service of executing a target profile. Such a cooperation service may be provided by a server different from the server-for-service <NUM> such as the servers-for-service 109a, 109b. described in <FIG>. If the scanned data is desired to be saved in a storage service, the user designates a storage service as a saving destination. If the scanned data is desired to be transmitted by an e-mail, the user designates an e-mail transmission service. If OCR is desired to be performed on the scanned data and also the data is desired to be saved, or if OCR is desired to be performed on the scanned data and also the business form processing is desired to be performed on the OCR result, a service of performing the two types of processing together is designated.

<FIG> illustrates a case where "storage <NUM>" is selected as a storage service as a saving destination in order to save the scanned data into a storage service. Accordingly, setting items related to the storage service are displayed below the "cooperation service".

In "output destination folder", the user designates a folder into which the scanned data is saved. In "outputted file format", the user sets a file format for saving the scanned data. In "file naming rule", the user selects a format of a file name in a file storage into which the scanned data is saved out of some formats defined in advance. A method of inputting each item may be a method in which a text box is arranged and the user inputs letters therein like the "profile name" and the "output destination folder", or may be a method in which a combo box is displayed and the user selects one from multiple fields like the other items. After the input or selection of these items, the user selects the creation button <NUM>, and thus the contents set on the profile creation screen are transmitted to the server-for-service <NUM>. The server-for-service <NUM> defines one profile based on the received set contents and saves the profile in association with the user account.

If a service different from the storage service is selected in the "cooperation service", a setting item related to the selected service may be displayed below the "cooperation service". The service different from the storage service may include an OCR service, for example. In the OCR service, a part of a character string obtained from the OCR may be set as a default name of the file or may be automatically set as a file name. As described above, the user can define various profiles by using the profile creation screen illustrated in <FIG>.

<FIG> is a diagram illustrating a registration key issue screen displayed through a web browser in a case where the user selects the "registration key issue" on the menu screen in <FIG>. Once the user selects the "registration key issue", the server-for-service <NUM> issues a registration key in association with the user account. The issued registration key is saved into the server-for-service <NUM> and thereafter used as needed by the user in a case where the profile execution service is used. The registration key in this embodiment includes a value of random <NUM> digits and is displayed on the screen while being divided by four digits to improve the visibility by the user. The registration key may be provided with a validity that is, for example, <NUM> minutes after issue.

<FIG> is a diagram illustrating a job management screen displayed through a web browser in a case where the user selects the "job management" on the menu screen in <FIG>. In this case, multiple jobs registered in the server-for-service <NUM> are listed and displayed. In this case, "job name", "total page number", "date", and "transmission destination" are displayed as items related to each jobs.

The "job name" indicates a name assigned by the server-for-service <NUM> during the job registration. The "total page number" indicates the number of pages of the scanned data obtained by the server-for-service <NUM> during the job registration. The "date" indicates a date on which the job is registered. The "transmission destination" displays a service name as a transmission destination to which the server-for-service <NUM> transmits the scanned data during processing of the job. This service name is comparable to the service name that is designated in the "cooperation service" on the profile creation screen described in <FIG>. The items displayed on the job list are not limited to the above and can be changed as necessary.

Out of these multiple jobs, the user can select a job to be executed. In this case, a situation in which a job with a job name of "BBBBB" is selected is illustrated. When the user selects a preview button <NUM> while an arbitrary job is selected, an image of scanned data corresponding to the selected job is displayed on the display unit <NUM> of the client device <NUM>. That is, the user can confirm the correspondence between the selected job and the image. On the other hand, when the user selects a transmission button <NUM> while an arbitrary job is selected, the job is transmitted to a corresponding profile execution service, and processing is executed with the service of the transmission destination.

<FIG> is a diagram describing in detail the steps of transmission and reception performed between the individual MFP <NUM>, the relay server <NUM>, and the server-for-service <NUM> in a case where a desired profile is designated in S505 in <FIG>. The step executed by the individual MFP <NUM> is performed with the CPU <NUM> of the individual MFP <NUM> operating the application <NUM> held by the program memory <NUM> to control each unit (see <FIG>). The step executed by the relay server <NUM> and the server-for-service <NUM> is performed with the CPU <NUM> of each of the relay server <NUM> and the server-for-service <NUM> controlling each unit based on the program saved in the disk device <NUM> (see <FIG>). Here, a case where the user uses the application-for-browsing <NUM> of the relay server <NUM> through the individual MFP <NUM> is described as an example; however, the processing is performed in similar steps also in a case where the user uses the client device <NUM>.

In S501 in <FIG>, if the user selects the profile execution service from the application list <NUM> in <FIG> displayed on the individual MFP <NUM>, the individual MFP <NUM> requests the relay server <NUM> to activate a corresponding application-for-service (S1801). At the request of the individual MFP <NUM>, the relay server <NUM> requests the server-for-service <NUM> to confirm the authorization status of the individual MFP <NUM> (S <NUM>). At the request of the relay server <NUM>, the server-for-service <NUM> confirms the authorization status and responds an authorization result indicating whether the service onto the individual MFP <NUM> is valid or invalid to the relay server <NUM> (S1802r).

If the authorization result received by the relay server <NUM> is "valid", steps from S1803 to S1805r are skipped. On the other hand, if the authorization result received by the relay server <NUM> is "invalid", the relay server <NUM> transmits a registration key input screen to the individual MFP <NUM> (S1803). Here, the case where the authorization result is "invalid" is comparable to a case where the individual MFP <NUM> accesses the server-for-service <NUM> for the first time, or a case where the validity of the authorization information obtained last time is expired. The individual MFP <NUM> that receives the registration key input screen displays the screen on the display unit <NUM>.

<FIG> is a diagram illustrating a registration key input screen <NUM>. The user who confirms the registration key input screen <NUM> inputs a registration key into an entry box <NUM> and selects an OK button <NUM>. In this case, in the entry box <NUM> of the registration key, hyphens may be added every four digits to improve the visibility by the user. This registration key is comparable to the registration key described in <FIG> that is obtained in advance by the user of the client device <NUM> using own account.

Back to the description of <FIG>. The individual MFP <NUM> transmits information on the inputted registration key to the relay server <NUM> (S1804). The relay server <NUM> uses the received registration key to request the server-for-service <NUM> to transmit an access token for obtaining a profile list of the server-for-service <NUM> associated with the registration key (S1805). The server-for-service <NUM> that receives the request transmits the access token to the relay server <NUM> (S1805r).

The relay server <NUM> that receives the access token uses the received access token to request the server-for-service <NUM> to transmit the profile list associated with the registration key (S1806). The server-for-service <NUM> that receives the request transmits the corresponding profile list to the relay server <NUM> (S1806r). The relay server <NUM> transmits a screen on which the received profile list is listed to the individual MFP <NUM> (S1807). The individual MFP <NUM> displays the received profile list on the display unit <NUM> as illustrated in <FIG>. Consequently, the user of the individual MFP <NUM> can confirm the profile list managed by the server-for-service <NUM>.

Once the user selects an arbitrary profile, the individual MFP <NUM> transmits information on the selected profile to the relay server <NUM> (S1808). The relay server <NUM> that receives the profile information transmits the profile information to the server-for-service <NUM> (S1809).

Here, in the description, the authorization of the user account in the server-for-service <NUM> is performed by using a registration key; however, the authorization of the user account may be performed by the login processing in an OAuth system as with the case of <FIG>.

<FIG> is a diagram describing in detail the steps of transmission and reception performed between the individual MFP <NUM>, the relay server <NUM>, and the server-for-service <NUM> in the scanning processing in S507 in <FIG> in a case where the set scanning application is a profile execution application. The step executed by the individual MFP <NUM> is performed with the CPU <NUM> of the individual MFP <NUM> operating the application <NUM> held by the program memory <NUM> to control each unit (see <FIG>). The step executed by the relay server <NUM> and the server-for-service <NUM> is performed with the CPU <NUM> of each of the relay server <NUM> and the server-for-service <NUM> controlling each unit based on the program saved in the disk device <NUM> (see <FIG>).

Once the scanning setting information based on the setting screen in <FIG> is obtained, the relay server <NUM> transmits a scanning instruction based on the set scanning setting information to the individual MFP <NUM> (S1901). The individual MFP <NUM> that receives the scanning instruction uses the scanner unit <NUM> to execute the scanning processing in accordance with the instructed setting (S <NUM>). Thereafter, the individual MFP <NUM> transmits the scanned data obtained from the scanning processing in S <NUM> to the relay server <NUM> (S1903). The relay server <NUM> that receives the scanned data uploads binary data of the received scanned data to the server-for-service <NUM> with the profile selection information selected from the profile list in <FIG> (S <NUM>). In this process, the access token obtained in S 1805r in <FIG> is used to select the application-for-service <NUM> associated with the account.

The server-for-service <NUM> registers a pair of the received scanned data and the profile selection information as one job in association with the user account (S <NUM>). Then, processing on the scanned data in accordance with the profile is performed (S1906). The processing in accordance with the profile may be performed later in a timing in which the user instructs the execution of the job on the job management screen described in <FIG>.

Note that, in the description, the scanned data is transmitted from the relay server <NUM> to the server-for-service <NUM> in the above-described S <NUM>; however, the scanned data may be requested from the server-for-service <NUM> to the relay server <NUM>. The procedure in this case is simply described below.

Once the scanned data is received from the individual MFP <NUM>, the relay server <NUM> temporarily saves this data into own storage service. The relay server <NUM> then generates a URL that allows for an access to the saved data and notifies the server-for-service <NUM> of this URL. The server-for-service <NUM> may use the received URL to access the storage service of the relay server <NUM> and obtain the scanned data.

In this process, the profile selection information may be transmitted from the relay server <NUM> to the server-for-service <NUM> with the URL or may be transmitted in a different timing. The relay server <NUM> may save the profile selection information into own storage service with the scanned data and transmit the URL for access to the server-for-service <NUM>. Also, the scanned data and the profile selection information may be saved together into the storage service.

Next, a case where the user uses the shared MFP <NUM> to use the application-for-service <NUM> of the server-for-service <NUM> is described. The shared MFP <NUM> can directly use the service provided by the application-for-service <NUM> without the relay server <NUM>.

<FIG> is a diagram describing the steps of transmission and reception performed between the shared MFP <NUM> and the server-for-service <NUM> in a case where the user designates a desired profile execution application in the shared MFP <NUM>. <FIG> is comparable to <FIG> in a case of using the individual MFP <NUM>.

Here, the step executed by the shared MFP <NUM> is performed with the CPU <NUM> of the shared MFP <NUM> operating the application <NUM> held by the program memory <NUM> to control each unit (see <FIG>). The step executed by the server-for-service <NUM> is performed with the CPU <NUM> of the server-for-service <NUM> controlling each unit based on the program saved in the disk device <NUM> (see <FIG>).

When the user selects a profile execution application in the shared MFP <NUM>, the shared MFP <NUM> displays the registration key input screen as described in <FIG> on the display unit <NUM> (S1301). Since the shared MFP <NUM> is expected to be used by multiple users, the input of a registration key for specifying a user is required every time when the server-for-service <NUM> is started to be used.

Once the input of the registration key is confirmed, the shared MFP <NUM> transmits the registration key to the server-for-service <NUM> and requests the server-for-service <NUM> to transmit an access token for obtaining a profile list of the server-for-service <NUM> associated with the registration key (S1302). The server-for-service <NUM> that receives the request transmits the access token to the shared MFP <NUM> (S1302r).

The shared MFP <NUM> that receives the access token uses the received access token to request the server-for-service <NUM> to transmit the profile list associated with the registration key (S1303). The server-for-service <NUM> that receives the request transmits the corresponding profile list to the shared MFP <NUM> (S1303r). Consequently, the shared MFP <NUM> can display the profile list as described in <FIG> on the display unit.

When the user selects an arbitrary profile, the shared MFP <NUM> transmits the selected profile information to the server-for-service <NUM> (S1304).

Here, the authorization of the user account in the server-for-service <NUM> is performed by using a registration key; however, the input of a registration key may be performed by mounting an IC card in which the information on the registration key is stored in advance into a not-illustrated IC card reader arranged in the shared MFP <NUM>.

<FIG> is a diagram describing the steps of transmission and reception performed between the shared MFP <NUM> and the server-for-service <NUM> in a case where the scanning application selected in the shared MFP <NUM> is a profile execution application. <FIG> is comparable to <FIG> in a case of using the individual MFP <NUM>.

When the user instructs the execution of scanning in the shared MFP <NUM>, the shared MFP <NUM> displays the scanning setting screen as described in <FIG>. When the user instructs the scanning execution after setting the items, the shared MFP <NUM> uses the scanner unit <NUM> to execute the scanning processing in accordance with the instructed setting (S1601).

Next, the shared MFP <NUM> uploads the scanned data obtained from the scanning processing in S1601 with the profile selection information selected from the profile list in <FIG> to the server-for-service <NUM> (S1602). In this process, the access token obtained in S1302r in <FIG> is used to select the application-for-service <NUM> associated with the account.

The server-for-service <NUM> registers a pair of the received scanned data and the profile selection information in the server-for-service <NUM> as one job in association with the user account (S1603). Then, processing on the scanned data in accordance with the profile is performed (S1604). The processing in accordance with the profile may be performed later in a timing in which the user instructs the execution of the job on the job management screen described in <FIG>.

A web browser similar to that of the individual MFP <NUM> may also be mounted in the shared MFP <NUM> shared by multiple users such that the shared MFP <NUM> is configured to select and execute a profile or perform a part of the processing of a profile through the relay server <NUM>.

In the descriptions so far, a profile is described to be saved in association with a user account one for one; however, this embodiment is not limited thereto. For example, a configuration in which a profile is shared by multiple users of the server-for-service <NUM> may be applied. In this case, in the profile execution service, a function of creating a user group including multiple users is provided, and this user group is associated with a profile. That is, a profile and multiple user accounts may be eventually saved in association with each other. Consequently, it is possible to allow a user belonging to the user group to use a profile created by another user in the same user group. Also, a function of managing a privilege of each user in the user group may be further provided such that whether each of the users can use their individual profiles can be set.

According to this embodiment described above, the user can collectively instruct the execution of the scanning processing and various services desired to be used onto the image data obtained from the scanning processing on the profile selection screen. That is, the user is able to use various services provided on a network with simple steps with no need to purposely read data saved in a storage service or to instruct the execution of an arbitrary service for the read data.

Additionally, according to this embodiment, the management function of the server-for-service <NUM> manages the account of the user and the various MFPs in association with each other by the registration key. Therefore, the user can easily use various services from the various MFPs without reobtaining the authorization information even when the terminal device in use (client device <NUM>) is replaced.

So far, a case where various services are used onto image data obtained from the scanning processing by the individual MFP <NUM> and the shared MFP <NUM> is described as an example; however, the individual MFP <NUM> and the shared MFP <NUM> can be changed to another device having a scanner function such as a copier and a facsimile. Additionally, the above-described device may not necessarily have the scanner function. The above-described device may be a device having a camera function and a function of reading image data from a memory card mounted therein, for example. In any case, any device can be used as the image processing apparatus of the present invention as long as the device is capable of obtaining image data and connected to a network.

Claim 1:
A server system (<NUM>, <NUM>) that communicates with an image processing apparatus (<NUM>) having a web browser through a network (<NUM>), wherein the server system comprises:
a server-for-service (<NUM>), comprising:
a storage unit (<NUM>) for storing authorization information and profiles respectively in association with a user account, wherein a process to be performed on image data is defined as each of the profiles by a user corresponding to the user account;
a reception unit; and
an execution unit; and
a relay server (<NUM>), comprising:
an authorization unit for authorizing (S1803, S1804, S1805, S1805r) a user of the image processing apparatus in a case where (S1802, S1802r) an authorization status of the image processing apparatus is invalid or an authorization of a user of the image processing apparatus is required (S1301), and authorization information input by the user on the image processing apparatus are transmitted (S1804) from the image processing apparatus to the relay server, on the basis of the transmitted authorization information;
an obtaining unit for obtaining (S1806, S1806r) a list of the profiles corresponding to the authorization information transmitted from the authorized image processing apparatus from the storage unit of the server-for-service;
a transmission unit for transmitting (S1807) the list of the profiles corresponding to the authorization information obtained by the obtaining unit to the web browser of the authorized image processing apparatus in response to a request (S1801) from the image processing apparatus; and
a reception unit for receiving (S1808) information of one profile, selected from the transmitted list of the profiles by the user of the authorized image processing apparatus, from the image processing apparatus;
wherein
the transmission unit is further configured for transmitting (S1809) the information of the selected one profile received by the reception unit of the relay server to the server-for-service;
the reception unit of the server-for-service is configured for receiving (S1809) the information of the selected one profile transmitted from the relay server; and
the execution unit is configured for executing (S1906, S1604) a process corresponding to the selected one profile onto image data outputted from the image processing apparatus on the basis of the information of the selected one profile received from the relay server.