(57)【要約】  メッセージキューイングサーバ（１００）が、処理依頼サーバ（１０）の格納アプリケーションからメッセージが送信された場合に、当該メッセージをキューに格納し、キューにメッセージを格納した場合に、当該メッセージに係る情報を処理実行サーバ（２０）の取り出しアプリケーションに対して送信することによって、処理依頼サーバ（１０）の格納アプリケーションと処理実行サーバ（２０）の取り出しアプリケーションとの間の連携動作を制御する。
2008105099.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、
送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに格納するメッセージ格納手順と、
前記メッセージ格納手順により前記キューにメッセージが格納された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手順と、
をコンピュータに実行させることを特徴とするアプリケーション連携制御プログラム。
【請求項２】
前記アプリケーション連携制御手順は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする請求項１に記載のアプリケーション連携制御プログラム。
【請求項３】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、
送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納するメッセージ格納手順と、
前記メッセージ格納手順により前記キューに格納されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手順と、
をコンピュータに実行させることを特徴とするアプリケーション連携制御プログラム。
【請求項４】
前記メッセージ格納手順により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手順をさらに備えたことを特徴とする請求項１、２または３に記載のアプリケーション連携制御プログラム。
【請求項５】
前記メッセージ通番付与手順は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする請求項４に記載のアプリケーション連携制御プログラム。
【請求項６】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、
送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、
前記メッセージ蓄積工程により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御工程と、
を含んだことを特徴とするアプリケーション連携制御方法。
【請求項７】
前記アプリケーション連携制御工程は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする請求項６に記載のアプリケーション連携制御方法。
【請求項８】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、
送信元のアプリケーションからメッセージが送信された場合に、当該メッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、
前記メッセージ蓄積工程により前記キューに蓄積されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御工程と、
を含んだことを特徴とするアプリケーション連携制御方法。
【請求項９】
前記メッセージ格納工程により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与工程をさらに備えたことを特徴とする請求項６、７または８に記載のアプリケーション連携制御方法。
【請求項１０】
前記メッセージ通番付与工程は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする請求項９に記載のアプリケーション連携制御方法。
【請求項１１】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、
送信元のアプリケーションから送信されたメッセージを前記キューに蓄積するメッセージ蓄積手段と、
前記メッセージ蓄積手段により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手段と、
を備えたことを特徴とするアプリケーション連携制御装置。
【請求項１２】
前記アプリケーション連携制御手段は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする請求項１１に記載のアプリケーション連携制御装置。
【請求項１３】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、
送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに蓄積するメッセージ蓄積手段と、
前記メッセージ蓄積手段により前記キューに蓄積されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手段と、
を備えたことを特徴とするアプリケーション連携制御装置。
【請求項１４】
前記メッセージ格納手段により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手段をさらに備えたことを特徴とする請求項１１、１２または１３に記載のアプリケーション連携制御装置。
【請求項１５】
前記メッセージ通番付与手段は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする請求項１４に記載のアプリケーション連携制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置に関するものである。
【背景技術】
【０００２】
従来、複数のコンピュータを協調させてサービスを提供する分散システムでは、異なるアプリケーションプログラム（以下、「アプリケーション」と呼ぶ）間の動作を連携させるための技術として、「メッセージキューイング」と呼ばれる方式が用いられている（例えば、特許文献１参照。）。このメッセージキューイングは、アプリケーション間でやり取りされるメッセージをキューと呼ばれる記憶領域を介して交換する方式である。【０００３】
図１１は、従来のメッセージキューイングを説明するための図である。同図に示すように、メッセージキューイングでは、処理依頼側のアプリケーションは、キューと呼ばれる記憶領域にメッセージを格納することによって処理の実行を依頼する。一方、処理実行側のアプリケーションは、所定の間隔で定期的にキューを参照して、メッセージが格納されているか否かを確認し、格納されていた場合には、メッセージを取り出して処理を実行する。【０００４】
このように、キューを用いてメッセージの交換を行うことによって、アプリケーション間で非同期にメッセージを送受信することが可能になり、一時的に接続が途絶えるような状況が想定される場合でも、アプリケーションに対して特別な対策を行わずに、処理依頼側から処理実行側に確実にメッセージを届けることが可能になる。【０００５】
【特許文献１】特開平９−１６７１４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のメッセージキューイングでは、処理実行側のアプリケーションは、あらかじめ設定された所定の間隔でキューを参照して処理を実行するため、キューにメッセージが格納されたタイミングと、そのメッセージが取り出されるタイミングとの間にタイムラグが生じ、このタイムラグによって、処理の待ち時間が発生するという問題があった。例えば、所定の間隔が１秒間に設定されていた場合には、最大１秒の待ち時間が発生することになる。【０００７】
このメッセージキューイングにおける処理の待ち時間の問題は、分散システムの処理性能を向上する上で、大きな妨げとなっていた。【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、キューを介して接続された分散システムの処理性能を向上することができるアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに格納するメッセージ格納手順と、前記メッセージ格納手順により前記キューにメッセージが格納された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手順と、をコンピュータに実行させることを特徴とする。【００１０】
また、本発明は、上記の発明において、前記アプリケーション連携制御手順は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする。【００１１】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納するメッセージ格納手順と、前記メッセージ格納手順により前記キューに格納されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手順と、をコンピュータに実行させることを特徴とする。【００１２】
また、本発明は、上記の発明において、前記メッセージ格納手順により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手順をさらに備えたことを特徴とする。【００１３】
また、本発明は、上記の発明において、前記メッセージ通番付与手順は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする。【００１４】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、前記メッセージ蓄積工程により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御工程と、を含んだことを特徴とする。【００１５】
また、本発明は、上記の発明において、前記アプリケーション連携制御工程は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする。【００１６】
また、本発明は、上記の発明において、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、前記メッセージ蓄積工程により前記キューに蓄積されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御工程と、を含んだことを特徴とする。【００１７】
また、本発明は、上記の発明において、前記メッセージ格納工程により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与工程をさらに備えたことを特徴とする。【００１８】
また、本発明は、上記の発明において、前記メッセージ通番付与工程は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする。【００１９】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、送信元のアプリケーションから送信されたメッセージを前記キューに蓄積するメッセージ蓄積手段と、前記メッセージ蓄積手段により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手段と、を備えたことを特徴とする。【００２０】
また、本発明は、上記の発明において、前記アプリケーション連携制御手段は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする。【００２１】
また、本発明は、上記の発明において、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに蓄積するメッセージ蓄積手段と、前記メッセージ蓄積手段により前記キューに蓄積されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手段と、を備えたことを特徴とする。【００２２】
また、本発明は、上記の発明において、前記メッセージ格納手段により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手段をさらに備えたことを特徴とする。【００２３】
また、本発明は、上記の発明において、前記メッセージ通番付与手段は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージをキューに格納し、キューにメッセージを格納した場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するので、メッセージがキューに格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能になり、キューを介して接続された分散システムの処理性能を向上することができるという効果を奏する。【００２５】
また、本発明によれば、キューにメッセージを格納した後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信するので、送信元のアプリケーションによるトランザクション処理が成功した場合のみ送信先のアプリケーションを動作させることが可能になり、効率よく送信先のアプリケーションを動作させることができるという効果を奏する。【００２６】
また、本発明によれば、送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納し、キューに格納したメッセージを送信先のアプリケーションに対して送信することによって送信元アプリケーションと送信先アプリケーションとの間の連携動作を制御するとともに、インデックスとして設定した項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するので、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にすることができるとともに、インデックスを用いて、キューに蓄積されているメッセージを容易に参照することが可能になり、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができるという効果を奏する。【００２７】
また、本発明によれば、キューにメッセージを格納した後に、当該メッセージに対して、キューへの格納順を示す通番を付与するので、従来、送信元のアプリケーションがメッセージを送信する際に個別に行っていた通番付与に関する処理を一元化することが可能になり、通番の払い出しにおける排他制御によるボトルネックを解消することが可能になり、キューを介して接続された分散システムの処理性能をさらに向上することができるという効果を奏する。【００２８】
また、本発明によれば、キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、キューでの格納順を示す通番を付与するので、キューからメッセージを取り出す頻度に比べて、キューにメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キューを介して接続された分散システムの処理性能をさらに向上することができるという効果を奏する。
【図面の簡単な説明】
【００２９】
【図１】図１は、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念を説明するための図である。
【図２】図２は、本実施の形態に係るメッセージキューイングサーバの構成を示す機能ブロック図である。
【図３】図３は、キューに格納されるメッセージの一例を示す図である。
【図４】図４は、本実施の形態に係るメッセージキューイングサーバの処理手順を示すフローチャートである。
【図５】図５は、本実施の形態に係るアプリケーション連携制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図６】図６は、本実施の形態における構成を示す図である。
【図７】図７は、他の第一の実施の形態における構成を示す図である。
【図８】図８は、他の第二の実施の形態における構成を示す図である。
【図９】図９は、他の第三の実施の形態における構成を示す図である。
【図１０】図１０は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【図１１】図１１は、従来のメッセージキューイングを説明するための図である。
【符号の説明】
【００３０】
１０    処理依頼サーバ
１１    格納アプリケーション
２０    処理実行サーバ
２１    取り出しアプリケーション
１００    メッセージキューイングサーバ
１１０    記憶部
１１１    キュー
１２０    制御部
１２１    キュー格納制御部
１２２    キュー取り出し制御部
２００    コンピュータ
２１０    ＲＡＭ
２１１    アプリケーション連携制御プログラム
２２０    ＣＰＵ
２２１    アプリケーション連携制御プロセス
２３０    ＨＤＤ
２４０    ＬＡＮインタフェース
２５０    入出力インタフェース
２６０    ＤＶＤドライブ
１００１    トレーディングサーバ
１００２    参加者サーバ
１００３    参加者ゲートウェイ
１００１１    注文ＤＡＭ
１００１２    注文／付合せ手段
１００１３    注文板履歴ＤＡＭ
１００１４    注文板履歴送信手段
１００１５    板ＤＡＭ
１００１６    値段ＤＡＭ
１００１７    通知情報ＤＡＭ
１００１８    登録通知手段
１００３１    受信処理部
１００３２    送信処理部
１００３３    通知処理部
１００４１    通知ＤＡＭ
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、この発明に係るアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置の好適な実施の形態を詳細に説明する。なお、本実施の形態では、分散システムにおいて、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するメッセージキューイングサーバに本発明を適用した場合について説明する。【００３２】
まず、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念について説明する。図１は、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念を説明するための図である。同図に示すように、本実施の形態に係るメッセージキューイングサーバ１００は、処理実行サーバ２０に対して各種業務処理の実行を依頼することにより、所定の業務サービスを実現する処理依頼サーバ１０と、処理依頼サーバ１０から依頼された処理を実行する処理実行サーバ２０との間に、図示していない所定のネットワークを介して接続される。【００３３】
そして、かかる構成のもと、本実施の形態に係るメッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションからメッセージが送信された場合に、当該メッセージをキューに格納し、キューにメッセージを格納した場合に、当該メッセージに係る情報を処理実行サーバ２０のアプリケーションに対して送信することによって、処理依頼サーバ１０のアプリケーションと処理実行サーバ２０のアプリケーションとの間の連携動作を制御する点に主な特徴がある。【００３４】
具体的には、本実施の形態に係るメッセージキューイングサーバ１００は、図１に示すように、処理依頼サーバ１０の格納アプリケーションからメッセージ登録依頼が送信されると（同図（１）参照）、メッセージ登録依頼とともに送信されたメッセージをキューに登録する（同図（２）参照）。【００３５】
そして、メッセージキューイングサーバ１００は、処理実行サーバ２０からメッセージ取り出し依頼を受信すると（同図（３）参照）、処理依頼サーバ１０からトランザクション処理の確定を依頼するコミット情報が送信されるのを待ち、コミット情報が送信されると（「ＣＯＭＭＩＴ依頼」，同図（４）参照）、ただちに、キューに登録したメッセージを処理実行サーバ２０に対して送信する（同図（５））。【００３６】
その後、メッセージキューイングサーバ１００は、処理実行サーバ２０からコミット情報が送信されると（「ＣＯＭＭＩＴ依頼」，同図（６）参照）、キューのメッセージを取り出すカレント位置を次にメッセージが登録される位置に移動する（同図（７）参照）。【００３７】
このような特徴により、本実施の形態に係るメッセージキューイングサーバ１００は、メッセージがキューに格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能にし、キューを介して接続された分散システムの処理性能を向上することができるようにしている。【００３８】
さらに、本実施の形態に係るメッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキューに格納し、インデックスとして設定した項目の指定を受け付けた場合には、指定された項目に対応するメッセージを、表示装置などに出力する点にも特徴がある。【００３９】
この特徴により、本実施の形態に係るメッセージキューイングサーバ１００は、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にするとともに、インデックスを用いて、キューに蓄積されているメッセージを容易に参照することが可能にし、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができるようにしている。【００４０】
次に、本実施の形態に係るメッセージキューイングサーバ１００の構成について説明する。図２は、本実施の形態に係るメッセージキューイングサーバ１００の構成を示す機能ブロック図である。同図に示すように、このメッセージキューイングサーバ１００は、処理実行サーバ２０と処理依頼サーバ１０の間に、図示していないネットワークを介して接続されている。【００４１】
処理依頼サーバ１０は、所定の業務処理を実行する処理実行サーバ２０に対して各種業務処理の実行を依頼することにより、所定の業務サービスを実現するサーバであり、格納アプリケーション１１を備えている。格納アプリケーション１１は、各種業務処理の依頼が行われる際に、メッセージキューイングサーバ１００に対してメッセージを送信するためのアプリケーションである。【００４２】
処理実行サーバ２０は、処理依頼サーバ１０から依頼された処理を実行するサーバであり、取り出しアプリケーション２１を備えている。取り出しアプリケーション２１は、各種業務処理の実行が行われる際に、メッセージキューイングサーバ１００からメッセージを取得するためのアプリケーションである。【００４３】
メッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションと処理実行サーバ２０のアプリケーションとの間の連携動作を制御するサーバであり、記憶部１１０と、制御部１２０とを有する。【００４４】
記憶部１１０は、各種のデータやプログラムを記憶する記憶部であり、本発明に関連するものとしては、キュー１１１を有する。なお、この記憶部１１０は、メモリにより実現されてもよいし、ハードディスクにより実現されてもよい。【００４５】
キュー１１１は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューである。図３は、キュー１１１に格納されるメッセージの一例を示す図である。具体的には、キュー１１１は、同図に示すように、メッセージのキュー１１１への格納順を示す通番と、メッセージとを対応付けて記憶する。【００４６】
ここで、キュー１１１に記憶されるメッセージは、所定の数の項目で構成されたデータ構造を有しており、その中で、所定の項目がインデックスとして設定されている。例えば図３の例では、キュー１１１に格納されるメッセージは、「カラム１」、「カラム２」、「カラム３」および「カラム４」の４つの項目から構成されており、「カラム１」がインデックスとして設定されている。【００４７】
図２に戻って、制御部１２０は、メッセージキューイングサーバ１００の全体制御を行う制御部であり、本発明に関連するものとしては、キュー格納制御部１２１と、キュー取り出し制御部１２２とを有する。【００４８】
キュー格納制御部１２１は、処理依頼サーバ１０から送信されたメッセージをキュー１１１に格納する処理部である。具体的には、このキュー格納制御部１２１は、処理依頼サーバ１０の格納アプリケーション１１からメッセージの登録依頼が送信されると（ＣＯＭＭＩＴ依頼）、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキュー１１１に格納する（図３を参照）。【００４９】
ここで、キュー格納制御部１２１が、キュー１１１に格納されるメッセージに対してインデックスを設定することによって、処理依頼サーバ１０と処理実行サーバ２０との間でやり取りされたメッセージを、容易に確認することが可能になる。なお、以下では、メッセージにおいてインデックスとして設定された項目を「インデックス項目」と呼ぶ。【００５０】
その後、キュー格納制御部１２１は、キュー１１１に格納したメッセージに対して、キュー１１１への格納順を示す通番を採番して、メッセージごとに付与した後に（図３を参照）、処理依頼サーバ１０に対してコミット情報を送信する（ＣＯＭＭＩＴ復帰）。これにより、処理依頼サーバ１０におけるトランザクション処理が完了する。【００５１】
以上の処理が完了した後、キュー格納制御部１２１は、ここでメッセージに付与した通番を、後述するキュー取り出し制御部１２２に通知する。ここでキュー格納制御部１２１が通番を通知することにより、キュー取り出し制御部１２２によって当該通番に対応するメッセージがキュー１１１から取り出され、処理実行サーバ２０に対して送信される。【００５２】
キュー取り出し制御部１２２は、キュー１１１からメッセージを取り出して、処理実行サーバ２０に対して送信する処理部である。具体的には、このキュー取り出し制御部１２２は、キュー格納制御部１２１からメッセージの通番が通知されると、その通番に対応付けられているメッセージをキュー１１１から取り出し、取り出したメッセージとその通番を、処理実行サーバ２０の取り出しアプリケーション２１に対して送信する。【００５３】
その後、キュー取り出し制御部１２２は、キュー１１１に格納されたメッセージの取り出しを伴うトランザクション処理が確定したことを示すコミット情報が処理実行サーバ２０の取り出しアプリケーション２１から送信されると（ＣＯＭＭＩＴ依頼）、キュー１１１のメッセージを取り出すカレント位置を次にメッセージが登録される位置に移動した後に、処理実行サーバ２０に対してコミット情報を送信する（ＣＯＭＭＩＴ復帰）。これにより、処理実行サーバ２０におけるトランザクション処理が完了する。【００５４】
また、キュー取り出し制御部１２２は、図示していないメッセージ参照アプリケーションを介して、利用者などからインデックス項目の指定を受け付けた場合には、キュー１１１を参照して、指定されたインデックス項目に対応するメッセージを取り出し、図示していない表示装置などに出力する。この時、キュー１１１に格納されているメッセージには、前述したキュー格納制御部１２１によってすでにインデックス項目が設定されているので、キュー取り出し制御部１２２は、指定されたメッセージを容易に取り出すことができる。【００５５】
なお、ここでは、キュー取り出し制御部１２２が、インデックス項目に基づいてキュー１１１を参照して、メッセージを出力する場合について説明したが、例えば、利用者などからインデックス項目の指定を受け付ける機能を有するメッセージ参照用のアプリケーションを用いて、キュー１１１を参照し、メッセージを出力するようにしてもよい。【００５６】
次に、本実施の形態に係るメッセージキューイングサーバ１００の処理手順について説明する。図４は、本実施の形態に係るメッセージキューイングサーバ１００の処理手順を示すフローチャートである。【００５７】
同図に示すように、メッセージキューイングサーバ１００では、キュー格納制御部１２１が、処理依頼サーバ１０の格納アプリケーション１１から送信されるメッセージの登録依頼を待ち受ける（ステップＳ２０１）。キュー格納制御部１２１は、メッセージの登録依頼が送信されると（ステップＳ１０１）、この依頼を受け付け（ステップＳ２０２）、依頼されたメッセージをキュー１１１に登録する（ステップＳ２０３）。【００５８】
一方、キュー取り出し制御部１２２は、処理実行サーバ２０の取り出しアプリケーション２１からメッセージの取り出し依頼が送信された場合に（ステップＳ４０１）、この依頼を受け付けて（ステップＳ３０１）、キュー格納制御部１２１から送信されたメッセージの通番が到着するのを待ち受ける状態に入る（ステップＳ３０２）。【００５９】
この状態で、メッセージキューイングサーバ１００では、処理依頼サーバ１０の格納アプリケーション１１からＣＯＭＭＩＴを依頼されると（ステップＳ１０２）、キュー格納制御部１２１が、この依頼を受け付け（ステップＳ２０４）、キュー１１１に登録されたメッセージの通番を採番し（ステップＳ２０５）、採番した通番をメッセージに付与した後に（ステップＳ２０６）、格納アプリケーション１１に対してＣＯＭＭＩＴを復帰する（ステップＳ２０７）。【００６０】
そして、ＣＯＭＭＩＴを復帰した後に、キュー格納制御部１２１は、キュー取り出し制御部１２２に対してメッセージの通番を通知する（ステップＳ２０８）。【００６１】
キュー取り出し制御部１２２は、キュー格納制御部１２１からメッセージの通番が通知されると、この通知を受け付け（ステップＳ３０３）、当該通番に対応付けられたメッセージをキュー１１１から取り出し、取り出したメッセージとその通番を、処理実行サーバ２０の取り出しアプリケーション２１に対して送信する（ステップＳ３０４）。【００６２】
処理実行サーバ２０では、取り出しアプリケーション２１が、メッセージの取り出し依頼を送信した後に（ステップＳ４０１参照）、メッセージおよび通番が到着するのを待ち受ける状態に入っている（ステップＳ４０２）。【００６３】
そして、メッセージキューイングサーバ１００のキュー取り出し制御部１２２からメッセージおよび通番が到着すると、取り出しアプリケーション２１が、これらを受け付け（ステップＳ４０３）、メッセージキューイングサーバ１００のキュー取り出し制御部１２２に対して、ＣＯＭＭＩＴを依頼する（ステップＳ４０４）。【００６４】
そして、メッセージキューイングサーバ１００では、ＣＯＭＭＩＴが依頼されると、キュー取り出し制御部１２２が、この依頼を受け付け（ステップＳ３０５）、キュー１１１のメッセージの取り出しのカレント位置を次のレコードの位置へ移動し（ステップＳ３０６）、処理実行サーバ２０の取り出しアプリケーション２１に対してＣＯＭＭＩＴを復帰する（ステップＳ３０７）。【００６５】
上述してきたように、本実施の形態では、キュー格納制御部１２１が、処理依頼サーバ１０の格納アプリケーション１１からメッセージが送信された場合に、当該メッセージをキュー１１１に格納し、キュー格納制御部１２１によりキュー１１１にメッセージが格納された場合に、キュー取り出し制御部１２２が、当該メッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信することによって、格納アプリケーション１１と取り出しアプリケーション２１との間の連携動作を制御するので、メッセージがキュー１１１に格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能になり、キュー１１１を介して接続された分散システムの処理性能を向上することができる。【００６６】
また、本実施の形態では、キュー格納制御部１２１によりキュー１１１にメッセージが格納された後に、キュー取り出し制御部１２２が、当該メッセージの送信を伴うトランザクション処理が確定したことを示すコミット情報が、処理依頼サーバ１０の格納アプリケーション１１から送信された場合に、当該メッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信するので、送信元のアプリケーションによるトランザクション処理が成功した場合のみ送信先のアプリケーションを動作させることが可能になり、効率よく送信先のアプリケーションを動作させることができる。【００６７】
また、本実施の形態では、処理依頼サーバ１０の格納アプリケーション１１からメッセージが送信された場合に、キュー格納制御部１２１が、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキュー１１１に格納し、キュー取り出し制御部１２２が、キュー１１１に格納されたメッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信することによって、格納アプリケーション１１と取り出しアプリケーション２１との間の連携動作を制御するとともに、インデックスとして設定した項目の指定を利用者などから受け付けた場合には、指定された項目に対応するメッセージを表示装置などに出力するので、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にすることができるとともに、インデックスを用いて、キュー１１１に蓄積されているメッセージを容易に参照することが可能になり、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができる。【００６８】
また、本実施の形態では、キュー格納制御部１２１が、キュー１１１にメッセージを格納した後に、当該メッセージに対して、キュー１１１への格納順を示す通番を付与するので、従来、送信元のアプリケーションがメッセージを送信する際に個別に行っていた通番付与に関する処理を一元化することが可能になり、通番の払い出しにおける排他制御によるボトルネックを解消することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。【００６９】
また、本実施の形態では、キュー１１１に蓄積されたメッセージが取り出される際に、キュー取り出し制御部１２２が、当該メッセージに対して、キュー１１１での格納順を示す通番を付与してもよいとしたので、キュー１１１からメッセージを取り出す頻度に比べて、キュー１１１にメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。【００７０】
なお、本実施の形態では、キュー格納制御部１２１が、キュー１１１に格納したメッセージに対して通番を付与する場合について説明したが、キュー取り出し制御部１２２が、キュー１１１に蓄積されたメッセージを取り出す際に、そのメッセージに対して、キュー１１１での格納順を示す通番を付与するようにしてもよい。【００７１】
これにより、キュー１１１からメッセージを取り出す頻度に比べて、キュー１１１にメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。【００７２】
また、本実施の形態では、説明の便宜上、図６に示すように（図６は、本実施の形態における構成を示す図である）、処理依頼サーバ１０および処理実行サーバ２０がそれぞれ１台ずつメッセージキューイングサーバ１００に接続されている場合について説明したが、メッセージキューイングサーバ１００には、複数台の処理依頼サーバ１０および処理実行サーバ２０が接続されていてもよい。（なお、説明を容易にするために、図６では図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）【００７３】
また、本実施の形態では、１つのキュー１１１を備えたメッセージキューイングサーバ１００について説明したが、本発明はこれに限られるわけではなく、メッセージキューイングサーバが複数のキューを備えていた場合でも同様に適用することができる。【００７４】
例えば、メッセージキューイングサーバ１００に複数の処理実行サーバが接続されていた場合には、あらかじめ処理実行サーバごとにキューを割り当てておき、キュー格納制御部１２１が、メッセージの登録依頼を受け付けた場合に、当該メッセージの送信先に基づいて、各キューにメッセージを振り分ける。【００７５】
また、本実施の形態では、アプリケーション連携制御を行うメッセージキューイングサーバ１００について説明したが、かかるメッセージキューイングサーバ１００が有する構成をソフトウェアによって実現することで、同様の機能を有するアプリケーション連携制御プログラムを得ることができる。そこで、このアプリケーション連携制御プログラムを実行するコンピュータについて説明する。【００７６】
図５は、本実施の形態に係るアプリケーション連携制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ２００は、ＲＡＭ（Random  Access  Memory）２１０と、ＣＰＵ（Central  Processing  Unit）２２０と、ＨＤＤ（Hard  Disk  Drive）２３０と、ＬＡＮ（Local  Area  Network）インタフェース２４０と、入出力インタフェース２５０と、ＤＶＤ（Digital  Versatile  Disk）ドライブ２６０とを有する。【００７７】
ＲＡＭ２１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ２２０は、ＲＡＭ２１０からプログラムを読み出して実行する中央処理装置である。【００７８】
ＨＤＤ２３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース２４０は、コンピュータ２００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。【００７９】
入出力インタフェース２５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ２６０は、ＤＶＤの読み書きを行う装置である。【００８０】
そして、このコンピュータ２００において実行されるアプリケーション連携制御プログラム２１１は、ＤＶＤに記憶され、ＤＶＤドライブ２６０によってＤＶＤから読み出されてコンピュータ２００にインストールされる。【００８１】
あるいは、このアプリケーション連携制御プログラム２１１は、ＬＡＮインタフェース２４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ２００にインストールされる。【００８２】
そして、インストールされたアプリケーション連携制御プログラム２１１は、ＨＤＤ２３０に記憶され、ＲＡＭ２１０に読み出されてＣＰＵ２２０によってアプリケーション連携制御プロセス２２１として実行される。【００８３】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。【００８４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００８５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。【００８６】
以下に、分散・統合の具体的形態の例を説明する。図７は、他の第一の実施の形態における構成を示す図であり、図８は、他の第二の実施の形態における構成を示す図であり、図９は、他の第三の実施の形態における構成を示す図である。【００８７】
例えば、図７に示すように、メッセージキューイングサーバ１００内に、キューイング手段１３０にキューを格納する格納アプリケーション１１、メッセージキューイング手段１３０からの処理を取り出す取り出しアプリケーション２１を有しても良い。（なお、説明を容易にするために、図７では図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）【００８８】
または、図８に示すように、処理依頼サーバ１０は上記実施の形態に示されるように、格納アプリケーション１１を有する物理的なサーバで、メッセージキューイングサーバ１００内に、メッセージキューイング手段１３０からの処理を取り出す取り出しアプリケーション２１を有する構成としても良い。（なお、説明を容易にするために、図８でも図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）【００８９】
逆に、図９に示すように、メッセージキューイングサーバ１００内にキューイング手段１３０にキューを格納する格納アプリケーション１１を有し、取り出しアプリケーションを有する処理実行サーバ２０は上記実施の形態同様物理的なサーバとしても良い。（なお、説明を容易にするために、図８においても図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）【００９０】
さらに、上記実施の形態においては、記憶部１１０をメッセージキューイングサーバ１００に内蔵した構成としたが、これに限られる事は無く、例えば、NAS（Network  Attached  Storage）やSAN（Storage  Area  Network）等のネットワークストレージを利用しても良い。【００９１】
また、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【実施例】
【００９２】
以下に、証券取引システムにおける実施例を示す。図１０は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。【００９３】
まず、１００１は、証券取引処理を行うトレーディングサーバであり、注文ＤＡＭ１００１１、注文板履歴ＤＡＭ１００１３、板ＤＡＭ１００１５、値段ＤＡＭ１００１６および通知情報ＤＡＭ１００１７が上記してきた実施の形態にて説明したメッセージキューイングサーバ１００に相当するものである。【００９４】
また、注文／付合せ手段１００１２や注文板履歴送信手段１００１４、登録通知手段１００１８は上記してきた実施の形態における処理依頼側アプリケーションもしくは処理実行側アプリケーションに対応する。【００９５】
例えば、注文付合せ手段１００１２は、後述する参加者ゲートウェイ１００３の受信処理部１００３１から受けた注文依頼情報が蓄積された注文ＤＡＭ１００１１から取得し実行する。すなわち、受信処理部１００３１が処理依頼側アプリケーションとなる。その一方で、注文付合せ手段１００１２は、注文板履歴ＤＡＭ１００１３というメッセージキューイングサーバとの対応関係から、注文板履歴送信手段１００１４に対しては処理依頼側アプリケーションとなる。【００９６】
１００３は、参加者ゲートウェイであり、証券取引参加者の参加者サーバ１００２からの注文を受信するとトレーディングサーバ１００１に対してその情報を転送する受信処理部１００３１と、参加者サーバ１００２へ各種通知を行う通知処理部１００３３および送信処理部１００３２とを有する。【００９７】
上記したように、参加者ゲートウェイの受信処理部１００３１からの出力は、トレーディングサーバ１００１の注文ＤＡＭ１００１１にキューイングされ、その情報を注文／付合せ手段１００１２が処理する形となる。【００９８】
また、１００４は、通知サーバであり、トレーディングサーバ１００１の登録通知手段１００１８からの登録通知をキューイングし、キューイングした通知情報を参加者ゲートウェイ１００３の通知処理部１００３３に送る通知ＤＡＭ１００４１を有する。【００９９】
なお、トレーディングサーバ１００１の注文／付合せ手段１００１２の説明でも明記したが、メッセージキューイングサーバである注文ＤＡＭ１００１１、注文板履歴ＤＡＭ１００１３、板ＤＡＭ１００１５、値段ＤＡＭ１００１６、通知情報ＤＡＭ１００１７および通知ＤＡＭ１００４１は、上記してきた実施の形態と同様の処理を行い、かつ、各ＤＡＭの前段の処理部（手段）は処理依頼側アプリケーションの機能を有し、同後段の処理部（手段）は処理実行側アプリケーションの機能を有する。【０１００】
このような処理では、参加者サーバ１００２からの注文依頼に対して、受信処理部１００３１や注文付合せ手段１００１２、登録通知手段１００１８、通知処理部１００３３、送信処理部１００３２という多数のアプリケーションを経て注文完了通知が届くようになるが、本実施例では、各処理が各ＤＡＭ（注文ＤＡＭ１００１１、通知情報ＤＡＭ１００１７、通知ＤＡＭ１００４１）を介したイベントドリブン型の処理で行われていくようになるので、複数のアプリケーションを経ても高速に注文完了の処理を行う事が可能となる。
【産業上の利用可能性】
【０１０１】
以上のように、本発明に係るアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御する場合に有用であり、特に、キューを介して接続された分散システムの処理性能を向上することが求められる場合に適している。
【図１】
2008105099.tif 000003
【図２】
2008105099.tif 000004
【図３】
2008105099.tif 000005
【図４】
2008105099.tif 000006
【図５】
2008105099.tif 000007
【図６】
2008105099.tif 000008
【図７】
2008105099.tif 000009
【図８】
2008105099.tif 000010
【図９】
2008105099.tif 000011
【図１０】
2008105099.tif 000012
【図１１】
2008105099.tif 000013
【手続補正書】
【提出日】平成21年5月27日(2009.5.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、  送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに格納するメッセージ格納手順と、
前記メッセージ格納手順により前記キューにメッセージが格納された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手順と、
をコンピュータに実行させることを特徴とするアプリケーション連携制御プログラム。
【請求項２】
前記アプリケーション連携制御手順は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする請求項１に記載のアプリケーション連携制御プログラム。
【請求項３】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、  送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納するメッセージ格納手順と、
前記メッセージ格納手順により前記キューに格納されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手順と、
をコンピュータに実行させることを特徴とするアプリケーション連携制御プログラム。
【請求項４】
前記メッセージ格納手順により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手順をさらに備えたことを特徴とする請求項１、２または３に記載のアプリケーション連携制御プログラム。
【請求項５】
前記メッセージ通番付与手順は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする請求項４に記載のアプリケーション連携制御プログラム。
【請求項６】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、
送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、
前記メッセージ蓄積工程により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御工程と、
を含んだことを特徴とするアプリケーション連携制御方法。
【請求項７】
アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、
送信元のアプリケーションから送信されたメッセージを前記キューに蓄積するメッセージ蓄積手段と、
前記メッセージ蓄積手段により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手段と、
を備えたことを特徴とするアプリケーション連携制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置に関するものである。
【背景技術】
【０００２】
従来、複数のコンピュータを協調させてサービスを提供する分散システムでは、異なるアプリケーションプログラム（以下、「アプリケーション」と呼ぶ）間の動作を連携させるための技術として、「メッセージキューイング」と呼ばれる方式が用いられている（例えば、特許文献１参照。）。このメッセージキューイングは、アプリケーション間でやり取りされるメッセージをキューと呼ばれる記憶領域を介して交換する方式である。
【０００３】
図１１は、従来のメッセージキューイングを説明するための図である。同図に示すように、メッセージキューイングでは、処理依頼側のアプリケーションは、キューと呼ばれる記憶領域にメッセージを格納することによって処理の実行を依頼する。一方、処理実行側のアプリケーションは、所定の間隔で定期的にキューを参照して、メッセージが格納されているか否かを確認し、格納されていた場合には、メッセージを取り出して処理を実行する。
【０００４】
このように、キューを用いてメッセージの交換を行うことによって、アプリケーション間で非同期にメッセージを送受信することが可能になり、一時的に接続が途絶えるような状況が想定される場合でも、アプリケーションに対して特別な対策を行わずに、処理依頼側から処理実行側に確実にメッセージを届けることが可能になる。
【０００５】
【特許文献１】特開平９−１６７１４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のメッセージキューイングでは、処理実行側のアプリケーションは、あらかじめ設定された所定の間隔でキューを参照して処理を実行するため、キューにメッセージが格納されたタイミングと、そのメッセージが取り出されるタイミングとの間にタイムラグが生じ、このタイムラグによって、処理の待ち時間が発生するという問題があった。例えば、所定の間隔が１秒間に設定されていた場合には、最大１秒の待ち時間が発生することになる。
【０００７】
このメッセージキューイングにおける処理の待ち時間の問題は、分散システムの処理性能を向上する上で、大きな妨げとなっていた。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、キューを介して接続された分散システムの処理性能を向上することができるアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに格納するメッセージ格納手順と、前記メッセージ格納手順により前記キューにメッセージが格納された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手順と、をコンピュータに実行させることを特徴とする。
【００１０】
また、本発明は、上記の発明において、前記アプリケーション連携制御手順は、前記キューにメッセージが格納された後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することを特徴とする。
【００１１】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御プログラムであって、送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納するメッセージ格納手順と、前記メッセージ格納手順により前記キューに格納されたメッセージを送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するとともに、前記インデックスとして設定された項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するアプリケーション連携制御手順と、をコンピュータに実行させることを特徴とする。
【００１２】
また、本発明は、上記の発明において、前記メッセージ格納手順により前記キューにメッセージが格納された後に、当該メッセージに対して、前記キューへの格納順を示す通番を付与するメッセージ通番付与手順をさらに備えたことを特徴とする。
【００１３】
また、本発明は、上記の発明において、前記メッセージ通番付与手順は、前記キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、前記キューへの格納順を示す通番を付与することを特徴とする。
【００１４】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御方法であって、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージを前記キューに蓄積するメッセージ蓄積工程と、前記メッセージ蓄積工程により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御工程と、を含んだことを特徴とする。
【００１５】
また、本発明は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するアプリケーション連携制御装置であって、送信元のアプリケーションから送信されたメッセージを前記キューに蓄積するメッセージ蓄積手段と、前記メッセージ蓄積手段により前記メッセージが前記キューに蓄積された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するアプリケーション連携制御手段と、を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、送信元のアプリケーションからメッセージが送信された場合に、当該メッセージをキューに格納し、キューにメッセージを格納した場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信することによって前記送信元アプリケーションと前記送信先アプリケーションとの間の連携動作を制御するので、メッセージがキューに格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能になり、キューを介して接続された分散システムの処理性能を向上することができるという効果を奏する。
【００１７】
また、本発明によれば、キューにメッセージを格納した後に、当該メッセージの送信を伴う一連の業務処理が確定したことを示すコミット情報が送信元のアプリケーションから送信された場合に、当該メッセージに係る情報を送信先のアプリケーションに対して送信するので、送信元のアプリケーションによるトランザクション処理が成功した場合のみ送信先のアプリケーションを動作させることが可能になり、効率よく送信先のアプリケーションを動作させることができるという効果を奏する。
【００１８】
また、本発明によれば、送信元のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージを前記キューに格納し、キューに格納したメッセージを送信先のアプリケーションに対して送信することによって送信元アプリケーションと送信先アプリケーションとの間の連携動作を制御するとともに、インデックスとして設定した項目の指定を受け付けた場合には、指定された項目に対応するメッセージを出力するので、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にすることができるとともに、インデックスを用いて、キューに蓄積されているメッセージを容易に参照することが可能になり、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができるという効果を奏する。
【００１９】
また、本発明によれば、キューにメッセージを格納した後に、当該メッセージに対して、キューへの格納順を示す通番を付与するので、従来、送信元のアプリケーションがメッセージを送信する際に個別に行っていた通番付与に関する処理を一元化することが可能になり、通番の払い出しにおける排他制御によるボトルネックを解消することが可能になり、キューを介して接続された分散システムの処理性能をさらに向上することができるという効果を奏する。
【００２０】
また、本発明によれば、キューに蓄積されたメッセージが取り出される際に、当該メッセージに対して、キューでの格納順を示す通番を付与するので、キューからメッセージを取り出す頻度に比べて、キューにメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キューを介して接続された分散システムの処理性能をさらに向上することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明に係るアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置の好適な実施の形態を詳細に説明する。なお、本実施の形態では、分散システムにおいて、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御するメッセージキューイングサーバに本発明を適用した場合について説明する。
【００２２】
まず、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念について説明する。図１は、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念を説明するための図である。同図に示すように、本実施の形態に係るメッセージキューイングサーバ１００は、処理実行サーバ２０に対して各種業務処理の実行を依頼することにより、所定の業務サービスを実現する処理依頼サーバ１０と、処理依頼サーバ１０から依頼された処理を実行する処理実行サーバ２０との間に、図示していない所定のネットワークを介して接続される。
【００２３】
そして、かかる構成のもと、本実施の形態に係るメッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションからメッセージが送信された場合に、当該メッセージをキューに格納し、キューにメッセージを格納した場合に、当該メッセージに係る情報を処理実行サーバ２０のアプリケーションに対して送信することによって、処理依頼サーバ１０のアプリケーションと処理実行サーバ２０のアプリケーションとの間の連携動作を制御する点に主な特徴がある。
【００２４】
具体的には、本実施の形態に係るメッセージキューイングサーバ１００は、図１に示すように、処理依頼サーバ１０の格納アプリケーションからメッセージ登録依頼が送信されると（同図（１）参照）、メッセージ登録依頼とともに送信されたメッセージをキューに登録する（同図（２）参照）。
【００２５】
そして、メッセージキューイングサーバ１００は、処理実行サーバ２０からメッセージ取り出し依頼を受信すると（同図（３）参照）、処理依頼サーバ１０からトランザクション処理の確定を依頼するコミット情報が送信されるのを待ち、コミット情報が送信されると（「ＣＯＭＭＩＴ依頼」，同図（４）参照）、ただちに、キューに登録したメッセージを処理実行サーバ２０に対して送信する（同図（５）参照）。
【００２６】
その後、メッセージキューイングサーバ１００は、処理実行サーバ２０からコミット情報が送信されると（「ＣＯＭＭＩＴ依頼」，同図（６）参照）、キューのメッセージを取り出すカレント位置を次にメッセージが登録される位置に移動する（同図（７）参照）。
【００２７】
このような特徴により、本実施の形態に係るメッセージキューイングサーバ１００は、メッセージがキューに格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能にし、キューを介して接続された分散システムの処理性能を向上することができるようにしている。
【００２８】
さらに、本実施の形態に係るメッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションからメッセージが送信された場合に、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキューに格納し、インデックスとして設定した項目の指定を受け付けた場合には、指定された項目に対応するメッセージを、表示装置などに出力する点にも特徴がある。
【００２９】
この特徴により、本実施の形態に係るメッセージキューイングサーバ１００は、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にするとともに、インデックスを用いて、キューに蓄積されているメッセージを容易に参照することが可能にし、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができるようにしている。
【００３０】
次に、本実施の形態に係るメッセージキューイングサーバ１００の構成について説明する。図２は、本実施の形態に係るメッセージキューイングサーバ１００の構成を示す機能ブロック図である。同図に示すように、このメッセージキューイングサーバ１００は、処理実行サーバ２０と処理依頼サーバ１０の間に、図示していないネットワークを介して接続されている。
【００３１】
処理依頼サーバ１０は、所定の業務処理を実行する処理実行サーバ２０に対して各種業務処理の実行を依頼することにより、所定の業務サービスを実現するサーバであり、格納アプリケーション１１を備えている。格納アプリケーション１１は、各種業務処理の依頼が行われる際に、メッセージキューイングサーバ１００に対してメッセージを送信するためのアプリケーションである。
【００３２】
処理実行サーバ２０は、処理依頼サーバ１０から依頼された処理を実行するサーバであり、取り出しアプリケーション２１を備えている。取り出しアプリケーション２１は、各種業務処理の実行が行われる際に、メッセージキューイングサーバ１００からメッセージを取得するためのアプリケーションである。
【００３３】
メッセージキューイングサーバ１００は、処理依頼サーバ１０のアプリケーションと処理実行サーバ２０のアプリケーションとの間の連携動作を制御するサーバであり、記憶部１１０と、制御部１２０とを有する。
【００３４】
記憶部１１０は、各種のデータやプログラムを記憶する記憶部であり、本発明に関連するものとしては、キュー１１１を有する。なお、この記憶部１１０は、メモリにより実現されてもよいし、ハードディスクにより実現されてもよい。
【００３５】
キュー１１１は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューである。図３は、キュー１１１に格納されるメッセージの一例を示す図である。具体的には、キュー１１１は、同図に示すように、メッセージのキュー１１１への格納順を示す通番と、メッセージとを対応付けて記憶する。
【００３６】
ここで、キュー１１１に記憶されるメッセージは、所定の数の項目で構成されたデータ構造を有しており、その中で、所定の項目がインデックスとして設定されている。例えば図３の例では、キュー１１１に格納されるメッセージは、「カラム１」、「カラム２」、「カラム３」および「カラム４」の４つの項目から構成されており、「カラム１」がインデックスとして設定されている。
【００３７】
図２に戻って、制御部１２０は、メッセージキューイングサーバ１００の全体制御を行う制御部であり、本発明に関連するものとしては、キュー格納制御部１２１と、キュー取り出し制御部１２２とを有する。
【００３８】
キュー格納制御部１２１は、処理依頼サーバ１０から送信されたメッセージをキュー１１１に格納する処理部である。具体的には、このキュー格納制御部１２１は、処理依頼サーバ１０の格納アプリケーション１１からメッセージの登録依頼が送信されると（ＣＯＭＭＩＴ依頼）、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキュー１１１に格納する（図３を参照）。
【００３９】
ここで、キュー格納制御部１２１が、キュー１１１に格納されるメッセージに対してインデックスを設定することによって、処理依頼サーバ１０と処理実行サーバ２０との間でやり取りされたメッセージを、容易に確認することが可能になる。なお、以下では、メッセージにおいてインデックスとして設定された項目を「インデックス項目」と呼ぶ。
【００４０】
その後、キュー格納制御部１２１は、キュー１１１に格納したメッセージに対して、キュー１１１への格納順を示す通番を採番して、メッセージごとに付与した後に（図３を参照）、処理依頼サーバ１０に対してコミット情報を送信する（ＣＯＭＭＩＴ復帰）。これにより、処理依頼サーバ１０におけるトランザクション処理が完了する。
【００４１】
以上の処理が完了した後、キュー格納制御部１２１は、ここでメッセージに付与した通番を、後述するキュー取り出し制御部１２２に通知する。ここでキュー格納制御部１２１が通番を通知することにより、キュー取り出し制御部１２２によって当該通番に対応するメッセージがキュー１１１から取り出され、処理実行サーバ２０に対して送信される。
【００４２】
キュー取り出し制御部１２２は、キュー１１１からメッセージを取り出して、処理実行サーバ２０に対して送信する処理部である。具体的には、このキュー取り出し制御部１２２は、キュー格納制御部１２１からメッセージの通番が通知されると、その通番に対応付けられているメッセージをキュー１１１から取り出し、取り出したメッセージとその通番を、処理実行サーバ２０の取り出しアプリケーション２１に対して送信する。
【００４３】
その後、キュー取り出し制御部１２２は、キュー１１１に格納されたメッセージの取り出しを伴うトランザクション処理が確定したことを示すコミット情報が処理実行サーバ２０の取り出しアプリケーション２１から送信されると（ＣＯＭＭＩＴ依頼）、キュー１１１のメッセージを取り出すカレント位置を次にメッセージが登録される位置に移動した後に、処理実行サーバ２０に対してコミット情報を送信する（ＣＯＭＭＩＴ復帰）。これにより、処理実行サーバ２０におけるトランザクション処理が完了する。
【００４４】
また、キュー取り出し制御部１２２は、図示していないメッセージ参照アプリケーションを介して、利用者などからインデックス項目の指定を受け付けた場合には、キュー１１１を参照して、指定されたインデックス項目に対応するメッセージを取り出し、図示していない表示装置などに出力する。この時、キュー１１１に格納されているメッセージには、前述したキュー格納制御部１２１によってすでにインデックス項目が設定されているので、キュー取り出し制御部１２２は、指定されたメッセージを容易に取り出すことができる。
【００４５】
なお、ここでは、キュー取り出し制御部１２２が、インデックス項目に基づいてキュー１１１を参照して、メッセージを出力する場合について説明したが、例えば、利用者などからインデックス項目の指定を受け付ける機能を有するメッセージ参照用のアプリケーションを用いて、キュー１１１を参照し、メッセージを出力するようにしてもよい。
【００４６】
次に、本実施の形態に係るメッセージキューイングサーバ１００の処理手順について説明する。図４は、本実施の形態に係るメッセージキューイングサーバ１００の処理手順を示すフローチャートである。
【００４７】
同図に示すように、メッセージキューイングサーバ１００では、キュー格納制御部１２１が、処理依頼サーバ１０の格納アプリケーション１１から送信されるメッセージの登録依頼を待ち受ける（ステップＳ２０１）。キュー格納制御部１２１は、メッセージの登録依頼が送信されると（ステップＳ１０１）、この依頼を受け付け（ステップＳ２０２）、依頼されたメッセージをキュー１１１に登録する（ステップＳ２０３）。
【００４８】
一方、キュー取り出し制御部１２２は、処理実行サーバ２０の取り出しアプリケーション２１からメッセージの取り出し依頼が送信された場合に（ステップＳ４０１）、この依頼を受け付けて（ステップＳ３０１）、キュー格納制御部１２１から送信されたメッセージの通番が到着するのを待ち受ける状態に入る（ステップＳ３０２）。
【００４９】
この状態で、メッセージキューイングサーバ１００では、処理依頼サーバ１０の格納アプリケーション１１からＣＯＭＭＩＴを依頼されると（ステップＳ１０２）、キュー格納制御部１２１が、この依頼を受け付け（ステップＳ２０４）、キュー１１１に登録されたメッセージの通番を採番し（ステップＳ２０５）、採番した通番をメッセージに付与した後に（ステップＳ２０６）、格納アプリケーション１１に対してＣＯＭＭＩＴを復帰する（ステップＳ２０７）。
【００５０】
そして、ＣＯＭＭＩＴを復帰した後に、キュー格納制御部１２１は、キュー取り出し制御部１２２に対してメッセージの通番を通知する（ステップＳ２０８）。
【００５１】
キュー取り出し制御部１２２は、キュー格納制御部１２１からメッセージの通番が通知されると、この通知を受け付け（ステップＳ３０３）、当該通番に対応付けられたメッセージをキュー１１１から取り出し、取り出したメッセージとその通番を、処理実行サーバ２０の取り出しアプリケーション２１に対して送信する（ステップＳ３０４）。
【００５２】
処理実行サーバ２０では、取り出しアプリケーション２１が、メッセージの取り出し依頼を送信した後に（ステップＳ４０１参照）、メッセージおよび通番が到着するのを待ち受ける状態に入っている（ステップＳ４０２）。
【００５３】
そして、メッセージキューイングサーバ１００のキュー取り出し制御部１２２からメッセージおよび通番が到着すると、取り出しアプリケーション２１が、これらを受け付け（ステップＳ４０３）、メッセージキューイングサーバ１００のキュー取り出し制御部１２２に対して、ＣＯＭＭＩＴを依頼する（ステップＳ４０４）。
【００５４】
そして、メッセージキューイングサーバ１００では、ＣＯＭＭＩＴが依頼されると、キュー取り出し制御部１２２が、この依頼を受け付け（ステップＳ３０５）、キュー１１１のメッセージの取り出しのカレント位置を次のレコードの位置へ移動し（ステップＳ３０６）、処理実行サーバ２０の取り出しアプリケーション２１に対してＣＯＭＭＩＴを復帰する（ステップＳ３０７）。
【００５５】
上述してきたように、本実施の形態では、キュー格納制御部１２１が、処理依頼サーバ１０の格納アプリケーション１１からメッセージが送信された場合に、当該メッセージをキュー１１１に格納し、キュー格納制御部１２１によりキュー１１１にメッセージが格納された場合に、キュー取り出し制御部１２２が、当該メッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信することによって、格納アプリケーション１１と取り出しアプリケーション２１との間の連携動作を制御するので、メッセージがキュー１１１に格納されてから取り出されるまでの間に生じていた処理の待ち時間を解消することが可能になり、キュー１１１を介して接続された分散システムの処理性能を向上することができる。
【００５６】
また、本実施の形態では、キュー格納制御部１２１によりキュー１１１にメッセージが格納された後に、キュー取り出し制御部１２２が、当該メッセージの送信を伴うトランザクション処理が確定したことを示すコミット情報が、処理依頼サーバ１０の格納アプリケーション１１から送信された場合に、当該メッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信するので、送信元のアプリケーションによるトランザクション処理が成功した場合のみ送信先のアプリケーションを動作させることが可能になり、効率よく送信先のアプリケーションを動作させることができる。
【００５７】
また、本実施の形態では、処理依頼サーバ１０の格納アプリケーション１１からメッセージが送信された場合に、キュー格納制御部１２１が、送信されたメッセージに含まれる所定の項目をインデックスとして設定した上で、当該メッセージをキュー１１１に格納し、キュー取り出し制御部１２２が、キュー１１１に格納されたメッセージを処理実行サーバ２０の取り出しアプリケーション２１に対して送信することによって、格納アプリケーション１１と取り出しアプリケーション２１との間の連携動作を制御するとともに、インデックスとして設定した項目の指定を利用者などから受け付けた場合には、指定された項目に対応するメッセージを表示装置などに出力するので、処理済みのメッセージの参照が要件として求められる場合に、従来は必要であった、処理済みのメッセージを保管しておくための特別なデータベースを不要にすることができるとともに、インデックスを用いて、キュー１１１に蓄積されているメッセージを容易に参照することが可能になり、処理済みまたは未処理のメッセージの参照を伴う処理を行う場合の処理性能を向上することができる。
【００５８】
また、本実施の形態では、キュー格納制御部１２１が、キュー１１１にメッセージを格納した後に、当該メッセージに対して、キュー１１１への格納順を示す通番を付与するので、従来、送信元のアプリケーションがメッセージを送信する際に個別に行っていた通番付与に関する処理を一元化することが可能になり、通番の払い出しにおける排他制御によるボトルネックを解消することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。
【００５９】
また、本実施の形態では、キュー１１１に蓄積されたメッセージが取り出される際に、キュー取り出し制御部１２２が、当該メッセージに対して、キュー１１１での格納順を示す通番を付与してもよいとしたので、キュー１１１からメッセージを取り出す頻度に比べて、キュー１１１にメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。
【００６０】
なお、本実施の形態では、キュー格納制御部１２１が、キュー１１１に格納したメッセージに対して通番を付与する場合について説明したが、キュー取り出し制御部１２２が、キュー１１１に蓄積されたメッセージを取り出す際に、そのメッセージに対して、キュー１１１での格納順を示す通番を付与するようにしてもよい。
【００６１】
これにより、キュー１１１からメッセージを取り出す頻度に比べて、キュー１１１にメッセージを格納する頻度が高い場合に、通番付与に関する処理が行われるタイミングを分散することが可能になり、キュー１１１を介して接続された分散システムの処理性能をさらに向上することができる。
【００６２】
また、本実施の形態では、説明の便宜上、図６に示すように（図６は、本実施の形態における構成を示す図である）、処理依頼サーバ１０および処理実行サーバ２０がそれぞれ１台ずつメッセージキューイングサーバ１００に接続されている場合について説明したが、メッセージキューイングサーバ１００には、複数台の処理依頼サーバ１０および処理実行サーバ２０が接続されていてもよい。（なお、説明を容易にするために、図６では図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）
【００６３】
また、本実施の形態では、１つのキュー１１１を備えたメッセージキューイングサーバ１００について説明したが、本発明はこれに限られるわけではなく、メッセージキューイングサーバが複数のキューを備えていた場合でも同様に適用することができる。
【００６４】
例えば、メッセージキューイングサーバ１００に複数の処理実行サーバが接続されていた場合には、あらかじめ処理実行サーバごとにキューを割り当てておき、キュー格納制御部１２１が、メッセージの登録依頼を受け付けた場合に、当該メッセージの送信先に基づいて、各キューにメッセージを振り分ける。
【００６５】
また、本実施の形態では、アプリケーション連携制御を行うメッセージキューイングサーバ１００について説明したが、かかるメッセージキューイングサーバ１００が有する構成をソフトウェアによって実現することで、同様の機能を有するアプリケーション連携制御プログラムを得ることができる。そこで、このアプリケーション連携制御プログラムを実行するコンピュータについて説明する。
【００６６】
図５は、本実施の形態に係るアプリケーション連携制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ２００は、ＲＡＭ（Random  Access  Memory）２１０と、ＣＰＵ（Central  Processing  Unit）２２０と、ＨＤＤ（Hard  Disk  Drive）２３０と、ＬＡＮ（Local  Area  Network）インタフェース２４０と、入出力インタフェース２５０と、ＤＶＤ（Digital  Versatile  Disk）ドライブ２６０とを有する。
【００６７】
ＲＡＭ２１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ２２０は、ＲＡＭ２１０からプログラムを読み出して実行する中央処理装置である。
【００６８】
ＨＤＤ２３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース２４０は、コンピュータ２００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。
【００６９】
入出力インタフェース２５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ２６０は、ＤＶＤの読み書きを行う装置である。
【００７０】
そして、このコンピュータ２００において実行されるアプリケーション連携制御プログラム２１１は、ＤＶＤに記憶され、ＤＶＤドライブ２６０によってＤＶＤから読み出されてコンピュータ２００にインストールされる。
【００７１】
あるいは、このアプリケーション連携制御プログラム２１１は、ＬＡＮインタフェース２４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ２００にインストールされる。
【００７２】
そして、インストールされたアプリケーション連携制御プログラム２１１は、ＨＤＤ２３０に記憶され、ＲＡＭ２１０に読み出されてＣＰＵ２２０によってアプリケーション連携制御プロセス２２１として実行される。
【００７３】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００７４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７６】
以下に、分散・統合の具体的形態の例を説明する。図７は、他の第一の実施の形態における構成を示す図であり、図８は、他の第二の実施の形態における構成を示す図であり、図９は、他の第三の実施の形態における構成を示す図である。
【００７７】
例えば、図７に示すように、メッセージキューイングサーバ１００内に、キューイング手段１３０にキューを格納する格納アプリケーション１１、メッセージキューイング手段１３０からの処理を取り出す取り出しアプリケーション２１を有しても良い。（なお、説明を容易にするために、図７では図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）
【００７８】
または、図８に示すように、処理依頼サーバ１０は上記実施の形態に示されるように、格納アプリケーション１１を有する物理的なサーバで、メッセージキューイングサーバ１００内に、メッセージキューイング手段１３０からの処理を取り出す取り出しアプリケーション２１を有する構成としても良い。（なお、説明を容易にするために、図８でも図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）
【００７９】
逆に、図９に示すように、メッセージキューイングサーバ１００内にキューイング手段１３０にキューを格納する格納アプリケーション１１を有し、取り出しアプリケーションを有する処理実行サーバ２０は上記実施の形態同様物理的なサーバとしても良い。（なお、説明を容易にするために、図８においても図２の制御部１２０、記憶部１１０をメッセージキューイング手段１３０として明記している。）
【００８０】
さらに、上記実施の形態においては、記憶部１１０をメッセージキューイングサーバ１００に内蔵した構成としたが、これに限られる事は無く、例えば、NAS（Network  Attached  Storage）やSAN（Storage  Area  Network）等のネットワークストレージを利用しても良い。
【００８１】
また、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【実施例】
【００８２】
以下に、証券取引システムにおける実施例を示す。図１０は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【００８３】
まず、１００１は、証券取引処理を行うトレーディングサーバであり、注文ＤＡＭ１００１１、注文板履歴ＤＡＭ１００１３、板ＤＡＭ１００１５、値段ＤＡＭ１００１６および通知情報ＤＡＭ１００１７が上記してきた実施の形態にて説明したメッセージキューイングサーバ１００に相当するものである。
【００８４】
また、注文／付合せ手段１００１２や注文板履歴送信手段１００１４、登録通知手段１００１８は上記してきた実施の形態における処理依頼側アプリケーションもしくは処理実行側アプリケーションに対応する。
【００８５】
例えば、注文付合せ手段１００１２は、後述する参加者ゲートウェイ１００３の受信処理部１００３１から受けた注文依頼情報が蓄積された注文ＤＡＭ１００１１から取得し実行する。すなわち、受信処理部１００３１が処理依頼側アプリケーションとなる。その一方で、注文付合せ手段１００１２は、注文板履歴ＤＡＭ１００１３というメッセージキューイングサーバとの対応関係から、注文板履歴送信手段１００１４に対しては処理依頼側アプリケーションとなる。
【００８６】
１００３は、参加者ゲートウェイであり、証券取引参加者の参加者サーバ１００２からの注文を受信するとトレーディングサーバ１００１に対してその情報を転送する受信処理部１００３１と、参加者サーバ１００２へ各種通知を行う通知処理部１００３３および送信処理部１００３２とを有する。
【００８７】
上記したように、参加者ゲートウェイの受信処理部１００３１からの出力は、トレーディングサーバ１００１の注文ＤＡＭ１００１１にキューイングされ、その情報を注文／付合せ手段１００１２が処理する形となる。
【００８８】
また、１００４は、通知サーバであり、トレーディングサーバ１００１の登録通知手段１００１８からの登録通知をキューイングし、キューイングした通知情報を参加者ゲートウェイ１００３の通知処理部１００３３に送る通知ＤＡＭ１００４１を有する。
【００８９】
なお、トレーディングサーバ１００１の注文／付合せ手段１００１２の説明でも明記したが、メッセージキューイングサーバである注文ＤＡＭ１００１１、注文板履歴ＤＡＭ１００１３、板ＤＡＭ１００１５、値段ＤＡＭ１００１６、通知情報ＤＡＭ１００１７および通知ＤＡＭ１００４１は、上記してきた実施の形態と同様の処理を行い、かつ、各ＤＡＭの前段の処理部（手段）は処理依頼側アプリケーションの機能を有し、同後段の処理部（手段）は処理実行側アプリケーションの機能を有する。
【００９０】
このような処理では、参加者サーバ１００２からの注文依頼に対して、受信処理部１００３１や注文付合せ手段１００１２、登録通知手段１００１８、通知処理部１００３３、送信処理部１００３２という多数のアプリケーションを経て注文完了通知が届くようになるが、本実施例では、各処理が各ＤＡＭ（注文ＤＡＭ１００１１、通知情報ＤＡＭ１００１７、通知ＤＡＭ１００４１）を介したイベントドリブン型の処理で行われていくようになるので、複数のアプリケーションを経ても高速に注文完了の処理を行う事が可能となる。
【産業上の利用可能性】
【００９１】
以上のように、本発明に係るアプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置は、アプリケーション間で非同期に送受信されるメッセージを蓄積するキューを用いて、アプリケーション間の連携動作を制御する場合に有用であり、特に、キューを介して接続された分散システムの処理性能を向上することが求められる場合に適している。
【図面の簡単な説明】
【００９２】
【図１】図１は、本実施の形態に係るメッセージキューイングサーバによるアプリケーション連携制御の概念を説明するための図である。
【図２】図２は、本実施の形態に係るメッセージキューイングサーバの構成を示す機能ブロック図である。
【図３】図３は、キューに格納されるメッセージの一例を示す図である。
【図４】図４は、本実施の形態に係るメッセージキューイングサーバの処理手順を示すフローチャートである。
【図５】図５は、本実施の形態に係るアプリケーション連携制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図６】図６は、本実施の形態における構成を示す図である。
【図７】図７は、他の第一の実施の形態における構成を示す図である。
【図８】図８は、他の第二の実施の形態における構成を示す図である。
【図９】図９は、他の第三の実施の形態における構成を示す図である。
【図１０】図１０は、本発明のメモリミラー化制御システムを証券取引システムに適用した際のシステム構成図である。
【図１１】図１１は、従来のメッセージキューイングを説明するための図である。
【符号の説明】
【００９３】
１０    処理依頼サーバ
１１    格納アプリケーション
２０    処理実行サーバ
２１    取り出しアプリケーション
１００    メッセージキューイングサーバ
１１０    記憶部
１１１    キュー
１２０    制御部
１２１    キュー格納制御部
１２２    キュー取り出し制御部
２００    コンピュータ
２１０    ＲＡＭ
２１１    アプリケーション連携制御プログラム
２２０    ＣＰＵ
２２１    アプリケーション連携制御プロセス
２３０    ＨＤＤ
２４０    ＬＡＮインタフェース
２５０    入出力インタフェース
２６０    ＤＶＤドライブ
１００１    トレーディングサーバ
１００２    参加者サーバ
１００３    参加者ゲートウェイ
１００１１    注文ＤＡＭ
１００１２    注文／付合せ手段
１００１３    注文板履歴ＤＡＭ
１００１４    注文板履歴送信手段
１００１５    板ＤＡＭ
１００１６    値段ＤＡＭ
１００１７    通知情報ＤＡＭ
１００１８    登録通知手段
１００３１    受信処理部
１００３２    送信処理部
１００３３    通知処理部
１００４１    通知ＤＡＭ
【国際調査報告】
2008105099.tif 000014
2008105099.tif 000015
2008105099.tif 000016