Configure printing equipment
By configuring an agent to receive and apply configuration data on the printing device, generate configuration identification data, and monitor configuration changes, the problem of easy reconfiguration of printing devices is solved, and automated and secure device management is achieved.
Patent Information
- Application Number
- CN202180016978.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-28
- Filing Date
- 2021-01-12
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2041-01-12
AI Technical Summary
Printing equipment is often sold in a basic configuration without security settings enabled, and once security settings are enabled, it can be easily reconfigured by end users, leaving the equipment in an insecure state. This is especially problematic for organizations without dedicated IT personnel, making it difficult to effectively protect and manage the equipment.
The configuration agent receives configuration data from the configuration manager via a computer network, applies it to the printing device, and generates unique configuration identification data, which is stored in the device's memory to ensure that the device operates according to the specified settings. It also monitors configuration changes and updates them automatically.
It enables automated and secure configuration management of printing equipment, ensuring consistent and correct equipment configuration without the need for dedicated IT personnel, thereby improving equipment security and management efficiency.
Smart Images

Figure CN115151890B_ABST
Abstract
Description
Technical Field
[0001] The technical field of this disclosure relates to configuring printing equipment. Background Technology
[0002] The methods described in this specification are feasible methods, but not necessarily methods that have been previously conceived or practiced. Therefore, unless otherwise stated, no method described in this specification should be assumed to qualify as prior art simply because it is included in this specification. Furthermore, no method described in this specification should be assumed to be well-known, conventional, or routine simply because it is included in this specification. Summary of the Invention
[0003] Technical issues
[0004] Printing equipment is often sold unconfigured or with basic configurations where security settings are disabled. Furthermore, printing equipment sold with security settings enabled can be reconfigured by end users, rendering them insecure. Device management systems can be used to enable system administrators to protect, control, and maintain the configuration of printing equipment. However, these systems require trained information technology (IT) personnel. This makes the printing equipment of organizations without dedicated IT staff vulnerable to third-party attacks.
[0005] Solution to the problem
[0006] The computing device includes one or more processors, one or more memories, a printing process executed on the computing device to print a print job at a printing device, and a configuration agent executed on the printing device. The configuration agent is configured to receive configuration data for the printing device from a configuration manager via one or more computer networks, wherein the configuration data specifies multiple settings for the printing device, and to apply the multiple settings from the configuration data to the printing device, causing the printing device to operate according to the multiple settings. The configuration agent is also configured to generate configuration identification data that uniquely corresponds to the multiple settings specified by the configuration data, and to store the configuration identification data that uniquely identifies the multiple settings specified by the configuration data in one or more memories of the printing device.
[0007] The above method can also be implemented by a non-transitory computer-readable medium containing one or more computer-implemented processes and stored instructions that implement the method when processed by one or more processors. Attached Figure Description
[0008] In the accompanying drawings, embodiments are depicted by way of example rather than limitation, and similar reference numerals refer to similar elements.
[0009] Figure 1It is a block diagram depicting the configuration and arrangement of printing equipment 100.
[0010] Figure 2 This is a block diagram depicting an example implementation of a printing device.
[0011] Figure 3A It is a block diagram depicting the configuration selection data, configuration data, and print device data used by the configuration manager to manage the configuration of print devices.
[0012] Figure 3B It is a block diagram depicting sample configuration selection data managed by the configuration manager.
[0013] Figure 3C It is a block diagram depicting sample print device data managed by the configuration manager.
[0014] Figure 3D It is a block diagram depicting sample print device data after it has been updated by the configuration manager.
[0015] Figure 4A It is a message ladder diagram that depicts the messages exchanged between components in the arrangement during the initial configuration of the printing equipment.
[0016] Figure 4B It is a message ladder diagram depicting the messages exchanged between the printing device and the configuration manager during reconfiguration checks and reconfigurations.
[0017] Figure 5 It is a block diagram depicting an example computer system on which embodiments can be implemented. Detailed Implementation
[0018] In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that the embodiments may be practiced without these specific details. In other instances, well-known structures and devices are illustrated in block diagram form to avoid unnecessarily obscuring the embodiments.
[0019] I. Overview
[0020] II. Printing Equipment Architecture
[0021] A. Printing equipment
[0022] B. ERP System
[0023] C. Configuration Manager
[0024] III. Configure the printing equipment
[0025] A. Initial Configuration
[0026] B. Configuration check and reconfiguration
[0027] IV. Implementation Examples
[0028] I. Overview
[0029] A method for configuring a printing device is provided. A configuration manager maintains configuration data for the printing device and provides this configuration data to a configuration agent executing on the printing device. The configuration agent applies the settings specified by the configuration data to the printing device and generates configuration identification data that uniquely identifies the settings. The configuration agent uses the configuration identification data to determine whether the current configuration of the printing device has changed. If it has changed, the configuration agent retrieves and applies the configuration data from the configuration manager.
[0030] As used herein, the term "configuration data" refers to data that specifies settings for the printing device. Example settings include, but are not limited to, paper / quality settings, effects settings, finishing settings, advanced settings, and security settings. Example security settings include, but are not limited to, HTTPS settings, IPP settings, TLS settings, encryption settings, FTP settings, WSD settings, RHPP settings, SNMP settings, etc. For example, security settings may involve user authentication for accessing the printing device, data rewriting and encryption on the printing device's storage, disabling certain communication protocols considered less secure, etc. As used herein, the term "configuration" refers to the settings of the printing device, and the term "current configuration" refers to the settings currently applied to the printing device.
[0031] The method for configuring printing devices described in this article provides a technical solution to the problem of how to manage the configuration of printing devices to ensure that they operate with the correct settings. This solution allows printing devices to apply and maintain a consistent and secure configuration without requiring dedicated IT personnel.
[0032] II. Printing Equipment Configuration Architecture
[0033] Figure 1 This is a block diagram depicting a printing equipment configuration layout 100. Layout 100 includes a warehouse 110, a customer location 120, printing equipment 130, an enterprise resource planning (ERP) system 140, and a configuration manager 150. Warehouse 110 is any physical location where printing equipment 130 is initially configured before being relocated to customer location 120, such as... Figure 1As shown. The term "warehouse" is used for illustrative purposes only, and warehouse 110 is not limited to a warehouse itself, but may include other physical locations such as manufacturers, distributors, etc. Customer location 120 is any physical location where the printing equipment 130 is in use. The term "customer location" is used for illustrative purposes only, and customer location 120 is not limited to a customer location itself, but may include other physical locations where the printing equipment 130 is in use.
[0034] The elements of arrangement 100 can be communicatively coupled via one or more wireless and / or wired computer networks and / or direct communication links of any type, which are not specified for illustrative purposes. Figure 1 As shown in the figure. Depending on the specific implementation, arrangement 100 may include additional or fewer elements. For illustrative purposes, the method for configuring a printing device is described with respect to configuring a single printing device 130; however, the embodiments are applicable to configuring any number of printing devices.
[0035] A. Printing equipment
[0036] Printing device 130 is a device for printing print jobs such as electronic documents. The embodiments are applicable to any type of printing device, and example printing devices include, but are not limited to, printers, copiers, fax machines, and multifunction peripherals (MFPs). Figure 2 This is a block diagram depicting an example implementation of a printing device 200, which includes a user interface 210, a communication interface 220, a configuration agent 230, a printing architecture 240, and a computing architecture 250.
[0037] User interface 210 allows a user to input information into printing device 200 and / or display information to the user. For example, user interface 210 may be implemented by a display screen, control panel, keyboard, pointing device such as a mouse, or any combination thereof. User interface 210 may include graphical user interface controls displayed on a touch screen that convey information about the functions and status of the printing device to the user and also allow the user to select functions and input information into printing device 200.
[0038] Communication interface 220 provides data exchange between printing device 200 and other computing elements via wired, wireless, or direct connection. Configuration agent 230 uses configuration data to configure (and reconfigure) printing device 130, as described in more detail below. Configuration agent 230 may implement one or more application programming interfaces (APIs) supported by configuration manager 150 and / or communicate with configuration manager 150 via HTTP or HTTPS connections. Configuration agent 230 may be implemented by one or more computer-implemented processes of any type. Furthermore, although configuration agent 230 is depicted as a separate element for discussion purposes, the functionality provided by configuration agent 230 may be integrated into other processes and / or elements on printing device 200.
[0039] Printing architecture 240 includes hardware components, software components, or any combination of hardware and software components for printing electronic data (such as print jobs). This may include, for example, a paper feeder, logic circuitry, toner cartridges, a photosensitive drum, a laser, one or more corona generators, a fuser, an erasing lamp, a power supply, etc.
[0040] The computing architecture 250 includes a processor 252, memory 254, and an operating system 256. The processor 252 may be implemented by one or more microprocessors and associated computer hardware and / or computer software. The memory 254 may be implemented by volatile memory, non-volatile memory, or any combination of volatile and non-volatile memory. The operating system 256 may be implemented by any type of operating system that can vary depending on the specific implementation.
[0041] B. ERP System
[0042] ERP system 140 includes data that maps printing devices to customers. ERP system 140 may include other information, such as sales information and shipping dates. ERP system 140 may include a database for maintaining this information and a user interface that allows users to access and update the mapping data. ERP system 140 may also include an interface that allows the mapping data to be pushed to configuration manager 150 or obtained by configuration manager 150.
[0043] C. Configuration Manager
[0044] Configuration Manager 150 configures the printing device as described herein. Configuration Manager 150 can be implemented by one or more processes, such as cloud applications, server processes, etc. For example, Configuration Manager 150 could be a process hosted on a server of a commercial organization, hosted as a cloud service accessible via the Internet, etc. Configuration Manager 150 can provide an Application Programming Interface (API) for exposing its functionality and data.
[0045] According to one embodiment, configuration manager 150 uses different types of data to manage the configuration of the printing device. This data may be stored locally on the computing device on which configuration manager 150 is running, or stored remotely from configuration manager 150 in, for example, a database management system, a data repository, or the like. Figure 3A This is a block diagram depicting configuration selection data 300, configuration data 330, and print device data 350 used by configuration manager 150 to manage the configuration of a printing device. Depending on the specific implementation, configuration selection data 300, configuration data 330, and print device data 350 may be maintained in any form or structure, and although depicted separately in the drawings and described herein, configuration selection data 300, configuration data 330, and print device data 350 may be combined in any way.
[0046] Configuration selection data 300 specifies the configuration to be used for each type of printing device for each customer. Figure 3B This is a block diagram depicting example configuration selection data 300 managed by configuration manager 150. In this example, there are three customers (customer A, customer B, and customer C) and three types of printing devices (type 1, type 2, and type 3). There are three standard configurations (C1, C2, and C3) corresponding to the three types of printing devices (type 1, type 2, and type 3), respectively. The standard configurations (C1, C2, and C3) include settings suitable for the corresponding type (type 1, type 2, and type 3) of the printing device. For example, the standard configurations may include settings known to be stable for the corresponding type of printing device. Custom configurations are specified for certain customer and printing device types. These custom configurations include a custom configuration for customer B, type 1 printing devices (custom B-C1) and a custom configuration for customer C, type 2 printing devices (custom C-C2). The settings in the custom configurations can be established by the customer based on their operating environment, user preferences, policies, etc. For example, a specific customer may implement a configuration that provides stronger security than the standard configuration using security settings. The configuration selection data 300 may include other data that may vary depending on the specific implementation, and the embodiments are not limited to the example data depicted in the drawings and described herein.
[0047] As described in more detail below, Configuration Manager 150 uses Configuration Selection Data 300 to determine the configuration of the printing devices. For example, Standard Configuration C1 is used for Type 1 printing devices for Customer A and Customer C. As another example, Standard Configuration C2 is used for Type 2 printing devices for Customer A and Customer B. As yet another example, Custom Configuration Customization B-C1 is used for Type 1 printing devices for Customer B, and Custom Configuration Customization C-C2 is used for Type 2 printing devices for Customer C. Although this document describes examples with three customers and three types of printing devices, the embodiments are not limited to these examples and are applicable to any number of customers and any type of printing devices. Configuration Selection Data 300 can be created and maintained by an administrative user, for example, using an application or web browser and API of Configuration Manager 150.
[0048] Configuration data 330 includes configuration data for any number and type of configurations, where each instance of the configuration data includes multiple settings for the printing device. Figure 3B In the example configuration selection data 300, the configuration selection data 300 includes configuration data for configuring C1, C2, C3, customized B-C1, and customized C-C2. Configuration data 330 may be stored in any form or format, which varies depending on the specific implementation and can be defined by the user via the user interface of configuration manager 150.
[0049] Printer data 350 specifies data for the printing devices, including whether each printing device is configured and, if so, what configuration is used. Figure 3C This is a block diagram depicting example print device data 350 managed by configuration manager 150. In this example, print device data 350 is depicted as a table, where each row of the table corresponds to a specific print device and specifies a serial number, type, customer ID, and configuration. The serial number is a number that uniquely identifies the print device, and although the serial number is used herein for illustrative purposes, various embodiments are not limited to using the serial number itself, and any data that uniquely identifies the print device may be used. One example is a Media Access Control (MAC) address.
[0050] The type refers to the type of printing device, and in this example, it can have a type 1, type 2, or type 3 value. The customer ID is data that identifies an entity that controls or owns the printing device, and although used herein for illustrative purposes, various embodiments are not limited to the customer ID itself, and any data that uniquely identifies an entity that owns or controls the printing device can be used.
[0051] The configuration is data that identifies the configuration used for the printing device, and in this example, it can have values C1, C2, C3, customer C-C2, or customer B-C1. Blank or empty cells mean that a configuration has not yet been assigned to a printing device. This can happen, for example, when printing devices are sold to a specific customer and a corresponding entry is created in printing device data 350, but these printing devices have not yet been configured using the methods described herein.
[0052] Configuration Manager 150 provides a web-based user interface for creating and managing configuration selection data 300, configuration data 330, and print device data 350. The web-based user interface allows administrative users to view the current configuration status of print devices and add, edit, and delete print devices represented by print device data 350. For example, if a print device has already been configured, the user interface can allow users of client devices to add a new print device and specify the serial number, type, customer ID, and configuration. This can be done at any time, such as when the print device is sold to a customer, configured at warehouse 110, or deployed to a customer's location 120. If a new print device has not yet been configured, the administrator does not need to specify the configuration, and the print device will be automatically configured as described herein. Administrative users can also change any parameters, including the serial number, type, and customer ID.
[0053] Alternatively, configuration selection data 300, configuration data 330, and print device data 350 can be added based on data received from a third-party system (such as an Enterprise Resource Planning (ERP) system) or an equipment management system (such as Ricoh's Streamline NX). The user interface may also include controls allowing users to search for print devices by serial number (or other identification information), customer ID, print device type, configuration ID, etc. According to one embodiment, configuration manager 150 tracks all actions performed regarding configuration selection data 300, configuration data 330, and print device data 350.
[0054] III. Configure the printing equipment
[0055] The method for configuring a printing device described herein provides initial configuration of the printing device and subsequent configuration checks and reconfigurations. The accompanying drawings depict and describe an embodiment where initial configuration is performed at warehouse 110 and configuration checks and reconfigurations are performed at the customer's location 120. However, the embodiment is not limited to this example, and initial configuration and subsequent configuration checks and reconfigurations can be performed at any location.
[0056] A. Initial Configuration
[0057] When configuration agent 230 is initiated on printing device 130, the initial configuration of the printing device is performed. This can occur, for example, after printing device 130 is powered on or at any other time when configuration agent 230 is initiated. For example, at warehouse 110, printing device 130 can be powered on, configuration agent 230 can be installed by an administrative user, and then printing device 130 can be powered off and on again. Alternatively, configuration agent 230 can be executed immediately after installation. The embodiments are not limited to the example of initial configuration being performed at warehouse 110, and initial configuration can be performed anywhere, including at customer location 120.
[0058] Figure 4A This is a message ladder diagram 400 depicting the messages exchanged between components in arrangement 100 during the initial configuration of printing device 130. Starting from step 402, configuration agent 230 is started, which can be after printing device 130 is powered on or after configuration agent 230 is started on printing device 130.
[0059] In step 404, a configuration request is transmitted to configuration manager 150. For example, configuration agent 230 may generate an HTTPS (or similar protocol) request and transmit it to configuration manager 150. According to one embodiment, the request specifies the serial number of printing device 130. In this example, it is assumed that the serial number of printing device 130 is SN15. According to one embodiment, in step 404, before transmitting the configuration request to configuration manager 150, configuration agent 230 determines whether configuration ID data 260 in memory 254 has a stored configuration ID. If so, printing device 130 has been previously configured, and the following steps are performed (see reference below). Figure 4B The described configuration check process, not Figure 4A The initial configuration process. In this example, it is assumed that the configuration ID data 260 in memory 254 does not contain any stored configuration IDs, therefore the printing device 130 has not been previously configured.
[0060] In step 406, it is determined whether the printing device 130 is currently configured. For example, the configuration manager 150 uses the serial number of the printing device 130 included in the request to identify the row in the printing device data 350 corresponding to that serial number. The configuration manager 150 then examines the configuration field in the identified row to determine whether the printing device 130 is currently configured. The presence of a value in the configuration field indicates that the printing device 130 is currently configured with that configuration. A blank value indicates that the printing device 130 has not yet been configured by at least the configuration manager 150. The printing device 130 can be configured and operated, for example, with a basic or standard configuration installed at the factory.
[0061] If the configuration field contains a blank value indicating that the printing device 130 has not yet been configured, the configuration manager 150 uses additional information from the printing device data 350 and the configuration selection data 310 to determine the configuration for the printing device 130.
[0062] In this example, the serial number of print device 130 is SN15. The row in print device data 350 corresponding to serial number SN15 has no value in the configuration field, meaning that print device 130 has not yet been configured by configuration manager 150. According to one embodiment, configuration manager 150 uses the value "Type 3" in the type field and the value "Customer C" in the customer field to determine the configuration for print device 130 based on configuration selection data 300. More specifically, configuration selection data 300 specifies that configuration C3 should be used for customer C and type 3 print devices. If a particular print device has no value in the customer field, configuration manager 150 can use the configuration for the print device type specified in the "Unassigned Customer" section of configuration selection data 310. If there is no value in the type field or neither in the customer nor type fields, configuration manager 150 can assign a default configuration including, for example, a set of basic settings. According to one embodiment, configuration manager 150 maintains model-to-device-type mapping data to allow configuration manager 150 to determine the device type using the print device model and then select a configuration based on the device type using configuration selection data 310.
[0063] In step 408, a configuration response is generated and transmitted to the printing device 130. For example, configuration manager 150 generates and transmits a configuration response, including C3 configuration data or a reference to C3 configuration data, to configuration agent 230. The configuration data can be any form or format that varies depending on the specific implementation. According to one embodiment, configuration agent 230 stores the configuration data as configuration data 258 in memory 254.
[0064] In step 410, the printing device 130 applies the settings used for this configuration. For example, the configuration agent 230 applies the settings in the C3 configuration data. This may include the configuration agent 230 retrieving the settings from the C3 configuration data and making one or more OS 256 calls to the controller of the printing device 130 to apply the settings. Upon completion of the call, the printing device 130 begins to operate with the settings specified by the C3 configuration data.
[0065] In step 412, the printing device 130 generates a configuration ID for configuration. This configuration ID uniquely corresponds to the settings in the C3 configuration data. Examples of configuration ID data include, but are not limited to, signatures and hash values. The configuration agent 230 can generate the configuration ID by processing the settings to create signatures, hashes, checksums, etc. For example, the configuration agent 230 can provide the settings (or a subset thereof) as input to one or more one-way hash functions that generate a hash result uniquely corresponding to the settings. The one-way hash functions can be implemented in the configuration agent 230 or can be external to and invoked by the configuration agent 230. In this way, the resulting configuration ID uniquely corresponds to the current configuration of the printing device 130. The configuration agent 230 stores the configuration ID in configuration ID data 260 in memory 254. According to one embodiment, the configuration agent 230 stores the configuration ID in configuration ID data 260 in a secure portion of memory 254, for example, a portion of memory 254 separate from the location where configuration data 258 is stored.
[0066] In step 414, a configuration confirmation is transmitted to configuration manager 150. For example, configuration agent 230 generates and transmits a confirmation message to configuration manager 150 confirming that print device 130 is now configured with C3 configuration data. Alternatively, in the event of an error preventing configuration agent 230 from configuring print device 130, the configuration confirmation indicates the existence of an error, along with additional details about the error (if any). If an error occurs, configuration agent 230 may display an error message on user interface 210 of print device 130. Configuration agent 230 may also generate and transmit one or more error messages (e.g., via email, messaging service, etc.) to management users to notify them of an error preventing print device 130 from being configured.
[0067] In step 416, configuration manager 150 records that print device 130 has been configured. For example, configuration manager 150 updates the configuration field of the row corresponding to print device 130 (SN15) in print device data 350 with the value "C3" to indicate that print device 130 is now configured with C3 configuration data. Figure 3DThis is a block diagram depicting example print device data 350 after being updated by configuration manager 150. The configuration field 352 of print device 130 with serial number SN15 has been updated with the value C3. Configuration manager 150 can also generate one or more messages and transmit them to, for example, customers, distributors, administrators, etc., indicating that print device 130 has been successfully configured. If an error occurs in the configuration confirmation indication, configuration manager 150 does not update print device data 350, but can instead generate a notification and transmit it to the management user, customer, distributor, etc. For example, configuration manager 150 can cause the notification to be displayed on the user interface of the computing device on which configuration manager 150 is running. As another example, configuration manager 150 can generate one or more error messages, for example via email, messaging service, etc., and transmit them to the management user to notify them that an error has occurred that prevented print device 130 from being configured.
[0068] B. Configuration check and reconfiguration
[0069] According to one embodiment, configuration agent 230 is configured to determine whether the configuration has changed, and if so, reconfigure printing device 130. The configuration checks and reconfigurations described herein can be performed when various criteria are met. Depending on a particular implementation, example criteria include at a specified time, periodically, or whenever configuration agent 230 is activated.
[0070] Figure 4B This is a message ladder diagram 450 depicting the messages exchanged between the print device 130 and the configuration manager 150 during reconfiguration checks and reconfigurations. Starting at step 452, the current settings are obtained, and a current configuration ID is generated. For example, the configuration agent 230 may make one or more OS 256 calls to the controller of the print device 130 to obtain the current settings being used by the print device 130. The configuration agent 230 then uses the current settings to generate a current configuration ID, as described previously herein.
[0071] In step 454, the current configuration ID is compared with a stored configuration ID to determine whether the configuration of the printing device 130 has changed. This may include the configuration agent 230 retrieving the stored configuration ID from the configuration ID data 260 in the memory 254 and then comparing the stored configuration ID with the current configuration ID. For example, the configuration may have changed if an end user, third-party attacker, virus, or malware has altered the settings currently being used by the printing device 130.
[0072] Since both the current configuration ID and the stored configuration ID are generated based on the settings of the printing device 130, if the current configuration ID is the same as the stored configuration ID, then the settings of the printing device 130 have not been changed. Figure 4B The process is complete. If the current configuration ID differs from the stored configuration ID, the configuration of the printing device 130 has changed, and in step 456, a configuration request is generated and transmitted to the configuration manager 150. As previously completed in step 404, the configuration request specifies the serial number of the printing device 130. Figure 4A Continuing with the example, the serial number of print device 130 is SN15. Configuration agent 230 can also display notifications on the user interface 210 of print device 130, such as warnings that the configuration may be compromised and that print device 130 should not be used. Configuration agent 230 can also generate one or more messages and transmit them to other locations, such as configuration manager 150, to alert the managing user to the status of print device 130.
[0073] According to one embodiment, if configuration agent 230 determines that a stored configuration ID does not exist in the configuration ID data 260 in memory 254, configuration agent 230 proceeds to step 456 and generates a configuration request and transmits it to configuration manager 150. This could occur, for example, if printing device 130 was not configured at warehouse 110 before being deployed to customer location 120.
[0074] In step 458, it is determined whether the printing device 130 is currently configured. As in step 406, the configuration manager 150 uses the serial number of the printing device 130 included in the request to identify the row in the printing device data 350 corresponding to the printing device 130.
[0075] After identifying the print device 130, the configuration manager 150 examines the configuration fields to determine whether the print device 130 is currently configured. The presence of a value in the configuration field indicates that the print device 130 is currently configured. A blank value indicates that the print device 130 has not been configured, at least from the perspective of the configuration manager 150. If the configuration field contains a blank value, the configuration manager 150 uses the customer ID and print device type value from the print device data 350 to identify the specified configuration for the print device 130, as previously described. In this example, when the print device 130 is initially configured, configuration field 352 ( Figure 3D It has been updated to C3.
[0076] In step 460, a configuration response is generated and transmitted to the printing device 130. For example, configuration manager 150 generates and transmits a configuration response, including C3 configuration data or a reference to C3 configuration data, to configuration agent 230. According to one embodiment, configuration agent 230 stores the configuration data as configuration data 258 in memory 254.
[0077] As an alternative to steps 456 to 460, configuration agent 230 can reapply the configuration stored in configuration data 258 from memory 254. This can be used in all cases, or when configuration agent 230 cannot establish a connection with configuration manager 150.
[0078] In step 462, the printing device 130 applies the settings used for configuration by extracting settings from the C3 configuration data and making one or more OS256 calls to the controller of the printing device 130 to apply the settings. Upon completion of the call, the printing device 130 begins to operate with the settings specified by the C3 configuration data.
[0079] In step 464, the printing device 130 generates a configuration ID and stores it in configuration ID data 260 in memory 254, as previously described. This configuration ID can overwrite a previously stored configuration ID, or the original configuration ID can be maintained for electronic forensics purposes.
[0080] In step 466, a configuration confirmation indicating whether the configuration was successful is transmitted to configuration manager 150. In the event of an error preventing configuration agent 230 from configuring printing device 130, the configuration confirmation may indicate the existence of an error, along with additional details (if any) about the error.
[0081] In step 468, configuration manager 150 records that print device 130 has been configured. For example, configuration manager 150 updates the configuration field of the row corresponding to print device 130 (SN15) in print device data 350 with the value "C3" to indicate that print device 130 is now configured with C3 configuration data.
[0082] The method described in this article for performing configuration checks and reconfigurations offers several benefits. For example, this method allows printing devices to be automatically maintained with a consistent, secure configuration with minimal IT personnel involvement. It also allows for easy changes to the configuration of printing devices, even with a large number of devices. For instance, a customer might decide to change the configuration of certain types of printing devices, such as to provide enhanced security. This can be easily achieved by the customer accessing the configuration manager 150 and updating the printing device data 350 for the customer's printing devices. The configuration agent then automatically updates all printing devices without requiring IT personnel to perform the update.
[0083] IV. Implementation Examples
[0084] According to one embodiment, the techniques described herein are implemented by at least one computing device. These techniques can be implemented wholly or partially using a combination of at least one server computer and / or other computing devices coupled using a network such as a packet data network. The computing device may be hardwired to execute the techniques, or may include at least one application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA) continuously programmed to execute the techniques, or may include at least one general-purpose hardware processor programmed to execute the techniques according to program instructions in firmware, memory, other storage devices, or combinations thereof. Such a computing device may also combine custom hardwired logic, ASICs, or FPGAs with custom programming to implement the described techniques. The computing device may be a server computer, workstation, personal computer, portable computer system, handheld device, mobile computing device, wearable device, body-installed or implantable device, smartphone, smart appliance, network interconnection device, autonomous or semi-autonomous device (such as a robot or unmanned ground vehicle or unmanned aerial vehicle), any other electronic device containing hardwired and / or program logic to implement the described techniques, one or more virtual computing machines or instances in a data center, and / or a network of server computers and / or personal computers.
[0085] Figure 5 This is a block diagram illustrating an example computer system that can implement the embodiments. Figure 5 In the example, the computer system 500 and instructions for implementing the disclosed technology in hardware, software or a combination of hardware and software are schematically represented, for example, by boxes and circles, with a level of detail similar to that commonly used by those skilled in the art to which this disclosure pertains in communicating about computer architecture and computer system implementations.
[0086] Computer system 500 includes an input / output (I / O) subsystem 502, which may include buses and / or other communication mechanisms for transmitting information and / or instructions between components of computer system 500 via electronic signal paths. I / O subsystem 502 may include an I / O controller, a memory controller, and at least one I / O port. Electronic signal paths are schematically represented in the figures as, for example, lines, unidirectional arrows, or bidirectional arrows.
[0087] At least one hardware processor 504 is coupled to the I / O subsystem 502 for processing information and instructions. The hardware processor 504 may 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 digital signal processor or ARM processor. The processor 504 may include an integrated arithmetic logic unit (ALU) or may be coupled to a separate ALU.
[0088] Computer system 500 includes one or more units of memory 506, such as main memory, coupled to I / O subsystem 502, for electronically and digitally storing data and instructions to be executed by processor 504. Memory 506 may include volatile memory, such as various forms of random access memory (RAM) or other dynamic storage devices. Memory 506 may also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by processor 504. When stored in a non-transitory computer-readable storage medium accessible to processor 504, such instructions can make computer system 500 a special-purpose machine customized to perform the operations specified in the instructions.
[0089] Computer system 500 also includes non-volatile memory, such as read-only memory (ROM) 508 coupled to I / O subsystem 502 or other static storage devices, for storing information and instructions for processor 504. ROM 508 may include various forms of programmable ROM (PROM), such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). Cells of permanent memory 510 may include various forms of non-volatile RAM (NVRAM), such as flash or solid-state memory, disk or optical disk, such as CD-ROM or DVD-ROM, and may be coupled to I / O subsystem 502 to store information and instructions. Storage device 510 is an example of a non-transitory computer-readable medium that can be used to store instructions and data that, when executed by processor 504, cause the execution of computer-implemented methods to perform the techniques described herein.
[0090] Instructions in memory 506, ROM 508, or storage device 510 may include one or more instruction sets organized as modules, methods, objects, functions, routines, or calls. These instructions may be organized as one or more computer programs, operating system services, or application programs including mobile applications. The instructions may include operating system and / or system software; one or more libraries for supporting multimedia, programming, or other functions; data protocol instructions or stacks for implementing TCP / IP, HTTP, or other communication protocols; file format processing instructions for parsing or rendering files encoded using HTML, XML, JPEG, MPEG, or PNG; user interface instructions for rendering or interpreting commands for graphical user interfaces (GUIs), command-line interfaces, or text user interfaces; and application software such as office suites, internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games, or various applications. The instructions may implement web servers, web application servers, or web clients. The instructions may be organized as a presentation layer, application layer, and data storage layer, such as using Structured Query Language (SQL) or SQL-free relational database systems, object storage, graphical databases, flat file systems, or other data storage.
[0091] Computer system 500 may be coupled to at least one output device 512 via I / O subsystem 502. In one embodiment, output device 512 is a digital computer display. Examples of displays that may be used in various embodiments include touch screen displays, light-emitting diode (LED) displays, liquid crystal displays (LCDs), or electronic paper displays. As an alternative to or complement to the display device, computer system 500 may include other types of output devices 512. Examples of other output devices 512 include printers, ticket printers, plotters, projectors, sound cards or graphics cards, speakers, buzzers or piezoelectric devices or other audio devices, lamps or LED or LCD indicators, haptic devices, actuators, or servers.
[0092] At least one input device 514 is coupled to the I / O subsystem 502 for transmitting signals, data, command selections, or gestures to the processor 504. Examples of input devices 514 include touchscreens, microphones, still and video digital cameras, alphanumeric and other keys, keypads, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dial pads, slides, and / or various types of sensors, such as force sensors, motion sensors, thermal sensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors, and / or various types of transceivers, such as wireless transceivers (such as cellular or Wi-Fi transceivers, radio frequency (RF) or infrared (IR) transceivers, and Global Positioning System (GPS) transceivers).
[0093] Another type of input device is a control device 516, which can perform cursor control or other automatic control functions, such as navigation in a graphical interface on the display screen, as an alternative to or supplement to the input function. Control device 516 can be a touchpad, mouse, trackball, or cursor arrow keys, used to pass directional information and command selection to processor 504 and to control cursor movement on display 512. Input devices can have at least two degrees of freedom on two axes (a first axis (e.g., x) and a second axis (e.g., y)), allowing the device to specify a position in a plane. Another type of input device is a wired, wireless, or optical control device, such as a joystick, wand, console, steering wheel, pedals, gear shift mechanism, or other types of control devices. Input device 514 can include a combination of multiple different input devices, such as a camera and a depth sensor.
[0094] In another embodiment, computer system 500 may include Internet of Things (IoT) devices, wherein one or more of output device 512, input device 514, and control device 516 are omitted. Alternatively, in such an embodiment, input device 514 may include one or more cameras, motion detectors, thermometers, microphones, seismic detectors, other sensors or detectors, measuring devices, or encoders, and output device 512 may include a special-purpose display such as a single-line LED or LCD display, one or more indicators, display panels, meters, valves, solenoids, actuators, or servos.
[0095] When computer system 500 is a mobile computing device, input device 514 may include a Global Positioning System (GPS) receiver coupled to a GPS module capable of triangulating multiple GPS satellites to determine and generate geolocation data or location data, such as the latitude-longitude values of the geophysical location of computer system 500. Output device 512 may include hardware, software, firmware, and interfaces for generating location report packets, notifications, pulse or heartbeat signals, or other cyclic data transmissions (alone or in combination with other dedicated data) specifying the location of computer system 500 to host 524 or server 530.
[0096] Computer system 500 may implement the techniques described herein using custom hard-wired logic, at least one ASIC or FPGA, firmware and / or program instructions or logic, which, when combined with the computer system and loaded and used or executed, cause the computer system or the computer system to operate as a special-purpose machine. According to one embodiment, the techniques herein are executed by computer system 500 in response to processor 504 executing at least one sequence of at least one instruction contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium (such as storage device 510). Execution of the instruction sequence contained in main memory 506 causes processor 504 to perform the processing steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
[0097] As used herein, the term "storage medium" refers to any non-transitory medium that stores data and / or instructions that enable a machine to operate in a particular manner. Such storage media can include non-volatile media and / or volatile media. Non-volatile media include, for example, optical discs or magnetic disks, such as storage device 510. Volatile media include dynamic memory, such as memory 506. Common forms of storage media include, for example, hard disks, solid-state drives, flash drives, magnetic data storage media, any optical or physical data storage media, memory chips, etc.
[0098] Storage media differ from transmission media, but can be used in conjunction with them. Transmission media participate in the transfer of information between storage media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including conductors that house the bus containing the I / O subsystem 502. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communication.
[0099] Various forms of media can involve loading at least one sequence of at least one instruction to processor 504 for execution. For example, the instructions may initially be carried on a disk or solid-state drive of a remote computer. The remote computer may load the instructions into its dynamic memory and transmit them via a communication link such as fiber optic or coaxial cable or telephone line using a modem. A modem or router local to computer system 500 may receive data on the communication link and convert the data into a format that can be read by computer system 500. For example, a receiver such as a radio frequency antenna or infrared detector may receive data carried in a wireless or optical signal, and appropriate circuitry may provide the data to I / O subsystem 502, for example, by placing the data on a bus. I / O subsystem 502 loads the data into memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by memory 506 may optionally be stored on storage device 510 before or after execution by processor 504.
[0100] Computer system 500 also includes a communication interface 518 coupled to bus 502. Communication interface 518 provides bidirectional data communication coupled to network link 520, which is directly or indirectly connected to at least one communication network, such as network 522 or a public or private cloud on the Internet. For example, communication interface 518 may be an Ethernet network interface, an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide data communication connectivity to a corresponding type of communication line, such as an Ethernet cable or any kind of metal cable or fiber optic line or telephone line. Network 522 broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an interconnected network, or any combination thereof. Communication interface 518 may include a LAN card providing data communication connectivity to a LAN-compatible network, or a cellular wireless telephone interface for wired transmission or reception of cellular data according to a cellular wireless telephone network standard, or a satellite radio interface for wired transmission or reception of digital data according to a satellite wireless network standard. In any such implementation, communication interface 518 transmits and receives electrical, electromagnetic, or optical signals through a signal path carrying digital data streams representing various types of information.
[0101] Network link 520 typically uses technologies such as satellite, cellular, Wi-Fi, or Bluetooth to provide electrical, electromagnetic, or optical data communication directly or via at least one network to other data devices. For example, network link 520 can provide a connection to host computer 524 via network 522.
[0102] Furthermore, network link 520 may provide connectivity via network 522 or via network interconnection devices and / or computers operated by Internet Service Provider (ISP) 526 to other computing devices. ISP 526 provides data communication services via a global packet data communication network represented as Internet 528. Server computer 530 may be coupled to Internet 528. Server 530 broadly represents any computer, data center, virtual machine, or virtual computing instance with or without a hypervisor, or a computer running a containerized program system such as DOCKER or KUBERNETES. Server 530 may represent an electronic digital service implemented using multiple computers or instances and accessed and used by transmitting web service requests, Uniform Resource Locator (URL) strings with parameters in an HTTP payload, API calls, application service calls, or other service calls. Computer system 500 and server 530 may form elements of a distributed computing system that includes other computers, processing clusters, server farms, or other computer organizations that collaborate to perform tasks or execute applications or services. Server 530 may include one or more sets of instructions organized as modules, methods, objects, functions, routines, or calls. These instructions may be organized as one or more computer programs, operating system services, or applications including mobile applications. The instructions may include operating system and / or system software; one or more libraries for supporting multimedia, programming, or other functions; data protocol instructions or stacks for implementing TCP / IP, HTTP, or other communication protocols; file format processing instructions for parsing or rendering files encoded using HTML, XML, JPEG, MPEG, or PNG; user interface instructions for rendering or interpreting commands for graphical user interfaces (GUIs), command-line interfaces, or text-based user interfaces; and application software such as office suites, internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games, or various other applications. Server 530 may include a web application server hosting the presentation layer, application layer, and data storage layer, such as relational database systems using Structured Query Language (SQL) or SQL-free relational database systems, object storage, graph databases, flat file systems, or other data storage.
[0103] Computer system 500 can send messages and receive data and instructions, including program code, via a network, network link 520, and communication interface 518. In the Internet example, server 530 may transmit request code for an application via Internet 528, ISP 526, local network 522, and communication interface 518. The received code can be executed by processor 504 upon receipt and / or stored in storage device 510 or other non-volatile storage device for later execution.
[0104] The execution of the instructions described in this specification may be implemented as an entire process in the form of an instance of a computer program being executed, including program code and its current activity. Depending on the operating system (OS), a process may consist of multiple execution threads executing instructions concurrently. In this case, the computer program is a passive collection of instructions, while the process may be the actual execution of those instructions. Several processes may be associated with the same program; for example, opening several instances of the same program typically means that more than one process is being executed. Multitasking can be implemented to allow multiple processes to share processor 504. While each processor 504 or processor core executes only a single task at a time, computer system 500 can be programmed to implement multitasking to allow each processor to switch between tasks being executed without waiting for each task to complete. In one embodiment, a switch may be performed when a task performs an input / output operation, when a task indicates that it can be switched, or in the event of a hardware interrupt. Time sharing can be implemented to allow for rapid response to interactive user applications by rapidly performing context switching, providing the performance of parallel execution of multiple processes simultaneously. In one embodiment, for security and reliability, the operating system may prevent direct communication between independent processes, providing strictly mediated and controlled inter-process communication functionality.
[0105] This application claims the benefit of U.S. Patent Application No. 16 / 805651, filed on February 28, 2020, the disclosure of which is incorporated herein by reference in its entirety.
Claims
1. A printing device, comprising: One or more processors; One or more memory units; A printing process, which is executed on the printing device, for printing a print job at the printing device; as well as A configuration agent is configured to execute on the printing device and be configured as follows: The system receives configuration data for the printing device from a configuration manager via one or more computer networks, wherein the configuration data specifies multiple settings for the printing device. The plurality of settings from the configuration data are applied to the printing device, such that the printing device operates according to the plurality of settings. Generate configuration identification data that uniquely corresponds to the plurality of settings specified by the configuration data, and The configuration identification data, which uniquely identifies the plurality of settings specified by the configuration data, is stored in one or more memories of the printing device; The configuration agent executed on the printing device is further configured to, when one or more criteria are met: Obtain the current settings of the printing device. Based on the multiple current settings being used by the printing device, generate current configuration identification data that uniquely corresponds to the multiple current settings being used by the printing device. The current configuration identification data is compared with the stored configuration identification data. In response to the current configuration identification data being different from the stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
2. The printing device according to claim 1, wherein, The one or more criteria include one or more of the following: the startup of the configuration agent, the expiration of a specified time period, or the current time equal to the specified time period.
3. The printing device according to claim 1, wherein, The current configuration identification data, which uniquely corresponds to the current plurality of settings currently being used by the printing device, is one or more of the signature data or hash result data generated based on the current plurality of settings.
4. The printing device according to claim 1, wherein, The configuration agent executed on the printing device is also configured to: Determine whether the one or more memories include stored configuration identification data, and In response to determining that the one or more memories do not contain stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
5. The printing apparatus according to claim 1, wherein: The plurality of settings specified by the configuration data for the printing device include a plurality of security settings, and Applying the plurality of settings from the configuration data to the printing device includes applying the plurality of security settings to the printing device such that the printing device operates according to the plurality of security settings.
6. The printing apparatus according to claim 1, wherein, The configuration agent executing on the printing device is also configured to generate and transmit a request for the configuration data to the configuration manager, wherein the request includes print device identification data that uniquely identifies the printing device.
7. One or more non-transitory computer-readable media storing instructions that, when processed by one or more processors, cause: The configuration agent executed on the printing device is used for: The system receives configuration data for the printing device from a configuration manager via one or more computer networks, wherein the configuration data specifies multiple settings for the printing device. The plurality of settings from the configuration data are applied to the printing device, such that the printing device operates according to the plurality of settings. Generate configuration identification data that uniquely corresponds to the plurality of settings specified by the configuration data, and The configuration identification data, which uniquely identifies the plurality of settings specified by the configuration data, is stored in one or more memories of the printing device; in, The processing of the instructions by the one or more processors also causes the configuration agent executing on the printing device to meet one or more criteria: Obtain the current settings of the printing device. Based on the multiple current settings being used by the printing device, generate current configuration identification data that uniquely corresponds to the multiple current settings being used by the printing device. The current configuration identification data is compared with the stored configuration identification data. In response to the current configuration identification data being different from the stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
8. One or more non-transitory computer-readable media according to claim 7, wherein, The one or more criteria include one or more of the following: the startup of the configuration agent, the expiration of a specified time period, or the current time equal to the specified time period.
9. One or more non-transitory computer-readable media according to claim 7, wherein, The current configuration identification data, which uniquely corresponds to the current plurality of settings currently being used by the printing device, is one or more of the signature data or hash result data generated based on the current plurality of settings.
10. One or more non-transitory computer-readable media according to claim 7, wherein, The processing of the instructions by the one or more processors also causes the configuration agent executing on the printing device to: Determine whether the one or more memories include stored configuration identification data, and In response to determining that the one or more memories do not contain stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
11. One or more non-transitory computer-readable media according to claim 7, wherein: The plurality of settings specified by the configuration data for the printing device include a plurality of security settings, and Applying the plurality of settings from the configuration data to the printing device includes applying the plurality of security settings to the printing device, such that the printing device operates according to the plurality of security settings.
12. One or more non-transitory computer-readable media according to claim 7, wherein, The processing of the instructions by the one or more processors further causes the configuration agent, which executes on the printing device, to generate and transmit a request for the configuration data to the configuration manager, wherein the request includes print device identification data that uniquely identifies the printing device.
13. A computer-implemented method, comprising: Configuration agent executed on the printing device: The system receives configuration data for the printing device from a configuration manager via one or more computer networks, wherein the configuration data specifies multiple settings for the printing device. The plurality of settings from the configuration data are applied to the printing device, such that the printing device operates according to the plurality of settings. Generate configuration identification data that uniquely corresponds to the plurality of settings specified by the configuration data, and The configuration identification data, which uniquely identifies the plurality of settings specified by the configuration data, is stored in one or more memories of the printing device; The method further includes the configuration agent executing on the printing device when one or more criteria are met: Obtain the current settings of the printing device. Based on the multiple current settings being used by the printing device, generate current configuration identification data that uniquely corresponds to the multiple current settings being used by the printing device. The current configuration identification data is compared with the stored configuration identification data. In response to the current configuration identification data being different from the stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
14. The computer-implemented method according to claim 13, wherein, The one or more criteria include one or more of the following: the startup of the configuration agent, the expiration of a specified time period, or the current time equal to the specified time period.
15. The computer-implemented method according to claim 13, wherein, The current configuration identification data, which uniquely corresponds to the current plurality of settings currently being used by the printing device, is one or more of the signature data or hash result data generated based on the current plurality of settings.
16. The computer-implemented method of claim 13, further comprising the configuration agent executed on the printing device: Determine whether the one or more memories include stored configuration identification data, and In response to determining that the one or more memories do not contain stored configuration identification data, a request for configuration data is generated and transmitted to the configuration manager.
17. The computer-implemented method according to claim 13, wherein: The plurality of settings specified by the configuration data for the printing device include a plurality of security settings, and Applying the plurality of settings from the configuration data to the printing device includes applying the plurality of security settings to the printing device such that the printing device operates according to the plurality of security settings.
Citation Information
Patent Citations
Setting value management apparatus and management method thereof
CN102984414A
Information processing apparatus, system, and method of processing
US20170269810A1