(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077258
(43)【公開日】2023-06-05
(54)【発明の名称】情報処理プログラム、情報処理方法及び情報処理装置
(51)【国際特許分類】
G06F 9/52 20060101AFI20230529BHJP
H04L 67/60 20220101ALI20230529BHJP
H04L 9/08 20060101ALI20230529BHJP
G06Q 40/04 20120101ALI20230529BHJP
【FI】
G06F9/52 150Z
H04L67/60
H04L9/08 B
H04L9/08 E
G06Q40/04
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021190498
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(71)【出願人】
【識別番号】000237639
【氏名又は名称】富士通フロンテック株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鎌田 泰毅
(72)【発明者】
【氏名】澤田 晃幸
(72)【発明者】
【氏名】奥村 直也
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055BB51
(57)【要約】
【課題】情報開示のタイミングの公平性が損なわれるのを抑制すること。
【解決手段】情報処理プログラムは、データの送信日時の指定を受け付け、送信日時に基づいてデータを送信する送信処理を実行するスレッドをデータの送信先ごとに起動し、データの送信先ごとに起動される複数のスレッドの各々でデータの送信先に通信接続要求が実行される直前に、複数のスレッドの各々の状態を前記データの送信開始を待機する待機状態へ移行させ、複数のスレッドの各々で起動が終了した場合、複数のスレッドの各々の待機状態を解除させる、処理をコンピュータに実行させる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データの送信日時の指定を受け付け、
前記送信日時に基づいて前記データを送信する送信処理を実行するスレッドを前記データの送信先ごとに起動し、
前記データの送信先ごとに起動される複数のスレッドの各々で前記データの送信先に通信接続要求が実行される直前に、前記複数のスレッドの各々の状態を前記データの送信開始を待機する待機状態へ移行させ、
前記複数のスレッドの各々で起動が終了した場合、前記複数のスレッドの各々の前記待機状態を解除させる、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記複数のスレッドは、複数のワーカスレッドに対応する、
ことを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記送信処理は、ソケット通信により実現される、
ことを特徴とする請求項1または2に記載の情報処理プログラム。
【請求項4】
前記データは、前記データの送信先に前記データよりも先行して送信された開示資料の暗号化データの復号化に用いる復号キーを含む、
ことを特徴とする請求項1~3のいずれか1つに記載の情報処理プログラム。
【請求項5】
前記データは、適時開示に関する開示資料のデータを含む、
ことを特徴とする請求項1~3のいずれか1つに記載の情報処理プログラム。
【請求項6】
データの送信日時の指定を受け付け、
前記送信日時に基づいて前記データを送信する送信処理を実行するスレッドを前記データの送信先ごとに起動し、
前記データの送信先ごとに起動される複数のスレッドの各々で前記データの送信先に通信接続要求が実行される直前に、前記複数のスレッドの各々の状態を前記データの送信開始を待機する待機状態へ移行させ、
前記複数のスレッドの各々で起動が終了した場合、前記複数のスレッドの各々の前記待機状態を解除させる、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項7】
データの送信日時の指定を受け付け、
前記送信日時に基づいて前記データを送信する送信処理を実行するスレッドを前記データの送信先ごとに起動し、
前記データの送信先ごとに起動される複数のスレッドの各々で前記データの送信先に通信接続要求が実行される直前に、前記複数のスレッドの各々の状態を前記データの送信開始を待機する待機状態へ移行させ、
前記複数のスレッドの各々で起動が終了した場合、前記複数のスレッドの各々の前記待機状態を解除させる、
処理を実行する制御部を含む情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理技術に関する。
【背景技術】
【0002】
適時開示が電子化された適時開示情報伝達システムが知られている。例えば、適時開示情報伝達システムは、上場会社から登録を受け付けた開示資料が暗号化された暗号化データを報道機関などの情報ベンダへ事前に通知しておき、開示が指示されたタイミングで復号キーを通知する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017-228954号公報
【特許文献2】特開2015-215728号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の適時開示情報伝達システムでは、情報ベンダへの復号キーの通知がユニキャスト方式で直列化されているので、情報開示のタイミングの公平性が損なわれる側面がある。
【0005】
1つの側面では、本発明は、情報開示のタイミングの公平性が損なわれるのを抑制できる情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一側面にかかる情報処理プログラムは、データの送信日時の指定を受け付け、前記送信日時に基づいて前記データを送信する送信処理を実行するスレッドを前記データの送信先ごとに起動し、前記データの送信先ごとに起動される複数のスレッドの各々で前記データの送信先に通信接続要求が実行される直前に、前記複数のスレッドの各々の状態を前記データの送信開始を待機する待機状態へ移行させ、前記複数のスレッドの各々で起動が終了した場合、前記複数のスレッドの各々の前記待機状態を解除させる、処理をコンピュータに実行させる。
【発明の効果】
【0007】
一実施形態によれば、情報開示のタイミングの公平性が損なわれるのを抑制できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、情報伝達システムの構成例を示す図である。
【
図2】
図2は、適時開示に含まれ得るプロセスの一例を示す模式図である。
【
図3】
図3は、証券取引所サーバの機能構成例を示すブロック図である。
【
図4】
図4は、各スレッドの機能構成例を示すブロック図である。
【
図5】
図5は、待機状態の解除制御処理の手順を示すフローチャートである。
【
図6】
図6は、情報伝達処理の手順を示すシーケンス図である。
【
図7】
図7は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して本願に係る情報処理プログラム、情報処理方法及び情報処理装置の実施例について説明する。各実施例には、あくまで1つの例や側面を示すに過ぎず、このような例示により数値や機能の範囲、利用シーンなどは限定されない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例0010】
図1は、情報伝達システムの構成例を示す図である。
図1には、適時開示が電子化された情報伝達システム1が示されている。このような情報伝達システム1は、1つの側面として、企業端末30A~30Mにより登録される適時開示情報を報道機関端末50A~50Nへ開示時刻に公開する情報伝達機能を提供する。
【0011】
図1に示すように、情報伝達システム1には、証券取引所サーバ10と、企業端末30A~30Mと、報道機関端末50A~50Nとが含まれ得る。以下、企業端末30A~30Mの各々の個体を区別せずともよい場合、企業端末30A~30Mのことを「企業端末30」と記載する場合がある。同様に、報道機関端末50A~50Nの各々の個体を区別せずともよい場合、報道機関端末50A~50Nのことを「報道機関端末50」と記載する場合がある。
【0012】
これら証券取引所サーバ10、企業端末30及び報道機関端末50は、ネットワークNWを介して通信可能に接続され得る。このようなネットワークNWは、有線または無線を問わず、任意の種類の通信網であってよいが、例えば、専用線を始め、証券取引所により構築されたネットワークインフラであってよい。
【0013】
証券取引所サーバ10は、証券取引所が運営する情報処理装置の一例に対応する。あくまで1つの側面として、証券取引所サーバ10は、上記の情報伝達機能を提供する。一実施形態として、証券取引所サーバ10は、上記の情報伝達機能を実現するソフトウェア、例えば情報処理プログラムを任意のコンピュータに実行させることにより、上記の情報伝達機能を提供できる。例えば、証券取引所サーバ10は、上記の情報伝達機能に対応する情報伝達サービスをオンプレミスに提供するサーバにより実現される。この他、証券取引所サーバ10は、SaaS(Software as a Service)型のアプリケーションとして実現されることで、上記の情報伝達サービスがクラウドサービスとして提供されてもよい。
【0014】
企業端末30は、上場企業が運営する端末装置の一例に対応する。また、報道機関端末50は、報道機関等の情報ベンダが運営する端末装置の一例である。これら「企業端末」および「報道機関端末」というラベルは、あくまで端末装置の所属の一面からの分類であって、ハードウェアの種類や構成は、特定のものに限定されず、任意であってよい。
【0015】
図2は、適時開示に含まれ得るプロセスの一例を示す模式図である。
図2には、開示時刻TDまでに証券取引所サーバ10により実行されるプロセスが時刻TD-T2、時刻TD-T1およびTDの時系列に示されている。
【0016】
図2に示すように、時刻TD-T2には、証券取引所サーバ10は、決算情報や決定事実、発生事実等の重要事実を開示する開示資料および開示資料を公開するタイミングが指定された開示日時を含む適時開示情報の登録を企業端末30から受け付ける(S1)。
【0017】
例えば、開示資料は、XBRL(eXtensible Business Reporting Language)やPDF(Portable Document Format)などのフォーマットに従って登録されてよい。なお、開示資料は、証券取引所サイドのチェックを経て始めて公開されることとしてもよい。
【0018】
続いて、時刻TD-T1には、証券取引所サーバ10は、ステップS1で登録された開示資料のデータが暗号化された暗号化データを報道機関端末50A~50Nへ事前配信しておく(S2)。
【0019】
その後、開示時刻TDになると、証券取引所サーバ10は、ステップS2で事前配信された開示資料の暗号化データの復号化に用いる復号キーを報道機関端末50A~50Nへ配信する(S3)。
【0020】
このように開示資料の暗号化データを開示時刻の事前に配信してその復号キーを開示時刻に配信するのは、開示時刻に伝送するデータのデータサイズの肥大化を抑制することで、各情報ベンダの間で生じるネットワークの遅延を均一化する側面がある。
【0021】
ここで、上記の背景技術の欄で説明した通り、上記の従来技術に係る適時開示情報伝達システムでは、情報ベンダへの復号キーの配信がユニキャスト方式で直列化されているので、情報開示のタイミングの公平性が損なわれる側面がある。
【0022】
例えば、上記の復号キーが報道機関A~報道機関Zのアルファベット順に情報ベンダへ配信されるとしたとき、復号キーの配信が報道機関Aよりも後回しにされる報道機関B以降の報道機関では、情報開示のタイミングが報道機関Aに比べて遅延する。特に、報道機関Zでは、報道機関B~報道機関Yの後に復号キーが配信されるので、他の報道機関に比べて情報開示の遅延も増大する。このように、上記の従来技術に係る適時開示情報伝達システムによれば、報道機関A~報道機関Zの間で情報開示の遅延に格差が生じるので、情報開示のタイミングの公平性が損なわれる。
【0023】
以下、上記の課題を解決する情報伝達機能を有する証券取引所サーバ10の機能構成例について説明する。
図3は、証券取引所サーバ10の機能構成例を示すブロック図である。
図3には、1つの側面として、上記の情報伝達機能のうち開示時刻TDに動作する機能部に対応するブロックが抜粋して模式化されているが、他の機能部、例えば適時開示情報の閲覧サービスやデータベースサービスなどに対応する機能部が備わることを妨げない。
【0024】
図3に示すように、証券取引所サーバ10は、適時開示情報記憶部11と、メインスレッド実行部13と、ワーカスレッド実行部15A~15Nとを有する。以下、ワーカスレッド実行部15A~15Nの個体を区別せずともよい場合、ワーカスレッド実行部15A~15Nのことを「ワーカスレッド実行部15」と記載する場合がある。
【0025】
図3に示す証券取引所サーバ10が有する機能部のうち、メインスレッド実行部13及びワーカスレッド実行部15は、ハードウェアプロセッサにより実現される。また、適時開示情報記憶部11などの記憶部は、補助記憶装置により実現されたり、補助記憶装置が有する記憶領域の一部を割り当てることにより実現されたりする。
【0026】
適時開示情報記憶部11は、上記の適時開示情報を記憶する記憶部である。上述の通り、適時開示情報には、決算情報や決定事実、発生事実等の重要事実を開示する「開示資料」および開示資料を公開するタイミングが指定された「開示日時」が含まれてよい。このような適時開示情報は、当該適時開示情報の登録を行う上場企業を識別する識別情報に関連付けて記憶される。
【0027】
メインスレッド実行部13は、上記の情報伝達機能を実現する情報処理プログラムがメモリ上で実行されることによりインスタンス化された情報伝達プロセスにより作成されるメインスレッドを実行する処理部である。
【0028】
一実施形態として、メインスレッド実行部13は、適時開示情報記憶部11に記憶された適時開示情報ごとに当該適時開示情報に含まれる開示日時を監視する。例えば、メインスレッド実行部13は、毎分0秒をイベントの発火時刻とするタイマーイベントにより処理を開始する。メインスレッド実行部13は、適時開示情報のうちタイムスタンプに保持される現在日時と一致する開示日時を含む適時開示情報が存在するか否かを判定する。このとき、開示日時が現在日時と一致する適時開示情報が存在する場合、メインスレッド実行部13は、適時開示の配信対象として設定された報道機関端末50の数に対応する個数、例えばN個分のワーカスレッドをワーカスレッド実行部15に起動させる。その上で、メインスレッド実行部13は、ワーカスレッド実行部15ごとに当該ワーカスレッドに対応する報道機関端末50に開示資料の暗号化データの復号化に用いる復号キーを送信するタスクを割り当てる。
【0029】
ワーカスレッド実行部15A~15Nは、いずれもワーカスレッドを実行する処理部である。ワーカスレッド実行部15A~15Nは、上記の復号キーを送信する宛先が報道機関端末50A~50Nである点は異なるが、動作のアルゴリズムは同一であってよい。
【0030】
あくまで一例として、証券取引所サーバ10および報道機関端末50の間の通信は、ソケット通信により実現される。例えば、ワーカスレッド実行部15A~15Nは、ソケットクライアントとして機能するソケット送信部17A~17Nを生成する一方で、報道機関端末50A~50Nは、ソケットサーバとして機能するソケット受信部51A~51Nを生成する。1つの側面として、ソケット送信部17A~17Nからソケット受信部51A~51Nへ送信されるコネクション確立のリクエストに従ってソケット送信部17A~17N及びソケット受信部51A~51Nの間でコネクションが確立された後にデータが通信される。
【0031】
図4は、各スレッドの機能構成例を示すブロック図である。
図4に示すように、メインスレッド実行部13は、起動部13aと、カウント部13bと、解除制御部13cとを有する。
【0032】
起動部13aは、ワーカスレッドを起動する処理部である。あくまで一例として、起動部13aは、開示日時が現在日時と一致する適時開示情報が存在する場合、次のような処理を実行する。1つの側面として、起動部13aは、カウント部13bにより保持されるカウント変数を初期値、例えば配信対象として設定された報道機関端末50の数Nに初期化する。他の側面として、起動部13aは、上記の情報伝達プロセスが保持するスレッドプールからN個のワーカスレッドを抽出して起動する。これにより、ワーカスレッド実行部15A~15Nが起動される。これらワーカスレッド実行部15A~15Nには、各々のワーカスレッドに対応する報道機関端末50に上記の復号キーを送信するタスクが割り当てられる。
【0033】
カウント部13bは、特定の値をカウントする処理部である。以下では、カウントのあくまで一例として、カウントダウンが実行される例を挙げるが、他の方法、例えばカウントアップが実行されることとしてもよい。あくまで一例として、カウント部13bは、後述のカウント依頼部15bからカウント依頼を受け付ける度に、カウント変数をデクリメントする。これにより、カウント変数は、初期値であるワーカスレッドの数Nから1つずつカウントダウンされることになる。
【0034】
解除制御部13cは、待機状態の解除を制御する処理部である。あくまで一例として、解除制御部13cは、カウント部13bにより保持されるカウント変数が特定の値、例えばゼロである場合、各ワーカスレッドの待機状態を解除する側面から、待機状態の解除を後述の解除部15dに指示する。
【0035】
ワーカスレッド実行部15は、
図4に示すように、起動部15aと、カウント依頼部15bと、待機部15cと、解除部15dとを有する。なお、
図4には、適時開示の配信対象として設定された報道機関の宛先の数に対応するワーカスレッド実行部15A~15Nのうち1つが抜粋して例示されているが、ワーカスレッド実行部15A~15Nに備わる機能は同一であってよい。
【0036】
起動部15aは、ソケット送信部17を起動する処理部である。あくまで一例として、起動部15aは、ワーカスレッドが起動された場合、ソケットクライアントとして機能するソケット送信部17を起動する。
【0037】
カウント依頼部15bは、カウント部13bによるカウントを依頼する処理部である。あくまで一例として、カウント依頼部15bは、起動部15aによりソケット送信部17が起動された場合、カウント部13bにより保持されるカウント変数をカウントダウンするカウント依頼をカウント部13bへ通知する。
【0038】
待機部15cは、ワーカスレッドをワーカスレッドの処理を一旦停止する待機状態へ移行させる処理部である。あくまで一例として、待機部15cは、カウント依頼部15bからカウント部13bへカウント依頼が通知された場合、ソケット送信部17からソケット受信部51へコネクション確立のリクエストが送信される直前で、ワーカスレッドを待機状態へ移行させる。ここで言う「直前」とは、あくまで1つの側面として、ワーカスレッドが起動したタイミングを指してよいし、ソケット送信部17の起動が実行されたタイミングを指してもよいし、カウント依頼部15bによるカウント依頼が実行されたタイミングを指してもよい。
【0039】
解除部15dは、ワーカスレッドの待機状態を解除する処理部である。あくまで一例として、解除部15dは、解除制御部13cにより待機状態の解除が指示された場合、ワーカスレッドの待機状態を解除する。
【0040】
このように、ワーカスレッド実行部15A~15Nが開示資料の暗号化データの復号化に用いる復号キーをマルチスレッドによる並列処理で配信する。したがって、情報開示のタイミングの公平性が損なわれるのを抑制できる。
【0041】
さらに、ワーカスレッド実行部15A~15Nの各々でソケット送信部17A~17Nが生成され終えるまで、ソケット送信部17A~17Nからソケット受信部51A~51Nへコネクション確立のリクエストが送信される処理の開始が待機される。これにより、ソケット送信部17が生成され終えていないワーカスレッドが置き去りにされたまま、ソケット送信部17が生成され終えたワーカスレッドによりコネクション確立が先行して開始される事態を抑制できる。
【0042】
その一方で、ワーカスレッド実行部15A~15Nの各々でソケット送信部17A~17Nが生成され終えた段階で、ソケット送信部17A~17Nからソケット受信部51A~51Nへコネクション確立のリクエストが送信される処理の待機を解除する。これにより、ソケット受信部51、すなわちソケットサーバ側が原因となってコネクション確立が困難、あるいは遅延し得る状況で、コネクション確立済みのソケット送信部17によるデータの送信が待機状態になることも抑制できる。
【0043】
すなわち、一般の通信で情報伝達の同時性を高める側面から言えば、ソケット送信部17A~17Nの各々でコネクションが確立され終えるまでソケット送信部17A~17Nによるデータの送信の開始を待機することも選択肢として考えられる。しかしながら、一部の報道機関サイドによる報道機関端末50やソケット受信部51のメンテナンス不良が原因となって他の報道機関サイドへの情報開示が遅延すれば、情報開示のタイミングの適時性が損なわれる。
【0044】
以上のように、本実施例に係る情報伝達機能では、適時開示に関するデータの送信先ごとに全てのワーカスレッドの起動が終了するまで、送信先への通信接続要求を行う直前で各ワーカスレッドを待機させる。したがって、本実施例に係る情報伝達機能によれば、情報開示のタイミングの公平性および適時性の両立を実現できる。
【0045】
次に、本実施例に係る情報伝達システム1の処理の流れについて説明する。ここでは、メインスレッド実行部13により実行される(1)待機状態の解除制御処理を説明した後に、情報伝達システム1全体で実行される(2)情報伝達処理を説明することとする。
【0046】
図5は、待機状態の解除制御処理の手順を示すフローチャートである。この処理は、あくまで一例として、開示日時が現在日時と一致する適時開示情報が適時開示情報記憶部11に存在する場合、開始される。
【0047】
図5に示すように、起動部13aは、カウント部13bにより保持されるカウント変数を初期値、例えば配信対象として設定された報道機関端末50の数Nに初期化する(ステップS101)。
【0048】
さらに、起動部13aは、上記の情報伝達プロセスが保持するスレッドプールから、配信対象として設定された報道機関端末50の数に対応するN個のワーカスレッドを抽出して起動する(ステップS102)。
【0049】
その後、カウント部13bにより保持されるカウント変数を監視し(ステップS103)、カウント部13bにより保持されるカウント変数が特定の値、例えばゼロになるまで(ステップS104No)、下記のステップS105および下記のステップS106の処理を実行する。
【0050】
すなわち、ワーカスレッド実行部15のカウント依頼部15bからカウント依頼を受け付けた場合(ステップS105Yes)、カウント部13bは、カウント変数をデクリメントすることによりカウント変数のカウントダウンを実行する(ステップS106)。なお、カウント依頼が受け付けられていない場合(ステップS105No)、上記のステップS106の処理をスキップしてステップS104の処理へ移行する。
【0051】
その後、カウント変数が特定の値、例えばゼロになると(ステップS104Yes)、解除制御部13cは、ワーカスレッド実行部15A~15Nの各々の解除部15dに待機状態の解除を指示し(ステップS107)、処理を終了する。
【0052】
図6は、情報伝達処理の手順を示すシーケンス図である。この情報伝達処理において、受信側となる報道機関端末50では、送信側の情報伝達機能に対応する受信側の情報受信機能を実現する情報受信プログラムが起動される。
【0053】
図6に示すように、情報受信プログラムは、常駐プロセスとしてソケットの送信を待ち受ける側面から、socket()のシステムコールを実行することにより、ソケットサーバとして機能するソケット受信部51を生成する(ステップS301A)。
【0054】
続いて、情報受信プログラムは、bind()のシステムコールを実行することにより、ステップS301Aで生成されたソケット受信部51に報道機関端末50のポート番号を割り当てる(ステップS302A)。
【0055】
その後、ソケット受信部51は、listen()のシステムコールを実行することにより、ソケット受信部51の状態をソケットクライアントであるソケット送信部17からの接続を待ち受ける状態に移行する(ステップS303A)。
【0056】
上記のステップS301Aから上記のステップS303Aまでにエラーが検出された場合、情報受信プログラムの起動時のエラーと判定し、上記のステップS301Aから上記のステップS303Aまでの処理がリトライされる。
【0057】
一方、送信側の証券取引所サーバ10では、上記の情報伝達機能を実現する情報処理プログラムがメモリ上で実行されることによりインスタンス化された情報伝達プロセスによりメインスレッド実行部13が生成される。
【0058】
メインスレッド実行部13は、開示日時が現在日時と一致する適時開示情報が適時開示情報記憶部11に存在する場合、次のような処理を実行する。すなわち、
図6に示すように、メインスレッド実行部13の起動部13aは、メインスレッド実行部13のカウント部13bにより保持されるカウント変数を初期値、例えば配信対象として設定された報道機関端末50の数Nに初期化する(ステップS301B)。
【0059】
続いて、メインスレッド実行部13の起動部13aは、上記の情報伝達プロセスが保持するスレッドプールから、配信対象として設定された報道機関端末50の数に対応するN個のワーカスレッドを抽出して起動する(ステップS302B)。
【0060】
上記のステップS302Bの処理により、ワーカスレッド実行部15A~15Nが起動される。ここで、
図6には、ワーカスレッド実行部15A~15Nのうち1つが抜粋して例示されているが、ワーカスレッド実行部15A~15Nにより実行される処理は同一であってよい。
【0061】
このようにワーカスレッドが起動されると、ワーカスレッド実行部15の起動部15aは、ソケットクライアントとして機能するソケット送信部17を生成する(ステップS301C)。
【0062】
続いて、ワーカスレッド実行部15のカウント依頼部15bは、メインスレッド実行部13のカウント部13bにより保持されるカウント変数をカウントダウンするカウント依頼をカウント部13bへ通知する(ステップS302C)。
【0063】
さらに、ワーカスレッド実行部15の待機部15cは、ワーカスレッド実行部15のソケット送信部17からソケット受信部51へコネクション確立のリクエストが送信される直前で、ワーカスレッドを待機状態へ移行させる(ステップS303C)。
【0064】
一方、ステップS302Cでカウント依頼が通知されたメインスレッド実行部13のカウント部13bは、カウント変数をデクリメントすることにより、カウント変数のカウントダウンを実行する(ステップS303B)。その後、メインスレッド実行部13の解除制御部13cは、メインスレッド実行部13のカウント部13bにより保持されるカウント変数を監視する(ステップS304C)。
【0065】
ここで、メインスレッド実行部13の解除制御部13cは、カウント変数が特定の値、例えばゼロになると、ワーカスレッド実行部15A~15Nの各々の解除部15dに待機状態の解除を指示する(ステップS305)。
【0066】
このようにステップS305で待機状態の解除が指示されたワーカスレッド実行部15の解除部15dは、ワーカスレッドの待機状態を解除する。これにより、ワーカスレッド実行部15は、connect()のシステムコールを実行することにより、ソケット送信部17からソケット受信部51へ接続要求が実行される(ステップS306及びステップS307)。
【0067】
一方、ソケット受信部51は、ステップS303Aにおけるlisten()のシステムコールの実行後にselect()のシステムコールを実行することにより、複数同時接続を監視して接続要求があるソケットクライアントを識別する(ステップS308)。そして、ソケット受信部51は、accept()のシステムコールを実行することにより、ソケット送信部17からの接続要求を受け入れる(ステップS309)。
【0068】
また、ワーカスレッド実行部15は、getOutputStream.writeのシステムコールを実行して、開示資料の暗号化データの復号化に用いる復号キーなどのデータをソケット送信部17からソケット受信部51へ送信する(ステップS310及びステップS311)。
【0069】
一方、ソケット受信部51は、select()のシステムコールを実行することにより、複数同時接続を監視してデータ送信要求があるソケットクライアントを識別する(ステップS312)。続いて、ソケット受信部51は、recv()のシステムコールを実行することにより、コネクション確立済みであるソケット送信部17から送信されるデータを受診する(ステップS313)。その上で、ソケット受信部51は、send()のシステムコールを実行することにより、ソケット送信部17から受信したデータをそのままソケット送信部17へ送信する(ステップS314)。その後、ソケット受信部51は、close()のシステムコールを実行することにより、ソケットリソースを開放し(ステップS315)、処理を終了する。
【0070】
なお、上記のステップS308から上記のステップS314までの処理でエラーが検出された場合、リトライにより復旧される可能性があるエラーであるか否かが識別される。この結果、復旧の可能性があると識別された場合、接続要求およびデータ送信を改めて待ち受ける。一方、復旧の可能性がないと識別された場合、情報受信プログラムが停止される。
【0071】
また、ワーカスレッド実行部15は、getInputStream.readのシステムコールを実行して、ソケット受信部51から応答されるデータを受診する(ステップS316及びステップS317)。その後、ワーカスレッド実行部15は、close()のシステムコールを実行することにより、ソケットを切断し(ステップS318)、処理を終了する。
【0072】
上述してきたように、本実施例に係る証券取引所サーバ10では、ワーカスレッド実行部15A~15Nが開示資料の暗号化データの復号化に用いる復号キーをマルチスレッドによる並列処理で配信する。したがって、本実施例に係る証券取引所サーバ10によれば、情報開示のタイミングの公平性が損なわれるのを抑制できる。
【0073】
さらに、ワーカスレッド実行部15A~15Nの各々でソケット送信部17A~17Nが生成され終えるまで、ソケット送信部17A~17Nからソケット受信部51A~51Nへコネクション確立のリクエストが送信される処理の開始が待機される。これにより、ソケット送信部17が生成され終えていないワーカスレッドが置き去りにされたまま、ソケット送信部17が生成され終えたワーカスレッドによりコネクション確立が先行して開始される事態を抑制できる。その一方で、ワーカスレッド実行部15A~15Nの各々でソケット送信部17A~17Nが生成され終えた段階で、ソケット送信部17A~17Nからソケット受信部51A~51Nへコネクション確立のリクエストが送信される処理の待機を解除する。これにより、ソケット受信部51、すなわちソケットサーバ側が原因となってコネクション確立が困難、あるいは遅延し得る状況で、コネクション確立済みのソケット送信部17によるデータの送信が待機状態になることも抑制できる。したがって、本実施例に係る証券取引所サーバ10によれば、情報開示のタイミングの公平性および適時性の両立を実現できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例1では、開示資料の暗号化データを先行して送信しておき、開示日時に復号キーを送信する例を挙げたが、開示日時に開示資料のデータを送信することとしてもよい。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、メインスレッド実行部13、ワーカスレッド実行部15A~15Nまたはこれらの少なくとも1つを証券取引所サーバ10の外部装置としてネットワーク経由で接続するようにしてもよい。また、メインスレッド実行部13、ワーカスレッド実行部15A~15Nまたはこれらの少なくとも1つを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の証券取引所サーバ10の機能を実現するようにしてもよい。
なお、上記の情報処理プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に情報処理プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から情報処理プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに情報処理プログラム170aを記憶させておく。このように記憶された情報処理プログラム170aをコンピュータ100にダウンロードさせた上で実行させるようにしてもよい。