(57)【要約】【課題】アプリケーションソフトウェアを実行可能なデバイスおよびプラットフォームを、自動的に判別することができるように改良されたソフトウェア無線機およびコンピュータシステムを提供する。【解決手段】複数の実行装置の１つ以上の第１の実行装置で実行される第１のアプリケーションソフトウェアは、実行装置に対して、判断ステップを実行するように指示する指示ステップを第１の実行装置に実行させ、実行装置で実行される前記第１のアプリケーションソフトウェア以外の第２のアプリケーションソフトウェアは、指示を受けると、所定のアプリケーションソフトウェアの動作環境およびボードコンピュータの環境情報に基づいて、所定のアプリケーションソフトウェアが、実行装置において実行可能であるか否かを判断する判断ステップと、実行可能と判断されたアプリケーションソフトウェアを、実行装置にロードするロードステップとを実行装置に実行させる。【選択図】図２
2009245428.tif 000002
【特許請求の範囲】
【請求項１】
全体としてソフトウェア無線機を構成する複数の実行装置であって、それぞれボードコンピュータでアプリケーションソフトウェアを実行する複数の実行装置を有し、
前記複数の実行装置の１つ以上の第１の実行装置で実行される第１のアプリケーションソフトウェアは、
前記実行装置に対して、判断ステップを実行するように指示する指示ステップを前記第１の実行装置に実行させ、
前記実行装置で実行される前記第１のアプリケーションソフトウェア以外の第２のアプリケーションソフトウェアは、
前記指示を受けると、所定のアプリケーションソフトウェアの動作環境および前記ボードコンピュータの環境情報に基づいて、前記所定のアプリケーションソフトウェアが、前記実行装置において実行可能であるか否かを判断する判断ステップと、
前記実行可能と判断されたアプリケーションソフトウェアを、前記実行装置にロードするロードステップと
を前記実行装置に実行させる
ソフトウェア無線機。
【請求項２】
ボードコンピュータでアプリケーションソフトウェアを実行する複数の実行装置を有し、
前記複数の実行装置の１つ以上の第１の実行装置で実行される第１のアプリケーションソフトウェアは、
前記実行装置に対して、判断ステップを実行するように指示する指示ステップを前記第１の実行装置に実行させ、
前記実行装置で実行される前記第１のアプリケーションソフトウェア以外の第２のアプリケーションソフトウェアは、
前記指示を受けると、所定のアプリケーションソフトウェアの動作環境および前記ボードコンピュータの環境情報に基づいて、前記所定のアプリケーションソフトウェアが、前記実行装置において実行可能であるか否かを判断する判断ステップと、
前記実行可能と判断されたアプリケーションソフトウェアを、前記実行装置にロードするロードステップと
を前記実行装置に実行させる
コンピュータシステム。
【請求項３】
全体としてソフトウェア無線機を構成する複数の実行装置であって、それぞれ他と同一または異なるＯＳ上でアプリケーションソフトウェアを実行する複数の実行装置を有し、
前記複数の実行装置の１つ以上の第１の実行装置で実行される第１のアプリケーションソフトウェアは、
前記実行装置に対して、判断ステップを実行するように指示する指示ステップを前記第１の実行装置に実行させ、
前記実行装置で実行される前記第１のアプリケーションソフトウェア以外の第２のアプリケーションソフトウェアは、
前記指示を受けると、所定のアプリケーションソフトウェアと、前記実行装置と、前記実行装置のＯＳの属性とに基づいて、前記所定のアプリケーションソフトウェアが、前記実行装置において実行可能であるか否かを判断する判断ステップと、
前記実行可能と判断されたアプリケーションソフトウェアを、前記実行装置にロードするロードステップと
を前記実行装置に実行させる
ソフトウェア無線機。
【請求項４】
クレーム１において、前記第１のアプリケーションソフトウェアは、
前記複数の実行装置で実行される前記第２のアプリケーションソフトウェアのいずれかが、前記所定のアプリケーションソフトウェアが前記実行装置において実行可能であると判断するまで、前記指示ステップを前記第１の実行装置に実行させることを特徴とするソフトウェア無線機。
【請求項５】
クレーム２において、前記第１のアプリケーションソフトウェアは、
前記複数の実行装置で実行される前記第２のアプリケーションソフトウェアのいずれかが、前記所定のアプリケーションソフトウェアが前記実行装置において実行可能であると判断するまで、前記指示ステップを前記第１の実行装置に実行させることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトウェアを実行する複数の実行装置により構成されるソフトウェア無線機およびコンピュータシステムに関する。
【背景技術】
【０００２】
例えば、特許文献１は、ミドルウェアを実装したソフトウェア無線機を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−６５７７６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上述した背景からなされたものであって、デバイスおよびプラットフォームが追加されたときに、アプリケーションソフトウェアを実行可能なデバイスおよびプラットフォームを、自動的に判別することができるように改良されたソフトウェア無線機およびコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的のために、本発明にかかるソフトウェア無線機は、全体としてソフトウェア無線機を構成する複数の実行装置であって、それぞれボードコンピュータでアプリケーションソフトウェアを実行する複数の実行装置を有し、前記複数の実行装置の１つ以上の第１の実行装置で実行される第１のアプリケーションソフトウェアは、前記実行装置に対して、判断ステップを実行するように指示する指示ステップを前記第１の実行装置に実行させ、
前記実行装置で実行される前記第１のアプリケーションソフトウェア以外の第２のアプリケーションソフトウェアは、前記指示を受けると、所定のアプリケーションソフトウェアの動作環境および前記ボードコンピュータの環境情報に基づいて、前記所定のアプリケーションソフトウェアが、前記実行装置において実行可能であるか否かを判断する判断ステップと、前記実行可能と判断されたアプリケーションソフトウェアを、前記実行装置にロードするロードステップとを前記実行装置に実行させる。
【発明の効果】
【０００６】
本発明にかかるソフトウェア無線機およびコンピュータシステムによれば、デバイスおよびプラットフォームが追加されたときに、アプリケーションソフトウェアを実行可能なデバイスおよびプラットフォームを、自動的に判別することができる。
【図面の簡単な説明】
【０００７】
【図１】デバイスと、プラットフォームと、リソースソフトウェアとの関係を示す図であって、（Ａ）は、配置されたリソースソフトウェアが、他のデバイスまたはプラットフォームに再配置される動作を示し、（Ｂ）は、所定のデバイスおよびプラットフォームに固定配置されたリソースソフトウェアを示し、（Ｃ）は、リソースソフトウェアが、自動的に、実行可能なデバイスおよびプラットフォームに配置される動作を示す。
【図２】（Ａ）は、本発明にかかる無線機の構成を例示する図であり、（Ｂ）は、図１に示したボードコンピュータの構成を例示する図である。
【図３】（Ａ）は、図２（Ｂ）に示したボードコンピュータにおいて実行されるリソース管理ソフトウェア、および、ボードコンピュータそれぞれにおいて実行されるリソース配置ソフトウェアの構成を示す図であり、（Ｂ）は、（Ａ）に示したリソース管理ソフトウェアのプロファイル記憶部が記憶するプロファイルを示す図である。
【図４】（Ａ）は、各ボードコンピュータの環境情報を例示する図であり、（Ｂ）は、メソッドallocationJudgeを説明する図である。
【図５】リソース管理ソフトウェアおよびリソース配置ソフトウェアの処理（Ｓ１０）を示すフローチャートである。
【図６】図５に示した判定部の処理（メソッドallocationJudgeの処理）（Ｓ２０）を示すフローチャートである。
【図７】リソース配置システムの全体動作を例示する通信シーケンス図（Ｓ５０）である。
【発明を実施するための形態】
【０００８】
［本発明の背景］
本発明の理解を助けるために、まず、本発明がなされるに至った背景を説明する。
図１は、デバイスと、プラットフォームと、リソースソフトウェアとの関係を示す図であって、（Ａ）は、配置されたリソースソフトウェアが、他のデバイスまたはプラットフォームに再配置される動作を示し、（Ｂ）は、所定のデバイスおよびプラットフォームに固定配置されたリソースソフトウェアを示し、（Ｃ）は、リソースソフトウェアが、自動的に、実行可能なデバイスおよびプラットフォームに配置される動作を示す。
【０００９】
アプリケーションソフトウェアは、デバイスおよびプラットフォームよって、動作したりしなかったりする。
例えば、Linux（登録商標）ＯＳ上で動作するアプリケーションソフトウェアが、WINDOWS（登録商標）ＯＳ上では動作しない場合がある。
例えば、まず、アプリケーションソフトウェアが、種類の考慮なしにプラットフォームに配置された後に、そのプラットフォームが、このアプリケーションソフトウェアを実行できるか否かを判断する。
配置されたアプリケーションソフトウェアが実行不可であると判断された場合、このアプリケーションソフトウェアは、この動作に適した他のプラットフォームまたはデバイスへ再配置されなければならない。
以下、配置の対象とされるアプリケーションソフトウェアを、リソースソフトウェアと記述する。
【００１０】
しかしながら、図１（Ａ）に示すように、一度所定のデバイスに配置されたリソースソフトウェアを、他のプラットフォームまたはデバイスへ、自動的に配置することは技術的に困難であり、通常は行われない。
したがって、ユーザが、リソースソフトウェアを配置したい場合は、実行可能なプラットフォームおよびデバイスを事前に知る必要があり、その実行可能なプラットフォームおよびデバイスに対して配置を行わなければならない。
つまり、図１（Ｂ）に示すように、リソースソフトウェアは、予め指定されたプラットフォームおよびデバイスに固定配置される。
【００１１】
本発明は、上述した背景からなされたものであって、図１（Ｃ）に示すように、所定のリソースソフトウェアの配置前に、そのリソースソフトウェアが実行可能であるプラットフォームおよびデバイスなどを有するボードコンピュータを自動で判断し、実行可能であると判断されたボードコンピュータに対して、そのリソースソフトウェアを自動的に配置するように改良されている。
つまり、ユーザは、プラットフォームおよびデバイスなどを意識することなく、所定のリソースソフトウェアを配置することができる。
【００１２】
［ＣＯＲＢＡ］
本発明の理解を助けるために、ＣＯＲＢＡによるソフトウェア分散処理を説明する。
ＣＯＲＢＡ（Common Object Request Broker Architecture）は、ネットワーク上の分散環境でのオブジェクト間通信をサポートするためのミドルウェアである。
具体的には、ＯＲＢ（Object Request Broker）と呼ばれるソフトウェアバス上のスタブ、スケルトンとよばれるプロキシ（代理）オブジェクトにより、互いに異なるハードウェア、ＯＳ（Operating System）、プログラミング言語を用いて作成されたオブジェクト(プログラム部品)間でのメッセージのやりとりが行われる。
したがって、ユーザは、ＣＯＲＢＡにより、ハードウェア、ＯＳおよびプログラミング言語の種類を意識することなく、アプリケーションを構築することができる。
【００１３】
［無線機１］
以下、本発明に係る無線機１を説明する。
図２（Ａ）は、本発明にかかる無線機１の構成を例示する図である。
図２（Ａ）に示すように、無線機１は、アンテナ１００、共用器１０２、受信回路１０４、アナログ／ディジタル変換器（Ａ／Ｄ）１０６、送信回路１０８、ディジタル／アナログ変換機（Ｄ／Ａ）１１０、データ処理部１１２およびインタフェース回路（ＩＦ）１１６から構成される。
データ処理部１１２は、ＣｏｍｐａｃｔＰＣＩ（Peripheral Component Interconnect）１１４などのバスを介して接続された複数のボードコンピュータ１０−１〜１０−ｎから構成される。
なお、ｎは1以上の整数を示し、全てのｎが同数であるとは限らない。
また、以下、ボードコンピュータ１０−１〜１０−ｎなど、複数ある構成部分のいずれかを示すときは、単にデバイス１０と示すことがある。
また、以下、各図において、実質的に同じ構成部分・処理には同じ符号が付される。
【００１４】
アンテナ１００は、他の無線機（図示せず）との間で、伝送信号を、無線通信回線など（図示せず）を介して送受信する。
共用器１０２は、アンテナ１００を、受信回路１０４と送信回路１０８とで共用させる。
受信回路１０４は、アンテナ１００から共用器１０２を介して入力される受信信号に対し、ダウンコンバートや増幅等の処理を行い、ベースバンドの受信信号に変換して、Ａ／Ｄ１０６に対して出力する。
Ａ／Ｄ１０６は、受信回路１０４から入力されたアナログ形式のベースバンド受信信号を、ディジタル形式の受信信号に変換して、データ処理部１１２に対して出力する。
【００１５】
Ｄ／Ａ１１０は、データ処理部１１２から入力されるディジタル形式のベースバンド送信信号を、アナログ形式の送信信号（伝送信号）に変換して、送信回路１０８に対して出力する。
送信回路１０８は、ベースバンドの送信信号をに対し、アップコンバートや増幅等の処理を行い、共用器１０２およびアンテナ１００を介して、無線送信する。
【００１６】
データ処理部１１２は、上述したように、ＣｏｍｐａｃｔＰＣＩ１１４などのバスを介して接続された複数のボードコンピュータ１０から構成される。
ボードコンピュータ１０−１〜１０−ｎはそれぞれ、ソフトウェア（プログラム）を実行し、受信信号の復調および送信信号の変調などの処理を、分散して行う。
ＩＦ１１６は、無線機１に接続されるホストコンピュータなど（図示せず）との間でデータを受渡しするための処理を行う。
【００１７】
［ボードコンピュータ１０］
図２（Ｂ）は、図１に示したボードコンピュータ１０の構成を例示する図である。
ボードコンピュータ１０−ｉ（１≦ｉ≦ｎ）は、ＣＰＵまたはＤＰＳなどのデバイス１５０−ｉ、メモリ１５２−ｉおよび磁気ディスクなどのハードディスク（ＨＤ）１５４−ｉなどを含む。
なお、デバイス１５０−１〜１５０−ｎは、同一の種類のデバイスでも、異なる種類のデバイスでもよい。
また、メモリ１５２−１〜１５２−ｎは、同一の種類のメモリでも、異なる種類のメモリでもよい。
【００１８】
また、ボードコンピュータ１０−ｉには、ＯＳ１４０−ｉがインストールされている。
なお、ＯＳ１４０−１〜１４０−ｎは、同一の種類のＯＳでも、異なる種類のＯＳでもよい。
また、ＯＳ１４０−ｉ上では、ミドルウェアとしてのＣＯＲＢＡ１４２−ｉが動作し、ＣＯＲＢＡ１４２−ｉ上でリソース配置ソフトウェア２２−ｉが動作するように構成されている。
また、ボードコンピュータ１０−１〜１０−ｎのいずれか１つ以上のＣＯＲＢＡ１４２上で、リソース管理ソフトウェア２０が動作するように構成されている。
また、ボードコンピュータ１０−１〜１０−ｎのいずれか１つ以上のＨＤ１５４には、リソースソフトウェア２４が格納されている。
以下、説明の明確化・具体化のため、ボードコンピュータ１０―ｎのＣＯＲＢＡ１４２−ｎ上でリソース管理ソフトウェア２０が動作し、ＨＤ１５４―ｎにリソースソフトウェア２４が格納されている場合を具体例とする。
【００１９】
［ソフトウェア構成］
以下、図２（Ｂ）に示したリソース管理ソフトウェア２０およびリソース配置ソフトウェア２２を説明する。
図３（Ａ）は、図２（Ｂ）に示したボードコンピュータ１０−ｎにおいて実行されるリソース管理ソフトウェア２０、および、ボードコンピュータ１０−１〜１０−ｎそれぞれにおいて実行されるリソース配置ソフトウェア２２の構成を示す図であり、図３（Ｂ）は、図３（Ａ）に示したリソース管理ソフトウェア２０のプロファイル記憶部２００が記憶するプロファイルを示す図である。
【００２０】
図３（Ａ）に示すように、リソース管理ソフトウェア２０は、プロファイル記憶部２００、リソース配置オブジェクト記憶部２０２およびリソース配置指示部２０４を含む。
リソース配置ソフトウェア２２は、登録部２２０、判定部２２２およびロード部２２４を含む。
【００２１】
リソース管理ソフトウェア２０およびリソース配置ソフトウェア２２は、例えばメモリ１５２に記憶されて、ボードコンピュータ１０に供給され、ボードコンピュータ１０のＯＳ１４０上で、ボードコンピュータ１０のハードウェア資源を具体的に利用して実行される。
リソース管理ソフトウェア２０およびリソース配置ソフトウェア２２は、これらの構成により、リソースソフトウェア２４を配置可能なボードコンピュータ１０を判定し、そのボードコンピュータ１０にリソースソフトウェア２４をロードする。
【００２２】
［リソース管理ソフトウェア２０］
プロファイル記憶部２００（図３（Ａ））は、図３（Ｂ）に示したプロファイルを記憶し、リソース配置指示部２０４に対して出力する。
以下、プロファイル記憶部２００が記憶するプロファイルを説明する。
プロファイル記憶部２００が記憶するプロファイルとは、リソースソフトウェア２４が動作可能なデバイスおよびＯＳなどの種類を記述したファイルである。
例えば、リソースソフトウェア２４は、ボードコンピュータ１０のデバイス１５０およびＯＳ１４０などの種類によっては、動作できない場合がある。
具体的には、リソースソフトウェア２４が、Linux（登録商標）ＯＳ上では動作するが、WINDOWS（登録商標）ＯＳ上で動作しない場合などがある。
つまり、ボードコンピュータ１０は、リソースソフトウェア２４が動作可能なデバイス１５０およびＯＳ１４０などの環境を有していない場合、リソースソフトウェア２４が配置されても実行することができない。
したがって、プロファイルには、配置対象となるリソースソフトウェア２４が動作可能なデバイスおよびＯＳなどの種類が、記載されている。
【００２３】
図３（Ｂ）に示すように、プロファイルは、ＸＭＬ形式で記述されている。    
図３（Ｂ）に示したプロファイルの例では、リソースソフトウェア２４が動作可能な環境を、以下のように設定している。
（１）デバイスのタイプ（ＣＰＵまたはＤＳＰなどのタイプ）：ＳＨ４
（２）ＯＳのタイプ：Ｌｉｎｕｘ（登録商標）
（３）必要なストレージのサイズ：３０ＭＢ
（４）必要なメモリのサイズ：１２５ＭＢ
（５）必要なシリアルポートの数：１つ
（６）必要なＬＡＮインタフェースの速度：１００ＭＢ
（７）システムの負荷：４
【００２４】
リソース配置オブジェクト記憶部２０２（図３（Ａ））は、リソース配置ソフトウェア２２の登録部２２０から受信したリソース配置ソフトウェア２２の情報を記憶し、リソース配置指示部２０４に対して出力する。
リソース配置指示部２０４は、リソース配置オブジェクト記憶部２０２に登録されているリソース配置ソフトウェア２２の判定部２２２を、順次実行させる。
また、リソース配置指示部２０４は、プロファイル記憶部２００から入力されたプロファイルを、上記実行させる判定部２２２に対して出力する。
また、リソース配置指示部２０４は、判定部２２２から、判定部２２２の判定結果（配置可・不可）を受信する。
また、リソース配置指示部２０４は、判定部２２２から、配置可の結果を受信したときには、ロード部２２４のオブジェクトリファレンスを受信して、そのロード部２２４を実行させる。
【００２５】
［リソース配置ソフトウェア２２］
登録部２２０（図３（Ａ））は、自己のリソース配置ソフトウェア２２の情報を、リソース管理ソフトウェア２０のリソース配置オブジェクト記憶部２０２に登録する。
登録部２２０は、例えば、ボードコンピュータ１０が、ＣｏｍｐａｃｔＰＣＩ１１４に接続されたときに、上記登録処理を実行する。
【００２６】
判定部２２２は、リソース配置指示部２０４の指示に従い、ボードコンピュータ１０が、リソースソフトウェア２４を実行可能なデバイス１５０およびＯＳ１４０などの環境を有しているか否か（配置可否）を判断する。
つまり、ボードコンピュータ１０−１〜ｎそれぞれにおいて実行される判定部２２２はそれぞれ、自己のボードコンピュータ１０の環境情報を有し、その環境情報を用いて、リソースソフトウェア２４が配置可能か否かを判断する。
以下、環境情報をさらに説明する。
【００２７】
図４（Ａ）は、各ボードコンピュータ１０の環境情報を例示する図である。
図４（Ａ）に示すように、判定部２２２は、下記の項目を含むボードコンピュータ１０の環境情報を有する。
（１）デバイスのタイプ
（２）ＯＳのタイプ
（３）ストレージのサイズ
（４）メモリのサイズ
（５）シリアルポートの数
（６）ＬＡＮインタフェースの速度
（７）システムの平均負荷
なお、これらの環境は、ボードコンピュータ１０毎に、異なっている。
図４（Ａ）では、（１）デバイスのタイプが、「ＳＨ４」であり、（２）ＯＳのタイプが、「Ｌｉｎｕｘ（登録商標）」などである場合が例示されている。
【００２８】
判定部２２２は、上記（１）〜（７）に例示したボードコンピュータ１０の環境が、リソースソフトウェア２４を実行するために必要な環境を満たしているか否かを判断する。
ここで、図４（Ａ）に示したように、上記（１）〜（４）、（７）は必ず満たさなければならない項目（必須項目）であり、（５）、（６）は、推奨されるべき項目（必須でない項目）などと設定してもよい。
具体的には、判定部２２２は、メソッドallocationJudgeを実行することにより、リソースソフトウェア２４の配置可否を行う。
以下、メソッドallocationJudgeを、説明する。
【００２９】
［メソッドallocationJudge］
図４（Ｂ）は、メソッドallocationJudgeを説明する図である。
図４（Ｂ）に示すように、メソッドallocationJudge は、図３（Ｂ）に示したＸＭＬ形式で記述されたプロファイルを読み込み、String型のidと、any型のvalueとの無限シーケンスであるProperties型のindividualに値を代入して実行し、リソースソフトウェア２４の配置可否を判断する。
つまり、図３（Ｂ）に示したＸＭＬ形式で記述されたプロファイルのidおよびvalueが、メソッドallocationJudgeの引数として渡される。
【００３０】
また、メソッドallocationJudgeは、配置可能と判断したときは、オブジェクトリファレンス"_obj"に、リソース配置ソフトウェア２２のロード部２２４のオブジェクトリファレンスを設定し、さらに、返り値１を返す。
また、メソッドallocationJudgeは、実行不可と判断したときは、返り値０を返す（メソッドallocationJudgeの処理フローは、図６を参照して後述）。
ロード部２２４（図３（Ａ））は、リソース配置指示部２０４の指示に従い、リソースソフトウェア２４をメモリ１５２にロードして実行させる。
【００３１】
［リソース管理ソフトウェア２０・リソース配置ソフトウェア２２の動作］
以上説明した、リソース管理ソフトウェア２０およびリソース配置ソフトウェア２２の処理を、図５を参照して、さらに説明する。
図５は、リソース管理ソフトウェア２０およびリソース配置ソフトウェア２２の処理（Ｓ１０）を示すフローチャートである。
【００３２】
図５に示すように、ステップ１００（Ｓ１００）において、リソース管理ソフトウェア２０のリソース配置指示部２０４は、初期設定として、配置フラグをfalseに設定する。
ステップ１０２（Ｓ１０２）において、リソース配置ソフトウェア２２の登録部２２０は、リソース管理ソフトウェア２０のリソース配置オブジェクト記憶部２０２に、自己の情報を登録する。
【００３３】
ステップ１０４（Ｓ１０４）において、リソース管理ソフトウェア２０のリソース配置指示部２０４は、リソース配置オブジェクト記憶部２０２を参照し、登録されたリソース配置ソフトウェア２２の数を求めて、変数numに代入する。
例えば、リソース配置ソフトウェア２２−１〜２２−ｎが登録されていた場合、num=ｎとなる。
ステップ１０６（Ｓ１０６）において、リソース配置指示部２０４は、変数l＝１からnumまでのループ（繰り返し）処理を開始する。
つまり、リソース配置ソフトウェア２２−１〜２２−ｎが登録されていた場合、リソース配置ソフトウェア２２−１〜２２−ｎそれぞれの判定部２２２を順次実行する。
なお、実行順序は、リソース配置ソフトウェア２２の登録順などと、予め決めることができる。
以下、リソース配置ソフトウェア２２−１から順に実行する場合を具体例とする。
ステップ２０（Ｓ２０）において、リソース配置指示部２０４は、ｌ番目のリソース配置ソフトウェア２２−ｌの判定部２２２を実行させ、リソースソフトウェア２４の配置可否を判定させる（図６を参照して後述）。
【００３４】
ステップ１０８（Ｓ１０８）において、リソース配置指示部２０４は、リソース配置ソフトウェア２２−ｌの判定部２２２からの受信結果が、配置可の結果であるか否かを判断する。
リソース配置ソフトウェア２２−ｌの判定部２２２からの受信結果が、配置可の結果であるときには、Ｓ１１０の処理に進み、これ以外のときには、Ｓ１１６の処理に進む。
【００３５】
ステップ１１０（Ｓ１１０）において、リソース配置指示部２０４は、配置可の結果と同時に受信したリソース配置ソフトウェア２２−ｌのロード部２２４オブジェクトリファレンスを用いて、リソース配置ソフトウェア２２−ｌのロード部２２４を実行させる。
リソース配置ソフトウェア２２−ｌのロード部２２４は、リソースソフトウェア２４を、ボードコンピュータ１０−ｌのメモリ１５２−ｌにロードして実行させる。
【００３６】
ステップ１１２（Ｓ１１２）において、リソース配置指示部２０４は、配置フラグをtrueに設定し、リソースソフトウェア２４の配置が完了した旨を示す。
ステップ１１４（Ｓ１１４）において、リソース配置指示部２０４は、リソースソフトウェア２４の配置が完了したので、繰り返し処理を抜け、Ｓ１２０の処理に進む。
【００３７】
ステップ１１６（Ｓ１１６）において、リソース配置指示部２０４は、リソースソフトウェア２４の配置が完了していないため、lを１インクリメントし、Ｓ１０６の処理に戻る。
ステップ１１８（Ｓ１１８）において、リソース配置指示部２０４は、配置フラグがtrueか否かを判断する。
配置フラグがtrueのときには、リソースソフトウェア２４の配置が完了したので、処理を終了し、これ以外のときには、Ｓ１３０の処理に進む。
ステップ１３０（Ｓ１３０）において、リソース配置指示部２０４は、ソースソフトウェア２４が配置いずれのボードコンピュータ１０にも配置されなかったため、配置イベント失敗のエラー出力などを行う。
【００３８】
図６は、図５に示した判定部２２２の処理（メソッドallocationJudgeの処理）（Ｓ２０）を示すフローチャートである。
なお、以下に示すメソッドallocationJudgeの処理は、図４（Ａ）に例示したボードコンピュータ１０の環境（下記の（１）〜（７））が、リソースソフトウェア２４を配置可能か否かを判断する場合を具体例とする。
（１）デバイスのタイプ：ＳＨ４
（２）ＯＳのタイプ：Ｌｉｎｕｘ（登録商標）
（３）ストレージのサイズ：３００ＭＢ
（４）メモリのサイズ：２５６ＭＢ
（５）シリアルポートの数：２
（６）ＬＡＮインタフェースの速度：１００ＭＢ
（７）システムの平均負荷：３
【００３９】
図６に示すように、ステップ２００（Ｓ２００）において、メソッドallocationJudgeは、Int型の変数Pathに0x00000000を代入して、初期化する。
ステップ２０２（Ｓ２０２）において、メソッドallocationJudgeは、プロファイル図３（Ｂ）を読み込み、図４（Ｂ）に示した変数Indivisualにプロファイルのid、valueを代入する。
また、メソッドallocationJudgeは、変数Indivisualのシーケンスの長さを求め、変数Ｎに代入する。
具体的には、この変数Indivisualのシーケンスの長さは、プロファイルの行数に相当する（図４（Ｂ）の場合は、シーケンスの長さ＝Ｎ＝６）。
なお、変数Ｎ（シーケンスの長さ）は、以下に説明するループ処理におけるループ回数として使用される。
【００４０】
ステップ２０４（Ｓ２０４）において、メソッドallocationJudgeは、変数ｘ＝１から開始し、ｘ＝Ｎとなるまで、ループ（繰り返し）処理を行う。
具体的には、メソッドallocationJudgeは、ｘ＝１のときは、Indivisualの１番目に格納されたid、valueの組を、取り出して、ループ処理を行う。
また、ｘ＝２のときは、Indivisualの２番目に格納されているid、valueの組を取り出して、ループ処理を行う。
つまり、ｘ＝Ｎのときは、IndivisualのＮ番目に格納されているid、valueの組を取り出して、ループ処理を行う。
【００４１】
ループ処理には、以下の処理が含まれている。
Ｓ３０：デバイスのタイプが、条件を満たすか（リソースソフトウェア２４が動作可能か否かの判定のために必須の判断；必須の判断）
Ｓ３２：ＯＳのタイプが、条件を満たすか（必須の判断）
Ｓ３４：ストレージのサイズが、条件を満たすか（必須の判断）
Ｓ３６：メモリのサイズが、条件を満たすか（必須の判断）
Ｓ３８：シリアルポートの数が、条件を満たすか（リソースソフトウェア２４が動作可能か否かの判定のために推奨される判断；推奨の判断）
Ｓ４０：ＬＡＮインタフェースの通信速度が、条件を満たすか（推奨の判断）
Ｓ４２：システムの平均負荷が、所定値以下（負荷がかかっていない状態）であるか（必須の判断）
【００４２】
［デバイスタイプのチェック（Ｓ３０）］
ステップ３００（Ｓ３００）において、メソッドallocationJudgeは、id＝＝"デバイス"か否かを判断する。
id＝＝"デバイス"のときには、メソッドallocationJudgeは、Ｓ３０２の処理に進み、これ以外のときにはＳ３２の処理に進む。
つまり、id＝＝"デバイス"のときには、メソッドallocationJudgeは、デバイスのチェックを行う処理に進む。
ステップ３０２（Ｓ３０２）において、メソッドallocationJudgeはvalueの値をstring型の変数strに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"デバイス"のvalueは、"ＳＨ４"であるので、変数strに"ＳＨ４"が代入される。
ステップ３０４（Ｓ３０４）において、メソッドallocationJudgeは、str（リソースソフトウェア２４が動作可能なデバイスのタイプ）＝＝"ＳＨ４"（ボードコンピュータ１０のデバイスのタイプ）か否かを判断する。
つまり、メソッドallocationJudgeは、ボードコンピュータ１０のデバイスのタイプが、リソースソフトウェア２４が動作可能なデバイスのタイプと等しいか否かを判断する。
str＝＝"ＳＨ４"のときには、メソッドallocationJudgeは、Ｓ３０８の処理に進み、これ以外のときにはＳ３０６の処理に進む。
【００４３】
ステップ３０６（Ｓ３０６）において、メソッドallocationJudgeは、変数TorF1にfalseを代入し、デバイスタイプが、リソースソフトウェア２４が動作可能なデバイスタイプでないことを示す。
ステップ３０８（Ｓ３０８）において、メソッドallocationJudgeは、変数Pathに、Pathと0x00000001との論理和の値を代入し、このデバイスタイプのチェック（Ｓ３０）が完了したことを示す。
【００４４】
［ＯＳタイプのチェック（Ｓ３２）］
ステップ３２０（Ｓ３２０）において、メソッドallocationJudgeは、id＝＝"ＯＳ"か否かを判断する。
id＝＝"ＯＳ"のときには、メソッドallocationJudgeは、Ｓ３２２の処理に進み、これ以外のときにはＳ３４の処理に進む。
つまり、id＝＝"ＯＳ"のときには、メソッドallocationJudgeは、ＯＳタイプのチェックを行う処理に進む。
ステップ３２２（Ｓ３２２）において、メソッドallocationJudgeは、valueの値をstring型の変数strに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"ＯＳ"のvalueは、"Ｌｉｎｕｘ（登録商標）"であるので、変数strに"Ｌｉｎｕｘ（登録商標）"が代入される。
【００４５】
ステップ３２４（Ｓ３２４）において、メソッドallocationJudgeは、str（リソースソフトウェア２４が動作可能なＯＳのタイプ）＝＝"Ｌｉｎｕｘ（登録商標）"（ボードコンピュータ１０のＯＳのタイプ）か否かを判断する。
つまり、メソッドallocationJudgeは、ボードコンピュータ１０にインストールされているＯＳのタイプが、リソースソフトウェア２４が動作可能なＯＳのタイプと等しいか否かを判断する。
str＝＝"Ｌｉｎｕｘ（登録商標）"のときには、メソッドallocationJudgeは、Ｓ３２８の処理に進み、これ以外のときにはＳ３２６の処理に進む。
【００４６】
ステップ３２６（Ｓ３２６）において、メソッドallocationJudgeは、変数TorF2にfalseを代入し、ボードコンピュータ１０のＯＳのタイプは、リソースソフトウェア２４が動作可能なＯＳのタイプでないことを示す。
ステップ３２８（Ｓ３２８）において、メソッドallocationJudgeは、変数Pathに、Pathと0x00000010との論理和の値を代入し、ＯＳのタイプのチェック（Ｓ３２）が完了したことを示す。
【００４７】
［ストレージサイズのチェック（Ｓ３４）］
ステップ３４０（Ｓ３４０）において、メソッドallocationJudgeは、id＝＝"サイズ"か否かを判断する。
id＝＝"サイズ"のときには、メソッドallocationJudgeは、Ｓ３４２の処理に進み、これ以外のときにはＳ３６の処理に進む。
つまり、id＝＝"サイズ"のときには、メソッドallocationJudgeは、ストレージサイズのチェックを行う処理に進む。
ステップ３４２（Ｓ３４２）において、メソッドallocationJudgeは、valueの値をlong型の変数sizeに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"サイズ"のvalueは、"30000000"であるので、変数sizeに"30000000"が代入される。
【００４８】
ステップ３４４（Ｓ３４４）において、メソッドallocationJudgeは、ボードコンピュータ１０自身が消費している消費ストレージサイズを得る。
ステップ３４６（Ｓ３４６）において、メソッドallocationJudgeは、ボードコンピュータ１０自身が消費している消費ストレージサイズを、変数sizeに加える。
【００４９】
ステップ３４８（Ｓ３４８）において、メソッドallocationJudgeは、300ＭＢ（ボードコンピュータ１０が有するストレージサイズ）＝＞size（リソースソフトウェア２４が動作可能なストレージサイズ＋ボードコンピュータ１０自身が消費している消費ストレージサイズ）か否かを判断する。
つまり、「リソースソフトウェア２４が動作可能なストレージサイズ」＋「ボードコンピュータ１０自身が消費している消費ストレージサイズ」が、「ボードコンピュータ１０が有するストレージサイズ」を超えていないかを判断する。
300＝＞sizeのときには、メソッドallocationJudgeは、Ｓ３５２の処理に進み、これ以外のときにはＳ３５０の処理に進む。
ステップ３５０（Ｓ３５０）において、メソッドallocationJudgeは、変数TorF3にfalseを代入し、ボードコンピュータ１０が有するストレージサイズは、リソースソフトウェア２４が動作可能なストレージサイズを満たしていないことを示す。
ステップ３５２（Ｓ３５２）において、メソッドallocationJudgeは、変数Pathに、Pathと0x00000100との論理和の値を代入し、ストレージのサイズのチェック（Ｓ３４）が完了したことを示す。
【００５０】
［メモリサイズのチェック（Ｓ３６）］
ステップ３６０（Ｓ３６０）において、id＝＝"メモリ"か否かを判断する。
id＝＝"メモリ"のときには、メソッドallocationJudgeは、Ｓ３６２の処理に進み、これ以外のときにはＳ３８の処理に進む。
つまり、id＝＝"メモリ"のときには、メソッドallocationJudgeは、メモリサイズのチェックを行う処理に進む。
【００５１】
ステップ３６２（Ｓ３６２）において、メソッドallocationJudgeは、valueをlong型の変数sizeに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"メモリ"のvalueは、"125000000"であるので、変数sizeに"125000000"が代入される。
ステップ３６４（Ｓ３６４）において、メソッドallocationJudgeは、256ＭＢ（ボードコンピュータ１０が有するメモリサイズ）＝＞size（リソースソフトウェア２４が動作可能なメモリサイズ）か否かを判断する
つまり、「ボードコンピュータ１０のメモリサイズ」が、「リソースソフトウェア２４が動作可能なメモリサイズ」以上であるかを判断する。
256MB＝＞sizeのときには、メソッドallocationJudgeは、Ｓ３６８の処理に進み、これ以外のときにはＳ３６６の処理に進む。
【００５２】
ステップ３６６（Ｓ３６６）において、メソッドallocationJudgeは、変数TorF4にfalseを代入し、ボードコンピュータ１０のメモリサイズは、リソースソフトウェア２４が動作可能なメモリサイズを満たしていないことを示す。
ステップ３６８（Ｓ３６８）において、メソッドallocationJudgeは、変数Pathに、Pathと0x00001000との論理和の値を代入し、メモリサイズのチェック（Ｓ３６）が完了したことを示す。
【００５３】
［シリアルポート数のチェック（Ｓ３８）］
ステップ３８０（Ｓ３８０）において、メソッドallocationJudgeは、id＝＝"シリアル"か否かを判断する。
id＝＝"シリアル"のときには、メソッドallocationJudgeは、Ｓ３８２の処理に進み、これ以外のときにはＳ４０の処理に進む。
つまり、id＝＝"シリアル"のときには、メソッドallocationJudgeは、シリアルポート数のチェックを行う処理に進む。
ステップ３８２（Ｓ３８２）において、メソッドallocationJudgeは、valueをlong型の変数sizeに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"シリアル"のvalueは、"1"であるので、変数sizeに"1"が代入される。
【００５４】
ステップ３８４（Ｓ３８４）において、メソッドallocationJudgeは、システム使用中のシリアルポート数を得る。
ステップ３８６（Ｓ３８６）において、メソッドallocationJudgeは、変数sizeにボードコンピュータ１０が使用中のシリアルポート数を加える。
【００５５】
ステップ３８８（Ｓ３８８）において、メソッドallocationJudgeは、2（ボードコンピュータ１０が有するシリアルポート数）＝＞size（リソースソフトウェア２４が動作するために必要なポート数＋ボードコンピュータ１０が使用中のシリアルポート数）か否かを判断する。
つまり、「リソースソフトウェア２４が動作するために必要なポート数」＋「ボードコンピュータ１０が使用中のシリアルポート数」が、「ボードコンピュータ１０が有するシリアルポート数」を超えていないかを判断する。
2＝＞sizeのときには、メソッドallocationJudgeは、Ｓ２０６の処理に進み、これ以外のときにはＳ３９０の処理に進む。
ステップ３９０（Ｓ３９０）において、メソッドallocationJudgeは、変数TorF5にfalseを代入し、ボードコンピュータ１０が有するシリアルポート数は、リソースソフトウェア２４の動作に必要なポート数を満たしていないことを示す。
【００５６】
［ＬＡＮインタフェースの通信速度チェック（Ｓ４０）］
ステップ４００（Ｓ４００）において、id＝＝"ＬＡＮ"か否かを判断する。
id＝＝"ＬＡＮ"のときには、メソッドallocationJudgeは、Ｓ４０２の処理に進み、これ以外のときにはＳ４２の処理に進む。
つまり、id＝＝"ＬＡＮ"のときには、メソッドallocationJudgeは、ＬＡＮインタフェースの通信速度のチェックを行う処理に進む。
【００５７】
ステップ４０２（Ｓ４０２）において、メソッドallocationJudgeは、valueをlong型の変数sizeに代入（型変換）する。
例えば、図３（Ｂ）に示したプロファイルでは、id＝"ＬＡＮ"のvalueは、"100"であるので、変数sizeに"100"が代入される。
ステップ４０４（Ｓ４０４）において、メソッドallocationJudgeは、100（ボードコンピュータ１０のＬＡＮインタフェースの通信速度）＝＞size（リソースソフトウェア２４が動作可能なＬＡＮインタフェースの通信速度）か否かを判断する。
つまり、「ボードコンピュータ１０のＬＡＮインタフェースの通信速度」が、「リソースソフトウェア２４が動作可能なＬＡＮインタフェースの通信速度」以上であるかを判断する。
100＝＞sizeのときには、メソッドallocationJudgeは、Ｓ４０６の処理に進み、これ以外のときにはＳ２０６の処理に進む。
ステップ４０６（Ｓ４０６）において、メソッドallocationJudgeは、変数TorF6にfalseを代入し、ボードコンピュータ１０のＬＡＮインタフェースの通信速度が、リソースソフトウェア２４が動作可能なＬＡＮインタフェースの通信速度を満たさないことを示す。
【００５８】
［システム負荷のチェック（Ｓ４２）］
ステップ４２０（Ｓ４２０）において、id＝＝"負荷"か否かを判断する。
id＝＝"負荷"のときには、メソッドallocationJudgeは、Ｓ４２２の処理に進み、これ以外のときにはＳ２０６の処理に進む。
つまり、id＝＝"負荷"のときには、メソッドallocationJudgeは、システム負荷のチェックを行う処理に進む。
ステップ４２２（Ｓ４２２）において、メソッドallocationJudgeは、ボードコンピュータ１０の平均負荷値（システムの負荷値）を得る。
Linux（登録商標）や、WINDOWS（登録商標）などのＯＳは、システムの平均負荷値を出力する機能を有し、一般的に、４以上である場合、負荷が高いと判断される。
【００５９】
ステップ４２４（Ｓ４２４）において、メソッドallocationJudgeは、4（負荷が高いと判定される値）＝＞ボードコンピュータ１０の平均負荷値か否かを判断する。
なお、図３（Ｃ）に示したように、ボードコンピュータ１０の平均負荷値は３である場合は、この条件を満たす。
4＝＞平均負荷のときには、メソッドallocationJudgeは、Ｓ４２８の処理に進み、これ以外のときにはＳ４２６の処理に進む。
ステップ４２６（Ｓ４２６）において、メソッドallocationJudgeは、変数TorF7にfalseを代入し、ボードコンピュータ１０のシステム負荷が高いため、リソースソフトウェア２４を動作させることができないことを示す。
ステップ４２８（Ｓ４２８）において、メソッドallocationJudgeは、変数Pathに、Pathと0x00010000との論理和の値を代入し、システム負荷のチェック（Ｓ４２）が完了したことを示す。
【００６０】
ステップ２０６（Ｓ２０６）において、メソッドallocationJudgeは、変数ｘを１インクリメントして、ステップ２０４（Ｓ２０４）の処理に戻る。
ステップ２０８（Ｓ２０８）において、メソッドallocationJudgeは、変数TorF1〜TorF7の値のうち、Falseが１つもなく、かつ、Path＝＝0x00011111であるか否かを判断する。
つまり、「Falseが１つもなく、かつ、Path＝＝0x00011111であること」は、「必須項目のチェックを全て完了し、かつ、チェックした全ての項目においてリソースソフトウェア２４の動作条件を満たしていること」を意味する。
変数TorF1〜TorF7の値のうち、Falseが１つもなく、かつ、Path＝＝0x00011111であるときには、メソッドallocationJudgeは、Ｓ２２０の処理に進み、これ以外のときにはＳ２１０の処理に進む。
【００６１】
ステップ２１０（Ｓ２１０）において、メソッドallocationJudgeは、変数TorFにfalseを代入し、0をリターンする。
つまり、リソース配置指示部２０４に、配置不可である旨を通知する。
ステップ２２０（Ｓ２２０）において、メソッドallocationJudgeは、変数_objにロード部２２４のオブジェクトリファレンスを設定する。
ステップ２２２（Ｓ２２２）において、メソッドallocationJudgeは、変数TorFにtrueを代入し、1をリターンする。  
つまり、リソース配置指示部２０４に、配置可である旨を通知する。
【００６２】
〔全体動作〕
以下、リソース配置システム１の全体動作を説明する。
図７は、リソース配置システム１の全体動作を例示する通信シーケンス図（Ｓ５０）である。
ステップ５００（Ｓ５００）において、ボードコンピュータ１０−１〜１０〜ｎ（図２（Ａ））が、ＣｏｍｐａｃｔＰＣＩ１１４に接続されると、リソース配置ソフトウェア２２−１〜２２−ｎは、自分自身のオブジェクト情報を、リソース管理ソフトウェア２０に登録する。
【００６３】
ステップ５０２（Ｓ５０２）において、リソース管理ソフトウェア２０は、リソース配置ソフトウェア２２−１に、リソースソフトウェア２４の配置可否判定を実行させる。
ステップ５０４（Ｓ５０４）において、リソース配置ソフトウェア２２−１の判定部２２２は、メソッドallocationJudgeを用いて、ボードコンピュータ１０−１に、リソースソフトウェア２４が配置可能か否かを判定する。
【００６４】
ステップ５０６（Ｓ５０６）において、リソース配置ソフトウェア２２−１は、「配置不可」の結果を、リソース管理ソフトウェア２０に対して送信する。
ステップ５０８（Ｓ５０８）において、リソース管理ソフトウェア２０は、リソース配置ソフトウェア２２−２に対して、リソースソフトウェア２４の配置可否判定を実行させる。
【００６５】
ステップ５１０（Ｓ５１０）において、リソース配置ソフトウェア２２−２は、メソッドallocationJudgeを用いて、ボードコンピュータ１０−２に、リソースソフトウェア２４が配置可能か否かを判定する。
ステップ５１２（Ｓ５１２）において、ソース配置ソフトウェア２２−２は、配置可の結果とリソース配置ソフトウェア２２−２のロード部２２４のオブジェクトリファレンスを、リソース管理ソフトウェア２０に対して送信する。
【００６６】
ステップ５１４（Ｓ５１４）において、リソース管理ソフトウェア２０は、受信したオブジェクトリファレンスにより、リソース配置ソフトウェア２２−２のロード部２２４に、リソースソフトウェア２４をロードさせる。
ステップ５１６（Ｓ５１６）において、リソース配置ソフトウェア２２−２は、リソースソフトウェア２４をボードコンピュータ１０−２のメモリ１５２−２にロードして実行させる。
【００６７】
なお、上述した全体動作例では、リソース配置ソフトウェア２２−２がリソースソフトウェア２４を配置可能と判断した場合が具定例とされている。
リソース管理ソフトウェア２０は、図５を参照して説明したように、リソース配置ソフトウェア２２−１〜２２−ｎのいずれかが配置可能と判断するまで、リソース配置ソフトウェア２２−ｉ（１≦ｉ≦ｎ）に対して、リソースソフトウェア２４の配置可否判定を実行させる。
【符号の説明】
【００６８】
１・・・無線機、１０・・・ボードコンピュータ、１００・・・アンテナ、１０２・・・共用器、１０４・・・受信回路、１０６・・・Ａ／Ｄ、１０８・・・送信回路、１１０・・・Ｄ／Ａ、１１２・・・データ処理部、１１４・・・ＣｏｍｐａｃｔＰＣＩ、１１６・・・インタフェース回路、１４０・・・ＯＳ、１４２・・・ＣＯＲＢＡ、１５０・・・デバイス、１５２・・・メモリ、１５４・・・ＨＤ、２０・・・リソース管理ソフトウェア、２２・・・リソース配置ソフトウェア、２４・・・リソースソフトウェア、２００・・・プロファイル記憶部、２０２・・・リソース配置オブジェクト記憶部、２０４・・・リソース配置指示部、２２０・・・登録部、２２２・・・判定部、２２４・・・ロード部
【図１】
2009245428.tif 000003
【図２】
2009245428.tif 000004
【図３】
2009245428.tif 000005
【図４】
2009245428.tif 000006
【図５】
2009245428.tif 000007
【図６】
2009245428.tif 000008
【図７】
2009245428.tif 000009