A method and an apparatus for delineating the beginning and the end of a data file sent to a print server in a computer network

Abstract: Unique structured fields for delimiting the beginning and end of a data file sent to a print server (2) in a comput­ er network (1) having a mixture of host processors (3,4) and microprocessors (5,6) for generating files to be printed. Each file sent to the print server (2) is pre­ ceded by a unique beginning of file structured field and is terminated with a unique end of file structured field. Both the beginning of file structured field and the end of file structured field include a length field, a file delimiter identification field and a unique flag to indi­ cate the beginning or the end of a data file.

Description: The present invention relates to computer networks in general and more particularly to a technique for unambiguously delineating the beginning or the end of a file or job sent to a print server in a local area network to determine when a file or job can be sent to a physical printer. In a local area network (LAN), the print server is the focal point for printing jobs from large processors or personal computers, all of which are attached to the local area network. The shared (spooled) printers are controlled by the print server function with output not being sent to any of the printers until the entire print file has been received at the server device. The files or jobs may be printed on a first in-first out (FIFO) basis or by some more sophisticated queueing mechanism. However, each file or job must be properly delineated to avoid overlap. The print server can be a specialized personal computer such as the IBM Personal Computer AT. One of the primary network architectures in use today is the system network architecture (SNA) developed and marketed by IBM Corporation. Information units of different type format carry messages through a computer network. A problem arises when devices utilizing different architectures are combined into a single network. Attempts to find an "End of File (EOF)" indicator which is consistent across SNA and non-SNA devices have not been successful. For example, the data stream architecture for IBM 3270 type devices does not address EOF in this environment. There are several techniques in the prior art which are used to delimit jobs. However, none address the problem solved by this invention. In SNA networks, the BIND command is used at the initiation of communication between pairs of logical units to determine the functions that a device supports. A positive response from the receiver indicates that it supports the list of functions that the sender wishes to utilize. After all communication is complete, the sender issues an UNBIND command to end communications. The BIND process takes a considerable amount of time. Therefore, once a BIND is established, it is left up for a long period of time. Thus, the BIND and UNBIND commands are not good for delimiting a job as they degrade performance. Furthermore, the concept does not exist in non-SNA devices. In systems which use the 3270 data stream architecture, more than half of the applications still use the binary synchronous communication (BSC) protocol for transmission, compared with the synchronous data link control (SDLC) protocol used by SNA devices. The concept of brackets is used within the SNA architecture to delineate a transaction, a unit of work or a message. The "begin" bracket is, in effect, a flag or indication that a transaction has begun. The transaction is followed by an "end" bracket, which is, in effect, a flag that the transmission has ended. An example of bracket usage is a query to another location for the time followed by a query for the date. If brackets were not used, the response to the time might be the date, if the date response program was faster than the time response program. If a bracket is equated to a "file", this would be sufficient to delineate a file or job. The hazard is that different applications use brackets in various manners. For a print job, one might use a bracket per page, while another application might use a bracket for the entire document. The biggest limitation, however, is that the concept does not exist in non-SNA applications. Time-outs are used for a variety of purposes in both SNA and non-SNA communications. For purposes of delimiting a job or file, they are to be avoided because they degrade performance. The method employed is to wait a longer than normal time to insure that the transaction is complete. The receiver device typically waits a minute in time duration to insure this. The use of a unique control code embedded at the end of the job and interpreted as the end of job or end of file indicator also has several problems as regards current IBM implementations. For example, the end of file control code which exists in the ASCII character set, X'1A' has no counterpart in the EBCDIC character code set. Certain printers support application programs that use the SNA Standard Character String (SCS) data stream while other printers support application programs that use the 3270 data stream. The first class of printers print unrecognized control codes as hyphens and the other class of printers reject unrecognized control codes with a negative response and terminate the printing process. The control code, End Message, used with the 3270 data stream is sent on a buffer basis and is not a reliable indicator of end of file as its name might imply. If an end of job control code were to be created, it would require the retrofit of many thousands of printers which would be prohibitively costly. In the European patent EP-A- 191 177, the structured field of the data stream are used to convey commands between hosts and printers over any kind of communication : channel attachment or telecommunication lines of any transmission protocol. These commands will be used for a host to identify the type and model of the printing device and the function sets supported by it. The same process, based on structured fields is used to chain the data sent to the printer and belonging to a same single "logical" entity. Therefore, it is an object of this invention to provide a mechanism by which a host system in a computer network which uses a first type of data format can send a data stream for printing on a printer which uses a different type of data format. For example, the data stream sent to a printer may be a 3270 data stream while the printer uses an ASCII data stream. It is further object of this invention to provide a method by which a printer server device can support application programs using different data streams. These objects are achieved by this invention which uses messages with structured fields to insert control characters that signify the beginning or end of file for printing. In general terms, the host system generates and transmits a message seeking the identity of devices which require begin and end of file characters. The device responds with a novel format in which the structured filed is coded in accordance with a unique pattern a code is used in the structured field to indicate if that the printer server supports receipt of a file preceded and terminated with structured field delimiters. Thereafter, the host system transmits the file to be printed by preceding it with a begin of file structured field and following it with an end of file structure field. There are several advantages associated with this mechanism. First, it would be used only by those devices that support it as indicated by the query reply. Begin of file or end of file structured fields would not be sent to any device that does not support it. Second, since structured fields are at a data stream boundary level, they can be inserted into the data stream with little difficulty, as compared with alternatives such as control characters which are imbedded in the data. Using a unique control code at the end of the job would also require additional processing time to locate the end of file. For non-programmable printers, where an intelligent control unit such as the IBM 3174 or a print server (specialized PC on a local area network) performs functions on behalf of a device, the printers would require no change to achieve the benefits of this invention as the control unit would recognize the end of file and convert it to a unique control code such as X'1A' on an ASCII printer or complete the transaction in an EBCDIC environment. The foregoing features and advantages of the invention will be more fully described in the accompanying drawings wherein : Figure 1 shows a local area network to which are attached a print server and a plurality of mainframe processors and personal computers. Figure 2 shows the format of a variable length structured field. Figure 3 shows how the length parameter pertains to a variable length structured field. Figure 4 shows the contents of the begin of file and end of file structured field. Figure 5 shows the contents of the begin of file/end of file query reply structured field. The invention is described herein as a means of delineating files or jobs in a communication network where a print server provides for the printing of files or jobs from many sources. Figure 1 shows a local area network 1 including a print server 2 which services a plurality of mainframe processors 3, 4 and/or personal computers 5, 6. The print server 2 is a specialized processor to which are attached one or more disk drives 7, 8 and printers 9, 10 depending upon the volume of data which must be printed. Programs residing in the print server 2 allow it to receive data from mainframe processors 3, 4 and personal computers 5, 6 and store the information as a file on a disk drive 7, 8. The print data is not sent directly to a physical printer device 9, 10 until the entire print file has been received by the print server. The program uses an end of file (EOF) indication to determine when the file or job has been completed and can be printed. The information in the file which is to be printed is then sent to a shared printer which is controlled by a program in the print server. Data files are printed on the printer in accordance with an established priority. A data stream can consist of a continuous string of characters, a sequence of structured fields, or a combination of the two. The use of structured fields is allowed by some logical unit types. The use of structured fields allows a receiving logical unit to decompose a message into its component fields without having to examine each byte. A logical unit (LU) is a device or program by which an end user, a terminal operator, or an I/O mechanism gains access to the network. The SNA SCS data stream is used with logical unit type 1. This type of logical unit supports application programs that communicate with a terminal that can implement multiple I/O devices using the SNA SCS data stream. The 3270 data stream is used with logical unit type 3. This type of logical unit supports application programs that communicate with 3270 printer devices or their equivalents using the 3270 data stream. Data streams vary in their method for delineating a file or job ranging from none at all to unique characters in the data for indicating begin of file or end of file. The method taught by this invention utilizes structured fields. Its principal advantage is that the structured-field syntax permits variable length data and controls to be encoded in such a way as to facilitate processing a sequence of fields into component fields without having to examine every byte. Since structured fields are placed at a data stream boundary level, they can be inserted into the data stream with little difficulty as compared with alternatives such as control characters which are imbedded in the data. A structured field is of the form shown in Figure 2. Each structured field contains a two-byte length field 20. This defines the length of the structured field including the length bytes as shown in Figure 3. Next follows an identification (ID) field 21 that defines the function of the structured field. This is followed by an information field 22 which contains parameters and data in the format defined by the ID code. The beginning of file/end of file structured field 40 shown in Figure 4 is used by the sender to indicate to the receiver that a new file or job is beginning or that the current file or job is completed. The first field 41 (bytes 0 and 1) is used to specify the length of the structured field. The second field 42 (bytes 2 and 3) is used for identification (ID) purposes to uniquely identify this structured field as begin of file/end of file. The third field 43 is a flag byte in which the first two bits are encoded to indicate whether a begin of file or end of file structured field is being sent. Binary '10' indicates the begin of file, and binary '01' indicates the end of file. Certain error checking can be performed by the receiver based on the encoding of these bits in the flag byte. The following situations will cause rejection of the transmission by the receiver device (i.e., print server): 1) a structured field with an end of file is received without a structured field with begin of file being received; 2) a structure field with begin of file is received when a begin of file has been received previously, without an intervening end of file. Certain systems require prior knowledge of the receiver's functional capability before sending any information to it. This information is solicited by the sender device by means of a query structured field. The query structured field requests the receiver device to transmit information regarding its functional capability and the parameters associated with that function. The beginning of file/end of file query reply indicates that the receiver device supports receiving the begin of file and end of file structured fields from the sender device to delineate a file or job. Begin of file or end of file structure fields would not be sent to any receiver device that does not support it. Figure 5 shows the contents of the begin of file/end of file query reply 50. The first field 51 (bytes 0 and I) specifies the length of the structured field is of the Query Reply class. The third field 53 (byte 3) labeled QCODE contains the specific code to indicate that the begin of file or end of file structured fields are supported by the receiver device.

Claims: A method for delineating the beginning and the end of a data file sent to a print server (2) and for spooling and sending data files to a target printer device in a computer network (1) having a plurality of host processors (5,6) collectively referred to as sender devices and a plurality of printer devices (9,10); said method using structured fields to communicate between a sender device and said print server, being characterized in that it comprises the steps of : sending an inquiry from said sender device to said print server to determine the functional capabilities of said target printer device; returning a response from said print server to said sender device including a response code indicating that the print server supports receiving beginning of file and end of file structured fields; appending a beginning of file structured data field to the first structured data field of a data stream to form a once modified data stream to be sent to said print server; starting transmission of said once modified data stream to said print server; appending an end of file structured data field to the last structured field of said once modified data stream to form a twice modified data stream and transmitting said twice modified data stream to said print server; examining and processing said twice modified data stream to extract the beginning of file and the end of file structured data field, and sending the file contained in the data stream to said target printer device for printing. The method as claimed in Claim 1 wherein the step of examining and processing said modified data stream includes the step of rejecting the transmitted data stream if an end of file structured field is received before a beginning of file structured field. The method as claimed in Claim 1 wherein the step of examining and processing the modified data stream includes the step of rejecting the transmitted data stream if a beginning of file structured field is received after a preceding beginning of file structured field without an intervening end of file structured field being received. The method as claimed in Claim 1, 2 or 3 wherein the step of appending a beginning of file structured data field comprises a step of building said structured field comprising a length field (41), a file delimiter identification field (42), and a unique flag (43) to indicate the beginning of a data file. The method as claimed in any one of claims 1 to 4 wherein the step of appending an end of file structured data field comprises a step of building said structured field comprising a length field (41), a file delimiter identification field (42), and a unique flag (43) to indicate the end of a data file. An apparatus for delineating the beginning of a file and the end of a data file sent to a print server (2), referred to as a receiver device, for spooling to a target printer device in a computer network (1) comprising at least one receiver device, a plurality of printers (9,10), and a plurality of host processors (3,4) and microprocessors (5,6) collectively referred to as the sender devices ; said apparatus being characterized in that it comprises : means at the receiver device for indicating the functions supported by the target printer device using a response code indicating that the receiver device supports receipt of a file preceded and terminated with structured field delimiters; means at the sender device for generating a beginning of file structured field and appending it at the beginning of the file sent to the receiver device; and means at the sender device for generating an end of file structured field and appending it to the end of the file sent to the receiver device. The apparatus as claimed in claim 6 wherein the means for generating a beginning of file structured field includes a means for building said beginning of file structured field comprising a first field (41) for indicating the length of the structured field, a second field (42) for indicating that the structured field represents the delimiting of the data file, and a third field (43) for holding a unique flag to indicate the beginning of the data file. The apparatus as claimed in claim 6 or 7 wherein the means for generating an end of file structured field includes a means for building said end of file structured field comprising a first field (41) for indicating the length of the structured field, a second field (42) for indicating that the structured field represents the delimiting of the data file, and a third field (43) for holding a unique flag to indicate the beginning of the data file to be sent. The apparatus as claimed in claim 6, 7 or 8 wherein the means at the receiver device for indicating the functions supported includes a means for building said query reply structured field message having a first field (51) indicating the length of the structured field, a second field (52) indicating that the message is a query reply, and a third field including said response code.

Inventors: KIPPENHAN B WILLIAM, MAHOLICK ANDREW WALTER, KIPPENHAN, B.WILLIAM, MAHOLICK, ANDREW WALTER
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1990
Main classification: G06F3
IPC codes: H04L29, G06F13, G06F15, G06F3