以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としてのメッセージ交換装置1の構成を図1に示す。
図1において、メッセージ交換装置1は、アプリケーション連携メッセージ受信部11と、送受信制御部12と、アプリケーション連携メッセージ送信部13と、周期処理部14とを備える。
また、図1に示すように、メッセージ交換装置1は、外部の装置上に実現される1つ以上の連携元のアプリケーション81および1つ以上の連携先のアプリケーション91と、ネットワークを介して通信可能に接続されている。連携元のアプリケーション81および連携先のアプリケーション91は、互いにメッセージを送受信することにより連携する。連携するアプリケーション81およびアプリケーション91の組み合わせ(以下、アプリケーション連携とも記載する)は、あらかじめ定められている。なお、図1には、連携元のアプリケーション81および連携先のアプリケーション91をそれぞれ3つずつ示しているが、本発明のメッセージ交換装置がメッセージ送受信を中継するアプリケーション連携の数を限定するものではない。また、本発明のメッセージ交換装置がメッセージ送受信を中継する連携元のアプリケーションの数は連携先のアプリケーションの数に等しくなくても構わない。
ここで、メッセージ交換装置1は、図2に示すように、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成可能である。この場合、アプリケーション連携メッセージ受信部11およびアプリケーション連携メッセージ送信部13は、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、送受信制御部12および周期処理部14は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。
また、アプリケーション81およびアプリケーション91は、それぞれ、CPUと、RAMと、ROMと、記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置上に実現されている。メッセージ交換装置1を構成するコンピュータ装置は、アプリケーション81およびアプリケーション91が実現されている各コンピュータ装置と、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して通信可能に接続される。
なお、メッセージ交換装置1およびその各機能ブロック、ならびに、アプリケーション81および91のハードウェア構成は、上述の構成に限定されない。
次に、メッセージ交換装置1の各機能ブロックによって参照または更新される情報について説明する。
図1に示すように、各機能ブロックは、各アプリケーション連携の優先度、優先度毎の処理可能メッセージ数、優先度レベル、優先度毎の処理中メッセージ数、および、優先度毎の処理済メッセージ数をそれぞれ表す情報を、適宜参照または更新するよう構成される。
各アプリケーション連携の優先度は、その用途の重要度などに基づいてあらかじめ定められる。
優先度毎の処理可能メッセージ数は、その優先度が定められた1つ以上のアプリケーション連携において単位時間あたりに処理可能なメッセージの数を表す。優先度毎の処理可能メッセージ数は、その優先度が定められた各アプリケーション連携の性能要件等に基づいて、あらかじめ定められる。
優先度レベルは、自装置において現在適用中の優先度のレベルを表す。優先度レベルは、アプリケーション連携のために受信されるメッセージの送信許可を判定する際に基準として用いられる情報である。優先度レベルは、運用開始時には、所定の優先度(例えば、最も低い優先度)に初期化され、以降、他の機能ブロックによって適宜更新される。
優先度毎の処理中メッセージ数は、その優先度が定められた1つ以上のアプリケーション連携において処理中のメッセージの数の合計を表す。また、優先度毎の処理済メッセージ数は、その優先度が定められた1つ以上のアプリケーション連携において処理済のメッセージの数の合計を表す。優先度毎の処理中メッセージ数は、運用開始時には、所定の値(例えば、0)に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理済メッセージ数は、運用開始時および単位時間毎に、所定の値(例えば、0)に初期化され、以降、他の機能ブロックによって適宜更新される。
次に、メッセージ交換装置1の各機能ブロックについて説明する。
アプリケーション連携メッセージ受信部11は、アプリケーション81から、アプリケーション連携のためのメッセージを受信する。
送受信制御部12は、メッセージが受信されると、優先度レベルと、該メッセージに関わるアプリケーション連携の優先度と、該優先度の処理中メッセージ数および処理済メッセージ数と、該優先度の処理可能メッセージ数とに基づいて、優先度レベルを更新する。また、送受信制御部12は、これらの情報に基づいて、受信されたメッセージの送信を保留するか許可するかを判定する。
例えば、送受信制御部12は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上であれば送信を許可すると判定し、優先度レベルより低ければそのメッセージの送信を保留すると判定してもよい。
また、例えば、送受信制御部12は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上である場合、次のようにして優先度レベルを更新するか否かを判定してもよい。例えば、この場合、送受信制御部12は、その優先度の処理済メッセージ数および処理中メッセージ数の合計が、その優先度の処理可能メッセージ数を超えたと判定した場合に、優先度レベルを、その優先度に更新してもよい。具体的には、送受信制御部12は、その優先度の処理済メッセージ数および処理中メッセージ数の合計に1を加算した合計値が、その優先度の処理可能メッセージ数に等しい場合、合計が処理可能メッセージ数を超えたと判定してもよい。
なお、送受信制御部12は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上の場合であっても、次のケースでは、そのメッセージの送信を保留すると判定してもよい。そのケースとは、該当する優先度が所定の低優先度条件を満たし、かつ、その優先度の処理中メッセージ数および処理済メッセージ数の合計が既に処理可能メッセージ数を超えている場合などである。所定の低優先度条件とは、例えば、優先度が、最も低い優先度であることであってもよい。また、処理中メッセージ数および処理済メッセージ数の合計が既に処理可能メッセージ数を超えている場合とは、処理中メッセージ数および処理済メッセージ数の合計に1を加算した合計値が、その優先度の処理可能メッセージ数より大きい場合であってもよい。
また、送受信制御部12は、受信されたメッセージについて送信を許可すると判定した場合、そのメッセージに関わるアプリケーション連携の優先度について処理中メッセージ数を、1を加算した値に更新する。また、送受信制御部12は、後述のアプリケーション連携メッセージ送信部13によってメッセージの送信が完了すると、送信完了したメッセージに関わるアプリケーション連携の優先度について処理中メッセージ数および処理済メッセージ数を更新する。具体的には、送受信制御部12は、その優先度の処理中メッセージ数から1を減算し、処理済メッセージ数に1を加算すればよい。
アプリケーション連携メッセージ送信部13は、送受信制御部12によって送信を許可されたメッセージを、そのメッセージの連携先のアプリケーション91に送信する。
周期処理部14は、所定のタイミング毎に、各優先度の処理済メッセージ数の初期化、優先度レベルの更新、および、保留解除の各処理を行う。具体的には、周期処理部14は、優先度毎の処理済メッセージ数を所定の値(例えば、0)に初期化する。また、周期処理部14は、優先度レベルを、各優先度の処理中メッセージ数および処理可能メッセージ数に基づいて更新する。具体的には、周期処理部14は、優先度レベルを、処理中メッセージ数が処理可能メッセージ数以上となっている優先度に更新してもよい。
また、周期処理部14は、新たな優先度レベルおよび前回の優先度レベルに基づいて、保留解除の対象となるアプリケーション連携を決定する。具体的には、周期処理部14は、新たな優先度レベルが前回の優先度レベルより低い場合に、新たな優先度レベル以上で前回の優先度レベルより低い各優先度が定められたアプリケーション連携を、保留解除の対象として決定してもよい。例えば、周期処理部14は、前回の優先度レベルより1段階低い優先度から始めて優先度の高い順に、その優先度が定められたアプリケーション連携に関わるメッセージの保留を解除してもよい。
以上のように構成されたメッセージ交換装置1の動作について、図面を参照して説明する。なお、アプリケーション81およびアプリケーション91の組み合わせである各アプリケーション連携については、あらかじめ優先度が定められているものとする。また、各優先度について、単位時間における処理可能メッセージ数があらかじめ定められているものとする。また、単位時間の長さは、あらかじめ定められているものとする。また、優先度レベルは所定の優先度(例えば最も低い優先度)に初期化されているものとする。また、処理中メッセージ数および処理済メッセージ数は、所定の値(例えば0)に初期化されているものとする。
まず、メッセージ交換装置1が、アプリケーション連携のためのメッセージを受信する動作を、図3に示す。図3では、まず、アプリケーション連携メッセージ受信部11は、アプリケーション81から、アプリケーション連携用のメッセージを受信する(ステップS1)。
次に、送受信制御部12は、ステップS1で受信されたメッセージの送信を許可するか保留するかの判定と、優先度レベルを更新するか否かの判定とを行う。そして、送受信制御部12は、優先度レベルを更新すると判定した場合、優先度レベルを更新する(ステップS2)。前述のように、送受信制御部12は、優先度レベルと、そのメッセージに関わるアプリケーション連携の優先度と、その優先度の処理中メッセージ数および単位時間での処理済メッセージ数と、その優先度の単位時間あたりの処理可能メッセージ数とに基づいて、これらの判定処理を行う。
次に、送受信制御部12は、メッセージの送信を保留すると判定した場合(ステップS3でNo)、そのメッセージを保留しておく(ステップS4)。
次に、送受信制御部12は、メッセージの送信を許可すると判定した場合(ステップS3でYes)、そのメッセージに関わるアプリケーション連携の優先度について、処理中メッセージ数を更新する(ステップS5)。
前述のように、送受信制御部12は、その優先度についての処理中メッセージ数に1を加算すればよい。
次に、送受信制御部12は、そのメッセージを送信するよう、アプリケーション連携メッセージ送信部13に通知する(ステップS6)。
以上で、メッセージ交換装置1は、アプリケーション連携のためのメッセージの受信動作を終了する。
次に、メッセージ交換装置1が、アプリケーション連携のためのメッセージを送信する動作を、図4に示す。
図4では、まず、アプリケーション連携メッセージ送信部13は、図3のステップS6で通知されたメッセージを、その連携先のアプリケーション91に対して送信する(ステップS11)。
次に、送信制御部14は、ステップS11で送信されたメッセージに関わるアプリケーション連携の優先度について、処理中メッセージ数および処理済メッセージ数を更新する(ステップS12)。
前述のように、送受信制御部12は、その優先度についての処理済メッセージ数に1を加算し、処理中メッセージ数から1を減算すればよい。
以上で、メッセージ交換装置1は、アプリケーション連携のためのメッセージを送信する動作を終了する。
次に、メッセージ交換装置1が、単位時間毎に行う周期動作を、図5に示す。
図5では、まず、周期処理部14は、各優先度についての処理済メッセージ数を初期化するとともに、優先度レベルを前回の優先度レベルとして退避する(ステップS21)。
次に、周期処理部14は、優先度レベルを、処理中メッセージ数および処理可能メッセージ数に基づいて更新する(ステップS22)。例えば、周期処理部14は、処理中メッセージ数が処理可能メッセージ数以上となっている優先度のうち最も高い優先度を、新たな優先度レベルとして採用するとよい。また、周期処理部14は、処理中メッセージ数が処理可能メッセージ数以上となっている優先度がなければ、優先度レベルを、所定の優先度(例えば最も低い優先度など)に更新すればよい。
次に、周期処理部14は、新たな優先度レベルが、退避した前回の優先度レベルより低い場合(ステップS23でYes)、新たな優先度レベル以上で前回の優先度レベルより低い各優先度のアプリケーション連携について、メッセージの保留を解除する(ステップS24)。
具体的には、周期処理部14は、前回の優先度レベルより1段階低い優先度から始めて優先度の高い順に新たな優先度レベルまで、各優先度に属するアプリケーション連携において保留中のメッセージの保留を順次解除してもよい。そして、メッセージ交換装置1は、保留が解除されたメッセージについて、図3に示した動作を再度実行すればよい。
以上で、メッセージ交換装置1は、単位時間毎に行う周期動作を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としてのメッセージ交換装置は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合であっても、全体のサービスレベルを低下させずに、アプリケーション連携の優先度に応じてより効率的にメッセージ処理を行うことができる。
その理由は、第1の実施の形態では、アプリケーション連携毎に優先度を定めておき、優先度毎に単位時間あたりの処理可能メッセージ数を定めておいた状態で、アプリケーション連携メッセージ受信部が、連携元のアプリケーションからメッセージを受信すると、送受信制御部が、次のように動作するからである。すなわち、送受信制御部は、適用中の優先度レベルと、そのメッセージに関わるアプリケーション連携の優先度と、その優先度の処理中メッセージ数および処理済メッセージ数と、その優先度の単位時間あたりの処理可能メッセージ数とに基づいて、そのメッセージの送信を許可するか保留するかの判定を行うとともに、優先度レベルを更新するからである。そして、アプリケーション連携メッセージ送信部が、送信を許可されたメッセージを、その連携先のアプリケーションに送信するからである。そして、周期処理部が、単位時間毎の所定のタイミングで、各優先度の処理済メッセージ数を初期化し、処理中メッセージ数が処理可能メッセージ数を超えている優先度を新たな優先度レベルとして設定するからである。また、周期処理部は、前回の優先度レベルより低く今回の優先度レベル以上の優先度レベルが定められた各アプリケーション連携を保留解除の対象として決定し、決定したアプリケーション連携において保留中となっていたメッセージについて保留を解除するからである。
このようにして、本実施の形態は、優先度レベルより低い優先度のアプリケーション連携の新たなメッセージ処理を保留して、優先度レベル以上のアプリケーション連携のメッセージを優先的に処理することになる。
これにより、本実施の形態は、あるアプリケーション連携で大量のメッセージを受信した場合に、そのアプリケーション連携の優先度の処理可能メッセージ数を超えていなければ、優先度レベルを保持したままそのアプリケーション連携のメッセージ処理を継続できる。また、本実施の形態は、そのアプリケーション連携の優先度の処理可能メッセージ数を超える場合でも、優先度レベルをそのアプリケーション連携の優先度に更新することにより、より低い優先度の他のアプリケーション連携におけるメッセージ処理を保留して、そのアプリケーション連携のメッセージ処理を優先的に継続することができる。また、そのような場合に、本実施の形態は、優先度レベル以上の他のアプリケーション連携についても、メッセージ処理を継続することができる。
そして、本実施の形態は、単位時間ごとに優先度レベルの見直しを行う。このため、優先度の高いアプリケーション連携におけるメッセージ処理が進んで優先度レベルが下がった場合に、メッセージ処理が保留されていたアプリケーション連携の保留を適宜解除してメッセージ処理を再開することができる。この結果、滞留しているメッセージ数を早期に低減することができる。
なお、本実施の形態において、優先度毎の処理可能メッセージ数が、単位時間あたりについて定められたものであるものとして説明した。これに伴い、送受信制御部は、送信の許可判定の際に、該当する優先度における処理中メッセージ数および単位時間での処理済メッセージと、その優先度に定められた単位時間あたりの処理可能メッセージ数とを比較するものとして説明した。このような構成の代わりに、処理可能メッセージ数として、任意の時点において各優先度で処理可能なメッセージ数を定めることも考えられる。この場合、本実施の形態における送受信制御部は、送信の許可判定の際に、該当する優先度における処理中メッセージ数を、その優先度に定められた処理可能メッセージ数と比較すればよい。この場合、本実施の形態における各機能ブロックは、必ずしも各優先度の処理済メッセージ数を参照または更新しなくてもよい。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としてのメッセージ交換装置2の構成を図6に示す。
図6において、メッセージ交換装置2は、送信元サーバ80(80a〜80c)および送信先サーバ90(90a〜90c)と、ネットワークを介して通信可能に接続されている。なお、図6には、送信元サーバ80および送信先サーバ90をそれぞれ3つずつ示しているが、本発明のメッセージ交換装置が接続される送信元サーバおよび送信先サーバの数を限定するものではない。また、本発明のメッセージ交換装置が接続される送信元サーバの数は送信先サーバの数に等しくなくても構わない。
送信元サーバ80は、連携元のアプリケーション81を有し、連携先のアプリケーション91宛てのメッセージを、メッセージ交換装置2を介して送信する。本実施の形態では、送信元サーバ80aは、アプリケーション81aを有し、送信元サーバ80bは、アプリケーション81bを有し、送信元サーバ80cは、アプリケーション81cを有するものとする。
送信先サーバ90は、連携先のアプリケーション91を有し、連携元のアプリケーション81からのメッセージを、メッセージ交換装置2を介して受信する。本実施の形態では、送信先サーバ90aは、アプリケーション91aを有し、送信先サーバ90bは、アプリケーション91bを有し、送信先サーバ90cは、アプリケーション91cを有するものとする。
また、本実施の形態では、アプリケーション81aおよび91aが、メッセージ交換装置2を介して互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Aと呼ぶことにする。同様に、アプリケーション81bおよび91bが互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Bと呼ぶことにする。また、アプリケーション81cおよび91cが互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Cと呼ぶことにする。
また、本実施の形態では、各アプリケーション81および各アプリケーション91が外部とのメッセージ送受信で使用するプロトコルやメッセージ形式は、それぞれが採用する形式であり、必ずしも他と同一ではないものとして説明する。ただし、各アプリケーション81および各アプリケーション91が採用するプロトコルやメッセージ形式は、必ずしも他と異なるものでなくてもよい。
次に、メッセージ交換装置2の機能ブロック構成について説明する。
図6において、メッセージ交換装置2は、アプリケーション連携メッセージ受信部21(21a〜21c)と、送受信制御部22と、アプリケーション連携メッセージ送信部23(23a〜23c)と、周期処理部24とを備える。また、送受信制御部22は、共通メッセージ転送部221と、共通メッセージID管理部222と、優先度レベル管理部223とを含む。また、これらの各機能ブロックは、図6に示すように、アプリケーション連携情報管理テーブル201と、優先度パラメータ管理テーブル202と、優先度状況管理テーブル203とを適宜参照または更新しながら動作する。
ここで、メッセージ交換装置2およびその各機能ブロックは、本発明の第1の実施の形態と同様に、図2に示したハードウェア要素によって構成可能である。また、アプリケーション連携情報管理テーブル201と、優先度パラメータ管理テーブル202と、優先度状況管理テーブル203とは、例えば、RAM1002、ROM1003、または、記憶装置1004等に格納される。なお、メッセージ交換装置2およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
アプリケーション連携情報管理テーブル201には、アプリケーション連携を表す情報と、そのアプリケーション連携に定められた優先度とが格納される。本実施の形態では、アプリケーション連携を表す情報は、そのアプリケーション連携を識別する情報(例えば名称)と、メッセージ送受信を担当するアプリケーション連携メッセージ受信部21およびアプリケーション連携メッセージ送信部23を表す情報とによって構成される。また、本実施の形態では、優先度としては、「高」、「中」、「低」のいずれかが定められるようになっている。
ここで、アプリケーション連携情報管理テーブル201の一例を図7に示す。例えば、図7では、アプリケーション連携Aについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部21aおよびアプリケーション連携メッセージ送信部23aであり、優先度「低」が定められている。また、アプリケーション連携Bについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部21bおよびアプリケーション連携メッセージ送信部23bであり、優先度「中」が定められている。また、アプリケーション連携Cについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部21cおよびアプリケーション連携メッセージ送信部23cであり、優先度「高」が定められている。
優先度パラメータ管理テーブル202には、優先度毎の単位時間あたりの処理可能メッセージ数が格納される。優先度パラメータ管理テーブル202の一例を図8に示す。例えば、図8では、優先度「高」については、単位時間あたりの処理可能メッセージ数として「30」が定められている。
優先度状況管理テーブル203には、優先度レベルと、優先度毎の処理中メッセージ数および処理済メッセージ数とが格納される。優先度状況管理テーブル203の一例を図9に示す。図9では、現在適用中の優先度レベルは「低」であり、例えば、優先度「高」の処理中メッセージ数は「13」であり、処理済メッセージ数は「15」である。なお、本発明の第1の実施の形態と同様に、優先度レベルは、運用開始時には、所定の優先度(例えば、最も低い優先度)に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理中メッセージ数は、運用開始時には、所定の値(例えば、0)に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理済メッセージ数は、運用開始時および単位時間毎に、所定の値(例えば、0)に初期化され、以降、他の機能ブロックによって適宜更新される。
アプリケーション連携メッセージ受信部21は、担当するアプリケーション81を有する送信元サーバ80から、アプリケーション連携のためのメッセージを受信する。受信されるメッセージは、連携元のアプリケーション81がそれぞれ採用する形式である。例えば、アプリケーション連携メッセージ受信部21aは、送信元サーバ80aから、送信先サーバ90a宛てのアプリケーション連携Aのための形式a1のメッセージを受信する。また、アプリケーション連携メッセージ受信部21bは、送信元サーバ80bから、送信先サーバ90b宛てのアプリケーション連携Bのための形式b1のメッセージを受信する。アプリケーション連携メッセージ受信部21cは、送信元サーバ80cから、送信先サーバ90c宛てのアプリケーション連携Cのための形式c1のメッセージを受信する。
また、アプリケーション連携メッセージ受信部21は、アプリケーション81から受信したメッセージについて共通メッセージIDの生成を、後述の共通メッセージID管理部222に対して要求する。このとき、アプリケーション連携メッセージ受信部21は、そのメッセージに関わるアプリケーション連携を識別する情報を指定して生成要求を行う。共通メッセージIDは、共通メッセージID管理部222により、該当するメッセージ送信に対する判定結果が許可であった場合に生成される。
また、アプリケーション連携メッセージ受信部21は、判定結果が許可で共通メッセージIDが生成されると、アプリケーション81から受信したメッセージを共通形式のメッセージ(共通メッセージ)に変換し、後述の共通メッセージ転送部221にその転送を要求する。この後、アプリケーション連携メッセージ受信部21は、アプリケーション81に対して処理結果として「正常」を返してもよい。
また、アプリケーション連携メッセージ受信部21は、判定結果が保留の場合、メッセージの処理を保留する。また、アプリケーション連携メッセージ受信部21は、後述の周期処理部24から保留解除通知を受信すると、保留していたメッセージの処理を再開する。
アプリケーション連携メッセージ送信部23は、後述の共通メッセージ転送部221から共通メッセージを受信した場合、メッセージ形式を、連携先のアプリケーション91が採用する形式に変換し、送信先サーバ90に送信する。例えば、アプリケーション連携メッセージ送信部23aは、共通メッセージを、連携先のアプリケーション91aが採用する形式a2に変換し、送信先サーバ90aに送信する。また、アプリケーション連携メッセージ送信部23bは、共通メッセージを、連携先のアプリケーション91bが採用する形式b2に変換し、送信先サーバ90bに送信する。また、アプリケーション連携メッセージ送信部23cは、共通メッセージを、連携先のアプリケーション91cが採用する形式c2に変換し、送信先サーバ90cに送信する。そして、アプリケーション連携メッセージ送信部23は、後述の共通メッセージID管理部222に対して、メッセージ処理完了を通知する。なお、アプリケーション連携メッセージ送信部23は、担当するアプリケーション連携の識別情報を指定して処理完了通知を行えばよい。
共通メッセージ転送部221は、アプリケーション連携メッセージ受信部21から渡された共通メッセージに共通メッセージIDを割り当て、そのアプリケーション連携を担当するアプリケーション連携メッセージ送信部23に転送する。例えば、共通メッセージ転送部221は、アプリケーション連携Aを担当するアプリケーション連携メッセージ受信部21aから渡された共通メッセージを、同じアプリケーション連携Aを担当するアプリケーション連携メッセージ送信部23aに転送する。
例えば、共通メッセージ転送部221は、Enterprise Service BusにおけるNormalized Message Routerに相当し、メッセージを転送するメッセージバスとして機能する。なお、共通メッセージIDはUUID(Universally Unique IDentifier)などのように、IDの一意性を確保できるものを使用していれば、どのような形式であってもよい。
送受信制御部22は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上であれば送信を許可すると判定し、優先度レベルより低ければそのメッセージの送信を保留すると判定する。
また、送受信制御部22は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上である場合、次のようにして優先度レベルを更新するか否かを判定する。この場合、送受信制御部22は、その優先度の処理済メッセージ数および処理中メッセージ数の合計に1を加算した合計値が、その優先度の処理可能メッセージ数に等しい場合、優先度レベルを、その優先度に更新する。
なお、送受信制御部22は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上の場合であっても、次のケースでは、そのメッセージの送信を保留すると判定する。そのケースとは、上述の合計値がその優先度の処理可能メッセージ数より大きく、かつ、その優先度が所定の低優先度条件を満たす(例えば、最も低い「低」である)の場合である。
なお、送受信制御部22は、例えば、共通メッセージ転送部221、共通メッセージID管理部222、および、優先度レベル管理部223を有することにより、上述した機能を実現することができる。
この場合、共通メッセージID管理部222は、アプリケーション連携メッセージ受信部21から、共通メッセージIDの生成要求を、アプリケーション連携を識別する情報と共に受け取る。そして、共通メッセージID管理部222は、そのアプリケーション連携に定められた優先度についての共通メッセージIDの生成可否判定を、優先度レベル管理部223に対して要求する。優先度レベル管理部223の判定結果が許可の場合、共通メッセージID管理部222は、共通メッセージIDを生成し、呼び元のアプリケーション連携メッセージ受信部21に対して判定結果として「許可」を返す。また、優先度レベル管理部223の判定結果が許可の場合、共通メッセージID管理部222は、そのアプリケーション連携についての優先度の処理中メッセージ数を1加算し、優先度状況管理テーブル203を更新する。なお、共通メッセージID管理部222は、優先度レベル管理部223の判定結果が保留の場合は、呼び元のアプリケーション連携メッセージ受信部21に対して判定結果として「保留」を返す。
また、共通メッセージID管理部222は、アプリケーション連携メッセージ送信部23からメッセージ処理完了の通知を受け取ると、そのアプリケーション連携の優先度の処理中メッセージ数を1減算し、処理済メッセージ数を1加算して、優先度状況管理テーブル203を更新する。
優先度レベル管理部223は、共通メッセージID管理部222から、該当する優先度についての共通メッセージIDの生成可否判定の要求を受け取ると、判定対象の優先度に関して共通メッセージIDの生成可否判定を行い、判定結果(許可/保留)を返す。
具体的には、優先度レベル管理部223は、判定対象の優先度が優先度レベルより低い場合、判定結果として「保留」を返す。
また、優先度レベル管理部223は、判定対象の優先度が優先度レベル以上である場合、判定対象の優先度についての「処理中メッセージ数+処理済メッセージ数+1」を合計値として算出する。そして、優先度レベル管理部223は、合計値が判定対象の優先度の処理可能メッセージ数に等しい場合、優先度状況管理テーブル203の優先度レベルを、判定対象の優先度に更新するとともに、判定結果として「許可」を返す。また、優先度レベル管理部223は、合計値が判定対象の優先度の処理可能メッセージ数より小さい場合、優先度レベルは更新せずに、判定結果として「許可」を返す。また、優先度レベル管理部223は、合計値が判定対象の優先度の処理可能メッセージ数より大きい場合でも、判定対象の優先度が「低」でなければ、優先度レベルは更新せずに、判定結果として「許可」を返す。また、この場合、優先度レベル管理部223は、合計値が判定対象の優先度の処理可能メッセージ数より大きく、かつ、判定対象の優先度が「低」の場合は、判定結果として「保留」を返す。
周期処理部24は、単位時間毎の所定のタイミングで周期動作を実行する。具体的には、周期処理部24は、各優先度の処理済メッセージ数をクリアするとともに、現在の優先度レベルを前回の優先度レベルとして退避する。また、周期処理部24は、優先度レベルに初期値として「低」を設定し、最も高い優先度(高)から順番にその優先度の処理中メッセージ数を処理可能メッセージ数と比較していく。そして、周期処理部24は、優先度レベルを、処理中メッセージ数が処理可能メッセージ数以上の優先度のうち最も高いものに更新する。
また、周期処理部24は、前回の優先度レベルと新しい優先度レベルとを比較して、前回の優先度レベルの方が高い場合、次のようにしてメッセージの保留解除を通知する。詳細には、周期処理部24は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度の高い順に、その優先度のアプリケーション連携を担当するアプリケーション連携メッセージ受信部21に対して、保留解除を通知する。
以上のように構成されたメッセージ交換装置2の動作について、図面を参照して説明する。
なお、以下の動作では、各アプリケーション連携に関して、それぞれの用途の重要度等に基づいてあらかじめ優先度(高/中/低)が定められ、図7に示したように、アプリケーション連携情報管理テーブル201に登録されているものとする。また、優先度毎に、その優先度が定められた各アプリケーション連携の性能要件等に基づいて、あらかじめ単位時間あたりの処理可能メッセージ数が定められ、図8に示したように、優先度パラメータ管理テーブル202に登録されているものとする。また、優先度レベル見直しの周期として使用される単位時間は、性能要件等に基づいてあらかじめが定められているものとする。例えば、性能要件が1秒間あたりのメッセージ処理数であれば、単位時間は1秒に定められ、性能要件が10秒間あたりのメッセージ処理数であれば、単位時間は10秒に定められていてもよい。
まず、メッセージ交換装置2が、アプリケーション連携のためのメッセージを受信する動作を、図10に示す。
図10では、まず、アプリケーション連携メッセージ受信部21は、送信元サーバ80のアプリケーション81から、該アプリケーション81が採用する形式のメッセージを受信する(ステップA1)。
次に、アプリケーション連携メッセージ受信部21は、共通メッセージID管理部222に、ステップA1で受信されたメッセージに割り当てるための共通メッセージIDの生成を要求する(ステップA2)。このとき、アプリケーション連携メッセージ受信部21は、このメッセージに関わるアプリケーション連携の識別情報を指定して生成要求を行う。
次に、共通メッセージID管理部222は、通知されたアプリケーション連携の識別情報に基づいて、その優先度をアプリケーション連携情報管理テーブル201から取得する。そして、共通メッセージID管理部222は、取得した優先度を指定して、優先度レベル管理部223に対して共通メッセージIDの生成可否判定を要求する(ステップA3)。
次に、優先度レベル管理部223は、優先度状況管理テーブル203から優先度レベルを取得し、取得した優先度レベルが、ステップA3で要求された際に指定されたアプリケーション連携の優先度より小さいか否かを判断する(ステップA4)。
ここで、アプリケーション連携の優先度が優先度レベルより小さい場合(ステップA4でYes)、優先度レベル管理部223は、このメッセージに対する共通メッセージIDの生成を保留すると判定する(ステップA11)。
一方、アプリケーション連携の優先度が優先度レベル以上である場合(ステップA4でNo)、優先度レベル管理部223は、優先度状況管理テーブル203から、該当するアプリケーション連携の優先度について処理中メッセージ数および処理済メッセージ数を取得する。そして、優先度レベル管理部223は、その優先度について「処理中メッセージ数+処理済メッセージ数+1」を合計値として算出する(ステップA5)。
次に、優先度レベル管理部223は、優先度パラメータ管理テーブル202から、該当するアプリケーション連携の優先度の処理可能メッセージ数を取得し、取得した処理可能メッセージ数およびステップ5で算出した合計値が等しいか否かを判断する(ステップA6)。
ここで、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数に等しい場合(ステップA6でYes)、優先度レベル管理部223は、優先度状況管理テーブル203における優先度レベルを、そのアプリケーション連携の優先度に更新する(ステップA7)。
そして、優先度レベル管理部223は、このメッセージに対する共通メッセージIDの生成を許可すると判定する(ステップA10)。
一方、ステップA6において、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数に等しくないと判断された場合(ステップA6でNo)、優先度レベル管理部223は、上述の合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数より小さいか否かを判断する(ステップA8)。
ここで、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数より小さい場合(ステップA8でYes)、優先度レベル管理部223は、ステップA10を実行し、このメッセージに対する共通メッセージIDの生成を許可すると判定する。
一方、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数以上である場合(ステップA8でNo)、優先度レベル管理部223は、そのアプリケーション連携の優先度が「低」でないか否かを判断する(ステップA9)。
ここで、そのアプリケーション連携の優先度が「低」でない場合(ステップA9でYes)、優先度レベル管理部223は、ステップA10を実行し、このメッセージに対する共通メッセージIDの生成を許可すると判定する。
一方、そのアプリケーション連携の優先度が「低」である場合(ステップA9でNo)、優先度レベル管理部223は、ステップA11を実行し、このメッセージに対する共通メッセージIDの生成を保留すると判定する。
次に、ステップA10で許可と判定された場合(ステップA12でYes)、共通メッセージID管理部222は、優先度状況管理テーブル203において、該当するアプリケーション連携の優先度についての処理中メッセージ数を1加算する。そして、共通メッセージID管理部222は、共通メッセージIDを生成し、生成した共通メッセージIDおよび判定結果として「許可」を表す情報を、アプリケーション連携メッセージ受信部21に対して通知する(ステップA13)。
そして、アプリケーション連携メッセージ受信部21は、ステップA1で受信したメッセージを共通メッセージに変換し、変換した共通メッセージの転送を、共通メッセージ転送部221に対して要求する(ステップA14)。そして、アプリケーション連携メッセージ受信部21は、アプリケーション81に対して処理結果として「正常」を表す情報を通知して、処理を終了する。
また、ステップA11で保留と判定された場合(ステップA12でNo)、アプリケーション連携メッセージ受信部21は、周期処理部24から保留解除通知を受信するまで、アプリケーション81から受信したメッセージの処理を保留する(ステップA15)。
以上で、メッセージ交換装置2は、アプリケーション連携のためのメッセージを受信する動作を終了する。
次に、メッセージ交換装置2が、アプリケーション連携のためのメッセージを送信する動作を、図11に示す。
図11では、まず、アプリケーション連携メッセージ送信部23は、共通メッセージ転送部221から、共通メッセージを受信する(ステップB1)。
次に、アプリケーション連携メッセージ送信部23は、共通メッセージを、連携先のアプリケーション91が採用する形式に変換する。そして、アプリケーション連携メッセージ送信部23は、変換したメッセージを、そのアプリケーション91を有する送信先サーバ5に対して送信する(ステップB2)。
次に、アプリケーション連携メッセージ送信部23は、共通メッセージID管理部222に対して、メッセージ処理完了を通知する(ステップB3)。このとき、アプリケーション連携メッセージ送信部23は、担当するアプリケーション連携の識別情報を指定して通知を行う。
次に、共通メッセージID管理部222は、アプリケーション連携メッセージ送信部23から通知されたアプリケーション連携の識別情報に基づいて、その優先度をアプリケーション連携情報管理テーブル201から取得する。そして、共通メッセージID管理部222は、その優先度について優先度状況管理テーブル203に格納された処理中メッセージ数を1減算し、処理済メッセージ数を1加算する(ステップB4)。
以上で、メッセージ交換装置2は、アプリケーション連携のためのメッセージを送信する動作を終了する。
次に、メッセージ交換装置2が、優先度レベルを見直すための周期動作を、図12〜図13に示す。なお、以下の動作は、タイマー処理など既知の手法により周期処理部24が単位時間毎に起動されることにより実行される。
図12では、まず、周期処理部24は、優先度状況管理テーブル203において、各優先度の処理済メッセージ数を0に初期化する。また、周期処理部24は、優先度状況管理テーブル203に格納された優先度レベルを、前回の優先度レベルとして退避する(ステップC1)。
次に、周期処理部24は、今回の優先度レベルに、初期値として「低」を設定する(ステップC2)。
次に、周期処理部24は、処理対象優先度に、最も高い優先度「高」を設定する(ステップC3)。なお、処理対象優先度とは、以降の処理において対象となる優先度をいうものとする。
次に、周期処理部24は、処理対象優先度が「低」より大きいか否かを判断する(ステップC4)。
ここで、処理対象優先度が「低」より大きい場合(ステップC4でYes)、周期処理部24は、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数以上であるか否かを判断する(ステップC5)。
ここで、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数以上である場合(ステップC5でYes)、周期処理部24は、今回の優先度レベルに、処理対象優先度を設定する(ステップC7)。そして、メッセージ交換装置2の動作は、後述のステップC8以降の処理に移る。
一方、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数より小さい場合、周期処理部24は、処理対象優先度に一段低い優先度を設定して(ステップC6)、ステップC4からの動作を繰り返す。
また、ステップC4において、処理対象優先度が「低」である場合(ステップC4でNo)、メッセージ交換装置2の動作は、今回の優先度レベルが初期値「低」に設定されたまま、後述のステップC8以降の処理に移る。これは、優先度「高」「中」において処理中メッセージ数が処理可能メッセージ数より小さかった場合である。
次に、図13のステップC8において、周期処理部24は、優先度状況管理テーブル203の優先度レベルを、今回の優先度レベルに更新する(ステップC8)。
次に、周期処理部24は、前回の優先度レベルが、更新された新たな優先度レベルより大きいか否かを判断する(ステップC9)。
ここで、前回の優先度レベルが、新たな優先度レベル以下である場合(ステップC9でNo)、メッセージ交換装置2は、周期動作を終了する。
一方、前回の優先度レベルが、新たな優先度レベルより大きい場合(ステップC9でYes)、周期処理部24は、処理対象優先度に、前回の優先度レベルより一段低い優先度を設定する(ステップC10)。
次に、周期処理部24は、アプリケーション連携情報管理テーブル201において優先度が処理対象優先度と一致する各アプリケーション連携について、そのアプリケーション連携を担当するアプリケーション連携メッセージ受信部21に対して、保留解除を通知する(ステップC11)。
次に、保留解除を通知されたアプリケーション連携メッセージ受信部21は、該当するアプリケーション連携について保留していたメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部21は、この周期動作とは非同期に、保留していたメッセージについて図10に示した動作を行う(ステップC12)。
次に、周期処理部24は、処理対象優先度が「低」より大きいか否かを判断する(ステップC13)。
ここで、処理対象優先度が「低」の場合(ステップC13でNo)、メッセージ交換装置2は、周期動作を終了する。
一方、処理対象優先度が「低」より大きい場合(ステップC13でYes)、周期処理部24は、処理対象優先度に一段低い優先度を設定して(ステップC14)、ステップC11からの処理を繰り返す。
以上で、メッセージ交換装置2は、優先度レベルを見直すための周期動作を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としてのメッセージ交換装置は、あるアプリケーション連携において一時的に大量のメッセージを受信した場合に、全体のサービスレベルを低下させることなく、さらに効率的なメッセージ処理を行うことができる。
その理由は、送受信制御部が、送信対象となるメッセージの関わるアプリケーション連携の優先度が優先度レベル以上である場合、その優先度について「処理中メッセージ数+処理済メッセージ数+1」を合計値として算出するからである。さらに、送受信制御部は、算出した合計値がその優先度の処理可能メッセージ数に達している場合に、優先度レベルを、そのアプリケーション連携の優先度に更新するからである。また、送受信制御部が、優先度レベルより低い優先度のアプリケーション連携の新たなメッセージ処理を保留するが、優先度レベル以上のアプリケーション連携に関しては、継続して新たなメッセージの処理を許可するためである。
これにより、本実施の形態は、あるアプリケーション連携で大量のメッセージを受信しても、そのアプリケーション連携の優先度が優先度レベル以上であれば、その優先度の処理可能メッセージ数を超えないうちは、優先度レベルを維持したまま、優先度レベル以上の各アプリケーション連携のメッセージ処理を継続できる。そして、本実施の形態は、そのアプリケーション連携で大量のメッセージの受信が続き、その優先度の処理可能メッセージ数を超えた場合には、優先度レベルをそのアプリケーション連携の優先度に切り替えることになる。これにより、本実施の形態は、そのアプリケーション連携より低い優先度のアプリケーション連携に関わるメッセージ処理を保留して、そのアプリケーション連携のメッセージ処理を優先することができる。しかも、このような場合であっても、本実施の形態は、そのアプリケーション連携より高い優先度のアプリケーション連携のメッセージ処理については、継続することができる。
また、本実施の形態は、ある優先度のアプリケーション連携において処理中メッセージ数が増えるような状況の場合、その優先度以上のアプリケーション連携のメッセージ変換の処理の優先を継続することができる。
その理由は、周期処理部が、単位時間毎に、優先度の処理中メッセージ数が処理可能メッセージ数以上になっているかをチェックし、その条件を満たす場合は、優先度レベルを該当する優先度に更新するためである。
また、本実施の形態は、優先度の高いメッセージの処理が進んで優先度レベルが下がった場合に、メッセージ処理を保留されていたアプリケーション連携のうち優先度の高い順から処理を再開し、メッセージ交換装置全体で滞留しているメッセージ数を早期に低減することができる。
その理由は、周期処理部が、メッセージ処理を保留されていたアプリケーション連携に対して、優先度の高いものから順に保留解除通知を行うからである。これにより、優先度の高いアプリケーション連携のメッセージほど、より早期に処理が再開されることになる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第3の実施の形態としてのメッセージ交換装置3の構成を図14に示す。
図14において、メッセージ交換装置3は、送信元サーバ80(80a〜80d)および送信先サーバ90(90a〜90d)と、ネットワークを介して通信可能に接続されている。なお、図14には、送信元サーバ80および送信先サーバ90をそれぞれ4つずつ示しているが、本発明のメッセージ交換装置が接続される送信元サーバおよび送信先サーバの数を限定するものではない。また、本発明のメッセージ交換装置が接続される送信元サーバの数は送信先サーバの数に等しくなくても構わない。
送信元サーバ80dは、本発明の第2の実施の形態における送信元サーバ80a〜80cと同様に構成され、アプリケーション81dを有する。
送信先サーバ90dは、本発明の第2の実施の形態における送信先サーバ90a〜90cと同様に構成され、アプリケーション91dを有する。
また、本実施の形態では、アプリケーション81a〜81cは、本発明の第2の実施の形態と同様に、それぞれアプリケーション91a〜91cと互いに連携し、各アプリケーションの組み合わせを、それぞれアプリケーション連携A〜Cと呼ぶ。また、アプリケーション81dは、アプリケーション91dと互いに連携し、このアプリケーションの組み合わせを、アプリケーション連携Dと呼ぶものとする。
また、各アプリケーション81および各アプリケーション91が外部のアプリケーションとのメッセージ送受信で使用するプロトコルやメッセージ形式は、本発明の第2の実施の形態と同様に、それぞれが採用する形式であり、必ずしも他と同一ではないものとして説明する。ただし、本発明の第2の実施の形態と同様に、各アプリケーション81および各アプリケーション91が採用するプロトコルやメッセージ形式は、必ずしも他と異なるものでなくてもよい。
次に、メッセージ交換装置3の機能ブロック構成について説明する。
図14において、メッセージ交換装置3は、本発明の第2の実施の形態としてのメッセージ交換装置2に対して、送受信制御部22に替えて送受信制御部32と、周期処理部24に替えて周期処理部34とを備える点が異なる。また、送受信制御部32は、本発明の第2の実施の形態における送受信制御部22に対して、共通メッセージID管理部222に替えて共通メッセージID管理部322と、優先度レベル管理部223に替えて優先度レベル管理部323とを備える点が異なる。また、周期処理部34は、周期処理管理部341と、保留解除通知状況管理部342とを含む。
また、メッセージ交換装置3は、本発明の第2の実施の形態としてのメッセージ交換装置2に対して、さらに、アプリケーション連携メッセージ受信部21dおよびアプリケーション連携メッセージ送信部23dを含む。アプリケーション連携メッセージ受信部21dおよびアプリケーション連携メッセージ送信部23dの構成は、本発明の第2の実施の形態におけるアプリケーション連携メッセージ受信部21a〜21cおよびアプリケーション連携メッセージ送信部23a〜23cと同様であるため、本実施の形態における詳細な説明を省略する。
また、これらの各機能ブロックは、図14に示すように、アプリケーション連携情報管理テーブル301と、優先度パラメータ管理テーブル202と、優先度状況管理テーブル203と、共通メッセージID管理テーブル304と、保留解除通知状況管理テーブル305とを適宜参照または更新しながら動作する。
ここで、メッセージ交換装置3およびその各機能ブロックは、本発明の第1の実施の形態と同様に、図2に示したハードウェア要素によって構成可能である。また、アプリケーション連携情報管理テーブル301と、優先度パラメータ管理テーブル202と、優先度状況管理テーブル203と、共通メッセージID管理テーブル304と、保留解除通知状況管理テーブル305とは、例えば、RAM1002、ROM1003、または、記憶装置1004等に格納される。なお、メッセージ交換装置3およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
送受信制御部32は、本発明の第2の実施の形態における送受信制御部22と略同様に構成されることに加えて、アプリケーション連携毎に、過去のメッセージ処理時間の統計値を算出する。例えば、送受信制御部32は、共通メッセージID管理部322および優先度レベル管理部323を有することにより、この追加された機能を実現することができる。送受信制御部32に含まれる各機能ブロックと、これらの各機能ブロックによって参照および更新されるアプリケーション連携情報管理テーブル301および共通メッセージID管理テーブル304とについて説明する。
アプリケーション連携情報管理テーブル301には、本発明の第2の実施の形態と同様の情報に加えて、各アプリケーション連携について、累計処理メッセージ数、累計処理時間、処理時間の統計値、および、保留通知要フラグを表す情報が格納される。累計処理時間は、そのアプリケーション連携において過去に処理されたメッセージの処理時間の累計を表す。また、処理時間の統計値は、そのアプリケーション連携において過去に処理されたメッセージ処理時間の統計値を表す。例えば、統計値は、処理時間の平均値(平均処理時間)であってもよい。アプリケーション連携情報管理テーブル301に格納される情報の一例を図15に示す。なお、図15に示す累計処理時間および平均処理時間の単位は、後述の共通メッセージID管理テーブル304のID発行時刻の最少単位にあわせた単位(この例ではミリ秒)となっている。また、アプリケーション連携情報管理テーブル301に格納される累計処理メッセージ数、累計処理時間および平均処理時間は、メッセージ交換装置3の運用開始時に、所定の値(例えば、0等)に初期化される。
共通メッセージID管理テーブル304には、処理中の各メッセージについて、処理時間を算出するための情報が格納される。例えば、共通メッセージID管理テーブル304には、そのメッセージについての処理を開始した時刻として、共通メッセージIDの発行時刻が格納されてもよい。共通メッセージID管理テーブル304に格納される情報の一例を、図16に示す。図16では、共通メッセージIDに対応付けて、共通メッセージID発行時刻(ミリ秒まで)が格納されている。
共通メッセージID管理部322は、本発明の第2の実施の形態における共通メッセージID管理部222と同様に構成されることに加えて、各メッセージについて、その処理時間を算出するための情報を、共通メッセージID管理テーブル304に登録する。具体的には、共通メッセージID管理部322は、共通メッセージIDを生成した後に、共通メッセージID管理テーブル304に、共通メッセージIDをキーとして共通メッセージIDの発行時刻を含むレコードを登録する。
また、共通メッセージID管理部322は、メッセージの送信完了を通知されると、通知された時刻と、共通メッセージID管理テーブル304に格納されたメッセージID発行時刻との差分を、メッセージ処理時間として算出する。そして、共通メッセージID管理部322は、共通メッセージID管理テーブル304から、その共通メッセージIDのレコードを削除する。そして、共通メッセージID管理部322は、算出したメッセージ処理時間と、該当するアプリケーション連携についての累計処理メッセージ数および累計処理時間とを用いて、メッセージ処理時間の統計値(例えば、平均処理時間)を算出する。そして、共通メッセージID管理部322は、算出した情報を用いて、アプリケーション連携情報管理テーブル301を更新する。
優先度レベル管理部323は、本発明の第2の実施の形態における優先度レベル管理部223と同様に構成されることに加えて、優先度レベルを更新後、後述の保留解除通知状況管理テーブル305において通知中優先度を「対象無」に設定し、保留解除通知カウンタを0に設定する。
周期処理部34は、本発明の第2の実施の形態における周期処理部24に対して、保留解除の通知タイミングおよび通知順序が異なる。
具体的には、周期処理部34は、保留解除の通知対象となるアプリケーション連携にのうち、優先度に基づく順に、かつ、同じ優先度の中では、各アプリケーション連携における過去のメッセージ処理時間の統計値に基づく順に、保留解除の通知を行う。アプリケーション連携毎のメッセージ処理時間の統計値とは、例えば、前述のように、メッセージの平均処理時間であってもよい。この場合、周期処理部34は、同じ優先度の中では、平均処理時間の小さい順に、保留解除の通知を行ってもよい。
また、周期処理部34は、保留解除の通知対象となる各アプリケーション連携について、それぞれを担当するアプリケーション連携メッセージ受信部23に対して、所定の解除間隔毎に、順次保留解除を通知する。つまり、周期処理部34は、保留解除の通知対象となるアプリケーション連携のうち、上述の優先度およびメッセージ処理時間の統計値に基づく順序において最初のものについて、まず、保留解除の通知を行う。そして、周期処理部34は、所定の解除間隔経過後に、その順序において次のアプリケーション連携に対して、保留解除の通知を行う。以降、周期処理部34は、所定の解除間隔毎に、上述の順序にしたがって、残りの保留解除通知対象のアプリケーション連携について、保留解除の通知を順次行う。
例えば、周期処理部34は、周期処理管理部341と、保留解除通知状況管理部342とを有することにより、上述した機能を実現することができる。周期処理部34に含まれる各機能ブロックと、これらの機能ブロックによって参照される保留解除通知状況管理テーブル305との構成について、以下に説明する。
保留解除通知状況管理テーブル305には、保留解除を通知中の優先度を示す「通知中優先度」と、保留解除通知間隔と、保留解除通知カウンタとが格納される。保留解除通知間隔は、周期処理部34による周期動作の間隔として定められた単位時間に乗ずるパラメータである。すなわち、単位時間×保留解除通知間隔が、前述の解除間隔となる。保留解除通知カウンタは、解除間隔の経過をカウントするために用いられる変数である。
保留解除通知状況管理テーブル305に格納される情報の一例を図17に示す。図17は、この時点で保留解除を通知中の優先度は無い(「対象無」である)ことを表している。また、保留解除通知間隔は「2」と定められている。例えば、保留解除通知の対象となる優先度「中」のアプリケーション連携が2つ存在する場合について考える。この場合、優先度「中」でメッセージの平均処理時間が小さい一方のアプリケーション連携の保留解除通知を行ってから単位時間×保留解除通知間隔経過後に、他方のアプリケーション連携に対して、保留解除通知が行われる。
周期処理管理部341は、前回の優先度レベルが新たな優先度レベルより大きい場合、(すなわち、優先度レベルが前回より下がった場合)、通知中優先度が「対象無」であり、保留解除通知間隔が0に設定されていれば、次のように動作するよう構成される。この場合、周期処理管理部341は、本発明の第2の実施の形態における周期処理部24と同様に動作する。つまり、この場合、周期処理管理部341は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度の高い各アプリケーション連携を担当するアプリケーション連携メッセージ受信部21に対して、保留解除を通知する。
また、周期処理管理部341は、優先度レベルが前回より下がった場合で、通知中優先度が「対象無」であり、保留解除通知間隔として0より大きい値が設定されていれば、次のように動作するよう構成される。この場合、周期処理管理部341は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度のうち、最も高いものを処理対象優先度として処理を行う。そして、周期処理管理部341は、処理対象優先度のアプリケーション連携のうち平均処理時間が一番小さいアプリケーション連携について、保留解除通知を送信する。この場合、周期処理管理部341は、1回の周期動作において、1つのアプリケーション連携について保留解除の通知を行い、次のアプリケーション連携についての保留解除の通知は、解除間隔経過後の周期動作において行う。そのため、周期処理管理部341は、通知中優先度に処理対象優先度を設定しておく。また、周期処理部34は、処理対象優先度のアプリケーション連携のうち、保留解除通知を送信していないものについて、アプリケーション連携情報管理テーブル301の保留通知要フラグを「オン」に設定しておく。
また、周期処理管理部341は、前回の優先度レベルが新たな優先度レベル以下である場合(すなわち、優先度レベルが前回と同じか、上がった場合)、または、通知中優先度にいずれかの優先度が設定されている場合、保留解除通知状況管理部342を呼び出して機能させる。なお、周期処理管理部341は、保留解除通知済フラグを用いて、保留解除通知状況管理部342を呼び出すか否かを判定してもよい。その場合、周期処理管理部341は、周期動作の初めに保留解除通知済フラグをオフに設定しておき、優先度レベルが前回より下がった場合で、かつ、通知中優先度が「対象無」であると判定した場合、オンに設定すればよい。この場合、周期処理管理部341は、保留解除通知済フラグがオフである場合に、保留解除通知状況管理部342を呼び出せばよい。
保留解除通知状況管理部342は、アプリケーション連携情報管理テーブル301の通知中優先度が「対象無」でない場合、すなわち、前回までの周期動作における通知中優先度でまだ保留解除を通知していないアプリケーション連携がある場合、次のように動作するよう構成される。この場合、保留解除通知状況管理部342は、通知中優先度が優先度レベル以上であれば、保留解除通知カウンタを1加算する。そして、保留解除通知状況管理部342は、保留解除通知間隔の値が保留解除通知カウンタの値と等しければ、前回の保留解除から解除間隔経過したと判断できる。そこで、この場合、保留解除通知状況管理部342は、通知中優先度の示す優先度のアプリケーション連携のうち、保留通知要フラグがオンかつ平均処理時間が一番小さいアプリケーション連携に対して、保留解除通知を送信する。
そして、保留解除通知状況管理部342は、保留解除通知カウンタに0を設定するとともに、通知したアプリケーション連携の保留通知要フラグにオフを設定する。そして、保留解除通知状況管理部342は、通知中優先度のアプリケーション連携のうち、他に保留通知要フラグがオンのものが存在しない場合、通知中優先度を、1つ低い優先度に設定する。このとき、保留解除通知状況管理部342は、通知中優先度が既に「低」であれば、通知中優先度を「対象無」に設定すればよい。
なお、通知中優先度が「対象無」でない場合であっても、通知中優先度が優先度レベルより低い場合も想定される。これは、前回の周期動作以降に、優先度レベルが上がっている場合である。その場合、保留解除通知状況管理部342は、これ以上保留解除を通知するアプリケーション連携はないとして、通知中優先度に「対象無」を設定し、保留解除通知カウンタに0を設定する。
以上のように構成されたメッセージ交換装置3の動作について、図面を参照して説明する。なお、以下の動作では、各アプリケーション連携の優先度(高/中/低)、優先度毎の処理可能メッセージ数が定められ、アプリケーション連携情報管理テーブル301、優先度パラメータ管理テーブル202にそれぞれ格納されているものとする。また、保留解除の間隔を定めるためのパラメータである保留解除通知間隔が定められ、保留解除通知状況管理テーブル305に格納されているものとする。また、単位時間の長さが、あらかじめ定められているものとする。
まず、メッセージ交換装置3が、アプリケーション連携のためのメッセージを受信する動作を、図18に示す。
図18では、まず、メッセージ交換装置3は、本発明の第2の実施の形態と同様にステップA1〜A6まで動作する。すなわち、受信されたメッセージに関わるアプリケーション連携の優先度が、その時点での優先度レベル以上であり(ステップA4でNo)、その優先度の「処理中メッセージ数+処理済メッセージ数+1」(合計値)が、その優先度の処理可能メッセージ数に等しいか否かが判断される(ステップA5〜A6)。
ここで、その優先度の合計値が、その優先度の処理可能メッセージ数に等しい場合(ステップA6でYes)、優先度レベル管理部323は、優先度レベルに、該当するアプリケーション連携の優先度を設定する。さらに、優先度レベル管理部323は、保留解除通知状況管理テーブル305の通知中優先度を「対象無」に設定し、保留解除通知カウンタを0に設定する(ステップD7)。そして、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップA10〜A12まで動作する。
また、受信されたメッセージに関わるアプリケーション連携の優先度が、その時点での優先度レベルより小さい場合(ステップA4でYes)、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップA11〜A12まで動作する。
また、その優先度に関する上述の合計値が、その優先度の処理可能メッセージ数に等しくない場合(ステップA6でNo)、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップA8〜A12まで動作する。
次に、共通メッセージID生成可否の判定結果が許可である場合(ステップA12でYes)、共通メッセージID管理部322は、そのアプリケーション連携の優先度についての処理中メッセージ数を1加算する。そして、共通メッセージID管理部322は、そのメッセージに割り当てる共通メッセージIDを生成する。そして、共通メッセージID管理部322は、共通メッセージIDをキーとして、共通メッセージID発行時刻に現在時刻を設定したレコードを、共通メッセージID管理テーブル304に登録する。そして、共通メッセージID管理部322は、アプリケーション連携メッセージ受信部21に対して、共通メッセージIDおよび判定結果「許可」を表す情報を返却する(ステップD13)。
そして、メッセージ交換装置3は、本発明の第2の実施の形態と同様にステップA14の動作を実行し、連携元の形式から変換した共通メッセージの転送を、共通メッセージ転送部221に対して要求する。
また、共通メッセージID生成可否の判定結果が保留である場合(ステップA12でNo)、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップA15の動作を実行し、保留解除が通知されるまで、メッセージの処理を保留する。
以上で、メッセージ交換装置3は、アプリケーション連携のためのメッセージを受信する動作を終了する。
次に、メッセージ交換装置3が、アプリケーション連携のためのメッセージを送信する動作を、図19に示す。
図19では、まず、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップB1からB2まで動作して、共通メッセージから連携先の形式に変換したメッセージを、連携先に送信する。
次に、アプリケーション連携メッセージ送信部23は、担当するアプリケーション連携の識別情報および共通メッセージIDを指定して、共通メッセージID管理部322に対してメッセージ処理完了を通知する(ステップE3)。
そして、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、ステップB4の動作を実行し、該当する優先度の処理中メッセージ数および処理済メッセージ数を更新する。
次に、共通メッセージID管理部322は、共通メッセージIDをキーとして共通メッセージID管理テーブル304を参照することにより、共通メッセージID発行時刻を取得する。そして、共通メッセージID管理部322は、現在時刻と共通メッセージID発行時刻との差分を、メッセージ処理時間として算出する。そして、共通メッセージID管理部322は、共通メッセージID管理テーブル304から、その共通メッセージIDのレコードを削除する(ステップE5)。
次に、共通メッセージID管理部322は、該当するアプリケーション連携についてアプリケーション連携情報管理テーブル301に格納された累計処理メッセージ数、累計処理時間および平均処理時間を更新する。具体的には、共通メッセージID管理部322は、累計処理メッセージ数に、1を加算して更新する、また、共通メッセージID管理部322は、累計処理時間に、ステップE5で算出したメッセージ処理時間を加算して更新する。また、共通メッセージID管理部322は、平均処理時間として、累計処理時間を累計処理メッセージ数で割った商を算出して更新する(ステップE6)。
以上で、メッセージ交換装置3は、アプリケーション連携のためのメッセージを送信する動作を終了する。
次に、メッセージ交換装置3が、優先度レベルを見直すための周期動作を、図12および図20〜図22を用いて説明する。
まず、メッセージ交換装置3は、本発明の第2の実施の形態と同様に、図12に示したステップC1からC7まで動作して、前回の優先度レベルを退避し、今回の優先度レベルを設定する。
次に、図20において、周期処理管理部341は、優先度状況管理テーブル203の優先度レベルに今回の優先度レベル設定し、保留解除通知済フラグをオフに設定する(ステップF8)。前述のように、保留解除通知済フラグは、後のステップにおいて、保留解除通知状況管理部342を呼び出すか否かを判定するフラグとして用いられる。
次に、周期処理管理部341は、前回の優先度レベルが、新たな優先度レベルより大きく、かつ、通知中優先度が「対象無」であるか否かを判断する(ステップF9)。
ここで、前回の優先度レベルが、新たな優先度レベル以下であるか、または、通知中優先度が「対象無」でない場合(ステップF9でNo)、メッセージ交換装置3の動作は、後述のステップF23に移行する。
一方、前回の優先度レベルが、新たな優先度レベルより大きく、かつ、通知中優先度が「対象無」である場合(ステップF9でYes)、周期処理管理部341は、処理対象優先度に、前回の優先度レベルより1段低い優先度を設定し、保留解除通知済フラグにオンを設定する(ステップF10)。処理対象優先度とは、前述のように、以降の処理で対象となる優先度をいう。
次に、周期処理管理部341は、保留解除通知状況管理テーブル305に設定された保留解除通知間隔が0より大きいか否かを判断する(ステップF11)。
ここで、保留解除通知間隔に0が設定されている場合(ステップF11でNo)、周期処理管理部341は、アプリケーション連携情報管理テーブル301において優先度が処理対象優先度と一致する全てのアプリケーション連携に関して、そのアプリケーション連携を担当するアプリケーション連携メッセージ受信部21に対して、保留解除通知を送信する(ステップF12)。
次に、保留解除通知を受信した各アプリケーション連携メッセージ受信部21は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、各アプリケーション連携メッセージ受信部21は、本周期動作とは非同期に、保留していたメッセージについて図18に示した動作を実行する(ステップF13)。
次に、周期処理管理部341は、処理対象優先度が「低」より大きいか否かを判断する(ステップF14)。
ここで、処理対象優先度が「低」より大きい場合(ステップF14でYes)、周期処理管理部341は、処理対象優先度に一段低い優先度を設定して(ステップF15)、ステップF12からの動作を繰り返す。
一方、処理対象優先度が「低」である場合(ステップF14でNo)、今回の周期動作での保留解除通知動作は終了し、メッセージ交換装置3の動作は、後述のステップF23に移行する。
また、ステップF11において、保留解除通知間隔に0より大きい値が設定されている場合(ステップF11でYes)、周期処理管理部341は、図21に示すように動作する。
図21では、周期処理管理部341は、優先度が処理対象優先度と一致するアプリケーション連携のうち、平均処理時間が一番小さいものを担当するアプリケーション連携メッセージ受信部21に対して、保留解除通知を送信する。そして、周期処理管理部341は、保留解除通知状況管理テーブル305の通知中優先度に、処理対象優先度を設定する(ステップF16)。
次に、保留解除通知を受信したアプリケーション連携メッセージ受信部21は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部21は、本周期動作とは非同期に、保留していたメッセージについて図18に示した動作を実行する(ステップF17)。
次に、周期処理管理部341は、アプリケーション連携情報管理テーブル301を参照することにより、ステップF16において保留解除通知を送信したアプリケーション連携以外に、同じ処理対象優先度が定められたアプリケーション連携が存在するか否かを判断する(ステップF18)。
ここで、同じ処理対象優先度が定められた他のアプリケーション連携が存在する場合(ステップF18でYes)、周期処理管理部341は、次のように動作する。すなわち、周期処理管理部341は、処理対象優先度の各アプリケーション連携のうち、ステップF16で保留解除通知を送信したもの以外について、アプリケーション連携情報管理テーブル301における保留通知要フラグをオンに設定する(ステップF19)。
一方、同じ処理対象優先度が定められた他のアプリケーション連携が存在しない場合(ステップF18でNo)、周期処理管理部341は、保留解除通知状況管理テーブル305の通知優先度が「低」より大きいか否かを判断する(ステップF20)。
ここで、通知中優先度が「低」より大きい場合(ステップF20でYes)、周期処理管理部341は、保留解除通知状況管理テーブル305の通知中優先度に、一段低い優先度を設定する。そして、周期処理部34は、新たな通知中優先度の各アプリケーション連携についてアプリケーション連携情報管理テーブル301における保留通知要フラグをオンに設定する(ステップF21)。そして、メッセージ交換装置3の動作は、後述のステップF23に移行する。
一方、通知中優先度が「低」である場合(ステップF20でNo)、周期処理管理部341は、保留解除通知状況管理テーブル305の通知中優先度に「対象無」を設定する(ステップF22)、そして、メッセージ交換装置3の動作は、後述のステップF23に移行する。
そして、図20のステップF23において、周期処理管理部341は、保留解除通知済フラグがオンであるか否かを判断する(ステップF23)。
ここで、保留解除通知済フラグがオンの場合(ステップF23でYes)、周期処理管理部341は、動作を終了する。
一方、保留解除通知済フラグがオフの場合(ステップF23でNo)、周期処理管理部341は、保留解除通知状況管理部342を呼び出して動作を終了する(ステップF24)。
次に、ステップF24で呼び出された保留解除通知状況管理部342が、段階的に行う保留解除通知の動作を、図22に示す。
図22では、まず、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の通知中優先度が「対象無」ではないか否かを判断する(ステップG1)。
ここで、通知中優先度が「対象無」の場合(ステップG1でNo)、保留解除通知状況管理部342は、動作を終了する。
一方、通知中優先度が「対象無」ではない場合(ステップG1でYes)、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の通知中優先度が、優先度レベル以上であるか否かを判断する(ステップG2)。
ここで、通知中優先度が、優先度レベル以上でない場合(ステップG2でNo)、保留解除通知状況管理部342は、後述のステップG10を実行してから、動作を終了する。
一方、通知中優先度が、優先度レベル以上である場合(ステップG2でYes)、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の保留解除通知カウンタに1加算する(ステップG3)。
次に、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305において、保留解除通知間隔が保留解除通知カウンタに等しいか否かを判断する(ステップG4)。
ここで、保留解除通知間隔が保留解除通知カウンタに等しくない場合(ステップG4でNo)、保留解除通知状況管理部342は、動作を終了する。
一方、保留解除通知間隔が保留解除通知カウンタに等しい場合(ステップG4でYes)、保留解除通知状況管理部342は、次のように動作する。すなわち、保留解除通知状況管理部342は、アプリケーション連携情報管理テーブル301において、優先度が通知中優先度と一致するアプリケーション連携のうち、保留通知要フラグが「オン」かつ平均処理時間が一番小さいアプリケーション連携を特定する。そして、保留解除通知状況管理部342は、特定したアプリケーション連携を担当するアプリケーション連携メッセージ受信部21に対して、保留解除通知を送信する(ステップG5)。
次に、保留解除通知状況管理部342は、ステップG5において保留解除通知を送信したアプリケーション連携について、アプリケーション連携情報管理テーブル301における保留通知要フラグを「オフ」に設定する。また、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の保留解除通知カウンタを0に設定する(ステップG6)。
次に、保留解除通知を受信したアプリケーション連携メッセージ受信部21は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部21は、本動作とは非同期に、保留していたメッセージについて図18に示した動作を実行する(ステップG7)。
次に、保留解除通知状況管理部342は、アプリケーション連携情報管理テーブル301において優先度が通知中優先度と一致するアプリケーション連携のうち、保留通知要フラグがオンのアプリケーション連携が存在するか否かを判断する(ステップG8)。
ここで、そのようなアプリケーション連携が存在する場合(ステップG8でYes)、保留解除通知状況管理部342は、動作を終了する。つまり、この場合、通知中優先度を変更しないで今回の動作を終了することにより、次の解除間隔以降の周期動作において、現行の通知中優先度で保留通知要フラグが「オン」の他のアプリケーション連携が、保留解除の通知対象になる。
一方、そのようなアプリケーション連携が存在しない場合(ステップG8でNo)、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の通知中優先度が「低」であるか否かを判断する(ステップG9)。
ここで、通知中優先度が「低」である場合(ステップG9でYes)、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の通知中優先度を「対象無」に設定する。また、保留解除通知状況管理部342は、保留解除通知カウンタを0に設定する(ステップG10)。そして、保留解除通知状況管理部342は、動作を終了する。
一方、通知中優先度が「低」でない場合(ステップG9でNo)、保留解除通知状況管理部342は、保留解除通知状況管理テーブル305の通知中優先度を一段低い優先度に設定する。そして、周期処理管理部341は、新たな通知中優先度の各アプリケーション連携についてアプリケーション連携情報管理テーブル301における保留通知要フラグを「オン」に設定し(ステップG11)、動作を終了する。つまり、この場合、次の解除間隔以降の周期動作において、一段低い優先度に設定された通知中優先度で保留通知要フラグが「オン」の他のアプリケーション連携が、保留解除の通知対象になる。
以上で、保留解除通知状況管理部342は、段階的に行う保留解除通知の動作を終了する。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としてのメッセージ交換装置は、全体のサービスレベルを低下させることなく効率的なメッセージ処理を行うために送信を保留した、メッセージの滞留数を、より効率よく低減することができる。
その理由は、以下の構成を備えるからである。すなわち、周期処理部が、前回の優先度レベルより低く新たな優先度レベル以上のアプリケーション連携のうち、最も高い優先度かつその優先度で平均処理時間が一番小さいアプリケーション連携にまず保留解除通知を行う。そして周期処理部は、初めの保留解除通知以降は、所定の解除間隔毎に、優先度の高い順に、かつ、同一の優先度の中では、過去のメッセージの処理時間の統計値に基づく順に、保留解除通知を行う。さらに、周期処理部は、対象となっている優先度のアプリケーション連携への保留解除通知が全て完了してから、一段低い優先度のアプリケーション連携に対して保留解除通知を行う。
このように、本実施の形態は、保留解除の対象となるアプリケーション連携について、保留解除の通知を段階的に行うので、メッセージ交換装置全体で滞留しているメッセージ処理を一度に再開してメッセージ処理を一時的に増加させることがない。したがって、本実施の形態は、保留されたメッセージ数の低減を効率よく促進することができる。しかも、本実施の形態は、段階的に行う保留解除通知を、優先度の順に行うので、優先度がより高いアプリケーション連携について、早期に滞留メッセージを低減することができる。さらに、本実施の形態は、段階的に行う保留解除通知を、同じ優先度の中では処理時間の統計値に基づく順に行うので、より早期により多くのアプリケーション連携について滞留メッセージを低減することができる。
なお、本実施の形態において、共通メッセージID管理テーブルの共通メッセージID発行時刻の例として、ミリ秒までの情報を格納する例を記載しているが、マイクロ秒等の他の時間単位まで格納するように構成してもよい。その場合、アプリケーション連携情報管理テーブルの累計処理時間および平均処理時間にも、同じ単位を使用すればよい。
また、本実施の形態において、アプリケーション毎の過去のメッセージ処理時間の統計値として、平均処理時間を用いる例について説明したが、メッセージ処理時間に関するその他の統計値を用いてもよい。
また、本実施の形態において、アプリケーション連携情報管理テーブルの累計処理メッセージ数と累計処理時間と平均処理時間とを、運用開始時に初期化する例を記載しているが、1時間や1日等の一定周期で初期化するように構成してもよい。
また、本発明の第2および第3の実施の形態において、アプリケーション連携がそれぞれ3種類または4種類存在するケースについて説明したが、アプリケーション連携の種類数は、3または4に限定されるものではない。各実施の形態は、1種類以上の各アプリケーション連携に関する情報をアプリケーション連携情報管理テーブルに格納しておくとともに、各アプリケーション連携に対応させた数の、アプリケーション連携メッセージ受信部およびアプリケーション連携メッセージ送信部を設けることにより、同様に動作可能である。
また、本発明の第2および第3の実施の形態において、アプリケーション連携毎に定められる優先度として、「高」、「中」、「低」の3段階が使用されるケースについて説明したが、優先度の段階数は3に限定されるものではない。例えば、優先度として、「高」、「低」の2段階が使用されるよう構成してもよい。また、4段階以上の優先度が使用されるよう構成されてもよい。また、優先度を表す情報として、数値を用いるようにしてもよい。
また、本発明の第2および第3の実施の形態において、優先度の各段階に少なくとも1つのアプリケーション連携が割り当てられるケースについて説明したが、アプリケーション連携に割り当てない優先度が存在してもよい。
また、本発明の第2および第3の実施の形態において、優先度状況管理テーブルおよび優先度パラメータ管理テーブルに格納される情報は、1つのテーブルに格納されていてもよい。その他、各実施の形態において各機能ブロックによって参照および更新される情報を格納する管理テーブルのデータ構造は、その他の構造であってもよい。また、これらの管理テーブルは、ストレージ装置に格納されていてもよいし、データベースとして格納されていてもよい。あるいは、これらの管理テーブルは、メモリ上に格納されていてもよい。
また、本発明の第2および第3の実施の形態において、アプリケーション連携の性能要件に基づき単位時間が定められる例について説明したが、単位時間は、その他のデータに基づいて定められてもよい。例えば、単位時間は、アプリケーション連携の性能測定結果等に基づいて定められてもよい。
また、上述した本発明の第2および第3の実施の形態において、送信元サーバは、送信先サーバの機能を含んでいてもよい。また、本発明における送信先サーバは、送信元サーバの機能を含んでいてもよい。また、複数の送信元サーバまたは送信先サーバが、同一の装置上に実現されていてもよい。また、1つの送信元サーバまたは1つの送信先サーバが、複数のアプリケーションを有していてもよい。
また、本発明の各実施の形態において、連携先のアプリケーションは、受信したメッセージに対する返信メッセージを、メッセージ交換装置を介して連携元のアプリケーションへ返信してもよい。その場合、アプリケーション連携メッセージ送信部は、返信メッセージを受信すると、アプリケーション連携メッセージ受信部と同様に動作すればよい。また、この場合、アプリケーション連携メッセージ受信部は、返信メッセージを連携元のアプリケーションへ転送するため、アプリケーション連携メッセージ送信部と同様に動作すればよい。
また、上述した本発明の各実施の形態において、メッセージ交換装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。このような構成の他、各実施の形態において、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
また、上述した本発明の各実施の形態において、メッセージ交換装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したメッセージ交換装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。