Server system with scalable session timeout mechanism
AssigneeMicrosoft Corporation
InventorsDmitry Robsman, Murali R. Krishnan
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsDmitry Robsman, Murali R. Krishnan
Estimating the term…
A session manager has a session timeout mechanism to selectively timeout client-server sessions. The session timeout mechanism has multiple timeout buckets to hold corresponding groups of sessions according to the sessions' timeout periods. Sessions located in different ones of the timeout buckets are set to timeout at different times. The session manager also has a session timeout clock that is incremented every predetermined time unit (e.g., every minute). The session timeout clock maintains a pointer to one of the timeout buckets and advances that pointer with each clock increment. The session timeout clock advances the pointer through all of the timeout buckets, one bucket at a time. The session timeout clock advances the pointer repeatedly through all the buckets. The cycle time for the session timeout clock to reference every timeout bucket is equal to the incremental time unit multiplied by the number of buckets. A new session (or one that recently received a request and is restarting its timeout period) is inserted into a timeout bucket that is one or more buckets ahead of the clock pointer, depending upon the session's timeout period. When the timeout clock references a particular bucket, the sessions in that bucket are analyzed for possible timeout. Sessions whose timeout period has run without receiving any new requests are timed out and removed from the bucket.
A system for managing time-based items, comprising:
A system for managing time-based items, comprising:
A system for managing time-based items, comprising:
An application for execution on a computer, the application comprising a manager to group time-based items into multiple buckets according to time periods associated with the time-based items so that the time-based items located in different ones of the buckets have different time periods, the manager maintaining a clock that increments every predetermined time unit to advance a reference among the buckets so that one bucket is referenced at a time, the manager analyzing whether the time-based items contained in a currently referenced bucket have lapsed.
An item management system for managing time-based items, embodied on a computer-readable medium, comprising:
One or more computer-readable media comprising computer-executable instructions that, when executed, direct a computing device to:
A method for managing time-based items, comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
This invention relates to servers for computer network systems. More particularly, this invention relates to a timeout mechanism for selectively timing out client-server sessions on the server.
A computer network system has one or more host network servers connected to serve data to one or more client computers over a network. In a typical exchange, a client sends a request for data and/or services to a server over the network. The server processes the request and returns a response.
The server runs an operating system to handle communication interaction with client-based applications. The server operating system establishes the connection between the server and the client and allocates resources to handle requests from the client. When a client first connects to the server, the server operating system creates a new session for the client. The sessions are cached according to their ID in a main session table. All requests and responses are handled through the client session. When the client is finished submitting requests to the server, the session for that client is terminated.
The same reference numbers are used throughout the figures to reference like components and features.
FIG. 1 is a diagrammatic illustration of a client-server system having a host network server and multiple clients.
FIG. 2 is a diagrammatic illustration of a session timeout mechanism used by the server to manage client-server sessions. The session timeout mechanism includes a timeout clock and multiple timeout buckets.
FIG. 1 shows the computer network system 20 having a host network server 22 connected to serve multiple clients 24(1), 24(2), . . . , 24(N) over a network 26. The network 26 is representative of many diverse network technologies (e.g., Ethernet, satellite, modem-based, etc.) and different configurations, including a LAN (local area network), a WAN (wide area network), and the Internet. For discussion purposes, the computer network system 20 is described in the context of the Internet, whereby the network server 22 is a Web server that provides services and/or data to the clients 24(1)-24(N) over the Internet 26. It is noted, however, that this invention may be implemented in other networking contexts, including LAN and WAN configurations.
The server 22 has a processing unit 30 and a memory subsystem 32. The memory subsystem 32 includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, hard disk drive, floppy disk drive, CD-ROM, etc.). The network server 22 runs a network server operating system 34 that is stored in memory 32 and executed on the processing unit 30.
In the preferred implementation, the operating system 34 is the Windows NT server operating system from Microsoft Corporation, which is modified to incorporate the session timeout mechanism described below. The Windows NT server operating system is a multitasking, extensible, scalable operating system that can be implemented on standard personal computers. The Windows NT server operating system is well documented. For background information, the reader is directed to the book entitled Inside Windows NT, which is written by Helen Custer and is published by Microsoft Press (copyright 1993). This book is incorporated by reference.
From the US filing history. Foreign family members aren’t listed.
Multiprogramming arrangements: program synchronisation; Mutual exclusion, e.g. by means of semaphores
Network arrangements or protocols for supporting network services or applications: session management
Computing and data processing
Digital communication
Term ended 23 Apr 2018 (estimated)