(57)【要約】【課題】  優先度の低い回線を使用するメッセージであっても、一定時間内に処理する。【解決手段】  データ受信部（２１０）は、データを受信し、処理順管理部（２２０）は、データが使用する回線の優先度に応じて、データの処理の順序を決定し、処理実行部（２３０）は、処理順管理部（２２０）が決定した順序でデータを処理する。処理順管理部（２２０）は、データの処理期限から所定の時間前になったデータの処理を、使用する回線の優先度によらずに最優先する。【選択図】  図９
2019145909.tif 000002
【特許請求の範囲】
【請求項１】
処理の対象であるデータを受信するデータ受信手段と、
前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定する処理順管理手段と、
前記処理順管理手段が決定した順序で前記データを処理する処理実行手段とを備え、
前記処理順管理手段は、前記データの処理期限から所定の時間前になったデータの処理を、前記データが使用する回線の優先度によらずに最優先する
データ処理装置。
【請求項２】
前記処理順管理手段は、前記処理期限から所定の時間前になるまで、前記データの処理の順序を段階的に上げる
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
同一の回線を使用する未処理のメッセージの数に基づいて、前記回線の状態を管理する回線状態管理手段をさらに備えた
ことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
同一の回線を使用する未処理のメッセージの数が第１の閾値以上になった場合、前記回線状態管理手段は、前記回線を閉塞することによって、前記データ受信手段が前記回線を使用するデータを受信することを中止させる
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
同一の回線を使用する未処理のメッセージの数が第２の閾値以下になった場合、前記回線状態管理手段は、前記回線の閉塞を解除することによって、前記データ受信手段が前記回線を使用するデータを再び受信することを許容する
ことを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記処理実行手段は、スレッドに空きが生じるごとに、前記処理順管理手段が決定した順序にしたがって、前記データを処理する
ことを特徴とする請求項１〜５のいずれか１項に記載のデータ処理装置。
【請求項７】
処理の対象であるデータを受信し、
前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定し、
前記順序で、前記データを処理し、
前記データの処理の順序を決定することは、前記データの処理期限に近づいたデータの処理を、前記データが使用する回線の優先度によらずに最優先することを含む
データ処理方法。
【請求項８】
処理の対象であるデータを受信することと、
前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定することと、
前記決定した順序で、前記データを処理することと、をコンピュータに実行させ、
前記データの処理の順序を決定することは、前記データの処理期限に近づいたデータの処理を、前記データが使用する回線の優先度によらずに最優先することを含む
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、およびプログラムに関し、例えば、複数のサブシステムの間で回線を介して送受信されるデータを処理するデータ処理装置に関する。
【背景技術】
【０００２】
近年、航空管制システムなど、社会インフラを支えるミッションクリティカルシステムの重要性がますます高まってきている。航空管制システムは、複数のサブシステムから構成される巨大なシステムである。複数のサブシステムは、超高速で飛行する航空機の座標情報および航空エリア内の気象情報など、航空機の安全な航行および離着陸のために必要となる情報を、リアルタイムで通信する。
【０００３】
サブシステムは、他のサブシステムと通信するために回線を使用する。回線の状態には、クローズ、オープン、および障害の３つがある。サブシステムの起動時、回線はクローズの状態である。サブシステムのオペレータは、サブシステムごとに定義される通信プロトコルにしたがって、回線をオープンさせる。これにより、サブシステム間でデータを送受信することが可能になる。
【０００４】
データ処理装置は、回線を確立されたサブシステム間で送受信されるデータを処理する。データ処理装置が同時に実行できるスレッドの数は有限であるため、ある回線におけるメッセージの処理の負荷が上昇することによって、他の回線におけるメッセージの処理が遅延する場合がある。
【０００５】
一つの解決案として、回線に優先度を設定し、各回線の優先度に応じて、データ処理装置による処理の順番を決定してもよい。関連する方法の一例が、特許文献１に記載されている。特許文献１に記載の方法では、データ処理装置が受信したメッセージデータを、優先度の高いキューと優先度の低いキューとに振り分ける。そして、データ処理装置は、優先度の高いキューに振り分けられたメッセージデータを先に処理する。これにより、優先度の高いメッセージデータの処理に関して、リアルタイム性が毀損することを回避することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１５／００８３１５号
【特許文献２】特開２００７−１９９８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、関連する方法では、優先度の低いキューに配置された優先度の低いメッセージデータがいつまでも処理されない可能性がある。その結果、タイムアウトが発生して、データ処理装置は回線を障害状態に遷移させる。この場合、オペレータが障害の原因を調査して、回線を復帰させる必要がある。
【０００８】
本発明の目的は、優先度の低い回線を使用するメッセージであっても、一定時間内に処理することが可能なデータ処理装置等を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係わるデータ処理装置は、処理の対象であるデータを受信するデータ受信手段と、前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定する処理順管理手段と、前記処理順管理手段が決定した順序で前記データを処理する処理実行手段とを備え、前記処理順管理手段は、前記データの処理期限から所定の時間前になったデータの処理を、前記データが使用する回線の優先度によらずに最優先する。
【００１０】
本発明の一態様に係わるデータ処理方法は、処理の対象であるデータを受信し、前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定し、前記決定した順序で、前記データを処理し、前記データの処理の順序を決定することは、前記データの処理期限に近づいたデータの処理を、前記データが使用する回線の優先度によらずに最優先することを含む。
【００１１】
本発明の一態様に係わるプログラムは、処理の対象であるデータを受信することと、前記データが使用する回線の優先度に応じて、前記データの処理の順序を決定することと、前記決定した順序で、前記データを処理することと、をコンピュータに実行させ、前記データの処理の順序を決定することは、前記データの処理期限に近づいたデータの処理を、前記データが使用する回線の優先度によらずに最優先することを含む。
【発明の効果】
【００１２】
本発明の一態様によれば、優先度の低い回線を使用するメッセージであっても、一定時間内に処理することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１に係わる通信システムの構成を示すブロック図である。
【図２】実施形態１に係わるデータ処理装置の回線情報記憶部が記憶する回線情報の一例を示す図である。
【図３】実施形態１に係わるデータ処理装置のメッセージ受信部が生成するメッセージレコードの一例を示す図である。
【図４】実施形態１に係わるデータ処理装置の処理順管理部が備えたメモリ領域に格納される最優先テーブルの一例を示す図である。
【図５】実施形態１に係わるデータ処理装置の処理順管理部が備えたメモリ領域に格納される最優先テーブル以外のレコードテーブルの一例を示す図である。
【図６】実施形態１に係わるデータ処理装置のメッセージ受信部が実行するメッセージ受信処理の流れを示すフローチャートである。
【図７】実施形態１に係わるデータ処理装置の処理順管理部が実行するテーブル移動処理の流れを示すフローチャートである。
【図８】実施形態１に係わるデータ処理装置の回線状態管理部が実行する回線閉塞／解除処理の流れを示すフローチャートである。
【図９】実施形態２に係わるデータ処理装置の構成を示すブロック図である。
【図１０】実施形態３に係わるデータ処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
（通信システム１の構成）
図１は、本発明の一実施形態に係わる通信システム１の構成を示すブロック図である。図１に示すように、通信システム１は、データ処理装置１００、および複数のサブシステムＸ、Ｙ、Ｚ、・・・を含む。以下では、複数のサブシステムＸ、Ｙ、Ｚ、・・・を、いずれもサブシステム３００と呼ぶ。
【００１５】
（データ処理装置１００）
データ処理装置１００は、回線を介して、複数のサブシステム３００の間で送受信されるメッセージを処理する。より詳細には、データ処理装置１００は、あるサブシステム３００から、他のサブシステム３００宛てのメッセージを受信して、受信したメッセージを処理した後、宛先である他のサブシステム３００へメッセージを送信する。
【００１６】
図１に示すように、データ処理装置１００は、メッセージ受信部１２０と、回線情報記憶部１１０と、処理順管理部１３０と、処理実行部１５０と、メッセージ送信部１６０と、回線状態管理部１７０とを備えている。
【００１７】
（サブシステム３００）
複数のサブシステム３００は、一つの巨大なシステムを構成している。サブシステム３００（発信元）は、回線を使用して、他のサブシステム３００（宛先）との間で、様々なデータ（本実施形態ではメッセージ）を送受信する。メッセージの発信元のサブシステム３００は、メッセージの宛先を示す情報とともに、メッセージ本体のデータと、使用する回線を特定する情報とを、データ処理装置１００に送信する。
【００１８】
メッセージ本体は、メッセージのタイトルおよび本文（コンテンツ）を含む。使用する回線とは、メッセージの通信のために使用されるデータの経路を意味する。
【００１９】
（回線情報記憶部１１０）
回線情報記憶部１１０は、回線状態管理部１７０によって管理されている回線に関する情報を記憶する。回線に関する情報を、以下では回線情報と呼ぶ。
【００２０】
（回線情報）
図２は、回線情報記憶部１１０が記憶する回線情報の一例を示す。図２に示すように、回線情報は、回線ＩＤ（IDentification）、回線状態、優先度、タイムアウト時間、メッセージ処理時間、滞留メッセージ数、回線閉塞閾値、および回線閉塞解除閾値の各情報を含む。回線情報に含まれるこれらの情報について、以下で説明する。
【００２１】
回線ＩＤは、各回線を一意に識別する。回線ＩＤは、任意の記号、符号、番号、またはその組み合わせで表されてよい。本実施形態では、図２に示すように、回線ＩＤは、ＬＩＮＥ１、ＬＩＮＥ２、ＬＩＮＥ３、・・・・で表される。
【００２２】
回線状態には、オープン、クローズ、障害、および閉塞の４つがある。
【００２３】
オープンは、サブシステム３００間で回線がつながっており、かつ、回線を使用できる状態である。クローズは、サブシステム３００間で回線がつながっていない状態である。
【００２４】
障害は、回線に異常が発生している状態である。例えば、メッセージ受信部１２０が、一定時間（図２のタイムアウト時間）、サブシステム３００から応答のメッセージを受信しなかった場合、データ処理装置１００は回線に異常が発生していると判定する。
【００２５】
閉塞は、データ処理装置１００がサブシステム３００からメッセージを受信することを一時的に拒否している状態である。回線がオープン以外の状態である場合、サブシステム３００間でメッセージを送受信することはできない。
【００２６】
優先度は、回線ごとに予め設定されている。優先度は、データ処理装置１００において、ある回線を使用するメッセージの処理が、他の回線を使用するメッセージの処理に対して、相対的にどれだけ優先されるかを表す。つまり、優先度が高い回線を使用するメッセージほど先に処理される。本実施形態では、回線の優先度を番号１、２、３、・・・で表す。優先度１は、優先度２よりも高く、優先度２は、優先度３よりも高い。
【００２７】
タイムアウト時間は、データ処理装置１００が、メッセージの宛先のサブシステム３００へメッセージを送信した時点から、サブシステム３００から応答のメッセージを受信せずに、タイムアウトを判定する時点までの時間である。
【００２８】
メッセージ処理時間は、データ処理装置１００がメッセージを処理することに要する見込みの時間である。
【００２９】
滞留メッセージ数は、同一の回線を使用する未処理のメッセージの数である。
【００３０】
回線閉塞閾値は、回線が閉塞されていないときに、データ処理装置１００が回線を閉塞するかどうかを判定するための基準となる、未処理のメッセージの数である。回線閉塞解除閾値は、回線が閉塞されているときに、データ処理装置１００が回線の閉塞を解除するかどうかを判定するための基準となる、未処理のメッセージの数である。
【００３１】
（メッセージ受信部１２０）
メッセージ受信部１２０は、メッセージの発信元のサブシステム３００から、メッセージの宛先を示す情報とともに、メッセージ本体のデータと、使用する回線を特定するための回線ＩＤの情報とを受信する。
【００３２】
メッセージ受信部１２０は、サブシステム３００からメッセージを受信したとき、回線情報記憶部１１０を参照して、使用する回線がどのような状態であるかを特定する。
【００３３】
使用する回線がオープンである場合、メッセージ受信部１２０は、回線情報記憶部１１０から取得した回線情報を用いて、メッセージレコードを生成する。そして、メッセージ受信部１２０は、生成したメッセージレコードを処理順管理部１３０へ送信する。メッセージレコードの具体例を後で説明する。
【００３４】
回線がクローズである場合、メッセージ受信部１２０は、サブシステム３００から受信したメッセージを破棄する。回線が閉塞または障害の状態である場合、メッセージ受信部１２０は、メッセージの送信元であるサブシステム３００に対して、エラーメッセージを送信するように、メッセージ送信部１６０に指示する。
【００３５】
（メッセージレコード）
図３は、メッセージ受信部１２０が生成するメッセージレコードの一例を示す。図３に示すように、メッセージレコードは、メッセージＩＤ、処理期限、回線ＩＤ、およびメッセージ本体の情報を含む。
【００３６】
メッセージＩＤは、メッセージを一意に特定する。メッセージ受信部１２０は、サブシステム３００から受信した各メッセージに対して、メッセージＩＤを付与する。本実施形態では、メッセージＩＤは、文字「ｍ」および番号「１、２、・・・」で構成される。
【００３７】
処理期限は、データ処理装置１００がメッセージの処理を完了しているべき時刻である。メッセージ受信部１２０は、以下の式（１）にしたがって、処理期限を計算する。
【００３８】
処理期限 ＝ 現在時刻 ＋ タイムアウト時間 − メッセージ処理時間・・・（１）
ここで、式（１）に示すタイムアウト時間およびメッセージ処理時間の情報は、図２に示す回線情報記憶部１１０に回線情報として格納されている。メッセージ受信部１２０は、回線情報記憶部１１０を参照することによって、タイムアウト時間およびメッセージ処理時間の情報を取得する。そして、メッセージ受信部１２０は、取得したタイムアウト時間およびメッセージ処理時間の情報を用いて、式（１）にしたがって、上述した処理期限を計算する。
【００３９】
（処理順管理部１３０）
処理順管理部１３０は、メッセージ受信部１２０から受信したメッセージレコード（図３参照）に含まれる処理期限の情報を用いて、以下の式（２）にしたがって、最優先テーブル移動時刻を計算する。最優先テーブル移動時刻は、メッセージレコードを、後述のレコードテーブルの内の最優先テーブル（図４参照）に移動させる時刻である。
【００４０】
最優先テーブル移動時刻 ＝ 処理期限 − 最優先テーブル移動余裕値・・・（２）
ここで、最優先テーブル移動余裕値は、メッセージレコードを最優先テーブルへ移動させることに対して、時間的な余裕を与えるための値である。最優先テーブル移動余裕値の情報は、図示しないテーブル情報記憶部に予め格納されている。
【００４１】
また、処理順管理部１３０は、以下の式（３）にしたがって、テーブル移動時刻を計算する。
【００４２】
テーブル移動時刻 ＝ 現在時刻 ＋ テーブル滞在時間・・・（３）
ここで、テーブル滞在時間は、メッセージレコードが最優先テーブル以外の１つのレコードテーブル上にある時間である。テーブル滞在時間の情報も、図示しないテーブル情報記憶部に予め格納されている。最優先テーブル移動余裕値およびテーブル滞在時間は、ユーザまたはオペレータによって入力されてよい。
【００４３】
処理順管理部１３０は、計算した最優先テーブル移動時刻およびテーブル移動時刻の情報を、メッセージ受信部１２０が生成したメッセージレコードに追加する。
【００４４】
（メモリ領域１３１）
メモリ領域１３１は、複数のレコードテーブルを含む。後述のように、メッセージレコードをレコードテーブル間で移動する前において、最優先テーブル以外の各レコードテーブルには、同じ回線を使用する１つ以上のメッセージレコードが格納される。特に、メモリ領域１３１は最優先テーブルを含む。最優先テーブルには、データ処理装置１００が最優先で処理するメッセージレコードが格納されている。最優先テーブル以外のレコードテーブル（図１では、テーブルＡ、Ｂ、Ｃ、・・・と示す）には、この順で、優先度の高い回線を使用するメッセージレコードが格納される。
【００４５】
本実施形態では、処理順管理部１３０は、最優先テーブル以外の各レコードテーブルに格納されたメッセージレコードを、最優先テーブル移動時刻が早い順に並び替える。そして、現在時刻が、各レコードテーブルにおける、最優先テーブル移動時刻が最も早いメッセージレコードの最優先テーブル移動時刻になったとき、処理順管理部１３０は、そのメッセージレコードを最優先テーブルへ移動させる。ここで、最優先テーブル移動時刻が同じ複数のメッセージレコードがある場合、同時に移動させるメッセージレコードの数は複数となる。これにより、データ処理装置１００は、タイムアウト（処理期限）が近いメッセージを最優先で処理することができる。
【００４６】
（レコードテーブル）
図４は、メモリ領域１３１に格納されている最優先テーブルの一例を示す。図４に示すように、最優先テーブルは、メッセージＩＤ、処理期限、および使用する回線（回線ＩＤ）の情報を含む。
【００４７】
図５は、メモリ領域１３１に格納されている最優先テーブル以外のレコードテーブルの一例を示す。図４に示すように、最優先テーブル以外のレコードテーブルは、メッセージＩＤ、処理期限、及び使用する回線（回線ＩＤ）の情報に加えて、最優先テーブル移動時刻、およびテーブル移動時刻の情報も含む。
【００４８】
なお、レコードテーブルは、メッセージレコードを並べ替えて管理しやすいデータ構造を有することが望ましい。例えば、レコードテーブルは、二分探索木（binary search tree）のデータ構造を有していてもよい。
【００４９】
（処理実行部１５０）
処理実行部１５０は、１または複数のスレッド１５１を含む。スレッド１５１は、データ処理装置１００におけるプログラムの実行単位を表す。スレッド１５１が空きスレッドを含む場合、処理実行部１５０は、処理順管理部１３０に対してメッセージの取得要求を行い、処理順管理部１３０からメッセージレコードを受信する。そして、処理実行部１５０は、処理順管理部１３０から取得したメッセージの処理を空きスレッドに割り当てる。
【００５０】
最優先テーブルがメッセージレコードを含んでいる場合、処理実行部１５０は、最優先テーブルからメッセージレコードを取得する。最優先テーブルがメッセージレコードを含んでいない場合、処理実行部１５０は、レコードテーブルＡの一番上のメッセージレコード、つまり、最優先テーブル移動時刻が最も早いメッセージレコードを取得する。同様に、レコードテーブルＡがメッセージレコードを含んでいない場合、処理実行部１５０は、レコードテーブルＢの一番上のメッセージレコードを取得する。このようにして、処理実行部１５０は、優先度の高いメッセージレコードを格納したレコードテーブルから順番に、メッセージレコードを取得する。
【００５１】
各スレッド１５１は、割り当てられたメッセージレコードに対応する処理を実行する。そして、スレッド１５１は、処理結果に応じた応答メッセージを生成する。また、スレッド１５１は、生成した応答メッセージをメッセージ送信部１６０に送信する。
【００５２】
（メッセージ送信部１６０）
メッセージ送信部１６０は、メッセージ受信部１２０から受信したエラーメッセージ、および、スレッド１５１から受信した応答メッセージを、宛先のサブシステム３００へ送信する。
【００５３】
（回線状態管理部１７０）
回線状態管理部１７０は、処理順管理部１３０がメッセージレコードをメモリ領域１３１に追加、または、処理実行部１５０へ送信したとき、回線情報記憶部１１０を参照して、回線情報に含まれる滞留メッセージ数を確認する。前述したように、滞留メッセージ数は、同一の回線を使用する未処理のメッセージの数である。
【００５４】
滞留メッセージ数が閉塞閾値以上であり、かつ、回線が閉塞されていない場合、回線状態管理部１７０は回線を閉塞する。一方、滞留メッセージ数が閉塞解除閾値以下であり、かつ、回線が閉塞されている場合、回線状態管理部１７０は回線の閉塞を解除する。
【００５５】
回線状態管理部１７０が、回線を閉塞状態にしている間、メッセージ受信部１２０は、その回線を使用するメッセージを受信することを拒否する。これにより、滞留メッセージ数を一定数以下に抑制することができる。
【００５６】
（メッセージ受信フロー）
図６は、メッセージ受信部１２０が実行するメッセージ受信処理の流れを示す。
【００５７】
図６に示すように、メッセージ受信部１２０は、サブシステム３００からメッセージを受信したとき、使用する回線の回線ＩＤを特定する（Ｓ１０１）。
【００５８】
メッセージ受信部１２０は、回線情報記憶部１１０から、特定した回線ＩＤと対応する回線情報（図２参照）を参照する（Ｓ１０２）。
【００５９】
メッセージ受信部１２０は、参照した回線情報に基づいて、使用する回線がオープンであるかどうかを確認する（Ｓ１０３）。
【００６０】
使用する回線が障害または閉塞の状態である場合（Ｓ１０３でＮＯ）、メッセージ受信部１２０は、メッセージ送信部１６０に対して、エラーメッセージをメッセージの送信元へ送信するように指示する（Ｓ１０４）。また、回線がクローズである場合（Ｓ１０３でＮＯ）、メッセージ受信部１２０は、メッセージを破棄する。
【００６１】
一方、回線がオープンである場合（Ｓ１０３でＹＥＳ）、メッセージ受信部１２０は、回線情報記憶部１１０が記憶するタイムアウト時間およびメッセージ処理時間の情報を参照する。そして、メッセージ受信部１２０は、参照した情報に基づいて、処理期限を計算する（Ｓ１０５）。
【００６２】
ステップＳ１０４の後、メッセージ受信部１２０は、メッセージレコード（図３参照）を生成して、生成したメッセージレコードを処理順管理部１３０へ送信する（Ｓ１０６）。
【００６３】
（テーブル移動フロー）
図７は、処理順管理部１３０が実行するテーブル移動処理の流れを示す。処理順管理部１３０は、最優先テーブルを除くすべてのレコードテーブル（図５参照）に対して、それぞれ、以下で説明する処理を実行する。
【００６４】
図７に示すように、処理順管理部１３０は、メッセージ受信部１２０から受信したメッセージレコードに含まれる処理期限の情報に基づいて、最優先テーブル移動時刻およびテーブル移動時刻を計算する（Ｓ２０１）。
【００６５】
次に、処理順管理部１３０は、最優先テーブル以外のレコードテーブル（図５参照）に格納されたメッセージレコードを、ステップＳ２０１で計算した最優先テーブル移動時刻の順にソートする（Ｓ２０２）。
【００６６】
処理順管理部１３０は、現在時刻が、各レコードテーブルにおける、最優先テーブル移動時刻が最も早いメッセージレコードの最優先テーブル移動時刻になったかどうかを判定する（Ｓ２０３）。
【００６７】
現在時刻が、各レコードテーブルにおける、最優先テーブル移動時刻が最も早いメッセージレコードの最優先テーブル移動時刻になった場合（Ｓ２０３でＹＥＳ）、処理順管理部１３０は、当該メッセージレコードを最優先テーブルに移動させる(Ｓ２０４)。
【００６８】
現在時刻がメッセージレコードの最優先テーブル移動時刻になっていない場合（Ｓ２０３でＮＯ）、処理順管理部１３０は、現在時刻が該当メッセージレコードのテーブル移動時刻になったかどうかを判定する（Ｓ２０５）。
【００６９】
現在時刻がメッセージレコードのテーブル移動時刻になった場合（Ｓ２０５でＹＥＳ）、処理順管理部１３０は、メモリ領域１３１内において、優先度が１つ上のレコードテーブルへメッセージレコードを移動させる（Ｓ２０６）。
【００７０】
処理順管理部１３０は、最優先テーブルを除く全てのレコードテーブル（図１のテーブルＡ、Ｂ、Ｃ、・・・）について、上述したステップＳ２０１〜Ｓ２０７の処理を実行する。例えば、処理順管理部１３０は、優先度が最も高いレコードテーブル（図１のテーブルＡ）から順番に、上述したステップＳ２０１〜Ｓ２０７の処理を実行してもよい。この場合、処理順管理部１３０は、優先度が最も低いレコードテーブルの処理が終了した後、優先度が最も高いレコードテーブルについて、上述したステップＳ２０１〜Ｓ２０７の処理を再び実行する。
【００７１】
（回線閉塞／解除フロー）
図８は、回線状態管理部１７０が実行する回線閉塞／解除処理の流れを示す。回線状態管理部１７０は、全ての回線について、以下で説明する回線閉塞／解除処理を実行する。
【００７２】
図８に示すように、回線状態管理部１７０は、まず、回線情報記憶部１１０が記憶している回線情報（図２参照）を参照する（Ｓ３０１）。
【００７３】
回線状態管理部１７０は、回線閉塞／解除処理の対象である回線が閉塞されているか否かをまず判定する（Ｓ３０２）。
【００７４】
回線が閉塞されていない場合（Ｓ３０２でＮＯ）、回線状態管理部１７０は、続いて、回線の滞留メッセージ数は閉塞閾値以上であるか否かを判定する（Ｓ３０３）。
【００７５】
回線が閉塞されておらず、かつ、滞留メッセージ数が閉塞閾値以上である場合（Ｓ３０３でＹＥＳ）、回線状態管理部１７０は回線を閉塞する（Ｓ３０４）。
【００７６】
一方、回線が閉塞されている場合（Ｓ３０２でＹＥＳ）、回線状態管理部１７０は、続いて、回線の滞留メッセージ数が閉塞解除閾値以下であるか否かを判定する（Ｓ３０５）。
【００７７】
回線が閉塞されており、かつ、回線の滞留メッセージ数が閉塞解除閾値以下である場合（Ｓ３０６でＹＥＳ）、回線状態管理部１７０は回線を閉塞解除する（Ｓ３０６）。これにより、回線は閉塞される前の状態に戻る。
【００７８】
（変形例）
一変形例では、データ処理装置１００と同一ネットワーク上にあるサーバが、データ処理装置１００の処理実行部１５０に代わって、メッセージ処理を実行してもよい。
【００７９】
本変形例では、処理順管理部１３０は、メモリ領域１３１に格納した最優先テーブル（図４参照）から、処理期限が早い順にメッセージレコードを取り出して、ネットワークを介して、取り出したメッセージレコードをアプリケーションサーバへ送信する。
【００８０】
処理順管理部１３０からメッセージレコードを受信したアプリケーションサーバは、メッセージレコードに対する処理を実行することによって、応答メッセージを生成する。そして、アプリケーションサーバは、生成した応答メッセージをデータ処理装置１００へ送信する。
【００８１】
データ処理装置１００のメッセージ送信部１６０は、アプリケーションサーバから受信した応答メッセージを、宛先のサブシステム３００へ送信する。
【００８２】
本変形例の構成によれば、アプリケーションサーバが応答メッセージを生成するので、データ処理装置１００の処理実行部１５０は、応答メッセージを生成する必要がない。
【００８３】
（本実施形態の効果）
本実施形態の構成によれば、使用する回線の優先度に応じた順番で、メッセージを処理する。その一方で、使用する回線の優先度によらず、タイムアウト（処理期限）が近付いてきたメッセージを最優先で処理する。したがって、タイムアウトによる回線の障害が発生することを抑制しつつ、優先度の低い回線を使用するメッセージであっても確実に処理することができる。
【００８４】
〔実施形態２〕
他の実施形態として、最小構成を備えたデータ処理装置について説明する。
【００８５】
（データ処理装置２００）
図９に示すように、本実施形態に係わるデータ処理装置２００は、データ受信部２１０と、処理順管理部２２０と、処理実行部２３０とを備えている。
【００８６】
データ受信部２１０は、処理の対象であるデータを受信する。
【００８７】
処理順管理部２２０は、データが使用する回線の優先度に応じて、データの処理の順序を決定する。
【００８８】
処理実行部２３０は、前記データの処理期限に近づいたデータの処理を、データが使用する回線の優先度によらずに最優先する。
【００８９】
（本実施形態の効果）
本実施形態の構成によれば、基本的に、データが使用する回線の優先度に応じて、データの処理の順序を決定する。しかし、処理期限に近づいたデータの処理を、データが使用する回線の優先度によらずに最優先する。したがって、優先度の低い回線を使用するメッセージであっても、一定時間内に処理することができる。
【００９０】
〔実施形態３〕
（ハードウェア構成について）
本開示の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部又は全部は、例えば図１０に示すような情報処理装置９００とプログラムとの任意の組み合わせにより実現される。図１０は、各装置の各構成要素を実現する情報処理装置９００のハードウェア構成の一例を示すブロック図である。
【００９１】
図１０に示すように、情報処理装置９００は、一例として、以下のような構成を含む。
【００９２】
・ＣＰＵ（Central Processing Unit）９０１
・ＲＯＭ（Read Only Memory）９０２
・ＲＡＭ（Random Access Memory）９０３
・ＲＡＭ９０３にロードされるプログラム９０４
・プログラム９０４を格納する記憶装置９０５
・記録媒体９０６の読み書きを行うドライブ装置９０７
・通信ネットワーク９０９と接続する通信インタフェース９０８
・データの入出力を行う入出力インタフェース９１０
・各構成要素を接続するバス９１１
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム９０４をＣＰＵ９０１が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム９０４は、例えば、予め記憶装置９０５やＲＯＭ９０２に格納されており、必要に応じてＣＰＵ９０１がＲＡＭ９０３にロードして実行される。なお、プログラム９０４は、通信ネットワーク９０９を介してＣＰＵ９０１に供給されてもよいし、予め記録媒体９０６に格納されており、ドライブ装置９０７が当該プログラムを読み出してＣＰＵ９０１に供給してもよい。
【符号の説明】
【００９３】
１００    データ処理装置
２００    データ処理装置
２１０    データ受信部
２２０    処理順管理部
２３０    処理実行部
【図１】
2019145909.tif 000003
【図２】
2019145909.tif 000004
【図３】
2019145909.tif 000005
【図４】
2019145909.tif 000006
【図５】
2019145909.tif 000007
【図６】
2019145909.tif 000008
【図７】
2019145909.tif 000009
【図８】
2019145909.tif 000010
【図９】
2019145909.tif 000011
【図１０】
2019145909.tif 000012