(57)【特許請求の範囲】
【請求項１】
第１の金融機関と複数のスイッチサイトの間に分散された複数のスイッチとの間での電子トランザクションメッセージの転送を制御するためのインターフェースであって、前記第１の金融機関及び前記複数のスイッチはデータ通信ネットワークを介して接続されており、前記インターフェースは通信回路と処理回路と各スイッチサイトの稼働状態を記憶するメモリとを備えており、所定期間にわたってあるスイッチサイトから何らのトランザクションメッセージが受信されていない場合に前記通信回路はそのスイッチサイトへテストメッセージを前記データ通信ネットワーク上で送信するように動作可能であり、前記テストメッセージに応答して前記通信回路は前記スイッチサイトから到来する前記テストメッセージのエコーを受信するように動作可能であり、前記エコーが所定期間内に受信された場合には前記スイッチサイトの稼働状態を稼働中と設定し、前記エコーが前記所定期間内に受信されなかった場合には前記スイッチサイトの稼働状態を非稼働と設定するように前記処理回路は動作可能であり、前記スイッチサイトの稼働状態が非稼働と設定された場合には前記スイッチサイトに電子メッセージを転送しないように前記処理回路は動作可能であり、前記メモリは前記データ通信ネットワークを介して前記複数のスイッチに接続された第２の金融機関の稼働状態を記憶するように動作可能であり、前記通信回路は前記複数のスイッチの１以上から前記第２の金融機関についての更新された稼働状態を示す情報を受信するように動作可能であり、前記処理回路は前記メモリ内に記憶された前記第２の金融機関の稼働状態を前記１以上のスイッチから受信した前記情報に基づいて更新するように動作可能であり、前記第２の金融機関の稼働状態が前記第２の金融機関が非稼働であると示す場合には、前記処理回路は、前記第１の金融機関から前記第２の金融機関へのトランザクションを指示する電子トランザクションメッセージが前記スイッチへと送信されることを防止するように動作可能である、インターフェース。
【請求項２】
前記通信回路は指定された期間経過後に更なるテストメッセージを非稼働スイッチサイトへと送信するように動作可能である、請求項１に記載のインターフェース。
【請求項３】
前記第２の金融機関についての前記更新された稼働状態を示す情報は、前記複数のスイッチの１以上によって生成され、該生成は、前記スイッチの各々によって前記第２の金融機関へと送信されたテストメッセージについて所定期間内に応答がないこと、又は、前記第２の金融機関によって前記複数のスイッチの１以上へなされた指示であって第２の金融機関が前記データ通信ネットワークから切断されることを知らせる指示、に基づいて生成される、請求項１に記載のインターフェース。
【請求項４】
第１の金融機関と複数のスイッチサイトの間に分散された複数のスイッチとの間での電子トランザクションメッセージの転送を制御するための方法であって、前記第１の金融機関及び前記複数のスイッチはデータ通信ネットワークを介して接続されており、該方法は、所定期間にわたってあるスイッチサイトから何らのトランザクションメッセージが受信されていない場合には当該スイッチサイトへテストメッセージを前記データ通信ネットワーク上で送信するステップと、前記テストメッセージに応答して前記スイッチサイトから到来する前記テストメッセージのエコーを受信するステップとを含み、前記エコーが所定期間内に受信された場合には前記スイッチサイトの稼働状態を稼働中と設定し、前記エコーが前記所定期間内に受信されなかった場合には前記スイッチサイトの稼働状態を非稼働と設定し、前記スイッチサイトの稼働状態が非稼働と設定された場合には該方法は前記スイッチサイトに電子メッセージを転送しないステップを含み、該方法は、前記データ通信ネットワークを介して前記複数のスイッチに接続された第２の金融機関の稼働状態をメモリ内に記憶するステップと、前記複数のスイッチの１以上から、前記第２の金融機関についての更新された稼働状態を示す情報を受信するステップと、前記メモリ内に記憶された前記第２の金融機関の稼働状態を、前記１以上のスイッチから受信した前記情報に基づいて更新するステップとを含み、前記第２の金融機関の稼働状態が前記第２の金融機関が非稼働であると示す場合には、該方法は、前記第１の金融機関から前記第２の金融機関へのトランザクションを指示する電子トランザクションメッセージが、前記スイッチへと送信されることを防止するステップを含む、方法。
【請求項５】
指定された期間経過後に更なるテストメッセージを非稼働スイッチサイトへと送信するステップを含む、請求項４に記載の方法。
【請求項６】
前記第２の金融機関についての前記更新された稼働状態を示す情報は、前記複数のスイッチの１以上によって生成され、該生成は、前記スイッチの各々によって前記第２の金融機関へと送信されたテストメッセージについて所定期間内に応答がないこと、又は、前記第２の金融機関によって前記複数のスイッチの１以上へなされた指示であって第２の金融機関が前記データ通信ネットワークから切断されることを知らせる指示、に基づいて生成される、請求項４に記載の方法。
【請求項７】
コンピュータプログラムが格納された記憶媒体を備えたコンピュータプログラム製品であって、前記コンピュータプログラムはコンピュータ上で実行されると請求項４、５又は６のいずれか１つに記載の方法を実行するように前記コンピュータを構成する、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メッセージの転送を制御するためのインターフェース、方法及びコンピュータプログラム製品に関する。
【背景技術】
【０００２】
本明細書にて示される「背景」の目的は、本願開示の背景的文脈を一般的に提示することである。背景に関してのセクションにおいて述べられている限りにおいて本願にて特定される発明者の功績、及び、出願時において先行技術と分類されないかもしれない本願明細書の側面は、本発明との関係では明示的に又は黙示的に先行技術として自認されない。
【０００３】
現代的な電子銀行システムは、電子トランザクション要求メッセージ（トランザクションメッセージ）を用いることによって、異なる銀行の銀行口座間での資金の電子的移転を可能とする。このような資金移転の方法は、（ネットワーク上でのセキュアなデータ移転を可能とする様々な既知のセキュリティプロトコルを用いることによって）セキュアであり、また、（該方法によって銀行口座保有者は任意の時、即ち年間３６５日、一日中２４時間にわたって資金移転の要求を発することできる故に）便利である。
【０００４】
もっとも、このような電子トランザクション要求メッセージは何時でも発せられるのに対して、銀行間での資金の実際の移転は周期的にしか行われない。この様式は、「決済サイクル」モデルとして知られている。各決済サイクル中に、銀行によって発行されたトランザクションメッセージが受信及び記録される。そして、決済サイクルの終わりにおいて、記録されたトランザクションメッセージに基づいて、資金が実際に銀行間で移転される（これが「決済」と称される）。決済サイクル間の期間は典型的には８時間、１２時間又は２４時間であるが、任意の適切な周期を用いることができる。
【０００５】
後になされる銀行間決済が、決済サイクル中になされた記録されたトランザクションメッセージに基づいているため、記録されたトランザクションメッセージが効率的格納及び管理されることが最重要命題であり、例えば技術的な故障や自然災害の場合においてもこのことは変わらない。こうすれば、各決済サイクルの終末時において、完了されたトランザクションの各々が決済に際して考慮され、かつ、１回だけ考慮されることが保証される。これによって、銀行間での現金の過剰な又は過小な支払いが防止される。したがって、本発明は、電子トランザクションメッセージを効率的に格納及び管理することに関しての頑健かつ柔軟なシステムを提供する、という課題に関する問題を緩和することを少なくとも目的とする。
【発明の概要】
【０００６】
本発明は、第１の金融機関と複数のスイッチサイトの間に分散された複数のスイッチとの間での電子トランザクションメッセージの転送を制御するためのインターフェースであって、第１の金融機関及び複数のスイッチはデータ通信ネットワークを介して接続されており、インターフェースは通信回路と処理回路と各スイッチサイトの稼働状態を記憶するメモリとを備えており、所定期間にわたってあるスイッチサイトから何らのトランザクションメッセージが受信されていない場合に通信回路はそのスイッチサイトへテストメッセージをデータネットワーク上で送信するように動作可能であり、テストメッセージに応答して通信回路はスイッチサイトから到来するテストメッセージのエコーを受信するように動作可能であり、エコーが所定期間内に受信された場合にはスイッチサイトの稼働状態を稼働中と設定しまたエコーが所定期間内に受信されなかった場合にはスイッチサイトの稼働状態を非稼働と設定するように処理回路は動作可能であり、スイッチサイトの稼働状態が非稼働と設定された場合にはスイッチサイトに電子メッセージを転送しないように処理回路は動作可能である、インターフェースを提供する。
【０００７】
有利なことに、この構成によれば、電子メッセージは、利用不能でありメッセージを受付不能なものと判定されたスイッチサイトへは送られないことになる。メッセージが破損したり失われたりする危険性を減らすだけでなく、該構成によれば配信不能なメッセージに関して処理能力及びネットワーク容量を費やさなくて済むことになる。したがって、処理及びネットワークに関する効率性が向上する。
【０００８】
実施形態では、通信回路は指定された期間経過後に更なるテストメッセージを非稼働スイッチサイトへと送信するように動作可能である。
【０００９】
実施形態では、メモリはデータ通信ネットワークを介して複数のスイッチに接続された第２の金融機関の稼働状態を記憶するように動作可能であり、通信回路は複数のスイッチの１以上から第２の金融機関についての更新された稼働状態を示す情報を受信するように動作可能であり、処理回路はメモリ内に記憶された第２の金融機関の稼働状態を、１以上のスイッチから受信した情報に基づいて更新するように動作可能であり、第２の金融機関の稼働状態が第２の金融機関が非稼働であると示す場合には処理回路は第１の金融機関から第２の金融機関へと向かうトランザクションを指示する電子トランザクションメッセージが、スイッチへと送信されることを防止するように動作可能である。
【００１０】
実施形態では、第２の金融機関についての更新された稼働状態を示す情報は、複数のスイッチの１以上によって生成され、該生成は、スイッチの各々によって第２の金融機関へと送信されたテストメッセージについて所定期間内に応答がないこと、又は、第２の金融機関から複数のスイッチの１以上へなされた指示であって第２の金融機関がデータ通信ネットワークから切断されることを知らせる指示、に基づいて生成される。
【００１１】
本発明は、第１の金融機関と複数のスイッチサイトの間に分散された複数のスイッチとの間での電子トランザクションメッセージの転送を制御するための方法であって、第１の金融機関及び複数のスイッチはデータ通信ネットワークを介して接続されており、該方法は、所定期間にわたってあるスイッチサイトから何らのトランザクションメッセージが受信されていない場合にはスイッチサイトのどれかへテストメッセージをデータネットワーク上で送信するステップと、テストメッセージに応答してスイッチサイトから到来するテストメッセージのエコーを受信するステップとを含み、エコーが所定期間内に受信された場合にはスイッチサイトの稼働状態を稼働中と設定しまたエコーが所定期間内に受信されなかった場合にはスイッチサイトの稼働状態を非稼働と設定し、スイッチサイトの稼働状態が非稼働と設定された場合には該方法はスイッチサイトに電子メッセージを転送しないステップを含む、方法を提供する。
【００１２】
実施形態では、方法は、指定された期間経過後に更なるテストメッセージを非稼働スイッチサイトへと送信することを含む。
【００１３】
実施形態では、方法は、データ通信ネットワークを介して複数のスイッチに接続された第２の金融機関の稼働状態を記憶するステップと、複数のスイッチの１以上から、第２の金融機関についての更新された稼働状態を示す情報を受信するステップと、メモリ内に記憶された第２の金融機関の稼働状態を、１以上のスイッチから受信した情報に基づいて更新するステップとを含み、第２の金融機関の稼働状態が第２の金融機関が非稼働であると示す場合には、該方法は、第１の金融機関から第２の金融機関へと向かうトランザクションを指示する電子トランザクションメッセージが、スイッチへと送信されることを防止するステップを含む。
【００１４】
実施形態では、第２の金融機関についての更新された稼働状態を示す情報は、複数のスイッチの１以上によって生成され、該生成は、スイッチ各々によって第２の金融機関へと送信されたテストメッセージについて所定期間内に応答がないこと、又は、第２の金融機関から複数のスイッチの１以上へなされた指示であって第２の金融機関がデータ通信ネットワークから切断されることを知らせる指示、に基づいて生成される。
【００１５】
本発明は、コンピュータプログラムが格納された記憶媒体を備えたコンピュータプログラム製品であって、コンピュータプログラムはコンピュータ上で実行されると本発明に関する上述の方法を実行するようにコンピュータを構成する、コンピュータプログラム製品を、提供する。
【００１６】
上記は、一般的な導入として提供されており、添付の特許請求の範囲を限定することを意図していない。以下の詳細な説明と添付の図面とを参照することによって、説明された実施形態はさらなる長所と共により良く理解されるであろう。
【図面の簡単な説明】
【００１７】
添付の図面を伴って以下の詳細な説明を参照することによって本願をより良く理解できるのであり、本願開示についてのより完全な理解及び本願開示に付随する多くの長所が明らかとなる。
【００１８】
【図１】実施形態によるシステムの様々なコンポーネントを表す概略図である。
【図２Ａ】実施形態によるシステムの一部を構成するスイッチによってトランザクションメッセージに対して行われる様々な処理ステップを表すフローチャートである。
【図２Ｂ】実施形態によるシステムの一部を構成するスイッチによってトランザクションメッセージに対して行われる様々な処理ステップを表すフローチャートである。
【図３Ａ】システムを用いてデビット上限を実装する場合に関連しての問題を表す概略図である。
【図３Ｂ】実施形態による、図３Ａの問題に対する解決策を表す概略図である。
【図４】実施形態による、システムによってトランザクションメッセージに対して行われる様々な処理ステップを表すフローチャートである。
【図５】実施形態によるコンピュータを表す概略図である。
【発明を実施するための形態】
【００１９】
図面を参照するに、様々な視点において、同様の参照符号は同一又は対応する部分を表している。
【００２０】
図１は、実施形態によるシステム１００に関しての概要を表している。システムは、複数の銀行（ここでは２行の銀行、即ち銀行１及び銀行２）及び複数のスイッチ（ここでは２カ所のスイッチサイト、即ちスイッチサイト１及びスイッチサイト２）を備えている。各銀行は、データ通信チャンネルを介して双方のスイッチサイトと接続されている（不図示）。同様に、スイッチサイトは、データ通信チャンネルを介して相互に接続されている（不図示）。データ通信チャンネルは、インターネット等のデータ通信ネットワークを介して実装されていることができる。頑健性の向上のためにスイッチサイトは分離されており、一方のスイッチサイトで技術的な故障や自然災害等の問題が生じた場合には他方のスイッチサイトで処理が続行され得る。例えば、スイッチサイトは地理的に異なる位置に配置されていることができる。
【００２１】
各々の銀行は、バンキングアプリケーション１０２Ａ，１０２Ｂと、ゲートウェイアプリケーション１０４Ａ，１０４Ｂ（単に「ゲートウェイ」と称する場合もある）とメッセージキューユニット１０６Ａ，１０６Ｂとを備えている。各々のスイッチサイトは、メッセージキューユニット１０８Ａ，１０８Ｂと、複数のスイッチ（ここでは各サイトに２つのスイッチ、即ちスイッチサイト１にスイッチＳＷ１及びＳＷ２並びにスイッチサイト２にスイッチＳＷ３及びＳＷ４）と、データベース１１０Ａ，１１０Ｂと、メッセージキューユニット１１２Ａ，１１２Ｂとを備えている。さらに、スイッチサイトの一方（ここではスイッチサイト１）はバックオフィスユニット１１４を備えている。これらのコンポーネントそれぞれの機能は以下において詳述される。各々の銀行又はスイッチサイトの対応するコンポーネント（異なるアルファベット文字を伴う同じ番号で表される符号、例えばスイッチサイト１及び２おける１１０Ａ及び１１０Ｂのそれぞれや、銀行１及び２におけるメッセージキュー１０６Ａ及び１０６Ｂのそれぞれ）は、機能的には同一であることに留意されたい。
【００２２】
図１は、銀行口座間でのトランザクションの実行を可能とするためのシステム１００によって実装される例示的なメッセージフローを表す。図１の例では、銀行１の銀行口座から銀行２の異なる銀行口座への資金のトランザクションが実行される。もっとも、システム１００は、同じ銀行の異なる銀行口座間での資金のトランザクションを実行するためにも用いられ得ることに留意されたい。さらに、勿論ではあるが、銀行２が、銀行２に所在する口座から銀行１内に所在する口座へと資金を移転するトランザクション要求を生成することができる。
【００２３】
銀行１と銀行２との間のトランザクションを実現するためのメッセージフローは、銀行１での銀行口座の保有者が、銀行１に対して、資金を銀行２の銀行口座へと移転するように指示すると、開始される。この結果、トランザクション要求メッセージＭ１が生成される。メッセージＭ１は、資金の引出元となる銀行及び具体的な銀行口座に関しての識別子（例えば、銀行１の銀行ソートコード及び口座番号）と、資金の振込先となる銀行及び具体的な銀行口座に関しての識別子（例えば、銀行２の銀行ソートコード及び口座番号）と、移転すべき資金に関しての金額及び通貨種類とを含む。メッセージＭ１は、メッセージＭ１が関連するトランザクションを一意的に識別する一意的な識別子をも含む（例えば、一意な番号、一意な文字配列、一意な文字と数字とからなる組み合わせ、又は、ほかの何らかの配列）。この情報は、バンキングアプリケーション１０２Ａによって提供される。バンキングアプリケーション１０２Ａは、銀行によって提供されて、及び、顧客によってアクセスされることができ、セキュアなウェブサイト又は顧客の携帯端末又はタブレット型コンピュータ上で提供されるアプリケーションを用いてこれを行うことができる。この一意的な識別子は、「トランザクション識別子」という。
【００２４】
メッセージＭ１はメッセージキューユニット１０６Ａへと渡され、ゲートウェイ１０４ＡがメッセージＭ１を処理できる状態になるまでメッセージＭ１はそこで一時的に保持される。メッセージキューユニット１０６Ａは、メッセージＭ１を、ゲートウェイ１０４Ａへと送信されるべき他のメッセージと共に、待ち行列内に保持する（即ち、より早い時間に受信されたメッセージが、より遅い時間に受信されたメッセージよりも先にゲートウェイ１０４Ａへと送信される）。そして、ゲートウェイ１０４Ａが利用可能となると、待ち行列の先頭にあるメッセージを回収する。
【００２５】
ゲートウェイ１０４ＡがメッセージＭ１を受信できるようになると、メッセージキューユニット１０６ＡはメッセージＭ１をゲートウェイ１０４Ａへと渡す。ゲートウェイ１０４Ａは、メッセージＭ１がシステム１００に対応した所定の標準フォーマット（例えば、標準フォーマットたるISO20022）に則っていることを保証し、メッセージＭ１をデジタル的に署名する。また、ゲートウェイ１０４Ａは、Ｍ１に（例えば、Ｍ１のヘッダに）、Ｍ１がどのスイッチサイトへ送信されれば良いかを識別するルーティング情報をも追加する。ゲートウェイ１０４Ａの動作は、後ほど詳述する。以下において明らかになるように、ゲートウェイ１０４Ａはシステムにとって任意であるが、実施形態には含まれている。ゲートウェイ１０４Ａが無い場合、バンキングアプリケーション１０２Ａを用いてメッセージＭ１が正しくフォーマット及び署名される必要があり、また正しくルーティングされる必要もある。
【００２６】
メッセージＭ１のフォーマットが検査され、メッセージＭ１がデジタル的に署名され、及び、メッセージＭ１にルーティング情報が追加された場合、メッセージＭ１は、スイッチサイトのいずれかのメッセージキューユニット１０８Ａ，１０８Ｂへの送信に先んじてメッセージキューユニット１０６Ａに戻されて一時的に保持される。ここでも、メッセージキューユニット１０６Ａは、メッセージＭ１を、スイッチサイトへと送信されるべき他のメッセージと共に、待ち行列内に保持する。メッセージキューユニット１０６Ａの先頭にあるメッセージは、各メッセージ内のルーティング情報に従って、スイッチサイト１のメッセージキューユニット１０８Ａ又はスイッチサイト２のメッセージキューユニット１０８Ｂへと送信される。通常、各銀行のゲートウェイは、一連のメッセージの各々を２つのスイッチサイト間で交互的にルーティングする。したがって、メッセージキューユニット１０６Ａの先頭にあるメッセージがメッセージキューユニット１０８Ａへと送信された場合には、待ち行列内の次のメッセージはメッセージキューユニット１０８Ｂへと送信され、その後のメッセージはメッセージキューユニット１０８Ａへと送信され、以後同様になされる。この場合、メッセージＭ１がスイッチサイト１のメッセージキューユニット１０８Ａへと送信されたことが見受けられる。
【００２７】
メッセージＭ１は、スイッチＳＷ１又はＳＷ２のどちらか一方がメッセージＭ１を処理できる状態になるまでは、メッセージキューユニット１０８Ａ内で一時的に保持される。ここでも、メッセージキューユニット１０８Ａは、メッセージＭ１を、スイッチＳＷ１又はＳＷ２へと送信されるべき他のメッセージと共に保持するのであり、待ち行列の先頭にあるメッセージは最初に利用可能となったスイッチ（ＳＷ１又はＳＷ２）へと送信される。銀行側メッセージキュー及びシステム側メッセージキューは、ＩＢＭ（登録商標）ＭＱ等のシステムを用いて実装されることができることに留意されたい。
【００２８】
この場合、メッセージＭ１はスイッチＳＷ１へと送信される。そして、スイッチＳＷ１は、ハッシュ関数をメッセージＭ１に適用する。ハッシュ関数は、メッセージＭ１のトランザクション識別子と全サイトにある利用可能なスイッチの個数（即ち、この実施形態ではスイッチは４個）とについての関数であり、ハッシュ関数の出力は、メッセージＭ１を処理するのに使用すべきスイッチを識別する番号である（例えば、番号たる１、２、３又は４がそれぞれスイッチＳＷ１、ＳＷ２、ＳＷ３又はＳＷ４を表す）。ハッシュ関数によって識別されるスイッチは、メッセージキューユニット１０８ＡによってメッセージＭ１が当初仕向けられたスイッチと同じスイッチであることができるし、又は、代替的には異なるスイッチであることもできる。ハッシュ関数によって識別されたスイッチが異なるスイッチである場合、当初の受信側スイッチ（この場合ではスイッチＳＷ１）はメッセージＭ１を、ハッシュ関数によって識別されたスイッチへと渡す。もっとも、図１の実施形態では、ハッシュ関数によって識別されたスイッチはメッセージＭ１を当初受信したスイッチ（即ちスイッチＳＷ１）と同じスイッチであるため、メッセージは異なるスイッチへと転送はされない。ハッシュアルゴリズムについては後ほど詳述する。
【００２９】
メッセージＭ１がスイッチＳＷ１によって受信された後、メッセージＭ１が関連するトランザクションの状態がデータベース１１０Ａに記録される。この場合では、データベース１１０Ａが記録することは、トランザクションが未だ係属中であり、また、トランザクションが完了するために必要とされる３つのメッセージ（即ち、メッセージＭ１、Ｍ２及びＭ３。後述を参照。）のうちの１つのメッセージ（メッセージＭ１）がこれまでにスイッチＳＷ１によって受信又は送信されたということである。
【００３０】
データベース１１０Ａは、記憶ユニット１０９Ａ及び１０９Ｂの双方内に格納されているデータに基づいて生成されたクラスターデータベースである。データベース１１０Ａは、例えばMnesiaデータベースとして実装されることができる。スイッチＳＷ１，ＳＷ２は、これらのスイッチによって処理されたトランザクションの各々のトランザクション状態をデータベース１１０Ａ内に記録し更新されるようにする（これは矢印ＴＵによって図１で表されている）。記憶ユニット１０９Ａ，１０９Ｂは相互に同期された状態に維持されるのであり、トランザクション状態の各々が記憶ユニット１０９Ａ及び記憶ユニット１０９Ｂの双方において記録及び更新される。したがって、記憶ユニット１０９Ａ，１０９Ｂは同じデータについての同一コピーを含んでいるのであり、それ故にデータベース１１０Ａ内の各トランザクション状態は記憶ユニット１０９Ａ又は記憶ユニット１０９Ｂのいずれからも取得されることができる。有利なことに、この構成によれば、記憶ユニット１０９Ａ，１０９Ｂの一方が（故障又は計画された保守作業等によって）非稼働状態に陥った場合でも、データベース１１０Ａ内のトランザクション状態にアクセスすることができる。
【００３１】
データベース１１０Ｂはデータベース１１０Ａと同じ構成を有しており、データベース１１０Ｂは記憶ユニット１０９Ｃ及び１０９Ｄの双方内に格納されているデータに基づいて生成されたクラスターデータベースである。スイッチＳＷ３，ＳＷ４は、これらのスイッチによって処理されたトランザクションの各々のトランザクション状態をデータベース１１０Ｂ内に記録し更新されるようにする。記憶ユニット１０９Ｃ，１０９Ｄは相互に同期された状態に維持されるのであり、トランザクション状態の各々が記憶ユニット１０９Ｃ及び記憶ユニット１０９Ｄの双方において記録及び更新される。したがって、記憶ユニット１０９Ｃ，１０９Ｄは同じデータについての同一コピーを含んでいるのであり、それ故にデータベース１１０Ｂ内の各トランザクション状態は記憶ユニット１０９Ｃ又は記憶ユニット１０９Ｄのいずれからも取得されることができる。
【００３２】
スイッチＳＷ１によってメッセージＭ１が受信されたことに続いてデータベース１１０Ａ内のトランザクション状態が記録されたらば、スイッチＳＷ１はトランザクション情報メッセージＭ２を生成する。トランザクション情報メッセージＭ２は、トランザクション資金を受けるべき側の銀行（即ち、銀行２）に対してトランザクションのことを通知するためのものである。また、受取側銀行は、資金を受けるべき具体的な銀行口座及び受領されるべき現金に関しての金額及び通貨種類についても知らされる。したがって、トランザクション要求メッセージＭ１と同じように、Ｍ２は、資金を振り込むべき銀行及び具体的な銀行口座に関しての識別子（例えば、銀行２の銀行ソートコード及び口座番号）と、移転すべき資金に関しての金額及び通貨種類とを含む。また、（メッセージＭ１とメッセージＭ２とは同じトランザクションに関連しているが故に）メッセージＭ２はメッセージＭ１と同じトランザクション識別子を含んでいる。また、メッセージＭ２は資金の送金元の銀行及び具体的な銀行口座に関しての識別子を含むこともできるのであり、これによって受取側銀行口座の保有者が送金者の正体を知り得る。
【００３３】
メッセージＭ２が生成されたら、メッセージキューユニット１０８Ａ及び１０６Ｂ並びにゲートウェイ１０４Ｂを介して、Ｍ２は銀行２へと送信される。銀行２のメッセージキューユニット１０６Ｂ及びゲートウェイ１０４Ｂは、銀行１のメッセージキューユニット１０８Ａ及びゲートウェイ１０４Ａと機能的に同一である。したがって、メッセージＭ２は、メッセージキューユニット１０８Ａにて一時的に保持及びキューイングされる。そしてメッセージＭ２は、データ通信チャンネル上を（メッセージＭ２内の銀行２の識別子に基づいて）メッセージキューユニット１０６Ｂへと送信され、ゲートウェイ１０４Ｂがそれを受信できるようになるまでそこで再び一時的に保持及びキューイングされる。ゲートウェイ１０４Ｂによって受信されたら、メッセージＭ２は（スイッチによって生成されたデジタル署名を用いて）検証される。そして、メッセージＭ２はメッセージキューユニット１０６Ｂへと戻されて、そこで一時的に保持及びキューイングされてその後に銀行２のバンキングアプリケーション１０２Ｂへと渡される。したがって、銀行２はトランザクションのこと及びトランザクション資金を受けるべき具体的な銀行口座について知らされることになる。したがって、銀行１と銀行２との間での決済が未だ発生していないにもかかわらず、当該具体的な銀行口座へトランザクション資金をクレジット付けすることができる。
【００３４】
メッセージＭ２が銀行２へと送信された後、データベース１１０Ａ内のトランザクション状態は更新されて、トランザクションが未だ係属中でありかつトランザクションが完了するために必要とされる３つのメッセージのうちの２つのメッセージ（即ち、メッセージＭ１及びＭ２）がこれまでにスイッチＳＷ１によって受信又は送信されたということが記録される。
【００３５】
メッセージＭ２が銀行２のバンキングアプリケーション１０２Ｂによって成功裏に処理されると、バンキングアプリケーション１０２Ｂは第１のトランザクション確認メッセージＭ３を生成する。メッセージＭ３は、メッセージＭ２が銀行２によって成功裏に受信及び処理されたことについての確認であり、（メッセージＭ１、Ｍ２及びＭ３は全て同じトランザクションに関連しているため）当該メッセージはメッセージＭ１及びＭ２と同じトランザクション識別子を含んでいる。メッセージＭ３はメッセージキューユニット１０６Ｂ内で一時的に保持及びキューイングされて、そしてゲートウェイ１０４Ｂへと渡され、当該メッセージが適切な標準フォーマットになっていることが保証されて、また、デジタル署名及びルーティング情報が付加される。そして、メッセージＭ３はメッセージキューユニット１０６Ｂへと戻されて、スイッチサイトの１つへと転送されるまでは一時的に保持及びキューイングされる。メッセージキューユニット１０６Ａの場合と同じように、メッセージキューユニット１０６Ｂ内の待ち行列の先頭にあるメッセージは一般的には交互的にスイッチサイト１のメッセージキューユニット１０８Ａ及びスイッチサイト２のメッセージキューユニット１０８Ｂへと送信されるのであり、これはゲートウェイ１０４Ｂによって各メッセージに付加されたルーティング情報に基づいてなされる。この場合では、メッセージ３はスイッチサイト２のメッセージキューユニット１０８Ｂへと送信されることが分かる。
【００３６】
メッセージＭ３は、スイッチＳＷ３及びＳＷ４のいずれか１つがメッセージＭ３を受信可能になるまで、メッセージキューユニット１０８Ｂ内にて一時的に保持及びキューイングされる。この場合では、待ち行列の先頭にメッセージＭ３がある時点において最初に利用可能となるのがスイッチＳＷ４であることが分かるのであり、したがってメッセージＭ３はスイッチＳＷ４へと送られる。
【００３７】
スイッチＳＷ４では、メッセージＭ３に対してハッシュアルゴリズムが適用される。メッセージＭ３はメッセージＭ１（及びメッセージＭ２）と同じトランザクション識別子を有しているため、ハッシュアルゴリズムの出力はメッセージＭ１についてのハッシュアルゴリズムの出力と同じになる。換言すれば、メッセージＭ３が送られるべきスイッチがスイッチＳＷ１である、ということがハッシュアルゴリズムの出力によって指示される。したがって、図１にみられるように、スイッチＳＷ４はメッセージＭ３をスイッチＳＷ１へと送信する。この送信は、スイッチサイト１及び２を接続するデータ通信チャンネル上でなされる。
【００３８】
メッセージＭ３がスイッチＳＷ１によって受信されたらば、データベース１１０Ａ内のトランザクション状態は更新されるのであり、トランザクションが完了するために必要なメッセージ（メッセージＭ１、Ｍ２及びＭ３）の全てがスイッチＳＷ１によって受信又は送信された故にトランザクションが完了したことが記録される。この場合では、トランザクション状態は、係属中のトランザクションのトランザクション詳細事項を記録するデータベース１１０Ａ内の進行中（in-flight）テーブルから、完了されたトランザクションのトランザクション詳細事項を記録するデータベース１１０Ａ内の完了テーブルへと、移される。
【００３９】
トランザクションが完了したことを決定するためには３つのメッセージＭ１、Ｍ２及びＭ３を用いることで足りる。なぜならば、メッセージＭ３が受信されるとメッセージＭ２内に含まれている支払情報が銀行２によって受信され及び成功裏に処理されたことが確認されるからである。したがって、メッセージＭ１の送信の後に銀行１の送金元口座から引き落とされた額と同じ額の現金が、銀行２の送金先口座に入金されている。これによって、銀行１と銀行２との間での決済が未だ行われていなくとも、銀行１及び銀行２の顧客は、資金の即時的な移転を享受することができる、という点に留意されたい。
【００４０】
トランザクションが完了されたことをデータベース１１０Ａ内において記録するためのトランザクション状態についての更新に続いて、トランザクションサマリ記録ＴＳがトランザクション状態に基づいて作成される。トランザクションサマリ記録ＴＳは、トランザクションメッセージによって定義された金融口座間での資金決済を可能とするのに十分な情報を含んでいるのであり、メッセージキューユニット１１２Ａ内にて保持される。具体的には、トランザクションサマリ記録ＴＳは次の事項を含む：資金の送金者（送金元、originator）の氏名若しくは名称、アドレス、ソートコード及び口座番号；資金の受取人（受益者、beneficiary）の氏名若しくは名称、アドレス、ソートコード及び口座番号；送金されるべき資金の額（これには送金の際に用いられる通貨種類も含まれる）；並びに一意的なトランザクション識別子。また、トランザクションサマリ記録ＴＳは次のような追加的な事項も含むことができる：レコードが作成された日時；トランザクションメッセージ（Ｍ１、Ｍ２及びＭ３）が送信又は受信された時点に関するタイムスタンプ；決済の日時（又はトランザクションが処理されるべき具体的な決済サイクル回を指示する標識）；並びにトランザクションが成功したか否かについての指示等。この列挙はもちろん網羅的ではなく、決済を行うに際して有用たり得る任意の情報及び全てのトランザクションについて勘定するために有用たり得る任意の情報を、トランザクションサマリ記録ＴＳに含めることができる。
【００４１】
図１には不図示であるも、メッセージキューユニット１１２Ａはクラスターデータベースの形態をとっており、当該構成においては全てのトランザクションサマリ記録ＴＳについての２つのコピーが別個の記憶ユニット上にて格納されている。２つのコピーの同期を維持することによってシステム１００の頑健性は向上する。なぜならば、トランザクションサマリ記録の片方のコピーが仮に（技術的な障害等によって）利用不能となったとしても、２つ目のコピーを依然使用することができるからである。メッセージキューユニット１１２Ａは、バックオフィスユニット１１４（後述参照）が決済処理のためにトランザクションサマリ記録を受信する準備ができるまでは、トランザクションサマリ記録を一時的に保持及びキューイングする。
【００４２】
トランザクションサマリ記録ＴＳの作成並びにメッセージキューユニット１１２Ａ及び１１２Ｂの運用は、Rabbit MQ（登録商標）等のソフトウェアアプリケーションを用いて実装されることができる。実際には、クラスターデータベース１１０Ａ及びメッセージキューユニット１１２Ａ（並びに、同様にクラスターデータベース１１０Ｂ及びメッセージキューユニット１１２Ｂ）はソフトウェアアプリケーションによって機能的に連結されていることができ、各サイトにおけるクラスターデータベース及びメッセージキューユニットが完全に別個のエンティティであるにも関わらずにこれらの間での読み出し及び書き込み機能（これにはトランザクションサマリ記録ＴＳの作成も含む）を簡便且つ確実に実装することができる。
【００４３】
メッセージキューユニット１１２Ａ内にトランザクションサマリ記録ＴＳが成功裏に格納されたことに続いて、スイッチＳＷ１は第２のトランザクション確認メッセージＭ４を生成する。メッセージＭ４は、銀行２でトランザクションが成功裏に行われたことを銀行１に確認的に知らせるための確認メッセージであり、（メッセージＭ１，Ｍ２，Ｍ３，Ｍ４は全て同じトランザクションに関連しているが故に）メッセージＭ１，Ｍ２，Ｍ３と同じトランザクション識別子を有している。メッセージＭ４は、メッセージキューユニット１０８Ａ，１０６Ａ及びゲートウェイ１０４Ａを介して銀行１へと送信される。換言すれば、メッセージＭ４は、メッセージキューユニット１０８Ａ内にて一時的に保持及びキューイングされる。そして該メッセージは、メッセージキューユニット１０６Ａへとデータ通信チャンネル上で送信され、該メッセージをゲートウェイ１０４Ａが受信できるようになるまでそこで一時的に保持及びキューイングされる。ゲートウェイ１０４Ａによって受信されたらば、メッセージＭ４は（スイッチによって生成されたデジタル署名を用いて）検証される。そして、該メッセージは、メッセージキューユニット１０６Ａへと差し戻され、銀行１のバンキングアプリケーション１０２Ａへと渡される前にそこで一時的に保持及びキューイングされる。これにより、資金の移転が成功裏に実行されたことが銀行１に確認的に知らされる。
【００４４】
指示発令側銀行（図１の例においては銀行１）の口座保有者が最初に要求発令アプリケーションを用いてインターネットを介してメッセージＭ１を受信するスイッチへと送信し、且つ、（ハッシュ関数によって決定された）処理をするスイッチがこの当初受信したスイッチと同じスイッチでない場合（注：図１の場合はこれに該当しない。なぜならば、処理をするスイッチＳＷ１はメッセージＭ１を当初受信したスイッチでもあるからである。）、メッセージＭ４はまず処理をするスイッチから当初受信したスイッチへと転送されてそして当初受信したスイッチから指示発令側銀行へと（該当するメッセージキューユニット１０８Ａ，１０８Ｂ，１０６Ａ，１０６Ｂを介して）送信される。トランザクションのためにメッセージＭ１を送信した要求発令アプリケーションそのものにメッセージＭ４を戻すことを保証するためには、このようにすることが必要である。
【００４５】
バックオフィスユニット１１４は、銀行１と銀行２との間で決済が行われることを可能とするために、メッセージキューユニット１１２Ａ，１１２Ｂ内にて保持及びキューイングされたトランザクションサマリ記録を処理するように構成されている。これが可能なのは、各トランザクションサマリ記録が、各トランザクションについて銀行１から銀行２へと（又はその逆へと）移転される金額を捕捉するために必要な全ての情報を含んでいるからであり、それ故に決済サイクルの終わりにおいて銀行間で移転されるべき金額の合計を、トランザクションサマリ記録を用いて算出することができる。これにより、上述した各トランザクションについての銀行口座に対してのクレジット及びデビット処理が、銀行間での現金についての繰延差金決済（real money deferred net settlement）に対応付けされることが保証される。トランザクションサマリ記録ＴＳは、処理のためバックオフィスユニット１１４へと送信される前に、メッセージキュー１１２Ａ内にて保持及びキューイングされる。バックオフィスユニット１１４での処理は、トランザクションサマリ記録ＴＳを格納することと、決済処理において用いるために各銀行についての二者間（銀行対銀行）及び多者間（銀行対全ての他行）の債務（即ち、支払うべき金銭）に関しての暫定合計を管理することとを含む。そして、バックオフィスユニット１１４が有しているこのデータに基づいて、（例えば、上述したように８時間、１２時間又は２４時間毎の）決済サイクルの終わりにおいて決済が行われる。
【００４６】
この実施形態では、バックオフィスユニット１１４はスイッチサイト１に配置されていることに留意されたい。したがって、スイッチサイト２のメッセージキューユニット１１２Ｂ内に保持されたトランザクションサマリ記録ＴＳは、バックオフィスユニット１１４によって受信されるためには、スイッチサイト間にわたるデータ通信チャンネル上を介して送信される必要がある。代替的な実施形態では、バックオフィスユニット１１４はスイッチサイト２に配置されていることができ、この場合、スイッチサイト１のメッセージキューユニット１１２Ａ内に保持されたトランザクションサマリ記録ＴＳは、バックオフィスユニット１１４によって受信されるためには、スイッチサイト間にわたるデータ通信チャンネル上を介して送信される必要がある。別の実施形態では、複数のバックオフィスユニットがあり、スイッチサイト１及びスイッチサイト２の各々に１つ配置されている。この場合、一方のみのバックオフィスユニットを決済のために使用する。もっとも、複数のバックオフィスユニット１１４が存在しているため、（故障又は計画された保守作業等によって）バックオフィスユニット１１４の一方が非稼働状態に陥った場合、メッセージキューユニット１１２Ａ，１１２Ｂ内に保持されたトランザクションサマリ記録ＴＳは残っている稼働中のバックオフィスユニット１１４へとリダイレクトされて決済がなされることができる。したがって、システム１００は向上した頑健性を有している。なぜならば、バックオフィスユニット１１４の一方の故障にもかかわらずトランザクションサマリ記録ＴＳを用いて決済を依然行えるからである。
【００４７】
トランザクション要求の分配
既述のように、図１の実施形態では、ハッシュ関数（「ハッシュアルゴリズム」ともいう）によってトランザクションメッセージ（特に銀行から受信されるメッセージＭ１及びＭ３）がスイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４間で分配される。これによってスイッチ間でメッセージが等しく分配されることが支援されるのであり、それ故にシステム１００に向上した負荷分散性をもたらす。また、これによって、同じトランザクションに関するメッセージが、同じスイッチ又は少なくとも同じデータベース１１０Ａ，１１０Ｂへのアクセスを有している幾つかのスイッチによって処理されることをより確実なものとするのにも資する。以下、ハッシュ関数について詳述する。
【００４８】
既述のように、ハッシュ関数は各メッセージをスイッチへとマッピングする。より具体的には、ハッシュ関数は、入力としてメッセージの一意的なトランザクション識別子とスイッチの個数とを受け付けて、メッセージを処理するのにスイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４のうちどの１つを用いるべきかを指示する番号を出力する。即ち、ハッシュ関数は以下の形式で表される：
スイッチ番号＝関数（トランザクション識別子，スイッチの総数）        
【００４９】
ハッシュ関数として用いられることができる具体例（即ち、入力の個数が多数又は場合によっては無限大であっても、決まった個数の規定の出力値しか出力しない関数）は当業者に知られているのでここでは言及しない。
【００５０】
実施形態では、銀行のうちのある１行から（より具体的に言えば、メッセージキューユニット１０８Ａ，１０８Ｂのうちの１つから）メッセージを最初に受信したスイッチがメッセージに対してハッシュ関数を適用する処理を行う。これによって、どのスイッチがメッセージを処理するかが識別される。そして、メッセージは識別されたスイッチへと送信（即ち、換言すれば、転送）される。この関数は、スイッチ内に配置された処理回路によって行われるのであり、スイッチ内の記憶ユニット内に格納されたコンピュータ可読命令を用いて該処理が行われる。ハッシュ関数の適用後のメッセージの転送については、図１との関係で上記において以前例示した（当該例においては、最初はスイッチＳＷ４へと渡されたメッセージＭ３が、ハッシュ関数が適用された後にはスイッチＳＷ１へと転送される。）。ハッシュ関数の適用は銀行から受信されたメッセージ（即ち、図１の例ではメッセージＭ１及びＭ３）に対して行われる。なぜならば、これらのメッセージが初期的にスイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４のいずれか１つへと送信され得るからである。
【００５１】
同じトランザクションと関連付けられた全てのメッセージは、同じトランザクション識別子を有している。このため、このようなメッセージは、同じスイッチ又は少なくとも同じデータベース１１０Ａ，１１０Ｂへのアクセスを有している幾つかのスイッチへと送信されてまた処理されることができる。特定のトランザクションの進行について、より容易に且つより効率的に、追跡を行って該当するデータベース１１０Ａ，１１０Ｂを最新に維持することができる、という点においてこれは有利である。
【００５２】
特定のトランザクションと関連付けられた全てのメッセージを処理するための単一の識別されたスイッチを割り当てることが有利であるが、損傷又は計画された保守作業等のために識別されたスイッチが非稼働状態に陥った場合に関しては、本願開示の実施形態では、そのトランザクションを扱うべき代替的スイッチについての優先順位リストを提供する。
【００５３】
スイッチに関しての優先順位の一例を下記の表１との関連で述べる。
【表１】
0006483277.tif 000002
【００５４】
表１ではスイッチに関しての優先順位が示されている。第１スイッチは、全スイッチに渡っての均一なメッセージ分配を決するためにハッシュアルゴリズムによって選定されたスイッチである。第２スイッチは、優先順位における次順位スイッチであり、第１スイッチが利用不能である場合には、特定のトランザクションに関してのメッセージは第２スイッチへと送信される。この場合では、第２スイッチは第１スイッチと同じサイトに配置されている。換言すれば、第１スイッチがスイッチサイト１に配置されている場合、第２スイッチもスイッチサイト１に配置されていることになる。第３スイッチは優先順位においてその次の順位にあるスイッチであり、第２スイッチが利用不能である場合にメッセージは第３スイッチへと送信される。この場合、第３スイッチは、第１及び第２スイッチとは異なるスイッチサイトに配置されていることが必要である。なぜならば、第１及び第２スイッチのスイッチサイトには他の利用可能なスイッチが無いからである。最後に、第４スイッチは優先順位においてその次の順位にあるスイッチであり、第３スイッチが利用不能である場合にメッセージは第４スイッチへと送信される。この場合、（唯一残っているスイッチである）第４スイッチは第３スイッチと同じサイトに配置されていることが必要である。
【００５５】
表１のような優先順でスイッチを提供することには２つの明確に異なる利点がある。第１の利点は、一方のスイッチが故障しても、アクティブなスイッチによってメッセージが迅速に処理されるという点にある。これによって、トランザクション要求が迅速に再割り当てされるということが保証される。第２の利点としては次の観点がある：優先順位における第２スイッチは第１スイッチと同じサイトにあるため、第１スイッチが非稼働状態に陥ったとしても、第１スイッチと同じくデータベース１１０Ａ，１１０Ｂに直接アクセスできるスイッチへとメッセージが送信されることが、保証されること。これによって、第１スイッチが未だ稼働中であるかのようにメッセージ処理が続行されることができる。なぜならば、以前第１スイッチによって処理されていた全ての進行中トランザクションについてのトランザクション状態記録に対して、第２スイッチが即時にアクセス及び更新を行うことができるからである。有利なことに、これにより、特定のスイッチサイトにあるスイッチの１つが非稼働状態に陥った場合に生じる失調が緩和される。
【００５６】
特定のスイッチサイトのスイッチ両方が非稼働状態に陥ると、優先順位リストにある第３及び第４スイッチの存在によって新規トランザクション（即ち、特定のスイッチサイトのスイッチ両方が非稼働状態に陥った後にメッセージＭ１が発せられたトランザクション）の処理を続行させることができる。有利なことに、これによって、スイッチサイトの両方のスイッチが非稼働状態に陥った場合（例えば、一方のスイッチサイトで自然災害が発生した後の状態）であっても、新たに指示されたトランザクションは遂行可能となる。ただし、非稼働状態のスイッチサイトで既に部分的に完了されたトランザクションは続行されることができない。なぜならば、（非稼働状態のサイトにあるデータベース１１０Ａ，１１０Ｂ上に格納された）トランザクション状態データにアクセスできないからである。この場合に関しては、後ほど詳述する。
【００５７】
表１にて示した各スイッチについての具体的な優先順位リストは例に過ぎないのであり、代替的な優先順位リストを用いることもできることに留意されたい。また、上記においては２つのサイトに２つのスイッチが設けられている場合について述べたが、上述した原理は任意の個数のサイトに任意の個数のスイッチを設けた場合にも妥当し得ることが想定される。
【００５８】
システム頑健性の向上
既述のように、システム１００では、トランザクションのトランザクション状態データは、トランザクションを処理するのに用いられたスイッチサイトのデータベース１１０Ａ，１１０Ｂ内に格納される。そして、トランザクション状態データはトランザクションサマリ記録ＴＳを生成するために使用されて、決済サイクルの終わりになってバックオフィスユニット１１４がトランザクションサマリ記録ＴＳを受信できるようになるまで、これが適切なメッセージキューユニット１１２Ａ，１１２Ｂ内にて保持及びキューイングされる。適切なメッセージキューユニット１１２Ａ，１１２Ｂ内に成功裏にトランザクションサマリ記録ＴＳが格納されると、データベース１１０Ａ，１１０Ｂからトランザクション状態データを消去することができる。さらに、バックオフィス１１４が適切なメッセージキューユニット１１２Ａ，１１２Ｂに対して自己が成功裏にトランザクションサマリ記録ＴＳを受信したことを確認的に知らせた場合、トランザクションサマリ記録ＴＳをメッセージキューユニット１１２Ａ，１１２Ｂから消去することができる。
【００５９】
もっとも、トランザクションサマリ記録ＴＳが格納されているスイッチサイトにて問題があり、該問題によってバックオフィスユニット１１４がそのスイッチサイトのメッセージキューユニット１１２Ａ，１１２Ｂにアクセスできなくなっている場合（即ち、メッセージキューユニット１１２Ａ，１１２Ｂのクラスターデータベース構成にも関わらずにアクセスが妨げられている場合）、決済サイクルの終わりにてトランザクションサマリ記録ＴＳが勘定されない恐れがある。この結果、銀行間決済は誤って計算されることになる（したがって、銀行間では誤った現金移転が行われることになる）。
【００６０】
当該問題を緩和するために、自己の処理用スイッチサイトのメッセージキューユニット１１２Ａ，１１２Ｂへと各トランザクションサマリ記録ＴＳが渡される際に、他のスイッチサイトのうちの１つのスイッチへそのコピーを転送しておきバックアップ記憶ユニット（不図示）における格納のために供する。したがって、例示すれば、スイッチサイト１で生成されてメッセージキューユニット１１２Ａにて一時的に保持及びキューイングされた各トランザクションサマリ記録ＴＳは、スイッチサイト２のスイッチＳＷ３又はＳＷ４へコピーされた上で転送されてスイッチサイト２のバックアップ記憶ユニットに格納される。有利なことに、この構成によれば次の場合において次の結論が導かれる：特定のサイトのメッセージキューユニット１１２Ａ，１１２Ｂにて格納されたトランザクションサマリ記録ＴＳが何らかの理由によって決済サイクルの終わりにおいてバックオフィスユニット１１４からアクセスできないこととなった場合（例えば、メッセージキューユニット１１２Ａ，１１２Ｂの故障等が生じた場合）であっても、トランザクションサマリ記録ＴＳのバックアップ済みコピーを検索して決済関連計算を行わせるためにバックオフィスユニット１１４にこれを提供することができる。メッセージキューユニット１１２Ａ，１１２Ｂについてクラスターデータベース構成を採用することと共に上記によって、銀行間決済が正しく行われることをより確実にすることを支援することができる。
【００６１】
上述したように、実施形態では、スイッチは複数のサイト間で分散されており、各サイトはスイッチのクラスターを有している。図１の実施形態では、例えば、４つのスイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４があり、スイッチＳＷ１及びＳＷ２がサイト１でクラスターをなし、スイッチＳＷ３及びＳＷ４がサイト２でクラスターをなしている。
【００６２】
スイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４の各々は、互いとの関係で独立的に動作する。したがって、クラスター内のスイッチの１つが（例えば、エラーや誤作動等によって）故障した場合や、クラスター内のスイッチの１つが保守作業のためにシャットダウンされる必要がある場合においては、トランザクション処理をそのクラスター内の（有利なことに、同じデータベース１１０Ａ，１１０Ｂに対してのアクセスを有している）他方のスイッチにて依然として続行していくことができる。
【００６３】
当該原理は単一のスイッチが故障しても妥当するのであり、さらなるスイッチが故障したとしても、システム内に稼働中のスイッチが少なくとも１つある限りにおいては、（少なくとも新規に発令されたトランザクションについての）トランザクション処理を続行することができる。例えば、サイト１及びサイト２の各々にてスイッチが故障した場合（例えば、スイッチＳＷ１及びＳＷ３）や、単一のサイトにて両方のスイッチが故障した場合（例えば、サイト１のスイッチＳＷ１及びＳＷ２）や、たとい１つのスイッチを除いて他の全てのスイッチが故障した場合（例えば、スイッチＳＷ１、ＳＷ２及びＳＷ３が故障してＳＷ４のみが稼働中の場合）であっても、トランザクションメッセージは（ハッシュ関数を用いて）利用可能なスイッチへと再ルーティングされてトランザクション処理は続行される。
【００６４】
さらに、この原理はスイッチ故障に限定されない。システム１００の他のコンポーネント（例えば、記憶ユニット１０９Ａ〜Ｄの１つ）が故障した場合、当該事象は該当するスイッチによって検知されて、ハッシュ関数に従って決定された通りに当該スイッチがメッセージを代替的なスイッチへと転送する。このようにして、トランザクション処理は他のスイッチの１つを用いて続行される。
【００６５】
また、この原理はコンポーネント故障に対応する場合に限定されない。例えば、（例えば、ソフトウェアやハードウェア更新等のために）スイッチサイトが保守作業のためにシャットダウンされた場合、そのサイトのスイッチはトランザクションメッセージを受信することができなくなり得る。しかし、トランザクションメッセージは他のサイトのスイッチによって依然として受信及び処理されることができるのであり、したがってトランザクション処理は続行されることができる。このことは、例えば自然災害等（例えば、火災、洪水等）によってサイト全体がシャットダウンされた場合にも妥当する。
【００６６】
既述のように、トランザクションメッセージは、スイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４間で分配されるのであり、これはハッシュ関数によって決定されたスイッチ優先順位リストに準拠してなされる。スイッチが最初にトランザクションメッセージを受信すると、メッセージにハッシュ関数を適用して（必要であれば）メッセージを転送するのであり、転送先はシステムによって処理可能であると認識されている優先順位リスト内の首位の（第１の）スイッチである（ポーリング構成を用いたスイッチ利用可能性の監視は、下記において詳述する）。メッセージを転送するために、当初に受信したスイッチは、優先順位リストの首位のスイッチと接続（例えば、通信制御プロトコル（ＴＣＰ）接続等）を確立しようと試みるのであり、そしてこの接続が成功裏に確立された後、メッセージを転送する。接続が成功裏に確立できない場合（例えば、優先順位が首位のスイッチに故障がある場合等）においては、優先順位リストの首位のスイッチは利用不能であると決定されるのであり、システムによって利用可能であると認識されている優先順位リストにおいて次順位のスイッチへとメッセージを転送する試みが（ここでも、優先順位リストにおける次順位スイッチとの接続を確立させようとすることによって）なされる。このようにして、利用可能なスイッチが発見されるまで、処理は反復される。
【００６７】
（新規に指示されたトランザクションを表す）メッセージＭ１に関しては、優先順位リストのスイッチが１つでもトランザクションメッセージ受信可能状態であれば、トランザクション処理はそのスイッチによって完了されることができ、それによってトランザクションサマリ記録ＴＳが生成される。なぜならば、特定のトランザクションについてのトランザクション状態データが最初にメッセージＭ１内の情報に基づいて記録されるからであり、これ故に、トランザクション処理を続行するために（一方のスイッチサイトのデータベース１１０Ａ，１１０Ｂ内に格納されている）以前のトランザクション状態データにアクセスする必要がないからである。他方で、メッセージＭ３に関しては、メッセージＭ１が転送されたスイッチ（なお、このスイッチではメッセージＭ２が生成された）と同じスイッチサイトにあるスイッチへとメッセージＭ３が転送された場合のみにおいて、トランザクション処理が完了され得る。なぜならば、トランザクション処理を続行するためには、そのスイッチサイトにて格納されているトランザクション状態データにアクセスすることを要するからである。したがって、メッセージＭ１のトランザクションが処理されたスイッチサイトのスイッチがメッセージＭ３を受信する前に両方が非稼働状態に陥った場合、トランザクションを続行することができない。なぜならば、非稼働状態のスイッチサイトに格納されているトランザクション状態データにアクセスすることができないからである。このシナリオは後ほど詳述する。
【００６８】
浪費されるネットワーク帯域を削減するために、各スイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４は、他の全てのスイッチに対して周期的にポーリングを行うように構成されており、これによってそれらが利用可能であるかが確定される。このポーリング動作には、他のスイッチの各々に対してテストメッセージを送信することと、応答に関してリスニングすることとが含まれる。特定のスイッチからの応答が所定の期間内に受信されなかった場合、その特定のスイッチは利用不能であると決定される。そして、このスイッチへと送信されるものと決定されたトランザクションに関連付けられたメッセージは、優先順位リストの次順位のスイッチへと送信される。このポーリングを周期的に行うことによって、利用不能なスイッチと接続を確立しようとするスイッチによってネットワーク帯域幅が浪費されなくなる。ポーリング行為間の時間周期は、ポーリングによって追加消費される帯域幅が、利用不能なスイッチと接続を確立しようとして用いられる帯域幅に関しての削減量によって、十分に補償されるようにして、決定される。適切な時間周期は１００ｍｓたり得るが、他の周期も想定される。利用不能と決定されたスイッチに対してのポーリングは続行されるのであり、該当するスイッチが再度利用可能となったらばそのことが他のスイッチに認知されるようにするために続行されるのであり、そしてその場合には、再度メッセージを復帰したスイッチへと送信することができる。
【００６９】
このようにして、否定的なポーリング結果が生じた場合（即ち、応答が受信されない場合）又はそのスイッチとの接続試行が失敗した場合、別のスイッチが利用不能であるとスイッチが決定する。いずれの場合にあっても、利用不能なスイッチへと送信されるべきメッセージは、優先順位リストにおける次順位のスイッチへと送信されることになる。この方法によってシステム内の他の問題についても知り得るのであり、例えばスイッチサイト間のデータ通信リンクの故障が察知され得る（例えば、ＳＷ１及びＳＷ２の両方がそれぞれＳＷ３及びＳＷ４の両方と接続できず又は一貫して否定的なポーリング結果を受信している場合、スイッチサイト１とスイッチサイト２との間のデータ通信リンクが故障したのかもしれない）。問題発生時においては、ポーリングがなされていなかった場合よりはより迅速に保守作業が故障スイッチ又は故障スイッチサイトに施されることになる。例えば、ポーリングがなされていない場合、故障したスイッチ又はスイッチサイトは、トランザクションに関連付けられたメッセージが正しく送信されなかった場合にしか特定されない。これは、ポーリング信号よりも遙かにまれにしか発生しないかもしれない。
【００７０】
送金元銀行（図１の例では銀行１）は、メッセージＭ４を受信することによってトランザクションが成功裏に完了されたことを知る。（タイムアウト期間ともいう）所定の期間内にメッセージＭ４が送金元銀行にて受信されない場合、送金元銀行はトランザクションが成功したか否か知り得ない。このタイムアウトは幾つかの理由に起因し得る。例えば、メッセージＭ１が処理されたスイッチサイトがトランザクション完了前（例えば、メッセージＭ３の受信前）に非稼働状態に陥ったかもしれないのであり、即ちトランザクションサマリ記録ＴＳが作成されもしなかったことを意味し、また、メッセージＭ４が生成されもしなかったことを意味する。これは、失敗したトランザクションとなる。他方で、トランザクションは成功裏に完了され、メッセージＭ４が生成されたのではあるが、その後にメッセージＭ４がシステム１００内で失われたか、タイムアウト期間が満了するほどに遅延したかもしれない。タイムアウト期間内にメッセージＭ４が受信されない場合においては、送金元銀行はメッセージＭ１を再送信することができる。図２Ａ〜２Ｂは、どのようにして個々のスイッチがトランザクションメッセージを処理するかを示しており、これには個々のスイッチがどのようにして送金元銀行からの再送信トランザクションメッセージを処理するかが含まれる。
【００７１】
図２Ａは、実施形態についてのフローチャートであって、メッセージキューユニット１０８Ａ，１０８Ｂの１つからトランザクションメッセージを最初に受信したスイッチによって行われるプロセスを示すフローチャートである。
【００７２】
プロセスはステップ２００で開始される。ステップ２０２では、該当するメッセージキューユニット１０８Ａ，１０８Ｂからのトランザクションメッセージ（例えば、図１に示されているメッセージＭ１又はＭ３）が、スイッチによって受信される。ステップ２０４では、メッセージにハッシュ関数が適用され、これによってメッセージが転送されるべき宛先についての優先順位リストが識別される。ステップ２０６では、優先順位リストの首位の（第１の）スイッチがメッセージを受信することができるか否かを決定する。当該決定は、既述されたように、首位のスイッチに対してのポーリング又は首位のスイッチと接続を確立しようと試行することによって決定される。首位のスイッチが利用可能であると決定された場合、プロセスはステップ２０８へと進むのであり、そこではメッセージが首位のスイッチへと転送される。プロセスは、ステップ２１０にて終了する。他方、首位のスイッチが利用不能であると決定された場合、プロセスはステップ２１２へと進む。
【００７３】
ステップ２１２では、優先順位リストの次順位スイッチ（第２のスイッチ）がメッセージを受信することができるか否かが決定される。再びここでも、当該決定は、次順位スイッチに対してのポーリング又は次順位スイッチと接続を確立しようと試行することによって決定される。次順位スイッチが利用可能であると決定された場合、プロセスはステップ２１４へと進むのであり、そこではメッセージが次順位スイッチへと転送される。そして、プロセスはステップ２１０で終了する。他方、次順位スイッチが利用可能ではないと決定された場合、ステップ２１２は優先順位リストにおけるその次のスイッチについて反復される（したがって、例えば優先順位リストにおける第２スイッチが利用不能であると決定された場合、優先順位リストの第３スイッチが利用可能であるか否かが決定されることになる）。ステップ２１２は利用可能なスイッチが発見されるまで反復されるのであり、発見された際にはプロセスはステップ２１４へと進み、メッセージは利用可能なスイッチへと転送される。なお、図２Ａのプロセスを行うことによって利用可能なスイッチが必ず発見されることに留意されたい。なぜならば、図２Ａのプロセスを行うことができるスイッチであれば、そのスイッチは勿論メッセージを受信することができるからである。
【００７４】
図２Ｂは、優先順位リストに従って転送されたメッセージが到来したスイッチにて行われるプロセスを示すフローチャートである。
【００７５】
プロセスは、ステップ２１６で開始される。ステップ２１８では、メッセージがスイッチによって受信される。ステップ２２０では、メッセージが、トランザクションに関する初めてのメッセージ（即ち、メッセージＭ１）であるか否かが決定される。メッセージがメッセージＭ１である場合、プロセスはステップ２２２へと進むのであり、そこでは受信されたメッセージＭ１がメッセージＭ１の反復であるか否かを決定する。メッセージＭ１の反復は即ち特定のトランザクションについての送金元銀行からのメッセージＭ１の再送であり、送金元銀行がメッセージＭ１を以前送信したのにタイムアウト期間内にメッセージＭ４の戻しを受信できていない場合に生じ得る。
【００７６】
ステップ２２２の決定は、メッセージＭ１のトランザクション識別子を確認することによって行うことができる。メッセージＭ１が反復である場合には元のメッセージＭ１が既にスイッチサイトにて処理されていたかもしれないのであり、したがってトランザクション識別子（なお、トランザクション識別子は特定のトランザクションに関しての元のメッセージＭ１及び反復されたメッセージＭ１の両者について同じである）はスイッチサイトにて（例えば、トランザクション状態データの一部としてデータベース１１０Ａ，１１０Ｂ内にて）記録されていることになり得る。よって、新たに受信されたメッセージＭ１のトランザクション識別子がスイッチサイトにて記録されたトランザクション識別子と一致する場合には、メッセージＭ１が反復であることが分かる。代替的に又は追加的には、反復されたメッセージＭ１は、（例えば、そのメッセージヘッダ内にて）当該メッセージが反復されたメッセージであることを指示する反復情報を含むことができる（例えば、この反復情報を、送金元銀行のバンキングアプリ１２０Ａ，１２０ＢによってメッセージＭ１に追加することができる）。
【００７７】
メッセージＭ１が反復であると決定された場合、プロセスはステップ２２４へと進む。他方で、メッセージＭ１と関連付けられているトランザクションに関する以前のメッセージがスイッチサイトで処理されていなかった場合、メッセージＭ１は再送されたものではないと決定され、むしろそれは真性な意味で最初に送信されたメッセージであって特定のトランザクションと関連付けられたメッセージであることが分かる。この場合、プロセスはステップ２３０へと進み、そこではメッセージＭ１が普通に処理される。
【００７８】
反復メッセージＭ１に含まれる反復情報を用いることは、特に有利であることに留意されたい。例えば、次のシナリオを検討されたい：反復情報が使用されておらず、且つ、メッセージＭ３の受信後且つトランザクションサマリ記録ＴＳの作成後且つメッセージＭ４の送信前に、スイッチサイトが丸ごと非稼働状態に陥った場合。メッセージＭ４の欠如によって、送金元銀行はメッセージＭ１を再送信することになり、これは代替的なスイッチサイトへと再ルーティングされることになる。（トランザクションサマリ記録ＴＳが元のスイッチサイトのデータベース１１０Ａ，１１０Ｂ内に格納されているが故に）代替的スイッチサイトはトランザクション識別子についての記録を有しておらず、したがって、トランザクション識別子の一致に単に依拠してメッセージＭ１が反復であると決定することができない。よって、トランザクションが既に元のスイッチサイトにて（トランザクションサマリ記録ＴＳの作成によって）完了されていたにも関わらず、メッセージＭ１と関連付けられているトランザクションは、代替的スイッチサイトにて新規なトランザクションとして処理される。このため、トランザクションは誤って二重処理されることになる（即ち、決済の際には送金者の意図した額の２倍の額の金銭が移転されることになる）。他方で、反復情報が用いられれば、任意のスイッチサイトの任意のスイッチにおいても再送メッセージＭ１が反復であることが決定できるようになる（さもなくば、元のメッセージＭ１が処理されてトランザクション識別子が格納されたスイッチサイトでのみ決定が可能となる）。したがって、反復情報の使用によって、メッセージＭ１が新たなメッセージＭ１として誤って１回より多く処理される危険性を減少させるのであり、これによって同じトランザクションが誤って１回より多く処理される危険性を減少させる。
【００７９】
ステップ２２４では、反復メッセージＭ１と関連付けられたトランザクションについてのメッセージＭ４がスイッチサイトにて利用可能であるか否か（例えば、メッセージＭ４がスイッチサイトのデータベース１１０Ａ，１１０Ｂ内に格納されているのか）を決定する。メッセージＭ４が利用可能である場合、トランザクションについてのトランザクションサマリ記録ＴＳが作成されていたことが暗示されるのであり、また、スイッチサイトにてトランザクションが完了されていたことになる。この場合、プロセスはステップ２２６へと進み、ここではメッセージＭ４が送金元銀行へと再送される。これによって、当初送信されていたメッセージＭ４が送金元銀行によって受信されていなかったとしても（或いは少なくともタイムアウト期間の満了前までに受信されていなかったとしても）、トランザクションが成功裏に完了されたことを銀行に確認的に知らせることができる。そして、プロセスはステップ２３２にて終了する。
【００８０】
他方で、メッセージＭ４が利用可能でない場合、トランザクションが成功裏に完了されたか否かについて不確定性があることが暗示される。これが起こる場合としては、例えば次の場合があり得る：トランザクションが当初処理された（且つ、トランザクションが成功裏に完了されていたならばメッセージＭ４が生成されていたことになっていた）スイッチサイトのスイッチ両方が（技術的な故障等によって）利用不能となった場合。この場合、トランザクションの状態は未知であり、メッセージＭ４を取得することは可能でない。したがって、プロセスはステップ２３２にて終了する。したがって、決済サイクル終了時において手動でトランザクションを調査する必要がある（後述参照）。
【００８１】
メッセージがメッセージＭ１ではないことがステップ２２０にて決定された場合、そのメッセージは、トランザクションの資金を受け取る側の銀行から受信されたメッセージＭ３であるはずである。この事例では、図２Ｂのプロセスを行っているスイッチがトランザクションについてのトランザクション状態データにアクセスできる場合のみにおいて、トランザクションを完了することができる（即ち、メッセージＭ１が処理され且つトランザクション状態データが格納されているデータベース１１０Ａ，１１０Ｂへのアクセスを有しているサイトと同じサイト、にスイッチが存在していることを要する）。スイッチがトランザクション状態データへのアクセスを有している場合、プロセスはステップ２３０へと進み、そこではメッセージＭ３が普通に処理される。これによって、トランザクションは完了されることができる（結果としてメッセージＭ４が生成される）。そして、プロセスはステップ２３２にて終了する。他方で、スイッチがトランザクション状態データへのアクセスを有していない場合、トランザクションを完了することはできない（メッセージＭ４の発行前にトランザクション状態データベースが格納されているサイトのスイッチが全て非稼働状態に陥った場合にこれが起こり得る）。したがって、プロセスは単にステップ２３２にて終了することになる（メッセージＭ４は生成されない）。
【００８２】
したがって、トランザクションが成功裏に実行されたことを確認するメッセージＭ４が送金元銀行にて受信されない場合、トランザクションを指示する当初のメッセージＭ１を送金元銀行が再送し得る。（未だ稼働中のスイッチサイトにて成功裏に処理されたトランザクションを表す）メッセージＭ４が利用可能であるが、単に失われたか遅延している場合、反復メッセージＭ１に応答してメッセージＭ４を送金元銀行へと再送信する。もっとも、メッセージＭ４が利用可能でない場合、次のどちらかに該当する：トランザクションが成功裏に処理されなかったか（即ち、メッセージＭ４がそもそも生成されていないことを意味する）、又は、メッセージＭ４の生成の後にトランザクションが処理されたスイッチサイトの全てのスイッチが非稼働状態に陥ったことになる（即ち、メッセージＭ４の再送が不能であることを意味する）。この場合、再送信されたメッセージＭ１に関して更なる処理は行われない。これによって、システム１００がトランザクションを二重に処理しないようにする（これによって、送金元銀行口座にて金銭が二重に引き落とされる局面を回避しやすくする）。この場合では、（メッセージＭ１の再送信にもかかわらず）メッセージＭ４は依然として送金元銀行によって受信されないのであり、銀行のバンキングアプリ１０２Ａ，１０２Ｂはユーザに対してトランザクションが成功していないかもしれないと報告することができる。決済サイクルの終わりにおいて、送金元銀行の内部記録と受取側銀行の内部記録とシステム１００によって生成されたトランザクションサマリ記録ＴＳとを分析して、トランザクションの帰趨を決定して、全てのトランザクション資金の勘定がなされていることを保証することができる。
【００８３】
上述の実施形態では、メッセージＭ４を受信することについての送金元銀行のタイムアウト期間は、メッセージＭ４が到着するのに合理的に要する期間として当業者によって決定されるのであり、システム１００内の各コンポーネントの処理時間の期待値及び該当する場合にはネットワーク遅延等を加味する。図２Ａを参照するとステップは優先順位リストによって決定された適切なスイッチへとトランザクションメッセージを「転送」することを含んでいるが、ステップ２０２でメッセージを受信するスイッチが実際には（優先順位リストによると）メッセージを処理すべきスイッチである場合、トランザクションメッセージは実際には異なるスイッチへと転送されないこととなることが理解される。むしろ、メッセージは受信を行ったスイッチそのものによって処理される。
【００８４】
上述の特徴によって、システム１００の１以上のコンポーネントが非稼働状態に陥ったとしてもトランザクション処理が確実且つ効率的に続行されることが保証される。更なる検査として、決済サイクルの終わりにおいて且つトランザクションサマリ記録ＴＳを用いての決済処理をバックオフィスユニット１１４が行う前に、トランザクションサマリ記録ＴＳによって決定された｛各銀行へ向かっての及び／又は各銀行からの｝トランザクション合計額（即ち、移転されるべき金銭の合計額）を、スイッチによって保持されている対応するトランザクション金額についての記録との対比で検査する（例えば、各トランザクションのメッセージＭ１を処理するスイッチが、トランザクション額並びに送金元及び受取側銀行についての記録を維持する）。メッセージの処理及びトランザクションサマリ記録ＴＳの作成が正しく行われているのならば、トランザクションサマリ記録ＴＳによって記録された｛各銀行へ向かっての及び／又は各銀行からの｝トランザクション合計額は、スイッチ記録と完全に一致するはずである。この場合、決済処理を確実に行うことができることが分かる。他方で、トランザクション合計額に関して食い違いがある場合、トランザクションサマリ記録ＴＳの生成において問題が発生したことが分かる。したがって、このことを調査して、決済処理の前に修正しておくことができる。
【００８５】
したがって、上述の特徴を前提とすれば、システム１００によって次の事項をより確実にすることができるということが理解されるであろう：決済サイクルの終わりにおいて処理される前に、銀行によって指示された電子トランザクションが削除されたり、破損したり、重複処理されたりしないようにすること。これによって、指示された各々のトランザクションが決済サイクルの終わりにおいて確実に勘定され且つ１回だけ集計されるようにすることを確実にすることができる。上記のことは、システム１００のコンポーネントが故障しても、又は、システム１００の任意のコンポーネントに関してコンポーネントの一時的シャットダウンを要するような保守作業が計画されていても、成立する。また同時に、システム１００が少なくとも１つの稼働中のスイッチを有している限り、銀行口座保有者は新たなトランザクションの指示を出し続けることができ、平常通りのサービスを享受し得る。
【００８６】
債務管理
上述したシステムにおいては、銀行間での差金決済は周期的に行われる。換言すれば、周期的に銀行間で現金が移転される。すなわち、トランザクションサマリ記録ＴＳは、決済時において支払うことの約束である。この実施形態での決済は、イングランド銀行（ＢＯＥ）等の共通預金を保持する銀行によって実現されるシステムを介して、本システム１００とは別個に行われる。このような決済システムは当業者に既知である。したがって、決済のために保持される預金に応じてデビット上限が設けられている。銀行は、自己のデビット上限を絶対超過してはならない。
【００８７】
複数のサイトに渡って分散された、実施形態における頑健なシステムでデビット上限を実現するには、問題がある。これは図３Ａにて説明する。
【００８８】
図３Ａに示した例では、銀行Ａが−１０，０００ＧＢＰのデビット上限６０２を有しているものと仮定する。システム１００はスイッチサイト１（６０３、単に「サイト１」ともいう）とスイッチサイト２（６０４、単に「サイト２」ともいう）とに分けて分割されているため、頑健性を確実にするためには、デビット上限６０２をサイト１とサイト２との間で均等に分かつ。各ケースでは、各サイトのスイッチがそのサイトについてのデビット上限を記録する。したがって、この場合においては、銀行Ａと関連付けられたサイト１のデビット上限は−５，０００ＧＢＰであり、銀行Ａと関連付けられたサイト２で格納されたデビット上限も−５，０００ＧＢＰである。勿論他の分割態様も適切たり得、例えば４つのサイトに渡って分散されている場合においては−２，５００ＧＢＰ等とし得る。
【００８９】
デビットトランザクションたるトランザクション１がサイト１で処理されたと仮定する。トランザクション１は、−２，５００ＧＢＰのデビットトランザクションである。ここで、決済リスクポジション（ＳＲＰ、Settlement Risk Position）とは各サイトについて今まで発生したトランザクションの合計を意味する術語であり、即ちサイト１に関してのＳＲＰは−２，５００ＧＢＰである。したがって、サイト１上での、将来のトランザクションに利用し得るデビット上限の残部（単に「利用可能デビット枠」ともいう）は、−２，５００ＧＢＰである。サイト２では何らのトランザクションも行われないため、サイト２のＳＲＰは０であり、サイト２における銀行Ａの利用可能デビット枠は未だ−５，０００ＧＢＰである。したがって、合計利用可能デビット枠は−７，５００ＧＢＰであり、合計ＳＲＰは−２，５００ＧＢＰである（６０５）。
【００９０】
次に、第２のデビットトランザクションたるトランザクション２がサイト２で処理され、トランザクション２は−３００ＧＢＰであると仮定する。したがって、サイト２についての利用可能デビット枠は−４，７００ＧＢＰであり、サイト２上でのＳＲＰは−３００ＧＢＰである。サイト１のＳＲＰは−２，５００ＧＢＰに留まり、サイト１の利用可能デビット枠は−２，５００ＧＢＰに留まっている。銀行Ａについての合計ＳＲＰ（即ち、サイト１のＳＲＰとサイト２のＳＲＰの和）は−２，８００ＧＢＰであり、また、銀行Ａの利用可能デビット枠（即ち、サイト１及びサイト２の利用可能デビット枠の和）は−７，２００ＧＢＰである。図３Ａにおいては利用可能デビット枠の計算は不図示であることに留意されたい。
【００９１】
次に、サイト１で第３のデビットトランザクションたるトランザクション３が試みられたと仮定する。トランザクション３は−２，６００ＧＢＰのデビットである。すなわち、（仮にトランザクションが処理された場合に）サイト１のＳＲＰが−５，１００ＧＢＰに達し、したがってサイト１との関連で銀行Ａに対して割り当てられた−５，０００ＧＢＰのデビット上限を超過することになる。よって、トランザクション３は却下される。
【００９２】
もっとも、トランザクション３到来前においては、銀行Ａの合計ＳＲＰはたったの−２，８００ＧＢＰであったのであり、それ故に銀行Ａの合計利用可能デビット枠は−７，２００ＧＢＰであり、トランザクション３は処理されるべきといえる。すなわち、技術的な故障に対して追加的な頑健性付与措置を講じたがために、何もなければ許容されたはずのトランザクションが妨げられることになる。当該問題点に対応することを目指す実施形態について以下説明する。
【００９３】
図３Ｂは、本願開示の実施形態による例を示す。例では、デビット上限６５１は−１０，０００ＧＢＰのままである。図３Ａに示した例と似て、図３Ｂの例ではデビット上限６５１は２つのサイト間で等しく分割される。換言すれば、サイト１は−５，０００ＧＢＰのデビット上限を有しており、サイト２は−５，０００ＧＢＰのデビット上限を有している。
【００９４】
図３Ａと類似の例において、トランザクション１はサイト１に到来し、これは−２，５００ＧＢＰのデビットである。したがって、サイト１との関連での銀行ＡのＳＲＰは−２，５００ＧＢＰであり、サイト２との関連での銀行ＡのＳＲＰは０であり、両サイトを通算しての銀行Ａの合計ＳＲＰは−２，５００ＧＢＰである。さらに、サイト１の利用可能デビット枠は−２，５００ＧＢＰへと縮減し、サイト２の利用可能デビット枠は−５，０００ＧＢＰのままである。したがって、合計利用可能デビット枠は−７，５００ＧＢＰである。図３Ｂにおいては利用可能デビット枠の計算は不図示であることに留意されたい。
【００９５】
そして、トランザクション２はサイト２に到来し、これは−３００ＧＢＰのデビットである。したがって、サイト１との関連での銀行ＡのＳＲＰは−２，５００ＧＢＰのままであり、サイト２との関連での銀行ＡのＳＲＰは−３００ＧＢＰであり、それ故に合計ＳＲＰは−２，８００ＧＢＰである。さらに、サイト２の利用可能デビット枠は−４，７００ＧＢＰに縮減し、また、サイト１の利用可能デビット枠は−２，５００ＧＢＰのままである。したがって、銀行Ａの合計利用可能デビット枠は−７，２００ＧＢＰである。
【００９６】
図３Ａを参照して説明されたように、トランザクション３（２，６００ＧＢＰのデビット）がスイッチサイト１に到来すると、サイト１のＳＲＰがサイト１に割り当てられた５，０００ＧＢＰのデビット上限を超過することとなる故に、トランザクションは却下される。この問題を回避するために、システム内にて調整サイクルを周期的に行う。具体的には、調整サイクル６５６は、サイト１及び２のスイッチによって周期的に行われる。調整サイクルは、各サイトのＳＲＰの現在の大きさを合算することによって調整値を計算することを含む。すなわち、ＳＲＰ１の現在の大きさたる−２，５００ＧＢＰと、ＳＲＰ２の現在の大きさたる−３００ＧＢＰとを合算して−２，８００ＧＢＰを得る。そして、この和をサイト数で平均化する。この場合、２つのサイトに渡ってならされた平均値（mean average）は、−２，８００／２＝−１，４００ＧＢＰである。勿論のこと、中央値（median average）等の他の種類の値を用いることもできる。システム内の全サイト（この場合はサイト１及び２）に渡っての平均ＳＲＰを決定することの意義は、全スイッチサイト間での銀行債務を実効的にバランシングすることにある。すなわち、１つのスイッチサイトが、他のスイッチサイトに比して相当に高額なトランザクションを受けた場合、（全スイッチに渡っての銀行のデビット上限が超過されていない限り）システム１００のデビット上限が超過されない。
【００９７】
特定のスイッチサイトに適用されるべき調整値を算出するためには、以下の数式を用いる：
【数１】
0006483277.tif 000003
【００９８】
ここで、「adjustment_site」は特定のスイッチサイトに適用されるべき調整値であり、「averaged_SRP」はシステム内のスイッチサイト間でのＳＲＰの平均値であり、「SRP」は特定のスイッチサイトにおけるＳＲＰである。
【００９９】
この数式を用いることによって、サイト１における調整値＝−２８００／２−（−２５００）＝＋１１００であり、サイト２における調整値＝−２８００／２−（−３００）＝−１１００であることが分かる。
【０１００】
したがって、特定のサイトのＳＲＰを調整値によって調整する。この調整値は、銀行の合計ＳＲＰに影響を与えない（したがって、銀行が全体的デビット上限を超過することが許容されることはない）。むしろ、調整済みＳＲＰ値は、銀行の債務を全スイッチサイトに渡って分散させるために用いられる。
【０１０１】
より正式には、調整済みＳＲＰ＝ＳＲＰ値＋adjustment_siteである。
【０１０２】
したがって、図３Ｂの場合、調整サイクルが実行された後においては、サイト１の調整済みＳＲＰ＝−２５００＋１１００＝−１，４００ＧＢＰであり、サイト２の調整済みＳＲＰ＝−３００＋−１１００＝−１，４００ＧＢＰである。換言すれば、各サイトにおける実効ＳＲＰは等しい。
【０１０３】
調整済みＳＲＰと新規トランザクションとの和がサイトのデビット上限を超過しない場合、新規トランザクションは承認される。しかし、調整済みＳＲＰと新規トランザクションとの和がサイトのデビット上限を超過する場合、新規トランザクションは却下される。
【０１０４】
次に、図３Ｂを参照するに、サイト１の調整済みＳＲＰ（−１，４００ＧＢＰ）と、トランザクション３たる新規トランザクションの額（−２，６００ＧＢＰ）とを用いると、合計は−４０００ＧＢＰとなる。これはサイト１のデビット上限−５，０００ＧＢＰを超過しない故に、システム１００によって許容される。したがって、このようにして、各サイトの調整値を用いることによって、有効なトランザクション額（即ち、合計デビット上限によって許容されるトランザクション額）が個々のスイッチサイトの利用可能デビット枠に基づいて却下されてしまう場合を減らす。
【０１０５】
実施形態では、（新たな調整値を計算するための）調整サイクルは周期的に訪れる。周期は、例えば２０秒若しくは３０秒毎等の周期であることができ、又は、サイトが所定のトランザクション件数を扱うたびに訪れるか、または、サイトのＳＲＰが所定額を超過した際に訪れることができる。
【０１０６】
サイトが故障した際には、残存するサイト各々のデビット上限を増額させてデビット上限の全額が利用可能となるようにすることができる。したがって、例えばサイト２が故障したのならば、デビット上限の全額−１０，０００ＧＢＰをサイト１に割り当てることができるのであり、これによってデビット上限の全額に達するまでトランザクション処理を続行することができる。
【０１０７】
各サイトの実際のＳＲＰ値は重要である（この例では、図３Ｂの全てのトランザクションが行われた後においては、サイト１が−５１００であり、サイト２が−３００である）。なぜならば、トランザクションがサイトでなされた後に関していえば、サイトのＳＲＰは、（ＳＲＰが正であれば）銀行に払うべき金額に、又は（ＳＲＰが負であれば）銀行が払うべき金額に、等しいからである。決済が正しく行われたことを保証するために、各サイトの実際のＳＲＰ値は、不変のままである必要がある。したがって、合計デビット上限が超過されないことを保証するために用いられるのが調整済みＳＲＰ値であるものの、任意の時刻における各サイトの実際のＳＲＰ値はそれぞれのサイトに未だ格納されたままである。各サイトのＳＲＰを可能な限り正確に維持するために、送金元銀行に関してはメッセージＭ１の成功裏な処理後にＳＲＰの更新を行い、受取側銀行に関してはメッセージＭ３の成功裏な処理後にＳＲＰの更新を行うことに留意されたい。
【０１０８】
ゲートウェイ用途
既述のように、各銀行のゲートウェイ１０４Ａ，１０４Ｂは、該銀行とスイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４との間でのメッセージ転送の制御を支援する。各ゲートウェイ１０４，１０４Ｂは、自己の銀行及びスイッチの代わりに幾つかの機能を行い、これによって銀行及びスイッチにおける処理負荷を減らす。ゲートウェイアプリケーションを全体のシステム内で使用することは任意である、ということにここで留意されたい。もっとも、任意にゲートウェイが用いられない場合、バンキングアプリケーション１０２Ａ，１０２Ｂは次の事項を同じような機能性をもたらしつつ行える必要がある：構造に関する検証（後述参照、特に図４のステップ９０６）；メッセージに関する署名、送信及び検証（後述参照、特に図４のステップ９１０，９１２，９１４）；メッセージに関するルーティング；並びにメッセージＭ１反復情報の付加（該当する場合、上述参照）。
【０１０９】
ゲートウェイの１つの機能は、（銀行における口座保有者の指示に基づいて）銀行がシステム１００にトランザクションを処理させたい場面に関する。一般に、各銀行は、口座管理及び自行の口座保有者によるトランザクション指示等を許容することに関して、異なるプロプライエタリなシステムを用いる。もっとも、効率性の観点から、スイッチによって処理されるトランザクションメッセージは、特定の標準的構造（或いは、既述のＩＳＯ２００２２標準等のフォーマット）に準拠していることを要する。したがって、銀行の口座保有者によって生成された任意のトランザクションメッセージは、スイッチによって受け付けられるためには、標準タイプトランザクションメッセージの形式に準拠していることを要する。さらに、セキュリティ上の理由から、銀行とスイッチとの間で送信された任意のトランザクションメッセージはデジタル的に署名されていることを要するのであり、また、（デジタル署名を用いて）検証されることを要するのであり、これによってメッセージの出所が真正であり正当なものであることを保証し得る。
【０１１０】
トランザクションメッセージの構造の検査は、ゲートウェイによって行われる。さらに、銀行からスイッチへと送信されるべきメッセージ（これらのメッセージは受信側スイッチによって後に検証される）に対しての署名付与、及び、スイッチから銀行へと送信されるメッセージ（これらのメッセージは送信側スイッチによって以前署名されている）の検証は、ゲートウェイを用いて実現される。すなわち、銀行のゲートウェイが銀行のプロプライエタリなシステムとスイッチとの間のトランスミッションインターフェースを提供するのであり、これによってトランザクションメッセージがデジタル的に署名され及び検証され並びに要求される標準的構造に準拠することを保証する。トランザクションメッセージの構造並びにデジタルな署名及び検証に関しては、任意の適切な標準を使用することができる。このような標準は、当業者にとって既知である。デジタルな署名及び検証に関する例では、メッセージデータについてハッシングを行い（ＳＨＡ１によってハッシュする）、そして送信に際してこれを暗号化する（ＲＳＡ暗号を使用）。実施形態では、ゲートウェイ１０４Ａ，１０４Ｂによって処理されるべきトランザクションメッセージはそれぞれメッセージキュー１０６Ａ，１０６Ｂにてキューイングされる。ゲートウェイ１０４Ａ及び１０４Ｂが設けられていない場合、バンキングアプリケーション１０２Ａ及び１０２Ｂがこの機能を提供する必要がある。
【０１１１】
ゲートウェイは、各メッセージのヘッダにルーティング情報を付加することによってもメッセージをスイッチサイトへとルーティングしており、この情報はメッセージキュー１０６Ａ，１０６Ｂ，１０８Ａ，１０８Ｂによって読み取られてメッセージが適切なスイッチサイトへと仕向けられる。例えば、図１の例では、メッセージキュー１０８ＡはＭＱ１と表示され、メッセージキュー１０８ＢはＭＱ２と表示されることができる。したがって、ゲートウェイによって、スイッチサイトへと送信されるべきメッセージの各々のヘッダにＭＱ１又はＭＱ２の表示が追加されて、これによりメッセージキュー１０６Ａ，１０６Ｂがメッセージを適切なスイッチへと仕向けることができる。また、１つの銀行が複数の銀行側メッセージキューユニット１０６Ａ，１０６Ｂを有していることもでき（例えば、銀行１は複数の銀行側メッセージキューユニット１０６Ａ１，１０６Ａ２，．．．，１０６Ａｎ（不図示）を有していることができる）、また、ゲートウェイによって追加されるルーティング情報はメッセージがどの銀行側メッセージキューユニットへと仕向けられるべきかを特定する情報を含むことができる。有利なことに、この構成によりシステム１００の負荷分散が支援される。
【０１１２】
例示的な実施形態として、メッセージが銀行１からスイッチへと送信された場合の、銀行１のゲートウェイ１０４Ａの動作とスイッチの動作とを図４のプロセスを参照して説明する。プロセスはステップ９００にて開始される。ステップ９０２では、ゲートウェイ１０４Ａが銀行１のバンキングアプリ１０２Ａからのトランザクションメッセージを受信するのであり、このメッセージは処理のためにいずれかのスイッチへと送信されるべきものである。ステップ９０４では、ゲートウェイ１０４Ａがトランザクションメッセージの構造を分析する。特に、ゲートウェイ１０４Ａは、メッセージがスイッチによる処理を受けるために必要とされる標準的構造を有しているかを確認して確実にする。これには、全ての必要な情報がメッセージ内に含まれていることを保証することも含まれる。例えば、メッセージが銀行１の口座から銀行２の口座への資金の払い込みを指示している場合、支払額及び通貨種類と、銀行１の銀行ソートコード及び口座詳細事項と、銀行２の銀行ソートコード及び口座詳細事項とが全てメッセージ内に存在していることを保証するのであり、且つ、これらが正しいフォーマットに準拠していることを保証する（なぜならば、トランザクションを完了するためにはこれらの情報が必要だからである）。またこのステップには、メッセージが一意的なトランザクション識別子を有しているか否か及びメッセージが適切なルーティング情報を有しているか否かについて検査することも含まれている。
【０１１３】
ステップ９０６では、メッセージ構造が標準に準拠するものと決定されると、プロセスはステップ９１０へと進む。他方、メッセージ構造が標準に準拠していないと決定されると（例えば何らかの必須情報がメッセージから欠落している場合）、プロセスはステップ９０８へと進む。ステップ９０８では、メッセージがエラーメッセージを伴って銀行１へと返送される。エラーメッセージは銀行１に対して次の事項を通知する：トランザクションメッセージがメッセージ標準に準拠していなかったこと、及び、（例えば欠落していた情報を追記することによって）当該エラーを訂正してトランザクションメッセージを再送することを要すること。プロセスは、ステップ９２２で終了する。
【０１１４】
ステップ９１０では、トランザクションメッセージが銀行１のデジタル署名で署名される。デジタル署名により、受信側スイッチはメッセージの真正性（即ち、メッセージが銀行１から発信されたこと）を保証できるようになる。そして、ステップ９１２では、トランザクション要求が、銀行１と（ルーティング情報で決定される）適切なスイッチサイトとの間のデータ通信チャンネル上で送信される。ゲートウェイは、銀行１のサイトにある記憶媒体上に格納されたソフトウェアを実行している回路によって実装されていることに留意されたい。有利なことに、この構成によれば、トランザクションメッセージに関しての検査及び送信がゲートウェイの回路によって完全に取り扱われることができるのであり、これによって銀行１のプロプライエタリなシステム及びスイッチサイトの処理負荷が削減される。なぜならば、正しい情報を含まないメッセージはスイッチサイトへと転送されないからである。また、システム内にゲートウェイが設けられていない場合、銀行アプリケーションがデジタル署名されたメッセージを提供し、これらには全ての関連性のある情報が含まれており、これらは適切なフォーマットで提供されている、ということが想定されている。
【０１１５】
スイッチサイトのスイッチによってメッセージが受信されると、デジタル署名を用いてそれについての検証を行う。これがステップ９１４でなされる。既述のように、デジタル署名するステップ及び検証するステップ（それぞれステップ９１０及び９１４）によって、スイッチで受信された任意のメッセージがシステム１００を使用するために加入している銀行のうちの１行から本当に到来したものであることの保証が支援される。署名の検証は、メッセージを最初に受信したスイッチ又は（該当する場合は）メッセージが転送された先のスイッチで、なされることができる。
【０１１６】
ステップ９１６では、デジタル署名の検証が成功した場合にはプロセスはステップ９２０へと進むのであり、そこではトランザクションメッセージが適切なスイッチによって（既述のように）処理される。そして、プロセスはステップ９２２で終了する。他方で、デジタル署名の検証が成功しなかった場合、トランザクションにエラー等が関連付けられていることが暗示される。したがって、プロセスはステップ９１８へと進み、そこではトランザクションメッセージが送金元銀行へと返送される。この場合、検証プロセス内でエラーが生じたことを示す情報が検証を行ったスイッチによって生成され、これがトランザクションメッセージと共に（或いはその一部として）返送される。有利なことに、これによって送金元銀行に対してトランザクションメッセージに問題があったことを通知できるのであり、したがって送金元銀行がこのことを調査することができる。そして、プロセスはステップ９２２で終了する。有利なことに、着信する全てのトランザクションメッセージについて行われるデジタル署名検証によって、（例えば、トランザクションを指示しようとしている無権限の主体から発せられた）偽造された又は不正なメッセージが処理される事態の防止に役立つこととなる。
【０１１７】
したがって、ゲートウェイの使用によって、処理のためにスイッチで受信されたトランザクションメッセージの全てが正しい標準的構造を有していることを保証しやすくなる。したがって、スイッチは、（異なる銀行で生成される複数の異なるメッセージ構造ではなく、）この１つの標準的構造のみを扱えれば済むのであり、これ故にシステム１００の効率性が向上する。さらに、正しいメッセージ構造に準拠している場合のみにメッセージがネットワークを介して銀行からシステム１００へと送信されるため、正しいメッセージ構造を有していないメッセージ（即ち、却下されるであろうメッセージ）をスイッチへ送信するということによってネットワーク帯域幅が浪費されない。更なる利点としては、デジタル署名に関しての署名行為及び検証行為をゲートウェイ及びスイッチにさせる実装によって、システムのセキュリティを向上させることに役立たせることができる。
【０１１８】
既述のように、実施形態では、各ゲートウェイ１０４Ａ，１０４Ｂは、関連する銀行の位置にある記憶媒体（不図示）上に格納されたソフトウェアを実行している回路によって実装されている。このソフトウェアは、各銀行の内部機能を実装する任意のソフトウェア（例えば、各銀行の口座管理用システム及び口座保有者によるトランザクション等の指示を可能にするためのバンキングアプリ等）及びスイッチサイトの内部機能を実装する任意のソフトウェア（例えば、スイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４やメッセージキュー１０８Ａ，１０８Ｂ等によって実装される任意のソフトウェア等）とは機能的に別個のものとされる。有利なことに、この構成によれば、ゲートウェイの機能の利点（向上した効率性及びセキュリティ、上述参照）を実現させつつ銀行又はスイッチサイトのコア処理負荷を増大させないことができる。
【０１１９】
ゲートウェイ１０４Ａ，１０４Ｂの第２の機能は、メッセージの送受信及びシステム１００のデータ負荷分散のために、どの銀行及びスイッチサイトを利用できるかを監視することに関する。
【０１２０】
メッセージが所定期間内に関連するメッセージキューユニット１０６Ａ，１０６Ｂ，１０８Ａ，１０８Ｂを介してスイッチサイトに送達されなかった場合、関連するメッセージキューユニットは、コレクトタイム（collect time）が満了したことを示す情報をメッセージヘッダに追加してメッセージをゲートウェイに戻す。先の場合は例えば次のどちらかの局面の結果生じ得る：スイッチサイトのメッセージキューユニット１０８Ａ，１０８Ｂが所定の期間内にメッセージを関連するメッセージキューユニット１０６Ａ，１０６Ｂから取得しなかった場合、又は、スイッチサイトのスイッチが所定の期間内にメッセージを関連するメッセージキューユニット１０８Ａ，１０８Ｂから取得しなかった場合。このことには幾つかの理由があり得るのであり、これらには次の事象が含まれる：スイッチサイトにおけるメッセージキューユニット１０８Ａ，１０８Ｂの故障；スイッチの故障；又はネットワークの故障。この場合、ゲートウェイはメッセージを代替サイトへと再送信する。したがって、スイッチサイト１のＳＷ１及びＳＷ２のいずれもが所定期間内にメッセージを拾わなかった場合、指示発令側銀行のゲートウェイは、返送されたメッセージを受信すると、メッセージをスイッチサイト２へと再ルーティングする。もっとも、この構成の問題点は次の点にある：例えば特定のスイッチサイトの両スイッチのダウンタイムが長引いている場合、メッセージの再ルーティングが行われるがこれは相当にプロセッサを酷使するのでありまたネットワーク帯域幅を浪費する。このようにいえるのはアクティブでないサイトへ継続的にメッセージが送信されているからであり、ただエラーメッセージが返ってくるだけである。
【０１２１】
同様に、１以上の銀行の内部システムが一時的にメッセージを受信できなくなり得る。例えば、図１の例では、銀行２の口座保有者に対して支払いを命じるトランザクションメッセージＭ１が銀行１の口座保有者によって発せられたという場面において、銀行１からの資金による決済を待つように銀行２に通知するメッセージＭ２を、銀行２が受信できないかもしれない。この場合、メッセージＭ２がバンキングアプリ１０２Ｂへと送信された後にメッセージＭ３が銀行２から受信されないのであり、したがってトランザクションは完了されない。ここでも、銀行２が長期にわたって利用不能である場合、メッセージＭ２を銀行２へと送り続けるこの方法は問題となる。なぜならば、この方法はプロセッサに対して相当に高負荷であり、ネットワーク帯域幅を浪費するからである。この理由は、アクティブでない銀行へとメッセージが継続的に送り続けられるという点に求められる。
【０１２２】
これらの問題を緩和するために、各銀行のゲートウェイ１０４Ａ，１０４Ｂは、他の銀行のうちどれが及びどのスイッチサイトが、メッセージ受信に関して利用可能であるかということを追跡するように構成されている。これが、利用可能性キャッシュ（availability cache）として定義される。
【０１２３】
ゲートウェイがスイッチサイトを監視することに関しては、テストメッセージをそのスイッチサイトのメッセージキューユニット１０８Ａ，１０８Ｂを介してネットワークを経由するようにスイッチサイトへと送信し、スイッチサイトから戻ってくるそのメッセージについてのエコーに関して待ち受ける。典型的には、ゲートウェイが特定のスイッチサイトから特定の期間にわたってメッセージを受信していない場合に、ゲートウェイはこのようなことを行う。エコー（より具体的にはリモートエコーという）はスイッチサイトに送られたテストメッセージのコピーであり、スイッチサイトからゲートウェイへと戻るように送信されるものである。エコーは、スイッチサイトのスイッチどれかによって生成され、テストメッセージ内に含まれる命令に準拠して生成されるものである。特定のスイッチサイトへテストメッセージを送ったことに応答して、ゲートウェイがそのメッセージについてのエコーを所定の期間内（例えば、メッセージＭ４の受信に関してのタイムアウト期間に等しい期間）に受信した場合、スイッチサイトがそのメッセージキューユニット１０８Ａ，１０８Ｂを介して未だにメッセージを受信できるということをゲートウェイが知ることになる。他方、エコーが受信されない場合、スイッチサイトが自己のメッセージキューユニット１０８Ａ，１０８Ｂを介してメッセージを受信できないものとゲートウェイが決定するのであり（故障が原因かもしれない）、したがって更なるメッセージがこのルートを介してスイッチサイトへと送信されないようにする。
【０１２４】
ゲートウェイがテストメッセージを上述の態様でスイッチサイトへと送信して所定の期間経過後に戻ってくるエコーが受信されなかった場合、スイッチサイトのメッセージキューユニット１０８Ａ，１０８Ｂを介したスイッチサイトとの通信が利用不能であるとゲートウェイは決定する。なぜならば、このルートが利用可能であったならばテストメッセージがいずれスイッチサイトのスイッチに到達していたはずであり、そのスイッチがエコーとしてゲートウェイに戻されるべきテストメッセージのコピーを生成していたはずだからである。エコーが受信されない場合、ゲートウェイはもはやメッセージをスイッチサイトへそのメッセージキューユニット１０８Ａ，１０８Ｂを介してルーティングしなくなる。換言すれば、スイッチサイトは利用不能と決定される。したがって、スイッチサイトのいずれかが利用不能であると決定されると、以後のメッセージ分配はゲートウェイによって制御される。
【０１２５】
また、メッセージＭ１が所定期間内にスイッチサイトのスイッチによって拾われなかった（上述参照）が故に、メッセージＭ１がスイッチサイトからゲートウェイへと返送された場合にも、スイッチサイトが利用不能であるとゲートウェイは決定する。この場合でも、ゲートウェイはもはやメッセージをスイッチサイトへそのメッセージキューユニット１０８Ａ，１０８Ｂを介してルーティングしなくなる。
【０１２６】
念のため付言しておくが、ゲートウェイによってスイッチサイトが利用不能であると決定された場合であっても、必ずしもそのスイッチサイトのスイッチが利用不能であるとは限らない。むしろ、このことは、そのスイッチサイトのメッセージキューユニット１０８Ａ，１０８Ｂを介してメッセージをそのスイッチサイトのスイッチへと送信することができないと暗示しているのである。例えば、単にネットワーク障害があるだけで、それによってスイッチサイトのメッセージキューユニット１０８Ａ，１０８Ｂを介してメッセージをその特定のスイッチサイトのスイッチへと送信することが妨げられているだけなのかもしれないのであり、スイッチサイトのスイッチの機能は完全であるかもしれない。この場合、他のスイッチサイト及びサイト間データ通信リンクを介してスイッチへとメッセージをルーティングしていくことがまだできるかもしれない（例えば、ハッシュ関数にしたがって行う）。
【０１２７】
（ゲートウェイでエコーが受信されていないこと又はメッセージＭ１がゲートウェイに返送されたことに起因して）スイッチサイトが利用不能と決定された場合、テストメッセージは周期的にそのメッセージキューユニット１０８Ａ，１０８Ｂを介してスイッチサイトへと送られてスイッチサイトが復帰したか否かを決定する。スイッチサイトが利用不能のままであると、エコーは受信されず、したがってスイッチサイトへメッセージは送られないままである。他方、（修理または保守作業の完了によって）スイッチサイトの利用可能性が回復された場合、次のテストメッセージがスイッチサイトへと送られると、戻りエコーが受信される。この場合、ゲートウェイはスイッチサイトが再び利用可能となったものと決定し、そのメッセージキューユニット１０８Ａ，１０８Ｂを介してメッセージが再びそのスイッチサイトへと送信されるようにする。また、そのスイッチサイトからトランザクションメッセージ（例えば、メッセージＭ２）が受信された場合、利用不能であると決定されたスイッチサイトが再び利用可能となったものとゲートウェイは決定する（このようにする理由は、もしスイッチサイトがまだ利用不能だったらばそのようなメッセージを受信することができなかったからである）。他行を監視することに関しては、銀行のゲートウェイは、スイッチにて生成された情報に依存しているか、及び／又は特定の銀行へのトランザクションに関してのメッセージＭ４の受領から推論される情報に依存している。
【０１２８】
より具体的には、スイッチの各々が、システム１００を用いる銀行のそれぞれに周期的にテストメッセージを送って、これらの銀行のそれぞれからのエコーを待ち構えることができる。
【０１２９】
特定のスイッチにおいて所定期間内に特定の銀行からのエコーが受信されなかった場合、この特定のスイッチからのメッセージを受信することに関してはこの銀行は利用不能であると決定される（スイッチと銀行との間のネットワーク接続に障害があるのかもしれない）。この場合、このスイッチから銀行へと送信されるべきメッセージＭ２は代替ルートを介して（例えば、スイッチサイトの別のスイッチを介して、又は代替スイッチサイトのいずれかのスイッチを介してサイト間データ接続を介して）再ルーティングされる。この場合、スイッチ自体は稼働中であり、ハッシュ関数に従ってメッセージを未だ受信することができ、またこれらのメッセージを処理することができる。唯一問題なのが実施にメッセージＭ２を問題の銀行へと実際に送信することであり、これはここで説明した再ルーティングによって克服される。このことがメッセージＭ４には妥当しないことに留意されたい。なぜならば、既述のように、メッセージＭ４は、（ハッシュ関数によって決定されたスイッチではなく、）当初メッセージＭ１が受信されたのと同じスイッチを介して、トランザクション要求を発している送金元銀行へと返送されることを要する。当初のスイッチと送金元銀行との間の接続が途切れている場合、このスイッチを介して送金元銀行へとメッセージＭ４を送信することができない。したがって、システムは、送金元銀行からのメッセージＭ１の再送信を待つ必要があり、当初のスイッチと送金元銀行との間の接続が途切れたままである場合には、再送信は、適切なメッセージキュー１０６Ａ，１０６Ｂ，１０８Ａ，１０８Ｂを介して、送金元銀行との接続を有している代替的受信側スイッチへとルーティングされる。この再送メッセージＭ１は（ハッシュ関数に従って）処理スイッチへと転送されるのであり、結果としてメッセージＭ４は再送され、また、このメッセージＭ４についての送信は代替的受信側スイッチを介して送金元銀行へと戻される。
【０１３０】
全てのスイッチが特定の銀行からのエコーを受信できない場合、銀行全体が利用不能である（即ち、どのスイッチからもメッセージを受信できない）と決定されるのであり、このことを示す情報が他行全てのゲートウェイに中継を経て戻される。
【０１３１】
また、例えば、銀行の内部システムについての計画された保守作業の場合、システム１００を使用する各行は、システム１００から切断することができる。この場合、銀行は意図的にスイッチから切断する（即ち、サインオフする）のであり、１以上のスイッチが、サインオフした銀行が利用不能となったことを示す情報を他行全てのゲートウェイに中継する。
【０１３２】
（テストメッセージに対してのエコーが全てのスイッチに関して欠けていること又はサインオフに起因して）銀行が利用不能である場合、利用不能な銀行への資金トランザクションを指示するメッセージＭ１を受信したスイッチは、メッセージＭ４を生成でき、このメッセージＭ４を送金元銀行へと返送することができる。このメッセージＭ４は、成功したトランザクションを表す通常のメッセージＭ４とは異なる。なぜならば、このメッセージは、受取側銀行が利用不能であり、及び、それ故にトランザクションが成功裏に処理されなかったことを送金元銀行へと通知するための情報を含んでいるからである（この場合、送金元銀行のデビットされた口座に対しては再クレジット処理をしておくことができる）。特に、このメッセージＭ４は、トランザクションが却下された理由を示すデータを含んでいる（例えば、エコーの欠落から分かる受取側銀行におけるネットワーク障害を表す理由コード又は受取側銀行がサインオフしたことを表す理由コード）。したがって、送金元銀行のゲートウェイはこのメッセージＭ４を用いて受取側銀行が現在利用不能であると決定することができる。既述のように、エコーが受信されないこと又は銀行がスイッチからサインオフすることによって、スイッチは利用不能な銀行を認知することができる。エコーに基づいて又は銀行サインオフ手順に基づいてある銀行が利用不能であるとスイッチによって決定したことは、他行のそれぞれに中継されるが、特定の銀行に関して失敗したトランザクション要求を表すためにメッセージＭ４を使うことによって、この利用不能状態を他行に周知する更なる手段が得られることになる（例えば、スイッチによるこの情報の標準的な中継行為に遅延がある場合には、このことは有利となり得る）。
【０１３３】
各銀行のゲートウェイは、スイッチによって中継された情報（この情報はエコーの使用及び／又は銀行サインオフ手順に基づいている）及び／又は特定の銀行が利用不能であることを示しているメッセージＭ４の受領に基づいて、他行の利用可能性について記録を維持する（例えば、銀行Ａ：利用可能、銀行Ｂ：利用可能、銀行Ｃ：利用不能）。この記録が、各銀行にて保有されている利用可能性キャッシュの一部をなす（利用可能性キャッシュは、どのスイッチサイトが利用可能であるかに関する情報も含んでいる）。この記録があるが故に、利用不能な銀行へメッセージを送ろうとする試みによって生じる帯域幅の浪費が削減される。例えば、利用不能であると決定されている銀行（例えば、この場合では銀行Ｃ）へ仕向けられている新規な資金トランザクションを銀行Ａの顧客が要求した場合、ゲートウェイはこの要求を却下するのであり、メッセージＭ１は一度も送られず、受取側銀行（銀行Ｃ）が現在利用不能であるとの通知を銀行Ａのバンキングアプリによって銀行口座保有者に対して通知する。したがって、システム１００を通して利用不能な銀行へとトランザクションメッセージを送ることによって浪費された帯域幅の量は削減される。
【０１３４】
（既述のように）エコーの使用によって銀行が利用不能であると決定された場合、その銀行が以後復帰したか否かを決定するために周期的にテストメッセージを利用不能な銀行へと送信することができる。銀行が依然として利用不能のままであればエコーは受信されないのであり、したがって引き続きメッセージは銀行に送信されないことになる。他方、（例えば、故障していたネットワーク接続の再確立等によって）銀行が復帰した場合、次のテストメッセージが送信されたらば戻りエコーが受信される。この場合、ゲートウェイが、銀行が再び利用可能となったことと決定するのであり、その銀行へメッセージが送信されることが再び許容されることとなる。
【０１３５】
スイッチからサインオフすることによって銀行が利用不能となった場合、その銀行が再接続（即ち、サインオン）するまではその銀行は利用不能のままとなる。銀行がスイッチにサインオンしてきた場合、１以上のスイッチが情報を全ての他行のゲートウェイへと中継し、その銀行が再び利用可能となったことを示す。
【０１３６】
一般には、テストメッセージをスイッチによって各銀行に周期的に送信することができるのであり、周期は、利用不能である銀行に送られるトランザクションメッセージの件数が最小化されるように十分に短い周期とするのであり、これによって帯域幅を節約できる。同時に、周期は短すぎても良くなく、テストメッセージが頻繁に送信されてネットワーク帯域幅を圧迫しすぎてしまいネットワークの効率性を減じてしまうほどに短期であってはならない（即ち、テストメッセージとエコーを用いて達成した当初の帯域幅節約を相殺するほど短期であってはならない）。例としては、特定の銀行に送られるテストメッセージの周期としては約５秒から３０秒を想定できる。勿論、当業者であれば必要に応じてこれを変化させることができる。
【０１３７】
実施形態では、ゲートウェイは、スイッチサイトが利用不能であると決定する前に複数のテストメッセージを送信する。同様に、各スイッチは、特定の銀行が利用不能であると決定する前に複数のテストメッセージを送信する。例えば、テストメッセージ間の送信周期が３０秒である構成においては、ゲートウェイ又はスイッチは第１のテストメッセージを送出してエコーを待ち受けることができる。３０秒後、エコーが受信されていなければ、ゲートウェイ又はスイッチは、第２のテストメッセージを送出して、エコーを待ち受けることができる。その３０秒後、未だにエコーが受信されていなければ、テストメッセージの送信先たるスイッチサイト（ゲートウェイがテストメッセージを送信している場合）又は銀行（スイッチがテストメッセージを送信している場合）が利用不能であると決定されるのであり、そのスイッチサイト又は銀行へのトランザクションメッセージの送信は中止される。スイッチサイト又は銀行が利用不能であると決定する前に複数のテストメッセージを送信することによって、例えばネットワーク遅延等がスイッチサイト又は銀行から戻ってくるエコーに作用している場合に誤って機能しているスイッチサイト又は銀行へのトランザクションメッセージの送信を停止させなくて済むことをより確実にすることができる。
【０１３８】
有利なことに、各銀行のゲートウェイによって維持されている利用可能性キャッシュの存在によって、利用不能と決定された銀行またはスイッチサイトへとトランザクションメッセージが送られないことになるのであり、それ故にメッセージを受け入れられないスイッチサイトや銀行へとメッセージを送信しようとするための試行回数が削減されることになる。この構成によれば、メッセージが破損したり失われたりする危険性を減少させる他、送達不能なメッセージのために処理帯域幅及びネットワーク帯域幅が浪費されないことになる。したがって、処理及びネットワークの効率性が向上する。
【０１３９】
また、多くの場合、トランザクション所要時間に関して銀行は所定の制限値を義務づけていることに留意されたい。すなわち、銀行においてみた、初期メッセージＭ１の送信とメッセージＭ４の受信との間の時間が所定期間内に収まる必要がある。任意の適切な制限時間を設定することができるが、通常は約５秒から約１５秒ほどに設定される。したがって、この制限時間内にトランザクションが完了されることを保証するために、可能な限り効率的にトランザクションメッセージがシステムのなかを通過していくように保証することが肝要である。有利なことに、各銀行にて利用可能性キャッシュが用いられるため、利用不能なスイッチサイトを経由してスイッチへとトランザクションメッセージを送信しようとする試みによって時間が浪費されない（利用不能なスイッチを関与させると、メッセージが結果として返送され、再ルーティングすることを要し、これ故に時間が浪費される）。同様に、（各銀行へ送信したテストメッセージと各銀行から受信したエコーに基づいて、）各スイッチは各銀行へのルートのうち利用可能なものについての記録を維持しているため、利用不能なルートを介して銀行へとトランザクションメッセージを送信しようとする試みによって時間は浪費されない。また、各スイッチが他のスイッチにポーリングしてその利用可能性を把握しているため、利用可能ではないスイッチへとトランザクションメッセージを送信しようとする試みによって時間が浪費されない。これらの特徴全てが、システム１００内におけるトランザクションメッセージの効率的な送信を保証すること、及び、銀行によって決定された制限時間内にトランザクションが完了されるように保証すること、に寄与している。
【０１４０】
更なる利点としては、スイッチサイト及び銀行の利用可能性を監視するために並びに命令を発するためにゲートウェイを用いることによって、この処理はバンキングアプリ１０２Ａ，１０２Ｂからオフローディングされることになる。したがって、銀行においての全体的な処理能率は、向上する。
【０１４１】
図５は、システム１００と共に使用するためのコンピュータ７００を示す。実施形態では、システム１００の各要素（即ち、バンキングアプリ１０２Ａ，１０２Ｂ、ゲートウェイ１０４Ａ，１０４Ｂ、メッセージキューユニット１０６Ａ，１０６Ｂ，１０８Ａ，１０８Ｂ，１１２Ａ，１１２Ｂ、スイッチＳＷ１，ＳＷ２，ＳＷ３，ＳＷ４、データベース１１０Ａ，１１０Ｂ及びバックオフィスユニット１１４）によって行われる機能は、このようなコンピュータ７００の１台以上をもって実装される。これらのコンピュータはサーバであることもできる（これらは物理サーバ又は仮想サーバであることができる）。コンピュータ７００は、中央演算装置（ＣＰＵ）７０２によって制御されるのであり、ＣＰＵ７０２はメモリ７０４内に保持された命令を処理するように構成されている。コンピュータ７００とのデータ通信は、ネットワークインターフェース７０６を介して行われる。コンピュータ７００は（ハードディスクドライブ、半導体メモリ又はテープドライブ等の）記憶媒体７０８をも有するのであり、これはデータを格納するためのものである。
【０１４２】
システム１００は金融トランザクションメッセージの処理との関連で説明されたが、システム１００は、各データユニットを必ず計上し、且つ、１回だけ計上する態様での更なる処理を行えるように管理されることを要する任意の種類のデータユニットの処理及び格納用途に用いることができることに留意されたい。この場合、どのようなデータユニットが用いられるにしても、システム１００は、データユニットの削除、破損又は重複が回避されるのを確実にするために役立つ。
【０１４３】
例えば、システム１００は、科学的又は工学的な実験にて生成されたデータを、データ分析に先立って処理及び保持するために用いることができる。この場合、各データユニットは、例えば個別の実験測定値であることができる。このようなデータユニットは、多くの場合入手が極度に困難であるか高価な出費を伴うものであり、したがって、該データの削除又は破損を回避することが肝要である。さらに、後行する分析のためには、データが重複していないことが肝要であり、さもなくば分析から導出される結論が誤ったものとなってしまう場合がある。したがって、このような種類のデータを管理するに際しては、システム１００を用いることが有益となる。
【０１４４】
上記の記載は銀行との関連で説明されているが、本願開示はクレジットカード会社等の資金のトランザクションを行う任意の金融機関にも関連するものである。
【０１４５】
上述したシステム１００の具体的な利点を挙げるとすれば、システムのコンポーネントの配置がシステムを頑健（即ち、システムの特定のコンポーネントが仮に機能不全に陥ったとしてもシステムが確実にトランザクションを処理し続けることができるという状態）にするために選ばれている一方で、一旦トランザクションメッセージが（ハッシュ関数による決定に従って）スイッチによって受信されると、当該メッセージはバックオフィスユニット１１４へと転送される以前においては単一のサイトにて保持及び処理されるため、システムの（異サイトの異コンポーネント間でのトランザクションメッセージの転送に起因する）レイテンシが減少することになる、という利点が挙げられる。したがって、システム頑健性が向上すれどもシステムのレイテンシは低いままとなる。
【０１４６】
図１は（説明の便宜上）２つの銀行と２つのスイッチサイトと各スイッチサイトについて２つのスイッチを図示しているが、本発明の実施形態はこれに限定はされないことに留意されたい。現実世界においては、システム１００を使用するように構成された多数の銀行が存在し得るのであり、各々が図１の銀行１及び銀行２の構成を有していることができる（即ち、バンキングアプリとゲートウェイとメッセージキューユニットとを有する構成）。また、スイッチサイト１及び２と同様に構成された３個目以上のスイッチサイトも設けられていることができる（各スイッチサイトは他のスイッチサイト及び各銀行とデータ通信可能とされている）。さらに、各スイッチサイトは、２つより多くのスイッチを含むことができ、それぞれは同じデータベース内にトランザクションメッセージを格納するように構成されており、これによって同じトランザクションに関連付けられているメッセージを特定サイトの任意のスイッチにて処理することが可能となる。当業者であれば、どのようにして図１のシステム１００を拡張してより多くの銀行、スイッチサイト及び／又はスイッチを含めることができるかを理解するであろう。
【０１４７】
上述はトランザクション要求との関係で述べたが、開示はこれに限定されてはおらず、任意の種類の電子メッセージが想定される。さらに、上述は、ゲートウェイ１０４Ａへと送信する前にトランザクション要求をメッセージキュー１０６Ａ内にて一時的に保持する構成との関係で述べたが、開示はこれに限定されてはいない。例えば、バンキングアプリケーション１０２Ａは、トランザクション要求をメッセージキュー１０６Ａ内に保持させずにゲートウェイ１０４Ａと直接的に通信することができる。この構成は、ゲートウェイ１０４Ａがトランザクション要求を扱えるようになるまでトランザクション要求を保持するバッファをゲートウェイ１０４Ａ内に設けることによって達成し得る。
【０１４８】
本願開示に関しては、上記教示事項を前提とすれば、様々な変更及び変形例を想定できることは明らかである。したがって、本願にて具体的に記述したものとは異なる態様で本願開示内容を実践することができるのであり、これも添付の特許請求の範囲内に含まれるものと解されるべきである。
【０１４９】
ソフトウェア制御されたデータ処理装置によって少なくとも部分的に実装されるものとの関係で本願開示の実施形態が説明されている限りにおいては、そのようなソフトウェアを化体している光学ディスク、磁気ディスク、半導体メモリ等の非一時的マシン可読媒体も本願開示の実施形態を表すことに留意されたい。
【０１５０】
上述の記載においては、簡潔性のために、異なる実施形態に関して異なる機能的ユニット、回路、及び／又はプロセッサを参照しつつ説明したことに留意されたい。もっとも、異なる機能的ユニット、回路、及び／又はプロセッサの相互間に関しては、実施形態に悪影響を与えずに任意の適切な役割分担を採用できることは明らかである。
【０１５１】
説明した実施形態は、任意の適切な態様で実施されることができるのであり、これにはハードウェア、ソフトウェア、ファームウェア又はこれらの任意の組合せが含まれる。説明した実施形態は、任意的には、１以上のデータプロセッサ及び／又はデジタル信号プロセッサ上で実行されるコンピュータソフトウェアとして少なくとも部分的に実装され得る。任意の実施形態の要素及びコンポーネントは、任意の態様にて、物理的に、機能的に、又は論理的に実装されることができる。実際には、機能性を実装するに際しては、単一のユニット、複数のユニット、又は他の機能的ユニットの一部として実装することができる。したがって、開示した実施形態は、単一のユニット内で実装されるか、又は、異なるユニット、回路、及び／又はプロセッサ間で物理的に又は機能的に分散されることができる。
【０１５２】
本願開示は一部の実施形態との関係で説明されたのであるが、具体的に列挙されたこれらに限定されることは意図されていない。また、ある特徴が特定の実施形態との関連で説明されているように見えても、当業者であれば開示された実施形態の様々な特徴は任意の適切な態様で組み合わされた上で手法を実施するために用いられ得ることに気付くであろう。
【図１】
0006483277.tif 000004
【図２Ａ】
0006483277.tif 000005
【図２Ｂ】
0006483277.tif 000006
【図３Ａ】
0006483277.tif 000007
【図３Ｂ】
0006483277.tif 000008
【図４】
0006483277.tif 000009
【図５】
0006483277.tif 000010