Electrical computers and digital processing systems: multicomput – Distributed data processing – Client/server
Reexamination Certificate
1999-06-30
2003-09-16
Jean, Frantz B (Department: 2155)
Electrical computers and digital processing systems: multicomput
Distributed data processing
Client/server
C709S220000, C709S221000, C709S242000, C709S246000, C709S241000, C717S168000
Reexamination Certificate
active
06622159
ABSTRACT:
TECHNICAL FIELD
This invention relates, in general, to switching server versions in a distributed environment and, in particular, to providing continuous server service to client calls when switching from a current server version to a new server version.
BACKGROUND ART
In a distributed environment, socket-based server applications or remote procedure call (RPC) servers are generally arranged to receive and subsequently process remotely-made client calls. Typical RPC servers allow for numerous client TCP/IP (Transmission Control Protocol/Internet Protocol) network connections and are implemented to address a large number of client requests. A typical arrangement for these servers is to establish a local network representation by binding a socket to a fixed port which allows client calls to be received by the server.
From time to time, the servers are required to be updated from a current server version to a new server version in order to enhance server functionality or to address any server problems. These updates are performed by first shutting down the current server version, and subsequently starting the new server version. However, client requests cannot be processed immediately after the current server version stops listening for client requests and closes its socket. Per TCP/IP architecture, before the socket may close, it must wait for a period of time before allowing the local network representation.(i.e., the local IP address and port number) to be reused. This prevents the new server version from immediately binding again to the same fixed port number. Only when the new server version is able to bind to the port number and listen for client calls on the socket can the server process client requests. As a result, any client calls received during this time are unable to be processed by either the current server version or the new server version. Thus, client calls received during this time are not processed and are instead returned to the clients with an error message indicating that the server is not available.
In mission critical systems, running twenty-four hours a day, seven days a week, continuous service is vital and such a loss of service is not tolerable. Thus a need exists for a system and a method which provide continuous server service during switching from a current server version to a new server version in a distributed environment.
SUMMARY OF THE INVENTION
The shortcomings of the prior art are overcome to some extent through provision of an address reuse socket option which has been implemented to allow the socket associated with the current server version to be reused by the new server version without having to wait for the socket to completely time out. Thus with the address reuse socket option, client calls may be received immediately after the new server version has completed its start up procedures.
Additional shortcomings of the prior art are overcome and further advantages are provided through the provision of a method of providing continuous server service during switching from a current server version to a new server version in a distributed environment. The current server version receives client calls through an associated static port with a socket bound thereto. The method includes: initiating switching from the current server version to the new server version while maintaining the socket open for receiving client calls; buffering any received client calls during switching from the current server version to the new server version; and upon switching to the new server version, processing any buffered client calls.
In another aspect of the invention, a method of providing continuous server service during switching from a current server version to a new server version, in a distributed environment, is disclosed. The current server version receives client calls through an associated static port with a socket bound thereto. The method includes: receiving client calls during switching from the current server version to the new server version by leaving the socket open; associating the static port with the socket bound thereto with the new server version; and processing by the new server version, any client calls received during switching so that no client calls are lost.
In yet another aspect of the invention, a system capable of providing continuous server service during switching from a current server version to a new server version, in a distributed environment is disclosed. The a system includes: a server having a static port with a socket bound thereto which is associated with the current server version, the server being operable to leave the socket open when the current server version is switched to the new server version so that the server is able to continue to receive client calls received through the socket during switching, the server further comprising a buffer adapted to queue client calls received during switching from the current server version to the new server version, wherein the server is adapted to have the new server version process any queued client calls received during switching after switching to the new server is complete.
In yet another aspect of the invention, a system for providing continuous server service during switching from a current server version to a new server version, in a distributed environment is disclosed. The current server version receives client calls through an associated static port with a socket bound thereto. The system includes: means for initiating switching from the current server version to the new server version while maintaining the socket open for receiving client calls; means for buffering any received client calls during switching from the current server version to the new server version; and means for processing, upon switching to the new server version, any buffered client calls.
In yet another aspect of the invention, a system for providing continuous server service during switching from a current server version to a new server version, in a distributed environment is disclosed. The current server version receives client calls through an associated static port with a socket bound thereto. The system includes: means for receiving client calls during switching from the current server version to the new server version by leaving the socket open; means for associating the static port with the socket bound thereto with the new server version; and
means for processing, by the new server version, any client calls received during switching so that no client calls are lost.
In yet another aspect of the invention, an article of manufacture is provided. The article of manufacture comprises a computer useable medium having computer readable program code means embodied therein causing the providing of continuous server service during switching from a current server version to a new server version, in a distributed environment, where the current server version receives client calls through an associated static port with a socket bound thereto. The computer readable program code means in the article of manufacture includes: computer readable program code means for causing initiating switching from the current server version to the new server version while maintaining the socket open for receiving client calls; computer readable program code means for causing buffering of any received client calls during switching from the current server version to the new server version; and computer readable program code means for causing, upon switching to the new server version, processing of any buffered client calls.
In yet another aspect of the invention, an article of manufacture is provided. The article of manufacture comprises a computer useable medium having computer readable program code means embodied therein causing the providing of continuous server service during switching from a current server version to a new server version, in a distributed environment, where the current server version receives client calls through an associated static port with a socket bound thereto. The computer readable program code
Chao Tian-Jy
Cooper Mark D.
Warner Kenneth H.
Andrew Wojnicki, Jr., Esq.
Esq. Lily Neff
Jean Frantz B
LandOfFree
Method, apparatus and computer program product for... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method, apparatus and computer program product for..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method, apparatus and computer program product for... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3036529