(57)【特許請求の範囲】
【請求項１】
オンライン取引を実行する方法であって、
単一のウェブセッションの中で、
第1のウェブサーバにおいてユーザの認証を実行するステップと、
前記第1のウェブサーバから、第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページを前記ユーザに提供するステップと、
前記ユーザによって入力されたユーザ入力変数を識別するユーザ入力を前記第1のウェブサーバにおいて受信するステップと、
前記ユーザと前記第1のウェブサーバおよび前記第2のウェブサーバの1つまたは両方との間の取引の完了の前に、前記第1のウェブサーバと前記第2のウェブサーバとの間に第1の通信リンクを確立し、かつ、第1の通信リンク上で前記第1のウェブサーバから前記第２のウェブサーバに、前記ユーザ入力変数を含むユーザデータを安全に送信するステップとを備え、
前記ウェブサーバ間の取引データの安全な送信のために、前記取引の完了に続いて前記第1のウェブサーバと前記第2のウェブサーバとの間に第2の通信リンクを確立するステップと、
前記第2の通信リンク上で前記第2のウェブサーバから、前記第1のウェブサーバにおいて取引データを安全に受信するステップと
をさらに備える方法。
【請求項２】
第2の通信リンクを確立する前記ステップは、前記取引の完了に続いて直ちにリアルタイムで実行される、請求項1に記載の方法。
【請求項３】
前記ユーザが、前記第1のウェブサーバによって提供されたウェブページおよび前記第2のウェブサーバによって提供された第2のウェブページを介して、前記第1のウェブサーバおよび前記第2のウェブサーバのそれぞれと同時におよび独立して対話することができるようにするステップをさらに備え、前記第1のウェブサーバによって提供されたウェブページが、第1のウェブサーバによって提供された第1のウェブページであるか、又は、第1のウェブサーバによって提供された他のウェブページである、請求項1に記載の方法。
【請求項４】
前記第1のウェブサーバおよび前記第2のウェブサーバによって提供された前記ウェブページは、ブラウザの2つの別々のフレームの中に提供される、請求項3に記載の方法。
【請求項５】
前記第2のウェブサーバによって提供された前記ウェブページは、前記第2のウェブページである、請求項3に記載の方法。
【請求項６】
前記第2のウェブサーバにおいて前記ユーザの認証を実行するステップをさらに備える、請求項1に記載の方法。
【請求項７】
前記第1のウェブサーバにおいて、
前記第1の通信リンクを介して前記第2のウェブサーバから前記ユーザ入力変数を求める要求を受信するステップと、
前記第1の通信リンクを介して前記第2のウェブサーバに前記ユーザ入力変数を備えた応答メッセージを送信するステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記第1のウェブサーバにおいて、
前記応答メッセージを送信する前に前記要求を検証するステップ
をさらに備える、請求項7に記載の方法。
【請求項９】
前記第1のウェブサーバにおいて、
前記ユーザ入力変数を備えるメッセージを前記第2のウェブサーバにプッシュするステップ
をさらに備える、請求項1に記載の方法。
【請求項１０】
前記第1の通信リンクを介してのユーザデータの安全な送信は、ウィンドウツーウィンドウデータ転送を使用する、
請求項1に記載の方法。
【請求項１１】
前記ウィンドウツーウィンドウデータ転送を暗号化するステップをさらに備える、請求項10に記載の方法。
【請求項１２】
前記第2のウェブサーバによって提供された第2のウェブページへの前記リンクのアクティブ化時に前記ユーザに関連する識別子を前記第1のウェブサーバから前記第2のウェブサーバに渡すステップ
をさらに備える、請求項1に記載の方法。
【請求項１３】
コンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、コンピュータに、
第1のウェブサーバにおいて、ユーザの認証を実行させ、
前記第1のウェブサーバから、第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページを前記ユーザに提供させ、
前記ユーザによって入力されたユーザ入力変数を識別するユーザ入力を前記第1のウェブサーバにおいて受信させ、
前記第1のウェブサーバと前記第2のウェブサーバとの間に第1の通信リンクを確立させ、
前記ユーザと前記第1のウェブサーバおよび前記第2のウェブサーバの1つとの間の取引の完了の前に、第1の通信リンク上で前記第1のウェブサーバから前記第２のウェブサーバに、ユーザデータを安全に送信させ、
前記第1のウェブサーバにおいて、前記取引の完了に続いて前記第1のウェブサーバと前記第2のウェブサーバとの間に第2の通信リンクを確立させ、
前記第2の通信リンク上で前記第2のウェブサーバから、前記第1のウェブサーバにおいて取引データを安全に受信させる
ように構成され、前記認証を実行させること、第1のウェブページを提供させること、および、前記第1の通信リンクを確立させることは、単一のウェブセッションの中で実行される、コンピュータプログラム。
【請求項１４】
第2の通信リンクを確立させることは、前記取引の完了に続いてリアルタイムで実行される、請求項13に記載のコンピュータプログラム。
【請求項１５】
第1のウェブサーバおよび第2のウェブサーバを備える安全なウェブベースの取引のためのシステムであって、
前記第1のウェブサーバは、
ユーザの認証を実行し、
第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページを前記ユーザに提供し、
前記ユーザによって入力されたユーザ入力変数を識別するユーザ入力を前記第1のウェブサーバにおいて受信し、
前記第1のウェブサーバと前記第2のウェブサーバとの間に第1の通信リンクを確立し、
前記ユーザと前記第1のウェブサーバおよび前記第2のウェブサーバの1つとの間の取引の完了の前に、第1の通信リンク上で前記第1のウェブサーバから前記第２のウェブサーバに、ユーザデータを安全に送信し、
前記取引の完了に続いて前記第1のウェブサーバと前記第2のウェブサーバとの間に第2の通信リンクを確立し、
前記第2の通信リンク上で前記第2のウェブサーバから、前記第1のウェブサーバにおいて取引データを安全に受信する
ように構成されるシステム。
【請求項１６】
前記第1のウェブサーバおよび前記第2のウェブサーバの前記少なくとも1つが前記取引の完了に続いて直ちにリアルタイムで前記第2の通信リンクを確立するように構成される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全なウェブベースの取引に関する。
【背景技術】
【０００２】
多数のウェブベースの取引が毎日実行されている。しかし、これらの取引の当事者は、インターネットを介して実行される取引のセキュリティを心配している。セキュリティ問題は、メッセージの傍受の可能性および関与する当事者の識別に関係することがある。
【０００３】
通常、ウェブベースの取引は、小売業者によって制御される単一のウェブサーバとの対話を必要とするが、いくつかの場合には、支払は第三者によって処理され、顧客は購入した品物の代金を支払うために支払プロバイダのウェブサイトにリダイレクトされる。財務情報が送信されているので、セキュリティはユーザにとって明らかに非常に重大な心配事である。
【０００４】
いくつかのオンライン小売業者は、顧客が取引に際して商品券を商品と引き換えるかまたはそうでなければ特定のトランザクタにアクセスすることができるようにする。通常、顧客は、郵便または電子メールによって商品券または商品券コードを送信され、次いで、顧客は小売業者のウェブサイト上で精算時にコードをボックスに入力する。そのようなシステムは、安全に実行されないので、悪用に対して無防備である。例えば、そのようなシステムは、消費者への商品券明細の通知を第三者によって傍受されやすい。
【０００５】
後述の実施形態は、ウェブベースの取引を可能にするための知られている方法およびシステムの欠点のいずれかまたは全てを解決する実施形態に限定されない。
【発明の概要】
【課題を解決するための手段】
【０００６】
本「発明の概要」は、以下で「発明を実施するための形態」においてさらに詳細に説明される概念の抜粋を簡略化された形で紹介するために提供される。本「発明の概要」は、特許請求される主題の主要な特徴または必須の特徴を識別することを意図するものではなく、特許請求される主題の範囲を決定するのに補助として使用されることを意図するものでもない。
【０００７】
2つの独立して制御されるウェブサーバを必要とする、オンライン取引を安全に実行する方法が説明される。取引を完了するために、ユーザは2つのウェブサーバのそれぞれと同時に対話し、認証はユーザと各ウェブサーバとの間、およびウェブサーバ間で行われることが可能である。2つのウェブサーバのそれぞれは、取引を完了するために使用されるデータを提供し、第1のウェブサーバによって提供されたデータは、取引における使用のために第2のウェブサーバに直接伝達される。一実施形態では、第1のウェブサーバは、ユーザが取引において使用される変数を指定することができるようにするウェブページを提供する。これは、メッセージの識別子と一緒に取引を処理する第2のウェブサーバに伝達される。識別子(1つまたは複数)は、取引を処理する際に変数が使用される前に、変数を検証する際に使用されることが可能である。取引の完了に続いて、これは第1のウェブサーバにリアルタイムで報告されることが可能である。
【０００８】
第1の態様は、単一のウェブセッションの中で、第1のウェブサーバにおいてユーザの認証を実行するステップと、第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページをユーザに提供するステップと、ユーザと第1のウェブサーバおよび第2のウェブサーバの1つとの間の取引の完了の前に、ユーザデータの安全な送信のために第1のウェブサーバと第2のウェブサーバとの間に第1の通信リンクを確立するステップとを備える、オンライン取引を実行する方法を提供し、本方法は、ウェブサーバ間の取引データの安全な送信のために、取引の完了に続いて第1のウェブサーバと第2のウェブサーバとの間に第2の通信リンクを確立するステップをさらに備える。
【０００９】
第2の通信リンクを確立するステップは、取引の完了に続いて直ちにリアルタイムで実行されることが可能である。
【００１０】
本方法は、ユーザが、第1のウェブサーバによって提供されたウェブページおよび第2のウェブサーバによって提供されたウェブページを介して、第1のウェブサーバおよび第2のウェブサーバのそれぞれと同時に、および独立して対話することができるようにするステップをさらに備えることができる。
【００１１】
第1のウェブサーバおよび第2のウェブサーバによって提供されるウェブページは、ブラウザの2つの別々のフレームの中に提供されてよい。
【００１２】
第2のウェブサーバによって提供されたウェブページは、第2のウェブページでよい。
【００１３】
本方法は、第2のウェブサーバにおいてユーザの認証を実行するステップをさらに備えることができる。
【００１４】
ユーザデータはユーザ入力変数を備えることができ、本方法は、第1のウェブサーバにおいて、ユーザによって入力されたユーザ入力変数を識別するユーザ入力を受信するステップをさらに備えることができる。
【００１５】
本方法は、第1のウェブサーバにおいて、第1の通信リンクを介して第2のウェブサーバからユーザ入力変数を求める要求を受信するステップと、ユーザ入力変数を備えた応答メッセージを第1の通信リンクを介して第2のウェブサーバに送信するステップとをさらに備えることができる。
【００１６】
本方法は、第1のウェブサーバにおいて、応答を送信する前に要求を検証するステップをさらに備えることができる。
【００１７】
本方法は、第1のウェブサーバにおいて、ユーザ入力変数を備えたメッセージを第2のウェブサーバにプッシュするステップをさらに備えることができる。
【００１８】
第1の通信リンクを介してのユーザデータの安全な送信は、ウィンドウツーウィンドウデータ転送を使用することができ、ウィンドウツーウィンドウデータ転送は暗号化されることが可能である。
【００１９】
本方法は、前記リンクのアクティブ化時にユーザに関連する識別子を第1のウェブサーバから第2のウェブサーバに渡すステップをさらに備えることができる。
【００２０】
第2の態様は、オンライン取引を実行する方法であって、第1のウェブサーバにおいて、および単一のウェブセッションの中で、ユーザの認証を実行するステップと、第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページをユーザに提供するステップと、ユーザと第1のウェブサーバおよび第2のウェブサーバの1つまたは両方との間の取引の完了の前に、ユーザデータの安全な送信のために第1のウェブサーバと第2のウェブサーバとの間に第1の通信リンクを確立するステップとを備え、第1のウェブサーバにおいて、ウェブサーバ間の取引データの安全な送信のために、取引の完了に続いて第1のウェブサーバと第2のウェブサーバとの間に第2の通信リンクを確立するステップをさらに備える方法を提供する。
【００２１】
第2の通信リンクを確立するステップは、取引の完了に続いてリアルタイムで実行されることが可能である。
【００２２】
第3の態様は、第1のウェブサーバおよび第2のウェブサーバを備えた安全なウェブベースの取引のためのシステムであって、第1のウェブサーバおよび第2のウェブサーバの少なくとも1つは、ユーザの認証を実行し、第2のウェブサーバによって提供された第2のウェブページへのリンクを備える第1のウェブページをユーザに提供し、ユーザと第1のウェブサーバおよび第2のウェブサーバの1つとの間の取引の完了の前に、ユーザデータの安全な送信のために第1のウェブサーバと第2のウェブサーバとの間に第1の通信リンクを確立し、ウェブサーバ間の取引データの安全な送信のために、取引の完了に続いて第1のウェブサーバと第2のウェブサーバとの間に第2の通信リンクを確立するように構成されるシステムを提供する。
【００２３】
第1のウェブサーバおよび第2のウェブサーバの前記少なくとも1つは、取引の完了に続いて直ちにリアルタイムで第2の通信リンクを確立するように構成されることが可能である。
【００２４】
第4の態様は、事実上図面の図2および4〜9のいずれかに関連して説明される第1のウェブサーバおよび第2のウェブサーバを備えるシステムを動作させる方法を提供する。
【００２５】
第5の態様は、事実上図面の図10に関連して説明されるウェブサーバを提供する。
【００２６】
第6の態様は、前記プログラムがコンピュータ上で実行された時に、本明細書に記載の方法のいずれかのステップを全て実行するように適応されたコンピュータプログラムコード手段を備えるコンピュータプログラムを提供する。コンピュータプログラムは、コンピュータ可読媒体上で実施されることが可能である。
【００２７】
本明細書に記載の方法は、ファームウェアまたはソフトウェアによって記憶媒体上で機械可読形式で実行されることが可能である。ソフトウェアは、方法ステップが任意の適切な順序でまたは同時に実行されることが可能であるように、パラレルプロセッサまたはシリアルプロセッサ上での実行に適していることが可能である。
【００２８】
これは、ファームウェアおよびソフトウェアが有益な別々に売買可能な商品でよいことを認める。所望の機能を実行するために、「ダム」または標準的なハードウェア上で実行するかまたはそれを制御するソフトウェアを包含するものとする。さらに、所望の機能を実行するために、シリコンチップを設計するためにまたは汎用プログラマブルチップを構成するために使用されるHDL(ハードウェア記述言語)ソフトウェアなど、ハードウェアの構成を「記述する」または定義するソフトウェアを包含するものとする。
【００２９】
好ましい特徴は、当業者には明らかであろうように、適宜結合されることが可能であり、本発明の態様のいずれかと結合されることが可能である。
【００３０】
本発明の諸実施形態は、添付の図面に関連して例として説明される。
【図面の簡単な説明】
【００３１】
【図１】安全なウェブベースの取引を可能にするシステムの概略図である。
【図２】図1のシステムのオペレーションの一例示的方法の流れ図である。
【図３】ブラウザのグラフィカルユーザインターフェースの概略図である。
【図４】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図５】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図６】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図７】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図８】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図９】図1のシステムのオペレーションの他の例示的方法の流れ図である。
【図１０】本明細書に記載の方法の実施形態がそこで実施されることが可能な一例示的ウェブサーバの様々な構成要素を例示する図である。
【発明を実施するための形態】
【００３２】
同様の特徴を示すために全図にわたって共通の参照番号が使用される。
【００３３】
本発明の諸実施形態は、例としてのみ以下で説明される。これらの実施例は、本発明が実現されることが可能であろう唯一のやり方でなくても、現在出願人に知られている本発明を実行に移す最良のやり方を表す。本説明は、実施例の機能、および実施例を構成および実施するための一連のステップを説明する。しかし、同じまたは同等の機能およびシーケンスは、異なる実施例によって実現されることが可能である。
【００３４】
図1は、安全なウェブベースの取引を可能にするシステムの概略図である。システムは、インターネットなどのネットワーク103を介して接続される2つのウェブサーバ101、102を備える。ユーザは、コンピュータ104または他のユーザデバイス上で実行しているブラウザを介して2つのウェブサーバと対話することができる。2つのウェブサーバ101、102は、独立して制御される、すなわちそれらは様々なエンティティによって(または、それらのために)操作される。
【００３５】
図2は、図1のシステムのオペレーションの例示的方法の流れ図である。第1のウェブサーバ101は、第2のサーバ102によって提供されたウェブページへのリンクを含むブラウザにウェブページを提供する(ブロック201)。このウェブページは、ユーザがログインしたかまたはそうでなければ第1のウェブサーバによって認証を実行した(ブロック200)後に提供されてよく、あるいは、代替として、認証は、(例えば、ブロック202の前に)ウェブページが提供された後に実行されてよい。ユーザが自分のブラウザを介してリンクをクリックすると、第1のサーバは、識別子を第2のサーバに渡し(ブロック202)、第2のサーバは、ウェブページを立ち上げる(ブロック203)。同時に、第1のサーバは、第1のサーバによって提供されたウェブページを更新してもよく、または新しいウェブページを立ち上げてもよい。第1のサーバから第2のサーバに渡された識別子は、ユーザおよび/または第2のサーバ(すなわち、識別子の目標宛先)を識別する。このシステムは、システムIDと呼ばれてよく、本明細書ではIceIDとも呼ばれる。一実施例では、IceIDは、ユーザ識別子(ユーザID)および第2のサーバの識別子(または第2のサーバのオペレータの識別子、例えばベンダID)の組合せでよい。そのような実施例では、ユーザは複数のベンダと対話しており、第1のベンダに伝達されたIceIDは、第2のベンダに伝達されたIceIDとは異なることになる。システムIDは、代替として、セッションIDでよい。(ベンダIDでよい)第2のサーバの識別子は、第1のウェブサーバ(またはその制御エンティティ)によって第2のウェブサーバ(またはその制御エンティティ)にあらかじめ提供されていてよい。
【００３６】
第2のウェブページは、(ブロック203において)、例えば図3に示されているように、ブラウザ内の別々のウィンドウの中で、または第1のウェブサーバによって提供されるウェブページと同じウィンドウの中の第2のフレームの中で、立ち上げられることが可能である。第1のウェブサーバによって提供されるウェブページは、(ブロック201において提供される)第1のウェブページ、または第1のウェブサーバによって提供される別のウェブページでよい。第2のウェブサーバによって提供されるウェブページへの照会は、要求のURLにIceIDを含むクエリ文字列パラメータを備えるHTTP GET(またはHTTPS GET)を使用することができる。第2のウェブページを立ち上げた後は、ユーザはウェブページのそれぞれと独立して対話することができ、例えば、ユーザは、購入すべき製品を選択するために(第2のウェブサーバによって立ち上げられた)第2のウェブページと対話することができ、ユーザは、(以下で説明されるように)取引を完了する際にその後使用されることが可能である変数(例えば、自由形式の変数)を入力するために、第1のウェブサーバによって提供されたウェブページと対話することができる。この変数は、ディスカウント、商品と引き換えられるべき報酬の値、製品または取引に関するカスタム化、または任意の他のパラメータを表すことができる。
【００３７】
どの時点においてでも、第2のサーバ102は第1のサーバとのユーザの対話に関して第1のサーバにデータを要求することができ(ブロック205)、このデータは何回も要求されてよい。図2に示されている実施例では、データは、ユーザが(第2のサーバによって提供され、ブラウザを使用して表示されたウェブページを介して)第2のサーバ102との対話を開始した後に要求される(ブロック204)。(ブロック205における)要求は、第1のウェブサーバ上で実行しているウェブサービスに対するSOAP(シンプルオブジェクトアクセスプロトコル)要求の形式のものでよい。他の技法およびプロトコルは、SOAP、FTP、TCP/IPなしでHTTPまたはHTTPSなどの要求を提供するために使用されることが可能である。SOAP要求は、例としてのみ以下の説明において使用され、SOAP要求に対する全ての参照は、代替形式の要求に対する参照によって置き換えられることが可能であることが理解されるであろう。SOAP要求は、(ブロック202において提供されたような)IceID、または第2のウェブサーバの識別子を備えることができる。
【００３８】
(ブロック205において行われた)要求に応答して、第1のウェブサーバ上で実行しているウェブサービスは、第2のウェブサーバにユーザの対話に関するデータを提供する(ブロック206)。要求において提供されているデータ(例えば、第2のウェブサーバの識別子)は、応答を提供する前に検証されることが可能である。一実施例では、第1のウェブサーバは、第2のウェブサーバが予期されたIPアドレスにあることをチェックすることができる。(ブロック206において)第1のウェブサーバ101によって提供された応答は、IceID、応答識別子(応答ID)、およびユーザ入力変数の値を備えることができる。いくつかの実施例では、応答の有効期限など追加のパラメータが提供される。SOAP要求および応答のために使用されるトランスポートは、HTTP(ハイパーテキスト転送プロトコル)またはHTTPS(HTTP over Secure Socket Layer)でよい。
【００３９】
ユーザは、取引プロセス中のどの時点においてでも(例えば、ブロック204または207において)第2のウェブサーバによって認証を実行することができる。2つのウェブサーバのそれぞれによる独立した認証を必要とすることによって、ウェブベースの取引システムのセキュリティは、ユーザをスプーフィングする可能性を低減することにより高められる。
【００４０】
(ブロック206において送信された)応答の受信時に、または取引の完了までの任意の時点で、第2のウェブサーバは受信されたデータを検証する。図2において示されている実施例では、この検証は、(ブロック207における)取引の完了の直前に行われる。検証は、
・  (第1のウェブサーバから受信された)サーバ証明書が有効であることをチェックするステップ、
・  応答において提供された情報(例えば、ユーザ入力変数または応答ID)は1つの取引においてしか使用されず、これは取引において使用されたそれらの応答IDを記憶することにより行われることが可能であることをチェックするステップ、
・  応答が、定義された期間内に(例えば、直前の24時間以内に)送信された要求に関係していることをチェックするステップ、および
・  (提供されている場合は)応答の任意の有効期限が有効であること(すなわち、有効期限が現在の日時以上であること)をチェックするステップ
の1つまたは複数を備えることができる。
【００４１】
検証ステップのいずれも実行できなった場合は、取引は中止されてよく、または第1のウェブサーバによって提供されたデータは取引において使用されなくてもよく、取引は、ユーザによって第2のウェブサーバにだけ提供されたデータに基づいて続行してよい。検証プロセスは、第1のウェブサーバおよび/または応答のスプーフィングを防止することによりウェブベースの取引システムのセキュリティを高める。
【００４２】
第2のウェブサーバが、第1のサーバにデータを何回も要求する(すなわち、ブロック205および206が繰り返される)場合、第2のウェブサーバは、最も新しく受信された応答IDおよび対応するユーザ入力変数の値以外は全部廃棄する。
【００４３】
取引の完了後できるだけ早く、第2のウェブサーバ102は、第1のウェブサーバ101に確認を送信し(ブロック208)、第1のウェブサーバは、この確認に基づいてユーザに関する情報を備えるデータベースを更新する(ブロック209)。この確認は、第1のウェブサーバ上で実行している第2のウェブサービスにhttpsを介してSOAP要求の形式で提供されることが可能である。第1のウェブサーバ上で実行している第1のウェブサービスおよび第2のウェブサービスは、単一のウェブサービスに結合されてよいことが理解されるであろう。しかし、実行されるオペレーションは、論理的に異なるままである。ユーザ入力変数が取引を処理する際に使用される場合は、確認は、(ユーザIDおよび第2のウェブサーバのIDを備える)IceID、取引ID、および(ブロック206において提供されたような)応答IDを備えることができる。確認はまた、現行の取引に関する追加の詳細(例えば、価格、購入された品物、取引の日時など)を備えることができる。
【００４４】
(ブロック209において)確認の受信時に、およびユーザアカウントを更新する前に、第1のサーバは、第2のウェブサーバが予期されたIPアドレスにあることをチェックするかまたはそうでなければ確認メッセージおよび/または第2のウェブサーバの認証を実行することができる。これは、第2のウェブサーバおよび/または確認メッセージのスプーフィングを防止することによりウェブベースの取引システムのセキュリティを高める。
【００４５】
取引後しばらくしてからではなく、(ブロック208において)リアルタイムで確認を提供することは、第1のウェブサーバに記憶されているユーザ詳細のデータベースが最新にしておかれるので、取引のセキュリティを高める。
【００４６】
上記の説明は、(ブロック208において)確認が取引に続いてリアルタイムで送信されることを示す(例えば、ブロック200〜208または200〜209は単一のウェブセッションの中で実行されてよい)が、他の実施例では、確認はバッチで処理され、後ほど送信されてよい。そのような実施例では、処理の一部分が単一のセッション(例えばブロック200〜207)の中で実行されてよく、残りのブロックはそれに続いて実行されてよい。
【００４７】
図3は、2つのフレーム301、302を備えるブラウザのグラフィカルユーザインターフェース(GUI)の概略図を示し、各フレームは、それぞれに異なるウェブサーバによって提供されたウェブページを含んでよく、これらのウェブサーバは、独立して制御されることが可能である。一実施例では、第1のフレーム301は、第1のウェブサーバ101によって提供されたウェブページを含んでよく、第2のフレーム302は、(ブロック203において開かれるような)第2のウェブサーバ102によって提供されたウェブページを含んでよい。前述のように、第2のウェブサーバによって提供されたウェブページは、代替として、ユーザのブラウザの第2のウィンドウの中に表示されてよい。
【００４８】
図4〜9は、図1のシステムのオペレーションの他の例示的方法の流れ図であり、これらは以下でさらに詳細に説明される。これらの方法のいずれかの態様は、さらに他の実施例を作り出すために、その他の方法の1つまたは複数からの態様と結合されることが可能であることが理解されるであろう。説明のために、これらの方法は、取引の完了に続いてリアルタイムで送信される確認を記述しているが、前述のように、確認は、代替として、(例えば、確認メッセージがバッチで送信される場合は)後ほど送信されてよい。
【００４９】
図4に示されている実施例では、第1のウェブサーバ101は、ウェブページを第2のサーバ102によって提供されたウェブページへのリンクを含むブラウザに提供する(ブロック401)。前述のように、このウェブページは、ユーザがログインしたかまたはそうでなければ第1のウェブサーバによって認証を実行した(ブロック200)後に提供されてもよく、あるいは代替として、認証は、(例えば、ブロック402の前に)ウェブページが提供された後に行われてもよい。ユーザが自分のブラウザを介してこれをクリックすると、第1のサーバはIceIDを第2のサーバに渡し(ブロック402)、第2のサーバはウェブページを立ち上げる(ブロック403)。前述のように、第2のウェブページは、フレームまたは別々のウィンドウの中で立ち上げられてよく、第2のウェブサーバによって提供されたウェブページへの照会は、要求のURLにIceIDを含むクエリ文字列パラメータを備えるHTTP GETまたはHTTPS GETを使用することができる。第2のウェブページを立ち上げた後は、ユーザは、ウェブページのそれぞれと独立して対話することができ、第1のサーバによって提供された(第1のウェブページまたは別のウェブページでよい)ウェブページは、ユーザが自由形式の変数でよい変数を入力する(またはそうでなければ選択する)ことができるようにする(ブロック404)。
【００５０】
第2のウェブページがロードされた時、または(精算と呼ばれてよい)取引の処理までのどの時点においてでも、およびその処理中に、第2のウェブページは、ジャバスクリプトを実行して親フレーム(すなわち、第1のウェブサーバによって提供されたフレーム)においてユーザ入力変数および一意の識別子の存在を探す(ブロック405)。ジャバスクリプトは、何回も、およびそれぞれに異なる値を有するユーザ入力変数の識別時に実行されてよく、あらかじめ決定された値は破棄される。
【００５１】
取引の完了(ブロック406)後できるだけ早く、第2のウェブサーバ102は、確認を第1のウェブサーバ101に送信し(ブロック407)、第1のウェブサーバは、この確認に基づいてユーザに関する情報を備えたデータベースを更新する(ブロック408)。この確認は、第1のウェブサーバ上で実行している第2のウェブサービスにHTTPSを介してSOAP要求の形式で提供されることが可能である。確認は、IceID(または、別々にユーザIDおよび第2のウェブサーバのID)、取引ID、および取引を処理する際に使用されるユーザ入力変数の詳細を備えることができる。前述のように、確認はまた、現行の取引に関する追加の詳細(例えば、価格、購入された品物、取引の日時など)を含んでよく、検証はユーザアカウントを更新する前に実行されてよい。
【００５２】
図4に示されている方法のセキュリティを高めるために、ユーザ入力変数は、第1のウェブサーバに関連する秘密鍵を使用してエンコードされてよく、第2のウェブサーバは、対応する公開鍵を使用して、暗号化された鍵を復号することができる。
【００５３】
図5は、図2および4に示されている方法と同様のやり方で開始する、図1のシステムのオペレーションの別の例示的方法の流れ図である。第1のウェブサーバ101は、第2のサーバ102によって提供されたウェブページへのリンクを含むブラウザにウェブページを提供し(ブロック501)、ユーザが自分のブラウザを介してこれをクリックした時に、第1のサーバは、IceIDを第2のサーバに渡し(ブロック502)、第2のサーバは、ウェブページを立ち上げる(ブロック503)。第2のウェブサーバによって提供されたこのウェブページは、第1のウェブページに取って代わるために(すなわち、同じウィンドウにおいて)立ち上げられてもよく、あるいは別々のウィンドウまたはフレームにおいて立ち上げられてもよい。この時点で、第1のウェブサーバによって提供されたウェブページは更新されてもよい。第2のウェブサーバによって提供されたウェブページへの照会は、要求のURLにIceIDを含むクエリ文字列パラメータを備えるHTTP GETを使用することができる。
【００５４】
第2のウェブサーバによって提供された(およびブロック503において立ち上げられた)ウェブページは、第1のウェブサーバによって提供されたウェブページへのリンクを備えることができ、または代替として、そのようなリンクは、取引を完了するためのウェブページ(例えば、精算ページ)など第2のウェブサーバによって提供された別のウェブページにおいて提供されてよい。ユーザがこのリンクをクリックすると(ブロック504)、これはどのページ上で行われてもよいが、第1のウェブサーバによって提供されたウェブページを含む子ウィンドウまたはフレームが開かれる(ブロック505)。(ブロック200において)ユーザはもともと第1のウェブサーバにログインしたので、子ウィンドウまたはフレームは、依然としてIceIDなどのセッション情報にアクセスすることができる。子ウィンドウを立ち上げた後は、ユーザは、ウェブページのそれぞれと独立して対話することができ、(ブロック505において立ち上げられた)子ウィンドウ内のウェブページは、ユーザが変数(例えば自由形式の変数)を入力する(またはそうでなければ選択する)ことができるようにすることができる。
【００５５】
どの時点においてでも、第2のサーバ102は、子ウィンドウを介して第1のサーバとのユーザ対話に関して第1のサーバにデータを要求してよく、このデータは何回も要求されてよい(ブロック506)。図5に示されている実施例では、データは、第2のウェブサーバによって提供されたウェブページがリフレッシュされた時に要求され、これは、ユーザが押すように促されるウェブページ上のリンクまたはボタン(例えば「ディスカウントを適用するためにリフレッシュする」など)によってトリガされてよい。前述のように、(ブロック506における)要求は、第1のウェブサーバ上で実行しているウェブサービスに対するSOAP要求の形式のものでよく、要求は、(ユーザIDおよび第2のウェブサーバの識別子を備える)IceIDを備えることができる。次いで方法は前述のように続行する(ブロック206〜209)。
【００５６】
図6は、上記の図4および5で示された態様を結合する他の例示的方法を示す。本方法は、図5に関連して上記で説明されたように開始し(ブロック200および501〜505)、子ウィンドウ(またはフレーム)において立ち上げられたウェブページは、ユーザが自由形式の変数を入力する(またはそうでなければ選択する)ことができるようする(ブロック601)。(親ウィンドウ内の)第2のウェブサイトによって提供されたウェブページがリフレッシュされた時に、または取引の処理までのどの時点においてでも、およびその処理中に、第2のウェブページは、ジャバスクリプトを実行して子ウィンドウにおいてユーザ入力変数および一意の識別子の存在を探す(ブロック602)。図4に関連して上記で説明されたように、ジャバスクリプトは、何回もおよびそれぞれに異なる値を有するユーザ入力変数の識別時に実行されてよく、あらかじめ決定された値は破棄される。前述のように、ユーザ入力変数は、第1のウェブサーバに関連する秘密鍵を使用してエンコードされてよく、第2のウェブサーバは、対応する公開鍵を使用して、暗号化された鍵を復号することができる。取引の完了(ブロック406)後できるだけ早く、第2のウェブサーバ102は第1のウェブサーバ101に確認を送信し(ブロック407)、第1のウェブサーバは、前述のように、この確認に基づいてユーザに関する情報を備えるデータベースを更新する(ブロック408)。
【００５７】
図7に示されている例示的方法では、第2のウェブサーバ102によってブラウザにウェブページが提供される(ブロック701)。第2のウェブサーバによって提供されたこのウェブページは、第1のウェブサーバによって提供されたウェブページへのリンクを備えることができ、または代替として、そのようなリンクは、取引を完了するためのウェブページ(例えば精算ページ)など第2のウェブサーバによって提供された別のウェブページにおいて提供されてよい。このウェブページは、ユーザがログインしたかまたはそうでなければ第2のウェブサーバによって認証を実行した(ブロック700)後に提供されてよく、または代替として、認証は、(例えば、ブロック702の前に、またはブロック702において)ウェブページが提供された後に行われてよい。ユーザがこのリンクをクリックすると(ブロック702)、これはどのページ上で行われてもよいが、第1のウェブサーバによって提供されたウェブページを含む子ウィンドウまたはフレームが開かれる(ブロック703)。ユーザ識別子(ユーザID)、IceID、第2のウェブサーバの識別子、セッションID、または他の識別子を備えることができる識別子が第2のウェブサーバから第1のウェブサーバに渡される。子ウィンドウまたはフレームを立ち上げた後は、ユーザはウェブページのそれぞれと独立して対話することができ、(ブロック703において立ち上げられた)子ウィンドウまたはフレーム内のウェブページは、ユーザが変数(例えば自由形式の変数)を入力する(またはそうでなければ選択する)ことができるようにすることができる。ユーザは、第1のウェブサーバにログインまたは登録する必要がありうる(ブロック704)。
【００５８】
どの時点においてでも、第2のサーバ102は子ウィンドウを介して第1のサーバとのユーザ対話に関して第1のサーバにデータを要求してよく(ブロック705)、このデータは何回も要求されてよい。図7に示されている実施例では、データは、第2のウェブサーバによって提供されたウェブページがリフレッシュされた時に要求され、これはユーザが押すように促されるウェブページ上のリンクまたはボタン(例えば「ディスカウントを適用するためにリフレッシュする」)によってトリガされてよい。前述のように、(ブロック705における)要求は、第1のウェブサーバ上で実行しているウェブサービスに対するSOAP要求の形式のものでよく、要求は、子ウィンドウまたはフレームが開かれた時に第2のウェブサーバから第1のウェブサーバに渡された識別子(例えば、図7に示されている実施例におけるユーザID)を備えることができる。
【００５９】
(ブロック705において行われた)要求に応答して、第1のウェブサーバ上で実行しているウェブサービスは、ユーザ対話に関するデータを第2のウェブサーバに提供する(ブロック706)。要求において提供されているデータ(例えば、第2のウェブサーバの識別子)は、応答を提供する前に検証されることが可能である。(ブロック706において)第1のウェブサーバ101によって提供された応答は、ユーザID、応答ID、およびユーザ入力変数の値を備えることができる。前述のように、応答は、有効期限など追加のパラメータを含んでよい。SOAP要求および応答のために使用されるトランスポートは、HTTPまたはHTTPSでよい。次いで、本方法は前述のように続行する(ブロック207〜209)。
【００６０】
図8は、ユーザ入力変数およびユーザIDを共用するジャバスクリプトが使用される、図4〜7に示されており上記で説明された方法の変形形態を示す(ブロック801〜802)。本方法は、図7に関連して上記で説明されたように開始し(ブロック700〜704)、子ウィンドウ(またはフレーム)において立ち上げられたウェブページは、ユーザが変数を入力する(またはそうでなければ選択する)ことができるようにする(ブロック801)。(親ウィンドウ/フレーム内の)第2のウェブサイトによって提供されたウェブページがリフレッシュされた時に、または(精算と呼ばれてよい)取引の処理までのどの時点においてでも、およびその処理中に、第2のウェブページは、ジャバスクリプトを実行して子ウィンドウにおいてユーザ入力変数の存在を探し、ユーザIDも取得する(ブロック802)。前述のように、ジャバスクリプトは、何回もおよびそれぞれに異なる値を有するユーザ入力変数の識別時に実行され、あらかじめ決定された値は破棄される。ユーザ入力変数およびユーザIDは、第1のウェブサーバに関連する秘密鍵を使用してエンコードされてよく、第2のウェブサーバは、対応する公開鍵を使用して、暗号化された鍵を復号することができる。取引の完了(ブロック406)後できるだけ早く、第2のウェブサーバ102は、第1のウェブサーバ101に確認を送信し(ブロック407)、第1のウェブサーバは、前述のように、この確認に基づいてユーザに関する情報を備えるデータベースを更新する(ブロック408)。
【００６１】
図9に示されている方法は、第2のウェブサーバがデータをプルするのではなく第1のウェブサーバがユーザ入力変数を第2のウェブサーバにプッシュすること以外は、図2に示されているものと同様である。本方法は、図2に示され(ブロック200〜204)上記で説明されたように開始する。どの時点においてでも、第1のウェブサーバ101は、第2のウェブサーバ上で実行しているウェブサービスを呼び出すことによりユーザ入力変数データを第2のウェブサーバにプッシュすることができる(ブロック901)。データは、第2のウェブサーバ上で実行しているウェブサービスにSOAP要求の形式でプッシュされてよく、SOAP要求は、(ブロック202において前に提供されたような)IceID、応答ID、およびユーザ入力変数の値を備えることができる。要求はまた、日付および/または時間によって定義されてよい応答の有効期限を備えることができ、httpsが使用されてよい。代替として、応答IDは、定義された期間(例えば24時間)以内に期限切れになるとみなされてよく、その後の検証によって、要求がこの期間以内に(例えば直近の24時間以内に)受信されたことを確認することができる。
【００６２】
応答の受信時に(ブロック902)、または(例えばブロック903における)取引の完了までのどの時点においてでも、第2のウェブサーバは、受信されたデータを検証し、これは上記で説明されたように実行されることが可能である。取引プロセス中に、および取引の完了前に、(ブロック903において)第2のウェブサーバはウェブサービスが呼び出されたことをチェックする。
【００６３】
第2のウェブサーバが第1のサーバからデータを何回も受信した(すなわち、ブロック901および902が繰り返された)場合は、第2のウェブサーバは、一番新しく受信された応答IDおよびユーザ入力変数の値以外は全部破棄する。
【００６４】
上記でより詳細に説明されたように、取引の完了後できるだけ早く、第2のウェブサーバ102は、第1のウェブサーバ101に確認を送信し(ブロック208)、第1のウェブサーバは、この確認に基づいてユーザに関する情報を備えるデータベースを更新する(ブロック209)。
【００６５】
図10は、前述の方法の実施形態がそこで実施されることが可能な例示的ウェブサーバ1000の様々な構成要素を示す。ウェブサーバは、本明細書で説明された方法のいずれかを実施するためにデバイスのオペレーションを制御すべく実行可能な命令の計算を処理するためのマイクロプロセッサ、コントローラ、または任意の他の適切なタイプのプロセッサでよい1つまたは複数のプロセッサ1001を備える。オペレーティングシステム1002または任意の他の適切なプラットフォームソフトウェアは、アプリケーションソフトウェア1003がデバイス上で実行できるようにするために、計算ベースのデバイスにおいて提供されてよい。
【００６６】
コンピュータ実行可能命令は、メモリ1004など任意のコンピュータ可読媒体を使用して提供されてよい。メモリは、ランダムアクセスメモリ(RAM)、磁気もしくは光ストレージデバイスなど任意のタイプのディスクストレージデバイス、ハードディスクドライブ、またはCD、DVDもしくは他のディスクドライブなど、任意の適切なタイプのものでよい。フラッシュメモリ、EPROM、またはEEPROMが使用されてもよい。メモリ1004はまた、ユーザ情報および/または他のウェブサーバから受信されたデータのデータベースを記憶するために使用されてよいデータストア1005を備えることができる。
【００６７】
ウェブサーバ1000は、ネットワークインターフェース1006を備え、メディアコンテンツを受信するための任意の適切なタイプのものでよい1つまたは複数の入力装置、インターネットプロトコル(IP)入力装置などをさらに備えることができる。ウェブサーバに組み込まれているかまたはウェブサーバと通信している表示システムにオーディオおよび/またはビデオ出力装置などの出力装置が提供されてもよい。表示システムは、グラフィカルユーザインターフェース、または任意の適切なタイプの他のユーザインターフェースを提供することができる。
【００６８】
上記の実施例は、オンライン小売の例示的用途に関連して説明されているが、これらの方法およびシステムはまた、他の多くの用途に適用可能である。
【００６９】
用語「コンピュータ」は、本明細書では、命令を実行することができるような処理機能を有する任意のデバイスを指すために使用される。そのような処理機能は多くの様々なデバイスに組み込まれ、したがって、用語「コンピュータ」は、PC、サーバ、携帯電話、携帯情報端末、および他の多くのデバイスを含むことを当業者は理解するであろう。
【００７０】
プログラム命令を記憶するために利用されるストレージデバイスはネットワーク全体にわたって分散されてよいことを当業者は理解するであろう。例えば、リモートコンピュータは、ソフトウェアとして記載されたプロセスの実施例を記憶することができる。ローカルまたは端末コンピュータは、リモートコンピュータにアクセスし、プログラムを実行するためにソフトウェアの一部分または全てをダウンロードすることができる。代替として、ローカルコンピュータは、必要に応じてソフトウェアの部片をダウンロードするかまたはローカル端末において、およびリモートコンピュータ(またはコンピュータネットワーク)において、いくつかのソフトウェア命令を実行することができる。当業者に知られている従来の技法を利用することにより、ソフトウェア命令の全てまたは一部分は、DSP、プログラマブルロジックアレイ、または同様のものなど専用回路によって実行されてよいことも当業者は理解するであろう。
【００７１】
本明細書で提供されたいかなる範囲またはデバイスも、当業者には明らかであろうように、求められる効果を失うことなく拡張または変更されてよい。
【００７２】
前述の利益および利点は、1つの実施形態に関係してもよく、または複数の実施形態に関係してもよいことが理解されるであろう。これらの実施形態は、前述の問題のいずれかまたは全てを解決するものにも、または前述の利益および利点のいずれかまたは全てを有するものにも限定されない。
【００７３】
「品物(an item)」へのいかなる言及も、それらの品物の1つまたは複数を指す。用語「備えること(comprising)」は、本明細書では、識別された方法ブロックまたは要素を含むが、そのようなブロックまたは要素は排他的なリストを備えず、方法または装置は追加のブロックまたは要素を含んでよいことを意味するために使用される。
【００７４】
本明細書に記載の方法の諸ステップは、任意の適切な順序で、または適切な場合は同時に実行されてよい。さらに、個々のブロックは、本明細書に記載の主題の趣旨および範囲から逸脱することなく、諸方法のいずれかから削除されてよい。前述の諸実施例のいずれかの態様は、求められる効果を失うことなく他の実施例を形成するために記載された他の実施例のいずれかの態様と結合されてよい。
【００７５】
好ましい実施形態の上記の説明は例としてのみ提供され、当業者によって様々な変更が行われてよいことが理解されるであろう。様々な実施形態が、ある程度具体的に、あるいは1つまたは複数の個々の実施形態に関連して上記で説明されてきたが、当業者であれば、本発明の趣旨および範囲から逸脱することなく、開示された実施形態に多数の変更を加えることができるであろう。
【符号の説明】
【００７６】
101  第1のウェブサーバ
102  第2のウェブサーバ
103  ネットワーク
104  コンピュータ
301  第1のフレーム
302  第2のフレーム
1001  プロセッサ
1002  オペレーティングシステム
1003  アプリケーションソフトウェア
1004  メモリ
1005  データストア
【図１】
0005536038.tif 000002
【図２】
0005536038.tif 000003
【図３】
0005536038.tif 000004
【図４】
0005536038.tif 000005
【図５】
0005536038.tif 000006
【図６】
0005536038.tif 000007
【図７】
0005536038.tif 000008
【図８】
0005536038.tif 000009
【図９】
0005536038.tif 000010
【図１０】
0005536038.tif 000011