(57)【要約】【課題】優先度の高い回線を使用するデータを優先的に処理するとともに、優先度の低い回線を使用するデータを処理期限前に処理することができる。【解決手段】処理の対象となるデータを受信し、データが使用する回線の優先度と処理期限とに応じて、データの処理の順序を決定し、決定した順序でデータを処理し、データが使用する回線の状態を検出し、回線の状態が障害になった場合に、当該回線を使用するデータの処理期限を補正する。【選択図】図１
2020113841.tif 000002
【特許請求の範囲】
【請求項１】
処理の対象となるデータを受信する受信部と、
前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定する処理順管理部と、
前記決定した順序で前記データを処理する処理実行部と、
前記データが使用する回線の状態を検出する回線状態検出部と、
前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正する回線状態管理部と、
を備えるデータ処理装置。
【請求項２】
前記回線状態管理部は、前記回線の状態が障害になってから復帰するまでの時間に基づいて、当該回線を使用する前記データの処理期限を補正する
請求項１に記載のデータ処理装置。
【請求項３】
前記処理順管理部は、使用する回線の状態が障害でない前記データであって、処理期限から所定の時間前になった前記データの処理を最優先にする
請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記処理順管理部は、使用する回線の状態が障害でない場合に、処理期限から所定の時間前になるまで前記データの処理の順序を段階的に上げる
請求項１から請求項３の何れか一項に記載のデータ処理装置。
【請求項５】
前記処理実行部は、前記決定した順序にしたがって、使用する回線の状態が障害でない前記データを処理する
請求項１から請求項４の何れか一項に記載のデータ処理装置。
【請求項６】
処理の対象となるデータを受信し、
前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定し、
前記決定した順序で前記データを処理し、
前記データが使用する回線の状態を検出し、
前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正する、
データ処理方法。
【請求項７】
データ処理装置のコンピュータを、
処理の対象となるデータを受信する受信手段、
前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定する処理順管理手段、
前記決定した順序で前記データを処理する処理実行手段、
前記データが使用する回線の状態を検出する回線状態検出手段、
前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正する回線状態管理手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、プログラムに関する。
【背景技術】
【０００２】
航空管制システムを代表とするような大規模なミッションクリティカルシステムでは、1つのシステムが複数のサブシステムから構成される。各サブシステムは他のサブシステムと接続され、それぞれのシステムと専用の通信プロトコルを用いて、他のサブシステムとの間の論理的な回線状態(オープン、クローズ、障害、閉塞等)を検知する。
【０００３】
このようなシステムでは、接続先のシステム毎(回線毎)に優先度を持ち、高優先度の回線から受信した要求（メッセージ）を優先的に処理しなければならない場合がある。また、回線の優先度に関わらず、メッセージの送信元に対して処理応答の返信が必要なケースが存在する。この場合、メッセージの送信元システムは送信先システムからの処理応答の返信を監視し、一定時間応答が返信されない場合は障害発生と判定し、回線状態を障害と判定する。
【０００４】
特許文献１には、通信回線の使用に際し、通信回線の優先度の高い通信回線の確保と通信制御装置の性能の有効活用とが可能な通信制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−１６２９４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、優先度の高い回線からのメッセージが連続した場合、優先度の低い回線を使用するメッセージの処理が行われず、送信元システム側でタイムアウトを検出し回線状態が障害になることがあるという問題がある。回線に障害が発生した場合、オペレータが障害の原因を調査して回線を復帰(再オープン)させなければならず、人的なコストが大きい。
【０００７】
そこでこの発明は、上述の課題を解決することのできるデータ処理装置、データ処理方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の第１の態様によれば、データ処理装置は、処理の対象となるデータを受信する受信部と、前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定する処理順管理部と、前記決定した順序で前記データを処理する処理実行部と、前記データが使用する回線の状態を検出する回線状態検出部と、前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正する回線状態管理部と、を備えることを特徴とする。
【０００９】
本発明の第２の態様によれば、データ処理方法は、処理の対象となるデータを受信し、前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定し、前記決定した順序で前記データを処理し、前記データが使用する回線の状態を検出し、前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正することを特徴とする。
【００１０】
本発明の第３の態様によれば、プログラムは、データ処理装置のコンピュータを、処理の対象となるデータを受信する受信手段、前記データが使用する回線の優先度と処理期限とに応じて、前記データの処理の順序を決定する処理順管理手段、前記決定した順序で前記データを処理する処理実行手段、前記データが使用する回線の状態を検出する回線状態検出手段、前記回線の状態が障害になった場合に、当該回線を使用する前記データの処理期限を補正する回線状態管理手段、として機能させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、優先度の高い回線を使用するデータを優先的に処理するとともに、優先度の低い回線を使用するデータを処理期限前に処理することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態による通信システムの構成を示す図である。
【図２】本発明の実施形態による回線情報のデータ構造及びデータ例を示す概略図である。
【図３】本発明の実施形態によるメッセージレコードのデータ構成及びデータ例を示す概略図である。
【図４】本発明の実施形態による最優先テーブルのデータ構造及びデータ例を示す概略図である。
【図５】本発明の実施形態によるレコードテーブルのデータ構造及びデータ例を示す概略図である。
【図６】本発明の実施形態による回線障害情報のデータ構造及びデータ例を示す概略図である。
【図７】本発明の実施形態によるデータ処理装置のハードウェア構成を示す図である。
【図８】本発明の実施形態によるメッセージ受信処理の流れを示すフローチャートである。
【図９】本発明の実施形態によるテーブル移動処理の流れを示すフローチャートである。
【図１０】本発明の実施形態によるメッセージ処理実行処理の流れを示すフローチャートである。
【図１１】本発明の実施形態による障害検出処理の流れを示すフローチャートである。
【図１２】本発明の実施形態による回線障害情報のデータ構造及びデータ例を示す概略図である。
【図１３】本発明の実施形態による回線状態変更通知のデータ構造及びデータ例を示す概略図である。
【図１４】本発明の実施形態によるオープン検出処理の流れを示すフローチャートである。
【図１５】本発明の実施形態による回線状態変更通知のデータ構造及びデータ例を示す概略図である。
【図１６】本発明の実施形態による回線状態変更通知のデータ構造及びデータ例を示す概略図である。
【図１７】本発明の実施形態による時刻補正通知のデータ構造及びデータ例を示す概略図である。
【図１８】本発明のデータ処理装置の最小構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態によるデータ処理装置、データ処理方法、プログラムを、図面を参照して説明する。
【００１４】
図１は本実施形態による通信システムの構成を示す図である。
本図に示すように、通信システム１は、データ処理装置１００と、複数のサブシステム２００とを備える。
【００１５】
サブシステム２００は、通信システム１に含まれるシステムの１つである。サブシステム２００は、回線を使用して、他のサブシステム２００との間で、様々なデータ（本実施形態ではメッセージ）を送受信する。回線は、データの経路である。メッセージの送信元のサブシステム２００は、メッセージの宛先を示す情報とともに、メッセージ本体のデータと、使用する回線を特定する情報とを、データ処理装置１００に送信する。メッセージ本体は、メッセージのタイトルおよび本文（コンテンツ）を含む。使用する回線とは、メッセージの通信のために使用されるデータの経路を意味する。
【００１６】
データ処理装置１００は、回線を介して複数のサブシステム２００の間で送受信されるメッセージを処理する。より詳細には、データ処理装置１００は、あるサブシステム２００から、他のサブシステム２００宛てのメッセージを受信し、受信したメッセージを処理した後、宛先である他のサブシステム２００へ処理した結果を示す応答メッセージを送信する。
【００１７】
図１に図示するように、データ処理装置１００は、回線情報記憶部１１０と、受信部１２０と、処理順管理部１３０と、処理実行部１５０と、送信部１６０と、回線状態管理部１７０と、回線障害情報記憶部１８０と、回線状態検出部１９０とを備える。
回線情報記憶部１１０は、各回線に関する回線情報を記憶する。
【００１８】
図２は本実施形態による回線情報のデータ構造及びデータ例を示す概略図である。
本図に示すように、回線情報は、回線ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と、回線状態と、優先度と、タイムアウト時間と、メッセージ処理時間と、滞留メッセージ数と、回線閉塞閾値と、回線閉塞解除閾値との各項目を対応付けて記憶するテーブルである。
【００１９】
回線ＩＤは、各回線を一意に識別する識別情報である。回線ＩＤは、任意の記号、符号、番号、またはその組み合わせで表されてよい。
回線状態は、対応する回線の状態を示す。回線状態には、オープン、クローズ、障害、および閉塞の４つの状態がある。オープンは、サブシステム２００間で回線が繋がっており、かつ、回線を使用できる状態である。クローズは、サブシステム２００間で回線がつながっていない状態である。障害は、回線に異常が発生している状態である。閉塞は、データ処理装置１００がサブシステム２００からメッセージを受信することを一時的に拒否している状態である。回線状態がオープン以外の状態である場合、サブシステム２００間でメッセージを送受信することはできない。
【００２０】
優先度は、データ処理装置１００において、ある回線を使用するメッセージの処理が、他の回線を使用するメッセージの処理に対して、相対的にどれだけ優先されるかを表す。つまり、優先度が高い回線を使用するメッセージほど先に処理される。本実施形態では、回線の優先度を番号１、２、３、・・・で表す。優先度１は、優先度２よりも高く、優先度２は、優先度３よりも高い。優先度は、回線ごとに予め設定されている。
【００２１】
タイムアウト時間は、データ処理装置１００が、メッセージの宛先のサブシステム２００へメッセージを送信した時点から、サブシステム２００から応答のメッセージを受信せずに、タイムアウトを判定する時点までの時間である。
メッセージ処理時間は、データ処理装置１００がメッセージを処理することに要する見込みの時間である。
滞留メッセージ数は、同一の回線を使用する未処理のメッセージの数である。
【００２２】
回線閉塞閾値は、回線が閉塞されていないときに、データ処理装置１００が回線を閉塞するか否かを判定するための基準となる、未処理のメッセージの数である。
回線閉塞解除閾値は、回線が閉塞されているときに、データ処理装置１００が回線の閉塞を解除するか否かを判定するための基準となる、未処理のメッセージの数である。
【００２３】
受信部１２０は、サブシステム２００からメッセージを受信する。メッセージには、メッセージの宛先を示す情報と、メッセージ本体のデータと、使用する回線を特定する回線ＩＤとが含まれる。受信部１２０は、サブシステム２００からメッセージを受信すると、回線情報記憶部１１０が記憶する回線情報に基づいて、使用する回線の回線状態を特定する。受信部１２０は、回線状態がクローズである場合、サブシステム２００から受信したメッセージを破棄する。また、受信部１２０は、回線状態が閉塞または障害である場合、メッセージの送信元であるサブシステム２００に対してエラーメッセージを送信するように、送信部１６０に指示する。また、受信部１２０は、使用する回線状態がオープンである場合、回線情報記憶部１１０から読み出した回線情報を用いて、処理期限を含むメッセージレコードを生成する。
【００２４】
図３は本実施形態によるメッセージレコードのデータ構成及びデータ例を示す概略図である。
図示するように、メッセージレコードは、メッセージＩＤ、処理期限、回線ＩＤ、およびメッセージ本体のデータを含む。
メッセージＩＤは、メッセージを一意に識別する識別情報である。受信部１２０は、サブシステム２００から受信した各メッセージに対して、メッセージＩＤを付与する。本実施形態では、メッセージＩＤは、文字「ｍ」および番号「１、２、・・・」で構成される。
【００２５】
処理期限は、データ処理装置１００がメッセージの処理を完了しているべき時刻である。受信部１２０は、以下の式（１）にしたがって、処理期限を算出する。
【００２６】
処理期限  ＝  現在時刻  ＋  タイムアウト時間  −  メッセージ処理時間
・・・（１）
【００２７】
ここで、受信部１２０は、回線情報記憶部１１０が記憶する回線情報から、受信したメッセージの回線ＩＤに対応するタイムアウト時間およびメッセージ処理時間を読み出す。そして、受信部１２０は、読み出したタイムアウト時間を現在時刻に加算し、読みだしたメッセージ処理時間を減算して処理期限を算出する。そして、受信部１２０は、算出した処理期限を含むメッセージレコードを処理順管理部１３０へ出力する。
【００２８】
処理順管理部１３０は、メッセージが使用する回線の優先度と処理期限とに応じて、メッセージの処理の順序を決定する。処理順管理部１３０は、メモリ領域１３１を備える。メモリ領域１３１は、最優先テーブルと、回線の各優先度それぞれに対応する複数のレコードテーブルとを記憶する。最優先テーブルは、データ処理装置１００が最優先で処理するメッセージレコードを格納するテーブルである。
【００２９】
図４は本実施形態による最優先テーブルのデータ構造及びデータ例を示す概略図である。
本図に示すように、最優先テーブルは、メッセージＩＤと、処理期限と、回線ＩＤとの各項目を対応付けて記憶するテーブルである。
【００３０】
レコードテーブルは、対応する優先度のメッセージレコードを格納するテーブルである。以下、説明の便宜を図るため、３つのレコードテーブルのそれぞれに対しＡからＣの符号を割り当て、レコードテーブルＡ、Ｂ、Ｃと記す。なお、各レコードテーブルＡ〜Ｃに共通する事項については、Ａ〜Ｃの符号を省略し、単に「レコードテーブル」又は「各レコードテーブル」と記す。例えば、レコードテーブルＡの優先度は１であり、レコードテーブルＢの優先度は２であり、レコードテーブルＣの優先度は３である。すなわち、レコードテーブルＡが最優先テーブルの次に処理の優先度が高く、レコードテーブルＢがレコードテーブルＡの次に処理の優先度が高く、レコードテーブルＣがレコードテーブルＢの次に処理の優先度が高い。
【００３１】
図５は本実施形態によるレコードテーブルのデータ構造及びデータ例を示す概略図である。
本図に示すように、レコードテーブルは、メッセージＩＤと、処理期限と、回線ＩＤと、最優先テーブル移動時刻と、テーブル移動時刻との各項目を対応付けて記憶するテーブルである。最優先テーブル移動時刻は、メッセージレコードを最優先テーブルに移動させる時刻である。テーブル移動時刻は、メッセージレコードを優先度の１つ高いレコードテーブルに移動させる時刻である。
【００３２】
処理順管理部１３０は、受信部１２０からメッセージレコードが入力されると、当該メッセージレコードに含まれる処理期限を用いて、以下の式（２）にしたがって、最優先テーブル移動時刻を算出する。
【００３３】
最優先テーブル移動時刻 ＝ 処理期限 − 最優先テーブル移動余裕値
・・・（２）
【００３４】
最優先テーブル移動余裕値は、メッセージレコードを最優先テーブルへ移動させることに対して、時間的な余裕を与えるための値である。最優先テーブル移動余裕値は予め設定されている。
【００３５】
また、処理順管理部１３０は、以下の式（３）にしたがって、テーブル移動時刻を算出する。
【００３６】
テーブル移動時刻 ＝ 現在時刻 ＋ テーブル滞在時間
・・・（３）
【００３７】
テーブル滞在時間は、メッセージレコードが最優先テーブル以外の１つのレコードテーブル上にある時間である。テーブル滞在時間は予め設定されている。最優先テーブル移動余裕値およびテーブル滞在時間は、ユーザまたはオペレータによって設定入力可能であってもよい。
【００３８】
処理順管理部１３０は、算出した最優先テーブル移動時刻およびテーブル移動時刻を、受信部１２０から入力されたメッセージレコードに追加する。そして、処理順管理部１３０は、最優先テーブル移動時刻およびテーブル移動時刻を追加したメッセージレコードを、その回線ＩＤに対応する優先度に応じたレコードテーブルに書き込んで格納する。例えば、処理順管理部１３０は、回線ＩＤの優先度が１である場合には、メッセージレコードをレコードテーブルＡに格納する。また、処理順管理部１３０は、回線ＩＤの優先度が２である場合には、メッセージレコードをレコードテーブルＢに格納する。また、処理順管理部１３０は、回線ＩＤの優先度が３である場合には、メッセージレコードをレコードテーブルＣに格納する。このように、処理順管理部１３０は、メッセージが使用する回線の優先度に応じたレコードテーブルにメッセージレコードを格納することにより、回線の優先度が高いメッセージほど処理の順序を上げる。
【００３９】
また、処理順管理部１３０は、所定時間毎に、最優先テーブル以外の各レコードテーブルに格納されたメッセージレコードを、最優先テーブル移動時刻が早い順に並び替える。そして、処理順管理部１３０は、使用する回線の回線状態が「障害」でないメッセージレコードであって、現在時刻が最優先テーブル移動時刻になったメッセージレコードを最優先テーブルに移動させる。メッセージレコードを移動させるとは、移動元のテーブルからメッセージレコードを読み出して移動先のテーブルに書き込み、当該メッセージレコードを移動元のテーブルから削除することである。このとき、処理順管理部１３０は、最優先テーブル移動時刻になったメッセージレコードが複数ある場合、当該複数のメッセージレコードを同時に移動させる。このように、処理順管理部１３０は、現在時刻が最優先テーブル移動時刻になったメッセージレコードを最優先テーブルに移動させることにより、回線の優先度にかかわらず、処理期限から所定の時間前になったメッセージの処理を最優先にする。
【００４０】
また、処理順管理部１３０は、使用する回線の回線状態が「障害」でないメッセージレコードであって、現在時刻がテーブル移動時刻になったメッセージレコードを１つ優先度の高いレコードテーブルに移動させる。このとき、処理順管理部１３０は、当該メッセージレコードのテーブル移動時刻を、現在時刻にテーブル滞在時間を加算した時刻に書き換えてもよい。これにより、処理順管理部１３０は、処理期限から所定の時間前になるまでメッセージの処理の順序を段階的に上げる。
【００４１】
なお、最優先テーブル及びレコードテーブルは、メッセージレコードを並べ替えて管理しやすいデータ構造であることが望ましい。例えば、レコードテーブルは、二分探索木（ｂｉｎａｒｙ  ｓｅａｒｃｈ  ｔｒｅｅ）のデータ構造を有していてもよい。
【００４２】
また、処理順管理部１３０は、処理実行部１５０からメッセージの取得要求が入力されると、メモリ領域１３１からメッセージレコードを読み出す。このとき、処理順管理部１３０は、最優先テーブルにメッセージレコードが格納されている場合には、最優先テーブルに格納されているメッセージレコードを読み出す。一方、処理順管理部１３０は、最優先テーブルにメッセージレコードが格納されていない場合には、優先度の一番高いレコードテーブルの一番上にある（最優先テーブル移動時刻が最も早い）メッセージレコードを読み出す。このようにして、処理順管理部１３０は、優先度の高いレコードテーブルから順番にメッセージレコードを読み出す。ただし、処理順管理部１３０は、メッセージレコードの回線ＩＤに対応する回線状態が「障害」である場合には、当該メッセージレコードをスキップして次のメッセージレコードを読み出す。そして、処理順管理部１３０は、読み出したメッセージレコードが示すメッセージを処理実行部１５０に出力する。
【００４３】
処理実行部１５０は、処理順管理部１３０が決定した順序でメッセージを処理する。処理実行部１５０は、１または複数のスレッド１５１を備える。スレッド１５１は、データ処理装置１００におけるプログラムの実行単位を表す。処理実行部１５０は、処理を実行していない空きスレッド１５１がある場合、メッセージの取得要求を処理順管理部１３０に出力して、メッセージを取得する。そして、処理実行部１５０は、取得したメッセージの処理を空きスレッド１５１に割り当てる。
【００４４】
各スレッド１５１は、割り当てられたメッセージに対応する処理を実行する。そして、スレッド１５１は、処理結果に応じた応答メッセージを生成する。また、スレッド１５１は、生成した応答メッセージを送信部１６０に出力する。
【００４５】
送信部１６０は、受信部１２０から入力されたエラーメッセージ、または、スレッド１５１から入力された応答メッセージを、宛先のサブシステム２００へ送信する。
【００４６】
回線障害情報記憶部１８０は、回線に障害が発生した時刻を回線毎に示す回線障害情報を記憶する。
【００４７】
図６は本実施形態による回線障害情報のデータ構造及びデータ例を示す概略図である。
本図に示すように、回線障害情報は、回線ＩＤと回線障害発生時刻との各項目を対応付けて記憶するテーブルである。回線障害発生時刻は、対応する回線に障害が発生した時刻である。回線障害発生時刻「なし」は、回線に障害が発生してないことを示す。
【００４８】
回線状態検出部１９０は、各サブシステム２００との専用の通信プロトコルに基づいて回線毎の通信状況を監視し、障害やオープン等の回線状態を検出する。例えば、回線状態検出部１９０は、受信部１２０が一定時間（タイムアウト時間）サブシステム２００から応答のメッセージを受信しなかった場合、回線に異常が発生していると判定し、障害を検出する。回線状態検出部１９０は、回線状態が変更したことを検出した場合、回線状態の変更を通知する回線状態変更通知を回線状態管理部１７０に出力する。回線状態変更通知には、回線状態が変更した回線ＩＤと、変更後の回線状態を示す通知種別とが含まれる。
【００４９】
回線状態管理部１７０は、回線状態検出部１９０から回線状態変更通知が入力されると、回線情報記憶部１１０が記憶する回線情報において、入力された回線状態変更通知に含まれる回線ＩＤに対応する回線状態を、入力された回線状態変更通知に含まれる通知種別に書き換える。
【００５０】
また、回線状態管理部１７０は、メッセージが使用する回線が障害になった場合に、当該回線が障害から復帰したときに当該回線を使用するメッセージの処理期限を補正する。障害から復帰とは、回線状態が障害から再度オープンになることである。例えば、回線状態管理部１７０は、回線が障害になってから復帰するまでの補正時間に基づいて、当該回線を使用するメッセージの処理期限を補正する。より具体的には、回線状態管理部１７０は、メモリ領域１３１が記憶するメッセージレコードのうち、復帰した回線を使用するメッセージレコードの最優先テーブル移動時刻、テーブル移動時刻、及び処理期限それぞれに補正時間を加算する。
【００５１】
また、回線状態管理部１７０は、処理順管理部１３０がメッセージレコードをメモリ領域１３１に追加したとき、または、メッセージを処理実行部１５０へ出力したときに、回線情報記憶部１１０が記憶する回線情報に含まれる滞留メッセージ数を読み出す。回線状態管理部１７０は、滞留メッセージ数が閉塞閾値以上であり、かつ、回線が閉塞されていない場合、回線を閉塞する。一方、回線状態管理部１７０は、滞留メッセージ数が閉塞解除閾値以下であり、かつ、回線が閉塞されている場合、回線の閉塞を解除する。回線状態管理部１７０が回線を閉塞状態にしている間、受信部１２０は、その回線を使用するメッセージを受信することを拒否する。これにより、滞留メッセージ数を一定数以下に抑制することができる。
【００５２】
図７は本実施形態によるデータ処理装置のハードウェア構成を示す図である。
この図が示すようにデータ処理装置１００はＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、大容量記憶装置１０４、通信モジュール１０５等の各ハードウェアを備えたコンピュータである。
【００５３】
図８は本実施形態によるメッセージ受信処理の流れを示すフローチャートである。
データ処理装置１００は、サブシステム２００からメッセージを受信したときに、本図に示すメッセージ受信処理を実行する。
【００５４】
受信部１２０は、サブシステム２００からメッセージを受信する（ステップＳ１０１）。このとき、受信部１２０は、当該メッセージに付与されている回線ＩＤを特定する。
【００５５】
続いて、受信部１２０は、回線情報記憶部１１０から回線情報を読み出す（ステップＳ１０２）。
【００５６】
受信部１２０は、読み出した回線情報に基づいて、使用する回線（特定した回線ＩＤ）に対応する回線状態がオープンであるか否かを判定する（ステップＳ１０３）。
【００５７】
受信部１２０は、回線状態が障害または閉塞である場合（ステップＳ１０３；ＮＯ）、送信部１６０に対して、エラーメッセージをメッセージの送信元へ送信するように指示する。送信部１６０は、メッセージの送信元のサブシステム２００に対してエラーメッセージを送信する（ステップＳ１０４）。なお、受信部１２０は、回線状態がクローズである場合、メッセージを破棄する。その後、処理を終了する。
【００５８】
一方、受信部１２０は、回線状態がオープンである場合（ステップＳ１０３；ＹＥＳ）、特定した回線ＩＤに対応するタイムアウト時間およびメッセージ処理時間に基づいて、処理期限を算出する（ステップＳ１０５）。
【００５９】
続いて、受信部１２０は、算出した処理期限を含むメッセージレコードを生成し、生成したメッセージレコードを処理順管理部１３０に出力する。処理順管理部１３０は、受信部１２０から入力されたメッセージレコードに最優先テーブル移動時刻およびテーブル移動時刻を追加して、当該メッセージレコードをその回線ＩＤに対応する優先度に応じたレコードテーブルに格納する（ステップＳ１０６）。その後、処理を終了する。
【００６０】
図９は本実施形態によるテーブル移動処理の流れを示すフローチャートである。
データ処理装置１００は、所定時間毎に本図に示すテーブル移動処理を、最優先テーブルを除く全てのレコードテーブルに対して実行する。また、データ処理装置１００は、サブシステム２００からメッセージを受信したときに、上述したデータ受信処理に続いて本図に示すテーブル移動処理を実行してもよい。或いは、データ処理装置１００は、メッセージを処理したときに本図に示すテーブル移動処理を実行してもよい。
【００６１】
処理順管理部１３０は、レコードテーブルに格納されたメッセージレコードを、最優先テーブル移動時刻が早いほど上になるよう最優先テーブル移動時刻の順にソートする（ステップＳ２０１）。続いて、処理順管理部１３０はは、最優先テーブル移動時刻が最も早いメッセージレコードをレコードテーブルから読み出す（ステップＳ２０２）。
【００６２】
処理順管理部１３０は、読み出したメッセージレコードの回線ＩＤに対応する回線状態を回線情報記憶部１１０が記憶する回線情報から読み出し、読み出した回線状態が障害であるか否かを判定する（ステップＳ２０３）。
【００６３】
処理順管理部１３０は、回線状態が障害である場合（ステップＳ２０３；ＹＥＳ）、次に最優先テーブル移動時刻が早いメッセージレコードを読み出し（ステップＳ２０４）、ステップＳ２０３の処理に戻る。
【００６４】
一方、処理順管理部１３０は、回線状態が障害でない場合（ステップＳ２０３；ＮＯ）、現在時刻が、読み出したメッセージレコードの最優先テーブル移動時刻になったか否かを判定する（ステップＳ２０５）。
【００６５】
処理順管理部１３０は、現在時刻が最優先テーブル移動時刻になった場合（ステップＳ２０５；ＹＥＳ）、当該メッセージレコードを最優先テーブルに移動させる(ステップＳ２０６)。その後、処理を終了する。
【００６６】
処理順管理部１３０は、現在時刻が最優先テーブル移動時刻になっていない場合（ステップＳ２０５；ＮＯ）、現在時刻が、読み出したメッセージレコードのテーブル移動時刻になったか否かを判定する（ステップＳ２０７）。
【００６７】
処理順管理部１３０は、現在時刻がテーブル移動時刻になった場合（ステップＳ２０７；ＹＥＳ）、メモリ領域１３１内において優先度が１つ上のレコードテーブルへ当該メッセージレコードを移動させる（ステップＳ２０８）。その後、処理を終了する。一方、現在時刻がテーブル移動時刻になっていない場合（ステップＳ２０７；ＮＯ）、処理を終了する。
【００６８】
処理順管理部１３０は、最優先テーブルを除く全てのレコードテーブルについて、上述したテーブル移動処理を実行する。例えば、処理順管理部１３０は、優先度が最も高いレコードテーブルから順番に、上述したテーブル移動処理を実行してもよい。この場合、処理順管理部１３０は、優先度が最も低いレコードテーブルのテーブル移動処理が終了した後、優先度が最も高いレコードテーブルについて、再度テーブル移動処理を実行する。
【００６９】
図１０は本実施形態によるメッセージ処理実行処理の流れを示すフローチャートである。
データ処理装置１００は、処理実行部１５０に空きスレッド１５１ができた場合に、本図に示すメッセージ処理実行処理を実行する。
【００７０】
処理実行部１５０は、スレッド１５１に空きができると、メッセージの取得要求を処理順管理部１３０に出力する。処理順管理部１３０は、取得要求が入力されると、メモリ領域１３１に記憶されている最優先テーブルにメッセージレコードが格納されているか否かを判定する（ステップＳ３０１）。
【００７１】
処理順管理部１３０は、最優先テーブルにメッセージレコードが格納されている場合（ステップＳ３０１；ＹＥＳ）、最優先テーブルからメッセージレコードを読み出す（ステップＳ３０２）。
【００７２】
一方、処理順管理部１３０は、最優先テーブルにメッセージレコードが格納されていない場合（ステップＳ３０１；ＮＯ）、メッセージレコードが格納されているレコードテーブルのうち最も優先度の高いレコードテーブルから一番上に格納されているメッセージレコードを読み出す（ステップＳ３０３）。
【００７３】
処理順管理部１３０は、回線情報記憶部１１０が記憶する回線情報に基づいて、読み出したメッセージレコードの回線ＩＤに対応する回線状態が障害であるか否かを判定する（ステップＳ３０４）。処理順管理部１３０は、回線状態が障害である場合（ステップＳ３０４；ＹＥＳ）、当該メッセージレコードの処理をスキップして、ステップＳ３０１の処理に戻る。
【００７４】
一方、処理順管理部１３０は、回線状態が障害でない場合（ステップＳ３０４；ＮＯ）、読み出したメッセージレコードが示すメッセージを処理実行部１５０に出力する。このとき、処理順管理部１３０は、読み出したメッセージレコードを読み出し元のレコードテーブルから削除する。処理実行部１５０は入力されたメッセージをスレッド１５１に割り当てて処理を実行する（ステップＳ３０５）。そして、処理実行部１５０は、処理結果に応じた応答メッセージを生成し、生成した応答メッセージを送信部１６０に出力する。送信部１６０は、入力された応答メッセージを、処理したメッセージの宛先のサブシステム２００に送信する（ステップＳ３０６）。その後、処理を終了する。
【００７５】
図１１は本実施形態による障害検出処理の流れを示すフローチャートである。
データ処理装置１００は、回線状態が障害に変更になったときに、本図に示す障害検出処理を実行する。以下、時刻「１３：３１：００」に回線ＩＤ「ＬＩＮＥ１」の回線状態が障害に変更した場合を例に説明する。
【００７６】
回線状態検出部１９０は、回線ＩＤ「ＬＩＮＥ１」の回線状態が「障害」に変更になったことを検出する（ステップＳ４０１）。回線状態検出部１９０は、図１２に示すように、回線障害情報記憶部１８０が記憶する回線障害情報において、障害になった回線ＩＤ「ＬＩＮＥ１」に対応する障害発生時刻に現在時刻「１３：３１：００」を書き込んで設定する（ステップＳ４０２）。
【００７７】
続いて、回線状態検出部１９０は、図１３に示す、障害になった回線の回線ＩＤ「ＬＩＮＥ１」と、回線状態が障害に変更したことを示す通知種別「障害」と、補正時間「なし」とを含む回線状態変更通知を回線状態管理部１７０に出力する。回線状態変更通知における通知種別は、変更後の回線状態である。また、回線状態変更通知における補正時間は、処理期限、最優先テーブル移動時刻及びテーブル移動時刻を補正する時間である。補正時間「なし」は、補正をしないことを示す。
【００７８】
回線状態管理部１７０は、回線状態検出部１９０から入力された回線状態変更通知に基づいて、回線情報記憶部１１０が記憶する回線情報における回線ＩＤ「ＬＩＮＥ１」に対応する回線状態を「障害」に書き換えて更新する（ステップＳ４０３）。
【００７９】
図１４は本実施形態によるオープン検出処理の流れを示すフローチャートである。
データ処理装置１００は、回線状態がオープンに変更になったときに、本図に示すオープン検出処理を実行する。以下、回線ＩＤ「ＬＩＮＥ１」の回線状態がオープンに変更した場合を例に説明する。
【００８０】
回線状態検出部１９０は、回線ＩＤ「ＬＩＮＥ１」の回線状態がオープンに変更になったことを検出する（ステップＳ５０１）。回線状態検出部１９０は、回線障害情報記憶部１８０が記憶する回線障害情報において、オープンになった回線ＩＤ「ＬＩＮＥ１」に対応する障害発生時刻に時刻が設定されている（「なし」でない）か否かを判定する（ステップＳ５０２）。
【００８１】
回線状態検出部１９０は、障害発生時刻が設定されていない場合（ステップＳ５０２；ＮＯ）、図１５に示す、オープンになった回線の回線ＩＤ「ＬＩＮＥ１」と通知種別「オープン」と補正時間「なし」とを含む回線状態変更通知を回線状態管理部１７０に出力して、ステップＳ５０５の処理に進む。
【００８２】
一方、回線状態検出部１９０は、障害発生時刻が設定されている場合（ステップＳ５０２；Ｙｅｓ）、現在時刻から障害発生時刻を減算して補正時間を算出する。すなわち、補正時間は、障害発生時刻から現在時刻までの時間である。続いて、回線状態検出部１９０は、図１６に示す、オープンになった回線の回線ＩＤ「ＬＩＮＥ１」と通知種別「オープン」と算出した補正時間「００：０１：００」とを含む回線状態変更通知を回線状態管理部１７０に出力する。
【００８３】
回線状態管理部１７０は、入力された回線状態変更通知に補正時間が設定されている（補正時間が「なし」以外である）場合、図１７に示す、時刻補正通知を処理順管理部１３０に出力する。当該補正時刻通知には、入力された回線状態変更通知に含まれる回線ＩＤ「ＬＩＮＥ１」と補正時間「００：０１：００」とが含まれる。回線状態管理部１７０は、時刻補正通知を処理順管理部１３０に出力することにより、当該時刻補正通知に含まれる回線ＩＤのメッセージの処理期限、最優先テーブル移動時刻、及びテーブル移動時刻を、当該時刻補正通知に含まれる補正時間に基づいて補正する。
【００８４】
処理順管理部１３０は、回線状態管理部１７０から時刻補正通知が入力されると、入力された時刻補正通知に含まれる回線ＩＤのメッセージレコードの最優先テーブル移動時刻、テーブル移動時刻、及び処理期限にそれぞれ、時刻補正通知に含まれる補正時間を加算して補正する（ステップＳ５０３）。
【００８５】
続いて、回線状態検出部１９０は、回線障害情報記憶部１８０が記憶する回線障害情報において、当該回線ＩＤ「ＬＩＮＥ１」に対応する障害発生時刻を「なし」に書き換えてクリアする（ステップＳ５０４）。
【００８６】
回線状態管理部１７０は、回線状態検出部１９０から入力された回線状態変更通知に基づいて、回線情報記憶部１１０が記憶する回線情報における回線ＩＤ「ＬＩＮＥ１」に対応する回線状態をオープンに書き換えて更新する（ステップＳ５０５）。
【００８７】
上述の処理によれば、回線に障害が発生した場合に、当該回線が障害から復帰したときに、障害が発生していた時間（現在時刻−障害発生時刻）を、処理期限、最優先テーブル移動時刻、及びテーブル移動時刻それぞれに加算する。これにより、障害が発生していた時間だけメッセージレコードの処理期限、最優先テーブル移動時刻、及びテーブル移動時刻が伸びる。よって、回線が障害から復帰したときに、優先度の低い回線を使用するメッセージが一斉に処理の最優先になることを防ぐことができる。よって、優先度の低い回線を使用するメッセージが、優先度の高い回線を使用するメッセージの処理を妨げることを防ぐことができる。
【００８８】
このように、本実施形態に係るデータ処理装置１００は、処理の対象となるデータを受信する受信部１２０と、データが使用する回線の優先度と処理期限とに応じて、データの処理の順序を決定する処理順管理部１３０と、決定した順序でデータを処理する処理実行部１５０と、を備える。
【００８９】
このような構成により、優先度の高い回線を使用するデータを優先的に処理しつつ、優先度の低い回線を使用するデータを処理期限内に処理することができる。よって、優先度の低い回線を使用するデータの処理期限が過ぎて回線に障害が発生することを抑制することができる。すなわち、優先度の低い回線を使用するデータであっても確実に処理することができる。
【００９０】
ところで、障害中の回線に対してデータの送信は行えないが、障害が発生する前に受信済みのデータは通常通り処理を行い、障害から復帰後に応答を返信する必要がある。ここで、優先度の低い回線が障害になった場合、優先度の低いデータが大量にデータ処理装置１００に滞留することがある。そして、回線が障害から復帰するまでに時間がかかった場合には、滞留中の優先度の低いデータが一斉に処理の最優先になり、優先度の高い回線を使用するデータの処理を妨げる可能性がある。これを防ぐために、回線閉塞閾値や回線閉塞解除閾値を小さくすることが考えられるが、回線閉塞閾値や回線閉塞解除閾値を小さくするとすぐに閉塞が発生してしまい、データ処理装置１００のスループットが悪化する問題がある。また、障害の発生前に受信済みのデータについて、障害中に処理を行い回線の復帰後に応答を返信する方法も考えられるが、その場合、回線の復帰まで応答を溜めておき回線の復帰を検出して応答を送信する仕組みが必要になり、システム構成が複雑になる。一方、回線の障害発生時は、データの送信元は送信済みのデータについて、タイムアウトの監視を一時的に中断することが一般的である。すなわち、回線に障害が発生する前に当該回線から受信済みのデータについて、回線の復帰後に即座に応答を返信する必要はない。
【００９１】
そこで、本実施形態に係るデータ処理装置１００は、データが使用する回線の状態を検出する回線状態検出部１９０と、回線が障害になった場合に、当該回線を使用するデータの処理期限を補正する回線状態管理部１７０と、を更に備える。このような構成により、回線が障害から復帰したときに優先度の低いデータが一斉に処理の最優先になることを防ぐことができる。よって、優先度の低い回線を使用するメッセージが、優先度の高いメッセージの処理を妨げることを防ぐことができる。また、システム構成を複雑にすることなく、回線閉塞閾値や回線閉塞解除閾値を大きくしてデータ処理装置のスループットを向上させることが可能である。
【００９２】
また、回線状態管理部１７０は、回線が障害になってから復帰するまでの時間に基づいて、当該回線を使用するデータの処理期限を補正する。このような構成により、障害が続いた時間に応じて処理期限を延ばすことができる。
【００９３】
また、処理順管理部１３０は、使用する回線が障害でないデータであって、処理期限から所定の時間前になったデータの処理を最優先にする。このような構成により、使用する回線が障害でないデータであって処理期限の近づいたデータを最優先で処理することができる。また、障害が発生している回線を使用するデータの処理を最優先にすることを防ぐことができる。
【００９４】
また、処理順管理部１３０は、使用する回線が障害でない場合に、処理期限から所定の時間前になるまでデータの処理の順序を段階的に上げる。このような構成により、使用する回線が障害でないデータの処理の優先度を処理期限が近づくにつれて上げることができる。また、障害が発生している回線を使用するデータの処理の優先度を上げることを防ぐことができる。
【００９５】
また、処理実行部１５０は、１または複数のスレッドを備え、スレッドに空きが生じるごとに、決定した順序にしたがって、使用する回線が障害でないデータを処理する。このような構成により、障害が発生している回線を使用するデータを処理することを防ぐことができる。
【００９６】
以上本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００９７】
例えば、上述した実施形態では、回線状態検出部１９０が回線状態の変更を検出しているが、これに限らず、例えば送信部１６０が定期的にヘルスチェックメッセージを送信し、受信部１２０でその応答を監視する等、受信部１２０及び送信部１６０が回線状態検出部１９０の機能を実現してもよい。
【００９８】
また、本発明の実施形態は、航空管制システムなど、複数のサブシステムが相互に接続され、各接続相手サブシステムそれぞれに処理の優先度を付けることが有効であるシステム等に適用可能である。
【００９９】
図１８はデータ処理装置の最小構成を示す図である。
データ処理装置１００は少なくとも受信部１２０、処理順管理部１３０、処理実行部１５０、回線状態管理部１７０、及び回線状態検出部１９０の機能を備えればよい。
受信部１２０は、処理の対象となるデータを受信する。
処理順管理部１３０は、データが使用する回線の優先度と処理期限とに応じて、データの処理の順序を決定する。
処理実行部１５０は、決定した順序でデータを処理する。
回線状態検出部１９０は、データが使用する回線の状態を検出する。
回線状態管理部１７０は、回線の状態が障害になった場合に、当該回線を使用するデータの処理期限を補正する。
【０１００】
上述の各装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【０１０１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１０２】
１・・・通信システム
１００・・・データ処理装置
１１０・・・回線情報記憶部
１２０・・・受信部
１３０・・・処理順管理部
１５０・・・処理実行部
１６０・・・送信部
１７０・・・回線状態管理部
１８０・・・回線障害情報記憶部
１９０・・・回線状態検出部
２００・・・サブシステム
【図１】
2020113841.tif 000003
【図２】
2020113841.tif 000004
【図３】
2020113841.tif 000005
【図４】
2020113841.tif 000006
【図５】
2020113841.tif 000007
【図６】
2020113841.tif 000008
【図７】
2020113841.tif 000009
【図８】
2020113841.tif 000010
【図９】
2020113841.tif 000011
【図１０】
2020113841.tif 000012
【図１１】
2020113841.tif 000013
【図１２】
2020113841.tif 000014
【図１３】
2020113841.tif 000015
【図１４】
2020113841.tif 000016
【図１５】
2020113841.tif 000017
【図１６】
2020113841.tif 000018
【図１７】
2020113841.tif 000019
【図１８】
2020113841.tif 000020