MULTI-TERMINAL DATA PROCESSING SYSTEM

Abstract: This invention relates to a multi-terminal data proces­ sing system comprising terminals (10 and 12) connected to a host CPU (14) or a multi-processor network including a peer-to-peer connection between first and second CPUs (14 and 16) wherein the second CPU has at least one terminal (18), and more particularly to means allowing additional terminals to be added to the address space of a primary terminal. According to the invention, the second terminal can be logged on without informing the user of the terminal about to be added the primary terminal user's identification or password. The LOGON command is used by the user of a terminal already logged on to add another terminal to his address space. The terminal to be added must first be conditioned to contain a fill-in-the-blanks logo and currently not be logged on. The connection of the added terminal is by means of an intraprocess connection or pipeline and is implemented at a low enough level that applications prog­ rams are not aware of its existence and see the same environment as they do when one user is logged on. Once logged on, the user of the added terminal is able to observe exactly what output that address space is generating.

Description: MULTI-TERMINAL DATA PROCESSING SYSTEM This invention relates to terminals having a keyboard and a display which are connected through a host central processing unit and rendered interactive such that the display screen contents of all the terminals are the same at all times. In a multi-terminal data processing system or network, each user is allocated address space in the memory of the host central processing unit for private file storage. Access to the allocated address space is by a procedure known as "logging on" or, more simply, by the command LOGON. An address space normally will only have one user logged on. The logon normally occurs from a terminal which has been conditioned by the system to contain a fill-in-the-blanks display screen for the user identification, password and other identification. There are a number of support and educational applications where it is desirable for one user already logged on to add another terminal to his address space. For example, if a user is experiencing difficulty in running a software application, he may wish to add a second terminal at a remote location so that a customer engineer could assist the user in debugging the application. As another example, it is often useful for training purposes to add a second terminal so that personnel can be easily taught how to use a particular software application. In both of these examples, it is desirable that the second terminal logged on to the address space display the same output of the first terminal so that the person using the second can observe exactly what output that address space is generating. According to the present invention, a terminal is added to the address space of the primary terminal by the user of the primary terminal first conditioning the address space to accept multiple terminals. This is accomplished by inputting the SET command followed by a space then the SIMUL command followed by a space then the number of terminals that are to be allowed access to the address space. Once the address space has been conditioned to accept multiple terminals, a second terminal can be coupled to the primary terminal in either of two ways. The first way requires that the user of the second terminal be informed of the user identification and password of the user of the primary terminal. The user of the second terminal then simply logs on using this information. In some cases, it may not be desirable to provide the user of the second terminal with the user identification and password since divulging this information can compromise the security of the allocated address space. Therefore, according to the invention a second way of adding a second terminal to the address space can be accomplished without informing the person on the terminal about to be added the user identification or password. This is accomplished by -a process of terminal coupling whereby the LOGON command is used by a user of a terminal already logged on to add another terminal to his address space. The terminal to be added must have been previously conditioned to contain a fill-in-the-blanks logo and currently not be logged on. This preconditioning of the terminal to be added is done by communicating with the system component that processes such logos in the central processing unit where the terminal is connected. The connection of the added terminal is by means of an intraprocess connection or pipeline and is implemented at a low enough level that applications programs are not aware of its existence and see the same environment as they do when one user is logged on. In the attached drawings: Figure 1 is a block diagram illustrating a hypothetical configuration of a multi-terminal, multi-processor system or network. Figure 2 is a flow diagram of the system software component for allocating address space to a terminal. Figure 2A is a flow diagram of the system software component for unallocating address space to a terminal. Figure 3 is a flow diagram of the address space software for logging on a terminal. Figure 4 is a flow diagram of the address space software for unallocating a terminal from the address space. Figure 5 is a flow diagram of the I/O code for multiple displays from the flow diagram of Figure 3. Figure 5A is a flow diagram of the I/O code when a terminal is unallocated from the address space. Referring now to the drawings, and more particularly to Figure 1, the invention can be practiced with two or more terminals 10 and 12 connected to the same host central processing unit (CPU) 14, but this is not a necessary condition. For example, in a multiprocessor system represented by CPUs 14 and 16 connected in a peer-to-peer network, the coupled terminal can be connected to a different CPU than the primary terminal as indicated by the terminal 18 connected to the CPU 16. For purpose of illustration, assume that the primary terminal is terminal 10 and the operator requires assistance in debugging an application. The user of terminal 10 first conditions his address space to accept multiple terminals, in this case two terminals, by inputting the following: SET space SIMUL space 2 A customer engineer in another city using terminal 18 can now be logged on to the address space assigned to the user of terminal 10. This would probably be done by the user of terminal 10 using the LOGON command so that user identificatios and password would not have to be communicated. Terminal 18 must be previously conditioned to contain a fill-in-the-blanks logo and not be currently logged on. The fill-in-the-blanks logo is provided to terminal 18 in response to a request communicated to the system component that processed such logos in CPU 16 to which terminal 18 is connected. Once logged on the user of terminal 18 is able to observe exactly what output that address space is generating. In this way, no information is miscommunicated as would be possible in a telephone relay. This greatly facilitates the assistance that the customer engineer can provide the user of terminal 10. Another possibility illustrated in Figure 1 is the case where the user of terminal 10 desires training in a particular software application. In this situation, the coupled terminal might be terminal 12 which is connected to the same CPU 14 as terminal 10. In fact, the two terminals may even have the same geographical situs,--b ut this of course is not necessary. The procedure for logging on terminal 12 to the address space assigned to the user of terminal 10 can be exactly the same. Alternatively, the user of terminal 10 can condition his address space by inputting the following as before: SET space SIMUL space 2 Then, by informing the user of the terminal to be added the user identification and password, the second user can simply log on to the address space. In any case, once an additional terminal is logged on, it is a fully interactive terminal like the primary terminal and can input information as well as display the same screen contents as that of terminal 10. The system level flow diagram for allocating address space is shown in Figure 2-. The program begins when an input is received from the LOGON logo as indicated in block 20. Then in decision block 22, it is determined whether the requested address space already exists. If it does not, a job number or other identification is assigned and the address space is created in block 24 and the program returns to the input to decision block 22. Having found that the address space exists, it is next determined whether the requested address space can accept one more log on in decision block 26. If not, the LOGON logo is rewritten on the terminal display with a reject message in block 28 and the program ends. Assuming that the address space can accept one more log on, then the terminal will be allocated the requested address space. Figure 3 is the flow diagram at the address space level for logging on a terminal and can be considered as a subprogram of decision block 26 in Figure 2. In block 30 a signal is received that a terminal wants to log on. Decision block 31 determines if this log on will be too many, and if it is, a reject message is sent in block 32 and the program ends. On the other hand, a negative answer in decision block 31 will result in allocation of the terminal in block 33. Since the same procedure is followed in an initial log on as when a second or third terminal is added, a determination must be made in decision block 34 whether this log on is a primary log on. If it is, then the input/output (I/O) code is adjusted for one terminal in block 35. Next, a signal is sent to the application that a log on or relog on has occurred in block 36 and the program ends. Thus, in the case of only one primary log on, the program is in all respects similar to the normal situation where only one user is logged on to an address space. However, in the case where a second or third terminal are to be logged on to the address space of the primary terminal, the I/O code is adjusted for multiple display in block 37. In block 35, when I/O occurs, it goes directly from or to the terminal by way of a direct logical connection. But in block 37, when I/O occurs, it goes to system code in the address space so that the connection is via an intraprocess connection or pipeline as shown in Figure 5. In Figure 5, an output of the terminal display from the application is provided at block 50. In block 52, this output is provided to the next terminal, beginning of course with the first or primary terminal. If it is determined in decision block 54 that there are additional terminals logged on, then the output of the terminal display is provided to the next terminal and so on until the terminal display has been provided to all the terminals which have been logged on. After a session has been completed or one of the operators wants to disconnect his terminal, the system procedure is shown in Figure 2A. A signal is received in block 21 that the address space is done with that particular terminal. As a result, in block 23 the address space is unallocated and the LOGON logo is put back up on the terminal's display. Figure 4 is the flow diagram at the address space level for the disconnect procedure. In block 40 a signal is received from the application saying that the terminal is to be disconnected. The terminal having the last input is unallocated and -the system component in Figure 2A is so notified in block 42. Next, in decision block 44, it is determined whether the disconnection of the last terminal results in the system having one or less terminals logged on. If that should be the case, the 1/0 code is adjusted for one terminal in block 46. It will be recalled that this is just the opposite of the procedure illustrated in Figure 3 with respect to the log on of an additional terminal. On the other hand, if there remain more than one terminal logged on, then in block 48 the terminal just unallocated is removed from the display list. This process is shown in Figure 5A. In figure 5A, the input indicating a disconnect is received from the terminal in block 56. In block 57, the logical connection number assigned to the terminal when I/O code was adjusted for multiple terminals is remembered and this information is sent to the application in block 58. In this way, only the terminal requesting disconnection is unallocated. From the foregoing, it will be appreciated that the process of terminal coupling according to the invention allows a user to cause another terminal to be logged on to the first user's address space without informing the user of the other terminal to be logged on to the first user's identification or password.

Claims: CLAIMS 1. Multi-terminal data processing system comprising at least two terminals (10, 12) each having a keyboard and a display and connected to a host central processing unit (14), characterized in that it further comprises means controlled by one of said terminals logged on to allocated address space in said central processing unit for allowing another terminal to be logged on to the same allocated address space whereby the two terminals are interactive with one another and display the same screen contents. 2. System as recited in claim 1 wherein said system is a multi-processor system comprising at least two central processing units (14,16) connected in a peer-to-peer network, with said terminals connected to different ones of said central processing units. 3. System as recited in claim 1 or 2 wherein said means permits another terminal to be logged on without informing the user of the terminal to be logged on of the user's identification or password for the terminal already logged on. 4. Method of coupling terminals in a multi-terminal data processing system including at least two terminals (10, 12) each having a keyboard and a display and connected to a host central processing unit 14, characterized in that it comprises the steps of conditioning allocated address space to which one terminal has been logged on to accept multiple terminals, and thereafter logging on at least a second terminal to said allocated address space whereby the two terminals are interactive with one another and display the same screen contents. 5. A method according to claim 4 wherein the step of logging on is initiated by the one terminal previously logged on and further comprising the step of preconditioning the second terminal with a fill-in-the-blanks display.

Inventors: KELLY, KEITH F., JR.
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1983
Main classification: G06F3
IPC codes: G06F15, G06F3, G06Q50, G06F21