Electrical computers and digital processing systems: support – Multiple computer communication using cryptography – Protection at a particular protocol layer
Reexamination Certificate
1998-06-09
2001-09-11
Le, Dieu-Minh (Department: 2184)
Electrical computers and digital processing systems: support
Multiple computer communication using cryptography
Protection at a particular protocol layer
C709S230000
Reexamination Certificate
active
06289461
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention pertains to the field of distributed computer programs. More particularly, this invention relates to the art of bi-directional, process-to-process byte stream protocols.
2. Background
Advances in computer technology and the advent of the internet have enabled computer users to collectively execute computer programs from points distributed around the world. Examples of distributed programs include computer chat rooms, conferencing programs, and gaming programs wherein multiple computer users can interactively exchange information in real time. For instance, a computer chat room may allow a number of distributed users to view conversational text as it is typed by any one of the individual distributed users, a conferencing application may allow distributed users to collectively draft and edit a single text document, and gaming programs may allow distributed users to compete or collaborate in a virtual gaming environment.
In order to perform distributed programming, it is necessary for two individual processes to maintain a bi-directional byte stream. A process refers to an active execution of a computation, and is also commonly referred to as a task, job, or thread. Distributed programming is frequently based on the client-server paradigm, wherein a process executing on a client system must communicate with a process executing on a server system.
In the client-server paradigm, a client process makes requests for access to and information from a server process. A client process and server process may be executing on the same computer system or they may be executing on separate, communicatively coupled systems. Where a server system is accessible by a network, like the internet, a huge number of client systems from around the world may make requests on a server system.
Communications between clients and servers often involve transmitting data over various media within or among various networks. These communications media are often unreliable. The internet, for instance, is global in scale and relies on countless individual computers and connections. The failure of any one part of the internet cannot be predicted or prevented, making the internet inherently unreliable. Transmission Control Protocol/Internet Protocol (TCP/IP) comprises a number of communications protocols designed to reliably transmit data in spite of the inherent unreliability of the internet. In very general terms, TCP/IP verifies that data arrives, and automatically re-transmits segments that do not. Most distributed programs that communicate over the internet use TCP/IP formatted messages to insure reliability.
In addition to reliability, security is a major concern for network users. Many systems use firewalls to selectively block certain kinds of network communications. For instance, most firewalls prevent TCP/IP communications, blocking the bi-directional byte streams commonly used for distributed programming.
Therefore, in order to utilize distributed programming, a need exits for a bi-directional, process-to-process byte stream protocol that can traverse a firewall, maintain the level of security provided by the firewall, and provide reliable communications over inherently unreliable media.
SUMMARY OF THE INVENTION
A client system stores messages and sends the messages to a server system. The messages are included in a request formatted according to a protocol that can traverse a firewall. Then the client system waits for a response from the server system. The response will also be formatted according to the protocol that can traverse the firewall. The response will include an indication of which messages the server system received from the client system in the last request. If a certain number of messages accumulate at the client system, or a certain amount of time passes before the response is received, the client system will send a second request.
The server system also stores messages and sends the messages to the client system. The server system waits for a first request and a second request from the client system. If the first request has been received and a particular number of messages have accumulated at the server system, then the server system will send a response corresponding to the first request. If the second request is received, the server system will send the response corresponding to the first request even if no messages have accumulated. The response will include any accumulated messages. The next time the client system sends a request, the request will include an indication of which messages the client system received from the server system in the last response.
REFERENCES:
patent: 5430876 (1995-07-01), Schreiber et al.
patent: 5499343 (1996-03-01), Pettus
patent: 5713017 (1998-01-01), Lin et al.
patent: 5721908 (1998-02-01), Lagarde et al.
patent: 5732219 (1998-03-01), Blumen et al.
patent: 5778174 (1998-07-01), Cain
patent: 5805803 (1998-09-01), Birrell et al.
patent: 5815665 (1998-09-01), Teper et al.
patent: 5826014 (1998-10-01), Coley et al.
patent: 5850517 (1998-12-01), Verkler et al.
patent: 5935211 (1999-08-01), Osterman
Finnegan Henderson Farabow Garrett & Dunner L.L.P.
Le Dieu-Minh
Placeware, Inc.
LandOfFree
Bi-directional process-to-process byte stream protocol does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Bi-directional process-to-process byte stream protocol, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Bi-directional process-to-process byte stream protocol will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2459528