Information processing apparatus and method, and storage medium storing program for executing the method

Abstract: A computer analyzes a printing instruction received from the user, and recognizes situations, e.g., properties and status, of available printers. When analysis of the printing instruction results in that a process instructed from the user is to print a colored document and an apparatus instructed to execute the process is a monochromatic printer, and recognition of the situations results in that an available color printer exists, the computer determines that the instructed printing process of the colored document should be instructed to not the monochromatic printer having been instructed, but the color printer, and then issues to the user an inquiry of whether to print the document by the color printer.

Description: The present invention relates to an information processing system in which one apparatus is connected to other apparatus, and an information processing method. When various processes are executed in environment where a plurality of apparatus are available, it has hitherto been conventional that the user selects the apparatus suitable for each of processes to be executed, and instructs the selected apparatus to execute the corresponding process. In the case of printing information created by a computer, for example, if the computer is connected to a plurality of printers through a network or the like, the user can operate the computer to instruct the printer from which data is to be output, so that the data is printed by the specified printer. The above related art has however had a problem that if the specified apparatus cannot execute the instructed process at all or completely because of any failure or deficiency of any function, the process instructed to the apparatus cannot be achieved as intended by the user. For solving such a problem, it has been required for the user to confirm the result of the process and to instruct the same process or an additional process again to another apparatus. Further, even when there is another apparatus which is more suitable for achieving the intended process than the apparatus instructed by the user, the process can be executed by only the apparatus instructed by the user. EP-A-0656581 discloses a number of individual data processing systems connected together in a local area network. A plurality of printers are provided which are accessible to any user of any work station within the network. The printer units are ranked relative to each other based on proximity to a specified location on the network, relative speed and compatibility with the output of a job located on a data processing system. A specified number of top ranked printer units are displayed on the data processing system as optimal units. WO96/01449 discloses a network protocol and hardware interface which allows a host computer system to request printer profile information of printers connected to the computer system via a network and to process raster data based on the profile information. US-A-5436730 discloses a method of managing a proof process for a document stored in the memory of a printing machine. A representation of at least a segment of the selected print job is transmitted to a proof user together with instructions regarding the manner in which the proof reader is to review the selected job segment. An objective of an aspect of the present invention is therefore to provide an information processing system and method which can relieve a burden of operation to be made by the user for achieving the purpose of a process. Another objective of another aspect of the present invention is to provide an information processing system and method which can relieve a burden of operation to be made by the user for achieving the purpose of a process, and can utilize optimum one of available apparatus resources. According to a first aspect of the present invention, there is provided an information processing apparatus arranged to be connected with a plurality of other apparatuses, said information processing apparatus comprising: receiving means for receiving a job, analysing means for analysing the job, recognising means for recognising the situations of the plurality of other apparatuses, determining means for determining, based on the result of analysis by said analysing means and the situations of the plurality of other apparatuses recognised by said recognising means, an apparatus suitable for executing the job; and instructing means for instructing the apparatus determined by said determining means to execute the job, the apparatus being characterised by: planning means for constructing an alternative plan substituting for the execution of the job when none of the plurality of other apparatuses are determined to be suitable for executing the job; and proposing means for proposing the alternative plan to a user. According to a second aspect of the present invention, there is provided an information processing method performed by an apparatus connected with a plurality of other apparatuses, said method comprising: a receiving step for receiving a job, an analysing step for analysing the job, a recognising step for recognising the situations of the plurality of other apparatuses, a determining step for determining, based on the result of analysis in said analysing step and the situations of the plurality of other apparatuses recognised in said recognising step, an apparatus suitable for executing the job, and an instructing step for instructing the apparatus determined in said determining step to execute the job, characterised by a planning step for constructing an alternative plan substituting for the execution of the job when none of the plurality of other apparatuses are determined to be suitable for executing the job, and a proposing step for proposing the alternative plan to a user. Embodiments of the present invention, will now be described with reference to the accompanying drawings, in which: Fig. 1 is a block diagram showing the configuration of an information processing system according to one embodiment. Fig. 2 is a block diagram showing the functional configuration of the system of the embodiment. Fig. 3 is a block diagram showing the hardware configuration of each apparatus in the system of the embodiment. Fig. 4 is a flowchart showing a process flow executed in the embodiment. Fig. 5 is an illustration showing a process flow for selecting optimum one of a plurality of printers and executing printing by the selected printer. Fig. 7 is an illustration showing an example of the case where a document is read from a scanner and then transmitted to a particular printer. Fig 8 is an illustration showing examples of the case where a document is read from a scanner and then transmitted to a particular printer which cannot be managed by the scanner. Fig. 12 is a flowchart showing a process sequence executed in a second Embodiment. Fig. 13 is a table showing whether an advance notice is to be informed or not depending on the JOB type and conditions. Figs. 14A and 14B are illustrations showing the case of discarding useless information when information to be filed is transmitted to the user. Fig. 15 is a flowchart showing a process sequence executed in a third Embodiment. Fig. 16A is an illustration showing an information flow in Embodiment 3. Fig. 16B is an illustration showing an information flow in the case where there is no apparatus fit for the JOB object. Fig. 17 is a representation showing an example of window indication for proposing an optimum way to the user. Fig. 20 is a representation showing one example of JOB tables. Fig. 21 is a representation showing an example of Printing Window. Fig. 22 is a representation showing another example of JOB tables. Fig. 23 is an illustration showing the contents of <file A>. Fig. 24 is a representation showing an example of Question Window. Fig. 25 is a representation showing still another example of JOB tables. Fig. 26 is a table showing an example of schedule data. Fig. 27 is an illustration showing an example of inquiries made to the user. Fig. 28 is a representation showing still another example of JOB tables. Fig. 29 is a representation showing still another example of JOB tables. Fig. 30 is an illustration showing an example of change in the printer status. Fig. 31 is a printer status table. Fig. 32 is a representation showing still another example of JOB tables. Fig. 33 is a representation showing an example of Notice Window. Fig. 34 is a representation showing still another example of JOB tables. Fig. 35 is an illustration showing an example of change in the printer status. Fig. 36 is a table showing rules for plans and actions. Fig. 37 is a table showing rules for plans and actions. Fig. 38 is a representation showing actions and preconditions corresponding to the object. Fig. 39 is a table showing an example of properties of each device. Fig. 40 is a table showing an example of status of each device. [Embodiment 1] Fig. 1 shows the configuration of an information processing system according to one embodiment. In the system, a PC (personal computer) 101, a scanner 102, a color printer 103, and a monochromatic printer 104 are connected to a network. According to this embodiment, in a system comprising a plurality of apparatus (equipment or devices) connected through a network, when execution of JOB is instructed to some apparatus, the instructed apparatus analyzes the JOB object from the JOB contents and grasps what is JOB to be executed by the apparatus itself. Based on the grasped result, the instructed apparatus acquires information necessary for the JOB to be executed and then execute the JOB. When executing the JOB, if there is more effective another method or apparatus than instructed, the instructed apparatus instructs the more effective apparatus to execute the process, or issues information to propose the more effective method to the user. Depending on the JOB contents, the instructed apparatus may also reject the instruction itself. The types of JOBs include input operation by the user, an execution instruction from another equipment, a result obtained by analyzing JOB, and new JOB generated by itself during the idling state. In the case of reading a document with a scanner and printing the document by another printer, for example, there occur JOBs below: (1) process of analyzing the contents of an instruction given to the scanner from the user for the document set on the scanner, (2) process of reading and analyzing the document produced based on the analysis of the instruction received by the scanner from the user (or an event of the document being set on the scanner), and process of instructing a printer to print the read document, (3) process of transferring printing instructions to the printer, which are produced by the scanner in accordance with the instructed process, and (4) printing process produced in the printer by analyzing the printing instructions received from the scanner. Details of a method for producing and managing such JOBs will be described in connection with Embodiments subsequent to Embodiment 11. Procedures for executing those processes by a plurality of apparatus will be explained below in more detail with reference to the drawings. Fig. 2 shows the functional configuration of each apparatus for executing the processes in the embodiment. A job receiving portion 201 receives JOB from the user or another apparatus. The received JOB is registered in a JOB table 202. A JOB analyzing portion 203 takes out and analyzes the JOB registered in the JOB table 202. An other-equipment information acquiring portion 204 acquires properties, current states, etc. of other equipment connected to the network. A situation determining portion 207 determines a situation from the current states of the other equipment, etc. An optimum planning portion 210 makes an optimum plan in relation to the JOB. A JOB execution determining portion 206 determines whether the JOB is to be executed or not, and if executed, whether the JOB is to be executed by itself or another equipment. When the JOB is executed by another equipment, execution of the JOB is instructed to that equipment from an instructing portion 205 to other equipment. When the JOB is executed by itself, a JOB executing portion 209 executes the JOB. A JOB informing portion 211 informs the user of, e.g., that the execution is instructed to another equipment. Fig. 3 shows the hardware configuration of each apparatus for executing the processes in the embodiment. An I/O 301 performs input/output operation with respect to the exterior of the apparatus itself. An CPU 302 executes programs and controls the various portions of the apparatus. A ROM 303 stores therein programs executed by the CPU 302 in accordance with flowcharts explained later, as well as fixed data. A RAM 304 temporarily stores therein various variables and intermediate data generated during the process, such as the properties, current states, etc. of the other equipment acquired from the other-equipment information acquiring portion 204. Further, programs may be loaded and stored in the RAM 304 from, e.g., the exterior of the apparatus. Fig. 4 is a flowchart showing a process flow executed in the embodiment. First, in step S109, the contents of the JOB table are initialized. In step S110, it is determined whether JOB is input or not by checking if there is JOB input from the user, JOB input from a device, etc. detectable by the system, a result obtained by analyzing any of these JOBs, or new JOB generated by itself during the idling state. If JOB is input, then the input JOB is added in the JOB table in step S111. Step S112 checks whether JOB exists in the JOB table or not. If yes, then the JOB is taken out in step S113. In step S114, the apparatus analyzes an instruction given to it and derives the object of the JOB from the analyzed instruction. In step S115, one or more other JOBs to be executed additionally are picked up based on the analyzed instruction. In step S116, the JOBs picked up in step S115 are registered in the JOB table. Step S117 checks whether there remains JOB not yet executed. If yes, then the process flow goes to step S118. In step S118, it is determined whether the JOB is executable or not. If the JOB is determined to be not executable, then the process flow returns to step S115 for picking up the JOB to be executed next. The apparatus executes the JOB in step S119, followed by returning to step S117. For example, when the user puts an instruction for reading a document from a scanner and printing the document by another printer, the user's object (intention) is analyzed as being in obtaining a printed document. In this case, a process of reading and analyzing the document produced based on the analysis of the instruction received by the scanner from the user, and a process of instructing a printer to print the read document are also picked as JOBs. Details of a flow of these processes will be described in connection with Embodiments subsequent to Embodiment 11 on the basis of practical examples. Fig. 5 shows a process flow for selecting optimum one of a plurality of printers and executing printing by the selected printer. In Fig. 5, JOB information is input/transmitted in the form of a command from a host computer, an instruction from a remote controller, a command in natural language issued as voice from the user, and a bar code or a sentence read from a cover page and analyzed. A device having received the JOB information analyzes the JOB, and selects and outputs a printer capable of executing the processes in conformity with the JOB. If there is a notice instruction, then the device selects an optimum medium for sending a notice to the destination device and informs the notice to it. To that end, in response to a user's request, the device refers to the configuration of printers and selects suitable one of the printers, causing the selected printer to execute printing. At this time, depending on the situation, the device may also allocate the process to a plurality of printers. Further, if there is a notice instruction, then the device selects an optimum medium for sending a notice to the destination device and informs the printer name selected to execute printing, the end of printing, etc. to it. The user's request includes the sheet size, printing quality, color, time limit (e.g., request for finishing printing until 5 o'clock), etc. The printer configuration includes the types and number of printers, capability, current state (whether each of the printers is operating normally, whether there is a queue waiting for printing, whether sheets and toner are not insufficient, etc.). A medium or method for sending the notice can be any of informing the notice by voice at the user's terminal, giving the notice over a telephone, sending a message to a pager, and transmitting the notice in the form of a document via E-mail or fax (facsimile). A description will be made of the situation where the process showing in Fig. 5 is carried out by a plurality of apparatus in accordance with the flowchart of Fig. 4. When an instruction of requesting some document to be output urgently until 5 o'clock, for example, is given to a host computer in step S110, the JOB is added in the JOB table in step S111. The JOB is taken out in step S113 and the given instruction is analyzed in step S114. The JOB object is derived from the analyzed information. In step S115, the following JOBs are picked up from the analyzed information: (1) JOB to acquire, from the document to be output, information (sheet size, printing quality, colored or monochromatic document, etc.) for selecting a printer suitable for outputting the document, limit time, etc. (2) JOB to select one of the connected printers which is fit for the information acquired in (1). (3) JOB to check whether the selected printer has no troubles in outputting the document. (4) JOB to output the document to the selected printer. (5) JOB to inform the selected printer and the execution of output of the document. In step S116, the JOBs picked up in step S115 are registered in the JOB table. The above steps are repeated until it is determined in step S117 that the picked-up JOBs have all been processed, i.e., that there remains no JOB. Step S118 determines whether the JOB is executable or not. If the JOB is determined to be not executable, then the JOB to be executed next is picked up. In step S119, the picked-up JOBs are executed sequentially. [First comparative example] Fig. 7 shows an example of the case where a document is read from a scanner and then transmitted to a particular printer. After a document has been read by a scanner 701, the user specifies the destination device (by utilizing voice, etc.). Alternatively, if the destination device is specified on a cover page, the destination device is automatically determined. After a monochromatic printer 702 has been thus determined as the destination device, any of the following processes is executed depending on the acquired status of the destination device: (1) when the destination device is unable to perform printing, the document is sent to an alternative printer (e.g., a monochromatic printer 703) for printing, (2) when the printer specified as the destination device is unable to perform printing (due to conditions such as including a colored page or being different in sheet size), only the relevant page is transmitted to another printer (e.g., a color printer 704 if that page is colored), (3) when the document has a large number of pages, printing is made in parallel by using several printers, and (4) when a forwarding device is specified in the destination device, the document is transmitted to the forwarding device. [Second comparative example] Fig. 8 shows an example of the case where a document is read from a scanner and then transmitted to a particular printer which cannot be managed by the scanner (for the reason that network domains are different from each other). After a document has been read by a scanner 701 locating in Austin, the user specifies the destination device (by utilizing voice, etc.). Alternatively, if the destination device is specified on a cover page in the form of a character string or bar code, the destination device is determined by reading, recognizing and interpreting it. After a monochromatic printer 702 located in Tokyo has been thus determined as the destination device and the document has been actually sent to the monochromatic printer 702, any of the following processes is executed depending on the acquired status of the destination device: (1) when the monochromatic printer 702 is unable to perform printing by itself, the printer 702 sends the document to an alternative printer (e.g., a monochromatic printer 703) for printing, (2) when the monochromatic printer 702 is unable to print the received document (in point of conditions such as including a colored page and sheet size), the printer 702 transmits the whole of the received document or only the relevant page to another printer (e.g., a color printer 704 if that page is colored), (3) when the document has a large number of pages, the monochromatic printer 702 performs printing by itself and simultaneously allocates respective lots to other several printers as well for parallel printing. (4) when a forwarding device is specified in the monochromatic printer 702, the printer 702 automatically transmits the document to the forwarding device. The first comparative example differs from the second comparative example in that the scanner 701 determines the destination device in the final comparative example, whereas the printer 702 having received the document from the scanner 701 determines the destination device in the second comparative example. [Embodiment 2] In this embodiment, when the apparatus instructed to execute JOB actually executes the JOB by itself, it informs or confirms the contents of the JOB prior to starting the execution depending on the JOB type and conditions, or cancel the JOB which is determined to be useless for the user, without executing the instructed JOB. Fig. 12 is a flowchart showing a process sequence executed in this Embodiment 2. Fig. 13 is a table showing whether an advance notice is to be informed or not depending on the JOB type and conditions. In Fig. 12, it is first determined in step S120 whether the JOB is necessary for the user or not. If necessary, then the process subsequent to step S122 is executed, but if not necessary, the JOB is discarded in step S127. Step S122 determines whether the process to be executed and the subject are to be informed to the user before executing the instructed JOB, by referring to information of the advance notice corresponding to the JOB type and conditions shown in Fig. 13, or by analyzing the contents written on the cover letter or the like. If the advance notice is determined to be not necessary, then the process flow goes to step S126. If the advance notice is determined to be necessary, then the process flow goes to step S124 for informing the process to be executed and the subject. Further, if necessary, a permission to execute the JOB is obtained from the user in step S125. Then, the JOB is executed in step S126. A description will now be made of an example in which when the JOB object is to carry out filing of information, the system analyzes the contents of the information prior to staring to execute the filing and then informs the user of the analyzed contents (subject). Fig. 14A shows the case of, in a filing process, informing the user beforehand of the information to be filed. Denoted by 1401 is a file storage, 1402 is a scanner, and 1403 is a user terminal (computer). The process executed by the scanner 1402 in Fig. 14A will be explained below in accordance with the flowchart of Fig. 12. In step S120, the scanner 1402 determines that the instructed JOB is one important for the user because it is information filing JOB. In step S122, the scanner refers to the specified information as shown in Fig. 13 and determines that the information to be filed should be sent prior to starting the filing process, followed by scanning the information. For sending the information to be filed, the process flow goes to step S124. In step S124, the scanned information is sent to the user terminal 1403 via a network. Finally, the filing JOB is executed in step S126. A description will next be made of an example in which when information is received, but it is determined to be not at all concerned with the user as a result of analyzing the received first page, subsequent information is rejected from receiving. Fig. 14B shows the case of determining whether a large amount of received data is necessary or not based on the first page thereof, and discarding information of the subsequent pages. Denoted by 1404 is a PC on the receiving side and 1405 is a PC on the transmitting side. The process executed by the PC 1404 in Fig. 14B will be explained below in accordance with the flowchart of Fig. 12. In step S120, the PC 1404 analyzes the first page of the received information and determines that the received information is not concerned with the user other than the general affairs staff and it is not necessary to receive the information, judging from the title of "Notice to General Affairs Staff". Accordingly, the process goes to step S127. The received first page is discarded in step S127, and the process is ended without receiving the information of the second and subsequent pages. [Embodiment 3] Fig. 15 is a flowchart showing a process sequence executed in this Embodiment 3. In this Embodiment 3, an apparatus instructed to execute a process determines whether the process is to be executed by itself or another apparatus. Depending on the determined result, the apparatus executes the process by itself or instructs another apparatus. First, the apparatus determines in step S150 whether JOB is input or not. If input, then the input JOB is added in the JOB table in step S151. It is checked in step S152 whether there is JOB in the JOB table or not. If yes, then the JOB is taken out in step S153. In step S154, the apparatus analyzes an instruction given to it and grasps the object of the JOB based on the analyzed result. In step S155, the apparatus determines its own situation. In step S156, the apparatus determines situations of other apparatus corresponding to the JOB object. If the apparatus determines based on the situations of itself and the other apparatus that it is optimum to execute the JOB by itself, then the process flow goes from step S157 to step S158 where it decides that the JOB is executed by itself. Thereafter, the apparatus executes the JOB by itself in step S159. On the other hand, if the apparatus determines that it is not optimum to execute the JOB by itself and there is another apparatus optimum for the JOB object, then the process flow goes from step S160 to step S161 where the apparatus decides that the JOB is to be executed by the other apparatus than itself. After that, in step S162, the apparatus instructs the other apparatus optimum for the JOB object to execute the JOB. In step S163, the apparatus informs the user of that the JOB is executed by the other apparatus than itself. If there is no other apparatus fit for the JOB object, then the process flow goes from step S160 to step S164 where the apparatus makes planning of an optimum method not departing from the JOB object. In step S165, the plan is proposed to the user. Fig. 16A shows an information flow in this Embodiment 3. In the case where the user of a PC 101 gives JOB of outputting information read by a scanner 102 to a printer 104, if the printer 104 is defective in printing operation, for example, the printer 104 determines that it cannot execute the instructed JOB, and finds out another printer 103 capable of executing the instructed JOB through communication with other apparatus. The printer 104 then determines that the JOB is to be executed by not itself, but the printer 103, followed by instructing the printer 103 to execute the JOB. Fig. 16A represents the above process flow by solid and dashed arrows. A process sequence followed by those associated apparatus to execute the process shown in Fig. 16A will be explained below in accordance with the flowchart of Fig. 15. To explain first the process of the scanner 102, it receives in step S150 the JOB of scanning information and transmitting the information to the printer 104. The received JOB is added in the JOB table in step S151, and it is taken out in step S153. In step S154, the scanner 102 scans the data and grasps that the JOB is to transmit the information. The scanner 102 then determines in step S155 that it is operating normally and there is no problem in scanning and transmitting the instructed information. In step S156, the scanner 102 understands that the JOB cannot be routed to any other apparatus. After determining in step S157 that it is optimum to execute the JOB by itself, the scanner 102 advances to step S158. The scanner 102 decides in step S158 that it scans the information by itself, scans the information in step S159, and then transmits the information to the printer 104 via the network through a route 1. On the other hand, the printer 104 receives, in step S150, the JOB of outputting the received information. The received JOB is added in the JOB table in step S151, and it is taken out in step S153. In step S154, the printer 104 grasps from the received information that the JOB is to output the information from the user of the PC 101 on sheets of paper. The printer 104 determines in step S155 that toner is used up in itself and it cannot output the information on sheets of paper. In step S156, the printer 104 communicates with other apparatus via the network to find out another printer capable of outputting the received information, and determines that there is such a printer, i.e., the printer 103 can output the received information (route 2). After determining in step S157 that the JOB cannot be executed by itself, the printer 104 advances to step S160. Since it is now determined in step S160 that the printer 103 can execute the JOB of outputting the information, the printer 104 decides in step S161 that it transmits the received information to the printer 103. In step S162, the printer 104 instructs the printer 103 to output the information transmitted to it from the printer 104 (route 3). In step S163, the printer 104 informs the user's PC 101 having instructed the JOB of that the instructed output of the information is executed in the printer 103 through E-mail (route 4). Fig. 16B shows an information flow in the case where there is no apparatus fit for the JOB object. In the case where the user of a PC 101 gives JOB of outputting information read by a scanner 102 to a printer 104, if the printer 104 is unable to execute printing because of toner shortage, the printer 104 communicates with other apparatus to find out another printer 103 corresponding to the object of the given JOB, and determines the situation the printer 103. Now, the printer 103 is unable to execute printing because of sheets shortage, and there is no other printer capable of achieving the JOB object. Therefore, the printer 104 sends a notice to the PC 101 for offering to the user, as an optimum plan, a proposal of restoring the printer 104 or 103 to a printable state for carrying out the printing. Fig. 16B represents the above process flow by solid and dashed arrows. A process sequence followed by those associated apparatus to execute the process shown in Fig. 16B will be explained below in accordance with the flowchart of Fig. 15. The process from the step of reading a document by the scanner 102 to the step of transmitting the read document to the printer 104 is the same as in the above case. The printer 104 receives, in step S150, the JOB of outputting the received information. The received JOB is added in the JOB table in step S151, and it is taken out in step S153. In step S154, the printer 104 grasps from the received information that the JOB is to output the information from the user of the PC 101 on sheets of paper. The printer 104 determines in step S155 that toner is used up in itself and it cannot output the information on sheets of paper. In step S156, the printer 104 communicates with other apparatus via the network to find out another printer capable of outputting the received information, but determines that there is no other suitable device because the printer 103 is also unable to execute the printing because of sheets shortage. After determining in step S157 that the JOB cannot be executed by itself, the printer 104 advances to step S160. Since it is now determined in step S160 that there is no device capable of executing the JOB of outputting the information, the process flow goes to step S164. In step S164, the printer 104 makes planning of an optimum method to realize the JOB object of printing the information. The planning results in that it is an optimum method to restore the status of a device, which has an ability of carrying out the printing, to the normal state. In accordance with the planning result, therefore, a proposal of restoring the printer 104 under toner shortage or the printer 103 under sheets shortage to a printable state is transmitted to the user in next step S165 with a window indication as shown in Fig. 17. After that, a response from the user or a change in status of the printer itself is recognized as input of JOB, and the user's object can be achieved eventually through a similar process as explained above. Details of the above planning will be described in connection with Embodiments subsequent to Embodiment 4 on the basis of practical examples. [Embodiment 4] A process flow executed by a device instructed to execute JOB in this Embodiment 4 will be described in accordance with Fig. 4. First, in step S109, the contents of the JOB table are initialized. In step S110, it is determined whether JOB is input or not by checking if there is JOB input from the user or another device, etc. detectable by the system. Input analyzing JOB for analyzing the contents of the JOB input in step S110 is added in the JOB table in step S111. Step S112 checks whether executable JOB exists in the JOB table or not. If yes, then the executable JOB is taken out in step S113. In step S114, the instructed device grasps the object that is a background requesting the JOB to be executed. In step S115, planning of a conceivable process is performed on the basis of the input contents, status of other devices, etc. detectable by the system, knowledge currently known to the system, and so on. If necessary, new JOBs are added in step S116. The process is executed in steps S117 to S119 in accordance with the procedures obtained from the planning. Those steps are repeated until no JOB exits in the JOB table, and the process flow returns to step S110 when all the JOBs have been executed. A case where the user intends to print <file A> will be described below. Fig. 22 shows the contents of <file A> in which a picture of a car is drawn in colors. Fig. 23 shows the configuration of a system in this embodiment. The system comprises a PC 2301 through which the user instructs printing, a monochromatic printer 2303 set as a printer to be employed usually, and a color printer 2302 connected to a network additionally. In the monochromatic printer 2303 having received an instruction, the JOB table is initialized in step S109. In step S111, JOB to be executed in the absence of input is added in the JOB table (Fig. 20). When the user specifies the file name <file A> and selects printing in a window indication of Fig. 21, it is determined in step S110 that there is an input, and the process flow goes to step S111. In step S111, as shown in Fig. 22, the input analyzing JOB is added in the JOB table. Step S112 now determines that there is an executable JOB, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 obtains the executable JOB of analyzing an input of "printing of <file A>". In step S114, the monochromatic printer 2303 then grasps that the object of the input of "printing of <file A>" is to print <file A>. Based on the following conditions and situations, in step S115, planning of a proposal for prompting the user to make printing by a color printer is performed: <file A> includes a colored area (the picture of the car in Fig. 23). there exists the usable color printer 2302 (Fig. 23). In step S119, an inquiry of "Do you make printing by color printer ?" is issued to the user (Fig. 24). At the same time, JOB of taking action for the absence of a response from the user is added in the JOB table (Fig. 25). After that, the process flow returns to step S110. If there is no input for 10 minutes in step S110, then step S112 determines that the executable JOB exists, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 acquires the executable JOB of taking action for the absence of a response from the user. In step S114, the monochromatic printer 2303 grasps that the object of the JOB of taking action for the absence of a response from the user is to know whether or not the user receives the proposal. Based on the following conditions and situations, in step S115, it is decided to issue an inquiry to the user over a telephone: the phone number of the place where the user is now is known (from schedule data in Fig. 26). printing must be executed urgently (because <file A> is used in business talk from 13:00 as shown in the schedule data in Fig. 26). In step S119, an inquiry of "Do you make printing by color printer ?" is telephoned to the user (Fig. 27). At the same time, JOB of taking action for the absence of a response from the user is added in the JOB table (Fig. 28). After that, the process flow returns to step S110. If the user says "Yes. All right." as shown in Table 27, then it is determined in step S110 that there is an input, and the process flow goes to step S111. In step S111, the input analyzing JOB is added in the JOB table (Fig. 22). Step S112 now determines that there is an executable JOB, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 obtains the executable JOB of analyzing an input of "Yes. All right.". In step S114, the monochromatic printer 2303 then grasps that the object of the input of "Yes. All right." is to show an approval to the proposal. In step S115, the monochromatic printer 2303 decides that <file A> is to be sent to the color printer 2302 for printing. In step S118, <file A> is sent to and printed by the color printer 2302. At the same time, JOB of confirming whether the printing has been normally ended or not, is added in the JOB table (Fig. 29). After that, the process flow returns to step S110. If there is no input in step S110 and the printer status is changed from "under printing" to "there is printed document" as shown in Fig. 30, then step S112 determines that the executable JOB exists, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 acquires the executable JOB of carrying out a process corresponding to the printer status. Because the status of "there is printed document" means, as seen from a printer status table of Fig. 31, that the printed document remains in a printer tray, the monochromatic printer 2303 grasps in step S114 that the JOB object is to deliver the printed document to the user. Taking into account that the user will come to pick up the printed document soon, the monochromatic printer 2303 decides in step S115 that it waits for the user in such a state. In step S116, JOB of confirming whether the user has come to pick up the printed document or not, is added in the JOB table (Fig. 32). After that, the process flow returns to step S110. If there is no input in step S110 for 10 minutes and the printed document remains left in the tray, then step S112 determines that the executable JOB exists, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 acquires the executable JOB of taking action for the case of the printed document remaining left. Because the status of "there is printed document" means, as seen from the printer status table of Fig. 31, that the printed document remains in the printer tray, the monochromatic printer 2303 grasps in step S114 that the JOB object is to deliver the printed document to the user. Since the printed document has been left in the printer tray for 10 minutes, the monochromatic printer 2303 decides in step S115 that the user has forgotten to pick up the printed document. In step S119, a notice of "there is printed document in color printer" is sent to the user (Fig. 33). At the same time, JOB of taking action for the absence of a response from the user and JOB of taking action for the case of the user coming to pick up the printed document are added in the JOB table (Fig. 34). After that, the process flow returns to step S110. If there is no input in step S110 and the printer status is changed from "there is printed document" to "normal" as shown in Fig. 35, then step S112 determines that the executable JOB exists, and therefore the process flow goes to step S113. In step S113, the monochromatic printer 2303 acquires the executable JOB of checking (rearranging) the JOB corresponding to the printer status of "there is printed document". In step S114, the monochromatic printer 2303 grasps that the JOB object of checking the JOB corresponding to the printer status of "there is printed document" is to delete the JOB which has become unnecessary. Then, the monochromatic printer 2303 decides in step S115 it to delete the JOB of waiting for a response from the user. In step S119, the JOB of waiting for a response from the user is deleted. Here, no new JOB is added. Hence the process flow returns to step S110 in the initialized state. Figs. 36 and 37 are tables showing rules for plans and actions. When the user pushes the button "printing" in the Printing Window of Fig. 21, it is determined by referring to the plans and actions in the table of Fig. 36 that the user's object resides in changing of the current status to "there is printed document". Since the status of "there is printed document" is also a precondition for the object of "obtain printed document", the final user's object is determined as being in "obtain printed document". When the user offers an approval or opposition with voice, mouse control, etc. in response to the Question Window of Fig. 24, the Notice Window of Fig. 33, or the inquiry sent over telephone like Fig. 27, the user's object is determined as being in offering an approval or opposition to the inquiry, etc. In Fig. 37, the final object of the system is to achieve the user's object. As a precondition for achieving the user's object, the system must be stable. Based on stability of the system, the system operates to (1) grasp the user's object, (2) make planning to achieve the object, and execute plans. Of course, the system must be restored to the normal condition, if abnormal, for maintaining stability of the system. In addition, power is turned off when the system is not needed to operate, for the purposes of cutting down the cost and avoiding the system from being brought into an unstable condition. Fig. 38 illustrates a part of Fig. 37 for easier understanding. To grasp the user's object, if some input is applied from the user, a relevant printer grasps the input. Then, corresponding to the user's object of "obtain printed document" in Fig. 36, there exists an object of "deliver printed document to user" as the object of the system. To deliver the printed document to the user, it is a precondition that the printed document exists. The printer tries to achieve the object by an action of teaching the user the place where the printed document is, on the basis of the above precondition. Of course, the fact of the user actually obtaining the document means that the user must come to pick up the document, or that the document must be delivered to the user in some way. In this embodiment, however, the fact of the printed document being taken away from the printer is determined to be equivalent to that the user has obtained the document. On the other hand, the status of "there is printed document" is based on such preconditions that an original document to be printed exists, printing conditions are clarified, and corresponding printing environment is set in a normal state. Based on these preconditions, the corresponding printing environment is selected and the printing is executed. The precondition that an original document to be printed exists can be satisfied by an action of preparing the original document to be printed. The precondition that printing conditions are clarified can be satisfied by an action of inquiring the user of the conditions which are not clear. The precondition that corresponding printing environment is set in a normal state can be satisfied by an action of restoring the printing environment to the normal state if abnormal. Further, to acquire the user's intention, it is needed to make replanning if there is no response from the user for a certain time. Properties of each device are stored in a memory inside the device itself or in a memory inside a server managing the devices. Fig. 39 shows an example of properties of each device. The status of each device is kept in the device itself and transmitted to another device by the device actively transmitting its own status or passively responding to a request from another server. Since the properties are specific to each device in the present system and remain unchanged, they are acquired by the other devices at the start-up of the system or when any connection in the network is changed. On the other hand, the status is acquired in the step of planning as an occasion requires or with intervals of a certain time, and then updated to be stored as status information in an internal memory. [Embodiment 5] This Embodiment 5 shows an example in which <file A> is to be printed as with Embodiment 4, but the color printer is in a busy state. First, when an input of "printing <file A>" is given, the input is added in the JOB table and the JOB object is grasped as being in printing <file A>. Assume now such conditions and situations that a document includes a colored area and a usable color printer is in a busy state. Taking into account these conditions, a plan of inquiring the user of whether to wait for the printer status changing from the busy state or to print the document in monochrome is arranged. Then, a message and inquiry of "Color printer is now busy. Do you wait or print it by monochromatic printer ?" is sent to the user. If the user selects "wait", then the system is held in a standby state until the color printer is released from the busy state. The object of operating various devices to realize the functions of the above embodiments can also be achieved by supplying program codes of software for realizing the function of any of the above embodiments to an apparatus connected to one of the various devices or a computer in the system, and causing a computer (or CPU and MPU) in the system or apparatus to operate the various devices in accordance with the supplied programs. Thus, such a scheme is also involved in the scope of the present invention. In the above case, the program codes read out of a storage medium serve in themselves to realize the function of any of the above-described embodiments; hence the program codes themselves and means for supplying the program codes to the computer, e.g., a storage medium storing the program codes, also constitute the present invention. Storage mediums for use in supplying the program codes may be, e.g., floppy disks, hard disks, optical disks, photo-magnetic disks, CD-ROMs, CD-Rs, magnetic tapes, nonvolatile memory cards, and ROMs. Also, the function of any of the above-described embodiments is realized by not only a computer alone which reads and executes the program codes, but also a computer which cooperates with an OS (Operating System) working on the computer or any other application in accordance with the program codes. In either case, those programs codes are also involved in the scope of the present invention. Further, the present invention involves such a case where the program codes read out of the storage medium are written into a memory built in a function add-in board mounted in the computer or a function add-in unit connected to the computer, and a CPU or the like built in the function add-in board or unit executes part or whole of the actual process in accordance with instructions from the program codes, thereby realizing the function of any of the above-described embodiments. When applying the present invention to any of the above-mentioned storage mediums, it is just required to load the program codes corresponding to the flowcharts, explained above, in the storage medium. Although the present invention has been described in its preferred form with a certain degree of particularity, many apparently widely different embodiments of the invention can be made without departing from the the scope thereof. It is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.

Claims: An information processing apparatus arranged to be connected with a plurality of other apparatuses, said information processing apparatus comprising: receiving means (201) for receiving a job, analysing means (203) for analysing the job, recognising means (205) for recognising the situations of the plurality of other apparatuses, determining means (207) for determining, based on the result of analysis by said analysing means and the situations of the plurality of other apparatuses recognised by said recognising means, an apparatus suitable for executing the job; and instructing means (208) for instructing the apparatus determined by said determining means to execute the job, the apparatus being characterised by : planning means (206) for constructing an alternative plan substituting for the execution of the job when none of the plurality of other apparatuses are determined to be suitable for executing the job; and proposing means for proposing the alternative plan to a user. An information processing apparatus according to claim 1, wherein said proposing means is adapted to inquire to a user whether the user confirms the alternative plan. An information processing apparatus according to claim 2, further comprising response receiving means for receiving a response from the user to the alternative plan. An information processing apparatus according to any one of the preceding claims, wherein said proposing means is adapted to propose a plurality of alternative plans. An information processing apparatus according to any one of the preceding claims, wherein said recognising means is adapted to recognise the properties of the plurality of other apparatuses. An information processing apparatus according to any preceding claim, wherein said recognising means (205) is adapted to recognise the statuses of the plurality of other apparatuses. An information processing method performed by an apparatus connected with a plurality of other apparatuses, said method comprising: a receiving step (S153) for receiving a job, an analysing step (S154) for analysing the job, a recognising step (S156) for recognising the situations of the plurality of other apparatuses, a determining step (S160,S161) for determining, based on the result of analysis in said analysing step and the situations of the plurality of other apparatuses recognised in said recognising step (S156), an apparatus suitable for executing the job, and an instructing step (S162) for instructing the apparatus determined in said determining step (S161) to execute the job, characterised by a planning step (S164) for constructing an alternative plan substituting for the execution of the job when none of the plurality of other apparatuses are determined to be suitable for executing the job, and a proposing step (S165) for proposing the alternative plan to a user. An information processing method according to claim 7, wherein in said proposing step, an inquiry is made to the user as to whether the user confirms the alternative plan. An information processing method according to claim 8, further comprising a response receiving step for receiving a response from the user to the alternative plan. An information processing method according to any one of claims 7 to 9, wherein in said proposing step (S165), a plurality of alternative plans are proposed. An information processing method according to any one of claims 7 to 10, wherein in said recognising step (S156), the properties of the plurality of other apparatuses are recognised. An information processing method according to any one of claims 7 to 11, wherein in said recognising step (S156), statuses of the plurality of other apparatuses are recognised. A computer program including processor implementable instructions for controlling a processor to perform all the steps of a method according to any of claims 7 to 12. A storage medium storing the computer program according to claim 13.

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