JP2004287899A - Information processing method and processing program - Google Patents

Information processing method and processing program Download PDF

Info

Publication number
JP2004287899A
JP2004287899A JP2003079722A JP2003079722A JP2004287899A JP 2004287899 A JP2004287899 A JP 2004287899A JP 2003079722 A JP2003079722 A JP 2003079722A JP 2003079722 A JP2003079722 A JP 2003079722A JP 2004287899 A JP2004287899 A JP 2004287899A
Authority
JP
Japan
Prior art keywords
data
response
request
client machine
collation
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.)
Granted
Application number
JP2003079722A
Other languages
Japanese (ja)
Other versions
JP4257139B2 (en
Inventor
Tsutomu Hosokawa
努 細川
Kotaro Suzumura
幸太郎 鈴村
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)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system by which the information of a screen referred by a user is matched with the information to be processed and the request of the user is responded without discrepancy even at the time of performing double clicking or opening a plurality of images. <P>SOLUTION: A session object 22 holding a session ID relating to a series of requests and responses from a client machine is generated, and response data and a data ID uniquely specifying them are generated in the session object 22 in order to respond to a specified request and are stored in a data storage part 18. At the time of receiving a different request from the response data and the data ID imparted to it from the client machine, the received data ID and a temporarily stored data ID are collated, and when they are appropriately collated, the session object 22 generates the response data responding to the request. Also, a new data ID specifying uniquely the response data after being processed is generated. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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 OF THE INVENTION
The present invention relates to a session management method in a web system.
[0002]
[Prior art]
The HTTP protocol is a stateless communication method that does not hold a state and does not require securing or opening a communication path. For this reason, a series of requests and responses related to product purchase, such as an order input screen, an order specification screen and an order confirmation screen in response to the order, and a registration confirmation screen in response to the confirmation input, are transmitted from the same client. It is known to use “HTTP Session” (session key) in order to determine that the client is the client and to grasp the state of the client.
[0003]
In this method, the server side holds client-specific information (session key), and gives a client-specific session key to a request from the client and returns a response. By adding the session key also to the client request, the server can determine which client has made the request.
[0004]
For example, Patent Literature 1, however, has various problems because it is stateless and connectionless. For example, Patent Literature 1 proposes a technology that manages session time and determines whether a screen transition is within a predetermined time, in order to prevent impersonation of another person even when the terminal is separated from the terminal for a long time. Have been.
[0005]
[Patent Document 1] JP-A-2002-229941
[0006]
[Problems to be solved by the invention]
In addition to the above-described impersonation of another person, the method using a session key may cause the following problems.
For example, when a user opens a new window, multiple browsers with the same session key may be created. In this case, there is a problem that it is impossible to determine which browser screen is the request from, and an appropriate response cannot be made.
[0007]
There is also a problem of double registration in the registration process. For example, when the confirmation button is double-clicked on the input content confirmation screen, the confirmation is registered twice. Further, after turning on the confirmation button, there is a possibility that the screen can be returned to the original state with the return button and the confirmation button can be turned on again. For example, when confirming the purchase of a product, the server may determine that the product was purchased twice.
Conventionally, the following methods have been put into practical use as measures against the above problems.
[0008]
(1) Upon receiving the ON of the input button from the client, the server retains the confirmation information, and upon receiving the ON of the button (for example, the registration button) transmitted from the client next, executes the registration processing, Delete the above confirmation information. Thereby, the problem of double registration can be solved.
[0009]
(2) Issue a token (Token) and return it to the client for the screen transition. The server executes processing in response to only the request to which the latest token has been assigned. 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, data displayed on the client machine may be different from data to be processed. For example, order a product on one screen, call a screen to confirm the input contents, and then order another product on the other screen (the screen itself is the same as the above one screen) and confirm the input contents. Consider the state where the screen is called. Here, when the user turns on the registration button on the screen for confirming the contents of one (ordered first), the server may determine that the registration button is on from the other screen. That is, while the user intends to purchase the product A, the product B that the user has purchased on the other screen is registered.
In addition, even if a “return” button is specified on a screen (change screen) for changing user information or the like, the button is invalidated. For example, a similar problem may occur in displaying a search result list.
[0011]
In the method (2), the "back" button of the browser cannot be used. Pressing the "return" button invalidates subsequent operations. Also, if multiple browsers are open in the same session and you erase one screen, you will have to restart from login. That is, if the screen containing the current token disappears, the operation cannot be continued. Furthermore, if you double-click the registration button, an error will be displayed.
[0012]
The present invention is to respond to a user's request without any inconsistency even when the information on the screen referred to by the user and the information to be processed match, and the user is double-clicking or opening multiple screens. The purpose is to provide a system that can perform
[0013]
[Means for Solving the Problems]
An object of the present invention is 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; and in the session object, response data and data uniquely identifying the response data in order to respond to a request from the client machine. Generating an ID, transmitting the response data and the data ID to the client machine, and temporarily storing the data ID in a storage unit. Different request Sending a data ID associated with the response data to the server, and comparing the received data ID with the data ID temporarily stored in the storage means in the server so that the data can be appropriately compared. Generating a response data in response to the request in the session object; generating a new data ID for uniquely identifying the processed response data; Preventing the ID from being used for matching in response to the request after the matching.
[0014]
According to the present invention, the data ID associated with the response data created in response to the preceding request is stored in the storage means of the server and transmitted to the client. The transmitted data ID is returned from the client to the server together with another request based on the response data. The data ID returned to the server is collated with the data ID stored in the storage unit. If the same data ID as the data ID returned from the client to the server exists in the storage means, it is determined that the data has been properly collated, and the process is continued. The data ID once used for collation is not used for subsequent collation. Thus, double registration can be prevented.
[0015]
Further, the data ID is related to response data to a certain request. Therefore, if the screen is returned to the screen corresponding to the response data again after the return button of the browser is pressed on the client, the data ID associated with the response data is added to the request from the returned screen. Therefore, the server can perform appropriate processing.
[0016]
That is, in the present invention, a data ID is assigned and managed for each data held by the object, separately from the conventional session ID for session management. For this reason, the data ID can be assigned not depending on the screen transition state or the HTTP request from the client machine and focusing only on the change of the data of the object. Thus, even when the screen is returned again after the double registration is prevented or the return button of the browser is pressed, appropriate processing in the server can be realized.
[0017]
It is desirable that the data ID is randomly and uniquely generated so that it is difficult to guess.
[0018]
In a preferred embodiment, the step of not using the data ID for collation includes the step of erasing the temporarily stored data ID. In this embodiment, the method may further include a step of transmitting an error message to the client machine in response to the request when the matching is not properly performed.
[0019]
In another preferred embodiment, the step of not using the data for the collation comprises moving the temporarily stored data ID and storing the data ID as a data ID confirmed by collation in another area of the storage unit. With steps. More preferably, the received data ID is compared with the data ID temporarily stored in the storage means. If the data ID is not properly matched, the received data ID and the confirmed data are compared. A step of secondary matching with the ID, and if the secondary matching is properly performed, the request is ignored, and if the secondary matching 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 executing a predetermined process in response to a request from a client machine, and operating a computer to 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; and responding to the request from the client machine, in the session object, uniquely identifying the response data and the response data. Generating a data ID to specify the data, 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 to the client machine. Is Receiving a different request from the response data and a data ID associated with the response data, collating the received data ID with the data ID temporarily stored in the storage unit, and appropriately collating the data ID. If successful, 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 identifying the processed response data, and once used for collation Making the computer execute the step of not using the data ID for the matching in response to the request after the matching.
[0021]
In a preferred embodiment, the step of erasing the temporarily stored data ID is performed by the computer in the step of not using the data ID for collation. Here, the step of transmitting an error message to the client machine in response to the request when the collation cannot be properly performed may be performed by the computer.
[0022]
In another preferred embodiment, in the step of not using the data ID for collation, the step of moving the temporarily stored data ID and storing the data ID as a data ID confirmed by collation in another area of the storage unit Is executed by the computer. Furthermore, the received data ID is compared with the data ID temporarily stored in the storage means. If the data ID cannot be properly compared, the received data ID and the confirmed data ID are compared. Next, the step of collating is performed by the computer, and if the secondary collation is properly performed, the request is ignored, while if the secondary collation is not properly performed, Transmitting the error message to the client in response to the request.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. FIG. 1 is a block diagram schematically showing 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 content (for example, an image) in response to various requests from the client machine 14. Of course, the present invention is not limited to the form in which the client machine 14 can be connected to the server 16 via the Internet 12, but it is needless to say that the present invention can be applied to a machine connected via an arbitrary network such as a LAN or WAN. Further, the server 16 is provided with a data storage unit 18 for temporarily storing a data ID used when data is transmitted / received from the client machine 14.
[0024]
FIG. 2 is a diagram illustrating an outline of processing by the server 16 using the method according to the present embodiment. Here, a state is shown in which a command is transmitted from the client machine 14 to the server 16 by exchanging data between the client machine 14 and the server 16, and a screen transition is made on the client machine 14.
[0025]
In FIG. 2, on the product purchase site, a registered content indicating that the order content has been registered, from an order input screen 201 for specifying the product and ordering the specified product, through an order content confirmation screen 202 for confirming the order content. The screen transitions to the confirmation screen 203. The server 16 generates a session object 22 (for example, session ID (SID) = YYZZX) when the servlet object 20 starts a session with the client machine 14, and when the session object 22 changes data, The data ID is numbered, and the unique data ID is transmitted to the client machine 14 together with the data. The data ID is randomly and uniquely assigned so that it is impossible or difficult to guess.
[0026]
The user refers to the order input screen on the display device of the client machine 14 and selects a certain product, which is transmitted to the server 16 (see arrow 211). As a result of the processing by the server 16, necessary data is obtained. The input content confirmation screen 202 is displayed on the display device of the client machine 14 (see arrow 212). Next, when a button or the like indicating confirmation of the content is designated by the user operating the input device, this is transmitted to the server 16 (see the arrow 213). By repeating the data transfer (see arrows 213 and 214), the server 16 registers the product purchased by the user.
[0027]
FIG. 3 is a flowchart illustrating an example of processing executed by the client machine 14 and the server 16 according to the present embodiment. Here, the processing executed in 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 maintained until the session with the client machine 14 ends.
[0028]
It is assumed that an order input screen is displayed on the display device of the client machine 14 due to the 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 attached to any of the listed product names.
[0029]
Here, when the user specifies a certain product and turns on a button associated with the product, data indicating that the order input button has been turned on and predetermined other data (data ID) are input to the server as input data. The information is transmitted to the 16 objects 20 (step 303). Actually, the data ID and the parameter corresponding to the designated product number are added to the call (request) of the method “select a list” of the object from the client machine, and the result is given to the server 16. This data ID will be described in detail in step 311 and thereafter.
[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 an input content confirmation screen and a data ID unique to the request in step 304, and returns these to the object 20 (step 311). Therefore, 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]
Referring to the input content confirmation screen on the display device of the client machine 14, when the user operates the input device to turn on the confirmation button, the request is transmitted to the request "confirmation request" 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 the registration request is transmitted to the session object 22 (step 317).
[0032]
The session object 22 returns the registration data for generating the registration confirmation screen and the data ID 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 asking the user for confirmation (step 319). That is, the response data and a new data ID for uniquely specifying the response data are given to the client machine 14. Although not shown in FIG. 3, the data ID of the registration data is also stored in the data storage unit 18 and is used for collation at the time of the next access from the client machine 14.
[0033]
Here, it is assumed that the confirmation button is turned on twice while a screen (input content confirmation screen) based on the order data is displayed on the client machine. For example, this corresponds to a case where a single click operation of the mouse is sufficient for a double click operation. 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 similar to step 314 in FIG. Therefore, the object 20 refers to the data storage unit 18 to collate the data ID (Step 315), and deletes the data after collation (Step 316). Since the data ID verification has been successfully completed (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 the registration request and the 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 collation 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) from the client machine 14, data (confirmation data) and a data ID responding to the request are returned to the client machine 14, and the The data ID associated with the confirmation data is attached to the next request related to the responded data and transmitted. The server 16 can specify the request from the user by holding the data ID.
[0036]
In addition, 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, display of multiple screens, and the like.
[0037]
Further, according to the present embodiment, it is possible to hold a plurality of data (screens) in the same session and execute an appropriate process for each of them. FIG. 5 is a diagram showing an example of such a screen transition. In FIG. 5, a user inputs a request (refer to reference numerals 521 to 524) on the product purchase site, and the screen is changed in the order of an order input screen 501, an input content confirmation screen 502, and a registered content confirmation screen 503. . This corresponds to each of 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 is changed to another input content confirmation screen 512 and a registered content confirmation screen 513. In the present embodiment, it is possible to appropriately make screen transitions and to appropriately register user inputs.
[0038]
FIG. 6 and FIG. 7 are flowcharts illustrating an example of a process when a plurality of data (screens) are stored.
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 data ID assigned in the order input screen request from the client machine 16 and the response from the previous server is transmitted to the object 20 of the server 16, as described in steps 315 and 316 of FIG. Then, the data ID is collated and erased (not shown), and then an order input screen request is transmitted to the session object 22 (step 602).
[0039]
The session object 22 stores, in the object 20, data responding to the request (screen data for generating an order input screen) and a data ID (for example, data ID = aaaa) 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, in the same session, when the second order input screen request is transmitted to the object 20 together with the data ID by, for example, opening a new window (step 611), the data ID is collated or the data ID is deleted. After this (not shown), this is communicated to the session object 22. Here, it is assumed that the data ID has been properly collated. Therefore, the second order entry screen request is also transmitted to the session object 22 (step 612).
[0041]
The session object 22 stores, in the object 20, data responding to the request (screen data for generating an order input screen) and a data ID (for example, data ID = bbbb) unique to the request. return. Thus, 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 input screen can be displayed on the display device of the client machine 14 separately from the order input screen responding to the previous request.
[0042]
When the user refers to the (first) order input screen and turns on the button associated with the desired product, the data indicating that the button is turned on and the data ID (= aaaa) previously given in step 603 are It is sent to the server 16 (step 605). The object 20 performs collation and deletion of the data ID (in this case, data collation is properly performed), 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). Here, 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 for uniquely specifying the response data are given to the client machine 14. In this way, by transmitting the request with the data ID added to the server, it is possible to appropriately execute one screen transition (reference numerals 501 to 503 in FIG. 5).
[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 stored in the server 16. (Step 615). Thereafter, collation 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) are performed (step). 616-620). These are the same as steps 516 to 520 of FIG. 5 described above except that the data ID is different. In this manner, the other screen transition (reference numerals 511 to 513 in FIG. 5) can be appropriately executed.
[0044]
As described above, according to the present embodiment, a request from a client machine is issued by issuing and storing a 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 the request, a necessary process (for example, data registration or 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, the same screen is simultaneously held in the same session, and even if any request is made on each screen, it is possible to execute appropriate processing in response to each request.
[0045]
Next, a second embodiment of the present invention will be described. Also in the system according to the second embodiment, as shown in FIG. 1, a client machine 14 and a server 16 are connected to the Internet, and the server 16 responds to various requests from the client machine 14 in accordance with predetermined requests. Content can be provided.
[0046]
In the first embodiment, after the end of the collation, the data ID in the data storage unit 18 is deleted, thereby preventing the execution of the process in response to the duplicated request. However, if the data ID is deleted, it cannot be determined whether the request is made by double-clicking or completely different. Therefore, only a uniform response such as transmitting an error message image was possible. On the other hand, in the second embodiment, a 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 the confirmation ID are given to the client 14 (see step 812), when the confirmation button is turned on by the user's operation on the client machine 14, the data received in step 812 is transmitted together with the confirmation request. The ID (for example, data ID = "aaa") is transmitted from the client 14 to the server 16 (step 814).
[0048]
The object 20 of the server 16 collates the received data ID with the data ID stored in step 813 and associated with the order data, as in the first embodiment (step 815). If they match, the registration request is transmitted to the session object 817 (step 817). That is, in this case, the request in step 814 is determined to be appropriate, and the process further proceeds.
[0049]
In the second embodiment, after the collation, the data ID (data ID = “aaaa”) used for the collation is moved and stored in the data storage unit 18 as a confirmed ID in association with the order data ( Step 816 and reference numeral 820). The confirmed ID is not used for initial collation with the data ID transmitted from the client (for example, step 815 in FIG. 8), and is executed when the initial collation fails, as described later. Used for secondary verification.
[0050]
In response to the transmission of the registration request (step 817), the session object 22 returns the registration data for generating the registration confirmation screen and the data ID unique to the request in step 317 to the object 20. (Step 818). Therefore, the registration data is transmitted to the client machine 14 together with the data ID as confirmation data for asking the user for confirmation (step 819). Although not shown in FIG. 8, similarly to the first embodiment, the data ID of the registration data is also stored in the data storage unit 18 and used for collation at the time of the next access from the client machine 14. .
[0051]
In FIG. 8, it is assumed that the user turns on the confirmation button by operating the client machine 14 (see step 814) by double clicking. In this case, as shown in FIG. 9A, the same confirmation request and data ID (data ID = “aaaa”) are transmitted to the server again (step 901). The object 900 initially collates the received data ID with the data ID stored in the data storage unit 18 and associated with the order data (step 902). However, in step 816 of FIG. 8, since the data ID used for collation has been moved and stored as the confirmed ID, there is no data ID identical to the received 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, since “aaaa” is stored as the confirmed ID, it is determined that the same data ID exists. When the confirmed ID includes the same data ID as the received 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. When the object 20 is not found (see steps 911 to 913), the object 20 transmits an image including an error message (error message image) to the client 14.
[0053]
As described above, 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 collation and the secondary collation, It is possible to execute appropriate processing (for example, ignoring or sending an error message) according to the mode of the request.
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, which 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 referred to by the user matches the information to be processed, and responds to the user's request without inconsistency even when double-clicking or opening multiple screens. can do.
[Brief description of the drawings]
FIG. 1 is a block diagram schematically showing a system including a server according to a first embodiment of the present invention.
FIG. 2 is a diagram schematically illustrating a process performed by a server using a method according to the embodiment;
FIG. 3 is a flowchart illustrating an example of processing executed by a client machine and a server according to the embodiment;
FIG. 4 is a flowchart illustrating an example of processing executed by the client machine and the server according to the embodiment;
FIG. 5 is a diagram illustrating an example of screen transition according to the embodiment;
FIG. 6 is a flowchart illustrating an example of a process in a case where a plurality of data (screens) is stored in the present embodiment.
FIG. 7 is a flowchart illustrating an example of a process when a plurality of data (screens) are stored.
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 (10)

クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送する情報処理方法であって、
サーバにおいて、クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、
前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、
前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、
前記クライアントマシンにおいて、前記応答データからの異なるリクエストに、当該応答データに関連したデータIDを付与して送信するステップと、
前記サーバにおいて、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該リクエストに応答した応答データを生成するステップと、
処理後の応答データを一意的に特定する新たなデータIDを生成するステップと、
いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを備えたことを特徴とする情報処理方法。
An information processing method of executing a predetermined process in response to a request from a client machine, and returning a process result as a response to the client machine,
At the server, generating a session object holding a session ID for a series of requests and responses from the client machine;
Generating response data and a data ID uniquely identifying the response data in the session object 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;
A step of, in the client machine, transmitting a different request from the response data with a data ID associated with the response data;
A step of comparing the received data ID with the data ID temporarily stored in the storage means in the server, and generating response data in response to the request in the session object when the data ID can be appropriately compared; When,
Generating a new data ID that uniquely identifies the processed response data;
Preventing the data ID once used for matching from being used for matching in response to a request after the matching.
前記照合に利用しないようにするステップが、
前記一時的に記憶したデータIDを消去するステップを有することを特徴とする請求項1に記載の情報処理方法。
The step of not using for the matching,
2. The information processing method according to claim 1, further comprising erasing the temporarily stored data ID.
前記適切に照合できなかった場合に、前記リクエストに応答して、前記クライアントマシンにエラーメッセージを送信するステップを備えたことを特徴とする請求項2に記載の情報処理方法。3. The information processing method according to claim 2, further comprising transmitting an error message to the client machine in response to the request when the collation fails. 前記照合に利用しないようにするステップが、
前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを有することを特徴とする請求項1に記載の情報処理方法。
The step of not using for the matching,
2. The information processing method according to claim 1, further comprising the step of moving the temporarily stored data ID and storing the data ID as a data ID confirmed by collation in another area of the storage unit.
さらに、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記確認済のデータIDとを二次的に照合するステップを備え、かつ、
適切に二次的照合ができた場合には、前記リクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記リクエストに応答して、前記クライアントにエラーメッセージを送信するステップを備えたことを特徴とする請求項4に記載の情報処理方法。
Furthermore, the received data ID is compared with the data ID temporarily stored in the storage means. If the data ID cannot be properly compared, the received data ID and the confirmed data ID are compared. Next matching step, and
If the secondary match is successful, the request is ignored, while if the secondary match is not successful, an error message is sent to the client in response to the request. The information processing method according to claim 4, further comprising the step of:
クライアントマシンからのリクエストに応答して、所定の処理を実行して、処理結果を応答として、当該クライアントマシンに返送するためにサーバを動作させる情報処理プログラムであって、
クライアントマシンからの一連のリクエストおよび応答に関するセッションIDを保持するセッションオブジェクトを生成するステップと、
前記クライアントマシンからのリクエストに応答するために、前記セッションオブジェクトにおいて、応答データと、当該応答データを一意的に特定するデータIDとを生成するステップと、
前記応答データとデータIDとを前記クライアントマシンに伝達するとともに、当該データIDを、記憶手段に一時的に記憶するステップと、
前記クライアントマシンにおいて送信された、前記応答データからの異なるリクエストに、および、応答データに関連したデータIDを受理するステップと、
受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合できた場合に、前記セッションオブジェクトにおいて、当該リクエストに応答した応答データを生成するステップと、
処理後の応答データを一意的に特定する新たなデータIDを生成するステップと、
いったん照合に利用されたデータIDを、当該照合以後のリクエストに応答した照合に利用しないようにするステップとを、前記コンピュータに実行させることを特徴とするプログラム。
An information processing program for executing a predetermined process in response to a request from a client machine, and operating a server to return a process result as a response to the client machine,
Generating a session object holding a session ID for a series of requests and responses from the client machine;
Generating response data and a data ID uniquely identifying the response data in the session object 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 a different request from the response data sent at the client machine and a data ID associated with the response data;
Collating the received data ID with the data ID temporarily stored in the storage unit, and, if the collation is properly performed, generating response data in response to the request in the session object;
Generating a new data ID that uniquely identifies the processed response data;
Causing the computer to execute the step of not using the data ID once used for the matching in the matching in response to the request after the matching.
前記照合に利用しないようにするステップにおいて、
前記一時的に記憶したデータIDを消去するステップを、前記コンピュータに実行させることを特徴とする請求項6に記載のプログラム。
In the step of not using for the collation,
The program according to claim 6, wherein the program causes the computer to execute the step of deleting the temporarily stored data ID.
前記適切に照合できなかった場合に、前記リクエストに応答して、前記クライアントマシンにエラーメッセージを送信するステップを、前記コンピュータに実行させることを特徴とする請求項7に記載のプログラム。The computer-readable storage medium according to claim 7, wherein the computer is caused to execute a step of transmitting an error message to the client machine in response to the request when the collation is not properly performed. 前記照合に利用しないようにするステップにおいて、
前記一時的に記憶したデータIDを移動させ、照合による確認済のデータIDとして、前記記憶手段の他の領域に記憶するステップを、前記コンピュータに実行させることを特徴とする請求項6に記載のプログラム。
In the step of not using for the collation,
7. The computer according to claim 6, further comprising: causing the computer to execute the step of moving the temporarily stored data ID and storing the temporarily stored data ID as a confirmed data ID in another area of the storage unit. program.
さらに、受理したデータIDと、前記記憶手段に一時的に記憶したデータIDとを照合し、適切に照合ができなかった場合に、前記受理したデータIDと、前記確認済のデータIDとを二次的に照合するステップを、前記コンピュータに実行させ、かつ、
適切に二次的照合ができた場合には、前記リクエストを無視し、その一方、適切に二次的照合ができなかった場合には、前記リクエストに応答して、前記クライアントにエラーメッセージを送信するステップを、前記コンピュータに実行させることを特徴とする請求項9に記載のプログラム。
Furthermore, the received data ID is compared with the data ID temporarily stored in the storage means. If the data ID cannot be properly compared, the received data ID and the confirmed data ID are compared. Causing the computer to perform the following collating step; and
If the secondary match is successful, the request is ignored, while if the secondary match is not successful, an error message is sent to the client in response to the request. The program according to claim 9, wherein the program causes the computer to execute the step of:
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 true JP2004287899A (en) 2004-10-14
JP4257139B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265291A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Input/output screen generating program, method and server machine
JP2013210771A (en) * 2012-03-30 2013-10-10 Nec Corp Information processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265291A (en) * 2006-03-29 2007-10-11 Fujitsu Ltd Input/output screen generating program, method and server machine
JP2013210771A (en) * 2012-03-30 2013-10-10 Nec Corp Information processing device

Also Published As

Publication number Publication date
JP4257139B2 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US20050033656A1 (en) Collaboration system suitable for on-line shopping
TWI233732B (en) Collaboration server, collaboration system, and session management method
US20020194314A1 (en) Application generator
JP2002358206A (en) Computer system, service layer, policy cache function part and policy management device
EP3251048A1 (en) Executing an operation over file repositories located in different authentication domains using a representational state transfer (rest)-compliant client
JP2003296210A (en) Method and device for generating profile setting file
JP4257139B2 (en) Information processing method and processing program
US7840640B2 (en) Mail exchange between users of network game
JP2001306873A (en) Electronic transaction system
JP2004258955A (en) Method for receiving order for digital image processing and program for ordering digital image processing
JP2000020464A (en) System for preserving picture setting parameter information
JP2007193549A (en) Method and system for managing partial editing of shared file
JP2004343416A (en) Image forming apparatus
JP3649769B2 (en) Switching device for information processing system
JP2003058423A (en) Method, system, and program for access control
US20050108342A1 (en) Management of account information for mail exchange
JP3537338B2 (en) Web computing server system
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
WO2021153348A1 (en) Program and communication system
JP2002342286A (en) Electronic information management system and server and client
JP2004102358A (en) Message switching system
JP2000047971A (en) Server and client system device with user certifying function, user certifying method, server with user certifying function, and computer-readable recording medium
JP3005567B1 (en) Pseudo workstation control system and client / server system
JP2005011085A (en) Query/answer management system and program
JP2008140016A (en) Web system and display data processing method

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