JP4257139B2 - Information processing method and processing program - Google Patents

Information processing method and processing program Download PDF

Info

Publication number
JP4257139B2
JP4257139B2 JP2003079722A JP2003079722A JP4257139B2 JP 4257139 B2 JP4257139 B2 JP 4257139B2 JP 2003079722 A JP2003079722 A JP 2003079722A JP 2003079722 A JP2003079722 A JP 2003079722A JP 4257139 B2 JP4257139 B2 JP 4257139B2
Authority
JP
Japan
Prior art keywords
data
request
response
client machine
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003079722A
Other languages
Japanese (ja)
Other versions
JP2004287899A (en
Inventor
努 細川
幸太郎 鈴村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Research Institute Ltd
Original Assignee
Japan Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Research Institute Ltd filed Critical Japan Research Institute Ltd
Priority to JP2003079722A priority Critical patent/JP4257139B2/en
Publication of JP2004287899A publication Critical patent/JP2004287899A/en
Application granted granted Critical
Publication of JP4257139B2 publication Critical patent/JP4257139B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

【0001】
【発明が属する技術分野】
本発明は、ウェブシステムにおけるセッション管理の手法に関する。
【0002】
【従来の技術】
HTTPプロトコルは、状態を保持しないステートレスな、また、通信路の確保や開放が不要なコネクションレスの通信手法である。このため、注文入力画面、注文の指定およびこれに応答した注文確認画面、さらに、確認の入力に応答した登録確認画面など、商品購入などにかかる一連のリクエストおよび応答の組を、同一のクライアントからのものであると判断し、かつ、当該クライアントの状態を把握するために、「Http Session」(セッションキー)を利用することが知られている。
【0003】
この手法では、サーバ側がクライアント固有の情報(セッションキー)を保持し、クライアントからのリクエストに対して、当該クライアント固有のセッションキーを付与してレスポンスを返している。クライアントのリクエストにも、上記セッションキーが付加されることにより、サーバは、どのクライアントからのリクエストかを判断することが可能となる。
【0004】
たとえば、特許文献1には、しかしながら、ステートレスおよびコネクションレスであることから、種々の問題が生じうる。たとえば、特許文献1には、端末から長期間にわたってはなれた場合にも、他人のなりすましを防ぐために、セッション時間を管理し、画面の遷移が所定時間以内のものであるかを判断する技術が提案されている。
【0005】
【特許文献1】
特開2002−229941号公報
【0006】
【発明が解決しようとする課題】
上述した他人の成りすましのほか、セッションキーを利用する手法では、以下のような問題が生じ得る。
たとえば、ユーザが新たなウィンドウを開くことにより、同じセッションキーをもつ複数のブラウザが作られ得る。この場合に、どちらのブラウザ上の画面からのリクエストかを判断できなくなり、適切な応答ができないという問題点があった。
【0007】
また、登録処理における二重登録の問題がある。たとえば、入力内容確認画面において、確認ボタンをダブルクリックすることにより、確認が二度登録されてしまうことである。また、確認ボタンをオンした後、戻りボタンで画面を元に戻して、再度確認ボタンをオンできる可能性もある。たとえば、商品購入の確認であれば、当該商品が二重に購入されたとサーバが判断してしまうおそれがあった。
上記問題点の対策として、従来、以下のような手法が実用化されている。
【0008】
(1)クライアントからの入力ボタンのオンを受理すると、サーバにて確認情報を保持し、次に送られるクライアントからのボタン(たとえば、登録ボタン)のオンを受理すると、登録処理を実行するとともに、上記確認情報を消去する。これにより、二重登録の問題を解決することができる。
【0009】
(2)画面が遷移するために、トークン(Token)を発行してクライアントに返す。サーバは、最新のトークンが付与されたリクエストのみに応答して処理を実行する。これは、画面遷移ごとにセッションキーが変更されるのとほぼ同様になる。
【0010】
しかしながら、(1)の手法では、同じセッションで複数のブラウザが開いている場合に、クライアントマシンに表示しているデータと、処理対象となるデータが異なる場合がある。たとえば、一方の画面で商品を注文し、入力内容を確認する画面を呼び出し、次いで、他方の画面(画面自体は上記一方の画面と同一)で、他の商品を注文し、入力内容を確認する画面を呼び出した状態を考える。ここで、一方の(先に注文した)内容を確認する画面で、登録ボタンをユーザがオンしたときに、サーバは、他方の画面からの登録ボタンのオンと判断する可能性がある。つまり、ユーザが商品Aを購入しようとしているに、他方の画面で購入しようとしていた商品Bが登録されてしまう。
また、ユーザ情報などを変更する際の画面(変更画面)で、「戻る」ボタンを指定してもこれが無効になってしまう。たとえば、検索結果リストの表示においても同様の問題が生じ得る。
【0011】
また、(2)の手法では、ブラウザの「戻る」ボタンを使えなくなる。「戻る」ボタンを押すと、これ以降の操作は無効になってしまう。また、同じセッションで複数のブラウザが開いている場合に、一方の画面を消してしまうと、ログインからやり直さなければならない。つまり、現在のトークンを持っている画面が消えてしまうと、操作を継続できないという問題点があった。さらに、登録ボタンなどをダブルクリックすると、エラーが表示されてしまう。
【0012】
本発明は、ユーザが参照している画面の情報と、処理対象となった情報とが一致し、かつ、ダブルクリックや複数画面を開いているときにも矛盾なく、ユーザのリクエストに応答することができるシステムを提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明の目的は、クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送する情報処理方法であって、サーバにおいて、クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、前記クライアントマシンにおいて、前記応答データからの異なるリクエストに、当該応答データに関連したデータIDを付与して送信するステップと、前記サーバにおいて、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該リクエストに応答した応答データを生成するステップと、処理後の応答データを一意的に特定する新たなデータIDを生成するステップと、いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを備えたことを特徴とする情報処理方法により達成される。
【0014】
本発明によれば、先行するリクエストに応じて作られた応答データに関連するデータIDが、サーバの記憶手段に記憶されるとともに、クライアントに伝達される。クライアントからは、応答データに基づく他のリクエストとともに、伝達されたデータIDが、サーバに返される。サーバに返されたデータIDは、記憶手段に記憶されたデータIDと照合される。記憶手段中に、クライアントからサーバに返されたデータIDと同一のものが存在する場合には、適切に照合されたとして、処理が継続される。いったん照合に利用されたデータIDは、それ以降の照合には利用されない。これにより、二重登録を防止することが可能となる。
【0015】
また、データIDは、あるリクエストに対する応答データに関連している。したがって、クライアントにおいてブラウザの戻りボタンが押された後、再度、上記応答データに対応する画面に戻された場合、当該戻された画面からのリクエストには、応答データに関連付けられたデータIDが付加されているため、サーバにおいて、適切に処理することができる。
【0016】
すなわち、本発明においては、従来のセッション管理のためのセッションIDとは別に、オブジェクトの保有するデータごとにデータIDを付与して管理している。このため、画面遷移状態やクライアントマシンからのHTTPリクエストとは依存せず、オブジェクトのもつデータの変更のみに注目して、データIDを付与することができる。これにより、上記二重登録の防止やブラウザの戻りボタンが押された後に、再度、画面が戻された場合などにおいても、サーバにおける適切な処理が実現できる。
【0017】
なお、データIDは、推測が困難となるように、ランダムでかつ一意に生成されるのが望ましい。
【0018】
好ましい実施態様においては、照合に利用しないようにするステップが、前記一時的に記憶したデータIDを消去するステップを有する。この実施態様において、適切に照合できなかった場合に、前記リクエストに応答して、前記クライアントマシンにエラーメッセージを送信するステップを備えていても良い。
【0019】
別の好ましい実施態様においては、前記照合に利用しないようにするステップが、前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを有する。より好ましくは、さらに、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記確認済のデータIDとを二次的に照合するステップを備え、かつ、適切に二次的照合ができた場合には、前記リクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記リクエストに応答して、前記クライアントにエラーメッセージを送信するステップを備えている。
【0020】
また、本発明の目的は、クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送するためにコンピュータを動作させる情報処理プログラムであって、クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、前記クライアントマシンにおいて送信された、前記応答データからの異なるリクエストに、および、応答データに関連したデータIDを受理するステップと、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該リクエストに応答した応答データを生成するステップと、処理後の応答データを一意的に特定する新たなデータIDを生成するステップと、いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを、前記コンピュータに実行させることを特徴とするプログラムにより達成される。
【0021】
好ましい実施態様においては、照合に利用しないようにするステップにおいて、前記一時的に記憶したデータIDを消去するステップを、前記コンピュータに実行させる。ここで、適切に照合できなかった場合に、前記リクエストに応答して、前記クライアントマシンにエラーメッセージを送信するステップを、前記コンピュータに実行させても良い。
【0022】
別の好ましい実施態様においては、照合に利用しないようにするステップにおいて、前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを、前記コンピュータに実行させる。さらに、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記確認済のデータIDとを二次的に照合するステップを、前記コンピュータに実行させ、かつ、適切に二次的照合ができた場合には、前記リクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記リクエストに応答して、前記クライアントにエラーメッセージを送信するステップを、前記コンピュータに実行させるのが望ましい。
【0023】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態につき説明を加える。図1は、本発明の第1の実施の形態にかかるサーバを含むシステムの概略を示すブロックダイヤグラムである。図1にいては、インターネット12に、クライアントマシン14−1、14−2、・・・や、サーバ16が接続されている。サーバ16は、クライアントマシン14からの種々のリクエストに対して、所定のコンテンツ(たとえば、画像)を提供することができる。無論、本発明は、クライアントマシン14はインターネット12を介してサーバ16に接続できる形態に限定されるものではなく、LANやWANなど任意のネットワークを介して接続されたものに適用できることは言うまでもない。また、サーバ16には、クライアントマシン14からのデータ授受に際して利用される、データIDを一時的に記憶するためのデータ記憶部18が設けられている。
【0024】
図2は、本実施の形態にかかる手法を用いた、サーバ16による処理の概略を示す図である。ここでは、クライアントマシン14とサーバ16とのデータ授受により、クライアントマシン14からサーバ16にコマンドが伝達され、クライアントマシン14において画面が遷移される状態を示している。
【0025】
図2においては、商品購入サイトにおいて、商品を指定し、指定した商品を注文する注文入力画面201から、注文内容を確認する注文内容確認画面202を経て、注文内容を登録したことを示す登録内容確認画面203まで遷移している。サーバ16は、サーブレットのオブジェクト20が、クライアントマシン14とのセッション開始に際して、セッションオブジェクト22(たとえば、セッションID(SID)=YYZZX)を生成し、セッションオブジェクト22が、データが変更されるときに、データIDを採番して、データとともに固有のデータIDが、クライアントマシン14に伝達されるようになっている。なお、データIDは、推測が不可能或いは困難であるように、ランダムでかつ一意に採番される。
【0026】
ユーザが、クライアントマシン14の表示装置上の注文入力画面を参照して、ある商品を選択することにより、これがサーバ16に伝達され(矢印211参照)、サーバ16による処理の結果、必要なデータがクライアントマシン14に与えられ(矢印212参照)、クライアントマシン14の表示装置上には、入力内容確認画面202が表示される。次いで、ユーザによる入力装置の操作により、内容の確認を示すボタン等が指定されると、これがサーバ16に伝達される(矢印213参照)。データ授受が繰り返されることにより(矢印213、214参照)、サーバ16において、ユーザが購入する商品が登録される。
【0027】
図3は、本実施の形態にかかるクライアントマシン14およびサーバ16にて実行される処理の例を示すフローチャートである。ここでは、図2に示す画面遷移に実行される処理が示されている。クライアントマシン14からのアクセスにより(ステップ301)、サーバ16においては、オブジェクト20が、当該クライアントマシン14とのセッションのためのセッションオブジェクト22を生成する(ステップ302)。セッションオブジェクト22は、セッションIDを発行し、クライアントマシン14を識別できるようにする。また、これは、クライアントマシン14とのセッションが終了するまで保持される。
【0028】
クライアントマシン14とサーバ16との間のデータ授受により、クライアントマシン14の表示装置上に注文入力画面が表示されていると考える。注文入力画面には、たとえば、複数の商品名がリストされ、リストされた商品名のいずれかに付随したボタンをクリックすることにより、当該商品が指定される。
【0029】
ここで、ユーザが、ある商品を指定して、当該商品に付随したボタンをオンすると、注文入力ボタンをオンしたことを示すデータおよび所定の他のデータ(データID)が、入力データとして、サーバ16のオブジェクト20に伝達される(ステップ303)。実際には、クライアントマシンから、オブジェクトの「リスト選択」というメソッドの呼び出し(リクエスト)に、データIDと、指定された商品の番号に対応するパラメータとが付加されて、サーバ16に与えられる。このデータIDについては、ステップ311以降において詳述する。
【0030】
サーバ16のオブジェクト20は、必要な処理(これについても、ステップ311以降を参照して詳述する)の後、リクエストをセッションオブジェクト22に伝達する(ステップ304)。セッションオブジェクト22は、入力内容確認画面を生成するための注文データと、上記ステップ304のリクエストに対して一意的となるデータIDとを生成し、これをオブジェクト20に返す(ステップ311)。したがって、ユーザ側に確認を求める確認データとして、上記注文データが、データID(確認ID)とともに、クライアントマシン14に伝達される(ステップ312)。このデータIDは、前記注文データと関連付けてデータ記憶部18に記憶される(ステップ313)。
【0031】
クライアントマシン14の表示装置上の入力内容確認画面を参照して、ユーザが入力装置を操作することにより、確認ボタンがオンされると、「確認要求」というリクエストに、ステップ312にて伝達されたデータIDが付加されて、サーバ16に伝えられる(ステップ314)。サーバ18においては、当該受理したデータIDと、注文データと関連付けてデータ記憶部18に記憶しておいたデータIDとを照合する(ステップ315)。これらが一致する場合には、データ記憶部18中のデータIDが消去され(ステップ316)、登録要求がセッションオブジェクト22に伝達される(ステップ317)。
【0032】
セッションオブジェクト22は、登録確認画面を生成するための登録データと、当該ステップ317のリクエストに対して一意的となるデータIDとをオブジェクト20に返す(ステップ318)。したがって、ユーザ側に確認を求める確認データとして、上記登録データが、そのデータIDとともに、クライアントマシン14に伝達される(ステップ319)。つまり、応答データと、これを一意的に特定する新たなデータIDとが、クライアントマシン14に与えられることになる。図3に示していないが、この登録データのデータIDも、データ記憶部18に記憶され、次のクライアントマシン14からのアクセスの際の照合に利用される。
【0033】
ここで、クライアントマシンに、注文データに基づく画面(入力内容確認画面)が表示された状態で、確認ボタンが2度オンされたと考える。たとえば、本来マウスのシングルクリックの操作で足りるものを、ダブルクリックの操作をしてしまった場合が、これに該当する。図4に示すように、このときに、最初の確認ボタンのオンにより、登録要求および先の注文データとともに与えられたデータIDとが、オブジェクト20に送信される。これは、図3のステップ314と同様である。したがって、オブジェクト20は、データ記憶部18を参照して、データIDを照合し(ステップ315)、照合の後にデータを消去する(ステップ316)。データIDの照合が上首尾に完了している(つまり、データIDが存在する)ため、当該登録要求は、セッションオブジェクトに伝達される(図3のステップ317参照)。
【0034】
これに対して、2度目の確認ボタンのオンにより、オブジェクト20に登録要求およびデータIDが与えられた場合(ステップ401)に、データ記憶部18中の対応するデータIDは既に消去されているため、照合が失敗する(ステップ402)。したがって、2度目の確認ボタンのオンに基づく要求は、これ以降無視される(ステップ403参照)。或いは、上記ステップ401の要求に応答して、オブジェクト20は、エラーメッセージを含む画像(エラーメッセージ画像)を伝達する。
【0035】
このように、本実施の形態によれば、クライアントマシン14のリクエスト(要求)に対して、当該リクエストに応答したデータ(確認データ)およびデータIDを、クライアントマシン14に返し、クライアントマシン14からの、当該応答したデータに関連する次のリクエストに、確認データに関連付けられていたデータIDを付与して送信している。サーバ16においては、このデータIDを保持しておくことで、ユーザからのリクエストを特定することができる。
【0036】
また、照合の後、データIDを消去することで、ダブルクリックにより、同一のリクエストおよびデータIDがサーバ16に送信されても、当該リクエストを無視することができる。これにより、ダブルクリックによる二重登録や、複数画面表示などを防止することが可能となる。
【0037】
また、本実施の形態によれば、同一のセッションにおいて複数のデータ(画面)を保持し、それぞれについて適切な処理を実行することも可能となる。図5は、このような画面遷移の例を示す図である。図5において、ユーザは、商品購入サイトにおいて、リクエストを入力する(符号521〜524参照)ことにより、注文入力画面501、入力内容確認画面502、登録内容確認画面503の順で、画面を遷移させる。これは、図2の画面201〜203にそれぞれ対応する。その一方、たとえば新たなウィンドウを開くことにより、他の注文入力画面511を表示させ、注文入力画面からリクエストを入力し(符号531参照)、リクエストおよび応答を繰り返して(符号532〜534参照)、他の入力内容確認画面512、登録内容確認画面513に画面遷移させている。本実施の形態では、それぞれを適切に画面遷移させ、かつ、ユーザの入力を適切に登録することができる。
【0038】
図6および図7は、複数のデータ(画面)を保持する場合の処理の一例を示すフローチャートである。
まず、クライアントマシン14からのアクセスにより(ステップ600a)、サーバ16内にセッションオブジェクト22が生成される(ステップ600b)。クライアントマシン16から注文入力画面要求、および、先のサーバからの応答において付与されていたデータIDが、サーバ16のオブジェクト20に伝達されると、図3のステップ315、316にて説明したように、データIDの照合よび消去が行なわれ(図示せず)、その後、注文入力画面要求が、セッションオブジェクト22に伝達される(ステップ602)。
【0039】
セッションオブジェクト22は、当該リクエストに応答したデータ(注文入力画面を生成するための画面データ)と、前記リクエストに対して一意的となるデータID(たとえば、データID=aaaa)とを、オブジェクト20に返す。これにより、画面データおよびデータID(=aaaa)が、クライアントマシンに伝達される(ステップ603)。また、このデータID(=aaaa)がデータ記憶部18に記憶される(ステップ604)。
【0040】
その一方、同一のセッションにおいて、たとえば新たなウィンドウを開くことにより、第2の注文入力画面要求が、データIDとともにオブジェクト20に伝達されると(ステップ611)、データIDの照合やデータIDの消去の後(図示せず)、これがセッションオブジェクト22に伝達される。ここでは、適切にデータIDが照合されたと考える。したがって、第2の注文入力画面要求もセッションオブジェクト22に伝達される(ステップ612)。
【0041】
セッションオブジェクト22は、当該リクエストに応答したデータ(注文入力画面を生成するための画面データ)と、前記リクエストに対して一意的となるデータID(たとえば、データID=bbbb)とを、オブジェクト20に返す。これにより、画面データおよびデータID(=bbbb)が、クライアントマシンに伝達される(ステップ613)。また、このデータID(=bbbb)がデータ記憶部18に記憶される(ステップ614)。したがって、先のリクエストに応答した注文入力画面とは別個に、第2の注文入力画面を、クライアントマシン14の表示装置上に表示することができる。
【0042】
ユーザが、(第1の)注文入力画面を参照して、所望の商品に付随したボタンをオンすると、ボタンのオンを示すデータおよび先にステップ603で与えられたデータID(=aaaa)が、サーバ16に送られる(ステップ605)。オブジェクト20により、データIDの照合および消去が行なわれ、(この場合は適切にデータ照合が行なわれているため)、セッションオブジェクト22に注文入力要求が与えられる(ステップ608)。セッションオブジェクト22は、これに応答して、入力内容確認画面を生成するための注文データ、および、対応するデータID(たとえば、データID=cccc)を、オブジェクト20を介してクライアントマシン14に伝達する(ステップ609)。ここでも、当該データID(=cccc)は、データ記憶部18に記憶される(ステップ610)。この場合にも、応答データと、これを一意的に特定する新たなデータIDとが、クライアントマシン14に与えられることになる。このようにして、リクエストにデータIDが付加されてサーバに伝達することにより、一方の画面遷移(図5の符号501〜503)を適切に実行することが可能となる。
【0043】
その一方、ユーザが、第2の注文入力画面を参照して、所望の商品に付随したボタンをオンしたときにも、リクエストおよび先のステップ613で与えられたデータID(=bbbb)がサーバ16に伝達される(ステップ615)。これ以降、データID(=bbbb)の照合、消去、セッションオブジェクトにおける第2の注文入力に応答した第2の注文データ、および、対応するデータID(=dddd)の伝達などが実行される(ステップ616〜620参照)。これらは、先に説明した図5のステップ516〜520と、データIDが異なることを除き同一である。このようにして、もう一方の画面遷移(図5の符号511〜513)も、適切に実行することが可能となる。
【0044】
このように本実施の形態によれば、データIDの発行および記憶、クライアントマシンからのデータIDと記憶したデータIDとの照合、並びに、照合の後のデータIDの消去により、クライアントマシンからの要求に、一度だけ応答して、必要な処理(たとえば、データ登録や画面遷移)を実行している。したがって、同じ画面からの二度の要求(たとえば、データの登録要求など)があった場合でも、先の要求のみにしたがって適切な処理を実行することができる。また、同一のセッションにおいて同一の画面を同時に保持し、それぞれの画面において、なんらかの要求をした場合であっても、それぞれの要求に応えた適切な処理を実行することが可能となる。
【0045】
次に、本発明の第2の実施の形態につき説明を加える。第2の実施の形態にかかるシステムにおいても、図1に示すように、インターネットに、クライアントマシン14やサーバ16が接続され、サーバ16が、クライアントマシン14からの種々のリクエストに対して、所定のコンテンツを提供できるようになっている。
【0046】
第1の実施の形態においては、照合の終了後に、データ記憶部18中のデータIDを消去し、これにより、重複した要求に応答した処理の実行を防止している。しかしながら、データIDを消去した場合には、要求がダブルクリックによるものであるか、或いは、まったく異なるものであるかを判断することができない。したがって、エラーメッセージ画像を伝達するなど、画一的な応答のみが可能であった。これに対して、第2の実施の形態においては、ダブルクリックによってサーバ16に与えられた要求を無視し、その他の、不適切な要求に対してはエラーメッセージ画像をクライアント14に伝達できるように構成されている。
【0047】
図8は、第2の実施の形態にかかるクライアントマシン14およびサーバ16にて実行される処理の例を示すフローチャートである。図8において、ステップ801〜804、ステップ811〜815は、それぞれ、図3のステップ301〜304、ステップ311〜315に対応する。クライアント14に、確認データおよび確認IDが与えられた後(ステップ812参照)、ユーザによるクライアントマシン14上の操作により、確認ボタンがオンされると、確認要求とともに、ステップ812にて受理されたデータID(たとえば、データID=「aaaa」)が、クライアント14からサーバ16に伝達される(ステップ814)。
【0048】
サーバ16のオブジェクト20は、第1の実施の形態と同様に、受理したデータIDと、ステップ813にて記憶された、注文データと関連付けられたデータIDとを照合し(ステップ815)、これらが一致した場合には、登録要求がセッションオブジェクト817に伝達される(ステップ817)。つまり、この場合には、ステップ814の要求が適切なものと判断され、さらに処理が進行する。
【0049】
第2の実施の形態においては、照合の後、照合に利用したデータID(データID=「aaaa」)を移動し、注文データと関連付けて、確認済IDとして、データ記憶部18に記憶する(ステップ816および符号820参照)。確認済IDは、クライアントから伝達されたデータIDとの初期的な照合(たとえば、図8のステップ815)には利用されず、後述するように、初期的な照合が失敗した場合に実行される二次的な照合に利用される。
【0050】
登録要求の伝達(ステップ817)に応答して、セッションオブジェクト22は、登録確認画面を生成するための登録データと、当該ステップ317のリクエストに対して一意的となるデータIDとをオブジェクト20に返す(ステップ818)。したがって、ユーザ側に確認を求める確認データとして、上記登録データが、そのデータIDとともに、クライアントマシン14に伝達される(ステップ819)。図8に示していないが、第1の実施の形態と同様に、この登録データのデータIDも、データ記憶部18に記憶され、次のクライアントマシン14からのアクセスの際の照合に利用される。
【0051】
図8において、ユーザのクライアントマシン14の操作による確認ボタンのオン(ステップ814参照)が、ダブルクリックであった場合を考える。この場合には、図9(a)に示すように、同じ確認要求およびデータID(データID=「aaaa」)が、再度、サーバに伝達される(ステップ901)。オブジェクト900は、受理したデータIDと、データ記憶部18に記憶された、注文データと関連付けられたデータIDとを初期的に照合する(ステップ902)。しかしながら、図8のステップ816において、照合に利用したデータIDが移動され、確認済IDとして記憶されているため、ステップ902において、受理したデータIDと同一のデータIDが存在しない。この場合に、オブジェクト20は、受理したデータIDと、確認済IDとを二次的に照合する(ステップ903)。
【0052】
図9(a)の例では、確認済IDとして「aaaa」が記憶されているため、同一のデータIDが存在すると判断される。確認済IDに、受理したデータIDと同一のものがある場合には、オブジェクト20は、クライアント14からの要求を無視する(符号904参照)。
その一方、図9(b)に示すように、初期的な照合および二次的な照合(確認済IDとの照合)においても、受理したデータIDと同一のデータIDが、データ記憶部18中に見出せなかった場合には(ステップ911〜913参照)、オブジェクト20は、エラーメッセージを含む画像(エラーメッセージ画像)を、クライアント14に伝達する。
【0053】
このように、第2の実施の形態によれば、初期的な照合および二次的な照合により、ダブルクリックによる要求であるか、他の不適切な要求であるかを判断することができ、要求の態様に応じた適切な処理(たとえば、無視或いはエラーメッセージの送付)を実行することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0054】
【発明の効果】
本発明によれば、ユーザが参照している画面の情報と、処理対象となった情報とが一致し、かつ、ダブルクリックや複数画面を開いているときにも矛盾なく、ユーザのリクエストに応答することができる。
【図面の簡単な説明】
【図1】 図1は、本発明の第1の実施の形態にかかるサーバを含むシステムの概略を示すブロックダイヤグラムである。
【図2】 図2は、本実施の形態にかかる手法を用いたサーバによる処理の概略を示す図である。
【図3】 図3は、本実施の形態にかかるクライアントマシンおよびサーバにて実行される処理の例を示すフローチャートである。
【図4】 図4は、本実施の形態にかかるクライアントマシンおよびサーバにて実行される処理の例を示すフローチャートである。
【図5】 図5は、本実施の形態にかかる画面遷移の例を示す図である。
【図6】 図6は、本実施の形態において、複数のデータ(画面)を保持する場合の処理の一例を示すフローチャートである。
【図7】 図7は、複数のデータ(画面)を保持する場合の処理の一例を示すフローチャートである。
【図8】 図8は、第2の実施の形態にかかるクライアントマシンおよびサーバにて実行される処理の例を示すフローチャートである。
【図9】 図9は、クライアントマシンおよびサーバにて実行される処理の例を示すフローチャートである。
【符号の説明】
14 クライアントマシン
16 サーバ
20 オブジェクト
22 セッションオブジェクト
[0001]
[Technical field to which the invention belongs]
The present invention relates to a session management technique in a web system.
[0002]
[Prior art]
The HTTP protocol is a connectionless communication technique that does not maintain a state and that does not require securing or opening a communication path. For this reason, a series of requests and responses related to product purchases, such as an order entry screen, an order specification and an order confirmation screen in response to this, and a registration confirmation screen in response to confirmation input, are sent from the same client. It is known to use “Http Session” (session key) in order to determine whether the client is a client and to grasp the state of the client.
[0003]
In this method, the server side holds client-specific information (session key), and returns a response with a client-specific session key attached to a request from the client. By adding the session key to a client request, the server can determine from which client the request is made.
[0004]
For example, in Patent Document 1, however, various problems may occur because it is stateless and connectionless. For example, Patent Document 1 proposes a technique for managing session time and determining whether a screen transition is within a predetermined time in order to prevent impersonation of another person even when the terminal is separated from a terminal for a long period of time. Has been.
[0005]
[Patent Document 1]
JP 2002-229941 A
[0006]
[Problems to be solved by the invention]
In addition to the above-mentioned impersonation of others, the following problem may occur in the method using the session key.
For example, multiple browsers with the same session key can be created by the user opening a new window. In this case, there is a problem in that it cannot be determined from which browser screen the request is made and an appropriate response cannot be made.
[0007]
There is also a problem of double registration in the registration process. For example, double-clicking the confirmation button on the input content confirmation screen causes confirmation to be registered twice. In addition, after turning on the confirmation button, there is a possibility that the screen can be restored with the return button and the confirmation button can be turned on again. For example, in the case of confirmation of product purchase, the server may determine that the product has been purchased twice.
Conventionally, the following methods have been put into practical use as countermeasures for the above problems.
[0008]
(1) When the input button is turned on from the client, the server holds confirmation information. When the next button (for example, the registration button) is sent from the client, the registration process is executed. Delete the confirmation information. Thereby, the problem of double registration can be solved.
[0009]
(2) In order to change the screen, issue a token (Token) and return it to the client. The server executes processing in response to only the request with the latest token. This is almost the same as changing the session key for each screen transition.
[0010]
However, in the method (1), when a plurality of browsers are open in the same session, the data displayed on the client machine may be different from the data to be processed. For example, order a product on one screen, call a screen to confirm the input contents, then order another product on the other screen (the screen itself is the same as the above one screen) and confirm the input content Consider the state of calling the screen. Here, when the user turns on the registration button on the screen for confirming the contents of one (ordered earlier), the server may determine that the registration button from the other screen is on. That is, while the user is trying to purchase the product A, the product B that was going to be purchased on the other screen is registered.
In addition, even if the “Return” button is specified on the screen (change screen) for changing user information or the like, this is invalidated. For example, the same problem may occur in the display of the search result list.
[0011]
In the method (2), the “return” button of the browser cannot be used. When the “Return” button is pressed, subsequent operations are invalidated. Also, if multiple browsers are open in the same session and you turn off one of the screens, you will have to start again from login. In other words, if the screen with the current token disappears, there is a problem that the operation cannot be continued. In addition, if you double-click the registration button, an error will be displayed.
[0012]
The present invention responds to a user's request without any contradiction even when double-clicking or opening multiple screens when the information on the screen referred to by the user matches the information to be processed. It aims at providing the system which can do.
[0013]
[Means for Solving the Problems]
An object of the present invention is an information processing method for executing predetermined processing in response to a request from a client machine and returning the processing result as a response to the client machine. A step of generating a session object that holds a session ID relating to a series of requests and responses, and data for uniquely identifying the response data in the session object in order to respond to the request from the client machine Generating the ID, transmitting the response data and the data ID to the client machine, temporarily storing the data ID in a storage unit, and in the client machine, from the response data Different request A data ID associated with the response data is transmitted to the server, and the server collates the received data ID with the data ID temporarily stored in the storage means, and can appropriately collate In this case, in the session object, a step of generating response data in response to the request, a step of generating a new data ID for uniquely specifying the processed response data, and data once used for verification This is achieved by an information processing method comprising the step of not using the ID for collation in response to a request after the collation.
[0014]
According to the present invention, the data ID related to the response data created in response to the preceding request is stored in the storage unit of the server and transmitted to the client. The transmitted data ID is returned to the server together with other requests based on the response data from the client. The data ID returned to the server is collated with the data ID stored in the storage means. If the same data ID returned from the client to the server exists in the storage means, the processing is continued assuming that the data ID has been properly verified. The data ID once used for verification is not used for subsequent verification. Thereby, double registration can be prevented.
[0015]
The data ID is related to response data for a certain request. Therefore, when the client returns to the screen corresponding to the response data after the browser return button is pressed, the data ID associated with the response data is added to the request from the returned screen. Therefore, the server can process appropriately.
[0016]
That is, in the present invention, apart from the session ID for conventional session management, data ID is assigned and managed for each data held by the object. For this reason, the data ID can be assigned by paying attention only to the data change of the object without depending on the screen transition state or the HTTP request from the client machine. Accordingly, even when the screen is returned again after the double registration is prevented or the browser return button is pressed, appropriate processing in the server can be realized.
[0017]
The data ID is preferably generated randomly and uniquely so that it is difficult to guess.
[0018]
In a preferred embodiment, the step of preventing the data ID from being used for collation includes a step of erasing the temporarily stored data ID. In this embodiment, there may be provided a step of transmitting an error message to the client machine in response to the request when the verification cannot be properly performed.
[0019]
In another preferred embodiment, the step of not using for the collation moves the temporarily stored data ID and stores it in another area of the storage means as a confirmed data ID by the collation. Having steps. More preferably, the received data ID and the data ID temporarily stored in the storage means are collated, and when the collation cannot be properly performed, the received data ID and the confirmed data If there is a step of secondarily collating with the ID, and if the second collation can be properly performed, the request is ignored. On the other hand, if the second collation is not properly performed, , Sending an error message to the client in response to the request.
[0020]
Another object of the present invention is an information processing program for operating a computer to execute a predetermined process in response to a request from a client machine and to return the processing result as a response to the client machine. Generating a session object that holds a session ID related to a series of requests and responses from the client machine, and for responding to the request from the client machine, the response data and the response data are uniquely specified in the session object. Generating a data ID to be specified, transmitting the response data and the data ID to the client machine, temporarily storing the data ID in a storage unit, and transmitting the data ID in the client machine Is , Receiving different data IDs related to the response data and the data ID related to the response data, matching the received data ID with the data ID temporarily stored in the storage means, and appropriately matching If it is possible, in the session object, a step of generating response data in response to the request, a step of generating a new data ID for uniquely specifying the processed response data, and once used for verification This is achieved by a program that causes the computer to execute the step of not using the data ID for collation in response to a request after the collation.
[0021]
In a preferred embodiment, in the step of not using the data for verification, the computer is caused to execute the step of erasing the temporarily stored data ID. Here, when the verification is not properly performed, a step of transmitting an error message to the client machine in response to the request may be executed by the computer.
[0022]
In another preferred embodiment, in the step of not using for collation, the temporarily stored data ID is moved and stored in another area of the storage means as a confirmed data ID by collation Is executed by the computer. Further, the received data ID and the data ID temporarily stored in the storage means are collated, and when the collation cannot be properly performed, the received data ID and the confirmed data ID are If the computer executes the next verification step and the secondary verification is properly performed, the request is ignored, while the secondary verification is not properly performed. Preferably, the computer executes the step of sending an error message to the client in response to the request.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. FIG. 1 is a block diagram showing an outline of a system including a server according to the first embodiment of the present invention. In FIG. 1, client machines 14-1, 14-2,... And a server 16 are connected to the Internet 12. The server 16 can provide predetermined contents (for example, images) in response to various requests from the client machine 14. Needless to say, the present invention is not limited to a form in which the client machine 14 can be connected to the server 16 via the Internet 12, and it goes without saying that the present invention can be applied to a machine connected via an arbitrary network such as a LAN or WAN. In addition, the server 16 is provided with a data storage unit 18 for temporarily storing a data ID used when data is exchanged from the client machine 14.
[0024]
FIG. 2 is a diagram showing an outline of processing by the server 16 using the technique according to the present embodiment. Here, a state in which a command is transmitted from the client machine 14 to the server 16 by data exchange between the client machine 14 and the server 16 and the screen is changed in the client machine 14 is shown.
[0025]
In FIG. 2, registration contents indicating that the order contents are registered from the order input screen 201 for specifying the goods and ordering the specified goods through the order content confirmation screen 202 for confirming the order contents in the product purchase site. Transition to the confirmation screen 203 is made. When the servlet object 20 starts a session with the client machine 14, the server 16 generates a session object 22 (for example, session ID (SID) = YYZZX), and when the session object 22 changes data, A data ID is assigned, and a unique data ID is transmitted to the client machine 14 together with the data. The data ID is randomly and uniquely assigned so that estimation is impossible or difficult.
[0026]
When the user refers to the order input screen on the display device of the client machine 14 and selects a certain product, this is transmitted to the server 16 (see arrow 211). As a result of processing by the server 16, necessary data is obtained. An input content confirmation screen 202 is displayed on the display device of the client machine 14 given to the client machine 14 (see arrow 212). Next, when a button or the like indicating content confirmation is designated by the operation of the input device by the user, this is transmitted to the server 16 (see arrow 213). By repeating the data exchange (see arrows 213 and 214), the server 16 registers the product purchased by the user.
[0027]
FIG. 3 is a flowchart showing an example of processing executed by the client machine 14 and the server 16 according to the present embodiment. Here, the processing executed for the screen transition shown in FIG. 2 is shown. Upon access from the client machine 14 (step 301), in the server 16, the object 20 generates a session object 22 for a session with the client machine 14 (step 302). The session object 22 issues a session ID so that the client machine 14 can be identified. This is held until the session with the client machine 14 ends.
[0028]
It is considered that an order input screen is displayed on the display device of the client machine 14 by data exchange between the client machine 14 and the server 16. On the order input screen, for example, a plurality of product names are listed, and the product is specified by clicking a button associated with one of the listed product names.
[0029]
Here, when a user designates a certain product and turns on a button associated with the product, data indicating that the order input button is turned on and predetermined other data (data ID) are input to the server. It is transmitted to 16 objects 20 (step 303). Actually, the data ID and the parameter corresponding to the designated product number are added to the method call (request) called “list selection” of the object from the client machine, and given to the server 16. This data ID will be described in detail after step 311.
[0030]
The object 20 of the server 16 transmits the request to the session object 22 after necessary processing (also described in detail with reference to step 311 and subsequent steps) (step 304). The session object 22 generates order data for generating the input content confirmation screen and a data ID that is unique to the request in step 304 and returns it to the object 20 (step 311). Accordingly, the order data is transmitted to the client machine 14 together with the data ID (confirmation ID) as confirmation data for requesting confirmation from the user (step 312). This data ID is stored in the data storage unit 18 in association with the order data (step 313).
[0031]
When the confirmation button is turned on by the user operating the input device with reference to the input content confirmation screen on the display device of the client machine 14, a request “confirmation request” is transmitted in step 312. The data ID is added and transmitted to the server 16 (step 314). The server 18 collates the received data ID with the data ID stored in the data storage unit 18 in association with the order data (step 315). If they match, the data ID in the data storage unit 18 is deleted (step 316), and a registration request is transmitted to the session object 22 (step 317).
[0032]
The session object 22 returns registration data for generating a registration confirmation screen and a data ID that is unique to the request in Step 317 to the object 20 (Step 318). Therefore, the registration data is transmitted to the client machine 14 together with the data ID as confirmation data for requesting confirmation from the user (step 319). That is, the response data and a new data ID that uniquely identifies the response data are given to the client machine 14. Although not shown in FIG. 3, the data ID of this registration data is also stored in the data storage unit 18 and is used for collation when accessed from the next client machine 14.
[0033]
Here, it is assumed that the confirmation button is turned on twice in a state where a screen based on the order data (input content confirmation screen) is displayed on the client machine. For example, a case where a single-click operation of a mouse is sufficient for a double-click operation corresponds to this. As shown in FIG. 4, at this time, when the first confirmation button is turned on, the registration request and the data ID given together with the previous order data are transmitted to the object 20. This is the same as step 314 in FIG. Accordingly, the object 20 refers to the data storage unit 18 and collates the data ID (step 315), and erases the data after the collation (step 316). Since the collation of the data ID has been completed successfully (that is, the data ID exists), the registration request is transmitted to the session object (see step 317 in FIG. 3).
[0034]
On the other hand, when a registration request and a data ID are given to the object 20 by turning on the second confirmation button (step 401), the corresponding data ID in the data storage unit 18 has already been deleted. The verification fails (step 402). Therefore, the request based on the second confirmation button being turned on is ignored thereafter (see step 403). Alternatively, in response to the request in step 401, the object 20 transmits an image including an error message (error message image).
[0035]
As described above, according to the present embodiment, in response to a request (request) of the client machine 14, the data (confirmation data) and the data ID responding to the request are returned to the client machine 14, The data ID associated with the confirmation data is assigned to the next request related to the responding data and transmitted. The server 16 can specify a request from the user by holding this data ID.
[0036]
Further, by deleting the data ID after the collation, even if the same request and data ID are transmitted to the server 16 by double clicking, the request can be ignored. This makes it possible to prevent double registration by double-clicking, multiple screen display, and the like.
[0037]
Also, according to the present embodiment, it is possible to hold a plurality of data (screens) in the same session and execute appropriate processing for each. FIG. 5 is a diagram illustrating an example of such a screen transition. In FIG. 5, the user transitions the screen in the order of the order input screen 501, the input content confirmation screen 502, and the registration content confirmation screen 503 by inputting a request (see reference numerals 521 to 524) at the product purchase site. . This corresponds to the screens 201 to 203 in FIG. On the other hand, for example, by opening a new window, another order input screen 511 is displayed, a request is input from the order input screen (see reference numeral 531), and the request and response are repeated (see reference numerals 532 to 534). The screen transition is made to another input content confirmation screen 512 and a registration content confirmation screen 513. In the present embodiment, it is possible to appropriately transition the screens of each of them and to register user inputs appropriately.
[0038]
6 and 7 are flowcharts showing an example of processing when a plurality of data (screens) are held.
First, the session object 22 is generated in the server 16 by the access from the client machine 14 (step 600a) (step 600b). When the order ID screen request from the client machine 16 and the data ID given in the response from the previous server are transmitted to the object 20 of the server 16, as described in steps 315 and 316 of FIG. The data ID is collated and deleted (not shown), and then the order entry screen request is transmitted to the session object 22 (step 602).
[0039]
The session object 22 provides the object 20 with data (screen data for generating an order entry screen) in response to the request and a data ID (for example, data ID = aaa) that is unique to the request. return. Thereby, the screen data and the data ID (= aaaa) are transmitted to the client machine (step 603). The data ID (= aaaa) is stored in the data storage unit 18 (step 604).
[0040]
On the other hand, when the second order entry screen request is transmitted to the object 20 together with the data ID, for example, by opening a new window in the same session (step 611), the verification of the data ID and the deletion of the data ID are performed. After this (not shown), this is communicated to the session object 22. Here, it is considered that the data ID is appropriately verified. Therefore, the second order entry screen request is also transmitted to the session object 22 (step 612).
[0041]
The session object 22 sends data (screen data for generating an order entry screen) in response to the request and a data ID (for example, data ID = bbbb) unique to the request to the object 20. return. Thereby, the screen data and the data ID (= bbbb) are transmitted to the client machine (step 613). The data ID (= bbbb) is stored in the data storage unit 18 (step 614). Therefore, the second order entry screen can be displayed on the display device of the client machine 14 separately from the order entry screen in response to the previous request.
[0042]
When the user refers to the (first) order entry screen and turns on the button associated with the desired product, the data indicating that the button is turned on and the data ID (= aaa) given in step 603 are It is sent to the server 16 (step 605). The object 20 collates and deletes the data ID (because data collation is appropriately performed in this case), and an order input request is given to the session object 22 (step 608). In response to this, the session object 22 transmits the order data for generating the input content confirmation screen and the corresponding data ID (for example, data ID = cccc) to the client machine 14 via the object 20. (Step 609). Again, the data ID (= cccc) is stored in the data storage unit 18 (step 610). Also in this case, the response data and a new data ID that uniquely identifies the response data are given to the client machine 14. In this way, when the data ID is added to the request and transmitted to the server, one of the screen transitions (reference numerals 501 to 503 in FIG. 5) can be appropriately executed.
[0043]
On the other hand, when the user refers to the second order input screen and turns on the button associated with the desired product, the request and the data ID (= bbbb) given in the previous step 613 are also stored in the server 16. (Step 615). Thereafter, verification and deletion of the data ID (= bbbb), transmission of the second order data in response to the second order input in the session object, and transmission of the corresponding data ID (= dddd), etc. are executed (step) 616-620). These are the same as steps 516 to 520 in FIG. 5 described above except that the data ID is different. In this way, the other screen transition (reference numerals 511 to 513 in FIG. 5) can also be appropriately executed.
[0044]
As described above, according to the present embodiment, the request from the client machine is issued by issuing and storing the data ID, collating the data ID from the client machine with the stored data ID, and deleting the data ID after the collation. In response to this, the necessary processing (for example, data registration and screen transition) is executed. Therefore, even when there are two requests (for example, a data registration request) from the same screen, appropriate processing can be executed only in accordance with the previous request. In addition, even when the same screen is simultaneously held in the same session and any request is made on each screen, it is possible to execute an appropriate process in response to each request.
[0045]
Next, the second embodiment of the present invention will be described. Also in the system according to the second embodiment, as shown in FIG. 1, the client machine 14 and the server 16 are connected to the Internet, and the server 16 performs predetermined requests for various requests from the client machine 14. Content can be provided.
[0046]
In the first embodiment, after collation is completed, the data ID in the data storage unit 18 is deleted, thereby preventing execution of processing in response to a duplicate request. However, if the data ID is deleted, it cannot be determined whether the request is due to a double click or is completely different. Therefore, only a uniform response, such as transmitting an error message image, was possible. On the other hand, in the second embodiment, the request given to the server 16 by double-clicking is ignored, and an error message image can be transmitted to the client 14 for other inappropriate requests. It is configured.
[0047]
FIG. 8 is a flowchart illustrating an example of processing executed by the client machine 14 and the server 16 according to the second embodiment. 8, steps 801 to 804 and steps 811 to 815 correspond to steps 301 to 304 and steps 311 to 315 in FIG. 3, respectively. After the confirmation data and confirmation ID are given to the client 14 (see step 812), when the confirmation button is turned on by the operation on the client machine 14 by the user, the data received in step 812 together with the confirmation request. An ID (eg, data ID = “aaaa”) is transmitted from the client 14 to the server 16 (step 814).
[0048]
As in the first embodiment, the object 20 of the server 16 collates the received data ID with the data ID associated with the order data stored in step 813 (step 815). If they match, a registration request is transmitted to the session object 817 (step 817). That is, in this case, it is determined that the request in step 814 is appropriate, and the processing further proceeds.
[0049]
In the second embodiment, after the collation, the data ID used for the collation (data ID = “aaaa”) is moved and associated with the order data and stored in the data storage unit 18 as a confirmed ID ( Step 816 and reference 820). The confirmed ID is not used for the initial verification (eg, step 815 in FIG. 8) with the data ID transmitted from the client, and is executed when the initial verification fails as will be described later. Used for secondary verification.
[0050]
In response to the transmission of the registration request (step 817), the session object 22 returns to the object 20 registration data for generating a registration confirmation screen and a data ID that is unique to the request in step 317. (Step 818). Accordingly, the registration data is transmitted to the client machine 14 together with the data ID as confirmation data for requesting confirmation from the user side (step 819). Although not shown in FIG. 8, as in the first embodiment, the data ID of this registration data is also stored in the data storage unit 18 and used for verification at the next access from the client machine 14. .
[0051]
In FIG. 8, a case is considered where the confirmation button is turned on (see step 814) by the user's operation on the client machine 14 is a double click. In this case, as shown in FIG. 9A, the same confirmation request and data ID (data ID = “aaaa”) are transmitted again to the server (step 901). The object 900 initially collates the received data ID with the data ID associated with the order data stored in the data storage unit 18 (step 902). However, since the data ID used for collation is moved and stored as the confirmed ID in step 816 in FIG. 8, there is no data ID identical to the accepted data ID in step 902. In this case, the object 20 secondarily collates the received data ID with the confirmed ID (step 903).
[0052]
In the example of FIG. 9A, “aaa” is stored as the confirmed ID, so it is determined that the same data ID exists. If the confirmed ID is the same as the accepted data ID, the object 20 ignores the request from the client 14 (see reference numeral 904).
On the other hand, as shown in FIG. 9B, in the initial collation and the secondary collation (collation with the confirmed ID), the same data ID as the received data ID is stored in the data storage unit 18. If the object 20 cannot be found (see steps 911 to 913), the object 20 transmits an image including an error message (error message image) to the client 14.
[0053]
Thus, according to the second embodiment, it is possible to determine whether the request is a double-click request or another inappropriate request by the initial verification and the secondary verification, Appropriate processing (for example, ignoring or sending an error message) according to the request mode can be executed.
The present invention is not limited to the above embodiments, and various modifications can be made within the scope of the invention described in the claims, and these are also included in the scope of the present invention. Needless to say.
[0054]
【The invention's effect】
According to the present invention, the information on the screen that the user is referring to matches the information to be processed, and responds to the user's request without conflict even when double-clicking or opening multiple screens. can do.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an outline of a system including a server according to a first embodiment of the present invention.
FIG. 2 is a diagram showing an outline of processing by a server using the technique according to the present embodiment.
FIG. 3 is a flowchart illustrating an example of processing executed by a client machine and a server according to the present embodiment.
FIG. 4 is a flowchart illustrating an example of processing executed by the client machine and the server according to the present embodiment.
FIG. 5 is a diagram showing an example of screen transition according to the present embodiment.
FIG. 6 is a flowchart illustrating an example of processing when a plurality of data (screens) is held in the present embodiment.
FIG. 7 is a flowchart illustrating an example of processing when a plurality of data (screens) is held.
FIG. 8 is a flowchart illustrating an example of processing executed by a client machine and a server according to the second embodiment.
FIG. 9 is a flowchart illustrating an example of processing executed by a client machine and a server.
[Explanation of symbols]
14 Client machine
16 servers
20 objects
22 Session object

Claims (2)

クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送する情報処理方法であって、
サーバにおいて、クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、
前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、
前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、
前記クライアントマシンにおいて、前記応答データに基づく他のリクエストに、前記応答データに関連したデータIDを付与して送信するステップと、
前記サーバにおいて、前記クライアントコンピュータから受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該他のリクエストに応答した第2の応答データを生成するステップと、
前記第2の応答データを一意的に特定する新たなデータIDを生成するステップと、
いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを備え、
前記照合に利用しないようにするステップが、
前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを有し、
さらに、ダブルクリックによる要求であるか、他の不適切な要求であるかを判断するために、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記記憶手段の他の領域に記憶された確認済のデータIDとを二次的に照合するステップと、
適切に二次的照合ができた場合には、前記ダブルクリックによる要求と判断して、前記他のリクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記他の不適切な要求であると判断して、前記他のリクエストに応答して、前記クライアントにエラーメッセージを送信するステップと、を備えたことを特徴とする情報処理方法。
An information processing method for executing a predetermined process in response to a request from a client machine and returning a processing result as a response to the client machine,
Generating a session object that holds a session ID for a series of requests and responses from a client machine at the server;
Generating response data and a data ID uniquely identifying the response data in the session object in order to respond to a request from the client machine;
Transmitting the response data and the data ID to the client machine, and temporarily storing the data ID in a storage unit;
At the client machine, sending another request based on the response data with a data ID associated with the response data,
In the server, the data ID received from the client computer is collated with the data ID temporarily stored in the storage unit, and when the collation can be appropriately performed, the session object responds to the other request. Generating second response data;
Generating a new data ID that uniquely identifies the second response data;
A step of preventing the data ID once used for verification from being used for verification in response to a request after the verification,
The step of not using the collation is as follows:
Moving the temporarily stored data ID and storing it in a different area of the storage means as a verified data ID by verification;
Further, in order to determine whether the request is a double-click request or another inappropriate request, the received data ID is checked against the data ID temporarily stored in the storage means, and the check is made appropriately. If the received data ID and the confirmed data ID stored in another area of the storage means are secondarily verified,
If that could appropriately secondary verification, it is determined that the request by the double-click, ignores the other requests, while, if it can not adequately secondary verification, the other And determining that the request is inappropriate and transmitting an error message to the client in response to the other request.
クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送するためにサーバを動作させる情報処理プログラムであって、
クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、
前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、
前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、
前記クライアントマシンにおいて送信された、前記応答データに基づく他のリクエスト、および、前記応答データに関連したデータIDを受理するステップと、
前記クライアントマシンから受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該他のリクエストに応答した第2の応答データを生成するステップと、
前記第2の応答データを一意的に特定する新たなデータIDを生成するステップと、
いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを、前記コンピュータに実行させ、
前記照合に利用しないようにするステップが、
前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを有し、
さらに、ダブルクリックによる要求であるか、他の不適切な要求であるかを判断するために、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記記憶手段の他の領域に記憶された確認済のデータIDとを二次的に照合するステップと、
適切に二次的照合ができた場合には、前記ダブルクリックによる要求と判断して、前記他のリクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記他の不適切な要求であると判断して、前記他のリクエストに応答して、前記クライアントにエラーメッセージを送信するステップとを、前記コンピュータに実行させることを特徴とするプログラム。
An information processing program that operates a server to execute a predetermined process in response to a request from a client machine, and return a processing result as a response to the client machine,
Generating a session object that holds a session ID for a series of requests and responses from a client machine;
Generating response data and a data ID uniquely identifying the response data in the session object in order to respond to a request from the client machine;
Transmitting the response data and the data ID to the client machine, and temporarily storing the data ID in a storage unit;
Receiving another request based on the response data and a data ID associated with the response data transmitted at the client machine;
A second response in response to the other request in the session object when the data ID received from the client machine is collated with the data ID temporarily stored in the storage means and can be appropriately collated. Generating data; and
Generating a new data ID that uniquely identifies the second response data;
Causing the computer to execute the step of preventing the data ID once used for verification from being used for verification in response to a request after the verification,
The step of not using the collation is as follows:
Moving the temporarily stored data ID and storing it in a different area of the storage means as a verified data ID by verification;
Further, in order to determine whether the request is a double-click request or another inappropriate request, the received data ID is checked against the data ID temporarily stored in the storage means, and the check is made appropriately. If the received data ID and the confirmed data ID stored in another area of the storage means are secondarily verified,
If that could appropriately secondary verification, it is determined that the request by the double-click, ignores the other requests, while, if it can not adequately secondary verification, the other And causing the computer to execute the step of determining that the request is inappropriate and transmitting an error message to the client in response to the other request.
JP2003079722A 2003-03-24 2003-03-24 Information processing method and processing program Expired - Fee Related JP4257139B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003079722A JP4257139B2 (en) 2003-03-24 2003-03-24 Information processing method and processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003079722A JP4257139B2 (en) 2003-03-24 2003-03-24 Information processing method and processing program

Publications (2)

Publication Number Publication Date
JP2004287899A JP2004287899A (en) 2004-10-14
JP4257139B2 true JP4257139B2 (en) 2009-04-22

Family

ID=33293760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003079722A Expired - Fee Related JP4257139B2 (en) 2003-03-24 2003-03-24 Information processing method and processing program

Country Status (1)

Country Link
JP (1) JP4257139B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4878193B2 (en) * 2006-03-29 2012-02-15 富士通株式会社 Determination program, determination method, and determination apparatus
JP5994336B2 (en) * 2012-03-30 2016-09-21 日本電気株式会社 Information processing device

Also Published As

Publication number Publication date
JP2004287899A (en) 2004-10-14

Similar Documents

Publication Publication Date Title
US20240040006A1 (en) Provisioning multiple network resources
KR100261386B1 (en) A computerized resource name resolution mechanism
JP4493249B2 (en) Network system, server, timeout time information providing method, and program
CN1609873B (en) Method, apparatus, and user interface for managing electronic mail and alert messages
US6832366B2 (en) Application generator
JP4390405B2 (en) Computer system, service layer, policy cache function unit, and policy management device
WO2003091889A1 (en) Collaboration server, collaboration system, session management method thereof, and program
US20140181919A1 (en) System for secure enrollment and secure verification of network users by a centralized identification service
KR19990063477A (en) Schedule management system
JP2002245014A (en) System and method for transferring mobile agent for portable device and its program
JP4257139B2 (en) Information processing method and processing program
JP3713161B2 (en) Server and recording medium
JP2001306873A (en) Electronic transaction system
JP2000020464A (en) System for preserving picture setting parameter information
JP2001216262A (en) Server
JP2003058423A (en) Method, system, and program for access control
JP2004157837A (en) Progress management system and method, progress management computer program, storage medium, terminal equipment and server device
JP3771744B2 (en) Method for joint editing of shared information stored in a computer for group work, and program recording medium for joint editing of shared information stored in a computer for group work
JP7045969B2 (en) Information management system
JPH10320186A (en) Software specification checking server, software developing method, software development system, recording medium recording software specification checking program, and recording medium recording software developing program
JP2004295260A (en) Distribution setting supporting method for specific information and method for providing specific information
JP2000047971A (en) Server and client system device with user certifying function, user certifying method, server with user certifying function, and computer-readable recording medium
JP4428959B2 (en) Event management server, event management system, event management method, and event management program
JP2002236833A (en) Lodging reservation system and ticket reserving system
JP2002358265A (en) Electronic communication system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081216

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090127

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090202

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150206

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees