JP4458762B2 - Host device, target device, program executed on host device or target device, and device control system - Google Patents
Host device, target device, program executed on host device or target device, and device control system Download PDFInfo
- Publication number
- JP4458762B2 JP4458762B2 JP2003088486A JP2003088486A JP4458762B2 JP 4458762 B2 JP4458762 B2 JP 4458762B2 JP 2003088486 A JP2003088486 A JP 2003088486A JP 2003088486 A JP2003088486 A JP 2003088486A JP 4458762 B2 JP4458762 B2 JP 4458762B2
- Authority
- JP
- Japan
- Prior art keywords
- program code
- host device
- execution environment
- memory area
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、機器制御システム及びそのシステムによって構築されるネットワーク並びにそのシステムを構成する機器で実行されるプログラムに関し、より特定的には、制御主体であるホスト機器と制御対象であるターゲット機器とが接続されたシステムであって、ホスト機器が自己の実行環境に応じて、ターゲット機器の制御に必要な最適なプログラムコードをアップロードする機器制御システム、及びその機器制御システムによって構築されるネットワーク、並びにその機器制御システムを構成するホスト機器又はターゲット機器で実行されるプログラムに関する。
【0002】
【従来の技術】
近年、多種多様のAV機器及び情報端末機器等が、家庭向けに製品化されている。これに伴って、家庭内にある複数の機器を接続して互いに制御し合う、例えば、TV受像機とビデオデッキとを接続してTV受像機の画面上からビデオデッキの制御を行う、という技術が確立してきた。その技術の1つとして、HAVi(Home Audio/Video interoperability)(R)がある(非特許文献1を参照)。また、パソコンとプリンタやスキャナ等とを接続して、自動的にネットワークを構築させる技術として、Jini(R)等がある(非特許文献2を参照)。
【0003】
これらの技術には、共通して次の手法が用いられる。制御対象となるターゲット機器は、自己の制御に必要な情報を記述したプログラムコード(制御コード)を予め保持している。例えば、HAVi(R)等の仕様では、API(Application Program Interface)を使用するプログラムコードとなる。制御主体となるホスト機器は、そのプログラムコードをアップロードして解釈/実行することで、ターゲット機器の制御等を行う。
この手法をとることで、ホスト機器は、予めターゲット機器を制御する方法を知らなくてもターゲット機器の制御が可能になり、様々なメーカで製品化された機器同士を接続して互いに制御し合うことも可能になる。
【0004】
一般に、これらの技術を用いて構築されるシステムでは、複数のホスト機器と複数のターゲット機器とがネットワーク接続されることを想定している。
ここで、各ターゲット機器が、自己の全機能を制御するためのプログラムコードをそれぞれ1つ保持している場合を考える。この場合、複数のホスト機器で全てのターゲット機器を制御するためには、各ホスト機器は、各ターゲット機器のプログラムコードを完全にサポートするための高度な実行環境を備える必要がある。このため、各ホスト機器が高価になるという課題があった。
【0005】
そこで、複数のホスト機器が、高度な実行環境ではなく、自己の能力に応じた異なる実行環境をそれぞれ備える場合を考える。この場合、複数のホスト機器で全てのターゲット機器を制御するためには、各ターゲット機器に、複数のホスト機器の実行環境に応じた複数のプログラムコードを予め保持させておき、ホスト機器に、自己の実行環境に最適なプログラムコードをアップロードさせる必要がある。
【0006】
機器制御に直接対応した技術ではないが、上述した最適なプログラムコードのアップロードに関連する従来の技術として、特許文献1に開示されているものが存在する。
この従来の技術は、デバイス(プリンタ等)とデバイスコントローラ(パソコン等)との間で、ドライバソフトウエアを通信するものである。この従来の技術では、デバイス側に、接続可能性のあるデバイスコントローラに搭載された異なるオペレーティングシステム(OS)に対応させて、予め複数のドライバソフトウエアを保持させておき、デバイスコントローラが、その中から自己のOSに最適なドライバソフトウエアをアップロードすることを行う。これにより、従来の技術では、常に最適なドライバソフトウエアを、デバイスからデバイスコントローラにアップロードさせることを可能としている。
【0007】
【特許文献1】
特開平10−214243号公報
【非特許文献1】
仕様書「The HAVi Specification Version 1.0」
HAVi推進協会
【非特許文献2】
技術書「Jini Technology Specific Attachment v1.0」
サンマイクロシステム社
【0008】
【発明が解決しようとする課題】
上記従来の技術では、アップロード対象がそれほど容量の大きくないドライバソフトウエアであり、またホスト機器に搭載される各OSに対応するドライバソフトウエアは1つである。よって、従来の技術では、ホスト機器の実行環境として搭載されているOSを判断するだけで、最適なドライバソフトウエアを一意に決定することができる。
【0009】
しかしながら、アップロード対象が容量の大きいプログラムコードである場合には、ホスト機器のOS、CPU及びキャッシュメモリ等の実行環境に加えて、プログラムコードを格納するために用意されたメモリ領域の残量も考慮する必要がある。すなわち、同じホスト機器であっても、アプリケーション等の使用状況によって使用可能なメモリ領域が変動する。従って、アップロード時点におけるホスト機器の状態をこれらを考慮して総合的に判断し、その判断に応じてアップロードするプログラムコードの内容を変更させることが望ましいのである。
このため、上記従来の技術による手法を単純に機器制御に応用させても、ホスト機器の状態変化までをも考慮した最適なプログラムコードのアップロードを実現させることは、不可能である。
【0010】
また、アップロード対象がドライバソフトウエアの場合、各ホスト機器にドライバソフトウエアをアップロードするだけなので、ネットワーク接続された他のホスト機器との関連性はない。
しかし、アップロード対象がプログラムコードである場合には、ネットワーク接続された他のホスト機器との関連性が生じてくる。よって、他のホスト機器のネットワーク接続状態や他のホスト機器にすでにアップロードされたプログラムコードを適宜判断することによって、様々なアップロード手法及び機器制御を実現することが可能となる。
【0011】
それ故に、本発明の目的は、ターゲット機器に異なる実行環境で利用される複数のプログラムコードを予め保有させておき、ホスト機器が、自己の実行環境やメモリ領域の残量、さらには他のホスト機器のネットワーク接続状態を判断して、最適なプログラムコードをターゲット機器からアップロードして機器制御を実行できる機器制御システム、及びそのシステムによって構築されるネットワーク、並びにそのシステムを構成する機器で実行されるプログラムを提供することである。
【0012】
【課題を解決するための手段】
本発明は、上記目的を達成させるために、以下に示す特徴を備えている。
本発明のホスト機器は、ホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納し、取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成したプログラムコード管理部を備えたターゲット機器と、通信回線を介して接続されたホスト機器であって、ヘッダオブジェクトをターゲット機器から取得する取得部と、複数のプログラムコードを格納するための第1のメモリ領域と、自身の実行環境及び第1のメモリ領域の残量を判断し、ヘッダオブジェクトの解析を行って、ターゲット機器に格納されている複数のプログラムコードのうち、実行環境に適合し、かつ第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、情報解析部で決定されたプログラムコードを、ターゲット機器から読み出して第1のメモリ領域に格納する読み出し部と、読み出し部により第1のメモリ領域に格納されたプログラムコードを用いて、ターゲット機器を制御する制御部とを備える。
【0013】
また、実行環境とは、ホスト機器が備える仮想マシンの種類に応じたプログラムコードであり、情報解析部は、自身とは異なるホスト機器が通信回線を介して接続されているかどうかを確認する機能、および、自身のホスト機器から通信回線を介して、自身とは異なるホスト機器を制御するプログラムコードを自身とは異なるホスト機器が格納しているかどうかを確認する機能をさらに有し、自身が備える仮想マシンの種類に適合するプログラムコードが複数ある場合、自身が備える仮想マシンの種類に適合する複数のプログラムコードのうち、自身とは異なるホスト機器を制御するプログラムコードを含むプログラムコードを決定することを特徴とする。
【0014】
また、実行環境とは、ホスト機器が備える仮想マシンの種類に応じたプログラムコードであり、仮想マシンの種類に応じたプログラムコードは、GUIに対応するプログラムコードを含み、情報解析部は、自身とは異なるホスト機器が通信回線を介して接続されているかどうかを確認する機能、および、自身とは異なるホスト機器が、自身の第1のメモリ領域へ格納すべき仮想マシンの種類に応じたプログラムコードを格納しているかどうかを確認する機能をさらに有し、仮想マシンの種類に適合するプログラムコードを自身が備える第1のメモリ領域へ格納できない場合であって、自身とは異なるホスト機器が、自身が備える第1のメモリ領域へ格納すべき仮想マシンの種類に応じたプログラムコードを格納している場合、自身とは異なるホスト機器が格納する仮想マシンの種類に応じたプログラムコードに含まれるGUIに対応するプログラムコードを自身とは異なるホスト機器から取得して、自身が備える第1のメモリ領域へ格納することを特徴する。
【0020】
本発明のターゲット機器は、ターゲット機器から取得したプログラムコードを用いてターゲット機器を制御するホスト機器と、通信回線を介して接続されたターゲット機器であって、通信回線を介してターゲット機器と接続するホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納した格納部を備え、実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成した管理部と、通信回線を介して接続するホスト機器の実行環境に対応する情報及びホスト機器が備える第1のメモリ領域の残量を含む機器情報を、通信回線を介して接続するホスト機器から取得する取得部と、取得したホスト機器の機器情報を解析し、複数のプログラムコードのうち、通信回線を介して接続するホスト機器の実行環境に適合し、かつ通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、情報解析部で決定されたプログラムコードを、通信回線を介して接続するホスト機器へ通知する通知部とを備える。
【0023】
本発明のプログラムは、ホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納し、取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成したプログラムコード管理部を備えたターゲット機器と、通信回線を介して接続されたホスト機器で実行されるプログラムあって、ヘッダオブジェクトをターゲット機器から取得する取得ステップと、自身の実行環境及び第1のメモリ領域の残量を判断し、ヘッダオブジェクトの解析を行って、ターゲット機器に格納されている複数のプログラムコードのうち、実行環境に適合し、かつ第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析ステップと、情報解析ステップで決定されたプログラムコードを、ターゲット機器から読み出して第1のメモリ領域に格納する読み出しステップと、読み出しステップにより第1のメモリ領域に格納されたプログラムコードを用いて、ターゲット機器を制御する制御ステップとを含む。
【0026】
本発明のプログラムは、ターゲット機器から取得したプログラムコードを用いてターゲット機器を制御するホスト機器と、通信回線を介して接続されたものであって、自身の制御に必要な複数のプログラムコード、および複数のプログラムコードのそれぞれは、通信回線を介してターゲット機器と接続するホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納した格納部を備え、取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成した管理部を備えたターゲット機器で実行されるプログラムであって、通信回線を介して接続するホスト機器の実行環境に対応する情報及びホスト機器が備える第1のメモリ領域の残量を含む機器情報を、通信回線を介して接続するホスト機器から取得する取得ステップと、取得したホスト機器の機器情報を解析し、複数のプログラムコードのうち、通信回線を介して接続するホスト機器の実行環境に適合し、かつ通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析ステップと、情報解析ステップで決定されたプログラムコードを、通信回線を介して接続するホスト機器へ通知する通知ステップとを含む。
【0027】
本発明の機器制御システムは、1つ以上のホスト機器と1つ以上のターゲット機器とが、通信回線を介して接続された機器制御システムであって、ターゲット機器は、ホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納し、取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成したプログラムコード管理部を備え、ホスト機器は、ヘッダオブジェクトをターゲット機器から取得する取得部と、複数のプログラムコードを格納するための第1のメモリ領域と、自身の実行環境及び第1のメモリ領域の残量を判断し、ヘッダオブジェクトの解析を行って、ターゲット機器に格納されている複数のプログラムコードのうち、実行環境に適合し、かつ第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、情報解析部で決定されたプログラムコードを、ターゲット機器から読み出して第1のメモリ領域に格納する読み出し部と、読み出し部により第1のメモリ領域に格納されたプログラムコードを用いて、ターゲット機器を制御する制御部とを備える。
【0028】
本発明の機器制御システムは、1つ以上のホスト機器と1つ以上のターゲット機器とが、通信回線を介して接続された機器制御システムであって、ターゲット機器は、通信回線を介してターゲット機器と接続するホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納した格納部を備え、取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成した管理部と、通信回線を介して接続するホスト機器の実行環境に対応する情報及びホスト機器が備える第1のメモリ領域の残量を含む機器情報を、通信回線を介して接続するホスト機器から取得する取得部と、取得したホスト機器の機器情報を解析し、複数のプログラムコードのうち、通信回線を介して接続するホスト機器の実行環境に適合し、かつ通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、情報解析部で決定されたプログラムコードを、通信回線を介して接続するホスト機器へ通知する通知部とを備え、ホスト機器は、自身の実行環境に対応する情報を含むヘッダオブジェクト及びホスト機器が備える第1のメモリ領域の残量を含む機器情報を管理する情報管理部と、ターゲット機器から通知されたプログラムコードを、ターゲット機器から読み出して第1のメモリ領域に格納する読み出し部と、読み出し部により第1のメモリ領域に格納されたプログラムコードを用いて、ターゲット機器を制御する制御部とを備える。
【0030】
【発明の実施の形態】
以下、本発明が提供するホスト機器がターゲット機器を制御する機器制御システムを、接続されるホスト機器の数及びターゲット機器からのプログラムコードのアップロード手法に応じて、複数の場合に分けて説明する。
【0031】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る機器制御システムの構成を示すブロック図である。図1において、第1の実施形態に係る機器制御システムは、1つ以上のホスト機器1と1つ以上のターゲット機器2とが、有線又は無線の通信回線3で接続される構成によって実現される。
【0032】
ホスト機器1は、ヘッダオブジェクト解析部11と、ヘッダオブジェクトアップロード部12と、プログラムコードアップロード部13と、制御部14と、通信制御部15と、ROM16と、RAM17と、CPU18とを備える。ターゲット機器2は、制御部21と、プログラムコード管理部22と、プログラムコード格納部23と、通信制御部24とを備える。
【0033】
まず、上記構成による第1の実施形態に係る機器制御システムのターゲット機器2を説明する。
プログラムコード格納部23には、複数のプログラムコード231〜23n(nは、2以上の整数)が格納されている。この複数のプログラムコード231〜23nは、ターゲット機器2の開発者によって、ターゲット機器2に接続され得ると予め分かっているホスト機器1の実行環境に応じて、事前に作成される(詳細は後述する)。
プログラムコード管理部22は、プログラムコードを管理する情報としてヘッダオブジェクト221を格納している。このヘッダオブジェクト221は、プログラムコード231〜23n毎に、それらがどのような実行環境に対応するプログラムコードなのかを示す情報、及びプログラムコード格納部23内の格納先アドレスを示す情報である(詳細は後述する)。
制御部21は、通信制御部24を介してホスト機器1から与えられる指示に従って、ヘッダオブジェクト221又はプログラムコード231〜23nの読み出し/送出の制御を行う。
【0034】
次に、上記構成による第1の実施形態に係る機器制御システムのホスト機器1を説明する。図2は、第1の実施形態のホスト機器1で行われるプログラムコード決定処理の基本的な手順を示すフローチャートである。
ホスト機器1とターゲット機器2とが通信回線3を介して接続され相互に通信できる状態になると、CPU18及び制御部14は、アップロードに関する所定の指示を行って、ヘッダオブジェクト解析部11、ヘッダオブジェクトアップロード部12及びプログラムコードアップロード部13に、それぞれ次の処理を実行させる。
【0035】
まず、ヘッダオブジェクトアップロード部12が、通信制御部24、通信回線3及び通信制御部15を通じて、ターゲット機器2のプログラムコード管理部22に格納されているヘッダオブジェクト221を、RAM17にアップロードする(ステップS21)。ヘッダオブジェクト解析部11は、RAM17にアップロードされたヘッダオブジェクト221を読み出す(ステップS22)。次に、ヘッダオブジェクト解析部11は、ホスト機器1の実行環境を確認する(ステップS23)。そして、ヘッダオブジェクト解析部11は、ヘッダオブジェクト221に含まれる各プログラムコードの実行環境に関する情報に基づいて、確認した実行環境に適合するプログラムコードを決定する(ステップS24)。最後に、プログラムコードアップロード部13は、ヘッダオブジェクト解析部11によって決定されたプログラムコードを、通信制御部24、通信回線3及び通信制御部15を通じて、ターゲット機器2のプログラムコード格納部23からROM16にアップロードする(ステップS25)。
【0036】
そして、上述した実行環境に適合したプログラムコードのアップロード処理が完了した後、ホスト機器1は、ユーザ指示に応じてROM16に格納されたプログラムコードを解釈/実行し、ターゲット機器2を制御する。
【0037】
次に、図3〜図12をさらに参照して、プログラムコード管理部22に格納されるヘッダオブジェクト221及びプログラムコード格納部23に格納されるプログラムコード231〜23nの具体的な作成例を、ヘッダオブジェクト解析部11で確認するホスト機器1の実行環境形態に対応させて説明する。
【0038】
<具体例1> ホスト機器1の実行環境として、HAVi(R)やJini(R)で規定される仮想マシンを判断する場合
HAVi(R)やJini(R)では、ターゲット機器2を制御するためのプログラムコードをJava(R)で記述している。よって、そのプログラムコードを解釈/実行するホスト機器1は、Java(R)コードを実行するための仮想マシンを備える必要がある。この仮想マシンには、搭載される機器に応じて幾つかの種類がある。例えば、セットトップボックス(STB)やテレビ受像機に組み込まれる仮想マシンとしてCVMが、携帯型情報機器(PDA)や携帯電話端末に組み込まれる仮想マシンとしてKVMが、ICカード等に組み込まれる仮想マシンとしてCardVMが、一般に知られている。図3は、それぞれの仮想マシンが推奨するメモリサイズ及びJava(R)プログラムの実行上での制限に関する一覧表の例である。
【0039】
よって、実行環境として仮想マシンの種類を判断する場合には、各仮想マシンのメモリサイズや制限内容に基づいて、各仮想マシンに一意に対応するプログラムコードを作成して、それに関するヘッダオブジェクトと共にターゲット機器2に予め格納しておく。
【0040】
例えば、プログラムコード格納部23には、CVMの仮想マシンに対応するプログラムコード231、KVMの仮想マシンに対応するプログラムコード232、及びCardVMの仮想マシンに対応するプログラムコード233をそれぞれ作成し、所定のアドレス領域に格納する(図4(a))。そして、プログラムコード管理部22には、プログラムコード231がCVMの仮想マシンに、プログラムコード232がKVMの仮想マシンに、プログラムコード233がCardVMの仮想マシンにそれぞれ対応することを示す対応実行環境情報と、プログラムコードの格納先アドレス情報とからなる、ヘッダオブジェクト221を格納する(図4(b))。対応実行環境情報としては、仮想マシン名が最適である。なお、プログラムコードの数や仮想マシンの種類は、上述したものに限られず自由に設定可能である。
【0041】
このように格納されたヘッダオブジェクト221及びプログラムコード231〜233を用いて、ホスト機器1による最適なプログラムコードのアップロード処理が次のように行われる。
【0042】
図5は、ホスト機器1がCVMの仮想マシン101を搭載しているテレビ受像機で、ターゲット機器2がビデオデッキである場合を説明する図である。
図5において、通信回線3を介してホスト機器1とターゲット機器2とが接続されると、ヘッダオブジェクトアップロード部12によって、ターゲット機器2からヘッダオブジェクト221がアップロードされる。ヘッダオブジェクト221がアップロードされると、次に、ヘッダオブジェクト解析部11によって、仮想マシン101と一致する対応実行環境、すなわちCVMのプログラムコードがターゲット機器2に存在するか否かが判断される。存在する場合には、格納先アドレス「0x01」に従い、プログラムコードアップロード部13によって、プログラムコード231がターゲット機器2からアップロードされる。
【0043】
また、図6は、ホスト機器1がKVMの仮想マシン102を搭載している携帯電話端末で、ターゲット機器2がビデオデッキである場合を説明する図である。
図6において、通信回線3を介してホスト機器1とターゲット機器2とが接続されると、ヘッダオブジェクトアップロード部12によって、ターゲット機器2からヘッダオブジェクト221がアップロードされる。ヘッダオブジェクト221がアップロードされると、次に、ヘッダオブジェクト解析部11によって、仮想マシン102と一致する対応実行環境、すなわちKVMのプログラムコードがターゲット機器2に存在するか否かが確認される。存在する場合には、格納先アドレス「0x02」に従い、プログラムコードアップロード部13によって、プログラムコード232がターゲット機器2からアップロードされる。
【0044】
<具体例2> ホスト機器1の実行環境として、機器スペックやユーザの嗜好する制御形態を判断する場合
この場合、ホスト機器1が取り得る実行環境の内、予め所望する幾つかの機器スペックのパラメータを組み合わせて複数のケースに場合分けしておく。そして、これらの各ケースに一意に対応するプログラムコードを作成して、それに関するヘッダオブジェクトと共にターゲット機器2に予め格納しておく。機器スペックの要素としては、CPUの動作周波数、キャッシュメモリサイズ、及び同時発色数(グラフィック)等が考えられる。
【0045】
例えば、上述した機器スペックのパラメータによって、図7のように複数のケースA〜Dを予め作成する。図7の例では、GUI(Graphical User Interface)の言語、条件を満たさなければプログラムコードの実行が不可能になる必須条件(Mandatory)、及び条件を満たさなくても実行は可能であるが快適に動作させるためには必要となる推奨条件(Recommendable)を有している。プログラムコード格納部23には、ケースAに対応するプログラムコード231、ケースBに対応するプログラムコード232、ケースCに対応するプログラムコード233、及びケースDに対応するプログラムコード234をそれぞれ作成し、所定のアドレス領域に格納する(図8(a))。そして、プログラムコード管理部22には、プログラムコード231の機器スペック、プログラムコード232の機器スペック、プログラムコード233の機器スペック、プログラムコード234の機器スペックをそれぞれ示すスペック情報と、プログラムコードの格納先アドレス情報とからなる、ヘッダオブジェクト221を格納する(図8(b))。
【0046】
このように格納されたヘッダオブジェクト221及びプログラムコード231〜234を用いて、ホスト機器1による最適なプログラムコードのアップロード処理が次のように行われる。
【0047】
この<具体例2>の場合、ホスト機器1のヘッダオブジェクト解析部11は、ターゲット機器2からアップロードしたヘッダオブジェクト221の情報を格納する領域(アップロードリスト)111と、ホスト機器1のスペック情報を格納する領域112と、ユーザプリファレンス情報を格納する領域113とを備えている(図9)。格納領域112で管理されるスペック情報は、図7に示す各項目に対応している。格納領域113で管理されるユーザプリファレンス情報とは、図10に示すように、ユーザが所望する制御形態、例えばGUI上の言語、グラフィック(同時発色数)、実行可能なコマンド(再生や停止等)の個数等を決定する制御モード等、の設定に関する情報である。このユーザプリファレンス情報は、入力部(図示せず)を介してユーザによって自由に設定される。
【0048】
上記構成によるヘッダオブジェクト解析部11を備えるホスト機器1で行われるプログラムコード決定処理の手順を、図11及び図12に示すフローチャートを用いて説明する。
図11を参照して、通信回線3を介してホスト機器1とターゲット機器2とが接続されると、ヘッダオブジェクトアップロード部12によって、ターゲット機器2からヘッダオブジェクト221がアップロードされる(ステップS111)。ヘッダオブジェクト解析部11は、アップロードされたヘッダオブジェクト221を読み出してアップロードリスト111に格納する(ステップS112)。そして、ヘッダオブジェクト解析部11は、格納したヘッダオブジェクト221に含まれる複数の情報から未処理の情報(以下、処理対象情報という)を1つ選択して(ステップS113,S114)、図12に示すアップロード必須条件判定処理を実行する(ステップS115)。
【0049】
図12を参照して、ヘッダオブジェクト解析部11は、格納領域113に格納されているユーザプリファレンス情報の設定言語が、処理対象情報のプログラムコードの実行時にGUI上に表示される言語と一致するか否か(言語条件)を判断する(ステップS121)。双方の言語が一致すると判断した場合、次に、ヘッダオブジェクト解析部11は、スペック情報のCPUと処理対象情報のCPUとを比較して、CPU条件を満足するか否かを判断する(ステップS122)。CPU条件を満足すると判断した場合、次に、ヘッダオブジェクト解析部11は、スペック情報のメモリと処理対象情報のメモリとを比較して、メモリ条件を満足するか否かを判断する(ステップS123)。メモリ条件を満足すると判断した場合、次に、ヘッダオブジェクト解析部11は、ユーザプリファレンス情報の設定グラフィックと、処理対象情報のグラフィックとを比較して、グラフィック条件を満足するか否かを判断する(ステップS124)。
【0050】
そして、上記ステップS121〜S124の全ての条件を満足する場合には、ヘッダオブジェクト解析部11は、この処理対象情報をアップロードリスト111に残す(ステップS125)。これに対して、上記ステップS121〜S124のいずれか1つでも条件を満足できない場合には、ヘッダオブジェクト解析部11は、この処理対象情報をアップロードリスト111から削除する(ステップS126)。
このステップS114、S115及びS121〜S124の判定処理は、アップロードリスト111に格納されたヘッダオブジェクト221に含まれる全ての情報について実行される(ステップS113)。
【0051】
再び図11を参照して、アップロードリスト111に読み出されたヘッダオブジェクト221の全ての情報について判定処理が完了すると(ステップS113,No)、次に、ヘッダオブジェクト解析部11は、アップロードリスト111に残ったヘッダオブジェクト221の各情報を用いて、以下のユーザ嗜好条件判定処理を実行する。
【0052】
ヘッダオブジェクト解析部11は、格納領域113をチェックして、言語以外にユーザプリファレンス情報が設定されているか否かを確認する(ステップS116)。確認した結果、言語以外に設定されたユーザプリファレンス情報がある場合、ヘッダオブジェクト解析部11は、ユーザプリファレンス情報とアップロードリスト111に残ったヘッダオブジェクト221の各情報とをそれぞれ比較し、情報が最も多く一致するプログラムコードを決定する(ステップS117)。一方、言語以外に設定されたユーザプリファレンス情報がない場合、ヘッダオブジェクト解析部11は、スペック情報とアップロードリスト111に残ったヘッダオブジェクト221の各情報の推奨条件とをそれぞれ比較し、情報が最も多く一致するプログラムコードを決定する(ステップS118)。
【0053】
そして、プログラムコードアップロード部13は、ヘッダオブジェクト解析部11によって決定された最適なプログラムコードを、その格納先アドレスに従ってターゲット機器2からアップロードする(ステップS119)。
【0054】
以上のように、本発明の第1の実施形態に係る機器制御システムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ホスト機器が、自己の実行環境に合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。これにより、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。
【0055】
なお、上記第1の実施形態では、ホスト機器のスペック情報及びユーザプリファレンス情報の双方に基づいて、最適なプログラムコードを決定する場合を説明したが、いずれか一方の情報だけに基づいて最適なプログラムコードを決定するようにしても構わない。
【0056】
また、本発明の第1の実施形態に係る機器制御システムによれば、ターゲット機器の開発者は、仮想マシンや機器スペックの場合分けに基づいたプログラムコードを記述することで、様々な実行環境を有するホスト機器を最適に動作させるプログラムコードを容易に提供することができる。仮想マシンの種類で分類している場合、ホスト機器では、仮想マシン名のみの判断で、ターゲット機器に複数存在するプログラムコードの中から最適なプログラムコードを決定することが可能となり、コスト削減を実現できる。機器スペックで分類している場合、ターゲット機器の開発者は、自身の作成するプログラムコードを実行するための条件をある程度独自に定義することが可能になり、新たなバージョンのホスト機器及びターゲット機器に対しても、対応することが可能になる。
【0057】
(第2の実施形態)
上記第1の実施形態では、ホスト機器の固定的な実行環境(仮想マシンや機器スペック等)に一意に対応するプログラムコードをそれぞれ1つだけターゲット機器に格納させている。通常、これらのプログラムコードは、対応する実行環境において制御可能な全ての機能について作成されるため、容量が大きい。このため、ホスト機器のROM等のメモリ領域の残量によっては、プログラムコードをアップロードできない場合が生じる。
そこで、本第2の実施形態では、実行環境に加えてホスト機器のメモリ領域の残量をさらに判断した上で、最適なプログラムコードをアップロードできる機器制御システムを説明する。
【0058】
本発明の第2の実施形態に係る機器制御システムの基本的な構成は、上記第1の実施形態に係る機器制御システムと同様であるが、ホスト機器1のヘッダオブジェクト解析部11の処理、ターゲット機器2のプログラムコード管理部22に格納されるヘッダオブジェクト221及びプログラムコード格納部23に格納されるプログラムコード231〜23nの内容が異なる。
以下、ホスト機器1に搭載される仮想マシンの種類に対応したプログラムコード231〜23nが、プログラムコード格納部23に格納される場合を一例に挙げて、第1の実施形態と異なる部分を中心に第2の実施形態を説明する。
【0059】
まず、図13をさらに参照して、ターゲット機器2のプログラムコード管理部22に格納されるヘッダオブジェクト221及びプログラムコード格納部23に格納されるプログラムコード231〜23nの具体例を、それぞれ説明する。
【0060】
上記第1の実施形態では、各仮想マシンに一意に対応するプログラムコードをそれぞれ1つだけ作成した。これに対し、本第2の実施形態では、仮想マシン毎に、容量の異なる複数のプログラムコードを作成する。例えば、図13(a)のように、仮想マシン毎に、予め定めた使用可能な機能でクラス分けされた複数のプログラムコード231〜236を作成する。このクラス分けは自由に可能であり、例えば全ての機能が使用できるものをクラス1と、一部の機能が使用できないものクラス2等とすればよい。このように、一部の機能の使用が制限されたプログラムコードも作成することで、同一仮想マシン向けに容量の異なる複数のプログラムコードを提供することができる。
【0061】
プログラムコード管理部22には、プログラムコード格納部23に格納されるプログラムコード231〜236毎に、どの仮想マシンに対応か示す対応実行環境、その容量及びその格納先アドレスの情報からなるヘッダオブジェクト221を、格納する(図13(b))。
このように格納されたヘッダオブジェクト221及びプログラムコード231〜236を用いて、ホスト機器1による最適なプログラムコードのアップロード処理が次のように行われる。
【0062】
図14は、第2の実施形態のホスト機器1で行われるプログラムコード決定処理の手順を示すフローチャートである。
ホスト機器1は、通信回線3を介してターゲット機器2と接続されて相互に通信できる状態になると、CPU18及び制御部14からアップロードに関する所定の指示を行って、ヘッダオブジェクト解析部11、ヘッダオブジェクトアップロード部12及びプログラムコードアップロード部13に、それぞれ次の処理を実行させる。
【0063】
まず、ヘッダオブジェクトアップロード部12が、通信制御部24、通信回線3及び通信制御部15を通じて、ターゲット機器2のプログラムコード管理部22に格納されているヘッダオブジェクト221を、RAM17にアップロードする。ヘッダオブジェクト解析部11は、RAM17にアップロードされたヘッダオブジェクト221を読み出す(ステップS141)。次に、ヘッダオブジェクト解析部11は、ホスト機器1の実行環境(この例では、仮想マシンの種類)を確認する。そして、ヘッダオブジェクト解析部11は、ヘッダオブジェクト221に含まれる各プログラムコードの実行環境に関する情報に基づいて、確認した実行環境に適合する複数のプログラムコードを判断する(ステップS142)。
【0064】
次に、ヘッダオブジェクト解析部11は、ホスト機器1のメモリ領域の残量を確認する(ステップS143)。そして、ヘッダオブジェクト解析部11は、ステップS142で確認した適合する複数のプログラムコードのいずれかをアップロードできるメモリ領域があるか否かを、ヘッダオブジェクト221に含まれるプログラムコードの容量情報に基づいて判断する(ステップS144)。
【0065】
ステップS144における判断の結果、アップロードできるメモリ領域がある場合、ヘッダオブジェクト解析部11は、アップロード可能な最大容量のプログラムコードを最適なプログラムコードとして決定する(ステップS145)。そして、プログラムコードアップロード部13によって、決定された最適なプログラムコードが、ターゲット機器2のプログラムコード格納部23からROM16にアップロードされる(ステップS146)。
これに対して、アップロードできるメモリ領域がない場合、ヘッダオブジェクト解析部11は、ターゲット機器2を制御不可能と判断して処理を終了する。
【0066】
図15及び図16に示す具体例を挙げて、上述した処理をさらに説明する。この具体例では、ターゲット機器2は、仮想マシンAに対応するプログラムコードA−1(容量:120KB)、A−1よりも一部の機能が制限されたプログラムコードA−2(同90KB)、仮想マシンBに対応するB−1(同100KB)及びB−1よりも一部の機能が制限されたプログラムコードB−2(同70KB)を格納している。ホスト機器1は、仮想マシンAを搭載している。
【0067】
(1)ホスト機器1のメモリ領域の残量が、仮想マシンAに適合するプログラムコードA−1及びA−2の容量以上である場合、ホスト機器1は、最大容量のプログラムコードA−1をターゲット機器2からアップロードする(図15)。
(2)ホスト機器1のメモリ領域の残量が、仮想マシンAに適合するプログラムコードA−1の容量以下かつプログラムコードA−2の容量以上である場合、ホスト機器1は、メモリに格納可能なプログラムコードA−2をターゲット機器2からアップロードする(図16)。
【0068】
以上のように、本発明の第2の実施形態に係る機器制御システムによれば、ホスト機器が取り得る実行環境毎に異なる容量の複数のプログラムコードを予めターゲット機器に持たせ、ホスト機器が、自己の実行環境に加えてメモリ領域の残量にも合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。
【0069】
なお、上記第2の実施形態では、メモリに格納できるプログラムコードが複数ある場合、ホスト機器のメモリ領域の残量に応じて、実行環境に適合するプログラムコードの中から最大容量のものが自動的にアップロードされるように記載した。しかし、ユーザが、自分が好むいずれか1つのプログラムコードを手動でアップロードできるようにしてもよい。このようにすれば、ユーザは、所望する一部の機能の制御だけ、例えばビデオ機器における再生、停止、早送り及び巻戻しの制御だけ、を選択して実行させることが可能になる。
【0070】
(第3の実施形態)
上記第1及び第2の実施形態は、1つのホスト機器と1つのターゲット機器とが接続されれば実現される機器制御システムに関する技術である。この技術を用いて1つのターゲット機器を複数のホスト機器で制御できるようにする場合には、各ホスト機器が、それぞれ独自の判断でプログラムコードをアップロードすることになる。しかし、複数のホスト機器の間に何らかの関連性を持たせて特殊な制御を行いたい場合には、各々のホスト機器の状態を考慮してプログラムコードをアップロードすることが好ましい。
そこで、本第3の実施形態では、あるホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態も判断した上で、ターゲット機器からアップロードすべき最適なプログラムコードを決定できる機器制御システムを説明する。
【0071】
図17は、本発明の第3の実施形態に係る機器制御システムの構成を示すブロック図である。図17において、第3の実施形態に係る機器制御システムは、複数のホスト機器1と1つ以上のターゲット機器2とが、有線又は無線の通信回線3で接続される構成によって実現される。
本発明の第3の実施形態に係る機器制御システムを構成するホスト機器1及びターゲット機器2内の基本的な構成は、上記第2の実施形態と同様であるが、制御主体となるホスト機器1(以下、主ホスト機器1と記す)のヘッダオブジェクト解析部11の処理が異なる。
【0072】
以下、図13に示すように、所定のクラス分けがされたプログラムコード231〜236がプログラムコード格納部23に格納され、このプログラムコード231〜236に関連したヘッダオブジェクト221がプログラムコード管理部22に格納される場合を一例に挙げて、第1及び第2の実施形態と異なる部分を中心に第3の実施形態を説明する。
【0073】
図18は、第3の実施形態の主ホスト機器1で行われるプログラムコード決定処理の手順を示すフローチャートである。なお、図18において、図14のフローチャートと同じ処理を行う工程には、同一のステップ番号を付してその説明の一部を省略する。
【0074】
主ホスト機器1のヘッダオブジェクト解析部11は、搭載する仮想マシンの種類と、ターゲット機器2からアップロードしたヘッダオブジェクト221の情報とに基づいて、この仮想マシンに適合する複数のプログラムコードを判断する(ステップS141,S142)。次に、主ホスト機器1のヘッダオブジェクト解析部11は、確認したメモリ領域の残量と、ヘッダオブジェクト221の情報とに基づいて、仮想マシンに適合するプログラムコードをアップロードできるメモリ領域があるか否かを判断する(ステップS143,S144)。そして、アップロードできるメモリ領域がある場合、主ホスト機器1のヘッダオブジェクト解析部11は、アップロードできるプログラムコードの数をさらに判断する(ステップS181)。
【0075】
ステップS181における判断の結果、アップロードできるプログラムコードが1つだけ存在する場合、主ホスト機器1のヘッダオブジェクト解析部11は、そのプログラムコードを最適なプログラムコードとして決定する(ステップS182)。そして、主ホスト機器1のプログラムコードアップロード部13は、この決定されたプログラムコードをターゲット機器2からアップロードする(ステップS146)。
【0076】
これに対して、アップロードできるプログラムコードが複数存在する場合、主ホスト機器1のヘッダオブジェクト解析部11は、特殊な制御を行うために関連性を持たせる他のホスト機器1が接続されているか、及び接続されている場合にはそのROM16に特定のプログラムコードが格納されているか否かを、ネットワークを介して調査する(ステップS183,S184)。調査の結果、所定の他のホスト機器1がネットワーク接続され、かつ特定のプログラムコードが格納されていると判断した場合、主ホスト機器1のヘッダオブジェクト解析部11は、上記複数のプログラムコードの中の特殊な制御に必要な所定のプログラムコードを、最適なプログラムコードとして決定する(ステップS185)。そして、主ホスト機器1のプログラムコードアップロード部13は、この決定されたプログラムコードをターゲット機器2からアップロードする(ステップS146)。
【0077】
なお、所定の他のホスト機器1がネットワーク接続されていない場合、又は特定のプログラムコードが格納されていない場合には、上記第2の実施形態に基づいた最適なプログラムコードの決定(ステップS145)及びアップロード処理(ステップS146)が行われる。
【0078】
この第3の実施形態による制御手法が有効となる、家庭内に構成された機器制御システムの具体例としては、次のようなものがある。
(1)ホスト機器として1階のテレビ及び2階のテレビが、ターゲット機器として2階のテレビと同じ部屋にあるエアコンが、ネットワーク接続されたシステムにおいて、2階のテレビにエアコンの全機能を制御できるプログラムコードがすでに格納されている場合を考える。この場合において、1階のテレビもエアコンを制御するホスト機器として使用する際には、2階のテレビにエアコンの全機能を制御できるプログラムコードが格納されていることを判断し、1階のテレビにはエアコンの機能限定(例えば、電源オン/オフのみ)がされたプログラムコードをアップロードさせる。これにより、ある人物が2階のテレビを用いてエアコンを制御している状態において、別の部屋から他の人物が勝手に設定温度変更をするようなことを防止することができる。
【0079】
(2)ホスト機器としてテレビが、ターゲット機器としてビデオが、ネットワーク接続されたシステムにおいて、テレビにビデオの全機能を制御できるプログラムコードがすでに格納されて場合を考える。この場合において、インターネットに接続可能であるPDAを、ビデオを制御するホスト機器として新たに接続する際には、テレビにビデオの全機能を制御できるプログラムコードが格納されていることを判断し、PDAにはインターネットを利用したEPG情報の取得が可能なプログラムコードをアップロードさせる。これにより、PDAは、インターネット経由でEPG情報を取得し、このEPG情報をネットワークを介してテレビに供給する処理を行うことができる。
【0080】
以上のように、本発明の第3の実施形態に係る機器制御システムによれば、主ホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態も判断した上で、ターゲット機器からアップロードすべき最適なプログラムコードを決定する。これにより、複数のホスト機器の間に特定の関連性を持たせて特殊な制御を行うことが可能となる。
【0081】
(第4の実施形態)
上記第2及び第3の実施形態では、プログラムコードをアップロードできるか否かを、制御主体となるホスト機器のメモリ領域の残量だけで判断している。このため、ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合には、プログラムコードをアップロードすることができない。
そこで、本第4の実施形態では、あるホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態及びメモリ領域の残量も判断した上で、ターゲット機器からアップロードするプログラムコード及びアップロード先のホスト機器を最適に制御することができる機器制御システムを説明する。
【0082】
本発明の第4の実施形態に係る機器制御システムは、上記第3の実施形態(図17)と同様に、複数のホスト機器1と1つ以上のターゲット機器2とが、有線又は無線の通信回線3で接続される構成によって実現される。第4の実施形態に係る機器制御システムを構成するホスト機器1及びターゲット機器2内の基本的な構成は、上記第3の実施形態と同様であるが、主ホスト機器1のヘッダオブジェクト解析部11の処理が異なる。
【0083】
以下、図13に示すように、所定のクラス分けがされたプログラムコード231〜236がプログラムコード格納部23に格納され、このプログラムコード231〜236に関連したヘッダオブジェクト221がプログラムコード管理部22に格納される場合を一例に挙げて、第1〜第3の実施形態と異なる部分を中心に第4の実施形態を説明する。
なお、本第4の実施形態を実現するにあたり、各プログラムコード231〜236には、ターゲット機器2を実際に制御するためのプライベートコマンド、及びこのプライベートコマンドの指定をリモート制御可能なグローバルコマンドを送信するためのGUIプログラムが含まれることを前提とする。
【0084】
図19は、第4の実施形態の主ホスト機器1で行われるプログラムコード決定処理の手順を示すフローチャートである。なお、図19において、図14のフローチャートと同じ処理を行う工程には、同一のステップ番号を付してその説明の一部を省略する。
【0085】
主ホスト機器1のヘッダオブジェクト解析部11は、搭載する仮想マシンの種類と、ターゲット機器2からアップロードしたヘッダオブジェクト221の情報とに基づいて、この仮想マシンに適合する複数のプログラムコードを判断する(ステップS141,S142)。次に、主ホスト機器1のヘッダオブジェクト解析部11は、確認したメモリ領域の残量と、ヘッダオブジェクト221の情報とに基づいて、仮想マシンに適合するプログラムコードをアップロードできるメモリ領域があるか否かを判断する(ステップS143,S144)。
【0086】
ステップS144における判断の結果、アップロードできるメモリ領域がある場合、主ホスト機器1のヘッダオブジェクト解析部11は、アップロード可能な最大容量のプログラムコードを最適なプログラムコードとして決定する(ステップS145)。そして、主ホスト機器1のプログラムコードアップロード部13は、この決定された最適なプログラムコードをターゲット機器2からアップロードする(ステップS146)。
この場合におけるターゲット機器2の制御は、上記第1及び第2の実施形態と同様に、主ホスト機器1が、ユーザ指示に応じてROM16に格納されたプログラムコードを解釈/実行し、生成されるプライベートコマンドをターゲット機器2へ直接送信することで実行される。
【0087】
これに対して、アップロードできるメモリ領域がない場合、主ホスト機器1のヘッダオブジェクト解析部11は、他のホスト機器1のROM16にすでに格納されているプログラムコード及び他のホスト機器1のメモリ領域の残量を、ネットワークを介して調査する(ステップS191)。そして、ヘッダオブジェクト解析部11は、主ホスト機器1の実行環境に適合するプログラムコードを格納した他のホスト機器1が存在するか否か、及び主ホスト機器1の実行環境に適合するプログラムコードを格納できるメモリ領域の残量を有する他のホスト機器1が存在するか否かを、確認する(ステップS192,S193)。
【0088】
ステップS192,S193における確認の結果、主ホスト機器1の実行環境に適合するプログラムコードが他のホスト機器1に格納されている場合、主ホスト機器1のヘッダオブジェクト解析部11は、当該プログラムコードに対応するGUIプログラムを当該他のホスト機器1から取得する(ステップS194)。なお、適合するプログラムコードを複数の他のホスト機器1が格納している場合には、主ホスト機器1は、最大容量のプログラムコードを格納する他のホスト機器1から、GUIプログラムを取得すれば足りる。
この場合におけるターゲット機器2の制御は、主ホスト機器1が、取得したGUIプログラムを用いて、ユーザ指示に応じたグローバルコマンドを他のホスト機器1に送信し、他のホスト機器1が、受信したグローバルコマンドを対応するプライベートコマンドに変換した後、ターゲット機器2へ送信することで実行される。
【0089】
これに対して、主ホスト機器1の実行環境に適合するプログラムコードはどこにも格納されていないが、いずれかのプログラムコードをアップロード可能なメモリ領域を有する他のホスト機器1が存在する場合、主ホスト機器1のヘッダオブジェクト解析部11は、当該他のホスト機器1にそのプログラムコードをアップロードするように指示する。なお、プログラムコードをアップロード可能なメモリ領域を有する他のホスト機器1が複数存在する場合には、主ホスト機器1は、メモリ領域の残量が最大である他のホスト機器1だけに指示すれば足りる。この指示に従って、他のホスト機器1は、プログラムコードをROM16にアップロードする(ステップS195)。そして、主ホスト機器1のヘッダオブジェクト解析部11は、他のホスト機器1がアップロードしたプログラムコードに対応するGUIプログラムを、当該他のホスト機器1から取得する(ステップS194)。
この場合におけるターゲット機器2の制御も、主ホスト機器1が、取得したGUIプログラムを用いて、ユーザ指示に応じたグローバルコマンドを他のホスト機器1に送信し、他のホスト機器1が、受信したグローバルコマンドを対応するプライベートコマンドに変換した後、ターゲット機器2へ送信することで実行される。
【0090】
図20及び図21に示す具体例を挙げて、上述した処理をさらに説明する。この具体例では、第1のホスト機器1がターゲット機器2を制御する場合を示している。なお、ターゲット機器2は、上記第2の実施形態(図15)で述べたプログラムコードA−1、A−2、B−1及びB−2をそれぞれ格納している。また、第1〜第3のホスト機器1は、仮想マシンAをそれぞれ搭載している。
【0091】
(1)図20の場合。第1のホスト機器1のメモリ領域の残量が、仮想マシンAに適合するプログラムコードA−1及びA−2の容量以下である場合、第1のホスト機器1は、第2及び第3のホスト機器1の格納プログラムコード及びメモリ領域の残量をそれぞれ調査する。調査の結果、第2のホスト機器1がプログラムコードA−1を格納していると確認できたので、第1のホスト機器1は、第2のホスト機器1からプログラムコードA−1に対応するGUIプログラムを取得する。
ターゲット機器2の制御は、第1のホスト機器1が、GUIプログラムを用いて生成したグローバルコマンドを第2のホスト機器1へ送信し、第2のホスト機器1が、第1のホスト機器1から受信したグローバルコマンドに従って変換したプライベートコマンドをターゲット機器2へ送信することで実行される。
【0092】
(2)図21の場合。第1のホスト機器1のメモリ領域の残量が、仮想マシンAに適合するプログラムコードA−1及びA−2の容量以下である場合、第1のホスト機器1は、第2及び第3のホスト機器1の格納プログラムコード及びメモリ領域の残量をそれぞれ調査する。調査の結果、第3のホスト機器1がプログラムコードA−1を格納できるメモリ領域を有していると確認できたので、第1のホスト機器1は、第3のホスト機器1にプログラムコードA−1をアップロードするように指示する。第3のホスト機器1は、指示に従ってプログラムコードA−1をアップロードする。その後、第1のホスト機器1は、第3のホスト機器1からプログラムコードA−1に対応するGUIプログラムを取得する。
ターゲット機器2の制御は、第1のホスト機器1が、GUIプログラムを用いて生成したグローバルコマンドを第3のホスト機器1へ送信し、第3のホスト機器1が、第1のホスト機器1から受信したグローバルコマンドに従って変換したプライベートコマンドをターゲット機器2へ送信することで実行される。
【0093】
この第4の実施形態による制御手法が有効となる、家庭内に構成された機器制御システムの具体例としては、次のようなものがある。
ホスト機器としてテレビが、ターゲット機器としてビデオが、ネットワーク接続されたシステムにおいて、テレビにビデオの全機能を制御できるプログラムコードがすでに格納されて場合を考える。この場合において、ビデオを制御するホスト機器として新たに携帯電話を接続する際には、テレビにビデオの全機能を制御できるプログラムコードが格納されていることを判断し、携帯電話にはテレビに格納されているプログラムコードに対応するGUIプログラムを取得させる。これにより、携帯電話は、小さい容量のGUIプログラムを格納するだけでよいので、記憶資源を有効活用させることができる。
【0094】
以上のように、本発明の第4の実施形態に係る機器制御システムによれば、主ホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態及びメモリ領域の残量も判断した上で、最適なプログラムコードをターゲット機器から直接アップロードすべきか、又は他のホスト機器にアップロードさせるべきかを決定する。これにより、主ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合でも、他のホスト機器を経由してターゲット機器を制御することができる。
【0095】
(第5の実施形態)
上記第1〜第4の実施形態は、ホスト機器が、自己の実行環境やメモリ領域の残量を判断して、アップロードすべき最適なプログラムコードを決定する機器制御システムを説明した。
次に、本第5の実施形態では、ターゲット機器が、ホスト機器の実行環境やメモリ領域の残量を判断して、アップロードさせるべき最適なプログラムコードを決定する機器制御システムを説明する。
【0096】
図22は、本発明の第5の実施形態に係る機器制御システムの構成を示すブロック図である。図22において、第5の実施形態に係る機器制御システムは、1つ以上のホスト機器4と1つ以上のターゲット機器5とが、有線又は無線の通信回線3で接続される構成によって実現される。
【0097】
ホスト機器4は、ヘッダオブジェクト格納部41と、プログラムコードアップロード部42と、制御部14と、通信制御部15と、ROM16と、RAM17と、CPU18とを備える。ターゲット機器5は、制御部21と、プログラムコード管理部22と、プログラムコード格納部23と、ヘッダオブジェクトダウンロード部51と、ヘッダオブジェクト解析部52と、通信制御部24と、ROM53と、RAM54と、CPU55とを備える。
【0098】
本第5の実施形態に係る機器制御システムは、上記第1の実施形態に係る機器制御システムに対して、ホスト機器4においてヘッダオブジェクト格納部41及びプログラムコードアップロード部42が、ターゲット機器5においてヘッダオブジェクトダウンロード部51、ヘッダオブジェクト解析部52、ROM53、RAM54及びCPU55が異なる。
以下、第1の実施形態と異なる部分を中心に第5の実施形態を説明する。
【0099】
ホスト機器4において、ヘッダオブジェクト格納部41は、ホスト機器4の情報を与えるヘッダオブジェクト411を格納する。このヘッダオブジェクト411は、上記第1の実施形態の<具体例1>に対応させる場合にはホスト機器4の仮想マシンの種類に関する情報によって(図23(a))、<具体例2>に対応させる場合にはホスト機器4の機器スペックに関する情報及びユーザプリファレンスに関する情報によって(図23(b))、構成される。
【0100】
ホスト機器4とターゲット機器5とが通信回線3を介して接続され相互に通信できる状態になると、ターゲット機器5のCPU55及び制御部21は、ダウンロードに関する所定の指示を行って、ヘッダオブジェクトダウンロード部51及びヘッダオブジェクト解析部52に、それぞれ次の処理を実行させる。
【0101】
まず、ヘッダオブジェクトダウンロード部51は、通信制御部15、通信回線3及び通信制御部24を通じて、ホスト機器4のヘッダオブジェクト格納部41に格納されているヘッダオブジェクト411を、RAM54にダウンロードする。ヘッダオブジェクト解析部52は、ヘッダオブジェクトダウンロード部51によってダウンロードされたヘッダオブジェクト411を読み出す。そして、ヘッダオブジェクト解析部52は、ヘッダオブジェクト411に含まれる情報、及びプログラムコード管理部22に格納されているヘッダオブジェクト221を解析し、ホスト機器4がアップロードすべき最適なプログラムコードを決定する。この決定は、ダウンロードされたヘッダオブジェクト411に、仮想マシンの情報が含まれている場合にはヘッダオブジェクト221との一致判断を、機器スペック及びユーザプリファレンスの情報が含まれている場合には上述した図11及び図12のフローチャートに従った判断を、それぞれ行うことで可能である。そして、ヘッダオブジェクト解析部52は、通信制御部24、通信回線3及び通信制御部15を通じて、決定した最適なプログラムコードをプログラムコード格納部23からホスト機器4へ送信する。
【0102】
ホスト機器4において、プログラムコードアップロード部42は、CPU18及び制御部14の指示の下、通信制御部24、通信回線3及び通信制御部15を通じて、ターゲット機器5から送信される最適なプログラムコードをアップロードして、ROM16に格納させる。
【0103】
以上のように、本発明の第5の実施形態に係る機器制御システムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、TV受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側にプログラムコードを決定するための構成を持つ必要がなくなり、ホスト機器のコスト削減が可能になる。
【0104】
なお、上記第5の実施形態では、ターゲット機器側でホスト機器の実行環境を判断して最適なプログラムコードを決定する手法を、上記第1の実施形態に対応させた例を説明した。しかし、この手法は、上記第2〜第4の実施形態に対応させることももちろん可能である。
【0105】
また、上記各実施形態では、通信回線で接続される各機器が、ホスト機器又はターゲット機器のいずれかに予め決められているように記載した。しかし、機器にホスト機器として機能するための構成及びターゲット機器として機能するための構成を両方備えておけば、その機器を、ホスト機器又はターゲット機器のいずれにも機能させることができる。
【0106】
典型的には、上記第1〜第5の実施形態に係る機器制御システムの各機能は、記憶装置(ROM、RAM、ハードディスク等)に格納された上述した処理手順を実行可能な所定のプログラムデータが、CPUによって実行されることで実現される。この場合、プログラムデータは、CD−ROMやフレキシブルディスク等の記録媒体を介して記憶装置内に導入されてもよいし、記録媒体上から直接実行されてもよい。
【0107】
【発明の効果】
請求項1のホスト機器によれば、ホスト機器が取り得る実行環境毎にデータ容量の異なる複数のプログラムコードを予めターゲット機器に持たせ、ホスト機器が、自己の実行環境及びメモリ領域の残量に合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。
請求項5のプログラムによれば、ホスト機器が取り得る実行環境毎にデータ容量の異なる複数のプログラムコードを予めターゲット機器に持たせ、ホスト機器が、自己の実行環境及びメモリ領域の残量に合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。
【0108】
請求項4のターゲット機器によれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。
【0109】
請求項2のホスト機器によれば、あるホスト機器において機器制御を実行する場合、通信回線で接続されている他のホスト機器のプログラムコード格納状態も判断した上で、最適なプログラムコードをターゲット機器から直接アップロードすべきかを決定する。これにより、ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合でも、他のホスト機器を経由してターゲット機器を制御することができる。
【0110】
請求項3のホスト機器によれば、あるホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態及びメモリ領域の残量も判断した上で、最適なプログラムコードをターゲット機器から直接アップロードすべきか、又は他のホスト機器にアップロードさせるべきかを決定する。これにより、ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合でも、他のホスト機器を経由してターゲット機器を制御することができる。
【0113】
請求項6のプログラムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。
【0114】
請求項7の制御システムによれば、ホスト機器が取り得る実行環境毎にデータ容量の異なる複数のプログラムコードを予めターゲット機器に持たせ、ホスト機器が、自己の実行環境及びメモリ領域の残量に合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。ターゲット機器側でプログラムコードを決定するための構成を持つ必要がなくなり、ターゲット機器のコスト削減が可能になる。
請求項8の制御システムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、TV受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側にプログラムコードを決定するための構成を持つ必要がなくなり、ホスト機器のコスト削減が可能になる。
【図面の簡単な説明】
【図1】本発明の第1及び第2の実施形態に係る機器制御システムの構成を示すブロック図である。
【図2】第1の実施形態のホスト機器で行われるプログラムコード決定処理の基本的な手順を示すフローチャートである。
【図3】仮想マシンが推奨するメモリサイズ及びJava(R)プログラムの実行上での制限に関する一覧表の例である。
【図4】第1の実施形態の具体例1で用いられるヘッダオブジェクト及びプログラムコードを示す図である。
【図5】ホスト機器がテレビ受像機でターゲット機器がビデオデッキである場合の第1の実施形態に基づくアップロード処理を説明する図である。
【図6】ホスト機器が携帯電話端末でターゲット機器がビデオデッキである場合の第1の実施形態に基づくアップロード処理を説明する図である。
【図7】機器スペックによる場合分けの一例を示す図である。
【図8】第1の実施形態の具体例2で用いられるヘッダオブジェクト及びプログラムコードを示す図である。
【図9】第1の実施形態の具体例2に対応するヘッダオブジェクト解析部の内部を説明する図である。
【図10】図9のヘッダオブジェクト解析部で管理されるユーザプリファレンス情報の一例を示す図である。
【図11】第1の実施形態の具体例2のホスト機器で行われるプログラムコード決定処理の手順を示すフローチャートである。
【図12】図11のステップS115で行われるアップロード必須条件判定処理の詳細な手順を示すフローチャートである。
【図13】第2の実施形態で用いられるヘッダオブジェクト及びプログラムコードの一例を示す図である。
【図14】第2の実施形態のホスト機器で行われるプログラムコード決定処理の手順を示すフローチャートである。
【図15】第2の実施形態に基づくアップロード処理の一例を説明する図である。
【図16】第2の実施形態に基づくアップロード処理の他の一例を説明する図である。
【図17】本発明の第3及び第4の実施形態に係る機器制御システムの構成を示すブロック図である。
【図18】第3の実施形態のホスト機器で行われるプログラムコード決定処理の手順を示すフローチャートである。
【図19】第4の実施形態のホスト機器で行われるプログラムコード決定処理の手順を示すフローチャートである。
【図20】第4の実施形態に基づくアップロード処理の一例を説明する図である。
【図21】第4の実施形態に基づくアップロード処理の他の一例を説明する図である。
【図22】本発明の第5の実施形態に係る機器制御システムの構成を示すブロック図である。
【図23】第5の実施形態で用いられるヘッダオブジェクト一例を示す図である。
【符号の説明】
1,4…ホスト機器
2,5…ターゲット機器
3…通信回線
11,52…ヘッダオブジェクト解析部
12…ヘッダオブジェクトアップロード部
13,42…プログラムコードアップロード部
14,21…制御部
15,24…通信制御部
16,53…ROM
17,54…RAM
18,55…CPU
22…プログラムコード管理部
23…プログラムコード格納部
41…ヘッダオブジェクト格納部
51…ヘッダオブジェクトダウンロード部
101,102…仮想マシン(実行環境)
111〜113…格納領域
221,441…ヘッダオブジェクト
231〜23n…プログラムコード[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a device control system, a network constructed by the system, and a program executed by a device constituting the system, and more specifically, a host device that is a control subject and a target device that is a control target. A connected system, in which a host device uploads an optimal program code necessary for controlling a target device according to its own execution environment, a network constructed by the device control system, and The present invention relates to a program executed by a host device or a target device that constitutes a device control system.
[0002]
[Prior art]
In recent years, a wide variety of AV devices and information terminal devices have been commercialized for home use. Along with this, a technology for connecting a plurality of devices in the home and controlling each other, for example, connecting a TV receiver and a video deck and controlling the video deck from the screen of the TV receiver. Has been established. One such technique is HAVi (Home Audio / Video interoperability) (R) (see Non-Patent Document 1). Further, as a technology for automatically connecting a personal computer and a printer, a scanner, or the like to construct a network, there is Jini (R) or the like (see Non-Patent Document 2).
[0003]
The following methods are commonly used for these techniques. The target device to be controlled holds in advance a program code (control code) describing information necessary for its own control. For example, in the specification such as HAVi (R), the program code uses an API (Application Program Interface). The host device that is the controlling entity uploads the program code and interprets / executes it to control the target device.
By using this method, the host device can control the target device without knowing how to control the target device in advance, and devices manufactured by various manufacturers can be connected to each other to control each other. It becomes possible.
[0004]
In general, in a system constructed using these technologies, it is assumed that a plurality of host devices and a plurality of target devices are network-connected.
Here, consider a case where each target device holds one program code for controlling all its functions. In this case, in order to control all target devices with a plurality of host devices, each host device needs to have an advanced execution environment for fully supporting the program code of each target device. For this reason, there existed a subject that each host apparatus became expensive.
[0005]
Therefore, consider a case where a plurality of host devices are provided with different execution environments according to their own abilities, rather than sophisticated execution environments. In this case, in order to control all target devices with a plurality of host devices, each target device holds a plurality of program codes corresponding to the execution environment of the plurality of host devices in advance, It is necessary to upload the optimal program code for the execution environment.
[0006]
Although it is not a technique directly corresponding to device control, there is a technique disclosed in
This conventional technique communicates driver software between a device (printer or the like) and a device controller (personal computer or the like). In this conventional technique, a plurality of driver software is held in advance on the device side in correspondence with different operating systems (OS) installed in a device controller that can be connected, and the device controller The driver software that is most suitable for your OS is uploaded. Thereby, in the conventional technology, it is possible to always upload the optimal driver software from the device to the device controller.
[0007]
[Patent Document 1]
JP-A-10-214243
[Non-Patent Document 1]
Specification "The HAVi Specification Version 1.0"
HAVi Promotion Association
[Non-Patent Document 2]
Technical book `` Jini Technology Specific Attachment v1.0 ''
Sun Microsystems
[0008]
[Problems to be solved by the invention]
In the above-described conventional technology, the upload target is driver software whose capacity is not so large, and there is one driver software corresponding to each OS installed in the host device. Therefore, in the conventional technique, the optimum driver software can be uniquely determined only by determining the OS installed as the execution environment of the host device.
[0009]
However, if the upload target is a program code with a large capacity, the remaining capacity of the memory area prepared for storing the program code is taken into consideration in addition to the execution environment such as the OS, CPU and cache memory of the host device. There is a need to. That is, even in the same host device, the usable memory area varies depending on the usage status of the application or the like. Therefore, it is desirable to comprehensively determine the state of the host device at the time of upload in consideration of these, and to change the contents of the program code to be uploaded according to the determination.
For this reason, even if the above-described conventional technique is simply applied to device control, it is impossible to realize the optimum program code upload considering the state change of the host device.
[0010]
Further, when the upload target is driver software, the driver software is only uploaded to each host device, so there is no relationship with other host devices connected to the network.
However, when the upload target is a program code, there is a relationship with another host device connected to the network. Therefore, various upload methods and device control can be realized by appropriately determining the network connection status of other host devices and the program code already uploaded to the other host devices.
[0011]
Therefore, an object of the present invention is to make a target device have a plurality of program codes used in different execution environments in advance, so that the host device has its own execution environment, the remaining memory area, and other hosts. Executed by a device control system that can determine the network connection state of a device and upload the optimal program code from the target device to execute device control, a network constructed by the system, and devices constituting the system Is to provide a program.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, the present invention has the following features.
The host device of the present invention includes a header object including information corresponding to any of the execution environments that can be taken by each of the host devices, and possible execution environments.Functions used in the execution environment for eachAccording toDifferent data capacityStores multiple program codes,For each possible execution environment, the execution environment and the execution environmentData capacity according to the function usedButDifferentEach with multiple program codesA target device having a program code management unit configured to be associated, a host device connected via a communication line, an acquisition unit for acquiring a header object from the target device, and a plurality of program codes The first memory area, its own execution environment and the remaining amount of the first memory area are determined, the header object is analyzed, and a plurality of program codes stored in the target device are analyzed.homeAdaptable to the execution environment and can be stored in the first memory areaThe largest program codeAn information analysis unit for determining a program code having a data capacity, a read unit for reading the program code determined by the information analysis unit from the target device and storing the program code in the first memory area;By the readout sectionAnd a control unit that controls the target device using the program code stored in the first memory area.
[0013]
Also,The execution environment is a program code corresponding to the type of virtual machine provided in the host device.Information analysis departmentA host device different from itselfCommunication lineThroughIt is connectedwhetherFunction to check,and,It further has a function of confirming whether or not a host device different from itself stores a program code for controlling a host device different from itself through a communication line from the host device of the own host device. If there are multiple program codes that match the type, determine the program code that includes the program code that controls the host device different from the one among the multiple program codes that match the type of virtual machine providedIt is characterized by that.
[0014]
Also,The execution environment is a program code corresponding to the type of virtual machine provided in the host device. The program code corresponding to the type of virtual machine includes a program code corresponding to the GUI, and the information analysis unit is different from itself. A function for checking whether or not the host device is connected via a communication line, and a host device different from itself stores program code corresponding to the type of virtual machine to be stored in its own first memory area A host device that is different from itself and has a function of confirming whether or not the program code suitable for the type of virtual machine cannot be stored in the first memory area provided by itself. A host different from itself when storing program code corresponding to the type of virtual machine to be stored in the first memory area Vessels is acquired from a different host device and its program code corresponding to the GUI included in the program code corresponding to the type of the virtual machine to be stored, and stores it in the first memory region comprising itselfIt is characterized by that.
[0020]
A target device of the present invention is a target device connected via a communication line to a host device that controls the target device using a program code acquired from the target device, and is connected to the target device via a communication line. A header object containing information corresponding to one of the possible execution environments of each of the host devices, andCan takeExecution environmentFunctions used in the execution environment for eachAccording toDifferent data capacityIt has a storage unit that stores multiple program codes,For each execution environment, the execution environment and the execution environmentData capacity according to the function usedButDifferentpluralProgram codeEach andThe management unit configured to be associated is connected to the information corresponding to the execution environment of the host device connected via the communication line and the device information including the remaining amount of the first memory area included in the host device via the communication line. Analyzing the acquisition unit to acquire from the host device and the acquired device information of the host device,homeStored in the first memory area of the host device that is suitable for the execution environment of the host device connected via the communication line and that is provided in the host device connected via the communication lineHas the largest data capacity among possible program codesAn information analysis unit that determines a program code, and a notification unit that notifies the program code determined by the information analysis unit to a host device connected via a communication line.
[0023]
The program of the present invention includes a header object including information corresponding to any of the execution environments that can be taken by each host device, and possible execution environments.Functions used in the execution environment for eachAccording toDifferent data capacityStores multiple program codes,For each possible execution environment, the execution environment and the execution environmentData capacity varies depending on the function usedEach with multiple program codesAn acquisition step for acquiring a header object from a target device, which is a program executed by a target device having a program code management unit configured to be associated with the host device connected via a communication line, and its own execution environment And determining the remaining amount of the first memory area, analyzing the header object, and executing a plurality of program codes stored in the target device.homeAdaptable to the execution environment and can be stored in the first memory areaThe largest program codeAn information analysis step for determining a program code having a data capacity; a read step for reading the program code determined in the information analysis step from the target device and storing it in the first memory area;By the readout stepAnd a control step of controlling the target device using the program code stored in the first memory area.
[0026]
The program of the present invention is connected to a host device that controls a target device using a program code acquired from the target device via a communication line, and a plurality of program codes necessary for its own control, and Each of the plurality of program codes includes a header object including information corresponding to any of the execution environments that can be taken by each of the host devices connected to the target device via the communication line, andCan takeExecution environmentFunctions used in the execution environment for eachAccording toDifferent data capacityIt has a storage unit that stores multiple program codes,For each possible execution environment, the execution environment and the execution environmentData capacity varies depending on the function usedEach with multiple program codesInformation that corresponds to the execution environment of the host device connected via the communication line and the remaining amount of the first memory area provided in the host device, which is executed by the target device including the management unit configured to be associated Device information including the acquisition step from the host device connected via the communication line, the acquired device information of the host device is analyzed, and multiple program codeshomeStored in the first memory area of the host device that is suitable for the execution environment of the host device connected via the communication line and that is provided in the host device connected via the communication lineHas the largest data capacity among possible program codesAn information analysis step for determining the program code and a notification step for notifying the host device connected via the communication line of the program code determined at the information analysis step.
[0027]
The device control system of the present invention is a device control system in which one or more host devices and one or more target devices are connected via a communication line, and each of the host devices can be a target device. Header object containing information corresponding to one of the execution environments, and possible execution environmentsFunctions used in the execution environment for eachAccording toDifferent data capacityStores multiple program codes,For each possible execution environment, the execution environment and the execution environmentData capacity according to the function usedButDifferentEach with multiple program codesThe host device includes a program code management unit configured to be associated, and the host device acquires the header object from the target device, a first memory area for storing a plurality of program codes, its own execution environment, and Judgment of the remaining amount of memory area of 1 and analysis of the header object, a plurality of program codes stored in the target devicehomeAdaptable to the execution environment and can be stored in the first memory areaThe largest program codeAn information analysis unit for determining a program code having a data capacity, a read unit for reading the program code determined by the information analysis unit from the target device and storing the program code in the first memory area;By the readout sectionAnd a control unit that controls the target device using the program code stored in the first memory area.
[0028]
The device control system of the present invention is a device control system in which one or more host devices and one or more target devices are connected via a communication line, and the target device is a target device via a communication line. A header object containing information corresponding to one of the possible execution environments of each host device connected to theCan takeExecution environmentFunctions used in the execution environment for eachAccording toDifferent data capacityIt has a storage unit that stores multiple program codes,For each possible execution environment, the execution environment and the execution environmentData capacity according to the function usedButDifferentEach with multiple program codesThe management unit configured to be associated is connected to the information corresponding to the execution environment of the host device connected via the communication line and the device information including the remaining amount of the first memory area included in the host device via the communication line. Analyzing the acquisition unit to acquire from the host device and the acquired device information of the host device,homeStored in the first memory area of the host device that is suitable for the execution environment of the host device connected via the communication line and that is provided in the host device connected via the communication lineHas the largest data capacity among possible program codesAn information analysis unit for determining a program code and a notification unit for notifying the host device connected via the communication line of the program code determined by the information analysis unit, the host device corresponding to its own execution environment An information management unit for managing device information including the header object including information and the remaining amount of the first memory area included in the host device, and the program code notified from the target device is read from the target device and is stored in the first memory region. A reading unit to be stored inBy the readout sectionAnd a control unit that controls the target device using the program code stored in the first memory area.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a device control system in which a host device provided by the present invention controls a target device will be described in a plurality of cases depending on the number of connected host devices and a program code upload method from the target device.
[0031]
(First embodiment)
FIG. 1 is a block diagram showing a configuration of a device control system according to the first embodiment of the present invention. In FIG. 1, the device control system according to the first embodiment is realized by a configuration in which one or
[0032]
The
[0033]
First, the
In the program
The program
The
[0034]
Next, the
When the
[0035]
First, the header object upload
[0036]
Then, after the upload process of the program code suitable for the execution environment described above is completed, the
[0037]
Next, with further reference to FIGS. 3 to 12, specific creation examples of the
[0038]
<Specific example 1> When a virtual machine defined by HAVi (R) or Jini (R) is determined as the execution environment of the
In HAVi (R) and Jini (R), a program code for controlling the
[0039]
Therefore, when determining the type of virtual machine as the execution environment, create a program code that uniquely corresponds to each virtual machine based on the memory size and restrictions of each virtual machine, and target with the header object related to it. Stored in the
[0040]
For example, in the program
[0041]
Using the
[0042]
FIG. 5 is a diagram for explaining a case where the
In FIG. 5, when the
[0043]
FIG. 6 is a diagram for explaining a case where the
In FIG. 6, when the
[0044]
<Specific example 2> When determining the device specification and the control mode preferred by the user as the execution environment of the
In this case, among the execution environments that can be taken by the
[0045]
For example, a plurality of cases A to D are created in advance as shown in FIG. In the example of FIG. 7, the language of GUI (Graphical User Interface), the mandatory condition (Mandatory) that makes it impossible to execute the program code if the conditions are not met, and the execution is possible even if the conditions are not met, but comfortably It has recommended conditions (Recommendable) that are necessary for the operation. In the program
[0046]
Using the
[0047]
In the case of <specific example 2>, the header
[0048]
The procedure of the program code determination process performed by the
Referring to FIG. 11, when the
[0049]
Referring to FIG. 12, the header
[0050]
If all the conditions in steps S121 to S124 are satisfied, the header
The determination processes in steps S114, S115, and S121 to S124 are executed for all information included in the
[0051]
Referring to FIG. 11 again, when the determination process is completed for all the information of the
[0052]
The header
[0053]
Then, the program code upload
[0054]
As described above, according to the device control system according to the first embodiment of the present invention, the target device has a plurality of program codes in advance, and the host device determines the program code suitable for its execution environment. Automatically upload from the target device. In addition, since the target device has a plurality of program codes, the host device only needs to have an execution environment according to its function and performance. As a result, in addition to high-spec devices such as television receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. In addition, since the optimum program code is automatically determined on the host device side, the user does not need to determine an appropriate program code based on the OS and specifications of the device.
[0055]
In the first embodiment, the case where the optimum program code is determined based on both the specification information of the host device and the user preference information has been described. However, the optimum program code is determined based on only one of the information. The program code may be determined.
[0056]
Further, according to the device control system according to the first embodiment of the present invention, the developer of the target device can write various execution environments by writing program codes based on the case classification of the virtual machine and the device specification. It is possible to easily provide program code for optimally operating the host device having the host device. When classifying by virtual machine type, the host device can determine the optimal program code from among the multiple program codes that exist in the target device by judging only the virtual machine name, thus realizing cost reduction it can. When classified by device specifications, it becomes possible for the target device developer to uniquely define the conditions for executing the program code that he / she creates, to a new version of the host device and target device. It is also possible to cope with it.
[0057]
(Second Embodiment)
In the first embodiment, only one program code uniquely corresponding to the fixed execution environment (virtual machine, device specification, etc.) of the host device is stored in the target device. Usually, these program codes have a large capacity because they are created for all functions that can be controlled in the corresponding execution environment. For this reason, the program code may not be uploaded depending on the remaining amount of the memory area such as the ROM of the host device.
Therefore, in the second embodiment, a device control system capable of uploading an optimum program code after further determining the remaining memory area of the host device in addition to the execution environment will be described.
[0058]
The basic configuration of the device control system according to the second embodiment of the present invention is the same as that of the device control system according to the first embodiment, but the processing of the header
Hereinafter, the case where the
[0059]
First, specific examples of the
[0060]
In the first embodiment, only one program code corresponding to each virtual machine is created. In contrast, in the second embodiment, a plurality of program codes having different capacities are created for each virtual machine. For example, as shown in FIG. 13A, a plurality of
[0061]
The program
Using the
[0062]
FIG. 14 is a flowchart illustrating a procedure of program code determination processing performed in the
When the
[0063]
First, the header object upload
[0064]
Next, the header
[0065]
As a result of the determination in step S144, if there is a memory area that can be uploaded, the header
On the other hand, if there is no memory area that can be uploaded, the header
[0066]
The above-described processing will be further described with reference to specific examples shown in FIGS. 15 and 16. In this specific example, the
[0067]
(1) When the remaining amount of the memory area of the
(2) When the remaining amount of the memory area of the
[0068]
As described above, according to the device control system according to the second embodiment of the present invention, the target device has a plurality of program codes having different capacities for each execution environment that can be taken by the host device. The program code that matches not only its own execution environment but also the remaining amount of memory area is judged and automatically uploaded from the target device. As a result, it is possible to determine an appropriate program code that also takes into account the dynamically changing memory area of the host device.
[0069]
In the second embodiment, when there are a plurality of program codes that can be stored in the memory, the program code having the maximum capacity is automatically selected from the program codes suitable for the execution environment according to the remaining capacity of the memory area of the host device. To be uploaded to. However, the user may be able to manually upload any one program code he / she likes. In this way, the user can select and execute only control of some desired functions, for example, control of playback, stop, fast forward and rewind in the video equipment.
[0070]
(Third embodiment)
The first and second embodiments are technologies related to a device control system that is realized when one host device and one target device are connected. When one target device can be controlled by a plurality of host devices using this technique, each host device uploads a program code based on its own judgment. However, when it is desired to perform special control with some relationship between a plurality of host devices, it is preferable to upload the program code in consideration of the state of each host device.
Therefore, in the third embodiment, when device control is executed in a certain host device, an optimum program to be uploaded from the target device after determining the program code storage state of another host device connected to the network. A device control system capable of determining a code will be described.
[0071]
FIG. 17 is a block diagram showing a configuration of a device control system according to the third embodiment of the present invention. In FIG. 17, the device control system according to the third embodiment is realized by a configuration in which a plurality of
The basic configuration of the
[0072]
Hereinafter, as shown in FIG. 13,
[0073]
FIG. 18 is a flowchart illustrating a procedure of program code determination processing performed in the
[0074]
The header
[0075]
If the result of determination in step S181 is that there is only one program code that can be uploaded, the header
[0076]
On the other hand, if there are a plurality of program codes that can be uploaded, the header
[0077]
When a predetermined
[0078]
Specific examples of the device control system configured in the home, in which the control method according to the third embodiment is effective, include the following.
(1) The first floor TV as the host device and the second floor TV, and the air conditioner in the same room as the second floor TV as the target device controls all functions of the air conditioner on the second floor TV in a network-connected system. Consider the case where a program code that can be stored is already stored. In this case, when the TV on the first floor is also used as a host device for controlling the air conditioner, it is determined that the program code capable of controlling all functions of the air conditioner is stored in the TV on the second floor, and the TV on the first floor is used. The program code for which the function of the air conditioner is limited (for example, only power on / off) is uploaded. Thereby, in the state where a certain person controls the air conditioner using the television on the second floor, it is possible to prevent another person from changing the set temperature without permission from another room.
[0079]
(2) In a system in which a television as a host device and a video as a target device are connected to a network, consider a case where program codes that can control all video functions are already stored in the television. In this case, when a PDA that can be connected to the Internet is newly connected as a host device that controls video, it is determined that a program code capable of controlling all video functions is stored in the TV. Uploads a program code capable of acquiring EPG information using the Internet. Accordingly, the PDA can perform processing for acquiring EPG information via the Internet and supplying the EPG information to the television via the network.
[0080]
As described above, according to the device control system according to the third embodiment of the present invention, when device control is executed in the main host device, the program code storage state of other host devices connected to the network is also determined. The optimum program code to be uploaded from the target device is determined above. As a result, special control can be performed with a specific relationship between the plurality of host devices.
[0081]
(Fourth embodiment)
In the second and third embodiments, whether or not the program code can be uploaded is determined based only on the remaining memory area of the host device serving as the control entity. For this reason, when the remaining amount of the memory area of the host device is less than the minimum capacity program code suitable for the execution environment, the program code cannot be uploaded.
Therefore, in the fourth embodiment, when device control is executed in a certain host device, the program code storage state and the remaining memory area of other host devices connected to the network are also determined, and then the target device A device control system capable of optimally controlling a program code to be uploaded and a host device to be uploaded will be described.
[0082]
As in the third embodiment (FIG. 17), the device control system according to the fourth embodiment of the present invention allows a plurality of
[0083]
Hereinafter, as shown in FIG. 13,
In realizing the fourth embodiment, a private command for actually controlling the
[0084]
FIG. 19 is a flowchart illustrating a procedure of program code determination processing performed in the
[0085]
The header
[0086]
If the result of determination in step S144 is that there is a memory area that can be uploaded, the header
In this case, the control of the
[0087]
On the other hand, when there is no memory area that can be uploaded, the header
[0088]
As a result of the confirmation in steps S192 and S193, when a program code suitable for the execution environment of the
In this case, the
[0089]
On the other hand, no program code suitable for the execution environment of the
In this case, control of the
[0090]
The above-described processing will be further described with reference to specific examples shown in FIGS. In this specific example, a case where the
[0091]
(1) In the case of FIG. When the remaining amount of the memory area of the
For control of the
[0092]
(2) In the case of FIG. When the remaining amount of the memory area of the
For control of the
[0093]
Specific examples of the device control system configured in the home, in which the control method according to the fourth embodiment is effective, include the following.
In a system in which a television as a host device and a video as a target device are connected to a network, a case where program codes capable of controlling all video functions are already stored in the television is considered. In this case, when a mobile phone is newly connected as a host device for controlling video, it is determined that a program code capable of controlling all video functions is stored in the TV, and the mobile phone stores the program code in the TV. The GUI program corresponding to the programmed program code is acquired. As a result, the mobile phone only needs to store a small-capacity GUI program, so that the storage resources can be used effectively.
[0094]
As described above, according to the device control system according to the fourth embodiment of the present invention, when device control is executed in the main host device, the program code storage state and memory area of other host devices connected to the network In addition, it is determined whether the optimum program code should be uploaded directly from the target device or to be uploaded to another host device. Thereby, even when the remaining amount of the memory area of the main host device is smaller than the minimum capacity program code suitable for the execution environment, the target device can be controlled via another host device.
[0095]
(Fifth embodiment)
In the first to fourth embodiments, the device control system has been described in which the host device determines its own execution environment and the remaining amount of the memory area and determines the optimum program code to be uploaded.
Next, in the fifth embodiment, a device control system will be described in which the target device determines the execution environment of the host device and the remaining memory area, and determines the optimum program code to be uploaded.
[0096]
FIG. 22 is a block diagram showing a configuration of a device control system according to the fifth embodiment of the present invention. In FIG. 22, the device control system according to the fifth embodiment is realized by a configuration in which one or
[0097]
The
[0098]
The device control system according to the fifth embodiment is different from the device control system according to the first embodiment in that the
In the following, the fifth embodiment will be described focusing on the differences from the first embodiment.
[0099]
In the
[0100]
When the
[0101]
First, the header
[0102]
In the
[0103]
As described above, according to the device control system according to the fifth embodiment of the present invention, the target device is provided with a plurality of program codes in advance, and the target device has the execution environment of the host device and the remaining memory area. The optimal program code is determined and the host device automatically uploads according to the determination. As a result, in addition to high-spec devices such as TV receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. Further, it is not necessary to have a configuration for determining the program code on the host device side, and the cost of the host device can be reduced.
[0104]
In the fifth embodiment, the example in which the target device side determines the execution environment of the host device and determines the optimum program code corresponds to the first embodiment. However, this method can of course correspond to the second to fourth embodiments.
[0105]
In each of the above embodiments, each device connected via a communication line has been described as either a host device or a target device. However, if a device has both a configuration for functioning as a host device and a configuration for functioning as a target device, the device can function as either a host device or a target device.
[0106]
Typically, each function of the device control system according to the first to fifth embodiments is a predetermined program data stored in a storage device (ROM, RAM, hard disk, etc.) that can execute the processing procedure described above. Is realized by being executed by the CPU. In this case, the program data may be introduced into the storage device via a recording medium such as a CD-ROM or a flexible disk, or may be directly executed from the recording medium.
[0107]
【The invention's effect】
According to the host device of
Of claim 5According to the program, the target device has in advance a plurality of program codes having different data capacities for each execution environment that can be taken by the host device, and the host device has a program code suitable for its own execution environment and the remaining memory area. Judge and upload automatically from the target device. As a result, it is possible to determine an appropriate program code that also takes into account the dynamically changing memory area of the host device. In addition, since the target device has a plurality of program codes, the host device only needs to have an execution environment according to its function and performance. Therefore, in addition to high-spec devices such as television receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. In addition, since the optimum program code is automatically determined on the host device side, the user does not need to determine an appropriate program code based on the OS and specifications of the device.
[0108]
ContractClaim4According to the target device, the target device has a plurality of program codes in advance, the target device determines an optimal program code that matches the execution environment of the host device and the remaining memory area, and the host device Upload automatically according to your judgment. As a result, it is possible to determine an appropriate program code that also takes into account the dynamically changing memory area of the host device.
[0109]
Claim2 host devicesAccording to the above, when executing device control in a certain host device, it is also determined whether the optimum program code should be directly uploaded from the target device after determining the program code storage state of other host devices connected via a communication line. decide. Thus, even when the remaining amount of the memory area of the host device is smaller than the minimum capacity program code suitable for the execution environment, the target device can be controlled via another host device.
[0110]
Claim3 host devicesAccording to the above, when device control is executed in a certain host device, the program code storage state of other host devices connected to the network and the remaining memory area are also determined, and the optimum program code is directly transmitted from the target device. Decide whether to upload or to upload to another host device. Thus, even when the remaining amount of the memory area of the host device is smaller than the minimum capacity program code suitable for the execution environment, the target device can be controlled via another host device.
[0113]
ContractClaim6According to the program, the target device has a plurality of program codes in advance, the target device determines the optimum program code that matches the execution environment of the host device and the remaining amount of memory area, and the host device determines the determination. Automatically uploads depending onAs a result, it is possible to determine an appropriate program code that also takes into account the dynamically changing memory area of the host device. In addition, since the target device has a plurality of program codes, the host device only needs to have an execution environment according to its function and performance. Therefore, in addition to high-spec devices such as television receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. In addition, since the optimum program code is automatically determined on the host device side, the user does not need to determine an appropriate program code based on the OS and specifications of the device.
[0114]
Claim7For each execution environment that the host device can take,dataCapacityDifferentA plurality of program codes are provided in advance in the target device, and the host device determines a program code suitable for its own execution environment and the remaining amount of memory area, and automatically uploads from the target device. As a result, it is possible to determine an appropriate program code that also takes into account the dynamically changing memory area of the host device. In addition, since the target device has a plurality of program codes, the host device only needs to have an execution environment according to its function and performance. Therefore, in addition to high-spec devices such as television receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. In addition, since the optimum program code is automatically determined on the host device side, the user does not need to determine an appropriate program code based on the OS and specifications of the device. It is not necessary to have a configuration for determining the program code on the target device side, and the cost of the target device can be reduced.
Claim8According to this control system, the target device has a plurality of program codes in advance, the target device determines the optimal program code that matches the execution environment of the host device and the remaining memory area, and the host device Upload automatically according to your judgment. As a result, in addition to high-spec devices such as TV receivers and STBs, low-spec devices such as PDAs and mobile phone terminals can be used as host devices. Further, it is not necessary to have a configuration for determining the program code on the host device side, and the cost of the host device can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a device control system according to first and second embodiments of the present invention.
FIG. 2 is a flowchart showing a basic procedure of program code determination processing performed in the host device of the first embodiment.
FIG. 3 is an example of a list regarding a memory size recommended by a virtual machine and restrictions on execution of a Java® program;
FIG. 4 is a diagram illustrating a header object and program code used in a specific example 1 of the first embodiment.
FIG. 5 is a diagram illustrating an upload process based on the first embodiment when the host device is a television receiver and the target device is a video deck.
FIG. 6 is a diagram illustrating an upload process based on the first embodiment when the host device is a mobile phone terminal and the target device is a video deck.
FIG. 7 is a diagram illustrating an example of classification according to device specifications.
FIG. 8 is a diagram illustrating a header object and a program code used in specific example 2 of the first embodiment.
FIG. 9 is a diagram illustrating the inside of a header object analysis unit corresponding to specific example 2 of the first embodiment;
10 is a diagram illustrating an example of user preference information managed by the header object analysis unit in FIG. 9;
FIG. 11 is a flowchart illustrating a procedure of a program code determination process performed by the host device according to the second specific example of the first embodiment.
12 is a flowchart showing a detailed procedure of an upload essential condition determination process performed in step S115 of FIG.
FIG. 13 is a diagram illustrating an example of a header object and program code used in the second embodiment.
FIG. 14 is a flowchart illustrating a procedure of program code determination processing performed by the host device according to the second embodiment.
FIG. 15 is a diagram illustrating an example of upload processing based on the second embodiment.
FIG. 16 is a diagram illustrating another example of upload processing based on the second embodiment.
FIG. 17 is a block diagram showing a configuration of a device control system according to third and fourth embodiments of the present invention.
FIG. 18 is a flowchart illustrating a procedure of program code determination processing performed by the host device according to the third embodiment.
FIG. 19 is a flowchart illustrating a procedure of program code determination processing performed by the host device of the fourth embodiment.
FIG. 20 is a diagram illustrating an example of upload processing based on the fourth embodiment.
FIG. 21 is a diagram illustrating another example of upload processing based on the fourth embodiment.
FIG. 22 is a block diagram showing a configuration of a device control system according to a fifth embodiment of the present invention.
FIG. 23 is a diagram illustrating an example of a header object used in the fifth embodiment.
[Explanation of symbols]
1, 4 ... Host equipment
2,5 ... Target equipment
3. Communication line
11, 52 ... Header object analysis section
12 ... Header object upload part
13, 42 ... Program code upload section
14, 21 ... control unit
15, 24 ... Communication control unit
16, 53 ... ROM
17, 54 ... RAM
18, 55 ... CPU
22 ... Program code management section
23. Program code storage unit
41 ... Header object storage
51. Header object download part
101, 102 ... Virtual machine (execution environment)
111-113 ... Storage area
221,441 ... Header object
231 to 23n: Program code
Claims (8)
前記ヘッダオブジェクトを前記ターゲット機器から取得する取得部と、
前記複数のプログラムコードを格納するための第1のメモリ領域と、
自身の実行環境及び前記第1のメモリ領域の残量を判断し、前記ヘッダオブジェクトの解析を行って、前記ターゲット機器に格納されている前記複数のプログラムコードのうち、当該実行環境に適合し、かつ当該第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、
前記情報解析部で決定されたプログラムコードを、前記ターゲット機器から読み出して前記第1のメモリ領域に格納する読み出し部と、
前記読み出し部により前記第1のメモリ領域に格納されたプログラムコードを用いて、前記ターゲット機器を制御する制御部とを備える、ホスト機器。A header object including information corresponding to any of the execution environments that can be taken by each host device, and a plurality of program codes having different data capacities depending on the functions used in the execution environment for each possible execution environment are stored. A target device including a program code management unit configured to associate the execution environment with each of a plurality of program codes having different data capacities according to functions used in the execution environment for each possible execution environment And a host device connected via a communication line,
An acquisition unit for acquiring the header object from the target device;
A first memory area for storing the plurality of program codes;
Judging the execution environment and the remaining amount of the first memory area, analyzing the header object, and adapting to the execution environment among the plurality of program codes stored in the target device, And an information analysis unit for determining a program code having the maximum data capacity from among the program codes that can be stored in the first memory area;
A read unit that reads the program code determined by the information analysis unit from the target device and stores the program code in the first memory area;
A host device comprising: a control unit that controls the target device using a program code stored in the first memory area by the reading unit .
前記情報解析部は、
自身とは異なるホスト機器が前記通信回線を介して接続されているかどうかを確認する機能、および、
前記自身のホスト機器から前記通信回線を介して、前記自身とは異なるホスト機器を制御するプログラムコードを前記自身とは異なるホスト機器が格納しているかどうかを確認する機能をさらに有し、
前記自身が備える仮想マシンの種類に適合するプログラムコードが複数ある場合、前記自身が備える仮想マシンの種類に適合する複数のプログラムコードのうち、前記自身とは異なるホスト機器を制御するプログラムコードを含むプログラムコードを決定する、請求項1に記載のホスト機器。The execution environment is a program code corresponding to the type of virtual machine provided in the host device,
The information analysis unit
A function for confirming whether a host device different from itself is connected via the communication line; and
A function of confirming whether a host device different from the host device stores a program code for controlling a host device different from the host device from the host device via the communication line;
In the case where there are a plurality of program codes that match the type of virtual machine included in the self, the program code that controls a host device different from the self is included among the plurality of program codes that match the type of virtual machine included in the self The host device according to claim 1, wherein the host device determines a program code.
前記仮想マシンの種類に応じたプログラムコードは、GUIに対応するプログラムコードを含み、
前記情報解析部は、
自身とは異なるホスト機器が前記通信回線を介して接続されているかどうかを確認する機能、および、
前記自身とは異なるホスト機器が、前記自身の第1のメモリ領域へ格納すべき仮想マシンの種類に応じたプログラムコードを格納しているかどうかを確認する機能をさらに有し、
前記仮想マシンの種類に適合するプログラムコードを前記自身が備える第1のメモリ領域へ格納できない場合であって、前記自身とは異なるホスト機器が、前記自身が備える第1のメモリ領域へ格納すべき仮想マシンの種類に応じたプログラムコードを格納している場合、前記自身とは異なるホスト機器が格納する仮想マシンの種類に応じたプログラムコードに含まれるGUIに対応するプログラムコードを前記自身とは異なるホスト機器から取得して、前記自身が備える第1のメモリ領域へ格納するように構成した、請求項1に記載のホスト機器。The execution environment is a program code corresponding to the type of virtual machine provided in the host device,
The program code corresponding to the type of the virtual machine includes a program code corresponding to the GUI,
The information analysis unit
A function for confirming whether a host device different from itself is connected via the communication line; and
The host device different from the host device further has a function of confirming whether the program code corresponding to the type of the virtual machine to be stored in the first memory area of the host device is stored,
When the program code suitable for the type of the virtual machine cannot be stored in the first memory area included in the host machine, a host device different from the host machine should store the program code in the first memory area included in the host machine. When the program code corresponding to the type of the virtual machine is stored, the program code corresponding to the GUI included in the program code corresponding to the type of the virtual machine stored by the host device different from the self is different from the self The host device according to claim 1, wherein the host device is configured to be acquired from a host device and stored in a first memory area included in the host device.
前記通信回線を介して前記ターゲット機器と接続するホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および前記取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納した格納部を備え、前記取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成した管理部と、
前記通信回線を介して接続するホスト機器の実行環境に対応する情報及び当該ホスト機器が備える第1のメモリ領域の残量を含む機器情報を、前記通信回線を介して接続するホスト機器から取得する取得部と、
前記取得したホスト機器の機器情報を解析し、前記複数のプログラムコードのうち、前記通信回線を介して接続するホスト機器の実行環境に適合し、かつ前記通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、
前記情報解析部で決定されたプログラムコードを、前記通信回線を介して接続するホスト機器へ通知する通知部とを備える、ターゲット機器。A host device that controls the target device using a program code acquired from the target device, and a target device connected via a communication line,
A header object including information corresponding to any of the execution environments that can be taken by each of the host devices connected to the target device via the communication line, and functions used in the execution environment for each possible execution environment includes a response storage unit for data capacity is stores a plurality of different program code, and the execution environment for the execution each environment to obtain the take-up, each of the data capacity according to the use the functions in the execution environment of different program code A management unit configured to associate
Information corresponding to the execution environment of the host device connected via the communication line and device information including the remaining amount of the first memory area included in the host device are acquired from the host device connected via the communication line. An acquisition unit;
Analyzing the acquired device information of the host device, and among the plurality of program codes, the host device is suitable for the execution environment of the host device connected via the communication line and connected via the communication line An information analysis unit for determining a program code having the maximum data capacity from among the program codes that can be stored in the first memory area;
A target device comprising: a notification unit that notifies a program code determined by the information analysis unit to a host device connected via the communication line.
前記ヘッダオブジェクトを前記ターゲット機器から取得する取得ステップと、
自身の実行環境及び第1のメモリ領域の残量を判断し、前記ヘッダオブジェクトの解析を行って、前記ターゲット機器に格納されている前記複数のプログラムコードのうち、当該実行環境に適合し、かつ前記第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析ステップと、
前記情報解析ステップで決定されたプログラムコードを、前記ターゲット機器から読み出して前記第1のメモリ領域に格納する読み出しステップと、
前記読み出しステップにより前記第1のメモリ領域に格納されたプログラムコードを用いて、前記ターゲット機器を制御する制御ステップとを含むプログラム。A header object including information corresponding to any of the execution environments that can be taken by each host device, and a plurality of program codes having different data capacities depending on the functions used in the execution environment for each possible execution environment A target device including a program code management unit configured to associate the execution environment with each of a plurality of program codes having different data capacities according to functions used in the execution environment for each possible execution environment And a program executed by a host device connected via a communication line,
Obtaining the header object from the target device;
Judging the execution environment and the remaining amount of the first memory area, analyzing the header object, and adapting to the execution environment among the plurality of program codes stored in the target device, and An information analysis step for determining a program code having a maximum data capacity among program codes that can be stored in the first memory area;
A read step of reading the program code determined in the information analysis step from the target device and storing it in the first memory area;
A control step of controlling the target device using the program code stored in the first memory area by the reading step .
前記通信回線を介して接続するホスト機器の実行環境に対応する情報及び当該ホスト機器が備える第1のメモリ領域の残量を含む機器情報を、前記通信回線を介して接続するホスト機器から取得する取得ステップと、
前記取得したホスト機器の機器情報を解析し、前記複数のプログラムコードのうち、前記通信回線を介して接続するホスト機器の実行環境に適合し、かつ前記通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析ステップと、
前記情報解析ステップで決定されたプログラムコードを、前記通信回線を介して接続するホスト機器へ通知する通知ステップとを含むプログラム。A plurality of program codes that are connected to a host device that controls the target device using a program code acquired from the target device via a communication line and are necessary for its own control, and the plurality of program codes Are used in the execution environment for each possible execution environment, and a header object including information corresponding to any of the execution environments that can be taken by each of the host devices connected to the target device via the communication line. A storage unit storing a plurality of program codes having different data capacities depending on the function to be executed, and for each possible execution environment, the execution environment and a plurality of data capacities depending on the function used in the execution environment data with a management unit configured to associate the respective program code A program to be executed by the target device,
Information corresponding to the execution environment of the host device connected via the communication line and device information including the remaining amount of the first memory area included in the host device are acquired from the host device connected via the communication line. An acquisition step;
Analyzing the acquired device information of the host device, and among the plurality of program codes, the host device is adapted to the execution environment of the host device connected via the communication line and connected via the communication line An information analysis step for determining a program code having the maximum data capacity from among the program codes that can be stored in the first memory area;
A notification step of notifying the host device connected via the communication line of the program code determined in the information analysis step.
前記ターゲット機器は、
前記ホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および前記取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納し、前記取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成したプログラムコード管理部を備え、
前記ホスト機器は、
前記ヘッダオブジェクトを前記ターゲット機器から取得する取得部と、
前記複数のプログラムコードを格納するための第1のメモリ領域と、
自身の実行環境及び前記第1のメモリ領域の残量を判断し、前記ヘッダオブジェクトの解析を行って、前記ターゲット機器に格納されている前記複数のプログラムコードのうち、当該実行環境に適合し、かつ当該第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、
前記情報解析部で決定されたプログラムコードを、前記ターゲット機器から読み出して前記第1のメモリ領域に格納する読み出し部と、
前記読み出し部により前記第1のメモリ領域に格納されたプログラムコードを用いて、前記ターゲット機器を制御する制御部とを備える、機器制御システム。A device control system in which one or more host devices and one or more target devices are connected via a communication line,
The target device is
A header object including information corresponding to any of the execution environments that can be taken by each of the host devices, and a plurality of program codes having different data capacities depending on the functions used in the execution environment for each possible execution environment A program code management unit configured to associate the execution environment with each of a plurality of program codes having different data capacities according to functions used in the execution environment for each possible execution environment ;
The host device is
An acquisition unit for acquiring the header object from the target device;
A first memory area for storing the plurality of program codes;
Judging the execution environment and the remaining amount of the first memory area, analyzing the header object, and adapting to the execution environment among the plurality of program codes stored in the target device, And an information analysis unit for determining a program code having the maximum data capacity from among the program codes that can be stored in the first memory area;
A read unit that reads the program code determined by the information analysis unit from the target device and stores the program code in the first memory area;
A device control system comprising: a control unit that controls the target device using a program code stored in the first memory area by the reading unit .
前記ターゲット機器は、
前記通信回線を介して前記ターゲット機器と接続するホスト機器のそれぞれが取り得る実行環境のいずれかに対応する情報を含むヘッダオブジェクト、および前記取り得る実行環境毎に当該実行環境において利用される機能に応じたデータ容量が異なるプログラムコードを複数格納した格納部を備え、前記取り得る実行環境毎に当該実行環境と、当該実行環境において利用される機能に応じたデータ容量が異なる複数のプログラムコードのそれぞれとを対応付けるように構成した管理部と、
前記通信回線を介して接続するホスト機器の実行環境に対応する情報及び当該ホスト機器が備える第1のメモリ領域の残量を含む機器情報を、前記通信回線を介して接続するホスト機器から取得する取得部と、
前記取得したホスト機器の機器情報を解析し、前記複数のプログラムコードのうち、前記通信回線を介して接続するホスト機器の実行環境に適合し、かつ前記通信回線を介して接続するホスト機器が備える第1のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、
前記情報解析部で決定されたプログラムコードを、前記通信回線を介して接続するホスト機器へ通知する通知部とを備え、
前記ホスト機器は、
前記自身の実行環境に対応する情報を含むヘッダオブジェクト及び前記ホスト機器が備える第1のメモリ領域の残量を含む機器情報を管理する情報管理部と、
前記ターゲット機器から通知されたプログラムコードを、前記ターゲット機器から読み出して前記第1のメモリ領域に格納する読み出し部と、
前記読み出し部により前記第1のメモリ領域に格納されたプログラムコードを用いて、前記ターゲット機器を制御する制御部とを備える、機器制御システム。A device control system in which one or more host devices and one or more target devices are connected via a communication line,
The target device is
A header object including information corresponding to any of the execution environments that can be taken by each of the host devices connected to the target device via the communication line, and a function used in the execution environment for each possible execution environment includes a response storage unit for data capacity is stores a plurality of different program code, and the execution environment for the execution each environment to obtain the take-up, each of the data capacity according to the use the functions in the execution environment of different program code A management unit configured to associate
Information corresponding to the execution environment of the host device connected via the communication line and device information including the remaining amount of the first memory area included in the host device are acquired from the host device connected via the communication line. An acquisition unit;
Analyzing the acquired device information of the host device, and among the plurality of program codes, the host device is suitable for the execution environment of the host device connected via the communication line and connected via the communication line An information analysis unit for determining a program code having the maximum data capacity from among the program codes that can be stored in the first memory area;
A notification unit for notifying the program code determined by the information analysis unit to a host device connected via the communication line;
The host device is
An information management unit for managing device information including a header object including information corresponding to the execution environment of the host device and a remaining amount of a first memory area included in the host device;
A read unit that reads the program code notified from the target device from the target device and stores the program code in the first memory area;
A device control system comprising: a control unit that controls the target device using a program code stored in the first memory area by the reading unit .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088486A JP4458762B2 (en) | 2002-04-04 | 2003-03-27 | Host device, target device, program executed on host device or target device, and device control system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002102581 | 2002-04-04 | ||
JP2003088486A JP4458762B2 (en) | 2002-04-04 | 2003-03-27 | Host device, target device, program executed on host device or target device, and device control system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004005517A JP2004005517A (en) | 2004-01-08 |
JP2004005517A5 JP2004005517A5 (en) | 2006-04-06 |
JP4458762B2 true JP4458762B2 (en) | 2010-04-28 |
Family
ID=30446642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003088486A Expired - Fee Related JP4458762B2 (en) | 2002-04-04 | 2003-03-27 | Host device, target device, program executed on host device or target device, and device control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4458762B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170052262A (en) * | 2015-11-04 | 2017-05-12 | 한국전자통신연구원 | Dynamic commands processing apparatus and method thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245428A (en) * | 2008-03-11 | 2009-10-22 | Hitachi Kokusai Electric Inc | Software radio device |
CN116759040B (en) * | 2023-08-17 | 2024-01-09 | 北方健康医疗大数据科技有限公司 | Data management system and method for medical big data |
-
2003
- 2003-03-27 JP JP2003088486A patent/JP4458762B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170052262A (en) * | 2015-11-04 | 2017-05-12 | 한국전자통신연구원 | Dynamic commands processing apparatus and method thereof |
KR102126218B1 (en) * | 2015-11-04 | 2020-06-24 | 한국전자통신연구원 | Dynamic commands processing apparatus and method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2004005517A (en) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7113837B2 (en) | Device control system, network constructed by the system, and program executed on device constructing the system | |
JP4136857B2 (en) | Device search method and program | |
US7290067B2 (en) | Information processing apparatus control method for external device having both a wire interface and a wireless interface settings | |
JP4391712B2 (en) | System and method for controlling a mass storage class digital imaging device | |
JP4605273B2 (en) | Information processing apparatus and function expansion method | |
CN105291613A (en) | Information processing device, and control method for information processing device | |
JP2004242200A (en) | Electronic device, mobile type device, and transmitting system of remote control program | |
JP4699886B2 (en) | Device setting system and device setting method | |
US8645487B2 (en) | Method of requesting services of network devices, network devices capable of performing the method, and storage medium for storing the method | |
JP4458762B2 (en) | Host device, target device, program executed on host device or target device, and device control system | |
EP1786166B1 (en) | Method and apparatus for remotely managing electronic utility devices | |
US20130227072A1 (en) | Communication method to transfer user operation information and electronic device using the same | |
JP2004015787A (en) | Remote control device | |
US8341309B2 (en) | Network system | |
JP2007043443A (en) | Electronic equipment system and program | |
US9184931B2 (en) | Universal plug and play based network system and method of controlling the same | |
JP4534424B2 (en) | COMMUNICATION ROBOT DEVICE, COMMUNICATION ROBOT DEVICE CONTROL METHOD, AND COMMUNICATION ROBOT PROGRAM | |
JP2016178548A (en) | Device and system for content output, and program | |
JP4922469B2 (en) | Electronic device and control method of electronic device | |
JP2008116994A (en) | Electronic device system and program | |
JP5224994B2 (en) | Network terminal device, control method thereof, and program | |
JP2006099380A (en) | Method and system for distributing updated software | |
JP2017118206A (en) | Electronic apparatus | |
KR20060128528A (en) | Method and device for automatic data uploading | |
JP2005128754A (en) | Function addition system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060222 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090511 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090609 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090806 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091130 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20091207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100209 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4458762 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140219 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |