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.
-----------------------------------------------------------------------------

Reply via email to