説明

サーバ装置、サーバ装置の制御方法、サーバ装置の制御プログラム及びコンピュータ

【課題】本技術の開示の一側面においては、アプリケーションの配備に関するシステム負荷を抑制することである。
【解決手段】課題を解決するために、複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置は、複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置、サーバ装置の制御方法、サーバ装置の制御プログラム及びコンピュータに関する。
【背景技術】
【0002】
オンラインシステムは、クライアントからのリクエストに応じた処理を行い、そのレスポンスをリクエスト元のクライアントへ送信するアプリケーションサーバを有している。このアプリケーションサーバは、クライアントからのリクエストを処理するために、事前にサーバにリクエストを処理できるアプリケーションを配備している。
【0003】
また、アプリケーションサーバは、数十乃至数百台規模で運用されることが多く、リクエストの種別を増やす度にアプリケーションサーバへのアプリケーションのアップデート及び追加作業を行わなければならない。これらの作業は、各アプリケーションサーバに対して管理者が手作業で行っており、管理者にとって煩雑である。
【0004】
例えば、アプリケーションサーバ導入時に全てのアプリケーションをインストールする場合は、アプリケーションを全て記録したマスタディスクを作って導入すれば良い。しかし、マスタディスクは、初期導入時点で作成しているため、その後の各アプリケーションの更新に対応しているわけではない。このため、アプリケーション更新などが頻繁に行われるオンラインシステムに対して、アプリケーションサーバを追加導入する場合、その時点での最新アプリケーションで動作させるためには、マスタディスクでは対応できず、個別にアプリケーションを導入していくことになる。
【0005】
また、例えば、アプリケーションサーバ導入時に、全てのアプリケーションをインストールする場合は、更新時点でのサーバや通信経路の負荷などを考慮し、一時的にオンラインシステムを停止させることとなる。
【0006】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特表2002−533830号公報
【特許文献2】特開2005−202631号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本技術の開示の一側面においては、アプリケーションの配備に関するシステム負荷を抑制することである。
【課題を解決するための手段】
【0009】
上記課題を解決するために、複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置は、複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部とを含む。
【発明の効果】
【0010】
本開示の技術の一側面によれば、サーバは、クライアントからのリクエスト受信時に、必要なアプリケーションを配備するため、不要なアプリケーションを事前に配備する必要がなくなる。ゆえに、アプリケーションの配備に関するシステム負荷を抑制することができる。
【図面の簡単な説明】
【0011】
【図1】情報処理システムを簡略的に示す図である。
【図2】アプリケーションサーバのハードウェア構成の一例を示す図である。
【図3】テーブルを示す図(その1)である。
【図4】KVSのハードウェア構成の一例を示す図である。
【図5】テーブルを示す図(その2)である。
【図6】RDBのハードウェア構成の一例を示す図である。
【図7】テーブルを示す図(その3)である。
【図8】アプリケーションサーバの処理を示すフローチャート(その1)である。
【図9】KVSの処理を示すフローチャートである。
【図10】テーブルを示す図(その4)である。
【図11】RDBの処理を示すフローチャートである。
【図12】アプリケーションサーバの処理を示すフローチャート(その2)である。
【図13】アプリケーションサーバの処理を示すフローチャート(その3)である。
【発明を実施するための形態】
【0012】
以下、本実施形態における情報処理システムについて説明する。
【0013】
(実施の形態1)
図1は、本実施形態における情報処理システムを簡略的に示す図である。情報処理システムは、複数のクライアント100、ネットワーク500、アプリケーションサーバ200、210及び220、複数のKVS(Key Value Store)300及びRDB(Relational Database)400を有する。KVS300はデータを管理するサーバである。複数のクライアント100は、ネットワーク500に接続されている。ネットワーク500には、さらに、アプリケーションサーバ200、210及び220が接続されている。また、アプリケーションサーバ200、210及び220は互いに接続されている。アプリケーションサーバ200、210及び220には、KVS300が接続されている。KVS300には、RDB400が接続されている。
【0014】
図2は、本実施形態におけるアプリケーションサーバ200、210及び220のハードウェア構成の一例を簡略的に示すブロック図である。以下、アプリケーションサーバ200について説明する。なお、以下はアプリケーションサーバ200を例に説明するが、本実施の形態では、アプリケーションサーバ210及び220は同一の構成を有しているものとする。
【0015】
アプリケーションサーバ200は、クライアント100から受信したリクエストに対する処理を行うサーバである。アプリケーションサーバ200は、CPU(Central Processing Unit)201によって制御されている。
【0016】
CPU201及び主記憶装置202には、システムコントローラ203が接続されている。システムコントローラ203は、CPU201と主記憶装置202との間のデータ転送や、CPU201とバス204との間のデータ転送を制御する。さらに、システムコントローラ203には、バス204を介して、ネットワークコントローラ207及びディスクコントローラ212が接続されている。
【0017】
主記憶装置202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置202には、CPU201による処理に必要な各種データが格納される。主記憶装置202には、例えば、RAM(Random Access Memory)が用いられる。
【0018】
ディスクコントローラ212には、ハードディスク213が接続されている。
【0019】
ハードディスク213は、OSやクライアント100からのリクエストに対応し、当該リクエストをCPU201に処理させるための複数のアプリケーションプログラム1000、CPU201にアプリケーション1000の呼び出しなどの制御を行わせる制御プログラム2000及び各種データを格納する。
【0020】
また、ハードディスク213には、図3に示すように、ハードディスク213に格納されているアプリケーションについて、アプリケーションの格納位置の指定を含む識別子情報(URI)602及びアプリケーション情報604を示したテーブル600が記憶されている。アプリケーション情報604は、アプリケーション名などのアプリケーションを特定可能な情報を含む。
【0021】
ネットワークコントローラ207は、図1に示したネットワーク500と接続されており、ネットワーク500を介して、CPU201もしくはハードディスク213、クライアント100、他のアプリケーションサーバ200及びKVS300との間で、データの送受信を行う。
【0022】
電源109は、不図示の電源線を介してアプリケーションサーバ200内の各ハードウェアに対して電力を供給する。
【0023】
このようなハードウェアによって、アプリケーションサーバ200の処理機能を実現することができる。
【0024】
図4は、本実施形態におけるKVS300のハードウェア構成の一例を簡略的に示すブロック図である。KVS300は、アプリケーションサーバ200が実行するアプリケーションプログラムを記憶する。図2を用いて説明したアプリケーションサーバ200のブロックと同一名称のブロックは、同様の機能を有するため、その説明を省略する。
【0025】
ハードディスク313は、アプリケーションサーバ200が実行するアプリケーションプログラム1000を一時記憶するキャッシュ310として機能するとともに、当該キャッシュ310の制御をCPU301に実行させるキャッシュ制御プログラム320を記憶する。
【0026】
また、ハードディスク313は、図5に示すキャッシュ310に一時記憶されているアプリケーション1000のURI702とアプリケーション情報704を記録したテーブル700を記憶する。
【0027】
ネットワークコントローラ307は、CPU301もしくはハードディスク313、アプリケーションサーバ200、210、220及びRDB400との間で、データの送受信を行う。
【0028】
図6は、本実施形態におけるRDB400のハードウェア構成の一例を簡略的に示すブロック図である。RDB400は、アプリケーションサーバ200、210及び220が実行する複数のアプリケーションプログラム1000を蓄積する。図2を用いて説明したアプリケーションサーバ200のブロックと同一名称のブロックは、同様の機能を有するため、その説明を省略する。
【0029】
ハードディスク413は、アプリケーションサーバ200、210及び220が実行するアプリケーションプログラム1000及びCPU401にRDB400の制御を行わせるRDB制御プログラム420を記憶する。
【0030】
また、ハードディスク413は、テーブル800を記憶する。テーブル800は、図7に示されるように、ハードディスク413内に記憶されているアプリケーション1000のURI802と当該URI802に対応するアプリケーション情報804とを記録する。ネットワークコントローラ407は、CPU401もしくはハードディスク413、アプリケーションサーバ200、210、220及びKVS300との間で、データの送受信を行う。
【0031】
以上のように構成された本実施の形態のオンラインシステムにおいて、以下、その処理について説明する。
【0032】
図8は、本実施形態におけるアプリケーションサーバ200の処理を示すフローチャートである。なお、以下のCPU201の処理は、特段の記載がない限り、CPU201が、ハードディスク213に記憶されている制御プログラム2000を実行することにより、処理していることとする。また、本フローチャートは、アプリケーションサーバ200の処理を示すが、上記したようにアプリケーションサーバ210、220も同様の構成であり、本フローチャートに示すアプリケーションサーバ200の処理と同様の処理を行っているものとする。
【0033】
ステップS101において、CPU201は、クライアント100からリクエストを受信する。処理はステップS102へ移行する。
【0034】
ステップS102において、CPU201は、受信したリクエストからURI(Uniform Resource Identifier)を抽出する。処理はステップS103へ移行する。
【0035】
ステップS103において、CPU201は、ハードディスク213に格納されているテーブル600を参照して、抽出したURIに対応するアプリケーションがハードディスク213に格納されているか否かを判定する。上記したように、テーブル600は、アプリケーションサーバ200がハードディスク213に格納しているURI602と当該URI602に対応するアプリケーション情報604とを記録している。抽出したURIに対応するアプリケーションがハードディスク213に格納されている場合、CPU201は、ステップS105へ処理を移行する。一方、抽出したURIに対応するアプリケーションがハードディスク213に格納されていない場合、CPU201は、ステップS107へ処理を移行する。
【0036】
例えば、ステップS102で、CPU201が抽出したURIが「/xxx」であったとする。URI「/xxx」に対応するアプリケーション「aaa.war」はテーブル600に記録されているため、CPU201は、抽出したURIに対応するアプリケーションがハードディスク213に格納されていると判定する。
【0037】
ステップS105において、CPU201は、ハードディスク213に格納されているアプリケーション「aaa.war」を主記憶装置202に展開して実行し、クライアントから受信したリクエストを処理する。処理はステップS106へ移行する。
【0038】
ステップS106において、CPU201は、ネットワークコントローラ207を介して、処理したリクエストのレスポンスをクライアント100に送信し、本処理を終了し次の処理へ移行する。
【0039】
次に、図8のステップS103において、抽出したURIに対応するアプリケーションがハードディスク213に格納されていない場合について説明する。
【0040】
ステップS102において、CPU201が抽出したURIが「/zzz」であったとする。URI「/zzz」に対応するアプリケーションはテーブル600に記録されていないため、CPU201は、抽出したURIに対応するアプリケーションがハードディスク213に格納されていないと判定する。処理はステップS107へ移行する。
【0041】
ステップS107において、CPU201は、ネットワークコントローラ207を介して、抽出したURI「/zzz」をKVS300に送信し、URI「/zzz」に対応するアプリケーションを要求し、処理をステップS108へ移行する。
【0042】
ステップS108では、CPU201は、ステップS107へのアプリケーションの要求後、KVS300からURI「/zzz」に対応するアプリケーション「ccc.war」を受信し、ハードディスク213に格納する。処理はステップS109へ移行する。
【0043】
ステップS109において、受信したアプリケーションのURI「/zzz」とアプリケーション情報「ccc.war」をテーブル600に追記することにより、テーブル600の更新を行う。処理はステップS104へ移行する。
【0044】
ステップS109の処理後のステップS104において、CPU201は、ハードディスク213に格納されているアプリケーション「ccc.war」を主記憶装置202に展開して実行する。処理はステップS105へ移行する。
【0045】
ステップS105において、CPU201は、主記憶装置202にて実行しているアプリケーション「ccc.war」を用いて、クライアント100から受信したリクエストを処理する。処理はステップS106へ移行する。
【0046】
ステップS106において、CPU201は、ネットワークコントローラ207を介して、処理したリクエストのレスポンスをクライアント100に送信し、本処理を終了する。
【0047】
次に、図9を用いてKVS300の処理について説明する。
【0048】
ステップS201において、CPU301は、アプリケーションサーバ200が、ステップS107の処理によって要求したURI「/zzz」を受信する。処理はステップS202へ移行する。
【0049】
ステップS202において、CPU301は、アプリケーションサーバ200から受信したURI「/zzz」を用いてハードディスク313に格納されているテーブル700を検索する。処理はステップS203へ移行する。
【0050】
ステップS203において、CPU301は、ハードディスク313に格納されているテーブル700を参照して、受信したURI「/zzz」に対応するアプリケーションがハードディスク313に格納されているか否かを判定する。テーブル700は、上記したようにURI702と当該URI702に対応するアプリケーション情報704とを記録する。受信したURIに対応するアプリケーションがハードディスク313に格納されている場合、処理はステップS204へ移行する。一方、抽出したURIに対応するアプリケーションがハードディスク313に格納されていない場合、処理はステップS206へ移行する。ここでは、受信したURI「/zzz」に対応するアプリケーション「ccc.war」はテーブル700に記録されているため、CPU301は、受信したURIに対応するアプリケーションがハードディスク313に格納されていると判定する。処理はステップS204へ移行する。
【0051】
ステップS204において、CPU301は、ハードディスク313から受信したURI「/zzz」に対応するアプリケーション「ccc.war」を取得する。処理はステップS205へ移行する。
【0052】
ステップS205において、CPU301は、ネットワークコントローラ307を介して、取得したアプリケーション「ccc.war」をアプリケーションサーバ200に送信する。処理は終了する。
【0053】
次に、図9のステップS203において、抽出したURIに対応するアプリケーションがハードディスク213に格納されていない場合について説明する。なお、以下の説明では、アプリケーションサーバ200が、URI「/yyy」のアプリケーションを要求してきた場合について説明する。
【0054】
ステップS201において、CPU301は、アプリケーションサーバ200からURI「/yyy」を受信する。処理はステップS202へ移行する。
【0055】
ステップS202において、CPU301は、アプリケーションサーバ200から受信したURI「/yyy」を用いてハードディスク313に格納されているテーブル700を検索する。処理はステップS203へ移行する。
【0056】
ステップS203において、CPU301は、ハードディスク313に格納されているテーブル700を参照して、受信したURI「/yyy」に対応するアプリケーションがハードディスク313に格納されているか否かを判定する。ここでは、受信したURI「/yyy」に対応するアプリケーションはテーブル700に記録されていないため、CPU301は、受信したURIに対応するアプリケーションがハードディスク313に格納されていないと判定する。処理はステップS206へ移行する。
【0057】
ステップS206において、CPU301は、ネットワークコントローラ307を介して、受信URI「/yyy」をRDB400に送信し、URI「/yyy」に対応するアプリケーションを要求する。処理はステップS207へ移行する。
【0058】
その後、ステップS207において、CPU301は、RDB400から受信した、URI「/yyy」に対応するアプリケーション「bbb.war」を受信する。処理はステップS208へ移行する。
【0059】
ステップS208において、CPU301は、受信したアプリケーション「bbb.war」をハードディスク313のキャッシュ310に格納する。処理はステップS209へ移行する。
【0060】
ステップS209において、CPU301は、URI「/yyy」とアプリケーション「bbb.war」とを対応付けてテーブル700に追記することにより、テーブル700を更新する。図10に更新後のテーブル700を示す。処理はステップS204へ移行する。
【0061】
ステップS209後のステップS204において、CPU301は、ハードディスク313から受信したURI「/zzz」に対応するアプリケーション「ccc.war」を取得する。処理はステップS205へ移行する。
【0062】
ステップS205において、CPU301は、ネットワークコントローラ307を介して、取得したアプリケーション「ccc.war」をアプリケーションサーバ200に送信する。処理は終了する。
【0063】
次に、図11を用いてRDB400の処理について説明する。
【0064】
ステップS301において、CPU401は、KVS300からURI「/yyy」を受信する。処理はステップS302へ移行する。
【0065】
ステップS302において、CPU401は、KVS300から受信したURI「/yyy」を用いてハードディスク413に格納されているテーブル800を検索する。処理はステップS303へ移行する。
【0066】
ステップS303において、CPU401は、ハードディスク413に格納されているテーブル800を参照して、受信したURI「/zzz」に対応するアプリケーションをハードディスク413から取得する。ここでは、受信したURI「/yyy」に対応するアプリケーション「bbb.war」がテーブル800に記録されているため、CPU401は、受信したURI「/yyy」に対応するアプリケーション「bbb.war」ハードディスク413から取得する。処理はステップS304へ移行する。
【0067】
ステップS304において、CPU401は、ネットワークコントローラ407を介し、取得したアプリケーション「bbb.war」をKVS300に送信する。処理は終了する。
【0068】
以上、実施の形態1によれば、アプリケーションサーバ200は、クライアント100からのリクエスト受信時に、必要なアプリケーションを配備するため、アプリケーションを事前に各アプリケーションサーバ200、210及び220に配備しておかなくともクライアント100からのリクエストを処理することが可能となる。ゆえに、アプリケーションの配備時に、管理者が一括してアプリケーションを配備する必要がなくなり、管理者の負荷を低減することができる。
【0069】
また、アプリケーションサーバ200は、リクエスト時に、該リクエストに応じたアプリケーションのみを導入することになるため、一括してアプリケーションサーバ200へアプリケーションを導入する必要がない。このため、一括アプリケーション導入に伴う、一時的なネットワーク負荷増が少なく、システム全体を一時停止するなどの措置を行わずともよくなる。
【0070】
なお、図11のフローチャートでは、テーブル800にアプリケーション情報が記憶されていない場合の処理については触れていない。この場合は、対応するアプリケーションが無いことを示す情報をKVS300へ送信し、KVS300は、この情報をアプリケーションサーバ200へ送信するようにする、さらに、アプリケーションサーバ200は、この情報を受け、処理できないことを示す情報をクライアント100へ返すようにしても良い。
【0071】
(実施の形態2)
図12は、本実施形態におけるアプリケーションサーバ200の処理を示すフローチャートである。
【0072】
ステップS401において、CPU201は、クライアント100からリクエストを受信する。処理はステップS402へ移行する。
【0073】
ステップS402において、CPU201は、受信したリクエストから抽出したURIを用いてテーブル600を検索する。処理はステップS403へ移行する。
【0074】
ステップS403において、CPU201は、ハードディスク213に格納されているテーブル600を参照して、抽出したURIに対応するアプリケーションがハードディスク213に格納されているか否かを判定する。
【0075】
ここで、抽出したURIに対応するアプリケーションがハードディスク213に格納されている場合、処理はステップS405へ移行する。
【0076】
ステップS405において、CPU201は、ハードディスク213に格納されている対応アプリケーション213を起動し、ステップS401にて受信した要求を処理する。処理は、S406へ移行する。
【0077】
ステップS406において、CPU201は、クライアント100へ、S405での処理の処理結果を送信する。
【0078】
また、ステップS403の処理において、アプリケーションが、ハードディスク213に記憶されていないと判定された場合、ステップS407の処理へ移行する。
【0079】
ステップS407において、CPU201は、S401で受信した要求を他のアプリケーションサーバ(210もしくは220)へ問合せを行い、問合せを行なったアプリケーションサーバからのレスポンスを受信する。処理はステップS408へ移行する。
【0080】
ステップS408において、CPU201は、ステップS407で受信したレスポンスを基に、問合せを行なった他のアプリケーションサーバ(210もしくは220)が、処理可能か否かを判定する。ここで、処理可能となった場合、処理はS409へ移行する。
【0081】
ステップS409において、CPU201は、処理可能と判定した他のアプリケーションサーバ210へ、引き継ぎ要求を送信する。具体的には、CPU201は、引き継ぎ要求と共に、ステップS401の処理で受信したクライアント100からの要求及びクライアント100を特定するためのアドレス情報などを送信する。処理はS410へ移行する。
【0082】
ステップS410において、CPU201は、KVS300に、ステップS401の処理に必要なアプリケーションを要求する。処理はステップS411に移行する。
【0083】
そして、ステップS411において、KVS300からアプリケーションを受信し、展開するとともに、ハードディスク213に格納する。処理はステップS412に移行する。
【0084】
ステップS412において、CPU201は、KVS300から取得したアプリケーションのURI及びアプリケーション情報をテーブル600に記録する。処理はステップS404へ移行する。
【0085】
ステップS404において、CPU201は、ハードディスク213に格納されている対応アプリケーションの起動を行う。処理は終了する。
【0086】
即ち、CPU201は、他のアプリケーションへ要求に対する処理を引き継いだ後は、該当アプリケーションの導入・記憶・テーブル600の更新までは行うが、要求の処理自体は行わない。
【0087】
次にステップS408において、問合せを行なった他のアプリケーションサーバ(201もしくは202)が、ステップS401で受信した要求を処理できないと判定した場合、CPU201は、処理をステップS413へ移行する。
【0088】
ステップS413において、CPU201は、全てのアプリケーションサーバに対し問合せを行なったかを判定する。ここで、全てのアプリケーションサーバに対し問合せを行なっていないと判定した場合、CPU201は、処理をステップS407へ移行し、問合せを行っていない他のアプリケーションサーバへの問合せを行う。また、ステップS413の処理にて、全ての他のアプリケーションサーバに問合せを行ったと判定した場合、CPU201は、処理をステップS414に移行する。
【0089】
ステップS414において、CPU201は、KVS300に、ステップS401の処理に必要なアプリケーションを要求する。処理はステップ415に移行する。そして、ステップS415において、KVS300からアプリケーションを受信し、展開するとともに、ハードディスク213に格納する。処理はステップS416に移行する。
【0090】
ステップS416において、CPU201は、KVS300から取得したアプリケーションのURI及びアプリケーション情報をテーブル600に記憶し、処理をステップS405へ移行する。
【0091】
なお、ステップS413の処理で、ステップS414へ移行する場合は、どの他のアプリケーションサーバでも処理ができない場合がある。この場合は、CPU201は、アプリケーションサーバ200自身にアプリケーションを導入し、そのまま処理を行う。
【0092】
続いて、ステップS407において、アプリケーションサーバ200が送信した問合せを受信したアプリケーションサーバ210が行う処理について、図13を用いて説明する。
【0093】
ステップS501において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ200からURIを受信する。処理はステップS502へ移行する。
【0094】
ステップS502において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ200から受信したURIを用いてアプリケーションサーバ210のハードディスク213に格納されているテーブル600を検索する。処理はステップS503へ移行する。
【0095】
ステップS503において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ210のハードディスク213に格納されているテーブル600を参照して、受信したURIに対応するアプリケーションがハードディスク213に格納されているか否かを判定する。受信したURIに対応するアプリケーションがハードディスク213に格納されている場合、処理はステップS504へ移行する。一方、抽出したURIに対応するアプリケーションがハードディスク213に格納されていない場合、処理はステップS508へ移行する。
【0096】
ステップS508において、アプリケーションサーバ210のCPU201は、ネットワークコントローラ207を介し、アプリケーションサーバ200へアプリケーションを格納していない旨を示すレスポンスを送信する。処理は終了する。
【0097】
また、ステップS504において、アプリケーションサーバ210のCPU201は、ネットワークコントローラ207を介し、アプリケーションサーバ200へアプリケーションを格納している旨を示すレスポンスを送信する。処理はステップS505へ移行する。
【0098】
ステップS505において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ200から処理の引き継ぎ要求を受信する。処理はステップS506へ移行する。
【0099】
ステップS506において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ210のハードディスク213に格納されているテーブル600を参照して、受信したURIに対応するアプリケーションをハードディスク213から取得し、受信した引き継ぎ情報に含まれる、クライアント100の要求に基づく処理を実行する。処理はステップS507へ移行する。
【0100】
ステップS507において、アプリケーションサーバ210のCPU201は、アプリケーションサーバ200より受信した引き継ぎ要求に含まれる、クライアント100のアドレス情報を元に、クライアント100へS506で処理した結果を送信する。
【0101】
以上のように実施の形態2によれば、クライアント100からの要求を受信したアプリケーションサーバ200は、対応するアプリケーションを格納していなかった場合、他のアプリケーションサーバが処理可能であれば、他のアプリケーションサーバへクライアントからの要求を転送する。即ち、実施の形態1では、アプリケーションを取得・導入するまではクライアントへレスポンスを送信できなかったが、実施の形態2では他のアプリケーションサーバによってその要求の処理を行わせるので、アプリケーション導入までの待ち時間を無くすことが出来る。また、それに応じたアプリケーションは、アプリケーションサーバ200に記憶されるので、次に装用のアプリケーションを使用する要求が到来した場合は、アプリケーションサーバ200にて対応可能となる。
【0102】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0103】
100 クライアント
200、210、220 アプリケーションサーバ
201、301、401 CPU
202、302、402 主記憶装置
203、303、403 システムコントローラ
204、304、404 バス
207、307、407 ネットワークコントローラ
209、309、409 電源
212、312、412 ディスクコントローラ
213、313、413 ハードディスク
300 KVS
310 キャッシュ
320 キャッシュ制御プログラム
400 RDB
420 RDB制御プログラム
500 ネットワーク
600、700、800 テーブル
602、702、802 URI
604、704、804 アプリケーション情報
1000 アプリケーションプログラム
2000 制御プログラム

【特許請求の範囲】
【請求項1】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置であって、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶する記憶部と、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する処理部と、
を含むことを特徴とするサーバ装置。
【請求項2】
前記記憶部は、さらに、
前記一部のアプリケーションプログラムに含まれる各アプリケーションプログラムについて、前記各アプリケーションプログラムの前記データベース中の格納場所を示す格納情報と、前記各アプリケーションプログラムを識別する識別情報と、を関連付けて記憶し、
前記処理部は、
受信した前記リクエストに含まれる前記アプリケーションプログラムについての格納情報が、前記アプリケーションプログラムの識別情報と関連付けられて前記記憶部に記憶されている場合に、前記アプリケーションプログラムが前記記憶部に記憶されていると判断する、
ことを特徴とする請求項1記載のサーバ装置。
【請求項3】
前記処理部は、
前記アプリケーションが前記記憶部に記憶されていない場合に、受信した前記リクエストに含まれる前記アプリケーションプログラムについての格納情報と、前記アプリケーションプログラムの識別情報と、を関連付けて前記記憶部に記憶する、
ことを特徴とする請求項2記載のサーバ装置。
【請求項4】
前記処理部は、
前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記サーバ装置に接続されている他のサーバ装置が前記アプリケーションプログラムを記憶しているか否かを判定し、前記他のサーバ装置が前記アプリケーションプログラムを記憶している場合、前記他のサーバ装置に前記アプリケーションプログラムを実行させることにより前記リクエストに対応する処理を実行させる、
ことを特徴とする請求項1記載のサーバ装置。
【請求項5】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置の制御方法であって、
前記サーバ装置が、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶し、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する、
ことを特徴とするサーバ装置の制御方法。
【請求項6】
複数のアプリケーションプログラムを蓄積するデータベースサーバにアクセス可能なサーバ装置を制御する制御プログラムであって、
前記サーバ装置に、
複数のアプリケーションプログラムのうちの一部のアプリケーションプログラムを記憶し、
クライアント装置から受信したリクエストに対応するアプリケーションプログラムが前記記憶部に記憶されている場合に、アプリケーションプログラムを前記記憶部から読み出して実行し、前記アプリケーションプログラムが前記記憶部に記憶されていない場合に、前記データベースサーバから前記アプリケーションプログラムを取得して前記記憶部に記憶するとともに、前記アプリケーションプログラムを実行する、
処理を実行させることを特徴とするサーバ装置の制御プログラム。
【請求項7】
複数のファイルを記憶するデータベースにアクセス可能なコンピュータであって、
前記複数のファイルのうちの一部のファイルを、前記一部のファイルそれぞれを識別する識別情報と関連付けて記憶し、前記一部のファイルに含まれる各ファイルについての前記データベース内の格納場所を示す格納情報と前記各ファイルを識別する識別情報とを関連付けて記憶する記憶部と、
前記一部のファイルのうちのいずれかのファイルへのアクセス要求を受信した場合に、前記アクセス要求に含まれる前記いずれかのファイルの格納情報と関連付けられて前記記憶部に記憶された前記識別情報に基づいて、前記記憶部から前記いずれかのファイルを取得する処理部と、
ことを含むことを特徴とするコンピュータ。

【図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

【図12】
image rotate

【図13】
image rotate