Blog Post

Windows IT Pro Blog
7 MIN READ

Keep business going with Universal Print

Saurabh_Bansal's avatar
Jun 14, 2022

Printing plays a critical role in many industries, and there are times when a print job needs to be completed immediately:

  • In retail, customers expect receipts to be printed quickly so they can get on their way.
  • In warehouses, a print outage can slow down order processing and cause bottlenecks.
  • In office environments, some latency may be acceptable as users often walk to the printer after printing from their desktops. However, larger delays may hurt employee productivity.

Hybrid work is accelerating digital transformation—and print is transitioning from on-premises to the cloud, too. A part of Microsoft 365, Universal Print is a serverless print infrastructure that eliminates the need for on-premises print servers and installing and updating printer drivers on Windows devices.

For many of you, latency is an important concern specifically when print is part of a critical business process. When you move your business to the cloud, you expect print performance to be on par with on-premises print servers. The Universal Print team has made it a goal to meet or exceed this!

Let's explore what factors impact print performance and latency with Universal Print, and what this means for you.

The print job journey

A print job navigates through multiple components as it makes its journey from the user's device to a printer. Components may vary depending on specific deployments and the technologies included with those deployments. Let's take the simplest case via Universal Print where no technologies are added.

Stage 1: The employee initiates a print job

Component: Windows or the browser app on a mobile device

This local operation on the endpoint is executed quickly and efficiently, so there is no impact.

Stage 2: The print job is processed locally

Component: Windows or the browser app on a mobile device

For Windows, this is the time it takes to spool the file locally after people click print. Similarly, OneDrive for the web converts the document to PDF before transferring to Universal Print. Complexity of the document impacts the time it takes to render a document into a printer-supported format, applying policies, etc.

Stage 3: The print job is uploaded to the cloud

Component: The Universal Print service

There are multiple factors that influence print latencies here:

Network bandwidth: This will determine the time taken to upload the print job from the user's device to cloud. Note: if the print jobs are initiated in a cloud application, performance will be better as the jobs are transferring from cloud to cloud.

Location of cloud service: The upload to the cloud will be faster if the data center is geographically near to the employee's location. We've made sure Universal Print is deployed globally across all major Azure data centers, so if your Azure AD tenant is close to your users, performance will generally be better.

Protocol used by the endpoint or the app:

  1. Universal Print is built on Printer Working Group's (PWG) Internet Printing Protocol (IPP). Windows uses IPP and uploads the job to Universal Print in a single step.
  2. Applications prefer to use Microsoft cloud print Graph APIs. The APIs are REST-based and easy to integrate, lightweight, and flexible to implement in workflows, and provide reliable uploads of large print jobs over unreliable network connections. Creating print jobs via Graph APIs involves four steps, so over slower network connections, back and forth traffic between application and Universal Print may add a short delay.

Stage 4: Job is processed within the cloud

Component: The Universal Print service

Processing in the cloud is typically very quick (less than a second), but in some specific scenarios, there may be small delays:

Document conversion: Universal Print may receive a job in a format that is different from the format supported by the printer (or connector). This requires an additional step to convert the document. For example, documents printed from Windows 10, versions 1903 and 1909 are received by Universal Print in OXPS format; if the target printer is Universal Print ready and supports PDF only, then jobs need to be converted to PDF.

Custom workflows: You can choose to include an application from a third party in your workflows that may introduce a pause in the job to do additional processing.

Stage 5: Printer checks for any pending jobs in cloud

Component: Universal Print ready printer or Universal Print connector with older printers.

Once the job is processed in the Universal Print service, it waits for the destination printer to check in and download the job(s). From a Zero Trust security perspective, the connection is always initiated by a registered printer, never by the Universal Print cloud service, and all traffic is encrypted using TLS 1.2.

A shared printer can check for new jobs in multiple ways:

Event-based notifications based on IPP standard: Printers maintain a lightweight open connection with Universal Print and thus are notified immediately on this connection of new jobs as soon as they are ready to be downloaded. This is the preferred way to get notified for new print jobs.

Polling: Mostly using IPP, printers can request a list of pending jobs at periodic intervals. The length of interval adds to the print latencies. For example, a printer that polls every 60 seconds may introduce a worst-case delay of 60 seconds to a job. This polling interval is implemented by the printer manufacturer, so check with them what it is and if it can be changed.

Cloud Service-to-service event-based change notifications via Microsoft Graph APIs: Some printers will register with a third-party cloud service, usually from the printer manufacturer. The third-party cloud service will integrate with Universal Print cloud services. The services registers to get job notifications for specific printers from Universal Print. Jobs are notified instantaneously through the cloud-to-cloud setup. This is similar, but more optimal to the IPP's event-based notifications.

We work with printer OEMs and recommend they use event-based notifications based on IPP standards. We recommend checking with your printer manufacturer on what notification method is being used, and always keep your firmware or integration apps on the printers up to date.

Stage 6: The printer downloads the print job(s)

Component: Universal Print ready printer or Universal Print connector with older printers.

Universal Print ready printers follow the IPP standard and perform operations to download the print job reliably: acknowledging the job, fetching the job metadata, and finally downloading the document. The Universal Print connector does the same for older printers that cannot connect to the cloud directly.

Latency depends on the network bandwidth and print job size. Most print jobs tend to be small, less than one MB or a few MBs, and download very quickly. If a busy printer receives multiple jobs within a short duration e.g., ten jobs within five seconds, then there is one more factor to consider: does the printer wait for the current job to be fully processed before downloading the next one? Most Universal Print ready printers, especially those with local storage, will download multiple jobs and store them locally. As soon as the first job is printed, the next job will start processing.

If your printers, including those connected through the Universal Print connector, rely completely on the cloud for queuing jobs with no local storage, they wait for the previous job to be complete before downloading the next job from cloud.  In most circumstances, printers with local storage optimize for faster printing and are the better choice, as they can download all the available print jobs and locally cache them while the first job is being processed. Universal Print has optimized the way printers download print jobs and achieved 30% faster communication for printers to download.

Stage 7: The printer processes the jobs and updates the print job status with Universal Print.

Component: Universal Print ready printer or Universal Print connector with older printers.

Updating the print job status and printer status (ready, busy, sleep) happens outside of the print job flow, and does not impact print latency.

Universal Print performance, facing the challenges

Our aim is to make cloud printing as fast as possible. Over the past year, we have made significant progress in some of the components of the print flow. However, more needs to and can be done. We consider performance a key requirement for every Universal Print feature that is designed, and essential when we review existing components of the service.

We constantly work with our software and hardware partners to develop new capabilities and allow partners to grow the capabilities of Universal Print. In our collaboration with printer manufacturers, we have been able to considerably improve the speed that can be achieved with Universal Print ready printers. Several printer OEMs implemented IPP-based event-based job notifications. As a result, one manufacturer reduced the average new job notification latency from 30 seconds using polling to less than two seconds using event-based notification. This significant gain in speed led a customer to buy hundreds of new printers from this manufacturer.

Equally important is our collaboration with software providers that are adding components to the print flow, as they make extensive use of the Microsoft Graph API to achieve this integration. Thanks to jointly testing these scenarios, we achieved 50% improvement in the time needed to create and upload a print job via Microsoft Graph APIs.

Organizations around the world are securing their assets and networks by proactively embracing Zero Trust. Universal Print helps companies nullify potential attack vectors on their print infrastructure by isolating printers and users on their own networks, with one not having direct visibility to the other. Universal Print manages the communication between users and printers and authenticates each resource with every single transaction. For example, every time a printer wants to check its cloud print queue for pending jobs, it can do so only by identifying itself using the certificate it was issued at printer registration. 

In terms of end-to-end experience, Universal Print has achieved an almost 40% reduction in print latency over the past year. We worked closely with a customer on the rollout of Universal Print in their organization, and together managed to speed up printing by 70%. We understand speed is important to you, and we want to learn from you and work with you on this challenge. I developed a survey to collect data and identify additional latency issues that we can solve together. Please share your feedback at https://aka.ms/UPSurvey-Perf.

 

Updated Jan 24, 2023
Version 4.0
No CommentsBe the first to comment