# HP Open Extensibility Platform (OXP)

HP Open Extensibility Platform (HP OXP), developed by Hewlett-Packard Co., is an enterprise software development platform that consists of three unique layers. 1) HP OXPd, the device layer, enables document workflow applications, 2) HP OXPm, the management layer, exposes functionality for management software like HP Web Jetadmin, and 3) HP OXPw, the workflow layer, embeds web services technology into software like the HP Universal Printer Driver (HP UPD). The device layer, or HP OXPd, provides a software development kit (SDK) for creating document workflow applications based on standard web service protocols. Document workflow applications are value-added software applications designed specifically to increase user productivity while interacting with multifunction printers ("MFPs").
HP OXPd version 1.6 provides a development platform for creating web applications that improve document workflows. These web applications, called document workflow applications, typically reside on remote web servers and users access them via the device control panel of an HP LaserJet MFP or HP LaserJet Flow MFP. There are many benefits to this service-oriented architecture, including improved user productivity due in part to centrally managed application software, reduced embedded device firmware, and improved software compatibility.
HP OXPd is a standard feature for HP LaserJet printers and MFPs manufactured after 2010 and is available as a firmware upgrade for many legacy HP devices. Details on which products qualify for the upgrade can be found on hp.com. The software development kit is available for third-party software developers that qualify for the HP OXP Developer Program.

## Description

HP OXPd is intended to be a fleet-wide SDK (software development kit) that provides developers access to a consistent set of device services APIs used to develop workflow applications that support scanning, printing, and document manipulation. HP OXPd supports a true web application model that allows the application logic to reside on a remote web server and invoke device service APIs while delivering an interactive user interface on device control panels. This decoupled device user interface is made possible with embedded device web browser technology which provides a rich user experience using standard web protocols like XHTML, JavaScript, and AJAX patterns. The design goals for HP OXPd include creating an application framework that facilitates a simple method for web-based document workflow application creation while simultaneously reducing device specific code requirements.

## Device Service APIs

In the current release (HP OXPd 1.6) device web service APIs, or exposed methods, include UI configuration services, scan services, USB accessory services, and security services. Web applications that utilize the HP OXPd APIs will operate consistently across a wide variety of HP devices. This saves time and energy associated with the development, qualification, deployment, and updates of workflow application software.
Depending on the perspective the HP OXPd enabled device can be viewed as client or server technology. From a developer's perspective, the HP OXPd enabled device is a server component which provides access to the exposed methods via the SOAP protocol. In HP OXPd, this is referred to as the physical viewpoint and shows the remote web application as the client and the HP device as the server. However, from a users', or logical perspective, the device behaves consistently with standard client technology accessing a remote server web application via a standard web browser. Both perspectives are correct and are important theoretical concepts for understanding the HP OXPd development platform. (See Figure 1)
Configuring an HP OXPd application on an HP LaserJet (Flow) MFP requires an icon or button for the top level menu, a title, a description of the web application, and the URL of the web application. When users press the menu button a browser application is launched and the URL is retrieved from the remote web server and displayed on the device control panel. Users interact with the remote web application via a dynamically rich touch-based graphical control panel. HP OXP configuration services provide web application developers a method for configuring the browser-based control panel on the HP OXP-enabled device.
HP OXPd scan services enable a web application to control the HP LaserJet (Flow) MFP scanning functions remotely. Additional methods provided by HP OXPd scanning services include getting the scanner's capabilities and settings, configuring scanner settings, and creating scan job tickets. Scan job tickets contain important information like destination (http) and filename, optional metadata, and transmission mode. There are currently two transmission modes available in HP OXPd 1.6: job mode and image mode. In job mode thumbnails of scanned images are shown on the device control panel for users to preview job before sending to the destination. Image mode scanned pages are sent immediately to the destination as they are scanned. HP OXPd scanning services also provide methods for starting the scan job, monitoring, and cancelling the job, if necessary.
HP OXPd 1.6 USB accessory services enable remote web applications with the ability to communicate with USB accessories physically attached to HP LaserJet (Flow) MFPs. The methods exposed with this service include registration of USB devices as well as the ability to read and write to them. An important feature with the USB accessory services is the ability for multiple web applications to share USB accessories with other active web applications.

## Security

Channel encryption is used by HP OXPd to prevent the unauthorized access of user data. Specifically, Secure Sockets Layer (SSL) is employed whenever the HTTP protocol is used. This is also known as HTTPS. The HP OXPd enabled device will request and validate a server’s identity certificate before establishing a connection.
If user authentication is enabled, the user is prompted for credentials at the device control panel. These credentials are then stored in an HTTP header and forwarded to an HP OXPd web application for validation. Since network credentials are being passed via the HTTP header, HP strongly recommends using SSL with HTTP, or HTTPS. This security measure will encrypt the users' credentials and effectively protects sensitive data travelling to and from devices from unauthorized access.