Patent Publication Number: US-9843701-B2

Title: Image processing apparatus, non-transitory computer readable medium, and method for charging for processing

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation application of U.S. patent application Ser. No. 14/479,923, filed Sep. 8, 2014, which is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2014-039503 filed Feb. 28, 2014. 
    
    
     BACKGROUND 
     Technical Field 
     The present invention relates to an image processing apparatus, a non-transitory computer readable medium, and a method. 
     SUMMARY 
     According to an aspect of the invention, there is provided an image processing apparatus including an image processing section that processes an image, a plug-in adding section that adds a plug-in, the plug-in being a function executed in corporation with the image processing section, an additional-charging-information adding section that adds additional charging information as the plug-in is added by the plug-in adding section, the additional charging information being set for a job included in the plug-in, and a charging section that charges for a job on a basis of the additional charging information, in a case where the job to be executed is included in at least one job included in the additional charging information and the job to be executed is executed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary embodiment of the present invention will be described in detail based on the following figures, wherein: 
         FIG. 1  illustrates an example of the configuration of an image processing system according to the exemplary embodiment; 
         FIG. 2  illustrates an example of the configuration of a controller in an image processing apparatus; 
         FIG. 3  explains functions included in the image processing apparatus; 
         FIG. 4  illustrates an example of incorporated charging information corresponding to incorporated functions; 
         FIGS. 5A and 5B  illustrate an example of Additional Charging Information 1 corresponding to Plug-in 1, representing a case where the charging condition differs between  FIG. 5A  and  FIG. 5B ; 
         FIG. 6  illustrates an example of Additional Charging Information 2 corresponding to Plug-in 2; 
         FIG. 7  illustrates an example of Additional Charging Information 3 corresponding to Plug-in 3; 
         FIG. 8  illustrates an example of Additional Charging Information 4 corresponding to Plug-in 4; 
         FIG. 9  illustrates an example of the configuration of various units of the controller; and 
         FIG. 10  is a flowchart of a charging process executed by the controller. 
     
    
    
     DETAILED DESCRIPTION 
     Hereinafter, an exemplary embodiment of the invention will be described with reference to the attached figures. 
     &lt;Image Processing System&gt; 
       FIG. 1  illustrates an example of the configuration of an image processing system according to the exemplary embodiment. 
     This image processing system has an image processing apparatus  1  that works as a so-called multi-function machine including functions such as copy, scan, print, and facsimile functions, a communication line  2  connected to the image processing apparatus  1 , a terminal apparatus  3  connected to the communication line  2 , a facsimile apparatus  4  connected to the communication line  2 , and a server apparatus  5  connected to the communication line  2 . 
     The communication line  2  is configured by an Internet line, a telephone line, or the like. The terminal apparatus  3  instructs the image processing apparatus  1  to execute, for example, processing of an image, via the communication line  2 . The terminal apparatus  3  is configured by, for example, a personal computer (PC). Further, the facsimile apparatus  4  transmits and receives facsimiles to and from the image processing apparatus  1  via the communication line  2 . Furthermore, the server apparatus  5  transmits and receives data (including programs) to and from the image processing apparatus  1  via the communication line  2 . 
     The server apparatus  5  may be an apparatus that executes so-called cloud computing, or an apparatus that provides cloud services. 
     &lt;Image Processing Apparatus  1 &gt; 
     The image processing apparatus  1  includes an image forming part  20 , an image reading part  30 , a transmitter/receiver  40 , a user interface (UI) part  50 , and a controller  10 . The image forming part  20  forms an image on a recording medium such as paper. The image reading part  30  reads an image recorded on a recording medium such as paper. The transmitter/receiver  40  transmits and receives data to and from the terminal apparatus  3 , the facsimile apparatus  4 , and the server apparatus  5  via the communication line  2 . The UI part  50  accepts instructions from the user, and displays messages to the user. These instructions are related to operations using functions such as power on/off, scan, print, copy, and facsimile, and further, added functions described later. The controller  10  controls operation of the image forming part  20 , the image reading part  30 , the transmitter/receiver  40 , and the UI part  50 . 
     The controller  10 , the image forming part  20 , the image reading part  30 , the transmitter/receiver  40 , and the UI part  50  are connected by a control bus  60 . 
     Each of the controller  10 , the image forming part  20 , the image reading part  30 , the transmitter/receiver  40 , and the UI part  50  is an example of an image processing section. 
     In the image processing apparatus  1 , an image read from the image reading part  30  is printed onto a recording medium such as paper by the image forming part  20 . 
     Further, in the image processing apparatus  1 , data such as an image transmitted from the terminal apparatus  3 , the facsimile apparatus  4 , or the server apparatus  5 , which are placed outside the image processing apparatus  1 , is printed onto the recording medium by the image forming part  20  via the communication line  2 . 
     In the image processing apparatus  1 , data such as an image read by the image reading part  30  is transmitted from the transmitter/receiver  40  to the terminal apparatus  3 , the facsimile apparatus  4 , or the server apparatus  5 , which are placed outside the image processing apparatus  1 , via the communication line  2 . 
     As the transmitter/receiver  40 , for example, a transmitter/receiver for the Internet line and a transmitter/receiver for the telephone line may be provided separately. 
     That is, in the image processing apparatus  1 , as incorporated functions described later, the scan function is implemented by the image reading part  30 , the print function is implemented by the image forming part  20 , the copy function is implemented by the image reading part  30  and the image forming part  20 , and the facsimile function is implemented by the image reading part  30 , the image forming part  20 , and the transmitter/receiver  40 . 
     &lt;Controller  10 &gt; 
       FIG. 2  illustrates an example of the configuration of the controller  10  in the image processing apparatus  1 . 
     The controller  10  includes a central processing unit (hereinafter, referred to as CPU)  11 , a random access memory (RAM)  12 , a non-volatile memory (hereinafter, referred to as NVM)  13 , and a hard disk drive (hereinafter, referred to as HDD)  14 . 
     The CPU  11 , the RAM  12 , the NVM  13 , and the HDD  14  are connected by a signal bus  15 . 
     The signal bus  15  is connected to the control bus  60 . The CPU  11  includes an arithmetic logical unit (ALU) that executes logic operations and arithmetic operations, and the like. 
     The RAM  12  retains programs and data used by the CPU  11  to execute computations. Hereinafter, the programs and data will be sometimes collectively referred to as data. 
     Usually, the RAM  12  is a volatile storage medium, which allows reading and writing of data and retention of written data when power is being supplied, and data is lost when power is not being supplied. 
     The NVM  13  is a non-volatile storage medium, which allows data to be read and written when power is being supplied, and retains written data even when power is not being supplied. The NVM  13  may be a read only memory (ROM) which does not allow data to be rewritten, or may be a flash memory which allows data to be rewritten. The following description assumes that the NVM  13  is a flash memory. 
     The HDD  14  is a large capacity rewritable non-volatile memory, which retains programs and data for operating the image processing apparatus  1 . The NVM  13  may retain these programs and data as firmware. In this case, the controller  10  may not include the HDD  14 . 
     The following description assumes that the NVM  13  retains programs and data for operating the image processing apparatus  1  as firmware. 
     When the controller  10  is powered on, the CPU  11  reads (loads) a program necessary for operating the image processing apparatus  1  from the NVM  13  into the RAM  12 . Then, the controller  10  executes the program from a predetermined address, thereby activating (booting up) the image processing apparatus  1 . 
     &lt;Incorporated Functions  200  and Plug-in Functions  300 &gt; 
       FIG. 3  explains functions included in the image processing apparatus  1 . 
     The image processing apparatus  1  is capable of executing incorporated functions  200  and plug-in functions  300 . 
     The incorporated functions  200  are standard functions that are incorporated into the image processing apparatus  1  in advance. For example, the incorporated functions  200  include a copy function (indicated as “Copy” in  FIG. 3 ; the same applies hereinafter), a scan function (Scan), a print function (Print), a facsimile function (Facsimile Transmission), another function 1 (Function 1), and another function 2 (Function 2). These functions are functions that may be executed by the image forming part  20 , the image reading part  30 , and the like included in the image processing apparatus  1 , and are closed within the image processing apparatus  1 . 
     While the number of incorporated functions  200  is six in this example, this is illustrative only. The number of incorporated functions  200  may be another number. 
     The plug-in functions  300  are functions added by the user. In  FIG. 3 , the plug-in functions  300  are Plug-ins 1 to N (N is an integer not less than one) each having an independent function. The plug-in functions  300  incorporated by the user may be either only one function, for example, Plug-in 1, or multiple functions. Plug-ins 1 to N will be referred to as plug-in when these individual plug-ins are not differentiated from one another. 
     A plug-in is a program written in a programming language such as Java® or JavaScript®, which is added to the image processing apparatus  1  and executed to customize the functions of the image processing apparatus  1 . 
     A program describing a plug-in may be stored in the HDD  14 , or may be acquired via the communication line  2 . 
     An example of each of the plug-in functions  300  will be described below. 
     Consider the case of executing a series of processes (services) including reading an image as image data by the image reading part  30  of the image processing apparatus  1 , transmitting the image data to the server apparatus  5  located outside the image processing apparatus  1  via the transmitter/receiver  40 , converting the image data into document data by performing character recognition in the server apparatus  5 , and saving the document data in the server apparatus  5 . 
     The process of reading an image by the image reading part  30  is a process (service) using the scan function (Scan) of the image processing apparatus  1 . However, the process of converting image data into document data by performing character recognition in the server apparatus  5 , and saving the document data in the server apparatus  5  is a process that may not be executed by the image processing apparatus  1  alone. The process of converting image data into document data by performing character recognition in the server apparatus  5 , and saving the document data in the server apparatus  5  is herein referred to as cloud service. 
     The series of processes mentioned above are executed through corporation between the image processing apparatus  1 , and the server apparatus  5  and the like located outside the image processing apparatus  1  and connected to the image processing apparatus  1  by the communication line  2 . 
     Accordingly, the process (service) of reading an image by the image reading part  30  as image data and transmitting the image data via the transmitter/receiver  40 , and the process (cloud service) of converting received image data into document data by performing character recognition in the server apparatus  5  and saving the document data in the server apparatus  5  are defined as a plug-in, so that these services are executed in succession. 
     That is, an example of each of the plug-in functions  300  illustrated herein is a composite service. 
     As described above, in addition to incorporated functions, the image processing apparatus  1  is required to provide services in which the incorporated functions and functions provided outside the image processing apparatus  1  are performed in cooperation with each other. 
     As mentioned above, the image processing apparatus  1  includes the incorporated functions  200  and the plug-in functions  300 . At this time, there are cases where it is necessary to charge for each individual one of the incorporated functions  200  and the plug-in functions  300 . 
     In such cases, for the incorporated functions  200 , the image processing apparatus  1  is provided with information for managing charging for these functions (incorporated charging information) in advance. 
     However, for the plug-in functions  300 , information for managing charging that corresponds to each of Plug-ins 1 to N (Additional Charging Information 1 to Additional Charging Information N: N is an integer not less than one) is added when adding Plug-ins 1 to N to the image processing apparatus  1 . Additional Charging Information 1 to Additional Charging Information N will be referred to as additional charging information in cases where these individual pieces of additional charging information are not differentiated from one another. 
     As illustrated in  FIG. 3 , the image processing apparatus  1  includes incorporated charging information with respect to the incorporated functions  200 , as charging information corresponding to the incorporated functions  200  as a whole. In this case, it is assumed that incorporated charging information is retained in the NVM  13  illustrated in  FIG. 2 . Further, a charging counter specified in the incorporated charging information (see  FIG. 4  described later) is added up each time a given one of the incorporated functions  200  is used. Incorporated charging information may be retained on the HDD  14 . In this way, incorporated charging information is desirably retained in a non-volatile memory that retains data even without supply of power. Although incorporated charging information may be retained in the RAM  12  that is a volatile storage medium, in this case, data may be lost in the event of, for example, instantaneous power interruption. The following description assumes that the incorporated charging information is retained in the NVM  13 . 
     Additional charging information is set for each individual plug-in. Accordingly, as illustrated in  FIG. 3 , in the case of Plug-ins 1 to N, Additional Charging Information 1, Additional Charging Information 2, and Additional Charging Information N are set in correspondence to Plug-in 1, Plug-in 2, and Plug-in N, respectively. 
     Then, each time a plug-in is added, the corresponding additional charging information is added. Additional charging information is also desirably retained in a non-volatile storage medium. In a case where it is not possible to retain additional charging information owing to the limited capacity of the NVM  13 , additional charging information may be retained on the HDD  14 . The following description assumes that additional charging information is retained on the HDD  14 . 
     Incorporated charging information and additional charging information (Additional Charging Information 1 to Additional Charging Information N) are herein collectively referred to as charging information  400 . 
     Additional charging information is contained in a program describing a plug-in. When adding a plug-in upon a user&#39;s instruction from the UI part  50 , a program describing the plug-in is read into the RAM  12 , thereby adding the corresponding plug-in function to the image processing apparatus  1 . Then, additional charging information corresponding to the plug-in is written onto the HDD  14  when the plug-in is read into the RAM  12  and initialized. 
     The search direction illustrated in  FIG. 3  will be described later. 
       FIG. 4  illustrates an example of incorporated charging information corresponding to the incorporated functions  200 . 
     Incorporated charging information is a so-called charging table, which includes job name, Parameter 1, Parameter 2, unit price (yen), unit, and charging counter. 
     Examples of job name include “Copy”, “Scan”, “Print”, “Facsimile Transmission”, “Function 1”, and “Function 2” of the incorporated functions  200 . 
     Parameter 1 represents, for example, color mode, which is “Monochrome” or “Color”. Parameter 2 represents, for example, paper size, which is “A4”, “A3”, or “Other”. While the parameters used are Parameter 1 and Parameter 2 in this case, because parameters are items that have to be taken into account when determining the unit price, other parameters may be included. Further, each of the parameters may specify information other than that mentioned above. 
     Unit price (yen) represents the amount charged per unit. 
     Examples of unit include “Page” and “Job”. That is, in a case where the unit is “Page”, the unit price (yen) is charged for each “Page”. In a case where the unit is “Job”, the unit price (yen) is charged for each “Job”. 
     Charging counter represents an area (address) of a storage medium (memory) where the cumulative total of units is retained. For example, in a case where the job “Copy” is performed for 10 pages with Parameter 1 (color mode) being “Monochrome” and Parameter 2 (paper size) being “A4”, a charging counter C01 is counted up by “10”. In this case, the count-up value of the charging counter C01 (10)×the unit price of 10 yen=100 yen is charged to the user. 
     In  FIG. 4 , “*” means “any”. For example, in the case of the job name (abbreviated as job; the same applies hereinafter) “Scan”, if Parameter 1 (color mode) is “Monochrome”, a charging counter C 07  is counted up by “1” for each “Page”, irrespective of whether Parameter 2 (paper size) is “A4”, “A3”, or “Other”. Then, the count-up value (1)×the unit price of 10 yen=10 yen is charged to the user. 
     In the case of the job “Function 1”, the unit price of 20 yen is charged for each “Page”, irrespective of whether Parameter 1 (color mode) is “Monochrome” or “Color”, and irrespective of whether Parameter 2 (paper size) is “A4”, “A3”, or “Other”. 
     In the case of the job “Function 2”, the unit price of 20 yen is charged for each “Job”, irrespective of whether Parameter 1 (color mode) is “Monochrome” or “Color”, and irrespective of whether Parameter 2 (paper size) is “A4”, “A3”, or “Other”. 
     As mentioned above, charging for the incorporated functions  200  is managed by referencing the incorporated charging information illustrated in  FIG. 4 , and charging the corresponding unit price (yen) on the basis of Parameter 1, Parameter 2, and unit for the corresponding job name. 
       FIGS. 5A and 5B  each illustrate an example of Additional Charging Information 1 corresponding to Plug-in 1. In the illustrated example, the charging condition differs between  FIG. 5A  and  FIG. 5B . 
     Additional Charging Information 1 corresponding to Plug-in 1 is a so-called charging table, which includes plug-in name, job name, Parameter 1, Parameter 2, unit price (yen), unit, charging counter, and charging condition. 
     Plug-in 1 will be described below as a composite service described as an example of the plug-in functions  300 . That is, Plug-in 1 is a composite service including a service (Service 1) which reads an image by the image reading part  30  as image data, and transmits the image data by the transmitter/receiver  40 , and a cloud service (Service 2) which performs image recognition on image data received by the server apparatus  5  to convert the image data into document data, and saves the document data. 
     In Plug-in 1, Service 1 corresponds to the job “Scan” and the job “Facsimile Transmission” of the image processing apparatus  1 . Accordingly, the charge to the user for Service 1 has to be paid to the provider of Service 1 such as the owner or administrator of the image processing apparatus  1 . 
     The charge for Service 2 (cloud service) has to be paid to the provider of the cloud service. 
     That is, Service 1 and Service 2 have to be charged for separately. 
     Plug-in 1 is a multi-job made up of the jobs “Service 1” and “Service 2”. As is apparent from the additional charging information for Plug-in 1 illustrated in  FIGS. 5A and 5B , Service 1 and Service 2 are separately charged for. 
     Since Parameters 1 and 2, unit price (yen), and unit are the same as those of the incorporated charging information illustrated in  FIG. 4 , a description of these items will be omitted. 
     A charging counter P1-C01 for Service 1 and a charging counter P1-C02 for Service 2 are provided in the HDD  14  of the controller  10 . 
     In  FIG. 5A , it is specified that the charging condition is an AND condition (*) of Service 1 and Service 2. Suppose that a case where Service 1 succeeds is defined as “1”, and a case where Service 1 fails is defined as “0”, and further, a case where Service 2 succeeds is defined as “1”, and a case where Service 2 fails is defined as “0”. In a case where Service 1succeeds (“1”), and Service 2 succeeds (“1”) (Service 1*Service 2=1), the charging counter P1-001 for Service 1 and the charging counter P1-C02 for Service 2 are each counted up by “1”. 
     That is, the count-up value of the charging counter P1-001 (1)×the unit price of 20 yen=20 yen, and the count-up value of the charging counter P1-C02 (1)×the unit price of 30 yen=30 yen, that is, a total of 50 yen is charged to the user. 
     Then, the count-up value of the charging counter P1-001 (1)×the unit price of 20 yen=20 yen is paid to the provider of Service 1, and the count-up value of the charging counter P1-C02 (1)×the unit price of 30 yen=30 yen is paid to the provider of Service 2. 
     In a case where Service 1 fails (“0”), or in a case where Service 1 succeeds (“1”) but Service 2 fails (“0”), the charging counter P1-C01 and the charging counter P1-C02 are not counted up. 
     Unless Plug-in 1 succeeds, the user is not charged, and neither the provider of Service 1 nor the provider of Service 2 is paid. 
     The above-mentioned example assumes a case where the output of Service 1 becomes the input of Service 2 and then Service 2 is performed. However, in a case where Service 1 and Service 2 are performed in parallel, the charging counter P1-C01 and the charging counter P1-C02 are not counted up also in a case where Service 1 fails (“0”) but Service 2 succeeds (“1”). 
     In  FIG. 5B , it is specified that the charging condition is an OR condition (+) of Service 1 and Service 2. In this case, in a case where Service 1 succeeds (“1”) but Service 2 fails (“0”), only the charging counter P1-001 is counted up by “1”. 
     Therefore, although the function of Plug-in 1 is not accomplished, because Service 1 has been used, the count-up value of the charging counter P1-C01 (1)×the unit price of 20 yen=20 yen is charged to the user. 
     Then, the count-up value of the charging counter P1-C01 (1)×the unit price of 20 yen=20 yen is paid to the provider of Service 1. No payment is made to the provider of Service 2. 
     In this case, no output is obtained by the user. Accordingly, it may be made possible for the user to take the output of Service 1 that has succeeded (“1”), which is the scanned image data in the above-mentioned example, from the image processing apparatus  1 . 
     In a case where Service 1 and Service 2 are performed in parallel, if Service 1 fails (“0”) but Service 2 succeeds (“1”), only the charging counter P1-C02 is counted up by “1”. 
     Therefore, although Plug-in 1 has not succeeded, because Service 2 has been used, the count-up value of the charging counter P1-C02 (1)×the unit price of 30 yen=30 yen is charged to the user. 
     Then, the count-up value of the charging counter P1-C02 (1)×the unit price of 30 yen=30 yen is paid to the provider of Service 2. No payment is made to the provider of Service 1. 
     In the above-mentioned above, when adding Plug-in 1 to the image processing apparatus  1 , Additional Charging Information 1 is also added. 
     If Additional Charging Information 1 is not added, the charging for Plug-in 1 has to be managed by using the incorporated charging information illustrated in  FIG. 4 . 
     At this time, for example, in the case of simultaneously performing the jobs “Scan”, “Copy”, and “Facsimile Transmission” included in incorporated charging information, charges may be made individually for these jobs in the incorporated charging information illustrated in  FIG. 4  and summed. 
     However, in the case of adding the above-mentioned composite service to the image processing apparatus  1  as a plug-in, this is handled by rewriting incorporated charging information. Then, when returning to the original service, the incorporated charging information has to be returned to the original state. 
     Further, in the case of providing multiple services, included those provided by the image processing apparatus  1  and those provided from the outside of the image processing apparatus  1 , it is difficult to charge for each corresponding service provider separately. 
     That is, by adding additional charging information when adding a plug-in as mentioned above, charging may be managed without being restricted by pre-defined incorporated charging information. 
     In the case of a multi-job including multiple jobs, charging may be set finely by using a charging condition that combines a success (“1”) and a failure (“0”). 
       FIG. 6  illustrates an example of Additional Charging Information 2 corresponding to Plug-in 2. 
     Plug-in 2 is configured as a composite service including jobs “Service 3”, “Service 4”, and “Service 5”, that is, a multi-job. 
     The charging condition is, for example, an OR condition (+) of an AND condition (*) of Services 3 and 4, and Service 5. 
     For example, suppose that the job “Service 3” is the job “Service 1” of Plug-in 1, and that the job “Service 4” is the job “Service 2” of Plug-in 1. That is, the Service 3 is a service that reads an image by the image reading part  30  as image data, and transmits the image data by the transmitter/receiver  40 , and Service 4 is a cloud service (Service 2) which performs image recognition on image data received by the server apparatus  5  to convert the image data into document data, and saves the document data. Further, Service 5 is the service (installation fee) of a shop in which the image processing apparatus  1  is installed. 
     In this example, in a case where each of Service 3 and Service 4 succeeds (“1”), charging counters P2-C01 and P2-C02 are counted up by “1”. In a case where one or both of Service 3 and Service 4 fail (“0”), the charging counters P2-C01 and P2-C02 are not counted up. 
     Irrespective of whether one or both of Service 3 and Service 4 succeed (“1”) or fail (“0”), because the image processing apparatus  1  has been used, a charging counter P2-C03 is counted up by “1”. 
     In a case where each of Service 3 and Service 4 succeeds (“1”), the count-up value of the charging counter P2-C01 (1)×the unit price of 20 yen=20 yen, the count-up value of the charging counter P2-C02 (1)×the unit price of 30 yen=30 yen, and the count-up value of the charging counter P2-C03 (1)×the unit price of 10 yen=10 yen, that is, a total of 60 yen is charged to the user. 
     Then, the count-up value of the charging counter P2-C01 (1)×the unit price of 20 yen=20 yen is paid to the provider of Service 3, the count-up value of the charging counter P2-C02 (1)×the unit price of 30 yen=30 yen is paid to the provider of Service 4, and the count-up value of the charging counter P2-C03 (1)×the unit price of 10 yen=10 yen is paid to the provider of Service 5. 
     In a case where Service 3 fails (“0”), or Service 3 succeeds (“1”) but Service 4 fails (“0”), the count-up value of the charging counter P2-C03 (1)×the unit price of 10 yen=10 yen is charged to the user, and this 10 yen is paid to the provider of Service 5. 
       FIG. 7  illustrates an example of Additional Charging Information 3 corresponding to Plug-in 3. 
     There is an overlap between the job “Scan” in Additional Charging Information 3 and the job “Scan” in the incorporated charging information illustrated in  FIG. 4 . For the job “Scan” of Plug-in 3, in a case where Parameter 1 (color mode) is “Monochrome”, the unit price per page is 20 yen irrespective of whether Parameter 2 (paper size) is “A4”, “A3”, or “Other”, and in a case where Parameter 1 (color mode) is “Color”, the unit price per page is 20 yen irrespective of whether Parameter 2 (paper size) is “A4”, “A3”, or “Other”. The job “Scan” of Plug-in 3 differs from the job “Scan” in the incorporated charging information illustrated in  FIG. 4  in this respect. 
     That is, “Plug-in 3” represents a case where a unit price (yen) different from the unit price (yen) specified in the job “Scan” of the incorporated charging information is provided. 
     Charging counters C07 and C08 are the same as in the case of the job “Scan” of the incorporated charging information. 
     In this case, as will be described later, for a job “Scan” designated by the user, Additional Charging Information 3 corresponding to Plug-in 3 is used in precedence to the job “Scan” of the incorporated charging information. 
     That is, by providing a plug-in like Plug-in 3, charging may be managed in such a way as if the incorporated charging information is rewritten, without actually rewriting the incorporated charging information. 
     While Plug-in 3 includes only the job “Scan”, Plug-in 3 may be a multi-job in which jobs “Copy” and “Facsimile Transmission” are executed in succession, and the unit price may be set to a value lower than that in the incorporated charging information. A discounted unit price may be set in the case of using multiple jobs simultaneously. 
       FIG. 8  illustrates an example of Additional Charging Information 4 corresponding to Plug-in 4. 
     This is an extension of Plug-in 1 illustrated in  FIGS. 5A and 5B . That is, the job name, Parameter 1, Parameter 2, unit price (yen), unit, charging counter, and charging condition are the same as those of Plug-in 1 illustrated in  FIGS. 5A and 5B . Loss counter and loss condition are added to these pieces of information. In accordance with Plug-in 4, charging counters are indicated as P4-C01 and P4-C02. 
     The case of the composite service described above with reference to  FIGS. 5A and 5B  will be described as an example. Service 1 of Plug-in 4 is a service that reads an image by the image reading part  30  as image data, and transmits the image data by the transmitter/receiver  40 , and Service 2 is a cloud service that performs image recognition on image data received by the server apparatus 5 to convert the image data into document data, and saves the document data. 
     Further, as in the case illustrated in  FIG. 5A , the charging condition is an AND condition (*) of Service 1 and Service 2. At this time, in a case where Service 1 succeeds (“1”) but Service 2 fails (“0”), no charge is made to the user, nor is there any payment to the provider of Service 1 that has succeeded (“1”). 
     In this case, Plug-in 4 does not succeed owing to the failure of Service 2 (“0”). Therefore, the charge to the user for Service 1 is passed on to the provider of Service 2 that has failed (“0”). 
     Accordingly, a loss counter P4-L02 is provided for Service 2, and the loss condition is set as an AND condition (*) of Service 1 and a negation (NOT) of Service 2. That is, in a case where Service 1 succeeds (“1”) and Service 2 fails (“0”), the loss counter P4-L02 is counted up by “1”, and a charge is made to the provider of Service 2. That is, the provider of Service 2 is made to pay the count-up value of the loss counter P4-L02 (1)×the unit price of 20 yen of Service 1=20 yen. 
     In a case where Service 1 succeeds (“1”) and Service 2 succeeds (“1”), the loss counter P4-L02 is not counted up. 
       FIG. 9  illustrates an example of the configuration of various units (functional blocks) of the controller  10 . 
     The controller  10  includes a plug-in adding unit  101 , an additional-charging-information adding unit  102 , a plug-in updating unit  103 , an additional-charging-information updating unit  104 , a plug-in deleting unit  105 , an additional-charging-information deleting unit  106 , a job management unit  107 , a charging information search unit  108 , a job search unit  109 , and a charging unit  110 . The plug-in adding unit  101  is an example of a plug-in adding section that adds a plug-in. The additional-charging-information adding unit  102  is an example of an additional-charging-information adding section that adds additional charging information as a plug-in is added. The plug-in updating unit  103  is an example of a plug-in updating section that updates a plug-in. The additional-charging-information updating unit  104  is an example of an additional-charging-information updating section that updates additional charging information as a plug-in is updated. The plug-in deleting unit  105  is an example of a plug-in deleting section that deletes a plug-in. The additional-charging-information deleting unit  106  is an example of an additional-charging-information deleting section that deletes additional charging information as a plug-in is deleted. The job management unit  107  is an example of a job management section that manages a job. The charging information search unit  108  is an example of a charging information search section that searches for the presence of additional charging information when a job is submitted. The job search unit  109  is an example of a job search section that searches for a job in incorporated charging information or additional charging information. The charging unit  110  is an example of a charging section that counts up a charging counter (or loss counter) on the basis of charging information. 
     The user instructs a plug-in to be added, updated, or deleted via the UI part  50 . Further, the user designates a job via the UI part  50 . 
     In the case of adding a plug-in, the plug-in adding unit  101  causes a program describing a designated plug-in to be read into the RAM  12  via the HDD  14  or the communication line  2  and executed. At this time, the additional-charging-information adding unit  102  causes additional charging information to be set on the HDD  14  by the program describing the designated plug-in. Then, the total number of plug-ins is changed to a number equal to the total number of plug-ins before addition of this plug-in plus “1”. 
     In the case of updating a plug-in, the plug-in updating unit  103  causes a program for updating a designated plug-in to be read via the HDD  14  or the communication line  2  and executed, thereby updating the designated plug-in. At this time, the additional-charging-information updating unit  104  causes additional charging information on the HDD  14  to be updated by the program for updating the designated plug-in. 
     In the case of updating a plug-in, additional charging information may be stored as it is, or additional charging information may be rewritten. In the case of rewriting additional charging information, pre-update data may be deleted and written over with new data, or pre-update data may be converted into post-update data. Conversion from pre-update data to post-update data may be programmed to be executed when a plug-in is initialized. 
     In the case of deleting a plug-in, the plug-in deleting unit  105  causes a program for deleting a designated plug-in to be read via the HDD  14  or the communication line  2  and executed, thereby deleting the designated plug-in. At this time, the additional-charging-information deleting unit  106  causes additional charging information on the HDD  14  to be deleted by the program for deleting the designated plug-in. Then, numbers assigned to individual plug-ins are set again in the order in which the plug-ins are added, and the total number of plug-ins is set to a number equal to the total number of plug-ins before deletion of this plug-in minus “1”. 
     A plug-in may not be deleted but instead, the user may be made unable to designate the plug-in with the UI part  50 . 
     The job management unit  107  manages a job. When a job and associated Parameters 1 and 2 are designated (submitted) by the user, the submitted job is executed in a case where the job exists in incorporated charging information corresponding to the incorporated functions  200  or in additional charging information corresponding to the plug-in functions  300 . 
     The charging information search unit  108  searches for the presence of additional charging information. 
     In a case where additional charging information is determined to exist as a result of the search by the charging information search unit  108 , the job search unit  109  searches for the presence of the submitted job in the additional search information. In a case where there is no additional charging information, the job search unit  109  searches for the presence of the corresponding job in the incorporated charging information. 
     In a case where the submitted job exists in the additional charging information or incorporated charging information, the job management unit  107  is notified to that effect, and in accordance with the designated Parameters 1 and 2, the charging unit  110  is notified of the corresponding unit, charging condition, and charging counter. In a case where the loss condition is set for the job in question, the charging unit  110  is notified of the loss condition and the loss counter. 
     In a case where a plug-in is designated, multiple jobs included in the plug-in are executed as a multi-job. 
     In a case where the submitted job exists in neither the incorporated charging information nor the additional charging information, the job management unit  107  is notified to that effect. 
     The charging unit  110  counts up the charging counter as the job is executed, on the basis of the unit and the charging condition that have been notified. In a case where the loss condition is set, the loss counter is counted up on the basis of the loss condition. 
       FIG. 10  is a flowchart of a charging process executed by the controller  10 . 
     In this case, it is assumed that N plug-ins are added to the image processing apparatus  1  by the plug-in adding unit  101  of the controller  10  (plug-in adding function). It is also assumed that in accordance with the addition of N plug-ins, N pieces of additional charging information corresponding to the N plug-ins are added to the image processing apparatus  1  by the additional-billing-information adding unit  102  of the controller  10  (additional-charging-information adding function). 
     It is determined by the job management unit  107  of the controller  10  whether or not a job has been submitted by the user (step  11 , which is indicated as S 11  in  FIG. 10 ; the same applies hereinafter). 
     In a case where the determination is negative (No) in step  11 , that is, in a case where a job has not been submitted, the processing returns to step  11  to wait for submission of a job. 
     In a case where the determination is positive (Yes) in step  11 , that is, in a case where a job has been submitted, it is determined by the charging information search unit  108  of the controller  10  whether or not additional charging information exists (step  12 ) (charging information search function). The processing in a case where the determination is negative (No) in step  12  will be described later. 
     In a case where the determination is positive (Yes) in step  12 , that is, in a case where additional charging information exists, the total number of pieces of additional charging information (N) is read and put into a variable X by the job search unit  109  of the controller  10  (step  13 ). 
     Then, it is determined by the job search unit  109  whether or not the submitted job exists in the job name portion of Additional Charging Information X (step  14 ) (job search function). The processing in a case where the determination is negative (No) in step  14  will be described later. 
     In a case where the determination is positive (Yes) in step  14 , that is, in a case where the submitted job exists in the job name portion of Additional Charging Information X, the job is executed under management of the job management unit  107  of the controller  10  (image processing function), and a charge is made for the job by the charging unit  110  of the controller  10  on the basis of Additional Charging Information X (step  15 ) (charging function). 
     In this case, a search for the submitted job is not made with respect to additional charging information having a number lower than X and incorporated charging information. 
     In a case where the determination is negative (No) in step  14 , that is, in a case where the submitted job does not exist in Additional Charging Information X, “1” is subtracted from the variable X (step  16 ). Then, it is determined whether or not X is greater than 0 (X&gt;0) (step  17 ). The processing in a case where the determination is negative (No) in step  17  will be described later. 
     In a case where the determination is positive (Yes) in step  17 , that is, in a case where X is greater than 0 (X&gt;0), the processing returns to step  14 , and it is determined whether or not the submitted job exists in Additional Charging Information X. 
     In a case where the determination is negative (No) in step  12 , that is, in a case where there is no additional charging information, it is determined by the job search unit  109  of the controller  10  whether or not the submitted job exists in the incorporated charging information (step  18 ). The processing in a case where the determination is negative (No) in step  18  will be described later. 
     In a case where the determination is positive (Yes) in step  18 , that is, in a case where the submitted job exists in the job name portion of the incorporated charging information, the job is executed under management of the job management unit  107  of the controller  10 , and a charge is made for the job by the charging unit  110  of the controller  10  on the basis of the incorporated charging information (step  19 ). 
     In a case where the determination is negative (No) in step  17 , that is, in a case where X is zero, in step  18 , it is determined by the job search unit  109  of the controller  10  whether or not the submitted job exists in the job name portion of the incorporated charging information. 
     Then, in a case where the determination is negative (No) in step  18 , that is, in a case where the submitted job does not exist in the job name portion of the incorporated charging information, execution of the job is disabled by the job management unit  107  (step  20 ). In this case, in the image processing apparatus  1 , the job is not executed (disabled), and through an “Error” indication on the UI part  50 , alarm sound, or the like, the user is notified of the fact that an expected job has been requested for. 
     As described above, in the flowchart illustrated in  FIG. 10 , in a case where a plug-in has been added, a job is searched for in additional charging information, in precedence to incorporated charging information. 
     In this way, even when there is an overlap of job names between additional charging information and incorporated charging information, additional charging information is given precedence in the search. 
     That is, although the job “Scan” of Additional Charging Information 3 for Plug-in 3 illustrated in  FIG. 7  and the job “Scan” of the incorporated charging information illustrated in  FIG. 4  are the same, the job “Scan” of Additional Charging Information 3 for Plug-in 3 is used. 
     Even for the job “Scan” of Plug-in 3, the same charging counters C07 and C08 as those used for the job “Scan” of the incorporated charging information are used. As such, Additional Charging Information 3 of Plug-in 3 is equivalent to information obtained by partially overwriting the incorporated charging information. 
     As illustrated in  FIGS. 3 and 10 , even in a case where there are multiple pieces of additional charging information (Additional Charging Information 1 to Additional Charging Information N), as indicated by the search direction in  FIG. 3 , the multiple pieces of additional charging information are searched for a job in order starting from the highest-numbered piece of additional charging information (from the N side). Therefore, even if the same job name is set in multiple pieces of additional charging information, the highest-numbered piece of additional charging information is given precedence. 
     At this time, supposing that the higher a plug-in and a piece of additional charging information are numbered, the later the plug-in and the piece of additional charging information are added, that is, the more recently the plug-in and the piece of additional charging information are added, the most recently added piece of additional charging information is used. 
     Further, by deleting a plug-in in additional charging information for which an overlapping job name exists in incorporated charging information, the incorporated charging information is used. 
     In a case where incorporated charging information and additional charging information are set so that there is no overlap of job names between the two pieces of information, the job search by the charging information search unit  108  may be started from either one of incorporated charging information and additional charging information. 
     The following configuration may be employed in a case where it is not desired to permit changes to incorporated charging information. That is, when adding a plug-in, it is determined whether or not there is an overlap of job names between additional charging information for the plug-in and the incorporated charging information, and if there is an overlap, this is regarded as an error and addition of the plug-in is disabled. 
     Further, at the beginning or end of a predetermined term, the count-up value of the charging counter and, in a case where the loss counter is included, the count-up value of the loss counter are counted, and the results are charged to the user and the like. At this time, the count of the charging counter, and in a case where the loss counter is included, the count of the loss counter may be reset. 
     The foregoing description of the exemplary embodiment of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiment was chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.