Human-computer interaction において、セッション管理とは、コンピューター システムとの対話のセッションにわたってユーザーの活動を追跡するプロセスです。
デスクトップ環境における代表的なセッション管理タスクには、ユーザーがログアウトして後でログインするときに同じ状態を復元できるように、どのアプリケーションが開いているか、各アプリケーションで開いたドキュメントがあるかを追跡することです。 Webサイトでは、セッションの有効期限が切れた(つまり、ユーザーの活動がないまま一定時間が経過した)場合に、ユーザーに再ログインを要求することがセッション管理に含まれるかもしれません。
デスクトップセッション管理編集
デスクトップセッション管理は、デスクトップセッションを保存および復元することができるプログラムである。 デスクトップセッションとは、現在実行されているすべてのウィンドウとその現在の内容のことです。 Linuxベースのシステムでのセッション管理は、Xセッションマネージャによって提供されます。 Microsoft Windows システムでは、セッション管理は Session Manager Subsystem (smss.exe) によって提供されます。ユーザーセッション機能は twinsplay のようなサードパーティのアプリケーションによって拡張することができます。 Google Chrome、Mozilla Firefox、Internet Explorer、OmniWeb、および Opera は、セッション管理をサポートする Web ブラウザの一例です。
Webサーバーセッション管理編集
Hypertext Transfer Protocol (HTTP) はステートレスです。Webブラウザを実行しているクライアントコンピュータは、新しいHTTP GETまたはPOSTリクエストごとにWebサーバーに新しいTCPネットワーク接続を確立しなければなりません。 したがって、Web サーバーは、1 回の HTTP GET または POST 操作よりも長い時間、確立された TCP ネットワーク接続に依存することができません。 セッション管理は、Web 開発者がステートレス HTTP プロトコルにセッション状態をサポートさせるために使用する技術です。 例えば、一度ユーザーが Web サーバーで認証されると、次の HTTP リクエスト (GET または POST) では Web サーバーがユーザーのアカウントとパスワードを再度要求するようなことがあってはなりません。 これを実現するための方法については、HTTP cookie and Session ID
複数のWebサーバーがセッション状態の知識を共有しなければならない状況(クラスタ環境では典型的)では、Webサーバーソフトウェアを実行しているクラスタノード間でセッション情報を共有しなければなりません。 クラスタのノード間でセッション状態を共有する方法には、セッション情報をメンバー ノードにマルチキャストする方法 (この手法の 1 例として JGroups を参照)、分散共有メモリまたはメモリ仮想化を使用してパートナー ノードとセッション情報を共有する方法、ネットワーク ソケットを使用してノード間でセッション情報を共有する方法、分散ファイル システムまたはグローバル ファイル システムなどの共有ファイル システムにセッション情報を格納する方法、またはクラスタの外部のデータベースでセッション情報を格納する方法などがあります。
セッション情報がトランザクションの否認防止に必要ない一過性の揮発性データとみなされ、コンプライアンス監査の対象となるデータを含まない場合(たとえば米国では、コンプライアンス監査を必要とする2つの法律の例として医療保険の携行性と責任に関する法律とサーベンス・オクスリー法を参照)、セッション情報を保存する任意の方法を用いることができます。
サービス指向アーキテクチャでは、拡張マークアップ言語 (XML) メッセージで構築された Simple Object Access Protocol または SOAP メッセージが、Web サーバーにセッションを作成させるために消費者アプリケーションによって使用されます。 1999 年に SMS が競合するネットワーク間で相互運用可能になり、テキスト メッセージングがユビキタスなグローバル コミュニケーションの形態になりつつある中、さまざまな企業が商業目的で SMS チャネルを使用することに関心を持つようになりました。 初期のサービスは、一方通行の通信であったため、セッション管理を必要としませんでした(たとえば、2000年にフィンランドで最初のモバイルニュースサービスがSMSで配信されました)。 今日、これらのアプリケーションは、ピアツーピア(P2P)メッセージングと区別して、アプリケーションツーピア(A2P)メッセージングと呼ばれています。 インタラクティブなエンタープライズ・アプリケーションの開発にはセッション管理が必要でしたが、SMSはGSM標準によって定義されたステートレス・プロトコルなので、初期の実装はエンドユーザーがコマンドとサービス識別子を手動で入力することによってクライアント側で制御されました
。