(57)【特許請求の範囲】
【請求項１】
ネットワークを介して受け付けたユーザからの要求に応じた処理をユーザ毎に設定されるオブジェクトを用いて実行するサーバであって、
処理を実行するときに用いられるオブジェクトを格納する第一のオブジェクト格納手段と、
前記第一のオブジェクト格納手段から転送されるオブジェクトを格納する第二のオブジェクト格納手段と、
ユーザからの要求を受けたときに前記第一のオブジェクト格納手段に格納されたオブジェクトを用いて処理を実行する処理実行手段と、
前記処理実行手段で処理を実行するためにオブジェクトが使用されるまでに要した時間データを蓄積する時間データ蓄積部と、  処理を実行するために前記処理実行手段で用いたオブジェクトが、次に当該処理実行手段で用いられる使用時刻を予測する使用時刻予測手段であって、該時刻予測手段は、前記時間データ蓄積部に蓄積された複数のユーザの時間データと、時刻を予測すべきユーザの時間データとに基づき、当該ユーザの時刻を予測する、時刻予測部と、
前記第一のオブジェクト格納手段に格納されたオブジェクトを、前記使用時刻予測手段で予測された使用時刻に基づき、当該第一のオブジェクト格納手段から前記第二のオブジェクト格納手段に転送するオブジェクト管理手段と、を備えることを特徴とするサーバ。
【請求項２】
前記使用時刻予測手段は、ユーザ毎に前記オブジェクトの使用時刻を予測することを特徴とする請求項１記載のサーバ。
【請求項３】
前記処理実行手段は、オブジェクトを用いて複数段階からなる一連の処理を実行し、
前記使用時刻予測手段は、前記一連の処理の各段階で使用される前記オブジェクトの使用時刻を予測することを特徴とする請求項１記載のサーバ。
【請求項４】
前記オブジェクト管理手段は、使用時刻が経過したオブジェクトを前記第一のオブジェクト格納手段から前記第二のオブジェクト格納手段に転送することを特徴とする請求項１記載のサーバ。
【請求項５】
ネットワークを介し外部のユーザの端末から受ける要求に応じた処理を実行するコンピュータシステムであって、
要求内容の入力を促すデータを、前記ネットワークを介してユーザの端末に対して出力するデータ出力部と、
前記データ出力部で出力されたデータに基づき前記ユーザの端末で入力された要求内容のデータを受け付ける要求受付部と、
ユーザ毎に生成されるオブジェクトを保持する主記憶装置と、
前記主記憶装置に格納されたオブジェクトを用いて前記要求内容のデータに応じた処理を実行する処理実行部と、
前記データ出力部でデータを前記ユーザの端末に出力してから、前記処理実行部で処理を実行するためにオブジェクトが使用されるまでに要した時間データを蓄積する時間データ蓄積部と、
前記主記憶装置上で保持されるオブジェクトを管理するオブジェクト管理部と、
前記データ出力部でデータを出力して以降、前記処理実行部にて処理を実行するためにオブジェクトが次に使用される時刻を予測する時刻予測部であって、該時刻予測部は、前記時間データ蓄積部に蓄積された複数のユーザの時間データと、時刻を予測すべきユーザの時間データとに基づき、当該ユーザの時刻を予測する、時刻予測部と、
前記オブジェクト管理部は、前記時刻予測部で予測された時刻に基づき、前記主記憶装置に格納されたオブジェクトを管理することを特徴とするコンピュータシステム。
【請求項６】
前記時間データ蓄積部に蓄積された複数の時間データの分布における、時刻を予測すべきユーザの指数を設定する指数設定部をさらに備え、
前記時刻予測部は前記指数を用いて前記ユーザの時刻を予測することを特徴とする請求項５記載のコンピュータシステム。
【請求項７】
前記時刻予測部は、直前の一定時間内に前記時間データ蓄積部に蓄積された複数のユーザの時間データを用い、前記ユーザの時刻を予測することを特徴とする請求項５記載のコンピュータシステム。
【請求項８】
前記コンピュータシステムは、オブジェクトを用いて複数段階からなる一連の処理を実行し、
前記時刻予測部は、オブジェクトが次に使用される時刻を前記一連の処理の段階毎に予測することを特徴とする請求項５記載のコンピュータシステム。
【請求項９】
メモリ上に保持したオブジェクトを用いて処理を実行するサーバの制御方法であって、
ネットワークを介して前記サーバにアクセスしたユーザの処理要求に応じた処理結果を出力する出力ステップと、
前記処理結果を出力してから当該処理結果に対するユーザからの応答が入力されるまでの応答時間のデータを蓄積するデータ蓄積ステップと、
前記データ蓄積ステップで蓄積された他のユーザを含めた応答時間のデータの分布中における、ユーザの応答時間の位置を示す指数を設定する指数設定ステップと、
前記指数に基づいて基づいて、当該応答時間のデータの蓄積後に出力された処理結果に対してユーザから応答が入力される時刻を予測する予測ステップと、
前記時刻に基づき、前記メモリ上のオブジェクトの当該メモリからのスワップアウトを実行する実行ステップと、を有することを特徴とするサーバの制御方法。
【請求項１０】
前記予測ステップでは、前記指数が設定されていないユーザに対し、予め設定された標準指数に基づいて時刻を予測することを特徴とする請求項９記載のサーバの制御方法。
【請求項１１】
前記データ蓄積ステップで応答時間のデータを蓄積する毎に、前記指数設定ステップを実行することを特徴とする請求項９記載のサーバの制御方法。
【発明の詳細な説明】
技術分野
本発明は、オブジェクトを用いて処理を行なうに際して用いるのに好適な、サーバ、コンピュータシステム、オブジェクトの管理方法、サーバの制御方法等に関する。
背景技術
近年、インターネットやローカルエリアネットワーク（ＬＡＮ）等のネットワークが普及しているのは周知の通りである。そして、これらのネットワークを介して、サーバはユーザの端末から要求された様々な処理を実行するようになっている。
特に、ネットワーク上でサービスを提供するサーバの場合、サービスのナビゲーションを行なう複数のウェブページをユーザの端末側に順次表示させ、各ウェブページに対するユーザからの要求を受け付けることによって、ユーザが希望した処理を実行する。一例を挙げると、インターネットバンキングを取り扱うサーバでは、ユーザの端末側にログインページを表示させ、ログインＩＤやパスワードの入力を要求する。ユーザがログインＩＤやパスワードを入力すると、続いて、メニューページを表示させ、このメニューページでのユーザのメニュー選択を受け付け、選択されたメニュー、例えば振込み処理に応じたウェブページに進む。ウェブページに対し、ユーザが振込み先の口座番号、振込み金額等を入力すると、続いてサーバは振込み内容確認ページを表示させ、この振込み内容確認ページに対するユーザからの確認入力を受けた後、指定された処理、すなわち振込み処理を実行するのである。
このような一連の処理、いわゆるセッションを行なうサーバでは、ユーザ毎にオブジェクトを用意し、このオブジェクトを用いてユーザからの要求を処理する手法が多く用いられている。ここでオブジェクトとは、サーバ上において、各ユーザに対しての処理に関するデータ、例えば予め登録されたユーザ自身のログインＩＤ等の登録データ、処理要求内容、処理結果、処理履歴等のログデータ、処理の途中で発生する処理に必要な処理用データ等を、ひとかたまりにして管理するためのものである。このようなオブジェクトは、ユーザがサーバに対して初めてセッションを行なうときに生成され、２回目以降のセッションでは、前回使用したオブジェクトを用いることにより、前回行なった処理を基に継続的なサービスを提供できるようになっている。
サーバは、データの格納部として、主記憶装置としてのメモリと、補助記憶装置としてのハードディスクドライブとを有しており、ユーザ毎のオブジェクトは、これらメモリとハードディスクドライブに適宜振り分けて格納される。そして、サーバは、ユーザがログイン時に入力するログインＩＤ等に基づき、このユーザに対応したオブジェクトをメモリやハードディスクドライブから呼び出し、ユーザの要求に応じた処理を実行するのであるが、このとき、主記憶装置であるメモリにオブジェクトが格納されている場合よりも、補助記憶装置であるハードディスクドライブにオブジェクトが格納されている場合の方が、ハードディスクドライブからオブジェクトをメモリ上に呼び出さなければならないため、応答が遅いのは言うまでも無い。
サーバのメモリには、当然のことながら記憶容量に物理的な限界があるため、メモリに格納するオブジェクトの数に制限がある。このため、ハードディスクドライブ上のオブジェクトをメモリ上に呼び出す場合や、メモリ上に新たなオブジェクトを生成する場合等に、メモリ上に十分な空き領域が無ければ、その時点でメモリに格納されているオブジェクトをハードディスクドライブ上に移してメモリ上に空き領域を作り出し、ここにハードディスクドライブから呼び出したオブジェクトを格納するのである。このようなオブジェクトのメモリからハードディスクドライブへの移動をスワップアウトと称している。逆に、メモリ上の空きスペースにハードディスクドライブから呼び出したオブジェクトを格納することをスワップインと称している。
従来より、このようなメモリに対するオブジェクトの管理手法としては、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式が多く用いられている。ＬＲＵ方式では、スワップアウトを行なう場合に、メモリ上に格納されているオブジェクトのうち、前回使用した時刻（最終使用時刻）が最も古いものから順にスワップアウトさせる。
例えば、図１５（ａ）は、ある時点でメモリに格納されているオブジェクト（Ｊ１）〜（Ｊ８）を、最終使用時刻の新しい順に図中左側から右側に配列したものである。そして、ユーザからの処理要求に応じ、このユーザに対応したオブジェクト（Ｊ５）を使用すると、このオブジェクト（Ｊ５）の最終使用時刻が更新され、メモリ上のオブジェクト（Ｊ１）の配列が、図１５（ｂ）に示すように変わる。すなわち、処理のための使用によって最終使用時刻が最も新しくなったオブジェクト（Ｊ５）が、配列の先頭（図中左端）になるのである。また、新たなオブジェクト（図示無し）を生成したりハードディスクドライブに格納されたオブジェクトを呼び出すためにメモリ上の空き領域が足りず、スワップアウトを行なう場合は、図１５（ｃ）に示すように、その時点でメモリに格納されているオブジェクト（Ｊ１）〜（Ｊ８）のうち、最終使用時刻が最も古いオブジェクト（Ｊ８）がスワップアウトされ、メモリ上からハードディスクドライブへと移動されるのである。
また、メモリ上におけるオブジェクトの他の管理手法として、アクセス履歴頻度に基づいてスワップアウトするオブジェクトを選択するものがある（特開平６−４３１６号公報等）。このような手法では、スワップアウトを行なう際に、単純に最終使用時刻が古いオブジェクトをスワップアウトさせるのではなく、単位時間当たり（例えばスワップインしてからの経過時間）のアクセス頻度（例えばアクセス時間）が最も少ないオブジェクトをスワップアウトさせる。
しかしながら、上述したような従来の手法では、特に、多数のユーザを対象としたサービスを提供するサーバにおいて、必ずしも効率の良いメモリ管理が行なえないことがある。例えば、数万人から数十万人のユーザに対してサービスを提供するような形態では、大量、例えば１分間当たり５００以上の処理要求をサーバが受けることがある。このようなケースでは、あるユーザがサーバにアクセスして複数段階からなる一連の処理を行なう際に、ユーザの入力に応じて順次表示されるウェブページに沿って処理を進めている途中、例えばあるウェブページを読んでいる間に、他のユーザから多くの処理要求があった場合に、当該ユーザのオブジェクトがサーバのメモリからスワップアウトされてしまうことがある。すると、このユーザがウェブページを読み終え、次のウェブページに進むための入力を行なった時点で、サーバ側ではこのユーザのオブジェクトのメモリへのスワップイン等を行なわなければならず、次のウェブページの表示までに時間がかかることになる。これによって生じるサーバからの応答の遅れを体感すれば、ユーザは提供されるサービスに対して不満を抱くことすらある。このため、サービスの提供側としては、このような事態の発生を解消したいという要求を持つことになる。必ずしもこれに限るものではないが、サーバの負荷を軽減して効率良くサーバを稼動させるための手法が常に模索されていることは言うまでも無い。
本発明は、このような技術的課題に基づいてなされたもので、効率良くサーバを稼動させることのできるサーバ、コンピュータシステム、オブジェクトの管理方法、サーバの制御方法等を提供することを目的とする。
発明の開示
かかる目的のもと、本発明のサーバでは、ネットワークを介してユーザからの要求を受けたときに、メモリ等の第一のオブジェクト格納手段に格納されたオブジェクトを用い、処理実行手段によって所定の処理が実行される。このときに用いたオブジェクトが次に処理実行手段で用いられる使用時刻を使用時刻予測手段で予測し、この使用時刻に基づき、オブジェクトを第一のオブジェクト格納手段からハードディスクドライブ等の第二のオブジェクト格納手段に転送することを特徴とする。すなわち、第一のオブジェクト格納手段で保持しているオブジェクトをスワップアウトさせる必要が生じたときに、その時点で保持されているオブジェクトのうち、予測された使用時刻が最も遅いオブジェクトをスワップアウトさせ、第二のオブジェクト格納手段に移動するのである。これにより、メモリ等の第一のオブジェクト格納手段上には、予測された使用時刻が近いオブジェクトが保持されることになる。
ここで、ユーザ毎にオブジェクトの使用時刻を予測すればユーザ毎のスキルを加味することができ、複数段階からなる一連の処理の段階毎にオブジェクトの使用時刻を予測すれば、各段階の処理の内容（単純あるいは複雑等）を加味することができる。
また、使用時刻が現在時刻を経過したオブジェクトを第一のオブジェクト格納手段から第二のオブジェクト格納手段に転送するようにしてもよい。
本発明に係るコンピュータシステムは、データ出力部でデータを出力して以降、要求受付部で受け付けるユーザの端末からの要求内容に応じた処理を処理実行部で実行するために、オブジェクトが次に使用される時刻を時刻予測部で予測し、オブジェクト管理部では、時刻予測部で予測された時刻に基づいて主記憶装置に格納されたオブジェクトを管理することを特徴とする。
ここで、データ出力部、要求受付部、主記憶装置、処理実行部、オブジェクト管理部、時刻予測部は、サーバに一体に備える構成としても良いが、これらを複数のコンピュータ装置に分割し、全体としてサーバとして機能するコンピュータシステムとすることもできる。
ところで、データ出力部でデータをユーザの端末に出力してからオブジェクトが使用されるまでに要した時間データを時間データ蓄積部に蓄積し、蓄積された複数のユーザの時間データと、時刻を予測すべきユーザの時間データとに基づき、ユーザの時刻を予測することもできる。
より詳しくは、例えば、蓄積された複数の時間データの分布における、時刻を予測すべきユーザの指数を指数設定部で設定し、この指数を用いてユーザの時刻を予測することができる。また、直前の一定時間内に蓄積された複数のユーザの時間データを用い、時刻を予測すれば、時間帯による変動等を加味することができる。
本発明に係るオブジェクトの管理方法では、メモリ上に保持されたオブジェクトが次に使用される時刻を予測し、例えばメモリ上のオブジェクトをスワップアウトさせる必要が生じたときには、メモリ上に保持されたオブジェクトのうち、予測された時刻が最も遅いオブジェクトを特定してスワップアウトさせることを特徴とする。このときには、時間帯に応じた予測を行なうこともできる。
本発明は、ネットワークを介してサーバにアクセスしたユーザの処理要求に応じた処理結果を出力してから、これに対するユーザからの応答が入力されるまでの応答時間のデータを蓄積し、この蓄積後に出力された処理結果に対してユーザから応答が入力される時刻を、蓄積された応答時間のデータに基づいて予測し、予測された時刻に基づきメモリ上のオブジェクトのスワップアウトを実行するサーバの制御方法として捉えることができる。
このときには、他のユーザを含めた応答時間のデータの分布中における、ユーザの応答時間の位置を示す指数を設定し、この指数に基づいて時刻を予測することができる。また、指数が設定されていないユーザに対しては、デフォルト値等、予め設定された標準指数に基づいて時刻を予測しても良い。また、応答時間のデータを蓄積する毎、つまりユーザが応答を入力してオブジェクトを使用する毎に、指数の設定を行なうことも可能である。
本発明のコンピュータプログラムでは、外部の端末からの処理要求コマンドを検出し、これに応じた出力した処理結果に対して外部の端末から次の処理要求コマンドが入力されるタイミングを予測し、予測したタイミングに基づき、次の処理要求コマンドに応じた処理を実行するために必要なオブジェクトの管理を実行する処理を、サーバ等のコンピュータ装置に実行させることを特徴とする。
発明を実施するための最良の態様
以下、添付図面に示す実施の形態に基づいてこの発明を詳細に説明する。
図１は、本実施の形態におけるシステム構成を説明するための図である。この図１に示すように、複数のユーザの端末１０は、インターネットやＬＡＮ等のネットワーク２０を介し、サービス提供者側のサーバ（コンピュータシステム、コンピュータ装置）３０に接続される構成となっている。
ここで、各端末１０は、いわゆる通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等であればよく、ネットワーク２０を介してサーバ３０から送信されたデータを受信する機能（手段）、受信したデータに基づく画面（画像）をモニタの表示画面に表示するブラウザ機能、表示画面上の表示内容に基づきユーザが情報や要求内容の入力等を行なうポインティングデバイスやキーボード等の情報入力機能、情報入力機能で入力した情報をネットワーク２０を介してサーバ３０に送出する機能等を備えていればよい。
一方、図２に示すように、サーバ３０は、予めインストールされた制御プログラムに基づき図示しないＣＰＵの命令に基づく制御を行なう制御ブロック３１と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなるメモリ（第一のオブジェクト格納手段、主記憶装置）３２と、ハードディスクドライブ（第二のオブジェクト格納手段、補助記憶装置）３３と、ネットワーク２０に対してのデータ送受信を司るデータ送受信部３４と、を有している。
制御ブロック３１は、ネットワーク２０を介してデータ送受信部３４で受け取った外部の端末１０からの要求を受け付ける要求受付部３６と、受け付けた要求に応じた処理を実行する処理実行部（処理実行手段）３７と、処理実行部３７での処理結果をデータ送受信部３４からネットワーク２０を介して端末１０に送信させる処理結果送信部（データ出力部）３８と、を有している。
処理実行部３７は、要求に応じた処理を実行するに際して必要な、メモリ３２に格納されているオブジェクトを呼び出したり、新たなオブジェクトを生成したりするオブジェクト管理部３７ａと、メモリ３２に格納されているオブジェクトのハードディスクドライブ３３へのスワップアウト、ハードディスクドライブ３３に格納されているオブジェクトのメモリ３２へのスワップイン等、メモリ３２に対するオブジェクトの管理を行なう、メモリ管理部（オブジェクト管理手段、オブジェクト管理部）３７ｂとを有している。
また、この処理実行部３７では、メモリ管理部３７ｂでオブジェクトの管理を行なうときに、ユーザの一連のセッション中における次回のアクセス時刻を予測する。このため、制御ブロック３１には、アクセス予測部（使用時刻予測手段、時刻予測部）３９がさらに備えられている。
このようなサーバ３０は、ユーザが要求する処理を一連の複数段階に分けて進めるため、いわゆるホームページの形態で、ネットワーク２０を介してサーバ３０に接続したユーザの端末１０に対して処理の各段階に応じたウェブページを順次提示する。例えば、インターネットバンキングであれば、ログインのためのログインＩＤやパスワードの入力を受け付けるウェブページ、ログイン完了後、ユーザによる処理メニュー（例えば振込み・残高照会等）の選択を受け付けるウェブページ、選択された処理メニューに応じ、処理を実行するために必要な情報（例えば振込み先口座番号、振込み金額等）の入力を受け付けるウェブページ、処理内容の確認をユーザから受けるウェブページ、処理の完了を通知するウェブページ等を、ユーザの端末１０からの入力に応じ、順次提示していくのである。
このため、サーバ３０は、要求受付部３６で受け付けた要求（要求内容のデータ）に含まれる処理要求コマンドやパラメータに基づき、処理実行部３７で所定の処理を実行し、その処理結果をユーザに提示するとともに、処理の次の段階に進むための要求内容をユーザに入力させるためのウェブページのデータを、処理結果送信部３８で送信する。
ここで、各ウェブページを端末１０に表示させるためのデータは、サーバ３０のハードディスクドライブ３３（あるいは他の記憶装置）に格納されている。処理結果送信部３８では、送信すべきウェブページのデータ、例えばＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータをハードディスクドライブ３３から読み出し、処理実行部３７での処理結果のデータと合わせて、データ送受信部３４からネットワーク２０を介して端末１０に送信するのである。
さて、前記アクセス予測部３９では、サーバ３０側から提示する各ウェブページに対する、ユーザ毎の次回のアクセス時刻を予測する。具体的には、各ウェブページのデータをサーバ３０から送信した時刻から、このデータを端末１０が受け取ってウェブページを表示し、このウェブページを見たユーザが当該ウェブページで要求されている項目の入力を開始することによって端末１０から送信されるコマンドに応じ、サーバ３０側でこのユーザのオブジェクトが使用される時刻（使用時刻：以下、これを使用予測時刻ＮＡと称する）までに要するレスポンス時間αを予測するのである。
これは、ユーザのスキル、すなわちＰＣに対する習熟度、サーバ３０が提示するウェブページを訪れた経験の有無や量、文章の読解速度、文字入力速度等の要因により、同じウェブページであっても、このウェブページを見て所要の入力を行なうまでのレスポンス時間αがユーザ毎に大きく異なるからである。また、複数のウェブページを提示する場合、ウェブページの内容、例えばログインＩＤとパスワードのみを入力すれば良いウェブページ、使用規約等の文章を読まなければならなかったり多くの項目を入力しなければならないウェブページ等、ウェブページ毎の内容によって、同一のユーザであっても、レスポンス時間αが異なる。これ以外にも、深夜、早朝、日中等、時間帯によってもネットワーク２０やサーバ３０の利用者の数が大きく変動するため、ネットワーク２０の転送速度やサーバ３０の処理速度等も、レスポンス時間αに影響を及ぼす。
サーバ３０では、全てのユーザについて、図３（ａ）に示すように、サーバ３０で提供する各ウェブページに対するアクセス時刻と、各ユーザが実際に要した実レスポンス時間（応答時間）βの履歴データ（時間データ）を、メモリ３２あるいはハードディスクドライブ３３等の履歴データ格納部（時間データ蓄積部）に格納している。ここで、実レスポンス時間βは、各ウェブページのデータをサーバ３０から送信した時刻から、このウェブページでの処理が完了し、ユーザからの次の要求を処理するためのオブジェクトが実際に使用された時刻までに要した実績時間である。なお、実レスポンス時間βは、予め例えば秒単位に量子化（デジタル化）する処理がなされた後、履歴データ格納部に格納される。
図４は、アクセス予測部３９で、レスポンス時間αを予測するための処理の流れを示すものである。
まず、サーバ３０は、稼動直後から、上記したように、サーバ３０に対してアクセスした全ユーザに対し、処理結果送信部３８でウェブページのデータを送信すると（出力ステップ）、このウェブページに対してユーザの端末１０から応答がなされるまでに要した実レスポンス時間βを検出し、これをアクセス時刻とともに履歴データ格納部（図示無し）に蓄積する（データ蓄積ステップ）。
サーバ３０が、ユーザからの要求に応じ、ウェブページのデータをネットワーク２０を介してユーザの端末１０に送信した時点で、まず、その時点から予め決められた過去Ｎ時間（本実施の形態では例えばＮ＝１とし、以下、過去１時間とする）の間になされた、同一ウェブページに対する処理の履歴データを、履歴データ格納部（図示無し）から抽出する（ステップＳ１０１）。図３（ｂ）は、例えば９：００の時点で、過去１時間、つまり８：００以降になされた処理の履歴データを抽出したものである。
次いで、抽出した履歴データに基づき、過去１時間のうちになされた、当該ウェブページに対する実レスポンス時間βの確率分布（複数の時間データの分布）を求める。具体的には、図３（ｃ）に示すように、実レスポンス時間βを複数段階、例えば１秒毎にグループ化する。そして、各グループに該当するアクセスの数（ユーザの数）を求め、アクセス全体に対する各グループの割合を算出する（ステップＳ１０２）。さらに、図３（ｄ）に示すように、これらのグループを実レスポンス時間βによって表されるグループＩＤの小さい順にソートし、ソート順に従ってそれぞれのグループにプライオリティｐｒ（ｎ）を設定する（ステップＳ１０３）。
図５〜図７は、このようにしてソートした確率分布の一例であり、図５は、ユーザの端末１０側で入力すべき入力項目が単純なウェブページに対する複数のユーザの実レスポンス時間βの確率分布、図６は、複雑な入力項目を有するウェブページに対する確率分布、図７は、図５と図６の中間の入力項目を有するウェブページに対する確率分布である。図５に示す確率分布では、入力項目が単純であるため、ユーザ全体の実レスポンス時間βのばらつきが小さくなっている。これに対し、図６や図７に示す確率分布では、入力項目が多いため、ＰＣへの習熟度、文章を読むスピード、当該ウェブページへの慣れ等の違いが大きな差となって現れ、確率分布のばらつきが大きくなっている。
さて、アクセス予測部（指数設定部）３９は、このような実レスポンス時間βの確率分布に基づき、ユーザのレスポンス時間αを予測するわけであるが、このとき、本実施の形態では、実レスポンス時間βの確率分布中における、ユーザの実レスポンス時間βの位置（割合）を表す特徴変数（指数）ｃｒを用いる。この特徴変数ｃｒは、確率分布の例えばプライオリティｐｒ（ｎ）の小さい側（実レスポンス時間βの小さい側）から見たときのユーザの位置を表している。
この特徴変数ｃｒは、ユーザが一定回数のアクセスを行なうまでは、アクセス予測部３９で予め保持しているデフォルト値（標準指数）、例えばｃｒ＝９０％等を用い、ユーザが一定回数以上のアクセスを行なった時点で、それ以前に蓄積されたこのユーザの実レスポンス時間βに基づいて、このユーザの特徴変数ｃｒを設定する。例えば、このユーザの過去５回の実レスポンス時間βについての特徴変数ｃｒを基に、最高と最低のものを除いた特徴変数ｃｒの平均値を、ユーザの特徴変数ｃｒとして設定する（指数設定ステップ）。なお、この特徴変数ｃｒは、ユーザの実レスポンス時間βが蓄積される毎、つまりオブジェクトを使用する毎に逐次設定し、リアルタイムに更新するのが好ましい。
ユーザのレスポンス時間αを予測するには、図３（ｅ）に示すような関係式に基づき、プライオリティｐｒ（ｎ）の小さい側から各グループの割合（アクセスの数の割合）を累積し、その累積値（以下、割合累積値と称する。単位：％）が特徴変数ｃｒ以上となった時点でのプライオリティｐｒ（ｎ）に対応したグループＩＤを、ユーザのレスポンス時間αとするのである（ステップＳ１０４）。
具体例を挙げれば、図７の確率分布において、特徴変数ｃｒが７５％と設定されたユーザのレスポンス時間αは、割合累積値が７５％以上となった時点でのプライオリテイｐｒ（ｎ）のグループＩＤが「１３秒」である（図７中、確率分布の小さい側からの割合の累積は、１０％＋１５％＋３０％＋２５％＝８０％）ため、この「１３秒」をユーザのレスポンス時間αとして予測する。また、同様に、図５の確率分布では、特徴変数ｃｒが５０％と設定されたユーザ、８０％と設定されたユーザは、いずれもレスポンス時間αは「６秒」と予測される。また、図６の確率分布では、特徴変数ｃｒが５０％と設定されたユーザのレスポンス時間αは「８秒」、８０％と設定されたユーザのレスポンス時間αは「１１秒」と予測される。
このようにして予測するユーザのレスポンス時間αを基に、ユーザからの次の要求を処理するためのオブジェクトの使用予測時刻ＮＡは、各ウェブページのデータをサーバ３０から送信した時刻をＴとすると、
ＮＡ＝Ｔ＋α
という式により求められる。
上記のような方法により、アクセス予測部３９にて、ユーザから次の要求を処理するためにオブジェクトが使用される使用予測時刻ＮＡ、すなわち一連のセッション中における次のアクセス時刻が予測される。
このような使用予測時刻ＮＡの予測は、ユーザからの処理要求に基づき、メモリ３２上に保持されているオブジェクトが使用されるときに行なわれ、予測された使用予測時刻ＮＡは、メモリ３２上に保持されている各オブジェクトに関連付けられて記憶される。メモリ管理部３７ｂでは、メモリ３２上で保持している全てのオブジェクトに対し、使用予測時刻ＮＡが新しい順に、例えば図８に示すようなオブジェクト列Ｌを生成し、このオブジェクト列Ｌに基づいたオブジェクトの管理を行なう。
さて、次に、上記のような構成のサーバ３０の処理実行部３７における、オブジェクトの管理方法を説明する。
図９は、処理実行部３７におけるオブジェクト管理を行なう基本的な処理の流れを示すものである。この図９に示すように、サーバ３０から提示したウェブページに対し、ユーザの端末１０で入力がなされることによってサーバ３０に対する要求が発生した場合、まずサーバ３０では、ユーザの端末１０で入力されたログインＩＤ等に基づき、このログインＩＤに対応するオブジェクトがサーバ３０内に既に存在しているか否かを判定する（ステップＳ２０１）。その結果、オブジェクトが存在していれば、続いてそのオブジェクトがメモリ３２上にあるか否かを判定し（ステップＳ２０２）、メモリ３２上にオブジェクトがある場合は、そのままステップＳ２０６に進み、要求に応じた処理を処理実行部３７で実行する。
一方、オブジェクトがメモリ３２上に無ければ、ステップＳ２０３にて、メモリ３２上にオブジェクトをハードディスクドライブ３３からメモリ３２上にスワップインするのに十分な空き領域があるか否かを判定する。その結果、空き領域が無い場合にはステップＳ２０４（スワップアウトステップ、実行ステップ）で後に詳述するスワップアウト処理を実行した後に、ステップＳ２０５でオブジェクトをハードディスクドライブ３３からメモリ３２上にスワップインさせ、空き領域がある場合には、そのままステップＳ２０５でオブジェクトをメモリ３２上にスワップインさせる。そして、ステップＳ２０６で、メモリ３２上にスワップインさせたオブジェクトを用い、ユーザの端末１０からの要求に応じた処理を処理実行部３７で実行する。
また、ステップＳ２０１にて、オブジェクトがサーバ３０内に存在しないと判定された場合、ステップＳ２１０に進み、オブジェクトを新たに生成するための空き領域（空間）がメモリ３２上にあるか否かを判定する。その結果、空き領域が無い場合にはステップＳ２１１（スワップアウトステップ、実行ステップ）で後述のスワップアウト処理を実行した後に、ステップＳ２１２にて、オブジェクト管理部３７ａでオブジェクトをメモリ３２上の空き領域に新たに生成する。一方、メモリ３２上に空き領域がある場合にはそのままステップＳ２１２でオブジェクトをメモリ３２上に生成する。この後は、ステップＳ２０６で、メモリ３２上に生成したオブジェクトを用い、ユーザの端末１０からの要求に応じた処理を処理実行部３７で実行する。
上記のステップＳ２０４あるいはＳ２１１にてスワップアウト処理を実行するに際しては、上記アクセス予測部３９で予測される使用予測時刻ＮＡが用いられる。
図１０は、スワップアウト処理の流れを示すもので、まず、メモリ３２上で使用予測時刻ＮＡの新しい順に並ぶオブジェクト列Ｌにおいて、先頭のオブジェクト（Ｏ）の使用予測時刻ＮＡ（Ｏ）を取り出し（ステップＳ３０１）、この使用予測時刻ＮＡ（Ｏ）が、図示しない内部クロックに保持された現在時刻を過ぎているか否かを判定する（ステップＳ３０２）。その結果、使用予測時刻ＮＡ（Ｏ）が現在時刻を過ぎていれば、この先頭のオブジェクト（Ｏ）をスワップアウトし（ステップＳ３０３）、また使用予測時刻ＮＡ（Ｏ）が現在時刻を過ぎていなければ、オブジェクト列Ｌの最後尾のオブジェクト（Ｏ）（時刻が最も遅いオブジェクト）を特定し（オブジェクト特定ステップ）、これをスワップアウトさせる（ステップＳ３０４）。
具体例を挙げれば、例えば図８（ａ）に示す初期状態のオブジェクト列Ｌに対し、オブジェクトのスワップ処理を実行する必要が生じた時点で、図１０に示したような一連の処理を実行する。その結果、例えば現在時刻ＴＮがＴＮ＝１５である場合、図８（ｂ）に示すように、オブジェクト列Ｌの先頭のオブジェクト（Ｊ１）は使用予測時刻ＮＡ（Ｊ１）＝１０で現在時刻ＴＮを過ぎているため、ステップＳ３０２の条件を満たすことになり、このオブジェクト（Ｊ１）をスワップアウトさせる。また、例えば図８（ｃ）に示すように、現在時刻ＴＮがＴＮ＝５である場合、オブジェクト列Ｌの先頭のオブジェクト（Ｊ１）は使用予測時刻ＮＡ（Ｊ１）＝１０で現在時刻ＴＮを過ぎておらず、ステップＳ３０２の条件を満たさないので、オブジェクト列Ｌの最後尾のオブジェクト（Ｊ８）をスワップアウトさせる。
図１１は、上記のステップＳ２０５で実行するスワップイン処理、あるいはＳ２１２にて実行する新たなオブジェクトの生成処理に際し、メモリ３２上のオブジェクト列Ｌを更新する方法を示すものである。
まず、スワップインあるいは新たに生成されるオブジェクト（Ａ）に対し、このオブジェクト（Ａ）の使用予測時刻ＮＡ（Ａ）をアクセス予測部３９で予測する（ステップＳ４０１：予測ステップ）。このときには、上記したように、ユーザに対して設定された特徴変数ｃｒに基づき、その時点でユーザの端末１０がアクセスしているウェブページにおける使用予測時刻ＮＡ（Ａ）を予測するのである。
次いで、メモリ管理部３７ｂにて、メモリ３２上で保持している全てのオブジェクトに関するオブジェクト列Ｌから、先頭のオブジェクト（Ｏ）を取り出す（ステップＳ４０２）。
取り出したオブジェクト（Ｏ）がｎｕｌｌであるか否かを判定し（ステップＳ４０３）、ｎｕｌｌである場合には、検討対象であるオブジェクト（Ａ）をオブジェクト列Ｌの最後尾に挿入する（ステップＳ４０４）。また、取り出したオブジェクト（Ｏ）がｎｕｌｌでなければ、続くステップＳ４０５で、取り出したオブジェクト（Ｏ）の使用予測時刻ＮＡ（Ｏ）が、オブジェクト（Ａ）の使用予測時刻ＮＡ（Ａ）よりも大きいか否かを判定し、大きくない場合には、ステップＳ４０２に戻り、オブジェクト列Ｌにおける次のオブジェクト（Ｏ）を取り出し、上記と同様にステップＳ４０３以降の検討を行なう。
このようにしてオブジェクト列Ｌを構成するオブジェクト（Ｏ）に対して順次検討を行ない、ステップＳ４０５にて、オブジェクト（Ａ）の使用予測時刻ＮＡ（Ａ）よりも大きいと判定されるオブジェクト（Ｏ）の使用予測時刻ＮＡ（Ｏ）が出現した時点で、オブジェクト列Ｌにおいて、そのオブジェクト（Ｏ）の前にオブジェクト（Ａ）を挿入する（ステップＳ４０６）。これにより、スワップインあるいは新たに生成されるオブジェクト（Ａ）のオブジェクト列Ｌへの挿入が完了し、オブジェクト列Ｌが更新される。
図１２は、このようなオブジェクト列Ｌの更新の一例を示すものである。図１２（ａ）は更新前の状態のオブジェクト列Ｌであり、図１２（ｂ）に示すように、メモリ３２上のオブジェクト列Ｌ中、ユーザの端末１０からの要求に基づき、オブジェクト（Ｊ５）が使用され（オブジェクト列Ｌから取り出される）、このオブジェクト（Ｊ５）の次回の使用予測時刻ＮＡ（Ｊ５）が、ＮＡ（Ｊ５）＝６５と予測されたとする。
すると、図１１に示したステップＳ４０２、Ｓ４０３、Ｓ４０５において、オブジェクト（Ｊ５）の使用予測時刻ＮＡ（Ｊ５）が、オブジェクト列Ｌの先頭のオブジェクト（Ｊ１）から順次比較される。その結果、オブジェクト（Ｊ７）の使用予測時刻ＮＡ（Ｊ７）＝７０が、オブジェクト（Ｊ５）の使用予測時刻ＮＡ（Ｊ５）＝６５よりも大きく、ステップＳ４０５の条件を満たすので、図１２（ｃ）に示すように、オブジェクト（Ｊ５）がオブジェクト（Ｊ７）の前に挿入されてオブジェクト列Ｌが更新される。
ここで、上記のような使用予測時刻ＮＡを用いたアルゴリズムと、従来のＬＲＵ方式のアルゴリズムとで、比較シミュレーションを行なったのでその結果を示す。いずれのアルゴリズムにおいても、ユーザのレスポンス時間αを予測するために必要な確率分布として、例えば図１３に示すようなｌｏｇ−ｎｏｒｍａｌ分布を用いた。このｌｏｇ−ｎｏｒｍａｌ分布を示す関数ｆ（ｘ）は、
ｘ＞０であるときには、
0003842219.tif 000002
であり、
ｘ≦０であるときには、
ｆ（ｘ）＝０
である。ここで、μは平均（−∞＜μ＜∞）、σ２は分散（σ＞０）である。
このようなｌｏｇ−ｎｏｒｍａｌ分布からなる確率分布を基に、ユーザの特徴変数ｃｒを９９％に設定する。
また、使用予測時刻ＮＡを用いたアルゴリズムに基づくオブジェクト管理を行なうサーバ３０と、従来のＬＲＵ方式のアルゴリズム（以下、ＬＲＵアルゴリズムと略称する）に基づくオブジェクト管理を行なうサーバ（図示無し）では、ユーザの端末１０との間でやり取りする一連のセッションを、それぞれ同一内容の１０ページからなるウェブページを順次提示するによって行ない、各ウェブページでは、ユーザの端末１０側で入力される所定のコマンドによって次のウェブページへの遷移が行なわれるものとする。
そして、いずれの場合も、一連のセッション途中でセッションを止めるユーザの割合は、各ウェブページ毎に３０％存在するものとする。
上記したような同一の条件を基に、単位時間当たりの平均要求数を変化させたシミュレーションを行ない、このときの、従来のＬＲＵ方式のアルゴリズムを用いるサーバ（図示無し）で発生するスワップアウト回数に対する、使用予測時刻ＮＡを用いたアルゴリズムを用いるサーバ３０において発生するスワップアウト回数の比率（以下、これを相対減少率と称する）を、
相対減少率＝（ＬＲＵアルゴリズムでのスワップアウト回数−使用予測時刻ＮＡを用いたアルゴリズムでのスワップアウト回数）／ＬＲＵアルゴリズムでのスワップアウト回数
で求めた。
図１４は、そのシミュレーション結果を示すもので、単位時間当たりの平均アクセス（要求）数が大きくなればなるほど、ＬＲＵアルゴリズムを用いたサーバに比較し、使用予測時刻ＮＡを用いたアルゴリズムのサーバ３０でのスワップアウト回数が相対的に減少した。このことから、単位時間当たりの平均要求数が大きい、つまりアクセスの多いサーバ程、上記使用予測時刻ＮＡを用いるアルゴリズムが有効であり、無用なスワップアウト回数が少なくなることが判る。
上述したように、サーバ３０では、ユーザの端末１０に対して提示する各ウェブページにおいて、ユーザから次の要求がある時刻、つまりサーバ３０で保持したオブジェクトの使用予測時刻ＮＡを予測し、この使用予測時刻ＮＡに基づいてメモリ３２上に保持されたオブジェクトの管理を行なう構成とした。そして、メモリ３２上のオブジェクトのスワップアウトを行なう必要が生じたときには、基本的に使用予測時刻ＮＡが遅いオブジェクトをスワップアウトさせるようにしたので、メモリ３２上には使用予測時刻ＮＡが早いオブジェクトのみ、つまり近い将来使用される可能性が高いオブジェクトが存在することになる。
ここで、従来のＬＲＵ方式では、単純に最終使用時刻が古い順にスワップアウトさせる構成となっているため、オブジェクトが使用される度に使用されたオブジェクトがオブジェクト列の先頭に挿入され、これに応じてオブジェクト列の最後尾の最終使用時刻の古いオブジェクトが順次スワップアウトされることになる。このため、あるユーザのセッション途中で、他のユーザのアクセスによってオブジェクトが使用されるうちに、このユーザのオブジェクトがスワップアウトされてしまうこともある。この場合、他のユーザがアクセスしているウェブページの内容等は一切考慮されない。したがって、このユーザが次の処理に進もうとするとオブジェクトを他のオブジェクトをスワップアウトさせた後に再度スワップインさせなければならず、無用のスワップイン・スワップアウトを行なう必要が生じるのである。
これに対し、上記したように、使用予測時刻ＮＡを用い、メモリ３２上には近い将来使用される可能性が高いオブジェクトを存在させることによって、上記したような無用のスワップイン・スワップアウトを最小限に抑えることができ、サーバ３０の稼動効率を向上させることが可能となる。その結果、ユーザにとっては、サーバ３０側から迅速に応答が得られ、不満等を感じる要因を減らし、サービス性を向上させることが可能となる。
しかも、使用予測時刻ＮＡは、各ユーザの習熟度等を基に設定された特徴変数ｃｒだけでなく、各ユーザがアクセスしているウェブページの内容等に基づいて予測されるので、より精度の高い予測を行なうことができる。加えて、使用予測時刻ＮＡの予測の際には、過去Ｎ時間（例えば１時間）の履歴データを抽出して用いるようにした。これにより、例えば時間帯等によって全体のアクセス数やネットワーク２０の混雑度合いが変動する場合にも、これを反映させた高精度な予測が行なえる。
さらに、使用予測時刻ＮＡが現在時刻を経過したオブジェクトをスワップアウトさせるようにしたので、セッションが中止されたオブジェクト等、使用されないのにメモリ３２上に存在するオブジェクトを除外することができ、これも効率の良いオブジェクト管理に貢献することとなる。
なお、上記実施の形態では、使用予測時刻ＮＡを設定するためのアルゴリズムとして、ユーザ毎に設定される特徴変数ｃｒを用いる構成としたが、使用予測時刻ＮＡを予測できるのであれば、適宜他のアルゴリズムを採用することも可能である。
また、オブジェクトのスワップアウトを行なう必要が生じた際に、図１０に示した処理によって使用予測時刻ＮＡが経過したオブジェクトをスワップアウトさせる構成としたが、これ以外に、所定時間毎に同様の処理を実行する構成とすることも可能である。これにより、不要のオブジェクトを適宜スワップアウトさせて、メモリ３２上に空き領域を確保することが可能となる。
さらに、使用予測時刻ＮＡを予測するには、確率分布を形成するためのある程度の履歴データが必要となるが、サーバ３０の稼動開始時等には、履歴データが存在しない、あるいは不足することがある。このような場合には、履歴データが十分に蓄積されるまで、ＬＲＵ方式等を用い、履歴データの蓄積がなされた後、使用予測時刻ＮＡを開始する構成とすることも可能である。
加えて、上記実施の形態では、サーバ３０でインターネットバンキングの処理を実行する例を具体例として挙げたが、もちろんこれに限るものではなく、処理の種類・内容はいかなるものであっても良い。
これ以外にも、本発明の主旨を逸脱しない限り、上記実施の形態で挙げた構成を取捨選択したり、他の構成に適宜変更することが可能である。
以上説明したように、本発明によれば、サーバの稼動効率を向上させ、ユーザに対するサービス性を向上させることが可能となる。
【図面の簡単な説明】
図１は本実施の形態におけるシステム構成を示す図である。
図２はサーバにおけるオブジェクト管理を行なうための構成を示す図である。
図３はユーザからのアクセス時に蓄積される実レスポンス時間から確率分布を生成し、ユーザ毎の特徴変数を設定するための流れを示す図である。
図４はユーザのレスポンス時間を設定するための処理の流れを示す図である。
図５は確率分布の一例である。
図６は確率分布の他の一例である。
図７は確率分布のさらに他の一例である。
図８の、（ａ）は初期状態のオブジェクト列、（ｂ）は現在時刻が１５である場合にスワップアウトするオブジェクト、（ｃ）は現在時刻が５である場合にスワップアウトするオブジェクト、を示す図である。
図９はオブジェクトの管理を行なうときの処理の流れを示す図である。
図１０は使用予測時刻に基づいてオゾジェクトをスワップアウトするときの処理の流れを示す図である。
図１１はオブジェクト列を更新する時の処理の流れを示す図である。
図１２の、（ａ）は初期状態のオブジェクト列、（ｂ）はオブジェクトを取り出して処理を行なっている状態、（ｃ）は使用予測時刻を予測したオブジェクトをスワップインさせた状態、を示す図である。
図１３はシミュレーションを行なうに際し、一例として用いた確率分布を示す図である。
図１４はシミュレーション結果を示す図である。
図１５は従来のオブジェクト管理方法を示す図である。
【図１】
0003842219.tif 000003
【図２】
0003842219.tif 000004
【図３】
0003842219.tif 000005
【図４】
0003842219.tif 000006
【図５】
0003842219.tif 000007
【図６】
0003842219.tif 000008
【図７】
0003842219.tif 000009
【図８】
0003842219.tif 000010
【図１２】
0003842219.tif 000011
【図９】
0003842219.tif 000012
【図１０】
0003842219.tif 000013
【図１１】
0003842219.tif 000014
【図１３】
0003842219.tif 000015
【図１４】
0003842219.tif 000016
【図１５】
0003842219.tif 000017