(57)【特許請求の範囲】
【請求項１】
電子装置と、前記電子装置の機能を制御するためのコントローラとを有する情報処理システムであって、
前記機能の抽象表現が前記コントローラに提供され、
前記抽象表現は、前記機能を制御するモダリティを指定し、
前記コントローラは、前記コントローラが前記機能の詳細を知る必要なく、前記モダリティにより決定された態様で、前記機能を、前記コントローラのモダリティ互換性のある制御能力にマッピングすることにより、前記抽象表現とのインタラクションを通じて前記機能を制御し、
前記モダリティは、前記機能の制御能力の性質の属性のことをいう、情報処理システム。
【請求項２】
前記モダリティがブーリアンとして示される、請求項１に記載の情報処理システム。
【請求項３】
前記モダリティが離散値の組として示される、請求項１に記載の情報処理システム。
【請求項４】
前記モダリティが浮動小数点値のレンジとして示される、請求項１に記載の情報処理システム。
【請求項５】
前記モダリティがアレイとして示される、請求項１に記載の情報処理システム。
【請求項６】
前記モダリティが前記抽象表現とは異なる別の抽象表現として示される、請求項１に記載の情報処理システム。
【請求項７】
前記制御能力がGUIに適合される、請求項１に記載の情報処理システム。
【請求項８】
ホームオートメーションネットワークを含む、請求項１に記載の情報処理システム。
【請求項９】
HAViベースのネットワークを含む、請求項８に記載の情報処理システム。
【請求項１０】
電子装置の機能を制御するコントローラを介して該電子装置の該機能の制御を可能にする方法であって、
前記コントローラに前記機能の抽象表現を提供し、
前記抽象表現が前記機能を制御するモダリティを指定し、
前記コントローラは、前記コントローラが前記機能の詳細を知る必要なく、前記モダリティにより決定された態様で、前記機能を、前記コントローラのモダリティ互換性のある制御能力にマッピングすることにより、前記抽象表現とのインタラクションを通じて前記機能を制御し、
前記モダリティは、前記機能の制御能力の性質の属性のことをいう、方法。
【請求項１１】
電子装置の制御可能な機能を制御するコントローラと共に使用する該電子装置であって、
当該電子装置は、前記機能の抽象表現を含み、
前記抽象表現は、前記機能を制御するモダリティを指定することができ、
前記コントローラは、前記コントローラが前記機能の詳細を知る必要なく、前記モダリティにより決定された態様で、前記機能を、前記コントローラのモダリティ互換性のある制御能力にマッピングすることにより、前記抽象表現とのインタラクションを通じて前記機能を制御できるようにするために、当該電子装置が、前記抽象表現を前記コントローラに提供し、
前記モダリティは、前記機能の制御能力の性質の属性のことをいう、電子装置。
【請求項１２】
前記モダリティはブーリアンとして示される、請求項１１に記載の電子装置。
【請求項１３】
前記モダリティは離散値の組として示される、請求項１１に記載の電子装置。
【請求項１４】
前記モダリティは浮動小数点値のレンジとして示される、請求項１１に記載の電子装置。
【請求項１５】
前記モダリティがアレイとして示される、請求項１１に記載の電子装置。
【請求項１６】
前記モダリティが意味的に前記抽象表現とは異なる別の抽象表現として示される、請求項１１に記載の電子装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、装置を制御するための情報処理システム及び方法に関する。
【０００２】
【従来の技術】
フィリップス・エレクトロニクスが加盟しているコンシューマ・エレクトロニクス(民生用電子機器)製造業者のコンソーシアムは、音声/映像電子機器及びマルチメディア産業の規格を提供するために、ホームネットワークにおけるデジタル・コンシューマエレクトロニクス機器に関するAPI(アプリケーション・プログラミング・インタフェース)のコアに関する仕様に取り組んできた。APIは、オペレーティングシステム又はアプリケーションプログラムへの要求を行うために必要とされる方法を指定する。ホームネットワークは、分散コンピューティング・プラットホームと考えられる。HAVi(ホーム・オーディオ/ビデオ・インターオペラビリティ)アーキテクチャと呼ばれる規格の主な目的は、異なるベンダーの製品がインターオペレートすることができるように、すなわち協働してアプリケーション・タスクを実施することができるようにすることである。ホーム・エンターテイメント機器(DVDプレーヤー、DVカムコーダー、デジタルTV等)のような現在のＣＥ装置は、デジタル処理及びデジタル記憶システムである。これらの装置をネットワークで接続することにより、処理及び記憶資源を共有することが可能になる。これは、例えばユーザ・インタラクションを単純化するために、いくつかのＣＥ装置の制御を同時に調整することを可能にする。例えば、第１装置は、第２装置上への記録をインスタンシエート(instantiate)する一方で、第３装置上のEPG(電子プログラムガイド)にアクセスすることができる。ホームネットワークは、ＣＥ装置を接続するための骨組みを提供する。それは、接続した装置が、制御及びAV(音声/映像)データの両方を交換することを可能にする(ある装置が他の装置にコマンドを送信し、また、ある装置が他の装置に音声又は映像ストリームを送信することを可能にする)。ネットワークは、このすべてを達成するためにいくつかの必要条件を満たす必要がある。それは、高データレートAVストリームのタイムリーな転送を支援しなければならない。ネットワークは、セルフコンフィグレーション(自己構築)、セルフマネジメント及びホットプラグアンドプレイを支援しなければならず、また、低コストのケーブリング及びインタフェースを要求しなければならない。
【０００３】
HAViソフトウェア・アーキテクチャは、プラットフォーム依存ではなくJavaベースである。HAViは、ネットワークに接続された装置の間で制御及びコンテンツをトランスポートするために高性能シリアルバスプロトコルIEEE1394を使用する。IEEE1394の規格は、動的に構築可能な低コストのデジタルネットワークである。IEEE1394は、バックプレーン物理層方式と、ポイントツーポイントのケーブル接続による仮想バス方式の両方を実現する。バックプレーン・バージョンは、12.5、25又は50Mbit/secで動作する。ケーブル・バージョンは、100、200及び400Mbit/secのデータレートを支援する。規格は、媒体、トポロジー及びプロトコルを指定している。IEEE1394トランスポートプロトコルは、その高データレート能力により音声及び映像通信プロトコルを支援するのに特に有用である。
【０００４】
HAViアーキテクチャは、ＣＥ装置の抽象表現を通してネットワーク内のＣＥ装置を制御する。抽象表現は、コントローラによって処理されるものであり、関連する本当のＣＥ装置の特異性(idiosyncrasies)を隠す。このように抽象表現は、高レベルのソフトウェアのために一様のインタフェースを提供する。抽象表現は、表現される装置の特性を反映するそれらの制御特性に登録される。抽象表現は、アプリケーションにそれらのインターオペラビリティAPIを呈示して、ホームネットワーク上で移植可能な分散アプリケーションを組み立てるための一組のサービスを集合的に形成する。
【０００５】
アーキテクチャは、ホームネットワークにおいてある装置が他の装置にコマンド又は制御情報を送信することを可能にする。HAVi準拠の装置は、そのユーザ・インタフェース(例えばGUI)及びその制御能力に関連するデータ(デバイス・コントロール・モデルすなわちDCMと呼ばれる上記の抽象表現---詳しくは以下を参照)を含む。このデータは、例えばネットワーク上の他の装置によってアップロードして実行することができるHAViバイトコード(Java)を含む。HAVi準拠の装置は、最低でも、システム内の他の装置と通信するための十分な機能をもつ。インタラクションの間、装置は、ピアツーピア(peer-to-peer)形態で制御及びデータを交換してもよい。これは、通信レベルにおいてどの装置もシステムのマスタ又はコントローラの働きをする必要がないことを確実にする。他方で、それは、論理的なマスタ又はコントローラが、基本的なピアツーピア通信モデルに制御構造を課すことを可能にする。HAViは、以下に詳しく説明するようにコントローラと制御される装置とを区別している。コントローラは、制御される装置のホストとしての役割を果たす装置である。コントローラは、制御される装置に関する抽象表現のホストの役割を果たす。制御インタフェースは、抽象表現のAPIを介して呈示される。このAPIは、アプリケーションが装置を制御するためのアクセスポイントである。
【０００６】
HAVi準拠のＣＥ装置は、FAV(Full-AV device)、IAV(Intermediate-AV device)及びBAV(Base-AV device)のように分類される装置である。
【０００７】
FAVは、HAViソフトウェア・アーキテクチャの完全な一組のソフトウェア構成要素を含む(以下参照)。FAVは、それがHAViバイトコードについてランタイム環境をもつという点で特徴付けられる。これは、FAVが例えばそれらの制御に拡張された能力を与えるために、他の装置からバイトコードをアップロードできるようにする。例えば、FAVは、HAVi準拠のセットトップボックス、HAVi準拠のデジタルテレビ受像機及び家庭用ＰＣにより形成されうる。例えば、インテリジェント・テレビ受像機は、ネットワーク上に接続された他の装置のHAViコントローラになることができる。受像機は、他の装置のUIを生成するため及びこの装置の外部制御を提供するために他の装置からバイトコードをアップロードする。この装置を示すアイコンはTVスクリーン上に現すことができる。また、アイコンを用いたユーザ・インタラクションにより、制御プログラムの要素が、その表された装置を予め指定された態様で動作するようにしてもよい。
【０００８】
IAVは、HAViバイトコードについてランタイム環境を提供しないが、ホームネットワーク上の特定の装置を制御するための固有の支援を提供することができる。IAVは、特定の装置の一般的な機能を制御するためのインタフェースを提供する埋め込みソフトウェア要素を含む。これらのソフトウェア要素は、HAViバイトコードである必要はなく、他の装置にアクセスするために固有のインタフェースを使用するIAV上の固有のアプリケーションとして実現することができる。
【０００９】
BAVは、アップロード可能なHAViバイトコードを提供することができるが、HAViアーキテクチャのいかなるソフトウェア要素のホストにもならない。BAVは、そのアップロードされたバイトコードによりFAVを通して制御可能である。BAVは、固有のコードを介してIAVを通して制御することができる。FAVとBAVあるいはIAVとBAVとの間の通信には、BAVによって使用されるコマンド・プロトコルに/からHAViバイトコードが翻訳される必要がある。
【００１０】
HAViアーキテクチャのコア仕様に含まれる主なソフトウェア要素を以下に挙げる。これらの要素のより詳しい説明はHAVi仕様を参照されたい。その内容はここに参照によって盛り込まれる。
【００１１】
1)1394通信媒体マネージャ(CMM)−他のソフトウェア要素とIEEE1394との間のインタフェースとしての役割を果たす。
【００１２】
2)イベントマネージャ(EM)−機器(装置)が追加されたりネットワークから取り除かれるときに起こるネットワーク構成の変化のようなネットワーク内のイベントをさまざまなソフトウェア要素に通知する。
【００１３】
3)レジストリ−ネットワークに接続される機器についての情報及びそれらが提供する機能を維持管理する。アプリケーションは、この情報をレジストリから得ることができる。
【００１４】
4)メッセージング・システム(MS)−ネットワーク上の多様な機器のソフトウェア要素の間の通信を容易にするAPIの役目を果たす。メッセージング・システムは、HAViソフトウェア要素に通信設備(機能)を与える。これは、ネットワーク層及びトランスポート層から独立している。メッセージング・システムは、いかなるFAV及びIAVにも埋め込まれる。メッセージング・システムは、FAV又はIAVにおいて抽象表現のための識別子を割り当てる役目を負う。これらの識別子はまず、FAV又はIAVにおいて登録するために抽象表現によって使用される。そしてそれらはホームネットワーク内で互いを識別するために抽象表現によって使用される。第１の抽象表現が他の抽象表現にメッセージを送信しようとするとき、それは、メッセージングAPIを呼び出しながら他の抽象表現の識別子を使用する必要がある。
【００１５】
5)デバイス・コントロール・モジュール(DCM)−ネットワーク上の機器を表現する。アプリケーションプログラムは、DCMと直接インタラクトすることができる。これは、それぞれの個々の機器の特異性からそれらを保護する。
【００１６】
6)DCMマネージャ−DCMをインストールする。これは、新しい機器に関する新しいDCMをインストールすることにより自動的にネットワークの変化に対応する。
【００１７】
7)DDI(Data Driven Interaction)コントローラ−HAViソフトウェア要素に代わって機器のディスプレイ上にGUI(グラフィカル・ユーザ・インタフェース)をレンダリングする。これは、グラフィックからテキストのみに至る広範囲なディスプレイを支援する。
【００１８】
8)ストリーム・マネージャ(SMGR)−ネットワーク上の２以上の機器の間の接続を生成し、リアルタイムAVストリームをルーティングする。
【００１９】
HAViアーキテクチャは、レベル１及びレベル２と呼ばれる少なくとも２つのレベルのインターオペラビリティを指定する。
【００２０】
レベル１のインターオペラビリティは、既存の装置が基本的な機能レベルで通信することを可能にする一般的な必要性に応える。これを達成するため、レベル１のインターオペラビリティは、ある装置が他の装置と通信できるようにする総称的な一組の制御メッセージ(コマンド)と、クラス(TV、VCR、DVDプレーヤー等)が与えられた装置から妥当に期待すべきである一組のイベントメッセージとを規定し使用する。このアプローチを支援するため、装置ディスカバリ、通信及びHAViメッセージセットという基本的な一組の機構が要求される。
【００２１】
装置ディスカバリについて：
ホームネットワーク内の各装置は、自身の能力を他の装置に公表することを可能にする明確に定義された方法を必要とする。HAViアプローチは、いわゆるSDDデータすなわち自己記述データを利用することである。SDDデータは、ネットワーク内のすべての装置に必要とされる。SDDデータは、他の装置によってアクセスすることができる装置に関する情報を含む。SDDデータは、最低でも、いわゆる埋め込みデバイス・コントロール・モジュール(埋め込みDCM)のインスタンシエーションを可能にするのに十分な情報を含んでいる。埋め込みDCMは、プラットホーム依存コード内の制御IAV又はFAV上に予めインストールされたコードの一部であり、固有のインタフェースを使用してIAV又はFAVの資源にアクセスする。上述したように、ある装置に関するDCMは、該装置の一般的な機能を制御するためのインタフェースを提供するソフトウェア要素である。埋め込みDCMのインスタンシエーションは、レジストリへの該装置の能力の登録を行う。レジストリは、ディレクトリ・サービスを提供し、ネットワーク上のいかなるオブジェクトでもネットワーク上の別のオブジェクトをロケートできるようにしている。登録は、ネットワーク上の特定の装置に送信することができる基本的な一組のコマンドメッセージをアプリケーションが推論することを可能にする。
【００２２】
通信について：
アプリケーションがある装置の能力を判断すると、アプリケーションは、それらの能力にアクセス可能でなければならない。これは、アプリケーションが装置に要求を発行することを可能にする一般的な通信設備(機能)を必要とする。このサービスは、HAViメッセージングシステム及びDCMによって提供される。アプリケーションは、DCMにHAViメッセージを送信して、該DCMが、装置と独自の通信を行う。
【００２３】
HAViメッセージセットについて：
レベル１のインターオペラビリティを支援するために、明確に定義された一組のメッセージが、特定の既知のクラス(例えばテレビ受像機のクラス、VCRのクラス、DVDプレーヤーのクラス等)のすべての装置によって支援される必要がある。これは、製造業者に関係なくある装置が既存の装置及び将来の装置と共に動作することができるようにする。
【００２４】
これらの３つの基本的な必要条件は、特定の最低レベルのインターオペラビリティを支援する。いかなる装置もレジストリを介して他の装置の能力を問い合わせることができるので、どんな装置でも別の装置によって支援されるメッセージセットを判断することができる。アプリケーションは、メッセージングシステムにアクセスすることができるので、いかなる装置も他のどの装置ともインタラクトすることができる。
【００２５】
レベル１のインターオペラビリティは、装置が基本的なレベルでインターオペレートすることができるようにする。しかし、ある装置がFAV上の埋め込みDCM内に存在しない付加的な機能をもつ他の装置とも通信できるようにするためには一層拡張された機構が必要とされる。例えば、埋め込みDCMは、既存の製品のすべての特徴を支援しないことがあるので、将来の製品分類の中の全く新しいものを支援する見込みはない。レベル２のインターオペラビリティはこの機構を提供する。これを達成するため、HAViアーキテクチャは、上述した埋め込みDCMの代わりとしてアップロード可能なDCMを可能にする。アップロードされたDCMは、FAV上の既存のDCMと置き換えることができる。アップロード可能なDCMは、いかなる適当なソースによって提供されてもよいが、一つの可能性のある技法は、BAV装置のHAVi SDDデータ内にアップロード可能なDCMを具備させ、BAVがホームネットワークに接続されるときにBAVからFAV装置にアップロードすることである。HAViアーキテクチャは、ベンダーに関して中立的であるので、アップロードされたDCMは、潜在的に異なるハードウェア・アーキテクチャをもつさまざまなFAV装置上で動作する必要がある。これを達成するために、アップロードされたDCMは、HAVi(Java)バイトコードで実現される。FAV装置上のHAViバイトコードのランタイム環境は、アップロードされたDCMのインスタンシエーション及び実行を支援する。FAV装置内で生成され走ると、DCMは、上述したのと同じ態様でBAV装置と通信する。
【００２６】
レベル２のインターオペラビリティの効果は、特定の装置の機能にアクセスするために必要とされる資源について考えるとき明らかになる。レベル２は、装置によって提供されるすべての能力を表すアップロードされたDCMを介して該装置が制御されることを可能にする一方、レベル１と同様の機能を達成するために、このDCMはネットワーク内のどこかに埋め込まれる必要がある。例えば、新しい装置がネットワークに追加されるとき、レベル１は、少なくとも１つの他の装置が新しい装置と互換性のある埋め込みDCMを含むことを必要とする。これに対して、レベル２は、ある装置が、新しい装置から得られたアップロードされたDCMにランタイム環境を提供することのみを必要とする。
【００２７】
さらに、バイトコードをアップロードして実行する概念は、デバイス・コントロール・アプリケーションと呼ばれる特定装置向けアプリケーションの可能性を提供する。これらのアプリケーションを通して、装置の製造業者は、HAViの中のすべての特徴を標準化する必要なく、ある装置の特別な特徴を制御する方法をユーザに提供することができる。このアプリケーションは、HAViバイトコード内のDCMによって提供されるものであり、ネットワーク上のそれぞれのFAV装置によってアップロードされインストールされることが可能である。
【００２８】
詳しくはパブリックドメインの中で入手可能なHAVi仕様及びIEEE1394を参照されたい。HAViコア仕様は、ウェブ(例えばhttp://www.sv.philips.com/news/press)上で入手可能であり、ここに参照によって盛り込まれる。
【００２９】
【発明が解決しようとする課題】
上述したように、制御アプリケーションは、装置の機能を制御するために抽象表現のメッセージ・セットを知る必要がある。この互換性を確実にするために、標準化/埋め込みモジュール及びアップロード可能なモジュールという２つの基本的なアプローチが使用される。標準化について：特定のタイプの機能によって支援される一組のコマンドが仕様によって規定される。例えばHAVi仕様の中のチューナに関する規定を参照されたい。アップロード可能なモジュールについて：制御可能な装置上にインストールされたGUIコンポーネント又はアプリケーションは、その制御可能な装置からアップロードし、ホストの役割を果たすHAVi-コントローラによって提供されるランタイム環境の中で実行することができる。しかし、これらどちらの方法においても、第三者のアプリケーション又はランタイム環境自体は、新しい装置すなわちこれまで知られていない機能をもつ装置の特性の意味(セマンティック)を判断することができない。これは、現在のアプローチの下、進行中の標準化の成果が新しいタイプの装置についてもやはり必要とされることを意味する。アップロード可能なGUI制御又はアプリケーションの場合、ユーザ・インタラクション又は制御モダリティを決めるのは該装置の責任であり、より「インテリジェント」なコントローラの責任ではない。例えばランタイムが新しいタイプのユーザ・インタラクション(例えば音声制御)を提供する場合、アップロードされた制御アプリケーションは、それがその種類の入力用に設計されていなければそれを使用することができない。新しい機能及びUIはまだ開発されておらず、ましてや(定義によって)規定されていないので、新しい装置との互換性のテストは、開発者及び設計者にとって本当の課題である。
【００３０】
従って本発明の目的は、資源の制御があらかじめインストールされた又はアップロード可能な抽象表現に基づくものである場合、新しい(すなわちこれまで知られていない)機能がホームネットワーク上に現れたときに遭遇するであろうこの互換性の問題を解決することである。
【００３１】
【課題を解決するための手段】
このために、本発明は、電子装置と、該装置に結合されるコントローラとを有するホームネットワーク・システムを提供する。この装置は、その機能の抽象表現をコントローラに呈示する。コントローラは、抽象表現とのインタラクションを通じて該装置の機能を制御することを可能にする。抽象表現は、機能を制御するモダリティを指定する。指定されるモダリティの制御の下で、システムは、機能の制御を、コントローラのモードに関して(modally)互換性のある制御能力と関連付ける。呈示されるモダリティは、例えば「ブーリアン」、「浮動」、「整数アレイ」でありえる。
【００３２】
「モダリティ」という語は、機能の制御能力の性質を示す属性のことをいう。本発明では、機能のモダリティは、コントローラが装置の機能が何であるかについて実際上知る必要なく、コントローラのモードに関して互換性のある能力にマッピングされる。例えば、モダリティが意味的にブーリアンであると仮定する。ブーリアン制御特性は、ブーリアンの性質を有し且つ「オン／オフ」スイッチまたは「高/低」レバーのような２つの状態のうちの１つを取るUI要素にマッピングすることができる。ユーザがこの要素とインタラクトするとき、該要素にマッピングされる機能は、２つの状態のうちの１つに入れられる。HAViシステムの中で、抽象表現はアップロードされ、好ましくは(例えば音声制御の)UI又はGUIを含み、ユーザはコンテクストを受け取って、自分自身とUIとのインタラクションの結果を判断する。モダリティが一組の離散値である場合、制御特性は、複数の装置からの選択の目的等で３又はそれ以上の離散的な状態のうちの１つを取ることができるGUI要素(例えばある装置上のチャネル選択用ダイヤル)にマッピングすることができる。指定されたモダリティが意味的に浮動小数点値のレンジである場合、マッピングは、連続的に変化する制御の特徴(例えばディスプレイ上の画像の輝度又は音量)上に実行可能である。別の例では、指定されたモダリティは意味的にアレイである。あるアレイは、１より多くのコンポーネントを含む。従って、例えばブーリアン・アレイは、異なる装置のメニュー選択又はチェック・ボックス・リストを実現するためにGUI要素群にマッピングすることができる。浮動小数点モダリティのアレイは、例えばホームネットワークを介して制御されるホームセキュリティシステムにおいてカメラ角度及びカメラのズーム倍率を調整するためのスライダーを表現するGUI要素群にマッピングすることができる。コントローラは、制御される装置の１つ又は複数の機能についての手がかりをもつ必要がないことに注意されたい。コントローラは、ある機能を、そのモダリティの意味に基づいて制御アプリケーションの支配下におくだけでよい。
【００３３】
HAViアーキテクチャのDDIは、ある装置がGUIウィジェットを通して制御される方法を指定する。「ウィジェット」という語は、コンピュータの分野ではさまざまな方法で使用されている。ウィジェットは、ユーザがオペレーティングシステム及びアプリケーションプログラムとインタラクトするための情報を表示するGUIの要素である。ウィジェットは、ユーザインタラクティビティ機能を表示するために、アイコン、プルダウンメニュー、ボタン、選択ボックス、進行インジケータ、オン/オフ・チェックマーク、スクロールバー、ウィンドウ、ウィンドウの大きさを変更するためのウィンドウ端、トグルボタン等を含む。プログラミングにおいては、ウィジェットは更に、特定のウィジェットがどんなふうに見えるか、どのように振る舞うか、ユーザ動作に応じてどのようにインタラクトするか、を記述するために書かれる小さいプログラムを意味する。大部分のオペレーティングシステムは、すぐに手を加えられるウィジェットの組を含んでおり、プログラマは、そのようなウィジェットの組をアプリケーションに組み込むことができ、それがどのように振る舞うかを指定する。新しいウィジェットを生成することができる。Java及びTclのような今日の大部分のアプリケーション開発言語は、プログラマが組み入れ且つ修正することができる既成のウィジェット・ライブラリと共に利用される。マイクロソフトのVisual Basicを使用すると、ウィジェットは、ActiveXコントロール又はその一部等として実現することができる(例えばwww.whatis.comを参照)。UIは、制御されるべき特定の装置の機能を知る必要はなく、どのウィジェットを表すべきかのみを知ればよい。ウィジェットは、UIがどのように構築されるかを決める。ここで、UIパラダイムが以前のバージョンと異なる場合、あるいは、専用のウィジェットが利用可能な環境の中に存在しない場合(例えば新しい音声制御又は3D GUI)でも、本発明は、異なるが意味的に同等な態様で制御を与えることにより装置を制御することを可能にする。ウィジェット・マネージャ又はUIウィザード(総称的には構築アプリケーション/サービス/モジュール/エンティティと呼ばれる)プログラムは、利用可能なUI要素を装置の抽象表現内のモダリティの意味記述と突き合わせることによって、機能的なUIに組み立てることができる。
【００３４】
構築エンティティは新しい装置の出現を監視する。新しい装置が現れると、該エンティティは、このタイプの装置に利用できるGUIがあるかどうかチェックする。もし利用できるものがあれば、該エンティティはそれを取り出す。何もなければ、構築エンティティは、UI表現を生成し、それをコントローラが利用できるようにする。構築エンティティは、オブジェクト記述を取得し、基本的に次のように述べる記述を用いてマッパーを動作させる。「これは特性である。関連するUI要素をこちらにもらいたい」。これは、自動的に又はユーザ介入によって行うことができる。マッパーは、ウィザードのようなものであり、例えば特定のタスクを実施するためにアプリケーションを使用することを助ける該アプリケーション内のユーティリティである。
【００３５】
コンポーネント・ベースのソフトウェア・モデルは、広範囲で利用可能であり、ソフトウェア開発産業の中で受け入れられている。HTML、COM、DCOM、ActiveX、Java、JavaBeansのような技術は、広範囲に及び且つすぐに使えるGUIコンポーネントを開発者に提供する。そのようなコンポーネントの意味は、エンドユーザによって良く理解され、洗練されたアプリケーションを短期間で生成することを可能にする。
【００３６】
製造業者が新しい特徴をもつ新しいHAVi準拠の装置を投入するとき、彼らは、該装置と共に出荷されるバイトコードを修正することができる。バイトコードに加えられる修正は、装置によって提供される新しい機能及び新しい特徴に相当する。同様に、新しいUI要素を、該装置の利用可能なUI表現に加えることができる。HAViアーキテクチャは、テキストのみのディスプレイから高水準グラフィックスディスプレイに至る多様な表示装置上にレンダリングすることができるGUIを装置製造業者が指定することを可能にする。本発明は、ホームオートメーションシステムのHAViベースのホームエンターテイメント機器のような情報処理システムの開発及び市場浸透を容易にする。
【００３７】
本発明は、HAViアーキテクチャのコンテクストの範囲で上述している。本発明の適用の可能性は、HAViベースのシステムに限定されない。別の例として、マイクロソフトのコンポーネントオブジェクトモデル(COM)に基づくクライアント/サーバ・モデル技術を考える。詳しい情報については、例えばマイクロソフトによって供給される1995年10月のコンポーネントオブジェクトモデル仕様バージョン0.9を参照されたい。その内容はここに参照によって盛り込まれる。COMは、オブジェクト指向である。オブジェクトは、ソフトウェア・アプリケーションに呈示されるような関連する電子装置の制御機能を表現する特性をもつ。外部からのイベントの結果としてのオブジェクトの状態変化は、ソフトウェア・アプリケーションに伝えられる。アプリケーションは、それらの特性を変更するかまたは設定することによってオブジェクトを処理する。アプリケーションが、特定の物理的装置に関連するオブジェクトの特性を修正するとき、関連する装置にコマンドが送信される。
【００３８】
COMは、アプリケーションが一貫した方法で通信することを可能にする総称的な機構であり、プログラム・コンポーネント・オブジェクトを開発し支援するためのフレームワークである。それは、ネットワーク内の分散オブジェクトのインターオペレーションのためのフレームワークであるCORBA(Common Object Request Broker Architecture)に規定されるものと同様の能力を提供する。OLE(object linking and embedding)は、ユーザが彼らのディスプレイ上に見る複合文書のためのサービスを提供し、COMは、インタフェースネゴシエーションの基礎的なサービス及びイベントサービスを提供する(別のオブジェクトに生じたイベントの結果として１つのオブジェクトをサービスに入れる)。この実現の中で、クライアントは、制御を呈示するために特性を使用し、状態変化を知らせるためにイベントを使用するOLEオートメーションオブジェクト(抽象表現)としてモデル化される。OLEオートメーションは、サーバに対するクライアントの記述及び遅いバインディングを可能にするCOM技術である。OLEオートメーションは、プログラムが外部利用を可能にしている特徴(コマンド及び問合せ)に対する呼出しを通じて他のプログラムとの通信を提供する。オブジェクトを使用する前に、クライアント・アプリケーションはまずオブジェクトのインタフェース・ポインタを取得する必要がある。インタフェース・ポインタは、オブジェクト名をバインディングすることによって、または、装置を列挙することによって、ネットワークのディレクトリを通して取得される。名前のバインディングのために規格COM APIを使用することができる。オブジェクトへの参照は、所望の装置名又はIDを指定するストリングを用いてGetObject又はCoGetObjectを呼び出すことによって得ることができる。アプリケーションは、オブジェクトの特性を設定するかまたは取り出すことによって該オブジェクトを処理することができる。アプリケーションがある装置に対応するオブジェクトの特性を設定するかまたは修正するとき、特性設定動作又は修正動作がコマンドに変換され、該コマンドは、ネットワークを通して関連する装置に送信される。オブジェクトは、実現が異なっていてもよいが、例えばWindowsベースのオペレーティングシステム(例えばWindows95、Windows98、WinCE、Windows NT)を具えるPCのようなコントローラ上で走るクライアント・アプリケーションに対し、類似の特性に基づくモデルを呈示することができる。従って、制御アプリケーション又はGUI要素は、制御可能な装置の特性の組を知る必要がある。
【００３９】
再び、本発明において、オブジェクトは、特性の機能の制御モダリティがこのモダリティのみの制御の下でコントローラのモードに関して互換性のある制御能力と関連付けられることができるようにそれらの特性を呈示する。
【００４０】
本発明が従来技術の水準より優れた利点を提供する技術の更に別の例として、サン・マイクロシステムズのJiniを考える。Jiniは、PC及び周辺装置をネットワーク化する助けとなるJavaベースのソフトウェア技術である。ネットワークにプラグインされるとき、Jini実行可能な装置は、その存在をブロードキャストする。その装置を使用する準備ができているネットワーク・クライアントは、サーバ又はネットワークマネージャを迂回して該装置からの必要なソフトウェアを要求することができる。このアーキテクチャは、既存のネットワークの頂点にたつものである。ネットワーク自体は前もって構成されていると仮定される。プログラミングインタフェースは、Javaプログラミング言語のタイプシステムによって識別され、サービスは、特定のインタフェースを支援するものを求めることによりルックアップサービスの中で見つけることができる。サービスをこのように見つけることにより、サービスを探しているプログラムは、そのサービスの使用法を確実に知るようになる。その使用は、タイプによって規定される一組の方法によって規定されるからである。この一組の方法は、コンポーネントの間で有意義な協働をもつために予め指定される。本発明において、それは、予め指定される方法をなんら必要とすることなく適当な制御上へのマッピングを決めるモダリティである。
【００４１】
本発明は更に、コントローラを通して電子装置の機能の制御を可能にする方法に関する。この方法は、機能の抽象表現をコントローラに提供することを可能にし、コントローラが抽象表現とのインタラクションを通じて機能を制御することを可能にするため、該抽象表現が機能を制御するモダリティを呈示することを可能にし、呈示されるモダリティの制御の下、コントローラのモードに関して互換性のある制御能力と、機能の制御を関連付けることを可能にすることを含む。上記の可能にするとは、例えば装置又は完全なホームオートメーション・システムに付随していたりインターネットを通じてダウンロードされるソフトウェアパッケージとしてエンドユーザに必要なソフトウェアツールを提供することをいい、あるいは、制御構築を設定する間のサービスプロバイダ又はエンドユーザ自身によるアクティビティをいう。
【００４２】
更に本発明は、ホーム又はオフィス・ベースのシステムだけでなく、例えば車両に関しても製造業者の観点からUIのカスタマイズを容易にする。無線制御、CDプレーヤ制御、走行(cruise)制御、空調制御等のようなコンポーネントのUIは、上で指定したように意味結合機構を通してカスタマイズすることができ、それによって組み込まれたアップグレード性を与えることができる。同じように、エンジン及び車両管理情報の表現(タコメーター、回転カウンタ、オドメータ、エンジン温度、油圧等)は、情報表現機能を所望のレイアウトに意味的に結合することによりカスタマイズすることができる。
【００４３】
【発明の実施の形態】
本発明を添付の図面を参照して例示によって説明する。図面を通して、同じ参照数字は同様の又は対応する特徴を示している。
【００４４】
図１は、本発明の情報処理システム100のブロック図である。このシステム100は、電子装置102と、例えばネットワーク106を介して該装置に結合されるコントローラ104とを有する。システム100は、より多くの電子装置を有することができるが、図面を分かりにくくしないようにするためそれらを図示していない。装置102は、コントローラ104に抽象表現108を呈示する。表現108は、例えば装置102をネットワーク106に機能的に接続したときにコントローラ104にアップロードされる。表現108は、コントローラ108上に別の方法でインストールすることもでき、例えばインターネットを介したり、あるいはディスケットを介してユーザによってインストールすることもできる。コントローラ104は、表現108とインタラクトするソフトウェア・アプリケーション110を通して装置102の機能を制御する。アプリケーション110は更に、例えばGUI装置112のようなユーザインタフェース装置を介してユーザが制御システム100を制御できるようにしている。GUI112は、アプリケーション110とインタフェースする抽象表現114を有する。インタフェース114は、コントローラ104にアップロードされたものであり、または製造業者若しくはユーザによってインストールされたものである。
【００４５】
GUI装置112又はコントローラ104は、装置102の機能についての事前のいかなる知識も持っていないものとする。すなわち、装置102は、装置112及びコントローラ104から見るとブラックボックスである。ここで表現108は、機能の制御のモダリティを指定する。すなわち表現108は、機能の制御の性質を示す属性をもつ。表現108は、例えば名前、タイプ、(複数の)許容値、表示名というエンティティを含むとき、装置の機能をアプリケーション110に呈示する。ここで「名前」とはラベルであり、このラベルを通してその機能がアプリケーション110によってアクセスされうる。「タイプ」は、装置102の機能に関する制御のモダリティ(例えばブーリアン、整数、浮動、アレイ)を指定する。「(複数の)値」は、該機能に関連してモダリティが取りうる１つ(又は複数)の数値を指定する。「表示名」は、「表示名」が「名前」と異なる場合に装置102の機能がどのようにGUI112において表現されるかを示す。
【００４６】
例えば、装置102は「チューナ」という名前をもち、その機能は「チャネル」という名前をもつ。装置102のタイプは、「整数」として指定される。この機能に関する値は、離散的な数値0,1,2,...,5,34,56,...,89からなるリストとして指定される。機能のこの記述を検索するとき、コントローラ110は、例えば以下に示す順序で制御スクリプトの断片を生成する：
a)装置名を得る->(チューナ);
b)機能名を得る->(チャネル);
c)機能のタイプを得る->(整数);
d)機能の(複数の)値を得る->(0,1,2,...,5,34,56,...,89);
e)システム・スクリプト規則(例えばOLEオートメーション、Visual Basic Script、JavaScript等)及び上記の取り出された量を使用することによりテスト・スクリプト・コードを生成する：
for each Value in values
Tuner.Channel=Value
endfor
この制御スクリプトは、機能の制御をテストすることを可能にする。
【００４７】
同様にして、コントローラ104は、抽象表現108によって表されるような制御モダリティを、例えばGUIインタフェース114によって提供されるようなシステム100内で利用できる意味的に同様のモダリティと関連付けるために制御スクリプトを生成する。コントローラは、ウィジェット・マネージャ・プログラム又はUIウィザード・プログラムの助けを借りてこれを達成する。マッピングは、指定されたモダリティにより決められることに注意されたい。これは図２を参照して詳しく説明する。
【００４８】
図２は、モードに関するマッピングを示す図である。上述したように、表現108は、装置の名前、タイプ、値及び表示名に関して特定のキー情報を提供する。GUI装置112は、制御装置112のモードに関する能力を指定する抽象表現114をもつ。これらの能力は、標準化されたUIソフトウェア・コンポーネントを使用してインストールされる。
【００４９】
例えば、装置112は、数量があたかも浮動小数点値を取るかのように、ユーザが特定のパラメータを連続するスケール202上で調整することができるようにする。「浮動」というタイプをもつ機能が、このGUI要素202上にマッピングされる。GUI要素202は、ここではスライダーによりグラフィックで表現されている。ユーザは、タッチスクリーン上で、スライダーの位置を所望の位置にドラッグすることによりそれを調整することができる。代替として、UIがテレビ受像器(図示せず)の表示スクリーン上に表現される場合、ユーザは、マウス(図示せず)、無線キーボード(図示せず)又は他の制御装置(図示せず)を用いてスライダーをクリックしてドラッグすることができる。UIが、物理的な回転ダイヤル又は物理的なスライダーを有する場合、浮動は、この制御特徴上にマッピングすることができる。GUI要素202のグラフィック表現自体が抽象表現108の一部でありえるが、必ずしもそうである必要はない。要素202上にこのようにマッピングすることができる機能は、例えば音量であったり、あるいは周囲の照明の明るさであったりする。
【００５０】
装置102の制御可能な機能がモダリティ「整数アレイ」を有する場合、この機能の制御は、GUI要素204上にマッピングされる。GUI要素204は、選択矢印208を通してスクロールすることにより見えたり見えなくなる複数の選択可能なボタン206を有する。整数アレイの一例は、テレビのチャンネル又は連装プレーヤー(carousel)内のCDの選択を示す一群の数値である。装置の制御可能な機能がブーリアンである場合、制御は、GUI要素210上にマッピングされる。ユーザは、このGUI要素210を通して２つの状態(オン-オフ、アクティブ化-非アクティブ化、高-低、その他)のうち１つを選択することができる。制御可能な機能がブーリアン・アレイを含む場合、それは、複数のソフトキー214を有し且つチェック・ボックス・ウィジェットと機能上同等であるGUI要素212上にマッピングすることができる。
【００５１】
ユーザが特定の制御を特定するのを助けるために、「表示名」の項目が表現108内に提供される。「表示名」は、ユーザにコンテクストを与えるためにGUI112上に表示されるべきラベル(例えば英数字の名前又はアイコン)である。こうしてユーザが制御の意味を解釈できるようにする。表示名ボックスは、参照数字216、218、220及び222によって示される。
【００５２】
Yevgeniy Shteynによる米国特許出願第09/146,020号の「LOW DATA-RATE NETWORK REPRESENTED ON HIGH DATA-RATE HAVi-NETWORK」(出願日09/02/98、代理人整理番号PHA23,492)を参照し、その内容がここに盛り込まれる。この文書は、ホームオートメーション・ネットワークにおいて低データレート・トランスポート層と、装置の制御のためのCOMベースのソフトウェアコンポーネントとを使用するPCベースのホームオートメーション・システムに関する。このホームオートメーション・システムは、高データレート・トランスポート層としてIEEE1394を使用するメッセージング・ベースのHAVi-ネットワークとマージされている。HAVi-ネットワークは、ホーム・エンターテイメント・システム内の音声/映像機器を制御する。ホームオートメーション・サービス及び装置は、HAVi準拠の要素としてHAViネットワークのFAV又はIAV装置に登録される。ホームオートメーション資源(装置及びサービス)は、HAVi-ネットワークからのホームオートメーション・システムの制御を可能にするため、COM OLEオートメーション・インタフェース及びHAVI準拠のインタフェースをもつ。
【００５３】
Lawrence Freemanによる米国特許出願第09/133,622号の「HOME-NETWORK AUTOCONFIGURATION」(出願日08/13/98、代理人整理番号PHA23,488)を参照し、その内容がここに盛り込まれる。この文書は、個々のPCにおいて登録されている資源を共有するためのネットワーク好ましくはホームネットワーク内のPCの自動構築に関する。１つのPCにローカルなサービス及び資源は、他のPCに登録され、その逆も行われる。レジストリは、サービス又は資源がリモートであるかローカルであるかを隠す。ネットワークを実際に使用する際、1つのPCにローカルな資源又はサービスは、それがまるで遠隔PCにローカルであるかのように遠隔PCからアドレス指定できる。
【００５４】
Yevgenyi Shteyn及びGregory Gewickeyによる米国特許出願第09/107,525号の「DYNAMIC DE-REGISTERING OF DEVICES IN SYSTEM WITH MULTIPLE COMMUNICATION PROTOCOLS」(出願日06/30/98、代理人整理番号PHA23,438)を参照し、その内容がここに盛り込まれる。この文書は、第１及び第２の電子サブシステムと、該サブシステムを制御するための制御手段とを有する情報処理システムに関連する。少なくとも第１のサブシステムは、制御手段に登録されたソフトウェア表現を有する。制御手段は、ソフトウェア表現とインタラクトすることにより第１のサブシステムの状態を変更する。第１及び第２のサブシステムは更に、制御手段を巻き込むことなく、互いに直接インタラクトすることもできる。競合を避けるため、少なくとも第１のサブシステムは、制御手段においてそのソフトウェア表現を機能上ディスエーブルするように該制御手段への登録を解除することができる。
【００５５】
Paul Chambers及びSaurabh Srivastavaによる米国特許出願第08/731,624号の「TASK-DRIVEN DISTRIBUTED MULTIMEDIA CONSUMER SYSTEM」(出願日10/15/96、代理人整理番号PHA23,169)を参照し、その内容がここに盛り込まれる。この文書は、複数のコンシューマエレクトロニクス装置と、該装置に結合され該装置の間のインタラクションを制御するタスク駆動の制御手段とを有する制御システムに関連する。制御手段は、各コンシューマ装置のそれぞれのソフトウェア表現に従って動作する。ソフトウェア表現内のタスクの変動する複雑さをカプセル化することにより、必要に応じてそれを単純にして又は洗練させてそれらの能力を共通のレベルにまで引き上げることができる。インタフェースのレベルはそれらの装置に共通であるので、アプリケーションは、まったく異なる洗練さのレベルを具現化しているそれらの装置を一様に扱うことができる。
【図面の簡単な説明】
【図１】本発明のホームネットワーク・システムの図。
【図２】モードに関するマッピングを示す図。
【符号の説明】
１０２  電子装置
１０４  コントローラ
【図１】
0004686026.tif 000002
【図２】
0004686026.tif 000003