(57)【要約】【課題】タイムアウト後の自動的な再接続を可能とする技術の実現。【解決手段】Webサーバ12、DBサーバ14を備えたセッション管理システム10であり、Webサーバ12が、セッション識別コードをクライアント端末18に送信する手段、セッション管理レコードを生成し、セッション管理テーブル26に登録する手段、クライアント端末18との通信が所定時間途絶えた際に、セッションの再開に必要なデータをメモリから抽出し、退避データ記憶部30に格納する手段、退避データの格納領域を管理レコードに記録する手段、セッション関連データをメモリから消去する手段、クライアント端末18から再接続要求が送信された場合に、セッション管理テーブル26を参照し、対応の退避データ格納領域を特定する手段、退避データ記憶部30から退避データを抽出し、セッション情報を復元する手段、これをメモリにセットする手段を備える。【選択図】図１
2007272471.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じて複数のクライアント端末と接続されるサーバを備えたセッション管理システムであって、
このサーバが、
各クライアント端末のログインに際し、セッション識別コードを生成してクライアント端末に送信する手段と、
セッションの開始日時、セッション識別コード及び退避データ格納先のデータ項目を備えたセッション管理レコードを生成し、セッション管理記憶手段に登録する手段と、
各クライアント端末との間の通信が所定時間以上途絶えた場合に、セッションの再開に必要なデータをメモリから抽出し、外部記憶装置内に設けられた退避データ記憶手段に格納する手段と、
当該退避データの格納領域をセッション管理レコードの退避データ格納先に記録する手段と、
当該セッションに係るデータをメモリから消去する手段と、
クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた退避データ格納領域を特定する手段と、
上記退避データ記憶手段から退避データを抽出する手段と、
この退避データに基づいてセッション情報を復元する手段と、
このセッション情報をメモリにセットする手段と、
を備えたことを特徴とするセッション管理システム。
【請求項２】
上記セッション管理レコードには終了日時のデータ項目が設けられており、
上記サーバが、
セッションに係るデータをメモリから消去した日時をセッション管理レコードの終了日時項目に記録する手段と、
上記クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた終了日時を特定する手段と、
この終了日時から現在までの経過時間が、所定の再接続可能時間内にあるか否かを判定する手段とを備え、
経過時間が再接続可能時間内にある場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴とする請求項１に記載のセッション管理システム。
【請求項３】
ネットワークを通じて複数のクライアント端末と接続されるサーバを備えたセッション管理システムであって、
このサーバが、
特定のサービスをクライアント端末に提供するサイト領域と、
セッションの再開に必要な要退避データの種類を定義しておくサイト設定記憶手段と、
各クライアント端末のログインに際し、セッション識別コードを生成してクライアント端末に送信する手段と、
セッションの開始日時、セッション識別コード及び退避データ格納先のデータ項目を備えたセッション管理レコードを生成し、セッション管理記憶手段に登録する手段と、
各クライアント端末との間の通信が所定時間以上途絶えた場合に、上記のサイト設定記憶手段を参照し、要退避データの種類を特定する手段と、
この要退避データをメモリから抽出し、外部記憶装置内に設けられた退避データ記憶手段に格納する手段と、
当該退避データの格納領域をセッション管理レコードの退避データ格納先に記録する手段と、
当該セッションに係るデータをメモリから消去する手段と、
クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた退避データ格納領域を特定する手段と、
上記退避データ記憶手段から退避データを抽出する手段と、
この退避データに基づいてセッション情報を復元する手段と、
このセッション情報をメモリにセットする手段と、
を備えたことを特徴とするセッション管理システム。
【請求項４】
上記セッション管理レコードには終了日時のデータ項目が設けられており、
また、上記サイト設定記憶手段には、再接続可能時間が定義されており、
上記サーバが、
上記クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた終了日時を特定する手段と、
上記サイト設定記憶手段を参照し、再接続可能時間を特定する手段と、
上記の終了日時から現在までの経過時間が再接続可能時間内にあるか否かを判定する手段とを備え、
経過時間が再接続可能時間内にある場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴とする請求項３に記載のセッション管理システム。
【請求項５】
上記サーバが、
ユーザの属性情報と再接続可能時間との対応関係を定義しておく記憶手段と、
クライアント端末から送信されたユーザの属性情報に基づいて再接続可能時間を特定する手段と、
を備えたことを特徴とする請求項２または４に記載のセッション管理システム。
【請求項６】
上記セッション管理レコードにはIPアドレスのデータ項目が設けられており、
上記サーバが、
各クライアント端末のログインに際し、そのIPアドレスをセッション管理レコードに記録する手段と、
クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられたIPアドレスを特定する手段と、
当該クライアント端末から今回送信されたIPアドレスが、セッション管理レコードに記録された上記IPアドレスと一致するか否かを判定する手段とを備え、
両IPアドレスが一致する場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴とする請求項１〜５の何れかに記載のセッション管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はセッション管理システムに係り、特に、セッションタイムアウト後の自動的な再接続を実現するシステムに関する。
【背景技術】
【０００２】
HTTPにはセッション維持のための仕組みが用意されていないため、Webアプリケーションを用いてクライアント端末に複雑なサービスを提供する際には、セッション管理のための仕組みをWebサーバ側に設ける必要がある。
一般的には、以下の手順によってセッション管理が実現されている（非特許文献１参照）。
(1) クライアント端末のWebブラウザから最初のアクセスがあった際に、WebサーバにおいてユニークなセッションIDが生成され、クライアント端末のWebブラウザに送信される。
(2) Webブラウザは、このセッションIDをクッキー（Cookie）として記憶装置内に格納する。
(3) つぎにWebブラウザからWebサーバに通信する際には、電文中にこのセッションIDが添付されるため、Webサーバは通信相手を一意に特定することができ、継続的なサービスの提供が可能となる。
【非特許文献１】セッションタイムアウト［平成１８年３月１１日検索］  インターネットURL:http://www.ipa.go.jp/security/awareness/vendor/programming/a05_03_main.html
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のように、クッキーを用いてWebブラウザを特定することにより、Webサーバは通信相手を特定することはできるが、ログアウトすることもなく一定時間通信が途絶えている場合、エンドユーザが当該サービスの利用を打ち切ったのか、それとも思索中であるのかをWebサーバ側で確認することはできない。
このような状態を放置することは、Webサーバのメモリ資源を浪費することになるため、通常は30分程度の時間が経過した時点で自動的にタイムアウトと認定され、メモリ上に展開されたセッション関連データが強制的に消去されることとなる。
【０００４】
この場合、当該サービスの継続を希望するエンドユーザには、再度当該Webサイトのトップページに戻り、IDやパスワードの入力を伴うログイン処理を繰り返すことが要求される。
この結果、確かにWebサーバにおけるメモリ資源の利用効率は向上するとしても、一時的に作業を中断しただけのエンドユーザに対して大きな不便をかけることとなる。
【０００５】
この発明は、従来のセッション管理システムが抱えていた上記の問題を解決するために案出されたものであり、長時間の無通信状態を放置することによってサーバ側のメモリ資源が浪費されることを有効に回避しつつ、クライアント端末側の利便性をも損なうことのないセッション管理システムを実現することを目的としている。
【課題を解決するための手段】
【０００６】
上記の目的を達成するため、請求項１に記載したシステムは、ネットワークを通じて複数のクライアント端末と接続されるサーバを備えたセッション管理システムであって、このサーバが、各クライアント端末のログインに際し、セッション識別コードを生成してクライアント端末に送信する手段と、セッションの開始日時、セッション識別コード及び退避データ格納先のデータ項目を備えたセッション管理レコードを生成し、セッション管理記憶手段に登録する手段と、各クライアント端末との間の通信が所定時間以上途絶えた場合に、セッションの再開に必要なデータをメモリから抽出し、外部記憶装置内に設けられた退避データ記憶手段に格納する手段と、当該退避データの格納領域をセッション管理レコードの退避データ格納先に記録する手段と、当該セッションに係るデータをメモリから消去する手段と、クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた退避データ格納領域を特定する手段と、上記退避データ記憶手段から退避データを抽出する手段と、この退避データに基づいてセッション情報を復元する手段と、このセッション情報をメモリにセットする手段とを備えたことを特徴としている。
上記「サーバ」には、複数のサーバコンピュータをネットワーク接続させたサーバ群も含まれるものとする（以下同様）。
【０００７】
請求項２に記載したセッション管理システムは、請求項１のシステムであって、さらに、上記セッション管理レコードには終了日時のデータ項目が設けられており、上記サーバが、セッションに係るデータをメモリから消去した日時をセッション管理レコードの終了日時項目に記録する手段と、上記クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた終了日時を特定する手段と、この終了日時から現在までの経過時間が、所定の再接続可能時間内にあるか否かを判定する手段とを備え、この経過時間が再接続可能時間内にある場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴としている。
【０００８】
請求項３に記載したシステムは、ネットワークを通じて複数のクライアント端末と接続されるサーバを備えたセッション管理システムであって、このサーバが、特定のサービスをクライアント端末に提供するサイト領域と、セッションの再開に必要な要退避データの種類を定義しておくサイト設定記憶手段と、各クライアント端末のログインに際し、セッション識別コードを生成してクライアント端末に送信する手段と、セッションの開始日時、セッション識別コード及び退避データ格納先のデータ項目を備えたセッション管理レコードを生成し、セッション管理記憶手段に登録する手段と、各クライアント端末との間の通信が所定時間以上途絶えた場合に、上記のサイト設定記憶手段を参照し、要退避データの種類を特定する手段と、この要退避データをメモリから抽出し、外部記憶装置内に設けられた退避データ記憶手段に格納する手段と、当該退避データの格納領域をセッション管理レコードの退避データ格納先に記録する手段と、当該セッションに係るデータをメモリから消去する手段と、クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた退避データ格納領域を特定する手段と、上記退避データ記憶手段から退避データを抽出する手段と、この退避データに基づいてセッション情報を復元する手段と、このセッション情報をメモリにセットする手段とを備えたことを特徴としている。
【０００９】
請求項４に記載したセッション管理システムは、請求項３のシステムであって、さらに、上記セッション管理レコードには終了日時のデータ項目が設けられており、また上記サイト設定記憶手段には再接続可能時間が定義されており、上記サーバが、上記クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられた終了日時を特定する手段と、上記サイト設定記憶手段を参照し、再接続可能時間を特定する手段と、上記の終了日時から現在までの経過時間が再接続可能時間内にあるか否かを判定する手段とを備え、経過時間が再接続可能時間内にある場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴としている。
【００１０】
請求項５に記載したセッション管理システムは、請求項２または４のシステムであって、さらに上記サーバが、ユーザの属性情報と再接続可能時間との対応関係を定義しておく記憶手段と、クライアント端末から送信されたユーザの属性情報に基づいて再接続可能時間を特定する手段とを備えたことを特徴としている。
【００１１】
請求項６に記載したセッション管理システムは、請求項１〜５のシステムであって、さらに、上記セッション管理レコードにはIPアドレスのデータ項目が設けられており、上記サーバが、各クライアント端末のログインに際し、そのIPアドレスをセッション管理レコードに記録する手段と、クライアント端末から再接続を求める電文が送信された場合に、上記セッション管理記憶手段を参照し、当該クライアント端末から送信されたセッション識別コードに関連付けられたIPアドレスを特定する手段と、当該クライアント端末から今回送信されたIPアドレスが、セッション管理レコードに記録された上記IPアドレスと一致するか否かを判定する手段とを備え、両IPアドレスが一致する場合に限り、セッション情報の復元及びメモリへのセットが実行されることを特徴としている。
【発明の効果】
【００１２】
請求項１に記載したセッション管理システムにあっては、所定のタイムアウト時間が経過した場合に、サーバのメモリからセッション関連データが速やかに消去されるため、サーバのメモリ資源を有効利用可能となる。
また、メモリの解放直前にセッションの再開に必要なデータがメモリから外部記憶装置に退避され、クライアント端末から再接続の要求が発せられた場合にはメモリ上にセッション情報が速やかに復元されるため、ユーザは再ログインすることなく作業を継続することが可能となる。
このように、タイムアウトによってユーザに不便を強いることが一切ないため、従来よりもタイムアウト時間を短く設定することが可能となり、サーバ側のメモリ効率をより高めることが可能となる。
【００１３】
請求項２に記載したセッション管理システムにあっては、再接続可能時間を設定することにより、クライアント端末が無制限に再接続することを規制でき、セキュリティを担保することができる。
【００１４】
請求項３に記載したセッション管理システムによれば、タイムアウト時における要退避データの種類を、サイト設定記憶手段に予め定義しておくことができる。
このため、サイトを実現するためのアプリケーションプログラムに要退避データに関するコーディングをする必要がなくなり、プログラムの開発や設定の変更が容易となる。
【００１５】
請求項４に記載したセッション管理システムにあっては、再接続可能時間をサイト設定記憶手段に予め定義しておくことができ、プログラムを改変することなく容易に再接続可能時間を変更可能となる。
【００１６】
請求項５に記載したセッション管理システムにあっては、ユーザの属性に応じて再接続可能時間を可変にできるため、ユーザの職位や権限に応じたより柔軟な運用が可能となる。
【００１７】
請求項６に記載したセッション管理システムによれば、最初のログイン時のIPアドレスと再接続要求時のIPアドレスとの一致を再接続の条件とすることにより、システムのセキュリティを高めることが可能となる。
【発明を実施するための最良の形態】
【００１８】
図１は、この発明に係るセッション管理システム10の全体構成図であり、このシステム10は、Webサーバ12と、セッション管理用のDBサーバ14とを備えている。各サーバ間は、LANによって接続されている。
また、Webサーバ12に対しては、イントラネット16やインターネットを介して多数のクライアント端末18が接続されている。
クライアント端末18は、ＰＣ等のコンピュータよりなり、OS及びWebブラウザプログラムがセットアップされている。
【００１９】
Webサーバ12のハードディスクには、OSやWebサーバ用プログラムの他に、このシステム専用のセッション管理プログラム20がセットアップされており、サーバのCPUがこれらのプログラムに従って動作することにより、後述の各種処理が実現される。
また、Webサーバ12のハードディスクには、サイト領域22が確保されており、このサイト領域22には特定のサービスを提供するためのアプリケーションプログラム及びデータベースが格納されている。
【００２０】
セッション管理用のDBサーバ14は、データベース管理プログラム24と、セッション管理テーブル26と、サイト設定テーブル28と、退避データ記憶部30と、ユーザデータベース32を備えている。
サイト設定テーブル28には、タイムアウト後の再接続可能時間、タイムアウト時にメモリから退避データ記憶部30に退避すべきデータの識別情報等が定義されている。
ユーザデータベース32には、各エンドユーザのID、パスワード、氏名、所属企業名、企業ID等の情報が格納されている。
【００２１】
以下、図２及び図３のフローチャートに従い、このシステム10における処理手順を説明する。
まず、Webサーバ12がクライアント端末18からのログイン要求を受信すると（Ｓ10）、送信されたID及びパスワードに基づいてユーザデータベース32をチェックし、認証処理を実行する（Ｓ12）。
ここで認証NGの場合には、Webサーバ12からクライアント端末18にサービス利用不可メッセージが送信され、画面に表示される（Ｓ14）。
これに対し認証OKの場合、Webサーバ12は暗号化した認証IDをクライアント端末18に送信し、クッキー（Cookie）に保存させる（Ｓ24）。
ここで「認証ID」とは、Webサーバ12によって生成されるセッション識別コードを意味する。
【００２２】
つぎにWebサーバ12は、サイト領域22を管理するプログラムにユーザIDを渡し、当該サイトへのログイン処理をリクエストすると共に（Ｓ26）、セッション管理レコードを生成し、DBサーバ14のセッション管理テーブル26に登録する（Ｓ28）。
このセッション管理レコードは、図４に示すように、ログイン開始日時、ログ区分、ログイン終了日時、認証ID、退避データ格納先のデータ項目を備えている。
セッション開始直後には図４(a)に示すように、ログイン開始日時の項目にセッション開始の日時情報が記録されると共に、ログ区分項目に「新規」が記録される。また、認証IDの項目には、Ｓ24で発行された認証IDが記録される。
【００２３】
その後、ログインしたサイトのWebファイルがWebサーバ12からクライアント端末18に送信され、固有の画面を通じた特定のサービスがサイト領域22を通じてユーザに提供される（Ｓ30）。
ユーザが順調に作業を完了し、クライアント端末18からログアウトのリクエストが送信されると（Ｓ32）、図４(b)に示すように、Webサーバ12はセッション管理レコードのログイン終了日時項目に現在日時を記録すると同時に（Ｓ34）、メモリから当該セッションに係る全データを消去する（Ｓ36）。
【００２４】
これに対し、サービス提供途中においてクライアント端末18との通信が所定のタイムアウト時間（例えば10分）内に一度も発生しない場合（図３のＳ38）、Webサーバ12はタイムアウトと判定し、セッションの中断処理を実行する。
まずWebサーバ12は、サイト設定テーブル28を参照し、当該サイトの設定情報を取得する（Ｓ40）。具体的には、当該サイトにおけるユーザの利用画面を後で再現するために保存しておくべきデータの種類を特定する。例えば、入力フィールドや、検索条件入力フィールド、選択肢フィールド等を特定するIDが該当する。
【００２５】
つぎにWebサーバ12は、Ｓ40で取得した設定情報に基づいて、メモリ上から要退避データ（入力中のテキストや選択データ、ユーザID、画面ID等）を抽出し、DBサーバ14の退避データ記憶部30に退避させる（Ｓ42）。
つぎにWebサーバ12は、図５(c)に示すように、その退避先のパス名をセッション管理レコードの退避データ格納先項目に記録する（Ｓ44）。この際、ログイン終了日時項目にもタイムアウトの日時が記録される。
つぎにWebサーバ12は、メモリ上から当該セッションに係る全データを消去する（Ｓ46）。
【００２６】
その後ユーザが操作を再開し、クライアント端末18から何らかのリクエストが送信されると、これを受けたWebサーバ12は（Ｓ48）、当該クライアント端末18のクッキーに認証IDが記述されているか否か（Ｓ50）、及び認証IDに対応するセッション管理レコードが存在するか否かをチェックする（Ｓ51）。
ここでクッキーに認証IDが記述されており、対応のセッション管理レコードも存在する場合、Webサーバ12はサイト設定テーブル28を参照し、当該サイトの再接続可能時間を取得すると共に（Ｓ52）、認証IDをキーにセッション管理テーブル26を参照し、ログイン終了日時（タイムアウト日時）を取得する（Ｓ54）。
つぎにWebサーバ12は、このタイムアウト日時から現在までの経過時間が再接続可能時間内か否かを判定し（Ｓ56）、YESであればセッション管理レコードを参照し、セッションの再開に必要なデータが登録されているか否かを判定する（Ｓ58）。
ここでYESの場合、Webサーバ12は退避データ記憶部30から当該セッションの再現に必要なデータを取得すると共に、サイト領域22からサービス提供画面を生成するための基本となるデータを取得し、セッション情報を復元する（Ｓ60）。
【００２７】
つぎにWebサーバ12は、退避データ記憶部30から抽出したデータ中のユーザIDに基づいてユーザデータベース32をチェックし、当該ユーザがサイト領域22のサービスを利用する権限を有するか否かを再認証する（Ｓ62）。ここで利用権限ありと判定されると、Webサーバ12は復元したセッション情報をメモリにセットする（Ｓ64）。
同時にWebサーバ12は、図６(d)に示すように、セッション管理テーブル26に新たな管理レコードを追加する（Ｓ66）。このセッション管理レコードの認証ID項目には、タイムアウト前に使われていた認証IDがそのまま引き継がれることとなるが、ログ区分項目には「再接続」が記録される。また、ログイン開始日時項目には、再接続開始時の日時が記録される。
【００２８】
以上の結果、Webサーバ12によって一旦タイムアウトによるセッション中断処理に付されたユーザであっても、メモリ上にタイムアウト直前のセッション情報が再現され、入力途中のテキストや選択肢へのチェックまで忠実に再現された画面がクライアント端末18に送信されるため、再ログインすることなく作業を再開することが可能となる（図２のＳ30）。
このユーザがそのまま作業を完了してログアウトした場合には、図６(e)に示すように、ログイン終了日時にログアウトの日時が記録され、Webサーバ12のメモリからセッション関連データが消去される（Ｓ34、Ｓ36）。
これに対し、再度ログアウトによるセッション中断処理が実行されると、Ｓ38〜Ｓ66の処理が繰り返されることとなる。
【００２９】
なお、Ｓ50、Ｓ51、Ｓ56、Ｓ58、Ｓ62においてNOと判定された場合、タイムアウト後の再接続不可を示すメッセージがWebサーバ12から送信され、クライアント端末18の画面に表示される（Ｓ70）。
この場合ユーザは、Webサーバ12のトップページに戻り、最初からログインし直す必要が生じる。
【００３０】
ユーザデータベース32にエンドユーザの属性や権限に対応した権限識別コードを設定しておき、この識別コードに応じてタイムアウト後の再接続可能時間を制御することもできる。
例えば、自社のユーザについては８時間の再接続可能時間を認める一方、他社のユーザについては再接続可能時間を20分に制限することが該当する。
【００３１】
セキュリティを高めるため、タイムアウト時にクライアント端末18のIPアドレスをセッション管理レコードに記録しておき、再接続要求時のIPアドレスとタイムアウト時のIPアドレスを比較し、両者が一致する場合のみ再接続を認めるようにシステムを運用することもできる。
【００３２】
このシステム10の場合、タイムアウト時の要退避データや再接続可能時間についてサイト領域22のアプリケーションプログラムにコーディングする必要がなく、サイト設定テーブル28に定義しておけば済むため、コーディング作業の簡素化が図れるのはもちろん、設定変更を容易化できる利点がある。
【図面の簡単な説明】
【００３３】
【図１】この発明に係るセッション管理システムの全体構成図である。
【図２】このシステムにおける処理手順を示すフローチャートである。
【図３】このシステムにおける処理手順を示すフローチャートである。
【図４】セッション管理レコードの登録例を示す説明図である。
【図５】セッション管理レコードの登録例を示す説明図である。
【図６】セッション管理レコードの登録例を示す説明図である。
【符号の説明】
【００３４】
10 セッション管理システム
12 Webサーバ
14 DBサーバ
16 イントラネット
18 クライアント端末
20 セッション管理プログラム
22 サイト領域
24 データベース管理プログラム
26 セッション管理テーブル
28 サイト設定テーブル
30 退避データ記憶部
32 ユーザデータベース
【図１】
2007272471.tif 000003
【図２】
2007272471.tif 000004
【図３】
2007272471.tif 000005
【図４】
2007272471.tif 000006
【図５】
2007272471.tif 000007
【図６】
2007272471.tif 000008