(57)【要約】【課題】複数のＷｅｂサーバでの重複したセッション情報の保持をなくし、かつ、Ｗｅｂサーバのスケールアウトや障害復旧を容易に行う。【解決手段】セッション情報管理システム１のＷｅｂサーバ２０は、Ｗｅｂサーバ２０それぞれに１対１で対応する不揮発ストレージ２００を備え、Ｗｅｂサーバ２０自身のアドレスを付して更新した新セッション情報を生成し、その新セッション情報を不揮発ストレージ２００に記憶した上で、Ｗｅｂクライアント１０に送信する。Ｗｅｂクライアント１０は、Ｗｅｂサーバ２０から受信した新セッション情報を、セッション情報記憶部１００に記憶する。【選択図】図１
2018132920.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂクライアントに対してＷｅｂサービスを提供する複数のＷｅｂサーバを備えるセッション情報管理システムであって、
前記Ｗｅｂサーバのそれぞれは、
前記Ｗｅｂサーバそれぞれに１対１で対応する不揮発ストレージと、
前記Ｗｅｂクライアントから前記Ｗｅｂサービスの提供のための初期セッション情報を受信するセッション情報受信部と、
前記受信した初期セッション情報に、当該Ｗｅｂサーバのアドレスを付して更新したセッション情報を示す新セッション情報を生成するとともに、生成した前記新セッション情報を前記不揮発ストレージに記憶するセッション情報生成部と、
前記生成した新セッション情報を前記Ｗｅｂクライアントに送信するセッション情報送信部と、を備え、
前記Ｗｅｂクライアントは、
前記Ｗｅｂサービスの提供を受けるためのセッション情報を記憶するセッション情報記憶部と、
前記初期セッション情報をユーザ登録サーバから取得するユーザ登録要求部と、
前記初期セッション情報を前記Ｗｅｂサーバに送信するとともに、前記Ｗｅｂサーバから受信した前記新セッション情報を前記セッション情報記憶部に記憶するセッション情報処理部と、を備えること
を特徴とするセッション情報管理システム。
【請求項２】
前記Ｗｅｂクライアントの前記セッション情報処理部は、
当該Ｗｅｂクライアントが移動することにより、前記新セッション情報を用いた前記Ｗｅｂサーバとの間のＷｅｂサービスの提供が受けられない場合に、
前記セッション情報記憶部に記憶された新セッション情報を抽出し、新たにＷｅｂサービスの提供先となる他のＷｅｂサーバに、抽出した前記新セッション情報を送信すること
を特徴とする請求項１に記載のセッション情報管理システム。
【請求項３】
前記Ｗｅｂサーバのそれぞれは、さらに、セッション情報削除部を備え、
前記セッション情報生成部が、前記Ｗｅｂクライアントから前記新セッション情報を受信した場合に、当該Ｗｅｂサーバのアドレスを付して更新した第２の新セッション情報を生成し、前記不揮発ストレージに記憶し、
前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、
前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、
前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除すること
を特徴とする請求項２に記載のセッション情報管理システム。
【請求項４】
前記Ｗｅｂサーバのそれぞれは、さらに、セッション情報取得部およびセッション情報削除部を備え、
前記セッション情報取得部は、自身の不揮発ストレージに記憶されたセッション情報では、前記Ｗｅｂクライアントに対するＷｅｂサービスの提供ができないと判定した場合に、前記Ｗｅｂサーバのそれぞれに対し、当該Ｗｅｂクライアントに関する前記新セッション情報を問い合わせて取得し、自身のアドレスを付して更新した第２の新セッション情報を生成して、前記不揮発ストレージに記憶し、
前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、
前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、
前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除すること
を特徴とする請求項１に記載のセッション情報管理システム。
【請求項５】
前記Ｗｅｂサーバのそれぞれは、さらに、セッション情報分配部、サーバ負荷監視部およびセッション情報削除部を備え、
前記サーバ負荷監視部は、自身のＷｅｂサーバの負荷情報を監視し、当該負荷情報の値が所定の閾値を超えたことを示す監視情報を、前記セッション情報分配部に出力し、
前記セッション情報分配部は、
前記監視情報を取得した場合に、自身の前記不揮発ストレージに記憶しているセッション情報を、自身が担当するセッション情報と、増設されたＷｅｂサーバに担当させるセッション情報とに分配し、
前記Ｗｅｂクライアントから、前記増設されたＷｅｂサーバに担当させるセッション情報である前記新セッション情報を用いたＷｅｂサービスの提供要求を受信すると、前記増設されたＷｅｂサーバのアドレスを含むリダイレクト指示を当該Ｗｅｂクライアントに送信し、
前記リダイレクト指示を受信したＷｅｂクライアントは、
前記増設されたＷｅｂサーバのアドレスを用いて当該Ｗｅｂサーバに前記新セッション情報を送信し、
前記増設されたＷｅｂサーバは、
前記セッション情報生成部が、前記Ｗｅｂクライアントから前記新セッション情報を受信し、当該増設されたＷｅｂサーバのアドレスを付して更新した第２の新セッション情報を生成し、前記不揮発ストレージに記憶し、
前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、
前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、
前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除すること
を特徴とする請求項１に記載のセッション情報管理システム。
【請求項６】
Ｗｅｂクライアントに対してＷｅｂサービスを提供する複数のＷｅｂサーバを備えるセッション情報管理システムのセッション情報管理方法であって、
前記Ｗｅｂサーバのそれぞれは、
前記Ｗｅｂサーバそれぞれに１対１で対応する不揮発ストレージを備え、
前記Ｗｅｂクライアントから前記Ｗｅｂサービスの提供のための初期セッション情報を受信するステップと、
前記受信した初期セッション情報に、当該Ｗｅｂサーバのアドレスを付して更新したセッション情報を示す新セッション情報を生成するとともに、生成した前記新セッション情報を前記不揮発ストレージに記憶するステップと、
前記生成した新セッション情報を前記Ｗｅｂクライアントに送信するステップと、を実行し、
前記Ｗｅｂクライアントは、
前記Ｗｅｂサービスの提供を受けるためのセッション情報を記憶するセッション情報記憶部を備え、
前記初期セッション情報をユーザ登録サーバから取得するステップと、
前記初期セッション情報を前記Ｗｅｂサーバに送信するとともに、前記Ｗｅｂサーバから受信した前記新セッション情報を前記セッション情報記憶部に記憶するステップと、を実行すること
を特徴とするセッション情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷｅｂクライアントとＷｅｂサーバとの間の状態を管理するセッション情報管理システムおよびセッション情報管理方法に関する。
【背景技術】
【０００２】
従来、ＷｅｂサーバがＷｅｂブラウザを通じてＷｅｂクライアントに一時的にデータを書き込んで保存させる仕組みとして、Ｃｏｏｋｉｅが利用されている。このＣｏｏｋｉｅによりＷｅｂクライアントが保存できる情報量は制限されており、Ｗｅｂクライアントから大きなデータサイズの送信を行うことは難しい、そのため、Ｗｅｂサーバ側で情報を保持する方式を採っていた。
【０００３】
Ｗｅｂシステムに用いられるＷｅｂ３層（プレゼンテーション層、アプリケーション層、データ層）の構成においては、Ｗｅｂサーバ、および、当該Ｗｅｂサーバに通信するＷｅｂクライアントとの間の状態（セッション情報等）を管理するデータベースが存在する。そして、Ｗｅｂクライアントの数が増加すると、Ｗｅｂサーバの増設だけでは対応できなくなり、データベースをスケールアウトしてセッション情報等を分割して格納する必要があった（非特許文献１参照）。
【０００４】
一方、ＨＴＭＬ（HyperText Markup Language）５において、Ｗｅｂクライアント側にデータを保存する仕組みとして、Web Storageが規定されている（非特許文献２参照）。このWeb Storageでは、ＷｅｂサーバがＷｅｂクライアントに対してKey-Valueデータを保存させることができる。また、データ領域サイズもＣｏｏｋｉｅが4096Byte程度であったのに対し、５MB程度まで拡張され、より大きなデータを保存できるようになった。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“MySQL Utilities 1.5 manual  8.3.2 Example: Fabric and Sharding,”［online］，Oracle Corporation and/or its affiliates，［平成29年2月1日検索］、インターネット＜ＵＲＬ：https://dev.mysql.com/doc/mysql-utilities/1.5/en/fabric-quick-start-sharding.html＞
【非特許文献２】“HTML5 Local Storage,”［online］，w3schools，［平成29年2月1日検索］、インターネット＜ＵＲＬ：http://www.w3schools.com/html/html5_webstorage.asp＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これまでのＷｅｂシステムでは、上記のようにＷｅｂサーバ側が状態を管理するデータベースを保持し、そのデータベースに複数のＷｅｂサーバからのアクセスが認められている。そのため、データベースを保持するサーバを増設して負荷分散を行う際には、セッション情報等の状態データを新たなサーバに移行させる手順が複雑になる。これを回避するために、Web Storage等を利用してＷｅｂクライアント側にセッション情報等の状態データを保持させることが想定されるが、その場合には、Ｗｅｂクライアントが毎回すべてのセッション情報を送信することになり通信量が膨大になってしまう。また、Ｗｅｂクライアントは、Ｗｅｂサーバに比べ信頼性が低いため、状態データが失われる可能性が高まってしまう。
さらに、従来、ＷｅｂクライアントがＷｅｂサーバをまたがって移動する場合には、セッション情報を移動元と移動先のＷｅｂサーバにおいて同期して保持する必要がある。このため、Ｗｅｂクライアントが各Ｗｅｂサーバを移動するに伴って、重複したセッション情報が各Ｗｅｂサーバに残っていくという問題もある。
【０００７】
このような点を鑑みて本発明がなされたのであり、複数のＷｅｂサーバでの重複したセッション情報の保持をなくし、かつ、Ｗｅｂサーバのスケールアウトや障害復旧を容易に行うことができる、セッション情報管理システムおよびセッション情報管理方法を提供することを課題とする。
【課題を解決するための手段】
【０００８】
前記した課題を解決するため、請求項１に記載の発明は、Ｗｅｂクライアントに対してＷｅｂサービスを提供する複数のＷｅｂサーバを備えるセッション情報管理システムであって、前記Ｗｅｂサーバのそれぞれが、前記Ｗｅｂサーバそれぞれに１対１で対応する不揮発ストレージと、前記Ｗｅｂクライアントから前記Ｗｅｂサービスの提供のための初期セッション情報を受信するセッション情報受信部と、前記受信した初期セッション情報に、当該Ｗｅｂサーバのアドレスを付して更新したセッション情報を示す新セッション情報を生成するとともに、生成した前記新セッション情報を前記不揮発ストレージに記憶するセッション情報生成部と、前記生成した新セッション情報を前記Ｗｅｂクライアントに送信するセッション情報送信部と、を備え、前記Ｗｅｂクライアントが、前記Ｗｅｂサービスの提供を受けるためのセッション情報を記憶するセッション情報記憶部と、前記初期セッション情報をユーザ登録サーバから取得するユーザ登録要求部と、前記初期セッション情報を前記Ｗｅｂサーバに送信するとともに、前記Ｗｅｂサーバから受信した前記新セッション情報を前記セッション情報記憶部に記憶するセッション情報処理部と、を備えることを特徴とするセッション情報管理システムとした。
【０００９】
また、請求項６に記載の発明は、Ｗｅｂクライアントに対してＷｅｂサービスを提供する複数のＷｅｂサーバを備えるセッション情報管理システムのセッション情報管理方法であって、前記Ｗｅｂサーバのそれぞれが、前記Ｗｅｂサーバそれぞれに１対１で対応する不揮発ストレージを備え、前記Ｗｅｂクライアントから前記Ｗｅｂサービスの提供のための初期セッション情報を受信するステップと、前記受信した初期セッション情報に、当該Ｗｅｂサーバのアドレスを付して更新したセッション情報を示す新セッション情報を生成するとともに、生成した前記新セッション情報を前記不揮発ストレージに記憶するステップと、前記生成した新セッション情報を前記Ｗｅｂクライアントに送信するステップと、を実行し、前記Ｗｅｂクライアントが、前記Ｗｅｂサービスの提供を受けるためのセッション情報を記憶するセッション情報記憶部を備え、前記初期セッション情報をユーザ登録サーバから取得するステップと、前記初期セッション情報を前記Ｗｅｂサーバに送信するとともに、前記Ｗｅｂサーバから受信した前記新セッション情報を前記セッション情報記憶部に記憶するステップと、を実行することを特徴とするセッション情報管理方法とした。
【００１０】
このように、セッション情報管理システムのＷｅｂクライアントは、セッション情報を記憶する容量を有するセッション情報記憶部を備え、Ｗｅｂサーバが生成したセッション情報（新セッション情報）を記憶しておくことができる。また、Ｗｅｂサーバのそれぞれは、１対１で対応する不揮発ストレージに自身が生成したセッション情報（新セッション情報）を記憶しておく。
これにより、Ｗｅｂクライアントが複数のＷｅｂサーバを移動する場合であっても、移動先のＷｅｂサーバは、Ｗｅｂクライアントからセッション情報を取得すればよいため、セッション情報を移動元と移動先のＷｅｂサーバで同期する必要をなくすことができる。さらに、Ｗｅｂサーバは、対応する１つの不揮発ストレージにセッション情報を記憶することから、例えば、Ｗｅｂサーバのスケールアウトや障害復旧の際において、セッションデータを移行させる手順が複雑になるのを避けることができる。
【００１１】
請求項２に記載の発明は、前記Ｗｅｂクライアントの前記セッション情報処理部が、当該Ｗｅｂクライアントが移動することにより、前記新セッション情報を用いた前記Ｗｅｂサーバとの間のＷｅｂサービスの提供が受けられない場合に、前記セッション情報記憶部に記憶された新セッション情報を抽出し、新たにＷｅｂサービスの提供先となる他のＷｅｂサーバに、抽出した前記新セッション情報を送信することを特徴とする請求項１に記載のセッション情報管理システムとした。
【００１２】
このように、Ｗｅｂクライアントのセッション情報処理部は、Ｗｅｂクライアントが移動することにより、それまでのＷｅｂサーバとの間でＷｅｂサービスの提供を受けられない場合に、セッション情報記憶部に記憶しておいたセッション情報（新セッション情報）を、新たにＷｅｂサービスの提供先となるＷｅｂサーバに送信することができる。
これにより、Ｗｅｂクライアントが移動した場合あっても、Ｗｅｂクライアントが記憶するセッション情報（新セッション情報）を用いて、移動先のＷｅｂサーバがＷｅｂサービスを継続して提供することが可能となる。
【００１３】
請求項３に記載の発明は、前記Ｗｅｂサーバのそれぞれが、さらに、セッション情報削除部を備え、前記セッション情報生成部が、前記Ｗｅｂクライアントから前記新セッション情報を受信した場合に、当該Ｗｅｂサーバのアドレスを付して更新した第２の新セッション情報を生成し、前記不揮発ストレージに記憶し、前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除することを特徴とする請求項２に記載のセッション情報管理システムとした。
【００１４】
このように、新セッション情報を受信したＷｅｂサーバは、その新セッション情報に付されたアドレスを抽出し、そのアドレスのＷｅｂサーバに対して、新セッション情報の削除指示を送信することができる。よって、複数のＷｅｂサーバに同じセッション情報が重複して記憶されることを避けることができる。
【００１５】
請求項４に記載の発明は、前記Ｗｅｂサーバのそれぞれが、さらに、セッション情報取得部およびセッション情報削除部を備え、前記セッション情報取得部は、自身の不揮発ストレージに記憶されたセッション情報では、前記Ｗｅｂクライアントに対するＷｅｂサービスの提供ができないと判定した場合に、前記Ｗｅｂサーバのそれぞれに対し、当該Ｗｅｂクライアントに関する前記新セッション情報を問い合わせて取得し、自身のアドレスを付して更新した第２の新セッション情報を生成して、前記不揮発ストレージに記憶し、前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除することを特徴とする請求項１に記載のセッション情報管理システムとした。
【００１６】
このように、例えば、Ｗｅｂクライアントが記憶するセッション情報が障害等で喪失したことにより、ＷｅｂサーバがＷｅｂクライアントに対しＷｅｂサービスを提供できないと場合であっても、セッション情報取得部が、他のＷｅｂサーバそれぞれにそのＷｅｂクライアントに関するセッション情報を問い合わせ、当該セッション情報を記憶するＷｅｂサーバから取得できる。これにより、他のＷｅｂサーバがＷｅｂサービスを継続して提供することが可能となる。
【００１７】
請求項５に記載の発明は、前記Ｗｅｂサーバのそれぞれが、さらに、セッション情報分配部、サーバ負荷監視部およびセッション情報削除部を備え、前記サーバ負荷監視部は、自身のＷｅｂサーバの負荷情報を監視し、当該負荷情報の値が所定の閾値を超えたことを示す監視情報を、前記セッション情報分配部に出力し、前記セッション情報分配部は、前記監視情報を取得した場合に、自身の前記不揮発ストレージに記憶しているセッション情報を、自身が担当するセッション情報と、増設されたＷｅｂサーバに担当させるセッション情報とに分配し、前記Ｗｅｂクライアントから、前記増設されたＷｅｂサーバに担当させるセッション情報である前記新セッション情報を用いたＷｅｂサービスの提供要求を受信すると、前記増設されたＷｅｂサーバのアドレスを含むリダイレクト指示を当該Ｗｅｂクライアントに送信し、前記リダイレクト指示を受信したＷｅｂクライアントが、前記増設されたＷｅｂサーバのアドレスを用いて当該Ｗｅｂサーバに前記新セッション情報を送信し、前記増設されたＷｅｂサーバが、前記セッション情報生成部が、前記Ｗｅｂクライアントから前記新セッション情報を受信し、当該増設されたＷｅｂサーバのアドレスを付して更新した第２の新セッション情報を生成し、前記不揮発ストレージに記憶し、前記セッション情報送信部は、生成した前記第２の新セッション情報を前記Ｗｅｂクライアントに送信する処理を行い、前記セッション情報削除部は、前記新セッション情報に付されたＷｅｂサーバのアドレスを抽出し、当該抽出したアドレスのＷｅｂサーバに対し、新セッション情報の削除指示を送信し、前記新セッション情報の削除指示を受信したＷｅｂサーバのセッション情報削除部は、自身の前記不揮発ストレージに記憶されている前記新セッション情報を削除することを特徴とする請求項１に記載のセッション情報管理システムとした。
【００１８】
このように、Ｗｅｂサーバの負荷が増え、Ｗｅｂサーバを増設する場合であっても、増設されたＷｅｂサーバは、Ｗｅｂクライアントからセッション情報（新セッション情報）を取得し、Ｗｅｂサービスを提供することができる。また、増設されたＷｅｂサーバは、取得した新セッション情報に付されたアドレスを抽出し、そのアドレスのＷｅｂサーバに対して、新セッション情報の削除指示を送信することができる。よって、複数のＷｅｂサーバに同じセッション情報が重複して記憶されることを避けることができる。
【発明の効果】
【００１９】
本発明によれば、複数のＷｅｂサーバでの重複したセッション情報の保持をなくし、かつ、Ｗｅｂサーバのスケールアウトや障害復旧を容易に行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るセッション情報管理システムの構成を示す図である。
【図２】本実施形態に係るＷｅｂクライアントの構成例を示す機能ブロック図である。
【図３】本実施形態に係るＷｅｂサーバの構成例を示す機能ブロック図である。
【図４】本実施形態係るセッション情報管理システムにおいて、Ｗｅｂクライアントが移動した場合の処理を示すシーケンス図である。
【図５】本実施形態係るセッション情報管理システムにおいて、Ｗｅｂクライアントが記憶するセッション情報を喪失した場合の処理を示すシーケンス図である。
【図６】本実施形態に係るセッション情報管理システムにおいて、Ｗｅｂサーバのスケールアウトを実行しセッション情報を分配する場合の処理を示すシーケンス図である。
【発明を実施するための形態】
【００２１】
次に、本発明を実施するための形態（以下、「本実施形態」と称する。）における、セッション情報管理システム１等について説明する。
図１は、本実施形態に係るセッション情報管理システム１の構成を示す図である。
セッション情報管理システム１は、Ｗｅｂクライアント１０に対してＷｅｂサービスを提供するＷｅｂシステムであり、１つ以上のＷｅｂクライアント１０と、各拠点内ネットワーク（ＮＷ）５に収容されるＷｅｂサーバ２０と、各拠点内ネットワーク（ＮＷ）５と接続する拠点間ネットワーク（ＮＷ）６に接続されるユーザ登録サーバ３０およびＤＮＳ（Domain Name System）サーバ４０とを備える。図１においては、セッション情報管理システム１内において、拠点内ネットワーク５（５−１）（拠点内ＮＷ「１」）に収容されるＷｅｂサーバ２０（２０−１）（Ｗｅｂサーバ「１」）と、拠点内ネットワーク５（５−２）（拠点内ＮＷ「２」）に収容されるＷｅｂサーバ２０（２０−２）（Ｗｅｂサーバ「２」）とが設置されており、Ｗｅｂクライアント１０が、Ｗｅｂサーバ２０（２０−１，２０−２）のいずれかと接続して、Ｗｅｂサービスを利用するものとして説明する。
【００２２】
本実施形態に係るＷｅｂクライアント１０は、セッション情報を保存する仕組みとして、従来のＣｏｏｋｉｅと比較し、より大きいデータ領域を持つセッション情報記憶部１００を備えることを特徴とする。このセッション情報記憶部１００は、例えば、ＨＴＭＬ５で規定されるWeb Storageにより実現することができる。そして、Ｗｅｂクライアント１０は、このセッション情報記憶部１００に、Ｗｅｂサービスにおいて利用するセッション情報等を保存しておく。
なお、本実施形態に係る「セッション情報」とは、Ｗｅｂクライアント１０によりクライアントがＷｅｂサーバ２０を利用する際の一時的なデータ、例えば、ネットショッピングの買物かごの情報や、最終送信前の入力フォームの情報等だけではなく、従来のＷｅｂシステムの共有データベースで管理されるデータであり、コンテンツを購入した際のコンテンツ購入情報のような、継続的に保存されるデータも含まれる。
【００２３】
また、各Ｗｅｂサーバ２０は、自身と１対１に対応した不揮発ストレージ２００を備える。つまり、各不揮発ストレージ２００は、自身と接続する１つのＷｅｂサーバ２０以外のＷｅｂサーバ２０からはアクセスされず、他のＷｅｂサーバ２０が処理したセッション情報は保存しない。これにより、Ｗｅｂサーバ２０を増設する際等に、セッション情報等の状態データを移行させる手順が複雑になることを避けることができる。
さらに、各Ｗｅｂサーバ２０は、Ｗｅｂクライアント１０がＷｅｂサーバ２０をまたがって移動する場合に、移動先のＷｅｂサーバ２０がＷｅｂクライアント１０からセッション情報を取得する。これにより、セッション情報を移動元と移動先のＷｅｂサーバ２０において同期する必要をなくすことができる。そして、セッション情報をＷｅｂクライアント１０が保存しているため、移動元のＷｅｂサーバ２０は、不要となったセッション情報を削除することができる。
以下、セッション情報管理システム１を構成する各装置について、具体的に説明する。
【００２４】
＜ユーザ登録サーバ＞
本実施形態に係るユーザ登録サーバ３０は、図１に示すように、各Ｗｅｂクライアント１０がＷｅｂサービスを利用するための初期セッション情報を、初期セッション情報ＤＢ（DataBase）３００に記憶する。この初期セッション情報には、Ｗｅｂクライアント１０を所持するユーザがＷｅｂサービスを利用する際の認証ＩＤや、Ｗｅｂサービスを利用する際の初期設定（利用時間の設定、利用データの種別、利用エリア等）の情報が格納される。このユーザ登録サーバ３０は、その記憶部（不図示）に、Ｗｅｂクライアント１０および各Ｗｅｂサーバ２０との間で共有された鍵（共通鍵）を備え、Ｗｅｂクライアント１０からユーザ登録要求メッセージを受信すると、初期セッション情報ＤＢ３００参照し該当する初期セッション情報を抽出して共通鍵で暗号化しＷｅｂクライアント１０に送信する。
【００２５】
＜ＤＮＳサーバ＞
本実施形態に係るＤＮＳサーバ４０は、図１に示すように各Ｗｅｂサーバ２０のアドレス（ＩＰアドレス）をＷｅｂサーバアドレス情報ＤＢ４００に記憶する。そして、ＤＮＳサーバ４０は、Ｗｅｂクライアント１０からのＷｅｂサーバ２０のＩＰアドレスの問合せメッセージ（アドレス問合せメッセージ）を受信すると、Ｗｅｂクライアント１０を収容する拠点内ネットワーク５に属するＷｅｂサーバ２０のＩＰアドレスを、Ｗｅｂサーバアドレス情報ＤＢ４００を参照して抽出し、そのＷｅｂクライアント１０へ送信する。
【００２６】
＜Ｗｅｂクライアント＞
図２は、本実施形態に係るＷｅｂクライアント１０の構成例を示す機能ブロック図である。
Ｗｅｂクライアント１０は、Ｗｅｂサービスを利用する装置であり、例えば、スマートフォン、タブレット端末等である。このＷｅｂクライアント１０は、従来のＣｏｏｋｉｅに保存される情報と比べてより情報量の多いセッション情報を記憶するための記憶手段として、例えば、ＨＴＭＬ５において規定されるWeb Storageのようなセッション情報記憶部１００を備える。そして、Ｗｅｂクライアント１０は、Ｗｅｂサーバ２０から最新の（更新された）セッション情報を取得し、セッション情報記憶部１００に記憶しておく。また、Ｗｅｂクライアント１０は、それまで接続していたＷｅｂサーバ２０から他のＷｅｂサーバ２０に接続先を変更した場合や、Ｗｅｂサーバ２０が増設された場合などに、自身が記憶するセッション情報を新たに接続先となるＷｅｂサーバ２０に送信する。
このＷｅｂクライアント１０は、図２に示すように、制御部１１と、入出力部１２と、メモリ部１３と、記憶部１４とを含んで構成される。
【００２７】
入出力部１２は、ユーザ登録サーバ３０や、ＤＮＳサーバ４０、Ｗｅｂサーバ２０等との間で情報の送受信を行うための通信インタフェースと、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースとから構成される。
【００２８】
メモリ部１３は、ＲＡＭ（Random Access Memory）等の一次記憶装置からなり、制御部１１によるデータ処理に必要な情報を一時的に記憶する。
【００２９】
記憶部１４は、フラッシュメモリ等の記憶装置からなり、セッション情報を記憶するセッション情報記憶部１００がその記憶領域として確保される。
なお、この記憶部１４には、ユーザ登録サーバ３０および各Ｗｅｂサーバ２０との間で共有された鍵（共通鍵）が格納される。
【００３０】
制御部１１は、Ｗｅｂクライアント１０全体の制御を司り、ユーザ登録要求部１１１と、アドレス問合せ部１１２と、セッション情報処理部１１３とを備える。なお、ここでは、Ｗｅｂサービスの利用に関する機能のみを抽出して説明するが、Ｗｅｂクライアント１０が他の機能を備えていてもよい。
また、この制御部１１は、例えば、記憶部１４に格納されたプログラムを不図示のＣＰＵ（Central Processing Unit）が、メモリ部１３としてのＲＡＭに展開し実行することにより実現される。
【００３１】
ユーザ登録要求部１１１は、Ｗｅｂサービスを利用するために、ユーザ登録サーバ３０に対し、ユーザ登録要求メッセージを送信する。また、ユーザ登録要求部１１１は、ユーザ登録サーバ３０から、共通鍵等で暗号化された初期セッション情報を取得する。
【００３２】
アドレス問合せ部１１２は、ユーザ登録要求部１１１が、ユーザ登録サーバ３０から、初期セッション情報を受信したことを契機として、Ｗｅｂサービスを利用するＷｅｂサーバ２０のＩＰアドレスの問合せメッセージ（アドレス問合せメッセージ）を、ＤＮＳサーバ４０に送信する。そして、アドレス問合せ部１１２は、ＤＮＳサーバ４０から、Ｗｅｂクライアント１０が接続する拠点内ネットワーク５に属するＷｅｂサーバ２０のＩＰアドレスを取得する。
【００３３】
セッション情報処理部１１３は、ユーザ登録要求部１１１が受信した暗号化された初期セッション情報を、共通鍵を用いて復号化し、セッション情報記憶部１００に記憶する。
また、セッション情報処理部１１３は、各Ｗｅｂサーバ２０から暗号化された既存のセッション情報（更新されたセッション情報）を受信し、共通鍵を用いて復号化した上で、セッション情報記憶部１００に記憶する。
さらに、セッション情報処理部１１３は、自身のセッション情報記憶部１００に記憶された既存のセッション情報を、共通鍵を用いて暗号化した上で、Ｗｅｂサービスの提供を新たに行うＷｅｂサーバ２０に対して送信する。
【００３４】
このように、Ｗｅｂクライアント１０は、既存の（更新された）セッション情報を、セッション情報記憶部１００に記憶しておき、新たにＷｅｂサービスの提供を行うＷｅｂサーバ２０に対して送信することができる。
【００３５】
＜Ｗｅｂサーバ＞
図３は、本実施形態に係るＷｅｂサーバ２０の構成例を示す機能ブロック図である。
Ｗｅｂサーバ２０は、Ｗｅｂクライアント１０からの要求により、Ｗｅｂサービスを提供する装置である。このＷｅｂサーバ２０は、自身と１対１に対応した不揮発ストレージ２００を備える。また、各Ｗｅｂサーバ２０は、Ｗｅｂクライアント１０が移動した場合でも、移動元と移動先のＷｅｂサーバ２０においてセッション情報の同期は行わず、移動先のＷｅｂサーバ２０は、セッション情報をＷｅｂクライアント１０から取得する。そして、移動先のＷｅｂサーバ２０やスケールアウトにより増設されたＷｅｂサーバ２０は、移動元や増設する前のＷｅｂサーバ２０に対し、セッション情報の削除指示メッセージを送信することにより、不要となったセッション情報を削除させる。
このＷｅｂサーバ２０は、図３に示すように、制御部２１と、入出力部２２と、メモリ部２３と、不揮発ストレージ２００とを備える。
【００３６】
入出力部２２は、Ｗｅｂクライアント１０や他のＷｅｂサーバ２０等との間で情報の送受信を行うための通信インタフェースと、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースとから構成される。
【００３７】
メモリ部２３は、ＲＡＭ等の一次記憶装置からなり、制御部２１によるデータ処理に必要な情報を一時的に記憶する。
不揮発ストレージ２００は、ハードディスクやフラッシュメモリ等の記憶装置からなり、Ｗｅｂサービスを提供する際に更新されるセッション情報を記憶する。
なお、この不揮発ストレージ２００には、ユーザ登録サーバ３０や、Ｗｅｂクライアント１０、他のＷｅｂサーバ２０との間で共有された鍵（共通鍵）が格納される。
なお、この不揮発ストレージ２００は、Ｗｅｂサーバ２０の外部に設置され、１対１で接続される構成でも構わない。
【００３８】
制御部２１は、Ｗｅｂサーバ２０全体の制御を司り、セッション情報制御部２１１と、サービス提供部２１８と、サーバ負荷監視部２１９とを含んで構成される。
なお、この制御部２１は、例えば、不揮発ストレージ２００に格納されたプログラムを不図示のＣＰＵが、メモリ部２３としてのＲＡＭに展開し実行することにより実現される。
【００３９】
セッション情報制御部２１１は、Ｗｅｂサーバ２０がＷｅｂクライアント１０に対してＷｅｂサービスを提供する際のセッション情報の制御を実行する機能を備え、セッション情報受信部２１２、セッション情報生成部２１３、セッション情報送信部２１４、セッション情報取得部２１５、セッション情報削除部２１６およびセッション情報分配部２１７を備える。
【００４０】
セッション情報受信部２１２は、Ｗｅｂクライアント１０から、Ｗｅｂサービスの提供を要求するサービス要求メッセージを受信すると、そのＷｅｂサービスの提供に必要となるセッション情報の送信を指示するセッション情報要求メッセージをＷｅｂクライアント１０に送信する。
そして、セッション情報受信部２１２は、Ｗｅｂクライアント１０や他のＷｅｂサーバ２０から暗号化されたセッション情報を受信すると、不揮発ストレージ２００に記憶されている共通鍵を用いて復号化し、セッション情報を抽出する。
【００４１】
セッション情報生成部２１３は、セッション情報受信部２１２が受信し復号化したセッション情報について、Ｗｅｂサービスの提供に伴う新たなセッション情報（以下、「新セッション情報」「更新されたセッション情報」と称する場合がある。）を生成する。また、セッション情報生成部２１３は、新セッション情報を生成する際に、そのＷｅｂサーバ２０自身のアドレス（例えば、ＩＰアドレス）を含めて生成する。
そして、セッション情報生成部２１３は、そのＷｅｂサーバ２０自身のアドレス（ＩＰアドレス）を含む新セッション情報を、不揮発ストレージ２００に記憶する。
【００４２】
セッション情報送信部２１４は、セッション情報生成部２１３が生成（更新）したそのＷｅｂサーバ２０自身のアドレス（ＩＰアドレス）を含む新セッション情報（更新されたセッション情報）を共通鍵を用いて暗号化し、Ｗｅｂクライアント１０に送信する。
【００４３】
セッション情報取得部２１５は、セッション情報受信部２１２が受信したセッション情報では、サービス提供部２１８がＷｅｂサービスを提供するための情報（セッション情報）が不足していると判定した場合（つまり、セッション情報が最新の情報でない場合）に、ネットワーク内に存在する各Ｗｅｂサーバ２０に向けて、既存のセッション情報（既存セッション情報）の問合せメッセージをブロードキャストで送信する。なお、セッション情報取得部２１５は、例えば、Ｗｅｂクライアント１０に固有の認証ＩＤ等を付して、既存セッション情報の問合せメッセージを送信する。
【００４４】
また、セッション情報取得部２１５は、自身以外の他のＷｅｂサーバ２０から既存セッション情報の問合せメッセージを受信すると、不揮発ストレージ２００内のセッション情報を検索する。そして、セッション情報取得部２１５は、該当する認証ＩＤが付されたセッション情報を保存していた場合には、そのセッション情報を、既存セッション情報の問合せメッセージを送信してきたＷｅｂサーバ２０に向けて送信する。
【００４５】
セッション情報削除部２１６は、Ｗｅｂクライアント１０や他のＷｅｂサーバ２０から既存のセッション情報を取得した場合に、その既存のセッション情報を記憶しているＷｅｂサーバ２０に対し、当該セッション情報の削除指示メッセージを送信する。
【００４６】
また、セッション情報削除部２１６は、他のＷｅｂサーバ２０からセッション情報の削除指示メッセージを受信した場合に、その既存のセッション情報を、不揮発ストレージ２００から削除する。
【００４７】
セッション情報分配部２１７は、サーバ負荷監視部２１９が、Ｗｅｂサーバ２０自身の負荷が所定の閾値を超えたと判定した場合に、ネットワーク管理者（ネットワーク管理装置等）に、新たなＷｅｂサーバ２０の増設を要求する。これにより、新たなＷｅｂサーバ２０が増設される。そして、セッション情報分配部２１７は、自身が担当していたＷｅｂクライアント１０のセッション情報を、そのまま自身が担当するセッション情報と、新たに増設されたＷｅｂサーバ２０が担当するセッション情報とに分配する。この分配の手法は、均等に振り分けてもよいし、そのＷｅｂサーバ２０の性能等に基づき分配比率を決定して振り分けてもよく、予め分配のためのロジックを格納しておけばよい。
また、セッション情報分配部２１７が、新たなＷｅｂサーバ２０のアドレス（ＩＰアドレス）をネットワーク管理装置等から取得し、ＤＮＳサーバ４０に登録するように依頼するようにしてもよい。
【００４８】
サービス提供部２１８は、Ｗｅｂクライアント１０からの要求のあったＷｅｂサービスを提供する処理を行う。
また、サービス提供部２１８は、セッション情報受信部２１２が受信したセッション情報では、情報が不足して当該セッションを継続できない場合には、その旨の情報をセッション情報取得部２１５に出力する。
【００４９】
サーバ負荷監視部２１９は、予め設定されたサーバの負荷情報を収集し、所定の閾値を超えたか否かを監視する。サーバの負荷情報としては、例えば、ＣＰＵ使用率やメモリ使用率であったり、不揮発ストレージ２００の使用率であったりしてもよい。
サーバ負荷監視部２１９は、所定の閾値を超えた場合に、その旨の情報（監視情報）をセッション情報分配部２１７に出力する。
【００５０】
このように、Ｗｅｂサーバ２０は、Ｗｅｂクライアント１０が移動した場合であっても、Ｗｅｂサーバ２０同士ではセッション情報の同期は行わない。その代わりに、Ｗｅｂサーバ２０は、必要となるセッション情報を、Ｗｅｂクライアント１０や他のＷｅｂサーバ２０から取得する。そして、Ｗｅｂサーバ２０は、セッション情報を取得すると、他のＷｅｂサーバ２０に対して、不要なセッション情報の削除指示メッセージを送信することにより、そのセッション情報を削除させることができる。
【００５１】
≪処理の流れ≫
次に、本実施形態に係るセッション情報管理システム１が実行する処理の流れについて説明する。ここでは、（１）Ｗｅｂサーバ２０をまたがってＷｅｂクライアント１０が移動する場合、（２）Ｗｅｂクライアント１０が障害発生等によりセッション情報を喪失した場合、（３）Ｗｅｂクライアント１０の増加等によりＷｅｂサーバ２０のスケールアウトを実行しセッション情報を分配する場合、を例に説明する。
【００５２】
＜Ｗｅｂクライアントの移動＞
図４は、本実施形態係るセッション情報管理システム１において、Ｗｅｂサーバ２０をまたがってＷｅｂクライアント１０が移動した場合の処理を示すシーケンス図である。
【００５３】
まず、Ｗｅｂクライアント１０のユーザ登録要求部１１１は、Ｗｅｂサービスを利用するために、ユーザ登録サーバ３０に対し、ユーザ登録要求メッセージを送信する（ステップＳ１）。
【００５４】
続いて、ユーザ登録サーバ３０は、Ｗｅｂクライアント１０からユーザ登録要求メッセージを受信すると、初期セッション情報ＤＢ３００（図１）を参照し、ユーザ登録要求メッセージを送信してきたＷｅｂクライアント１０に関する初期セッション情報を抽出する（ステップＳ２）。
そして、ユーザ登録サーバ３０は、Ｗｅｂクライアント１０および各Ｗｅｂサーバ２０との間で共有された鍵（共通鍵）を用いて初期セッション情報を暗号化し、Ｗｅｂクライアント１０に送信する（ステップＳ３）。
【００５５】
次に、Ｗｅｂクライアント１０のユーザ登録要求部１１１が、ユーザ登録サーバ３０から暗号化された初期セッション情報を受信する。そして、その暗号化された初期セッション情報を、セッション情報処理部１１３が復号化し、セッション情報記憶部１００に記憶する（ステップＳ４）。
【００５６】
続いて、Ｗｅｂクライアント１０のアドレス問合せ部１１２は、Ｗｅｂサービスを利用するＷｅｂサーバ２０のアドレス（ＩＰアドレス）の問合せメッセージ（アドレス問合せメッセージ）を、ＤＮＳサーバ４０に送信する（ステップＳ５）。
【００５７】
そして、ＤＮＳサーバ４０は、Ｗｅｂクライアント１０からＷｅｂサーバ２０のアドレス問合せメッセージを受信すると、Ｗｅｂクライアント１０を収容する拠点内ネットワーク（ＮＷ）５に属するＷｅｂサーバ２０（例えば、最寄のＷｅｂサーバ２０）のアドレス（ＩＰアドレス）を、Ｗｅｂサーバアドレス情報ＤＢ４００（図１）を参照して抽出する。続いて、ＤＮＳサーバ４０は、抽出したＷｅｂサーバ２０のＩＰアドレスをＷｅｂクライアント１０に送信する（ステップＳ６）。
ここでは、ＤＮＳサーバ４０が、Ｗｅｂクライアント１０の最寄りのＷｅｂサーバ２０として、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）を抽出し、そのＩＰアドレスをＷｅｂクライアント１０に送信したものとする。
【００５８】
次に、Ｗｅｂクライアント１０のアドレス問合せ部１１２がＷｅｂサーバ２０のＩＰアドレスを受信すると、セッション情報処理部１１３は、そのＩＰアドレスを用いて、Ｗｅｂサーバ２０に対し、サービス要求メッセージ（ここでは、サービス要求「１」とする。）を送信する（ステップＳ７）。
ここでは、Ｗｅｂクライアント１０が、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）にサービス要求メッセージ（サービス要求「１」）を送信する。
【００５９】
サービス要求メッセージ（サービス要求「１」）を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「１」）のセッション情報受信部２１２は、そのＷｅｂサービスの提供に必要となるセッション情報の送信を指示するセッション情報要求メッセージを、例えばＨＴＭＬにより生成し、Ｗｅｂクライアント１０に送信する（ステップＳ８）。
【００６０】
続いて、Ｗｅｂクライアント１０のセッション情報処理部１１３は、セッション情報要求メッセージを受信すると、セッション情報記憶部１００に記憶された初期セッション情報を抽出し、共通鍵を用いて暗号化した上で、例えば、ＰＯＳＴを使ってその初期セッション情報をＷｅｂサーバ２０（Ｗｅｂサーバ「１」）に送信する（ステップＳ９）。
【００６１】
次に、暗号化された初期セッション情報を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「１」）のセッション情報受信部２１２は、その初期セッション情報を復号化し、セッション情報生成部２１３に出力する。セッション情報生成部２１３は、そのＷｅｂサーバ２０自身のアドレス（ＩＰアドレス）を含む更新されたセッション情報（新セッション情報「１」）を生成し、不揮発ストレージ２００に記憶する（ステップＳ１０）。
また、セッション情報送信部２１４は、セッション情報生成部２１３が生成したＷｅｂサーバ２０のアドレスを含む新セッション情報「１」を共通鍵を用いて暗号化し、暗号化した新セッション情報「１」を含むＨＴＭＬを、Ｗｅｂクライアント１０に送信する（ステップＳ１１）。
【００６２】
Ｗｅｂクライアント１０は、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）から暗号化された新セッション情報「１」を受信すると、セッション情報処理部１１３が復号化し、その新セッション情報「１」をセッション情報記憶部１００に記憶する（ステップＳ１２）。
その後、Ｗｅｂクライアント１０は、Ｗｅｂサーバ２０のＷｅｂサービスの提供によりセッション情報が更新される度に、Ｗｅｂサーバ２０から更新されたセッション情報（新セッション情報）を受信し、その新セッション情報を既存のセッション情報として不揮発ストレージ２００に記憶する。
【００６３】
ここで、Ｗｅｂクライアント１０が図１に示す拠点内ネットワーク５（５−１）（拠点内ＮＷ「１」）から拠点内ネットワーク５（５−２）（拠点内ＮＷ「２」）へ通信接続されるエリアを移動したものとして、以下において説明する。
【００６４】
このＷｅｂクライアント１０は、拠点内ＮＷ「１」のＷｅｂサーバ２０（Ｗｅｂサーバ「１」）と通信接続できなくなったこと等により、再度、ＤＮＳサーバ４０に対しＷｅｂサーバ２０のアドレス（ＩＰアドレス）の問合せメッセージ（アドレス問合せメッセージ）を送信する処理を行う（ステップＳ２１）。そして、ＤＮＳサーバ４０は、Ｗｅｂクライアント１０が移動した先の拠点内ＮＷ「２」に属するＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のアドレス（ＩＰアドレス）を、Ｗｅｂサーバアドレス情報ＤＢ４００を参照して抽出し、Ｗｅｂクライアント１０に返信する（ステップＳ２２）。
【００６５】
次に、Ｗｅｂクライアント１０のアドレス問合せ部１１２がＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のＩＰアドレスを受信すると、セッション情報処理部１１３は、そのＩＰアドレスを用いて、Ｗｅｂサーバ２０（Ｗｅｂサーバ「２」）に対し、サービス要求メッセージ（ここでは、サービス要求「２」とする。）を送信する（ステップＳ２３）。
【００６６】
サービス要求メッセージ（サービス要求「２」）を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のセッション情報受信部２１２は、そのＷｅｂサービスの提供に必要となるセッション情報の送信を指示するセッション情報要求メッセージを、例えばＨＴＭＬにより生成し、Ｗｅｂクライアント１０に送信する（ステップＳ２４）。
【００６７】
続いて、Ｗｅｂクライアント１０のセッション情報処理部１１３は、セッション情報要求メッセージを受信すると、セッション情報記憶部１００に記憶された、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）のアドレスを含む既存のセッション情報（新セッション情報「１」）を抽出し、共通鍵を用いて暗号化した上で、例えば、ＰＯＳＴを使って移動先のＷｅｂサーバ２０（Ｗｅｂサーバ「２」）に送信する（ステップＳ２５）。
【００６８】
暗号化された既存のセッション情報（新セッション情報「１」）を受信した移動先のＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のセッション情報受信部２１２は、その既存のセッション情報を復号化し、セッション情報生成部２１３に出力する。セッション情報生成部２１３は、そのＷｅｂサーバ２０（Ｗｅｂサーバ「２」）自身のアドレス（ＩＰアドレス）を含む更新したセッション情報（新セッション情報「２」）（第２の新セッション情報）を生成し、不揮発ストレージ２００に記憶する（ステップＳ２６）。
また、セッション情報送信部２１４は、セッション情報生成部２１３が生成したＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のアドレスを含む新セッション情報「２」を共通鍵を用いて暗号化し、暗号化した新セッション情報「２」を含むＨＴＭＬを、Ｗｅｂクライアント１０に送信する（ステップＳ２７）。
【００６９】
Ｗｅｂクライアント１０は、Ｗｅｂサーバ２０（Ｗｅｂサーバ「２」）から暗号化された新セッション情報「２」を受信すると、セッション情報処理部１１３が復号化し、その新セッション情報「２」を既存のセッション情報としてセッション情報記憶部１００に記憶する（ステップＳ２８）。
【００７０】
一方、移動先のＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のセッション情報削除部２１６は、Ｗｅｂクライアント１０から既存のセッション情報（新セッション情報「１」）をセッション情報取得部２１５が取得した場合に、その既存のセッション情報に付されたアドレス（ＩＰアドレス）（ここでは、Ｗｅｂサーバ「１」のＩＰアドレス）を参照し、そのＩＰアドレスのＷｅｂサーバ２０（ここでは、移動元のＷｅｂサーバ「１」）宛てに、当該セッション情報（新セッション情報「１」）の削除指示メッセージを送信する（ステップＳ２９）。
【００７１】
新セッション情報「１」の削除指示メッセージを受信した移動元のＷｅｂサーバ２０（Ｗｅｂサーバ「１」）のセッション情報削除部２１６は、当該セッション情報を不揮発ストレージ２００から削除する（ステップＳ３０）。
【００７２】
このようにすることで、セッション情報管理システム１では、セッション情報をＷｅｂクライアント１０に記憶させておき、Ｗｅｂサーバ２０をまたがってＷｅｂクライアント１０が移動した際には、Ｗｅｂクライアント１０から移動先のＷｅｂサーバ２０がセッション情報を取得することができる。よって、Ｗｅｂサーバ２０同士でセッション情報を同期させておく必要がない。また、移動元のＷｅｂサーバ２０に対して、移動先のＷｅｂサーバ２０が削除指示メッセージを送信することにより、不要となった既存のセッション情報を削除させることができる。
【００７３】
＜セッション情報喪失＞
図５は、本実施形態係るセッション情報管理システム１において、Ｗｅｂクライアント１０が記憶するセッション情報を障害等により喪失した場合の処理を示すシーケンス図である。
ここでは、Ｗｅｂクライアント１０において障害等が発生し、セッション情報記憶部１００に記憶された既存のセッション情報（新セッション情報）を喪失したものとする。また、その際に、Ｗｅｂクライアント１０が図１に示す拠点内ネットワーク５（５−１）（拠点内ＮＷ「１」）から拠点内ネットワーク５（５−２）（拠点内ＮＷ「２」）へ通信接続されるエリアを移動したものとして、以下において説明する。
なお、図４のステップＳ１〜Ｓ１２までの処理が既に実行されたものとして説明する。
【００７４】
障害等によりセッション情報を喪失すると、セッション情報を喪失したそのＷｅｂクライアント１０は、自身のセッション情報記憶部１００からセッション情報を取得できない。そのため、Ｗｅｂクライアント１０は、図４のステップＳ１〜Ｓ６と同様の処理を再度行う。つまり、Ｗｅｂクライアント１０は、ユーザ登録サーバ３０に対しユーザ登録要求メッセージを送信して初期セッション情報を取得してセッション情報記憶部１００に記憶し、ＤＮＳサーバ４０からＷｅｂサーバ２０のアドレス（ＩＰアドレス）を取得する処理を行う（ステップＳ３１〜Ｓ３６）。
この際、ＤＮＳサーバ４０は、Ｗｅｂクライアント１０が移動した先の拠点内ネットワーク５（５−２）（拠点内ＮＷ「２」）に属するＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のアドレス（ＩＰアドレス）を、Ｗｅｂサーバアドレス情報ＤＢ４００を参照して抽出し、Ｗｅｂクライアント１０に送信するものとする（ステップＳ３６）。
その後、図４のステップＳ７〜Ｓ９と同様の処理を行い、Ｗｅｂクライアント１０は、サービス要求（ここでは、サービス要求「３」とする。）を移動先のＷｅｂサーバ２０（Ｗｅｂサーバ「２」）に送信することにより、セッション情報要求メッセージを受信し、初期セッション情報を暗号化してＷｅｂサーバ２０（Ｗｅｂサーバ「２」）に送信する（ステップＳ３７〜Ｓ３９）。
【００７５】
続いて、暗号化された初期セッション情報を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のセッション情報受信部２１２は、その初期セッション情報を復号化する。そして、その初期セッション情報に基づき、サービス提供部２１８がＷｅｂサービスを継続して提供しようとする。しかしながら、サービス提供部２１８では、必要なセッション情報が不足しているため当該セッションを継続できないと判定し、その旨の情報を、セッション情報取得部２１５に出力する。この場合、セッション情報取得部２１５は、ネットワーク内に存在する各Ｗｅｂサーバ２０に向けて、ブロードキャストにより既存セッション情報（新セッション情報「１」）の問合せメッセージの送信を行う（ステップＳ４０）。
【００７６】
ブロードキャストにより既存セッション情報の問合せメッセージを受信したＷｅｂサーバ２０（ここでは、Ｗｅｂサーバ「１」）のセッション情報取得部２１５は、自身の不揮発ストレージ２００を検索し、該当するＷｅｂクライアント１０の認証ＩＤが付されたセッション情報（新セッション情報「１」）を記憶していた場合には、その既存のセッション情報（新セッション情報「１」）を、暗号化した上で、既存セッション情報の問合せメッセージを送信してきたＷｅｂサーバ２０（Ｗｅｂサーバ「２」）に向けて送信する（ステップＳ４１）。
【００７７】
暗号化された既存のセッション情報（新セッション情報「１」）を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「２」）のセッション情報受信部２１２は、その既存のセッション情報を復号化し、セッション情報生成部２１３に出力する。セッション情報生成部２１３は、そのＷｅｂサーバ２０（Ｗｅｂサーバ「２」）自身のアドレス（ＩＰアドレス）を含む更新したセッション情報（新セッション情報「２」）（第２の新セッション情報）を生成し、不揮発ストレージ２００に記憶する（ステップＳ４２）。
【００７８】
その後は、図４のステップＳ２７〜Ｓ３０と同様に、Ｗｅｂサーバ２０（Ｗｅｂサーバ「２」）は、Ｗｅｂサーバ「２」のアドレスを含む新セッション情報「２」をＷｅｂクライアント１０に送信して記憶させるとともに、Ｗｅｂサーバ「１」に対して、削除指示メッセージを送信して、既存のセッション情報（新セッション情報「１」）を削除させる（ステップＳ４３〜Ｓ４６）。
【００７９】
なお、ここでは、Ｗｅｂクライアント１０がセッション情報を喪失し、かつ、Ｗｅｂサーバ２０をまたがって移動した場合について説明した。しかしながら、Ｗｅｂクライアント１０がセッション情報を喪失した場合であっても、喪失前と同じＷｅｂサーバ２０と接続できる場合にあっては、そのＷｅｂサーバ２０の不揮発ストレージ２００（ここでは、Ｗｅｂサーバ「１」の不揮発ストレージ「１」）に記憶された既存のセッション情報を用いて、セッションを継続しＷｅｂサービスを提供することができる。
【００８０】
このようにすることで、セッション情報管理システム１では、Ｗｅｂクライアント１０が障害等によりセッション情報を喪失した場合であっても、Ｗｅｂサーバ２０同士でセッション情報を同期させることなく、確実にサービスを継続して提供することが可能となる。
【００８１】
＜セッション情報の分配＞
次に、Ｗｅｂクライアント１０の増加等に伴ってＷｅｂサーバ２０のスケールアウトを実行しセッション情報を分配する場合について説明する。
図６は、本実施形態に係るセッション情報管理システム１において、Ｗｅｂサーバ２０のスケールアウトを実行しセッション情報を分配する場合の処理を示すシーケンス図である。
ここでは、図４のステップＳ１〜Ｓ１２が実行され、Ｗｅｂクライアント１０とＷｅｂサーバ２０（Ｗｅｂサーバ「１」）との間で、Ｗｅｂサービスの提供が行われているものとする。
【００８２】
この状態において、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）のサーバ負荷監視部２１９が、ＣＰＵ使用率等の負荷情報の値が所定の閾値を超えたと判定したものとする。その場合、サーバ負荷監視部２１９は、その旨の情報（監視情報）をセッション情報分配部２１７に出力する。
そして、セッション情報分配部２１７は、自身のＷｅｂサーバ２０（Ｗｅｂサーバ「１」）の負荷が所定の閾値を超えたことにより、Ｗｅｂサーバ２０を増設すると判定する（ステップＳ５１）。そして、セッション情報分配部２１７は、ネットワーク管理者（ネットワーク管理装置等）に新たなＷｅｂサーバ２０の増設を要求する。これにより、新たなＷｅｂサーバ２０（ここでは、Ｗｅｂサーバ「３」とする。）が増設される。また、Ｗｅｂサーバ「１」は、増設されたＷｅｂサーバ２０（Ｗｅｂサーバ「３」）のアドレス（ＩＰアドレス）をネットワーク管理装置等から取得する。
【００８３】
次に、セッション情報分配部２１７は、新たなＷｅｂサーバ２０（Ｗｅｂサーバ「３」）が増設されると、自身の不揮発ストレージ２００に記憶している既存のセッション情報を、そのまま自身が担当するセッション情報と、新たに増設されたＷｅｂサーバ２０（Ｗｅｂサーバ「３」）が担当するセッション情報とに分配する（ステップＳ５２）。
なお、ここで、セッション情報分配部２１７は、増設されたＷｅｂサーバ２０（Ｗｅｂサーバ「３」）のアドレス（ＩＰアドレス）をＤＮＳサーバ４０に登録するため、ＤＮＳサーバ４０に、Ｗｅｂサーバアドレス情報ＤＢ４００の更新依頼を送信しておくようにしてもよい。
【００８４】
続いて、Ｗｅｂクライアント１０のセッション情報処理部１１３が、Ｗｅｂサービスの提供を受けるため、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）のアドレスを含む既存のセッション情報（新セッション情報「１」）を暗号化した上で、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）に送信する（ステップＳ５３）。
【００８５】
既存のセッション情報を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「１」）のセッション情報分配部２１７は、その既存のセッション情報に付された認証ＩＤ等に基づき、当該既存のセッション情報について自身が担当であるか、もしくは、増設した新たなＷｅｂサーバ２０（Ｗｅｂサーバ「３」）が担当であるかを判定する。そして、セッション情報分配部２１７は、そのセッション情報が、新たなＷｅｂサーバ２０（Ｗｅｂサーバ「３」）に分配したセッション情報であると判定した場合に、増設したＷｅｂサーバ２０（Ｗｅｂサーバ「３」）へのリダイレクト（Redirect）指示メッセージを、増設したＷｅｂサーバ２０（Ｗｅｂサーバ「３」）のＩＰアドレスとともに、Ｗｅｂクライアント１０へ送信する（ステップＳ５４）。
【００８６】
次に、Ｗｅｂクライアント１０のセッション情報処理部１１３は、リダイレクト指示メッセージに付された増設されたＷｅｂサーバ２０（Ｗｅｂサーバ「３」）のアドレス（ＩＰアドレス）を用いて、増設されたＷｅｂサーバ２０（Ｗｅｂサーバ「３」）に、Ｗｅｂサーバ２０（Ｗｅｂサーバ「１」）のアドレスを含む既存のセッション情報（新セッション情報「１」）を、暗号化した上で送信する（ステップＳ５５）。
【００８７】
暗号化された既存のセッション情報を受信したＷｅｂサーバ２０（Ｗｅｂサーバ「３」）のセッション情報受信部２１２は、その既存のセッション情報（新セッション情報「１」）を復号化し、セッション情報生成部２１３に出力する。セッション情報生成部２１３は、そのＷｅｂサーバ２０（Ｗｅｂサーバ「３」）自身のアドレス（ＩＰアドレス）を含む更新したセッション情報（新セッション情報「３」）（第２の新セッション情報）を生成し、不揮発ストレージ２００に記憶する（ステップＳ５６）。
【００８８】
その後は、図４のステップＳ２７〜Ｓ３０と同様に、Ｗｅｂサーバ２０（Ｗｅｂサーバ「３」）は、Ｗｅｂサーバ「３」のアドレスを含む新セッション情報「３」をＷｅｂクライアント１０に送信して記憶させるとともに、Ｗｅｂサーバ「１」に対して、削除指示メッセージを送信して、既存のセッション情報（新セッション情報「１」）を削除させる（ステップＳ５７〜Ｓ６０）。
【００８９】
このようにすることで、セッション情報管理システム１では、Ｗｅｂクライアント１０の増加等によりＷｅｂサーバ２０のスケールアウトを実行しセッション情報を分配した場合においても、セッション情報をＷｅｂクライアント１０が記憶しておくことにより、増設されたＷｅｂサーバ２０がＷｅｂクライアント１０からセッション情報を取得することができる。よって、セッション情報の分配に伴う複雑な処理を実行する必要がない。また、分配元のＷｅｂサーバ２０（Ｗｅｂサーバ「１」）に対して、分配先のＷｅｂサーバ２０（Ｗｅｂサーバ「３」）が削除指示メッセージを送信することにより、不要となった既存のセッション情報を削除させることができる。
【００９０】
以上説明したように、本実施形態に係るセッション情報管理システム１によれば、複数のＷｅｂサーバでの重複したセッション情報の保持をなくし、かつ、Ｗｅｂサーバのスケールアウトや障害復旧を容易に行うことが可能となる。
【符号の説明】
【００９１】
１      セッション情報管理システム
５      拠点内ネットワーク（ＮＷ）
６      拠点間ネットワーク（ＮＷ）
１０    Ｗｅｂクライアント
１１，２１  制御部
１２，２２  入出力部
１３，２３  メモリ部
１４    記憶部
２０    Ｗｅｂサーバ
３０    ユーザ登録サーバ
４０    ＤＮＳサーバ
１００  セッション情報記憶部（Web Storage）
１１１  ユーザ登録要求部
１１２  アドレス問合せ部
１１３  セッション情報処理部
２００  不揮発ストレージ
２１１  セッション情報制御部
２１２  セッション情報受信部
２１３  セッション情報生成部
２１４  セッション情報送信部
２１５  セッション情報取得部
２１６  セッション情報削除部
２１７  セッション情報分配部
２１８  サービス提供部
２１９  サーバ負荷監視部
３００  初期セッション情報ＤＢ
４００  Ｗｅｂサーバアドレス情報ＤＢ
【図１】
2018132920.tif 000003
【図２】
2018132920.tif 000004
【図３】
2018132920.tif 000005
【図４】
2018132920.tif 000006
【図５】
2018132920.tif 000007
【図６】
2018132920.tif 000008