(57)【要約】【課題】端末装置からの発注依頼に応じて取引を行う取引システムにおいて、データの送信先の特定に利用する静的な定義を変更する作業の頻度を低減する。【解決手段】取引システムは、マッチング定義に基づいて上り電文から取り出した項目の名称及び値と該上り電文と対応する発注依頼を送信した端末装置を示す項目の名称及び値とを含むログを電文ログに格納する上り電文処理部と、マッチング定義及び電文ログに基づいて下り電文と対応する発注依頼を送信した端末装置を特定する下り電文処理部とを含む。マッチング定義には電文から取り出す項目の名称と電文ログ内の項目の名称との対応関係が定義されており、下り電文処理部は、マッチング定義における電文ログ内の項目の名称及び該項目の名称と対応する項目の名称に基づいて下り電文から取り出した値の組と一致する項目の名称及び値を含む電文ログ内のログを抽出して発注依頼を送信した端末装置を特定する。【選択図】図４
2020009244.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から取引の発注依頼を受け付けた場合に、前記発注依頼毎に、該発注依頼を識別する項目と該発注依頼に含まれる注文の内容を示す項目とを含む上り電文を作成するとともに、予め作成されたマッチング定義に基づいて前記上り電文内の項目の名称及び値を取り出し、取り出した前記項目の名称及び値と該上り電文と対応する前記発注依頼を送信した端末装置を示す項目の名称及び値とを含むログを編集して電文ログに格納する上り電文処理部と、
前記上り電文を前記発注依頼に応じた取引を行う外部装置に送信するとともに、前記外部装置が作成した、前記上り電文に応じた取引の結果を含む下り電文を受信する電文送受信部と、
前記下り電文を受信した場合に、前記マッチング定義及び前記電文ログに基づいて、該下り電文と対応する前記発注依頼を送信した前記端末装置を特定するとともに、前記下り電文に含まれる前記取引の結果を抽出し、特定した前記端末装置に通知する通知データを作成する下り電文処理部とを備え、
前記マッチング定義には、電文から取り出す項目の名称と、前記電文ログ内の項目の名称との対応関係が定義されている
ことを特徴とする取引システム。
【請求項２】
前記下り電文処理部は、
項目の名称が前記マッチング定義における前記電文から取り出す項目の名称と一致する項目の値を前記下り電文から取り出し、
前記マッチング定義において前記下り電文から前記値を取り出した前記項目の名称と対応付けられた前記電文ログ内の項目の名称、及び前記下り電文から取り出した前記項目の値の組み合わせと一致する項目の名称及び値を含むログを前記電文ログから抽出し、
抽出した前記ログに含まれる前記発注依頼を送信した端末装置を示す前記項目の名称及び値に基づいて、前記下り電文と対応する前記発注依頼を送信した前記端末装置を特定する
ことを特徴とする請求項１に記載の取引システム。
【請求項３】
前記マッチング定義は、前記電文ログから取り出す項目の名称が前記下り電文にのみ含まれる名称である定義を含み、
前記下り電文処理部は、更に、
前記マッチング定義に基づいて前記下り電文内の項目の名称及び値を取り出し、
取り出した前記項目の名称及び値と前記発注依頼を送信した端末装置を示す前記項目の名称及び値とを含むログを編集して前記電文ログに格納する
ことを特徴とする請求項２に記載の取引システム。
【請求項４】
コンピュータが、
端末装置から取引の発注依頼を受け付けた場合に、該発注依頼を識別する項目と該発注依頼に含まれる注文の内容を示す項目とを含む上り電文を作成し、
予め作成されたマッチング定義に基づいて前記上り電文内の項目の名称及び値を取り出し、取り出した前記項目の名称及び値と該上り電文と対応する前記発注依頼を送信した端末装置を示す項目の名称及び値とを含むログを編集して電文ログに格納するとともに、前記上り電文を前記発注依頼に応じた取引を行う外部装置に送信し、
前記外部装置からの前記上り電文に応じた取引の結果を含む下り電文を受信した場合に、前記マッチング定義及び前記電文ログに基づいて、該下り電文と対応する前記発注依頼を送信した前記端末装置を特定するとともに、前記下り電文に含まれる前記取引の結果を抽出し、特定した前記端末装置に通知する通知データを作成する処理を実行するデータ送受信方法であって、
前記上り電文内の項目の名称及び値を取り出す処理、及び前記発注依頼を送信した前記端末装置を特定する処理では、前記コンピュータは、電文から取り出す項目の名称と、前記電文ログ内の項目の名称との対応関係が定義されている前記マッチング定義を参照する
ことを特徴とするデータ送受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取引システム及びデータ送受信方法に関する。
【背景技術】
【０００２】
証券取引システム等の取引システムでは、取引の注文をする端末装置と取引（売買）を行う外部装置との間に設置されたサーバ装置において、端末装置からの注文を外部装置に送信する処理、及び外部装置からの応答を端末装置に転送する処理を制御している。この種の取引システムに適用されるサーバ装置には、端末装置を識別する値と該端末装置からの注文に応じた取引を行う外部装置を識別する情報とを対応付けたルーティング定義に基づいて、上記の制御を行うものがある。また、この種の取引システムに適用されるサーバ装置には、端末装置毎に注文可能な銘柄を定め、端末装置を識別する値と銘柄とを対応付けたルーティング定義と外部装置から受信した応答に含まれる銘柄の情報とに基づいて、該応答を転送する端末装置を制御するものがある。
【０００３】
上記のサーバ装置において参照するルーティング定義は予め定められた静的な定義であり、取引システムが稼動している期間に変更されることはない。ところが、証券取引システム等の取引システムでは、時期に応じて各銘柄に対する注文の頻度が変動することにより特定の外部装置に大量の注文が集中し遅延時間が増大することがある。このため、上記の取引システムには、各銘柄に対する注文の頻度に応じて端末装置の数、外部装置の数、外部装置が取り扱う銘柄等を変更するとともに静的なルーティング定義の内容を変更し、大量の注文が集中することによる遅延時間の増大を回避するものがある（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１９８４００号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の取引システムにおけるサーバ装置は、端末装置と売買システムとの対応関係や、注文する銘柄と端末装置との対応関係が変更された場合に、都度静的なルーティング定義を変更する必要がある。静的なルーティング定義を変更する間、該サーバ装置は、動作を停止することとなり、端末装置からの注文を受け付けることができない。このため、取引の発注をしたいタイミングで発注することができない等、取引システムの利用者に対する利便性が低下する。
【０００６】
本発明は、上述した問題点に鑑みてなされたものであり、端末装置からの発注依頼に応じて取引を行う取引システムにおいて、データの送信先の特定に利用する静的な定義を変更する作業の頻度を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る第１の側面である取引システムは、端末装置から取引の発注依頼を受け付けた場合に、該発注依頼を識別する項目と該発注依頼に含まれる注文の内容を示す項目とを含む上り電文を作成するとともに、予め作成されたマッチング定義に基づいて前記上り電文内の項目の名称及び値を取り出し、取り出した前記項目の名称及び値と該上り電文と対応する前記発注依頼を送信した端末装置を示す項目の名称及び値とを含むログを編集して電文ログに格納する上り電文処理部と、前記上り電文を前記発注依頼に応じた取引を行う外部装置に送信するとともに、前記外部装置が作成した、前記上り電文に応じた取引の結果を含む下り電文を受信する電文送受信部と、前記下り電文を受信した場合に、前記マッチング定義及び前記電文ログに基づいて、該下り電文と対応する前記発注依頼を送信した前記端末装置を特定するとともに、前記下り電文に含まれる前記取引の結果を抽出し、特定した前記端末装置に通知する通知データを作成する下り電文処理部とを備え、前記マッチング定義には、電文から取り出す項目の名称と、前記電文ログ内の項目の名称との対応関係が定義されている取引システムである。
【０００８】
本発明に係る第２の側面であるデータ送受信方法は、コンピュータが、端末装置から取引の発注依頼を受け付けた場合に、該発注依頼を識別する項目と該発注依頼に含まれる注文の内容を示す項目とを含む上り電文を作成し、予め作成されたマッチング定義に基づいて前記上り電文内の項目の名称及び値を取り出し、取り出した前記項目の名称及び値と該上り電文と対応する前記発注依頼を送信した端末装置を示す項目の名称及び値とを含むログを編集して電文ログに格納するとともに、前記上り電文を前記発注依頼に応じた取引を行う外部装置に送信し、前記外部装置からの前記上り電文に応じた取引の結果を含む下り電文を受信した場合に、前記マッチング定義及び前記電文ログに基づいて、該下り電文と対応する前記発注依頼を送信した前記端末装置を特定するとともに、前記下り電文に含まれる前記取引の結果を抽出し、特定した前記端末装置に通知する通知データを作成する処理を実行するデータ送受信方法であって、前記上り電文内の項目の名称及び値を取り出す処理、及び前記発注依頼を送信した前記端末装置を特定する処理では、前記コンピュータは、電文から取り出す項目の名称と、前記電文ログ内の項目の名称との対応関係が定義されている前記マッチング定義を参照するデータ送受信方法である。
【発明の効果】
【０００９】
本発明によれば、端末装置からの発注依頼に応じて取引を行う取引システムにおいて、データの送信先の特定に利用する静的な定義を変更する作業の頻度を低減することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る取引システムの構成例を示す図である。
【図２】取引システムで行われる処理を説明するシーケンス図である。
【図３】発注依頼、上り電文、下り電文、及び通知データの例を示す図である。
【図４】一実施形態に係るサーバ装置の機能的構成を示す図である。
【図５】マッチング定義の例を示す図である。
【図６】電文ログの例を示す図である。
【図７】上り電文処理の内容を説明するフローチャートである。
【図８】上り電文ログ編集処理の内容を説明するフローチャートである。
【図９】下り電文処理の内容を説明するフローチャートである。
【図１０】下り電文ログ編集処理の内容を説明するフローチャートである。
【図１１】利用者番号特定処理の内容を説明するフローチャートである。
【図１２Ａ】第１のログ編集部が行う処理の具体例を説明する図（その１）である。
【図１２Ｂ】第１のログ編集部が行う処理の具体例を説明する図（その２）である。
【図１２Ｃ】第１のログ編集部が行う処理の具体例を説明する図（その３）である。
【図１２Ｄ】第１のログ編集部が行う処理の具体例を説明する図（その４）である。
【図１２Ｅ】第１のログ編集部が行う処理の具体例を説明する図（その５）である。
【図１２Ｆ】第１のログ編集部が行う処理の具体例を説明する図（その６）である。
【図１３Ａ】第２のログ編集部が行う処理の具体例を説明する図（その１）である。
【図１３Ｂ】第２のログ編集部が行う処理の具体例を説明する図（その２）である。
【図１３Ｃ】第２のログ編集部が行う処理の具体例を説明する図（その３）である。
【図１３Ｄ】第２のログ編集部が行う処理の具体例を説明する図（その４）である。
【図１３Ｅ】第２のログ編集部が行う処理の具体例を説明する図（その５）である。
【図１４Ａ】第２のログ編集部が行う処理の別の具体例を説明する図（その１）である。
【図１４Ｂ】第２のログ編集部が行う処理の別の具体例を説明する図（その２）である。
【図１４Ｃ】第２のログ編集部が行う処理の別の具体例を説明する図（その３）である。
【図１４Ｄ】第２のログ編集部が行う処理の別の具体例を説明する図（その４）である。
【図１４Ｅ】第２のログ編集部が行う処理の別の具体例を説明する図（その５）である。
【図１４Ｆ】第２のログ編集部が行う処理の別の具体例を説明する図（その６）である。
【図１５】サーバ装置のハードウェア構成図である。
【発明を実施するための形態】
【００１１】
図１は、一実施形態に係る取引システムの構成例を示す図である。
【００１２】
図１には、通信ネットワーク２を利用した証券の取引（売買）が可能な取引システム１を示している。取引システム１は、複数の利用者システム３と、複数の売買システム４を含む。図１には、複数の利用者システム３のうち第１の利用者システム３Ａ及び第２の利用者システム３Ｂの２つの利用者システム３を示している。また、図１には、複数の売買システム４のうち第１の売買システム４Ａ及び第２の売買システム４Ｂの２つの売買システム４を示している。
【００１３】
利用者システム３は、売買システム４に対し証券の取引（売買）を注文し、該注文に対する結果を売買システム４から取得する処理を行う装置群である。利用者システム３は、通信ネットワーク２を介して、複数の売買システム４と通信可能に接続される。利用者システム３は、例えば、証券会社のような証券取引を仲介又は代行する業者や機関投資家等のオペレータが取引に利用するシステムである。
【００１４】
利用者システム３は、複数の端末装置５と、サーバ装置６とを含む。図１には、複数の端末装置５のうち第１の端末装置５Ａ及び第２の端末装置５Ｂの１つの端末装置を示している。なお、図１では省略しているが、第２の利用者システム３Ｂは、第１の利用者システム３Ａと同様、複数の端末装置５と、サーバ装置６とを含む。
【００１５】
端末装置５は、証券を取引する注文の入力を受け付けてサーバ装置６に対して発注を依頼する処理、及び取引結果を出力する処理を行う。端末装置５は、例えば、証券会社や機関投資家等のオペレータが注文の入力に利用する装置であり、利用者プログラムと、ＡＰＩ（Application Programming Interface）とを含む。サーバ装置６は、端末装置５からの注文（発注依頼）に基づいて電文を作成し該電文を所定の売買システム４に送信する処理、及び売買システム４から受信した電文に含まれる取引結果を端末装置５に通知する処理を行う。以下の説明では、サーバ装置６が売買システム４に送信する電文を「上り電文」或いは「送信電文」という。また、以下の説明では、サーバ装置６が売買システム４から受信する電文を「下り電文」或いは「受信電文」という。
【００１６】
売買システム４は、利用者システム３からの上り電文に含まれる注文、或いは売買システム４自身が備える端末装置（図示せず）により入力された注文に応じて、証券の取引（売買）に関する各種処理を行う装置群である。売買システム４は、例えば、証券の取引を実施する機関（証券取引所等）が提供する。本実施形態に係る取引システム１における複数の売買システム４は、それぞれ、既知の構成でよい。このため、本明細書では、売買システム４についての詳細な説明は省略する。なお、売買システム４は、利用者システム３からの上り電文に応じた取引を行い、該取引の結果を含む下り電文を作成して利用者システム３に送信する外部装置の一例である。
【００１７】
図２は、取引システムで行われる処理を説明するシーケンス図である。図３は、発注依頼、上り電文、下り電文、及び通知データの例を示す図である。
【００１８】
本実施形態に係る取引システム１では、端末装置５に取引の注文に関する情報を入力すると、端末装置５がサーバ装置６に発注依頼を送信する。例えば、図２の第１の端末装置５Ａは、注文の入力を受け付けると、サーバ装置６に発注依頼を送信する発注処理（ステップＳ１）を行う。第１の端末装置５Ａからの発注依頼を受信すると、サーバ装置６は、発注依頼に基づいて上り電文を作成し売買システム４（図２では第１の売買システム４Ａ）に送信する処理を含む上り電文処理（ステップＳ２）を行う。ステップＳ１の発注処理では、第１の端末装置５Ａは、例えば、図３の（ａ）に示したような、注文ＩＤ、銘柄、数量、及び金額指定の４つの項目についての項目の名称及び値を含む発注依頼１０を作成してサーバ装置６に送信する。注文ＩＤは、第１の端末装置５Ａにおいて発注依頼を送信した注文を一意に識別する項目である。銘柄は取引を行う証券の銘柄を指定する項目であり、数量は買う数或いは売る数を指定する項目である。金額指定は買値或いは売値を指定する項目であり、指値注文（金額を指定する注文）の場合には金額を示す数値が入力され、成行注文（金額を指定しない注文）の場合には成行注文であることを示す情報（例えば「成行」という文字列）。そして、発注依頼１０を受信したサーバ装置６は、該発注依頼に基づいて、図３の（ａ）に示したような上り電文１１を作成する。上り電文１１は、第１の項目１１０１から第６の項目１１０６までの６つの項目を含む。第１の項目１１０１はサーバ装置６が売買システム４に送信した上り電文を一意に識別する通し番号（送信電文通番）を示す項目であり、第２の項目１１０２は上り電文を送信した時刻を示す項目である。第３の項目１１０３、第４の項目１１０４、第５の１１０５、及び第６の項目１１０６は、それぞれ、発注依頼１０に含まれる注文ＩＤ、銘柄、数量、及び金額指定を示す項目である。サーバ装置６が作成する上り電文１１における第１の項目１１０１から第６の項目１１０６までの６つの項目は、それぞれ、項目の名称及び値を含む。
【００１９】
また、図２では省略しているが、第２の端末装置５Ｂが発注処理（ステップＳ１’）を行ってサーバ装置６に発注依頼を送信した場合、サーバ装置６は、第１の端末装置５Ａからの発注依頼に対する上り電文処理（ステップＳ２）とは別個に、第２の端末装置５Ｂからの発注依頼に対する上り電文処理を行う。
【００２０】
サーバ装置６からの上り電文を受信した第１の売買システム４Ａは、図２のように、上り電文に含まれる各項目の値に基づいて証券の取引（売買）をし、取引の結果を示す下り電文をサーバ装置に送信する売買処理（ステップＳ３）を行う。
【００２１】
第１の売買システム４Ａからの下り電文を受信すると、サーバ装置６は、該下り電文に含まれる取引の結果を通知する端末装置５を特定し、特定した端末装置５に取引の結果（通知データ）を送信する処理を含む下り電文処理（ステップＳ４）を行う。図３の（ｂ）のように、サーバ装置６が受信する下り電文１２は、第１の項目１２０１から第７の項目１２０７までの７つの項目を含む。第１の項目１２０１は売買システム４が作成した下り電文１２を一意に識別する通し番号を示す項目であり、第２の項目１２０２は売買システム４が下り電文１２を送信した時刻を示す項目である。第３の項目１２０３は、該売買システム４が行った取引の結果を一意に識別するＩＤ（約定ＩＤ）を示す項目である。第４の項目１２０４、第５の項目１２０５、及び第６の項目１２０６は、それぞれ、下り電文１２と対応する上り電文１１における注文ＩＤ（第３の項目１１０３）、銘柄（第４の項目１１０４）、及び数量（第５の項目１１０５）を示す項目である。第７の項目１２０７は、買った金額或いは売った金額を示す項目である。下り電文１２における第１の項目１２０１から第７の項目１２０７までの７つの項目は、それぞれ、項目の名称と値とを含む。下り電文１２を受信したサーバ装置６は、図３の（ｂ）に示したような、約定ＩＤ、注文ＩＤ、銘柄、数量、及び金額の５つの項目についての項目の名称及び値を含む通知データ１３を作成し、第１の端末装置５Ａに送信する。
【００２２】
また、本実施形態の取引システム１におけるサーバ装置６は、後述するマッチング定義及び電文ログに基づいて、取引の結果（通知データ１３）を送信する端末装置５を特定する。
【００２３】
サーバ装置６からの通知データを受信した第１の端末装置５Ａは、該通知データに含まれる取引の結果を出力する出力処理（ステップＳ５）を行う。
【００２４】
なお、発注依頼１０、上り電文１１、下り電文１２、及び通知データ１３のそれぞれにおける項目の名称は、図３の（ａ）及び（ｂ）に示したような名称そのものを表す文字列に限らず、項目の名称と対応付けられたコードであってもよい。
【００２５】
この種のサーバ装置６では、予め作成しておいた静的な定義に基づいて、下り電文１２に含まれる取引結果を通知する端末装置５を特定する。しかしながら、従来のサーバ装置６において参照する静的な定義には、電文内の項目の値、売買システム４を識別する値、及び端末装置５を識別する値等が利用されている。このような項目等の値を利用した静的な定義に基づいて取引結果（通知データ１３）の通知先となる端末装置５を特定する場合、値に変更が生じる毎に、都度サーバ装置６の動作を停止させ静的な定義を変更する必要がある。
【００２６】
これに対し、本実施形態に係るサーバ装置６では、以下のように、電文内の項目の名称を静的な定義として利用し取引結果を通知する端末装置５を特定する。
【００２７】
図４は、一実施形態に係るサーバ装置の機能的構成を示す図である。
【００２８】
図４のように、本実施形態に係るサーバ装置６は、上り電文処理部６１０と、下り電文処理部６２０と、データ送受信部６３０と、電文送受信部６４０と、記憶部６９０とを含む。
【００２９】
上り電文処理部６１０は、端末装置５からの発注依頼に基づいて売買システム４に送信する電文（上り電文）を作成するとともに、作成した上り電文についてのログを編集して記憶部６９０の電文ログ６９２に格納する。上り電文処理部６１０は、電文作成部６１１と、第１のログ編集部６１２とを含む。電文作成部６１１は、端末装置５からの発注依頼に基づいて、図３の（ａ）に示したような上り電文１１を作成する。第１のログ編集部６１２は、記憶部６９０のマッチング定義６９１に格納された定義（項目の名称）に基づいて上り電文内の所定の項目の名称及び値を取り出す。また、第１のログ編集部６１２は、上り電文から取り出した項目の名称及び値と、発注依頼を送信した端末装置５を識別可能な項目の名称及び値とを含むログを電文ログ６９２に格納する。本実施形態では、図２のように、端末装置５を識別する項目の名称を「利用者番号」とする。
【００３０】
下り電文処理部６２０は、売買システム４から受信した電文（下り電文）についてのログを編集して電文ログ６９２に格納するとともに、受信した下り電文に含まれる取引結果を通知する端末装置５を特定し、更に下り電文から取引結果を抽出して端末装置５に通知する通知データを作成する。下り電文処理部６２０は、第２のログ編集部６２１と、通知データ作成部６２２とを含む。第２のログ編集部６２１は、マッチング定義６９１に格納された定義（項目の名称）に基づいて下り電文内の所定の項目の名称及び値を取り出す。また、第２のログ編集部６２１は、マッチング定義６９１に定義された項目の名称と下り電文から取り出した項目の値とに基づいて下り電文と対応する上り電文についてのログを電文ログ６９２から抽出し、該ログに含まれる端末装置５を示す項目の名称（利用者番号）及び値を取り出す。更に、第２のログ編集部６２１は、下り電文から取り出した項目の名称及び値と、電文ログ６９２から取り出した端末装置５を識別可能な項目の名称（利用者番号）及び値とを含むログを電文ログ６９２に格納する。加えて、第２のログ編集部６２１は、電文ログ６９２から取り出した項目（利用者番号）の値に基づいて、通知データを送信する端末装置５を特定する。
【００３１】
データ送受信部６３０は、端末装置５からの発注依頼の受信、及び端末装置５への通知データの送信を行う。電文送受信部６４０は、売買システム４への上り電文の送信、及び売買システム４からの下り電文の受信を行う。
【００３２】
記憶部６９０は、マッチング定義６９１及び電文ログ６９２を含む各種情報を記憶する。記憶部６９０は、マッチング定義６９１を格納する定義格納部（図示せず）、電文ログ６９２を格納するログ格納部（図示せず）、編集用バッファ６９３、及び通知先バッファ６９４を含む。マッチング定義６９１には、予め定められた、電文から取り出す項目の名称と電文ログから取り出す項目の名称との対応関係を示す定義が複数登録されている。電文ログ６９２は、電文から取り出した項目の名称及び値と、端末装置５を示す項目の名称及び値とを含むログが格納されている。編集用バッファ６９３は、電文ログ６９２に格納するログに含める項目の名称及び値を一時的に保持する保持部である。通知先バッファ６９４は、通知データ作成部６２２が作成した通知データを送信する（通知する）端末装置５を示す情報（通知先利用者番号）を一時的に保持する保持部である。
【００３３】
図５は、マッチング定義の例を示す図である。
【００３４】
本実施形態のサーバ装置６における第１のログ編集部６１２及び第２のログ編集部６２１が参照するマッチング定義６９１は、図５のように、電文内の項目の名称と、電文ログ内の項目の名称との対応関係を示す定義が複数登録されている。電文内の項目の名称は、電文ログ６９２に格納するログを編集する際に各電文から取り出す項目の名称である。ここで、マッチング定義６９１に登録する電文内の項目の名称は、図５のように、電文を一意に識別可能な値が割り当てられ、かつ該値が他の電文にも含まれる項目の名称とする。また、電文ログ内の項目の名称は、対応する電文内の項目の名称が電文に含まれる場合に電文ログから取り出す項目の名称である。電文ログ内の項目の名称は、第２のログ編集部６２１が端末装置５の利用者番号を含むログを電文ログ６９２内で探索する際に参照する。
【００３５】
なお、マッチング定義６９１は、電文ログ内の項目の名称が登録されていない定義と、電文ログ内の項目の名称が登録されている定義とを含む。例えば、図５のマッチング定義６９１に格納された第１の定義Ｄ１から第５の定義Ｄ５までの５個の定義のうち、第１の定義Ｄ１及び第４の定義Ｄ４は、電文ログ内の項目の名称が登録されていない。電文ログ内の項目の名称が登録されていない定義は、下記（１）の処理にのみ利用される。これに対し、第２の定義Ｄ２、第３の定義Ｄ３、及び第５の定義Ｄ５のように電文ログ内の項目の名称が登録されている定義は、下記（１）及び（２）の２つの処理に利用される。
（１）第１のログ編集部６１２及び第２のログ編集部６２１のそれぞれが行う、電文ログ６９２に格納する項目の名称及び値を電文内で探索する処理。
（２）第２のログ編集部６２１が行う、取引結果を通知する端末装置５の利用者番号を含むログを電文ログ６９２内で探索する処理。
【００３６】
例えば、「関連電文通番＝送信電文通番」という第２の定義Ｄ２は、名称が「関連電文通番」である項目を上り電文内で探索する処理、及び名称が「関連電文通番」である項目を下り電文内で探索する処理に利用される。また、第２の定義Ｄ２は、名称が「送信電文通番」であり、かつ値が下り電文から取り出した「関連電文通番」という名称の項目の値である項目を含むログを電文ログ内で探索する処理に利用される。
【００３７】
なお、マッチング定義６９１における項目の名称は、図５に示した名称に限らず、取引システム１で送受信する電文に適用する通称、略称、及びコード等であってもよい。
【００３８】
図６は、電文ログの例を示す図である。
【００３９】
図６のように、本実施形態に係るサーバ装置６が保持する電文ログ６９２は、マッチング定義６９１に基づいて電文から取り出した項目の名称及び値と、該電文と対応する発注依頼を送信した端末装置５を示す項目の名称（利用者番号）及び値とを含むログＬ１，Ｌ２，及びＬｎが格納されている。なお、図６の電文ログ６９２は、左右方向に並んだ３個の項目についての項目の名称及び値の組が１つの電文に対するログとなっている。また、図６の電文ログ６９２内のログは、格納した順に並んでおり、１行目（最上位）のログＬ１が古いログとなっている。
【００４０】
例えば、図６の電文ログ６９２における１行目のログＬ１は、図３の（ａ）に示した上り電文１１についてのログである。図３の（ａ）に示した上り電文１１には、マッチング定義６９１に格納された５個の定義Ｄ１〜Ｄ５における電文内の項目の名称のうち、「送信電文通番」及び「注文ＩＤ」の２つの名称の項目が含まれる。また、上り電文１１と対応する発注依頼を送信した端末装置５が図２の第１の端末装置５Ａである場合、第１の端末装置５Ａを識別する利用者番号の値は「１」である。このため、ログＬ１は、「送信電文通番＝１」、「注文ＩＤ＝P1_001」、及び「利用者番号＝１」の、３個の項目についての項目の名称及び値を含む。
【００４１】
また、例えば、図６の電文ログ６９２におけるログＬｎは、図３の（ｂ）に示した下り電文１２についてのログである。図３の（ｂ）に示した下り電文１２には、マッチング定義６９１に格納された５個の定義Ｄ１〜Ｄ５における電文内の項目の名称のうち、「注文ＩＤ」及び「約定ＩＤ」の２つの名称の項目が含まれる。また、下り電文１２における第４の項目１２０４は「注文ＩＤ＝P1_001」となっている。更に、ログＬｎよりも前に電文ログ６９２に格納されたログのうち「注文ＩＤ＝P1_001」という項目を含むログは１行目のログＬ１であり、該ログＬ１は「利用者番号＝１」という項目を含む。このため、ログＬｎは、「注文ＩＤ＝P1_001」、「約定ＩＤ＝E001」、及び「利用者番号＝１」の、３個の項目についての項目の名称及び値を含む。
【００４２】
本実施形態のサーバ装置６は、図２に示したように、端末装置５からの発注依頼を受け付けると、上り電文を作成して売買システム４に送信する処理を含む上り電文処理（ステップＳ２）を行う。また、本実施形態のサーバ装置６は、上り電文を作成すると、上記のように作成した上り電文についてのログを編集して電文ログ６９２に格納する。すなわち、本実施形態のサーバ装置６が行う上り電文処理は、作成した上り電文についてのログを編集して電文ログ６９２に格納する処理を含む。このため、本実施形態のサーバ装置６は、図２の上り電文処理（ステップＳ２）として、図７のフローチャートに沿った処理を行う。なお、図７のフローチャートに沿った上り電文処理は、サーバ装置６の上り電文処理部６１０と電文送受信部６４０とが連携して行う。
【００４３】
図７は、上り電文処理の内容を説明するフローチャートである。
【００４４】
サーバ装置６は、端末装置５から発注依頼を受け付けると、該発注依頼に対する上り電文処理を開始する。上り電文処理を開始したサーバ装置６は、図７のように、まず、編集用バッファ６９３内に項目の名称及び値を保持する領域を確保し該領域を初期化する（ステップＳ２１）。ステップＳ２１の処理は、例えば、サーバ装置６の上り電文処理部６１０における第１のログ編集部６１２が行う。
【００４５】
次に、上り電文処理部６１０は、受け付けた発注依頼に基づいて、売買システム４に送信する上り電文を作成する（ステップＳ２２）。ステップＳ２２の処理は、上り電文処理部６１０の電文作成部６１１が行う。電文作成部６１１は、既知の電文作成方法に従って、図３の（ａ）に示したような上り電文１１を作成する。
【００４６】
上り電文の作成を終えると、サーバ装置６は、電文ログ６９２に格納するログを編集する上り電文ログ編集処理（ステップＳ２３）を行う。ステップＳ２３の上り電文ログ編集処理は、上り電文処理部６１０の第１のログ編集部６１２が行う。第１のログ編集部６１２が行う上り電文ログ編集処理は、マッチング定義６９１に基づいて上り電文内の項目の名称及び値を取り出し編集用バッファ６９３に追加する処理と、発注依頼を送信した端末装置５を識別する項目の名称（利用者番号）及び値を編集用バッファ６９３に追加する処理とを含む。
【００４７】
上り電文ログ編集処理を終えると、上り電文処理部６１０は、次に、編集用バッファ６９３で保持しているデータ（すなわち項目の名称及び値の組）を、上り電文に対する１個のログとして電文ログ６９２に格納する（ステップＳ２４）。ステップＳ２４の処理は、上り電文処理部６１０の第１のログ編集部６１２が行う。第１のログ編集部６１２は、例えば、送信電文通番、注文ＩＤ、及び利用者番号の３つの項目のそれぞれについての名称及び値が所定の順序で並ぶログを、電文ログ６９２に格納する（図６を参照）。
【００４８】
電文ログ６９２にログを格納した後、上り電文処理部６１０は、作成した上り電文を所定の宛先（売買システム４）に向けて送信する（ステップＳ２５）。ステップＳ２５の処理は、上り電文処理部６１０の電文作成部６１１と、電文送受信部６４０とが連携して行う。電文作成部６１１は、作成した上り電文を電文送受信部６４０に転送する。電文送受信部６４０は、例えば、端末装置５から発注依頼とともに送信される送信先情報（宛先情報）に基づいて、上り電文を送信する売買システム４を決定し、決定した売買システム４に向けて上り電文を送信する。上り電文を送信すると、サーバ装置６は、１つの発注依頼に対する上り電文処理を終了する。
【００４９】
なお、本実施形態のサーバ装置６における上り電文処理部６１０は、複数の端末装置５のそれぞれからの発注依頼を受け付ける毎に、それぞれの発注依頼に対する上り電文処理を行う。例えば、上り電文処理部６１０は、第１の端末装置５Ａからの発注依頼に応じて上り電文処理を行っているときに第２の端末装置５Ｂからの発注依頼を受け付けた場合には、第１の端末装置５Ａからの発注依頼に応じた上り電文処理と並行して、第２の端末装置５Ｂからの発注依頼に応じた上り電文処理を行う。
【００５０】
このように、本実施形態のサーバ装置６における上り電文処理部６１０は、上り電文を作成して売買システム４に送信する際に、マッチング定義６９１に基づいて該上り電文についてのログを編集する上り電文ログ編集処理（ステップＳ２３）と、編集したログを電文ログ６９２に格納する処理（ステップＳ２４）とを行う。本実施形態に係るサーバ装置６における上り電文処理部６１０は、上り電文ログ編集処理（ステップＳ２３）として、図８のフローチャートに沿った処理を行う。なお、図８のフローチャートに沿った上り電文ログ編集処理は、サーバ装置６の上り電文処理部６１０における第１のログ編集部６１２が行う。
【００５１】
図８は、上り電文ログ編集処理の内容を説明するフローチャートである。
【００５２】
上り電文ログ編集処理を開始すると、上り電文処理部６１０の第１のログ編集部６１２は、まず、マッチング定義６９１に登録された電文内の項目の名称と名称が一致する、上り電文内の項目の名称及び値を取り出すループ処理（図８のステップＳ２３０１〜Ｓ２３０６）を行う。
【００５３】
該ループ処理において、第１のログ編集部６１２は、まず、マッチング定義６９１内の定義を１つ読み込む（ステップＳ２３０１）。ステップＳ２３０１の処理では、第１のログ編集部６１２は、マッチング定義６９１に登録された複数の定義のうち、現在行っている上り電文ログ編集処理においてまだ読み込みをしていない定義の１つ（１レコード）を選択して読み込む。なお、１つの上り電文に対する上り電文ログ編集処理において複数回行われるステップＳ２３０１の処理のうち２回目以降の処理では、第１のログ編集部６１２は、１回前のステップＳ２３０１の処理の際に読み込んだ定義を破棄した後、新たな定義を１つ読み込む。
【００５４】
次に、第１のログ編集部６１２は、現在マッチング定義６９１から読み込んでいる定義における電文内の項目の名称と名称が一致する項目を上り電文内で探索する探索処理（ステップＳ２３０２〜Ｓ２３０４）を行う。当該探索処理は、定義における電文内の項目の名称と名称が一致する項目を上り電文から検出した場合、或いは上り電文内の全ての項目の名称が定義における電文内の項目の名称と一致しなかった場合に終了する。
【００５５】
探索処理において、第１のログ編集部６１２は、上り電文から１つの項目の名称及び値を取り出し（ステップＳ２３０２）、上り電文から取り出した項目の名称が定義における電文内の項目の名称と一致するか否かを判定する（ステップＳ２３０３）。ステップＳ２３０２の処理では、第１のログ編集部６１２は、取り出しの対象となる上り電文内の複数の項目のうち、現在行っている探索処理においてまだ取り出していない項目の１つを選択して取り出す。なお、１つの上り電文に対する上り電文ログ編集処理において複数回行われるステップＳ２３０２の処理のうち２回目以降の処理では、第１のログ編集部６１２は、１回前のステップＳ２３０２の処理の際に取り出した項目の名称及び値を破棄した後、新たな項目の名称及び値を取り出す。
【００５６】
項目の名称が一致した場合（ステップＳ２３０３；ＹＥＳ）、第１のログ編集部６１２は、探索処理を終了し、現在上り電文から取り出されている項目の名称及び値を編集用バッファ６９３に追加する（ステップＳ２３０５）。ステップＳ２３０５の処理を行った場合、第１のログ編集部６１２は、次に、現在行っているループ処理において読み込みの対象となる、マッチング定義６９１内の全ての定義を読み込んだか否かを判定する（ステップＳ２３０６）。
【００５７】
これに対し、項目の名称が一致していない場合（ステップＳ２３０３；ＮＯ）、第１のログ編集部６１２は、次に、現在行っている探索処理において取り出しの対象となる、上り電文内の全ての項目の名称及び値を取り出したか否かを判定する（ステップＳ２３０４）。取り出していない項目の名称及び値がある場合（ステップＳ２３０４；ＮＯ）、第１のログ編集部６１２は、ステップＳ２３０２以降の処理を行う。一方、全ての項目の名称及び値を取り出した場合（ステップＳ２３０４；ＹＥＳ）、第１のログ編集部６１２は、探索処理を終了する。上り電文内の全ての項目の名称が定義における電文内の項目の名称と一致せずに探索処理を終了した場合、第１のログ編集部６１２は、ステップＳ２３０５の処理を行わずにステップＳ２３０６の判定を行う。
【００５８】
現在行っている上り電文ログ編集処理において、マッチング定義６９１内にまだ読み込んでいない定義がある場合（ステップＳ２３０６；ＮＯ）、第１のログ編集部６１２は、上記のように、ステップＳ２３０１以降のループ処理を続ける。全ての定義を読み込んだ場合（ステップＳ２３０６；ＹＥＳ）、第１のログ編集部６１２は、上り電文内の所定の項目の名称及び値を取り出すループ処理（ステップＳ２３０１〜Ｓ２３０６）を終了する。
【００５９】
上記のループ処理（ステップＳ２３０１〜Ｓ２３０６）を終了すると、第１のログ編集部６１２は、次に、発注依頼を送信した端末装置５を示す項目の名称（利用者番号）及び値を編集用バッファ６９３に追加する（ステップＳ２３０７）。ステップＳ２３０７の処理では、第１のログ編集部６１２は、発注依頼を送信した端末装置５に割り当てられた利用者番号（識別番号）の値を取得し、「利用者番号」という名称と端末装置５に割り当てられた利用者番号の値とを含む項目を、編集用バッファ６９３に追加する。ステップＳ２３０７の処理を終えると、第１のログ編集部６１２は、上り電文ログ編集処理を終了する。上り電文ログ編集処理が終了すると、第１のログ編集部６１２は、図７のように、編集用バッファ６９３で保持しているデータ（ログ）を電文ログ６９２に格納する処理（ステップＳ２４）を行う。
【００６０】
第１のログ編集部６１２がステップＳ２３及びＳ２４の処理を終えると、上り電文処理部６１０は、電文送受信部６４０と連携して、作成した上り電文を売買システム４に送信する。
【００６１】
本実施形態のサーバ装置６は、作成した上り電文を売買システム４に送信した後、売買システム４からの下り電文を受信すると、下り電文についてのログを電文ログ６９２に格納するとともに、下り電文に含まれる取引結果を端末装置５に通知する下り電文処理（ステップＳ４）を行う。本実施形態のサーバ装置６は、ステップＳ４の下り電文処理として、図９のフローチャートに沿った処理を行う。なお、図９のフローチャートに沿った下り電文処理は、サーバ装置６の下り電文処理部６２０とデータ送受信部６３０とが連携して行う。
【００６２】
図９は、下り電文処理の内容を説明するフローチャートである。
【００６３】
サーバ装置６は、下り電文を受信すると、該下り電文に対する下り電文処理を開始する。下り電文処理を開始したサーバ装置６は、図９のように、まず、編集用バッファ６９３内に項目の名称及び値を保持する領域を確保し該領域を初期化する（ステップＳ４１）。ステップＳ４１の処理は、例えば、サーバ装置６の下り電文処理部６２０における第２のログ編集部６２１が行う。
【００６４】
次に、サーバ装置６は、通信先バッファ６９４内に通知先利用者番号を保持する領域を確保し該領域を初期化する（ステップＳ４２）。ステップＳ４２の処理は、下り電文処理部６２０の第２のログ編集部６２１が行う。ステップＳ４２において、第２のログ編集部６２１は、通信先バッファ６９４内の確保した領域の値を、空白、null、或いは利用者番号として取り得る値とは異なる値等の、端末装置５が特定されない未定値する。
【００６５】
次に、サーバ装置６は、電文ログ６９２に格納するログを編集する下り電文ログ編集処理（ステップＳ４３）を行う。ステップＳ４３の下り電文ログ編集処理は、下り電文処理部６２０の第２のログ編集部６２１が行う。第２のログ編集部６２１が行う下り電文ログ編集処理は、下記（１）〜（４）の４つの処理を含む。
（１）マッチング定義６９１に基づいて下り電文内の所定の項目の名称及び値を取り出し編集用バッファ６９３に追加する処理。
（２）マッチング定義６９１から読み込んだ定義における電文内の項目の名称と名称が一致する下り電文内の項目の値と、該定義における電文ログ内の項目の名称とに基づいて、下り電文内の取引結果を通知する端末装置５を示す利用者番号が含まれるログを電文ログから取り出す処理。
（３）電文ログ６９２から取り出したログに含まれる端末装置５を識別する項目の名称（利用者番号）及び値を抽出し、該項目の名称及び値を編集用バッファ６９３に追加する処理。
（４）電文ログ６９２から抽出した利用者番号の値を通知先利用者番号６９４に格納する処理。
【００６６】
下り電文ログ編集処理を終えると、下り電文処理部６２０は、次に、編集用バッファ６９３で保持しているデータ（すなわち項目の名称及び値の組）を、下り電文に対する１個のログとして電文ログ６９２に格納する（ステップＳ４４）。ステップＳ４４の処理は、下り電文処理部６２０の第２のログ編集部６２１が行う。第２のログ編集部６２１は、例えば、注文ＩＤ、約定ＩＤ、及び利用者番号の３つの項目のそれぞれについての名称及び値が所定の順序で並ぶログを、電文ログ６９２に格納する（図６を参照）。
【００６７】
電文ログ６９２にログを格納した後、下り電文処理部６２０は、端末装置５に通知する通知データを作成して端末装置５に通知する（ステップＳ４５）。ステップＳ４５の処理は、下り電文処理部６２０の通知データ作成部６２２と、データ送受信部６３０とが連携して行う。通知データ作成部６２２は、取引結果として端末装置５に通知する項目の名称及び値の組を下り電文１２から抽出して所定の順番に並べた通知データ１３を作成する（図３の（ｂ）を参照）。データ送受信部６３０は、通知データ作成部６２２が作成した通知データ１３を、通知先バッファ６９４に格納された通知先利用者番号により特定される端末装置５に送信する。通知データ１３を送信すると、サーバ装置６は、受信した１つの下り電文に対する下り電文処理を終了する。
【００６８】
なお、本実施形態のサーバ装置６は、下り電文を受信する毎に、それぞれの下り電文に対する下り電文処理を行う。例えば、下り電文処理部６２０は、第１の下り電文に対する下り電文処理を行っているときに第２の下り電文を受信した場合には、第１の下り電文に対する下り電文処理と並行して、第２の下り電文に対する下り電文処理を行う。
【００６９】
このように、本実施形態のサーバ装置６における下り電文処理部６２０は、マッチング定義６９１及び下り電文から取り出した項目の値に基づいて下り電文と対応する発注依頼を送信した端末装置５を示す項目の名称（利用者番号）及び値を電文ログ６９２から抽出する処理を含む下り電文ログ編集処理を行う。更に、本実施形態に係るサーバ装置６における下り電文処理部６２０は、下り電文編集処理において電文ログ６９２から抽出した端末装置５を示す項目の値に基づいて、下り電文に含まれる取引結果を通知する端末装置５を特定する。本実施形態に係るサーバ装置６の下り電文処理部６２０は、下り電文ログ編集処理（ステップＳ４３）として、図１０のフローチャートに沿った処理を行う。なお、図１０のフローチャートに沿った下り電文ログ編集処理は、サーバ装置６の下り電文処理部６２０における第２のログ編集部６２１が行う。
【００７０】
図１０は、下り電文ログ編集処理の内容を説明するフローチャートである。
【００７１】
下り電文ログ編集処理を開始すると、下り電文処理部６２０の第２のログ編集部６２１は、図１０のように、まず、下り電文から電文ログ６９２に格納する項目の名称及び値を取り出す処理と、下り電文に含まれる取引結果を通知する端末装置５を示す利用者番号を特定する利用者番号特定処理（ステップＳ４３０６）とを含むループ処理（ステップＳ４３０１〜Ｓ４３０７）を行う。
【００７２】
該ループ処理において、第２のログ編集部６２１は、まず、マッチング定義６９１内の定義を１つ読み込む（ステップＳ４３０１）。ステップＳ４３０１の処理では、ログ編集部６２２は、マッチング定義６９１に登録された複数の定義のうち、現在行っている下り電文ログ編集処理においてまだ読み込みをしていない定義の１つ（１レコード）を選択して読み込む。なお、１つの下り電文に対する下り電文ログ編集処理において複数回行われるステップＳ４３０１の処理のうち２回目以降の処理では、第２のログ編集部６２１は、１回前のステップＳ４３０１の処理の際に読み込んだ定義を破棄した後、新たな定義を１つ読み込む。
【００７３】
次に、第２のログ編集部６２１は、現在マッチング定義６９１から読み込んでいる定義における電文内の項目の名称と名称が一致する項目を上り電文内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。当該探索処理は、定義における電文内の項目の名称と名称が一致する項目を下り電文から検出した場合、或いは下り電文内の全ての項目の名称が定義における電文内の項目の名称と一致しなかった場合に終了する。
【００７４】
探索処理において、第２のログ編集部６２１は、下り電文から１つの項目の名称及び値を取り出し（ステップＳ４３０２）、下り電文から取り出した項目の名称がマッチング定義６９１から読み込んだ定義における電文内の項目の名称と一致するか否かを判定する（ステップＳ４３０３）。ステップＳ４３０２の処理では、第２のログ編集部６２１は、取り出しの対象となる下り電文内の複数の項目のうち、現在行っている探索処理においてまだ読み込みをしていない項目の１つを選択して読み込む。なお、１つの下り電文に対する探索処理において複数回行われるステップＳ４３０２の処理のうち２回目以降の処理では、第２のログ編集部６２１は、１回前のステップＳ４３０２の処理の際に読み込んだ項目の名称及び値を破棄した後、新たな項目の名称及び値を読み込む。
【００７５】
項目の名称が一致した場合（ステップＳ４３０３；ＹＥＳ）、第２のログ編集部６２１は、探索処理を終了する。項目の名称が一致したことにより探索処理を終了した場合、第２のログ編集部６２１は、次に、下り電文から取り出した項目の名称及び値を編集用バッファ６９３に追加し（ステップＳ４３０５）、利用者番号特定処理（ステップＳ４３０６）を行う。ステップＳ４３０６の利用者番号特定処理は、マッチング定義６９１と、下り電文から取り出した項目の名称及び値と、電文ログ６９２とに基づいて、下り電文内の取引結果を通知する端末装置５を示す利用者番号を特定する処理を含む。また、利用者番号特定処理は、特定した利用者番号を示す項目の名称及び値を編集用バッファ６９３に追加する処理と、特定した利用者番号を通知先バッファ６９４に格納する処理とを含む。利用者番号特定処理の内容は、後述する。ステップＳ４３０５及びＳ４３０６の処理を終えると、第２のログ編集部６２１は、次に、現在行っているループ処理において読み込みの対象となっている、マッチング定義内の全ての定義を読み込んだか否かを判定する（ステップＳ４３０７）。
【００７６】
これに対し、項目の名称が一致していない場合（ステップＳ４３０３：ＮＯ）、第２のログ編集部６２１は、次に、現在行っている探索処理において取り出しの対象となる、下り電文内の全ての項目の名称及び値を取り出したか否かを判定する（ステップＳ４３０４）。取り出していない項目の名称及び値がある場合（ステップＳ４３０４；ＮＯ）、第２のログ編集部６２１は、ステップＳ４３０２以降の処理を行う。全ての項目を取り出した場合（ステップＳ４３０４；ＹＥＳ）、第２のログ編集部６２１は、探索処理を終了する。下り電文内の全ての項目の名称が定義における電文内の項目の名称と一致せずに探索処理を終了した場合、第２のログ編集部６２１は、ステップＳ４３０５及びＳ４３０６の処理を行わずにステップＳ４３０７の判定を行う。
【００７７】
現在行っている下り電文ログ編集処理において、マッチング定義６９１内にまだ読み込んでいない定義がある場合（ステップＳ４３０７；ＮＯ）、第２のログ編集部６２１は、ステップＳ４３０１以降のループ処理を続ける。全ての定義を読み込んだ場合（ステップＳ４３０７；ＹＥＳ）、第２のログ編集部６２１は、下り電文内の所定の項目の名称及び値を取り出すループ処理（ステップＳ４３０１〜Ｓ４３０７）を終了する。
【００７８】
上記のループ処理（ステップＳ４３０１〜Ｓ４３０７）を終了すると、第２のログ編集部６２１は、次に、通知先バッファ６９４を参照し、通知先利用者番号が未定値であるか否かを判定する（ステップＳ４３０８）。通知先利用者番号は、下り電文ログ編集処理を開始する前に初期化されており（図９を参照）、下り電文ログ編集処理の開始時には未定値となっている。しかしながら、下り電文ログ編集処理に含まれる利用者番号特定処理（ステップＳ４３０６）において利用者番号が特定されると、第２のログ編集部６２１は、特定した利用者番号を通知先バッファ６９４に格納する。すなわち、ループ処理（ステップＳ４３０１〜Ｓ４３０７）が終了した後で行われるステップＳ４３０８の判定処理において通知先利用者番号が未定値である場合、利用者番号特定処理において利用者番号（通知データを送信する端末装置５）を特定することができなかったこととなる。このため、通知先利用者番号が未定値である場合（ステップＳ４３０８；ＹＥＳ）、第２のログ編集部６２１は、名称が利用者番号である項目の値を所定の値とし、項目の名称（利用者番号）及び値を編集用バッファ６９３に追加するとともに、通知先利用者番号を該所定の値とする（ステップＳ４３０９）。ステップＳ４３０９で利用する所定の利用者番号の値は、例えば、複数の端末装置５のうち所定の端末装置５を示す値とする。ステップＳ４３０９の処理を終えると、下り電文処理部６２０の第２のログ編集部６２１は、下り電文ログ編集処理を終了する。
【００７９】
このように、サーバ装置６の下り電文処理部６２０が行う下り電文ログ編集処理は、マッチング定義６９１における電文ログ内の項目の名称と、下り電文から取り出した項目の値と、電文ログ６９２とに基づいて、利用者番号を特定する利用者番号特定処理（ステップＳ４３０６）を含む。利用者番号特定処理は、下り電文処理部６２０の第２のログ編集部６２１が行う。第２のログ編集部６２１は、利用者番号特定処理として、図１１のフローチャートに沿った処理を行う。
【００８０】
図１１は、利用者番号特定処理の内容を説明するフローチャートである。
【００８１】
利用者番号特定処理を開始すると、下り電文処理部６２０の第２のログ編集部６２１は、まず、現在読み込まれている定義に電文ログ内の項目の名称が登録されており、かつ通知先利用者番号が未定値であるか否かを判定する（ステップＳ４３０６１）。第２のログ編集部６２１は、マッチング定義６９１に登録された電文ログ内の項目の名称を利用して電文ログ６９２内のログを探索し、下り電文の取引結果を通知する端末装置５を示す利用者番号の値を抽出する。マッチング定義６９１における１つの定義は、電文内の項目の名称と電文ログ内の項目の名称との対応関係を示す情報であるが、上記のように、電文ログ内の項目の名称が登録されていない定義もある（図５を参照）。このため、現在読み込まれている定義に電文ログ内の項目の名称がない場合、第２のログ編集部６２１は、電文ログ６９２を探索して利用者番号の値を特定することができない。また、通知先利用者番号が未定値ではない場合、既に利用者番号が特定されているので、改めて利用者番号を特定する処理を行う必要はない。このため、現在読み込まれている定義に電文ログ内の項目の名称がない、或いは通知先利用者番号が未定値ではない場合（ステップＳ４３０６１；ＮＯ）、下り電文処理部６２０の第２のログ編集部６２１は、ステップＳ４３０６２以降の処理を省略して利用者番号特定処理を終了する。
【００８２】
一方、電文ログ内の項目の名称が定義されており、かつ通知先利用者番号が未定値である場合（ステップＳ４３０６１；ＹＥＳ）、第２のログ編集部６２１は、次に、名称が現在読み込まれている定義における電文ログ内の項目の名称であり、かつ値が現在下り電文から取り出している項目の値である項目を含むログを、電文ログ６９２内で探索する探索処理（ステップＳ４３０６２〜Ｓ４３０６６）を行う。該探索処理は、名称が定義における電文ログ内の項目の名称であり、かつ値が下り電文から取り出した項目の値である項目を検出した場合、或いは上記の条件を満たす項目が電文ログ６９２から検出されなかった場合に終了する。
【００８３】
探索処理において、第２のログ編集部６２１は、まず、電文ログ６９２から１つの電文に対するログ（１レコード）を読み込む（ステップＳ４３０６２）。ステップＳ４３０６２の処理では、第２のログ編集部６２１は、電文ログ６９２（図５を参照）に格納された複数のログのうち、現在行っている利用者番号特定処理においてまだ読み込んでいないログを１つ選択して読み込む。なお、１回の利用者番号特定処理における探索処理では、ステップＳ４３０６２の処理を複数回行うことがある。ステップＳ４３０６２の処理が複数回行われる場合、２回目以降の処理では、第２のログ編集部６２１は、例えば、１回前のステップＳ４３０６２の処理の際に読み込んだログを破棄した後、新たなログを読み込む。
【００８４】
次に、第２のログ編集部６２１は、読み込んだログ内に、名称が定義における電文ログ内の項目の名称と一致し、かつ値が下り電文から取り出した項目の値と一致する項目を、読み込んだログ内で探索する処理（ステップＳ４３０６３〜Ｓ４３０６５）を行う。項目を探索する処理は、上記の条件を満たす項目を検出した場合、或いは読み込んだログ内の全ての項目が上記の条件を満たしていない場合に終了する。
【００８５】
ログ内の項目を探索する処理において、第２のログ編集部６２１は、まず、読み込んだログから１つの項目の名称及び値を読み込む（ステップＳ４３０６３）。ステップＳ４３０６３の処理では、第２のログ編集部６２１は、電文ログ６９２から読み出した１つのログに含まれる複数の項目のうち、現在行っている利用者番号特定処理においてまだ読み込んでいない項目を１つ選択し、該項目の名称及び値を読み込む。なお、１回の利用者番号特定処理における探索処理では、ステップＳ４３０６３の処理を複数回行うことがある。ステップＳ４３０６３の処理が複数回行われる場合、２回目以降の処理では、第２のログ編集部６２１は、例えば、１回前のステップＳ４３０６３の処理の際に読み込んだ項目の名称及び値を破棄した後、新たな項目の名称及び値を読み込む。
【００８６】
次に、第２のログ編集部６２１は、ログから取り出した項目の名称がマッチング定義６９１から読み込んだ定義における電文ログ内の項目の名称と一致し、かつログから取り出した項目の値が下り電文から取り出されている項目の値と一致するか否かを判定する（ステップＳ４３０６４）。
【００８７】
項目の名称が一致し、かつ項目の値が一致した場合（ステップＳ４３０６４；ＹＥＳ）、第２のログ編集部６２１は、探索処理（ステップＳ４３０６２〜Ｓ４３０６６）を終了し、次に、現在読み込まれているログ内の名称が利用者番号である項目の名称及び値を取り出して編集用バッファ６９３に追加する（ステップＳ４３０６７）。その後、第２のログ編集部６２１は、通信先利用者番号をログから取り出した利用者番号の値とし（ステップＳ４３０６８）、利用者番号特定処理を終了する。
【００８８】
これに対し、項目の名称、又は項目の値が一致していない場合（ステップＳ４３０６４；ＮＯ）、第２のログ編集部６２１は、次に、現在読み込まれているログにおいて取り出しの対象となる、ログ内の全ての項目を取り出したか否かを判定する（ステップＳ４３０６５）。言い換えると、ステップＳ４３０６５の判定処理では、第２のログ編集部６２１は、現在読み込まれているログ内に、ステップＳ４３０６４の判定を行っていない項目の名称及び値が残っているか否かを判定する。ログ内に取り出していない項目がある場合（ステップＳ４３０６５；ＮＯ）、第２のログ編集部６２１は、ステップＳ４３０６３以降の処理を行う。
【００８９】
現在読み込まれているログ内の全ての項目を取り出した場合（ステップＳ４３０６５；ＹＥＳ）、第２のログ編集部６２１は、次に、現在行っている利用者番号特定処理において読み込みの対象となる、電文ログ６９２内の全てのログを読み込んだか否かを判定する（ステップＳ４３０６６）。電文ログ６９２内に読み込んでいないログがある場合（ステップＳ４３０６６；ＮＯ）、第２のログ編集部６２１は、ステップＳ４３０６２以降の探索処理を続ける。一方、電文ログ６９２内の全てのログを読み込んだ場合（ステップＳ４３０６６；ＹＥＳ）、第２のログ編集部６２１は、探索処理（ステップＳ４３０６２〜Ｓ４３０６６）を終了し、利用者番号特定処理を終了する。
【００９０】
このように、本実施形態のサーバ装置６が行う利用者番号特定処理では、マッチング定義６９１に格納された電文内の項目の名称と名称が一致する下り電文内の項目の値と、マッチング定義６９１において該電文内の項目の名称と対応付けられた電文ログ内の項目の名称との組み合わせと一致する項目の名称及び値を含むログを、電文ログ６９２内で探索する。ここで探索して抽出されるログは、該ログにより特定される電文と対応する発注依頼を送信した端末装置５を示す項目の名称（利用者番号）及び値を含む。このため、サーバ装置６の下り電文処理部６２０における第２のログ編集部６２１は、電文内の項目の名称による定義が登録されたマッチング定義と、下り電文と、電文ログとに基づいて、下り電文の取引結果を通知する端末装置５を示す利用者番号の値を特定することが可能となる。しかも、マッチング定義における電文内の項目の名称及び電文ログ内の項目の名称は、予め定められたものであり、取引システム１内の端末装置５の数や売買システム４の数が変更された場合にも不変である。また、マッチング定義における電文内の項目の名称及び電文ログ内の項目の名称は、端末装置５で取り扱う銘柄の種類や売買システム４で取り扱う銘柄の種類が変更された場合にも不変である。従って、本実施形態に係るサーバ装置６は、端末装置５の数や売買システム４の数が変更された場合や、端末装置５で取り扱う銘柄の種類や売買システム４で取り扱う銘柄の種類が変更された場合にも、同一のマッチング定義６９１を継続して利用可能となる。すなわち、本実施形態に係るサーバ装置６は、データの送信先の特定に利用する静的な定義を変更する作業の頻度を低減することが可能となる。よって、本実施形態の取引システムでは、静的な定義を変更する作業により生じる動作停止期間を低減することが可能となる。よって、本実施形態に係るサーバ装置６を含む取引システム１は、サーバ装置６を介した取引を行うことのできない期間が低減し、端末装置５を利用して取引を行う利用者に対する利便性が向上する。
【００９１】
以下、本実施形態のサーバ装置６における上り電文処理部６１０の第１のログ編集部６１２が行う処理、及び下り電文処理部６２０の第２のログ編集部６２１が行う処理について具体的に説明する。
【００９２】
まず、図１２Ａ〜図１２Ｆを参照し、上り電文処理部６１０の第１のログ編集部６１２が行う処理を具体的に説明する。なお、ここで例示する処理は、上り電文処理部６１０の上り電文作成部６１１が図３の（ａ）に示した上り電文１１を作成したときに、第１のログ編集部６１２が図４のマッチング定義６９１を参照して行う処理とする。
【００９３】
図１２Ａは、第１のログ編集部が行う処理の具体例を説明する図（その１）である。図１２Ｂは、第１のログ編集部が行う処理の具体例を説明する図（その２）である。図１２Ｃは、第１のログ編集部が行う処理の具体例を説明する図（その３）である。図１２Ｄは、第１のログ編集部が行う処理の具体例を説明する図（その４）である。図１２Ｅは、第１のログ編集部が行う処理の具体例を説明する図（その５）である。図１２Ｆは、第１のログ編集部が行う処理の具体例を説明する図（その６）である。
【００９４】
上り電文処理部６１０の第１のログ編集部６１２は、上記のように、上り電文作成部６１１が作成した上り電文１１についてのログを編集する上り電文ログ編集処理（図７のステップＳ２３）、及び編集したログを電文ログ６９２に格納する処理（図７のステップＳ２４）を行う。上り電文処理部６１０の第１のログ編集部６１２は、上り電文ログ編集処理として、図８のフローチャートに沿った処理を行う。すなわち、上り電文ログ編集処理を開始した第１のログ編集部６１２は、まず、マッチング定義６９１内の定義を１つ読み込む（ステップＳ２３０１）。このとき、第１のログ編集部６１２は、例えば、図１２Ａのように、まず、マッチング定義６９１における最上位の行に登録された第１の定義Ｄ１（「送信電文通番＝」）を読み込む。
【００９５】
次に、第１のログ編集部６１２は、名称がマッチング定義６９１から読み込んだ定義における名称「送信電文通番」と一致する項目の名称及び値を上り電文１１内で探索する探索処理（ステップＳ２３０２〜Ｓ２３０４）を行う。図１２Ａに示したように、上り電文１１は、先頭（左端）に位置する第１の項目１１０１が「送信電文通番＝１」という項目となっている。このため、第１のログ編集部６１２は、ステップＳ２３０２で第１の項目１１０１の名称及び値（「送信電文通番＝１」）を取り出したときに、項目の名称が一致する（ステップＳ２３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第１のログ編集部６１２は、上り電文１１から取り出した第１の項目１１０１の名称及び値（「送信電文通番＝１」）を、編集用バッファ６９３に追加する（ステップＳ２３０５）。
【００９６】
第１の項目１１０１の名称及び値を編集用バッファ６９３に追加した後、第１のログ編集部６１２は、読み込みの対象となるマッチング定義内の全ての定義を読み込んだか否かを判定する（ステップＳ２３０６）。このとき、マッチング定義６９１内にはまだ読み出していない定義が残っている（ステップＳ２３０６；ＮＯ）。このため、第１のログ編集部６１２は、２回目のステップＳ２３０１の処理を行う。２回目のステップＳ２３０１の処理では、第１のログ編集部６１２は、例えば、図１２Ｂのように、マッチング定義６９１における上から２行目に登録された第２の定義Ｄ２（「関連電文通番＝送信電文通番」という定義）を読み出す。
【００９７】
次に、第１のログ編集部６１２は、名称が「関連電文通番」である項目を上り電文１１内で探索する探索処理（ステップＳ２３０２〜Ｓ２３０４）を行う。しかしながら、上り電文１１には名称が「関連電文通番」である項目が存在しない。このため、第１のログ編集部６１２は、上り電文１１の第１の項目１１０１から第６の項目１１０６までの全ての項目の名称が「関連電文通番」とは一致しないと判定し、探索処理を終了する。このとき、第１のログ編集部６１２は、項目の名称及び値を編集用バッファ６９３に追加する処理（ステップＳ２３０５）は行わない。
【００９８】
名称が「関連電文通番」である項目を上り電文１１内で探索する探索処理を終えると、第１のログ編集部６１２は、ステップＳ２３０６の判定を行う。このときも、マッチング定義６９１内にはまだ読み込んでいない定義が残っているので、第１のログ編集部６１２は、３回目のステップＳ２３０１の処理を行う。３回目のステップＳ２３０１の処理では、第１のログ編集部６１２は、例えば、図１２Ｃのように、マッチング定義６９１における上から３行目に登録された第３の定義Ｄ３（「注文ＩＤ＝注文ＩＤ」）を読み出す。
【００９９】
次に、第１のログ編集部６１２は、名称が「注文ＩＤ」である項目を上り電文１１内で探索する探索処理（ステップＳ２３０２〜Ｓ２３０４）を行う。図１２Ｃに示したように、上り電文１１は、先頭から３番目に位置する第３の項目１１０３の名称が「注文ＩＤ」となっている。このため、第１のログ編集部６１２は、ステップＳ２３０２において第３の項目１１０３を取り出したときに、項目の名称が一致する（ステップＳ２３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第１のログ編集部６１２は、第３の項目１１０３の名称及び値（「注文ＩＤ＝P1_001」）を編集用バッファ６９３に格納する（ステップＳ２３０５）。
【０１００】
第３の項目の名称及び値を編集用バッファ６９３に格納した後、第１のログ編集部６１２は、ステップＳ２３０６の判定を行う。このときも、マッチング定義６９１内にはまだ読み込んでいない定義が残っているので、第１のログ編集部６１２は、４回目のステップＳ２４０１の処理を行う。４回目のステップＳ２４０１の処理では、第１のログ編集部６１２は、例えば、マッチング定義６９１における上から４行目に登録された第４の定義Ｄ４（「約定ＩＤ＝」）を読み込む。しかしながら、上り電文１１には名称が「約定ＩＤ」である項目が存在しない。このため、第１のログ編集部６１２は、上り電文１１の第１の項目１１０１から第６の項目１１０６までの全ての項目の名称が「約定ＩＤ」とは一致しないと判定し、探索処理を終了する。
【０１０１】
名称が「約定ＩＤ」である項目を上り電文１１内で探索する探索処理を終えると、第１のログ編集部６１２は、ステップＳ２３０６の判定を行う。このときも、マッチング定義６９１内にはまだ読み込んでいない定義が残っているので、第１のログ編集部６１２は、５回目のステップＳ２３０１の処理を行う。５回目のステップＳ２３０１の処理では、第１のログ編集部６１２は、例えば、図１２Ｄのように、マッチング定義６９１における上から５行目に登録された第５の定義Ｄ５（「元約定ＩＤ＝約定ＩＤ」）を読み込む。しかしながら、上り電文１１には名称が「元約定ＩＤ」である項目が存在しない。このため、第１のログ編集部６１２は、上り電文１１の第１の項目１１０１から第６の項目１１０６までの全ての項目の名称が「元約定ＩＤ」とは一致しないと判定し、探索処理を終了する。
【０１０２】
名称が「元約定ＩＤ」である項目を上り電文１１内で探索する探索処理を終えると、第１のログ編集部６１２は、ステップＳ２３０６の判定を行う。このとき、第１のログ編集部６１２は、既にマッチング定義６９１内の５つの定義Ｄ１〜Ｄ５を全て読み込んでいる（ステップＳ２３０６；ＹＥＳ）。このため、第１のログ編集部６１２は、上り電文１１から電文ログ６９２に格納する項目の名称及び値を取り出すループ処理を終了する。よって、該ループ処理を終了した時点で、図１２Ｄのように、編集用バッファ６９３は、上り電文１１から取り出した「送信電文通番＝１」という第１の項目ＬＥ１、及び「注文ＩＤ＝P1_001」という第２の項目ＬＥ２を保持している。
【０１０３】
ステップＳ２３０１〜Ｓ２３０６のループ処理を終了すると、第１のログ編集部６１２は、次に、図１２Ｅのように、発注依頼を送信した端末装置５を示す項目の名称（利用者端末）及び値を編集用バッファ６９３に追加する（ステップＳ２３０７）。ステップＳ２３０７の処理では、第１のログ編集部６１２は、上り電文１１の作成及び送信の依頼（すなわち発注依頼）を送信した端末装置５を識別する項目の名称（利用者番号）及び値を、編集用バッファ６９３に追加する。例えば、発注依頼を送信した端末装置５が図２の第1の端末装置５Ａである場合、第１のログ編集部６１２は、図１２Ｅのように「利用者番号＝１」という第３の項目ＬＥ３を編集用バッファ６９３に追加する。
【０１０４】
以上の処理により、第１のログ編集部６１２による上り電文ログ編集処理（図７のステップＳ２３）が終了する。この後、第１のログ編集部６１２は、図１２Ｆに示すように、編集用バッファ６９３で保持しているデータ（項目の名称及び値の組）Ｌを読み出し、上り電文１１に対するログＬ１として電文ログ６９２に格納する（ステップＳ２４）。
【０１０５】
上記の手順で上り電文１１に対するログＬ１を電文ログ６９２に格納した後、上り電文処理部６１０は、電文送受信部６４０と連携し、作成した上り電文１１を売買システム４に送信する。
【０１０６】
上り電文１１を受信した売買システム４は、上り電文１１内の第４の項目１１０４（「銘柄＝6702」）、第５の項目１１０５（「数量＝1000」）、及び第６の項目１１０６（「金額指定＝成行」）に応じた証券の売買取引を行う。その後、売買システム４は、取引の結果を通知する下り電文１２を作成してサーバ装置６に送信する。このとき、サーバ装置６は、例えば、図３の（ｂ）に示したような下り電文１２を受信する。下り電文１２を受信したサーバ装置６は、下り電文処理部６２０において受信した下り電文１２に対する下り電文処理を行い、取引の結果を端末装置５に通知する。
【０１０７】
以下、図１３Ａ〜図１３Ｅを参照し、下り電文処理部６２０の第２のログ編集部６２１が行う処理を具体的に説明する。なお、ここで例示する処理は、図３の（ｂ）に示した下り電文１２に対する下り電文処理において第２のログ編集部６２１が図４のマッチング定義６９１を参照して行う処理とする。
【０１０８】
図１３Ａは、第２のログ編集部が行う処理の具体例を説明する図（その１）である。図１３Ｂは、第２のログ編集部が行う処理の具体例を説明する図（その２）である。図１３Ｃは、第２のログ編集部が行う処理の具体例を説明する図（その３）である。図１３Ｄは、第２のログ編集部が行う処理の具体例を説明する図（その４）である。図１３Ｅは、第２のログ編集部が行う処理の具体例を説明する図（その５）である。
【０１０９】
下り電文処理部６２０の第２のログ編集部６２１は、上記のように、サーバ装置６が受信した下り電文１２についてのログを編集する下り電文ログ編集処理（図９のステップＳ４３）、及び編集したログを電文ログ６９２に格納する処理（図９のステップＳ４４）を行う。
【０１１０】
第２のログ編集部６２１は、下り電文ログ編集処理として、図１０のフローチャートに沿った処理を行う。すなわち、下り電文ログ編集処理を開始した第２のログ編集部６２１は、まず、マッチング定義６９１内の定義を１つ読み込む（ステップＳ４３０１）。このとき、第２のログ編集部６２１は、例えば、図１３Ａのように、まず、マッチング定義６９１における最上位の行に登録された第１の定義Ｄ１（「送信電文通番＝」）を読み込む。
【０１１１】
次に、第２のログ編集部６２１は、名称がマッチング定義６９１から読み込んだ定義における名称と一致する項目を下り電文１２内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、図１３Ａに示したように、名称が「送信電文通番」である項目は下り電文１２内に存在しない。このため、第２のログ編集部６２１は、下り電文１２の第１の項目１２０１から第７の項目１２０７までの全ての項目の名称が「送信電文通番」とは一致しないと判定し、探索処理を終了する。
【０１１２】
項目の名称が一致しなかったことにより探索処理を終了した場合、第２のログ編集部６２１は、項目の名称及び値を編集用バッファ６９３に追加する処理（ステップＳ４３０５）及び利用者番号特定処理（ステップＳ４３０６）を行わずにステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、２回目のステップＳ４３０１の処理を行う。２回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、マッチング定義６９１における上から２行目に登録された第２の定義Ｄ２（「関連電文通番＝送信電文通番」）を読み込む。
【０１１３】
次に、第２のログ編集部６２１は、名称が「関連電文通番」である項目を下り電文１２内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、図１３Ａに示したように、名称が「関連電文通番」である項目は下り電文１２内に存在しない。このため、第２のログ編集部６２１は、下り電文１２の第１の項目１２０１から第７の項目１２０７までの全ての項目の名称が「送信電文通番」とは一致しないと判定し、探索処理を終了する。探索処理を終了した後、第２のログ編集部６２１は、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っているので、第２のログ編集部６２１は、３回目のステップＳ４３０１の処理を行う。３回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、図１３Ｂのように、マッチング定義６９１における上から３行目に登録された第３の定義Ｄ３（「注文ＩＤ＝注文ＩＤ」）を読み出す。
【０１１４】
次に、第１のログ編集部６１２は、名称が「注文ＩＤ」である項目を下り電文１２内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。図１３Ｂに示したように、下り電文１２は、先頭から４番目の第４の項目１２０４の名称が「注文ＩＤ」となっている。このため、第２のログ編集部６２１は、ステップＳ４３０２において第４の項目１２０４を取り出したときに、項目の名称が一致する（ステップＳ４３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第２のログ編集部６２１は、第４の項目１２０４の名称及び値（「注文ＩＤ＝P1_001」）を編集用バッファ６９３に格納する（ステップＳ４３０５）。
【０１１５】
ステップＳ４３０５の処理を終えると、下り電文処理部６２０の第２のログ編集部６２１は、次に、利用者番号特定処理（ステップＳ４３０６）を行う。利用者番号特定処理は、上記のように、下り電文１２内の取引結果を通知する端末装置５を識別する値（利用者番号）を特定する処理である。第２のログ編集部６２１は、利用者番号特定処理として、図１１のフローチャートに沿った処理を行う。
【０１１６】
利用者番号特定処理を開始した第２のログ編集部６２１は、まず、現在読み込まれている定義に電文ログ内の項目の名称が登録されており、かつ通知先利用者番号が未定値であるか否かを判定する（ステップＳ４３０６１）。現在読み込まれている定義は「注文ＩＤ＝注文ＩＤ」という第３の定義Ｄ３であり、該定義における右辺の「注文ＩＤ」が電文ログ内の項目の名称である。また、現在行っている下り電文処理において、第２のログ編集部６２１は、ステップＳ４２で通信先バッファ６９４内の通知先利用者番号を格納する領域を初期化した後、該領域に通知先利用者番号を格納していない。このため、ステップＳ４３０６１の判定を行った時点では、図１３Ｂのように、通信先バッファ６９４内の通知先利用者番号は未定値である。よって、第２のログ編集部６２１は、次に、下り電文１２内の取引結果を通知する端末装置５を示す利用者番号が含まれるログを電文ログ６９２内で探索する探索処理（ステップＳ４３０６２〜Ｓ４３０６６）を行う。
【０１１７】
探索処理（ステップＳ４３０６２〜Ｓ４３０６６）において、第２のログ編集部６２１は、まず、電文ログ６９２から１つの電文に対するログを読み込む（ステップＳ４３０６２）。このとき、第２のログ編集部６２１は、例えば、図１３Ｃのように、まず、電文ログ６９２における最上位の行に格納された第１のログＬ１を読み込む。
【０１１８】
１つの電文に対するログを読み込んだ後、第２のログ編集部６２１は、名称が現在読み込まれている定義における電文ログ内の項目の名称であり、かつ値が下り電文１２から取り出した項目の値である項目をログ内で探索する処理（ステップＳ４３０６３〜Ｓ４３０６５）を行う。図１３Ｃに示したように、現在読み出されている定義における電文ログ内の項目の名称は「注文ＩＤ」であり、下り電文１２から取り出した項目の値は「P1_001」である。このため、第２のログ編集部６２１は、電文ログ６９２から読み込んだ第１のログＬ１内で「注文ＩＤ＝P1_001」という項目を探索する。図１３Ｃに示したように、第１のログＬ１には「注文ＩＤ＝P1_001」という項目が含まれる。このため、第２のログ編集部６２１は、ステップＳ４３０６３の処理において第１のログＬ１内の「注文ＩＤ＝P1_001」という項目を取り出したときに、項目の名称及び値が一致する（ステップＳ４３０６４；ＹＥＳ）と判定し、ログ探索処理を終了する。名称が電文ログ内の項目の名称と一致し、かつ値が下り電文の項目の値と一致する項目を含むログが電文ログ６９２に存在したことによりログ探索処理を終了した場合、第２のログ編集部６２１は、次に、ログ内の名称が利用者番号である項目の名称及び値を取り出して編集用バッファ６９３に追加する（ステップＳ４３０６７）。更に、第２のログ編集部６２１は、通知先利用者番号をログから取り出した利用者番号の値にする（ステップＳ４３０６８）。図１３Ｃに示すように、「注文ＩＤ＝P1_001」という項目を含む第１のログＬ１における利用者番号に関する項目は、「利用者番号＝１」という項目である。このため、第２のログ編集部６２１は、第１のログＬ１から「利用者番号＝１」という項目の名称及び値を取り出し、編集用バッファ６９３に追加する。また、第２のログ編集部６２１は、第１のログＬ１から取り出した利用者番号の値（「１」）を、通知先利用者番号として通知先バッファ６９４に格納する。
【０１１９】
ステップＳ４３０６７及びＳ４３０６８の処理を終えると、第２のログ編集部６２１は、利用者番号特定処理を終了し、図１０のように、次に、マッチング定義６９１内の全ての定義を読み込んだか否かを判定する（ステップＳ４３０７）。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、４回目のステップＳ４３０１の処理を行う。４回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、図１３Ｄのように、マッチング定義６９１における上から４行目に登録された第４の定義Ｄ４（「約定ＩＤ＝」）を読み出す。
【０１２０】
次に、第１のログ編集部６１２は、名称が「約定ＩＤ」である項目を下り電文１２内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。図１３Ｄに示したように、下り電文１２は、先頭から３番目に位置する第３の項目１２０３の名称が「約定ＩＤ」となっている。このため、第２のログ編集部６２１は、ステップＳ４３０２において第３の項目１２０３を取り出したときに、項目の名称が一致する（ステップＳ４３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第２のログ編集部６２１は、第３の項目１２０３の名称及び値（「約定ＩＤ＝E001」）を編集用バッファ６９３に格納する（ステップＳ４３０５）。
【０１２１】
ステップＳ４３０５の処理を終えると、下り電文処理部６２０の第２のログ編集部６２１は、次に、利用者番号特定処理（ステップＳ４３０６）を行う。しかしながら、現在マッチング定義６９１から読み込まれている定義は「約定ＩＤ＝」という、電文ログ内の項目の名称が登録されていない定義である。しかも、通知先バッファ６９４には通知先利用者番号を示す値（「１」）が格納されている。このため、第２のログ編集部６２１は、図１１の利用者番号特定処理におけるステップＳ４３０６２以降の処理を省略し、利用者番号特定処理を終了する。利用者番号特定処理を終了すると、第２のログ編集部６２１は、次に、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、５回目のステップＳ４３０１の処理を行う。５回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、マッチング定義６９１における上から５行目に登録された第５の定義Ｄ５（「元約定ＩＤ＝約定ＩＤ」）を読み込む。
【０１２２】
次に、第１のログ編集部６１２は、名称が「元約定ＩＤ」である項目を下り電文１２内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、図１３Ｄに示したように、名称が「元約定ＩＤ」である項目は下り電文１２内に存在しない。このため、第２のログ編集部６２１は、下り電文１２の第１の項目１２０１から第７の項目１２０７までの全ての項目の名称が「元約定ＩＤ」とは一致しない（ステップＳ４３０３；ＮＯ）と判定し、探索処理を終了する。
【０１２３】
探索処理を終了した後、第２のログ編集部６２１は、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内の定義は全て読み込まれている（ステップＳ４３０７；ＹＥＳ）。このため、第２のログ編集部６２１は、ステップＳ４３０１〜Ｓ４３０７のループ処理を終了し、次に、通知先利用者番号が未定値であるか否かを判定する（ステップＳ４３０８）。
【０１２４】
第２のログ編集部６２１は、上記のように、マッチング定義６９１から第３の定義Ｄ３（「注文ＩＤ」＝「注文ＩＤ」）を読み込んだときに行った利用者番号特定処理（ステップＳ４３０６）において、通知先バッファ６９４に通知先利用者番号を示す値（「１」）を格納している。すなわち、第２のログ編集部６２１がステップＳ４３０１〜Ｓ４３０７のループ処理を終えた時点で、通知先利用者番号は未定値ではなくなっている。従って、第２のログ編集部６２１は、通知先利用者番号が未定値ではない（ステップＳ４３０８；ＮＯ）と判定し、ステップＳ４３０９を省略して下り電文ログ編集処理を終了する。
【０１２５】
下り電文ログ編集処理を終了した後、第２のログ編集部６２１は、図１３Ｅに示すように、編集用バッファ６９３で保持しているデータ（項目の名称及び値の組）Ｌを読み出し、下り電文１２についてのログＬｎとして電文ログ６９２に格納する（ステップＳ４４）。
【０１２６】
上記の手順で下り電文１２についてのログＬｎを電文ログ６９２に格納した後、下り電文処理部６２０は、通知データ作成部６２２において端末装置５に送信する通知データを作成する。通知データ作成部６２２は、図３の（ｂ）に示したように、下り電文１２内の第３の項目１２０３（「約定ＩＤ＝E001」）、第４の項目１２０４（「注文ＩＤ＝P1_001」）、第５の項目１２０５（「銘柄＝6702」）、第６の項目１２０６（「数量＝1000」）、及び第７の項目１２０７（「金額＝1500」）を抽出して通知データ１３を作成する。通知データ１３を作成した後、下り電文処理部６２０は、データ送受信部６３０と連携し、作成した通知データ１３を、通知先バッファ６９４に格納された通知先利用者番号により特定される端末装置５に送信する。
【０１２７】
このように、本実施形態に係るサーバ装置６は、電文から取り出した項目の名称及び値を格納した電文ログ６９２と、電文内の項目の名称と電文ログ内の項目の名称との対応関係が定義されたマッチング定義６９１とに基づいて、下り電文１２に含まれる取引結果を通知する端末装置５を示す値（通知先利用者番号）を特定する。すなわち、サーバ装置６が参照する静的な定義（マッチング定義６９１）には、端末装置５の数、売買システム４の数、及び取扱い銘柄の種類等が変更された場合にも不変な、電文内で使用する項目の名称のみが登録されている。従って、本実施形態に係るサーバ装置６は、端末装置５の数、売買システム４の数、及び取扱い銘柄の種類等を変更する際にマッチング定義６９１を変更する必要がない。すなわち、本実施形態に係る取引システム１によれば、データの送信先の特定に利用する静的な定義を変更する作業の頻度を低減することが可能となる。よって、本実施形態の取引システム１では、静的な定義を変更する作業により生じる動作停止期間を低減することが可能となり、利用者システム３を利用して取引を行う利用者に対する利便性が向上する。
【０１２８】
なお、本実施形態に係るサーバ装置６の下り電文処理部６２０における第２のログ編集部６２１は、サーバ装置６が下り電文１２を受信する毎に、都度上記の処理を行い、下り電文１２の識別に利用可能な項目の名称及び値と、下り電文１２と対応する発注依頼を送信した端末装置５の特定に利用可能な項目の名称（利用者番号）及び値とを含むログを電文ログ６９２に格納する。更に、ログ編集部１２は、下り電文１２と対応する発注依頼を送信した端末装置５の特定に利用可能な利用者番号の値を、通知先利用者番号として通知用バッファ６９４に格納する。
【０１２９】
ところで、本実施形態に係る取引システム１における売買システム４は、１つの上り電文１１に対する下り電文を複数回作成し、サーバ装置６に送信することがある。例えば、売買システム４は、１つの上り電文１１に応じた売買取引を行い図３の（ｂ）のような下り電文１２を送信した後、該上り電文１１に応じた売買取引に対する新たな取引結果を通知する下り電文を作成して送信することがある。この場合、新たな取引結果を通知する下り電文は、注文ＩＤの項目を含まないこともある。そこで、次に、図１４Ａ〜図１４Ｆを参照し、１つの上り電文１１に対する２通目以降の下り電文をサーバ装置６が受信したときに下り電文処理部６２０の第２のログ編集部６２１が行う処理を具体的に説明する。なお、ここで例示する処理は、図１３Ｅに示した下り電文１２に対する下り電文処理が終了した後で、新たな下り電文を受信したときに第２のログ編集部６２１が図４のマッチング定義６９１を参照して行う処理とする。
【０１３０】
図１４Ａは、第２のログ編集部が行う処理の別の具体例を説明する図（その１）である。図１４Ｂは、第２のログ編集部が行う処理の別の具体例を説明する図（その２）である。図１４Ｃは、第２のログ編集部が行う処理の別の具体例を説明する図（その３）である。図１４Ｄは、第２のログ編集部が行う処理の別の具体例を説明する図（その４）である。図１４Ｅは、第２のログ編集部が行う処理の別の具体例を説明する図（その５）である。図１４Ｆは、第２のログ編集部が行う処理の別の具体例を説明する図（その６）である。
【０１３１】
図１４Ａに示した下り電文１５は、図１３Ａの下り電文１２を作成してサーバ装置６に送信した売買システム４が、注文ＩＤ＝P1_001の注文に対する新たな取引結果を通知するためにサーバ装置６に送信した下り電文の一例である。図１４Ａに示したように、１つの注文（上り電文１１）に対する２通目以降の下り電文１５は、「約定ＩＤ」という名称の項目と、「元約定ＩＤ」という名称の項目を含む。下り電文１５における約定ＩＤの値は、新たな取引結果（約定）に対して売買システム４が採番した値である。また、下り電文１５における元約定ＩＤの値は、下り電文１５よりも前にサーバ装置６に送信した同一の注文（上り電文１１）に対する取引結果に対して売買システム４が採番した値（すなわち下り電文１２における約定ＩＤの値）である。更に、下り電文１５は、該下り電文１５と対応する上り電文１１の特定に利用可能な注文ＩＤの項目が存在しない。このような下り電文１５を受信した場合、下り電文処理部６２０の第２のログ編集部６２１は、以下に説明するように、下り電文１５と同一の注文に対する下り電文１２についてのログＬｎに含まれる利用者番号の値に基づいて、下り電文１５内の取引結果を通知する端末装置５を特定する。
【０１３２】
サーバ装置６が下り電文１５を受信すると、第２のログ編集部６２１は、下り電文１５についてのログを編集する下り電文ログ編集処理（図９のステップＳ４３）、及び編集したログを電文ログ６９２に格納する処理（図９のステップＳ４４）を行う。
【０１３３】
第２のログ編集部６２１は、下り電文ログ編集処理として、図１０のフローチャートに沿った処理を行う。下り電文ログ編集処理において、第２のログ編集部６２１は、まず、マッチング定義６９１内の定義を１つ読み込む（ステップＳ４３０１）。このとき、第２のログ編集部６２１は、例えば、図１４Ａのように、まず、マッチング定義６９１における最上位の行に登録された第１の定義Ｄ１（「送信電文通番＝」）を読み込む。
【０１３４】
次に、第２のログ編集部６２１は、名称がマッチング定義６９１から読み込んだ定義における名称「送信電文通番」と一致する項目を下り電文１５内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、図１４Ａに示したように、名称が「送信電文通番」である項目は下り電文１５内に存在しない。このため、第２のログ編集部６２１は、下り電文１５の第１の項目１５０１から第７の項目１５０７までの全ての項目の名称が「送信電文通番」とは一致しないと判定し、探索処理（ステップＳ４３０２〜Ｓ４３０４）を終了する。探索処理を終了した後、第２のログ編集部６２１は、項目の名称及び値を編集用バッファ６９３に追加する処理（ステップＳ４３０５）及び利用者番号特定処理（ステップＳ４３０６）を行わずに、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、２回目のステップＳ４３０１の処理を行う。２回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、マッチング定義６９１における上から２行目に登録された第２の定義Ｄ２（「関連電文通番＝送信電文通番」）を読み込む。
【０１３５】
次に、第２のログ編集部６２１は、名称が「関連電文通番」である項目を下り電文１５内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、名称が「関連電文通番」である項目は下り電文１５内に存在しない。このため、第２のログ編集部６２１は、下り電文１５内の第１の項目１５０１から第７の項目１５０７までの全ての項目の名称が「関連電文通番」ではないと判定した後、探索処理を終了する。
【０１３６】
探索処理を終了した後、第２のログ編集部６２１は、ステップＳ４３０５及びＳ４３０６を行わずにステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、３回目のステップＳ４３０１の処理を行う。３回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、図１４Ｂのように、マッチング定義６９１における上から３行目に登録された第３の定義Ｄ３（「注文ＩＤ＝注文ＩＤ」）を読み込む。
【０１３７】
次に、第２のログ編集部６２１は、名称が「注文ＩＤ」である項目を下り電文１５内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。しかしながら、図１４Ｂに示したように、下り電文１５には名称が「注文ＩＤ」である項目が存在しない。このため、第２のログ編集部６２１は、下り電文１５の第１の項目１２０１から第７の項目１２０７までの全ての項目の名称が「注文ＩＤ」とは一致しないと判定した後、探索処理（ステップＳ４３０２〜Ｓ４３０４）を終了する。
【０１３８】
探索処理を終了した後、第２のログ編集部６２１は、ステップＳ４３０５及びＳ４３０６の処理を行わずに、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、４回目のステップＳ４３０１の処理を行う。４回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、図１４Ｃのように、マッチング定義６９１における上から４行目に登録された第４の定義Ｄ４（「約定ＩＤ＝」）を読み込む。
【０１３９】
次に、第２のログ編集部６２１は、名称が「約定ＩＤ」である項目を下り電文１５内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。図１４Ｃに示したように、下り電文１５は、先頭から３番目に位置する第３の項目１５０３の名称が「約定ＩＤ」となっている。このため、第２のログ編集部６２１は、ステップＳ４３０２において第３の項目１５０３を取り出したときに、項目の名称が一致する（ステップＳ４３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第２のログ編集部６２１は、第３の項目１５０３の名称及び値（「約定ＩＤ＝E002」）を編集用バッファ６９３に格納する（ステップＳ４３０５）。
【０１４０】
ステップＳ４３０５の処理を終えると、第２のログ編集部６２１は、次に、利用者番号特定処理（ステップＳ４３０６）を行う。しかしながら、図１４Ｃのように、第２のログ編集部６２１が読み込んでいる定義は、電文ログ内の項目の名称が登録されていない第４の定義Ｄ４（「約定ＩＤ＝」）である。従って、第２のログ編集部６２１は、図１１のフローチャートにおけるステップＳ４３０６２以降の処理を行わずに利用者特定処理を終了する。利用者番号特定処理を終了した後、第２のログ編集部６２１は、ステップＳ４３０７の判定を行う。このとき、マッチング定義６９１内にはまだ読み込んでいない定義が残っている（ステップＳ４３０７；ＮＯ）。このため、第２のログ編集部６２１は、５回目のステップＳ４３０１の処理を行う。５回目のステップＳ４３０１の処理では、第２のログ編集部６２１は、例えば、図１４Ｄのようにマッチング定義６９１における上から５行目に登録された第５の定義Ｄ５（「元約定ＩＤ＝約定ＩＤ」）を読み込む。
【０１４１】
次に、第２のログ編集部６２１は、名称が「元約定ＩＤ」である項目を下り電文１５内で探索する探索処理（ステップＳ４３０２〜Ｓ４３０４）を行う。図１４Ｄに示したように、下り電文１５は、先頭から４番目に位置する第４の項目１５０４の名称が「元約定ＩＤ」となっている。このため、第２のログ編集部６２１は、ステップＳ４３０２において第４の項目１５０４を取り出したときに、項目の名称が一致する（ステップＳ４３０３；ＹＥＳ）と判定し、探索処理を終了する。探索処理を終了した後、第２のログ編集部６２１は、第４の項目１５０４の名称及び値（「元約定ＩＤ＝E001」）を編集用バッファ６９３に格納する（ステップＳ４３０５）。
【０１４２】
ステップＳ４３０５の処理を終えると、第２のログ編集部６２１は、次に、利用者番号特定処理（ステップＳ４３０６）を行う。このとき、図１４Ｄのように、第２のログ編集部６２１が読み込んでいる定義は電文ログ内の項目の名称が登録された第５の定義Ｄ５（「元約定ＩＤ＝約定ＩＤ」）であり、通知先バッファ６９４の通知先利用者番号は未定値である。従って、利用者番号特定処理を開始した第２のログ編集部６２１は、次に、下り電文１５内の取引結果を通知する端末装置５を示す利用者番号が含まれるログを電文ログ６９２内で探索する探索処理（ステップＳ４３０６２〜Ｓ４３０６６）を行う。
【０１４３】
該探索処理では、第２のログ編集部６２１は、上記のように、名称が現在読み込んでいる定義における電文ログ内の項目の名称であり、かつ値が下り電文１５から取り出した項目の値である項目（すなわち「約定ＩＤ＝E001」という項目）を含むログを電文ログ６９２で探索する。図１４Ｅに示すように、電文ログ６９２には「約定ＩＤ＝E001」という項目を含むログＬｎが格納されている。従って、第２のログ編集部６２１は、ステップＳ４３０６３でログＬｎ内の「約定ＩＤ＝E001」という項目を取り出したときに、項目の名称及び値が一致する（ステップＳ４３０６４；ＹＥＳ）と判定し、探索処理を終了する。
【０１４４】
探索処理を終了すると、第２のログ編集部６２１は、次に、ステップＳ４３０６７及びＳ４３０６８の処理を行う。すなわち、第２のログ編集部６２１は、図１４Ｅのように、「約定ＩＤ＝E001」という項目を含むログＬｎから「利用者番号＝１」という項目の名称及び値を取り出し、編集用バッファ６９３に格納する。更に、第２のログ編集部６２１は、ログＬｎから取り出した利用者番号の値（「１」）を通知先利用者番号の値として通知先バッファ６９４に格納する。
【０１４５】
ステップＳ４３０６７及びＳ４３０６８の処理を終えると、第２のログ編集部６２１は、利用者番号特定処理を終了し、ステップＳ４３０７の判定を行う。このとき、第２のログ編集部６２１は、マッチング定義６９１内の定義を全て読み込んでいる（ステップＳ４３０７；ＹＥＳ）。このため、第２のログ編集部６２１は、ループ処理（ステップＳ４３０１〜Ｓ４３０７）を終了し、次に、通知先利用者番号が未定値であるか否かを判定する（ステップＳ４３０８）。図１４Ｅに示したように、通知先バッファ６９４には、通知先利用者番号を示す値（「１」）が格納されている（ステップＳ４３０８；ＮＯ）。このため、第２のログ編集部６２１は、ステップＳ４３０９の処理を行わずに下り電文ログ編集処理を終了する。
【０１４６】
下り電文ログ編集処理を終了した後、第２のログ編集部６２１は、図１４Ｆに示すように、編集用バッファ６９３で保持しているデータ（項目の名称及び値の組）Ｌを読み出し、下り電文１５に対するログＬｍとして電文ログ６９２に格納する（ステップＳ４４）。
【０１４７】
上記の手順で下り電文１５に対するログＬｍを電文ログ６９２に格納した後、下り電文処理部６２０は、通知データ作成部６２１において端末装置５に送信する通知データを作成する。通知データ作成部６２１は、下り電文１５内の第３の項目１５０３（「約定ＩＤ＝E002」）、第４の項目１５０４（「元約定ＩＤ＝E001」）、第５の項目１５０５（「銘柄＝6702」）、第６の項目１５０６（「数量＝800」）、及び第７の項目１５０７（「金額＝1500」）を抽出して通知データを作成する。通知データを作成した後、下り電文処理部６２０は、データ送受信部６３０と連携し、作成した通知データを、通知先バッファ６９４に格納された通知先利用者番号により特定される端末装置５に送信する。
【０１４８】
このように、マッチング定義６９１には、電文内の項目の名称と電文ログ内の項目の名称との対応関係（定義）として、同一の上り電文に対する下り電文の特定に利用可能な名称の対応関係を登録することが可能である。このため、本実施形態に係るサーバ装置６では、下り電文内に、該下り電文と対応する上り電文の特定に利用可能な項目（例えば注文ＩＤ等）が存在しない場合にも、電文ログ６９２内に格納されたログに基づいて、下り電文の取引結果を通知する端末装置５を特定することが可能である。従って、本実施形態に係るサーバ装置６によれば、売買システム４が１つの上り電文に対し２通以上の下り電文を作成して送信する場合にも、各下り電文の通知先を正しく特定することが可能となる。
【０１４９】
なお、図３の（ａ）等に示した上り電文１１及び図３の（ｂ）等に示した下り電文１２は、それぞれ、上り電文１１及び下り電文１２の一例に過ぎない。上り電文１１及び下り電文１２に含まれる項目及び各項目の並び順は、取引システム１において適用する電文の様式に応じて適宜変更可能である。また、上り電文１１及び下り電文１２は、それぞれ、項目の名称が略称、或いは数値等のコードであってもよい。項目の名称にコードを利用した電文を送受信する場合、例えば、図５のマッチング定義６９１における各項目の名称は、それぞれ、電文内で使用するコードとする。同様に、項目の名称にコードを利用した電文を送受信する場合、例えば、図６の電文ログ６９２における各項目の名称は、それぞれ、電文内で使用するコードとする。
【０１５０】
また、マッチング定義６９１に登録する定義は、図５に示した５個の定義に限らず、適宜変更可能である。
【０１５１】
また、図８のフローチャートは、本実施形態に係るサーバ装置６が行う上り電文ログ編集処理の一例に過ぎない。本実施形態に係るサーバ装置６が行う上り電文ログ編集処理は、本実施形態の要旨を逸脱しない範囲において、適宜変更可能である。
【０１５２】
また、図１０及び図１１のフローチャートは、本実施形態に係るサーバ装置６が行う下り電文ログ編集処理及び利用者番号特定処理の一例に過ぎない。本実施形態に係るサーバ装置６が行う下り電文ログ編集処理は、本実施形態の要旨を逸脱しない範囲において、適宜変更可能である。同様に、本実施形態に係るサーバ装置６が行う利用者番号特定処理は、本実施形態の要旨を逸脱しない範囲において、適宜変更可能である。
【０１５３】
更に、本実施形態に係るサーバ装置６は、証券の取引（売買）を行う取引システム１に限らず、第１の装置から第２の装置への要求と該要求に対する第２の装置から第１の装置への応答を中継する中継装置として、各種の通信システムに適用可能である。
【０１５４】
加えて、本実施形態に係るサーバ装置６における上記の各機能は、例えば、コンピュータと、上記の上り電文処理及び下り電文処理をコンピュータに実行させるプログラムとにより実現可能である。以下、図１５を参照し、コンピュータとプログラムとにより実現されるサーバ装置６について説明する。
【０１５５】
図１５は、サーバ装置のハードウェア構成図である。
【０１５６】
図１５に示すように、サーバ装置６として利用可能なコンピュータは、ＣＰＵ（Central Processing Unit）２００１と、ＲＯＭ（Read Only Memory）２００２と、ＲＡＭ（Random Access Memory）２００３と、ＨＤＤ（Hard Disk Drive）２００４と、入力インタフェース２００５と、グラフィック処理装置２００６と、通信インタフェース２００７とを備える。サーバ装置６におけるこれらの要素２００１〜２００７は、バス２０１０により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
【０１５７】
ＣＰＵ ２００１は、オペレーティングシステムを含む各種のプログラムを実行することによりサーバ装置６（コンピュータ）の全体の動作を制御する。例えば、ＣＰＵ ２００１は、図７及び図８を参照して説明した上り電文処理と、図９〜図１１を参照して説明した下り電文処理とを含むデータ送受信プログラムを実行する。
【０１５８】
ＲＯＭ ２００２には、例えば、コンピュータ２０の起動時にＣＰＵ ２００１が読み出す所定の基本制御プログラム等が予め記録されている。また、ＲＡＭ ２００３は、ＣＰＵ ２００１が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。ＲＡＭ ２００３は、例えば、発注依頼１０、上り電文１１、下り電文１２、通知データ１３、マッチング定義６９１、及び電文ログ６９２等の記憶に利用可能である。また、ＲＡＭ ２００３は、上り電文ログ編集処理において上り電文１１から取り出した項目の名称及び値、下り電文ログ編集処理において下り電文１２及び１５から取り出した項目の名称及び値、通知先利用者番号等の記憶に利用可能である。
【０１５９】
ＨＤＤ ２００４は、補助記憶装置の１つであり、ＣＰＵ ２００１によって実行される各種のプログラムや各種のデータ等を記憶させることができる。ＨＤＤ ２００４は、例えば、図７及び図８を参照して説明した上り電文処理と図９〜図１１を参照して説明した下り電文処理とを含むデータ送受信プログラム等の記憶に利用可能である。また、ＨＤＤ ２００４は、例えば、マッチング定義６９１及び電文ログ６９２等の記憶に利用可能である。
【０１６０】
入力インタフェース２００５は、キーボード装置２１及びマウス装置２２等の入力装置からの各種情報の入力を受け付ける。キーボード装置２１等の入力装置は、例えば、マッチング定義６９１の編集等に利用可能である。
【０１６１】
グラフィック処理装置２００６は、表示装置２３の画面表示に関する各種処理を行う。
【０１６２】
通信インタフェース２００７は、端末装置５との通信、及び通信ネットワーク２を介した売買システム４との通信を行う。
【０１６３】
図１５のサーバ装置６（コンピュータ）は、ＣＰＵ ２００１がＨＤＤ ２００４に記憶させた図７及び図８を参照して説明した上り電文処理と図９〜図１１を参照して説明した下り電文処理とを含むデータ送受信プログラムを読み込み実行することにより、上述したサーバ装置６として動作する。データ送受信プログラムを実行している間、ＣＰＵ ２００１は、図４のサーバ装置６における上り電文処理部６１０及び下り電文処理部６２０として機能する（動作する）。また、データ送受信プログラムを実行している間、通信インタフェース２００７は、図４のサーバ装置６におけるデータ送受信部６３０及び電文送受信部６４０として機能する（動作する）。更に、データ送受信プログラムを実行している間、ＲＡＭ ２００３及びＨＤＤ ２００４は、図４のサーバ装置６における記憶部６９０として機能する（動作する）。
【０１６４】
なお、サーバ装置６（コンピュータ）は、図１５に示した要素２００１〜２００７に限らず、他の要素を含むものであってもよい。例えば、サーバ装置６は、可搬型記憶媒体に記録されているプログラムやデータの読み出し、ＨＤＤ ２００４等に記憶されたデータ等の可搬型記憶媒体への書き込みを行う媒体駆動装置を含んでもよい。可搬型記憶媒体としては、例えば、Secure  Digital（ＳＤ）規格のメモリカード（フラッシュメモリ）がある。可搬型記録媒体は、上記のデータ送受信プログラム、マッチング定義６９１、及び電文ログ６９２等の記憶に利用可能である。また、サーバ装置６が媒体駆動装置として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体として利用可能である。可搬型記録媒体として利用可能な光ディスクには、例えば、Compact Disc（ＣＤ）、Digital Versatile Disc（ＤＶＤ）、Blu-ray Disc（Blu-rayは登録商標）等がある。
【符号の説明】
【０１６５】
１  取引システム
２  通信ネットワーク
３，３Ａ，３Ｂ  利用者システム
４，４Ａ，４Ｂ  売買システム
５，５Ａ，５Ｂ  端末装置
６  サーバ装置
６１０  上り電文処理部
６１１  電文作成部
６１２  第１のログ編集部
６２０  下り電文処理部
６２１  第２のログ編集部
６２２  通知データ作成部
６３０  データ送受信部
６４０  電文送受信部
６９０  記憶部
６９１  マッチング定義
６９２  電文ログ
６９３  編集用バッファ
６９４  通知先バッファ
１０  発注依頼
１１  上り電文
１２，１５  下り電文
１３  通知データ
２００１  ＣＰＵ
２００２  ＲＯＭ
２００３  ＲＡＭ
２００４  ＨＤＤ
２００５  入力インタフェース
２００６  グラフィック処理装置
２００７  通信インタフェース
２０１０  バス
２１  キーボード装置
２２  マウス装置
２３  表示装置
【図１】
2020009244.tif 000003
【図２】
2020009244.tif 000004
【図３】
2020009244.tif 000005
【図４】
2020009244.tif 000006
【図５】
2020009244.tif 000007
【図６】
2020009244.tif 000008
【図７】
2020009244.tif 000009
【図８】
2020009244.tif 000010
【図９】
2020009244.tif 000011
【図１０】
2020009244.tif 000012
【図１１】
2020009244.tif 000013
【図１２Ａ】
2020009244.tif 000014
【図１２Ｂ】
2020009244.tif 000015
【図１２Ｃ】
2020009244.tif 000016
【図１２Ｄ】
2020009244.tif 000017
【図１２Ｅ】
2020009244.tif 000018
【図１２Ｆ】
2020009244.tif 000019
【図１３Ａ】
2020009244.tif 000020
【図１３Ｂ】
2020009244.tif 000021
【図１３Ｃ】
2020009244.tif 000022
【図１３Ｄ】
2020009244.tif 000023
【図１３Ｅ】
2020009244.tif 000024
【図１４Ａ】
2020009244.tif 000025
【図１４Ｂ】
2020009244.tif 000026
【図１４Ｃ】
2020009244.tif 000027
【図１４Ｄ】
2020009244.tif 000028
【図１４Ｅ】
2020009244.tif 000029
【図１４Ｆ】
2020009244.tif 000030
【図１５】
2020009244.tif 000031