(58)【調査した分野】(Int.Cl.,DB名)
アプリケーション実行部が行うアプリケーション間のデータ通信を通信ミドルウェア実行部が管理する組込み機器と、当該組込み機器の前記通信ミドルウェア実行部及び前記アプリケーション実行部と同等の機能を持つソフトウェアが稼動する一つまたは複数のコンピュータ端末とを通信接続してなる組込み機器ソフトウェア開発試験装置において、
前記通信ミドルウェア実行部は、
アプリケーションを識別するアプリケーションIDと、アプリケーションが動作する前記組込み機器と前記コンピュータ端末を識別する装置IDとを示す宛先対応表を保持するアプリケーション実行位置記憶部と、
アプリケーション間通信が発生した場合、その通信データの送信先アプリケーションに基づいて前記アプリケーション実行位置記憶部を参照して当該送信先アプリケーションに対応した装置IDを判定し、当該装置IDの装置を前記通信データの宛先装置とする宛先判定部と、
前記宛先対応表の宛先変更要求があった場合、当該宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は、当該宛先変更要求を保留とし、行われていない場合に前記宛先変更要求を許可する通信/変更保留判断部とを備えたことを特徴とする組込み機器ソフトウェア開発試験装置。
通信/変更保留判断部は、前記宛先変更要求の保留後、当該宛先変更要求によって宛先変更される装置を宛先とするアプリケーション間通信が終了した場合に、前記宛先変更要求を許可することを特徴とする請求項1記載の組込み機器ソフトウェア開発試験装置。
通信/変更保留判断部は、前記アプリケーション間通信と前記宛先変更要求とのそれぞれについて、要求発生順または予め設定した優先度順に実行の許可を行うことを特徴とする請求項1または請求項2記載の組込み機器ソフトウェア開発試験装置。
自身が他装置との通信接続を解除した場合に前記宛先対応表における新たな宛先として設定される内容を示すデフォルト宛先設定情報を保持するデフォルト設定情報記憶部を備え、
前記自動設定実施部は、自身が他装置との通信接続を解除した場合に、前記デフォルト宛先設定情報に基づいて前記宛先対応表の宛先変更要求を送出し、
前記宛先変更保留実行部は、前記自動設定実施部から送出された宛先変更要求に基づいて自身の宛先対応表の宛先を変更することを特徴とする請求項4記載の組込み機器ソフトウェア開発試験装置。
【発明を実施するための形態】
【0012】
実施の形態1.
図1は、この発明の実施の形態1による組込み機器ソフトウェア開発試験装置を示す構成図である。
図示のように、組込み機器ソフトウェア開発試験装置は、組込み機器100とコンピュータ端末(1)200、コンピュータ端末(2)300と装置間接続装置400とを備えている。
【0013】
組込み機器100にはアプリケーション実行環境が備わっている。アプリケーション実行環境とは、例えばCPU(Central Processing Unit)101が搭載され、またオペレーティングシステム102が稼動している環境を指す。ここでオペレーティングシステム102とは、CPU処理時間やメモリ、入出力装置などのリソースを管理する基本ソフトウェアとその実行部を含むものとする。なお、オペレーティングシステム102の代わりに、例えばモニタプログラムを用いることでその機能を実現してもよい。オペレーティングシステム102上では、アプリケーションAを実行するアプリケーションA実行部103、アプリケーションBを実行するアプリケーションB実行部104が稼動している。
【0014】
ここで、アプリケーションとは、アプリケーション実行環境の機能を使用し、組込み機器の提供する機能を実現するソフトウェアである。また、組込み機器は3つ以上のアプリケーション実行部を備えていてもよい。オペレーティングシステム102上には通信ミドルウェアを実行する通信ミドルウェア実行部105が稼動しており、この通信ミドルウェア実行部105を介することでアプリケーションA実行部103とアプリケーションB実行部104は互いに通信を送受信して連携することで、組込み機器100がユーザに提供する各機能を実現している。
また、組込み機器100には、組込み機器が提供する各機能を開発者または製品使用者が操作するための入力装置114を備えている。
【0015】
また、コンピュータ端末(1)200およびコンピュータ端末(2)300にも、CPU201,301、オペレーティングシステム202,302、アプリケーションA実行部203,303、アプリケーションB実行部204,304と通信ミドルウェア実行部205,305及び入力装置214(コンピュータ端末(2)300の入力装置はその図示を省略している)が備えられている。ここで、オペレーティングシステム202,302は、コンピュータ端末(1)200およびコンピュータ端末(2)300に搭載されたCPU201,301上で実行でき、かつ、組込み機器100のオペレーティングシステム102と共通のアプリケーションプログラミングインタフェース(API)を有している。これにより、例えば組込み機器100のCPU101とコンピュータ端末(1)200およびコンピュータ端末(2)300のCPU201,301とでアーキテクチャ等が異なっていたとしても、アプリケーションを変更無くビルド、実行できるものとする。従って、例えばアプリケーションA実行部203と通信ミドルウェア実行部205は、組込み機器100において対応する処理部(アプリケーションA実行部103、通信ミドルウェア実行部105)と同一のソースコードからビルドされるものとする。ここで、例えば入力としてアプリケーションA実行部103と同一のAPIを使用し、かつその出力結果も同一であれば、アプリケーションA実行部203は、アプリケーションA実行部103をビルドしたものと異なるソースコードからビルドされたものであってもよい。
【0016】
また、組込み機器100と、コンピュータ端末(1)200およびコンピュータ端末(2)300とは、両者を接続する装置間接続装置400によって互いに通信可能なように接続されており、その各装置での接続点はそれぞれ通信ミドルウェア実行部105,205,305となっている。装置間接続装置400は、例えば、USB(Universal Serial Bus)、IEEE1394等のシリアル通信バスやLAN(Local Area Network)、CAN(Controller Area Network)等、複数の情報処理装置を接続する通信手段を称するものである。LAN等ネットワーク接続機器を用いてネットワーク経由で接続してもよい。この場合、組込み機器100とコンピュータ端末(1)200またはコンピュータ端末(2)300は、必ずしも近接して配置されるのではなく、相互に隔離して運用することが可能となる。
また、組込み機器100に装置間接続装置を介して接続されるコンピュータ端末は、3つ以上であってもよい。
【0017】
図2に通信ミドルウェア実行部105の内部構成を含めた組込み機器100の構成を示し、
図3に通信ミドルウェア実行部205の内部構成を含めたコンピュータ端末(1)200の構成を示す。
図2に示すように、通信ミドルウェア実行部105は、アプリケーション実行装置記憶部106、宛先変更保留実行部107、宛先判定部108、通信保留実行部109、データ送信部110、通信/変更保留判断部111、通信/変更要求保存部112、装置外発信データ受信部113を備えている。また、コンピュータ端末(1)200,コンピュータ端末(2)300に備えられている通信ミドルウェア実行部205,305にも同等の機能を持つ処理部が備えられているものとする。
図3に示すように、コンピュータ端末(1)200の通信ミドルウェア実行部205内部にも通信ミドルウェア実行部105と同一の処理部が備えられている(アプリケーション実行装置記憶部206〜装置外発信データ受信部213)。また、コンピュータ端末(2)300の通信ミドルウェア実行部305内部にも各処理部が備えられているが、前述の通り全く同一の処理部を備えるため、
図1にて通信ミドルウェア実行部305のみを示し、内部構成に関する記載を省略する。
【0018】
以下では、各処理部の機能について組込み機器100に備えられているものを例として挙げることにより説明する。アプリケーション実行装置記憶部106は、アプリケーションの識別情報であるアプリケーションIDと、アプリケーションが動作する装置の装置IDとを関連付ける宛先対応表を保持している。
図4に示すように、宛先対応表は、自装置に含まれる全てのアプリケーションIDと装置IDとの関係群を一意に表す宛先設定状態ID番号と、各アプリケーションIDと装置IDとの一対一の対応関係を示す表とをそれぞれ格納する領域が含まれる。
【0019】
アプリケーション実行装置記憶部106に記憶される宛先対応表は、入力装置114を用いて開発者が操作することで、その内容を変更することができるものとする。入力装置114により入力された宛先変更要求は、宛先変更保留実行部107を経由してアプリケーション実行装置記憶部106に伝達される。
【0020】
宛先変更保留実行部107は、宛先変更要求が入力されると、この要求のヘッダ部分を通信/変更保留判断部111へと転送して問い合わせ、その結果として得られる通信/変更保留判断部111からの返答に従って、宛先変更要求をアプリケーション実行装置記憶部106へ伝達または保留する。
宛先判定部108は、いずれかのアプリケーション実行部からデータ通信要求が発生した場合、通信保留実行部109を経由してデータ通信要求が入力される。この入力されたデータ通信要求から送信先アプリケーションの情報を取得し、アプリケーション実行装置記憶部106を参照して、宛先装置を特定する機能を有している。
【0021】
通信保留実行部109は、データ通信要求が入力されると、そのヘッダ部分を通信/変更保留判断部111へと転送して問い合わせ、その結果として得られる通信/変更保留判断部111からの返答に従って、データ通信要求を宛先判定部108へ伝達または保留する。
【0022】
データ送信部110は、宛先判定部108を介して出力される通信データの宛先装置IDに基づいて、その送信先装置IDを有する装置へ通信データを送信すると共に、装置外発信データ受信部113で受信された通信データを自装置の該当するアプリケーションに配送する処理部である。
【0023】
通信/変更保留判断部111は、宛先変更保留実行部107、通信保留実行部109から転送される宛先変更要求ヘッダ、データ通信要求ヘッダについて、通信/変更要求保存部112に保存した上で、各要求に対して実行または保留の判断を行い、宛先変更保留実行部107、通信保留実行部109に通知する。
【0024】
通信/変更要求保存部112は、データ通信要求または宛先変更要求のヘッダ部分の情報について、先入れ先出し(First−In,First−Out;FIFO)キュー方式、すなわち各ヘッダ部分の到来時間順を保ったまま、一つ以上保持できるものであり、ある時点で先頭にあるヘッダ情報を取得できる機能と選択したヘッダ情報を抜き出す機能とを備える。これらの機能は、通信/変更保留判断部111によって利用される。
【0025】
なお、上記例では、通信/変更要求保存部112はFIFOキュー方式で各要求ヘッダ部分を保存するという方法を示したが、例えば、データ通信要求ヘッダまたは宛先変更要求ヘッダに優先度を表す項目を設け、各アプリケーションA実行部103,アプリケーションB実行部104または入力装置114での要求発行時に優先度を設定し、優先度が高ければFIFOキューのより上位に保存する、という方法をとってもよい。
【0026】
装置外発信データ受信部113は、装置間接続装置400を介して他の装置から送信された通信データを受信し、これを通信保留実行部109に出力する処理部である。
【0027】
なお、通信ミドルウェア実行部105におけるアプリケーション実行装置記憶部106、宛先変更保留実行部107、宛先判定部108、通信保留実行部109、データ送信部110、通信/変更保留判断部111、通信/変更要求保存部112、装置外発信データ受信部113は、それぞれの機能に対応したプログラムをCPU101が実行することによって実現されている。
【0028】
次に、実施の形態1のソフトウェア試験装置の動作について説明する。なお、説明の一例として、最初に、組込み機器100側からアプリケーション通信要求が発生した場合の動作について説明する。
通信ミドルウェア実行部105は、データ通信要求の到来に従って次のような手順で通信処理を行う。まず、アプリケーションA実行部103やアプリケーションB実行部104からのデータ通信要求は通信保留実行部109へと入力される。データ通信要求は、
図5(a)に示すような構造である。この構造は、データ通信要求それぞれを特定するID番号と、宛先アプリケーションを表すID番号と、送信元アプリケーションを表すID番号と、宛先アプリケーションが動作する装置を表す宛先装置ID番号と、この通信における返信の必要の有無を示す返信フラグと、通信要求が、過去の通信に対する返信である場合に、その通信におけるデータ通信要求IDを保持する返信先要求IDと、通信要求が発生した段階でアプリケーション実行装置記憶部106に記憶されている宛先対応表における宛先設定状態ID番号とをそれぞれ格納する領域が含まれる。ヘッダ部分の後には、本体領域が配置される。本体領域に、通信データであるデータ本体が格納される。ここで、通信保留実行部109にデータ通信要求が到来した段階では、宛先装置IDと宛先設定状態IDを格納する領域については空のままである。また、返信先要求IDについては、このデータ通信要求が過去の通信の返信として発行された場合にのみ値が格納される。
【0029】
通信保留実行部109は、到来したデータ通信要求について
図6(a)に示すフローチャートに従って処理する。まず、データ通信要求のヘッダ部分のみを取得する(ステップST600)。次にヘッダ部分を通信/変更保留判断部111に転送する(ステップST601)。次に、データ通信要求を保存するためのメモリ領域をオペレーティングシステム102から取得し、データ通信要求を格納し(ステップST602)、終了する。
また、通信保留実行部109は、例えばオペレーティングシステム102のマルチスレッド機能などを使用することで、
図6(a)の処理と並行して
図6(b)に示すフローチャートに従って、通信/変更保留判断部111からの回答により処理を行う。まず、通信/変更保留判断部111からの返答を受信するまで待機する(ステップST603、ステップST603a)。ここで、通信/変更保留判断部111からの返答にはステップST601で転送したデータ通信要求のヘッダ部分が含まれるものとする。次に、ステップST603aにおいて回答を受信した場合は、ステップST602において確保したメモリ領域を探索し、この返答が含むヘッダと同一のヘッダを持つデータ通信要求を取得すると共に、このデータ通信要求をメモリ領域から削除する(ステップST604)。次に回答として受信したデータ通信要求を宛先判定部108に送信する(ステップST605)。この処理を繰り返す。
【0030】
次に、データ通信要求は宛先判定部108へと入力される。宛先判定部108は、
図7に示すフローチャートに従って、データ通信要求の宛先を判定する。まず、データ通信要求のヘッダ部分の宛先装置IDを保持する領域を参照し、既に宛先装置IDがセットされているかどうか判定する(ステップST700)。セットされている場合は終了する。セットされていない場合、データ通信要求のヘッダ部分から宛先アプリケーションIDを取得し(ステップST701)、この宛先アプリケーションIDをキーとして、アプリケーション実行装置記憶部106に対して問い合わせを行い、宛先装置IDを取得する(ステップST702)。ステップST702で取得した宛先装置IDについては、データ通信要求ヘッダ内に予約された宛先装置IDを保持する領域へと書き込むことで宛先装置ID値を設定する(ステップST703)。次に、データ通信要求ヘッダの宛先設定状態ID領域に、現在アプリケーション実行装置記憶部106に記憶されている宛先対応表の宛先設定状態IDの値をセットする(ステップST704)。
【0031】
宛先判定部108によって判定に用いられるアプリケーション実行装置記憶部106の宛先対応表は、開発者が入力装置114を用いて操作することで設定変更することができる。入力装置114は、機械式スイッチの組み合わせによって、予め定めたアプリケーション−装置間対応関係を、宛先変更要求として出力するものである。また、例えば液晶ディスプレイ等の表示装置を内蔵し、視覚的に対応関係を入力できるような入力装置を用いてもよい。
【0032】
入力装置114からの宛先変更要求は、宛先変更保留実行部107へと入力される。宛先変更要求は
図5(b)に示すような構造であり、当該要求によってアプリケーション実行装置記憶部106に記憶される宛先対応表における宛先設定状態ID番号と、宛先設定データとをそれぞれ格納する領域が含まれる。宛先設定データについては、アプリケーションIDと装置IDの対データの配列として記述される。
【0033】
宛先変更保留実行部107は、
図8(a)に示すフローチャートに従って、宛先変更要求を処理する。まず、宛先変更要求のヘッダ部分のみを取得する(ステップST800)。次にヘッダ部分を通信/変更保留判断部111に転送する(ステップST801)。次に、宛先変更要求を保存するメモリ領域を確保して格納し(ステップST802)、終了する。
【0034】
また、宛先変更保留実行部107は、例えばオペレーティングシステム102のマルチスレッド機能などを使用することで、
図8(a)の処理と並行して
図8(b)に示すフローチャートに従って、通信/変更保留判断部111からの回答により処理を行う。まず、通信/変更保留判断部111からの返答をモニタしながら待機する(ステップST803、ステップST803a)。ここで、通信/変更保留判断部111からの返答にはステップST801で転送した宛先変更要求のヘッダ部分が含まれるものとする。返答を受信した場合、ステップST802において確保したメモリ領域を探索し、この返答が指す宛先変更要求を取得すると共に宛先変更要求をメモリ領域から削除する(ステップST804)。次に取得した宛先変更要求の宛先データ本体部分をアプリケーション実行装置記憶部106に送信し、宛先対応表の宛先装置IDを変更する(ステップST805)。その後再びステップST803に戻って待機を続ける。
【0035】
通信/変更保留判断部111は、通信保留実行部109と宛先変更保留実行部107から転送されるデータ通信要求ヘッダ部分と宛先変更要求ヘッダ部分を入力として、
図9および
図10に示すフローチャートに従って処理を行う。まず、入力された要求の種類を判断する(ステップST900)。入力が宛先変更要求ヘッダである場合、当該ヘッダを通信/変更要求保存部112へ保存する(ステップST901)。次に通信/変更要求保存部112の内容を探索し、キューのより上位に通信要求ヘッダが存在するかどうかを判定する(ステップST902)。存在しない場合、通信/変更要求保存部112の先頭要素、すなわち宛先変更要求ヘッダを抜き出し、当該ヘッダを宛先変更保留実行部107へ返す(ステップST903)。一方、存在する場合は終了する。
【0036】
ステップST900において、入力がデータ通信要求ヘッダである場合、次に入力ヘッダの返信先要求ID値を取り出し、通信/変更要求保存部112が保持するデータ通信要求ヘッダ全てについてデータ通信要求IDと比較し、一致するものを探索する(ステップST904)。ステップST904において、一致するものが存在しない場合、次にデータ通信要求ヘッダ内の宛先装置ID領域を参照し、既に宛先装置ID値がセットされているかどうかを判断する(ステップST905)。セットされていない場合は、これから送信する、現在の装置から発せられたデータである。この場合、当該ヘッダを通信/変更要求保存部112へ保存し(ステップST906)、次に通信/変更要求保存部112の内容を検索し、キューのより上位に変更要求ヘッダが存在するかどうかを判定する(ステップST907)。存在しない場合、当該ヘッダを通信保留実行部109へ返す(ステップST908)。存在する場合は終了する。一方で、ステップST905にて宛先装置ID値がセットされている場合は、当該通信は他の装置から発信されてきたケースに相当する。この場合、入力された通信要求ヘッダをそのまま通信保留実行部109へ返し(ステップST908)、終了する。
【0037】
なお、ステップST905において、宛先装置IDがセット済みか否かとしては、それぞれ次のような場合である。先ずセット済み(Yes)の場合とは、
1.宛先設定Aの状態で装置Yが通信1を新たに発信した。
2.宛先変更要求Bが出された。
3.通信1が装置Xに到着。このとき通信1は宛先設定Aを使った宛先解決が既になされているため、直ちにステップST908に移行する。
一方、ステップST905において、装置IDがセット済みでない(No)の場合とは、
1.宛先変更要求Cが出された。
2.装置Xが通信要求3を新たに発行した。このとき通信要求3は宛先設定Cを使って宛先解決されるべきなので、ステップST906で保存しておく必要がある。
【0038】
次に、ステップST904にて一致する通信要求ヘッダが存在する場合、当該通信要求ヘッダを通信/変更要求保存部112から削除する(ステップST909)。次に、通信/変更要求保存部112の先頭要素の種類を判断する(ステップST910)。先頭要素が通信要求ヘッダである場合は終了する。一方で先頭要素が宛先変更要求ヘッダである場合、当該宛先変更要求ヘッダを宛先変更保留実行部107へ返し、宛先変更を実行する(ステップST911)。次に、通信/変更要求保存部112のキュー先頭から最初に変更要求ヘッダが現れるか、キュー終端に至るまで、通信要求ヘッダを探索する(ステップST912)。最後にステップST912で見つかった全ての通信要求ヘッダについて順に通信保留実行部109へ返すことで保留されていた通信を実行する(ステップST913)。
【0039】
データ送信部110では、まず到来したデータ通信要求についてヘッダ内の宛先装置IDを参照する。宛先装置IDが自装置を指す場合は、次にヘッダ内の送信先アプリケーションIDを参照することで宛先アプリケーションを同定し、このアプリケーションへの送信操作を行う。一方、宛先装置IDが他装置、すなわちコンピュータ端末(1)200またはコンピュータ端末(2)300である場合は、装置間接続装置400を使ってデータを装置外へ送信して処理を終える。
【0040】
一方で、コンピュータ端末(1)200またはコンピュータ端末(2)300から発信されたデータ通信は、装置間接続装置400を介して装置外発信データ受信部113へ到来する。装置外発信データ受信部113は、受信したデータ通信を、新たなデータ通信要求として通信保留実行部109へ入力する。このとき、当該データ通信要求ヘッダの情報、すなわち、元のデータ通信におけるデータ通信要求ID番号と、宛先アプリケーションID番号と、送信元アプリケーションID番号と、宛先装置ID番号と、返信フラグと、返信先要求ID番号と、宛先設定状態ID番号がコピーされる。ここで、宛先設定状態ID領域については、送信元の装置(コンピュータ端末(1)200またはコンピュータ端末(2)300)に備えられる通信ミドルウェア実行部205または305内部のアプリケーション実行装置記憶部に、この通信が発信された時点における宛先対応表の状態を表す宛先設定状態ID値が書き込まれている。
【0041】
装置外発信データ受信部113で作成された新たなデータ通信要求は、通信保留実行部109へ入力され、上述したアプリケーションA実行部103やアプリケーションB実行部104からのデータ通信の場合と同様に処理が行われる。
一方で、コンピュータ端末(1)200またはコンピュータ端末(2)300から組込み機器100への経路は、発信、宛先装置が入れ替わることを除いてはまったく同一である。これは、コンピュータ端末(1)200またはコンピュータ端末(2)300に備えられた通信ミドルウェア実行部205または305とその内部の各処理部は、組込み機器100の通信ミドルウェア実行部105とその内部の各処理部と同一のソースコードからビルドされ、従って同一の機能を持っていることから実現できる。
【0042】
本実施の形態によって、アプリケーション実行部各部が発行するデータ通信要求ならびに組込み機器100に備えられた入力装置114が発行する宛先変更要求について、通信/変更保留判断部111によってその実行順番を管理することで、システム内部で通信の一貫性が常に保たれるようになる。
【0043】
例えば、ある時点でアプリケーション実行装置記憶部106の宛先対応表は、
図4に示すように、組込み機器100のアプリケーションA実行部103は、コンピュータ端末(1)200のアプリケーションB実行部204と互いに通信を行うよう記述されていたとする。この状態で、
図11に示すように、組込み機器100のアプリケーションA実行部103から、アプリケーションB実行部204からの返信を必要とするデータ通信要求(要求R1と呼称する)が発行されたとする(ステップST1100)。このR1は通信保留実行部109から通信/変更保留判断部111に送られ(ステップST1101)、通信/変更保留判断部111は、要求R1を通信/変更要求保存部112に保存し(ステップST1102)、また、R1を許可する(ステップST1103)。これは、
図9、10におけるステップST900〜ST904〜ST905〜ST906〜ST907〜ST908の処理に相当する。これにより、通信保留実行部109はR1の通信を実行し(ステップST1104)、宛先判定部108以降の処理部によりアプリケーションB実行部204へと至る(ステップST1105)。
【0044】
その後、開発者は、入力装置114を用いて、組込み機器100のアプリケーションA実行部103から、コンピュータ端末(2)300のアプリケーションB実行部304と互いに通信を行うよう、宛先変更要求を発行(要求R2と呼称する)したとする(ステップST1106)。一方、その後、要求R1に対応する返信は組込み機器100内部の通信ミドルウェア105へ到達した(ステップST1107)とする。既に要求R2が発行されているが、宛先変更保留実行部107の機能により変更はまだ実行されてない。すなわち、通信/変更保留判断部111は、
図9、10のステップST900〜ST901に示すように、宛先変更保留実行部107からの要求R2に対し(ステップST1108)、通信/変更要求保存部112にR2を保存する(ステップST1109)。しかし、ステップST902において通信/変更要求保存部112の上位にR1があるため、そのまま終了し、宛先変更保留実行部107は、要求R2を保留状態とする。
【0045】
通信/変更保留判断部111は、通信/変更要求保存部112に保存された要求R2のヘッダと、要求R1に対する返信通信のヘッダ内容を比較することで、要求R1に対する返信の送信を先に実行する(ステップST1110)。これにより、通信保留実行部109は要求R1の返信通信をアプリケーションA実行部103に配送する(ステップST1111)。その後、R1ヘッダは通信/変更要求保存部112から削除され(ステップST1112)、R2の宛先変更要求が実施される(ステップST1113〜ST1116)。従って、通信要求の発生と、これに対して時間的に後に行われた宛先変更は、その時間順序を保ったまま実行される。以上のステップST1107〜ST1114の処理に対応する
図9、10の処理は次の通りである。
【0046】
即ち、要求R1に対応する返信が通信ミドルウェア実行部105で受信されると、ステップST900でデータ通信であると判断されるのでステップST904に進む。次に、ステップST904で一致する要素があると判断されるのでステップST909に進み、通信/変更要求保存部112からR1をポップして通信が許可される(ステップST1112とステップST1110〜ST1111に対応)。次に、ステップST910で、通信/変更要求保存部112の先頭は変更要求だと判断されるのでステップST911に進む。ステップST911でR2がポップされて返される(ステップST1113,ST1114に対応)。
【0047】
また、本実施の形態によって、アプリケーション実行部各部が発行するデータ通信要求ならびに組込み機器100に備えられた入力装置114が発行する宛先変更要求について、通信/変更保留判断部111によってその実行順番を管理することで、それぞれの要求実行は必要最小限の待機時間で行われることが実現される。例えば、前記要求R1、要求R2に加えて、別のデータ通信要求である要求R3がアプリケーションA実行部103から発行されたとする(ステップST1117)。これら三つの要求は、この順番に、かつ時間的に近接して発行されたとする。ここで時間的に近接するとは、要求R1に対する返信が組込み機器100へと戻る前に要求R3の発行が行われる程度の時間間隔を表す。要求R3は通信保留実行部109から通信/変更保留判断部111に送られ(ステップST1118)、通信/変更保留判断部111は、要求R3を、上述した要求R1の場合と同様に通信/変更要求保存部112に保存する(ステップST1119)。これは、
図9、10におけるステップST900〜ST904〜ST905〜ST906〜ST907の処理に相当する。
【0048】
また、通信/変更保留判断部111の機能により、要求R1に対応する返信が組込み機器100へと返ってきたタイミングで要求R2が実行され(ステップST1113〜ステップST1116)、その後即座に保留されていた要求R3も実行される(ステップST1120〜ST1126)。なお、ステップST1121において通信保留実行部109がR3通信を行うと宛先判定部108以降の処理では、R3の通信を、ステップST1116で変更された新たな宛先設定で実施する(ステップST1122)。また、R3返答(ステップST1123)に基づく通信/変更保留判断部111における
図9,10の処理は次の通りである。
【0049】
R3返答はステップST900でデータ通信であると判断されるのでステップST904に進む。ステップST904で一致する要素があると判断されるのでステップST909に進み、通信/変更要求保存部112からR3をポップして通信が許可される(ステップST1126とステップST1124,ST1125に対応)。ステップST910で、通信/変更要求保存部112の先頭は変更要求ではない(より正しくは、通信/変更要求保存部112は空である)だと判断されるので終了する。
【0050】
このような動作を行うことにより、すべての装置上で、そのアプリケーションが任意のタイミングで互いに通信を行い、かつ開発者が任意のタイミングで通信宛先設定を行っても、システム内での通信の一貫性が保たれたまま、通信、宛先切り替えの実行を行うことが可能となる。例えば、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合において、宛先変更操作を行う際にも、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を行うことなく、システムの一貫性を保つことができる。
【0051】
以上説明したように、実施の形態1の組込み機器ソフトウェア開発試験装置によれば、アプリケーション実行部が行うアプリケーション間のデータ通信を通信ミドルウェア実行部が管理する組込み機器と、組込み機器の前記通信ミドルウェア実行部及びアプリケーション実行部と同等の機能を持つソフトウェアが稼動する一つまたは複数のコンピュータ端末とを通信接続してなる組込み機器ソフトウェア開発試験装置において、通信ミドルウェア実行部は、アプリケーションを識別するアプリケーションIDと、アプリケーションが動作する組込み機器とコンピュータ端末を識別する装置IDとを示す宛先対応表を保持するアプリケーション実行位置記憶部と、アプリケーション間通信が発生した場合、その通信データの送信先アプリケーションに基づいてアプリケーション実行位置記憶部を参照して送信先アプリケーションに対応した装置IDを判定し、装置IDの装置を通信データの宛先装置とする宛先判定部と、宛先対応表の宛先変更要求があった場合、宛先変更される装置を宛先とするアプリケーション間通信が行われているか否かを判定し、行われている場合は、宛先変更要求を保留とし、行われていない場合に宛先変更要求を許可する通信/変更保留判断部とを備えたので、単一の組込み機器を複数の開発者で共有しながら開発試験を行う場合において、宛先変更操作を行う際にも、システム稼動の停止や通信終了待機などの時間の掛かる同期作業を行うことなく、システムの一貫性を保つことができる。
【0052】
また、実施の形態1の組込み機器ソフトウェア開発試験装置によれば、通信/変更保留判断部は、宛先変更要求の保留後、宛先変更要求によって宛先変更される装置を宛先とするアプリケーション間通信が終了した場合に、宛先変更要求を許可するようにしたので、宛先変更を必要最小限の時間で行うことができる。
【0053】
また、実施の形態1の組込み機器ソフトウェア開発試験装置によれば、通信/変更保留判断部は、アプリケーション間通信と宛先変更要求とのそれぞれについて、要求発生順または予め設定した優先度順に実行の許可を行うようにしたので、宛先変更操作を行う際にも、時間順序を保って要求を実行すること、または優先して実行されるべき要求を即座に実行することを必要に応じて選択することができる。
【0054】
実施の形態2.
実施の形態1では、アプリケーション実行装置記憶部106,206の設定は、組込み機器100とコンピュータ端末(1)200(またはコンピュータ端末(2)300)を接続した後、手動で行う必要があった。実施の形態2は、あるアプリケーションをある装置上で実行するように予め決めた設定情報を用意し、装置の接続を自動的に検知し、接続が検知された場合には、その設定情報を用いてアプリケーション実行装置記憶部106,206を自動的に設定する機能を実現する。
【0055】
図12は、実施の形態2のソフトウェア開発試験装置の構成図であり、組込み機器100aの構成を
図13に、コンピュータ端末(1)200aの構成を
図14に示す。
実施の形態2では、
図13および
図14に示すように、通信ミドルウェア実行部105a,205aにおいて、実施の形態1におけるアプリケーション実行装置記憶部106,206に代えてアプリケーション実行装置記憶部106a,206aを、また、宛先変更保留実行部107,207に代えて宛先変更保留実行部107a,207aを、また、宛先判定部108、208に代えて宛先判定部108a,208aを、またデータ送信部110、210に代えてデータ送信部110a,210aを備えている。なお、コンピュータ端末(2)300aの通信ミドルウェア実行部305a内部にも、同様の機能をもつ処理部が備えられているが、これらの記載は省略している。
【0056】
さらに、実施の形態2では、組込み機器100a,コンピュータ端末(1)200a,コンピュータ端末(2)300aのそれぞれに、自動設定実施部115,215,315と、自動設定情報記憶部116,216,316と、接続検知部117,217,317と、データ送信部110a、210aと宛先変更保留実行部107a、207aをそれぞれ接続する通信経路118と218とが追加されている。
【0057】
以下では、本実施の形態で新たに追加された各処理部の機能について組込み機器100aに備えられているものを例として挙げることにより説明する。
自動設定実施部115は、接続検知が通知されることをきっかけとして通信ミドルウェア105aに対して宛先変更要求を発行する処理部である。
通信ミドルウェア実行部105aにおけるアプリケーション実行装置記憶部106aは、実施の形態1におけるアプリケーション実行装置記憶部106の機能に加えて、データ通信要求を発行して宛先判定部108aに伝達する機能を有する。
宛先変更保留実行部107aは、実施の形態1における宛先変更保留実行部107の機能に加えて、自動設定実施部115による自動設定が実施されたことをアプリケーション実行装置記憶部106aに伝達する機能と、データ送信部110aから送信されるデータ通信を受信し、当該データ通信から新たな宛先変更要求を生成し、通信/変更保留判断部111へ転送する機能を有する。
【0058】
宛先判定部108aは、実施の形態1における宛先判定部108の機能に加えて、入力されたデータ通信要求の宛先装置ID値が、全装置宛を表す“ALL”である場合、当該データ通信要求を、現在システムに接続している装置の数だけコピーし、それぞれのコピーされた通信要求の宛先装置ID領域に各装置ID値を入力し、データ送信部110aへ入力する機能を有する。
データ送信部110aは、実施の形態1におけるデータ送信部110の機能に加えて、入力されたデータ通信要求の宛先アプリケーションID値が、宛先無しを表す“None”である場合、当該データ通信要求を宛先変更保留実行部107aへ送信する機能を有する。
自動設定情報記憶部116は、組込み機器100aが装置間接続装置400に接続した後に、新たな宛先として自動設定されるべき宛先設定情報を保持し、自動設定実施部115へ通知する機能を持つ処理部である。
接続検知部117は、組込み機器100aが装置間接続装置400に接続したことを検知し、自動設定実施部115へ通知する処理部である。
その他の構成については、
図1に示した構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【0059】
次に、実施の形態2の動作について実施の形態1とは異なる動作を中心に説明する。
装置間接続装置400により互いに接続する以前の組込み機器100a、コンピュータ端末(1)200a、コンピュータ端末(2)300aが備えるそれぞれのアプリケーション実行装置記憶部106a,206aにおいて、全ての宛先装置IDは自分自身を指す値を保持している。例えば、組込み機器100aにおけるアプリケーション実行装置記憶部106aの情報は、
図15(a)に示すように、全ての宛先装置IDは組込み機器100aを指す値となっている。また、コンピュータ端末(1)200aについても同様に自身を指す値となっている。なお、
図15において、左側が組込み機器100aを、右側がコンピュータ端末(1)200aの状態を示しているが、コンピュータ端末(2)300aについてはその図示を省略している。
【0060】
自動設定情報記憶部116,216,316には、各装置が接続したときに宛先設定として有効になる宛先設定を予め書き込んでおく。例えば、アプリケーションAは組込み機器100aを、またアプリケーションBはコンピュータ端末(1)200aを宛先装置とする場合、
図15(b)に示すような情報を各装置の自動設定情報記憶部116,216に書き込んでおく。
【0061】
組込み機器100a、コンピュータ端末(1)200a、コンピュータ端末(2)300aの接続は、それぞれが備える接続検知部117,217,317によって検知される。接続検知部117,217,317が接続を検知する方法としては、例えば装置間接続装置400としてイーサネット(登録商標/以下、省略して記載)ケーブルとイーサネットハブ装置を用いる場合、各接続検知部117,217,317は一定間隔でビーコン通信をブロードキャスト送信し、同時に他装置の接続検知部117,217,317からのビーコン信号を検出するためポーリングを行うという方法がある。この場合、例えば、最初、組込み機器100aと装置間接続装置400のみからシステムを構成していたとする。次に、コンピュータ端末(1)200aが装置間接続装置400へと接続することでイーサネットハブ装置がコンピュータ端末(1)200aの接続を認識する。次に、組込み機器100aの接続検知部117からブロードキャスト送信されるビーコン通信がイーサネットハブ装置によってコンピュータ端末(1)200aの接続検知部217によって受信される。これにより、コンピュータ端末(1)200aはシステムに接続したことを検知することができる。
【0062】
接続検知部117,217,317が接続を検知した後の動作について、例えば組込み機器100aが装置間接続装置400へ接続する場合の動作を説明する。動作は、
図16に示すフローチャートに従って行われる。接続検知部117が接続を検出すると(ステップST1600)、自動設定実施部115に通知する(ステップST1601)。通知を受けた自動設定実施部115は、自動設定情報記憶部116から自動設定情報を取得する(ステップST1602)。次に、取得した自動設定情報の内容から宛先変更要求を作成する(ステップST1603)。ここで作成される宛先変更要求は、
図15(c)に示すように、組込み機器100aであれば当該装置に関連するアプリケーションAに関する宛先データのみを含んでいてもよい。次に当該宛先変更要求を宛先変更保留実行部107aへと通知して終了する(ステップST1604)。
【0063】
次に、宛先変更保留実行部107aは、実施の形態1における宛先変更保留実行部107と同じ手順で当該宛先変更要求を処理する(ステップST1605a〜ST1605d)。通信/変更保留判断部111によって変更実行許可が出ることによって、当該宛先変更要求をアプリケーション実行装置記憶部106aに入力するが、このとき同時に、当該宛先変更要求が自動設定実施部115から入力されたものであることを通知する(ステップST1606)。
【0064】
アプリケーション実行装置記憶部106aは、入力された宛先変更要求を元に宛先対応表を改定する(ステップST1607)。このとき、当該宛先変更要求における宛先データ本体に記述の無いアプリケーションID−装置IDに関しては変更しない。
次に、アプリケーション実行装置記憶部106aは、新たにデータ通信要求を作成する(ステップST1608)。このとき、
図17に示すように、その宛先アプリケーションID値として”None”を、また送信元アプリケーションID値として宛先無しを表す”None”を、また宛先装置ID値として“ALL”を、また返信フラグ値として“無し”を、また送信データ本体として当該宛先変更要求における宛先データを、アプリケーションIDと装置IDの対データの配列として表現してセットする。次に、宛先判定部108aに出力する(ステップST1609)。
【0065】
宛先判定部108aは、入力されたデータ通信要求の宛先装置ID値を判断し、その値が“ALL”である場合、当該データ通信要求を、現在システムに接続している、自装置を除いた装置の数だけコピーする(ステップST1610)。次に、それぞれのコピーされたデータ通信要求の宛先装置ID領域に各装置ID値を入力する。次に、全てのコピーされたデータ通信要求をデータ送信部110aへ入力することで送信する(ステップST1611)。以降は、実施の形態1において説明した方法で、各装置へデータが送信される。
【0066】
その後の動作について、コンピュータ端末(1)200aの宛先判定部208aでコピーされた、宛先変更データを保持するデータ通信要求を、組込み機器100aのデータ送信部110aが受信した場合を例として説明する。動作は、
図18に示すフローチャートに従って実行される。データ送信部110aは、受信したデータ通信要求の宛先アプリケーションID値を判断し(ステップST1800)、その値が有効なアプリケーションIDである場合は対応するアプリケーションに通信を送信して(ステップST1801)、終了する。一方、その値が“None”である場合、当該通信要求を宛先変更保留実行部107aに通知する(ステップST1802)。
【0067】
宛先変更保留実行部107aは、データ送信部110aから受信すると、新たに宛先変更要求を生成し、その宛先データ本体領域に、受信した通信要求の送信データ本体に含まれる、宛先変更情報を入力する(ステップST1803)。その後は、実施の形態1における
図8(b)にて説明した方法で宛先変更を行う(ステップST1804a〜ST1804f)。
【0068】
以上で説明した動作により、自動設定情報記憶部116、216に記録した、各装置が接続したときに宛先設定として有効になる宛先設定が、他装置のアプリケーション実行装置記憶部に反映される。例えば、
図15(b)に示すように、自動設定情報記憶部116,216が記録している状態で組込み機器100a、コンピュータ端末(1)200aを装置間接続装置400に接続した場合、それぞれの装置の宛先対応表は
図15(d)に示すように変更される。
【0069】
本実施の形態によって、組込み機器100aとコンピュータ端末(1)200a,(2)300aの接続を自動的に検知し、接続が検知された場合には、予め決めておいたアプリケーション宛の通信をコンピュータ端末(1)200a,(2)300aへ送信するようアプリケーション実行装置記憶部106aを自動設定することが可能となる。例えば、アプリケーションAの開発を担当する開発者のコンピュータ端末をシステムに接続するだけで、アプリケーションAに宛てた全ての通信はそのコンピュータ端末に送信されるよう設定等が自動的になされるため、容易に試験を開始することができ、かつ設定の間違いによる不具合が発生しなくなる。
【0070】
以上説明したように、実施の形態2の組込み機器ソフトウェア開発試験装置によれば、自身が他装置と通信接続された場合に宛先対応表における新たな宛先として設定する内容を示す宛先設定情報を保持する自動設定情報記憶部と、自身が他装置と通信接続された場合に、宛先設定情報に基づいて宛先対応表の宛先変更要求を送出する自動設定実施部と、自動設定実施部から送出された宛先変更要求を含む通信データを、他装置への送信データとして生成する宛先判定部と、他装置から受け取った宛先変更要求に基づいて自身の宛先対応表の宛先を変更する宛先変更保留実行部とを備えたので、組込み機器とコンピュータ端末を接続した際に開発者が宛先設定を行う必要が無くなり、容易に試験を開始することができると共に、設定の間違いによる不具合の発生といったことも未然に防止することができる。
【0071】
実施の形態3.
実施の形態2では、組込み機器ソフトウェア開発試験装置を構成していた装置を接続解除する場合には、アプリケーション実行装置記憶部106a,206aの設定を手動で行い、無効なデータ通信要求が発生しないように管理する必要があった。特に、装置間接続装置として無線接続機器のような、周囲の状況によって意図しない突然の接続解除が発生するような装置を利用する場合、システムの動作を正常にするためにアプリケーション実行装置記憶部の設定を切り替える必要がある。そこで、実施の形態3では、装置の接続状況を監視し、接続解除が発生した場合にアプリケーション実行装置記憶部の設定変更を行い、システムの動作を安定させることを実現するものである。
【0072】
図19は、実施の形態3のソフトウェア開発試験装置の構成図であり、組込み機器100bの構成を
図20に、コンピュータ端末(1)200bの構成を
図21に示す。
実施の形態3では、実施の形態2における自動設定実施部115,215,315に代えて自動設定実施部115a,215a,315aを、また、接続検知部117,217,317に代えて接続検知部117a,217a,317aを備える。加えて、デフォルト設定情報記憶部119,219,319が追加されている。
【0073】
以下では、本実施の形態で新たに追加された各処理部の機能について組込み機器100bに備えられているものを例として挙げることにより説明する。
自動設定実施部115aは、実施の形態2における自動設定実施部115の機能に加えて、接続解除が通知されることをきっかけとして通信ミドルウェア実行部105aに対して宛先変更要求を発行する機能を有する。
接続検知部117aは、実施の形態2における接続検知部117の機能に加えて、組込み機器100bが装置間接続装置400から接続解除したことを検知し、自動設定実施部115aへ通知する機能を有する。
デフォルト設定情報記憶部119は、組込み機器100bが装置間接続装置400から接続解除した後に、新たな宛先として自動設定されるべき宛先設定情報を保持し、自動設定実施部115aへ通知する機能を持つ処理部である。
その他の構成については、
図12〜
図14に示した実施の形態2の構成と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【0074】
次に、実施の形態3の動作について実施の形態2とは異なる動作を中心に説明する。
デフォルト設定情報記憶部119,219,319には、各装置が接続解除されたときに宛先設定として有効になる宛先設定を予め書き込んでおく。例えば、組込み機器100bが装置間接続装置400から接続解除された場合、組込み機器100b単独での動作を可能とするために、アプリケーションA、アプリケーションBが共に組込み機器100bで動作するように設定しておく場合、
図22に示すような情報を組込み機器100bのデフォルト設定情報記憶部119に書き込んでおく。宛先設定状態IDは、他と重複しない値、例えば0に設定しておく。
【0075】
組込み機器100b、コンピュータ端末(1)200b、コンピュータ端末(2)300bの接続解除は、それぞれが備える接続検知部117a,217a,317aによって検知される。接続検知部117a,217a,317aが接続解除を検知する方法としては、実施の形態2における接続検知部117が備える一定間隔でビーコン通信をブロードキャスト送信してモニタする方法では、当該ビーコン信号の検出が一定時間以上受信されない場合に接続解除として検出するという方法がある。
【0076】
接続検知部117a,217a,317aが接続解除を検知した後の動作について、例えば組込み機器100bが装置間接続装置400から接続解除する場合の動作を説明する。動作は、
図23に示すフローチャートに従って行われる。
まず、接続解除通知を受けた自動設定実施部115aは、接続検知部117aが接続解除を検出すると(ステップST2300)、自動設定実施部115aに通知する(ステップST2301)。通知を受けた自動設定実施部115aは、デフォルト設定情報記憶部119からデフォルト設定情報を取得する(ステップST2302)。次に、取得したデフォルト設定情報の内容から宛先変更要求を作成する(ステップST2303)。次に当該宛先変更要求を宛先変更保留実行部107aへと通知して終了する(ステップST2304)。
【0077】
以降は、実施の形態2において説明した、宛先変更保留実行部107a、通信/変更保留判断部111の機能(ステップST2305a〜ST2305d)により当該宛先変更要求が処理された上でアプリケーション実行装置記憶部106aへと通知される(ステップST2306)。次に、実施の形態1において説明した、アプリケーション実行装置記憶部106の機能により、アプリケーション宛先変更が実行される(ステップST2307)。
本実施の形態によって、組込み機器100bまたはコンピュータ端末(1),(2)200b,300bの接続解除を自動的に検知し、接続解除が検知された場合には、予め決めておいた宛先設定となるようアプリケーション実行装置記憶部106a,206a,306aを自動設定することが可能となる。
【0078】
以上説明したように、実施の形態3の組込み機器ソフトウェア開発試験装置によれば、自身が他装置との通信接続を解除した場合に宛先対応表における新たな宛先として設定される内容を示すデフォルト宛先設定情報を保持するデフォルト設定情報記憶部を備え、自動設定実施部は、自身が他装置との通信接続を解除した場合に、デフォルト宛先設定情報に基づいて宛先対応表の宛先変更要求を送出し、宛先変更保留実行部は、自動設定実施部から送出された宛先変更要求に基づいて自身の宛先対応表の宛先を変更するようにしたので、接続解除が発生する度に手動で宛先変更を行う必要が無くなる。例えば、アプリケーションAの開発者が装置間接続装置として無線接続機器を利用して、またアプリケーションBの開発者が装置間接続装置としてイーサネットケーブルを経由した有線接続機器を利用して、それぞれ組込み機器実機に接続して開発を行っている場合において、あるとき、突然に何らかの外的擾乱により無線接続の不能が発生しても、アプリケーションAの開発者の接続解除を検出してアプリケーション実行装置記憶部の設定を自動的に切り替えることにより、組込み機器とアプリケーションBの開発者に対して大きな影響を与えることがない。従ってアプリケーションBの開発者は引き続き開発試験作業を継続することができる。
【0079】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。