(57)【要約】【課題】システムの拡張性や高速性を向上させることができるデータ配信システムを提供すること。【解決手段】データ配信システム１であって、証券データと事前処理データとの相互の対応関係をデータ種別毎に特定するための事前処理テンプレートを格納する事前処理ＴＰＤＢ１３と、事前処理データと配信データとの相互の対応関係をデータ種別毎に特定するための配信テンプレートを格納する配信ＴＰＤＢ２３と、証券データのデータ種別に応じた事前処理テンプレートを参照することにより、証券データから事前処理データを生成する事前処理データ生成部１５ｂと、事前処理データのデータ種別に応じた配信テンプレートを参照することにより、事前処理データから配信データを生成する配信データ生成部２６ｂとを備える。【選択図】図１
2008276402.tif 000002
【特許請求の範囲】
【請求項１】
データの提供元の提供元装置とデータの配信先の配信先装置とにネットワークを介して接続されるもので、前記提供元装置から送信された各種の原データに基づいて作成された配信データを前記配信先装置に向けて配信するデータ配信システムであって、
前記原データに含まれる情報の中で前記事前処理データに含めるべき情報を、少なくともデータ種別に応じて特定するための第１定義情報を格納する第１定義情報格納手段と、
前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を、データ種別及び前記配信先装置に応じて特定するための第２定義情報を格納する第２定義情報格納手段と、
前記提供元装置から前記原データを受信するデータ受信手段と、
前記データ受信手段にて受信された前記原データのデータ種別を特定し、当該特定したデータ種別に応じた第１定義情報を前記第１定義情報格納手段から取得して参照し、前記事前処理データに含めるべき情報を前記原データから取得することによって、当該特定したデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成手段と、
前記事前処理データ生成手段にて生成された前記事前処理データのデータ種別を特定すると共に、配信データを配信すべき前記配信先装置を特定し、当該データ種別及び当該配信先装置に応じた第２定義情報を前記第２定義情報格納手段から取得して参照し、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を取得することによって、当該特定したデータ種別及び当該特定した配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成手段と、
前記配信データ生成手段にて生成された前記配信データを、前記配信先装置に送信するデータ送信手段と、
を備えることを特徴とするデータ配信システム。
【請求項２】
前記第１定義情報は、前記事前処理データに含めるべき情報を特定するための情報と、当該情報を一意に特定するための識別情報とを相互に関連付けて構成され、
前記第２定義情報は、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を特定するための情報と、前記識別情報とを相互に関連付けて構成され、
前記事前処理データ生成手段は、前記第１定義情報格納手段から取得した前記第１定義情報の中の前記識別情報を参照することにより、前記原データから取得した情報と前記識別情報とを相互に関連付けて事前処理データを生成し、
前記配信データ生成手段は、前記事前処理データ生成手段にて生成された前記事前処理データの前記識別情報と、前記第２定義情報格納手段から取得した前記第２定義情報の識別情報とに基づいて、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を取得すること、
を特徴とする請求項１に記載のデータ配信システム。
【請求項３】
前記原データに含まれる情報の少なくとも位置と前記識別情報との相互の対応関係を特定する識別対応情報を格納する識別対応情報格納手段を備え、
前記事前処理データ生成手段は、前記第１定義情報格納手段から取得した前記第１定義情報の中の前記識別情報を参照し、当該識別情報に対応する情報の位置を前記識別対応情報格納手段の識別対応情報を参照して特定し、当該特定した位置に基づいて前記原データから情報を取得すること、
を特徴とする請求項２に記載のデータ配信システム。
【請求項４】
前記第２定義情報は、前記事前処理データに含まれる情報を前記配信データに含めるべきか否かを識別するための識別子を、前記識別情報に対応する位置に格納して構成され、
前記配信データ生成手段は、前記第２定義情報に含まれる前記識別子を前記識別情報の所定の先頭値から所定の最後値に至るまで順次参照し、該識別子が前記配信データに含めるべき情報であることを示す場合に該識別子の位置に対応する識別情報を特定することにより、前記配信データに含めるべき情報を前記事前処理データの中から抽出すること、
を特徴とする請求項２又は３に記載のデータ配信システム。
【請求項５】
前記第２定義情報は、前記事前処理データに含まれる情報を前記配信データに含めるべきか否かを識別するための識別子を、前記識別情報に対応する位置に格納して構成され、
前記配信データ生成手段は、前記事前処理データに含まれる識別情報を順次参照し、該識別情報に基づいて前記第２定義情報における当該識別情報に対応する位置を特定し、当該特定した位置の識別子が前記配信データに含めるべき情報であることを示す場合に、前記配信データに含めるべき情報を前記事前処理データの中から抽出すること、
を特徴とする請求項２又は３に記載のデータ配信システム。
【請求項６】
前記第２定義情報は、前記事前処理データに含まれる情報を前記配信データに含めるべきか否かを識別するための識別子を、前記識別情報に対応する位置に格納して構成され、
前記データ受信手段が、当該データ配信システムの起動後における最初の前記原データを受信する場合、
前記データ受信手段は、前記原データに含まれるべき情報の全てを含んだデータを前記原データとして受信し、
前記配信データ生成手段は、前記第２定義情報に含まれる前記識別子を前記識別情報の所定の先頭値から所定の最後値に至るまで順次参照し、該識別子が前記配信データに含めるべき情報であることを示す場合に該識別子の位置に対応する識別情報を特定することにより、前記配信データに含めるべき情報を前記事前処理データの中から抽出し、
前記データ受信手段が、前記最初の前記原データの受信以降に、前記原データを受信する場合において、
前記データ受信手段は、前記原データに含まれるべき情報の少なくとも一部を含んだデータを前記原データとして受信し、
前記配信データ生成手段は、前記事前処理データに含まれる識別情報を順次参照し、当該識別情報に基づいて前記第２定義情報における当該識別情報に対応する位置を特定し、当該特定した位置の識別子が前記配信データに含めるべき情報であることを示す場合に、前記配信データに含めるべき情報を前記事前処理データの中から抽出すること、
を特徴とする請求項２又は３に記載のデータ配信システム。
【請求項７】
前記第１定義情報は、前記配信データに含めるべき付加情報を含み、
前記事前処理データ生成手段は、前記取得した前記第１定義情報に前記付加情報が含まれる場合には、該付加情報を取得して前記事前処理データに含めること、
を特徴とする請求項１から６のいずれか一項に記載のデータ配信システム。
【請求項８】
前記配信データに含めるべき付加情報を格納する付加情報格納手段を備え、
前記第１定義情報は、前記付加情報を特定するための付加特定情報を含み、
前記事前処理データ生成手段は、前記取得した前記第１定義情報に前記付加特定情報が含まれる場合には、当該付加特定情報に基づいて前記付加情報格納手段を参照することにより、当該付加特定情報に対応する付加情報を取得して前記事前処理データに含めること、
を特徴とする請求項１から６のいずれか一項に記載のデータ配信システム。
【請求項９】
前記配信データに含めるべき付加情報を格納する付加情報格納手段と、
前記識別情報と前記付加情報を特定するための付加特定情報とを相互に関連付けて格納する識別付加対応格納手段とを備え、
前記配信データ生成手段は、前記配信データに含めるべき情報について識別情報に対応する付加特定情報を前記識別付加対応格納手段から取得し、当該取得した付加特定情報に基づいて前記付加情報格納手段を参照することにより、当該付加特定情報に対応する付加情報を取得して前記配信データに含めること、
を特徴とする請求項２から６のいずれか一項に記載のデータ配信システム。
【請求項１０】
前記付加情報は、予め特定された予納情報であり、
前記付加特定情報は、前記予納情報の格納位置を示す予納特定情報であり、
前記事前処理データ生成手段又は前記配信データ生成手段は、前記付加特定情報として前記予納特定情報を取得した場合には、当該予納特定情報にて特定される格納位置から前記予納情報を取得すること、
を特徴とする請求項８又は９に記載のデータ配信システム。
【請求項１１】
前記付加情報は、所定の演算処理にて取得可能な演算情報であり、
前記付加情報格納手段には、前記演算処理の演算式が格納され、
前記付加特定情報は、前記演算式を特定する演算特定情報であり、
前記事前処理データ生成手段又は前記配信データ生成手段は、前記付加特定情報として前記演算特定情報を取得した場合には、当該演算特定情報にて特定される演算式による演算を行うことによって前記演算情報を取得すること、
を特徴とする請求項８又は９に記載のデータ配信システム。
【請求項１２】
前記データ受信手段にて受信された前記原データの履歴を記録した受信済みデータ特定情報を格納する受信済みデータ特定情報格納手段を備え、
前記データ受信手段は、当該データ配信システムの起動後に最初に前記原データの送信要求を前記提供元装置に送信する際、前記受信済みデータ特定情報格納手段に格納されている前記受信済みデータ特定情報を前記提供元装置に送信することにより、当該送信した受信済みデータ特定情報にて特定される前記原データ以外の原データのみの送信を前記提供元装置に要求すること、
を特徴とする請求項１から１１のいずれか一項に記載のデータ配信システム。
【請求項１３】
データの提供元の提供元装置とデータの配信先の配信先装置とにネットワークを介して接続されたデータ配信システムに対して、前記提供元装置から送信された各種の原データに基づいて作成された配信データを前記配信先装置に向けて配信するデータ配信方法を実行させるためのプログラムであって、
前記データ配信システムが、
前記原データに含まれる情報の中で前記事前処理データに含めるべき情報を、少なくともデータ種別に応じて特定するための第１定義情報を格納する第１定義情報格納手段と、
前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を、少なくともデータ種別及び前記配信先装置に応じて特定するための第２定義情報を格納する第２定義情報格納手段とを備える場合において、
前記提供元装置から前記原データを受信するデータ受信ステップと、
前記データ受信ステップにおいて受信された前記原データのデータ種別を特定し、当該特定したデータ種別に応じた第１定義情報を前記第１定義情報格納手段から取得して参照し、前記事前処理データに含めるべき情報を前記原データから取得することによって、当該特定したデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成ステップと、
前記事前処理データ生成ステップにおいて生成された前記事前処理データのデータ種別を特定すると共に、配信データを配信すべき前記配信先装置を特定し、当該データ種別及び当該配信先装置に応じた第２定義情報を前記第２定義情報格納手段から取得して参照し、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を取得することによって、当該特定したデータ種別及び当該特定した配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成ステップと、
前記配信データ生成ステップにおいて生成された前記配信データを、前記配信先装置に送信するデータ送信ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データの提供元の提供元装置から送信された証券データ等の各種のデータを、データの配信先の配信先装置に向けて配信するデータ配信システムと、そのためのプログラムに関する。
【背景技術】
【０００２】
近年のインターネット技術の発達に伴い、このインターネット技術を利用して各種データの配信を行うためのデータ配信システムが広く普及してきている。例えば、証券取引所から提示された株式や債券の価格等に関する証券データを、インターネットを介して各証券会社に提示するためのデータ配信システムが提案されている（特許文献１参照）。
【０００３】
このようなデータ配信を行う場合、データ提供元から提供されたデータ（以下「原データ」）と、データ配信先が所望するデータ（以下「配信データ」）との間で、データの形式や内容が異なる場合がある。例えば、上記のように証券データを配信する場合、原データである証券データの形式や内容は、データ提供元である証券取引所毎や、データ種別（株式データ、債券データ等）毎に異なっている。また、データ配信先である証券会社が複数存在する場合には、各証券会社が所望する配信データの形式や内容が異なる場合がある。従って、これら形式や内容の相違を吸収し、データ配信先が所望する配信データを生成する必要が生じる。このため従来から、原データに基づいて所望の配信データを生成する配信システムが提案されている。
【０００４】
例えば、特許文献２には、計測システムから入力された計測データを携帯端末にリアルタイムでネットワーク配信する情報配信システムが開示されている。このシステムはデータファイル生成手段を備えて構成されており、このデータファイル生成手段は、計測データの中から不要なデータ項目を排除すると共に、残りのデータ項目を整列させる等の処理を行なう。ここで、データ提供元である各レース場毎に計測システムから出力されるデータの仕様が異なるため、データファイル生成手段としては、予め個別の整理処理プログラムを準備しておく必要がある（例えば、特許文献２における段落００１８参照）。
【０００５】
【特許文献１】特開２００１−２６５７２０号公報
【特許文献２】特開２００２−５６１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の配信システムでは、特にシステムの拡張性や高速性において問題があった。例えば、特許文献２に開示されている情報配信システムでは、データ提供元からの出力データの仕様の多様性に対応するため、データ提供元に応じて異なる整理処理プログラムを準備していた。従って、データ提供元やデータ提供先における出力データの仕様が変更になった場合、あるいは、データ提供元やデータ提供先が追加された場合には、既存の整理処理プログラムを変更する必要があったり、新たな整理処理プログラムを準備する必要がある等、システムの汎用性や拡張性が低いという問題があった。
【０００７】
さらに、特許文献２の情報配信システムでは、データ項目の排除や整列を、データ毎にプログラムを解釈することによって処理していたので、処理時間が比較的長くなり、高速性に欠けるという問題があった。このような問題は、特に証券情報の配信システムのように、膨大なデータを迅速に配信することが要求されるシステムにおいては重要であり、改善が要望されていた。
【０００８】
この発明は、このような従来技術による問題点を解消するためになされたものであり、データ配信の拡張性や高速性を高めることができる、データ配信システム及びそのためのプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１に記載の本発明は、原データのデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成手段と、この事前処理データのデータ種別及び配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成手段を備える。このように、多様な情報を含んだ原データからデータ種別に応じた所定の情報を含む事前処理データを生成することで、原データの多様性を吸収することができる。さらに、事前処理データからデータ種別及び配信先装置に応じた所定の情報を含む配信データを生成することで、提供先における情報ニーズの多様性を吸収することができる。これらのことから、データ生成の過程においてデータ種別や提供先の所望するデータ項目等の相違を吸収することができ、多様な原データを多様な提供先に対して配信することができる。特に、第１定義情報や第２定義情報を格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、これら定義情報の追加や更新を容易に行うことができ、システムの拡張性を高めることができる。
【００１０】
請求項２に記載の本発明は、事前処理データ生成手段は、第１定義情報格納手段から取得した識別情報を参照することにより、原データから取得した情報と識別情報とを相互に関連付けて事前処理データを生成し、配信データ生成手段は、事前処理データの識別情報と、第２定義情報格納手段から取得した識別情報とに基づいて、事前処理データに含まれる情報の中から配信データに含めるべき情報を取得することを特徴とする。この構成によれば、原データから配信データに至る情報の享受の過程において、識別情報を用いて情報を一意に特定することができ、情報の正確かつ高速な配信が可能になる。また、識別情報を用いることで、情報の追加や更新を行い場合にも、これら情報と識別情報との関連付けを変更したり、識別情報を追加や更新することで対応できるので、システムの拡張性を一層高めることができる。
【００１１】
請求項３に記載の本発明は、事前処理データ生成手段は、識別情報に対応する情報の位置を識別対応情報を参照して特定し、当該特定した位置に基づいて原データから情報を取得することを特徴とする。このように各情報と識別情報との対応情報を識別対応情報格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、対応情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００１２】
請求項４に記載の本発明は、配信データ生成手段は、識別子を識別情報の所定の先頭値から所定の最後値に至るまで順次参照することで、配信データに含めるべき情報を事前処理データの中から抽出することを特徴とする。このように全ての識別情報に対応する識別子を順次参照して情報抽出を行うことにより、事前処理データにほぼ全ての識別情報が含まれると想定される場合（例えば初期配信時）には、当該事前処理データに実際に含まれる識別情報を逐一特定することなく情報抽出を行うことができるので、処理の高速化が可能になる。また、識別子の位置と識別情報とが対応付けられていることにより、情報を高速で抽出することができ、システムの高速化を一層促進することができる。
【００１３】
請求項５に記載の本発明は、配信データ生成手段は、事前処理データに含まれる識別情報を順次参照することで、配信データに含めるべき情報を事前処理データの中から抽出することを特徴とする。このように全ての識別情報を逐一参照することなく、当該事前処理データに実際に含まれる識別情報のみを参照して情報抽出を行うことにより、事前処理データに一部の識別情報しか含まれないと想定される場合（例えば更新配信時）には、無駄な識別情報を参照することなく情報抽出を行うことができるので、処理の高速化が可能になる。また、識別子の位置と識別情報とが対応付けられていることにより、情報を高速で抽出することができ、システムの高速化を一層促進することができる。さらには、事前処理データや配信データに含まれる情報がＦＩＤの昇順にて格納されていなくても効率のよい処理を行うことができる。
【００１４】
請求項６に記載の本発明は、データ受信手段が、当該データ配信システムの起動後における最初の原データを受信する場合（すなわち初期配信時）、配信データ生成手段は、識別子を識別情報の所定の先頭値から所定の最後値に至るまで順次参照することで、配信データに含めるべき情報を事前処理データの中から抽出し、データ受信手段が、最初の原データの受信以降に原データを受信する場合（すなわち更新配信時）、事前処理データに含まれる識別情報を順次参照することで、配信データに含めるべき情報を事前処理データの中から抽出することを特徴とする。このように、初期配信時には、事前処理データにほぼ全ての識別情報が含まれると想定されるため、当該事前処理データに実際に含まれる識別情報を逐一特定することなく情報抽出を行って処理の高速化を図ると共に、更新配信時には、事前処理データに一部の識別情報しか含まれないと想定されるため、無用な識別子の参照を行うことを回避して処理の高速化を図ることができる。
【００１５】
請求項７に記載の本発明は、事前処理データ生成手段は、取得した第１定義情報に付加情報が含まれる場合には、該付加情報を取得して事前処理データに含めることを特徴とする。この場合、原データに含まれていない情報や、原データに含まれている情報であっても一律に置換すべき情報等については、これを自動的に取得して事前処理データに含めることができるので、配信情報の内容を一層充実させたり、配信情報の内容の統一化を図ることができる。特に、付加情報を第１定義情報に含めたことで、外部ファイルを参照することなく付加情報を取得でき、処理の高速化を図ることができる。
【００１６】
請求項８に記載の本発明は、事前処理データ生成手段は、第１定義情報に付加特定情報が含まれる場合には、付加特定情報に対応する付加情報を付加情報格納手段から取得して事前処理データに含めることを特徴とする。この場合、原データに含まれていない情報や、原データに含まれている情報であっても所定の情報に一律に置換すべき情報については、これを自動的に取得して事前処理データに含めることができるので、配信情報の内容を一層充実させることや、配信情報の内容の統一化を図ることができる。特に、付加情報を付加情報格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、付加情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００１７】
請求項９に記載の本発明は、配信データ生成手段は、識別情報に対応する付加特定情報を識別付加対応格納手段から取得し、当該取得した付加特定情報に対応する付加情報を付加情報格納手段から取得して配信データに含めることを特徴とする。この場合、原データに含まれていない情報や、原データに含まれている情報であっても所定の情報に一律に置換すべき情報については、これを自動的に取得して事前処理データに含めることができるので、配信情報の内容を一層充実させることや、配信情報の内容の統一化を図ることができる。特に、付加情報を付加情報格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、付加情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。さらに、付加情報と識別情報との対応情報を識別付加対応格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、対応情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００１８】
請求項１０に記載の本発明は、事前処理データ生成手段又は配信データ生成手段は、付加特定情報として予納特定情報を取得した場合には、当該予納特定情報にて特定される格納位置から予納情報を取得することを特徴とする。この場合、請求項８や９と同様の作用効果に加えて、予納情報を付加情報格納手段に格納したことで、予納情報をプログラムの内部に記述する場合に比べて、予納情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００１９】
請求項１１に記載の本発明は、事前処理データ生成手段又は配信データ生成手段は、付加特定情報として演算特定情報を取得した場合には、当該演算特定情報にて特定される演算式による演算を行うことによって演算情報を取得することを特徴とする。この場合、請求項８や９と同様の作用効果に加えて、演算式を付加情報格納手段に格納したことで、演算式をプログラムの内部に記述する場合に比べて、演算式の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００２０】
請求項１２に記載の本発明は、データ受信手段は、当該データ配信システムの起動後に最初に原データの送信要求を行なう場合（すなわち初期配信時における原データの送信要求時）、受信済みデータ以外の原データのみの送信を提供元装置に要求することを特徴とする。この場合、データ配信システムに障害が発生して再起動したような場合にも、全ての原データを受信することなく、未受信の原データのみを受信できるので、システムの立上げ時間を短縮化することができる。
【００２１】
請求項１３に記載の本発明は、原データのデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成ステップと、この事前処理データのデータ種別及び配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成ステップを備える。このように、多様な情報を含んだ原データからデータ種別に応じた所定の情報を含む事前処理データを生成することで、原データの多様性を吸収することができる。さらに、事前処理データからデータ種別及び配信先装置に応じた所定の情報を含む配信データを生成することで、提供先における情報ニーズの多様性を吸収することができる。これらのことから、データ生成の過程においてデータ種別や提供先の所望するデータ項目等の相違を吸収することができ、多様な原データを多様な提供先に対して配信することができる。特に、第１定義情報や第２定義情報を格納手段に格納したことで、これらをプログラムの内部に記述する場合に比べて、これら定義情報の追加や更新を容易に行うことができ、システムの拡張性を高めることができる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明を実施するための最良の形態について説明する。ただし、各実施の形態によって本発明が限定されるものではない。各実施の形態を説明した後、各実施の形態に対する変形例について説明する。
【００２３】
〔実施の形態１〕
まず、本発明に係る実施の形態１について説明する。以下では、本実施の形態に係るデータ配信システム（以下「本システム」）の構成を説明した後、本システム上で実行される処理について説明する。
【００２４】
（概要及び定義）
まず、本システムについて概説する。本システムは、複数の証券取引所（東証、大証、ＪＡＳＤＡＱ等）の各々から提示された株式や債券の価格等に関する証券データを、ネットワークを介して複数の証券会社の各々に提示するためのシステムである。図１は、本システムの構成を機能概念的に示すブロック図である。本システム１は、複数の証券取引所の各々が保有する「取引所サーバ」１００と、情報ベンダーが保有する「ベンダーサーバ」１０１と、各証券会社の各々が保有する「顧客サーバ」１０２とに対して、インターネットやデータ専用回線の如きネットワークを介して通信可能に接続されている。本システム１は、具体的には、「事前処理サーバ」１０と「配信処理サーバ」２０とを備えて構成されている。なお、取引所サーバ１００又はベンダーサーバ１０１、顧客サーバ１０２は、それぞれ特許請求の範囲における提供元装置、配信先装置に対応する。
【００２５】
次に、本実施の形態の説明に使用する用語を以下のように定義する。ただし、各用語の意味は、以下の定義に必ずしも限定されず、以下の定義と矛盾しない限りにおいて、当該各用語が通常有する意味を含み得る。まず、証券取引所から本システム１に送信されるデータ（電文データ）を「証券データ」、この証券データに基づいて本システム１の内部で生成される中間データを「事前処理データ」、この事前処理データに基づいて本システム１の内部で生成されて各証券会社に送信されるデータを「配信データ」と称する。また、証券取引所に対する証券データの提供元から本システム１に対してデータの送信が行われる場合があるため、当該提供元を「情報ベンダー」と称すると共に、当該データを「証券元データ」と称する。また、証券データに基づいて事前処理データを生成する際に使用されるテンプレート（定義情報）であって、証券データや証券元データと事前処理データとの相互の対応関係をデータ種別毎に特定するためのテンプレートを「事前処理テンプレート」、証券データに含まれる各情報の詳細や当該各情報と後述するＦＩＤとの関係を特定するための情報を「証券データ定義ファイル」、事前処理データに基づいて配信データを生成する際に使用されるテンプレートであって事前処理データと配信データとの相互の対応関係をデータ種別毎に特定するためのテンプレートを「配信処理テンプレート」と称する。なお、証券取引所、証券会社、証券データ又は証券元データ、事前処理テンプレート、配信処理テンプレートはそれぞれ、特許請求の範囲における提供元、配信先、原データ、第１定義情報、第２定義情報に対応する。
【００２６】
これら証券データや証券元データには、例えば、株式データ（銘柄、株価、株価収益率等）、指数データ（平均株価等）、先物データ、債券データ、及び、為替データの如き各種のデータが含まれ、例えば株式データと指数データとでは、そこに含まれる情報の形式（データフォーマット）や内容が異なり得る。以下では、これら株式データや指数データの形式や内容を区分するための概念を「データ種別」と称する。また、証券データ、事前処理データ、配信データ、あるいは、証券元データに含まれる項目や値を、これら各データと区別するために「情報」又は「値」と称する。以下では、証券データ、事前処理データ、及び配信データは、それぞれ１つの証券取引所かつ１つの銘柄に対応するものとし、複数の証券取引所から送信されたデータが１つの証券データの中に混在したり、複数の銘柄に関するデータが１つの証券データに混在することがないものとする。ここで「銘柄」とは、ある特定の株式会社が発行している株式や債券の全体の総称である。
【００２７】
ここで、証券データや証券元データに含まれていない情報であるが、配信データに含めるべき情報があり、このような情報は本システム１において付加される。以下では、本システム１で付加される情報を「付加情報」と総称する。この付加情報には、本システム１に予め格納されているものであって必要に応じて呼び出されて利用される「予納情報」と、本システム１において必要に応じて算定することで取得される「演算情報」がある。また、本システム１の内部における予納情報の格納位置を特定するための情報を「予納特定情報」、演算情報を一意に識別するための情報を「演算特定情報」と称する。以下では、予納情報の一例として株券データにおける銘柄名（「○×株式会社」等）、演算情報の一例として株券データにおけるＰＥＲ（株価収益率）を示すが、この他の任意の情報を予納情報や演算情報とすることができる。なお、予納特定情報や演算特定情報は、特許請求の範囲における付加特定情報に対応する。
【００２８】
（データ構造）
次に、本実施の形態における各種のデータ及びテンプレートの構造について説明する。ただし、これらデータ及びテンプレートはあくまで例示であり、以下に示す情報以外の情報を含むことができ、あるいは、以下に示す情報の一部を除外することもできる。
【００２９】
まず「証券データ」の構造について説明する。証券データは、図２に例示するように、１つの「業務ヘッダ」と複数の「タグ１〜ｎ」（ｎは自然数）を一連に含んで構成されている。「業務ヘッダ」には、当該証券データに関する主要な情報が格納されており、例えば、各証券データを一意に特定するための「証券データ番号（電文データ番号）」、前場と後場の区別を示す「前場後場区分」、各証券データのデータ種別を一意に特定するための「銘柄区分」、当該証券データが株券データや債権データである場合において当該株券や債権の銘柄を一意に特定するための「銘柄コード」、当該証券データが株券データや債権データである場合において当該株券や債権が取引されている証券取引所を一意に特定するための「取引所コード」を含んで構成されている。各「タグ１〜ｎ」には、当該証券データの実情報が格納されており、例えば、「タグ１」には、当該証券データが株式データである場合には当該株式の「最値、安値、現在株価」（具体的には数値データ）、「タグ２」には、当該株券が「売り気配」と「買い気配」のいずれであるのかを示す情報（具体的には売り気配である場合には「０１」、買い気配である場合には「０２」の如き所定のテキストデータ）、「タグ３」には当該株券の「売買高」（具体的には数値データ）が格納されている。なお、状況により、各タグの一部のみに実情報が格納された証券データが送信される場合があり、例えば、特定の株について約定なしの場合（値が付かない場合）には、証券データには、「タグ１」の「最値、安値、現在株価」については実情報がなく、「タグ２」の「売り気配」又は「買い気配」のみが含まれる。この証券データの構造は、証券取引所毎及び証券データのデータ種別毎に予め定められており、換言すれば、証券取引所やデータ種別に応じて証券データの構造が異なり得る。
【００３０】
次に、「ＦＩＤ（Field ID）」の概念について説明する。「ＦＩＤ」とは、事前処理データや配信処理データに含まれ得る各種の情報を一意に特定するための情報であり、特許請求の範囲における識別情報に対応する。図３には、ＦＩＤと情報との対応関係例を示す。ここでは、「ＦＩＤ０００１」には「銘柄コード」、「ＦＩＤ０００２」には「銘柄名」、「ＦＩＤ０００３」には「取引所コード」、「ＦＩＤ０３０２」には「最優良買気配値段」、「ＦＩＤ０３０３」には「最優良買気配数量」、「ＦＩＤ０８００」には「ＰＥＲ」がそれぞれ関連付けられている例を示す。さらに図３は、証券データのデータ種別と各情報との対応関係例を示しており、図３に示した各情報のうち、株券データには全ての情報が含まれる（図３において「○」）が、指数データ又は先物データには「最優良買気配値段」、「最優良買気配数量」及び「ＰＥＲ」が含まれない（図３において「×」）ことを示している。本システム１では、事前処理データの生成から配信データの生成に至る各処理において同一のＦＩＤを用いることで、情報の識別や受け渡しの確実化及び高速化を図っている。特に、一部の情報のみを含んだ更新データ（差分データ）を送受信する場合にも、ＦＩＤを用いて情報を容易かつ確実に特定することが可能になる。
【００３１】
次に、「事前処理データ」の構造について説明する。事前処理データは、図４に例示するように、「概要データ」と「実データ」とによって構成されている。「概要データ」は、例えば、「レコード名」、「テンプレート種別」及び「実データへのポインタ」等を含んで構成される。「レコード名」は、当該事前処理データの銘柄と、当該事前処理データの元になった証券データを送信した証券取引所とを、一意に特定するための情報であり、例えば、銘柄を特定するための銘柄コード「９７３７」と、証券取引所を特定するための識別情報「Ｔ＄１」とを接続子「＃」で連結して構成された「９７３７＃Ｔ＄１」の如きテキストデータである。「テンプレート種別」は、証券データに基づいて事前処理データを生成する際に使用された事前処理テンプレートを一意に特定するための情報であり、例えば事前処理テンプレートに予め付与された連番「Ｔｅｍｐ０００１」の如きテキストデータである。「実データへのポインタ」は、実データの格納アドレスを特定するための値であり「１０１１」の如きポインタ型のデータである。一方の「実データ」は、「ＦＩＤ」と各ＦＩＤに対応する情報の「値」との組を複数含んで構成されている。
【００３２】
次に、「事前処理テンプレート」の構造について説明する。事前処理テンプレートは、図５に例示するように、データ種別に応じて複数設けられている（図５には株券データ及び指数データの２種類のデータ種別の事前処理テンプレートのみを示す）。各事前処理テンプレートは、各データ種別毎に事前処理データに含めるべき情報に対応する「ＦＩＤ」と、事前処理データに含めるべき情報を特定するための情報（図５の「値」）とを相互に関連付けて構成されている。「値」が証券データから取得可能な値である場合には、事前処理テンプレートには空白値（図５における「−」）が格納されている。「値」が予納情報である場合には、事前処理テンプレートには当該予納情報の位置を特定するための情報（図５においては予納情報（ここでは銘柄名）へのパス「\\c\file01」であり、特許請求の範囲における予納特定情報）が格納されている。「値」が演算情報である場合には、事前処理テンプレートには当該演算情報を一意に特定するための情報（図５における「ＰＥＲ」であり、特許請求の範囲における演算特定情報）が格納されている。ここでは、予納情報や演算情報（演算式）自体は事前処理サーバ１０における後述する外部記憶部１１において外部ファイルとして格納されている。なお、同じＦＩＤについて一意に特定できる情報（例えば演算情報）については必ずしも外部ファイルとして保有しなくてもよく、事前処理テンプレートに直接含める形（演算特定情報の代わりに演算式を含める形）で保有してもよい。また、予納情報や演算情報は、証券データから取得可能な値以外に限定されない。例えば、証券データに値はセットされているが、受信側で決めた値を一律にセットしたい場合や、受信側で改めて演算を行いたい場合等についても、予納情報や演算情報として持たせることが可能である。例えば、証券データにセットされている値が予納情報や演算情報であることが特定された場合には、当該セットされている値を、受信側で決めた値や、受信側で改めて演算を行って求めた値により置換することができる。
【００３３】
次に、「証券データ定義ファイル」の構造について説明する。この証券データ定義ファイルは、原データに含まれる情報の内容及び位置と、当該情報とＦＩＤとの相互の対応関係とを特定する識別対応情報を格納するものである。この証券データ定義ファイルは、データ種別に応じて複数設けられているが、図６には一つのみを例示する。証券データ定義ファイルは、「項目」、「開始位置」、「カラム数」、「出力」、「データ型」、「小数点位置」、「ＦＩＤ」を含んで構成されており、これら各情報は特許請求の範囲における識別対応情報に対応する。「項目」は、証券データに含まれる各情報に対応するもので、例えば項目「Ａ１」は「証券データ番号」、項目「Ａ２」は「前場後場区分」、・・・項目「Ａ５」は「取引所コード」をそれぞれ示す。「開始位置」は、証券データの先頭から数えた各項目の先頭位置（例えば先頭位置に至るバイト数）であり、例えば項目「Ａ１」は「開始位置＝０」であるから証券データの先頭から開始されることを示し、項目「Ａ２」は「開始位置＝５」であるから証券データの先頭から５バイト目に開始されることを示す。「カラム数」は、各項目のデータ長（例えばバイト数）を示す。「出力」は、各項目を事前処理データに含めるか否かを識別するための情報であり、例えば「出力＝○」の場合には項目を含め、「出力＝×」の場合には項目を含めないことを意味する。「データ型」は各項目のデータ形式であり、テキストデータや数値データ（例えばIntegerやFloat等）が該当する。「小数点位置」は、項目が数値データである場合における小数点の位置を特定する情報（例えば項目の先頭から小数点位置までのバイト数）である。「ＦＩＤ」は、各項目に対応するＦＩＤを示す。
【００３４】
次に、「予納情報定義ファイル」の構造について説明する。この予納情報定義ファイルは、予納情報を定義するためのもので、事前処理テンプレートに含まれる予納特定情報にて特定される位置に格納されている。例えば、予納情報定義ファイルは、図７に示すように、銘柄コードと銘柄名とを相互に関連付けて構成されている。
【００３５】
次に、「演算情報定義ファイル」の構造について説明する。この演算情報定義ファイルは、演算情報を定義するためのもので、図８に示すように、演算特定情報と演算式とを相互に関連付けて構成されている。例えば、演算特定情報である「ＰＥＲ」と、ＰＥＲを計算するための演算式である「純利益／時価総額」が格納されている。より具体的には、各演算式は逆ポーランド記法にて「純利益  時価総額  ／」の如き記述されている。
なお、上述では、図８に示すように演算情報定義ファイルを演算特定情報と演算式との対応にて構成しているが、これをＦＩＤと演算式との対応にて構成し、事前処理テンプレートには演算情報定義ファイルへのパス（例えば\\c\file02）を含むものとしてもよい。また、演算式のように、ＦＩＤにて一意に特定可能な付加情報については、演算情報定義ファイルを用意せず、事前処理テンプレートに演算式を直接含めるものとしてもよい。
【００３６】
次に、「配信データ」の構造について説明する。この配信データは、データ種別毎及び配信先毎に応じて異なる情報を含み得るが、図９に一つのみを例示する。配信データは、「ＦＩＤ」と、各ＦＩＤに対応する情報の「値」との組を複数含んで構成されている。なお、本実施の形態においては、「ＦＩＤ」は配信先で利用される情報ではないので、配信データからＦＩＤを省略してもよい。
【００３７】
次に、「配信テンプレート」の構造について説明する。この配信テンプレートは、データ種別に応じて複数設けられているが、図１０に一つのみを例示する。配信テンプレートは、ｎ行×ｍ列（ｎ，ｍはそれぞれ自然数。ここでは、ｍ＝８）形式のビットマップとして構成されている。各ビットは、一つのＦＩＤに対応するように配置されており、各ビットには、当該ＦＩＤによって識別される情報を配信テンプレートに含めるか否かを特定する情報（ここではフラグであり、特許請求の範囲における識別子に対応する）が格納されている。なお、図１０の各ビットの括弧内には参考のために当該各ビットのＦＩＤを示すが、実際には各ビットにはフラグのみが格納されている。ここでは、列数ｍをＦＩＤで除算した際の「商」と「余り」と用いて特定される座標（商，余り）が、当該ＦＩＤに対応するビットの座標（ｎ，ｍ）を示す。例えば、ＦＩＤ＝００１５の場合、１５を８で除算して「商＝１」「余り＝７」となるため、配信テンプレートの座標（１，７）の位置に格納されているフラグが、ＦＩＤ＝００１５の情報のフラグであることが判る。なお、ここでは、フラグが立っている場合（フラグ＝１の場合）には、当該ＦＩＤにて特定される情報を配信テンプレートに含めることを意味し、このビットのフラグが立っていない場合（フラグ＝０の場合）には、当該ＦＩＤにて特定される情報を配信テンプレートに含めないことを意味する。
【００３８】
（システム構成）
次に、本システム１の構成について図１を参照しつつ説明する。上述のように本システム１は、事前処理サーバ１０と配信処理サーバ２０とを備えて構成されている。ここでは、各取引所サーバ１００に対して事前処理サーバ１０を個別的に設けると共に、各顧客サーバ１０２に対して配信処理サーバ２０を個別的に設けている。このような構成では、各取引所サーバ１００と各事前処理サーバ１０とが相互に１対１で対応しているため、各事前処理サーバ１０においては、自己に対して証券データを送信する証券取引所（実際には取引所サーバ１００）を一意に特定することができる。同様に、各顧客サーバ１０２と各配信処理サーバ２０とが相互に１対１で対応しているため、各配信処理サーバ２０においては、自己が配信データを送信すべき顧客（実際には顧客サーバ１０２）を一意に特定することができる。ここで、各事前処理サーバ１０と各配信処理サーバ２０とは相互に通信可能に接続されており、一つの証券取引所から送信された証券データに基づいて１台の事前処理サーバ１０にて生成された事前処理データを、各配信処理サーバ２０に送信することができる。
【００３９】
以下では、事前処理サーバ１０と配信処理サーバ２０とを相互に分離配置した例を説明するが、実際には、これらを相互に統合して１台のデータ配信サーバとしてもよい。この統合形態の場合には、後述する事前処理サーバ１０の処理と配信処理サーバ２０の処理とを一度に統合的に実行することができる。
【００４０】
（システム構成−事前処理サーバ１０）
事前処理サーバ１０の構成について説明する。事前処理サーバ１０は、外部記憶部１１、証券データＤＢ１２、事前処理テンプレートＤＢ１３（図１において事前処理ＴＰＤＢ１３）、ネットワークインターフェース（以下「ネットワークＩＦ」）１４、及び、制御部１５をバスにて通信可能に接続して構成されている。
【００４１】
外部記憶部１１は、事前処理サーバ１０における各処理を実行するために必要なデータを記憶するための記憶手段であり、具体的には、ＨＤ（Hard Disk）の如き不揮発的な記憶装置により構成されている（証券データＤＢ１２、事前処理テンプレートＤＢ１３、及び、後述する外部記憶部２１、あるいは、配信処理テンプレートＤＢ２３において同じ）。この外部記憶部１１には、証券データ定義ファイル、予納情報定義ファイル及び演算情報定義ファイルが記憶されている。この外部記憶部１１は、特許請求の範囲における識別対応情報格納手段、付加情報格納手段及び演算情報格納手段に対応する。
【００４２】
証券データＤＢ１２は、取引所サーバ１００から受信した証券データを格納するためのものである。
【００４３】
事前処理テンプレートＤＢ１３は、事前処理テンプレートを格納するためのもので、特許請求の範囲における第１定義情報格納手段に対応する。上述のように、証券データに含まれる情報の形式や内容、あるいは、事前処理データに含めるべき情報の内容は、データ種別に応じて異なるため、事前処理テンプレートＤＢ１３には複数の事前処理テンプレートがデータ種別に関連付けて格納されている。
【００４４】
ネットワークＩＦ１４は、事前処理サーバ１０がネットワークを介した通信を行うための通信制御インターフェースであり、例えばネットワークボードとして構成される。
【００４５】
制御部１５は、事前処理サーバ１０の各部を制御する制御手段であり、機能概念的に、受信部１５ａ、事前処理データ生成部１５ｂ、及び、発行ＡＰＩ（PAPI:Publication API)１５ｃを備える。受信部１５ａは、取引所サーバ１００からの証券データの受信処理やベンダーサーバ１０１からの証券元データの受信処理を制御するもので、特許請求の範囲におけるデータ受信手段に対応する。事前処理データ生成部１５ｂは、証券データや証券元データに基づいて事前処理データを生成するもので、特許請求の範囲における事前処理データ生成手段に対応する。発行ＡＰＩ１５ｃは、事前処理データを配信処理サーバ２０に送信するためのＡＰＩ（Application Program Interface）であり、必要に応じて制御部１５から呼び出されて起動される。この制御部１５は、具体的には、ＣＰＵ（Central Processing Unit）や、このＣＰＵ上で解釈実行される各種のプログラム（ＯＳなどの制御プログラムや、各種の処理手順などを規定したプログラム）、及び、所要プログラムや所要データを格納するための内部メモリを備えて構成される（後述する制御部２６において同じ）。
【００４６】
（システム構成−配信処理サーバ２０）
次に、配信処理サーバ２０の構成について説明する。配信処理サーバ２０は、外部記憶部２１、配信テンプレートＤＢ２３（図１において配信ＴＰＤＢ２３）、ネットワークＩＦ２５、及び、制御部２６をバスにて通信可能に接続して構成されている。
【００４７】
外部記憶部２１は、配信処理サーバ２０における各処理を実行するために必要なデータを記憶するための記憶手段である。
【００４８】
配信テンプレートＤＢ２３は、配信テンプレートを格納するもので、特許請求の範囲における第２定義情報格納手段に対応する。ここでは、上述したように、配信データに含めるべき情報の形式や内容は、データ種別に応じて異なるため、配信テンプレートＤＢ２３には、データ種別毎に異なる複数の配信テンプレートが格納されている。
【００４９】
ネットワークＩＦ２５は、配信処理サーバ２０がネットワークを介した通信を行うための通信制御インターフェースであり、例えばネットワークボードとして構成される。
【００５０】
制御部２６は、配信処理サーバ２０の各部を制御する制御手段であり、機能概念的に、要求ＡＰＩ（RAPI:Request API)２６ａ、配信データ生成部２６ｂ、及び、発行ＡＰＩ２６ｃを備える。要求ＡＰＩ２６ａは、事前処理データを事前処理サーバ１０から受信するためのＡＰＩであり、必要に応じて制御部２６から呼び出されて起動される。配信データ生成部２６ｂは、事前処理データに基づいて配信データを生成するもので、特許請求の範囲における配信データ生成手段に対応する。発行ＡＰＩ２６ｃは、配信データを証券会社サーバに送信するためのＡＰＩであり、必要に応じて制御部２６から呼び出されて起動されるものであって、特許請求の範囲におけるデータ送信手段に対応する。
【００５１】
（データ配信処理−ＡＰＩ）
次に、このように構成された本システム１を用いて行われるデータ配信処理について説明する。始めに、ＡＰＩを用いたデータの送受信の基本概念について説明する。図１１はこの送受信を概念的に説明するための説明図である。上述のように事前処理サーバ１０には発行ＡＰＩ１５ｃ、配信処理サーバ２０には要求ＡＰＩ２６ａ及び発行ＡＰＩ２６ｃがそれぞれ設けられており、さらに顧客サーバ１０２には要求ＡＰＩ１０２ａが設けられている。
発行ＡＰＩはキャッシュ領域を確保して、そのサーバのアプリケーションで生成したデータを、該キャッシュに格納する。ここでは、事前処理サーバ１０の発行ＡＰＩ１５ｃには、事前処理データ生成部１５ｂで生成した事前処理データを、配信処理サーバ２０の発行ＡＰＩ２６ｃには、配信データ生成部２６ｂで生成した配信データを格納する。
そして、隣接する要求ＡＰＩからのリクエストを受信すると、それに応じて、その時点でキャッシュに記憶されているデータの全情報（全ての項目）を送信し、その後は、キャッシュが更新される度に、更新された情報のみを自動的に送信する。ここでは、発行ＡＰＩ１５ｃから要求ＡＰＩ２６ａに対して事前処理データを送信し、発行ＡＰＩ２６ｃから要求ＡＰＩ１０２ａに対して配信データを送信する。このように、隣接する発行ＡＰＩと要求ＡＰＩとで通信を行って、データを送受信する。
これら各ＡＰＩの機能は、各サーバの制御部１５、２６における通常のプログラム処理として記述することもできるが、本実施の形態のようにＡＰＩ形式として必要に応じて呼び出して起動することで、処理の高速化を図ることができる。なお、ＡＰＩの具体的な機能およびデータ送受信の詳細な方法については後述する。
【００５２】
（データ配信処理−事前処理サーバ１０）
次に、事前処理サーバ１０にて行われる具体的処理を図１２のフローチャートを参照しつつ説明する。図１２において、ステップＳＡ−１ないしＳＡ−４は事前処理サーバ１０の起動時に行なわれる処理である。事前処理サーバ１０が起動されると、事前処理データ生成部１５ｂは、事前処理テンプレートＤＢ１３に格納されている事前処理テンプレートをキャッシュ領域に読込むと共に（ステップＳＡ−１）、全銘柄のキャッシュ領域を確保する（ステップＳＡ−２）。
【００５３】
ここでは、事前処理サーバ１０は各営業日の始業時間前に起動されると共に終業時間後にシャットダウンされるものとし、終業時において発行ＡＰＩ１５ｃのキャッシュ領域に最終的に保有されていたデータ（ここでは、当該営業日における全ての更新情報が反映された最新の事前処理データとなる）を終業時に銘柄情報ファイルとして外部記憶部１１に記憶しておく。そして、ステップＳＡ−２では、銘柄情報ファイルが読込まれることで、当該証券データに対応するサイズのキャッシュ領域が生成される。通常は、各営業日毎に事前処理サーバ１０によって受信される証券データのサイズは一定であることから、本実施形態のように前営業日の最終的なキャッシュ内容に対応するサイズのキャッシュ領域を確保しておくことで、実質的には当該営業日に使用する最大サイズのキャッシュ領域を自動的に確保しておくことになり、証券データを受信する毎にキャッシュ領域を生成する必要がなくなるため、それ以降の処理の高速化を図ることができる。なお、上述の銘柄情報ファイルによる方法は一例であり、例えば、証券データＤＢ１２に格納されている全営業日の全ての証券データを読み込むことにより当該証券データに対応するサイズのキャッシュ領域を確保するようにしてもよい。
【００５４】
また、事前処理データ生成部１５ｂは、ベンダーサーバ１０１から受信し証券データＤＢ１２に格納している証券データを特定するための情報（例えば、最後に格納した証券データの証券データ番号や、事前処理サーバ１０における証券データの受信時に当該証券データに関連付けて証券データＤＢ１２に格納されたタイムスタンプ。特許請求の範囲における受信済みデータ特定情報に対応する）を、受信部１５ａを介してベンダーサーバ１０１に送信する（ステップＳＡ−３）。これを受けたベンダーサーバ１０１は、事前処理サーバ１０からの情報に基づいて、当該事前処理サーバ１０が未だ受信していない証券データがあるか否かを判定し、このような証券データがある場合には、当該証券データを自己のデータベースから取得して事前処理サーバ１０に送信する。この証券データを受信部１５ａを介して受信した事前処理サーバ１０は、当該証券データを証券データＤＢ１２に格納する（ステップＳＡ−４）。
【００５５】
これは、例えば事前処理サーバ１０が障害によりシャットダウンされた場合、再起動後に全ての証券データをベンダーサーバ１０１から受信していたのでは、処理速度が無用に長くなる。特に、証券データの配信システムの如き大規模システムでは、データ量が膨大になり得るため、この処理速度の長時間化が一層深刻になる。これを回避するため、本実施形態は、既に受信した証券データをベンダーサーバ１０１に通知し、未受信の証券データ（シャットダウン時から再起動時までに送信され、事前処理サーバ１０で受信できなかった証券データ）のみをベンダーサーバ１０１から受信することで、処理時間の高速化を計っている。
【００５６】
次いで、受信部１５ａは、取引所サーバ１００からの証券データの受信の有無を監視し（ステップＳＡ−５）、当該証券データを受信すると（ステップＳＡ−５，Ｙｅｓ）、当該証券データを証券データＤＢ１２に格納すると共に、当該証券データを事前処理データ生成部１５ｂに受け渡し、ステップＳＡ−６〜ＳＡ−８の処理を実行させる。すなわち、ステップＳＡ−６において事前処理データ生成部１５ｂは、証券データのデータ種別を判定し、ステップＳＡ−１で読込んだ事前処理テンプレートのうち、当該判定したデータ種別に応じた事前処理テンプレートを特定する（ステップＳＡ−６）。例えば、図２に例示したように証券データの業務ヘッダには「銘柄区分」が格納されているため、この「銘柄区分」を参照することでデータ種別を判定することができる。なお、事前処理テンプレートをキャッシュに読み込まず（ステップＳＡ−１を行わず）、証券データを受信する毎に、ステップＳＡ−６にて事前処理テンプレートＤＢ１３から対応するテンプレートを参照する処理手順としてもよい。
【００５７】
そして、事前処理データ生成部１５ｂは、取得した事前処理テンプレートを参照して、証券データに基づいて事前処理データを生成する（ステップＳＡ−７）。この事前処理データの生成について図１３を参照して詳細に説明する。最初にステップＳＡ−７で取得した事前処理テンプレート（図５参照）を参照して、出力すべきＦＩＤとその値とを特定する（ステップＳＢ−１）。この時、当該値が空白値であれば（ステップＳＢ−２，Ｙｅｓ）、当該値を証券データ（図２参照）から取得し（ステップＳＢ−３）、当該取得した値を、事前処理テンプレートの当該ＦＩＤの値として格納する（ステップＳＢ−４）。当該値を取得するためには、証券データにおける当該値の位置を、外部記憶部１１に格納されている証券データ定義ファイル（図６参照）を参照して特定する。例えば、図５のＦＩＤ０００２の値を取得する場合、図６により、ＦＩＤ０００２の値は開始位置「１３」から開始するカラム数「３」の長さの値であることが判るため、この値を証券データから取得する。
【００５８】
一方、出力すべきＦＩＤの値が予納特定情報である場合（例えば外部ファイルへのパスである場合）には（ステップＳＢ−２，Ｎｏ、ステップＳＢ−５，Ｙｅｓ）、当該予納特定情報にて特定される予納情報定義ファイル（図７参照）を参照し、読み込んだ証券データに含まれる証券コードに対応する予納情報（銘柄名）を取得する。そして、この取得した予納情報（銘柄名）を、事前処理テンプレートの当該ＦＩＤの値として格納する（ステップＳＢ−４）。
【００５９】
あるいは、出力すべきＦＩＤの値が予納特定情報でない場合（ステップＳＢ−５，Ｎｏ）には、出力すべきＦＩＤの値が演算特定情報（ここでは「ＰＥＲ」「ＰＢＲ」など）であると判断し、当該演算特定情報に対応する演算式を、外部記憶部１１の演算情報定義ファイル（図８参照）から取得する。そして、この演算式による演算を行うことで当該値を算定し（ステップＳＢ−７）、この算定した値を、事前処理テンプレートの当該ＦＩＤの値として格納する（ステップＳＢ−４）。特に、ここでは演算情報定義ファイルの演算式が逆ポーランド記法にて記憶されているため、演算処理の高速化を図ることができる。また、このように演算情報を外部記憶部１１に外部ファイルとして格納することで、演算情報の追加や更新を容易に行なうことができる。ただし、演算式は、演算情報定義ファイルから取得した後で逆ポーランド記法に変換して実行してもよい。以降、同様にして、事前処理データに格納すべき全ての値についてステップＳＢ−２〜ＳＢ−７を繰り返し、全ての値の格納を終了した時点で（ステップＳＢ−８，Ｙｅｓ）、事前処理データの実データの生成が終了する。なお、上述したように、演算情報定義ファイル（図８）を用意せず、事前処理テンプレートに演算式を直接含めるものとしてもよい。この場合には、出力すべきＦＩＤの値が演算式である場合には演算を行って値を事前処理データに格納する。図８に示すように演算情報定義ファイルを用いる方法ではシステムの拡張性やメンテナンス性を高めることができ、事前処理テンプレートに演算式を直接含める方法ではより高速に処理を行うことができる。
【００６０】
なお、事前処理データの概要データに関して、レコード名については、銘柄コードに対応するＦＩＤが予め決まっているため、このＦＩＤの項目の情報の値を証券データから取得し、この銘柄コードの値と、当該事前処理サーバ１０に接続されている証券取引所（取引所サーバ１００）を特定するための所定の識別情報「Ｔ＄１」とを接続子「＃」で連結して生成する。テンプレートの種別については、図１２のステップＳＡ−６において取得されたテンプレートに対応する所定の番号を格納する。これにて事前処理データの概要データの生成が終了する。
【００６１】
その後、図１２のステップＳＡ−８において、上述のように生成された事前処理データと、ステップＳＡ−６において用いた事前処理テンプレートの種別とが、事前処理データ生成部１５ｂから発行ＡＰＩ１５ｃに受け渡される（ステップＳＡ−８）。発行ＡＰＩ１５ｃは、当該発行ＡＰＩ１５ｃのキャッシュ領域に事前処理データおよびテンプレートの種別を格納する。
以降同様に、証券データが受信される毎に、ステップＳＡ−６〜ＳＡ−８の処理がリアルタイムに実行される。証券データは、最初の配信以降は更新された情報のみが含まれたものが配信されてくるため、発行ＡＰＩ１５ｃは、当該発行ＡＰＩ１５ｃのキャッシュ領域に格納されている事前処理データの該当の情報を更新する。
そして、発行ＡＰＩ１５ｃは、キャッシュに格納している事前処理データおよびテンプレートの種別を、配信処理サーバ２０の要求ＡＰＩ２６ａからのリクエストに応じて、配信処理サーバ２０に送信する（ステップＳＡ−９）。具体的には、発行ＡＰＩ１５ｃは、配信処理サーバ２０の要求ＡＰＩ２６ａからリクエストがあると、キャッシュに格納されている事前処理データの全情報を要求ＡＰＩ２６ａに送信し、その後は、更新された情報のみを自動的に要求ＡＰＩ２６ａに配信する。
なお、テンプレートの種別については事前処理データの内部にも含まれるため、当該種別を特定するデータの送信は省略してもよいが、このように送信することで、事前処理データの内容を解析することなく種別を特定でき、配信処理サーバ２０における処理の一層の高速化を図ることができる。これにて事前処理サーバ１０における処理が終了する。なお、事前処理テンプレートの種別を送信する代わりに、テンプレート種別に対応するＦＩＤとして、ＦＩＤの最初の値（例えばＦＩＤ００００）を割り当てるとともに、これを事前処理データの実データの最初の位置に含めることとしてもよい。この場合には、配信データ生成において、事前処理データの概要データのテンプレート種別を参照するという特別な処理を設けなくても、最初にテンプレート種別（ＦＩＤ００００）が参照されることとなり、上述の事前処理テンプレートの種別を送信する方法と同様に処理の高速化を図ることができる。
【００６２】
（データ配信処理−配信処理サーバ２０）
次に、配信処理サーバ２０にて行われる処理を図１４のフローチャートを参照しつつ説明する。配信処理サーバ２０が起動されると、要求ＡＰＩ２６ａは、配信処理テンプレートＤＢ２３に格納されている配信処理テンプレートの全てを取得してキャッシュ領域に読込む（ステップＳＣ−１）。なお、ここで、上述の事前処理データ生成時と同様、配信処理テンプレートの全てをキャッシュに保持する処理を行なわず、事前処理データから配信データを生成する都度、配信処理テンプレートＤＢ２３から対応するテンプレートを参照する処理手順としてもよい。
【００６３】
次に、要求ＡＰＩ２６ａが、事前処理サーバ１０の発行ＡＰＩ１５ｃにリクエストすることにより、発行ＡＰＩ１５ｃのキャッシュに格納されている事前処理データの全情報と、テンプレートの種別とを受信する（ステップＳＣ−２）。この処理は、上述で説明した図１２の事前処理データ送信（ステップＳＡ−９）の処理に対応している。ここで受信した事前処理データは、要求ＡＰＩ２６ａのキャッシュに格納した後、配信データ生成部２６ｂに受け渡される。そして、ここで受信した事前処理データは、配信処理サーバ２０にとって起動後に最初に受信したデータであるため、配信データ生成部２６ｂにて初期配信処理を行う（ステップＳＣ−３）。
【００６４】
その後、要求ＡＰＩ２６ａは、事前処理サーバ１０からの事前処理データの受信の有無を監視し（ステップＳＣ−４）、事前処理データを受信した際には（ステップＳＣ−４，Ｙｅｓ）、当該受信処理データを要求ＡＰＩ２６ａのキャッシュに格納した後、配信データ生成部２６ｂに受け渡す。ここで受信した事前処理データは、既に受信した事前処理データを更新するデータであるため、配信データ生成部２６ｂにて更新配信処理を行う（ステップＳＣ−５）。以降は、事前処理データが受信される毎に更新配信処理が行われる。
【００６５】
配信データ生成部２６ｂは、当該配信処理サーバ２０の起動後、初めて事前処理データを受信した場合には（ステップＳＣ−３，Ｙｅｓ）、初期配信処理を行ない（ステップＳＣ−４）、それ以外の場合（起動後における２回目以降の事前処理データの受信の場合）には（ステップＳＣ−３，Ｎｏ）、更新配信処理を行なう（ステップＳＣ−５）。以降は、事前処理データが受信される毎に、更新配信処理が行われる。
【００６６】
初期配信処理のフローチャートを図１５に示す。配信データ生成部２６ｂは、配信データ生成処理用のキャッシュ領域を確保した後（ステップＳＤ−１）、図１４のステップＳＣ−１で読込んだ全ての配信処理テンプレートのうち、事前処理サーバ１０の発行ＡＰＩ１５ｃから送信されたテンプレート種別に対応するテンプレートを参照して、事前処理データに含まれる情報のうち、配信データに含めるべき情報のみを抽出する。具体的には、パラメータＸを初期値＝０（特許請求の範囲における識別情報の所定の先頭値に対応する）にて初期化した後（ステップＳＤ−２）、Ｘを配信テンプレート（図１０参照）における列数ｍで除算することで、当該配信テンプレートにおけるＦＩＤ＝Ｘのフラグの位置を特定する（ステップＳＤ−３）。例えば、０を８で除算して「商＝０」「余り＝０」となるため、配信テンプレートの座標（０，０）にあるフラグが、ＦＩＤ＝００００の情報のフラグであることが判る。
【００６７】
そして、この座標にあるフラグが立っているか否かを判定し（ステップＳＤ−４）、立っている場合には（ステップＳＤ−４，Ｙｅｓ）、当該ＦＩＤ＝Ｘに対応して図３の実データに格納されている値を、配信処理データにおける当該ＦＩＤ＝Ｘの値として格納する（ステップＳＤ−５）。次いで、Ｘが所定値Ｙ（ＦＩＤの所定の最大値であり、特許請求の範囲における識別情報の所定の最後値に対応する）に達したか否かを判定し（ステップＳＤ−６）、達していない場合には（ステップＳＤ−６，Ｎｏ）、Ｘを１つ増分した後（ステップＳＤ−７）、再びステップＳＤ−３に移行する。以降同様に、ＸがＹに達するまで各フラグの特定や値の格納を行う。すなわち、ＦＩＤを先頭値（０）から最後値（Ｙ）まで順次参照し、当該参照する毎に、各ＦＩＤに対応する識別子を順次参照して、値の格納を行う。
【００６８】
その後、Ｘが所定値Ｙに達した場合には（ステップＳＤ−６，Ｙｅｓ）、配信データを発行ＡＰＩ２６ｃのキャッシュに格納し（ステップＳＤ−８）、顧客サーバ１０２に配信できる状態にする（ステップＳＤ−９）。これにて初期配信処理が終了する。その後、発行ＡＰＩ２６ｃは、顧客サーバ１０２の要求ＡＰＩ１０２ａからのリクエストに応じて、その時点でキャッシュに格納している配信データの全情報を配信データとして（その顧客サーバ１０２にとっての初期配信データとなる）顧客サーバ１０２に向けて配信する。
【００６９】
次に、更新配信処理について説明する。本システム１の起動後の最初のデータ配信時には、取引所サーバ１００から全ての情報を含む証券データを送信されるが、その後のデータ配信時には、差分（更新分）のみを含む証券データ（以下、「更新証券データ」）を送信することで、データのトラフィック量を低減している。従って、更新証券データに基づいて生成された事前処理データ（以下、「更新事前処理データ」）は、当該更新証券データに含まれる情報のみ(一部のＦＩＤに対応する値のみ）を含む。図１６には、更新事前処理データを例示する。この更新事前処理データの実データは、ＦＩＤ１０５１とＦＩＤ１９２１の２つのみを含んで構成されている。
【００７０】
このような更新事前処理データに基づいて配信データを生成する際、上述した初期配信処理をそのまま実行したのでは、更新事前処理データに含まれる情報が比較的少ないにも関わらず、ＦＩＤ＝０からＦＩＤ＝Ｙに至るまで順次フラグを参照することになり、全部で「１＋Ｙ」回分の処理を行なうことになるため、処理速度が無用に長くなる。特に、証券データの配信システムの如き大規模システムでは、Ｙが大きな数値（例えば２０００〜３０００個）程度になるため、この処理速度の長時間化が一層深刻になる。
【００７１】
このような問題を回避するため、本実施形態の更新配信処理では、先に更新事前処理データに含まれるＦＩＤを参照し、このＦＩＤに対応するフラグのみを参照する。すなわち、事前処理データと配信データテンプレートとの参照順序を、初期配信処理とは逆転させている。具体的には、図１７のフローチャートに示すように、配信データ生成部２６ｂは、配信データ生成処理用のキャッシュ領域を確保した後（ステップＳＥ−１）、更新事前処理データからＦＩＤを取得する（ステップＳＥ−２）。また、図１４のステップＳＣ−１で読込んだ全ての配信処理テンプレートうち、事前処理サーバ１０の発行ＡＰＩ１５ｃから送信されたテンプレート種別に対応するテンプレートを参照し、このテンプレートにおける、当該ＦＩＤに対応するフラグの位置を特定する（ステップＳＥ−３）。このフラグの位置の特定は、図１５のステップＳＤ−３と同様に行うことができ、例えばＦＩＤ１０５１のフラグの位置は、１０５１を８で除算して「商＝１３１」「余り＝３」となるため、配信テンプレートの座標（１３１，３）にあるフラグが、ＦＩＤ＝１０５１の情報のフラグであることが判る。
【００７２】
そして、この座標にあるフラグが立っているか否かを判定し（ステップＳＥ−４）、立っている場合には（ステップＳＥ−４，Ｙｅｓ）、当該ＦＩＤに対応して図１６の実データに格納されている値を、配信処理データにおける当該ＦＩＤの値として格納する（ステップＳＥ−５）。以降同様に、更新事前処理データに含まれる全てのＦＩＤについてステップＳＥ−２〜ＳＥ−５の処理を行ない、全てのＦＩＤについての処理を終えた場合には（ステップＳＥ−６，Ｙｅｓ）、配信データで発行ＡＰＩ２６ｃのキャッシュに記憶されている配信データを更新する（ステップＳＥ−７）。すなわち、更新配信時においては、一部のＦＩＤのみを含む。発行ＡＰＩ２６ｃは、顧客サーバ１０２に上述の図１５のステップＳＤ−９の通り初期配信を行なった後は、発行ＡＰＩ２６ｃのキャッシュが更新される度に、更新された情報を配信データとしてその顧客サーバ１０２に向けて自動的に配信する（ステップＳＥ−８）。これにて更新配信処理が終了する。
【００７３】
（ＡＰＩの機能）
最後に、ＡＰＩの機能およびＡＰＩによる具体的なデータ配信について再び図１１を参照しつつ説明する。なお、ここでは配信処理サーバ２０の発行ＡＰＩ２６ｃと顧客サーバ１０２の要求ＡＰＩ１０２ａとの間の処理を例として説明する。
【００７４】
（１）配信開始通知機能
配信処理サーバ２０の発行ＡＰＩ２６ｃは、初期配信処理で生成された配信データの全件をキャッシュに記憶させた後に、顧客サーバ１０２（接続する顧客サーバ１０２が複数である場合には全ての顧客サーバ１０２）の要求ＡＰＩ１０２ａを呼び出して（ｃａｌｌして）、要求ＡＰＩ１０２ａからのリクエストの受付を開始する。これにより、配信開始前の無駄な通信を解消することができる。
【００７５】
（２）クライアントウォッチ機能
また、配信処理サーバ２０の発行ＡＰＩ２６ｃは、接続先のクライアント（すなわち顧客サーバ１０２）が現在閲覧している（配信を受けている）配信データが何であるか（接続する顧客サーバ１０２が複数である場合には、どの顧客サーバ１０２が何を閲覧しているか）を管理する機能があり、例えば、どのデータ種別のどの銘柄を閲覧しているのか（「銘柄コードが９７３７の株券データ」等）を、発行ＡＰＩ２６ｃのキャッシュに記憶することにより管理している。そして、このように管理された配信データについて更新配信データが生成されると、発行ＡＰＩ２６ｃのキャッシュを更新すると共に、その更新配信データを顧客サーバ１０２に配信する。そして、顧客サーバ１０２の要求ＡＰＩ１０２ａが新たに他のデータの閲覧を要求すると、当該データについて閲覧している旨の管理を開始すると共に、そのデータについてキャッシュに格納されている全情報（全項目）を送信し、以降は、そのデータについても更新された情報のみを送信する。
ここで、データ配信の方法には「インタラクティブ型」と「ブロードキャスト型」があり、発行ＡＰＩ２６ｃと要求ＡＰＩ１０２ａとの相互間の通信においては、いずれかを採用することができる。
インタラクティブ型であるかブロードキャスト型であるかに関わらず、配信処理サーバ２０の発行ＡＰＩ２６ｃは、上述したように、顧客サーバ１０２の要求ＡＰＩ１０２ａから配信データのリクエストがあると、当該発行ＡＰＩ２６ｃのキャッシュに格納している配信データの全項目を当該顧客サーバ１０２に送信する。その後は、クライアントがその配信データを閲覧しなくなるまで（閲覧をやめる旨のリクエストを送ってくるまで）、キャッシュを更新するたびに更新分を送る。ここで、インタラクティブ型では、顧客サーバ１０２の要求ＡＰＩ１０２ａからリクエストされた配信データが当該発行ＡＰＩ２６ｃのキャッシュになかった場合に、配信処理サーバ２０の配信データ生成部２６ｂに当該配信データを生成させて配信する。一方、ブロードキャスト型では、このような場合には、顧客サーバ１０２にエラーを返すのみとする。すなわち、インタラクティブ型では、必ずしも配信データをあらかじめキャッシュしておく必要はなく、顧客サーバ１０２からのリクエストが少ない場合に適しているが、顧客サーバ１０２への応答処理が遅くなる可能性がある。一方、ブロードキャスト型では、顧客サーバ１０２への応答処理は速くなるものの、最初に全てのデータを生成かつキャッシュしておく必要がある。
【００７６】
（３）負荷分散機能
また、負荷分散やフェールセーフ等を目的として配信処理サーバ２０を複数備えている場合において、顧客サーバ１０２の要求ＡＰＩ１０２ａは、あらかじめ設定された接続先の情報に従っていずれかの配信処理サーバ２０に接続し、データを取得することができる。接続先の情報は、例えば設定ファイルなどに記述しておき、顧客サーバ１０２の起動時にその設定ファイルを参照させることにより、要求ＡＰＩ１０２ａに接続先の情報を取得させることができる。なお、設定ファイル以外の方法で接続先を管理してもよい。
ここで、例えば、配信処理サーバ２０（Ａ）と配信処理サーバ２０（Ｂ）の２つのサーバを備えている場合に、サーバＡ，サーバＢに優先順位をつけることができる。すなわち、要求ＡＰＩ１０２ａにおいて、サーバＡをプライマリサーバ、サーバＢをセカンダリサーバとして、これらのサーバを接続先として設定ファイルに記述する。そうすると、要求ＡＰＩ１０２ａは通常はサーバＡに接続して配信データを受信するが、サーバＡの障害等により接続できなくなった場合には、サーバＢに接続してリクエストを行い、配信データを受信する。
また、優先順位をつけずに複数のサーバを接続先とすることもできる。すなわち、優先順位をつけずにサーバＡ，サーバＢを接続先として設定ファイルに記述すると、要求ＡＰＩ１０２ａはリクエストをサーバＡ，サーバＢに例えば交互に出し,負荷の分散を図ることができる。
これらの処理は全て要求ＡＰＩ１０２ａが行うため、配信データを処理する顧客サーバ１０２のアプリケーションは、接続先について意識する必要がない。
【００７７】
（実施の形態１の効果）
このように本実施の形態によれば、取引所サーバ１００から送信された証券データから事前処理データを生成し、この事前処理データからさらに配信データを生成して顧客サーバ１０２に送信することができ、データ種別や提供先の所望するデータ項目等の相違を吸収した上で、データ配信することができる。特に、第１定義情報や第２定義情報を事前処理テンプレートＤＢ１３や配信テンプレートＤＢ２３に格納したことで、これらをプログラムの内部に記述する場合に比べて、これら定義情報の追加や更新を容易に行うことができ、システムの拡張性を高めることができる。
【００７８】
また、多様な情報を含んだ証券データから、データ種別に応じた所定の情報を含む事前処理データを生成することで、証券データの多様性を吸収することができる。さらに、事前処理データから、データ種別及び配信先に応じた所定の情報を含む配信データを生成することで、提供先における情報ニーズの多様性を吸収することができる。
【００７９】
また、証券データから配信データに至る情報の享受の過程において、ＦＩＤを用いて情報を一意に特定することができ、情報の正確かつ高速な配信が可能になる。また、ＦＩＤを用いることで、情報の追加や更新を行い場合にも、これら情報とＦＩＤとの関連付けを変更したり、ＦＩＤを追加や更新することで対応できるので、システムの拡張性を一層高めることができる。
【００８０】
各情報とＦＩＤとの対応情報を外部記憶部１１に格納したことで、これらをプログラムの内部に記述する場合に比べて、対応情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００８１】
予納情報を外部記憶部１１から取得して事前処理データに含めることができるので、証券データに含まれていない情報についても配信データに含めて配信でき、配信情報の内容を一層充実させることができる。特に、予納情報を外部記憶部１１に格納したことで、これらをプログラムの内部に記述する場合に比べて、予納情報の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００８２】
演算を行うことで演算情報を取得して事前処理データに含めることができるので、証券データに含まれていない情報についても配信データに含めて配信でき、配信情報の内容を一層充実させることができる。
【００８３】
演算式を外部記憶部１１に格納したことで、これらをプログラムの内部に記述する場合に比べて、演算式の追加や更新を容易に行うことができ、システムの拡張性を一層高めることができる。
【００８４】
データ配信システムの起動後に初めて証券データの送信要求をベンダーサーバ１０１に送信する際、受信済みの証券データ以外の証券データのみの送信をベンダーサーバ１０１に要求することで、データ配信システムに障害が発生して再起動したような場合にも、全ての証券データを受信することなく、未受信の証券データのみを受信できるので、システムの立上げ時間を短縮化することができる。
【００８５】
フラグの位置とＦＩＤとが対応付けられていることで。、配信データに含めるべき情報を事前処理データの中から高速で抽出することができ、システムの高速化を一層促進することができる。
【００８６】
初期配信時には、全てのＦＩＤや当該ＦＩＤに対応するフラグを順次参照して情報抽出を行うのに対して、更新配信時には、事前処理データに含まれるＦＩＤと当該ＦＩＤに対応するフラグのみを順次参照するので、事前処理データに含まれる情報の数が少ない更新時には、無用なフラグの参照を行うことを回避でき、更新処理の高速化を図ることができる。
【００８７】
〔実施の形態２〕
次に、本発明に係る実施の形態２について説明する。この形態は、配信データ生成において、配信テンプレートのフラグを参照した後で、フラグが立っている場合にのみ付加情報（予納情報や演算情報）の取得を行う形態である。なお、実施の形態１と同様の構成要素については、必要に応じて、実施の形態１で用いたのと同一の符号又は名称を付してその説明を省略する。
【００８８】
（データ構造）
本実施の形態における「ＦＩＤ情報定義ファイル」の構造について説明する。このＦＩＤ情報定義ファイルは、ＦＩＤと当該ＦＩＤに対応する値との対応関係を特定するためのもので、特許請求の範囲における識別付加対応格納手段に対応する。例えば、ＦＩＤ情報定義ファイルは、図１８に示すように、ＦＩＤと当該ＦＩＤに対応する値とを相互に関連付けたテーブルとして構成されている。ここでは図５の事前処理テンプレートと同様に、「値」が、事前処理データから取得可能な値である場合には空白値（図１８における「−」）、予納特定情報である場合には予納情報へのパス、演算情報である場合には当該演算情報を一意に特定するための演算特定情報が格納されている。なお、演算情報（演算式）のように一意に特定できる情報については、ＦＩＤ情報定義ファイルに直接含める形（演算特定情報の代わりに演算式を含める）で保有してもよい。
【００８９】
（システム構成）
ここでは、予納情報定義ファイル及び演算情報定義ファイルと、上述したＦＩＤ情報定義ファイルとが、配信処理サーバ２０の外部記憶部２１に格納されている。
【００９０】
（データ配信処理−事前処理サーバ１０）
次に、事前処理サーバ１０にて行われる具体的処理について説明する。ここでは、図１２に例示したものとほぼ同様の処理を行なうが、ステップＳＡ−７における処理が異なる。この処理について、図１９のフローチャートを参照しつつ説明する。事前処理データ生成部１５ｂは、最初にステップＳＡ−７で取得した事前処理テンプレート（図５参照）を参照して、出力すべきＦＩＤとその値とを特定する（ステップＳＦ−１）。この時、当該値が空白値であれば（ステップＳＦ−２，Ｙｅｓ）、当該値を証券データ（図２参照）から取得し（ステップＳＦ−３）、当該取得した値を、事前処理テンプレートの当該ＦＩＤの値として格納する（ステップＳＦ−４）。
【００９１】
一方、出力すべきＦＩＤの値が予納特定情報や演算特定情報である場合には（ステップＳＢ−２，Ｎｏ）、これら予納特定情報や演算特定情報の取得や格納を行うことなく、次のＦＩＤの処理に移行する。そして、以降、同様にして、事前処理データに格納すべき全ての値についてステップＳＢ−２〜ＳＢ−４を繰り返し、全ての値の処理を終了した時点で（ステップＳＢ−５，Ｙｅｓ）、事前処理データの実データの生成が終了する。
【００９２】
（データ配信処理−配信処理サーバ２０）
次に、配信処理サーバ２０にて行われる処理について説明する。ここでは、図１５、１７に例示したものとほぼ同様の処理を行なうが、ステップＳＤ−５やＳＥ−５における処理が異なる。この処理について、図２０のフローチャートを参照しつつ説明する。配信データ生成部２６ｂは、図１５のステップＳＤ−４や図１７のステップＳＥ−４においてフラグが立っていると判定した場合にのみ、図２０に示す処理によって、当該フラグに対応する値を取得して配信データに格納する。
【００９３】
具体的には、立っていると判定したフラグに対応するＦＩＤに基づいてＦＩＤ情報定義ファイル（図１８）を参照し、このＦＩＤに対応する値を取得する（ステップＳＧ−１）。そして、ＦＩＤに対応する値が空白値である場合には（ステップＳＧ−２，Ｙｅｓ）、当該値を事前処理データから取得し（ステップＳＧ−３）、当該取得した値を配信データに格納する（ステップＳＧ−４）。一方、ＦＩＤに対応する値が予納特定情報である場合には（ステップＳＧ−２，Ｎｏ、ステップＳＧ−５，Ｙｅｓ）、当該予納特定情報にて特定される予納情報定義ファイル（図７参照）を参照し、読み込んだ証券データに含まれる証券コードに対応する予納情報（銘柄名）を取得して（ステップＳＧ−６）、当該取得した予納情報（銘柄名）を配信データに格納する（ステップＳＧ−４）。あるいは、ＦＩＤに対応する値が演算特定情報である場合には（ステップＳＧ−５，Ｎｏ）、当該演算特定情報に対応する演算式を演算情報定義ファイル（図８参照）から取得し、当該演算式による演算を行うことで当該値を算定して（ステップＳＧ−７）、この算定した値を配信データに格納する（ステップＳＧ−４）。以降同様に、フラグが立っていると判定された場合にのみ、当該フラグに対応するＦＩＤの値を取得して配信データに格納する。
【００９４】
（実施の形態２の効果）
このように本実施の形態によれば、フラグが立っていると判定された場合にのみ、当該フラグに対応するＦＩＤの値を取得して配信データに格納するので、配信データに含めるべき情報についてのみ予納情報の取得や演算式の算定を行い、配信データに含めない情報については予納情報の取得や演算式の算定を省略できるので、処理の高速化を一層促進することができる。また、上述の実施の形態１にＦＩＤ情報定義ファイルを備えることにより、事前処理データ生成時にＦＩＤ情報定義ファイルを参照して付加情報を取得する構成とすることもできる。
【００９５】
〔III〕実施の形態に対するその他の変形例
以上、本発明の各実施の形態について説明したが、本発明の具体的な構成及び方法は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良できる。以下、このような変形例について説明する。
【００９６】
（解決しようとする課題や発明の効果について）
発明が解決しようとする課題や発明の効果は、前記した内容に限定されるものではなく、本発明によって、前記に記載されていない課題を解決したり、前記に記載されていない効果を奏することもでき、また、記載されている課題の一部のみを解決したり、記載されている効果の一部のみを奏することがある。
【００９７】
（構成及び制御について）
また、上記各実施の形態で自動的に行われるものとして説明した制御の全部または任意の一部を手動で行っても良く、逆に、手動で行われるものとして説明した制御の全部または任意の一部を公知技術または上述した思想に基づいて自動化しても良い。また、上記実施の形態において示した各構成要素の各機能ブロックの一部又は全部を、ハードワイヤードロジックにて構成しても良い。
【００９８】
（分散や統合について）
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成できる。
【００９９】
（各サーバの対応について）
上記各実施の形態では、１台の取引所サーバ１００に１台の事前処理サーバ１０を割り当てると共に、１台の顧客サーバ１０２に１台の配信処理サーバ２０を割り当てることで、負荷が特定のサーバに集中することを防止すると共に、特定のサーバに障害が発生した場合のシステム停止のリスクを低減している。この他にも、事前処理サーバ１０や配信処理サーバ２０に任意の冗長性を持たせることができる。
【０１００】
また、複数の取引所サーバ１００に１台の事前処理サーバ１０を割り当ててもよい。この場合、事前処理サーバ１０では、自己に送信された証券データが、いずれの取引所サーバ１００から送信されたものであるのかを特定する必要がある。この特定は、証券データに含まれる取引所コードを参照したり、送信アドレスを解析することで可能になる。また、証券取引所に応じて証券データに含まれる情報が異なる場合には、証券データ定義ファイルや事前処理テンプレートを証券取引所に応じて複数保有しておき、証券データの提供先の証券取引所に応じた証券データ定義ファイルや事前処理テンプレートを用いて、事前処理データを生成する。このような場合、証券データの提供元に関わらず、データ種別毎に共通の内容や形式の事前処理データ（中間データ）を作成することができる。
【０１０１】
同様に、複数の顧客サーバ１０２に１台の配信処理サーバ２０を割り当ててもよい。この場合、配信処理サーバ２０では、配信先になる証券会社（実際には顧客サーバ１０２）のニーズに応じて、配信データに含まれる情報を変えることができる。具体的には、配信処理テンプレートを証券会社毎に複数保有しておき、配信先の証券会社に応じた配信処理テンプレートを用いて、配信データを生成する。
【０１０２】
（事前処理データの生成について）
上記各実施の形態では、証券データから事前処理データを生成する際にＦＩＤを付加しているが、証券データの各情報に識別情報が既に含まれている場合には、本システムにおいて、当該証券データの識別情報と上記ＦＩＤとの対応関係を示す対応表を外部記憶部１１に格納しておき、この対応表を参照して、当該証券データの識別情報をＦＩＤに付け替えるようにしてもよい。
また、外部記憶部１１には予納情報を格納しているが、この他にも、証券データに含まれる情報や予納情報に含まれる情報の中から、事前処理データに含めるべき情報を選択するための選択条件式（例えばＳＱＬによるｓｅｌｅｃｔ文）を格納しておき、この選択条件式を参照して、事前処理データに含めるべき情報を選択するようにしてもよい。
【０１０３】
（配信データの生成について）
上記各実施の形態では、初期配信時と更新配信時とで配信データ生成の処理の手順（順序）を使い分けることにより処理を効率化しているが、初期配信時・更新配信時に関わらずいずれかの処理手順のみによることとしてもよい。また、初期配信・更新配信以外の条件により処理手順を使い分けることとしてもよい。
【０１０４】
（配信データの配信について）
配信処理サーバ２０の外部記憶部２１に、各配信先のニーズに応じた配信タイミングを特定するためのタイミング情報を格納しておき、このタイミング情報を参照して、配信データの配信タイミングを決定してもよい。
【０１０５】
（ＡＰＩについて）
上記各実施の形態では、発行ＡＰＩ１５ｃ、２６ｃや要求ＡＰＩ２６ａ、１０２ａを用いて各データの送受を行っているが、この処理を、ＡＰＩではなく内部プログラムとして記述してもよい。また、ＡＰＩのキャッシュに格納すると説明した各データや各情報については、外部記憶部１１、２１や任意のデータベースに格納してもよい。
【０１０６】
（事前処理データ・配信データの蓄積について）
上記各実施の形態では、生成した事前処理データや配信データをキャッシュに一時記憶し、発行ＡＰＩ１５ｃ、２６ｃや要求ＡＰＩ２６ａ、１０２ａを通じて送受信しているが、さらに、これらのデータをデータベースに蓄積するようにしてもよい。この場合には、例えば、事前処理サーバ１０に事前処理データのデータベースを、配信処理サーバ２０に配信データのデータベースを用意（あるいは、配信処理サーバ２０に両方のデータベースを用意）して格納する。このようにデータを蓄積することにより、上記各実施の形態における証券データＤＢと同様に、サーバの再起動時や、保守・管理等に利用することができる。
【産業上の利用可能性】
【０１０７】
以上のように、本発明は、証券データの如き各種のデータを提供元から受信して提供先にネットワーク配信するためのシステムに適用され、特にシステムの拡張性や高速性を向上させることに有用である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態１に係るシステム構成を機能概念的に示すブロック図である。
【図２】証券データ（電文データ）の構成例を示す図である。
【図３】ＦＩＤと情報との対応関係例を示す図である。
【図４】事前処理データの構成例を示す図である。
【図５】事前処理テンプレートの構成例を示す図である。
【図６】証券データ定義ファイルの構成例を示す図である。
【図７】予納情報定義ファイルの構成例を示す図である。
【図８】演算情報定義ファイルの構成例を示す図である。
【図９】配信データの構成例を示す図である。
【図１０】配信テンプレートの構成例を示す図である。
【図１１】ＡＰＩを用いたデータの送受信の基本概念の説明図である。
【図１２】事前処理サーバの処理のフローチャートである。
【図１３】事前処理データの生成処理のフローチャートである。
【図１４】配信処理サーバの処理のフローチャートである。
【図１５】初期配信処理のフローチャートである。
【図１６】更新事前処理データの構成例を示す図である。
【図１７】更新配信処理のフローチャートである。
【図１８】ＦＩＤ情報定義ファイルの構成例を示す図である。
【図１９】実施の形態２における事前処理サーバの生成処理のフローチャートである。
【図２０】実施の形態２における配信処理サーバの処理のフローチャートである。
【符号の説明】
【０１０９】
１  データ配信システム
１０  事前処理サーバ
１１、２１  外部記憶部
１２  証券データＤＢ
１３  事前処理テンプレートＤＢ
１４、２５  ネットワークインターフェース
１５  制御部
１５ａ  受信部
１５ｂ  事前処理データ生成部
１５ｃ、２６ｃ  発行ＡＰＩ
２０  配信処理サーバ
２３  配信テンプレートＤＢ
２６ａ、１０２ａ  要求ＡＰＩ
２６ｂ  配信データ生成部
１００  取引所サーバ
１０１  ベンダーサーバ
１０２  顧客サーバ
【図１】
2008276402.tif 000003
【図２】
2008276402.tif 000004
【図３】
2008276402.tif 000005
【図４】
2008276402.tif 000006
【図５】
2008276402.tif 000007
【図６】
2008276402.tif 000008
【図７】
2008276402.tif 000009
【図８】
2008276402.tif 000010
【図９】
2008276402.tif 000011
【図１０】
2008276402.tif 000012
【図１１】
2008276402.tif 000013
【図１２】
2008276402.tif 000014
【図１３】
2008276402.tif 000015
【図１４】
2008276402.tif 000016
【図１５】
2008276402.tif 000017
【図１６】
2008276402.tif 000018
【図１７】
2008276402.tif 000019
【図１８】
2008276402.tif 000020
【図１９】
2008276402.tif 000021
【図２０】
2008276402.tif 000022
【手続補正書】
【提出日】平成20年3月24日(2008.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
データの提供元の提供元装置とデータの配信先の配信先装置とにネットワークを介して接続されるもので、相互にデータフォーマットが異なる各種のデータを提供する前記提供元装置から送信された原データに基づいて作成された配信データを前記配信先装置に向けて配信するデータ配信システムであって、
前記原データに含まれる情報の中で前記事前処理データに含めるべき情報を、少なくとも前記原データ毎に前記データフォーマットを区分するための複数のデータ種別に応じて特定するための複数の第１定義情報を格納する第１定義情報格納手段と、
前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を、複数のデータ種別及び前記配信先装置に応じて特定するための複数の第２定義情報を格納する第２定義情報格納手段と、
前記提供元装置から前記原データを受信するデータ受信手段と、
前記データ受信手段にて受信された前記原データのデータ種別を特定し、当該特定したデータ種別に応じた第１定義情報を前記第１定義情報格納手段から取得して参照し、前記事前処理データに含めるべき情報を前記原データから取得することによって、当該特定したデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成手段と、
前記事前処理データ生成手段にて生成された前記事前処理データのデータ種別を特定すると共に、配信データを配信すべき前記配信先装置を特定し、当該データ種別及び当該配信先装置に応じた第２定義情報を前記第２定義情報格納手段から取得して参照し、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を取得することによって、当該特定したデータ種別及び当該特定した配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成手段と、
前記配信データ生成手段にて生成された前記配信データを、前記配信先装置に送信するデータ送信手段と、
を備えることを特徴とするデータ配信システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
前記第２定義情報は、前記事前処理データに含まれる情報を前記配信データに含めるべきか否かを識別するための識別子を、所定の行数及び列数からなるビットマップにおける前記識別情報に対応する位置のビットに格納して構成され、
前記配信データ生成手段は、前記事前処理データに含まれる識別情報を順次参照し、該識別情報を前記ビットマップの列数で除算した商及び余に基づいて当該ビットマップにおける当該識別情報に対応する位置を特定し、当該特定した位置の識別子が前記配信データに含めるべき情報であることを示す場合に、前記配信データに含めるべき情報を前記事前処理データの中から抽出すること、
を特徴とする請求項２又は３に記載のデータ配信システム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
データの提供元の提供元装置とデータの配信先の配信先装置とにネットワークを介して接続されたデータ配信システムに対して、相互にデータフォーマットが異なる各種のデータを提供する前記提供元装置から送信された原データに基づいて作成された配信データを前記配信先装置に向けて配信するデータ配信方法を実行させるためのプログラムであって、
前記データ配信システムが、
前記原データに含まれる情報の中で前記事前処理データに含めるべき情報を、少なくとも前記原データ毎に前記データフォーマットを区分するための複数のデータ種別に応じて特定するための複数の第１定義情報を格納する第１定義情報格納手段と、
前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を、少なくともデータ種別及び前記配信先装置に応じて特定するための複数の第２定義情報を格納する第２定義情報格納手段とを備える場合において、
前記提供元装置から前記原データを受信するデータ受信ステップと、
前記データ受信ステップにおいて受信された前記原データのデータ種別を特定し、当該特定したデータ種別に応じた第１定義情報を前記第１定義情報格納手段から取得して参照し、前記事前処理データに含めるべき情報を前記原データから取得することによって、当該特定したデータ種別に応じた所定の情報を含む事前処理データを生成する事前処理データ生成ステップと、
前記事前処理データ生成ステップにおいて生成された前記事前処理データのデータ種別を特定すると共に、配信データを配信すべき前記配信先装置を特定し、当該データ種別及び当該配信先装置に応じた第２定義情報を前記第２定義情報格納手段から取得して参照し、前記事前処理データに含まれる情報の中から前記配信データに含めるべき情報を取得することによって、当該特定したデータ種別及び当該特定した配信先装置に応じた所定の情報を含む配信データを生成する配信データ生成ステップと、
前記配信データ生成ステップにおいて生成された前記配信データを、前記配信先装置に送信するデータ送信ステップと、
を実行させることを特徴とするプログラム。