(57)【要約】【課題】処理能力の低い業務装置であっても処理を遅滞なく行うことができるように業務装置へのデータの流量を制御する技術を提供する。【解決手段】流量制御装置２０は、所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む互いに異なる種別のデータを格納する複数のキュー２３と、受信したデータの種別に基づいて複数のキュー２３のいずれかに受信したデータを格納させるエンキューイング処理部２２と、複数のキュー２３のいずれかから格納されたデータを取り出して業務装置へ送信する通知処理部２４を備える。エンキューイング処理部２２は、データの種別に基づいて格納先として決定されたキューの深さが閾値に達しているときに、そのキュー２３に格納されている最も古いデータを削除してからそのキュー２３に受信したデータを格納させる。【選択図】図２
2014206835.tif 000002
【特許請求の範囲】
【請求項１】
所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む、互いに異なる種別のデータを格納する複数のキューと、
第１の装置から受信したデータの種別に基づいて、前記複数のキューのいずれかに前記受信したデータを格納させるエンキューイング処理部と、
前記複数のキューのいずれかから格納されたデータを取り出して、第２の装置へ送信する通知処理部と、を備え、
前記エンキューイング処理部は、データの種別に基づいて格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させる
ことを特徴とする流量制御装置。
【請求項２】
請求項１に記載の流量制御装置において、
前記エンキューイング処理部は、
前記第１の装置と前記第２の装置の間の通信を制御する通信制御装置を介して、前記第１の装置からデータを受信し、  
前記受信したデータが格納されると、前記通信制御装置に前記受信したデータを処理したことを通知する
ことを特徴とする流量制御装置。
【請求項３】
請求項１または請求項２に記載の流量制御装置において、
前記複数のキューの各々は、当該キューに格納されるべきデータの種別の数以上の閾値を有する
ことを特徴とする流量制御装置。
【請求項４】
請求項１乃至請求項３のいずれか１項に記載の流量制御装置において、
複数の前記通知処理部を備え、
前記複数の通知処理部の各々は、前記複数のキューのうちの対応するキューから格納されたデータを取り出して、前記第２の装置へ送信する
ことを特徴とする流量制御装置。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載の流量制御装置において、
前記エンキューイング処理部は、
データの種別に基づいて格納先として決定されたキューに前記受信したデータと同じ種別のデータが格納されているときには、前記キューに格納されている前記受信したデータと同じ種別のデータを削除してから前記キューに前記受信したデータを格納させ、
データの種別に基づいて格納先として決定されたキューに前記受信したデータと同じ種別のデータが格納されておらず、且つ、格納先として決定されたキューの深さが閾値に達しているときには、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させる
ことを特徴とする流量制御装置。
【請求項６】
請求項１乃至請求項５のいずれか１項に記載の流量制御装置と、
前記流量制御装置から送信されたデータに基づいて業務処理を行う第２の装置と、を備える
ことを特徴とする通信制御システム。
【請求項７】
第１の装置からデータを受信し、
所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む互いに異なる種別のデータを格納する複数のキューから、前記受信したデータの種別に基づいて格納先のキューを決定し、
格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させ、
前記複数のキューのいずれかから格納されたデータを取り出して、第２の装置へ送信する
ことを特徴とする流量制御方法。
【請求項８】
所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む、互いに異なる種別のデータを格納する複数のキューを備えたコンピュータに、
第１の装置からデータを受信する工程と、
前記複数のキューから、前記受信したデータの種別に基づいて格納先のキューを決定する工程と、
格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させる工程と、
前記複数のキューのいずれかから格納されたデータを取り出して、前記第２の装置へ送信する工程と、を実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、流量制御装置、通信制御システム、流量制御方法及びプログラムに関する。
【背景技術】
【０００２】
証券取引システムでは、一般に、証券取引所からの各取引銘柄の価格データは、発注業務を行うアプリケーションが実装された装置（以降、単に業務装置と記す。）に通信制御プログラムを介して送信され、受信した価格データを基に業務装置が売買価格を指定して注文を発注する。
【０００３】
通信制御プログラムからのデータの受信をトリガーにして業務装置が業務処理を開始するこのような方式をコールバック方式という。コールバック方式は、証券取引システムに限られず、複数の装置間でデータをやり取りする通信制御システムにおいて、広く採用されている方式である。
【０００４】
一方で、業務装置側から通信制御プログラムにデータを要求する方式も知られている。そのような方式は、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−０９４１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、コールバック方式を採用する従来の通信制御システムでは、上位装置からのデータの発生頻度の上昇に伴って業務装置におけるコールバックイベントの発生頻度も高まる傾向にある。このため、上位装置からのデータの発生頻度によっては、処理能力を超えた過度の負荷が業務装置に生じ得るが、業務装置に処理能力を超えた負荷が生じると、業務装置の処理性能が劣化し業務処理が遅延してしまう。
【０００７】
このようにして生じる業務処理の遅延は、さまざまな問題を引き起こす可能性がある。例えば、証券取引システムを想定すると、証券取引システムでやり取りされる価格データには有効期限があるため、業務処理の遅延により有効期限が切れた古い価格で発注が行われる場合には、業務エラーとなりその注文は不成立として処理される。つまり、業務処理の遅延によって取引機会を損失してしまう。
【０００８】
また、通信制御プログラムは、通常、業務装置からの応答を待って次のデータを業務装置に送信するように構成されている。このため、業務処理の遅延により業務装置からの応答が得られるまでの時間が長くなると、通信制御プログラムが管理するキュー、上位装置、その他それらの間の伝送路などに上位装置からのデータが滞留することになる。そして、限界を超えてデータが滞留した場合には、伝送路が強制的に切断されてしまうため、通信が維持できなくなってしまう。この場合も、業務の継続ができず取引機会を損失してしまう。
【０００９】
以上のような実情を踏まえ、本発明は、処理能力の低い業務装置であっても処理を遅滞なく行うことができるように、業務装置へのデータの流量を制御する流量制御装置、通信制御システム、流量制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第一の態様は、所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む、互いに異なる種別のデータを格納する複数のキューと、第１の装置から受信したデータの種別に基づいて、前記複数のキューのいずれかに前記受信したデータを格納させるエンキューイング処理部と、前記複数のキューのいずれかから格納されたデータを取り出して、第２の装置へ送信する通知処理部と、を備え、前記エンキューイング処理部は、データの種別に基づいて格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させる流量制御装置を提供する。
【００１１】
本発明の第二の態様は、第一の態様の流量制御装置と、第一の態様の流量制御装置から送信されたデータに基づいて業務処理を行う第２の装置と、を備える通信制御システムを提供する。
【００１２】
本発明の第三の態様は、第１の装置からデータを受信し、所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む互いに異なる種別のデータを格納する複数のキューから、前記受信したデータの種別に基づいて格納先のキューを決定し、格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させ、前記複数のキューのいずれかから格納されたデータを取り出して、第２の装置へ送信する流量制御方法を提供する。
【００１３】
本発明の第四の態様は、所定の一種類の種別のデータのみを格納する閾値が１のキューを少なくとも一つ含む、互いに異なる種別のデータを格納する複数のキューを備えたコンピュータに、第１の装置からデータを受信する工程と、前記複数のキューから、前記受信したデータの種別に基づいて格納先のキューを決定する工程と、格納先として決定されたキューの深さが閾値に達しているときに、前記キューに格納されている最も古いデータを削除してから前記キューに前記受信したデータを格納させる工程と、前記複数のキューのいずれかから格納されたデータを取り出して、前記第２の装置へ送信する工程と、を実行させるプログラムを提供する。
【発明の効果】
【００１４】
本発明によれば、処理能力の低い業務装置であっても処理を遅滞なく行うことができるように、業務装置へのデータの流量を制御する流量制御装置、通信制御システム、流量制御方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１に係る通信制御システムの構成を示す図である。
【図２】本発明の実施例１に係る通信制御システムの機能を示すブロック図である。
【図３】本発明の実施例１に係る流量制御装置の動作を示すフローチャートである。
【図４】本発明の実施例１に係る流量制御装置の動作環境定義ファイルの一例を示す図である。
【図５】本発明の実施例１に係る流量制御装置のエンキューイング処理の動作を示すフローチャートである。
【図６】本発明の実施例１に係る流量制御装置の通知処理の動作を示すフローチャートである。
【図７】本発明の実施例１に係る流量制御装置のハードウェア構成を示す図である。
【図８】本発明の実施例２に係る流量制御装置のエンキューイング処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の各実施例について説明する。
【実施例１】
【００１７】
図１は、本実施例に係る通信制御システムの構成を示す図である。図１に示す通信制御システム１は、ネットワークを通じて接続される接続先装置２との間でデータをやり取りするシステムであり、接続先装置２からのデータの受信をトリガーにして業務処理を開始するコールバック方式を採用した業務処理システムである。
【００１８】
通信制御システム１は、通信制御装置１０と、業務装置３０と、通信制御装置１０と業務装置３０との間に設けられた流量制御装置２０と、から構成されている。
【００１９】
通信制御装置１０は、主に、接続先装置２からのデータを業務装置３０に向けて送信することで接続先装置２（第１の装置）と業務装置３０（第２の装置）の間の通信を制御するという役割を担っている。通信制御装置１０は、通信制御プログラム１１を実行することにより、接続先装置２から受信したデータを順番に業務装置３０に向けて送信する。なお、通信制御装置１０は、先に送信したデータについての流量制御装置２０からの応答を待って次のデータを送信するように構成されている。
【００２０】
流量制御装置２０は、主に、通信制御装置１０から業務装置３０へ向けて送信されたデータが業務装置３０の処理能力を超えて業務装置３０へ送信されないようにデータの流量を制御するという役割と、接続先装置２からのデータが通信制御システム１０に過度に滞留しないように通信制御装置１０にデータの送信を促すという役割を担っている。流量制御装置２０は、流量制御プログラム２１を実行することにより、通信制御装置１０を介して接続先装置２から受信したデータをキュー２３に一旦格納し、格納したデータを格納動作とは非同期で取り出して業務装置３０へ送信する。流量制御装置２０がデータの格納と送信を非同期で行うことで、通信制御装置１０から業務装置３０へのデータの流量が制御される。また、流量制御装置２０がデータの格納後直ぐに通信制御装置１０に応答を返すことで、通信制御装置１０からのデータの送信が促される。なお、流量制御装置２０も、先に送信したデータについての業務装置３０からの応答を待って次のデータを送信するように構成されている。
【００２１】
業務装置３０は、接続先装置２からのデータに基づいて業務処理を実行するという役割を担っている。業務装置３０は、業務アプリケーションプログラム３１を実行することにより、接続先装置２からのデータの受信をトリガーに発生するコールバックイベントで、受信したデータに基づいて業務処理を実行する。
【００２２】
本実施例に係る通信制御システム１は、通信制御装置１０と業務装置３０との間に流量制御装置２０を含む点が従来の通信制御システムと異なっている。以降、接続先装置２が各銘柄の価格データを送信する証券取引所のサーバであり、通信制御システム１が証券取引所のサーバから各銘柄の価格データを受信し、受信した価格データに基づいて売買価格を指定して注文を発注する証券取引システムである場合を例にして、流量制御装置２０についてさらに詳細に説明する。
【００２３】
図２は、本実施例に係る通信制御システムの機能を示すブロック図である。図３は、本実施例に係る流量制御装置の動作を示すフローチャートである。図４は、本実施例に係る流量制御装置の動作環境定義ファイルの一例を示す図である。図５は、本実施例に係る流量制御装置のエンキューイング処理の動作を示すフローチャートである。図６は、本実施例に係る流量制御装置の通知処理の動作を示すフローチャートである。
【００２４】
まず、図２を参照しながら、流量制御装置２０の論理構成について説明する。流量制御装置２０は、図２に示されるように、エンキューイング処理部２２と、複数のキュー（キュー２３ａ、キュー２３ｂ、キュー２３ｃ）と、複数の通知処理部（通知処理部２４ａ、通知処理部２４ｂ、通知処理部２４ｃ）を備えている。
【００２５】
エンキューイング処理部２２は、証券取引所のサーバから受信した価格データの銘柄に基づいて複数のキューのいずれかに受信した価格データを格納させるように構成されている。つまり、エンキューイング処理部２２は、価格データの銘柄に基づいて、格納先のキューを決定する。
【００２６】
キュー２３ａ、キュー２３ｂ、キュー２３ｃは、予め決められた互いに異なる銘柄の価格データを格納するＦＩＦＯ（First In First Out）形式のキューであり、それぞれ、内部に格納することができる価格データの件数である閾値を有している。なお、以降では、キュー２３ａ、キュー２３ｂ、キュー２３ｃをキュー２３と総称する。
【００２７】
通知処理部２４ａ、通知処理部２４ｂ、通知処理部２４ｃの各々は、対応するキュー２３ａ、キュー２３ｂ、キュー２３ｃから、格納された価格データを取り出して、業務アプリケーションプログラム３１が実行されている業務装置３０に送信するように構成されている。つまり、複数の通知処理部は、全体として、複数のキューのいずれかから格納された価格データを取り出して業務装置３０へ送信するように構成されている。なお、通知処理部２４ａ、通知処理部２４ｂ、通知処理部２４ｃを通知処理部２４と総称する。
【００２８】
次に、図２から図６を参照しながら、流量制御装置２０の動作について説明する。
流量制御プログラム２１が開始されると、流量制御装置２０は、まず動作環境定義ファイル２５を読み込んで（図３のステップＳ１）、初期設定を行う。動作環境定義ファイル２５には、図４に示されるように、少なくとも、エンキューイング処理部２２がデータの種別を判別するための設定情報と、各キュー（キュー２３ａ、キュー２３ｂ、キュー２３ｃ）の設定情報とが記載されている。
【００２９】
ここでは、動作環境定義ファイル２５に従った初期設定により、エンキューイング処理部２２は、受信した価格データの“銘柄コード”によって価格データの種別を判別するように構成される。また、キュー２３ａは、銘柄コードＹＹＹＹで特定される銘柄の価格データのみを格納する閾値が１のキューとして、キュー２３ｂは、銘柄コードＸＸＸＸで特定される銘柄の価格データのみを格納する閾値が１のキューとして、キュー２３ｃは、銘柄コードＸＸＸＸ及びＹＹＹＹ以外の銘柄コードで特定される銘柄の価格データを格納する閾値が５のキューとして、構成される。
【００３０】
初期設定が完了すると、流量制御装置２０では、エンキューイング処理部２２がエンキューイング処理を開始し（図３のステップＳ１０）、通知処理部２４が通知処理を開始する（図３のステップＳ２０）。
【００３１】
エンキューイング処理を開始したエンキューイング処理部２２は、通信制御プログラム１１を介した証券取引所のサーバからの価格データの到着を監視し、証券取引所のサーバからの価格データを受信する（図５のステップＳ１１）。価格データを受信すると、エンキューイング処理部２２は、受信した価格データの銘柄コードに基づいて、格納先のキュー２３を決定する（図５のステップＳ１２）。その後、格納先のキュー２３の深さ（即ち、キュー２３に格納されているデータの件数）が閾値（即ち、キューが許容する最大深さ）に達しているか否かを判断する（図５のステップＳ１３）。格納先のキュー２３の深さが閾値に達しているときには、そのキュー２３に格納されている最も古いデータを削除してから（図５のステップＳ１４）、受信した価格データをキュー２３に格納する（図５のステップＳ１５）。格納先のキュー２３の深さが閾値に達していないときには、キュー２３に格納された価格データを削除することなく受信した価格データをキュー２３に格納する（図５のステップＳ１５）。
【００３２】
キュー２３への価格データの格納が完了すると、流量制御装置２０は、受信した価格データを処理したことを通信制御プログラム１１に通知する（図５のステップＳ１６）。つまり、通信制御プログラム１１に応答を返す。最後に、エンキューイング処理の終了指示の有無を確認し（図５のステップＳ１７）、終了指示がある場合には、エンキューイング処理を終了する。終了指示がない場合には、ステップＳ１１に戻って上記の処理を繰り返す。
【００３３】
従って、図２に示すように、企業の銘柄コードなど、企業の識別であり得るＹＹＹＹ、ＸＸＸＸ、ＺＺＺＺの価格データをエンキューイング処理部２２が順に受信する場合を例に説明すると、エンキューイング処理部２２は具体的には次のように動作する。
【００３４】
最初に受信した銘柄コードＹＹＹＹの価格データについては、格納先として決定したキュー２３ａの深さがすでに閾値である１に達しているので、エンキューイング処理部２２は、キュー２３ａに格納されている銘柄コードＹＹＹＹの古いデータを削除してから、受信した新しい銘柄コードＹＹＹＹのデータをキュー２３ａに格納させる。そして、キュー２３ａへのデータの格納完了後、その旨を通信制御プログラム１１に通知する。
【００３５】
上記通知を受けて通信制御プログラム１１から送信された銘柄コードＸＸＸＸの価格データについても、格納先として決定されたキュー２３ｂの深さがすでに閾値である１に達しているので、エンキューイング処理部２２は、銘柄コードＹＹＹＹの価格データの場合と同様に、キュー２３ｂに格納されている銘柄コードＸＸＸＸの古いデータを削除してから、受信した新しい銘柄コードＸＸＸＸのデータをキュー２３ｂに格納させる。そして、キュー２３ｂへのデータの格納完了後、その旨を通信制御プログラム１１に通知する。
【００３６】
最後に受信する銘柄コードＺＺＺＺの価格データについては、格納先として決定されたキュー２３ｃの深さが閾値である５に達していないので、エンキューイング処理部２２は、キュー２３ｃに格納されている価格データを削除することなく、受信した銘柄コードＺＺＺＺのデータをキュー２３ｃに格納させる。この場合も、キュー２３ｃへのデータの格納完了後、その旨を通信制御プログラム１１に通知する。
【００３７】
一方、通知処理を開始した通知処理部２４は、まず、価格データを取り出すキュー２３を選択する（図６のステップＳ２１）。キュー２３の選択方法としては、任意の選択方法が採用し得る。例えば、キュー２３ａ、キュー２３ｂ、キュー２３ｃを順に選択する方法を採用してもよい。また、通知処理部２４がエンキューイング処理部２２からキュー２３への格納を知らせる通知を受けて、その通知により対応するキュー２３を選択する方法を採用してもよい。キュー２３が選択されると、対応する通知処理部２４が選択されたキュー２３から価格データを取り出し（図６のステップＳ２２）、取り出した価格データを業務アプリケーションプログラム３１に送信する（図６のステップＳ２３）。その後、業務アプリケーションプログラム３１からの応答があるまで待機し（図６のステップＳ２４）、応答を確認後、ステップＳ２２におけるキューからのデータの取り出しを確定する（図６のステップＳ２５）。さらに、通知処理の終了指示の有無を確認し（図６のステップＳ２６）、終了指示がある場合には、通知処理を終了する。終了指示がなければ、ステップＳ２１に戻って、上記の処理を繰り返す。
【００３８】
従って、図２に示すように、キュー２３ａ、キュー２３ｂ、キュー２３ｃが順に選択され、通知処理部２４ａ、通知処理部２４ｂ、通知処理部２４ｃが順にキューから価格データを取り出して業務アプリケーションプログラム３１に送信する場合を例に説明すると、通知処理部２４は具体的には次のように動作する。
【００３９】
まず、通知処理部２４ａがキュー２３ａに格納されている銘柄コードＹＹＹＹの価格データを取り出して、業務アプリケーションプログラム３１に送信する。この価格データは、銘柄コードＹＹＹＹの最新の価格データである。次に、業務アプリケーションプログラム３１からの応答を待って、通知処理部２４ｂがキュー２３ｂに格納されている銘柄コードＸＸＸＸの価格データを取り出して、業務アプリケーションプログラム３１に送信する。この価格データも、銘柄コードＸＸＸＸの最新の価格データである。さらに、業務アプリケーションプログラム３１からの応答を待って、通知処理部２４ｃがキュー２３ｃに格納されている価格データのうち最も古い価格データを取り出して、業務アプリケーションプログラム３１に送信する。
【００４０】
以上のように、本実施例に係る流量制御装置２０は、格納先のキューの深さが閾値に達していれば最も古い価格データを削除して、また、閾値に達していなければ価格データを削除することなく、最新の価格データである受信した価格データを対応するキュー２３に格納させて通信制御プログラム１１に応答を返す。従って、キューの状態によらず、通信制御プログラム１１に速やかに応答を返すことができる。このため、流量制御装置２０及び通信制御システム１によれば、通信制御プログラム１１が管理するキュー、その上位装置である証券取引所のサーバ、その他それらの間の伝送路などに価格データが過度に滞留することを防止することが可能であり、データの滞留に起因する取引機会の損失を防止することが可能となる。
【００４１】
また、本実施例に係る流量制御装置２０は、各キューの閾値を超えて価格データを保持することがない。従って、通信制御プログラム１１から大量の価格データが送信された場合であっても、キューの設定により業務アプリケーションプログラム３１に送信される価格データの流量を制限することができる。このため、流量制御装置２０及び通信制御システム１によれば、業務装置３０の処理能力に応じたキューの設定を行うことで、業務アプリケーションプログラム３１を実行する業務装置３０に過度に負荷がかかることが避けることができるため、処理能力が低い業務装置３０が使用される場合であっても、処理を遅滞なく行うことが可能であり、業務処理の遅延に起因する取引機会の損失を防止することができる。
【００４２】
さらに、本実施例に係る流量制御装置２０は、価格データの銘柄に基づいて決定される格納先のキューの深さが閾値に達している場合には、最も古い価格データを削除する一方で、新しい価格データをキューの閾値により許容される範囲内で維持する。このため、流量制御装置２０及び通信制御システム１によれば、証券取引システムのように、取り扱うデータに有効期限があり、古いデータで処理した場合に業務エラーが生じ得るシステムにおいては、業務エラーの発生を抑制することができる。
【００４３】
さらに、本実施例に係る流量制御装置２０は、異なる銘柄の価格データを格納する複数のキューを有している。従って、通知処理部２４が複数のキューから順番にデータを取り出して送信する場合であれば、特定の銘柄の価格データが大量に発生した場合であっても、他の銘柄の価格データも確実に業務装置３０へ送信することができる。このため、流量制御装置２０及び通信制御システム１によれば、すべての銘柄の価格データを安定して業務装置３０に送信することが可能であり、価格データの送信遅延に起因する取引機会の損失を防止することが可能となる。
【００４４】
なお、流量制御装置２０のキューの設定は業務装置３０の処理能力に応じて任意に設定可能であるが、複数のキューのうちの少なくとも１つのキューは、キュー２３ａまたはキュー２３ｂのように、所定の一種類の種別のデータのみを格納する閾値が１のキュー（以降、単に、閾値が１のキューと記す。）として設定されることが望ましい。このようにキューを設定することで、そのキューに格納される種別のデータについては、業務装置３０への最新のデータの送信を保証することが可能となる。
【００４５】
ただし、閾値が１のキューをデータの種別毎に用意すると、必要なキューの数が非常に多くなってしまう場合がある。このような場合には、閾値が１のキューをデータの種別毎に設ける設定は、流量制御装置２０のリソースの観点から現実的ではない。従って、流量制御装置２０のリソースとの関係で、閾値が１のキューの数を決定し、発生頻度の高い種別のデータを優先的に閾値が１のキューに割り当てることが望ましい。また、閾値が１のキューに割り当てられなかった残りの種別のデータは、キュー２３ｃのような、複数の種別のデータを格納する閾値が２以上のキューに割り当てられる。この場合、このキューは、割り当てられたデータの種別の数以上の閾値を有するように設定されることが望ましい。そのようにキューを設定することで、複数の種別のデータを格納するキューにおいて、割り当てられた種別の最新のデータが削除される可能性を低くすることができる。なお、閾値が１のキューも割り当てられたデータの種別の数以上の閾値を有していることを考慮すると、流量制御装置２０が有する複数のキューの各々は、そのキューに格納されるべきデータの種別の数以上の閾値を有することが望ましい。
【００４６】
また、キュー２３毎に通知処理部２４が設けられている例について上述したが、通知処理部２４は、必ずしもキュー２３毎に設けられる必要はない。一つの通知処理部２４が、複数のキュー２３からデータが取り出すように構成されてもよい。通知処理部２４は、所定の順番で複数のキュー２３から特定のキューを選択してデータを取り出してもよく、また、キューイングがあった順番で複数のキュー２３から特定のキューを選択してデータを取り出してもよい。
【００４７】
また、通信制御装置１０と流量制御装置２０が別々に設けられた例について上述したが、通信制御装置１０と流量制御装置２０は一体として構成され、通信制御プログラム１１と流量制御プログラム２１の間でプロセス間通信を行ってもよい。
【００４８】
最後に、図７を参照しながら、本実施例に係る流量制御装置のハードウェア構成について説明する。図７は、本実施例に係る流量制御装置のハードウェア構成を示す図である。本実施例に係る流量制御装置２０は、流量制御プログラム２１を実行するコンピュータであり、図７に示されるように、ＣＰＵ（Central Processing Unit）４１、ＲＯＭ（Read Only Memory）４２、ＲＡＭ（Random Access Memory）４３、補助記憶装置としてのＨＤＤ（Hard Disk Drive）４４、表示処理部４５、入力インタフェース４６、及び、通信インタフェース４７を備えていて、それらがバス４８で接続されていることにより各種データが各要素間で互いに授受可能となっている。補助記憶装置は、ＨＤＤ４４に限られず、たとえばＳＳＤ（Solid State Drive）であってもよい。表示処理部４５は、例えば液晶ディスプレイなどのモニタ５０に接続されている。入力インタフェース４６は、キーボード６０及びマウス７０などの入力装置に接続されている。通信インタフェース４７はネットワークに接続されていて、そのネットワークを介して通信制御装置１０及び業務装置３０と接続されている。
【００４９】
流量制御装置２０では、ＣＰＵ４１がＲＯＭ４２またはＨＤＤ４４が予め記憶している流量制御プログラム２１を読み出して実行することにより、キュー２３がＲＡＭ４３またはＨＤＤ４４に作成され、上述した流量制御動作が実現される。
【実施例２】
【００５０】
本実施例に係る流量制御装置は、エンキューイング処理部の動作が実施例１に係る流量制御装置２０と異なっている。装置の物理構成及び論理構成などその他の点については、実施例１に係る流量制御装置２０と同様である。このため、本実施例に係る流量制御装置の構成要素は、実施例１に係る流量制御装置２０の構成要素と同一の符号で参照する。
【００５１】
図８は、本実施例に係る流量制御装置のエンキューイング処理の動作を示すフローチャートである。以下、図８を参照しながら、本実施例に係る流量制御装置のエンキューイング処理部２２の動作について説明する。
【００５２】
エンキューイング処理を開始したエンキューイング処理部２２は、通信制御プログラム１１を介した証券取引所のサーバからの価格データの到着を監視し、証券取引所のサーバからの価格データを受信する（図８のステップＳ３１）。そして、受信した価格データの銘柄コードに基づいて、格納先のキュー２３を決定する（図８のステップＳ３２）。これらの動作は、実施例１に係る流量制御装置２０と同様である。
【００５３】
次に、受信した価格データと同じ銘柄の価格データが格納先のキュー２３に存在するか否かを判断する（図８のステップＳ３３）。格納先のキュー２３に同じ銘柄の価格データが存在しているときには、そのキュー２３に格納されている同じ銘柄の価格データを削除してから（図８のステップＳ３４）、受信した価格データをキュー２３に格納する（図８のステップＳ３７）。格納先のキュー２３に同じ銘柄の価格データが存在しないときには、さらに、格納先のキュー２３の深さが閾値（最大深さ）に達しているか否かを判断する（図８のステップＳ３５）。格納先のキュー２３の深さが閾値に達しているときには、そのキュー２３に格納されている最も古いデータを削除してから（図８のステップＳ３６）、受信した価格データをキュー２３に格納する（図８のステップＳ３７）。格納先のキュー２３の深さが閾値に達していないときには、キュー２３に格納された価格データを削除することなく受信した価格データをキュー２３に格納する（図８のステップＳ３７）。
【００５４】
キュー２３への価格データの格納が完了すると、流量制御装置は、受信した価格データを処理したことを通信制御プログラム１１に通知する（図８のステップＳ３８）。最後に、エンキューイング処理の終了指示の有無を確認し（図８のステップＳ３９）、終了指示がある場合には、エンキューイング処理を終了する。終了指示がない場合には、ステップＳ３１に戻って上記の処理を繰り返す。
【００５５】
以上のように動作する本実施例に係る流量制御装置及びそれを備えた本実施例に係る通信制御システムによっても、実施例１に係る流量制御装置２０及び通信制御システム１と同様に、取引機会の損失を防止することができる。また、本実施例に係る流量制御装置及び通信制御システムによれば、キュー２３に同じ種別のデータが存在する場合には、そのデータを削除してから最新のデータをキュー２３に格納するため、業務装置３０への古いデータの送信を防止することができる。さらに、複数の種別のデータを格納する閾値が２以上のキューにおいて、割り当てられた種別の最新のデータが削除される可能性をさらに低くすることができる可能であり、特に、キューが格納されるべきデータの種別の数以上の閾値を有する場合には、種別の最新のデータが削除されることを確実に防止することができる。
【００５６】
以上では、流量制御装置を備えた通信制御システムとして証券取引システムを例示して説明したが、上述した流量制御技術は証券取引システムに限られず、任意の通信システムに適用可能である。上述した実施例は、発明の理解を容易にするために本発明の具体例を示したものであり、本発明はこれらに実施例に限定されるものではない。本発明の流量制御装置、通信制御システム、流量制御方法及びプログラムは、特許請求の範囲に規定された本発明の思想を逸脱しない範囲において、さまざまな変形、変更が可能である。
【符号の説明】
【００５７】
１      通信制御システム
２      接続先装置
１０      通信制御装置
１１      通信制御プログラム
２０      流量制御装置
２１      流量制御プログラム
２２      エンキューイング処理部
２３、２３ａ、２３ｂ、２３ｃ      キュー
２４、２４ａ、２４ｂ、２４ｃ      通知処理部
２５      動作環境定義ファイル
３０      業務装置
３１      業務アプリケーションプログラム
４１      ＣＰＵ
４２      ＲＯＭ
４３      ＲＡＭ
４４      ＨＤＤ
４５      表示処理部
４６      入力インタフェース
４７      通信インタフェース
４８      バス
５０      モニタ
６０      キーボード
７０      マウス
【図１】
2014206835.tif 000003
【図２】
2014206835.tif 000004
【図３】
2014206835.tif 000005
【図４】
2014206835.tif 000006
【図５】
2014206835.tif 000007
【図６】
2014206835.tif 000008
【図７】
2014206835.tif 000009
【図８】
2014206835.tif 000010