Abstract:
An apparatus capable of activating a program recorded in an external medium for distributing the program is disclosed. The apparatus includes an identity determination part configured to determine whether the program recorded in the external medium and a program stored in a recording medium in the apparatus are identical based on first identification information for uniquely identifying the program recorded in the external medium and second identification information for uniquely identifying the program stored in the recording medium in the apparatus; and a program activation part configured to activate the program stored in the recording medium in the apparatus if the identity determination part determines that the programs are identical.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates generally to apparatuses and program activation methods, and more particularly to an apparatus capable of activating a program recorded in an external medium for distributing the program and a method of activating the program in the apparatus.  
         [0003]     2. Description of the Related Art  
         [0004]     In so-called multifunction peripherals (MFPs), that are multifunction machines achieving functions such as copying, facsimile (FAX), printing, and scanning in a single housing, a CPU processes various programs, thereby executing the functions. In these years, some multifunction machines are capable of executing not only applications already installed therein at the time of shipment but also applications provided by portable recording media such as an SD (secure digital) card. In such multifunction machines, users are enabled to enhance functions after starting to use them. Providing applications through SD cards improves the expandability of multifunction machines, thus making it possible to increase their serviceability. Further, the SD card has the merit of better hardware reliability (lower probability of hardware damage) than the HDD (Hard Disk Drive).  
         [0005]      FIG. 1  is a block diagram for illustrating a program arrangement in a conventional multifunction machine  500 . Referring to  FIG. 1 , a CPU  501 , a chipset  502 , a RAM  503 , a ROM  504 , and an HDD  505  are components housed in the multifunction machine  500 . Further, an SD card  506  is inserted into an SD card slot of the multifunction machine  500  when used. Basic programs such as an OS (operating system)  511  are recorded in the ROM  504 . Application programs such as a copying program  512 , a facsimile program  513 , and a printing program  514  are recorded in the SD card  506 . Accordingly, the CPU  501  performs the functions of the multifunction machine  500  by executing the applications recorded in the SD card  506  on the basic programs  511  recorded in the ROM  504 . The HDD  505  is used principally as an area for storing image data scanned by the multifunction machine  500 .  
         [0006]     An overview is given of a start-time operation in the multifunction machine  500  of  FIG. 1 .  FIG. 2  is a sequence diagram for giving an overview of the start-time operation of the multifunction machine  500 .  FIG. 2  is based on the assumption that the basic programs  511  have already been read into memory and activated.  
         [0007]     First, in step S 101 , the basic programs  501  check the HDD  505  for software damage, and in step S 102 , the basic programs  501  check the SD card  506  for software damage. This software damage check in steps S 101  and S 102  is the operation of determining whether the HDD  505  and the SD card  506  are usable. For example, it is determined whether an operation that may cause software damage, such as turning off power abruptly, was performed at the time of previous use, and if such an operation has been performed, the recording medium is scanned and checked for software damage.  
         [0008]     When the software damage check of the SD card  506  is completed in step S 103 , in step S 104 , the basic programs  511  access the SD card  506 , and in step S 105 , read the copying program  512  therefrom into memory. Then, in step  106 , the basic programs  511  activate the copying program  512 . Likewise, in steps S 107  through S 112 , the basic programs  511  read the facsimile program  513  and the printing program  514  from the SD card  506  into the memory, and activate the facsimile program  513  and the printing program  514 .  
         [0009]     The activity diagram of the above-described operation is as shown in  FIG. 3 .  FIG. 3  is an activity diagram for illustrating the start-time operation in the multifunction machine  500 .  
         [0010]     First, in step S 151 , the basic programs  511  are activated. Next, the basic programs  511  check the HDD  505  (in step  152 ) and the SD card  506  (in step S 153 ) in parallel for software damage.  
         [0011]     When finishing at least the damage check of the SD card  506 , in step S 154 , the basic programs  511  read an application from the SD card  506  into memory, and in step S 155 , activate the application. In step S 156 , the basic programs  511  repeat this reading and activation until all the applications are read from the SD card  506  into the memory and activated. In step S 157 , when all the applications have been activated, the functions of the multifunction machine  500 , such as copying, facsimile, and printing, are available to a user.  
         [0012]     However, the SD card has the disadvantage of being inferior to the HDD in reading rate. Accordingly, the operation of reading various applications from the SD card  506  at the time of starting the multifunction machine  500  causes the problem of an increase in the start time of the multifunction machine  500 .  
       SUMMARY OF THE INVENTION  
       [0013]     According to one embodiment of the present invention, there is provided an apparatus and a program activation method in which the above-described disadvantage is eliminated.  
         [0014]     According to one embodiment of the present invention, there is provided an apparatus and a program activation method that are capable of reducing time for activating an application program recorded in an external recording medium.  
         [0015]     According to one embodiment of the present invention, there is provided an apparatus capable of activating a program recorded in an external medium for distributing the program, the apparatus including: an identity determination part configured to determine whether the program recorded in the external medium and a program stored in a recording medium in the apparatus are identical based on first identification information for uniquely identifying the program recorded in the external medium and second identification information for uniquely identifying the program stored in the recording medium in the apparatus; and a program activation part configured to activate the program stored in the recording medium in the apparatus if the identity determination part determines that the programs are identical.  
         [0016]     According to this apparatus, there is no need to read an application program from an external medium. Accordingly, it is possible to reduce the time required for activating the application program recorded in the external medium.  
         [0017]     According to one embodiment of the present invention, there is provided a program activation method in an apparatus capable of activating a program recorded in an external medium for distributing the program, the program activation method including the steps of: (a) determining whether the program recorded in the external medium and a program stored in a recording medium in the apparatus are identical based on first identification information for uniquely identifying the program recorded in the external medium and second identification information for uniquely identifying the program stored in the recording medium in the apparatus; and (b) activating the program stored in the recording medium in the apparatus if step (a) determines that the programs are identical.  
         [0018]     Thus, according to the present invention, it is possible to provide an apparatus and a program activation method capable of reducing the time required for activating an application program recorded in an external medium. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0019]     Other objects, features and advantages of the present invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings, in which:  
         [0020]      FIG. 1  is a block diagram for illustrating a program arrangement in a conventional multifunction machine;  
         [0021]      FIG. 2  is a sequence diagram for giving an overview of a start-time operation in the conventional multifunction machine;  
         [0022]      FIG. 3  is an activity diagram for illustrating the start-time operation in the conventional multifunction machine;  
         [0023]      FIG. 4  is a block diagram showing a multifunction machine according to a first embodiment of the present invention;  
         [0024]      FIG. 5  is a diagram for illustrating a method of generating the electronic signature of an application program according to the first embodiment of the present invention;  
         [0025]      FIG. 6  is a sequence diagram for giving an overview of a start-time operation in the multifunction machine according to the first embodiment of the present invention;  
         [0026]      FIG. 7  is a diagram conceptually showing a method of determining whether application programs in an SD card and an HDD are identical according to the first embodiment of the present invention;  
         [0027]      FIG. 8  is an activity diagram for illustrating the start-time operation in the multifunction machine according to the first embodiment of the present invention;  
         [0028]      FIG. 9  is a concept diagram for illustrating a method of authenticating an application program according to the first embodiment of the present invention;  
         [0029]      FIG. 10  is a sequence diagram for giving an overview of a start-time operation in the multifunction machine according to a second embodiment of the present invention; and  
         [0030]      FIG. 11  is an activity diagram for illustrating the start-time operation in the multifunction machine according to the second embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0031]     A description is given, with reference to accompanying drawings, of embodiments of the present invention.  
         [0032]     First Embodiment  
         [0033]      FIG. 4  is a block diagram showing a multifunction machine  10  according to a first embodiment of the present invention. Referring to  FIG. 4 , the multifunction machine  10 , which is an apparatus according to one embodiment of the present invention, includes a CPU  11 , a chipset  12 , a RAM  13 , a ROM  14 , and an HDD  15 . The multifunction machine  10  includes an SD card slot (not graphically illustrated), into which an SD card  16  is inserted.  
         [0034]     The CPU  11  achieves functions according to the multifunction machine  10  by executing the programs recorded in the ROM  14 , the HDD  15 , and the SD card  16 . The chipset  12  connects the CPU  11  and the RAM  13  to each other and controls their operations. The RAM  13  is used principally as a work memory area in the case of program execution by the CPU  11 .  
         [0035]     A basic program  21  is prerecorded in the ROM  14 . The basic program  21  corresponds to an OS. As an internal recording medium of the multifunction machine  10 , the HDD  15  is used for storing image data scanned by the multifunction machine  10 . Further, according to this embodiment, the HDD  15  is also used as a cache storage area for the programs recorded in the SD card  16 .  
         [0036]     The SD card  16  is an external medium for distributing (providing) programs to the multifunction machine  10 . As objects of distribution, an authentication key  22 , a copying program  23   a , a copying signature  24   a , a facsimile program  25   a , a facsimile signature  26   a , a printing program  27   a , and a printing signature  28   a  are recorded in the SD card  16 .  
         [0037]     The copying program  23   a , the facsimile program  25   a , and the printing program  27   a  are application programs for a copying function, a facsimile function, and a printing function, respectively, in the multifunction machine  10 . That is, the functions of the multifunction machine  10  can be enhanced by executing not only programs installed in the ROM  14  at the time of factory shipment but also programs provided by the SD card  16 . Accordingly, it is also possible to further expand the functions of the multifunction machine  10  using another SD card on which an application different from those recorded in the SD card  16  is recorded. In general, the SD card has higher hardware reliability than the HDD. In this respect, distribution of applications through the SD card has merit.  
         [0038]     In addition, the copying signature  24   a , the facsimile signature  26   a , and the printing signature  28   a  are recorded in the SD card  16 . The copying signature  24   a  is the electronic signature of the copying program  23   a . The facsimile signature  26   a  is the electronic signature of the facsimile program  25   a . The printing signature  28   a  is the electronic signature of the printing program  27   a . Each electronic signature is used as information for uniquely identifying the corresponding application program and information for verifying that the corresponding application program has not been tampered with.  
         [0039]     That is, the SD card  16  has the characteristic of being easily readable and writable by other computers, but this characteristic makes it vulnerable to information falsification. Therefore, by correlating each application program with the corresponding electronic signature, the multifunction machine  10  can detect falsification of an application program and prevent improper activation of an application program infected with a virus or the like.  
         [0040]      FIG. 5  is a diagram for illustrating a method of generating the electronic signature of an application program according to this embodiment. Referring to  FIG. 5 , first, a message digest  302  of an application program  301  is generated by applying a predetermined message digest function to the application program  301 . Next, the message digest  302  is encrypted with the authentication key  22 , so that an electronic signature  303  is generated.  
         [0041]     That is, the copying signature  24   a  is the message digest of the copying program  23   a  encrypted with the authentication key  22 . Likewise, the facsimile signature  26   a  is the message digest of the facsimile program  25   a  encrypted with the authentication key  22 , and the printing signature  28   a  is the message digest of the printing program  27   a  encrypted with the authentication key  22 . The method of detecting falsification of each application program is described below.  
         [0042]     Referring back to  FIG. 4 , a copying program  23   b , a copying signature  24   b , a facsimile program  25   b , a facsimile signature  26   b , a printing program  27   b , and a printing signature  28   b  are recorded in the HDD  15 . These are copies of the corresponding application programs and electronic signatures recorded in the SD card  16 . As is described below, the application programs and electronic signatures are copied at least when the applications are activated from the SD card  16 . That is, these application programs and electronic signatures are not recorded in the HDD before the application programs are put to use using the SD card  16 .  
         [0043]     A description is given below of an operating procedure of the multifunction machine  10  of  FIG. 4 .  FIG. 6  is a sequence diagram for giving an overview of a start-time operation in the multifunction machine  10  according to the first embodiment.  FIG. 6  is based on the assumption that each application program and its electronic signature have already been copied from the SD card  16  to the HDD  15 .  
         [0044]     First, in step S 201 , the basic program  21  checks the HDD  15  for software damage, and in step S 202 , the basic program  21  checks the SD card  16  for software damage. This software damage check in steps S 201  and S 202  is the operation of determining whether the HDD  15  and the SD card  16  are usable. For example, it is determined whether an operation that may cause software damage, such as turning off power abruptly, has been performed at the time of previous use, and if such an operation has been performed, the recording medium is scanned and checked for software damage.  
         [0045]     When the basic program  21  completes the software damage check of both the HDD  15  and the SD card  16  so that both the HDD  15  and the SD card  16  are accessible, the basic program  21  accesses the HDD  15  (step S 205 ) and reads the copying signature  24   b  therefrom into memory (step S 206 ), and accesses the SD card  16  (step S 207 ) and reads the copying signature  24   a  therefrom into the memory (step S 208 ). Then, in step S 209 , the basic program  21  compares the values of the copying signature  24   a  and the copying signature  24   b  read into the memory, thereby determining whether the copying program  23   a  and the copying program  23   b  are identical. The basic program  21  confirms their identity (identicalness), that is, determines that the copying program  23   a  and the copying program  23   b  are identical, if the value of the copying signature  24   a  and the value of the copying signature  24   b  are the same.  
         [0046]      FIG. 7  is a diagram conceptually showing a method of determining whether application programs in the SD card  16  and the HDD  15  are identical according to this embodiment.  FIG. 7  shows the case of determining whether an XXX program and a YYY program are identical by comparing the values of an XXX signature and a YYY signature, which are their respective signatures.  
         [0047]     When it is confirmed that the copying program  23   a  and the copying program  23   b  are identical, the basic program  21  accesses the HDD  15  (step S 210 ) and reads the copying program  23   b  therefrom into the memory (step S 211 ). Then, in step S 212 , the basic program  21  activates the copying program  23   b  read into the memory in place of the copying program  23   a  in the SD card  16 . That is, if the copying program  23   a  and the copying program  23   b  are identical, the copying program  23   b  recorded in the HDD  15  enjoying a high reading rate is used, thereby reducing time required for reading the copying program.  
         [0048]     Thereafter, in steps S 213  through S 228 , the basic program  21  compares the values of electronic signatures in the SD card  16  and the HDD  15  with respect to each of the facsimile program  25   a  and the printing program  27   a , and if the values are identical to each other, the basic program  21  activates the facsimile program  25   b  and the printing program  27   b  in the HDD  15 .  
         [0049]     The activity diagram of the operation of  FIG. 6  is as shown in  FIG. 8 .  FIG. 8  is an activity diagram for illustrating the start-time operation in the multifunction machine  10  according to the first embodiment.  
         [0050]     First, in step S 251 , the basic program  21  is activated. Then, the basic program  21  checks the HDD  15  (in step S 251 ) and the SD card  16  (in step S 253 ) in parallel for software damage.  
         [0051]     When the software damage check of each of the HDD  15  and the SD card  16  is completed, in step S 254 , the basic program  21  reads an electronic signature for an application program (hereinafter referred to as “current application”) from each of the HDD  15  and the SD card  16  into memory, and compares the values of the two electronic signatures (for example, the copying signature  24   b  and the copying signature  24   a ).  
         [0052]     Next, in step S 255 , the basic program  21  determines whether the values of the two electronic signatures are the same. If the values are the same, in step S 256 , the basic program  21  reads the current application from the HDD  15  into the memory. Then, in step S 257 , the basic program  21  authenticates the current application based on the electronic signature of the current application already read into the memory. Here, authenticating an application program refers to verifying that the application program is not tampered with.  
         [0053]     That is, it is presumed after a fashion that the current application in the HDD  15  and the current application in the SD card  16  are identical. However, for example, the original current application in the SD card  16  may be tampered with, or the current application in the HDD  15  may be falsified after the current application is copied to the HDD  15 . Accordingly, in terms of security, it is preferable to verify that the current application which has been read from the HDD  15  and is going to be activated is not tampered with before its activation.  
         [0054]      FIG. 9  is a concept diagram for illustrating a method of authenticating an application program according to this embodiment.  FIG. 9  shows the case of authenticating an application program  401 . In this case, a message digest function is applied to the application program  401 , thereby generating a message digest  402 . On the other hand, an electronic signature  403  of the application program  401  is decoded using the authentication key  22 , thereby generating decoded data  404 . Then, the message digest  402  and the decoded data  404  are compared, and if they are identical, the application program  401  is authenticated.  
         [0055]     Accordingly, in step S 257 , the basic program  21  authenticates the current application by generating the message digest of the current application, decoding the electronic signature of the current application already read into the memory using the authentication key  22 , and comparing the message digest and the decoded electronic signature. A description of authentication of the application program is omitted in  FIG. 6  for convenience.  
         [0056]     When the current application is authenticated, in step S 258 , the basic program  21  activates the current application read from the HDD  15  into the memory.  
         [0057]     On the other hand, if the two electronic signatures do not match or there is no corresponding electronic signature in the HDD  15  in step S 255 , or if the current application is not authenticated in step S 257 , in step S 259 , the basic program  21  reads the current application from the SD card  16  into the memory. If the application program has not been activated from the SD card  16  in the past, a copying operation in below-described step S 265  has not been performed. Accordingly, the application program and its electronic signature are not recorded in the HDD  15 . Therefore, in this case, it is determined in step S 255  that there is no corresponding electronic signature in the HDD  15 .  
         [0058]     Next, in step S 260 , the basic program  21  performs an authentication operation on the current application read from the SD card  16 . That is, the basic program  21  generates the message digest of the current application, decodes the electronic signature of the current application already read into the memory using the authentication key, and compares the message digest and the decoded electronic signature. If the current application is authenticated, in step S 258 , the basic program  21  activates the current application read from the SD card  16 . If the current application is not authenticated, the basic program  21  stops the operation.  
         [0059]     The operation from step S 254  to step S 258  is performed with respect to all the other application programs recorded in the SD card  16  (step S 261 ).  
         [0060]     When all the application programs are activated in step S 262 , in step S 263 , the basic program  21  checks the HDD  15  for available storage capacity, and determines whether there is an area for recording all the application programs and their electronic signatures recorded in the SD card  16  (hereinafter referred to as “copying area”) remaining in the HDD  15 . If there is a copying area in the HDD  15 , in step S 265 , the basic program  21  copies all the application programs and their electronic signatures recorded in the SD card  16  into the HDD  15 . If there is no copying area in the HDD  15 , in step S 264 , the basic program  21  deletes application programs, etc., copied into the HDD  15  from SD cards in the past in chronological order, and after reserving a copying area, in step S 265 , the basic program  21  performs copying. Accordingly, next time the multifunction machine  10  is started, basically, the application programs copied into the HDD  15  are activated.  
         [0061]     In step S 265 , the authentication key  22  is not copied in order to prevent a dead copy of the SD card  16  from being made. That is, even if another SD card is created by making a copy of the HDD  15 , the authentication key  22  is not included in the other SD card. Accordingly, even if an attempt is made to activate the multifunction machine  10  by inserting the other SD card into the multifunction machine  10 , authentication of the application programs fails because of absence of the authentication key  22  in the other SD card, and thus the multifunction machine  10  cannot be started.  
         [0062]     That is, even when all the application programs in the SD card  16  are copied into the HDD  15 , the copied application programs are enabled (usable) only when the SD card  16  from which the application programs are copied is inserted into the multifunction machine  10 . This prevents a dead copy of the SD card  16  from being made.  
         [0063]     As described above, according to the multifunction machine  10  according to the first embodiment, the applications in the SD card  16  are virtually activated using applications from the HDD  15  enjoying a higher reading rate than the SD card  16 . Therefore, it is possible to reduce the operating time for activating the applications in the SD card  16 , thus making it possible to reduce the operating time for starting the multifunction machine  10 .  
         [0064]     Although the SD card  16  is accessed for determining the identity (identicalness) of application programs, it is the electronic signature of the corresponding application program having less information than the application program that is read from the SD card  16  at the time of the access. Therefore, it is possible to reduce the adverse effect of this operation on performance.  
         [0065]     The information for uniquely identifying an application program employed in determining the identity (identicalness) of the application program with another application program does not always have to be an electronic signature. Any information will do if the information at least can uniquely identify the application program and has less information than the application program. For example, information such as the message digest of the application program or a combination of the name and version number of the application program may be suitably selected in accordance with operations.  
         [0066]     Second Embodiment  
         [0067]     Reading an application program from the HDD  15  should be started after completion of the software damage check of the HDD  15 . Accordingly, in the first embodiment, the basic program  21  waits for completion of the software damage check of not only the SD card  16  but also the HDD  15  before starting the subsequent operation. In some cases, however, the software damage check of the HDD  15  requires tens of seconds or more because of the size of the storage capacity of the HDD  15 . For example, this occurs in the case where an operation that may cause software damage, such as turning off power abruptly, has been performed at the time of previous use. In such a case, waiting for completion of the software damage check of the HDD  15  results in overhead greater than or equal to the reduction in time due to reading application programs from the HDD  15 , thus having the opposite effect of increasing the time required for starting the multifunction machine  10 . Therefore, as a second embodiment, a description is given of the case where the time required for starting the multifunction machine  10  is prevented from being unnecessarily long even if the software damage check of the HDD  15  requires a long period of time. In the second embodiment, the multifunction machine  10  may have the same configuration as in the first embodiment.  
         [0068]      FIG. 10  is a sequence diagram for giving an overview of a start-time operation in the multifunction machine  10  according to the second embodiment.  FIG. 10  is also based on the assumption that that each application program and its electronic signature have already been copied from the SD card  16  to the HDD  15 .  
         [0069]     First, the basic program  21  checks the HDD  15  (in step S 301 ) and the SD card  16  (in step S 302 ) for software damage. When finishing the software damage check of the SD card  16  in step S 303 , the basic program  21  starts to activate applications without waiting for completion of the software damage check of the HDD  15 .  
         [0070]     That is, in step S 304 , the basic program  21  accesses the SD card  16 , and in step S 305 , reads the copying signature  24   a  therefrom into memory. In step S 306 , the basic program  21  accesses the SD card  16 , and in step S 307 , reads the copying program  23   a  therefrom into the memory. Then, in step S 308 , the basic program  21  activates the copying program  23   a  read from the SD card  16 . Before activating the copying program  23   a , the copying program  23   a  is authenticated, which is omitted in  FIG. 10  for convenience.  
         [0071]     It is assumed that in step S 309 , the software damage check of the HDD  15  is completed when activation of the copying program  23   a  is completed.  
         [0072]     Then, the basic program  21  starts to use the HDD  15 . That is, in step S 310 , the basic program  21  accesses the HDD  15 , and in step S 311 , reads the facsimile signature  26   b  therefrom into the memory. In step S 312 , the basic program  21  accesses the SD card  16 , and in step S 313 , reads the facsimile signature  26   a  therefrom into the memory. Then, in step S 314 , the basic program  21  compares the values of the facsimile signature  26   a  and the facsimile signature  26   b  read into the memory, thereby determining whether the facsimile program  25   a  and the facsimile program  25   b  are identical.  
         [0073]     When the identity (identicalness) of the facsimile program  25   a  and the facsimile program  25   b  is confirmed, in steps S 315 , the basic program  21  accesses the HDD  15 , and in step S 316 , reads the facsimile program  25   b  therefrom into the memory. Then, in step S 317 , the basic program  21  activates the facsimile program  25   b.    
         [0074]     Thereafter, in steps S 318  through S 325 , the basic program  21  also compares the values of the electronic signatures in the SD card  16  and the HDD  15  with respect to the printing program  27   a , and if the electronic signatures are identical, the basic program  21  activates the printing program  27   b  in the HDD  15 .  
         [0075]     That is, according to the operation of  FIG. 10 , an application program is activated from the SD card  16  while the HDD  15  is not ready for use. Therefore, it is possible to prevent the time required before the HDD  15  becomes ready for use from directly affecting the time required for starting the multifunction machine  10 . Accordingly, even if the time required before the HDD  15  becomes ready for use increases because of delay in the software damage check of the HDD  15 , it is possible to prevent the time required for starting the multifunction machine  10  from being unnecessarily long.  
         [0076]     The activity diagram of the operation of  FIG. 10  is as shown in  FIG. 11 .  FIG. 11  is an activity diagram for illustrating the start-time operation in the multifunction machine  10  according to the second embodiment.  
         [0077]     First, in step S 351 , the basic program  21  is activated. Then, the basic program  21  checks the HDD  15  (in step S 352 ) and the SD card  16  (in step S 353 ) in parallel for software damage.  
         [0078]     When finishing at least the damage check of the SD card  16 , in step S 354 , the basic program  21  determines one of the application programs in the SD card  16  as an application program to be processed, and reads the electronic signature of the determined one of the application programs (hereinafter referred to as “current application”) from the SD card  16  into memory. Then, in step S 355 , the basic program  21  reads the current application from the SD card  16  into the memory, and in step S 356 , authenticates the current application using its electronic signature. In the case of failing in authenticating the current application, the basic program  21  stops the operation. When the current application is authenticated, in step S 357 , the basic program  21  activates the current application read from the SD card  16 .  
         [0079]     Next, in step S 358 , the basic program  21  determines whether all the application programs recorded in the SD card  16  have been activated. If all the application programs have been activated, the basic program  21  proceeds to step S 375 , and copies the application programs and their electronic signatures from the SD card  16  to the HDD  15  in the subsequent steps.  
         [0080]     If there remains an application program that has yet to be activated, in step S 359 , the basic program  21  determines whether the software damage check of the HDD  15  is completed. If the software damage check of the HDD  15  is not completed, the basic program  21  determines the application program that has yet to be activated as an application program to be processed, and repeats the above-described operations after step S 353 .  
         [0081]     If the software damage check of the HDD  15  is completed, in step S 360 , the basic program  21  starts to activate application programs from the HDD  15 . That is, the basic program  21  performs the operations in step S 367  and the subsequent steps on each application program that has yet to be activated. The operations in step S 367  and the subsequent steps are equal to those in step S 254  and the subsequent steps described in  FIG. 8 , and accordingly, a description thereof is omitted.  
         [0082]     As described above, according to the multifunction machine  10  according to the second embodiment, even if the HDD  15  is not accessible for a long period of time, it is possible to prevent the time required for starting the multifunction machine  10  from being unnecessarily long by activating an application program from the SD card  16 .  
         [0083]     In the above description, the SD card is cited as an external medium for distributing a program. However, such an external medium may be replaced by other recording media such as a CD-ROM. Further, the multifunction machine is cited as an apparatus capable of activating a program recorded in an external medium for distributing the program. However, such an apparatus is not limited to the multifunction machine, and may be an apparatus specialized in a single function, such as a copier, a printer, a scanner, or a facsimile machine. Further, the present invention is applicable to not only apparatuses related to image processing but also various apparatuses as long as the apparatuses are capable of executing an application.  
         [0084]     Thus, according to one embodiment of the present invention, there is no need to read an application program from an external medium. Accordingly, it is possible to reduce the time required for activating the application program recorded in the external medium.  
         [0085]     The present invention is not limited to the specifically disclosed embodiments, and variations and modifications may be made without departing from the scope of the present invention.  
         [0086]     The present application is based on Japanese Priority Patent Application No. 2005-130284, filed on Apr. 27, 2005, the entire contents of which are hereby incorporated by reference.