Electrical computers and digital processing systems: multicomput – Distributed data processing – Client/server
Reexamination Certificate
2001-08-29
2003-05-06
Najjar, Saleh (Department: 2157)
Electrical computers and digital processing systems: multicomput
Distributed data processing
Client/server
C201S045000, C201S045000, C201S045000, C201S045000
Reexamination Certificate
active
06560636
ABSTRACT:
BACKGROUND OF THE INVENTION
1. The Field of the Invention
The present invention relates to distributed processing systems. More particularly, the present invention is directed to a system and method for distributing and synchronizing data between application clients in a distributed processing environment.
2. The Prior State of the Art
As is well known, computers and related technology affect every aspect of today's society. Indeed, the computer's ability to gather, process and distribute information has transformed the way we live and work. As technology has continued to enhance this ability to gather, process and distribute information, the need for interconnection of computers has resulted, giving rise to the proliferation of computer networks. Initially, this networking of computers—both by way of local area networks (LAN) and wide area networks (WAN)—was done primarily in business and commercial environments. However, with the advent of commercial service providers such as Microsoft® Network and America Online®, the interconnection and communication between physically disparate computers is also available for home and personal use.
Computer networks were initially designed and implemented for purposes of facilitating the exchange of data and information between computer users, i.e., exchanging data files, sending and receiving of electronic mail, etc. However, the increased availability of high speed networks has given rise to the need for more sophisticated distributed network applications. Such applications must allow for the transparent interoperation and communication between applications that run on respective client computers connected via the particular network.
While such distributed applications can serve any one of a number of different functions, one timely example is computer game applications. With this type of distributed application, users execute a computer game application on a network connected client computer (referred to as a client), and the users/players then interoperate via the network (LAN or WAN) so as to allow each user/player to compete against one another. Obviously, this sort of distributed application environment requires that each computer client be able to continuously access and manipulate a shared set of application data, and it must do so in a manner so that any data and state changes are simultaneously communicated to each client. For instance, in a multi-participant game environment, when one application client/player effects a change to the game state, e.g., movement of players, player characteristics, player actions, animation changes, entry and/or exit of players to the game, game scores, etc., the underlying application data must be changed accordingly and that change must be instantly available and shared with each of the other clients/players participating in the game. Further, the nature of a computer game environment is such that players must be able to enter and exit the game arbitrarily and at any time. Obviously, new players must be admitted so that they are provided with the current state of the game and synchronized with the existing players.
The implementation of distributed network applications of this sort present special challenges that relate to this need for sharing and distribution of data and the need to dynamically allow players to enter/exit the game. In the past, techniques for this sharing, distribution and synchronization of data amongst multiple clients have not been entirely satisfactory. Typically, the management of shared data in a distributed environment is accomplished in one of two ways: with a client/server setup or with peer-to-peer messaging. Both approaches have drawbacks. In a client/server environment the data is physically stored at one dedicated network server, and then made available for access to each of the network connected clients. Because it resides at one location, the data is easily managed, kept up-to-date, and is uniformly available to all of the network clients. However, the server must always be present in the network, which is impractical for many of today's network applications which allow for the continuous entry and exit of client participants, such as multi-participant computer games.
In contrast, with a strictly peer-to-peer communications approach the shared data is physically stored at every network client. Changes to the data by any one client must be propagated to all other clients on the network. While this is advantageous in that there is no requirement for an always-present server or central repository of data, the timing and synchronization of data changes is difficult, which can result in the shared data being different from one client to the other. The problem can be exasperated in slower networks, such as a WAN, where data changes may not be communicated to the other clients in a timely manner. Further, the distributed nature of the peer-to-peer approach does not provide for a satisfactory environment in which clients can exit the application, and in which outside clients can enter the application as new participants, and at the same time maintain the integrity of the application data. Also, in a peer-to-peer environment, there is typically no one single client that has control over the application session to regulate the entry and exit of clients or to otherwise monitor or control any aspects of the application session.
As the availability of computer networks grows, the need for the interoperation between distributed network applications will continue to expand. Accordingly, what is needed in the art is a system and method that permits for the efficient and reliable sharing of application data, and at the same time that permits for ad hoc entry and exit of application clients.
SUMMARY OF THE INVENTION
The foregoing problems in the prior state of the art have been successfully overcome by the present invention, which is directed to a system and method for distributing and synchronizing data and state information between network connected clients running a distributed network application. The present invention addresses the above deficiencies by utilizing and combining variations of both the client/server and peer-to-peer messaging approaches typically used to manage shared application data. With the present invention, any change made to shared application data by one client is simultaneously communicated to each of the other clients participating in the network application. Further, the invention allows participating clients to exit the application, and new clients to be admitted, in a manner that does not adversely affect the accuracy or synchronization of the underlying shared application data.
In one preferred embodiment of the invention, an “application session” is invoked by a host client. The host client admits new network connected clients (i.e., a computer executing the particular application) into the application session, and is also responsible for insuring that a shared set of application data is properly distributed amongst each of the application clients. As used herein, the term “network” is intended to encompass local area networks, wide area networks, point-to-point networks, public internets, commercial service networks, etc., and is not intended to be limited to any specific network protocol or architecture.
In a preferred embodiment, the application data set used by each of the clients includes a table containing unique identifiers for each of the application clients participating in the application session, and state data that is relevant to the particular application being executed across the network, such as a multi-participant computer game. The application data set is forwarded by the host client so as to be stored at each application client. Thereafter, when an application client alters its own application data as, for instance, would occur when a particular game parameter is altered by that client, the change is communicated to the other clients in the session by way of a state update packet. Each client receives the state
Cohen Andrew R.
Olson Kipley J.
Microsoft Corporation
Najjar Saleh
Workman & Nydegger & Seeley
LandOfFree
Methods for performing client-hosted application sessions in... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Methods for performing client-hosted application sessions in..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Methods for performing client-hosted application sessions in... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3079633