JP3847560B2 - 1日のネッティング支払い決済のためのシステムおよび方法 - Google Patents
1日のネッティング支払い決済のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP3847560B2 JP3847560B2 JP2000547569A JP2000547569A JP3847560B2 JP 3847560 B2 JP3847560 B2 JP 3847560B2 JP 2000547569 A JP2000547569 A JP 2000547569A JP 2000547569 A JP2000547569 A JP 2000547569A JP 3847560 B2 JP3847560 B2 JP 3847560B2
- Authority
- JP
- Japan
- Prior art keywords
- payment
- payment order
- participant
- order
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 168
- 238000004422 calculation algorithm Methods 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 38
- 238000003860 storage Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 7
- 238000010923 batch production Methods 0.000 claims 9
- 238000000151 deposition Methods 0.000 claims 4
- 238000012546 transfer Methods 0.000 description 44
- 230000008569 process Effects 0.000 description 34
- 238000004088 simulation Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 18
- 230000000694 effects Effects 0.000 description 13
- 238000010276 construction Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 9
- 230000002354 daily effect Effects 0.000 description 8
- 230000001939 inductive effect Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 230000002146 bilateral effect Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000033228 biological regulation Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000012954 risk control Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
【関連出願に関連する相互参照】
本出願は、本明細書で参照により援用している、米国仮出願第60/084,223号(1998年5月5日出願)の恩典を請求するものである。
【0002】
【発明の分野】
本発明は、金融機関の間で電子支払いを受信および送信し、送信時に支払いが決済されるシステムおよび方法に関するものである。
【0003】
【関連技術の説明】
アメリカ合衆国において支払いを行う者(個人または企業)は、一連の支払い装置の中から選択することができる。ほとんどの単発の取引きは未だに現金(硬貨または紙幣)によって支払われているようである。小切手や、その他の紙の文書(トラベラーズチェック、送金為替、銀行小切手)や、自動手形交換所(”ACH”、信用貸しおよび借記送金を支援し、主に、事前にスケジュールすることができ、時間的危機に直面していない給料や年金支払い、譲渡抵当、保険のプレミア支払いといった直接預金のような低ドル取引きで使用されている、コンピュータに基づいたバッチ処理電子支払い機構)で処理される借記および貸記がある。しかし、最も大きな支払いは、通常、口座振替えで送金される。毎日、2つの主要な口座振替えシステム、FedwireとCHIPS(手形交換所銀行間支払い決済システム)が、2兆ドル以上に及ぶ何十万もの支払いを送金する。口座振替えの平均サイズは非常に大きく、CHIPSでは約6百万ドル、Fedwireでは3百万ドルである。
【0004】
口座振替えは、多くの異なる関係者と関連することができる。“fed funds”(銀行の連邦準備銀行への預金)の引渡しや返却のような、2つの銀行の債務を決済するために多くの振替えが行われる。これらの場合では、関係する銀行は2つのみである。さらに銀行は、顧客に代わって口座振替えを行う。これらの振替えは、同行または他行の別の個人へのものであってよい。顧客は、他行または同行に所有する2つの口座間で資金を移動することがある。例えば、請求金額の収集に使用している地元の口座から、現金集中口座または給料口座へ移動するかもしれない。
【0005】
口座振替えは、1つの銀行(「帳簿振替え」(book transfer))または多数の銀行に関係する場合がある。多くの場合、送金者は、支払い注文の実行するための方法を特定せず、送金者の銀行が、受取人へ資金を送る最も効率的な方法を選択する。この選択には、ネットワークまた仲介銀行の選択も含まれる。
【0006】
口座振替えシステムの仕組みの分析を簡素化するために、次の例が用いたい。顧客Xが自分の銀行である銀行Aに、銀行Bの顧客Yへ1万ドルの支払い注文を行う。次に、口座振替えの異なるステップと、各ステップに設けられている関係者向けの様々なオプションについて見てみる。顧客Xはどのように銀行Aに支払い注文を送信するか。銀行Aはどのようにこの支払い注文を銀行Bに送信するか。銀行Bはどのように顧客Yに通知をし、彼がその資金を利用できるようにするか。銀行Aと銀行Bがどのように残高を決済するか。
【0007】
A. 口座振替えの起点
利用者が銀行に振替口座の送信を注文する方法はたくさんある。おそらく、最大数の口座振替えであり、最高の金銭的価値が関係していることが確実であるものは、銀行と直接コンピュータ同士がリンクした企業を起点とした銀行であろう。これらの場合、顧客は、自分のコンピュータに支払い指示を入力し、コンピュータがその支払い注文を顧客の銀行のコンピュータに直接送信する。銀行のコンピュータはその支払い注文を「編集」する。その支払い注文が編集の1つに失敗する場合、例えば、支払い注文に必須情報が入っていなかった場合、コンピュータはその支払い注文をオペレータの画面へ送り、オペレータが必要な修正を行うか、顧客からの説明を探す(または、銀行内の他の行員にその説明を探させる)。顧客が、銀行に支払いメッセージを送信するためにパーソナルコンピュータを使用している場合にも同様の手順が用いられる。
【0008】
一般に、口座振替えサービスを利用するには、個人は銀行へ行き、用紙に記入して金額を支払わなければならない。多額の銀行口座を持つ個人と小企業は、専用の銀行員または会計士を雇っているかもしれない。これらの人達は、口座振替えを行う場合、銀行員に電話をかけ、通常、コードワードまたはコールバック手続きを通じて、その通話が本人のものであると確認された後、振替えの指示を行う。行員は、その支払い注文を自分のコンピュータ端末で銀行のコンピュータに直接入力するか、または、その注文を用紙に記入して銀行の口座振替え課に送り、ここで銀行のコンピュータにその注文を入力する。現在、多くの銀行は、個人の顧客が自分のパーソナルコンピュータによって銀行のコンピュータを直接に操作できる「ホームバンキング」製品を提供している。
【0009】
B. 送信者の銀行の支払い注文の受理
支払い注文が銀行の口座振替えコンピュータシステムに入力され、最初の編集を通過すると、これが同顧客の要求口座残高に対してチェックされる。残高が十分にあれば、銀行は、口座振替えネットワークまたは振替口座の次の銀行へ関連する支払注文を発行することにより、その支払い注文を実行する。同顧客の口座に十分な残高がない場合には、コンピュータは、同顧客が利用可能な貸出し限度を有しているかどうかを調べる。貸出し限度がある場合には、支払いが公開され、その限度がない場合には、その支払いは、その支払いをカバーする資金を受け取るまで保留される。カバーする資金が午後(通常午後2時から午後4時)までに届かなければ、その支払い注文は融資オフィサーへ回されるが、融資オフィサーは、その支払いを履行できるようにするために顧客に追加の信用貸しを行うかどうかを決定する。
【0010】
支払い注文が実施日(銀行は送信者の注文の実施において支払い注文を発行できる適した日)の業務終了時までに送信されない場合、通常、銀行は送信者に拒否の通知を送信してその注文を拒否する。
【0011】
C. 銀行間の振替え
1つの口座振替えに2つ以上の銀行が関係している場合、1つの銀行からもう1つの銀行へ資金を移動する必要がある。アメリカ合衆国では、以下に説明する2つの大型ドル口座振替えネットワークを利用することにより、また、取引先銀行残高を調整することにより、これを実施することができる。
【0012】
1. FEDWIRE
Fedwireは、12行ある連邦準備銀行によって稼動される口座振替えネットワークである。これはリアルタイムの総決済システムであるが、これが意味するのは、連邦準備銀行が受信側銀行の帳簿上の口座に信用貸しを行う時点で、支払いは完了し、取り消せないということである。従って、受信側の銀行が受取人に資金を利用可能にしたが、送信側がその支払い注文の金額を連邦準備銀行に支払えない場合にも、受信側の銀行が損失を負うリスクがない。このような場合、受信側銀行ではなく、連邦準備銀行が損失を負う。
【0013】
Fedwireは、連邦準備銀行に準備金または手形交換勘定を持っているあらゆる預託機関で利用することができる。現在、このような機関は約1万ほどある。そのうちの約7千の機関が連邦準備銀行との「オンライン」接続を有している。この接続のほとんどは、ダイヤルアップ電話回線接続またはリース回線により、連邦準備銀行とリンクした「Fedline」端末を介したものが最も多いが、約2百の最大規模の機関では、コンピュータ同士の直接インターフェースを有している。オンライン接続を備える機関は、Fedwireコンピュータへ、または、Fedwireコンピュータから自動的にFedwire支払い注文を送受信可能であり、連邦準備銀行の行員が手動操作不要である。連邦準備銀行は、その支払い注文の受領を知らせるために、送信側へコンピュータメッセージを送信する。Fedwire振替えの約99%は、オンライン支払い注文を起点とするものである。
【0014】
「オフ・ライン」取引きでは、通常、送信側がその連邦準備銀行に電話をかけ、支払い注文が連邦準備銀行が確立したコードまたはその他の方法によって確認される。さらに、これらの通話はテープに録音される。確認後、連邦準備銀行の行員は、その支払い注文をFedwireコンピュータに入力する。手動処理が必要であるため、連邦準備銀行では、オフライン振替えの手数料がオンライン振替えの手数料よりもかなり高価である。
【0015】
連邦準備銀行によって受信された支払い注文は、Fedwire処理コンピュータへ送られる。このコンピュータは、システム編集を実行し、支払い注文を受信側の連邦準備銀行へ送る。すると、連邦準備銀行は、受信側銀行の口座を自動的に信用貸しし、受信側銀行に通知を送信する。
【0016】
以下の例1では、適切な口座エントリが記されたFedwire支払い注文を利用した場合の口座振替えの進行を示している。連邦準備銀行の間の決済についても、以下で説明する。
【0017】
例1
顧客Xが銀行Aに銀行Bの顧客Y宛てに1万ドルを支払う注文をする、という2つの連邦準備銀行が関与するFedwire振替え。
ステップ1: 顧客Xが銀行Aに支払い注文を送信し、銀行Aが顧客Xの口座を借記(debit)し、連邦準備銀行1にFedwire支払い注文を送信する。
ステップ2: 連邦準備銀行1が銀行Aの準備金口座に借記し、支払い注文を連邦準備銀行2へ送信する。
ステップ3: 連邦準備銀行2は、支払い注文を受信し、銀行Bの口座を信用貸しし、銀行Bへ、顧客Yへの支払いを指示する通知を送信する。
ステップ4: 銀行Bは、顧客Yの口座を信用貸しし、信用貸しの通知を送信する。銀行Bと顧客Yの両方が最終資金を受領し、この支払いは終了する。
【0018】
2. CHIPS
手形交換所銀行間支払い決済システム(”CHIPS”)は、手形交換所銀行間決算会社L.L.C.(「手形交換所」)によって稼動される口座振替えシステムである。これは、多者間ネット決済システムである。つまり、これは、CHIPS支払いメッセージを別の参加者に送信する銀行が、受信側参加者に振替え金額を支払う義務を負うが、この義務が別の参加者の第1参加者への支払い義務に対してネッティングされ、各参加者にネット信用貸しポジションまたはネット借記ポジションを与えるということを意味する。ある参加者が別の参加者の決済を行った場合、そのポジションが、決済する別の参加者の各々のポジションに対してネッティングされ、単一の「ネットネット」ポジション(信用貸しまたは借記)が決済CHIPS参加者の各々に与えられる。これらのポジションは、1業務日の終りに決済される。ネット借記ポジションを有する参加者が、その債務を決済可能になる前に失敗することは理論的にはありうるが、手形交換所は厳格な信用貸し制御および決済確約方法を設けており、開始から25年間の間、CHIPSは1度も決済に失敗したことはない。
【0019】
CHIPSは、アメリカ合衆国内に複数の支店を持つ商業銀行機関でも利用することができる。現在、83の活発な参加者と18の決済中の参加者がいる。決済中の参加者でない参加者の各々は、決済中の参加者と組み、決済中の参加者に代わって決済を行わなくてはならない。(CHIPS決済の詳細については、以下で説明する。)
【0020】
一般的なCHIPS振込みにおいて、銀行Aは、自行のコンピュータからリース専用電話回線を介して、CHIPSコンピュータへ支払いメッセージを直接送信する。CHIPSコンピュータがこの支払いメッセージを確認および編集し、関連する支払メッセージを銀行Bへ、また、承認を銀行Aへ送信する。例2は、適切な口座エントリを備えたCHIPS振込みを示す。
【0021】
例2
顧客Xが銀行 Aに銀行Bの顧客Y宛てに1万ドルを支払うように注文する、CHIPS振込み。
ステップ1: 顧客Xが銀行Aに支払い注文を送信する。
ステップ2: 銀行Aが銀行Bに支払いメッセージをCHIPSを介して送信する。
ステップ3: 銀行Bが、自行の口座に1万ドルを受け取ったことを顧客Yに通知する。
注意: 銀行Bは顧客Yに、資金の使用を提供することができるが、決済が実施されるまでは支払いは終了しない。
ステップ4: 決済
【0022】
3. 取引き先銀行残高
銀行が受益者口座を持つ銀行と取引き関係にある場合、または、その銀行が口座振替えネットワークに直接アクセスできない場合、その銀行は、口座振替えを完了するために、様々な取引き先銀行口座に借記および信用貸しを使うことができる。銀行は、取引き先銀行残高の調整またはその他の手段を介して、送信側債務の支払いを実施しながら、国際銀行間金融通信協会(”S.W.I.F.T.”)が稼動するネットワークを介して、支払い注文を頻繁に送信する。支払い注文もテレックスまたはその他の通信媒体によって送信することができる。これらの取引きを実施する実際の手順は銀行によって異なる。
【0023】
以下の例3、例4は、取引き先銀行口座を用いて口座振替えを完了する2つの異なる方法を示すものである。
【0024】
例 3
顧客Xが銀行Aに銀行Bの顧客Yの口座に1万ドル送金するよう注文する。銀行Aは、銀行Bに取引銀行先口座を持っている。
ステップ1: 顧客Xが銀行Aに支払い注文を送信する。
ステップ2: 銀行Aは、顧客Yの口座を借記し、銀行Bが銀行Aの口座を借記することを承認するという支払い注文を銀行Bに送信する。
ステップ3: 銀行Bは、銀行Aの口座を借記し、顧客Yの口座を信用貸しする。
ステップ4: 銀行Bは、資金が使用可能であることを顧客Yに通知する。
【0025】
例4
顧客Xが銀行Aに銀行Bの顧客Yの口座に1万ドルを送金するよう注文する。銀行Aは、銀行Bの取引き先銀行口座を持っている。
ステップ1: 顧客Xが銀行Aに支払い注文を送信する。
ステップ2: 銀行Aは、顧客Xの口座を借記し、銀行Bの口座を信用貸しする。
ステップ3: 銀行Aが銀行Bに支払い注文を送る。
ステップ4: 銀行Bが顧客Yの口座を信用貸しする。
ステップ5: 銀行Bが資金が利用可能であることを顧客Yに伝える。
【0026】
4. 帳簿振替え
顧客は、自分の銀行に自分の口座からの口座振替えを依頼し、同行の帳簿上の別の勘定(account)を支払う場合がある(別の顧客の勘定または注文側の顧客の別の勘定)。これらは、1つの銀行の帳簿上で実施されるため、帳簿振替えと呼ばれる。これらの振替えの実施と簿記の配置に使用される方法は、銀行によって異なる。例5は、帳簿振替えのための口座エントリを示す。
【0027】
例5
顧客Xは、銀行Aの帳簿上の顧客Yの口座への口座振替えを銀行Aに注文する。
【0028】
D. 受益者への支払い
口座振替えの処理の最終ステップは受益者への支払いである。数は少ないものの全ての場合において、これは、受益者の銀行が帳簿上の受益者の口座に信用貸しを行い、その受益者に資金の使用を許可した際に達成される。連邦準備制度理事会規制の下で、銀行は、最終支払いを受理した翌業務日の始業時間までに、口座振替えを受益者に利用可能にしなければならない。Fedwire支払いでは、最終支払いが生じるのは、支払い注文の金額が連邦準備銀行における受信側銀行の口座に信用貸しされた時、または、信用貸しが生じたあらゆる場合において、入金通知書が送信された時である。CHIPS振込みについて、決済が完了した際に最終振込みを行う。送信側が受信側の銀行の帳簿に口座を信用貸しする取引銀行口座を利用した振込みについては(例4)、最終支払いは、信用貸しが引き出された時、また、引き出されない場合には、信用貸しが引き出し可能になる日であり、受信側の銀行がその件について認識する日の午前12時に実施される。受信側銀行が送信側口座を借記する際は(例3)、最終支払いが生じるのは、口座内の引き出し可能な信用貸しによって借記がカバーされる範囲にまで借記が行われる時である。
【0029】
非常に少数の支払いについて、受益者の銀行は、受益者の口座への信用貸し以外の方法を使用しても良い。例えば、銀行は、自分の身分証明書を提示した上で、受益者に支払われるべき資金を保有することができ、また、銀行は、受益者に小切手を送って支払いを行うこともできる。
【0030】
E. 銀行間決済
上述のアメリカ合衆国における主要な口座振替えシステムの双方は、決済に備える。すなわち、決済資金における額面の実際の振替えをもって、最終支払いとなる。決済が終わると、支払いは取消しが不可能になる(2重支払いや間違った支払いの場合を除く)。FedwireとCHIPSでは実際の決済方法は異なり、中央銀行によって稼動されるリアルタイムの総決済システムと多者間ネッティングシステムとの間の違いが反映されている。
【0031】
1. FEDWIRE
連邦準備銀行へ支払い注文を送信する銀行と、連邦準備銀行から支払い注文を受信する銀行の観点から見ると、Fedwire口座振替えはその作成時に終了する。連邦準備銀行がその支払い注文に取りかかった時点から、送信側の連邦準備銀行が送信側の口座を借記する。受信側銀行は、連邦準備銀行が口座を信用貸しするか、または入金通知書を送信するか、いずれか早い方の処置をとった時に、最終支払いを受ける。この時点で、受益者は支払いを受け、起点となる受益者への支払い義務が解消する。受信側の銀行は、その準備金口座または手形交換勘定に引き出し可能な決済資金を持っているが、これは、銀行が要求する準備金残高を充足する上でプラスになる。
【0032】
しかし、内側からみると、Fedwireは、12の決済銀行が関与したネット決済システムであり、決済銀行の各々は、独自のバランスシートを持った個別の企業であり、取引きはこれらの銀行間で決済されなければならない。この目的のために、連邦準備制度理事会は、連邦準備銀行のための管轄間の決済口座を維持している。この口座は、各連邦準備銀行のバランスシート上に現れる。連邦準備銀行間の各取引きの結果、ある連邦準備銀行の管轄間決済口座への信用貸しが生じ、また、これに対応するその他への借記が生じる。借記と信用貸しが累積した結果、各連邦準備銀行は、借記または信用貸しである累積したポジションを持つことになり、全12行の連邦準備銀行を1つにまとめたバランスシート上で、これらの借地および信用貸しがゼロにネットする。年に1度、各連邦準備銀行の管轄間決済口座は、全ての連邦準備銀行の政府発行有価証券の統合された保有物であるシステム・オープン・マーケット・アカウントに関した連邦準備銀行の所有権の再割当てによってゼロにされる。
【0033】
Fedwireの1つの欠点は、システム内の優良状態にある全ての参加者が大きな日中当座貸越しポジションを招いてしまうことである。このような当座貸越しを招いてしまう銀行には、連邦準備によって料金が課される。
【0034】
2. CHIPS
反対に、CHIPSは、現在構築されているとおり、真の多者間ネット決済システムである。上述したように、支払いメッセージの公開は、受信側参加者の送信した支払いを決済する義務に対して、ネッティングされた決済する義務を生じる。従って、各銀行は、借記または信用貸しのいずれかの総体的なネットポジションを有している。
【0035】
1業務日の終了時に、各参加者は、送られた全ての支払いメッセージの合計額、受信された全ての支払いメッセージの合計額、差を示す正味の数字(借記または信用貸し)を示すレポートを受け取る。各決済参加者は、その位置に加えて、決済される各参加者のネットポジションと、決済参加者自身のポジションと決済される各参加者のポジションを含む総体的なネットポジションを示す累計残高を示したレポートを受け取る。次に、各決済参加者に45分間が与えられ、この時間内に、参加者は、指定された決済参加者である1つまたはそれ以上の決済参加者に決済しないと決定した場合には、手形交換所に知らせなければならない。レポートに基づいて決済するという合意が各々の決算参加者から受理されると、手形交換所は、ニューヨーク連邦準備銀行に、全てのCHIPS決算参加者を代表して収容するCHIPS決済口座を開くように指示し、また、決済が開始される旨の通知を全ての決済参加者に送信する。この通知が送信されると、総ネット借記ポジションを有する決済参加者の各々は、15分間の間に、その借記ポジションの金額をニューヨーク連邦準備銀行のCHIPS決済口座へFedwire口座振替えしなければならない。これらのFedwireがすべて完了したら、手形交換所は、口座内の残高を調べ、続いて、決済口座からネット信用貸しポジションにある決済参加者の口座へFedwire支払い注文を送る。全てのFedwire支払い注文が送信されたら、決済が完了し、その日になされた全てのCHIPS支払いが最終的に支払われる。
【0036】
1日の業務終了時に決済に備える多者間ネット決済システムは、ネット借記ポジション(「借り主参加者」)にある参加者がその決済債務を支払いたくなかったり、支払うことができないというリスクに曝される。借り主参加者の失敗を補填する何らかの措置がないと、このタイプの失敗が意味するかもしれないのは、システムが決済に失敗したこと、すなわち、その失敗の日にネッティングシステムによって処理された口座振替えは完了されないということである。この口座振替えシステムが扱う支払いの数と金額次第では、このような失敗は、存続参加者と世界金融市場全体に深刻な有害結果をもたらしかねない。
【0037】
CHIPSは、決済失敗のリスクを制御するために、多数のステップをとっている。1984年に、それぞれの参加者には、他の参加者が受け入れることができる信用貸しのリスクの基準として、互いの参加者に「2者間信用貸し限度」を確立することが要求された。1986年には、CHIPSは、各参加者に、他の参加者によって確立された総合的な2者間限度の割合としての「送信側ネット借記キャップ」を確立することにより、さらに段階に進んだ。この制御は、参加者がシステムに引き起こす可能性のあるリスクの量を制御する。
【0038】
1990年には、CHIPSはさらに、その参加者の各々に失敗した参加者の決済義務の一部を支払わせる合意を要求する段階に進んだ。この「追加決済義務」は、この目的のために担保され、また、ニューヨーク連邦準備銀行に保管された財務省証券によって担保保証された。この担保保証された損失シェアリング協定により、最も高い借記キャップを持つ参加者がそのありうべき最大の借記ポジションにおいて失敗したとしても、CHIPSが決済できることが保証された。(この基準は、アレキサンダー・ランファルシーが会長を務める国際決済銀行のワーキンググループによって明確にされたため「ランファルシー基準」と呼ばれる。事実、CHIPSは、ランファルシー基準を先取りし、国際決済銀行のレポートが発行される以前から、このリスク制御方法を採用していた。)
【0039】
1994年に、CHIPSはそのリスク制御を強化し始め、その結果、1997年までには、最高の借記キャップを有する2つの銀行がその最大限の借記ポジションにおいて同時に失敗しても、CHIPSは決済することが可能になった(「ランファルシー+1基準」と呼ばれる)。多数の小規模銀行が失敗するのであれば、同じ損失シェアリング公式により、CHIPSの決済が許可される
【0040】
これらの処置にも関わらずまだリスクが存在し、ある重大な金融危機によってCHIPSの決済の失敗が生じる可能性があり、その結果、全ての公開された支払いメッセージが「巻き戻される」、すなわち、全ての支払いメッセージが受信側参加者から回収されて送信側参加者に戻され、送信側参加者が自己の支払いを送るか否かを自由に決定することができるようになる可能性がある。
【0041】
3. ジャーマンEAF2システム
グロス決算とネット決算システムの両方の要素を使用する第3タイプのシステムは、ドイツの中央銀行である、フランクフルトのDeusche Bundesbankが稼動する電子清算フランクフルト(EAF2)システムである。
【0042】
EAF2の稼動日には2つの段階がある。段階1(8:00a.m〜12:45p.m.)では、金融機関から受信した支払い注文がシステムに入力され、2者間で相殺される。約20分間の規則的な間隔で、最終支払いが、総決済システムと同じように、段階1の受信側信用貸し機関に利用可能になる。その後、支払い注文は、受信側銀行への信用貸しリスクを生じることなく、受益者に利用可能にすることができる。次の段階2(1:00p.m.〜2:15p.m.)では、第1段階中に、2者間的にネッティングされなかった残りの支払いの2段階の多者間清算を実施する試みがなされる。多者間清算からの重大な違いは、現在存在するものとしては、体系的リスクの回避である。カバーされていない借記残高がある場合、参加者の排除と、排除された参加者に関連する全ての支払いの戻しを伴う巻き戻しは実施されず、代わりに、個別支払いのみが戻される。これらの個別支払いは、総決済システムと同じように、カバーされていない支払いとして扱われる。
【0043】
段階1において、EAF2は、カバーが利用可能になった後に、個別の支払いが実施される総決済システムと非常に類似している。それは、2者間関係において、決済が完了する20分サイクル内で互いに相殺することにより、出ていく支払いのカバーとしての口座残高を使用する代わりに、入ってくる支払いを使用することが好ましいという原理に基づいている。流動資金を運転残高として、口座残金の形で使用することは、純粋な総決算システムと比較して、限定された範囲のみにおいて必要であり、そのため、相殺手順に含まれているカウンター支払いの量が正確にマッチングすることはない。EAF2では、ネット決済システムとは反対に、その量の点で可能な限りマッチングされた入っていくる支払いと出ていく支払いが互いに相殺される。相殺手順には含まれていない支払いが、次に、待ち行列内に移動され、次の処理サイクルを待つ。これに反して、ネット決済システムにおいて、ネット残高が、全ての入ってくる支払いと出ていく支払いの間の差として計算されるが、CHIPSの場合では、1日の業務終了時に、口座への借記または信用貸しによって決済される。
【0044】
EAF2において、懸念される特定の2者間関係にある相殺に含まれる支払い間に残存する差をクリアするために、いわゆる最大送信側量の形式において、どの程度の流動性または運転残高を利用可能にしたいかを参加者が自分自身で決定する。この方法で、参加者は、相手側から受け取った過剰な資金に頼ろうとする程度を制限することができる。これら最大の送信側金額は、流動性の、参加者の特定の口座への移動によってカバーされ、この参加者の信用貸し残高は、懸案の2者間側に指定されている。これとは別に、システムは、流動性を保護するために、高レベルの2方向支払いを利用している。段階1の最後において、会計を簡略化するために、各々の参加者の全ての2者間借記残高が1つの全体的な信用貸し残高にまとめられ、両方の全体残高がジーロ口座(ドイツ小切手口座)に記帳され、また、指定された金額が公開される。
【0045】
段階2の初めでは(ほぼ1:00p.m.)、段階1で相殺されていない支払いの初回の多者間清算処理が実施される。借記残高がカバーされない場合、残存する支払いの最大量、つまり、ジーロ口座の流動性がカバーする最大量が、個々の支払いを分類するためのアルゴリズムに基づいて計算される。次に、これらの残存する支払いは、すぐに最終のものになる。アルゴリズムによって既に定義している客観的な選択基準の補助を得て、カバーされていない借記残高を生じた個人の支払いが識別される。カバーされていないと考えられる個人の支払いは、第2多者間清算の実行を一時的に保留しながら破棄され、修正された残高がドイツ連邦銀行のジーロ口座に記帳される。
【0046】
その後、カバーを入手するために45分が参加者に許可される。技術的には、これは、以下に示す2つの異なる方法で入手することができる。
・ EIL−ZV(ドイツ連邦銀行による総決済システム)からの支払い入力が口座残高を増し、次に、これがネット残高をカバーするために使用される。
・ EAF2自体における支払い入力(借記残高を持つ参加者に有利)が参加者間のネット残高を変更する。ジーロ口座の流動性は変化しない。
【0047】
次の第2多者間清算から生じるネット残高が依然カバーされない場合には、ある参加者の排除が関与する巻き戻しは実行されない。代わりに、上述のアルゴリズムの手段により、個人の支払いは、ジーロ口座のカバー資金が十分になるまで、引き出されつづける。従って、EAF2清算および決済は常に完了され、ネット決済手順に一般的な体系的リスクが、高額の支払いの非巻き戻しを除外することにより回避される。カバーされていないものとして扱われる個人の支払いは、取り消され、実行されないものと見なされる。段階1では2者間的に相殺され、段階2では多者間的に清算および決済される支払いの完了は、これによって影響されることはない。この手順はまた、総決済システムで使用されているものと同じであるが、ここで、待ち行列内に残っているカバーされていない支払いが既に実行されている支払いの完了に影響することなく戻される。実行されていない支払いは、同日に総決済システム、すなわちドイツEIL−ZVシステムに入力されるか、または、次の日にEAF2に再入力されてもよい。ドイツEIL−ZVは、この理由のために稼働時間を若干のばしている。
【0048】
EAF2システムには欠点がいくつかある。第1に、最終決済は1日を通して生じるが、発生の間隔は20分間である。また、システムは、プレファンドされた口座が個々の機関によってセットアップされることを許可するが、各口座は、支払いを予め選択された金融機関へ相殺するために作成される。例えば、銀行Aは、銀行Bに関する、そして銀行Bのみの支払いと領収を相殺するために口座をセットアップし、また、銀行Aの銀行Cとの関連において、銀行Aの別の口座することができる。
【0049】
従って、この背景を仮定すると、他の全ての参加者に対して、支払いと領収を相殺するために使用される参加の金融機関のプレファンド口座の手段によって、支払いの、連続的な1日の最終決済を許可するシステムが必要である。
【0050】
【発明の要約】
従来技術についての上述の説明を考慮すると、本発明の目的は、支払いが送信時に最終的に決済されるように、システムが支払い注文を金融機関から受信し、また、システムが金融機関に支払い注文を送信する銀行間の支払い注文の、連続した1日の最終決済システムおよび方法を提供することである。このシステムでは、必要とされるのは最小の補助ファンディングであり、その遅延は支払いの大きさで変化するが許容できる程度まで少なく、合計ドル出来高の高い割合いが相殺まえに公開される。
【0051】
本発明のこの目的またその他のさらなる目的は、各々の金融機関(参加者)が支払い注文の電子送信の操作可能な関連した衛星コンピュータステーションを備えた、各々の金融機関が支払い受信参加者および支払い送信参加者としての機能が操作可能な複数の金融機関の連続的な1日の支払い注文の最終決済のためのシステムであって、前記システムは、(a)中央制御エージェントを有し、前記中央制御エージェントが、支払い注文を受信するべく、また、参加者間の支払い注文の公開を制御するべく、該参加者の衛星コンピュータステーションと電子通信を行うために操作可能な中央コンピュータを備えており、(b)プレファンド残高口座内の複数のプレファンド残高を記憶するための手段を有し、各々の残高は、該参加者の1つのプレファンド残高口座からの支払いを行う権利を示し、また、各参加者の、各業務日毎の開始時における初回プレファンド残高を含んでいる。(1)送信側参加者として操作する該参加者の1つからの該中央制御エージェントによって、該参加者とは別の、受信側参加者としての参加者への支払い注文を受信すると、受信した支払い注文の各々を、関連する送信側参加者の該初回プレファンド残高の1つと、関連する受信側参加者の該初回プレファンド残高の所定の割合未満であれば小型に、それ以外であれば大型に分類するために、(2)前記受信した支払い注文を、該中央コンピュータによって維持される待ち行列内に記憶するために、(3)既に記憶されている小型支払い注文用に該待ち行列を、即座に公開する支払いの候補として監視するために、(4)支払いの候補の小型支払い注文の公開の結果、該候補小型支払い注文に関連した該送信参加者と該受信参加者の両方の利用可能残高が、各々の所定の限度内に収まるかどうかを決定するために、(5)ステップ(4)における決定が正である場合に、前記送信側参加者の該利用可能残高を借記することによって、また、該関連する候補小型支払い注文の金額により、該受信参加者の前記利用可能残高を信用貸しすることによって、該候補小型支払い注文を公開するために、(6)送信側参加者から受信側参加者への支払いのための、既に記憶されているターゲット大型支払い注文について、前記待ち行列を監視するために、(7)(i)前記ターゲット大型支払い注文の該送信側参加者とは別の少なくとも1つの送信側参加者からの、該ターゲット支払い注文と、必要であれば、該ターゲット支払い注文の送信側参加者に向かうヘルパー支払い注文とを備えた第1ツリーを形成することにより、(ii)前記ターゲット支払い注文と、必要であれば、該大型ターゲット支払い注文の受信参加者から離れ、該ターゲット支払い注文の受信参加者とは別の少なくとも1つの受信側参加者へ向かうヘルパー支払い注文とを備えた第2ツリーを形成することにより、(iii)各々の支払い注文の金額によって、前記第1、第2ツリーの前記ターゲットおよびヘルパー支払い注文を有する多者間バッチ内の該ターゲット大型支払い注文の送信側参加者の、および、該ヘルパー支払い注文の送信側参加者の該利用可能残高を借記することにより、(iv)各々の支払い注文の金額によって、該多者間バッチ内の前記ターゲット大型支払いおよび該ヘルパー支払い注文の受信側参加者の残高を信用貸しすることにより、多者間バッチングを実行することで、該待ち行列に記憶されたターゲット大型支払い注文公開するために、前記コンピュータは、連続ベースでの操作可能であり、該多者間バッチは、第1および第2ツリーを有する支払い注文が公開された後に、該多者間バッチングに関連する各参加者の前記利用可能残高内のポジションが所定の限度内に収まるように選択される。
【0052】
好ましくは、コンピュータシステムは、2者間バッチにおいて、該ターゲット大型支払い注文の関連する受信参加者からの、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、ターゲット大型支払い注文の金額を選択的に相殺するために、また、該ターゲット大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成するために、また、前記擬似支払い注文を該待ち行列内に記憶するために操作可能である。
【0053】
本発明の更なる目的は、中央制御エージェントにより、各々の金融機関参加者が支払い注文の電子送信の操作が可能な関連した衛星コンピュータステーションを備え、各々の金融機関参加者が支払い受信参加者および支払い送信参加者としての機能の操作可能な複数の金融機関参加者間の連続的な1日の支払い注文の最終決済のための方法を提供することであって、前記中央制御エージェントは、支払い注文を受信するべく、また、複数の参加者に対する支払い注文の公開を制御するべく、該複数の参加者の衛星コンピュータステーションと電子通信を行うために操作可能な中央コンピュータを備えており、プレファンド残高口座内の複数のプレファンド残高を記憶するための手段を有し、各々の残高は、該参加者の1つのプレファンド残高口座からの支払いを行う権利を示し、また、各参加者の、各業務日毎の開始時における初回プレファンド残高を含んでいる。前記方法は、(1)送信側参加者として操作する該参加者の1つからの該中央制御エージェントによって、該参加者とは別の、受信側参加者として操作する金融機関への支払い注文を受信すると、受信した支払い注文の各々を、関連する送信側参加者の該初回プレファンド残高の1つと、関連する受信側参加者の該初回プレファンド残高の所定の割合未満であれば小型に、それ以外であれば大型に分類するステップと、(2)前記受信した支払い注文を、該中央コンピュータによって管理される待ち行列内に記憶するステップと、(3)既に記憶されている小型支払い注文用に該待ち行列を、即座に公開する支払いの候補として監視するステップと、(4)支払いの候補の小型支払い注文の公開が、該候補小型支払い注文に関連した該送信参加者と該受信参加者の両方の利用可能残高が、各々の所定の限度内に収まるかどうかを決定するステップと、(5)ステップ(4)における決定が正である場合に、前記送信側参加者の該利用可能残高を借記することによって、また、該関連する候補小型支払い注文の金額により、該受信参加者の前記利用可能残高を信用貸しすることによって、該候補小型支払い注文を公開するステップと、(6)送信側参加者から受信側参加者への支払いのための、既に記憶されているターゲット大型支払い注文について、前記待ち行列を監視するステップと、(7)(i)前記ターゲット大型支払い注文の該受信側参加者とは別の少なくとも1つの送信側参加者からの、該ターゲット支払い注文と、必要であれば、該ターゲット支払い注文の送信側参加者に向かうヘルパー支払い注文とを備えた第1ツリーを形成することにより、(ii)前記ターゲット支払い注文と、必要であれば、該大型支払い注文の受信参加者から離れ、該ターゲット支払い注文の受信参加者とは別の少なくとも1つの受信側参加者へ向かうヘルパー支払い注文とを備えた第2ツリーを形成することにより、(iii)各々の支払い注文の金額によって、前記第1、第2ツリーの前記ターゲットおよびヘルパー支払い注文を有する多者間バッチ内の該ターゲット大型支払い注文の送信側参加者の、および、該ヘルパー支払い注文の送信側参加者の該利用可能残高を借記することにより、(iv)各々の支払い注文の金額によって、該多者間バッチ内の前記ターゲット大型支払いおよび該ヘルパー支払い注文の受信側参加者の残高を信用貸しすることにより、多者間バッチングを実行することで、該待ち行列に記憶されたターゲット大型支払い注文公開するステップと、を有し、該多者間バッチは、第1および第2ツリーを有する支払い注文が公開された後に、該多者間バッチングに関連する各参加者の前記利用可能残高内のポジションが所定の限度内に収まるように選択される。
【0054】
好ましくは、この方法は、2者間バッチにおいて、該ターゲット大型支払い注文の関連する受信参加者からの、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、ターゲット大型支払い注文の金額を選択的に相殺するステップと、該ターゲット大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成するステップと、前記擬似支払い注文を該待ち行列内に記憶するステップとをさらに有する。
【0055】
本発明のこの目的またその他のさらなる目的において、中央コンピュータによって実行可能なコードを記憶するコンピュータ読み出し可能媒体が提供され、複数の金融機関参加者間における連続的な1日の支払い注文の最終決済するための方法を実行するために、前記コードが該中央コンピュータを制御し、各々の金融機関参加者が支払い注文の電子的な送信の操作可能であり、各々の金融機関参加者が支払い受信側参加者および支払い送信側参加者としての機能の操作可能である。該中央コンピュータは、中央制御エージェントの一部を形成し、また、複数の参加者の支払い注文の公開を制御するために、また、プレファンド残高口座内の複数のプレファンド残高を記憶する手段を制御するために、支払い注文を受信するべく該複数の参加者の該衛星コンピュータステーションとの電子的な通信の操作が可能であり、各々の残高は、該参加者の1つのプレファンド残高口座からの支払いを行う権利を示し、また、各参加者の、各業務日毎の開始時における初回プレファンド残高を含んでいる。前記方法は、(1)送信側参加者として操作する該参加者の1つからの該中央制御エージェントによって、該参加者とは別の、受信側参加者として操作する参加者への支払い注文を受信すると、受信した支払い注文の各々を、関連する送信側金融機関の該初回プレファンド残高の1つと、関連する受信側金融機関の該初回プレファンド残高の所定の割合未満であれば小型に、それ以外であれば大型に分類するステップと、(2)前記受信した支払い注文を、該中央コンピュータによって管理される待ち行列内に記憶するステップと、(3)既に記憶されている小型支払い注文用に該待ち行列を、即座に公開する支払いの候補として監視するステップと、(4)支払いの候補の小型支払い注文の公開の結果、該候補小型支払い注文に関連した該送信参加者と該受信参加者の両方の利用可能残高が、各々の所定の限度内に収まるかどうかを決定するステップと、(5)ステップ(4)における決定が正である場合に、前記送信側参加者の該利用可能残高を借記することによって、また、該関連する候補小型支払い注文の金額により、該受信参加者の前記利用可能残高を信用貸しすることによって、該候補小型支払い注文を公開するステップと、(6)送信側参加者から受信側参加者への支払いのための、既に記憶されているターゲット大型支払い注文について、前記待ち行列を監視するステップと、(7)(i)前記ターゲット大型支払い注文の該送信側参加者とは別の少なくとも1つの送信側参加者からの、該ターゲット支払い注文と、必要であれば、該ターゲット支払い注文の送信側参加者に向かうヘルパー支払い注文とを備えた第1ツリーを形成することにより、(ii)前記ターゲット支払い注文と、必要であれば、該大型支払い注文の受信参加者から離れ、該ターゲット支払い注文の受信参加者とは別の少なくとも1つの受信側参加者へ向かうヘルパー支払い注文とを備えた第2ツリーを形成することにより、(iii)各々の支払い注文の金額によって、前記第1、第2ツリーの前記ターゲットおよびヘルパー支払い注文を有する多者間バッチ内の該ターゲット大型支払い注文の送信側参加者の、および、該ヘルパー支払い注文の送信側参加者の該利用可能残高を借記することにより、(iv)各々の支払い注文の金額によって、該多者間バッチ内の前記ターゲット大型支払いおよび該ヘルパー支払い注文の受信側参加者の利用可能残高とを信用貸しすることにより、多者間バッチングを実行することで、該待ち行列に記憶されたターゲット大型支払い注文公開するステップと、を有し、該多者間バッチは、第1および第2ツリーを有する支払い注文が公開された後に、該多者間バッチングに関連する各参加者の前記利用可能残高内のポジションが所定の限度内に収まるように選択される。
【0056】
好ましくは、コンピュータ読み出し可能媒体は、2者間バッチにおいて、該ターゲット大型支払い注文の関連する受信参加者からの、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、ターゲット大型支払い注文の金額を選択的に相殺するステップと、ターゲット大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成するステップと、前記擬似支払い注文を該待ち行列内に記憶するステップとをさらに含む方法を前記中央コンピュータに実行させるためのコードを記憶する。
【0057】
【好適な実施形態の詳細な説明】
I. システムの概観
本発明は、参加の金融機関と通信するべく構築された中央コンピュータを備えた中央制御エージェントを含むシステムに関するものである。上記システムは、参加の金融機関に関連した、プレファンド残高口座(prefunded balance account)を制御および更新するためのハードウェアを備えており、また、これらの口座を所定の規制内で信用貸しおよび借記する(debit)手段によって、上記システムは、参加金融機関の間での支払いの解除および決済を制御する。このシステムは、決済サービスを提供する連邦準備銀行や参加金融機関を含む銀行と電子的に通信する機能を備え、また、銀行から受信した支払い注文を、関連した支払いが解除可能になるまで一時的に記憶しておくための待ち行列を保持するのに十分な記憶容量を持ったコンピュータシステムを用いて実現することが好ましい。また、このシステムは、現在のCHIPSシステムハードウェアのある特徴を用いて実現することもできる。しかし、CHIPSハードウェアを用いて実現した場合、このシステムでは、全解除の1日の支払い完了性を提供することにより、現在のCHIPSの実施に対して著しい改善を達成する。しかしながら、本発明のシステムは、この実現に限定されることがなく、また、CHIPSシステム内に使用されているものから独立した、あるいは異なるハードウェアおよびソフトウェアを用いて実現することが可能である。
【0058】
現在のCHIPSシステムの詳細な説明は、The Clearing House Service Company L.L. C.発行の「CHIPS Systems and Operations Manual」に記されており、本明細書中でも参照することで援用している。
【0059】
本発明のシステムの目的は、従来のCHIPSシステムで必要な特定の義務を保証するために現在入れられている担保額よりも小さなプレファンドされた残高を用いながら、1日の支払い完了性を達成することである。
【0060】
本発明のシステムは、終日にわたり参加金融機関(「参加者」)間の個別の、2者間の、あるいは多者間のバイアスにおける支払いメッセージを連続的にマッチングさせ、ネッティングし、公開する(release)ソフトウェアを採用したコンピュータ制御された装置を備えている。このシステムでは、(a)送信・受信側の参加者によって確立されたプレファンドされた残高に、支払いメッセージの額面(value)が同時に請求されるか、または信用貸しされないかぎり、または(b)その支払いメッセージが、1つまたはそれ以上の他の支払いメッセージにネッティングおよび相殺され、その結果、プレファンド残高に対して残高が同時に請求および信用貸しされないかぎり、参加者に支払いメッセージが公開されることはない。この方法により、送信側参加者の、受信側参加者への支払いメッセージに示された金額の支払いの義務を、ニューヨーク統一商事法典の4−A−403項(1)(a)または4−A−403(2)項の下で「最終決済」することになる。
【0061】
このシステムは、1業務日中に、1つまたはそれ以上の参加者が決済の失敗に陥った場合でも、その失敗に伴ういかなる危険を排除する。現在のCHIPSシステムに対する著しい改善は、各参加者が連邦準備銀行の口座(プレファンド残高口座)に所定の金額を入れ、その額面、または、ネッティグと相殺を含む残高が、参加者の口座内の利用可能残高を超えない限り、支払いメッセージの公開を禁止することで達成される。
【0062】
このシステムは、1業務日中に、支払いメッセージの合計額面の96%よりも多い額面が記された多数の支払いメッセージの内の99%以上の公開を許容するように期待されている。CHIPS内で利用すると、本発明のシステムは、CHIPSシステム内に残っている決済危険の最後の要素を除去するであろう。
【0063】
さらに、本発明のシステムを使用することにより、支払いシステムにおける全般的な危険を、従来のシステムと比べて著しく減少させる。この新規システムは、支払いが公開され次第、外国為替取引きの1部であるドル払いの終了を許可することにより、決済に伴う危険性を減少させるであろう。例えば、ドル−ユーロ取引きのドル側を、その日の初めに、最終支払いをもって終了し、同時に、ユーロ支払いを、EAF−2システムがあるドイツのフランクフルトで決済することができる。
【0064】
本発明のシステムの好ましい1つの実施形態において、例えば、CHIPS規則下において、債務を保証するために米国財務セキュリティに担保を入れる代わりに、各参加者は、ニューヨーク連邦準備銀行(“FRBNY”)の帳簿上の金額(「プレファンド残高額(prefunded balance account)」)に対する最終的な取り消し不能の支払いを送ることにより、所定の金額(「初回プレファンド残高(initial prefunded balance)」)を預託することが求められる。このシステムは、各参加者の初回の預託をプレファンド残高口座、すなわち、例えば、CHIPSで実現している場合にはCHIPSの帳簿および記憶装置に記録し、また、支払いメッセージが公開される際に、1日の内に参加者に生じる借記または信用貸しを全て記憶する。全ての借記および信用貸しを反映するために調整した各参加者のプレファンド残高の1日の記録は、参加者の「利用可能残高」と呼ばれ、終日の任意の時間において、各参加者に属するプレファンドされた残高口座の1部を確立する。
【0065】
いかなる参加者も、初回プレファンド残高をプレファンドされた残高口座に預託しない限り、支払いメッセージの送受信を行うことはできない。プレファンドされた残高口座への預託は、午前12時30分にFedwireが始業し次第行うことができる。全ての参加者は、初回プレファンド残高を午前9時(連邦準備銀行が従う祝日の次の日は午前7時)までに預託していなければならない。多くの参加者が、プレファンドされた残高口座への要求された預託を、自分の準備口座または手形交換口座にFedwire支払い注文を送ることによって行うことが予想されるが、自分の代わりに、連邦準備銀行に口座を持っていない参加者も、取引き先銀行にFedwireへ支払い注文を送ってもらうことができる。
【0066】
各参加者に要求される初回プレファンド残高は、システムの最良のパフォーマンスを得るために構成された公式を用いて決定される。初回プレファンド残高は、各週の最後に再計算されて、次週の初回プレファンド残高要求が決定される。参加者の初回プレファンド残高の要求は、現在のCHIPS下におけるその参加者の担保要求とほぼ同額になる。
【0067】
システムが支払いメッセージの受付を終了するまで、参加者は、1日の間に、プレファンド残高口座へ追加の預託を行うことや、プレファンド残高口座から引き出しを行うことはできない。その結果、この処理中は、プレファンド残高口座内の残高は連邦準備銀行の帳簿上では減少しない。しかし、各参加者の利用可能なプレファンド残高は、支払いメッセージの公開および受信に基づいて、その日の内に変更される。支払いメッセージが、次に述べる手順に従って同時にネッティング、相殺、公開される場合、システムは、送信側、受信側の参加者の利用可能な残高に対して適切な借記および信用貸しを行う。従って、各参加者の利用可能な残高は、1日の内に、支払いメッセージが公開および受信される度に調整および再調整される。好ましい実施形態において、参加者の利用可能な残高がゼロ未満(参加者の「最小利用可能残高」)または要求された初回プレファンド残高の2倍よりも大きな金額(参加者の「最大利用可能残高」)になることは許されないが、しかし、本発明は、異なる規制を利用して実現することができ、また、この好ましい実施形態に制限されるものではない。
【0068】
本発明は、支払いメッセージの公開を規制するためのコンピュータプログラムを備えたコンピュータベースのシステムに関するものである。このプログラム(「帳尻を合わせた公開エンジン」(balanced released engine))は、1日を通して、支払いメッセージを連続的にマッチング、ネッティング、相殺、公開する。入ってくる全ての支払いメッセージは、システムによって受信され、コンピュータプログラムの準備ができた際に公開するべく、1つまたは好ましくは複数の待ち行列に登録される。プログラムは、大型の(送信側参加者の初回プレファンド残高および受信側参加者の初回プレファンド残高の内の1つの80%に等しいかまたはこれよりも大きな、または好ましくはこれ未満の現在のモデリングにおいて)または小型の(初回プレファンド残高の1つの80%、または好ましくはこれ未満)各支払いメッセージを幅広く分類する。
【0069】
この明細書全体を通じて、「大型」という言葉は、初回プレファンド残高の80%に等しい、またはこれよりも大きな支払い注文のカテゴリーを参照するべく使用されている。しかし、発明者は、本記載で幅広く「小型」と呼んでいる80%未満の支払い注文が、さらに、その初回プレファンド残高の20%〜80%に当てはまる金額である「中型」支払い注文、「小型」、20%またはそれ未満の金額に当てはまる「超小型」に分割された場合、本システムの効率にいくつかの改善が見られることを発見した。これ以降の記載で、支払い注文を小型、中型、大型と説明する方法を使用している場合には、参照した上述の3つの分類に基づいている。以降の記載の、中型支払い注文を使用していない部分では、より幅広い「小型」という用語が示すのは、初回プレファンド残高の80%未満の全ての支払い注文であることが意図されている。好ましい実施形態について選択された割合は、任意のものであることに注意すべきである。重要な特徴は、分類が1つまたは複数の初回プレファンド残高に関連した支払い注文の大きさによって行われていることである。
【0070】
このプログラムは、支払いを、2者間バッチまたは多者間バッチにおいて個々に公開し、送信側参加者に対して公開通知を送信し、受信側参加者に対して受信通知を送信する。この一般的な支払いプロセスの流れを図1に示す。
【0071】
大型支払いを個々に公開することは、通常、送信側の参加者の残高をその最小利用可能残高未満にするか、または受信側の参加者の残高をその最大利用可能残高以上にしてしまう。従って、帳尻を合わせた公開エンジンは支払いを公開せず、バッチ内に含むことができ、また、大型支払いメッセージにネッティングすることができる支払いを検索する。必要であれば、別の参加者からの別の「ヘルパー」支払いメッセージが、次の方法でそのバッチに追加される。その方法とは、そのバッチ内の全ての支払いメッセージが互いにネッティングおよび相殺されて、バッチに支払いメッセージを持った各参加者の利用可能残高へのネットの変更が、いかなる参加者の利用可能残高がゼロ未満にならない、または最大値を超えないようにするものである。このバッチングについて以下に詳細に説明する。
【0072】
発明者は、本発明のシステムによって、送信側参加者が送信する支払いメッセージの99%以上の公開が許可され(全ての支払いメッセージの額面の96%)、CHIPSハードウェアを使用してシステムを実現している場合には、これと同時に、CHIPSがさらなる支払いメッセージの受信を終了した際に少数の支払いが公開されずに残ることを示すと信じている。業務終了前にこれらの支払いメッセージを公開および決済するために以下の手続きを使用する。
【0073】
支払いメッセージ受信の終了時間後に、残っている支払いメッセージを、いかなる参加者の最大利用残高にも関連することなく、できるだけ多くマッチング、ネッティング、相殺、公開するために、帳尻を合わせた公開エンジンが使用される。この手続きの後に、残っている未公開支払いメッセージに基づいて、これらの支払いメッセージを実際にネッティング、相殺または公開することなく、各参加者についてのネット残高を計算するために、帳尻を合わせた公開エンジンが使用される。
【0074】
ある参加者についての結果の数がマイナスになった場合、その参加者は「最終プレファンド残高要求」を有し、また、ある参加者についての結果の数がプラスになった場合、その参加者は「最終プレファンド残高権利」を得る。次に、各参加者は、その最終プレファンド残高要求または最終プレファンド残高権利についてアドバイスする管理メッセージを受信する。
【0075】
最終プレファンド残高要求を得た各参加者は、最終プレファンド残高要求にある金額を、プレファンド残高口座に30分以内にFedwire口座振替えで送らなければならない。これらの口座振替えの全てが完了したら、残りの未公開支払いメッセージの全てがネッティング、相殺、公開され、同時に、システムが、最終プレファンド残高権利を得た各参加者に対して、その最終プレファンド残高権利にある金額をFedwire口座振替えで送る。
【0076】
最終プレファンド残高要求を得た参加者がプレファンドされた残高口座に対して要求されたFedwire口座振替えを送ることを拒否したり、同振替えを行うことが不可能な場合には、最終ファンディングステップにおいて、受信された最終プレファンド残高要求を追加した上で調整された利用可能な残高を使って、帳尻を合わせた公開エンジンが再び動作する。これにより、追加の支払いメッセージの公開が許可される。送信側の参加者は、この手続きに従って、未公開のまま残っているあらゆる支払いメッセージに関して通知される。送信側の参加者は、システムが終了する前に、あらゆる未公開支払いメッセージをFedwireを介して再び送ることができる。
【0077】
II. 支払い完了性の法的基準
現在のCHIPS支払いメッセージの各々は、ニューヨーク統一商事法典の4−A−103項の趣旨範囲における支払い注文である。現在、CHIPS規則2の下には、「支払いメッセージの公開は、送信側参加者に、その支払いメッセージ上の金額を受信側参加者へ支払う義務を生じる」とある。The Clearing House Service Company L.L.C発行の「CHIPS Rules and Administrative Procedures」を参照されたい。かかる義務は、CHIP支払いメッセージが公開されると、CHIP支払いメッセージについては存在しなくなる。CHIPS規則2にはさらに、「送信側参加者の受信側参加者への支払い義務は、規則12に従ってネッティングされ、規則13に従って決済される」ともある。
【0078】
規則12は、CHIPS支払いメッセージが互いに連続的にネッティングおよび相殺されると述べており、規則13(c)(1)は、このネッティングおよび相殺手続きの結果生じた多者間のネッティング残高は、ニューヨーク連邦準備銀行(“FRBNY”)において決済される、と述べている。規則13(c)(2)の下には、決済は、要求されたその決済口座への、またはここからの支払いがなされた際に完了する、とある。
【0079】
CHIPS規則の参照した条項とニューヨーク統一商事法典との間の相互作用の効果は、送信側参加者の受信側参加者への支払い義務は、その日の終わりに、決済が終了するまで完了したことにはならないことである。
【0080】
本発明によるシステムの主な利点は、送信側参加者が受信側参加者への支払い義務を果たすことができ、同時に、その支払いメッセージが受信側参加者に公開されることである。これは、統一商事法典の条項でも認められている。ニューヨーク統一商事法典の4−A−403(2)項には、(現在のCHIPSが行うように)参加者間で多者間的に義務をネッティングする口座振替えシステムのメンバー間で、「システムの規則に従って決済が完了すると、受信側の銀行は最終決済を受信する」とある。4−A−403項には、
「送信側の、口座振替えを介して送信された支払い注文の金額を支払う義務は、受信側の銀行によって口座振替えシステムを介して送信側へ送信されたその他のあらゆる支払い注文の金額を、受信側の銀行から受信する送信側の権利を送信側の義務に対して相殺および適用することにより、システムの規則によって許可される範囲まで満たすことができる。口座振替えシステムにおいて各送信側が受信側の各銀行に負っている義務の累計残高は、システムの他のメンバーが送信側に負っている義務の累積残高をその残高に対して相殺および適用することにより、システムの規則によって許可される範囲まで満たすことができる。」
とある。
【0081】
さらに、ニューヨーク統一商事法典4−A−403(1)(a)項には、送信側の義務の支払いは「受信側の銀行が…義務の最終決済を口座振替えシステムを介して受信した際に生じる」とある。
【0082】
上述したように、本発明のシステムでは、支払いメッセージは個別に、またはバッチで公開される。支払いメッセージが個別に公開された場合、これは同時に決済され、送信側参加者の義務が、借記また信用貸しによって送信側および受信側参加者の利用可能な残高に支払われる。事実上、これは、ニューヨーク統一商事法典の4−A−403(1)(a)項によって即座に終了し認可される、口座振替えシステムを介した「総決済」である。支払いメッセージがバッチで公開される場合、各支払いメッセージは送信側および受信側参加者の相互への義務をネッティングすることにより決済され、また、2つよりも多い数の参加者がバッチにおける支払いメッセージを有する場合、同バッチ内の全ての参加者の2者間ネット残高が、やはりネッティングすることにより決済される。このネッティングの結果生じる各参加者の残高は(2者間ネット残高または多者間ネット残高のいずれの場合でも)、その利用可能残高への借記または信用貸しを介して同時に決済される。これが終了すると、これらの支払いメッセージの決済が、本発明のシステムを制御するべく提案された規則に従って、完了される。この利用可能残高のネッティングおよび調整によって、4−A−403(2)と4−A−403(1)(a)項の下で最終決済と支払いが生じる。
【0083】
この手続きにより、支払いメッセージに関連した支払い義務が、支払いメッセージが受信側参加者に公開された時の利用可能残高のネッティングおよび調整を介して決済される。さらに、現在のCHIPSシステムでのように「逆戻し」に備える必要がない(すなわち、CHIPSが決済と、全ての支払いメッセージを記憶装置へ戻すこととに失敗したと宣言するための、CHIPS規則2、13(k)下における役員会の権限)。同様に、CHIPS規則13の下で備えられている担保物権で保証された損失分担装置を備える必要もない。
【0084】
III. 帳尻を合わせた公開エンジン
上述したように、帳尻を合わせた公開エンジンは、銀行間の支払いを目的の受信側にいつ公開することができるかを決定をする。本発明において、支払いの公開は、以下に説明するように、異なるドルサイズクラスでの支払いとは違う形で進行する。
【0085】
システム内の各参加者は、所定の金額または初回のプレファンド残高をプレファンド残高口座に預託しなければならない。初期プレファンド残高の2倍の信用貸し限度(最大利用可能残高)が上限または「キャップ」(上限金利)として設定されるが、使用可能残高はゼロ以下(借記または「キャップ」限度)に達することができず、本発明のシステムにおいては最小利用可能残高と呼ばれる。初期プレファンド残高の0.8倍と独断的に定義された「フローキャップ」が、「小型」支払いと「大型」支払いを区別するために幅広く使用されており、フローキャップよりも小さなものは「小型」、それ以外は「大型」と定義される。
【0086】
A. 小型支払いの公開
帳尻を合わせた公開エンジンは、小型支払い、すなわち送信側参加者と受信側参加者の初期プレファンド残高の低い方の80%未満を、中央コンピュータ記憶装置に常住する2者間の先入れ先出し待ち行列から(バッチすることなく)個別に公開する。中央コンピュータ記憶装置は、入ってくる支払い注文が、送信側参加者と受信側参加者の許可ポジションとして、その受信後に保管される場所である。支払いの公開後は、上述した最小および最大利用可能残高のいずれも超えることはできない。優先権は常に、待ち行列に最も早く登録された支払いの公開に与えられる。しかし、「最も早い」という言葉の意味は送信側と受信側では異なるので、ある意味で最も可能性がある送信者と受信者の最適なマッチングを見つけるために、以下に詳細に説明する、ゲール・シャプレイのアルゴリズムに基づいたマッチング技術が使用される。
【0087】
B. 大型支払いの公開
帳尻を合わせた公開エンジンは、多者間および/または2者間のバッチの補助を得て支払いを公開する。ここでは、2者間バッチングを説明する。
【0088】
1. 2者間バッチング
待ち行列に登録された大型の支払いは、以下に示すように2者間的にバッチングされる。銀行Aから銀行Bへの大型の支払い注文が待ち行列に登録された場合、銀行Bから銀行Aへの、第1の支払い注文の半分から2倍までの大きさの別の支払い注文が既に待ち行列に登録されていないかどうかがチェックされる。既に登録されている場合には、第2の支払い注文が選択され、第1の支払い注文とバッチングされる。その結果、金額がオリジナルの2つの支払い注文の間の差額である「擬似支払い」となる。この差額は、バッチ内の2つの支払い注文の金額の各々よりも小さいか、または等しいものになることに注意されたい。この擬似支払いの行き先は、高い方の支払い注文の行き先である。
【0089】
擬似支払いが形成されると、利用可能な適切な「第2」支払い注文がなくなるまで、この処理が反復的に繰り返される。各ステップにおいて、擬似支払いの大きさは小さくなっていくか、あるいは最悪の場合にはそのままの大きさに留まる。従って、2者間バッチングの総体的な効果は、公開される支払いの大きさと数を減少させることである。次に、これらの擬似支払いは、以下に説明する多者間バッチングを用いて、上述したような小型支払いとして、または大型支払いとして公開される。システムは、擬似支払いを「公開」する際に、ある1つの取引きにおける擬似支払い内にリンクされたバッチングした支払いを全て公開する。
【0090】
2. 多者間バッチング
多者間バッチングは、フローキャップよりも大きな支払い(および擬似支払い)、さらに、借記および信用貸しキャップよりもずっと大きな支払いの公開手段を提供するべく本発明のシステムにおいて利用される。
【0091】
ある大型支払いが待ち行列に登録されると、2者間バッチングが終了した後に、その待ち行列上にある任意の大型支払いを今公開することができるかどうかのチェックが行われる。
【0092】
銀行Aから銀行Bへの所与の大型支払いPの公開を考慮した場合、通常、このような公開は、銀行Aのポジションをその借記キャップの下に下げ、また、銀行Bのポジションをその信用貸しキャップの上に上げる。そのため、規定の限定内において銀行Aでのネットポジションを生じるために、現在信用貸しポジションにある第3者側の参加者から銀行Aにヘルパー支払いが用いられる。ヘルパー支払いはまず、銀行Aでのポジションのみを考慮して選択される。
【0093】
多者間のバッチの構成の各ステップにおいて、ルート参加銀行Aに下方向に向かう支払いのツリーが存在する。このツリーの1例が図2に示されている。図2については以下により詳細に説明する。例えば、図2の銀行Bのようにツリーのノードにある、入ってくるブランチと出て行くブランチの両方を備えた参加者は、その限度制約を満たす。ツリーのリーフ(末端)ノードは、借記キャップを超えることができる、従って、自身がヘルパー支払いを必要とする参加者である。該ツリー上の、このタイプのヘルプを必要とするあらゆる参加者は、その後、ヘルプが提供されるか、またはツリーを縮小するために削除される。
【0094】
構築が成功すると、以前、信用貸しポジションにあった参加者間の支払いのツリーが得られ、これにより、ツリーにおける参加銀行Aを含む全ての参加者のポジションは規定の借記および信用貸し限度内に収まる。
【0095】
上述のツリーが構築されると、以前、借記ポジションにあった参加者への支払いを用いて、銀行Bにおいて類似した状況を作る試みがなされる。可能であれば別のツリーが構築され、これにより、第2ツリーにおける全ての参加者ポジションが限度内に収まる。この全てが成功すると、一緒に行われた支払いの全てが多者間のバッチを構成し、これが単一の処理において公開される。
【0096】
IV. システムハードウェア
本発明のシステムを駆動するプログラムを実行するためのコンピュータシステムの1例を図1Aに示す。このシステムは、処理機能を実行するCPU31を備えている。また、オペレーティングシステムまたは基本入出力システム(BIOS)の部分のような、CPU31によって実行されるプログラム指示の少なくともいくつかを記憶する読み出し専用メモリ32(ROM)と、データを一時的に記憶するために使用されるランダムアクセスメモリ(RAM)33をさらに備えている。コンピュータはさらに、参加金融機関に配置されたコンピュータのような外部装置との通信を可能にするネットワークインターフェース72を備えている。また、データの記憶を行うためにデータ記憶装置34を備えている。データ記憶装置34は、CPU31への書き込みと読み出しが可能である。データ/アドレスバス37はROM32、RAM33、データ記憶装置34をCPUと接続する。操作者からの入力を受信するために、キーボードを設けることが好ましい。しかし、操作者入力の従来のあらゆる方法を使用することが可能である。また、コンピュータの操作者に情報を伝えるためにディスプレイを設けることが好ましい。
【0097】
V. 帳尻を合わせた公開エンジンの詳細な説明
本発明のコンピュータシステム上で実行されるプログラムは、ある特定の基本的な規準を利用する。
【0098】
1. 各参加者によってプレファンド残高口座に支払われたファンドは、その支払い注文を支払うために使用される。
2. 1参加者の利用可能な残高がマイナス、すなわちゼロ未満のドル(「最小利用可能残高」)になることは許されない。
3. 既述の好適な実施形態においては、初回プレファンド残高要求の2倍の大きさに等しい最大利用可能残高が、各参加者に課される。1参加者の、初期プレファンド残高を含む利用可能残高は、その信用貸し限度を超えてはならない。この上限は、危険を制限するためには必要ないが、発明者が実行したシミュレーションは、このような制限が、システムを十分に機能させる上で必要であることを示した。上述したように、この制限は、1日の会計締め切りの終了に、処理のために除去される。
4. 以下の項目5で述べられる、処理の最高点において、このプログラムは支払いメッセージを「公開する」決定を行う。この時点で、システムは、送信側参加者と受信側参加者の利用可能残高を変更するための指示を発行し、注文の指示を反映する。
【0099】
5. 常に支払い注文をその受信後に公開する代わりに、支払い注文をいつ公開するかについての決定が、本発明の1つの実施形態に従って以下の通りに行われる。
【0100】
まず、入ってきた支払い注文が、「小型」(すなわち、「フローキャップ」よりも少ない、好ましくは、送信側参加者と受信側参加者の初期プレファンド残高の要求金額の少ない方の80%)、または「大型」(すなわち「小型」でない)に分類されされる。その公開が上述の項目2または項目3を違反しないものであるならば、ワークフローのほとんどを有する小型の支払い注文が、即座に公開するべく待ち行列に登録される。待ち行列内への入力は、「先入れ先出し」(FIFO)待ち行列規律のバージョンに従って処理される。しかし、送信側参加者の待ち行列内で最も早い支払い注文は、受信側参加者の待ち行列内でも最も早い支払いよりも早いかもしれないし、そうでないかもしれない。従って、どの支払い注文を最初に処理するかを選択するためにマッチング技術が用いられる。この技術の詳細は、どの支払い注文をどのような順番で公開するかについての効率的なポリシー決定である。このアルゴリズムの詳細な説明を以下に述べる。
【0101】
「大型」支払い注文が、ネッティングされた支払い注文の「バッチ」の1部分として公開される。多者間の、または任意で上述した2者間バッチングについて「ヘルパー注文」となるのに適している場合、1日の処理のほとんどについて、これらの大型支払い注文が「遅延」待ち行列内の最初に配置される。遅延待ち行列を通過した直後に、大型支払い注文が、多者間バッチング手続きにおいてヘルパー支払い注文として包含するのに適したまま維持される。さらに、この支払い注文を2者間バッチの1部として包含する試みがなされる。
【0102】
送信側参加者の利用可能残高がゼロから十分に遠く、受信側参加者の最大利用可能残高が違反されることがない場合、フローキャップよりも大きいが、送信側参加者の初回プレファンド残高よりも小さな支払い注文の、自身によるこの時点での公開が可能である。しかし、送信側参加者の初回プレファンド残高要求金額の160%未満の支払い注文は、2者間バッチングの呼び出しをトリガすることはない。
【0103】
2者間バッチングにおける試みが失敗した場合、支払い注文は、2者間バッチング手続きと多者間バッチング手続きの両方にとって利用可能なヘルパー注文として待ち行列内に残る。さらに、多者間バッチング手続きは、多者間バッチング手続きの各々の「ターゲットの支払い注文」を作成しながら、タイムスタンプ(システムが支払い注文を受信した時間の表示)によって分類された、待ち行列登録された大型支払い注文のリストを走査する。2者間および多者間バッチングの詳細を以下に述べる。
【0104】
A. 2者間バッチング
参加者1から参加者2への大型支払い注文が、2者間バッチングされるべく待ち行列に登録された場合、大型支払い注文は、つい先程待ち行列登録された大型支払い注文の半分から2倍までの大きさである、参加者2から参加者1へ最も早く待ち行列に登録された支払い注文と共にネッティングされる。上述したように、参加者2から参加者1へのネッティング可能な支払い注文の大きさに課せられるこの規制によって、結果として生じる、ネッティングされた擬似支払い注文が、両方のオリジナル支払い注文よりも小さいか、またはこれと等しくなることが保証される。この処理は、参加者2から参加者1への待ち行列または参加者1から参加者2への待ち行列において、参加者1の初回プレファンド残高要求金額の20%の「小型支払いキャップ」よりも大きなネッティング可能な支払い注文が見つからなくなるまで反復的に繰り返される。発明者は、この任意の選択により、効率的なオペレーションを伴う優れたパフォーマンスを得られることを発見した。本発明のオペレーションに2者間バッチングは必要なく、また、このシステムは、本明細書を通じて説明している多者間バッチングと個別公開技術との組み合わせを使用するだけで効率的に機能することができる点に留意するべきである。
【0105】
以下に示す例は、この処理を理解する上で有用である。AとBへの初回プレファンド残高要求金額が両方とも1千万ドルであり、最初はどちらの待ち行列にも何もないと仮定する。次に、AがBに対して1億ドルの支払いを行いたいと思った場合、これは、Aの初回プレファンド残高要求金額とBの最大利用可能残高を超える金額であるため、これをAからBへの支払い注文の待ち行列に記憶しなければならない。同様に、BからAへの8億ドルの支払い注文は、AからBへの注文をネッティングすることなく、BからAへの注文の待ち行列に記憶されなければならない。次に、AからBへの6億ドルの支払い注文が、BからAへの支払い注文とネッティングされ、BからAへの2億ドルの擬似注文が生じ、これは単発の注文として待ち行列に登録される。続いて、この擬似支払い注文が、その前に待ち行列登録されたAからBへの1億ドルの支払い注文とネッティングされる。この一方で、8億ドルと6億ドルの支払い注文が最初にシステムに入力された場合には、これらは即座に単発の2億ドルの擬似支払い注文へとネッティングされ、BからAへの待ち行列に配置される。
【0106】
結果生じた擬似支払い注文が、次に、実際の支払い注文と同一に扱われる。言い換えれば、このネッティング処理によって参加者1から参加者2への擬似支払い注文が生じた場合、これは参加者1の参加者2への支払い待ち行列に待ち行列登録され、また、ネッティング処理によって参加者2から参加者1への擬似支払い注文が生じた場合、これは参加者2の参加者1への支払い待ち行列に待ち行列登録される。また、実際の支払い注文の場合と同様に、送信側参加者の最大利用可能残高または受信側参加者の最大利用可能残高のどちらも超えることがなければ、擬似支払い注文は公開される。
【0107】
B. 多者間バッチング
この手続きは、ネッティング可能な大型支払い注文(上で定義した通り)の2重ツリーを識別しようと試み、これらを1つのバッチとして処理する。この手続きは、「ターゲット支払い注文」として識別された特定の大型支払い注文から開始する。目的は、ターゲット支払い注文とネッティングすることができる「ヘルパー注文」のリストを識別し、これにより、ネット注文が全ての最大および最小利用可能残高規制を満たすようになることである。
【0108】
例えば、ターゲット支払い注文が参加者1から参加者2への金額A12の大型支払い注文であると仮定する。支払い注文が公開された場合、初回プレファンド残高要求金額F1を含む1の利用可能残高のポジションP1はマイナスになるか、または、記号で
P1−A12<0 (1)
となる。
【0109】
しかし、参加者3から参加者1への、金額がA31の別の支払い注文がある場合があるかもしれず、そのため、
2F1≧A31+P1−A12≧0; (2)
となる。
【0110】
言い換えれば、1の利用可能残高がゼロ未満にならないように、利用可能残高を十分に増加させる、「ヘルパー支払い」を1に送信する注文があるということである。多者間バッチングプログラムの第1ステップは、このようなヘルパー注文について1への支払い注文の待ち行列を検索するものであるが、これは、ゼロよりも大きな利用可能残高を持つ参加者の間においてのみ行われる(この制約の説明については、以下を参照のこと)。2つ以上の可能性が見つかった場合には、それ自体がヘルプの最少額を要求する支払い注文が使用される。これらの制約を満たす支払い注文が1つも見つからない場合には、潜在的な残高赤字を部分的に相殺することが可能な最大の支払い注文が使用され、注文、すなわち、他の小型支払い注文と共に増大する。
【0111】
通常の場合のように、選択したヘルパー注文(1つまたは複数)についてP3−A31<0であれば、その支払い注文についてヘルパー注文を探す試みがなされる。すなわち、さらに別の参加者4からの支払い注文が、
2F3≧A43+P3−A31≧0 (3)
等となる。
【0112】
理想的には、各参加者の利用可能残高が最大および最小利用可能残高限度内に留まるようにするために支払い注文の多者間バッチが生成される。そうでなければ、適切なツリーを完成することができない(すなわち、プログラムが「エンプティハンド状態」で終了する)。ゼロよりも大きな(すなわちP>0)利用可能残高を持ったこれらの参加者に、ヘルパー支払い注文の作成を認めると、各ステップで必要なヘルパー注文がより小さくなっていく傾向があり、バッチングの成功を容易にする。これは、1と3の利用可能残高の各々が、A31、A43の各々に必要な大きさを減少させる助けをする(2)、(3)から明白である。
【0113】
P2+A12>2F2、すなわち、銀行2の利用可能残高と、1から2へのオリジナル支払い注文の合計とが2の最大利用可能残高を超える場合、2が待ち行列登録した支払い注文を有する参加者について、できれば、それらの参加者が、待ち行列登録された支払い注文を持つ参加者へとのびる同様のツリーが構築される。
【0114】
上述したように、多者間バッチングの例を図2に示している。図2はターゲット支払いを補助するヘルパー支払いのツリーを示す。この図中で、銀行Aから銀行Bへの、迅速な公開または2者間公開の基準を満たさないターゲット支払いが、どのくらい長く待ち行列内に存在しているかということに部分的に基づいて、多者間バッチングのターゲットとして選択される。太い水平線の上に示されている全ての参加者は、現在、初回プレファンド残高要求金額よりも大きな利用可能残高を持っている。線より下に示されている参加者は、初回プレファンド残高要求金額よりも少ない利用可能残高を有している。
【0115】
利用可能残高をゼロ未満に減少することなく指定された大型支払い注文を送信する上で送信側参加者(A)を補助するべく、ゼロよりも大きな利用可能残高を持つ銀行間の支払いのツリーを構成するために、線より上のヘルパー支払いをグループ化する試みがなされる。支払いの第2ツリーは、最大利用可能残高を超えることなく、指定の大型支払いに応じる上で受信側銀行を補助するために、借記ポジションにある(すなわち、線よりも下にある)銀行間で構成される。
【0116】
ツリーの構成において、相当大型ヘルパー支払いがCからAに示されているが、これは、Bの預金を転送した結果、Aのポジションがその借記キャップを超えないようにするためのものである。Cの利用可能残高がゼロ未満にならないようにするために、Dからの支払いがCに供給される。次に、Dが、銀行E、F、Gからヘルパー支払いを受ける。
【0117】
線の下では、Bにその最大利用可能残高を超えさせてしまう過剰な預金を放出させるために、BからY、Wへの支払いがグループ化され、ここで、Yは、その最大利用可能残高の超過を防ぐために、さらにヘルプ支払いを提供している。
【0118】
図3は、帳尻を合わせた公開エンジンの全体的な処理の流れを示している。この図では、支払いが同時に2つ以上の待ち行列にリンクされることを示すために、待ち行列構造を行列形式で表している。
【0119】
入ってくる支払い注文は、その支払い注文の大きさによって、最初に、複数の待ち行列BILAT、GROUPORDSEND、GROUPORDRECV、DELAY (SYS)、SYSLARGE、SYSSMALL、BILATORDに配置される。図3の説明において、また、本発明の好適な実施形態において、小型支払い注文、すなわち、ドル価値が、送信側と受信側の初回プレファンド残高の少ない方の80%未満である支払い注文が、さらに2つのカテゴリーに細分される。この2つのカテゴリーとは、中型支払い注文、すなわち、初回プレファンド残高要求金額の少ない方の20%〜80%の間の支払い注文と、小型、またはより詳細には「超小型」支払い注文、すなわち、初回プレファンド残高要求金額の少ない方の20%以下の支払い注文である。なお、「小型」という用語は、支払い注文の大きさを示すために「中型」という用語と共に使用され、小型は「超小型」の支払い注文に言及する際に使用される。他方で、小型と大型が説明されている幅広いカテゴリーにおいて、「小型」とは、送信側参加者と受信側参加者の初回プレファンド残高要求金額の少ない方の80%未満の支払い注文を全て指すものである。
【0120】
小型、また、より正確には超小型と特徴付けされた支払い注文は、BILAT待ち行列とSYSSMALL待ち行列の両方に配置される。中型サイズの支払い注文は、BILAT待ち行列、GROUPORDSEND待ち行列、GROUPORDRECV待ち行列、SYSSMALL待ち行列、BILATORD待ち行列に同時に配置される。大型入金支払い注文は、最初、DELAY (SYS)待ち行列、GROUPORDSEND待ち行列、GROUPORDRECV待ち行列、BILATORD待ち行列に配置される。このような支払い注文は全てヘルパーとして使用することができる。最後に、遅延待ち行列を通過した大型支払い注文は、擬似支払いと同様に、GROUPORDSEND待ち行列、GROUPORDRECV待ち行列、SYSLARGE待ち行列、BILATORD待ち行列に配置される。
【0121】
次に、フローチャートに示されている待ち行列について説明する。GROUPORDRECVやGROUPORDSENDのように語尾に”ORD”と付いている待ち行列は全て注文された待ち行列であり、ドルサイズの注文で配置され、最大の支払い注文が待ち行列の最初にきている。その他の待ち行列はFIFO待ち行列である。例えば、BILATORDは、特定の1対の2者間参加者の中型および大型支払い注文のみを記憶する注文された待ち行列である。BILATは、特定の1対の2者間参加者の中型および小型支払い注文を記憶するFIFO待ち行列である。
【0122】
語頭にGROUPが付いた待ち行列は全て、ある特定の参加者の支払い注文のみを含んでいる。この接頭辞の後にSENDが付いている場合には、特定の参加者による支払い注文を含み、また、RECVが付いている場合には、特定の参加者への支払い注文を含んでいる。従って、GROUPORDRECVは、ある特定の参加者への支払い注文を含んだ注文された待ち行列であるのに対し、GROUPORDSENDは、特定の参加者により送信された支払い注文を含んだ注文された待ち行列である。接頭辞SYSは、全ての参加者への支払い注文を含んだ待ち行列を示している。この取り決めに従うと、SYSLARGE待ち行列は、全ての大型支払い注文を含み、SYSSMALLは全ての小型支払い注文を含む。DELAY(SYS)は、最近待ち行列登録された大型支払い注文を全て含んだFIFO待ち行列である。
【0123】
個別待ち行列の機能を、以下に示す表VIでさらに説明する。
【0124】
小型および中型支払い注文(すなわち、フローキャップの80%未満の全ての支払い注文)は、バッチングを要さない公開に適している。この公開は、後に詳細に説明するステップS40に示したゲール・シャプレイのアルゴリズムを用いて実行される。ステップS10に示したように、DELAY待ち行列の長さは連続的にチェックされる。最大DELAY待ち行列の長さが、例えば400支払い注文と設定された場合、別の大型支払い注文を挿入することにより、最も古い支払い注文がDELAYから除去される。適切な遅延の後に、DELAY待ち行列上の支払い注文がSYSLARGE待ち行列上に配置される。
【0125】
上述したように、2者間バッチングは、SYSLARGE待ち行列内のターゲット支払いをBILATORD待ち行列からのヘルパー支払いと組み合わせるために使用することができる。
【0126】
図に示すように、ステップS20において、2者間バッチングが達成可能であると決定されると、ターゲット支払いとヘルパー支払いの間の差額と等しく、2つのうちのより大きな方へと向かう擬似支払いが形成される。形成された擬似支払いは、その大きさによって、適切な1つまたは複数の待ち行列内へ戻される。
【0127】
多者間バッチングは、フローキャップよりも大きな、また、フローキャップよりもずっと大きな大型支払い注文を公開するために使用することができる。図3に示すように、2者間でバッチングすることができないターゲット支払い注文が、ステップS30の多者間バッチングの手続きへと送られる。既に詳細に説明したように、多者間バッチング手続きは、ターゲット支払い注文をヘルパー支払い注文で相殺することにより、支払い注文の1つまたは複数のツリーを構築しようと試みる。図3に示すように、ヘルパー支払い注文は、GROUPORDSEND待ち行列とGROUPORDRECV待ち行列から送ることができる。多者間バッチングが完全に終了すると、全てのバッチングされた支払いがステップS50における単一の処理によって公開される。支払い注文が公開されると、その支払い注文は全ての待ち行列から削除される。図3は、2者間バッチングと多者間バッチングの両方を使用した際の1つの実施形態を示すものであるが、本発明は、多者間バッチング手続きにより、最大の支払い注文でさえ相殺および多者間バッチングすることが可能であるため、2者間バッチングを全く使用することなく、この機能を実行することができる。従って、本発明は、最良の2者間バッチング手続きを含む実施形態に限定されるものではない。
【0128】
VI. シミュレーション結果の再検討
本発明のシステムのシミュレーションと、これによって実施される処理のその実行は、その日のシステム活動が何らかの理由で注目すべきものであったため、または典型的な活動のベースラインを確立するためのいずれかの理由で選択された、様々な日付の取引きデータに基づいて行われる。本発明の好適な実施形態は、例えばCHIPSコンピュータハードウェアとの併用に適しているため、シミュレーションにCHIPSデータを使用した。日付と、その日付の選択理由を以下の表に示す。
【0129】
【表1】
【0130】
使用した実際の処理のクオリティの測定は、公開された、送信されたドルの実際の割合である。上述の日付の各々の結果を、以下の表IIに示す。
【0131】
【表2】
【0132】
これらの結果から、即座に2つの結論が得られる。
1. 公開することができる支払い注文のほとんど全てが実際に公開された。ほとんどの加重を受ける支払い注文は、プレファンドの金額よりもずっと大きく、最も扱いが難しい注文であるため、ドル加重の基準は厳格なものになる。
2. シミュレーションを行ったように、システムは、その「理論上の限度、帳尻を合わせた公開可能ドル、割合」数字に最も近いという意味で、最も量が多い日に最良に動作した。このシミュレーションの経験は、締め切り後の未公開支払いのドルの量が1日のドルの量とほとんど関係ないものであることを示している。そのため、締め切り後の未公開支払いのドルの量は、1日のドルの量が増加すると、1日のドルの量の割合として減少する。「理論上の限度」は、小額のドルの支払いにおいて、各銀行によりドル合計が公開された場合に、既に公開されているドル割合を示すべく設定されている。
【0133】
数字的な実験は、システムの成功の理由を指摘している。ある参加者から別の参加者への支払いが、第2の参加者から第3の参加者への支払いをトリガする傾向などが非常に頻繁に見られる。この点は、6月18日のデータを用いて、まず、各参加者から、また各参加者への実際の支払いをネッティングし、これらの参加者の利用可能残高におけるネットの変更を、無作為に選んだ受信側に支払いを行った場合に生じる変更と比較することにより確立された。一般的な実行において、ポジションの実際の変更は、関連する無作為に行われた変更よりも、数百倍、または数千倍小さくなければ、ほとんど常に数十倍小さい。有利には、これらの支払いパターンは、CHIPSを使用する方法に固有のもののようであるため、このようなパターンへのプログラムの依存性は問題を生じるものであってはならない。
【0134】
しかし、上記の統計は、全てのサイズの支払い、全てのサイズの参加者、1日の全ての時間の平均である。特定の参加者のシステムに対する理解は、参加者の、システムに特定の時間における特定の量の支払い注文を処理させる能力によって決定される。
【0135】
シミュレーション結果の詳細な説明は、ほとんどの個別の参加者は、システムによって集合数の予測とほぼ同様に扱われることを示している。しかし、ある日の終わり、それがたとえ、シミュレーションが示すようにシステムが最良に動作した1997年11月28日であっても、少数の参加者の支払い注文の著しい割合が未処理のまま残った。
【0136】
システムのスループットの特に著しい数値は、シミュレーションでは公開されなかった、各参加者からの支払い注文のドル加重された割合である。例えば、プログラムモデルが1997年3月27日のワークフローを実際に処理したとすると、行ったドル加重支払いの流れの50%より多くがその日の終わりまで待ち行列に残っている参加者は、4つである。これらの参加者は、ABA(アメリカ銀行協会)ナンバーA、B、C、Dによって識別された参加者である。関連する幾つかの統計を以下の表III、表IVに示す。
【0137】
【表3】
【0138】
【表4】
【0139】
システムによって良好に扱われた参加者と、良好に扱われなかった参加者との間の差は、受け取ったドルと送金したドルの割合における顕著な差であると考えられる。無作為に選ばれた上記の4つの参加者を含むほとんどの参加者について、この比率は1に非常に近い。しかし、これは全ての参加者に該当するものではない。このタイプのシステムはこのような不均衡を効率的に扱うことができないのが明らかであるため、この結果によって決定できる限りでは、このタイプのシステムだけが、小額の固定ファンディングの1日の支払い完了性を許容することができる。従って、小額ファンディングによる1日の支払い完了性については、送信および受信注文の不均衡を持った少数の参加者が、その日の終りにこれらの注文の処理が終了するまで待たなければならないという犠牲を払う必要があることが明白である。
【0140】
送信側と受信側の初回プレファンド残高の内の金額の少ない方の80%未満であるという意味で、ほとんどの支払い注文は「小型」である。このような場合に伴う障害は、ゲール・シャプレイのアルゴリズムである。後に説明するように、このアルゴリズムの最悪の場合のパフォーマンスは、システム内における参加者の数の3乗に比例する。
【0141】
シミュレーションは、ほとんどのバッチが単一の支払いしか含まないことを示している(シミュレーションコードが、400,000の支払い注文の全ての処理を30分以内に完了することができるとすれば、1つの注文にかかる時間は0.005秒未満となる。その一方で、支払い注文が400,000あり、午前9時の締め切り前にはログオンしている参加者がいないと仮定した場合、1つの注文に利用可能な時間は0.06秒より大きくなる。
【0142】
大型支払い注文を受信した際にシステムが即座に実行しなければならないのは、この注文を遅延待ち行列に配置することだけであり、これは明らかに障害ではない。支払いは、遅延待ち行列から公開された際に、大型支払い待ち行列と適切な2者間待ち行列に配置される。この作業にかかる時間は、これら待ち行列の現在のサイズにより変化する。待ち行列サイズは、ワークフローの詳細な構成、支払い注文が公開される比率、待ち行列の実施の詳細の複雑な相関関係である。それにもかかわらず、待ち行列オペレーションに必要なのは、その待ち行列の長さに比例するCPU時間程度である。シミュレーションコードにおいて、待ち行列は、待ち行列オペレーションは障害ではないようなので、よりCPU効率的なデータ構造とは逆に、簡単にリンクされたリストとして実現される。これらのより効率的なデータ構造は、実際にはさらにずっと効率的であるため、この領域のさらなる問題を容易に解決することができる。
【0143】
多者間バッチング手続きには、信用貸しポジションにある参加者を含んだツリーと、借記ポジションにある参加者を含んだツリーの構築が必要であり、ここで、信用貸しと借記は、1日の最初のポジションに関連している。モデルコードの実施形態において、ノード毎の金融機関の数と、これらツリーの深さとの両方はハードコードした限度を超えることはできないため、これらを構築するために必要な時間における唯一の変数は、ここでも、待ち行列オペレーションを実行するのに必要な時間である。ツリーの構築における試行の失敗に次いで生じるバックトラッキングの量は、作業全体のかなり一定な割合であると考えられる。従って、他者間バッチングシステムは障害ではないと思われる。
【0144】
この分析は、シミュレーション結果によってある程度限定される。3月31日のワークフローを処理するために必要なCPU時間と、11月28日のワークフローを処理するために必要なCPU時間とは、11月28日の支払い注文が3月31日の支払い注文の4倍以上だったにもかかわらず、大幅に違うということはなかった。
【0145】
このシミュレーションは、各参加者が支払ったプレファンド残高の金額がCHIPS担保口座に現在支払われている担保と等しいと仮定する。しかし、なぜこれが事実でなければならないという理由はない。実際、システム内には担保要求の専断的な設定を妨害するものは何もない。
【0146】
VII. 結論
1. シミュレーション結果は以下の事実を示す。
a. システムは、ほとんど全ての参加者のほぼすべての支払い注文を処理することができる。
b. システムは、量が最も多い日に最良に動作する。
c. 時として、参加者への、または、参加者からの、「送信」および「受信」支払い注文間の不均衡を伴った未公開支払いが連続的に発生する。これは不可避であると考えられる。
【0147】
2. システムの成功は、支払い注文の混合の2つの統計的特徴に基づく。
a. 参加者Aから参加者Bへの支払い注文は、後続する参加者Bから参加者Cへの支払い注文を作成することが多いようである。
b. 支払い注文のほとんどは、最大の参加者によってなされる。
【0148】
3. ゲール・シャプレイのアルゴリズムを介した支払いの公開には、より簡単なアプローチと比較して3つの利点がある。
a. 2者間の待ち行列に小型の支払いを保持し、現在どちらの参加者が公開可能な支払いを持っているかを識別するためにビットマスクを使用することにより、公開すべき最も古い支払いを見つけるために必要なプロセッサ時間が大幅に短縮される。
b. ゲール・シャプレイのアルゴリズムは、以下で定義している意味において、支払いのバッチを、「ほぼバラバラな状態の(nearly disjoint)」送信側/受信側の対に識別することができる。一般に、支払いを公開する決定は、同時に公開されているその他全ての支払いの効果を考慮されなければならない。そうでなければ、ある1つの支払いの公開によって、第2の支払いが公開された際にファンディング制約を犯してしまうことになりかねない。これは、第2の支払いが隔離状態で公開されていた場合にファンディング制約を侵していなくても、起こる可能性がある。しかし、バラバラな状態の送信側と受信側のバッチにとって、これは明らかに問題ではない。実際、参加者が厳密に1つの支払いを送受信できる「ほぼバラバラな状態」は、問題を回避するのに適している。これは、ファンディング制約を犯すことなく、所与の支払いを送ることができるか、または、所与の第2支払いを受信することができる参加者は、これらの支払いを、ファンディング制約を侵すことなく送受信できるためである。
c. バッチ内の複数の支払いを個別且つ連続的に公開するのではなく、支払いのほぼバラバラな状態のバッチを一度に公開することにより、システムのスループットが向上する。これは、複数の支払いの公開後の処理を、異なる参加者の支払いシステムによって並行して行うことができるためであるが、どの支払いを公開するかの決定は固有の直列処理である。
【0149】
4. 上述を仮定し、発明者は、本発明のシステムは、最新フォームのCHIPSと共に実現することができると結論付けている。
【0150】
VIII. 修正されたゲール・シャプレイのアルゴリズム
本発明のシステムで使用するこのようなアルゴリズムの必要性についてはVIIの3項において説明した。次に、この特定のアルゴリズムのパフォーマンス上の特徴について述べる。特に、このアルゴリズムは、先入れ先出し(FIFO)待ち行列規律の自然な一般化であることが示される。
【0151】
タイムスタンプが独特であるため、すなわち、支払い注文が受信された時間はその支払い注文だけのものであるため、従来は全体を通して1つだけを使用していたが、支払い注文とそのタイムスタンプを相互変換可能に使用できる。そこで、スケジューリングの目的で、必要な追加情報は、参加者のセットIIからの参加者P1、P2、P3、P4についての、表Vに示すものと類似した行列だけである。横列に示す参加者は送信側であり、縦列に示す参加者は受信側である。記入されている数字は、「公開可能な支払い注文」のタイムスタンプであり、記載の送信側から受信側への仮説的な支払い注文の最初のものは、プレファンドまたは信用貸し制約を満たす注文である。タイムスタンプの記載がなく空白になっているボックスは、その送信側受信側の対に対しての支払いがなかったか、または、この対に対する第1支払い注文が公開不可能であったかのいずれかである。
【0152】
【表5】
【0153】
既に述べたように、これらの支払い注文の2つ以上を同時に公開することが可能であり、また、そうするべきである。しかし、各参加者がバッチについて多くても1つの支払いを送信および/または受信すべき支払い注文の「ほぼバラバラな状態」のバッチのみを、ファンディング制約を再計算することなく、処理することができる。このほぼバラバラな状態では、行列内に支払い注文を示したタイムスタンプが選択され、1つの横列につき最大で1つのセルを、また、1つの縦列につき最大で1つのセルを占めることが必要である。さらに、どの支払い注文も、行列の対角線上のセルと関連することはできない。これは、このような対角線セルは、自身に支払いを送信する参加者と関連しているためである。
【0154】
タイムスタンプ行列内の対角線セルのみが空白である特別の場合において(すなわち、任意の送信側参加者が、任意の受信側参加者への公開可能な支払い注文を有する場合)、所定のバッチ内に含まれる注文の選択として、送信側の設定を受信側の設定の上にマッピングする機能の選択を見ることができる。このような機能の各々は、整数1、2、…、Nの混乱を表す。この機能は、これら整数の置換であり、どの整数もそれ自体にマッピングされることができない。大型Nの限度内にはN!/eという混乱があり、ここでe=2.718(自然対数のベース)である。この数量は、Nの増加に伴って非常に急速に増加する。例えば、N=10である時には既に約130万になっている。
【0155】
幸いにも、このタイプに特有の問題、すなわち「結婚問題」への明快な解決法が、D. GaleとL.S. Shapleyによる”American Mathematical Monthly”の1962年1月号に記されている。ゲール・シャプレイのアルゴリズムとして知られている彼らのアルゴリズムは、それぞれ男性、女性の好みを与えた男性Nと女性Nとを結婚したカップルとして1組にする。このアルゴリズムは、男性と女性のそれぞれの好みを与えられているが、実生活では、特定の男性が最も結婚したいと思う女性が必ずしも他の男性ではなくその男性と結婚するとは限らない。この問題を解決するべく、該アルゴリズムは以下のように進行する。
【0156】
1. 複数の男性が、最も望ましい配偶者から最も望ましくない配偶者へと、順番に求婚しながら下方向へ向かって進んでいく。
2. 求婚された女性は、求婚者として見た目が好ましい男性を意のままに操るか操らないか(「多分状態」)に従って、「ノー」または「多分」のどちらかを各々の男性に答える。女性に「ノー」と言われたら、その男性は他の女性に求婚することができる。女性に「多分」と言われたら、その男性は、他の女性に求婚することができない。女性が、別の男性を待たせておきながらも、新しい男性に「多分」と答えた場合、その待たせておいた男性にさらに「ノー」と答えなければならない。
3. 求婚が全て終わったら、各々の女性は、まだ「多分」状態においたままの男性に「YES」と答える。
【0157】
この結果生じるカップルは、以下に示す望ましい特性を備える。
1. 彼らは、お互いに指定された配偶者を好ましいと思う「不義」な男性・女性のカップルは生じ得ないという意味で「安定」している。当然、男性が自分の妻よりも別の女性を好ましく思った場合には、ゲール・シャプレイのアルゴリズムは、彼が妻に求婚する前に、他の女性に求婚して失敗していると保証する。
2. 彼らは、他の安定した対を望む男性はいないという意味で、安定した対の中でも「最適」である。
【0158】
支払い送信側と支払い受信側の対の支払いの問題は、出版されているゲール・シャプレイのアルゴリズムから、以下の方法で異なる。
1. アルゴリズムは、女性の手を「競る」のは男性であるが、送信側または受信側のどちらが競るべきかは明白ではない。
2. 各参加者は、支払いの送信側と受信側の両方になることができ、従って、「競り手」と「売り手」になることができる。そのため、参加者は、互いに結婚することができない兄1人、姉1人を含んだファミリーに類似している。所定の銀行が送信者として最高1回現れ、また、受信者として最高1回現れる支払いの1組が、これ以降、ほぼバラバラな状態と呼ばれる。
3. 所定の存在は、所定の場合において売り手または競り手でなくても構わない。
【0159】
それにもかかわらず、このプログラムコードは、ゲール・シャプレイのアルゴリズムの以下に示すバージョンを実現する。このバージョンの最適性特徴について、簡潔に探求する。
1. このアルゴリズムを交互に呼び出しながら、送信側と受信側は競り手として指定される。この交互スキームは、プロセッサ効率を増加するための、後に述べる特徴の1部である。この特徴は、SENDERSTATEおよびRECEIVERSTATEビットマスクを使用する。
2. 各々の競り手によってなされたこの競りは、以下に示す公開支払い注文の中で、最小のタイムスタンプを有する支払い注文を見つけることにより決定される。
a) 競り手が適宜、送信側または受信側である2者間待ち行列の先頭に現れる 支払い注文。
b) 前回拒否された競りに関係していない支払い注文。
【0160】
発行されたアルゴリズムにあるように、関連する「売り手」は、その競りが売り手の最初の競りであるか、または現在の競りよりも向上されたものである場合、その競りを一時的に受ける。そうでなければ、その競りは拒否され、この時点で、競り手は再び自由に競りを行うことができる。
【0161】
全ての競り手が1人の売り手と一致したか、または残っている全ての競り手について一致するものがなかったために、全ての競りが終了した場合、一時的な指定が決定的になる。
【0162】
例として、表Vに見られる行列を考慮する。送信側が競る場合、その理由は各々の横列に沿って(水平な線で印されている)最も早いタイムスタンプを備えた支払いを行うためである。受信側が競る場合、その理由は、各々の縦列に沿って(垂直線で印されている)最も早いタイムスタンプを備えた支払いを行うためである。
【0163】
競りは以下のように進行する。
送信側の競り
1. P1が、P3への支払いを送信するために競りを行い、これがP3によって「多分状態」に置かれる。
2. P2が、P1への支払いを送信するために競りを行い、これがP1によって「多分状態」に置かれる。
3. P3が、P4への支払いを送信するために競りを行い、これがP4によって「多分状態」に置かれる。
4. P4が、P3への支払いを送信するために競りを行う。この支払いは、P1からP3への支払いのタイムスタンプよりも早いタイムスタンプを有するため、P1からP3への支払いが落とされる。
【0164】
第2ラウンドにおいて、P1はP2へ送信するために競りを行い、P2はこれ以外の競りを受けない。
【0165】
従って、公開された支払いは2→1、3→4、4→3、1→2となる。4つの参加者全てが支払いを送信し、受信する。
【0166】
受信側の競り
反対に、受信側が競る場合には以下のようになる。
1. P1は、P2からの支払いを受信するために競りを行い、これがP2によって「多分」状態に置かれる。
2. P2は、P1からの支払いを受信するために競りを行い、これがP1によって「多分」状態に置かれる。
3. P3は、P4からの支払いを受信するために競りを行い、これがP4によって「多分」状態に置かれる。
4. P4は、P3からの支払いを受信するために競りを行い、これがP3によって「多分」状態に置かれる。
【0167】
従って、公開された支払いは2→1、1→2、4→3、3→4となる。これは、送信側の競りで得た際の支払いの組と同じであるが、この場合は、競りの第2ラウンドは必要ない。なぜ同じ組を得るのかは後に説明する。
【0168】
アルゴリズムは、最大で0(N3)ステップで終了しなければならず、ここで、Nは参加者の数である。これは、アルゴリズム自体の性質からきている。
1. 各々の競りは、最大でN個のタイムスタンプを調べることにより決定される。
2. 各競り手につき、最大N個の競りが存在する。
3. n個の競り手が存在する。
【0169】
各売り手につき最大で1つの競りを受けることができ、各競り手が1度に最大で1つの競りを行うことができるため、このアルゴリズムがほぼバラバラな状態のバッチを生成することが容易にわかる。
【0170】
改良したゲール・シャプレイのアルゴリズムは、「先入れ先出し」(FIFO)処理の一般法則化であり、その特性は、発行されたアルゴリズムの「安定性」と類似している。このFIFO一般法則化の正確な性質は以下に示すとおりである。
【0171】
定義: T0を現在公開可能な支払いの組とする。バッチRに含まれていない各々の支払いT0の内のtpqについて、送信側pがそのバッチ内のより早い支払いを有するか、または、受信側qがそのバッチ内のより早い支払いを有する場合、支払い注文のほぼバラバラな状態のバッチR、T0のサブセットは一般法則化されたFIFOである。
【0172】
そこで、以下のことが得られる。
定理: tijを、送信側Iおよび受信側jに関係する公開可能な支払い注文の(独特な)時間スタンプとし、T0を、全ての現在公開可能な支払い注文の組、または同等に、全ての可能なtijの組とし、R⊂T0を、実際に公開するべく選択された支払い注文のタイムスタンプの組とする。すると、Rは一般法則化されたFIFOとなる。
【0173】
証明: 受信側が競り手である場合には、最も明白な方のみにおいて推論を変更する必要があるため、送信側が競り手であると仮定する。T0とRがこの推論仮定内にあるとする。Rが一般法則化されたFIFOであることを証明するために、tpq はT0内にあるが、R内にはないと仮定する。以下の2つの場合が可能である。
(1) 送信側pは、受信側qへの競りを絶対に行わない。次に、アルゴリズムにより、pは任意の受信側jと共に「多分」状態にあるはずである。しかしこれは、tpj<tpqであることを意味する。
(2) 送信側pは、その競りのある時点で受信側qを競る。すると、tpqは、その待ち行列の先頭にあるため支払い競りであるということになる。qは、もっと良いもののためにこの競りを拒否しなくてはならならず、これにより、qはより良いオファーtjq<tpqを得たか、あるいは後に受けなければならないことが明白である。
そのため、一般法則化されたFIFO条件が満たされる。
【0174】
競り手に発行されたアルゴリズムの最適特性は、以下に示すように改良されたアルゴリズムが適用され続ける。
定理: 競り手の支払い注文が、一般法則化されたFIFOバッチを生じる他のアルゴリズムを用いるのと同様に、少なくとも改良したゲール・シャプレイのアルゴリズムを用い次第すぐに公開される。
見解: ここでの「一般法則化されたFIFO」はゲール・シャプレイの論文の「安定の指定」と関連するため、この定理は、アルゴリズムから生じた指定が競り手にとって最適であるという、その結果からの直接的推論(corollary)である。各々の使用において、これが真実であることの証明は、帰納法によるアルゴリズムの一連の使用の証明にまでおよぶ。
【0175】
ゲール・シャプレイの論文にあるように、男性と女性をマッチングする場合、各人が独自の方法で異性の人達をランク付けする。この状況において、論文にあるように、男性が競りを行った結果生じる安定した指定は、女性が競りを行った結果生じる指定とは異なる可能性がある。しかし、ここで、全ての送信側と全ての受信側が、2者間待ち行列の先頭にある支払いタイムスタンプに基づいて、お互いをランク付けし、古い支払いを最近の支払いよりも高いランク付けすることについて詳細に述べた。この状況において、最大限の安定した指定はたった1つしかないことがわかった。従って、ゲール・シャプレイのアルゴリズムは、送信側が競ろうと、受信側が競ろうと、この同じ指定を常に見つけなければならない。ここでは、この主張を証明しないが、これは難しいものではない。ゲール・シャプレイのアルゴリズムを用いない、独特な最大限の安定した指定の直接的な構造のみについて述べている。この構造を用いれば、証明の詳細を提供することは難しくない。
【0176】
T0を、特定の時間において公開可能な支払いの組とする。各支払いは、2者間待ち行列の先頭にあるため、T0内の2つの支払いが同一の送信側と受信側によるものであることはない。T0は空白でないと仮定する。(S0、R0)を、T0における最も早く支払いであるとし、ここで、S0は送信側を示し、R0は受信側を示す。
【0177】
次に、Tkと(SkRk)が、あるkについて定義されたと仮定する。Tk+1について、以下のようにすすめる。Tk+1を、Tk内に存在する、送信側としてのSk、または受信側としてのRkを持つ支払いを除いた全ての支払いの組であるとする。すると、Tk+1が空白である場合には停止する。そうでなければ、(Sk+1、Rk+1)を、Tk+1内の最も早い支払いとして、この後を続ける。
【0178】
独特な最大限の安定の指定は、そのように選択された全ての支払い(Sk、Rk)から成る組である。
【0179】
(S0、R0)は、T0内の最も早い支払いであることに注意されたい。そのため、(主張が請求の通りに正しいと仮定すると)ゲール・シャプレイのアルゴリズムは、最も古い公開可能な支払いを常に見つける。これが、本発明にゲール・シャプレイのアルゴリズムを使用する主な理由である。これは、この最も早い支払いを見つけるための効率的な方法を提供する。支払いのシステム待ち行列全体を通る1つの単純なループが最も早い公開可能な支払いを探している場合、この検索は長い時間かかるかもしれない。2者間待ち行列をゲール・シャプレイのアルゴリズムと共に使用することで、同様のことをずっと迅速に達成することができる。
【0180】
IX. UNISYS ALGOLにおけるプログラムモデルの実現の書類
このセクションでは、プログラムモデルの実現の主な入力、内部変数、処理ステップについて説明する。ここでは、機能の公開を実現するコードのこのような部分についてのみ述べる。モデルコードの説明は本発明の好適な実施形態に関連するが、本発明が説明した実現に限定されることはない。
【0181】
第1に、入力および処理ステップの概要について述べる。第2に、様々な待ち行列の実現方法について、また、INSERT手順がどのようにそれらを占領するかについてより詳細に説明する。第3に、MAKEBILATERALBATCH、2者間バッチング手順、多者間バッチング手順、CHECKBATCHES、BATCHRELEASEABLE、CHECKSENDPAYMT、CHECKRECVPAYMTがどのようにそれぞれのバッチを作成するかについて説明する。第4に、そして最後に、BATCHRELEASE(多者間バッチング用)とRELEASEBILATERALBATCH(2者間バッチング用)、またはGALESHAPLEYとRELEASELOOP(単発の支払い注文のためのもの)のいずれかによって、処理ために、支払い注文がどのように公開されるかについて説明する。
【0182】
A. 概観
各支払い注文は、記録として入力され、公開時間によって記憶され、
・ 送信側参加者用のコードと、
・ 受信側参加者用のコードと、
・ 処理のために支払い注文が公開された時間をマーキングするタイムスタンプ、またはSSN(システムシリアル番号)と、
・ 量と、から成っている。
【0183】
これらを入力し、支払い注文の処理は、以下に示す擬似コードと同様に進行する。
READ collateral amounts FROM collateral file, SORTING BY ABANumber IF NOT ALREADY SORTED
notfinal ← TRUE
WHILE NOT END−OF−FILE (payment order file) OR notfinal
% 入ってくる支払い注文を処理するためにここをループする。
READ payment order FROM payment order file
IF NOT END−OF−FILE(payment order file) THEN INSERT payment order INTO queues
% 注意: 以前に待ち行列登録した支払いを備えた任意の2者間バッチングは、挿入処理の1部として行われた。2者間バッチングは、丁度読み出したばかりの注文の1/2〜2倍の大きさの待ち行列上の支払い注文が既に存在する際にのみ可能である。さらに、シミュレーション時間は、支払いの時間に改善された。
ELSE
notfinal ←FALSE
no_credit_limits←TRUE
empty delay queue
% 相殺の後、信用貸し限度制約が除去される
END IF
IF largeflag THEN
% すなわち、支払い注文> 今読み出した注文のための0.8*プレファンド金額
IF checkbatches THEN
% 大型支払い注文が多者間バッチ1部として公開されると、TRUEになる手続きチェックバッチが、同じ名称のブールを戻す。これにより、大型支払いがまだ未処理であることを示す大型フラグが、以下のようにリセットされる:
largeflag: = FALSE
END IF
If largeflag OR small_payment OR no_credit_limits THEN DO
% 現在公開可能な支払いをループオーバーする。no_credit limits is TRUEである場合、他の公開可能な支払いがあるかもしれない。ブールは大型フラグを定量化し、新規の支払いが大型であるか否かによって、INSERT手順においてsmall_paymentがtrueに設定される。
IF small_payment THEN
IF try_to_release THEN
% 全ての小型支払いを公開する際のみにtry_to_releaseがTRUEを戻す。
small_payment : = FALSE
END IF
END IF
IF no_credit limits THEN
IF NOT checkbatches THEN
small_payment : = TRUE
END IF
UNTIL small payment = FALSE
END WHILE % 注文ファイル内のループオーバー支払い注文の終り
FINALRELEASES % 1日の最後に、待ち行列上に残っている支払いを公開する
PRINTSUMMARY % シミュレーションの結果を印刷する
PMT Data Structure,Queue Operator, and theINSERT Procedure
【0184】
上述のコードスケッチが示すように、支払い注文を処理する上で重要な最初のステップは、待ち行列を適切に設定することであり、INSERT手続きで実行されたタスクである。表VIと付属の注意書きは、この待ち行列を詳細に説明する。
【0185】
ALGOLは順序配列をサポートするだけなので、これが、待ち行列が完全に実現する方法である。しかし、実現の詳細は、標準の待ち行列オペレーションを実行するDEFINE'sによって、これら待ち行列を用いる手続きから注意深く隠されている。従って、この手続きは、これらの待ち行列を、先頭と末尾に個別に維持された標準のダブルリンクリストとして扱うことができる。しかし、中間ノードを挿入または削除するのに適切であるようにオープン状態であり、その他はFIFOであるため、待ち行列のいくつかは注文されている。
【0186】
その下にある、全ての支払い待ち行列のための配列は、以下の宣言を有する。
ARRAY PAYMENTQUEUE [0:999000]
これは、ベーシックDEFINEによって参照され、
DEFINE
PAYMTSZ = 9 #
,PMT (LINK,I) = PAYMENTQUEUE [PAYMTSZ*(LINK)÷(I)] #
【0187】
これは、サブスクリプトLINKによって参照することができる、待ち行列ノード、9ワード(1ワードにつき48ビットを有する)の各々を作成する効果を持っている。その他のサブスクリプトIは、待ち行列を、実際に使用された際に取り扱うDEFINE'sの次のレベルにのみ使用される。
例えば、次のようである。
DEFINE
SNDR (LINK, PMT) = PMT [LINK, 0]. [47:12] #
【0188】
これは送信側の待ち行列のDEFINEであり、ノードの第1ワードの47を介してビット36(すなわち47−12+1)を割り当てる(ALGOLインデックスは、一般に0で始まり、表記”.[47:12]”は、ビット47を有する12ビット、すなわち最大のビットを最初の(または左端の)ビットとして特定するためのUnisys ALGOL慣用である)。その他の待ち行列用の、これと類似したDEFINEが存在し、その結果、表VIに示す割り当てが得られる。
【0189】
【表6】
【表7】
【0190】
ノードは、PMT配列内の現在使用されていないポジションを、その論法LINKにおいて戻すGETSYSLINK DEFINEによって追加される。過去に使用されたことのある全てのポジションが現在もまだ使用されている場合には(すなわち、AVAILLINK=0)、GETSYSLINKは、PMT配列内の第1空白ポジションにLINKを設定するだけでよい。GETSYSLINKは、現在使用中の最終リンクであるLEFTOFFLINKを増加することにより、この設定動作を実施し、以下を代入するだけでよい。
LINK ← LEFTOFFLINK
【0191】
そうでなければ、GYTSYSLINKは、AVAILLINKで示されるPMT配列内のポジションにLINKを設定する。
【0192】
ノードは、その論法LINKによって示されるPMT配列内に該ポジション内の全てのワードを0に設定するFORGETSYSLINK DEFINEによって、この構造から削除される。代入は以下の通りである。
SYSLINCK(LINK) ← AVAILLINK
AVAILLINK ← LINK
【0193】
表VIIIに示すように、基本待ち行列のオペレーションの各々は、基本DEFINEによってサポートされている。この表において、LINKは、上述のデータ構造内のノードへの基準である。NEXTLINKとその次のリンク基準は、DEFINEが実際に使用される際に置き換えられる仮パラメータである。例えば、SYSINSERTは、未処理の支払い注文全ての待ち行列(SYS待ち行列)内にリンクを挿入するためにINSERTDEFを呼び出すDEFINEである。SYSINSERTがINSERTDEFを呼び出すと、NEXTLINKがSYSLINCKと置き換えられ、INSERTDEFにおける基準、例えばNEXTLINK (LINK, PMT)がSYSLINCK [LINK, PMT]と置き換えられ、次いで、上記のように、PMT[LINK, 3]. [47:24]等と置き換えられる。これらのDEFINEが呼び出されると、1つまたはそれ以上のALGOL文が、仮パラメータQNONEMPTYとQEMPTYで代用される。名称が示すように、QNONEMPTYは、待ち行列が空白でなくなった際に実行される文で代用され、また、QEMPTYは、待ち行列が空白になった際に実行される文で代用される。
【0194】
【表8】
【表9】
【0195】
これらのDEFINEは、特定の待ち行列について、関連する待ち行列の先頭、末尾等を用いることによってカストマイズされる。例えば、BILATORDINSERTは、以下のようにORDINSERTを呼び出す別のDEFINEである。
ORDINSERT (NEWLINK, PMT, BILATORDLINK, BILATORDBACKLINK, BILATORDHEAD (SGRP, RGRP), BILATORDTAIL (SGRP, RGRP), QNONEMPTY, LINK1, DAMT, TEMP);
【0196】
INSERT DEFINE’sは、プログラムによって直接使用されるが、REMOVE DEFINE’sは全て、REMOVEルーチンにおいて呼び出される。REMOVEは、2つのパラメータ、すなわちLINKとQFSと共に呼び出される。LINKは、除去するノードの場所であり、QFSは、どの待ち行列LINKが除去されるべきではないかを示すフラグのビットマスクである。QFLAGS (LINK, PMT)は、ノードが属する待ち行列を示す支払いノードの各々におけるフラグのビットマスクであることを思い出されたい。従って、除去すべきLINKを含む待ち行列は、QFLAGS (LINK, PMT)とNOT QFSのビットワイズANDであるQFLAGBの関連するビットである待ち行列であり、すなわち、
QFLAGB: = BOOLEAN (QFLAGS (LINK, PMT)) AND NOT BOOLEAN (QFS);
である。
【0197】
QFLAGS (LINK, PMT)も更新する必要があることが明らかである。これは、 LINKのQFLAGSビットを、QFS内のFALSEである偽に設定することで行える。すなわち、
QFLAGS (LINK, PMT) : =
REAL (BOOLEAN (QFS) AND BOOLEAN (QFLAGS (LINK, PMT)));
となる。
【0198】
フラグ代入を表VIIIに示す。
【表10】
【0199】
従って、QFS = ”C1”ヘックスを有するREMOVEを呼び出すことにより、SYSQUEUE、SYSSMALLQUEUE、SYSLARGEQUEUEを除く全ての待ち行列からノードが除去される。しかし、ノードは、FORGETSYSLINKが呼び出されない限りPMT配列から消去されることはない点に注意されたい。これは、QFSのサインビットがFALSEに設定された場合にのみ起こる(すなわち、浮動小数点数として解釈された場合、QFSは正である)。
【0200】
支払い注文は、まず、以下の文を介してモデルを入力する。
WHILE NOT (EOR : =READ (SORTEDPAYMENTSIN, 3, REC))
【0201】
このコードフラグメントは、SORTEDPAYMENTSINから3ワードを読み出そうとするとファイルの終端状態になるかどうかによって、BOOLEAN変数EOFをTRUEまたはFALSEのいずれかに設定する。そうでない場合には、各々が6バイトのこれらの3ワードは、RECに記憶される。
【0202】
新規の支払い注文を待ち行列に挿入する処理は、以下に示す手続き呼び出しで始まる。
FORMATPAYMT (REC, PAYMT):
【0203】
この手続きは、支払いデータを、上述したタイプの待ち行列ノード内にRECに記憶されているように再フォーマットする。PAYMTは、ノードの一時的な記憶に使用される9ワードのグローバル配列である。各々がHEXディジット(HEX digit)である、入力記録内の個々のフィールドは、RECをHEX配列と等しくするアドレス、RECHによって読み出される。
【0204】
INSERT自体が扱う第1のタスクは、GETSYSLINKを呼び出すことにより、一番最近処理された支払いのための恒常的な場所の作成である。RECEIVERSTATEビットとSENDERSTATEビット、フローキャップと小型キャップを設定すると、INSERTはシミュレーション時間を支払いのシミュレーション時間へと進める。
【0205】
先行の支払いがDELAYQUEUE上に押しやられることで、最大サイズを超えてしまうケースがある。ある日の午前中には、この最大サイズは定数MAXDELAYQLENGTHであるが、シミュレーション開始の数秒後にBEGINSHRINKQSECONDSがシミュレーションされると、この最大サイズは、BEGINSHRINKQSECONDSから、経過したシミュレーション時間間隔の小数部と比例して縮小する。これは、以下に示す擬似コードと等しい、複雑なループ状態(すなわち、状態がTRUEである場合にのみ、ループが継続する)を持つWHILEループを介して、コード中には現れない変数multを用いて実現される。
IF delayqueue is empty
THEN condition ← FALSE
ELSE
IF current time < time to begin shrinking delayqueue
THEN mult ← 1
ELSE IF current time > time to stop shrinking
Delayqueue
then mult ← 0
ELSE
mult ← fraction of period to shrink delay queue that has elasped
END IF
IF delayqueue length > predetermined maximum *
mult THEN condition ← TRUE
ELSE
condition ← FALSE
END IF
END IF
【0206】
ループの本体は以下のステップを備えている。
1. 遅延待ち行列の長さを減少するステップ
2. 遅延待ち行列の先頭に支払いを出し、これを、支払いサイズによって順序付けられた大型支払い待ち行列と適切な2者間待ち行列上に配置するステップ。大型支払いのみが第1場所の遅延待ち行列上に配置されることに注意されたい。
3. 「出された」支払いのサイズが十分に大きな場合には、MAKEBILATERALBATCHを呼び出すことにより、これを2者間バッチ内に含む試みがなされるステップ。「大型支払い」は、送信側参加者と受信側参加者の内の初回プレファンド残高の小さい方の80%と定義されるが、これらの支払いは、その初回プレファンド残高の少なくとも160%でなければならない。
【0207】
遅延待ち行列から出される必要のある支払いが全て処理されたら、今呼び出している支払い注文を処理することができる。図3を参照して上述したように、支払い注文は、小型と大型に幅広く分類されることができる。すなわち、小型は、好ましくは初回プレファンド残高要求金額の小さい方の80%未満であり、大型は、すなわち小型以外のものである。しかし、本発明者は、フローキャップの80%未満の「小型」支払い注文のカテゴリーを、さらに3つのカテゴリー、「小型」または「超小型」(初回プレファンド残高要求金額の20%またはそれ未満)、中型(初回プレファンド残高要求金額の20〜80%の間)、大型(初回プレファンド残高要求金額の80%よりも大きな金額)に細分することが有利であることに気付いた。これらの関連で言えば、中型は、前述で定義した「小型」カテゴリーのサブカテゴリーであることに注意されたい。このモデルコードにおいて、上述した小型のサブカテゴリーである中型支払いと、大型支払いは、多者間バッチングのためのヘルパー支払いとしての使用に適切しており、また、この目的のためにGROUPORDSENDQUEUEとGROUPORDERCVQUEUE内に挿入される。さらに、中間および大型支払いはSYSLARGEQUEUEとBILATORDQUEUE内にも挿入され、ここで2者間バッチングのためにも使用されることが可能である。支払いがフローキャップよりも大きい場合(すなわち、「大型支払い」である場合)、そのように示され(LARGEAMOUNTビットが設定される)、DELAYQUEUE内に挿入される。大型支払いは、DELAYQUEUEから公開されるまでターゲット支払いとして処理されないので、LARGEFLAGは設定されないことに注意されたい。
【0208】
A. 2者間バッチと多者間バッチの作成方法
1. MAKEBILATERALBATCH、2者間バッチルーチン
MAKEBILATERALBATCHのタスクは、BILATORDQUEUE上にLINKで示されおり、「非小型」(つまり、中型または大型)支払いである現在の支払いを用いて、2者間バッチの作成を試みることである。LINK1と、現在の支払いの半分から2倍までの大きさの、最小のSSNを備えた反対方向にある支払いとを見つけるために、BILATORDQUEUEの先頭からリンクに従ってチェックが行われる。このような支払いが見つからない場合には、そのアルゴリズムはMAKEBILATERALBATCHフラグをFALSEのそのデフォルト値から変更することなく終了する。LINK1が見つかった場合には、LINK1とLINK内の量がネッティングされ、そのネット支払いが反対方向にある際には送信側と受信側が逆転する。次に、検索は、その待ち行列上の、LINKおよびLINK1のネット量の半分から2倍の大きさの第2支払いについて繰り返され、続いて、結果と共にネッティングすることが可能な、その待ち行列上の第3支払いについても繰り返される。このような支払いが見つかると、制御がラベルAGAINにループバックして再挑戦する。見つからない場合には、制御はラベルXITへ進む。
【0209】
各ネッティングが通過すると、ネッティングされるその支払いはその待ち行列から除去され、擬似支払いのPSEUDOQUEUEに追加されなければならない。最初のネッティング通過(HAVEPSEUDO = TURE)については、新規のPSEUDOQUEUEを開始する必要がある。この待ち行列の構築の第1ステップは、PSEUDOLINKの作成することであり、新規リンクはGETSYSLINKを介して作成され、また、この支払い範囲が、実際に、2者間バッチの開始点であることを示すために、PSEUDOLINKで示された支払い範囲内に適切なエントリを設定することである。これは以下の処理を含む。
1. TRUEの擬似支払いにBILATERALBATCHフラグを設定する。
2. 過去に1度も使用されていないリンクがすでにゼロに初期化されているために、擬似支払い内のPSEUDOHEADとPSEUDOTAILをゼロ、すなわち防御基準(defensive measure)に初期化し、FORGETSYSLINKが「再請求された」リンクをゼロに再初期化する。
3. 現在の支払い(LINKにあるもの)をSYSLARGEMEDQUEUE内のPSEUDOLINKと置き換える。しかし、PSEUDOLINKはネッティングされた情報を含んでいるため、LINKは、その送信側、受信側用、量的な情報のために保持される必要がある。したがって、リンクは、REMOVEルーチンを介して、全ての待ち行列から除去される。これにより、LINKにある支払いが、多者間バッチルーチンまたは公開ルーチンのいずれにも確実に利用不可能になる。支払い公開の優先順位、すなわち一番最初を決定するためにSSNが使用されるため、また、擬似支払いのSSNはその擬似待ち行列内の最小の支払いのSNNとなるため、このような支払いの各々は少なくとも過去にバッチングされた順番と同じ優先順位が付けられる。
4. PSEUDOQUEUEにLINKを追加する。
上述したステップのサブセットは、その2者間バッチに含まれる後続の支払いについても実行される必要がある。支払いのSSNが、PSEUDOLINK内のSSNの現在の金額よりも低い場合には、PSEUDOLINKはSYSLARGEQUEUE内でLINK1の代わりをする必要がある。次に、LINK1は、前と同様に、REMOVEと同種の呼び出しを介してその待ち行列から除去される。そうでない場合は、どの待ち行列上にもLINK1を保持する必要はないので、REMOVEがQFS = 0と共に呼び出される。言い換えれば、REMOVEは、FORGETSYSLINKの呼び出すことなく、全ての待ち行列からLINK1を除去する。次に、LINK1は、PSEUDOINSER DEFINEを介してPSEUDOQUEUEに追加される。
【0210】
最終的にXITラベルに達すると、擬似支払い(すなわち、HAVEPSEUDO = TRUE)がある場合にはクリーンアップ作業が行われる。この時点で、例えば、送信側、受信側、擬似支払いの量が設定される。さらに、ネット量がわかるのはこの時点においてだけなので、擬似支払い内のLARGEAMOUNTフラグを設定することができるのもこの時点以外にはない。ネット量が多い場合には、BILATORDINSERTを介してBILATORDQUEUE内に配置され、また、多くない場合には、BILATMEDIUMPUSHを介してBILATMEDSMALLQUEUE内に配置される。擬似支払いのSSNは、待ち行列内で最も大きいものではないことがほぼ確実であるため、擬似支払を、単純にBILATMEDSMALLQUEUE内にINSERTedすることはできないことに注意されたい。
【0211】
2. CHECKBATCHES、BATCHRELEASABLE、CHECKSENDPAYMT、CHECKRECVPAYMT、多者間バッチルーチン
a. CHECKBATCHES
このルーチンは、同時公開が可能な支払いのバッチ内に含むことにより、また、CHECKBATCHESフラグが成功であればこれをTRUEに、成功でなければFALSEに設定することにより、大型支払いを公開しようと試みる。当然、バッチに含まれる全ての参加者はバッチの公開後はその最大または最小利用残高を超えてはならないという制約を満たす唯一のバッチは、これをその他の支払い注文の適切なバッチと共に含むことにより、許容可能である。
【0212】
バッティング処理は、送信側の利用可能な残高がプレファンド残高に関連して正であり、受信側の利用可能な残高がプレファンド残高に関連して負である所定の大型「ターゲット」支払いについて最も成功し、これと反対の場合に最も失敗するようである。従って、CHECKBATCHESが、GROUPMDLPOSITION (SGRP)とGROUPMDLPOSITION (RGRP)のサインビットの可能な値と、送信側と受信側の各々のポジションとに関連して、値0と1のみを仮定できる2つの変数、すなわち、STOGとRTOGにかかるループの対である。このループは、最も望ましいケース(送信側が信用貸しポジションにあり、受信側が借記ポジションにある)に関連してSTOG = 0とRTOG = 1で始まり、次に、中間ケース(送信側と受信側が信用貸しポジションにあり、次に、送信側と受信側が借記ポジションにある)に進み、最後に、送信側が借記ポジション、受信側が信用貸しポジションにある状態で終了する。
【0213】
各ループ内で、SYSLARGEQUEUE内にある全ての大型支払い(LARGEAMOUNTフラグを介して識別されたもの)がターゲット支払いとなる。実際にバッチを作成するルーチンであるBATCHRELEASABLEは、そのバッチ内の全ての参加者がそのポジション限度内に残る方法で、以下に示す理由のいずれかによって失敗することがある。すなわち、そのターゲット支払いの受信側を基とする支払いのツリーを構築することができないため、または、そのターゲット支払いの受信側を基とする支払いのツリーを構築することができないため、である。第1の場合において、名目上のブールBATCHRELEASABLEフラグが、ビットストリング”10”にDEFINE’dされたSFAILに設定され、第2の場合において、BATCHRELEASABLEフラグは、ビットストリング“100”にDEFINE’dされたRFAILに設定される。いずれの場合においても、最も有意でないビットは0値を有するため、RSLT : = BATCHRELEASABLEへのテストはFALSEである。前回失敗した、特定の参加者をターゲットとした送信側または受信側のバッチを作成する試みは、その参加者のビットをSFAILAMTMASTとRFAILAMTMASKの各々に設定することによって記録される。このような試みがなされている場合、その後に、参加者が同額またはそれよりも大きな額を送受信しようとすると確実に失敗する。そのため、送受信する金額が、SFAILAMTとRFAILAMT配列にそれぞれ記憶されているこれら失敗の金額を超える場合には、バッチ作成を試みることはない。その他全ての場合において、多者間バッチを識別するためにBATCHRELEASABLEが呼び出され、また、第1バッチファンドを公開するためにBATCHRELEASEが呼び出される。
【0214】
b. BATCHRELEASABLE
BATCHRELEASABLEのゴールは、BATCHLINK配列をターゲット支払いを含む有効な多者間バッチを有するノードで占めることである。BATCHLINK配列内の第1エントリは、常にターゲット支払いでなければならないため、代入文BATCHLINK[0] : = LARGELINKである。借記および信用貸し限度制約を満たすべく、後続するいくつかの文はSMINPMTSZ、SMAXPMTSZ、RMINPMTSZ、RMAXPMTSZ、すなわち、LINKにあるターゲット支払いの送信側によって受信され、ターゲット支払いの受信側によって送信されなければならない最小、最大支払いの各々のサイズを計算する。これらの最小値および最大値はCHECKSENDPAYMTとCHECKRECVPAYMTを呼び出す上で必要であり、また、この各々には、現在のターゲット支払いの送信側と受信側も必要である。
【0215】
c. CHECKSENDPAYMTとCHECKRECVPAYMT
送信側のバッチを作成する処理は、受信側のバッチを作成する処理と本質的に同一であるため、CHECKSENDPAYMTについてのみ詳細に説明する。CHECKSENDPAYMTの作業は、送信側のバッチを、ターゲット支払いの受信者を基部にしたツリーとして考え、送信側への支払いを第1レベルブランチ、第1レベル上の送信側(1つまたは複数)への支払いを第2レベルブランチ、等として考えることにより最良に説明することができる。CHECKSENDPAYMTへの帰納的な呼び出しの各々は、単一の送信側ノードがポジション制約を満たすか、手順が失敗して出るかするまで、単一の送信側ノード上にMAXBRANCHESリーフノードを追加する。
【0216】
CHECKSENDPAYMTは、これが既に終了しているかどうかをチェックすることにより作業を開始する。この可能性が考慮されなければならないのは、大型支払いのための相殺を上回る金額である、送信側と受信側の初回プレファンド残高要求金額の最小金額と同じ金額の支払いが、送信側と受信側の利用可能残高によって、バッチングを要することなく公開されると考えられるためである。これは、通過したパラメータSMINPMTSZ、送信側のツリーから要求される最小寄与が、ゼロと等しいか、これ未満である場合に当てはまるものである。
【0217】
次に、CHECKSENDPAYMTがDEPTH > MAXDEPTHであるかを調べ、そうであれば、ツリーはそれ以上のびることができないため、誤(失敗)へと戻らなければならない。
【0218】
非ヌル送信側ツリーを構築しなければならない場合(すなわち、SMINPMTSZ > 0)、CHECKSENDPAYMTはまず、有効に働く単発支払いを見つけるための試みを行い(PHASE 0)、これが失敗すると、有効に働く一連の支払いを見つけるための試みを行う(PHASE 1)。これらの支払いを見つけるために、以下の条件を満たすターゲット支払いの、送信者宛ての支払いを識別するべく、CHECKSENDPAYMTが、その支払いがMINACCEPTABLEよりも小さくなるまでGROUPORDERCVQUEUEを介してループを続ける。
【0219】
1. 支払いが、まだ送信側ツリーまたは受信側ツリーのいずれにも含まれていない(すなわちBATCHLINKS配列にLINKが見つからない)。
2. CHECKSENDPAYMTが、このレベルでこのリーフノードの組を構築する上で該参加者と出会っていない(すなわち、この参加者用のローカルGRPMASKフラグがまだ設定されていない)。または、この該参加者が、現在のノードを含んだツリーのブランチの下で発生していない。
3. 送信側が、1日の最初におけるポジションと同等かそれよりも大きいポジションにいる。
4. 支払い金額は、MAXACCEPTABLEと同額かそれ未満である。PHASE 0において、これは、受信側の最大利用可能残高を乱すことのない最大支払いサイズである。このフェイズにおいて、NOCREDITLIMITS = TRUEであり、信用貸し限度が引き上げられると、MAXACCEPTABLEが9,000,000ドルに設定され、適切な大きさの金額が表示される。PHASE 1において、MAXACCEPTABLEは、プログラムに、ターゲット受信側への支払いを2つ以上見つけさせ、これによりツリー内でブランチを生じるSMINPMTSZに設定される。
【0220】
これらの制約が全て満たされると、この支払い注文は、ツリーノードとして含まれる候補になる。このような候補は2つ以上存在していてもよい。その場合には、トライアル支払い未満の最小の損失の結果、送信側の最小利用可能残高(すなわち、最小のDNEXTMINPMTSZ)がBESTLINKとして示され、関連するGRPDONEフラグが設定される。DBESTMINPMTSZ ≦ 0である場合、送信側の最小利用可能残高未満の損失はないので、このノードはいかなる子供を備えている必要はない(従って、バッチに支払い注文を追加する必要もない)。あるいは、ツリーの深さがまだMAXDEPTHでない場合は、これらの追加支払い注文を識別し、現在のノードの子供として含むために、CHECKSENDPAYMTへの帰納的な呼び出しを行う必要がある。
【0221】
候補支払いの送信側がその最小利用可能残高を下回らないようにするために、DNEXTPOS − DAMT ≧DNEXTCAPを持っていなければならず、ここで、DAMT、DNEXTCAP、DNEXTPOSはそれぞれ、候補支払いの金額、その送信側の最小利用可能残高、送信側のポジションである。計算DNEXTMINPMTSZ: = DAMT + DNEXTCAP − DNEXTPOSの正確さは、不等が正(true)であることを確実にするために送信側へ送信される必要がある追加の金額として、DNEXTMINPMTSZの定義から続いている。
【0222】
DBESTMINPMTSZ ≦0である場合、または、CHECKSENDPAYMT帰納的呼び出しがTRUEに戻る場合、候補ノードBESTLINKが、QUEUE手続きを介して、実際にツリーに追加される。この手続きは、BESTLINKをBATCHLINK配列、BATCHLINK [BATCHLINKS]内の第1空白配列要素にコピーし、同じように、それぞれ送信側、受信側、関連支払の金額をBATCHSGRP[BATCHLINKS]、BATCHRGRP[BATCHLINKS]、DBATCHAMOUNT[BATCHLINKS]の中に記憶する。QUEUE手続きは、BATCHLINK、BATCHSGRP、BATCHRGRP、DBATCHAMOUNT配列内の第1空白配列要素が以前よりも1大きいという事実を反映するために、BATCHLINKSをインクリメントした後に、制御をCHECKSENDPAYMTへ戻す。
【0223】
次に何が続くかはPHASEによる。PHASE0において、CHECKSENDPAYMTが、両送信側の利用可能残高がその最小利用可能残高を超えないようにするために、ターゲット支払いの送信側へ送信できる単発の支払いを見つけようと試みたことを思い出されたい。上述のPHASE = 0を伴う計算を全て終えたら、CHECKSENDPAYMTは、このような支払いが見つかった場合にTRUEに戻るか、または、このジョブを実行するための複数の支払いを探すべくCHECKSENDPAYMTを許容するためにPHASE = 1を設定する。フェーズ1の最中に新規のブランチがツリーに追加されるたびに、MAXACCEPTABLEとMINACCEPTABLEの値が再計算される。CHECKSENDPAYMTは、このような支払いのグループが見つかった場合にTRUEに戻るか、または、MAXBRANCH支払いを試した後に単純に検索を停止するかのいずれかを行う。
【0224】
ほぼ同一の手続きを使用して、CHECKRECVPAYMT内に受信側のツリーを構築する。事実、違いは次のような明白なものばかりである。GROUPORDSENDQUEUEがGROUPORDRECVQUEUEの代わりに参照される;受信側ツリーに含まれている参加者は借記ポジションになくてはならない;DNEXTMINPMTSZの計算はDNEXTMINPMTSZ : =DAMT−DNEXTCAP+DNEXTPOSに変更される。
【0225】
最大利用可能残高内に留まるという必要性から、状態DNEXTPOS + DAMT≦DNEXTCAPに関連した、受信側への制約が生じる。再び、この不等を正(true)にするために、受信側がDNEXTMINPMTSZの支払いを受信する必要がある場合、このテキストにおける計算は適切なものである。
【0226】
図4は、手続きCHECKSENDPAYMTの基本的な流れを示している。手続きCHECKSENDPAYMTへの呼び出しが正に戻ると、ツリーの構築が成功したということになる。この呼び出しが誤に戻ると、手続きが支払い注文のツリーの構築に失敗したということになる。
【0227】
図に示すように、手続きを呼び出したら、SGRP、SMAXPMTSZ、SMINPMTSZ、TREEが、ステップS101において、通過したパラメータとして渡される(pass in)。SGRPは、ツリー構築内の任意の特定のポイントにおける現在のエンドノードを示す送信側参加者の参加者数である。SMAXPMTSZは、利用可能残高を考慮して、SGRPへのヘルパー支払いとして使用できる、最大サイズの支払い注文を表す。SMINPMTSZは、このような支払い注文の最小のものを示す。TREEは、特定の参加者がそのツリーのあらゆる特定のブランチ上に1度以上現れることを防ぐための、内部的に使用されるビットマスクである。ステップS102では、SMINPMTSZがゼロと等しいか、またはそれ未満であるかが決定される。YESの場合には、S103において、手続きは出て、正(true)へ戻る。これは、SMINPMTSZがゼロ未満である場合にはツリーが完成し、これ以上ツリーを構築する必要がないためである。SMINPMTSZがゼロよりも大きい場合には、流れは、DEPTHがMAXDEPTHと等しいかそれよりも大きいかを決定するS104へ続く。DEPTHは、ツリーの最長のブランチの長さと同様、帰納の深さに等しい。MAXDEPTHは所定の定数である。答えがYESの場合、手続きは出て、誤へ戻る。NOの場合は、流れはステップ106へ続く。ステップ106では、PHASEが0に設定され、DEPTHがインクリメントされ、BLSAVEがBATCHLINKSの値に指定される。PHASEは、0または1の値を持つことができる。0の現在値は、単発のヘルパー支払い注文を探すための試みがなされていることを示す。値が1である場合、手続きは、ツリーのブランチングを生じる、段階的に小さくなるヘルパー支払いのリストを探そうと試みる。次に、流れはステップS107へ進む。ステップS107では、支払いサイズ限度MINACCEPTABLEとMAXACEPTABLEがフェーズに依存して計算される。次に、ステップS108において、サイズが、送信側のポジションBESTGRPにおいて最もヘルプを必要としない、MINACCEPTABLEとMAXACCCEPTABLEの間の大きさであるSGRPのためのGROUPORDRECV QUEUEから支払いが選択される。
【0228】
このような支払いが見つからない場合には、流れはステップS108からステップS116へと進み、ここで、PHASEが1と等しいかどうかが決定される。PHASEが1と等しくない場合には、上述したように、ステップS117においてPHASEが1に設定され、流れがステップS107へ入るためにループバックする。他方で、ステップS116でPHASEが1と等しいことがわかった場合には、流れはステップS118へ進む。ステップS118では、BATCHLINKSがBLSAVEの値を得て、DEPTHが決定され、手続きが誤の結果と共に出る。
【0229】
ステップS108において支払いが見つかると、ステップS109において、CHECKSENDPAYMTへの帰納的呼び出しについて新規のパラメータが計算され、BESTGRPがパラメータSGRPとして入れられる(pass in)。さらに、帰納的呼び出しにおいて、MINACCEPTABLEがパラメータSMINPMTSZとして入れられ(pass in)、MAXACCEPTABLEがSMAXPMTSZとして入れられる(pass in)。次に、ステップS110において、CHECKSENDPAYMTの帰納的呼び出しが実行される。CHECKSENDPAYMTの帰納的呼び出しが誤に戻ると、処理の流れが上述のステップS116へと進む。帰納的呼び出しが正に戻ると、流れはステップS111へ進む。ステップS111において、BATCHLINKSがインクリメントされ、BEST支払いが配列BATCHLINK[BATCHLINKS]において待ち行列登録される。BATCHLINKは、ツリー内の試験的な支払いへのリンクを含んだ配列である。次に、ステップS112において、PHASEが1と等しい場合に、MINACCEPTABLEおよびMAXACCEPTABLEが更新される。次いでステップS113で、SGRPの利用可能残高が許容可能であるかどうかが決定される。許容可能であれば、手続きCHECKSENDPAYMTは正へ戻るへ出る。許容可能でなければ、流れはステップS115へ進む。ステップS115では、最大ブランチングが限度を超えているかどうかが決定される。超えていなければ、手続きはステップS108へループバックする。超えていれば、手続きの流れは、上述したようにステップS118へと進み、誤へ戻るへ出る。
【0230】
B. 支払いの公開方法
シミュレーション目的のために、支払いの「公開」は、送信側の利用可能残高から支払い金額を減じ、受信側の利用可能な残高に関連する金額を足すだけであり、つまり、RELEASE手続きで実行されるタスクである(この手続きは上述の擬似コードでは示されていないが、しかし、そこにリストアップされているルーチンのいくつかによって呼び出される。詳細は以下の説明を参照のこと。)。
【0231】
支払いは、それが多者間バッチの一部、2者間バッチ、または個別の小型支払いのいずれであるかによって、いくつかある方法のうちの1つによってRELEASE手続きへと渡される。多者間バッチの一部である支払いは、CHECKBATCHES に呼び込まれたBATCHRELEASEを介して、RELEASEへ送信される。CHECKBATCHESは、多者間バッチの制約を監視するルーチンであるので、多者間バッチが制約され次第、BATCHRELEASEが呼び出される。BATCHRELEASEは、1つの多者間バッチが1つのユニットとして公開されるようにコード付けされている。
【0232】
小型支払いと、小型の2者間バッチングされた支払いは、両方ともTRYTORELEASEを介して処理される。この公開モードの主な特徴は、ルーチンGALESHAPLEYを用いた、同時に公開することが可能な複数の小型支払いのバッチを識別する試みである。これらの支払いが知られると、実際にRELEASEを呼び出すために、RELEASELOOPルーチンが呼び出される。
【0233】
これら公開機構の各々は、MASKLOOP DEFINEを使用して、どの参加者が潜在的な公開可能支払いを持っているかを決定する。MASKLOOPは、パラメータMASK、GRP、LOOPXと共に呼び出される。MASKは、関連する参加者(または「グループ」)が潜在的に公開可能な支払いをもっている場合、ビットがTRUEに設定される複数ワードビットマスクである。GRPは、グループ数であるGROUPSFOUNDと1の間の整数である。LOOPXは、初期設定でゼロに設定されているワークスペースである。各時間MASKLOOPが呼び出され、GRPは初期設定ではFIRSTONE (REAL (MASK[LOOPX]))−1に設定されている。最も大きくないMASK[LOOPX]のビットはビット1であり、その2番目はビット2、等であり、ビルトイン機能FIRSTONEは、MASK[LOOPX]のMASK[LOOPX]の最大のビット数(例えば、1+MASK[LOOPX]のベース2ログか、または、MASK[LOOPX] = 0であればゼロを戻す。MASK[LOOPX] = 0である場合、LOOPXは1によってインクリメントされるため、そのマスクの次のワードを「1」ビットについて検索することができる。そうでなければ、(すなわちMASK[LOOPX]≠0)、MASK[LOOPX]の最大ビットがゼロに設定され、現在検索されているワードのポジションを考慮するためにGRPに48*LOOPXが加算され、制御が呼び出し手続きに戻される。
【0234】
1. BATCHRELEASE
多者間バッチを公開するBATCHRELEASEは、公開方法の中でも最も簡単なものある。これは単純に、BATCHLINK配列内にあるエントリの各々にかかるループである。これらのエントリは、公開される支払いと、その支払いが実際に擬似支払いの一部であるかどうかを示すフラグとを含んでいる。従って、ループが、各支払いについてRELEASEを呼び出し、その後、その支払いを記憶しているノードが、引数”0”でREMOVEを呼び出すことによってシステムから削除される(この引数は、指摘された待ち行列からノードが除去されてしまうことを防ぐマスクであること思い出されたい。“0”は、「全ての待ち行列からこのノードを除去せよ」ということを意味する。)。
【0235】
CHIPSに採用された場合、BATCHRELEASEは、そのバッチ内の全ての支払いを1つの処理で公開させる。
【0236】
2. TRYTORELEASE
小型支払いと小型擬似支払いを公開するTRYTORELEASEは、正確なGROUPBIDDERMASKとGROUPBIDDEEMASK、また、どの参加者が競り手で、どの参加者が売り手であるかを示すフラグを含んだGALESHAPLEYを呼ぶ。GALESHAPLEYの稼働時間は、競り手と売り手の数に伴って少なくとも二次的に増加してまうので、これらの各々の数を可能な限り少数にすることが重要である。特に、送信側が競り手である際には、送信側への支払いを有する参加者(この参加者についてはGROUPSENDQNOTNULLフラグがTRUEである)のみに競りが許可されなくてはならない。おそらく、これはそれほど明白なことではないが、新規に到着した支払い注文の結果、また、公開された支払いの結果として状況が変更した可能性のある参加者のみ、この競りに参加する必要がある。
【0237】
TRYTORELEASEはGALESHAPLEYを2度呼び出す。1度目は、送信側が競り手(すなわち、通過したパラメータSENDERBIDS = TRUE)であり、2度目は受信者が競り手(すなわち、通過したパラメータSENDERBIDS = FALSE)である。どちらの場合も、GALESHAPLEYは、競り手の数(送信者が競る場合はBIDDERCOUNT1、受信者が競る場合はBIDDERCOUNT2である)が0よりも大きい際にのみ呼び出される。1度目の呼び出しでは、状態が変更したために追加の支払いを送信することができるようになった参加者(すなわち、その参加者のSENDERSTATEフラグがTRUE)が競り手である。従って、TRYTORELEASEは、GROUPBIDDERMASKを計算するためにMASKANDを呼び出し、どの参加者が競り手であるかを示すフラグのセットは、
GROUPBIDDERMASK ← SENDERSTATE & GROUPSENDQNOTNULLである。
【0238】
次に、BIDDERCOUNT1が次に示す手続き呼び出しにおいて計算される。
COUNTBITS (GROUPBIDDERMASK、BIDDERCOUNT1、TEMP)
【0239】
1度目のGALESHAPLEYへの呼び出しは、GROUPBIDDERMASKフラグのこのセットと、現在のGROUPRECVQNOTNULLフラグのコピーであるGROUPBIDDERMASKフラグのセットで行われる。2度目のGALESHAPLEYへの呼び出しは、
GROUPBIDDERMASK ← RECEIVERSTATE & GROUPRECVQNOTNULL
で行われるが、しかし、
COUNTBITS (GROUPBIDDERMASK、BIDDERCOUNT2、TEMP)
で計算されたBIDDERCOUNT2でが正である場合のみである。
【0240】
GALESHAPLEYの生成文は、GROUPSENDSTOとGROUPRECEIVESFROMの整数配列の対である。GROUPSENDSTOのi番目のエントリは、jが送信しなければならない支払いの(唯一の)受信側の参加者(「グループ」)数であり;同様に、GROUPRECEIVESFROMのj番目のエントリは、jが受信する支払いの(唯一の)送信側のの参加者(「グループ」)数である。後でより詳細に説明するように、これは、どの支払いがRELEASEに送信されるべきかの決定が可能な、GALESHAPLEYの直後に呼び出されるRELEASELOOPによる機構である。
【0241】
受信側が競り手である場合のGALESHAPLEYの呼び出しについては、状況が変更したため追加の支払いを受けることができるようになった(すなわち、その参加者のRECEIVERSTATEフラグがTRUEである)参加者は競り手である。従って、TRYTORELEASEが、GROUPBIDDERMASKを計算するためにMASKANDを呼び出し、どの参加者が競り手であるかを示すフラグのセットが次のようになる。
GROUPBIDDERMASK ← RECEIVERSTATE & GROUPRECVQNOTNULL
【0242】
使用されるGROUPBIDDEERMASKフラグは、現在のGROUPSENDQNOTNULLフラグのコピーである。さらに、次に、実際に支払いを公開するためにRELEASELOOPが呼び出される。
【0243】
GALESHAPLEYへの最初の呼び出しにおいて支払いを送信するために競る参加者がなく、かつ、支払いを受けるために競る参加者がない場合において、また、その場合のみにおいて、TRYTORELEASEが正である同名のフラグを戻す。記号的には次のように表される。
TRYTORELEASE ← (BIDDERCOUNT1 = 0) AND (BIDDERCOUNT2 = 0)
【0244】
上述した擬似コードから明らかであるように、TRYTORELEASEがTRUEに戻ると、TRYTORELEASEが呼び出されるループが終了する。
【0245】
3. GALESHAPLEY
上述したように、このルーチンは、一般法則化されたFIFO待ち行列規則において、支払いの送信側と受信側の対をつくる試みをする。従って、各競り手について、「競り手」は、GROUPBIDDERMASKのTRUE値によってそのように示されている参加者である。競り手は、全ての競り手が1つの支払いと独特に関係する時点において、入札が拒否されなくなるまで入札を提出する(REJECTCOUNT = 0)。
【0246】
競りの各ラウンドの始めには、競り手に関連した、最も早いタイムスタンプ(SSN)を持つ支払いが識別される(この計算で使用されSSNは独特のものであるため、「引き分け」の可能性を省略していることに注意)。これには2つのネスティングされたDO UNTILループ、すなわち1つは競り手、もう1つは売り手にかかるもの、が関与している。外側ループは、実際の競り手への処理を規制するために、GROUPREJECTMASK上のMASKLOOP DEFINE、GROUPBIDDERMASKのコピーを使用する。このような競り手の各々について、MASKLOOP DEFINEは、GRPAにおける(正)参加者の証明番号か値−1のいずれかを記憶する。内部ループは、どちらの潜在的な競り手が最も早いタイムスタンプを持った支払いと関連しているかを決定するために、GROUPBIDDEEMASK3上のMASKLOOP DEFINE、GROUPBIDDEEMASKのコピーを使用する。このような売り手の各々について、MASKLOOP DEFINEは、GRPBにおける(正の)参加者証明番号か、または値−1のいずれかを記憶する。
【0247】
支払いへの競りは、その支払いが全てのファンディング制約を満たす場合にのみ有効である。これらのチェックは、計算の一部が外部ループにおいて行うことができ、また、この部分が、送信側が競っているか受信側が競っているかによって行われるため、例えばCHECKSENDPAYMTでのチェックよりも幾分複雑である。
【0248】
この計算について上記で説明したが、制約が満たされた場合にはフラグFITTOGがTRUEに設定され、逆の場合にはFALSEに設定される。FITTOGがTRUEである場合にのみ、それまでに見つかった最も早いタイムスタンプSAVESSNと、GRPAとGRPB1に関連した支払いのSSNとの間の比較が成される。このGRPAとGRPB1に関連した支払いが最も早いタイムスタンプを有する場合、GRPB1の内容がGRPBへコピーされ、SAVESSNが、今見つかった最も早いタイムスタンプに更新される。次に、内部ループの終端では、SAVESSNが、この方法で見つかった最も早いタイムスタンプを持ち、GRPAとGRPBの対は関連する支払い送信者と受信者を有する。SENDERBIDS = TRUEである場合、GRPAとGRPBは各々、その支払いの送信者と受信者となる。そうでなければ、GRPBが送信者、GRPAが受信者になる。
【0249】
入札が受諾されるのは次の場合である。売り手にとってそれが最初の入札である場合(すなわち、GROUPRECEIVESFROM(GRPB) IS 0 if SENDERBIDS = TRUE or GROUPSENDSTO(GRPB) IS 0 if SENDERBIDS = FALSE)と、前回受諾された入札のものよりも早いタイムスタンプに関連した入札である場合(すなわち、if SENDERBIDS = TRUE,
SSN(BILATMEDIUMHEAD(GRPA, GRPB), PMT) <
SSN(BILATMEDIUMHEAD(GROUPRECEIVESFROM(GRPB), GRPB),
PMT)
および、
SSN(BILATMEDIUMHEAD(GRPB, GRPA), PMT) <
SSN(BILATMEDIUMHEAD(GRPB, GROUPSENDSTO(GRPB), PMT)
if SENDERBIDS = FALSE)
である。
【0250】
受諾された入札は、SENDERBIDS = TRUEとSENDERBIDS = FALSEの各々の場合を網羅する2つのDEFINES, TENTATIVEDATEAとTENTATIVEDATEBを用いて、入力される。ここでは、TENTATIVEDATEAにのみ注目する。
TENTATIVEDATEBも同様に働くが、呼び出される際に受信側が競り手であるという事実のために調整されている。その入札が競り手、GRPBにとって最初のものでない場合(すなわち、REJECT = TRUE)、TENTATIEVEDATEAは、拒否された競り手が再び競りを行えるようにするために必要なコードを含んでいる。まず、拒否された競り手(GRPA以外でなければならない)が、GROUPRECEIVESFROM(GRPB)になるように計算され、また、この競り手が送信側であるため、関連するGROUPSENDSTOエントリが0に設定される。この送信側が再び競りを行えるようにするには、その送信側のGROUPREJECTMASK2フラグがTRUEに設定される(この実現については、以下の説明を参照のこと)。最後に、拒否された入札のカウントであるREJECTCOUNTがインクリメントされる。前回の入札が拒否されたか否かに関わらず、TENTATIVEDATEAが、配列エントリ、GRPAから送信された支払いの受信側であるGROUPRECEIVESFROM(GRPA)と、GRPBによって受信された支払いの送信側であるGROUPSENDSTO(GRPB)をGRPBとGRPAに各々設定する。
【0251】
メイン(REJECTCOUNT = 0)ループにおける最後の命令は以下の通りである。
MOVEMASK(GROUPREJECTMASK2, GROUPREJECTMASK)
【0252】
この命令は、GROUPREJECTMASK2を、次のループ通過に備えるGROUPREJECTMASKにコピーする。GROUPREJECTMASK2において拒否された競り手に対応する入札のみがTRUEに設定される点を思い出されたい。従って、初回後のメインループの各通過は、前回の通過で入札が拒否された送信側のみが関連している。
【0253】
図5は、バッチングを用いることなく小型支払いの公開を最適にするために使用される、手順GALESHAPLEYの処理の全体的な流れを示すものである。ステップS201では、GROUPBIDDERMASKがGROUPREJECTMASKへ移動される。GROUPBIDDERMASKは、既述の手続きTRYTORELEASEによって設定されたマスクであり、手順GALESHAPLEYの現在の呼び出しにおいて競り手として機能する各参加者のビットを含んでいる。GROUPREJECTMASKは、受諾されなかった全参加者のビットを含んだマスクである。この手続きの実行が始まると、参加者は受諾されなかった。従って、全ての競り手参加者は、GROUPREJECTMASKに配置され、これらが受諾されると、ここから除去される。次に、ステップS202で、ループを通る特定のループの通過において何人の競り手が拒否されたかを示すREJECTCOUNTと、このような拒否された競り手を含むマスクであるGROUPREJECTMASK2との各々がゼロに設定される。ステップS203において、現在考慮中の入札参加者であるGRPAが、GROUPREJECTMASKに設定された初回入札のビット数に設定される。言い換えれば、初回の競り手が選択されるということである。次に、このビットが、この競りがS203を通る後続のパスで選択されないようにリセットされる。ステップS204では、GRPAが、ゼロよりも大きいか否か、すなわち、競り手が見つかったか否か(GROUPREJECTMASKにビットが設定されているか)の決定がなされる。ゼロよりも大きくない場合には、処理の流れはステップS214へ進み、ここで、REJECTCOUNTがゼロよりも大きいかどうかの決定がなされる。大きくない場合には、手続きは終了して出る。大きい場合には、ステップS216において、GROUPREJECTMASK2がGROUPREJECTMASKへ移動され、流れがステップS202へループする。
【0254】
競り手が見つかったら、競り手が何に入札するのかが決定されなければならない。手続きは、その2者間待ち行列内に、GRPAによって送信された支払いを有する受信側参加者を見つける必要がある。従って、GRPAがゼロよりも大きいと決定された場合には、GROUPBIDDEEMASK2、すなわち、ループの現在のパスにおける候補売り手を示すマスクが、BILATSENDQNOTNULL[GRPA] AND GROUPBIDDEEMASKを得る。つまり、GROUPBIDDEEMASK2に、フラグBILATSENDQNOTNULL[GRPA]の論理ANDが指定され、このフラグは、正の場合に、GRPAと売り手の間の2者間待ち列内に支払い注文があることを示すフラグであり、また、このGALESHAPLEYの呼び出しの候補売り手を含んだ手続きTRYTORELEASEに既に設定されているマスクであるGROUPBIDDEEMASKが指定される。次に、処理の流れはステップS206へと進む。ここでは、GRPAからGRPBへの一番最初の支払いを有するGROUPBIDDEEMASK2から参加者GRPBが選択される。これが見つからない場合、GRPBは−1が指定される。次に、ステップS207において、GRPBがゼロよりも大きいかどうかが決定される。0よりも大きければ、売り手が見つかったことを示す。ゼロ未満であれば、流れはステップS203にループバックし、再エントリする。
【0255】
GRPBがゼロよりも大きい場合、ステップS208において、GROUPBIDDERMASK2内のビットGRPBがリセットされ、この売り手が再び使われることがないようにされる。ステップS209では、GRPBが既に入札を有するか否かが決定される。有さない場合、流れは、試験的なマッチまたは「日付(date)」が作成されるステップS213へと進み、次にステップS203へループバックし、再エントリする。GRPBが既に入札を有している場合には、次にステップS210において、我々の入札、すなわち現在考慮中の入札がよりよいものかどうかが決定される。そうであれば、流れはステップS212へ進む。ステップS212では、拒否された参加者の入札がGROUPREJECTMASK2に設定され、REJECTCOUNTがバンプされる(インクリメントされる)。次に、処理の流れは、上述したステップS213へ進む。我々の入札がよりよいものでない場合には、処理の流れはステップS206へループし、再エントリする。
【0256】
4. RELEASELOOP
この手続きが呼び出されるまでには、公開されるべき小型支払い「ほぼバラバラな状態」のバッチは識別され、また、この手続きのタスクはこれらをRELEASE手続きへ送ることである。RELEASELOOPは、その名前を、GROUPBIDDERMASKにおける送信側または受信側としてフラグ付けされた参加者にかかるループから得る。このループは、このような参加者各々のIDを変数GRPAに指定するMASKLOOP DEFINEを用いて実現される。このような参加者が送信側であるか受信側であるか明白でないため、正値を含んでいるかどうか知るために、まずGROUPSENDSTO(GRPA)が、次にGROUPRECEIVESFROM(GRPA)がチェックされる。GROUPSENDSTO(GRPA)が正値を含んでいる場合、ゲール・シャプレイのアルゴリズムが、送信側としてGROUPSENDSTO(GRPA)を、また、受信側としてGRPAを持った支払いが存在するはずであると保証し、同様に、GROUPRECEIVESFROM(GRPA)が正値を含んでいる場合、送信側としてGRPAを、また、受信側としてGROUPRECEIVESFROM(GRPA)を持った支払いが存在するはずであると保証する。これは、最も早いタイムスタンプを持った2参加者間の支払いでなければならないため、対応するBILATMEDIUMHEADポインタが指定する支払いノードでなければならない。
【0257】
RELEASEへの呼び出しを介してこの支払いが公開された後、呼び出し
REMOVE(LINK, 0)
が、全ての待ち行列から、関連するノードを除去する。次に、送信側と受信側が初回プレファンド限度内に留まるようにするために、送信側と受信側の両方についてPOSITIONCHEKCルーチンが呼び出される。最後に、GROUPRECEIVESFROMとGROUPSENDSTO配列内の適切なエントリが、無効な参加者IDであるゼロにリセットされる。
【0258】
X. システムの特徴のリキャップ(recap)
リキャップにおいて、本発明の重要な特徴を以下に示す。
(1) 支払いは、送信側参加者によってシステム内に記憶され、待ち行列登録される。続いて、システム内の利用可能残高によって、また、大型支払いの適当なバッチを形成するためのシステム機能によって許可されると、支払いは受信側参加者に公開される。
【0259】
(2) 各参加者の利用可能残高は、ゼロ(「最小利用可能残高」)によって下限を、また、最大利用可能残高によって上限を決められている。最大利用可能残高限度は、可能な限り効率的なオペレーションの実行を助ける設計の重要な特徴である。
【0260】
最大利用可能残高の使用は、所定の時間において公開可能な、待ち行列登録された支払いの割合が増す毎に増加する。効率的なシステムオペレーションを得るため、また、支払いの公開において注文を制御する単なる公開可能性以上の基準を許可するために、この割合を最大化することが重要である。最も長く待ち行列登録されているこれらの支払いに優先権を与えることが望ましく、また、この優先権は可能な限り多くの効果を有することが望ましく、重要である。
【0261】
優先権の考慮と実験の両方は、プレファンド金額と、最小、最大利用可能残高との間の等しい差の対称性は、ほぼ最適な状況を表していることを証明した。
【0262】
(3) システムに入力された支払いは、そのサイズによって、即座に、2つの幅広いカテゴリーに分類される。小型支払いは、そのためのバッチングを試みることのない支払いである。大型支払いは、通常、公開するために、他の支払いとバッチングされなければならない支払いである。
【0263】
どちらの処理も連続的に進行し、また、どちらのタイプの公開の間にも最短時間間隔はない。サイズによる分類は、その支払いの送信側と受信側の1日の初めのファンディング残高に関連した公式を用いて行う。
【0264】
(4) 効率的なオペレーションの補助として、小型支払いは2者間待ち行列に入れられる。送信側−受信側の対の各々について異なった2者間待ち行列がある。これは、トライアル・アンド・エラーを最小にしながら、ある特定の時間に公開可能な支払いを見つける上で助けとなる。さらに、小型支払いの公開にFIFO規則を提供する。
【0265】
(5) 効率的なオペレーションは、各々の金融機関が、そのプレファンディング金額に関連した1ビットポジションをその中に割り当てられるビットマスクの使用によっても促進される。使用されるこのようなマスクの2つは、(a)待ち行列が空でないことを示すマスク;(b)銀行が最近、支払いを待ち行列登録したか、または、ポジション変更を行ったために支払いを送信または受信できるポジションに再び戻っているかもしれないことを示すマスクである。
【0266】
(6) 次にどの支払いを送信するかを決定する上で、支払い受信側の関心、ならびに支払い送信側の関心を考慮する特徴が採用されている。このアルゴリズムはゲールおよびシャプレイの方法に基づいている。
【0267】
(7) 2つのオリジナル支払いが2:1の割合未満で異なっているドルサイズを有する場合に、対向する方向に伝達するために待ち行列登録された2つの支払いを1つの擬似支払いバッチに組み合わせることができる多者間バッチングの方法を使用している。この大きさ規制の結果、2つのオリジナル支払い間の大きさの差を額とした擬似支払いの大きさが、2つのオリジナル支払いの小額の方よりも小さくなる。次に、これによって得られた擬似支払い自体が、他の支払いまたは擬似支払いと各々組み合わされる。
【0268】
2者間バッチングを、大きさがそれほど変わらない支払いどうしの組み合わせに限定することにより、この技術は、幅広い支払いサイズの分類をより好ましく収容することができる。
【0269】
この規則を考慮した別の方法に、正しくマッチングされなかった支払いの未熟バッチングを、2者間バッチングにしきい値規則を課することによって防止するものもある。
【0270】
(8) 多者間バッチングの新しい方法を採用している。送信側銀行の借記キャップ(ゼロ)を超えることなく、指定の大型支払いを送信する際に、送信側銀行を補助するように、信用貸しポジションにある銀行の間で支払いのツリーが構築される。また、受信側の銀行の最大利用可能残高を超えることなく、指定の大型支払いを受信する際に、受信側銀行を補助するように、借記ポジションにある銀行の間で支払いの第2ツリーが構築される。
【0271】
ツリーを構築しながら、銀行を2つの別々のクラスに分類することは、この技術の成功において重要な要素である。
【0272】
(9) 上述したツリーの構築において、構築の各ステップに、所与のノード(バンク)からのびる単一ブランチ(支払い)を使用するための優先順位が与えられる。この結果、補助される支払いに近い大きさの「ヘルパー」支払いを使用することになる。このような方法により、システムは、システム内での支払いサイズの分類の変更に対して、この方法を用いない場合よりも敏感でなくなる。
【0273】
(10) ターゲットの支払い送信側および受信側は、間違ったポジションにあることもある。つまり、そのプレファンディング金額によって、送信側参加者が借記ポジションにある場合もあり、および/または受信側銀行が信用貸しポジションにある場合もある。しかしながら、このようなミスマッチが起こらなかったり、最小限化されている場合には、バッチ作成に優先権が与えられる。これらの例外的状況は、支払いの遅延を最小にするという主要な目的を検討するために許可され、システムは、送信側と受信側のポジションサインが好ましいポジションサインになるまで必ずしも待つ必要はない。
【0274】
(12) 多者間バッチ内における支払いのツリーの構築において、同一の銀行は同一のバッチに2回現れることはできない。しかし、ツリーには同一の銀行が2回以上現れることが許可される。この許可が有益なものであるということを予想するのは難しいが、経験的に、これが合計のスループットを増加することがわかっている。
【0275】
(13) 大型支払いの遅延待ち行列を採用している。遅延待ち行列内にある間、大型支払いは、多者間および2者間バッチングのヘルパー支払いとして使用されることができる。この最終的な効果は、より多くのヘルパー支払いを提供することであり、これにより、なんらかの形で遅延の経験を幾分増やしながら、スループットとシステム効率が増加する。
【0276】
(14) システムのオペレーションを補助して定義するために、多数の幾分任意のパラメータを使用する。これらは、最大スループットまたはその他の設計的目的を達成するために、実験的に調整される。
【0277】
(15) 単純な慣例によって、1日の終りに、待ち行列に残っている支払いをクリアにする。この慣例は、送信側参加者と受信側参加者の間での支払いが最終的に決済するまで、いかなる支払いも公開されることはないという原則と一致する。この方法は、一日の終りに、待ち行列登録された未公開支払いのみの決済を実行するためのものである。機能上、これはあらゆる手形交換所決済として進行する。CHIPSは、記憶装置に残っている支払いメッセージに基づいて、これらの支払いメッセージのいずれも実際に公開することなく、全ての参加者について多者間のネット残高を計算する。このネット残高は、各々の参加者の利用可能残高に適用される。ある参加者についての結果がマイナス数字である場合、その参加者は最終プレファンド残高要求を有し、ある参加者についての結果がプラスである場合、その参加者は最終プレファンド残高権利を有することになる。最終プレファンド残高要求を有する参加者は、プレファンド残高口座にFedwire支払い注文を送信することにより、その金額を支払う。要求されたFedwireが全て受信されると、CHIPSが、今度は、最終的なプレファンド残高額権利を有する他の参加者に、Fedwireを送信する。
【0278】
(16) このシステムを効率的に運用するには、採用しているそれぞれ異なる方法、すなわち、小型支払い用の2者間待ち行列登録、2者間バッチング、多者間バッチングターゲット支払い、多者間バッチングヘルパー支払いがシステムが使用しているデータ構造の形で反映される必要がある。この理由のために、待ち行列登録された支払い記録内には、複数のリンキングが存在していなければならない。待ち行列登録された支払い内の個別のリンクセットの各々は、その支払いに、特定の待ち行列内におけるポジションを与える機能をする。個別の待ち行列の各々は、バッチングするためまたは支払いを公開するために使用するある特定の機能を実現するように設計されている。
【0279】
(17) 連続した改良を介してシステムの活発性と信頼性を確実にするために、常に、特定の正確性を調べるためのチェック機能を適所に備えることが望ましい。その1つにポジションチェックがある。公開またはバッチ公開を実行した後に、規定の限度内にあるバッチ残高に関与する全ての銀行の最大および最小利用可能残高がチェックされる。
【0280】
(18) このシステムを最初に実現する際に、全ての待ち行列がダブルリンクリストとして実現される。これらの待ち行列には、注文された挿入を実行する必要があるものもある。これは、長い待ち行列のための非効率なオペレーションである。この理由のため、ある大きさ以上の支払いのみを含むべくいくつかの待ち行列を規制するために、システムパラメータ(上述の(14)を参照)が使用されている。
【0281】
(19) あるポイントを明らかにするために、1つの大型支払いを、ある支払いの多者間バッチとして公開することができる。従って、理論的には、多者間バッチはあらゆる大きさであってよい。
【0282】
(20) 継続システムとして機能するためには、各参加者の初回プレファンド残高要求金額を決定する方法が必要である。このような数字を客観的な方法で計算するために唯一利用可能なデータは、支払いデータの経歴である。従って、このような使用に許可される公式を1つまたはそれ以上開発することが必要である。
【0283】
XI. 公開の支払い完了性を備えたシステムのためのモデル技術
A. 序文
上述したように、本システムは全ての公開の支払い完了性を達成する。以下の説明において、セクションBは機能面について述べている。セクションCは、自動公開に関する技術的な説明である。セクションDは、モデルコードの機能についてより詳しく説明する。
【0284】
B. 機能面
本発明の好適な実施形態では、CHIPSを用いて本発明が実現する場合、その日1日にCHIPSを介して送信された全ての支払いメッセージと、ニューヨーク連邦準備銀行の帳簿に記された決済口座を介した結果的な残高の決済との1日の最後におけるネッティングによって、支払い完了性が得られる。借り主参加者がその決済義務の支払を怠る可能性は、他の参加者の失敗から生じた損失を生き残っている参加者がシェアするという損失シェアリング協約に、全ての参加者の合意を要求することにより対処される。この義務は、参加者が担保に入れ、ニューヨーク連邦準備銀行のCHIPSプレファンディング口座に保管されているファンドによって保証されている。本発明の利点は、支払いメッセージの1日の支払い完了性がその公開時に達成される一方で、現在のCHIPSシステムの下で転記した担保を著しく超えないプレファンド残高の転記を参加者に要求する点である。これは、実際には、参加者が、現在のCHIPSシステム下での借記キャップよりも実質的に低い借記キャップと同額の金額を有すということである。この有益な結果を達成するために、3つの主要な原則が挙げられる。
【0285】
(1) ほとんどの支払いを清算するのに小型キャップで十分であるような形で支払いが公開される注文を変更するために、記憶装置、続いて自動公開を使用する。
(2) 必要であれば大型支払いを他の支払いとバッチングし、1つのステップで公開することができるバッチ正味金額を生じる。このシステムは、EAF−2とは異なり、2者間バッチングに限定されるものではない。
(3) 相殺前に公開されなかった支払いは、付加的に要求されたファンドが最初に提供されれば、相殺後に公開することができる。
【0286】
実現すべき特徴は少なくとも以下を含む。
・ 記憶および待ち行列登録オペレーションを生じる支払いメッセージ。
・ 参加者が、自分のポジションが、待ち行列登録された未公開支払いに関連していることを知ることができるように、新規の問合せメッセージが提供される。
・ 現在CHIPSに使用されている2者間の規制機能が不要である。
・ 特定の送信側と受信側を持つより小型(バッチされない)の支払いについて、依然、FIFOプロトコルが支払い公開注文を決定し、一般に、バッチの形成では、正確な公開注文はシステムによってなされた特定の選択に依存する。
【0287】
C. 自動公開とその他の技術的問題
1. 概観
過去の実施と異なる本システムの1つの態様は、借記キャップに加えて信用貸しキャップを適用していることである。担保保証された借記キャップによって支払い完了性が保証されているので、信用貸しキャップは何のためのものかと思う人も当然いるだろう。事実、これはリスクの回避を目的としたものではない。信用貸しキャップとは、なにも公開されないようにするべくシステムのポジションが借記キャップで留まらないようにする状態で、支払いを強制的に公開する自然な方法を提供する助けとなる。我々は、そのプレファンド残高の2倍の金額である各参加者の利用可能残高に最大利用可能残高を指定する。
【0288】
2. 公開プログラムの概要:小型支払い
公開は、ドルサイズクラスが異なる支払いに対して、それぞれ異なる形で進行する。借記キャップの0.8倍であると独断的に定義された「フローキャップ」が、小型支払いを大型支払いから区別するために使用される。フローキャップよりも小さな支払いは小型であり、その他は大型である。
【0289】
小型支払いは、送信および受信参加者のポジションが許可されると、2者間FIFO待ち行列から、(バッチングすることなく)個別に公開される。支払いの公開後は、借記限度、信用貸し限度のいずれも超えることはできない。常に、最も早く待ち行列登録された支払いの公開に優先権が与えられる。しかし、「最も早い」は、送信側と受信側とでは意味が異なるため、送信側と受信側の最適な、つまり、送信側と受信側の両方にとってある意味で可能な限り最適なマッチを見つけるために、マッチングアルゴリズム、すなわちゲール・シャプレイのアルゴリズムが用いられる。
【0290】
大型支払いは、多者間および/または2者間バッチングの補助を得て公開される。2者間バッチングについて説明する。
【0291】
大型の待ち行列登録された支払いは、次に示すように2者間的にバッチングされる。銀行Aから銀行Bへの大型支払い注文が待ち行列登録されると、銀行Bから銀行Aへの、第1の支払い注文の半分から2倍の大きさの別の支払い注文が既に待ち行列登録されていないかどうかを調べるためにチェックが実施される。ある場合には、第2の支払い注文が選択され、これが第1の支払い注文とバッチングされる。その結果、金額が、オリジナルの2つの支払い注文の差額である「擬似支払い」が生じる。この差額は、そのバッチ内の2つの支払い注文の各々の金額よりも小さいか、これと等しくなることに注意されたい。擬似支払いの行き先は、大型支払い注文の行き先と同じである。
【0292】
擬似支払いが形成されると、適切な「第2の」支払い注文が利用可能にならなくなるまで、同じ処理が反復して繰り返される。各ステップにおいて、擬似支払いの大きさは小さくなっていくか、最悪の場合でも同じ大きさのまま留まる。従って、2者間バッチングの全体的な効果は、公開される支払いのサイズと数を減少させることである。次に、これらの擬似支払いは、上述したように小型支払いとして、または、次に説明する多者間バッチングを用いて大型支払いとして公開される。
【0293】
システムが擬似支払いを「公開」する場合は、その擬似支払いにリンクされているバッチングされた全ての支払いを1つの処理によって公開する。
【0294】
3. 多者間バッチング
多者間バッチングの目的は、フローキャップよりも大きな支払い、さらに、借記キャップと信用貸しキャップよりもずっと大きな支払い(および擬似支払い)を公開する手段を提供することである。
【0295】
あらゆる2者間バッチングが終了した後に大型支払いが待ち行列登録されると、チェックが大型支払いがもはや公開されうるかどうかを調べ始める。任意の1つの参加者からの大型支払いは、最も古い1番最初の支払いと考慮される。
【0296】
AからBへの所定の大型支払いPの公開について考慮した場合、通常、このような公開により、Aのポジションがその最小利用可能残高を下回ってしまい、また、Bのポジションがその最大利用可能残高を上回ってしまう。そのため、Aにおいて、指定された限度内に入るネットポジションを作るために、現在信用貸しポジションにある第3者側参加者からAへのヘルパー支払いが使用される。ヘルパー支払いは、最初はAにおけるポジションのみを考慮して選択される。
【0297】
構築の各ステップにおいて、根幹にある参加者Aへ下方向に向かう支払いのツリーを設ける。入ってくるブランチと出て行くブランチの両方を備えたこのツリーのノードにある参加者は、その限度制約を満たす。ツリーのリーフ(末端)ノードは、その借記キャップを超える可能性があり、そのため、ヘルパー支払いの助けを必要とする可能性のある参加者である。ツリー内の、この種の助けを必要とするあらゆる参加者には助けが提供されるか、または削除されてツリーが縮小される。
【0298】
構築が成功した場合、既に信用貸しポジションにある参加者間の支払いのツリーが得られ、これにより、参加者Aを含む、ツリーにおける全ての参加者のポジションが、その規定の借記および信用貸し限度内に収まる。
【0299】
システムは、この支払いツリーの構築に成功すると、次に、Bから既に借記ポジションにある参加者への支払いを用いて、Bにおいて同様の状態を達成しようと試みる。可能であれば別のツリーが構築され、これにより、第2ツリーにある全ての参加者ポジションが限度内に収まる。
【0300】
これが全て首尾よく成し遂げられると、1つにまとめられた支払いの全てが多者間バッチを構成し、これが1つの処理で公開される。
【0301】
D. モデルコードの説明
本発明のシステムのシュミレーションのために使用されるモデルはUnisys Algolプログラムである。上述したように、その入力ファイルは、1日の業務の終了後にCHIPSによって生成されたいくつかのオフラインファイルから成っている。主な入力ファイルはRELEASEDATAファイルであり、このファイル記録には、その日にCHIPSを介して公開され各支払いからの少数の抽出されたデータが含まれている。このデータは、送信側銀行および受信側銀行の数、公開時間、金額を含む。
【0302】
プログラムが使用するこの他のファイルは、その日に実施された2者間限度を提供するファイルである。このファイルを設ける理由は、これらの限度から、プログラムは、その日の各銀行による、預託している担保の金額の控えめな見積もりを計算することができるためである。これらの担保の金額は、モデルによって借記キャップ金額として使用される。モデリングの行使の主な目的は、これらの大幅に減少された借記キャップを用いて、1日のどれだけの作業(work)を公開することができるかを知ることである。
【0303】
プログラムは、RELEASEDATAファイルを公開時間順に分類し、次に、1業務日中の参加銀行からの支払いの受信をシミュレーションするために、この分類されたファイルを読み出す。
【0304】
プログラムの出力は、モデルによってどの支払いが公開されたか、遅延の発生、どの支払いが公開されなかったかについての詳細が記載された長い要約レポートである。
【0305】
Algolプログラミング言語において、慣習よりも宣言が優先する。従って、必要とされる宣言が、後で、プログラムの開始付近において現れる。同様に、リスティングの終りにおいてプログラムの外側ブロックが生じる。そこでは、駆動論理が使用されていると理解して構わない。
【0306】
定義によって与えられた、待ち行列登録された支払いのレイアウトは、待ち行列登録された支払いの各々に関連して何が記憶されているかを示している。初めの3ワードは、RELEASEDATA記録からのフィールド、支払いが読まれた順番を示すシーケンスナンバーSSN、後に説明する2つの特別な目的フィールドQFLAGSとLARGEAMOUNTを含んでいる。
【0307】
各支払い内には、たくさんのリンクの組が存在する。これらは、いくつかのダブルリンクリストによって要求され、対、前向き、後ろ向きの形をとる。全ての銀行からからの支払いを1つのリストにリンクするためにSYSLINKが使用される。これにより、最も古い未公開の支払いを容易に見つけることができる。
【0308】
各銀行に対する異なったリストによってGROUPORDリンクが使用される(CHIPS内の「グループ」とも呼ばれる)。これらのリストは、支払いドルサイズによって注文され、また、より大型の支払いのみを含んでいる。これらは、特定の銀行から、または特定の銀行への特定の大きさの支払いを見つけるために、ツリー構築でのヘルパー支払いとして使用されるべく、多者間バッチングにおいて使用される。
【0309】
支払いを「擬似支払い」にリンクするために、2者間バッチングにおいて擬似先頭と擬似末尾が使用される。これらの擬似支払いは、多者間バッチングコードによって、実際の支払いとほぼ同じように扱われる。
【0310】
2者間バッチ内に配置される支払いを選択する際に、BILATORDLINKが使用される。
【0311】
FIFO注文で、この順番での公開のために、小型支払いを所定の送信側および受信側とリンクさせる際にBILATLINKが使用される。
【0312】
注文された挿入構成に使用される定義は簡単なものである。これらは、順次リンキングのみを使用し、B−ツリーやその他の洗練された方法は使用しない。これが適切な効率を生じながら十分である理由は、注文された待ち行列内に「より大型の」支払いのみが保持されるためであり、また、任意の1回で待ち行列登録されたものはそれほど多くないためである。
【0313】
1. 外側ブロック
プログラムの最後を見ながら、TRANファイルの存在テストに注目する。所定の日付のTRANファイルまたはRELEASEDATAファイルのどちらを使用してもよい。TRANファイルは、実行パラメータに特定された日付に利用可能である場合に使用される。そうでない場合は、ずっと小さなRELEASDATAファイルが探される。必要とされる他のファイルは、上述したカレントリミットファイルと、MINIGファイルである。この最後の小型ファイルは、単に、参加者に指定されたCHIPSの4桁ABA番号と、GRPまたはRGNとも呼ばれる順次関連グループ番号との間の通信を提供するだけである。
【0314】
「メインループ」における外側ブロックに注目すると、メインループが、公開の分類されたファイルを読み出すことによって実行される。分類は、公開時間の順序で公開のファイルを生成する初期化時に実行される。TRANファイルが使用されると、このファイルは、TRANファイル記録にリンクを提供するための実SNN番号も含む。そうでなければ、単純に処理および報告目的のために擬似SSNが生成される。
【0315】
次の動作は、支払いをフォーマットし、待ち行列登録することである。手続きFORMATPAYMTとINSERが呼び出される。INSERTはかなり大きな重要な手続きである。その主要な機能は、支払いを、そのサイズに合った方法で待ち行列に登録し、次に、この支払いが大型であり、状況が許す場合には、2者間バッチングを開始することである。
【0316】
外側ブロックループの後半において、その他の2つの重要な手順が呼び出されているのがわかる。TRYTORELEASEは、より小さなサイズの、待ち行列登録された支払いの「公開」を試みる。手続きCHECKBATCHESは、この時点で多者間バッチングが可能であるかどうかを調べる。
【0317】
E. メイン手順の階層
以下の概要に示すように、最も重要な手順は互いを呼び出す。
OUTERBLOCK
FORMATPAYMT
INSERT
MAKEBILATERALBATCH
REMOVE
TRYTORELEASE
GALESHAPLEY
RELEASELOOP
RELEASE
REMOVE
POSITIONCHECK
CHECKBATCHES
BATCHRELEASEABLE
CHECKSENDPAYMT
CHECKSENDPAYMT
CHECKRECVPAYMT
CHECKRECVPAYMT
BATCHRELEASE
RELEASE
RELEASEBILATERALBATCH
RELEASEBILATERALBATCH
RELEASE
REMOVE
REMOVE
POSITIONCHECK
PRINTSUMMARY
【0318】
F. 重要な定義の概要
おそらく、最も重要な定義は、待ち行列挿入と除去に関するものであろう。
【0319】
GETSYSLINKとFORGETSYSLINKは、PAYMENTQUEUE配列内に実インデックスとして使用されるリンク値を作成および破棄するための定義である。従って、これらはPAYMENTQUEUE用のメモリ管理コードを表している。
【0320】
参加者の組のサブセットにかけて、効率的な方法でルーピングを行うために、様々なMASK定義が使用される。従って、これらの主な貢献は、プロセッサ時間を、より単純なコードを用いた場合よりも短縮することである。
【0321】
TREEGRP定義は、多者間バッチング中に構築された支払いのツリーにおいて、どのグループがその下に現れるかを追跡するためのものである。
【0322】
G. さらなる特徴
(1) バッチング遅延待ち行列。手続きINSERT内で、大型支払いを遅延待ち行列内に挿入することにより、大型支払いの2者間バッチングが遅延する。この待ち行列の長さは公証400支払いに維持される。
【0323】
多者間バッチングにおいて、大型支払いは、この遅延待ち行列内にある一方で、ヘルパー支払いとして使用されるが、その時点で、多者間でバッチングされるターゲット支払いとして用いられることはない。
【0324】
(2) BATCHRELEASABLEおよびCHECKBATCHES内のSFAIL、RFAIL。これは別の効率的な装置である。BATCHRELEASABLE内の異なるターゲット支払い上で類似したツリー構築が実行されることを避けるために、構築が失敗した支払いのサイズに対する、ツリー構築の失敗の記録が保持される。ある支払いについて、所定の時間におけるヘルパー支払いのツリーが見つからない場合は、同じ時間において、より大型の支払いに対するツリーを探すことは意味がないということである。この前提は100%有効ではないかもしれないが、ほぼ100%有効であり、実質的に処理を減らすものである。
【0325】
(3) CHECKSENDPAYMTとCHECKRECVPAYMTにおいて、ヘルパー支払いのツリーの構築は、各GRP(参加者)におけるポジションがその参加者の限度内に収まる方法で進まなければならない。これは、所定のGRPがツリー内に最大で1度生じることを要求することで最も簡単に行えるが、これで終りではない。より優れた結果を得るためには、規制をある程度緩和する。
(a) GRPは、所定のツリーブランチに、最高で1度現れることができる。この規制は、TREEGRP定義の使用によって実施される。
(b) 量DNEXTPOSは、DBATCHAMOUNTからの値を用いて計算される。この配列は、提案されたバッチ内にある他の支払いの値を含んでいる。この方法で、所定のGRPのポジション上にあるバッチの総合的な効果を事前に計算することができる。
【0326】
(4) CHECKSENDPAYMTとCHECKRECVPAYMTにおいて、そのツリー内の次のブランチの選択は2つの局面において進行する。第1局面、フェーズゼロにおいて、ノードを残している(leaving)単一のブランチのみが試される。これは、ヘルパー支払いが後にターゲット支払いになるのであれば、最も公開が難しいという理論に基づいて、ヘルパー支払いを保護するためのものであり、また、最大限のヘルパー支払いを使用するためのものである。
【0327】
フェーズ0が失敗すると、フェーズ1が現れる。ここで、1つにまとめれば、当該のノードにおいてヘルパー支払いとして機能するのに十分なドル出来高を有する、いくつかのより小型の支払いを見つけようとする試みがなされる。このフェーズでは、連続的な支払いは、先行する支払いの大きさの半分よりも小さい(PHASE1FACTORを参照)。これは、支払いサイズより幅広い範囲にかかるグループの衝撃を拡散させるためである。
【0328】
(5) BILATBATCHFACTOR。 現在2と等しいこの要素は、「大型」支払いの2者間バッチングの開始を、BILATBATCHFACTORによって、フローキャップを超えるものに限定する。その結果、サイズが、フローキャップとその2倍のフローキャップの間の大きさを有するより多くの支払いが、多者間バッチングにおけるヘルパー支払いのサービスとして利用可能になる。あらゆる場合において、この要素が約2と等しい際に、スループットがピークに達するようである。
【0329】
(6) ゲール・シャプレイのアルゴリズム。 小型支払いの公開は、バッチングを用いることなく進行する。送信側と受信側のポジションが許可すると、最も古い支払いに優先権を与えながら、支払いが公開される。所定の送信側と受信側を持つ小型支払いは、2者間待ち行列から、厳密なFIFO注文において公開される。
【0330】
公開されるどの支払いが最も古いかに関する判断は、受信側と送信側の観点において異なる。この理由のために、送信側と受信側の両方にとって最適な、公開される支払いの選択を行うべく、ゲール・シャプレイのアルゴリズムが使用される。
【0331】
単純に最も古く最初のシステム待ち行列から支払いを公開しようと試みることにより、ほぼ同様の結果が得られる一方で、発明者達には、本方法は、プロセッサ時間がより経済的であるという信じるべき理由がある。
【0332】
(7) 支払いの混乱。 ゲール・シャプレイのアルゴリズム(上述)は、関連する支払いと限度のサイズに対して、送信側と受信側のポジションを実際に調べることにより、その支払いが公開されるかどうかを調べる。関連する間接費を削減するために、手段を考案するのは実行には十分に高額である。SENDERSTATEマスクとRECEIVERSTATEマスクは、どの参加者が、送信または受信する支払いを持っているかを示す。現在可能な全ての公開が実施されてしまっているため、システムが新規の支払いの待ち行列登録を静かに待っている際に、SENDERSTATEとRECEIVERSTATEの両方はゼロまたはヌルである。新規の支払いが待ち行列登録されると、送信側銀行を表すSENDERSTATEのビットが設定される。同様に、受信側銀行を表すRECEIVERSTATEのビットも設定される。
【0333】
GALESHAPLEY手順が支払いに公開の印を付けると、さらなる支払いの公開を可能にするべく働く。この支払いの公開により、受信側銀行のポジションが上がるため、この手続きは、受信側銀行に関連してSENDERSTATEのビットを設定する。同様に、この手続きは、送信側銀行に関連してRECEIVERSTATEのビットも設定する。外側ブロックコードが、追加の支払い注文の待ち行列登録をする必要のない公開がなくなるまで、GALESHAPLEYを繰り返し呼び出す。この方法において、ある新規の支払いは、設定されたこれらの「状態」マスク内に多数のビットが存在する状態になり、外側ブロックコードが、新規の支払いを待ち行列登録するよう頼む前に、支払いが一斉に公開される。新しい支払いを待ち行列登録しようと試みる直前に、SENDERSTATEとRECEIVERSTATEの両方がゼロにリセットされ、(もしあれば)混乱が終了する。
【0334】
本発明を、その好適な実施形態に関連して説明してきた。本発明の変形において、最小残高の値、オープニング残高、最大残高を、公開アルゴリズムのオペレーションに著しく影響せずに、各参加者について上方または下方に変更することが可能である。特に、各参加者についてのオープニング残高がゼロであった場合、アルゴリズムのオペレーションは同一であり、最小残高はプレファンド金額を下回り、最大残高はプレファンド金額と同額になる。このような場合、利用可能残高は、各々の場合において、残高とプレファンド金額の合計金額に等しくなる。従って、本発明は、残高、その最大および最小限度に関連した上述の規定に限定されるものではない。なぜなら、公開アルゴリズムのオペレーションを考慮する限り、これらは付加定数の範囲内において無関係なためである。本発明は、いかなる形でも好適な実施形態によって限定されることはない。
【0335】
当然、本発明がこれら特定に説明された形態以外の形態をとることも可能であり、本発明の範囲は請求項によってのみ決定される。
【図面の簡単な説明】
【図1】 本発明の公開手順支払い処理の流れを示す。
【図1A】 本発明を実現するためのコンピュータシステムのブロック線図を示す。
【図2】 本発明の多者間バッチングのツリー支払い構造を示す。
【図3】 帳尻を合わせた公開エンジンの全体的な支払いメッセージの流れを示すフローチャートである。
【図4】 手続きCHECKSENDPAYMTの処理フローを示すフローチャートである。
【図5】 手続きGALESHAPLYの処理の流れを示すフローチャートである。
Claims (27)
- 複数の金融機関参加者間の連続的な1日の支払い注文の最終決済処理のためのシステムであって、前記参加者の各々は支払い注文を電子的に送信するよう動作する関連した衛星コンピュータステーションを有し、そして前記衛星コンピュータステーションの各々は支払い受信側参加者および支払い送信側参加者として機能するよう動作するものであり、前記システムは、
(a)前記複数の参加者の衛星コンピュータステーションと電子的に通信を行って支払い注文を受信する中央コンピュータプロセッサと、
(b)プレファンド残高口座内の複数の利用可能な残高を記憶する記憶デバイスとを有し、前記プレファンド残高口座の各々はある業務日の開始時における参加者の初回利用可能残高を含んでおり、
前記中央コンピュータプロセッサは、
送信側参加者として動作する前記衛星コンピュータステーションの1つから前記中央コンピュータプロセッサが支払い注文を受信すると、受信した支払い注文が、関連する送信側参加者の初回利用可能残高または当該支払い注文と関連する受信側参加者の初回利用可能残高の所定の割合未満のときには、当該支払い注文を「小型」に、それ以外であれば「大型」に分類し、
前記小型または大型支払い注文を、前記中央コンピュータプロセッサが管理する待ち行列に記憶し、
前記待ち行列に記憶されている小型支払い注文に対し、関連する送信側参加者と受信側参加者双方の利用可能残高がそれぞれの所定の限度内になったときには、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記小型支払い注文の総額を、前記関連する送信側参加者の利用可能残高から引き落とし、そして前記関連する受信側参加者の利用可能残高へ入金し、そして
前記待ち行列に記憶されている大型支払い注文に対し、(i)前記大型支払い注文と、前記大型支払い注文の送信側参加者の利用可能残高から引き落とすことで所定の最小限度よりも少ない利用可能残高になったときには前記大型支払い注文の送信側参加者とは別の少なくとも1つの送信側参加者からの、前記大型支払い注文の前記送信側参加者が前記受信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第1の支払い注文の集合を形成することにより、(ii)前記大型支払い注文と、前記大型支払い注文の受信側参加者の利用可能残高に入金することで所定の最大限度よりも多い利用可能残高になったときには前記大型支払い注文の受信側参加者とは別の少なくとも1つの受信側参加者への、前記大型支払い注文の前記受信側参加者が前記送信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第2の支払い注文の集合を形成することにより、そして(iii)前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記第1及び第2の支払い注文の集合の前記大型支払い注文と前記ヘルパー支払い注文とを有する多者間バッチ処理において、前記大型支払い注文の送信側参加者と前記ヘルパー支払い注文の送信側参加者の利用可能残高から各々の支払い注文の総額を引き落とし、そして、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記多者間バッチ処理において、前記大型支払い注文の受信側参加者と前記ヘルパー支払い注文の受信側参加者の残高に各々の支払い注文の総額を入金することによって、多者間バッチ処理を連続的に行う、
よう動作するようプログラムされていることを特徴とするシステム。 - 前記中央コンピュータプロセッサが、
2者間バッチ処理において、前記大型支払い注文の関連する受信側参加者からの、前記大型支払い注文の総額に対して所定の範囲内の総額である、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、大型支払い注文の金額を相殺し、
前記大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成し、そして
前記擬似支払い注文を前記待ち行列内に記憶する、
ようプログラムされていることを特徴とする請求項1に記載のシステム。 - 前記中央コンピュータプロセッサが、前記2者間バッチ処理の前記大型支払い注文の半分の大きさと前記大型支払い注文の2倍の大きさとの間の範囲内で、前記2者間バッチ処理において前記第2支払い注文を選択するようプログラムされていることを特徴とする請求項2に記載のシステム。
- 前記中央コンピュータプロセッサが、先入先出し待ち行列規則に従って前記待ち行列から公開する小型支払い注文を選択するようプログラムされており、前記公開された小型の支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項1に記載のシステム。
- 前記中央コンピュータプロセッサが、ゲール・シャプレイのアルゴリズムに従って前記待ち行列から公開する小型支払い注文を選択するようプログラムされており、前記公開された小型支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項4に記載のシステム。
- 前記中央コンピュータプロセッサが、支払い注文を小型または大型として分類する前記所定の割合を、前記関連する送信側参加者の初回利用可能残高と前記関連する受信側参加者の初回利用可能残高との小さい方の80%に選択するようプログラムされていることを特徴とする請求項1に記載のシステム。
- 前記中央コンピュータプロセッサが、あらゆるプレファンド残高口座の利用可能残高が初回利用可能残高の200%を越えないかゼロを下回らないように、所定の限度を設定するようプログラムされていることを特徴とする請求項1に記載のシステム。
- 前記小型支払い注文のカテゴリーが「中型」及び「超小型」支払い注文のサブカテゴリーに分割され、大型と中型支払い注文のみがヘルパー支払い注文になることができることを特徴とする請求項1に記載のシステム。
- 前記待ち行列は複数の待ち行列を有し、超小型、中型及び大型支払い注文が、各々の支払い注文のサイズに基づいて、前記複数の待ち行列のそれぞれに記憶されることを特徴とする請求項8に記載のシステム。
- 複数の金融機関参加者間の連続的な1日の支払い注文の最終決済処理のシステムを動作させる方法であって、前記参加者の各々は支払い注文を電子的に送信するよう動作する関連した衛星コンピュータステーションを有し、そして前記衛星コンピュータステーションの各々は支払い受信側参加者および支払い送信側参加者として機能するよう動作するものであり、前記システムは、前記複数の参加者の衛星コンピュータステーションと電子的に通信を行って支払い注文を受信する中央コンピュータプロセッサと、プレファンド残高口座内の複数の利用可能な残高を記憶する記憶デバイスとを有し、前記プレファンド残高口座の各々はある業務日の開始時における初回利用可能残高を含んでおり、前記中央コンピュータプロセッサが、
送信側参加者として動作する前記衛星コンピュータステーションの1つから前記中央コンピュータプロセッサが支払い注文を受信すると、受信した支払い注文が、関連する送信側参加者の初回利用可能残高または当該支払い注文と関連する受信側参加者の初回利用可能残高の所定の割合未満のときには、当該支払い注文を「小型」に、それ以外であれば「大型」に分類するステップと、
前記小型または大型支払い注文を、前記中央コンピュータプロセッサが管理する待ち行列に記憶するステップと、
前記待ち行列に記憶されている小型支払い注文に対し、関連する送信側参加者と受信側参加者双方の利用可能残高がそれぞれの所定の限度内になったときには、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記小型支払い注文の総額を、前記関連する送信側参加者の利用可能残高から引き落とし、そして前記関連する受信側参加者の利用可能残高に入金する、前記送信するステップと、
前記待ち行列に記憶されている大型支払い注文に対し、(i)前記大型支払い注文と、前記大型支払い注文の送信側参加者の利用可能残高から引き落とすことで所定の最小限度よりも少ない利用可能残高になったときには前記大型支払い注文の受信側参加者とは別の少なくとも1つの送信側参加者からの、前記大型支払い注文の前記送信側参加者が前記受信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第1の支払い注文の集合を形成することにより、(ii)前記大型支払い注文と、前記大型支払い注文の受信側参加者の利用可能残高に入金することで所定の最大限度よりも多い利用可能残高になったときには前記大型支払い注文の受信側参加者とは別の少なくとも1つの受信側参加者への、前記大型支払い注文の前記受信側参加者が前記送信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第2の支払い注文の集合を形成することにより、そして(iii)前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記第1及び第2の支払い注文の集合の前記大型支払い注文と前記ヘルパー支払い注文とを有する多者間バッチ処理において、前記大型支払い注文の送信側参加者と前記ヘルパー支払い注文の送信側参加者の利用可能残高から各々の支払い注文の総額を引き落とし、そして、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記多者間バッチ処理において、前記大型支払い注文の受信側参加者と前記ヘルパー支払い注文の受信側参加者の残高に各々の支払い注文の総額を入金することによって、多者間バッチ処理を連続的に行うステップと、
を実行するようプログラムされていることを特徴とする方法。 - 前記中央コンピュータプロセッサが、
2者間バッチ処理において、前記大型支払い注文の関連する受信側参加者からの、前記大型支払い注文の総額に対して所定の範囲内の総額である、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、大型支払い注文の金額を相殺するステップと、
前記大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成するステップと、
前記擬似支払い注文を前記待ち行列内に記憶するステップと、
を実行するようさらにプログラムされていることを特徴とする請求項10に記載の方法。 - 前記中央コンピュータプロセッサが、前記2者間バッチ処理の前記大型支払い注文の半分の大きさと前記大型支払い注文の2倍の大きさとの間の範囲内で、前記2者間バッチ処理における前記第2支払い注文を選択するステップを実行するようさらにプログラムされていることを特徴とする請求項11に記載の方法。
- 前記中央コンピュータプロセッサが、先入先出し待ち行列規則に従って前記待ち行列から公開する小型支払い注文を選択するステップを実行するようさらにプログラムされており、前記公開された小型支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項10に記載の方法。
- 前記中央コンピュータプロセッサが、ゲール・シャプレイのアルゴリズムに従って前記待ち行列から公開する小型支払い注文を選択するステップを実行するようさらにプログラムされており、前記公開された小型支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項13に記載の方法。
- 前記中央コンピュータプロセッサが、支払い注文を小型または大型として分類する前記所定の割合を、前記関連する送信側参加者の初回利用可能残高と前記関連する受信側参加者の初回利用可能残高との小さい方の80%に選択するステップを実行するようさらにプログラムされていることを特徴とする請求項10に記載の方法。
- 前記中央コンピュータプロセッサが、あらゆるプレファンド残高口座の利用可能残高が初回利用可能残高の200%を越えないかゼロを下回らないように、所定の限度を設定するステップを実行するようさらにプログラムされていることを特徴とする請求項10に記載の方法。
- 前記小型支払いの注文カテゴリーが、「中型」及び「超小型」のサブカテゴリーに分割され、大型と中型支払い注文のみがヘルパー支払い注文になることができることを特徴とする請求項10に記載の方法。
- 前記待ち行列は複数の待ち行列を有し、超小型、中型及び大型支払い注文が、各々の支払い注文のサイズに基づいて、前記複数の待ち行列のそれぞれに記憶されることを特徴とする請求項17に記載の方法。
- 実行されると、複数の金融機関参加者間における連続的な1日の支払い注文を最終決済処理の方法を遂行するシステムとなるプログラムコードを記憶するコンピュータ読み取り可能媒体であって、前記金融機関参加者の各々は支払い注文を電子的に送信するよう動作する関連した衛星コンピュータステーションを有し、そして前記衛星コンピュータステーションの各々は支払い受信側参加者および支払い送信側参加者として機能するよう動作するものであり、前記システムは前記プログラムコードを実行する中央コンピュータプロセッサを含み、前記中央コンピュータプロセッサは前記複数の参加者の衛星コンピュータステーションと電子的に通信を行って支払い注文を受信するものであり、前記システムはさらにプレファンド残高口座に複数の利用可能な残高を記憶する記憶デバイスを含み、前記プレファンド残高口座の各々はある業務日の開始時における初回利用可能な残高を含んでおり、前記方法は、
送信側参加者として動作する前記衛星コンピュータステーションの1つから前記中央コンピュータプロセッサが支払い注文を受信すると、受信した支払い注文が、関連する送信側参加者の初回利用可能残高または当該支払い注文と関連する受信側参加者の初回利用可能残高の所定の割合未満のときには、当該支払い注文を「小型」に、それ以外であれば「大型」に分類するステップと、
前記小型または大型支払い注文を、前記中央コンピュータプロセッサが管理する待ち行列に記憶するステップと、
前記待ち行列に記憶されている小型支払い注文に対し、関連する送信側参加者と受信側参加者双方の利用可能残高がそれぞれの所定の限度内になったときには、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記小型支払い注文の総額を、前記関連する送信側参加者の利用可能残高から引き落とし、そして前記関連する受信側参加者の利用可能残高に入金する、前記送信するステップと、
前記待ち行列に記憶されている大型支払い注文に対し、(i)前記大型支払い注文と、
前記大型支払い注文の送信側参加者の利用可能残高から引き落とすことで所定の最小限度よりも少ない利用可能残高になったときには前記大型支払い注文の受信側参加者とは別の少なくとも1つの送信側参加者からの、前記大型支払い注文の前記送信側参加者が前記受信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第1の支払い注文の集合を形成することにより、(ii)前記大型支払い注文と、前記大型支払い注文の受信側参加者の利用可能残高に入金することで所定の最大限度よりも多い利用可能残高になったときには前記大型支払い注文の受信側参加者とは別の少なくとも1つの受信側参加者への、前記大型支払い注文の前記受信側参加者が前記送信側参加者であるヘルパー支払い注文であって、関連する送信側参加者および受信側参加者の双方の利用可能残高がそれぞれの所定の限度内にあるという、前記ヘルパー支払い注文の各々に対する決定に基づいて前記待ち行列から選択された前記ヘルパー支払い注文とを備えた第2の支払い注文の集合を形成することにより、そして(iii)前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記第1及び第2の支払い注文の集合の前記大型支払い注文と前記ヘルパー支払い注文とを有する多者間バッチ処理において、前記大型支払い注文の送信側参加者と前記ヘルパー支払い注文の送信側参加者の利用可能残高から各々の支払い注文の総額を引き落とし、そして、前記中央コンピュータプロセッサから前記記憶デバイスへメッセージを送信して、前記多者間バッチ処理において、前記大型支払い注文の受信側参加者と前記ヘルパー支払い注文の受信側参加者の残高に各々の支払い注文の総額を入金することによって、多者間バッチ処理を連続的に行うステップと、
を含むことを特徴とするコンピュータ読み出し可能媒体。 - 前記方法がさらに、
2者間バッチ処理において、前記大型支払い注文の関連する受信側参加者からの、前記大型支払い注文の総額に対して所定の範囲内の総額である、既に待ち行列登録されている第2支払い注文について前記待ち行列を検索することにより、大型支払い注文の金額を相殺するステップと、
前記大型支払い注文と第2支払い注文の間の正味差額の金額の擬似支払い注文を生成するステップと、
前記擬似支払い注文を該待ち行列内に記憶するステップとを含むことを特徴とする請求項19に記載のコンピュータ読み取り可能媒体。 - 前記選択的に相殺するステップにおいて、前記中央コンピュータプロセッサは、前記該2者間バッチ処理の前記大型支払い注文の半分の大きさと前記大型支払い注文の2倍の大きさとの間の範囲内で、前記2者間バッチ処理における前記第2支払い注文を選択することを特徴とする請求項20に記載のコンピュータ読み取り可能媒体。
- 前記方法はさらに、前記中央コンピュータプロセッサが、先入先出し待ち行列規則に従って公開する小型支払い注文を選択するステップをさらに含み、前記公開された小型支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項19に記載のコンピュータ読み取り可能媒体。
- 前記方法はさらに、前記中央コンピュータプロセッサが、ゲール・シャプレイのアルゴリズムに従って、前記待ち行列から公開する小型支払い注文を選択するステップをさらに含み、前記公開された小型支払い注文は、前記待ち行列から取り除かれて受信側参加者へ送られる小型支払い注文であることを特徴とする請求項22に記載のコンピュータ読み取り可能媒体。
- 前記方法はさらに、前記中央コンピュータプロセッサが、支払い注文を小型または大型として分類するための所定の割合を、前記関連する送信側参加者の初回利用可能残高と前記関連する受信側参加者の初回利用可能残高との小さい方の80%に選択するステップを含むことを特徴とする請求項19に記載のコンピュータ読み取り可能媒体。
- 前記方法はさらに、前記中央コンピュータプロセッサが、あらゆるプレファンド残高口座の利用可能残高が初回利用可能残高の200%を越えないかゼロを下回らないように、所定の限度額を設定するステップを含むことを特徴とする請求項19に記載のコンピュータ読み取り可能媒体。
- 前記小型支払い注文のカテゴリーが、「中型」及び「超小型」のサブカテゴリーに分割され、大型と中型支払い注文のみが、ヘルパー支払い注文になることができることを特徴とする請求項19に記載のコンピュータ読み取り可能媒体。
- 前記待ち行列は複数の待ち行列を有し、超小型、中型及び大型支払い注文が、各々の支払い注文のサイズに基づいて、前記複数の待ち行列のそれぞれに記憶されることを特徴とする請求項26に記載のコンピュータ読み取り可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8422398P | 1998-05-05 | 1998-05-05 | |
US60/084,223 | 1998-05-05 | ||
PCT/US1999/009698 WO1999057665A1 (en) | 1998-05-05 | 1999-05-05 | System and method for intraday netting payment finality |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002513975A JP2002513975A (ja) | 2002-05-14 |
JP3847560B2 true JP3847560B2 (ja) | 2006-11-22 |
Family
ID=22183593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000547569A Expired - Lifetime JP3847560B2 (ja) | 1998-05-05 | 1999-05-05 | 1日のネッティング支払い決済のためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6076074A (ja) |
EP (1) | EP1093625A4 (ja) |
JP (1) | JP3847560B2 (ja) |
CA (1) | CA2330341A1 (ja) |
WO (1) | WO1999057665A1 (ja) |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826545B2 (en) * | 1998-06-18 | 2004-11-30 | Nec Corporation | Method for settling accounts among a plurality of participants |
US7734541B2 (en) * | 1998-12-08 | 2010-06-08 | Yodlee.Com, Inc. | Interactive funds transfer interface |
US7117172B1 (en) | 1999-03-11 | 2006-10-03 | Corecard Software, Inc. | Methods and systems for managing financial accounts |
US8560423B1 (en) | 1999-05-10 | 2013-10-15 | Edeposit Corporation | Web-based account management |
US7110978B1 (en) * | 1999-05-10 | 2006-09-19 | First Data Corporation | Internet-based money order system |
US7092904B1 (en) * | 1999-05-10 | 2006-08-15 | Edeposit Corporation | Web-based account management for hold and release of funds |
US20080243721A1 (en) * | 1999-08-24 | 2008-10-02 | Raymond Anthony Joao | Apparatus and method for providing financial information and/or investment information |
US6629081B1 (en) * | 1999-12-22 | 2003-09-30 | Accenture Llp | Account settlement and financing in an e-commerce environment |
US7069234B1 (en) | 1999-12-22 | 2006-06-27 | Accenture Llp | Initiating an agreement in an e-commerce environment |
US7283977B1 (en) * | 2000-02-25 | 2007-10-16 | Kathleen Tyson-Quah | System for reducing risk payment-based transactions wherein a risk filter routine returns instructions authorizing payment to a payment queue for later re-evaluation |
US20010037284A1 (en) * | 2000-03-27 | 2001-11-01 | Finkelstein Ephraim Brian | Negotiated right exchange system and method |
AU5724401A (en) * | 2000-04-26 | 2001-11-07 | Oracle Corp | Many-to-many correspondance: methods and systems for replacing interbank funds transfers |
US20030208440A1 (en) * | 2000-05-01 | 2003-11-06 | Robert Harada | International payment system and method |
US20020013767A1 (en) * | 2000-06-26 | 2002-01-31 | Norman Katz | Electronic funds transfer system for financial transactions |
US7797207B1 (en) * | 2000-07-24 | 2010-09-14 | Cashedge, Inc. | Method and apparatus for analyzing financial data |
US7536340B2 (en) * | 2000-07-24 | 2009-05-19 | Cashedge, Inc. | Compliance monitoring method and apparatus |
US20030236728A1 (en) * | 2000-09-20 | 2003-12-25 | Amir Sunderji | Method and apparatus for managing a financial transaction system |
US7383223B1 (en) * | 2000-09-20 | 2008-06-03 | Cashedge, Inc. | Method and apparatus for managing multiple accounts |
US7953660B2 (en) * | 2000-12-28 | 2011-05-31 | Checkfree Services Corporation | Method and system for payment processing |
US20020087469A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Technique of registration for and direction of electronic payments in real-time |
US20020087461A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Technique for electronic funds escrow |
US20020087468A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Electronic payment risk processing |
US20020111886A1 (en) * | 2001-02-12 | 2002-08-15 | Chenevich William L. | Payment management |
WO2002086672A2 (en) * | 2001-04-19 | 2002-10-31 | Espeed, Inc. | Electronic asset assignment and tracking |
US20030018554A1 (en) * | 2001-06-07 | 2003-01-23 | Efunds Corporation | Network and process for settling financial transactions |
US7822679B1 (en) | 2001-10-29 | 2010-10-26 | Visa U.S.A. Inc. | Method and system for conducting a commercial transaction between a buyer and a seller |
US20050187867A1 (en) * | 2002-01-03 | 2005-08-25 | Sokolic Jeremy N. | System and method for associating identifiers with transactions |
US20040236653A1 (en) * | 2002-01-03 | 2004-11-25 | Sokolic Jeremy N. | System and method for associating identifiers with data |
EP1326192A1 (en) * | 2002-01-07 | 2003-07-09 | S.W.I.F.T. sc | E-commerce payment system |
US7778914B1 (en) * | 2002-01-14 | 2010-08-17 | Goldman Sachs & Co. | Method and apparatus for agreement netting |
MXPA04007821A (es) * | 2002-02-14 | 2005-04-19 | Pessin Zachary | Aparato y metodo para un sistema de capital distribuido. |
US7979348B2 (en) | 2002-04-23 | 2011-07-12 | Clearing House Payments Co Llc | Payment identification code and payment system using the same |
US7685051B2 (en) * | 2002-05-31 | 2010-03-23 | Intercontinentalexchange, Inc. | System for settling over the counter trades |
US7110980B2 (en) * | 2002-06-21 | 2006-09-19 | American Express Bank Ltd. | System and method for facilitating electronic transfer of funds |
US20040034596A1 (en) * | 2002-08-19 | 2004-02-19 | Jeremy Light | Electronic payment management |
US7330835B2 (en) * | 2002-10-31 | 2008-02-12 | Federal Reserve Bank Of Minneapolis | Method and system for tracking and reporting automated clearing house transaction status |
US7792716B2 (en) * | 2002-10-31 | 2010-09-07 | Federal Reserve Bank Of Atlanta | Searching for and identifying automated clearing house transactions by transaction type |
US8032452B2 (en) * | 2002-11-06 | 2011-10-04 | The Western Union Company | Multiple-entity transaction systems and methods |
US8036982B2 (en) * | 2003-02-12 | 2011-10-11 | Mann Conroy Eisenberg & Associates, Llc | Computer system for controlling a system of managing fluctuating cash flows |
US7558757B2 (en) * | 2003-02-12 | 2009-07-07 | Mann Conroy Eisenberg & Associates | Computer system for managing fluctuating cash flows |
US7660762B1 (en) | 2003-03-28 | 2010-02-09 | Citigroup Global Markets, Inc. | Method and system for efficiently matching long and short positions in securities trading and transacting a series of overnight trades for balance sheet netting |
US8156040B2 (en) * | 2003-07-03 | 2012-04-10 | Federal Reserve Bank Of Minneapolis | Method and system for conducting international electronic financial transactions |
US8725609B2 (en) * | 2003-09-08 | 2014-05-13 | The Clearing House Payments Company L.L.C. | System and method for intraday netting payment finality with supplemental funding |
US8606602B2 (en) * | 2003-09-12 | 2013-12-10 | Swiss Reinsurance Company Ltd. | Systems and methods for automated transactions processing |
US8417636B2 (en) * | 2003-09-30 | 2013-04-09 | Federal Reserve Bank Of Atlanta | Approving ACH operator processing of ACH payments based on an originating depository financial institution's approved originator list |
US8543477B2 (en) * | 2003-09-30 | 2013-09-24 | Federal Reserve Bank Of Atlanta | Value tracking and reporting of automated clearing house transactions |
US8150770B1 (en) | 2003-12-29 | 2012-04-03 | The Pnc Financial Services Group, Inc. | System and method for reordering checks |
US8725607B2 (en) | 2004-01-30 | 2014-05-13 | The Clearing House Payments Company LLC | Electronic payment clearing and check image exchange systems and methods |
US7627500B2 (en) | 2004-04-16 | 2009-12-01 | Sap Ag | Method and system for verifying quantities for enhanced network-based auctions |
US7788160B2 (en) * | 2004-04-16 | 2010-08-31 | Sap Ag | Method and system for configurable options in enhanced network-based auctions |
US7783520B2 (en) | 2004-04-16 | 2010-08-24 | Sap Ag | Methods of accessing information for listing a product on a network based auction service |
US7877313B2 (en) | 2004-04-16 | 2011-01-25 | Sap Ag | Method and system for a failure recovery framework for interfacing with network-based auctions |
US7860749B2 (en) | 2004-04-16 | 2010-12-28 | Sap Ag | Method, medium and system for customizable homepages for network-based auctions |
US20060004648A1 (en) * | 2004-04-16 | 2006-01-05 | Narinder Singh | Method and system for using templates for enhanced network-based auctions |
US7721304B2 (en) * | 2004-06-08 | 2010-05-18 | Cisco Technology, Inc. | Method and apparatus providing programmable network intelligence |
US8606697B2 (en) | 2004-06-17 | 2013-12-10 | Visa International Service Association | Method and system for providing buyer bank payable discounting services |
US7881996B1 (en) | 2004-08-03 | 2011-02-01 | Federal Reserve Bank Of Atlanta | Method and system for screening financial transactions |
US20060080217A1 (en) * | 2004-08-31 | 2006-04-13 | Blackall Grenville W | Clearing house for buying and selling short term liquidity |
US7580886B1 (en) * | 2004-09-15 | 2009-08-25 | Federal Reserve Bank Of Atlanta | Managing foreign payments in an international ACH |
US7650309B2 (en) * | 2004-10-28 | 2010-01-19 | The Depository Trust and Clearing Corporation | Methods and systems for netting of payments and collateral |
US7711639B2 (en) * | 2005-01-12 | 2010-05-04 | Visa International | Pre-funding system and method |
JP4879528B2 (ja) * | 2005-08-26 | 2012-02-22 | 株式会社日立製作所 | マルチラテラルネッティング決済方法、システム及びプログラム |
US20070143205A1 (en) * | 2005-10-31 | 2007-06-21 | Sap Ag | Method and system for implementing configurable order options for integrated auction services on a seller's e-commerce site |
US20070150406A1 (en) * | 2005-10-31 | 2007-06-28 | Sap Ag | Bidder monitoring tool for integrated auction and product ordering system |
US8095428B2 (en) | 2005-10-31 | 2012-01-10 | Sap Ag | Method, system, and medium for winning bid evaluation in an auction |
US7895115B2 (en) * | 2005-10-31 | 2011-02-22 | Sap Ag | Method and system for implementing multiple auctions for a product on a seller's E-commerce site |
US20070106595A1 (en) * | 2005-10-31 | 2007-05-10 | Sap Ag | Monitoring tool for integrated product ordering/fulfillment center and auction system |
US7835977B2 (en) * | 2005-11-03 | 2010-11-16 | Sap Ag | Method and system for generating an auction using a template in an integrated internal auction system |
US8095449B2 (en) * | 2005-11-03 | 2012-01-10 | Sap Ag | Method and system for generating an auction using a product catalog in an integrated internal auction system |
CA2573855A1 (en) * | 2006-01-25 | 2007-07-25 | Espeed, Inc. | Systems and methods for facilitating completion of repurchase agreements |
US7624070B2 (en) * | 2006-03-08 | 2009-11-24 | Martin Frederick Lebouitz | Open payments target marketing system |
US7848997B2 (en) * | 2006-04-06 | 2010-12-07 | Omx Technology Ab | Securities settlement system |
US20070250437A1 (en) * | 2006-04-06 | 2007-10-25 | Omx Technology Ab | Securities settlement system |
US20100312679A1 (en) * | 2006-08-29 | 2010-12-09 | Martin Frederick Lebouitz | System and Method for Analyzing Bank Payment Patterns |
US20080071664A1 (en) * | 2006-09-18 | 2008-03-20 | Reuters America, Inc. | Limiting Counter-Party Risk in Multiple Party Transactions |
US8296223B2 (en) * | 2006-11-07 | 2012-10-23 | Federal Reserve Bank Of Atlanta | System and method for processing duplicative electronic check reversal files |
US20080301022A1 (en) * | 2007-04-30 | 2008-12-04 | Cashedge, Inc. | Real-Time Core Integration Method and System |
US20080301023A1 (en) * | 2007-05-02 | 2008-12-04 | Cashedge, Inc. | Multi-Channel and Cross-Channel Account Opening |
US8694424B2 (en) | 2007-12-18 | 2014-04-08 | Federal Reserve Bank Of Atlanta | System and method for managing foreign payments using separate messaging and settlement mechanisms |
US20090281946A1 (en) | 2008-05-12 | 2009-11-12 | Davis Peter A | ACH Payment Processing |
US20100049642A1 (en) * | 2008-08-19 | 2010-02-25 | Bank Of America | Online billpay attachments |
US8301565B2 (en) * | 2010-04-13 | 2012-10-30 | Bank Of America Corporation | System and method for correspondent bank customer ATM transaction processing |
US8458091B2 (en) * | 2010-07-26 | 2013-06-04 | Accenture Global Services Limited | System and method for prioritizing processing of payment instructions |
US8700510B2 (en) | 2011-02-11 | 2014-04-15 | Federal Reserve Bank Of Atlanta | Redirecting or returning international credit transfers |
JP5794568B2 (ja) * | 2011-09-01 | 2015-10-14 | 国立大学法人東京工業大学 | データ編集装置およびデータ編集方法 |
US20140279384A1 (en) * | 2013-03-15 | 2014-09-18 | Sap Ag | Monitoring financial risks using a quantity ledger |
US20150006350A1 (en) * | 2013-06-28 | 2015-01-01 | D.E. Shaw & Co., L.P. | Electronic Trading Auction with Randomized Acceptance Phase and Order Execution |
US20150006349A1 (en) * | 2013-06-28 | 2015-01-01 | D. E. Shaw & Co., L.P. | Electronic Trading Auction With Orders Interpreted Using Future Information |
US20150066727A1 (en) * | 2013-08-29 | 2015-03-05 | D. E. Shaw & Co., L.P. | Electronic Trading Exchange with User-Definable Order Execution Delay |
US20150081491A1 (en) * | 2013-09-16 | 2015-03-19 | International Business Machines Corporation | Intraday cash flow optimization |
US10515368B1 (en) | 2013-10-01 | 2019-12-24 | Wells Fargo Bank, N.A. | Interbank account verification and funds transfer system and method |
JP6318980B2 (ja) | 2014-08-26 | 2018-05-09 | 富士通株式会社 | データ配置プログラム、データ配置方法およびデータ配置装置 |
US11295308B1 (en) | 2014-10-29 | 2022-04-05 | The Clearing House Payments Company, L.L.C. | Secure payment processing |
US11068866B1 (en) | 2015-02-17 | 2021-07-20 | Wells Fargo Bank, N.A. | Real-time interbank transactions systems and methods |
US11042882B2 (en) | 2015-07-01 | 2021-06-22 | The Clearing House Payments Company, L.L.C. | Real-time payment system, method, apparatus, and computer program |
US11694168B2 (en) | 2015-07-01 | 2023-07-04 | The Clearing House Payments Company L.L.C. | Real-time payment system, method, apparatus, and computer program |
US10437880B2 (en) | 2016-02-08 | 2019-10-08 | Bank Of America Corporation | Archive validation system with data purge triggering |
US10437778B2 (en) | 2016-02-08 | 2019-10-08 | Bank Of America Corporation | Archive validation system with data purge triggering |
US10460296B2 (en) | 2016-02-08 | 2019-10-29 | Bank Of America Corporation | System for processing data using parameters associated with the data for auto-processing |
US9823958B2 (en) | 2016-02-08 | 2017-11-21 | Bank Of America Corporation | System for processing data using different processing channels based on source error probability |
US9952942B2 (en) | 2016-02-12 | 2018-04-24 | Bank Of America Corporation | System for distributed data processing with auto-recovery |
US10067869B2 (en) | 2016-02-12 | 2018-09-04 | Bank Of America Corporation | System for distributed data processing with automatic caching at various system levels |
CA3039882A1 (en) | 2017-01-11 | 2018-07-19 | 10353744 Canada Ltd. | Financial transaction management system, financial transaction management method, and computer program |
US11436577B2 (en) | 2018-05-03 | 2022-09-06 | The Clearing House Payments Company L.L.C. | Bill pay service with federated directory model support |
US11025558B2 (en) | 2019-01-30 | 2021-06-01 | Bank Of America Corporation | Real-time resource processing based on resource channel factors |
US11314848B2 (en) | 2019-08-30 | 2022-04-26 | Bank Of America Corporation | System for dynamically appending and transforming static activity data transmitted to a user device application |
US11587079B2 (en) | 2021-03-24 | 2023-02-21 | Bank Of America Corporation | Digital resource distribution network matrix for secure interactions |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5262942A (en) * | 1990-06-05 | 1993-11-16 | Bankers Trust Company | Financial transaction network |
US5465206B1 (en) * | 1993-11-01 | 1998-04-21 | Visa Int Service Ass | Electronic bill pay system |
US5649117A (en) * | 1994-06-03 | 1997-07-15 | Midwest Payment Systems | System and method for paying bills and other obligations including selective payor and payee controls |
US5677955A (en) * | 1995-04-07 | 1997-10-14 | Financial Services Technology Consortium | Electronic funds transfer instruments |
US6090300A (en) | 1998-05-26 | 2000-07-18 | Xerox Corporation | Ion-implantation assisted wet chemical etching of III-V nitrides and alloys |
-
1999
- 1999-05-05 WO PCT/US1999/009698 patent/WO1999057665A1/en not_active Application Discontinuation
- 1999-05-05 JP JP2000547569A patent/JP3847560B2/ja not_active Expired - Lifetime
- 1999-05-05 US US09/305,311 patent/US6076074A/en not_active Expired - Lifetime
- 1999-05-05 CA CA002330341A patent/CA2330341A1/en not_active Abandoned
- 1999-05-05 EP EP99921635A patent/EP1093625A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CA2330341A1 (en) | 1999-11-11 |
EP1093625A4 (en) | 2004-07-07 |
US6076074A (en) | 2000-06-13 |
WO1999057665A1 (en) | 1999-11-11 |
EP1093625A1 (en) | 2001-04-25 |
JP2002513975A (ja) | 2002-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3847560B2 (ja) | 1日のネッティング支払い決済のためのシステムおよび方法 | |
US20190220833A1 (en) | System and method for intraday netting payment finality with supplemental funding | |
USRE43246E1 (en) | Money fund bank system | |
US7809640B1 (en) | Money fund banking system | |
US8543477B2 (en) | Value tracking and reporting of automated clearing house transactions | |
US20020077971A1 (en) | Bank-based international money transfer system | |
CN106326771A (zh) | 一种保存方法和清算系统 | |
US20060206419A1 (en) | Business process and user interfaces for money transfer | |
US20110106677A1 (en) | System and method of offsetting invoice obligations | |
JP2007047999A (ja) | 証券決済残高管理システム及び証券決済残高管理プログラム | |
KR100725465B1 (ko) | 다중 외화 정기 예금이 가능한 외화 예금 시스템 | |
JP2003132220A (ja) | 電子手形管理システム及びその方法 | |
JP2003168004A (ja) | 出金処理方法、融資認証処理方法および金融機関システム | |
EP2355029A1 (en) | Electronic clearing and payment system | |
US20130046682A1 (en) | Electronic clearing and payment system | |
JP2005050375A (ja) | 電子手形管理システム及びその方法 | |
KR100490314B1 (ko) | 온라인망을 기반으로 하는 예금 연동형 대출이자 관리 시스템 | |
MXPA00010891A (en) | System and method for intraday netting payment finality | |
JP2005284390A (ja) | 通信網を用いた決済方法および決済システム | |
KR20220089946A (ko) | 목돈 마련 방법 | |
WO2002005227A1 (en) | Arrangement and method for a world wide payment system on internet | |
Devan | Payment systems Worldwide: A Snapshot | |
EP2355032A1 (en) | Electronic clearing and payment system | |
EP2355030A1 (en) | Electronic clearing and payment system | |
EP2355031A1 (en) | Electronic clearing and payment system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050427 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050727 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050803 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051027 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060411 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060629 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060823 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130901 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |