Technical Field
This invention relates to computers and terminals linked by a telecommunications network. More particularly, this invention relates to a method of distributing user interfaces between a host computer and an intelligent terminal to minimize delays caused by telecommunication data transmission and establish a general protocol for distributing user interfaces that are directly manipulated at the terminal.
Background
This invention is directed to the problem of providing a telecommunications link between a host computer and one or more remote terminals. The long-standing problem precluding the efficient use of telecommunication networks for interfacing is the speed limitations on such systems.
In the prior art, communications between a host computer and terminals were conducted on a character-by-character basis with each character or small set of characters being directly communicated by the terminal to the host computer. Examples of simple character string communication protocols include Teletel, ASCII and VT100. In character level commands, the terminal sends characters embedded with formatting commands and receives characters from the host computer.
Recently, more sophisticated communications software has been developed by which simple drawing commands are communicated. Examples of such systems include X Windows and NAPLPS Systems. With the more sophisticated drawing command systems, the terminal sends drawing commands or commands to draw a line, etc. and receives events such as the condition of a mouse or key.
Many advances have been made in user interface technology including the use of windows, scrolling text, highlighting segments of a display screen, creating software buttons on the screen which are activated by a pointer, etc. Computer users have become familiar with such techniques and expect state of the art systems to include sophisticated user interfaces.
The problem with the use of such interface implementations when the terminal must communicate over a network made up of narrow bandwidth voice communication lines, or their equivalent, is the delay involved in the communication between the terminal and the host. This problem has been described as echoplexing. For example, echoplexing would occur when a terminal user using a pointer device, such as a mouse, clicks a mouse down to select an item from a list or to activate a soft button on a screen. After "clicking" the mouse, an appreciable period of time elapses, perhaps several seconds, while the mouse down command travels across the telecommunications network from the terminal to the host and back to the terminal. Only then is the terminal display updated to show the change in the interface when the mouse is clicked. One solution to this problem is to provide a wider bandwidth telecommunications network. However, this solution imposes considerable additional cost for network services.
The worst case scenario for echoplexing is encountered when a mouse is moved across the screen and commands are continuously transmitted to the host computer. As the mouse is moved across the screen, many unnecessary raw events such as mouse clicks in areas of the screen that are not selectable or typing of characters when no text field is active are still communicated to the host computer which unnecessarily burdens network performance.
Another cause of problems with host computers that are interconnected to terminals by a telecommunications network is the need to redundantly transmit information between the host and the terminal. To the extent that redundant transmissions can be eliminated, responsiveness of the network can be improved. Avoiding redundant transmission of information is the simplest way to limit bandwidth requirements, and increase responsiveness of the network. It has been estimated that 50 percent of the information transmitted from a host computer to a conventional terminal is redundant in that all user interface information must be retransmitted for re-display each time the display is called up by the user.
The smaller the sets of data are that are distributed between a host and a terminal, the more bandwidth it requires. For instance, when a host computer sends graphics instructions at a low device or character level, such as a bitmap image of a software button, the computer specifies each pixel's value in the image. This low level of communication is inefficient due to the quantity of data necessary to describe the object on the terminal. Improvements can be made by describing the button in terms of lines, rectangles, and text at a structured graphics level. Communications at the structured graphics level requires less bandwidth than device or character level representations. Transmissions of interfaces by the structured graphics representation results in a more compact description of the interface object.
Another problem encountered when a telecommunications network is used to connect a host computer to its terminals is relatively low efficiency in use of the host computer due to the low density of commands received by the host computer from a given terminal per unit of time. When the host computer receives small amounts of information such as character strings or simple line draw commands, a great deal of time is wasted between commands.
Software compatibility problems are sometimes encountered between a terminal and host computer in applications involving a host computer which provides telecommunications access to data stored in the host to terminals. When software is sold as a separate package for use on an intelligent terminal, there is no assurance that the host computer will be fully compatible with the software on the terminal. This problem is also encountered when host computer software is modified and a user has not installed corresponding revisions at the terminal. Consumers who purchase software that is not fully compatible or who fail to make revisions may not be able to enjoy the benefits from the host computer.
These and other problems and disadvantages are overcome and the above objects are achieved by the present invention as will be more fully described below.
Summary of the Invention
The present invention relates to a system and method of controlling distributed user interfaces between the host computer and an intelligent terminal over a telecommunications network. The host computer and terminal are interconnected so as to have an on-line mode for data transmission between them, and an off-line mode in which no data is transmitted between them. A controller is provided for switching between the on-line and off-line modes.
The method includes the steps of generating data representing a user interface object in the host computer. Data representing the user interface object is then transmitted over the telecommunications network in the on-line mode to the intelligent terminal. Data representing the user interface object is stored in the terminal. User manipulated commands are entered into the user interface object utilizing the terminal in the off-line mode to modify said data representing the user interface object. The modified data representing a modified user interface object is transmitted from the terminal to the host computer over the telecommunications network. Data representing the user interface object remains resident on the terminal for repeated display without re-transmission from the host computer.
According to one aspect of the invention, a controller for the communications protocol is provided which is responsive to a set of gating commands to handle and route communications transmissions between the host computer and the terminal.
According to another aspect of the present invention, host object representations in the host computer are communicated as terminal object representations to the terminal. When communications as to data manipulations utilizing the objects are sent between the host and the terminal, the communication may pass at a high level without the need for redundant transmission of the user interface objects. The user interface objects are generally mixed graphics and text screen display elements providing full user interface utilities at a terminal including scrolling, highlighting and software screen buttons actuated by a pointing device.
The present invention also relates to a method of transferring data between a host computer and an intelligent terminal via substantially identical distributed user interfaces. The host computer has stored data representing one or more host distributed interfaces. The host computer communicates with a terminal having one or more corresponding terminal distributed user interfaces. The terminal interfaces each replicate of one of the host interfaces which provides the basis for high level communication between the terminal and the host computer.
The host computer and terminal are connected in an on-line mode for data transmission therebetween, and in an off-line mode wherein no data is transmitted between them. Data is transferred between the host computer and the intelligent terminal by first displaying one of the terminal interfaces on the terminal. The terminal interface is directly manipulated on the terminal in the off-line mode to create a set of manipulation data representative of selections utilizing the selected terminal interface on the terminal. The manipulation data has a terminal address component which identifies the terminal interface to which it applies. The terminal interactively displays manipulation data locally including both transitory data and selected data. Transitory data is that data required for dynamic use of the terminal interface screen which is not ultimately to be processed by the host computer. For example, when a list is scrolled by a user on the interface items are viewed by the user and not selected. However, when an item from the list is selected, that item is immediately marked on the terminal and held by the terminal until the entire screen is ready to be processed by the host computer. A controller ports the selected data through a terminal port which is received by a host port of the host computer.
The selected data is sent to a host dispatcher means in the host computer which routes the selected data to one of the host interfaces, the one host interface being the one from which the terminal interface was replicated. The selected data is routed according to the terminal address component indicating the identity of the one terminal interface in which the selected data was created. The one host interface interacts with a processor in the host computer applying the selected data as received. The one host interface interacts with the processor as if the terminal interface were directly communicating with the host computer. The selected data is processed as applied to the host interface in the host computer to develop host output data. The host output data includes a host address component. The host output data is sent to one of the host interfaces. The host output data is sent from the host interface through the host port and onto the terminal port.
From the terminal port, the host output data is sent to a terminal dispatcher means in the terminal for routing the host output data to at least one of the terminal interfaces according to the host address component. One or more updated terminal interfaces are created based upon said one or more host interfaces in the host computer. The updated terminal interfaces are available on the terminal as if they had been in direct communication with the processor of the host computer.
In many instances, the output data of the host computer is returned to the same host interface which provided the selected data from the terminal, and the same terminal interface that was originally manipulated to create the selected data is updated by the host output data.
According to the invention, the user interface function may be selected at the terminal which is a host processor defined function. In this case, the selection of a function on the terminal is transmitted to the host computer from the terminal. When the function is activated on the terminal, the terminal can directly display the processor defined functionality through the dispatch means and also communicate the processor defined function to the host to match the dynamic functionality by communication through the terminal and host ports. An example of such a processor defined function would include the scroll text function, highlighting function or software screen buttons activated by a pointer device.
The host computer and terminal each have a controller means for filtering and routing communications between the host computer and the terminal in conjunction with the dispatcher means. The controller means are preferably associated with and may form part of the ports of the host computer and the terminal. The controller of the host computer checks the port periodically for communications from the terminal. The terminal controller periodically checks the terminal port for communications from the host computer. The controller functions to gate communications so that transitory data manipulation in either the host computer or the terminal are not sent over the communications network. Codes are used by the controller to mark filtered events that are transmitted over the telecommunications network.
The dispatch means includes a table index of user interfaces which allows for routing communications to all involved interfaces based upon an address component of the communication.
Another aspect of the invention includes the provision of a template manager means in the host computer and the terminal for providing and storing user interfaces. The template manager concept facilitates adapting the application, or host processor, to any type of interface simply and efficiently. For example, when a communication is received by the terminal from the host computer which calls for an update of a terminal user interface, the template manager makes available the terminal user interface from storage on the terminal. In the event that the terminal user interface is not available on the terminal, an object maker function is provided for checking the availability of a selected terminal user interface. If the selected user interface is not stored on the terminal, the selected user interface is created by down-loading the desired user interface from the host by a parallel representation of the host user interface.
It is an object of the present invention to provide increased availability of sophisticated user interfaces that are distributed by and available on remote terminals which are usable over telecommunications networks for communication with a host computer.
One principle object of the present invention is to increase the responsiveness of terminals which communicate with a host computer. Echoplexing problems which had previously been associated with the user telecommunication length between terminals and host computers are avoided while still utilizing a narrow bandwidth telecommunications.
It is another object of the present invention to minimize the transmission of redundant messages over telecommunications networks by using matched host and terminal user interfaces. Once the user interfaces are communicated over the telecommunications network, they are stored and communication may proceed by merely identifying the involved user interfaces.
It is another object of the present invention to increase efficiency in the use of a host computer by increasing the density of commands per unit of time and fostering communications at a higher level.
It is also an object of the present invention to eliminate compatibility problems between software used in a host computer and a terminal which communicates with the host computer by distributing user interfaces from the host to the terminal that are user interfaces in the host computer.
These and other advantages and objects of the present invention are described in detail in the following detailed description in view of the attached drawings.
Brief Description of the Drawings
FIG. 1 is a schematic representation of a telecommunications network linking a host computer and a user terminal;
FIG. 2 is a diagrammatic representation of the host computer terminal architecture according to the present invention;
FIG. 3 is a diagrammatic illustration of a display generated by the present invention;
FIG. 4 is a diagrammatic representation of a user interface running on a single machine;
FIG. 5 is a diagrammatic representation of a user interface running on a non-intelligent terminal controlled by a remote host computer;
FIG. 6 is a diagrammatic representation of an intelligent terminal that splits the data analysis function between the host and the terminal in accordance with the present invention;
FIG. 7 is a diagrammatic representation of communication between a host computer and a terminal according to the present invention; and
FIG. 8 is a diagrammatic representation of several communications between a host computer and a terminal featuring the local processing on the terminal according to the present invention.
Detailed Description
Referring now to FIG. 1, a host computer 10 is shown interconnected with a user terminal 12 by a telecommunications network 14.
Referring to FIG. 2, the architecture of a host computer 10 and an intelligent terminal 12 is shown. The host computer has a processor 16 which performs database and computational functions based upon commands received from host objects 18 which are also referred to as host user interfaces. A host controller 20 is provided in the host computer 10 for controlling communications via the host serial port 22 with the terminal 12. The controller also controls a template manager 24 which creates host resident user interface objects and reads interface objects into memory from the processor 16. The host controller 20 also controls the host dispatcher 26 which includes a dispatch table index that stores information relating to all of the user interface objects 18 in the system.
A user interface is the totality of the controls and the feedback mechanisms that the user sees when using host processing. An interface object is part of a user interface such as a button, a list or a text field.
The terminal is an intelligent terminal having a system 30 which is capable of interacting with terminal objects 32 thereby allowing for remote processing of data as it is dynamically utilized in the terminal 12. A terminal controller 34 controls data communications through the serial port 36 to the host computer 10. The terminal controller interacts with the object maker 38.
The object maker 38 is responsible for creating new terminal resident user interface objects from the object templates received from the template manager 24. When the host computer 10 signals the terminal 12 to create a new terminal resident user interface object 32, it sends an object template descriptor to the terminal which obtains the proper object template from storage in the terminal system 30. If the terminal does not yet have the proper object template, the object maker requests a download of the object template from the template manager 24. The object is downloaded through the host controller 20 and the host serial port 22 to the serial port of the terminal 36 and the terminal controller 34 through the terminal dispatcher 40 which enters the template on the dispatcher index. The template is then available for use on the terminal 12.
Referring now to FIG. 3, an electronic mail display screen is shown to illustrate the capabilities of the invention. The display screen 50 includes a text field 52 which displays identifying information for a list of electronic mail items. A series of buttons 54 which are terminal resident user interface objects appear across the top of the display. When a user elects to select one of the objects, a pointer device such as a mouse, is located over the button 54 and selected by a mouse click. The user interface objects available on the exemplary electronic mail screen include displaying a list, reading individual items from the list, writing responses and ending communications. When the list button is actuated, the text field is filled with the list of available messages. As an alternative, the user could select an item from the list by a keyboard command.
Upon initialization of the electronic mail application, the application computer sends requests to the display buttons and fields. If the terminal computer has a local representation of that component, it is displayed immediately. When the terminal computer does not have a representation, it sends a request for a more complete description, or template, which the application computer returns. The screen representation and button interactions are initialized by the terminal computer. The host computer transmits the location and labels for buttons while the terminal displays the user interface object.
Operation of the system according to the present invention improves responsiveness of the system by proceeding as follows. When the user actuates the list button of the electronic mail application, the button is highlighted locally on the terminal, and the terminal alerts the host computer through the terminal port controller. To improve user interface responsiveness, list management, highlight and other user interface functions are locally controlled by the terminal. Only selected items of data are transmitted to the host computer. As a result of this architecture, the interaction proceeds at speeds acceptable to the user while providing the user with displays that are full featured user interfaces.
Referring now to FIGS. 4, 5 and 6, the concept of the invention is contrasted with prior approaches. Referring specifically to FIG. 4, an independent system 60 is shown which does not include any telecommunication network link. The independent system 60 is a typical user interface running on a single computer. The user interface includes a get event module 62 which checks for user actions by reading input devices and generating events. The evaluation module 64 generates an action that depends on the event selected in the get event module 62, the state of the user interface and the state of the application. A response module 66 displays the action generated by the evaluation module 64 for the user by means of an output device such as the screen, or for audio outputs, a speaker. The user completes the loop by generating new input action based on the interface response reported in the response module that are then provided to the get event module to complete the loop. In this conceptual model, there is no response time delay caused by signals being transferred to a telecommunications network.
Referring to FIG. 5, a conceptual model of a dumb terminal 68 interconnected to a host computer 70 by telecommunications network 14 is shown. The dumb terminal 68 includes the get event module 72 of the system which sends raw events such as key presses, mouse clicks, etc. to the evaluation module 74 is located in the host computer 70. The computer processes the raw events and sends raw output device primitive such as draw lines, generate text, etc. The response module 76 receives the raw output primitives from the host computer to display the action generated by the evaluation module. These then generate new input actions based on the interface response. Communication of raw events from the get event module to the evaluation module and communication of raw output device primitives from the host computer to the terminal over the telecommunications network 14 result in excessive delay which interferes with efficient use of the user interface.
Referring now to FIG. 6, an intelligent terminal 12 in communication with a host computer 10 by means of a network interface 14 is shown in accordance with the present invention. A get event module 78 is provided in the terminal which communicates raw events to a local evaluation module 80. Raw events such as key presses, mouse clicks, etc. are received by the local evaluation module and communicated on a filtered event basis to the remote evaluation module 82 in the host computer 10. The remote evaluation module 82 receives selections, forms and other entries with reference to the user interface templates from the local evaluation module. The remote evaluation module 82 sends object updates back as a high level form of communication to the local evaluation module. The local evaluation module 80 processes other raw events directly to the response module 84 for updating the interface without delays necessitated by the network 14. The local evaluation module 80 also directs fully processed object updates received from the host resident evaluation module 82 of the host 10 to the response module 84. The host resident evaluation module 82 responds by sending interface changes to the terminal resident local evaluation module 80.
Reduction in bandwidth requirements are achieved by the present invention by filtering events that must be communicated from the terminal to the host. In addition, the bandwidth requirements are reduced by providing higher level communications such as entire user interfaces instead of sending individual raw events such as key presses and mouse clicks. Considerable bandwidth requirements are imposed on a system if description of user interfaces are sent to the terminal by a bitmap representation of the desired image or simple graphics instructions.
Recently, transmission of structured graphics have permitted higher level representations of graphical images which reduce the bandwidth requirements for transmission of user interfaces. According to the present invention, higher level representations of user interfaces can be transferred without the need to instruct the terminal at the pixel level or even at the structured graphic level. Instead, a user interface object may be described by reference to the template distributed by the host computer to the terminal by specifying the identity of the interface element such as a button or text field, and then adding additional descriptors or codes to define additional information or status of that user interface element. It is not necessary to create the user interface element on a pixel basis or on a graphics description basis.
Further efficiencies are realized by the present invention by means of storing templates of user interfaces after they are distributed from the host computer to the terminal. When a user interface is initially transferred from the host to the terminal, all of the data necessary to form the user interface must be transferred. After the initial transfer, the user interface is stored for immediate display upon being called up by the object maker 38.
Referring now to FIG. 7, flow of information between the terminal and host computer is explained in detail. This example assumes that the session has been initiated and the necessary templates or user interface objects have been created in the terminal based upon the host resident objects. Distributed user interface operation is demonstrated by reference to a electronic mail prototype system. The user interface is in the condition shown in FIG. 3 with the text field 52 including the names and identifying information for various messages.
The cursor is located over the read button the screen. The terminal 30 controls the display screen 50 which shows the read button. The button interactor 32 of the terminal 12 sends a read message to the terminal port controller 34 which ports the read message through the serial port 36 to the serial port 22 of the host. The host port controller 20 sends the read message to the host dispatcher 26. The read message also includes the identification of the user interface object as the read button on the particular user interface currently displayed on the display screen 50. The read message is directed by the identification information to a host button interactor object in the host. The host button interactor 18 communicates with the processor 16 of the host computer 10 which processes the read instructions.
The host processor 16 inquires of the host select function for the rolling select function to obtain a list of all messages that were selected previously by the select function 88 on the terminal 12. The host select function 86 sends an inquiry message to the host port controller 20 which is sent via the host serial port 22 to the serial port 36 and terminal port controller 34. The terminal port controller 34 sends the inquiry message to the terminal dispatcher 40 which inquires of the terminal rolling select function 88 as to which items were selected from the list.
The list information message is returned to the terminal dispatcher 40, or alternatively directly to the terminal port controller 34, and in turn through the serial port 36 to the host port 22 and its associated controller 20. The list information message is then communicated from the host port controller 20 to the host select function 86 which sends the information onto the processor 16.
The processor 16 finds the text of each of the items selected by the user in the rolling select mode and distributes the text of the selected messages to the host text output templates, a plurality of text outputs can be printed onto host text output templates, such as outputs A through E as shown in the drawing. The host text objects are set up in the appropriate fields and forwarded as a text output message to the host port controller 20 and its associated serial port 22 for further transmission over the network 14 to the serial port 36 and terminal port controller 34. The terminal port controller 34 directs the text messages to the dispatcher 40 which sends the text message to individual text fields of the terminal text displays.
After all the text fields have been provided with the information contained in the messages to be read, the processor 16 instructs the host composite object 92 containing the read message interface objects with a draw message. The draw message is sent from the host composite object 92 to the host port controller 20 which sends the draw message over the telecommunications network 14 to the terminal port 36 and the terminal port controller 34. The draw message is then transmitted to the dispatcher 40 and the screen composite object 94. Each text object may then be instructed to draw themselves as controlled by the terminal processor 30.
The above example illustrates interaction between the host and terminal objects for one specified application. To provide different functions, only the application code must be modified. Many different functions can be performed according to the general procedure described above.
Referring now to FIG. 8, the local processing function for a rolling screen select interaction is described in detail. It should be understood that any other interaction functions are also intended to be locally processed on the terminal until the user instructs the terminal to port the communication represented by the user interface object to the host computer.
The terminal processor 30 sets the user interface object 32. The user interacts with the user interface object 32 at terminal rolling select interactor 98. The user selects interactors A, B and C as the rolling select interacts with the terminal object 32. Interactor A 100 is selected and represented by screen object A 102. A second interactor B 104 is shown locally on the screen as screen object B 106 and interactor C 108 is shown on the screen as screen object C 110. When the user has selected all of the desired interactions, the message is sent to the terminal port controller containing all of the information contained on the terminal object 32 which has been modified by interactors A, B and C. If any of the interactors are modified or deselected, they can be modified locally prior to transmission. When the interactor message is sent to the terminal port controller, communication across the telecommunication lines 14 are transmitted to the host port controller 20. The host dispatcher 26 in turn sets the host rolling select interactor 112. The host rolling select interactor communicates the interactor message to the host processor 16.
The above description of the best mode of practicing the invention is presented by way of example and not by way of limitation. Various changes and modifications may be made without departing from the present invention.