In 1986, within a few weeks of joining Digital Equipment Corporation as an Enterprise Management Architect, I was tossed a “simple” assignment of resolving a distributed queuing problem between VMS, Ultrix and the new line of LPS networked laser print servers. Customers were complaining that print jobs were not being printed in exact time-stamp order, with suspicion that one operating system was being given precedence over the other operating system. Since there was a bit of contention between the VMS proponents and the Ultrix proponents, the problem needed to be corrected to avoid internecine fighting within the customer-base. The real problem was with the lack of a coherent distributed queuing strategy between multiple print servers (each of which pre-queued a small number of jobs at a time) and multiple client OS printer queues. As anyone with experience standing in line at the bank knows, it can be a crap shoot who gets to a teller first when there are multiple lines to multiple tellers.
Solving the problem required more than a simple fix to the LPS and OS queuing systems. The solution was a new model for distributed printing across the networked printer and software product lines. So, I joined Tom Hastings from the Printer Division and colleagues from across engineering, program management and marketing to define a common Print Systems Model for the corporation.
To be successful the model needed to be implemented across VMS, Ultrix, Printing Systems and a number of software application groups. Our new model defined support for distributed imaging services that went significantly beyond what was supported in VMS and Unix printing subsystems. Unfortunately, the Ultrix group refused to make changes to the lpd printer daemon because they didn’t want to deviate from the de-facto Unix standards. And the VMS group, while willing to extend their printer supervisor, wouldn’t change to align with the Unix lpd because they needed to be backward compatible for existing 3rd-party commercial printing applications. So, after a year’s worth of work fixing the technical queuing problem at the model level, we were still dead in the water with the product groups. A simple technical solution was not sufficient to fix the problem. We needed to start thinking strategically.
I suggested an outrageous solution to the problem – if we couldn’t change our VMS customers and their 3rd-party applications, we’d have to change the Unix industry so that Ultrix could evolve… all so that VMS and Ultrix could work together to print jobs consistently across Digital’s networked printers.
To change the entire Unix community we first needed to get credibility for the proposed changes, so we joined a fledgling printing systems standards effort at ECMA (European Computer Manufacturers Association). Siemens, ICL, Bull and Xerox were already participating in the ECMA distributed printing working group. They were motivated to develop the standard by similar problems within and between their own companies.
It took awhile to come to agreement on a standard during many trips to various European cities. (Though that might sound exciting, we did precious little site-seeing, just a lot of smoky rooms and a lot of cutting and pasting with real scissors and glue sticks!) During those meetings, I suspect some folks thought I was crazy pushing for an RPC rather than message-passing protocol. (I was thinking ahead to Unix implementations.) And they definitely thought I was crazy for suggesting additions to support features that we now expect in multi-function printers and computer-driven web-printing systems. But we ended up with a draft standard that was appreciated by many in the Unix community as well as in the commercial printing industry.
Of course to get the Unix community to take the hook, and not just appreciate the bait from afar, we needed to have a reference implementation. Project Athena at MIT had gained some traction and was already well-funded by Digital, IBM and Apollo, so I proposed a follow-on project to build an ECMA-based reference implementation that I named the Palladium Print System. All three companies and MIT contributed engineers to work on the implementation. HP joined the informal consortium when it acquired Apollo early in the project. The project was formally positioned as a test prototype of the developing ECMA standard, and indeed, our early implementation experiences were used to fine-tune the developing standard. The Palladium implementation was so successful, that while it wasn’t able to exactly track the evolving standard, it still ended up being shipped by HP as OpenSpool V1.0 as well as becoming the basis for IBM AIX and Digital Unix print services.
The final version of the Palladium Print System was adopted by the Open Software Foundation as part of the OSF Distributed Management Environment. We had successfully changed the Unix community, at least to the point where the Digital Ultrix group (now name Digital TRUE Unix), could adopt the Digital Print Systems Model as reflected in the Palladium Print System. The VMS group embraced the Print Systems Model in their own implementation of the VMS print server and printer supervisor. And the operating systems could now work with the LPS Print Server networked printers to queue jobs consistently.
Similar results were won within Xerox, HP, Sun, Siemens and other computer manufacturers. Based on the success of the Palladium Print System, Digital developed strategic partnerships with Xerox and Sun to bolster their mutual market positions through the PrintXchange implementation.
Postscript: The ECMA standard was approved, considered within ANSI, DT and CCITT, before being adopted as International standard ISO 10175 – Document Printing Application (DPA). DPA became the basis for the X/Open POSIX PSIS, IETF Internet Printing Protocol, Printer Working Group (PWG) and IEEE-ISTO standards. It became the strategic protocol for all high-end Xerox printers. It was incorporated into Microsoft Windows as the Internet Printing Protocol. It has become the protocol of choice for electronic submission of print jobs to commercial offset and web-printing houses. The standard’s protocol has evolved from being based on ISO OSI message passing to being based on RPC to, now, based on HTTP.
All this happened because a few customers complained that their co-workers’ print jobs got printed a few minutes earlier than their own.
Acknowledgements: My grateful thanks to my reviewers: Carl-Uno Manros, former standards negotiator for Siemens and Xerox; Tom Hastings, former standards negotiator for Digital Equipment Corporation and Xerox; Stan McConnell, former standards negotiator for Xerox.