(57)【特許請求の範囲】
【請求項１】
証券システムに複数の回線で接続される管理端末において、
要求応答処理により前記証券システムから受信する注文データ及び当該要求応答処理のキー値を保持する記憶装置と、
第一の回線を用いて前記証券システムに対し新規要求を行うスレッドであって、直近の要求から時刻を遡る方向で、保持しているキー値までの新規要求を行い、この新規要求が終了すると、保持しているキー値を前記直近要求におけるキー値に更新し、該処理を繰り返す第一のスレッドと、
第二の回線を用いて前記証券システムに対し更新要求を行うスレッドであって、保持しているキー値以前の注文データの更新要求を行い、該処理を繰り返す第二のスレッドとを、並列的に処理する処理装置とを備えた、証券システムにおける管理端末。
【請求項２】
証券システムに複数の回線で接続される管理端末において、
前記管理端末であるコンピュータに、
要求応答処理により前記証券システムから受信する注文データ及び当該要求応答処理のキー値を記憶装置に保持する機能と、
第一の回線を用いて前記証券システムに対し新規要求を行うスレッドであって、直近の要求から時刻を遡る方向で、保持しているキー値までの新規要求を行い、この新規要求が終了すると、保持しているキー値を前記直近要求におけるキー値に更新し、該処理を繰り返す第一のスレッドと、
第二の回線を用いて前記証券システムに対し更新要求を行うスレッドであって、保持しているキー値以前の注文データの更新要求を行い、該処理を繰り返す第二のスレッドとを、処理装置に並列的に処理させる機能とを実現させるためのプログラム。
【請求項３】
証券システムに複数の回線で接続される管理端末における方法において、
要求応答処理により前記証券システムから受信する注文データ及び当該要求応答処理のキー値を記憶装置に保持するステップと、
第一の回線を用いて前記証券システムに対し新規要求を行うスレッドであって、直近の要求から時刻を遡る方向で、保持しているキー値までの新規要求を行い、この新規要求が終了すると、保持しているキー値を前記直近要求におけるキー値に更新し、該処理を繰り返す第一のスレッドと、
第二の回線を用いて前記証券システムに対し更新要求を行うスレッドであって、保持しているキー値以前の注文データの更新要求を行い、該処理を繰り返す第二のスレッドとを、並列的に処理するステップとを有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、要求応答型の電文シーケンスを効率化するための証券システム、方法、およびプログラムに関する。
【背景技術】
【０００２】
従来の証券システムは、取引所と、この取引所にゲートウェイを介した回線で接続される、注文側である証券会社の管理者端末で構成されている。管理者端末は、株式の新たな注文（売りまたは買い）や、すでに行った注文の取消などを行うために、「新規要求」という電文を取引所に対して送信する。取引所は、この要求を受け付けると、注文受付番号を付して、「応答」という電文を管理者端末に送信する。「応答」は、新たな注文に対しては取引所がその注文を受け付けたことを示すものであり（まだ約定したわけではない。）、すでに行った注文の取消に対しては取引所がその注文を取消したことを示すものである。
【０００３】
取引所において、ある端末から受け付けた注文（売りまたは買い）について、他の受け付けた注文（買いまたは売り）が合致すると、取引が約定する。一方、管理者端末は、取引所に対して、すでに行った注文の注文受付番号を指定して、「更新要求」という電文を送信し、これについての取引所からの「応答」を受信することにより、その注文が約定したのか否か、最新状態を知ることができる。
【０００４】
このような要求応答型のシステムには、一つの要求に対する応答を受信した後に次の要求を送信し、これを繰り返すことによって大量の電文を受信するものがある。この仕組みでは取引所からの応答を受信しないと次の要求を送信することができず、その間にも新たな注文が証券会社である自社またはその顧客側から次々に寄せられるので、待ち時間が発生し、その結果、大量のデータの受信に時間がかかるという問題がある。電文は、二つの回線を使用した場合に、１００件の要求応答を処理するのに３秒程度を要しているのが実情である。
【０００５】
しかも、証券システムの一部である管理者端末では、注文取引のために取引所と接続される回線とは別の回線で、証券会社である自社内の全社（または特定部門）の注文などを全て受信する必要があり、高速化が求められるので、これを改善しなければならない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２５０５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
証券システムにおいて、要求応答の為の複数の回線を用意し、これを効率的に使用することである。
【課題を解決するための手段】
【０００８】
証券システムに複数の回線で接続される管理端末において、記憶装置に、要求応答処理により前記証券システムから受信する注文データ及び当該要求応答処理のキー値を保持する。第一の回線を用いて前記証券システムに対し新規要求を行うスレッドであって、直近の要求から時刻を遡る方向で、保持しているキー値までの新規要求を行い、この新規要求が終了すると、保持しているキー値を前記直近要求におけるキー値に更新し、該処理を繰り返す第一のスレッドを有する。第二の回線を用いて前記証券システムに対し更新要求を行うスレッドであって、保持しているキー値以前の注文データの更新要求を行い、該処理を繰り返す第二のスレッドを有する。処理装置は、これらスレッドを並列的に処理する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態の証券システムの構成図
【図２】受信データの集合の内容の一例を示す図
【図３】受信データの管理に関する概念図
【図４】新規要求スレッドＮの処理のフローチャート
【図５】新規要求スレッドＮの処理による受信データの変化の概念図
【図６】更新要求スレッドＡの処理のフローチャート
【発明を実施するための形態】
【実施例】
【００１０】
本発明の実施形態における証券システムで重要とされるのは、管理者端末において、緊急時における「注文の取消」を、待ち時間なく行えるようにすることである。緊急時とは、例えば市場の急激な悪化や、大災害が生じたときである。したがって、注文の内容が多少古いものであったとしても（すなわち前回までに行った注文のデータについては、内容の更新がゆっくりであったとしても）、全てのデータが揃い、取消し操作で指定するキー値が得られることの方が重要である。
【００１１】
本発明の実施形態では、複数の回線を使用して、新規注文のデータの取得を目的とした回線と、すでに行った注文のデータを最新状態に保つことを目的とした回線とに分け、全てのデータが揃うことを優先とした効率的な電文要求応答の仕組みを提案する。
【００１２】
前提として、要求応答で取得する電文の特徴として、（１）要求に対する応答は時刻が直近のものから送られてくること、（２）一つの要求に対する応答は一つまたは二つの電文であり、一電文中のデータ量の最大値が決まっていること、（３）応答電文は継続フラグを持ち、継続フラグが立っている場合は続きを要求できること、（４）要求時に、あるキー値を指定し、そこを起点として時刻を遡る方向でデータを得ることが出来ること、となっているものとする。
【００１３】
図１は、本発明の実施形態の証券システムの構成図である。
【００１４】
証券システムは、取引所１００、ゲートウェイ１０１ならびに１０２、および管理者端末１０３を有する。これら各装置はそれぞれコンピュータにより実現される。
【００１５】
管理者端末１０３は、二つのゲートウェイ１０１ならびに１０２を介して二つの回線で取引所１００に接続される。
【００１６】
管理者端末１０３では、取引所１００に対して株式の発注等を行うためのプログラム１０４が動作しており、そのプログラムにおける要求スレッドとして新規要求スレッドＮならびに更新要求スレッドＡがあり、これら二つのプログラムが並列的に処理装置において動作する。
【００１７】
新規要求スレッドＮから発する実線矢印Ｎ１〜Ｎｘは、ゲートウェイ１０１を介し、取引所１００へ到達する。これらは新規の「要求」の電文を表している。図面上、最も左側にある実線矢印Ｎ１は「直近要求」といい、現在時刻において直近にされた新規要求を表している。これらＮ１〜Ｎｘの各要求にそれぞれ隣接している、取引所１００から発する点線矢印であって、ゲートウェイ１０１を介し、新規要求スレッドＮへと戻っているのは、各要求に対する「応答」の電文を表している。これらＮ１〜Ｎｘに対応する応答の各点線矢印は、さらに記憶装置１０５におけるＤ２へ到達し、受信データの内容が保持される。
【００１８】
更新要求スレッドＡから発する実線矢印Ａ１〜Ａｙは、ゲートウェイ１０２を介し、取引所１００へ到達する。これらは更新の「要求」の電文を表している。これらＡ１〜Ａｙの各要求にそれぞれ隣接している、取引所１００から発する点線矢印であって、ゲートウェイ１０２を介し、更新要求スレッドＮへと戻っているのは、各要求に対する「応答」の電文を表している。これらＡ１〜Ａｙに対応する応答の各点線矢印は、さらに記憶装置１０５におけるＤ２へ到達し、受信データの内容が保持される。
【００１９】
管理者端末１０３は、取引所１００からの応答として受信した個々の電文のデータを、記憶装置１０５に保持している。「要求」に対応する「応答」の電文は、それぞれ、取引所１００によって一意に付される注文受付番号が含まれる。記憶装置１０５において、個々の受信データが、この注文受付番号によって管理されている。
【００２０】
図２は、受信データの集合の内容の一例を示す図である。
【００２１】
朝８：００から９：００までに行われた複数の各注文について、それぞれ、注文受付番号（ａｙ〜ａ１）と、「約定」または「未約定」という状態を保持している。ここで示したデータの内容は、代表的なものであって、この内容に限られるものではなく、他にもさまざまな情報を保持することができる。
【００２２】
図１において示しているＤ１およびＤ２は、それぞれ、ある時点における複数の受信データの集合のスナップショットを概念的に表しているものである。実際は、１つの記憶装置１０５（例えばキャッシュメモリ）として実装される。
【００２３】
Ｄ１は、過去のある時点においてそれまで受信したすべてのデータを表すスナップショットである。すなわちＤ１は、あるキー値Ｌを起点として、時刻を遡る方向で（図面上、左側から右側へ）、これまでに受信したデータの集合を表している。これを、便宜上「前回の受信データＤ１」という。
【００２４】
このＤ１の起点となっている直近データのキー値Ｌを、おなじく記憶装置１０５に保持している。キー値には、取引所１００による注文受付番号が用いられる。
【００２５】
Ｄ２は、現時点において受信しているすべてのデータを表すスナップショットである。図面上、Ｄ２の右側部分は、基本的にＤ１の各内容を引き継いでおり、その引き継いだ部分の一部については、更新要求スレッドＡの処理によって内容が最新の状態に更新される。また、図面上、Ｄ２の左側部分は、Ｄ１の内容に加えて、新規要求スレッドＮの処理によって新たに取得された複数の受信データが追加されることを表している。これを、便宜上「今回の受信データＤ２」という。
【００２６】
新規要求スレッドＮは、直近要求Ｎ１を行い、その応答を受信したら、引き続き、キー値Ｌと同じキー値を持つデータを受信するまで、時刻を遡る方向で（すなわち、図１における直近要求Ｎ１を起点として、左側から右側へ、キー値Ｌと同じキー値を持つデータが受信される新規要求であるＮｘまで）、複数の新規要求を繰り返す。
【００２７】
更新要求スレッドＡは、キー値Ｌを起点に更新要求をＡ１から開始し、最後のデータを受信するＡｙまで、複数の更新要求を繰り返す。
【００２８】
なお、図１において、Ｄ１のキー値Ｌの箇所から発する破線であって、新規要求スレッドＮおよび更新要求スレッドＡにそれぞれ達している破線は、各要求スレッドが、キー値Ｌを参照していることを表している。
【００２９】
図３は、受信データの管理に関する概念図である。
【００３０】
この図３は、図１に示したところのＤ２の具体例となっており、現在時刻が９：１０であるものとして、そのときの受信データの全体のスナップショットを示したものである。
【００３１】
朝８：００から９：００までの間の部分、すなわちａｙからａ１までの個々の受信データの集合が、図１で示しところのＤ１から引き継いだ部分である。キー値Ｌは、９：００において行った要求の注文受付番号であるとする。このａｙからａ１までの各受信データに関しては、更新要求スレッドＡが管理する。すなわち、更新要求スレッドＡは、キー値Ｌが示す９：００を起点として、時刻を遡る方向で（図面上、左側から右側へ）、８：００までの受信データについて、更新要求（図１で示したＡ１〜Ａｙの各々）を行い、その結果として取得された各応答に基づいて、ａ１〜ａｙのデータの内容を更新する。
【００３２】
この部分を更新要求スレッドＡが管理することで、すでに取引所１００に対して要求したある注文の注文受付番号を指定して、取引が約定したのか否か、最新状態を知ることができる。状態が変わったならば、その注文受付番号について保持しているデータの状態を更新する。管理者端末１０３からしてみれば、いつ取引所１００において注文が約定するかは分からないので、キー値Ｌを起点として直近の注文から最古の注文までの更新要求を行い、これを繰り返すのである。なお、すでに約定したことがわかっていれば、その注文受付番号のデータについては更新要求を行わなくてもよい。また、このキー値Ｌ自体については、この繰り返しのタイミングにおいて、新規要求スレッドＮによる処理により更新されている場合がある。
【００３３】
図３において、９：００から９：１０までの間の部分については、新規要求スレッドＮが管理する。すなわち、新たな注文や、またはすでに行った注文の取消を「要求」していることころの各受信データを示している。新規要求スレッドＮは、現在時刻である９：１０の直近要求Ｎ１を行い、その応答として受信データｎ１を取得し、これを起点として、時刻を遡る方向で（図面上、左側から右側へ）、キー値Ｌが示す９：００の分まで、新規要求を一つずつ繰り返し行い、取引所１００からの応答として、受信データｎ２からｎｘまでを取得し、記憶装置１０５に保持する。
【００３４】
ここで、新規要求に関して、古い時刻の要求（９：００直後のｎｘ）から時刻順に取引所１００に送信するのではなく、あくまで、「直近」の要求（９：１０時点のｎ１）から時刻を遡る方向で処理するのは、緊急時における「注文の取消」を、待ち時間なく行えるようにすることが重要だからである。時刻順に要求を処理していくものとすると、各要求ごとに取引所１００からの応答を待たなけれならず、大量の要求が溜まって待ち時間ができてしまい、緊急の取消要求が送信できなくなってしまうからである。このような問題を解決するために、直近の要求から処理を開始し、キー値Ｌまで時刻を遡るように要求を処理し、これを繰り返し行っているのである。
【００３５】
図４は、新規要求スレッドＮの処理のフローチャートである。
【００３６】
処理を開始し（Ｓ４０１）、その現在時刻において、直近の時刻の新規要求（「直近要求」）を行う（Ｓ４０２）。新規要求の電文は、新たな注文の場合は注文受付番号を指定する必要は無いが、すでに行った注文の取消の場合は注文受付番号を指定する。一つの「要求」に対して、取引所１００から「応答」が取得されたら、次の「要求」を送信することが出来る。ここで、現在時刻の「直近要求」がまず第一に実行されるので、緊急時における「注文の取消」を、待ち時間なく行うことができる。
【００３７】
次に、この直近要求を起点として、時刻を遡る方向で複数の新規要求を繰り返し（Ｓ４０３）、「前回」のキー値Ｌと同じキー値となるまで行うと（Ｓ４０４）、新規要求スレッドＮの一連の処理が終了する（Ｓ４０５）。
【００３８】
その終了の時点で、前回の直近要求で取得したキー値を、新たな「キー値Ｌ」として再設定し、新規要求スレッドＮは、新たな直近要求からそのキー値Ｌまでの一連の処理を開始する。
【００３９】
図５は、新規要求スレッドＮの処理による受信データの変化の概念図である。
【００４０】
現在時刻９：１０から新規要求を開始し、図４のステップＳ４０３の処理、すなわち時刻を遡る方向でキー値Ｌまで新規要求を繰り返す処理が、図５のＳ４０３〜Ｓ４０４−（１）の矢印でその流れが示されている。そして、キー値Ｌが示す９：００の分までの要求応答処理が完了したとき、前回のキー値Ｌ（９：００時点の注文受付番号）を、前回の直近要求で取得した（すなわち９：１０時点の）注文受付番号である「Ｌ１」に再設定する（図５のＳ４０５−（１））。
【００４１】
そして、このときの現在時刻が９：１７になっているものとして、９：１７の「直近要求」を行い、ここから時刻を遡る方向で、図５のＳ４０３〜Ｓ４０４−（２）の矢印で示したように、図４で示したフローチャート全体を再度実行する。そして、キー値Ｌ１が示す９：１０の分の要求応答処理が完了したとき、前回のキー値Ｌ１（９：１０時点の注文受付番号）を、前回の直近要求で取得した（すなわち９：１７時点の）注文受付番号である「Ｌ２」に再設定する（図５のＳ４０５−（２））。以降、この処理が繰り返される。
【００４２】
図６は、更新要求スレッドＡの処理のフローチャートである。
【００４３】
前回までに行われた注文は、取引所１００において約定等によりその状態が更新される場合がある。そこで、処理を開始し（Ｓ６０１）、キー値Ｌを起点とし（Ｓ６０２）、時刻を遡る方向で、すべてのデータに関して、更新すべき最後のデータを受信するまで更新要求を繰り返す（Ｓ６０３）。
【００４４】
ここで更新要求によって受信すべきデータは、新規要求に係わるデータに比べて大量であり、全ての更新には時間がかかるものであるが、注文の内容が多少古いものであったとしても全てのデータが揃っており、かつ、それとは並列的に、緊急時の注文の取消を新規要求スレッドＮで行えることの方が重要である。
【００４５】
やがて、更新要求についての最後のデータを受信したとき（Ｓ６０４）、キー値Ｌを起点として開始した更新要求スレッドＡの一連の処理は終了する（Ｓ６０５）。その時点で、並列的に新規要求スレッドＮが管理していた最新の「キー値Ｌ」を起点として、更新要求スレッドＡは、そのキー値Ｌを起点として新たな一連の処理を開始する。
【００４６】
このように、前回の受信データＤ１に対して、新規要求スレッドＮから受信したデータを追加し、かつ、更新要求スレッドＡから受信したデータを更新することにより、今回の受信データＤ２を作る。
【００４７】
なお、二回線で交互に継続要求を行う方法もあるが、その場合の応答時間は一回線と比較して二倍が限界となる。証券システムでは一日を通して徐々に新規の注文が取引所に送信されるため、本実施形態の方がより効率的である。
【００４８】
同様の要求応答型のシステムで、受信するデータの内容に新規データと更新データの二種類がある場合に有効である。
【００４９】
本発明のいくつかの実施形態を説明したが、これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５０】
１００…取引所
１０１、１０２…ゲートウェイ
１０３…管理者端末
１０４…プログラム（新規要求スレッドＮ、更新要求スレッドＡ）
１０５…記憶装置（前回の受信データＤ１、今回の受信データＤ２）
【図１】
0005632323.tif 000002
【図２】
0005632323.tif 000003
【図３】
0005632323.tif 000004
【図４】
0005632323.tif 000005
【図５】
0005632323.tif 000006
【図６】
0005632323.tif 000007