I would like to ask the members of this list to comment on the following text that I have written about different accounting methods. I would value if you would give insightful comments, correct factual errors and give complimenting information. Thanks in advance.
-- snip -- 4.2 Available Methods There are several ways to do accounting. A brief overview will be given of the methods available, noting some pros and cons. 4.2.1 Software These methods are those where the counting of impressions takes place in pure software implementations and the actual printer hardware is not involved at all. Two examples will be given here. In modern Microsoft Windows operating systems, applications call the Graphics Device Interface (GDI) to print. The GDI calls the printer driver for information, which is then used by the GDI to create a job. GDI then knows the number of impressions of a job and then delivers it to the spooler. If print output is produced in RAW format, the GDI is not used. [Win2k-ProResKit] The spooler logs the number of impressions in the event log where other software then can check for accounting information. By bypassing the GDI and sending a RAW job directly to the spooler, the spooler will log the job with zero impressions. Ghostscript is a cross-platform interpreter for PostScript. It can be used to count the number of impressions of a job before it is sent to the printer. There though exist ways to fool the Ghostscript into miscounting. Any software method suffers from the fact that the printer may not actually print all pages. For example, the printer could jam, run out of toner or paper, or even explode. The user would still get charged. This means that a software method does not fulfill the Requirement 5. 4.2.2 Proprietary Several printer manufacturers offer proprietary software solutions that work with their printers. These run on certain platforms only and only works with the manufacturers' printers. As a packaged solution, one can say that these does not fulfill Requirement 1, 2 nor 3. 4.2.3 PJL Hewlett-Packard's Printer Job Language (PJL) [PJL] is used by many existing accounting applications. By using the PJL commands JOB, EOJ, ECHO and USTATUS you should be able to get the number of impressions of a job and check on printer status. A connection is held open to the printer after the job has been sent to it, periodicly querying for whether the job is done. When the job finishes the number of impressions is read. Pros of this method is that almost all printers on the market today supports PJL on the paper. In reality the support is sketchy. What the commands return and when, while clearly specified in the technical reference manual, differs. One has to make sure that the commands really work and return what they are supposed to. In the end, whether the number of impressions is actually correct, is hard to know. Writing a general implementation that works with several printer models from different manufacturers could turn into a game och rules and exceptions. So the Requirement 1 and 5 are not clearly fulfilled. 4.2.4 SNMP The Simple Network Management Protocol (SNMP) [RFC1157] is a definition of a simple protocol by which management information for a network element may be inspected or altered by logically remote users. Together with companion memos which describe the structure of management information along with the management information base (MIB), these documents provide a simple, workable architecture and system for managing TCP/IP-based networks. Two of these companion memos are of particular interest to us. The Host Resources MIB [RFC1514] provides two status objects that can be used to describe the status of a printer: hrDeviceStatus and hrPrinterStatus. These objects describe many of the states that a printer can be in. The Printer MIB [RFC1759] provides another object, prtMarkerLifeCount, which gives us the count of the number of units of measure counted during the life of the printer using units specified in the object prtMarkerCounterUnit. Most often these units are impressions for home and office printers. SNMP is independent of the process of sending the content of the job to the printer. By using the two first of these objects to monitor whether the printer is done printing and the last object to retrieve the number of impressions before and after a job, an accurate number of actual printed pages can be calculated. The counter is located in the hardware (printer) and only counts the number of pages actually printed. Most printers on the market today support the two MIBs needed, so this method seems to be the best option. The same general implementation would work with several printer models from different manufacturers, as long as the printer supports SNMP and mentioned MIBs properly. -- snip -- ----------------------------------------------------------------------------- YOU MUST BE A LIST MEMBER IN ORDER TO POST TO THE LPRNG MAILING LIST The address you post from MUST be your subscription address If you need help, send email to [EMAIL PROTECTED] (or lprng-requests or lprng-digest-requests) with the word 'help' in the body. For the impatient, to subscribe to a list with name LIST, send mail to [EMAIL PROTECTED] with: | example: subscribe LIST <mailaddr> | subscribe lprng-digest [EMAIL PROTECTED] unsubscribe LIST <mailaddr> | unsubscribe lprng [EMAIL PROTECTED] If you have major problems, send email to [EMAIL PROTECTED] with the word LPRNGLIST in the SUBJECT line. -----------------------------------------------------------------------------
