(57)【要約】【課題】全体のサービスレベルを低下させずに、アプリケーション連携の優先度に応じてより効率的にメッセージ処理を行うこと。【解決手段】アプリケーション連携のためのメッセージを連携元から受信するアプリケーション連携メッセージ受信部１１と、現在の優先度レベルと、該メッセージに関わるアプリケーション連携の優先度と、該優先度における処理中メッセージ数および処理可能メッセージ数とに基づいて優先度レベルを更新し、該メッセージの送信の保留／許可を判定する送受信制御部１２と、送信を許可されたメッセージを連携先に送信するアプリケーション連携メッセージ送信部１３と、所定タイミング毎に、優先度レベルを、各優先度の処理中メッセージ数および処理可能メッセージ数に基づいて更新し、更新した優先度レベルおよび前回の優先度レベルに基づき決定したアプリケーション連携に関わるメッセージの保留を解除する周期処理部１４と、を備える。【選択図】      図１
2015185060.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信するアプリケーション連携メッセージ受信部と、
前記アプリケーション連携メッセージ受信部によって前記メッセージが受信されると、自装置において現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定する送受信制御部と、
前記送受信制御部によって送信を許可すると判定されたメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信するアプリケーション連携メッセージ送信部と、
所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する周期処理部と、
を備えたメッセージ交換装置。
【請求項２】
前記送受信制御部は、前記アプリケーション連携メッセージ受信部によって受信されたメッセージに関わるアプリケーション連携の優先度が、前記優先度レベル以上である場合、該メッセージの送信を許可すると判定し、前記優先度レベルより低い場合、該メッセージの送信を保留すると判定することを特徴とする請求項１に記載のメッセージ交換装置。
【請求項３】
前記送受信制御部は、前記アプリケーション連携メッセージ受信部によって受信されたメッセージに関わるアプリケーション連携の優先度が、前記優先度レベル以上の場合で、該優先度に関わる処理中メッセージ数および該優先度に関わる単位時間での処理済メッセージ数の合計が、該優先度の単位時間あたりの処理可能メッセージ数を超えたと判定すると、前記優先度レベルを該優先度に更新することを特徴とする請求項１または請求項２に記載のメッセージ交換装置。
【請求項４】
前記送受信制御部は、前記アプリケーション連携メッセージ受信部によって受信されたメッセージに関わるアプリケーション連携の優先度が、前記優先度レベル以上の場合であっても、該優先度が所定の低優先度条件を満たし、かつ、該優先度に関わる処理中メッセージ数および該優先度に関わる単位時間での処理済メッセージ数の合計が、該優先度の単位時間あたりの処理可能メッセージ数を既に超えている場合には、該メッセージの送信を保留すると判定することを特徴とする請求項１から請求項３のいずれか１項に記載のメッセージ交換装置。
【請求項５】
前記周期処理部は、前記保留解除の対象となりうる各アプリケーション連携について、優先度の高いアプリケーション連携から順に、前記保留解除を行うことを特徴とする請求項１から請求項４のいずれか１項に記載のメッセージ交換装置。
【請求項６】
前記周期処理部は、前記保留解除の対象となりうる各アプリケーション連携について、各アプリケーション連携における過去のメッセージ処理時間の統計値に基づく順に、前記保留解除を行うことを特徴とする請求項１から請求項５のいずれか１項に記載のメッセージ交換装置。
【請求項７】
前記周期処理部は、前記保留解除の対象となりうる各アプリケーション連携について、所定の解除間隔毎に、順次保留解除を行うことを特徴とする請求項１から請求項６のいずれか１項に記載のメッセージ交換装置。
【請求項８】
前記周期処理部は、前記優先度レベルを、前記処理中メッセージ数が前記処理可能メッセージ数以上の優先度に更新することを特徴とする請求項１から請求項７のいずれか１項に記載のメッセージ交換装置。
【請求項９】
メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信すると、
現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定し、
送信を許可すると判定したメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信し、
所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する、メッセージ交換方法。
【請求項１０】
メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信するアプリケーション連携メッセージ受信ステップと、
前記アプリケーション連携メッセージ受信ステップにおいて前記メッセージが受信されると、現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定する送受信制御ステップと、
前記送受信制御ステップにおいて送信を許可すると判定されたメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信するアプリケーション連携メッセージ送信ステップと、
所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する周期処理ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション間で行われるメッセージ交換を中継する技術に関する。
【背景技術】
【０００２】
近年、企業等の組織における業務システムは分散化、複雑化しており、それを解決するためメッセージ交換装置の導入が行われている。メッセージ交換装置は、メッセージ交換による業務間の連携（以下、アプリケーション連携とも記載する）機能を持つ。このようなメッセージ交換装置としては、例えば、ＥＳＢ（Enterprise Service Bus）を採用したものがよく知られている。
【０００３】
組織内の業務間連携では、業務連携時のピーク時において交換されるメッセージの最大データ量は、各業務の処理量に基づき計算可能である。したがって、一般的なメッセージ交換装置は、すべてのアプリケーション連携から求められるデータ量の総和を処理可能となるように、システム設計が行なわれていた。このため、処理量の増加によるメッセージ交換装置のサービスレベルの低下は、問題視されていなかった。
【０００４】
しかし、クラウドコンピューティングの時代となり、今後は、メッセージ交換装置を使用して、複数の組織に対してアプリケーション連携をサービスとして提供するケースが増えるものと予測される。このような場合、サービスを利用する各組織における各業務の処理量が未知であるため、ピーク時における最大データ量の計算は難しい。そのため、このようなケースで利用されるメッセージ交換装置では、処理量が増加してもサービスレベルに影響を及ぼさないようにする必要性が高まってきている。
【０００５】
このような問題に関連する技術として、特許文献１に記載されたものが知られている。この関連技術は、アプリケーション連携毎に処理中メッセージの制限値を定めておき、各アプリケーション連携について処理中メッセージ数の制限値超過分を集計する。そして、この関連技術は、全アプリケーション連携での超過分総数が許容値を超過している場合に、処理モードを制限モードに切り替える。そして、この関連技術は、制限モードにおいて、制限値を超過しているアプリケーション連携の新たなメッセージ処理を制限する。
【０００６】
また、このような問題に関連する他の技術として、特許文献２に記載されたものが知られている。この関連技術は、受信したメッセージを、その優先度に応じて、送信先毎に用意された優先度別の出力キューに格納する。そして、この関連技術は、優先度が高い出力キューから順にメッセージを取り出して送信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−５３７５１号公報
【特許文献２】特開２００１−２２９１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の関連技術には、以下のような課題がある。
【０００９】
一般的なメッセージ交換装置は、複数のアプリケーション連携で交換されるメッセージを並行して処理している。そのため、あるアプリケーション連携において一時的に大量のメッセージ処理が行われると、優先度のより高い他のアプリケーション連携のメッセージ処理が遅延するなどの影響がある。
【００１０】
ここで、特許文献１に記載された関連技術は、アプリケーション連携の優先度に関係なく、制限値を超えたアプリケーション連携のメッセージ処理を制限する。このため、この関連技術は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合、そのアプリケーション連携の優先度が高くても、制限値を越えるためメッセージの処理を制限してしまう。また、この関連技術は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合、優先度のより高い他のアプリケーション連携についても、制限値を越えるメッセージの処理を制限してしまう。
【００１１】
また、特許文献２に記載された関連技術は、送信先毎に、優先度の高いメッセージを優先して送信することはできるが、送信先の異なるアプリケーション連携間でどのような優先順位でメッセージを送信するかについては記載されていない。そのため、この関連技術は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合、そのアプリケーション連携の送信先とは異なる他の送信先に対するより優先度の高いアプリケーション連携において、メッセージ処理が遅延する影響が出てしまう。
【００１２】
本発明は、上述の課題を解決するためになされたもので、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合であっても、全体のサービスレベルを低下させずに、アプリケーション連携の優先度に応じてより効率的にメッセージ処理を行う技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のメッセージ交換装置は、メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信するアプリケーション連携メッセージ受信部と、前記アプリケーション連携メッセージ受信部によって前記メッセージが受信されると、自装置において現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定する送受信制御部と、前記送受信制御部によって送信を許可すると判定されたメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信するアプリケーション連携メッセージ送信部と、所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する周期処理部と、を備える。
【００１４】
また、本発明のメッセージ交換方法は、メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信すると、現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定し、送信を許可すると判定したメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信し、所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する。
【００１５】
また、本発明のコンピュータ・プログラムは、メッセージの送受信により連携するアプリケーションの組み合わせ（アプリケーション連携）のうち連携元のアプリケーションから、前記アプリケーション連携のためのメッセージを受信するアプリケーション連携メッセージ受信ステップと、前記アプリケーション連携メッセージ受信ステップにおいて前記メッセージが受信されると、現在適用中の優先度のレベルを表す優先度レベルと、該メッセージに関わるアプリケーション連携に定められた優先度と、該優先度が定められた１つ以上のアプリケーション連携における処理中メッセージ数および処理可能メッセージ数とに基づいて、前記優先度レベルを更新するとともに、該メッセージの送信を保留するか許可するかを判定する送受信制御ステップと、前記送受信制御ステップにおいて送信を許可すると判定されたメッセージを、該メッセージに関わるアプリケーション連携における連携先のアプリケーションに送信するアプリケーション連携メッセージ送信ステップと、所定のタイミング毎に、前記優先度レベルを、前記各優先度における前記処理中メッセージ数および前記処理可能メッセージ数に基づき更新し、更新した優先度レベルおよび前回の優先度レベルに基づき保留解除の対象となるアプリケーション連携を決定し、決定したアプリケーション連携に関わるメッセージの保留を解除する周期処理ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００１６】
本発明は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合であっても、全体のサービスレベルを低下させずに、アプリケーション連携の優先度に応じてより効率的にメッセージ処理を行う技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態としてのメッセージ交換装置の機能ブロック図である。
【図２】本発明の第１の実施の形態としてのメッセージ交換装置のハードウェア構成図である。
【図３】本発明の第１の実施の形態としてのメッセージ交換装置のメッセージ受信動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態としてのメッセージ交換装置のメッセージ送信動作を説明するフローチャートである。
【図５】本発明の第１の実施の形態としてのメッセージ交換装置の周期動作を説明するフローチャートである。
【図６】本発明の第２の実施の形態としてのメッセージ交換装置の機能ブロック図である。
【図７】本発明の第２の実施の形態におけるアプリケーション連携情報管理テーブルに格納される情報の一例を示す図である。
【図８】本発明の第２の実施の形態における優先度パラメータ管理テーブルに格納される情報の一例を示す図である。
【図９】本発明の第２の実施の形態における優先度状況管理テーブルに格納される情報の一例を示す図である。
【図１０】本発明の第２の実施の形態としてのメッセージ交換装置のメッセージ受信動作を説明するフローチャートである。
【図１１】本発明の第２の実施の形態としてのメッセージ交換装置のメッセージ送信動作を説明するフローチャートである。
【図１２】本発明の第２の実施の形態としてのメッセージ交換装置の周期動作を説明するフローチャートである。
【図１３】図１２に続くフローチャートである。
【図１４】本発明の第３の実施の形態としてのメッセージ交換装置の機能ブロック図である。
【図１５】本発明の第３の実施の形態におけるアプリケーション連携情報管理テーブルに格納される情報の一例を示す図である。
【図１６】本発明の第３の実施の形態における共通メッセージＩＤ管理テーブルに格納される情報の一例を示す図である。
【図１７】本発明の第３の実施の形態における保留解除通知状況管理テーブルに格納される情報の一例を示す図である。
【図１８】本発明の第３の実施の形態としてのメッセージ交換装置のメッセージ受信動作を説明するフローチャートである。
【図１９】本発明の第３の実施の形態としてのメッセージ交換装置のメッセージ送信動作を説明するフローチャートである。
【図２０】本発明の第３の実施の形態としてのメッセージ交換装置の周期動作を説明するフローチャートである。
【図２１】図２０に続くフローチャートである。
【図２２】本発明の第３の実施の形態としてのメッセージ交換装置の保留解除通知動作を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１９】
（第１の実施の形態）
本発明の第１の実施の形態としてのメッセージ交換装置１の構成を図１に示す。
【００２０】
図１において、メッセージ交換装置１は、アプリケーション連携メッセージ受信部１１と、送受信制御部１２と、アプリケーション連携メッセージ送信部１３と、周期処理部１４とを備える。
【００２１】
また、図１に示すように、メッセージ交換装置１は、外部の装置上に実現される１つ以上の連携元のアプリケーション８１および１つ以上の連携先のアプリケーション９１と、ネットワークを介して通信可能に接続されている。連携元のアプリケーション８１および連携先のアプリケーション９１は、互いにメッセージを送受信することにより連携する。連携するアプリケーション８１およびアプリケーション９１の組み合わせ（以下、アプリケーション連携とも記載する）は、あらかじめ定められている。なお、図１には、連携元のアプリケーション８１および連携先のアプリケーション９１をそれぞれ３つずつ示しているが、本発明のメッセージ交換装置がメッセージ送受信を中継するアプリケーション連携の数を限定するものではない。また、本発明のメッセージ交換装置がメッセージ送受信を中継する連携元のアプリケーションの数は連携先のアプリケーションの数に等しくなくても構わない。
【００２２】
ここで、メッセージ交換装置１は、図２に示すように、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、ハードディスク等の記憶装置１００４と、ネットワークインタフェース１００５とを備えたコンピュータ装置によって構成可能である。この場合、アプリケーション連携メッセージ受信部１１およびアプリケーション連携メッセージ送信部１３は、ネットワークインタフェース１００５と、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１とによって構成される。また、送受信制御部１２および周期処理部１４は、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成される。
【００２３】
また、アプリケーション８１およびアプリケーション９１は、それぞれ、ＣＰＵと、ＲＡＭと、ＲＯＭと、記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置上に実現されている。メッセージ交換装置１を構成するコンピュータ装置は、アプリケーション８１およびアプリケーション９１が実現されている各コンピュータ装置と、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して通信可能に接続される。
【００２４】
なお、メッセージ交換装置１およびその各機能ブロック、ならびに、アプリケーション８１および９１のハードウェア構成は、上述の構成に限定されない。
【００２５】
次に、メッセージ交換装置１の各機能ブロックによって参照または更新される情報について説明する。
【００２６】
図１に示すように、各機能ブロックは、各アプリケーション連携の優先度、優先度毎の処理可能メッセージ数、優先度レベル、優先度毎の処理中メッセージ数、および、優先度毎の処理済メッセージ数をそれぞれ表す情報を、適宜参照または更新するよう構成される。
【００２７】
各アプリケーション連携の優先度は、その用途の重要度などに基づいてあらかじめ定められる。
【００２８】
優先度毎の処理可能メッセージ数は、その優先度が定められた１つ以上のアプリケーション連携において単位時間あたりに処理可能なメッセージの数を表す。優先度毎の処理可能メッセージ数は、その優先度が定められた各アプリケーション連携の性能要件等に基づいて、あらかじめ定められる。
【００２９】
優先度レベルは、自装置において現在適用中の優先度のレベルを表す。優先度レベルは、アプリケーション連携のために受信されるメッセージの送信許可を判定する際に基準として用いられる情報である。優先度レベルは、運用開始時には、所定の優先度（例えば、最も低い優先度）に初期化され、以降、他の機能ブロックによって適宜更新される。
【００３０】
優先度毎の処理中メッセージ数は、その優先度が定められた１つ以上のアプリケーション連携において処理中のメッセージの数の合計を表す。また、優先度毎の処理済メッセージ数は、その優先度が定められた１つ以上のアプリケーション連携において処理済のメッセージの数の合計を表す。優先度毎の処理中メッセージ数は、運用開始時には、所定の値（例えば、０）に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理済メッセージ数は、運用開始時および単位時間毎に、所定の値（例えば、０）に初期化され、以降、他の機能ブロックによって適宜更新される。
【００３１】
次に、メッセージ交換装置１の各機能ブロックについて説明する。
【００３２】
アプリケーション連携メッセージ受信部１１は、アプリケーション８１から、アプリケーション連携のためのメッセージを受信する。
【００３３】
送受信制御部１２は、メッセージが受信されると、優先度レベルと、該メッセージに関わるアプリケーション連携の優先度と、該優先度の処理中メッセージ数および処理済メッセージ数と、該優先度の処理可能メッセージ数とに基づいて、優先度レベルを更新する。また、送受信制御部１２は、これらの情報に基づいて、受信されたメッセージの送信を保留するか許可するかを判定する。
【００３４】
例えば、送受信制御部１２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上であれば送信を許可すると判定し、優先度レベルより低ければそのメッセージの送信を保留すると判定してもよい。
【００３５】
また、例えば、送受信制御部１２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上である場合、次のようにして優先度レベルを更新するか否かを判定してもよい。例えば、この場合、送受信制御部１２は、その優先度の処理済メッセージ数および処理中メッセージ数の合計が、その優先度の処理可能メッセージ数を超えたと判定した場合に、優先度レベルを、その優先度に更新してもよい。具体的には、送受信制御部１２は、その優先度の処理済メッセージ数および処理中メッセージ数の合計に１を加算した合計値が、その優先度の処理可能メッセージ数に等しい場合、合計が処理可能メッセージ数を超えたと判定してもよい。
【００３６】
なお、送受信制御部１２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上の場合であっても、次のケースでは、そのメッセージの送信を保留すると判定してもよい。そのケースとは、該当する優先度が所定の低優先度条件を満たし、かつ、その優先度の処理中メッセージ数および処理済メッセージ数の合計が既に処理可能メッセージ数を超えている場合などである。所定の低優先度条件とは、例えば、優先度が、最も低い優先度であることであってもよい。また、処理中メッセージ数および処理済メッセージ数の合計が既に処理可能メッセージ数を超えている場合とは、処理中メッセージ数および処理済メッセージ数の合計に１を加算した合計値が、その優先度の処理可能メッセージ数より大きい場合であってもよい。
【００３７】
また、送受信制御部１２は、受信されたメッセージについて送信を許可すると判定した場合、そのメッセージに関わるアプリケーション連携の優先度について処理中メッセージ数を、１を加算した値に更新する。また、送受信制御部１２は、後述のアプリケーション連携メッセージ送信部１３によってメッセージの送信が完了すると、送信完了したメッセージに関わるアプリケーション連携の優先度について処理中メッセージ数および処理済メッセージ数を更新する。具体的には、送受信制御部１２は、その優先度の処理中メッセージ数から１を減算し、処理済メッセージ数に１を加算すればよい。
【００３８】
アプリケーション連携メッセージ送信部１３は、送受信制御部１２によって送信を許可されたメッセージを、そのメッセージの連携先のアプリケーション９１に送信する。
【００３９】
周期処理部１４は、所定のタイミング毎に、各優先度の処理済メッセージ数の初期化、優先度レベルの更新、および、保留解除の各処理を行う。具体的には、周期処理部１４は、優先度毎の処理済メッセージ数を所定の値（例えば、０）に初期化する。また、周期処理部１４は、優先度レベルを、各優先度の処理中メッセージ数および処理可能メッセージ数に基づいて更新する。具体的には、周期処理部１４は、優先度レベルを、処理中メッセージ数が処理可能メッセージ数以上となっている優先度に更新してもよい。
【００４０】
また、周期処理部１４は、新たな優先度レベルおよび前回の優先度レベルに基づいて、保留解除の対象となるアプリケーション連携を決定する。具体的には、周期処理部１４は、新たな優先度レベルが前回の優先度レベルより低い場合に、新たな優先度レベル以上で前回の優先度レベルより低い各優先度が定められたアプリケーション連携を、保留解除の対象として決定してもよい。例えば、周期処理部１４は、前回の優先度レベルより１段階低い優先度から始めて優先度の高い順に、その優先度が定められたアプリケーション連携に関わるメッセージの保留を解除してもよい。
【００４１】
以上のように構成されたメッセージ交換装置１の動作について、図面を参照して説明する。なお、アプリケーション８１およびアプリケーション９１の組み合わせである各アプリケーション連携については、あらかじめ優先度が定められているものとする。また、各優先度について、単位時間における処理可能メッセージ数があらかじめ定められているものとする。また、単位時間の長さは、あらかじめ定められているものとする。また、優先度レベルは所定の優先度（例えば最も低い優先度）に初期化されているものとする。また、処理中メッセージ数および処理済メッセージ数は、所定の値（例えば０）に初期化されているものとする。
【００４２】
まず、メッセージ交換装置１が、アプリケーション連携のためのメッセージを受信する動作を、図３に示す。図３では、まず、アプリケーション連携メッセージ受信部１１は、アプリケーション８１から、アプリケーション連携用のメッセージを受信する（ステップＳ１）。
【００４３】
次に、送受信制御部１２は、ステップＳ１で受信されたメッセージの送信を許可するか保留するかの判定と、優先度レベルを更新するか否かの判定とを行う。そして、送受信制御部１２は、優先度レベルを更新すると判定した場合、優先度レベルを更新する（ステップＳ２）。前述のように、送受信制御部１２は、優先度レベルと、そのメッセージに関わるアプリケーション連携の優先度と、その優先度の処理中メッセージ数および単位時間での処理済メッセージ数と、その優先度の単位時間あたりの処理可能メッセージ数とに基づいて、これらの判定処理を行う。
【００４４】
次に、送受信制御部１２は、メッセージの送信を保留すると判定した場合（ステップＳ３でＮｏ）、そのメッセージを保留しておく(ステップＳ４）。
【００４５】
次に、送受信制御部１２は、メッセージの送信を許可すると判定した場合（ステップＳ３でＹｅｓ）、そのメッセージに関わるアプリケーション連携の優先度について、処理中メッセージ数を更新する（ステップＳ５）。
【００４６】
前述のように、送受信制御部１２は、その優先度についての処理中メッセージ数に１を加算すればよい。
【００４７】
次に、送受信制御部１２は、そのメッセージを送信するよう、アプリケーション連携メッセージ送信部１３に通知する（ステップＳ６）。
【００４８】
以上で、メッセージ交換装置１は、アプリケーション連携のためのメッセージの受信動作を終了する。
【００４９】
次に、メッセージ交換装置１が、アプリケーション連携のためのメッセージを送信する動作を、図４に示す。
【００５０】
図４では、まず、アプリケーション連携メッセージ送信部１３は、図３のステップＳ６で通知されたメッセージを、その連携先のアプリケーション９１に対して送信する（ステップＳ１１）。
【００５１】
次に、送信制御部１４は、ステップＳ１１で送信されたメッセージに関わるアプリケーション連携の優先度について、処理中メッセージ数および処理済メッセージ数を更新する（ステップＳ１２）。
【００５２】
前述のように、送受信制御部１２は、その優先度についての処理済メッセージ数に１を加算し、処理中メッセージ数から１を減算すればよい。
【００５３】
以上で、メッセージ交換装置１は、アプリケーション連携のためのメッセージを送信する動作を終了する。
【００５４】
次に、メッセージ交換装置１が、単位時間毎に行う周期動作を、図５に示す。
【００５５】
図５では、まず、周期処理部１４は、各優先度についての処理済メッセージ数を初期化するとともに、優先度レベルを前回の優先度レベルとして退避する（ステップＳ２１）。
【００５６】
次に、周期処理部１４は、優先度レベルを、処理中メッセージ数および処理可能メッセージ数に基づいて更新する（ステップＳ２２）。例えば、周期処理部１４は、処理中メッセージ数が処理可能メッセージ数以上となっている優先度のうち最も高い優先度を、新たな優先度レベルとして採用するとよい。また、周期処理部１４は、処理中メッセージ数が処理可能メッセージ数以上となっている優先度がなければ、優先度レベルを、所定の優先度（例えば最も低い優先度など）に更新すればよい。
【００５７】
次に、周期処理部１４は、新たな優先度レベルが、退避した前回の優先度レベルより低い場合（ステップＳ２３でＹｅｓ）、新たな優先度レベル以上で前回の優先度レベルより低い各優先度のアプリケーション連携について、メッセージの保留を解除する（ステップＳ２４）。
【００５８】
具体的には、周期処理部１４は、前回の優先度レベルより１段階低い優先度から始めて優先度の高い順に新たな優先度レベルまで、各優先度に属するアプリケーション連携において保留中のメッセージの保留を順次解除してもよい。そして、メッセージ交換装置１は、保留が解除されたメッセージについて、図３に示した動作を再度実行すればよい。
【００５９】
以上で、メッセージ交換装置１は、単位時間毎に行う周期動作を終了する。
【００６０】
次に、本発明の第１の実施の形態の効果について述べる。
【００６１】
本発明の第１の実施の形態としてのメッセージ交換装置は、あるアプリケーション連携において一時的に大量のメッセージ処理が行われた場合であっても、全体のサービスレベルを低下させずに、アプリケーション連携の優先度に応じてより効率的にメッセージ処理を行うことができる。
【００６２】
その理由は、第1の実施の形態では、アプリケーション連携毎に優先度を定めておき、優先度毎に単位時間あたりの処理可能メッセージ数を定めておいた状態で、アプリケーション連携メッセージ受信部が、連携元のアプリケーションからメッセージを受信すると、送受信制御部が、次のように動作するからである。すなわち、送受信制御部は、適用中の優先度レベルと、そのメッセージに関わるアプリケーション連携の優先度と、その優先度の処理中メッセージ数および処理済メッセージ数と、その優先度の単位時間あたりの処理可能メッセージ数とに基づいて、そのメッセージの送信を許可するか保留するかの判定を行うとともに、優先度レベルを更新するからである。そして、アプリケーション連携メッセージ送信部が、送信を許可されたメッセージを、その連携先のアプリケーションに送信するからである。そして、周期処理部が、単位時間毎の所定のタイミングで、各優先度の処理済メッセージ数を初期化し、処理中メッセージ数が処理可能メッセージ数を超えている優先度を新たな優先度レベルとして設定するからである。また、周期処理部は、前回の優先度レベルより低く今回の優先度レベル以上の優先度レベルが定められた各アプリケーション連携を保留解除の対象として決定し、決定したアプリケーション連携において保留中となっていたメッセージについて保留を解除するからである。
【００６３】
このようにして、本実施の形態は、優先度レベルより低い優先度のアプリケーション連携の新たなメッセージ処理を保留して、優先度レベル以上のアプリケーション連携のメッセージを優先的に処理することになる。
【００６４】
これにより、本実施の形態は、あるアプリケーション連携で大量のメッセージを受信した場合に、そのアプリケーション連携の優先度の処理可能メッセージ数を超えていなければ、優先度レベルを保持したままそのアプリケーション連携のメッセージ処理を継続できる。また、本実施の形態は、そのアプリケーション連携の優先度の処理可能メッセージ数を超える場合でも、優先度レベルをそのアプリケーション連携の優先度に更新することにより、より低い優先度の他のアプリケーション連携におけるメッセージ処理を保留して、そのアプリケーション連携のメッセージ処理を優先的に継続することができる。また、そのような場合に、本実施の形態は、優先度レベル以上の他のアプリケーション連携についても、メッセージ処理を継続することができる。
【００６５】
そして、本実施の形態は、単位時間ごとに優先度レベルの見直しを行う。このため、優先度の高いアプリケーション連携におけるメッセージ処理が進んで優先度レベルが下がった場合に、メッセージ処理が保留されていたアプリケーション連携の保留を適宜解除してメッセージ処理を再開することができる。この結果、滞留しているメッセージ数を早期に低減することができる。
【００６６】
なお、本実施の形態において、優先度毎の処理可能メッセージ数が、単位時間あたりについて定められたものであるものとして説明した。これに伴い、送受信制御部は、送信の許可判定の際に、該当する優先度における処理中メッセージ数および単位時間での処理済メッセージと、その優先度に定められた単位時間あたりの処理可能メッセージ数とを比較するものとして説明した。このような構成の代わりに、処理可能メッセージ数として、任意の時点において各優先度で処理可能なメッセージ数を定めることも考えられる。この場合、本実施の形態における送受信制御部は、送信の許可判定の際に、該当する優先度における処理中メッセージ数を、その優先度に定められた処理可能メッセージ数と比較すればよい。この場合、本実施の形態における各機能ブロックは、必ずしも各優先度の処理済メッセージ数を参照または更新しなくてもよい。
【００６７】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００６８】
まず、本発明の第２の実施の形態としてのメッセージ交換装置２の構成を図６に示す。
【００６９】
図６において、メッセージ交換装置２は、送信元サーバ８０（８０ａ〜８０ｃ）および送信先サーバ９０（９０ａ〜９０ｃ）と、ネットワークを介して通信可能に接続されている。なお、図６には、送信元サーバ８０および送信先サーバ９０をそれぞれ３つずつ示しているが、本発明のメッセージ交換装置が接続される送信元サーバおよび送信先サーバの数を限定するものではない。また、本発明のメッセージ交換装置が接続される送信元サーバの数は送信先サーバの数に等しくなくても構わない。
【００７０】
送信元サーバ８０は、連携元のアプリケーション８１を有し、連携先のアプリケーション９１宛てのメッセージを、メッセージ交換装置２を介して送信する。本実施の形態では、送信元サーバ８０ａは、アプリケーション８１ａを有し、送信元サーバ８０ｂは、アプリケーション８１ｂを有し、送信元サーバ８０ｃは、アプリケーション８１ｃを有するものとする。
【００７１】
送信先サーバ９０は、連携先のアプリケーション９１を有し、連携元のアプリケーション８１からのメッセージを、メッセージ交換装置２を介して受信する。本実施の形態では、送信先サーバ９０ａは、アプリケーション９１ａを有し、送信先サーバ９０ｂは、アプリケーション９１ｂを有し、送信先サーバ９０ｃは、アプリケーション９１ｃを有するものとする。
【００７２】
また、本実施の形態では、アプリケーション８１ａおよび９１ａが、メッセージ交換装置２を介して互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Ａと呼ぶことにする。同様に、アプリケーション８１ｂおよび９１ｂが互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Ｂと呼ぶことにする。また、アプリケーション８１ｃおよび９１ｃが互いに連携するものとし、これらのアプリケーションの組み合わせを、アプリケーション連携Ｃと呼ぶことにする。
【００７３】
また、本実施の形態では、各アプリケーション８１および各アプリケーション９１が外部とのメッセージ送受信で使用するプロトコルやメッセージ形式は、それぞれが採用する形式であり、必ずしも他と同一ではないものとして説明する。ただし、各アプリケーション８１および各アプリケーション９１が採用するプロトコルやメッセージ形式は、必ずしも他と異なるものでなくてもよい。
【００７４】
次に、メッセージ交換装置２の機能ブロック構成について説明する。
【００７５】
図６において、メッセージ交換装置２は、アプリケーション連携メッセージ受信部２１（２１ａ〜２１ｃ）と、送受信制御部２２と、アプリケーション連携メッセージ送信部２３（２３ａ〜２３ｃ）と、周期処理部２４とを備える。また、送受信制御部２２は、共通メッセージ転送部２２１と、共通メッセージＩＤ管理部２２２と、優先度レベル管理部２２３とを含む。また、これらの各機能ブロックは、図６に示すように、アプリケーション連携情報管理テーブル２０１と、優先度パラメータ管理テーブル２０２と、優先度状況管理テーブル２０３とを適宜参照または更新しながら動作する。
【００７６】
ここで、メッセージ交換装置２およびその各機能ブロックは、本発明の第１の実施の形態と同様に、図２に示したハードウェア要素によって構成可能である。また、アプリケーション連携情報管理テーブル２０１と、優先度パラメータ管理テーブル２０２と、優先度状況管理テーブル２０３とは、例えば、ＲＡＭ１００２、ＲＯＭ１００３、または、記憶装置１００４等に格納される。なお、メッセージ交換装置２およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００７７】
アプリケーション連携情報管理テーブル２０１には、アプリケーション連携を表す情報と、そのアプリケーション連携に定められた優先度とが格納される。本実施の形態では、アプリケーション連携を表す情報は、そのアプリケーション連携を識別する情報（例えば名称）と、メッセージ送受信を担当するアプリケーション連携メッセージ受信部２１およびアプリケーション連携メッセージ送信部２３を表す情報とによって構成される。また、本実施の形態では、優先度としては、「高」、「中」、「低」のいずれかが定められるようになっている。
【００７８】
ここで、アプリケーション連携情報管理テーブル２０１の一例を図７に示す。例えば、図７では、アプリケーション連携Ａについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部２１ａおよびアプリケーション連携メッセージ送信部２３ａであり、優先度「低」が定められている。また、アプリケーション連携Ｂについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部２１ｂおよびアプリケーション連携メッセージ送信部２３ｂであり、優先度「中」が定められている。また、アプリケーション連携Ｃについて、メッセージ送受信の担当はアプリケーション連携メッセージ受信部２１ｃおよびアプリケーション連携メッセージ送信部２３ｃであり、優先度「高」が定められている。
【００７９】
優先度パラメータ管理テーブル２０２には、優先度毎の単位時間あたりの処理可能メッセージ数が格納される。優先度パラメータ管理テーブル２０２の一例を図８に示す。例えば、図８では、優先度「高」については、単位時間あたりの処理可能メッセージ数として「３０」が定められている。
【００８０】
優先度状況管理テーブル２０３には、優先度レベルと、優先度毎の処理中メッセージ数および処理済メッセージ数とが格納される。優先度状況管理テーブル２０３の一例を図９に示す。図９では、現在適用中の優先度レベルは「低」であり、例えば、優先度「高」の処理中メッセージ数は「１３」であり、処理済メッセージ数は「１５」である。なお、本発明の第１の実施の形態と同様に、優先度レベルは、運用開始時には、所定の優先度（例えば、最も低い優先度）に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理中メッセージ数は、運用開始時には、所定の値（例えば、０）に初期化され、以降、他の機能ブロックによって適宜更新される。また、優先度毎の処理済メッセージ数は、運用開始時および単位時間毎に、所定の値（例えば、０）に初期化され、以降、他の機能ブロックによって適宜更新される。
【００８１】
アプリケーション連携メッセージ受信部２１は、担当するアプリケーション８１を有する送信元サーバ８０から、アプリケーション連携のためのメッセージを受信する。受信されるメッセージは、連携元のアプリケーション８１がそれぞれ採用する形式である。例えば、アプリケーション連携メッセージ受信部２１ａは、送信元サーバ８０ａから、送信先サーバ９０ａ宛てのアプリケーション連携Ａのための形式ａ１のメッセージを受信する。また、アプリケーション連携メッセージ受信部２１ｂは、送信元サーバ８０ｂから、送信先サーバ９０ｂ宛てのアプリケーション連携Ｂのための形式ｂ１のメッセージを受信する。アプリケーション連携メッセージ受信部２１ｃは、送信元サーバ８０ｃから、送信先サーバ９０ｃ宛てのアプリケーション連携Ｃのための形式ｃ１のメッセージを受信する。
【００８２】
また、アプリケーション連携メッセージ受信部２１は、アプリケーション８１から受信したメッセージについて共通メッセージＩＤの生成を、後述の共通メッセージＩＤ管理部２２２に対して要求する。このとき、アプリケーション連携メッセージ受信部２１は、そのメッセージに関わるアプリケーション連携を識別する情報を指定して生成要求を行う。共通メッセージＩＤは、共通メッセージＩＤ管理部２２２により、該当するメッセージ送信に対する判定結果が許可であった場合に生成される。
【００８３】
また、アプリケーション連携メッセージ受信部２１は、判定結果が許可で共通メッセージＩＤが生成されると、アプリケーション８１から受信したメッセージを共通形式のメッセージ（共通メッセージ）に変換し、後述の共通メッセージ転送部２２１にその転送を要求する。この後、アプリケーション連携メッセージ受信部２１は、アプリケーション８１に対して処理結果として「正常」を返してもよい。
【００８４】
また、アプリケーション連携メッセージ受信部２１は、判定結果が保留の場合、メッセージの処理を保留する。また、アプリケーション連携メッセージ受信部２１は、後述の周期処理部２４から保留解除通知を受信すると、保留していたメッセージの処理を再開する。
【００８５】
アプリケーション連携メッセージ送信部２３は、後述の共通メッセージ転送部２２１から共通メッセージを受信した場合、メッセージ形式を、連携先のアプリケーション９１が採用する形式に変換し、送信先サーバ９０に送信する。例えば、アプリケーション連携メッセージ送信部２３ａは、共通メッセージを、連携先のアプリケーション９１ａが採用する形式ａ２に変換し、送信先サーバ９０ａに送信する。また、アプリケーション連携メッセージ送信部２３ｂは、共通メッセージを、連携先のアプリケーション９１ｂが採用する形式ｂ２に変換し、送信先サーバ９０ｂに送信する。また、アプリケーション連携メッセージ送信部２３ｃは、共通メッセージを、連携先のアプリケーション９１ｃが採用する形式ｃ２に変換し、送信先サーバ９０ｃに送信する。そして、アプリケーション連携メッセージ送信部２３は、後述の共通メッセージＩＤ管理部２２２に対して、メッセージ処理完了を通知する。なお、アプリケーション連携メッセージ送信部２３は、担当するアプリケーション連携の識別情報を指定して処理完了通知を行えばよい。
【００８６】
共通メッセージ転送部２２１は、アプリケーション連携メッセージ受信部２１から渡された共通メッセージに共通メッセージＩＤを割り当て、そのアプリケーション連携を担当するアプリケーション連携メッセージ送信部２３に転送する。例えば、共通メッセージ転送部２２１は、アプリケーション連携Ａを担当するアプリケーション連携メッセージ受信部２１ａから渡された共通メッセージを、同じアプリケーション連携Ａを担当するアプリケーション連携メッセージ送信部２３ａに転送する。
【００８７】
例えば、共通メッセージ転送部２２１は、Enterprise Service BusにおけるNormalized Message Routerに相当し、メッセージを転送するメッセージバスとして機能する。なお、共通メッセージＩＤはＵＵＩＤ（Universally Unique ＩＤentifier）などのように、ＩＤの一意性を確保できるものを使用していれば、どのような形式であってもよい。
【００８８】
送受信制御部２２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上であれば送信を許可すると判定し、優先度レベルより低ければそのメッセージの送信を保留すると判定する。
【００８９】
また、送受信制御部２２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上である場合、次のようにして優先度レベルを更新するか否かを判定する。この場合、送受信制御部２２は、その優先度の処理済メッセージ数および処理中メッセージ数の合計に１を加算した合計値が、その優先度の処理可能メッセージ数に等しい場合、優先度レベルを、その優先度に更新する。
【００９０】
なお、送受信制御部２２は、受信されたメッセージに関わるアプリケーション連携の優先度が、優先度レベル以上の場合であっても、次のケースでは、そのメッセージの送信を保留すると判定する。そのケースとは、上述の合計値がその優先度の処理可能メッセージ数より大きく、かつ、その優先度が所定の低優先度条件を満たす（例えば、最も低い「低」である）の場合である。
【００９１】
なお、送受信制御部２２は、例えば、共通メッセージ転送部２２１、共通メッセージＩＤ管理部２２２、および、優先度レベル管理部２２３を有することにより、上述した機能を実現することができる。
【００９２】
この場合、共通メッセージＩＤ管理部２２２は、アプリケーション連携メッセージ受信部２１から、共通メッセージＩＤの生成要求を、アプリケーション連携を識別する情報と共に受け取る。そして、共通メッセージＩＤ管理部２２２は、そのアプリケーション連携に定められた優先度についての共通メッセージＩＤの生成可否判定を、優先度レベル管理部２２３に対して要求する。優先度レベル管理部２２３の判定結果が許可の場合、共通メッセージＩＤ管理部２２２は、共通メッセージＩＤを生成し、呼び元のアプリケーション連携メッセージ受信部２１に対して判定結果として「許可」を返す。また、優先度レベル管理部２２３の判定結果が許可の場合、共通メッセージＩＤ管理部２２２は、そのアプリケーション連携についての優先度の処理中メッセージ数を１加算し、優先度状況管理テーブル２０３を更新する。なお、共通メッセージＩＤ管理部２２２は、優先度レベル管理部２２３の判定結果が保留の場合は、呼び元のアプリケーション連携メッセージ受信部２１に対して判定結果として「保留」を返す。
【００９３】
また、共通メッセージＩＤ管理部２２２は、アプリケーション連携メッセージ送信部２３からメッセージ処理完了の通知を受け取ると、そのアプリケーション連携の優先度の処理中メッセージ数を１減算し、処理済メッセージ数を１加算して、優先度状況管理テーブル２０３を更新する。
【００９４】
優先度レベル管理部２２３は、共通メッセージＩＤ管理部２２２から、該当する優先度についての共通メッセージＩＤの生成可否判定の要求を受け取ると、判定対象の優先度に関して共通メッセージＩＤの生成可否判定を行い、判定結果（許可／保留）を返す。
【００９５】
具体的には、優先度レベル管理部２２３は、判定対象の優先度が優先度レベルより低い場合、判定結果として「保留」を返す。
【００９６】
また、優先度レベル管理部２２３は、判定対象の優先度が優先度レベル以上である場合、判定対象の優先度についての「処理中メッセージ数＋処理済メッセージ数＋１」を合計値として算出する。そして、優先度レベル管理部２２３は、合計値が判定対象の優先度の処理可能メッセージ数に等しい場合、優先度状況管理テーブル２０３の優先度レベルを、判定対象の優先度に更新するとともに、判定結果として「許可」を返す。また、優先度レベル管理部２２３は、合計値が判定対象の優先度の処理可能メッセージ数より小さい場合、優先度レベルは更新せずに、判定結果として「許可」を返す。また、優先度レベル管理部２２３は、合計値が判定対象の優先度の処理可能メッセージ数より大きい場合でも、判定対象の優先度が「低」でなければ、優先度レベルは更新せずに、判定結果として「許可」を返す。また、この場合、優先度レベル管理部２２３は、合計値が判定対象の優先度の処理可能メッセージ数より大きく、かつ、判定対象の優先度が「低」の場合は、判定結果として「保留」を返す。
【００９７】
周期処理部２４は、単位時間毎の所定のタイミングで周期動作を実行する。具体的には、周期処理部２４は、各優先度の処理済メッセージ数をクリアするとともに、現在の優先度レベルを前回の優先度レベルとして退避する。また、周期処理部２４は、優先度レベルに初期値として「低」を設定し、最も高い優先度（高）から順番にその優先度の処理中メッセージ数を処理可能メッセージ数と比較していく。そして、周期処理部２４は、優先度レベルを、処理中メッセージ数が処理可能メッセージ数以上の優先度のうち最も高いものに更新する。
【００９８】
また、周期処理部２４は、前回の優先度レベルと新しい優先度レベルとを比較して、前回の優先度レベルの方が高い場合、次のようにしてメッセージの保留解除を通知する。詳細には、周期処理部２４は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度の高い順に、その優先度のアプリケーション連携を担当するアプリケーション連携メッセージ受信部２１に対して、保留解除を通知する。
【００９９】
以上のように構成されたメッセージ交換装置２の動作について、図面を参照して説明する。
【０１００】
なお、以下の動作では、各アプリケーション連携に関して、それぞれの用途の重要度等に基づいてあらかじめ優先度（高／中／低）が定められ、図７に示したように、アプリケーション連携情報管理テーブル２０１に登録されているものとする。また、優先度毎に、その優先度が定められた各アプリケーション連携の性能要件等に基づいて、あらかじめ単位時間あたりの処理可能メッセージ数が定められ、図８に示したように、優先度パラメータ管理テーブル２０２に登録されているものとする。また、優先度レベル見直しの周期として使用される単位時間は、性能要件等に基づいてあらかじめが定められているものとする。例えば、性能要件が１秒間あたりのメッセージ処理数であれば、単位時間は１秒に定められ、性能要件が１０秒間あたりのメッセージ処理数であれば、単位時間は１０秒に定められていてもよい。
【０１０１】
まず、メッセージ交換装置２が、アプリケーション連携のためのメッセージを受信する動作を、図１０に示す。
【０１０２】
図１０では、まず、アプリケーション連携メッセージ受信部２１は、送信元サーバ８０のアプリケーション８１から、該アプリケーション８１が採用する形式のメッセージを受信する（ステップＡ１）。
【０１０３】
次に、アプリケーション連携メッセージ受信部２１は、共通メッセージＩＤ管理部２２２に、ステップＡ１で受信されたメッセージに割り当てるための共通メッセージＩＤの生成を要求する（ステップＡ２）。このとき、アプリケーション連携メッセージ受信部２１は、このメッセージに関わるアプリケーション連携の識別情報を指定して生成要求を行う。
【０１０４】
次に、共通メッセージＩＤ管理部２２２は、通知されたアプリケーション連携の識別情報に基づいて、その優先度をアプリケーション連携情報管理テーブル２０１から取得する。そして、共通メッセージＩＤ管理部２２２は、取得した優先度を指定して、優先度レベル管理部２２３に対して共通メッセージＩＤの生成可否判定を要求する（ステップＡ３）。
【０１０５】
次に、優先度レベル管理部２２３は、優先度状況管理テーブル２０３から優先度レベルを取得し、取得した優先度レベルが、ステップＡ３で要求された際に指定されたアプリケーション連携の優先度より小さいか否かを判断する（ステップＡ４）。
【０１０６】
ここで、アプリケーション連携の優先度が優先度レベルより小さい場合（ステップＡ４でＹｅｓ）、優先度レベル管理部２２３は、このメッセージに対する共通メッセージＩＤの生成を保留すると判定する（ステップＡ１１）。
【０１０７】
一方、アプリケーション連携の優先度が優先度レベル以上である場合（ステップＡ４でＮｏ）、優先度レベル管理部２２３は、優先度状況管理テーブル２０３から、該当するアプリケーション連携の優先度について処理中メッセージ数および処理済メッセージ数を取得する。そして、優先度レベル管理部２２３は、その優先度について「処理中メッセージ数＋処理済メッセージ数＋１」を合計値として算出する（ステップＡ５）。
【０１０８】
次に、優先度レベル管理部２２３は、優先度パラメータ管理テーブル２０２から、該当するアプリケーション連携の優先度の処理可能メッセージ数を取得し、取得した処理可能メッセージ数およびステップ５で算出した合計値が等しいか否かを判断する（ステップＡ６）。
【０１０９】
ここで、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数に等しい場合（ステップＡ６でＹｅｓ）、優先度レベル管理部２２３は、優先度状況管理テーブル２０３における優先度レベルを、そのアプリケーション連携の優先度に更新する（ステップＡ７）。
【０１１０】
そして、優先度レベル管理部２２３は、このメッセージに対する共通メッセージＩＤの生成を許可すると判定する（ステップＡ１０）。
【０１１１】
一方、ステップＡ６において、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数に等しくないと判断された場合（ステップＡ６でＮｏ）、優先度レベル管理部２２３は、上述の合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数より小さいか否かを判断する（ステップＡ８）。
【０１１２】
ここで、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数より小さい場合（ステップＡ８でＹｅｓ）、優先度レベル管理部２２３は、ステップＡ１０を実行し、このメッセージに対する共通メッセージＩＤの生成を許可すると判定する。
【０１１３】
一方、合計値が、そのアプリケーション連携の優先度の処理可能メッセージ数以上である場合（ステップＡ８でＮｏ）、優先度レベル管理部２２３は、そのアプリケーション連携の優先度が「低」でないか否かを判断する（ステップＡ９）。
【０１１４】
ここで、そのアプリケーション連携の優先度が「低」でない場合（ステップＡ９でＹｅｓ）、優先度レベル管理部２２３は、ステップＡ１０を実行し、このメッセージに対する共通メッセージＩＤの生成を許可すると判定する。
【０１１５】
一方、そのアプリケーション連携の優先度が「低」である場合（ステップＡ９でＮｏ）、優先度レベル管理部２２３は、ステップＡ１１を実行し、このメッセージに対する共通メッセージＩＤの生成を保留すると判定する。
【０１１６】
次に、ステップＡ１０で許可と判定された場合（ステップＡ１２でＹｅｓ）、共通メッセージＩＤ管理部２２２は、優先度状況管理テーブル２０３において、該当するアプリケーション連携の優先度についての処理中メッセージ数を１加算する。そして、共通メッセージＩＤ管理部２２２は、共通メッセージＩＤを生成し、生成した共通メッセージＩＤおよび判定結果として「許可」を表す情報を、アプリケーション連携メッセージ受信部２１に対して通知する（ステップＡ１３）。
【０１１７】
そして、アプリケーション連携メッセージ受信部２１は、ステップＡ１で受信したメッセージを共通メッセージに変換し、変換した共通メッセージの転送を、共通メッセージ転送部２２１に対して要求する（ステップＡ１４）。そして、アプリケーション連携メッセージ受信部２１は、アプリケーション８１に対して処理結果として「正常」を表す情報を通知して、処理を終了する。
【０１１８】
また、ステップＡ１１で保留と判定された場合（ステップＡ１２でＮｏ）、アプリケーション連携メッセージ受信部２１は、周期処理部２４から保留解除通知を受信するまで、アプリケーション８１から受信したメッセージの処理を保留する（ステップＡ１５）。
【０１１９】
以上で、メッセージ交換装置２は、アプリケーション連携のためのメッセージを受信する動作を終了する。
【０１２０】
次に、メッセージ交換装置２が、アプリケーション連携のためのメッセージを送信する動作を、図１１に示す。
【０１２１】
図１１では、まず、アプリケーション連携メッセージ送信部２３は、共通メッセージ転送部２２１から、共通メッセージを受信する（ステップＢ１）。
【０１２２】
次に、アプリケーション連携メッセージ送信部２３は、共通メッセージを、連携先のアプリケーション９１が採用する形式に変換する。そして、アプリケーション連携メッセージ送信部２３は、変換したメッセージを、そのアプリケーション９１を有する送信先サーバ５に対して送信する（ステップＢ２）。
【０１２３】
次に、アプリケーション連携メッセージ送信部２３は、共通メッセージＩＤ管理部２２２に対して、メッセージ処理完了を通知する（ステップＢ３）。このとき、アプリケーション連携メッセージ送信部２３は、担当するアプリケーション連携の識別情報を指定して通知を行う。
【０１２４】
次に、共通メッセージＩＤ管理部２２２は、アプリケーション連携メッセージ送信部２３から通知されたアプリケーション連携の識別情報に基づいて、その優先度をアプリケーション連携情報管理テーブル２０１から取得する。そして、共通メッセージＩＤ管理部２２２は、その優先度について優先度状況管理テーブル２０３に格納された処理中メッセージ数を１減算し、処理済メッセージ数を１加算する（ステップＢ４）。
【０１２５】
以上で、メッセージ交換装置２は、アプリケーション連携のためのメッセージを送信する動作を終了する。
【０１２６】
次に、メッセージ交換装置２が、優先度レベルを見直すための周期動作を、図１２〜図１３に示す。なお、以下の動作は、タイマー処理など既知の手法により周期処理部２４が単位時間毎に起動されることにより実行される。
【０１２７】
図１２では、まず、周期処理部２４は、優先度状況管理テーブル２０３において、各優先度の処理済メッセージ数を０に初期化する。また、周期処理部２４は、優先度状況管理テーブル２０３に格納された優先度レベルを、前回の優先度レベルとして退避する（ステップＣ１）。
【０１２８】
次に、周期処理部２４は、今回の優先度レベルに、初期値として「低」を設定する（ステップＣ２）。
【０１２９】
次に、周期処理部２４は、処理対象優先度に、最も高い優先度「高」を設定する（ステップＣ３）。なお、処理対象優先度とは、以降の処理において対象となる優先度をいうものとする。
【０１３０】
次に、周期処理部２４は、処理対象優先度が「低」より大きいか否かを判断する（ステップＣ４）。
【０１３１】
ここで、処理対象優先度が「低」より大きい場合（ステップＣ４でＹｅｓ）、周期処理部２４は、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数以上であるか否かを判断する（ステップＣ５）。
【０１３２】
ここで、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数以上である場合（ステップＣ５でＹｅｓ）、周期処理部２４は、今回の優先度レベルに、処理対象優先度を設定する（ステップＣ７）。そして、メッセージ交換装置２の動作は、後述のステップＣ８以降の処理に移る。
【０１３３】
一方、処理対象優先度の処理中メッセージ数が、処理対象優先度の処理可能メッセージ数より小さい場合、周期処理部２４は、処理対象優先度に一段低い優先度を設定して（ステップＣ６）、ステップＣ４からの動作を繰り返す。
【０１３４】
また、ステップＣ４において、処理対象優先度が「低」である場合（ステップＣ４でＮｏ）、メッセージ交換装置２の動作は、今回の優先度レベルが初期値「低」に設定されたまま、後述のステップＣ８以降の処理に移る。これは、優先度「高」「中」において処理中メッセージ数が処理可能メッセージ数より小さかった場合である。
【０１３５】
次に、図１３のステップＣ８において、周期処理部２４は、優先度状況管理テーブル２０３の優先度レベルを、今回の優先度レベルに更新する（ステップＣ８）。
【０１３６】
次に、周期処理部２４は、前回の優先度レベルが、更新された新たな優先度レベルより大きいか否かを判断する（ステップＣ９）。
【０１３７】
ここで、前回の優先度レベルが、新たな優先度レベル以下である場合（ステップＣ９でＮｏ）、メッセージ交換装置２は、周期動作を終了する。
【０１３８】
一方、前回の優先度レベルが、新たな優先度レベルより大きい場合（ステップＣ９でＹｅｓ）、周期処理部２４は、処理対象優先度に、前回の優先度レベルより一段低い優先度を設定する（ステップＣ１０）。
【０１３９】
次に、周期処理部２４は、アプリケーション連携情報管理テーブル２０１において優先度が処理対象優先度と一致する各アプリケーション連携について、そのアプリケーション連携を担当するアプリケーション連携メッセージ受信部２１に対して、保留解除を通知する（ステップＣ１１）。
【０１４０】
次に、保留解除を通知されたアプリケーション連携メッセージ受信部２１は、該当するアプリケーション連携について保留していたメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部２１は、この周期動作とは非同期に、保留していたメッセージについて図１０に示した動作を行う（ステップＣ１２）。
【０１４１】
次に、周期処理部２４は、処理対象優先度が「低」より大きいか否かを判断する（ステップＣ１３）。
【０１４２】
ここで、処理対象優先度が「低」の場合（ステップＣ１３でＮｏ）、メッセージ交換装置２は、周期動作を終了する。
【０１４３】
一方、処理対象優先度が「低」より大きい場合（ステップＣ１３でＹｅｓ）、周期処理部２４は、処理対象優先度に一段低い優先度を設定して（ステップＣ１４）、ステップＣ１１からの処理を繰り返す。
【０１４４】
以上で、メッセージ交換装置２は、優先度レベルを見直すための周期動作を終了する。
【０１４５】
次に、本発明の第２の実施の形態の効果について述べる。
【０１４６】
本発明の第２の実施の形態としてのメッセージ交換装置は、あるアプリケーション連携において一時的に大量のメッセージを受信した場合に、全体のサービスレベルを低下させることなく、さらに効率的なメッセージ処理を行うことができる。
【０１４７】
その理由は、送受信制御部が、送信対象となるメッセージの関わるアプリケーション連携の優先度が優先度レベル以上である場合、その優先度について「処理中メッセージ数＋処理済メッセージ数＋１」を合計値として算出するからである。さらに、送受信制御部は、算出した合計値がその優先度の処理可能メッセージ数に達している場合に、優先度レベルを、そのアプリケーション連携の優先度に更新するからである。また、送受信制御部が、優先度レベルより低い優先度のアプリケーション連携の新たなメッセージ処理を保留するが、優先度レベル以上のアプリケーション連携に関しては、継続して新たなメッセージの処理を許可するためである。
【０１４８】
これにより、本実施の形態は、あるアプリケーション連携で大量のメッセージを受信しても、そのアプリケーション連携の優先度が優先度レベル以上であれば、その優先度の処理可能メッセージ数を超えないうちは、優先度レベルを維持したまま、優先度レベル以上の各アプリケーション連携のメッセージ処理を継続できる。そして、本実施の形態は、そのアプリケーション連携で大量のメッセージの受信が続き、その優先度の処理可能メッセージ数を超えた場合には、優先度レベルをそのアプリケーション連携の優先度に切り替えることになる。これにより、本実施の形態は、そのアプリケーション連携より低い優先度のアプリケーション連携に関わるメッセージ処理を保留して、そのアプリケーション連携のメッセージ処理を優先することができる。しかも、このような場合であっても、本実施の形態は、そのアプリケーション連携より高い優先度のアプリケーション連携のメッセージ処理については、継続することができる。
【０１４９】
また、本実施の形態は、ある優先度のアプリケーション連携において処理中メッセージ数が増えるような状況の場合、その優先度以上のアプリケーション連携のメッセージ変換の処理の優先を継続することができる。
【０１５０】
その理由は、周期処理部が、単位時間毎に、優先度の処理中メッセージ数が処理可能メッセージ数以上になっているかをチェックし、その条件を満たす場合は、優先度レベルを該当する優先度に更新するためである。
【０１５１】
また、本実施の形態は、優先度の高いメッセージの処理が進んで優先度レベルが下がった場合に、メッセージ処理を保留されていたアプリケーション連携のうち優先度の高い順から処理を再開し、メッセージ交換装置全体で滞留しているメッセージ数を早期に低減することができる。
【０１５２】
その理由は、周期処理部が、メッセージ処理を保留されていたアプリケーション連携に対して、優先度の高いものから順に保留解除通知を行うからである。これにより、優先度の高いアプリケーション連携のメッセージほど、より早期に処理が再開されることになる。
【０１５３】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第２の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１５４】
まず、本発明の第３の実施の形態としてのメッセージ交換装置３の構成を図１４に示す。
【０１５５】
図１４において、メッセージ交換装置３は、送信元サーバ８０（８０ａ〜８０ｄ）および送信先サーバ９０（９０ａ〜９０ｄ）と、ネットワークを介して通信可能に接続されている。なお、図１４には、送信元サーバ８０および送信先サーバ９０をそれぞれ４つずつ示しているが、本発明のメッセージ交換装置が接続される送信元サーバおよび送信先サーバの数を限定するものではない。また、本発明のメッセージ交換装置が接続される送信元サーバの数は送信先サーバの数に等しくなくても構わない。
【０１５６】
送信元サーバ８０ｄは、本発明の第２の実施の形態における送信元サーバ８０ａ〜８０ｃと同様に構成され、アプリケーション８１ｄを有する。
【０１５７】
送信先サーバ９０ｄは、本発明の第２の実施の形態における送信先サーバ９０ａ〜９０ｃと同様に構成され、アプリケーション９１ｄを有する。
【０１５８】
また、本実施の形態では、アプリケーション８１ａ〜８１ｃは、本発明の第２の実施の形態と同様に、それぞれアプリケーション９１ａ〜９１ｃと互いに連携し、各アプリケーションの組み合わせを、それぞれアプリケーション連携Ａ〜Ｃと呼ぶ。また、アプリケーション８１ｄは、アプリケーション９１ｄと互いに連携し、このアプリケーションの組み合わせを、アプリケーション連携Ｄと呼ぶものとする。
【０１５９】
また、各アプリケーション８１および各アプリケーション９１が外部のアプリケーションとのメッセージ送受信で使用するプロトコルやメッセージ形式は、本発明の第２の実施の形態と同様に、それぞれが採用する形式であり、必ずしも他と同一ではないものとして説明する。ただし、本発明の第２の実施の形態と同様に、各アプリケーション８１および各アプリケーション９１が採用するプロトコルやメッセージ形式は、必ずしも他と異なるものでなくてもよい。
【０１６０】
次に、メッセージ交換装置３の機能ブロック構成について説明する。
【０１６１】
図１４において、メッセージ交換装置３は、本発明の第２の実施の形態としてのメッセージ交換装置２に対して、送受信制御部２２に替えて送受信制御部３２と、周期処理部２４に替えて周期処理部３４とを備える点が異なる。また、送受信制御部３２は、本発明の第２の実施の形態における送受信制御部２２に対して、共通メッセージＩＤ管理部２２２に替えて共通メッセージＩＤ管理部３２２と、優先度レベル管理部２２３に替えて優先度レベル管理部３２３とを備える点が異なる。また、周期処理部３４は、周期処理管理部３４１と、保留解除通知状況管理部３４２とを含む。
【０１６２】
また、メッセージ交換装置３は、本発明の第２の実施の形態としてのメッセージ交換装置２に対して、さらに、アプリケーション連携メッセージ受信部２１ｄおよびアプリケーション連携メッセージ送信部２３ｄを含む。アプリケーション連携メッセージ受信部２１ｄおよびアプリケーション連携メッセージ送信部２３ｄの構成は、本発明の第２の実施の形態におけるアプリケーション連携メッセージ受信部２１ａ〜２１ｃおよびアプリケーション連携メッセージ送信部２３ａ〜２３ｃと同様であるため、本実施の形態における詳細な説明を省略する。
【０１６３】
また、これらの各機能ブロックは、図１４に示すように、アプリケーション連携情報管理テーブル３０１と、優先度パラメータ管理テーブル２０２と、優先度状況管理テーブル２０３と、共通メッセージＩＤ管理テーブル３０４と、保留解除通知状況管理テーブル３０５とを適宜参照または更新しながら動作する。
【０１６４】
ここで、メッセージ交換装置３およびその各機能ブロックは、本発明の第１の実施の形態と同様に、図２に示したハードウェア要素によって構成可能である。また、アプリケーション連携情報管理テーブル３０１と、優先度パラメータ管理テーブル２０２と、優先度状況管理テーブル２０３と、共通メッセージＩＤ管理テーブル３０４と、保留解除通知状況管理テーブル３０５とは、例えば、ＲＡＭ１００２、ＲＯＭ１００３、または、記憶装置１００４等に格納される。なお、メッセージ交換装置３およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【０１６５】
送受信制御部３２は、本発明の第２の実施の形態における送受信制御部２２と略同様に構成されることに加えて、アプリケーション連携毎に、過去のメッセージ処理時間の統計値を算出する。例えば、送受信制御部３２は、共通メッセージＩＤ管理部３２２および優先度レベル管理部３２３を有することにより、この追加された機能を実現することができる。送受信制御部３２に含まれる各機能ブロックと、これらの各機能ブロックによって参照および更新されるアプリケーション連携情報管理テーブル３０１および共通メッセージＩＤ管理テーブル３０４とについて説明する。
【０１６６】
アプリケーション連携情報管理テーブル３０１には、本発明の第２の実施の形態と同様の情報に加えて、各アプリケーション連携について、累計処理メッセージ数、累計処理時間、処理時間の統計値、および、保留通知要フラグを表す情報が格納される。累計処理時間は、そのアプリケーション連携において過去に処理されたメッセージの処理時間の累計を表す。また、処理時間の統計値は、そのアプリケーション連携において過去に処理されたメッセージ処理時間の統計値を表す。例えば、統計値は、処理時間の平均値（平均処理時間）であってもよい。アプリケーション連携情報管理テーブル３０１に格納される情報の一例を図１５に示す。なお、図１５に示す累計処理時間および平均処理時間の単位は、後述の共通メッセージＩＤ管理テーブル３０４のＩＤ発行時刻の最少単位にあわせた単位（この例ではミリ秒）となっている。また、アプリケーション連携情報管理テーブル３０１に格納される累計処理メッセージ数、累計処理時間および平均処理時間は、メッセージ交換装置３の運用開始時に、所定の値（例えば、０等）に初期化される。
【０１６７】
共通メッセージＩＤ管理テーブル３０４には、処理中の各メッセージについて、処理時間を算出するための情報が格納される。例えば、共通メッセージＩＤ管理テーブル３０４には、そのメッセージについての処理を開始した時刻として、共通メッセージＩＤの発行時刻が格納されてもよい。共通メッセージＩＤ管理テーブル３０４に格納される情報の一例を、図１６に示す。図１６では、共通メッセージＩＤに対応付けて、共通メッセージＩＤ発行時刻（ミリ秒まで）が格納されている。
【０１６８】
共通メッセージＩＤ管理部３２２は、本発明の第２の実施の形態における共通メッセージＩＤ管理部２２２と同様に構成されることに加えて、各メッセージについて、その処理時間を算出するための情報を、共通メッセージＩＤ管理テーブル３０４に登録する。具体的には、共通メッセージＩＤ管理部３２２は、共通メッセージＩＤを生成した後に、共通メッセージＩＤ管理テーブル３０４に、共通メッセージＩＤをキーとして共通メッセージＩＤの発行時刻を含むレコードを登録する。
【０１６９】
また、共通メッセージＩＤ管理部３２２は、メッセージの送信完了を通知されると、通知された時刻と、共通メッセージＩＤ管理テーブル３０４に格納されたメッセージＩＤ発行時刻との差分を、メッセージ処理時間として算出する。そして、共通メッセージＩＤ管理部３２２は、共通メッセージＩＤ管理テーブル３０４から、その共通メッセージＩＤのレコードを削除する。そして、共通メッセージＩＤ管理部３２２は、算出したメッセージ処理時間と、該当するアプリケーション連携についての累計処理メッセージ数および累計処理時間とを用いて、メッセージ処理時間の統計値（例えば、平均処理時間）を算出する。そして、共通メッセージＩＤ管理部３２２は、算出した情報を用いて、アプリケーション連携情報管理テーブル３０１を更新する。
【０１７０】
優先度レベル管理部３２３は、本発明の第２の実施の形態における優先度レベル管理部２２３と同様に構成されることに加えて、優先度レベルを更新後、後述の保留解除通知状況管理テーブル３０５において通知中優先度を「対象無」に設定し、保留解除通知カウンタを０に設定する。
【０１７１】
周期処理部３４は、本発明の第２の実施の形態における周期処理部２４に対して、保留解除の通知タイミングおよび通知順序が異なる。
【０１７２】
具体的には、周期処理部３４は、保留解除の通知対象となるアプリケーション連携にのうち、優先度に基づく順に、かつ、同じ優先度の中では、各アプリケーション連携における過去のメッセージ処理時間の統計値に基づく順に、保留解除の通知を行う。アプリケーション連携毎のメッセージ処理時間の統計値とは、例えば、前述のように、メッセージの平均処理時間であってもよい。この場合、周期処理部３４は、同じ優先度の中では、平均処理時間の小さい順に、保留解除の通知を行ってもよい。
【０１７３】
また、周期処理部３４は、保留解除の通知対象となる各アプリケーション連携について、それぞれを担当するアプリケーション連携メッセージ受信部２３に対して、所定の解除間隔毎に、順次保留解除を通知する。つまり、周期処理部３４は、保留解除の通知対象となるアプリケーション連携のうち、上述の優先度およびメッセージ処理時間の統計値に基づく順序において最初のものについて、まず、保留解除の通知を行う。そして、周期処理部３４は、所定の解除間隔経過後に、その順序において次のアプリケーション連携に対して、保留解除の通知を行う。以降、周期処理部３４は、所定の解除間隔毎に、上述の順序にしたがって、残りの保留解除通知対象のアプリケーション連携について、保留解除の通知を順次行う。
【０１７４】
例えば、周期処理部３４は、周期処理管理部３４１と、保留解除通知状況管理部３４２とを有することにより、上述した機能を実現することができる。周期処理部３４に含まれる各機能ブロックと、これらの機能ブロックによって参照される保留解除通知状況管理テーブル３０５との構成について、以下に説明する。
【０１７５】
保留解除通知状況管理テーブル３０５には、保留解除を通知中の優先度を示す「通知中優先度」と、保留解除通知間隔と、保留解除通知カウンタとが格納される。保留解除通知間隔は、周期処理部３４による周期動作の間隔として定められた単位時間に乗ずるパラメータである。すなわち、単位時間×保留解除通知間隔が、前述の解除間隔となる。保留解除通知カウンタは、解除間隔の経過をカウントするために用いられる変数である。
【０１７６】
保留解除通知状況管理テーブル３０５に格納される情報の一例を図１７に示す。図１７は、この時点で保留解除を通知中の優先度は無い（「対象無」である）ことを表している。また、保留解除通知間隔は「２」と定められている。例えば、保留解除通知の対象となる優先度「中」のアプリケーション連携が２つ存在する場合について考える。この場合、優先度「中」でメッセージの平均処理時間が小さい一方のアプリケーション連携の保留解除通知を行ってから単位時間×保留解除通知間隔経過後に、他方のアプリケーション連携に対して、保留解除通知が行われる。
【０１７７】
周期処理管理部３４１は、前回の優先度レベルが新たな優先度レベルより大きい場合、（すなわち、優先度レベルが前回より下がった場合）、通知中優先度が「対象無」であり、保留解除通知間隔が０に設定されていれば、次のように動作するよう構成される。この場合、周期処理管理部３４１は、本発明の第２の実施の形態における周期処理部２４と同様に動作する。つまり、この場合、周期処理管理部３４１は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度の高い各アプリケーション連携を担当するアプリケーション連携メッセージ受信部２１に対して、保留解除を通知する。
【０１７８】
また、周期処理管理部３４１は、優先度レベルが前回より下がった場合で、通知中優先度が「対象無」であり、保留解除通知間隔として０より大きい値が設定されていれば、次のように動作するよう構成される。この場合、周期処理管理部３４１は、前回の優先度レベルより低く、かつ、現在の優先度レベル以上の優先度のうち、最も高いものを処理対象優先度として処理を行う。そして、周期処理管理部３４１は、処理対象優先度のアプリケーション連携のうち平均処理時間が一番小さいアプリケーション連携について、保留解除通知を送信する。この場合、周期処理管理部３４１は、１回の周期動作において、１つのアプリケーション連携について保留解除の通知を行い、次のアプリケーション連携についての保留解除の通知は、解除間隔経過後の周期動作において行う。そのため、周期処理管理部３４１は、通知中優先度に処理対象優先度を設定しておく。また、周期処理部３４は、処理対象優先度のアプリケーション連携のうち、保留解除通知を送信していないものについて、アプリケーション連携情報管理テーブル３０１の保留通知要フラグを「オン」に設定しておく。
【０１７９】
また、周期処理管理部３４１は、前回の優先度レベルが新たな優先度レベル以下である場合（すなわち、優先度レベルが前回と同じか、上がった場合）、または、通知中優先度にいずれかの優先度が設定されている場合、保留解除通知状況管理部３４２を呼び出して機能させる。なお、周期処理管理部３４１は、保留解除通知済フラグを用いて、保留解除通知状況管理部３４２を呼び出すか否かを判定してもよい。その場合、周期処理管理部３４１は、周期動作の初めに保留解除通知済フラグをオフに設定しておき、優先度レベルが前回より下がった場合で、かつ、通知中優先度が「対象無」であると判定した場合、オンに設定すればよい。この場合、周期処理管理部３４１は、保留解除通知済フラグがオフである場合に、保留解除通知状況管理部３４２を呼び出せばよい。
【０１８０】
保留解除通知状況管理部３４２は、アプリケーション連携情報管理テーブル３０１の通知中優先度が「対象無」でない場合、すなわち、前回までの周期動作における通知中優先度でまだ保留解除を通知していないアプリケーション連携がある場合、次のように動作するよう構成される。この場合、保留解除通知状況管理部３４２は、通知中優先度が優先度レベル以上であれば、保留解除通知カウンタを１加算する。そして、保留解除通知状況管理部３４２は、保留解除通知間隔の値が保留解除通知カウンタの値と等しければ、前回の保留解除から解除間隔経過したと判断できる。そこで、この場合、保留解除通知状況管理部３４２は、通知中優先度の示す優先度のアプリケーション連携のうち、保留通知要フラグがオンかつ平均処理時間が一番小さいアプリケーション連携に対して、保留解除通知を送信する。
【０１８１】
そして、保留解除通知状況管理部３４２は、保留解除通知カウンタに０を設定するとともに、通知したアプリケーション連携の保留通知要フラグにオフを設定する。そして、保留解除通知状況管理部３４２は、通知中優先度のアプリケーション連携のうち、他に保留通知要フラグがオンのものが存在しない場合、通知中優先度を、１つ低い優先度に設定する。このとき、保留解除通知状況管理部３４２は、通知中優先度が既に「低」であれば、通知中優先度を「対象無」に設定すればよい。
【０１８２】
なお、通知中優先度が「対象無」でない場合であっても、通知中優先度が優先度レベルより低い場合も想定される。これは、前回の周期動作以降に、優先度レベルが上がっている場合である。その場合、保留解除通知状況管理部３４２は、これ以上保留解除を通知するアプリケーション連携はないとして、通知中優先度に「対象無」を設定し、保留解除通知カウンタに０を設定する。
【０１８３】
以上のように構成されたメッセージ交換装置３の動作について、図面を参照して説明する。なお、以下の動作では、各アプリケーション連携の優先度（高／中／低）、優先度毎の処理可能メッセージ数が定められ、アプリケーション連携情報管理テーブル３０１、優先度パラメータ管理テーブル２０２にそれぞれ格納されているものとする。また、保留解除の間隔を定めるためのパラメータである保留解除通知間隔が定められ、保留解除通知状況管理テーブル３０５に格納されているものとする。また、単位時間の長さが、あらかじめ定められているものとする。
【０１８４】
まず、メッセージ交換装置３が、アプリケーション連携のためのメッセージを受信する動作を、図１８に示す。
【０１８５】
図１８では、まず、メッセージ交換装置３は、本発明の第２の実施の形態と同様にステップＡ１〜Ａ６まで動作する。すなわち、受信されたメッセージに関わるアプリケーション連携の優先度が、その時点での優先度レベル以上であり（ステップＡ４でＮｏ）、その優先度の「処理中メッセージ数＋処理済メッセージ数＋１」（合計値）が、その優先度の処理可能メッセージ数に等しいか否かが判断される（ステップＡ５〜Ａ６）。
【０１８６】
ここで、その優先度の合計値が、その優先度の処理可能メッセージ数に等しい場合（ステップＡ６でＹｅｓ）、優先度レベル管理部３２３は、優先度レベルに、該当するアプリケーション連携の優先度を設定する。さらに、優先度レベル管理部３２３は、保留解除通知状況管理テーブル３０５の通知中優先度を「対象無」に設定し、保留解除通知カウンタを０に設定する（ステップＤ７）。そして、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＡ１０〜Ａ１２まで動作する。
【０１８７】
また、受信されたメッセージに関わるアプリケーション連携の優先度が、その時点での優先度レベルより小さい場合（ステップＡ４でＹｅｓ）、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＡ１１〜Ａ１２まで動作する。
【０１８８】
また、その優先度に関する上述の合計値が、その優先度の処理可能メッセージ数に等しくない場合（ステップＡ６でＮｏ）、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＡ８〜Ａ１２まで動作する。
【０１８９】
次に、共通メッセージＩＤ生成可否の判定結果が許可である場合（ステップＡ１２でＹｅｓ）、共通メッセージＩＤ管理部３２２は、そのアプリケーション連携の優先度についての処理中メッセージ数を１加算する。そして、共通メッセージＩＤ管理部３２２は、そのメッセージに割り当てる共通メッセージＩＤを生成する。そして、共通メッセージＩＤ管理部３２２は、共通メッセージＩＤをキーとして、共通メッセージＩＤ発行時刻に現在時刻を設定したレコードを、共通メッセージＩＤ管理テーブル３０４に登録する。そして、共通メッセージＩＤ管理部３２２は、アプリケーション連携メッセージ受信部２１に対して、共通メッセージＩＤおよび判定結果「許可」を表す情報を返却する（ステップＤ１３）。
【０１９０】
そして、メッセージ交換装置３は、本発明の第２の実施の形態と同様にステップＡ１４の動作を実行し、連携元の形式から変換した共通メッセージの転送を、共通メッセージ転送部２２１に対して要求する。
【０１９１】
また、共通メッセージＩＤ生成可否の判定結果が保留である場合（ステップＡ１２でＮｏ）、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＡ１５の動作を実行し、保留解除が通知されるまで、メッセージの処理を保留する。
【０１９２】
以上で、メッセージ交換装置３は、アプリケーション連携のためのメッセージを受信する動作を終了する。
【０１９３】
次に、メッセージ交換装置３が、アプリケーション連携のためのメッセージを送信する動作を、図１９に示す。
【０１９４】
図１９では、まず、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＢ１からＢ２まで動作して、共通メッセージから連携先の形式に変換したメッセージを、連携先に送信する。
【０１９５】
次に、アプリケーション連携メッセージ送信部２３は、担当するアプリケーション連携の識別情報および共通メッセージＩＤを指定して、共通メッセージＩＤ管理部３２２に対してメッセージ処理完了を通知する（ステップＥ３）。
【０１９６】
そして、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、ステップＢ４の動作を実行し、該当する優先度の処理中メッセージ数および処理済メッセージ数を更新する。
【０１９７】
次に、共通メッセージＩＤ管理部３２２は、共通メッセージＩＤをキーとして共通メッセージＩＤ管理テーブル３０４を参照することにより、共通メッセージＩＤ発行時刻を取得する。そして、共通メッセージＩＤ管理部３２２は、現在時刻と共通メッセージＩＤ発行時刻との差分を、メッセージ処理時間として算出する。そして、共通メッセージＩＤ管理部３２２は、共通メッセージＩＤ管理テーブル３０４から、その共通メッセージＩＤのレコードを削除する（ステップＥ５）。
【０１９８】
次に、共通メッセージＩＤ管理部３２２は、該当するアプリケーション連携についてアプリケーション連携情報管理テーブル３０１に格納された累計処理メッセージ数、累計処理時間および平均処理時間を更新する。具体的には、共通メッセージＩＤ管理部３２２は、累計処理メッセージ数に、１を加算して更新する、また、共通メッセージＩＤ管理部３２２は、累計処理時間に、ステップＥ５で算出したメッセージ処理時間を加算して更新する。また、共通メッセージＩＤ管理部３２２は、平均処理時間として、累計処理時間を累計処理メッセージ数で割った商を算出して更新する（ステップＥ６）。
【０１９９】
以上で、メッセージ交換装置３は、アプリケーション連携のためのメッセージを送信する動作を終了する。
【０２００】
次に、メッセージ交換装置３が、優先度レベルを見直すための周期動作を、図１２および図２０〜図２２を用いて説明する。
【０２０１】
まず、メッセージ交換装置３は、本発明の第２の実施の形態と同様に、図１２に示したステップＣ１からＣ７まで動作して、前回の優先度レベルを退避し、今回の優先度レベルを設定する。
【０２０２】
次に、図２０において、周期処理管理部３４１は、優先度状況管理テーブル２０３の優先度レベルに今回の優先度レベル設定し、保留解除通知済フラグをオフに設定する（ステップＦ８）。前述のように、保留解除通知済フラグは、後のステップにおいて、保留解除通知状況管理部３４２を呼び出すか否かを判定するフラグとして用いられる。
【０２０３】
次に、周期処理管理部３４１は、前回の優先度レベルが、新たな優先度レベルより大きく、かつ、通知中優先度が「対象無」であるか否かを判断する（ステップＦ９）。
【０２０４】
ここで、前回の優先度レベルが、新たな優先度レベル以下であるか、または、通知中優先度が「対象無」でない場合（ステップＦ９でＮｏ）、メッセージ交換装置３の動作は、後述のステップＦ２３に移行する。
【０２０５】
一方、前回の優先度レベルが、新たな優先度レベルより大きく、かつ、通知中優先度が「対象無」である場合（ステップＦ９でＹｅｓ）、周期処理管理部３４１は、処理対象優先度に、前回の優先度レベルより１段低い優先度を設定し、保留解除通知済フラグにオンを設定する（ステップＦ１０）。処理対象優先度とは、前述のように、以降の処理で対象となる優先度をいう。
【０２０６】
次に、周期処理管理部３４１は、保留解除通知状況管理テーブル３０５に設定された保留解除通知間隔が０より大きいか否かを判断する（ステップＦ１１）。
【０２０７】
ここで、保留解除通知間隔に０が設定されている場合（ステップＦ１１でＮｏ）、周期処理管理部３４１は、アプリケーション連携情報管理テーブル３０１において優先度が処理対象優先度と一致する全てのアプリケーション連携に関して、そのアプリケーション連携を担当するアプリケーション連携メッセージ受信部２１に対して、保留解除通知を送信する（ステップＦ１２）。
【０２０８】
次に、保留解除通知を受信した各アプリケーション連携メッセージ受信部２１は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、各アプリケーション連携メッセージ受信部２１は、本周期動作とは非同期に、保留していたメッセージについて図１８に示した動作を実行する（ステップＦ１３）。
【０２０９】
次に、周期処理管理部３４１は、処理対象優先度が「低」より大きいか否かを判断する（ステップＦ１４）。
【０２１０】
ここで、処理対象優先度が「低」より大きい場合（ステップＦ１４でＹｅｓ）、周期処理管理部３４１は、処理対象優先度に一段低い優先度を設定して（ステップＦ１５）、ステップＦ１２からの動作を繰り返す。
【０２１１】
一方、処理対象優先度が「低」である場合（ステップＦ１４でＮｏ）、今回の周期動作での保留解除通知動作は終了し、メッセージ交換装置３の動作は、後述のステップＦ２３に移行する。
【０２１２】
また、ステップＦ１１において、保留解除通知間隔に０より大きい値が設定されている場合（ステップＦ１１でＹｅｓ）、周期処理管理部３４１は、図２１に示すように動作する。
【０２１３】
図２１では、周期処理管理部３４１は、優先度が処理対象優先度と一致するアプリケーション連携のうち、平均処理時間が一番小さいものを担当するアプリケーション連携メッセージ受信部２１に対して、保留解除通知を送信する。そして、周期処理管理部３４１は、保留解除通知状況管理テーブル３０５の通知中優先度に、処理対象優先度を設定する（ステップＦ１６）。
【０２１４】
次に、保留解除通知を受信したアプリケーション連携メッセージ受信部２１は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部２１は、本周期動作とは非同期に、保留していたメッセージについて図１８に示した動作を実行する（ステップＦ１７）。
【０２１５】
次に、周期処理管理部３４１は、アプリケーション連携情報管理テーブル３０１を参照することにより、ステップＦ１６において保留解除通知を送信したアプリケーション連携以外に、同じ処理対象優先度が定められたアプリケーション連携が存在するか否かを判断する（ステップＦ１８）。
【０２１６】
ここで、同じ処理対象優先度が定められた他のアプリケーション連携が存在する場合（ステップＦ１８でＹｅｓ）、周期処理管理部３４１は、次のように動作する。すなわち、周期処理管理部３４１は、処理対象優先度の各アプリケーション連携のうち、ステップＦ１６で保留解除通知を送信したもの以外について、アプリケーション連携情報管理テーブル３０１における保留通知要フラグをオンに設定する（ステップＦ１９）。
【０２１７】
一方、同じ処理対象優先度が定められた他のアプリケーション連携が存在しない場合（ステップＦ１８でＮｏ）、周期処理管理部３４１は、保留解除通知状況管理テーブル３０５の通知優先度が「低」より大きいか否かを判断する（ステップＦ２０）。
【０２１８】
ここで、通知中優先度が「低」より大きい場合（ステップＦ２０でＹｅｓ）、周期処理管理部３４１は、保留解除通知状況管理テーブル３０５の通知中優先度に、一段低い優先度を設定する。そして、周期処理部３４は、新たな通知中優先度の各アプリケーション連携についてアプリケーション連携情報管理テーブル３０１における保留通知要フラグをオンに設定する（ステップＦ２１）。そして、メッセージ交換装置３の動作は、後述のステップＦ２３に移行する。
【０２１９】
一方、通知中優先度が「低」である場合（ステップＦ２０でＮｏ）、周期処理管理部３４１は、保留解除通知状況管理テーブル３０５の通知中優先度に「対象無」を設定する（ステップＦ２２）、そして、メッセージ交換装置３の動作は、後述のステップＦ２３に移行する。
【０２２０】
そして、図２０のステップＦ２３において、周期処理管理部３４１は、保留解除通知済フラグがオンであるか否かを判断する（ステップＦ２３）。
【０２２１】
ここで、保留解除通知済フラグがオンの場合（ステップＦ２３でＹｅｓ）、周期処理管理部３４１は、動作を終了する。
【０２２２】
一方、保留解除通知済フラグがオフの場合（ステップＦ２３でＮｏ）、周期処理管理部３４１は、保留解除通知状況管理部３４２を呼び出して動作を終了する（ステップＦ２４）。
【０２２３】
次に、ステップＦ２４で呼び出された保留解除通知状況管理部３４２が、段階的に行う保留解除通知の動作を、図２２に示す。
【０２２４】
図２２では、まず、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の通知中優先度が「対象無」ではないか否かを判断する（ステップＧ１）。
【０２２５】
ここで、通知中優先度が「対象無」の場合（ステップＧ１でＮｏ）、保留解除通知状況管理部３４２は、動作を終了する。
【０２２６】
一方、通知中優先度が「対象無」ではない場合（ステップＧ１でＹｅｓ）、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の通知中優先度が、優先度レベル以上であるか否かを判断する（ステップＧ２）。
【０２２７】
ここで、通知中優先度が、優先度レベル以上でない場合（ステップＧ２でＮｏ）、保留解除通知状況管理部３４２は、後述のステップＧ１０を実行してから、動作を終了する。
【０２２８】
一方、通知中優先度が、優先度レベル以上である場合（ステップＧ２でＹｅｓ）、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の保留解除通知カウンタに１加算する（ステップＧ３）。
【０２２９】
次に、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５において、保留解除通知間隔が保留解除通知カウンタに等しいか否かを判断する（ステップＧ４）。
【０２３０】
ここで、保留解除通知間隔が保留解除通知カウンタに等しくない場合（ステップＧ４でＮｏ）、保留解除通知状況管理部３４２は、動作を終了する。
【０２３１】
一方、保留解除通知間隔が保留解除通知カウンタに等しい場合（ステップＧ４でＹｅｓ）、保留解除通知状況管理部３４２は、次のように動作する。すなわち、保留解除通知状況管理部３４２は、アプリケーション連携情報管理テーブル３０１において、優先度が通知中優先度と一致するアプリケーション連携のうち、保留通知要フラグが「オン」かつ平均処理時間が一番小さいアプリケーション連携を特定する。そして、保留解除通知状況管理部３４２は、特定したアプリケーション連携を担当するアプリケーション連携メッセージ受信部２１に対して、保留解除通知を送信する（ステップＧ５）。
【０２３２】
次に、保留解除通知状況管理部３４２は、ステップＧ５において保留解除通知を送信したアプリケーション連携について、アプリケーション連携情報管理テーブル３０１における保留通知要フラグを「オフ」に設定する。また、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の保留解除通知カウンタを０に設定する（ステップＧ６）。
【０２３３】
次に、保留解除通知を受信したアプリケーション連携メッセージ受信部２１は、保留していたアプリケーション連携のメッセージ処理を再開する。すなわち、アプリケーション連携メッセージ受信部２１は、本動作とは非同期に、保留していたメッセージについて図１８に示した動作を実行する（ステップＧ７）。
【０２３４】
次に、保留解除通知状況管理部３４２は、アプリケーション連携情報管理テーブル３０１において優先度が通知中優先度と一致するアプリケーション連携のうち、保留通知要フラグがオンのアプリケーション連携が存在するか否かを判断する（ステップＧ８）。
【０２３５】
ここで、そのようなアプリケーション連携が存在する場合（ステップＧ８でＹｅｓ）、保留解除通知状況管理部３４２は、動作を終了する。つまり、この場合、通知中優先度を変更しないで今回の動作を終了することにより、次の解除間隔以降の周期動作において、現行の通知中優先度で保留通知要フラグが「オン」の他のアプリケーション連携が、保留解除の通知対象になる。
【０２３６】
一方、そのようなアプリケーション連携が存在しない場合（ステップＧ８でＮｏ）、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の通知中優先度が「低」であるか否かを判断する（ステップＧ９）。
【０２３７】
ここで、通知中優先度が「低」である場合（ステップＧ９でＹｅｓ）、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の通知中優先度を「対象無」に設定する。また、保留解除通知状況管理部３４２は、保留解除通知カウンタを０に設定する（ステップＧ１０）。そして、保留解除通知状況管理部３４２は、動作を終了する。
【０２３８】
一方、通知中優先度が「低」でない場合（ステップＧ９でＮｏ）、保留解除通知状況管理部３４２は、保留解除通知状況管理テーブル３０５の通知中優先度を一段低い優先度に設定する。そして、周期処理管理部３４１は、新たな通知中優先度の各アプリケーション連携についてアプリケーション連携情報管理テーブル３０１における保留通知要フラグを「オン」に設定し（ステップＧ１１）、動作を終了する。つまり、この場合、次の解除間隔以降の周期動作において、一段低い優先度に設定された通知中優先度で保留通知要フラグが「オン」の他のアプリケーション連携が、保留解除の通知対象になる。
【０２３９】
以上で、保留解除通知状況管理部３４２は、段階的に行う保留解除通知の動作を終了する。
【０２４０】
次に、本発明の第３の実施の形態の効果について述べる。
【０２４１】
本発明の第３の実施の形態としてのメッセージ交換装置は、全体のサービスレベルを低下させることなく効率的なメッセージ処理を行うために送信を保留した、メッセージの滞留数を、より効率よく低減することができる。
【０２４２】
その理由は、以下の構成を備えるからである。すなわち、周期処理部が、前回の優先度レベルより低く新たな優先度レベル以上のアプリケーション連携のうち、最も高い優先度かつその優先度で平均処理時間が一番小さいアプリケーション連携にまず保留解除通知を行う。そして周期処理部は、初めの保留解除通知以降は、所定の解除間隔毎に、優先度の高い順に、かつ、同一の優先度の中では、過去のメッセージの処理時間の統計値に基づく順に、保留解除通知を行う。さらに、周期処理部は、対象となっている優先度のアプリケーション連携への保留解除通知が全て完了してから、一段低い優先度のアプリケーション連携に対して保留解除通知を行う。
【０２４３】
このように、本実施の形態は、保留解除の対象となるアプリケーション連携について、保留解除の通知を段階的に行うので、メッセージ交換装置全体で滞留しているメッセージ処理を一度に再開してメッセージ処理を一時的に増加させることがない。したがって、本実施の形態は、保留されたメッセージ数の低減を効率よく促進することができる。しかも、本実施の形態は、段階的に行う保留解除通知を、優先度の順に行うので、優先度がより高いアプリケーション連携について、早期に滞留メッセージを低減することができる。さらに、本実施の形態は、段階的に行う保留解除通知を、同じ優先度の中では処理時間の統計値に基づく順に行うので、より早期により多くのアプリケーション連携について滞留メッセージを低減することができる。
【０２４４】
なお、本実施の形態において、共通メッセージＩＤ管理テーブルの共通メッセージＩＤ発行時刻の例として、ミリ秒までの情報を格納する例を記載しているが、マイクロ秒等の他の時間単位まで格納するように構成してもよい。その場合、アプリケーション連携情報管理テーブルの累計処理時間および平均処理時間にも、同じ単位を使用すればよい。
【０２４５】
また、本実施の形態において、アプリケーション毎の過去のメッセージ処理時間の統計値として、平均処理時間を用いる例について説明したが、メッセージ処理時間に関するその他の統計値を用いてもよい。
【０２４６】
また、本実施の形態において、アプリケーション連携情報管理テーブルの累計処理メッセージ数と累計処理時間と平均処理時間とを、運用開始時に初期化する例を記載しているが、１時間や１日等の一定周期で初期化するように構成してもよい。
【０２４７】
また、本発明の第２および第３の実施の形態において、アプリケーション連携がそれぞれ３種類または４種類存在するケースについて説明したが、アプリケーション連携の種類数は、３または４に限定されるものではない。各実施の形態は、１種類以上の各アプリケーション連携に関する情報をアプリケーション連携情報管理テーブルに格納しておくとともに、各アプリケーション連携に対応させた数の、アプリケーション連携メッセージ受信部およびアプリケーション連携メッセージ送信部を設けることにより、同様に動作可能である。
【０２４８】
また、本発明の第２および第３の実施の形態において、アプリケーション連携毎に定められる優先度として、「高」、「中」、「低」の３段階が使用されるケースについて説明したが、優先度の段階数は３に限定されるものではない。例えば、優先度として、「高」、「低」の２段階が使用されるよう構成してもよい。また、４段階以上の優先度が使用されるよう構成されてもよい。また、優先度を表す情報として、数値を用いるようにしてもよい。
【０２４９】
また、本発明の第２および第３の実施の形態において、優先度の各段階に少なくとも１つのアプリケーション連携が割り当てられるケースについて説明したが、アプリケーション連携に割り当てない優先度が存在してもよい。
【０２５０】
また、本発明の第２および第３の実施の形態において、優先度状況管理テーブルおよび優先度パラメータ管理テーブルに格納される情報は、１つのテーブルに格納されていてもよい。その他、各実施の形態において各機能ブロックによって参照および更新される情報を格納する管理テーブルのデータ構造は、その他の構造であってもよい。また、これらの管理テーブルは、ストレージ装置に格納されていてもよいし、データベースとして格納されていてもよい。あるいは、これらの管理テーブルは、メモリ上に格納されていてもよい。
【０２５１】
また、本発明の第２および第３の実施の形態において、アプリケーション連携の性能要件に基づき単位時間が定められる例について説明したが、単位時間は、その他のデータに基づいて定められてもよい。例えば、単位時間は、アプリケーション連携の性能測定結果等に基づいて定められてもよい。
【０２５２】
また、上述した本発明の第２および第３の実施の形態において、送信元サーバは、送信先サーバの機能を含んでいてもよい。また、本発明における送信先サーバは、送信元サーバの機能を含んでいてもよい。また、複数の送信元サーバまたは送信先サーバが、同一の装置上に実現されていてもよい。また、１つの送信元サーバまたは１つの送信先サーバが、複数のアプリケーションを有していてもよい。
【０２５３】
また、本発明の各実施の形態において、連携先のアプリケーションは、受信したメッセージに対する返信メッセージを、メッセージ交換装置を介して連携元のアプリケーションへ返信してもよい。その場合、アプリケーション連携メッセージ送信部は、返信メッセージを受信すると、アプリケーション連携メッセージ受信部と同様に動作すればよい。また、この場合、アプリケーション連携メッセージ受信部は、返信メッセージを連携元のアプリケーションへ転送するため、アプリケーション連携メッセージ送信部と同様に動作すればよい。
【０２５４】
また、上述した本発明の各実施の形態において、メッセージ交換装置の各機能ブロックが、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。このような構成の他、各実施の形態において、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【０２５５】
また、上述した本発明の各実施の形態において、メッセージ交換装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
【０２５６】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したメッセージ交換装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０２５７】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２５８】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【０２５９】
１、２、３    メッセージ交換装置
１１、２１ｄ    アプリケーション連携メッセージ受信部
１２、２２、３２    送受信制御部
２２１    共通メッセージ転送部
２２２、３２２    共通メッセージＩＤ管理部
２２３、３２３    優先度レベル管理部
１３、２３    アプリケーション連携メッセージ送信部
１４、２４、３４    周期処理部
３４１    周期処理管理部
３４２    保留解除通知状況管理部
８０    送信元サーバ
９０    送信先サーバ
８１、９１    アプリケーション
２２１    共通メッセージ転送部
２２２、３２２    共通メッセージＩＤ管理部
２２３、３２３    優先度レベル管理部
２０１、３０１    アプリケーション連携情報管理テーブル
２０２    優先度パラメータ管理テーブル
２０３    優先度状況管理テーブル
３０４    共通メッセージＩＤ管理テーブル
３０５    保留解除通知状況管理テーブル
１００１  ＣＰＵ
１００２  ＲＡＭ
１００３  ＲＯＭ
１００４  記憶装置
１００５  ネットワークインタフェース
【図１】
2015185060.tif 000003
【図２】
2015185060.tif 000004
【図３】
2015185060.tif 000005
【図４】
2015185060.tif 000006
【図５】
2015185060.tif 000007
【図６】
2015185060.tif 000008
【図７】
2015185060.tif 000009
【図８】
2015185060.tif 000010
【図９】
2015185060.tif 000011
【図１０】
2015185060.tif 000012
【図１１】
2015185060.tif 000013
【図１２】
2015185060.tif 000014
【図１３】
2015185060.tif 000015
【図１４】
2015185060.tif 000016
【図１５】
2015185060.tif 000017
【図１６】
2015185060.tif 000018
【図１７】
2015185060.tif 000019
【図１８】
2015185060.tif 000020
【図１９】
2015185060.tif 000021
【図２０】
2015185060.tif 000022
【図２１】
2015185060.tif 000023
【図２２】
2015185060.tif 000024