(57)【要約】【課題】無線装置において、ソフトウェアコンポーネントを実行可能な環境を、適切に選択する。【解決手段】本発明に係る無線装置は、それぞれソフトウェアコンポーネントを実行して、全体として無線通信処理を行う複数のソフトウェア実行手段と、前記ソフトウェアコンポーネントの実行のために要求される環境を示す１つ以上の実行環境情報を記憶する記憶手段と、前記記憶手段から読み出したすべての実行環境情報に基づいて、前記ソフトウェアコンポーネントが、前記複数のソフトウェア実行手段のいずれかにおいて実行可能であるか否かを判定する判定手段と、前記判定ステップの結果に基づいて、前記ソフトウェアコンポーネントを実行する前記ソフトウェア実行手段を選択する選択手段とを有する。【選択図】図３
2010141555.tif 000002
【特許請求の範囲】
【請求項１】
それぞれソフトウェアコンポーネントを実行して、全体として無線通信処理を行う複数のソフトウェア実行手段と、
前記ソフトウェアコンポーネントの実行のために要求される環境を示す１つ以上の実行環境情報を記憶する記憶手段と、
前記記憶手段から読み出したすべての実行環境情報に基づいて、前記ソフトウェアコンポーネントが、前記複数のソフトウェア実行手段のいずれかにおいて実行可能であるか否かを判定する判定手段と、
前記判定ステップの結果に基づいて、前記ソフトウェアコンポーネントを実行する前記ソフトウェア実行手段を選択する選択手段と
有する無線通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア無線装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、複数のモジュールからなるドメイン内で動作するソフトウェアプログラムの動作状況を管理するドメイン管理インタフェースを有するソフトウェア無線機を開示する。
【特許文献１】特開２００７−１４８８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述のような背景からなされたものであり、ソフトウェアコンポーネントを、より適切に動作させることができるよう改良された無線装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するために、本発明に係る無線装置（１）は、それぞれソフトウェアコンポーネント（２２２）を実行して、全体として無線通信処理を行う複数のソフトウェア実行手段（２２４）と、前記ソフトウェアコンポーネントの実行のために要求される環境を示す１つ以上の実行環境情報（２６４）を記憶する記憶手段（２６０）と、前記記憶手段から読み出したすべての実行環境情報に基づいて、前記ソフトウェアコンポーネントが、前記複数のソフトウェア実行手段のいずれかにおいて実行可能であるか否かを判定する判定手段（２６２）と、前記判定ステップの結果に基づいて、前記ソフトウェアコンポーネントを実行する前記ソフトウェア実行手段を選択する選択手段（２６２）とを有する。
なお、ここで付された符号は、本願発明の理解を助けることを意図するものであり、本願発明の技術的範囲を限定することを意図するものではない。
【０００５】
また、本発明に係るソフトウェア実行手段の選択配置方法は、ソフトウェア無線装置において、ソフトウェアコンポーネントの実行のために要求される環境を示す１つ以上の実行環境情報を所定のファイルから読み出し、読み出した前記実行環境情報に基づいて、前記ソフトウェアコンポーネントの実行に適したソフトウェア実行手段が存在するか否かを判定し、前記ソフトウェアコンポーネントの実行に適した前記ソフトウェア実行手段が存在するときは、前記適切なソフトウェア実行手段を選択して、前記ソフトウェアコンポーネントを前記選択したソフトウェア実行手段に配置し、それ以外のときは、選択配置処理を終了させる。
【発明の効果】
【０００６】
本発明に係る無線装置によれば、ソフトウェアコンポーネントを、より適切に動作させることができる。
【発明を実施するための最良の形態】
【０００７】
［本発明の背景］
本発明の理解を助けるために、まず、本発明がなされるに至った背景を説明する。
複数のソフトウェアコンポーネントを有し、無線通信処理の内容に応じて、複数のソフトウェアコンポーネントの中から必要なソフトウェアコンポーネントを選択し、組み合わせて実行し、無線通信処理を行うように構成された無線装置がある。
ソフトウェアコンポーネントを実行するためには、ソフトウェアコンポーネントが要求する実行環境を備えたハードウェア（以下、「ソフトウェアコンポーネントに対応するハードウェア」と記述する）を選択する必要がある。
上述の無線装置は、一般にＯＳやプロセッサの種類など、各ソフトウェアコンポーネントを実行するために必要な環境を示す情報（以下、「実行環境情報」と記述する）に基づいて、各ソフトウェアコンポーネントに対応するハードウェアを選択する。
【０００８】
また、一般的に、実行環境情報は、１つのソフトウェアコンポーネントについて、複数定義されうる。
しかしながら、無線装置において、複数の実行環境情報に基づいて、適切なハードウェアを選択することができず、実際にはソフトウェアコンポーネントに対応するハードウェアが存在するにもかかわらず、ソフトウェアコンポーネントを実行できないと判断される可能性がある。
本発明に係る無線装置は、以上に説明した背景によりなされたものであり、複数の実行環境情報に基づいて、ソフトウェアコンポーネントを、より適切に動作させることができるよう改良されている。
【０００９】
[無線装置１]
以下、本発明の実施形態として、無線装置１を説明する。
図１（Ａ）は、本発明に係る無線装置１のハードウェア構成を例示する図である。
図１（Ａ）に示すように、無線装置１は、ＲＦ部１０２と、ＲＦ部１０２に接続されたアンテナ１００と、ＣｏｍｐａｃｔＰＣＩ(Peripheral Component Interconnect)などのバス１０４を介して接続されたモデム部２２、コーデック部２４および制御部２６から構成される。
なお、  以下の各図において、実質的に同じ構成部分には、同じ符号が付される。
【００１０】
モデム部２２、コーデック部２４および制御部２６は、それぞれ、メモリ１０６よびＣＰＵ１０８などを含む。
なお、これらの構成部分においては、ＣＰＵ１０８とともに、あるいは、ＣＰＵの代わりに、ＤＳＰ(Digital Signal Processor)が用いられてもよい。
ＲＦ部１０２は、アンテナ１００を介して所定の無線方式の信号を受信し、モデム部２２に対して出力する。
【００１１】
また、ＲＦ部１０２は、モデム部２２から入力される信号を、アンテナ１００を介して所定の無線方式で送信する。
モデム部２２は、ＲＦ部１０２から入力された信号を復調し、コーデック部２４に対して出力する。
また、モデム部２２は、コーデック部２４から入力された信号を変調し、ＲＦ部１０２に対して出力する。
【００１２】
コーデック部２４は、モデム部２２から入力される信号をデコードし、制御部２６に対して出力する。
また、コーデック部２４は、制御部２６から入力される信号をエンコードし、モデム部２２に対して出力する。
また、コーデック部２４は、ＬＡＮインタフェース（ＩＦ）１１０を含み、ネットワーク１００に接続されている。
【００１３】
制御部２６は、モデム部２２およびコーデック部２４などの無線装置１の各部の制御を行う。
また、制御部２６は、ＬＡＮ―ＩＦ１１０を含み、ネットワーク１００に接続されている。
また、制御部２６は、外部への入出力インタフェース（Ｉ／Ｏ―ＩＦ）１１２を含む。
【００１４】
［無線通信処理プログラム２０］
以下、無線装置（図１（Ａ））において動作する無線通信処理プログラムを説明する。
図１（Ｂ）は、図１（Ａ）のモデム部２２、コーデック部２４および制御部２６で実行される無線通信処理プログラム２０の構成を示す図である。
図１（Ｂ）に示すように、無線通信処理プログラム２０は、モデム部のメモリ２２０およびコーデック部のメモリ２４０に記憶される複数のソフトウェアコンポーネント２２２およびＧＰＰＤｅｖｉｃｅ２２４と、制御部のメモリ２６０に記憶されるアプリケーションファクトリ２６２およびドメインプロファイル２６４から構成される。
ソフトウェアコンポーネント２２２、ＧＰＰＤｅｖｉｃｅ２２４、アプリケーションファクトリ２６２は、バス１０４内のソフトウェアバスであるＯＲＢ(Object Request Broker)を介して接続され、ＣＯＲＢＡ(Common Object Request Broker Architecture)を構成する。
【００１５】
ＣＯＲＢＡを構成するソフトウェアコンポーネントは、スケルトンおよびスタブを介してＯＲＢと通信することにより、無線通信処理を行う。  
なお、以下、「ソフトウェアコンポーネント２２２」など、複数存在し得る構成部分について、それぞれを特定して示すときは、「ソフトウェアコンポーネント２２２−１，２２２−２，・・・，２２２−ｎ」などと記述されることがある。
ただし、ｎは１以上の整数であって、ｎが常に同じ数を示すとは限らない。
【００１６】
ソフトウェアコンポーネント２２２は、後述するアプリケーションファクトリ２６２によって、無線通信処理の内容に応じて１つ以上選択され、モデム部２２のメモリ２２０およびコーデック部２４のメモリ２４０にロードされ、ハードウェア資源（デバイス）を具体的に利用して実行される。
ＧＰＰＤｅｖｉｃｅ２２４は、デバイスインタフェースであって、例えば、ＤＳＰ、シリアルデバイス、オーディオデバイスなどのＣＯＲＢＡ非対応のハードウェアデバイスにアクセス可能とする論理デバイスである。
また、ＧＰＰＤｅｖｉｃｅ２２４は、後述するアプリケーションファクトリ２６２からの問い合わせを受け取り、アプリケーションファクトリ２６２に対して、問い合わせ結果を出力する。
【００１７】
また、ＧＰＰＤｅｖｉｃｅ２２４は、後述するアプリケーションファクトリ２６２から、ソフトウェアコンポーネント２２２の配置、実行指示を受け取り、ソフトウェアコンポーネント２２２を、ＧＰＰＤｅｖｉｃｅ２２４と接続するハードウェアデバイスのメモリ上にロードし、実行する。
アプリケーションファクトリ２６２は、制御ソフトウェアであって、Ｉ／Ｏ―ＩＦ１１２（図１（Ａ））を介して、外部から無線通信処理の実行要求を受け取る。
実行要求を受け取ると、アプリケーションファクトリ２６２は、要求された無線通信処理に必要な１つ以上のソフトウェアコンポーネント２２２を選択する。
なお、以下、「要求された無線通信処理に必要なソフトウェアコンポーネント２２２」を、「実行対象ソフトウェアコンポーネント２２２」と記述する。
【００１８】
アプリケーションファクトリ２６２は、ＧＰＰＤｅｖｉｃｅ２２４に対して、
各実行対象ソフトウェアコンポーネント２２２に対応するドメインプロファイル２６４（図２を参照して後述）から読み出した情報を渡して、実行対象ソフトウェアコンポーネント２２２をそれぞれ実行可能か否かの問い合わせを行う。
また、アプリケーションファクトリ２６２は、ＧＰＰＤｅｖｉｃｅ２２４からの問い合わせ結果に基づいて、実行対象ソフトウェアコンポーネント２２２を配置、実行指示を行うＧＰＰＤｅｖｉｃｅ２２４を選択する。
また、アプリケーションファクトリ２６２は、選択したＧＰＰＤｅｖｉｃｅ２２４に対して、実行対象ソフトウェアコンポーネント２２２の配置、実行指示を行う。
【００１９】
図２は、ドメインプロファイル２６４の１つであるＳＰＤ（Software Package Descriptor）例示する図である。
ドメインプロファイル２６４には、無線通信処理を行うために必要な情報がＸＭＬ（eXtensible Markup Language）形式で記述されている。
例えば、図２に示したドメインプロファイル２６４には、１つのソフトウェアコンポーネント２２２に対応する実行環境情報が記述されている。
【００２０】
例えば、１つの実行環境情報は、図２で示された「<implementation>」タグから「</implementation>」タグ内に定義される。
具体的には、例えば、図２で示された「<os>」タグの属性「name」の値に対応する、ソフトウェアコンポーネント２２２を実行可能なＯＳの名称や、「<processor>」タグの属性「name」の値に対応する、ソフトウェアコンポーネント２２２を実行可能なＣＰＵの名称が定義される。
また、図２に示すように、１つのソフトウェアコンポーネント２２２に対して、複数の「<implementation>」タグを定義することができる、つまり、複数の実行環境情報を定義することができる。
図２に示されるタグ、属性または子要素、およびその意味は、以下の表に示す通りである。
【００２１】
【表１】
2010141555.tif 000003
【００２２】
［アプリケーションファクトリ３０の処理］
以下、アプリケーションファクトリ３０の処理をさらに説明する。
図３は、図１（Ｂ）に示したアプリケーションファクトリ３０の処理を示すフローチャートである。
外部から無線通信処理の実行要求を受け取ることによって、アプリケーションファクトリ３０の処理が開始する。
【００２３】
処理が開始すると、図３に示すように、ステップ３００（Ｓ３００）おいて、アプリケーションファクトリ３０は、実行対象ソフトウェアコンポーネント２２２に対応するドメインプロファイル２６４（図１（Ｂ））から、すべての実行環境情報（実行環境情報一覧）を取得する。
具体的には、例えば、アプリケーションファクトリ３０は、ＸＭＬパーサ（図示せず）を用いてＳＰＤ（図２）に含まれるタグを解析して、複数の「<implementation>」タグから「</implementation>」タグ内に記述されたタグの属性の値を、それぞれ取得する。
ステップ３０２（Ｓ３０２）において、アプリケーションファクトリ３０は、Ｓ３００において取得した実行環境情報一覧のうちの１つを選択する。
【００２４】
ステップ３０４（Ｓ３０４）において、アプリケーションファクトリ３０は、モデム部メモリ２２０（図１（Ｂ））およびコーデック部メモリ２４０に記憶されたすべてのＧＰＰＤｅｖｉｃｅ２２４（ＧＰＰＤｅｖｉｃｅ一覧）を取得する。
ステップ３０６（Ｓ３０６）において、アプリケーションファクトリ３０は、Ｓ３０４において取得したＧＰＰＤｅｖｉｃｅ一覧のうちの１つを選択する。
ステップ３０８（Ｓ３０８）において、アプリケーションファクトリ３０は、Ｓ３０６において選択したＧＰＰＤｅｖｉｃｅ２２４に対して、実行対象ソフトウェアコンポーネント２２２に対応するハードウェアデバイスに接続されているか否かを問い合わせる。
なお、以下、「実行対象ソフトウェアコンポーネント２２２に対応するハードウェアデバイスに接続されているＧＰＰＤｅｖｉｃｅ２２４」を、「実行対象ソフトウェアコンポーネント２２２に対応するＧＰＰＤｅｖｉｃｅ２２４」と記述する。
【００２５】
具体的には、例えば、アプリケーションファクトリ３０は、Ｓ３０２において選択した実行環境情報を引数として、ＧＰＰＤｅｖｉｃｅ２２４が実装する「allocateCapacity」というオペレーションをコールする。
allocateCpacityオペレーションは、ＧＰＰＤｅｖｉｃｅ２２４に接続するハードウェアデバイスが備える実行環境が、引数として受け取った実行環境を満たすか否かを判断し、満たすときは「ＴＲＵＥ」を、それ以外のときは「ＦＡＬＳＥ」を、それぞれ戻り値として返す。
ステップ３１０（Ｓ３１０）において、アプリケーションファクトリ３０は、Ｓ３０８においてコールしたallocateCapacityオペレーションの戻り値を受け取り、戻り値がＴＲＵＥか否かを判断する。
【００２６】
戻り値がＴＲＵＥであると判断するときは、Ｓ３１２の処理に進み、それ以外のときは、Ｓ３１４の処理に進む。
ステップ３１２（Ｓ３１２）において、アプリケーションファクトリ３０は、Ｓ３０６において選択したＧＰＰＤｅｖｉｃｅ２２４を、実行対象ソフトウェアコンポーネント２２２に対応するＧＰＰＤｅｖｉｃｅとして決定し、処理を終了する。
ステップ３１４（Ｓ３１４）において、アプリケーションファクトリ３０は、Ｓ３０４において取得したＧＰＰＤｅｖｉｃｅ一覧の中に、Ｓ３０６において選択したＧＰＰＤｅｖｉｃｅ以外のＧＰＰＤｅｖｉｃｅが存在するか否かを判断する。
【００２７】
存在すると判断するときは、Ｓ３０６の処理に進み、それ以外のときは、Ｓ３１６の処理に進む。
ステップ３１６（Ｓ３１６）において、アプリケーションファクトリ３０は、Ｓ３００において取得した実行環境情報一覧の中で、Ｓ３０２において選択した実行環境情報以外の実行環境情報が存在するか否かを判断する。
存在すると判断するときは、Ｓ３０２の処理に進み、それ以外のときは、Ｓ３１８の処理に進む。
ステップ３１８（Ｓ３１８）において、アプリケーションファクトリ３０は、実行対象ソフトウェアコンポーネント２２２を実行可能な環境が、無線装置１（図１（Ａ））に存在しないとして、エラー出力などを行う。
【００２８】
［無線装置１の全体動作例］
以下、無線装置１（図１（Ａ））の全体動作例を説明する。
図４は、無線装置１において、実行対象ソフトウェアコンポーネント２２２（図１（Ｂ））に対応するハードウェアデバイスの選択動作例を示す通信シーケンス図である。
図４において、アプリケーションファクトリ３０が、３つのＧＰＰＤｅｖｉｃｅ２２４−１〜２２４−３と通信を行う場合を具体例としているが、これは説明の明確化・具体化のためであり、本願発明の技術的範囲の限定を意図するものではない。
【００２９】
アプリケーションファクトリ３０は、実行対象ソフトウェアコンポーネント２２２に対応するｍ個の実行環境情報１〜ｍ（ただし、ｍは１以上の整数）を取得し、図４に示すうように、ステップ３０８（Ｓ３０８）において、実行環境情報１に基づいて、ＧＰＰＤｅｖｉｃｅ２２４−１に対して問い合わせる。
ＧＰＰＤｅｖｉｃｅ２２４−１は、アプリケーションファクトリ３０から、実行環境情報１を受け取り、実行環境情報１に基づいて、実行対象ソフトウェアコンポーネント２２２に対応するか否かを判断する。
ＧＰＰＤｅｖｉｃｅ２２４−１は、判断結果を、アプリケーションファクトリ３０からの問い合わせ結果として、アプリケーションファクトリ３０に対して送信する。
【００３０】
アプリケーションファクトリ３０は、ＧＰＰＤｅｖｉｃｅ２２４−１から、実行対象ソフトウェアコンポーネント２２２に対応しないとの問合せ結果を受け取ると、実行環境情報１に基づいて、ＧＰＰＤｅｖｉｃｅ２２４−２に対して問い合わせる。
ＧＰＰＤｅｖｉｃｅ２２４−２は、ＧＰＰＤｅｖｉｃｅ２２４−１と同様に、アプリケーションファクトリ３０に対して、問い合わせ結果を送信する。
アプリケーションファクトリ３０は、ＧＰＰＤｅｖｉｃｅ２２４−２から、実行対象ソフトウェアコンポーネント２２２に対応しないとの問合せ結果を受け取ると、実行環境情報１に基づいて、ＧＰＰＤｅｖｉｃｅ２２４−３に対して問い合わせる。
ＧＰＰＤｅｖｉｃｅ２２４−３は、ＧＰＰＤｅｖｉｃｅ２２４−１，２２４−２と同様に、アプリケーションファクトリ３０に対して、問い合わせ結果を送信する。
【００３１】
以下同様に、アプリケーションファクトリ３０は、ＧＰＰＤｅｖｉｃｅ２２４−１〜２２４−３のいずれかから、実行対象ソフトウェアコンポーネント２２２に対応するとの問合せ結果を受け取るまで、実行環境情報２〜ｍに基づいて、ＧＰＰＤｅｖｉｃｅ２２４−１〜２２４−３に対しての問い合わせを繰り返す。
アプリケーションファクトリ３０は、問い合わせ結果に基づいて選択したＧＰＰＤｅｖｉｃｅ２２４を介して、実行対象ソフトウェアコンポーネント２２２をハードウェアデバイスのメモリ上にロードし、実行させる。
これにより、無線装置１は、外部からの要求に応じた無線通信処理を行う。
【図面の簡単な説明】
【００３２】
【図１】図１（Ａ）は、無線装置のハードウェア構成を例示する図であり、図１（Ｂ）は、図１（Ａ）に示した無線装置において動作する無線通信処理プログラムの構成を例示する図である。
【図２】図２は、図１（Ｂ）に示したドメインプロファイルの１つであるＳＰＤを例示する図である。
【図３】図３は、図１（Ｂ）に示したアプリケーションファクトリの処理を示すフローチャートである。
【図４】図４は、図１（Ｂ）に示したアプリケーションファクトリとＧＰＰＤｅｖｉｃｅ間の動作例を示す通信シーケンス図である。
【符号の説明】
【００３３】
１・・・無線装置，１００・・・アンテナ，１０２・・・ＲＦ部，１０４・・・バス，１０６・・・メモリ，１０８・・・ＣＰＵ，１１０・・・ＬＡＮ−ＩＦ，１１２・・・Ｉ／Ｏ−ＩＦ，２２・・・モデム部，２４・・・コーデック部，２６・・・制御部，２０・・・無線通信処理プログラム，２２０・・・コーデック部メモリ，２２２・・・ソフトウェアコンポーネント，２２４・・・ＧＰＰＤｅｖｉｃｅ，２４０・・・モデム部メモリ，２６０・・・制御部メモリ，２６２・・・アプリケーションファクトリ，２６４・・・ドメインプロファイル
【図１】
2010141555.tif 000004
【図２】
2010141555.tif 000005
【図３】
2010141555.tif 000006
【図４】
2010141555.tif 000007