Patent Description:
<CIT> discloses a technique in which a remote screen that virtually shows a user interface of an image forming apparatus is displayed on a remote information processing apparatus, and the image forming apparatus is remotely controlled in response to an operation of the remote screen. <CIT>, <CIT> and <CIT> disclose various arrangements for remote display of user interfaces.

In order to improve the security of the remote screen, the inventor considers a configuration of permitting the information processing apparatus to display the remote screen on condition that an approval operation is received via the user interface of the image forming apparatus.

According to the invention, there is provided an image forming apparatus as defined in claim <NUM>.

In the above configuration, when the controller of the image forming apparatus is configured to, in response to receiving a display instruction of the remote screen, display an approval screen on the user interface, and in response to determining that an approval operation for the approval screen is received, execute an approval process to approve the display of the remote screen for the requesting apparatus. In the approval process, when it is determined that a communication address, which is an IP address used for communication with the requesting apparatus of a first request, satisfies a particular condition, the display of the remote screen is approved for the requesting apparatus of the first request without displaying the approval screen. When the display of the remote screen by the approval process is approved, the controller transmits remote screen data to the requesting apparatus of the first request, and after transmitting the remote screen data, in response to receiving, via the communication interface, an instruction indicating that a virtual operation using the remote screen has been performed from the requesting apparatus of the first request, the controller executes a particular process in accordance with the instruction. Thus, when the IP address used for communication with the requesting apparatus of the first request satisfies a particular condition, the remote screen is displayed on the requesting apparatus of the first request without displaying the approval screen on the user interface. Therefore, it is unnecessary to perform an approval operation on the user interface of the image forming apparatus. This suppresses the troublesomeness of operations when starting the remote control while suppressing the deterioration of the security for the remote control using the remote screen.

Preferably, the image forming apparatus further includes a Web server. The controller is configured to: in response to receiving a display request for a Web page relating to the image forming apparatus, control the Web server to transmit Web page data to an apparatus having transmitted the display request, the Web page data being data for allowing the apparatus having transmitted the display request to display the Web page; and after transmitting the Web page data, in response to receiving, via the Web page, the first request from the apparatus having transmitted the display request, perform the approval process by using the IP address used for communication with the apparatus having transmitted the display request, the apparatus having transmitted the display request being the requesting apparatus.

Preferably, the controller is configured to: in the approval process, use an IP address of the image forming apparatus as the communication address; and in response to determining that the IP address of the image forming apparatus is a private IP address, determine that the particular condition is satisfied.

Preferably, a memory of the image forming apparatus is configured to store an IP address of a permission target of the approval process. The controller is configured to: in the approval process, use an IP address of the requesting apparatus as the communication address; and in response to determining that the IP address of the requesting apparatus matches the IP address of the permission target stored in the memory, determine that the particular condition is satisfied.

More preferably, the controller is configured to: in response to receiving, via the user interface, an operation specifying the IP address of the permission target of the approval process, store the IP address received via the user interface in the memory as the IP address of the permission target of the approval process.

More preferably, the image forming apparatus further includes a Web server. The controller is configured to: in response to receiving a display request for a registration page from an apparatus connected via the communication interface, transmit Web page data for displaying the registration page to the apparatus having transmitted the display request for the registration page, the registration page being a Web page for receiving a registration operation of the IP address of the permission target of the approval process; and in response to receiving, via the communication interface, a registration instruction of the IP address of the permission target of the approval process from the apparatus having transmitted the display request for the registration page, store the IP address corresponding to the registration instruction, a process of storing the IP address requiring administrator authentication.

Preferably, the controller is configured to: in the approval process, use an IP address of the image forming apparatus and an IP address of the requesting apparatus as the communication address; and in response to determining that the IP address of the image forming apparatus and the IP address of the requesting apparatus are addresses on a same LAN, determine that the particular condition is satisfied.

The approval process includes: a first approval process of, in response to determining that the communication address satisfies the particular condition, approving the display of the remote screen for the requesting apparatus without displaying the approval screen on the user interface; and a second approval process of, in response to receiving the approval operation to the approval screen via the user interface, approving the display of the remote screen. The controller is configured to: perform a setting for the image forming apparatus based on an operation received via the user interface, the setting relating to whether to enable or disable the first approval process; and in response to receiving the first request from the requesting apparatus and to determining that the first approval process is disabled, perform the second approval process as the approval process.

An image forming system <NUM> according to an embodiment will be described with reference to the drawings. The image forming system <NUM> shown in <FIG> includes an MFP <NUM> and PCs <NUM>, <NUM>, and <NUM>. The MFP is an abbreviation for multifunction peripheral. The MFP <NUM> and the PCs <NUM>, <NUM>, and <NUM> are connected to a network <NUM> and communicate with each other through the network <NUM>. The network <NUM> is a LAN or the Internet. In this embodiment, the MFP <NUM> is an example of an image forming apparatus. The PCs <NUM>, <NUM>, and <NUM> are examples of an information processing apparatus. The MFP <NUM> and the PCs <NUM>, <NUM>, and <NUM> are connected to the same LAN.

Next, the configuration of the MFP <NUM> will be described. The MFP <NUM> includes a controller <NUM>, a memory <NUM>, a printer <NUM>, a scanner <NUM>, a FAX interface <NUM>, a communication interface <NUM>, a user interface <NUM>, and a bus <NUM>. The "interface" may be abbreviated as "IF".

The communication interface <NUM> connects the MFP <NUM> to the network <NUM> in accordance with a particular communication protocol. The user interface <NUM> is an interface that exists between a user who directly operates the MFP <NUM> and the controller <NUM>, and has, for example, a touch panel <NUM> and an operation key <NUM> which is a physical key.

The printer <NUM> executes a print operation of printing an image on a recording medium such as a sheet or a disk. As the recording method of the printer <NUM>, an inkjet method, an electrophotographic method, and so on may be adopted. The scanner <NUM> executes a scan operation of reading an image recorded on a document and generating image data. The FAX interface <NUM> executes a FAX operation of transmitting and receiving image data in a method in accordance with the FAX protocol. The MFP <NUM> may be configured to execute a combined operation in which a plurality of operations are combined. A copy operation that combines the print operation by the printer <NUM> and the scan operation by the scanner <NUM> is an example of the combined operation.

The controller <NUM> includes a CPU, an ASIC (abbreviation of Application Specific Integrated Circuit), and so on, and controls the operations of the printer <NUM>, the scanner <NUM>, the FAX interface <NUM>, the communication interface <NUM>, and the user interface <NUM>. The memory <NUM> includes a data storage area. The data storage area is an area for storing data and so on necessary for executing a program and so on. The memory <NUM> is configured by combining a RAM, a ROM, an SSD, an HDD, and so on. A buffer included in the controller <NUM> and used when executing various programs may also be regarded as a part of the memory <NUM>. The memory <NUM> may be a storage medium that is readable by the controller <NUM>. The storage medium that is readable by the controller <NUM> is a non-transitory medium. In addition to the above examples, the non-transitory medium also includes a recording medium such as a CD-ROM or a DVD-ROM. The non-transitory medium is also a tangible medium. On the other hand, an electric signal that carries a program downloaded from a server on the Internet and so on is a computer-readable signal medium, which is a kind of computer-readable medium, but is not included in a non-transitory computer-readable storage medium.

The memory <NUM> stores a firmware <NUM> as a program that is executable by the controller <NUM>. In the following description, the controller <NUM> that executes a program may be simply described by the program name. For example, the description "the firmware" is used to mean "the controller <NUM> that executes the firmware <NUM>". In this embodiment, the processes of the controller <NUM> according to instructions described in the program is mainly shown. That is, the processes such as "judgment", "extraction", "selection", "calculation", "determination", "identifying", "acquisition", "acceptance", and "control" in the following description are the processes of the controller <NUM>. Note that "acquisition" is used as a concept that does not require a request. That is, the process of receiving data without request by the controller <NUM> is also included in the concept of "the controller <NUM> acquires data". The "data" in the present specification is represented by a bit array that is readable by the controller. Further, data having the same substantial meaning and contents but different formats are treated as the same data. The same goes for "information" in the present specification.

The firmware <NUM> also functions as a Web server for displaying a particular Web page on the PC <NUM>. The firmware <NUM> provides remote screen control to the PC <NUM>. The remote screen control is a function of causing the PC <NUM> to display a remote screen that represents the user interface <NUM> of the MFP <NUM> in a pseudo manner so that the MFP <NUM> is remotely controlled by operating the remote screen. The firmware <NUM> transmits Web page data for displaying the remote screen to the PC <NUM>, thereby causing the remote screen to be displayed on a browser <NUM> described later of the PC <NUM>.

Management information <NUM> is stored in the data storage area of the memory <NUM>. In the management information <NUM>, a login name and a password, which are authentication information, are stored in association with a PC configured to access the MFP <NUM>.

Next, the configuration of the PC <NUM> will be described. The PC <NUM> includes a communication interface <NUM>, a memory <NUM>, a controller <NUM>, a display <NUM>, and a user interface <NUM>. The communication interface <NUM>, the memory <NUM>, the controller <NUM>, and the user interface <NUM> included in the PC <NUM> have similar configurations to the controller <NUM>, the memory <NUM>, the communication interface <NUM> and the user interface <NUM> included in the MFP <NUM>, and the description thereof will be omitted.

An OS <NUM> and a browser <NUM> are stored in the memory <NUM>. The browser <NUM> is a program that causes the controller <NUM> to display, on the display <NUM>, an image corresponding to Web page data transmitted from the MFP <NUM>. The PCs <NUM> and <NUM> have similar configuration to the PC <NUM>, and the description thereof will be omitted.

Next, the procedure of the processes when remote screen control is executed by the PC <NUM> will be described with reference to <FIG>. The MFP <NUM> displays an operation screen on the user interface <NUM>, and changes display on the operation screen sequentially in response to an operation via the user interface <NUM>, the operating status of the MFP <NUM>, and so on. The process of changing the operation screen sequentially is performed in parallel with the processes in <FIG>. The operation screen includes an under-execution screen indicating that a process such as printing or scanning is currently performed, an instruction screen for receiving an instruction for execution of copying, scanning, and so on, a setting screen for changing various types of settings, a status screen indicating the status of the MFP <NUM>, an execution instruction screen, and a standby screen for waiting for an instruction for displaying the setting screen and so on, for example.

In <FIG>, in step <NUM> (hereinafter, a step is simply referred to as "S"), the browser <NUM> of the PC <NUM> transmits a request for Web page data to the MFP <NUM>. The Web page data requested in S10 is Web page data for displaying a home screen when the firmware <NUM> functions as a Web server. For example, in response to receiving an input of a URL specifying the firmware <NUM> by the user, the browser <NUM> transmits a request to the firmware <NUM>. The communication between the browser <NUM> and the firmware <NUM> is performed in accordance with the http(s) protocol.

In S11, the firmware <NUM> transmits the Web page data (screen data) to the PC <NUM>. In response to receiving the Web page data, in S12, the browser <NUM> displays a Web page indicated by the received Web page data on the display <NUM>. In the present embodiment, the browser <NUM> displays a home screen on the display <NUM> by receiving the Web page data.

When a login operation to the MFP <NUM> is performed on the home screen, the browser <NUM> transmits a login password and so on to the firmware <NUM>. In response to receiving a response to the login permission from the firmware <NUM> (EWS), the browser <NUM> causes the display <NUM> of the PC <NUM> to display an administrator screen <NUM> shown in <FIG>. The administrator screen <NUM> includes an item display area <NUM> and a function display area <NUM>.

In response to receiving, via the user interface <NUM>, a selection operation of an item <NUM> of "remote screen control" included in the item display area <NUM>, in S13 the browser <NUM> transmits, to the MFP <NUM>, a start request for remote screen control. In response to receiving a start request for the remote screen control, in S14 the firmware <NUM> transmits Web page data for updating the Web page. This Web page data includes an execution program configured to be interpreted by the browser <NUM>. The execution program is a script program such as Javascript, for example.

In S15, by executing the execution program, the browser <NUM> transmits, to the MFP <NUM>, a request for a current usage state of the remote screen control. The usage state of the remote screen control is information indicating whether the remote screen control targeting another apparatus such as the PC <NUM> is currently executed, and in the present embodiment, it is either "currently executed" or "not executed". When the information indicating a permission state is stored in the memory <NUM>, the firmware <NUM> returns information indicating "currently executed". When the information indicating the permission state is not stored in the memory <NUM>, the firmware <NUM> returns information indicating "not executed".

In S16, the firmware <NUM> returns the usage state of the remote screen control to the PC <NUM>. In S17, the browser <NUM> determines the usage state returned from the firmware <NUM>. Specifically, in response to determining that the usage state of the remote screen control indicates "currently executed" (YES in S17), the browser <NUM> outputs an error notification and ends the process of <FIG>. In this case, execution of remote screen control is not permitted. For example, a text image indicating that remote screen control targeting another apparatus is currently executed and remote screen control targeting the own apparatus cannot be executed is displayed on the Web page. In this case, the browser <NUM> continues displaying the home screen in S12.

In response to determining that the information indicating the usage state of the remote screen control indicates "not executed" (NO in S17), in S18 the browser <NUM> requests the MFP <NUM> to issue a token. The token is information for authenticating an apparatus that executes remote screen control, and in the present embodiment, the token is a one-time token created based on the authentication information. In response to receiving a request for issuing a token, in S19 the firmware <NUM> transmits a request for authentication information to the PC <NUM>. Specifically, the firmware <NUM> transmits, to the browser <NUM>, data for displaying a login form for receiving input of authentication information. The browser <NUM> displays the administrator screen <NUM> on which a login form <NUM> shown in <FIG> is superimposed, based on the transmitted data. In S20, the browser <NUM> transmits, to the MFP <NUM>, the authentication information (that is, user name and password) entered via the login form <NUM>.

In response to receiving the authentication information, in S21 the firmware <NUM> performs an authentication process for determining whether the user indicated by the received authentication information is a user who is permitted to execute the remote screen control. In the authentication process, the firmware <NUM> determines whether the authentication information of the user (for example, the administrator) stored in the management information <NUM> stored in the memory <NUM> matches the authentication information transmitted from the browser <NUM>. If both the authentication information do not match, the firmware <NUM> transmits a response to refuse the transmission of the token to the browser <NUM>, and ends the process of <FIG>.

If the authentication is successful, in S22 the firmware <NUM> issues a token to the PC <NUM>. At this time, in a case where the information indicating that the token has been issued is stored in the memory <NUM>, the firmware <NUM> may determine that the token has been issued without transmitting the token. In response to receiving the token issued by the MFP <NUM>, in S23 the browser <NUM> transmits a request for displaying the remote screen together with the issued token. In response to receiving the request for displaying the remote screen from the browser <NUM>, in S24 the firmware <NUM> performs an approval process. In the present embodiment, the request for displaying the remote screen transmitted by the browser <NUM> in S23 is an example of a first request.

<FIG> is a flowchart illustrating the approval process executed in S24, and the subject is the firmware <NUM>. In S30, the firmware <NUM> determines whether the token transmitted from the PC <NUM> together with the remote screen display request is valid. Specifically, the firmware <NUM> determines that the token is not valid when too much time has passed after the token was issued, or when the token is forged. If the firmware <NUM> determines that the transmitted token is not valid, the firmware <NUM> proceeds to S43 and sets the permission state to "forbidden". When S43 is finished, the process proceeds to S25 in <FIG>.

When the firmware <NUM> determines that the token transmitted from the PC <NUM> is valid, a positive determination is made in S30, the process proceeds to S31, and the permission state is set to "currently checking".

In S32, the firmware <NUM> determines whether the automatic determination is set to enabled. The automatic determination is a process of determining whether to permit the PC <NUM> to display the remote screen, using the IP address used for the communication between the MFP <NUM> and the PC <NUM>. Specifically, by referring to the setting item of the setting file <NUM> stored in the memory <NUM>, the firmware <NUM> determines whether the automatic determination is enabled or disabled and whether the determination content of the automatic determination is enabled or disabled. The contents of the setting items of the setting file <NUM> may be updated by a process for updating the setting file <NUM> described later.

The process of updating the setting file <NUM> in which various setting items for automatic determination are stored will be described. <FIG> is a process executed by the controller <NUM> when the user gives an instruction to update a setting item in the approval process on the administrator screen <NUM>, which is a Web page displayed on the PC <NUM>. The PC <NUM> is a PC managed by an administrator like the PC <NUM>.

In S60, the Web page data is transmitted to the PC <NUM>, whereby a setting screen <NUM> shown in <FIG> is displayed on the PC <NUM>. Specifically, when the firmware <NUM> of the MFP <NUM> receives, via the communication interface <NUM>, an instruction that an operation of selecting "approval setting" in the item display area <NUM> has been received on the administrator screen <NUM> shown in <FIG> displayed on the PC <NUM>, the firmware <NUM> causes the PC <NUM> to transmit the Web page data. In this case, too, the same authentication as in S19 to S21 is performed between the firmware <NUM> of the MFP <NUM> and the browser <NUM> of the PC <NUM>, and when the authentication of S21 is successful, the firmware <NUM> transmits the Web page data relating to the approval setting.

The setting screen <NUM> included in the administrator screen <NUM> is a screen for receiving an enable/disable setting which is a setting item in the automatic determination and an operation of specifying enable/disable which is a setting item of each determination content. The setting screen <NUM> includes check boxes <NUM>, <NUM>, and <NUM>, an address form <NUM>, and a setting apply button <NUM>.

When the check box <NUM> is checked, it means that the setting file <NUM> has received an instruction that the setting item of the automatic determination is enabled. In this state, the check boxes <NUM> and <NUM> can be checked. In a state where the check box <NUM> is not checked, the check boxes <NUM> and <NUM> are disabled. When only the check box <NUM> is checked, it means that the setting file <NUM> has received an instruction that the setting item of "determine by using the IP address of the MFP itself" is enabled. When only the check box <NUM> is checked, it means that the setting file <NUM> has received an instruction that the setting item of "determine by using the IP address of the requesting apparatus" is enabled. When both the check boxes <NUM> and <NUM> are checked, it means that the setting file <NUM> has received an instruction that both the setting items are enabled.

In the present embodiment, when the check box <NUM> is checked, at least one of the check boxes <NUM> and <NUM> is always checked. Specifically, in a state where only the check box <NUM> is checked, an unchecking operation for the check box <NUM> is not accepted. In a state where only the check box <NUM> is checked, an unchecking operation for the check box <NUM> is not accepted. Alternatively, when an unchecking operation is received via the user interface <NUM> in a state where one of the check boxes <NUM> and <NUM> is checked, the other one of the check boxes <NUM> and <NUM> may be automatically checked.

When the check box <NUM> is checked and the setting item of "determine by using the IP address of the requesting apparatus" is enabled, an IP address can be input to the address form <NUM> by the received operation.

In S61, the firmware <NUM> determines whether a request for applying setting has been received from the PC <NUM> via the communication interface <NUM>. Specifically, when the setting apply button <NUM> is operated on the setting screen <NUM> displayed on the PC <NUM>, the PC <NUM> transmits the request for applying setting to the MFP <NUM>. At this time, the PC <NUM> transmits an instruction for the setting item corresponding to the operation received on the setting screen <NUM> to the MFP <NUM> via the communication interface <NUM>, together with the request for applying setting. If a positive determination is made in S61, the process proceeds to S62.

In S62, the firmware <NUM> updates each setting item of the setting file <NUM> in accordance with the instruction for the setting item transmitted from the PC <NUM> together with the request for applying setting. In response to receiving an enable instruction of automatic determination by the check of the check box <NUM>, the setting item of automatic determination stored in the setting file <NUM> is set to "enabled". In response to receiving an enable instruction of "determine by using the IP address of the MFP itself", which is a determination content, by the check of the check box <NUM>, the setting item of "determine by using the IP address of the MFP itself" stored in the setting file <NUM> is set to "enabled". In response to receiving an enable instruction of "determine by using the IP address of the requesting apparatus" by the check of the check box <NUM>, the setting item of "determine by using the IP address of the requesting apparatus" stored in the setting file <NUM> is set to "enabled".

The update of the setting items of the setting file <NUM> is also executed by operations on the user interface <NUM> of the MFP <NUM>. Specifically, the controller <NUM> of the MFP <NUM> controls the user interface <NUM> to display the setting screen shown in <FIG> in accordance with an operation on the user interface <NUM>. In this case, the firmware <NUM> of the MFP <NUM> updates the setting file <NUM> based on the instruction for the setting item of the automatic determination received on the setting screen. Specifically, the firmware <NUM> receives instructions on an enable/disable setting, a determination content, and a registered IP address, which are setting items for automatic determination.

Alternatively, in response to receiving an update instruction for the setting item of the setting file <NUM> from the PC <NUM>, <NUM>, or <NUM> connected to the network <NUM> via the communication interface <NUM>, the firmware <NUM> of the MFP <NUM> may update the setting file <NUM> in accordance with the received update instruction.

Returning to <FIG>, if the automatic determination is enabled in the setting file <NUM> and a positive determination is made in S32, the process proceeds to S33, and the firmware <NUM> determines whether determination is to be performed by using both the IP addresses of the PC <NUM>, which is the requesting apparatus, and the MFP <NUM> which is the destination apparatus of the request, by referring to the setting file <NUM>.

If a positive determination is made in S33, the process proceeds to S34, and the firmware <NUM> determines whether the IP address of the MFP <NUM> itself is a private IP address. The IP address of the MFP <NUM> itself is specifically the IP address of the MFP <NUM> used as the IP address of the destination of the request from the requesting apparatus. The IP address of the MFP <NUM> used as the destination address of the request from the requesting apparatus is an example of the IP address used for communication. If the IP address of the MFP <NUM> itself is a private IP address, the access is within the LAN and thus there is a low possibility that the security will be reduced even if the remote screen is permitted to be displayed. In the present embodiment, it is an example of a particular condition that the IP address of the MFP <NUM> itself is a private IP address.

If a positive determination is made in S34, the process proceeds to S35, and the firmware <NUM> determines whether the IP address of the requesting apparatus is a registered address. The IP address of the requesting apparatus is an IP address used as the requester address when the requesting apparatus transmits data to the MFP <NUM>. The IP address of the requesting apparatus is an IP address used as a destination when the MFP <NUM> transmits data to the requesting apparatus. That is, the IP address of the requesting apparatus is an example of the IP address used for communication. The registered address is an IP address registered in advance in the setting file <NUM> stored in the memory <NUM>. If the IP address is registered in advance in the setting file <NUM>, there is a low possibility that the security will be reduced even if the remote screen is permitted to be displayed. In the present embodiment, it is an example of a particular condition that the IP address of the requesting apparatus is a registered address.

If a positive determination is made in S35, the process proceeds to S42 and the permission state is set to "permitted". Specifically, the firmware <NUM> stores information indicating the permission state in the memory <NUM>. The information indicating the permission state is information indicating either "permitted" or "forbidden". If a negative determination is made in S34 or S35, the process proceeds to S43 and the permission state is set to "forbidden". When the remote screen control ends, the firmware <NUM> erases the information (permitted, forbidden) indicating the permission state stored in the memory <NUM>.

In S33, if the determination based on both addresses is not set in the setting file <NUM> as the determination content of the automatic determination, the process proceeds to S36, and the firmware <NUM> determines whether "determine by using the IP address of the MFP itself" is set in the setting file <NUM> as the determination content of automatic determination. If "determine by using the IP address of the MFP itself" is set in the setting file <NUM>, a positive determination is made in S36.

If a positive determination is made in S36, the process proceeds to S37, and the same determination as in S34 is made. If a positive determination is made in S37, the process proceeds to S42 and the permission state is set to "permitted". If a negative determination is made in S37, the process proceeds to S43 and the permission state is set to "forbidden".

If "determine by using the IP address of the MFP itself" is not set in the setting file <NUM> as the determination content of the automatic determination, and a negative determination is made in S36, the process proceeds to S38. In S38, the firmware <NUM> determines whether "determine by the IP address of the requesting apparatus" is set in the setting file <NUM> as the determination content of the automatic determination. If a positive determination is made in S38, the process proceeds to S39 and the same determination as in S35 is made. If a positive determination is made in S39, the process proceeds to S42 and the permission state is set to "permitted". If a negative determination is made in S38 or S39, the process proceeds to S43 and the permission state is set to "forbidden". In S31 to S39, S42 and S43, the approval performed by the firmware <NUM> using the IP address for communication is an example of a first approval process.

In S32, if the automatic determination is set to disabled in the setting file <NUM>, the process proceeds to S40. In S40, approval is performed using an approval screen <NUM>. The approval using the approval screen <NUM> is a process of approving the display of the remote screen in response to receiving an approval operation on the approval screen displayed on the user interface <NUM>.

As shown in <FIG>, the approval screen <NUM> includes a text image <NUM>, a permit button <NUM>, and a forbid (reject) button <NUM>. The text image <NUM> is an image displaying a text prompting a user near the MFP <NUM> to perform an approval operation because there is a request to display a remote screen.

When the user near the MFP <NUM> operates the permit button <NUM> as an approval operation, a positive determination is made in S41 and the process proceeds to S42. In S42, the permission state is set to "permitted". When the user near the MFP <NUM> operates the forbid button <NUM> as an approval operation, a negative determination is made in S41 and the process proceeds to S43. In S43, the permission state is set to "forbidden". If the approval operation is not performed after a particular period has elapsed after the approval screen <NUM> is displayed in S40, the process may proceed to S43 and the permission state may be set to "forbidden". In the present embodiment, the approval performed by the firmware <NUM> using the approval screen in S40 to S43 is an example of a second approval process.

Returning to <FIG>, in S25, when the permission state is set to "forbidden", the firmware <NUM> responds to the PC <NUM> that the transmission of the remote screen is forbidden. When the browser <NUM> receives a forbiddance response from the MFP <NUM>, the browser <NUM> may display a forbiddance screen on the administrator screen <NUM>. As a result, the user of the PC <NUM> determines by viewing the text image displayed on the display <NUM> that the transmission of the remote screen is forbidden by the MFP <NUM>.

In S26, when the permission state is set to "permitted", the firmware <NUM> responds to the PC <NUM> that the transmission of the remote screen is permitted. In S27, the firmware <NUM> transmits remote screen data for displaying the remote screen on the browser <NUM> to the PC <NUM>. In the present embodiment, the remote screen data is data that includes data indicating an operation screen currently displayed on the user interface <NUM>. Specifically, the remote screen data includes, in addition to the data indicating the operation screen, the data indicating the operation key <NUM> which is the physical key of the user interface <NUM> and the data indicating an end button (reference numeral <NUM> in <FIG>) described later. The firmware <NUM> creates remote screen data and transmits the created remote screen data to the browser <NUM>. In the browser <NUM>, the execution program included in the remote screen data interprets the remote screen data so that the display <NUM> displays the remote screen. In the present embodiment, the process executed by the firmware <NUM> in S27 is an example of a transmission process. Alternatively, in response to receiving the display permission response in S26, the browser <NUM> may transmit a request for remote screen data to the MFP <NUM> again, and the firmware <NUM> may transmit the remote screen data to the PC <NUM> in S27 upon receiving this request.

<FIG> is a diagram showing an example in which a standby screen is displayed on the remote screen when the standby screen is displayed on the user interface <NUM>. The remote screen <NUM> is displayed in the function display area <NUM> on the administrator screen <NUM>. The remote screen <NUM> includes a screen display area <NUM> and an operation key display area <NUM>. In the screen display area <NUM>, the same screen as the operation screen currently displayed on the user interface <NUM> of the MFP <NUM> is displayed. In <FIG>, as an example, a standby screen is displayed in the screen display area <NUM>. In the operation key display area <NUM>, an icon image of an operation key similar to the physical key of the user interface <NUM> is displayed. When a virtual operation on the user interface <NUM> has been performed on the remote screen <NUM>, the information indicating the virtual operation is interpreted by the execution program included in the remote screen data, and is transmitted to the MFP <NUM>. In response to receiving the information indicating that the virtual operation has been performed, the MFP <NUM> executes the process in accordance with the operation in the same manner as when the operation screen displayed on the user interface <NUM> is operated. For example, in response to receiving, from the PC <NUM>, information indicating an operation on a Copy button on the remote screen <NUM>, the MFP <NUM> executes a copy process including the display of a copy execution screen. For example, in response to receiving, from the PC <NUM>, information indicating an operation on a setting button on the remote screen <NUM>, the MFP <NUM> executes a process for setting the parameters of the MFP <NUM>, including the display of a setting screen.

The data indicating the operation screen, the operation key, and the end button included in the remote screen data for displaying the remote screen <NUM> may be in the same data format such as raster data, or may be in any other data format. The data indicating the operation screen, the operation key, and the end button may be in different data formats. The firmware <NUM> may transmit only the data indicating the operation screen as the remote screen data to the browser <NUM>, and the browser <NUM> may display the remote screen so that the data indicating the operation key and the end button is superimposed on the remote screen data by interpreting the execution program. Alternatively, the firmware <NUM> may transmit data indicating the operation screen and the operation key as remote screen data to the browser <NUM>, and the browser <NUM> may superimpose the data indicating the end button on the remote screen data by interpreting the execution program. Further, the firmware <NUM> may transmit the Web page data for displaying the entire administrator screen including the remote screen data to the browser <NUM> instead of transmitting the remote screen data to the browser <NUM>.

By executing the execution program, the browser <NUM> periodically transmits, to the firmware <NUM>, a request for remote screen data for displaying the remote screen, and applies (reflects) the screen currently displayed on the user interface <NUM> to the remote screen. For example, when the browser <NUM> receives an operation input on the remote screen <NUM> via the user interface <NUM>, the browser <NUM> transmits a request corresponding to the received operation input to the firmware <NUM> by executing the execution program. At this time, the browser <NUM> transmits the token issued by the firmware <NUM> together with the request corresponding to the operation input. For example, when the operation input on the remote screen <NUM> is an operation relating to screen update, the browser <NUM> transmits, to the firmware <NUM>, a request for remote screen data for displaying the updated remote screen together with the token. In response to receiving the request for the remote screen data, the firmware <NUM> creates the remote screen data for displaying the updated remote screen <NUM> on the condition that the token is valid, and transmits the remote screen data to the browser <NUM>.

The remote screen <NUM> displayed on the display <NUM> of the PC <NUM> is also updated when the user interface <NUM> of the MFP <NUM> is operated. In this case, when the firmware <NUM> receives a screen change operation via the user interface <NUM>, the firmware <NUM> may transmit the remote screen data relating to the updated remote screen to the browser <NUM> without waiting for a request from the execution program.

The remote screen <NUM> includes the end button <NUM>. When an operation input on the end button <NUM> by the user is received, the browser <NUM> transmits, to the firmware <NUM>, a request for ending the remote screen control together with the token. When the firmware <NUM> receives the end request from the PC, the firmware <NUM> ends the remote screen control on condition that the token is valid. The firmware <NUM> ends the remote screen control. The process of ending the remote screen control includes deleting various information stored in the memory <NUM>, such as information indicating the usage state of the remote screen control, information indicating that a token has been issued, and information indicating the permission state of the remote screen control. The firmware <NUM> may delete these information and then end the remote screen control, or another program may delete these information triggered by the end of the remote screen control. Also, in a case where there is no access from the browser <NUM> that executes the execution program for a certain time after the remote screen control is started, the firmware <NUM> ends the remote screen control in the same manner as when the end button is pressed.

In the present embodiment described above, the following effects are obtained.

In response to determining in the approval process that the IP address satisfies the particular condition, the controller <NUM> of the MFP <NUM> approves the display of the remote screen <NUM> for the PC <NUM> without displaying the approval screen on the user interface <NUM>. This enables starting remote display control without performing an approval operation on the user interface <NUM>. This suppresses the inconvenience of the operation when starting the remote control while suppressing the deterioration in security for the remote operation using the remote screen <NUM>.

If the IP address of the MFP <NUM> used for communication with the requesting apparatus is a private address, the controller <NUM> approves transmission of the remote screen data without performing approval using the approval screen. Communication using a private address is communication with an apparatus in the LAN to which the MFP <NUM> is connected, and it is expected that security will be ensured by the administrator of the LAN, so approval using the approval screen may be omitted.

If the IP address of the PC <NUM> matches the IP address registered in the MFP <NUM>, the controller <NUM> determines that the particular condition is satisfied. If the request is from the requesting apparatus having a reliable IP address registered in advance in the MFP <NUM> by the administrator, the transmission of the remote screen data may be automatically approved.

The controller <NUM> receives, via the user interface <NUM>, designation of an IP address to be permitted in the approval process. That is, the usability of the approval process is improved.

If the IP address of the MFP <NUM> and the IP address of the PC <NUM> are addresses on the same LAN, the controller approves the transmission of the remote screen data without performing the approval using the approval screen. If the MFP <NUM> and PC <NUM> are connected to the same LAN and the MFP <NUM> and PC <NUM> are apparatuses managed by the same administrator who manages the LAN, it is expected that security will be ensured by the administrator, so the approval using the approval screen may be omitted.

Based on an operation received via the user interface <NUM>, the controller <NUM> performs, for the MFP <NUM>, a setting relating to enabling/disabling of the approval process using the automatic determination. In this way, the setting of whether to perform the approval process using the automatic determination is changed by the operation via the user interface <NUM>. That is, a suitable approval process is executed depending on the situation in which the MFP <NUM> is used.

In the above-described embodiment, in S32 of <FIG>, in response to determining that the automatic determination is disabled, the process proceeds to S40 and approval is performed using the approval screen <NUM>. Alternatively, in response to determining that the automatic determination is disabled, the process may proceed to S43 to set the permission state to "forbidden". In this case, in response to determining that the automatic determination is enabled and in response to determining that the IP address used for communication satisfies the particular condition, the firmware <NUM> approves the display of the remote screen for the PC <NUM>. In response to determining that the IP address used for communication does not satisfy the particular condition, the firmware <NUM> does not approve the display of the remote screen for the PC <NUM>. In this modification, the processes of S40 and S41 are omitted. Further, the processes of S32, S40 and S41 may be omitted.

In the above-described embodiment, in the automatic determination, when the IP address of the MFP <NUM> is a private IP address (YES in S34) and the IP address of the requesting apparatus is a registered address (YES in S35), the firmware <NUM> proceeds to S42 and sets the permission state to "permitted". Alternatively, when both IP addresses used for communication are private IP addresses (YES in a process similar to S34), the controller <NUM> may proceed to S42 and set the permission state to "permitted". That is, after the process similar to S34, it is not determined whether the IP address is a registered address. In this case, the process of S35 is omitted.

If at least one of both IP addresses used for communication is not a private IP address (NO in a process similar to S34), the process may proceed to S35 to determine whether the IP address of the requesting apparatus is a registered address. In this case, if the IP address of the requesting apparatus is a registered address, a positive determination is made in S35, the process proceeds to S42, and the permission state is set to "permitted". If the IP address of the requesting apparatus is not a registered address, a negative determination is made in S35, the process proceeds to S43, and the permission state is set to "forbidden".

The order of determining whether the IP address is a private IP address in S34 and determining whether the IP address is a registered address in S35 may be switched. In this case, if the IP address of the requesting apparatus is a registered address in S35 (YES in S35), the process proceeds to S34, and the firmware <NUM> determines whether the IP address of the MFP <NUM> is a private IP address. If a positive determination is made in S34, the process proceeds to S42. If a negative determination is made in S34, the process proceeds to S43.

In a case where the determination of S34 and the determination of S35 are switched, the process may proceed to S42 if a positive determination is made in S35, and the process may proceed to S43 if a negative determination is made in S35. In this case, the process of S34 is omitted.

In the above-described embodiment, when the check box <NUM> is checked, at least one of the check boxes <NUM> and <NUM> is always checked, due to the design of the user interface shown in <FIG>. However, another user interface may allow a state in which the item "automatic determination" is enabled, the item "determine by using the IP address of the MFP itself" is disabled, and the item "determine by using the IP address of the requesting apparatus" is disabled. In this case, in <FIG>, a positive determination is made in S32, a negative determination is made in S36, and a negative determination is made in S38 (S32:Yes, S36:No, S38:No). The user interfaces other than the user interface in <FIG> include an application installed on the PC, an operation panel (the touch panel <NUM>) of the MFP <NUM>, and so on.

Claim 1:
An image forming apparatus (<NUM>) comprising:
a user interface (<NUM>);
a communication interface (<NUM>); and
a controller (<NUM>) configured to:
perform an approval process of:
in response to receiving a first request from an apparatus connected via the communication interface, displaying an approval screen on the user interface, the apparatus having transmitted the first request being a requesting apparatus (<NUM>); and
in response to receiving an approval operation to the approval screen via the user interface, approving display of a remote screen, the first request being a request for displaying the remote screen, the remote screen being a screen displayed on the requesting apparatus, the remote screen being a screen that virtually displays the user interface;
perform a transmission process of, in response to approving the display of the remote screen by the approval process, transmitting remote screen data to the requesting apparatus, the remote screen data being data for allowing the requesting apparatus to display the remote screen; and
after the transmission process, in response to receiving an instruction via the communication interface from the requesting apparatus, perform a particular process based on the instruction, the instruction indicating that a virtual operation using the remote screen has been performed,
the approval process further including:
determining whether a communication address satisfies a particular condition, the communication address being an IP address used for communication with the requesting apparatus; and
a first approval process of, in response to determining that the communication address satisfies the particular condition, approving the display of the remote screen for the requesting apparatus without displaying the approval screen on the user interface; and
a second approval process of, in response to receiving the approval operation to the approval screen via the user interface, approving the display of the remote screen; and
wherein the controller is configured to:
perform a setting for the image forming apparatus based on an operation received via the user interface, the setting relating to whether to enable or disable the first approval process; and
in response to receiving the first request from the requesting apparatus and to determining that the first approval process is disabled, perform the second approval process as the approval process.