(58)【調査した分野】(Int.Cl.,DB名)
クライアント装置から送信されたリクエストデータを、同種のサービスを提供する複数のサービス提供装置のうち、該リクエストデータ中のセッション情報により特定されるサービス提供装置に転送し、転送したリクエストデータの転送先のサービス提供装置から返信される応答データを、該転送先のサービス提供装置を特定するセッション情報とともに、該リクエストデータの送信元のクライアント装置に転送する装置であって、クライアント装置からユーザに固有のユーザ情報を含むリクエストデータが送信された場合、動作モードが第2の動作モードであるときは、該リクエストデータを、ユーザ情報とそのユーザ情報を最初に生成したサービス提供装置を特定するセッション情報とを関連づけて記憶するユーザ情報記憶手段において、該リクエストデータ中のユーザ情報と同一のユーザ情報に関連づけられたセッション情報により特定されるサービス提供装置に転送し、サービス提供装置から返信される応答データをセッション情報とともに受信した場合、前記動作モードが第1の動作モードであるときは、該応答データを、そのセッション情報とともに、クライアント装置に転送するセッション管理装置、におけるリクエストデータの処理効率を示す第1情報を取得する第1情報取得手段と、
前記セッション管理装置から受信したリクエストデータに応じた応答データを、該リクエストデータの送信元のセッション管理装置に返信し、且つ、受信したリクエストデータにユーザを識別するユーザ識別情報が含まれる場合には、該ユーザ識別情報に基づき認証されたユーザに固有のユーザ情報を生成し、生成したユーザ情報を含む応答データを、該送信元のセッション管理装置に返信する装置であって、受信したリクエストデータにユーザ識別情報が含まれる場合、前記動作モードが第1の動作モードであるときは、生成したユーザ情報を含む応答データを、前記ユーザ情報記憶手段において、該生成されたユーザ情報と同一のユーザ情報に関連づけられたセッション情報とともに、該送信元のセッション管理装置に返信する前記サービス提供装置、におけるリクエストデータの処理効率を示す第2情報を取得する第2情報取得手段と、
前記第1情報と前記第2情報との比較結果に応じて、前記動作モードを第1の動作モードと第2の動作モードとのうちで切り替える動作モード切り替え手段と、
を含む動作モード管理装置。
クライアント装置から送信されたリクエストデータを、同種のサービスを提供する複数のサービス提供装置のうち、該リクエストデータ中のセッション情報により特定されるサービス提供装置に転送し、転送したリクエストデータの転送先のサービス提供装置から返信される応答データを、該転送先のサービス提供装置を特定するセッション情報とともに、該リクエストデータの送信元のクライアント装置に転送する装置であって、クライアント装置からユーザに固有のユーザ情報を含むリクエストデータが送信された場合、動作モードが第2の動作モードであるときは、該リクエストデータを、ユーザ情報とそのユーザ情報を最初に生成したサービス提供装置を特定するセッション情報とを関連づけて記憶するユーザ情報記憶手段において、該リクエストデータ中のユーザ情報と同一のユーザ情報に関連づけられたセッション情報により特定されるサービス提供装置に転送し、サービス提供装置から返信される応答データをセッション情報とともに受信した場合、前記動作モードが第1の動作モードであるときは、該応答データを、そのセッション情報とともに、クライアント装置に転送するセッション管理装置、におけるリクエストデータの処理効率を示す第1情報を取得する第1情報取得手段、
前記セッション管理装置から受信したリクエストデータに応じた応答データを、該リクエストデータの送信元のセッション管理装置に返信し、且つ、受信したリクエストデータにユーザを識別するユーザ識別情報が含まれる場合には、該ユーザ識別情報に基づき認証されたユーザに固有のユーザ情報を生成し、生成したユーザ情報を含む応答データを、該送信元のセッション管理装置に返信する装置であって、受信したリクエストデータにユーザ識別情報が含まれる場合、前記動作モードが第1の動作モードであるときは、生成したユーザ情報を含む応答データを、前記ユーザ情報記憶手段において、該生成されたユーザ情報と同一のユーザ情報に関連づけられたセッション情報とともに、該送信元のセッション管理装置に返信する前記サービス提供装置、におけるリクエストデータの処理効率を示す第2情報を取得する第2情報取得手段、
前記第1情報と前記第2情報との比較結果に応じて、前記動作モードを第1の動作モードと第2の動作モードとのうちで切り替える動作モード切り替え手段、
としてコンピュータを機能させるためのプログラム。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態の例について図面に基づき詳細に説明する。
【0014】
図1は、本発明の実施形態に係るセッション管理システム1の構成を示す図である。同図に示すように、セッション管理システム1は、複数のクライアント装置2と、少なくとも1つのセッション管理サーバ4と、情報処理サービスを提供するための複数のサービス提供サーバ6と、共有データベース10と、動作モード管理サーバ12と、を含む。本実施形態では、複数のセッション管理サーバ4が含まれる。これらの装置は、ネットワークに接続されている。
【0015】
クライアント装置2には、ブラウザアプリケーションがインストールされており、ユーザは、ブラウザアプリケーションを介して、情報処理サービスにログインし、情報処理サービスを利用するためのHTTPセッションを進める。本実施形態の場合、クライアント装置2aは、マイクロプロセッサ、メモリ及びハードディスクなどの記憶装置、マウス及びキーボードなどの入力装置、ネットワークインタフェース、及びディスプレイを備えたパーソナルコンピュータとして実現される。また、クライアント装置2bは、マイクロプロセッサ、メモリ及びハードディスクなどの記憶装置、ネットワークインタフェース、タッチスクリーン、及びスキャナを備えた画像処理装置(いわゆる複合機)として実現される。
【0016】
セッション管理サーバ4、サービス提供サーバ6、及び、動作モード管理サーバ12は、マイクロプロセッサ、メモリ及びハードディスクなどの記憶装置、ネットワークインタフェースなどを備えたサーバコンピュータである。セッション管理サーバ4、サービス提供サーバ6及び動作モード管理サーバ12は、それぞれ、記憶装置に記憶されるプログラムに従って情報処理を実行する。このプログラムは、ネットワークから受信されることにより記憶装置に記憶されてもよいし、コンピュータ読み取り可能な情報記憶媒体から読み出されることにより記憶装置に記憶されてもよい。
【0017】
各セッション管理サーバ4は、クライアント装置2から受信したHTTPリクエストをサービス提供サーバ6に転送する。また、サービス提供サーバ6から受信したHTTPレスポンスを、クライアント装置2に転送する。セッション管理サーバ4は、ロードバランサとも呼ばれる。
【0018】
各サービス提供サーバ6は、ユーザに対しクラウド上で共通の情報処理サービスを提供し、本実施形態では、クライアント装置2から送付される文書画像を翻訳する画像処理サービスをユーザに提供する。各サービス提供サーバ6は、ユーザデータベース8に接続されている。ユーザデータベース8には、サービスの利用者として登録されているユーザの認証情報(ユーザ名(ユーザ識別情報)とパスワード)が記憶されており、サービス提供サーバ6は、ユーザデータベース8を用いてユーザ認証を行う。
【0019】
動作モード管理サーバ12は、セッション管理システム1の動作モードを制御する。動作モードには、第1動作モードと第2動作モードとがあり、動作モード管理サーバ12は、この2つの動作モードのうちで、適宜動作モードを切り替える。具体的には、動作モード管理サーバ12は、SNMP(Server Network Management Protocol)プロトコルを用いて各セッション管理サーバ4及び各サービス提供サーバ6を監視しており、監視結果に応じて動作モードを切り替える。セッション管理サーバ4、サービス提供サーバ6、及び動作モード管理サーバ12は、それぞれ、記憶装置に現在の動作モードを表すモード情報を記憶しており、モード情報により表される動作モードで動作する。なお、SNMPエージェントたる各セッション管理サーバ4及び各サービス提供サーバ6には監視項目が登録されており、SNMPマネージャたる動作モード管理サーバ12の要求に応じて、監視項目に関する監視結果を返信するようになっている。
【0020】
第1動作モード及び第2動作モードについては後述する。
【0021】
共有データベース10は、各サービス提供サーバ6に共有されるデータベースであり、後述するコンテクスト情報が、サービス提供サーバ6を識別するセッションIDと関連づけて記憶される。ここでは、共有データベース10に、未だコンテクスト情報が記憶されていないものとする。
【0022】
画像処理サービスの利用場面について説明する。本実施形態では、ユーザは、クライアント装置2においてブラウザアプリケーションを起動し、所定箇所にログイン画面のURL(Uniformed Resource Locator)を入力する。
図2は、ログイン画面のURLが入力された場合に、セッション管理システム1にて実行される処理を示すシーケンス図である。以下、ログイン画面のURLが入力されたクライアント装置2のことをクライアント装置Xと表記する。ユーザがログイン画面のURLを入力すると、クライアント装置Xは、ブラウザアプリケーションを介し、HTTPリクエスト(リクエストデータ)をいずれかのセッション管理サーバ4に送信する(S101)。以下、HTTPリクエストの送信先のセッション管理サーバ4のことをセッション管理サーバXと表記する。HTTPリクエストには、クライアント装置Xが記憶装置に保持しているクッキー情報などの各種データが含まれる。ここでは、クライアント装置Xがクッキー情報を保持していないので、HTTPリクエストにクッキー情報は含まれない。
【0023】
セッション管理サーバXは、クライアント装置Xから送信されたHTTPリクエストを受信する。受信したHTTPリクエストは、記憶装置内のキューにエンキューされる。そして、セッション管理サーバXは、受信したHTTPリクエストをデキューし、いずれかのサービス提供サーバ6に転送する。セッション管理サーバ4は、クッキー情報を含まないHTTPリクエストを受信した場合、第1動作モードにおいても第2動作モードにおいても、そのHTTPリクエストを、所定のアルゴリズム(例えば、ラウンドロビンアルゴリズム)に従って選択したサービス提供サーバ6に転送するようになっている。ここでは、HTTPリクエストにクッキー情報が含まれない。そのため、セッション管理サーバXは、受信したHTTPリクエストを、上記所定のアルゴリズムに従って選択したサービス提供サーバ6に転送する(S102)。なお、ここでは、サービス提供サーバXに、HTTPリクエストが転送されたものとする。
【0024】
サービス提供サーバXは、セッション管理サーバXから送信されたHTTPリクエストを受信する。受信したHTTPリクエストは、記憶装置内のキューにエンキューされる。そして、セッション管理サーバXは、受信したHTTPリクエストをデキューし、そのHTTPリクエストに応じたHTTPレスポンスを、セッション管理サーバ4に返信する(S103)。この段階では、サービス提供サーバXは、第1動作モードにおいても第2動作モードにおいても、ログイン画面のウェブページをHTTPレスポンスとして返信する。そして、HTTPレスポンスを受信したセッション管理サーバXは、受信したHTTPレスポンスを、HTTPレスポンスの送信元であるサービス提供サーバXを識別するセッションIDとともに、クライアント装置Xに転送する(S104)。なお、セッションIDは、クッキー情報として、HTTPレスポンスに含まれる。
【0025】
HTTPレスポンスを受信したクライアント装置Xでは、ログイン画面が表示される。また、HTTPレスポンス中のクッキー情報が記憶装置に保存される。
図3Aは、ログイン画面の一例を示す図である。このログイン画面を用いてユーザは、画像処理サービスにログインする。すなわち、ユーザは、ログイン画面に自身の認証情報(ユーザ名とパスワード)を入力する。そして、所定のボタンを押す。
【0026】
[第1動作モード]
図4は、ログイン画面においてユーザが上記所定のボタンを押した場合に、セッション管理システム1において実行される処理を示すシーケンス図である。ここでは、動作モードが第1動作モードである場合について説明する。まず、クライアント装置Xは、記憶装置に記憶されるクッキー情報と入力された認証情報とを含むHTTPリクエストを、セッション管理サーバXに送信する(S201)。セッション管理サーバXは、クライアント装置Xから送信されたHTTPリクエストを受信すると、受信したHTTPリクエストをキューにエンキューする。そして、セッション管理サーバXは、受信したHTTPリクエストをデキューし、いずれかのサービス提供サーバ6に転送する。
【0027】
第1動作モードでは、セッション管理サーバ4は、受信したHTTPリクエストにクッキー情報が含まれる場合、そのクッキー情報中のセッションIDにより識別されるサービス提供サーバ6にそのHTTPリクエストを転送するようになっている。この段階では、HTTPリクエストにクッキー情報が含まれる。そのため、セッション管理サーバXは、HTTPリクエストに含まれるクッキー情報中のセッションIDにより識別されるサービス提供サーバXに、HTTPリクエストを転送する(S202A)。
【0028】
サービス提供サーバXは、セッション管理サーバXから転送されたHTTPリクエストを受信すると、受信したHTTPリクエストをキューにエンキューする。そして、サービス提供サーバXは、受信したHTTPリクエストをデキューする。
【0029】
第1動作モードでも第2動作モードでも、サービス提供サーバ6は、受信したHTTPリクエストに認証情報が含まれる場合、その認証情報とユーザデータベース8の記憶内容とに基づいてユーザを認証するようになっている。そして、ユーザが認証された場合、認証されたユーザに固有のコンテクスト情報を認証情報に基づいて生成するようになっている。そのため、サービス提供サーバXは、デキューしたHTTPリクエスト中の認証情報と、ユーザデータベース8の記憶内容に基づいて、ユーザを認証する(S203)。具体的には、サービス提供サーバXは、HTTPリクエスト中の認証情報がユーザデータベース8に記憶されているか否かを判定する。そして、ユーザが認証された場合、サービス提供サーバXは、認証されたユーザに固有のコンテクスト情報をHTTPリクエスト中の認証情報に基づいて所定のコンテクスト生成アルゴリズムに従い生成する(S204)。例えば、サービス提供サーバXは、認証されたユーザのユーザ名を暗号化してコンテクスト情報を生成する。なお、コンテクスト情報の生成に用いるコンテクスト生成アルゴリズムは、すべてのサービス提供サーバ6に共通である。
【0030】
また、サービス提供サーバ6は、コンテクスト情報を生成した場合、第1動作モードにおいても第2動作モードにおいても、受信したHTTPリクエストに応じたHTTPレスポンスを、生成したコンテクスト情報とともに、リダイレクト指示としてセッション管理サーバXに返信するようになっている。そのため、サービス提供サーバXは、HTTPレスポンスをリダイレクト指示として、生成したコンテクスト情報とともにセッション管理サーバXに返信する(S205A)。但し、第1動作モードにおいては、サービス提供サーバ6は、
図5に示す第1返信処理を実行するようになっている。そのため、サービス提供サーバXは、生成したコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶されているか否かを判定する(S301)。そして、生成したコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶されていない場合(S301のN)、サービス提供サーバXは、生成したコンテクスト情報を、自機を識別するセッションIDに関連づけて共有データベース10に記憶し(S302)、HTTPレスポンスをリダイレクト指示として、生成したコンテクスト情報とともに、セッション管理サーバXに返信する(S303)。
【0031】
一方、生成したコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶されている場合(S301のY)、サービス提供サーバXは、HTTPレスポンスを、コンテクスト情報だけでなく、そのコンテクスト情報に関連づけられたサービス提供サーバXのセッションIDとともに、セッション管理サーバ4に返信する(S304)。なお、コンテクスト情報及びセッションIDは、クッキー情報としてHTTPレスポンスに含まれる。
【0032】
この段階では、上述のように、まだ、何のコンテクスト情報も共有データベースに記憶されていない(S301のN)。そのため、S205Aにおいてサービス提供サーバXは、HTTPレスポンスを、コンテクスト情報だけとともに、セッション管理サーバXに返信することとなる。
【0033】
セッション管理サーバXは、HTTPレスポンスを受信すると、受信したHTTPレスポンスを、セッションIDとともに、クライアント装置Xに転送する(S206A)。すなわち、第1動作モードでは、セッション管理サーバ4は、HTTPレスポンスを受信すると、
図6に示す応答送信処理を実行するようになっている。そのため、セッション管理サーバXは、HTTPレスポンスに含まれるクッキー情報中にセッションIDが含まれるか否かを判定する(S401)。そして、HTTPレスポンスに含まれるクッキー情報中にセッションIDが含まれない場合(S401のN)、セッション管理サーバXは、そのHTTPレスポンスを、HTTPレスポンスの送信元であるサービス提供サーバXのセッションIDとともに、クライアント装置Xに返信する(S402)。一方、HTTPレスポンスに含まれるクッキー情報中にセッションIDが含まれる場合(S401のY)、セッション管理サーバXは、そのHTTPレスポンスをそのままクライアント装置Xに返信する(S403)。
【0034】
この段階では、HTTPレスポンス中のクッキー情報にセッションIDが含まれない。そのため、S206Aでセッション管理サーバXは、HTTPレスポンスを、サービス提供サーバXのセッションIDとともにクライアント装置Xに返信することとなる。なお、セッションIDは、クッキー情報としてHTTPレスポンスに含まれる。
【0035】
HTTPレスポンスを受信したクライアント装置Xは、HTTPレスポンス中のクッキー情報を記憶装置に保存する。そして、クッキー情報を含むHTTPリクエストを、セッション管理サーバXに送信する(S207)。クッキー情報には、サービス提供サーバXのセッションIDと、コンテクスト情報と、が含まれる。
【0036】
セッション管理サーバXは、クライアント装置Xから送信されたHTTPリクエストを受信すると、受信したHTTPリクエストをキューにエンキューする。そして、セッション管理サーバXは、受信したHTTPリクエストをデキューする。上述のように、第1動作モードでは、セッション管理サーバ4は、受信したHTTPリクエストにクッキー情報が含まれる場合、そのクッキー情報中のセッションIDにより識別されるサービス提供サーバ6にそのHTTPリクエストを転送するようになっている。この点、この段階では、HTTPリクエストにクッキー情報が含まれる。そのため、セッション管理サーバXは、HTTPリクエストに含まれるクッキー情報中のセッションIDにより識別されるサービス提供サーバXに、HTTPリクエストを転送する(S208A)。
【0037】
サービス提供サーバXは、セッション管理サーバXから転送されたHTTPリクエストを受信すると、受信したHTTPリクエストをキューにエンキューする。そして、サービス提供サーバXは、受信したHTTPリクエストをデキューする。サービス提供サーバ6は、クッキー情報中にコンテクスト情報を含むHTTPリクエストを受信した場合、第1動作モードにおいても第2動作モードにおいても、
図7に示す第2返信処理を実行するようになっている。そのため、サービス提供サーバXは、S209のステップにおいて、
図8に示す第2返信処理を実行する。本実施形態では、それぞれのサービス提供サーバ6の記憶装置に、コンテクスト情報とセッションの進行度を示すセッション進行度と、を関連づけたコンテクスト管理データベース(以下、コンテクスト管理DBと表記する)が設けられる。サービス提供サーバXは、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が、コンテクスト管理DBに記憶されているか否かを判定する(S501)。そして、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が、コンテクスト管理DBに記憶されていない場合(S501のN)、クッキー情報中のコンテクスト情報を、現段階でのセッションの進行度を示すセッション進行度に関連づけてコンテクスト管理DBに保存する(S502)。また、所定のHTTPレスポンスを、クッキー情報中のコンテクスト情報とともに、セッション管理サーバXに送信する(S503)。具体的には、サービス提供サーバXは、
図3Bに示す設定画面のウェブページをHTTPレスポンスとして送信する。なお、コンテクスト情報は、クッキー情報としてHTTPレスポンスに含まれる。
【0038】
一方、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が、コンテクスト管理DBに記憶されている場合(S501のY)、クッキー情報中のコンテクスト情報と同一のコンテクスト情報に関連づけられたセッション進行度に応じたHTTPレスポンスを、コンテクスト情報とともにセッション管理サーバXに送信する(S504)。また、クッキー情報中のコンテクスト情報と同一のコンテクスト情報に関連づけられたセッション進行度を更新する。なお、コンテクスト情報は、クッキー情報としてHTTPレスポンスに含まれる。
【0039】
この段階では、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が、コンテクスト管理DBに記憶されていない。そこで、クッキー情報中のコンテクスト情報を、現段階でのセッションの進行度を示すセッション進行度に関連づけてコンテクスト管理DBに保存し(S502)、
図3Bに示す設定画面のウェブページをHTTPレスポンスとして、クッキー情報中のコンテクスト情報とともに、セッション管理サーバXに送信することとなる(S503)。
【0040】
セッション管理サーバXは、HTTPレスポンスを受信する。上述したように、第1動作モードでは、セッション管理サーバ4は、HTTPレスポンスを受信すると、
図6に示す応答送信処理を実行するようになっている。そのため、セッション管理サーバXは、S210Aのステップにおいて、応答送信処理を実行する。この段階では、HTTPレスポンス中のクッキー情報にセッションIDが含まれない。そのため、S210Aでセッション管理サーバXは、HTTPレスポンスを、サービス提供サーバXのセッションIDとともにクライアント装置Xに返信することとなる。なお、セッションIDは、クッキー情報としてHTTPレスポンスに含まれる。その結果、HTTPレスポンスを受信したクライアント装置Xにおいて、HTTPレスポンスに応じた画面が表示される。この段階では、
図3Bに示す設定画面が表示される。また、HTTPレスポンス中のクッキー情報が記憶装置に保存される。
【0041】
その後、ユーザは、
図3Cに示す案内画面が表示されるまで、クライアント装置Xにおいて、サービス提供サーバXとのセッションを進める操作を行う。セッション管理システム1では、セッションを進める操作が行われるたびに、
図8のシーケンス図に示す処理が実行される。
【0042】
すなわち、クライアント装置Xは、記憶装置に保持しているクッキー情報を含むHTTPリクエストを、セッション管理サーバXに送信する(S601)。クッキー情報には、サービス提供サーバXのセッションIDと、コンテクスト情報と、が含まれる。
【0043】
上述のように、第1動作モードでは、セッション管理サーバ4は、受信したHTTPリクエストにクッキー情報が含まれる場合、そのクッキー情報中のセッションIDにより識別されるサービス提供サーバ6にそのHTTPリクエストを転送するようになっている。この点、この段階では、HTTPリクエストにクッキー情報が含まれる。そのため、セッション管理サーバXは、HTTPリクエストに含まれるクッキー情報中のセッションIDにより識別されるサービス提供サーバXに、HTTPリクエストを転送する(S602A)。
【0044】
また、上述のように、サービス提供サーバ6は、クッキー情報中にコンテクスト情報を含むHTTPリクエストを受信した場合、第1動作モードにおいても第2動作モードにおいても、
図7に示す第2返信処理を実行するようになっている。そのため、HTTPリクエスト受信したサービス提供サーバXは、第2返信処理を実行する(S603)。この段階では、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が、コンテクスト管理DBに記憶されている。そのため、サービス提供サーバXは、クッキー情報中のコンテクスト情報と同一のコンテクスト情報に関連づけられたセッション進行度に応じたHTTPレスポンスを、コンテクスト情報とともにセッション管理サーバXに返信する。また、クッキー情報中のコンテクスト情報と同一のコンテクスト情報に関連づけられたセッション進行度を更新する。
【0045】
また、上述のように、第1動作モードでは、セッション管理サーバ4は、HTTPレスポンスを受信すると、
図6に示す応答送信処理を実行するようになっている。そのため、HTTPレスポンスを受信したセッション管理サーバXは、応答送信処理を実行する(S604A)。この段階では、HTTPレスポンス中のクッキー情報にセッションIDが含まれない。そのため、セッション管理サーバXは、HTTPレスポンスを、サービス提供サーバXのセッションIDとともにクライアント装置Xに返信することとなる(S402)。なお、セッションIDは、クッキー情報としてHTTPレスポンスに含まれる。その結果、HTTPレスポンスを受信したクライアント装置Xにおいて、HTTPレスポンスに応じた画面が表示される。
【0046】
ここで、ユーザがまずクライアント装置2aにて画像処理サービスにログインし、サービス提供サーバXとの間で、
図3Cに示す案内画面が表示されるまでセッションを進めた後、クライアント装置2bにて画像処理サービスにログインしなおす場合を想定する。この場合、クライアント装置2bから最初に送信されたHTTPリクエストが
図2のS102においてサービス提供サーバXとは異なるサービス提供サーバYに転送される場合がある。しかし、以下の理由から、このような場合でも、サービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進めることができるようになっている。
【0047】
図9は、第1動作モードにおいてクライアント装置Xたるクライアント装置2bから最初に送信されたHTTPリクエストがサービス提供サーバYに転送された場合に、セッション管理システム1で実行される処理を示すシーケンス図である。この場合、まず、S201で送信されるHTTPリクエストのクッキー情報には、サービス提供サーバYのセッションIDが含まれる。そのため、
図2とは異なり、S202Aにおいて、HTTPリクエストは、サービス提供サーバYに転送されてしまう。
【0048】
しかし、共有データベース10には、S204で生成されるコンテクスト情報と同一のコンテクスト情報が記憶済である。そのため、S205Aの第1返信処理(
図5参照)において、S304のステップが実行されることとなるため、サービス提供サーバYは、HTTPレスポンスを、コンテクスト情報だけでなく、そのコンテクスト情報に関連づけられたサービス提供サーバXのセッションIDとともに、セッション管理サーバXに返信することになる。
【0049】
しかも
図6に示す応答返信処理では、上述したように、セッション管理サーバ4は、クッキー情報中にセッションIDを含むHTTPレスポンスを受信した場合(S401のY)、HTTPレスポンスをそのままクライアント装置Xに転送する(S403)。そのため、S206AでHTTPレスポンスを受信したセッション管理サーバXは、受信したHTTPレスポンスをそのままクライアント装置Xを転送する。そのため、S206Aでは、HTTPレスポンスの送信元であるサービス提供サーバYのセッションIDではなく、サービス提供サーバXのセッションIDが、クライアント装置Xに送信されることとなる。そのため、以後のS207やS601で、クライアント装置Xから送信されるHTTPリクエストにサービス提供サーバXのセッションIDが含まれることになり、その結果、以後のS208AやS602AでHTTPリクエストが常にサービス提供サーバXに転送されることになる。従って、クライアント装置2bにサービスにログインし直したユーザは、クライアント装置2aを用いてサービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進めることができる。そのため、例えば、ログインし直したとき、
図3Bに示す設定画面ではなく、
図3Cの案内画面の次に表示されるべき、
図3Dの指示待ち画面が表示される。また、セッションを進める操作が行われるたびに、
図8のシーケンス図に示すようにして、サービス提供サーバXとのセッションが進められることになる。
【0050】
このように、第1動作モードでは、コンテクスト情報が、そのコンテクスト情報を最初に生成したサービス提供サーバ6のセッションIDに関連づけて共有データベース10に保存される(
図5のS302参照)。その上、サービス提供サーバ6が、コンテクスト情報を生成した場合に、生成したコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶済であれば、HTTPレスポンスを、そのコンテクスト情報に関連づけて記憶されるセッションIDとともに返信する(
図5のS304参照)。そのため、クライアント装置2bでサービスにログインし直したユーザは、クライアント装置2aを用いてサービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進めることができる。
【0051】
[第2動作モード]
第2動作モードにおいても、クライアント装置2bにサービスにログインし直したユーザは、クライアント装置2aを用いてサービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進めることができるようになっている。しかし、第1動作モードとはやり方が異なる。すなわち、第1動作モードでは、HTTPリクエストの送信先をサービス提供サーバYからサービス提供サーバXに戻す作業をサービス提供サーバ6が主体となって行っていたが、第2動作モードでは、この作業を、セッション管理サーバ4が主体となって行う。
【0052】
図10は、第2動作モードにおいて、ログイン画面でユーザが上記所定のボタンを押した場合に、セッション管理システム1において実行される処理を示すシーケンス図である。
図11は、第2動作モードにおいて、セッションを進める操作が行われるたびに、セッション管理システム1において実行される処理を示すシーケンス図である。
【0053】
すなわち、第2動作モードでは、サービス提供サーバ6は、認証情報を含むHTTPリクエストを受信した場合に、
図5に示す第1返信処理を実行せずに、ただ単に、HTTPレスポンスをリダイレクト指示として、認証情報から生成したコンテクスト情報とともに、HTTPリクエストの送信元のセッション管理サーバ4に返信するようになっている。そのため、S205Aの代わりにS205Bが実行され、S205Bにおいて、サービス提供サーバXは、ただ単に、HTTPレスポンスをリダイレクト指示として、コンテクスト情報とともに、セッション管理サーバXに返信することとなる。
【0054】
また、第2動作モードでは、セッション管理サーバ4は、HTTPレスポンスを受信した場合に、
図6に示す応答送信処理を実行せずに、ただ単に、HTTPレスポンスを、HTTPレスポンスの送信元のサービス提供サーバ6のセッションIDとともに、クライアント装置2に転送するようになっている。そのため、S206A、S210A、及びS604Aの代わりに、S206B、S210B、S604Bが実行され、これらにおいて、セッション管理サーバXは、HTTPレスポンスを、サービス提供サーバXのセッションIDとともに、クライアント装置Xに転送することとなる。
【0055】
しかも、第1動作モードでは、セッション管理サーバ4は、クッキー情報中にセッションIDを含むHTTPリクエストを受信した場合に、ただ単に、そのリクエストを、クッキー情報中のセッションIDにより識別されるサービス提供サーバ6に転送していたが、第2動作モードでは、
図12に示す転送処理を実行するようになっている。そのため、S202A、S208A、及びS602Aの代わりに、S202B、S208B、及びS602Bが実行され、これらにおいて、転送処理が実行されることとなる。
【0056】
図12は、転送処理を示すフロー図である。まず、セッション管理サーバXは、受信したHTTPリクエストのクッキー情報にコンテクスト情報が含まれるか否かを判定する(S701)。クッキー情報にコンテクスト情報が含まれない場合(S701のN)、セッション管理サーバXは、クッキー情報中のセッションIDにより識別されるサービス提供サーバ6に、HTTPリクエストを転送する(S702)。S201で送信されるHTTPリクエストのクッキー情報には、コンテクスト情報が含まれないがサービス提供サーバXのセッションIDが含まれる。そのため、S202Bにおいては、HTTPリクエストが、サービス提供サーバXに転送されることとなる。
【0057】
一方、クッキー情報にコンテクスト情報が含まれる場合(S701のY)、セッション管理サーバXは、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶済であるか否かを判定する(S703)。そして、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶されていない場合(S703のN)、セッション管理サーバXは、S702のステップと同様にしてクッキー情報中のセッションIDにより識別されるサービス提供サーバ6にHTTPリクエストを転送し(S704)、クッキー情報中のコンテクスト情報とセッションIDとを関連づけて共有データベース10に保存する(S705)。S207で送信されるHTTPリクエストのクッキー情報には、コンテクスト情報とサービス提供サーバXのセッションIDとが含まれる。しかし、このコンテクスト情報と同一のコンテクスト情報はまだ共有データベース10に記憶されていない。そのため、S208Bにおいては、HTTPリクエストが、サービス提供サーバXに転送されることとなる。
【0058】
一方、クッキー情報中のコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶済である場合(S703のY)、セッション管理サーバXは、クッキー情報中のコンテクスト情報と同一のコンテクスト情報に関連づけられたセッションIDにより識別されるサービス提供サーバ6に、HTTPリクエストを転送する(S706)。S601で送信されるHTTPリクエストのクッキー情報には、コンテクスト情報とサービス提供サーバXのセッションIDとが含まれる。しかも、このコンテクスト情報と同一のコンテクスト情報がサービス提供サーバXのセッションIDに関連づけて共有データベース10に記憶済である。そのため、S602Bにおいては、HTTPリクエストが、サービス提供サーバXに転送されることとなる。
【0059】
第2動作モードにおいても、ユーザがサービスにログインし直そうとしたときにS102のステップでHTTPリクエストがサービス提供サーバYに転送されると、S202BのステップでHTTPリクエストがサービス提供サーバYに転送されてしまう。しかし、S207やS601で送信されるHTTPリクエストのクッキー情報に含まれるコンテクスト情報は、サービス提供サーバXのセッションIDに関連づけて既に共有データベース10に記憶済である。そのため、S208BやS602BでHTTPリクエストがサービス提供サーバXが転送されることとなるので、ユーザがサービス提供サーバXと進めていたセッションが、再度サービス提供サーバXと進められることとなる。
【0060】
このように、第2動作モードでも、コンテクスト情報が、そのコンテクスト情報を最初に生成したサービス提供サーバ6のセッションIDに関連づけて共有データベース10に保存される(
図12のS705参照)。その上、セッション管理サーバ4が、コンテクスト情報を含むHTTPリクエストを受信した場合、HTTPリクエスト中のコンテクスト情報と同一のコンテクスト情報が共有データベース10に記憶済であれば、それに関連づけて記憶されるセッションIDにより識別されるサービス提供サーバ6に、HTTPリクエストを転送する(
図12のS706参照)。そのため、第2動作モードにおいても、クライアント装置2bでサービスにログインし直したユーザは、クライアント装置2aを用いてサービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進められる。
【0061】
[動作モード管理サーバ]
ところで、サービス提供サーバ6におけるHTTPリクエストの処理効率が悪いと、サービス提供サーバ6がボトルネックとなるためサービス提供サーバ6におけるリクエスト処理時間(HTTPリクエストを受信してからHTTPレスポンスを送信するまで時間)が長くなり、レスポンスタイムが長くなる。反対に、セッション管理サーバ4におけるHTTPリクエストの処理効率が悪いと、セッション管理サーバ4がボトルネックとなるためセッション管理サーバ4におけるリクエスト振り分け時間(HTTPリクエストを受信してからそれをサービス提供サーバ6に転送するまでの時間)が長くなり、レスポンスタイムが長くなる。
【0062】
そこで、セッション管理システム1では、動作モード管理サーバ12が、セッション管理サーバ4におけるHTTPリクエストの処理効率に比してサービス提供サーバ6におけるHTTPリクエストの処理効率が悪い場合に、サービス提供サーバ6に掛かっている負荷を下げるべく、動作モードを第1動作モードから第2動作モードへと切り替えるようになっている。逆に、サービス提供サーバ6におけるHTTPリクエストの処理効率に比してセッション管理サーバ4におけるHTTPリクエストの処理効率が悪い場合に、セッション管理サーバ4の負荷を下げるべく、動作モードを第2動作モードから第1動作モードへと切り替えるようになっている。こうすることで、レスポンスタイムの長時間化を抑制している。以下、この点について説明する。
【0063】
図13は、動作モード管理サーバ12にて実現される機能群を示す機能ブロック図である。同図に示すように、動作モード管理サーバ12では、第1パフォーマンス情報取得部14、第2パフォーマンス情報取得部16、比較部18、及び動作モード切替部20が実現される。これらは、記憶装置に記憶されるプログラムに従って動作するマイクロプロセッサにより実現される。
【0064】
第1パフォーマンス情報取得部14は、サービス提供サーバ6におけるHTTPリクエストの処理効率を表す第1パフォーマンス情報C1を取得する(後述する
図14のS805乃至S808参照)。ここで、第1パフォーマンス情報C1は、サービス提供サーバ6一台当たりのロードアベレージ、過去一定時間内に受信したHTTPリクエスト一つ当たりのリクエスト処理時間などである。ロードアベレージは、CPU使用率とも呼ばれる。本実施形態では、ロードアベレージや過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト処理時間が監視項目として各サービス提供サーバ6に登録されており、第1パフォーマンス情報取得部14は、各サービス提供サーバ6から受信した監視結果に基づいて第1パフォーマンス情報C1を取得する。ここでは、第1パフォーマンス情報取得部14は、過去一定時間内に受信したHTTPリクエスト一つあたりのリクエスト処理時間を、第1パフォーマンス情報C1として取得しており、第1パフォーマンス情報C1の値が大きいほど、処理効率が悪く異なる。なお、第1パフォーマンス情報C1は、過去一定時間内に受信したHTTPリクエスト一つ当たりのリクエスト処理時間の変化率、及び過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト処理時間の分散値などであってもよい。
【0065】
第2パフォーマンス情報取得部16は、セッション管理サーバ4におけるHTTPリクエストの処理効率を表す第2パフォーマンス情報C2を取得する(後述する
図14のS801乃至S804参照)。第2パフォーマンス情報C2は、セッション管理サーバ4一台あたりのロードアベレージ、過去一定時間内に受信したHTTPリクエスト一つあたりのリクエスト振り分け時間などである。ロードアベレージや過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト振り分け時間が監視項目として各セッション管理サーバ4に登録されており、第2パフォーマンス情報取得部16は、各セッション管理サーバ4から受信した監視結果に基づいて第2パフォーマンス情報C2を取得する。ここでは、第2パフォーマンス情報取得部16は、過去一定時間内に受信したHTTPリクエスト一つあたりのリクエスト振り分け時間を、第2パフォーマンス情報C2として取得しており、第2パフォーマンス情報C2の値が大きいほど、処理効率が悪くなる。なお、過去一定時間内に受信したHTTPリクエスト一つあたりのリクエスト振り分け時間の変化率、及び過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト振り分け時間の分散値などである。
【0066】
比較部18は、第1パフォーマンス情報C1と第2パフォーマンス情報C2とを比較する。また、動作モード切替部20は、比較部18の比較結果に応じて、動作モードを切り替える。本実施形態では、第1パフォーマンス情報C1であるHTTPリクエスト一つあたりのリクエスト処理時間が第2パフォーマンス情報C2であるHTTPリクエスト一つあたりのリクエスト振り分け時間を超えているとき、セッション管理サーバ4に比してサービス提供サーバ6の処理効率が悪くサービス提供サーバ6がボトルネックとなると考えられる。そのため、この場合、動作モード切替部20は、サービス提供サーバ6の負荷を下げるべく、動作モードを第1動作モードから第2動作モードへと切り替える。こうして、第1パフォーマンス情報C1により表される処理効率が第2パフォーマンス情報C2により表される処理効率より低いとき、動作モードが第1動作モードから第2動作モードへと切り替えられる。
【0067】
一方、第1パフォーマンス情報C1が第2パフォーマンス情報C2以下であるとき、サービス提供サーバ6に比してセッション管理サーバ4の処理効率が悪くセッション管理サーバ4がボトルネックとなると考えられる。この場合、動作モード切替部20は、セッション管理サーバ4の負荷を下げるべく、動作モードを第2動作モードから第1動作モードへと切り替える。こうして、第2パフォーマンス情報C2により表される処理効率が第1パフォーマンス情報C1により表される処理効率以上であるとき、動作モードが第2動作モードから第1動作モードへと切り替えられる。
【0068】
図14は、動作モード管理サーバ12にて実行される処理を示すフロー図である。
図14に示す処理は、一定時間間隔で繰り返し実行される。まず、第2パフォーマンス情報取得部16が、各セッション管理サーバ4に要求を送り、監視結果として、過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト振り分け時間を、各セッション管理サーバ4から受信する(S801)。また、第2パフォーマンス情報取得部16は、監視結果に基づいて、セッション管理システム1に含まれるセッション管理サーバ群全体で、過去一定時間内に受信したHTTPリクエストの総数を総リクエスト数S1として算出する(S802)。また、第2パフォーマンス情報取得部16は、監視結果に基づいて、セッション管理システム1に含まれるセッション管理サーバ群全体で、過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト振り分け時間の総和を総振り分け時間T1として算出する(S803)。そして、第2パフォーマンス情報取得部16は、総振り分け時間T1を総リクエスト数S1で除算した商(すなわち、過去一定時間に受信したHTTP一つあたりのリクエスト振り分け時間)を、第2パフォーマンス情報C2として算出する(S804)。
【0069】
そして、第1パフォーマンス情報取得部14が、各サービス提供サーバ6に要求を送り、監視結果として、過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト処理時間を、各サービス提供サーバ6から受信する(S805)。また、第1パフォーマンス情報取得部14は、監視結果に基づいて、セッション管理システム1に含まれるサービス提供サーバ群全体で、過去一定時間に受信したHTTPリクエストの総数を総リクエスト数S2として算出する(S806)。また、第1パフォーマンス情報取得部14は、監視結果に基づいて、セッション管理システム1に含まれるサービス提供サーバ群全体で、過去一定時間内に受信したHTTPリクエストそれぞれのリクエスト処理時間の総和を総リクエスト処理時間T2として算出する(S807)。そして、第1パフォーマンス情報取得部16は、総リクエスト処理時間T2を総リクエスト数S2で除算した商(すなわち、過去一定時間内に受信したHTTP一つあたりのリクエスト処理時間)を、第1パフォーマンス情報C1として算出する(S808)。
【0070】
こうして、第1パフォーマンス情報C1と第2パフォーマンス情報C2とが算出されると、比較部18が、第1パフォーマンス情報C1が第2パフォーマンス情報C2より大きいか否かを判定する(S809)。S809では、セッション管理サーバ4に比してサービス提供サーバ6の処理効率が悪いかどうかが判定されている。
【0071】
第1パフォーマンス情報C1が第2パフォーマンス情報C2より大きい場合(S809のY)、動作モード切替部20が、以下に説明する処理を実行する。すなわち、動作モード切替部20は、動作モード管理サーバ12の記憶装置に記憶されるモード情報に基づいて、現在の動作モードが第1動作モードであるか否かを判定する(S810A)。そして、現在の動作モードが第1動作モードである場合(S810AのY)、動作モードを第2動作モードへと切り替える(S811A)。すなわち、S811Aで動作モード切替部20は、記憶装置に記憶されるモード情報を更新する。また、動作モードの切替を指示する切替指示を、各セッション管理サーバ4及び各サービス提供サーバ6に送信する。切替指示を受信した各セッション管理サーバ4及び各サービス提供サーバ6では、記憶装置に記憶されるモード情報が更新され、HTTPリクエストの受付が一時的に停止されることとなる。なお、現在の動作モードが第2動作モードである場合(S810AのN)、処理が終了される。
【0072】
一方、第1パフォーマンス情報C1が第2パフォーマンス情報C2以下である場合(S809のN)、動作モード切替部20は、以下に説明する処理を実行する。すなわち、動作モード切替部20は、動作モード管理サーバ12の記憶装置に記憶されるモード情報に基づいて、現在の動作モードが第2動作モードであるか否かを判定する(S810B)。そして、現在の動作モードが第2動作モードである場合(S810BのY)、動作モードを第1動作モードへと切り替える(S811B)。すなわち、S811Bで動作モード切替部20は、記憶装置に記憶されるモード情報を更新する。また、上述した切替指示を、各セッション管理サーバ4及び各サービス提供サーバ6に送信する。切替指示を受信した各セッション管理サーバ4及び各サービス提供サーバ6では、記憶装置に記憶されるモード情報が更新され、HTTPリクエストの受付が一時的に停止されることとなる。なお、現在の動作モードが第1動作モードである場合(S810BのN)、処理が終了されることとなる。
【0073】
このように、動作モード管理サーバ12は、セッション管理サーバ4におけるHTTPリクエストの処理効率に比してサービス提供サーバ6におけるHTTPリクエストの処理効率が悪いとき、動作モードを第1動作モードから第2動作モードへと切り替える一方で、サービス提供サーバ6におけるHTTPリクエストの処理効率に比してセッション管理サーバ4におけるHTTPリクエストの処理効率が悪いときは、動作モードを第2動作モードから第1動作モードへと切り替える。そのため、セッション管理システム1では、クライアント装置2bでサービスにログインし直したユーザが、クライアント装置2aを用いてサービス提供サーバXと進めていたセッションを、サービス提供サーバXと再び進められるだけでなく、レスポンスタイムの長時間化が抑制されるようにもなる。
【0074】
なお、本発明の実施形態は、上記実施形態だけに限らない。
【0075】
例えば、サービス提供サーバ6におけるHTTPリクエストの処理効率を表す情報であれば、第1パフォーマンス情報は、どのような情報であってもよい。セッション管理サーバ4におけるHTTPリクエストの処理効率を表す情報であれば、第2パフォーマンス情報は、どのような情報であってもよい。
【0076】
また、共有データベース10が、各セッション管理サーバ4の記憶装置にも備えられていてもよい。そして、第2動作モードにおいてセッション管理サーバ4が
図12に示す転送処理を行う際(例えば、S703、S705及びS706など)、自機の記憶装置に備えられた共有データベース10にアクセスするようにしてもよい。この場合、所定のタイミング(例えば動作モードが切り替わるタイミング)で、全共有データベース10をマージしたデータベースを生成し、生成したデータベースで全共有データベース10を上書き更新すればよい。
【0077】
また、動作モード管理サーバ12に、オートスケーリング機能を持たせてもよい。例えば、サービス提供サーバ6の処理効率がセッション管理サーバ4のそれより低いが現在の動作モードが第2動作モードである場合(
図14のS810AのN)、セッション管理システム1にサービス提供サーバ6を追加してもよい。また、例えば、セッション管理サーバ4の処理効率がサービス提供サーバ6のそれより低いが現在の動作モードが第1動作モードである場合(S810BのN)、セッション管理システム1にセッション管理サーバ4を追加してもよい。
【0078】
また、第1パフォーマンス情報取得部14、第2パフォーマンス情報取得部16、比較部18、及び動作モード切替部20は、それぞれ、動作モード管理サーバ12以外の装置(例えば、セッション管理サーバ4、サービス提供サーバ6)にて実現されてもよい。すなわち、これらの機能は、必ずしも動作モード管理サーバ12にて実現されなくてもよい。