1. Field of the Invention
The disclosures herein generally relate to an image forming apparatus, and particularly relate to an image forming apparatus that has a software component connected thereto to perform a process constituting part of a job relating to image data.
2. Description of the Related Art
Japanese Patent Application Publication No. 2007-325251 (hereinafter referred to as Patent Document 1) discloses an image forming apparatus that employs a pipe-&-filter architecture to use a software component called an activity, which is comprised of combined software components referred to as filters, thereby implementing an application for performing a job. Such an image forming apparatus can simplify tasks that are to be performed to customize or extend functions.
There are some image forming apparatuses that are provided with the functions to extract information embedded in scanned document images and to analyze the information regarding the documents (see, for example, Japanese Patent Application Publication No. 2006-20258, which will be hereinafter referred to as Patent Document 2). Such functions may include a marking detecting function to detect the tampering of documents or to track the distribution routes of documents (i.e., to detect a person who printed the documents).
As described above, an image forming apparatus disclosed in Patent Document 1 is provided with the marking detecting function. Such a marking detection function may be implemented by use of a filter (which will be hereinafter referred to as a marking detection filter) configured to extract information from an image input through an input filter, to perform analysis, and to output the results of the analysis. The detection of tampering and the detection of a person who has printed the document require different information extraction processes, different analysis processes, and different formats for outputting analysis results. Accordingly, different marking detection filters may need to be created according to varying usages of information embedded in document images. When both the function to detect tampering and the function to detect a person who has printed the document are to be implemented, different marking detection filters (e.g., a tampering detection filter and a print-person detection filter) may need to be created to satisfy the varying needs.
An activity may be created for each different combination of an input filter and a marking detection filter. For example, a tampering detection activity that utilizes a tampering detection filter and a print-person detection activity that utilizes a print-person detection filter may be created.
The task to develop these filters and activities may be simple as far as the technologies preceding the technology disclosed in Patent Document 1 are concerned. When considering the fact that there are many parts shared by different marking filters and different activities utilizing these marking filters, however, there may be a need to further improve customizability.
Accordingly, it may be desirable to provide an image forming apparatus that can improve the customizability of functions that process information embedded in images.
In one embodiment, an image forming apparatus for performing a job relating to image data, to which software components are connected to perform processes constituting respective parts of the job, includes: an embed-information processing control unit configured to control, based on a first one of the software components, embed-information processing for extracting embedded information or for embedding information with respect to image data output from a second one of the software components; and an embed-information processing service unit configured to perform the embed-information processing with respect to the image data in response to an instruction from the embed-information processing control unit, wherein the embed-information processing service unit includes a shared service unit configured to perform a process shared by different types of the embed-information processing, and one or more specific service units each configured to perform a different process specific to a different type of the embed-information processing, and wherein the shared service unit is configured to receive an instruction from the embed-information processing control unit, and the specific service units are configured to perform the embed-information processing with respect to the image data.
In another embodiment, a method of performing a job relating to image data in an image forming apparatus to which software components are connected to perform processes constituting respective parts of the job includes: controlling, based on a first one of the software components, embed-information processing for extracting embedded information or for embedding information with respect to image data output from a second one of the software components; and performing the embed-information processing with respect to the image data in response to an instruction from the step of controlling, wherein the step of performing includes utilizing a shared service unit configured to perform a process shared by different types of the embed-information processing, and utilizing one or more specific service units each configured to perform a different process specific to a different type of the embed-information processing, and wherein the shared service unit is configured to receive an instruction from the embed-information processing control unit, and the specific service units are configured to perform the embed-information processing with respect to the image data.
According to at least one embodiment, an image forming apparatus can improve the customizability of functions that process information embedded in images.
Other objects and further features of embodiments will be apparent from the following detailed description when read in conjunction with the accompanying drawings, in which:
In the following, embodiments of the present invention will be described with reference to the accompanying drawings. These embodiments will be described by using an image forming apparatus as an example of an information processing apparatus.
The hardware of the multifunctional machine 1 includes a controller 601, an operation panel 602, a facsimile control unit (FCU) 603, an imaging unit 604, and a printing unit 605.
The controller 601 includes a CPU 611, an ASIC 612, an NB 621, an SB 622, an MEM-P 631, an MEM-C 632, an HDD (hard-disk drive) 633, a memory card slot 634, an NIC (network interface controller) 641, a USB device 642, an IEEE 1394 device 643, and a Centronics device 644.
The CPU 611 is an IC for performing various types of information processing. The ASIC 612 is an IC for performing various types of image processing. The NB 621 is a north bridge of the controller 601. The SB 622 is a south bridge of the controller 601. The MEM-P 631 is a system memory of the multifunctional machine 1. The MEN-C 632 is a local memory of the multifunctional machine 1. The HDD 633 is a storage unit of the multifunctional machine 1. The memory card slot 634 is a slot that receives a memory card 635. The NIC 641 is a controller for network communication based on the MAC address. The USB device 642 serves to provide connection terminals conforming to the USB specification. The IEEE 1394 device 643 serves to provide connection terminals conforming to the IEEE1394 specification. The Centronics device 644 serves to provide connection terminals conforming to the Centronics specification. The operation panel 602 serves as the hardware unit (operation unit) by which the operator enters an input into the multifunctional machine 1, and also serves as the hardware unit (display unit) through which the operator obtains the output of the multifunctional machine 1.
The application mechanism 10 is a layer in which a set of software components (i.e., programs) for letting a user utilize the resources of the multifunctional machine 1, e.g., its functions and information (data), are implemented. In the present embodiment, some of the software components implemented in the application mechanism 10 are referred to as “filters”. Such term is used because applications for performing jobs in the multifunctional machine 1 are configured based on a software architecture referred to as “pipe-and-filter”.
Namely, the multifunctional machine 1 of the present embodiment treats a job as a series of conversions performed with respect to a document (data). A job in the multifunctional machine 1 may be generalized as being comprised of the inputting, processing, and outputting of a document. Then, “inputting”, “processing”, and “outputting” are each treated as one “conversion”. A software component for implementing one conversion is implemented as a filter. A filter for implementing an inputting operation is referred to as an “input filter”. A filter for implementing a processing operation is referred to as a “processing filter”. A filter for implementing an outputting operation is referred to as an “output filter”. Basically, each filter cannot perform one job by itself. A plurality of filters each performing respective part of a job are connected as illustrated in
Each filter is implemented as being operable on a filter framework 110. Specifically, each filter may be provided with an interface that is defined with respect to the filter framework 110. The filter framework 110 controls the operating procedure of each filter through such an interface.
Filters are independent of each other. As a general principle, interdependence (i.e., calling-and-called relationship) is not in existence between the filters. Accordingly, addition (i.e., install) and removal (i.e., uninstall) can be performed on a filter-by-filter basis.
In
The scan filter 111 controls the scanning of image data by use of the imaging unit (scanner) 604, and outputs the scanned image data. The stored document read filter 112 reads document data (e.g., image data) stored in the memory device of the multifunctional machine 1, and outputs the read image data. The mail receive filter 113 receives electronic mail, and outputs data contained in the electronic mail. The fax receive filter 114 controls facsimile reception, and outputs the received print data.
In
In
The print filter 131 uses a plotter to output (i.e., print) supplied data. The stored document registration filter 132 stores supplied data in the memory device of the multifunctional machine 1 such as the HDD 633. The mail transmit filter 133 transmits an electronic mail to which supplied data is attached. The fax transmit filter 134 transmits supplied data as facsimile transmission. The marking filter 135 controls the process of extracting embedded information and/or the process of embedding information with respect to supplied image data, and outputs the result of the processing. Here, the embedded information refers to information embedded in an image in addition to the drawing data of the image by use of a data form such as a background form or a barcode form. The usage of embedded information is not limited to a particular usage. Examples of usages include the detection of tampering of a paper document, the detection of a print person (i.e., print-person detection) that detects a person who has ordered to print or copy a document, and so on.
Various types of functions provided in the multifunctional machine 1 may be implemented by use of filter combinations as follows.
A copy function may be implemented by connecting the scan filter 111 and the print filter 131. With this configuration, image data scanned by the scan filter 111 from a document sheet is printed by the print filter 131. When processing such as combining, size enlargement, or size reduction is requested, the document edit filter 121 for performing the requested processing is inserted between the two filters.
A scan-to-email function (i.e., the function to transmit scanned image data by electronic mail) may be implemented by connecting the scan filter 111 and the mail transmit filter 133. A fax transmission function may be implemented by connecting the scan filter 111 and the fax transmit filter 134. A fax receive function may be implemented by connecting the fax receive filter 114 and the print filter 131. A document-box storage function (i.e., the function to store scanned image data in the multifunctional machine 1) may be implemented by connecting the scan filter 111 and the stored document registration filter 132. A document-box print function (i.e., the function to print document data stored in the multifunctional machine 1) may be implemented by connecting the stored document read filter 112 and the print filter 131.
In
In the application mechanism 10, there is a software component referred to as “activity”. The activity is a software component configured to manage what sequence the filters should be arranged and to cause these filters to operate in such a sequence to perform a job. One activity implements one application.
Since filters have strong independence, a filter combination (i.e., connect relationship) can be dynamically configured. Specifically, the filters to be used, the sequence in which the filters operate, and the operating conditions of the filters may be determined by a user using the operation panel 602 each time a request to perform a job is received, thereby providing a function desired by the user.
It may be cumbersome for a user to select filters each time a job is to be performed, especially when the function to be used is a frequently used function such as a copy function. The activity solves such a problem. Namely, a filter combination (i.e., connect relationship) may be defined in advance as an activity. Then, a user can select an activity to perform on an activity-specific basis. The selected activity automatically executes the combination of filters defined in the activity. The use of such an activity can remove trouble associated with the manual operation, and also can provide the feel of operation similar to a conventional user interface by which a job to be performed is selected on an application-by-application basis.
In
Each activity is implemented as being operable on an activity framework 100. Specifically, each activity may preferably be provided with an interface that is defined with respect to the activity framework 100. The activity framework 100 controls the operating procedure of each activity through such an interface.
As a general principle, activities are independent of each other, and interdependence (i.e., calling-and-called relationship) is not in existence between the activities. Accordingly, addition (i.e., install) and removal (i.e., uninstall) can be performed on an activity-by-activity basis. In addition to the activities illustrated in
In the following, a description will be given of the filter and the activity in detail.
The filter-setting-purpose UI is a program that displays a screen for causing filter operating conditions and the like to be set on the operation panel 602. Namely, operating conditions are set separately for each filter. In the case of the scan filter 111; for example, the filter-setting-purpose UI provides a screen for setting a document type, a scan size, resolution, etc. The filter-setting-purpose UI may be HTML data or a script if the operation panel 602 can control display based on HTML data or scripts.
The filter logic is a program implementing a logic for achieving a filter function. Namely, the filter logic provides a filter function in response to the operating conditions set through the filter-setting-purpose UI by use of the filter specific lower-order service provided as a filter constituent element, the service mechanism 20, and the like. In the case of the scan filter 111, for example, the filter logic may correspond to a logic for controlling a document scan performed by the imaging unit 604.
The filter specific lower-order service is a lower-order function(s) (i.e., library) required to implement the filter logic.
The permanent memory area information is a schema definition of data that needs to be stored in a nonvolatile memory such as filter setting information (e.g., default values of operating conditions). The schema definition may be registered in a data management unit 23 at the time of filter installment.
The activity UI is a program or data used to display an activity-related screen (e.g., a setting screen used to set activity operating conditions and the like) on the operation panel 602.
The activity logic is a program implementing the details of processes of the activity. As a general principle, the activity logic includes a logic regarding a filter combination (e.g., the sequence in which the filters operate, settings shared by two or more filters, modification to filter connections, error handling, etc.).
The permanent memory area information is a schema definition of data that needs to be stored in a nonvolatile memory such as activity setting information (e.g., default values of operating conditions). The schema definition may be registered in the data management unit 23 at the time of activity installment.
Referring to
The image pipe 21 provides the pipe function as previously described. Namely, the image pipe 21 uses a memory area or the like to transmit the output data of a filter to a next filter. In
The UI unit 22 analyzes a service request supplied through an operating screen displayed on the operation panel 602, and delegates the control of processes responsive to the user request to one or more software components provided in the application mechanism 10, the service mechanism 20, and the like. The data management unit 23 defines how to store and where to store information with respect to various types of information items such as user information that is to be stored inside or outside the device.
The marking service 24 performs the process of extracting embedded information or the process of embedding information with respect to image data in response to a request issued from the marking filter 135.
The device mechanism 30 includes a device control mechanism separately for each device provided for the multifunctional machine 1.
The operating unit 40 is a part in which software components relating to the operation and management of the system are implemented, and is used in a shared manner by the application mechanism 10, the service mechanism 20, and the device mechanism 30. In
In the following, the function to extract embedded information or the function to embed information (which will hereinafter be referred to as a “marking function”) will be described with respect to the multifunctional machine 1 having the software configuration described above.
When a print-person detection job is to be performed as a marking job, the scan filter 111 controls the imaging unit 604 to scan image data from a document sheet, and, then, the marking filter 135 extracts embedded information for the print-person detection purpose (i.e., print-person detection information) that is embedded using a background form, a barcode form, or the like in the document sheet (i.e., image data). Image processing to extract the print-person detection information is performed by the marking service 24. Thereafter, the extracted information (i.e., information indicative of a print person who has printed the document) is displayed on the operation panel 602. In the case of a print-person detection job, the document edit filter 121 and the print filter 131 may not be necessary as described above.
When a tampering detection job is to be performed as a marking job, the scan filter 111 controls the imaging unit 604 to scan image data from a document sheet, and, then, the marking filter 135 reads tampering-detection-purpose embedded information for the image data. Namely, the marking filter 135 extracts the tampering-detection-purpose embedded information (i.e., tampering detection information) that is embedded using a background form, a barcode form, or the like in the document sheet (i.e., image data). Image processing to extract the tampering detection information is performed by the marking service 24. The marking service 24 further detects the presence or absence of tampering based on the tampering detection information and identifies an altered portion when there is tampering, followed by performing image processing to attach a red circular mark to the identified portion, for example. The detection of tampering and checking of an altered portion using a background pattern are disclosed in Japanese Patent Application Publications 2005-12530 and 2005-192148.
When the marking service 24 detects tampering, the marking filter 135 outputs image data with a red circular mark attached to the altered position to the document edit filter 121. The image data is then printed by the print filter 131. In this manner, a user may learn the presence of tampering and the position of the altered portion by looking at the printed document. If the marking service 24 detects no tampering, a message indicative of the absence of tampering is displayed on the operation panel 602. With this, the tampering detection job comes to an end. In this case, the document edit filter 121 and the print filter 131 are not utilized.
The example illustrated in
In the following, a description will be further given of the software components that may be main components to implement the marking function. These software components are illustrated as being enclosed in a dotted-line frame.
In
By the same token, the marking service 24 includes a marking service shared unit 241 and a marking service specific unit 242. The marking service shared unit 241 is a part in which processes performed in a shared manner for different types of marking processes are implemented among the processes that are performed as the marking service 24. The marking service specific unit 242 is a part that performs processes specific to the type of the marking process. The marking service specific unit 1042 is implemented separately for each type of marking process. The marking service specific unit 242 is provided with an interface (i.e., function or method) defined with respect to the marking service shared unit 241. In other words, the marking service specific unit 242 is created by implementing processes specific to the type of the marking process for the relevant function or the like.
The marking filter 135 is configured to be universally usable for different types of marking functions. One and the same marking filter 135 can thus be used regardless of types of marking functions. Such an arrangement is possible because the portions differing between different types of marking functions are absorbed by the marking activity specific unit 1042 and the marking service specific unit 242.
In
The agent unit 2411 serves as a service counter or the like for the marking service shared unit 241. The agent unit 2411 provides the marking filter 135 with a common interface (i.e., function or method) shared by different types of marking functions. The agent unit 2411 receives various types of requests from the marking filter 135 via the common interface, and passes the requests to the marking service specific unit 242. In this manner, the marking service specific unit 242 is not directly called by the marking filter 135. With this arrangement, the marking filter 135 can utilize the marking service 24 without being conscious of what kind of marking function is being performed.
The specific-unit management unit 2412 manages the marking service specific unit 242. Specifically, the specific-unit management unit 2412 manages a list of installed marking service specific units 242, and, also, loads the marking service specific units 242 (e.g., by converting an object into an instance).
The service providing condition 2414 is data (i.e., object) for storing the operating conditions of the process of the marking service 24 used at the time of job execution. Specifically, the service providing condition 2414 stores information (i.e., an instance itself or reference to an instance) for identifying an instance of the marking service specific unit 242 utilized by the job to be executed.
The specific-unit execution unit 2413 causes a marking service specific unit 242 specified by the information stored in the service providing condition 2414 to perform a specific process (responsive to the marking function) in response to a request from the agent unit 2411.
In
In the following, a description will be given of a procedure that is performed by the multifunctional machine 1 at the time of executing a marking function. An initialization process for a marking job will be described first. The initialization process refers to a preparation for performing a marking job. Such an initialization process is automatically performed at the time of power-on of the multifunctional machine 1, for example. It should be noted that such an initialization process may also be performed in response to a user request to perform a marking job (e.g., in response to an operation to select a button corresponding to a marking job on the operation panel 602).
What is notable in
The initialization process will be further described in the following.
In step S101, the activity framework 100 requests the marking activity shared unit 1041 to generate a preference. The term “preference” refers to an object that constitutes part of an activity logic or filter logic, and that is used to store information about attribute items constituting the operating conditions of a job or the like. Specifically, a preference stores an attribute name, a data type, an attribute value, and so on with respect to each attribute item.
The marking activity shared unit 1041 generates (i.e., converts into an instance) a marking activity preference 1041p as a preference for a marking job (S102). The marking activity shared unit 1041 then returns the generated marking activity preference 1041p to the activity framework 100 (S103). At this point in time, the contents of the marking activity preference 1041p are empty. Namely, configuration information is not yet set to the attribute items of operating conditions.
The activity framework 100 requests the marking activity preference 1041p to set up the marking activity preference 1041p (i.e., to set configuration information about the attribute items of operating conditions). In response to the request, the marking activity preference 1041p requests (S105), by using itself (i.e., marking activity preference 1041p) as an argument indicative of an instance, the agent unit 2411 of the marking service shared unit 241 to set configuration information about the marking attributes (i.e., attribute name and data type of each attribute item). In response to the request, the marking service 24 sets configuration information about the marking attributes (i.e., attribute name and data type) to the marking activity preference 1041p (S106). The details of step S106 will later be described.
After this, the marking activity preference 1041p requests the agent unit 2411 (S107) to set attribute values (i.e., initial values in this case) to the marking activity preference 1041p. In response to the request, the marking service 24 sets (S108) an initial value (i.e., default value) to each attribute item of the marking attributes for which configuration information has been set in step S106. The details of step S108 will later be described.
In step S106 and S108 as described above, the schema definition (i.e., an attribute name and data type of each attribute item) and initial values of marking attributes are defined with respect to the empty marking activity preference 1041p. The reason why such definition is dynamically made by the marking service 24 is because the configuration of marking attributes differs depending on what kind of marking service specific unit 242 is plugged in, and, thus, cannot be fixed to a predetermined configuration in advance.
The marking activity preference 1041p then causes the currently installed marking service specific units 242 to set configuration information about operating conditions needed to perform respective specific marking functions. Here, the marking service specific units 242 installed in the present embodiment are the print-person detection activity unit 1042a and the tampering detection activity unit 1042b.
Specifically, the marking activity preference 1041p converts the print-person detection activity unit 1042a into an instance (S109). The marking activity preference 1041p then requests (S110) the print-person detection activity unit 1042a to set information regarding the operating conditions of a print-person detection job (i.e., make settings to the marking activity preference 1041p). In response to the request, the print-person detection activity unit 1042a acquires a preference (i.e., filter preference) for storing information about operating conditions from each of the filters (i.e., the scan filter 111 and the marking filter 135) used in a print-person detection job.
Specifically, the print-person detection activity unit 1042a requests the scan filter 111 to generate a filter preference (S111). The scan filter 111 generates a filter preference (i.e., scan filter preference) in which an attribute name, data type, and initial value of each attribute item constituting the scan attributes are stored, followed by returning the scan filter preference to the print-person detection activity unit 1042a (S112).
Thereafter, the print-person detection activity unit 1042a sets (S113) to the marking activity preference 1041p a list of attribute names regarding attribute items (display items) for displaying on a UI screen (i.e., setting screen) among the attribute items set in the scan filter preference. It should be noted that the scan filter 111 is configured to be universally usable by various types of activities (i.e., various types of applications). Accordingly, the attribute items of the scan filter 111 also have universal configurations. When a print-person detection job is to be performed, however, some of the attribute items (e.g., resolution) of the scan filter 111 may need to have predetermined values (i.e., fixed values). Such attribute items are not displayed on the setting screen, so that a list of display items excluding such non-display attribute items is set in the marking activity preference 1041p. A check as to which items are to be displayed may be made by use of information coded as hard logic settings, or may be made based on information (e.g., display item definition table) stored in the HDD 633 in a table format as illustrated in
Thereafter, the print-person detection activity unit 1042a sets (S114) to the marking activity preference 1041p an attribute name and an attribute value (i.e., initial value) for each attribute item set in the scan filter preference.
The print-person detection activity unit 1042a then repeats for the marking filter 135 processes similar to those performed for the scan filter 111. The print-person detection activity unit 1042a requests the marking filter 135 to generate a filter preference (S115). The marking filter 135 generates an empty filter preference (i.e., marking filter preference) for use with respect to the marking filter 135, followed by requesting the agent unit 2411 of the marking service shared unit 241 to set configuration information about marking attributes to the marking preference (S116). In response to the request, the marking service 24 sets configuration information about the marking attributes (i.e., attribute name and data type) to the marking filter preference (S117). The details of step S117 will later be described.
After this, the marking filter 135 requests the agent unit 2411 (S118) to set attribute values (i.e., initial attribute values in this case) to the marking filter preference. In response to the request, the marking service 24 sets (S119) an initial value (i.e., default value) to each attribute item of the marking attributes for which configuration information has been set in step S117. The details of step S119 will later be described. The marking filter 135 then returns the marking filter preference to the print-person detection activity unit 1042a (S120).
Thereafter, the print-person detection activity unit 1042a sets (S121) to the marking activity preference 1041p an attribute name and an attribute value (i.e., initial value) for each attribute item set in the marking filter preference.
After this, the print-person detection activity unit 1042a connects (S122) the respective filter preferences (i.e., scan filter preference and marking filter preference) of the scan filter 111 and the marking filter 135 used in a print-person detection job, such that these preferences are connected together in a sequence in which the filters are to operate. Namely, filter connection relationships are determined. In this case, the scan filter preference is situated in a first stage (preceding stage), and the marking filter preference is situated in a second stage (following stage).
Referring to
Specifically, the tampering detection activity unit 1042b requests the scan filter 111 to generate a filter preference (S133). Similarly to step S112, the scan filter 111 generates a scan filter preference, and returns the scan filter preference to the tampering detection activity unit 1042b (S134). The instance of the scan filter preference generated as described above is different from the one generated in step S112.
Thereafter, the tampering detection activity unit 1042b sets (S135) to the marking activity preference 1041p a list of attribute names regarding display items among the attribute items set in the scan filter preference. Thereafter, the tampering detection activity unit 1042b sets (S136) to the marking activity preference 1041p an attribute name and an attribute value (i.e., initial value) for each attribute item set in the scan filter preference.
Under the control of the tampering detection activity unit 1042b, then, processes similar to those performed in steps S115 to S121 are performed with respect to the marking filter 135 (S137 to S143). Consequently, the marking filter preference is generated, and an attribute name and attribute value of each attribute item set in the marking filter preference are set in the marking activity preference 1041p. The instance of the marking filter preference generated in step S137 is different from the one generated in step S116.
The tampering detection activity unit 1042b then repeats for the print filter 131 processes similar to those performed for the scan filter 111 and the like. Specifically, the tampering detection activity unit 1042b requests the print filter 131 to generate a filter preference (S144). The print filter 131 generates a filter preference (i.e., print filter preference) conforming to the operating conditions of the print filter 131 (i.e., in which an attribute name, data type, and initial value of each attribute item constituting the operating conditions of the print filter 131 are stored), followed by returning the print filter preference to the tampering detection activity unit 1042b (S145). Thereafter, the tampering detection activity unit 1042b sets (S146) to the marking activity preference 1041p an attribute name and an attribute value (i.e., initial value) for each attribute item set in the print filter preference.
After this, the tampering detection activity unit 1042b connects (S147) the scan filter preference and the marking filter preference in a sequence in which the filters operate. Further, the tampering detection activity unit 1042b connects (S148) the marking filter preference and the print filter preference in a sequence in which the filters operate. As a result, the scan filter preference, the marking filter preference, and the print filter preference are connected in the order named.
In the following, the process performed in steps S106, S117, and S139 will be described.
The agent unit 2411 acquires a list of instances (objects) of the marking service specific units 242 (which will hereinafter be referred to as a “list of marking service specific units”) installed in the multifunctional machine 1 from the specific-unit management unit 2412 (S151, S152). It is assumed that the specific-unit management unit 2412 has already loaded the instances of the marking service specific units 242 to the memory for management purposes.
The following procedure proceeds through different branches depending on a marking function type. The marking function type is information indicative of the type of a marking function (i.e., either the “print-person detection function” or the “tampering detection function” in the present embodiment). In the case of step S117, such information is supplied from the print-person detection activity unit 1042a in steps S115 and S116. In the case of step S139, such information is supplied from the tampering detection activity unit 1042b in steps S137 and S138.
If the marking function type indicates the print-person detection function (i.e., in the case of step S117), the agent unit 2411 requests the print-person detection service unit 242a to set configuration information about marking attributes to the preference (S153). In response to the request, the print-person detection service unit 242a sets to the preference an attribute name and data type of each attribute item required for a print-person detection job.
If the marking function type indicates the tampering detection function (i.e., in the case of step S139), the agent unit 2411 requests the tampering detection service unit 242b to set configuration information about marking attributes to the preference (S154). In response to the request, the tampering detection service unit 242b sets to the preference an attribute name and data type of each attribute item required for a tampering detection job.
In this manner, the agent unit 2411 causes the marking service specific unit 242 to respond to the request (i.e., inquiry about configuration information about marking attributes) to set configuration information about marking attributes.
It should be noted that the preference set in the procedure illustrated in
In the following, the process performed in steps S108, S119, and S141 in
The agent unit 2411 acquires a list of marking service specific units from the specific-unit management unit 2412 (S186, S162). The following procedure proceeds through different branches depending on a marking function type.
If the marking function type indicates the print-person detection function (i.e., in the case of step S119), the agent unit 2411 requests the print-person detection service unit 242a to set the initial values of marking attributes to the preference (S163) In response to the request, the print-person detection service unit 242a sets to the preference an initial value type of each attribute item required for a print-person detection job. In this example, a value indicative of the print-person detection function is also set in the preference as the marking function type.
If the marking function type indicates the tampering detection function (i.e., in the case of step S141), the agent unit 2411 requests the tampering detection service unit 242b to set configuration information about marking attributes to the preference (S164). In response to the request, the tampering detection service unit 242b sets to the preference the initial value of each attribute item required for a tampering detection job. In this example, a value indicative of the tampering detection function is also set in the preference as the marking function type.
In this manner, the agent unit 2411 causes the marking service specific unit 242 to respond to the request (i.e., inquiry about the initial values of marking attributes) to set the initial values of marking attributes.
It should be noted that the preference set in the procedure illustrated in
With this, the initialization procedure comes to an end. Among all the processes performed in the initialization procedure, only the processes relating to the print-person detection activity unit 1042a and the tampering detection activity unit 1042b in
If the multifunctional machine 1 is not provided with the marking framework, the processes relating to the marking activity shared unit 1041, the marking activity preference 1041p, the marking filter 135, and the agent unit 2411 in
In this manner, the provision of the marking framework significantly reduces the portions that need to be implemented specifically for each marking function in the implementation of an initialization procedure.
After the initialization procedure as illustrated in
The multifunctional machine 1 then displays an application selection screen on the operation panel 602, such that only the functions identified as being available according to the use authority table are selectable.
On the application selection screen 520, a button corresponding to one of the applications (i.e., marking functions) may be selected. In response, the activity UI (see
When the print-person detection function is selected, the marking activity UI uses the print-person detection activity unit 1042a to cause a setting screen (i.e., print-person detection setting screen) to be displayed. This setting screen is used to set attribute values (i.e., operating conditions of the print-person detection job) to the attribute items provided in the marking activity preference 1041p (i.e., attribute items needed for the print-person detection job).
The print-person detection setting screen 530 also displays a scan setting button 531. Upon detecting the pressing of the scan setting button 531, the marking activity UI causes such a screen to be displayed that the scan attributes set in the marking activity preference 1041p can be set.
When the tampering detection function is selected, the marking activity UI uses the tampering detection activity unit 1042b to cause a setting screen (i.e., tampering detection setting screen) to be displayed. This setting screen is used to set attribute values (i.e., operating conditions of the tampering detection job) to the attribute items provided in the marking activity preference 1041p (i.e., attribute items needed for the tampering detection job).
The tampering detection setting screen 540 also displays a scan setting button 541. Upon detecting the pressing of the scan setting button 541, the marking activity UI causes such a screen to be displayed that attribute values can be set to the scan attributes set in the marking activity preference 1041p.
In the following, a description will be given of the procedure performed by the multifunctional machine 1 when a user makes settings to operating conditions (attribute values) for a marking job by use of a setting screen such as the print-person detection setting screen 530 or tampering detection setting screen 540.
The process of setting attribute values will be further described in the following.
A user sets attribute values (i.e., the operating conditions of a print-person detection job or a tampering detection job) to attribute items on a setting screen such as the print-person detection setting screen 530 or the tampering detection setting screen 540 (S201). In response, the marking activity UI 1041u notifies the marking activity preference 1041p of the attribute items to be set and their attribute values through the activity framework 100 (S202). The marking activity preference 1041p acquires a marking function type stored in the MEM-P 631 in response to the selection of an application on the application selection screen 520 (S203), and retains the acquired marking function type (S204).
If the acquired marking function type indicates the print-person detection function, the marking activity preference 1041p notifies a print-person detection marking activity preference 1042ap of the attribute names to be set and the attribute values (S205). The print-person detection marking activity preference 1042ap is a preference for the print-person detection activity unit 1042a. The print-person detection marking activity preference 1042ap then sets the attribute values corresponding to the attribute names to the corresponding filter preference. If the attribute names are those of attribute items of scan attributes, for example, the print-person detection marking activity preference 1042ap sets the attribute values corresponding to the attribute names to the scan filter preference 111p (S206). If the attribute names are those of attribute items of marking attributes, on the other hand, the print-person detection marking activity preference 1042ap sets the attribute values to the marking filter preference 135p (S207).
If the acquired marking function type indicates the tampering detection function, the marking activity preference 1041p notifies a tampering detection marking activity preference 1042bp of the attribute names to be set and the attribute values (S208). The tampering detection marking activity preference 1042bp is a preference for the tampering detection activity unit 1042b. The tampering detection marking activity preference 1042bp then sets the attribute values corresponding to the attribute names to the corresponding filter preference. If the attribute names are those of attribute items of scan attributes, for example, the tampering detection marking activity preference 1042bp sets the attribute values corresponding to the attribute names to the scan filter preference 111p (S209). If the attribute names are those of attribute items of marking attributes, on the other hand, the tampering detection marking activity preference 1042bp sets the attribute values to the marking filter preference 135p (S207). Further, the tampering detection marking activity preference 1042bp sets the attribute names and attribute values of print attributes to the print filter preference 131p (S211) In the tampering detection setting screen 540 illustrated in
Through the processes illustrated in
Among the processes performed in the setting of attribute values (
After the attribute values (i.e., job operating conditions) are set on the print-person detection setting screen 530 or the tampering detection setting screen 540, a user presses a start button on the operation panel 602. In response, the marking activity UI 1041u requests the activity framework 100 to start the job (S301). The activity framework 100 then requests the marking activity shared unit 1041, by indicating the marking activity preference 1041p in an argument, to generate a job object (S302). Here, the job object is an object that constitutes an activity logic or filter logic. The job object is generated separately for each activity or filter used in a job each time the job is started, thereby controlling the operation of the job. Connection relationships between job objects represent a sequence in which filters operate and so on.
The marking activity shared unit 1041 generates (S303) a job object (i.e., marking activity job 1041j) corresponding to the marking activity 104 (i.e., marking activity shared unit 1041). In so doing, the marking activity shared unit 1041 passes an argument indicative of the marking activity preference 1041p to the marking activity job 1041j. The marking activity job 1041j then acquires a marking function type from the marking activity preference 1041p (S304, S305).
Thereafter, the marking activity job 1041j generates a job object corresponding to the marking activity specific unit 1042. Specifically, if the acquired marking function type indicates the print-person detection function, the marking activity job 1041j generates a print-person detection activity job 1042aj that is a job object corresponding to the print-person detection activity unit 1042a (S306). If the acquired marking function type indicates the tampering detection function, the marking activity job 1041j generates a tampering detection activity job 1042bj that is a job object corresponding to the tampering detection activity unit 1042b (S307). Following step S306 or S307, the marking activity job 1041j sets (i.e., stores) the generated print-person detection activity job 1042aj or tampering detection activity job 1042bj to itself (i.e., marking activity job 1041j) (S308). The marking activity job 1041j then returns its own instance to the marking activity shared unit 1041 (S309). The marking activity shared unit 1041 returns the marking activity job 1041j to the activity framework 100 (S310).
After the above-noted processes, the activity framework 100 requests the filter framework 110 to generate a job object for each filter (S311). The filter framework 110 generates a job object for each filter based on the filter preference corresponding to the marking job to be performed. For example, the filter framework 110 requests the marking filter 135 to generate a job object (S312). The marking filter 135 generates a marking filter job 135j, and returns it to the filter framework 110 (S313). The filter framework 110 returns the marking filter job to the activity framework 100 (S314).
If the marking job to be performed is a print-person detection job, for example, a job object of the scan filter 111 (i.e., scan filter job 111j) and a job object of the marking filter 135 (i.e., marking filter job 135j) are generated based on the scan filter preference 111p and the marking filter preference 135p, respectively, which are illustrated in
If the marking job to be performed is a tampering detection job, a job object of the scan filter 111 (i.e., scan filter job 111j), a job object of the marking filter 135 (i.e., marking filter job 135j), and a job object of the print filter 131 (i.e., print filter job 131j) are generated based on the scan filter preference 111p, the marking filter preference 135p, and the print filter preference 131p, respectively, which are illustrated in
Through the procedure described above, the activity framework 100 collects job objects corresponding to the filters used in a marking job to be performed as well as a job object corresponding to the marking activity. The activity framework 100 connects the collected job objects to implement connect relationships corresponding to the connect relationships of the preferences (see
After the generation of a job tree, the activity framework 100 requests the filter framework 110 to start a job (S321 in
When an inter-filter adjustment is to be performed, the filter framework 110 instructs a filter (hereinafter referred to as a “filter C”) situated at the tail end of a filter chain connected as indicated by the job tree to perform an inter-filter adjustment. The filter C returns its inter-filter adjustment data to the filter framework 110. The filter framework 110 sends the returned inter-filter adjustment data to the filter (hereinafter referred to as a “filter B”) preceding the filter C, and requests the filter B to perform an inter-filter adjustment. The filter B checks whether it can output data in an image format indicated by the received inter-filter adjustment data. If affirmative, the filter B returns its own inter-filter adjustment data to the filter framework 110. If there is another preceding filter (hereinafter referred to as a “filter A”), the filter A will be informed of the filter B's inter-filter adjustment data, and will be requested to perform an inter-filter adjustment. In this manner, adjustments in the inter-filter adjustment are successively performed from latter-stage filters to earlier-stage filters.
Alternatively, inter-filter adjustments may be performed from the earlier-stage filters to the latter-stage filters, In such a case, the filter framework 110 instructs a filter (hereinafter referred to as a “filter A”) situated at the top end of a filter chain connected as indicated by the job tree to perform an inter-filter adjustment. The filter A returns its inter-filter adjustment data to the filter framework 110. The filter framework 110 sends the returned inter-filter adjustment data to the filter (hereinafter referred to as a “filter B”) next following the filter C, and requests the filter B to perform an inter-filter adjustment. The filter B checks whether it can output data in an image format indicated by the received inter-filter adjustment data. If affirmative, the filter B returns its own inter-filter adjustment data to the filter framework 110. If there is another next following filter (hereinafter referred to as a “filter C”), the filter C will be informed of the filter B's inter-filter adjustment data, and will be requested to perform an inter-filter adjustment.
With respect to the present embodiment, the latter case in which adjustments are successively performed from the earlier-stage filters to the latter-stage filters will be described as an example.
In
After this, the marking filter job 135j inquires of the agent unit 2411 of the marking service shared unit 241 about processable image formats as described in connection with
In response to the inquiry, the agent unit 2411 acquires image formats processable by the marking service specific unit 242 that is to be utilized (i.e., corresponding to a marking job to be performed) (S324), and returns the image formats to the marking filter job 135j (S325). Plural types of image formats may be returned. The details of step S325 will later be described.
The marking filter job 135j then compares the inter-filter adjustment data (i.e., image formats that the scan filter 111 can output) received in step S322 with the image formats returned from the agent unit 2411 to check whether the filters can be connected to each other (S326). Namely, the filters are determined to be connectable if there is a matching image format between the inter-filter adjustment data and the image formats. If no matching image format is found, on the other hand, it is determined that reconciliation between the filters is not possible. After the above-noted processes, the marking filter job 135j returns the check result (i.e., an indication of whether the filters are connectable) to the filter framework 110 (S327).
The filter framework 110 instructs all the other utilized filters (i.e., the scan filter 111 and the print filter 131) to prepare for the job if these filters are connectable to an adjacent filter. In
When job preparation is completed with respect to all the other utilized filters, the filter framework 110 controls the execution of a marking job by utilizing each filter job object.
The filter framework 110 simultaneously instructs the job objects (i.e., the scan filter job 111j, the marking filter job 135j, and the print filter job 131j) of all the filters utilized in the job to start a job (S11.) A job object of a filter that has received the job start instruction waits until an immediately preceding filter (i.e., the filter situated on the image data input side) completes its process, i.e., waits until image data is input into the image pipe 21 connected on the input side. As an exception, however, the filter situated at the top end of the job tree (i.e., the scan filter 111 in the present embodiment) starts processing without waiting.
Namely, the scan filter job 111j causes the imaging unit 604 to scan image data from a document paper sheet (S12), and outputs the scanned image data to the image pipe 21a (S13). Here, the image data is output in the image format selected by the inter-filter adjustment. The scan filter job 111j then informs the filter framework 110 of an event (i.e., image fixed event) indicating the completion of outputting image data to the image pipe 21a (S14).
The filter framework 110 notifies the marking filter job 135j of the image fixed event received from the scan filter job 111j (S15). In response to the event notice, the marking filter job 135j retrieves image data from the image pipe 21a (S16). The marking filter job 135j causes the marking service 24 to perform a marking process (i.e., a print-person detection job or tampering detection job in the present embodiment) with respect to the image data (S17). The processing results (i.e., detection results) obtained by the marking service 24 may include image data. In such a case, the marking filter job 135j outputs the image data to the image pipe 21b (S18). In the present embodiment, the processing results obtained by the marking service 24 may include image data when the tampering detection job detects tampering. In such a case, the processing results obtained by the marking service 24 contain image data in which a mark is attached to an altered portion. The marking filter job 135j then informs the filter framework 110 of an image fixed event or a completion event indicative of process completion (when image data is not output) (S19).
The filter framework 110 notifies the print filter job 131j of the event (i.e., event indicating the completion of outputting of image data) received from the marking filter job 135j (S20). In response to the event notice, the print filter job 131j retrieves image data from the image pipe 21b (S21), and causes the printing unit 605 to print the image data (S22). After the completion of printing, the print filter job 131j notifies the filter framework 110 of a completion event (S23).
The procedure from step S12 to step S19 or to step S23 is performed on a page-by-page basis. When each filter is finished with its process with respect to all the pages, or is aborted halfway through due to some reason, a completion event is reported to the filter framework 110.
Among the processes described with reference to
Specifically, in step S332, the filter framework 110 requests the marking filter job 135j to start a job, which corresponds to S11 in
When a completion event (indicative of the completion of scanning all pages) is reported to the filter framework 110 from a filter job (i.e., the scan filter job 111j) of the filter preceding the marking filter 135 (i.e., the scan filter 111), the filter framework 110 notifies the marking filter job 135j of an event indicative of the completion of the preceding filter (i.e., a preceding filter completion event) (S351). In response to the preceding filter completion event, the marking filter job 135j requests the agent unit 2411 by using an argument indicative of the service providing condition 2414 to put an end to the marking process (S352). In response to the request, the marking service 24 performs a marking completion process in accordance with the service providing condition 2414 (S353), and returns the execution ID to the marking filter job 135j (S354).
When a completion event (e.g., indicative of a process abortion) is reported to the filter framework 131 from a filter job (i.e., the print filter job 131j) of the filter next following the marking filter 135 (i.e., the print filter 131), the filter framework 110 notifies the marking filter job 135j of an event indicative of the completion of the following filter (i.e., a following filter completion event) (S361). In response to the following filter completion event, the marking filter job 135j requests the agent unit 2411 by using an argument indicative of the service providing condition 2414 to abort the marking process (S362). In response to the request, the marking service 24 performs a marking abortion process in accordance with the service providing condition 2414 (S363), and returns the execution ID to the marking filter job 135j (S364).
In the following, the details of step S324 will be described.
The agent unit 2411 acquires a value indicative of a marking function type from the marking filter preference 135p that is obtained as an argument in step S323 (S401). The agent unit 2411 then acquires an instance of the marking service specific unit 242 corresponding to the marking function type from the specific-unit management unit 2412 (S402, S403). The agent unit 2411 sends an inquiry together with arguments indicative of the filter name and the marking filter preference 135p obtained as arguments in step S323 to the acquired marking service specific unit 242 (i.e., print-person detection service unit 242a or tampering detection service unit 242b) to inquire about processable image types (S404 or S406). The print-person detection service unit 242a or tampering detection service unit 242b determines processable image types based on the filter name and the marking attributes stored in the marking filter preference 135p, and returns data indicative of the image types to the agent unit 2411 (S405 or S407).
In the following, the details of step S330 shown in
The agent unit 2411 acquires marking attributes from the marking filter preference 135p that is obtained as an argument in step S329 (S411). The agent unit 2411 requests the specific-unit management unit 2412 by use of an argument indicative of the acquired marking attributes to generate an instance of the marking service specific unit 242 corresponding to the marking job to be executed (S412).
The instance (print-person detection service unit 242a or tampering detection service unit 242b) of the marking service specific unit 242 that appears in the sequence charts prior to
The specific-unit management unit 2412 acquires a marking function type from the marking attributes (S413). When the marking function type indicates the print-person detection function, the specific-unit management unit 2412 generates an instance (i.e., object) of a print-person detection service unit 242aj (S414). In so doing, the specific-unit management unit 2412 sets the marking attributes to the print-person detection service unit 242aj. When the marking function type indicates the tampering detection function, the specific-unit management unit 2412 generates an instance (i.e., object) of a tampering detection service unit 242bj (S415). In so doing, the specific-unit management unit 2412 sets the marking attributes to the tampering detection service unit 242bj.
The specific-unit management unit 2412 then returns the generated instance (i.e., print-person detection service unit 242aj or tampering detection service unit 242bj) of the marking service specific unit 242 to the agent unit (S416). The agent unit 2411 generates an instance of the service providing condition 2414, and registers the instance of the marking service specific unit 242 generated in step S414 or S415 in the service providing condition 2414 (S418).
In the following, the details of step S345 shown in
Upon receiving a request to execute (i.e., perform) marking from the marking filter job 135j in step S344 (
Having received the request to perform marking, the specific-unit execution unit 2413 acquires an instance of the marking service specific unit 242 registered in the service providing condition 2414 specified as an argument (S424, S425), and then inputs into the acquired instance a marking execution request with an argument indicative of a page image.
When the acquired instance is the print-person detection service unit 242aj, the execution request is input into the print-person detection service unit 242aj (S426). The print-person detection service unit 242aj performs a print-person detection process with respect to the page image based on the marking attributes set in itself, and returns the results of processing (i.e., the results of detection) to the specific-unit execution unit 2413 (S427). When the print-person detection process is properly performed, the results of detection contain information indicative of a print person (e.g., the name of a print person). When an error occurs during the print-person detection process, an exception is issued.
When the acquired instance is the tampering detection service unit 242bj, on the other hand, the execution request is input into the tampering detection service unit 242bj (S428). The tampering detection service unit 242bj performs a tampering detection process with respect to the page image based on the marking attributes set in itself, and returns the results of processing (i.e., the results of detection) to the specific-unit execution unit 2413 (S429). When the tampering detection process is properly performed, the results of detection include data indicative of the presence or absence of tampering and a page image (i.e., detection result image) having a mark attached to an altered portion in the case of the presence of tampering. When an error occurs during the tampering detection process, an exception is issued.
Thereafter, the specific-unit execution unit 2413 generates an event indicative of the results of detection (S430). When the marking process is properly performed, a detection completion event is generated (S431). When an exception is issued, an abortion request event is generated (S432). The event completion event contains the results of detection. The specific-unit execution unit 2413 notifies the marking filter job 135j of the generated event (S433) In response to the event notification, the marking filter job 135j performs a process responsive to the notified event (S434). The details of step S434 will later be described.
In the followings the details of step S353 shown in
Upon receiving a request to end marking from the marking filter job 135j in step S352 (
Having received the request to perform marking, the specific-unit execution unit 2413 acquires an instance of the marking service specific unit 242 registered in the service providing condition 2414 specified as an argument (S454, S455), and then inputs a marking completion request into the acquired instance.
When the acquired instance is the print-person detection service unit 242aj, the completion request is input into the print-person detection service unit 242aj (S456). The print-person detection service unit 242aj checks whether to end the process based on the marking attributes set in itself and the current operation status of the print-person detection process, and puts an end to the print-person detection process if termination is proper. The print-person detection service unit 242aj returns the results of the check indicative of whether to end the process to the specific-unit execution unit 2413 (S457).
When the acquired instance is the tampering detection service unit 242bj, on the other hand, the completion request is input into the tampering detection service unit 242bj (S458). The tampering detection service unit 242bj checks whether to end the process based on the marking attributes set in itself and the current operation status of the tampering detection process, and puts an end to the tampering detection process if termination is proper. The tampering detection service unit 242bj returns the result of check indicative of whether to end the process to the specific-unit execution unit 2413 (S459).
Thereafter, the specific-unit execution unit 2413 generates an event indicative of the results of the check indicative of whether to end the process (S460). When process termination is proper, a termination completion event is generated (S461). When process termination is not proper, a termination failure event is generated (S462). The specific-unit execution unit 2413 notifies the marking filter job 135j of the generated event (S463). In response to the event notification, the marking filter job 135j performs a process responsive to the notified event (S464). The details of step S464 will later be described.
In the following, the details of step S363 shown in
Upon receiving a request to abort marking from the marking filter job 135j in step S362 (
Having received the request to perform marking, the specific-unit execution unit 2413 acquires an instance of the marking service specific unit 242 registered in the service providing condition 2414 specified as an argument (S474, S475), and then inputs a marking abortion request into the acquired instance.
When the acquired instance is the print-person detection service unit 242aj, the abortion request is input into the print-person detection service unit 242aj (S476). The print-person detection service unit 242aj checks whether to abort the process based on the marking attributes set in itself and the current operation status of the print-person detection process, and aborts the print-person detection process if abortion is proper. The print-person detection service unit 242aj returns the results of the check indicative of whether to abort the process to the specific-unit execution unit 2413 (S477).
When the acquired instance is the tampering detection service unit 242bj, on the other hand, the abortion request is input into the tampering detection service unit 242bj (S478). The tampering detection service unit 242bj checks whether to abort the process based on the marking attributes set in itself and the current operation status of the tampering detection process, and aborts the tampering detection process if abortion is proper. The tampering detection service unit 242bj returns the results of the check indicative of whether to abort the process to the specific-unit execution unit 2413 (S479).
Thereafter, the specific-unit execution unit 2413 generates an event indicative of the results of the check indicative of whether to abort the process (S480). When process abortion is proper, an abortion completion event is generated (S481). When process abortion is not proper, an abortion failure event is generated (S482). The specific-unit execution unit 2413 notifies the marking filter job 135j of the generated event (S483). In response to the event notification, the marking filter job 135j performs a process responsive to the notified event (S484). The details of step S484 will later be described.
In the following, the details of step S434 (
When the event reported from the marking service 24 is a detection completion event, the marking filter job 135j checks whether the detection completion event contains a detection result image (i.e., image data having a mark attached to an altered portion). If the detection result image is contained in the detection completion event, the marking filter job 135j outputs the detection result image to the image pipe 21b (see
The marking activity then reports the detection completion event to the object of the marking activity specific unit 1042 that is set in itself in step S308 of
When the detection completion event contains the results of detection of the print-person detection function, the detection completion event is reported to the print-person detection activity job 1042aj (S511). The print-person detection activity job 1042aj notifies the activity framework 100 of the detection completion event (S512). The activity framework 100 notifies the marking activity UI 1041u of the detection completion event (S513).
The marking activity UI 1041u then requests the marking activity shared unit 1041 to provide data containing a list of detection results (hereinafter referred to as a “detection result list”) (S514). In response to the request, the marking activity shared unit 1041 requests the print-person detection activity job 1042aj to provide the results of detection (S515). The print-person detection activity job 1042aj analyzes the detection completion event to extract the detection results (i.e., print-person detection results), and returns the print-person detection results to the marking activity shared unit 1041 (S516). The print-person detection results contain identification information indicative of a print person (e.g., the name of a print person). The marking activity shared unit 1041 generates a print-person detection result list based on the print-person detection results (S517), and returns the detection result list to the marking activity UI 1041u (S518). The marking activity UI 1041u causes the operation panel 602 to display a screen (i.e., print-person detection result screen) for displaying the print-person detection result list (S519).
When the detection completion event contains the results of detection of the tampering detection function, the detection completion event is reported to the tampering detection activity job 1042bj (
The marking activity UI 1041u then requests the marking activity shared unit 1041 to provide a detection result list (S524). In response to the request, the marking activity shared unit 1041 requests the tampering detection activity job 1042bj to provide the results of detection (S525). The tampering detection activity job 1042bj analyzes the detection completion event to extract the detection results (i.e., tampering detection results), and returns the tampering detection results to the marking activity shared unit 1041 (S526). The tampering detection results indicate the presence or absence of tampering. The marking activity shared unit 1041 generates a tampering detection result list based on the tampering detection results (S527), and returns the detection result list to the marking activity UI 1041u (S528). The marking activity UI 1041u causes the operation panel 602 to display a screen (i.e., tampering detection result screen) for displaying the tampering detection result list (S529).
In the following, the details of step S464 (
When the event reported from the marking service 24 is a termination completion event, the marking filter job 135j notifies the filter framework 110 of a job completion (S601). The filter framework 110 reports the job completion to each filter's job object utilized in the marking job. In
Thereafter, the marking filter job 135j notifies the filter framework 110 of the termination completion event (S603). The filter framework 110 then notifies the activity framework 100 of the termination completion event (S604). The activity framework 100 performs a job completion process (S605), and notifies the marking activity UI 1041u of the termination completion event (S606). In response to the termination completion event, the marking activity UI 1041u changes the status of the display screen to the one in which a job is completed.
When the event reported from the marking service 24 is an abortion completion event, on the other hand, the marking filter job 135j notifies the filter framework 110 of a job abortion (S611). The filter framework 110 reports the job abortion to each filter's job object utilized in the marking job. In
Thereafter, the marking filter job 135j notifies the filter framework 110 of the abortion completion event (S613). The filter framework 110 then notifies the activity framework 100 of the abortion completion event (S614). The activity framework 100 performs a job abortion process (S615), and notifies the marking activity UI 1041u of the abortion completion event (S616). In response to the abortion completion event, the marking activity UI 1041u changes the status of the display screen to the one in which a job is aborted.
Among all the processes performed in the marking job procedure, only the processes relating to the print-person detection activity job 1042aj and the tampering detection activity job 1042bj in
In this manner, the provision of the marking framework significantly reduces the portions that need to be implemented specifically for each marking function in the implementation of a marking job execution procedure.
As described above, the multifunctional machine 1 according to the present embodiment uses a marking framework to control processes relating to relationships between an activity and a filter, relationships between filters, relationships between a filter and a service mechanism 20, and so on with respect to the marking functions. When a new marking function is to be added, therefore, all that may be needed is to create a new marking activity specific unit 1042 by implementing an interface (i.e., function or method) defined in the marking activity shared unit 1041 and to create a new marking service specific unit 242 by implementing an interface (i.e., specific-unit interface 2415) defined in the marking service shared unit 241. Namely, all that may be required of a person who develops a marking function is to implement a function or method that is predefined, without being conscious of its relationships with other components. Accordingly, a person who has no in-depth knowledge of the entire specifications of the software architecture of the multifunctional machine 1 can still implement a new marking function.
The present embodiment has been described with respect to a procedure for the extraction of information (as in the print-person detection function and the tampering detection function) among various marking functions. The embedding of information (as in the print-person detection information embedding function and the tampering detection information embedding function) may also be implemented similarly on the marking framework. When the print-person detection information embedding function is to be added, a print-person detection information embedding activity unit may be implemented as a marking activity specific unit, and a print-person detection information embedding service unit may be implemented as a marking service specific unit 242. The print-person detection information embedding activity unit may be configured to perform similar processes to those of the print-person detection activity unit 1042a. Further, the print-person detection information embedding service unit may be configured to embed, into a page image supplied as a process object, identification information indicative of a print person (e.g., the user name of a user who is currently logged in on the multifunctional machine 1) by use of a background pattern, a barcode, or the like. The same applies in the case of the tampering detection information embedding function.
The present embodiment has been described with respect to an example in which the components in the three layers, i.e., the marking activity 104, the marking filter 135, and the marking service 24, are all implemented as a framework (see
When the marking service shared unit 241 is not included in the marking framework, a marking service 24 needs to be created separately for each marking function. In
When the marking activity shared unit 1041 is not included in the marking framework, a marking activity 104 needs to be created separately for each marking function. In
Further, the present invention is not limited to these embodiments, but various variations and modifications may be made without departing from the scope of the present invention.
The present application is based on Japanese priority application No. 2008-238629 filed on Sep. 17, 2008, with the Japanese Patent Office, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2008-238629 | Sep 2008 | JP | national |