【文献】
水野 博泰,ネットワーク構築の研究 −東京証券取引所:予測つかぬ“市場爆発”に備え拡充繰り返す証券取引ネット,日経コミュニケーション ,日本,日経BP社,1990年11月19日,第90号,pp.143-147,ISSN 0910-7215
(58)【調査した分野】(Int.Cl.,DB名)
前記複数の仮想サーバの各々について前記取引所システムとの接続が正常か異常かの状態を示すステータスを、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段と、
前記複数の仮想サーバの各々について前記取引所システムとの接続が異常か否かを判定し、この判定結果を前記仮想サーバ管理情報記憶手段の前記ステータスに記憶させる処理を実行する異常検知手段と
を備えたことを特徴とする請求項1に記載の取引所接続システム。
前記取引所システムから受信した通知の電文データに含まれている取引所側で付番された通知通番および仮想サーバの識別情報を対応付けて記憶する受信通知管理情報記憶手段を備え、
前記電文受信処理手段は、
前記仮想サーバから前記通知の電文データを受け取った際に、前記通知の電文データに含まれている通知通番および仮想サーバの識別情報と同一の通知通番および同一の仮想サーバの識別情報の組合せが前記受信通知管理情報記憶手段に記憶されているか否かを判断し、同一の通知通番および同一の仮想サーバの識別情報の組合せが記憶されていない場合には、当該組合せの通知通番および仮想サーバの識別情報を前記受信通知管理情報記憶手段に記憶させるとともに前記通知の電文データを前記注文管理システムへ送信し、同一の通知通番および同一の仮想サーバの識別情報の組合せが既に記憶されている場合には、前記通知の電文データを前記注文管理システムへ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する構成とされている
ことを特徴とする請求項1〜6のいずれかに記載の取引所接続システム。
前記複数の仮想サーバの各々で前記取引所システムから受信した通知の電文データに含まれている取引所側で昇順に付番された通知通番のうちの直近に付番された最大の通知通番を、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段を備え、
前記電文受信処理手段は、
前記仮想サーバから前記通知の電文データを受け取った際に、受け取った前記通知の電文データに含まれる通知通番と、当該仮想サーバの識別情報に関連付けられて前記仮想サーバ管理情報記憶手段に記憶されている通知通番とを比較し、受け取った前記通知の電文データに含まれる通知通番が、前記仮想サーバ管理情報記憶手段に記憶されている通知通番よりも大きい値である場合には、受け取った前記通知の電文データに含まれる通知通番を前記仮想サーバ管理情報記憶手段に記憶させるとともに、受け取った前記通知の電文データを前記注文管理システムへ送信し、前記仮想サーバ管理情報記憶手段に記憶されている通知通番よりも小さい値または同じ値である場合には、受け取った前記通知の電文データを前記注文管理システムへ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する構成とされている
ことを特徴とする請求項1〜6のいずれかに記載の取引所接続システム。
前記取引所システムへ送信する注文の発注用の電文データに含まれている取引参加者側で付番した入力通番、注文銘柄についての銘柄コード、および前記注文に対する受付通知の電文データについての前記取引所システムからの受信の有無を示す情報を対応付けて記憶するか、または、受付通知の電文データを前記取引所システムから受信していない注文についてのみ当該注文の入力通番および注文銘柄についての銘柄コードを記憶する発注管理情報記憶手段を備え、
前記電文送信処理手段は、
前記注文管理システムから新規注文を受け取った際には、この新規注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かを前記発注管理情報記憶手段に記憶された情報を用いて判断し、受付通知の電文データを受信していない注文がある場合には、前記注文管理システムから受け取った前記新規注文についての発注用の電文データを前記仮想サーバへ渡さず、受付通知の電文データを受信していない注文がない場合には、現時点で稼働している仮想サーバへ前記新規注文についての発注用の電文データを渡す処理を実行し、
前記注文管理システムから注文の訂正を受け取った際には、この訂正に係る注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かを前記発注管理情報記憶手段に記憶された情報を用いて判断し、受付通知の電文データを受信していない注文がある場合には、前記注文管理システムから受け取った前記注文の訂正についての発注用の電文データを前記仮想サーバへ渡さず、受付通知の電文データを受信していない注文がない場合には、現時点で稼働している仮想サーバへ前記注文の訂正についての発注用の電文データを渡す処理を実行し、
前記注文管理システムから注文の取消を受け取った際には、この取消に係る注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かにかかわらず、現時点で稼働している仮想サーバへ前記注文の取消についての発注用の電文データを渡す処理を実行する構成とされている
ことを特徴とする請求項1〜8のいずれかに記載の取引所接続システム。
【発明の概要】
【発明が解決しようとする課題】
【0009】
前述したように、取引所システムに代行という機能が無くなったので、通信規約に基づくシステムチェックにより、ある仮想サーバで接続異常が検知された場合は、取引所システムへ発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手するためには、その仮想サーバで再接続を行う必要がある。
【0010】
すなわち、仮想サーバで接続障害が発生した場合には、再接続に成功し、その仮想サーバに対応する経路が復旧するまで、その経路からの取引所システムへの発注(新規注文、注文の訂正、注文の取消のための発注)を行うことができず、また、その経路を使用して既に発注した注文(訂正や取消を含む)に対する取引所システムからの通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)を受信することもできない。
【0011】
例えば、仮想サーバAの経路が切断された場合には、切断前に発注した注文(訂正や取消を含む)に対する通知は、再接続後の仮想サーバAで受信することになる。また、切断前に発注した注文に対する訂正を切断後に仮想サーバAの経路とは別の経路で出したとしても、その訂正の受付通知は、仮想サーバAの経路で返ってくる。このため、結局、仮想サーバAを使い続ける必要があるため、再接続による復旧を待たなければならない。この際、従来の場合に比べ、通信規約に基づくシステムチェックによる接続異常の検知に時間がかかり、再接続を行うことができない時間(回線が切断されたと判断して再接続を行うまでの時間)が長くなる場合があり(従来の13秒に対し、最大60秒を要することになる。)、その間は、発注済の注文の情報を入手できないことになる。
【0012】
従って、仮想サーバAで行った発注済の注文(訂正や取消を含む)に関する業務処理を進めることができないか、あるいは進めるのに時間がかかり、従来の場合に比べ、システムの可用性(アベイラビリティ)が低下する事態も生じ得る。
【0013】
また、発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手することができない事態が生じた場合には、次のようなことを考慮しなければならない。
【0014】
先ず、証券会社等の取引参加者は、同一銘柄の注文については、先に受け付けた注文が、先に取引所の板に乗るように発注処理を行わなければならない(時間優先の原則)。取引所の板では、注文の待ち行列ができるため、板に乗る順番が変わると、約定等の結果に影響が出るからである。従って、同一銘柄(銘柄毎)の注文間の追い越しを防止する必要がある。このため、発注済の注文の情報を入手できていない場合には、証券会社等の取引参加者は、同一銘柄の注文について、先の注文が、後の注文に追い越されるといった不都合がなるべく生じないようにし、顧客に不当・不測の不利益が生じないように努める必要があので、取引所接続システムは、そのことを考慮した対応処理が可能な構成であることが望まれる。
【0015】
次に、ある注文について、注文の訂正を行った後に、さらに別の訂正を行ったときに、後の訂正が、先の訂正を追い越すと、やはり異なる結果をもたらし、また、訂正や取消が新規注文を追い越すと、訂正や取消の対象がなくなり、エラーになる等の問題が生じるので、このような同一注文内(同一顧客の1つの注文内)での注文(訂正や取消を含む)の追い越しも防止する必要がある。例えば、新規注文を発注した後に、その経路が切断され、その後に、その注文の訂正が入った場合には、新規注文に対する受付通知を受信していれば、訂正を別の経路で出すことができる。一方、新規注文に対する受付通知を受信していない状態では、新規注文を別の経路で出し直すのか、訂正を別の経路で出すのかが不明になり、もし新規注文が取引所システムに到達しているとすれば、訂正を別の経路で出すのが適切であるということになるが、もし新規注文が取引所システムに到達していないとすれば、訂正を別の経路で出すと、訂正が先に取引所システムに出てしまうことになる。従って、発注済の注文の情報を入手できていない場合には、証券会社等の取引参加者は、同一注文内(同一顧客の1つの注文内)での追い越しという不都合が生じないようにし、顧客に不当・不測の不利益が生じないように努める必要があので、取引所接続システムは、そのことを考慮した対応処理が可能な構成であることが望まれる。
【0016】
さらに、以上は、主として異常検知後の対応処理という観点で述べているが、取引所接続システムは、正常時における処理を行う時点から、接続異常が発生した場合を想定し、接続異常が発生した場合でも上記のような不都合が生じない処理、あるいは生じにくい処理を行う構成とすることが望まれる。
【0017】
また、以上のように、接続異常により、発注済の注文の情報を入手できない事態が生じる問題に対し、現在は、証券会社等の取引参加者が取引所に申請することにより、取引所システムから別の経路を介して通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)のドロップコピーを受信することができるようになったので、通知のドロップコピーを並行して受信することにより、発注済の注文の情報を入手できない事態が発生する確率を低減することが可能である。すなわち、取引参加者システムと取引所システムとの間の回線に異常があり、それが原因で、発注した注文の電文データが取引所システムに到達していない場合等には、通知のドロップコピーを受信するようにしても、発注済の注文の情報を入手することはできないが、発注した注文の電文データが取引所システムに到達していれば、主経路(上りに使用された経路と同じ経路)およびドロップコピー用の経路の2本の経路に同時に障害が起きる可能性は少ないので、取引所システムからの通知を受信することができる可能性は高まる。
【0018】
しかし、このように通知のドロップコピーを受信するようにすれば、発注済の注文の情報を入手する可能性を高めることはできるものの、切断された経路が復旧しない限り、その経路を使用して、切断後の注文の発注を行うことができないことに変わりはない。従って、仮に、切断された経路の復旧を待って、その経路で新たな注文に関する業務処理を再開するという対処法のみであったとすると、新たに発生する業務についても処理を行うことができず、システムの可用性を向上させることはできない。
【0019】
また、上述したように、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文(訂正や取消を含む)の追い越しの防止を実現するには、発注済の注文について、いずれの経路を使用して取引所システムへ送信したのかを把握しなければならないが、注文内容や約定内容の詳細な情報を保持する注文管理システムとは異なり、取引所接続システムには多くの情報を記憶させておくことは好ましくないので、リソースを効率的に利用できる工夫も求められる。
【0020】
さらに、接続異常を検知した場合には、取引参加者の物理サーバを、待機系の物理サーバに切り換える対処法も考えられるが、取引参加者の物理サーバが正常であるにもかかわらず、待機系の物理サーバに切り換えることになる場合もあるので、効率的な対処法とは言えない。なぜなら、取引参加者の物理サーバが異常の場合には、その取引参加者の物理サーバを切り換えることは適切であるが、取引所側の物理サーバが異常の場合には、取引参加者側の物理サーバを切り換えることは適切ではなく、再接続による復旧を待つのが適切だからである。また、取引参加者の参加者システムと取引所システムとの間の回線が異常の場合には、回線を切り換えて再接続を行えばよいが、通常、取引参加者側の物理サーバと取引所側の物理サーバとを接続する経路は、1つのネットワーク経路に定まることから、回線を切り換えるには、取引参加者の物理サーバも切り換えなければならず、この場合も、取引参加者の物理サーバが正常であるにもかかわらず、待機系の物理サーバに切り換えることになる場合があるからである。
【0021】
以上より、証券会社等の取引参加者のシステムを取引所システムに接続する取引所接続システムについては、可用性を向上させることができる構成を目指すことを前提とし、さらに、顧客に不当・不測の不利益を与えない工夫、リソースの効率的な利用を実現する工夫、異常検知時の対応処理を効率的に行う工夫等を行うことが望ましい。
【0022】
本発明の目的は、可用性を向上させることができる取引所接続システムおよびプログラムを提供するところにある。
【課題を解決するための手段】
【0023】
本発明は、取引所への上りの経路について、銘柄分散または注文分散を行うとともに、取引所からの下りの経路を、上りの経路と同一の経路およびドロップコピー用の経路の2本の経路として同一内容の通知の重複排除を行うことにより、前記目的を達成するものであり、具体的には、次のような構成を採用することができる。
【0024】
<銘柄分散を行う場合>
【0025】
本発明は、金融商品の売買取引のための注文を管理する注文管理システムと取引所システムとの接続を行うコンピュータにより構成された取引参加者の取引所接続システムであって、
取引所システムとの間に形成された経路を介して取引所システムとの電文データの送受信を行う複数の仮想サーバと、
注文管理システムから受け取った金融商品の各銘柄の注文についての発注用の電文データを仮想サーバに渡して取引所システムへ送信する処理を実行する電文送信処理手段と、
取引所システムから受信した注文に対する受付を含む通知の電文データを仮想サーバから受け取る処理を実行する電文受信処理手段とを備え、
取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成され、
電文送信処理手段は、
複数の仮想サーバの各々に対応する取引所システムへの上りの経路に対し、取引所システムへ送信する各銘柄の発注用の電文データを、同一の銘柄の電文データは同一の上りの経路を通るように銘柄毎に分散させることにより、各銘柄の発注用の電文データを銘柄毎に分散させて複数の物理的な回線を分散使用する処理を実行する構成とされ、
電文受信処理手段は、
取引所システムからの下りの経路が、上りの経路と同一の経路およびドロップコピー用の経路からなる2本の経路となり、これらの2本の経路に、複数の物理的な回線のうちの別の回線が使用されるように、取引参加者による設定が行われた状態で、2本の経路を介して同一内容の通知の電文データを受信した際に、先着順で採用して重複排除する処理を実行する構成とされていることを特徴とするものである。
【0026】
ここで、「取引参加者による設定が行われた状態で」とは、ドロップコピーの受信の有無およびドロップコピーを受信する場合にいずれの経路で受信するかは、取引所ではなく、証券会社等の取引参加者が自分で設定するという意味であり、ドロップコピー用の経路の形成は、取引参加者側が行うという意味である。この設定は、現在は、取引参加者による取引所への事前申請により仮想サーバ単位で行われているが、これに限らず、取引所の取り扱いに応じて設定すればよい。以下の発明においても同様である。
【0027】
このような本発明の取引所接続システムにおいては、取引所システムへの上りの経路について、銘柄分散を行っているので、同一銘柄については、同一の仮想サーバおよびそれに対応する経路を経由して取引所システムへの発注処理が行われることになる。そして、取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成されているので、結局、各銘柄の注文は、銘柄毎に複数の物理的な回線を分散使用して発注されることになる。換言すれば、同一銘柄の注文であれば、同一の物理的な回線を使用して発注されることになる。従って、いずれかの回線が切断された場合でも、同一銘柄の注文について、後から発注された注文が、先に発注された注文を追い越すという事態を避けることが可能となり、時間優先の原則を守ることができるようになる。
【0028】
また、銘柄毎に注文を発注する仮想サーバおよびそれに対応する経路を分散させているので、各仮想サーバにかかる負荷を均等化でき、あるいはたとえ均等化できなかったとしても各仮想サーバへの負荷分散を図ることができるため、仮想サーバの単位時間当たりの処理能力に上限がある場合でも、業務処理が滞る可能性を低減することが可能となり、システムの可用性を向上させることが可能となる。
【0029】
さらに、取引所システムからの下りの経路については、通知のドロップコピーを受信し、重複排除を行う構成とするので、複数の物理的な回線のうちの別の回線を使用した2本の経路で、同一内容の通知を受け取ることが可能となる。このため、2本の経路について同時に接続障害が発生する確率が低いことを考えれば、通知が未受領となる事態、すなわち、発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手することができない事態が生じる確率を低減することができ、この点でも、システムの可用性を向上させることが可能となる。
【0030】
また、注文の発注処理に使用する仮想サーバおよびそれに対応する経路を、銘柄毎に分散させているので、ある仮想サーバおよびそれに対応する経路に接続障害が発生し、使用不能になった場合でも、その仮想サーバおよび経路に割り当てられていた銘柄についての注文の発注処理を、別の仮想サーバおよび経路に対し、銘柄単位で割り当てを変更して行うことが容易に可能となり、また、再接続によりその仮想サーバおよび経路が復旧した場合には、復旧した仮想サーバおよび経路に対し、銘柄単位で割り当てを戻すことにより、システムの可用性を維持することも容易に可能となり、これらにより前記目的が達成される。
【0031】
また、前述した取引所接続システムにおいて、
複数の仮想サーバの各々について取引所システムとの接続が正常か異常かの状態を示すステータスを、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段と、
複数の仮想サーバの各々について取引所システムとの接続が異常か否かを判定し、この判定結果を仮想サーバ管理情報記憶手段のステータスに記憶させる処理を実行する異常検知手段と
を備えた構成とすることが望ましい。
【0032】
このように仮想サーバ管理情報記憶手段および異常検知手段を備えた構成とした場合には、電文送信処理手段は、仮想サーバ管理情報記憶手段のステータスを参照して稼働している仮想サーバを把握し、注文の発注処理に使用する仮想サーバを決定すること、あるいは、ステータスに対応する情報(ステータスに対応して仮想サーバ管理情報記憶手段に記憶されている情報や、ステータスから導かれる情報等)に基づき、注文の発注処理に使用する仮想サーバを決定することが可能となる。
【0033】
より具体的には、上記のように仮想サーバ管理情報記憶手段および異常検知手段を備えた構成とした場合において、次のような構成とすることが望ましい。
【0034】
すなわち、上記のように仮想サーバ管理情報記憶手段および異常検知手段を備えた構成とした場合において、
仮想サーバ管理情報記憶手段には、
ステータスが接続正常となっている仮想サーバに各銘柄を割り当てるための銘柄割当情報も、仮想サーバの識別情報と関連付けて記憶され、
電文送信処理手段は、
銘柄コードが示す数値または銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値、および、使用可能な経路に対応する稼働している仮想サーバの台数を入力とし、稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報を出力とする計算式または予め定められたルールを用いて、注文管理システムから受け取った注文銘柄の銘柄コードから、当該注文銘柄を割り当てる仮想サーバを決定するための銘柄割当情報を求め、求めた銘柄割当情報に関連付けられて仮想サーバ管理情報記憶手段に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する構成とされ、
異常検知手段は、
取引所システムとの接続異常が検知された仮想サーバ、または、再接続に成功した仮想サーバがある場合には、ステータスが接続正常となっている仮想サーバについて仮想サーバ管理情報記憶手段に記憶されている銘柄割当情報を更新する処理を実行する構成とされていることが望ましい。
【0035】
ここで、「銘柄コードが示す数値」とは、銘柄コードを全体で1つの情報と捉えるという意味であり、例えば、銘柄コードが「8601」の場合には、10進法で捉えた「8601」という数値でもよく、あるいは、16進法や37進法等のその他の進数で捉えた「8601」という数値でもよく、後者の場合には、例えば、銘柄コードが「FBC3」であるとすれば、これを16進法で捉えれば、15×(16)
3+11×(16)
2+12×16+3という数値となり、37進法で捉えれば、15×(37)
3+11×(37)
2+12×37+3という数値となる。また、「銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値」とは、銘柄コードを構成する各桁が、数字(0〜9)、文字(A,B,Cやα,β,γ等)、若しくは記号(:,$,%等)の場合には、それらの各桁で使用されている個々のコード(数字、文字、若しくは記号)をそれぞれ別々の情報として捉えるという意味であり、10進法に限らず、16進法や37進法等のその他の進数で捉えた数値としてもよいのは、銘柄コードを全体で1つの情報と捉える場合と同様である。以下の発明においても同様である。
【0036】
なお、「計算式」や「ルール」は、稼働している仮想サーバの台数の変動を除いて考えた場合には、1つの入力(銘柄コードまたはその構成コードの入力)に対し、1つの銘柄割当情報が出力されるようになっていればよい。すなわち、1つの銘柄コードが与えられると、その銘柄に関する注文を送信する仮想サーバおよび経路が1つに決定されればよい。逆に、1つの仮想サーバおよびそれに対応する経路に割り当てられる銘柄は、複数の銘柄であってもよいので、1つの銘柄割当情報が与えられたときに、1つの銘柄コードが定まる必要はなく、従って、「計算式」や「ルール」は、可逆的である必要はない。
【0037】
このように計算式またはルールを用いて、銘柄コードから、稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報を求め、さらに、求めた銘柄割当情報から、仮想サーバ管理情報記憶手段の情報を用いて仮想サーバの識別情報を取得する構成とした場合には、異常検知手段により異常が検知された仮想サーバ、あるいは再接続により復旧した仮想サーバがあると、稼働している仮想サーバの台数が変動したり、稼働している仮想サーバが入れ替わることがあるが、異常検知手段により、仮想サーバ管理情報記憶手段に記憶されている銘柄割当情報が更新されるので、そのような台数の変動や入替に容易に対応することが可能となる。このため、電文送信処理手段による注文の発注に使用する仮想サーバの決定処理に、仮想サーバの状態の変化を、容易に反映させることが可能となる。
【0038】
例えば、銘柄コードと仮想サーバの識別情報とを直接に関連付けたテーブルを用意し、注文銘柄の銘柄コードから、それに対応する仮想サーバの識別情報を導くことにより、使用する仮想サーバを決定する方法も考えられるが、このような固定的なテーブルを用意する場合は、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替に容易に対応することは困難である。これに対し、計算式またはルールを用いて、銘柄コードから銘柄割当情報を求め、さらに、求めた銘柄割当情報から仮想サーバの識別情報を導くようにすれば、仮想サーバ管理情報記憶手段に記憶されている銘柄割当情報の更新管理を行うことで、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替に容易に対応することが可能となる。
【0039】
また、銘柄コードを与えると、計算式またはルールにより、使用する仮想サーバおよび経路が決まるようになっているので、過去の時点で稼働していた仮想サーバの台数(過去の時点での計算式またはルールへの入力情報)およびいずれの仮想サーバが稼働していたのか(停止していた仮想サーバでもよい)を記憶しておけば、過去において注文の発注に使用した仮想サーバおよび経路を全部記憶しておくことを回避することが可能となる。従って、異常検知時において、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文(訂正や取消を含む)の追い越しの防止を実現するには、過去の注文の使用経路を把握する必要が生じることもあるが、この際、過去の注文の使用経路を全部記憶しておく必要はなくなるので、リソースの効率的な利用を実現することが可能となる。
【0040】
さらに、上記のように計算式またはルールを用いて、銘柄コードから、稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報を求め、さらに、求めた銘柄割当情報から、仮想サーバ管理情報記憶手段の情報を用いて仮想サーバの識別情報を取得する構成とした場合において、
電文送信処理手段で用いられる計算式は、
銘柄コードが示す数値または銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値を用いて演算を行い、この演算で得られた数値を、稼働している仮想サーバの台数で除する除算の計算式であり、
仮想サーバ管理情報記憶手段には、
銘柄割当情報として、除算の余りが記憶され、
電文送信処理手段は、
除算の計算式を用いて余りを求め、求めた余りに関連付けられて仮想サーバ管理情報記憶手段に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する構成とされていることが望ましい。
【0041】
ここで、「銘柄コードが示す数値または銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値を用いて演算を行い」の「演算」には、加減乗除の計算、平方根の計算、対数計算、これらの組合せ等の各種の演算が含まれる。例えば、銘柄コードを構成する各桁のコードが示す数値を単純に加算する演算等であり、より具体的には、例えば、銘柄コードが「8601」(10進法で捉える場合)であれば、8+6+0+1=15(10進表記)等の演算であり、銘柄コードが「BC5Z」(37進法で捉える場合)であれば、11+12+5+36=64(10進表記)等の演算である。
【0042】
このように稼働している仮想サーバの台数で除する除算の計算式を用いて、余りを算出し、その余りを銘柄割当情報とする構成とした場合には、稼働している仮想サーバの台数と同数の銘柄割当情報を容易に作り出すことが可能となるうえ、簡単な計算式であるため、処理速度を向上させることもできる。
【0043】
また、前述したように仮想サーバ管理情報記憶手段および異常検知手段を備えた構成とした場合において、
異常検知手段は、
複数の仮想サーバの各々に設けられた発注キューに格納されている発注用の電文データの滞留検知の情報を複数の仮想サーバの各々から取得することにより、取引所システムとの接続が異常か否かを判定する処理を実行する構成とされ、
仮想サーバは、
滞留の判定時の現在時刻、発注キューから最後に送出された電文データの送出時刻、および、当該最後に送出された電文データの次に送出される電文データの発注キューへの入力時刻を用いて、滞留を検知する処理を実行する構成とされていることが望ましい。
【0044】
ここで、仮想サーバが「滞留の判定時の現在時刻、発注キューから最後に送出された電文データの送出時刻、および、当該最後に送出された電文データの次に送出される電文データの発注キューへの入力時刻を用いて、滞留を検知する処理」としては、複数のアルゴリズムによる処理があるが(例えば、後述する滞留検知アルゴリズム(1)、(2)等)、ここではアルゴリズムの詳細は問わず、3種類の時刻を用いて滞留検知が行われていればよい趣旨である。
【0045】
このように発注キューの監視による滞留検知を行う構成とした場合には、通信規約に基づくシステムチェックの場合よりも、早期に接続異常を検知することが可能となるので、異常が検知された仮想サーバについての再接続による復旧に要する時間を短縮することが可能となり、システムの可用性を向上させることができるようになる。
【0046】
さらに、前述したように仮想サーバ管理情報記憶手段および異常検知手段を備えた構成とした場合において、
異常検知手段は、
接続異常が検知された仮想サーバを別の物理サーバに切り換えることなく、当該仮想サーバに対し、アドレス変換器を用いることにより物理的な回線の切換を行って再接続を行うための指示を出すとともに、再接続を行った結果の情報を当該仮想サーバから受け取る処理を実行するか、または、接続異常が検知された仮想サーバ自身による判断でアドレス変換器を用いることにより物理的な回線の切換を行って再接続を行った結果の情報を当該仮想サーバから受け取る処理を実行する構成とされていることが望ましい。
【0047】
このようにアドレス変換器を用いて物理的な回線の切換を行う構成とした場合には、取引参加者の物理サーバを切り換えずに、物理的な回線の切換を行って再接続を行うことが可能となる。すなわち、通常、取引参加者側の物理サーバと取引所側の物理サーバとを接続する経路は、1つのネットワーク経路に定まるので、回線を切り換えるには、取引参加者の物理サーバも切り換えなければならないが、それを回避することが可能となる。このため、異常検知時の対応処理を効率的に行うことができるようになる。
【0048】
そして、以上に述べた取引所接続システムにおいて、2本の下りの経路から受信する同一内容の通知の電文データについての重複排除は、次の2通りの方法により実現することができる。
【0049】
<通知の重複排除の第1の方法>
【0050】
以上に述べた取引所接続システムにおいて、
取引所システムから受信した通知の電文データに含まれている取引所側で付番された通知通番および仮想サーバの識別情報を対応付けて記憶する受信通知管理情報記憶手段を備え、
電文受信処理手段は、
仮想サーバから通知の電文データを受け取った際に、通知の電文データに含まれている通知通番および仮想サーバの識別情報と同一の通知通番および同一の仮想サーバの識別情報の組合せが受信通知管理情報記憶手段に記憶されているか否かを判断し、同一の通知通番および同一の仮想サーバの識別情報の組合せが記憶されていない場合には、当該組合せの通知通番および仮想サーバの識別情報を受信通知管理情報記憶手段に記憶させるとともに通知の電文データを注文管理システムへ送信し、同一の通知通番および同一の仮想サーバの識別情報の組合せが既に記憶されている場合には、通知の電文データを注文管理システムへ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する構成とすることができる。
【0051】
このように受信通知管理情報記憶手段を設けて通知の重複排除を行う構成とした場合には、同一内容の通知についての注文管理システムへの重複送信を回避することが可能となる。
【0052】
<通知の重複排除の第2の方法>
【0053】
以上に述べた取引所接続システムにおいて、
複数の仮想サーバの各々で取引所システムから受信した通知の電文データに含まれている取引所側で昇順に付番された通知通番のうちの直近に付番された最大の通知通番を、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段を備え、
電文受信処理手段は、
仮想サーバから通知の電文データを受け取った際に、受け取った通知の電文データに含まれる通知通番と、当該仮想サーバの識別情報に関連付けられて仮想サーバ管理情報記憶手段に記憶されている通知通番とを比較し、受け取った通知の電文データに含まれる通知通番が、仮想サーバ管理情報記憶手段に記憶されている通知通番よりも大きい値である場合には、受け取った通知の電文データに含まれる通知通番を仮想サーバ管理情報記憶手段に記憶させるとともに、受け取った通知の電文データを注文管理システムへ送信し、仮想サーバ管理情報記憶手段に記憶されている通知通番よりも小さい値または同じ値である場合には、受け取った通知の電文データを注文管理システムへ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する構成としてもよい。
【0054】
ここで、「受け取った通知の電文データに含まれる通知通番が、仮想サーバ管理情報記憶手段に記憶されている通知通番よりも大きい値である場合」に該当するか否かの判断処理については、「受け取った通知の電文データに含まれる通知通番が、仮想サーバ管理情報記憶手段に記憶されている通知通番の次の通番である場合」に該当するか否かの判断処理とすることが含まれる。ある通番が抜けた状態で更にその次の通番を受信する場合もあり得るので、そのような異常な状態になった場合を考慮した判断処理であり、この場合には、取引所に対して、再送要求して補正する処理を行う。
【0055】
このように仮想サーバ管理情報記憶手段に、通知通番のうちの直近に付番された最大の通知通番を記憶する構成とした場合には、受信通知管理情報記憶手段の設置を省略することが可能となる。
【0056】
<新規注文、訂正、取消の取り扱い詳細>
【0057】
また、以上に述べた取引所接続システムにおいて、
取引所システムへ送信する注文の発注用の電文データに含まれている取引参加者側で付番した入力通番、注文銘柄についての銘柄コード、および注文に対する受付通知の電文データについての取引所システムからの受信の有無を示す情報を対応付けて記憶するか、または、受付通知の電文データを取引所システムから受信していない注文についてのみ当該注文の入力通番および注文銘柄についての銘柄コードを記憶する発注管理情報記憶手段を備え、
電文送信処理手段は、
注文管理システムから新規注文を受け取った際には、この新規注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かを発注管理情報記憶手段に記憶された情報を用いて判断し、受付通知の電文データを受信していない注文がある場合には、注文管理システムから受け取った新規注文についての発注用の電文データを仮想サーバへ渡さず、受付通知の電文データを受信していない注文がない場合には、現時点で稼働している仮想サーバへ新規注文についての発注用の電文データを渡す処理を実行し、
注文管理システムから注文の訂正を受け取った際には、この訂正に係る注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かを発注管理情報記憶手段に記憶された情報を用いて判断し、受付通知の電文データを受信していない注文がある場合には、注文管理システムから受け取った注文の訂正についての発注用の電文データを仮想サーバへ渡さず、受付通知の電文データを受信していない注文がない場合には、現時点で稼働している仮想サーバへ注文の訂正についての発注用の電文データを渡す処理を実行し、
注文管理システムから注文の取消を受け取った際には、この取消に係る注文の銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かにかかわらず、現時点で稼働している仮想サーバへ注文の取消についての発注用の電文データを渡す処理を実行する構成とされていることが望ましい。
【0058】
ここで、「現時点で稼働している仮想サーバ」は、前述した「複数の仮想サーバの各々について取引所システムとの接続が正常か異常かの状態を示すステータスを、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段」が設けられている構成とする場合には、この仮想サーバ管理情報記憶手段のステータスを参照して判断してもよい。また、「現時点で稼働している仮想サーバ」のうちのいずれの仮想サーバへ発注用の電文データを渡すのかは、前述した「計算式」または「ルール」を採用する構成とする場合には、それらの「計算式」または「ルール」を用いて決定すればよい。以下の発明においても同様である。
【0059】
このように注文管理システムから業務電文を受け取った際に、発注管理情報記憶手段に記憶された情報を参照し、受付通知の受信の有無を確認する構成とした場合には、接続障害が発生し、受付通知を受信できない事態が発生するような状況下でも、同一銘柄(銘柄毎)の注文間の追い越しを防ぐ処理を実現することが可能となる。
【0060】
なお、発注管理情報記憶手段において、受付通知の電文を受信していない注文については、人の判断で端末装置からの操作により受信済に置き換えることができるようにしてもよく、このようにした場合には、新規注文や注文の訂正を受け取った際に、その銘柄に対して、何もできない状態になることを回避可能となる。他の発明についても同様である。
【0061】
<注文分散を行う場合>
【0062】
また、本発明は、金融商品の売買取引のための注文を管理する注文管理システムと取引所システムとの接続を行うコンピュータにより構成された取引参加者の取引所接続システムであって、
取引所システムとの間に形成された経路を介して取引所システムとの電文データの送受信を行う複数の仮想サーバと、
注文管理システムから受け取った金融商品の各銘柄の注文についての発注用の電文データを仮想サーバに渡して取引所システムへ送信する処理を実行する電文送信処理手段と、
取引所システムから受信した注文に対する受付を含む通知の電文データを仮想サーバから受け取る処理を実行する電文受信処理手段と、
取引所システムへ送信する注文の発注用の電文データに含まれている取引参加者側で付番した入力通番、注文銘柄についての銘柄コード、および注文に対する受付通知の電文データについての取引所システムからの受信の有無を示す情報を対応付けて記憶するか、または、受付通知の電文データを取引所システムから受信していない注文についてのみ当該注文の入力通番および注文銘柄についての銘柄コードを記憶する発注管理情報記憶手段とを備え、
取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成され、
電文送信処理手段は、
複数の仮想サーバの各々に対応する取引所システムへの上りの経路に対し、取引所システムへ送信する各注文の発注用の電文データを分散させることにより、複数の物理的な回線を分散使用する処理を実行する構成とされ、
電文受信処理手段は、
取引所システムからの下りの経路が、上りの経路と同一の経路およびドロップコピー用の経路からなる2本の経路となり、これらの2本の経路に、複数の物理的な回線のうちの別の回線が使用されるように、取引参加者による設定が行われた状態で、2本の経路を介して同一内容の通知の電文データを受信した際に、先着順で採用して重複排除する処理を実行する構成とされ、
電文送信処理手段は、
注文管理システムから注文の訂正を受け取った際には、受付通知の電文データを受信していない訂正の対象の注文または当該注文に対する別の訂正があるか否かを発注管理情報記憶手段に記憶された情報を用いて判断し、受付通知の電文データを受信していない訂正の対象の注文または当該注文に対する別の訂正がある場合には、注文管理システムから受け取った注文の訂正についての発注用の電文データを仮想サーバへ渡さず、受付通知の電文データを受信していない訂正の対象の注文または当該注文に対する別の訂正がない場合には、現時点で稼働している仮想サーバへ注文の訂正についての発注用の電文データを渡す処理を実行する構成とされていることを特徴とするものである。
【0063】
このような本発明の取引所接続システムにおいては、取引所システムへの上りの経路について、注文分散を行っている。そして、取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成されているので、結局、各注文は、複数の物理的な回線を分散使用して発注されることになる。
【0064】
また、各注文を発注する仮想サーバおよびそれに対応する経路を分散させているので、各仮想サーバにかかる負荷を均等化でき、あるいはたとえ均等化できなかったとしても各仮想サーバへの負荷分散を図ることができるため、仮想サーバの単位時間当たりの処理能力に上限がある場合でも、業務処理が滞る可能性を低減することが可能となり、システムの可用性を向上させることが可能となる。
【0065】
さらに、取引所システムからの下りの経路については、通知のドロップコピーを受信し、重複排除を行う構成とするので、複数の物理的な回線のうちの別の回線を使用した2本の経路で、同一内容の通知を受け取ることが可能となる。このため、2本の経路について同時に接続障害が発生する確率が低いことを考えれば、通知が未受領となる事態、すなわち、発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手することができない事態が生じる確率を低減することができ、この点でも、システムの可用性を向上させることが可能となる。
【0066】
また、電文送信処理手段は、注文管理システムから注文の訂正を受け取った際には、受付通知の電文データを受信していない訂正の対象の注文または当該注文に対する別の訂正があるか否かを発注管理情報記憶手段に記憶された情報を用いて判断して処理を行うので、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しを防ぐことが可能となり、これらにより前記目的が達成される。
【0067】
<注文番号若しくは入力通番により、注文分散を行う場合>
【0068】
さらに、本発明は、金融商品の売買取引のための注文を管理する注文管理システムと取引所システムとの接続を行うコンピュータにより構成された取引参加者の取引所接続システムであって、
取引所システムとの間に形成された経路を介して取引所システムとの電文データの送受信を行う複数の仮想サーバと、
注文管理システムから受け取った金融商品の各銘柄の注文についての発注用の電文データを仮想サーバに渡して取引所システムへ送信する処理を実行する電文送信処理手段と、
取引所システムから受信した注文に対する受付を含む通知の電文データを仮想サーバから受け取る処理を実行する電文受信処理手段と、
複数の仮想サーバの各々について取引所システムとの接続が正常か異常かの状態を示すステータス、およびステータスが接続正常となっている仮想サーバに各注文を割り当てるための注文割当情報を、仮想サーバの識別情報と関連付けて記憶する仮想サーバ管理情報記憶手段と、
複数の仮想サーバの各々について取引所システムとの接続が異常か否かを判定し、この判定結果を仮想サーバ管理情報記憶手段のステータスに記憶させる処理を実行する異常検知手段とを備え、
取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成され、
電文送信処理手段は、
複数の仮想サーバの各々に対応する取引所システムへの上りの経路に対し、取引所システムへ送信する各注文の発注用の電文データを分散させることにより、複数の物理的な回線を分散使用する処理を実行するとともに、
取引参加者で付番した注文番号若しくは入力通番が示す数値またはこれらの注文番号若しくは入力通番を構成する数字、文字、若しくは記号からなる各コードが示す数値、および、使用可能な経路に対応する稼働している仮想サーバの台数を入力とし、稼働している仮想サーバに各注文を割り当てるための注文割当情報を出力とする計算式または予め定められたルールを用いて、注文管理システムから受け取った注文についての注文番号若しくは入力通番から、当該注文を割り当てる仮想サーバを決定するための注文割当情報を求め、求めた注文割当情報に関連付けられて仮想サーバ管理情報記憶手段に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する構成とされ、
電文受信処理手段は、
取引所システムからの下りの経路が、上りの経路と同一の経路およびドロップコピー用の経路からなる2本の経路となり、これらの2本の経路に、複数の物理的な回線のうちの別の回線が使用されるように、取引参加者による設定が行われた状態で、2本の経路を介して同一内容の通知の電文データを受信した際に、先着順で採用して重複排除する処理を実行する構成とされ、
異常検知手段は、
取引所システムとの接続異常が検知された仮想サーバ、または、再接続に成功した仮想サーバがある場合には、ステータスが接続正常となっている仮想サーバについて仮想サーバ管理情報記憶手段に記憶されている注文割当情報を更新する処理を実行する構成とされていることを特徴とするものである。
【0069】
ここで、「計算式」または「ルール」への入力情報については、前述した銘柄分散を行う場合には、銘柄コードまたはその構成コードとなっていたが、ここでは注文分散を行うので、銘柄コードまたはその構成コードの代わりに、注文番号若しくは入力通番またはこれらの構成コードを入力する。また、「計算式」または「ルール」からの出力情報については、前述した銘柄分散を行う場合には、銘柄割当情報となっていたが、ここでは注文分散を行うので、銘柄割当情報の代わりに、注文割当情報が出力される。
【0070】
このような本発明の取引所接続システムにおいては、取引所システムへの上りの経路について、注文分散を行っている。そして、取引所システムと複数の仮想サーバの各々との間に形成された複数の仮想的な経路は、取引所システムとの間に設けられた複数の物理的な回線を分散使用して形成されているので、結局、各注文は、複数の物理的な回線を分散使用して発注されることになる。
【0071】
また、各注文を発注する仮想サーバおよびそれに対応する経路を分散させているので、各仮想サーバにかかる負荷を均等化でき、あるいはたとえ均等化できなかったとしても各仮想サーバへの負荷分散を図ることができるため、仮想サーバの単位時間当たりの処理能力に上限がある場合でも、業務処理が滞る可能性を低減することが可能となり、システムの可用性を向上させることが可能となる。
【0072】
さらに、取引所システムからの下りの経路については、通知のドロップコピーを受信し、重複排除を行う構成とするので、複数の物理的な回線のうちの別の回線を使用した2本の経路で、同一内容の通知を受け取ることが可能となる。このため、2本の経路について同時に接続障害が発生する確率が低いことを考えれば、通知が未受領となる事態、すなわち、発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手することができない事態が生じる確率を低減することができ、この点でも、システムの可用性を向上させることが可能となる。
【0073】
また、計算式またはルールを用いて、注文番号若しくは入力通番から、稼働している仮想サーバに各注文を割り当てるための注文割当情報を求め、さらに、求めた注文割当情報から、仮想サーバ管理情報記憶手段の情報を用いて仮想サーバの識別情報を取得する構成とされていることから、異常検知手段により異常が検知された仮想サーバ、あるいは再接続により復旧した仮想サーバがあると、稼働している仮想サーバの台数が変動したり、稼働している仮想サーバが入れ替わることがあるが、異常検知手段により、仮想サーバ管理情報記憶手段に記憶されている注文割当情報が更新されるので、そのような台数の変動や入替に容易に対応することが可能となる。このため、電文送信処理手段による注文の発注に使用する仮想サーバの決定処理に、仮想サーバの状態の変化を、容易に反映させることが可能となる。
【0074】
さらに、注文番号若しくは入力通番を与えると、計算式またはルールにより、使用する仮想サーバおよび経路が決まるようになっているので、過去の時点で稼働していた仮想サーバの台数(過去の時点での計算式またはルールへの入力情報)およびいずれの仮想サーバが稼働していたのか(停止していた仮想サーバでもよい)を記憶しておけば、過去において注文の発注に使用した仮想サーバおよび経路を全部記憶しておくことを回避することが可能となる。従って、異常検知時において、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しの防止を実現するには、過去の注文の使用経路を把握する必要があるが、この際、過去の注文の使用経路を全部記憶しておく必要はなくなるので、リソースの効率的な利用を実現することが可能となり、これらにより前記目的が達成される。
【0075】
そして、上記のように注文番号若しくは入力通番により、注文分散を行う構成とする場合において、
電文送信処理手段で用いられる計算式は、
取引参加者で付番した注文番号若しくは入力通番が示す数値またはこれらの注文番号若しくは入力通番を構成する数字、文字、若しくは記号からなる各コードが示す数値を用いて演算を行い、この演算で得られた数値を、稼働している仮想サーバの台数で除する除算の計算式であり、
仮想サーバ管理情報記憶手段には、
注文割当情報として、除算の余りが記憶され、
電文送信処理手段は、
除算の計算式を用いて余りを求め、求めた余りに関連付けられて仮想サーバ管理情報記憶手段に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する構成とされていることが望ましい。
【0076】
このように稼働している仮想サーバの台数で除する除算の計算式を用いて、余りを算出し、その余りを注文割当情報とする構成とした場合には、稼働している仮想サーバの台数と同数の注文割当情報を容易に作り出すことが可能となるうえ、簡単な計算式であるため、処理速度を向上させることもできる。
【0077】
<プログラムの発明>
【0078】
また、本発明のプログラムは、以上に述べた取引所接続システムとして、コンピュータを機能させるためのものである。
【0079】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク(MO)、コンパクトディスク(CD)を利用した読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)、デジタル・バーサタイル・ディスク(DVD)を利用した読出し専用メモリ(DVD−ROM)、DVDを利用したランダム・アクセス・メモリ(DVD−RAM)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去および書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、ハードディスク、ソリッドステートドライブ(SSD)、フラッシュディスク等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、LAN、MAN、WAN、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【0080】
以上に述べたように本発明によれば、取引所への上りの経路について、銘柄分散または注文分散を行うとともに、取引所からの下りの経路を、上りの経路と同一の経路およびドロップコピー用の経路の2本の経路として同一内容の通知の重複排除を行うので、取引所接続システムの可用性を向上させることができるという効果がある。
【発明を実施するための形態】
【0082】
以下に本発明の一実施形態について図面を参照して説明する。
図1には、本実施形態の取引所接続システム10の全体構成が示されている。
図2には、仮想サーバA,B等と使用経路RA(正,副),RB(正,副)等との関係が示され、
図3および
図4には、正常時および異常発生時(回線切換を行った場合)の経路が示されている。また、
図5には、仮想サーバ管理情報記憶手段41の構成が示され、
図6には、通番管理情報記憶手段42の構成が示され、
図7には、発注管理情報記憶手段43の構成が示され、
図8には、受信通知管理情報記憶手段44の構成が示されている。さらに、
図9〜
図12には、異常検知手段33による各仮想サーバA,B等の接続状態の管理処理の流れがフローチャートで示され、
図13〜
図16には、業務電文の送受信の処理の流れがフローチャートで示されている。そして、
図17は、各仮想サーバA,B等での発注キューの監視による滞留検知の処理の説明図である。
【0083】
<取引所接続システム10の全体構成>
【0084】
図1において、取引所接続システム10は、注文管理システム60とともに証券会社等の取引参加者側のシステムを構成し、取引所システム70との接続を行うためのシステムである。この取引所接続システム10は、発注管理システム20と、アドレス変換器50とを備えて構成されている。
【0085】
発注管理システム20は、1台または複数台の物理サーバ(コンピュータ)により構成され、発注管理手段30と、この発注管理手段30による処理で使用される各種のデータを記憶する仮想サーバ管理情報記憶手段41、通番管理情報記憶手段42、発注管理情報記憶手段43、受信通知管理情報記憶手段44、および注文管理システム60からの受付キュー45と、発注管理手段30に接続された複数の仮想サーバA,B,C,D等とを備えて構成されている。
【0086】
仮想サーバA,B,C,D等は、取引所システム70と電文の送受信を行うための基本的な単位であり、1台または複数台の物理サーバ(コンピュータ)により構成され、取引所システム70へ注文(新規注文、訂正、取消)の電文データを送信する業務処理や、取引所システム70からの通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)の電文データを受信する業務処理等を実行するものである。これらの仮想サーバA,B,C,D等は、それぞれ取引所システム70へ送出する電文データを一時的に保存する発注キューを備えている。なお、これらの取引参加者側の仮想サーバA,B,C,D等は、取引所システム70に設けられた取引所側の対応する仮想サーバA,B,C,D等との間で電文の送受信を行う。
【0087】
取引所接続システム10と取引所システム70との間には、複数の物理回線が設けられ、本実施形態では、一例として、2本の物理的な回線L1,L2が設けられている。回線L1は、取引所システム70に設けられた取引所ネットワーク71のアクセスポイントAP1に接続され、回線L2は、アクセスポイントAP2に接続されている。なお、物理回線の本数は、2本に限定されるものではなく、例えば、取引所ネットワーク71のアクセスポイントAP3(不図示)に接続される物理的な回線L3(不図示)を設けてもよい。
【0088】
図2に示すように、取引参加者側の各仮想サーバA,B等と、これらに対応する取引所側の各仮想サーバA,B等とは、それぞれ仮想的な経路RA(正,副),RB(正,副)等で接続されるが、これらの各仮想経路は、複数の物理回線L1,L2等を分散使用して形成されている。
【0089】
図2の例では、取引参加者側の仮想サーバAと、これに対応する取引所側の仮想サーバAとが、仮想的な経路RA(正)またはRA(副)で接続されるようになっている。仮想経路RA(正)は、物理回線L1を使用し、仮想経路RA(副)は、物理回線L2を使用して形成される。
図2中の点線で示された仮想経路RA(副)は、アドレス変換器50による回線切換で実現される経路であるから、仮想経路RA(正)とは別の物理回線を使用して形成される。
【0090】
また、取引参加者側の仮想サーバBと、これに対応する取引所側の仮想サーバBとが、仮想的な経路RB(正)またはRB(副)で接続されるようになっている。仮想経路RB(正)は、物理回線L2を使用し、仮想経路RB(副)は、物理回線L1を使用して形成される。
図2中の点線で示された仮想経路RB(副)は、アドレス変換器50による回線切換で実現される経路であるから、仮想経路RB(正)とは別の物理回線を使用して形成される。なお、上記の仮想経路RA(正)は、物理回線L1を使用して形成されていたが、仮想経路RB(正)は、物理回線L2を使用して形成されるので、仮想経路が、複数の物理回線L1,L2を分散使用して形成されるようになっていることがわかる。
【0091】
さらに、取引参加者側の仮想サーバCと、これに対応する取引所側の仮想サーバCとが、仮想的な経路RC(正)またはRC(副)で接続され、また、取引参加者側の仮想サーバEと、これに対応する取引所側の仮想サーバEとが、仮想的な経路RE(正)またはRE(副)で接続されているが、これらの仮想経路に使用される物理回線は、仮想サーバA間の接続の場合と同様である。
【0092】
そして、取引参加者側の仮想サーバDと、これに対応する取引所側の仮想サーバDとが、仮想的な経路RD(正)またはRD(副)で接続され、また、取引参加者側の仮想サーバFと、これに対応する取引所側の仮想サーバFとが、仮想的な経路RF(正)またはRF(副)で接続されているが、これらの仮想経路に使用される物理回線は、仮想サーバB間の接続の場合と同様である。
【0093】
従って、仮想的な経路RA,RB,RC,RD,RE,RFについて、
図2中の実線で示された(正)の経路だけをこの順で見ると、物理回線L1,L2を交互に使用することにより、複数の物理回線の分散使用を実現している。また、
図2中の点線で示された(副)の経路だけを見ても、物理回線L1,L2の順序が逆転しているだけであり、やはり物理回線L2,L1を交互に使用し、複数の物理回線の分散使用を実現している。
【0094】
また、取引参加者側の仮想サーバGと、これに対応する取引所側の仮想サーバGとが、仮想的な経路RGで接続されるようになっている。この仮想サーバGは、仮想サーバB,D,Fのドロップコピー用の仮想サーバとして設定されているから、仮想サーバB,D,Fの仮想経路RB(正),RD(正),RF(正)が、物理回線L2を使用して形成されるので、仮想サーバGの仮想経路RGは、それとは別の物理回線L1を使用して形成される。これにより、ドロップコピーが、複数(本実施形態では、一例として2本)の物理回線のうちの別の物理回線を使用して送信されてくる設定を実現している。
【0095】
さらに、取引参加者側の仮想サーバHと、これに対応する取引所側の仮想サーバHとが、仮想的な経路RHで接続されるようになっている。この仮想サーバHは、仮想サーバA,C,Eのドロップコピー用の仮想サーバとして設定されているから、仮想サーバA,C,Eの仮想経路RA(正),RC(正),RE(正)が、物理回線L1を使用して形成されるので、仮想サーバHの仮想経路RHは、それとは別の物理回線L2を使用して形成される。これにより、ドロップコピーが、複数(本実施形態では、一例として2本)の物理回線のうちの別の物理回線を使用して送信されてくる設定を実現している。
【0096】
なお、上述した仮想サーバG,Hの例のように、ドロップコピー先の仮想サーバは、複数のドロップコピー元の仮想サーバを担当するようになっていてもよいが、ドロップコピー元の仮想サーバとドロップコピー先の仮想サーバとが1対1になるように、ドロップコピー先の仮想サーバを用意(設定)してもよい。但し、1つのドロップコピー元の仮想サーバに対し、複数のドロップコピー先の仮想サーバを用意することはできない。従って、同一内容の通知について、複数のドロップコピーを受信するような設定は、少なくとも現在の取引所システム70では行うことはできない。このようなドロップコピーの受信の有無およびドロップコピーを受信する場合にいずれの仮想サーバ(経路)を使用するのかの設定は、現在は、証券会社等の取引参加者による取引所への事前申請により仮想サーバ単位で行われているが、取引所の取り扱いの変更があれば、例えば注文単位の設定等としてもよく、要するに、本発明では、取引所ではなく、証券会社等の取引参加者の意思による設定で、ドロップコピーの受信経路が決まるようになっていればよい。
【0097】
また、
図2の例では、物理回線として2本の回線L1,L2を使用しているが、例えば、さらに別の物理回線L3を追加設置した場合には、仮想サーバA,B,C,D,E,Fの仮想経路RA,RB、RC,RD,RE,RFを3本の物理回線L1,L2,L3を分散使用して形成するようにしてもよい。この場合には、ドロップコピー用の仮想サーバG,H(ドロップコピー先の仮想サーバ)で使用される物理回線については、ドロップコピー元の仮想サーバの仮想経路が、物理回線L1を使用して形成されていれば、ドロップコピー先の仮想サーバの仮想経路は、それ以外の物理回線L2またはL3を使用して形成すればよく、ドロップコピー元の仮想サーバの仮想経路が、物理回線L2を使用して形成されていれば、ドロップコピー先の仮想サーバの仮想経路は、それ以外の物理回線L1またはL3を使用して形成すればよく、ドロップコピー元の仮想サーバの仮想経路が、物理回線L3を使用して形成されていれば、ドロップコピー先の仮想サーバの仮想経路は、それ以外の物理回線L1またはL2を使用して形成すればよい。また、仮想サーバA,B,C,D,E,Fの仮想経路RA,RB,RC,RD,RE,RFを2本の物理回線L1,L2を分散使用して形成し、ドロップコピー用の仮想サーバG,H(あるいは、それらをまとめたドロップコピー先の仮想サーバ)の仮想経路を別の物理回線L3を使用して形成してもよく、要するに、ドロップコピー元の仮想サーバの仮想経路と、ドロップコピー先の仮想サーバの仮想経路とが、別の物理回線を使用して形成されていればよい。
【0098】
さらに、
図2中の細い点線で示された物理サーバの構成例では、発注管理手段30(およびこれに接続された各記憶手段41〜45)を1つの物理サーバで構成し、仮想サーバA,C,E,Gを別の1つの物理サーバで構成し、仮想サーバB,D,F,Hをさらに別の1つの物理サーバで構成するようになっていたが、発注管理システム20の物理サーバの構成は、これに限定されるものではなく、任意である。例えば、発注管理手段30およびこれに接続された各記憶手段41〜45、並びに仮想サーバA,B,C,D,E,F,G,Hの全てを1つの物理サーバで構成してもよく、あるいは、発注管理手段30およびこれに接続された各記憶手段41〜45を1つの物理サーバで構成し、仮想サーバA,B,C,D,E,F,G,Hを別の1つの物理サーバで構成してもよい。また、仮想サーバA,Cの物理サーバと仮想サーバE,Gの物理サーバとに分けたり、仮想サーバB,Dの物理サーバと仮想サーバF,Hとに分けてもよい。さらに、仮想サーバA,B,C,Dを1つの物理サーバで構成し、仮想サーバE,F,G,Hを別の1つの物理サーバで構成してもよい。
【0099】
図3および
図4に示すように、取引所システム70への上りの経路と、取引所システム70からの下りの経路(上りの経路と同一の経路およびドロップコピー用の経路からなる2本の経路)との関係は、正常時および異常発生時(アドレス変換器50による回線切換を行った場合)では、次のように変わる。
【0100】
図3は、注文の発注に仮想サーバAを使用し、そのドロップコピー用の仮想サーバとして仮想サーバHが設定されている場合である。正常時の経路については、往路(上りの経路)では、仮想経路RA(正)=物理回線L1が使用され、復路(下りの経路)では、主経路として、仮想経路RA(正)=物理回線L1が使用されるとともに、ドロップコピー用の経路として、仮想経路RH=物理回線L2が使用される。従って、復路(下りの経路)では、2本の物理回線L1,L2が使用されている状態となる。
【0101】
一方、アドレス変換器50による回線切換を行った場合の異常発生時の経路については、往路(上りの経路)では、仮想経路RA(副)=物理回線L2が使用され、復路(下りの経路)では、主経路として、仮想経路RA(副)=物理回線L2が使用されるとともに、ドロップコピー用の経路として、仮想経路RH=物理回線L2が使用される。従って、復路(下りの経路)では、1本の物理回線L2しか使用されていない状態となるが、物理回線L1の異常が原因で接続異常が検知されている可能性があるので、ドロップコピー用の経路RHを(正)から(副)に切り換えて物理回線L1を使用するということは避けている。なお、例えば物理回線L3が追加設置されている場合には、その物理回線L3をドロップコピー用の経路RHとして使用すること等により、異常発生時にも、復路(下りの経路)について、2本の物理回線を使用する状態を作り出すことができる。
【0102】
図4は、注文の発注に仮想サーバBを使用し、そのドロップコピー用の仮想サーバとして仮想サーバGが設定されている場合である。
図3に対し、物理回線L1とL2が逆転しているが、その他は、
図3の場合と同様である。
【0104】
発注管理手段30は、
図1に示すように、電文送信処理手段31と、電文受信処理手段32と、異常検知手段33とを含んで構成されている。
【0106】
電文送信処理手段31は、注文管理システム60から受け取った金融商品(株式等)の各銘柄の注文(新規注文、訂正、取消)についての発注用の電文データを、仮想サーバA,B等の発注キューに送り、仮想経路RA,RB等を介して取引所システム70へ送信する処理を実行するものである。
【0107】
この電文送信処理手段31は、各銘柄の発注用の電文データを、同一の銘柄の電文データは同一の上りの経路(同一の仮想サーバ)を通るように銘柄毎に分散させる処理(本願明細書では、これを「銘柄分散」と称している。)を実行する。これにより、結果的に、すなわち上述した仮想経路と物理回線との設定関係に従って、各銘柄の発注用の電文データは、複数の物理的な回線L1,L2を分散使用して発注されることになるので、電文送信処理手段31が、そのような物理回線の分散使用管理を行っていることになる。この際、電文送信処理手段31による銘柄分散は、次のようにして行うことができる。
【0108】
<電文送信処理手段31による銘柄分散の方法>
【0109】
電文送信処理手段31は、「銘柄コードが示す数値」または「銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値」、および、使用可能な経路に対応する「稼働している仮想サーバの台数」を入力とし、「稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報」を出力とする「計算式」または「予め定められたルール」を用いて、注文管理システム60から受け取った注文銘柄の銘柄コードから、当該注文銘柄を割り当てる仮想サーバを決定するための銘柄割当情報を求め、求めた銘柄割当情報に関連付けられて仮想サーバ管理情報記憶手段41(
図5参照)に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する。「銘柄コードが示す数値」または「銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値」の意味は、既に詳述しているので、ここでは詳しい説明を省略する。
【0110】
ここで、「計算式」または「予め定められたルール」は、電文送信処理手段31を構成するプログラム内に記述してもよく、発注管理手段30に接続された分散方法記憶手段(不図示)に記憶させておいてもよい。
【0111】
「計算式」としては、例えば、「銘柄コードが示す数値」または「銘柄コードを構成する数字、文字、若しくは記号からなる各コードが示す数値」を用いて演算を行い、この演算で得られた数値を、「稼働している仮想サーバの台数」で除する除算(割り算)の計算式を採用することができる。この場合、除数(割る数)は、「稼働している仮想サーバの台数」とすることが好適であるが、被除数(割られる数)は、上記のように「演算で得られた数値」であればよく、この「演算」には、加減乗除の計算、平方根の計算、対数計算、これらの組合せ等の各種の演算が含まれる。より具体的には、例えば、銘柄コードを構成する各桁のコードが示す数値を単純に加算する演算(和を求める演算)等であり、銘柄コードが「8601」であれば、8+6+0+1=15という演算になるが、この演算の内容については、既に詳述しているので、ここでは詳しい説明を省略する。なお、除算(割り算)に関する用語としては、(被除数)=(除数)×(商)+(余り)を採用している。
【0112】
そして、この場合、電文送信処理手段31は、注文管理システム60から受け取った注文銘柄の銘柄コードまたはその構成コードを上記の「計算式」への入力とするとともに、通番管理情報記憶手段42(
図6参照)に記憶されている除数(稼働している仮想サーバの台数)を取得してこれも上記の「計算式」への入力とし、上記の「計算式」を用いて除算を実行し、上記の「計算式」の出力である銘柄割当情報として、その除算の余りを求め、求めた余りに関連付けられて仮想サーバ管理情報記憶手段41(
図5参照)に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する。なお、過去の時点における除数(稼働している仮想サーバの台数)が必要ない場合、すなわち、正常時の場合(異常が検知されていない場合)や、異常は検知されているが、現時点での除数(稼働している仮想サーバの台数)を用いてもよい場合には、電文送信処理手段31は、通番管理情報記憶手段42(
図6参照)からの除数の取得ではなく、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを参照して「接続正常」または「正常」となっている仮想サーバの台数を把握することにより、「計算式」への入力に使用する除数(稼働している仮想サーバの台数)を取得してもよい。
【0113】
また、「ルール」としては、テーブルを用いた取り決め(定義)としてもよく、例えば、銘柄コードを与えたときに銘柄割当情報(除算の余りに相当するような、稼働している仮想サーバの台数と同数の銘柄割当情報のうちの1つ)が出力されるテーブルを用意してもよい。この際、テーブルは、固定的な取り決めになりがちであるため、稼働している仮想サーバの台数の変動範囲を考慮し、その変動範囲に相当する数のテーブルを用意する。例えば、稼働している仮想サーバの台数が6台の場合のテーブルは、銘柄α,η,πの銘柄コードを与えると、銘柄割当情報=番号1(ネズミ等の非数値情報でもよい)が定まり、銘柄β,θ,ρの銘柄コードを与えると、銘柄割当情報=番号2(ウシ)が定まり、同様に、銘柄γ,κ,σに対しては銘柄割当情報=番号3(トラ)、銘柄δ,λ,τに対しては銘柄割当情報=番号4(ウサギ)、銘柄ε,μ,φに対しては銘柄割当情報=番号5(タツ)、銘柄ζ,ξ,ωに対しては銘柄割当情報=番号6(ヘビ)が定まるようになっている。また、稼働している仮想サーバの台数が3台の場合のテーブルは、銘柄α,δ,η,λ,π,τに対しては銘柄割当情報=番号1(ネズミ)、銘柄β,ε,θ,μ,ρ,φに対しては銘柄割当情報=番号2(ウシ)、銘柄γ,ζ,κ,ξ,σ,ωに対しては銘柄割当情報=番号3(トラ)が定まるようになっている。稼働している仮想サーバの台数の変動範囲が、例えば1〜30台であれば、30種類のテーブルを用意すればよい。
【0114】
<電文送信処理手段31による注文分散の方法:銘柄分散の代替方法>
【0115】
銘柄分散に代えて、注文分散を採用する場合には、次のようにする。「計算式」または「ルール」への入力情報については、銘柄分散を行う場合には、銘柄コードまたはその構成コードとなっていたが、注文分散を行う場合には、銘柄コードまたはその構成コードの代わりに、「注文番号若しくは入力通番」または「これらの構成コード」を入力する。また、「計算式」または「ルール」からの出力情報については、銘柄分散を行う場合には、銘柄割当情報となっていたが、注文分散を行う場合には、銘柄割当情報の代わりに、「注文割当情報」が出力される。但し、銘柄割当情報と注文割当情報とは、呼び名が異なるだけであり、例えば、稼働している仮想サーバの台数で除する除算の余り等である点では、同じ内容である。
【0116】
電文送信処理手段31は、注文分散を行う場合には、取引参加者で付番した「注文番号若しくは入力通番が示す数値」または「これらの注文番号若しくは入力通番を構成する数字、文字、若しくは記号からなる各コードが示す数値」、および、使用可能な経路に対応する「稼働している仮想サーバの台数」を入力とし、「稼働している仮想サーバに各注文を割り当てるための注文割当情報」を出力とする「計算式」または「予め定められたルール」を用いて、注文管理システム60から受け取った注文についての注文番号若しくは入力通番から、当該注文を割り当てる仮想サーバを決定するための注文割当情報を求め、求めた注文割当情報に関連付けられて仮想サーバ管理情報記憶手段41(
図5参照:但し、
図5において、銘柄割当情報を、注文割当情報に入れ替える)に記憶された仮想サーバの識別情報を取得することにより、使用する仮想サーバおよびこれに対応する経路を決定する処理を実行する。
【0117】
さらに、電文送信処理手段31は、注文管理システム60から注文の電文データを受信した際には、その注文が、新規注文なのか、注文の訂正なのか、注文の取消なのかに応じ、注文銘柄と同一銘柄について受付通知の電文データを受信していない注文があるか否かを発注管理情報記憶手段43(
図7参照)に記憶された情報を用いて判断し、その判断結果に基づき、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文の追い越しの防止を図ることができるように、当該注文についての発注用の電文データを仮想サーバへ渡すか否かを判断する等の業務処理を実行する。この業務処理の詳細については、
図14〜
図16を用いて後述するので、ここでは詳しい説明は省略する。
【0119】
電文受信処理手段32は、仮想サーバA,B等が取引所システム70から仮想経路RA,RB等を介して受信した通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)の電文データを仮想サーバA,B等から受け取る処理を実行するものである。
【0120】
この電文受信処理手段32は、上りの経路と同一の経路およびドロップコピー用の経路からなる2本の経路を経由して取引所システム70から送信されてくる同一内容の通知の電文データを受信した際に、先着順で採用して重複排除する処理を実行する。すなわち、電文受信処理手段32は、上りで使用した仮想サーバおよびドロップコピー用の仮想サーバから、同一内容の通知の電文データを受け取り、それらの同一内容の通知を先着順で採用して重複排除する処理を実行する。この際、電文受信処理手段32による通知の重複排除は、次の2通りの方法により実現することができる。
【0121】
<電文受信処理手段32による通知の重複排除の第1の方法>
【0122】
先ず、第1の方法では、電文受信処理手段32は、仮想サーバから通知の電文データを受け取った際に、通知の電文データに含まれている「通知通番および仮想サーバの識別情報(例えば、仮想サーバA、通知通番=1)」と同一の通知通番および同一の仮想サーバの識別情報の組合せが受信通知管理情報記憶手段44(
図8参照)に記憶されているか否かを判断し、同一の通知通番および同一の仮想サーバの識別情報の組合せが記憶されていない場合には、当該組合せの通知通番および仮想サーバの識別情報を受信通知管理情報記憶手段44に記憶させるとともに、通知の電文データを注文管理システム60へ送信し、一方、同一の通知通番および同一の仮想サーバの識別情報の組合せが既に記憶されている場合には、通知の電文データを注文管理システム60へ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する。また、電文受信処理手段32は、受け取った通知の電文データを排除せずに、注文管理システム60へ送信する場合には、その通知の内容を、発注管理情報記憶手段43(
図7参照)に反映させる処理も実行する。
【0123】
<電文受信処理手段32による通知の重複排除の第2の方法>
【0124】
次に、第2の方法では、電文受信処理手段32は、仮想サーバから通知の電文データを受け取った際に、受け取った通知の電文データに含まれる通知通番(取引所側で昇順に付番された通番であることが前提である。)と、当該仮想サーバの識別情報に関連付けられて仮想サーバ管理情報記憶手段41(
図5参照)に記憶されている通知通番(但し、
図5には不図示)とを比較し、受け取った通知の電文データに含まれる通知通番が、仮想サーバ管理情報記憶手段41に記憶されている通知通番よりも大きい値である場合には、受け取った通知の電文データに含まれる通知通番を仮想サーバ管理情報記憶手段41に記憶させる(当該仮想サーバの識別情報に関連付けられて記憶されている通知通番を、上書き保存により更新する)とともに、受け取った通知の電文データを注文管理システム60へ送信し、一方、仮想サーバ管理情報記憶手段41に記憶されている通知通番よりも小さい値または同じ値である場合には、受け取った通知の電文データを注文管理システム60へ送信しないことにより、後から受け取った同一内容の通知の電文データを排除する処理を実行する。また、電文受信処理手段32は、受け取った通知の電文データを排除せずに、注文管理システム60へ送信する場合には、その通知の内容を、発注管理情報記憶手段43(
図7参照)に反映させる処理も実行する。
【0125】
例えば、仮想サーバ管理情報記憶手段41(
図5参照)に、仮想サーバAについて通知通番=18が記憶されているとする(但し、通知通番は、
図5には不図示)。このとき、電文受信処理手段32が仮想サーバAまたはそのドロップコピー用の仮想サーバHから受け取った通知に、「仮想サーバA、通知通番=17」や「仮想サーバA、通知通番=18」という情報が含まれていた場合には、電文受信処理手段32は、その通知は受信済みの通知であると判断して排除し、一方、「仮想サーバA、通知通番=19」という情報が含まれていた場合には、その通知は最初に受信した通知であると判断し、仮想サーバ管理情報記憶手段41に記憶されている仮想サーバAについての通知通番を、19に更新する。なお、ドロップコピー用の仮想サーバHから受け取る通知にも、「仮想サーバA、通知通番=XX」という情報が含まれている。
【0126】
なお、上記において、受け取った通知の電文データに含まれる通知通番が、仮想サーバ管理情報記憶手段41(
図5参照)に記憶されている通知通番(但し、
図5には不図示)よりも大きい値である場合については、より正確には、仮想サーバ管理情報記憶手段41に記憶されている通知通番の次の通番である場合とすることができる。ある通番が抜けた状態で更にその次の通番を受信する場合もあり得るので、そのような異常な状態になった場合を考慮した処理を行ってもよく、この場合には、取引所に対して、再送要求して補正する処理を行う。例えば、仮想サーバ管理情報記憶手段41に、仮想サーバAについて通知通番=18が記憶されているときに、「仮想サーバA、通知通番=20」という情報が含まれた通知を受信した場合等である。
【0128】
異常検知手段33は、複数の仮想サーバA,B,C,D等の各々について取引所システム70との接続が異常か否かを判定し、この判定結果を仮想サーバ管理情報記憶手段41(
図5参照)のステータスに記憶させる処理を実行するものである。この異常検知手段33による処理には、次の[1]、[2]、[3]の処理が含まれる。
【0129】
より具体的には、異常検知手段33は、[1]取引参加者の各仮想サーバA,B,C,D等の正常・異常の判定処理を実行する。この[1]の判定処理には、発注管理手段30と各仮想サーバA,B,C,D等とが別の物理サーバで構成されている場合における各仮想サーバA,B,C,D等を構成する物理サーバの正常・異常の判定処理が含まれる。
【0130】
また、異常検知手段33は、主として取引参加者の各仮想サーバA,B,C,D等よりも取引所システム70寄りの部分の異常、すなわち取引参加者の各仮想サーバA,B,C,D等と取引所システム70との間の各経路RA,RB,RC,RD等(それらに使用される回線L1,L2)の異常や、取引所システム70の異常を検知する処理として、[2]取引参加者の各仮想サーバA,B,C,D等が実行する発注キューの監視による滞留検知の情報の取得処理と、[3]各仮想サーバA,B,C,D等が実行する通信規約に基づくシステムチェックの情報の取得処理を実行する。これらの[2]、[3]の処理は並行して実行することが好ましいが、一方の処理だけを実行してもよい。
【0131】
[2]、[3]の処理ともに、各仮想サーバA,B,C,D等が異常の検知処理を実行し、発注管理手段30の異常検知手段33がその検知結果の情報を各仮想サーバA,B,C,D等から取得することになる。この際、取得方法としては、異常検知手段33から各仮想サーバA,B,C,D等に対して異常検知の指示を出し、異常検知手段33が各仮想サーバA,B,C,D等から検知結果の情報を受け取ってもよく、各仮想サーバA,B,C,D等が自らの判断タイミングで行った異常検知の結果の情報を、異常検知手段33が各仮想サーバA,B,C,D等からの送信情報として受け取ってもよく、各仮想サーバA,B,C,D等が自らの判断タイミングで行った異常検知の結果の情報を、異常検知手段33が各仮想サーバA,B,C,D等から読み込んでもよい。
【0132】
[2]発注キューの監視による滞留検知の処理は、各仮想サーバA,B,C,D等が、それぞれに設けられた発注キューを監視することにより実行される。この際、各仮想サーバA,B,C,D等は、滞留の判定時の現在時刻T(NOW)、発注キューから最後に送出された電文データの送出時刻T(OUT)、および、当該最後に送出された電文データの次に送出される電文データの発注キューへの入力時刻T(IN)という3種類の時刻を用いて、滞留を検知する処理を実行する。ここで、最後(直近)に送出された注文の送出時刻T(OUT)は、各仮想サーバA,B,C,D等にそれぞれ設けられた送出時刻記憶手段(不図示)に記憶させておく。また、次に送出される注文の入力時刻T(IN)は、その注文の電文データの入力タイムスタンプである。そして、滞留検知アルゴリズムには、例えば、次の2つがある。
【0134】
滞留検知アルゴリズム(1)は、発注キューに保持されている注文の滞留時間を把握し、異常か否かの判定をするアルゴリズムである。
【0135】
例えば、
図17に示すように、ある瞬間に、発注キューに、注文(8)、注文(9)、注文(10)、注文(11)が残っていて、その後の別の瞬間に、発注キューに、注文(16)、注文(17)、注文(18)、注文(19)が残っていたとすると、この状態は、滞留していると判定することはできない。より正確には、滞留とは言えても、異常な滞留であると判定することはではない。短時間のうちに多くの注文が発注キューに送られると、処理待ちの注文の列ができるが、そのような状態が継続しているかもしれないからである。従って、ある瞬間に発注キューに存在する注文の個数をもって、滞留の判定(正確には、異常の判定)を行うことはできない。
【0136】
以下では、具体例を挙げて説明するが、説明の便宜上、時刻の数値は、実際の刻みよりも大きな数値とする。最後(直近)に送出された注文(15)の送出時刻T(OUT)が10時00分であり、判定時の現在時刻T(NOW)が10時05分であったとする。従って、10時00分以降は、注文(15)の次の注文(16)の処理が可能になっている状態である。なお、最後(直近)に送出された注文(15)の送出時刻T(OUT)は、各仮想サーバA,B,C,D等に設けられた送出時刻記憶手段(不図示)に記憶させておく。
【0137】
このとき、次の注文(16)の入力時刻T(IN)が9時00分であれば、滞留時間は、5分である。9時00分に入力されているので、発注キューに、1時間5分も保持されているが、10時00分までは、処理が行えなかったため、10時00分以降の5分間が、滞留時間になる。
【0138】
同様に、次の注文(16)の入力時刻T(IN)が9時59分であれば、滞留時間は、5分である。9時59分に入力されているので、発注キューに、6分間保持されているが、10時00分までは、処理が行えなかったため、10時00分以降の5分間が、滞留時間になる。
【0139】
一方、次の注文(16)の入力時刻T(IN)が10時00分であれば、滞留時間は、5分である。10時00分に入力されているので、発注キューに、5分間保持されているが、10時00分から処理が行えたはずであるため、5分間の全部が、滞留時間になる。
【0140】
また、次の注文(16)の入力時刻T(IN)が10時04分であれば、滞留時間は、1分である。10時04分に入力されているので、発注キューに、1分間保持されているが、10時00分から処理が行えたはずであるため、1分間の全部が、滞留時間になる。
【0141】
さらに、次の注文(16)の入力時刻T(IN)が10時04分59秒99であれば、滞留時間は、0.01秒である。10時04分59秒99に入力されているので、発注キューに、0.01秒間保持されているが、10時00分から処理が行えたはずであるため、0.01秒間の全部が、滞留時間になる。
【0142】
そして、次の注文(16)の入力時刻T(IN)が10時05分であれば、滞留時間は、ゼロである。現在時刻T(NOW)が10時05分であるから、丁度、今、入力されたということだからである。
【0143】
以上より、滞留時間は、次に送出される注文の入力時刻T(IN)と現在時刻T(NOW)との差分ΔT1と、最後(直近)に送出された注文の送出時刻T(OUT)と現在時刻T(NOW)との差分ΔT2とのうち短い方の時間である。
【0144】
従って、以上のようにして算出した滞留時間(ΔT1とΔT2とのうち短い方の時間)が、所定時間以上の場合(または所定時間を超える場合)に、異常と判定すればよい。なお、上記の例で、次の注文(16)の入力時刻T(IN)が10時04分59秒99の場合(滞留時間=0.01秒間)が異常と判定されるか否かは、閾値の設定次第である。
【0146】
滞留検知アルゴリズム(2)は、発注キューに保持されている注文の滞留時間を把握せずに(正確には、把握する場合もあるが、把握しない場合もあることになる。)、異常か否かの判定をするアルゴリズムである。最終的に、3種類の時刻T(NOW)、T(OUT)、およびT(IN)を使用するという点では、上述した滞留検知アルゴリズム(1)と同様である。
【0147】
最後(直近)に送出された注文(15)の送出時刻T(OUT)が10時00分であったとする。従って、10時00分以降は、注文(15)の次の注文(16)の処理が可能になっている状態である。このとき、現在の時刻T(NOW)が、例えば、10時00分、10時00分00秒01、10時01分、10時05分である場合を考える。
【0148】
最後(直近)に送出された注文(15)の送出時刻T(OUT)=10時00分と、現在時刻T(NOW)との差分ΔT2は、次のようになる。現在の時刻T(NOW)=10時00分の場合は、ΔT2=0分である。現在の時刻T(NOW)=10時00分00秒01の場合は、ΔT2=0.01秒である。現在の時刻T(NOW)=10時01分の場合は、ΔT2=1分である。現在の時刻T(NOW)=10時05分の場合は、ΔT2=5分である。
【0149】
先ず、最後(直近)に送出された注文(15)の送出時刻T(OUT)=10時00分と、現在時刻T(NOW)との差分ΔT2が、所定時間以内または未満の場合は、正常と判定する。要するに、送出されたばかりの注文があるので、正常と判定することになる。この第1段階の判定では、滞留時間は考慮しないことになる。なお、現在の時刻T(NOW)=10時00分00秒01の場合(ΔT2=0.01秒の場合、すなわち最後(直近)の注文(15)の送出から0.01秒経過時点)に、正常と判定されるか否かは、閾値の設定次第である。
【0150】
次に、最後(直近)に送出された注文(15)の送出時刻T(OUT)=10時00分と、現在時刻T(NOW)との差分ΔT2が、所定時間以上または所定時間を超える場合には、次に送出される注文(16)が発注キューに無ければ、正常と判定し、一方、次に送出される注文(16)が発注キューにあれば、次に送出される注文(16)の入力時刻T(IN)を取得する。次の注文(16)が発注キューにあっても、発注キューに入ってきたばかりかもしれないので、異常な滞留であると判定することはできないからである。
【0151】
そして、取得した次の注文(16)の入力時刻T(IN)と、現在時刻T(NOW)との差分ΔT1が、所定時間以内または未満の場合は、正常と判定し、そうでない場合は、異常と判定する。
【0152】
従って、現在の時刻T(NOW)=10時05分(最後(直近)の注文(15)の送り出しから5分経過時点)で、次に送出される注文(16)の入力時刻T(IN)=10時04分59秒99の場合(ΔT1=0.01秒間であり、滞留時間が0.01秒間の場合)に、異常と判定されるか否かは、閾値の設定次第である。
【0153】
[3]の通信規約に基づくシステムチェックは、概して言えば、取引参加者と取引所との双方のシステム間での業務電文(注文およびその受付等の電文)の送受信の有無の確認と、業務電文が途絶えたときのハートビートによる接続状態の確認とを組み合わせた正常・異常の判定処理であるが、取引所との取り決めに基づく処理であるため、詳しい説明は省略する。
【0154】
さらに、異常検知手段33は、取引所システム70との接続異常が検知された仮想サーバ、または、再接続に成功した仮想サーバがある場合には、ステータスが「接続正常」または「正常」となっている仮想サーバについて仮想サーバ管理情報記憶手段41(
図5参照)に記憶されている銘柄割当情報(または注文割当情報)を更新する処理を実行する。例えば、ステータスが「接続正常」または「正常」となっている仮想サーバ(稼働している仮想サーバ)が6台であれば、それらの6台の仮想サーバのレコードに(それらの6台の仮想サーバの識別情報に対応させて)、銘柄割当情報(または注文割当情報)である除算の余り(例えば、0,1,2,3,4,5という6通りの情報)等を記憶させる。記憶させる際には、銘柄割当情報(または注文割当情報)が、除算の余りのように数値の情報であれば、例えば、数値が小さい方から順番に配置して記憶させる、あるいは数値が大きい方から順番に配置して記憶させる等、順序を持たせて記憶させる。また、銘柄割当情報(または注文割当情報)は、数値の情報である必要はないが、その場合でも、例えば、ネズミ、ウシ、トラ、ウサギ、タツ、ヘビのように干支の順番で配置して記憶させる等、順序を持たせて記憶させる。毎回の更新時に、順序を持たせて記憶させるようにすれば、過去の銘柄割当(または注文割当)の状態を、通番管理情報記憶手段42(
図6参照)の情報を用いて再現することができるからである。
【0155】
<発注管理手段30に接続された各記憶手段41〜44および受付キュー45の構成>
【0156】
仮想サーバ管理情報記憶手段41は、
図5に示すように、仮想サーバの使用経路と、稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報と、仮想サーバと取引所システム70との接続状態を示すステータスとを、仮想サーバの識別情報(仮想サーバID等)と関連付けて記憶するものである。
【0157】
ここで、「ステータス」は、例えば、未接続、接続正常、接続異常の3状態としてもよく、あるいは、異常な状態を2つに分け、未接続、正常、新規異常、継続異常の4状態等としてもよく、少なくとも正常か異常かの状態を区別できるようになっていればよい。
【0158】
また、「銘柄割当情報」は、稼働している各仮想サーバ(ステータスが「接続正常」や「正常」になっている各仮想サーバ)に対し、処理を担当する銘柄を振り分けるための情報であり、この銘柄割当情報の数(何通りあるか)は、稼働している仮想サーバ(但し、ドロップコピー用の仮想サーバは除く)の台数と同数である。従って、例えば、本実施形態のように、稼働している仮想サーバの台数を除数(割る数)とする除算の計算式を用い、その余りを銘柄割当情報とする場合には、稼働している仮想サーバの台数が6台であれば、除算の余りは、0,1,2,3,4,5の6通り(銘柄割当情報の数=6)となり、3台であれば、除算の余りは、0,1,2の3通り(銘柄割当情報の数=3)となる。なお、銘柄分散ではなく、注文分散を行う場合には、この銘柄割当情報は、「注文割当情報」となる。また、いずれの仮想サーバが、ドロップコピー用の仮想サーバなのかという情報(
図5の例では、仮想サーバG,Hが、ドロップコピー用の仮想サーバである。)、あるいはドロップコピー元の仮想サーバとドロップコピー先の仮想サーバとの関係は、この仮想サーバ管理情報記憶手段41に記憶させてもよく、発注管理手段30に接続された別の記憶手段(図示されないドロップコピー情報記憶手段)に記憶させてもよい。
【0159】
さらに、
図5での記載は省略されているが、仮想サーバ管理情報記憶手段41には、前述した電文受信処理手段32による通知の重複排除の第2の方法を実行するために、取引所システム70から受信した通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)の電文データに含まれている通知通番(取引所側で昇順に付番された通番であることが前提である。)のうちの最後(直近)に付番された最大の通知通番を、仮想サーバの識別情報と関連付けて記憶するようにしてもよい。このように仮想サーバ管理情報記憶手段41に、通知通番のうちの最後(直近)に付番された最大の通知通番を記憶するようにした場合には、少なくとも通知の重複排除という観点では、受信通知管理情報記憶手段44(
図8参照)の設置を省略することができる。
【0160】
通番管理情報記憶手段42は、
図6に示すように、除数(稼働している仮想サーバの台数)が変動した際、または除数に変動はないが、稼働している仮想サーバが入れ替わった際にその時点までに発注した注文(訂正や取消を含む)についての入力通番のうちの最後(直近)の入力通番と、除数(稼働している仮想サーバの台数)と、停止した仮想サーバ(ドロップコピー用の仮想サーバを除く)の識別情報とを対応付けて記憶するものである。
【0161】
ここで、「入力通番」は、取引参加者から発注される注文(訂正や取消を含む)に対し、取引参加者により昇順で付番される通番である。従って、ここに記憶されている入力通番までの過去の発注済の注文(訂正や取消を含む)について、その入力通番に対応して記憶されている「除数(稼働している仮想サーバの台数)」を適用することができ、かつ、その入力通番に対応して記憶されている「停止した仮想サーバの識別情報」から導かれる「稼働している仮想サーバの識別情報=銘柄割当が可能な仮想サーバはいずれかという情報」を適用することができるという意味である。但し、記憶されている入力通番(例えば、
図6中のN2)までの過去の発注済の注文(訂正や取消を含む)の全て(例えば、1〜N2)について適用できるのではなく、その入力通番よりも前(過去)の入力通番(例えば、
図6中のN1)が記憶されていれば、その前(過去)の入力通番の次の入力通番(例えば、N1+1)からの過去の発注済の注文(訂正や取消を含む)について適用できる。従って、
図6の例であれば、入力通番N2が記憶されているレコードについては、その前のレコードに入力通番N1が記憶されているので、適用範囲は、1〜N2ではなく、(N1+1)〜N2となり、適用される除数(稼働している仮想サーバの台数)は、3台であり、適用される銘柄割当情報の設定対象の仮想サーバは、仮想サーバB,D,Fである(停止した仮想サーバがA,C,Eなので、稼働している仮想サーバがB,D,Fであることが導かれる)。なお、停止した仮想サーバの識別情報ではなく、稼働している仮想サーバ(ドロップコピー用の仮想サーバを除く)の識別情報を記憶してもよく、要するに、ある時点から、ある時点までに稼働していた仮想サーバ(銘柄割当情報の設定対象とされていた仮想サーバ)を把握することができるようになっていればよい。
【0162】
発注管理情報記憶手段43は、
図7に示すように、取引所システム70へ発注した注文(訂正や取消を含む)についての送信電文の種別、送信した電文データに含まれている取引参加者側で付番した入力通番、注文銘柄についての銘柄コード、送信に使用した経路を対応付けて記憶するものである。
【0163】
ここで、過去の注文(訂正や取消を含む)の送信に使用した「経路」の記憶は、必須ではない。入力通番が判明していれば、通番管理情報記憶手段42(
図6参照)の情報を用いて、過去の時点(当該入力通番の時点)の除数(稼働している仮想サーバの台数)等を取得することができ、取得した過去の時点(当該入力通番の時点)の情報を、「計算式」や「ルール」に入力することにより、過去の時点(当該入力通番の時点)で使用された仮想サーバおよびその経路を判断することができるからである。従って、リソースの効率的な利用を図るという観点では、「経路」は記憶しなくてよい。
【0164】
また、
図7では、説明の便宜上、取引所システム70から受付通知の電文データを既に受信している注文(訂正や取消を含む)についても記載を残しているが、取引所システム70から受付通知の電文データを受信した際に、電文受信処理手段32により、受付通知の電文データを受信した注文(訂正や取消を含む)についてのレコードは削除される(後述する
図13のステップ37参照)。この削除により、多数存在する過去の注文(訂正や取消を含む)についてのレコードを全て記憶しておく必要がなくなるので、リソースの効率的な利用を図ることができる。従って、この場合、削除されずに残っている注文(訂正や取消を含む)があれば、その注文が、取引所システム70から受付通知の電文データを受信していない注文であるということがわかる。このため、電文送信処理手段31は、注文管理システム60から受信した注文の電文データを発注する際に、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文の追い越しの防止を図る目的で、発注管理情報記憶手段43(
図7参照)に記憶された情報を参照する場合には、注文管理システム60から受信した注文銘柄と同一銘柄についての注文が、発注管理情報記憶手段43に残っているか否かを判断すればよい。
【0165】
さらに、
図7には記載されていないが、発注管理情報記憶手段43に、取引所システム70に発注済の注文について取引所システム70からの受付通知の電文データを受信しているか否かの「受付通知の受信の有無を示す情報」を対応付けて記憶するようにしてもよい。この場合、電文送信処理手段31は、注文管理システム60から受信した注文の電文データを発注する際に、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文の追い越しの防止を図る目的で、発注管理情報記憶手段43(
図7参照)に記憶された情報を参照する場合には、注文管理システム60から受信した注文の銘柄と同一銘柄の注文について「受付通知の受信の有無を示す情報」を参照し、未受信の注文があるか否かを判断すればよい。そして、この場合には、上述した受付通知の電文データを受信した注文(訂正や取消を含む)についてのレコードの削除は行ってもよく、行わなくてもよいが、リソースの効率的な利用を図るという観点では、削除を行ったほうがよい。
【0166】
なお、
図7の下部には、取引所システム70への送信電文およびその受付に関する情報として、主として注文管理システム60で管理される情報(注文情報)の一部を抜粋した情報が対比して記載されているが、これは、発注管理情報記憶手段43の構成を示すものではなく、発注管理情報記憶手段43に記憶される情報の内容説明のために参考で記載しているものである。
【0167】
受信通知管理情報記憶手段44は、
図8に示すように、取引所システム70から受信した通知(新規注文・訂正・取消の受付通知、約定通知、訂正・取消の結果通知)の電文データに含まれている仮想サーバの識別情報および取引所側で付番された通知通番を対応付けて記憶するものである。ここで、取引所システム70からの通知には、例えば、「仮想サーバA、通知通番=1」という情報が含まれているが、仮想サーバAのドロップコピー用の仮想サーバHで受信したドロップコピーの通知にも、「仮想サーバH、通知通番=1」ではなく、「仮想サーバA、通知通番=1」という情報が含まれている。
【0168】
なお、
図8の下部には、取引所システム70からの受信電文に関する情報として、主として注文管理システム60で管理される情報(約定情報)の一部を抜粋した情報が対比して記載されているが、これは、受信通知管理情報記憶手段44の構成を示すものではなく、受信通知管理情報記憶手段44に記憶される情報の内容説明のために参考で記載しているものである。
【0169】
受付キュー45は、注文管理システム60から送信されてきた注文(新規注文、訂正、取消)の電文データを、発注処理を担当する仮想サーバに渡すまでに、一時的に保存するものである。
【0170】
以上において、発注管理手段30に含まれる電文送信処理手段31、電文受信処理手段32、および異常検知手段33は、発注管理システム20を構成する1台または複数台のサーバ(コンピュータ)の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラムにより実現される。
【0171】
また、発注管理手段30に接続された仮想サーバ管理情報記憶手段41、通番管理情報記憶手段42、発注管理情報記憶手段43、受信通知管理情報記憶手段44、および受付キュー45は、例えば、ハードディスク、フラッシュ・メモリ、RAM等の各種の記録媒体を採用することができる。
【0173】
アドレス変換器50は、ネットワーク機器であり、筐体が単体であるか、複数に分かれて構成されているかにかかわらず、外部の機器から見た場合に、複数のネットワーク機器を構成するものである。このアドレス変換器50は、例えば、ネットワーク・アドレス・ポート・トランスレーション(NAPT)等であり、IPアドレスとポート番号とを組み合わせて複数の物理回線(本実施形態では、一例として物理回線L1,L2)の切換を実現することができる。通常、取引参加者側の物理サーバと取引所側の物理サーバとを接続する経路は、物理的に1つのネットワーク経路に定まることから、物理回線L1,L2を切り換えるには、取引参加者の物理サーバも切り換えなければならないが、このアドレス変換器50では、ポート番号を用いることにより、取引参加者側の物理サーバを切り換えることなく(発注管理システム20の各仮想サーバA,B,C,D等のうちの接続異常が検知された仮想サーバを構成する物理サーバを、別の物理サーバに切り換えることなく)、物理回線L1,L2の切換を実現することができ、仮想経路RA,RB,RC,RD等を(正)から(副)へ、あるいは(副)から(正)へ切り換えることができる。
【0174】
具体的には、前述したように、通常、取引参加者側の物理サーバと取引所側の物理サーバとを接続する経路は、物理的に1つのネットワーク経路に定まってしまうので、これを解消し、ネットワーク経路を物理的に分けるためには、取引所システム70に対し、取引参加者側の物理サーバが2つ存在するように見せる必要がある。このため、実際には取引参加者側の物理サーバは1つであるが、アドレス変換器50を介在させることにより、取引所システム70から見た場合に、2つのネットワーク機器が存在する状態を作り出し、それらの2つのネットワーク機器から、実際には1つである物理サーバへ業務電文の信号が入ってくるようにする。
【0175】
例えば、取引参加者と取引所とのネットワーク設定においては、アドレス変換器50の第1の機器の「IPアドレス(1):ポート番号(1)」と取引所システム70の構成サーバのIPアドレスとの間で通信が行われるとともに、アドレス変換器50の第2の機器の「IPアドレス(2):ポート番号(1)」と取引所システム70の構成サーバのIPアドレスとの間で通信が行われる。従って、取引所システム70の構成サーバから見た場合には、IPアドレス(1)の第1の機器と、これとは別のIPアドレス(2)の第2の機器とが存在することになるので、これにより、物理回線L1,L2の切換を実現することができる。
【0176】
一方、取引参加者内のネットワーク設定(例えばNAPT)においては、取引参加者の発注管理システム20の構成サーバの「IPアドレス(3):ポート番号(1)」とアドレス変換器50の第1の機器の「IPアドレス(1):ポート番号(1)」との間で通信が行われるとともに、取引参加者の発注管理システム20の構成サーバの「IPアドレス(3):ポート番号(1)」とアドレス変換器50の第2の機器の「IPアドレス(2):ポート番号(1)」との間で通信が行われる。なお、ここでは、取引参加者の発注管理システム20の構成サーバとは、発注管理システム20の各仮想サーバA,B,C,D等のうちの着目する任意の1つの仮想サーバ、すなわち異常が検知されて再接続による復旧の対象となっている任意の1つの仮想サーバを構成する物理サーバと考えてよい。従って、IPアドレス(3)を有する取引参加者の発注管理システム20の構成サーバは、アドレス変換器50によるIPアドレス(1)の第1の機器、およびこれとは別のIPアドレス(2)の第2の機器の双方との通信を行うことができる。以上より、発注管理システム20の各仮想サーバA,B,C,D等は、物理サーバの切換を行うことなく、物理回線L1,L2を切り換えて使用することができ、仮想経路RA,RB,RC,RD等を(正)から(副)へ、あるいは(副)から(正)へ切り換えることができる。
【0177】
注文管理システム60は、顧客からの金融商品(株式等)の売買注文を受け付けるシステムであり、1台または複数台のコンピュータにより構成され、顧客から受け付けた注文の注文データ(顧客識別情報である口座番号、注文識別情報である注文番号、注文銘柄、注文数量、注文単価、売買区分等)や約定データ(約定数量、約定単価等)を管理する処理を実行するものである。
【0178】
取引所システム70は、1台または複数台のコンピュータにより構成され、取引所ネットワーク71に接続された仮想サーバA,B,C,D等を備え、これらの取引所の仮想サーバA,B,C,D等と、取引参加者の発注管理システム20の仮想サーバA,B,C,D等との間で、取引所ネットワーク71上に設けられた複数のアクセスポイント(本実施形態では、一例として、2つのアクセスポイントAP1,AP2)に接続された複数の物理的な回線(本実施形態では、一例として、2本の物理回線L1,L2)を介して注文およびその受付等の業務電文の送受信を行うことにより、金融商品(株式等)の売買取引を実行するものである。
【0179】
このような本実施形態においては、以下のようにして取引所接続システム10による取引所システム70への接続処理および接続状態の監視処理が行われる。
【0180】
<各仮想サーバの接続状態の管理処理(異常検知およびその対応処理を含む)の全体的な流れ>
【0181】
図9において、システム起動時には、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)に記憶されている情報を初期化し、各仮想サーバのステースを「未接続」にする(ステップS1)。
【0182】
取引所の運用開始時刻になったときには、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)のステータスが「未接続」となっている各仮想サーバについて、ログインを行う(ステップS2)。なお、このログインは、異常検知手段33からの指示で各仮想サーバが行い、異常検知手段33は、その成否の結果の情報を各仮想サーバから受け取る。
【0183】
そして、各仮想サーバがログインに成功したか否かを判断し(ステップS3)、ログインに成功した仮想サーバの場合には、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)の各仮想サーバのステータスを「接続正常」(後述する
図12のようにステータスを4状態とする場合には、「正常」)にする(ステップS4)。
【0184】
一方、前述したステップS3で、ログインに失敗した仮想サーバの場合には、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)の各仮想サーバのステータスを「接続異常」(後述する
図12のようにステータスを4状態とする場合には、最初は「新規異常」で、2回目以降は「継続異常」)にし(ステップS5)、再接続(強制ログアウトおよびログイン)を行い(ステップS6)、ステップS3の処理に戻る。なお、ステップS6の再接続は、異常検知手段33からの指示で各仮想サーバが行い、異常検知手段33は、その成否の結果の情報を各仮想サーバから受け取る。
【0185】
従って、ログインに一度も成功しない仮想サーバがある場合には、ステップS3,S5,S6の処理が繰り返され、その仮想サーバでは、ログインが成功するまで再接続が繰り返されることになる。但し、図示は省略されているが、このループ中には、ステップS7に相当する判断処理は介在するので、取引所の運用終了時刻になれば、ループ処理は終了する。
【0186】
また、図示は省略されているが、全ての仮想サーバについて、ログインの成否が判明した時点で、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)のステータスが「接続正常」(後述する
図12のようにステータスを4状態とする場合には、「正常」)となっている各仮想サーバに対する銘柄割当(または注文割当)の初期設定を行うために、銘柄分散用(または注文分散用)の「計算式」または「ルール」を構築する。この「計算式」または「ルール」の構築は、「計算式」または「ルール」の内容そのものを作成するわけではなく、「計算式」または「ルール」への入力情報の一部についての初期設定、および、「計算式」または「ルール」からの出力情報である銘柄割当情報(または注文割当情報)についての初期設定を行うものである。具体的には、ステータスが「接続正常」(または「正常」)となっている各仮想サーバ(稼働している各仮想サーバ)の台数等を、通番管理情報記憶手段42(
図6参照)に記憶させるとともに、仮想サーバ管理情報記憶手段41(
図5参照)において、ステータスが「接続正常」(または「正常」)となっている各仮想サーバに対し、例えば除算の余り等のような銘柄割当情報(または注文割当情報)を記憶させる処理を実行する。この処理は、各仮想サーバに対する銘柄割当(または注文割当)の初期設定の処理であるが、後述する
図10のステップS1015における銘柄割当(または注文割当)の更新処理(「計算式」または「ルール」の再構築)と同じ内容であるから、ここでは、詳しい説明を省略する。また、ここでの処理は、異常検知時の対応処理ではなく、初期設定の処理であるが、処理内容は同じであるため、説明の便宜上、異常検知手段33が、ここでの処理を行うという説明をしている。
【0187】
続いて、取引所の運用終了時刻になったか否かを判断し(ステップS7)、取引所の運用終了時刻になっていない場合には、異常検知手段33により、各仮想サーバの接続に異常がないか否かを確認する(ステップS8)。
【0188】
ここでの異常検知手段33による処理は、[1]取引参加者の各仮想サーバA,B,C,D等の正常・異常の判定処理(発注管理手段30と各仮想サーバA,B,C,D等とが別の物理サーバで構成されている場合における各仮想サーバA,B,C,D等を構成する物理サーバの正常・異常の判定処理が含まれる。)と、[2]取引参加者の各仮想サーバA,B,C,D等が実行する発注キューの監視による滞留検知の情報の取得処理と、[3]各仮想サーバA,B,C,D等が実行する通信規約に基づくシステムチェックの情報の取得処理である。[2]、[3]の処理は並行して実行することが好ましいが、一方の処理だけを実行してもよい。なお、これらの[1]、[2]、[3]の処理内容については、既に詳細しているので、ここでは詳しい説明は省略する。
【0189】
それから、ステップS8の処理を実行した結果から、接続異常が検知された仮想サーバがあるか否かを判断し(ステップS9)、接続異常が検知された仮想サーバがあると判断された場合には、異常検知手段33により、接続異常が検知された各仮想サーバについて、再接続(強制ログアウトおよびログイン)等の異常検知時の対応処理を行う(ステップS10)。この異常検知時の対応処理のうちの一部の処理は、異常検知手段33からの指示を受け、あるいは異常検知手段33へ通知を送る各仮想サーバが行う。なお、異常検知時の対応処理の詳細内容は、
図10〜
図12を用いて後述するので、ここでは詳しい説明を省略する。
【0190】
一方、前述したステップS9で、接続異常が検知された仮想サーバがないと判断された場合には、ステップS7の処理に戻り、以降、ステップS7で取引所の運用終了時刻になったと判断されるまで、ステップS7〜S9の処理を繰り返し、異常検知手段33による各仮想サーバの接続状態の監視処理を続行する。そして、ステップS9で接続異常が検知された時点で、ステップS10の再接続等の異常検知時の対応処理を実行する。
【0191】
また、前述したステップS7で、取引所の運用終了時刻になったと判断した場合には、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)のステータスが「接続正常」(後述する
図12のようにステータスを4状態とする場合には、「正常」)となっている各仮想サーバについて、ログアウトを行う(ステップS11)。その後、異常検知手段33により、ログアウトの成否を問わず、仮想サーバ管理情報記憶手段41の各仮想サーバのステータスを「未接続」にし(ステップS12)、その日の各仮想サーバの接続状態の管理処理を終了する。
【0192】
<異常検知時の対応処理(第1の方法)の流れ>
【0193】
図10において、
図9のステップS9で、接続異常が検知された仮想サーバがあると判断された場合には、異常検知手段33により、接続異常が検知された各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)の各仮想サーバのステータスを「接続異常」にする(ステップS1011)。
【0194】
続いて、異常検知手段33により、接続異常が検知された各仮想サーバについて、再接続(強制ログアウト&ログイン)を行う(ステップS1012)。この際、異常検知手段33は、接続異常が検知された各仮想サーバの経路を、アドレス変換器50を用いて、(正)から(副)へ、または(副)から(正)へ変更する回線切換の指示を各仮想サーバに送り、再接続の成否とともに、切換の有無(経路(正)、(副)のいずれでの成否なのかの情報)を各仮想サーバから受け取ってもよく、あるいは、各仮想サーバによる自主的な回線切換(アドレス変換器50を用いての経路(正)から(副)へ、または(副)から(正)への回線切換)に委ね、再接続の成否とともに、切換の有無(経路(正)、(副)のいずれでの成否なのかの情報)を各仮想サーバから受け取ってもよい。なお、アドレス変換器50を用いた回線切換の内容については、既に詳述しているため、ここでは詳しい説明を省略する。
【0195】
そして、再接続が成功したか否かを判断し(ステップS1013)、再接続に成功したと判断した場合には、異常検知手段33により、再接続に成功した各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「接続正常」に戻す(ステップS1014)。
【0196】
一方、前述したステップS1013で、再接続に失敗したと判断した場合には、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「接続正常」に戻す処理は行わず、「接続異常」のままとする(ステップS1014)。
【0197】
その後、異常検知手段33により、各仮想サーバに対する銘柄割当(または注文割当)を変更するために、銘柄分散用(または注文分散用)の「計算式」または「ルール」の再構築を行う(ステップS1015)。この「計算式」または「ルール」の再構築は、「計算式」または「ルール」の内容そのものを変更するということではなく、次に示すように、「計算式」または「ルール」への入力情報の一部についての変更、および、「計算式」または「ルール」からの出力情報である銘柄割当情報(または注文割当情報)についての変更を行うものである。
【0198】
具体的には、異常検知手段33により、ステータスが「接続正常」となっている各仮想サーバ(稼働している各仮想サーバ:但し、ドロップコピー専用の仮想サーバは除く)の台数(「計算式」または「ルール」への入力情報であり、例えば、割り算の除数になる。)、この再構築時までに送信済の電文のうちの最後の電文についての入力通番の値、および、この再構築時に停止中の各仮想サーバ(但し、ドロップコピー専用の仮想サーバは除く)の識別情報を、通番管理情報記憶手段42(
図6参照)に記憶させる。なお、この再構築時に停止中の各仮想サーバの識別情報の代わりに、この再構築時に稼働している各仮想サーバ(但し、ドロップコピー専用の仮想サーバは除く)の識別情報を記憶させてもよく、要するに、過去の各時点において銘柄割当(または注文割当)の対象となっていた各仮想サーバを把握することができるようになっていればよい。
【0199】
また、異常検知手段33により、仮想サーバ管理情報記憶手段41(
図5参照)において、ステータスが「接続正常」となっている各仮想サーバ(稼働している各仮想サーバ:但し、ドロップコピー専用の仮想サーバは除く)に対し、例えば除算の余り等のような銘柄割当情報(または注文割当情報)を記憶させる。
【0200】
例えば、
図5に示すように、銘柄割当の初期設定の状態において、稼働している各仮想サーバ(但し、ドロップコピー専用の仮想サーバは除く)が、仮想サーバA,B,C,D,E,Fの6台であったとする。そして、仮想サーバ管理情報記憶手段41には、
図5の上部に示すように、仮想サーバAについての銘柄割当情報として余り0が記憶され、仮想サーバBについて余り1、仮想サーバCについて余り2、仮想サーバDについて余り3、仮想サーバEについて余り4、仮想サーバFについて余り5が記憶されていたとする。
【0201】
このとき、
図5に示すように、銘柄αの銘柄コードを構成する各桁のコードが示す数値の単純合計(各桁のコードが示す数値の和)=18であり、銘柄βの銘柄コードについての各桁の和=19、銘柄γの銘柄コードについての各桁の和=20、銘柄δの銘柄コードについての各桁の和=21、銘柄εの銘柄コードについての各桁の和=22、銘柄ζの銘柄コードについての各桁の和=23、銘柄ηの銘柄コードについての各桁の和=24、銘柄θの銘柄コードについての各桁の和=25、…であったとする。これらの和を、稼働している仮想サーバ(但し、ドロップコピー専用の仮想サーバは除く)の台数=6で除すると、銘柄αの余りは0、銘柄βの余りは1、銘柄γの余りは2、銘柄δの余りは3、銘柄εの余りは4、銘柄ζの余りは5となり、これで銘柄割当が一回りし、さらに、銘柄ηの余りは0、銘柄θの余りは1、…となる。
【0202】
従って、銘柄αの余りは0になったので、仮想サーバ管理情報記憶手段41を参照すると、銘柄αの発注処理を担当するのは仮想サーバAであることがわかり、銘柄βの余りは1になったので、銘柄βの発注処理を担当するのは仮想サーバBであることがわかる。同様に、銘柄γの余りは2なので、仮想サーバCに割り当てられ、銘柄δの余りは3なので、仮想サーバDに割り当てられ、銘柄εの余りは4なので、仮想サーバEに割り当てられ、銘柄ζの余りは5なので、仮想サーバFに割り当てられ、銘柄ηの余りは0なので、仮想サーバAに割り当てられ、銘柄θの余りは1なので、仮想サーバBに割り当てられることがわかる。但し、このような除算による、すなわち「計算式」または「ルール」による処理担当の仮想サーバの割出処理は、電文送信処理手段31が注文を発注する際に実行する処理であるから、異常検知手段33により実行される銘柄割当の初期設定の処理ではなく、異常検知手段33により実行される以下に述べる銘柄割当の変更処理でもない。
【0203】
そして、その後、稼働していた6台の仮想サーバA,B,C,D,E,Fのうち、仮想サーバA,C,Eが接続異常で停止したとする。異常検知手段33によりこの状態が検知されると、
図6に示すように、通番管理情報記憶手段42には、稼働している仮想サーバB,D,Fの台数=3が、除数(「計算式」または「ルール」への入力情報)に記憶されるとともに、停止した仮想サーバA,C,Eの識別情報も記憶される。なお、稼働している仮想サーバB,D,Fの識別情報を記憶してもよい。また、その時点までに送信済の電文のうちの最後の電文についての入力通番の値N1が、その時まで稼働していた6台の仮想サーバA,B,C,D,E,Fの台数=6に対応付けて記憶される。従って、入力通番N1までは、稼働していた仮想サーバは、6台であることがわかる。
【0204】
また、異常検知手段33により、
図5の中央部に示すように、仮想サーバ管理情報記憶手段41において、ステータスが「接続正常」となっている3台の各仮想サーバB,D,Fに対し、銘柄割当情報として、余り0,1,2を記憶させる。
【0205】
さらに、その後、停止していた3台の仮想サーバA,C,Eが復旧したとする。異常検知手段33によりこの状態が検知されると、
図6に示すように、通番管理情報記憶手段42には、稼働している仮想サーバA,B,C,D,E,Fの台数=6が、除数(「計算式」または「ルール」への入力情報)に記憶されるとともに、停止した仮想サーバに関する情報も更新され、停止した仮想サーバの識別情報が無くなる。なお、稼働している仮想サーバA,B,C,D,E,Fの識別情報を記憶してもよい。また、その時点までに送信済の電文のうちの最後の電文についての入力通番の値N2が、その時まで稼働していた3台の仮想サーバB,D,Fの台数=3に対応付けて記憶される。従って、入力通番(N1+1)〜N2までは、稼働していた仮想サーバは、3台であることがわかる。
【0206】
また、異常検知手段33により、
図5の上部に示すように、仮想サーバ管理情報記憶手段41において、ステータスが「接続正常」となっている6台の各仮想サーバA,B,C,D,E,Fに対し、銘柄割当情報として、余り0,1,2,3,4,5を記憶させる。従って、停止していた3台の仮想サーバA,C,Eが復旧したので、銘柄割当を初期設定の状態に戻すことになる。
【0207】
続いて、稼働していた6台の仮想サーバA,B,C,D,E,Fのうち、仮想サーバAが接続異常で停止したとする。異常検知手段33によりこの状態が検知されると、
図6に示すように、通番管理情報記憶手段42には、稼働している仮想サーバB,C,D,E,Fの台数=5が、除数(「計算式」または「ルール」への入力情報)に記憶されるとともに、停止した仮想サーバAの識別情報も記憶される。なお、稼働している仮想サーバB,C,D,E,Fの識別情報を記憶してもよい。また、その時点までに送信済の電文のうちの最後の電文についての入力通番の値N3が、その時まで稼働していた6台の仮想サーバA,B,C,D,E,Fの台数=6に対応付けて記憶される。従って、入力通番(N2+1)〜N3までは、稼働していた仮想サーバは、6台であることがわかる。
【0208】
また、異常検知手段33により、
図5の下部に示すように、仮想サーバ管理情報記憶手段41において、ステータスが「接続正常」となっている5台の各仮想サーバB,C,D,E,Fに対し、銘柄割当情報として、余り0,1,2,3,4を記憶させる。
【0209】
そして、以上のような「計算式」または「ルール」の再構築を行った後に、
図9のステップS7の処理に戻る。
【0210】
なお、
図10の異常検知時の対応処理(第1の方法)では、ステータスが「接続正常」から「接続異常」になり、再接続に失敗した仮想サーバがある場合や、ステータスが元々「接続異常」だったが、再接続に成功して「接続正常」になった仮想サーバがある場合について、ステップS1015の「計算式」または「ルール」の再構築が行われるのみならず、ステータスが「接続正常」から一旦「接続異常」に変わったものの、再接続に成功して「接続正常」に戻った仮想サーバがある場合や、ステータスが元々「接続異常」であり、再接続に失敗して「接続異常」を維持した仮想サーバがある場合にも、ステップS1015の「計算式」または「ルール」の再構築が行われる。従って、ステップS1015の「計算式」または「ルール」の再構築の前後で、銘柄割当(または注文割当)の状態に変化がない場合もあるので、必ずしも「計算式」または「ルール」の再構築が必要でない場合にも、再構築を行っていることになる。これに対し、以下に示す
図11の異常検知時の対応処理(第2の方法)および
図12の異常検知時の対応処理(第3の方法)では、必要な場合にのみ「計算式」または「ルール」の再構築が行われるようになる。
【0211】
<異常検知時の対応処理(第2の方法)の流れ>
【0212】
図11において、
図9のステップS9で、接続異常が検知された仮想サーバがあると判断された場合には、異常検知手段33により、接続異常が検知された各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスが既に「接続異常」になっているか否かを判断する(ステップS1021)。
【0213】
ここで、ステータスが「接続異常」になっていないと判断された場合(今回、新規に接続異常と判定された仮想サーバである場合)には、異常検知手段33により、接続異常が検知された各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)の各仮想サーバのステータスを「接続異常」にする(ステップS1022)。
【0214】
続いて、異常検知手段33により、接続異常が検知された各仮想サーバについて、再接続(強制ログアウトおよびログイン)を行う(ステップS1023)。この処理は、前述した
図10のステップS1012と同じ処理であるため、ここでは詳しい説明を省略する。
【0215】
それから、異常検知手段33により、再接続が成功したか否かを判断し(ステップS1024)、再接続に成功したと判断した場合には、異常検知手段33により、再接続に成功した各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「接続正常」に戻す(ステップS1025)。そして、「計算式」または「ルール」の再構築を行うことなく、
図9のステップS7の処理に戻る。
【0216】
一方、前述したステップS1024で、再接続に失敗したと判断した場合には、異常検知手段33により、各仮想サーバに対する銘柄割当(または注文割当)を変更するために、銘柄分散用(または注文分散用)の「計算式」または「ルール」の再構築を行う(ステップS1026)。この処理は、前述した
図10のステップS1015と同じ処理であるため、ここでは詳しい説明を省略する。そして、
図9のステップS7の処理に戻る。
【0217】
また、前述したステップS1021で、ステータスが既に「接続異常」になっていると判断された場合(前回から接続異常が継続している仮想サーバである場合)には、異常検知手段33により、接続異常が検知された各仮想サーバについて、再接続(強制ログアウト&ログイン)を行う(ステップS1027)。この処理は、ステップS1023と同じ処理であり、従って、前述した
図10のステップS1012と同じ処理であるため、ここでは詳しい説明を省略する。
【0218】
それから、異常検知手段33により、再接続が成功したか否かを判断し(ステップS1028)、再接続に成功したと判断した場合には、異常検知手段33により、再接続に成功した各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「接続正常」にする(ステップS1029)。
【0219】
続いて、異常検知手段33により、各仮想サーバに対する銘柄割当(または注文割当)を変更するために、銘柄分散用(または注文分散用)の「計算式」または「ルール」の再構築を行う(ステップS1026)。この処理は、前述した
図10のステップS1015と同じ処理であるため、ここでは詳しい説明を省略する。そして、
図9のステップS7の処理に戻る。
【0220】
一方、前述したステップS1028で、再接続に失敗したと判断した場合には、「計算式」または「ルール」の再構築を行うことなく、
図9のステップS7の処理に戻る。
【0221】
<異常検知時の対応処理(第3の方法)の流れ>
【0222】
図12に示すように、この第3の方法では、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを、「未接続、接続正常、接続異常」の3状態から「未接続、正常、新規異常、継続異常」の4状態に変更する。従って、「接続異常」を「新規異常」と「継続異常」とに分けている。
【0223】
図12において、
図9のステップS9で、接続異常が検知された仮想サーバがあると判断された場合には、異常検知手段33により、接続異常が検知された各仮想サーバについて、前回が正常(または未接続)で、今回異常になった仮想サーバの場合には、仮想サーバ管理情報記憶手段41(
図5参照)の当該仮想サーバのステータスを「新規異常」にし、前回が新規異常または継続異常で、今回異常になった仮想サーバの場合には、仮想サーバ管理情報記憶手段41の当該仮想サーバのステータスを「継続異常」にする(ステップS1031)。
【0224】
続いて、異常検知手段33により、接続異常が検知された各仮想サーバ(ステータスが「新規異常」または「継続異常」の各仮想サーバ)について、再接続(強制ログアウトおよびログイン)を行う(ステップS1032)。この処理は、前述した
図10のステップS1012と同じ処理であるため、ここでは詳しい説明を省略する。
【0225】
その後、異常検知手段33により、再接続が成功したか否かを判断し(ステップS1033)、再接続に成功したと判断した場合には、異常検知手段33により、ステータスが「継続異常」であるか否かを判断する(ステップS1034)。
【0226】
ここで、ステータスが「継続異常」であると判断された場合には、異常検知手段33により、各仮想サーバに対する銘柄割当(または注文割当)を変更するために、銘柄分散用(または注文分散用)の「計算式」または「ルール」の再構築を行う(ステップS1035)。この処理は、前述した
図10のステップS1015と同じ処理であるため、ここでは詳しい説明を省略する。
【0227】
それから、異常検知手段33により、再接続に成功した各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「正常」にする(ステップS1036)。そして、
図9のステップS7の処理に戻る。
【0228】
一方、前述したステップS1034で、ステータスが「継続異常」ではない(「新規異常」である)と判断された場合には、「計算式」または「ルール」の再構築を行うことなく、ステップS1036の処理に進み、異常検知手段33により、再接続に成功した各仮想サーバについて、仮想サーバ管理情報記憶手段41(
図5参照)のステータスを「正常」にする。そして、
図9のステップS7の処理に戻る。
【0229】
また、前述したステップS1033で、再接続に失敗したと判断した場合には、異常検知手段33により、ステータスが「新規異常」であるか否かを判断する(ステップS1037)。
【0230】
ここで、ステータスが「新規異常」であると判断された場合には、異常検知手段33により、各仮想サーバに対する銘柄割当(または注文割当)を変更するために、銘柄分散用(または注文分散用)の「計算式」または「ルール」の再構築を行う(ステップS1038)。この処理は、ステップS1035と同じ処理であり、従って、前述した
図10のステップS1015と同じ処理であるため、ここでは詳しい説明を省略する。そして、
図9のステップS7の処理に戻る。
【0231】
一方、前述したステップS1037で、ステータスが「新規異常」ではない(「継続異常」である)と判断された場合には、「計算式」または「ルール」の再構築を行うことなく、
図9のステップS7の処理に戻る。
【0232】
<業務電文の送受信の処理の全体的な流れ>
【0233】
図13には、証券会社等の取引参加者の取引所接続システム10と取引所システム70との間における注文やその受付等の通知の業務電文を送受信する処理についての全体的な流れが示されている。
【0234】
図13において、注文管理システム60から注文(新規注文、注文の訂正、注文の取消)の電文データ(顧客識別情報である口座番号、注文識別情報である注文番号、注文銘柄、注文数量、注文単価、売買区分等が含まれている。)が送信されてくると、発注管理システム20の受付キュー45に格納されるので、電文送信処理手段31により、これを受け取る(ステップS31)。
【0235】
続いて、電文送信処理手段31により、注文管理システム60から受け取った注文(新規注文、注文の訂正、注文の取消)の電文データを、銘柄分散(または注文分散)により決定した仮想サーバの発注キューに送ることにより、取引所システム70へ送信する(ステップS32)。この際、送信される電文データには、証券会社等の取引参加者側で付番される入力通番が含まれている。
【0236】
このステップS32での電文送信処理手段31による銘柄分散(または注文分散)の方法(使用する仮想サーバおよび経路の決定方法)については、既に詳述しているため、ここでは詳しい説明を省略する。また、電文送信処理手段31は、注文の種別(新規注文、訂正、取消の別)に応じ、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しの防止を図るための処理を実行するが、この処理の詳細については、
図14〜
図16を用いて後述する。
【0237】
取引所システム70は、取引所接続システム10から発注された注文(新規注文、訂正、取消)の電文データを受信すると(ステップS33)、受信した注文に対し、仮想サーバ毎の通知通番を付し、また、受信した新規注文に対し、受付番号を付す。
【0238】
そして、取引所システム70は、注文(新規注文、訂正、取消)の受付通知の電文データを、上りの経路と同じ経路を介して、取引所接続システム10へ送信するとともに、ドロップコピー用の経路として取引参加者により指定されている経路を介して、ドロップコピーの受付通知の電文データを、取引所接続システム10へ送信する(ステップS34)。この際、送信される電文データには、取引所で付番した受付番号や通知通番、および取引参加者が付番した入力通番が含まれている。なお、取引参加者側の仮想サーバAから発注された注文に対する受付通知の場合には、仮想サーバAの経路RAを介して送信する受付通知にも、ドロップコピー用の仮想サーバHの経路RHを介して送信する受付通知にも、「仮想サーバA、通知通番=XX」という情報が含まれている。
【0239】
取引所接続システム10では、注文(新規注文、訂正、取消)の発注を行った仮想サーバおよびそのドロップコピー用の仮想サーバにより、注文(新規注文、訂正、取消)の受付通知の電文データを、上りの経路と同じ経路およびドロップコピー用の経路の2経路を介して受信する(ステップS35)。この際、受信する電文データには、取引所で付番した受付番号や通知通番、および取引参加者が付番した入力通番が含まれている。
【0240】
そして、電文受信処理手段32により、受信通知管理情報記憶手段44(
図8参照)に、受信した新規注文・訂正・取消の受付通知に含まれる情報を記憶させる(ステップS36)。この際、通知通番を用いて、同一内容の受付通知の重複排除を行うが、この処理については、既に詳述しているので、ここでは詳しい説明を省略する。
【0241】
続いて、電文受信処理手段32により、発注管理情報記憶手段43(
図7参照)において、重複排除されて受信通知管理情報記憶手段44(
図8参照)に記憶されている受付通知の情報を反映させ、受付通知を受信した注文(新規注文、訂正、取消)についての管理情報を削除する(ステップS37)。なお、発注管理情報記憶手段43(
図7参照)に、受付の有無を示すカラムを設けておき、電文受信処理手段32により、受付通知を受信した注文(新規注文、訂正、取消)について、そのカラムに通知受信済であることを示す情報を記憶させてもよい。
【0242】
また、電文受信処理手段32により、重複排除した受付通知の電文データを、注文管理システム60へ送る(ステップS38)。
【0243】
一方、取引所システム70は、受け付けた注文を約定させる処理や、注文の訂正・取消等の各種処理を実行する(ステップS39)。
【0244】
続いて、取引所システム70は、約定通知や訂正・取消の結果通知の電文データを、上りの経路と同じ経路を介して、取引所接続システム10へ送信するとともに、ドロップコピー用の経路として取引参加者により指定されている経路を介して、ドロップコピーの約定通知や訂正・取消の結果通知の電文データを、取引所接続システム10へ送信する(ステップS40)。この際、送信される電文データには、取引所で付番した受付番号や通知通番、および取引参加者が付番した入力通番が含まれている。
【0245】
取引所接続システム10では、注文(新規注文、訂正、取消)の発注を行った仮想サーバおよびそのドロップコピー用の仮想サーバにより、約定通知や訂正・取消の結果通知のの電文データを、上りの経路と同じ経路およびドロップコピー用の経路の2経路を介して受信する(ステップS41)。この際、受信する電文データには、取引所で付番した受付番号や通知通番、および取引参加者が付番した入力通番が含まれている。また、約定通知であれば、約定数量や約定単価等が含まれている。
【0246】
そして、電文受信処理手段32により、受信通知管理情報記憶手段44(
図8参照)に、受信した約定通知や訂正・取消の結果通知に含まれる情報を記憶させる(ステップS42)。この際、通知通番を用いて、同一内容の約定通知や同一内容の訂正・取消の結果通知の重複排除を行うが、この処理については、既に詳述しているので、ここでは詳しい説明を省略する。
【0247】
また、電文受信処理手段32により、重複排除した約定通知や訂正・取消の結果通知の電文データを、注文管理システム60へ送る(ステップS43)。
【0248】
<電文送信処理手段31による新規注文の業務電文の送信時の処理の流れ>
【0249】
図14において、
図13のステップS31で発注管理システム20の受付キュー45から新規注文の電文データを受け取った際には、銘柄単位で、受け付けた注文の市場への発注順序を厳密に守る処理、すなわち同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合と、そのような処理を行わない場合とがある。
【0250】
先ず、前者のように、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合には、注文管理システム60(発注管理システム20の受付キュー45)から受け取った電文データが、新規注文の電文データである際には、電文送信処理手段31により、当該電文データに含まれている注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)の情報が発注管理情報記憶手段43(
図7参照)に記憶されているか否かを判断する(ステップS3211)。また、受付通知を受信していない注文のレコードの有無で判断するのではなく、発注管理情報記憶手段43に、受付通知の受信の有無を示す情報のカラムを設けておき、そのカラムを参照し、受付通知を受信していない注文があるか否かを判断してもよい。
【0251】
ここで、注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)があると判断した場合には、取引所システム70への発注を行わずに待つ(ステップS3212)。すなわち、仮想サーバの発注キューへ送らずに、発注管理システム20の受付キュー45に残しておくか、あるいは注文管理システム60に新規注文の発注処理を行わない旨の情報を送る。そして、上述したステップS3211の判断処理に戻り、以降、受付通知を受信するまで、ステップS3211,S3212の処理を繰り返す。なお、発注管理情報記憶手段43(
図7参照)において、受付通知の電文を受信していない注文については、人の判断で端末装置(不図示)からの操作により受信済に置き換えることができる構成としておくことが好ましく、このような構成とした場合には、新規注文を受け取った際に、その銘柄に対して、何もできない状態になることを回避することができる。
【0252】
一方、前述したステップS3211で、注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)がないと判断した場合には、電文送信処理手段31により、通番管理情報記憶手段42(
図6参照)から現時点での除数(稼働している仮想サーバの台数)を取得し、例えば、注文銘柄の銘柄コードを構成する各桁のコード(数字、文字、または記号)が示す数値の和を、取得した除数で割るという除算の「計算式」を用いて、銘柄割当情報としての除算の余りを求める(ステップS3213)。現時点での除数は、
図6の例では、一番下側のレコードに格納されている除数=5である。注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)がないと判断したので、いずれの仮想サーバ(いずれの経路)で発注しても、同一銘柄(銘柄毎)の注文間の追い越しは発生しないことから、現時点での除数を用いることにより、現時点での「計算式」により銘柄割当を行うものである。なお、上記以外の「計算式」や「ルール」を用いて銘柄コードから銘柄割当情報を求める場合にも、現時点で稼働している仮想サーバの台数を用いることにより、現時点での「計算式」や「ルール」により銘柄割当を行えばよい。
【0253】
続いて、電文送信処理手段31により、求めた余りに対応する仮想サーバの識別情報を仮想サーバ管理情報記憶手段41(
図5参照)から取得して、使用する仮想サーバおよび経路を決定し、決定した仮想サーバおよび経路で発注を行う(ステップS3214)。すなわち、決定した仮想サーバの発注キューに、取引所システム70へ送信する注文の電文データを送り込む。
【0254】
また、電文送信処理手段31により、発注管理情報記憶手段43(
図7参照)に、発注した注文についての入力通番、銘柄コード、使用経路(但し、経路は必須ではない)等を記憶させる(ステップS3215)。そして、
図13のステップS33へと進む。
【0255】
次に、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行わない場合には、ステップS3211の受付通知を受信していない注文(新規注文、訂正、取消)の情報が発注管理情報記憶手段43(
図7参照)に記憶されているか否かの判断処理を行うことなく、ステップS3213〜S3215の処理を実行する。
【0256】
<電文送信処理手段31による注文の訂正(変更)の業務電文の送信時の処理の流れ>
【0257】
図15において、
図13のステップS31で発注管理システム20の受付キュー45から注文の訂正(変更)の電文データを受け取った際には、銘柄単位で、受け付けた注文の市場への発注順序を厳密に守る処理、すなわち同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合と、そのような処理を行わない場合とがあるのは、新規注文を受け取った際(
図14参照)と同様である。
【0258】
先ず、前者のように、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合には、注文管理システム60(発注管理システム20の受付キュー45)から受け取った電文データが、注文の訂正(変更)の電文データである際には、電文送信処理手段31により、当該電文データに含まれている注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)の情報が発注管理情報記憶手段43(
図7参照)に記憶されているか否かを判断する(ステップS3221)。また、受付通知を受信していない注文のレコードの有無で判断するのではなく、発注管理情報記憶手段43に、受付通知の受信の有無を示す情報のカラムを設けておき、そのカラムを参照し、受付通知を受信していない注文があるか否かを判断してもよい。
【0259】
ここで、注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)があると判断した場合には、取引所システム70への発注を行わずに待つ(ステップS3222)。すなわち、仮想サーバの発注キューへ送らずに、発注管理システム20の受付キュー45に残しておくか、あるいは注文管理システム60に訂正の発注処理を行わない旨の情報を送る。そして、上述したステップS3221の判断処理に戻り、以降、受付通知を受信するまで、ステップS3221,S3222の処理を繰り返す。なお、発注管理情報記憶手段43(
図7参照)において、受付通知の電文を受信していない注文については、人の判断で端末装置(不図示)からの操作により受信済に置き換えることができる構成としておくことが好ましく、このような構成とした場合には、注文の訂正を受け取った際に、その銘柄に対して、何もできない状態になることを回避することができる。
【0260】
次に、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行わない場合には、さらに、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しを防止する処理を行うか、そのような処理を行わないかにより、異なる処理の流れとなる。
【0261】
このため、電文送信処理手段31により、訂正に係る注文(当該訂正の対象の注文、当該訂正前の別の訂正)について、受付通知を受信していない注文の情報が、発注管理情報記憶手段43(
図7参照)に記憶されているか否かを判断する(ステップS3223)。また、受付通知を受信していない注文のレコードの有無で判断するのではなく、発注管理情報記憶手段43に、受付通知の受信の有無を示す情報のカラムを設けておき、そのカラムを参照し、受付通知を受信していない注文があるか否かを判断してもよい。この判断処理は、顧客が新規に注文を出した後に、その注文の訂正を出し、あるいはさらに別の訂正を出すといったように、同一顧客が、自分の1つの注文について、複数の手続(注文行為)を行う場合があるので、その場合に、後の手続が、先の手続を追い越さないようにするための判断処理である。
【0262】
ここで、訂正に係る注文(当該訂正の対象の注文、当該訂正前の別の訂正)について、受付通知を受信していない注文があると判断した場合には、取引所システム70への発注を行わずに待つ(ステップS3224)。すなわち、仮想サーバの発注キューへ送らずに、発注管理システム20の受付キュー45に残しておくか、あるいは注文管理システム60に訂正の発注処理を行わない旨の情報を送る。そして、上述したステップS3223の判断処理に戻り、以降、受付通知を受信するまで、ステップS3223,S3224の処理を繰り返す。なお、発注管理情報記憶手段43(
図7参照)において、受付通知の電文を受信していない注文については、人の判断で端末装置(不図示)からの操作により受信済に置き換えることができる構成としておくことが好ましく、このような構成とした場合には、注文の訂正を受け取った際に、その銘柄に対して、何もできない状態になることを回避することができる。
【0263】
また、上述したステップS3224の「発注を行わずに待つという処理」に代えて、訂正に係る注文(当該訂正の対象の注文、当該訂正前の別の訂正)の発注処理を担当した仮想サーバおよびその経路を把握し、把握した仮想サーバおよびその経路を使用して、その訂正を取引所システム70へ発注してもよい。従って、受付通知を受信していない注文は、発注済の過去の注文(訂正も含む)であるから、過去の注文と同じ仮想サーバおよび経路を使用することになり、また、その過去の注文は受付通知を受信していないので、停止している仮想サーバおよびその経路を使用することになるため、停止している仮想サーバの発注キューに訂正の電文データを送ってその発注キューに留め置くことになる。
【0264】
このような代替処理を行う場合には、発注管理情報記憶手段43(
図7参照)に、過去の注文(受付通知を受信していない注文)の使用経路が記憶されていれば、その情報を用いて、訂正の電文データを送る仮想サーバを決定すればよく、発注管理情報記憶手段43に使用経路が記憶されていなければ、次のようにして、訂正の電文データを送る仮想サーバを決定することができる。発注管理情報記憶手段43(
図7参照)に記憶されている当該過去の注文についての入力通番を用いて、通番管理情報記憶手段42(
図6参照)から、当該過去の注文の時点における情報(除数、および停止していた仮想サーバの識別情報)を取得し、取得した情報を用いて、過去の時点用にした「計算式」または「ルール」から、当該過去の注文の注文銘柄に対応する銘柄割当情報(例えば、除算の余り等)を求め、求めた銘柄割当情報を用いて、過去の時点用にした仮想サーバ管理情報記憶手段41(
図5参照)から、当該過去の注文の発注処理を担当した仮想サーバの識別情報を取得することにより、当該過去の注文の発注処理を担当した仮想サーバおよびその経路を把握する。そして、把握した仮想サーバの発注キューへ、訂正の電文データを送る。
【0265】
なお、前述したステップS3221の判断処理は、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行うにあたり、注文管理システム60(発注管理システム20の受付キュー45)から受け取った電文データが、注文の訂正(変更)の電文データである際の判断処理としているが、注文の訂正には、より細分化された内容があるので、訂正の電文データであれば一律に同じ処理を行うのではなく、次のように訂正の内容に応じた処理を行ってもよい。
【0266】
注文価格(注文単価)を変更する訂正の場合には、価格(単価)を上げる場合および下げる場合のいずれにも時間優先の原則(先に受け付けた手続を優先させて市場に出す原則)を適用すべきなので、前述したステップS3221の判断処理により処理の分岐を行う。
【0267】
これに対し、注文数量を変更する訂正の場合には、数量を増加させる場合には、時間優先の原則を適用すべきであるが、数量を減少させる場合には、時間優先の原則を適用する必要はない。従って、注文数量を増加させる訂正の場合には、前述したステップS3221の判断処理により処理の分岐を行う。一方、注文数量を減少させる訂正の場合には、前述したステップS3221の判断処理を行うことなく、後述するステップS3225の処理に進んでもよく、あるいは、この場合にも、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しについては防止する必要があれば、前述したステップS3223の判断処理に進んで処理の分岐を行ってもよい。
【0268】
そして、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合における前述したステップS3221で、注文銘柄と同一の銘柄について、受付通知を受信していない注文(新規注文、訂正、取消)がないと判断した場合、および、同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行わない場合における前述したステップS3223で、訂正に係る注文(当該訂正の対象の注文、当該訂正前の別の訂正)について、受付通知を受信していない注文がないと判断した場合には、いずれの場合についても、電文送信処理手段31により、通番管理情報記憶手段42(
図6参照)から現時点での除数(稼働している仮想サーバの台数)を取得し、例えば、注文銘柄の銘柄コードを構成する各桁のコード(数字、文字、または記号)が示す数値の和を、取得した除数で割るという除算の「計算式」を用いて、銘柄割当情報としての除算の余りを求める(ステップS3225)。この処理は、前述した
図14のステップS3213と同じ処理であるため、ここでは詳しい説明を省略する。
【0269】
続いて、電文送信処理手段31により、求めた余りに対応する仮想サーバの識別情報を仮想サーバ管理情報記憶手段41(
図5参照)から取得して、使用する仮想サーバおよび経路を決定し、決定した仮想サーバおよび経路で発注を行う(ステップS3226)。すなわち、決定した仮想サーバの発注キューに、取引所システム70へ送信する注文(ここでは訂正)の電文データを送り込む。この処理は、前述した
図14のステップS3214と同じ処理である。なお、例えば、切断前に仮想サーバAで新規注文を発注し、仮想サーバAの経路の切断後に、仮想サーバAとは別の仮想サーバの経路で訂正を発注した場合には、その訂正に対する受付通知は、仮想サーバAの経路およびそのドロップコピー用の仮想サーバHの経路の2経路で返ってくるので、ドロップコピーの受付通知を受信することができる。
【0270】
また、電文送信処理手段31により、発注管理情報記憶手段43(
図7参照)に、発注した注文(ここでは訂正)についての入力通番、銘柄コード、使用経路(但し、経路は必須ではない)等を記憶させる(ステップS3227)。この処理は、前述した
図14のステップS3215と同じ処理である。そして、
図13のステップS33へと進む。
【0271】
<電文送信処理手段31による注文の取消の業務電文の送信時の処理の流れ>
【0272】
図16において、
図13のステップS31で発注管理システム20の受付キュー45から注文の取消の電文データを受け取った際には、前述した
図14の新規注文を受け取った際や、
図15の注文の訂正を受け取った際とは異なり、銘柄単位で、受け付けた注文の市場への発注順序を厳密に守る処理、すなわち同一銘柄(銘柄毎)の注文間の追い越しを防止する処理を行う場合と、そのような処理を行わない場合とで処理の流れが変わるということはない。
【0273】
先ず、電文送信処理手段31により、通番管理情報記憶手段42(
図6参照)から現時点での除数(稼働している仮想サーバの台数)を取得し、例えば、注文銘柄の銘柄コードを構成する各桁のコード(数字、文字、または記号)が示す数値の和を、取得した除数で割るという除算の「計算式」を用いて、銘柄割当情報としての除算の余りを求める(ステップS3231)。この処理は、前述した
図14のステップS3213と同じ処理であるため、ここでは詳しい説明を省略する。
【0274】
続いて、電文送信処理手段31により、求めた余りに対応する仮想サーバの識別情報を仮想サーバ管理情報記憶手段41(
図5参照)から取得して、使用する仮想サーバおよび経路を決定し、決定した仮想サーバおよび経路で発注を行う(ステップS3232)。すなわち、決定した仮想サーバの発注キューに、取引所システム70へ送信する注文(ここでは取消)の電文データを送り込む。この処理は、前述した
図14のステップS3214と同じ処理である。なお、例えば、切断前に仮想サーバAで新規注文を発注し、仮想サーバAの経路の切断後に、仮想サーバAとは別の仮想サーバの経路で取消を発注した場合には、その取消に対する受付通知は、仮想サーバAの経路およびそのドロップコピー用の仮想サーバHの経路の2経路で返ってくるので、ドロップコピーの受付通知を受信することができる。
【0275】
また、電文送信処理手段31により、発注管理情報記憶手段43(
図7参照)に、発注した注文(ここでは取消)についての入力通番、銘柄コード、使用経路(但し、経路は必須ではない)等を記憶させる(ステップS3233)。この処理は、前述した
図14のステップS3215と同じ処理である。そして、
図13のステップS33へと進む。
【0277】
このような本実施形態によれば、次のような効果がある。すなわち、取引所接続システム10では、銘柄分散を行う場合(注文分散ではない場合)には、同一銘柄については、同一の仮想サーバおよびそれに対応する経路を経由して取引所システム70への発注処理を行うことができる。そして、取引所システム70と複数の仮想サーバA,B,C,D等の各々との間に形成された複数の仮想的な経路RA,RB,RC,RD等は、取引所システム70との間に設けられた複数の物理的な回線L1,L2を分散使用して形成されているので、結局、各銘柄の注文を、銘柄毎に複数の物理的な回線L1,L2を分散使用して発注することができる。換言すれば、同一銘柄の注文であれば、複数の物理的な回線L1,L2のうちの同一回線を使用して発注することができる。従って、いずれかの回線が切断された場合でも、同一銘柄の注文について、後から発注された注文が、先に発注された注文を追い越すという事態を避けることができ、時間優先の原則を守ることができる。
【0278】
また、取引所接続システム10では、銘柄分散および注文分散のいずれを行う場合でも、注文を発注する仮想サーバおよびそれに対応する経路を分散させているので、各仮想サーバA,B,C,D等にかかる負荷を均等化でき、あるいはたとえ均等化できなかったとしても各仮想サーバA,B,C,D等への負荷分散を図ることができる。このため、仮想サーバの単位時間当たりの処理能力に上限がある場合でも、業務処理が滞る可能性を低減することができ、システムの可用性を向上させることができる。
【0279】
さらに、取引所接続システム10では、銘柄分散および注文分散のいずれを行う場合でも、取引所システム70からの下りの経路については、通知のドロップコピーを受信する構成とされているので、複数の物理的な回線L1,L2のうちの別の回線を使用した2本の仮想経路で、同一内容の通知を受け取ることができる。このため、2本の仮想経路(つまり、物理回線L1,L2の双方)について同時に接続障害が発生する確率が低いことを考えれば、通知が未受領となる事態、すなわち、発注済の注文の情報(取引所に注文が受け付けられたのか、約定したのか、訂正が行われたのか等の情報)を入手することができない事態が生じる確率を低減することができ、この点でも、システムの可用性を向上させることができる。
【0280】
また、取引所接続システム10では、銘柄分散を行う場合について言えば、注文の発注処理に使用する仮想サーバおよびそれに対応する経路を、銘柄毎に分散させているので、ある仮想サーバおよびそれに対応する経路に接続障害が発生し、使用不能になった場合でも、その仮想サーバおよび経路に割り当てられていた銘柄についての注文の発注処理を、別の仮想サーバおよび経路に対し、銘柄単位で割り当てを変更して行うことができ、また、再接続によりその仮想サーバおよび経路が復旧した場合には、復旧した仮想サーバおよび経路に対し、銘柄単位で割り当てを戻すことにより、システムの可用性を維持することもできる。
【0281】
また、取引所接続システム10は、「計算式」または「ルール」を用いて、銘柄分散や注文分散を実現することができる。すなわち、銘柄分散を行う場合には、「計算式」または「ルール」を用いて、銘柄コードから、稼働している仮想サーバに各銘柄を割り当てるための銘柄割当情報を求め、さらに、求めた銘柄割当情報から、仮想サーバ管理情報記憶手段41(
図5参照)の情報を用いて、発注に使用する仮想サーバの識別情報を取得することができる。また、注文分散を行う場合には、注文番号若しくは入力通番から、稼働している仮想サーバに各注文を割り当てるための注文割当情報を求め、さらに、求めた注文割当情報から、仮想サーバ管理情報記憶手段41(
図5参照:但し、
図5は銘柄分散の例となっている。)の情報を用いて、発注に使用する仮想サーバの識別情報を取得することができる。
【0282】
そして、「計算式」または「ルール」は、稼働している仮想サーバの台数(割り算の除数)を入力情報の一部とし、除算の余り等の銘柄割当情報または注文割当情報を出力情報とするものであり、また、異常検知手段33は、異常検知時に仮想サーバ管理情報記憶手段41(
図5参照)の各仮想サーバの接続状態を示すステータスを更新するとともに、そのステータスの変化に応じて仮想サーバ管理情報記憶手段41における銘柄割当情報または注文割当情報の配置を変更する構成とされているので、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替のような状況変化に容易に対応することができる。すなわち、異常検知手段33により異常が検知された仮想サーバ、あるいは再接続により復旧した仮想サーバがあると、稼働している仮想サーバの台数が変動したり、稼働している仮想サーバが入れ替わることがあるが、異常検知手段33は、その状況変化を反映させて「計算式」または「ルール」の再構築を行い、銘柄割当または注文割当の状態を容易に変更することができる。このため、電文送信処理手段31による注文の発注に使用する仮想サーバの決定処理に、各仮想サーバの接続状態の変化を、容易に反映させることができる。
【0283】
例えば、銘柄分散を行う場合で言えば、銘柄コードと仮想サーバの識別情報とを直接に関連付けたテーブルを用意し、注文銘柄の銘柄コードから、それに対応する仮想サーバの識別情報を導くことにより、使用する仮想サーバを決定する方法も考えられるが、このような固定的なテーブルを用意する場合は、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替に容易に対応することは困難である。これに対し、「計算式」または「ルール」を用いて、銘柄コードから銘柄割当情報を求め、さらに、求めた銘柄割当情報から仮想サーバの識別情報を導くようにすれば、異常検知手段33により仮想サーバ管理情報記憶手段41(
図5参照)における銘柄割当情報の更新管理を行うことで、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替に容易に対応することができる。
【0284】
また、銘柄コード(銘柄分散を行う場合)を与えるか、注文番号若しくは入力通番(注文分散を行う場合)を与えると、「計算式」または「ルール」により、使用する仮想サーバおよび経路が決まるようになっているので、通番管理情報記憶手段42(
図6参照)に、過去の時点で稼働していた仮想サーバの台数(過去の時点での「計算式」または「ルール」への入力情報)およびいずれの仮想サーバが稼働していたのか(停止していた仮想サーバでもよい)等の情報を記憶しておけば、過去において注文の発注に使用した仮想サーバおよび経路を把握することができる。このため、発注管理情報記憶手段43(
図7参照)において、過去の注文の発注に使用した仮想サーバおよび経路を全部記憶しておくことを回避することができる。従って、異常検知時において、同一銘柄(銘柄毎)の注文間の追い越しの防止や、同一注文内(同一顧客の1つの注文内)での注文(訂正や取消を含む)の追い越しの防止を実現するには、過去の注文の使用経路を把握する必要が生じることもあるが(過去の注文の使用経路の把握が必要になる処理を採用することもできるが)、この際、過去の注文の使用経路を全部記憶しておく必要はなくなるので、リソースの効率的な利用を実現することができる。
【0285】
さらに、「計算式」は、稼働している仮想サーバの台数を除数(割る数)とする除算の計算式とされ、その余りを銘柄割当情報とするようになっているので、稼働している仮想サーバの台数と同数の銘柄割当情報を容易に作り出すことができる。例えば、稼働している仮想サーバの台数が6台であれば、6で割る計算を行うことにより、その余りで、6通りの銘柄割当情報を容易に作り出すことができる。また、簡単な計算式であるため、処理速度を向上させることもできる。
【0286】
また、異常検知手段33は、複数の仮想サーバA,B,C,D等の各々での発注キューの監視による滞留検知の情報を取得する構成とされているので、通信規約に基づくシステムチェックの場合よりも、早期に接続異常を検知することができるため、異常が検知された仮想サーバについての再接続による復旧に要する時間を短縮することができ、システムの可用性を向上させることができる。
【0287】
さらに、取引所接続システム10では、各仮想サーバA,B,C,D等が、アドレス変換器50を用いて物理的な回線L1,L2の切換を行い、各仮想経路RA,RB,RC,RD等を(正)から(副)へ、あるいは(副)から(正)へ切り換える構成とされているので、取引参加者の物理サーバを切り換えずに、物理的な回線L1,L2の切換を行って再接続を行うことができる。
【0288】
そして、電文受信処理手段32は、主経路(上りの経路と同じ経路)およびドロップコー用の経路の2本の経路で受信した同一内容の通知について重複排除を行う構成とされているので、同一内容の通知についての注文管理システム60への重複送信を回避することができる。
【0289】
また、電文受信処理手段32により同一内容の通知の重複排除を行うにあたり、仮想サーバ管理情報記憶手段41(
図5参照:但し、
図5の例では、通知通番の記載はない。)に、通知通番のうちの直近に付番された最大の通知通番を記憶する構成とした場合には、受信通知管理情報記憶手段44(
図8参照)の設置を省略することができる。
【0290】
さらに、電文送信処理手段31は、注文管理システム60から注文を受け取った際に、その注文の種別(新規注文、訂正、取消の別)に応じ、発注管理情報記憶手段43(
図7)に記憶された情報を参照し、受付通知の受信の有無を確認してから発注処理を進める構成とされているので(
図14〜
図16参照)、接続障害が発生し、受付通知を受信できない事態が発生するような状況下でも、同一銘柄(銘柄毎)の注文間の追い越しを防ぐ処理や、同一注文内(同一顧客の1つの注文内)での注文(訂正を含む)の追い越しを防ぐ処理を実現することができる。
【0291】
そして、発注管理情報記憶手段43(
図7参照)では、電文受信処理手段32により、取引所システム70から受付通知の電文データを受信した注文(訂正や取消を含む)についてのレコードが削除されるようになっているので、多数存在する過去の注文(訂正や取消を含む)についてのレコードを全て記憶しておく必要がなくなるため、リソースの効率的な利用を図ることができる。
【0293】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【0294】
例えば、前記実施形態では、銘柄分散は、銘柄コードを与えると銘柄割当情報(例えば、除算の余り等)が求まるという「計算式」または「ルール」を用いて実現されていたが、本発明における銘柄分散は、このような「計算式」または「ルール」を用いた処理以外の処理で実現してもよい。
【0295】
具体的には、前記実施形態のように、銘柄コードから銘柄割当情報(例えば、除算の余り等)が求まり、さらに、銘柄割当情報から仮想サーバの識別情報が得られるという形態ではなく、銘柄コードと仮想サーバの識別情報との関係を直接に定義した銘柄割当テーブルを用意し(発注管理手段30に接続された銘柄割当テーブル記憶手段を設けておく。)、銘柄コードを与えると、その銘柄割当テーブルから、直接に仮想サーバの識別情報が得られ、当該銘柄の注文の発注処理を担当する仮想サーバが決定されるようにしてもよい。しかし、このような銘柄割当テーブルは、固定的な関連付けの定義になりやすく、各仮想サーバの接続状態の状況変化を反映させた銘柄分散を実現しにくい場合(状況変化が起きた後における銘柄の再分散の処理が複雑になってしまう場合)もあるので、稼働している仮想サーバの台数の変動や、稼働している仮想サーバの入替に容易に対応できるという点では、前記実施形態のような「計算式」または「ルール」を用いた銘柄分散を行うことが好ましい。
【0296】
また、前記実施形態では、仮想サーバ管理情報記憶手段41(
図5参照)に銘柄割当情報(例えば、除算の余り等)が記憶されるようになっていたが、銘柄割当情報の代わりに、その仮想サーバに割り当てられる各銘柄の銘柄コードを記憶するようにしてもよい。このようにした場合には、結局、上述した銘柄コードと仮想サーバの識別情報との関係を直接に定義した銘柄割当テーブルと同じことになるが、その銘柄割当テーブルの作成過程において、前記実施形態のような「計算式」または「ルール」を用いれば、銘柄割当テーブルは固定的なものではなく、各仮想サーバの接続状態の状況変化を反映させた可変の銘柄割当テーブルとなる。従って、この場合には、異常検知手段33により異常が検知された仮想サーバ、あるいは再接続により復旧した仮想サーバがあるときに、異常検知手段33により、その都度、前記実施形態のような「計算式」または「ルール」に対し、全ての銘柄の銘柄コードまたはその構成コードを入力し、仮想サーバ管理情報記憶手段41(
図5参照)において、求めた銘柄割当情報(例えば、除算の余り等)に対応する位置(求めた銘柄割当情報に対応する仮想サーバの識別情報についての記憶領域)に、入力した銘柄コードを記憶させることにより、可変の銘柄割当テーブルを作成することができる。
【0297】
さらに、注文管理システム60に記憶された情報を用いて算出した可変の銘柄割当テーブルを用意し(発注管理手段30に接続された銘柄割当テーブル記憶手段を設けておく。)、銘柄コードを与えると、その銘柄割当テーブルから、当該銘柄の注文の発注処理を担当する仮想サーバが決定されるようにしてもよい。この場合、銘柄割当テーブルを作成するのは、異常検知手段33である必要はなく、例えば、注文管理システム60の夜間バッチ処理等により作成してもよい。具体的には、例えば、ペアトレードの注文におけるペア銘柄(ペアを構成する2銘柄)は、同一経路を使用して発注したほうがよいため、次のような処理を行うことができる。注文管理システム60内または外部のプログラム(銘柄割当テーブル作成手段)が、ペアトレードの建て注文は出されているが、未だ手仕舞いされていないもの(埋め注文が出されていないもの)についての情報を、注文管理システム60に設けられたペアトレード情報記憶手段から取得し、それらの建て注文のペア銘柄を集計し(同じ組合せのペア銘柄となっている注文の個数を、組合せ毎に集計し)、注文の個数が多い組合せのペア銘柄(2銘柄)が同一経路を使用して発注されるように銘柄割当テーブルを作成する。この場合、例えば、夜間に作成された銘柄割当テーブルを、その翌日に用いれば、毎日更新される銘柄割当テーブルとなる。なお、注文の個数が多い組合せのペア銘柄(2銘柄)であるか否かは、例えば、予め閾値(〜個以上)を定めておけばよいが、この閾値自体を、処理対象の注文の総数に応じて変化させる等してもよい。
【0298】
例えば、銘柄α,βの組合せが1番目に多く、銘柄γ,δの組合せが2番目に多く、銘柄ε,ζの組合せが3番目に多く、銘柄α,δの組合せが4番目に多かったとする。このとき、銘柄α,βを仮想サーバAに割り当て、銘柄γ,δを仮想サーバBに割り当て、銘柄ε,ζを仮想サーバCに割り当てた後、銘柄α,δの組合せの割り当てを判断する際に、銘柄αは既に仮想サーバAに割り当てられ、銘柄δは既に仮想サーバBに割り当てられているので、このように既に割り当てられている銘柄が発生した場合には、その銘柄の割当処理は後に回し、注文の個数が多い組合せのペア銘柄として抽出されなかった銘柄と一緒にして単独の銘柄として取り扱う。そして、最後に、残った単独の銘柄を、各仮想サーバA,B,C,D等に均等に割り当てていく等の割当処理を行うことができる。
【0299】
さらに、前記実施形態では、注文分散を行う場合には、前記実施形態のような「計算式」または「ルール」を用いて、注文番号若しくは入力通番から、稼働している仮想サーバに各注文を割り当てるための注文割当情報を求め、さらに、求めた注文割当情報から、仮想サーバ管理情報記憶手段41(
図5参照:但し、
図5は銘柄分散の例となっている。)の情報を用いて、発注に使用する仮想サーバの識別情報を取得する構成とされていたが、注文分散は、これに限定されるものではなく、例えば、注文管理システム60からの注文の受け付け順で、各仮想サーバA,B,C,D等に対し、処理要求を順番に割り振るラウンドロビン方式としてもよく、その場合でも、各仮想サーバA,B,C,D等の負荷分散の効果を得ることができる。
【解決手段】取引所接続システム10では、取引所システム70と証券会社等の取引参加者の複数の仮想サーバA,B,C,D等の各々との間に形成される仮想的な経路は、複数の物理的な回線L1,L2を分散使用して形成する。電文送信処理手段31は、取引所システム70への上りの経路について銘柄分散を行い、同一銘柄の注文については、同一の仮想サーバおよびそれに対応する経路を経由して発注処理を行う。電文受信処理手段32は、取引所システム70から2本の下りの経路(上りの経路と同じ経路およびドロップコピー用の経路)を経由して同一内容の通知を受け取り、重複排除を行う。2本の下りの経路には、複数の物理的な回線L1,L2のうちの別の回線を使用する。