Various embodiments described herein relate to management of peripherals.
Computer systems may be connected through one or more print servers to a peripheral device, such as a printer. Setting up and maintaining a single print server may be relatively simple, but when multiple print servers exist in an enterprise, the setup and maintenance of each print server may become time consuming and complicated.
The term “peripheral” used herein may include printers, scanners, faxes, data transfer devices, gaming devices, televisions, cellular telephones, personal digital assistants (PDAs), workstations, data storage devices, digital video disk (DVD) drives, speakers, headphones, microphones, keyboards, input data controllers, vehicles, flash media players, any universal serial bus (USB) series connected devices, network interface, cell phone, telephony communication devices, audio and/or video devices, cameras, Motion Picture Experts Group-2, Audio Layer 3 (MP3) devices, radios, video players, modems, processors, application-specific modules, or any other electronic device, such as high-speed computers, and personal computers.
In some embodiments disclosed herein, a system includes a model peripheral infrastructure system, a current enterprise system, and an identification of areas in the current enterprise system that are out-of-sync with the model peripheral infrastructure system. The model peripheral infrastructure system may include a driver repository listing a plurality of peripheral types and at least one driver associated with a selected peripheral type. Changes may be implemented to the model peripheral infrastructure system and/or to the current enterprise system to synchronize the systems. Identification of the out-of-sync areas and the opportunity to implement appropriate changes may permit managing a variety of servers and/or peripherals in an efficient manner.
The processor 202 may comprise a digital signal processor or processing unit of any type of architecture, such as an ASIC, CISC (Complex Instruction Set Computing), RISC (Reduced Instruction Set Computing), VLIW (Very Long Instruction Word), or hybrid architecture, although any appropriate processor may be used. The processor 202 executes instructions. The processor 202 may include a control unit that organizes data and program storage in memory, such as memory 204, and may operate to transfer data and other information in and out of the host computer 102 and, in some embodiments, to and from one or more network connections to a network 108.
The memory 204 may comprise one or more mechanisms for storing data. For example, the memory 204, in various embodiments, may include one or more of a read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, and/or other volatile and non-volatile machine-readable media. In other embodiments, the memory 204 may include any appropriate type of storage device or memory. Although one memory is shown, multiple memories of various types and multiple types of storage devices may be present.
The software 208 stored in the memory 204 may be operable on the processor 202 to cause the host computer 102 to perform various tasks or operations. Some such tasks include causing the host computer 102 to synchronize a current enterprise system with a model peripheral infrastructure system. Further detail of the software operation is provided below.
The operating system 210 stored in the memory 204 may control operation of the host computer 102 and a variety of applications. The operating system 210 is capable of performing many basic tasks, such as recognizing input from one or more input devices, sending output to a display, keeping track of files and directories within the memory 204, and controlling peripheral devices, such as resource A 212 and/or resource X 214.
The operating system 210 of host computer 102 may includes various operating systems 210 such as real-time, multi-user, multiprocessing, multitasking, and multithreading operating systems. Some examples of such operating systems include the Microsoft® Windows® family of operating systems, UNIX®, Linux®, the O/S 390 Enterpriser Server® operating system available from International Business Machines®, application specific operating systems, or virtually any other operating system.
The resources 212 and 214 may include virtually any type of system resource. The number of resources varies based on the particular implementation. Some embodiments include no resources, while other embodiments include one or more resources. Some such resources include peripheral devices such as video cards, Small Computer System Interface (SCSI) cards, wired or wireless network interface cards (NIC), a modem, or virtually any other peripheral device couplable to or integrated within a main-board or motherboard of the host computer 102. Other such resources include data items within the system such as data stored in the memory 204, data in a register of the processor 202, or any other data available on or through the host computer 102. Yet other such resources include applications, operating system elements or resources, machine-code commands, processor portions, or virtually any other resource of the host computer 102.
The managed device 104 may include a controller 308 for processing data from the one or more host computers 102 and/or from the one or more servers 106 coupled to the network 108. The controller 308 typically includes a data processing unit or CPU(s) 310, a volatile memory 312 (i.e., RAM), and a nonvolatile memory 314. The nonvolatile memory 314 can include various computer storage media such as ROM, flash memory, a hard disk, a removable floppy disk, a removable optical disk and the like. The nonvolatile memory 314 generally provides storage of computer readable instructions, data structures, program modules and other data for the managed device 104. The memory 314 may include a device driver 316 and usage data 318 that is accumulated over time by controller 308 as the managed device 104 performs various functions, such as printing.
The managed device 104 also includes a device engine 320 that may perform, if the managed device is a printer, for example, the actual printing of a document or may form an image onto a print medium. Thus, the controller 308 may process image/document data received as a job, such as a print job, from the host computer 102 and manages the device 104 functions by the engine 320.
The drivers 316 may be installed on the host computer 102, and may also be installed on the server 106. The server 106, such as a print server, may include one or more device drivers, shown as 316A and 316B. When the driver 316A is installed on the server 106, then all host computers 102, including those with various operating systems, such as Windows 95, Windows 98, Windows NT, or Windows ME, may have the driver installed when they connect to the server 106. The driver(s) 316A, 316B installed on the server 106 may be utilized by the host computers 102 or clients. The clients may download and install the driver(s) from the server 106 via a “Point ‘n’ Print” mechanism supported by server. The host computer 102 uses the appropriate driver 316 to generate a job, such as a print job or a customized document, in the appropriate format. The job may be configured in a page description language such as PCL (printer control language) or PostScript, for example, depending on the managed device 104. The job sent by the host computers and received by the server 106 is forwarded onto the managed device 104 through a queue 109. The managed device 104 may then receive the job and print the customized document.
The host computer 102A is shown as associated with the server 106A, in this example embodiment. The server 106A is shown as associated with devices 104A and 104B. Print queue PQ1109A is shown to be associated with device 104A. Print queue PQ4109B is shown to be associated with device 104B. Print queues PQ2, PQ3, and PQ5, shown in
Associated with the device 104B, for example, there may be multiple queues, such as the queue 109B from the server 106A, and the queue 109C from the server 106B. Any queue may be shared by multiple users, including queues from other servers, for example server 106C, and/or queues from other computers, for example, host computer 102D. One or more queues, for example queue 109A and 109B, may use the same driver.
The one or more host computers may include an administrative computer 103. The administrative computer 103 may be coupled to a management server 110 directly, or via the network 108. The administrative computer 103 may include the software 208, as discussed in more detail below.
The PSM 350 may manage the print server and communicate with the PDM 360 to update the drivers, for example. The PDM 360 includes a driver repository 380, in an embodiment. A Driver Management Configuration (DMC) 390 may be included in the PDM 360. In some embodiments, the driver management configuration 390 is included in the PSM 350. The driver management configuration 390 is discussed in detail with respect to the pre-configured driver icon 540 illustrated in
The PDM 360 maintains, collects and organizes one or more drivers. The PDM 360 may indicate that the driver 316A has a newer version to be installed. Accordingly, the PSM 350 may download and install a newer version of 316A, if desired.
The driver repository 380 may include metadata. The metadata can provide a consistent view of the driver data that is accessible to other applications and management tools.
The driver repository 380 comprises means for modeling the model peripheral server system in an embodiment where the model peripheral server system may be constructed, viewed, and amended within the driver repository. The driver repository 380 may include a list of one or more peripheral types, such as peripheral types 382A and 382B, which may include, for example, a printer model such as an HP® color LaserJet 2500. Each of the peripheral types 382A, 382B, and 382C may include one or more associated drivers 316.
Each driver 316 may form part of a driver family 384, which is a collection of the different operating systems 210 and/or different driver versions 386. The operating system (OS) for one or more drivers in the repository 380 may correspond to the operating system 210 of the host computer. In some embodiments, the OS 210 of the host computer may be installed on the corresponding print server. In some cases, a driver may be installed on the print server to support clients that use operating systems other than the OS 210 associated with the host computer.
The peripheral type 382A may include the driver family 384A, and the driver family 384B. The driver family 384A may include one or more drivers. The driver family 384B may also include one or more drivers 316. The driver family 384B may include a driver version 386C and a driver version 386D, each for operating system 210C, in an example embodiment. Also, the driver family 384B may include a driver version 386E for operating system 210D and a driver version 386F for operating system 210E, in an example embodiment. Each driver in a driver family may have the same driver name. If the name of a driver in a first driver family is changed in the repository, the driver may no longer be considered to form a part of the first driver family.
The peripheral type 382B may include the driver family 384C, the driver family 384D, and the driver family 384E. The driver families 384C, 384D and 384E each may include one or more drivers
The driver repository 380 in the illustrated embodiment is shown as a tree hierarchy. The top level includes the peripheral type 382. There may be one or more peripheral types listed in the driver repository, such as types 382A, 382B and 382C. Each peripheral type may include one or more driver families 384. In the illustrated embodiment, each driver family 384 may include a friendly name and a manufacturer's name in parenthesis, such as Color LaserJet Driver (color Laser Jet xxx 66x driver) 316C. Names associated with the driver friendly name and the manufacturer's name may be obtained from hardware discovery. The user may assign the friendly name, if desired. In the illustrated embodiment, drivers 316C, 316D, and 316E are each associated with their own driver family.
Listed under the driver friendly name and the manufacturer's name may be one or more operating systems 210 associated with the driver of the family. Each operating system 210 may include one or more driver versions 386. In some embodiments, the driver family may list the versions separately under the family name, as shown in the embodiment of
In the embodiment of
The peripheral type 382 may be displayed in the driver repository 380 when the corresponding driver 316 is added to the repository. The repository may store the driver 316 as associated with one or more peripheral types 382.
The driver repository 380 may include one or more filters in the embodiments shown in
In some embodiments, the driver repository 380 may include one or more buttons. The repository 380 may include a button 440 to add a peripheral type (model) to the repository. In some embodiments, the repository 380 includes a button 450 to add a driver from a Site A, such as from UNC. The repository 380 may include a button 460 to add a driver from a Site B, such as from a website, such as from www.hp.com.
In some embodiments, the driver repository 380 may include one or more icons. A default driver icon 510 may indicate which of two possible drivers is chosen as the default driver to use and/or install. Two or more driver versions 386 for each operating system 210 of each driver family may be available. As illustrated in the embodiment of
The repository 380 may include a qualified driver icon 520 illustrated in
The repository 380 may include a signed driver icon 530 illustrated in
The repository 380 may include a pre-configured driver icon 540 illustrated in
The repository 380 may include an update driver icon 550, as illustrated in the embodiment of
When the update driver icon 550 is activated, and before the driver is updated, the driver repository may indicate whether any jobs in any queues are affected. A queue indicator (not shown), such as a pop-up alert, may respond to the update driver icon 550 to indicate any affected jobs in the queue related to updating the particular driver(s). The queue indicator may be shown in a manner similar to the comparison results 700 illustrated in the analogous embodiment of
The repository 380 may include a shared driver icon 560, as illustrated in the embodiment of
The repository 380 may include any number of pull-down menus, drag-drop features, buttons, and icons to associate one or more drivers with one or more peripheral types. In some embodiments, both the driver and the peripheral type may be located in the driver repository, but not yet associated with each other until the menu, feature, button, or icon is appropriately activated.
The page 700 may include one or more indicators associated with different outcome scenarios or results. In an example embodiment, the page 700 may include a successful symbol 710, which indicates that the current system matches the selected or model system. In an example embodiment, the page 700 may include a caution symbol 720, which indicates that the current system may not match the model system. Examples of when caution is indicated include when there is no response from the peripheral, when the manufacturer's name of the peripheral was not obtained in the comparison, or when the current system may match the model system in the comparison, but verification may be lacking.
In an example embodiment, the page 700 includes a warning symbol 730, which indicates that the current system does not match the model system. Where the current system does not match the model system, the two systems are identified as out-of-sync. Areas in the current enterprise system that may be out-of-sync with the model peripheral infrastructure system may include one or more of the following: a driver is not installed in the model peripheral infrastructure system, a current peripheral type is not associated with the model peripheral infrastructure system, the installed driver is not associated with a peripheral type, and the installed driver does not have a qualified driver icon, among others.
For the comparisons where the result is a caution symbol 720 or a warning symbol 730, the results page 700 may list queues that are potentially affected when selected changes are made to either the model system or the current system.
At block 820, the model peripheral server system is compared to an actual peripheral server system, which may be associated with the PSM 350. At block 830, out-of-sync areas may be identified using the results of the comparison at block 820. In an example embodiment, the out-of-sync areas refer to areas in which the current system may not match the model system, as discussed herein with respect to
At block 840, changes may be implemented to synchronize the current peripheral server system with the model peripheral server system. In some embodiments, blocks 840-890 may represent means for implementing changes to the actual peripheral server system and/or to the model peripheral server system. Blocks 850-890 illustrate a few of many possible changes.
For example, at block 850, a change may be implemented by appropriately changing the peripheral driver default. This may be accomplished in some embodiments where a feature in the page 700, such as a link associated with the default driver icon 510, is activated to change the default driver.
At block 860, a change may be implemented by updating the appropriate peripheral driver. This may be accomplished in some embodiments where a feature in the page 700, such as a link associated with the update driver icon 550, is activated to update the appropriate driver.
At block 870, a change may be implemented by adding an appropriate driver to the repository 380. This may be accomplished in some embodiments where a feature, such as a link associated with the update driver icon 550, is activated to add the appropriate driver.
At block 880, a change may be implemented by appropriately associating a driver to the peripheral type. This may be accomplished in some embodiments where a feature in the comparison result page is activated to add the appropriate driver.
At block 890, a change may be implemented by adding an appropriate peripheral type to the repository 380. This may be accomplished in some embodiments where a feature, such as button 440, is activated to add the appropriate peripheral type.
Many additional changes may be affected. For example, in some embodiments a feature in the page 700 associated with the qualified driver icon 520 can be activated to test and qualify at least one driver, as appropriate to synchronize the systems. In some embodiments, a feature in the page 700 associated with the pre-configured driver icon 540 may be activated to pre-configure one or more settings of at least one driver, as appropriate to synchronize the systems. In addition, a feature in the page 700 associated with an associate driver icon may be activated to associate at least one driver with one of the plurality of peripheral types, as appropriate to synchronize the systems.
The following description includes terms, such as “up”, “down”, “upper”, “lower”, “first”, “second”, etc. that are used for descriptive purposes only and are not to be construed as limiting. The embodiments of a device or article described herein can be manufactured, used, or shipped in a number of positions and orientations.
The functions or algorithms described herein may be implemented in hardware, software or a combination of software and hardware in one embodiment. The software may comprise computer executable instructions stored on computer readable media such as memory or other types of storage devices. The phrases “computer-readable media” or “machine-readable media” may be used to represent software-transmitted carrier waves. Further, such functions correspond to modules, which may be software, hardware, firmware, or any combination thereof. Multiple functions can be performed in one or more modules, and the embodiments described are merely examples. A digital signal processor, application specific integrated circuit (ASIC), microprocessor, or any other type of processor operating on a system, such as a personal computer, server, a router, or any other device capable of processing data including network interconnection devices may be used to execute the software.
Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example process flow is applicable to software, firmware, and hardware implementations.
The illustrations of embodiments described herein are intended to provide a general understanding of the structure of various embodiments, and they are not intended to serve as a complete description of all the elements and features of apparatus and systems that might make use of the structures described herein. The accompanying drawings that form a part hereof show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced.
FIGS. 1 to 8 are merely representational and may not be drawn to scale. Certain proportions thereof may be exaggerated, while others may be minimized. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Parts of some embodiments may be included in, or substituted for, those of other embodiments. While the foregoing examples of dimensions and ranges are considered typical, the various embodiments are not limited to such dimensions or ranges.
The elements, materials, geometries, dimensions, and sequence of operations can all be varied to suit particular applications. Parts of some embodiments may be included in, or substituted for, those of other embodiments. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems.
Embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
The Abstract is provided to comply with 37 C.F.R. § 1.72(b) to allow the reader to quickly ascertain the nature and gist of the technical disclosure. The Abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
In the foregoing Detailed Description, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments have more features than are expressly recited in each claim. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of embodiments herein may be made without departing from the principles and scope of embodiments as expressed in the subjoined claims.