The invention relates to the field of computer systems, and in particular, to printing software products.
Printers are common peripheral devices attached to computers. A printer allows a computer user to make a hard copy of documents that are created in a variety of applications and programs on a computer. To function properly, a channel of communication is established (e.g., via a network connection) between the printer and the computer to enable the printer to receive commands and information from the host computer. Once a connection is established between a workstation and the printer, printing software is implemented at a print server to manage a print job from order entry and management through the complete printing process. The printing software often includes a graphical user interface (GUI) that enables users to control the printing process.
Typically, secondary servers are implemented by the printing software to assist the primary print server to offload CPU intensive work in order to improve performance. However because the secondary server does not have its own database, the secondary server is required to query across a network to the primary server for database accesses. In some geographies the lack of network reliability causes printing operations controlled by the secondary server to come to a total stop whenever there is a network outage.
Accordingly, a mechanism to provide reliable printing operations at a remote server is desired.
In one embodiment, a method includes receiving a request to access print job objects at a remote server database from a GUI operating on a local server and displaying the print job objects from the remote server database at the GUI.
Another embodiment discloses a print server including a processor, a database and a printing software product executed by the processor. The printing software product includes a GUI to receive a request to access print job objects from a remote server database to display the print job objects from the remote server database with print job objects from the local database.
In yet a further embodiment a computer system includes a processor and a GUI executed on the processor to display a command center window including two or more print server databases available for access.
A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
A mechanism to simultaneously access multiple print servers is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Network 106 may be a local area network (LAN) or any other network over which print requests may be submitted to a remote printer or print server. Communications link 104 may be in the form of a network adapter, docking station, or the like, and supports communications between data processing system 102 and network 106 employing a network communications protocol such as Ethernet, the AS/400 Network, or the like.
According to one embodiment, network 106 includes print servers 108 that serve print requests over network 106 received via communications link 110. Print servers 108 subsequently transmit the print requests via communications link 110 to one of printers 109 for printing, which are coupled to network 106 via communications links 111. In one embodiment, an operator at data processing system 102 may interact with print servers 108 using a GUI 120 to submit requests for service to one or more of printers 109 over network 106.
According to one embodiment, each print server 108 may be configured to control a single printer (e.g., print server 108(a) controls printer 109(a), print server 108(b) controls printer 109(b), etc.). Alternatively, each print server 108 may control all printers 109, or some combination thereof. In a further embodiment, each print server 108 includes a database implemented to process print jobs requested by remote data processing systems. Since each site has its own database, if the communication between two sites is down, each site is still capable of receiving and processing printing jobs.
Although described as separate entities, other embodiments may include a print server 108 being incorporated in one or more of the printers 109. Therefore, the data processing system network depicted in
According to one embodiment, print servers 108 implement a printing software product that manages the printing of documents from data processing system 102 to one or more of printers 109. In other embodiments, the printing software manages printing of documents from multiple data processing systems 102 to printers 109.
According to one embodiment, the printing software product may be implemented using either InfoPrint Manager (IPM) or InfoPrint ProcessDirector (IPPD), although other types of printing software may be used instead. In a further embodiment, the print printing software product includes GUI 120 that enables a system administrator (or operator) to interact with the print printing software product at printer servers 108.
In one embodiment, GUI 120 enables an operator to log in and log out of each server 108. Once logged in, the operator may access a server 108 database in order to view and/or edit print job operations. Thus, GUI 120 includes a command center window that enables the operator to view objects from all servers 108 for which the operator is logged in.
Referring back to
Referring back to
According to one embodiment, GUI 120 may be used to move print jobs between servers 108 during various points in their processing. For instance, a job can be moved from the beginning, which would take the original files as received on the source system. Jobs may also also be moved “from current”, which would take the current files from a job's directory. The “current” files may have already been converted or otherwise processed on the source server and would not need processing on the destination server.
In one embodiment, the GUI 120 command center enables an operator at the local server to hide a logged in remote server in order to prevent remote server print jobs from showing. In such an embodiment, the hidden remote server objects can again be shown from the hidden logged server by using the command center. In a further embodiment, GUI 120 will call a method requesting a file stream whenever a view action is made for a print job that resides on a remote server.
In such an embodiment, the file is sent using the SSL sockets in order to maintain security. In a further embodiment, GUI 120 generates a temporary file that is saved to a previously determined location that will be used to view the job. When viewing of the specified file has been completed the file is removed from the system where the command center is installed.
According to one embodiment, GUI 120 verifies a user's authority to perform actions on a remote server. In such an embodiment, every GUI action uses the facade to verify if an action can be performed when a displayed action menu item is selected (or clicked). For example, GUI 120 can make a call to a remote server to verify that a user is authorized to perform a requested action at the remote server prior to issuing a call for the remote server to perform the action. In another embodiment, the user's authority to perform action may be verified at the local server, rather than making the call to the remote server.
After successful login, objects from all servers are shown on the main window of GUI 120.
The above-described GUI command center enables an operator to view operations, printers and jobs at all servers in a printing network. Additionally, the operator may move print jobs from one server to another server.
Computer system 500 further comprises a random access memory (RAM) or other dynamic storage device 525 (referred to herein as main memory), coupled to bus 520 for storing information and instructions to be executed by processor 510. Main memory 525 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 510. Computer system 500 also may include a read only memory (ROM) and or other static storage device 526 coupled to bus 520 for storing static information and instructions used by processor 510.
A data storage device 525 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 500 for storing information and instructions. Computer system 500 can also be coupled to a second I/O bus 550 via an I/O interface 530. A plurality of I/O devices may be coupled to I/O bus 550, including a display device 524, an input device (e.g., an alphanumeric input device 523 and or a cursor control device 522). The communication device 521 is for accessing other computers (servers or clients). The communication device 521 may comprise a modem, a network interface card, or other well-known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions. The instructions can be used to cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims, which in themselves recite only those features regarded as essential to the invention.