System and method for the hybrid harvesting of information from peripheral devices

In one embodiment there is a system and method for harvesting data from at least one device, such that there is stored on a particular device, prior to the start of each harvesting session, an application program, which enables the harvesting of certain data from the device. At the conclusion of a harvesting session, the application program is removed from the device. In one embodiment the application is in the form of a chailet.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is related to commonly-assigned U.S. patent application Ser. No. 10/308,761 entitled “SYSTEM AND METHOD FOR HARVESTING OF DATA FROM PERIPHERAL DEVICES”, the disclosure of which is hereby incorporated by reference herein.

FIELD OF THE INVENTION

This invention relates to the harvesting of data from remote devices and more particularly to a system and method for the harvesting of such data using hybrid techniques.

DESCRIPTION OF RELATED ART

It has become common practice to electronically retrieve, or harvest, parametric information such as, for example, consumables status, device state, and error conditions from peripheral devices. These peripherals can be, for example, printers, multifunction devices, and copiers. Currently, this harvesting is accomplished using Ethernet protocols, such as System Network Management Protocol (SNMP). In many situations, the target peripheral devices (the devices from which the information is to be harvested) do not support the SNMP protocol or only partially support that protocol.

One solution to this problem would be to add an interpretive code to the peripheral device. Such code is called a chailet and would reside in a memory device on the peripheral. This solution, however, has a major limitation in that the peripheral device would have to have some form of permanent memory so that the chailet could survive power cycles (for example, the off-condition) of the peripheral device. Such permanent memory is expensive, rendering this solution uneconomical.

BRIEF SUMMARY OF THE INVENTION

In one embodiment there is disclosed a system and method for harvesting data from a plurality of devices, such that there is stored on a particular device, prior to the start of each harvesting session, an application program that enables the harvesting of certain data from the device. At the conclusion of each harvesting session, the application program is removed from the device. In one embodiment, the application is in the form of a chailet.

DETAILED DESCRIPTION

Turning now toFIG. 1, there is shown system10in which processor11is shown in conjunction with database13adapted for harvesting data from a plurality of peripheral devices P1-PN via network12. The harvested information from peripherals P1-PN is stored, in one embodiment, temporarily in database13and is then communicated under control of processor11to processing center14at a location remote from the peripheral devices.

Note that using the system and methods of this invention, processor11may gather data from one peripheral P1or from a group of peripherals, with the gathered data being stored in database13for a period of time. The system could be established such that data can be harvested from several groups (or nodes) of peripherals with the data being stored in database13. Subsequently, at some time when it is convenient, the data may be transmitted from database13via network12to processing location14. Processing location14can be, for example, a system that keeps track of the consumables, such as ink and paper, used in a printer (or other peripheral device) so that a central location can re-supply the consumables to each device as necessary. This allows for the proper operation and maintenance of peripheral devices P1-PN from a remote location.

Turning now toFIG. 2, there shown peripheral P1having processor22and memory21contained therein. Processor22may be optional, and memory21may be volatile, nonvolatile, or combination thereof and could be of any size. Various programs for operating device P1are typically contained in memory21, some of the programs are capable of being accessed from an external source. Typically, the interaction between the harvesting system and the specific peripheral device would be under control of System Network Management Protocol (SNMP), which is an internet protocol that is utilized for the gathering of data from various peripheral devices connected to a specific network.

FIG. 3shows a schematic view of peripheral P1with processor22and memory21with the addition of chailet31. In one embodiment, chailet31has been downloaded from processor11through network12(FIG. 1) into peripheral P1. Preferably, chailet31has relatively few lines of code and is loaded at the beginning of the harvesting cycle for a particular peripheral device (or group of devices). Chailet31is removed from peripheral device P1(or group of devices) at the end of the harvesting session. During the harvesting session chailet31acts as the intermediate code between a network SNMP application and a locally supported JAVA program on peripheral device P1.

Turning now toFIG. 4, there is shown one embodiment of a system and method40utilizing the inventive concepts. At the start, an inquiry is made via process401as to whether the required information is obtainable from SNMP. If obtainable, then the SNMP is used to harvest the information via process402and that information is sent for storage in database13via process403.

If the required information is not obtainable from SNMP, as determined by process401, then process404determines if the peripheral supports Java Virtual Machine (JVM) and installable JAVA programs. If the answer is no, then data cannot be harvested from this peripheral device, and the system goes on to check for other peripheral devices, via process409.

However, if the peripheral device does support the JVM, as determined by process404, then process405determines if a chailet has been loaded this harvesting session. If a chailet has not been loaded as determined by process405, then a chailet is loaded via process406under control of processor11(FIG. 1). If the chailet was previously loaded, or once the chailet is loaded on a device, it is then operable to assist in harvesting data from the specific device via process407. The harvested data is sent to database13via process408. When all data has been harvested from the specific peripheral device, a determination is again made via process409as to whether this is the last peripheral. If it is not the last peripheral, then the next peripheral is selected via process410and the iterations repeat.

If this was the last peripheral, then the chailet that had been stored at the beginning of the session is removed via process411. After removing the chailet via Process411, the data that has been harvested can remain in database13for a period of time for later delivery or could be delivered, under control of process412, to a remote location, such as to processing14via network12, as shown inFIG. 1.