Abstract:
A cooperative processing apparatus for executing a cooperative process of respective services based on cooperative instruction information representing an instruction for cooperating a plurality of services for respectively executing predetermined processes on document data, on a network, the cooperative processing apparatus includes: an error determining section that determines an error which occurs in a service in the cooperative process; a document detecting section that detects the presence or absence of document data processed by the cooperative process; and a cooperative control section that reexecutes the cooperative process based on the error determined by the error determining section and the presence or absence of document data detected by the document detecting section.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims priority under 35USC 119 from Japanese Patent Application No. 2003-292798 the disclosure of which is incorporated by reference herein.  
       BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to a cooperative processing system, a cooperative processing apparatus, and a cooperative processing method. Particularly, the invention relates to the cooperative processing system, the cooperative processing apparatus, and the cooperative processing method which reexecute a cooperative process of plural services when an error occurs during the cooperative process.  
         [0004]     2. Description of the Related Art  
         [0005]     A service processing system, which executes a job flow of a document is conventionally suggested. When predetermined processes which are prespecified (document process such as delivery, pickup, transmission, conversion, storage and the like) cannot be executed due to any cause, the service processing system interrupts the predetermined processes or the predetermined processes are alternatively executed by a prespecified alternate apparatus.  
         [0006]     Even if the alternate apparatus is provided, however, when an error occurs in some services, the alternate apparatus cannot cope with it. For example, when an error occurs after document data are subject to an image process or the document data are delivered, an original of document data are lost. For this reason, the job flow cannot be reexecuted, and thus the job flow cannot be completed.  
       SUMMARY OF THE INVENTION  
       [0007]     The present invention is suggested in order to solve the above problems.  
         [0008]     A cooperative processing apparatus from a first aspect of the invention for executing a cooperative process of respective services based on cooperative instruction information representing an instruction for cooperating a plurality of services for respectively executing predetermined processes on document data, on a network, the apparatus includes: an error determining section that determines an error which occurs in a service in the cooperative process; a document detecting section that detects the presence or absence of document data processed by the cooperative process; and a cooperative control section that reexecutes the cooperative process based on the error determined by the error determining section and the presence or absence of document data detected by the document detecting section.  
         [0009]     Further, a cooperative processing method from a second aspect of the invention of making a computer execute a cooperative process of respective services based on cooperative instruction information representing an instruction for cooperating a plurality of respective services for respectively executing predetermined processed on document data, on a network, the method includes: the step of determining an error which occurs in a service in the cooperative process; the step of detecting the presence or absence of document data processed by the cooperative process; and the cooperative control step of reexecuting the cooperative process based on the error determined at the error determining step and the presence or absence of document data detected at the document detecting step.  
         [0010]     A cooperative processing system from a third aspect of the invention including a plurality of service processing apparatuses for cooperatively executing a plurality of services for respectively executing predetermined processes on document data, on a network; and a cooperative processing apparatus for making the service processing apparatuses execute a cooperative process based on cooperative instruction information representing an instruction for cooperatively executing the services. The cooperative processing apparatus includes: an error determining section that determines an error which occurs in a service in the cooperative process, a document detecting section that detects the presence or absence of document data processed by the cooperative process, and a cooperative control section that reexecutes the cooperative process based on the error determined by the error determining section and the presence or absence of document data detected by the document detecting section.  
         [0011]     In the above invention, the services are accessible functions relating to documents responding to external requests. The services include, for example, copying, printing, scanning, facsimile transmission/reception, mail delivery, and the like, but the services are not particularly limited. The cooperative processing apparatus controls the execution of the services for each service according to the sequence of the cooperative process based on an instruction form.  
         [0012]     The error determining section determines an error, which has occurred in a service in the cooperative process. The error determining section preferably determines whether the error is recoverable or unrecoverable. This is because, in a case of the unrecoverable error, the cooperative process cannot be reexecuted.  
         [0013]     The document detecting section detects the presence or absence of document data processed by the cooperative process. The reason that a determination is made whether the document data remain in the cooperative process is because when the document data remain, the instruction form can be reexecuted easily by using the document data.  
         [0014]     The cooperative control section reexecutes the cooperative process based on the error determined by the error determining section and the presence or absence of document data detected by the document data detecting section. For example, when a recoverable error is determined and document data remain, the error can be canceled after a predetermined amount of time passes. The cooperative control section can, therefore, reexecute the job flow using the document data. That is to say, the cooperative control section can execute a suitable error process according to error contents or the presence or absence of document data.  
         [0015]     As mentioned above, the invention reexecutes the cooperative process based on the error determined by the error determining section and the presence or absence of document data detected by the document detecting section. As a result, in the invention, even if an error occurs during the execution of the job flow described in the instruction form, a suitable error process is executed according to the error contents and the presence or absence of the document. For this reason, the job flow described in the instruction form can be executed as completely as possible. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]      FIG. 1  is a diagram illustrating a constitution of a service processing system according to an embodiment of the present invention.  
         [0017]      FIG. 2  is a diagram illustrating a schematic constitution of an instruction form.  
         [0018]      FIG. 3  is a diagram illustrating a combination condition table stored in a cooperative control unit. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0019]     A preferred embodiment of the present invention is explained below with reference to the drawings.  
         [0020]      FIG. 1  is a diagram illustrating a constitution of a service processing system according to an embodiment of the invention. The service processing system is constituted so that various services and applications are connected via a network.  
         [0021]     The services are functions which relate to documents, and which are usable in response to external requests. The services include, for example, copying, printing, scanning, facsimile transmission/reception, mail delivery, storing to and reading from a repository, OCR (Optical Character Recognition) processing, noise reduction processing and the like. The services are not particularly limited.  
         [0022]     The service processing system has a first service processing apparatus  10 , a second service processing apparatus  20 , a third service processing apparatus  30  and a cooperative processing apparatus  40 . The first service processing apparatus  10  executes a first service on document data. The second service processing apparatus  20  executes a second service on document data. The third service processing apparatus  20  executes a third service on document data. The cooperative processing apparatus  40  executes a cooperative process of plural services (hereinafter, “job flow”) based on an instruction form.  
         [0023]     The instruction form is data including information representing a relationship between the services (job flow) in the case where a series of processing is divided into plural functional processes, interface (I/F) information for calling up the services, and information for composing a graphical user interface (GUI) relating to the job flow.  
         [0024]      FIG. 2  is a diagram illustrating a schematic constitution of the instruction form. The job flow, which cooperatively processes three services S 1 , S 2  and S 3  is described in the instruction form. Addresses which indicate locations for reading of the document data, contents of the services, and addresses which indicate storage destination of the processed document data are described for respective services S 1  to S 3  in the instruction form.  
         [0025]     The first service processing apparatus  10  includes an input memory  11  for inputting the document data thereto, a first service processing unit  12  for executing the first service on the document data, and an output memory  13  for temporarily storing and then outputting the document data which have undergone the first service process. The input memory  11  and the output memory  13  may be constituted by a common memory.  
         [0026]     The second service processing apparatus  20  and the third service processing apparatus  30  are constituted similarly to the first service processing apparatus  10 . The first service processing unit  12 , a second service processing unit  22  and a third service processing unit  32  execute different services, respectively.  
         [0027]     The cooperative processing apparatus  40  includes a document data management unit  41 , an error level determining unit  42 , a service type determining unit  43  and a cooperative control unit  44 . The document data management unit  41  manages the document data processed by the first to the third service processing units  10 ,  20  and  30 , respectively. The error level determining section  42  determines an error level of the services. The service type determining unit  43  determines a type of a service in which an error has occurred. The cooperative control unit  44  controls the job flow based on the instruction form.  
         [0028]     When document data respectively processed by the first to the third service processing apparatuses  10 ,  20  and  30  is present, the document data management unit  41  stores the document data. The document data management unit  41  manages which data are processed by which of the first to the third service processing apparatuses  10 ,  20  and  30 .  
         [0029]     When an error occurs in any one of the first to the third service processing apparatuses  10 ,  20  and  30  during execution of the job flow, the error level determining unit  42  determines an error level which represents whether the error is “recoverable” or “unrecoverable”.  
         [0030]     A recoverable error is an error, which occurs because the service temporarily cannot be executed. In this case, when a predetermined amount of time passes, the service is again in an executable state. For example, when a busy signal is generated by a recording medium such as a memory or a magnetic disc, this corresponds to the case where a communication line is temporarily busy or the like. An unrecoverable error is an error, which occurs because a service cannot be executed due to a problem with hardware or software. In this case, even if a predetermined amount of time passes, the service cannot be executed.  
         [0031]     The service type determining unit  43  determines a service type of each executed service from the start of the execution of the job flow to the occurrence of the error. Concretely, the service type determining unit  43  determines whether each service is a cancelable service or a noncancelable service. A noncancelable service corresponds to printing, facsimile transmission, mail transmission or the like. In contrast, a cancelable service corresponds to, for example, image processing. The reason for this is that if the document data being subject to the image processing is discarded and the document data before the image processing is used, the image processing can be reexecuted.  
         [0032]     The cooperative control unit  44  normally controls the first to the third service processing apparatuses  10 ,  20  and  30  so that they execute the job flow based on the instruction form. At this time, the cooperative control unit  44  monitors response signals transmitted from the first to the third service processing apparatuses  10 ,  20  and  30  so as to check whether the job flow is executed normally.  
         [0033]     Further, when an error occurs during the execution of the job flow, the cooperative control unit  44  can reexecute the job flow according to the error state. The cooperative control unit  44  reexecutes the job flow based on the following combination condition table.  
         [0034]      FIG. 3  is a diagram illustrating the combination condition table stored in the cooperative control unit  44 .  
         [0035]     “Present” or “Absent” under “Restartable Input Document” is determined by the cooperative control unit  44  based on the management condition of document data management unit  41 . Concretely, when the document data management unit  41  stores therein the document data processed by any one of the first to the third service processing apparatuses  10 ,  20  and  30 , the cooperative control unit  44  determines that the “restartable input document” is “present”. Further, when the document data management unit  41  does not store the document data therein, the cooperative control unit  44  determines that the “restartable input document” is “absent”. That is to say, when the document data on which the job flow can be reexecuted during the job flow remain, the cooperative control unit  44  determines that the “restartable input document” is “present, and when the document data do not remain, it determines that the restartable input document” is “absent”.  
         [0036]     “Cancelable” or “Noncancelable” under “Executed Service Type” is determined by the cooperative control unit  44  based on the determined result by the service type determining unit  43 . Concretely, when even one noncancelable service is present in the executed services constituting the job flow, the cooperative control unit  44  determines that the executed service type is “noncancelable” based on the determined result by the service type determining unit  43 . Further, when no noncancelable service is present in the executed services, all of the service in the job flow can be canceled, and the cooperative control unit  44  therefore determines that the executed service type is “cancelable”.  
         [0037]     “Recoverable” or “Unrecoverable” under “Error Level” is determined by the error level determining unit  42 .  
         [0038]     The cooperative control unit  44  compares the three determined results with the combination condition table shown in  FIG. 3  and executes a reexecution process (any one of N 1  to N 3 , R 1  and R 2  shown in  FIG. 3 ) corresponding to the combination of the determined results by the document data management unit  41 , the error level determining unit  42  and the service type determining unit  43 .  
         [0039]     “N” represents a notification to a user. Concretely, “N 1 ” represents a notification which urges a user to reexecute the job flow from the beginning because the execution of the job flow has failed. “N 2 ” represents a notification that the execution of the job flow has failed and an unrecoverable error has occurred. “N 3 ” represents a notification that the execution of the job flow has failed and a noncancelable service had been executed at that time.  
         [0040]     “R” represents the reexecution of the job flow. Concretely, “R 1 ” represents that a service, which is closest to and previous to the service in which an error has occurred (including the service itself in which the error has occurred) is reexecuted. “R 2 ” represents that while a noncancelable service is being skipped, the job flow is reexecuted.  
         [0041]     In the service processing system having such a constitution, the cooperative processing apparatus  40  causes the first service processing apparatus  10 , the second service processing apparatus  20 , and the third service processing apparatus  30  to execute the first through the third services in this order according to the job flow described in the instruction form.  
         [0042]     For example, when “executed service type” is “cancelable”, “error level” is “recoverable”, and “restartable input document” is “present” at the time of the occurrence of an error in the job flow, the cooperative control unit  44  instructs the reexecution of “R 1 ”. That is to say, the cooperative control unit  44  traces to a service, which is closest to the service with the error in the reverse order of the job flow (including the service itself in which the error has occurred). The closest service is a service which is closest in order from the service with the error among services which can process the document data stored in the document data management unit  41 . The cooperative control unit  44  reexecutes the job flow starting from the closest service by using the document data which is to be input into the closest service.  
         [0043]     As a result, even if an error occurs in the job flow, when an error is recoverable and the document data are present, the cooperative processing apparatus  40  can reexecute the job flow using the document data.  
         [0044]     As another example, in a case where “executed service type” is “noncancelable”, “error level” is “recoverable” and “restartable input document” is “present” at the time of occurrence of an error in the job flow, the cooperative control unit  44  instructs the reexecution of not only “R 1 ” but also “R 2 ”. That is to say, the cooperative control unit  44  traces to a service, which is closest to the service with an error in the reverse order of the job flow as mentioned above. The cooperative control unit  44  uses the document data which is to be input into the closest service, and reexecutes the job flow starting from the closest service. When the cooperative control unit  44  comes to a noncancelable service, it skips this service, and proceeds to execute the next service.  
         [0045]     As a result, even if an error occurs in the job flow after the noncancelable service is executed, when an error is recoverable and the document data are present, the cooperative processing apparatus  40  skips the noncancelable service, and proceeds to execute the job flow using the document data.  
         [0046]     In a case where “restartable input document” is “absent” or “error level” is “unrecoverable”, the cooperative processing apparatus  40  can notify the user of the state of the error and a reexecution instruction according to the combination condition table by, for example, delivering an e-mail or displaying on a user interface.  
         [0047]     As described above, when an error occurs during the execution of the job flow described in the instruction form, the cooperative processing apparatus  40  executes appropriate error processing according to the executed service type or the state of document data. For this reason, the job flow described in the instruction form can be executed as completely as possible.  
         [0048]     The invention is not limited to the above embodiment, and needless to say, design modification can be applied to the invention within the scope described in the claims.  
         [0049]     The embodiment exemplifies a case where three services are cooperative in series as the job flow described in the instruction form. The invention is not limited to this example, and two, four, or more than four services may be cooperative in series or in parallel.  
         [0050]     Further, in the embodiment, the cooperative processing apparatus  40  manages the document data processed by the first to the third service processing apparatuses  10 ,  20  and  30 . However, for example, an unillustrated management sever may manage the document data. Moreover, the first to the third service processing apparatuses  10 ,  20  and  30  may store therein the document data processed thereby until the final step of the job flow is executed.  
         [0051]     Further, any one of the first service processing apparatus  10 , the second service processing apparatus  20 , and the third service processing apparatus  30  may have the function of the cooperative processing apparatus  40  and may monitor whether the job flow is completed according to the instruction form.