NDPS

Good-bye, Queue World!

Linda Boyer

Managing today's queue-based print services requires some technical acrobatics in part because you must use more than one utility to set up and maintain these services: You use Novell's NetWare Administrator (NWADMIN) utility to create Print Queue, Print Server, and Printer objects in your Novell Directory Services (NDS) tree; you use Novell's PSERVER utility to start the print server; and you may use a third-party utility to manage the printer once it is up and running. Even if you don't use a third-party utility, managing queue-based print services has inherent inconveniences, such as requiring you to create three NDS objects for only one printer.

If setting up and maintaining queue-based print services does not give you a management headache, dealing with printer users will. Queue-based print services are often the source of these users' problems--and their problems quickly become your problems.

Users call you complaining that they need to print an important document immediately, but the printer is bogged down with a dozen other print jobs. Or they call you to ask where the color printer is and whether they can use it. Sometimes they call you to report that they found the color printer and captured a port to that printer--but they still can't print their document. As a result, you spend valuable time running from printer to workstation to server console, finding the cause of each problem, shuffling print jobs around in print queues, and loading printer drivers.

Fortunately, you can now bid adieu to the queue world of printing and say hello to Novell Distributed Print Services (NDPS). NDPS, which is the result of a joint development effort between Novell, Hewlett-Packard (HP), and Xerox, is the first fully distributed network printing solution. NDPS is both a product and an architecture that makes network printers easier for you to manage--and easier for users to use. (For more information about the NDPS architecture, see "The Agents Behind the Action" section.)

CLEARLY MORE CONVENIENT

NDPS is a collection of NetWare Loadable Modules (NLMs), administrative and user tools, and NDPS-enhanced Novell client software. In the initial release of NDPS, the tools and client software are available only for Windows 95 and Windows 3.x workstations. However, in subsequent releases of NDPS, the tools and client software will also be available for other platforms.

NDPS saves you time and money by significantly reducing the inconveniences associated with managing print services. For example, with NDPS running on your company's network, you use only the NWADMIN utility to set up and maintain network printers. You also create only a single NDPS Printer object for each printer, and you perform all print management tasks, such as changing the order of print jobs, from the NDPS Printer object. In addition, you do not have to install printer drivers because NDPS installs these drivers for you.

Users benefit from NDPS as well. For example, NDPS allows users to view a printer's status, such as how many print jobs are waiting to be printed, before users send a print job to the printer. NDPS also allows users to search your company's network for printers with specific capabilities, such as printers that can print a color document. In addition, NDPS allows users to send a print job to any printer to which they have been granted the necessary rights, without having to capture a port to the printer.

WHY DIDN'T SOMEONE THINK OF IT BEFORE?

Unlike queue-based print services, NDPS enables you to create a single NDS object--the NDPS Printer object--to represent one printer. This one-to-one relationship between NDS objects and printers is significant if only because the relationship is so logical: You install a printer, and you create one NDS object for this printer--now that's intuitive.

Alternatively, you can decide not to create an NDS object at all, depending on how you configure the printer. In an NDPS environment, you can configure a printer as one of the following types of printers:

Public Access Printers--Convenience Without Security

A public access printer, as the name implies, is available to all users as soon as a Printer Agent for that printer appears on the network. Printer Agents, which form the core of the NDPS architecture, are software representations of physical printers. (For more information about Printer Agents, see "The Agents Behind the Action" section.)

Public access printers are not represented by NDS objects; these printers simply exist on the network for all users to see and use. Users must be attached to the network to use public access printers but do not need to log in to the network to use these printers. (That is, users do not have to be authenticated to the NDS tree to use public access printers.)

Although public access printers are not represented by NDS objects, you can manage these printers with the same utility you use to manage NDS objects--the NWADMIN utility. From the Tools pull-down menu, you select the Public Access Printers option to manage a particular public access printer. The Public Access Printers option is one of several options included in the NDPS snap-in modules for the NWADMIN utility. These snap-in modules are installed automatically when you install NDPS.

The sole, but significant, benefit of public access printers is convenience: You attach a printer to the network, you ensure that a Printer Agent exists for the printer, and the printer is ready to be used. (See "Configuring Printers.") You don't create an NDS object to represent the printer, you don't grant users rights to use the printer, and you don't set any of the configuration options that are available for controlled access printers.

Controlled Access Printers--Convenience, Security, and More

A controlled access printer, as the name implies, enables you to assign NDS rights to control which users can see, use, and manage this printer. To configure a printer (including an existing public access printer) as a controlled access printer, you simply create an NDPS Printer object to represent this printer. (See "Configuring Printers.") The NDPS Printer object you create then appears in the NWADMIN utility's NDS browser, along with all of the NDS objects in your company's NDS tree.

As an NDS object, a controlled access printer offers a full range of security options. You can also configure default properties for a controlled access printer, including event and status notification options, which are unavailable to public access printers. (See the "Configuration Page" section.)

CONVENIENT CONTROL

The most obvious advantage of NDPS is that you can use the NWADMIN utility to complete any management task for a public access printer or a controlled access printer: As mentioned earlier, you access a public access printer by selecting the Public Access Printers option from the Tools pull-down menu, and you access a controlled access printer by double-clicking the appropriate NDPS Printer object in the NDS browser.

For example, if you wanted to view the current status of a controlled access printer, you would open the NDPS Printer object. If you wanted to change the order of print jobs for this printer, you would open the NDPS Printer object. If you wanted to change the printer's spooling configuration, you would open the NDPS Printer object.

Printer Control Page

Whether you access a public access printer or a controlled access printer, the Printer Control page for the printer appears. (See Figure 1.) From this page, you can view a printer's features, access a printer's control panel, view a printer's current status, pause or resume the input or output of a print job, and view a printer's identification.

You can also configure spooling options on the Printer Control page by selecting the Spooling Configuration option from the Job pull-down menu. When the Spooling Configuration dialog box appears, you can specify options such as where the printer's print jobs should spool and which scheduling algorithm (First In, First Out, for example) the printer should use. (See Figure 2.)

In addition, the Spooling Configuration dialog box allows you to specify a Printer Agent to service existing print queues. Because you might have to maintain one or more print queues for non-NDPS clients, NDPS is backward compatible with queue-based printers.

To enable the Printer Agent associated with the printer to service an existing print queue, you specify the location of this print queue in the QMS Backward Compatibility field. (See Figure 2.) As a result, non-NDPS clients retain their current printing capabilities, and you do not have to modify these clients' configurations.

Configuration Page

You can access two other pages from the Printer Control page for a controlled access printer: the Access Control page and the Configuration page. These two pages are not available from the Printer Control Page for a public access printer.

You can use the Access Control page to grant users access to a controlled access printer. The Access Control page for an NDPS Printer object is the same as the Access Control Page for other NDS objects, and you grant users rights to a controlled access printer just as you grant users rights to other NDS objects.

You can use the Configuration page to create several printer configurations (which are sets of job-handling instructions) for one controlled access printer. The Configuration page lists all of the printer configurations you have created for a particular controlled access printer. If you have not created any printer configurations, only the Default Printer Configuration appears in the Printer Configurations list. (See Figure 3.) Every printer has a default printer configuration, which you can modify but not delete.

By selecting one of the printer configurations you have created and clicking the Modify button, you can access a dialog box that enables you to set different configuration options. For example, you can specify the number of copies you want to print, or you can choose to print a banner--options you can currently set by creating a print job configuration in the NWADMIN utility. (A banner, which is a page that prints before each document, includes information such as your name and the filename of the document you are printing.)

You can also set a few configuration options that are available only with NDPS. For example, you can specify a date and time to print a document, and you can indicate that users should be notified about the status of the print jobs they have submitted to the printer. In addition, you can specify that users should be notified with a pop-up screen, a log file, or an e-mail message sent through GroupWise or an MHS-compliant e-mail program.

Printer Drivers

You can also use the Configuration page to specify that you want a controlled access printer to be flagged for installation on NDPS clients. If you click the Designate to Be Installed on Client option, NDPS automatically installs the printer and the appropriate printer drivers on the NDPS clients you specified.

The controlled access printer then appears on the clients' list of installed printers, along with the printer's default printer configuration. Users can accept the default printer configuration or change this configuration to meet their needs. (See the "Modifying Printer Configurations" section.)

THE UPSIDE FOR USERS

Users are not limited to using only the printers you selected to be automatically installed on their NDPS client. Users can install additional printers by using the Novell Printer Manager utility, which is included with the NDPS client. When users select the New option from the Printer pull-down menu (see Figure 4), the Novell Printers dialog box appears, displaying a list of installed printers. This list includes all of the printers that have been installed on the NDPS client and for which NDPS has loaded a printer driver and created a logical port. (See Figure 5.)

When users click the Add button, a list of available printers appears. This list includes all of the public access printers on the network and all of the controlled access printers in the user's current context. Users can then browse the NDS tree to view and select controlled access printers in another context.

To install a printer, users highlight the printer they want to install and click the Install button. That's it; the printer is ready to use. Users no longer need to capture ports to print queues or worry about manually loading printer drivers.

Users can also use the Novell Printer Manager utility to search for available printers with specific characteristics. This capability eliminates the need for users to wander around the building or call you when they need to find a color printer. Instead, users can simply click the Filter button on the Novell Printers dialog box. Another dialog box opens, enabling users to specify the printer characteristics they are searching for. For example, users can search for characteristics such as a printer's description, location, type, color, resolution, speed, and duplexing capabilities. (See Figure 6.)

Modifying Printer Configurations

When users install additional printers on their NDPS client, they can accept or change installed printer configurations. For example, suppose that Jane wanted to create a custom printer configuration that automatically printed three copies of a weekly progress report. Jane also wanted this report to be printed on letter-size paper with a cover page on each copy.

In this case, Jane would install a printer configuration, which she might call Progress Report. Next, Jane would highlight the Progress Report printer configuration in the Novell Printer Manager utility's main window. Jane would then choose Configuration from the Printer pull-down menu. The printer configuration's Property page would appear. (This page is similar to the Property page you can access from the NWADMIN utility's Configuration page.) Jane would then configure properties that define how, where, and when the print job should be printed.

Users can change any properties of an installed printer configuration that you have not locked. Users can also modify printer configurations on a job-by-job basis by selecting the Jobs option from the Printer pull-down menu. (See Figure 4.) When the list of scheduled print jobs appears, users can highlight the print job they want to change and select the Configuration option from the Job pull-down menu.

When users set Job Configuration options (which are the same as Printer Configuration options), these options last only for the duration of the print job. Because the Novell Printer Manager utility does not store Job Configuration options, users cannot reuse these options. Users must reset the options for each print job.

Viewing the Status of Printers and Jobs

NDPS provides another convenient option for users: Users can view the current status of any available printer by double-clicking the icon for the printer. (This icon appears in the Novell Printer Manager utility's main window. See Figure 4.) When a user double-clicks a printer's icon, the Printer Information dialog box appears. From this dialog box, users can check out a printer before they send a print job to the printer. For example, users can see how many print jobs are waiting to be printed by a particular printer and what characteristics the printer has. Viewing a printer's status and characteristics helps users find the right printer for the job--before they send it.

Users can access the Printer Information dialog box to view information about a specific print job. The Printer Information dialog box displays a list of print jobs waiting to be processed by the printer the user selected. The user clicks the print job he or she is interested in to view this print job's current status and details about the condition of the print job (such as whether a page of the print job is jammed in the printer).

As mentioned earlier, users can also choose to be notified of such conditions. If users configure notification options, they do not need to access the Novell Printer Manager utility to view the status of a print job because NDPS automatically notifies users of this status.

THE AGENTS BEHIND THE ACTION

At this point, you should have a fairly good idea of what NDPS is and what it can do for you and the users on your company's network. However, you are probably still wondering exactly how NDPS works. To better understand how NDPS works, you need to understand the NDPS architecture.

The NDPS architecture is based on the International Standards Organization (ISO) 10175 Document Printing Application (DPA) standard. Because most printer manufacturers support this standard, their existing and future printers are fully compatible with NDPS.

To truly understand the architecture of NDPS, you need to understand the entities at its core: Printer Agents. As mentioned earlier, a Printer Agent is software that represents a physical printer. Every printer on the network is represented by a Printer Agent, which renders print queues and print servers obsolete, making printers themselves the focal point of NDPS.

A Printer Agent can be an NLM on an IntranetWare or NetWare 4.11 server, as is the case today; or a Printer Agent can be embedded software in a printer, as will be the case in the near future. Today, every printer on your company's network must have a Printer Agent running on a server. You can create a Printer Agent to represent each printer on the network, or you can use a Printer Agent that is created for you by third-party software. (For example, the HP gateway creates Printer Agents for its own printers. See "The HP Gateway" section.)

Eventually, server-based Printer Agents will be unnecessary because printers will include embedded Printer Agents. In 1998, Novell will release an updated version of the Novell Embedded Systems Technology (NEST) Office software developer's kit (SDK) that will include NDPS. Original equipment manufacturers (OEMs) will then be able to use the NEST Office SDK to embed NDPS and, therefore, Printer Agents in their printers.

Printer Agents store or have access to information about the printers they represent, such as the printer's name, network address, status, and characteristics. Printer Agents also store or have access to a printer's job-handling information--its scheduling algorithm, where its jobs should be spooled, and any printer or job configurations.

Printer Agents act as liaisons between NDPS clients and printers. When a user submits a print job, the job goes first to a Printer Agent, although this job appears to both the user and the NDPS client to go directly to a printer. (See "The Print Job's Journey.") A Printer Agent alone accomplishes what a print queue and print server combined accomplish in a queue-based printing environment.

However, a Printer Agent does more than spool print jobs and extract them from print queues: A Printer Agent has access to other network services that enhance basic print services. For example, a Printer Agent has access to a new service called Event Notification Service (ENS), which notifies users about the status of print jobs by way of a pop-up screen, a log file, or an e-mail message. (See the "ENS" section.) When a user asks to be notified about the status of a print job (such as when the print job is completed), the Printer Agent submits the user's request to ENS and later updates ENS on the print job's status. ENS, in turn, notifies the user.

The Printer Agents' Manager

On every server running one or more Printer Agents, you must load the NDPS Manager (NDPSM) NLM, which enables you to create and manage Printer Agents. The NDPSM NLM also enables Printer Agents on the same server to share resources, such as scheduling algorithms.

Next, you must create an NDS object to represent the NDPSM NLM. This object allows you to access the NDPSM NLM through the server console or through the NWADMIN utility. After you create the NDS object for the NDPSM NLM, you can create Printer Agents for controlled access printers. (See "Creating an NDPS Manager Object.")

The NDPSM NLM is only a temporary necessity in an NDPS environment. When printers with embedded Printer Agents are available, you will not have to load the NDPSM NLM because you won't need to create Printer Agents, and Printer Agents won't need to share resources that will be included with the embedded Printer Agents.

For now, however, you must load the NDPSM NLM on all servers that provide connectivity to printers, and you must associate the Printer Agents representing these printers with the NDPSM NLM. As with other NLMs, you can ensure that the NDPSM NLM is loaded automatically each time you boot a server by adding the following line to the AUTOEXEC.NCF file:

LOAD NDPSM [NDPSM object name and context]

Gateways to Printer Agents

Gateways connect Printer Agents to printers. When you create a Printer Agent, you configure the gateway associated with the Printer Agent to understand the printer's make and model and how this printer is attached to the network (by way of a parallel or serial port or via the RPRINTER utility, for example).

Like server-based Printer Agents and the NDPSM NLM, gateways are temporary components of the NDPS architecture: When Printer Agents are embedded in printers, you won't need to create these Printer Agents on servers. As a result, you won't need to install gateways to service the Printer Agents. In the meantime, however, gateways ensure that Printer Agents can communicate with printers regardless of the port or protocol you are using to connect these printers to the network.

NDPS is currently shipping with one gateway developed by Novell and another gateway developed by HP. In addition, Xerox offers its own gateway for NDPS.

Early in 1998, Novell will release the NDPS OEM SDK that will enable other OEMs to develop gateways for their printers and snap-in modules for the NWADMIN utility. An OEM's gateway will allow you to attach the OEM's printers to the network as NDPS printers. An OEM's snap-in modules, on the other hand, will allow you to manage these printers using printer-specific management utilities, which you will be able to access by opening the NDPS Printer object in the NWADMIN utility.

The Novell Gateway

The Novell gateway consists of two major components:

PDS is designed to translate some of the information in a print job's configuration channel. Every print job in an NDPS environment has two channels of information: A data stream channel, which the printer driver formats, and a configuration channel. The print job's configuration channel contains the printer configuration that the user selected for this print job.

PDS is designed to translate certain commands (such as the LANDSCAPE and DUPLEX commands) in the printer configuration into printer-specific language, although NDPS printer configurations do not include commands that require translating. As a result, the primary function of the Novell gateway is to channel information to and from the printer through PH, which supports the following printing components:

The HP Gateway

The HP Printer Gateway NLM connects Printer Agents to printers that attach to the network via an HP JetDirect print server or an HP JetDirect card. The print server is configured to support HP JetAdmin's direct mode and to use the IPX/SPX protocol.

You can configure the HP Printer Gateway NLM first to locate all of the printers on the network with HP JetDirect cards that are using Service Advertising Protocol (SAP) to advertise their location. You can further configure the HP Printer Gateway NLM to create Printer Agents for these printers. The Printer Agents will then register with the Service Registry Service (SRS) and stop using SAP. (For more information about SRS, see the "SRS" section.)

The Xerox Gateway

Xerox has also developed a gateway to enable Printer Agents to communicate with Xerox printers. The Xerox gateway, which should be available by the middle of this month, will be included with every printer Xerox ships. You will also be able to download the Xerox gateway from Xerox's World-Wide Web site (http://www.xerox.com). Other printer manufacturers are likely to develop gateways for their printers when Novell releases the NDPS OEM SDK for writing gateways.

BROKERING NEW SERVICES

When you install NDPS, you will notice another new NDS object: the Broker object. (See Figure 7.) The Broker NLM, which is loaded automatically when you install NDPS on a server, appears as an object in your company's NDS tree.

Although the Broker NLM was developed with and is being released with NDPS, its services are not exclusive to printing. In fact, the Broker NLM brokers three services that any network resource can use:

RMS

RMS stores network resources (such as drivers, fonts, and forms) in a central location and locates these network resources for clients, printers, or any other network node that requests them. For example, using RMS, NDPS can automatically download printer drivers to NDPS clients.

NDPS also uses RMS to enable you to add, list, and replace banners and printer drivers for Windows 95 and Windows 3.x. For example, suppose that you created a printer configuration requesting a banner for a print job. Upon receiving the print job, the Printer Agent would access RMS, which would find the banner you specified and return the necessary information to the Printer Agent.

ENS

ENS enables network nodes, such as clients, to be notified of particular events related to other network resources, such as printers. For example, using ENS, NDPS enables you to create a printer configuration that requests notification of print jobs or printer status by way of a pop-up screen, a log file, or an e-mail message.

ENS also supports another notification method called programmatic notification. Through programmatic notification, applications can request notification of various events. These applications, in turn, can notify users by whatever method (by pager, for example) and interface the applications' developers choose.

For example, if Corel modified WordPerfect to support programmatic notification, WordPerfect could request to be notified when a print job is completed. WordPerfect, in turn, could notify users about the completed print job--without these users having to configure the printer to send such notification.

The NDPS independent software vendors (ISV) SDK enables ISVs to develop NDPS-aware applications such as applications that support programmatic notification. An alpha version of the NDPS ISV SDK is currently available on the Novell SDK CD-ROM. A final version of the NDPS ISV SDK will be available before the end of this year.

SRS

SRS enables network devices to register themselves in a registry rather than in the NDS tree. Using SAP, SRS alerts all network nodes of its location.

In an NDPS environment, ENS, RMS, and public access printers register with SRS. As a result, ENS, RMS, and public access printers do not use SAP to announce their presence to other network nodes. Only SRS uses SAP to advertise its availability. NDPS clients and printers access SRS to locate network services and devices such as printers.

SRS conserves bandwidth by reducing the number of network services and devices using SAP. For example, when you add a new printer to the network in a queue-based printing environment, the printer immediately begins advertising its availability using SAP, thereby consuming bandwidth. This printer continues to advertise its availability as long as the printer is active. (Although the default routing protocol for IntranetWare and NetWare 4.11 is NetWare Link Services Protocol [NLSP], printers still use SAP to advertise their availability. For more information about NLSP, see the related article.)

In contrast, when you add a public access printer to the network in an NDPS environment, the printer registers itself with SRS. SRS, in turn, informs NDPS clients of this printer's location and availability, reducing network traffic.

YOU'LL HAVE TO WEAR SHADES

Although the initial release of NDPS makes managing print services more convenient, NDPS has the potential to make these print services even easier to manage. For example, when OEMs embed Printer Agents in printers, you will not have to create Printer Agents, install a gateway, or install the NDPSM NLM and create an object for it. Because printers will include the Printer Agents, you will not need the NDPSM NLM to create these Printer Agents. And because Printer Agents will enable printers to communicate with NDPS clients, you will not need gateways.

With Printer Agents embedded in printers, NDPS will realize the plug-and-print myth: If you bought a printer with an embedded Printer Agent, you could plug the printer into the network, and this printer would be available immediately as a public access printer.

When OEMs develop snap-in modules for the NWADMIN utility, you will not have to exit this utility to use a printer-specific utility. Instead, you will simply install an OEM's snap-in module and click the appropriate NDPS Printer object in the NWADMIN utility's NDS browser window to access the printer-specific utility.

HP and Xerox have already developed snap-in modules for the NWADMIN utility. The HP snap-in module is shipping with NDPS, and the Xerox snap-in module is available with the Xerox gateway.

Finally, when NDPS supports Internet Printing Protocol (IPP), NDPS will extend its services over intranet and Internet connections. (For more information about IPP, see "Internet Printing Protocol.") Today, Novell is taking strides in that direction by leading an effort to drive the adoption of IPP as an Internet Engineering Task Force (IETF) standard.

As you might expect, NDPS is poised to support IPP, and as soon as the new protocol gets the IETF's stamp of approval, Novell will adapt NDPS to support IPP. You will then be able to use NDPS to install, find, print to, and manage printers throughout the world--without leaving your desk.

Linda Boyer works for Niche Associates, an agency that specializes in technical writing and editing.

NetWare Connection, October 1997, pp.6-22