(57)【要約】【課題】本技術の開示の一側面においては、アプリケーションの配備に関するシステム負荷を抑制することである。【解決手段】課題を解決するために、複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置は、複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部とを含む。【選択図】図１
2013025671.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置であって、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部と、
を含むことを特徴とするサーバ装置。
【請求項２】
前記記憶部は、さらに、
前記一部のアプリケーションプログラムに含まれる各アプリケーションプログラムについて、前記各アプリケーションプログラムの前記データベース中の格納場所を示す格納情報と、前記各アプリケーションプログラムを識別する識別情報と、を関連付けて記憶し、
前記処理部は、
受信した前記リクエストに含まれる前記アプリケーションプログラムについての格納情報が、前記アプリケーションプログラムの識別情報と関連付けられて前記記憶部に記憶されている場合に、前記アプリケーションプログラムが前記記憶部に記憶されていると判断する、
ことを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記処理部は、
前記アプリケーションが前記記憶部に記憶されていない場合に、受信した前記リクエストに含まれる前記アプリケーションプログラムについての格納情報と、前記アプリケーションプログラムの識別情報と、を関連付けて前記記憶部に記憶する、
ことを特徴とする請求項２記載のサーバ装置。
【請求項４】
前記処理部は、
前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記サーバ装置に接続されている他のサーバ装置が前記アプリケーションプログラムを記憶しているか否かを判定し、前記他のサーバ装置が前記アプリケーションプログラムを記憶している場合、前記他のサーバ装置に前記アプリケーションプログラムを実行させることにより前記リクエストに対応する処理を実行させる、
ことを特徴とする請求項１記載のサーバ装置。
【請求項５】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置の制御方法であって、
前記サーバ装置が、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶し、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する、
ことを特徴とするサーバ装置の制御方法。
【請求項６】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置を制御する制御プログラムであって、
前記サーバ装置に、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶し、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する、
処理を実行させることを特徴とするサーバ装置の制御プログラム。
【請求項７】
複数のファイルを記憶するデータベースにアクセス可能なコンピュータであって、
前記複数のファイルのうちの一部のファイルを、前記一部のファイルそれぞれを識別する識別情報と関連付けて記憶し、前記一部のファイルに含まれる各ファイルについての前記データベース内の格納場所を示す格納情報と前記各ファイルを識別する識別情報とを関連付けて記憶する記憶部と、
前記一部のファイルのうちのいずれかのファイルへのアクセス要求を受信した場合に、前記アクセス要求に含まれる前記いずれかのファイルの格納情報と関連付けられて前記記憶部に記憶された前記識別情報に基づいて、前記記憶部から前記いずれかのファイルを取得する処理部と、
ことを含むことを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、サーバ装置の制御方法、サーバ装置の制御プログラム及びコンピュータに関する。
【背景技術】
【０００２】
オンラインシステムは、クライアントからのリクエストに応じた処理を行い、そのレスポンスをリクエスト元のクライアントへ送信するアプリケーションサーバを有している。このアプリケーションサーバは、クライアントからのリクエストを処理するために、事前にサーバにリクエストを処理できるアプリケーションを配備している。
【０００３】
また、アプリケーションサーバは、数十乃至数百台規模で運用されることが多く、リクエストの種別を増やす度にアプリケーションサーバへのアプリケーションのアップデート及び追加作業を行わなければならない。これらの作業は、各アプリケーションサーバに対して管理者が手作業で行っており、管理者にとって煩雑である。
【０００４】
例えば、アプリケーションサーバ導入時に全てのアプリケーションをインストールする場合は、アプリケーションを全て記録したマスタディスクを作って導入すれば良い。しかし、マスタディスクは、初期導入時点で作成しているため、その後の各アプリケーションの更新に対応しているわけではない。このため、アプリケーション更新などが頻繁に行われるオンラインシステムに対して、アプリケーションサーバを追加導入する場合、その時点での最新アプリケーションで動作させるためには、マスタディスクでは対応できず、個別にアプリケーションを導入していくことになる。
【０００５】
また、例えば、アプリケーションサーバ導入時に、全てのアプリケーションをインストールする場合は、更新時点でのサーバや通信経路の負荷などを考慮し、一時的にオンラインシステムを停止させることとなる。
【０００６】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００２−５３３８３０号公報
【特許文献２】特開２００５−２０２６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本技術の開示の一側面においては、アプリケーションの配備に関するシステム負荷を抑制することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置は、複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部とを含む。
【発明の効果】
【００１０】
本開示の技術の一側面によれば、サーバは、クライアントからのリクエスト受信時に、必要なアプリケーションを配備するため、不要なアプリケーションを事前に配備する必要がなくなる。ゆえに、アプリケーションの配備に関するシステム負荷を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムを簡略的に示す図である。
【図２】アプリケーションサーバのハードウェア構成の一例を示す図である。
【図３】テーブルを示す図（その１）である。
【図４】ＫＶＳのハードウェア構成の一例を示す図である。
【図５】テーブルを示す図（その２）である。
【図６】ＲＤＢのハードウェア構成の一例を示す図である。
【図７】テーブルを示す図（その３）である。
【図８】アプリケーションサーバの処理を示すフローチャート（その１）である。
【図９】ＫＶＳの処理を示すフローチャートである。
【図１０】テーブルを示す図（その４）である。
【図１１】ＲＤＢの処理を示すフローチャートである。
【図１２】アプリケーションサーバの処理を示すフローチャート（その２）である。
【図１３】アプリケーションサーバの処理を示すフローチャート（その３）である。
【発明を実施するための形態】
【００１２】
以下、本実施形態における情報処理システムについて説明する。
【００１３】
（実施の形態１）
図１は、本実施形態における情報処理システムを簡略的に示す図である。情報処理システムは、複数のクライアント１００、ネットワーク５００、アプリケーションサーバ２００、２１０及び２２０、複数のＫＶＳ（Ｋｅｙ  Ｖａｌｕｅ  Ｓｔｏｒｅ）３００及びＲＤＢ(Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ)４００を有する。ＫＶＳ３００はデータを管理するサーバである。複数のクライアント１００は、ネットワーク５００に接続されている。ネットワーク５００には、さらに、アプリケーションサーバ２００、２１０及び２２０が接続されている。また、アプリケーションサーバ２００、２１０及び２２０は互いに接続されている。アプリケーションサーバ２００、２１０及び２２０には、ＫＶＳ３００が接続されている。ＫＶＳ３００には、ＲＤＢ４００が接続されている。
【００１４】
図２は、本実施形態におけるアプリケーションサーバ２００、２１０及び２２０のハードウェア構成の一例を簡略的に示すブロック図である。以下、アプリケーションサーバ２００について説明する。なお、以下はアプリケーションサーバ２００を例に説明するが、本実施の形態では、アプリケーションサーバ２１０及び２２０は同一の構成を有しているものとする。
【００１５】
アプリケーションサーバ２００は、クライアント１００から受信したリクエストに対する処理を行うサーバである。アプリケーションサーバ２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１によって制御されている。
【００１６】
ＣＰＵ２０１及び主記憶装置２０２には、システムコントローラ２０３が接続されている。システムコントローラ２０３は、ＣＰＵ２０１と主記憶装置２０２との間のデータ転送や、ＣＰＵ２０１とバス２０４との間のデータ転送を制御する。さらに、システムコントローラ２０３には、バス２０４を介して、ネットワークコントローラ２０７及びディスクコントローラ２１２が接続されている。
【００１７】
主記憶装置２０２には、ＣＰＵ２０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。主記憶装置２０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。
【００１８】
ディスクコントローラ２１２には、ハードディスク２１３が接続されている。
【００１９】
ハードディスク２１３は、ＯＳやクライアント１００からのリクエストに対応し、当該リクエストをＣＰＵ２０１に処理させるための複数のアプリケーションプログラム１０００、ＣＰＵ２０１にアプリケーション１０００の呼び出しなどの制御を行わせる制御プログラム２０００及び各種データを格納する。
【００２０】
また、ハードディスク２１３には、図３に示すように、ハードディスク２１３に格納されているアプリケーションについて、アプリケーションの格納位置の指定を含む識別子情報（ＵＲＩ）６０２及びアプリケーション情報６０４を示したテーブル６００が記憶されている。アプリケーション情報６０４は、アプリケーション名などのアプリケーションを特定可能な情報を含む。
【００２１】
ネットワークコントローラ２０７は、図１に示したネットワーク５００と接続されており、ネットワーク５００を介して、ＣＰＵ２０１もしくはハードディスク２１３、クライアント１００、他のアプリケーションサーバ２００及びＫＶＳ３００との間で、データの送受信を行う。
【００２２】
電源１０９は、不図示の電源線を介してアプリケーションサーバ２００内の各ハードウェアに対して電力を供給する。
【００２３】
このようなハードウェアによって、アプリケーションサーバ２００の処理機能を実現することができる。
【００２４】
図４は、本実施形態におけるＫＶＳ３００のハードウェア構成の一例を簡略的に示すブロック図である。ＫＶＳ３００は、アプリケーションサーバ２００が実行するアプリケーションプログラムを記憶する。図２を用いて説明したアプリケーションサーバ２００のブロックと同一名称のブロックは、同様の機能を有するため、その説明を省略する。
【００２５】
ハードディスク３１３は、アプリケーションサーバ２００が実行するアプリケーションプログラム１０００を一時記憶するキャッシュ３１０として機能するとともに、当該キャッシュ３１０の制御をＣＰＵ３０１に実行させるキャッシュ制御プログラム３２０を記憶する。
【００２６】
また、ハードディスク３１３は、図５に示すキャッシュ３１０に一時記憶されているアプリケーション１０００のＵＲＩ７０２とアプリケーション情報７０４を記録したテーブル７００を記憶する。
【００２７】
ネットワークコントローラ３０７は、ＣＰＵ３０１もしくはハードディスク３１３、アプリケーションサーバ２００、２１０、２２０及びＲＤＢ４００との間で、データの送受信を行う。
【００２８】
図６は、本実施形態におけるＲＤＢ４００のハードウェア構成の一例を簡略的に示すブロック図である。ＲＤＢ４００は、アプリケーションサーバ２００、２１０及び２２０が実行する複数のアプリケーションプログラム１０００を蓄積する。図２を用いて説明したアプリケーションサーバ２００のブロックと同一名称のブロックは、同様の機能を有するため、その説明を省略する。
【００２９】
ハードディスク４１３は、アプリケーションサーバ２００、２１０及び２２０が実行するアプリケーションプログラム１０００及びＣＰＵ４０１にＲＤＢ４００の制御を行わせるＲＤＢ制御プログラム４２０を記憶する。
【００３０】
また、ハードディスク４１３は、テーブル８００を記憶する。テーブル８００は、図７に示されるように、ハードディスク４１３内に記憶されているアプリケーション１０００のＵＲＩ８０２と当該ＵＲＩ８０２に対応するアプリケーション情報８０４とを記録する。ネットワークコントローラ４０７は、ＣＰＵ４０１もしくはハードディスク４１３、アプリケーションサーバ２００、２１０、２２０及びＫＶＳ３００との間で、データの送受信を行う。
【００３１】
以上のように構成された本実施の形態のオンラインシステムにおいて、以下、その処理について説明する。
【００３２】
図８は、本実施形態におけるアプリケーションサーバ２００の処理を示すフローチャートである。なお、以下のＣＰＵ２０１の処理は、特段の記載がない限り、ＣＰＵ２０１が、ハードディスク２１３に記憶されている制御プログラム２０００を実行することにより、処理していることとする。また、本フローチャートは、アプリケーションサーバ２００の処理を示すが、上記したようにアプリケーションサーバ２１０、２２０も同様の構成であり、本フローチャートに示すアプリケーションサーバ２００の処理と同様の処理を行っているものとする。
【００３３】
ステップＳ１０１において、ＣＰＵ２０１は、クライアント１００からリクエストを受信する。処理はステップＳ１０２へ移行する。
【００３４】
ステップＳ１０２において、ＣＰＵ２０１は、受信したリクエストからＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）を抽出する。処理はステップＳ１０３へ移行する。
【００３５】
ステップＳ１０３において、ＣＰＵ２０１は、ハードディスク２１３に格納されているテーブル６００を参照して、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されているか否かを判定する。上記したように、テーブル６００は、アプリケーションサーバ２００がハードディスク２１３に格納しているＵＲＩ６０２と当該ＵＲＩ６０２に対応するアプリケーション情報６０４とを記録している。抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されている場合、ＣＰＵ２０１は、ステップＳ１０５へ処理を移行する。一方、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていない場合、ＣＰＵ２０１は、ステップＳ１０７へ処理を移行する。
【００３６】
例えば、ステップＳ１０２で、ＣＰＵ２０１が抽出したＵＲＩが「／ｘｘｘ」であったとする。ＵＲＩ「／ｘｘｘ」に対応するアプリケーション「ａａａ．ｗａｒ」はテーブル６００に記録されているため、ＣＰＵ２０１は、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていると判定する。
【００３７】
ステップＳ１０５において、ＣＰＵ２０１は、ハードディスク２１３に格納されているアプリケーション「ａａａ．ｗａｒ」を主記憶装置２０２に展開して実行し、クライアントから受信したリクエストを処理する。処理はステップＳ１０６へ移行する。
【００３８】
ステップＳ１０６において、ＣＰＵ２０１は、ネットワークコントローラ２０７を介して、処理したリクエストのレスポンスをクライアント１００に送信し、本処理を終了し次の処理へ移行する。
【００３９】
次に、図８のステップＳ１０３において、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていない場合について説明する。
【００４０】
ステップＳ１０２において、ＣＰＵ２０１が抽出したＵＲＩが「／ｚｚｚ」であったとする。ＵＲＩ「／ｚｚｚ」に対応するアプリケーションはテーブル６００に記録されていないため、ＣＰＵ２０１は、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていないと判定する。処理はステップＳ１０７へ移行する。
【００４１】
ステップＳ１０７において、ＣＰＵ２０１は、ネットワークコントローラ２０７を介して、抽出したＵＲＩ「／ｚｚｚ」をＫＶＳ３００に送信し、ＵＲＩ「／ｚｚｚ」に対応するアプリケーションを要求し、処理をステップＳ１０８へ移行する。
【００４２】
ステップＳ１０８では、ＣＰＵ２０１は、ステップＳ１０７へのアプリケーションの要求後、ＫＶＳ３００からＵＲＩ「／ｚｚｚ」に対応するアプリケーション「ｃｃｃ．ｗａｒ」を受信し、ハードディスク２１３に格納する。処理はステップＳ１０９へ移行する。
【００４３】
ステップＳ１０９において、受信したアプリケーションのＵＲＩ「／ｚｚｚ」とアプリケーション情報「ｃｃｃ．ｗａｒ」をテーブル６００に追記することにより、テーブル６００の更新を行う。処理はステップＳ１０４へ移行する。
【００４４】
ステップＳ１０９の処理後のステップＳ１０４において、ＣＰＵ２０１は、ハードディスク２１３に格納されているアプリケーション「ｃｃｃ．ｗａｒ」を主記憶装置２０２に展開して実行する。処理はステップＳ１０５へ移行する。
【００４５】
ステップＳ１０５において、ＣＰＵ２０１は、主記憶装置２０２にて実行しているアプリケーション「ｃｃｃ．ｗａｒ」を用いて、クライアント１００から受信したリクエストを処理する。処理はステップＳ１０６へ移行する。
【００４６】
ステップＳ１０６において、ＣＰＵ２０１は、ネットワークコントローラ２０７を介して、処理したリクエストのレスポンスをクライアント１００に送信し、本処理を終了する。
【００４７】
次に、図９を用いてＫＶＳ３００の処理について説明する。
【００４８】
ステップＳ２０１において、ＣＰＵ３０１は、アプリケーションサーバ２００が、ステップＳ１０７の処理によって要求したＵＲＩ「／ｚｚｚ」を受信する。処理はステップＳ２０２へ移行する。
【００４９】
ステップＳ２０２において、ＣＰＵ３０１は、アプリケーションサーバ２００から受信したＵＲＩ「／ｚｚｚ」を用いてハードディスク３１３に格納されているテーブル７００を検索する。処理はステップＳ２０３へ移行する。
【００５０】
ステップＳ２０３において、ＣＰＵ３０１は、ハードディスク３１３に格納されているテーブル７００を参照して、受信したＵＲＩ「／ｚｚｚ」に対応するアプリケーションがハードディスク３１３に格納されているか否かを判定する。テーブル７００は、上記したようにＵＲＩ７０２と当該ＵＲＩ７０２に対応するアプリケーション情報７０４とを記録する。受信したＵＲＩに対応するアプリケーションがハードディスク３１３に格納されている場合、処理はステップＳ２０４へ移行する。一方、抽出したＵＲＩに対応するアプリケーションがハードディスク３１３に格納されていない場合、処理はステップＳ２０６へ移行する。ここでは、受信したＵＲＩ「／ｚｚｚ」に対応するアプリケーション「ｃｃｃ．ｗａｒ」はテーブル７００に記録されているため、ＣＰＵ３０１は、受信したＵＲＩに対応するアプリケーションがハードディスク３１３に格納されていると判定する。処理はステップＳ２０４へ移行する。
【００５１】
ステップＳ２０４において、ＣＰＵ３０１は、ハードディスク３１３から受信したＵＲＩ「／ｚｚｚ」に対応するアプリケーション「ｃｃｃ．ｗａｒ」を取得する。処理はステップＳ２０５へ移行する。
【００５２】
ステップＳ２０５において、ＣＰＵ３０１は、ネットワークコントローラ３０７を介して、取得したアプリケーション「ｃｃｃ．ｗａｒ」をアプリケーションサーバ２００に送信する。処理は終了する。
【００５３】
次に、図９のステップＳ２０３において、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていない場合について説明する。なお、以下の説明では、アプリケーションサーバ２００が、ＵＲＩ「／ｙｙｙ」のアプリケーションを要求してきた場合について説明する。
【００５４】
ステップＳ２０１において、ＣＰＵ３０１は、アプリケーションサーバ２００からＵＲＩ「／ｙｙｙ」を受信する。処理はステップＳ２０２へ移行する。
【００５５】
ステップＳ２０２において、ＣＰＵ３０１は、アプリケーションサーバ２００から受信したＵＲＩ「／ｙｙｙ」を用いてハードディスク３１３に格納されているテーブル７００を検索する。処理はステップＳ２０３へ移行する。
【００５６】
ステップＳ２０３において、ＣＰＵ３０１は、ハードディスク３１３に格納されているテーブル７００を参照して、受信したＵＲＩ「／ｙｙｙ」に対応するアプリケーションがハードディスク３１３に格納されているか否かを判定する。ここでは、受信したＵＲＩ「／ｙｙｙ」に対応するアプリケーションはテーブル７００に記録されていないため、ＣＰＵ３０１は、受信したＵＲＩに対応するアプリケーションがハードディスク３１３に格納されていないと判定する。処理はステップＳ２０６へ移行する。
【００５７】
ステップＳ２０６において、ＣＰＵ３０１は、ネットワークコントローラ３０７を介して、受信ＵＲＩ「／ｙｙｙ」をＲＤＢ４００に送信し、ＵＲＩ「／ｙｙｙ」に対応するアプリケーションを要求する。処理はステップＳ２０７へ移行する。
【００５８】
その後、ステップＳ２０７において、ＣＰＵ３０１は、ＲＤＢ４００から受信した、ＵＲＩ「／ｙｙｙ」に対応するアプリケーション「ｂｂｂ．ｗａｒ」を受信する。処理はステップＳ２０８へ移行する。
【００５９】
ステップＳ２０８において、ＣＰＵ３０１は、受信したアプリケーション「ｂｂｂ．ｗａｒ」をハードディスク３１３のキャッシュ３１０に格納する。処理はステップＳ２０９へ移行する。
【００６０】
ステップＳ２０９において、ＣＰＵ３０１は、ＵＲＩ「／ｙｙｙ」とアプリケーション「ｂｂｂ．ｗａｒ」とを対応付けてテーブル７００に追記することにより、テーブル７００を更新する。図１０に更新後のテーブル７００を示す。処理はステップＳ２０４へ移行する。
【００６１】
ステップＳ２０９後のステップＳ２０４において、ＣＰＵ３０１は、ハードディスク３１３から受信したＵＲＩ「／ｚｚｚ」に対応するアプリケーション「ｃｃｃ．ｗａｒ」を取得する。処理はステップＳ２０５へ移行する。
【００６２】
ステップＳ２０５において、ＣＰＵ３０１は、ネットワークコントローラ３０７を介して、取得したアプリケーション「ｃｃｃ．ｗａｒ」をアプリケーションサーバ２００に送信する。処理は終了する。
【００６３】
次に、図１１を用いてＲＤＢ４００の処理について説明する。
【００６４】
ステップＳ３０１において、ＣＰＵ４０１は、ＫＶＳ３００からＵＲＩ「／ｙｙｙ」を受信する。処理はステップＳ３０２へ移行する。
【００６５】
ステップＳ３０２において、ＣＰＵ４０１は、ＫＶＳ３００から受信したＵＲＩ「／ｙｙｙ」を用いてハードディスク４１３に格納されているテーブル８００を検索する。処理はステップＳ３０３へ移行する。
【００６６】
ステップＳ３０３において、ＣＰＵ４０１は、ハードディスク４１３に格納されているテーブル８００を参照して、受信したＵＲＩ「／ｚｚｚ」に対応するアプリケーションをハードディスク４１３から取得する。ここでは、受信したＵＲＩ「／ｙｙｙ」に対応するアプリケーション「ｂｂｂ．ｗａｒ」がテーブル８００に記録されているため、ＣＰＵ４０１は、受信したＵＲＩ「／ｙｙｙ」に対応するアプリケーション「ｂｂｂ．ｗａｒ」ハードディスク４１３から取得する。処理はステップＳ３０４へ移行する。
【００６７】
ステップＳ３０４において、ＣＰＵ４０１は、ネットワークコントローラ４０７を介し、取得したアプリケーション「ｂｂｂ．ｗａｒ」をＫＶＳ３００に送信する。処理は終了する。
【００６８】
以上、実施の形態１によれば、アプリケーションサーバ２００は、クライアント１００からのリクエスト受信時に、必要なアプリケーションを配備するため、アプリケーションを事前に各アプリケーションサーバ２００、２１０及び２２０に配備しておかなくともクライアント１００からのリクエストを処理することが可能となる。ゆえに、アプリケーションの配備時に、管理者が一括してアプリケーションを配備する必要がなくなり、管理者の負荷を低減することができる。
【００６９】
また、アプリケーションサーバ２００は、リクエスト時に、該リクエストに応じたアプリケーションのみを導入することになるため、一括してアプリケーションサーバ２００へアプリケーションを導入する必要がない。このため、一括アプリケーション導入に伴う、一時的なネットワーク負荷増が少なく、システム全体を一時停止するなどの措置を行わずともよくなる。
【００７０】
なお、図１１のフローチャートでは、テーブル８００にアプリケーション情報が記憶されていない場合の処理については触れていない。この場合は、対応するアプリケーションが無いことを示す情報をＫＶＳ３００へ送信し、ＫＶＳ３００は、この情報をアプリケーションサーバ２００へ送信するようにする、さらに、アプリケーションサーバ２００は、この情報を受け、処理できないことを示す情報をクライアント１００へ返すようにしても良い。
【００７１】
（実施の形態２）
図１２は、本実施形態におけるアプリケーションサーバ２００の処理を示すフローチャートである。
【００７２】
ステップＳ４０１において、ＣＰＵ２０１は、クライアント１００からリクエストを受信する。処理はステップＳ４０２へ移行する。
【００７３】
ステップＳ４０２において、ＣＰＵ２０１は、受信したリクエストから抽出したＵＲＩを用いてテーブル６００を検索する。処理はステップＳ４０３へ移行する。
【００７４】
ステップＳ４０３において、ＣＰＵ２０１は、ハードディスク２１３に格納されているテーブル６００を参照して、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されているか否かを判定する。
【００７５】
ここで、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されている場合、処理はステップＳ４０５へ移行する。
【００７６】
ステップＳ４０５において、ＣＰＵ２０１は、ハードディスク２１３に格納されている対応アプリケーション２１３を起動し、ステップＳ４０１にて受信した要求を処理する。処理は、Ｓ４０６へ移行する。
【００７７】
ステップＳ４０６において、ＣＰＵ２０１は、クライアント１００へ、Ｓ４０５での処理の処理結果を送信する。
【００７８】
また、ステップＳ４０３の処理において、アプリケーションが、ハードディスク２１３に記憶されていないと判定された場合、ステップＳ４０７の処理へ移行する。
【００７９】
ステップＳ４０７において、ＣＰＵ２０１は、Ｓ４０１で受信した要求を他のアプリケーションサーバ（２１０もしくは２２０）へ問合せを行い、問合せを行なったアプリケーションサーバからのレスポンスを受信する。処理はステップＳ４０８へ移行する。
【００８０】
ステップＳ４０８において、ＣＰＵ２０１は、ステップＳ４０７で受信したレスポンスを基に、問合せを行なった他のアプリケーションサーバ（２１０もしくは２２０）が、処理可能か否かを判定する。ここで、処理可能となった場合、処理はＳ４０９へ移行する。
【００８１】
ステップＳ４０９において、ＣＰＵ２０１は、処理可能と判定した他のアプリケーションサーバ２１０へ、引き継ぎ要求を送信する。具体的には、ＣＰＵ２０１は、引き継ぎ要求と共に、ステップＳ４０１の処理で受信したクライアント１００からの要求及びクライアント１００を特定するためのアドレス情報などを送信する。処理はＳ４１０へ移行する。
【００８２】
ステップＳ４１０において、ＣＰＵ２０１は、ＫＶＳ３００に、ステップＳ４０１の処理に必要なアプリケーションを要求する。処理はステップＳ４１１に移行する。
【００８３】
そして、ステップＳ４１１において、ＫＶＳ３００からアプリケーションを受信し、展開するとともに、ハードディスク２１３に格納する。処理はステップＳ４１２に移行する。
【００８４】
ステップＳ４１２において、ＣＰＵ２０１は、ＫＶＳ３００から取得したアプリケーションのＵＲＩ及びアプリケーション情報をテーブル６００に記録する。処理はステップＳ４０４へ移行する。
【００８５】
ステップＳ４０４において、ＣＰＵ２０１は、ハードディスク２１３に格納されている対応アプリケーションの起動を行う。処理は終了する。
【００８６】
即ち、ＣＰＵ２０１は、他のアプリケーションへ要求に対する処理を引き継いだ後は、該当アプリケーションの導入・記憶・テーブル６００の更新までは行うが、要求の処理自体は行わない。
【００８７】
次にステップＳ４０８において、問合せを行なった他のアプリケーションサーバ（２０１もしくは２０２）が、ステップＳ４０１で受信した要求を処理できないと判定した場合、ＣＰＵ２０１は、処理をステップＳ４１３へ移行する。
【００８８】
ステップＳ４１３において、ＣＰＵ２０１は、全てのアプリケーションサーバに対し問合せを行なったかを判定する。ここで、全てのアプリケーションサーバに対し問合せを行なっていないと判定した場合、ＣＰＵ２０１は、処理をステップＳ４０７へ移行し、問合せを行っていない他のアプリケーションサーバへの問合せを行う。また、ステップＳ４１３の処理にて、全ての他のアプリケーションサーバに問合せを行ったと判定した場合、ＣＰＵ２０１は、処理をステップＳ４１４に移行する。
【００８９】
ステップＳ４１４において、ＣＰＵ２０１は、ＫＶＳ３００に、ステップＳ４０１の処理に必要なアプリケーションを要求する。処理はステップ４１５に移行する。そして、ステップＳ４１５において、ＫＶＳ３００からアプリケーションを受信し、展開するとともに、ハードディスク２１３に格納する。処理はステップＳ４１６に移行する。
【００９０】
ステップＳ４１６において、ＣＰＵ２０１は、ＫＶＳ３００から取得したアプリケーションのＵＲＩ及びアプリケーション情報をテーブル６００に記憶し、処理をステップＳ４０５へ移行する。
【００９１】
なお、ステップＳ４１３の処理で、ステップＳ４１４へ移行する場合は、どの他のアプリケーションサーバでも処理ができない場合がある。この場合は、ＣＰＵ２０１は、アプリケーションサーバ２００自身にアプリケーションを導入し、そのまま処理を行う。
【００９２】
続いて、ステップＳ４０７において、アプリケーションサーバ２００が送信した問合せを受信したアプリケーションサーバ２１０が行う処理について、図１３を用いて説明する。
【００９３】
ステップＳ５０１において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２００からＵＲＩを受信する。処理はステップＳ５０２へ移行する。
【００９４】
ステップＳ５０２において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２００から受信したＵＲＩを用いてアプリケーションサーバ２１０のハードディスク２１３に格納されているテーブル６００を検索する。処理はステップＳ５０３へ移行する。
【００９５】
ステップＳ５０３において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２１０のハードディスク２１３に格納されているテーブル６００を参照して、受信したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されているか否かを判定する。受信したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されている場合、処理はステップＳ５０４へ移行する。一方、抽出したＵＲＩに対応するアプリケーションがハードディスク２１３に格納されていない場合、処理はステップＳ５０８へ移行する。
【００９６】
ステップＳ５０８において、アプリケーションサーバ２１０のＣＰＵ２０１は、ネットワークコントローラ２０７を介し、アプリケーションサーバ２００へアプリケーションを格納していない旨を示すレスポンスを送信する。処理は終了する。
【００９７】
また、ステップＳ５０４において、アプリケーションサーバ２１０のＣＰＵ２０１は、ネットワークコントローラ２０７を介し、アプリケーションサーバ２００へアプリケーションを格納している旨を示すレスポンスを送信する。処理はステップＳ５０５へ移行する。
【００９８】
ステップＳ５０５において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２００から処理の引き継ぎ要求を受信する。処理はステップＳ５０６へ移行する。
【００９９】
ステップＳ５０６において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２１０のハードディスク２１３に格納されているテーブル６００を参照して、受信したＵＲＩに対応するアプリケーションをハードディスク２１３から取得し、受信した引き継ぎ情報に含まれる、クライアント１００の要求に基づく処理を実行する。処理はステップＳ５０７へ移行する。
【０１００】
ステップＳ５０７において、アプリケーションサーバ２１０のＣＰＵ２０１は、アプリケーションサーバ２００より受信した引き継ぎ要求に含まれる、クライアント１００のアドレス情報を元に、クライアント１００へＳ５０６で処理した結果を送信する。
【０１０１】
以上のように実施の形態２によれば、クライアント１００からの要求を受信したアプリケーションサーバ２００は、対応するアプリケーションを格納していなかった場合、他のアプリケーションサーバが処理可能であれば、他のアプリケーションサーバへクライアントからの要求を転送する。即ち、実施の形態１では、アプリケーションを取得・導入するまではクライアントへレスポンスを送信できなかったが、実施の形態２では他のアプリケーションサーバによってその要求の処理を行わせるので、アプリケーション導入までの待ち時間を無くすことが出来る。また、それに応じたアプリケーションは、アプリケーションサーバ２００に記憶されるので、次に装用のアプリケーションを使用する要求が到来した場合は、アプリケーションサーバ２００にて対応可能となる。
【０１０２】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０３】
１００  クライアント
２００、２１０、２２０  アプリケーションサーバ
２０１、３０１、４０１  ＣＰＵ
２０２、３０２、４０２  主記憶装置
２０３、３０３、４０３  システムコントローラ
２０４、３０４、４０４  バス
２０７、３０７、４０７  ネットワークコントローラ
２０９、３０９、４０９  電源
２１２、３１２、４１２  ディスクコントローラ
２１３、３１３、４１３  ハードディスク
３００  ＫＶＳ
３１０  キャッシュ
３２０  キャッシュ制御プログラム
４００  ＲＤＢ
４２０  ＲＤＢ制御プログラム
５００  ネットワーク
６００、７００、８００  テーブル
６０２、７０２、８０２  ＵＲＩ
６０４、７０４、８０４  アプリケーション情報
１０００  アプリケーションプログラム
２０００  制御プログラム
【図１】
2013025671.tif 000003
【図２】
2013025671.tif 000004
【図３】
2013025671.tif 000005
【図４】
2013025671.tif 000006
【図５】
2013025671.tif 000007
【図６】
2013025671.tif 000008
【図７】
2013025671.tif 000009
【図８】
2013025671.tif 000010
【図９】
2013025671.tif 000011
【図１０】
2013025671.tif 000012
【図１１】
2013025671.tif 000013
【図１２】
2013025671.tif 000014
【図１３】
2013025671.tif 000015