In
human–computer interaction,
session management is the process of keeping track of a user's activity across sessions of interaction with the
computer system. Typical session management tasks in a
desktop environment include keeping track of which applications are open and which documents each application has opened, so that the same state can be restored when the user logs out and logs in later. For a website, session management might involve requiring the user to re-login if the session has expired (i.e., a certain time limit has passed without user activity). It is also used to store information on the server-side between HTTP requests.
Desktop session management A desktop session manager is a program that can save and restore desktop sessions. A desktop session is all the windows currently running and their current content. Session management on
Linux-based systems is provided by
X session manager. On
Microsoft Windows systems, session management is provided by the Session Manager Subsystem (smss.exe); user session functionality can be extended by third-party applications like
twinsplay.
Browser session management Session management is particularly useful in a
web browser where a user can save all open pages and settings and restore them at a later date or on a different computer (see
data portability). To help recover from a system or application crash, pages and settings can also be restored on next run.
Google Chrome,
Mozilla Firefox,
Internet Explorer,
OmniWeb and
Opera are examples of web browsers that support session management. Session management is often managed through the application of
cookies.
Web server session management Hypertext Transfer Protocol (HTTP) is stateless. Session management is the technique used by the web developer to make the stateless HTTP protocol support session state. For example, once a user has been authenticated to the web server, the user's next HTTP request (GET or POST) should not cause the web server to ask for the user's account and password again. For a discussion of the methods used to accomplish this see
HTTP cookie and
Session ID In situations where multiple web servers must share knowledge of session state (as is typical in a
cluster environment) session information must be shared between the cluster nodes that are running web server software. Methods for sharing session state between nodes in a cluster include: multicasting session information to member nodes (see
JGroups for one example of this technique), sharing session information with a partner node using
distributed shared memory or
memory virtualization, sharing session information between nodes using network sockets, storing session information on a shared file system such as a
distributed file system or a
global file system, or storing the session information outside the cluster in a
database. If session information is considered transient, volatile data that is not required for
non-repudiation of transactions and does not contain data that is subject to compliance auditing (in the U.S. for example, see the
Health Insurance Portability and Accountability Act and the
Sarbanes–Oxley Act for examples of two laws that necessitate compliance auditing) then any method of storing session information can be used. However, if session information is subject to audit compliance, consideration should be given to the method used for session storage, replication, and clustering. In a
service-oriented architecture, Simple Object Access Protocol or
SOAP messages constructed with Extensible Markup Language (
XML) messages can be used by consumer applications to cause web servers to create sessions.
Session management over SMS Just as HTTP is a
stateless protocol, so is
SMS. As SMS became interoperable across rival networks in 1999, and text messaging started its ascent towards becoming a ubiquitous global form of communication, various enterprises became interested in using the SMS channel for commercial purposes. Initial services did not require session management since they were only one-way communications (for example, in 2000, the
first mobile news service was delivered via SMS in Finland). Today, these applications are referred to as
application-to-peer (A2P) messaging as distinct from
peer-to-peer (P2P) messaging. The development of interactive enterprise applications required session management, but because SMS is a stateless protocol as defined by the GSM standards, early implementations were controlled
client-side by having the end-users enter commands and service identifiers manually. == See also ==