IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-39706制御プログラム、制御方法および情報処理装置
<>
  • 特開-制御プログラム、制御方法および情報処理装置 図1
  • 特開-制御プログラム、制御方法および情報処理装置 図2
  • 特開-制御プログラム、制御方法および情報処理装置 図3
  • 特開-制御プログラム、制御方法および情報処理装置 図4
  • 特開-制御プログラム、制御方法および情報処理装置 図5
  • 特開-制御プログラム、制御方法および情報処理装置 図6
  • 特開-制御プログラム、制御方法および情報処理装置 図7
  • 特開-制御プログラム、制御方法および情報処理装置 図8
  • 特開-制御プログラム、制御方法および情報処理装置 図9
  • 特開-制御プログラム、制御方法および情報処理装置 図10
  • 特開-制御プログラム、制御方法および情報処理装置 図11
  • 特開-制御プログラム、制御方法および情報処理装置 図12
  • 特開-制御プログラム、制御方法および情報処理装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024039706
(43)【公開日】2024-03-25
(54)【発明の名称】制御プログラム、制御方法および情報処理装置
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240315BHJP
【FI】
G06F9/50 120Z
G06F9/50 150Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022144273
(22)【出願日】2022-09-12
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】田中 環
(72)【発明者】
【氏名】鈴木 拓弥
(57)【要約】
【課題】負荷の変動に対する処理能力調整の追従性能を向上させる。
【解決手段】情報処理装置4は、サーバ1から送信される処理依頼を、中継装置2とサーバ3とを順に経由して受信し処理する。ここで、情報処理装置4は、サーバ1から受信した処理依頼を受信した中継装置2から、処理依頼の識別情報をサーバ3を経由せずに受信する。情報処理装置4は、識別情報の受信後、サーバ3から処理依頼を受信すると、識別情報に基づいて情報処理装置4の処理能力を制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータに、
第1のサーバから受信した処理依頼を第2のサーバに送信する中継装置から、前記処理依頼の識別情報を前記第2のサーバを経由せずに受信し、
前記識別情報の受信後、前記第2のサーバから前記処理依頼を受信すると、前記識別情報に基づいて前記コンピュータの処理能力を制御する、
処理を実行させる制御プログラム。
【請求項2】
前記処理能力の制御では、
前記中継装置からの前記識別情報の受信の連続性に基づいて、前記処理能力の上昇の要否を示す制御情報を、受信した前記識別情報に対応付けて記憶部に登録し、
前記第2のサーバから前記処理依頼を受信すると、受信した前記処理依頼を示す前記識別情報に対応付けられた前記制御情報に基づいて、前記処理能力を制御する、
請求項1記載の制御プログラム。
【請求項3】
前記処理能力の制御では、前記処理能力を上昇させた第1の状態において前記第2のサーバから前記処理依頼を受信し、受信した前記処理依頼に基づいて依頼された処理の実行が完了したとき、受信した前記処理依頼を示す前記識別情報に対応付けられた前記制御情報が、前記処理能力の上昇が必要であることを示す場合、前記処理能力を前記第1の状態のまま維持し、当該制御情報が、前記処理能力の上昇が不要であることを示す場合、前記処理能力を前記第1の状態より低下させた第2の状態に遷移させる、
請求項2記載の制御プログラム。
【請求項4】
前記制御情報の登録では、前記中継装置から受信した第1の識別情報の受信時刻と、前記中継装置から次に受信した第2の識別情報の受信時刻との差が所定の閾値以内の場合、前記第1の識別情報に対して、前記処理能力の上昇が必要であることを示す前記制御情報を対応付ける、
請求項2または3記載の制御プログラム。
【請求項5】
前記処理能力を低下させた前記第2の状態において前記中継装置から前記識別情報を受信したとき、前記処理能力を前記第1の状態に遷移させる、
処理を前記コンピュータにさらに実行させる請求項3記載の制御プログラム。
【請求項6】
前記処理能力の制御では、前記処理能力を低下させた前記第2の状態において前記第2のサーバから前記処理依頼を受信し、受信した前記処理依頼に基づいて依頼された処理の実行が完了したとき、受信した前記処理依頼を示す前記識別情報に対応付けられた前記制御情報が、前記処理能力の上昇が不要であることを示す場合、前記処理能力を前記第1の状態に遷移させる、
請求項3記載の制御プログラム。
【請求項7】
前記処理依頼および前記識別情報は、処理対象を示す情報を含み、
前記第2のサーバから受信した前記処理依頼に基づいて依頼された処理を実行する、前記コンピュータを含む複数のコンピュータのそれぞれに対して、少なくとも1つの前記処理対象が割り当てられており、
前記第2のサーバは、前記第1のサーバから前記中継装置を介して受信した前記処理依頼を、前記複数のコンピュータのうち、受信した前記処理依頼に含まれる前記処理対象が割り当てられた割当先コンピュータに振り分けて送信し、
前記制御情報の登録では、前記中継装置から受信した前記識別情報のうち、前記コンピュータに割り当てられた前記処理対象を示す情報を含む前記識別情報を用いて、前記識別情報の受信の連続性を判定する、
請求項2,3,5,6のいずれか1項に記載の制御プログラム。
【請求項8】
コンピュータが、
第1のサーバから受信した処理依頼を第2のサーバに送信する中継装置から、前記処理依頼の識別情報を前記第2のサーバを経由せずに受信し、
前記識別情報の受信後、前記第2のサーバから前記処理依頼を受信すると、前記識別情報に基づいて前記コンピュータの処理能力を制御する、
制御方法。
【請求項9】
第1のサーバから送信される処理依頼を中継装置と第2のサーバとを順に経由して受信し処理する情報処理装置であって、
前記第1のサーバから受信した第1の処理依頼を受信した前記中継装置から、前記第1の処理依頼の第1の識別情報を前記第2のサーバを経由せずに受信し、
前記第1の識別情報の受信後、前記第2のサーバから前記第1の処理依頼を受信すると、前記第1の識別情報に基づいて前記情報処理装置の処理能力を制御する、
処理を実行する処理部を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、制御方法および情報処理装置に関する。
【背景技術】
【0002】
証券取引システムは、多数のサーバを備え、ユーザからの依頼に応じた処理を多数のサーバに分散して実行する。このような証券取引システムの例として、次のような解析装置を備えるシステムが提案されている。この解析装置は、システム内を通過するパケットを傍受して、その内容からサーバにおける仕事の内訳を導出し、仕事の内訳や電源からの供給電力値から、サーバの稼働状況を示す指標を算出する。
【0003】
また、サーバ等のコンピュータでは、必要に応じて処理能力をスケーリングできるものがある。例えば、プロセッサのクロック周波数を調整できるものがある。クロック周波数の調整に関する技術としては、例えば、実行対象のタスクに依存するタスク処理情報と、タスクの数および各タスクの処理内容を含むタスク管理情報とから、クロック周波数を求める速度決定手段を備えるシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011-204110号公報
【特許文献2】特開平9-297688号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、証券取引システムに含まれるサーバのように、多数の処理依頼を受信して依頼された処理を実行するコンピュータでは、処理負荷が高くなる期間にのみ処理能力を上昇させることで、消費電力を抑制できる。しかし、処理依頼を受信してから負荷の状態を検出し、負荷の増減に応じて処理能力を調整する方法では、負荷の変動に対して処理能力の調整を高速に追従させることが難しいという問題がある。
【0006】
1つの側面では、本発明は、負荷の変動に対する処理能力調整の追従性能を向上させることが可能な制御プログラム、制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、コンピュータに、第1のサーバから受信した処理依頼を第2のサーバに送信する中継装置から、処理依頼の識別情報を第2のサーバを経由せずに受信し、識別情報の受信後、第2のサーバから処理依頼を受信すると、識別情報に基づいてコンピュータの処理能力を制御する、処理を実行させる制御プログラムが提供される。
【0008】
また、1つの案では、上記の制御プログラムに基づく処理と同様の処理をコンピュータが実行する制御方法が提供される。
さらに、1つの案では、上記の制御プログラムに基づく処理と同様の処理を実行する情報処理装置が提供される。
【発明の効果】
【0009】
1つの側面では、負荷の変動に対する処理能力調整の追従性能が向上する。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
図2】証券取引システムの比較例を示す図である。
図3】第2の実施の形態に係る証券取引システムの構成例を示す図である。
図4】注文電文データおよび分岐データの転送例を説明するための図である。
図5】注文電文データの伝送タイミングについて説明するためのシーケンス図である。
図6】注文電文データおよび分岐データの通番を用いたスケーリングタイミングの判定処理を説明するための図である。
図7】トレーディングサーバのハードウェア構成例を示す図である。
図8】トレーディングサーバが備える処理機能の構成例を示す図である。
図9】受信記録テーブルのデータ構成例を示す図である。
図10】スケーリング判定処理の手順を示すフローチャートの例である。
図11】注文電文処理の手順を示すフローチャートの例(その1)である。
図12】注文電文処理の手順を示すフローチャートの例(その2)である。
図13】注文電文処理の手順を示すフローチャートの例(その3)である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、サーバ1、中継装置2、サーバ3および情報処理装置4を有する。
【0012】
サーバ1は、処理を依頼するための処理依頼を、中継装置2を介してサーバ3に送信する。サーバ1は、例えば、複数設置されてもよい。中継装置2は、サーバ1から受信した処理依頼をサーバ3に転送するとともに、その処理依頼を示す識別情報を情報処理装置4に転送する。例えば、処理依頼が証券取引の注文内容を示す注文電文データである場合、識別情報は、注文電文データに含まれる通番であってもよい。なお、中継装置2は、サーバ3に転送した処理依頼をそのまま情報処理装置4にも転送してもよい。
【0013】
サーバ3は、中継装置2を介して受信した処理依頼を、情報処理装置4に送信する。例えば、情報処理装置4が複数設置されている場合、サーバ3は、処理依頼を、依頼された処理の内容に応じて複数の情報処理装置4のいずれかに振り分けて送信する。
【0014】
情報処理装置4は、例えば、プロセッサやメモリを含むコンピュータである。この場合、以下で説明する情報処理装置4の処理は、例えばプロセッサによって実行される。情報処理装置4は、サーバ3から受信した処理依頼に基づいて、依頼された処理を実行する。また、情報処理装置4は、処理能力を調整する機能を有する。例えば、情報処理装置4は、プロセッサのクロック周波数を調整してもよい。
【0015】
以下、情報処理装置4における処理能力の調整処理について説明する。
情報処理装置4は、サーバ3から処理依頼が連続して送信されると、それらの処理依頼に基づく処理の負荷が高まる。このため、情報処理装置4は、負荷が高い状態でのみ処理能力を上昇させることで、処理速度を向上させつつ、消費電力を抑制できる。ここで、例えば、情報処理装置4が、サーバ3からの処理依頼の受信状況に基づいて処理能力を制御する方法が考えられる。しかし、この方法では、負荷の増減が検出されてから処理能力が調整されるため、負荷の変動に対して処理能力の調整を追従させることが難しい。
【0016】
これに対して、情報処理装置4は、サーバ3から受信する処理依頼に対応する識別情報を、サーバ3からの処理依頼の受信前に中継装置2から受信する。情報処理装置4は、識別情報の受信後、サーバ3から処理依頼を受信すると、識別情報に基づいて処理能力を制御する。このような処理によれば、情報処理装置4は、処理依頼の受信前に中継装置2から受信した、処理依頼に対応する識別情報に基づいて処理能力を制御するので、負荷の変動に対する処理能力調整の追従性能が向上する。
【0017】
なお、上記のように複数の情報処理装置4が存在する場合には、情報処理装置4のそれぞれは、中継装置2から受信した識別情報のうち、自装置で処理される処理内容を依頼する処理依頼に対応する識別情報に基づいて、処理能力を制御してもよい。
【0018】
以下、識別情報の受信状況を基に生成される制御情報を用いて、処理能力を制御する例について説明する。
この例では、情報処理装置4は、中継装置2からの識別情報の受信の連続性に基づき、処理能力の上昇の要否を示す制御情報を、受信した識別情報に対応付けて情報処理装置4の記憶部(図示せず)に登録する。そして、情報処理装置4は、サーバ3から処理依頼を受信すると、その処理依頼を示す識別情報に対応付けられた制御情報に基づいて、処理能力を制御する。
【0019】
これにより、情報処理装置4は、中継装置2からの識別情報の受信状況から負荷の増加または減少を検出した後、実際に情報処理装置4の負荷が増加または減少する時刻に応じたタイミングで、処理能力を調整できる。例えば、情報処理装置4は、連続して受信される複数の識別情報を検出した場合、それらの識別情報に対応する処理依頼のうち、サーバ3からどの処理依頼を受信したときに処理能力を上昇させ、他のどの処理依頼を受信したときに処理能力を低下させるかを判定してもよい。したがって、情報処理装置4の負荷の変動に対する処理能力調整の追従性能が向上する。
【0020】
図1の例では、状態ST1のように、情報処理装置4宛ての処理依頼ID1~ID4が、中継装置2からサーバ3に転送されるとともに、識別情報id1~id4が情報処理装置4にも順に転送されるとする。なお、識別情報id1,id2,id3,id4は、それぞれ処理依頼ID1,ID2,ID3,ID4に対応する識別情報であるとする。
【0021】
この場合、情報処理装置4は、処理依頼ID1~ID4をサーバ3から受信する前に、対応する識別情報id1~id4を中継装置2から受信する。例えば、情報処理装置4は処理依頼ID1をサーバ3から受信する前に識別情報id1を中継装置2から受信し、処理依頼ID2をサーバ3から受信する前に識別情報id2を中継装置2から受信してもよい。
【0022】
情報処理装置4は、識別情報id1~id4の受信の連続性に基づいて、制御情報Cを識別情報id1~id4に対応付ける。なお、制御情報Cには、処理能力の上昇が必要な場合、「1」が設定され、処理能力の上昇が必要ない場合、「0」が設定されるものとする。
【0023】
情報処理装置4は、例えば、識別情報id1~id4のうち隣接する識別情報間の、中継装置2からの受信時刻の差が所定の閾値以内であることにより、処理依頼ID1~ID4がサーバ3から連続して受信されると予測してもよい。この場合、情報処理装置4は、例えば、連続する識別情報id1~id4のうち、末尾を除く識別情報id1~id3に対して、制御情報C=1を対応付ける。また、情報処理装置4は、末尾の識別情報id4に対して、制御情報C=0を対応付ける。このように制御情報Cが設定された場合、情報処理装置4は、次のような手順により処理能力を調整してもよい。
【0024】
まず、状態ST2のように、情報処理装置4は、連続する処理依頼ID1~ID4のうち先頭の処理依頼ID1をサーバ3から受信したとする。処理依頼ID1を示す識別情報id1に対応する制御情報Cが1であることから、情報処理装置4は、処理依頼ID1に基づく処理を実行した後、処理能力を上昇させる。
【0025】
その後、状態ST3のように、情報処理装置4は、サーバ3から処理依頼ID2を受信したとする。処理依頼ID2を示す識別情報id2に対応する制御情報Cが1であることから、情報処理装置4は、処理依頼ID2に基づく処理を実行した後、処理能力を上昇させたまま維持する。
【0026】
そして、状態ST4のように、情報処理装置4は、連続する処理依頼ID1~ID4のうち末尾の処理依頼ID4をサーバ3から受信したとする。処理依頼ID4を示す識別情報id4に対応する制御情報Cが0であることから、情報処理装置4は、処理依頼ID4に基づく処理を実行した後、処理能力を低下させる。
【0027】
このような処理により、情報処理装置4は、処理依頼ID1~ID4を連続して受信して処理したために負荷が高まっている間、処理能力を上昇させ、処理依頼ID1~ID4に基づく処理を高速に実行することができる。そして、情報処理装置4は、処理依頼ID1~ID4をそれぞれ示す識別情報id1~id4に対応付けた制御情報Cに基づいて処理能力を調整することで、負荷の増減に対して処理能力の増減を追従させることができる。すなわち、情報処理装置4の負荷の変動に対する処理能力調整の追従性能が向上する。
【0028】
〔第2の実施の形態〕
次に、図1に示した情報処理システムとして、証券取引システムを例示して説明する。以下の説明では、まず、図2を用いて証券取引システムの比較例について説明し、図3以降で第2の実施の形態に係る証券取引システムについて説明する。
【0029】
図2は、証券取引システムの比較例を示す図である。図2に示す証券取引システムは、参加者サーバ10a,10b,10c,・・・、参加者ゲートウェイ(GW)30a,30b,30c,・・・およびトレーディングサーバ40a,40b,40c,・・・を含む。
【0030】
参加者サーバ10a,10b,10c,・・・は、例えば、証券会社などの証券取引を仲介する業者によって運用されるサーバ装置である。参加者サーバ10a,10b,10c,・・・の少なくとも1つは、仮想サーバであってもよい。参加者サーバ10a,10b,10c,・・・は、証券取引の参加者から依頼された取引の注文内容を示す注文電文データを、参加者ゲートウェイ30a,30b,30c,・・・のいずれかに送信する。注文電文データには、取引の種類を示す情報(売り/買いの種別、指値/成行の種別など)や、取引対象の銘柄を示す情報、注文者を示す情報、通番などが含まれる。
【0031】
参加者ゲートウェイ30a,30b,30c,・・・およびトレーディングサーバ40a,40b,40c,・・・は、例えば、証券取引所によって運用される。参加者サーバ10a,10b,10c,・・・と参加者ゲートウェイ30a,30b,30c,・・・とは、ネットワーク50を介して接続されている。ネットワーク50は、例えば、証券取引専用のネットワークである。
【0032】
参加者ゲートウェイ30a,30b,30c,・・・は、証券取引の注文を受け付けるサーバ装置である。参加者ゲートウェイ30a,30b,30c,・・・は、参加者サーバ10a,10b,10c,・・・から受信した注文電文データを、注文電文データで指定された銘柄に基づいて、トレーディングサーバ40a,40b,40c,・・・のいずれかに転送する。
【0033】
トレーディングサーバ40a,40b,40c,・・・は、証券取引処理を実行するサーバ装置である。トレーディングサーバ40a,40b,40c,・・・のそれぞれには、取引対象の銘柄が1つ以上割り当てられている。そのため、参加者ゲートウェイ30a,30b,30c,・・・からは、トレーディングサーバ40a,40b,40c,・・・のそれぞれに割り当てられた銘柄についての注文電文データが振り分けられて転送される。トレーディングサーバ40a,40b,40c,・・・は、受信した注文電文データに基づいて、注文の付合せ(マッチング)処理を実行する。
【0034】
上記の証券取引システムでは、大量の注文に対応するために注文が多数のサーバによって分散処理される。例えば、注文を銘柄ごとに振り分ける処理が参加者ゲートウェイ30a,30b,30c,・・・によって分散処理され、注文の付合せ処理がトレーディングサーバ40a,40b,40c,・・・によって分散処理される。このように多数のサーバが動作するため、システム全体の消費電力が大きい。
【0035】
また、各サーバは、処理能力のスケーリングが可能になっている。以下の説明では、処理能力のスケーリングの例として、プロセッサのクロック周波数が調整されるものとする。一般的に各サーバは、大量の注文を処理するために、クロック周波数を最大の状態に固定して動作する。このため、各サーバの消費電力も大きく、その結果としてシステム全体の消費電力が増大する。
【0036】
したがって、上記の証券取引システムでは、消費電力を下げたいという要求がある。以下、トレーディングサーバ40a,40b,40c,・・・の省電力化について説明する。
【0037】
省電力化の方法としては、例えば、各トレーディングサーバが、プロセッサの負荷状況を監視し、負荷が高い期間のみクロック周波数を上昇させる方法が考えられる。しかし、この方法では、現在の負荷に応じてクロック周波数が調整されることから、負荷の急激な増減に対してクロック周波数の応答が遅延するという問題がある。
【0038】
また、別の方法として、各トレーディングサーバを仮想サーバとして実現し、複数の仮想サーバ間でプロセッサのリソースを共有する方法が考えられる。この方法では、プロセッサのリソースを共有する仮想サーバ間で処理能力を分配しやすいというメリットがあるが、負荷の急激な増減に対するリソース分配の応答が遅延することに変わりない。また、ある仮想サーバに処理能力を多く割り当てた状態で、その仮想サーバとリソースを共有する別の仮想サーバの負荷が高くなった場合でも、前者の仮想サーバの負荷が低下しなければ後者の仮想サーバへの処理能力の割り当てを増やすことができない。
【0039】
そこで、本実施の形態では次の図3に示すように、参加者ゲートウェイ30a,30b,30c,・・・の前段にネットワークタップが配置される。そして、トレーディングサーバ40a,40b,40c,・・・は、ネットワークタップから転送される注文電文データの受信状況に応じてクロック周波数を調整する。これにより、トレーディングサーバ40a,40b,40c,・・・負荷の増減に対するクロック周波数の追従性能が向上する。
【0040】
図3は、第2の実施の形態に係る証券取引システムの構成例を示す図である。図3に示す証券取引システムは、図2に示した証券取引システムに対して、さらにネットワークタップ20a,20b,20c,・・・が追加されている。
【0041】
ネットワークタップ20a,20b,20c,・・・は、受信ポートで受信したデータを送信ポートから送信するとともに、その送信データと同じデータを他の送信ポート(例えばモニタリングポート)から送信可能なデータ分岐装置である。本実施の形態において、ネットワークタップ20a,20b,20c,・・・は、それぞれ参加者ゲートウェイ30a,30b,30c,・・・の前段に設けられている。
【0042】
これにより、ネットワークタップ20a,20b,20c,・・・は、参加者サーバ10a,10b,10c,・・・からそれぞれ参加者ゲートウェイ30a,30b,30c,・・・を宛先とする注文電文データを受信する。そして、ネットワークタップ20a,20b,20c,・・・は、受信した注文電文データをそれぞれ参加者ゲートウェイ30a,30b,30c,・・・に転送する。ネットワークタップ20a,20b,20c,・・・は、それぞれ参加者ゲートウェイ30a,30b,30c,・・・に転送した注文電文データに対応する分岐データを、トレーディングサーバ40a,40b,40c,・・・のすべてに対してマルチキャストで転送する。
【0043】
分岐データには、対応する注文電文データから、トレーディングサーバ40a,40b,40c,・・・での処理に必要となるデータが抽出されて設定される。分岐データには少なくとも、対応する注文電文データを識別するための通番が設定される。また、本実施の形態のようにトレーディングサーバが複数存在する場合には、分岐データにはさらに銘柄を示す銘柄コードが設定される。なお、分岐データとしては、対応する注文電文データと同じデータ(ミラーデータ)がトレーディングサーバ40a,40b,40c,・・・に転送されてもよい。
【0044】
なお、参加者サーバ10a,10b,10c,・・・は、図1に示したサーバ1の一例であり、ネットワークタップ20a,20b,20c,・・・は、図1に示した中継装置2の一例である。また、参加者ゲートウェイ30a,30b,30c,・・・は、図1に示したサーバ3の一例であり、トレーディングサーバ40a,40b,40c,・・・は、図1に示した情報処理装置4の一例である。
【0045】
また、以下の説明では、参加者サーバ10a,10b,10c,・・・は、それぞれを特に区別せずに表す場合には、「参加者サーバ10」と記載される場合がある。同様に、ネットワークタップ20a,20b,20c,・・・は、それぞれを特に区別せずに表す場合には、「ネットワークタップ20」と記載される場合がある。また、参加者ゲートウェイ30a,30b,30c,・・・は、それぞれを特に区別せずに表す場合には、「参加者ゲートウェイ30」と記載される場合がある。また、トレーディングサーバ40a,40b,40c,・・・は、それぞれを特に区別せずに表す場合には、「トレーディングサーバ40」と記載される場合がある。
【0046】
図4は、注文電文データおよび分岐データの転送例を説明するための図である。上記のように、ネットワークタップ20は、受信した注文電文データを対応する参加者ゲートウェイ30に転送し、注文電文データに対応する分岐データをトレーディングサーバ40a,40b,40c,・・・のすべてに転送する。例えば図4に示すように、ネットワークタップ20aは、参加者サーバ10から受信した注文電文データを参加者ゲートウェイ30aに転送するとともに、注文電文データに対応する分岐データをトレーディングサーバ40a,40b,40c,・・・のすべてに転送する。
【0047】
ここで、図4では、トレーディングサーバ40aが処理する銘柄が、銘柄コード「1301」の銘柄であるとする。また、トレーディングサーバ40bが処理する銘柄が、銘柄コード「1305」の銘柄であるとする。さらに、トレーディングサーバ40cが処理する銘柄が、銘柄コード「1306」の銘柄であるとする。
【0048】
この場合、参加者ゲートウェイ30aは、ネットワークタップ20aから受信した注文電文データのうち、銘柄コード「1301」が設定された注文電文データをトレーディングサーバ40aに送信する。また、参加者ゲートウェイ30aは、銘柄コード「1305」が設定された注文電文データをトレーディングサーバ40bに送信する。さらに、参加者ゲートウェイ30aは、銘柄コード「1306」が設定された注文電文データをトレーディングサーバ40cに送信する。
【0049】
一方、ネットワークタップ20aからトレーディングサーバ40a~40cに対しては、銘柄コード「1301」、「1305」、「1306」が設定された分岐データのいずれも転送される。トレーディングサーバ40aは、ネットワークタップ20aから転送された分岐データのうち、銘柄コード「1301」が設定された分岐データだけを利用し、それ以外の分岐データを破棄してもよい。また、トレーディングサーバ40bは、ネットワークタップ20aから転送された分岐データのうち、銘柄コード「1305」が設定された分岐データだけを利用し、それ以外の分岐データを破棄してもよい。さらに、トレーディングサーバ40cは、ネットワークタップ20aから転送された分岐データのうち、銘柄コード「1306」が設定された分岐データだけを利用し、それ以外の分岐データを破棄してもよい。
【0050】
図5は、注文電文データの伝送タイミングについて説明するためのシーケンス図である。
図5の例では、時刻T1において参加者サーバ10からネットワークタップ20に対して、注文電文データが送信される。すると、時刻T2において、ネットワークタップ20は、受信した注文電文データを参加者ゲートウェイ30に転送し、その注文電文データに対応する分岐データをトレーディングサーバ40に転送する。
【0051】
参加者ゲートウェイ30は、受信した注文電文データを用いて所定の業務処理を実行する。この業務処理には、注文電文データの宛先判定処理が含まれる。そして、時刻T3において、参加者ゲートウェイ30からトレーディングサーバ40に対して注文電文データが送信される。
【0052】
この図5の例のように、トレーディングサーバ40は、参加者ゲートウェイ30から注文電文データを受信した時刻T3より前の時刻T2において、その注文電文データに対応する分岐データをネットワークタップ20から受信することができる。このため、トレーディングサーバ40は、注文電文データを参加者ゲートウェイ30から受信する前に、ネットワークタップ20からの受信データに基づいて負荷の変動状況を予測することができる。
【0053】
ところで、ネットワークタップ20から送信されたデータが参加者ゲートウェイ30を介してトレーディングサーバ40に到達するまでの時間は、参加者ゲートウェイ30の負荷状況などの原因により一定にはならない。このため、トレーディングサーバ40は、上記のように負荷の増減を事前に予測できたとしても、実際に負荷が増減する時刻を正確に予測することは難しい。したがって、例えば、負荷の変動状況の事前予測結果から、実際に負荷が増減する時刻自体を予測する方法を用いた場合には、トレーディングサーバ40の負荷の増減に対するスケーリングの追従精度が悪化する可能性がある。また、トレーディングサーバ40は、実際に負荷が高い期間より長い期間、クロック周波数を上昇させた状態になる可能性もあり、その場合には余計な電力を消費してしまう可能性がある。
【0054】
そこで、本実施の形態のトレーディングサーバ40は、注文電文データのそれぞれに含まれる通番を利用して、負荷が変動するタイミングを正確に判定する。この通番は、注文電文データの通し番号であり、参加者サーバ10によって注文電文データに付与される。通番は、注文者ごとに付与される場合もある。
【0055】
トレーディングサーバ40は、上記のように、ネットワークタップ20からの分岐データの受信状況に基づき、受信した分岐データに対応する注文電文データを参加者ゲートウェイ30から受信する前に、プロセッサのクロック周波数のスケーリングに関する判定処理を実行する。この判定処理では、分岐データの受信の連続性が解析される。これにより、トレーディングサーバ40は、「何番の通番の注文電文データから何番の通番の注文電文データまでが参加者ゲートウェイ30から連続して受信される」ということが予測できる。
【0056】
そして、トレーディングサーバ40は、参加者ゲートウェイ30から注文電文データを受信したとき、その注文電文データの通番に基づいてスケーリングを実行する。例えば、受信した注文電文データの通番が、連続する注文電文データの先頭であることを示す場合、トレーディングサーバ40は、受信した注文電文データに基づく処理の前または後に、クロック周波数を上昇させてもよい。また、例えば、受信した注文電文データの通番が、連続する注文電文データの中間的な位置であることを示す場合、トレーディングサーバ40は、受信した注文電文データに基づく処理の完了後に、クロック周波数を上昇させたまま維持してもよい。さらに、例えば、受信した注文電文データの通番が、連続する注文電文データの末尾であることを示す場合、トレーディングサーバ40は、受信した注文電文データに基づく処理の完了後に、クロック周波数を低下させてもよい。
【0057】
図6は、注文電文データおよび分岐データの通番を用いたスケーリングタイミングの判定処理を説明するための図である。
図6の例では、状態ST11のように、参加者ゲートウェイ30は、トレーディングサーバ40宛ての注文電文データとして、通番「1001」~「1006」の注文電文データを順に受信するものとする。一方、トレーディングサーバ40は、参加者ゲートウェイ30から通番「1001」~「1006」の各注文電文データを受信するより前に、各注文電文データに対応する分岐データをネットワークタップ20から受信する。例えば、トレーディングサーバ40は、参加者ゲートウェイ30から通番「1001」の注文電文データを受信するより前に、その注文電文データに対応する分岐データをネットワークタップ20から受信してもよい。また、トレーディングサーバ40は少なくとも、参加者ゲートウェイ30から通番「1002」の注文電文データを受信するより前に、その注文電文データに対応する分岐データをネットワークタップ20から受信してもよい。
【0058】
このため、トレーディングサーバ40は、通番「1001」の注文電文データから通番「1006」の注文電文データまでが連続して受信されることを事前に予測できる。例えば、トレーディングサーバ40は、隣接する分岐データの受信時刻の差が所定の閾値以下である場合に、これらの分岐データに対応する注文電文データが連続すると判定してもよい。
【0059】
本実施の形態では例として、トレーディングサーバ40は、ネットワークタップ20から受信した各分岐データの通番に対して、「クロック維持フラグ」という制御情報を対応付ける。クロック維持フラグは、対応する注文電文データを参加者ゲートウェイ30から受信したときに、クロック周波数を上昇させたまま維持するか否かを示すフラグ情報である。クロック維持フラグには、クロック周波数を維持する場合に「1」が設定され、クロック周波数を維持せずに低下させる場合に「0」が設定される。
【0060】
図6の例では、通番「1001」~「1005」に対応するクロック維持フラグが「1」とされ、通番「1006」に対応するクロック維持フラグが「0」とされる。この場合、例えば、次のようなスケーリング制御が実行される。
【0061】
状態ST12のように、トレーディングサーバ40は、参加者ゲートウェイ30から、連続するデータ列の先頭である通番「1001」の注文電文データを受信したとする。通番「1001」に対応するクロック維持フラグ(FG)は「1」であることから、トレーディングサーバ40は、この注文電文データに基づく処理を実行した後、クロック周波数を上昇させてもよい。
【0062】
その後、状態ST13のように、トレーディングサーバ40は、参加者ゲートウェイ30から通番「1002」、「1003」の注文電文データを順に受信したとする。通番「1002」、「1003」に対応するクロック維持フラグはいずれも「1」であることから、トレーディングサーバ40は、各注文電文データに基づく処理を実行した後、クロック周波数を上昇させたまま維持してもよい。
【0063】
そして、状態ST14のように、トレーディングサーバ40は、参加者ゲートウェイ30から、連続するデータ列の末尾である通番「1006」の注文電文データを受信したとする。通番「1006」に対応するクロック維持フラグは「0」であることから、トレーディングサーバ40は、この注文電文データに基づく処理を実行した後、クロック周波数を低下させてもよい。
【0064】
以上の処理により、トレーディングサーバ40は、通番「1001」~「1005」の注文電文データを連続して受信して処理したために負荷が高まっている間、クロック周波数を上昇させ、注文電文データに基づく処理を高速に実行することができる。また、トレーディングサーバ40は、各注文電文データの通番に対応付けたクロック維持フラグに基づいてクロック周波数を増減することで、負荷の増減に対してクロック周波数の増減を高速に追従させることができる。その結果、トレーディングサーバ40は、必要な期間にクロック周波数を上昇させることができるので、高速な処理を可能にしつつ、消費電力を抑制できる。
【0065】
なお、上記の処理では、連続するデータ列の先頭である通番「1001」の注文電文データを受信した時点では、クロック周波数は上昇されない。このため、通番「1001」の注文電文データに基づく処理を高速化することはできない。そこで、他の処理方法として、トレーディングサーバ40は、通番「1001」の分岐データをネットワークタップ20から受信した時点で、クロック周波数を上昇させてもよい。これにより、連続する注文電文データに基づく処理を実行している期間の全体において、処理が高速化される。図10図12に示すフローチャートでは、この処理方法を用いた場合について示す。
【0066】
次に、トレーディングサーバ40について詳しく説明する。
図7は、トレーディングサーバのハードウェア構成例を示す図である。トレーディングサーバ40は、例えば、図7に示すようなコンピュータとして実現される。図7に示すトレーディングサーバ40は、プロセッサ401、RAM(Random Access Memory)402、HDD(Hard Disk Drive)403、GPU(Graphics Processing Unit)404、入力インタフェース(I/F)405、読み取り装置406および通信インタフェース(I/F)407を備える。
【0067】
プロセッサ401は、トレーディングサーバ40全体を統括的に制御する。プロセッサ401は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ401は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0068】
RAM402は、トレーディングサーバ40の主記憶装置として使用される。RAM402には、プロセッサ401に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM402には、プロセッサ401による処理に必要な各種データが格納される。
【0069】
HDD403は、トレーディングサーバ40の補助記憶装置として使用される。HDD403には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0070】
GPU404には、表示装置41が接続されている。GPU404は、プロセッサ401からの命令にしたがって、画像を表示装置41に表示させる。表示装置41としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
【0071】
入力インタフェース405には、入力装置42が接続されている。入力インタフェース405は、入力装置42から出力される信号をプロセッサ401に送信する。入力装置42としては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0072】
読み取り装置406には、可搬型記録媒体43が脱着される。読み取り装置406は、可搬型記録媒体43に記録されたデータを読み取ってプロセッサ401に送信する。可搬型記録媒体43としては、光ディスク、半導体メモリなどがある。
【0073】
通信インタフェース407は、ネットワーク44を介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、トレーディングサーバ40の処理機能が実現されてもよい。なお、参加者サーバ10、ネットワークタップ20および参加者ゲートウェイ30についても、同様のハードウェア構成を有するコンピュータで実現されてもよい。
【0074】
図8は、トレーディングサーバが備える処理機能の構成例を示す図である。図8に示すように、トレーディングサーバ40は、記憶部410、分岐データ受信部421、スケーリング判定部422、注文受付部423、スケーリング制御部424および注文電文処理部425を備える。
【0075】
記憶部410は、RAM402など、トレーディングサーバ40が備える記憶装置に確保される記憶領域である。受信記録テーブル411には、ネットワークタップ20a,20b,20c,・・・から受信した分岐データのうち、トレーディングサーバ40が取引対象とする銘柄が指定された分岐データが、受信順に格納される。また、受信記録テーブル411には、各分岐データに対して、前述したクロック維持フラグを含む制御情報が対応付けて登録される。
【0076】
分岐データ受信部421、スケーリング判定部422、注文受付部423、スケーリング制御部424および注文電文処理部425の処理は、例えば、プロセッサ401が所定のアプリケーションプログラムを実行することで実現される。
【0077】
分岐データ受信部421は、ネットワークタップ20a,20b,20c,・・・から分岐データを受信する。分岐データ受信部421は、受信した分岐データのうち、トレーディングサーバ40が取引対象とする銘柄が指定された分岐データだけを受信記録テーブル411に登録し、それ以外の分岐データを破棄する。
【0078】
スケーリング判定部422は、ネットワークタップ20a,20b,20c,・・・からの分岐データの受信状況に基づいて、受信記録テーブル411に登録された分岐データに対応する制御情報を生成する。
【0079】
注文受付部423は、参加者ゲートウェイ30a,30b,30c,・・・からの注文電文データを受信する。
スケーリング制御部424は、受信記録テーブル411から、注文受付部423が受信した注文電文データの通番に対応する制御情報を取得し、取得した制御情報に基づいてクロック周波数をスケーリングする。
【0080】
注文電文処理部425は、注文受付部423が受信した注文電文データに基づいて、注文の付合せ処理を実行する。
図9は、受信記録テーブルのデータ構成例を示す図である。前述のように、受信記録テーブル411には、ネットワークタップ20から受信した分岐データのうち、トレーディングサーバ40が取引対象とする銘柄が指定された分岐データが、受信順に格納される。受信記録テーブル411には、各分岐データに対応するレコードが作成され、各レコードには、受信日時、銘柄、通番、クロック維持フラグおよび到着済みフラグが登録される。
【0081】
受信日時は、注文電文データをネットワークタップ20から受信した日時を示す。銘柄および通番は、受信した分岐データに含まれる情報である。銘柄は、取引対象の銘柄を示し、実際には銘柄コードで表される。通番は、分岐データおよびこれに対応する注文電文データを一意に識別する通し番号である。
【0082】
クロック維持フラグは、クロック周波数のスケーリングを実行するための制御情報である。クロック維持フラグには、クロック周波数を維持する場合に「1」が設定され、クロック周波数を維持せずに低下させる場合に「0」が設定される。
【0083】
到着済みフラグは、ネットワークタップ20からの分岐データの到着順が入れ替わった場合でもスケーリングを正しく実行できるようにするための制御情報である。到着済みフラグの初期値は「0」であり、本来の順番より前にネットワークタップ20から受信された分岐データが注文電文処理部425によって処理された場合に、到着済みフラグが「1」に更新される。
【0084】
次に、トレーディングサーバ40の処理について、フローチャートを用いて説明する。以下の説明では、プロセッサ401が複数のコアを備え、コアごとにクロック周波数を調整可能になっているとする。また、1つのトレーディングサーバ40には取引対象の銘柄が複数割り当てられており、割り当てられた銘柄ごとに処理を担うコアが割り当てられているとする。
【0085】
図10は、スケーリング判定処理の手順を示すフローチャートの例である。
[ステップS11]分岐データ受信部421は、ネットワークタップ20から分岐データを受信する。
【0086】
[ステップS12]分岐データ受信部421は、受信した分岐データにおいて指定された銘柄が自サーバでの処理対象の銘柄かを判定する。処理対象の銘柄である場合、処理がステップS14に進められ、処理対象の銘柄でない場合、処理がステップS13に進められる。
【0087】
[ステップS13]分岐データ受信部421は、受信した分岐データを破棄する。
[ステップS14]スケーリング判定部422は、受信した分岐データにおいて指定された銘柄に対応するコアのクロック周波数が上昇済みであるかを判定する。クロック周波数が上昇済みの場合、処理がステップS16に進められ、クロック周波数が上昇されていない場合、処理がステップS15に進められる。
【0088】
[ステップS15]スケーリング判定部422は、該当するコアのクロック周波数を上昇させる。例えば、受信した分岐データが、連続する分岐データのうちの先頭データである場合、ステップS15の処理によりクロック周波数が上昇される。これにより、受信した分岐データに対応する注文電文データが参加者ゲートウェイ30から受信される前に、クロック周波数を上昇させておくことができる。なお、分岐データに対応する注文電文データは短時間のうちに参加者ゲートウェイ30からも到着するため、その到着前にクロック周波数が上昇されることによる無駄な消費電力は小さいと考えられる。
【0089】
[ステップS16]スケーリング判定部422は、受信記録テーブル411から、受信した分岐データにおいて指定された銘柄と同じ銘柄が登録されたレコードのうち、最も先頭側のレコードを選択する。スケーリング判定部422は、選択されたレコードの情報(具体的には受信日時)を取得する。これにより、ネットワークタップ20から直前に受信した同一銘柄の分岐データに対応する情報が取得される。
【0090】
[ステップS17]スケーリング判定部422は、ステップS16でレコードから取得した受信日時と、現在の日時との差が、所定の閾値以内かを判定する。日時の差が閾値以内の場合、処理がステップS18に進められ、日時の差が閾値より大きい場合、処理がステップS19に進められる。
【0091】
[ステップS18]このケースでは、現在の分岐データ(ステップS11で受信した分岐データ)と直前に受信した同一銘柄の分岐データとが連続していると判定される。この場合、スケーリング判定部422は、後者の分岐データに対応するクロック維持フラグを「1」に更新する。
【0092】
一方、ステップS17で「No」と判定された場合、現在の分岐データと直前に受信した同一銘柄の分岐データとが連続していないと判定されるので、後者の分岐データに対応するクロック維持フラグは「0」のまま維持される。
【0093】
[ステップS19]スケーリング判定部422は、受信記録テーブル411の先頭にレコードを追加し、このレコードに対して、現在の日時と、ステップS11で受信した分岐データに含まれる銘柄および通番とを登録する。また、スケーリング判定部422は、追加したレコードのクロック維持フラグおよび到着済みフラグとして、初期値である「0」を登録する。
【0094】
図11図13は、注文電文処理の手順を示すフローチャートの例である。
[ステップS21]注文受付部423は、参加者ゲートウェイ30から注文電文データを受信する。
【0095】
[ステップS22]スケーリング制御部424は、受信した注文電文データにおいて指定された銘柄に対応するコアのクロック周波数が上昇済みであるかを判定する。クロック周波数が上昇済みの場合、処理がステップS24に進められ、クロック周波数が上昇されていない場合、処理がステップS23に進められる。
【0096】
[ステップS23]このケースは、何らかの異常により、受信した注文電文データに対応する分岐データをネットワークタップ20から受信したときにクロック周波数が上昇されなかったケースである。この場合、スケーリング制御部424は、該当するコアのクロック周波数を上昇させる。
【0097】
[ステップS24]注文電文処理部425は、受信した注文電文データに基づいて、注文の付合せ処理を実行する。
[ステップS25]スケーリング制御部424は、受信記録テーブル411から、受信した注文電文データと同じ通番を含むレコードを特定する。以下、特定されたレコードを「レコードA」とする。
【0098】
[ステップS26]スケーリング制御部424は、レコードAに含まれるクロック維持フラグを、変数Xに設定する。
以下、図12を参照して説明を続ける。
【0099】
ネットワークタップ20から受信される分岐データは、ネットワークタップ20の処理状況などを原因として、順序が入れ替わる可能性がある。順序が入れ替わっている場合、通番に対応付けられたクロック維持フラグをそのまま用いてスケーリングが行われると、スケーリングのタイミングを間違える可能性がある。以下の図12および図13の処理では、到着済みフラグを用いることで、分岐データの受信順が入れ替わった場合でもスケーリングが正しく行われるように制御される。
【0100】
[ステップS31]スケーリング制御部424は、受信記録テーブル411において、上記のレコードA(ステップS21で受信した注文電文データに対応するレコード)より前(先頭側)にレコードがあるかを判定する。該当レコードがある場合、処理がステップS32に進められ、該当レコードがない場合、処理がステップS33に進められる。
【0101】
[ステップS32]このケースは、分岐データの受信順の入れ替わりが発生したケースである。すなわち、ステップS21で受信し、ステップS24で処理済みである注文電文データより、本来後に受信されるべき注文電文データに対応するデータが、受信記録テーブル411の先頭側に残っていることになる。
【0102】
この場合、スケーリング制御部424は、レコードAの到着済みフラグを「1」に更新する。これにより、レコードAがすでに参加者ゲートウェイ30からトレーディングサーバ40に到着済みである(トレーディングサーバ40で処理済みである)ことが記録される。
【0103】
[ステップS33]スケーリング制御部424は、受信記録テーブル411において、上記のレコードAより後(末尾側)にレコードがあるかを判定する。該当レコードがある場合、処理が図13のステップS41に進められ、該当レコードがない場合、処理がステップS34に進められる。
【0104】
[ステップS34]スケーリング制御部424は、受信記録テーブル411からレコードAを削除する。
[ステップS35]スケーリング制御部424は、現在の変数Xとして設定されたクロック維持フラグが「1」かを判定する。フラグが「1」の場合、処理が終了され、フラグが「0」の場合、処理がステップS36に進められる。
【0105】
[ステップS36]スケーリング制御部424は、ステップS21で受信した注文電文データにおいて指定された銘柄に対応するコアのクロック周波数を低下させる。
以下、図13を参照して説明を続ける。
【0106】
[ステップS41]スケーリング制御部424は、レコードAを変数Yに設定する。
[ステップS42]スケーリング制御部424は、受信記録テーブル411から、変数Yが示すレコードの後ろ側(末尾側)に存在するレコード(レコードBとする)を取得する。
【0107】
[ステップS43]スケーリング制御部424は、レコードBの到着済みフラグが「1」かを判定する。フラグが「1」の場合、処理がステップS44に進められ、フラグが「0」の場合、処理が図12のステップS35に進められる。
【0108】
[ステップS44]スケーリング制御部424は、レコードBのクロック維持フラグを変数Xに上書きして設定する。
[ステップS45]スケーリング制御部424は、受信記録テーブル411から、変数Yが示すレコードを削除する。
【0109】
[ステップS46]スケーリング制御部424は、レコードBを変数Yに上書きして設定する。
[ステップS47]スケーリング制御部424は、受信記録テーブル411の後ろ側に、ステップS42で未選択のレコードがあるかを判定する。未選択のレコードがある場合、処理がステップS42に進められる。この場合、ステップS42では、未選択のレコードが受信記録テーブル411の先頭側から選択される。一方、すべてのレコードを選択済みの場合、処理が図12のステップS35に進められる。
【0110】
ここで、ステップS43で「Yes」となるのは、受信記録テーブル411で1つ後のレコードの到着済みフラグが「1」であるケースである。この場合、ステップS44で、前のレコードから後のレコードに対してクロック維持フラグがコピーされ、ステップS45で、前のレコードが削除される。その後、ステップS47で「No」となってステップS35に進むと、コピーされたクロック維持フラグに基づいてクロック周波数が制御される。これにより、クロック周波数のスケーリングを正しく実行できる。
【0111】
例えば、参加者ゲートウェイ30からトレーディングサーバ40に対して、通番「001」、「002」、「003」の順で注文電文データが連続して送信されるとする。一方、ネットワークタップ20からトレーディングサーバ40に対しては、通番「001」、「003」、「002」の順で分岐データが転送されたとする。この場合、通番「001」、「003」、「002」に対応するクロック維持フラグは、それぞれ「1」、「1」、「0」となる。
【0112】
トレーディングサーバ40は、参加者ゲートウェイ30から通番「001」の注文電文データを受信すると、この注文電文データを処理した後、ステップS33で後にレコードがあると判定する。この場合、ステップS43で到着済みフラグが「1」と判定されるので、ステップS35で通番「001」のクロック維持フラグが「1」と判定され、クロック周波数は上昇したまま維持される。
【0113】
次に、トレーディングサーバ40は、参加者ゲートウェイ30から通番「002」の注文電文データを受信すると、この注文電文データを処理した後、ステップS31で前に通番「003」のレコードがあると判定する。これにより、ステップS32で、通番「002」に対応する到着済みフラグが「1」に更新され、クロック周波数は上昇したまま維持される。
【0114】
次に、トレーディングサーバ40は、参加者ゲートウェイ30から通番「003」の注文電文データを受信すると、この注文電文データを処理した後、ステップS33で後に通番「002」のレコードがあると判定する。この場合、ステップS43で通番「002」の到着フラグが「1」と判定され、ステップS44で通番「003」のクロック維持フラグ「0」が通番「002」にコピーされる。そして、ステップS35では、通番「003」ではなく通番「002」のクロック維持フラグが「0」と判定され、ステップS36でクロック周波数が低下される。
【0115】
このように、ネットワークタップ20からの分岐データの受信順が入れ替わった場合でも、クロック周波数のスケーリングを正しく実行できる。すなわち、通番「001」~「003」の注文電文データが処理されている間、クロック周波数を上昇させておき、通番「003」の注文電文データの処理が完了すると、クロック周波数を低下させることができる。
【0116】
なお、図10図13の処理では、連続する分岐データのうち先頭データがネットワークタップ20から受信された時点で、クロック周波数が上昇されるものとした。しかし、図6で説明したように、参加者ゲートウェイ30から当該先頭データに対応する注文電文データを受信し、当該注文電文データの処理が完了した時点で、クロック周波数を上昇させてもよい。この場合、図10図13の処理は、次のように変更されればよい。
【0117】
図10では、ステップS14,S15の処理がスキップされる。また、図11では、ステップS22,S23の処理がスキップされる。図12では、ステップS35で「Yes」と判定されたとき、該当コアのクロック周波数が低下された状態の場合に、クロック周波数が上昇される。
【0118】
なお、上記の各実施の形態に示した装置(例えば、情報処理装置4、トレーディングサーバ40a,40b,40c,・・・)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。
【0119】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0120】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0121】
1,3 サーバ
2 中継装置
4 情報処理装置
C 制御情報
ID1~ID4 処理依頼
id1~id4 識別情報
ST1~ST4 状態
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13