説明

セッション管理システム

【課題】 Webサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供する。
【解決手段】Webサーバ112は、クライアント端末118からの接続要求時に、セッション識別コードを含むセッション管理レコードを生成して、セッション識別コードをクライアント端末118に送信し、所定時間通信が発生しない場合、そのセッションの再開に必要なデータをメモリから抽出し、セッション管理レコードに退避先情報を追加して記憶させ、退避させたセッションに関するデータをメモリから消去し、クライアント端末118からセッション識別コードを有する接続要求が送信された場合に、そのセッション識別コードに関連付けられた、セッションの再開に必要なデータを特定し、特定されたセッション情報をメモリに復元するセッション管理システム100とする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、セッション管理システムに関する。
【背景技術】
【0002】
HTTP(HyperText Transfer
Protocol)には、Webサーバとクライアント端末の間のセッションを維持するための仕組みが用意されていない。そのため、WebサーバがWebアプリケーションを用いてクライアント端末に複雑なWebサービスを提供する際には、セッション管理のための仕組みを設ける必要がある。一般的なWebサーバにおけるセッション管理の仕組みとして、以下の処理手順が知られている(非特許文献1参照)。すなわち、Webサーバは、クライアント端末のWebブラウザから最初の接続があった際に、一意となるセッションID情報を生成し、クライアント端末のWebブラウザに送信する。Webブラウザは、セッションID情報をクッキー(Cookie)情報として記憶する。そして、Webブラウザは、Webサーバと通信する際のIPパケットにこのセッションID情報を含めることで、Webサーバ側でWebブラウザを一意に特定することが可能となる。このような処理手順を踏むことで、継続的なWebサービスの提供が可能となる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】セッションタイムアウト[平成22年12月9日検索]URL:http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a05_03.html
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のように、Webサーバはクッキー情報を用いることにより、通信相手となるWebブラウザを一意に特定することができる。しかし、Webサーバは、クライアント端末を利用するユーザがWebサービスにログインしてからログアウトすることもなく、Webブラウザとの間で所定時間通信が発生しない場合、ユーザがそのWebサービスの利用を打ち切ったのか、あるいは利用中であるが一時的に作業を中断したのかを確認することができない。したがって、Webサーバは、このような状態を放置するとWebサーバのメモリ資源を浪費することになるため、所定時間(たとえば、30分など)が経過した時点でこのセッションについて自動的にタイムアウトと認定し、Webサーバのメモリ上に展開されたこのセッションに関連するデータを強制的に消去する。
【0005】
しかし、一時的に作業を中断しただけで、Webサービスを継続して利用したいと考えるユーザには、Webサイトのトップページに戻って、ログイン処理を再度繰り返すことが要求される。つまり、従来のWebサーバが行う上述したセッション管理方法では、Webサーバにおけるメモリ資源の利用効率は向上する一方、一時的に作業を中断しただけのユーザの利便性は損なわれるという問題がある。
【0006】
また、Webサーバの定期的なメンテナンス、またはプログラムの入れ替えなどのために、Webサーバの運転を停止せざるを得ない場合、運用停止期間を短縮化するため、停止するWebサーバと同じ機能を備えた予備のWebサーバを準備することが行われている。このような場合、従来のWebサーバが行う上述したセッション管理方法では、各クライアント端末とのセッションを維持したまま、停止するWebサーバと予備のWebサーバとを交替させることはできない。したがって、その停止期間前後に跨ってWebサービスを利用したいと考えているユーザには、停止するWebサーバとのセッションを一旦終了した後、予備のWebサーバに切替えられた後にログイン処理を再度繰り返すことが要求される。つまり、従来のWebサーバが行う上述したセッション管理方法では、Webサービスの停止期間を短縮化できる一方、この切替え前後において利用していたユーザ、または利用したいと考えているユーザの利便性は損なわれるという問題がある。
【0007】
この発明は、上述した問題点を少なくともいずれか1つを解決するためになされたものであって、Webサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供することを目的としている。
【課題を解決するための手段】
【0008】
上述の目的を達成するため、本発明に係るセッション管理システムは、ネットワークを介して複数のクライアント端末と接続されるサーバを有するセッション管理システムであって、サーバが、クライアント端末のログインに際し、セッション識別コードを含むセッション管理レコードを生成してセッション管理テーブルに記録すると共に、セッション識別コードをクライアント端末に送信するセッション情報生成部と、クライアント端末にセッション識別コードを送信後、クライアント端末と所定時間通信が発生しない場合に、メモリに記録されているそのセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報をセッション管理レコードに関連付けて記録するセッション情報退避処理部と、セッション情報退避処理部によりデータを退避させた後にセッションに関するデータをメモリから消去するセッション情報消去部と、クライアント端末からセッション識別コードを有する接続要求が送信された場合に、セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、セッション関連情報特定部により特定された退避先情報を参照して、そのセッションの再開に必要なデータをメモリに復元するセッション情報復元部とを有する。
【0009】
また、本発明に係るセッション管理システムは、上述した構成に加えて、クライアント端末からの接続要求を複数のサーバのいずれかへ割り振る制御をするロードバランサを有し、複数のサーバのうち、所定の運転停止事由が発生した第1のサーバのセッション情報退避処理部は、メモリに記録されているセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報をセッション管理レコードに関連付けて記録し、複数のサーバのうち、第1のサーバの予備として動作する第2のサーバは、ロードバランサの制御により第1のサーバが有するセッション識別コードによって通信を行っていたクライアント端末から処理要求が送信された場合に、セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、セッション関連情報特定部により特定された退避先情報を参照して、そのセッションの再開に必要なデータをメモリに復元するセッション情報復元部とを有することが好ましい。
【0010】
また、本発明に係るセッション管理システムは、上述した構成に加えて、第1のサーバは、第1のサーバが提供するサービスにアクセスしてきたユーザの所在地を示す情報、もしくは所在地を推測できる情報が少なくとも記憶されているデータベースを参照し、その所在地毎に区分けに従って、第1のサーバおよび第2のサーバのそれぞれに割り振りされたユーザのセッションリスト情報を生成してロードバランサへ送信すると共に、ロードバランサに対して、その生成されたセッションリスト情報に従って、現在のセッションの再割り振りを行わせることが好ましい。
【発明の効果】
【0011】
本発明によると、Webサービスを継続して提供する際にユーザの利便性を向上させるセッション管理システムを提供することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施例1に係るセッション管理システムの全体構成図である。
【図2】図1に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図3】図1に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図4】図1に示すDBサーバのセッション管理テーブルに登録されるセッション管理レコードの一例を示す図であり、(a)はログインの際に登録される情報例であり、(b)はログイン終了時に登録される情報例を示す図である。
【図5】図1に示すDBサーバのセッション管理テーブルに登録されるセッション管理レコードの一例を示す図であり、(a)はログインの際に登録される情報例であり、(c)はクライアント端末との通信が所定時間内に一度も発生しない場合に登録される情報例を示す図である。
【図6】セッション管理レコードの登録例を示す説明図である。
【図7】本発明の実施例2に係るセッション管理システムの全体構成図である。
【図8】図2に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図9】図2に示すセッション管理システムにおける処理手順を示すフローチャートである。
【図10】セッション管理レコードの登録例を示す説明図である。
【図11】本発明の実施例3に係るセッション管理システムの全体構成図である。
【発明を実施するための形態】
【0013】
以下、本発明のセッション管理システムの一実施の形態として、実施例1に係るセッション管理システム100、実施例2に係るセッション管理システム200、および実施例3に係るセッション管理システム300ついて図面を参照してそれぞれ説明するが、本発明は以下の実施例1,実施例2および実施例3に限定されるものではない。
【実施例1】
【0014】
図1は、本発明の実施例1に係るセッション管理システム100の全体構成図である。このセッション管理システム100は、Webサーバ112と、セッション管理用のDBサーバ114とを備えている。Webサーバ112とDBサーバ114と間は、LAN(Local Area Network)によって接続されている。また、Webサーバ112に対しては、イントラネット、またはインターネットなどのネットワーク116を介して多数のクライアント端末118が接続されている。クライアント端末118は、PCなどのコンピュータよりなり、OS(Operating System)およびWebブラウザプログラムがセットアップされている。
【0015】
Webサーバ112の不図示の記憶部(たとえば、ハードディスクなど)には、OS、Webサーバ用プログラムの他に、このセッション管理システム100専用のセッション管理プログラム120がセットアップされている。Webサーバ112のCPU(Central Processing Unit)が、OSおよびこれらのプログラムをRAM(Random Access Memory)などのメモリに読み出して演算処理することにより、請求項のセッション情報生成部、セッション情報退避処理部、セッション情報消去部およびセッション情報復元部の各機能が実現される。なお、これらの機能により実現される処理については後述する。また、Webサーバ112の記憶部には、サイト領域122が設けられている。このサイト領域122には特定のサービスを提供するための不図示のアプリケーションプログラムおよびデータベースが記憶されている。なお、Webサーバ112の記憶部は、Webサーバ112と直接接続される外付けのハードディスク、または同一LAN内に接続されているNAS(Network Attached Storage)などの外部記憶装置などであってもよい。
【0016】
セッション管理用のDBサーバ114は、データベース管理プログラム124と、セッション管理テーブル126と、サイト設定テーブル128と、退避データ記憶部130と、ユーザデータベース132とを備えている。サイト設定テーブル128には、タイムアウト後の再接続可能時間、タイムアウト時にメモリから退避データ記憶部130に退避すべきデータの識別情報などが定義されている。ユーザデータベース132には、各ユーザのID、パスワード、氏名、所属企業名、および企業IDなどの情報が記憶されている。
【0017】
図2および図3は、図1に示すセッション管理システム100における処理手順を示すフローチャートである。以下、図2および図3のフローチャートと、図4、図5および図6に示すデータ登録例とを参照しながら、このセッション管理システム100における処理手順を説明する。
【0018】
まず、Webサーバ112が、クライアント端末118からのログイン要求を受信すると(S110)、送信されたIDおよびパスワードに基づいてユーザデータベース132をチェックし、認証処理を実行する(S112)。ここで認証処理がNGの場合(S112でNO)には、Webサーバ112からクライアント端末118にサービス利用不可メッセージが送信され、クライアント端末118の画面に表示される(S114)。これに対し認証処理がOKの場合(S112でYES)、Webサーバ112から暗号化した認証ID情報がクライアント端末118に送信され、クライアント端末118のWebブラウザが送信された認証ID情報をクッキー(Cookie)情報として保存する(S124)。ここで「認証ID」とは、Webサーバ112によって生成されるセッション識別コードを意味する。
【0019】
つぎにWebサーバ112は、サイト領域122を管理するプログラムにユーザIDを渡し、そのサイトへのログイン処理をリクエストすると共に(S126)、セッション管理レコードを生成し、DBサーバ114のセッション管理テーブル126に登録する(S128)。
【0020】
図4は、図1に示すDBサーバ114のセッション管理テーブル126に登録されるセッション管理レコードの一例を示す図であり、(a)はログインの際に登録される情報例であり、(b)はログアウトの際に登録される情報例を示す図である。図4に示すように、このセッション管理レコードは、ログイン日時、ログ区分、ログアウト日時、認証ID、および退避データ記憶先のデータ項目を備えている。セッション開始直後には、図4(a)に示すように、ログイン日時の項目にセッション開始の日時情報が記録されると共に、ログ区分の項目に「新規」が記録される。また、認証IDの項目には、S124で発行された認証IDが記録される。
【0021】
その後、ログインしたWebサイトを構成するWebファイルが、Webサーバ112からクライアント端末118に送信され、固有の画面を通じた特定のサービスがサイト領域122を通じてユーザに提供される(S130)。ユーザの作業が完了し、クライアント端末118からログアウトのリクエストが送信されると(S132)、図4(b)に示すように、Webサーバ112は、セッション管理レコードのログアウト日時項目に現在日時を記録すると同時に(S134)、メモリからそのセッションに係る全データを消去する(S136)。
【0022】
これに対し、Webサーバ112は、Webサービスの提供途中においてクライアント端末118との通信が所定時間(たとえば10分など)内に一度も発生しない場合(図3のS138)には、タイムアウトと判定してセッションの中断処理を実行する。
【0023】
図5は、図1に示すDBサーバ114のセッション管理テーブル126に登録されるセッション管理レコードの一例を示す図であり、(a)はログインの際に登録される情報例であり、(c)はクライアント端末118との通信が所定時間内に一度も発生しない場合に登録される情報例を示す図である。
【0024】
Webサーバ112は、サイト設定テーブル128を参照し、そのログインしているWebサイトの設定情報を取得する(S140)。具体的には、そのログインしているWebサイトにおけるユーザの利用画面を後で再現するために保存しておくべきデータの種類を特定する。たとえば、入力フィールド情報、検索条件入力フィールド情報、および選択肢フィールド情報などを特定するIDが該当する。
【0025】
つぎにWebサーバ112は、S140で取得した設定情報に基づいて、メモリ上から要退避データ(たとえば、入力中のテキストや選択データ、ユーザID、画面IDなど)を抽出し、DBサーバ114の退避データ記憶部130にこれらを記憶させて、メモリ上から退避させる(S142)。
【0026】
そして、Webサーバ112は、図5(c)に示すように、その退避先のパス名をセッション管理レコードの退避データ記憶先項目に記録する(S144)。この際、ログアウト日時項目にもタイムアウトの日時が記録される。つぎにWebサーバ112は、メモリ上からそのセッションに係る全データを消去する(S146)。
【0027】
その後、ユーザが操作を再開し、クライアント端末118から何らかのリクエストが送信された場合について説明する。図6は、図1に示すDBサーバ114のセッション管理テーブル126に登録されるセッション管理レコードの一例を示す図であり、(c)はクライアント端末118との通信が所定時間内に一度も発生しない場合に登録される情報例であり、(d)は再接続により新たな管理レコードが追加された情報例であり、(e)は、ログイン終了時に登録される情報例を示す図である。
【0028】
Webサーバ112は、クライアント端末118から何らかのリクエストを受信すると(S148)、そのクライアント端末118から送信されてきたIPデータに、認証ID情報が記述されているか否か(S150)、およびDBサーバ114のセッション管理テーブル126にその認証IDに対応するセッション管理レコードが存在するか否かをチェックする(S151)。ここでクライアント端末118から送信されてきたIPデータに認証ID情報が記述されており、かつ対応のセッション管理レコードも存在する場合、Webサーバ112はサイト設定テーブル128を参照し、そのサイトの再接続可能時間を取得すると共に(S152)、認証ID情報をキーとしてセッション管理テーブル126を参照し、ログアウト日時(タイムアウト日時)情報を取得する(S154)。
【0029】
つぎにWebサーバ112は、このタイムアウト日時情報から現在までの経過時間が再接続可能時間内か否かを判定し(S156)、YESであればセッション管理レコードを参照し、セッションの再開に必要なデータが登録されているか否かを判定する(S158)。ここでYESと判定された場合、Webサーバ112は退避データ記憶部130からそのセッションの再現に必要なデータを取得すると共に、サイト領域122からサービス提供画面を生成するための基本となるデータを取得し、セッション情報を復元する(S160)。
【0030】
つぎにWebサーバ112は、退避データ記憶部130から抽出したデータ中のユーザIDに基づいてユーザデータベース132をチェックし、そのユーザがサイト領域122のサービスを利用する権限を有するか否かを再認証する(S162)。ここで利用権限ありと判定されると、Webサーバ112は復元したセッション情報をメモリにセットする(S164)。
【0031】
Webサーバ112は、図6(d)に示すように、セッション管理テーブル126に新たな管理レコードを追加する(S166)。このセッション管理レコードの認証ID項目には、タイムアウト前に使われていた認証IDがそのまま引き継がれることとなるが、ログ区分項目には「再接続」が記録される。また、ログイン日時項目には、再接続開始時の日時が記録される。
【0032】
以上の結果、Webサーバ112によってタイムアウトによるセッション中断処理が一旦なされても、メモリ上にタイムアウト直前のセッション情報が再現され、入力途中のテキスト、または選択肢へのチェックまで忠実に再現された画面がクライアント端末118に送信される。そのため、ユーザは再ログインすることなく作業を再開することが可能となる(図2のS130)。なお、このユーザがそのまま作業を完了してログアウトした場合には、図6(e)に示すように、ログアウト日時の項目にログアウト日時が記録され、Webサーバ112のメモリからセッション関連データが消去される(S134、S136)。これに対し、再度ログアウトによるセッション中断処理が実行されると、S138〜S166の処理が繰り返されることとなる。
【0033】
なお、S150,S151,S156,S158およびS162においてNOと判定された場合、タイムアウト後の再接続不可を示すメッセージがWebサーバ112からクライアント端末118へ送信され、そのクライアント端末118の画面に表示される(S170)。この場合ユーザは、Webサーバ112のトップページに戻り、最初からログインし直す必要が生じる。
【0034】
ユーザデータベース132にユーザの属性、または権限に対応した権限識別コードを設定しておき、この識別コードに応じてタイムアウト後の再接続可能時間を制御することもできる。たとえば、自社のユーザについては8時間の再接続可能時間を認める一方、他社のユーザについては再接続可能時間を20分に制限することが該当する。
【0035】
セキュリティを高めるため、タイムアウト時にクライアント端末118のIPアドレスをセッション管理レコードに記録しておき、再接続要求時のIPアドレスとタイムアウト時のIPアドレスを比較し、両者が一致する場合のみ再接続を認めるようにシステムを運用することもできる。
【0036】
このセッション管理システム100の場合、タイムアウト時の要退避データ、または再接続可能時間についてサイト領域122のアプリケーションプログラムをコーディングする必要がなく、サイト設定テーブル128に定義しておけば済むため、コーディング作業の簡素化が図れると共に、設定変更を容易化できる利点がある。また、このセッション管理システム100の場合、一時的に作業を中断しただけで、Webサービスを継続して利用したいと考えるユーザが、Webサイトのトップページに戻って、ログイン処理を再度繰り返すことが不要であり、従来のWebサーバが行うセッション管理方法と比較して、Webサーバにおけるメモリ資源の利用効率を向上させると共に、一時的に作業を中断しただけのユーザの利便性を損なうことがないという利点もある。
【実施例2】
【0037】
図7は、本発明の実施例2に係るセッション管理システム200の全体構成図である。このセッション管理システム200は、第1のWebサーバ212と、第2のWebサーバ214と、セッション管理用のDBサーバ216と、第1のWebサーバ212および第2のWebサーバ214の切替えを制御する負荷分散装置であるロードバランサ218とを備えている。
【0038】
このセッション管理システム200では、実施例1に示した構成と異なり、複数のWebサーバ212,214を有し、各装置に対するアクセスの割り振りを行うために、いわゆるSLB(Server Load Balancing)を採用している。図7に示すロードバランサ218は、クライアント端末222側からは一つのWebサーバであるかのように見え、クライアント端末222からのリクエストの受信を一手に引き受ける。そして、ロードバランサ218はリクエストを受信する都度、複数のWebサーバ212,214の中から一つを選択し、選択したサーバ装置にリクエストを転送する。転送先となるWebサーバ212,214の選択方法としては、たとえば、ラウンドロビン方式で選択する方法、ランダムに選択する方法、クライアント端末222とのセッション数が最も少ない装置を選択する方法、Webサーバ212,214の負荷状況を監視して、より負荷が少ない装置を選択する方法、およびWebサーバ212,214の定期的なメンテナンス、またはプログラムの入れ替えなどにより強制的にいずれか1つを選択する方法などがある。なお、本実施例のSLBは、ロードバランサ218と複数のWebサーバ212,214とにより構成されるが、ロードバランサ218と3以上のサーバ装置により構成してももちろんよい。
【0039】
ロードバランサ218とWebサーバ212,214と間、およびWebサーバ212,214とDBサーバ216と間はLANによって接続されている。また、Webサーバ212,214に対しては、イントラネットやインターネットなどのネットワーク220およびロードバランサ218を介して多数のクライアント端末222が接続されている。クライアント端末222は、PCなどのコンピュータよりなり、OSおよびWebブラウザプログラムがセットアップされている。
【0040】
Webサーバ212,214の不図示の記憶部(たとえば、ハードディスク)には、OS、Webサーバ用プログラムの他に、セッション管理システム200専用のセッション管理プログラム224がセットアップされている。Webサーバ212,214のCPUがOSおよびこれらのプログラムをRAMに読み出して演算処理することにより、請求項のセッション情報生成部、セッション情報退避処理部、セッション情報消去部およびセッション情報復元部の各機能が実現される。なお、これらの機能により実現される処理については後述する。また、Webサーバ212,214の記憶部には、サイト領域226がそれぞれ設けられている。これらのサイト領域226には特定のサービスを提供するためのアプリケーションプログラムおよびデータベースが記憶されている。なお、Webサーバ212,214の記憶部は、Webサーバ212,214と直接接続される外付けのハードディスク、または同一LAN内に接続されているNAS(Network Attached Storage)などの外部記憶装置などであってもよい。
【0041】
セッション管理用のDBサーバ216は、データベース管理プログラム228と、セッション管理テーブル230と、サイト設定テーブル232と、退避データ記憶部234と、ユーザデータベース236を備えている。サイト設定テーブル232には、Webサーバの切替え時に第1のWebサーバ212のメモリからDBサーバ216の退避データ記憶部234に退避すべきデータの識別情報などが記憶されている。ユーザデータベース236には、各ユーザのID、パスワード、氏名、所属企業名、企業IDなどの情報が記憶されている。
【0042】
図8および図9は、図2に示すセッション管理システム200における処理手順を示すフローチャートである。以下、図8および図9のフローチャートと、図10に示すデータ登録例とを参照しながら、このセッション管理システム200における処理手順を説明する。なお、以下の処理の前提として、第1のWebサーバ212について定期的なメンテナンス、またはプログラムの入れ替えなどにより停止すべき事情があり、かつ、第2のWebサーバ214は、第1のWebサーバ212の予備のサーバとして設定がなされている。
【0043】
まず、第1のWebサーバ212がクライアント端末222からのログイン要求を受信すると(S210)、送信されたIDおよびパスワードに基づいてユーザデータベース236をチェックし、認証処理を実行する(S212)。ここで認証処理がNGの場合(S212でNO)には、第1のWebサーバ212からクライアント端末222にサービス利用不可メッセージが送信され、画面に表示される(S214)。これに対し認証OKの場合、第1のWebサーバ212は暗号化した認証IDをクライアント端末222に送信し、クッキー(Cookie)に保存させる(S222)。ここで「認証ID」とは、第1のWebサーバ212によって生成されるセッション識別コードを意味する。
【0044】
つぎに第1のWebサーバ212は、サイト領域226を管理するプログラムにユーザIDを渡し、そのサイトへのログイン処理をリクエストすると共に(S224)、セッション管理レコードを生成し、DBサーバ216のセッション管理テーブル230に登録する(S226)。
【0045】
図10は、図7に示すDBサーバ216のセッション管理テーブル230に登録されるセッション管理レコードの一例を示す図であり、(a)は、ログインの際に登録される情報例であり、(b)は、セッションの途中で、第1のWebサーバ212についてメンテナンス時刻の到来、障害の発生といった運転停止事由が発生した場合に登録される情報例であり、(c)は、第1のWebサーバ212の停止後、第2のWebサーバ214によりセッション管理テーブル230に新たに追加される情報例であり、(d)は、情報例を示す図である。
【0046】
図10に示すように、このセッション管理レコードは、ログイン日時、ログ区分、ログアウト日時、認証ID、退避データ記憶先のデータ項目を備えている。セッション開始直後には、図10(a)に示すように、ログイン日時の項目にセッション開始の日時情報が記録されると共に、ログ区分項目に「新規」が記録される。また、認証IDの項目には、S122で発行された認証IDが記録される。
【0047】
その後、ログインしたサイトのWebファイルが第1のWebサーバ212からクライアント端末222に送信され、固有の画面を通じた特定のサービスが第1のWebサーバ212のサイト領域226を通じてユーザに提供される(S228)。
【0048】
このセッションの途中で、第1のWebサーバ212についてメンテナンス時刻の到来や障害の発生といった運転停止事由が発生すると(S230)、まず第1のWebサーバ212はサイト設定テーブル232を参照し、そのサイトの設定情報を取得する(S232)。具体的には、そのサイトにおけるユーザの利用画面を後で再現するために保存しておくべきデータの種類を特定する。たとえば、テキスト入力フィールドや、検索条件入力フィールド、選択肢フィールドを特定するIDや、ユーザID、画面IDなどが該当する。
【0049】
つぎに第1のWebサーバ212は、S232で取得した設定情報に基づいて、メモリ上から要退避データ(入力中のテキストや選択データ、ユーザID、画面IDなど)を抽出し、DBサーバ216の退避データ記憶部234に退避させる(S234)。つぎに第1のWebサーバ212は、図10(b)に示すように、その退避先のパス名をセッション管理レコードの退避データ記憶先項目に記録する(S236)。この際、ログアウト日時項目にもサーバ停止の日時が記録される。つぎに第1のWebサーバ212は、メモリ上からそのセッションに係る全データを消去する(S238)。このタイミングで、ロードバランサ218によって第1のWebサーバ212から第2のWebサーバ214への切替えがなされる(S240)。これ以降、クライアント端末222からのリクエストは第2のWebサーバ214に転送されることとなり、同時に第1のWebサーバ212が停止される。
【0050】
ここで、クライアント端末222から何らかのリクエストを受信した第2のWebサーバ214は(S242)、クライアント端末222のクッキーから認証IDを取得する(S244)。つぎに第2のWebサーバ214は、認証IDをキーにセッション管理テーブル230のセッション管理レコードを特定し、退避データの記憶先を取得する(S246)。つぎに第2のWebサーバ214は、退避データ記憶部234からそのセッションの再現に必要なデータを取得すると共に、サイト領域226からサービス提供画面を生成するための基本となるデータを取得し、セッション情報を復元する(S248)。つぎに第2のWebサーバ214は、この復元したセッション情報をメモリにセットする(S250)。
【0051】
同時に第2のWebサーバ214は、図10(c)に示すように、セッション管理テーブル230に新たな管理レコードを追加する(S252)。このセッション管理レコードの認証ID項目には、サーバ切替え前に使われていた認証IDがそのまま引き継がれることとなるが、ログ区分項目には「引継」が記録される。また、ログイン日時項目には、引継開始時の日時が記録される。
【0052】
以上の結果、セッションの途中でWebサーバの交替が発生した場合であっても、セッションを引き継いだ第2のWebサーバ214のメモリ上に第1のWebサーバ212が保持していたセッション情報が再現され、入力途中のテキストや選択肢へのチェックまで忠実に再現された画面がクライアント端末222に送信される。この結果ユーザは、Webサーバの交替を意識することなく、また再ログインすることもなく、作業を継続することが可能となる(S254)。また、このユーザがそのまま作業を完了してログアウトした場合には(S256)、図10(d)に示すように、ログアウト日時の項目にログアウトの日時が記録され(S258)、第2のWebサーバ214のメモリからセッション関連データが消去される(S260)。
【0053】
このセッション管理システム200の場合、サイト領域226のアプリケーションプログラムにおいて要退避データの種類を規定するコーディングをする必要がない。また、このセッション管理システム200の場合、サーバ交替時における要退避データの種類をDBサーバ216のサイト設定テーブル232に定義しておくだけで済むため、コーディング作業の簡素化が図れると共に、設定変更を容易化できる利点がある。また、このセッション管理システム200の場合、サーバの交代時前後に跨ってWebサービスを利用したいと考えているユーザには、停止するWebサーバとのセッションを一旦終了した後、予備のWebサーバに切替えられた後にログイン処理を再度繰り返すことが要求されないので、従来のWebサーバが行う上述したセッション管理方法と比較して、Webサービスの停止期間を短縮化できると共に、この切替え前後において利用していたユーザ、または利用したいと考えているユーザの利便性は損なわれることがないという利点もある。
【実施例3】
【0054】
図11は、本発明の実施例3に係るセッション管理システム300の全体構成図である。なお、実施例3に係るセッション管理システム300の構成において、実施例2に係るセッション管理システム200と同様の機能を有する装置、機能に関しては同一の符号を付し、その説明を適宜簡略化または省略する。
【0055】
このセッション管理システム300では、Webサーバ212,214に割り振られたセッションについて、Webサーバ212のセッション管理プログラム224A、DBサーバ216のセッション管理テーブル230AおよびユーザDB236Aがハードウェアと協働し、セッションを維持しているユーザの所在地毎に区分けされたユーザのセッションリスト情報を生成して、ロードバランサ218に送信する。そして、ロードバランサ218のコネクション管理プログラム218Aが、その生成されたセッションリスト情報に従って、ロードバランサ自体でクライアント端末とのコネクション(たとえば、IPアドレス、SSLセッションID、クッキー情報など)を管理しているコネクション管理テーブル218Cを更新し、Webサーバ212,214に対してセッションの再割り振りを行うようにしている。以下、具体的に説明する。
【0056】
セッション管理プログラム224AがCPUによってRAMに読み出されることにより実現される制御部(不図示)は、ユーザDB236Aを参照して、現在セッションを維持しているユーザが使用できるWebサービス情報を取得すると共に、そのユーザの所在地情報、またはそれに相当する情報(たとえば、国籍情報、使用地域情報など)をDBサーバ216のセッション管理テーブル230Aに登録する。そして、この登録されているWebサービス情報および所在地情報などに基づいて、Webサーバ212に割り振るセッションリスト情報およびWebサーバ214に割り振るセッションリスト情報の生成を行う。
【0057】
たとえば、Webサーバ212が、中国語のWebページと日本語のWebページとを提供しており、中国語のWebページのみ停止する必要がある場合、この停止の影響を受けるユーザは、中国語のWebページを利用するユーザと推測される。そこで、Webサーバ212が、上述したセッション管理テーブル230Aから所在地が中国と関連付けられたユーザを抽出して、抽出されたユーザの使用しているセッション情報については、一部の変更を行う予定のWebサーバ212のセッションリスト情報から除外すると共に、Webサーバ214のセッションリスト情報に追加したものを作成するようにする。このようにすることで、中国語のWebページを使用していないユーザのセッションに関しては、そのままWebサーバ212を継続して使用させることができると共に、Webサーバ212が提供しているその他のWebサービスを停止させる必要がない。なお、上述の例では、セッション管理テーブル230Aを参照して所在地情報が関連付けられたユーザを特定してからセッションを抽出するようにしたが、セッション管理テーブル230Aにこれらの情報を予め登録せずに、ユーザDB236Aを直接参照するようにしてもよい。また、所在地情報のみではなく、セッション開始時における接続元のIPアドレス情報(グローバルIPアドレス情報またはローカルIPアドレス情報)を記録しておき、これらの組み合わせで、所在地の判定をするようにしてもよい。このようにすることで、より確実にユーザがWebサービスに接続した地点を把握することができる。なお、ユーザの接続時の所在地を判定する方法として、その他にも、国別にIPアドレスを管理しているNIR(National Internet Registry:国別インターネットレジストリ)が公開している各国のIPアドレス情報とユーザDB236Aに登録されている所在地情報との組み合わせに基づいて、所在地を確定するようにしてもよい(たとえば、日本国の所在地が登録されているユーザの場合に、そのセッションの接続元のグローバルIPアドレスについて、JPNIC(Japan Network Information Center)により管理、公開されている日本国内で使用されるIPアドレスの範囲内にあるか否かにより所在地情報を確定するなど)。なお、上記のように所在地の判定を行う方法以外にも、実際に中国語のWebページにアクセスしているユーザのセッション情報のみを抽出し、これをもって所在地を推定するようにしてもよい。
【0058】
このセッション管理システム300の場合、セッション管理システム200が奏する効果に加えて、Webサーバ212が提供するWebサービスに含まれる一部の画面のリニューアル、または複数の言語圏に提供されるWebサービスにおいて、一部の変更を行う際のセッション管理において特に有効なものとなる。
【0059】
(変形例)
以上、本発明の一実施の形態として実施例1,実施例2および実施例3について説明したが、本発明は、上述した実施例に限定されない。たとえば、上述したセッション管理システム100においては、1つのWebサーバ112と1つのDBサーバ114という構成としたが、1つのサーバ装置でこれらの装置が有する機能を構成するようにしてもよい。また、上述したセッション管理システム200,300においては、Webサーバ212,214とDBサーバ114という構成としたが、Webサーバ212,214と、ミラーリングされた2つのDBサーバ114で構成するようにしてもよい。
【0060】
また、セッション管理システム100は、一時的に作業を中断しただけのユーザの利便性を向上させることを主な目的とするものであり、セッション管理システム200,300は、Webサーバ212,214の定期的なメンテナンス、またはプログラムの入れ替えなどによりセッションを中断させられるユーザの利便性を向上させることを主な目的とするものであるが、これらいずれか複数の機能を有するセッション管理システムとして構成してももちろんよい。
【0061】
また、セッション管理システム100,200,300におけるセッション管理テーブル126,230,230Aにおいて、セッションを維持していたユーザがログアウトした場合にはその関連するデータを消去することとしていたが、これらの履歴データをWebサーバ112,212,214またはDBサーバ114,216の記憶部に蓄積しておき、次に説明するような活用をしてもよい。たとえば、セッション管理システム100,200,300におけるセッション管理テーブル126,230,230Aに登録されるセッション管理レコードに基づいて、Webサーバ112,212,214のセッション管理プログラム120,224,224Aによりユーザのタイムアウトとなる所定時間を調整するようにしてもよい。これにより、履歴データを参照して再接続のセッション管理レコードが散見される場合(たとえば、再接続のセッション管理レコードが全体のセッション管理レコードの10%以上存在する場合など)、タイムアウト時間を長くして、DBサーバ114,216からの読み出し回数を減少させることができる。なお、Webサーバ112,212,214のセッション管理プログラム120,224,224Aによって所定時間を調整する方法としては、所定のタイミング(たとえば、1時間毎、3時間毎など)で変更する、または動的に変更するようにプログラムを設計してもよい。
【0062】
また、セッション管理テーブル126,230,230Aに、Webサービスを識別できる情報を登録させる項目を設けて、Webサーバ112,212,214のセッション管理プログラム120,224によりWebサービス毎にタイムアウトとなる所定時間を調整できるようにしてもよい。これらの情報を監視することにより、特定のWebサービスに関して再接続のセッション管理レコードが散見される場合(たとえば、再接続のセッション管理レコードが全体のセッション管理レコードの10%以上存在する場合など)に、その特定のWebサービスについては、他のWebサービスよりタイムアウトとなる所定時間を長くすることが可能となり、再接続時のDBサーバ114,216の退避データ記憶部130,234からの読み出し回数を減少させることができる。一方、特定のWebサービスに関してタイムアウトが発生しても再接続されていないことが履歴データから読み取れる場合(たとえば、Webサーバ112,212,214のセッション管理プログラム120,224によりその特定のWebサービスにログインしてタイムアウトとなっているセッションであって、再接続のレコードを有しないセッション管理レコードが80%以上あると判定される場合など)には、その特定のWebサービスについては、他のWebサービスよりタイムアウトとなる所定時間を短くすることが可能となり、Webサーバ112,212,214のメモリ資源を有効活用することができる。
【0063】
また、セッション管理テーブル126,230の履歴データから、所定期間のセッション数(たとえば、過去3ヶ月、6ヶ月のセッション数など)を複数抽出して、それらを比較することによりWebサーバ112,212,214の性能(たとえば、メモリ容量、CPUの処理能力など)の現在の妥当性を評価する、または将来的なセッション数などを予測して、増設するようにしてもよい。これにより、アクセス数の増加によるレスポンス遅延などの不具合を未然に防止することができる。その結果、Webサービスを継続して提供する際にユーザの利便性を損なわずに運用することができため、従来のセッション管理方法と比較すると、ユーザの利便性を向上させることができる。
【0064】
また、Webサーバ112,212,214、DBサーバ114,216およびロードバランサ218,218Aは、上述したセッション管理システム100,200,300を構成する各装置であり、各装置を発明の一態様として捉えることも可能である。また、上述したセッション管理プログラム120,224,224A、データベース管理プログラム124,228,およびコネクション管理プログラム218Bは、コンピュータにインストールされることで上述した各装置を実現するものである。すなわち、これらのプログラムは、上述したセッション管理システム100,200,300を構成する各装置として機能させるためのプログラムであり、各装置が奏する効果と同様の効果を奏することができるため、これを発明の一態様として捉えることも可能である。また、上述した各装置により実行される動作の全てまたは一部は、セッション管理方法としても捉えることが可能であり、そのようなセッション管理方法は、各装置が奏する効果と同様の効果を奏することができるため、これを発明の一態様として捉えることも可能である。
【符号の説明】
【0065】
100,200,300 セッション管理システム、112,212,214 Webサーバ、114,216 DBサーバ、116,220 ネットワーク、118,222 クライアント端末、120,224,224A セッション管理プログラム、122,226 サイト領域、124,228 データベース管理プログラム、126,230,230A セッション管理テーブル、128,232 サイト設定テーブル、130,234 退避データ記憶部、132,236,236A ユーザデータベース、218,218A ロードバランサ、218B コネクション管理プログラム、218C コネクション管理テーブル

【特許請求の範囲】
【請求項1】
ネットワークを介して複数のクライアント端末と接続されるサーバを有するセッション管理システムであって、
前記サーバが、
前記クライアント端末のログインに際し、セッション識別コードを含むセッション管理レコードを生成してセッション管理テーブルに記録すると共に、前記セッション識別コードを前記クライアント端末に送信するセッション情報生成部と、
前記クライアント端末に前記セッション識別コードを送信後、前記クライアント端末と所定時間通信が発生しない場合に、メモリに記録されているそのセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報を前記セッション管理レコードに関連付けて記録するセッション情報退避処理部と、
前記セッション情報退避処理部により前記データを退避させた後に前記セッションに関するデータを前記メモリから消去するセッション情報消去部と、
前記クライアント端末から前記セッション識別コードを有する接続要求が送信された場合に、前記セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、
前記セッション関連情報特定部により特定された前記退避先情報を参照して、そのセッションの再開に必要なデータを前記メモリに復元するセッション情報復元部と、
を有することを特徴とするセッション管理システム。
【請求項2】
請求項1に記載のセッション管理システムであって、
前記クライアント端末からの接続要求を複数の前記サーバのいずれかへ割り振る制御をするロードバランサを有し、
前記複数のサーバのうち、所定の運転停止事由が発生した第1のサーバの前記セッション情報退避処理部は、
前記メモリに記録されているセッションの再開に必要なデータを所定の記憶部に退避させると共に、その退避先情報を前記セッション管理レコードに関連付けて記録し、
前記複数のサーバのうち、前記第1のサーバの予備として動作する第2のサーバは、
前記ロードバランサの制御により前記第1のサーバが有するセッション識別コードによって通信を行っていた前記クライアント端末から処理要求が送信された場合に、前記セッション管理テーブルを参照して、そのセッション識別コードに関連付けられている、そのセッションの再開に必要なデータの退避先情報を特定するセッション関連情報特定部と、
前記セッション関連情報特定部により特定された前記退避先情報を参照して、そのセッションの再開に必要なデータを前記メモリに復元するセッション情報復元部と、
を有することを特徴とするセッション管理システム。
【請求項3】
請求項2に記載のセッション管理システムであって、
前記第1のサーバは、
前記第1のサーバが提供するサービスにアクセスしてきたユーザの所在地を示す情報、もしくは所在地を推測できる情報が少なくとも記憶されているデータベースを参照し、その所在地毎に区分けに従って、前記第1のサーバおよび前記第2のサーバのそれぞれに割り振りされたユーザのセッションリスト情報を生成して前記ロードバランサへ送信すると共に、前記ロードバランサに対して、その生成されたセッションリスト情報に従って、現在のセッションの再割り振りを行わせる、
ことを特徴とするセッション管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate