(57)【特許請求の範囲】
【請求項１】
装置を監視および／または制御するコントローラによって実行される方法であって、前記方法は、
周期的にサーバにメッセージを送ることによってサーバをポーリングするステップを含み、前記メッセージは、当該装置を他の同一の装置から区別する情報を有しており、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを有しており、
前記サーバからの一つの返信において、かつ、前記メッセージに応答して、当該装置に特有のデータを受信するステップを含み、前記データは、前記動作パラメータの更新済みの値を有しており、
当該装置の構成、および、当該装置の動作に影響を与えるために前記データを用いるステップを含み、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、方法。
【請求項２】
前記メッセージは、当該装置の複数の動作パラメータを含み、前記データは、前記複数の動作パラメータの現在の値とは異なる更新済みの値を含む、請求項１記載の方法。
【請求項３】
前記動作のスケジュールは、前記コントローラによって実行される動作を含み、
前記データを用いるステップは、さらに、
前記スケジュールから動作を解析するステップと、
当該装置の構成および当該装置の動作の少なくとも一つに影響をおよぼす動作を実行するステップとを含む、請求項１記載の方法。
【請求項４】
前記メッセージは、タイプ、および／または一つ以上の通し番号と汎用固有識別子とを識別する、請求項１記載の方法。
【請求項５】
HTTPコマンドは、拡張マークアップ言語コード（Extensible Markup Language）を含む、請求項１記載の方法。
【請求項６】
装置を監視および／または制御するコントローラに対してデータを送るためにサーバによって実行される方法であって、
前記方法は、
ネットワークを介して前記コントローラからメッセージを受けるステップを含み、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを含み、
前記メッセージの中にある情報から当該装置を識別するステップを含み、前記情報は、当該装置を他の同一の装置から識別し、
当該装置に特有なデータを検索するステップを含み、前記データは、前記動作パラメータの更新済みの値を含んでおり、
前記サーバから前記コントローラに対して、前記メッセージに対する一つの返信において、データを送るステップを含み、前記データは、当該装置の構成と、当該装置の動作とに影響を与えるためのものであり、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、方法。
【請求項７】
前記メッセージの中にある前記情報は、タイプ、および／または一つ以上の通し番号と汎用固有識別子とを含み、
当該装置は、前記タイプ、および／または一つ以上の前記通し番号と前記汎用固有識別子とに基づいて識別される、請求項６記載の方法。
【請求項８】
当該装置を識別する前に、前記メッセージから、前記タイプおよび一つ以上の前記通し番号と汎用固有識別子とを解析するステップをさらに含む、請求項７記載の方法。
【請求項９】
前記メッセージは、当該装置の複数の動作パラメータを含み、
前記データは、前記複数の動作パラメータの更新済みの値を含む、請求項６記載の方法。
【請求項１０】
前記動作のスケジュールは、前記コントローラによって実行される動作を含む、請求項６記載の方法。
【請求項１１】
ウェブサイトから当該装置に特有なデータを受けるステップと、
メモリに前記データを格納するステップとをさらに含み、
前記データは、前記メモリから検索される、請求項６記載の方法。
【請求項１２】
装置を監視および／または制御するコントローラによって実行される命令を格納した機械読み取り可能な記憶媒体であって、前記命令は、
周期的にサーバにメッセージを送ることによってサーバをポーリングする命令であり、前記メッセージは、当該装置を他の同一の装置から区別する情報を有しており、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを有しており、
前記サーバからの一つの返信において、かつ、前記メッセージに応答して、当該装置に特有のデータを受信する命令であり、前記データは、前記動作パラメータの更新済みの値を有しており、
当該装置の構成、および、当該装置の動作に影響を与えるために前記データを用いる命令であり、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、機械読み取り可能な記憶媒体。
【請求項１３】
前記メッセージは、当該装置の複数の動作パラメータを含み、前記データは、前記複数の動作パラメータの現在の値とは異なる、更新済みの値を含む、請求項１２記載の機械読み取り可能な記憶媒体。
【請求項１４】
前記動作のスケジュールは、前記コントローラによって実行される動作を含み、
前記データを用いるステップは、さらに、
前記スケジュールから動作を解析するステップと、
当該装置の構成および当該装置の動作の少なくとも一つに影響をおよぼす動作を実行するステップとを含む、請求項１２記載の機械読み取り可能な記憶媒体。
【請求項１５】
前記メッセージは、タイプ、および／または一つ以上の通し番号と汎用固有識別子とを識別する、請求項１２記載の機械読み取り可能な記憶媒体。
【請求項１６】
HTTPコマンドは、拡張マークアップ言語コードを含む、請求項１２記載の機械読み取り可能な記憶媒体。
【請求項１７】
装置を監視および／または制御するコントローラに対してデータを送るためにサーバによって実行される命令を格納した機械読み取り可能な記憶媒体であって、前記命令は、
ネットワークを介して前記コントローラからメッセージを受けるための命令を含み、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを有しており、
前記メッセージの中にある情報から当該装置を識別するための命令を含み、前記情報は、当該装置を他の同一の装置から識別し、
当該装置に特有なデータを検索するための命令であり、前記データは、前記動作パラメータの更新済みの値を含んでおり、
データを、前記サーバから前記コントローラに、前記メッセージに対する一つの返信において送るための命令であり、
前記データは、当該装置の構成と、当該装置の動作とに影響を与えるためのものであり、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、機械読み取り可能な記憶媒体。
【請求項１８】
前記メッセージの中にある前記情報は、タイプ、および／または一つ以上の通し番号と汎用固有識別子とを含み、
当該装置は、前記タイプ、および／または一つ以上の前記通し番号と前記汎用固有識別子とに基づいて識別される、請求項１７記載の機械読み取り可能な記憶媒体。
【請求項１９】
当該装置を識別する前に、前記メッセージから、前記タイプおよび一つ以上の前記通し番号と汎用固有識別子とを解析するための命令をさらに含む、請求項１８記載の機械読み取り可能な記憶媒体。
【請求項２０】
前記メッセージは、当該装置の複数の動作パラメータを含み、
前記データは、前記複数の動作パラメータの更新済みの値を含む、請求項１７記載の機械読み取り可能な記憶媒体。
【請求項２１】
前記動作のスケジュールは、前記コントローラによって実行される動作を含む、請求項１７記載の機械読み取り可能な記憶媒体。
【請求項２２】
ウェブサイトから当該装置に特有なデータを受けるための命令と、
メモリに前記データを格納するための命令とをさらに含み、
前記データは、前記メモリから検索される、請求項１７記載の機械読み取り可能な記憶媒体。
【請求項２３】
装置を監視および／または制御するためのコントローラであって、前記コントローラは、以下の機能を実行するためのものであり、前記以下の機能は、
周期的にサーバにメッセージを送ることによってサーバをポーリングするステップを含み、前記メッセージは、当該装置を他の同一の装置から区別する情報を有しており、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを有しており、
前記サーバからの一つの返信において、かつ、前記メッセージに応答して、当該装置に特有のデータを受信するステップを含み、前記データは、前記動作パラメータの更新済みの値を有しており、
当該装置の構成、および、当該装置の動作に影響を与えるために前記データを用いるステップを含み、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、コントローラ。
【請求項２４】
前記メッセージは、当該装置の複数の動作パラメータを含み、前記データは、前記複数の動作パラメータの現在の値とは異なる、更新済みの値を含む、請求項２３記載のコントローラ。
【請求項２５】
前記動作のスケジュールは、前記コントローラによって実行される動作を含み、
前記データを用いるステップは、さらに、
前記スケジュールから動作を解析するステップと、
当該装置の構成および当該装置の動作の少なくとも一つに影響をおよぼす動作を実行するステップとを含む、請求項２３記載のコントローラ。
【請求項２６】
前記メッセージは、タイプおよび／または一つ以上の通し番号と、汎用固有識別子とを識別する、請求項２３記載のコントローラ。
【請求項２７】
HTTPコマンドは、拡張マークアップ言語コードを含む、請求項２３記載のコントローラ。
【請求項２８】
装置を監視および／または制御するコントローラに対してデータを送るためのサーバであって、前記サーバは、以下の機能を実行するためのものであり、前記以下の機能は、
ネットワークを介して前記コントローラからメッセージを受けるステップを含み、前記メッセージは、ハイパーテキスト転送プロトコル（HTTP）メッセージと、当該装置の動作パラメータとを含んでおり、
前記メッセージの中にある情報から当該装置を識別するステップを含み、前記情報は、当該装置を他の同一の装置から識別し、
当該装置に特有なデータを検索するステップを含み、前記データは、前記動作パラメータの更新済みの値を含んでおり、
データを、前記サーバから前記コントローラに、前記メッセージに対する一つの返信において送るステップを含み、
前記データは、当該装置の構成と、当該装置の動作とに影響を与えるためのものであり、
前記コントローラは、内部ネットワーク上にあり、前記サーバは、外部ネットワーク上にあり、前記コントローラは、前記外部ネットワークから認識できないローカルアドレスを有しており、結果として、前記コントローラは、前記サーバからリモートでアドレス指定不可能であり、
前記データは、さらに、当該装置の所有者に関連する情報に基づき、かつ、当該装置によって実行される動作のスケジュールを含む、サーバ。
【請求項２９】
前記メッセージの中にある前記情報は、タイプ、および／または一つ以上の通し番号と汎用固有識別子とを含み、
当該装置は、前記タイプおよび／または一つ以上の前記通し番号と、前記汎用固有識別子とに基づいて識別される、請求項２８記載のサーバ。
【請求項３０】
当該装置を識別する前に、前記メッセージから、前記タイプおよび一つ以上の前記通し番号と汎用固有識別子とを解析するステップをさらに含む、請求項２９記載のサーバ。
【請求項３１】
前記メッセージは、当該装置の複数の動作パラメータを含み、
前記データは、前記複数の動作パラメータの更新済みの値を含む、請求項２８記載のサーバ。
【請求項３２】
前記動作のスケジュールは、前記コントローラによって実行される動作を含む、請求項２８記載のサーバ。
【請求項３３】
ウェブサイトから当該装置に特有なデータを受けるステップと、
メモリに前記データを格納するステップとをさらに含み、
前記データは、前記メモリから検索される、請求項２８記載のサーバ。
【発明の詳細な説明】
【０００１】
背景
本発明は、デバイスの特定のインスタンス用のリモート・サーバからデータを検索するデバイスに組み込まれたコントローラ（「組込みコントローラ」）に関する。
【０００２】
デバイスは、その動作を監視し制御するマイクロプロセッサなどの組込みコントローラを含むことができる。洗濯機、皿洗い機、テレビジョンなどの家庭用電化製品およびロボット、コンベア、モータなどの製造機器を含むがこれらに限らないあらゆる種類のデバイスが、組込みコントローラを有することができる。
【０００３】
組込みコントローラは、「組込みデバイス」とも呼ばれ、インタネットとのインタフェースを用いてローカル・エリア・ネットワーク（LAN）などの内部ネットワークに接続されることが多い。内部ネットワーク上の他のデバイスは、内部ネットワーク上で組込みコントローラと通信することができる。しかし、組込みコントローラは一般に、インタネットからはアドレス指定できない。
【０００４】
概要
一般に、本発明は、一局面では、サーバからデータを検索するデバイスに組み込まれたコントローラに関する。コントローラは、デバイスのあるインスタンスを識別するコマンドをサーバに送信し、コマンドに応答して、デバイスのこのインスタンスに特有のデータをサーバから受信する。
【０００５】
本発明のこの局面は、以下のうちの１つまたは複数を含んでいてもよい。コマンドはデバイスの動作パラメータを含んでよく、データは動作パラメータの更新済みの値を含んでいてもよい。コマンドはデバイスの複数の動作パラメータを含んでよく、データは、動作パラメータの現在の値とは異なる更新済みの値を含んでいてもよい。
【０００６】
データは動作パラメータのリストを含んでいてもよい。この場合、組込みコントローラは、リストにおける動作パラメータを含む第２のコマンドをサーバに送信し、第２のコマンドに応答して、第２のコマンドに含まれる動作パラメータのうちの１つまたは複数の動作パラメータの更新済みの値をサーバから受信する。データは、コントローラによって実行すべき動作のリストを含んでいてもよい。この場合、組込みコントローラは、リストにおける動作を解析し、リストにおける動作を実行する。
【０００７】
データは、デバイスの環境設定ファイルを含んでいてもよい。コマンドは、デバイスのインスタンスをデバイスタイプならびに／または通し番号および汎用固有識別子のうちの１つもしくは複数によって識別することができる。組込みコントローラはコマンドをサーバに定期的に送信することができる。サーバはハイパーテキスト転送プロトコルを実行することができ、コマンドは拡張マークアップ言語コードを含んでいてもよい。
【０００８】
一般に、本発明は、他の局面では、データをネットワーク上で、デバイスに組み込まれたコントローラに送信するサーバに関する。サーバは、組込みコントローラからコマンドを受信し、コマンド中の情報からデバイスのインスタンスを識別し、デバイスのこのインスタンスに特有のデータを検索し、このデータを組込みコントローラに送信する。
【０００９】
本発明のこの局面は、以下の特徴のうちの１つまたは複数を含んでいてもよい。コマンドは、デバイスタイプならびに／または通し番号および汎用固有識別子のうちの１つもしくは複数を含んでいてもよい。デバイスのインスタンスは、デバイスタイプならびに／または通し番号および汎用固有識別子のうちの１つもしくは複数に基づいて識別することができる。サーバは、デバイスのインスタンスを識別する前に、コマンドから得たデバイスタイプならびに／または通し番号および汎用固有識別子のうちの１つもしくは複数を解析することができる。
【００１０】
コマンドは、デバイスの動作パラメータを含んでいてもよい。データは、動作パラメータの更新済みの値を含んでいてもよい。データは、デバイス用の動作パラメータのリストを含んでいてもよい。サーバは、動作パラメータのリストにおける動作パラメータを含む第２のコマンドを組込みコントローラから受信し、動作パラメータの更新済みの値を得て、動作パラメータの更新済みの値を組込みコントローラに送信する。
【００１１】
データは、組込みコントローラによって実行すべき動作のリストを含んでいてもよい。データは、デバイスの環境設定ファイルを含んでいてもよい。サーバは、デバイスのインスタンスに特有のデータを受信し、このデータをメモリに格納することができ、データはこのメモリから検索される。デバイスのインスタンスに特有のデータは、サーバによって生成されるウェブ・ページを介して受信することができる。サーバはハイパーテキスト転送プロトコルを実行することができ、コマンドは拡張マークアップ言語コードを含んでいてもよい。
【００１２】
一般に、本発明は、他の態様では、コンピュータ・ネットワーク上で通信することができるデバイスに組み込まれたコントローラと、コンピュータ・ネットワーク上で通信することのできるサーバとを含むシステムに関する。組込みコントローラは、デバイスのインスタンスを識別するコマンドをコンピュータ・ネットワーク上でサーバに送信し、サーバは、これに応答して、（ｉ）コマンドに基づいてデバイスのインスタンスを識別し、（ii）デバイスのインスタンスに特有のデータを検索し、（iii）データをコンピュータ・ネットワークを介して組込みコントローラに送信する。
【００１３】
本発明のこの局面は以下の特徴のうちの１つまたは複数を含んでいてもよい。組込みコントローラをコンピュータ・ネットワークからはリモートアドレス指定できない。コンピュータ・ネットワークはインタネットである。サーバはハイパーテキスト転送プロトコルを実行し、コマンドは拡張マークアップ言語コードを含んでいてもよい。
【００１４】
本発明の他の特徴および利点は、特許請求の範囲および図面を含む以下の説明から明らかになると思われる。
【００１５】
説明
図１はネットワーク10を示している。ネットワーク10は、組込みコントローラ17を含むデバイス11を含んでいる。デバイス11は、組込みコントローラ17によって監視され制御される機能を有する任意の種類の装置またはシステムである。
【００１６】
デバイス11は、LANなどの内部ネットワーク12に接続されている。ルータまたはモデム14は、インタネット／ワールド・ワイド・ウェブ（ウェブ（Web））などの外部ネットワーク15に内部ネットワーク12を結合する。外部ネットワーク15は、TCP/IP（Transmission Control Protocol/Internet Protocol）または他の何らかの適切なプロトコルを実行する。ネットワーク接続は、イーサネット、電話回線、無線、または他の伝送媒体を介して行われる。
【００１７】
外部ネットワーク15は、サーバ19、すなわちコンピュータまたは任意の他の処理デバイスを含んでいる。サーバ19は、外部ネットワーク15および内部ネットワーク12上で組込みコントローラ17と通信する。組込みコントローラ17は、内部ネットワーク12内で利用できるローカルIP（Internet Protocol）アドレスを有している。しかし、このローカルIPアドレスは、サーバ19のような外部ネットワーク15上のデバイスでは認識できない。そのため、サーバ19はデバイス11を直接アドレス指定することができない。
【００１８】
組込みコントローラ
組込みコントローラ17は、ウェブ・クライアント・アプリケーション21およびオペレーティング・ソフトウェア22を含むソフトウェア20を実行する。ウェブ・クライアント・アプリケーション21は、組込みコントローラ17が外部ネットワーク15上で通信するのを可能にするTCP/IPプロトコル・スタックを含んでいる。デバイス・オペレーティング・ソフトウェア22は、ウェブ・クライアント・アプリケーション21とデータベース24とのインタフェースを構成する。デバイス・オペレーティング・ソフトウェア22によって、組込みコントローラ17は、データベース24に格納されているデータを検索し、データをデータベース24に格納する。
【００１９】
データベース24は、デバイス11上のメモリ25または組込みコントローラ17の内部のメモリ25に格納されている。データベース24は、デバイス11に関する動作パラメータ、環境設定ファイル、および識別情報を含むデータを格納している。
【００２０】
動作パラメータは、組込みコントローラ17によって実施される、デバイス11に対する設定および／または制御指示を構成する。データベース24に格納される動作パラメータの種類はデバイス11の性質に依存する。たとえば、デバイス11が加熱／冷却システムである場合、動作パラメータは、温度レベル、湿度レベル、空気流制御値、ベント／ダクト開閉制御値、およびファン・モータ速度設定値を含んでいてもよい。環境設定ファイルは、デバイス11のインスタンスに関する１組の１つまたは複数の動作パラメータを含むファイルである。
【００２１】
「インスタンス」とは、他の同一のデバイスと区別されるデバイス11の特定の識別情報である。データベース24に格納されている識別情報によってデバイス11のインスタンスが識別される。この識別情報には、デバイスの種類、デバイスの一般的な（または「馴染み深い」）名前、デバイスの製造業者、デバイスのモデル名、デバイスのモデル番号、デバイスの通し番号、デバイスの汎用固有識別子（UUID）を識別するデータが含まれるが、これらに限らない。
【００２２】
デバイスタイプは、デバイスの名前を含む、デバイスのURL（Uniform resource locator）を指定する。この情報は、デバイスのサーバ19に関連し、サーバ19によって生成されるウェブ・サイトを識別する。たとえば、デバイスタイプは、組込みコントローラを含むSony(登録商標) Vega(登録商標) XBR400(登録商標)テレビジョンの場合、以下のようになる。
www.SonyVideo.com/television/Vega/XBR400
デバイスの一般的な名前は、デバイスが一般にどのようなものとして知られているかを示し、たとえば「テレビジョン」である。製造業者は、デバイスの製造業者を識別し、たとえばSony(登録商標)である。モデル名は、デバイスの特定のモデルを識別し、たとえばXBR400(登録商標)である。通し番号は、デバイスの特定のインスタンスの通し番号を識別し、たとえば53266Dである。UUIDはデバイスのこのインスタンスの汎用識別子であり、たとえば4A89EA70-73B4-11d4-80DF-0050DAB7BAC5である。上に示したデータで、デバイス11のこのインスタンスに固有のデータは通し番号およびUUIDだけである。
【００２３】
サーバ
サーバ19は、HTTP（ハイパーテキスト転送プロトコル（Hypertext Transfer Protocol））を実行するコンピュータである。サーバ19は、ソフトウェアを実行して後述の機能を実行する、マイクロプロセッサなどのコントローラ27を含んでいる。用語の混乱を避けるために、以下では、サーバ19のコントローラ27のソフトウェアがこれらの機能を実行するにもかかわらず、これらの機能がサーバ19によって実行されるものとして説明する。
【００２４】
サーバ19は、ウェブ・ソフトウェア29を実行して外部ネットワーク15上で通信する。ウェブ・サーバ・ソフトウェア29は、デバイス11に関連するウェブ・ページも管理する。ウェブ・ページ（図示せず）は、デバイスに関する更新済みのパラメータを入力することのできる、デバイス11の所有者などのユーザのコンピュータ上に表示される。これらの入力された更新済みの動作パラメータは、外部ネットワーク15上でウェブ・サーバ・ソフトウェア29に送信される。ウェブ・サーバ・ソフトウェア29は、更新済みのパラメータをデータベース30に格納する。
【００２５】
ウェブ・サーバ・ソフトウェア29は、アプリケーション論理32を用いてデータベース30にデータを格納し、かつデータベース30からデータを検索する。アプリケーション論理32は、CGI（Common Gateway Interface）プロトコルを用いてデータベース30にアクセスするソフトウェアである。CGIは、データベースにアクセスするための公知のプロトコルである。動作パラメータは、データベース30に個別に格納することも、あるいはデバイス11のあるインスタンス用の環境設定ファイルの一部として格納することもできる。
【００２６】
データベース30は、サーバ19の内部メモリ31または外部メモリ31に格納されている。データベース30は、上記で指摘した動作パラメータを含む、デバイス11に関連するデータを格納する。デバイス11に格納できる他のデータについて以下に説明する。
【００２７】
データ転送プロセス
組込みコントローラ17は、ソフトウェア20を実行して動作パラメータなどのデータをリモート・サーバ19から検索する。サーバ19はソフトウェア34を実行してデータを組込みコントローラ17に送信する。図２は、これらのプロセスを詳しく示している。「組込みコントローラ」と示された図２の左半分は、組込みコントローラ17によって実行されるプロセス40を示し、「サーバ」と示された図２の右半分は、サーバ19によって実行されるプロセス41を示している。
【００２８】
プロセス40は、コマンドを生成し、サーバ19に送信する（201）。コマンドまたはその修正バージョンは、組込みコントローラ17によってサーバ19に定期的に送信される。組込みコントローラ17は、このコマンドにより、サーバ19をポーリングして、デバイス11の新しい／更新済みの動作パラメータがあるかどうかを判定する。
【００２９】
コマンドは、デバイス11を識別するデータを含んでいる。データは、デバイス11の特定のインスタンスを識別し、デバイスタイプ・フィールドと、デバイス通し番号フィールドおよびデバイスUUIDの一方または両方とを含んでいる。コマンドは、上記に記載したように、一般名フィールド、製造業者名フィールド、モデル名フィールド、モデル番号フィールドを含んでいてもよい。
【００３０】
コマンドは、HTTP GETコマンドでもHTTP POSTコマンドでもよい。これらのコマンドに含まれるデータは類似しており、違いは、HTTP GETコマンドが、動作パラメータを含む、環境設定ファイルなどのドキュメントを検索し、HTTP POSTコマンドが個々の動作パラメータを検索することである。HTTP GETコマンドの一例は付録Ａに示されており、HTTP POSTコマンドの一例は付録Ｂに示されている。
【００３１】
付録ＡおよびＢに示されているHTTP POSTコマンドおよびHTTP GETコマンドはXML（拡張マークアップ言語（Extensible Markup Language））コマンドを含んでいる。XMLは、XMLコード内のフィールドが変数およびXMLコード内での変数の値を識別するという点で自己記述コンピュータ言語である。たとえば、付録に示されているように、「製造業者」フィールドは、製造業者、たとえばSony(登録商標)を識別し、フィールドの開始位置を示す「<manufacturer>」およびフィールドの終了位置を示す「</manufacturer>」によって区切られている。XMLが使用されるのは、サーバ19および組込みコントローラ17によって比較的容易に生成、解析、読み取りができるからである。
【００３２】
上記で指摘したように、GETコマンドはサーバ19からドキュメントを検索するのに用いられる。検索すべきドキュメントは、GETコマンド内のフィールドに対応し、特にデバイスタイプ・フィールド、通し番号フィールド、および／またはUUIDフィールドに対応する。これに対して、POSTコマンドは、個々の動作パラメータを検索するのに用いられる。検索すべき動作パラメータはPOSTコマンド自体にリストされる。たとえば、付録Ｂに示されているように、動作パラメータには、仮想の「ウィジェット（widget）」デバイスに関する空気流値、湿度値、モータ値、およびベント値が含まれる。これらのパラメータの現在の値は、付録Ｂに示されているPOSTコマンドに以下のように指定される。
0004808911.tif 000002
これらのパラメータの更新済みの値は、サーバ19によって応答POSTコマンドで組込みコントローラ17に返される。これらのパラメータの更新済みの値は、付録Ｂに示されているPOSTコマンドに以下のように指定される。
0004808911.tif 000003
【００３３】
上に示したように、POSTコマンドとGETコマンドは共に、デバイスタイプ・フィールドにデバイスのURLを含んでいる。以下に説明するように、これによって、サーバ19は、デバイス11に関連するウェブ・サイトにアクセスし、その後、GETコマンドの場合は、サーバ19によってデバイス用に生成された特定のウェブ・ページを検索する。POSTコマンドは、GETコマンドとは異なり、ドキュメントではなくパラメータを検索するので、デバイスのURLを含む必要がないことに留意されたい。
【００３４】
再び図２を参照すると、（サーバ19における）プロセス41では、組込みコントローラ17からコマンドが受信される（202）。プロセス41では、コマンド内の「POST/CONTROL HTTP/1.1」（このヘッダについては付録ＡおよびＢを参照されたい）などのヘッダに基づいて、コマンドをPOSTコマンドまたはGETコマンドとして識別する。プロセス41では、XMLパーサを用いて、コマンドにおけるデバイスタイプ、通し番号、UUIDのような様々な識別フィールドを解析する（203）。
【００３５】
プロセス41では、コマンドから解析された情報に基づいてデバイス11のインスタンスが識別される（204）。すなわち、プロセス41では、デバイスタイプ・フィールド、通し番号フィールド、UUIDフィールドの情報を用いてインスタンスが識別される。
【００３６】
コマンドがPOSTコマンドである場合
コマンドから得た残りの識別情報を用いて、データベース30における探索が、デバイス11の特定のインスタンスに関するデータに限定される。デバイスの通し番号および／またはUUIDを用いてデバイス11に特有の動作パラメータが検索される。
【００３７】
適切なデータが識別された後（204）、プロセス41では、アプリケーション論理32を用いてこのデータが検索される（205）。プロセス41では、動作パラメータの値が、POSTコマンドに含まれている値と比較される。値が同じである場合、プロセス41では、デバイス11の新しい／更新済みの値はない旨の表示が返される。動作パラメータの値が異なる場合、プロセス41では、POSTコマンドに適切な更新済み値フィールドが付加され、POSTコマンドが更新済みの動作パラメータと共に組込みコントローラ17に送り返される（206）。したがって、POSTコマンドにおいて組込みコントローラ17に返されるのは、元の値とは異なる動作パラメータだけである。
【００３８】
コマンドがGETコマンドである場合
上記のPOSTコマンドの場合と同様に、コマンドから得た残りの識別情報を用いて、データベース30における探索が、デバイス11の特定のインスタンスに関するデータに限定される。特に、デバイスの通し番号および／またはUUIDを用いてデバイス11に特有の環境設定ファイルが検索される（205）。次いで、プロセス41では、環境設定ファイルが組込みコントローラ17に送信される。環境設定ファイルは、デバイスタイプ・フィールド内のURLによって識別されるウェブ・ページであってもよい。このウェブ・ページは、データベース30に格納されているパラメータを用いてサーバ19によって生成され、次いでデバイス11に送信される。完全なウェブ・ページ自体を格納する必要はないことに留意されたい。あるいは、GETコマンドは、別々の環境設定ファイルおよびウェブ・ページを検索してもよい。
【００３９】
組込みコントローラ17におけるプロセス40では、コマンドの送信（201）に応答してサーバ19からデータ（動作パラメータまたは環境設定ファイル）が検索される（207）。次いで、プロセス40では、このデータを用いてデバイス11が更新／リセットされる。たとえば、デバイス11が加熱システムである場合、新しい動作パラメータは、加熱システムの新しい温度設定値であってもよい。この例では、これに応じて組込みコントローラ17が新しい温度を設定する。デバイスがテレビジョンである場合、新しい動作パラメータは、ある有料テレビ局からの放送を受信可能になったことを示すことができる。この場合、組込みコントローラ17はテレビジョン信号に対して任意の適切な復号／スクランブル解除機能を実行することができる。
【００４０】
他の態様
図３は、プロセス40、41の他の態様を示している。プロセス40、41では、GETコマンドおよびPOSTコマンドが、コマンド発行のたびに同じパラメータを要求する。要求されるパラメータは、プロセス40を実施するようにソフトウェアにおいて符号化される。この態様は、要求／コマンドを生成するソフトウェアを変更せずに、要求されたパラメータを変更する方法を提供する。
【００４１】
図３を参照すると、組込みコントローラ17におけるプロセス45ではまず、サーバ19にコマンドが送信される（301）。コマンドは、この場合、個々の動作パラメータではなくドキュメントを要求するので、HTTP GETコマンドである。ドキュメントは、更新すべき動作パラメータのリストを含むXMLドキュメントである。組込みコントローラ17は、このドキュメントを用いて、組込みコントローラ17が定期的に更新する動作パラメータを変更することができる。
【００４２】
サーバ19におけるプロセス46では、組込みコントローラ17からコマンドが受信され（302）、XMLパーサを用いてコマンドが解析されて（303）デバイス11のインスタンスに特有の情報が得られ、この情報に基づいて適切なドキュメントが識別される（304）。前述のように、デバイス11のインスタンスを識別する情報には、特にデバイスタイプ、デバイスの通し番号、およびデバイスのUUIDが含まれる。プロセス46では、更新すべき動作パラメータのリストを含むドキュメントが検索され（305）、このドキュメントが組込みコントローラ17に送り返される（306）。
【００４３】
組込みコントローラ17におけるプロセス45では、サーバ19からドキュメントが受信され（307）、ドキュメントにおける更新すべき動作パラメータが解析され（308）、サーバ19に送信すべきPOSTコマンドが生成される（309）。このコマンドは、プロセス45においてドキュメントから解析された動作パラメータが挿入されるコマンド・テンプレート（図示せず）を用いて生成される。プロセス45では、この第２のコマンドがサーバに送信される。この時点で、プロセス45および46は、POSTコマンドと共に使用されるときには、それぞれプロセス40および41と同様に動作する（310）。したがって、プロセス40、41の詳細はここでは繰り返さない。
【００４４】
この態様はさらに一般化することができる。たとえば、組込みコントローラ17は、単に動作パラメータのリストを検索するのではなく、組込みコントローラ17が実行する動作のリストをサーバ19から検索することができる。たとえば、このリストは、更新すべき動作パラメータ、更新を行うべき時間、診断試験のスケジュールなどを含んでいてもよい。組込みコントローラ17によって実行できるあらゆる動作をリスト上に含めてもよい。
【００４５】
動作のリストを検索するプロセスは、リスト自体の内容を除いてプロセス45および46と同一である。組込みコントローラがリストを得た後（すなわち310）にとる処置は、リストの内容に依存する。たとえば、リストには、パラメータを１時間おきに更新することを指定することができ、更新すべきパラメータのリストを含めてもよい。リストは、組込みコントローラ17によって理解できるXMLコマンドを含んでいてもよい。したがって、組込みコントローラ17は、リスト内のコマンドを読み取り、デバイス11に対する適切な動作を実行する。
【００４６】
アーキテクチャ
プロセス40、41および45、46は、図１のハードウェア／ソフトウェア構成との併用に限らず、任意のコンピューティング環境または処理環境に適用することができる。プロセス40、41および45、46は、ハードウェア（たとえば、ASIC｛特定用途向け集積回路（Application-Specific Integrated Circuit）｝および／またはFPGA｛Field Programmable Gate Array｝で実施することも、ソフトウェアで実施することも、ハードウェアとソフトウェアとの組合せで実施することもできる。
【００４７】
プロセス40、41および45、46は、各コンピュータが、プロセッサと、プロセッサによって読み取ることのできる記憶媒体（揮発性および非揮発性メモリならびに／または記憶素子を含む）と、少なくとも１つの入力デバイスと、１つまたは複数の出力デバイスとを含むプログラム可能なコンピュータ上で実行される１つまたは複数のコンピュータ・プログラムを用いて実施することができる。
【００４８】
このような各プログラムは、コンピュータ・システムと通信する場合に高レベル手続き言語またはオブジェクト指向プログラミング言語で実施することができる。さらに、これらのプログラムはアセンブリ言語または機械言語で実施することができる。言語はコンパイルまたは解釈済みの言語であってもよい。
【００４９】
各コンピュータ・プログラムは、汎用または専用プログラム可能コンピュータによって読み取ることができ、プロセス40、41および45、46を実行するためにコンピュータによって読み取られたときにコンピュータの環境を設定しコンピュータを動作させる記憶媒体または記憶デバイス（たとえば、CD-ROM、ハード・ディスク、磁気ディスケット）上に記憶することができる。
【００５０】
プロセス40、41および45、46は、コンピュータ・プログラムを用いて環境設定されたコンピュータ可読記憶媒体として実施することもでき、この場合、実行時に、コンピュータは、コンピュータ・プログラム内の指示によってプロセス40、41および45、46に従って動作する。
【００５１】
本発明は、上述のプロトコルおよび標準との併用に限らない。たとえば、ウェブ・サーバはJavaサーブレット、ASP（Active Server Pages）、および／またはISAPI（Internet Server Application Programming Interface）を用いて、CGIの代わりにまたはCGIに加えてアプリケーション論理32と通信することができる。（たとえば、201、301、310で）組込みコントローラ17および／またはサーバ19によって送信されるコマンドは、HTTP GETコマンドおよびHTTP POSTコマンドに限らない。データを要求し受信するためのあらゆるコマンドおよび／または要求を使用することができる。
【００５２】
サーバ19によって組込みコントローラ17に転送されるデータは、動作パラメータまたは環境設定ファイルに限らない。このデータには、たとえば、デバイスの所有者に関する情報に基づく、デバイス11によって実行すべき処置のスケジュールを含めてもよい。たとえば、所有者の好みをデータベース30に記憶することができる。サーバ19がインスタンス特有のデータを用いてデバイスの所有者を適切な好みと相関させることができる。次いで、このような好みをデバイス11に送信してデバイス11の動作を制御することができる。
【００５３】
サーバ19が、組込みコントローラ17によってサーバ19に送信される最初のパラメータを用いて、データベース30に格納されているデータに基づく新しい更新済みのパラメータを算出することができる。したがって、本発明は、単に更新済みのデータを検索することに限らず、現在利用可能なデータに基づいて新しいデータを算出することを含んでいてもよい。
【００５４】
上述のドキュメントおよびコマンドはXMLフォーマットに限らない。任意のコンピュータ言語をこれらのコマンドに使用してよい。ドキュメントは任意のフォーマットでよく、たとえば、HTML（ハイパーテキスト転送プロトコル）ドキュメントを使用してよい。さらに、本発明はウェブ、ウェブ・サーバなどとの併用に限らない。本明細書で説明したサーバおよび組込みコントローラは、適切にプログラムされた同じ種類の汎用コンピュータであっても、それぞれの異なるデバイスであってもよい。
【００５５】
本明細書で説明していない他の態様も特許請求の範囲の範囲内である。
【００５６】
付録Ａ
GETコマンド
0004808911.tif 000004
【００５７】
付録Ｂ
POSTコマンド
0004808911.tif 000005
【図面の簡単な説明】
【図１】  サーバと、組込みコントローラを有するデバイスとを含むネットワークのブロック図である。
【図２】  組込みコントローラがサーバからデバイス用のデータを検索するプロセスを示すフローチャートである。
【図３】  組込みコントローラがサーバからデバイス用のデータを検索するプロセスを示すフローチャートである。
【図１】
0004808911.tif 000006
【図２】
0004808911.tif 000007
【図３】
0004808911.tif 000008