The prior art discloses a variety of inter-program communication methods in data processing networks comprising a host system connected to a plurality of terminals: The IBM System Journal, Vol. 22, No. 4, 1983 discloses a computer network with a communication subsystem which is the IBM system network architecture (SNA). On page 345 of that publication a network is defined as "a configuration of terminals, controllers, and processors and the links that connect them". When such a configuration supports user applications involving data processing and information exchange and conforms to the specifications of the system network architecture it is called an SNA network. Essentially SNA defines logical entities that are related to the physical entities in a network and specifies the rules for interactions among these logical entities. The logical entities of an SNA network include network addressable units and the path control network that connects them. Network addressable units communicate with one another using logical connections called "sessions". The three types of network addressable units (NAUs) are the logical unit (LU), the physical unit (PU), and the system services control point (SSCP) which are defined as follows:
Logical unit (LU). An LU is a port through which end users may access the SNA network. An end user uses an LU to communicate with another end user and to request services of a system services control point (SSCP). PA1 Physical unit (PU). A PU is a component that manages the resources of a node in corporation with an SSCP. PA1 System services control point (SSCP). This is a focal point for configuration management, problem determination and directory services for end users. SSCPs may have sessions with LUs and PUs. When such a session occurs, the LU or PU is in the domain of the SSCP. In addition to sessions with LUs and PUs, SSCPs may also communicate with each other to coordinate the initiation and the termination of sessions between logical units and in different domains. PA1 Conversion to different code standards, e.g. from EBCDIC to ASCII, PA1 conversion to different transmission protocols, e.g. from SNA to TCP/IP, PA1 conversion into another language code page, PA1 improved presentation of old application programs, e.g. by adding color etc., PA1 usage of an application programming interface (API) provided by the virtual terminal manager to add data to the virtual terminal buffer, PA1 data transfer from other virtual terminals to a specific virtual terminal by usage of an API program, PA1 overlay of a message window on the user screen.
From the hardware standpoint a simple network comprises a host system having a processing unit and a plurality of remote terminals that are assigned to individual users. The remote terminals are selectively connectable to the host system through one or more communication links. These links may comprise a coaxial cable, a dedicated telephone line or, in some cases, a satellite communication link.
The host processing unit must always have an operating system which supports the creation of a large number of virtual machines each of which is assigned, on request, to an end user. A virtual machine processes tasks for the assigned end user by time sharing the host processor hardware of the host system. Some host systems may include more than one hardware processor so that true simultaneous processing occurs at the host since a plurality of processors are running in parallel. More often, there is merely one hardware processor that "concurrently" runs data processing tasks for the virtual machines by a time sharing technique. This is transparent to the end users at the terminals.
Two general types of terminals are employed in data processing networks. The first is referred to as a "dumb terminal" in that it comprises merely a keyboard and a display device and little or no processing capability other than that required to make a connection with the host system. The second type of terminal is referred to as an intelligent work station (IWS) and is provided with its own processor unit and supporting peripheral devices. The terms IWS and personal computer (PC) are often used interchangeably. With the ready availability of PCs having very attractive price performance characteristics, most new networks are implemented with IWS-type terminals and many of the older networks are being modified with the replacement of dumb terminals with IWS-type terminals.
Providing each end user on the network with its own processing capability relieves the host CPU from doing many of the data processing tasks that were previously done at the host. The nature of the tasks that are processed by the host CPU therefore has changed and more sophisticated applications such as electronic mail and electronic calendaring are now implemented on the network under the control of the host system. Both of these applications involve what is referred to, as distributed application programs, in that one part of the application program is resident on the host system and another is resident on the IWS terminal.
Many of the current data processing networks are designed in accordance with the IBM SNA architecture which was first described in 1974. Since then various new functions and services have been added. As suggested earlier, SNA networks can be viewed as a plurality of nodes interconnected by data links. At each of these nodes, path control elements send information packets, referred to as path information units (PIUs) between resource managers called logical units. These logical connections of the paths are called a session. A transport network for data is therefore defined by the path control elements and the data link control elements.
Nodes can be connected by a plurality of links and comprise a plurality of LUs. Various types of LUs sessions and protocols have been established within the framework of the SNA architecture. There are three general classes of sessions. The first class is unspecified by SNA. The second class involves terminals and the third involves program to program communication. For example, LU 6 provides SNA defined inter-program communication protocols which avoids the limitations of terminal LU types such as LU 2 and LU 7. LU 6.2 is referred to as advanced program to program communication or APPC protocols.
Logical units are more than message ports. LUs provide operating system services such as program to program communication involving one or more local programs. Each application program use the LUs as a local operating system and the network of loosely coupled LUs connected by sessions as a distributed operating system.
The LU allocates a plurality of resources to its programs, which are dependent on the particular hardware and its configuration. Some of the resources that are made available are remote while others are local, i.e., associated with the same LU as the application program. The sessions are considered local resources at each LU, but are shared between particular LUs.
The control function of an LU is resource allocation. Programs request access to a resource. Sessions which carry messages between LUs or programs running on LUs are considered to share resources. A session is divided into a plurality of serially executed conversations.
Two LUs connected by a session have a shared responsibility in allocating sessions to application programs for use as "conversations". The application programs are therefore sometimes referred to "transaction programs".
The successful connection between LUs occurs as a result of a common set of protocols which function first to activate a session between two LUs and second to facilitate the exchange of message data. A request to activate a session between two logical units is also called "BIND".
The SNA format and protocol reference manual designated SC 30-3112, published by the IBM Corporation, describes SNA by defining, for example, with programming language declarations, the format of messages that flow between network entities and the programs that generate, manipulate, translate, send and return messages.
The SNA transaction program reference manual for LU 6.2 referred to as GC 30-3084, published by the IBM Corporation, defines the verbs that describe the functions provided by the implementing products.
Even though SNA type communication subsystems are widely used other communication subsystems such as the transmission control protocol/internet protocol (TCP/IP) which is an UNIXtype/ethernet-based system-interconnect protocol are known from the prior art.
FIG. 1 shows a prior art example of a computer system in which an application program is logically connected via a communication subsystem to a terminal T. The computer system comprises at least a host 2 and a communication subsystem 3. The applications program A.sub.1 is stored in storage space 1 of the host 2. The communication subsystem which is, for example, of an SNA or TCP/IP type, serves to establish a logical connection between the applications program A.sub.1 and the terminal T. The communication subsystem 3 may comprise further host computers not shown in the drawing. The logical connection L between the applications program A.sub.1 and the terminal T which is established via the communication subsystem 3 is also called a session.
A user of this prior art computer system is confronted with a problem of not being able to effectuate interrupt driven events at the user's command. For example, while a user is using the computer system for creating a report using an editor, the user may need to interrupt the word processing session and switch instantly to another program, such as to look up a phone number that resides in an application program that is different from the one the user is using as an editor.
Furthermore, in some cases it is necessary to input a large number of data via the terminal T on request of the applications program A.sub.1, such as addresses of customers. If these data are present as a file stored on a storage medium of the computer system, it is desirable that the data be input to the applications program A.sub.1 automatically without interaction of the user. However, in general, this is not possible without changing the applications program A.sub.1 which expects the user to input the data via the terminal T on its request. In order to perform the task automatically, the applications program A.sub.1 would have to be changed so that data can be inputted automatically from the file stored in the computer system without interaction of the user. In order to automate the task the applications program A.sub.1 would have to be at least partially rewritten which normally involves a major effort in time and resources. Consequently, in some cases, the user has to perform the tedious task of inputting the data via the terminal T by hand. This is also disadvantageous since processing time of the computer system and the resources of the communication subsystem are wasted as the inputting of the data by hand requires a relatively long period of time as compared with the automatic data input from the file.