(57)【要約】【課題】  Ｗｅｂサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供する。【解決手段】Ｗｅｂサーバ１１２は、クライアント端末１１８からの接続要求時に、セッション識別コードを含むセッション管理レコードを生成して、セッション識別コードをクライアント端末１１８に送信し、所定時間通信が発生しない場合、そのセッションの再開に必要なデータをメモリから抽出し、セッション管理レコードに退避先情報を追加して記憶させ、退避させたセッションに関するデータをメモリから消去し、クライアント端末１１８からセッション識別コードを有する接続要求が送信された場合に、そのセッション識別コードに関連付けられた、セッションの再開に必要なデータを特定し、特定されたセッション情報をメモリに復元するセッション管理システム１００とする。【選択図】図１
2012203618.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のクライアント端末と接続されるサーバを有するセッション管理システムであって、
前記サーバが、
前記クライアント端末のログインに際し、セッション識別コードを含むセッション管理レコードを生成してセッション管理テーブルに記録すると共に、前記セッション識別コードを前記クライアント端末に送信するセッション情報生成部と、
前記クライアント端末に前記セッション識別コードを送信後、前記クライアント端末と所定時間通信が発生しない場合に、メモリに記録されているそのセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報を前記セッション管理レコードに関連付けて記録するセッション情報退避処理部と、
前記セッション情報退避処理部により前記データを退避させた後に前記セッションに関するデータを前記メモリから消去するセッション情報消去部と、
前記クライアント端末から前記セッション識別コードを有する接続要求が送信された場合に、前記セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、
前記セッション関連情報特定部により特定された前記退避先情報を参照して、そのセッションの再開に必要なデータを前記メモリに復元するセッション情報復元部と、
を有することを特徴とするセッション管理システム。
【請求項２】
請求項１に記載のセッション管理システムであって、
前記クライアント端末からの接続要求を複数の前記サーバのいずれかへ割り振る制御をするロードバランサを有し、
前記複数のサーバのうち、所定の運転停止事由が発生した第１のサーバの前記セッション情報退避処理部は、
前記メモリに記録されているセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報を前記セッション管理レコードに関連付けて記録し、
前記複数のサーバのうち、前記第１のサーバの予備として動作する第２のサーバは、
前記ロードバランサの制御により前記第１のサーバが有するセッション識別コードによって通信を行っていた前記クライアント端末から処理要求が送信された場合に、前記セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、
前記セッション関連情報特定部により特定された前記退避先情報を参照して、そのセッションの再開に必要なデータを前記メモリに復元するセッション情報復元部と、
を有することを特徴とするセッション管理システム。
【請求項３】
請求項２に記載のセッション管理システムであって、
前記第１のサーバは、
前記第１のサーバが提供するサービスにアクセスしてきたユーザの所在地を示す情報、もしくは所在地を推測できる情報が少なくとも記憶されているデータベースを参照し、その所在地毎に区分けに従って、前記第１のサーバおよび前記第２のサーバのそれぞれに割り振りされたユーザのセッションリスト情報を生成して前記ロードバランサへ送信すると共に、前記ロードバランサに対して、その生成されたセッションリスト情報に従って、現在のセッションの再割り振りを行わせる、
ことを特徴とするセッション管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、セッション管理システムに関する。
【背景技術】
【０００２】
ＨＴＴＰ（HyperText Transfer
Protocol）には、Ｗｅｂサーバとクライアント端末の間のセッションを維持するための仕組みが用意されていない。そのため、ＷｅｂサーバがＷｅｂアプリケーションを用いてクライアント端末に複雑なＷｅｂサービスを提供する際には、セッション管理のための仕組みを設ける必要がある。一般的なＷｅｂサーバにおけるセッション管理の仕組みとして、以下の処理手順が知られている（非特許文献１参照）。すなわち、Ｗｅｂサーバは、クライアント端末のＷｅｂブラウザから最初の接続があった際に、一意となるセッションＩＤ情報を生成し、クライアント端末のＷｅｂブラウザに送信する。Ｗｅｂブラウザは、セッションＩＤ情報をクッキー（Ｃｏｏｋｉｅ）情報として記憶する。そして、Ｗｅｂブラウザは、Ｗｅｂサーバと通信する際のＩＰパケットにこのセッションＩＤ情報を含めることで、Ｗｅｂサーバ側でＷｅｂブラウザを一意に特定することが可能となる。このような処理手順を踏むことで、継続的なＷｅｂサービスの提供が可能となる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】セッションタイムアウト［平成２２年１２月９日検索］URL:http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a05_03.html
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のように、Ｗｅｂサーバはクッキー情報を用いることにより、通信相手となるＷｅｂブラウザを一意に特定することができる。しかし、Ｗｅｂサーバは、クライアント端末を利用するユーザがＷｅｂサービスにログインしてからログアウトすることもなく、Ｗｅｂブラウザとの間で所定時間通信が発生しない場合、ユーザがそのＷｅｂサービスの利用を打ち切ったのか、あるいは利用中であるが一時的に作業を中断したのかを確認することができない。したがって、Ｗｅｂサーバは、このような状態を放置するとＷｅｂサーバのメモリ資源を浪費することになるため、所定時間（たとえば、３０分など）が経過した時点でこのセッションについて自動的にタイムアウトと認定し、Ｗｅｂサーバのメモリ上に展開されたこのセッションに関連するデータを強制的に消去する。
【０００５】
しかし、一時的に作業を中断しただけで、Ｗｅｂサービスを継続して利用したいと考えるユーザには、Ｗｅｂサイトのトップページに戻って、ログイン処理を再度繰り返すことが要求される。つまり、従来のＷｅｂサーバが行う上述したセッション管理方法では、Ｗｅｂサーバにおけるメモリ資源の利用効率は向上する一方、一時的に作業を中断しただけのユーザの利便性は損なわれるという問題がある。
【０００６】
また、Ｗｅｂサーバの定期的なメンテナンス、またはプログラムの入れ替えなどのために、Ｗｅｂサーバの運転を停止せざるを得ない場合、運用停止期間を短縮化するため、停止するＷｅｂサーバと同じ機能を備えた予備のＷｅｂサーバを準備することが行われている。このような場合、従来のＷｅｂサーバが行う上述したセッション管理方法では、各クライアント端末とのセッションを維持したまま、停止するＷｅｂサーバと予備のＷｅｂサーバとを交替させることはできない。したがって、その停止期間前後に跨ってＷｅｂサービスを利用したいと考えているユーザには、停止するＷｅｂサーバとのセッションを一旦終了した後、予備のＷｅｂサーバに切替えられた後にログイン処理を再度繰り返すことが要求される。つまり、従来のＷｅｂサーバが行う上述したセッション管理方法では、Ｗｅｂサービスの停止期間を短縮化できる一方、この切替え前後において利用していたユーザ、または利用したいと考えているユーザの利便性は損なわれるという問題がある。
【０００７】
この発明は、上述した問題点を少なくともいずれか１つを解決するためになされたものであって、Ｗｅｂサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明に係るセッション管理システムは、ネットワークを介して複数のクライアント端末と接続されるサーバを有するセッション管理システムであって、サーバが、クライアント端末のログインに際し、セッション識別コードを含むセッション管理レコードを生成してセッション管理テーブルに記録すると共に、セッション識別コードをクライアント端末に送信するセッション情報生成部と、クライアント端末にセッション識別コードを送信後、クライアント端末と所定時間通信が発生しない場合に、メモリに記録されているそのセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報をセッション管理レコードに関連付けて記録するセッション情報退避処理部と、セッション情報退避処理部によりデータを退避させた後にセッションに関するデータをメモリから消去するセッション情報消去部と、クライアント端末からセッション識別コードを有する接続要求が送信された場合に、セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、セッション関連情報特定部により特定された退避先情報を参照して、そのセッションの再開に必要なデータをメモリに復元するセッション情報復元部とを有する。
【０００９】
また、本発明に係るセッション管理システムは、上述した構成に加えて、クライアント端末からの接続要求を複数のサーバのいずれかへ割り振る制御をするロードバランサを有し、複数のサーバのうち、所定の運転停止事由が発生した第１のサーバのセッション情報退避処理部は、メモリに記録されているセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報をセッション管理レコードに関連付けて記録し、複数のサーバのうち、第１のサーバの予備として動作する第２のサーバは、ロードバランサの制御により第１のサーバが有するセッション識別コードによって通信を行っていたクライアント端末から処理要求が送信された場合に、セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、セッション関連情報特定部により特定された退避先情報を参照して、そのセッションの再開に必要なデータをメモリに復元するセッション情報復元部とを有することが好ましい。
【００１０】
また、本発明に係るセッション管理システムは、上述した構成に加えて、第１のサーバは、第１のサーバが提供するサービスにアクセスしてきたユーザの所在地を示す情報、もしくは所在地を推測できる情報が少なくとも記憶されているデータベースを参照し、その所在地毎に区分けに従って、第１のサーバおよび第２のサーバのそれぞれに割り振りされたユーザのセッションリスト情報を生成してロードバランサへ送信すると共に、ロードバランサに対して、その生成されたセッションリスト情報に従って、現在のセッションの再割り振りを行わせることが好ましい。
【発明の効果】
【００１１】
本発明によると、Ｗｅｂサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１に係るセッション管理システムの全体構成図である。
【図２】図１に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図３】図１に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図４】図１に示すＤＢサーバのセッション管理テーブルに登録されるセッション管理レコードの一例を示す図であり、（ａ）はログインの際に登録される情報例であり、（ｂ）はログイン終了時に登録される情報例を示す図である。
【図５】図１に示すＤＢサーバのセッション管理テーブルに登録されるセッション管理レコードの一例を示す図であり、（ａ）はログインの際に登録される情報例であり、（ｃ）はクライアント端末との通信が所定時間内に一度も発生しない場合に登録される情報例を示す図である。
【図６】セッション管理レコードの登録例を示す説明図である。
【図７】本発明の実施例２に係るセッション管理システムの全体構成図である。
【図８】図２に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図９】図２に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図１０】セッション管理レコードの登録例を示す説明図である。
【図１１】本発明の実施例３に係るセッション管理システムの全体構成図である。
【発明を実施するための形態】
【００１３】
以下、本発明のセッション管理システムの一実施の形態として、実施例１に係るセッション管理システム１００、実施例２に係るセッション管理システム２００、および実施例３に係るセッション管理システム３００ついて図面を参照してそれぞれ説明するが、本発明は以下の実施例１，実施例２および実施例３に限定されるものではない。
【実施例１】
【００１４】
図１は、本発明の実施例１に係るセッション管理システム１００の全体構成図である。このセッション管理システム１００は、Ｗｅｂサーバ１１２と、セッション管理用のＤＢサーバ１１４とを備えている。Ｗｅｂサーバ１１２とＤＢサーバ１１４と間は、ＬＡＮ（Local Area Network）によって接続されている。また、Ｗｅｂサーバ１１２に対しては、イントラネット、またはインターネットなどのネットワーク１１６を介して多数のクライアント端末１１８が接続されている。クライアント端末１１８は、ＰＣなどのコンピュータよりなり、ＯＳ（Operating System）およびＷｅｂブラウザプログラムがセットアップされている。
【００１５】
Ｗｅｂサーバ１１２の不図示の記憶部（たとえば、ハードディスクなど）には、ＯＳ、Ｗｅｂサーバ用プログラムの他に、このセッション管理システム１００専用のセッション管理プログラム１２０がセットアップされている。Ｗｅｂサーバ１１２のＣＰＵ（Central Processing Unit）が、ＯＳおよびこれらのプログラムをＲＡＭ（Random Access Memory）などのメモリに読み出して演算処理することにより、請求項のセッション情報生成部、セッション情報退避処理部、セッション情報消去部およびセッション情報復元部の各機能が実現される。なお、これらの機能により実現される処理については後述する。また、Ｗｅｂサーバ１１２の記憶部には、サイト領域１２２が設けられている。このサイト領域１２２には特定のサービスを提供するための不図示のアプリケーションプログラムおよびデータベースが記憶されている。なお、Ｗｅｂサーバ１１２の記憶部は、Ｗｅｂサーバ１１２と直接接続される外付けのハードディスク、または同一ＬＡＮ内に接続されているＮＡＳ（Network Attached Storage）などの外部記憶装置などであってもよい。
【００１６】
セッション管理用のＤＢサーバ１１４は、データベース管理プログラム１２４と、セッション管理テーブル１２６と、サイト設定テーブル１２８と、退避データ記憶部１３０と、ユーザデータベース１３２とを備えている。サイト設定テーブル１２８には、タイムアウト後の再接続可能時間、タイムアウト時にメモリから退避データ記憶部１３０に退避すべきデータの識別情報などが定義されている。ユーザデータベース１３２には、各ユーザのＩＤ、パスワード、氏名、所属企業名、および企業ＩＤなどの情報が記憶されている。
【００１７】
図２および図３は、図１に示すセッション管理システム１００における処理手順を示すフローチャートである。以下、図２および図３のフローチャートと、図４、図５および図６に示すデータ登録例とを参照しながら、このセッション管理システム１００における処理手順を説明する。
【００１８】
まず、Ｗｅｂサーバ１１２が、クライアント端末１１８からのログイン要求を受信すると（Ｓ１１０）、送信されたＩＤおよびパスワードに基づいてユーザデータベース１３２をチェックし、認証処理を実行する（Ｓ１１２）。ここで認証処理がＮＧの場合（Ｓ１１２でＮＯ）には、Ｗｅｂサーバ１１２からクライアント端末１１８にサービス利用不可メッセージが送信され、クライアント端末１１８の画面に表示される（Ｓ１１４）。これに対し認証処理がＯＫの場合（Ｓ１１２でＹＥＳ）、Ｗｅｂサーバ１１２から暗号化した認証ＩＤ情報がクライアント端末１１８に送信され、クライアント端末１１８のＷｅｂブラウザが送信された認証ＩＤ情報をクッキー（Ｃｏｏｋｉｅ）情報として保存する（Ｓ１２４）。ここで「認証ＩＤ」とは、Ｗｅｂサーバ１１２によって生成されるセッション識別コードを意味する。
【００１９】
つぎにＷｅｂサーバ１１２は、サイト領域１２２を管理するプログラムにユーザＩＤを渡し、そのサイトへのログイン処理をリクエストすると共に（Ｓ１２６）、セッション管理レコードを生成し、ＤＢサーバ１１４のセッション管理テーブル１２６に登録する（Ｓ１２８）。
【００２０】
図４は、図１に示すＤＢサーバ１１４のセッション管理テーブル１２６に登録されるセッション管理レコードの一例を示す図であり、（ａ）はログインの際に登録される情報例であり、（ｂ）はログアウトの際に登録される情報例を示す図である。図４に示すように、このセッション管理レコードは、ログイン日時、ログ区分、ログアウト日時、認証ＩＤ、および退避データ記憶先のデータ項目を備えている。セッション開始直後には、図４（ａ）に示すように、ログイン日時の項目にセッション開始の日時情報が記録されると共に、ログ区分の項目に「新規」が記録される。また、認証ＩＤの項目には、Ｓ１２４で発行された認証ＩＤが記録される。
【００２１】
その後、ログインしたＷｅｂサイトを構成するＷｅｂファイルが、Ｗｅｂサーバ１１２からクライアント端末１１８に送信され、固有の画面を通じた特定のサービスがサイト領域１２２を通じてユーザに提供される（Ｓ１３０）。ユーザの作業が完了し、クライアント端末１１８からログアウトのリクエストが送信されると（Ｓ１３２）、図４（ｂ）に示すように、Ｗｅｂサーバ１１２は、セッション管理レコードのログアウト日時項目に現在日時を記録すると同時に（Ｓ１３４）、メモリからそのセッションに係る全データを消去する（Ｓ１３６）。
【００２２】
これに対し、Ｗｅｂサーバ１１２は、Ｗｅｂサービスの提供途中においてクライアント端末１１８との通信が所定時間（たとえば１０分など）内に一度も発生しない場合（図３のＳ１３８）には、タイムアウトと判定してセッションの中断処理を実行する。
【００２３】
図５は、図１に示すＤＢサーバ１１４のセッション管理テーブル１２６に登録されるセッション管理レコードの一例を示す図であり、（ａ）はログインの際に登録される情報例であり、（ｃ）はクライアント端末１１８との通信が所定時間内に一度も発生しない場合に登録される情報例を示す図である。
【００２４】
Ｗｅｂサーバ１１２は、サイト設定テーブル１２８を参照し、そのログインしているＷｅｂサイトの設定情報を取得する（Ｓ１４０）。具体的には、そのログインしているＷｅｂサイトにおけるユーザの利用画面を後で再現するために保存しておくべきデータの種類を特定する。たとえば、入力フィールド情報、検索条件入力フィールド情報、および選択肢フィールド情報などを特定するＩＤが該当する。
【００２５】
つぎにＷｅｂサーバ１１２は、Ｓ１４０で取得した設定情報に基づいて、メモリ上から要退避データ（たとえば、入力中のテキストや選択データ、ユーザＩＤ、画面ＩＤなど）を抽出し、ＤＢサーバ１１４の退避データ記憶部１３０にこれらを記憶させて、メモリ上から退避させる（Ｓ１４２）。
【００２６】
そして、Ｗｅｂサーバ１１２は、図５（ｃ）に示すように、その退避先のパス名をセッション管理レコードの退避データ記憶先項目に記録する（Ｓ１４４）。この際、ログアウト日時項目にもタイムアウトの日時が記録される。つぎにＷｅｂサーバ１１２は、メモリ上からそのセッションに係る全データを消去する（Ｓ１４６）。
【００２７】
その後、ユーザが操作を再開し、クライアント端末１１８から何らかのリクエストが送信された場合について説明する。図６は、図１に示すＤＢサーバ１１４のセッション管理テーブル１２６に登録されるセッション管理レコードの一例を示す図であり、（ｃ）はクライアント端末１１８との通信が所定時間内に一度も発生しない場合に登録される情報例であり、（ｄ）は再接続により新たな管理レコードが追加された情報例であり、（ｅ）は、ログイン終了時に登録される情報例を示す図である。
【００２８】
Ｗｅｂサーバ１１２は、クライアント端末１１８から何らかのリクエストを受信すると（Ｓ１４８）、そのクライアント端末１１８から送信されてきたＩＰデータに、認証ＩＤ情報が記述されているか否か（Ｓ１５０）、およびＤＢサーバ１１４のセッション管理テーブル１２６にその認証ＩＤに対応するセッション管理レコードが存在するか否かをチェックする（Ｓ１５１）。ここでクライアント端末１１８から送信されてきたＩＰデータに認証ＩＤ情報が記述されており、かつ対応のセッション管理レコードも存在する場合、Ｗｅｂサーバ１１２はサイト設定テーブル１２８を参照し、そのサイトの再接続可能時間を取得すると共に（Ｓ１５２）、認証ＩＤ情報をキーとしてセッション管理テーブル１２６を参照し、ログアウト日時（タイムアウト日時）情報を取得する（Ｓ１５４）。
【００２９】
つぎにＷｅｂサーバ１１２は、このタイムアウト日時情報から現在までの経過時間が再接続可能時間内か否かを判定し（Ｓ１５６）、ＹＥＳであればセッション管理レコードを参照し、セッションの再開に必要なデータが登録されているか否かを判定する（Ｓ１５８）。ここでＹＥＳと判定された場合、Ｗｅｂサーバ１１２は退避データ記憶部１３０からそのセッションの再現に必要なデータを取得すると共に、サイト領域１２２からサービス提供画面を生成するための基本となるデータを取得し、セッション情報を復元する（Ｓ１６０）。
【００３０】
つぎにＷｅｂサーバ１１２は、退避データ記憶部１３０から抽出したデータ中のユーザＩＤに基づいてユーザデータベース１３２をチェックし、そのユーザがサイト領域１２２のサービスを利用する権限を有するか否かを再認証する（Ｓ１６２）。ここで利用権限ありと判定されると、Ｗｅｂサーバ１１２は復元したセッション情報をメモリにセットする（Ｓ１６４）。
【００３１】
Ｗｅｂサーバ１１２は、図６（ｄ）に示すように、セッション管理テーブル１２６に新たな管理レコードを追加する（Ｓ１６６）。このセッション管理レコードの認証ＩＤ項目には、タイムアウト前に使われていた認証ＩＤがそのまま引き継がれることとなるが、ログ区分項目には「再接続」が記録される。また、ログイン日時項目には、再接続開始時の日時が記録される。
【００３２】
以上の結果、Ｗｅｂサーバ１１２によってタイムアウトによるセッション中断処理が一旦なされても、メモリ上にタイムアウト直前のセッション情報が再現され、入力途中のテキスト、または選択肢へのチェックまで忠実に再現された画面がクライアント端末１１８に送信される。そのため、ユーザは再ログインすることなく作業を再開することが可能となる（図２のＳ１３０）。なお、このユーザがそのまま作業を完了してログアウトした場合には、図６（ｅ）に示すように、ログアウト日時の項目にログアウト日時が記録され、Ｗｅｂサーバ１１２のメモリからセッション関連データが消去される（Ｓ１３４、Ｓ１３６）。これに対し、再度ログアウトによるセッション中断処理が実行されると、Ｓ１３８〜Ｓ１６６の処理が繰り返されることとなる。
【００３３】
なお、Ｓ１５０，Ｓ１５１，Ｓ１５６，Ｓ１５８およびＳ１６２においてＮＯと判定された場合、タイムアウト後の再接続不可を示すメッセージがＷｅｂサーバ１１２からクライアント端末１１８へ送信され、そのクライアント端末１１８の画面に表示される（Ｓ１７０）。この場合ユーザは、Ｗｅｂサーバ１１２のトップページに戻り、最初からログインし直す必要が生じる。
【００３４】
ユーザデータベース１３２にユーザの属性、または権限に対応した権限識別コードを設定しておき、この識別コードに応じてタイムアウト後の再接続可能時間を制御することもできる。たとえば、自社のユーザについては８時間の再接続可能時間を認める一方、他社のユーザについては再接続可能時間を２０分に制限することが該当する。
【００３５】
セキュリティを高めるため、タイムアウト時にクライアント端末１１８のＩＰアドレスをセッション管理レコードに記録しておき、再接続要求時のＩＰアドレスとタイムアウト時のＩＰアドレスを比較し、両者が一致する場合のみ再接続を認めるようにシステムを運用することもできる。
【００３６】
このセッション管理システム１００の場合、タイムアウト時の要退避データ、または再接続可能時間についてサイト領域１２２のアプリケーションプログラムをコーディングする必要がなく、サイト設定テーブル１２８に定義しておけば済むため、コーディング作業の簡素化が図れると共に、設定変更を容易化できる利点がある。また、このセッション管理システム１００の場合、一時的に作業を中断しただけで、Ｗｅｂサービスを継続して利用したいと考えるユーザが、Ｗｅｂサイトのトップページに戻って、ログイン処理を再度繰り返すことが不要であり、従来のＷｅｂサーバが行うセッション管理方法と比較して、Ｗｅｂサーバにおけるメモリ資源の利用効率を向上させると共に、一時的に作業を中断しただけのユーザの利便性を損なうことがないという利点もある。
【実施例２】
【００３７】
図７は、本発明の実施例２に係るセッション管理システム２００の全体構成図である。このセッション管理システム２００は、第１のＷｅｂサーバ２１２と、第２のＷｅｂサーバ２１４と、セッション管理用のＤＢサーバ２１６と、第１のＷｅｂサーバ２１２および第２のＷｅｂサーバ２１４の切替えを制御する負荷分散装置であるロードバランサ２１８とを備えている。
【００３８】
このセッション管理システム２００では、実施例１に示した構成と異なり、複数のＷｅｂサーバ２１２，２１４を有し、各装置に対するアクセスの割り振りを行うために、いわゆるＳＬＢ（Server Load Balancing）を採用している。図７に示すロードバランサ２１８は、クライアント端末２２２側からは一つのＷｅｂサーバであるかのように見え、クライアント端末２２２からのリクエストの受信を一手に引き受ける。そして、ロードバランサ２１８はリクエストを受信する都度、複数のＷｅｂサーバ２１２，２１４の中から一つを選択し、選択したサーバ装置にリクエストを転送する。転送先となるＷｅｂサーバ２１２，２１４の選択方法としては、たとえば、ラウンドロビン方式で選択する方法、ランダムに選択する方法、クライアント端末２２２とのセッション数が最も少ない装置を選択する方法、Ｗｅｂサーバ２１２，２１４の負荷状況を監視して、より負荷が少ない装置を選択する方法、およびＷｅｂサーバ２１２，２１４の定期的なメンテナンス、またはプログラムの入れ替えなどにより強制的にいずれか１つを選択する方法などがある。なお、本実施例のＳＬＢは、ロードバランサ２１８と複数のＷｅｂサーバ２１２，２１４とにより構成されるが、ロードバランサ２１８と３以上のサーバ装置により構成してももちろんよい。
【００３９】
ロードバランサ２１８とＷｅｂサーバ２１２，２１４と間、およびＷｅｂサーバ２１２，２１４とＤＢサーバ２１６と間はＬＡＮによって接続されている。また、Ｗｅｂサーバ２１２，２１４に対しては、イントラネットやインターネットなどのネットワーク２２０およびロードバランサ２１８を介して多数のクライアント端末２２２が接続されている。クライアント端末２２２は、ＰＣなどのコンピュータよりなり、ＯＳおよびＷｅｂブラウザプログラムがセットアップされている。
【００４０】
Ｗｅｂサーバ２１２，２１４の不図示の記憶部（たとえば、ハードディスク）には、ＯＳ、Ｗｅｂサーバ用プログラムの他に、セッション管理システム２００専用のセッション管理プログラム２２４がセットアップされている。Ｗｅｂサーバ２１２，２１４のＣＰＵがＯＳおよびこれらのプログラムをＲＡＭに読み出して演算処理することにより、請求項のセッション情報生成部、セッション情報退避処理部、セッション情報消去部およびセッション情報復元部の各機能が実現される。なお、これらの機能により実現される処理については後述する。また、Ｗｅｂサーバ２１２，２１４の記憶部には、サイト領域２２６がそれぞれ設けられている。これらのサイト領域２２６には特定のサービスを提供するためのアプリケーションプログラムおよびデータベースが記憶されている。なお、Ｗｅｂサーバ２１２，２１４の記憶部は、Ｗｅｂサーバ２１２，２１４と直接接続される外付けのハードディスク、または同一ＬＡＮ内に接続されているＮＡＳ（Network Attached Storage）などの外部記憶装置などであってもよい。
【００４１】
セッション管理用のＤＢサーバ２１６は、データベース管理プログラム２２８と、セッション管理テーブル２３０と、サイト設定テーブル２３２と、退避データ記憶部２３４と、ユーザデータベース２３６を備えている。サイト設定テーブル２３２には、Ｗｅｂサーバの切替え時に第１のＷｅｂサーバ２１２のメモリからＤＢサーバ２１６の退避データ記憶部２３４に退避すべきデータの識別情報などが記憶されている。ユーザデータベース２３６には、各ユーザのＩＤ、パスワード、氏名、所属企業名、企業ＩＤなどの情報が記憶されている。
【００４２】
図８および図９は、図２に示すセッション管理システム２００における処理手順を示すフローチャートである。以下、図８および図９のフローチャートと、図１０に示すデータ登録例とを参照しながら、このセッション管理システム２００における処理手順を説明する。なお、以下の処理の前提として、第１のＷｅｂサーバ２１２について定期的なメンテナンス、またはプログラムの入れ替えなどにより停止すべき事情があり、かつ、第２のＷｅｂサーバ２１４は、第１のＷｅｂサーバ２１２の予備のサーバとして設定がなされている。
【００４３】
まず、第１のＷｅｂサーバ２１２がクライアント端末２２２からのログイン要求を受信すると（Ｓ２１０）、送信されたＩＤおよびパスワードに基づいてユーザデータベース２３６をチェックし、認証処理を実行する（Ｓ２１２）。ここで認証処理がＮＧの場合（Ｓ２１２でＮＯ）には、第１のＷｅｂサーバ２１２からクライアント端末２２２にサービス利用不可メッセージが送信され、画面に表示される（Ｓ２１４）。これに対し認証OKの場合、第１のＷｅｂサーバ２１２は暗号化した認証ＩＤをクライアント端末２２２に送信し、クッキー（Ｃｏｏｋｉｅ）に保存させる（Ｓ２２２）。ここで「認証ＩＤ」とは、第１のＷｅｂサーバ２１２によって生成されるセッション識別コードを意味する。
【００４４】
つぎに第１のＷｅｂサーバ２１２は、サイト領域２２６を管理するプログラムにユーザＩＤを渡し、そのサイトへのログイン処理をリクエストすると共に（Ｓ２２４）、セッション管理レコードを生成し、ＤＢサーバ２１６のセッション管理テーブル２３０に登録する（Ｓ２２６）。
【００４５】
図１０は、図７に示すＤＢサーバ２１６のセッション管理テーブル２３０に登録されるセッション管理レコードの一例を示す図であり、（ａ）は、ログインの際に登録される情報例であり、（ｂ）は、セッションの途中で、第１のＷｅｂサーバ２１２についてメンテナンス時刻の到来、障害の発生といった運転停止事由が発生した場合に登録される情報例であり、（ｃ）は、第１のＷｅｂサーバ２１２の停止後、第２のＷｅｂサーバ２１４によりセッション管理テーブル２３０に新たに追加される情報例であり、（ｄ）は、情報例を示す図である。
【００４６】
図１０に示すように、このセッション管理レコードは、ログイン日時、ログ区分、ログアウト日時、認証ＩＤ、退避データ記憶先のデータ項目を備えている。セッション開始直後には、図１０（ａ）に示すように、ログイン日時の項目にセッション開始の日時情報が記録されると共に、ログ区分項目に「新規」が記録される。また、認証ＩＤの項目には、Ｓ１２２で発行された認証ＩＤが記録される。
【００４７】
その後、ログインしたサイトのＷｅｂファイルが第１のＷｅｂサーバ２１２からクライアント端末２２２に送信され、固有の画面を通じた特定のサービスが第１のＷｅｂサーバ２１２のサイト領域２２６を通じてユーザに提供される（Ｓ２２８）。
【００４８】
このセッションの途中で、第１のＷｅｂサーバ２１２についてメンテナンス時刻の到来や障害の発生といった運転停止事由が発生すると（Ｓ２３０）、まず第１のＷｅｂサーバ２１２はサイト設定テーブル２３２を参照し、そのサイトの設定情報を取得する（Ｓ２３２）。具体的には、そのサイトにおけるユーザの利用画面を後で再現するために保存しておくべきデータの種類を特定する。たとえば、テキスト入力フィールドや、検索条件入力フィールド、選択肢フィールドを特定するＩＤや、ユーザＩＤ、画面ＩＤなどが該当する。
【００４９】
つぎに第１のＷｅｂサーバ２１２は、Ｓ２３２で取得した設定情報に基づいて、メモリ上から要退避データ（入力中のテキストや選択データ、ユーザＩＤ、画面ＩＤなど）を抽出し、ＤＢサーバ２１６の退避データ記憶部２３４に退避させる（Ｓ２３４）。つぎに第１のＷｅｂサーバ２１２は、図１０（ｂ）に示すように、その退避先のパス名をセッション管理レコードの退避データ記憶先項目に記録する（Ｓ２３６）。この際、ログアウト日時項目にもサーバ停止の日時が記録される。つぎに第１のＷｅｂサーバ２１２は、メモリ上からそのセッションに係る全データを消去する（Ｓ２３８）。このタイミングで、ロードバランサ２１８によって第１のＷｅｂサーバ２１２から第２のＷｅｂサーバ２１４への切替えがなされる（Ｓ２４０）。これ以降、クライアント端末２２２からのリクエストは第２のＷｅｂサーバ２１４に転送されることとなり、同時に第１のＷｅｂサーバ２１２が停止される。
【００５０】
ここで、クライアント端末２２２から何らかのリクエストを受信した第２のＷｅｂサーバ２１４は（Ｓ２４２）、クライアント端末２２２のクッキーから認証ＩＤを取得する（Ｓ２４４）。つぎに第２のＷｅｂサーバ２１４は、認証ＩＤをキーにセッション管理テーブル２３０のセッション管理レコードを特定し、退避データの記憶先を取得する（Ｓ２４６）。つぎに第２のＷｅｂサーバ２１４は、退避データ記憶部２３４からそのセッションの再現に必要なデータを取得すると共に、サイト領域２２６からサービス提供画面を生成するための基本となるデータを取得し、セッション情報を復元する（Ｓ２４８）。つぎに第２のＷｅｂサーバ２１４は、この復元したセッション情報をメモリにセットする（Ｓ２５０）。
【００５１】
同時に第２のＷｅｂサーバ２１４は、図１０（ｃ）に示すように、セッション管理テーブル２３０に新たな管理レコードを追加する（Ｓ２５２）。このセッション管理レコードの認証ＩＤ項目には、サーバ切替え前に使われていた認証ＩＤがそのまま引き継がれることとなるが、ログ区分項目には「引継」が記録される。また、ログイン日時項目には、引継開始時の日時が記録される。
【００５２】
以上の結果、セッションの途中でＷｅｂサーバの交替が発生した場合であっても、セッションを引き継いだ第２のＷｅｂサーバ２１４のメモリ上に第１のＷｅｂサーバ２１２が保持していたセッション情報が再現され、入力途中のテキストや選択肢へのチェックまで忠実に再現された画面がクライアント端末２２２に送信される。この結果ユーザは、Ｗｅｂサーバの交替を意識することなく、また再ログインすることもなく、作業を継続することが可能となる（Ｓ２５４）。また、このユーザがそのまま作業を完了してログアウトした場合には（Ｓ２５６）、図１０（ｄ）に示すように、ログアウト日時の項目にログアウトの日時が記録され（Ｓ２５８）、第２のＷｅｂサーバ２１４のメモリからセッション関連データが消去される（Ｓ２６０）。
【００５３】
このセッション管理システム２００の場合、サイト領域２２６のアプリケーションプログラムにおいて要退避データの種類を規定するコーディングをする必要がない。また、このセッション管理システム２００の場合、サーバ交替時における要退避データの種類をＤＢサーバ２１６のサイト設定テーブル２３２に定義しておくだけで済むため、コーディング作業の簡素化が図れると共に、設定変更を容易化できる利点がある。また、このセッション管理システム２００の場合、サーバの交代時前後に跨ってＷｅｂサービスを利用したいと考えているユーザには、停止するＷｅｂサーバとのセッションを一旦終了した後、予備のＷｅｂサーバに切替えられた後にログイン処理を再度繰り返すことが要求されないので、従来のＷｅｂサーバが行う上述したセッション管理方法と比較して、Ｗｅｂサービスの停止期間を短縮化できると共に、この切替え前後において利用していたユーザ、または利用したいと考えているユーザの利便性は損なわれることがないという利点もある。
【実施例３】
【００５４】
図１１は、本発明の実施例３に係るセッション管理システム３００の全体構成図である。なお、実施例３に係るセッション管理システム３００の構成において、実施例２に係るセッション管理システム２００と同様の機能を有する装置、機能に関しては同一の符号を付し、その説明を適宜簡略化または省略する。
【００５５】
このセッション管理システム３００では、Ｗｅｂサーバ２１２，２１４に割り振られたセッションについて、Ｗｅｂサーバ２１２のセッション管理プログラム２２４Ａ、ＤＢサーバ２１６のセッション管理テーブル２３０ＡおよびユーザＤＢ２３６Ａがハードウェアと協働し、セッションを維持しているユーザの所在地毎に区分けされたユーザのセッションリスト情報を生成して、ロードバランサ２１８に送信する。そして、ロードバランサ２１８のコネクション管理プログラム２１８Ａが、その生成されたセッションリスト情報に従って、ロードバランサ自体でクライアント端末とのコネクション（たとえば、ＩＰアドレス、ＳＳＬセッションＩＤ、クッキー情報など）を管理しているコネクション管理テーブル２１８Ｃを更新し、Ｗｅｂサーバ２１２，２１４に対してセッションの再割り振りを行うようにしている。以下、具体的に説明する。
【００５６】
セッション管理プログラム２２４ＡがＣＰＵによってＲＡＭに読み出されることにより実現される制御部（不図示）は、ユーザＤＢ２３６Ａを参照して、現在セッションを維持しているユーザが使用できるＷｅｂサービス情報を取得すると共に、そのユーザの所在地情報、またはそれに相当する情報（たとえば、国籍情報、使用地域情報など）をＤＢサーバ２１６のセッション管理テーブル２３０Ａに登録する。そして、この登録されているＷｅｂサービス情報および所在地情報などに基づいて、Ｗｅｂサーバ２１２に割り振るセッションリスト情報およびＷｅｂサーバ２１４に割り振るセッションリスト情報の生成を行う。
【００５７】
たとえば、Ｗｅｂサーバ２１２が、中国語のＷｅｂページと日本語のＷｅｂページとを提供しており、中国語のＷｅｂページのみ停止する必要がある場合、この停止の影響を受けるユーザは、中国語のＷｅｂページを利用するユーザと推測される。そこで、Ｗｅｂサーバ２１２が、上述したセッション管理テーブル２３０Ａから所在地が中国と関連付けられたユーザを抽出して、抽出されたユーザの使用しているセッション情報については、一部の変更を行う予定のＷｅｂサーバ２１２のセッションリスト情報から除外すると共に、Ｗｅｂサーバ２１４のセッションリスト情報に追加したものを作成するようにする。このようにすることで、中国語のＷｅｂページを使用していないユーザのセッションに関しては、そのままＷｅｂサーバ２１２を継続して使用させることができると共に、Ｗｅｂサーバ２１２が提供しているその他のＷｅｂサービスを停止させる必要がない。なお、上述の例では、セッション管理テーブル２３０Ａを参照して所在地情報が関連付けられたユーザを特定してからセッションを抽出するようにしたが、セッション管理テーブル２３０Ａにこれらの情報を予め登録せずに、ユーザＤＢ２３６Ａを直接参照するようにしてもよい。また、所在地情報のみではなく、セッション開始時における接続元のＩＰアドレス情報（グローバルＩＰアドレス情報またはローカルＩＰアドレス情報）を記録しておき、これらの組み合わせで、所在地の判定をするようにしてもよい。このようにすることで、より確実にユーザがＷｅｂサービスに接続した地点を把握することができる。なお、ユーザの接続時の所在地を判定する方法として、その他にも、国別にＩＰアドレスを管理しているＮＩＲ（National Internet Registry：国別インターネットレジストリ）が公開している各国のＩＰアドレス情報とユーザＤＢ２３６Ａに登録されている所在地情報との組み合わせに基づいて、所在地を確定するようにしてもよい（たとえば、日本国の所在地が登録されているユーザの場合に、そのセッションの接続元のグローバルＩＰアドレスについて、ＪＰＮＩＣ（Japan Network Information Center）により管理、公開されている日本国内で使用されるＩＰアドレスの範囲内にあるか否かにより所在地情報を確定するなど）。なお、上記のように所在地の判定を行う方法以外にも、実際に中国語のＷｅｂページにアクセスしているユーザのセッション情報のみを抽出し、これをもって所在地を推定するようにしてもよい。
【００５８】
このセッション管理システム３００の場合、セッション管理システム２００が奏する効果に加えて、Ｗｅｂサーバ２１２が提供するＷｅｂサービスに含まれる一部の画面のリニューアル、または複数の言語圏に提供されるＷｅｂサービスにおいて、一部の変更を行う際のセッション管理において特に有効なものとなる。
【００５９】
（変形例）
以上、本発明の一実施の形態として実施例１，実施例２および実施例３について説明したが、本発明は、上述した実施例に限定されない。たとえば、上述したセッション管理システム１００においては、１つのＷｅｂサーバ１１２と１つのＤＢサーバ１１４という構成としたが、１つのサーバ装置でこれらの装置が有する機能を構成するようにしてもよい。また、上述したセッション管理システム２００，３００においては、Ｗｅｂサーバ２１２，２１４とＤＢサーバ１１４という構成としたが、Ｗｅｂサーバ２１２，２１４と、ミラーリングされた２つのＤＢサーバ１１４で構成するようにしてもよい。
【００６０】
また、セッション管理システム１００は、一時的に作業を中断しただけのユーザの利便性を向上させることを主な目的とするものであり、セッション管理システム２００，３００は、Ｗｅｂサーバ２１２，２１４の定期的なメンテナンス、またはプログラムの入れ替えなどによりセッションを中断させられるユーザの利便性を向上させることを主な目的とするものであるが、これらいずれか複数の機能を有するセッション管理システムとして構成してももちろんよい。
【００６１】
また、セッション管理システム１００，２００，３００におけるセッション管理テーブル１２６，２３０，２３０Ａにおいて、セッションを維持していたユーザがログアウトした場合にはその関連するデータを消去することとしていたが、これらの履歴データをＷｅｂサーバ１１２，２１２，２１４またはＤＢサーバ１１４，２１６の記憶部に蓄積しておき、次に説明するような活用をしてもよい。たとえば、セッション管理システム１００，２００，３００におけるセッション管理テーブル１２６，２３０，２３０Ａに登録されるセッション管理レコードに基づいて、Ｗｅｂサーバ１１２，２１２，２１４のセッション管理プログラム１２０，２２４，２２４Ａによりユーザのタイムアウトとなる所定時間を調整するようにしてもよい。これにより、履歴データを参照して再接続のセッション管理レコードが散見される場合（たとえば、再接続のセッション管理レコードが全体のセッション管理レコードの１０％以上存在する場合など）、タイムアウト時間を長くして、ＤＢサーバ１１４，２１６からの読み出し回数を減少させることができる。なお、Ｗｅｂサーバ１１２，２１２，２１４のセッション管理プログラム１２０，２２４，２２４Ａによって所定時間を調整する方法としては、所定のタイミング（たとえば、１時間毎、３時間毎など）で変更する、または動的に変更するようにプログラムを設計してもよい。
【００６２】
また、セッション管理テーブル１２６，２３０，２３０Ａに、Ｗｅｂサービスを識別できる情報を登録させる項目を設けて、Ｗｅｂサーバ１１２，２１２，２１４のセッション管理プログラム１２０，２２４によりＷｅｂサービス毎にタイムアウトとなる所定時間を調整できるようにしてもよい。これらの情報を監視することにより、特定のＷｅｂサービスに関して再接続のセッション管理レコードが散見される場合（たとえば、再接続のセッション管理レコードが全体のセッション管理レコードの１０％以上存在する場合など）に、その特定のＷｅｂサービスについては、他のＷｅｂサービスよりタイムアウトとなる所定時間を長くすることが可能となり、再接続時のＤＢサーバ１１４，２１６の退避データ記憶部１３０，２３４からの読み出し回数を減少させることができる。一方、特定のＷｅｂサービスに関してタイムアウトが発生しても再接続されていないことが履歴データから読み取れる場合（たとえば、Ｗｅｂサーバ１１２，２１２，２１４のセッション管理プログラム１２０，２２４によりその特定のＷｅｂサービスにログインしてタイムアウトとなっているセッションであって、再接続のレコードを有しないセッション管理レコードが８０％以上あると判定される場合など）には、その特定のＷｅｂサービスについては、他のＷｅｂサービスよりタイムアウトとなる所定時間を短くすることが可能となり、Ｗｅｂサーバ１１２，２１２，２１４のメモリ資源を有効活用することができる。
【００６３】
また、セッション管理テーブル１２６，２３０の履歴データから、所定期間のセッション数（たとえば、過去３ヶ月、６ヶ月のセッション数など）を複数抽出して、それらを比較することによりＷｅｂサーバ１１２，２１２，２１４の性能（たとえば、メモリ容量、ＣＰＵの処理能力など）の現在の妥当性を評価する、または将来的なセッション数などを予測して、増設するようにしてもよい。これにより、アクセス数の増加によるレスポンス遅延などの不具合を未然に防止することができる。その結果、Ｗｅｂサービスを継続して提供する際にユーザの利便性を損なわずに運用することができため、従来のセッション管理方法と比較すると、ユーザの利便性を向上させることができる。
【００６４】
また、Ｗｅｂサーバ１１２，２１２，２１４、ＤＢサーバ１１４，２１６およびロードバランサ２１８，２１８Ａは、上述したセッション管理システム１００，２００，３００を構成する各装置であり、各装置を発明の一態様として捉えることも可能である。また、上述したセッション管理プログラム１２０，２２４，２２４Ａ、データベース管理プログラム１２４，２２８，およびコネクション管理プログラム２１８Ｂは、コンピュータにインストールされることで上述した各装置を実現するものである。すなわち、これらのプログラムは、上述したセッション管理システム１００，２００，３００を構成する各装置として機能させるためのプログラムであり、各装置が奏する効果と同様の効果を奏することができるため、これを発明の一態様として捉えることも可能である。また、上述した各装置により実行される動作の全てまたは一部は、セッション管理方法としても捉えることが可能であり、そのようなセッション管理方法は、各装置が奏する効果と同様の効果を奏することができるため、これを発明の一態様として捉えることも可能である。
【符号の説明】
【００６５】
１００，２００，３００  セッション管理システム、１１２，２１２，２１４  Ｗｅｂサーバ、１１４，２１６  ＤＢサーバ、１１６，２２０  ネットワーク、１１８，２２２  クライアント端末、１２０，２２４，２２４Ａ  セッション管理プログラム、１２２，２２６  サイト領域、１２４，２２８  データベース管理プログラム、１２６，２３０，２３０Ａ  セッション管理テーブル、１２８，２３２  サイト設定テーブル、１３０，２３４  退避データ記憶部、１３２，２３６，２３６Ａ  ユーザデータベース、２１８，２１８Ａ  ロードバランサ、２１８Ｂ  コネクション管理プログラム、２１８Ｃ  コネクション管理テーブル
【図１】
2012203618.tif 000003
【図２】
2012203618.tif 000004
【図３】
2012203618.tif 000005
【図４】
2012203618.tif 000006
【図５】
2012203618.tif 000007
【図６】
2012203618.tif 000008
【図７】
2012203618.tif 000009
【図８】
2012203618.tif 000010
【図９】
2012203618.tif 000011
【図１０】
2012203618.tif 000012
【図１１】
2012203618.tif 000013