(57)【特許請求の範囲】
【請求項１】
アプリケーション実行部が行うアプリケーション間のデータ通信を通信ミドルウェア実行部が管理する組込み機器と、当該組込み機器の前記通信ミドルウェア実行部及び前記アプリケーション実行部と同等の機能を持つソフトウェアが稼動する一つまたは複数のコンピュータ端末とを通信接続してなる組込み機器ソフトウェア開発試験装置において、
前記通信ミドルウェア実行部は、
アプリケーションを識別するアプリケーションＩＤと、アプリケーションが動作する前記組込み機器と前記コンピュータ端末を識別する装置ＩＤとを示す宛先対応表を保持するアプリケーション実行位置記憶部と、
アプリケーション間通信が発生した場合、その通信データの送信先アプリケーションに基づいて前記アプリケーション実行位置記憶部を参照して当該送信先アプリケーションに対応した装置ＩＤを判定し、当該装置ＩＤの装置を前記通信データの宛先装置とする宛先判定部と、
前記宛先対応表の宛先変更要求があった場合、当該宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は、当該宛先変更要求を保留とし、行われていない場合に前記宛先変更要求を許可する通信／変更保留判断部とを備えたことを特徴とする組込み機器ソフトウェア開発試験装置。
【請求項２】
通信／変更保留判断部は、前記宛先変更要求の保留後、当該宛先変更要求によって宛先変更される装置を宛先とするアプリケーション間通信が終了した場合に、前記宛先変更要求を許可することを特徴とする請求項１記載の組込み機器ソフトウェア開発試験装置。
【請求項３】
通信／変更保留判断部は、前記アプリケーション間通信と前記宛先変更要求とのそれぞれについて、要求発生順または予め設定した優先度順に実行の許可を行うことを特徴とする請求項１または請求項２記載の組込み機器ソフトウェア開発試験装置。
【請求項４】
自身が他装置と通信接続された場合に前記宛先対応表における新たな宛先として設定する内容を示す宛先設定情報を保持する自動設定情報記憶部と、
自身が前記他装置と通信接続された場合に、前記宛先設定情報に基づいて前記宛先対応表の宛先変更要求を送出する自動設定実施部と、
前記自動設定実施部から送出された宛先変更要求を含む通信データを、前記他装置への送信データとして生成する宛先判定部と、
他装置から受け取った宛先変更要求に基づいて自身の宛先対応表の宛先を変更する宛先変更保留実行部とを備えたことを特徴とする請求項１から請求項３のうちのいずれか１項記載の組込み機器ソフトウェア開発試験装置。
【請求項５】
自身が他装置との通信接続を解除した場合に前記宛先対応表における新たな宛先として設定される内容を示すデフォルト宛先設定情報を保持するデフォルト設定情報記憶部を備え、
前記自動設定実施部は、自身が他装置との通信接続を解除した場合に、前記デフォルト宛先設定情報に基づいて前記宛先対応表の宛先変更要求を送出し、
前記宛先変更保留実行部は、前記自動設定実施部から送出された宛先変更要求に基づいて自身の宛先対応表の宛先を変更することを特徴とする請求項４記載の組込み機器ソフトウェア開発試験装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み機器上で実行され、通信ミドルウェアを介して連携動作するアプリケーションソフトウェアを開発、試験する組込み機器ソフトウェア開発試験装置に関する。
【背景技術】
【０００２】
マイクロコンピュータやプロセッサなどを搭載し、オペレーティングシステムによりプロセッサリソース等の管理を行っている組込み機器がある。このような組込み機器の内部では、その機能を実現するためのアプリケーションが、オペレーティングシステムを利用して稼動している。
また、このような組込み機器には複数の機能を擁するものがあり、このような場合、開発の分担やメンテナンス性の向上を実現するため、機能ごとに複数のアプリケーションに分割して構成する体をなすことがある。ある所定の動作を実行する際には、アプリケーション間のデータ通信を管理する通信ミドルウェアを用いて、関係するアプリケーション群が相互に通信を行うことでその動作が実行される。
【０００３】
一般に組込み機器は入出力の手段が限られているため、アプリケーションの開発や試験を行う際、組込み機器実機に別の計算機を接続することが行われる。このような構成の場合、例えば特許文献１に記載されている技術を用いることで、通信ミドルウェアに組込み機器外部の別の計算機との通信機能を持たせることが可能である。
さらに、上述した複数アプリケーションそれぞれに担当開発者が割り当てられていることがある。この場合、各開発者が用いる開発用コンピュータ端末を単一の組込み機器実機に接続し、組込み機器を共有しながら開発を行うことが行われる。
すなわち、複数の開発用コンピュータ端末を組込み機器に接続し、あるコンピュータ端末上であるアプリケーションを、また別のコンピュータ端末上で別のアプリケーションを、さらに組込み機器上でその他のアプリケーションを動作させ、これらアプリケーション群の相互通信を適切に分配するよう、例えば特許文献１に記載されている技術を用いて通信ミドルウェアの通信宛先設定を行うことで、アプリケーション群の連携動作を保ちつつ、各開発者は各自のコンピュータ端末上から開発、試験操作を実行することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０８１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、実際の試験現場では、開発試験対象アプリケーションの切り替えや、開発者の交代等を行う目的で、通信ミドルウェアの通信宛先設定を変更する必要がある。このとき、組込み機器実機と開発者用コンピュータ端末群からなるシステム全体の一貫性を保つため、通信の送受信タイミングと通信宛先タイミングを同期する必要がある。
同期を行わない場合、例えば次のような不具合が発生する。組込み機器実機上で動作するアプリケーションＡ（以降ＡＥと呼称する）は、開発者用ＰＣ１番上で動作するアプリケーションＢ（以降ＢＰ１と呼称する）と互いに通信を行うよう、通信ミドルウェアの通信宛先が設定されていたとする。ある時点で、ＡＥはＢＰ１へ返信データを要求する通信を送信した。当該通信はＢＰ１へ到来し、ＢＰ１によって処理が行われ返信データが準備される。このとき、通信ミドルウェアの宛先設定を操作し、ＡＥは開発者用ＰＣ２番上で動作するアプリケーションＢ（以降ＢＰ２と呼称する）と互いに通信を行うように変更したとする。その後ＢＰ１は返信データを送信しようとするが、すでに通信宛先設定が変更されており、ＢＰ１はＡＥと通信できず、返信データは送信できない。一方で、ＢＰ２は現時点でＡＥからの要求通信を受信しておらず、何も動作しない。従ってＡＥは返信を期待する通信を送信したにもかかわらず返信を受信しないことになり、結局システム全体として不整合を発生してしまう。
【０００６】
上記のような、組込み機器に別の計算機を接続する場合、これらの同期処理を行うために主に二つの方法が行われる。一つ目は、通信宛先設定変更を行った後、システム全体の電源を入れなおす等、システムの内部状態をリセットすることで同期処理を行う方法である。この方法には、通信宛先設定を切り替える度にシステムの稼動が中断されてしまうという欠点がある。特に、単一の組込み機器を複数の開発者で共有している場合、ある開発者の都合でシステム全体のリセットを行うことは非現実的である。
【０００７】
二つ目は、システム内部全ての通信が終了するタイミングを待って宛先設定を切り替える方法である。この方法には、宛先設定切り替えを実行するための待機時間が必要になり、しかもその長さが予想できないという欠点がある。例えば、宛先設定切り替えを行う前に、システムを利用する全ての開発者に、各自が担当するアプリケーションからの発信を止めるよう依頼するなどの手間が掛かる。加えて、例えば、システムが健全に動作しているかどうか検証するため一定間隔で行われるヘルスチェック通信等、アプリケーション動作とは無関係に稼動している機能も存在することがあり、全てのアプリケーション開発者が通信を中断したとしても即座に待機を終了し宛先設定切り替えできるとは限らない。
結局、上記二つの方法のどちらも、組込み機器実機を複数の開発者で共有するという目的を果たすには適してないという問題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合においても、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を不要とすることができる組込み機器ソフトウェア開発試験装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る組込み機器ソフトウェア開発試験装置は、アプリケーション実行部が行うアプリケーション間のデータ通信を通信ミドルウェア実行部が管理する組込み機器と、組込み機器の通信ミドルウェア実行部及びアプリケーション実行部と同等の機能を持つソフトウェアが稼動する一つまたは複数のコンピュータ端末とを通信接続してなる組込み機器ソフトウェア開発試験装置において、通信ミドルウェア実行部は、アプリケーションを識別するアプリケーションＩＤと、アプリケーションが動作する組込み機器とコンピュータ端末を識別する装置ＩＤとを示す宛先対応表を保持するアプリケーション実行位置記憶部と、アプリケーション間通信が発生した場合、その通信データの送信先アプリケーションに基づいてアプリケーション実行位置記憶部を参照して送信先アプリケーションに対応した装置ＩＤを判定し、装置ＩＤの装置を通信データの宛先装置とする宛先判定部と、宛先対応表の宛先変更要求があった場合、宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は、宛先変更要求を保留とし、行われていない場合に宛先変更要求を許可する通信／変更保留判断部とを備えたものである。
【発明の効果】
【００１０】
この発明の組込み機器ソフトウェア開発試験装置は、宛先変更要求があった場合、宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は宛先変更要求を保留し、行われていない場合に宛先変更要求を許可するようにしたので、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合においても、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を不要とすることができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置を示す構成図である。
【図２】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の組込み機器を示す構成図である。
【図３】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置のコンピュータ端末（１）を示す構成図である。
【図４】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の宛先対応表を示す説明図である。
【図５】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置のデータ通信要求と宛先変更要求を示す説明図である。
【図６】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の通信保留実行部の動作を示すフローチャートである。
【図７】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の宛先判定部の動作を示すフローチャートである。
【図８】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の宛先変更保留実行部の動作を示すフローチャートである。
【図９】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の通信／変更保留判断部の動作を示すフローチャート（その１）である。
【図１０】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の通信／変更保留判断部の動作を示すフローチャート（その２）である。
【図１１】この発明の実施の形態１による組込み機器ソフトウェア開発試験装置の各部の動作シーケンスを示す説明図である。
【図１２】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置を示す構成図である。
【図１３】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置の組込み機器を示す構成図である。
【図１４】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置のコンピュータ端末（１）を示す構成図である。
【図１５】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置の宛先変更に関する組込み機器とコンピュータ端末（１）のデータを示す説明図である。
【図１６】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置の他装置への宛先変更要求を送出する場合の各部の動作シーケンスを示す説明図である。
【図１７】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置の宛先変更要求を含む場合のデータ通信要求を示す説明図である。
【図１８】この発明の実施の形態２による組込み機器ソフトウェア開発試験装置の他装置からの宛先変更要求を受けた場合の各部の動作シーケンスを示す説明図である。
【図１９】この発明の実施の形態３による組込み機器ソフトウェア開発試験装置を示す構成図である。
【図２０】この発明の実施の形態３による組込み機器ソフトウェア開発試験装置の組込み機器を示す構成図である。
【図２１】この発明の実施の形態３による組込み機器ソフトウェア開発試験装置のコンピュータ端末（１）を示す構成図である。
【図２２】この発明の実施の形態３による組込み機器ソフトウェア開発試験装置のデフォルト設定情報記憶部が保持するデフォルト設定情報を示す説明図である。
【図２３】この発明の実施の形態３による組込み機器ソフトウェア開発試験装置の通信接続を解除した場合の各部の動作シーケンスを示す説明図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１による組込み機器ソフトウェア開発試験装置を示す構成図である。
図示のように、組込み機器ソフトウェア開発試験装置は、組込み機器１００とコンピュータ端末（１）２００、コンピュータ端末（２）３００と装置間接続装置４００とを備えている。
【００１３】
組込み機器１００にはアプリケーション実行環境が備わっている。アプリケーション実行環境とは、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１が搭載され、またオペレーティングシステム１０２が稼動している環境を指す。ここでオペレーティングシステム１０２とは、ＣＰＵ処理時間やメモリ、入出力装置などのリソースを管理する基本ソフトウェアとその実行部を含むものとする。なお、オペレーティングシステム１０２の代わりに、例えばモニタプログラムを用いることでその機能を実現してもよい。オペレーティングシステム１０２上では、アプリケーションＡを実行するアプリケーションＡ実行部１０３、アプリケーションＢを実行するアプリケーションＢ実行部１０４が稼動している。
【００１４】
ここで、アプリケーションとは、アプリケーション実行環境の機能を使用し、組込み機器の提供する機能を実現するソフトウェアである。また、組込み機器は３つ以上のアプリケーション実行部を備えていてもよい。オペレーティングシステム１０２上には通信ミドルウェアを実行する通信ミドルウェア実行部１０５が稼動しており、この通信ミドルウェア実行部１０５を介することでアプリケーションＡ実行部１０３とアプリケーションＢ実行部１０４は互いに通信を送受信して連携することで、組込み機器１００がユーザに提供する各機能を実現している。
また、組込み機器１００には、組込み機器が提供する各機能を開発者または製品使用者が操作するための入力装置１１４を備えている。
【００１５】
また、コンピュータ端末（１）２００およびコンピュータ端末（２）３００にも、ＣＰＵ２０１，３０１、オペレーティングシステム２０２，３０２、アプリケーションＡ実行部２０３，３０３、アプリケーションＢ実行部２０４，３０４と通信ミドルウェア実行部２０５，３０５及び入力装置２１４（コンピュータ端末（２）３００の入力装置はその図示を省略している）が備えられている。ここで、オペレーティングシステム２０２，３０２は、コンピュータ端末（１）２００およびコンピュータ端末（２）３００に搭載されたＣＰＵ２０１，３０１上で実行でき、かつ、組込み機器１００のオペレーティングシステム１０２と共通のアプリケーションプログラミングインタフェース（ＡＰＩ）を有している。これにより、例えば組込み機器１００のＣＰＵ１０１とコンピュータ端末（１）２００およびコンピュータ端末（２）３００のＣＰＵ２０１，３０１とでアーキテクチャ等が異なっていたとしても、アプリケーションを変更無くビルド、実行できるものとする。従って、例えばアプリケーションＡ実行部２０３と通信ミドルウェア実行部２０５は、組込み機器１００において対応する処理部（アプリケーションＡ実行部１０３、通信ミドルウェア実行部１０５）と同一のソースコードからビルドされるものとする。ここで、例えば入力としてアプリケーションＡ実行部１０３と同一のＡＰＩを使用し、かつその出力結果も同一であれば、アプリケーションＡ実行部２０３は、アプリケーションＡ実行部１０３をビルドしたものと異なるソースコードからビルドされたものであってもよい。
【００１６】
また、組込み機器１００と、コンピュータ端末（１）２００およびコンピュータ端末（２）３００とは、両者を接続する装置間接続装置４００によって互いに通信可能なように接続されており、その各装置での接続点はそれぞれ通信ミドルウェア実行部１０５，２０５，３０５となっている。装置間接続装置４００は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＩＥＥＥ１３９４等のシリアル通信バスやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等、複数の情報処理装置を接続する通信手段を称するものである。ＬＡＮ等ネットワーク接続機器を用いてネットワーク経由で接続してもよい。この場合、組込み機器１００とコンピュータ端末（１）２００またはコンピュータ端末（２）３００は、必ずしも近接して配置されるのではなく、相互に隔離して運用することが可能となる。
また、組込み機器１００に装置間接続装置を介して接続されるコンピュータ端末は、３つ以上であってもよい。
【００１７】
図２に通信ミドルウェア実行部１０５の内部構成を含めた組込み機器１００の構成を示し、図３に通信ミドルウェア実行部２０５の内部構成を含めたコンピュータ端末（１）２００の構成を示す。
図２に示すように、通信ミドルウェア実行部１０５は、アプリケーション実行装置記憶部１０６、宛先変更保留実行部１０７、宛先判定部１０８、通信保留実行部１０９、データ送信部１１０、通信／変更保留判断部１１１、通信／変更要求保存部１１２、装置外発信データ受信部１１３を備えている。また、コンピュータ端末（１）２００，コンピュータ端末（２）３００に備えられている通信ミドルウェア実行部２０５，３０５にも同等の機能を持つ処理部が備えられているものとする。図３に示すように、コンピュータ端末（１）２００の通信ミドルウェア実行部２０５内部にも通信ミドルウェア実行部１０５と同一の処理部が備えられている（アプリケーション実行装置記憶部２０６〜装置外発信データ受信部２１３）。また、コンピュータ端末（２）３００の通信ミドルウェア実行部３０５内部にも各処理部が備えられているが、前述の通り全く同一の処理部を備えるため、図１にて通信ミドルウェア実行部３０５のみを示し、内部構成に関する記載を省略する。
【００１８】
以下では、各処理部の機能について組込み機器１００に備えられているものを例として挙げることにより説明する。アプリケーション実行装置記憶部１０６は、アプリケーションの識別情報であるアプリケーションＩＤと、アプリケーションが動作する装置の装置ＩＤとを関連付ける宛先対応表を保持している。図４に示すように、宛先対応表は、自装置に含まれる全てのアプリケーションＩＤと装置ＩＤとの関係群を一意に表す宛先設定状態ＩＤ番号と、各アプリケーションＩＤと装置ＩＤとの一対一の対応関係を示す表とをそれぞれ格納する領域が含まれる。
【００１９】
アプリケーション実行装置記憶部１０６に記憶される宛先対応表は、入力装置１１４を用いて開発者が操作することで、その内容を変更することができるものとする。入力装置１１４により入力された宛先変更要求は、宛先変更保留実行部１０７を経由してアプリケーション実行装置記憶部１０６に伝達される。
【００２０】
宛先変更保留実行部１０７は、宛先変更要求が入力されると、この要求のヘッダ部分を通信／変更保留判断部１１１へと転送して問い合わせ、その結果として得られる通信／変更保留判断部１１１からの返答に従って、宛先変更要求をアプリケーション実行装置記憶部１０６へ伝達または保留する。
宛先判定部１０８は、いずれかのアプリケーション実行部からデータ通信要求が発生した場合、通信保留実行部１０９を経由してデータ通信要求が入力される。この入力されたデータ通信要求から送信先アプリケーションの情報を取得し、アプリケーション実行装置記憶部１０６を参照して、宛先装置を特定する機能を有している。
【００２１】
通信保留実行部１０９は、データ通信要求が入力されると、そのヘッダ部分を通信／変更保留判断部１１１へと転送して問い合わせ、その結果として得られる通信／変更保留判断部１１１からの返答に従って、データ通信要求を宛先判定部１０８へ伝達または保留する。
【００２２】
データ送信部１１０は、宛先判定部１０８を介して出力される通信データの宛先装置ＩＤに基づいて、その送信先装置ＩＤを有する装置へ通信データを送信すると共に、装置外発信データ受信部１１３で受信された通信データを自装置の該当するアプリケーションに配送する処理部である。
【００２３】
通信／変更保留判断部１１１は、宛先変更保留実行部１０７、通信保留実行部１０９から転送される宛先変更要求ヘッダ、データ通信要求ヘッダについて、通信／変更要求保存部１１２に保存した上で、各要求に対して実行または保留の判断を行い、宛先変更保留実行部１０７、通信保留実行部１０９に通知する。
【００２４】
通信／変更要求保存部１１２は、データ通信要求または宛先変更要求のヘッダ部分の情報について、先入れ先出し（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ；ＦＩＦＯ）キュー方式、すなわち各ヘッダ部分の到来時間順を保ったまま、一つ以上保持できるものであり、ある時点で先頭にあるヘッダ情報を取得できる機能と選択したヘッダ情報を抜き出す機能とを備える。これらの機能は、通信／変更保留判断部１１１によって利用される。
【００２５】
なお、上記例では、通信／変更要求保存部１１２はＦＩＦＯキュー方式で各要求ヘッダ部分を保存するという方法を示したが、例えば、データ通信要求ヘッダまたは宛先変更要求ヘッダに優先度を表す項目を設け、各アプリケーションＡ実行部１０３，アプリケーションＢ実行部１０４または入力装置１１４での要求発行時に優先度を設定し、優先度が高ければＦＩＦＯキューのより上位に保存する、という方法をとってもよい。
【００２６】
装置外発信データ受信部１１３は、装置間接続装置４００を介して他の装置から送信された通信データを受信し、これを通信保留実行部１０９に出力する処理部である。
【００２７】
なお、通信ミドルウェア実行部１０５におけるアプリケーション実行装置記憶部１０６、宛先変更保留実行部１０７、宛先判定部１０８、通信保留実行部１０９、データ送信部１１０、通信／変更保留判断部１１１、通信／変更要求保存部１１２、装置外発信データ受信部１１３は、それぞれの機能に対応したプログラムをＣＰＵ１０１が実行することによって実現されている。
【００２８】
次に、実施の形態１のソフトウェア試験装置の動作について説明する。なお、説明の一例として、最初に、組込み機器１００側からアプリケーション通信要求が発生した場合の動作について説明する。
通信ミドルウェア実行部１０５は、データ通信要求の到来に従って次のような手順で通信処理を行う。まず、アプリケーションＡ実行部１０３やアプリケーションＢ実行部１０４からのデータ通信要求は通信保留実行部１０９へと入力される。データ通信要求は、図５（ａ）に示すような構造である。この構造は、データ通信要求それぞれを特定するＩＤ番号と、宛先アプリケーションを表すＩＤ番号と、送信元アプリケーションを表すＩＤ番号と、宛先アプリケーションが動作する装置を表す宛先装置ＩＤ番号と、この通信における返信の必要の有無を示す返信フラグと、通信要求が、過去の通信に対する返信である場合に、その通信におけるデータ通信要求ＩＤを保持する返信先要求ＩＤと、通信要求が発生した段階でアプリケーション実行装置記憶部１０６に記憶されている宛先対応表における宛先設定状態ＩＤ番号とをそれぞれ格納する領域が含まれる。ヘッダ部分の後には、本体領域が配置される。本体領域に、通信データであるデータ本体が格納される。ここで、通信保留実行部１０９にデータ通信要求が到来した段階では、宛先装置ＩＤと宛先設定状態ＩＤを格納する領域については空のままである。また、返信先要求ＩＤについては、このデータ通信要求が過去の通信の返信として発行された場合にのみ値が格納される。
【００２９】
通信保留実行部１０９は、到来したデータ通信要求について図６（ａ）に示すフローチャートに従って処理する。まず、データ通信要求のヘッダ部分のみを取得する（ステップＳＴ６００）。次にヘッダ部分を通信／変更保留判断部１１１に転送する（ステップＳＴ６０１）。次に、データ通信要求を保存するためのメモリ領域をオペレーティングシステム１０２から取得し、データ通信要求を格納し（ステップＳＴ６０２）、終了する。
また、通信保留実行部１０９は、例えばオペレーティングシステム１０２のマルチスレッド機能などを使用することで、図６（ａ）の処理と並行して図６（ｂ）に示すフローチャートに従って、通信／変更保留判断部１１１からの回答により処理を行う。まず、通信／変更保留判断部１１１からの返答を受信するまで待機する（ステップＳＴ６０３、ステップＳＴ６０３ａ）。ここで、通信／変更保留判断部１１１からの返答にはステップＳＴ６０１で転送したデータ通信要求のヘッダ部分が含まれるものとする。次に、ステップＳＴ６０３ａにおいて回答を受信した場合は、ステップＳＴ６０２において確保したメモリ領域を探索し、この返答が含むヘッダと同一のヘッダを持つデータ通信要求を取得すると共に、このデータ通信要求をメモリ領域から削除する（ステップＳＴ６０４）。次に回答として受信したデータ通信要求を宛先判定部１０８に送信する（ステップＳＴ６０５）。この処理を繰り返す。
【００３０】
次に、データ通信要求は宛先判定部１０８へと入力される。宛先判定部１０８は、図７に示すフローチャートに従って、データ通信要求の宛先を判定する。まず、データ通信要求のヘッダ部分の宛先装置ＩＤを保持する領域を参照し、既に宛先装置ＩＤがセットされているかどうか判定する（ステップＳＴ７００）。セットされている場合は終了する。セットされていない場合、データ通信要求のヘッダ部分から宛先アプリケーションＩＤを取得し（ステップＳＴ７０１）、この宛先アプリケーションＩＤをキーとして、アプリケーション実行装置記憶部１０６に対して問い合わせを行い、宛先装置ＩＤを取得する（ステップＳＴ７０２）。ステップＳＴ７０２で取得した宛先装置ＩＤについては、データ通信要求ヘッダ内に予約された宛先装置ＩＤを保持する領域へと書き込むことで宛先装置ＩＤ値を設定する（ステップＳＴ７０３）。次に、データ通信要求ヘッダの宛先設定状態ＩＤ領域に、現在アプリケーション実行装置記憶部１０６に記憶されている宛先対応表の宛先設定状態ＩＤの値をセットする（ステップＳＴ７０４）。
【００３１】
宛先判定部１０８によって判定に用いられるアプリケーション実行装置記憶部１０６の宛先対応表は、開発者が入力装置１１４を用いて操作することで設定変更することができる。入力装置１１４は、機械式スイッチの組み合わせによって、予め定めたアプリケーション−装置間対応関係を、宛先変更要求として出力するものである。また、例えば液晶ディスプレイ等の表示装置を内蔵し、視覚的に対応関係を入力できるような入力装置を用いてもよい。
【００３２】
入力装置１１４からの宛先変更要求は、宛先変更保留実行部１０７へと入力される。宛先変更要求は図５（ｂ）に示すような構造であり、当該要求によってアプリケーション実行装置記憶部１０６に記憶される宛先対応表における宛先設定状態ＩＤ番号と、宛先設定データとをそれぞれ格納する領域が含まれる。宛先設定データについては、アプリケーションＩＤと装置ＩＤの対データの配列として記述される。
【００３３】
宛先変更保留実行部１０７は、図８（ａ）に示すフローチャートに従って、宛先変更要求を処理する。まず、宛先変更要求のヘッダ部分のみを取得する（ステップＳＴ８００）。次にヘッダ部分を通信／変更保留判断部１１１に転送する（ステップＳＴ８０１）。次に、宛先変更要求を保存するメモリ領域を確保して格納し（ステップＳＴ８０２）、終了する。
【００３４】
また、宛先変更保留実行部１０７は、例えばオペレーティングシステム１０２のマルチスレッド機能などを使用することで、図８（ａ）の処理と並行して図８（ｂ）に示すフローチャートに従って、通信／変更保留判断部１１１からの回答により処理を行う。まず、通信／変更保留判断部１１１からの返答をモニタしながら待機する（ステップＳＴ８０３、ステップＳＴ８０３ａ）。ここで、通信／変更保留判断部１１１からの返答にはステップＳＴ８０１で転送した宛先変更要求のヘッダ部分が含まれるものとする。返答を受信した場合、ステップＳＴ８０２において確保したメモリ領域を探索し、この返答が指す宛先変更要求を取得すると共に宛先変更要求をメモリ領域から削除する（ステップＳＴ８０４）。次に取得した宛先変更要求の宛先データ本体部分をアプリケーション実行装置記憶部１０６に送信し、宛先対応表の宛先装置ＩＤを変更する（ステップＳＴ８０５）。その後再びステップＳＴ８０３に戻って待機を続ける。
【００３５】
通信／変更保留判断部１１１は、通信保留実行部１０９と宛先変更保留実行部１０７から転送されるデータ通信要求ヘッダ部分と宛先変更要求ヘッダ部分を入力として、図９および図１０に示すフローチャートに従って処理を行う。まず、入力された要求の種類を判断する（ステップＳＴ９００）。入力が宛先変更要求ヘッダである場合、当該ヘッダを通信／変更要求保存部１１２へ保存する（ステップＳＴ９０１）。次に通信／変更要求保存部１１２の内容を探索し、キューのより上位に通信要求ヘッダが存在するかどうかを判定する（ステップＳＴ９０２）。存在しない場合、通信／変更要求保存部１１２の先頭要素、すなわち宛先変更要求ヘッダを抜き出し、当該ヘッダを宛先変更保留実行部１０７へ返す（ステップＳＴ９０３）。一方、存在する場合は終了する。
【００３６】
ステップＳＴ９００において、入力がデータ通信要求ヘッダである場合、次に入力ヘッダの返信先要求ＩＤ値を取り出し、通信／変更要求保存部１１２が保持するデータ通信要求ヘッダ全てについてデータ通信要求ＩＤと比較し、一致するものを探索する（ステップＳＴ９０４）。ステップＳＴ９０４において、一致するものが存在しない場合、次にデータ通信要求ヘッダ内の宛先装置ＩＤ領域を参照し、既に宛先装置ＩＤ値がセットされているかどうかを判断する（ステップＳＴ９０５）。セットされていない場合は、これから送信する、現在の装置から発せられたデータである。この場合、当該ヘッダを通信／変更要求保存部１１２へ保存し（ステップＳＴ９０６）、次に通信／変更要求保存部１１２の内容を検索し、キューのより上位に変更要求ヘッダが存在するかどうかを判定する（ステップＳＴ９０７）。存在しない場合、当該ヘッダを通信保留実行部１０９へ返す（ステップＳＴ９０８）。存在する場合は終了する。一方で、ステップＳＴ９０５にて宛先装置ＩＤ値がセットされている場合は、当該通信は他の装置から発信されてきたケースに相当する。この場合、入力された通信要求ヘッダをそのまま通信保留実行部１０９へ返し（ステップＳＴ９０８）、終了する。
【００３７】
なお、ステップＳＴ９０５において、宛先装置ＩＤがセット済みか否かとしては、それぞれ次のような場合である。先ずセット済み（Ｙｅｓ）の場合とは、
１．宛先設定Ａの状態で装置Ｙが通信１を新たに発信した。
２．宛先変更要求Ｂが出された。
３．通信１が装置Ｘに到着。このとき通信１は宛先設定Ａを使った宛先解決が既になされているため、直ちにステップＳＴ９０８に移行する。
一方、ステップＳＴ９０５において、装置ＩＤがセット済みでない（Ｎｏ）の場合とは、
１．宛先変更要求Ｃが出された。
２．装置Ｘが通信要求３を新たに発行した。このとき通信要求３は宛先設定Ｃを使って宛先解決されるべきなので、ステップＳＴ９０６で保存しておく必要がある。
【００３８】
次に、ステップＳＴ９０４にて一致する通信要求ヘッダが存在する場合、当該通信要求ヘッダを通信／変更要求保存部１１２から削除する（ステップＳＴ９０９）。次に、通信／変更要求保存部１１２の先頭要素の種類を判断する（ステップＳＴ９１０）。先頭要素が通信要求ヘッダである場合は終了する。一方で先頭要素が宛先変更要求ヘッダである場合、当該宛先変更要求ヘッダを宛先変更保留実行部１０７へ返し、宛先変更を実行する（ステップＳＴ９１１）。次に、通信／変更要求保存部１１２のキュー先頭から最初に変更要求ヘッダが現れるか、キュー終端に至るまで、通信要求ヘッダを探索する（ステップＳＴ９１２）。最後にステップＳＴ９１２で見つかった全ての通信要求ヘッダについて順に通信保留実行部１０９へ返すことで保留されていた通信を実行する（ステップＳＴ９１３）。
【００３９】
データ送信部１１０では、まず到来したデータ通信要求についてヘッダ内の宛先装置ＩＤを参照する。宛先装置ＩＤが自装置を指す場合は、次にヘッダ内の送信先アプリケーションＩＤを参照することで宛先アプリケーションを同定し、このアプリケーションへの送信操作を行う。一方、宛先装置ＩＤが他装置、すなわちコンピュータ端末（１）２００またはコンピュータ端末（２）３００である場合は、装置間接続装置４００を使ってデータを装置外へ送信して処理を終える。
【００４０】
一方で、コンピュータ端末（１）２００またはコンピュータ端末（２）３００から発信されたデータ通信は、装置間接続装置４００を介して装置外発信データ受信部１１３へ到来する。装置外発信データ受信部１１３は、受信したデータ通信を、新たなデータ通信要求として通信保留実行部１０９へ入力する。このとき、当該データ通信要求ヘッダの情報、すなわち、元のデータ通信におけるデータ通信要求ＩＤ番号と、宛先アプリケーションＩＤ番号と、送信元アプリケーションＩＤ番号と、宛先装置ＩＤ番号と、返信フラグと、返信先要求ＩＤ番号と、宛先設定状態ＩＤ番号がコピーされる。ここで、宛先設定状態ＩＤ領域については、送信元の装置（コンピュータ端末（１）２００またはコンピュータ端末（２）３００）に備えられる通信ミドルウェア実行部２０５または３０５内部のアプリケーション実行装置記憶部に、この通信が発信された時点における宛先対応表の状態を表す宛先設定状態ＩＤ値が書き込まれている。
【００４１】
装置外発信データ受信部１１３で作成された新たなデータ通信要求は、通信保留実行部１０９へ入力され、上述したアプリケーションＡ実行部１０３やアプリケーションＢ実行部１０４からのデータ通信の場合と同様に処理が行われる。
一方で、コンピュータ端末（１）２００またはコンピュータ端末（２）３００から組込み機器１００への経路は、発信、宛先装置が入れ替わることを除いてはまったく同一である。これは、コンピュータ端末（１）２００またはコンピュータ端末（２）３００に備えられた通信ミドルウェア実行部２０５または３０５とその内部の各処理部は、組込み機器１００の通信ミドルウェア実行部１０５とその内部の各処理部と同一のソースコードからビルドされ、従って同一の機能を持っていることから実現できる。
【００４２】
本実施の形態によって、アプリケーション実行部各部が発行するデータ通信要求ならびに組込み機器１００に備えられた入力装置１１４が発行する宛先変更要求について、通信／変更保留判断部１１１によってその実行順番を管理することで、システム内部で通信の一貫性が常に保たれるようになる。
【００４３】
例えば、ある時点でアプリケーション実行装置記憶部１０６の宛先対応表は、図４に示すように、組込み機器１００のアプリケーションＡ実行部１０３は、コンピュータ端末（１）２００のアプリケーションＢ実行部２０４と互いに通信を行うよう記述されていたとする。この状態で、図１１に示すように、組込み機器１００のアプリケーションＡ実行部１０３から、アプリケーションＢ実行部２０４からの返信を必要とするデータ通信要求（要求Ｒ１と呼称する）が発行されたとする（ステップＳＴ１１００）。このＲ１は通信保留実行部１０９から通信／変更保留判断部１１１に送られ（ステップＳＴ１１０１）、通信／変更保留判断部１１１は、要求Ｒ１を通信／変更要求保存部１１２に保存し（ステップＳＴ１１０２）、また、Ｒ１を許可する（ステップＳＴ１１０３）。これは、図９、１０におけるステップＳＴ９００〜ＳＴ９０４〜ＳＴ９０５〜ＳＴ９０６〜ＳＴ９０７〜ＳＴ９０８の処理に相当する。これにより、通信保留実行部１０９はＲ１の通信を実行し（ステップＳＴ１１０４）、宛先判定部１０８以降の処理部によりアプリケーションＢ実行部２０４へと至る（ステップＳＴ１１０５）。
【００４４】
その後、開発者は、入力装置１１４を用いて、組込み機器１００のアプリケーションＡ実行部１０３から、コンピュータ端末（２）３００のアプリケーションＢ実行部３０４と互いに通信を行うよう、宛先変更要求を発行（要求Ｒ２と呼称する）したとする（ステップＳＴ１１０６）。一方、その後、要求Ｒ１に対応する返信は組込み機器１００内部の通信ミドルウェア１０５へ到達した（ステップＳＴ１１０７）とする。既に要求Ｒ２が発行されているが、宛先変更保留実行部１０７の機能により変更はまだ実行されてない。すなわち、通信／変更保留判断部１１１は、図９、１０のステップＳＴ９００〜ＳＴ９０１に示すように、宛先変更保留実行部１０７からの要求Ｒ２に対し（ステップＳＴ１１０８）、通信／変更要求保存部１１２にＲ２を保存する（ステップＳＴ１１０９）。しかし、ステップＳＴ９０２において通信／変更要求保存部１１２の上位にＲ１があるため、そのまま終了し、宛先変更保留実行部１０７は、要求Ｒ２を保留状態とする。
【００４５】
通信／変更保留判断部１１１は、通信／変更要求保存部１１２に保存された要求Ｒ２のヘッダと、要求Ｒ１に対する返信通信のヘッダ内容を比較することで、要求Ｒ１に対する返信の送信を先に実行する（ステップＳＴ１１１０）。これにより、通信保留実行部１０９は要求Ｒ１の返信通信をアプリケーションＡ実行部１０３に配送する（ステップＳＴ１１１１）。その後、Ｒ１ヘッダは通信／変更要求保存部１１２から削除され（ステップＳＴ１１１２）、Ｒ２の宛先変更要求が実施される（ステップＳＴ１１１３〜ＳＴ１１１６）。従って、通信要求の発生と、これに対して時間的に後に行われた宛先変更は、その時間順序を保ったまま実行される。以上のステップＳＴ１１０７〜ＳＴ１１１４の処理に対応する図９、１０の処理は次の通りである。
【００４６】
即ち、要求Ｒ１に対応する返信が通信ミドルウェア実行部１０５で受信されると、ステップＳＴ９００でデータ通信であると判断されるのでステップＳＴ９０４に進む。次に、ステップＳＴ９０４で一致する要素があると判断されるのでステップＳＴ９０９に進み、通信／変更要求保存部１１２からＲ１をポップして通信が許可される（ステップＳＴ１１１２とステップＳＴ１１１０〜ＳＴ１１１１に対応）。次に、ステップＳＴ９１０で、通信／変更要求保存部１１２の先頭は変更要求だと判断されるのでステップＳＴ９１１に進む。ステップＳＴ９１１でＲ２がポップされて返される（ステップＳＴ１１１３，ＳＴ１１１４に対応）。
【００４７】
また、本実施の形態によって、アプリケーション実行部各部が発行するデータ通信要求ならびに組込み機器１００に備えられた入力装置１１４が発行する宛先変更要求について、通信／変更保留判断部１１１によってその実行順番を管理することで、それぞれの要求実行は必要最小限の待機時間で行われることが実現される。例えば、前記要求Ｒ１、要求Ｒ２に加えて、別のデータ通信要求である要求Ｒ３がアプリケーションＡ実行部１０３から発行されたとする（ステップＳＴ１１１７）。これら三つの要求は、この順番に、かつ時間的に近接して発行されたとする。ここで時間的に近接するとは、要求Ｒ１に対する返信が組込み機器１００へと戻る前に要求Ｒ３の発行が行われる程度の時間間隔を表す。要求Ｒ３は通信保留実行部１０９から通信／変更保留判断部１１１に送られ（ステップＳＴ１１１８）、通信／変更保留判断部１１１は、要求Ｒ３を、上述した要求Ｒ１の場合と同様に通信／変更要求保存部１１２に保存する（ステップＳＴ１１１９）。これは、図９、１０におけるステップＳＴ９００〜ＳＴ９０４〜ＳＴ９０５〜ＳＴ９０６〜ＳＴ９０７の処理に相当する。
【００４８】
また、通信／変更保留判断部１１１の機能により、要求Ｒ１に対応する返信が組込み機器１００へと返ってきたタイミングで要求Ｒ２が実行され（ステップＳＴ１１１３〜ステップＳＴ１１１６）、その後即座に保留されていた要求Ｒ３も実行される（ステップＳＴ１１２０〜ＳＴ１１２６）。なお、ステップＳＴ１１２１において通信保留実行部１０９がＲ３通信を行うと宛先判定部１０８以降の処理では、Ｒ３の通信を、ステップＳＴ１１１６で変更された新たな宛先設定で実施する（ステップＳＴ１１２２）。また、Ｒ３返答（ステップＳＴ１１２３）に基づく通信／変更保留判断部１１１における図９，１０の処理は次の通りである。
【００４９】
Ｒ３返答はステップＳＴ９００でデータ通信であると判断されるのでステップＳＴ９０４に進む。ステップＳＴ９０４で一致する要素があると判断されるのでステップＳＴ９０９に進み、通信／変更要求保存部１１２からＲ３をポップして通信が許可される（ステップＳＴ１１２６とステップＳＴ１１２４，ＳＴ１１２５に対応）。ステップＳＴ９１０で、通信／変更要求保存部１１２の先頭は変更要求ではない（より正しくは、通信／変更要求保存部１１２は空である）だと判断されるので終了する。
【００５０】
このような動作を行うことにより、すべての装置上で、そのアプリケーションが任意のタイミングで互いに通信を行い、かつ開発者が任意のタイミングで通信宛先設定を行っても、システム内での通信の一貫性が保たれたまま、通信、宛先切り替えの実行を行うことが可能となる。例えば、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合において、宛先変更操作を行う際にも、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を行うことなく、システムの一貫性を保つことができる。
【００５１】
以上説明したように、実施の形態１の組込み機器ソフトウェア開発試験装置によれば、アプリケーション実行部が行うアプリケーション間のデータ通信を通信ミドルウェア実行部が管理する組込み機器と、組込み機器の前記通信ミドルウェア実行部及びアプリケーション実行部と同等の機能を持つソフトウェアが稼動する一つまたは複数のコンピュータ端末とを通信接続してなる組込み機器ソフトウェア開発試験装置において、通信ミドルウェア実行部は、アプリケーションを識別するアプリケーションＩＤと、アプリケーションが動作する組込み機器とコンピュータ端末を識別する装置ＩＤとを示す宛先対応表を保持するアプリケーション実行位置記憶部と、アプリケーション間通信が発生した場合、その通信データの送信先アプリケーションに基づいてアプリケーション実行位置記憶部を参照して送信先アプリケーションに対応した装置ＩＤを判定し、装置ＩＤの装置を通信データの宛先装置とする宛先判定部と、宛先対応表の宛先変更要求があった場合、宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は、宛先変更要求を保留とし、行われていない場合に宛先変更要求を許可する通信／変更保留判断部とを備えたので、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合において、宛先変更操作を行う際にも、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を行うことなく、システムの一貫性を保つことができる。
【００５２】
また、実施の形態１の組込み機器ソフトウェア開発試験装置によれば、通信／変更保留判断部は、宛先変更要求の保留後、宛先変更要求によって宛先変更される装置を宛先とするアプリケーション間通信が終了した場合に、宛先変更要求を許可するようにしたので、宛先変更を必要最小限の時間で行うことができる。
【００５３】
また、実施の形態１の組込み機器ソフトウェア開発試験装置によれば、通信／変更保留判断部は、アプリケーション間通信と宛先変更要求とのそれぞれについて、要求発生順または予め設定した優先度順に実行の許可を行うようにしたので、宛先変更操作を行う際にも、時間順序を保って要求を実行すること、または優先して実行されるべき要求を即座に実行することを必要に応じて選択することができる。
【００５４】
実施の形態２．
実施の形態１では、アプリケーション実行装置記憶部１０６，２０６の設定は、組込み機器１００とコンピュータ端末（１）２００（またはコンピュータ端末（２）３００）を接続した後、手動で行う必要があった。実施の形態２は、あるアプリケーションをある装置上で実行するように予め決めた設定情報を用意し、装置の接続を自動的に検知し、接続が検知された場合には、その設定情報を用いてアプリケーション実行装置記憶部１０６，２０６を自動的に設定する機能を実現する。
【００５５】
図１２は、実施の形態２のソフトウェア開発試験装置の構成図であり、組込み機器１００ａの構成を図１３に、コンピュータ端末（１）２００ａの構成を図１４に示す。
実施の形態２では、図１３および図１４に示すように、通信ミドルウェア実行部１０５ａ，２０５ａにおいて、実施の形態１におけるアプリケーション実行装置記憶部１０６，２０６に代えてアプリケーション実行装置記憶部１０６ａ，２０６ａを、また、宛先変更保留実行部１０７，２０７に代えて宛先変更保留実行部１０７ａ，２０７ａを、また、宛先判定部１０８、２０８に代えて宛先判定部１０８ａ，２０８ａを、またデータ送信部１１０、２１０に代えてデータ送信部１１０ａ，２１０ａを備えている。なお、コンピュータ端末（２）３００ａの通信ミドルウェア実行部３０５ａ内部にも、同様の機能をもつ処理部が備えられているが、これらの記載は省略している。
【００５６】
さらに、実施の形態２では、組込み機器１００ａ，コンピュータ端末（１）２００ａ，コンピュータ端末（２）３００ａのそれぞれに、自動設定実施部１１５，２１５，３１５と、自動設定情報記憶部１１６，２１６，３１６と、接続検知部１１７，２１７，３１７と、データ送信部１１０ａ、２１０ａと宛先変更保留実行部１０７ａ、２０７ａをそれぞれ接続する通信経路１１８と２１８とが追加されている。
【００５７】
以下では、本実施の形態で新たに追加された各処理部の機能について組込み機器１００ａに備えられているものを例として挙げることにより説明する。
自動設定実施部１１５は、接続検知が通知されることをきっかけとして通信ミドルウェア１０５ａに対して宛先変更要求を発行する処理部である。
通信ミドルウェア実行部１０５ａにおけるアプリケーション実行装置記憶部１０６ａは、実施の形態１におけるアプリケーション実行装置記憶部１０６の機能に加えて、データ通信要求を発行して宛先判定部１０８ａに伝達する機能を有する。
宛先変更保留実行部１０７ａは、実施の形態１における宛先変更保留実行部１０７の機能に加えて、自動設定実施部１１５による自動設定が実施されたことをアプリケーション実行装置記憶部１０６ａに伝達する機能と、データ送信部１１０ａから送信されるデータ通信を受信し、当該データ通信から新たな宛先変更要求を生成し、通信／変更保留判断部１１１へ転送する機能を有する。
【００５８】
宛先判定部１０８ａは、実施の形態１における宛先判定部１０８の機能に加えて、入力されたデータ通信要求の宛先装置ＩＤ値が、全装置宛を表す“ＡＬＬ”である場合、当該データ通信要求を、現在システムに接続している装置の数だけコピーし、それぞれのコピーされた通信要求の宛先装置ＩＤ領域に各装置ＩＤ値を入力し、データ送信部１１０ａへ入力する機能を有する。
データ送信部１１０ａは、実施の形態１におけるデータ送信部１１０の機能に加えて、入力されたデータ通信要求の宛先アプリケーションＩＤ値が、宛先無しを表す“Ｎｏｎｅ”である場合、当該データ通信要求を宛先変更保留実行部１０７ａへ送信する機能を有する。
自動設定情報記憶部１１６は、組込み機器１００ａが装置間接続装置４００に接続した後に、新たな宛先として自動設定されるべき宛先設定情報を保持し、自動設定実施部１１５へ通知する機能を持つ処理部である。
接続検知部１１７は、組込み機器１００ａが装置間接続装置４００に接続したことを検知し、自動設定実施部１１５へ通知する処理部である。
その他の構成については、図１に示した構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００５９】
次に、実施の形態２の動作について実施の形態１とは異なる動作を中心に説明する。
装置間接続装置４００により互いに接続する以前の組込み機器１００ａ、コンピュータ端末（１）２００ａ、コンピュータ端末（２）３００ａが備えるそれぞれのアプリケーション実行装置記憶部１０６ａ，２０６ａにおいて、全ての宛先装置ＩＤは自分自身を指す値を保持している。例えば、組込み機器１００ａにおけるアプリケーション実行装置記憶部１０６ａの情報は、図１５（ａ）に示すように、全ての宛先装置ＩＤは組込み機器１００ａを指す値となっている。また、コンピュータ端末（１）２００ａについても同様に自身を指す値となっている。なお、図１５において、左側が組込み機器１００ａを、右側がコンピュータ端末（１）２００ａの状態を示しているが、コンピュータ端末（２）３００ａについてはその図示を省略している。
【００６０】
自動設定情報記憶部１１６，２１６，３１６には、各装置が接続したときに宛先設定として有効になる宛先設定を予め書き込んでおく。例えば、アプリケーションＡは組込み機器１００ａを、またアプリケーションＢはコンピュータ端末（１）２００ａを宛先装置とする場合、図１５（ｂ）に示すような情報を各装置の自動設定情報記憶部１１６，２１６に書き込んでおく。
【００６１】
組込み機器１００ａ、コンピュータ端末（１）２００ａ、コンピュータ端末（２）３００ａの接続は、それぞれが備える接続検知部１１７，２１７，３１７によって検知される。接続検知部１１７，２１７，３１７が接続を検知する方法としては、例えば装置間接続装置４００としてイーサネット（登録商標／以下、省略して記載）ケーブルとイーサネットハブ装置を用いる場合、各接続検知部１１７，２１７，３１７は一定間隔でビーコン通信をブロードキャスト送信し、同時に他装置の接続検知部１１７，２１７，３１７からのビーコン信号を検出するためポーリングを行うという方法がある。この場合、例えば、最初、組込み機器１００ａと装置間接続装置４００のみからシステムを構成していたとする。次に、コンピュータ端末（１）２００ａが装置間接続装置４００へと接続することでイーサネットハブ装置がコンピュータ端末（１）２００ａの接続を認識する。次に、組込み機器１００ａの接続検知部１１７からブロードキャスト送信されるビーコン通信がイーサネットハブ装置によってコンピュータ端末（１）２００ａの接続検知部２１７によって受信される。これにより、コンピュータ端末（１）２００ａはシステムに接続したことを検知することができる。
【００６２】
接続検知部１１７，２１７，３１７が接続を検知した後の動作について、例えば組込み機器１００ａが装置間接続装置４００へ接続する場合の動作を説明する。動作は、図１６に示すフローチャートに従って行われる。接続検知部１１７が接続を検出すると（ステップＳＴ１６００）、自動設定実施部１１５に通知する（ステップＳＴ１６０１）。通知を受けた自動設定実施部１１５は、自動設定情報記憶部１１６から自動設定情報を取得する（ステップＳＴ１６０２）。次に、取得した自動設定情報の内容から宛先変更要求を作成する（ステップＳＴ１６０３）。ここで作成される宛先変更要求は、図１５（ｃ）に示すように、組込み機器１００ａであれば当該装置に関連するアプリケーションＡに関する宛先データのみを含んでいてもよい。次に当該宛先変更要求を宛先変更保留実行部１０７ａへと通知して終了する（ステップＳＴ１６０４）。
【００６３】
次に、宛先変更保留実行部１０７ａは、実施の形態１における宛先変更保留実行部１０７と同じ手順で当該宛先変更要求を処理する（ステップＳＴ１６０５ａ〜ＳＴ１６０５ｄ）。通信／変更保留判断部１１１によって変更実行許可が出ることによって、当該宛先変更要求をアプリケーション実行装置記憶部１０６ａに入力するが、このとき同時に、当該宛先変更要求が自動設定実施部１１５から入力されたものであることを通知する（ステップＳＴ１６０６）。
【００６４】
アプリケーション実行装置記憶部１０６ａは、入力された宛先変更要求を元に宛先対応表を改定する（ステップＳＴ１６０７）。このとき、当該宛先変更要求における宛先データ本体に記述の無いアプリケーションＩＤ−装置ＩＤに関しては変更しない。
次に、アプリケーション実行装置記憶部１０６ａは、新たにデータ通信要求を作成する（ステップＳＴ１６０８）。このとき、図１７に示すように、その宛先アプリケーションＩＤ値として”Ｎｏｎｅ”を、また送信元アプリケーションＩＤ値として宛先無しを表す”Ｎｏｎｅ”を、また宛先装置ＩＤ値として“ＡＬＬ”を、また返信フラグ値として“無し”を、また送信データ本体として当該宛先変更要求における宛先データを、アプリケーションＩＤと装置ＩＤの対データの配列として表現してセットする。次に、宛先判定部１０８ａに出力する（ステップＳＴ１６０９）。
【００６５】
宛先判定部１０８ａは、入力されたデータ通信要求の宛先装置ＩＤ値を判断し、その値が“ＡＬＬ”である場合、当該データ通信要求を、現在システムに接続している、自装置を除いた装置の数だけコピーする（ステップＳＴ１６１０）。次に、それぞれのコピーされたデータ通信要求の宛先装置ＩＤ領域に各装置ＩＤ値を入力する。次に、全てのコピーされたデータ通信要求をデータ送信部１１０ａへ入力することで送信する（ステップＳＴ１６１１）。以降は、実施の形態１において説明した方法で、各装置へデータが送信される。
【００６６】
その後の動作について、コンピュータ端末（１）２００ａの宛先判定部２０８ａでコピーされた、宛先変更データを保持するデータ通信要求を、組込み機器１００ａのデータ送信部１１０ａが受信した場合を例として説明する。動作は、図１８に示すフローチャートに従って実行される。データ送信部１１０ａは、受信したデータ通信要求の宛先アプリケーションＩＤ値を判断し（ステップＳＴ１８００）、その値が有効なアプリケーションＩＤである場合は対応するアプリケーションに通信を送信して（ステップＳＴ１８０１）、終了する。一方、その値が“Ｎｏｎｅ”である場合、当該通信要求を宛先変更保留実行部１０７ａに通知する（ステップＳＴ１８０２）。
【００６７】
宛先変更保留実行部１０７ａは、データ送信部１１０ａから受信すると、新たに宛先変更要求を生成し、その宛先データ本体領域に、受信した通信要求の送信データ本体に含まれる、宛先変更情報を入力する（ステップＳＴ１８０３）。その後は、実施の形態１における図８（ｂ）にて説明した方法で宛先変更を行う（ステップＳＴ１８０４ａ〜ＳＴ１８０４ｆ）。
【００６８】
以上で説明した動作により、自動設定情報記憶部１１６、２１６に記録した、各装置が接続したときに宛先設定として有効になる宛先設定が、他装置のアプリケーション実行装置記憶部に反映される。例えば、図１５（ｂ）に示すように、自動設定情報記憶部１１６，２１６が記録している状態で組込み機器１００ａ、コンピュータ端末（１）２００ａを装置間接続装置４００に接続した場合、それぞれの装置の宛先対応表は図１５（ｄ）に示すように変更される。
【００６９】
本実施の形態によって、組込み機器１００ａとコンピュータ端末（１）２００ａ，（２）３００ａの接続を自動的に検知し、接続が検知された場合には、予め決めておいたアプリケーション宛の通信をコンピュータ端末（１）２００ａ，（２）３００ａへ送信するようアプリケーション実行装置記憶部１０６ａを自動設定することが可能となる。例えば、アプリケーションＡの開発を担当する開発者のコンピュータ端末をシステムに接続するだけで、アプリケーションＡに宛てた全ての通信はそのコンピュータ端末に送信されるよう設定等が自動的になされるため、容易に試験を開始することができ、かつ設定の間違いによる不具合が発生しなくなる。
【００７０】
以上説明したように、実施の形態２の組込み機器ソフトウェア開発試験装置によれば、自身が他装置と通信接続された場合に宛先対応表における新たな宛先として設定する内容を示す宛先設定情報を保持する自動設定情報記憶部と、自身が他装置と通信接続された場合に、宛先設定情報に基づいて宛先対応表の宛先変更要求を送出する自動設定実施部と、自動設定実施部から送出された宛先変更要求を含む通信データを、他装置への送信データとして生成する宛先判定部と、他装置から受け取った宛先変更要求に基づいて自身の宛先対応表の宛先を変更する宛先変更保留実行部とを備えたので、組込み機器とコンピュータ端末を接続した際に開発者が宛先設定を行う必要が無くなり、容易に試験を開始することができると共に、設定の間違いによる不具合の発生といったことも未然に防止することができる。
【００７１】
実施の形態３．
実施の形態２では、組込み機器ソフトウェア開発試験装置を構成していた装置を接続解除する場合には、アプリケーション実行装置記憶部１０６ａ，２０６ａの設定を手動で行い、無効なデータ通信要求が発生しないように管理する必要があった。特に、装置間接続装置として無線接続機器のような、周囲の状況によって意図しない突然の接続解除が発生するような装置を利用する場合、システムの動作を正常にするためにアプリケーション実行装置記憶部の設定を切り替える必要がある。そこで、実施の形態３では、装置の接続状況を監視し、接続解除が発生した場合にアプリケーション実行装置記憶部の設定変更を行い、システムの動作を安定させることを実現するものである。
【００７２】
図１９は、実施の形態３のソフトウェア開発試験装置の構成図であり、組込み機器１００ｂの構成を図２０に、コンピュータ端末（１）２００ｂの構成を図２１に示す。
実施の形態３では、実施の形態２における自動設定実施部１１５，２１５，３１５に代えて自動設定実施部１１５ａ，２１５ａ，３１５ａを、また、接続検知部１１７，２１７，３１７に代えて接続検知部１１７ａ，２１７ａ，３１７ａを備える。加えて、デフォルト設定情報記憶部１１９，２１９，３１９が追加されている。
【００７３】
以下では、本実施の形態で新たに追加された各処理部の機能について組込み機器１００ｂに備えられているものを例として挙げることにより説明する。
自動設定実施部１１５ａは、実施の形態２における自動設定実施部１１５の機能に加えて、接続解除が通知されることをきっかけとして通信ミドルウェア実行部１０５ａに対して宛先変更要求を発行する機能を有する。
接続検知部１１７ａは、実施の形態２における接続検知部１１７の機能に加えて、組込み機器１００ｂが装置間接続装置４００から接続解除したことを検知し、自動設定実施部１１５ａへ通知する機能を有する。
デフォルト設定情報記憶部１１９は、組込み機器１００ｂが装置間接続装置４００から接続解除した後に、新たな宛先として自動設定されるべき宛先設定情報を保持し、自動設定実施部１１５ａへ通知する機能を持つ処理部である。
その他の構成については、図１２〜図１４に示した実施の形態２の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００７４】
次に、実施の形態３の動作について実施の形態２とは異なる動作を中心に説明する。
デフォルト設定情報記憶部１１９，２１９，３１９には、各装置が接続解除されたときに宛先設定として有効になる宛先設定を予め書き込んでおく。例えば、組込み機器１００ｂが装置間接続装置４００から接続解除された場合、組込み機器１００ｂ単独での動作を可能とするために、アプリケーションＡ、アプリケーションＢが共に組込み機器１００ｂで動作するように設定しておく場合、図２２に示すような情報を組込み機器１００ｂのデフォルト設定情報記憶部１１９に書き込んでおく。宛先設定状態ＩＤは、他と重複しない値、例えば０に設定しておく。
【００７５】
組込み機器１００ｂ、コンピュータ端末（１）２００ｂ、コンピュータ端末（２）３００ｂの接続解除は、それぞれが備える接続検知部１１７ａ，２１７ａ，３１７ａによって検知される。接続検知部１１７ａ，２１７ａ，３１７ａが接続解除を検知する方法としては、実施の形態２における接続検知部１１７が備える一定間隔でビーコン通信をブロードキャスト送信してモニタする方法では、当該ビーコン信号の検出が一定時間以上受信されない場合に接続解除として検出するという方法がある。
【００７６】
接続検知部１１７ａ，２１７ａ，３１７ａが接続解除を検知した後の動作について、例えば組込み機器１００ｂが装置間接続装置４００から接続解除する場合の動作を説明する。動作は、図２３に示すフローチャートに従って行われる。
まず、接続解除通知を受けた自動設定実施部１１５ａは、接続検知部１１７ａが接続解除を検出すると（ステップＳＴ２３００）、自動設定実施部１１５ａに通知する（ステップＳＴ２３０１）。通知を受けた自動設定実施部１１５ａは、デフォルト設定情報記憶部１１９からデフォルト設定情報を取得する（ステップＳＴ２３０２）。次に、取得したデフォルト設定情報の内容から宛先変更要求を作成する（ステップＳＴ２３０３）。次に当該宛先変更要求を宛先変更保留実行部１０７ａへと通知して終了する（ステップＳＴ２３０４）。
【００７７】
以降は、実施の形態２において説明した、宛先変更保留実行部１０７ａ、通信／変更保留判断部１１１の機能（ステップＳＴ２３０５ａ〜ＳＴ２３０５ｄ）により当該宛先変更要求が処理された上でアプリケーション実行装置記憶部１０６ａへと通知される（ステップＳＴ２３０６）。次に、実施の形態１において説明した、アプリケーション実行装置記憶部１０６の機能により、アプリケーション宛先変更が実行される（ステップＳＴ２３０７）。
本実施の形態によって、組込み機器１００ｂまたはコンピュータ端末（１），（２）２００ｂ，３００ｂの接続解除を自動的に検知し、接続解除が検知された場合には、予め決めておいた宛先設定となるようアプリケーション実行装置記憶部１０６ａ，２０６ａ，３０６ａを自動設定することが可能となる。
【００７８】
以上説明したように、実施の形態３の組込み機器ソフトウェア開発試験装置によれば、自身が他装置との通信接続を解除した場合に宛先対応表における新たな宛先として設定される内容を示すデフォルト宛先設定情報を保持するデフォルト設定情報記憶部を備え、自動設定実施部は、自身が他装置との通信接続を解除した場合に、デフォルト宛先設定情報に基づいて宛先対応表の宛先変更要求を送出し、宛先変更保留実行部は、自動設定実施部から送出された宛先変更要求に基づいて自身の宛先対応表の宛先を変更するようにしたので、接続解除が発生する度に手動で宛先変更を行う必要が無くなる。例えば、アプリケーションＡの開発者が装置間接続装置として無線接続機器を利用して、またアプリケーションＢの開発者が装置間接続装置としてイーサネットケーブルを経由した有線接続機器を利用して、それぞれ組込み機器実機に接続して開発を行っている場合において、あるとき、突然に何らかの外的擾乱により無線接続の不能が発生しても、アプリケーションＡの開発者の接続解除を検出してアプリケーション実行装置記憶部の設定を自動的に切り替えることにより、組込み機器とアプリケーションＢの開発者に対して大きな影響を与えることがない。従ってアプリケーションＢの開発者は引き続き開発試験作業を継続することができる。
【００７９】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００８０】
１００，１００ａ，１００ｂ  組込み機器、１０１，２０１，３０１  ＣＰＵ、１０２，２０２，３０２  オペレーティングシステム、１０３，２０３，３０３  アプリケーションＡ実行部、１０４，２０４，３０４  アプリケーションＢ実行部、１０５，１０５ａ，２０５，２０５ａ，３０５，３０５ａ  通信ミドルウェア実行部、１０６，１０６ａ，２０６，２０６ａ  アプリケーション実行装置記憶部、１０７，１０７ａ，２０７，２０７ａ  宛先変更保留実行部、１０８，１０８ａ，２０８，２０８ａ  宛先判定部、１０９，２０９  通信保留実行部、１１０，１１０ａ，２１０，２１０ａ  データ送信部、１１１，２１１  通信／変更保留判断部、１１２，２１２  通信／変更要求保存部、１１３，２１３  装置外発信データ受信部、１１４，２１４  入力装置、１１５，１１５ａ，２１５，２１５ａ，３１５，３１５ａ  自動設定実施部、１１６，２１６，３１６  自動設定情報記憶部、１１７，１１７ａ，２１７，２１７ａ，３１７，３１７ａ  接続検知部、２００，２００ａ，２００ｂ  コンピュータ端末（１）、３００，３００ａ，３００ｂ  コンピュータ端末（２）、４００  装置間接続装置。
クアップ基板。
【図１】
0006025763.tif 000002
【図２】
0006025763.tif 000003
【図３】
0006025763.tif 000004
【図４】
0006025763.tif 000005
【図５】
0006025763.tif 000006
【図６】
0006025763.tif 000007
【図７】
0006025763.tif 000008
【図８】
0006025763.tif 000009
【図９】
0006025763.tif 000010
【図１０】
0006025763.tif 000011
【図１１】
0006025763.tif 000012
【図１２】
0006025763.tif 000013
【図１３】
0006025763.tif 000014
【図１４】
0006025763.tif 000015
【図１５】
0006025763.tif 000016
【図１６】
0006025763.tif 000017
【図１７】
0006025763.tif 000018
【図１８】
0006025763.tif 000019
【図１９】
0006025763.tif 000020
【図２０】
0006025763.tif 000021
【図２１】
0006025763.tif 000022
【図２２】
0006025763.tif 000023
【図２３】
0006025763.tif 000024