INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND RECORDING MEDIUM STORING AN INFORMATION PROCESSING PROGRAM

In an information processing system, each of an operational part and the operating working part has its own operating system. In case of adding or updating a function that the information processing system implements, the operational part downloads data for adding or updating the function.

DETAILED DESCRIPTION

When an information processing apparatus downloads and installs a program or other data, use of functions of the information processing apparatus is limited in some cases. For example, if an information processing apparatus provides a predefined function by controlling a mechanical driving unit, sometimes the information processing apparatus is designed to stop providing the function during the download and installation to prevent destabilizing such control.

In the following embodiment, an information processing system is provided that includes an operational unit that accepts input, such as inputting a command and an operating unit that executes processing information based on the input, such as the command accepted by the operational unit. Each of the operational unit and the operating unit has its own operating system (OS). In case of adding or updating a function implemented in the information processing system, the operational unit downloads data for adding or updating a function that the information processing system implements.

In this configuration, the information processing system can easily add or update a function with minimal impact on function availability.

FIG. 1is a diagram illustrating an image processing system as an embodiment of an information processing apparatus of the present invention.

In the present embodiment, an image processing system1is a MFP that includes communication functions as well as functions such as printing, scanning, and facsimile. A user can operate the image processing system1directly and instruct the image processing system to process these functions. Otherwise, the image processing system1can execute the functions in response to a command received from an external apparatus such as a client personal computer (PC).

The image processing system1can communicate with a distribution server2that distributes data for adding or updating functions of the image processing system1via a network3. The distribution server2distributes data such as a new program like OS, firmware, and applications, an update program, and data to be browsed like a manual.

FIG. 2is a block diagram illustrating a hardware configuration of the image processing system1shown inFIG. 1. As shown inFIG. 2, the image processing system1includes an operational part20that accepts inputting a command by a user and a main unit10as a working part that works based on the command accepted by the operational part20. In the image processing system1, the operational part20and the main unit10can communicate with each other via a communication channel30.

The main unit10can perform an operation in response to not only a command accepted by the operational part20but also a command received from the external apparatus as described above. In the present embodiment, the communications channel30is compliant with Universal Serial Bus (USB) specification, for example, although the communications channel30can be compliant with any wired or wireless specification. Also, the communications channel30can be not only one-to-one but also a network. Other than USB, e.g., serial, wired local area network (LAN), wireless LAN, Bluetooth, and Infrared Data Association (IrDA) can be used for the communication channel30.

The main unit10includes a CPU11, a ROM12, a RAM13, a hard disk drive (HDD)14, a communications interface (I/F)15, a connection I/F16, and an engine unit17, all connected to a system bus18. The main unit10as a whole is controlled by the CPU11executing a program stored in the ROM12or the HDD14using the RAM13as a work area. Also, various functions, such as controlling communication with the operational part20described later and controlling adding and updating a function, are implemented by the CPU11executing a program stored in the ROM12or the HDD14using the RAM13as a work area.

The HDD14is a nonvolatile storage medium (storage unit) and stores various programs executed by the CPU11and various data including main unit configuration information (working part configuration information) that indicates hardware and software configurations of the main unit10. These various programs and data can be stored in the ROM12.

The communications I/F15is an interface to communicate with an external apparatus such as a client PC (not shown in figures) via the network3.

The connection I/F16is an interface to communicate with the operational part20via the communication channel30. In this embodiment, an interface compliant with USB specification is used for the connection I/F16. However, any specification whether wired or wireless can be adopted as the communications I/F15and the connection I/F16. One I/F can double as the communications I/F15and the connection I/F16. Conversely, the main unit10can include three or more I/Fs used for communicating.

The engine unit17is hardware that executes processes to implement the printing function, scanning function, copying function, and facsimile function except general-purpose information processing and communication. For example, the engine unit17includes a scanner (an image scanning unit) that scans a document to create and image thereof, a plotter (an image forming unit) that performs printing on sheet material such as paper, and a communication unit that performs facsimile communication, etc. Furthermore, the engine unit17can include specific options such as a finisher that sorts printed sheet material and an Auto Document Feeder (ADF) that feeds documents automatically.

The operational part20includes a CPU21, a ROM22, a RAM23, a flash memory24, a communications I/F25, a connection I/F26, and a control panel27, all connected to a system bus28. The whole of the operational part20is controlled by the CPU21by executing a program stored in the ROM22or the flash memory24using the RAM23as a work area. Also, various functions such as controlling communication with the main unit10and controlling adding and updating a function are implemented by the CPU21by executing a program stored in the ROM22or the flash memory24using the RAM23as a work area.

The flash memory24is a nonvolatile storage medium (storage unit) and stores various programs executed by the CPU21and various data including main unit configuration information that indicates a hardware and software configuration of the operational part20. These various programs and data can be stored in the ROM22.

The communications I/F25is an interface to communicate with an external apparatus such as the distribution server2via the network3.

The connection I/F26is an interface to communicate with the main unit10via the communication channel30. In this embodiment, an interface compliant with USB specification is used for the connection I/F26. However, any specification, whether wired or wireless, can be adopted as the communications I/F25and the connection I/F26. One I/F can double as the communications I/F25and the connection I/F26. Conversely, the operational part20can include more than three I/Fs used for communicating.

The control panel27is an operational display unit that includes an operational part that accepts commands to execute various operations and an operation to configure, etc., and a display part that displays operational status and configuration of the image processing system1. For example, the control panel27can be comprised of a liquid crystal display (LCD) panel on which a touch panel is laminated. Furthermore, in addition to or instead of an LCD panel, an operational part such as hardware keys and a display part such as a lamp can be set up.

In the image processing system1described above, each of the main unit10and the operational part20can be equipped with an OS individually, and the main unit10and the operational part20can work independently. Communication between the main unit10and the operational part20is performed not as interprocess communication within an apparatus but communication between different apparatuses.

Examples of the communication between the main unit10and the operational part20include notifying the main unit10of a content of a user's command accepted by the operational part20, and notifying the operational part20of information to be displayed on the operational part20from the main unit10. Examples of the information to be displayed on the operational part20are execution status of operations in the main unit10, and content of configuration settings in the main unit10.

The distribution server2can be comprised of a known computer that includes the CPU, the ROM, the RAM, and the communication I/F etc.

A process of adding or updating a function of the main unit10in the image processing system1will be described in detail below.

First, a functional configuration of the image processing system1regarding addition or update of a function of the main unit10will be described.FIG. 3is a diagram illustrating a functional configuration of the main unit10and the operational part20shown inFIG. 2. InFIG. 3, units not related to addition or update of a function of the main unit10are omitted or abbreviated.

As shown inFIG. 3, the main unit10includes the connection I/F16, a scanner17a, a plotter17b, OS19, a communication controller101, a print controller102, a transmission controller103, an update processor104, and a configuration information management unit105. As described above with reference toFIG. 2, the connection I/F16exchanges data with the operational part20. It should be noted that the communications I/F15is omitted inFIG. 3since it is not used for adding or updating a function of the main unit10.

The scanner17aand the plotter17billustrate the configuration of the engine unit17shown inFIG. 2more specifically.

The OS19is an operating system that controls the main unit10. A known appropriate OS can be adopted as the OS19. Also, it is unnecessary to make the OS19the same type as an OS29in the operational part20as long as they can communicate with each other.

The communication controller101includes the connection I/F16and is capable of controlling data communication via the communications I/F15(not shown inFIG. 3). After receiving data via those interfaces, the communication controller101passes the data to the processor to process the data among various processors such as the print controller102, the transmission controller103, the update processor104, and the configuration information management unit105depending on a specified destination or the type of command, etc. In addition, the communication controller101passes data to be transmitted externally from those processors to an interface used for such transmission. Furthermore, the communication controller101performs exchanging data between the processors.

The print controller102controls the scanner17aand the plotter17bin the engine unit17and manages jobs that the engine unit17executes, such as a print job.

The transmission controller103manages transmission jobs such as fax transmission, e-mail transmission, and folder transmission (transferring data to an external apparatus in the LAN).

The update processor104adds or updates data stored in the ROM12or the HDD14, such as a program, in order to add or update a function of the main unit10. The update processor104performs the addition and update using data sent from the operational part20, as described later.

The configuration information management unit105manages main unit configuration information that indicates the configuration of the hardware and software included in the main unit10. The configuration information management unit105checks the status of the hardware and software included in the main unit10on start-up and updates the main unit configuration information in accordance with the result. In case of adding or updating software, the configuration information management unit105updates the main unit configuration information in accordance with the addition or update. The same goes for adding or updating data other than software related to addition or update of the function that the main unit10has. The main unit configuration information can be provided to the operational part20in response to a request from the operational part20.

On the other hand, the operational part20includes the communications I/F25, the connection I/F26, the control panel27, the OS29, a communication controller201, an update processor202, an update target changing processor203, and a configuration information management unit204.

As described above with reference toFIG. 2, the communications I/F25exchanges data with an external apparatus such as the distribution server via the network3. Also, as described above with reference toFIG. 2, the connection I/F26exchanges data with the main unit10. Furthermore, as described above with reference toFIG. 2, the control panel27accepts commands to execute various operations from a user and providing various information to the user.

The OS29is an operating system that controls the operational part20. A known appropriate OS can be adopted as the OS29. Also, it is unnecessary to make the OS29the same type as the OS19in the main unit10as long as they can communicate with each other.

The communication controller201is capable of controlling data communication via the communications I/F25and the connection I/F26. After receiving data via those interfaces, the communication controller201passes the data to the processor to process the data among various processors such as the update processor202, the update target changing processor203, and the configuration information management unit204depending on a specified destination or the type of command etc. In addition, the communication controller201passes data to be transmitted externally from those processors to an interface used for the transmission. Furthermore, the communication controller201performs exchanging data between the processors.

The update processor202accesses the distribution server2preset as an access target and downloads data such as a program to add or update a function in the image processing system1from the distribution server2. The added or updated function is included not only in the operational part20but also in the main unit10. Also, the update processor202acquires a list of available data to be added or updated from the distribution server2prior to starting downloading.

The update target changing processor203determines whether the data to add or update a function downloaded from the distribution server2is to be used in the operational part20or in the main unit10. Also, if the data is to be used in the operational part20, the update target changing processor203configures the data to be usable in the operational part20. Alternatively, if the data is to be used in the main unit10, the update target changing processor203sends the data to the main unit10and having the data configure to be usable in the main unit10.

Here, in case the data is a program, “configuration” means installing the program to be able to execute it. In case the data is a document file or configuration data, “configuration” means storing it to be able to browse it if needed.

The functions of the update processor202and the update target changing processor203will be described in detail later along with the function of the update processor104in the main unit10.

The configuration information management unit204is manages operational part configuration information that indicates the configuration of the hardware and software included in the operational part20. The configuration information management unit204performs the management in the same way as the configuration information management unit105in the main unit10does.

In the image processing system1described above, in case of adding or updating a function included in the image processing system1, the operational part20downloads the data for adding or updating the function regardless of whether the function is included in the operational part20or the main unit10.

Operation of each of the above-described units in adding or updating a function is described below.

FIG. 4is a sequence diagram illustrating a process of adding or updating a function included in the image processing system1shown inFIG. 1. InFIG. 4, the addition or update of the function is performed in response to a command from a user.

InFIG. 4, the operational part20receives a user instruction to add or update the function included in the image processing system1through the control panel27from a user500in S1. Subsequently, a controller (not shown in figures) passes the command to the update processor202.

After receiving the command, first, the update processor202acquires the operational part configuration information from the configuration information management unit204in S2. This step is described in detail later.

Also, the update processor202requests the update processor104in the main unit10to send the main unit configuration information. Subsequently, the update processor104acquires the main unit configuration information acquired from the configuration information management unit105and sends it to the update processor202in response to the request in S3. This step is also described in detail later.

Next, the update processor202sends the operational part configuration information acquired in S2and the main unit configuration information acquired in S3to the distribution server2and acquires the list for adding or updating the functions available in the operational part20or the main unit10in S4and S5.

Particular examples of each configuration information are described later. In this case, the distribution server2searches for functions available for the operational part20and the main unit10from the list for adding or updating functions distributable from the distribution server2. The functions can be available only for the operational part20, only for the main unit10, or for a combination of the operational part20and the main unit10.

For example, a function implemented by a program determined to be executable on the main unit10based on the main unit configuration information among programs found to be not installed in the main unit10yet based on the main unit configuration information can be selected for addition to the main unit10.

Otherwise, a function implemented by a program determined to be updatable to a new version among programs found to be already installed in the main unit10based on the main unit configuration information can be selected for updating in the main unit10, on the condition that the main unit10is equipped with the appropriate hardware and OS, etc., to execute the new version of the program.

The operational part20can perform these determinations in the same way as described above with reference to the operational part configuration information. In addition, these determinations can be performed in the same way as described above in case the data to be added or updated is a document file such as a manual. In this case, it is also considered whether the operational part20or the main unit10is equipped with applications to reference the content of the document file or not.

In either case, after acquiring the list of available functions to be added or updated in S5, the update processor202instructs the control panel27to display the list to be browsed by the user in S6.

Next, the operational part20receives commands to add or update the function, which is selected among the list as the function to be actually added or updated by the user500in S7. Subsequently, a controller (not shown in figures) passes the command to the update processor202.

After receiving the command, the update processor202requests the distribution server2to send data to be added or updated in accordance with the chosen function and acquires the data from the distribution server2by downloading it in S8. The content of the acquired data can be a program, a document file, or configuration data. At the time of acquiring the data, it is unnecessary to consider whether the function to be added or updated is included in the main unit10or in the operational part20. Of course, it is unnecessary to consider whether it is the main unit10or the operational part20that utilizes the downloaded data.

After step S8, text, the update processor202passes the downloaded data to the update target changing processor203and instructs the update target changing processor203to configure the data in S9. The update target changing processor203determines for each piece of data passed from the update processor202whether it is used by the operational part20or the main unit10in S10.

It is possible to perform the determination described above by analyzing the data itself. However, in many cases, the distribution server2provides the data for adding or updating the function while adding additional information thereto that indicates to which function the data is related. Therefore, if the update processor202provides the data along with the additional data to the update target changing processor203, the update target changing processor203can perform the determination in S10based on the additional information.

Next, if it is determined that the data is to be used by the operational part20in S10, the update target changing processor203configures the data as usable on the operational part20in S11. As described above, in case the data is a program, “configuration” means installing it to be able to execute it. In case the data is a document file or configuration data, “configuration” means storing it to be able to browse it if needed.

Otherwise, if it is determined that the data is to be used by the main unit10in S10, the update target changing processor203sends the data to the update processor104in the main unit10via the connection I/Fs26and16and requests the main unit10to configure the data in S12. After receiving the request, the update processor104configures the data as usable on the main unit10in S13.

After executing steps from S10to S13for all data downloaded in S8, the process shown inFIG. 4ends.

In the steps shown inFIG. 4, S3corresponds to the function of the acquisition unit, S10corresponds to the function of the determination unit, and S11and S12correspond to the function of data processor.

By executing the process described above, in the image processing system1, the operational part20downloads the data for adding or updating the function regardless of whether the function to be added or updated is implemented in the operational part20or the main unit10in case of adding or updating the function.

Therefore, during the download of the data, the main unit10is not burdened with a process related to the addition or update of the function except for providing the main unit configuration information to the operational part20in response to the request from the operational part20. Consequently, the main unit10can execute any job without a risk that the control becomes unstable in accordance with the addition or update of the function.

For example, if a program in the image processing system1is to be updated while the image processing system1is printing or faxing, it is unnecessary to stop printing or faxing at least until the step in S12shown inFIG. 4. The same applies to a case in which the image processing system1executes these jobs while the image processing system receives data for printing or faxing from an external client PC. Consequently, it is possible to add or update a function easily with decreasing effect on providing capabilities by the main unit10.

If the main unit10is executing a job whose control stability is important in the process shown inFIG. 4, it is possible to execute the step in S12after waiting for the job to finish. On the other hand, regarding the operational part20, since the main functions of the operational part20are to accept input and to display various information, it is not a major problem if control of the operational part20becomes unstable even if adding or updating a function becomes a burden on the processing capacity of the operational part20.

When the main unit10receives data sent in S12and executes configuration in S13shown inFIG. 4, it is unavoidable to generate processing load to a certain level. However, the total amount of the processing load and the period in which the processing load is generated can be fairly reduced compared to performing the complete process including downloading data for the addition or update from the server2.

Also, since each of the operational part20and the main unit is equipped with its own OS, the operation of the main unit10is not affected even if the operational part20executes a processing-intensive operation.

In the image processing system1, after acquiring the main unit configuration information from the main unit10, the operational part20sends the main unit configuration information to the distribution server2and the distribution server2provides data for the addition or update available for the main unit10based on the main unit configuration information. Therefore, if the operational part20downloads data available for the main unit10, a situation in which the data cannot be configured since hardware or software requirements are not satisfied at the time of configuration can be avoided.

In addition, the operational part20determines that the downloaded data for the addition or update is to be used either by the operational part20itself or by the main unit10. In the former case, the operational part20configures the data in the operational part20. In the latter case, the operational part20sends the data to the main unit10. Therefore, if the operational part20downloads data available for the main unit10, and data that will be used in the operational part20and data that will be used in the main unit10are mixed together, it is possible to distinguish the data and configure it in the appropriate unit.

TABLE 1 illustrates the operational part configuration information managed by the configuration information management unit204in the operational part20. The operational part configuration information shown in TABLE 1 includes information on a model name of the operational part20(type of the panel), version (firmware version), installed hardware (list of hardware included in the operational part20), and installed programs (list of programs included in the operational part20).

TABLE 1Information nameExplanationExamples of valueModel nameType of panelPanelTypeAVersionFirmware version1.0.0InstalledList of hardware includedCamera, Bluetooth, GPShardwarein the operational partInstalledlist of programs includedPlatform, Ver.1.0.0programsin the operational partWeb Browser, Ver.1.0.0EcoCopy, Ver.1.2CloudScanner, Ver.2.0Manual for the main unit,model type Type AAZ,Ver.1.0Manual for the main unit,model type Type BBX,Ver.1.0

TABLE 2 illustrates the main unit configuration information managed by the configuration information management unit105in the main unit10. The main unit configuration information shown in TABLE 2 includes information on a model name of the main unit10(type of the image forming apparatus), version (firmware version), installed options (list of hardware included in the main unit10), installed programs (list of programs included in the main unit10).

The distribution server2can extract the data available for the operational part20or the main unit10from data for the addition or update that the distribution server2itself can provide based on the configuration information sent from the operational part20described above.

For example, that can be implemented by registering additional information such as model name of the unit that will use the data, version of firmware and platform necessary for using the data, and hardware and software necessary for using the data for each piece of data, and comparing the additional information with the sent configuration information. Consequently, it can be determined whether or not the operational part20and the main unit10satisfy requirements for using the data.

Some programs require specific hardware such as a camera, Bluetooth, finisher, and Auto Document Feeder (ADF) for operation. Especially, since it is difficult to distinguish hardware that can be installed optionally by its model name, it is necessary to refer to the configuration information of the hardware.

Also, in some cases, it is required that specific software such as a browser or a PDF printing function be available. Since software is installed or uninstalled at will, it is effective to refer to the configuration information to ascertain the configuration at the time of requesting downloading.

The embodiment described above can be implemented by having a computer execute a program that implements functions described above by the CPU21that controls the operational part20.

The program can be stored in a HDD, a ROM, or other nonvolatile storage media (flash memory or EEPROM etc.) included in the computer preliminarily. Also, it can be provided storing nonvolatile storage media such as CD-ROM, memory card, flexible disk, MO, CD-R, CD-RW, DVD+R, DVD+RW, DVD-R, DVD-RW, or DVD-RAM etc. Steps described above can be executed by installing the program stored in the storage media on the computer and executing it. Furthermore, it is possible to download the program from an external apparatus that includes the storage media that stores the program or stores the program in a storage unit, install the program in the computer, and execute it.

In the present invention, the specific configuration of each unit, content of process, and sequence of communication is not limited to the embodiment described above. For example, while the image processing system1is comprised of the main unit10and the operational part20fixedly in the embodiment described above, the image processing system1is not limited to that example.

The operational part and the main unit (operating unit) can be completely separated hardware components. For example, the image processing system or the information processing system can be comprised of a mobile device such as a smartphone as the operational part and the image processing apparatus such as the MFP as the operating unit. Especially, in case the operational part is connected with the operating unit using wireless communication, these units can be configured as completely independent apparatuses.

In addition, it is unnecessary that the operational part corresponds to the operating unit on a one-on-one basis. For example, it is possible that the mobile device can operate the image processing apparatus that includes the operational part connected to the main unit by wired communication. Otherwise, multiple mobile devices can operate one image processing apparatus. Furthermore, one mobile device can operate multiple image processing apparatuses changing the operation target.

Also, it is unnecessary to implement all functions of the operating unit in one apparatus. Multiple apparatuses can implement the functions of the operating unit by cooperating with each other.

It is unnecessary that the operating unit includes the image processing engine such as the scanner or plotter. Any information processing apparatus can be used for that purpose as if it operates based on a command received by the operational part. In addition, an apparatus that performs outputting physically other than processing information can also be used.

As can be appreciated by those skilled in the computer arts, this invention may be implemented as convenient using a conventional general-purpose digital computer programmed according to the teachings of the present specification. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software arts. The present invention may also be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the relevant art.