Configuring printing devices using a mobile device that receives and display data that identifies a plurality of configurations for a printing device and indicates that the current configuration of the printing device has changed from a prior configuration

An approach is provided for configuring printing devices using a mobile device. The mobile device acquires, from a configuration manager, data that identifies a plurality of configurations available for a printing device. The mobile device displays the data and a user selects a configuration for the printing device. The mobile device causes the selected configuration to be applied to the printing device.

RELATED APPLICATION DATA

This application is related to U.S. patent application Ser. No. 16/805,651 entitled “CONFIGURING PRINTING DEVICES”, filed Feb. 28, 2020 and U.S. patent application Ser. No. 16/805,654 entitled “MANAGING THE CONFIGURATIONS OF PRINTING DEVICES”, filed Feb. 28, 2020, the contents all of which are incorporated by reference in their entirety for all purposes as if fully set forth herein.

FIELD

The technical field of the present disclosure relates to configuring printing devices.

BACKGROUND

Printing devices are often sold unconfigured or with a basic configuration that does not have security settings enabled. In addition, printing devices that are sold with security settings enabled may be reconfigured by end users, leaving them in an insecure state. Device management systems are available to enable system administrators to secure, control and maintain the configurations of printing devices. These systems, however, require trained Information Technology (IT) staff. This leaves organizations that do not have dedicated IT staff with printing devices that are vulnerable to third party attacks.

SUMMARY

A mobile device comprises a display, one or more processors, one or more memories, and a configuration application executing on the mobile device. The configuration application is configured to receive, from a configuration manager via one or more computer networks, data that identifies a plurality of configurations for a printing device, wherein each configuration, from the plurality of configurations, specifies a plurality of settings for the printing device. The configuration application causes the data that identifies the plurality of configurations for the printing device to be displayed on the user interface of the mobile device. In response to a user selection of a particular configuration, from the plurality of configurations, the configuration application acquires the particular configuration from the configuration manager and causes the particular configuration to be implemented on the printing device.

The aforementioned approaches may also be implemented by one or more computer-implemented processes and non-transitory computer-readable media that store instructions which, when processed by one or more processed, implement the approach.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It will be apparent, however, to one skilled in the art that the embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments.I. OverviewII. Printing Device ArchitectureA. Printing DeviceB. ERP SystemC. Configuration ManagerD. Mobile DeviceIII. Configuring Printing Devices Using A Mobile DeviceIV. Implementation Examples

An approach is provided for configuring printing devices using a mobile device. The mobile device acquires, from a configuration manager, data that identifies a plurality of configurations available for a printing device. The mobile device displays the data and a user selects a configuration for the printing device. The mobile device causes the selected configuration to be applied to the printing device.

As used herein, the term “configuration data” refers to data that specifies settings for printing devices. Example settings include, without limitation, paper/quality settings, effects settings, finishing settings, advanced settings, and security settings. Example security settings include, without limitation, HTTPS settings, IPP settings, TLS settings, encryption settings, FTP settings, WSD settings, RHPP settings, SNMP settings, etc. For example, security settings may pertain to user authentication for accessing a printing device, data overwrite and encryption on printing device storage, disabling certain communications protocols considered to be less secure, etc. As used herein, the term “configuration” refers to settings for a printing device and the term “current configuration” refers to settings currently applied to a printing device.

The approach described herein for configuring printing devices provides a technical solution to the technical problem of how to manage the configuration of printing devices to ensure that printing devices are operating with correct settings. The technical solution provides a user-friendly method for applying and maintaining a consistent and secure printing device configuration without the need for dedicated IT staff. The approach also allows a printing device without an Internet connection (or any network connection) to be configured, which is valuable in high security environments.

II. Printing Device Configuration Architecture

FIG. 1is a block diagram that depicts a printing device configuration arrangement100. Arrangement100includes a warehouse110, a customer site120, a printing device130, an Enterprise Resource Planning (ERP) system140, and a configuration manager150. The warehouse110is any physical location where the printing device130is initially configured prior to being relocated to the customer site120, as depicted inFIG. 1. The term “warehouse” is used herein for explanation purposes only and the warehouse110is not limited to a warehouse per se, and may include other physical locations such as a manufacturer, a distributor, etc. The customer site120is any physical location where the printing device130is in use. The term “customer site” is used herein for explanation purposes only and the customer site120is not limited to a customer site per se and may include other physical locations where the printing device130is in use.

The elements of arrangement100may be communicatively coupled via one or more wireless and/or wired computer networks of any type, and/or direct communications links that are not depicted inFIG. 1for purposes of explanation. Arrangement100may include additional or fewer elements, depending upon a particular implementation. The approach for configuring printing devices is described in the context of configuring a single printing device130for purposes of explanation, but embodiments are applicable to configuring any number of printing devices.

A. Printing Device

The printing device130is a device that prints print jobs, such as electronic documents. Embodiments are applicable to any type of printing device and example printing devices include, without limitation, printers, copiers, facsimile machines, and Multi-Function Peripherals (MFPs).FIG. 2is a block diagram that depicts an example implementation of a printing device200that includes a user interface210, a communications interface220, a configuration agent230, a printing architecture240, and a computing architecture250.

The user interface210allows a user to input information to the printing device200and/or displays information to the user. For example, the user interface210may be implemented by a display screen, a control panel, a keyboard, a pointing device such as a mouse, or any combination thereof. The user interface210may include graphical user interface controls displayed on a touch screen that convey information a user about the functionality and status of the printing device and also allow a user to select functions and input information to the printing device200.

The communications interface220provides for the exchange of data between the printing device200and other computing elements via wired, wireless, or direct connections. The configuration agent230configures (and reconfigures) the printing device130with configuration data, as described in more detail hereinafter. The configuration agent230may implement one or more Application Program Interfaces (APIs) supported by the configuration manager150and/or communicate with the configuration manager150via an HTTP or HTTPS connection. The configuration agent230may be implemented by one or more computer-implemented processes of any type. Furthermore, although the configuration agent230is depicted as a separate element for discussion purposes, the functionality provided by the configuration agent230may be integrated into other processes and/or elements on printing device200.

The printing architecture240includes hardware elements, software elements, or any combination of hardware elements and software elements for printing electronic data, such as print jobs. This may include, for example, a paper transport, logic circuits, a toner cartridge, a photosensitive drum, a laser, one or more coronas, a fuser, an erase lamp, power supply, etc.

The computing architecture250includes a processor252, a memory254, and an OS256. The processor252may be implemented by one or more microprocessors and associated computer hardware and/or computer software. The memory254may be implemented by volatile memory, non-volatile memory, or any combination of volatile and non-volatile memory. The OS256may be implemented by any type of operating system that may vary depending upon a particular implementation.

B. ERP System

The ERP system140includes data that maps printing devices to customers. The ERP system140may include other information, such as sales information, shipping dates, etc. The ERP system140may include a database for maintaining this information and a user interface to allow users to access and update the mapping data. The ERP system140may also include an interface so that the mapping data can be pushed to the configuration manager150or be obtained by the configuration manager150.

C. Configuration Manager

The configuration manager150configures printing devices as described herein. The configuration manager150may be implemented by one or more processes, such as a cloud application, a server process, etc. For example, the configuration manager150may be a process hosted on a server of a business organization, hosted as a cloud service accessible via the Internet, etc. The configuration manager150may provide an Application Program Interface (API) for exposing the functionality and data of the configuration manager150.

According to an embodiment, the configuration manager150uses different types of data to manage the configuration of printing devices. The data may be stored locally on a computing device on which the configuration manager150is executing, or remote from the configuration manager150, for example, in a database management system, data repository, etc.FIG. 4Ais a block diagram that depicts configuration selection data400, configuration data430, and printing device data450used by the configuration manager150to manage the configuration of printing devices. The configuration selection data400, configuration data430, and printing device data450may be maintained in any form or structure, depending upon a particular implementation, and although depicted in the figures and described herein as separate, may be combined in any manner.

The configuration selection data400specifies one or more configurations to be used for each type of printing device, for each customer.FIG. 4Bis a block diagram that depicts example configuration selection data400managed by the configuration manager150. In this example, there are three customers (Customer A, Customer B, Customer C) and three types of printing devices (Type 1, Type 2, Type 3). There are five standard configurations (C1, C1MS, C1HS, C2, C3) that correspond, respectively, to the three types of printing devices (Type 1, Type 2, Type 3). The standard configurations (C1, C1MS, C1HS, C2, C3) include settings that are appropriate for the corresponding type (Type 1, Type 2, Type 3) of printing device. For example, the standard configurations may include settings that are known to be stable with the corresponding type of printing device.

Custom configurations are specified for certain customers and types of printing devices. These include a custom configuration (Custom B-C1) for Type 1 printing devices for Customer B, and a custom configuration (Custom C-C2) for Type 2 printing device for Customer C. The settings in the custom configurations may be established by customers based upon their operating environment, user preference, policies, etc. For example, a particular customer may implement a configuration that uses security settings to provide greater security than standard configurations. The configuration selection data400may include other data that may vary depending upon a particular implementation and embodiments are not limited to the example data depicted in the figures and described herein.

As described in more detail hereinafter, the configuration manager150uses the configuration selection data400to determine configurations for a printing device to be presented to a user of the mobile device170. According to an embodiment, multiple configurations are presumed to be listed in priority, from highest to lowest, i.e., the first listed configuration is presented as a recommended configuration and the other configurations are presented as other configurations. For example, for Type 1 printing devices of Customer A, the C1 configuration is presented as the recommended configuration and the C1MS configuration, corresponding to a medium-level security version of configuration C1, is presented as another configuration that is selectable by the user.

The data in the configuration selection data400may be updated by a user via the configuration manager150. For example, a user may use a client device with a Web browser to access a Web-based interface provided by the configuration manager150. Although examples are described herein in the context of three customers and three types of printing devices, embodiments are not limited to these examples and are applicable to any number of customers and types of printing devices. The configuration selection data400may be created and maintained by an administrative user for example, using an application or a Web browser and the API of the configuration manager150.

The configuration data430includes configuration data for any number and types of configurations, where each instance of configuration data includes a plurality of settings for a printing device. The configuration data430may also store metadata for each configuration. The metadata may include information such as a description of the configuration, popularity or rating information for the configuration, etc. In the example configuration selection data400ofFIG. 4B, the configuration selection data400includes configuration data for configurations C1, C2, C3, Custom B-C1, and Custom C-C2. The configuration data430may be stored in any form or format that may vary depending upon a particular implementation and may be defined by a user via a user interface of the configuration manager150.

The printing device data450specifies data for printing devices including whether each printing device is configured and if so, with which configuration.FIG. 4Cis a block diagram that depicts example printing device data450managed by the configuration manager150. In this example, the printing device data450is depicted as a table, where each row of the table corresponds to a particular printing device and specifies a Serial Number, a Type, a customer ID, and a Configuration. The Serial Number is a number that uniquely identifies the printing device and although serial numbers are used herein for purposes of explanation, embodiments are not limited to using serial numbers per se and any data the uniquely identifies a printing device may be used. One example is a Media Access Control (MAC) address.

The Type is the type of printing device and in this example may have the value of Type 1, Type 2, or Type 3. The Customer ID is data that identifies an entity that controls or owns the printing device and although used herein for purposes of explanation, embodiments are not limited to Customer IDs per se and any data the uniquely identifies an entity that owns or controls a printing device may be used.

The Configuration is data that identifies the configuration for a printing device and in the present example may have the value of C1, C2, C3, Customer C-C2 or Customer B-C1. A blank or null value in cell means that a configuration has not yet been assigned to the printing device. This may occur, for example, when printing devices are sold to particular customers and corresponding entries created in the printing device data450, but those printing devices have not yet been configured using the approach described herein.

The configuration manager150may provide a Web-based user interface for creating and managing the configuration selection data400, the configuration data430, and the printing device data450. The Web-based user interface allows an administrative user to view the current configuration status of printing devices and to add, edit, and delete printing devices represented by the printing device data450. For example, the user interface may allow a user of a client device to add a new printing device and specify the serial number, type, customer ID and configuration, if the printing device is already configured. This may be done at any time, for example, when a printing device is sold to a customer, configured at the warehouse110, or deployed to the customer site120. If the new printing device is not yet configured, then the administrator does not have to specify a configuration and the printing device will be automatically configured as described herein. The administrative user may also change any of the parameters, including Serial Number, Type, and Customer ID.

Alternatively, configuration selection data400, the configuration data430, and the printing device data450may be populated based upon data received from third-party systems, such as an Enterprise Resource Planning (ERP) system, or device management systems, such as Streamline NX, by Ricoh. The user interface may also include controls that allow a user to search for printing devices by serial number (or other identifying information), customer ID, printing device type, configuration ID, etc. According to an embodiment, the configuration manager150tracks all actions performed with respect to the configuration selection data400, the configuration data430, and the printing device data450.

D. Mobile Device

Mobile device170is a mobile device that allows a user to configure the printing device130.FIG. 3depicts an example embodiment of a mobile device300and includes a display302, controls304, an image acquisition component136, a microphone308, speakers310, a communications interface312, a location component314, a configuration application316, a battery318, and a computing architecture320. Embodiments of mobile device300are not limited to the example depicted inFIG. 3and mobile device300may have fewer elements or additional elements, depending upon a particular implementation.

The display302allows the mobile device300to display information to a user and may be implemented by one or more displays or screens, etc. The display302is configured to display text and/or images in black and white and/or color. The display302may also be configured to accept user input via a touch screen.

The controls304allow a user to provide user input to the mobile device300and may include, for example, physical controls such as buttons, sliders, etc., and soft controls, such as graphical user interface objects, displayed on the display302. Embodiments may also include remote controls. For example, a physical controller, external touchscreen, or other device may include physical or soft controls that allow a user to provide input to the mobile device300. These devices may communicate with the mobile device300via a wired or wireless connection.

The image acquisition component306acquires images and generates image data that represents the images. The image acquisition component306may include, for example, one or more cameras and associated computer hardware and/or computer software or firmware.

The microphone308receives audio input from a user and converts the audio input into electronic signals. According to an embodiment, the mobile device300support voice recognition and recognizes spoken commands for controlling the mobile device300. The speakers310converts audio signals into audio output for users.

The communications interface312allows the mobile device300to communicate with other devices and may be implemented by one or more wireless and/or wired computer communications interfaces to support communications via Bluetooth, BLE, WiFi, WiGig, Near Field Communication (NFC), Infrared Data Association (IrDA), wireless USB, ZigBee, other Wireless Personal Area Network (WPAN) methodologies, mobile device wireless networks, etc.

The location component314is an element that determines a current location of mobile device300. The current location may be determined based upon data from sensors, such as GPS sensors, proximity sensors, etc.

The configuration application316allows a user to invoke functionality on printing devices, such as the printing device130. The configuration application316may provide a graphical user interface that includes various controls for invoking functionality on printing device130. The graphical user interface may mimic information displayed on user interface112of printing device130to provide a more favorable user experience.

The battery318provides electrical power to the mobile device300and may include any number of batteries of any type. The computing architecture320includes a processor322and storage1324and supports the execution of computing processes and the storage of data on the mobile device300. The processor322may be one or more computer processors that are capable of executing instructions stored in the storage324. The storage324may be implemented by volatile storage, non-volatile storage, or any combination of volatile and non-volatile storage.

III. Configuring Printing Devices Using a Mobile Device

The approach described herein for configuring a printing device using a mobile device is applicable to printing devices that have not been configured and printing devices that have already been initially configured. Embodiments are depicted in the figures and described herein in the context of a printing device that has been initially configured at the warehouse110and then configured using the mobile device170at the customer site120, but embodiments are not limited to this example and the initial configuration and subsequent configuration may be performed at any location. The initial configuration may be performed, for example, using a printing device management system.

FIG. 5is a message ladder diagram500that depicts messages exchanged between the elements in arrangement100during configuring the printing device130using the mobile device170. Starting in step502, the configuration application316on the mobile device starts and a user of the mobile device170is authenticated. For example, the user of the mobile device170may select an icon for the configuration application316to start the configuration application316. The configuration application316then queries the user to authenticate themselves. Authentication of the user may be performed in different ways depending upon a particular implementation. For example, the user may enter user information in the form of a user ID and password, a fingerprint, a voice capture, a face capture, etc. The user information is validated locally by the mobile device170, by the configuration manager150, or by an authentication service using, for example, a customer-specific database, a global user data, or an external directory such as Active Directory or LDAP. An authentication service may issue an authentication key that is provided to the mobile device170and compared to an authentication key held by the configuration manager150. The mobile device170may store the user information as user information326in the storage324for future use.

Upon successful authentication of the user, the mobile device170displays a start screen that prompts the user to locate themselves near a printing device of interest and in step504, the mobile device acquires printing device identification data that uniquely identifies the printing device130. This may be accomplished in different ways depending upon a particular implementation and embodiments are not limited to any particular approach. For example, the mobile device170may establish a communications link with the printing device130using a short-range communications protocol such as Bluetooth or NFC and retrieve a serial number, MAC address, or other information that uniquely identifies the printing device130.

As another example, the user may be prompted to orient the mobile device170so that the printing device130is within the field of view to enable the mobile device170to capture an image, using the image acquisition component306, of encoded printing device identification data attached to the printing device130or displayed on the operation panel of the printing device. Examples of encoded printing device identification data include, without limitation, a barcode and a QR code. The mobile device170decodes the encoded printing device identification data to recover the printing device identification data.

As yet another example, the mobile device170captures an image of an information plate for the printing device130and uses optical character recognition to extract the serial number or MAC address, and other information such as the type and model number of the printing device130. The printing device identification data that uniquely identifies the printing device130may be stored as printing device data328in the storage324. After the mobile device has successfully acquired the printing device identification data that uniquely identifies the printing device130, the configuration application316displays a confirmation message to the user.

In step506, the mobile device170connects to the printing device130and acquires the current configuration of the printing device130. The mobile device170may connect to the printing device130via Wi-Fi (possibly in connection with Ethernet, if the printing device130is Ethernet connected), via a direct Wi-Fi connection to the printing device130(if the printing device130does not otherwise have an active network connection), or via a short-range communications protocol such as Bluetooth or NFC, if Wi-Fi cannot be used. Once connected, the configuration application316generates and transmits a request to the configuration agent230using, for example, an API provided by the configuration agent230. Once retrieved, the current configuration of the printing device130may be stored as configuration data330in the storage324. The current configuration includes settings currently being used by the printing device130.

According to an embodiment the mobile device170generates current configuration identification data that corresponds to the current configuration of the printing device130. The current configuration identification data may be, for example, a signature, hash result, checksum value or the like, that is generated using the settings currently being used by the printing device130. According to an embodiment, after the mobile device170has acquired the current configuration of the printing device130, the mobile device170terminates the communications link with the printing device130.

In step508, the mobile device170establishes a communications link with the configuration manager150via, for example, a local Wi-Fi or Internet connection or through a mobile network and transmits a configuration data request to the configuration manager150. For example, the configuration application316causes a configuration data request to be generated and transmitted to the configuration manager150. The configuration data request may be in any form or format that may vary depending upon a particular implementation, such as an HTTPS request and includes information about the printing device130, such as the printing device identification data, type and/or model number, and the current configuration identification data to allow the configuration manager150to determine whether the current configuration of the printing device130has changed, as described in more detail hereinafter. Alternatively, instead of or in addition to the current configuration identification data, the request may include the current settings being used by the printing device130.

In step510, the configuration manager150determines configurations for the printing device130. According to an embodiment, the configuration manager150consults the printing device data450to identify particular printing device data that corresponds to the printing device identification data included in the configuration data request of step508. In the present example it is presumed that the printing device identification data specifies a serial number of SN8.

Referring to the printing device data450ofFIG. 4C, the row that corresponds to the serial number SN8 specifies that the printing device130is currently configured with the C1MS configuration. The C1MS configuration is therefore designated as the current configuration hereinafter. The configuration manager then checks the row for a customer ID and a Type value. In the present example, the row specifies a customer ID of Customer C and a type of Type 1. The configuration manager uses these values to identify a recommended and one or more other configurations from the configuration selection data400to present to the user in subsequent steps. In the present example, the configuration selection data400for Customer C and Type 1 specifies three configurations that include C1HS, C2, and C3. The C1HS configuration will be provided as the recommended configuration, and the C2 and C3 configurations will be provided as other configurations.

In situations where the printing device data450for a particular printing device does not have a value in the Configuration field, indicating that the particular printing device has not yet been configured, and there is no value in the Customer ID field, the configuration manager150uses the “No Assigned Customer” portion of the configuration selection data400to select the configurations. In situations where there are no values in the Configuration, Customer ID or Type fields of the printing device data450, then the configuration manager150may use model number to device type mapping data, maintained by the configuration manager150, to identify a type for the printing device based upon the model number received from the mobile device170. Once the type has been determined, the configuration manager150uses the “No Assigned Customer” portion of the configuration selection data400to select the configurations.

In step512, the configuration manager150transmits data that identifies the configurations to the mobile device170. In the present example, the data specifies the C1MS, C1HS, C2, and C3 configurations. The data may specify different types of information that may vary depending upon a particular implementation and embodiments are not limited to any particular information. For example, the information may specify the last configuration implemented on the printing device130, one or more recommended configurations for the printing device130, and one or more other configurations for the printing device130.

The information may also indicate whether the current configuration of the printing device130has changed from the last configuration. The configuration manager150may determine this by comparing last configuration identification data to the current configuration identification data received from the mobile device170. The last configuration identification data is a signature, hash result or checksum value generated from the settings specified by the last configuration data, in a similar manner that the mobile device170generates the current configuration identification data. If the results are different, then the configuration of the printing device130has changed from the last configuration. The information may also include metadata for the printing device130from the configuration data430.

In step514, the mobile device170displays the data that identifies the configurations.FIG. 6depicts an example configuration screen600displayed on the display302of the mobile device170. In this example, the configuration screen600includes, at the top, information about the printing device130including a name, a serial number, and a location to enable the user to confirm the printing device130being configured.

The configuration screen600also specifies the last configuration, a recommended configuration, and two other configurations that were determined by the configuration manager150. The last configuration is the configuration that, according to the printing device data450maintained by the configuration manager150, is currently implemented by the printing device130. This allows the user to confirm the current configuration being used by the printing device130to comply, for example, with a security requirement or a policy. In situations where the printing device130has not yet been configured, there is no value for the last configuration. In addition, a message may be displayed to notify the user that the printing device130has not yet been configured. In the present example, the C1MS configuration is displayed as the last configuration, the C1HS configuration is displayed as the recommended configuration, and the C2 and C3 configurations are displayed as other configurations.

In the example depicted inFIG. 6, a warning message “Warning! Configuration has changed” is displayed adjacent the last configuration information. This message indicates that the C1MS configuration of the printing device130has changed relative to the last configuration maintained by the configuration manager150. For example, the C1MS configuration of the printing device130may have been changed by an end user or by an unauthorized third party (maliciously). The configuration application316displays this message in response to the information received from the configuration manager150in step512.

A description is provided for each configuration, along with a rating and a selection control. The rating may be determined from ratings provided by users of the printing device. For example, the displayed rating may represent an average rating across users of the printing device.

In step516, the user of the mobile device170selects a particular configuration. In the present example, the user may select to reapply the current configuration C1MS, select the recommended C1HS configuration, or one of the other configurations C2 or C3. A user may choose to reapply the current C1MS configuration, for example, if the configuration screen600indicates that the current configuration has changed. If the current configuration has not changed, indicated by an absence of the warning message, and the user wishes to continue to use the current configuration, then no selection needs to be made. Alternatively, the user may wish to change the configuration of the printing device130.

In the present example, the user may choose the recommended C1HS configuration to provide greater security via more restrictive security settings. The C1HS configuration may now be the recommended configuration for Customer C Type 1 devices because of, for example, a change in policy by Customer C.

To select and apply a particular configuration the user selects the appropriate checkbox and then the “Apply Selected Configuration” control from the configuration screen600. In the present example, it is presumed that the user selects the recommended C1HS configuration.

In step518, the mobile device170generates and transmits a request for the particular configuration to the configuration manager150. For example, the configuration application316generates and transmits to the configuration manager150a request that requests the C1HS configuration. In step520, the configuration manager150receives the request and provides the particular configuration to the mobile device170. According to an embodiment, this includes the settings specified by the configuration data for the particular configuration.

In step520, the mobile device170receives the particular configuration from the configuration manager150and in step522, transmits the particular configuration to the printing device130. For example, the configuration application316may generate and transmit a request to the configuration agent230on the printing device, where the request instructs the configuration agent230to apply the particular configuration, which in the present example is the C1HS configuration. In step524, the configuration agent230applies the particular configuration to the printing device by making one or more calls to the OS256to cause the controller on the printing device130to apply the settings specified by the particular configuration.

According to an embodiment, the user of the mobile device170is allowed to configure only printing devices and configurations that correspond to customers for which the user is authorized access. The configuration manager150may maintain data that specifies customers and configurations that users are allowed to access via the user authentication process described herein.

According to an embodiment, the configuration server logs configuration actions performed on the printing device130. This may include, for example, recording information about changes in configuration, such as the printing device identification data, the current configuration, the new configuration, the time of change, user identification data that identifies the user of the mobile device, mobile device identification data that identifies the mobile device used to change the configuration, etc.

The approach for performing a configuration check and reconfiguration described herein provides several benefits. For example, it allows a printing device to automatically maintain a consistent, secure configuration with minimal involvement of IT personnel. It also allows the configuration of printing devices to be easily changed, even for a large number of printing devices. For example, a customer may decide to change the configuration for certain types of printing devices, e.g., to provide better security. This can be easily accomplished by the customer accessing the configuration manager150and updating the printing device data450for the customer's printing devices. The configuration agents then automatically update all of the printing devices without requiring IT staff to perform the updates.

IV. Implementation Examples

Computer system700includes an input/output (I/O) subsystem702which may include a bus and/or other communication mechanism(s) for communicating information and/or instructions between the components of the computer system700over electronic signal paths. The I/O subsystem702may include an I/O controller, a memory controller and at least one I/O port. The electronic signal paths are represented schematically in the drawings, for example as lines, unidirectional arrows, or bidirectional arrows.

At least one hardware processor704is coupled to I/O subsystem702for processing information and instructions. Hardware processor704may include, for example, a general-purpose microprocessor or microcontroller and/or a special-purpose microprocessor such as an embedded system or a graphics processing unit (GPU) or a digital signal processor or ARM processor. Processor704may comprise an integrated arithmetic logic unit (ALU) or may be coupled to a separate ALU.

Computer system700includes one or more units of memory706, such as a main memory, which is coupled to I/O subsystem702for electronically digitally storing data and instructions to be executed by processor704. Memory706may include volatile memory such as various forms of random-access memory (RAM) or other dynamic storage device. Memory706also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor704. Such instructions, when stored in non-transitory computer-readable storage media accessible to processor704, can render computer system700into a special-purpose machine that is customized to perform the operations specified in the instructions.

Computer system700further includes non-volatile memory such as read only memory (ROM)708or other static storage device coupled to I/O subsystem702for storing information and instructions for processor704. The ROM708may include various forms of programmable ROM (PROM) such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). A unit of persistent storage710may include various forms of non-volatile RAM (NVRAM), such as FLASH memory, or solid-state storage, magnetic disk or optical disk such as CD-ROM or DVD-ROM, and may be coupled to I/O subsystem702for storing information and instructions. Storage710is an example of a non-transitory computer-readable medium that may be used to store instructions and data which when executed by the processor704cause performing computer-implemented methods to execute the techniques herein.

Computer system700may be coupled via I/O subsystem702to at least one output device712. In one embodiment, output device712is a digital computer display. Examples of a display that may be used in various embodiments include a touch screen display or a light-emitting diode (LED) display or a liquid crystal display (LCD) or an e-paper display. Computer system700may include other type(s) of output devices712, alternatively or in addition to a display device. Examples of other output devices712include printers, ticket printers, plotters, projectors, sound cards or video cards, speakers, buzzers or piezoelectric devices or other audible devices, lamps or LED or LCD indicators, haptic devices, actuators or servos.

At least one input device714is coupled to I/O subsystem702for communicating signals, data, command selections or gestures to processor704. Examples of input devices714include touch screens, microphones, still and video digital cameras, alphanumeric and other keys, keypads, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dials, slides, and/or various types of sensors such as force sensors, motion sensors, heat sensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors and/or various types of transceivers such as wireless, such as cellular or Wi-Fi, radio frequency (RF) or infrared (IR) transceivers and Global Positioning System (GPS) transceivers.

In another embodiment, computer system700may comprise an internet of things (IoT) device in which one or more of the output device712, input device714, and control device716are omitted. Or, in such an embodiment, the input device714may comprise one or more cameras, motion detectors, thermometers, microphones, seismic detectors, other sensors or detectors, measurement devices or encoders and the output device712may comprise a special-purpose display such as a single-line LED or LCD display, one or more indicators, a display panel, a meter, a valve, a solenoid, an actuator or a servo.

When computer system700is a mobile computing device, input device714may comprise a global positioning system (GPS) receiver coupled to a GPS module that is capable of triangulating to a plurality of GPS satellites, determining and generating geo-location or position data such as latitude-longitude values for a geophysical location of the computer system700. Output device712may include hardware, software, firmware and interfaces for generating position reporting packets, notifications, pulse or heartbeat signals, or other recurring data transmissions that specify a position of the computer system700, alone or in combination with other application-specific data, directed toward host724or server730.

Computer system700may implement the techniques described herein using customized hard-wired logic, at least one ASIC or FPGA, firmware and/or program instructions or logic which when loaded and used or executed in combination with the computer system causes or programs the computer system to operate as a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system700in response to processor704executing at least one sequence of at least one instruction contained in main memory706. Such instructions may be read into main memory706from another storage medium, such as storage710. Execution of the sequences of instructions contained in main memory706causes processor704to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

Various forms of media may be involved in carrying at least one sequence of at least one instruction to processor704for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a communication link such as a fiber optic or coaxial cable or telephone line using a modem. A modem or router local to computer system700can receive the data on the communication link and convert the data to a format that can be read by computer system700. For instance, a receiver such as a radio frequency antenna or an infrared detector can receive the data carried in a wireless or optical signal and appropriate circuitry can provide the data to I/O subsystem702such as place the data on a bus. I/O subsystem702carries the data to memory706, from which processor704retrieves and executes the instructions. The instructions received by memory706may optionally be stored on storage710either before or after execution by processor704.

Computer system700also includes a communication interface718coupled to bus702. Communication interface718provides a two-way data communication coupling to network link(s)720that are directly or indirectly connected to at least one communication networks, such as a network722or a public or private cloud on the Internet. For example, communication interface718may be an Ethernet networking interface, integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of communications line, for example an Ethernet cable or a metal cable of any kind or a fiber-optic line or a telephone line. Network722broadly represents a local area network (LAN), wide-area network (WAN), campus network, internetwork or any combination thereof. Communication interface718may comprise a LAN card to provide a data communication connection to a compatible LAN, or a cellular radiotelephone interface that is wired to send or receive cellular data according to cellular radiotelephone wireless networking standards, or a satellite radio interface that is wired to send or receive digital data according to satellite wireless networking standards. In any such implementation, communication interface718sends and receives electrical, electromagnetic or optical signals over signal paths that carry digital data streams representing various types of information.

Network link720typically provides electrical, electromagnetic, or optical data communication directly or through at least one network to other data devices, using, for example, satellite, cellular, Wi-Fi, or BLUETOOTH technology. For example, network link720may provide a connection through a network722to a host computer724.

Computer system700can send messages and receive data and instructions, including program code, through the network(s), network link720and communication interface718. In the Internet example, a server730might transmit a requested code for an application program through Internet728, ISP726, local network722and communication interface718. The received code may be executed by processor704as it is received, and/or stored in storage710, or other non-volatile storage for later execution.