WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for shared remote access of multiple application programs executing in one or more computers    

Get related patents on CD
United States Patent4949248   
Link to this pagehttp://www.wikipatents.com/4949248.html
Inventor(s)Caro; Marshall A. (43 Little Neck Rd., Southampton, NY 11968-4311)
AbstractA local-area-network based system for shared remote access or control of application programs in one or more computers by one or more other computers is provided having particular utility for trading rooms of securities firms, wherein each operator position is permitted the capability to access any of a number of information services. Information services, each of which communicates with a personal-computer-based video source running an applications program specific to that information service, are represented on a local-area network as nodes called servers. Each server runs the application program, unmodified, together with other terminate-and-stay-resident software which periodically broadcasts a video message, the content of which is the change of the application program display screen contents since the time of the last broadcast. The sender of the broadcast does not watch for the acknowledgements from recipients, which are other nodes on the network called clients, nor does the sender maintain a list of intended recipients. If a recipient misses a video message broadcast, it may request that the sender broadcast the contents of the entire display screen contents. Each client runs terminate-and-stay resident software which may through a hot key sequence entered from the client's keyboard request control of the application program of a particular server. Upon being granted such control, which may be shared among two or more clients, the client may send keystrokes to the server for controlling its application program.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Inventor     Caro; Marshall A. (43 Little Neck Rd., Southampton, NY 11968-4311)
Owner/Assignee    
Patent assignment
All assignments
Company News
Publication Date     August 14, 1990
Application Number     07/220,024
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 15, 1988
US Classification     709/203 370/394 700/90 705/37 709/219
Int'l Classification     G06F 013/00 G06F 013/14 G06F 013/38 G06F 013/42
Examiner     Williams Jr.; Archie E.
Assistant Examiner     Chan; Emily Y.
Attorney/Law Firm     Brumbaugh, Graves, Donohue & Raymond
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File 364/401 364/408
Patent Tags     shared remote access multiple application programs executing one more computers
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3323119



[0 after 0 votes]
3248705



[0 after 0 votes]
4774664
Campbell
705/38
Sep,1988

[0 after 0 votes]
4720784
Radhakrishnan
710/107
Jan,1988

[0 after 0 votes]
4688170
Waite
703/27
Aug,1987

[0 after 0 votes]
4604686
Reiter
703/25
Aug,1986

[0 after 0 votes]
4538993
Krumholz
434/118
Sep,1985

[0 after 0 votes]
4535401
Penn
700/3
Aug,1985

[0 after 0 votes]
4513373
Sheets
709/236
Apr,1985

[0 after 0 votes]
4486853
Parsons
345/418
Dec,1984

[0 after 0 votes]
4456951
Henneberger
700/2
Jun,1984

[0 after 0 votes]
4441162
Lillie
709/212
Apr,1984

[0 after 0 votes]
4430639
Bennett
340/10.6
Feb,1984

[0 after 0 votes]
4419661
Hetsugi
345/1.3
Dec,1983

[0 after 0 votes]
3623067
Deal, Jr.
426/483
Nov,1971

[0 after 0 votes]
3573747
Adams
359/715
Apr,1971

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. A system for remote shared access or control or one or more application programs executing in one or more server computers on a local-area network by one or more client computers on the local-area network, each of the server computers having at least a first memory containing video data representing a screen presentation, a second memory having at least one application program, a selective operating system program and a respective local-area network driver program, a processor for executing the programs in the second memory, and a respective interface to the local-area network, and each of the client computers having at least a first memory containing video data representing a screen presentation, a display for presenting the video data in its first memory, a second memory containing a respective operating system program and a respective network driver program, a processor for executing the programs in the second memory, a keyboard, and a respective interface to the local-area network, the system comprising:

means operatively coupled to the first memory in each server computer and being responsive to a change in the video data in the first memory of the server computer for providing on the local-area network one or more videograms representing the change in such video data;

means in each client computer responsive to one of a plurality of first predetermined sequences of keystrokes entered from the keyboard of the client computer for providing on the local-area network a control request message requesting control of an application program of a particular one of the server computers;

means in each server computer responsive to a control request message on the local-area network requesting control of an application program of the server computer for confirming whether or not the client computer providing the control request message is permitted to control such application program and providing on the local-area network a control request reply message respectively granting or denying the client computer providing the control request message control of such application program of the server computer;

means in each client computer responsive to a control request reply message on the local-area network granting the client computer control of an application program of a particular one of the server computers, to which the client computer has provided a control request message, for providing a video recovery request message on the local-area network requesting one or more videograms representing all the video data in the first memory of the particular one of the server computers, and thereafter receiving and processing each videogram on the local-area network providing by the particular one of the server computers by changing the video data in the first memory of the client computer in accordance with the videogram;

means in each client computer responsive to a control request reply message on the local-area network granting the client computer control of an application program of a particular one of the server computers, to which the client computer has provided a control request message, for subsequently responding to one or more keystrokes from the keyboard of the client computer and providing on the local-area network one or more keystrokegrams representing the one or more keystrokes;

means in each server computer responsive to a video recovery request message on the local-area network from a client computer, to which the server computer has granted control of an application program thereof, for providing on the local-area network one or more videograms representing all the video data in the first memory of the server computer; and

means in each server computer responsive to one or more keystrokegrams on the local-area network from a client computer, to which the server computer has granted control of an application program thereof, for deriving one or more keystrokes represented by such keystrokegrams and passing the derived keystrokes for processing by such application program of the server computer.

2. A system for remote shared access or control according to claim 1, further comprising:

means in each client computer responsive to one of a plurality of second predetermined sequences of keystrokes from the keyboard of the client computer for providing on the local area network a video request message requesting access to the video data in the first memory of a particular one of the server computers;

means in each server computer responsive to a video request message on the local area network requesting access to the video data in the first memory of the server computer for confirming whether or not the client computer providing the video request message is permitted to access the video data in the first memory of the server computer and providing on the local area network a video request reply message respectively granting or denying the client computer providing the video request message access to the video data in the first memory of the server computer, wherein if the client computer providing the video request message is granted such access, the server computer provides on the local area network one or more videograms representing all the video data in the first memory of the server computer; and

means in each client computer responsive to a video request reply message granting the client access to the video data in the first memory of a particular one of the server computers, to which the client computer has provided a video request message, for receiving and processing each videogram on the local area network provided by the particular one of the server computer by changing the video data in the first memory of the client computer in accordance with the videogram.

3. A system for remote shared access or control according to claim 2, further comprising means in each server computer for passing keystrokes derived from keystrokegrams provided by each client computer, to which the server computer has granted control of an application program thereof, in accordance with a predetermined priority scheme, wherein if the server computer has its own keyboard, keystrokes entered from such keyboard are assigned a lower priority than keystrokes derived by the server computer from keystrokegrams on the local area network.

4. A system for remote shared access or control according to claim 3, wherein each videogram provided by a server computer includes a sequence number indicative of the order in which the videogram is provided on the local area network by the server computer, and each control request reply and video request reply provided by the server computer granting a client computer control of the application program in the server computer and access to the video data in the first memory of the server computer, respectively, includes the sequence number of a next videogram to be provided on the local area network by the server computer, further comprising in each client computer means for determining whether the sequence number of a current videogram on the local area network provided by a server computer, which has granted the client computer control of an application program thereof or which has granted the client access to the video data in the first memory thereof, is greater by one than the sequence number of a previous videogram provided by such server computer and processed by the client computer, and for providing a video refresh request on the local-area network to such server computer if the sequence number of the current videogram is not greater by one than the sequence number of the previous videogram.

5. A system for remote shared access or control according to claim 4, wherein each of the means in each server computer comprises one or more program routines in the second memory of each server computer executed by the processor of each server computer, and each of the means in each client computer comprises one or more program routines in the second memory of each client computer executed by the processor of each client computer.

6. A system for remote shared access or control according to claim 5, wherein each of the program routines of the means in each server computer are terminate-and-stay-resident program routines separate from each application program of each server computer, and the program routines of the means in each client computer are terminate-and-stay-resident program routines separate from any application program of each client computer.

7. A system for remote shared access or control according to claim 5, wherein the program routines of the means in each server computer are part of at least one application program of at least one server computer.

8. A system for remote shared access or control according to claim 7, further comprising one or more cooperating server computers coupled to the local-area network, each of the cooperating server computers having a plurality of first memories each containing respective video data representing a corresponding screen presentation, a second memory having a plurality of application programs each including the program routines of the means in each server computer, a respective operating system program and a respective local-area network driver program, a processor for executing the programs in the second memory, and a respective interface to the local-area network, each cooperating server computer being programmed to concurrently execute the plurality of application programs, whereby each cooperating server computer is capable of functioning as a plurality of server computers on the local-area network.

9. A system for remote shared access or control according to claim 5, wherein the program routines of the means in each client computer are part of at least one application program of at least one client computer.

10. A system for remote shared access or control according to claim 9, further comprising one or more cooperating client computers coupled to the local area network, each of the cooperating client computers having a plurality of first memories each containing respective video data representing a corresponding screen presentation, a second memory having a plurality of application programs each including the program routines of the means in each client computer, a respective operating system program and a respective local-area network driver program, a processor for executing the programs in the second memory and a respective interface to the local-area network, each cooperating client computer being programmed to concurrently execute the plurality of respective application programs, whereby each cooperating client is capable of functioning as a plurality of client computers on the local-area network.

11. A system for remote shared access of one or more application programs executing in one or more server computers on a local area network by one or more client computers on the local area network, each of the server computers having at least a first memory containing video data representing a screen presentation, a second memory having at least one application program, a respective operating system program and a respective local area network driver program, a processor for executing the programs in the program memory, and a respective interface to the local area network, each of the client computers having at least a first memory containing video data representing a screen presentation, a display for presenting the video data in the first memory, a keyboard, a second memory having a respective operating system program and a respective network driver program, a processor for executing the programs in the program memory, and a respective interface to the local area network, the system comprising:

means in each server computer responsive to a change in the video data in the first memory of the server computer for providing on the local area network one or more videograms representing the change in such video data;

means in each client computer responsive to one of a plurality of first predetermined sequences of keystrokes entered from the keyboard of the client computer for providing on the local area network a video request message requesting access to the video data in the first memory of a particular one of the server computers;

means in each server computer responsive to a video request message on the local area network requesting access to the video data in the first memory of the server computer for confirming whether or not the client computer providing the video request message is permitted to access the video data in the first memory of the server computer and providing on the local area network a video request reply message respectively granting or denying the client computer providing the video request message access to the video data in the first memory of the server computer wherein if the client computer providing the video request message is granted such access, the server computer provides on the local area network one or more videograms representing all video data in the first memory of the server computer; and

means in each client computer responsive to a video request reply message granting the client access to the video data in the first memory of a particular one of the server computers, for which, the client has provided a video request message, for receiving and processing each videogram on the local area network provided by the particular one of the server computers by changing the video data in the first memory of the client computer in accordance with the videogram.

12. A system for remote shared access according to claim 11, wherein each videogram provided by a server computer includes a sequence number indicative of the order in which the videogram is provided on the local area network by the server computer, and each video request reply provided by the server computer granting a client computer access to the video data in the first memory of the server computer includes the sequence number of the next videogram to be provided on the local area network by the server computer, further comprising in each client computer means for determining whether the sequence number of a current videogram on the local area network provided by a server computer which has granted the client computer access to the video data in the first memory means thereof is greater by one than the sequence number of the previous videogram provided by such server computer and processed by the client computer, and for providing a video refresh request to such server computer if the sequence number of the current videogram is not greater by one than the sequence number of the previous videogram.

13. A system for remote shared access according to claim 11, wherein the second memory of at least one of the server computer has a program for providing communications with an information service providing data for processing by one or more of the application programs of the server computers, and wherein the at least one of the server computers additionally comprises a modem for operatively connecting the at least one of the server computers with a communications line to the information service.

14. A system for use in a securities firm trading floor for remote shared access of one or more application programs executing in one or more server computers on a local-area network by one or more client computers on the local-area network, each of the server computers having at least a first memory containing video data representing a screen presentation, a second memory having at least one application program, a respective operating system program and a respective local-area network driver program, a processor for executing the programs in the second memory, and a respective interface to the local-area network, wherein at least one of the server computers further comprises a modem, the second memory of the at least one of the server computers has a program for providing communications with an information service providing data for processing by one or more of the application programs of the server computers, and the modem is operatively connected to communicate with the information service, each of the client computers having at least a first memory containing video data representing a screen presentation, a display for preventing the video data in the first memory, a keyboard, a second memory having a respective network driver program, a processor for executing the programs in the second memory, and a respective interface to the local-area network, the system further comprising:

means in each server computer responsive to a change in the video data in the first memory of the server computer for providing on the local-area network one or more videograms representing the change in such video data;

means in each client computer responsive to one of a plurality of first predetermined sequences of keystrokes entered from the keyboard of the client computer for providing on the local-area network a video request message requesting access to the video data in the first memory of a particular one of the server computers;

means in each server computer responsive to a video request message on the local-area network requesting access to the video data in the first memory of the server computer for confirming whether or not the client computer providing the video request message is permitted to access the video data in the first memory of the server computer and providing on the local-area network a video request reply message respectively granting or denying the client computer providing the video request message access to the video data in the first memory of the server computer, wherein if the client computer providing the video request message is granted such access, the server computer provides on the local-area network one or more videograms representing all video data in the first memory of the server computer; and

means in each client computer responsive to a video request reply message granting the client access to the video data in the first memory of a particular one of the server computers, for which the client has provided a video request message, for receiving and processing each videogram on the local-area network provided by the particular one of the server computers by changing the video data in the first memory of the client computer in accordance with the videogram.

15. A system for remote shared access according to claim 11, wherein each videogram provided by a server computer includes a sequence number indicative of the order in which the videogram is provided on the local area network by the server computer, and each video request reply provided by the server computer granting a client computer access to the video data in the first memory of the server computer includes the sequence number of the next videogram to be provided on the local area network by the server computer, further comprising in each client computer means for determining whether the sequence number of a current videogram on the local area network provided by a server computer which has granted the client computer access to the video data in the first memory means thereof is greater by one than the sequence number of the previous videogram provided by such server computer and processed by the client computer, and for providing a video refresh request to such server computer if the sequence number of the current videogram is not greater by one than the sequence number of the previous videogram.
 Description Submit all comments and votes
 


SPECIFICATION

A microfiche appendix containing 185 frames on 2 cards is included in the specification and is hereinafter referred to as Appendix I.

BACKGROUND OF THE INVENTION

The present invention relates generally to the access and control of programs executing in one or more computers by remote terminals or computers, and more particularly to shared access and control of such programs by the remote terminals or computers.

In many computer user environments, such as a securities firm trading floor, it is necessary to provide at each operator location facilities to access information from or communicate with a number of separate information services (e.g. Quotron, Nasdaq, Reuters, Telerate). Formerly, it was necessary to provide at each operator location a separate data communications device for each information service to be accessed by the operator. Each data communications device, which may be a hardwired terminal or an appropriately programmed computer, has a keyboard, a display and control logic for controlling the functions of the device, including causing data received from the information service to be presented on the display and, if necessary, providing data entered at the keyboard to the information service. In this manner, the control logic of each data communications device serves as a video source for the information service with which the device is associated.

However, providing a separate data communications device at each operator location for each information service to be accessed by the operator has the problem in that the many such devices that are required occupy an excessively large amount of space at each operator location, and a separate set of communication lines from the information services to be accessed by the operators must be routed to each operator location.

A known solution to the foregoing problems is to use a video switching system to reduce the number of communication lines that are required from the information services and to reduce the number of video sources that are required to provide each operator with access to the information services.

A simplified illustrative example of a video switching system is shown in FIG. 1. Referring to FIG. 1, five operator locations 101-105 are each provided with a keyboard 106 and two display devices 107-108 to permit each operator to access as many as two of the three information services 109-111. The three information services 109-111 are respectively connected through communications lines 112-114 to three computers 115-117, which serve as the video sources for the information services. The video outputs 118-120 of the three video sources 115-117, respectively, are selectively connected to the displays 107-108 of each operator station 101-105 through a 3-by-10 switching matrix 121. Typically, each of the video outputs 118-120 of the video sources 115-117 provides a respective RS-170 video signal. The switching matrix 121 is controlled by a request handler computer 122, which receives input from each of the keyboards 106 at the operator stations 101-105. An operator may use the keyboard at his or her location to invoke a "dialog" mode with the request handler computer 122 in which the operator may use the keyboard to request the connection of a particular video source to one of the displays at his or her location. The operator may also use the keyboard to invoke a "passthrough" mode with the request handler computer 122 in which the operator's keyboard entries are provided to a particular video source for the purpose of either controlling the video source or providing data to the information service to which the particular video source is connected. The operator may use the keyboard at his or her operator location to invoke the passthrough mode of operation with the request handler computer 122 to allow keystrokes from that keyboard to be provided to any one of the video sources 115-117.

The passing of keystrokes from the keyboards 106 at the operator locations 101-105 to the video sources 115-117 by the request handler computer 122 operating in the passthrough mode is implemented through a bus 123 of the request handler computer 122 to which the video sources 115-117 are coupled through respective keyboard adapters 124-126. Each keyboard adapter, which is connected between the bus 123 and the keyboard input of the associated video source, serves to emulate the keyboard which is normally used with the computer serving as the video source in the illustrative example. Thus, each of the video sources 115-117 may be accessed and controlled from any of the remote operator locations 101-105 through the request handler computer 122 without any modification of the hardware or programs of the computer being used as the video source, other than the removal of its keyboard and display which are not used. Therefore, the access and control of the video sources 115-117 from the operator locations 101-105 are said to be "transparent" to the video source, since each video source receives keyboard inputs indistinguishable from those it would have received from its own keyboard if one were provided, and each video source provides a video output which is the same video output it would have provided to its own display if one were furnished.

Where the video source is a programmed computer, remote access and control of the video sources by means of the video switching system is accomplished without altering the program which is normally executed in the computer.

Since a given video source can process input from only one of the operator location keyboards at a time, the program of the request handler computer 122 provides for the arbitration among the operator locations seeking to provide input to any given video source at the same time. Normally the system is designed so that to a given operator entering input from the keyboard at his or her operator location, access to a given video source would appear to be contemporaneous with access to the same video source by one or more other operators at their respective operator locations.

The video switching system, of which a simplified illustrative example is shown in FIG. 1, provides for the remote access and control of multiple video sources to be shared by an arbitrary number of operator locations of the system. The access to and control of a particular video source through the video switching system can be limited exclusively for a time to a single operator location or can be shared among many operator locations contemporaneously. In addition, the video switching system permits some operator locations to view the video presentation provided by a shared video source and other operator locations to view the video presentations and control the shared video source in the manner described above.

Although the video switching system provides the advantages of reducing the amount of equipment required at each operator location and the number of communications lines which must be routed to each operator location, when compared to providing a separate video source for each information service to be accessed at each operator location, the video switching system has a number of significant drawbacks which makes it disadvantageous for modern computer user environments.

A video switching system is inherently costly because of the extensive overhead equipment, such as the switching matrix 121 and the request handler computer 122, which must be installed and continually maintained. Further, there is a substantial wiring cost associated with the installation of a video switching system in that each display at each operator location must be connected by a separate line to a central switching matrix. As system size grows, the video switching matrix must be expanded quadratically with system size. For example, if the number of operator positions and video sources are doubled, the size of the switching matrix quadrupled.

In addition, the video switching systems, which typically use 75-ohm coaxial cables to carry the video signal from a video source to the displays at the operator locations through the switching matrix, do not provide sufficient video bandwidth required by modern, high-resolution color computer displays. Consequently, such modern displays cannot be used in a video switching system without significant degradation in the quality of the video presentation at the operator locations. This latter drawback is becoming increasingly serious with the rising popularity of personal computers with modern, high-resolution displays as the video source specified or supplied by the information service providers. Moreover, the video switching system, which has a large number of hardware components, is subject to a relatively high rate of failures and is difficult to service and maintain.

Local area networks (LANs) are known and are used to provide distributed processing environments in which multiple computers attached to the LAN can share resources, such as printers and disk drives, and exchange and share data among computers which are part of the LAN or computers which are external to the LAN but connected to the LAN through gateway devices. Recently computers with large-screen displays or multiple-screen displays have been developed to be attached to LANs. Such computers have the capability of providing simultaneous multiple screen displays.

A computer on a LAN can access data in another computer on the LAN through its keyboard, provided that the accessing computer and the computer being accessed are each executing special programs designed for the purpose of enabling such access. Owing to the need for such special programs and the limited modes of data access provided thereby, the display of the accessing computer cannot present the screen presentation of another computer executing an arbitrary application program. As such, "transparent" access by one computer on a LAN to an arbitrary application program executing in another computer on the LAN is not available.

Similarly, given the need for such special programs, the accessing computer cannot control through its keyboard an arbitrary application program executing in another computer on the LAN. Accordingly, "transparent" control of one computer on the LAN by another computer on the LAN is not available.

Furthermore, shared access and control, where two or more computers on a LAN each display the screen presentation of another computer on the LAN or where two or more computers on a LAN each control through their respective keyboards and displays an application program being executed in another computer on the LAN are also not available.

A program called "NETmanager" is available from Brightwork