Information processing apparatus and method therefor

Abstract: A printer that is instructed to perform a printing job analyzes the job and determines a process to be executed, and identifies the performances of the printer and other printers and their states. Based on the results of the analysis and on the states of the printers, the printer decides whether it should not perform a process or whether the process should be performed by another printer. It also decides whether a process is unnecessary or is not permitted for a user, and halts the performance of such a process. When it determines that a process should be performed by another printer, it transfers the job to that printer.

Description: The present invention relates to an information processing apparatus that is connected to another device, and a method therefor. In order to execute various processes in an environment wherein a plurality of devices are available, usually a user selects a suitable device for each process, and then instructs the selected devices to execute the corresponding processes. For example, when information prepared by a computer, or information read by a scanner is to be transmitted in a printed form to a person at a remote location, a printer belonging to the person connected via a network is designated and printing can be performed by the designated printer. However, according to the conventional technique, when a process that is instructed can not be performed at all, or is performed incompletely because a selected device malfunctions, or does not process the required functions, the process assigned to the device can not attain the objective of the user. To resolve this problem, the user must confirm the results of the processing and must send an instruction to another device to perform the same process or an additional process. Even when there is a more suitable device than the device selected by a user to attain the processing objective, only the device that is selected by the user can handle the processing. Furthermore, some processes are required only for a specific user, and their performance may be unnecessary or inappropriate for a current user. EP-A-0656581 discloses a data processing system network including a number of printing units connected together in a local area network. The printer units are ranked relative to each other based on proximity to a specified location on the network, relative speed of the printer unit and compatibility of the printer unit with the output of a job. A list of the printing units is then provided setting out the determined relative proximity and the determined time for performing the job. EP-A-0611657 discloses a printer arranged to receive data from an external equipment, to analyse the data to determine the print control program for the data and to carry out print processing using the print control program. One aspect of the present invention provides an information processing apparatus that can reduce the operating load placed on a user to achieve the object of the processing, and a control method therefor. Another aspect of the present invention provides an information processing apparatus that can utilize an available, optimal device resource, and a control method therefor. An additional aspect of the present invention provides an information processing apparatus that can skip the performance of an unnecessary or inadequate process, and a control method therefor. According to a first aspect of the present invention there is provided an information processing apparatus comprising: reception means for receiving job information; analysis means for analysing said job information to determine the type of the job and the content of the data to be processed; decision means for specifying a process to be performed in accordance with the type of the job determined by said analysis means; and execution means for executing said process specified by said decision means, characterised by, identification means for identifying a current user of: determination means for, based on the content of the data analysed by said analysis means, determining whether or not said process is to be performed for the current user; and halting means for halting the performance of said process in the event that said determination means determines that said process should not be performed for the current user. According to a second aspect of the present invention there is provided an information processing method comprising: a reception step of receiving job information; an analysis step of analysing said job information to determine the type of the job and the content of the data to be processed; a decision step of specifying a process to be performed in accordance with the type of the job determined at said analysis step; and an execution step of executing said process specified at said decision step, characterised by, an identification step of identifying a current user; a determination step of, based on the content of the data analysed at said analysis step, determining whether or not said process is to be performed for the current user; and a halting step of halting the performance of said process in the event that it is determined at said determination step that said process should not be performed for the current user. Embodiments of the present invention will now be described with reference to the accompanying drawings, in-which: Fig. 1 is a block diagram illustrating the arrangement of an information processing system according to a first comparative example of the present invention; Fig. 2 is a diagram illustrating the functional arrangement according to the first comparative example; Fig. 3 is a diagram illustrating the hardware arrangement of the individual units according to the first comparative example; Fig. 4 is a flowchart showing the processing performed for the first comparative example; Fig. 5 is a diagram showing a process for selecting an optimal printer from a plurality of printers and performing a printing job with it; Fig. 12 is a flowchart showing the processing performed in a first embodiment; Fig. 13 is a table containing remarks for determining whether or not an advance notice should be transmitted in consonance with job types and conditions; Figs. 14A and 14B are respectively diagrams of a case where a user is informed in advance of information to be filed and a case where unnecessary information is abandoned; Fig. 15 is a flowchart showing the processing for a second comparative example; Fig. 16A is a diagram showing the transmission of information for the second comparative example; Fig. 16B is a diagram showing the transmission of information when an apparatus corresponding to the object of a job is not present; Fig. 17 is a diagram showing an example display for a window by which an optimal method is proposed to a user; Fig. 18 is a flowchart showing the detailed procedure for job execution; Fig. 19 is a diagram showing an example of classified information to be read; [First Comparative Example] Fig. 1 is a diagram illustrating a system arrangement according to a first comparative example in which a PC (Personal Computer) 101, a scanner 102, a color-printer 103 and a monochrome printer 104 are connected to a network. In this example, when an apparatus in a system wherein a plurality of apparatuses are connected together is instructed to execute a specific job, the apparatus analyzes the object of the job by examining its contents, and thus ascertains which job to execute. As a result of the analysis, the apparatus acquires necessary information concerning the job and thereafter executes it. If for the execution of a job there is available a more effective method or another and better apparatus than an instructed method or an assigned apparatus, an instruction is issued to the better apparatus or a instruction is issued to the better apparatus or a notice is transmitted to a user. to propose the use of the more effective method. Further, as a consequence of the examination of the contents of the job the instruction may be rejected. Job types are an operation input by a user, an execution of an instruction received from another apparatus, the acquisition of results by analyzing a job, or a job that is newly generated by an owned apparatus during an idling period. When, for example, a document is to be read by a scanner and printed by a printer, the following jobs are generated. (1) Analysis of the contents of an instruction that is transmitted from a user to a scanner and that is related to a document set in the scanner; (2) A reading and analyzation process for a document, and an instruction process for instructing a printer to print a document that has been read, both of which are generated by analyzing an instruction from a user that is received by the scanner (and the fact that the document has been set in the scanner). (3) Generation by the scanner of a printing instruction for a printer during the instruction process. (4) Generation of a printing process by the printer as a result of an analysis of the printing instruction received from the scanner. The procedures according to which a plurality of apparatuses execute the above described processes will be specifically described while referring to the drawings. Fig. 2 is a diagram illustrating the functional arrangement for performing the processing in this example. A job reception unit 201 receives a job from a user or another apparatus. The received job is registered in a job table. A job analysis unit 203 reads and analyses a job registered in the job table 202. Another apparatus information acquisition unit 204 acquires the attributes and the current states of the other apparatuses that are connected. A state determination unit 207 determines the state from the current states of the other apparatuses. An optimum planning unit 206 makes an optimal plan for the execution of a job. A job execution determination unit 207 determines whether a job should be executed, or when the job is to be executed, and determines whether an owned apparatus or another apparatus will execute the job. When another apparatus executes the job, another apparatus instruction unit 208 sends an instruction to another apparatus for the job execution. When the owned apparatus executes the job, a job execution unit 209 executes the job. An execution notification unit 210 notifies a user that the execution instruction has been issued to another apparatus. Fig. 3 is a diagram showing the hardware arrangement of the units that perform the processing in this example. An I/O 301 exchanges input/output data with external apparatuses. A CPU 302 executes a program and controls the individual units. A ROM 303 is used to store programs, which correspond to individual flowcharts that will be described later and which are to be executed by the CPU 302, and fixed data. A RAM 304 is used to temporarily store variables and intermediate data, such as the attributes and the current states of the other apparatuses acquired by the other apparatus information acquisition unit 204, that are generated during the processing. A program from an external source may be loaded into the RAM 304 and stored therein. Fig. 4 is a flowchart showing the processing performed for the first comparative example. At step S109, the contents of the job table are initialized. At step S110, in order to determine whether a job has been input, a check is performed to determine whether or not a job has been input by a user, a job has been input by a device that can be detected by the system, from results obtained by analyzing the job, or a new job has been generated by an owned apparatus during idling. When a job has been input, at step S111, the input job is added to the job table. At step S112, the job table is examined to determine whether there is job. If there is a job, at step S113 the job is extracted. At step S114 a received instruction is analyzed, and from the information thus obtained, the object of the job is acquired. At step S115, the analyzed instruction is employed to search for a job that is to be executed. At step S116 a job that is searched for at S115 is registered. At step S117 a check is performed to determine whether or not there is a job that has not yet been executed. If there is such a job, program control advances to step S118. At step S118 a check is performed to determine whether or not the job can be executed. When it is ascertained that the job can not be executed, program control returns to step S115 and a job that must be executed is searched for. At step S119 the job is executed and program control returns thereafter to step S117. If a user sends an instruction, for example, to read a document using a scanner and to print the document using a printer, it is assumed that, as a result of the analysis, the acquisition of a printed document is the object of a user. In this case, a document reading and analysis process, which is generated by analyzing information received by the scanner from the user, and a process for instructing a printer to print the document that has been read are searched for as jobs. Fig. 5 is a diagram showing a process for selecting from among a plurality of printers an optimal printer for performing printing. In Fig. 5, job information is input/transmitted as a command from a host computer or an instruction from a remote controller, or is obtained by analyzing a voice command issued by a user using natural language, or from bar code or a sentence read from a cover page. A device that has received the job information analyzes the job, and then selects a printer that can execute a process suitable for the job and outputs the data to the printer. Further, when there is an instruction for notification, the device selects an optimal medium and dispatches a notice thereto. Therefore, upon the receipt of a request from a user, the structure of the printer is referred to, and an appropriate printer is selected to perform the printing. At this time, in consonance with the situation, the processing can be allocated for a plurality of printers. Further, when there is an instruction for notification, an optimal medium is selected to dispatch a notification that the printing has been terminated along with the name of the printer that has performed the printing. A request submitted by a user concerns paper sizes, printing quality, colors and time limit (e.g., completion of printing by 5 o'clock). The printer configuration covers the printer types and the number of printers in the system, and their performances or their current statuses (whether the printers are normally operated, whether there is a printing queue, or whether paper or toner is insufficient). As for a medium and a method used for notification, a notification is transmitted by voice through a user's terminal or by telephone, or a notification message is transmitted to a pager, or a document describing the contents of a notification is transmitted by electronic mail or by facsimile. A situation where the individual units perform the processing shown in Fig. 5 will now be described while referring to the flowchart in Fig. 4. First, if, at step S110, an urgent instruction for outputting a specific document by five o'clock is transmitted to a host computer, at step S111 a job is added to a job table. At step S113, the job is extracted from the job table and at step S114 the received instruction is analyzed to obtain the object of the job. At step S115, the following jobs are searched for following the analysis of the instruction. (1) Acquisition of specifications (paper size, printing quality, color document, etc.) to be used for selecting a suitable printer for outputting a document, and of other information, such as time limit. (2) Selection from among the connected printers of a suitable printer for specifications (1). (3) Examination of the selected printer to determine whether or not any obstacle to printing output exists. (4) Output data to a selected printer. (5) Issuance of the selected printer and a notification that the data has been output. At step S116, the job found at step S115 is registered. The above process is repeated until, at step S117, there are no jobs to be searched for. At step S118 ε. check is instituted to determine whether or not the job can be performed. When the performance of the job is not possible, another job that must be executed is searched for. At S119, the jobs that have been searched for are sequentially performed. [First Embodiment] In this embodiment, before executing an instructed job an apparatus notifies a user of the contents of the job in accordance with the type or the condition of the job, or cancels a job that is determined to be unnecessary for a user. Fig. 12 is a flowchart showing the processing in this embodiment. Fig. 13 is a table showing, in consonance with the types and conditions of jobs, whether or not an advance notice should be issued. In Fig. 12, first, at step S120 a check is performed to determine whether or not a job constitutes necessary information for a user. If this is true, the processes at step S122 and the following steps are performed. If not, at step S127 the job is canceled. At step S122, information concerning the advance notice that corresponds to the job type and conditions in Fig. 13 is referred to, or the contents described on a cover sheet are analyzed to determine whether or not a notice for the process to be executed and the contents of the process should be issued to a user prior to the performance of the instructed-job. When advance notice is not required, program control moves to step S126. When advance notice is issued, program control moves to step S124, whereat a user is notified of the process to be performed and its contents. At step S125, the permission for the performance is received from a user, if necessary. At step S126 the job is performed. An explanation will be given for an example wherein, when the contents of a job call for the filing of information, an analysis of the system contents is performed prior to the filing of information, and information concerning the contents is transmitted to a user. Fig. 14A is a diagram showing an example wherein filing process information to be filed is transmitted to a user in advance. A file storage unit 1401, a scanner 1402 and a user terminal 1403 are provided in this system. The processing performed by the scanner 1402 in Fig. 14A will now be described while referring to the flowchart in Fig. 12. At step S120, since an instructed job is for information filing, it is assumed that this is necessary for a user. At step S122, while information designated in Fig. 13 is referred to, it is ascertained that a notice concerning information to be filed should be issued before the filing, and that the information should then be scanned. Program control then moves to step S124 to issue a notice concerning information to be filed. At step S124 the scanned information is transmitted to the user terminal 1403 via a network. At step S126, the filing job is performed. Next, an explanation will be given for an example wherein the information on the first page is received and analyzed, and when the information is not at all related to a user, the following information is not received. Fig. 14B is a diagram showing an example wherein whether or not a large amount of data to be received is required by a user is determined by examining the first page, and the receipt of information for the following pages is canceled. A reception PC 1404 and a transmission PC 1405 are provided. The processing performed by the PC 1404 in Fig. 14B will be explained while referring to the flowchart in Fig. 12. At step S120, the first page of the received data is analyzed. Since "For All Persons In Charge Of General Affairs Information" is entered on the first page, it is apparent that this document is not intended for a user who is not in charge of general affairs information, and the receipt of the information is determined to be unnecessary. Program control therefore moves to step S127. At step S127, the first page, which has been received, is canceled, and information for the second and the following pages is not received. The processing is thereafter terminated. [Second Comparative Example] Fig. 15 is a flowchart showing the processing for a second comparative example. In this example, an apparatus that is designated to perform the processing determines whether it or another apparatus should perform the processing, and as a result of the determination, either performs the processing itself or sends an instruction to another apparatus to perform the processing. At step S150 a check is performed to determine whether or not a job has been input. If a job has been input, at step S151 the input job is entered in a job table. At step S152 the job table is examined to determine whether any jobs have been entered. If they have been, at step S153 a job is extracted from the table. At step S154 a received instruction is analyzed and the object of the job is apprehended using the result. At step S155 the status of the apparatus is examined. At step S156 the status of another apparatus consonant with the object of the job is examined. When, as the result of a comparison of the statues of the locally owned apparatus and other apparatuses, it is found that the locally owned apparatus is optimal for the performance of the job, program control moves from step S157 to step S158, whereat it is determined that the owned apparatus will perform the job, and at step S159 the job is performed by the locally owned apparatus. If there is an optimal apparatus other than the locally owned apparatus that has capabilities consonant with the object of the job, program control goes from step S160 to step S161, whereat it is determined that the other apparatus will perform the job, and at step S162 the locally owned apparatus sends a job execution instruction to the apparatus having capabilities consonant with the object of the job. At step S163 the locally owned apparatus notifies a user that another apparatus has executed the job. If there is no apparatus having capabilities consonant with the object of the job, program control moves from step S160 to step S164, whereat a plan is prepared for the use of an optimal method that does not depart from the object of the job, and at step S165 the plan is proposed to a user. Fig. 16A is a diagram showing the transmission of information in this example. When a user of a PC 101 provides for a printer 104 a job for the output of information input by a scanner 102, and when the printer 104 has, for example, a printing malfunction, the printer ascertains that it can not perform the instructed job, and by communicating with other apparatuses, it finds a printer 103 that can perform the instructed job. Thus, the printer 104 determines that the printer 103 can act for it and perform the job, and so instructs the printer 103. Further, the printer 104 transmits a notification to the PC 101 to inform the user of the action that it took. In Fig. 16A, the process flow for these activities is described by arrows. The processes performed by the individual units in Fig. 16A will be described while referring to the flowchart in Fig. 15. First, the process performed by the scanner 102 will be explained. At step S150 the scanner 102 scans a document and acquires a job, information concerning which is to be transmitted to the printer 104. At step S151 this job is entered in the job table, and at step S153 the job is extracted. At step S154, the scanner 102 scans additional data and determines that the data is a job to be transmitted. At step S155, the scanner 102 ascertains that it is operating normally and that no problem exists in the scanning and transmission of instructed information. At step S156 it is ascertained that the job can not be transmitted to another apparatus. At step S157, since optimally the scanner 102 should execute the job, program control moves to step S158. At step S158 the scanner 102 determines that it should scan the information, and at step S159 the scanner 102 scans the information and transmits it to the printer 104 via a route 1 on a network. At step S150, the printer 104 receives the job for the output of received information. At step S151, the printer 104 enters the job in the job table, and at step S153, it extracts it. At step S154, the printer 104 ascertains from the information it receives that the information for the user from the PC 101 is to be printed on paper. At step S155 the printer 104 determines that it is out of toner and disables printing. At step S116 the printer 104 searches, via the network, for printers that can output the received information, and finds the printer 103 (route 2). Since, at step S157, the printer 104 can not execute the job, program control moves to step S160. Then, as at step S160 it is determined that the job for the output of information can be performed by the printer 103, at step S161 it is determined that the received information should be transmitted to the printer 103. At step S162 the printer 104 sends an instruction to the printer 103 to print the information that is to be received (route 3). At step S163 to notify the user that the instructed job was performed by the printer 103 electronic mail for the user is transmitted to the PC 101 (route 4). Fig. 16B is a diagram showing the transmission of information for a case where no apparatus having capabilities consonant with the object of a job is available. When the user of the PC 101 provides a job for the output to the printer 104 of information input by the scanner 102, and when the printer 104 disables printing because it is out of toner, the printer 104 communicates with other apparatuses, finds the printer 103, which is suitable for the object of the job, and determines its status. Then, since the printer 103 disables printing because it is out of paper, and as there is no other printer available that is suitable for the object of the job, a notice is issued to the PC 101 to propose to the user an optimal plan whereby when either the printer 103 or 104 has recovered to the printing enabled state, that printer will perform the job. In Fig. 16B, the process flow for these actions is indicated by arrows. The procedures performed by the individual units in Fig. 16B will be explained while referring to the flowchart in Fig. 15. The process whereby the scanner 102 reads a document and transmits it to the printer 104 is performed in the same manner as was described previously. At step S150 the printer 104 receives a job for the output of received information. At step S151, the job is entered in the job table, and at step S153, it is extracted. At step S154, the printer 104 ascertains from the information it receives that the information for the user from the PC 101 is to be printed on paper. At step S155, the printer 10 ascertains that it is out of toner and printing is disabled. At step S156, the printer 104 communicates across the network with other printers to find one that can print the received information. The printer 104 determines that the printer 103 has also disabled printing because it is out of paper, and that no other appropriate apparatus is available. Since, at step S157, the printer 104 disables the performance of the job, program control moves to step S160. At step S160, as there is no apparatus that can perform the job for the output of information, program control goes to step S164. At step S164, planning is begun to prepare an optimal method for performing the printing, which is the object of the job for the output of information. As a result, it is determined that the optimal method involves the return of a printing apparatus to its normal operating status. At step S165, the proposed method, whereby either the printer 104, which is out of toner, or the printer 103, which is out of paper, is to be recovered to the printing enabled state, is presented in a window shown in Fig. 17 for approval by the user. Then, a response received from the user, or a change in the printer status is identified as an input job, and the same processing is again performed. In this fashion, the object of the user can be achieved. [Second Embodiment] In the processing for the second comparative example, wherein, at steps S158 and S159, a locally owned apparatus determines to perform a job itself, and performs the job, before another instructed job is performed, the possibility of the occurrence of a problem is analyzed in detail, as in the procedures in Fig. 17. When it is ascertained, in consonance with environmental conditions or the status of the job performance, that performing the job is not advisable, a notice concerning the problem may be issued, or the request for the performance of the job may be rejected. When, for example, an instruction for printing a secret document is issued and a user is not identified as an authorized user, the instruction is rejected. Fig. 18 is a flowchart showing the detailed procedures for the performance of a job. At step S180 a check is performed to determine whether or not a problem exists concerning the performance of the instructed job. At step S181 no problem affecting the performance of a job is found, at step S185 the job is performed. If a problem is found, at step S182 a check is performed to determine whether a notice concerning the problem that was discovered should be transmitted to a user, or whether the request for the performance of the job should be rejected. When it is ascertained that such a notice should be transmitted to a user, at step S184 the notice is transmitted to the user. When it is determined that the request for the performance of the job is to be rejected, at step S186 the request for the performance of the job is rejected and a notice of rejection is transmitted to the user. An example wherein a user of the PC 101 issues an instruction to output to the printer 104 confidential information read by the scanner 102 will now be described while referring to Figs. 15 and 18. Fig. 19 is a diagram showing example confidential information to be read. First, at step S150 the scanner 102 scans available information and receives a job for the transmission of information to the printer 104. At step S151 the job is entered in the job table, and at step S153, the job is extracted therefrom. At step S154 data are scanned; and it is ascertained the data constitute a job to be transmitted. At step S155, the scanner 102 determines that it is operating normally and that there is no problem affecting the scanning and transmission of the instructed information. At step S155 it is ascertained that the job can not be transmitted to another apparatus. Since, at step S157, it is ascertained that optimally the scanner 102 should perform the job itself, program control moves to step S158, whereat the scanner 102 determines that it should scan the information itself. At step S180, as a result of the scanning of the information, it is determined to be confidential information whose output is inhibited. Since a problem affecting the performance of the job exists, at step S182 it is determined that the job (the scanning and the outputting of information) should be rejected. At step S183 the job is rejected, and program control thereafter goes to step S186. At step S186, a notice is issued that the job was rejected. Similarly, when a plurality of users employ the same system, the current user can be identified by a log-in name, and an instruction for the output of the contents of files belonging to other users can be rejected. When, instead of an instruction from a user, a document is received from the outside and the destination user differs from the current user, the output of the received document and the notice of the receipt of the document are rejected, or the processing is halted until the destination user begins to employ the system.

Claims: An information processing apparatus comprising: reception means (201) for receiving job information; analysis means (203) for analysing said job information to determine the type of the job and the content of the data to be processed; decision means (206) for specifying a process to be performed in accordance with the type of the job determined by said analysis means; and execution means (209) for executing said process specified by said decision means, characterised by , identification means for identifying a current user; determination means (207) for, based on the content of the data analysed by said analysis means (203), determining whether or not said process is to be performed for the current user; and halting means for halting the performance of said process in the event that said determination means determines that said process should not be performed for the current user. An information processing apparatus according to claim 1, wherein said determination means (207) is adapted to determine that said process should not be performed for the current user if the content of the data is unnecessary for the user. An information processing apparatus according to claim 1 or claim 2, wherein said determination means (207) is adapted to determine that said process should not be performed for the current user if the content of the data is not permitted to provide for the user. An information processing apparatus according to any preceding claim, wherein said determination means (207) is adapted to determine that said process should not be performed for the current user if the content of the data is for a user different from the current user. An information processing method comprising: a reception step of receiving job information; an analysis step (S114) of analysing said job information to determine the type of the job and the content of the data to be processed; a decision step (S115) of specifying a process to be performed in accordance with the type of the job determined at said analysis step (S114); and an execution step (S119) of executing said process specified at said decision step, characterised by , an identification step of identifying a current user; a determination step (S120, S121) of, based on the content of the data analysed at said analysis step, determining whether or not said process is to be performed for the current user; and a halting step (S127) of halting the performance of said process in the event that it is determined at said determination step that said process should not be performed for the current user. An information processing method according to claim 5, wherein in said determination step it is determined at said determination step that said process should not be performed for the current user if the content of the data is unnecessary for the user. An information processing method according to claim 5 or 6, wherein in said determination step it is determined at said determination step that said process should not be performed for the current user if the content of the data is not permitted to provide for the user. An information processing method according to any of claims 5 to 7, wherein in said determination step it is determined that said determination step that said process should not be performed for the current user if the content of the data is for a user different from the current user. A computer program including processor implementable instructions for controlling a processor means to perform all the steps of a method according to any of claims 5 to 8. A storage medium storing the computer program according to claim 9.

Inventors: FUJII KENICHI, IBARAKI SHOICHI, JEYACHANDRAN SURESH, MIKAME SHUICHI, SUDA ARUNA ROHRA, TAKAHASHI SATOMI, TAKAYAMA MASAYUKI, WAKAI MASANORI, FUJII, KENICHI, IBARAKI, SHOICHI, JEYACHANDRAN, SURESH, MIKAME, SHUICHI, SUDA, ARUNA ROHRA, TAKAHASHI, SATOMI, TAKAYAMA, MASAYUKI, WAKAI, MASANORI
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1997
Main classification: G06F3
IPC codes: G06F3, B41J29, G06F9