(57)【要約】      （修正有）【課題】限られた記憶容量の組込型システムであっても、サービスをより大きなコンピュータシステムの間に分散させ、多くの機能および能力を持てるようにする。【解決手段】組込型コンピュータに実装された基本オブジェクト６４と、ホストコンピュータに実装されたデバイスオブジェクト６６とを備え、基本オブジェクト６４は、メソッドと属性の少なくとも一方のセットを定義する基本クラスのインスタンス化である。また、デバイスオブジェクト６６は、基本クラスのサブクラスであるデバイスクラスのインスタンス化であり、基本クラスのメソッドのセットを継承する。また、基本クラスのメソッドと属性の少なくとも一方のセットへのアクセスは組込型コンピュータとの通信を介して行われ、デバイスクラスは、デバイス固有のメソッドと属性の少なくとも一方によって基本クラスを拡張する。【選択図】図４
2006120171.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータと、デバイスと電子的通信を行う第２のコンピュータとを含むネットワークコンピュータシステムであって、
前記第１のコンピュータに実装された第１のオブジェクトと、
前記第２のコンピュータに実装された第２オブジェクトとを備え、
前記第１オブジェクトは、メソッドと属性の少なくとも一方のセットを定義する基本クラスのインスタンス化であり、
前記第２オブジェクトは、基本クラスのサブクラスであるデバイスクラスのインスタンス化であり、基本クラスのメソッドと属性の少なくとも一方のセットを継承し、
基本クラスのメソッドと属性の少なくとも一方のセットへのアクセスは第１のコンピュータを介して行われ、
前記デバイスクラスは、デバイス固有のメソッドと属性の少なくとも一方によって基本クラスを拡張すること
を特徴とするネットワークコンピュータシステム。
【請求項２】
請求項１に記載のネットワークコンピュータシステムであって、
前記第１のコンピュータに実装された第３のオブジェクトを備え、
前記第３のオブジェクトは、前記デバイスクラスのサブクラスであるデバイス拡張クラスのインスタンス化であり、デバイスクラスを介して基本クラスのメソッドと属性の少なくとも一方のセットを継承し、
デバイス拡張クラスは、デバイスクラスのメソッドと属性の少なくとも一方のセットを変更することによりデバイスクラスを改訂し、拡張デバイス固有のメソッドと属性の少なくとも一方を付加すること
を特徴とするネットワークコンピュータシステム。
【請求項３】
請求項１又は請求項２に記載のネットワークコンピュータシステムであって、
前記第２のコンピュータは所定のサービスの情報を有するサービスリストを備えることを特徴とするネットワークコンピュータシステム。
【請求項４】
請求項３に記載のネットワークコンピュータシステムであって、
前記第１のコンピュータは前記所定のサービスのサブセットであるエキスポートされたサービスの一覧を備えることを特徴とするネットワークコンピュータシステム。
【請求項５】
請求項３又は請求項４に記載のネットワークコンピュータシステムであって、
前記サービスリストは機能の識別子と当該機能と関連づけられたデータタイプに関する情報を有することを特徴とするネットワークコンピュータシステム。
【請求項６】
請求項３乃至請求項５のうち、いずれか１項に記載のネットワークコンピュータシステムであって、
前記サービスリストは変数の識別子と当該変数のデータタイプに関する情報を有することを特徴とするネットワークコンピュータシステム。
【請求項７】
請求項３乃至請求項６のうち、いずれか１項に記載のネットワークコンピュータシステムであって、
前記サービスリストはイベントの識別子に関する情報を有することを特徴とするネットワークコンピュータシステム。
【請求項８】
請求項３乃至請求項７のうち、いずれか１項に記載のネットワークコンピュータシステムであって、
前記サービスリストはファイルの識別子に関する情報を有することを特徴とするネットワークコンピュータシステム。
【請求項９】
請求項１乃至請求項８のうち、いずれか１項に記載のネットワークコンピュータシステムであって、
前記メソッドと属性の少なくとも一方のセットは複数のデバイスと関連していることを特徴とするネットワークコンピュータシステム。
【請求項１０】
請求項１乃至請求項９のうち、いずれか１項に記載のネットワークコンピュータシステムであって、
前記第２のコンピュータは組込型コンピュータであることを特徴とするネットワークコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータソフトウェアに係わり、更に詳細にはコンピュータソフトウェアおよびデータをコンピュータネットワークを介して分散するためのネットワークコンピュータシステムに関する。
【背景技術】
【０００２】
近年、日常生活に含まれているコンピュータ技術が大幅に増大している。今日の世界でコンピュータ技術は個人の日常の多くの局面に含まれている。消費者によって今日使用されている多くの機器は、その機器の内部に小型コンピュータを有している。これらの小型コンピュータはサイズおよび複雑さの程度が種々異なっている。これらの小型コンピュータは１つのマイクロ・コントローラから全機能完全コンピュータシステムまでの全てを含む。例えば、これらの小型コンピュータは、マイクロ・コントローラの様なワンチップ・コンピュータ、制御装置の様なワンボード型コンピュータ、ＩＢＭ−ＰＣ互換の様な典型的なデスクトップコンピュータである。
【０００３】
小型コンピュータは、（コンピュータが適合する個別の必要に応じて、大型コンピュータの場合も有りうる）、ほとんど常にそのコンピュータの心臓部に１つまたは複数のプロセッサを有する。これら１つまたは複数のプロセッサは通常異なる外部入力および出力に相互接続されており、個々の機器を管理するように機能する。例えば、清涼飲料缶の自動販売機内のプロセッサは缶を選択する為に使用されるボタン、缶を使用者に落下させることの出来るスイッチ、および個々の種類の缶が売り切れであることを表示するための電灯に接続されている。
【０００４】
コンピュータ技術は日常生活の多くの局面に含まれている。多くの器具、装置等は１つまたは複数の小型コンピュータを含む。例えば、冷蔵庫、電話機、タイプライタ、自動車、自動販売機、および多くの異なる型式の工業機器の全ては小型コンピュータ、またはプロセッサをそれらの内部に有する。コンピュータソフトウェアがこれらのコンピュータのプロセッサを駆動し、そのプロセッサに対して或るタスクを遂行するために何をなすべきかを伝える。例えば、自動販売機内のプロセッサ上で動作するコンピュータソフトウェアは、使用者により貨幣が正しく投入された時に使用者に対して清涼飲料缶が落下される。
【０００５】
装置、器具、道具などの一部であるこれらの型式の小型コンピュータは、しばしば組込型システムと呼ばれる。「組込型システム」という用語は通常、より大きなシステムの一部であるコンピュータハードウェアおよびソフトウェアを指す。組込型システムは通常典型的な入力および出力装置、例えばキーボード、マウスおよびモニタまたはそのいずれも持たない。通常、各々の組込型システムの心臓部には１つまたは複数のプロセッサが存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
典型的に今日種々の器具、装置等で使用されている組込型システムは、多量の記憶容量を有していない。その結果、組込型システム上に格納できるデータ量は制限される。限られた記憶容量のみでは、組込型システムはそれがより多くの利用可能な記憶容量を有していれば実行できるはずの多くの機能および能力を持つことは出来ない。
【０００７】
組込型システムの中にはコンピュータネットワークに接続されて、その組込型システムとより大きなコンピュータシステムとの間の通信を可能としているものもある。しかしながら、しばしば組込型システムには他のコンピュータシステムと効果的かつ効率的に通信するための機能が具備されていないため、その通信能力は通常限られたものである。
【０００８】
組込型システム上でのメモリ資源に制約があるため、しばしばコンピュータネットワークから組込型システムへは限られた相互作用のみが可能である。この相互作用はしばしばその使用が限定されており、それは組込型システムの異なる部分との通信が困難なためである。
【０００９】
以上に鑑み、本発明の第１の目的は組込型システムのサービスをより大きなコンピュータシステムの間に分散させることである。
【００１０】
組込型システムの機能を増加させることもまた本発明の１つの目的である。
【００１１】
更に、組込型システムに関連するデータの有効記憶容量を増加させることも本発明の１つの目的である。
【００１２】
組込型システムの通信能力を増加させることもまた１つの目的である。
【００１３】
より大きなコンピュータシステムの組込型システムへの相互作用およびインタフェース能力を強化する事も本発明の更なる目的である。
【課題を解決するための手段】
【００１４】
上記の目的と一致し、実現されまた此処に広く説明された本発明に基づく、ホストコンピュータおよびリモートコンピュータとを含み、此処でリモートコンピュータがデバイスと電子通信を行っているネットワーク化されたコンピュータシステム内で使用される方法および装置が本発明の１つの実施例の中で開示されており、これはホストコンピュータ上に実現されかつ格納されている第１メンバーコンポーネントと、ホストコンピュータ上に実現されかつ格納されている第２メンバーコンポーネントとを含む。第２メンバーコンポーネントはリモートコンピュータと電子通信を行い、また第２メンバーコンポーネントはリモートコンピュータ上のデータにアクセスするように機能する。
【００１５】
本発明の１つの実施例に基づき製造された１つの装置は、オブジェクト階層の１部として分散型オブジェクトを含む。このオブジェクト階層は、メンバーデータを含みリモートコンピュータの組に共通な機能を含む基本クラスを含み、此処でこの基本クラスはホストコンピュータ上で実現され格納されている。オブジェクト階層はまた、基本クラスから導出された第１サブクラスを含む。この第１サブクラスはホストコンピュータ上で実現されまた格納されている。この第１サブクラスはリモートコンピュータと電子通信を行う第２メンバーコンポーネントを含む。オブジェクト階層はまたそのオブジェクトの機能を変換する第２サブクラスも含む。
【００１６】
本発明の１つの実施例に基づき実施された方法は下記のステップを含む、すなわちアプリケーションコードをリモートコンピュータに与え、此処でそのアプリケーションコードはデバイスに関連するサービスを提供する。サービスの項目目録をホストコンピュータにエクスポートし、此処で項目目録はサービスの副集合である。サービスの項目目録をカプセル化する。そしてサービスのカプセル化を通してリモートコンピュータでサービスに接続する。この方法はまたサービスリストをリモートコンピュータ上に生成するステップを含む場合もあり、此処でこのリストはある種のサービスに関する情報を含む。
【発明を実施するための最良の形態】
【００１７】
本発明の先に説明した目的および特徴ならびにその他の目的および特徴は、添付図と共になされる下記の説明および添付の特許請求項から更に完全に明らかとなるであろう。これらの図面は本発明の典型的な実施例のみを表しており、従ってその範囲を制限するものと考えられるべきではないことを理解されたい、本発明の更なる仕様および詳細を添付図を用いて説明する。
【００１８】
添付図の中に一般的に説明され図示されている本発明の構成要素は、多くの種類の異なる構成で配置および設計できることは容易に理解されよう。従って図１から図７の中に表されている本発明のシステムおよび方法の実施例の以下の更に詳細な説明は、特許請求されている本発明の範囲を制限することは意図しておらず、本発明の提案されている好適な実施例を単に表しているだけである。
【００１９】
本発明の提案されている好適な実施例は添付図を参照することによりもっとも良く理解されるであろう、此処で全体を通して同様の部品は同様の番号で示されている。
【００２０】
図１は本発明の提案されている好適な実施例の中で典型的に使用される主要ハードウェア構成要素を図示するブロック図である。今回提案されている好適な実施例の中で、本発明はネットワークコンピュータシステム１０の中で使用されており、此処でホストコンピュータ１２が組込型装置１４に接続されている。典型的に組込型装置１４は入力および出力装置１８，２０に接続されたコンピュータ１６を含む。今回提案されている好適な実施例内のコンピュータ１６は、組込型コンピュータ１６である。特に今回提案されている好適な実施例では、コンピュータ１６はマイクロ制御装置（図示せず）を含む。しかしながら当業者には理解されるように、マイクロ制御装置で通常実行される機能および処理はより大きなプロセッサ、それらがより大きな制御装置の一部または典型的なコンピュータシステムの一部にかかわらず実行可能である。組込型コンピュータ１６はホストコンピュータ１２から離れており、組込型コンピュータ１６およびホストコンピュータ１２は各々それ自身で機能することの出来るコンピュータである。離れていると言う言葉は組込型コンピュータ１６がホストコンピュータ１２と異なる場所であることを意味する必要はないが、本発明の多くの実施例においてホストコンピュータ１２は組込型コンピュータ１６と異なる場所にある。此処では組込型コンピュータ１６とリモートコンピュータ１６とは互換的に使用されている。リモートコンピュータ１６に格納およびそこで実行されるようにいずれかで説明されている要素は、場合によってはホストコンピュータ１２に格納および実行されるまたはそのいずれも可能である。
【００２１】
本発明は多くの種類のコンピュータネットワーク１０に対して広範なアプリケーションを有する。一般的に本発明の今回提案されている好適な実施例が実施されているコンピュータシステム１０はまた、組込型装置１４を監視および制御またはそのいずれかを実行するための１つまたは複数のクライアントコンピュータを含む。リモートコンピュータ１６は、このリモートコンピュータ１６と電子的通信をすることのできる入力および出力またはそのいずれかの装置１８，２０と動作可能なように接続されている、または言葉を代えると電気信号の形式で入力および出力またはそのいずれかを実行することの可能な装置１８，２０に動作可能なように接続されている。場合によっては入力および出力装置１８，２０およびリモートコンピュータ１６は共に同一の物理構造内に格納されている。
【００２２】
ホストコンピュータ１２およびリモートコンピュータ１６は共に広く定義されたディジタルコンピュータである。此処で使用されるコンピュータは、データを受信し処理することの可能なディジタルプロセッサを含む任意の装置である。コンピュータは、マイクロ制御装置、携帯型コンピュータ、パーソナルコンピュータ、サーバ、メインフレーム、スーパーコンピュータ、およびそれらの装置に関する全ての変形を含む広い範囲のディジタルコンピュータを含む。
【００２３】
入力および出力装置１８，２０は電子信号を受信および発生することまたはそのいずれかが出来る任意の構成部品、要素、機構、器具または同様のものを含む。デバイスという用語の範囲内のデバイスの例として、自動販売機、電話機、扉錠、温度センサー、モータ、スイッチおよび電灯を含む。
【００２４】
現設計ではホストコンピュータ１２は典型的に、マイクロソフトWindows９５（登録商標）または９８オペレーティングシステムが走るＩＢＭ（登録商標）互換パーソナルコンピュータである。リモートコンピュータ１６は典型的に組込型プロセッサ（図示せず）を含み、また先に説明したようにしばしばマイクロ制御装置を含む。装置１８，２０はプロセッサがそれとインタフェースおよび相互作用が出来る電子式インタフェースを備えた任意の装置で構わない。本発明と共に使用される可能性のある１つの品目は自動販売機（図示せず）である。多くの自動販売機は、その自動販売機の異なる部品を制御するための１つまたは複数のマイクロ制御装置を含む。これらのマイクロ制御装置はリモートコンピュータ１６の範囲に入る。入力および出力装置１８，２０は自動販売機から品物を選択するためのボタン、それらの品物が使用者に落下出来るようにするためのスイッチ、どの品物が売り切れているかを表示するための電灯、任意の小銭を返却するための小銭返却器等を含む。当業分野で知られているように、この自動販売機実施例は同一構造の中に統合された入力および出力装置１８，２０およびリモートコンピュータ１６を含む。従って本発明はその様な環境で実施される場合もある。当業者であれば、リモートコンピュータ１６がそれに付属する入力および出力装置１８，２０とは別の構造である場合も理解されよう。多くの最新式デバイスは組込型マイクロ制御装置を取り込むようになっており、例えば多くのセルラ電話機、ページャー、および類似品は組込型マイクロ制御装置を含んでいる。
【００２５】
ホストコンピュータ１２はリモートコンピュータ１６に、ＲＳ２３２，ＲＳ４８５、モデム、電力線、有線接続、無線接続等を含む種々の接続を通して接続される。同様に、リモートコンピュータ１６は種々の入力および出力装置１８，２０に種々の方法を通して接続される。先に述べたように、典型的にリモートコンピュータ１６はマイクロ制御装置（図示せず）を含む。マイクロ制御装置はしばしば外部装置と通信を行うための入力／出力ポートを有する。個別のマイクロ制御装置のこれらの仕様は、しばしば装置がどの様にしてマイクロ制御装置に接続されるかを表している。当業者であれば、異なる装置がどの様にしてコンピュータ接続されるかを、それらが組込型コンピュータ、標準デスクトップコンピュータ、メインフレーム等に拘わらず理解できるであろう。
【００２６】
先に述べたようにクライアントコンピュータ２２がまたコンピュータシステム１０に含まれる場合もある。その様な構成は使用者がリモートコンピュータ１４のサービスに、たとえ遠距離であってもホストコンピュータ１２を通してアクセス出来るようにする。ホストコンピュータ１２およびクライアントコンピュータ２２は全て、例えばＬＡＮ，ＷＡＮ等のコンピュータネットワーク２４上で互いに接続される。加えて、クライアントコンピュータ２２は遠隔地からホストコンピュータ１２に、ダイアルアップ接続経由、イントラネット経由、またはインターネット経由で接続する。
【００２７】
図２は本発明の今回提案されている好適な実施例の主要ハードウェアおよびソフトウェア構成要素のブロック図を表す。図示されるように、図２のハードウェア構成要素は図１のそれらと相関している。当業者に理解されるように、種々のハードウェア構成要素を相互接続するための種々の方法が存在し、また機能を１つのハードウェア要素から別のものに移動させることにより１つまたは複数のハードウェア要素を削除する種々の構成が存在する。
【００２８】
本発明は使用者がホストコンピュータ１２を通して組込型コンピュータ１６により提供されるサービスを監視および制御またはいずれかを実行できるようにする。組込型コンピュータ１６のサービスは、本発明ではそれらがコンピュータネットワーク１０を介してまた効率的な方法でアクセス出来るように露わにされている。
【００２９】
本発明の今回提案されている好適な実施例では、入力および出力装置１８，２０からのデータは入力／出力ポート２６を通して読み込みおよび書き込みまたはいずれかが実行される。組込型アプリケーションプログラム２８は、これらの入力および出力またはそのいずれかのポート２６と直接インタフェースする実行可能命令を含む。組込型アプリケーション２８は主ループを有し、これは何度も繰り返される。もちろん、組込型アプリケーション開発者は連続的に繰り返される主ループを有さない１つのアプリケーションを記述するはずである。本発明の原理は主ループを持たないアプリケーションに適用され、今回提案されている好適な実施例の中で実現されているものとほぼ同じ利益を提供する。
【００３０】
組込型またはリモートコンピュータ１６、その特性および性能に関する基本情報は本発明を実施する上で有益である。その様な基本情報はリモートコンピュータ１６の性能表３０の中に格納される。性能表３０はファイルとして格納されたり、または性能表３０はアプリケーション２８と共にコンパイルされる静的データとして格納されたり、または性能表３０はリモートコンピュータ１６の外部の格納装置（図示せず）上に格納されることも可能である。当業者に理解されるように、リモートコンピュータ１６の基本性能およびそれが接続される入力および出力装置１８，２０を格納するための種々の方法が存在する。表１は性能表３０の中にどの様な型式の情報が格納されるかを図示する疑似コードを含む。
【表１】
2006120171.tif 000003
【００３１】
表１に図示されているように、性能表は行（１Ａ）に示されるバイト順序形式の指示を含む。このバイト順序形式（１Ａ）はリモートまたは組込型コンピュータ１６がビッグインディアンかまたはリトルインディアンのいずれであるかを示す。この表はまた、行（１Ｂ）にどのデバイス識別子がその特定のリモートまたは組込型コンピュータ１６に対するものであるかをも示す。必要に応じて装置アドレスが、性能表３０内の行（１Ｃ）に示される。互換性の目的で使用されているソフトウェアに関するバージョン番号が、行（１Ｄ）に示されるように格納される。同様に通信プロトコルバージョン番号が、行（１Ｅ）に示されるように格納される。通信に関する個別事項もまた格納される。例えば、表１に示されるように最大通信パケットサイズが、行（１Ｅ）に示されるように格納される。行（１Ｇ）に示される不揮発格納装置フラグは、不揮発格納装置がリモートコンピュータ１６によってアクセス可能か否かを示す。不揮発格納装置に関する情報、例えば不揮発格納装置サイズおよびその開始アドレスも、行（１Ｈ）に示されるように格納される。静的ファイルシステムフラグは、行（１Ｉ）に示されるように、静的ファイルシステムが存在するか否かを示す。同様に動的ファイルシステムフラグは、行（１Ｊ）に示されるように動的ファイルシステムが存在するか否かを示す。性能表３０はホストコンピュータ１２のソフトウェアが性能表３０を要求して組込型コンピュータ１６の特性および性能を確認することが出来るので有用である。
【００３２】
使用者はクライアントコンピュータ２２およびホストコンピュータ１２またはいずれで動作するソフトウェアを通して、リモート組込型コンピュータ１６で提供される或るサービスにアクセスしたいと所望するはずである。複数のサービスは異なる機能、変数、イベント、およびファイルまたはいずれかを含む。例えば、使用者は特定機能の実行、或る変数へのアクセス、指定されたイベントのチェック、または特定ファイルへのアクセスを所望する場合がある。現設計では、使用者がアクセスする必要のあるサービスが識別されてリストに上げられている。サービスの識別子もまた或るサービスに関する情報を含む。或るサービスのこの識別子は種々の方法で実現されるであろう。例えば、現設計ではサービス表３２がリモートコンピュータ１６に格納される。サービス表３２はファイルとして格納されるか、またはアプリケーションと一緒にコンパイルされる静的データとして格納されるか、またはリモートコンピュータ１６外部の格納装置（図示せず）上に格納される場合もある。当業者に理解されるように、リモートコンピュータ１６上で動作するアプリケーションコード２８で提供される、或るサービスに関する基本情報を格納するための方法は種々存在する。表２はどの型式の情報がサービス表３２内に格納されているかを図示する疑似コードを含む。
【表２】
2006120171.tif 000004
【００３３】
表２に図示されるように、サービス表３２はサービスの名称または識別子、サービスの型式（例えばそれが、機能、変数、イベント、ファイル等のいずれであるか）、必要に応じて入力パラメータ型式、必要に応じてリターン型式、およびサービスのアドレスの様な情報を含む。行（２Ａ）に示されるように、機能 FunctionA に関する情報は、これが機能であり、入力パラメータとしてワードを必要とし、それは何もリターンせず（void）またそのアドレスが &FunctionA に示されていることを示している。行（２Ｂ）は別の機能, FunctionB に関する情報を図示している。変数に関連する情報は行（２Ｃ）−（２Ｄ）に図示されている。イベントに関する情報は（２Ｅ）−（２Ｆ）に図示されている。イベントは任意の型式のデータである。例えば、１つのイベントは変数、個別のレジスタ、割り込み等が考えられる。イベントは特に非同期で発生する項目に対して特に有用である。非同期型式のイベントの例は、外部への警報または外部ＬＥＤの変化を含む。或るファイルに関する情報は行（２Ｇ）および（２Ｈ）に図示されている。
【００３４】
或るサービスに関する情報をリモートコンピュータ１６に格納することにより、ホストコンピュータ１２上のソフトウェアはどの様なサービスがリモートコンピュータ１６で利用できるかを容易に確認できる。サービス表３２はあるサービスに関する情報を提供するように機能し、此処でその情報はホストコンピュータ１２の使用者、またはそこに接続されているクライアントコンピュータ２２の使用者に有益なものである。
【００３５】
現設計では、組込型インタフェースモジュール３４は、リモートコンピュータ１６でのサービスとホストコンピュータ１２で動作するソフトウェアとの間のアクセスを提供する。今回提案されている好適な実施例では、インタフェースモジュール３４はリモートコンピュータ１６上の所望のサービスへアクセスするために、サービス表３２内の情報を使用する。更に、今回提案されている好適な実施例では、インタフェースモジュール３４は再入可能コードである。
【００３６】
インタフェースモジュール３４は組込型通信ポート３６を通して通信する。現設計では、通信モジュール３８は通信ポート３６を使用した通信を提供する。しかしながら当業者に理解されるように、インタフェースモジュール３４はリモートコンピュータ１６の通信ポート３６と直接インタフェースするのに必要なコードを含むことも可能である。通信モジュール３８またはコード３８は通信ポート３６へのアクセスを提供し、データが通信ポート３６に対して適切なサイズでフォーマットされたまとまりで与えられ、通信ポート３６から受信されたデータがポート３６から正しく読みとれるように保証する。
【００３７】
ホストコンピュータ１２は、リモートコンピュータ１６の通信ポート３６と電子的通信を行う通信ポート４０を含む。先に説明したように、リモートおよび組込型またはいずれかのコンピュータポート３６とインタフェースすることの出来るコンピュータで利用可能なその様なポートは色々存在する。通信モジュール４２はリモートコンピュータ１６の通信モジュール３８で提供されるものと同様な機能を提供する。通信モジュール４２は通信ポート４０に書き込まれまたそこから読み出されるデータを正しくフォーマット化する。
【００３８】
ホストコンピュータ１２は組込型コンピュータ１６で提供されるサービスへのアクセスを提供する。本発明の今回提案されている好適な実施例では、サービス表３２が組込型コンピュータ１６からリトリーブされ、そこからサービスのリストがホストコンピュータ１２で生成され、それはサービス表３２にほぼ対応するものである。ホストコンピュータ１２のサービスのリスト図２ではエキスポートされたサービス情報４４として参照されている。エキスポートされたサービス情報４４はどのサービスがリモートコンピュータ１６で利用可能であるか、また必要であればどのデータ型式が個々のサービスで使用されているかを示す。これはホストコンピュータ１２を経由してリモートまたは組込型コンピュータ１６へのアクセスを容易にする。
【００３９】
現設計では、処理工程はホストコンピュータ１２上で最初開始され、これはエキスポートされたサービス情報４４を生成させる。現設計ではデバイスアクセス制御装置４６がこの初期指令を与える。
【００４０】
先に述べたように、本発明の今回提案されている好適な実施例は、組込型コンピュータ１６のサービスへのアクセスを、ホストコンピュータ１２と電子的に通信しているクライアントコンピュータ２２に提供する。クライアントコンピュータ２２によるアクセスを容易にするために、ホストコンピュータ１２はサーバーを含む場合もある。ウェブサーバー４８はホストコンピュータ１２で開始される。ウェブサーバー４８はリモートコンピュータ１６に於けるサービスへのウェブインタフェースを提供する。例えば、リモートコンピュータ１６のデータおよびサービスまたはいずれかはＨＴＭＬページを通してグラフィック的に表現される。従って、デバイスアクセス制御装置４６はウェブページ（図示せず）をリモートコンピュータ１６で利用可能なサービスから生成し、ウェブサーバー４８はこれらのウェブページに対するＨＴＴＰ要求のサービスを行う。
【００４１】
デバイスアクセスサーバ５０もまた、リモートコンピュータ１６のサービスに対するクライアント要求のサービスを行うためにホストコンピュータ１２に含まれる。現設計ではデバイスアクセスサーバ５０はエキスポートされたサービス情報４４にアクセスし、この情報がクライアントコンピュータ２２のクライアントで利用できるようにする。
【００４２】
クライアントコンピュータ２２はクライアントアプリケーション５２とデバイスアクセスクライアント５４を含む。デバイスアクセスクライアント５４はリモートコンピュータ１６のサービスにアクセスするためにデバイスアクセスサーバ５０と通信を行う。クライアントアプリケーション５２はそのサービスに関する情報を得るためにデバイスアクセスクライアント５４を使用する。クライアントアプリケーション５２はまたホストコンピュータ１２に配置されているウェブサーバー４８からのデータにもアクセスできる。例えば、クライアントアプリケーション５２はウェブサーバー４８に接続可能なウェブブラウザである。
【００４３】
図３を参照すると、本発明の今回提案されている好適な実施例がオブジェクトによる実現として示されており、これによりエキスポートされたサービス情報がカプセル化される。本発明の使用者はリモートコンピュータ１６のサービスのリストをホストコンピュータ１２のソフトウェアオブジェクト５６を使用してカプセル化できる。本発明の今回提案されている好適な実施例のオブジェクト５６はホストコンピュータ１２上に格納され実行される。オブジェクト５６はリモートコンピュータシステム１４の少なくとも一部のオブジェクト表現を提供し、此処でリモートコンピュータシステム１４はリモートコンピュータ１６とそれに接続された装置１８，２０の両方を含む。オブジェクト５６の一部は主としてリモートコンピュータ１６で提供されるサービスにアクセスするために使用される。オブジェクト５６をホストコンピュータ１２上で実現することにより、開発者にはオブジェクト指向分析および設計の多くの利益が、これらの利益を提供するためにリモートコンピュータ１６上の貴重な資源を使用することなく与えられる。現設計においては、リモートコンピュータ１６上に格納されるために必要な項目のみがリモートコンピュータ１６に格納される。もちろん、当業者に理解されるように、リモートコンピュータ１６がかなりな量のメモリへのアクセスを行う場合には、更に多くの項目がリモートコンピュータ１６に格納される。
【００４４】
オブジェクト５６はデータ構造の記述である。１つのオブジェクト５６は、此処で使用されるようにデータおよび機能またはいずれかをカプセル化した抽象的データ型式である。従って、当業者であれば、オブジェクト５６と等価なデータ構造を、ある種のプログラミング言語のオブジェクト指向機能を使用することなく実現することができる。特に、此処で使用されているオブジェクト５６はソフトウェア開発者がＣ＋＋またはSmalltalk の様なオブジェクト指向言語を使用することを要求しない。本発明の範囲に含まれるオブジェクト５６は、任意のプログラミング言語で実現できる。例えば、オブジェクト５６はＣ，Ｃ＋＋，Pascal,  FORTRAN、アセンブリー言語等で実現できる。現設計ではＣプログラミング言語が使用されている。
【００４５】
オブジェクト５６のメンバーコンポーネント（機能、変数、データ等、オブジェクト５６でカプセル化されているもの）がホストコンピュータ１２上に格納される。オブジェクト５６のメンバーコンポーネントは、メンバー機能またはメンバーデータのいずれかである。今回提案されている好適な実施例ではいくつかのメンバー機能、または方法、およびいくつかのデータメンバー、または属性がホストコンピュータ１２上に格納されている。メンバーコンポーネントは、オブジェクト５６のクラス定義で定義されるようにホストコンピュータ１２上に格納されているが、メンバーコンポーネントはリモートコンピュータ１６のサービスにアクセスする。オブジェクト５６はリモートコンピュータシステム１４の機能、変数、イベント、およびファイルまたはいずれかへのアクセスを提供する。
【００４６】
本発明の利益を提供するために、ホストコンピュータ１２上で実施され格納されているオブジェクト５６の少なくとも１つのメンバーコンポーネントが、リモートコンピュータ１６と電子的通信を行い、リモートコンピュータ１６上のデータにアクセスするために使用される。データへのアクセスはリモートコンピュータ１６からデータをリトリーブし、リモートコンピュータ１６に格納されているデータを変更するか、またはリモートコンピュータ１６上のコードを実行させる。
【００４７】
現設計では、オブジェクト５６は部分的に、リモートコンピュータ１６のデータ、機能およびイベントまたはそのいずれかをミラーするように機能する。オブジェクト５６はリモートコンピュータ１６のサービスに対応するデータおよび機能またはいずれかを含む。サービス表３２およびエキスポートされたサービス情報５８はオブジェクト５６がリモートコンピュータ１６のサービスを、ホストコンピュータ１２上で動作するソフトウェアおよびクライアントコンピュータ２２上で動作するソフトウェアまたはそのいずれかに関連づけるかまたは露わに提示することを可能とする。この様にして、リモートコンピュータ１６のデータおよび機能またはそのいずれかの一部はコンピュータネットワーク１０を通して分散される。今回提案されている好適な実施例では、必要なデータのみがリモートコンピュータ１６に格納され、またリモートコンピュータ１６上に格納される必要がある実行可能コードのみがリモートコンピュータ１６上に格納される。リモートコンピュータシステム１４を代表するデータおよび機能がリモートコンピュータ１６とホストコンピュータ１２との間で分散され、リモートコンピュータ１６で必要な資源を最小としている。オブジェクト５６はオブジェクト指向分析および設計の利益を開発者に提供し、またリモートコンピュータシステム１４の中に元から存在しているデータおよび機能へのアクセスを提供する。従って、オブジェクト５６で提供されるデータおよび機能はホストコンピュータ１２とリモートコンピュータシステム１４との間で分散されるが、それら全てはホストコンピュータ１２のオブジェクト５６を通してアクセス可能である。
【００４８】
本発明の今回提案されている好適な実施例では、オブジェクト５６はオブジェクト階層の一部である。オブジェクト階層を図４に関連して説明する。
【００４９】
図３と組み合わせて使用されるシステムは図２に示されるシステム１０とほぼ同様である。ホストコンピュータ１２のソフトウェアモジュールは、デバイスオブジェクト５６とオブジェクトローダ６０とを含むように修正変更される。
【００５０】
オブジェクトローダ６０はデバイスオブジェクト５６を生成する。下記の疑似コードの表およびそれに関連する説明は、デバイスオブジェクト５６とデバイスオブジェクトローダ６０の更なる詳細を与えるであろう。この表は疑似コードを実現するためのターゲット言語としてＣプログラミング言語で書かれた疑似コードを含む。当業者であれば理解されるように、ほとんど全てのプログラミング言語が本発明を実現するために使用できる。
【００５１】
今回提案されている好適な実施例では、デバイスオブジェクトローダ６０はデバイスオブジェクト５６の記述を行いオブジェクト５６のインスタンスを生成する。このインスタンスはそこに含まれるエキスポートされたサービス情報５８を含む。疑似コードの中で、デバイスオブジェクト５６のインスタンスはリモートコンピュータ１６から既にエキスポートされていてホストコンピュータ１２で利用可能な全てのサービスに関する表を含む。更に図４に関連して説明されるように、基本オブジェクトのサービスは、特定のオブジェクトがロードおよびインスタンス化またはいずれかにされると、その基本オブジェクトを継承するオブジェクトによってオーバーライドされる。
【００５２】
疑似コードの中で、オブジェクト階層は最初基本オブジェクトによりインスタンス化されるので、基本オブジェクトが初期化される第１オブジェクトである。デバイスオブジェクトローダ６０が、特定のデバイスオブジェクトインスタンスに対するデバイスオブジェクト５６の全てをローディングするというタスクを完了すると、その他のソフトウェア処理ルーチンで使用される準備が完了する。
【００５３】
表３はデバイスオブジェクト５６で使用されるデータ構造を図示する。図示されるように、ハッシュ表がエキスポートされたサービス情報５８を格納するための表として使用される。表３の疑似コードはまたエキスポートされたサービスの各々の型式に対する個別のハッシュ表を示し、これは変数、イベント、機能、およびファイルを含む。当業者であれば、どの様にしてハッシュ表、またはハッシングが実現されるかは理解されよう。
【表３】
2006120171.tif 000005
【００５４】
表４は１つの変数に対して実施される異なる機能を図示している。もちろん、同一型式の機能がイベント、機能、およびファイルに対して提供される場合もある。表４に図示されているものの原理は、図示されているようにイベント、機能、およびファイルと同様に種々の表に適用可能である。表３に図示されているように、ハッシュ表はまたエキスポートされたサービス情報５８を格納するために使用できる。表４は変数表内の各々の変数に対して提供されまた実施される異なった機能を示す疑似コードを含む。動作に際して、サービス表３２がホストコンピュータ１２にエキスポートされた後、続いてホストコンピュータ１２はエキスポートされたサービス情報５８をエキスポートする。エキスポートされたサービス情報５８は典型的に変数を含む。表４は、現設計ではホストコンピュータ１２上で動作するコードを図示し、これは変数値を獲得し、変数値を設定し、変数に関する情報を獲得し、その変数に同意する能力を与える。同一の能力が機能、イベント、およびファイルに関連して用意できる。
【表４】
2006120171.tif 000006
【００５５】
オブジェクトが最初に生成される際に、現設計ではデバイスオブジェクト５６が最初基本オブジェクトで満たされて開始される。疑似コード図示により、デバイスオブジェクト表内の各々のハッシュはそのオブジェクトのサービスで満たされる。基本オブジェクトが初期化されると、その変数の全てがVarServiceEntry内に配置される。従って、最終デバイスオブジェクト参照は基本オブジェクトVarServiceEntry表を含み、機能ポインタ、VarServiceを通して操作できる。今回提案されている好適な実施例では、表内のエントリーはVarServiceEntry表内の最終フラグがFALSEの時のみオーバーライド出来る。これは基本オブジェクトが、継承オブジェクトでオーバーライドする事の出来ないサービスを実施することを可能とする。サービスがオーバーライド出来る場合は、継承されたオブジェクトは新たな表を作成しそれをVarServiceTableの中に同一名称で挿入することによりオーバーライドできる。VarServiceEntry表内のNextEntryポインタは、オーバーライドされサービスが継承されるオブジェクトで更にアクセスされることを可能とする。利用可能なその他のフラグはProtectedおよびVirtualフラグである。Protectedフラグは、そのオブジェクトの所有者では無く、継承されたオブジェクトのみがこのサービスを使用できる場合にのみ真を示す。Virtualフラグはインタフェースがこのオブジェクトの中に実現されておらず、そのデバイスオブジェクトがインスタンス化されるために継承されたオブジェクトの中で実現されなければならないことを示す。
【００５６】
表５はオブジェクトローダ６０用の疑似コードを含む。オブジェクトローダ６０はオブジェクトのストリング定義を取得してそのオブジェクトを生成する。各オブジェクトの初期化ルーチンはそのサービスをデバイスオブジェクト表の中に配置する。オブジェクトローダ６０がオブジェクトのロードを完了した後、デバイスオブジェクト５６が生成され、リモートコンピュータ１６とその入力および出力装置１８，２０を含む、組込型システム１４を操作するために使用できる。言葉を変えると、デバイスオブジェクト５６が生成された後、それはリモートコンピュータ１６のサービスにアクセスするために使用できる。
【表５】
2006120171.tif 000007
【００５７】
デバイスアクセスサービス５０、ウェブサーバー４８、およびリモートコンピュータ１６またはそのいずれかのサービスにアクセスを必要としているその他ソフトウェアは、エキスポートされたサービス情報５８にアクセスするためにデバイスオブジェクト５６にアクセスするはずである。
【００５８】
オブジェクトを使用することで得られる利点は、サブクラスを使用することを通してバグ修正提供および拡張またはいずれかの機能が得られることである。図４は如何にしてオブジェクト階層６２を使用してリモートコンピュータ１６上にロードされたソフトウェアの能力拡張またはバグ修正提供を行うかを簡単に図示したものである。図４のオブジェクト階層６２において、基本オブジェクト６４はリモートコンピュータ１６の大規模グループに共通なデータおよび機能を含む。デバイスオブジェクト６６、基本オブジェクト６４からのサブクラスはリモートコンピュータ１６のより小さなグループ上に更に焦点を合わされており、更に詳細でリモートコンピュータ１６のより狭いセットに焦点を合わされているデータおよび機能またはそのいずれかを含む。図４に示されるように、デバイスオブジェクト６６は機能Ｄ，ＥおよびＦを含む。機能Ｄ，ＥおよびＦは全て実際の機能Ｄ，ＥおよびＦの単なる包含者であり、これらは全てリモートコンピュータ１６上に実現されている。機能Ｄ，ＥおよびＦは典型的に組込型アプリケーション２８のコードを通して実現される。機能Ｄ，ＥおよびＦとインタフェースするために必要な情報はエキスポートされたサービス情報の一部である。
【００５９】
オブジェクト指向手法の有用性を図示するために、リモートコンピュータ１６のコードを最初にリリースしてから一定時間後に、リモートコンピュータ１６で機能Ｄ，ＥおよびＦが変更されると仮定する。リモートコンピュータ１６で機能Ｄが追加エラーチェックを与えるために変更されたとする。機能Ｆは先のリリース内で発見されたバグを修正するために変更されたとする。本発明を使用することで、ホストコンピュータ１２のソフトウェアは、これらの修正をリモートコンピュータ１６ソフトウェアに、リモートコンピュータ１６上のコードを変更することなく追加するように実行出来る。
【００６０】
図４に示されるように、サブクラス、デバイス拡張オブジェクト６８はデバイスオブジェクト６６から導き出される。デバイス拡張オブジェクト６８はそれ自身の機能Ｄを含み、これはデバイスオブジェクト６６の機能Ｄをオーバーライドする。この新たな機能Ｄはリモートコンピュータ１６の機能Ｄへの全ての新たな変更を実現するためのコードを付加する。この例の中で、例えば新たな機能Ｄは追加エラーチェックを提供するコードを含むはずである。機能Ｄはまた、旧機能Ｄの元コードをも含むか、または単にデバイスオブジェクト機能Ｄを新たな機能Ｄコードを実行する前、実行中または実行後にコールするだけである。
【００６１】
デバイス拡張オブジェクト６８はまたそれ自身の機能Ｆを含み、これはデバイスオブジェクト６６の機能Ｆをオーバライドする。新たな機能Ｆはリモートコンピュータ１６の機能Ｆに全ての新たな変更を実行するためのコードを付加する。この例の中で、例えば、新たな機能Ｆはリモートコンピュータ１６上の先にリリースされたコードの中に発見されるバグを修正したコードを含む。機能Ｆはまた旧機能Ｆの元のコードも含むか、またはデバイスオブジェクト６６機能Ｆを新たな機能Ｆコードの実行前、実行中、または実行後に単にコールする。簡単な例は以下の通りである。リモートコンピュータ１６における元の機能Ｆが、２つの数値を追加してその結果を格納するものであったと仮定する。更に、そのコードがリリースされ出荷された後、ある環境下でその計算が正しくないことが発見されたと仮定する。新たな機能Ｆはホストコンピュータ１２上にコードを追加し、これはリモートコンピュータ１６の旧機能Ｆから正しくない結果が与えられた時に、その計算を調整、補償、および修正変更またはいずれかをすることが出来る。
【００６２】
もちろん、全ての型式の拡張およびバグ修正またはいずれかがホストコンピュータ１２上のコードを通して十分に補償されない場合が有ることは理解されよう。先の図はいくつかの拡張およびバグ修正またはいずれかがホストコンピュータ１２上のコードを通して十分に補償出来ることを意味し、この例はそれが如何にして実現できるかを示す。
【００６３】
本発明の今回提案されている好適な実施例は典型的に、少なくとも２つのコードを含み、リモートコンピュータ１６上にロードされたコードとホストコンピュータ１２上にロードされたコードとである。図５はリモートコンピュータ１６に必要なコンポーネントを実現する際に行われるステップを示す流れ図である。図６はホストコンピュータ１２で必要なコンポーネントを実現する際に行われるステップを示す流れ図である。
【００６４】
典型的に、本発明を使用したいと望む開発者はリモートコンピュータ１６とホストコンピュータ１２とを含むコンピュータシステム１０を有する。リモートコンピュータ１６は入力および出力用の外部装置１８，２０を含む。本発明を使用したいと望む開発者はしばしば組込型アプリケーション２８を有し、これは装置入力１８を受信して処理し、出力２０を生成する。本発明を実施する際に、開発者は最初ホストコンピュータ１２へエキスポートされるサービスを識別する（７０）。これらのサービスは機能、変数、イベント、ファイル等を含む。
【００６５】
エキスポートされるべきサービスが識別されると（７０）、これらのサービス表が生成される（７２）。この表３２は種々の方法で実現できる。例えば、サービス表３２はデータ構造、ファイル等として格納されるであろう。典型的にサービス表３２は静的であり、これはこの表がリモートコンピュータ１６上にロードされたコードに関して通常固定されていることを意味する。例えば、通常サービス表３２はコンパイルされリモートコンピュータ１６上にロードするコードとリンクされる。しかしながら、サービス表３２は動的な場合もあり、これはコードがリモートコンピュータ１６上でコンパイルされ、リンクされロードされた後に発生され生成されることが可能であることを意味する。
【００６６】
現設計では、性能表３０も生成される（７４）。サービス表３２と同様、性能表３０は静的または動的であり、種々の方法で格納できるが、これは当業者に理解される通りである。
【００６７】
次にリモートコンピュータ１６のコードが、ホストコンピュータ１２上で動作しているかまたは動作する予定のソフトウェアとインタフェースし通信するように、書かれるかまたは修正される（７６）。図２および図３に示されるように、個別の組込型インタフェースモジュール３４が書かれる。この組込型インタフェースモジュール３４は、ホストコンピュータ１２のソフトウェアから受信される種々の要求に応答するように書かれる。個別のインタフェースモジュール３４を生成することにより、組込型アプリケーション２８はリモートコンピュータ１６のサービスへの集中を維持できる。現設計の中では、組込型アプリケーション２８はホストコンピュータ１２からの要求に応答するための時間を提供するように、その主演算ループ内の組込型インタフェースモジュール３４の中へ機能コールを行うように典型的に修正変更される。組込型インタフェースモジュール３４はいくつかの処理を実行し、主演算ループに戻る。インタフェースモジュール３４は十分短い時間の間に主演算ループに戻るように制御して、主演算ループが必要なイベントおよび処理またはいずれかを喪失しないようにすべきである。
【００６８】
これに代わる実施例において、組込型インタフェース３４は周期的にコールされる割り込みサービスルーチンから呼ばれることも可能である。
【００６９】
図２および図３にも示されるように、通信ポート３６との間での通信を処理するために別の通信モジュール３８が生成される場合もある。
【００７０】
リモートコンピュータ１６のコードに対して必要な変更が行われると、そのコードはコンパイルされ（７８）共にリンクされて、リモートコンピュータ１６上にロードされる。もちろん、当業者には理解されるように種々のソースファイルが異なる時間にコンパイルされ、リンクされてリモートコンピュータ１６上にロードされることも可能である。
【００７１】
図６はホストコンピュータ１２に必要なコンポーネントを実現する際のステップを示す流れ図である。もちろん本発明を実施する際に異なるステップも実行可能であろう。図６のステップは本発明の原理を図示するものであって、此処に教える原理の範囲の制限を意味するものではない。本発明の今回提案されている好適な実施例のソフトウェア動作をホストコンピュータ１２上で開始するために、使用者はデバイスアクセス制御装置４６を開始させる（８０）。現設計ではデバイスアクセス制御装置４６はリモートコンピュータ１６と通信するための通信モジュール４２を含む。
【００７２】
現設計では、デバイスアクセス制御装置４６は組込型インタフェースモジュール３４を既知の状態にリセットする（８２）。これは全ての状態変数、データ等のリセットを含む。今回提案されている好適な実施例では、組込型インタフェースモジュール３４は肯定確認をデバイスアクセス制御装置４６へ送ることにより、リセットを確認する。
【００７３】
アクセス制御装置４６はまたリモートコンピュータ１６から性能表３０を要求する（８４）。この性能表３０を通してホストコンピュータ１２で動作しているソフトウェアはどの様な能力をリモートコンピュータ１６が持っているかを知るところとなる。
【００７４】
アクセス制御装置４６はまた、リモートコンピュータ１６からサービス表３２を要求する（８６）。サービス表３２を得ることで、ホストコンピュータ１２のソフトウェアはリモートコンピュータ１６の個々のサービスに関するエキスポートされたサービス情報４４を生成し維持することが出来る。ホストコンピュータ１２は続いてこの情報をホストコンピュータ１２の使用者またはその様な情報を要求しているクライアントソフトウェアに提示する。
【００７５】
先に説明したように、本発明はオブジェクト指向技術を使用して実現されるであろう。使用者がオブジェクト指向技術を使用することを所望するのであれば、デバイスオブジェクト５６が生成されるであろう（８８）。このデバイスオブジェクト５６はサービス表３２からリトリーブされた全てまたはいくつかの情報をカプセル化しているはずである。
【００７６】
ホストコンピュータ１２で使用されクライアントからの要求をサービスしている全てのサーバーが起動される必要がある。例えば、ウェブサーバー４８はクライアントコンピュータ２２のウェブブラウザからの要求をサービスするために起動される（９０）。加えて、またはこれに代わってデバイスアクセスサーバ５０がリモートコンピュータ１６に関する情報へのアクセスを提供するため、またリモートコンピュータ１６へのアクセスを提供するために起動される（９２）。図２および図３に示されるように、クライアントアプリケーション５２およびデバイスアクセスクライアント５４またはそのいずれかがクライアントコンピュータ２２上で起動される。一度ソフトウェアがホストコンピュータ１２で動作すると、それが受信した要求をサービスするように動作する（９４）。
【００７７】
図７はリモートコンピュータ１６から変数値を獲得する手順の流れ図を示す。図７は図２および図３に示されるソフトウェアコンポーネントを順に追っている。しかしながら当業者には理解されるであろうが、図７のステップは、此処に含まれる本発明の原理を実現する異なったソフトウェアコンポーネントアーキテクチャを用いて容易に修正変更できる。図７に関連して図示され説明された原理は、リモートコンピュータ１６のその他のサービスにアクセスするために使用できる。
【００７８】
クライアントアプリケーション５２が既にリモートコンピュータ１６でのサービスを認識していない限り、クライアントアプリケーション５２は最初に利用可能なサービスのリストを通常要求する（９８）。サーバー、ウェブサーバー４８、デバイスアクセスサーバ５０、または同様のサーバーのいずれかが、要求を受信して（１００）デバイスオブジェクト５６からエキスポートされたサービス情報をリトリーブする。本発明の個別の実現方法がオブジェクト指向手法を使用していない場合、サーバーはエキスポートされたサービス情報をエキスポートされたサービス情報４４、またはその様な情報を戻すように設計され実現された機能のいずれかから直接リトリーブする。
【００７９】
続いてサーバーはサービス情報をクライアント５２に送る（１０２）。一度クライアントがどの様なサービスがリモートコンピュータ１６で利用可能かを知ると、このクライアントはそのサービスに関する或るデータおよび動作またはいずれかを要求するはずである。図７に示されるように、そのクライアントは特定の変数値を要求するであろう（１０４）。使用者はクライアントソフトウェア５２を通して、リモートコンピュータ１６でのイベントの状態またはデータを知るためにリモートコンピュータ１６から特定の変数値を要求する。例えば、リモートコンピュータ１６は温度センサと電子的通信を行い、その温度センサデータを１つの変数の中に格納する。使用者はどの様な温度がリモートコンピュータ１６で検出されたかを知るためにその変数値を知りたいと望むであるう。
【００８０】
サーバは特定の値に関する要求を受信し（１０６）、その変数を適切なデバイスオブジェクト５６または、機能的に等価なソフトウェアから要求する（１０８）。オブジェクト５６は、この要求を受信するとメッセージをこの値を要求した組込型インタフェースモジュール３４に送る（１１０）。ホストコンピュータとリモートコンピュータとの間のハードウェアおよびソフトウェア通信通路を図２および図３に関連して図示し説明する。
【００８１】
処理に関する次のコールに応じて、組込型インタフェースモジュール３４はメッセージを受信し（１１２）、変数にアクセスし（１１４）そこに含まれる値を読み取る。変数値をリトリーブした後、組込型インタフェースモジュール３４はその値をオブジェクト５６にその通信通路を通して送り返す（１１６）。オブジェクト５６がこの値を受け取ると、このオブジェクト５６はその値をサーバに返す（１１８）。続いてサーバはクライアントからの要求に答え（１２０）、その変数値をクライアントソフトウェアへ送る。
【００８２】
図４に関連して説明したように、オブジェクトの能力を拡張するためにオブジェクト階層が使用されている場合、オブジェクト５６はデータをサーバに戻す前にそのデータに対して更なる処理を加える。例えば、サブクラスコンポーネントはリトリーブされた変数の表示を変更したり、その値を修正する場合がある。オブジェクト５６上でのリトリーブまたはゲット操作形式の、変数または値リトリーブ機能はその変数の値を変更するコードの実行を含むリトリーブまたはゲット操作のサブクラスの中にオーバーライドされるはずである。最初、このゲット操作はリモートコンピュータからその値をリトリーブするために基本クラスからゲット操作をコールする。その値がリモートコンピュータからリトリーブされた後、続いてゲット操作はその値を変更するための機能または命令を実行する。サブクラスコンポーネントのゲットまたはリトリーブ操作は基本クラス内の１つと同一と見なされるが、ホスト上に格納される追加および拡張はデバイスオブジェクトを強化する。
【００８３】
上述のように、本発明の組込型マイクロインターネット動作技術（EMIT: Embedded Micro Internetworking Technology）ソフトウェアは組込型マイクロ制御装置のほとんどのソフトウェアを移動して、それを更に能力の高いコンピュータにネットワークを介して分散するように設計されている。ＥＭＩＴはまた既存のインターネット技術を強化するようにも開発されている。
【００８４】
ＥＭＩＴソフトウェアの使用は以下を含む種々のコンポーネントを含む。顧客の組込型アプリケーション２８、emMicro ソフトウェア（これは組込型インタフェースモジュール３４に関連する）、emGateway ソフトウェア、emNet ソフトウェア（これは通信モジュール３８および４２に関連する）、および顧客の監視／制御アプリケーション５２である。
【００８５】
emMicro は本発明の今回提案されている好適な実施例の中でリモートコンピュータ１６の上で使用されており、リモートコンピュータ１６からのサービス情報をホストコンピュータ１２に関連づけている。サービス情報はリモートコンピュータ１６上で動作している組込型アプリケーション２８の機能、変数、イベントおよびファイルに関する情報である。
【００８６】
emMicro が動作しているホストコンピュータ１２とリモートコンピュータ１６の間の通信は、通常ＲＳ２３２，ＲＳ４８４，ＲＦ，またはＩＲの様な軽量ネットワーク経由で達成される。
【００８７】
上記の説明から、本発明は組込型システムのサービスをより大きなコンピュータシステムを介して分散することが理解されよう。加えて、本発明は組込型システムの機能を、その機能をコンピュータシステムを介して分散可能とすることで増加させる。本発明はまた組込型システムに関連するデータの有効格納能力を、このデータがホストコンピュータ上に格納出来るようにすることで増加させる。更に、本発明はリモートコンピュータとのインタフェースおよび通信の容易さを増加させるが、それはサービス情報をカプセル化しそれをクライアントアプリケーションに露わに提示しこれによってリモートコンピュータのサービスがより容易にアクセスおよび相互作用出来るようになっている。
【００８８】
本発明は、本発明の精神または本質的特性から逸脱することなく、別の特定の形式の中で実施できるであろう。説明された実施例は全ての点に於いて図示のみであり、制限するものと考えられるべきではない。従って本発明の範囲は、先の説明よりもむしろ添付の特許請求の範囲に指示されている。特許請求の範囲と等価の意味および範囲内の全ての変更は、それらの範囲に包含されるべきである。
【図面の簡単な説明】
【００８９】
【図１】本発明の提案されている好適な実施例に含まれる主要ハードウェア構成要素のブロック図である。
【図２】本発明の１つの実施例に含まれる主要ハードウェアおよびソフトウェア構成要素のブロック図である。
【図３】本発明の提案されている好適な実施例に含まれる主要ハードウェアおよびソフトウェア構成要素のブロック図である。
【図４】本発明の提案されている好適な実施例のオブジェクト階層のオブジェクト図である。
【図５】本発明の提案されている好適な実施例で実施されるステップを図示する流れ図である。
【図６】本発明の提案されている好適な実施例で実施されるステップを図示する流れ図である。
【図７】本発明の提案されている好適な実施例で実施されるステップを図示する流れ図である。
【図１】
2006120171.tif 000008
【図２】
2006120171.tif 000009
【図３】
2006120171.tif 000010
【図４】
2006120171.tif 000011
【図５】
2006120171.tif 000012
【図６】
2006120171.tif 000013
【図７】
2006120171.tif 000014