The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2017-001861 filed on Jan. 10, 2017 and Japanese Patent Application No. 2017-122623 filed on Jun. 22, 2017, the entire contents of which are incorporated herein by reference.
The present invention relates to an input/output device and an information processing system.
Services are known that enable cooperation between a document input/output device, such as a multifunction peripheral (MFP), and a computer system that provides an external storage service offering a storage area via a network (hereinafter referred to as a device cooperation service). A “scan to storage service” is an example of such a device cooperation service that is used to deliver image data scanned by an application of a multifunction peripheral to a preset external storage service.
For example, an application for implementing a function of transmitting scanned image data to a preset destination may be installed in an image forming apparatus. Also, online storage services and other cloud services are known that are designed to accept image data over a network, such as the Internet, and implement a predetermined process with respect to the image data (see e.g., Japanese Unexamined Patent Publication No. 2014-130570).
In order to implement a device cooperation service, an application to be installed in an input/output device, such as a multifunction peripheral, has to be developed. However, development of an application to be installed in an input/output device, such as a multifunction peripheral, is quite difficult for a developer because it requires implementations relating to functions specific to the input/output device, such as a scan function and a print function, for example.
An aspect of the present invention is directed to providing a technique for facilitating development of an application that uses a function specific to an input/output device.
According to one embodiment of the present invention, an input/output device having a web browser installed therein is provided that includes a memory storing a program and a processor configured to execute the program to implement processes of acquiring content of a function screen for accepting a request relating to a function specific to the input/output device from a user, acquiring content of an information setting screen for accepting setting information required for generating a job setting from the user, accepting the setting information required for generating the job setting from the user via the information setting screen that is displayed by the web browser using the acquired content of the information setting screen and storing the accepted setting information required for generating the job setting in a web storage of the web browser, generating the job setting based on the setting information stored in the web storage using the acquired content of the function screen and displaying the generated job setting on the function screen that is displayed by the web browser, and executing a job using the function specific to the input/output device according to the generated job setting in response to an instruction accepted from the user via the function screen.
In the following, embodiments of the present invention are described with reference to the accompanying drawings. Note that in the embodiments described below, a scan upload process of uploading scanned imaged data obtained by a multifunction peripheral (MFP) to an upload destination server apparatus is illustrated as an example of a device cooperation service.
<System Configuration>
The MFP 10 is an example of an input/output device that has a web browser 12 installed therein. Note that the input/output device having the web browser 12 installed therein may be an image forming apparatus, such as a multifunction peripheral (MFP), a scanner, a printer, a facsimile machine, a projector, or a digital whiteboard, or some other type of electronic device having the web browser 12 installed therein.
The web server apparatus 14 is an example of a content providing apparatus that provides web page screen data (content) to the web browser 12 of the MFP 10 via the network N1. The upload destination server apparatus 16 is an example of an upload destination for uploading an image scanned by the MFP 10. The upload destination server apparatus 16 provides various services such as a cloud service.
Note that the network N1 of the information processing system 1 of
<Hardware Configuration>
<<Computer>>
The web server apparatus 14 and the upload destination server apparatus 16 may be implemented by a computer having a hardware configuration as illustrated in
In
The input device 501 may include a keyboard, a mouse, and/or a touch panel, for example, and is used by a user to input an operation signal. The display device 502 may include a display for displaying processing results of processes executed by the computer 500, for example.
The communication I/F 507 is an interface connecting the computer 500 to various networks. In this way, the computer 500 can perform data communication via the communication I/F 507.
The HDD 508 is an example of a nonvolatile storage device that stores programs and data. The stored programs and data include an OS corresponding to basic software for controlling the entire computer 500 and application software (hereinafter simply referred to as “application”) that provides various functions on the OS. Note that in some embodiments, the computer 500 may use a drive device that uses a flash memory as a storage medium, such as an SDD (solid state drive), instead of the HDD 508, for example.
The external I/F 503 is an interface with an external device. The external device may include a recording medium 503a, for example. In this way, the computer 500 can read and/or write data from/to the recording medium 503a via the external I/F 503. The recording medium 503a may be a flexible disk, a CD, a DVD, an SD memory card, a USB memory, or the like.
The ROM 505 is an example of a nonvolatile semiconductor memory (storage device) that can hold programs and data even when the power is turned off. The ROM 505 stores programs and data such as a basic input-output system (BIOS) that is executed when the computer 500 is started, OS settings, network settings, and the like. The RAM 504 is an example of a volatile semiconductor memory (storage device) that temporarily holds programs and data.
The CPU 506 is a computing device that implements functions of the computer 500 and performs overall control of the computer 500 by loading a program and/or data from a storage device, such as the ROM 505 or the HDD 508, into the RAM 504, and executing relevant processes.
The web server apparatus 14 and the upload destination server apparatus 16 may use the computer 500 having the hardware configuration as illustrated in
<<MFP>>
The MFP 10 of
MFP 10 according to the present embodiment. In
The CPU 611 implements functions of the MFP 10 and performs overall control of the MFP 10 by loading a program, data, and/or setting information from a storage device, such as the ROM 613, the NVRAM 614, and/or the HDD 615, into the RAM 612, and executing relevant processes.
The operation panel 602 includes an input unit that accepts an input from a user and a display unit that displays information. The external I/F 603 is an interface with an external device. The external device may be a recording medium 603a, for example. In this way, the MFP 20 can read and/or write data from/to the recording medium 603a via the external I/F 603. The recording medium 603a may be an IC card, a flexible disk, a CD, a DVD, an SD memory card, or a USB memory, for example.
The communication I/F 604 is an interface connecting the MFP 10 to the network N1. In this way, the MFP 10 can perform data communication via the communication I/F 604. The printer 605 is a device for printing print data on a print medium, such as paper. The scanner 606 is a device for scanning a document to acquire image data (electronic data) of the document.
<Functional Configuration>
In the following, the functional configuration of the information processing system 1 according to the present embodiment will be described.
The web server apparatus 14 in the information processing system 1 includes a screen data providing unit 30 and a screen data storage unit 32. The screen data storage unit 32 stores screen data of an application screen and screen data of a scan screen as described below. The screen data providing unit 30 provides the screen data of the application screen or the screen data of the scan screen stored in the screen data storage unit 32 in response to a screen acquisition request from the MFP 10.
The MFP 10 in the information processing system 1 includes a screen data acquisition unit 20, an application screen control unit 22, a function screen control unit 24, a job execution unit 26, and a web storage 28.
The screen data acquisition unit 20 acquires screen data of an application screen or screen data of a scan screen from the web server apparatus 14. Note that the screen data of the application screen or the screen data of the scan screen is an example of a web application that is run on the web browser 12 installed in the MFP 10. The screen data of the application screen or the screen data of the scan screen may be described in HTML (Hypertext Markup Language) and JavaScript (registered trademark), for example.
The application screen control unit 22, the function screen control unit 24, and the job execution unit 26 may each be implemented by the CPU 611 executing a web application on the web browser 12 installed in the MFP 10, for example. The application screen control unit 22 displays an application screen on the operation panel 602 based on the screen data of the application screen.
The application screen is an example of an information setting screen that accepts setting information required for generating a job setting from a user. Examples of such setting information include a selection of a delivery destination folder and a file name setting. The scan screen is an example of a function screen that accepts a request relating to a function specific to the input/output device from a user. Examples of such a request include a change request for changing a scan setting or an execution request for executing a scan upload process. The scan screen also requests the job execution unit 26 to execute a scan upload process.
The application screen control unit 22 stores the selected delivery destination folder and the file name setting (setting values) accepted from the user via the application screen in the web storage 28. The web storage 28 may also be referred to as a local storage and is a mechanism for storing data in the user's local environment, such as the web browser 12.
The function screen control unit 24 generates a job setting for a scan upload process based on the setting values acquired from the web storage 28 and displays the job setting on the scan screen. The function screen control unit 24 changes the job setting in response to a change request accepted from the user. Upon accepting an execution request to execute the scan upload process from the user, the function screen control unit 24 requests the job execution unit 26 to execute the scan upload process according to the job setting.
In turn, the job execution unit 26 scans a document using the scanner 606 and uploads the scanned image data of the document to the delivery destination folder of the upload destination server apparatus 16 according to the job setting.
<Process>
In the following, process operations of the information processing system 1 according to the present embodiment will be described.
<<Web Application Screen Transitions>>
Screen data of the application screens 1000 and 1100 are developed by a web application developer, for example. A web application according to the present embodiment scans a document using the scanner 606 and uploads a file containing the scanned image data of the document to the upload destination server apparatus 16 in response to a request from a user.
The application screen 1000 is an example screen for enabling a user to select a delivery destination folder of the upload destination server apparatus 16. When the user presses a file name setting button 1001 of the application screen 1000, the application screen 1000 is switched to the application screen 1100. The application screen 1100 is an example of a screen for setting the file name of image data to be scanned. When the user presses a delivery destination determination button 1101 of the application screen 1100, the application screen 1100 is switched to the scan screen 1200.
The scan screen 1200 is used by the web application developer and the like. The scan screen 1200 displays the current scan setting and also accepts a scan setting change request from the user. Note that when a return button 1202 of the scan screen 1200 is pressed by the user, the scan screen 1200 is switched back to the application screen 1100. Also, when a return button 1102 of the application screen 1100 is pressed by the user, the application screen 1100 is switched back to the application screen 1000.
When a start button 1201 of the scan screen 1200 is pressed by the user, the MFP 10 starts executing a scan upload process according to the scan setting displayed on the scan screen 1200.
Note that the application screens 1000 and 1100 illustrated in
As described above with respect to
The scan screen 1200 enables execution of a job using a function specific to the MFP 10 according to the setting values passed from the application screens 1000 and 1100. As can be appreciated from the above, according to an aspect of the present embodiment, even a developer that is not familiar with technical details specific to the MFP 10 can easily develop a web application for the MFP 10.
The upload settings include the delivery destination folder selected via the application screen 1000 and the file name set up via the application screen 1100. The MFP 10 uploads a file containing scanned image data to a URL specified in the upload settings based on the header and the body specified in the upload settings.
The application URL includes the URL of the application screen 1000 or 1100 so that the scan. screen 1200 can be switched back to the application screen 1000 or 1100 after a scan job is executed or when no scan job is executed.
Note that although the scan screen 1200 acquires the setting values for the scan setting via the web storage 28 in the above-described embodiment, the present invention is not limited thereto. In some embodiments, the scan screen 1200 may acquire the setting values from an index database, for example. In this case, the scan screen 1200 may acquire the setting values from the index database using a query. By acquiring the setting values using a query, the acquired setting values may also be passed to another scan screen 1200 that is hosted in another domain, for example.
In the case of using the web storage 28, when a plurality of web applications implement the scan screen 1200, the same key may be used as the key of the web storage 28. Thus, in some embodiments, a suffix of the key of the web storage 28 may be specified in a query as follows, for example.
<<Process Operations>>
In step S11, the user operates the MFP 10 to start a web application. Then, in step S12, the screen data acquisition unit 20 of the MFP 10 sends a screen acquisition request for acquiring screen data of the application screens 1000 and 1100 to the web server apparatus 14 and acquires the screen data of the application screens 1000 and 1100 from the screen data providing unit 30 of the web server apparatus 14.
Then, in step S13, the application screen control unit 22 of the MFP 10 displays the application screen 1000 or 1100 on the operation panel 602 using the acquired screen data. In step S14, the user selects a delivery destination folder of the upload destination server apparatus 16 via the application screen 1000. Also, the user sets up a file name of image data to be scanned via the application screen 1100.
When the user presses the delivery destination determination button 1101 of the application screen 1100 in step S15, the process proceeds to step S16. In step S16, the application screen control unit 22 of the MFP 10 stores the selected delivery destination folder and the file name setting (setting values) accepted from the user in step S14 in the web storage 28 as setting information for a job setting.
In step S17, the screen data acquisition unit 20 of the MFP 10 sends a screen acquisition request for acquiring screen data of the scan screen 1200 to the web server apparatus 14 and acquires screen data of the scan screen 1200 from the screen data providing unit 30 of the web server device 14. Then, the process proceeds to step S18, in which the function screen control unit 24 of the MFP 10 displays the scan screen 1200 including the job setting based on the setting information stored in the web storage 28 on the operation panel 602 using the acquired screen data.
In step S19, the user can make a change request for changing the job setting via the scan screen 1200. In step S20, the function screen control unit 24 accepts an execution request for executing a scan upload process from the user.
Then, in step S21, the function screen control unit 24 requests the job execution unit 26 to execute the scan upload process according to the job setting. In turn, the job execution unit 26 scans a document using the scanner 606 according to the job setting.
In step S22, the job execution unit 26 uploads the scanned image data of the document to the delivery destination folder of the upload destination server apparatus 16. Then, in step S23, the screen data acquisition unit 20 acquires the screen data of the application screens 1000 and 1100 from the screen data providing unit 30 of the Web server apparatus 14, and displays the application screen 1000 or 1100 on the operation panel 602.
Note that in some embodiments, the request destination of the screen acquisition request for the screen data of the scan screen 1200 (host of the screen data) in step S17 may be different from the request destination of the screen acquisition request for the screen data of the application screens 1000 and 1100 in step S12. Note, however, that in this case, setting values cannot be passed to the scan screen 1200 via the web storage 28.
Also, in some embodiments, the upload destination of the scanned image data uploaded in step S22 may be the same as the request destination of the screen acquisition request for the screen data of the scan screen 1200. Also, in step S23, the scan screen 1200 may be displayed on the operation panel 602 instead of the application screen 1000 or 1100, for example.
The default scan settings illustrated in
The default scan settings as illustrated in
Note that in some embodiments, an icon image may be displayed on the scan screen 1200 by passing a URL of an “icon” that is included in the default scan settings, for example. Also, in some embodiments, the setting value for the additional setting item may be passed as a separate key from the key of the web storage 28 used for passing the default scan settings, for example.
In the upload settings illustrated in
Also, according to an aspect of the present embodiment, an error message to be displayed when an error occurs during execution of an upload job in step S22 may be set up as illustrated in
In
When the value of the above “key” corresponds to a character string specified in the “values”, a message specified in the “message” described below is to be displayed. The “message” specifies the message to be displayed on the operation panel 602 when conditions specified by the “key” and “values” are satisfied.
In step S20, the function screen control unit 24 accepts an execution request for executing a scan upload process from the user. Then, in step S21, the function screen control unit 24 requests the job execution unit 26 to execute the scan upload process according to the job setting. In turn, the job execution unit 26 scans a document using the scanner 606 according to the job setting.
In step S22, the job execution unit 26 attempts to execute the job of uploading the scanned image data of the document to the delivery destination folder of the upload destination server apparatus 16, but fails to successfully execute the job and receives an error message from the upload destination server apparatus 16.
Then, in step S31, the function screen control unit 24 acquires the setting items relating to an error message to be displayed when an error occurs in job execution as illustrated in
Also, according to an aspect of the present embodiment, setting exclusion information, such as that illustrated in
For example, according to the setting exclusion information of
The “display” is a flag for specifying whether to display a corresponding setting item. The “disable” is a flag for specifying whether the setting value of a corresponding setting item can be changed. The “items” limits setting value options for a corresponding setting item.
For example, the default scan settings illustrated in
The processes of steps S41 to S46 of
Further, in some embodiments, when the scan screen 1200 is switched back to the application screen 1000 or 1100, the application screen control unit 22 may acquire the setting values stored in the web storage 28 and reflect the acquired setting values in the application screen 1000 or 1100. For example, when the user wishes to change the file name setting before executing a scan job after the screen has been switched to the scan screen 1200, the setting values passed to the scan screen 1200 may be retained even when the screen is switched back to the application screen 1100. In this way, the user experience may be improved and user satisfaction may increase, for example.
Also, in some embodiments, the application screen 1000 or 1100 may be configured to enable the user to change an operation to be performed after execution of a scan job, such as not retaining setting values after execution of the scan job or deleting the file after printing. In this case, for example, after the scan job has been executed via the scan screen 1200, a query may be used to pass a flag indicating that execution of the scan job has been completed to the web storage 28 or the application screen 1000 or 1100. In this way, detailed control of the web application may be enabled.
Although the present invention has been described above with reference to certain illustrative embodiments, the present invention is not limited to these embodiments, and numerous variations and modifications may be made without departing from the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2017-001861 | Jan 2017 | JP | national |
2017-122623 | Jun 2017 | JP | national |