Image processing apparatus, control method for the same, and computer-readable medium storing a computer program for preventing downloading of resources data when a print job exists

There is provided an image processing apparatus that is capable of protecting a received plurality of pieces of resource data against corruption. Print jobs transmitted from a plurality of information processing apparatuses are stored. When a download start request for resource data has been received by the communication device from one of the plurality of information processing apparatuses, it is determined whether a print job received by the communication device from one of a plurality of information processing apparatuses exists in the storage device. When the received print job exists in the storage device, the communication device is controlled to inform one of the plurality of information processing apparatuses that downloading of the resource data is not possible.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processing apparatus, such as a laser printer or other types of printer, a digital copier, and a facsimile machine, a control method for the same, and a program for implementing the control method. In particular, the present invention relates to an image processing apparatus that downloads resource data, such as fonts, from an information processing apparatus connected via a network, a control method for the same, and a program for implementing the control method.

2. Description of the Related Art

In a conventional image processing apparatus having a plurality of functions such as print, copy, and facsimile, it is possible to simultaneously receive a plurality of jobs, such as a print job and a copy job or a copy job and a facsimile receive job and to process such jobs in parallel. Aside from receiving a plurality of jobs, it is also possible to receive (download) resource data, such as fonts, an overlay, and a program, via a network from a host computer as an information processing apparatus.

However, in the conventional image processing apparatus, if resource data relating to fonts being used in printing is downloaded during execution of a print job, there is the danger of the fonts being changed midway through printing.

Also, as described above, since the image processing apparatus is capable of processing a plurality of jobs in parallel, if a plurality of pieces of resource data are simultaneously downloaded from a plurality of host computers, the plurality of pieces of resource data will be received simultaneously, so that there is the danger of the resource data being corrupted.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide an image processing apparatus that is capable of protecting resource data against corruption or preventing problems such as fonts changing midway through printing, a control method for the same, and a program for implementing the control method.

To attain the above object, in a first aspect of the present invention, there is provided an image processing apparatus comprising a communication device that communicates with a plurality of information processing apparatuses, a storage device that stores at least one of print job transmitted from at least one of the plurality of information processing apparatuses, a determination device operable when a download start request for resource data has been received by the communication device from one of a plurality of information processing apparatuses, to determine whether a print job received by the communication device from at least one of the plurality of information processing apparatuses exists in the storage device, and a control device operable when the received print job exists in the storage device, to control the communication device to inform one of the plurality of information processing apparatuses that downloading of the resource data is not possible.

With the image processing apparatus according to the first aspect, when a download start request for resource data has been received from another information processing apparatus, it is determined whether a print job received by the communication device from the second information processing apparatus exists in the DRAM116. When the received print job exists, the first information processing apparatus is informed that downloading of the resource data is not possible, so that resource data is not downloaded from the first information processing apparatus during execution of a print job, which makes it possible to avoid downloading resource data midway through printing.

Preferably, when the received print job does not exist in the storage device, the control device controls the communication device to download the resource data.

Preferably, when the communication device has informed one of the plurality of information processing apparatuses that downloading of the resource data is not possible, the control device controls the communication device so as not to receive another print job.

To attain the above object, in a second aspect of the present invention, there is provided an image processing apparatus, comprising a communication device that communicates with a plurality of information processing apparatuses, a storage device that stores resource data downloaded from at least one of the plurality of information processing apparatuses, a determination device operable when a download start request for first resource data has been received by the communication device from one of a plurality of information processing apparatuses after second resource data by the communication device from at least one of the plurality of information processing apparatuses has been downloaded, to determine whether the second resource data is presently being written into the storage device, and a control device operable when the second resource data is being written into the storage device, to control the communication device to inform one of the plurality of information processing apparatus that downloading of the first resource data is not possible.

With the image processing apparatus according to the second aspect, when a download start request for first resource data has been received by the communication device from the first information processing apparatus after second resource data by the communication device from the second information processing apparatus has been downloaded, it is determined whether the downloaded or second resource data is presently being written into the storage device, and when the downloaded resource data is being written, the first information processing apparatus is informed that downloading of the first resource data is not possible, so that a plurality of pieces of resource data are not received simultaneously and the resource data can be protected against corruption.

Preferably, when the second resource data has been completely written in the storage device, the control device controls the communication device to download the first resource data.

To attain the above object, in a third aspect of the present invention, there is provided a method of controlling an image processing apparatus including a storage device that stores at least one print job transmitted from at least one of a plurality of information processing apparatuses, the method comprising steps of determining, when a download start request for resource data has been received from one of a plurality of information processing apparatuses, whether a print job received from at least one of the plurality of information processing apparatuses exists in the storage device, and when the received print job exists in the storage device, informing one of the plurality of information processing apparatuses that downloading of the resource data is not possible.

To attain the above object, in a fourth aspect of the present invention, there is provided a method of controlling an image processing apparatus including a storage device that stores resource data downloaded from at least one of a plurality of information processing apparatuses, the method comprising steps of determining, when first resource data has been received from one of a plurality of information processing apparatuses after second resource data from at least one of the plurality of information processing apparatuses has been downloaded, whether the second resource data is presently being written into the storage device, and when the second resource data is being written into the storage device, informing one of the plurality of information processing apparatus that downloading of the first resource data is not possible.

To attain the above object, in a fifth aspect of the present invention, there is provided a program that executes a method of controlling an image processing apparatus including a storage device that stores at least one print job transmitted from at least one of a plurality of information processing apparatuses, the method comprising steps of determining, when a download start request for resource data has been received from one of a plurality of information processing apparatuses, whether a print job received from at least one of the plurality of information processing apparatuses exists in the storage device, and when the received print job exists in the storage device, informing one of the plurality of information processing apparatuses that downloading of the resource data is not possible.

To attain the above object, in a sixth aspect of the present invention, there is provided a program that executes a method of controlling an image processing apparatus including a storage device that stores resource data downloaded from at least one of a plurality of information processing apparatuses, the method comprising steps of determining, when first resource data has been received from one of a plurality of information processing apparatuses after second resource data from at least one of the plurality of information processing apparatuses has been downloaded, whether the second resource data is presently being written into the storage device, and when the second resource data is being written into the storage device, informing one of the plurality of information processing apparatus that downloading of the first resource data is not possible.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in detail with reference to the drawings showing a preferred embodiment thereof.

FIG. 1is a block diagram showing the overall construction of an image processing apparatus according to a first embodiment of the present invention.

InFIG. 1, the image processing apparatus100is comprised of a reader section (image input device)200, a printer section (image output device)300, a controller section (control device)110, and an operating section150. The reader section200is comprised of a scanner unit210having a function of reading an original and an original feeder unit (IF unit)250having a function of conveying the original. The reader section200optically reads an image of the original and converts the image into image data.

The printer section300is comprised of a feeder unit311including a plurality of types of recording sheet cassettes, a marking unit320having a function of transferring and fixing image data onto a recording sheet, and a discharge unit330having a function of sorting and stapling printed recording sheets and outputting the printed recording sheets to the outside of the apparatus. The printer section300conveys a recording sheet, prints image data onto the recording sheet as a visible image, and discharges the recording sheet to the outside of the apparatus.

The controller section110is electrically connected to the reader section200and the printer section300, and is also connected to a plurality of information processing apparatuses, i.e., host computers501and502, via an external network400. The controller section110has a copy function of controlling the reader section200to read an image of the original as image data and controls the printer section300to print the image data on a recording sheet.

The controller section110also has a scanner function and a printer function. The scanner function converts the image data read by the reader section200into code data and transmits the code data via the network400to the host computers501and502. The printer function converts code data received from the host computers501and502via the network400into image data and outputs the image data to the printer section300.

The operating section150connected to the controller section110is comprised of a liquid crystal touch panel and serves as a user interface (I/F) for operating the image processing apparatus100. The network400is implemented by an ETHER NET (registered trademark) or the like.

FIG. 2is a schematic vertical cross-sectional view of the image processing apparatus100.

InFIG. 2, the original feeder unit250inside the reader section200feeds originals sheet by sheet from the top to a platen glass211, and after an original reading operation is completed, discharges the original on the platen glass211to discharge tray219. When an original has been conveyed onto the platen glass211, a lamp212is turned on, and an optical unit213is caused to start moving so that the original is scanned and exposed to light. The light reflected off the original at this time is guided by mirrors214,215,216, and a lens217to a CCD image sensor (hereinafter, simply “CCD”)218. In this way, the image of the scanned original is read by the CCD218. The image data of the original outputted from the CCD218is subjected to predetermined processing and is then transferred to the controller section110.

A laser driver321inside the printer section300drives a laser emitting section322to emit laser light in accordance with the image data outputted from the controller section110. This laser light is irradiated onto a photosensitive drum323, so that a latent image is formed on the photosensitive drum323in accordance with the laser light. A developer324applies a developing material to a part of the photosensitive drum323on which the latent image is formed.

In timing synchronized with the start of emission of laser light, a recording sheet is fed from one of cassettes311,312,313, and314and a manual feed tray315to a transfer section325via a conveying path331and the developing material that adheres to the photosensitive drum323is transferred onto the recording sheet. The recording sheet onto which the developing material has been transferred is conveyed by a conveyor belt326to a fixing section327and the developing material is then fixed to the recording sheet by the fixing section327using heat and pressure. After this, the recording sheet that has passed the fixing section327is discharged to a discharge bin328via conveying paths334and335. On the other hand, in a case where the recording sheet is discharged to the discharge bin328with a printed surface turned upside down, the recording sheet is guided to conveying paths336and338and from there is conveyed in the opposite direction so as to pass a conveying path337and the conveying path334.

When two-sided recording is set, the recording sheet passes the fixing section327and is guided from the conveying path336to a conveying path333via a flapper329, is thereafter conveyed in the opposite direction, and is guided to the conveying path338and a refeeding conveying path332by the flapper329. The recording sheet guided to the refeeding conveying path332passes the conveying path331in the timing described above and is fed to the transfer section325.

FIG. 3is a block diagram showing the internal construction of the controller section110.

InFIG. 3, a main controller111is mainly comprised of a CPU112, a bus controller113, and various kinds of interface controller circuits, not shown. The CPU112and the bus controller113control the entire operation of the controller section110. The CPU112executes processes including a process, described later, based on programs read via a ROM interface115from a ROM (Read Only Memory)114connected to the main controller111. An operation of interpreting PDL (Page Description Language) code data received via the network400from the host computer401or402and expanding the PDL code data into raster image data is also described in one of the read programs and is processed by this program. The bus controller113controls transfer of data for input and output via various interfaces, and performs control of DMA (Direct Memory Access) data transfer as well as arbitration when there is a bus conflict.

A DRAM (Dynamic RAM)116is connected to the main controller111via a DRAM interface117. The DRAM116is a work area for operations by the CPU112and is used as an area for storing image data. The DRAM116is also used as an area for storing print jobs received via the network400from the host computer501, etc., and resource data and the like that have been downloaded via the network400from the host computer501, etc.

A network controller121is connected to the main controller111via an interface123and is connected to an external network via a connector122. The network can be implemented by an ETHERNET (registered trademark).

A universal high-speed bus125is connected to an expansion connector124for connecting an expansion board and an I/O control section126. The universal high-speed bus125can be implemented by a PCI (Peripheral Component Interconnect) bus. The I/O control section126is provided therein with an a synchronous serial communication controller127for two channels, for transmitting and receiving control commands to and from respective CPUs of the reader section200and the printer section300. The controller127is connected via an I/O bus128to a scanner interface140and a printer interface145, which are both external interface circuits.

A panel interface132is connected to the I/O control section126via an LCD controller131and is connected to the I/O control section126via a key input interface130for making inputs via hard keys or touch panel keys. The panel interface132is provided therein with an interface for performing display on a liquid crystal display section, not shown, on the operating section150.

The operating section150connected to the panel interface132is comprised of the liquid crystal display section, not shown, an input device (touch panel keys) realized by a touch panel attached to the liquid crystal display section, and a plurality of hard keys. Signals inputted via the touch panel keys or hard keys are transferred to the CPU112via the panel interface132, etc. The liquid crystal display section displays image data that has been sent from the panel interface132. The liquid crystal display section also displays functions of the image processing apparatus100that are being used, image data, etc.

A real-time clock module133updates and stores a date and time that are managed inside the apparatus and is backed up by a backup battery134. An E-IDE interface161is for connection to an external storage device. A hard disk drive or a CD-ROM drive, not shown, is connected via this interface so that programs and image data can be read and written from and into the drive.

Connectors142and147are connected respectively to the reader section200and the printer section300. The connector142is connected to an asynchronous serial interface143and a video interface144, and the connector147is connected to an asynchronous serial interface148and a video interface149.

The scanner interface140is connected to the reader section200via the connector142and is also connected to the main controller111via a scanner bus141. The scanner interface140has a function of subjecting image data received from the reader section200to an optimal binarization according to the contents of processing carried out subsequently and to a magnification process in main and sub scanning directions. The scanner interface140also has a function of outputting a control signal, which is generated based on a video control signal sent from the reader section200, to the scanner bus141. Data transfer from the scanner bus141to the DRAM116is controlled by the bus controller113.

The printer interface145is connected to the printer section300via the connector147and is also connected to the main controller111via a printer bus146. The printer interface145has a function of performing a smoothing process on image data that has been outputted from the main controller111and outputs the image data to the printer section300and also a function of outputting a control signal generated based on a video control signal sent from the printer section300to the printer bus146.

Transfer of raster image data expanded on the DRAM116to the printer section300is controlled by the bus controller113, with the data being DMA-transferred to the printer section300via the printer bus146and the video interface149.

FIG. 4is a block diagram showing the internal construction of the main controller111.

InFIG. 4, a processor core (CPU)401is connected to a system bus bridge (SBB)402via a 64-bit processor local bus (SC bus)419. The system bus bridge402is a 4×4=64-bit cross bus switch.

The system bus bridge402is also connected via a dedicated local bus (MC bus)420to a memory controller (MC)403that has a cache memory and controls the DRAM116and the ROM114. The system bus bridge402is also connected to a graphics bus (G bus)404and a B bus (input/output bus)405, and so is connected to a total of four buses. The system bus bridge402is designed such that simultaneous parallel connections can be maintained between these four modules to the greatest possible extent. The system bus bridge402is also connected via a CODEC interface to a data compression/expansion unit (CODEC)418.

The G bus404is subjected to cooperative control by a G bus arbiter (GBA)406and is connected to a scanner/printer controller (SPC)408for connecting to the scanner unit210and the printer section300. The B bus405is subjected to cooperative control by a B bus arbiter (BBA)407and, aside from the scanner/printer controller408, is connected to a power management unit (PMU)409, an interrupt controller (IC)410, a serial interface controller (SIC)411that uses a UART (Universal Asynchronous Receiver Transmitter), a USB (Universal Serial Bus) controller (USBC)412, a parallel interface controller (PIC)413that uses IEEE1284, a LAN controller (LANC)414that uses an ETHERNET (registered trademark), a general purpose I/O controller (PC)415that controls touch panel keys, hard keys, etc., and a PCI bus interface controller (PCIC)416. The general purpose I/O controller (PC)415is controlled by an operation panel417having a display panel and a keyboard.

The interrupt controller410collects interrupts from various functional blocks inside the main controller chip and from outside the chip and redistributes the interrupts as non-maskable interrupts (NMI) and external interrupts on six levels that are supported by the processor core401. The functional blocks mentioned above include the power management unit409, the serial interface controller411, the USB controller412, the parallel interface controller413, the LAN controller414, the general purpose I/O controller415, the PCI bus interface controller416, and the scanner/printer controller408.

FIG. 5is a block diagram showing the internal construction of the system bus bridge402.

InFIG. 5, the system bus bridge402is a multi-channel bidirectional bus bridge that interconnects the B bus405, the G bus404, the SC bus419, and the MC bus420using a cross bus switch. By using a cross bus switch, it is possible to simultaneously establish two system connections, and high-speed data transfers with high parallelism can be realized. Symbol “a” inFIG. 5represents a flow of an address signal, symbol “b” represents a flow of a data signal, and symbol “c” represents a cache invalidation interface.

The system bus bridge402is comprised of a B bus interface2009for connecting to the B bus405, a G bus interface2006for connecting to the G bus404, a CPU interface slave port2002for connecting to the processor core401, a memory interface master port2001for connecting to the memory controller403, a CODEC bus interface2014for connecting to the data compression/expansion unit418, an address switch2003for connecting to an address bus, a data switch2004for connecting to a data bus, and a cache invalidation unit2005for invalidating a cache memory of the processor core401.

The B bus interface2009is comprised of a B bus interface slave2010, a B bus interface master2011, B bus interface data2012, and a B bus2013. The G bus interface2006is comprised of a G bus interface slave2008and G bus interface data2007. The CODEC bus interface2014is comprised of CODEC bus interface data2015and a CODEC bus interface slave2016. A sequencer2003ais internally provided inside the address switch2003.

The PCI bus interface controller416inFIG. 4is a block that acts as an interface between the B bus405, which is a general purpose I/O bus inside the main controller, and a PCI bus, which is an external I/O bus located outside the chip.

Arbitration for the G bus404is performed according to a central arbitration method and includes a request signal and a grant signal which are dedicated to each of bus masters. Here, the G bus arbiter406can program the arbitration control method. As the method of giving priority to the bus masters, it is possible to designate one of an impartial arbitration mode, in which the bus is used with the same priority being given to every bus master, and a prioritized arbitration mode, in which priority is given to one of the bus masters which is allowed to use the bus with priority.

The B bus arbiter407receives a bus usage request for the B bus405and after arbitration grants usage authorization to the selected bus master and inhibits bus accesses from being made by two or more bus masters simultaneously. The arbitration method has three levels of priority and is configured so as to programmably assign the respective priorities to a plurality of bus masters.

FIG. 6is a block diagram showing the internal construction of the scanner/printer controller408.

The scanner/printer controller408is connected to the scanner unit210and the printer section300via the video interfaces144and149, respectively, and is a block that acts as an interface for the G bus404and the B bus405.

A scanner controller4302is connected to the scanner unit210and the video interface144and performs operation control and data transfer control thereof. A G bus/B bus interface unit (GBI)4301A is connected to the scanner controller4302via an interface bus4305and performs data transfer and read/write of registers.

A printer controller4303is connected to the printer section300and the video interface149and performs operation control and data transfer control thereof. A G bus/B bus interface unit (GBI)4301B is connected to the printer controller4303via the interface bus4305and performs data transfer and read/write of registers.

The G bus/B bus interface unit (GBI)4301A connects the scanner controller4302to the G bus404or the B bus405. The G bus/B bus interface unit (GBI)4301B connects the printer controller4303to the G bus404or the B bus405. The G bus/B bus interface unit (GBI)4301A and the G bus/B bus interface unit (GBI)4301B are connected respectively to the scanner controller4302and the printer controller4303independently, and are both connected to the G bus404and the B bus405.

A CP bus4304directly connects the scanner controller4302and the printer controller4303for transferring image data and synchronization signals for horizontal/vertical synchronization.

The main controller111is a large-scale ASIC (Application-Specific Integrated Circuit) that is provided therein with the CPU112. This means that when all of the internal logic elements or units operates simultaneously, a large amount of heat is generated, so that there is the risk of the chip itself being destroyed. To prevent this, the main controller111performs power management on a block-by-block basis and also monitors the power consumption of the entire chip.

Power management is performed separately for respective blocks of the main controller111. Information on the power consumption of respective blocks is gathered in the power management unit (PMU)409as power management levels. The power management unit409totals the power consumed by the respective blocks of the main controller111and collectively monitors the power consumed by the respective blocks so that the total does not exceed a power consumption limit.

Next, as a first example, exclusive control that performs downloading of resource data depending upon the existence of a print job will be described with reference toFIG. 7.

FIG. 7is a flowchart showing an exclusive control process that is executed by the controller section110.

InFIG. 7, in a step S7000, a download start request command for resource data is received from the host computer501, which is one of the plurality of host computers connected to the network400. This download start request command requests downloading (transmission) of resource data that is transmitted from the host computer501.

Next, when the download start request command has been received, in a step S7010it is determined whether there exists a print job that has been received from the host computer502that is another computer of the plurality of host computers, that is, it is determined whether a print job is stored in the DRAM116. When it is determined that a print job exists, the process proceeds to a step S7200, while when no print job exists, the process proceeds to a step S7100.

In the step S7100, the host computer501that transmitted the download start request command is informed as a response that it is possible to download the resource data. After the response is transmitted, in a step S7110the network controller121and related devices are controlled to download the resource data from the host computer501. After the resource data has been downloaded, in a step S7120the resource data that has been downloaded is stored in a resource data storage region and the present process is completed. The “resource data storage region” here refers to a hard disk drive or the like that is connected to the controller section110via the E-IDE interface161inFIG. 3, but may alternatively be the DRAM116.

In the step S7200, the host computer501that transmitted the download start request command is informed as a response that it is not possible to download the resource data, and the present process is completed.

According to the present embodiment described above, when a download start request command for resource data is received (step S7000), and a print job exists (YES in the step S7010), the host computer that transmitted the download start request command is informed that downloading is not possible. As a result, resource data is not downloaded from a host computer when a print job is being executed, so that problems such as a change of fonts midway through printing can be avoided.

Next, a second embodiment of the present invention will be described. The second embodiment is different from the above described first embodiment only in the exclusive control process executed by the controller section110, but the hardware configuration is identical with that described with reference toFIGS. 1 to 6.

FIG. 8is a flowchart showing the exclusive control process executed by the controller section110according to the second embodiment.

InFIG. 8, in a step S8000a download start request command for resource data is received from the host computer501, which is one of the plurality of host computers connected to the network400. This download start request command requests downloading (transmission) of resource data that is transmitted from the host computer501.

Next, when the download start request command has been received, in a step S8010it is determined whether there exists a print job that has been received from the host computer502that is another computer of the plurality of host computers, that is, it is determined whether a print job is stored in the DRAM116. When it is determined that a print job exists, the process proceeds to a step S8100, while when there is no print job, the process proceeds to a step S8020.

In the step S8020, the host computer501that transmitted the download start request command is informed as a response that it is possible to download the resource data. After the response is transmitted, in a step S8030the network controller121and related devices are controlled to download the resource data from the host computer501. After the resource data has been downloaded, in a step S8040the resource data that has been downloaded is stored in a resource data storage region and the present process is completed. The “resource data storage region” here refers to a hard disk drive or the like that is connected to the controller section110via the E-IDE interface161inFIG. 3, but may alternatively be the DRAM116.

In the step S8100, the host computer501that transmitted the download start request command is informed as a response that it is not possible to download the resource data. After the response is transmitted, in a step S8110the network controller121and related devices are controlled so as to inhibit print jobs from being received, and the process returns to the step S8000.

According to the second present embodiment described above, when a download start request command for resource data is received (step S8000), and a print job exists (YES in the step S8010), the host computer that transmitted the download start request command is informed that downloading is not possible, and further the reception of a subsequent print job is rejected. As a result, resource data is not downloaded from a host computer when a print job is being executed, so that problems such as a change of fonts midway through printing can be avoided.

Further, even if the downloading of resource data is not possible due to a print job being executed, after the execution of the print job is completed, it will be possible to download the resource data when a download start request command is received again, so that it is possible to download resource data in between print jobs, which raises the usage efficiency of the image processing apparatus100.

Next, a third embodiment of the present invention will be described. The third embodiment is different from the above described first embodiment only in the exclusive control process executed by the controller section110, but the hardware configuration is identical with that described with reference toFIGS. 1 to 6.

FIG. 9is a flowchart showing an exclusive control process executed by the controller section110according to the third embodiment.

InFIG. 9, in a step S9000a download start request command for resource data is received from the host computer501, which is one of the plurality of host computers connected to the network400. This download start request command requests downloading (transmission) of resource data that is transmitted from the host computer501.

Next, when the download start request command has been received, in a step S9010it is determined whether resource data previously downloaded from the host computer502is presently being written into a resource data storage region. The “resource data storage region” here refers to a hard disk drive or the like that is connected to the controller section110via the E-IDE interface161inFIG. 3, but may alternatively be the DRAM116.

When it has been determined in the step S9010that resource data is being written, the process proceeds to a step S9100, while when it has been determined that resource data is not being written, the process proceeds to a step S9020.

In the step S9020, the host computer501that transmitted the download start request command is informed as a response that it is possible to download the resource data. After the response is transmitted, in a step S9030the network controller121and related devices are controlled to download the resource data from the host computer501. After the resource data has been downloaded, in a step S9040, the downloaded resource data is stored in the resource data storage region mentioned above and the present process is completed.

In the step S9100, the host computer501that transmitted the download start request command is informed as a response that it is not possible to download the resource data. After the host computer501has been informed of the response, the main controller111returns to the step S9000.

According to the third embodiment described above, after a download start request command for resource data has been received (step S9000), even if a subsequent download start request command is received) the host computer that transmitted the download start request command is informed that downloading is not possible so that the downloading of resource data for the subsequent command is not executed while the resource data that is downloaded first is being written into the resource data storage region. As a result, even in a case where resource data is downloaded from a plurality of host computers to the image processing apparatus100, it is possible to avoid a situation where pieces of resource data are corrupted due to the pieces of resource data being simultaneously downloaded, and the resource data can be properly protected against corruption.

Although in the above embodiments, the image processing apparatus100is described as being a multi-function appliance having print and copy functions, it goes without saying that the image processing apparatus100may be a multi-function appliance having a function of transmitting and receiving facsimiles, electronic mail, and the like, or may simply be a printer.

It is to be understood that the present invention may also be accomplished by supplying a system or an apparatus with a storage medium in which a program code of software which realizes the functions of any of the above described embodiments (program code corresponding to any of the flowcharts ofFIGS. 7 to 9) is stored, and causing a computer (or CPU or MPU) of the system or apparatus to read out and execute the program code stored in the storage medium.

In this case, the program code may be supplied directly from a storage medium on which the program code is stored, or from a computer, database, or the like, not shown, that is connected via the Internet, a commercial network, a local area network, or the like.

The above program code may realize the functions of any of the above embodiments on a computer, and may be in the form of object code, a program that is executed by an interpreter, script data that is supplied to an OS (Operating System), or the like.

It is to be understood that the present invention may also be accomplished by supplying a computer with a storage medium in which a program code of software which realizes the functions of any of the above described embodiments is stored, and causing the computer or CPU to read out and execute the program code stored in the storage medium.

In the above embodiments, a program is stored on a hard disk drive, but the present invention is not limited to this, and the program may be stored in an external storage apparatus or storage medium connected via the E-IDE interface161ofFIG. 3.

Examples of the storage medium for supplying the program code include a RAM, an NV-RAM, a flexible disk, an optical disk, a magneto-optical disk, an MO, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, a DVD-RW, a DVD+RW, a magnetic tape, a nonvolatile memory card, and a ROM.