説明

信頼度の低いネットワーク上で状況に基づくルールを用いてトランザクションおよびデータを切り替えるように適合されたゲートウェイ

ゲートウェイにおける、トランザクションのアプリケーション・レベルの切り替えが提供される。ゲートウェイは、アプリケーション・レベルの内容、伝送環境の現状、および/またはトランザクションの切り替えに関する動的なルールに基づいてトランザクションを切り替えるように構成されている。例えば、いくつかの考え得るプロバイダをトランザクションの種類に合わせて選択することができ、ゲートウェイは、様々な考え得るサービス・プロバイダについて、ネットワーク(単数または複数)を介した往復時間のみではなく、アプリケーション・レベルでトランザクションを完了して回答を返送するのに必要な時間についても監視することができる。アプリケーションは、ネットワークの送信側にて選択され、アプリケーション・レベルのフォーマッティングも同様に送信側にて行われる。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の引用)
本出願は、同時に出願された「SCHEMA−BASED DYNAMIC PARSE/BUILD ENGINE FOR PARSING MULTI−FORMAT MESSAGES」と題する米国特許出願第_____号(代理人事件No.16222U−020300US)と関連し、該出願はあらゆる目的において参照により本明細書に引用される。
【0002】
本発明は、一般的に電気通信に関し、特に、トランザクションの内容、伝送環境に関する動的状況情報、および/またはトランザクション切り替えの動的ルールに基づいてアプリケーション・レベルでインテリジェントにトランザクションを切り替える技術に関する。
【背景技術】
【0003】
クレジット・カード承認、デビット・カード取引、電子小切手取引などのトランザクションをクライアントにて実行するとき、クライアントは、トランザクションをサービス・プロバイダへ送信する。サービス・プロバイダは、クレジット・カード承認、トランザクション決済などのサービスをクライアントへ提供する。通常、クライアントは、処理を行うために、トランザクションをサービス・プロバイダのトランザクション処理装置へ送る。トランザクションは、各種ネットワークを経由して送ることができる。各種ネットワークは、本質的に異なっていてもよく、信頼性があってもなくてもよい。
【0004】
通常、トランザクションは、迅速な応答および高い信頼性を必要とする。例えばユーザが、クライアントを用いてクレジット・カード取引を実行している場合がある。このトランザクションでは、クレジット・カード承認要求を処理するのに、トランザクション処理装置へ送信することが必要になることがあり、それによりトランザクションの承認を容易にすることができる。トランザクションが経由して送られる各種ネットワークのうちの1つ、あるいはこのクライアントに関するトランザクションを処理するのに使用されているトランザクション処理装置が機能しなかったために、トランザクションが失敗、あるいは遅延することがある。何らかの障害が生じると、クライアントは、トランザクションおよびトランザクションの完結から得られるいかなる利益をも失う危機にさらされる。
【0005】
従来、トランザクションは、一連のパケットに分割され得る。本発明の実施形態は、アプリケーション・レベルでトランザクションに対して動作しており、これに対して、先行技術の多くはネットワーク・レベルでルーティングを行い、パケットに対して動作することを提示している。個別のパケットそれぞれについて、パケット・レベルでルーティングしてもよく、またはヘッダの情報などパケット内の情報に基づいてルーティングすることもできる。以下の特許は、(本発明の実施形態のアプリケーション・レベルの切り替えとは対照的に)パケットのネットワーク・レベルのルーティングについて記載している。IBMの特許第5,974,460号では、データをダウンロードするのに、インターネット上の多数のミラー・サイトのうち、まずどのサイトが、サイト選択の時点で最速の転送速度を示すかを判断することによって、1つを選択することを記載している。DECの特許第5,341,477号も類似している。Alcatelの特許第5,754,543号は、送信費用を考慮しながら行うネットワーク上のルーティングについて記載している。送信費用を考慮している他の特許としては、特許第6,535,488号、およびNortelの特許第6,487,286号がある。DECの特許5,459,837号は、ネットワーク全域にわたってサーバの動作を監視し、要求を処理するのに一番大きい帯域幅を有するサーバはどれかを判断するシステムを提示している。Cabletron Systemsの特許第5,521,910号は、パケットを正規のフレーム形式で示し、さらにネットワークを介した最良の経路を各種メトリックを用いて判断することを示している。特許第6,839,700号は、文書の生成費用に基づき、内容要求の負荷分散について記載している。特許第6,754,188号は、パケットの内容に基づき、すなわちそれが音声、映像、またはファイル転送のいずれであるかに基づいて、パケットをルーティングすることを記載している。
【0006】
特許文献1(IBMの米国特許)は、OSIモデルの最初の三層を備えたネットワーク処理装置を示している。第4以上の層にアクセスしてフロー制御し、サービスの質に基づいてルーティングを決定する処理装置が、特許文献2(Top Layer Networksの米国特許)に示されている。これにより、優先順位に基づく電子メールと、帯域幅保証に基づくマルチメディアとを区別できるようになる。
【0007】
Intelの特許第6,732,175号は、ビジネストランザクション(例えば、購買注文など)の種類を判断するべくパケットの内容について考察し、その種類のサービスを処理するのに適切なサーバへトランザクションを転送することに基づく、ネットワークにおける切り替えについて示している。上記のことが行われるのは、メッセージが宛て先のウェブ・サイトへネットワークを通じて送信された後であり、ネットワーク上に送信される前ではない。宛て先サーバにおいて内容に基づきメッセージをルーティングするシステムには多数の例があり、例えばインテリジェントな負荷分散装置が挙げられる。Dieboldの特許第6,302,326号は、金融メッセージを共通の形式へ変換し、その後システム内の適切なプログラムへ送ることを示している。EDSの特許第5,805,798号は、金融処理サーバの状態を監視して、利用不能になった場合にはメッセージをバックアップへ送るネットワーク・ノードを記載している。
【特許文献1】米国特許第6,460,120号明細書
【特許文献2】米国特許第6,430,184号明細書
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記の特許は、個別のパケットをパケット・レベルでルーティングするか、または静的ルールに基づいてデータをルーティングするかのいずれかに焦点を当てている。これは、パケットの効率的なルーティングを提供することはできるが、一方で、伝送環境の動的状況、および動的ルールに基づいてアプリケーション・レベルでトランザクションを切り替えることに対しては対応していない。加えて、いずれの処理装置にするかの選択を、通常は負荷分散装置などの様に、ネットワークと宛て先との間のノードで行っている。従って、アプリケーション・レベルでトランザクションをインテリジェントに切り替える技術が提供されることが望ましい。
【0009】
アプリケーション・レベルにおける現行の技術では、クライアントが、アプリケーション・レベルでの相互作用に対処することが必要である。クライアントは、トランザクション処理装置における変更に応じてソフトウェア・システムを変更する必要があり、さらに様々なトランザクション処理装置によって求められている様々なメッセージ形式をサポートすることも必要である。クライアントは、さらにサーバ・システムおよびネットワーク上の障害に対処し、クライアントのユーザに継続的な動作を提供するために代替的なサーバ処理装置へフェイルオーバするように対処することも必要とされる。
【課題を解決するための手段】
【0010】
(発明の概要)
本発明の実施形態は、一般にトランザクションのアプリケーション・レベルの内容、伝送環境の動的状況情報、および/またはトランザクション切り替えの動的ルールに基づいて、アプリケーション・レベルでトランザクションを切り替えることに関する。ネットワークのクライアント・エッジにアプリケーション・ルータが設けられ、(1)アプリケーション・レベルの情報に基づいてインテリジェントなルーティングを提供し、(2)サーバへ転送する前に処理サービスを実施し、あるいは(3)サーバへ送ることをせずに、回答をクライアントへ返送するという負荷を分担するサービスを実施することができる。
【0011】
一実施形態において、トランザクションのインテリジェントな切り替えが提供される。クライアントが、ゲートウェイへトランザクションを送信し、このゲートウェイは、次にトランザクションをトランザクション処理装置へインテリジェントに切り替えるように構成されている。ゲートウェイは、アプリケーション・レベルの内容、伝送環境の現状、および/またはトランザクションの切り替えに関する動的ルールに基づいて、トランザクションを切り替えるように構成されている。例えばいくつかの考え得るサービス・プロバイダをトランザクションの種類向けに選択することができ、ゲートウェイは、考え得る別々のサービス・プロバイダへのネットワーク(単数または複数)を介した往復時間のみでなく、サービス・プロバイダがアプリケーション・レベルでトランザクションを完了し回答を返送するのに必要とする時間についても、監視することができる。
【0012】
本発明の実施形態による切り替えは、ネットワークの受信側ではなく、送信側において行われる。トランザクションは、特定のネットワークをわたってルーティングされるようにフォーマットされているだけではなく、ネットワークの宛て先にある特定の処理装置によって処理されるようにフォーマットされており、このようなフォーマットを受信ノードで行うのではない。従って、ネットワーク(単数または複数)の送信側にあるノードが、ネットワーク(単数または複数)の受信側にある処理装置のワークフローに関する情報を有している。一実施形態では、このことが、金融トランザクションの承認に必要な限定された数のフィールドなど、特定のフォーマットの限定された数のフィールドのみを扱うことによって可能かつ実用的となる。一実施形態では、承認を求めて金融トランザクションをルーティングするのに、インターネットと、プライベート金融ネットワークとのいずれかを選んでルーティングする。一方で、本発明の実施形態は、音楽、映像などの発注および配信など、あらゆる種類のトランザクションまたは内容に適用することができる。
【0013】
一実施形態では、アプリケーション・レベルのサービス・プロバイダが、ネットワーク(単数または複数)上で自分たちのサービスを発行、通知、または登録することができる。本発明の実施形態によるゲートウェイが、これらの発行されたサービスの全てまたは選択されたものを、受信して保存することができる。ゲートウェイは、イシュアが信用のある事業体(登録されている銀行または売買業者など)であることを検証し、イシュアのサービスが、ゲートウェイのクライアント(単数または複数)のトランザクションに関係があるかどうかを判断する。サービスは、一日の終わりまで待つこと、あるいは人間のオペレータが介入することを必要とせずに、動的に登録および更新することができる。
【0014】
一実施形態では、サービス・プロバイダが提供するサービスの保存されている詳細を使用することにより、ゲートウェイが、トランザクションをどのサービスへ向けて送信するかを選択できるだけではなく、サービス・プロバイダに適するように、トランザクションをアプリケーション・レベルでフォーマットすることができる。加えて、トランザクションをネットワークを通じてサービス・プロバイダへ送信する前に、ゲートウェイにて、何らかの事前処理または調整ステップを実施することができると考えられる。あるいは、一部または全ての場合において、サービス・プロバイダから受け取るルールに従って、トランザクション処理を全てゲートウェイにて行うことも可能と考えられる。例えば、或る閾値より低額のクレジット・カード取引については、承認を求めて銀行へ行く必要がないばかりでなく、ネットワークを通じてクレジット・カード会社へ行く必要もないまま、承認することが可能となり得る。
【0015】
一実施形態では、クライアントが、どのサービス・プロバイダを選択するか判断するためのルールまたは基準を指定することができる。上記のルールまたは基準は、ゲートウェイに保存することができる。これらのクライアント基準については、トランザクションに先立ってロードすることもでき、あるいはトランザクションメッセージが送信される直前または直後にロードすることもできる。
【0016】
一実施形態では、本発明によるゲートウェイ機能が、多数のゲートウェイへ分配されている。各ゲートウェイは、物理的にはネットワークのエッジ、クライアントのアクセス点に位置し、さらにはクライアントの物理的な構内にあってもよい。ゲートウェイは、接続しているクライアント(単数または複数)に関する情報を保存し、他のゲートウェイが接続しているサービスに関する情報については他のゲートウェイの提供に依存している。これは、ネットワークのパケット送信のために、接続している他のルータからテーブル情報を入手するルータに若干類似しているが、ただし、本発明の実施形態ではアプリケーション・レベルのサービスを扱っているところを別にする。各ゲートウェイは、自分あるいは自分のクライアントが関心のあるブロードキャスト・サービス・プロバイダの情報を保存するだけでよく、それ以外の接続が必要になる可能性もあるとはいえ、それが接続する他のゲートウェイのアドレスを保存するだけでよい。
【0017】
本明細書に開示されている本発明の性質および利点について、本明細書の残りの部分、および添付の図面を参照することによって、さらに理解することができる。
【発明を実施するための最良の形態】
【0018】
(処理の概要)
一実施形態において、トランザクションのインテリジェントな切り替えが提供される。トランザクションは、クレジット・カード承認、デビット・カード取引、または電子小切手取引とすることができる。トランザクションのその他の例としては、賞提供企画においてポイントまたは他の報酬を与えること、Verified by Visa認証用のパスワードを確認すること、送金を行うこと、Visa Buxxカードまたは給与カードなどの料金前払い式カードから支払いを引き落とすこと、携帯電話、ページャ、PDAなどから近接型の支払いを処理すること、健康保険、自動車保険、または他の保険の適用対象範囲を判断することなどが挙げられる。クライアントは、トランザクションをゲートウェイへ送信し、ゲートウェイは、次に、トランザクションをサービス・プロバイダのトランザクション処理装置へインテリジェントに切り替えるように構成されている。クライアントは、POS、POSデバイスまたはECR(electronic cash registers:電子式金銭登録機)とネットワーク接続された売買業者のコンピュータ、キオスク(クーポンまたは資金の転送用など)、インターネット・ウェブ・サイト・サーバなどである可能性がある。
【0019】
ゲートウェイは、トランザクションのアプリケーション・レベルの内容、伝送環境の現状、および/または動的ルールに基づいて、アプリケーション・レベルにて切り替えを決定するように構成されている。アプリケーション・レベルの内容は、トランザクション処理装置がトランザクションを処理するにあたって処理または使用する情報であり得る。一実施形態では、情報が、OSI第7層の情報であり得る。この層は、直接、トランザクション処理装置またはエンド・ユーザに対して機能する。この層には、クレジット・カード承認、デビット・カード取引のアプリケーションなどのアプリケーションが含まれている。アプリケーション層のプロトコルの例としては、FTP(File Transfer Protocol:ファイル転送プロトコル)、NFS(Network File System:ネットワーク・ファイル・システム)、CIFS(Common Internet File System:インターネット共有ファイル・システム)、HTTP(Hyper Text Transfer Protocol:ハイパー・テキスト転送プロトコル)、データベース・クエリ、SQL(Standard Query Language:標準問い合わせ言語)、およびXML(Extensible Markup Language:拡張マークアップ言語)が挙げられる。例えば、クレジット・カード承認において、アプリケーション・レベルの内容としては、クレジット・カード番号、個人アカウント番号(PAN:personal account number)、顧客アカウント番号、トランザクションの総額などが挙げられる。トランザクション処理装置は、トランザクションを処理するためにこの情報を使用すればよい。
【0020】
伝送環境の現状には、トランザクションを伝送できるネットワークおよびトランザクションを処理できるトランザクション処理装置に関連するリアルタイムの情報が含まれている。リアルタイム情報としては、ネットワークまたはトランザクション処理装置の健康状態、ネットワークまたはトランザクション処理装置の利用可能性、トランザクション処理装置のアプリケーション処理速度などを挙げることができる。
【0021】
動的ルールは、トランザクションのインテリジェントな切り替えの方法を決定するのに使用される情報であり得る。ルールは、アプリケーション・レベルの内容および伝送環境の現状に従ってトランザクションを切り替えるのに使用される。例えば、ルールは、或る特定のアプリケーション・レベルの内容および伝送環境の現状に応じて、サービス・プロバイダの提供する或る特定のサービスが選択されるように指定することができる。さらに、ルールを使うと、サービス・プロバイダがトランザクションを処理するトランザクション処理装置を選ぶことができる。例えば、或る特定の国が国内トランザクション用に局所的な処理を必要とすることがあり、故に局地的な処理センタへのルーティングを必要としている場合がある。これらのルールは、選択をするために、ネットワーク費用、サービス費用などの静的な情報も考慮に入れている。ルールは、ゲートウェイを停止させることなく、動的に変更することができる。
【0022】
ゲートウェイは、ルールに従って、トランザクションに対するサービスを実施することもできる。サービスには、アプリケーション・レベルの内容を処理することも含まれ得る。例えば、トランザクション処理装置が、様々な形式でトランザクションを処理するように構成されているとよい。選択された処理装置が、トランザクションにおける現在のアプリケーション・レベルの内容とは異なる形式のアプリケーション・レベルの内容を処理するように構成されていることもある。従って、ゲートウェイが、アプリケーション・レベルの内容を新しい形式へ変更するとよく、よって選択されたトランザクション処理装置がそれを処理することができるようになる。故に、ゲートウェイは、アプリケーション・レベルにて、トランザクションにある情報を変更することがある。このことは、パケット・レベルで情報を見直すこととは異なる。従来、トランザクションはパケットに分割することがあり得る。ルータは、パケット内の情報を見て、適宜パケットをルーティングすることができる。しかし、パケット・レベルで情報を見ることでは、ルータが、トランザクションのアプリケーション・レベルの内容を使用してサービスを実施できるようにはならない。例えば、トランザクション全体に関するアプリケーション・レベルの内容を見ることによって、このトランザクションが、トランザクションに適用される適切なサービスを受けてインテリジェントにルーティングされることが可能となる。トランザクションに関する情報を伝える個別のパケットが個別に処理されている場合、このトランザクションのアプリケーション・レベルの内容は、全体としては処理されない。
【0023】
故に、ゲートウェイが、アプリケーション・レベルの内容、伝送環境の現状、および/または動的ルールに基づいて、アプリケーション・レベルにてトランザクションをインテリジェントに切り替えるように備えられる。ゲートウェイは、さらに、切り替えの決定に基づいて適用されるサービスを提供し得る。
【0024】
(システムの概要)
図1は、本発明の一実施形態に従ってトランザクションを処理するシステム100を表している。図示されているように、システム100は、1つ以上のクライアント102、1つ以上のゲートウェイ104、1つ以上のネットワーク106、および1つ以上のトランザクション処理装置108を含んでいる。以下の説明は単独のゲートウェイ104に関して記載されるが、当然のことながら、複数のゲートウェイ104が備えられ、後述のあらゆる機能が実行されてもよい。さらに、ゲートウェイがクライアントと隣り合って示されているが、ゲートウェイは、トランザクション処理装置と隣り合い、トランザクション処理装置とネットワーク106との間に配置されてもよい。
【0025】
クライアント102は、トランザクションを送信するように構成されている任意のシステムを含む。例えば、クライアント102には、ユーザのトランザクションを実行するコンピュータ・デバイスのシステムを含めることができる。一例では、クライアント102には、販売時点管理(POS:point of sale)デバイスが含まれていてもよく、これは、クレジット・カード承認、小切手カード取引などのための、クレジット・カード情報、暗証番号、名前などのユーザ情報を受信する。クライアントは、店舗にあってポイントまたはクーポン情報を確認するためのキオスク、あるいは送金用のキオスク、あるいは携帯電話または他のデバイスからの無線ユーザ入力を受信するノード、あるいはウェブ・サイト・サーバなどの可能性もある。クライアントは、さらに、売買業者のサーバであることも考えられ、POSデバイスはこれを介してネットワーク接続をしている。
【0026】
次に、クライアント(例えばPOSデバイス)が、トランザクション処理装置108からのトランザクションサービスを要求するトランザクションを送信し得る。トランザクションサービスは、トランザクション処理装置108が実施することのできる任意の措置であり得る。一実施形態では、これらのトランザクションサービスが、クライアント102によって実施されているトランザクションに関して価値を付加する。トランザクションサービスの例としては、クレジット・カード承認、デビット・カード取引、電子小切手取引などを容易化することが挙げられる。トランザクションサービスには、さらに、トランザクションの処理、またはデータの交換を含めることもできる。
【0027】
ゲートウェイ104は、クライアント102からトランザクションを受信し、このトランザクションを、ネットワーク106を介してトランザクション処理装置108へ送るように構成されているシステムを含む。一実施形態では、ゲートウェイ104は、ネットワーク106のエッジに位置している。例えば、ゲートウェイ104は、クライアント102のアクセス点にあってもよく、あるいはクライアント102の構内にあってもよい。ネットワーク106のエッジは、トランザクションが、ネットワーク106を経由するルーティングを設定され得る地点とすればよい。例えば、ゲートウェイ104は、トランザクション処理装置108を選択して、ネットワーク106のルータへ要求を送信することができる。トランザクションは、多数のパケットに分割することができる。ルータは、故に、トランザクションのパケットをネットワーク106を経由させてトランザクション処理装置106へ送ると考えられる。
【0028】
ネットワーク106は、データを転送するように構成されている任意のネットワークとすればよい。例えば、ネットワーク106としては、任意のパケット・ベースのネットワーク、公衆交換電話網(PSTNs:public switched telephone networks)、無線ネットワーク、インターネット、プライベート金融ネットワークなどを挙げることができる。
【0029】
一実施形態では、複数のネットワーク106が、本質的に異なっている、および/または信頼性のないネットワークであってもよい。ネットワークは、別々の事業体によって制御されていてもよく、別々のプロトコルおよび形式を用いてデータを送ってもよく、別々の伝送方法を用いてデータを送ってもよいというような点で、本質的に異なっている。例えば、複数のネットワーク106が、別々の事業体によって制御されていてもよい。一例としては、第1のインターネット・サービス・プロバイダ(ISP:Internet Service Provider)がネットワーク106−1を維持管理し、第2のインターネット・サービス・プロバイダがネットワーク106−2を維持管理していてもよい。トランザクションは、一実施形態の中で、ネットワーク106−1、もしくはネットワーク106−2のいずれかを経由して送られればよい。
【0030】
さらに、複数のネットワーク106が、別々の種類であってもよい。例えば、ネットワーク106−1が、データのパケットを送る非同期転送モード(ATM:asynchronous transfer mode)のネットワークであり得る。別のネットワーク106−2は、データを無線で送信する無線ネットワークであってもよい。さらに、もう1つ別のネットワーク106が、VisaNetネットワークなど一事業体用のプライベート・ネットワークであってもよい。ネットワーク106は2つしか図示されていないが、当然のことながら、もっと多数のネットワーク106を設けてもよい。さらに、これも当然のことながら、トランザクションは、複数のネットワーク106を経由して送られてもよい。例えば、トランザクションは、ネットワーク106−1を経由し、次いでネットワーク106−2を経由して、その後トランザクション処理装置108へ送られてもよい。
【0031】
ネットワーク106は、さらに、信頼性がないこともあり得る。ネットワークの性質から、いつでも機能しなくなることがあり得る。従って、トランザクション処理が中断されるのを避けるために、フェイルオーバ処理が必要である。
【0032】
サービス・プロバイダは、クライアント102へ提供することのできるサービスを登録および発行し得る。クライアント102は、サービスに対して登録し、トランザクションをサービス・プロバイダへ切り替えさせることができる。サービス・プロバイダは、クライアント102へサービスを提供するように構成されている不特定多数のトランザクション処理装置108を有し得る。一実施形態では、トランザクション処理装置108が、金融トランザクションを処理する。例えば、トランザクション処理装置108は、イシュア、アクワイアラ、売買業者、またはその他任意のサービス・プロバイダと関連づけられ得る。一例では、トランザクション処理装置108が、クレジット・カード取引の承認を容易化する。
【0033】
サービスは、複数のトランザクション処理装置108によって提供することができる。例えば、サービス・プロバイダが、クライアント102へサービスを提供できるデータ・センタを多数有し得る。従って、このサービスに関するトランザクションは、このサービスを提供できるトランザクション処理装置108のうちのいずれかに切り替えられ得る。トランザクション処理装置108は、ゲートウェイ104によって、アプリケーション・レベルの内容、伝送環境に関する状況情報、および/または動的ルールに基づいて選択され得、これらは全て動的に変化していてもよい。
【0034】
アプリケーション・レベルのサービスは、動的に変更されることがある。利用可能なサービスが、変更されたり、別の処理装置へ移動されたり、維持管理または障害を理由に利用不可能となっていたりすることが考えられる。
【0035】
伝送環境に関する状況情報も、動的に変化している場合がある。故に、ゲートウェイ104は、トランザクションの切り替え方法を決定するにあたり、伝送環境に関する状況情報を判断する。例えば、ネットワーク106の現在の健康状態、ネットワーク106の利用可能性、トランザクション処理装置108の利用可能性、データがネットワーク106を介して転送されている速度、トランザクションをネットワーク106を介して転送する費用、トランザクションを処理する費用、アプリケーションがトランザクションをアプリケーション・レベルで処理するのに要する時間の長さなどについて判断され得る。
【0036】
伝送環境に関する状況情報の動的な情報に加えて、何らかの比較的静的な情報についても判断され得る。例えば、静的な情報としては、トランザクションの費用、トランザクション処理装置108がトランザクションを処理するのに必要なフォーマットなどが挙げられる。ゲートウェイ106は、トランザクションをどのように送るかを決定するのに、動的および静的な情報を使用し得る。
【0037】
動的ルールは、トランザクションをインテリジェントに切り替える方法を決定するのに使用される情報であるといえる。ルールは、動的にロードすることができる。例えば、サービス・プロバイダが、サービスに関するルールを登録し得、これが、ゲートウェイ104へ動的にロードされ得る。さらに、クライアントが、サービスおよびプロバイダのルールに加入して、自分のトランザクションをサービス・プロバイダへ切り替え得る。これらのルールも、ゲートウェイ104へ動的にロードされ得る。
【0038】
故に、ゲートウェイ104は、トランザクションを処理することのできる、サービスのためのトランザクション処理装置108を動的に選択することができる。選択されたトランザクション処理装置108が処理できるようにトランザクションをフォーマット可能であるなど、選択されたトランザクション処理装置に特有のビジネス・サービスをトランザクションに対して実施することもできる。次いで、トランザクションを、選択されたネットワーク106を介して、選択されたトランザクション処理装置108へ送信することができる。トランザクション処理装置108および/またはネットワーク106を動的に選択することによって、ゲートウェイ104は、トランザクション処理装置108および/またはネットワーク106のあらゆる障害からクライアント102を隔離している。故に、このことは、極めて高いサービスの利用可能性を提供している。ゲートウェイ104は、トランザクション処理装置108の停止期間を生じさせるような、必要とされるあらゆる変更から、クライアント102を隔離している。
【0039】
(ゲートウェイ104の概要)
図2は、本発明の一実施形態によるゲートウェイ104のさらに詳な説明を図示している。図のように、ゲートウェイ104には、1つ以上の要求ハンドラ202、インバウンド・メッセージ・ストリーム・パーサ204、セキュリティ・マネージャ206、適応型ルート・セレクタ208、フロー・ハンドラ210、アウトバウンド・メッセージ・ストリーム・ビルダ212、メッセージ・ディスパッチャ214、コーディネータ216、管理モジュール218、設定ローダ220、ルール・データベース222、状況情報データベース224、および動的情報モニタ226が含まれる。
【0040】
要求ハンドラ202は、クライアント102からトランザクションを受信するように構成されている。クライアント102は、ハイパー・テキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、拡張マークアップ言語(XML)、ISO8583標準などの様々なプロトコルおよび形式でトランザクションを送信することができる。要求ハンドラ202は、多様なプロトコルおよび形式で送信されるトランザクションのためにインターフェースを備え、トランザクションを、インバウンド・メッセージ・ストリーム・パーサ204へ提供する。例えば、ISOメッセージのハンドラは、クライアント102からISO8583要求を受信し、それをインバウンド・メッセージ・ストリーム・パーサ204へ渡すように構成されている。同様に、XMLメッセージのハンドラ、HTTP要求のハンドラ、およびFTP要求のハンドラは、XML、HTTP、およびFTPのメッセージおよび/または要求に対処することができる。故に、要求ハンドラ202は、ゲートウェイ104が、様々なプロトコルおよび形式でメッセージを受信できるようにしている。上記の形式およびプロトコルについて説明がなされているが、当業者には当然のことながら、他にも要求ハンドラ202が処理できる形式およびプロトコルがある。
【0041】
インバウンド・メッセージ・ストリーム・パーサ204は、要求ハンドラ202からトランザクションを受信し、この要求を正規の形式へ変換するように構成されている。インバウンド・メッセージ・ストリーム・パーサ204は、メッセージを様々な形式で受信し、これらの要求を正規の形式へ処理することができ、ひいては、これがゲートウェイ104の他の構成要素によって処理可能となる。従って、多様な形式のトランザクション要求を、ゲートウェイ104によって処理することができる。インバウンド・メッセージ・ストリーム・パーサ204は、さらに、拡張可能なアーキテクチャを備え、その中で、ゲートウェイ104によって処理できる新しい形式を使用可能にすることができる。新しい形式が追加された場合、インバウンド・メッセージ・ストリーム処理装置104には、この新しい形式を正規の形式へ変換することが追加される。このように、正規の形式が使用されるために、新しい形式が追加されるときにも、ゲートウェイ104の全構成要素への変更は必要ないのである。正しくは、インバウンド・メッセージ・ストリーム・パーサ204は、要求を、ゲートウェイ104の他の構成要素によって処理可能な正規の形式にパースするように構成されている。インバウンド・メッセージ・ストリーム処理装置204のさらなる詳細については後に記す。
【0042】
セキュリティ・マネージャ206は、トランザクションに関するセキュリティ機能を提供するように構成されている。例えば、プラガブル(pluggable)認証および承認、ロール・ベース・アクセス制御(RBAC:role−based access control)、暗号化、ファイル保全などのセキュリティ機能を提供できる。プラガブル認証および承認は、認証および承認用に標準インターフェースを備え、故に、現行の方法に影響を及ぼすことなく、認証の新しい方法およびアクセス制御の追加が可能となる。当業者には当然のことながら、他にもトランザクションへ付加することのできるセキュリティ機能がある。
【0043】
適応型ルート・セレクタ208は、トランザクションを、トランザクション処理装置108へ、ネットワーク106を介して切り替えるように構成されている。適応型ルート・セレクタ208は、アプリケーション・レベルの内容、伝送環境の現状、および/または動的ルールに基づいて、トランザクションを切り替える。
【0044】
適応型ルート・セレクタ208は、ルール・データベース222に含まれているルール、および状況情報データベース224に含まれている動的状況情報を使用して、トランザクションをルーティングする。上述のように、状況情報は、状況情報データベース224に保存されているとよい。一実施形態では、状況情報は動的であってもよい。動的情報モニタ226が、状況情報を監視し、判断することができる。動的情報は、次いで、状況情報データベース224に保存される。状況情報の例としては、ネットワーク106の利用可能性、トランザクション処理装置108の健康状態、トランザクションごとの費用、アプリケーションが前のトランザクションをアプリケーション・レベルで処理するのに要した時間などがある。一実施形態では、動的情報モニタ226は、トランザクションが受信されたら、動的状況情報をランタイムに判断し得る。別の実施形態では、動的情報モニタ226は、動的状況情報を或る一定の間隔で判断し得る。
【0045】
トランザクション処理装置108によって実施される様々なサービスのそれぞれが、動的情報モニタ226によって実施することのできるプローブを指定し得る。プローブが送信され、トランザクション処理装置108および/またはネットワーク106の状態に基づいて情報が収集されることが可能となる。例えば、動的情報モニタ226は、ネットワークが利用可能かどうかを判断するために、ネットワークにテスト送信して応答を求めることができる。トランザクション処理装置108またはネットワーク106と連絡がつかなかったら、利用不可能とみなせばよく、状態の情報を状況情報データベース224内に反映させる。或るサービス用のトランザクション処理装置108全てと連絡がつかなかったら、そのときはこのサービスが利用不可能であるとみなせばよい。この場合、ゲートウェイ104が、このサービスを提供している他のサービス・プロバイダを指定し得る。さらに、トランザクション処理装置108上のアプリケーションがトランザクションを処理するのに要する時間が測定され得る。例えば、アプリケーションがクレジット・カード承認を承認するのに要する期間が測定される。この測定によって、トランザクションを切り替えるのに使用することのできるアプリケーション・レベルの状況が提供される。
【0046】
ルール・データベース222は、トランザクションを処理するネットワーク106および処理装置108に加えてトランザクション用のサービスにも関する判断ルールを含んでいる。ルールは、クライアントの基準も表し得る。例えば、サービスが選択されるためには、ルールとして或る特定の状況情報およびアプリケーション・レベルの内容を満たす必要がある。クライアントが、トランザクションのサービスを選択するのに使用可能なクライアント独自のルールを用意してもよい。一例では、クライアント102に関するトランザクションを受信したら、適応型ルート・セレクタ208が、クライアント独自の選択ルールを判断し、このトランザクションに対処できるサービスを判断し得る。このサービスを提供しているサービス・プロバイダへトランザクションを切り替えるために、トランザクションからアプリケーション・レベルの内容を判断し、および/または状況情報データベース224から動的状況情報を判断する。アプリケーション・レベルの内容、および/または状況情報をルールに適用し、このルールに従って、トランザクションを処理できるサービス・プロバイダを判断する。クライアント102は、例えば、費用など或る特定の要素に基づいて、もっとも安価なサービスが第1に選択されるべきであるが利用不可能の場合にはより費用のかかる第2のサービスが選択されるように、指定することができる。さらに、アカウント番号などのアプリケーション・レベルの内容に基づいて、トランザクションを、或る特定のクレジット・カード・サービスへ切り替えることもできる。例えば、或る特定のアカウント番号が、クレジット・カードかデビット・カードかを示すか、あるいは特定のポイントまたは報酬システムが適用されていることを示してもよい。他のアカウント番号またはフィールドは、送金またはパスワード検証(例えば、Verified by Visa)など、他のサービスの必要性を示すことが考えられる。さらに、アプリケーション・レベルの内容には、クライアントの場所、およびトランザクションが局所的な処理を必要とするか、または異なる国の処理装置108への送付が必要かを指示する、何らかの地域または国を指定する規程を含めることもできる。
【0047】
サービスには、さらに、サービスに関するルールを指定するサービス仕様が含まれ得る。例えば、ルールは、トランザクションに必要なメッセージ形式、サービスを提供するトランザクション処理装置108のネットワーク・アドレス、トランザクション処理装置108へのトランザクション切り替えに関する優先順位、サービスに適格なアカウント番号の範囲などを指定し得る。これらのルールは、後にさらに詳細に述べるように、登録にあたり、サービス・プロバイダによって提供される。サービス・プロバイダは、ルールを直接ゲートウェイ104へロードすることができ、ゲートウェイが、次に、他の関与するゲートウェイへルールを発行すると考えられる。
【0048】
ルールは、トランザクションを処理することのできるフローを指定し得る。フローは、トランザクションをトランザクション処理装置108へ送信するための処理に対処する。メッセージは、その後、選択されたフロー・ハンドラ210へ送信される。トランザクション処理装置108およびネットワーク106が選択された後、フロー・ハンドラ210は、トランザクションに対してビジネス・サービスを実施し得る。例えば、別々のトランザクション処理装置108は、別々の形式でトランザクションを処理することが考えられる。フロー・ハンドラ210は、選択されたトランザクション処理装置108に適切な形式を判断し、その形式にトランザクションをフォーマットし得る。他のビジネス・サービスとしては、通貨の換算、機密情報を扱うフィールドの暗号化、或る特定の閾値を下回るトランザクション額に対するクライアント側の代理処理などが挙げられる。
【0049】
フロー・ハンドラ210には、複数のフローを含めることができる。各フローは、あるクラスのメッセージを処理する一連のビジネス・サービスに対処し得る。各フローには、フローにおけるビジネス・サービスを全て調整するフロー・ハンドラが含まれている。フローの範囲内の一続きのサービスは、フロー仕様によって指定され、設定ローダ220を使用してランタイムにロードすることができる。フロー仕様は、着信メッセージにどのように対処するかを決定する一続きのサービスである。各サービスは、特定の機能を実行するソフトウェア・アプリケーション・コードである。新しいサービスおよびフロー仕様については、ゲートウェイ104へ動的にロードすることができる。
【0050】
フローの中で、フロー・ハンドラ210がトランザクションを処理した後、メッセージはアウトバウンド・メッセージ・ストリーム・ビルダ212へ送信される。ビルダ212は、決定されたトランザクション処理装置108によって求められているメッセージ形式に基づいて、正規の形式からアウトバウンド・メッセージをビルドするように構成されている。ビルダ212は、故に、正規のメッセージ形式に基づいて任意のメッセージ形式でメッセージを生成するように構成されている。アウトバウンド・メッセージ・ストリーム・ビルダ212については、後にさらに詳述する。
【0051】
メッセージ・ディスパッチャ212は、トランザクション処理装置108へトランザクションを送信するように構成されている。ディスパッチャ214は、トランザクションが選択されたトランザクション処理装置108へ確実に届くようにし得る。ディスパッチャは、多様なトランザクション処理装置108との接続を管理し、機能しなかったトランザクション処理装置108への再接続を試み、さらにトランザクション処理装置108およびネットワーク106の状態を動的情報モニタ226へ提供し得る。一実施形態では、トランザクションがパケット化、すなわち一連のパケットに分割されており、ルータへ送信され得る。ルータは、パケットを、ネットワーク106を経由させてトランザクション処理装置108へ送り得る。
【0052】
コーディネータ216は、ゲートウェイ104の複数の処理装置を調整し、トランザクションの適正な処理が確実に行われるようにする。さらに、コーディネータ216は、アプリケーション管理、ソフトウェア配布、システム監視およびフェイルオーバ機能に関するサービスをゲートウェイ104に提供する。アプリケーション管理は、アプリケーションおよびサービスの開始および停止を局所的および遠隔的にサポートする。アプリケーション管理は、さらに、ゲートウェイ104に新しいアプリケーションおよびサービスが追加できるようにする。ソフトウェア配布は、ソフトウェア更新をゲートウェイ104上へインストールできるようにし、必要に応じてロールバック更新のサポートを行うことを含む。システム監視サービスは、メモリ、CPU、ネットワーク・インターフェースなどのシステム構成要素の主要なパラメータ、および処理を監視し、設定されたパラメータが閾値から逸れた場合には警告を発する。コーディネータ216は、さらに、処理の失敗を検出したら、処理を再始動させる。コーディネータ216は、さらに、(複数ゲートウェイのクラスタ配置の場合に)ハートビート・メカニズムを使用してピア・ゲートウェイ104の健康状態を監視し、ピア・ゲートウェイ104が機能しない場合には、ピア・ゲートウェイ104の処理負荷を引き継ぐ。
【0053】
(ルールの動的ロード)
サービスの初期登録(以下に記載)の後、ルールおよびゲートウェイ104によって実施されるビジネス・サービスは動的に変更されることがある。管理モジュール218および設定ローダ220が、ルール・データベース222およびフロー・ハンドラ210へ変更を動的にロードするように構成されている。
【0054】
設定ローダ220は、設定の変更、ルーティングのルール、新しいフロー仕様などを、ルール・データベース222へランタイムにロードするように構成されている。故に、設定ローダ220によって、ルール・データベース222内のルーティングのルールを動的に再構成できるようになっている。ルールベースは、複数バージョンのルールオブジェクトを維持管理しており、ルールベースの現行バージョンと同期を取ったリファレンスを有する。設定ローダ220は、ルールベースへ更新をロードする前に、使用中のルールベースのシャドウ・コピーを作成し、次いでバージョン変更する。次いで、更新されているオブジェクトごとにオブジェクトの新インスタンスを作成し、ルールベースの新バージョンにおいてリファレンスを更新する。全ての更新が完了したら、リファレンスがルールベースの新バージョンを指し示すように変更する。
【0055】
管理モジュール218は、管理上の措置が実施可能となるように構成されている。管理モジュール218は、ユーザ・エージェントが、1つ以上のゲートウェイ104を管理するのに使用することができる。例えば、管理モジュール218を使うと、ルール・データベース222の中へ新しいルールを定義することができ、あるいはルーティングのルールを動的に変更することができる。さらに、管理モジュール218を使用して、フロー・ハンドラ210用の新しいフロー仕様のロードおよびアンロード、ビジネス・サービスの開始および停止、さらに設定のロードおよびアンロードを行うこともできる。その後、設定ローダ220が、変更を実施するように構成されている。
【0056】
本発明の実施形態の動的な変更は、サービスのモジュール化およびサービスのランタイム起動を組み合わせて、フローを通してメッセージ処理を行う(例えば、上述のフローの説明を参照)ことにより、可能となっている。適応型ルート・セレクタ208は、新しいトランザクションを受信すると、ルールベースの現行バージョンを読み、そのルールを適用して適切なフローを選択する。フロー・ハンドラ210は、トランザクションの全期間中にわたって特定のバージョンのフローを使用するので、各フロー仕様は、サービス、フローおよびルールの特定のバージョンを参照する。故に、現行のトランザクションによって現在使用されているバージョンとは異なるバージョンにおいて更新が行われるために、その時点で現行のトランザクションへ干渉することなくこれらを更新することが可能である。
【0057】
(トランザクションの処理)
図3は、本発明の一実施形態に従ってトランザクションを処理する方法の簡略化したフロー図300を表している。ステップ302で、クライアント102からトランザクションを受信する。トランザクションは、クレジット・カード承認、小切手カード取引など、いかなる種類のトランザクションであってもよい。
【0058】
ステップ304で、トランザクションのアプリケーション・レベルの内容が判断される。上述のように、アプリケーション・レベルの内容は、トランザクションを処理するのに使用される。例えば、アプリケーション・レベルの内容は、クレジット・カード番号、PIN、加盟銀行(アクワイアラまたはイシュア)の名前などであり得る。アプリケーション・レベルの内容は、全体としてとらえられ得る。例えば、トランザクションが多数のパケットにパケット化されていたら、アプリケーション・レベルの内容は、複数パケットのペイロードの中にあると考えられる。この情報は、トランザクションのアプリケーション・レベルの内容に組み立て直され得る。
【0059】
ステップ306で、伝送環境の現状について判断される。例えば、サービスを提供できるトランザクション処理装置の健康状態について判断される。さらに、トランザクションを送ることのできるネットワーク106のネットワーク健康状態についても判断され得る。この情報は、伝送環境の現在の状況が提供されるように、リアルタイムに判断され得る。
【0060】
ステップ308で、サービスを判断すべく、アプリケーション・レベルの情報および/または伝送環境の現状に対してルールを適用する。例えば、或る特定のクライアント102を、或る特定のサービスと関連付けてもよい。Visaなどの処理装置のホストは、自分のトランザクションがVisaの所有するトランザクション処理装置108へ切り替えられることを望む場合がある。さらに、他の処理装置のホストが、自分たちのトランザクションを、Vitalなど二次的なトランザクション処理装置へ切り替えることを望む場合もある。
【0061】
ステップ310で、ルールを適用して、サービスに向けてトランザクションを切り替えるトランザクション処理装置および/またはネットワーク106を判断する。この決定は、ルールに適用されたアプリケーション・レベルの内容および/または伝送環境に関する現状に基づいて判断され得る。例えば、トランザクションを処理するサービスについて判断される。次に、ネットワークの利用可能性に基づいて適用できるトランザクション処理装置108が判断される。
【0062】
さらに、サービスを、多様なトランザクション処理装置108およびネットワーク106と関連付けてもよい。例えば、クレジット・カード承認が、或る特定のトランザクション処理装置108へ送信されるように構成され得る。さらに、小切手カード取引が、第2の一連のトランザクション処理装置108へ送信されるように構成されていてもよい。これらのルールは、クライアントおよび/またはトランザクションサービスに関して判断される。
【0063】
ステップ312で、要求に応じて、トランザクションに対する任意のビジネス・サービスがアプリケーション・レベルで実施され得る。例えば、トランザクションが、選択されたトランザクション処理装置108に求められている形式へフォーマットされ得、アプリケーション・レベルにある任意の情報がトランザクションに付加され得、あるいは他の任意のビジネス・サービスが実施され得る。
【0064】
ステップ314で、トランザクションは、選択されたトランザクション処理装置108へネットワーク106を介して切り替えられ得る。
【0065】
あるいは、他の実施形態では、ゲートウェイ104が、トランザクションをサービス・プロバイダへ切り替えることをせずに、トランザクションを処理するように構成されている。或る特定の基準が満たされていれば、ゲートウェイ104がトランザクションを処理できることを提示するルールを、サービス・プロバイダが指定すればよい。例えば、トランザクションが、或る特定の金額を下回っている場合などである。一例では、閾値より低額のクレジット・カード取引については、承認を求めて銀行へ行く必要がないばかりでなく、ネットワーク106を通じてクレジット・カード会社へ行く必要もないまま、承認することが可能となり得る。このことは、トランザクションがネットワークのエッジにおいて処理できるため、多数の利点を提供する。これは、ネットワークのボトルネックを解消し、分散化された処理システムを提供する。
【0066】
(サービスの作成および加入)
上述のように、ルールは、ルール・データベース222へ動的にロードすることができる。図4は、本発明の一実施形態に従って、トランザクション処理装置108が提供するサービスに関してゲートウェイ104へルールをロードする簡略化したフロー図400を表している。ステップ402で、サービス作成要求を受信する。例えば、サービス・プロバイダが、このサービス・プロバイダの提供しているサービスを指定するサービス作成要求を送信することによって、サービスの登録を試みてもよい。あるいは、トランザクション処理装置または他のサービス・プロバイダと関連しているゲートウェイ104が、新しいサービスを動的に通知してもよく、クライアントと関連しているゲートウェイは、それらの新しいサービスへの登録を始めるかどうかを判断することができる。新しいサービスは、送金サービス、新しいポイント・プログラムなどであることが考えられる。
【0067】
ステップ404で、サービスに関するルールを受信する。例えば、ルールが、サービスを処理することのできるトランザクション処理装置108のアドレスを指定し得る。ネットワーク・アドレスは、トランザクション処理装置108へトランザクションを送ることのできるIPアドレスまたは他の任意の識別番号とすればよい。加えて、要求をトランザクション処理装置108へ送るのに使用可能な、ネットワーク106に関する情報についても、受信され得る。ルールは、さらに、サービスの使用に関する基準を指定してもよい。例えば、メッセージの受信時に求められているフォーマットを指定している基準、サービスを使用する費用(固定費用およびトランザクションごとの費用の両方)、およびサービスの使用に関する他の任意の基準が受信され得る。ルールは、どのカードの種類あるいはどのアカウントの種類またはアカウント番号が、サービスに関して適格な範囲かまたは登録されているかを、指定することも可能と考えられる。
【0068】
ステップ406で、サービスに関するルールは、管理モジュール218によって、設定ローダ220を用いてデータベース222へ動的にロードされる。さらに、サービスに関してトランザクションを処理するのに必要なあらゆるフロー仕様が、フロー・ハンドラ202へロードされ得る。
【0069】
その結果、サービスが作成され発行されると、クライアント108が、サービスに加入することができる。図5は、本発明の一実施形態によるサービスに加入する方法の簡略化したフロー図500を表している。ステップ502で、作成されたサービスへ加入する要求をクライアント108から受信する。要求は、ウェブのポータルを介して、あるいは他の任意の方法によって、受信すればよい。クライアント102は、ゲートウェイ104に直接接触およびアクセスしてもよい。
【0070】
ステップ504で、サービスの使用に関するルールまたは基準の仕様を、クライアント108から受信する。この仕様は、クライアント108から受信したトランザクションに関するサービスを選択するのに必要な基準を示し得る。基準は、クライアント固有のものであってもよく、または多数のクライアント108にわたって(例えば、或る事業体の全POSデバイスに対して)一様であってもよい。さらに、仕様は、加入する各サービスに関してクライアント108が優先順位をつける形式にしてもよい。例えば、クライアントは、或るトランザクションに関しては第1サービスが選択されるが、そのサービスが機能していなければ、そのときには第2サービスが選択されるようにする、といった指定をすることができる。基準をさらに複雑にして、ネットワーク費用、サービス費用などを考慮に入れた複雑なルールを含めてもよい。
【0071】
ステップ506で、サービスの要求をルーティングするルールが生成される。これらのルールは、サービスが選択されるために、アプリケーション・レベルの内容および/またはネットワークの伝送環境の現状に基づいて満たす必要のある基準を指定し得る。
【0072】
ステップ508で、これらのルールが、ルール・データベース222へ動的にロードされ得る。従って、サービスは、サービスに加入するクライアント108にとって直ちに利用可能な状態になり得る。
【0073】
ステップ510で、サービスのフロー定義が生成される。フロー定義は、サービスをサポートするように構成され得る。一実施形態では、サービスのフロー定義が既に存在しており、生成する必要がなくてもよい。一方、クライアント108に特化したビジネス・サービスを実施する必要のある場合には、新しいフロー定義が生成され得る。
【0074】
ステップ512で、ステップ510にて生成されたフロー定義が、設定ローダ220によって動的にロードされ得る。
【0075】
一実施形態では、トランザクションが送信されるより前に、クライアント102からルールを受信することがある。例えば、クライアント102が、サービスに加入し、このサービスの使用に関するルールを準備してもよい。別の実施形態では、トランザクションが送信される直前または直後にルールが送信され得る。例えば、クライアント102が、トランザクションの前または後に送信されるメッセージに使用のルールを指定し得る。ルールは、次いで、ゲートウェイ104へ動的にロードされる。これにより、クライアント102が、ゲートウェイ104をランタイムに動的に構成することができる。
【0076】
(サービスに関するルールの分散化)
複数のゲートウェイ104がシステム内に配置されてもよい。各ゲートウェイ104は、接続しているクライアント102へ、独自のサービスを提供し得る。ゲートウェイ104は、ネットワーク106のエッジ、クライアントのアクセスのポイント、および場合によってはクライアント102の物理的な構内に位置することができる。一実施形態では、ゲートウェイ104は、ゲートウェイ104によって提供されているサービスに関する情報のみを保存する。様々なゲートウェイ104が、様々な一連のサービスに関する情報を有すればよい。従って、サービス・プロバイダによって登録された、あるいはクライアント102によって加入された多様なサービスの提供に関する情報は、ゲートウェイ104全体にわたって配布されてもよく、すなわち分散させられ得る。情報の分散化によって、ゲートウェイ104は、他のゲートウェイ104に連絡して、サービスの情報について問い合わせるか、あるいはサービスの情報を提供するかのいずれかを行うように構成されている。
【0077】
図6は、本発明の一実施形態に従ってゲートウェイ104の分散型システムを提示するシステム550を表している。図のように、複数のクライアント102およびゲートウェイ104が提示されている。ゲートウェイ104は、1つ以上のネットワーク106のエッジに位置している。
【0078】
各ゲートウェイ104は、1つ以上のクライアント102に接続し得る。記述のために、単一のクライアント102がゲートウェイ104に接続して示されているが、当然のことながら、多数のクライアント102が、ゲートウェイ104に接続していてもよい。さらに、当然のことながら、ゲートウェイ104は、クライアント102ではなくトランザクション処理装置108に接続していてもよい。
【0079】
ゲートウェイ104は、ネットワーク106のエッジにて接続しているクライアント102に関するトランザクションを処理するように構成されている。例えば、ゲートウェイ104−1は、クライアント102−1に関するトランザクションを処理するように構成されており、ゲートウェイ104−2は、クライアント104−2に関するトランザクションを処理するように構成されている。ゲートウェイ104−1は、クライアント102−1へ提供されるサービスに関する情報に加え、クライアント102−1の優先順位に関する情報も保存している。同様のことが、他のゲートウェイ104およびクライアント102についても当てはまる。
【0080】
ゲートウェイ104は、サービスに関する情報の配布を容易化するように、他のゲートウェイ104の連絡先を維持管理している。例えば、第1ゲートウェイ104が、現在第1ゲートウェイ104の提供していないサービスに関する情報を必要とするとき、このサービスを提供している第2ゲートウェイ104に連絡して、サービスに関するルールなどの情報を送信してもらうことができる。別の実施形態では、第1ゲートウェイ104は、サービスに関するトランザクションを第2ゲートウェイ104へ送信してもよく、それにより第2ゲートウェイ104がトランザクションを処理できる。この場合、第2ゲートウェイ104は、トランザクションを、トランザクション処理装置108へ切り替え、回答を受信し、その後この回答を第1ゲートウェイ104へ返送することができる。
【0081】
連絡先は、さらに、他のゲートウェイ104へサービスに関する情報を配布するのに使用してもよい。例えば、サービス・プロバイダが、第1ゲートウェイ104上に新しいサービスをアップロードする場合がある。このサービスに関するルールは、その後、他のゲートウェイ104へ配布されるとよい。例えば、エッジにてクライアント102と接続しているゲートウェイは、クライアント102がサービスに関心を持っていれば、ルールを送信される。クライアント102は、独自のルールをアップロードすることもできる。
【0082】
各クライアントは、自分の望むサービスに関するルールのみをロードすればよいので、必要とされるメモリおよび更新が削減され、ゲートウェイの処理速度は改善される。例えば、クライアントがホテルであれば、ポイントあるいは報酬サービスを必要とするが、送金サービスは必要としないこともある。所望のサービスだけをロードすることによって、ホテルは、性能に影響を及ぼすことなく、ゲートウェイ上により多くの情報を獲得できると考えられる。例えば、ポイント・プログラムで使っているアカウント番号もしくはアカウント番号の範囲をゲートウェイ上に保存することができ、そのため或るユーザがポイントに適格であるかどうかの判断を局所的に行うことができる。一方、クライアントがウェブ・サイトであれば、Verified by Visaサービスの方により関心を示すことが考えられる。同様に、或るカード会員が加入済であるか、およびパスワードを有するかなど、Verified by Visaに固有の情報およびルールを局所的に保存することが可能と考えられ、それによりパスワードがネットワーク上に出て行かなくとも、ユーザが加入者か否かの判断をするためにパスワードを促すことができるようになる。或る特定の売買業者が或る特定の会社と多くトランザクションをするのであれば、Visaビジネス・カードにより高い関心を持ち、その特定の売買業者での購入を承認されている購入カード・アカウント番号の局所的なリスト作成を望むこともあり得る。
【0083】
このようにして、クライアント102およびサービス・プロバイダは、直接ゲートウェイ104と相互作用して、サービスをロードまたは要求することができる。これは、ゲートウェイをクライアントの必要性に合ったものにすることができるので、クライアント102にとって有利であるといえる。さらに、ゲートウェイ104はクライアント・サイトにて維持管理することができるので、ゲートウェイ104へ容易にかつ遅滞なくアクセスすることができる。
【0084】
故に、システム550によって、分散型の一連のサービスが提供される。中央処理装置を有する代わりに、処理が、ネットワークのエッジへ分配されている。このことは、ボトルネックを解消し、フェイルオーバ保護を提供する。例えば、従来は、中央型処理装置を使用していてそれが作動しなくなった場合は、システム全体のトランザクション処理が影響を受けることがある。一方、或るゲートウェイ104が作動しなくなっても、システム550全体の処理は影響を受けず、トランザクションは他のゲートウェイ104へ送られればよい。
【0085】
(配置のシナリオ)
ゲートウェイ104は、多数の異なったシナリオで配置することができる。例えは、ゲートウェイ104は、プライベート・ネットワーク上のフロントエンド・ゲートウェイ、インターネット・ゲートウェイ、および/または無線ゲートウェイとして、配置できる。図7は、本発明の一実施形態に従って、ゲートウェイ104をフロントエンド・ゲートウェイとして提示するシステム600を表している。システム600は、本質的に異なる複数のネットワーク106を通じて1つ以上のクライアント102を1つ以上のトランザクション処理装置108へ接続している。トランザクション処理装置108は、クライアント102からのトランザクションを処理することのできる任意のシステムであればよい。例えば、Visa、MasterCardなどが、クレジット・カードおよびデビット・カード取引用のトランザクション処理装置を所有し得、加盟銀行(アクワイアラ/イシュア)をクライアント102とすればよい。
【0086】
クライアント・データ・センタ602が、クライアント102からトランザクションを受信し得る。トランザクションは、クレジット・カード承認またはデビット・カード取引であり得る。データ・センタは、例えば、クライアントのプライベート・ネットワークを介して、複数のPOSデバイスと接続している中央コンピュータであり得る。ゲートウェイ104は、トランザクションを処理し、このトランザクションをトランザクション処理装置データ・センタ108へインテリジェントに切り替える。例えば、トランザクションがVisaのトランザクションである場合、トランザクション処理装置データ・センタAおよびBが、Visaと関連し得る。トランザクションがMasterCardのトランザクションであれば、MasterCardと関連しているという理由で、処理装置データ・センタCが選択され得る。
【0087】
ゲートウェイ104は、適切なトランザクション処理装置108、およびトランザクションを送るネットワーク106を判断する。その後、トランザクションは、ルータ604へ送信され、次いで、ルータがこのトランザクションをルーティングすることができる。一実施形態では、ルータ604は、パケットを、選択されたトランザクション処理装置108へネットワーク106を経由させて送り得る。
【0088】
図8は、本発明の一実施形態に従って、ゲートウェイ104がインターネット・ゲートウェイとなっているシステム700を表している。インターネット・クライアント702は、クライアント102を含んでいる。クライアント102は、インターネット704を介してゲートウェイ104へトランザクションを送信することができる。ゲートウェイ104は、標準的なクレジット・カード承認、パスワード認証(Verified by Visa)、報酬またはポイント処理など、オンライン・ショッピングに必要な特定のサービス向けに構成され得る。
【0089】
ゲートウェイ104は、クライアント102に対し、様々なトランザクション処理装置108との接続性を提供する。ゲートウェイ104は、HTTP(S)および他のXMLベースの要求を受け付け得る。アプリケーション・レベルの内容および伝送環境の現状に基づいて、サービスおよびトランザクション処理装置108が選択され得る。トランザクションはHTTPまたはその他任意のXMLベースの要求の状態で送信されてきたと考えられるので、ゲートウェイ104は、トランザクションを切り替える前に、メッセージを、トランザクション処理装置108に求められている形式へ変換するとよい。例えば、トランザクション処理装置108は、メッセージがISO8583形式で処理されていることを必要とする場合がある。通常、POSデバイスがトランザクションを処理すれば、トランザクションはISO8583形式で送信されると考えられる。一方、トランザクションがインターネット・ゲートウェイによって処理される場合、インターネット・クライアント702はISO8583のメッセージを送信するようには構成されていないことがある。故に、ゲートウェイ104は、メッセージを、トランザクション処理装置108に必要とされるISO8583形式へフォーマットするように構成されている。
【0090】
一例では、ゲートウェイ104は、インターネット・クライアント702からのインターネットトランザクションを処理し得る。インターネット・クライアント702が、HTTP(S)要求をゲートウェイ104へ送信する。ゲートウェイ104は、HTTP(S)要求を、正規の内部メッセージ形式へ変換する。その後、任意のビジネス・サービスをトランザクションに対して実施することができる。一例では、トランザクション処理装置108に必要とされるフォーマットに適合するように、アプリケーション・レベルのデータを変更し得る。例えば、XMLトランザクションが、ISO8583形式へ変換され得る。ゲートウェイ104は、その後、トランザクションを、トランザクション処理装置108へインテリジェントに切り替える。
【0091】
トランザクション処理装置108は、トランザクションを処理し、ゲートウェイ104へ回答を返送する。この回答は、トランザクション処理装置に固有の形式であってもよい。ゲートウェイ104は、次に、HTTP(S)の回答をビルドし、それをインターネット・クライアント702へ送信する。故に、ゲートウェイ104を使用して、インターネットを介したトランザクションを処理することができる。
【0092】
図9は、本発明の一実施形態に従って、ゲートウェイ104が無線ゲートウェイとして使用されているシステム800を表している。ゲートウェイは、ユーザの移動電話、PDA、ページャなどから無線メッセージを受信することができる。ゲートウェイ104は、ワイヤレス・アプリケーション・プロトコル(WAP:wireless application protocol)、モバイル情報デバイス・プロトコル(MIDP:mobile information device protocol)、JQMEなど、様々な無線形式をサポートするように構成され得る。MIDletは、モバイル・コミュニケーション用グローバル・システム(GSM:global system for mobile communication)または汎用パケット無線サービス(GPRS:general packet radio services)などのネットワークを通じてXML形式の要求を送信する。ゲートウェイ104は、インバウンド要求のペイロードを正規の内部メッセージ形式へ変換し得る。内部メッセージ形式(IMF:internal message format)は、次いで、ビジネス・サービスによって処理し得る。アウトバウンド・メッセージ・ストリーム・ビルダ212が、IMFを、トランザクション処理装置108へ送信するための応答ペイロードへ変換する。故に、ゲートウェイ104によって無線トランザクションを処理することができる。
【0093】
ここで無線トランザクションについて説明する。一実施形態では、無線クライアント808が、HTTP(S)/GSM/GPRSを通じてXML要求を送信することによって、無線支払トランザクションを開始する。ゲートウェイ104は、XML要求を受信し、この要求を処理する前に、正規の内部メッセージ形式へ変換する。トランザクションをトランザクション処理装置108へ切り替えるのに、伝送環境の現状に加え、トランザクションのアプリケーション・レベルの内容を使用する。選択されたトランザクション処理装置108によっては、フロー・ハンドラ210が、トランザクションに対してビジネス・サービスを実施し得る。トランザクションは、その後、トランザクション処理装置108へ送信される。
【0094】
トランザクション処理装置108が、クライアントの銀行(あるいはイシュア)802を判断し、メッセージをイシュア802へ送る。イシュア802は、要求を処理し、回答をトランザクション処理装置108へ返送する。次いで、トランザクション処理装置108が、アクワイアラ804へ回答を(トランザクション処理装置に固有の形式で)返送する。ゲートウェイ104は、回答を受信し、それをXML形式へ変換し、それを無線クライアント808へ送信する。故に、ゲートウェイ104は、無線トランザクションの支払をルーティングするように構成されている。
【0095】
図10は、本発明の一実施形態に従って、ISO8583のトランザクションを処理するシステム900を表している。図示されているように、イシュア銀行902およびアクワイアラ銀行904がトランザクションに参加している。アクワイアラ銀行904にあるクライアント・コンピュータ102が、ISO8583要求をゲートウェイ104へ送信する。ゲートウェイ104は、要求に対処するトランザクション処理装置108を選択するために、アプリケーション・レベルの内容および伝送環境の現状を使用する。次に、要求に対して任意のビジネス・サービスが実施された後で、メッセージは、選択されたトランザクション処理装置108へ送信される。
【0096】
トランザクション処理装置108は、トランザクションを処理し、それを、承認を得るために適切なイシュア902へ切り替える。イシュアは、ISO8583をトランザクション処理装置108へ返送する。トランザクション処理装置108は、次に、ゲートウェイ104へ回答を送信し、回答は、その後、アクワイアラ銀行102のクライアント102へ送信される。
【0097】
一例では、トランザクション処理装置108が利用できないことがある。この場合、例えば、処理装置A、データ・センタ01が利用できなくなっていると考えられる。これが、クライアント102にとって、サービスのために望まれる処理装置である場合がある。ゲートウェイ104は、その結果、トランザクションを第2処理装置、すなわち処理装置A、データ・センタ02へ送信する。ゲートウェイ104は、第1のデータ・センタの利用可能性について確認し続け得、それが利用可能になり次第、第1のデータ・センタへメッセージをルーティングし始め得る。トランザクションのルートの再選択はクライアント102に気付かれない形で行われる。故に、ゲートウェイ104のインテリジェントな切り替えを用いて、あらゆるトランザクション処理装置108のダウンタイムが回避されている。
【0098】
別の実施形態では、処理装置Aのデータ・センタが機能停止し、処理装置BおよびCなど他の処理装置のデータ・センタを使用しなくてはならない場合がある。処理装置BおよびCは、処理装置Aとは異なる形式でトランザクションを処理すると考えられる。この場合、ゲートウェイ104が、トランザクションの形式を、処理装置BおよびC用の形式と一致する形式へ変換すればよい。フォーマットされたトランザクションは、その後、処理装置BまたはCへ送信される。従って、クライアント102には気付かれない形で、様々な処理装置を使用することができる。処理装置が別々の形式を使用している場合であっても、ゲートウェイ104が、トランザクションをなおその形式で送るように構成されている。
【0099】
(メッセージのパース/ビルド)
(パースビルド・エンジンの概要)
図11は、本発明の一実施形態に従ってメッセージをパースするシステム1000を表している。システム1000は、ISO8583メッセージなどの複数の形式のメッセージ・ストリームについては内部メッセージ形式(IMF)と呼ばれる正規のメッセージ形式へパースし、IMFからは、ISO8583メッセージ・ストリームなど複数の形式のメッセージ・ストリームをビルドするように構成されている。金融メッセージ・ストリームについて説明が行われているが、当然のことながら、任意の複数の形式のメッセージ・ストリームについて、システム1000を用いてパースおよびビルドすることができる。
【0100】
パース/ビルド・エンジン1004は、図2のインバウンド・メッセージ・ストリーム・パーサ204およびアウトバウンド・メッセージ・ストリーム・ビルダ212に相当する。図2に示されている構成要素の全てが図11に示されているわけではないが、当然のことながら、それらの構成要素もシステム1000へ含めることができる。加えて、パース/ビルド・エンジン1004は、ゲートウェイ104へ含まれていてもよいし、あるいは他の構成要素に含まれていてもよい。例えば、パース/ビルド・エンジン1004は、他の異機種システムとは異なるデータ形式でデータを処理する任意のソフトウェア・アプリケーションと適合可能であり得る。
【0101】
パース/ビルド・エンジン1004は、システム1006から入力メッセージ・ストリーム1010を受信し、このメッセージを内部メッセージ形式へパースするように構成されている。内部メッセージ形式(IMF)は、次いで、ビジネス・サービス・アプリケーションなど、ゲートウェイ104内に示される他の構成要素によって処理することができる。ゲートウェイ104内の構成要素がIMFのメッセージを処理した後、パース/ビルド・エンジン1004は、処理されたIMFから、出力メッセージ・ストリーム1012をビルドする。出力メッセージ・ストリーム1012は、次に、システム1008へ送信されるか、または発信元のシステム1006へ返送され得る。
【0102】
システム1006および1008は、メッセージ1010を送信、および/または、パース/ビルド・エンジン1004(またはゲートウェイ104)からのメッセージ1012を受信するように、構成されている任意のシステムであり得る。一実施形態では、システム1006および1008は、販売時点管理デバイス、スマート・カード・デバイス、トランザクション処理装置108、あるいはアクワイアラ、イシュア、サービス・プロバイダ、トランザクション認証機能などトランザクションを処理するように構成されている任意のシステムであり得る。システム1006および1008は、ISO8583メッセージ、拡張マークアップ言語(XML)、HTMLなど多数の異なる形式のメッセージを送信/受信し得る。入力メッセージ・ストリームは、ASCII、EBCDIC、BCDなど多数の符号化方式のいずれを使っていてもよく、数字、文字列、バイト配列など様々なデータ型を有していてもよい。
【0103】
図11のパース/ビルド・エンジンはスキーマ・テーブル1028を使用している。各スキーマは、受信形式に関する文法構造のほか、ハンドラ・テーブル1030内のハンドラへのポインタを含んだメタデータを提供するデータ構造である。ハンドラは、メッセージ内の特定のフィールドに対応し、文法構造を使用して、メッセージの様々なフィールドを内部メッセージ形式へ変換する。ハンドラは、個別にコンパイルされているコードである。故に、システム全体をコンパイルするのではなく、ハンドラが1つずつコンパイルされているために、エンジンの他のエレメントを妨害することなく、容易にアップグレードが可能なモジュラ・システムを保持しつつも、コンパイルされたソフトウェアの処理の速さを実現している。
【0104】
パース/ビルド・エンジン1004は、識別されたスキーマをロードし、スキーマと関連するハンドラの機能を起動する。ハンドラは、次いで、メッセージのフィールドをIMFオブジェクトにパースする。
【0105】
まだロードされていないスキーマおよび関連する任意のハンドラについては、スキーマ・ローダ1024を使用して、スキーマ定義ファイル1026からスキーマ・テーブル1028およびハンドラ・テーブル1030へロードすることができる。スキーマ・テーブル1026は、スキーマ名1、スキーマ名2からスキーマ名Nと表記された多様なスキーマを含んでいる。パース/ビルド・エンジン1004によってパースおよびビルドされ得る各メッセージ形式に関して、対応するスキーマが提供され得る。各スキーマ名は、外部形式でのメッセージ・ストリーム構成である「文法」を定義するスキーマ・オブジェクトと関連している。構成には、フィールド順序、フィールド型、長さ、文字コード、および他の任意あるいは必須のフィールドを含めることができる。新しいスキーマおよびコンパイルされたハンドラについては、パース/ビルド・エンジン1004を再コンパイルすることなく、パース/ビルド・エンジン1004によってロードおよび使用することができる。
【0106】
(パース/ビルドフロー)
ここでフローの一例を説明する。図11に示されているように、メッセージを受信すると、ビジネス・サービス・プログラムがパース/ビルド・エンジン1004を呼び出す。メッセージ1010(ワイヤ形式のメッセージ・ストリーム)がパース/ビルド・エンジンへ送信され、ここでは、まずパーサ構成要素1016によって受信される。ビジネス・サービス・アプリケーションは、パーサ構成要素1016へ、スキーマ名1011も提供する。パーサ構成要素は、内部メッセージ形式(IMF)のオブジェクトを作成し、その中に、メッセージ・フィールドから得られる値を、それがIMFへ変換され次第、保存する。一実施形態では、パーサ構成要素1016が、メッセージ1010の起点を認識し、この起点から送信されたメッセージ1010にはどのスキーマが必要であるかを判断する。別の実施形態では、メッセージ1010内の情報がパースされて、使用すべきデータ形式、ひいては対応するスキーマを、判断することができる。さらには、メッセージ1010が、データ形式に対応するスキーマがどれであるかを指摘してもよい。
【0107】
一例では、パーサ構成要素1016が、ISO8583の金融メッセージなど検出されたメッセージの形式に対応するルート・スキーマをまず検索する。ISOメッセージなどは、最初にビットマップを有し、どのフィールドが存在するかを特定していることがある。ルート・スキーマは、ハンドラを指し示し、このハンドラが呼び出されてタイプ・フィールドをパースし、どのようなタイプのメッセージが受信されたのか(例えば、承認メッセージ、調整メッセージなど)を判断する。パーサ構成要素は、次に、特定されたメッセージ・タイプ用のスキーマを検索し、スキーマが、今度は、特定の文法を提供し、そのメッセージ・タイプ用のハンドラを指し示す。スキーマおよびハンドラは、メッセージ中に実際に存在するフィールドに関するものだけが検索され呼び出される。新たにフィールドが特定または示唆されると、新たにスキーマが検索され、対応するハンドラが呼び出されることが可能になる。特定のフィールドを1つ以上の条件を備えた複合型のフィールドとすることも考えられ、条件の変換またはパースをすることにより、条件の結果に応じて、付加的なスキーマおよび必要な関連スキーマを指し示すことが可能となる。
【0108】
IMFオブジェクト1018(後にさらに詳述する)は、呼び出されたハンドラによって埋め込みが行われる。埋め込みされているフィールドのみが、着信メッセージに含まれているフィールドと対応するフィールドである。
【0109】
IMFオブジェクト1018は、次に、ゲートウェイ104のビジネス・ソフトウェア・アプリケーションによって処理され得る。処理された後で、IMFオブジェクト1018は、アウトバウンド・メッセージ・ストリーム用のスキーマ名と共に、ビルダ構成要素1020へ送信される。処理済みのIMFオブジェクト1018の処理は別のデータ形式で実施され得るので、ビルダ構成要素1020が、処理済みのIMFオブジェクト1018から出力メッセージ・ストリーム1012をビルドするように構成されている。前述の処理が逆順に繰り返され、そこでは、ビルダ構成要素1020がルート・スキーマを検索し、何度も繰り返され得る処理において、タイプの情報をビルドするために指し示されたハンドラを呼び出す。呼び出されたハンドラは、IMFオブジェクト1018の中にある値をフィールドに組み込み、これが出力メッセージ・ストリーム1012に含まれるようになる。出力メッセージ・ストリーム1012は、次に、出力メッセージ・ストリーム1012を処理することのできるシステム1008へ送信され得る。
【0110】
図12はゲートウェイ104によって提供される任意のサービスを実施するのにIMFオブジェクトを使用するビジネス・サービス・アプリケーション1102を説明している。ビジネス・サービス・アプリケーション1102はIMFオブジェクト1018に対して動作する。この動作には、メッセージの送信先のイシュア銀行あるいは処理センタを判断するなど、アプリケーション層のルーティングを含めることができると考えられる。加えて、メッセージ・ストリームのアプリケーション・レベルのフォーマット、ロギング、タイムスタンピング、応答またはさらなる処理に必要な新しいフィールドの作成など、メッセージに対してサービスを実施してもよい。ビジネス・サービス・アプリケーションは、イシュアまたは金融ネットワークに関する前処理を行うことが可能と考えられ、あるいは負荷を分担している局所の処理を実施することも可能と考えられる。例えば、50ドルより小額の購入に対する承認メッセージが、承認を求めて金融機関へメッセージを転送する必要を伴わずに許可され、応答メッセージが送信され得る。ビジネス・サービス・アプリケーション1102は、外部形式ではなく内部メッセージ形式でデータを処理するように構成されている。故に、ビジネス・サービス・アプリケーション1102は、メッセージをIMFにパースすることにより、他のシステムによって使用されているあらゆる外部形式から隔離されている。
【0111】
(IMF構造)
図13Aは、本発明の一実施形態によるIMF1018の構造を表している。図示されているように、IMF1018には、N個のフィールドが設けられている。フィールドは、フィールドの配列であってもよく、ここでは各フィールドが不特定多数の子フィールドを含むこともでき、ひいては孫フィールドなどを階層型構造で含むこともできる。例えば、フィールド1は、子フィールド1.1、1.2、から1.Nを含んでいる。フィールド1.2から1.Nが、さらに、不特定多数の子フィールド(図示せず)を含むこともできる。メッセージを受信すると、実際に使用されているフィールドだけにデータが埋め込まれる。
【0112】
図14Bは、図13Aに示されているフィールドのフィールド定義についてのインデックスであるオブジェクトIDコードに関する階層化された形式を示している。OIDにより、IMFオブジェクト1018内の多様なフィールドをインデキシングすることができる。IMFオブジェクト1018内のフィールドに関して、OIDを使用してフィールド定義へアクセスする。一実施形態では、OIDが8バイトの番号であって、図のようにドット付き10進表記で表されている。第1フィールドのOIDは、1.0.0と符号化されている。任意のサブフィールドについて、1.1.0、1.2.0などと符号化される。第2フィールドは2.0.0と符号化され、2.1.0、2.2.0などと符号化される任意のサブフィールドを伴う。
【0113】
(スキーマ構造)
図13Bはスキーマの例を示している。スキーマのアドレスは、第1行目であり、メッセージの定義(MessageDef)である。スキーマには、メッセージ内の各フィールドに関する、文法およびハンドラへのポインタを含んでいる。図示されている例では、メッセージの第1フィールドは、インデックス1.0.0を伴うField Definition Object(FieldDef)1202で特定される。これを、OID属性1202とも称する。このフィールドのインデックスに続くのは、呼び出されるハンドラ1204(HDR)の識別表示である。その行の残りのエレメントは、その特定のフィールドに関する文法の定義である。これらのフィールド定義は、フィールド順序、フィールド型、長さ、文字コード、必要なハンドラ名などのフィールドの特性を述べている。フィールド定義は、ASCII、EBCDIC、BCDなどの様々なコード、および数字、文字列、バイト配列などの様々なデータ型で符号化されているフィールドを、パース/ビルドするのに使用され得る。故に、メッセージ定義を使用して、複数の形式のメッセージ・ストリームを処理することができる。一実施形態では、スキーマは、XMLスキーマの形をとったメタデータである。
【0114】
フィールド定義には、多くの属性を含めることができる。当然のことながら、図13Bに表されている属性は網羅的なものではなく、他の属性を使用してもよいことが当業者には十分理解されよう。
【0115】
ハンドラ属性1204は、フィールド名である。必須/任意属性1206はメッセージ内でフィールドが必須あるいは任意のいずれであるかを示す。第1データ形式属性1208は、外部形式(ワイヤ形式とも称される)でのフィールド値のデータ形式である。第2データ形式属性1210は、フィールドがIMFで保存されビジネス・サービスによって処理される、内部形式である。
【0116】
カスタム/非カスタム属性1212は、フィールドがカスタム・ハンドラあるいは汎用ハンドラのいずれを使用してフィールドのパースおよびビルドを行うかを示す。
【0117】
第7の属性1214は、メッセージのフィールド内の値を処理するのに必要なハンドラ名を示す。ハンドラは、受信メッセージ内の識別されたフィールドの値を取り込み、それを(パーサ・スキーマ用に)IMFにパースするか、あるいは値を(ビルダ・スキーマ用に)IMFから外部形式へビルドするかのいずれかを行う。
【0118】
第8の属性1216は、フィールド内のサブフィールド数を示す。
【0119】
(IMF(内部メッセージ形式)で使用されるメッセージ・フィールド例)
図14Aは、特定のメッセージ・オブジェクト1010に使用されるフィールドの例を表しており、これは、様々なフィールド用のいくつかのオブジェクトID(OID)、すなわちOID1.0.0、1.1.0、1.1.1、2.0.0、2.2.0、4.0.0、および4.1.0を含んでいる。これらは、図13Bのスキーマによって指し示されているフィールドである。従って、このメッセージ例に関しては、図13Aで示されているメッセージ・オブジェクトの中で、図14Cで特定されているフィールドだけが埋め込みされると考えられる。図14Bは、内部メッセージ形式での完全な一式のフィールド用の階層型オブジェクトID全体の一部分を示している。図に示すように、メッセージ1010は、これらのフィールドのうち、自分が必要とする一部分のみを含んでいる。例えば、オブジェクトID1.2.0、3.0.0、および4.2.0は使用されていない。なお、これらのフィールドが不特定多数の子フィールドを有してもよい。
【0120】
オブジェクトIDは、図13Aに示されているメッセージ・オブジェクトの階層型内部メッセージ形式への、高速インデキシング・システムを提供する。このインデキシング・システムは、符号化されたオブジェクトID(1.0.0など)を使用しており、これらが、受信された形式で使用されている各フィールドに関して、内部メッセージ形式の対応するフィールドへインデックスする(対応するフィールドを指し示す)。インデックスは、階層型構造の中で数層下にあるフィールドを、直接指し示すことができる。
【0121】
ゲートウェイ104の構成要素がIMFオブジェクト1018を処理するとき、不要なフィールドの処理は実行しない。従って、処理速度が速まる。
【0122】
IMFオブジェクト1018へ必要なフィールドを追加することもできる。何らかのフィールドが、ビジネス・サービス・モジュール1102またはトランザクション処理装置108によって要求され得る。使用する必要のあるフィールドが受信メッセージ1010に含まれていないと判断されたら、このフィールドをビジネス・サービス・モジュールによって埋め込み、再送信用にビルドされるメッセージの中へ含ませることができる。従って、図13Bのスキーマにある「必要な」フィールドがメッセージ1010に含まれていない場合、IMFオブジェクト1018へ追加され得る。
【0123】
(パース/ビルド・エンジンの初期化)
図15は、ビジネス・サービス・アプリケーションの開始にあたってパース/ビルド・エンジン1004を初期化する方法の簡略化されたフロー図1400を表している。ステップ1402で、アプリケーションから初期化要求を受信する。要求には、1つ以上のスキーマ定義ファイル1026の場所が含まれている。
【0124】
ステップ1404で、スキーマ定義ファイル1026内に見つかったスキーマの確認が行われる。スキーマの確認は、正しい型のデータが示されていること、スキーマによって特定されたハンドラが実際に存在することの検証など、多数の手続きによって行われる。
【0125】
ステップ1406では、スキーマ定義ファイル1026内のスキーマが、ディスクまたは他の記憶収納庫からDRAMメモリへと、スキーマ・ローダ1024を使用して、レジストリ1022へロードされる。
【0126】
ステップ1408で、スキーマで指定されているあらゆるハンドラをレジストリ1022へロードする。例えば、メッセージ定義オブジェクトのフィールド定義によって指定されているハンドラは、ハンドラ・テーブル1030へロードされる。一実施形態では、ハンドラが、ハンドラ名をキーに使い、オブジェクトとして保存される。
【0127】
ステップ1410で、ハンドラは、それぞれのメッセージ定義オブジェクトにバインドされる。例えば、或るメッセージ定義オブジェクト内のフィールド定義によって指定されているハンドラは全て、そのメッセージ定義オブジェクトにバインドされる。
【0128】
パース/ビルド・エンジン1004は、今や、スキーマ用に初期化されている。一実施形態では、パース/ビルド・エンジン1004のコンパイルが必要ではない。これは、フィールド値のパース/ビルドに用いられているコンパイル済みのハンドラを使用しているからである。
【0129】
ランタイムで、スキーマは、動的に更新され、パース/ビルド・エンジン1004へ追加され得る。スキーマは、メッセージ定義オブジェクトを変更することによって更新され得、あるいは新しいメッセージ定義オブジェクトを追加することによって追加され得る。新しくハンドラが必要となる場合にも、コンパイル済みのオブジェクトとして、パース/ビルド・エンジン1004へ動的に追加され得る。
【0130】
スキーマは、パース/ビルド・エンジン1004を再コンパイルすることもなく、機能停止させることもないままで、追加することが可能である。従って、パース/ビルド・エンジン1004は、スキーマが更新されている間であっても、メッセージのパース/ビルドを継続することができる。
【0131】
(スキーマの追加または更新)
図16は、本発明の一実施形態によるパース/ビルド・エンジン1004内のスキーマを動的に追加または更新する方法の簡略化したフロー図1500を表している。ステップ1502で、スキーマを動的に追加または更新するよう求める要求をアプリケーションから受信する。要求には、新しいあるいは更新されたスキーマを含んでいる1つ以上のスキーマ定義ファイル1026の場所が含まれている。
【0132】
ステップ1504で、スキーマ定義ファイル1026内に見つかったスキーマの確認が行われる。
【0133】
ステップ1506で、スキーマ定義ファイル1026内のスキーマが、レジストリ1022へロードされる。更新されたスキーマが、一連の新しいフィールド定義または変更されたフィールド定義を備えている場合は、新しいまたは変更されたフィールド定義のみをレジストリ1022へロードすればよい。スキーマの追加または更新を行っている間、適切なデータ構造には書き込みロックをして、スキーマ変更の結果、処理中のインフライト・メッセージが破損することのないように保護する。スキーマ・ローダ1024がスキーマの更新されたバージョンをロードしている間は、インフライト・メッセージは、引き続き以前のバージョンのスキーマを使用する。
【0134】
ステップ1508で、メッセージ定義オブジェクトで指定されているあらゆるハンドラがレジストリ1022へロードされる。パース/ビルド・エンジン1004が、いずれかのハンドラが既にレジストリ1022内にあるかどうかを確認して判断し、これらのハンドラについてはレジストリ1022へ再ロードしなくてもよい。その一方で、いずれかのハンドラが変更されていたら、変更されたハンドラがロードされる。
【0135】
ステップ1510で、ハンドラはそれぞれのメッセージ定義オブジェクトにバインドされる。一実施形態では、新しいまたは変更されたハンドラだけが、更新されているメッセージ定義オブジェクトにバインドされる。今や、パース/ビルド・エンジン1004は動的に更新されている。
【0136】
(パース処理のフロー図)
図17は、本発明の一実施形態に従って入力メッセージ・ストリーム1010をパースする方法の簡略化したフロー図1600を表している。ステップ1602で、メッセージ用のスキーマが決定される。スキーマは、入力メッセージ・ストリーム1010を構成しているデータ形式に対応している。
【0137】
ステップ1604で、スキーマ内のポインタからメッセージ定義オブジェクト用のあらゆるハンドラが決定される。
【0138】
ステップ1606で、各フィールド用のハンドラがフィールドに添付される。
【0139】
ステップ1608で、ハンドラが、メッセージのフィールドを変換する。各フィールド用のハンドラが起動される。ハンドラは、スキーマ内のフィールド定義を使用して、フィールドの値をIMFへ変換する。フィールドのOIDは、スキーマ内のそのフィールド用のフィールド定義と、さらにIMFオブジェクト1018内の対応するフィールドとの両方を指し示す。
【0140】
一実施形態では、パーサ構成要素1016が、メッセージ1010で読み取られたフィールドのオフセットを維持管理する。例えば、読み取られたバイトの数が、オフセットとして保存される。パーサ構成要素は、各ハンドラが呼ばれるのに従い、このオフセットを減らしてゆく。ハンドラがメッセージ1010の終わりに達すると(例えば、オフセットが或る特定の長さに等しくなると)、あるいはメッセージ定義オブジェクト内の最後のフィールド定義に達すると、パーサ構成要素は、変換が完了したことを認識する。
【0141】
ステップ1610で、変換されたフィールドは、IMFオブジェクト1018の対応する階層に保存される。フィールドのOIDを使用して、変換された値をIMFオブジェクト1018の階層内の対応する位置に保存すればよい。
【0142】
上述の変換をいずれかの点で失敗した場合は、エラーをゲートウェイ104へ返送し得る。パースは継続し得、IMFオブジェクト1018が返送され得る。ただし、IMFオブジェクト1018内にエラー・フラグが記録され得る。
【0143】
(ビルド・プロセスのフロー図)
ここで図18に関連してビルドプロセスを説明する。図18は、本発明の一実施形態に従って出力メッセージ・ストリーム1012をIMFオブジェクト1018からビルドする方法の簡略化したフロー図1700を表している。ステップ1702で、スキーマ名およびIMFオブジェクト1018が決定される。一実施形態では、IMFオブジェクト1018が最初に決定される。スキーマ名は、IMFオブジェクト1018内の情報に基づいて決定され得る。例えば、スキーマ名が、IMFオブジェクト1018内の情報に保存され得る。さらに、スキーマ名は、IMFオブジェクト1018内の情報が送信される通信路または宛て先システムによって決定され得る。
【0144】
ステップ1704で、メッセージ定義オブジェクトを使用して、レジストリ1022内のスキーマにアドレスする。ステップ1706で、スキーマに必要なあらゆるハンドラについても決定される。
【0145】
ステップ1708で、IMFオブジェクト1018内に見つかった各フィールドに関して、IMFオブジェクト1018の階層内の対応するフィールドから得られる値がロードされる。フィールドのOIDを使用して、フィールド定義にアクセスする。
【0146】
ステップ1710で、IMFオブジェクト1018のフィールドから、このフィールド用のフィールド定義の属性に従って、値を変換する。従って、IMF形式で見つかった値が、他のシステムと互換性のある形式へと変換される。
【0147】
ステップ1712で、ビルドされた値が、生成された出力メッセージ・ストリーム1012の対応するフィールド内に構成される。
【0148】
外部形式に必要な或るフィールドに対する、IMFオブジェクト1018内のフィールドの値が見つからない場合、外部メッセージ内のそのフィールドの値は空値に設定されてもよく、または生成されたメッセージが単にメッセージ内にこのフィールドを有さないようにしてもよい。さらに、IMFオブジェクト1018がこのフィールドを有する必要があると決定されていたら、その場合はIMFオブジェクト1018内にフィールドが見つからなかったことを示すエラーが返信されればよい。
【0149】
本発明の実施形態は、多くの利点を提供する。例えば、アプリケーション・レベルの内容、ネットワーク伝送環境の現状、および/または設定情報の組み合わせを使用して、トランザクションをインテリジェントに切り替えることができる。このことは、クライアントによって送信されるあらゆるトランザクションに価値を付加することになる。例えば、ネットワークまたはトランザクション処理装置において何らかの障害がある場合、トランザクションを、他のネットワークを経由させて他のトランザクション処理装置へ送ることができる。これにより、ダウンタイムおよびトランザクション上の何らかの損失が回避される。
【0150】
さらに、アプリケーション・レベルの内容対してビジネス・サービスを適用することができる。これにより、ゲートウェイ104に関する柔軟性が高まり、トランザクションをインテリジェントにルーティングすることができるようになる。例えば、データ処理装置108が、様々な形式のトランザクションを処理することができる。ゲートウェイ104が、トランザクション処理装置に必要とされる形式に基づいてアプリケーション・レベルの内容の形式を変更するように構成され得る。さらに、トランザクションに対して適用することのできるビジネス・サービスにより、ゲートウェイ104が、多数の形式またはプロトコルでトランザクションを受信し得る。例えば、無線トランザクション支払、インターネットトランザクション、POSトランザクションなどについて処理し得る。これにより、トランザクションの処理における柔軟性を高めることができる。
【0151】
本発明の実施形態について、トランザクション処理およびある場合には金融トランザクションとして説明してきたが、当然のことながら、トランザクションは多種多様な領域に関して処理され得る。例えば、音楽共有サービスに関してトランザクションを処理し得る。トランザクションには、音楽のダウンロード要求などが含まれ、続いて、ゲートウェイ104がこの要求についてサービス・プロバイダへのインテリジェントな切り替えを行い、要求された内容をクライアントへ送り返し得る。さらに、映像サービスが提供されてもよい。映像の要求は、オンデマンド方式であれペイ・パー・ビュー方式であれ、ゲートウェイ104によって受信および処理することができる。リクエストおよびそれに続くダウンロードが、本発明の実施形態に従ってインテリジェントに切り替えられ得る。
【0152】
本発明は、制御論理の形で、ソフトウェアまたはハードウェアあるいは両方の組み合わせの中に実装することができる。制御論理は、本発明の実施形態の中で開示された一連のステップ群を情報処理デバイスに実行させるようになっている複数の命令として、情報記憶媒体に保存され得る。本明細書に記載された開示および教示に基づき、当業者には、本発明を実施する他の手段および/または方法についても理解されよう。
【0153】
上記の説明は、例示的なものであって、限定的なものではない。開示を検討すれば、本発明には多数の変形例があることが当業者には明らかとなる。故に、本発明の範囲は、上記の説明に準拠して判断されるべきではなく、出願の請求項に準拠して、包括的にあるいは均等物も加えて、判断されるべきである。
【図面の簡単な説明】
【0154】
【図1】図1は本発明の一実施形態によるトランザクションを処理するシステムを表す。
【図2】図2は本発明の一実施形態によるゲートウェイのさらに詳細な実施形態を表す。
【図3】図3は本発明の一実施形態によるトランザクションを処理する方法の簡略化したフロー図を表す。
【図4】図4は本発明の一実施形態によるトランザクション処理装置によって提供されるサービスに関する設定情報の生成の簡略化したフロー図を表す。
【図5】図5は本発明の一実施形態によるサービスに加入する方法の簡略化したフロー図を表す。
【図6】図6は本発明の一実施形態による複数のゲートウェイの分散型システムを表す。
【図7】図7は本発明の一実施形態によるゲートウェイをフロントエンド・ゲートウェイとして表示しているシステムを表す。
【図8】図8は本発明の一実施形態によるゲートウェイがインターネット・ゲートウェイであるシステムを表す。
【図9】図9は本発明の一実施形態によるゲートウェイが無線ゲートウェイとして使用されているシステムを表す。
【図10】図10は本発明の一実施形態によるISO8583トランザクションを処理するシステムを表す。
【図11】図11は本発明の一実施形態によるメッセージをパースするシステムを表す。
【図12】図12は本発明の実施形態によるゲートウェイの一実施形態を開示している。
【図13A】図13Aは本発明の一実施形態によるIMFオブジェクトの構造を表す。
【図13B】図13Bは本発明の一実施形態によるメッセージ定義の属性を表す。
【図14A】図14A、14Bおよび14Cは、本発明の一実施形態による考え得るメッセージ、オブジェクトIDコードの階層化された形式、およびメッセージ用のIMFオブジェクトを表す。
【図14B】図14A、14Bおよび14Cは、本発明の一実施形態による考え得るメッセージ、オブジェクトIDコードの階層化された形式、およびメッセージ用のIMFオブジェクトを表す。
【図14C】図14A、14Bおよび14Cは、本発明の一実施形態による考え得るメッセージ、オブジェクトIDコードの階層化された形式、およびメッセージ用のIMFオブジェクトを表す。
【図15】図15は本発明の一実施形態によるメッセージ・ストリームを処理するパース/ビルド・エンジンを初期化する方法の簡略化したフロー図を表す。
【図16】図16は本発明の一実施形態によるパース/ビルド・エンジンにおいてスキーマを動的に追加または更新する方法の簡略化したフロー図を表す。
【図17】図17は本発明の一実施形態による入力メッセージをパースする方法の簡略化したフロー図を表す。
【図18】図18は本発明の一実施形態によるIMFオブジェクトから出力メッセージをビルドする方法の簡略化したフロー図を表す。

【特許請求の範囲】
【請求項1】
ネットワークのエッジに位置するゲートウェイを使用してトランザクションを切り替える方法であって、該方法は、
該ゲートウェイにてトランザクションを受信するステップと、
該トランザクションに関するアプリケーション・レベルの内容を決定するステップと、
該トランザクションが経由して送られる伝送環境に関するアプリケーション・レベルの動的状況情報を決定するステップであって、該伝送環境が、該トランザクションを処理することのできる1つ以上のトランザクション処理装置へ該トランザクションを送ることのできる1つ以上のネットワークを含んでいる、ステップと、
該トランザクションの該動的状況情報および該アプリケーション・レベルの内容に基づいて、該1つ以上のトランザクション処理装置の中のトランザクション処理装置、および該1つ以上のネットワークの中のネットワークへ、該トランザクションを切り替えるステップと
を含む、方法。
【請求項2】
前記トランザクションを送信したクライアントからのクライアント・ルールを決定するステップと、
該クライアント・ルールを使用して、前記動的状況情報に基づいて、該トランザクションを処理できるサービス、前記トランザクション処理装置、または該サービスの一部であるネットワークを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
サービス・プロバイダ・ルールを決定するステップと、
該サービス・プロバイダ・ルールを使用して、前記動的状況情報に基づいて、前記トランザクションを切り替える前記トランザクション処理装置またはネットワークを決定する、ステップと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記トランザクションの前記アプリケーション・レベルの内容に対するサービスをアプリケーション・レベルで実施するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記サービスが、決定された前記トランザクション処理装置またはネットワークに基づいて実施される、請求項4に記載の方法。
【請求項6】
前記サービスが、前記決定されたトランザクション処理装置に必要とされる形式へ前記内容を前記アプリケーション・レベルでフォーマットするステップを含む、請求項4に記載の方法。
【請求項7】
前記サービスが、前記決定されたネットワークに必要とされる形式へ前記内容を前記アプリケーション・レベルでフォーマットするステップを含む、請求項4に記載の方法。
【請求項8】
前記伝送環境に関する前記動的状況情報が、前記アプリケーション・レベルで以前のトランザクションを処理するのに要した時間を含む、請求項1に記載の方法。
【請求項9】
前記内容が、想定し得る数のフィールドを有するデータ形式になっており、前記アプリケーション・レベルの内容が、該想定し得る数のフィールドのサブセットであり、前記方法が、前記トランザクション内のフィールドの該サブセットだけを処理するステップをさらに含む、請求項1に記載の方法。
【請求項10】
前記切り替えを処理するために動的に作成されたコードのインスタンスを使用して、ゲートウェイのトランザクションの切り替えに影響を及ぼすことなく、該ゲートウェイへ動的にルールをロードするステップをさらに含む、請求項1に記載の方法。
【請求項11】
前記トランザクションを前記トランザクション処理装置へ送信することなく、該トランザクションを前記ゲートウェイにて処理するステップをさらに含む、請求項1に記載の方法。
【請求項12】
ネットワークに接続されたゲートウェイを使用してトランザクションを切り替える方法であって、該方法は、
該ゲートウェイにてトランザクションを受信するステップと、
該ネットワークを介してアクセスすることのできる、適切なトランザクション処理装置をアプリケーション・レベルで決定するステップと、
該適切なトランザクション処理装置に必要とされる該アプリケーション・レベルのフォーマッティングを決定するステップと、
該アプリケーション・レベルのフォーマッティングに従って該トランザクションをフォーマットするステップと、
該ネットワークを通じて、該トランザクションを該適切なトランザクション処理装置へ送信するステップと
を含む、方法。
【請求項13】
ネットワークのエッジに位置するゲートウェイを使用してトランザクションを切り替える方法であって、該方法は、
該ゲートウェイにてトランザクションを受信するステップと、
該トランザクションに関するアプリケーション・レベルの内容を決定するステップと、
該アプリケーション・レベルの内容に基づいて、適切なアプリケーション・レベルのトランザクション処理装置を該ネットワークを通じて決定するステップと、
該ネットワークを通じて、該トランザクションを該適切なアプリケーション・レベルのトランザクション処理装置へ送信するステップと
を含む、方法。
【請求項14】
ネットワーク上のゲートウェイを使用してトランザクションを切り替える方法であって、該方法は、
該ゲートウェイにおいて、クライアントからアプリケーション・サービスの選択に関する一連のアプリケーション・レベルのルールを受信するステップと、
該一連のルールを該ゲートウェイにて保存するステップと、
該クライアントから該ゲートウェイにてトランザクションを受信するステップと、
該トランザクションに関するアプリケーション・レベルの内容を決定するステップと、
該一連のルールに基づいて、該トランザクションを処理し、該トランザクションをトランザクション処理装置へ送信するステップと
を含む、方法。
【請求項15】
ネットワーク上のゲートウェイを使用してトランザクションを切り替える方法であって、該方法は、
サービス・プロバイダに関するサービスへクライアントが加入できるように該サービスを発行するステップと、
トランザクションを該サービスのために該サービス・プロバイダへ切り替えることに関するサービス・プロバイダ・ルールを用いて、該ゲートウェイを動的に更新するステップであって、該ゲートウェイが、該動的な更新の後に、該サービスのために該サービス・プロバイダへトランザクションを切り替えるように構成されている、ステップと、
クライアントから該サービスに対する加入要求を受信するステップと、
該クライアントからトランザクションを受信するステップと、
該サービスが該トランザクションに対して実施されるように該トランザクションが該サービス・プロバイダへ切り替えられる必要があるかどうかを決定するステップであって、該決定が、該トランザクションに関する動的状況情報を該サービス・プロバイダ・ルールへ適用することによって行われる、ステップと
を含む、方法。
【請求項16】
前記トランザクションは前記ゲートウェイにて処理される必要があると決定し、該トランザクションを前記サービス・プロバイダへは切り替えないステップと、
該トランザクションを該ゲートウェイにて処理するステップと、
をさらに含む、請求項15に記載の方法。
【請求項17】
前記サービス・プロバイダ・ルールが、前記サービス・プロバイダに必要なトランザクションの形式に関する情報、前記トランザクションを送信するアドレス、または異なるトランザクション処理装置への切り替えの優先順位を含む、請求項15に記載の方法。
【請求項18】
クライアントからのトランザクションを切り替えるシステムであって、該システムは、
アプリケーション・レベルでトランザクションを処理するように構成されている、ネットワークのエッジにおける複数のゲートウェイを含み、
各ゲートウェイが該ゲートウェイによって提供される一連のサービスを保存しているという点で、該複数のゲートウェイによって提供されるアプリケーション・レベルのサービスが分散化されており、
各ゲートウェイは、
該ゲートウェイと接続しているクライアントに関するトランザクションを切り替えるのに使用される該一連のサービスに関するルールと、
該複数のゲートウェイの中の他のゲートウェイの連絡先であって、該連絡先は、該一連のサービスの中のサービスに関するルールを別のゲートウェイへ送信して、そのゲートウェイが該サービスを提供できるようにするか、または該一連のサービスの中のサービスに関する別のゲートウェイのルールを問い合わせして、該ゲートウェイが該サービスを提供できるようにすることに使用される、連絡先と
を含む、ゲートウェイである、
システム。
【請求項19】
サービスに関するルールが、サービス・プロバイダまたはクライアントによって、前記複数のゲートウェイの中の第1ゲートウェイ上にロードされており、該ルールが該複数のゲートウェイの中の該第1ゲートウェイ以外のゲートウェイに分配され得る、請求項18に記載のシステム。
【請求項20】
前記複数のゲートウェイの中の第1ゲートウェイが第1の一連のサービスを含み、該複数のゲートウェイの中の第2ゲートウェイが第2の一連のサービスを含んでおり、該第1の一連のサービスが、該第2の一連のサービスに含まれていない少なくとも1つのサービスを含んでいる、請求項18に記載のシステム。
【請求項21】
ネットワークのエッジにてトランザクションを切り替えるゲートウェイであって、該ゲートウェイは、
サービス・プロバイダによって提供されるサービスに関するルールを含んでいるルール・データベースと、
該ネットワークおよびサービス・プロバイダに関する動的状況情報を含んでいる状況情報データベースと、
クライアントからトランザクションを受信するように構成されている受信機と、
該トランザクションに関するサービスおよびサービス・プロバイダを決定するように動的状況情報へルールを適用するように構成されているルール・アプライヤと、
該トランザクションに関してフォーマッティングが必要な場合は、該決定されたサービスおよびサービス・プロバイダに基づいて、該トランザクションをアプリケーション・レベルでフォーマットするように構成されているフォーマッタと、
該トランザクションを該サービス・プロバイダへ送信するように構成されている送信機と
を含む、ゲートウェイ。
【請求項22】
前記ルール・データベースへ、ルールを動的にロードするように構成されているルール・ローダをさらに含む、請求項21に記載のゲートウェイ。
【請求項23】
前記ルールが、前記ゲートウェイ上のトランザクションの切り替えに影響を及ぼすことなく動的にロードされる、請求項22に記載のゲートウェイ。
【請求項24】
クライアントまたはサービス・プロバイダから、前記ルールが動的にロードされる、請求項22に記載のゲートウェイ。
【請求項25】
前記トランザクションを前記サービス・プロバイダへ送信することなく、前記ゲートウェイにて該トランザクションを処理するように構成されているゲートウェイトランザクション処理装置をさらに含む、請求項21に記載のゲートウェイ。
【請求項26】
前記動的状況情報が、前記ネットワークの健康状態、前記サービス・プロバイダの利用可能性、前記アプリケーション・レベルで以前のトランザクションを処理するのに要した時間、あるいは該サービス・プロバイダへ該トランザクションを送信する費用を含む、請求項21に記載のゲートウェイ。
【請求項27】
トランザクションを切り替えるようにネットワークのエッジに位置するゲートウェイであって、
トランザクションを受信するように構成されているポートと、
該トランザクションに関するアプリケーション・レベルの内容および該トランザクションが経由して送られる伝送環境に関するアプリケーション・レベルの動的状況情報を決定するように構成されている処理装置であって、該伝送環境が、該トランザクションを処理することのできる1つ以上のトランザクション処理装置へ該トランザクションを送ることのできる1つ以上のネットワークを含む、処理装置と、
該トランザクションの該動的状況情報および該アプリケーション・レベルの内容に基づいて、該1つ以上のトランザクション処理装置の中のトランザクション処理装置、および該1つ以上のネットワークの中のネットワークへ該トランザクションを切り替えるように構成されている、スイッチと
を含む、ゲートウェイ。
【請求項28】
ネットワークに接続している、トランザクションを切り替えるゲートウェイであって、
トランザクションを受信するように構成されているポートと、
該ネットワークを介してアクセスすることのできる適切なトランザクション処理装置を前記アプリケーション・レベルで決定し、該適切なトランザクション処理装置に必要とされる該アプリケーション・レベルのフォーマッティングを決定するように構成されている処理装置と、
該アプリケーション・レベルのフォーマッティングに従って該トランザクションをフォーマットするように構成されているフォーマッタと、
該ネットワークを通じて、該トランザクションを該適切なトランザクション処理装置へ送信するように構成されている送信機と
を含む、ゲートウェイ。
【請求項29】
ネットワーク上でトランザクションを切り替えるゲートウェイであって、
クライアントから、アプリケーション・サービス選択に関する一連のアプリケーション・レベル・ルールを、該ゲートウェイにて保存するメモリと、
該クライアントから該ゲートウェイにてトランザクションを受信するように構成されているポートと、
該一連のルールに基づいて、該トランザクションに関するアプリケーション・レベルの内容を決定し、該トランザクションを処理し、該トランザクションをトランザクション処理装置へ送信するように構成されている処理装置と
を含む、ゲートウェイ。
【請求項30】
ネットワーク上でトランザクションを切り替えるゲートウェイであって、
クライアントからの、アプリケーション・サービス選択に関する一連のアプリケーション・レベル・ルールを、該ゲートウェイにて保存するメモリと、
該クライアントから該ゲートウェイにてトランザクションを受信するように構成されているポートと、
該トランザクションを遠隔のトランザクション処理装置へ転送する必要なく、該一連のルールに基づいて該トランザクションに関するアプリケーション・レベルの内容を決定し、該トランザクションを該クライアントへ返送するように構成されている処理装置と
を含む、ゲートウェイ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図14C】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公表番号】特表2009−500731(P2009−500731A)
【公表日】平成21年1月8日(2009.1.8)
【国際特許分類】
【出願番号】特願2008−519668(P2008−519668)
【出願日】平成18年6月29日(2006.6.29)
【国際出願番号】PCT/US2006/025887
【国際公開番号】WO2007/002932
【国際公開日】平成19年1月4日(2007.1.4)
【出願人】(506154720)ビザ ユー.エス.エー. インコーポレイテッド (7)
【出願人】(500313592)ビザ・インターナショナル・サービス・アソシエーション (8)
【Fターム(参考)】