IT departments everywhere face a dilemma about serving end users: staff does not increase as fast as service demands do. Coping successfully with increasing demands requires the use of ever more automated solutions, so that service can be provided with more efficient use of staff time. Automation is typically associated with server-based solutions because it is much easier to work with a handful of servers than a multitude of desktops. One prominent trend has been to move virus-scanning tools from desktops to antivirus servers. The catch-22 of automated services is that IT departments are so chronically buried, it is often difficult to find the time to develop automation.

When services that users perceive as fundamental fail to work, IT departments are given no quarter by frustrated end users. In many cases, time pressures often force the use of Band-aids to resolve the crisis at hand, and repeated fixes build up until the system threatens to collapse under the weight of dozens of well-meaning repairs. Most end-user happiness comes from the satisfactory performance of just four applications: Web access, email, file sharing, and printing. If the "big four" work, complaining is kept to a dull roar. If any of the big four fail, making repairs and restoring service is the first priority. Unfortunately, for the system administrator, printing is shrouded in mist, folklore, and even superstition. Anything more complicated than the most basic printing problems tend to be solved by wizards uttering strange black-magic incantations that have been handed down through the ages.

Printing can easily be a nightmare for system administrators, but it doesn't have to be. Here are five principles for designing robust and reliable print services.

  1. If You Don't Have Central Control, You Don't Have Much. Providing print services requires a choice between two roads. One is to have each client print directly to the printer. For very small offices, this is by far the easier choice; but larger organizations require features that direct printing cannot offer. Global changes are needed in very large organizations. When clients contend for access to a printer, all the clients will stall as the conflict is resolved; access to printers can be haphazard because gaining access depends on sending a request shortly after the previous request has completed processing.

    Organizations larger than a few people follow the other road and use a central print server. Users of print services may be highly compensated, and providing a queue to free up the client is extremely valuable in terms of time-savings for the user. Print servers can also maintain a prioritized queue of outstanding requests so that print jobs can be processed in an orderly fashion. Out-of-control runaway jobs can be canceled by system administrators on the print server, rather than on the client submitting the job.

  2. That's My Solution and I'm Sticking to It (Standardization). In "The Road Not Taken", Robert Frost's narrator chooses one road and sticks to it. Printing problems at large organizations tend to occur because both the direct printing and the server-based methods are used, and the result tends to blend the worst of both worlds.

    Because different teams support different client operating systems, multiple "central" servers spring up. Providing print services for Windows clients is treated as a logically separate problem from providing print services to Macintoshes, even though the basic procedure is identical. Each client operating system is given a "central" server, and multiple print servers contend with each other for access to the printer, which destroys orderly queueing and leads to unpredictable delays. Some printers implement queuing facilities on interface cards, but the reality is that queues implemented in printer hardware tend to have problems coping with multiple simultaneous jobs arriving on different protocols. Additional problems arise when the printer hardware cannot easily switch between protocol suites and locks up because an AppleTalk job is sent following a Unix job.

    Multiple print servers quickly drain resources from IT departments because multiple teams are involved in the success of print services. When networks are redesigned, printers may be moved by the network operations group, which physically moves the printer and connects it to a new data jack. Router and switch operations groups reassign new network addresses (keep in mind that not all networks run only TCP/IP). Each desktop support group is then responsible for modifying the server configuration to ensure that jobs continue to arrive at the printer. Even when that process works without a hitch, problems with print service tend to be duplicated on each server platform and must be solved on several different platforms instead of just one. Frequently, problems lie in the network and fixes to one protocol suite tend to cause problems for other protocols, and no group can maintain (and retain) staff who have deep expertise in all the protocol suites used.

    The road less-traveled is to have a true central server. Such servers must be multiprotocol servers conversant with all the network client protocol suites as well as any protocols used to relay jobs from the server to the printers. With only one server platform, orderly queues are maintained and staff time is saved because only one server platform requires troubleshooting and maintenance. Multiprotocol servers make printers more accessible by translating between protocols. For example, jobs submitted by Windows clients can be sent on to AppleTalk printers. Formerly inaccessible printers are opened to the entire world by a multiprotocol server.

  3. Scalability is Really About People. Every institution must adapt IT systems to change. Growing companies must adapt solutions to ever-larger numbers of users. In recent years, the buzzword "scalability" has been applied to systems that can easily grow from handling small demands to handling much larger demands. Adapting a solution to larger demands requires more software, more hardware, and (most importantly of all) more people. More money can acquire more software and hardware relatively easily, but increasing staff can be almost impossible in the tight labor markets in "tech hubs" such as Silicon Valley. (Eliminating drudge work for staff also has other benefits, most notably in job satisfaction and retention. Higher job satisfaction may even lead to even higher productivity, but that's a topic for another article.)

    Meaningful scalability results from using staff time more efficiently as the solution grows in size. Most importantly for large organizations is that changes made to the print system must not require end user intervention. Reconfiguring hundreds or thousands of desktops is not a realistic plan for implementing anything short of drastic changes. Server-based changes are far quicker and easier. Skilled network and system administrators are the most precious resource that IT departments have, and they should not be squandered on menial, preventable tasks.

  4. Choose Printers Carefully. In many ways, this principle is really a logical follow-on to the previous one. Printers can be purchased purely on price, or there can be a more considered decision with the needs of end users in mind. More than anything else, users will complain about delays in service. Even in medium-size institutions, a moderately fast printer equipped with Ethernet hardware keeps the queue from getting too long, and tempers from getting too short.

    Introducing printers with Ethernet interfaces poses challenges, but does offer significant benefits. The largest challenge is managing the network configuration of each printer. Fortunately, state-of-the-art printer firmware includes BOOTP and DHCP clients. Either BOOTP or DHCP can be used to perform boot-time configuration of the network stack and rudimentary configuration of the server software built into the printer.

    PostScript is worth considering for many reasons. Most importantly, it is printer independent, and thus, all PostScript drivers produce the same printed page. Changing PostScript hardware does not require changing drivers on every desktop system.

    Monitoring large numbers of printers can be extremely difficult. Even large organizations may have only ten clients per printer, which makes automated printer management as important as automated desktop management. Remote information is best gathered by using SNMP and the printer Management Information Base (MIB). By implementing the printer MIB, printers can report a wealth of operational details to the network administrator. SNMP is such a useful remote-management feature that Network Printing devotes an entire chapter to SNMP, plus an appendix that describes the most useful printer-related SNMP data structures.

  5. Be Prepared to Get Your Hands Dirty. The third principle was that scalability on today's networks comes from using staff time as efficiently as possible. Ruthlessly protect staff time by automating whatever is possible. If a script can save one hour of staff time per week, it eliminates more than a week of tedious labor per year. If a script can save working with individual desktops, it is extremely valuable. The person who can write such scripts is priceless.

    System administrators should constantly consider better ways to accomplish their every day jobs, and management should support that endeavor. One weak point, one repetitive task, can destroy scalability, but programming can ride to the rescue. One system administrator I know was so clever in creating automated solutions to problems facing his department that he is likely to become a patent-holder in the near future.

Create value. It's fun

Matthew Gast is currently a Research Fellow at Nokia, where he works on routing, security, and mobile communications. He lives in Silicon Valley, but can frequently be found traveling throughout the U.S. and Europe.

O'Reilly & Associates will soon release (October 2000) Network Printing.