(57)【特許請求の範囲】
【請求項１】
クライアントから送信された要求に応じた処理を実行し、処理結果を返送するサーバにおいて、
クライアントからの要求を、前記クライアントの前記要求の順番に格納する前記クライアント毎の複数の要求格納手段と、
前記クライアントからの要求についての実行結果を前記クライアント毎に格納する格納手段と、
前記要求格納手段にそれぞれ格納されている前記クライアント毎の前記要求を前記要求の順番に取り出す手段と、
該要求を取り出した前記要求格納手段に格納されている他の全ての要求の取り出しを禁止する禁止手段と、
前記取り出す手段によって取り出されたあるクライアントの要求が、当該クライアントからの以前の同一の要求によって既に実行済であるか否かを判定する判定手段と、
前記判定手段によって実行済と判定された場合には、当該要求の実行をすることなく、前記格納手段内の該当する実行結果を、前記要求を行った前記クライアントに対して送信する送信手段と、
前記送信手段による前記実行結果の送信後に、前記禁止手段によって禁止された前記要求格納手段に格納されている前記要求の取り出しの禁止を解除する手段と、
を有することを特徴とするサーバ。
【請求項２】
クライアントから送信された要求に応じた処理を実行し、処理結果を返送する処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
クライアントからの要求を、前記クライアントの前記要求の順番に格納する前記クライアント毎の複数の要求格納手段、
前記クライアントからの要求についての実行結果を前記クライアント毎に格納する格納手段、
前記要求格納手段にそれぞれ格納されている前記クライアント毎の前記要求を前記要求の順番に取り出す手段、
該要求を取り出した前記要求格納手段に格納されている他の全ての要求の取り出しを禁止する禁止手段、
前記取り出す手段によって取り出されたあるクライアントの要求が、当該クライアントからの以前の同一の要求によって既に実行済であるか否かを判定する判定手段、
前記判定手段によって実行済と判定された場合には、当該要求の実行をすることなく、前記格納手段内の該当する実行結果を、前記要求を行った前記クライアントに対して送信する送信手段、
前記送信手段による前記実行結果の送信後に、前記禁止手段によって禁止された前記要求格納手段に格納されている前記要求の取り出しの禁止を解除する手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はサーバおよびコンピュータ読み取り可能な記録媒体に関し、特に、クライアントから送信された要求に応じた処理を実行し、処理結果を返送するサーバおよびコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
例えば、インターネットにおいて、クライアントがＷＷＷ（World Wide Web）サーバから情報を取得する場合には、ＨＴＴＰ（Hyper Text Transfer Protocol）と呼ばれるプロトコルを使用し、ＨＴＭＬ（Hyper Text Markup Language）文書をダウンロードすることが一般的である。
【０００３】
このようなシステムにおいて、サーバに所定の処理を要求する場合を考えると、クライアントのブラウザからは処理の要求のみが送信され、その要求に対応する処理がサーバで実行され、得られた結果がクライアントに返送されてブラウザに表示される。従って、クライアントで実行される処理は、要求の送信と表示のみであり、大半の処理はサーバ側に委託されてそこで処理されるので、クライアントに比べてサーバには大きな負担がかかることになる。
【０００４】
【発明が解決しようとする課題】
ブラウザ上に表示された画面において、ユーザが何らかの要求を行う場合には、グラフィックで表示されたボタンを操作することにより行われる場合が多い。
【０００５】
ところで、現在普及しているＯＳ（Operating System）では、所定のコマンド等を実行する場合には、アイコン上にマウスのポインタを配置し、マウスのボタンをダブルクリックする方法が採用されている。
【０００６】
このような状況から、ブラウザ上で所定のコマンドを実行する場合にも、習慣的にボタンをダブルクリックしてしまうユーザが少なくない。ブラウザ上のボタンはシングルクリックに対して１つの命令が送出されることから、ダブルクリックがなされると、２つの命令が送信されることになるので、サーバは同一の処理を２度繰り返すことになる。前述のように、サーバには、常に負担がかかっているので、このような無駄な処理が繰り返されると、処理が遅延することになり、システムの全体の処理能力の低下を招くという問題点があった。
【０００７】
また、特に、トラフィックが混雑しているような場合には、ボタンを操作してから結果がブラウザ上に表示されるまでに時間を要するため、結果を早く得ようとしてユーザがボタン操作を繰り返すような場合も少なくない。そのような場合にも、前述のように処理の遅延を招くことになる。
【０００８】
更に、ボタン操作が繰り返された場合には、前述のように処理の遅延を招くのみならず、同じ要求が繰り返しなされることにより、データの不整合等を招く場合があった。例えば、ユーザの会員登録を行う画面において、入力された内容を送信するボタンが繰り返し操作された場合には、会員登録が重複してなされる場合があるという問題点があった。
【０００９】
本発明は、以上のような点に鑑みてなされたものであり、同一のクライアントから同一の要求が繰り返しなされた場合において、システムの処理速度が低下することを防止することが可能なサーバおよびコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００１０】
また、本発明は、同一のクライアントから同一の要求が繰り返してなされた場合に、データの不整合の発生を防止することが可能なサーバおよびコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明では上記課題を解決するために、クライアントから送信された要求に応じた処理を実行し、処理結果を返送するサーバにおいて、クライアントからの要求を、前記クライアントの前記要求の順番に格納する前記クライアント毎の複数の要求格納手段と、前記クライアントからの要求についての実行結果を前記クライアント毎に格納する格納手段と、前記要求格納手段にそれぞれ格納されている前記クライアント毎の前記要求を前記要求の順番に取り出し、取り出したあるクライアントの前記要求が、当該クライアントからの以前の同一の要求によって既に実行済であるか否かを判定する判定手段と、前記判定手段によって実行済と判定された場合には、当該要求の実行をすることなく、前記格納手段内の該当する実行結果を、要求を行ったクライアントに対して送信する送信手段と、を有することを特徴とするサーバが提供される。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の実施の形態の構成例を示すブロック図である。この図に示すように、本発明に係るサーバ１は、受信部１ａ、判定手段１ｂ、実行部１ｃ、格納手段１ｄ、および、送信手段１ｅによって構成されており、インターネット２を介してクライアント３−１〜３−３との間で情報を授受する。
【００１４】
ここで、受信部１ａは、クライアント３−１〜３−３からの要求を受信する。
判定手段１ｂは、クライアントからの要求が既に実行済であるか否かを判定する。
【００１５】
実行部１ｃは、クライアントからの要求を実行する。
格納手段１ｄは、クライアントからの要求についての実行結果を格納する。
送信手段１ｅは、判定手段１ｂによって実行済と判定された場合には、当該要求の実行をすることなく、格納手段１ｄ内の該当する実行結果を、要求を行ったクライアントに対して送信する。
【００１６】
インターネット２は、クライアント３−１〜３−３と、サーバ１の間で情報を伝送する。
クライアント３−１〜３−３は、例えば、パーソナルコンピュータによって構成されており、サーバ１に格納されている情報をブラウザによって表示したり、サーバ１に対して処理の要求を行うことが可能とされている。
【００１７】
次に、以上の原理図の動作について説明する。
いま、クライアント３−１において起動されているブラウザ上で、所定のボタンが２度繰り返して操作され、要求がなされたとすると、これらの要求はインターネット２を介してサーバ１に送信される。
【００１８】
サーバ１では、受信部１ａによってこれらの要求を受信し、判定手段１ｂに供給する。
判定手段１ｂでは、供給された要求が実行済みであるか否かを判定する。いまの例では、最初の要求は未実行であるので、判定手段１ｂは実行済みではないと判定して実行部１ｃに要求を供給する。
【００１９】
実行部１ｃは、供給された要求に対応する処理を実行し、処理結果を格納手段１ｄと送信手段１ｅに供給する。
格納手段１ｄは、処理結果をその要求と関連付けて格納する。
【００２０】
送信手段１ｅは、実行部１ｃから供給された処理結果を、要求を行ったクライアント３−１に対して返送する。
以上により、最初の要求に対応する処理が完了する。
【００２１】
続いて、次の要求に対する処理が開始される。即ち、判定手段１ｂは、次の要求が実行済みであるか否かを判定する。いまの例では、クライアント３−１側において同一のボタンが連続して操作されていることから同一の要求であり、判定手段１ｂは実行済みであると判定し、格納手段１ｄから該当する処理結果を検索し、送信手段１ｅに供給する。送信手段１ｅは、処理結果を要求を行ったクライアント３−１に対して返送する。
【００２２】
従って、２度目の要求に対しては、処理は実行されることなく、格納手段１ｄに格納されている実行結果が取得されて送信されることになる。
クライアント３−１では、要求に対する実行結果を２度受信することになるが、先に受信した実行結果は破棄され、後に受信した実行結果が正規に受信したデータとしてブラウザに表示されることになる。
【００２３】
以上に説明したように、本発明に係るサーバによれば、クライアントのブラウザ上において同一のボタンが繰り返し操作された場合には、最初の操作に対する処理のみが実行され、それ以降の操作に対しては格納手段１ｄに格納されている実行結果が読み出されて送信されるので、サーバにかかる負担を軽減することが可能となる。
【００２４】
また、例えば、ユーザ登録画面において入力された登録情報を送信するボタンが繰り返し操作された場合には、最初の操作に対してのみ実際の登録処理が実行され、それ以降の操作に対しては実行結果を示す登録終了画面が格納手段１ｄから読み出されて供給されることになるので、重複登録を防止することが可能となる。
【００２５】
次に、本発明の実施の形態の構成例について説明する。
図２は、本発明の実施の形態の構成例を示すブロック図である。この図に示すように、本発明に係るサーバ１０は、ＣＰＵ（Central Processing Unit）１０ａ、ＲＯＭ（Read Only Memory）１０ｂ、ＲＡＭ（Random Access Memory）１０ｃ、ＨＤＤ（Hard Disk Drive）１０ｄ、および、Ｉ／Ｆ（Interface）１０ｅによって構成されており、インターネット２を介してクライアント３−１〜３−３との間で情報を授受する。
【００２６】
ここで、ＣＰＵ１０ａは、装置の各部を制御するとともに、ＨＤＤ１０ｄに格納されているプログラムやデータに従って種々の処理を実行する。
ＲＯＭ１０ｂは、ＣＰＵ１０ａが実行する基本的なプログラムやデータを格納している。
【００２７】
ＲＡＭ１０ｃは、ＣＰＵ１０ａが実行途中のプログラムや演算途中のデータを一時的に格納する。
ＨＤＤ１０ｄは、ＣＰＵ１０ａが実行するプログラムやデータを格納している。
【００２８】
Ｉ／Ｆ１０ｅは、インターネット２に対応するプロトコル変換を実行し、クライアント３−１〜３−３との間でデータの授受を可能にする。
インターネット２は、全世界に散在するサーバの集合体であり、クライアント３−１〜３−３と、サーバ１０との間で情報を伝送する。
【００２９】
クライアント３−１〜３−３は、例えば、パーソナルコンピュータによって構成されており、インターネット２を介してサーバ１０に対して要求を行い、得られたデータをアプリケーションプログラムであるブラウザに表示させる。
【００３０】
次に、以上の実施の形態の動作について説明する。
例えば、クライアント３−１からサーバ１０に対するログインが発生したとすると、図３に示す処理が実行され、クライアント３−１が新たにログインしたクライアント（以下、新規クライアントと称す）であるか否かが判定され、新規クライアントである場合には要求を格納するＦＩＦＯと要求の実行結果を格納するキャッシュとが確保される。
［Ｓ１］ＣＰＵ１０ａは、ログインしたクライアントが新規クライアントか否かを判定し、新規クライアントである場合にはステップＳ２に進み、それ以外の場合（既にログイン済みのクライアントである場合）には処理を終了する。
［Ｓ２］ＣＰＵ１０ａは、ＨＤＤ１０ｄの所定の領域に、クライアントから送信されてきた要求をユーザ毎に格納するＦＩＦＯを確保する。
【００３１】
図４は、このときＨＤＤ１０ｄに確保されるＦＩＦＯの一例を示す図である。この例では、各ユーザ毎にＦＩＦＯが確保されており、受信されたデータは既に格納されているデータの末尾に追加され、先頭のデータから順に読み出される。
［Ｓ３］ＣＰＵ１０ａは、ＨＤＤ１０ｄの所定の領域に、要求の処理結果を格納するキャッシュを各ユーザ毎に確保する。
【００３２】
図５は、このときＨＤＤ１０ｄに確保されるキャッシュの一例を示す図である。この例では、各ユーザ毎に、実行された要求と要求に対する処理結果とが対応付けて記憶されている。
【００３３】
以上の処理により、新たなクライアントからログインが発生した場合には、ＦＩＦＯとキャッシュとがＨＤＤ１０ｄに確保されることになる。なお、ＨＤＤ１０ｄの代わりにＲＡＭ１０ｃにこれらを確保することも可能である。
【００３４】
ＦＩＦＯとキャッシュの確保が完了すると、サーバ１０は、ＨＤＤ１０ｄに格納されている所定のフロントページ（ＨＴＭＬで記述されたページ）を読み出して、クライアント３−１に送信する。
【００３５】
その結果、クライアント３−１の表示装置には、例えば、図６に示すような画面が表示されることになる。この表示例では、ウィンドウ２０の左上の領域には、以前に表示されたページに戻る場合に操作されるボタン２１、次のページに進む場合に操作されるボタン２２、サーバからのデータの受信を中止するボタン２３、表示されている内容を印刷するボタン２４、および、このウィンドウ２０を縮小、拡大、終了する場合にそれぞれ操作されるボタン２５〜２７が表示されている。
【００３６】
また、ウィンドウ２０の表示領域２８には、フロントページの内容が表示されており、この例では、フロントページのタイトルと、キーワードが入力されるテキストボックスおよび検索を開始する場合に操作されるボタン３０が表示されている。
【００３７】
このような画面において、例えば、図７に示すようなキーワード「Ｐｏｔｔｅｒｙ」がテキストボックス２９に入力され、ポインタ４０によりボタン３０が２度操作されたとする。
【００３８】
すると、クライアント３−１は、ボタン３０が操作されたことを検出し、このボタン３０に対応する要求（検索要求）と、入力されたキーワードとをサーバ１０に向けて送信する。なお、前述のように、いまの例では、ボタン３０が２度操作されているので、２つの要求がサーバ１０に向けて送信される。
【００３９】
サーバ１０では、ＣＰＵ１０ａがＩ／Ｆ１０ｅを介してこれらの要求を受信し、ＨＤＤ１０ｄに格納されたプログラムに従って、図８に示す処理を実行する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ２０］ＣＰＵ１０ａは、Ｉ／Ｆ１０ｅを介して取得した要求に含まれているクライアントのＩＰ（Internet Protocol）アドレス等を参照し、ＨＤＤ１０ｄに確保されている該当するＦＩＦＯを検索し、ＦＩＦＯの末尾に対して受信した要求を追加する。
【００４０】
いまの例では、ＦＩＦＯが空の状態であったとすると、クライアント３−１からは２つの要求が送信されてきているので、これら２つの要求がＦＩＦＯの先頭から順に格納される。
［Ｓ２１］ＣＰＵ１０ａは、ＦＩＦＯの先頭に格納されている要求を取得する。
【００４１】
いまの例では、２つの同じ要求のうち、先頭の１つが取得されることになる。
［Ｓ２２］ＣＰＵ１０ａは、ＦＩＦＯに要求が１つだけ存在するか否かを判定し、１つだけ存在する場合にはステップＳ２４に進み、それ以外の場合にはステップＳ２３に進む。
［Ｓ２３］ＣＰＵ１０ａは、ＦＩＦＯに格納されている全ての要求の読み出しを禁止する。
【００４２】
いまの例では、後から送信された要求の読み出しが禁止されることになる。なお、このように、要求を読み出した後にＦＩＦＯに残った要求の読み出しを禁止するのは、他の要求が勝手に読み出されて実行されることを防止するためである。
［Ｓ２４］ＣＰＵ１０ａは、ステップＳ２１において取得した要求が、既に処理済みであるか否かを判定し、処理済みである場合にはステップＳ２７に進み、それ以外の場合にはステップＳ２５に進む。
［Ｓ２５］ＣＰＵ１０ａは、対象となる要求に対応する処理をＨＤＤ１０ｄから取得して実行する。
【００４３】
いまの例では、キーワード「Ｐｏｔｔｅｒｙ」に対する検索要求であるので、該当する検索を行うためのプログラムがＨＤＤ１０ｄから取得され、キーワード「Ｐｏｔｔｅｒｙ」に該当する項目がＨＤＤ１０ｄに格納されているデータベースから検索される。
［Ｓ２６］ＣＰＵ１０ａは、ＨＤＤ１０ｄに確保されているキャッシュに対して、ステップＳ２５で実行された処理結果と要求を格納する。
【００４４】
いまの例では、検索要求、および、キーワード「Ｐｏｔｔｅｒｙ」に該当する項目がキャッシュに格納される。
［Ｓ２７］ＣＰＵ１０ａは、対象となる要求は既に処理済みとして、キャッシュに格納されている該当する処理結果を取得する。
［Ｓ２８］ＣＰＵ１０ａは、要求を行ったクライアントに対して処理結果を送信する。
【００４５】
いまの例では、キーワード「Ｐｏｔｔｅｒｙ」に該当する項目が処理結果としてクライアント３−１に送信される。
［Ｓ２９］ＣＰＵ１０ａは、ＦＩＦＯからの要求の読み出しの禁止を解除する。
【００４６】
その結果、ＦＩＦＯからの要求の読み出しが可能となる。
［Ｓ３０］ＣＰＵ１０ａは、処理を継続するか否かを判定し、継続する場合にはステップＳ２１に戻って同様の処理を繰り返し、それ以外の場合には処理を終了する。
【００４７】
以上に説明した処理により、ＦＩＦＯに格納された最初の要求であるキーワード「Ｐｏｔｔｅｒｙ」に該当する項目の検索処理が実行され、クライアント３−１に対して送信されることになる。
【００４８】
次に、ＦＩＦＯに格納されている次の要求に対する処理が、前述の場合と同様のフローチャートによって実行される。その場合、クライアント３−１からの新たな要求がなかったとすると、ＦＩＦＯに格納されている要求は１つだけであるので、ステップＳ２２の処理ではＹＥＳと判定されてステップＳ２４に進む。また、ステップＳ２４の処理では、処理済みの要求であることから、ＹＥＳと判定されてステップＳ２７に進む。
【００４９】
ステップＳ２７では、先の要求の処理結果であるキーワード「Ｐｏｔｔｅｒｙ」に該当する検索結果がキャッシュから取得され、ステップＳ２８において、クライアント３−１に対して送信される。
【００５０】
その結果、クライアント３−１では、検索結果が２度受信されることになるが、ブラウザは１度目の結果は破棄し、２度目に受信した結果を表示する。
図９は、このときクライアント３−１の表示装置に表示される画面の表示例である。この例では、図６に示す画面の表示領域２８の右側に、キーワード「Ｐｏｔｔｅｒｙ」に対する検索結果が表示されている。
【００５１】
なお、このクライアント３−１がサーバ１０からログアウトした場合、または、クライアント３−１から所定の時間以上アクセスがない場合には、ＨＤＤ１０ｄに確保されたＦＩＦＯおよびキャッシュが削除される。
【００５２】
以上の実施の形態によれば、受信した要求をクライアント毎に分けてＦＩＦＯに格納するとともに、実行された処理内容も同様にしてクライアント毎に分けてキャッシュに格納し、同一の要求が連続してなされた場合にはキャッシュから該当する処理結果を取得して送信するようにしたので、サーバが同一の処理を繰り返して実行することを回避し、処理速度の向上を図ることが可能となる。
【００５３】
なお、以上の実施の形態では、データの検索を例に挙げて説明を行ったが、例えば、会員登録を行う場合に対しても本発明を適用することが可能である。
図１０は、会員登録を行う場合に表示される画面の表示例である。この例では、表示領域２８には、会員登録のために必要なユーザの情報である、名前、性別、住所、および、ｅ−ｍａｉｌのアドレスが記入事項５０として表示されている。
【００５４】
ところで、このような画面では、全角文字と半角文字とが混在していることから、「ｅｎｔｅｒ」キーの使用に留意する必要がある。即ち、名前や住所の全角文字の入力の際には日本語変換の確定の際に「ｅｎｔｅｒ」キーを操作する必要があるが、半角文字のｅ−ｍａｉｌアドレスを入力する際には変換は不要なので「ｅｎｔｅｒ」キーの操作は不要である。しかしながら、これらの入力が混在する場合には、全角の場合と同様に半角の場合でも「ｅｎｔｅｒ」キーを操作してしまうことが少なくない。そのような場合には、ブラウザは送信ボタン５１が操作されたと解釈して登録要求を発することになる。そして、そのような事実に気付くことなく、その後にユーザが送信ボタン５１を操作すると、登録要求が再度なされる結果となる。
【００５５】
従来のサーバにおいては、このような操作に対しては何の対応策も講じられていないことから、前述のユーザは重複して会員登録されてしまうことになるが、本実施の形態の場合では、１度目の要求に対しては登録処理が実行されるが、２度目の要求に対しては前回と同一の要求であるとして、会員登録の処理は実行されずに登録結果を示す表示画面のみが送信される。
【００５６】
また、入力された内容を送信する送信ボタン５１が２度以上操作された場合においても、同様の処理が行われ、２度目以降の要求に対しては登録処理は行われずに登録結果を示す表示画面のみが送信される。
【００５７】
図１１は、登録結果を示す表示画面の一例を示す表示例である。この例では、表示領域２８には、表示内容での登録がなされた旨を示すメッセージと、登録内容とが表示されている。２度目以降の登録要求に対しては、このような画面が送信されてくることになる。
【００５８】
以上の実施の形態によれば、会員登録画面のように繰り返し実行することを要しない処理に対して複数の要求がなされた場合には、最先の要求のみが処理の対象とされ、それ以降の処理に対しては結果のみが送信されるので、例えば、不必要な情報がサーバに登録される等の不具合を回避することができる。
【００５９】
なお、本明細書において、「要求」とは、要求内容のみから構成される場合と、クライアント識別情報（ユーザ識別情報）と要求内容とから構成される場合の２通りがある。従って、前者の場合、判定手段１ｂは、クライアントＡ（ユーザＸ）からの要求内容Ｒについて実行結果が格納手段１ｄにある場合、その後に受信したクライアントＢ（ユーザＹ）からの要求内容Ｒについて、図８のＳ２４において、ＹＥＳと判断し、Ｓ２７に進む。例えば、検索エンジンにおいて、異なるユーザから同一の検索条件（要求内容）が入力された場合に、サーバの負荷を軽減する点で有効である。一方、後者の場合、判定手段１ｂは、クライアントＡ（ユーザＸ）からの要求内容Ｒについて実行結果が格納手段１ｄにある場合、その後に受信したクライアントＢ（ユーザＹ）からの要求内容Ｒについて、図８のＳ２４において、ＮＯと判断し、Ｓ２５に進む。この場合、その後に受信したクライアントＡ（ユーザＸ）からの要求内容Ｒについてのみ、図８のＳ２４において、ＹＥＳと判断し、Ｓ２７に進む。例えば、上述したようにユーザの誤操作によるサーバの負荷を軽減する点で有効である。
【００６０】
最後に、上記の処理機能は、コンピュータによって実現することができる。その場合、サーバが有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【００６１】
【発明の効果】
以上説明したように本発明では、クライアントから送信された要求に応じた処理を実行し、処理結果を返送するサーバにおいて、クライアントからの要求を、クライアントの要求の順番に格納するクライアント毎の複数の要求格納手段と、クライアントからの要求についての実行結果をクライアント毎に格納する格納手段と、要求格納手段にそれぞれ格納されているクライアント毎の要求をこの要求の順番に取り出し、取り出したあるクライアントの要求が、当該クライアントからの以前の同一の要求によって既に実行済であるか否かを判定する判定手段と、判定手段によって実行済と判定された場合には、当該要求の実行をすることなく、格納手段内の該当する実行結果を、要求を行ったクライアントに対して送信する送信手段と、を有するようにしたので、同一の要求が重複してなされた場合でもサーバにかかる負担を軽減することが可能となる。
また、「要求」がクライアント識別情報（ユーザ識別情報）と要求内容とから構成される場合、判定手段は、あるクライアントからの要求内容について実行結果が格納手段にある場合、その後に受信した他のクライアントからの、あるクライアントの要求内容と同一の要求内容について、まだ処理を行っていない要求であると判断する。この場合、その後に受信した前記あるクライアントからの要求内容についてのみ、既に処理を行った（処理済の）要求であると判断し、格納手段に格納されている該当する処理結果を取得する。これにより、不必要な情報がサーバに登録される等の不具合を回避することができ、ユーザの誤操作によるサーバの負荷を軽減する点で有効である。
【図面の簡単な説明】
【図１】本発明の動作原理を説明する原理図である。
【図２】本発明の実施の形態の構成例を示すブロック図である。
【図３】クライアントがサーバにログインした場合に実行される処理の一例を説明するフローチャートである。
【図４】ＦＩＦＯの一例を示す図である。
【図５】キャッシュの一例を示す図である。
【図６】フロントページの表示例である。
【図７】図６に示す画面において、所定の項目が入力された場合の表示例である。
【図８】要求を受信したサーバが実行する処理の一例を説明するフローチャートである。
【図９】図７に示す画面において、検索ボタンが操作された場合の検索結果の表示例である。
【図１０】会員登録を行う画面の表示例である。
【図１１】図１０に示す画面において送信ボタン５１が操作された場合の表示例である。
【符号の説明】
１  サーバ
１ａ  受信部
１ｂ  判定手段
１ｃ  実行部
１ｄ  格納手段
１ｅ  送信手段
２  インターネット
３−１〜３−３  クライアント
１０  サーバ
１０ａ  ＣＰＵ
１０ｂ  ＲＯＭ
１０ｃ  ＲＡＭ
１０ｄ  ＨＤＤ
【図１】
0004375869.tif 000002
【図２】
0004375869.tif 000003
【図３】
0004375869.tif 000004
【図４】
0004375869.tif 000005
【図５】
0004375869.tif 000006
【図６】
0004375869.tif 000007
【図７】
0004375869.tif 000008
【図８】
0004375869.tif 000009
【図９】
0004375869.tif 000010
【図１０】
0004375869.tif 000011
【図１１】
0004375869.tif 000012