(57)【要約】【課題】優れた伝送効率にて、電文をリカバリできる電文送受信システム【解決手段】電文送信装置１００の電文送信部１０１は、電文に通番を付して送信する。電文送信装置１００の再送要求受信部１０２は、再送要求を受信し、電文送信部１０１に対して、新規の電文送信を中止するように指示する。電文送信装置１００の再送信部１０３は、再送要求に含まれる通番以降の電文を順次送信する。電文受信装置２００の電文受信部２０１は、受信した電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する。電文受信装置２００の再送要求部２０２は、電文受信部２０１の判定の結果、連続していないときは、前回受信した電文の通番の次の通番を含む再送要求を送信する。【選択図】図２
2008131577.tif 000002
【特許請求の範囲】
【請求項１】
電文を送信する電文送信装置と、該電文を受信する電文受信装置とを具備する電文送受信システムにおいて、
前記電文送信装置は、
電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段と、
再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段と、
前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段と
を備え、
前記電文受信装置は、
前記送信された電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段と、
前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段と
を備えることを特徴とする電文送受信システム。
【請求項２】
前記再送要求手段は、再送要求を送信してから、所定の時間が経過しても、前記再送要求が要求する通番を付された電文を前記電文受信手段が受信しないときは、再び再送要求を送信することを特徴とする請求項１に記載の電文送受信システム。
【請求項３】
前記電文受信装置は、
前記電文受信手段が受信済の電文の通番を表す情報を送信する受信済通番送信手段を備え、
前記電文送信装置は、
前記受信済の通番を表す情報を受信して、該通番以前の電文を前記送信電文記憶手段から削除する受信済通番受信手段
を備えることを特徴とする請求項２に記載の電文送受信システム。
【請求項４】
セッション開始時には、前記電文送信装置と前記電文受信装置とは、各々で管理する通番を初期値とすることを特徴とする請求項１から請求項３のいずれかの項に記載の電文送受信システム。
【請求項５】
電文を送信する電文送信側と、該電文を受信する電文受信側とを具備する電文送受信システムにおける電文送受信方法において、
前記電文送信側が、電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる第１の過程と、
前記電文受信側が、前記送信された電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する第２の過程と、
前記電文受信装置が、前記第２の過程における判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する第３の過程と、
前記電文送信装置が、前記送信された再送要求を受信し、該再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信するとともに、この送信の間は新規の電文送信を中止する第４の過程と
を備えることを特徴とする電文送受信方法。
【請求項６】
電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段と、
再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段と、
前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段と
を備えることを特徴とする電文送信装置。
【請求項７】
コンピュータを、
電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段、
再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段、
前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段
として機能させるためのプログラム。
【請求項８】
電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段と、
前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段と
を備えることを特徴とする電文受信装置。
【請求項９】
コンピュータを、
電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段、
前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電文送受信システム、電文送受信方法、電文送信装置、電文受信装置およびプログラム、特に通番を付した電文を、非同期に送受信する電文送受信システム、電文送受信方法、電文送信装置、電文受信装置およびプログラムに関する。
【背景技術】
【０００２】
従来の非同期に電文を送受信する電文送受信システムでは、送信側にて通番を付した電文を送信している。ここで、電文とは、通信路を介して接続された装置間で送受信される情報のことである。また、非同期な電文の送受信とは、受信側が電文を受信した旨の応答を送信側に返さない電文の送受信である。なお、この電文を送受信するための下位層のプロトコルが返す受信応答は、ここで言う電文を受信した旨の応答には含まないので、下位層のプロトコルとして、ＴＣＰ／ＩＰのような受信応答を返すプロトコルを用いていても、非同期に電文を送受信する電文送受信システムと呼ぶ。
この従来の電文送受信システムでは、送信側もしくは受信側の内部処理でのバッファオーバーフロー等の処理異常や通信路の異常など何らかの理由で受信側にて正常に電文を受信できなかったときに、この電文を受信側に伝えるリカバリ処理は、受信側にて通番の抜けを検出したときに、受信側が抜けた通番の電文の再送を送信側に要求するＧＡＰ／ＦＩＬＬ方式で行っている（例えば、非特許文献１参照）。
【０００３】
例えば、図９に示すように、受信側は、送信側が送信した通番ｍの電文を受信し（Ｓ１０００）、次に通番ｍ＋１と通番ｍ＋２の電文については、何らかの要因で受信できなかったとする（Ｓ１００１、Ｓ１００２）。このとき、受信側は次の通番ｍ＋３の電文を受信した時点で（Ｓ１００３）、通番ｍから通番ｍ＋３という通番の飛びを検出して、間の通番ｍ＋１、ｍ＋２の電文を再送するように、送信側に対して要求する（Ｓ１００４）。送信側は、この要求を受けて、通番ｍ＋１、ｍ＋２の電文を再送する（Ｓ１００５、Ｓ１００６）。また、送信側は、次の電文に再送前に付した通番ｍ＋３の次の通番である通番ｍ＋４を付して送信する（Ｓ１００７）。受信側は、これら通番ｍ＋１、ｍ＋２、ｍ＋４の電文を受信する。
【０００４】
このように、受信側は、通番の飛びを検出したときは、抜けている通番の範囲を指定して再送を要求し、送信側は、この要求に応じて電文を再送する。これにより、何らかの理由で受信側に伝わらなかった電文についても、受信側に伝えることができる。
【非特許文献１】“FIX 4.4 Specification”、[online]、2003.04.30、FIX(Financial Information eXchange) Protocol Limited、［2006.１０３7検索］、インターネット＜URL:http://www.fixprotocol.org/specifications/fix4.4spec＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の電文送受信システムにあっては、例えば、図９のシーケンスＳ１００８以降に示すように、受信側で、通番ｍ＋５の電文を受信できず（Ｓ１００８）、送信側が通番ｍ＋６の電文および通番ｍ＋７の電文を続けて送信したときは（Ｓ１００９、Ｓ１０１０）、受信側はこれら通番ｍ＋６の電文と通番ｍ＋７の電文それぞれに対して、すなわち２重に、通番ｍ＋５の電文の再送を要求する（Ｓ１０１１、Ｓ１０１２）。送信側は、これらの要求それぞれに対して、すなわち２重に、通番ｍ＋５の再送を行う（Ｓ１０１３、Ｓ１０１４）。受信側は、シーケンスＳ１０１３で通番ｍ＋５の電文を受信しているので、シーケンスＳ１０１４にて受信した通番ｍ＋５の電文は不要であり、破棄する。このように、従来の電文送受信システムにあっては、通信できなかった電文をリカバリする際に、不必要な再送要求や再送電文の送受信が発生することがあり、このため伝送効率が悪化するという問題がある。
【０００６】
本発明は、このような事情に鑑みてなされたもので、その目的は、優れた伝送効率にて、通信できなかった電文をリカバリすることができる電文送受信システムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上述した課題を解決するためになされたもので、本発明の電文送受信システムは、電文を送信する電文送信装置と、該電文を受信する電文受信装置とを具備する電文送受信システムにおいて、前記電文送信装置は、電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段と、再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段と、前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段とを備え、前記電文受信装置は、前記送信された電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段と、前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段とを備えることを特徴とする。
【０００８】
これにより、電文送受信システムは、通信できなかった電文を不要な電文の送受信をすることなくリカバリするので、優れた伝送効率にてリカバリすることができる。
【０００９】
また、本発明の電文送受信システムは、上述の電文送受信システムであって、前記再送要求手段は、再送要求を送信してから、所定の時間が経過しても、前記再送要求が要求する通番を付された電文を前記電文受信手段が受信しないときは、再び再送要求を送信することを特徴とする。
【００１０】
これにより、電文送受信システムは、電文受信装置が受信できなかった電文に関する再送要求を電文送信装置が受信できなかった場合でも、不要な電文の送受信をすることなく電文受信装置が受信できなかった電文をリカバリすることができる。
【００１１】
また、本発明の電文送受信システムは、上述の電文送受信システムであって、前記電文受信装置は、前記電文受信手段が受信済の電文の通番を表す情報を送信する受信済通番送信手段を備え、前記電文送信装置は、前記受信済の通番を表す情報を受信して、該通番以前の電文を前記送信電文記憶手段から削除する受信済通番受信手段を備えることを特徴とする。
【００１２】
これにより、電文送受信システムは、電文送信装置における電文記憶手段が必要とする記憶容量を抑えることができる。
【００１３】
また、本発明の電文送受信システムは、上述のいずれかの電文送受信システムであって、セッション開始時には、前記電文送信装置と前記電文受信装置とは、各々で管理する通番を初期値とすることを特徴とする。
【００１４】
これにより、電文送受信システムは、電文送信装置および電文受信装置のセッション開始前の通番の管理状態に係わらず、セッションを開始することで、各々の管理する通番が初期値となるので、電文の送受信を行うことができる。
【００１５】
また、本発明の電文送受信方法は、電文を送信する電文送信側と、該電文を受信する電文受信側とを具備する電文送受信システムにおける電文送受信方法において、前記電文送信側が、電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる第１の過程と、前記電文受信側が、前記送信された電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する第２の過程と、前記電文受信装置が、前記第２の過程における判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する第３の過程と、前記電文送信装置が、前記送信された再送要求を受信し、該再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信するとともに、この送信の間は新規の電文送信を中止する第４の過程とを備えることを特徴とする。
【００１６】
また、本発明の電文送信装置は、電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段と、再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段と、前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段とを備えることを特徴とする。
【００１７】
また、本発明のプログラムは、コンピュータを、電文に通番を付して送信するとともに、該電文を送信電文記憶手段に記憶させる電文送信手段、再送要求を受信し、前記電文送信手段に対して、新規の電文送信を中止するように指示する再送要求受信手段、前記再送要求受信手段が受信した再送要求が要求する通番以降の電文を前記送信電文記憶手段から順次読み出して送信する再送信手段として機能させる。
【００１８】
また、本発明の電文受信装置は、電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段と、前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段とを備えることを特徴とする。
【００１９】
また、本発明のプログラムは、コンピュータを、電文を受信し、該電文に付された通番と、前回受信した電文の通番とが連続しているか否かを判定し、連続していないと判定したときは、前記前回受信した電文の通番の次の通番の電文を受信するまでの間は、該次の通番以外の通番の電文を受信しても破棄する電文受信手段、前記電文受信手段の判定にて、連続していないと判定したときは、前回受信した電文の通番の次の通番の電文を要求する再送要求を送信する再送要求手段として機能させる。
【発明の効果】
【００２０】
この発明によれば、通信できなかった電文を不要な電文の送受信をすることなくリカバリするので、優れた伝送効率にてリカバリすることができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、この発明の一実施形態による電文送受信システムの通番管理の概要を説明する図である。本実施形態の電文送受信システムでは、電文を送信する電文送信装置１００は、送信済みの電文通番を記憶し、その電文を受信する電文受信装置２００は、次に受信すべき電文の電文通番を記憶している。例えば、電文送信装置１００にて電文通番「Ｎ−１」を記憶しており、電文受信装置２００では期待通番「Ｎ」を記憶しているとする。電文送信装置１００が、記憶している電文通番を更新して、通番「Ｎ」の電文を送信すると（Ｓａ１）、電文受信装置２００は、記憶している期待通番「Ｎ」と受信した電文の電文通番「Ｎ」とが一致することを確認し、期待通番を更新して「Ｎ＋１」とする。次に、電文送信装置１００が、記憶している電文通番を更新して、通番「Ｎ＋１」の電文を送信すると（Ｓａ２）、電文受信装置２００は、記憶している期待通番「Ｎ＋１」と受信した電文の電文通番「Ｎ＋１」とが一致することを確認し、期待通番を更新して「Ｎ＋２」とする。以下、同様のことを繰り返す。
【００２２】
このように、本実施形態の電文送受信システムでは、電文送信装置１００と電文受信装置２００とで、それぞれ通番を記憶しておき、該通番を各々で更新しながら電文の送受信を行っている。本発明は、このような電文送受信システムにおいて、電文送信装置１００もしくは電文受信装置２００の内部処理でのバッファオーバーフロー等の処理異常や通信路の異常など何らかの理由で電文が電文受信装置２００に届かなかった場合など、電文受信装置２００において、電文の抜けを検出したときのリカバリ処理に関する。
【００２３】
図２は、本実施形態における電文送受信システムの構成を示す概略ブロック図である。電文送信装置１００と電文受信装置２００とは、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの通信路３００にて、双方向に通信可能なように接続されている。電文送信装置１００は、電文送信部（電文送信手段）１０１、再送要求受信部（再送要求受信手段）１０２、再送信部（再送信手段）１０３、電文通番記憶部（電文通番記憶手段）１０４、送信電文記憶部（送信電文記憶手段）１０５、受信済通番受信部（受信済通番受信部）１０６を具備する。
【００２４】
電文送信部１０１は、電文通番記憶部１０４が記憶する通番に「１」を加え、その通番を電文に付して送信するとともに、該電文を送信電文記憶部１０５に記憶させる。再送要求受信部１０２は、電文受信装置２００からリセンド電文（再送要求）を受信し、このリセンド電文にて指定された通番以降の電文の再送を再送信部１０３に指示する。また、再送要求受信部１０２は、電文送信部１０１に対して、再送信部１０３が再送している間は新規の電文送信を中止するように指示する。再送信部１０３は、再送要求受信部１０２から指定された通番以降の電文を送信電文記憶部１０５から、順次読み出して送信する。受信済通番受信部１０６は、電文受信装置２００にて受信済の通番を、電文受信装置２００から受信して、該通番以前の電文を送信電文記憶部１０５から削除する。送信電文記憶部１０５は、電文送信部１０１が送信した電文を記憶する。電文通番記憶部１０４は、電文送信部１０１が送信した最新の電文の通番を記憶する。
【００２５】
電文受信装置２００は、電文受信部２０１、再送要求部２０２、期待通番記憶部２０３、受信済通番送信部２０４を具備する。電文受信部２０１は、電文送信装置１００から電文を受信し、受信した電文の通番と、期待通番記憶部２０３に記憶されている通番とを比較することにより、今回受信した電文の通番と前回受信した電文の通番とが連続しているか否かを判定する。電文受信部２０１は、この比較の結果、これら２つの通番が一致しているときは、正常と判定して期待通番記憶部２０３に記憶されている通番に「１」を加える。再送要求部２０２は、電文受信部２０１による比較の結果、これら２つの番号が一致していないとき（すなわち、連続していないと判定したとき）は、電文の抜けを検出したと認識して期待通番記憶部２０３に記憶されている通番の電文を要求する再送要求を送信する。また、再送要求部２０２は、再送要求を送信してから、所定の時間が経過しても、再送要求が要求した通番の電文を電文受信部２０１が受信しないときは、再び再送要求を送信する。受信済通番送信部２０４は、電文受信装置２００が既に受信している電文の通番に相当する、期待通番記憶部２０３が記憶している通番より１小さい通番を表す受信済通番情報を送信する。期待通番記憶部２０３は、受信済の電文より１大きい通番を記憶している。すなわち、期待通番記憶部２０３が記憶する通番は、次の電文を正常に受信したときに、その電文の通番と一致する。
【００２６】
図３は、本実施形態による電文のヘッダ部の項目を説明する表である。電文は、該ヘッダ部と、ヘッダ部に続く部分であり、電文にて伝送する情報が格納されているデータ部とにより構成される。図３に示すように、本実施形態の電文のヘッダ部は、自身の項目長を含まない電文長を設定するメッセージ長と、電文の種別を設定する電文種別と、データ部の長さを設定する編集データ長と、データ部に格納されているデータ数を設定する編集データ数と、電文送信部１０１が設定する通番と、電文の発生日付を設定する発信元送信日付と、電文の発生時刻を設定する発信元送信時刻と、該電文がリカバリ用の再送電文のときに設定するリセンドフラグとからなる。
【００２７】
次にこの電文送受信システムの動作を説明する。図４は、本実施形態による電文送受信システムにおいて、通信路３００の一時的な異常などで電文受信装置２００が受信する電文において通番の抜けが発生したときの動作例を示すシーケンス図である。図４に示すシーケンスが始まる前の状態では、電文通番記憶部１０４が記憶している通番は「ｎ−１」であり、期待通番記憶部２０３が記憶している通番は「ｎ］であるとする。まず、電文送信装置１００の電文送信部１０１が、電文通番記憶部１０４から通番「ｎ−１」を読出し、これに１を加えた通番「ｎ］を付した電文を送信するとともに（Ｓｂ１）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番を、この通番「ｎ］に更新する。電文受信装置２００の電文受信部２０１は、この電文を受信し、電文の通番「ｎ］と期待通番記憶部２０３から読み出した通番「ｎ］とを比較する。ここでは、２つの通番は一致するので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番に１を加えて、通番「ｎ＋１」に更新する。
【００２８】
次に、同様にして、電文送信部１０１が、電文通番記憶部１０４から通番「ｎ」を読出し、これに１を加えた通番「ｎ＋１］を付した電文を送信するとともに（Ｓｂ２）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番「ｎ」を、この通番「ｎ＋１］に更新する。電文受信装置２００の電文受信部２０１は、この電文を受信し、電文の通番「ｎ＋１］と期待通番記憶部２０３から読み出した通番「ｎ＋１］とを比較する。ここでは、２つの通番は一致するので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番に１を加えて、通番「ｎ＋２」に更新する。さらに、電文送信部１０１が、電文通番記憶部１０４から通番「ｎ＋１」を読出し、これに１を加えた通番「ｎ＋２］を付した電文を送信するとともに（Ｓｂ３）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番「ｎ＋１」を、この通番「ｎ＋２］に更新する。しかし、この電文が、通信路３００の異常などにより、電文受信装置２００まで届かなかったものとする。次の電文についても、同様に、電文送信部１０１が、電文通番記憶部１０４から通番「ｎ＋２」を読出し、これに１を加えた通番「ｎ＋３］を付した電文を送信するとともに（Ｓｂ４）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番「ｎ＋２」を、この通番「ｎ＋３］に更新する。しかし、この電文についても、通信路の異常などにより、電文受信装置２００まで届かなかったものとする。
【００２９】
次に、電文送信部１０１が、電文通番記憶部１０４から通番「ｎ＋３」を読出し、これに１を加えた通番「ｎ＋４］を付した電文を送信するとともに（Ｓｂ５）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番「ｎ＋３」を、この通番「ｎ＋４］に更新する。電文受信装置２００の電文受信部２０１は、この電文を受信し、電文の通番「ｎ＋４］とシーケンスＳｂ２にて記憶させた通番であり、期待通番記憶部２０３から読み出した通番「ｎ＋２］とを比較する。ここでは、この２つの通番は一致しないので、電文受信部２０１は、再送要求部２０２に通番不一致を通知する（Ｓｂ６）とともに、以後、期待通番記憶部２０３から読み出した通番、すなわち、通番「ｎ＋２」の電文を受信するまで、この通番「ｎ＋２」以外の通番の電文は破棄するように自身を設定する。再送要求部２０２は、通番不一致を受けると、期待通番記憶部２０３から読み出した通番「ｎ＋２」以降の電文の再送を要求する情報を格納したリセンド要求を送信する（Ｓｂ７）。電文送信装置１００の再送要求受信部１０２は、リセンド要求を受信すると、電文送信部１０１に対して、新規の電文送信を中止するように指示する（Ｓｂ８）。
【００３０】
次に、再送要求受信部１０２は、リセンド要求にて要求された通番「ｎ＋２」以降の再送を再送信部１０３に指示する（Ｓｂ９）。再送信部１０３は、送信電文記憶部１０５から、再送指示された通番「ｎ＋２」以降で送信電文記憶部１０５に記憶している全ての電文、すなわち通番「ｎ＋２」から通番「ｎ＋４」までの電文を順次読み出し、ヘッダ部のリセンドフラグを設定して、送信する（Ｓｂ１０〜Ｓｂ１２）。電文受信装置２００の電文受信部２０１は、これらの電文を受信し、受信する度に、各電文の通番「ｎ＋２」、「ｎ＋３」、「ｎ＋４」と期待通番記憶部２０３から読み出した通番とを比較する。これらの比較の結果は全て一致するので、一致する度に電文受信部２０１は期待通番記憶部２０３に記憶されている通番を１を加えた値に更新する。ここでは、シーケンスＳｂ１０〜Ｓｂ１２までの３回受信しているので、シーケンスＳｂ１２の通番「ｎ＋４」の電文を受信したときは、電文受信部２０１は、期待通番記憶部２０３が記憶する通番を通番「ｎ＋５」に更新する。再送信部１０３は、シーケンスＳｂ１２にて、通番「ｎ＋４」の電文、すなわち送信電文記憶部１０５に記憶している中で最新の電文までを読み出して送信するとともに、シーケンスＳｂ８にて指示された送信中止の解除を電文送信部１０１に指示する（Ｓｂ１３）。
【００３１】
送信中止の解除を受けた電文送信部１０１は、電文通番記憶部１０４から、シーケンスＳｂ５の電文送信の際に記憶した通番「ｎ＋４」を読出し、これに１を加えた通番「ｎ＋５］を付した電文を送信する（Ｓｂ１４）。電文受信部２０１は、この通番「ｎ＋５」の電文を受信し、期待通番記憶部２０３からシーケンスＳｂ１２の受信の際に記憶された通番「ｎ＋５」を読出して、これらを比較する。これらの通番は、一致しているので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番に１を加えた通番「ｎ＋６」に、期待通番記憶部２０３を更新する。
【００３２】
このように、シーケンスＳｂ５にて通番「ｎ＋４」の電文を受信した電文受信部２０１が、通番の不連続を検出したとき、すなわち、受信した電文の通番と期待通番記憶部２０３に記憶されている通番が一致しないときに、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番の電文を受信するまでの間は、それ以外の通番の電文を受信しても破棄するようにし、かつ、再送要求部２０２が、次に受信すべき通番の電文を要求するリセンド電文を送信する。さらに、該リセンド電文を受信した電文送信装置１００において、再送信部１０３が、リセンド電文にて要求された通番以降の電文を、送信電文記憶部１０５から順次読出して送信し、再送要求受信部１０２が、新規の電文送信を該送信の間は中止するように、電文送信部１０１に対して指示するという単純な処理で、何らかの理由で電文受信装置２００が受信できなかった電文を不要な電文の送受信をすることなくリカバリすることができる。
【００３３】
図５は、本実施形態による電文送受信システムにおいて、図４のように通番抜けが発生したとき電文受信装置２００が送信したリセンド電文を、電文送信装置１００が受信できなかったときの動作例を示すシーケンス図である。図５に示すシーケンスが始まる前の状態では、図４と同様に、電文通番記憶部１０４が記憶している通番は「ｎ−１」であり、期待通番記憶部２０３が記憶している通番は「ｎ］であるとする。シーケンスＳｃ１からＳｃ７までは、図４におけるシーケンスＳｂ１からＳｂ７までと同様なので、説明を省略する。ただし、この動作例では、シーケンスＳｃ７にて再送要求部２０２が送信したリセンド電文は、通信路３００の異常などで電文送信装置１００の再送要求受信部１０２は受信できないものとする。また、図４の説明では省略したが、再送要求部２０２は、シーケンスＳｃ７にてリセンド電文を送信するとともに、予め決められた所定の時間経過後に起動して再度リセンド電文を送るように電文受信装置２００が具備するタイマーに設定する。
【００３４】
電文送信装置１００の電文送信部１０１は、その後も、電文通番記憶部１０４から通番を読出し、これに１を加えた通番を付した電文を送信する。本動作例では、電文送信部１０１はこの電文の送信を４回繰返して、通番「ｎ＋５」〜「ｎ＋８」までの電文を送信し（Ｓｃ８〜Ｓｃ９）、その結果、電文通番記憶部１０４は、通番「ｎ＋８」を記憶している。通番「ｎ＋５」〜「ｎ＋８」までの電文（シーケンスＳｃ８〜Ｓｃ９）を受信した電文受信部２０１は、シーケンスＳｃ６にて、通番「ｎ＋２」の電文を受信するまで、通番「ｎ＋２」以外の電文は破棄するように自身を設定しているので、これら通番「ｎ＋５」〜「ｎ＋８」の電文を破棄する。再送要求部２０２がシーケンスＳｃ７にてリセンド電文を送信してから、前述の所定の時間が経過すると、再送要求部２０２は、タイマーを参照して該時間が経過したことを検出し、シーケンスＳｃ７にて送信したリセンド電文（通番「ｎ＋２」の電文を要求するリセンド電文）を再度送信する（Ｓｃ１０）。
【００３５】
電文送信装置１００の再送要求受信部１０２は、リセンド要求を受信すると、電文送信部１０１に対して、新規の電文送信を中止するように指示する（Ｓｃ１１）。次に、再送要求受信部１０２は、リセンド要求にて要求された通番「ｎ＋２」以降の電文の再送を再送信部１０３に指示する（Ｓｃ１２）。再送信部１０３は、送信電文記憶部１０５から、再送を指示された通番「ｎ＋２」以降で送信電文記憶部１０５に記憶している電文、すなわち通番「ｎ＋２」から通番「ｎ＋８」までの電文を順次読み出し、ヘッダ部のリセンドフラグを設定して、送信する（Ｓｃ１３〜Ｓｃ１５）。電文受信装置２００の電文受信部２０１は、これらの電文を受信し、受信する度に、各電文の通番「ｎ＋２」、「ｎ＋３」、・・・「ｎ＋８」と期待通番記憶部２０３から読み出した通番とを比較する。これらの比較の結果は全て一致するので、一致する度に電文受信部２０１は期待通番記憶部２０３に記憶されている通番をこの通番に１を加えた通番に更新する。ここでは、シーケンスＳｃ１３〜Ｓｃ１５までの７回受信しているので、シーケンスＳｃ１５の通番「ｎ＋８」の電文を受信したときは、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番を通番「ｎ＋９」に更新する。再送信部１０３は、シーケンスＳｃ１５にて、通番「ｎ＋８」の電文、すなわち送信電文記憶部１０５に記憶している中で最新の電文までを読み出して送信するとともに、シーケンスＳｃ１２にて指示された送信中止の解除を電文送信部１０１に指示する（Ｓｃ１６）。
【００３６】
送信中止の解除を受けた電文送信部１０１は、電文通番記憶部１０４から、シーケンスＳｃ９の電文送信の際に記憶した通番「ｎ＋８」を読出し、これに１を加えた通番「ｎ＋９］を付した電文を送信する（Ｓｃ１７）。電文受信部２０１は、この通番「ｎ＋９」の電文を受信し、期待通番記憶部２０３からシーケンスＳｃ１５の受信の際に記憶された通番「ｎ＋９」を読出して、これらを比較する。これらの通番は、一致しているので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番に１を加えた通番「ｎ＋１０」に、期待通番記憶部２０３を更新する。
【００３７】
なお、再送要求部２０２は、シーケンスＳｃ１０にてリセンド電文を送信する際にも、タイマーを設定するが、電文受信部２０１は、リセンドフラグ付きの電文（ここでは、シーケンスＳｃ１３にて送信された通番「ｎ＋２」の電文）を受信すると、このタイマーの設定を解除するため、再送要求部２０２は、さらに通番「ｎ＋２」の電文を要求するリセンド電文を送信することはない。
【００３８】
このように、シーケンスＳｃ７にて、再送要求部２０２がリセンド電文を送信する際に、予め決められた所定の時間後に起動して、再度リセンド電文を送信するようにタイマーを設定し、該所定の時間内にリセンドフラグ付きの電文を電文受信部２０１が受信しないと、すなわち、該所定の時間内にリセンド電文にて要求した電文を受信しないと、再送要求部２０２は、タイマーを参照して、所定の時間が経過したことを検出して、再度リセンド電文を送信するので、何らかの理由でリセンド電文を再送要求受信部１０２が受信できなくても、その前に電文受信装置２００が受信できなかった電文をリカバリすることができる。
【００３９】
図６は、本実施形態による電文送受信システムにおいて、受信済通番送信部２０４が受信済の通番を電文送信装置１００に通知する動作例を示すシーケンス図である。図６に示すシーケンスが始まる前の状態では、図４と同様に、電文通番記憶部１０４が記憶している通番は「ｎ−１」であり、期待通番記憶部２０３が記憶している通番は「ｎ］であるものとする。まず、電文送信装置１００の電文送信部１０１が、電文通番記憶部１０４から通番「ｎ−１」を読出し、これに１を加えた通番「ｎ］を付した電文を送信するとともに（Ｓｄ１）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番を、この通番「ｎ］に更新する。電文受信装置２００の電文受信部２０１は、この電文を受信し、電文の通番「ｎ］と期待通番記憶部２０３から読み出した通番「ｎ］とを比較する。ここでは、２つの通番は一致するので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番を、該通番に１を加えて通番「ｎ＋１」に更新する。
【００４０】
次に、同様にして、電文送信部１０１が、電文通番記憶部１０４から通番「ｎ」を読出し、これに１を加えた通番「ｎ＋１］を付した電文を送信するとともに（Ｓｄ２）、該電文を送信電文記憶部１０５に記憶させ、電文通番記憶部１０４が記憶する通番を、該通番「ｎ＋１］に更新する。電文受信装置２００の電文受信部２０１は、この電文を受信し、電文の通番「ｎ＋１］と期待通番記憶部２０３から読み出した通番「ｎ＋１］とを比較する。ここでは、２つの通番は一致するので、電文受信部２０１は、期待通番記憶部２０３に記憶されている通番を、該通番に１を加えて通番「ｎ＋２」に更新する。
【００４１】
ここで、電文送信装置１００から電文受信装置２００への電文の送信とは非同期に電文受信装置２００から電文送信装置１００への受信済通番の通知が行われる。例えば、電文受信装置２００は、受信済通番の通知を一定周期で行う。すなわち、電文受信装置２００の受信済通番送信部２０４が、期待通番記憶部２０３に記憶されている通番「ｎ＋２」を読み出し、この通番「ｎ＋２」から１を引いた通番「ｎ＋１」（すなわち電文受信装置２００が受信済の電文の通番）を表す受信済通番情報を、電文送信装置１００に送信する（Ｓｄ３）。電文送信装置１００の受信済通番受信部１０６は、この受信済通番情報を受信する。受信済通番受信部１０６は、受信した受信済通番情報が表す通番「ｎ＋１」を含む、それ以前の電文を、送信電文記憶部１０５から削除する。
【００４２】
その後、本動作例では、電文送信部１０１が送信した通番「ｎ＋２」と「ｎ＋３」の電文が、一時的な通信路３００の異常などにより、電文受信装置２００に受信されないものとする（Ｓｄ４、Ｓｄ５）。次に、電文送信部１０１が送信した通番「ｎ＋４」の電文は、電文受信部２０１が受信し（Ｓｄ６）、電文の通番「ｎ＋４］と、シーケンスＳｄ２にて更新した通番であり、期待通番記憶部２０３から読み出した通番「ｎ＋２］とを比較する。ここでは、この２つの通番は一致しないので、電文受信部２０１は、再送要求部２０２に通番不一致を通知する（Ｓｄ７）。再送要求部２０２は、通番不一致を受けると、期待通番記憶部２０３から読み出した通番「ｎ＋２」以降の電文の再送を要求するリセンド要求を送信する（Ｓｄ８）。
【００４３】
上述のシーケンスＳｄ３の時点より後に送信されるシーケンスＳｄ８のリセンド電文のように、ある時点より後に送信されるリセンド電文で要求される通番は、ある時点で期待通番記憶部２０３が記憶している通番以降（該通番を含む）である。そのため、シーケンスＳｄ３のように、任意の時点での期待通番記憶部２０３が記憶している通番の１つ前の通番を、受信済通番送信部２０４が電文送信装置１００に通知し、該通知を受けた受信済通番受信部１０６が、通知された通番以前（該通番を含む）の電文を送信電文記憶部１０５から削除することで、再送を要求される可能性のない電文を送信電文記憶部１０５から削除することができる。これにより、送信電文記憶部１０５が必要とする記憶容量を、抑えることができる。
【００４４】
なお、本実施形態において、電文通番を付してリカバリを行うのは、電文送信装置１００から電文受信装置２００への電文のみ、すなわち、片方向のみであったが、図７に示すように、本実施形態のおける電文送受信システムを双方向に用いてもよい。図７において、サーバ４００は、電文送信装置１００および電文受信装置２００を具備し、サーバ５００も、電文送信装置１００および電文受信装置２００を具備する。そして、サーバ４００の電文送信装置１００と、サーバ５００の電文受信装置２００とで、サーバ４００からサーバ５００への上りの電文の送受信を行う。また、サーバ４００の電文受信装置２００と、サーバ５００の電文送信装置１００とで、サーバ５００からサーバ４００への下りの電文の送受信を行う。このように上りと下りの組を、図８にて説明するセッションとして管理してもよい。
【００４５】
このとき、本実施形態において電文受信装置２００から電文送信装置１００に送信するとして説明したリセンド電文（例えば、図４のシーケンスＳｂ７）および受信済通番情報（例えば、図６のシーケンスＳｄ３）は、逆方向の電文送信装置１００にて通番を付与して、逆方向の電文送信装置１００から電文受信装置２００への電文としてもよい。すなわち、サーバ４００の電文受信装置２００からサーバ５００の電文送信装置１００へ（下り）についてのリセンド電文および受信済通番情報を、サーバ４００の電文送信装置１００からサーバ５００の電文受信装置２００へ（上り）の電文にて送受信し、上りの電文にて電文抜けが発生したときは、これら下りについてのリセンド電文および受信済通番情報も併せて、リカバリするようにしてもよい。上りと下りとが、逆になった場合についても、同様である。
【００４６】
また、受信済通番情報については、該情報を送信するために専用の電文を用いるのでなく、その他の情報を送信するための電文に受信済通番情報を含めるようにして、送信してもよい。このような方法で、受信済通番情報を送信した場合、その他の情報を送信するための電文がない時間帯には、受信済通番情報が送信されないことになるが、例えば、一定周期や無通信状態が継続したときに送信される生存監視用の電文などがあれば、該電文に含めるようにするとよい。
【００４７】
図８は、電文の通番を管理する単位であるセッションを説明する図である。セッションを確立させるＬｏｇｉｎ処理と、そのセッションを解放するＬｏｇｏｕｔ処理の間の上りと下り各々の中では、通番は初期値が「１」の電文毎に１ずつ増加する連続した一意な番号として定義される。セッションを確立させるＬｏｇｉｎ処理にて、サーバ４００とサーバ５００との間でサーバ４００とサーバ５００の上りおよび下りそれぞれの通番を初期値にする。すなわち、サーバ４００とサーバ５００各々の電文送信装置１００の電文通番記憶部１０４に初期値である「０」を記憶させ、電文受信装置２００の期待通番記憶部２０３に初期値である「１」を記憶させる。なお、本実施形態において、通番は初期値が「１」であり、１ずつ増加する連続した値として説明したが、例えば、上りが初期値「１」の奇数で、下りが初期値「２」の偶数で、２ずつ増加する値であってもよい。これにより、本実施形態の電文送受信システムは、電文送信装置１００および電文受信装置２００のセッション開始前の通番の管理状態に係わらず、Ｌｏｇｉｎ処理を行い、セッションを開始することで、各々の管理する通番が初期値となるので、電文の送受信を行うことができる。
【００４８】
また、図２における電文送信部１０１、再送信部１０３、受信済通番受信部１０６、電文受信部２０１、再送要求部２０２、受信済通番送信部２０４の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、これらの各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００４９】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００５０】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００５１】
本発明は、証券売買システムに用いて好適であるが、これに限定されない。
【図面の簡単な説明】
【００５２】
【図１】この発明の一実施形態による電文送受信システムの通番管理の概要を説明する図である。
【図２】同実施形態における電文送受信システムの構成を示す概略ブロック図である。
【図３】同実施形態による電文のヘッダ部の項目を説明する表である。
【図４】同実施形態による電文送受信システムにおいて、通番抜けが発生したときの動作例を示すシーケンス図である。
【図５】同実施形態による電文送受信システムにおいて、リセンド電文を電文送信装置１００が受信できなかったときの動作例を示すシーケンス図である。
【図６】同実施形態による電文送受信システムにおいて、受信済の通番を電文送信装置１００に通知する動作例を示すシーケンス図である。
【図７】同実施形態による電文送受信システムを双方向に用いたシステムを説明する図である。
【図８】同実施形態による電文送受信システムを双方向に用いたシステムにおいて、電文の通番を管理する単位であるセッションを説明する図である
【図９】従来の電文送受信システムの動作例を示すシーケンス図である。
【符号の説明】
【００５３】
１００…電文送信装置
１０１…電文送信部
１０２…再送要求受信部
１０３…再送信部
１０４…電文通番記憶部
１０５…送信電文記憶部
１０６…受信済通番受信部
２００…電文受信装置
２０１…電文受信部
２０２…再送要求部
２０３…期待通番記憶部
２０４…受信済通番送信部
３００…通信路
４００、５００…サーバ
【図１】
2008131577.tif 000003
【図２】
2008131577.tif 000004
【図３】
2008131577.tif 000005
【図４】
2008131577.tif 000006
【図５】
2008131577.tif 000007
【図６】
2008131577.tif 000008
【図７】
2008131577.tif 000009
【図８】
2008131577.tif 000010
【図９】
2008131577.tif 000011