(57)【要約】ホスト・コンピュータ（１２）と装置（１４）のアクセスに使用される遠隔コンピュータ（１６）とを有するネットワーク接続のコンピュータ・システムで使用されるシステムが開示される。このシステムは、ホスト・コンピュータ（１２）の通信ポートへ及びこの通信ポートからデータを転送する通信モジュールを有する。このシステムは、またホスト・コンピュータ（１２）との電子的な通信において記憶装置からのインタフェース定義をアクセスするデータ・インタフェース・モジュールも有している。インタフェース定義へのアクセスは、インタフェース定義識別子の使用により達成される。装置アクセス・コントローラは、通信モジュールを介して遠隔コンピュータ（１６）と通信するためにシステム内で利用もされる。この装置アクセス・コントローラは、遠隔コンピュータ（１６）にロードされたコンピュータ・プログラム・コードからインタフェース定義識別子を得る。更に、装置アクセス・コントローラは、インタフェース定義得るためにデータ・インタフェース・モジュールを介して記憶装置にアクセスし、インタフェース定義得るためにインタフェース定義識別子を使用する。ここに開示の実施例では、遠隔コンピュータ（１６）にロードされたコンピュータ・プログラム・コードから得られる複数のインタフェース定義識別子が存在してもよい。
2004500668.tif 000002
【特許請求の範囲】
【請求項１】
ホスト・コンピュータと装置のアクセスに使用される遠隔コンピュータとを有するネットワーク接続のコンピュータ・システムで使用され、かつ前記ホスト・コンピュータで実行されるシステムにおいて、
前記ホスト・コンピュータの通信ポートへ及びこの通信ポートからデータを転送する通信モジュールと、
前記ホスト・コンピュータとの電子通信において記憶装置からインタフェース定義をインタフェース定義識別子の使用によりアクセスするデータ・インタフェース・モジュールと、
前記通信モジュールを介して前記遠隔コンピュータと通信し、前記遠隔コンピュータにロードされたコンピュータ・プログラム・コードから前記インタフェース定義識別子を得るように動作し、前記データ・インタフェース・モジュールを介して前記記憶装置にアクセスするように動作し、前記インタフェース定義にアクセスするために前記インタフェース定義識別子を使用する装置アクセス・コントローラと、
を備えたシステム。
【請求項２】
前記インタフェース定義は、前記コンピュータ・プログラム・コードに関する情報を有する、請求項１記載のシステム。
【請求項３】
前記遠隔コンピュータは、アプリケーション・コードを有し、このアプリケーション・コードは、前記装置に関連したサービスを提供する、請求項１記載のシステム。
【請求項４】
前記遠隔コンピュータは、サービス・リストを有し、このサービス・リストは、特定のサービスの情報を有する、請求項３記載のシステム。
【請求項５】
前記システムは、さらにサービス・目録を有し、このサービス・目録は、サービスの部分集合である、請求項４記載のシステム。
【請求項６】
前記サービス・リストの情報は、機能、変数、データの種類、イベント及びファイルからなる群から選択される、請求項４記載のシステム。
【請求項７】
装置アクセス・サーバを更に有し、この装置アクセス・サーバは、前記遠隔コンピュータへのアクセスを提供するためのクライアント・コンピュータからの要求を受信するように動作する、請求項１記載のシステム。
【請求項８】
複数のインタフェース定義識別子が前記遠隔コンピュータにロードされた前記コンピュータ・プログラム・コードから得られる、請求項１記載のシステム。
【請求項９】
前記装置アクセス・コントローラは、前記複数のインタフェース定義識別子に基づいて複数のインタフェース定義を得、前記装置アクセス・コントローラは、クライアント・コンピュータから受信した安全確認データに基づいて使用すべき１つのインタフェース定義を選択する、請求項８記載のシステム。
【請求項１０】
ホスト・コンピュータと、装置と電子的通信する遠隔コンピュータとを有するコンピュータ・システムにおいて、
前記装置に関連したサービスを提供する前記遠隔コンピュータの埋め込みコードと、
前記ホスト・コンピュータの通信ポートへ及びこの通信ポートからデータを転送する通信モジュールと、
前記ホスト・コンピュータとの電子通信において記憶装置からのインタフェース定義をインタフェース定義識別子の使用によりアクセスするデータ・インタフェース・モジュールと、
前記通信モジュールを介して前記遠隔コンピュータと通信し、前記埋め込みコードから前記インタフェース定義識別子を得るように動作し、前記データ・インタフェース・モジュールを介して前記記憶装置にアクセスするよう動作し、前記埋め込みコードに関する情報を含む前記インタフェース定義にアクセスするために前記インタフェース定義識別子を使用する装置アクセス・コントローラと、
前記ホスト・コンピュータに記憶され、かつ前記インタフェース定義から作成された前記遠隔コンピュータのサービスのカプセル部とを備えた、
コンピュータ・システム。
【請求項１１】
前記遠隔コンピュータは、サービス・リストを有し、このサービス・リストは、前記装置に関する情報を有する、請求項１０記載のコンピュータ・システム。
【請求項１２】
前記サービス・リストの情報は、機能、変数、データの種類、イベント及びファイルからなる群から選択される、請求項１１記載のコンピュータ・システム。
【請求項１３】
装置アクセス・サーバを更に有し、この装置アクセス・サーバは、前記遠隔コンピュータへのアクセスを行うクライアント・コンピュータからの要求を受信するように動作する、請求項１１記載のコンピュータ・システム。
【請求項１４】
複数のインタフェース定義識別子が前記遠隔コンピュータの前記埋め込みコードから得られる、請求項１３記載のコンピュータ・システム。
【請求項１５】
前記装置アクセス・コントローラは、前記複数のインタフェース定義識別子に基づいて複数のインタフェース定義を得、前記装置アクセス・コントローラは、前記クライアント・コンピュータから受信したセキュリティ許可データに基づいて使用すべき１つのインタフェース定義を選択する、請求項１４記載コンピュータ・システム。
【請求項１６】
遠隔コンピュータが装置とインタフェース接続され、この遠隔コンピュータとホスト・コンピュータとの間に通信を可能にする命令を含むコンピュータが読み取り可能な媒体であって、前記命令は、
前記ホスト・コンピュータと前記遠隔コンピュータとの間に電子的な通信を確立するステップと、
前記遠隔コンピュータのコンピュータ・プログラム・コードからインタフェース定義識別子を受信するステップと、
前記ホスト・コンピュータとの電子的な通信において記憶装置からのインタフェース定義を前記インタフェース定義識別子の使用によりアクセスするステップと、
前記遠隔コンピュータとの通信のために前記ホスト・コンピュータに前記インタフェース定義に基づくインタフェースを提供するステップと、
前記インタフェースを介して前記装置に関する前記遠隔コンピュータとの通信を実行するステップと、
を行うための実行可能命令を備えたコンピュータが読み取り可能な媒体。
【請求項１７】
前記インタフェース定義は、前記コンピュータ・プログラム・コードに関する情報を有する、請求項１６記載のコンピュータが読み取り可能な媒体。
【請求項１８】
前記方法は、前記遠隔コンピュータへのアクセスを行う要求をクライアント・コンピュータから受信するステップを更に有する、請求項１７記載のコンピュータが読み取り可能な媒体。
【請求項１９】
前記方法は、前記インタフェースを前記クライアント・コンピュータに供給するステップを更に有する、請求項１８記載のコンピュータが読み取り可能な媒体。
【請求項２０】
前記方法は、前記クライアント・コンピュータからインタフェースに基づく要求を受信するステップを更に有し、前記インタフェースに基づく要求は、前記インタフェースの使用により前記クライアント・コンピュータで作成される、請求項１９記載のコンピュータが読み取り可能な媒体。
【請求項２１】
前記方法は、メッセージを前記ホスト・コンピュータから前記遠隔コンピュータへ送るステップをさらに有し、前記メッセージは、前記インタフェースに基づく要求に関する、請求項２０記載のコンピュータが読み取り可能な媒体。
【請求項２２】
前記方法は、前記遠隔コンピュータに送られたメッセージに応答して前記遠隔コンピュータから装置データを受信するステップを更に有する、請求項２１記載のコンピュータが読み取り可能な媒体。
【請求項２３】
前記方法は、前記遠隔コンピュータの前記コンピュータ・プログラム・コードから複数のインタフェース定義識別子を受信するステップを更に有する、請求項１６記載のコンピュータが読み取り可能な媒体。
【請求項２４】
遠隔コンピュータが装置とインタフェース接続され、この遠隔コンピュータとホスト・コンピュータとの間で通信を可能に方法において、　前記ホスト・コンピュータと前記遠隔コンピュータとの間に電子的な通信を確立するステップと、
前記遠隔コンピュータのコンピュータ・プログラム・コードからインタフェース定義識別子を受信するステップと、
前記ホスト・コンピュータとの電子的通信において記憶装置からのインタフェース定義を前記インタフェース定義識別子の使用によりアクセスするステップと、
前記遠隔コンピュータとの通信のために前記ホスト・コンピュータに前記インタフェース定義に基づくインタフェースを提供するステップと、
前記インタフェースを介して前記装置に関する前記遠隔コンピュータとの通信を実行するステップと、
を備えた方法。
【請求項２５】
前記インタフェース定義は、前記コンピュータ・プログラム・コードに関する情報を有する、請求項２４記載の方法。
【請求項２６】
前記遠隔コンピュータへのアクセスを行う要求をクライアント・コンピュータから受信するステップを更に有する、請求項２５記載の方法。
【請求項２７】
前記インタフェースを前記クライアント・コンピュータに提供するステップを更に有する、請求項２６記載の方法。
【請求項２８】
前記クライアント・コンピュータからインタフェースに基づく要求を受信するステップを更に有し、前記インタフェースに基づく要求は、前記インタフェースの使用により前記クライアント・コンピュータで作成された、請求項２７記載の方法。
【請求項２９】
メッセージを前記ホスト・コンピュータから前記遠隔コンピュータへ送るステップをさらに有し、前記メッセージは、前記インタフェースに基づく要求に関係する、請求項２８記載の方法。
【請求項３０】
前記遠隔コンピュータに送られたメッセージに応答して前記遠隔コンピュータから装置データを受信するステップを更に有する、請求項２９記載の方法。
【請求項３１】
前記遠隔コンピュータの前記コンピュータ・プログラム・コードから複数のインタフェース定義識別子を受信するステップを更に有する、請求項２４記載の方法。
【発明の詳細な説明】
【０００１】
（技術分野）
この発明は、コンピュータ・ソフトウエアに関し、特に、コンピュータ・ネットワークを介して埋め込み装置へのアクセスを行う新規なシステムと方法に関する。
【０００２】
（技術背景）
近年、日常生活にかかわるコンピュータ・テクノロジは大いに増大している。今日の世界では、コンピュータ・テクノロジは、人の１日の多くの局面に係わっている。今日消費者により使用されている多くの装置は、内部に小コンピュータを有している。これらの小コンピュータは、大きさと精巧度が変化して来ている。これらの小コンピュータは、１つのマイクロ・コントローラから十分に便利な完全コンピュータ・システムにわたる全てのものを包含している。例えば、これらの小コンピュータは、マイクロ・コンピュータのようなワンチップ・コンピュータ、コントローラのようなワンボード式のコンピュータ、ＩＢＭ−ＰＣ互換性のあるような一般的なデスクトップ・コンピュータ、などであってもよい。
【０００３】
（コンピュータにより満足される特定の必要性に依存してかなり大型のコンピュータとなり得る）小コンピュータは、ほとんど常にそのコンピュータの中心部に１個以上のプロセッサを有している。これらのプロセッサは、通常、互いに異なる外部入出力に接続されて特定の装置を管理するように機能する。例えば、ソーダ・ポップ（味付ソーダ水入びん）の自動販売機のプロセッサは、このソーダ・ポップの選択に使用されるボタン、ソーダ・ポップをユーザに落とすことができるスイッチ、及びこの自動販売機は特定種類のソーダ・ポップをもはや有していないということを示すライトに接続してもよい。
【０００４】
コンピュータ・テクノロジは、日常生活の多くの面に係わっている。多くの装置などは１つ以上の小コンピュータを有している。例えば、冷蔵庫、電話機、タイプライタ、自動車、自動販売機、及び多くの異なる種類の産業装置は、全てその内部に小コンピュータまたはプロセッサを有している。コンピュータ・ソフトウエアは、これらのコンピュータのプロセッサを作動して、このプロセッサに対して特定の仕事を実行するために何をすべきかを告げる。例えば、自動販売機のプロセッサで動作するコンピュータ・ソフトウエアは、ユーザにより間違いない硬貨が入れられた時にソーダ・ポップをユーザに落とすことができる。
【０００５】
装置、工具などの一部であるこれらの種類の小コンピュータは、しばしば埋め込み装置と呼ばれている。「この埋め込み装置」なる用語は、より大きなシステムの一部であるコンピュータ・ハードウエアとソフトウエアのことを通常は言う。埋め込み装置は、通常、キーボード、マウス、及びモニタまたはそのいずれかのような一般的な入出力装置を有してはいない。通常、各埋め込み装置の中心部には１つ以上のプロセッサがある。
【０００６】
一般的に、種々の装置などで今日使用されている埋め込み装置は多くの記憶能力を有してはいない。結果として、この埋め込み装置に記憶できるデータ量は有限である。単に有限な記憶装置の場合、埋め込み装置は、もし更に多くの利用可能な記憶装置を有していたとした場合に有することができるほど多くの特徴及び能力は有しないであろう。
【０００７】
一部の埋め込み装置は、この埋め込み装置とより大きなコンピュータ・システムとの間で何らかの通信を可能にするためにコンピュータ・ネットワークに接続されている。しかし、埋め込み装置は、他のコンピュータ・システムと有効的かつ効率的に通信をするための機能をしばしば備えてはいないので、通信能力は通常有限である。更に、埋め込み装置と通信する手段は、しばしば速度の遅い種類の通信路であるので、有限のデータ量のみがその埋め込み装置に送られ及びこの埋め込み装置から受信する。
【０００８】
埋め込み装置の不自然なメモリ資源のため及び一般的に制限される通信手段のために、コンピュータ・ネットワークと埋め込み装置との有限な対話が利用できるだけである。埋め込み装置の互いに異なる部分との通信が困難なるために、その対話の使用はしばしば制限される。
【０００９】
（発明の要約）
ここに広く開示した実施例に従って、ホスト・コンピュータと、装置のアクセスに使用される遠隔コンピュータとを有するネットワーク接続のコンピュータ・システムで使用されるシステムが開示される。このシステムは、ホスト・コンピュータの通信ポートへ及びこの通信ポートからデータを転送する通信モジュールを有している。このシステムは、ホスト・コンピュータとの電子的通信において記憶装置からのインタフェース定義にアクセスするデータ・インタフェース・モジュールも有している。インタフェース定義へのアクセスは、インタフェース定義識別子の使用により達成される。装置アクセス・コントローラは、通信モジュールを介して遠隔コンピュータと通信するためにこのシステムで利用もされる。この装置アクセス・コントローラは、遠隔コンピュータにロードされたコンピュータ・プログラム・コードからインタフェース定義識別子を得る。更に、装置アクセス・コントローラは、インタフェース定義を得るためにデータ・インタフェース・モジュールを介して記憶装置にアクセスし、インタフェース定義を得るためにインタフェース定義識別子を使用する。ここに開示の実施例では、遠隔コンピュータにロードされたコンピュータ・プログラム・コードから得られた複数のインタフェース定義識別子が存在してもよい。
【００１０】
ここに開示の実施例に従って実施される方法は、ホスト・コンピュータと遠隔コンピュータとの間に電子的通信を確立するステップと、インタフェース定義識別子を受信するステップと、記憶装置からのインタフェース定義をインタフェース定義識別子の使用によりアクセスするステップとを有してもよい。方法は、遠隔コンピュータとの通信のためにホスト・コンピュータにインタフェースを提供するステップと、インタフェースを介して遠隔コンピュータとの通信を容易にするステップとを更に有する。
【００１１】
この実施例の他の特徴は、添付図面に関連する次の記載及び上記の請求項から更に十分に明らかとなろう。これらの図面は典型的な実施例のみを示すので、本発明の範囲を制限するものと考えられるべきではないと理解されるべきであり、実施例は、更に特定し及び詳細に添付図面を使用して記載する。
【００１２】
ここに一般的に記載し図面に示した実施例の要素は、多種類の異なる構成で配列し設計することができるということは容易に理解されよう。従って、図１から１０までに示したシステム及び方法の実施例の次の更に詳細な記載は、請求になる本発明の範囲を制限しようとするものではなく、単に本発明の実施例を示すものである。
【００１３】
本発明の実施例は、図面に関して最も良く理解されよう。図面では類似の部品は、図面にわたり類似の数字により示される。
本実施例は、図面の参照により最もよく理解されよう。図面で類似の部品は、図面に亘り類似の数字により示される。
ここに広く開示した実施例に従って、ホスト・コンピュータと、装置のアクセスに使用される遠隔コンピュータとを有するネットワーク接続のコンピュータ・システムで使用されるシステムが開示される。このシステムは、ホスト・コンピュータの通信ポートへ及びこの通信ポートからデータを転送する通信モジュールを有している。このシステムは、ホスト・コンピュータとの電子的通信において記憶装置からのンタフェース定義にアクセスするデータ・インタフェース・モジュールも有している。インタフェース定義へのアクセスは、インタフェース定義識別子の使用により達成される。装置アクセス・コントローラは、通信モジュールを介して遠隔コンピュータと通信するためにこのシステムで利用もされる。この装置アクセス・コントローラは、遠隔コンピュータにロードされたコンピュータ・プログラム・コードからインタフェース定義識別子を得る。更に、装置アクセス・コントローラは、インタフェース定義を得るためにデータ・インタフェース・モジュールを介して記憶装置にアクセスし、インタフェース定義を得るためにインタフェース定義識別子を使用する。ここに開示の実施例では、遠隔コンピュータにロードされたコンピュータ・プログラム・コードから得られた複数のインタフェース定義識別子が存在してもよい。
【００１４】
インタフェース定義は、コンピュータ・プログラム・コードに関する情報を有してもよい。遠隔コンピュータのコンピュータ・プログラム・コードまたはアプリケーション・コード、またはその組み合わせは、装置に関連したサービスを提供するものであってもよい。遠隔コンピュータは、特定のサービスを記載し、または、この特定のサービスに関連するサービス・リストを有してもよい。このサービス・リストは、機能、変数、データの種類、イベント及びファイルのリストを有する種々の種類の情報を有してもよい。
【００１５】
システムは、遠隔コンピュータ及びこの遠隔コンピュータで利用できるサービス（例えば、機能、変数、データの種類、イベント及びファイル）またはそのいずれかにアクセスするクライアント・コンピュータからの要求を受信する装置アクセス・サーバを有してもよい。
ここに開示の実施例に従って実施される方法は、ホスト・コンピュータと遠隔コンピュータとの間に電子的通信を確立するステップと、インタフェース定義識別子を受信するステップと、記憶装置からのインタフェース定義をインタフェース定義識別子の使用によりアクセスするステップとを有してもよい。方法は、遠隔コンピュータとの通信のためにホスト・コンピュータにインタフェースを提供するステップと、インタフェースを介して遠隔コンピュータとの通信を容易にするステップとを更に有する。
【００１６】
方法は、遠隔コンピュータへのアクセスを行う要求をクライアント・コンピュータから受信するステップを更に有してもよい。インタフェースは、クライアント・コンピュータに提供されてもよい。この方法は、クライアント・コンピュータからインタフェースに基づく要求を受信することを含んでもよい。インタフェースに基づく要求は、インタフェースの使用によりクライアント・コンピュータで作成されたものである。インタフェースに基づく要求に関するメッセージをホスト・コンピュータから遠隔コンピュータへ送られてもよい。遠隔コンピュータは、この遠隔コンピュータに送られたメッセージに応答してホスト・コンピュータへ装置データを送信してもよい。
【００１７】
もちろん、この方法は、コンピュータの読み取り可能な媒体に記憶された実行可能命令で実行してもよいということは当業者に理解されよう。
図１は、本実施例で一般的に利用される主なハードウエア要素を示すブロック線図である。本実施例では、システムと方法は、ネットワーク接続のコンピュータ・システム１０で使用される。このネットワーク接続のコンピュータ・システム１０で、ホスト・コンピュータ１２は、埋め込み装置１４に接続されている。一般的に、埋め込み装置１４は、入力装置１８と出力装置２０に接続されたコンピュータ１６を有している。本実施例で、コンピュータ１６は、埋め込みコンピュータ１６である。特に本実施例では、コンピュータ１６は、マイクロ・コントローラ（図示せず）である。しかし、当業者には、マイクロ・コントローラにより普通実行される機能及び処理は、更に大きいプロセッサが、より大きなコントローラの一部または一般的なコンピュータ・システムの一部であるか否かに関係なくその大きなプロセッサにより実行できるということが理解されよう。
【００１８】
埋め込みコンピュータ１６は、ホスト・コンピュータ１２から離れている。それは、埋め込みコンピュータ１６とホスト・コンピュータ１２は、各々、単独で機能することができるコンピュータであるからである。「遠隔」なる用語は、埋め込みコンピュータ１６がホスト・コンピュータ１２とは異なる場所にあるということを必ずしも意味しないが、多くの実施例では、ホスト・コンピュータ１２は、埋め込みコンピュータ１６とは異なる場所にある。「埋め込みコンピュータ１６」と「遠隔コンピュータ１６」なる用語は、本明細書では相互に交換して使用されることがある。遠隔コンピュータ１６により記憶、および実施またはそのいずれかでなされると述べたそれら要素は、ある状況の場合にはホスト・コンピュータ１２により記憶および実施またはそのいずれによりなすこともできる。
【００１９】
本システム及び方法は、多数種類のコンピュータ・ネットワーク１０に対し広範な用途を有している。一般的に、コンピュータ・システム１０は、埋め込み装置１４の監視及び制御またはそのいずれかのため１つ以上のクライアント・コンピュータを有している。遠隔コンピュータ１６は、この遠隔コンピュータ１６と電子通信可能な入力装置１８及び出力装置２０またはそのいずれかに対し、換言すれば、電気信号の形で入力及び出力またはそのいずれかでできる装置１８、２０に作動接続される。時には、入出力装置１８、２０と遠隔コンピュータ１６は、両者同一の物理構造内に収容される。
【００２０】
ホスト・コンピュータ１２と遠隔コンピュータ１６は、両者とも広く定義されたデジタル・コンピュータである。本明細書で使用されるコンピュータは、データの受信及び処理の可能なデジタル・プロセッサを有する任意の装置である。コンピュータは、マイクロ・コンピュータ、ハンドヘルド・コンピュータ、パーソナル・コンピュータ、サーバ、メインフレーム、スーパー・コンピュータ、及びその任意の種類または関連装置を含む広範な範囲のデジタル・コンピュータを包含する。
【００２１】
入出力装置１８、２０は、電気信号の受信及び発生またはそのいずれかの可能な任意の要素、機構、装置などを含む。装置なる用語の範囲内にある装置の例としては、自動販売機、電話機、ドア錠、温度センサ、モータ、スイッチ及びライトを含む。
【００２２】
現代設計では、ホスト・コンピュータ１２は、一般的には、リナックス、マイクロソフト・ウインドウズ９５／９８／２０００またはマイクロソフト・ウインドウズＮＴのオペレーティング・システムを動作させるＩＢＭ互換のパーソナル・コンピュータである。遠隔コンピュータ１６は、一般的には、埋め込みプロセッサ（図示せず）を有していて、前述のように、しばしばマイクロ・コントローラを含む。入出力装置１８、２０は、プロセッサがインタフェース接続及び相互連絡をすることができる電子インタフェースを備えた任意の装置であってもよい。
【００２３】
ここでの実施例で使用してもよい１つの可能な品目は、自動販売機（図示せず）である。多くの自動販売機は、この自動販売機の異なる部分を制御する１つ以上のマイクロ・コントローラを有している。これらのマイクロ・コントローラは、遠隔コンピュータ１６の範囲内に入るものである。入出力装置１８、２０は、自動販売機から品目を選択するボタン、これらの品目をユーザに落とすことができるスイッチ、どの品目が無くなったかを示すライト、任意の硬貨を開放する硬貨開放部などを有している。当技術で知られているように、この自動販売機の実施例は、同一構造内に統合された入出力装置１８、２０及び遠隔コンピュータ１６を有している。従って、本システム及び方法は、このような環境で実施してもよい。当業者は、遠隔コンピュータ１６がその取り付けた入出力装置１８、２０とは別の構造内にあってもよいということも理解できる。現代装置の多くは、埋め込みマイクロ・コントローラを備えて来ており、例えば、多くのセルラ電話機、ページャなどは、埋め込みマイクロ・コントローラを有して来ている。
【００２４】
ホスト・コンピュータ１２は、ＲＳ２３２、ＲＳ４８５、モデム、電力線、有線接続、無線接続などを含む多種類の接続を介して遠隔コンピュータ１６に接続されることがある。同様に、遠隔コンピュータ１６は、多種類の方法で種々の入出力装置１８、２０に接続されることがある。前述のように、一般的に、遠隔コンピュータ１６は、マイクロ・コントローラ（図示せず）を有している。マイクロ・コントローラは、外部装置と通信する入出力ポートをしばしば有している。特定のマイクロ・コントローラの仕様は、しばしば、このマイクロ・コントローラに装置が如何に接続されるかを述べている。当業者は、種々の装置が埋め込みコンピュータ、標準デスクトップ・コンピュータ、メインフレームなどであるか否かに関係なく、コンピュータに如何に接続できるかを理解している。
【００２５】
前述のように、クライアント・コンピュータ２２は、コンピュータ・システム１０内に含めてもよい。このような構成により、ユーザは、長距離にわたっても、ホスト・コンピュータ１２を介し遠隔コンピュータ１４でサービスにアクセスすることができる。ホスト・コンピュータ１２とクライアント・コンピュータ２２は、ＬＡＮ、ＷＡＮなどのようなコンピュータ・ネットワーク２４に共に全て接続してもよい。更に、クライアント・コンピュータ２２は、ダイアルアップ接続、イントラネット、またはインターネットを介してホスト・コンピュータ１２に遠隔の場所から接続してもよい。
【００２６】
図２は、本実施例の主なハードウエアとソフトウエアの要素のブロック線図を示す。図示のように、図２のハードウエア要素は、図１のそれらと相関関係を有している。当業者は、種々のハードウエア要素を相互接続する多種類の方法が存在し、１つのハードウエア要素から他のハードウエア要素に機能性を移動することにより、１つ以上のハードウエア要素を除去してもよい種々の構成が存在するということを理解するであろう。
【００２７】
本実施例により、ユーザは、ホスト・コンピュータ１２を介して埋め込みコンピュータ１６により提供されるサービスを監視、及び制御またはそのいずれかとすることができる。埋め込みコンピュータ１６のサービスは、コンピュータ・ネットワーク１０を介して効率的な方法でアクセスすることができるようにこの実施例により開示される。
【００２８】
本実施例では、入力装置１８及び出力装置２０またはそのいずれかからのデータは、入出力ポート２６を介して読み込まれ、及び書き出されるかまたはそのいずれかによる。埋め込みアプリケーション・プログラム２８は、これらの入出力ポート２６と直接やり取りする実行可能命令を有している。通常、埋め込みアプリケーション２８は、再三再四ずっと繰り返される主ループを有している。もちろん、埋め込みアプリケーションの開発者は、連続的にずっと繰り返される主ループは有しないアプリケーションを書き込んでもよい。ここでの原理は、主ループを持たないこれらのアプリケーションに適用して本実施例で実現されるのとほぼ同一の恩恵をあたえることができる。
【００２９】
埋め込み、すなわち、遠隔のコンピュータ１６、その特性及び能力についての基本情報は、本実施例の実施に有用である。この基本情報は、能力表３０で遠隔コンピュータ１６に記憶してもよい。能力表３０は、ファイルとして記憶してもよく、またはアプリケーション２８とコンパイルされた状態データとして記憶してもよく、または遠隔コンピュータ１６の外部の記憶装置（図示せず）に記憶してもよい。当業者は、遠隔コンピュータ１６とその接続された入力装置１８及び出力装置２０またはそのいずれかの基本能力を記憶する種々の方法が存在するということを理解しよう。表１は、どの種類の情報が能力表３０に記憶してよいかを示す擬似コードを含んでいる。
【００３０】
【表１】
2004500668.tif 000003
【００３１】
表１に示したように、能力表は、遠隔コンピュータがどんなインタフェース定義（１Ａ）をサポートするかの表示を有してもよい。インタフェース定義（１Ａ）のフィールドとその使用は、更に十分に以下記載する。能力表は、線（１Ｂ）で示したバイト配列形式を示してもよい。このバイト配列形式（１Ｂ）は、遠隔すなわち埋め込みコンピュータ１６が大きな終端物であるか、または小さな終端物であるかを示すものであってもよい。この能力表は、その特定の遠隔すなわち埋め込みコンピュータ１６のために線（１Ｃ）で示した装置識別がどんなものであるかを示すものであってもよい。線（１Ｄ）で示した装置アドレスは、もしあるとすれば、能力表３０に記憶してもよい。
【００３２】
互換性のためには、線（１Ｅ）で示した、使用されるソフトウエア用のバージョン番号は記憶してもよい。同様に、線（１Ｆ）で示した通信プロトコル・バージョン番号も記憶してもよい。通信についての詳細も記憶してよい。例えば、表１に示したように、線（１Ｇ）で示した最大通信パケット・サイズは記憶してもよい。
【００３３】
線（１Ｈ）で示した非揮発性記憶フラグは、遠隔コンピュータ１６によりアクセス可能な非揮発性記憶装置が存在するか否かを示すものであってもよい。線（１Ｉ）で示した非揮発性記憶装置の大きさ及びその開始アドレスのような非揮発性記憶装置についての適切な情報も記憶してよい。線（１Ｊ）で示した静的ファイル・システム・フラグは、静的ファイル・システムが存在するか否かを示すものであってもよい。同様に、線（１Ｋ）で示した動的ファイル・システム・フラグは、動的ファイル・システムが存在するか否かを示すものであってもよい。
【００３４】
ホスト・コンピュータ１２のソフトウエアが能力表３０を要求し、埋め込みコンピュータ１６の特性及び能力を確認することができるという点で能力表３０は有用である。しかし、更に十分に以下説明するように、ここに開示したシステム及び方法に関連するインタフェース・サポートのフィールド（１Ａ）は、全能力表３０をホスト・コンピュータ１２に転送したり、この能力表の等価情報をホスト・コンピュータ１２に転送したりする必要をなくしてもよい。
【００３５】
クライアント・コンピュータ２２及びホスト・コンピュータ１２またはそのいずれかで動作するソフトウエアを介して、ユーザは、遠隔の埋め込みコンピュータ１６により提供される特定のサービスにアクセスしたいことがあろう。このサービスは、異なる機能、変数、イベント及びファイルまたはそのいずれかを有する。例えば、ユーザは、特定の機能の実行、特定の変数へのアクセス、特定のイベントについてのチェックまたは特定のファイルへのアクセスを望むことがあろう。現在の設計では、ユーザがアクセスを必要とする可能性のあるサービスは、識別されてリストアップされる。サービスの識別は、特定のサービスについての情報をも含む。特定のサービスのこの識別は、種々の方法で達成してもよい。例えば、現在の設計では、サービスの表３２は、遠隔コンピュータ１６に記憶してもよい。サービス表３２は、ファイルとして記憶してもよいし、または、アプリケーションとコンパイルされた静的データとして記憶してもよいし、または、遠隔コンピュータ１６の外部の記憶装置（図示せず）に記憶してもよい。当業者は、埋め込みコンピュータ１６で動作するアプリケーション・コード２８により提供される特定のサービスについての基本情報を記憶する種々の方法が存在するということを理解するであろう。表２は、どんな種類の情報がサービス表３２に記憶してよいかを示す擬似コードを含んでいる。
【００３６】
【表２】
2004500668.tif 000004
【００３７】
表２に示したように、サービス表３２は、サービスの名称または識別、サービスの種類（例えば、それが機能、変数、イベントまたはファイルなどであるか否か）、もしあれば入力パラメータの種類、リターンの種類、及びサービスのアドレスのような情報を含んでもよい。線（２Ａ）で示した機能「ＦｕｎｃｔｉｏｎＡ」についての情報は示してあり、すなわち、それが機能であり、それが入力パラメータとしてワードを取り、それが何もリターンしない（無）、そのアドレスが＆ＦｕｎｃｔｉｏｎＡで示されるということが示してある。線（２Ｂ）は、他の機能ＦｕｎｃｔｉｏｎＢについての情報を示す。変数についての適切な情報は、線（２Ｃ）〜（２Ｄ）に示してある。イベントについての情報は、線（２Ｅ）〜（２Ｆ）に示してある。イベントは、任意の種類のデータであってもよい。例えば、イベントは、変数、特定のレジスタ、割り込みなどとすることができる。イベントは、非同期的に生じる品目について特に有用であろう。非同期的な種類のイベントの例には、アラームの発信、または外部ＬＥＤの変化を含む。特定のファイルについての情報は、線（２Ｇ）と（２Ｈ）に示してある。
【００３８】
遠隔コンピュータ１６に特定サービスについての情報を記憶することによって、ホスト・コンピュータ１２のソフトウエアは、遠隔コンピュータ１６でどんなサービスが利用できるかを容易に確認することができる。通常、アプリケーション・コード２８は、サービスを定義している。サービス表３２は、特定のサービスについての情報を提供するように機能し、この情報は、ホスト・コンピュータ１２のユーザに、またはこのホスト・コンピュータ１２に接続されたクライアント・コンピュータ２２のユーザに有用となる。
【００３９】
現在の設計では、埋め込みインタフェース・モジュール３４は、遠隔コンピュータ１６におけるサービスとホスト・コンピュータ１２で動作するソフトウエアとの間でアクセスを行う。ここに開示の実施例では、インタフェース・モジュール３４は、遠隔コンピュータ１６の所望サービスにアクセスするためにサービス表３２の情報を使用する。更に、現在好適な実施例では、インタフェース・モジュール３４は再入会員コードである。
【００４０】
インタフェース・モジュール３４は、埋め込み通信ポート３６を介して通信を行う。現在の設計では、通信モジュール３８は、通信ポート３６を使用して通信を行う。しかし、当業者は、インタフェース・モジュール３４が遠隔コンピュータ１６における通信ポート３６と直接インタフェース接続するに必要なコードを有してもよい。通信モジュール３８または通信コード３８は、通信ポート３６へアクセスしてデータが適当な大きさでフォーマットされたデータ片で通信ポート３６に与えられ、かつ、通信ポート３６から受信したデータが正しくポート３６から読み取られるということを保障する。
【００４１】
ホスト・コンピュータ１２は、遠隔コンピュータ１６の通信ポート３６と電子通信をする通信ポート４０を有している。前述のように、遠隔及び埋め込みまたはそのいずれかのコンピュータ・ポート３６とインタフェース接続可能なコンピュータで利用可能な多種類のこのようなポートが存在する。通信モジュール４２は、遠隔コンピュータ１６の通信モジュール３８により提供される特徴に似たものを提供する。通信モジュール４２は、通信ポートに対し書き込まれたり、この通信ポートから読み出されたりするデータのフォーマットを正しく作成する。
【００４２】
ホスト・コンピュータ１２は、埋め込みコンピュータ１６で提供されたサービスに対するアクセスを行う。本実施例では、能力表３０の一部、すなわちインタフェース・サポート情報は、埋め込みコンピュータ１６から検索されて、この埋め込みコンピュータ１６からそのサービスのリストがサービス表３２にほぼ対応するホスト・コンピュータ１２で作成される。ホスト・コンピュータ１２のサービスのリストは、図２においてはサービス情報４４と云われる。サービス情報４４は、遠隔コンピュータ１６においてどんなサービスが利用できるか、及び、もしあるとすればどんなデータの種類が個々のサービスで使用されるかを示す。これにより、ホスト・コンピュータ１２を介して遠隔または埋め込みコンピュータ１６へのアクセスが容易になる。
【００４３】
現在の設計では、サービス情報４４を作成させる処理がホスト・コンピュータ１２で最初に開始される。装置アクセス・コントローラ４６は、現在の設計でこの開始方向を与える。
【００４４】
前述のように、実施例では、ホスト・コンピュータ１２と電子通信するクライアント・コンピュータ２２に対し、埋め込みコンピュータ１６のサービスへのアクセスを提供してもよい。クライアント・コンピュータ２２によるアクセスを容易にするため、ホスト・コンピュータ１２はサーバを有してもよい。ウェブ・サーバ４８は、ホスト・コンピュータ１２において開始されてもよい。ウェブ・サーバ４８は、遠隔コンピュータ１６でのサービスに対しウェブ・インタフェースを提供してもよい。例えば、遠隔コンピュータ１６のデータ及びサービスまたはそのいずれかは、ＨＴＭＬページを介してグラフで表示されてもよい。従って、装置アクセス・コントローラ４６は、遠隔コンピュータ１６で利用可能なサービスからウェブ・ページ（図示せず）を作成してもよく、ウェブ・サーバ４８は、これらのウェブ・ページについのＨＴＴＰ要求に対しサービスしてもよい。
【００４５】
装置アクセス・サーバ５０は、遠隔コンピュータ１６のサービスに対するクライアントの要求にサービスするために、ホスト・コンピュータ１２に含めてもよい。現在の設計では、装置アクセス・サーバ５０は、サービス情報４４にアクセスし、この情報をクライアント・コンピュータ２２のクライアントに利用可能とする。
【００４６】
クライアント・コンピュータ２２は、クライアント・アプリケーション５２と装置アクセス・クライアント５４を有してもよい。装置アクセス・クライアント５４は、遠隔コンピュータ１６のサービスにアクセスするために装置アクセス・サーバ５０と通信する。クライアント・アプリケーション５２は、サービスに関する情報を得るために装置アクセス・クライアント５４を使用してもよい。クライアント・アプリケーション５２は、ホスト・コンピュータ１２に配置されたウェブ・サーバ４８からのデータにアクセスすることもできる。例えば、クライアント・アプリケーション５２は、ウェブ・サーバ４８に接続可能なウェブ・ブラウザであってもよい。
【００４７】
図３で、有効な方法で遠隔コンピュータ１６でどんなサービスが利用可能かを有効に通信するために１組のインタフェース定義を作成してもよい。図３には、使用のために利用可能な全ての埋め込み装置のグループ５６を示す埋め込み装置空間５６が示してある。この埋め込み装置空間５６は、別々のグループ５８に分割してもよい。例えば、装置種類Ａのグループ５８ａを形成し、装置種類Ｂのグループ５８ｂ及び装置種類Ｃのグループ５８ｃを形成してもよい。グループ５８は、各グループのメンバーが少なくとも１つ以上の類似の特性を有する論理グループ（複数）に特定の装置をいっしょに分類してもよい。例えば、装置種類Ａのグループ５８ａは、自動販売機装置用のものであってもよい。他の例示的なグループには、セルラ電話機、冷蔵庫、温度制御装置、コピー機などが含まれる。
【００４８】
各グループ５８内には、異なる種類の遠隔コンピュータ１６用の特定のインタフェース定義６０が存在してもよい。各インタフェース定義６０は、特定の組の機能、変数、イベント、ファイル、挙動、状態、及びその特定のインタフェース定義６０を満足するものとしてそれ自体を提供する任意の遠隔コンピュータ１６によりサポートされる他の情報を定義する。従って、埋め込みエンジニアが遠隔コンピュータ１６を含む埋め込み装置を設計している時にもし埋め込みエンジニアが本実施例の恩恵を利用することを望む場合、この埋め込みエンジニアは、しかるべく埋め込み装置をサポートし、設計し、実施するために適切なインタフェース定義６０を選択してもよい。更に、受け入れ可能なインタフェース定義６０が万一存在しないならば、埋め込みエンジニアは、新しいインタフェース定義６０を定義して、それをその使用及び知識またはそのいずれかから恩恵を受ける可能性のある人に公開し、そのシステムの設計及び実施を行ってもよい。
【００４９】
種々のインタフェース定義６０が図３において、Ａ１、Ａ２、Ａ３、などで表されている。当業者は、遠隔コンピュータ１６または埋め込み装置の特性を定義する種々の方法が存在するということを理解するであろう。表３は、どんな種類の情報を定義して、インタフェース定義６０に含ませてもよいかを示す擬似コードを含んでいる。
【００５０】
【表３】
2004500668.tif 000005
【００５１】
表３に示したように、インタフェース定義は、サービスの名称または識別、サービスの種類（例えば、それが機能、変数、イベント、ファイルなどであるか否か）、もしあるとすれば入力パラメータの種類、リターンの種類、及びサービスのアドレスのような情報を含んでもよい。線（３Ａ）で示した機能「ＦｕｎｃｔｉｏｎＡ」についての情報は示してあり、すなわち、それが機能であり、それが入力パラメータとしてワードを取り、それが何もリターンしない（無）、そのアドレスが＆ＦｕｎｃｔｉｏｎＡで示されるということが示してある。線（３Ｂ）は、他の機能、すなわちＦｕｎｃｔｉｏｎＢについての情報を示す。変数についての適切な情報は、線（３Ｃ）〜（３Ｄ）に示してある。
【００５２】
イベントについての情報は、線（３Ｅ）〜（３Ｆ）に示してある。イベントは、任意の種類のデータであってもよい。例えば、イベントは、変数、特定のレジスタ、割り込みなどとすることができる。イベントは、非同期的に発生する品目について特に有用であろう。非同期的な種類のイベントの例には、アラームの発信、または外部ＬＥＤの変化がある。
【００５３】
特定のファイルについての情報は、線（３Ｇ）と（３Ｈ）に示してある。状態情報（３Ｉ）は含めてもよい。状態情報（３Ｉ）は、遠隔コンピュータ１６がどんな種々の状態にあり得るかを定義する情報、遠隔コンピュータ１６の任意の状態機構を定義する情報などを含んでもよい。挙動情報（３Ｊ）は、特定の組の入力、出力及び状態またはそのいずれかが与えられると、遠隔コンピュータ１６がどのように反応し挙動を示すかを示すものであってもよい。もちろん、当業者が適切に理解しているように、情報を定義する他のもの（３Ｋ）を更に含めてもよい。
【００５４】
図４は、特定の埋め込み装置と、この埋め込み装置がサポートするインタフェースまたはこの特定の埋め込み装置が従うインタフェース定義との間には１対多の対応が存在することができるということを示す表である。図４の装置Ａｌｐｈａは、図３のＡ１インタフェース定義６０をサポートする。装置Ｂｅｔａは、１つ以上のインタフェース定義６０をサポートする、すなわち、それはＣ３とＣ６をサポートする。図４は、他の特定の埋め込み装置が１つ以上のインタフェース定義６０をサポートすることができるということを示す。
【００５５】
図５は、実施例の遠隔コンピュータ１６を示し、更にサービス表３２と能力表３０に含めてもよい品目を示す。表２に関して記載したように、サービス表３２は、遠隔コンピュータ１６の機能３２ａ、変数３２ｂ、イベント３２ｃ及びファイル３２ｄまたはそのいずれかについての情報を含んでもよい。能力表３０は、遠隔コンピュータ１６用のインタフェース識別３０ａを含むデータを有するものであってもよい。図４に示したように、遠隔コンピュータ１６は、１つ以上のインタフェース定義識別子を含んでもよい。これらのインタフェース定義識別子は、特定のインタフェース定義を識別する方法として使用することができるデータの番号、列または任意の他のデータであってもよい。本実施例の使用により、ホスト・コンピュータ１２は、遠隔コンピュータ１６自体から全ての定義情報を得ることを要せずに、そのインタフェース識別子３０ａを得るだけで特定の遠隔コンピュータ１６について多くを確認することができる。このことは、有用であろう。その理由は、ある環境では遠隔コンピュータ１６が他のコンピュータに対し多量の情報を送るために必要な通信能力を有しないからである。能力表３０は、必要に応じて他の構成情報３０ｂを有してもよい。
【００５６】
図６は、一実施例のホスト・コンピュータ１２を示し、更に、ホスト・コンピュータ１２で使用してもよいソフトウエアの要素または機能性を示す。ホスト・コンピュータ１２は、内部インタフェース・データベース６２を有してもよい。この内部インタフェース・データベース６２は、インタフェース定義識別子６４により示される幾つかのインタフェース定義６０を含んでいてもよい。従って、装置アクセス・コントローラ４６は、遠隔コンピュータ１６からインタフェース定義識別子６４を得ると、遠隔コンピュータ１６によりサポートされた特定のインタフェース定義６０にアクセスするとともにこれを検索するために、データベース・インタフェース６６を介して内部インタフェース・データベース６２にアクセスしてもよい。従って、ホスト・コンピュータ１２は、遠隔コンピュータ１６から遠隔コンピュータ１６を定義する情報の全てを受信せずに遠隔コンピュータ１６を定義する情報を得てもよい。
【００５７】
内部インタフェース・データベース６２の他に、外部インタフェース・データベース６８があってもよい。この外部インタフェース・データベース６８は、データベース・インタフェース６６が、内部インタフェース・データベース６２で特定のインタフェース定義６０を発見することができない時にアクセスされるものであってもよい。外部インタフェース・データベース６８は、ホスト・コンピュータ１２が接続されるコンピュータ・ネットワークに配置してもよい。更に、外部インタフェース・データベース６８は、インターネット、ダイアルアップ接続を経由してイントラネットなどを介してアクセス可能なものであってもよい。装置アクセス・コントローラ４６は、外部インタフェース・データベース６８からの更新により内部インタフェース・データベース６２を周期的に更新してもよい。
【００５８】
ここに開示の実施例は、特定の装置についての種々のインタフェース定義６０を使用することによりセキュリティ処置を実行してもよい。例えば、然るべき権威を保持する自主独立体によってのみアクセスされるものとすべきである遠隔コンピュータ１６に利用可能な幾つかのサービスが存在してもよい。この更に特定した例は、自動販売機である。自動販売機は、例えば、特定の品目についての価格を変化し、支払いを行わずに特定の品目を落下させ、または、特定の品目が購入できないようにこの特定の品目をロックする能力のような委任を受けた自主独立体によりアクセスされるだけにすべき特定の機能を有してもよい。１つのインタフェース定義６０は、これらの管理機能へのアクセスを提供するものであってもよい。しかし、自動販売機を利用する他の人達は、一般的には、これらの管理機能へはアクセスを行わない。従って、自動販売機は、管理者インタフェース及び非管理者インタフェースを包含する幾つかのインタフェースをサポートするものであってもよい。ここに開示の実施例では、自動販売機の遠隔コンピュータ１６は、これらのインタフェースの両方にとってのインタフェース定義識別子６４を含むものであってもよい。ここに開示の実施例では、それは、然るべき許可に基づいて任意のクライアント・アプリケーション５２に対し然るべきインタフェースを提供するためのホスト・コンピュータ１２の仕事であってもよい。
【００５９】
然るべき許可に基づいて任意のクライアント・アプリケーション５２に対し然るべきインタフェースを提供するために、データ・アクセス・コントローラ４６は、セキュリティ・インタフェース・モジュール７２を介してセキュリティ・データベース７０にアクセスすることができる。セキュリティ・データベース７０は、然るべきクライアント・アプリケーション５２を確認するための、または、どんな特定のインタフェースが特定のクライアント・アプリケーション５２に対して提供されるべきかをセキュリティ・データベース７０における索引（図示せず）でルックアップするための情報を含んでもよい。ユーザの名称及びパスワードは、然るべき許可を確認するためにセキュリティ・データベース７０に記憶してもよい。更に、あり得るクライアント・アプリケーション５２の索引（図示せず）は、そのクライアント・アプリケーション５２に提供されるべきインタフェースのリスト（図示せず）と共に記憶してもよい。もちろん、外部セキュリティ・データベース７４は、当業者に理解されるように、使用されアクセスされるものであってもよい。例えば、装置アクセス・コントローラ４６は、セキュリティのために、コンピュータ・ネットワーク（例えば、インターネット、イントラネット、ＬＡＮなど）を介して外部セキュリティ・データベース７４にアクセスしてもよい。図１０は、クライアント・アプリケーション５２に対して然るべきインタフェースを提供する場合に従うことができるステップを示す。
【００６０】
図７は、インタフェース・データベース６２において特定のインタフェース定義６０を識別するために、遠隔コンピュータ１６の能力表３０におけるインタフェース定義識別子６４が如何に使用できるかを示す。インタフェース・データベース６２とインタフェース定義６０は、ここに述べた情報の種類並びに当業者に有用の可能性ある任意の更なる情報を含んでもよい。例えば、インタフェース定義６０は、機能、変数、イベント、ファイル、挙動、状態、及びインタフェース定義６０に包含させるために適当であると当業者が見る遠隔コンピュータ１６及び埋め込みシステムまたはそのいずれかについての任意の他の情報のような表３に関して述べた情報を含んでもよい。
【００６１】
インタフェース定義６０から作成されたサービス情報４４は、オブジェクトの実施であってもよく、それにより、このサービス情報４４はカプセル化される。この実施例のユーザは、ホスト・コンピュータ１２でソフトウエア・オブジェクトを使用することによって遠隔コンピュータ１６のサービス情報４４をカプセル化してもよい。そのソフトウエア・オブジェクト（図示せず）は、遠隔コンピュータ・システム１４の少なくとも一部のオブジェクト表示を提供するものであってもよく、この遠隔コンピュータ・システム１４は、遠隔コンピュータ１６とこれに接続した装置１８、２０との両者を含むものである。オブジェクトの一部は、遠隔コンピュータ１６により提供されるサービスにアクセスするために主に使用してもよい。ホスト・コンピュータ１２でオブジェクトを実施することによって、開発者は、オブジェクト指向の解析及び設計の恩恵を提供する。遠隔コンピュータ１６で価値あるメモリ資源を使用せずにそのオブジェクト指向の解析及び設計の多くの恩恵を提供される。現在の設計では、遠隔コンピュータでの記憶に必要な品目のみが遠隔コンピュータ１６に記憶される。もちろん、当業者には、遠隔コンピュータ１６がかなりの記憶量に本当にアクセスするとしたら、更に多くの品目を遠隔コンピュータ１６に記憶することができるということを理解するであろう。
【００６２】
オブジェクトとは、データ構造の記載である。本明細書で使用されるオブジェクトは、データ及び機能またはそのいずれかをカプセル化する抽象的なデータ形式である。従って、当業者は、特定のプログラミング言語のオブジェクト指向の特徴を使用せずにオブジェクトに等価なデータ構造を実施することができよう。特に、本明細書で使用されるオブジェクトは、ソフトウエア開発者がＣ＋＋またはＳｍａｌｌｔａｌｋのようなオブジェクト指向言語を使用するということを要求はしない。本発明の範囲内のオブジェクトは、任意のプログラミング言語で実施することができる。例えば、オブジェクトは、Ｃ、Ｃ＋＋、パスカル、フォートラン、アセンブラ言語などで実施することができる。現代設計では、Ｃプログラミング言語が使用されている。
【００６３】
図８は、本システムと方法を実施する場合に従うことができるステップを示す流れ図である。一般的に、開示された実施例を使用してこの実施例から恩恵を受けたいと思う開発者は、ホスト・コンピュータ１２とインタフェース接続する可能性ある遠隔コンピュータ１６を備えた埋め込み装置を設計する。遠隔コンピュータ１６は、入出力用の外部装置１８、２０と通信を行う。開発者は、一般的に、装置入力１８を受信し、処理し、出力２０を発生する埋め込みアプリケーション２８の設計もする。ここに開示のシステムと方法から恩恵を受ける１つの方法は、図８に示してある。遠隔コンピュータの埋め込みアプリケーション２８を実際に設計すると共に、この設計を実施する前に、開発者は、自分の立場に適した利用可能な１つ以上のインタフェース定義６０を識別することができる７６。例えば、人が電話用の埋め込み装置を設計するとしたら、人は、電話機のカテゴリ、通信装置のカテゴリ、セルラ電話機のカテゴリ、または、インタフェース定義の任意の他の適当なカテゴリから適当なインタフェース定義６０を識別しよう。
【００６４】
インタフェース定義６０を７６で識別した後に、開発者は、インタフェース定義６０の仕様を満足させるために埋め込みアプリケーションを７８で設計して実行される。開発者は、インタフェース定義６０で定義された任意の機能、変数、イベント、ファイル、状態、挙動などが、その新しく設計されたアプリケーションに見られるということを保障すべきである。開発者は、装置によりサポートされたインタフェースが、ホスト・コンピュータ１２に対し全記載を送る必要なしに識別子６４により容易に識別できるように、遠隔コンピュータ１６に配置されるべきコード内にインタフェース定義識別子６４を８０で配置する。
【００６５】
装置が設計され、試験された後に、装置は、８２で製造または使用へと進められてもよい。他のコンピュータは、監視、制御、他の用途のために遠隔コンピュータ１６に接続してもよい。次にホスト・コンピュータ１２は、遠隔コンピュータ１６から任意のインタフェース定義識別子６４を要求して得てもよい。インタフェース定義識別子６４がホスト・コンピュータ１２に送られた後に、ホスト・コンピュータ１２は、８８において、インタフェース・データベース６２、６８で特定のインタフェース定義６０をルックアップしてもよい。インタフェース・データベース６２、６８から一度得られると、ホスト・コンピュータ１２は、インタフェース定義により規定される仕様に従って埋め込み装置のサービスに９０においてアクセスすることができる。
【００６６】
図２と図５に示したように、別々の埋め込みインタフェース・モジュール３４は書かれてもよい。この埋め込みインタフェース・モジュール３４は、ホスト・コンピュータ１２のソフトウエアから受信できる種々の要求に答えるように書かれてもよい。別のインタフェース・モジュール３４を作成することにより、埋め込みアプリケーション２８は、遠隔コンピュータ１６のサービスに焦点を維持してもよい。現在の設計では、埋め込みアプリケーション２８は、その主動作ループ内において埋め込みインタフェース・モジュール３４に対し機能呼び出しを行って、ホスト・コンピュータ１２からの要求に答える時間を提供するよう一般的には変形される。埋め込みインタフェース・モジュール３４は、何らかの処理を行って、主動作ループに戻る。インタフェース・モジュール３４は、主動作ループが任意の必要なイベント及び処理またはそのいずれかをし損なわないように短い充分な時間内に主動作ループに制御を戻すものとする。
【００６７】
他の好適な実施例では、埋め込みインタフェース・モジュール３４は、周期的に呼び出される割り込みサービス・ルーチンにより呼び出すことができる。
図９は、ホスト・コンピュータ１２におけるソフトウエア要素を実施する場合に従うことができるステップを示す流れ図である。もちろん、異なるステップは、本実施例を達成するために実施することができる。図９のステップは、本システム及び方法の原理を示し、本明細書に示した原理の広さについて制限することを意味しない。ホスト・コンピュータ１２のソフトウエアの動作を始動するために、ユーザは、装置アクセス・コントローラ４６を９２において始動してもよい。現在の設計では、装置アクセス・コントローラ４６は、遠隔コンピュータ４６と通信するための通信モジュール４２を有している。
【００６８】
現在の設計では、装置アクセス・コントローラ４６は、埋め込みインタフェース・モジュール３４を公知の状態に９４においてリセットする。これには、任意の状態変数、データなどのリセットを含む。本実施例では、埋め込みインタフェース・モジュール３４は、肯定応答を装置アクセス・コントローラ４６に送り返すことによってリセットしたことを通知する。
【００６９】
装置アクセス・コントローラ４６は、遠隔コンピュータ１６からインタフェース定義識別子６４を９６において要求もする。インタフェース定義識別子６４を介して、ホスト・コンピュータ１２で動作するソフトウエアは、遠隔コンピュータ１６がどんな能力を有しているかについて気づくであろう。次に、ホスト・コンピュータ１２は、インタフェース定義識別子の使用により任意の識別されたインタフェース定義を９８において検索しまたはルックアップする。インタフェース定義を得ることによって、ホスト・コンピュータ１２のソフトウエアは、遠隔コンピュータ１６の特定のサービスに関するサービス情報４４を作成し維持することができる。次に、ホスト・コンピュータ１２は、この情報をホスト・コンピュータ１２のユーザまたはこの情報を要求するクライアント・ソフトウエアに提供してもよい。
【００７０】
上述のように、本実施例は、オブジェクト指向技術を使用して実施してもよい。もしユーザがオブジェクト指向技術を使用したい場合、装置インタフェース・オブジェクトを１００において作成してもよい。この装置オブジェクトは、インタフェース定義から検索される情報の全てあるいは一部をカプセル化してもよい。
【００７１】
クライアント２２からの要求にサービスする場合に、ホスト・コンピュータ１２で使用されるべき任意のサーバは、始動する必要がある。例えば、ウェブ・サーバ４８は、クライアント・コンピュータ２２におけるウェブ・ブラウザからの要求にサービスするために１０２において始動することができる。更に、または代替的に、装置アクセス・サーバ５０は、遠隔コンピュータ１６についての情報にアクセスを行い、また遠隔コンピュータ１６へのアクセスを行う場合に１０４において始動することができる。図２に示したように、クライアント・アプリケーション５２及び装置アクセス・クライアント５４またはそのいずれかは、クライアント・コンピュータ２２で始動してもよい。ソフトウエアがホスト・コンピュータ１２で一度作動すると、このソフトウエアは、受信する要求にサービスするように１０６において動作する。このソフトウエアは、その動作を１０８において停止するまで一般的にその要求に１０６においてサービスし続ける。
【００７２】
クライアント・アプリケーション５２は、遠隔コンピュータ１６におけるサービスにまだ気づいていない場合、まず通常利用可能なサービスのリストを要求する。ウェブ・サーバ４８、装置アクセス・サーバ５０または類似のサーバのいずれかであるサーバは、要求を受信してサービス情報を検索する。本実施例の特定の実施がオブジェクト指向のアプローチを使用するか否かに依存して、サーバは、サービス情報４４から直接またはこの情報を返すように設計され実施された機能から、または装置オブジェクトからサービス情報を検索することができる。
【００７３】
次に、サーバは、このサービス情報をクライアント５２に送る。クライアントは如何なるサービスが遠隔コンピュータ１６で利用できるかを一度知ると、そのサービスに関する特定のデータ及び動作またはそのいずれかを要求してもよい。クライアントは、特定の変数値を要求してもよい。クライアント・ソフトウエア５２を介してユーザは、遠隔コンピュータ１６におけるイベントまたはデータの状態を知るために、この遠隔コンピュータ１６に特定の変数値を要求してもよい。例えば、遠隔コンピュータ１６は、温度センサと電子通信状態にあってもよく、変数に温度センサのデータを記憶してもよい。ユーザは、遠隔コンピュータ１６でどんな温度が検出されるかを知るようにするためにその変数値がどんなものであるかを知りたいことがあろう。
【００７４】
サーバは、特定値の要求を受けて、適当な装置オブジェクトまたは機能的に等価なソフトウエアに変数を要求してもよい。その要求の受信時に、アクセス・コントローラは、埋め込みインタフェース・モジュール３４にその特定値を要求するメッセージを送る。ホスト・コンピュータと遠隔コンピュータとの間のハードウエア及びソフトウエアの通信路は、図２に関して示され記載されたものであってもよい。
【００７５】
処理についての次の呼び出し時に、埋め込みインタフェース・モジュール３４は、メッセージを受信して、その変数にアクセスし、その変数に含まれる値を読み取る。その変数値を検索した後、埋め込みインタフェース・モジュール３４は、その値を、通信路を介して装置オブジェクトに送る。装置オブジェクトは、この値を一度受信すると、その値をサーバに送り返す。次に、サーバは、クライアントからの要求に答えて、その変数値をクライアント・ソフトウエアに送る。
【００７６】
図６に関して述べたように、本実施例は、然るべきアクセスを遠隔コンピュータ１６に提供するセキュリティ方法を実施してもよい。図１０は、然るべきインタフェースをクライアント・アプリケーションに提供するためにセキュリティ・コードを使用して従うことができるステップを示す流れ図である。本実施例では、クライアント・アプリケーション５２は、装置アクセスの要求をホスト・コンピュータ１２に１１０において送ってもよい。装置アクセス・サーバ５０は、その要求を１１２において受信して、所有してもよい任意のセキュリティ・コードについてクライアント・アプリケーション５２に質問してもよい。次に、クライアント・アプリケーション５２は、所有してもよい任意のセキュリティ・コードを１１４において送ることができる。
【００７７】
クライアント・アプリケーション５２がどんなセキュリティ・コードも送らない場合、装置アクセス・サーバ５０は、デフォルト・インタフェースまたは任意のセキュリティ・コードを要求しないインタフェースを１１６において提供してもよい。セキュリティ・コードが送られると、装置アクセス・サーバ５０は、セキュリティ・データベース７０でそのコードをルックアップし、そのコードに基づいてどんなインタフェースが提供されるべきかを見い出し、次に、データベース７０により示されるインタフェースをクライアント・アプリケーション５２に１１８において提供してもよい。次に、ホスト・コンピュータ１２は、任意のクライアント・アプリケーション５２により受信された要求にサービスする状態に１２０において入ってもよい。
【００７８】
ｅｍＷａｒｅ、Ｉｎｃ．からの市販のソフトウエアは、本実施例の実施において使用される。ｅｍＷａｒｅ、Ｉｎｃ．は、そのウェブ・サイトを介してｗｗｗ．ｅｍＷａｒｅ．ｃｏｍ．で接触することができる。当業者は、ｅｍＷａｒｅからの市販のソフトウエア品目が如何に本実施例と使用できるかを理解しよう。次は、本実施例で使用されているｅｍＷａｒｅのテクノロジの一般的基本的記載である。
【００７９】
ｅｍＷａｒｅのビジネスは、電話機、家庭装置、オフィス装置、ＡＴＭ、セキュリティ・システム、ＶＣＲ、自動車などを含む、今日の世界で使用されている多くの電子装置を管理するマイクロ・コントローラに集中している。マイクロ・コントローラは、何百万のインテリジェント電子装置内に埋め込まれている。
【００８０】
ｅｍＷａｒｅは、分散型ネットワークに基づく装置制御を提供するテクノロジ及びソフトウエアを開発している。ｅｍＷａｒｅ’ｓ　Ｅｍｂｅｄｄｅｄ  Ｍｉｃｒｏ  Ｉｎｔｅｒｎｅｔｗｏｒｋｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ（ＥＭＩＴ）のソフトウエアは、埋め込みマイクロ・コントローラからソフトウエアの大部分を移動して、それをネットワークを介して更に有能なコンピュータに分配するように設計されている。ＥＭＩＴは、現存のインターネット・テクノロジに対し影響力を行使するように開発されてもいる。
【００８１】
ＥＭＩＴソフトウエアの使用には、次を含む種々の要素が係わる。すなわち、顧客の埋め込みアプリケーション２８、（埋め込みインタフェース・モジュール３４に相関関係を有する）ｅｍＭｉｃｒｏソフトウエア、ｅｍＧａｔｅｗａｙソフトウエア、（通信モジュール３８と４２に相関関係を有する）ｅｍＮｅｔソフトウエア、及び顧客の監視／制御アプリケーション５２。一般的に、ｅｍＷａｒｅの潜在的な顧客は、彼らの監視及び制御能力を高めるためにｅｍＷａｒｅのＥＭＩＴソフトウエアを彼らが配置を計画している埋め込み環境を既に有している。一般的に、これらの埋め込み環境は、埋め込み装置１４、ホスト・コンピュータ１２及びクライアント・コンピュータ２２を包含する。
【００８２】
ｅｍＭｉｃｒｏは、本実施例において遠隔コンピュータ１６からのサービス情報をホスト・コンピュータ１２に中継するために遠隔コンピュータ１６で使用される。サービス情報とは、遠隔コンピュータ１６で動作する埋め込みアプリケーション２８の機能、変数、イベント及びファイルについての情報である。
ホスト・コンピュータ１２とｅｍＭｉｃｒｏを動作する遠隔コンピュータ１６との通信は、通常、ＲＳ２３２、ＲＳ４８４、ＲＦまたはＩＲのような軽量のネットワークを介して達成される。ｅｍＮｅｔ要素は、ｅｍＭｉｃｒｏとホスト・コンピュータ１２のソフトウエアとの間の通信を扱う役目を有している。
【００８３】
上記の記載から、本実施例は、埋め込み装置に対するアクセスとこの埋め込み装置と電子通信を行うコンピュータから埋め込み装置で利用可能なサービスとを提供するということが理解されよう。
ここに開示した実施例は、その主旨または本質的な特徴から逸脱せずに他の特定形態で実施してもよい。ここに記載の実施例は、全ての点で単に例示的で限定的ではないと考慮されるべきである。従って、本発明の範囲は、上記の記載よりもむしろ上記の請求項により示される。請求項の意味及び均等範囲に入る全ての変更は、本発明の範囲内に入るべきものである。
【図面の簡単な説明】
【図１】
本実施例に含まれる主なハードウエア要素のブロック線図。
【図２】
実施例に含まれる主なハードウエア及びソフトウエアの要素のブロック線図。
【図３】
一群の全ての埋め込み装置及びこの群内の特定の装置を含むように形成してもよいその群内の特定の小グループを示す図。
【図４】
特定の埋め込み装置とこの埋め込み装置がサポートするインタフェースとの間の一対多対応が存在することができるということを示す表。
【図５】
一実施例の遠隔コンピュータおよびサービス表と能力表に含めることのできる品目を示す。
【図６】
一実施例のホスト・コンピュータ、このホスト・コンピュータで使用することができるソフトウエアの要素または機能性を示す。
【図７】
一実施例の能力表のインタフェース定義識別子及びインタフェース・データベースにおける特定のインタフェース定義に対するそれらの相関関係を示す。
【図８】
本実施例の実施の場合に従うことのできるステップを示す流れ図。
【図９】
ホスト・コンピュータでソフトウエアの要素を実施する場合に従うことのできるステップを示す流れ図。
【図１０】
然るべきインタフェースをクライアント・アプリケーションに提供するためにセキュリティ・コードを使用する場合に従うことができるステップを示す流れ図。
【図１】
2004500668.tif 000006
【図２】
2004500668.tif 000007
【図３】
2004500668.tif 000008
【図４】
2004500668.tif 000009
【図５】
2004500668.tif 000010
【図６】
2004500668.tif 000011
【図７】
2004500668.tif 000012
【図８】
2004500668.tif 000013
【図９】
2004500668.tif 000014
【図１０】
2004500668.tif 000015
【国際公開パンフレット】
2004500668.tif 000016
2004500668.tif 000017
2004500668.tif 000018
2004500668.tif 000019
2004500668.tif 000020
2004500668.tif 000021
2004500668.tif 000022
2004500668.tif 000023
2004500668.tif 000024
2004500668.tif 000025
2004500668.tif 000026
2004500668.tif 000027
2004500668.tif 000028
2004500668.tif 000029
2004500668.tif 000030
2004500668.tif 000031
2004500668.tif 000032
2004500668.tif 000033
2004500668.tif 000034
2004500668.tif 000035
2004500668.tif 000036
2004500668.tif 000037
2004500668.tif 000038
2004500668.tif 000039
2004500668.tif 000040
2004500668.tif 000041
2004500668.tif 000042
2004500668.tif 000043
2004500668.tif 000044
2004500668.tif 000045
2004500668.tif 000046
2004500668.tif 000047
2004500668.tif 000048
2004500668.tif 000049
2004500668.tif 000050
2004500668.tif 000051
2004500668.tif 000052
【国際調査報告】
2004500668.tif 000053