(57)【要約】【課題】分散するアプリケーション群をメッセージが処理される順番で横断的にデバッグすることができる新しいデバッグ仲介装置を提供する。【解決手段】少なくとも１つのアプリケーション装置１０ａ，１０ｂに含まれるアプリケーションに対してリモートデバッグを実行するデバッグ装置１３からリモートデバッグ接続要求を受信し、アプリケーションを利用するクライアント装置１１とアプリケーション装置１０ａ，１０ｂとを接続するサービスバス装置１２２から、クライアント装置１１が送信したメッセージの宛先であるアプリケーション装置１０ａ，１０ｂの識別情報を受信し、リモートデバッグ接続要求を、識別情報で特定されるアプリケーション装置へ送信し、デバッグ装置１３とアプリケーション装置１０ａ，１０ｂの１つとの接続を仲介することを特徴とするデバッグ仲介装置。【選択図】図２
2011048613.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのアプリケーション装置に含まれるアプリケーションに対してリモートデバッグを実行するデバッグ装置からリモートデバッグ接続要求を受信し、
前記アプリケーションを利用するクライアント装置と前記アプリケーション装置とを接続するサービスバス装置から、前記クライアント装置が送信したメッセージの宛先であるアプリケーション装置の識別情報を受信し、
前記リモートデバッグ接続要求を、前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を仲介することを特徴とするデバッグ仲介装置。
【請求項２】
前記アプリケーション装置から前記サービスバス装置にメッセージが返却された場合、前記接続を切断することを特徴とする請求項１に記載のデバッグ仲介装置。
【請求項３】
前記クライアント装置が送信したメッセージにデバッグフラグが付与されている場合に、前記リモートデバッグ接続要求を、前記識別情報で特定されるアプリケーション装置へ送信することを特徴とする請求項１または請求項２に記載のデバッグ仲介装置。
【請求項４】
アプリケーションを実行する少なくとも１つのアプリケーション装置と、該アプリケーションを利用するクライアント装置と、前記アプリケーション装置と前記クライアント装置とを接続するサービスバス装置と、前記アプリケーションのリモートデバッグを実行するデバッグ装置を含むデバッグシステムであって、
前記デバッグ装置と前記アプリケーション装置の１つとを接続するデバッグ仲介装置を含み、
前記デバッグ装置は、前記デバッグ仲介装置に対してリモートデバッグ接続要求を送信し、
前記クライアント装置は、アプリケーションを利用するためのメッセージを前記サービスバス装置に向けて送信し、
前記サービスバス装置は、前記メッセージを受信すると、該メッセージに応じたアプリケーションを実行するアプリケーション装置に向けてメッセージを送信するとともに、該メッセージの宛先であるアプリケーション装置の識別情報を前記デバッグ仲介装置に送信し、
前記デバッグ仲介装置は、前記識別情報を受信すると、前記リモートデバッグ接続要求を前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を仲介することを特徴とするデバッグシステム。
【請求項５】
前記クライアント装置と前記サービスバス装置との間を仲介し、前記クライアント装置から送信された前記メッセージに応じて、前記クライアント装置が利用するアプリケーションを選択するプロセスエンジン装置をさらに含むことを特徴とする請求項４に記載のデバッグシステム。
【請求項６】
少なくとも１つのアプリケーション装置に含まれるアプリケーションをリモートデバッグするデバッグ方法であって、
前記アプリケーションのリモートデバッグを実行するデバッグ装置が、該デバッグ装置と前記アプリケーション装置の１つとを接続するデバッグ仲介装置に対してリモートデバッグ接続要求を送信する段階と、
前記アプリケーションを利用するクライアント装置が、アプリケーションを利用するためのメッセージを前記クライアント装置と前記アプリケーション装置とを接続するサービスバス装置に向けて送信する段階と、
前記サービスバス装置が、前記メッセージを受信すると、該受信したメッセージの宛先であるアプリケーション装置の識別情報を前記デバッグ仲介装置に送信する段階と、
前記デバッグ仲介装置が、前記識別情報を受信すると、前記リモートデバッグ接続要求を前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を確立する段階と、
を含むデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ仲介装置、デバッグシステム及びそのデバッグ方法に関する。
【背景技術】
【０００２】
一般に、アプリケーション装置（コンピュータ）に含まれるアプリケーションソフトウェア（以下、「アプリケーション」と称する）をデバッグする方法の１つとして、デバッグ対象のアプリケーションを実行するアプリケーション装置にデバッグ作業を実行するデバッグ装置をネットワークを介して接続し、該デバッグ装置を用いて行うリモートデバッグがある（たとえば、特許文献１，２参照）。
【０００３】
また、ＳＯＡ（Service Oriented Architecture）システムのように、分散環境の各アプリケーション装置上に分散アプリケーションが配置され、個々の分散アプリケーション同士でメッセージの受け渡しを行いながら各分散アプリケーションを順に実行するシステムにおいても、リモートデバッグする方法が知られている（たとえば、非特許文献１参照）。なお、ＳＯＡとは、サービス単位にアプリケーションをコンポーネント化し、これらコンポーネント化したアプリケーション（分散アプリケーション）を組み合わせることで、システムを構築可能にしたアーキテクチャである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２９３４９８号公報
【特許文献２】特開平０８−２７２６４４号公報
【非特許文献】
【０００５】
【非特許文献１】「ＷｅｂＯＴＸ」、［online］、［平成２１年８月１９日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｎｅｃ．ｃｏ．ｊｐ／ＷｅｂＯＴＸ／ａｐｐｓｅｒｖｅｒ／ｆｕｎｃｔｉｏｎ／ｄｅｖｔｏｏｌ．ｈｔｍｌ＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や２に開示されるデバッグ技術は、実行されるアプリケーションの順序が固定的であったり、デバッグ対象であるアプリケーションを直接リモートデバッグするものであって、メッセージの宛先が予め決定されていることを前提としている。そのため、ＳＯＡシステムのように、メッセージの宛先が動的に決定されるものに関しては、分散するアプリケーション群をメッセージが処理される順番で横断的にデバッグすることができないという問題点を有している。
【０００７】
一方、非特許文献１には、ＳＯＡアプリケーション開発ツールの一例として、図１に示すような、リモートデバッグシステム１が開示されている。
【０００８】
リモートデバッグシステム１の動作例を簡単に説明すると、まず、デバッグ装置は、デバッグ実施者（利用者）の操作を受け付けて、アプリケーションＡに対してリモートデバッグ接続を行う。次いで、クライアント装置は、プロセスエンジン装置にアプリケーションを利用するためのメッセージを送信する。そして、プロセスエンジン装置からサービスバス装置経由でアプリケーションＡへメッセージが送達された時点でアプリケーションＡのデバッグが開始される。アプリケーションＡのデバッグが終了した後、デバッグ装置は、利用者の操作を受け付けて、アプリケーションＢへリモートデバッグ接続を切り替える。アプリケーションＡと同様に、アプリケーションＢへメッセージが送達された時点でアプリケーションＢのデバッグを開始する。
【０００９】
そのため、上記リモートデバッグシステム１では、分散するアプリケーション群をメッセージの処理順で横断的にデバッグするために、利用者がメッセージの処理順を把握し、かつ、利用者自身の操作によってデバッグ対象となる分散アプリケーションを切り替えなければならない。
【００１０】
しかしながら、ＳＯＡシステムのように、分散アプリケーション同士が疎結合で結ばれてメッセージの宛先が動的に決定されたり、デバッグ対象とする分散アプリケーションを実行するアプリケーション装置をクライアント装置からは知ることができない場合など、利用者はメッセージの処理順を把握することができないため、分散するアプリケーション群をメッセージが処理される順番で横断的にデバッグすることはできないという問題点を有している。また同時に、ＳＯＡシステムのように、複数のメッセージが並列で処理される中で、ある特定のメッセージに着目したデバッグも困難であるという問題点も有している。
【００１１】
したがって、本発明は、上記問題点を解決し、分散するアプリケーション群をメッセージが処理される順番で横断的にデバッグすることができる新しいデバッグ仲介装置、デバッグシステム及びそのデバッグ方法を提供する。
【課題を解決するための手段】
【００１２】
本発明によるデバッグ仲介装置は、少なくとも１つのアプリケーション装置に含まれるアプリケーションに対してリモートデバッグを実行するデバッグ装置からリモートデバッグ接続要求を受信し、前記アプリケーションを利用するクライアント装置と前記アプリケーション装置とを接続するサービスバス装置から、前記クライアント装置が送信したメッセージの宛先であるアプリケーション装置の識別情報を受信し、前記リモートデバッグ接続要求を、前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を仲介する。
【００１３】
本発明によるデバッグシステムは、アプリケーションを実行する少なくとも１つのアプリケーション装置と、該アプリケーションを利用するクライアント装置と、前記アプリケーション装置と前記クライアント装置とを接続するサービスバス装置と、前記アプリケーションのリモートデバッグを実行するデバッグ装置を含むデバッグシステムであって、前記デバッグ装置と前記アプリケーション装置の１つとを接続するデバッグ仲介装置を含み、前記デバッグ装置は、前記デバッグ仲介装置に対してリモートデバッグ接続要求を送信し、前記クライアント装置は、アプリケーションを利用するためのメッセージを前記サービスバス装置に向けて送信し、前記サービスバス装置は、前記メッセージを受信すると、該メッセージに応じたアプリケーションを実行するアプリケーション装置に向けてメッセージを送信するとともに、該メッセージの宛先であるアプリケーション装置の識別情報を前記デバッグ仲介装置に送信し、前記デバッグ仲介装置は、前記識別情報を受信すると、前記リモートデバッグ接続要求を前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を仲介する。
【００１４】
本発明によるデバッグ方法は、前記アプリケーションのリモートデバッグを実行するデバッグ装置が、該デバッグ装置と前記アプリケーション装置の１つとを接続するデバッグ仲介装置に対してリモートデバッグ接続要求を送信する段階と、前記アプリケーションを利用するクライアント装置が、アプリケーションを利用するためのメッセージを前記クライアント装置と前記アプリケーション装置とを接続するサービスバス装置に向けて送信する段階と、前記サービスバス装置が、前記メッセージを受信すると、該受信したメッセージの宛先であるアプリケーション装置の識別情報を前記デバッグ仲介装置に送信する段階と、前記デバッグ仲介装置が、前記識別情報を受信すると、前記リモートデバッグ接続要求を前記識別情報で特定されるアプリケーション装置へ送信し、前記デバッグ装置と前記識別情報で特定されるアプリケーション装置との接続を確立する段階と、を含む。
【発明の効果】
【００１５】
以上のように構成された本発明によれば、デバッグ装置からアプリケーションを実行するアプリケーション装置へのリモートデバッグ接続を、該アプリケーションを利用するクライアント装置から送信されるメッセージに追従させることで、分散するアプリケーション群をメッセージが処理される順番で横断的にデバッグすることができる。
【図面の簡単な説明】
【００１６】
【図１】非特許文献１に記載のリモートデバッグシステム１の概略構成図を示す。
【図２】本実施形態のデバッグシステム１００の概略構成を例示する図である。
【図３】本実施形態のデバッグシステム１００を構成する各装置のハードウウェア構成を示す概略図である。
【図４】デバッグフラグを付与したメッセージの一例を示す。
【図５】本実施形態に係るデバッグシステム１００におけるデバッグ方法を実行する処理内容を示すフローチャートである。
【図６】本実施形態の変形例のデバッグシステム２００の概略構成を例示する図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。なお、以下の本実施形態では、ＳＯＡシステムを用いる場合を例にとって説明する。
【００１８】
図２は、本実施形態のデバッグシステム１００の概略構成を例示する図である。
【００１９】
デバッグシステム１００は、図２に示すとおり、アプリケーション装置（コンピュータ）１０と、クライアント装置１１と、ＳＯＡシステム１２と、デバッグ装置１３とを含んで構成され、各装置およびＳＯＡシステムは通信ネットワーク（たとえば、Ｌａｙｅｒ３スイッチおよびＬＡＮケーブルなど）を介して相互に通信可能に接続されている。なお、アプリケーション装置１０、クライアント装置１１、ＳＯＡシステム１２に含まれる各装置、およびデバッグ装置１３は、ハードウェアとして、図３に示すように、たとえば、ＣＰＵ、ＣＰＵにバス結合されたＲＯＭ、ＲＡＭ、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウェアを備える。これら各装置は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のデバッグ方法における各処理を規定したソフトウェアを起動することにより、デバッグシステム１００を実現することもできる。
【００２０】
アプリケーション装置１０ａ，１０ｂは、分散アプリケーションの実行環境である外部システムである。アプリケーション装置１０ａ，１０ｂは、リモートデバッグ待ち受けソフトウェア（以下、「リモートデバッグ待ち受け」と称する）１０１ａ，１０１ｂ、および分散アプリケーションソフトウェア（以下、「分散アプリケーション」と称する）１０２ａ，１０２ｂの各ソフトウェア（プログラム）を有して構成される装置である。なお、アプリケーション装置１０ａ，１０ｂにおいて、上記各ソフトウェアは、たとえば、ＲＯＭまたはＨＤＤなどの記憶媒体に記憶され、該記憶されたソフトウェアをＣＰＵによって実行される。アプリケーション装置１０ａ，１０ｂ自体は、原則として、従来のアプリケーション装置と同様の機能を有することができるので、その詳細な説明は省略する。
【００２１】
リモートデバッグ待ち受け１０１ａ，１０１ｂは、後述するように、デバッグ装置１３からデバッグ仲介装置１２３を介してリモートデバッグ接続要求を受信すると、分散アプリケーション１０２ａ，１０２ｂをデバッグし、デバッグ結果をデバッグ装置１３に返却するプログラムにより構築される。
【００２２】
分散アプリケーション１０２ａ，１０２ｂは、ＳＯＡシステム上のアプリケーションの処理機能を分割したブログラムにより構築される。分散アプリケーション１０２ａ，１０２ｂは、個々の分散アプリケーション同士でメッセージの受け渡しを行いながらその分割された処理機能を実行する。
【００２３】
クライアント装置１１は、ＳＯＡシステム上のアプリケーションを利用するためのコンピュータであって、所望のアプリケーションを利用するためのメッセージをＳＯＡシステム１２に送信し、ＳＯＡシステム１２を介して、アプリケーション装置１０ａ，１０ｂの分散アプリケーションを利用する装置である。クライアント装置１１は、アプリケーションを利用するためのメッセージにデバッグフラグを付与し、該デバッグフラグを付与したメッセージをＳＯＡシステム１２のプロセスエンジン装置１２１に対して送信することができる。デバッグフラグは、特定のメッセージに着目し、そのメッセージにより利用されるアプリケーションのリモートデバッグを実行するためのフラグである。図４に、デバッグフラグを付与したメッセージの一例を示す。なお、クライアント装置１１は、メッセージにデバッグフラグを付与する点以外は、原則として、従来のＳＯＡシステムを利用するクライアント装置と同様の構成および機能とすることができるので、ここではその詳細な説明は省略する。
【００２４】
ＳＯＡシステム１２は、クライアント装置１１とアプリケーション装置１０との間を仲介するシステムであって、プロセスエンジン装置１２１と、サービスバス装置１２２と、デバッグ仲介装置１２３とを含んでなる。
【００２５】
プロセスエンジン装置１２１は、クライアント装置１１からのメッセージを受信して、該メッセージに応じて呼び出すべき分散アプリケーションを選択し、該選択した分散アプリケーションに向けてサービスバス装置１２２経由でメッセージを送信する。なお、ＳＯＡシステム１２で構築された分散アプリケーションは、プロセスエンジン装置１２１によって分散アプリケーション１０２ａ（１０２ｂ）を単体で呼び出す構成となっている。たとえば、図２に示すように、分散アプリケーションＡを呼び出した後、分散アプリケーションＢを呼び出すように選択することができる。なお、分散アプリケーションを呼び出す順序は、アプリケーションの内容に応じて変わる場合があり、たとえば、分散アプリケーションＢを読み出した後、分散アプリケーションＡを呼び出す場合もありうる。プロセスエンジン１２１自体は、原則として、従来のプロセスエンジン装置と同様の機能を有することができるので、その詳細な説明は省略する。
【００２６】
サービスバス装置１２２は、プロセスエンジン装置１２１において選択された分散アプリケーションを実行するアプリケーション装置１０ａ（１０ｂ）に向けてメッセージを送信する。また、サービスバス装置１２２は、プロセスエンジン装置１２１から送信されてきたメッセージにデバッグフラグが付与されているか否かを判断し、メッセージにデバッグフラグが付与されていると判断した場合、該メッセージの宛先であるアプリケーション装置１０ａ（１０ｂ）の識別情報をデバッグ仲介装置１２３のコントローラ１２３２に送信する。また、サービスバス装置１２２は、アプリケーション装置１０ａ（１０ｂ）からメッセージが返却され、該返却されたメッセージ（返却メッセージ）を受信すると、該返却メッセージの受信情報をデバッグ仲介装置１２３のコントローラ１２３２に送信する。ここで、識別情報は、アプリケーション装置ごとに対応付けた識別番号であって、たとえば、アプリケーション装置ごとに固有のネットワークアドレスを用いることができる。
【００２７】
デバッグ仲介装置１２３は、デバッグ装置１３とアプリケーション装置１０ａ（１０ｂ）との間を仲介し、分散アプリケーションを実行するアプリケーション装置に対するリモートデバッグ接続を、ＳＯＡシステム１２上のメッセージの配送に追従して切り替える装置である。
【００２８】
デバッグ仲介装置１２３は、接続先切り替えモジュール１２３１と、コントローラ１２３２と、デバッグアドレス蓄積装置１２３３とを含んでなる。
【００２９】
接続先切り替えモジュール１２３１は、デバッグ装置１３からデバッグ接続要求を受信し、該受信したリモートデバッグ接続要求をコントローラ１２３２から通知されたリモートデバッグ待受け用アドレスに送信し、デバッグ装置１３と識別情報によって特定されるアプリケーション装置１０ａ（１０ｂ）との接続を仲介する機能を有する。また、接続先切り替えモジュール１２３１は、デバッグ装置１３とアプリケーション装置１０ａ（１０ｂ）との接続時に、コントローラ１２３２から上記接続を切断する旨の信号が通知されると、上記接続を切断する機能を有する。
【００３０】
コントローラ１２３２は、サービスバス装置１２２から通知されたアプリケーション装置１０ａ（１０ｂ）の識別情報を受信すると、該識別情報に対応するリモートデバッグ待ち受け１０１ａ（１０１ｂ）のアドレスをデバッグアドレス蓄積装置１２３３から参照して取得する。該取得したリモートデバッグ待ち受け１０１ａ（１０１ｂ）のアドレスを接続先切り替えモジュール１２３１に通知する。また、コントローラ１２３２は、デバッグ装置１３とアプリケーション装置１０ａ（１０ｂ）の１つとの接続時に、サービスバス装置１２２から返却メッセージの受信情報を受信すると、デバッグ装置１３とアプリケーション装置１０ａ（１０ｂ）の１つとの接続を切断する旨の信号を接続先切り替えモジュール１２３１に通知する。
【００３１】
デバッグアドレス蓄積装置１２３３は、分散環境上に存在するアプリケーション装置１０ａ（１０ｂ）の識別情報と、そのアプリケーション装置１０ａ（１０ｂ）のリモートデバッグ待ち受け１０１ａ（１０１ｂ）とが予め対応づけて記憶されたデータベースである。
【００３２】
デバッグ装置１３は、分散アプリケーションをリモートデバッグするための操作端末であって、ＳＯＡシステム１２のデバッグ仲介装置１２３に対してリモートデバッグ接続要求を送信し、デバッグ結果を受信することができる。なお、デバッグ装置１３は、リモートデバッグ接続要求の送信先のアドレスを、デバッグ仲介装置１２３の宛先アドレスに固定して送信する以外は、原則として、一般的なデバッグ装置と同様の機能および構成を有することができるので、その詳細な説明は省略する。
【００３３】
以下、図５に示すフローチャートを参照して、デバッグシステム１００を用いて実施される本実施形態のデバッグ方法を説明する。以下の処理では、プロセスエンジン装置１２１において分散アプリケーションＡ、分散アプリケーションＢと順に各分散アプリケーションが呼び出される場合に、分散アプリケーションＡ，Ｂをリモートデバッグする例を説明する。なお、各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３４】
まず、デバッグ装置１３が、デバッグ仲介装置１２３に対してリモートデバッグ接続要求を送信する（ステップＳ１００）。デバッグ装置１３は、リモートデバッグ接続要求の送信先のアドレスを、デバッグ仲介装置１２３の宛先アドレスとすることができる。
【００３５】
次いで、クライアント装置１１が、アプリケーションを利用するためのメッセージにデバッグフラグを付与し、該デバッグフラグを付与したメッセージをプロセスエンジン装置１２１に対して送信する（ステップＳ１０１）。
【００３６】
次いで、プロセスエンジン装置１２１は、サービスバス装置１２２経由で分散アプリケーションＡを有するアプリケーション装置１０ａにメッセージを送信する（ステップＳ１０２）。すなわち、プロセスエンジン装置１２１は、クライアント装置から受信したメッセージから、分散アプリケーションＡおよび分散アプリケーションＢを順に呼び出すものと判断し、まず、サービスバス装置１２２経由で分散アプリケーションＡを有するアプリケーション装置１０ａにメッセージを送信する。
【００３７】
サービスバス装置１２２が、プロセスエンジン装置１２１から送信されたメッセージにデバッグフラグが付与されていると判断した場合（ステップＳ１０３：Ｙｅｓ）、メッセージの宛先であるアプリケーション装置１０ａの識別情報をデバッグ仲介装置１２３内のコントローラ１２３２に通知する（ステップＳ１０４）。同時に、プロセスエンジン装置１２１において選択された分散アプリケーションを実行するアプリケーション装置１０ａのネットワークアドレスに向けてメッセージを送信する。なお、メッセージにデバッグフラグが付与されていないと判断した場合（ステップＳ１０３：Ｎｏ）、リモートデバッグは行われず、サービスバス装置１２２は、プロセスエンジン装置１２１において選択された分散アプリケーションを実行するアプリケーション装置１０ａのネットワークアドレスに向けてメッセージを送信するのみとなる。
【００３８】
次いで、コントローラ１２３２が、デバッグアドレス蓄積装置１２３３からアプリケーション装置１０ａのリモートデバッグ待ち受け１０１ａのアドレスを取得し、そのアドレスを接続切り替えモジュール１２３１へ通知する（ステップＳ１０５）。
【００３９】
次いで、接続先切り替えモジュール１２３１が、デバッグ装置１３からのリモートデバッグ接続要求をリモートデバッグ待ち受け１０１ａへフォワード（転送）し、デバッグ装置１３とアプリケーション装置１０ａとの接続を確立する（ステップＳ１０６）。接続が確立されることによって、アプリケーション装置１０ａは、アプリケーションＡのデバッグを実行し、そのデバッグ結果をデバッグ仲介装置１２１を介してデバッグ装置１３に向けて送信する。
【００４０】
次いで、サービスバス装置１２２が、アプリケーション装置１０ａからメッセージが返却され、該返却されたメッセージ（返却メッセージ）を受信すると、該返却メッセージの受信情報をデバッグ仲介装置１２３のコントローラ１２３２に送信する（ステップＳ１０７）。コントローラ１２３２は、デバッグ装置１３とアプリケーション装置１０ａとの接続時に、サービスバス装置１２２から返却メッセージの受信情報を受信すると、デバッグ装置１３とアプリケーション装置１０ａとの接続を切断する旨の信号を接続先切り替えモジュール１２３１に通知し、接続先切り替えモジュール１２３１が、デバッグ装置１３とアプリケーション装置１０ａとの接続を切断する（ステップＳ１０８）。
【００４１】
次いで、プロセスエンジン装置１２１が、次に呼び出す分散アプリケーションが有る場合（ステップＳ１０９：Ｙｅｓ）、ステップＳ１０２の処理に戻る。すなわち、プロセスエンジン装置１２１は、分散アプリケーションＡに次いで、分散アプリケーションＢを呼び出すため、上記ステップＳ１０２の処理に戻り、アプリケーション装置１０ａと同様に、アプリケーション装置１０ｂにおいて、分散アプリケーションＢのデバッグする処理が繰り返される。なお、次に呼び出す分散アプリケーションが無い場合（ステップＳ１０９：Ｎｏ）、本フロー処理は終了する。
【００４２】
本実施形態のデバッグシステム１００によれば、分散アプリケーションのデバッグをメッセージが処理される順番に順序立てて行うことができる。その理由は、一般のＳＯＡシステム上の分散アプリケーションでは、メッセージを処理するタイミングや内容によってメッセージの処理順が異なるため、デバッグ実施者はメッセージ処理の順序でリモートデバッグを実施することは困難であったが、本発明は、デバッグ装置からアプリケーションを実行するアプリケーション装置へのリモートデバッグ接続を、該アプリケーションを利用するクライアント装置から送信されるメッセージに追従させて行うことができるからである。
【００４３】
また、本実施形態によれば、疎結合で動作するＳＯＡシステムのプログラムを横断的にデバッグすることができる。すなわち、疎結合で動作するプログラムは、通常、メッセージの宛先が動的に決定されることと、特にＳＯＡシステムではサービスバス装置が仲介するので、アプリケーションクライアントからはデバッグするべきプログラムを知ることができないが、本実施形態のＳＯＡシステムは、メッセージと同時にリモートデバッグも仲介することでこの問題を解決し、動的に配信されたメッセージの宛先を気にすることなくプログラムをデバッグすることが可能である。
【００４４】
さらに、デバッグ実施者が、ＳＯＡシステムが公開する１つのリモートデバッグ用のアドレス、たとえばデバッグ仲介装置の宛先アドレスで分散アプリケーションのリモートデバッグを行うことができる。分散アプリケーションは、通常、複数のアプリケーション装置（サーバ）それぞれで動作するため、デバッグ実施者がリモートデバッグ用のアドレスを切り替えながらデバッグを行わなければならないが、本実施形態のデバッグ仲介装置を用いることにより、その手間がなくなる。
【００４５】
さらに、クライアント装置においてアプリケーションを利用するメッセージにデバッグフラグを付与し、サービスバス装置がデバッグフラグが付与されたメッセージを受信した場合にのみ、メッセージの宛先であるアプリケーション装置の識別情報をデバッグ仲介装置が受信することで、特定のメッセージのみに着目したリモートデバッグを行うことができる。
【００４６】
＜変形例＞
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【００４７】
たとえば、上記実施形態では、ＳＯＡシステムを前提に説明したが、本発明はこれに限られず、たとえば、ＳＯＡシステム以外に、単に、プロセスエンジン装置を用いずに、サービスバス装置を利用する場合においても適用可能である。図６は、本実施形態の変形例であるデバッグシステム２００を示す。デバッグシステム２００は、プロセスエンジン装置１２１の機能を除き、また、クライアント装置１１'が利用するアプリケーションを予め指定してサービスバス装置１２２にメッセージを送信する必要がある以外は、上記実施形態のデバッグシステム１００と同様の構成および機能とすることができるので、その詳細な機能および構成の説明は省略する。
【００４８】
また、上記実施形態では、アプリケーション装置を２つの場合を例に挙げて説明したが、本発明はこれに限られず、アプリケーション装置は少なくとも１つ以上とすることができ、たとえば、アプリケーション装置の数を１つ、３つとその数を適宜変更することができることはもちろんである。なお、アプリケーション装置の数が１つであっても、クライアント装置からデバッグ対象とするアプリケーションを知ることができないときに、該アプリケーションをデバッグすることができる点で本発明は有効である。
【００４９】
さらに、上記実施形態では、クライアント装置においてデバッグフラグを付与した場合を例にとって説明したが、本発明はこれに限られず、デバッグフラグを付与しない構成とすることもできる。たとえば、サービスバス装置がクライアント装置からメッセージを受信すれば、該メッセージの宛先であるアプリケーション装置の識別情報を常にデバッグ仲介装置に送信し、アプリケーションのリモートデバッグを行うこともできる。
【産業上の利用可能性】
【００５０】
本発明によれば、ＳＯＡシステムの開発時に適用することができる。また、ＳＯＡシステム運用時において発生した障害の解析時にも適用することができる。
【符号の説明】
【００５１】
１０ａ，１０ｂ  アプリケーション装置、
１１  クライアント装置、
１２  ＳＯＡシステム、
１３  デバッグ装置、
１０１ａ，１０１ｂ  リモートデバッグ待ち受け、
１０１ｂ，１０２ｂ  アプリケーションＡ，Ｂ、
１２１  プロセスエンジン装置、
１２２  サービスバス装置、
１２３  デバッグ仲介装置、
１２３１  接続先切り替えモジュール、
１２３２  コントローラ、
１２３３  デバッグアドレス蓄積装置。
【図１】
2011048613.tif 000003
【図２】
2011048613.tif 000004
【図３】
2011048613.tif 000005
【図４】
2011048613.tif 000006
【図５】
2011048613.tif 000007
【図６】
2011048613.tif 000008