Adaptive configuration of imaging devices

A method and apparatus for configuring an imaging device is provided. A first imaging device may monitor communications exchanged between clients and imaging devices over a network to identify requests to process electronic documents. In response to the first imaging device either detecting a particular request, to process an electronic document, issued to a different imaging device than the first imaging device or receiving at the first imaging device the particular request to process the electronic document, the first imaging device may update its own current configuration for processing electronic documents. For example, an imaging device may update its own current configuration to reflect the most popular way in which electronic documents have been processed by imaging devices on the network.

FIELD OF THE INVENTION

The present invention relates to configuring imaging devices.

BACKGROUND

An imaging device is a device capable of processing an electronic document. For example, an imaging device may generate an electronic version of a printed document or generate a printed version of an electronic document. For example, a scanner and a printer are each examples of an imaging device.

Imaging devices typically support a variety of features. For example, the types of features that a printer may support include stapling a document after printing, printing on both sides of a page, and printing documents on paper of various sizes.

When a user uses an imaging device, typically a user is presented with a current configuration for the features supported by the imaging device. Thereafter, the user may customize the current configuration to create a customized configuration for a specific use of the imaging device. For example, in response to issuing a print request to a printer, the user may be presented an interface that displays a current configuration for the printer. The user may use the interface to either accept the current configuration, or specify a customized configuration for the printer.

Unfortunately, the current configuration of an imaging device is usually established at the time the imaging device is first deployed on a network. As a result, the current configuration of an imaging device may not reflect how users are actually using the imaging device. Thus, each time a user employs the imaging device, that user must spend time creating a customized configuration for a particular use. The more a customized configuration deviates from the current configuration, the more time and effort is required on behalf of the user to create the customized configuration.

In certain imaging devices, an administrator may update the current configuration of the imaging device after the imaging device has been deployed. However, this places an undue burden on the administrator, as the administrator must determine the composition of a revised configuration of the imaging device, and make an effort to update the current configuration of the imaging device to reflect the revised configuration. Consequently, an improved approach for updating the configuration of an imaging device, which avoids the disadvantages of prior approaches, is desirable.

SUMMARY

Techniques are provided for configuring an imaging device. Embodiments of the invention operate under the observation that the current configuration of imaging devices may be updated based, at least in part, on how imaging devices are actually processing electronic documents. For example, a first imaging device may monitor communications exchanged between clients and imaging devices over a network to identify requests to process electronic documents. In response to the first imaging device detecting a particular request to process an electronic document, issued by a client to either the first imaging device or to a different imaging device than the first imaging device, the first imaging device may update its own current configuration for processing electronic documents to reflect the request to process the electronic document. In this way, the current configuration of an imaging device may dynamically adapt to reflect requests to process electronic documents either directed to itself or to other imaging devices.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the present invention described herein. It will be apparent, however, that the embodiments of the present invention described herein may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the present invention described herein.

Functional Overview

Embodiments of the invention advantageously provide for configuring an imaging device. According to an embodiment, a current configuration of a particular imaging device is updated to reflect how an imaging device, such as the particular imaging device or a different imaging device, have processed electronic documents. In this way, an administrator need not manually update the current configuration of an imaging device, as the current configuration of the imaging device may be dynamically adapted to reflect how imaging devices are processing electronic documents. For example, the current configuration of the imaging device may be dynamically updated to reflect the most popular way in which electronic documents have been processed by imaging devices on a network.

FIG. 1is a block diagram of a system100according to an embodiment of the invention. According to the embodiment ofFIG. 1, client110may issue an “imaging device information request” to imaging device120over network102. An imaging device information request is a request, which is issued by a client to an imaging device, for (a) information about the features supported by the imaging device, and (b) information about the current configuration of the imaging device.

In an embodiment, the imaging device information request may conform to the Web Services protocol. The Web Services protocol is a public protocol made available and supported by the World Wide Web Consortium (W3C). The Web Services protocol is designed to support interoperable machine-to-machine interaction. In other embodiments, the imaging device information request may not conform to the Web Services protocol, but may conform to another protocol for supporting machine-to-machine interaction.

In response to client110issuing an imaging device information request to imaging device120, imaging device120will respond by sending an “imaging device information response” to client110over network102. An imaging device information response is a response, issued by an imaging device to a client, that identifies (a) the features supported by the imaging device, and (b) the current configuration of the imaging device. Imaging device120may send the imaging device information response to client110using a protocol which client110understands, e.g., imaging device120may send the imaging device information response to client110using the same protocol as client110used to send the imaging device information request to imaging device120.

After receiving the imaging device information response, client110may issue a request (“a process request”), to process an electronic document, to imaging device120over network102. For example, the process request may be a request to print an electronic document. The process request identifies the electronic document that the imaging device is to process. The process request may also identify custom job data. Custom job data is data that identifies how to process the electronic document identified by the process request.

In an embodiment, custom job data identifies all the features which imaging device120should use in processing the request. In other embodiment, the custom job data only identifies those features, which imaging device120should use to process the request, that conflict with the current configuration of imaging device120. To illustrate such an embodiment, assume that the current configuration of imaging device120is:feature A=YESfeature B=NOfeature C=5

If a process request is received by imaging device120, and the custom job data contained therein indicates that the electronic document is to be processed by imaging device120according to the following configured features:feature B=YESfeature C=10,
then the request will be processed by imaging device120using feature A=YES, feature B=YES, and feature C=10. Imaging device120will process the electronic document using feature A because feature A is included in the current configuration of imaging device120, and the custom job data does not contradict the use of that feature.

According to an embodiment of the invention, imaging device122may monitor communications exchanged between clients and imaging devices over network102to identify process requests. For example, if a process request is sent from client110to imaging device120, and the process request is sent using the Web Services protocol, then imaging device122may detect the process request sent from client110to imaging device120using the Web Services protocol. Use of the Web Services protocol is optional, as other protocols may be used by imaging device122to monitor communications.

Alternately, imaging device122may monitor communications exchanged between clients and imaging devices over network102by issuing a request, to imaging device120, to retrieve information about the current configuration of imaging device120. Imaging device122may update its own configuration based on the information retrieved from imaging device120. In this way, each imaging device may dynamically update its own configuration based on (a) process requests received at the imaging device, and (b) information about the current configuration of another imaging device that is periodically retrieved. Such an embodiment may be useful if client110issues process requests to imaging device120in a manner which imaging device122cannot directly observe, e.g., a security feature supported by a transmission protocol (such as IPV6) may be used in sending process requests which may prevent the process requests from being directly observed by imaging device122. Other approaches for monitoring communications in environments where imaging devices cannot directly observe exchanged communications are discussed below.

In response to imaging device122detecting a particular issued process request, imaging device122may update its current configuration. For example, imaging device122may determine that most process requests issued in network102contain custom job data that indicates that electronic documents should be processed using feature C with a value of 10. As a result, imaging device122may update its current configuration so that the current configuration of imaging device122indicates that feature C has a value of 10. In this way, an imaging device in system100may update its own current configuration to reflect the activity of the network to which the imaging device is coupled.

Having described a high level functional overview of an embodiment of the invention, further description about the architecture of an embodiment will be discussed.

Architecture Overview

The system100depicted inFIG. 1represents an illustrative embodiment. Only two imaging devices and one client are depicted in system100for purposes of providing a clear example; however, embodiments of the invention may include any number of imaging devices and any number of clients.

In an embodiment, system100includes a network102, client110, and imaging devices120and122. Network102may be implemented by any medium or mechanism that provides for the exchange of data between client110and imaging devices120and122. Examples of network102include, without limitation, a network such as a Local Area Network (LAN), Wide Area Network (WAN), Ethernet and the Internet. Network102may be implemented using one or more terrestrial, satellite, wired, or wireless links.

Client110may be implemented by any medium or mechanism that provides for communicating with an imaging device. For example, a user may use client110to issue a process request or an imaging device information request to an imaging device. Examples of client110include, without limitation, a software application, a node on a network, a wireless device, a cell phone, and a portable digital assistance (PDA).

Imaging devices120and122may be implemented by any medium or mechanism that provides for processing an electronic document. For example, an imaging device may generate an electronic version of a printed document or generate a printed version of an electronic document. For example, a scanner, a copier, a facsimile, a printer, and a multi-function peripheral (MFP) are each examples of an imaging device.

FIG. 2is a block diagram of an imaging device according to an embodiment of the invention. For example, imaging device200ofFIG. 2may represent either imaging device120or imaging device122ofFIG. 1. As shown inFIG. 2, imaging device200stores imaging device capability data210and current configuration data220. Imaging device capability data210is data that identifies all the features supported by imaging device200. For example, as shown inFIG. 2, imaging device200is a printer, and imaging device capability data210identifies that imaging device200supports features such as (a) printing any number of copies, (b) collating, (c) stapling, (d) hole punching, and (e) printing to different types of media.

Each feature supported by imaging device200may be associated with one or more allowable values that correspond to how the feature may be implemented. For example, the allowable values associated with the collate feature identify that the collate feature may be turned on or off, and the allowable values associated with the copies feature indicate a number of copies to be printed. The specific features identified in the imaging device capability data210that are shown inFIG. 2are merely illustrative, as imaging device capability data210may identify any feature that imaging device200supports.

Current configuration data220is data that identifies the current configuration of imaging device200. The current configuration of imaging device200identifies how, in absence of contrary instructions, imaging device200will process an electronic document. Current configuration data220may include, for each feature identified by the current configuration data220, a configured value for that feature. Thus, according to the example depicted inFIG. 2, by current imaging device200will print documents using the collate feature, the staple feature, and will print2copies of the electronic document on A4 paper. The specific features and configured values identified in the current configuration data220, shown inFIG. 2are merely illustrative, as current configuration data220may identify any current configuration of imaging device200.

Having described an illustrative architecture of an embodiment of the invention, an explanation of configuring an imaging device according to an embodiment of the invention shall now be described.

Configuring a Device

FIG. 3is a flowchart illustrating the functional steps according to an embodiment of the invention. The functional steps ofFIG. 3shall be explained below with reference toFIGS. 1 and 2. While the functional steps ofFIG. 3are graphically portrayed inFIG. 3as following a linear progression, embodiments may perform the steps ofFIG. 3in a different order than graphically portrayed inFIG. 3, e.g., the step ofFIG. 3may be performed in parallel.

For purposes of providing a clear example, the steps ofFIG. 3shall be explained below from the perspective of imaging device122ofFIG. 1performing the steps ofFIG. 3. However, in an embodiment of the invention, two or more imaging devices in system100may simultaneously perform the steps ofFIG. 3.

In step310, imaging device122monitors communications exchanged between clients and imaging devices over network102to identify process requests. The purpose of step310is for imaging device122to identify process requests sent over network102, and once identified, imaging device122retrieves custom job data from the identified process request.

In an embodiment, imaging device122may perform step310by receiving a process request sent from client110to imaging device122over network102.

In an embodiment, imaging device122may perform step310by detecting process requests sent from client110to other imaging devices over network102. To illustrate, imaging device122may be configured to detect communications, exchanged by clients and imaging devices over network102, which conform to the Web Services protocol. Techniques for detecting communications that conform to the Web Services protocol are well known to those in the art, and are provided by the Web Services protocol, available from the W3C.

In an embodiment where imaging device122is configured to detect communications, exchanged over network102, which conform to the Web Services protocol, imaging device122may listen on network102to detect a PrintTicket. A PrintTicket is a data structure, specified by the Web Services protocol, for storing custom job data. Once a particular PrintTicket is detected, imaging device122extracts the custom job data from the PrintTicket.

In other embodiments, imaging device122is not configured to detect communications, exchanged over network102, which conform to the Web Services protocol, but instead, is configured to detect communications, exchanged over network102, which conform to another protocol that supports interoperable machine-to-machine interaction. In such an embodiment, imaging device122may listen on network102to detect a data structure, specified by that protocol, for storing custom job data. Once the particular data structure containing the custom job data is detected, imaging device122extracts the custom job data from the data structure. As a result, embodiments of the invention need not employ the Web Services protocol, but may use other protocols available now or developed in the future that support machine-to-machine interaction.

In an embodiment, imaging device122may store data that identifies a set of identified imaging devices on network102. For example, imaging device122may store a set of network address (e.g., IP address) for the set of identified imaging devices on network102. When a process request is detected by imaging device122in step310, imaging device122may determine if the imaging device, to which the process request is directed, is a member of the set of identified imaging devices. If the detected process request is directed to a member of the set of identified imaging devices, then imaging device122may proceed to retrieve the custom job data from the process request. However, if the detected process request is not directed to a member of the set of identified imaging devices, then imaging device122may ignore the process request. In this way, imaging device122may restrict which process requests may be used as a basis for updating the current configuration of imaging device122.

For example, it may be desirable to only update the current configuration of imaging device122based on the activity of imaging devices that are in close physical proximity to imaging device122. This is so because imaging devices that are not in close physical proximity to imaging device122may be used by different users or for different uses than imaging device122. As a result, in such an embodiment, imaging device122may store data that identifies a set of identified imaging devices that are in close physical proximity to imaging device122, so that only process requests directed towards imaging devices in the set of identified images devices are processed by imaging device122to extract the custom job data.

In this embodiment, other criteria may be used as a basis for determining the composition of the set of identified imaging devices other than the physical proximity of the identified imaging devices to imaging device122. The composition of the set of identified imaging devices may be based on a certain characteristic that each imaging device in the set of identified imaging devices shares with imaging device122. For example, the characteristic shared by each of the set of identified imaging devices and imaging device122may be (a) a portion of a company or organization to which each imaging device is associated or (b) an intended use associated with each imaging device.

After a particular process request has been detected, and custom job data has been retrieved from the particular process request by imaging device122, processing proceeds to step320.

In step320, imaging device122updates its current configuration to reflect a detected process request. For example, in an embodiment, imaging device122updates current configuration data220, maintained by imaging device122, to reflect the custom job data retrieved from the detected process request. As explained in further detail below, current configuration data220need not be updated with each process request received or identified by imaging device122; instead, imaging device122may wait to update current configuration data220until a condition is satisfied, e.g., a certain amount of time has expired or a certain number of process requests have either been received or identified.

In an embodiment, imaging device122updates current configuring data220to reflect the detected process request using use data.FIG. 4is an illustration of use data410according to an embodiment of the invention. Use data410is data, maintained by an imaging device, which indicates how electronic documents have been processed by imaging devices. Each time imaging device122receives custom job data from a detected process request in step310, imaging device122updates use data410maintained by imaging device122. In an embodiment, imaging device122may also update use data410to reflect any process requests sent by clients to imaging device122.

Use data may take many forms. As shown inFIG. 4, use data410may be implemented as a count of how many times each allowed value of each feature supported by imaging device122was used in processing an electronic document. In another embodiment (not depicted), use data410may be implemented by indicating, for each allowable value for each feature supported by imaging device122, a ratio of (a) those identified process requests that contain custom job data that identifies the allowed value for the feature to (b) those identified process requests that contain custom job data that identifies the feature. Use data410may be implemented using any format capable of expressing how imaging devices have processed electronic documents.

In an embodiment, whenever use data410indicates that a particular allowed value of a particular feature is more popular than the allowed value of the particular feature identified by the current configuration data220, then imaging device122updates current configuration data220to identify the particular allowed value of the particular feature that is now most popular. For example, assume that imaging device122detects a particular process request communicated over network102, imaging device122retrieves custom job data from the detected process request, and updates use data410as shown inFIG. 4. If current configuration data220currently identifies allowed value Y of the hole punch feature, then imaging device122will update current configuration data220so that it identifies value X of the hole punch feature, since value X of the hole punch feature is now the most popular allowed value for the hole punch feature. Any criteria may be used to determine the most popular value of a particular feature.

In an embodiment, imaging device122may delay the updating of current configuration data220. To illustrate, imaging device122may wait for a configurable amount of time to expire after imaging device122detects that current configuration data220identifies a particular allowed value of a feature that is no longer the most popular allowed value for that feature before updating current configuration data220. Alternately or additionally, imaging device122may wait to update current configuration data220until (a) a configurable number of changes need to be made to current configuration data220and/or (b) a configurable number of distinct process requests have been identified or received by imaging device122. In this manner, the current configuration of imaging device122is prevented from changing rapidly over a short amount of time.

In an embodiment, after imaging device122updates the current configuration, imaging device122may cease to store any portion of use data410that reflects activity performed prior to when the current configuration was updated. In this manner, imaging device122may avoid storing large amounts of data.

In an embodiment, only certain features of the current configuration of an imaging device may be dynamically updated by performing the steps ofFIG. 3. In such an embodiment, the current configuration with respect to some features supported by an imaging device may be updated by performing the steps ofFIG. 3, while the current configuration with respect to other features may only be updated by an administrator. In other embodiments, any feature supported by an imaging device may be updated by the performance of the steps ofFIG. 3.

Having describing how an embodiment updates the current configuration of an imaging device, extensions and alternatives involving secure communications shall now be presented.

Extensions and Alternatives Involving Secure Communications

In some embodiments, clients may issue process requests to imaging devices in a manner which imaging device122cannot directly observe, e.g., a security feature supported by IPV6 or another transmission protocol may be used in sending process requests to imaging devices, thereby preventing the process requests from being directly observed by imaging device122. In such an embodiment, step310may be performed by imaging device122receiving a notification of a particular process request from another device on the network or imaging device122requesting such a notification from other imaging devices.

For example, in an embodiment, imaging device120may store a set of network addresses for imaging devices to which notification of one or more process requests received by imaging device120should be sent. When imaging device120receives a process request, imaging device120may issue a notification of the process request to each imaging device associated with a network address maintained by imaging device120. In this way, imaging device122may receive notification, of a process request received at imaging device120, from imaging device120.

The notification identifies the custom job data associated with the process request associated with the notification. Imaging device120may issue a notification of a process request, received by imaging device120, to imaging device122each time that imaging device120receives a process request, or imaging device120may wait a configurable interval before issuing a notification, so that a notification may identify multiple process requests.

In another embodiment, imaging device122may maintain a network address for other imaging devices on network102, such as imaging device120. After a predetermined interval, imaging device122may send a request, to each imaging device for which imaging device122maintains a network address, for use data that indicates how electronic documents were processed by the imaging device using features supported by the imaging device. Once imaging device122receives the use data from the imaging devices, imaging device122may update its current configuration to reflect the received use data. In this way, imaging device122may update its current configuration to reflect how electronic documents were processed by other imaging devices in an environment where communications exchanged between clients and imaging devices cannot be directly monitored.

Implementing Mechanisms

The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system500, various machine-readable media are involved, for example, in providing instructions to processor504for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device510. Volatile media includes dynamic memory, such as main memory506. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.