An operating system provides a point-and-print capability to users of the workstation. The point-and-print capability allows a user to print on any printer available within a distributed system by simply selecting a printer and requesting to print on the printer. The retrieval of configuration information and installation of the printer is performed transparently relative to the user of the workstation. The required printer configuration information is retrieved from a database that is maintained at a network server for the network that includes the target printer. A heuristic technique is employed to obtain complete printer configuration information when such printer configuration is not fully available from the network server.
|
12. In a distributed system comprising a workstation having local storage and a remote network having at least one printer and a network server, a method comprising the computer-implemented steps of:
providing a database of printer configuration information and printer drivers at the network server for the printers in the network;
providing a database of printer configuration information and printer drivers for installable printers of the workstation in the local storage of the workstation;
retrieving available printer configuration information for a selected one of the printers in the network from the network server and providing the available printer configuration information to the workstation; and
determining that the provided printer configuration information is incomplete and in response, accessing the database in the local storage to retrieve complete printer configuration information and a printer driver for the selected printer.
16. A distributed system comprising:
a network having at least one printer for executing jobs;
a network server for regulating access to the network and having a database of printer configuration information for the printer; and
a workstation interfaced with the network and having local storage for issuing a request to execute a print job on the printer in the network, said workstation running an operating system, comprising:
a retrieval mechanism for retrieving the printer configuration information from the network server in response to the request to execute the print job on the printer, said printer configuration information including information that identifies the printer; and
an installer for using the information that identifies the printer to identify and retrieve a printer driver for the printer, wherein the printer driver includes at least one dependent file, for installing the printer driver at the workstation and for storing at least some of the retrieved printer configuration information in the local storage.
0. 27. In a distributed system comprising a first workstation and a remote network having a printer and a network server, a method comprising the computer-implemented steps of:
providing a database of printer configuration information, including printer configuration information for the printer in the remote network, in shared memory at the network server;
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation and to determined where the printer driver is stored in the distributed system; and
retrieving the printer driver from where it is stored, installing the identified printer driver at the first workstation and storing at least some of the retrieved printer configuration information in the local storage of the first workstation,
wherein the printer driver includes at least one dependent file.
24. A tangible computer-readable storage medium for use in a distributed system that has a first workstation with a local storage and a remote network having a printer and a network server that stores a database of printer configuration information, including printer configuration information for the printer in the remote network, said medium holding instructions for:
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation, wherein the printer driver includes at least one dependent file, and to determine where the printer driver is stored in the distributed system; and
retrieving the printer driver and the at least one dependent file from where it is stored, installing the identified printer driver at the first workstation and storing at least some of the retrieved printer configuration information in the local storage of the first workstation.
0. 31. In a distributed system comprising a first workstation and a remote network having a printer and a network server, a method comprising the computer-implemented steps of:
providing a database of printer configuration information, including printer configuration information for the printer in the remote network, in shared memory at the network server;
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation, wherein the printer driver includes at least one dependent file, and to determine where the printer driver and the at least one dependent file are each stored in the distributed system; and
retrieving and transmitting the printer driver and the at least one dependent file from their respective stored locations to the workstation for installation, wherein at least some of the retrieved printer configuration information is stored in the local storage of the first workstation.
0. 36. In a distributed system comprising a first workstation and a remote network having a printer and a network server, a method comprising the computer-implemented steps of:
providing a database of printer configuration information, including printer configuration information for the printer in the remote network, in shared memory at the network server;
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation, wherein the printer driver includes at least one dependent file, and to determine where the printer driver and the at least one dependent file are each stored in the distributed system; and
retrieving the printer driver and the at least one dependent file from where each is stored, and sending the printer driver and the at least one dependent file to the first workstation for installation, wherein at least some of the retrieved printer configuration information is stored in the local storage of the first workstation.
0. 1. In a distributed system comprising a first workstation and a remote network having a printer and a network server, a method comprising the computer-implemented steps of:
providing a database of printer configuration information, including printer configuration information for the printer in the remote network, in shared memory at the network server;
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation and to determine where the printer driver is stored in the distributed system; and
retrieving the printer driver from where it is stored, installing the identified printer driver at the first workstation and storing at least some of the retrieved printer configuration information in the local storage of the first workstation.
0. 2. The method of
3. The method of
4. The method of
providing a database of printer configuration information, including printer configuration information for the printer in the remote network, in shared memory at the network server;
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the first workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the first workstation and to determine where the printer driver is stored in the distributed system; and
retrieving the printer driver from where it is stored, installing the identified printer driver at the first workstation and storing at least some of the retrieved printer configuration information in the local storage of the first workstation,
wherein the first workstation runs an operating system and the operating system performs the step of retrieving the printer configuration information, and
wherein the network server runs a network operating system that differs from the operating system run by the first workstation.
5. The method of
6. The method of
7. The method of
running a program on the first workstation; and
issuing a request to print on the printer of the remote network from the program, wherein the steps of retrieving the printer configuration information, retrieving the identified printer driver, installing the identified printer driver and storing at least some of the retrieved printer configuration information in the local storage are performed transparently relative to the first workstation.
8. The method of
retrieving the printer configuration information for the printer from the shared memory of the network server in response to a request from the second workstation, said printer configuration information including information that identifies the printer;
using the information that identifies the printer to identify a printer driver to be installed at the second workstation and to determine where the printer driver is stored in the distributed system; and
retrieving the printer driver from where it is stored, installing the identified printer driver at the second workstation and storing at least some of the retrieved printer configuration information in the local storage of the second workstation.
9. The method of
10. The method of
11. The method of claim I
providing a database of printer configuration information, including printer configuration information for the second printer in the second remote network, in shared memory at the second network server;
retrieving the printer configuration information for the second printer from the shared memory of the second network server in response to a request from the first workstation, said printer configuration information including information that identifies the second printer;
using the information that identifies the second printer to identify a printer driver to be installed at the first workstation and to determine where the second printer driver is stored in the distributed system; and
retrieving the second printer driver from where it is stored, installing the identified printer driver at the first workstation and storing at least some of the retrieved printer configuration information in the local storage of the first workstation.
13. The method of claims claim 12, further comprising the step of installing the selected printer using the retrieved complete printer configuration information and printer driver for the selected printer.
14. The method of
15. The method of
18. The distributed system of
19. The distributed system of
20. The distributed system of
21. The distributed system of
22. The distributed system of
23. The method of
25. The computer-readable storage medium of
26. The computer-readable storage medium of
0. 28. The method of
0. 29. The method of
0. 30. The method of
0. 32. The method of
0. 33. The method of
0. 34. The method of
0. 35. The method of
0. 37. The method of
0. 38. The method of
0. 39. The method of
|
This application is a continuation of U.S. patent application Ser. No. 08/318,070, filed Oct. 5, 1994, now abandoned.
The present invention relates generally to data processing systems and, more particularly, to the automatic installation of printers in a distributed environment.
The Microsoft WINDOWS NT operating system, sold by Microsoft Corporation of Redmond, Wash., provides a point and print capability. In other words, a user of the workstation that runs the operating system merely needs to identify a target printer on the network (such as by pointing a mouse cursor at an icon for the printer) and then request to print a document in order to print on the target printer. Critical printer configuration information (such as the printer driver and other printer configuration data) is stored on the print servers for network printers. Each print server is a dedicated machine that runs the same operating system and is responsible for controlling a grouped of one or more printers. The print server stores the critical printer configuration information for the printers that are associated with it. When an application requests to initiate a print job, the print server retrieves a copy of printer driver for the printer to the requesting workstation and carries out the print request via a remote procedure call (“RPC”) mechanism. The retrieval of the printer configuration information and the installation of the printer are transparent to the user.
In accordance with a first aspect of the present invention, a method is practiced in a distributed system that has a workstation and a remote network. The remote network includes a printer and a network server. In this method, a database of printer configuration information is provided in shared memory at the network server. The printer configuration information stored at the network server includes printer configuration information for the printer in the network. The printer configuration information for the printer in the remote network is retrieved from the shared memory of the network server in response to request from the workstation. This retrieved information is used to install the printer for use by the workstation. The preferred embodiment may be practiced in an environment with multiple workstations and multiple servers. The servers and workstations may be running different platforms.
In accordance with another aspect of the present invention, a method is practiced in a distributed system having a workstation and a network with printers and a network server. In this method, configuration information for the printers is provided at the network server. In response to a request from the workstation to print on a selected one of the printers, printer configuration information for the selected printer is copied from the network server to the workstation. The printer configuration information is installed at the workstation and the selected printer is then used to service the print request.
In accordance with a further aspect of the present invention, a database of printer configuration information and printer drivers is provided at a network server. A database of printer configuration information and printer drivers for installable printers is provided at a server. Available printer configuration information is retrieved from the network server for one of the printers in the network. This available printer configuration information is provided to the workstation. It is determined that the provided printer configuration information is incomplete and in response, the locally maintained database is accessed to retrieve the complete configuration information and a printer driver for the selected printer.
In accordance with yet another aspect of the present invention, a distributed system includes a network that has at least one printer for executing print jobs and a network server for regulating access to the network. The network server includes a database of printer configuration information for the printer. The distributed system also includes a workstation that is interfaced with the network. The workstation may issue a request to execute a print job on the printer in the network. The workstation runs an operating system that includes a retrieval mechanism and an installer. The retrieval mechanism retrieves the printer configuration information for the network server in response to a request or execute a print job. The installer installs the printer configruaoin information that is retrieved by the retrieval mechanism so that the workstation may use the printer.
The preferred embodiment of the present invention provides a point and print capability within an operating system. This point and print capability allows a user to initiate a print job on a printer within a distributed system by merely identifying the printer and making the request to print. Any installation and configuration that is required for the document to be printed on the printer is performed automatically and transparently by the operating system.
The workstation 12 includes a memory 26 that holds a copy of an operating system 28. This operating system 28 includes client code for acting as a client of the network server 20. The operating system 28 also includes a number of graphical device interface (GDI) functions that help to configure and install printers. In the preferred embodiment of the present invention, the operating system 28 is an embellished version of the Microsoft WINDOWS operating system.
The operating system 28 provides a user interface that allows the user to select a printer that the user wishes to employ to print a document. The list of printers available to a user may include printers that are part of a network served by the network servers 18 or 20. For example, as shown in
The Netware server 20 holds an object-oriented database known as the “bindery” that contains definitions for users, groups, security and other objects of the associated network. The bindery 24 is like the bindery found in the Netware network operating system, version 3.11. The bindery 24 is used in the preferred embodiment of the present invention to hold the printer configuration and driver information for the printers of the network server 20.
As mentioned above, the operating system provides an implementation of the WIN32 API as specified by Microsoft Corporation. The WIN32 API provides a number of functions for manipulating printers to configure and install printers. Some of these functions will be described in more detail below.
A call is then made of the GetPrinter( ) function, which retrieves data stored in the bindery for the target printer. The handle to the printer that was returned by the OpenPrinter( ) function is passed as a parameter to the GetPrinter( ) function to identify the target printer. The GetPrinter function returns a PRINTER_INFO_2 structure that holds data about the target printer. In the preferred embodiment of the present invention, the PRINTER_INFO_2 data structure is of the following form:
typedef struct _PRINTER INFO_2 { /* pri2 */
LPTSTR
pServerName;
LPTSTR
pPrinterName;
LPTSTR
pShareName;
LPTSTR
pPortName;
LPTSTR
pDriverName;
LPTSTR
pComment;
LPTSTR
pLocation;
LPTDEVMODE
PDevMode;
LPTSTR
pSepFile;
LPTSTR
pPrintProcessor;
LPTSTR
pDatatype;
LPTSTR
pParameters;
PSECURITY_DESCRIPTOR
pSecurityDescriptor;
DWORD
Attributes;
DWORD
Priority;
DWORD
DefaultPriority;
DWORD
StartTime;
DWORD
UntilTime;
DWORD
Status;
DWORD
cJobs;
DWORD
AveragePPM;
} PRINTER INFO 2;
At this point in the process, the operating system knows the handle to the printer and has received data about the printer. The GetPrinterDriver( ) function is called to obtain printer driver data for the given printer from the bindery of the print server (step 42). A DRIVER_INFO_3A or a DRIVER_INFO_2 structure is returned in response to this function call. The operating system first tries to get a DRIVER_INFO_3A structure, but if cannot get a complete DRIVER_INFO_3A structure, it tries to get a DRIVER_INFO_2 structure. An error message is returned in response to the GetPrinterDriver( ) function call, if a complete DRIVER_INFO_3A structure is not available. The DRIVER_INFO_3A structure has the following format:
typedef struct DRIVER_INFO_3A {
DWORD
cversion;
LPSTR
pName;
//QMS 810
LPSTR
pEnvironment;
//Win32 × 86
LPSTR
pDriverPath;
//c:\drivers\pscript.dll
LPSTR
pDataFile;
//c:\drivers\QMS810.PPD
LPSTR
pConfigFile;
//c:\drivers\PSCRPTUI.DLL
LPSTR
pHelpFile;
//c:\drivers\PSCRPTUI.HLP
LPSTR
pDependentFiles;
//PSCRIPT.DLL\0QMS810.PPD\OPSCRIPTUI.DLL
LPSTR
pMonitorName;
//“PostScript monitor”
LPSTR
p/DefaultDataType;
//“EMF”
}DRIVER_INFO_3A, *PDRIVER_INFO_3A,
*LPDRIVER_INFO_3A;
The DRIVER_INFO—2 structure has the following format:
typedef struct_DRIVER INFO_2 { /* dri2 */
DWORD
cVersion;
LPTSTR
pName;
LPTSTR
pEnvironment;
LPTSTR
pDriverPath;
LPTSTR
pDataFile;
LPTSTR
pConfigFile;
} DRIVER INFO 2;
A list of dependent files is then built and these files are copied to the workstation 10, wherein the printer is configured (step 44). The list of dependent files is obtained from the DRIVER_INFO_3A structure, if one is available and if the structure includes a list of dependent files. If, however, the DRIVER_INFO_3A structure is not available or if the available structure does not include a list of dependent files, the heuristic approach must adopted as described below. The list of dependent files is printer model dependent. When a printer is installed on a print server, a list of files that is needed for the printer model is determined by the printer installation program. This information may be stored within the DRIVER INFO 3A structure.
The requisite configuration information is then added to the local database of configuration information (i.e., the registry) to install the printer (step 46). In particular, the AddPrinterDriver( ), AddPrintProcessor( ), AddMonitor( ), and AddPrinter( ) functions are called to add the print driver, print processor, monitor and printer configuration information to the registry. The print processor is a dynamic link library (DLL) that interprets data types to convert data from one data type to another data type, and the print monitor monitors a port associated with the printer. Print processor and monitors are known in the art.
Once the printer is successfully installed by completing the steps described above, the application program that prints a document may then begin printing. The installation that adds the printer driver, print processor monitor and printer information to the local memory space is performed by the network client portion of the operating system 28.
In some instances, the operating system 28 will be unsuccessful in retrieving complete information for the target printer. In such instances, the preferred embodiment of the present invention employs a heuristic to attempt to discern the appropriate information about the printer.
The above description has focused on the instance wherein a printer is automatically installed by requesting to print on the printer. It should also be appreciated that the printer may be alternatively installed by explicit user request. The installation is performed as described above, but is performed using a printer installation wizard.
Suppose a user selects the printer associated with icon 78 in FIG. 6C. In such a case, edit box 68 (
While the present invention has been described with reference to a preferred embodiment thereof, those skilled in the art will appreciate the various changes in form and detail may be departing from the intended scope of the present invention as defined in the independent claims.
Teng, Chia-Chi, McKelvie, Samuel J., Tryon, David H., Marbry, Jonathan E., Fon-Shaw, Lin
Patent | Priority | Assignee | Title |
10148846, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recoding medium |
10838704, | Mar 28 2018 | Brother Kogyo Kabushiki Kaisha | Application program setup method and download server |
10897427, | Jul 27 2001 | Western Digital Technologies, INC | Providing streaming media data |
11122181, | Aug 09 2018 | Brother Kogyo Kabushiki Kaisha | Non-transitory computer-readable recording medium storing computer-executable instructions and setup system for selecting a device |
7886026, | Oct 11 2001 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Hardcopy output engine configuration apparatus and method |
7903267, | Nov 02 2005 | Kyocera Mita Corporation | Automatic installation system for printer driver, and program recording medium |
7933033, | Jul 29 2003 | Ricoh Company, LTD | Image forming apparatus, image processing method, image processing program and recording medium |
8185887, | Mar 31 2006 | Ricoh Company, Ltd. | System and method for printer driver distribution with searchable map database |
8214752, | Sep 29 2006 | Sharp Kabushiki Kaisha | Systems and methods for dynamically generating user interfaces for controlling a device with a client side filter |
8261259, | Mar 01 2007 | Ricoh Company, Ltd.; Ricoh Company, LTD | Dynamic printing system, apparatus and method |
8274677, | Feb 25 2005 | Ricoh Company, Ltd. | Information processing system reducing inconvenience relating to distance between computer and printer or the like |
8339649, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recording medium |
8379249, | Nov 20 2007 | Canon Kabushiki Kaisha | Forwarding print job and driver information from a first image forming apparatus to a second image forming apparatus |
8593678, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recording medium |
9092182, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recording medium |
9344596, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recording medium |
9529560, | Oct 21 2008 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and program |
9787867, | Jul 29 2003 | Ricoh Company, Ltd. | Information processing system, method and recording medium |
9998390, | Jul 27 2001 | Western Digital Technologies, INC | Providing streaming media data |
Patent | Priority | Assignee | Title |
4698688, | Jul 11 1984 | NIPPON TELEGRAPH AND TELEPHONE CORPORATION, 1-6, UCHISAIWAI-CHO, 1-CHOME, CHIYODA-KU, TOKYO, JAPAN, A CORP OF JAPAN; CANON KABUSHIKI KAISHA, A CORP OF JAPAN | Image processing system |
4829468, | Sep 18 1987 | HITACHI PRINTING SOLUTIONS, LTD | Print control system |
5150454, | Oct 16 1991 | PIPELINE ASSOCIATES, INC | Printing system and method |
5228118, | Jun 29 1991 | Brother Kogyo Kabushiki Kaisha | Printing system wherein one of printer drivers through which print data is sent from a data processor to a printer is selected based on interpreters available on the printer |
5268993, | Jun 04 1990 | Minolta Camera Kabushiki Kaisha | Printer |
5287194, | Nov 25 1992 | Xerox Corporation | Distributed printing |
5287434, | Oct 28 1991 | PAXAR AMERICAS, INC | Barcode identification system spooler |
5299296, | Oct 17 1991 | Ricoh Corporation | Multi-function machine with interleaved job execution |
5303336, | May 14 1990 | Hitachi, Ltd. | Printing system including print server |
5327526, | Oct 10 1990 | Fuji Xerox Co., Ltd. | Print job control system |
5349648, | Dec 13 1990 | Automatic high speed publishing system | |
5353388, | Oct 17 1991 | RICOH COMPANY, LTD , | System and method for document processing |
5371837, | Dec 18 1992 | Dataproducts Corporation | Virtual printer |
5450571, | Aug 29 1991 | Xerox Corporation | Dialog filtering process for a printing system to filter out non-selectable print programming selections |
5580177, | Mar 29 1994 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Printer/client network with centrally updated printer drivers and printer status monitoring |
6230211, | Jan 19 1993 | Canon Kabushiki Kaisha | Container-based method for exchanging information between computer processes |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 30 2003 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034541 | /0477 |
Date | Maintenance Fee Events |
Apr 22 2009 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 28 2010 | 4 years fee payment window open |
Feb 28 2011 | 6 months grace period start (w surcharge) |
Aug 28 2011 | patent expiry (for year 4) |
Aug 28 2013 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 28 2014 | 8 years fee payment window open |
Feb 28 2015 | 6 months grace period start (w surcharge) |
Aug 28 2015 | patent expiry (for year 8) |
Aug 28 2017 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 28 2018 | 12 years fee payment window open |
Feb 28 2019 | 6 months grace period start (w surcharge) |
Aug 28 2019 | patent expiry (for year 12) |
Aug 28 2021 | 2 years to revive unintentionally abandoned end. (for year 12) |