NETWORK PRINTING METHOD IN APPARATUS

Abstract: A method and apparatus for carrying out printing requests is disclosed for a client/server networked computing environment. Where the client computers are arranged to simply receive data in response to requests and carry out relatively little processing on the received data the client computer is termed "Thin". In such an environment print requests from a client computer to a server computer are executed under the control of the server computer. In a large network of computer with many printers this results the maintenance of printer configuration data being a large task. The invention alleviated this problem by enabling the client computer to take control of the printing task.

Description: NETWORK PRINTING METHOD IN APPARATUS The present invention relates to the performance of printing operations in a computer network. The invention is particularly applicable to printing operations carried out in a client/server computer environment. Networked computer systems are known in which the computers connected by the network can be divided into two categories The first category are the server computers which are often used to store databases and to run database management programs to allow access and manipulation of the data in the database. The second category are the client computers which, under the control of a user, access the data stored by the server computer and enable operations on that data such as editing, analysis, downloading or printing. Within the category of client/server computer architecture there are a number of sub-classes. These classes generally distinguish various client/server architectures depending on the distribution of processing between the client computers and the server computers. One such class is commonly called "Thin Client" and refers to a situation in which, in response to requests for information from the client computer, the application programs on the server computer carry out most of the data processing. In other words, the client computer allows a user to make requests for information, the server computer then carries out the necessary processing to produce the data and passes back the results to the client computer for viewing in some such thin client/server arrangements, the server computer holds configuration data and identification/location data for every printer connected to the network. When a print request is made by the user via the client computer, the printing task is carried out under the control of the server computer. One problem with performing printing operations over a large network of computers is that of managing the configuration data and identification/location data for the printers on the network. For example, printers or client computers may move their physical positions thereby requiring changes to be made to the appropriate location data. Printers may be upgraded resulting in a change in configuration data and perhaps even the network address of the printer. The resulting overhead in managing the printer data so as to be able to send print jobs to a printer that is appropriate for the physical location of the client computer is costly and therefore undesirable. In some situation, there may be no appropriate printer in the proximity of the client computer making the physical printing of material impossible. According to a first aspect of the present invention there is provided a method of processing data for performing a printing operation in response to a print request made by a first computer to a second computer in a network of computers, the method comprising the steps of: i) at said second computer: a) accessing stored data associating one or more printer identifiers and/or application program identifiers with each member of a set of network address ports; b) receiving a print request from said first computer, said request comprising an identification of one of said stored printer identifiers or application program identifiers; c) identifying the network address of said first computer; and d) sending data required for said print request to the network address of the first computer, using the port associated with the printer identifier or application program identifiers identified in the request; and ii) at said first computer: a) accessing stored data defining an association between each member of the set of network address ports and a printer and/or application program; and b) in response to data being received via one of said predetermined ports, sending the received data to the printer or application program associated, in accordance with said stored data, with the network port from which the data was received . This method of processing data for printing removes the need for the server computer to be configured with the details, locations and driver programs for all the printers on the network. In addition, when the print request results in a particular application program being used to open a file and present it to the user then this provides further advantages. For example, it avoids the need for the user to have any printing facilities available (such as a mobile user connected to a network by a GSM phone but not in the proximity of a printer) or removes the delay of physically printing the document. The invention is also advantageous when the network address of a client computer changes each time it is logged on to a network, for example, using the dynamic host configuration protocol (DHCP). Embodiments of the present invention are described below with reference to the accompanying drawings in which: Figure 1 shows a schematic view of a network of computers controlling and monitoring a telecommunications system; Figure 2 is a diagrammatic representation of a client computer connected to a server computer in the network shown in Figure 1 ; Figure 3 is a diagrammatic representation of data stored on the client and server computers shown in Figure 3; Figure 4 is a flow diagram showing the processing carried out by the server computer shown in Figure 2; and Figure 5 is a flow diagram showing the processing carried out by the client computer shown in Figure 2; Figure 1 shows a schematic view of a large networked computer system 101 that is arranged to monitor and control a telephone system 1 03 via a telephone exchange 105. The telephone exchange 105 is connected to a server computer 107 that is arranged to control and monitor the activity of the telephone exchange 105. The server 107 is connected to a database 109 that it uses to store collected data and control programs. The server computer 1 07 is connected to a wide area network (WAN) 1 1 1 along with a further server computer 1 1 3 connected to a corresponding storage device 1 1 5. The WAN 1 1 1 is also connected to two local area networks (LAN) 1 1 7. Server computers 1 1 9 and printers 1 21 are connected variously to the LANs 1 1 7 and the WAN 1 1 1 . The computers 1 07, 1 1 3, 1 1 9 are arranged to communicate with each other via the networks 1 1 1 , 1 1 7 using IP network protocol such as TCP/IP (other alternative IP protocols include UDP/IP and RTP/IP). In addition, any one of the printers 1 21 may be arranged to carry out printing operations in accordance with instructions sent from any one of the computers 107, 1 13, 1 1 9 connected to the networks 1 1 1 , 1 1 7. As will be known by those skilled in the art, each device in an IP network is assigned a unique address (IP address) that uniquely identifies the device in the network 1 01 . In addition, each IP address is divided into approximately sixty four thousand port numbers each enabling a notionally separate network connection. An IP address is denoted by a string of numbers delineated with periods (or full stops) (e.g. 1 23.2J 54.209) and a port number for a particular address is appended to the IP address after a colon (e.g. 1 23.2J 54.209:63295 where 63295 is the port number). The server computers 107, 1 1 3 are conventional computers running the VMS operating system while the client computers 1 1 9 are PC's with conventional operating systems such as Windows. The server computers 107, 1 1 3 and the client computers also run appropriate (and conventional) Client/Server software that enables the client computers to access the control and monitoring programs and data an the server computers 107, 1 13 via the networks 1 1 1 , 1 17. This enables users to print reports or other documents using one of the printers 1 21 attached to the networks 1 1 1 , 1 1 7. Figure 2 shows parts of the network 1 01 in further detail. The operating systems and application programs that are resident on the server 107 and the client 1 1 9 are shown as functional blocks. The server 107 is running the VMS operating system that includes a print spooler 203. The print spooler 203 is a conventional program that handles printing tasks for the operating system. Such spoolers have a file as their input along with a print command that details the printing task (e.g. number of copies) . Once these inputs have been received, the print spooler communicates with the assigned printer 1 21 to produce the requested output. The resident software includes a further program 21 1 herein termed the network printing program. The program 21 1 also handles printing tasks but instead of sending a file and print command to a printer, is arranged to send data to the client computer from which the print request was initiated in a manner that will be explained in further detail below. The sever computer 1 07, as part of the normal log-on procedure, detects when a user logs on to the server 107 via the client computer 1 1 9 and stores the IP address of the client computer 1 1 9 in a file 301 (see Figure 3) that is specific to the user. In addition to the IP address 203, the file 301 also contains a reference 305 to a corresponding settings file 307 for the particular user. The settings file 307 comprises four entries each having three fields, the first field for printer or application program name, the second field for an IP address and the third field for an IP port number. The functions of the network printing program 21 1 will now be described further with reference to Figure 4. In response to the reception of a print request from the client 1 1 9, at step 401 the network printing program 21 1 opens the settings file 307, extracts the first field from each entry and presents these to the user as the choice of printers available for the print request. In response to the user's choice, at step 403 the network printing program 21 1 extracts the corresponding second and third fields from the chosen entry (filling in the blank second field from the IP address entry in the data file 301 ). At step 405 the network printing program 21 1 opens a network connection for the identified IP address and port number. At step 407, if the user has chosen the default entry (as opposed to a printer entry) in step 403 above, the network printing program 21 1 inserts a line in the file (containing the data to be printed) that recites the file extension (e.g. "doc" for a word-processing file or "txt" for a text file). If any conversion is required between the server file format and the client file format then this is carried out at step 409. Then, at step 41 1 the network printing program 21 1 sends the file to the client computer 1 1 9 and, at step 41 3, closes the IP connection. With reference to Figure 2, the client computer 1 1 9 has a corresponding network printing program 21 3 that is in communication with the operating system 21 5 and runs as a background process monitoring selected ones of the network ports 21 7. The network printing program 21 3 is started up automatically when the client computer 1 1 9 is switched on and refers to an initialisation file 309 (shown in Figure 3) to identify the IP ports that should be monitored. The functions of the network printing program 21 3 will now be described with reference to Figure 5. At step 501 the program 21 3 monitors the IP ports defined in respective entries of the file 309. The file 309 also defines what action should be taken when a file is received via each of the defined ports. Accordingly, when data is received via a given port then at step 503 the network printing program 213 determines the appropriate action to be taken with the data. If the file 309 indicates that data received on a given port should be sent directly to a printer then this is carried out at step 505 after which the network printing program 21 3 returns to monitoring the IP ports 217 at step 501 . If the port entry in the file 309 determines that a received data should not be sent directly to a printer then, at step 507, the network printing program 21 3 opens the file containing the data and inspects the first line for a file extension. If at step 509 the file extension is identified as "csv" then, at step 51 1 , the program 21 3 saves the file with the extension appended and sends a command to the operating system to execute the file. The network printing program 21 3 then returns to step 501 to monitor the IP ports 21 7. If at step 51 3 the file extension is identified as "txt" then at step 51 5 the program 21 3 saves the file with the extension appended, sends a command to the operating system to execute the file and returns to step 501 to monitor the ports 21 7. If at step 51 7 the file extension is identified as "htm" then at step 51 9 the program 21 3 saves the file with the extension appended, sends a command to the operating system to execute the file and then returns to step 501 to monitor the ports 217. If at step 521 the file extension of the received file is identified as "doc" then at step 523 the program 21 3 saves the file with the extension appended, sends a command to the operating system to execute the file and then returns to step 501 to monitor the ports 21 7. If, in the file extension recognition steps 509, 51 3, 51 7, 521 no extension is recognised then, at step 525, the program 21 3 saves the file with the extension "txt" appended, sends a command to the operating system to execute the file and then returns to step 501 to monitor the ports 21 7. The result of executing the file is that file will be opened using the associated application program i.e. Excel for "csv", Word for "doc", Notepad for "txt" and an the preferred internet browser for "htm" (the program associated with a given file extension may be specified by the user in some operating systems) . As described above, once the print request made by the user has been received by the client computer 1 1 9, the data will have either been sent to a local printer or presented to the user via an application program. In the case of the local printer this is one that is defined by the printer options set by the user on the client computer as opposed to any printer settings defined on the server computer. This removes the need for the server computer to be configured with the details, locations and driver programs for all the printers on the network. This is a difficult task to achieve when the network is not small. When printers can be moved on the network or even removed from it easily the task of maintaining printer configuration details becomes more difficult. Since the printer configuration settings are defined on the client computer they are no longer the responsibility of the server computer administrator and instead can be modified whenever necessary by the user in accordance with the local printer configurations and availability. This is of particular advantage when the client computer is mobile i.e. can be moved readily between physical locations and be connected to the network at any one of those locations. When the print request results in a particular application program being used to open the data file then this provides further advantages. For example, it avoids the need for the user to have any printing facilities available and removes the delay of physically printing the document. This is of particular advantage where the user needs to work on the document in an electronic form e.g. to edit or e-mail it. In the system described above with reference to Figures 4 and 5 the user is able to select (at step 403) from one of three printers and a single application as determined by the contents of the settings file 307 stored on the server 107 for the particular user. If the user wishes to change these setting the file 307 this can be accomplished either by directly editing the settings file 307 or by a suitable interface facility such as a control panel. In the present embodiment there are four ports reserved for use by the network printing programs 21 1 , 21 3 and therefore the number of printers/applications is limited to this number (however it will be appreciated that more ports could be provided by adding further entries to 307) . In order to change the options presented to the user, the first field of one or more of the entries in the settings file 307 is modified. If the new setting is for a printer the field should contain a recognised printer name such as "LPT1 " or "COM 1 " so that the entry is properly recognised in step 403. If an application is to be specified then the application name should be entered in the first field of the appropriate line in the file 307. The system can be set up for a combination of printers or applications or exclusively for printer or for applications. When the file 307 has been amended, the entries in the client file 309 can also be amended for the corresponding ports. In other words, for each port defined in the client settings file 309, the instruction (to send the file to a printer or to open with a predetermined application program) can be amended to correspond to the function defined in the first field of the entry for that port in the settings file 307 on the server 107. However, it is not essential that the settings in the file 309 correspond to those in file 307. For example it is also possible for a user to assign what is shown in file 309 as a printer port to a specific application program simply by appropriate editing of Although the embodiment above is arranged to either send a file received by the client computer 1 1 9 directly to a printer or open it with an application further alternative actions are possible. For example, the file could be received and then processed using a batch processing file. Such batch files can be used to carry out many types of processing such as editing, sending to another location (by e-mail, file transfer, facsimile or any other suitable method) for compressing or for archiving. Such a batch file would be referred to by a command entered in the appropriate line of the client settings file 309. The data file 301 described above also contains a reference to the settings file 307 for the user as well as the IP address. As an alternative, the setting file could be applicable to all users and therefore no reference would be required to the settings file 307 in file 301 . A further alternative would be for the client computer to send the settings file from the client to update a user-specific settings file on the server. In the embodiment described above, the server network printing program 21 1 is described as a single program. However, as an alternative, a separate program can be run for each of the possible choices in the settings file 307. In this case, each version is set up to deal with either a request to print to a printer or to carry out network printing in accordance with the invention Each of the network printing programs can be arranged to present itself to the user as a normal printer Although the embodiment above is described using the VMS operating system and PC client computers, it will be clear to those skilled in the art that the invention is applicable to any server based operating system and its associated client systems. In some circumstance it would be appropriate to ensure that the files being transferred between the client and the server 107, 1 19 could not be altered or read by an unauthorised party. In this case, encryption techniques can be applied to the data transfer. A mechanism for improving the security that is implemented in the above embodiment is to limit the set of file extensions that the client computer will accept. This reduces the possibility of undesirable files such as executable files being transmitted to the client computer 1 1 9. As will be understood by those skilled in the art, the network printing programmes 21 1 , 21 3 both together and independently embody aspects of the invention. These programmes 21 1 , 21 3 can be contained on various transmission and/or storage mediums such as a floppy disc, CD-ROM, or magnetic tape so that the programmes can be loaded onto one or more general purpose computers or could be downloaded over a computer network using a suitable transmission medium. Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise", "comprising" and the like are to be construed in an inclusive as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to".

Claims: CLAIMS 1 . A method of processing data for performing a printing operation in response to a print request made by a first computer to a second computer in a network of computers, the method comprising the steps of: i) at said second computer: a) accessing stored data associating one or more printer identifiers and/or application program identifiers with each member of a set of network address ports; b) receiving a print request from said first computer, said request comprising an identification of one of said stored printer identifiers or application program identifiers; c) identifying the network address of said first computer; and d) sending data required for said print request to the network address of the first computer, using the port associated with the printer identifier or application program identifiers identified in the request; and ii) at said first computer: a) accessing stored data defining an association between each member of the set of network address ports and a printer and/or application program; and b) in response to data being received via one of said ports, sending the received data to the printer or application program associated, in accordance with said stored data, with the network port from which the data was received. 2. A method according to claim 1 in which at step c) at said first computer: in response to data being received via one of said ports associated, in accordance with said stored data, with a printer, sending the received data to that printer; and in response to data being received via one of said ports associated, in accordance with said stored data, with an application program, causing said data to be displayed using that application program. 3. A method according to claims 1 or 2 in which at step d) at said second computer: sending the data required for said print request to the network address of the first computer, using the port associated with printer name or application program name identified in the request; and in response to said request identifying an application program name, sending and identification of the type of data being sent in addition to the data itself. 4. A method according to any preceding claim in which the stored data accessed by said first computer associates only printers with each of said set of network address ports and said stored data accessed by said second computer associates only printer names with each of said set of network address ports. 5. A method according to any of claims 1 to 3 in which the stored data accessed by said first computer associates only application programs with each of said predetermined set of network address ports and said stored data accessed by said second computer associates only application program names with each of said set of network address ports. 6. A method according to any of claims 1 to 3 and 5 in which, instead of the received data being sent to a printer or application program the data is compressed and/or stored and/or transmitted to another computer. 7. A method according to claims 3 to 6 further comprising the step at said first computer of only accepting data from a predetermined set of data types. 8. A method according to any preceding claim further comprising the steps of: encrypting the data before sending it to the first computer; and decrypting the data received at said first computer. 9. A method of processing data for performing a printing operation in response to a request made by a first computer to a second computer in a network of computers, the method comprising the steps of: at said first computer: a) accessing stored data defining an association between each member of a set of network address ports and a printer and/or application program; b) in response to data being received via one of said ports associated in accordance with said stored data with a printer, sending the received data to that 5 printer; and c) in response to data being received via one of said ports associated, in accordance with said stored data, with an application program, causing said data to be displayed using that application program. 1 0 10. A method of processing data for performing a printing operation in response to a print request made by a first computer to a second computer in a network of computers, the method comprising the steps of: at said second computer: a) accessing stored data associating one or more printer identifiers and/or 1 5 application program identifiers with each member of a set of network address ports; b) receiving a print request from said first computer, said request comprising an identification of one of said stored printer identifiers or application program identifiers; c) identifying the network address of said first computer; 20 d) sending the data required for said print request to the network address of the first computer, using the port associated with printer identifier or application program identifier identified in the request; and e) in response to said request identifying an application program identifier, sending and identification of the type of data being sent in addition to the data itself. 25 1 1 . A data carrier carrying instructions for enabling a computing apparatus to carry out the method of any one of claims 1 to 10.

Inventors: BUTT JOHN, THOMAS GREGORY DEREK, BUTT, JOHN, THOMAS, GREGORY, DEREK
Applicants: BRITISH TELECOMM, BUTT JOHN, THOMAS GREGORY DEREK, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, BUTT, JOHN, THOMAS, GREGORY, DEREK
Application year: 2000
Main classification: G06F3
IPC codes: G06F3