(57)【特許請求の範囲】
【請求項１】
少なくとも２つの機器を含む第１のネットワークにおける通信方法であって、
第１の機器はインターネットアプリケーションを含み、第２の機器はインターネットに接続する手段を含み、
上記方法は、
上記第２の機器によって、上記第１の機器と上記第２の機器との間でコネクションをオープンするために、上記第２の機器によってサポートされる複数のプロトコルの中で選択されたプロトコルに対応し、上記第１の機器とインターネットサーバとの間で情報を交換するために使用されるべきインターネットアプリケーションプロトコルを識別するインターネットアプリケーションプロトコル識別子を含む要求を上記第１の機器から受信する段階と、
上記第２の機器によって、上記第１の機器から上記インターネットアプリケーションプロトコルの形式でインターネットプロトコル要求を受信する段階と、
上記第２の機器から上記インターネットサーバへ上記インターネットプロトコル要求をフォワードする段階と、
受信時に、上記第１のネットワークで、上記インターネットサーバからの応答を上記第２の機器を通じて上記第１の機器へ転送する段階とを含み、
コネクションをオープンするための上記第１の機器からの上記要求は、上記第１のネットワークでのコネクションのために、上記第１の機器によってメッセージ受信に割り付けられるメッセージバッファサイズを含み、
上記方法は、上記第２の機器によって、上記第１の機器から上記第１の機器の関数のアドレスを受信する段階を更に含み、上記第２の機器は、インターネット応答を上記関数の呼出しのパラメータとして上記第１の機器へ送信することを特徴とする方法。
【請求項２】
上記第２の機器によるコネクションをオープンするための上記要求の応答は、上記第２の機器によって上記第１のネットワークの上記コネクションに割り付けられるメッセージバッファサイズを含むことを特徴とする、請求項１記載の方法。
【請求項３】
送信側機器は、受信側機器へ送信されるデータを、上記受信側機器のメッセージバッファのサイズよりも小さいサイズのメッセージへ分割することを特徴とする、請求項１記載の方法。
【請求項４】
上記第２の機器によって、上記第１の機器から要求を受信したときに、上記第２の機器によってサポートされるインターネットアプリケーションプロトコルのリストを送信する段階を更に含むことを特徴とする、請求項１記載の方法。
【請求項５】
上記第２の機器は、上記第１の機器によって要求されるコネクションにコネクション識別子を属させ、上記コネクション識別子は、上記コネクションをオープンするための上記要求の受信の確認として上記第１の機器から上記第２の機器へ送信される、請求項１記載の方法。
【請求項６】
上記第１の機器及び上記第２の機器は、上記第１の機器による上記第２の機器への関数の呼出し、又は、上記第２の機器による上記第１の機器への関数の呼出しのためのパラメータとして、上記コネクション識別子を系統的に使用する、請求項５記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、家庭内ネットワーク、特にＨＡＶｉ準拠ネットワークにおける通信方法に関する。本発明は、また、ネットワーク自体、及び、方法を実施するために使用される機器に関する。本発明は、様々な通信のうちでも特に、必ずしもインターネットに直接アクセスを有さなくともよいネットワーク機器上で実行されるインターネットアプリケーション間での通信、並びに、かかるアクセスを有さないネットワークの機器に適用される。
【０００２】
図１は、パーソナルコンピュータ１からインターネットサービスへアクセスするのに必要とされる様々な機器及びソフトウエアレイヤを示す図である。コンピュータ１は、ユーザと対話するためのユーザインタフェースを含むアプリケーション、例えば「ＷＥＢ（ウェブ）ブラウザ」を含み、これは図１中、より一般的な用語「ＷＥＢ（ウェブ）アプリケーション」として示されている。
【０００３】
ＷＥＢアプリケーションは、アプリケーションプロトコルレイヤ（例えばＨＴＴＰ（Hypertext Transfer Protocol）又はＦＴＰ（File Transfer Protocol））の上層にある。次のレイヤは、図１の例では、ＴＣＰ／ＵＤＰ（Transmission Control Protocol/ User Data Protocol）レイヤ、ＩＰ（Internet Protocol）レイヤ、及びＰＰＰレイヤである。ＴＣＰ／ＵＤＰレイヤとＩＰレイヤは、組み合わせて、「ＩＰスタック」と称される。インターネットアクセスプロバイダ２との接続は、モデム及び公衆交換電話網を通じてなされる。インターネットアクセスプロバイダは、コンピュータ１の機能とグローバルに同様な機能を有するレイヤを含むサーバ３を含むインターネットに接続される。
【０００４】
ユーザは、図１の機器１によって与えられるインターネットアクセス機能を有するテレビジョン受像機及びパーソナルコンピュータといった多数の機器を所持しうる。そのような場合、インターネットアクセス可能性を与えるために必要とされるハードウエア及びソフトウエアは、各機器内に全く同じものが設けられねばならない。
【０００５】
本発明は、通信バスに接続される少なくとも２つの機器を含む家庭内ネットワークにおける通信方法であって、
第１の機器はインターネットアプリケーションを含み、第２の機器は上記インターネットに接続する手段を含み、上記第２の機器は少なくとも１つのインターネットアプリケーションプロトコルを管理することが可能であり、
上記方法は、
上記第１の機器と上記第２の機器の間で第１のコネクションをオープンするために、上記第２の機器とインターネットサーバの間のコネクションに使用されるべきインターネットアプリケーションプロトコルを識別するインターネットプロトコルアプリケーション識別子を含む要求を上記第１の機器から上記第２の機器へ送信する段階と、
上記第１の機器から上記第２の機器へ上記インターネットアプリケーションプロトコルの形式でインターネットプロトコル要求を送信する段階と、
上記第２の機器から上記インターネットサーバへ上記インターネットプロトコル要求をフォワードする段階と、
受信時に、上記インターネットサーバからの応答を上記通信バスを介して上記第２の機器を通じて上記第１の機器へ転送する段階とを含むことを特徴とする方法を提供することを目的とする。
【０００６】
ネットワーク上に、インターネットを接続するための手段を有すると共にネットワーク上の機器（又はアプリケーションといったソフトウエア要素）と通信する手段を有する機器を含むことにより、このネットワーク上の機器で実行されているインターネット関連のアプリケーションの数に関わらず、ネットワーク全体でかかる能力を有する機器はただ１つだけあればよい。
【０００７】
更に、第２の機器を通じてインターネットコネクションを確立するインターネットアプリケーションは、それ自体を、使用すべきインターネットアプリケーションプロトコルとして指定する。これは、同一のネットワーク上で様々なインターネットアプリケーションプロトコルを用いるための非常に柔軟性のある方法を提供する。
【０００８】
本発明の１つの実施例によれば、本発明の方法は、第２の機器によってサポートされるインターネットアプリケーションプロトコルのリストについての要求を第１の機器から第２の機器へ送信する段階を含む。
【０００９】
本発明はまた、通信バスによって接続される機器を含む家庭内通信ネットワークであって、このネットワークはＷＥＢインタフェースを含む少なくとも１つの機器を含み、この機器はＩＰスタック及びインターネットへのコネクションを含み、この少なくとも１つの機器は、このＷＥＢインタフェースを上記ネットワーク上の他の機器のソフトウエア要素のクライアントにアクセス可能とするアプリケーションプログラム可能インタフェースを含む家庭内通信ネットワークに関連する。
【００１０】
本発明はまた、ＷＥＢインタフェースを含み、ＩＰスタック及びＷＥＢインタフェースへのコネクションを含み、少なくとも１つの機器はこのＷＥＢインタフェースを上記ネットワーク上の他の機器のソフトウエア要素のクライアントにアクセス可能とするアプリケーションプログラム可能インタフェースを含むことを特徴とする、家庭内通信ネットワーク上の機器に関連する。
【００１１】
本発明の他の特徴及び利点は、添付の図面を参照して以下の本発明の非制限的な実施例の説明を読むことにより明らかとなろう。
【００１２】
以下の説明は、以下の文献：「The HAVi Architecture」、１９９８年５月１１日第0.8版、（１９９８年５月１５日に少なくとも以下の企業：ソニー、フィリップス、東芝、シャープ、日立のＷＥＢサイト上で公開）に記載される仕様において定義される用語を用いており、この文献を参照されたい。用語に関する説明及び定義は、本願の最後にも記載されている。
【００１３】
本願の実施例のＷＥＢアプリケーションによって用いられるプロトコルの例であるＨＴＴＰに関する更なる情報については、文献「Hypertext Transfer Protocol/1.1 RFC 2068」を参照されたい。ＨＴＴＰ以外の、ＦＴＰ、ＳＭＴＰ、ＰＯＰ、ＩＭＡＰ、及び、ＮＮＴＰといったプロトコルが使用されうる。
【００１４】
まず、本発明の実施例の説明に必要な概念の数を決めるため、ＨＡＶｉ準拠ネットワークアーキテクチャについて説明する。
【００１５】
ＨＡＶｉネットワークは、４つのタイプであり得る機器を含み、これらの機器は通信バスによってリンクされている。異なる機器のタイプは、ネットワークに関連する能力によって順序づけられており、フルオーディオ／ビデオ機器（ＦＡＶ機器）、中間オーディオ／ビデオ機器（ＩＡＶ機器）、基本オーディオ／ビデオ機器（ＢＡＶ機器）、及び、レガシーオーディオ／ビデオ機器（ＬＡＶ機器）のタイプがある。
【００１６】
ＬＡＶのタイプの機器以外の機器は全て、少なくとも相互に通信する能力を有する。
【００１７】
ＦＡＶ機器は、ＨＡＶｉバイトコードのためのランタイム環境を含み、ＨＡＶｉバイトコードは機器制御モジュール（ＤＣＭ）又はアプリケーションを書くためのプログラム言語である。ＦＡＶ機器は、例えば費用面の理由によりランタイム環境を含まない他の機器から、又は他の機器のためにＤＣＭをダウンロードしうる。
【００１８】
ＩＡＶ機器は、ＨＡＶｉバイトコードを実行する能力を有さないが、他の機器を制御するための常駐ＤＣＭを含みうる。
【００１９】
ＢＡＶ機器は、ＦＡＶ機器によってダウンロード可能なＤＣＭコードを含むか、又は、ＩＡＶ機器によって実行されるネイティブＤＣＭによって制御される機器である。
【００２０】
ＬＡＶ機器は、ＨＡＶｉ能力を有さない機器である。これらの機器は、それ自体の命令プロトコルを有し、ＦＡＶ機器又はＩＡＶ機器がＨＡＶｉネットワークへのゲートウエイとして作用し、必要な制御コマンド翻訳を実行することを必要とする。
【００２１】
各機器は、ＨＡＶｉ用語では「ソフトウエア要素」と称される多数のオブジェクトを含む。このようなオブジェクトの１つには、機器の所与の機能（ＦＣＭと称される）の制御マネージャ、即ち機器の特定の機能コンポーネント（例えばチューナ、ディスプレイ、大容量記憶等）を制御するためのインタフェースを与えるソフトウエア要素がある。他のオブジェクトには、上述のＤＣＭがある。
【００２２】
一般的に、ＦＡＶ機器は、対応するアプリケーションプログラム可能なインタフェースを通じて以下のソフトウエア要素と対話する多数のアプリケーション及び機器制御アプリケーションを含む。ソフトウエア要素は、以下の通りである。
【００２３】
・１３９４通信メディアマネージャ：他のソフトウエア要素がＩＥＥＥ１３９４バスを通じて非同期及び等時性の通信を行うことを可能とする。
【００２４】
・メッセージ受け渡しシステム：他のソフトウエア要素とメッセージを交換する。
【００２５】
・イベントマネージャ：オブジェクトの状態変化を管理する。
【００２６】
・ストリームマネージャ：チューナ及び記録機器といった機能コンポーネント間のオーディオ／ビデオデータストリームを管理する。
【００２７】
・レジストリ：ローカルソフトウエア要素及びその識別子のリストを保持し、遠隔のレジストリとの通信を管理する。
【００２８】
・機器制御モジュールマネージャ：機器制御モジュールをロード又は削除する。
【００２９】
・多数の常駐又はアップロードされた機器制御モジュール。
【００３０】
・ＤＣＭを実行するためのＨＡＶｉバイトコードランタイム環境。
【００３１】
メッセージ受け渡しシステムは、ソフトウエア要素にユニークな識別子を割り付け、ソフトウエア要素はこれらの識別子を用いてレジストリに登録される。これらの識別子は「ＳＥＩＤ」（ソフトウエア要素識別子）と称され、機器識別子とその機器内のソフトウエア要素ハンドルを含む。第２のソフトウエア要素へメッセージを送信しようとする第１のソフトウエア要素は、メッセージ受け渡しシステムへの命令の中のパラメータとして、第２のソフトウエア要素のＳＥＩＤを渡す。このＳＥＩＤは、ローカルレジストリサービスに適当な要求を行うことによって得られる。呼び出されるソフトウエア要素がローカルであるか遠隔である（即ち呼出し側のソフトウエア要素以外の機器の中にある）かに依存して、呼出し側のソフトウエア要素は、ＳＥＩＤ全体を用いるか、又は、ソフトウエア要素ハンドル部のみを用いる。
【００３２】
メッセージ受け渡しシステムのメッセージへの関数呼出しのマッピングについては、ＨＡＶｉ第0.8版仕様の第3.2.3章に詳述されている。このＨＡＶｉ第0.8版の仕様に記載されているメッセージ受け渡しシステムは、６４Ｋｂ長のメッセージまで扱うことができる。
【００３３】
トムソンマルチメディアにより１９９８年４月２３日に出願されたフランス国特許出願第９８０５１１０号は、レジストリ及びメッセージ受け渡しシステムについての更なる情報を提供する。
【００３４】
図２は、通信バス２３に接続される機器２０、２１、２２を含むＨＡＶｉ準拠家庭内ネットワークを示す図である。バス２３は、例えばＩＥＥＥ１３９４シリアルバスである。機器２０は、欧州で使用されるディジタルビデオ放送（ＤＶＢ）規格又は米国で用いられる直接衛星方式（ＤＳＳ）に適合するディジタルテレビジョン受像機である。これは、ＷＥＢアプリケーション、即ちＨＴＴＰプロトコルを用いてインターネットを通じてデータを送信及び／又は要求することが可能なソフトウエアアプリケーションを含む。本例では、機器２０のＷＥＢアプリケーションは、所与のインターネットサーバと情報を交換する電子番組案内（ＥＰＧ）である。機器２２は、パーソナルコンピュータであり、そのＷＥＢアプリケーションはインターネットブラウザである。機器２０及び２２のいずれもＩＰＥスタック、ＰＰＰプロトコルレイヤ、又は公衆交換電話網に接続されたモデムを有さない。
【００３５】
機器２１は、ＷＥＢアクセスアプリケーションプログラミングインタフェース（ＷＥＢアクセスＡＰＩ）と、ＩＰスタック、ＰＰＰプロトコル、及びモデムを含む。機器２１は、ＦＡＶ、ＩＡＶ、又は、ＢＡＶ機器でありうる。様々なＷＥＢアプリケーションによってＩＰスタック動作へのアクセス与える機能コンポーネントモジュール（ＦＣＭ）は、「インターネットプロキシエージェント」又は「ＷＥＢプロキシエージェント」と称される。これは、ＩＰスタックの上層のレイヤであるＷＥＢアクセスアプリケーションプログラム可能インタフェースを与える。
【００３６】
本例によれば、機器２１は、モデムを含むディジタルテレビジョンデコーダである。
【００３７】
ＷＥＢプロキシＦＣＭは、インターネットへの共用可能なアクセスを提供する。ＷＥＢプロキシＦＣＭは、機器２１がＦＡＶ又はＩＡＶであれば、機器２１のローカルレジストリにおける、又は、機器２１がＢＡＶタイプであれば、ＷＥＢプロキシＦＣＭに対応する機器制御モジュールを実行するＦＡＶ又はＩＡＶ機器のローカルレジストリにおける、リセット又はホットプラグ時に登録する。
【００３８】
「ＷＥＢクライアント」とも称されるＷＥＢアプリケーションは、そのローカルレジストリサービスへ要求を送信することによりネットワーク上のＷＥＢプロキシＦＣＭを検出することが可能である。ローカルレジストリは、遠隔レジストリへ要求をディスパッチし、応答を受け取る。本実施例の場合、機器２１のＷＥＢプロキシＦＣＭの識別子（「ＳＥＩＤ」）のみが検出される。
【００３９】
ＷＥＢプロキシＦＣＭは、例えばＨＴＴＰ、ＦＴＰ、ＮＮＴＰ、ＳＭＴＰ、ＰＯＰ、又は、ＩＭＡＰといった少なくとも幾つかの一般的に用いられるインターネットプロトコルをサポートすることが望ましい。ＷＥＢクライアントは、メッセージ受け渡しシステムを通じてＷＥＢプロキシＦＣＭアプリケーションプログラム可能プロトコルを使用する。アプリケーションプログラム可能インタフェースは、以下の関数、
Open、Close、Send、Receive及びGetCapability
を含む。以下、これらの様々な関数について詳述する。
【００４０】
以下のデータ構造は、ＷＥＢプロキシＦＣＭの関数によって使用される。
【００４１】
（ａ）emun FileLoc{START, NEXT, END};
このデータ構造は、製造者から消費者へのメッセージが、メッセージシーケンス中の最初のメッセージであるか、中間メッセージであるか、又は、最後の（又はただ１つの）メッセージであるかを示す。このデータ構造は、ＷＥＢクライアント又はＷＥＢプロキシＦＣＭにおけるバッファサイズの概念と共に用いられ、なぜならば、バッファサイズは以下説明するように幾つかのメッセージへ分割するための関数の呼出しを生じさせうるからである。
【００４２】
（ｂ）emun ProtocolType{HTTP, FTP, SMTP, POP3, IMAP4, NNTP, WAIS};
このデータ構造は、ＷＥＢプロキシＦＣＭがサポートしうるＷＥＢアプリケーションプロトコルのリストを示す。
【００４３】
本システムでは、以下の関数が実施される。
【００４４】
（ａ）「Open」関数
この関数は、ＷＥＢクライアントが、ＷＥＢプロキシＦＣＭとのコネクションをオープンすることを可能とする。関数のプロトタイプは以下の通りである。
【００４５】
Status WEBProxy::Open(
in ProtocolType protocol
in short client_buffer_size,
in OperationCode opCode,
out long cid,
out short proxy_buffer_size,
)
「Status」は、関数戻り値のタイプである。
【００４６】
以下のパラメータが用いられる。
【００４７】
・protocol：このパラメータは、ＷＥＢクライアントによってセットされ、ＷＥＢクライアントがオープンしようとするセッションに専用のプロトコル（ＨＴＴＰ等）を定義する。
【００４８】
・client_buffer_size：このパラメータは、ＷＥＢクライアントによってセットされ、ＷＥＢクライアントによって受け入れられるメッセージの最大サイズ、即ちメッセージバッファのサイズを与える。ＷＥＢプロキシＦＣＭは、クライアントへ送信するメッセージのサイズを決めるためにこのパラメータを使用する。ＷＥＢプロキシＦＣＭによって送信されるべきデータは、このパラメータに依存して、多数のデータブロックへ分割される。
【００４９】
・opCode：このパラメータは、ＷＥＢプロキシＦＣＭがインターネットからＷＥＢクライアントへの入来する応答をフォワードするために使用されるコードである。この演算コードは、ＷＥＢプロキシＦＣＭがクライアントへ応答をフォワードするために呼び出さねばならない関数を識別する。このパラメータはＷＥＢクライアントによってセットされる。本例では、opCodeの値は、関数「Receive」を識別する。演算コードは、ソフトウエア要素中の関数をユニークに識別する。このように、ネットワーク上の関数のユニークなアドレスは、「ＳＥＩＤ」識別子及び演算コードを含む。
【００５０】
・cid：ＷＥＢクライアントとＷＥＢプロキシＦＣＭの間のコネクションの識別子である。これは、ＷＥＢプロキシＦＣＭによって定義される。これは、同一のソフトウエアコンポーネントクライアントからの幾つかのコネクションが（同一のＷＥＢプロキシＦＣＭ又は他のＷＥＢプロキシＦＣＭと）パラレルにオープンし、インターネットからの応答と要求をマッチングさせることを可能とする。
【００５１】
・proxy_buffer_size：このパラメータは、ＷＥＢプロキシＦＣＭによって戻され、ＷＥＢプロキシＦＣＭによって受け入れられるメッセージの最大サイズ（バイト）を示す。ＷＥＢクライアントは、ＷＥＢクライアントからＷＥＢプロキシＦＣＭへ送信されるメッセージ、例えば要求、のサイズを決めるためにこのパラメータを使用する。
【００５２】
ＷＥＢクライアントから「Open」関数を受け取った後、ＷＥＢプロキシＦＣＭは、上述のパラメータと共に、以下のステータス値のうちの１つを戻す。
【００５３】
「０」：セッションのオープンが成功した。
【００５４】
「１」：リソースの割付けエラーが発生した。
【００５５】
「２」：プロトコルタイプがＷＥＢクライアントによってサポートされていない。
【００５６】
（ｂ）「Close」関数
この関数はＷＥＢクライアントが、「cid」パラメータによって識別される以前にオープンされたＷＥＢプロキシＦＣＭとのコネクションをクローズすることを可能とする。関数のプロトタイプは以下の通りである。
【００５７】
Status WEBProxy::Open(
in long cid
)
パラメータは、「cid」パラメータ、即ちＷＥＢプロキシＦＣＭとのコネクションの識別子のみである。ＷＥＢプロキシＦＣＭは、以下のステータス値のうちの１つで確認する。
【００５８】
「０」：コネクションのクローズが成功した。
【００５９】
「１」：「cid」パラメータの送信された値が未知である。
【００６０】
（ｃ）「Send」関数
この関数は、以前に「Open」関数呼出しによって決められたプロトコル（ＨＴＴＰ等）を用いてＷＥＢサーバへ要求を送信するために、ＷＥＢクライアントによって呼び出される。関数のプロトタイプは、以下のように定義される。
【００６１】
Status WEBProxy::Send(
in long cid,
in FileLoc where,
in sequence <byte>web_data,
)
既に定義された「cid」パラメータの以外の、関数のパラメータは以下の通りである。
【００６２】
・where：このパラメータは、呼出し側ソフトウエア要素によって決定され、メッセージが、メッセージシーケンス中の最初のメッセージであるか、中間メッセージであるか、又は、最後のメッセージであるかを示す。関数の呼出しの中で送信されるデータの量はＷＥＢプロキシＦＣＭのバッファが単一のメッセージを扱うには大きすぎることがあるため、この関数を呼び出すために１つ以上のメッセージが必要とされうる。
【００６３】
・web_data：このパラメータは、「cid」パラメータによって識別されるコネクションを通じて用いられるＷＥＢ「アプリケーション」プロトコルによる要求の一部又は全体を含む。
【００６４】
関数の呼出しを受け取ると、ＷＥＢプロキシＦＣＭは、以下のステータス値のうちの１つで確認する。
【００６５】
「０」：メッセージの処理が成功した。
【００６６】
「１」：「web_data」のサイズが固定の最大サイズを超過している。
【００６７】
「２」：このメッセージを処理することが不可能である。
【００６８】
「３」：「cid」パラメータの送信された値がＷＥＢプロキシＦＣＭにとって未知である。
【００６９】
エラーの場合、ＷＥＢクライアントは、コネクションをクローズするか否か、又は以前のメッセージを再び送信するか否かを決定する。
【００７０】
（ｄ）「Receive」関数
これは、ＷＥＢプロキシＦＣＭがＷＥＢクライアントへ、ＷＥＢアプリケーションプロトコルによる入来する応答をフォワードすることを可能とする、ＷＥＢクライアントにおいて実施される関数のプロトタイプである。関数のプロトタイプは、以下の通りである。
【００７１】
Status WEBProxy::Receive(
in long cid,
in FileLoc where,
in sequence <byte>web_data,
)
既に定義されたパラメータの以外の、関数のパラメータは以下の通りである。
【００７２】
・web_data：このパラメータは、「cid」パラメータによって識別されるコネクションを通じて用いられるＷＥＢ「アプリケーション」プロトコルによる要求の一部又は全体を含む。
【００７３】
ＷＥＢプロキシサーバによる呼出しに続き、ＷＥＢクライアントは、以下のステータス値のうちの１つで確認する。
【００７４】
「０」：メッセージの処理が成功した。
【００７５】
「１」：「web_data」のサイズが固定の最大サイズを超過している。
【００７６】
「２」：ＷＥＢクライアントがこのメッセージを処理することが不可能である。
【００７７】
「３」：ＷＥＢクライアントが「cid」パラメータの値を認識しない。
【００７８】
エラーの場合、ＷＥＢプロキシＦＣＭは反応しない。コネクションを維持するか否かは、ＷＥＢクライアントによって決められる。
【００７９】
（ｅ）「GetCapability」関数
この関数は、ＷＥＢクライアントによって呼出し可能であり、ＷＥＢプロキシＦＣＭがサポートするプロトコルのリストを戻す。
【００８０】
関数のプロトタイプは、以下の通りである。
【００８１】
Void WEBProxy::GetCapability(
out sequence<ProtocolType>ProtocolList
)
関数のパラメータは、ＦＣＭを通じて利用可能なＷＥＢアプリケーションプロトコルのリストである「ProtocolList」のみである。ＷＥＢプロキシＦＣＭによって１つ以上のプロトコルがサポートされうる。
【００８２】
図３は、ＷＥＢクライアントとＷＥＢプロキシＦＣＭの間の一般的なメッセージ交換の例を示す図である。メッセージ受け渡しシステムのレベルでは、関数の呼出しは、メッセージを２つの方向にトリガする。呼出し側ソフトウエア要素から呼び出される側のソフトウエア要素へ、呼び出される側のソフトウエア要素へ送信される「到着」パラメータを伴う第１のメッセージと、所望であれば「出発」パラメータを折り返し送信する逆方向の第２のメッセージとがある。
【００８３】
図３に示されるように、「Open」関数は、ＷＥＢクライアントからＷＥＢプロキシＦＣＭへの第１のメッセージを生じさせる。このメッセージは、オープンされているコネクションに用いられるプロトコルと、その特定のコネクションについての戻りメッセージのためにＷＥＢクライアントが割り付けるバッファのサイズとについて、ＷＥＢプロキシＦＣＭに知らせる。バッファサイズは、コネクション毎に異なりうる。ＷＥＢクライアントはまた、ＷＥＢプロキシＦＣＭがＷＥＢクライアントにおいてReceive関数を呼び出すために使用せねばならないReceive関数の演算コードを送信する。メッセージ受け渡しシステムのレベルでは、ＷＥＢクライアントはまたそれ自身の識別子「ＳＥＩＤ」を送信する。
【００８４】
受信及び処理が正しく行われると想定すると、ＷＥＢプロキシＦＣＭは、処理が成功したことを示す戻りコード「０」によって応答し、コネクションを識別するために「cid」値を送信し、更なる通信のためにそれ自身のバッファサイズを送信する。
【００８５】
コネクションがオープンされると、ＷＥＢクライアントは、ＨＴＴＰプロトコルを用いてＷＥＢサーバに要求を送信する。図４の例によれば、この要求は、単一のメッセージ中に、コネクション識別子cidと、ＨＴＴＰフォーマットでの要求と、「End」パラメータとを含む。ＷＥＢプロキシＦＣＭは、正しい受信を確認し、そのＩＰスタック及びモデムを介してインターネットを通じて要求をフォワードする。
【００８６】
ＷＥＢサーバは、要求されたデータに応答し、それをＷＥＢプロキシＦＣＭへ送信する。本例では、データの量はＷＥＢクライアントのバッファ容量をはるかに超えるため、ＷＥＢプロキシＦＣＭはデータを適当なサイズのメッセージへ分割する。ＷＥＢプロキシＦＣＭは、以前にＷＥＢクライアントの「ＳＥＩＤ」識別子に添付されてＷＥＢクライアントから得られた演算コードを用いて、Receive 関数の呼出しの中のパラメータとして第１のデータブロックを送信する。これは、パラメータとして「START」を用いる。更なるメッセージは、ＷＥＢクライアントが受信されたデータを処理し、バッファを空にする時間を与えるため、ＷＥＢクライアントによって受信の確認の後に送信される。最後のデータブロックを受信した後、ＷＥＢクライアントは、Close関数を用いてコネクションをクローズする。ＷＥＢプロキシＦＣＭは、受信の最後の確認によって応答する。
【００８７】
最後に、本実施例によれば、例えばモデムのコネクションといったＷＥＢプロキシＦＣＭの適合は、ＷＥＢプロキシＦＣＭを管理する機器制御モジュールによって与えられるグラフィックインタフェースを通じてユーザによって直接行われる。この作業のための、ＨＡＶｉ仕様によって与えられるデータ駆動対話（ＤＤＩ）機構を用いて実行されうる特定のアプリケーションプログラム可能なインタフェースはない。
［用語］
基本ＡＶ機器（ＢＡＶ）：ＨＡＶｉＳＤＤデータを含むが、ＨＡＶｉアーキテクチャのどのソフトウエア要素も実行しないＨＡＶｉ準拠機器。
【００８８】
コントローラ：他の機器を制御する機器。ＩＡＶ又はＦＡＶ機器。
【００８９】
データ駆動対話（ＤＤＩ）：ボタンやアイコンといったユーザインタフェース要素を介して例えばＤＣＭといったソフトウエア要素を制御することを可能とするＨＡＶｉ機構。
【００９０】
ＤＤＩコントローラ：ＤＤＩ要素を表現し、ユーザ対話を取り扱うソフトウエアエンティティ。
【００９１】
ＤＤＩ要素：ユーザインタフェース要素のＤＤＩ符号化物。
【００９２】
ＤＤＩプロトコル：データ駆動対話をサポートするＨＡＶｉメッセージ。
【００９３】
機器：家庭内ネットワークに取り付けられた物理的エンティティであり、例えば、ビデオプレーヤ、レコーダ、カメラ、ＣＤ及びＤＶＤプレーヤ、セットトップボックス、ＤＴＶ受像機、及び、ＰＣ。
【００９４】
機器制御アプリケーション：特定の機器（及びその機能コンポーネント）のユーザ制御を可能とするＨＡＶｉソフトウエア要素。要求に応じて、できればＤＣＭがインストールされたもの以外のコントローラ上にインストールされる。
【００９５】
機器制御モジュール（ＤＣＭ）：機器の一般的な機能を制御するためのインタフェースを提供するＨＡＶｉソフトウエア要素。
【００９６】
ＤＣＭコードユニット：ＶＡＢ上にロード及びインストールされるべきＨＡＶｉバイトコードユニット、又は、ＦＡＶ又はＩＡＶ上にインストールされるべき所有コードユニット。ＤＣＭコードユニットをインストールすることにより、１つのＤＣＭ及び１つ以上のＦＣＭと、可能であれば１つの機器制御アプリケーションとが生ずる。
【００９７】
埋込みＤＣＭ：ネイティブ（即ちプラットホームに依存する）コードで実施されるＤＣＭ。埋込みＤＣＭは、一般的にはＩＡＶ機器上で実行される。
【００９８】
フルＡＶ機器（ＦＡＶ）：ＨＡＶｉバイトコードランタイムを含むＨＡＶｉアーキテクチャのソフトウエア要素を実行するＨＡＶｉ準拠機器。
【００９９】
機能コンポーネント：機器に関連付けられる関連機能のグループを表わすＨＡＶｉアーキテクチャにおける抽象化。例えば、ＤＴＶ受像機は、幾つかの機能コンポーネント即ち、チューナ、デコーダ、オーディオ増幅器等からなる。
【０１００】
機能コンポーネントモジュール（ＦＣＭ）：機器の特定の機能コンポーネントを制御するためのインタフェースを提供するＨＡＶｉソフトウエア要素。
【０１０１】
グローバルユニークアドレスＩＤ（ＧＵＩＤ）：ＩＥＥＥ１３９４機器をユニークに識別するために使用される６４ビットの量。２４ビットの会社ＩＤ（１３９４登録認証委員会より得られる）と、機器の製造者によって割り当てられる４０ビットのシリアル番号からなる。ＧＵＩＤは、機器のコンフィギュレーションＲＯＭに記憶され、１３９４ネットワークのリセットに対して持続性がある。
【０１０２】
ＨＡＶｉアーキテクチャ：ＨＡＶｉアーキテクチャは、メッセージ交換モデル、制御モデル、機器モデル、及び、本願で定義される実行環境を含む。
【０１０３】
ＨＡＶｉバイトコード：アップロードされたＤＣＭ及び可能であればアプリケーションによって用いられる携帯コード表現。ＦＡＶ機器は、ＨＡＶｉバイトコードをロード及び実行するためのランタイム環境を含む。ＨＡＶｉバイトコードは、まだ指定されていないが、既存の候補から選択されることになっている。
【０１０４】
ＨＡＶｉ準拠機器：ＩＥＥＥ１３９４、ＩＥＣ６１８８３をサポートし、ＦＡＶ、ＩＡＶ、又はＢＡＶ機器用のＨＡＶｉアーキテクチャ仕様に準拠する機器。
【０１０５】
ＨＡＶｉレベル１インターオペラビリティ：ＩＡＶ及び埋込みＤＣＭによって提供される特性を示す。
【０１０６】
ＨＡＶｉレベル２インターオペラビリティ：ＦＡＶ及びアップロードされたＤＣＭによって提供される特性を示す。
【０１０７】
ＨＡＶｉＳＤＤデータ：自己記述機器（ＳＤＤ）データは、１３９４機器上にあるＩＥＥＥ１２１２コンフィギュレーションＲＯＭ上に記憶される。ＨＡＶｉは、ＤＤＩ要素又はアップロードされたＤＣＭのために使用されうるＳＤＤデータ項目を指定する。
【０１０８】
ＨＡＶｉユニークＩＤ（ＨＵＩＤ）：機器及びそれらの機能コンポーネントのユニークな識別子。ネットワークコンフィギュレーションの変更（即ち機器のプラグイン又はプラグアウト）に対して持続性がある。
【０１０９】
家庭内ネットワーク：家庭内ネットワークは、家庭内の通信基盤を定義するために用いられる包括的な名称である。この名称は、物理的媒体と関連するプロトコルからの抽象化として用いられる。家庭内ネットワークは、制御情報の交換及びＡＶ内容の交換の両方をサポートする。
【０１１０】
中間ＡＶ機器（ＩＡＶ）：ＨＡＶｉアーキテクチャのソフトウエア要素を実行するが、ＨＡＶｉバイトコードランタイム環境を含まないＨＡＶｉ準拠機器。
【０１１１】
レガシーＡＶ機器（ＬＡＶ）：ＨＡＶｉ準拠機器でないＡＶ機器。
【０１１２】
ソフトウエア要素：ＨＡＶｉオブジェクト。ソフトウエア要素は、ＡＰＩによってその要素について指定される一組のメッセージに対応する。
【０１１３】
ソフトウエア要素ＩＤ（ＳＥＩＤ）：ソフトウエア要素を識別するために用いられる８０ビット値。ネットワークコンフィギュレーションの変更（即ち機器のプラグイン又はプラグアウト）に対して持続性があることは保証されていない。
【０１１４】
アップロードされたＤＣＭ：ＨＡＶｉバイトコードによって実施されるＤＣＭ。アップロードされたＤＣＭはＦＡＶ機器上でのみ実行される。
【図面の簡単な説明】
【図１】  家庭用機器からインターネットサーバへアクセスするための機器及びコネクションを示す概略図である。
【図２】  本発明による家庭内ネットワークを示す図である。
【図３】  ＷＥＢクライアントとＷＥＢプロキシエージェントの間のメッセージ交換を示す図である。
【図４】  ＷＥＢプロキシエージェントを介してＷＥＢクライアントソフトウエア要素とＷＥＢサーバとの間の通信を確立するためのソフトウエア要素間の通信を示す図である。
【図１】
0004404483.tif 000002
【図２】
0004404483.tif 000003
【図３】
0004404483.tif 000004
【図４】
0004404483.tif 000005