(57)【要約】【課題】不要になったモジュールを自動で配備解除することができる情報処理システムを提供する。【解決手段】本発明にかかる情報処理システム（１００）は、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、配備解除要求を出力するセッション情報監視手段（１１０）と、配備解除要求を受け取った場合に、第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除するモジュール配備解除手段（１２０）と、を備える。【選択図】図１
2019046255.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、配備解除要求を出力するセッション情報監視手段と、
前記配備解除要求を受け取った場合に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除するモジュール配備解除手段と、を備える、
情報処理システム。
【請求項２】
前記モジュール配備解除手段は、どのモジュールからも呼び出されなくなったモジュールの配備解除を再帰的に行う、請求項１に記載の情報処理システム。
【請求項３】
前記セッション情報監視手段は、前記第１のモジュールのセッション数が０になった際に、前記第１のモジュールのモジュール名及びモジュールバージョンを含む配備解除要求を前記モジュール配備解除手段へ出力し、
前記モジュール配備解除手段は、前記配備解除要求を受け取った場合に、前記配備解除要求に含まれる前記モジュール名且つ前記モジュールバージョンの前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュール名且つモジュールバージョンのモジュールを配備解除する、請求項１又は２に記載の情報処理システム。
【請求項４】
前記セッション情報監視手段は、セッション数が０になった前記第１のモジュールのモジュールバージョンが最新のモジュールバージョンである場合には、前記配備解除要求を出力しない、請求項３に記載の情報処理システム。
【請求項５】
前記モジュール配備解除手段は、前記どのモジュールからも呼び出されなくなったモジュールのモジュールバージョンが最新のモジュールバージョンである場合には、当該モジュールを配備解除しない、請求項３又は４に記載の情報処理システム。
【請求項６】
セッション情報管理手段をさらに備え、
前記セッション情報管理手段は、削除を要求されたセッション、又は最終アクセス時刻から所定時間経過したセッションのセッションＩＤを前記セッション情報監視手段に通知する、
請求項３から５のいずれか一項に記載の情報処理システム。
【請求項７】
セッションテーブルを格納するセッション振り分け先情報格納手段をさらに備え、
前記セッションテーブルには、モジュール名に、当該モジュールに対するセッションのセッションＩＤと振り分け先のロードモジュールのモジュールバージョンとが関連づけられており、
前記セッション情報監視手段は、通知された前記セッションＩＤ及び前記セッションテーブルに基づいて、前記第１のモジュールのセッション数が０になったか否かを判断する、
請求項６に記載の情報処理システム。
【請求項８】
前記情報処理システムは、ネットワークを介して管理端末に接続され、
前記管理端末から前記第１のモジュールの配備解除要求を受信し、
前記モジュール配備解除手段は、前記管理端末から受信した配備解除要求により前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する機能も備える、
請求項１から７のいずれか一項に記載の情報処理システム。
【請求項９】
アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、
リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する、
情報処理方法。
【請求項１０】
プロセッサに、
アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、
リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、及びプログラムに関し、特に、アプリケーションの更新を行う情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
アプリケーションサーバで動作するアプリケーションは、２４時間３６５日の連続稼働が求められることがある。一方で、不具合の修正や機能拡張のためのアプリケーションの更新では、一般に、アプリケーションを停止する必要がある。
【０００３】
更新時にアプリケーションの動作を継続させる方法の一例として、変更前のアプリケーションと変更後のアプリケーションを同時に稼働させ、リクエストの振り分け先を変更前から変更後のアプリケーションに切り替える方法がある。特許文献１では、複数のリクエストにより構成されるセッションに対して処理が行われる場合に、セッション内での処理の一貫性を保つため、セッション毎にアプリケーションを切り替える方法が開示されている。すなわち、変更前から処理していたセッションのリクエストは、変更前のアプリケーションに振り分けられ、変更後の新規のセッションのリクエストは、変更後のアプリケーションに振り分けられる。この方法では、セッション数を監視することで、セッション数が０になった際にアプリケーションを自動で配備解除することができる。
【０００４】
一方、アプリケーションは複数のモジュールから構成される場合がある。例えば、Ｊａｖａ（登録商標）ＥＥ（Enterprise Edition）アプリケーションサーバに配備されるアプリケーションは、複数のモジュールから構成することができる。具体的には、Ｊａｖａ ＥＥアプリケーションサーバに配備されるアプリケーションは、クライアント端末のＷｅｂブラウザからのリクエストを受け付けるＷｅｂモジュールとバックエンドの処理を実行するＥＪＢ（Enterprise JavaBeans）モジュールやさらにそこから呼び出されるＥＪＢモジュールから構成することができる。このように複数のモジュールから構成されるアプリケーションでは、モジュール呼び出し用のインタフェースに変更がなく、モジュール実行内容にのみ変更があった場合、変更のあったモジュールを呼び出すモジュールを更新することなく、変更のあったモジュールのみを更新することができる。
【０００５】
特許文献２には、アプリケーションが複数のモジュールから構成されている場合について、モジュールを更新する際に、更新されるモジュールを呼び出すモジュールも新たにロードし直し、更新後のモジュールを呼び出すようにするという処理を、呼び出し側のモジュールに対して再帰的に実行する方法が開示されている。この方法により、特許文献２では、複数のモジュールから構成されるアプリケーションの一部のモジュールを更新した場合でも、リクエストを直接受け付けるモジュールに対してセッションＩＤを利用した振り分けを行うだけで、更新前に開始されたセッションのリクエストは更新前のモジュールで処理され、更新後の新規のリクエストは更新後のモジュールで処理されるようになる。したがって、更新前のセッションに対する処理で不整合を発生させることなく、新規のリクエストに対してモジュールの更新を反映することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４５３２９４６号公報
【特許文献２】特開２０１７−１６５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献２では、配備解除について考慮されておらず、古いモジュールは使用されなくなってもそのまま残るという問題があった。また、特許文献１では、アプリケーションが複数のモジュールから構成される場合については考慮されておらず、一部のモジュールのみを解除することができないという問題があった。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、不要になったモジュールを自動で配備解除することができる情報処理システム、情報処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかる情報処理システムは、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、配備解除要求を出力するセッション情報監視手段と、前記配備解除要求を受け取った場合に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除するモジュール配備解除手段と、を備えるものである。
【００１０】
本発明の第２の態様にかかる情報処理方法は、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除するものである。
【００１１】
本発明の第３の態様にかかるプログラムは、プロセッサに、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視し、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、前記第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する、処理を実行させるものである。
【発明の効果】
【００１２】
本発明により、不要になったモジュールを自動で配備解除することができる情報処理システム、情報処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかるアプリケーションサーバの構成例を示すブロック図である。
【図２】実施の形態１にかかるアプリケーションサーバの処理例を示すフローチャートである。
【図３】実施の形態２にかかるアプリケーションの実行環境の構成例を示すブロック図である。
【図４】実施の形態２にかかる実行ファイルテーブルの例を示す図である。
【図５】実施の形態２にかかるモジュール実行部にロードされるロードモジュールの構成を示す図である。
【図６】実施の形態２にかかるバージョンテーブルの例を示す図である。
【図７】実施の形態２にかかるロードバージョンテーブルの例を示す図である。
【図８】実施の形態２にかかる呼び出し関係テーブルの例を示す図である。
【図９】実施の形態２にかかるセッションテーブルの例を示す図である。
【図１０】実施の形態２にかかるセッション情報テーブルの例を示す図である。
【図１１】実施の形態２にかかるセッションオブジェクトの例を示す図である。
【図１２】実施の形態２にかかるセッションの取得処理を示すフローチャートである。
【図１３】実施の形態２にかかるセッションの更新処理を示すフローチャートである。
【図１４】実施の形態２にかかるロードモジュールによる削除要求によって行われるセッションの削除処理を示すフローチャートである。
【図１５】実施の形態２にかかるタイムアウトによって行われるセッションの削除処理を示すフローチャートである。
【図１６】実施の形態２にかかるセッション情報監視部がセッション削除の通知を受けた際の処理を示すフローチャートである。
【図１７】実施の形態２にかかるモジュール配備解除部がモジュールの配備解除要求を受けた際の処理を示すフローチャートである。
【図１８】実施の形態２にかかるモジュール配備解除部がモジュールの配備解除要求を受けた際の処理を示すフローチャートである。
【図１９】実施の形態２にかかるモジュール間の呼び出し関係の例を示す図である。
【図２０】実施の形態２にかかるロードモジュール間の呼び出し関係の例を示す図である。
【図２１】実施の形態２にかかる行が削除されたロードバージョンテーブルの例を示す図である。
【図２２】実施の形態２にかかる行が削除された呼び出し関係テーブルの例を示す図である。
【図２３】実施の形態２にかかる図２０の状態からＡ’（３，３）が配備解除されたロードモジュール間の呼び出し関係の例を示す図である。
【図２４】実施の形態２にかかる行が削除された実行ファイルテーブルの例を示す図である。
【図２５】実施の形態２にかかる行がさらに削除されたロードバージョンテーブルの例を示す図である。
【図２６】実施の形態２にかかる行がさらに削除された呼び出し関係テーブルの例を示す図である。
【図２７】実施の形態２にかかる図２３の状態からＡ（２，１）、Ｂ（２，１）、Ｃ’（２，２）が配備解除されたロードモジュール間の呼び出し関係の例を示す図である。
【図２８】実施の形態２にかかるアプリケーションの実行環境の他の構成例を示すブロック図である。
【図２９】実施の形態３にかかるアプリケーションの実行環境の構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下では、本発明の実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１５】
実施の形態１
まず、図１のブロック図を用いて、本発明の実施の形態１にかかるアプリケーションサーバ１００の構成例について説明する。アプリケーションサーバ１００は、セッション情報監視部１１０と、モジュール配備解除部１２０と、を備えている。なお、アプリケーションサーバ１００は、本発明の情報処理システムの一実施形態である。
【００１６】
セッション情報監視部１１０は、アプリケーションを構成する複数のプログラムモジュール（以下、単にモジュールと記載する）の各々についてのセッション数を監視する。また、セッション情報監視部１１０は、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、モジュール配備解除部１２０へ配備解除要求を出力する。なお、第１のモジュールは、図示しないクライアント端末からのリクエストを直接受け付けるモジュールである。
【００１７】
モジュール配備解除部１２０は、セッション情報監視部１１０から配備解除要求を受け取る。また、モジュール配備解除部１２０は、配備解除要求を受け取った場合に、第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する。
【００１８】
なお、モジュール配備解除部１２０は、どのモジュールからも呼び出されなくなったモジュールの配備解除を再帰的に行うようにしてもよい。なお、モジュールの配備解除を再帰的に行うとは、例えば、第１のモジュールのセッション数が０になった際に、それによってどのモジュールからも呼び出されなくなった第２のモジュールを配備解除し、第２のモジュールを配備解除することによりどのモジュールからも呼び出されなくなった第３のモジュールを配備解除するような処理のことである。これにより、不要になったすべてのモジュールを自動で配備解除することができる。
【００１９】
なお、最新バージョンであるモジュールは、配備解除の対象外としてもよい。すなわち、セッション情報監視部１１０は、セッション数が０になった第１のモジュールのモジュールバージョンが最新のモジュールバージョンである場合には、配備解除要求を出力しないようにしてもよい。また、モジュール配備解除部１２０は、どのモジュールからも呼び出されなくなったモジュールのモジュールバージョンが最新のモジュールバージョンである場合には、当該モジュールを配備解除しないようにしてもよい。これにより、最新のモジュールバージョンの第１のモジュールは、セッション数が０になった後も新規のリクエストを受け付けることができる。また、配備したばかりのモジュールが配備解除対象となることを防ぐことができる。
【００２０】
続いて、図２のフローチャートを用いて、本実施の形態１にかかるアプリケーションサーバ１００の処理例について説明する。
【００２１】
まず、アプリケーションサーバ１００は、セッション情報監視部１１０により、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視する（ステップＳ１０１）。
【００２２】
次に、アプリケーションサーバ１００は、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、モジュール配備解除部１２０により、当該第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する（ステップＳ１０２）。
【００２３】
以上のように、本発明の実施の形態１にかかるアプリケーションサーバ１００（情報処理システム）は、セッション情報監視部１１０と、モジュール配備解除部１２０と、を備える構成としている。また、アプリケーションサーバ１００は、セッション情報監視部１１０により、アプリケーションを構成する複数のモジュールの各々についてのセッション数を監視する構成としている。さらに、アプリケーションサーバ１００は、リクエストを直接受け付ける第１のモジュールのセッション数が０になった際に、モジュール配備解除部１２０により、当該第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する構成としている。これにより、本実施の形態１にかかるアプリケーションサーバ１００では、不要になったモジュールを自動で配備解除することができる。
【００２４】
実施の形態２
続いて、本発明の実施の形態２について説明する。図３は、本発明の実施の形態２にかかるアプリケーションの実行環境の構成例を示すブロック図である。図３を参照すると、実行環境は、アプリケーションサーバ１００Ａと、管理端末２００と、クライアント端末３００と、を含む。管理端末２００及びクライアント端末３００は、ネットワーク１０を介してアプリケーションサーバ１００Ａに接続される。
【００２５】
管理端末２００は、アプリケーションサーバ１００Ａに対して、アプリケーションの配備等の運用操作を実行する。
【００２６】
クライアント端末３００は、アプリケーションサーバ１００Ａに、アプリケーションの処理に係るリクエストを送信する。
【００２７】
アプリケーションサーバ１００Ａは、クライアント端末３００からリクエストを受信し、アプリケーションの処理を実行する。なお、アプリケーションサーバ１００Ａは、本発明の情報処理システムの一実施形態である。
【００２８】
アプリケーションサーバ１００Ａは、セッション情報監視部１１０Ａと、モジュール配備解除部１２０Ａと、配備処理部１３０と、モジュール生成部１４０と、モジュール実行部１５０と、リクエスト振り分け部１６０と、セッション情報管理部１７０と、モジュール格納部１８１と、呼び出し関係格納部１８２と、バージョン情報格納部１８３と、セッション振り分け先情報格納部１８４と、を備えている。
【００２９】
配備処理部１３０は、管理端末２００からの運用操作によって、アプリケーションを構成する複数のモジュールの各々をアプリケーションサーバ１００Ａに配備する。具体的には、配備処理部１３０は、モジュール格納部１８１の実行ファイルテーブル１に、管理端末２００から受信したモジュールに関する情報の登録を行う。また、配備処理部１３０は、モジュール格納部１８１に、管理端末２００から受信した実行ファイルの実体を保存する。
【００３０】
モジュール格納部１８１は、配備処理部１３０により配備されたモジュールを格納する。具体的には、モジュール格納部１８１は、実行ファイルテーブル１、及び、実行ファイルの実体を格納する。実行ファイルテーブル１は、アプリケーションを構成する複数のモジュールの各々の実行ファイルを示す。実行ファイルテーブル１の例を図４に示す。実行ファイルテーブル１では、複数のモジュールの各々のモジュール名に、当該モジュールの実行ファイルのバージョン（ファイルバージョン）、及び、ファイル名が関連づけられている。
【００３１】
モジュール生成部１４０は、モジュール格納部１８１に格納されているモジュールをロードモジュール４００としてモジュール実行部１５０にロードする。具体的には、モジュール生成部１４０は、実行ファイルを用いて処理実行部４０１を生成し、生成した呼び出し部４０２とともに、ロードモジュール４００に設定する。また、モジュール生成部１４０は、生成したロードモジュール４００を、モジュール実行部１５０にロードする。また、モジュール生成部１４０は、バージョン情報格納部１８３のバージョンテーブル２及びロードバージョンテーブル３への登録を行う。さらに、モジュール生成部１４０は、呼び出し関係格納部１８２の呼び出し関係テーブル４への登録を行う。
【００３２】
図５は、本実施の形態２にかかるモジュール実行部１５０にロードされるロードモジュール４００の構成を示す図である。ロードモジュール４００は、処理実行部４０１、及び、呼び出し部４０２を含む。
【００３３】
処理実行部４０１は、モジュールの実行ファイルに従って、モジュールに係る処理を実行する。呼び出し部４０２は、モジュールが依存する他のモジュールのロードモジュール４００の処理を呼び出す。モジュールが、複数の他のモジュールに依存する場合、それぞれの他のモジュールに対して、呼び出し部４０２が存在する。
【００３４】
モジュール実行部１５０は、モジュール生成部１４０によりロードされたロードモジュール４００を実行する。
【００３５】
バージョン情報格納部１８３は、バージョンテーブル２、及び、ロードバージョンテーブル３を格納する。バージョンテーブル２は、各モジュールの最新のロードモジュール４００を示す。ロードバージョンテーブル３は、モジュール実行部１５０にロードされた各ロードモジュール４００を示す。
【００３６】
バージョンテーブル２の例を図６に示す。バージョンテーブル２では、複数のモジュールの各々のモジュール名に、当該モジュールの最新のロードモジュール４００のバージョン（モジュールバージョン）が関連づけられている。
【００３７】
ロードバージョンテーブル３の例を図７に示す。ロードバージョンテーブル３では、複数のモジュールの各々のモジュール名に、当該モジュールのロードモジュール４００のモジュールバージョン、及び、実行ファイルのファイルバージョンが関連づけられている。
【００３８】
呼び出し関係格納部１８２は、呼び出し関係テーブル４を格納する。呼び出し関係テーブル４は、モジュール間の呼び出し関係を示す。呼び出し関係テーブル４の例を図８に示す。呼び出し関係テーブル４では、呼び出し先モジュールのモジュール名とモジュールバージョンの組に、呼び出し元モジュールのモジュール名とモジュールバージョンの組が関連づけられている。
【００３９】
セッション振り分け先情報格納部１８４は、セッションテーブル５を格納する。セッションテーブル５は、各セッションの振り分け先のロードモジュール４００を示す。セッションテーブル５の例を図９に示す。セッションテーブル５では、モジュールのモジュール名に、当該モジュールに対するセッションのセッションＩＤ（Identifier）と振り分け先のロードモジュール４００のモジュールバージョンとが関連づけられている。
【００４０】
リクエスト振り分け部１６０は、セッションテーブル５をもとに、クライアント端末３００から受信したリクエストを、適切なロードモジュール４００に振り分ける。また、リクエスト振り分け部１６０は、セッションテーブル５に、セッションＩＤ、モジュール名、及びモジュールバージョンを登録する。
【００４１】
セッション情報管理部１７０は、セッションＩＤ、セッションオブジェクト、及びセッションへの最終アクセス時刻を記録するセッション情報テーブル６を有する。セッション情報テーブル６の例を図１０に示す。なお、セッションオブジェクトは、例えば図１１に示すようなキーと値の組から構成される構造体であるが、それに限定されない。
【００４２】
セッション情報監視部１１０Ａ、モジュール配備解除部１２０Ａ、及びセッション情報管理部１７０の処理については、後にフローチャートを用いて具体的に説明する。
【００４３】
なお、アプリケーションサーバ１００Ａは、プログラムに基づく制御によって動作するコンピュータであってもよい。すなわち、アプリケーションサーバ１００Ａは、ＣＰＵ（Central Processing Unit）等のプロセッサと、各機能部の処理に関するプログラムを記憶した記憶媒体と、を含み、当該プログラムをプロセッサに実行させるものであってもよい。また、アプリケーションサーバ１００Ａの各構成要素は、有線、または、無線により接続された、異なるコンピュータに分散して配置されていてもよい。また、アプリケーションサーバ１００Ａの各構成要素は、独立した論理回路でもよい。
【００４４】
続いて、本実施の形態２の動作について説明する。
【００４５】
＜セッション情報へのアクセス処理＞
はじめに、セッション情報へのアクセス処理について説明する。ロードモジュール４００の処理実行部４０１で実行される処理により、セッションＩＤに紐付いたセッションを取得・更新・削除することができる。
【００４６】
図１２は、本実施の形態２にかかるセッションの取得処理を示すフローチャートである。
【００４７】
ロードモジュール４００は、リクエストに含まれるセッションＩＤに対応するセッションオブジェクトをセッション情報管理部１７０に要求する。すなわち、セッション情報管理部１７０は、リクエストに含まれるセッションＩＤに対応するセッションオブジェクトをロードモジュール４００から要求される（ステップＳ２０１）。
【００４８】
次に、セッション情報管理部１７０は、セッション情報テーブル６に要求されたセッションＩＤの行があるか否かを判断する（ステップＳ２０２）。
【００４９】
要求されたセッションＩＤの行がある場合（ステップＳ２０２にてＹＥＳ）、セッション情報管理部１７０は、要求されたセッションＩＤに対応するセッションオブジェクトをセッション情報テーブル６から取得し、且つ、セッション情報テーブル６における要求されたセッションＩＤの行の最終アクセス時刻を現在の時刻に更新する（ステップＳ２０３）。
【００５０】
他方、要求されたセッションＩＤの行がない場合（ステップＳ２０２にてＮＯ）、セッション情報管理部１７０は、セッションオブジェクトを新規に生成し、セッションＩＤ、セッションオブジェクト、及び現在時刻の組をセッション情報テーブル６に追加する（ステップＳ２０４）。
【００５１】
ステップＳ２０３又はステップＳ２０４の後に、セッション情報管理部１７０は、取得された又は新規に生成されたセッションオブジェクトをロードモジュール４００に返す（ステップＳ２０５）。
【００５２】
図１３は、本実施の形態２にかかるセッションの更新処理を示すフローチャートである。
【００５３】
ロードモジュール４００は、セッション取得処理により、セッションＩＤに対応するセッションオブジェクトを取得する（ステップＳ３０１）。
【００５４】
次に、ロードモジュール４００は、取得したセッションオブジェクトの内容を更新する（ステップＳ３０２）。
【００５５】
次に、ロードモジュール４００は、セッションＩＤと更新されたセッションオブジェクトをセッション情報管理部１７０へ送り更新を要求する（ステップＳ３０３）。
【００５６】
次に、セッション情報管理部１７０は、セッション情報テーブル６において要求されたセッションＩＤに対応する行のセッションオブジェクトを更新し、最終アクセス時刻を現在の時刻に更新する（ステップＳ３０４）。
【００５７】
続いてセッションの削除について説明する。セッションの削除は、ロードモジュール４００による削除要求によって行われる場合と、セッションの最終アクセス時刻から一定時間経過後に自動的に削除される場合（セッションタイムアウト）がある。なお、どちらか一方だけの構成もあり、セッションタイムアウトが無い場合には、セッション情報テーブル６の最終アクセス時刻とその更新処理は不要である。
【００５８】
図１４は、本実施の形態２にかかるロードモジュール４００による削除要求によって行われるセッションの削除処理を示すフローチャートである。
【００５９】
ロードモジュール４００は、セッションＩＤに対応するセッションの削除をセッション情報管理部１７０に要求する。すなわち、セッション情報管理部１７０は、セッションＩＤに対応するセッションの削除をロードモジュール４００から要求される（ステップＳ４０１）。
【００６０】
次に、セッション情報管理部１７０は、セッション情報テーブル６において要求されたセッションＩＤに対応する行を削除する（ステップＳ４０２）。
【００６１】
次に、セッション情報管理部１７０は、削除したセッションのセッションＩＤをセッション情報監視部１１０Ａに通知する（ステップＳ４０３）。
【００６２】
図１５は、本実施の形態２にかかるタイムアウトによって行われるセッションの削除処理を示すフローチャートである。なお、図１５の処理は、アプリケーションサーバ１００Ａが停止された際には終了する。
【００６３】
セッション情報管理部１７０は、セッション情報テーブル６において最終アクセス時刻から所定時間（タイムアウト時間）経過したセッションがあれば、その行を削除する（ステップＳ５０１）。具体的には、セッション情報管理部１７０は、セッション情報テーブル６における最終アクセス時刻と現在時刻とを比較し、最終アクセス時刻から所定のタイムアウト時間が経過したセッションがあれば、その行を削除する。
【００６４】
次に、セッション情報管理部１７０は、削除したセッションのセッションＩＤをセッション情報監視部１１０Ａに通知する（ステップＳ５０２）。
【００６５】
次に、セッション情報管理部１７０は、ステップＳ５０１を行った時刻から所定時間（監視間隔）が経過したか否かを判断する（ステップＳ５０３）。
【００６６】
所定の監視間隔が経過していない場合（ステップＳ５０３にてＮＯ）、セッション情報管理部１７０は、所定の監視間隔が経過するのを待つ。
【００６７】
所定の監視間隔が経過した場合（ステップＳ５０３にてＹＥＳ）、セッション情報管理部１７０は、再度ステップＳ５０１の処理を行う。
【００６８】
なお、タイムアウトするまでの時間（タイムアウト時間）はすべてのモジュール又はセッションで同じであってもよいし、異なっていてもよい。また、モジュール又はセッションごとにタイムアウトするまでの時間を変える場合には、例えばセッション情報テーブル６にタイムアウト時間の列を追加し、ステップＳ５０１においてそのタイムアウト時間と最終アクセス時刻からの経過時間とを比較するようにしてもよい。
【００６９】
＜セッション削除通知受信時の処理＞
続いて、図１６のフローチャートを用いて、セッション情報監視部１１０Ａがセッション削除の通知をセッション情報管理部１７０から受けた際の処理について説明する。
【００７０】
セッション情報監視部１１０Ａは、削除されたセッションのセッションＩＤを含むセッション削除通知をセッション情報管理部１７０から受ける（ステップＳ６０１）。
【００７１】
次に、セッション情報監視部１１０Ａは、削除されたセッションのセッションＩＤと一致する行の振り分け先のモジュール名ＭとモジュールバージョンＶを、セッション振り分け先情報格納部１８４のセッションテーブル５から取得する（ステップＳ６０２）。
【００７２】
次に、セッション情報監視部１１０Ａは、削除されたセッションのセッションＩＤと一致する行をセッションテーブル５から削除する（ステップＳ６０３）。
【００７３】
次に、セッション情報監視部１１０Ａは、セッションテーブル５にモジュール名がＭであり、且つモジュールバージョンがＶである行があるか否かを判断する（ステップＳ６０４）。
【００７４】
セッションテーブル５にモジュール名がＭであり、且つモジュールバージョンがＶである行がある場合（ステップＳ６０４にてＹＥＳ）、セッション情報監視部１１０Ａは、処理を終了する。これにより、セッション数が０でない場合には、処理が終了される。
【００７５】
他方、セッションテーブル５にモジュール名がＭであり、且つモジュールバージョンがＶである行がない場合（ステップＳ６０４にてＮＯ）、セッション情報監視部１１０Ａは、モジュール名Ｍの最新モジュールバージョンをバージョンテーブル２から取得する（ステップＳ６０５）。
【００７６】
次に、セッション情報監視部１１０Ａは、ステップＳ６０５にて取得された最新モジュールバージョンがモジュールバージョンＶと一致するか否かを判断する（ステップＳ６０６）。
【００７７】
最新モジュールバージョンがモジュールバージョンＶと一致する場合（ステップＳ６０６にてＹＥＳ）、セッション情報監視部１１０Ａは、処理を終了する。これにより、最新バージョンであるモジュールは、配備解除の対象外になる。
【００７８】
他方、最新モジュールバージョンがモジュールバージョンＶと一致しない場合（ステップＳ６０６にてＮＯ）、セッション情報監視部１１０Ａは、モジュール名Ｍ、且つモジュールバージョンＶのモジュールの配備解除要求をモジュール配備解除部１２０Ａへ出力する（ステップＳ６０７）。これにより、古いモジュールバージョン（最新モジュールバージョンではないモジュールバージョン）のセッション数が０になった場合には、モジュール名Ｍ及びモジュールバージョンＶのモジュールの配備解除要求が、セッション情報監視部１１０Ａからモジュール配備解除部１２０Ａへ出力される。
【００７９】
＜モジュール配備解除処理＞
続いて、図１７及び図１８のフローチャートを用いて、モジュール配備解除部１２０Ａがモジュールの配備解除要求を受けた際の処理について説明する。
【００８０】
モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つモジュールバージョンＶのモジュールの配備解除要求をセッション情報監視部１１０Ａから受ける（ステップＳ７０１）。
【００８１】
次に、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つモジュールバージョンＶのモジュールをモジュール実行部１５０から削除する（ステップＳ７０２）。
【００８２】
次に、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つモジュールバージョンＶのモジュールのファイルバージョンＦＶをロードバージョンテーブル３から取得する（ステップＳ７０３）。
【００８３】
次に、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つモジュールバージョンＶの行をロードバージョンテーブル３から削除する（ステップＳ７０４）。
【００８４】
次に、モジュール配備解除部１２０Ａは、ロードバージョンテーブル３にモジュール名がＭであり、且つファイルバージョンがＦＶである行があるか否かを判断する（ステップＳ７０５）。
【００８５】
ロードバージョンテーブル３にモジュール名がＭであり、且つファイルバージョンがＦＶである行がある場合（ステップＳ７０５にてＹＥＳ）、ステップＳ７０６〜ステップＳ７０８をスキップしてステップＳ７０９に進む。
【００８６】
他方、ロードバージョンテーブル３にモジュール名がＭであり、且つファイルバージョンがＦＶである行がない場合（ステップＳ７０５にてＮＯ）、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つファイルバージョンＦＶに一致する行のファイル名Ｆを実行ファイルテーブル１から取得する（ステップＳ７０６）。
【００８７】
次に、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つファイルバージョンＦＶに一致する行を実行ファイルテーブル１から削除する（ステップＳ７０７）。
【００８８】
次に、モジュール配備解除部１２０Ａは、実行ファイルＦの実体をモジュール格納部１８１から削除する（ステップＳ７０８）。
【００８９】
次に、モジュール配備解除部１２０Ａは、呼び出し元モジュール名がＭであり、且つ呼び出し元モジュールバージョンがＶである行を、呼び出し関係格納部１８２の呼び出し関係テーブル４から取得する（ステップＳ７０９）。なお、モジュール名Ｍ、且つモジュールバージョンＶのモジュールから呼び出される呼び出し先は、モジュール名Ｓ、且つモジュールバージョンＳＶであるとする。
【００９０】
次に、モジュール配備解除部１２０Ａは、呼び出し元モジュール名がＭであり、且つ呼び出し元モジュールバージョンがＶである行を、呼び出し関係テーブル４から削除する（ステップＳ７１０）。
【００９１】
次に、モジュール配備解除部１２０Ａは、モジュール名Ｍ、且つモジュールバージョンＶのモジュールが呼び出すモジュール数だけ以下の処理を繰り返す（ステップＳ７１１）。すなわち、ステップＳ７０９にて取得した各行に対して以下の処理を実行する。
【００９２】
モジュール配備解除部１２０Ａは、呼び出し関係格納部１８２の呼び出し関係テーブル４に呼び出し先のモジュール名がＳであり、且つ呼び出し先のモジュールバージョンがＳＶである行があるか否かを判断する（ステップＳ７１２）。
【００９３】
呼び出し関係テーブル４に呼び出し先のモジュール名がＳであり、且つ呼び出し先のモジュールバージョンがＳＶである行がある場合（ステップＳ７１２にてＹＥＳ）、ステップＳ７１３〜ステップＳ７１５をスキップして、ループ処理の最後（ステップＳ７１６）に進む。これにより、他のモジュールから呼び出されるモジュールについては配備解除要求が出されない。
【００９４】
他方、呼び出し関係テーブル４に呼び出し先のモジュール名がＳであり、且つ呼び出し先のモジュールバージョンがＳＶである行がない場合（ステップＳ７１２にてＮＯ）、モジュール配備解除部１２０Ａは、モジュール名Ｓの最新モジュールバージョンをバージョンテーブル２から取得する（ステップＳ７１３）。
【００９５】
次に、モジュール配備解除部１２０Ａは、ステップＳ７１３にて取得された最新モジュールバージョンがモジュールバージョンＳＶと一致するか否かを判断する（ステップＳ７１４）。
【００９６】
最新モジュールバージョンがモジュールバージョンＳＶと一致する場合（ステップＳ７１４にてＹＥＳ）、ステップＳ７１５をスキップして、ループ処理の最後（ステップＳ７１６）に進む。これにより、最新バージョンであるモジュールは、配備解除の対象外になる。
【００９７】
他方、最新モジュールバージョンがモジュールバージョンＳＶと一致しない場合（ステップＳ７１４にてＮＯ）、モジュール配備解除部１２０Ａは、モジュール名Ｓ、且つモジュールバージョンＳＶのモジュールの配備解除要求を出す（ステップＳ７１５）。これにより、他のモジュールから呼び出されなくなった古いモジュールバージョン（最新モジュールバージョンではないモジュールバージョン）のモジュールについて配備解除要求を出すことができる。
【００９８】
モジュール配備解除部１２０Ａは、ステップＳ７０９にて取得した各行に対する処理が終わるまで、上記の処理（ループ内の処理）を繰り返す（ステップＳ７１６）。
【００９９】
以上のように、モジュールの配備解除要求は、セッション数が０になった場合に、セッション情報監視部１１０Ａから出される。また、モジュールの配備解除要求は、他のモジュールから呼び出されなくなったモジュールに対して、モジュール配備解除部１２０Ａから再帰的に出される。
【０１００】
＜具体例＞
続いて、本発明の実施の形態２の動作の具体例を説明する。
【０１０１】
図１９は、本発明の実施の形態２にかかるモジュール間の呼び出し関係の例を示す図である。ここでは、図１９に示すように、アプリケーションが４つのモジュールＡ、Ｂ、Ｃ、及びＤにより構成されていると仮定する。また、図１９に示すように、クライアント端末３００がモジュールＡを呼び出し、モジュールＡがモジュールＢを呼び出し、モジュールＢがモジュールＣを呼び出し、モジュールＣがモジュールＤを呼び出すと仮定する。
【０１０２】
また、各モジュールの実行ファイルとして、モジュールＡ：「Ａ．ｗａｒ」、モジュールＢ：「Ｂ．ｊａｒ」、モジュールＣ：「Ｃ．ｊａｒ」、モジュールＤ：「Ｄ．ｊａｒ」が存在すると仮定する。さらに、各モジュールの更新（変更）された実行ファイルとして、モジュールＡ’：「Ａ−ｍｏｄｉｆｉｅｄ．ｗａｒ」、モジュールＣ’：「Ｃ−ｍｏｄｉｆｉｅｄ．ｊａｒ」、モジュールＣ’’：「Ｃ−ｍｏｄｉｆｉｅｄ−２．ｊａｒ」存在すると仮定する。ここで、モジュール名に付与されている「’」は、実行ファイルが変更されたモジュールを示す。
【０１０３】
はじめに、実行ファイルテーブル１、バージョンテーブル２、ロードバージョンテーブル３、呼び出し関係テーブル４の状態が、それぞれ図４、図６、図７、図８であるとする。この場合、ロードモジュール４００間の呼び出し関係は、図２０のようになる。なお、ロードモジュール４００に付与された「ａ（ｂ，ｃ）」は、モジュールａ、モジュールバージョンｂのロードモジュール４００を示し、当該ロードモジュール４００が、ファイルバージョンｃの実行ファイルを用いていることを示す。
【０１０４】
図２０の状態からモジュールＡ、モジュールバージョン３（Ａ’（３，３））に対する配備解除要求が出された場合、Ａ’（３，３）は配備解除される。しかし、Ａ’（３，３）が配備解除されても、モジュールＢ、モジュールバージョン２（Ｂ（２，１））は、モジュールＡ、モジュールバージョン２（Ａ（２，１））から呼び出される。このため、Ｂ（２，１）は配備解除されない。
【０１０５】
このときの、テーブルの遷移及び配備解除について、図１７及び図１８のステップを用いて説明する。図１７のステップＳ７０４により、モジュール名がＡ、モジュールバージョンが３の行がロードバージョンテーブル３から削除される。これにより、ロードバージョンテーブル３は、図２１のようになる。また、図１８のステップＳ７１０により、呼び出し元モジュール名がＡ、呼び出し元モジュールバージョンが３の行が呼び出し関係テーブル４から削除される。これにより、呼び出し関係テーブル４は、図２２のようになる。また、このときのロードモジュール４００間の呼び出し関係は、図２３のようになる。
【０１０６】
図２３の状態からモジュールＡ、モジュールバージョン２（Ａ（２，１））に対する配備解除要求が出された場合、Ａ（２，１）は配備解除される。また、Ａ（２，１）が配備解除されることにより、モジュールＢ、モジュールバージョン２（Ｂ（２，１））は、どのモジュールからも呼び出されなくなるため、Ｂ（２，１）に対する配備解除要求が再帰的に出され、Ｂ（２，１）は配備解除される。
【０１０７】
このときの、テーブルの遷移及び配備解除について、図１７及び図１８のステップを用いて説明する。図１７のステップＳ７０４により、モジュール名がＡ、モジュールバージョンが２の行がロードバージョンテーブル３から削除される。また、図１８のステップＳ７１０により、呼び出し元モジュール名がＡ、呼び出し元モジュールバージョンが２の行が呼び出し関係テーブル４から削除される。これにより、呼び出し関係テーブル４に呼び出し先モジュール名がＢ、呼び出し先モジュールバージョンが２である行が存在しなくなる。さらに、バージョンテーブル２のモジュール名Ｂの最新モジュールバージョンは３であり、呼び出し先モジュールバージョンの２とは一致しない。このため、図１８のステップＳ７１５により、モジュール名Ｂ、モジュールバージョン２（Ｂ（２，１））に対する配備解除要求が出され、Ｂ（２，１）が配備解除される。
【０１０８】
また、Ｂ（２，１）の配備解除によって、モジュール名Ｃ、モジュールバージョン２（Ｃ‘（２，２））は、どのモジュールからも呼び出されなくなる。このため、Ｃ‘（２，２）に対する配備解除要求が再帰的に出され、Ｃ‘（２，２）は配備解除される。
【０１０９】
このときの、テーブルの遷移及び配備解除について、図１７及び図１８のステップを用いて説明する。図１７のステップＳ７０４により、モジュール名がＢ、モジュールバージョンが２の行がロードバージョンテーブル３から削除される。また、図１８のステップＳ７１０により、呼び出し元モジュール名がＢ、呼び出し元モジュールバージョンが２の行が呼び出し関係テーブル４から削除される。これにより、呼び出し関係テーブル４に呼び出し先モジュール名がＣ、呼び出し先モジュールバージョンが２である行が存在しなくなる。さらに、バージョンテーブル２のモジュール名Ｃの最新モジュールバージョンは３であり、呼び出し先モジュールバージョンの２とは一致しない。このため、図１８のステップＳ７１５により、モジュール名Ｃ、モジュールバージョン２（Ｃ‘（２，２））に対する配備解除要求が出され、Ｃ‘（２，２）が配備解除される。
【０１１０】
モジュール名Ｃ、モジュールバージョン２（Ｃ‘（２，２））に対する配備解除では、図１７のステップＳ７０４により、モジュール名がＣ、モジュールバージョンが２の行がロードバージョンテーブル３から削除される。これにより、ロードバージョンテーブル３にモジュール名がＣ、ファイルバージョンが２である行が存在しなくなるため、図１７のステップＳ７０７により、モジュール名がＣ、ファイルバージョンが２の行が実行ファイルテーブル１から削除される。また、図１７のステップＳ７０８により、モジュール名がＣ、ファイルバージョンが２の実行ファイルの実体がモジュール格納部１８１から削除される。さらに、図１８のステップＳ７１０により、呼び出し元モジュール名がＣ、呼び出し元モジュールバージョンが２の行が呼び出し関係テーブル４から削除される。
【０１１１】
その結果、実行ファイルテーブル１、ロードバージョンテーブル３、呼び出し関係テーブル４の状態は、それぞれ図２４、図２５、図２６のようになる。また、このときのロードモジュール４００間の呼び出し関係は、図２７のようになる。
【０１１２】
以上のように、本発明の実施の形態２にかかるアプリケーションサーバ１００Ａ（情報処理システム）は、セッション情報管理部１７０をさらに備える構成としている。また、セッション情報管理部１７０は、削除を要求されたセッション、又は最終アクセス時刻から所定時間経過したセッションのセッションＩＤをセッション情報監視部１１０Ａに通知する構成としている。これにより、本実施の形態２にかかるアプリケーションサーバ１００Ａでは、セッション情報監視部１１０Ａが、削除すべきセッションのセッションＩＤを判別することができる。
【０１１３】
また、アプリケーションサーバ１００Ａは、セッションテーブル５を格納するセッション振り分け先情報格納部１８４をさらに備える構成としている。また、セッションテーブル５には、モジュール名に、当該モジュールに対するセッションのセッションＩＤと振り分け先のロードモジュール４００のモジュールバージョンとが関連づけられた構成としている。さらに、セッション情報監視部１１０Ａは、セッション情報管理部１７０から通知されたセッションＩＤ及びセッションテーブル５に基づいて、第１のモジュールのセッション数が０になったか否かを判断する構成としている。これにより、本実施の形態２にかかるアプリケーションサーバ１００Ａでは、セッション情報管理部１７０からセッションＩＤを通知されることをトリガとして、第１のモジュールのセッション数が０になったか否かを判断することができる。
【０１１４】
さらに、アプリケーションサーバ１００Ａでは、セッション情報監視部１１０Ａが、第１のモジュールのセッション数が０になった際に、第１のモジュールのモジュール名及びモジュールバージョンを含む配備解除要求をモジュール配備解除部１２０Ａへ出力する構成としている。また、アプリケーションサーバ１００Ａでは、モジュール配備解除部１２０Ａが、配備解除要求を受け取った場合に、配備解除要求に含まれるモジュール名且つモジュールバージョンの第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュール名且つモジュールバージョンのモジュールを配備解除する構成としている。これにより、本実施の形態２にかかるアプリケーションサーバ１００Ａでは、モジュールバージョンごとに配備解除することができる。
【０１１５】
なお、上述の説明では、モジュール格納部１８１、呼び出し関係格納部１８２、バージョン情報格納部１８３、及びセッション振り分け先情報格納部１８４の各テーブルへのデータの登録は、配備処理部１３０、モジュール生成部１４０、及びリクエスト振り分け部１６０を用いて行われることを前提としているが、これに限らない。例えば、図２８に示すように、アプリケーションサーバ１００Ａが、配備処理部１３０、モジュール生成部１４０、及びリクエスト振り分け部１６０を備えない構成としてもよい。この場合、モジュール格納部１８１、呼び出し関係格納部１８２、バージョン情報格納部１８３、及びセッション振り分け先情報格納部１８４の各テーブルのデータは、例えば、運用管理者によって管理端末２００から登録されるようにしてもよい。
【０１１６】
また、上述の説明では、配備解除の契機として、アプリケーションのリクエストを直接受け付ける第１のモジュールのセッション数が０になった場合について説明したが、これに限らない。例えば、運用管理者が、管理端末２００を通じてモジュール配備解除部１２０Ａに対して明示的に配備解除要求を出すようにしてもよい。すなわち、アプリケーションサーバ１００Ａが、管理端末２００から第１のモジュールの配備解除要求を受信し、モジュール配備解除部１２０Ａが、管理端末２００から受信した配備解除要求により第１のモジュールを配備解除するとともに、それによってどのモジュールからも呼び出されなくなったモジュールを配備解除する機能も備えるようにしてもよい。これにより、運用管理者が任意のタイミングでモジュールを配備解除し、それに伴って不要になったモジュールを自動で配備解除することができる。
【０１１７】
実施の形態３
続いて、本発明の実施の形態３について説明する。図２９は、本発明の実施の形態３にかかるアプリケーションの実行環境の構成例を示すブロック図である。図２９を参照すると、実行環境は、アプリケーションサーバ１００Ｂと、管理端末２００と、を含む。管理端末２００は、ネットワーク１０を介してアプリケーションサーバ１００Ｂに接続される。
【０１１８】
アプリケーションサーバ１００Ｂは、モジュール配備解除部１２０Ｂと、モジュール実行部１５０と、モジュール格納部１８１と、呼び出し関係格納部１８２と、バージョン情報格納部１８３と、を備えている。
【０１１９】
アプリケーションサーバ１００Ｂは、実施の形態２で説明した、アプリケーションのリクエストを直接受け付ける第１のモジュールのセッション数が０になった際にモジュールの配備解除を行う機能を備えていない。その機能に代えて、アプリケーションサーバ１００Ｂは、管理端末２００から受信した配備解除要求によりモジュールの配備解除を行う機能を備えている。すなわち、アプリケーションサーバ１００Ｂは、管理端末２００から第１のモジュールの配備解除要求を受信する。また、モジュール配備解除部１２０Ｂは、管理端末２００から受信した配備解除要求により第１のモジュールの配備解除を行う。さらに、モジュール配備解除部１２０Ｂは、第１のモジュールの配備解除によってどのモジュールからも呼び出されなくなったモジュールを配備解除する。これにより、運用管理者が任意のタイミングでモジュールを配備解除し、それに伴って不要になったモジュールを自動で配備解除することができる。
【０１２０】
なお、上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１２１】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１２２】
５    セッションテーブル
１００、１００Ａ    アプリケーションサーバ（情報処理システム）
１１０、１１０Ａ    セッション情報監視部
１２０、１２０Ａ    モジュール配備解除部
１７０    セッション情報管理部
１８４    セッション振り分け先情報格納部
１０    ネットワーク
２００    管理端末
【図１】
2019046255.tif 000003
【図２】
2019046255.tif 000004
【図３】
2019046255.tif 000005
【図４】
2019046255.tif 000006
【図５】
2019046255.tif 000007
【図６】
2019046255.tif 000008
【図７】
2019046255.tif 000009
【図８】
2019046255.tif 000010
【図９】
2019046255.tif 000011
【図１０】
2019046255.tif 000012
【図１１】
2019046255.tif 000013
【図１２】
2019046255.tif 000014
【図１３】
2019046255.tif 000015
【図１４】
2019046255.tif 000016
【図１５】
2019046255.tif 000017
【図１６】
2019046255.tif 000018
【図１７】
2019046255.tif 000019
【図１８】
2019046255.tif 000020
【図１９】
2019046255.tif 000021
【図２０】
2019046255.tif 000022
【図２１】
2019046255.tif 000023
【図２２】
2019046255.tif 000024
【図２３】
2019046255.tif 000025
【図２４】
2019046255.tif 000026
【図２５】
2019046255.tif 000027
【図２６】
2019046255.tif 000028
【図２７】
2019046255.tif 000029
【図２８】
2019046255.tif 000030
【図２９】
2019046255.tif 000031