(57)【要約】【課題】コンピュータ応用システムの制御プログラムは、通常は、各機種のハードウエア毎に個別に設計されることが多い。そのため新機能の追加やデバイスの追加変更が困難であったり、オーバースペックとなったり、または特別な機能を持たせる場合に広範囲に渡ってプログラムを修正する必要が生じる等の課題がある。【解決手段】そこで本発明では、ハードウエア依存側からアプリケーション側に、電源ＯＮ時の起動処理に関する層と、基本入出力に関する層と、通信手順に関する層と、ユーティリティープログラムに関する層と、アプリケーションプログラムに関する層とに層分けして、夫々の層の機能を提供する共通構造のコンポーネントの集合により構成した。各コンポーネントは、各層における単位プログラムをモジュールとして、適数の共通構造のモジュールを要素として構成する。【選択図】　　　図１
2004030214.tif 000002
【特許請求の範囲】
【請求項１】
通信機能を有するコンピュータ応用システムの制御プログラムを、ハードウエア依存側からアプリケーション側に、電源ＯＮ時の起動処理に関する第１の層と、基本入出力に関する第２の層と、通信手順に関する第３の層と、ユーティリティープログラムに関する第４の層と、アプリケーションプログラムに関する第５の層とに層分けして、夫々の層の機能を提供する共通構造のコンポーネントの集合により構成し、各コンポーネントは、各層における単位プログラムをモジュールとして、適数の共通構造のモジュールを要素として構成すると共に、上記コンポーネントの中の一つを、電源ＯＮ時に起動されるコンポーネント管理コンポーネントとして構成し、コンポーネント管理コンポーネントには、上記集合を構成する各コンポーネントと、それらを構成するモジュールを起動させるための情報の登録手段を構成したことを特徴とする通信機能を有するコンピュータ応用システム
【請求項２】
異なった層の複数のモジュールを要素として、複数の層に渡るコンポーネントを構成することを特徴とする請求項１に記載の通信機能を有するコンピュータ応用システム
【請求項３】
コンポーネントは、コンポーネントヘッダー部と、要素のモジュールとから構成し、コンポーネントヘッダー部には、コンポーネントに関する情報とモジュールの情報を保持する構成とすると共に、コンポーネントの要素のモジュールは、モジュールヘッダー部とモジュールオブジェクト部とから構成し、モジュールヘッダー部にモジュールオブジェクト部の情報を保持したことを特徴とする請求項１又は２に記載の通信機能を有するコンピュータ応用システム
【請求項４】
コンポーネントヘッダー部におけるモジュールの情報には、コンポーネントを構成するモジュールの数と、それらのエントリーアドレスを含むことを特徴とする請求項３に記載の通信機能を有するコンピュータ応用システム
【請求項５】
モジュールヘッダー部におけるモジュールオブジェクト部の情報には、モジュール初期化エントリーアドレスを含むことを特徴とする請求項３に記載の通信機能を有するコンピュータ応用システム
【請求項６】
モジュールヘッダー部におけるモジュールオブジェクト部の情報には、異なったコンポーネント間で、他のコンポーネントのモジュールの機能を使用するためのモジュール間インターフェースのエントリーアドレスを含むことを特徴とする請求項３に記載の通信機能を有するコンピュータ応用システム
【請求項７】
モジュール間インターフェースは、機能を識別する番号と、必要な引数と、結果情報とを記憶する記憶手段を有することを特徴とする請求項６に記載の通信機能を有するコンピュータ応用システム
【請求項８】
第１の層と第２の層のコンポーネントの基で動作するＯＳを付加したことを特徴とする請求項１〜７までのいずれか１項に記載の通信機能を有するコンピュータ応用システム
【請求項９】
第４の層のコンポーネントとして、遠隔診断機能、遠隔監視機能及びデータ配信機能を有するコンポーネントを構成したことを特徴とする請求項１〜８までのいずれか１項に記載の通信機能を有するコンピュータ応用システム
【請求項１０】
第１の層のモジュールを要素とするコンポーネントに対するＲＡＳ機能を管理するＲＡＳコンポーネント管理コンポーネントを構成したことを特徴とする請求項１〜９までのいずれか１項に記載の通信機能を有するコンピュータ応用システム
【請求項１１】
ＲＡＳコンポーネント管理コンポーネントに、初起動からの稼働時間の積算手段を構成したことを特徴とする請求項１０に記載の通信機能を有するコンピュータ応用システム
【請求項１２】
ＲＡＳコンポーネント管理コンポーネントに、初起動からのハードウエアの各部品の動作回数をカウントするカウント手段を構成したことを特徴とする請求項１０に記載の通信機能を有するコンピュータ応用システム
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、携帯電話等のように、通信を主目的とした機器から、冷蔵庫等の家庭内の電気製品のように通信を主目的とはしていなくても、メンテナンス等のために通信機能機能が付加された機器又は付加するのが好ましい機器を含むシステム、即ち、通信機能を有するコンピュータ応用システムに関するものである。
【０００２】
【従来の技術】
近来、半導体技術の進歩により、身の回りの数多くの製品にマイクロコンピュータが内蔵されて、コンピュータ応用システムとして構成されている。即ち、コンピュータ応用システムの範囲は、産業用や営業用の各種機器ばかりでなく、パーソナルコンピュータを初めとして、携帯電話等の移動体通信機器や各種の家庭内の電気製品等、多岐に渡っている。また、近来は家庭内の電気製品をＬＡＮで接続してそれらを統合的に管理することも提案されている。
【０００３】
従来、これらのコンピュータ応用システムの制御プログラムは、通常は、各機種のハードウエア毎に個別に設計されることが多い。
【０００４】
【発明が解決しようとする課題】
そのためコンピュータ応用システムを構築する上で、以下に示すような課題がある。
１．新機能の追加やデバイスの追加変更が困難である。
２．例えばパーソナルコンピュータの基本入出力システム（ＢＩＯＳ）とＯＳを利用して共通プラットホームの応用システムの構築を図ろうとした場合でも、応用システムの要求する機能が最低限度のものである場合には、オーバースペックとなり、逆に、特別な機能を持たせる場合には、広範囲に渡ってプログラムを修正する必要が生じる。また、この場合にもハードウエアを限定した設計となっているため、システムのハードウエア上の構成の変更が困難である。
本発明は、このような課題を解決することを目的とするものである。
【０００５】
【課題を解決するための手段】
上述した課題を解決するために、請求項１の発明では、通信機能を有するコンピュータ応用システムの制御プログラムを、ハードウエア依存側からアプリケーション側に、電源ＯＮ時の起動処理に関する第１の層と、基本入出力に関する第２の層と、通信手順に関する第３の層と、ユーティリティープログラムに関する第４の層と、アプリケーションプログラムに関する第５の層とに層分けして、夫々の層の機能を提供する共通構造のコンポーネントの集合により構成し、各コンポーネントは、各層における単位プログラムをモジュールとして、適数の共通構造のモジュールを要素として構成すると共に、上記コンポーネントの中の一つを、電源ＯＮ時に起動されるコンポーネント管理コンポーネントとして構成し、コンポーネント管理コンポーネントには、集合を構成する各コンポーネントと、それらを構成するモジュールを起動させるための情報の登録手段を構成した通信機能を有するコンピュータ応用システムを提案する。
【０００６】
また請求項２の発明では、上記の構成において、異なった層の複数のモジュールを要素として、複数の層に渡るコンポーネントを構成することを提案する。
【０００７】
また請求項３の発明では、以上の構成において、コンポーネントは、コンポーネントヘッダー部と、要素のモジュールとから構成し、コンポーネントヘッダー部には、コンポーネントに関する情報とモジュールの情報を保持する構成とすると共に、コンポーネントの要素のモジュールは、モジュールヘッダー部とモジュールオブジェクト部とから構成し、モジュールヘッダー部にモジュールオブジェクト部の情報を保持する構成とすることを提案する。
【０００８】
また請求項４の発明では、請求項３に記載の発明において、コンポーネントヘッダー部におけるモジュールの情報には、コンポーネントを構成するモジュールの数と、それらのエントリーアドレスを含むことを特徴とするものである。
【０００９】
また請求項５の発明では、請求項３に記載の発明において、モジュールヘッダー部におけるモジュールオブジェクト部の情報には、モジュール初期化エントリーアドレスを含むことを特徴とするものである。
【００１０】
また請求項６の発明では、請求項３に記載の発明において、モジュールヘッダー部におけるモジュールオブジェクト部の情報には、異なったコンポーネント間で、他のコンポーネントのモジュールの機能を使用するためのモジュール間インターフェースのエントリーアドレスを含むことを特徴とするものである。
【００１１】
そして請求項７の発明では、モジュール間インターフェースは、機能を識別する番号と、必要な引数と、結果情報とを記憶する記憶手段を有することを特徴とするものである。
【００１２】
更に請求項８の発明では、第１の層と第２の層のコンポーネントの基で動作するＯＳを付加することを提案する。
【００１３】
更に請求項９の発明では、第４の層のコンポーネントとして、遠隔診断機能、遠隔監視機能及びデータ配信機能を有するコンポーネントを構成することを提案する。
【００１４】
更に請求項１０の発明では、第１の層のモジュールを要素とするコンポーネントに対するＲＡＳ機能を管理するＲＡＳコンポーネント管理コンポーネントを構成することを提案する。
【００１５】
更に請求項１１の発明では、請求項１０のＲＡＳコンポーネント管理コンポーネントに、初起動からの稼働時間の積算手段を構成することを提案する。
【００１６】
更に請求項１２の発明では、請求項１０のＲＡＳコンポーネント管理コンポーネントに、初起動からのハードウエアの各部品の動作回数をカウントするカウント手段を構成することを提案する。
【００１７】
上述した本発明では、コンピュータ応用システムを構成する上で必要な制御プログラムを、電源ＯＮ時の起動処理に関する第１の層と、基本入出力に関する第２の層と、通信手順に関する第３の層と、ユーティリティープログラムに関する第４の層と、アプリケーションプログラムに関する第５の層に層分けして、夫々の層の機能を提供するコンポーネントの集合として構成し、そして夫々の各コンポーネントは共通構造としているため、管理が容易であり、その管理をコンポーネント管理コンポーネントにより行わせて、夫々のコンポーネントを統合して動作させることにより、コンピュータ応用システムを構築することができる。
【００１８】
コンポーネントは、１つ、又はそれ以上のモジュールによって構成することができ、そして異なった層の複数のモジュールを要素として、複数の層に渡った機能を発揮するコンポーネントとして構成することができる。
【００１９】
こうして、電源ＯＮ時の起動処理に関する第１の層と、基本入出力に関する第２の層と、通信手順に関する第３の層と、ユーティリティープログラムに関する第４の層と、アプリケーションプログラムに関する第５の層の各機能は、コンポーネント単位で選択することができ、必要に応じてコンポーネントを選択することにより、必要最小限の簡単な構成のシステムから、多種多様な機能を盛り込んだ複雑なシステムまで、適宜のコンピュータ応用システムを容易に構築することができる。
【００２０】
本発明においては、上述したとおり、コンポーネントは異なった層の複数のモジュールを要素として、複数の層に渡った機能を発揮させることができるが、モジュールについては、複数の層に渡った機能を発揮させる構成とはしないことと、あるモジュールを複数のコンポーネントで共有する構成としないことにより、モジュール化、コンポーネント化の効果を減殺しない。
【００２１】
また、あるコンポーネントの要素であるモジュールの動作は、必要であればモジュール間インターフェースを介して他のコンポーネントから利用することができるため、資源の重複を低減することができる。
【００２２】
こうして本発明では、コンピュータ応用システムに必要な機能を、コンポーネント単位の選択によって行うことができるため、開発も容易であり、新機能の追加や新デバイスの追加変更等も容易に行うことができる。
【００２３】
本発明では、上記各層のコンポーネントのみを組み合わせて、ＯＳなしでコンピュータ応用システムを構築することができるが、必要に応じて第１の層と第２の層のコンポーネントの基で動作するように既存のＯＳを付加することができ、この場合には、ＯＳ上で動作するアプリケーションを利用することにより、既存のアプリケーションの有効利用を図ることができる。
【００２４】
第４の層のコンポーネントとして、遠隔診断機能、遠隔監視機能及びデータ配信機能を有するコンポーネントを構成すれば、本発明により構成したコンピュータ応用システム相互間の接続や、適所に構成した、ホストとしてのコンピュータ応用システムを介しての接続を行って、上記各機能を利用することができる。
【００２５】
また第１の層のモジュールを要素とするコンポーネントに対するＲＡＳ機能を管理するＲＡＳコンポーネント管理コンポーネントを構成することにより、各モジュールのＲＡＳ動作を管理することができる。
【００２６】
このＲＡＳコンポーネント管理コンポーネントに、初起動からの稼働時間の積算手段を構成して、その積算した稼働時間が設定時間に達した際に、所定の信号を発して、ディスプレーに表示したり、音を発する等の動作を行うことができる。
【００２７】
またＲＡＳコンポーネント管理コンポーネントに、初起動からのハードウエアの各部品の動作回数をカウントするカウント手段を構成して、ディスプレーに表示したり、音を発する等の動作を行うことができる。
【００２８】
【発明の実施の形態】
次に本発明の実施の形態を図を参照して説明する。
図１は本発明に係るコンピュータ応用システムの全体構成の一例を概念的に示す説明図である。
図中１点差線で囲まれた枠Ｈはシステムを構成するハードウエアを示すもので、個々のハードウエアｈ１，ｈ２，ｈ３，ｈ４が示されている。また区画Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５はシステムを構成する制御プログラムをハードウエア依存側（図中下側）からアプリケーション側（図中上側）に層分けした各層を示すもので、Ｌ１は電源ＯＮ時の起動処理に関する第１の層、Ｌ２は基本入出力に関する第２の層、Ｌ３は通信手順に関する第３の層、Ｌ４はユーティリティープログラムに関する第４の層、Ｌ５はアプリケーションプログラムに関する第５の層を示すものである。
本発明は、制御プログラムを、このような層の機能を提供する共通構造のコンポーネントＣ１〜Ｃ１２の集合により構成しており、また各コンポーネントＣ１〜Ｃ１２は各層Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５における単位プログラムをモジュールとして、適数の共通構造のモジュールｍ１〜ｍ１７を要素として構成している。尚、図において各モジュールｍ１〜ｍ１７は実線の枠で示しており、また各コンポーネントＣ１〜Ｃ１２は破線の枠で示している。
【００２９】
図１に示すコンポーネントとモジュールの関係を説明すると、コンポーネントＣ１、Ｃ２は、夫々第１の層Ｌ１のモジュールｍ１、ｍ２のみを要素として構成して、第１の層Ｌ１の機能を提供する構成としている。またコンポーネントＣ３〜Ｃ５は、夫々、第１の層Ｌ１及び第２の層Ｌ２の夫々２つのモジュールｍ３，ｍ６；ｍ４，ｍ７；ｍ５，ｍ８を要素として構成して、第１の層Ｌ１と第２の層Ｌ２の機能を提供する構成としている。また、コンポーネントＣ６，Ｃ８は、夫々第３の層Ｌ３，第４のＬ４のモジュールｍ９，ｍ１１のみを要素として構成して、夫々第３の層Ｌ３，第４のＬ４の機能を提供する構成としている。また、コンポーネントＣ７は、第３の層Ｌ３及び第４の層Ｌ４の２つのモジュールｍ１０，ｍ１２を要素として構成して、第３の層Ｌ３と第４の層Ｌ４の機能を提供する構成としている。また、コンポーネントＣ９，Ｃ１０，Ｃ１１は、夫々第５の層Ｌ５のモジュールｍ１，ｍ２，ｍ３のみを要素として構成して、第５の層Ｌ５の機能を提供する構成としている。また、コンポーネントＣ１２は第５の層Ｌ５の２つのモジュールｍ１６、ｍ１７を要素として構成して、第５の層Ｌ５の機能を提供する構成としている。尚、以下の説明では、層、コンポーネント及びモジュールは、概して説明する場合には、夫々Ｌ、Ｃ及びｍとしても表記する。
【００３０】
以上の説明から分かるように、本発明において、制御プログラムを構成するコンポーネントＣは、１つ、又はそれ以上の複数のモジュールｍから構成することができ、この場合、コンポーネントＣは、複数のモジュールｍの全てを同一の層Ｌに属するものとして、その層Ｌのみの機能を提供する構成とする他、異なった層Ｌに属する複数のモジュールｍを要素として、複数の層Ｌに渡った機能を提供する構成とすることができる。このように、コンポーネントＣは異なった層Ｌの複数のモジュールｍを要素として、複数の層Ｌに渡った機能を発揮させる構成とするものであるが、モジュールｍは、各層Ｌにおける単位プログラムから構成して、複数の層Ｌに渡った機能を実現する構成とはしない。尚、ここで「単位プログラム」とは、必ずしも１つの機能のみを実現するプログラムに限定されるものではなく、複数の機能を実現する一纏まりのプログラムを単位プログラムとすることもできる。
【００３１】
図２はコンポーネントの一例として、複数のモジュールを要素として構成したコンポーネントの構成をメモリ空間におけるバイナリイメージで模式的に表した説明図であり、このコンポーネントは、コンポーネントヘッダー部と複数のモジュール（１〜ｎ）とから構成され、そして各モジュールは、モジュールヘッダー部とモジュールオブジェクト部とから構成される。このモジュールヘッダー部は、後述するようにモジュールオブジェクト部の情報を持つものである。
【００３２】
図３は複数のコンポーネントのメモリ空間における配置をバイナリイメージとして模式的に表した説明図であり、コンポーネント１はコンポーネント１ヘッダー部と２つのモジュール１，２とから構成され、次いでコンポーネント２はコンポーネント２ヘッダー部と一つのモジュール３とから構成され、同様にコンポーネント３はコンポーネント３ヘッダー部と３つのモジュール４，５，６とから構成されている。
【００３３】
次に各コンポーネントに対して共通な構造を有するコンポーネントヘッダー部の構成を図４につき説明する。図４に示すように、コンポーネントヘッダー部は、所定の項番で表されている複数のメンバーのオブジェクト（変数）がメモリ空間に順次割り付けられた構造体として構成されている。
即ち、このコンポーネントヘッダー部における各項番の変数の内容は、表の右端の内容の項に記載されている。図４において、項番１，５，６，７，１１の変数は夫々のアドレスを指すポインタ変数である。
【００３４】
ここで、各変数を説明すると、項番１の変数「ＬｉｎｋＨｅａｄｅｒ」は、後述するようにコンポーネント管理コンポーネントによりコンポーネントを管理するためのリンクアドレスであり、これはコンポーネント管理コンポーネントにより、コンポーネントの起動時に設定されるものである。
次に項番２の「ＣｏｍｐｏｎｅｎｔＴｙｐｅ」は、文字通り、当該コンポーネントの分類上のタイプを示すものである。
次に項番４の「ＣｏｍｐｏｎｅｎｔＦｌａｇ」は、項番１２〜１４の変数の内容の文字タイプの識別用フラグである。
次に項番５〜項番７の「ＣｏｍｐｏｎｅｎｔＩｎｆｏ１」〜「ＣｏｍｐｏｎｅｎｔＩｎｆｏ３」は、夫々項番１２〜１４の変数の先頭アドレスを示すものである。
次に項番８の変数「ＳｕｍＣｈｅｃｋ」は、このコンポーネントのサムチェック値を示すもので、このサムチェック値はコンポーネントの起動時に照合される。
次に項番９の変数「Ｓｉｚｅ」は、コンポーネントのサイズを示すものである。
次に項番１０の変数「Ｍｏｄｕｌｅｓ」は、このコンポーネントが有するモジュール数を示すものである。
次に項番１１の変数「ＭｏｄｕｌｅＩｎｄｅｘ［ｎ］」は、図４の下部の表に示すように、コンポーネントの構成要素である夫々のモジュールの先頭アドレスを示すものである。
次に項番１２，１３，１４の変数「ＣｏｍｐｏｎｅｎｔＩｎｆｏ１」，「ＣｏｍｐｏｎｅｎｔＩｎｆｏ２」，「ＣｏｍｐｏｎｅｎｔＩｎｆｏ３」は、夫々コンポーネントの種類、制作メーカ、バージョンを示すものである。
【００３５】
上述したように、本発明では、全てのコンポーネントに対して、図４に示すように、そのコンポーネントに関する情報と、それを構成するモジュール等の情報を保持する構成した共通構造のコンポーネントヘッダー部を構成することにより、後述するコンポーネント管理コンポーネントによる一元的な制御を可能とするものである。
尚、本発明は、全てのコンポーネントに対して共通構造のコンポーネントヘッダー部を設けるというものであって、コンポーネントヘッダー部の具体的構成は、必ずしも図４の構造に限定されるものではない。
【００３６】
次に各コンポーネントの要素であるモジュールに共通なモジュールヘッダー部の構成を図５につき説明する。図５に示すように、このモジュールヘッダー部も、コンポーネントヘッダー部と同様に、所定の項番で表されている複数のメンバーのオブジェクト（変数）がメモリ空間に順次割り付けられた構造体として構成されている。しかしながら、モジュールヘッダー部では、全モジュールに共通のものと、モジュールが属する層により固有となるものがある。
即ち、図５の備考欄中の表記が「共通」の項番の変数は、全モジュールに共通のものであり、「異」はモジュールの属する層毎に異なるものである。この場合、「異」は、項番１５の変数「ＰｏｓｔＨｅａｄｅｒ」は、第１の層Ｌ１に固有の複数の処理ルーチン、即ち、「初期化１」、「自己診断１」、「自己診断２」、「初期化２」及び「チェックテスト」の各処理ルーチンの各先頭アドレスを示す各ポインタ変数をメンバーとする構造体として構成されている。尚、図５において、項番１，５，６，７，８，９，１０，１１の変数は夫々のアドレスを示すポインタ変数である。
【００３７】
ここで、各変数を説明すると、項番１の変数「ＬｉｎｋＨｅａｄｅｒ」は、コンポーネントヘッダーにおける項番１の変数と同様に、コンポーネント管理コンポーネントによりモジュールを管理するためのリンクアドレスであり、これはコンポーネント管理コンポーネントにより、コンポーネントの起動時に設定されるものである。
次に項番２の「ＭｏｄｕｌｅＴｙｐｅ」は、文字通り、当該モジュールの分類上のタイプを示すものである。
次に項番４の「ＭｏｄｕｌｅＦｌａｇ」は、項番１２〜１４の変数の内容の文字タイプの識別用フラグである。
次に項番５〜項番７の「ＭｏｄｕｌｅＩｎｆｏ１」〜「ＭｏｄｕｌｅＩｎｆｏ３」は、夫々項番１２〜１４の変数の先頭アドレスを示すものである。
次に項番８の変数「ＭｏｄｕｌｅＩｎｉｔＥｎｔｒｙ」は、モジュールが備えているモジュール初期化ルーチンの先頭アドレスを示すものである。このモジュール初期化ルーチンによるモジュールの初期化処理は、起動時にコンポーネント管理コンポーネントが、各コンポーネントと当該モジュールに対して起動をかけ、各モジュールの初期化ルーチンを呼び出して行う。このモジュール初期化ルーチンは、引数を持たず、初期化結果として、▲１▼ＯＫ：初期化処理正常終了、▲２▼ＮＧ１：致命的エラー（システム停止）、▲３▼ＮＧ２：エラー（本モジュール使用不可，システム起動はＯＫ）のいずれかを返値として返す。
次に項番９の変数「ＦｕｎｃｔｉｏｎＥｎｔｒｙ」は、モジュールが備えているファンクションを、他のコンポーネントが使用するためのモジュール間インタフェース（Ｉ／Ｆ）ルーチンの先頭アドレスを示すものである。この、モジュール間インタフェースの詳細については後述する。
次に項番１０の変数「ＭｏｄｕｌｅＲｅｌｅａｓｅ」は、ダイナミックに、即ちシステム起動後に媒体を介して動的に登録されたコンポーネントのモジュールを開放するためのモジュール開放ルーチンの先頭アドレスを示すものである。
次に項番１１の変数「ＬａｙｅｒＨｅａｄｅｒ」は、層単位のヘッダーである。
次に項番１２，１３，１４の変数「ＣｏｍｐｏｎｅｎｔＩｎｆｏ１」，「ＣｏｍｐｏｎｅｎｔＩｎｆｏ２」，「ＣｏｍｐｏｎｅｎｔＩｎｆｏ３」は、夫々モジュールの種類、制作メーカ、バージョンを示すものである。
次に項番１５の変数「ＰｏｓｔＨｅａｄｅｒ」は、図５の下部の表に示されるように、第１の層Ｌ１に属するモジュールが有するルーチン群、この場合、▲１▼初期化１処理、▲２▼自己診断１処理、▲３▼自己診断２処理、▲４▼初期化２処理、▲５▼チェックテストの各先頭アドレスを保持した構造体である。
【００３８】
次に上記項番９の変数「ＦｕｎｃｔｉｏｎＥｎｔｒｙ」に関するモジュール間インタフェースにつき説明する。
本発明においては、上述したとおり、モジュール化、コンポーネント化の効果を減殺しないようにするための一つの手法として、あるモジュールを複数のコンポーネントで共有すること、即ち、他のコンポーネント又はモジュールが、他のモジュールを直接的にアクセスすることを禁止し、その代わりとして、あるモジュールが備えていて、それを共有化したい機能については、あるモジュールが、他のモジュールに提供可能な機能を、機能毎にファンクションとして構成するモジュール間インタフェースの手法を用いている。
【００３９】
即ち、
コンポーネント間で、コンポーネントのモジュールを使用する場合には、モジュール間インタフェースに従って、各モジュールに属しているファンクションを呼び出す。このファンクションの呼び出しは、上記モジュールヘッダーの項番９の変数「ＦｕｎｃｔｉｏｎＥｎｔｒｙ」に示された先頭アドレスにより、モジュール間インタフェースルーチンを呼び出して行う。
【００４０】
モジュールヘッダーの項番９の変数「ＦｕｎｃｔｉｏｎＥｎｔｒｙ」により呼び出されるモジュール間インタフェースルーチンは、図６の表で示されるようなインタフェース項目を有する構造体として構成されている。
図６において、項番１のファンクション番号「ＦｕｎｃｔｉｏｎＮｏ」、項番２のサブファンクション番号「ＳｕｂＦｕｎｃｔｉｏｎＮｏ」は各モジュール毎に設定して管理することができる。項番３の引数「ＭｏｄｕｌｅＡｒｇｕｍｅｎｔ」と返値「ＭｏｄｕｌｅＲｅｔｕｒｎ」は、各モジュール毎に必要な情報を構造体として用意し、モジュールを呼び出す場合には、呼び出すモジュールのインタフェースに従った情報を引数として用意し、結果は呼び出されたモジュールのインタフェースに従った結果情報で返ってくる。
【００４１】
このような構成において、あるモジュールから、他のモジュールのファンクションの呼び出しは、ファンクションを利用するモジュールが、まずコンポーネント管理コンポーネントにアクセスして、所望の機能を有するモジュールの、上記モジュールヘッダーの項番９の変数により保持されているモジュール間インタフェースの先頭アドレスを取得し、この先頭アドレスに対して、ファンクション呼び出しを行うことにより実現する。尚、このようなファンクション呼び出しを実現するために、コンポーネント管理コンポーネントは、夫々のモジュールのモジュール間インタフェースの先頭アドレスを登録したテーブルを備えており、このテーブルは、後述するようにシステム起動時に作成する。尚、コンポーネント管理コンポーネントの具体的内容及びシステム起動時にコンポーネント管理コンポーネントが作成するテーブルについては後述する。
【００４２】
次に各層におけるコンポーネントの機能を詳述する。
まず第１の層Ｌ１はハードウエアに依存する層であり、下記のような初期化やＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ　Ａｖａｉｌａｂｉｌｉｔｙ　Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）機能を提供する。
初期化：ハードウエアを構成するＣＰＵ、メモリ及び周辺デバイス等のシステム起動時、即ち電源ＯＮ時の初期化を行う。
自己診断：システムの電源ＯＮ時に、ＣＰＵ、メモリ及び周辺デバイス等のハードウエアの各部が正常に動作するかをチェックする。
ウオッチドックタイマ：プログラムの暴走を監視し、システムの自動再起動を可能とする。
エラー情報のロギング：自己診断中に発生したエラー情報のログを蓄積する。
稼働時間の積算：システムや、それを構成するハードウエア、例えばモータ等の初起動からの稼働時間を積算して記録する。
部品交換予測機能：システムの初起動からのハードウエアの各部品の動作回数をカウントして、当該部品の交換時期を予測して、知らせる。
ブートローダー（Ｂｏｏｔ　Ｌｏａｄｅｒ）：基本プログラムのローディングを行う。
【００４３】
次に、第２の層Ｌ２は、第１の層Ｌ１と同様にハードウエアに依存する層であり、下記に例示するような各デバイスの制御ルーチンを提供する。
ディスプレー（Ｄｉｓｐｌａｙ）：表示系デバイスの制御ルーチン群
キーボード（Ｋｅｙｂｏａｒｄ）：キーボードデバイスの制御ルーチン群
ポインティングデバイス（Ｐｏｉｎｔｉｎｇ　Ｄｅｖｉｃｅ）：マウスやトラックボール等のポインティングデバイスの制御ルーチン群
ストレージ（Ｓｔｏｒａｇｅ）：ＨＤＤ，ＣＤＤ，ＭＤ等の大容量記録装置の制御ルーチン群
イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））：１００ＢＡＳＥ−Ｔ，１０ＢＡＳＥ−Ｔなどの制御ルーチン群
コミュニケーション（Ｃｏｍｍｕｎｉｃａｔｉｏｎ）：ＲＳ−２３２Ｃ等のシリアル通信に関する制御ルーチン群
ＰＣＭＣＩＡ：ＰＣ　Ｃａｒｄにカードサービスとソケットサービスを提供する制御ルーチン群
ＵＳＢ：ＵＳＢのスタック部の制御ルーチン群
Ｂｌｕｅｔｏｏｔｈ：Ｂｌｕｅｔｏｏｔｈのスタック部の制御ルーチン群
【００４４】
次に、第３の層Ｌ３は、ハードウエアに依存しない論理層であり、下記に例示するような各通信に使用されるプロトコルの制御ルーチンを提供する。
ＴＣＰ／ＩＰ：主として、電子メールやネットニュース等のインターネットアプリケーションで使用される通信プロトコルの制御ルーチンを提供する。
ＰＰＰ：主として、ＯＳやモデム等に搭載され、プロバイダへのダイヤルアップ接続時に使用される。制御ルーチンを提供する。
ＭＮＰ：主としてモデム間通信の制御ルーチンを提供する。
ＵＳＢ：ＵＳＢの各種クラスドライバーに対応する制御ルーチンを提供する。
【００４５】
次に、第４の層Ｌ４は、第３の層と同様にハードウエアに依存しない論理層であり、特に使用頻度の高いアプリケーションを、あらかじめファンクションとして提供する。
セキュリティ：通信におけるパスワードによるアクセス許可の認識を行う機能を提供する。
遠隔診断：端末がシステムにおいて自己診断を行い、その結果のデータを通信回線を介してセンター側システムに通知して対処を行う機能や、センター側システムが一定の間隔で端末側システムの診断を行う機能を提供する。
遠隔監視：センター側システムにより通信回線を介して端末側システムを監視する機能を提供する。
遠隔制御：センター側システムにより通信回線を介して端末側システムを制御する機能を提供する。
遠隔監視用アプリケーション：遠隔監視等を行うための各種アプリケーションインタフェース機能を提供する。
遠隔制御用アプリケーション：遠隔制御を行うための各種アプリケーションインタフェース機能を提供する。
センター管理：センター側システムにより通信回線を介して端末側システムの遠隔処理を行う機能を提供する。従って端末側の機能と、センター側の機能の両方がある。
画像圧縮（非可逆性圧縮）：画像の生データを、ｊｐｅｇ．ｍｐｅｇ，ｇｉｆ等に圧縮する機能を提供する。
データ圧縮（可逆性圧縮）：データを圧縮、伸長する機能を提供する。
【００４６】
次に、第５の層Ｌ５は、第１の層Ｌ１〜第４の層Ｌ４までの各機能を使用したツール又はアプリケーションのプログラム群を提供する。
例えばツールとしては、例えばフラッシュメモリに書き込まれているファームウエア等の基本ソフトウエアをアップデートするためのプログラムや、センター側システムからアプリケーションプログラムやアプリケーションデータをダウンロードするためのプログラム等がある。
またアプリケーションプログラムとしては、第５の層の各ツール又はアプリケーションのプログラム群を管理する時分割管理機能や、ホームページ閲覧のためのブラウザや電子メールの送受信のためのプログラム（Ｂｒｏｗｓｅｒ）等、システムの構成に応じて適宜に提供することができる。
【００４７】
図７は、標準的なコンピュータ応用システムにおいて、上記各層Ｌ１〜Ｌ５の各機能を実現するために構成した複数のコンポーネントの例を示すもので、この図では、項番１〜２９（但し項番２は予約）の各コンポーネントの機能と関連する層が表されている。
【００４８】
これらのコンポーネントの機能は、図７によって自明であるが、その一部を説明すると、例えば、上記第１の層Ｌ１の機能として説明したＲＡＳ機能を提供するＲＡＳコンポーネント管理コンポーネント（項番３）は、第１の層Ｌ１と第２の層Ｌ２に渡った機能を有するもので、第１の層Ｌ１に属するモジュールｍと第２の層Ｌ２に属するモジュールｍとから構成されている。
【００４９】
また他の例として、各デバイスを制御する機能を提供するルーチン群として、上記に第２の層の機能として説明した、ディスプレー（Ｄｉｓｐｌａｙ）、キーボード（Ｋｅｙｂｏａｒｄ）、ポインティングデバイス（Ｐｏｉｎｔｉｎｇ　Ｄｅｖｉｃｅ）、ストレージ（Ｓｔｏｒａｇｅ）、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））、コミュニケーション（Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＰＣＭＣＩＡ、ＵＳＢ及びＢｌｕｅｔｏｏｔｈ等のデバイスの各制御ルーチンを提供する各コンポーネントは、夫々の初期化の機能を有するため、第１の層Ｌ１と第２の層Ｌ２に渡った機能を有するもので、第１の層Ｌ１に属するモジュールｍと第２の層Ｌ２に属するモジュールｍとから構成されている。
【００５０】
一方、項番１５〜２９の各コンポーネントは、夫々対応する一つの層に対応する機能を有するものとして構成されている。
【００５１】
本発明では、上述したとおり、上記共通構造の複数のコンポーネントの中の一つを、電源ＯＮ時に起動されるコンポーネント管理コンポーネントとして構成して、システムを構成する全てのコンポーネントと、それらが備えているモジュールを管理する構成としており、次にこのコンポーネント管理コンポーネントについて説明する。
【００５２】
コンポーネント管理コンポーネントは、図７に示されるように、第１の層Ｌ１と第２の層Ｌ２に渡る機能を有するコンポーネントであり、このコンポーネント管理コンポーネントは、システムを構成する全てのコンポーネントと、それらが備えているモジュールを、それらのヘッダー部を読み取って管理を行う構成としている。
【００５３】
そこでコンポーネント管理コンポーネントは、次のような機能を有する。
（１）　電源ＯＮ処理機能
（２）　コンポーネント・モジュール管理機能
（３）
他モジュールの機能提供機能
【００５４】
次に、まず（１）の電源ＯＮ処理機能につき説明する。
上述したとおり、電源ＯＮ時、即ち、システム起動時には、システム固有のプログラムを記録したＲＯＭ上のコンポーネント管理コンポーネントが最初に起動し、起動時のシステムのチェックを行った後、組み込まれている各コンポーネントの起動と初期化を行い、制御プログラムとシステムの起動を行う。
起動時のチェックは、システムを構成するＣＰＵの動作チェック、メモリのＲｅａｄ／Ｗｒｉｔｅ動作チェック、ＲＯＭのサムチェック等である。
【００５５】
ところで、システムを構成するコンポーネントには、システム固有のＲＯＭに記録されて、予め組み込まれているスタティックなコンポーネントと、システムの起動後にハードディスクドライブ等の媒体を介して組み込まれるダイナミックなコンポーネントがあり、これらのコンポーネントを管理するためにコンポーネント管理コンポーネントは、各コンポーネントの機能や属している層等に関して、以下のようなリストにアクセス可能に構成している。
▲１▼第１の層Ｌ１のモジュールを要素としているコンポーネントのリスト（初期化用）…予めＲＯＭに登録されているリストであり、起動時の初期化の優先順序を表している。
▲２▼第１の層Ｌ１のモジュールを要素としているコンポーネントのリスト（ＲＡＳ機能用）…予めＲＯＭに登録されているリストであり、起動時のＲＡＳ機能の優先順序を表している。
▲３▼登録及び使用されているコンポーネントのモジュールのリスト…システム起動の電源ＯＮ時に、コンポーネント管理コンポーネントが作成するリストであり、モジュールヘッダーの先端アドレス一覧リストと、層別（第１の層）のヘッダーの先頭アドレス一覧から成る。
【００５６】
図８はコンポーネント管理コンポーネントによる電源ＯＮ処理の流れを示すフロー図である。
まずステップＳ１では、コンポーネント管理コンポーネントの起動・初期化処理が行われ、上記リストの作成が行われる。
次いでステップＳ２では、上記起動チェックの判定が行われ、運用不可能の場合には電源ＯＮ処理が終了し、運用可能な場合には次のステップＳ３に移行する。
ステップＳ３ではメモリ管理コンポーネントが起動・初期化され、次いでステップＳ４ではＲＡＳ管理コンポーネントが起動・初期化され、次いで、第１、第２の層のモジュールを有するコンポーネントの起動・初期化が行われる。これらは、上記初期化用のリストに基づいて行われる。これらの初期化は、予め登録されているリストのものが優先され、その後に、ステップＳ５において、その他のモジュールの初期化が行われる。尚、上記メモリ管理コンポーネントは、コンポーネント管理コンポーネントの機能として実現することもできる。
以上のステップＳ１〜Ｓ５により仮の初期化処理が行われ、次いでステップＳ６に移行する。ステップＳ６では、第１、第２の層のモジュールで、ＲＡＳ機能を有する各コンポーネントの起動・初期化が行われる。この起動・初期化処理は、コンポーネント管理コンポーネントに予め登録してある上記ＲＡＳ機能用のリストに従って行われる。その後、コンポーネント管理コンポーネントの起動時処理において作成されたリストに追加されたモジュールの起動・初期化処理が行われる。
次いで、ステップＳ７では、ＲＡＳ管理コンポーネントを使用して、ＲＡＳ機能を有する各コンポーネントの自己診断処理を行う。第１、第２の層のモジュールを有するコンポーネントに関しては、それによりシステムの運用が可能か否かを判定する必要があるため、他の層のコンポーネントよりも優先して起動・テストを行われる。
次いでステップＳ８では、上記自己診断結果の判定が行われ、運用不可能の場合には電源ＯＮ処理が終了し、運用可能な場合には次のステップＳ９に移行する。
以上のステップＳ６〜Ｓ８により自己診断処理が行われ、次いでステップＳ９に移行する。ステップＳ９では、第１、第２の層の各コンポーネントの起動・初期化が行われ、次いでステップＳ１０において第３、第４の層の各コンポーネントの起動・初期化が行われる。この起動・初期化処理においても、予め登録されているリストのものが優先され、その後に、その他のモジュールの初期化が行われる。
次いでステップＳ１１では、第１の層のコンポーネントであるブートローダーコンポーネントが起動され、次いでステップＳ１２においてＯＳが起動された後、ステップＳ１３において第５の層の基本アプリケーションのコンポーネントがロードされて、電源ＯＮ処理が終了し、ロードされたアプリケーションの実行が行われる。
【００５７】
次に（２）のコンポーネント・モジュール管理機能につき説明する。
コンポーネント管理コンポーネントは、全てのコンポーネントの管理をモジュール単位で行うものであり、そのために、コンポーネント管理コンポーネントは、各コンポーネントと、それが有する各モジュールの構成の登録を行って、モジュール間のインタフェースを可能としている。
即ち、コンポーネント管理コンポーネントは、組み込まれている各コンポーネントと、モジュールのヘッダー部の情報を読み取って各コンポーネントに関する情報を収集し、コンポーネントインデックスとモジュールインデックスを作成して管理を行う。
ここで、コンポーネントインデックスは、各コンポーネントにつき、▲１▼コンポーネントの先頭アドレス、▲２▼コンポーネントフラグ、▲３▼コンポーネントヘッダー情報の先頭アドレス、▲４▼モジュールヘッダー情報の先頭アドレス、▲５▼　▲３▼でアドレスされるコンポーネントヘッダー情報、▲６▼　▲４▼でアドレスされる複数のモジュールヘッダー情報が順次配置されて成るものである。一方、モジュールインデックスは、上記複数のモジュールヘッダー情報の夫々の先頭アドレスが順次配置されて構成される。
上述したとおり、コンポーネント管理コンポーネントは、システムの動作状態で、コンポーネントをダイナミック（動的）に組み込みを行うことができるものであって、このようにダイナミックに組み込まれたコンポーネントは、上述したようにリストに登録され、そして、このように登録されたコンポーネントをシステム動作状態で開放することができる。
【００５８】
次に第１の層のモジュールを有するコンポーネントの機能の例を更に詳細に説明する。
まずＲＡＳ管理コンポーネントは、モジュールの自己診断処理やシステムの監視チェックというようなＲＡＳ機能の管理を行うもので、次のような機能を持たせることができる。
（１）ウォッチドッグタイマ機能
自己診断処理機能に属するこの機能は、ウォッチドックタイマのＳｔａｒｔ、Ｓｔｏｐ、Ｒｅｓｅｔを行う機能である。この機能では各モジュールの自己診断テスト毎に、カウンタをＲｅｓｅｔする。
（２）ステータス表示機能１
自己診断処理機能及びシステム監視機能に属するこの機能は、各モジュールの動作ステータス（待機、アクセス、エラー）を、ＬＥＤ等に表示し、自己診断処理の開始で、テストを行うモジュールのステータスを表示する。
（３）　エラーロギング機能
自己診断処理機能及びシステム監視機能に属するこの機能は、電源ＯＮ時に各モジュールの自己診断処理をロギングし、エラーを検知した場合には、ロギングした内容を保存する。
（４）　ステータス表示機能２
自己診断処理機能及びシステム監視機能に属するこの機能は、システムテスト中のステータス表示を行う。
（５）　稼動積算時間カウント機能
システム監視機能に属するこの機能は、システム自体の初稼動からの稼動中の時間を積算する機能であり、積算時間が一定時間（例えばシステムで設定する最長時間）に達した場合に、予告表示を行うというように使用することができる。
（６）　部品交換予測機能
システム監視機能に属するこの機能は、システム自体の初稼動からの各部品の動作回数をカウントする機能であり、動作回数が一定回数（システムで設定する最大回数）に達した場合に、予告表示を行うというように使用することができる。
上記（５）と（６）の機能を組み合わせて部品交換予測テストを行うルーチンを構成することができ、例えばシステム稼働中のアイドル状態等を利用して部品交換予測テストを実行することができる。
この部品交換予測テストは、例えば、まず稼働積算時間に着目し、可動積算時間がシステムで設定する最長時間を越えている場合には部品交換の予告表示等を行い、一方、最長時間を越えていない場合にも、動作回数がシステムで設定する最大回数以上となっている場合に部品交換の予告表示等を行い、最大回数未満の場合には、部品交換の予告表示を行わないというような流れで行うことができる。
（７）　自己診断処理登録機能
この機能は、システムの起動時に自己診断処理を行う必要があるコンポーネントの、第１の層のモジュールのチェックテストの登録を行うもので、例えば、図７の項番４〜１４までのコンポーネントが登録される。
この自己診断処理は、システム起動時の電源ＯＮ処理時に、コンポーネント管理コンポーネントからＲＡＳ管理コンポーネントに起動をかけ、起動を受けたＲＡＳ管理コンポーネントが、自己診断処理の登録のある上記コンポーネントの第１の層のモジュールのチェックテストを実行する。
【００５９】
次に、この実施の形態では、コンポーネント管理コンポーネントが機能を実行するメモリ管理コンポーネントにつき説明する。
このメモリ管理コンポーネントは、▲１▼各コンポーネントで使用するメモリ領域の管理を行うメモリ割り当て機能、▲２▼電源ＯＮ又はダイナミックに初期化を行うメモリ初期化機能、▲３▼自己診断処理により、メモリ（ＲＡＭ，Ｆｌａｓｈ　ＲＯＭ）のチェックを行うメモリテスト機能を有するものである。
このようなメモリ管理を行うために、メモリ管理コンポーネントは、▲１▼ＲＡＭ全メモリサイズ、▲２▼ＲＡＭ　ＩＮＤＥＸ数、▲３▼ＲＡＭメモリＩＮＤＥＸ、▲４▼Ｆｌａｓｈ　ＲＯＭ全メモリサイズ、▲５▼Ｆｌａｓｈ
ＲＯＭＩＮＤＥＸ数、▲６▼Ｆｌａｓｈ　ＲＯＭメモリＩＮＤＥＸの管理データを適宜メモリ空間に保持する。尚、メモリＩＮＤＥＸは、各メモリモジュールの属性、割り当てたメモリの物理先頭アドレス、割り当てたメモリサイズを示すものである。
【００６０】
次に本発明では、第４の層のコンポーネントとして、遠隔診断機能、遠隔監視機能及びデータ配信機能を有するコンポーネントを構成することができる。
これらの機能は、センター側システムと複数の端末側システムを通信回線を介して接続して、センター側システムにより通信回線を介して端末側システムの遠隔処理を行う機能であり、端末側の機能と、センター側の機能の両方のコンポーネントを用いる。
【００６１】
これらの端末側の機能を有するコンポーネントを構成要素とした端末側システムと、センター側の機能を有するコンポーネントを構成要素としたセンター側システムを接続して構成することにより、▲１▼遠隔診断機能、▲２▼遠隔監視機能、▲３▼データ配信機能を実現することができる。
【００６２】
これらの機能を簡単に説明すると、まず遠隔診断機能では、端末側システムのシステム異常の診断と対処を、▲１▼端末の自己診断によるシステムチェック、▲２▼センターからの診断プログラムの送付によるチェック、▲３▼センターからの一定周期によるチェック等の処理により通信回線を介してセンター側システムにより行うことができる。
【００６３】
次に遠隔監視機能では、通信回線を介してのセンター側システムによる端末側システムの遠隔処理を、▲１▼センターによる端末の情報取得、▲２▼センターからの端末の操作、▲３▼センターによる端末のモニタ監視、▲４▼他の端末からセンターを介しての端末情報取得、▲５▼他の端末からセンターを介しての端末操作等の処理により行うことができる。
【００６４】
次にデータ配信機能では、通信回線を介してセンター側システムから、複数の端末側システムに、同時にニュース等のデータの配信を行うことができる。
【００６５】
これらのセンター側システムと端末側システムを接続する通信回線としては、家庭内におけるＬＡＮやインターネット等を利用することができ、家庭内における小規模のシステムから、階層的に接続された大規模なシステムまで、適宜に構築することができる。
【００６６】
上記センター側システムと端末側システムを接続してなるシステムの利用を、登録した者のみに限定する場合には、ユーザー番号や暗証番号等を用いた認証機能を含めれば良い。
【００６７】
次に図９は、以上の複数の各コンポーネントの集合により構成される本発明の制御プログラムを用いたコンピュータ応用システムのメモリマップの一例を示すものである。図の中央部の拡大したメモリマップに示されるように、制御プログラムを構成する各コンポーネントはＲＯＭの領域に順次割り付けられており、また図の左側の全体のマップに示されるように、ＲＡＭには各コンポーネントが使用する領域やシステム及びスタック用の領域が割り付けられている。更に図の右側の拡大したマップに示されるように、各コンポーネントは、コンポーネントヘッダーと適数のモジュールとから構成されると共に、各モジュールは、モジュールヘッダーとモジュール本体とから構成されている。
【００６８】
図１０は、本発明に係る通信機能を有するコンピュータ応用システムの一例として、ＯＳを有しない携帯電話を構成した例につき、電源ＯＮからアプリケーション起動までの制御の流れを経時的に表した説明図であり、また図１１は、その流れ図である。図１０中、左側の上下方向の欄は各コンポーネントを示しており、図中左側から右側に時間が経過するものとして、上側の左右方向の欄には時系列の各時点における動作に対応する時系列番号を記載している。そして経時的な動作の流れを矢印で示しており、矢印の根元又は先端が対応する欄により、コンポーネントとその動作を表している。
【００６９】
まず時系列１において電源ＯＮとされるとコンポーネント管理コンポーネントが起動してハードウエアに関する起動時処理を行う。この起動時処理は、上述したとおりＣＰＵの動作チェック、メモリのＲｅａｄ／Ｗｒｉｔｅが正常に行えるかのチェック、本発明の制御プログラムが記憶されたＲＯＭのサムチェック等である。この起動時処理の結果、正常であれば次の時系列２の処理に移行し、異常であればシステムを停止する。
【００７０】
時系列２において、コンポーネント管理コンポーネントは、システムを構成しているコンポーネントとモジュール全部のリストをテーブルとして登録する。尚、コンポーネントは、システムに必須のものとして、システムの起動前に予め登録されているスタティックなコンポーネントと、起動後に外部デバイスを介してロードされるコンポーネントがあり、コンポーネント管理コンポーネントは、これらの全てにつきリストを作成する。
尚、作成し、登録するテーブルは、▲１▼コンポーネントヘッダーの先頭アドレスのテーブル、▲２▼モジュールヘッダーの先頭アドレスのテーブル、▲３▼コンポーネントのリンクアドレスのテーブル及び▲４▼モジュールのリンクアドレスのテーブルである。
【００７１】
次いで時系列３では、時系列２で作成した▲１▼のテーブルのリストからＲＡＳ管理コンポーネントのコンポーネントヘッダーの先頭アドレス、即ちメモリ空間上の先頭位置を得て、ＲＡＳ管理コンポーネントのコンポーネントヘッダーにアクセスし、そのモジュールヘッダー定義から、ＲＡＳ管理のモジュールの先頭位置を得る。上述したように本発明では、コンポーネントヘッダーの構造を共通化しているため、このＲＡＳ管理のモジュールの先頭位置は、図４のコンポーネントヘッダーにおける項番１１の変数「ＭｏｄｕｌｅＩｎｄｅｘ［ｎ］」の内容から容易に得ることができる。
【００７２】
次いでコンポーネント管理コンポーネントは、ＲＡＳ管理のモジュールにアクセスしてモジュールの初期化ルーチン定義を読み取り、そのルーチンを実行する。上述したように本発明では、モジュールヘッダーの構造も共通化しているため、このモジュールの初期化ルーチンの先頭アドレスは、図５のモジュールヘッダーの項番８の変数「ＭｏｄｕｌｅＩｎｉｔＥｎｔｒｙ」の内容から容易に得ることができる。
【００７３】
図１２は、このような時系列３におけるＲＡＳ管理コンポーネントの初期化動作の説明図であり、図中に示しているとおり、ＲＡＳ管理コンポーネントの初期化動作は、それを構成するモジュールが複数ある場合には、全てのモジュールに対して順次実行する。
【００７４】
次いで時系列４〜１２では、時系列３の動作と同様な動作により、上記▲１▼のテーブルに登録されている全てのコンポーネントの初期化を順次行う。例えば、時系列４では、時系列２で作成した▲１▼のテーブルのリストから「Ｄｉｓｐｌａｙ」コンポーネントのコンポーネントヘッダーの先頭アドレスを得て、「Ｄｉｓｐｌａｙ」コンポーネントのコンポーネントヘッダーにアクセスし、その項番１１の変数「ＭｏｄｕｌｅＩｎｄｅｘ［ｎ］」から「Ｄｉｓｐｌａｙ」コンポーネントのモジュールの先頭位置を得る。
次いで、コンポーネント管理コンポーネントは、「Ｄｉｓｐｌａｙ」コンポーネントのモジュールにアクセスして、図５のモジュールヘッダーの項番８の変数「ＭｏｄｕｌｅＩｎｉｔＥｎｔｒｙ」の内容からモジュールの初期化ルーチン定義を読み取り、そのルーチンを実行する。
【００７５】
同様にして時系列５〜１２を経て、「Ｋｅｙ」，「Ｃｏｍｍｕｎｉｃａｔｉｏｎ」，「Ｓｏｕｎｄ」，「Ｍｉｃ」，「Ｐｒｏｔｏｃｏｌ」，「Ｕｔｉｌｉｔｙ」，「Ｂｏｏｔ　Ｌｏａｄｅｒ」，「Ａｐｐｌｉｃａｔｉｏｎ」の各コンポーネントが初期化される。
【００７６】
尚、以上の時系列４〜１２における初期化処理は、第１，第２の層のモジュールを要素として有するコンポーネントを起動して初期化を行う、いわば仮の初期化処理である。
【００７７】
次いで時系列１３〜１７では、上述した図５の下部の表の初期化１先頭アドレスに対応する情報を集めた初期化１リストに登録のある全コンポーネントの初期化を行う。この初期化処理は、各コンポーネント毎に、▲１▼初期化リストの最初のコンポーネントのアドレスを読み込むステップ、▲２▼読み込んだコンポーネントヘッダーの第１の層のヘッダー定義から、第１の層のモジュールヘッダーの先頭アドレスを得るステップ、第１の層のモジュールヘッダーから、初期化１のルーチン定義を読み取り、実行するステップを経て実行される。
【００７８】
次いで時系列１８〜２２では、上述した図５の下部の表の自己診断１先頭アドレスに対応する情報を集めた自己診断処理１リストに登録のある全コンポーネントに対する自己診断処理１を行う。この自己診断処理１は、各コンポーネント毎に、▲１▼処理１リストの最初のコンポーネントのアドレスを読み込むステップ、▲２▼読み込んだコンポーネントヘッダーの第１の層のヘッダー定義から、第１の層のモジュールヘッダーの先頭アドレスを得るステップ、第１の層のモジュールヘッダーから、自己診断処理１のルーチン定義、即ちルーチンの先頭アドレスを読み取り、実行するステップを経て実行される。
【００７９】
次いで時系列２３〜２７では、上述した図５の下部の表の自己診断２先頭アドレスに対応する情報を集めた自己診断処理２リストに登録のある全コンポーネントに対する自己診断処理２を行う。この自己診断処理２は、各コンポーネント毎に、▲１▼処理２リストの最初のコンポーネントのアドレスを読み込むステップ、▲２▼読み込んだコンポーネントヘッダーの第１の層のヘッダー定義から、第１の層のモジュールヘッダーの先頭アドレスを得るステップ、第１の層のモジュールヘッダーから、自己診断処理２のルーチン定義を読み取り、実行するステップを経て実行される。
【００８０】
次いで時系列２８〜３２では、上述した図５の下部の表の初期化２先頭アドレスに対応する情報を集めた初期化２リストに登録のある全コンポーネントの初期化を行う。この初期化処理は、各コンポーネント毎に、▲１▼初期化リストの最初のコンポーネントのアドレスを読み込むステップ、▲２▼読み込んだコンポーネントヘッダーの第１の層のヘッダー定義から、第１の層のモジュールヘッダーの先頭アドレスを得るステップ、第１の層のモジュールヘッダーから、初期化２のルーチン定義を読み取り、実行するステップを経て実行される。
【００８１】
以上の時系列１３〜３２までの処理の流れは、図１３に纏めて表している。
【００８２】
次に時系列３３ではブートローダーに処理を移行して、このブートローダーの動作により各種アプリケーションをメモリ上に読み込んで、その実行が行われる。
【００８３】
以上は、本発明に係る通信機能を有するコンピュータ応用システムの一例として、ＯＳを有しない携帯電話を構成した例につき説明したが、本発明のコンピュータ応用システムは、以下に示すような各種の機器の制御プログラムを構成することができるものである。
【００８４】
まず図１４は、初期化、ブートローダー等の基本的な機能を有するコンポーネントに加え、温度センサー等を使用するためのＤｉｇｉｔａｌ　Ｉ／Ｏ機能を発揮させるＤＩＯコンポーネントと、リモコンとの通信を行わせるためのセンターコントロール（端末側）機能を発揮させるＣｏｍｍｕｎｉｃａｔｉｏｎコンポーネントと、各機器との接続を行うための機能を発揮させるＥａｔｈｅｒｎｅｔ（登録商標）コンポーネントを構成要素として、エアーコンディショナーとしての機能の他、家庭内の他の家電製品等とＬＡＮで接続することを想定した空調機を構成した例である。
【００８５】
次に図１５は、家庭内の家電製品をＬＡＮで接続し、さらに外部のセンター側システムのＣｅｎｔｅｒ　Ｃｏｎｔｒｏｌの機能による遠隔操作を可能にすることを想定し、その場合の家庭内のＬＡＮの管理を行う機器として、ＨｏｍｅＣｏｎｔｒｏｌｌｅｒ機能を発揮する制御プログラムを構成した例である。
この場合、Ｄｉｓｐｌａｙコンポーネントは、画面により、各機器の情報を表示することに対応し、タッチパネル等により、操作を可能とするために構成要素とし、またＥｔｈｅｒｎｅｔ（登録商標）コンポーネントは、各機器との接続を行うために、更にＵＳＢコンポーネントは、各部の機器としてＵＳＢデバイスに対応させるために構成要素としたものである。これらは必須の要素としており、その他、次のようなコンポーネントをオプションとして要素とすることができる。
【００８６】
即ち、Ｋｅｙコンポーネントは、操作パネルとしてのキースイッチに対応しており、ＭＩＣコンポーネントは、音声入力を行う場合に必要とする。この構成では、操作をする人に視覚障害がある場合等、音声入力による操作をメインにすることができる。更にＳｏｕｎｄコンポーネントは、音によるアクションの通知を行うもので、ＰＣＣａｒｄコンポーネントは、ログ情報等をダウンロードする等に必要となる要素である。
【００８７】
このような例に示すように、本発明は、各種のコンピュータ応用システムに必要な機能を、コンポーネント単位の選択によって行うことができるため、各種のコンピュータ応用システムの開発が容易であり、新機能の追加や新デバイスの追加変更等も容易に行うことができる。
【００８８】
そして本発明では、コンポーネントとモジュールの構造の共通化を図っているので、コンポーネント管理を行うコンポーネント管理コンポーネントは、その他の各コンポーネントの情報を円滑に読み出ことができ、読み出した情報から、システムの全コンポーネント及びモジュールの情報をテーブル化して一元管理することが可能となり、そしてテーブル化した情報から、現在どのコンポーネント（機能）がシステムに登録されているか、あるいはコンポーネント（機能）が使用可能な状態にあるかなどを常時確認できるようになり、コンポーネント単位の管理を実現できる。このため、あるコンポーネントの機能を、他のコンポーネントが使用したり、コンポーネントを動的に追加・解放することが容易となる。
【００８９】
【発明の効果】
本発明は以上のとおりであるので、次のような効果がある。
ａ．本発明では、コンピュータ応用システムを構成する上で必要な制御プログラムを、電源ＯＮ時の起動処理に関する第１の層と、基本入出力に関する第２の層と、通信手順に関する第３の層と、ユーティリティープログラムに関する第４の層と、アプリケーションプログラムに関する第５の層に層分けして、夫々の層の機能を提供するコンポーネントの集合として構成し、そして夫々の各コンポーネントは共通構造としているため、管理が容易であり、その管理をコンポーネント管理コンポーネントにより行わせて、夫々のコンポーネントを統合して動作させることにより、コンピュータ応用システムを構築することができる。
ｂ．以上の各層の各機能は、コンポーネント単位で選択することができ、必要に応じてコンポーネントを選択することにより、必要最小限の簡単な構成のシステムから、多種多様な機能を盛り込んだ複雑なシステムまで、適宜のコンピュータ応用システムを容易に構築することができる。
ｃ．本発明においては、上述したとおり、コンポーネントは異なった層の複数のモジュールを要素として、複数の層に渡った機能を発揮させることができるが、モジュールについては、複数の層に渡った機能を発揮させる構成とはしないことと、あるモジュールを複数のコンポーネントで共有する構成としないことにより、モジュール化、コンポーネント化の効果を減殺しない。
ｄ．しかし、あるコンポーネントの要素であるモジュールの動作は、必要であればモジュール間インターフェースを介して他のコンポーネントから利用することができるため、資源の重複を低減することができる。
ｅ．こうして本発明では、コンピュータ応用システムに必要な機能を、コンポーネント単位の選択によって行うことができるため、開発も容易であり、新機能の追加や新デバイスの追加変更等も容易に行うことができる。
ｆ．本発明では、上記各層のコンポーネントのみを組み合わせて、ＯＳなしでコンピュータ応用システムを構築することができるが、必要に応じて第１の層と第２の層のコンポーネントの基で動作するように既存のＯＳを付加することができ、この場合には、ＯＳ上で動作するアプリケーションを利用することにより、既存のアプリケーションの有効利用を図ることができる。
ｇ．ユーティリティープログラムに関する第４の層のコンポーネントとして、遠隔診断機能、遠隔監視機能及びデータ配信機能を有するコンポーネントを構成すれば、本発明により構成したコンピュータ応用システム相互間の接続や、適所に構成した、ホストとしてのコンピュータ応用システムを介しての接続を行って、上記各機能を利用することができる。
ｈ．第１の層のモジュールを要素とするコンポーネントに対するＲＡＳ機能を管理するＲＡＳコンポーネント管理コンポーネントを構成することにより、各モジュールのＲＡＳ動作を管理することができ、このＲＡＳコンポーネント管理コンポーネントに、初起動からの稼働時間の積算手段を構成して、その積算した稼働時間が設定時間に達した際に、所定の信号を発して、ディスプレーに表示したり、音を発する等の動作を行うことができる。
ｉ．またＲＡＳコンポーネント管理コンポーネントに、初起動からのハードウエアの各部品の動作回数をカウントするカウント手段を構成して、ディスプレーに表示したり、音を発する等の動作を行うことができる。
【図面の簡単な説明】
【図１】本発明に係るコンピュータ応用システムの全体構成の一例を概念的に示す説明図である。
【図２】複数のモジュールを要素として構成したコンポーネントの構成をメモリ空間におけるバイナリイメージで模式的に表した説明図である。
【図３】複数のコンポーネントのメモリ空間における配置をバイナリイメージとして模式的に表した説明図である。
【図４】各コンポーネントに対して共通な構造を有するコンポーネントヘッダー部の構成を示す説明図である。
【図５】各コンポーネントの要素であるモジュールに共通なモジュールヘッダー部の構成を示す説明図である。
【図６】モジュール間インタフェースルーチンを示す構造体の一例図である。
【図７】標準的なコンピュータ応用システムにおいて、上記各層Ｌ１〜Ｌ５の各機能を実現するために構成した複数のコンポーネントの例を示す説明図である。
【図８】
コンポーネント管理コンポーネントによる電源ＯＮ処理の流れを示すフロー図である
【図９】複数の各コンポーネントの集合により構成される本発明の制御プログラムを用いたコンピュータ応用システムのメモリマップの一例を示すものである。
【図１０】本発明に係る通信機能を有するコンピュータ応用システムの一例として、ＯＳを有しない携帯電話を構成した例につき、電源ＯＮからアプリケーション起動までの制御の流れを経時的に表した説明図である。
【図１１】図１０の制御の流れを示す流れ図である。
【図１２】図１０の時系列３におけるＲＡＳ管理コンポーネントの初期化動作の説明図である。
【図１３】図１０の時系列１３〜３２までの処理の流れを纏めて表した説明図である。
【図１４】本発明に係る通信機能を有するコンピュータ応用システムの他の例を示す説明図である。
【図１５】本発明に係る通信機能を有するコンピュータ応用システムの更に他の例を示す説明図である。
【符号の説明】
Ｈ，ｈ　　　　　　ハードウエア
Ｌ１〜Ｌ５　　　　層
Ｃ１〜Ｃ１２　　　コンポーネント
ｍ１〜ｍ１７　　　モジュール
【図１】
2004030214.tif 000003
【図２】
2004030214.tif 000004
【図３】
2004030214.tif 000005
【図４】
2004030214.tif 000006
【図５】
2004030214.tif 000007
【図６】
2004030214.tif 000008
【図７】
2004030214.tif 000009
【図８】
2004030214.tif 000010
【図９】
2004030214.tif 000011
【図１０】
2004030214.tif 000012
【図１１】
2004030214.tif 000013
【図１２】
2004030214.tif 000014
【図１３】
2004030214.tif 000015
【図１４】
2004030214.tif 000016
【図１５】
2004030214.tif 000017