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 PDF

Info

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
Application number
JP2003088486A
Other languages
Japanese (ja)
Other versions
JP2004005517A (en
JP2004005517A5 (en
Inventor
貴洋 竹本
直久 本村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003088486A priority Critical patent/JP4458762B2/en
Publication of JP2004005517A publication Critical patent/JP2004005517A/en
Publication of JP2004005517A5 publication Critical patent/JP2004005517A5/ja
Application granted granted Critical
Publication of JP4458762B2 publication Critical patent/JP4458762B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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】
求項のターゲット機器によれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。
【0109】
請求項2のホスト機器によれば、あるホスト機器において機器制御を実行する場合、通信回線で接続されている他のホスト機器のプログラムコード格納状態も判断した上で、最適なプログラムコードをターゲット機器から直接アップロードすべきかを決定する。これにより、ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合でも、他のホスト機器を経由してターゲット機器を制御することができる。
【0110】
請求項3のホスト機器によれば、あるホスト機器において機器制御を実行する場合、ネットワーク接続されている他のホスト機器のプログラムコード格納状態及びメモリ領域の残量も判断した上で、最適なプログラムコードをターゲット機器から直接アップロードすべきか、又は他のホスト機器にアップロードさせるべきかを決定する。これにより、ホスト機器のメモリ領域の残量が、実行環境に適合する最小容量のプログラムコードよりも少ない場合でも、他のホスト機器を経由してターゲット機器を制御することができる。
【0113】
求項のプログラムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。
【0114】
請求項の制御システムによれば、ホスト機器が取り得る実行環境毎にデータ容量の異なる複数のプログラムコードを予めターゲット機器に持たせ、ホスト機器が、自己の実行環境及びメモリ領域の残量に合ったプログラムコードを判断して、ターゲット機器から自動的にアップロードする。これにより、動的に変化するホスト機器のメモリ領域をも考慮した適切なプログラムコードを決定することができる。また、ターゲット機器に複数のプログラムコードを持たせるので、ホスト機器は、自己の機能や性能に応じた実行環境を備えるだけでよくなる。よって、また、テレビ受像機やSTB等のハイスペックな機器以外にも、PDAや携帯電話端末等のロースペックな機器を、ホスト機器として利用することが可能となる。また、ホスト機器側で最適なプログラムコードを自動的に決定するので、ユーザは、自ら機器のOSやスペック等に基づいて適切なプログラムコードを決定する必要がなくなる。ターゲット機器側でプログラムコードを決定するための構成を持つ必要がなくなり、ターゲット機器のコスト削減が可能になる。
請求項の制御システムによれば、ターゲット機器に予め複数のプログラムコードを持たせ、ターゲット機器が、ホスト機器の実行環境及びメモリ領域の残量に合った最適なプログラムコードを判断して、ホスト機器がその判断に応じて自動的にアップロードする。これにより、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 Patent Document 1 as a conventional technique related to the above-described optimum program code uploading.
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 more host devices 1 and one or more target devices 2 are connected by a wired or wireless communication line 3. .
[0032]
The host device 1 includes a header object analysis unit 11, a header object upload unit 12, a program code upload unit 13, a control unit 14, a communication control unit 15, a ROM 16, a RAM 17, and a CPU 18. The target device 2 includes a control unit 21, a program code management unit 22, a program code storage unit 23, and a communication control unit 24.
[0033]
First, the target device 2 of the device control system according to the first embodiment having the above configuration will be described.
In the program code storage unit 23, a plurality of program codes 231 to 23n (n is an integer of 2 or more) are stored. The plurality of program codes 231 to 23n are created in advance by the developer of the target device 2 according to the execution environment of the host device 1 that is known in advance to be connectable to the target device 2 (details will be described later). ).
The program code management unit 22 stores a header object 221 as information for managing the program code. The header object 221 is information indicating the execution code corresponding to each execution code 231 to 23n and information indicating a storage destination address in the program code storage unit 23 (details). Will be described later).
The control unit 21 controls reading / sending of the header object 221 or the program codes 231 to 23n in accordance with an instruction given from the host device 1 via the communication control unit 24.
[0034]
Next, the host device 1 of the device control system according to the first embodiment having the above configuration will be described. FIG. 2 is a flowchart illustrating a basic procedure of program code determination processing performed in the host device 1 according to the first embodiment.
When the host device 1 and the target device 2 are connected to each other via the communication line 3 and can communicate with each other, the CPU 18 and the control unit 14 give a predetermined instruction regarding upload, and the header object analysis unit 11, header object upload The unit 12 and the program code upload unit 13 execute the following processes, respectively.
[0035]
First, the header object upload unit 12 uploads the header object 221 stored in the program code management unit 22 of the target device 2 to the RAM 17 through the communication control unit 24, the communication line 3, and the communication control unit 15 (step S21). ). The header object analysis unit 11 reads the header object 221 uploaded to the RAM 17 (step S22). Next, the header object analysis unit 11 confirms the execution environment of the host device 1 (step S23). Then, the header object analysis unit 11 determines a program code suitable for the confirmed execution environment based on the information related to the execution environment of each program code included in the header object 221 (step S24). Finally, the program code upload unit 13 transfers the program code determined by the header object analysis unit 11 from the program code storage unit 23 of the target device 2 to the ROM 16 through the communication control unit 24, the communication line 3, and the communication control unit 15. Upload (step S25).
[0036]
Then, after the upload process of the program code suitable for the execution environment described above is completed, the host device 1 interprets / executes the program code stored in the ROM 16 according to a user instruction, and controls the target device 2.
[0037]
Next, with further reference to FIGS. 3 to 12, specific creation examples of the header object 221 stored in the program code management unit 22 and the program codes 231 to 23n stored in the program code storage unit 23 will be described. A description will be given in correspondence with the execution environment form of the host device 1 confirmed by the object analysis unit 11.
[0038]
<Specific example 1> When a virtual machine defined by HAVi (R) or Jini (R) is determined as the execution environment of the host device 1
In HAVi (R) and Jini (R), a program code for controlling the target device 2 is described in Java (R). Therefore, the host device 1 that interprets / executes the program code needs to include a virtual machine for executing the Java (R) code. There are several types of virtual machines depending on the devices installed. For example, CVM is a virtual machine that is built into a set-top box (STB) or television receiver, and KVM is a virtual machine that is built into a portable information device (PDA) or mobile phone terminal. CardVM is generally known. FIG. 3 is an example of a list regarding a memory size recommended by each virtual machine and restrictions on execution of the Java® program.
[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 device 2 in advance.
[0040]
For example, in the program code storage unit 23, a program code 231 corresponding to a CVM virtual machine, a program code 232 corresponding to a KVM virtual machine, and a program code 233 corresponding to a CardVM virtual machine are created, respectively. Store in the address area (FIG. 4A). The program code management unit 22 includes corresponding execution environment information indicating that the program code 231 corresponds to a CVM virtual machine, the program code 232 corresponds to a KVM virtual machine, and the program code 233 corresponds to a CardVM virtual machine. The header object 221 consisting of the storage address information of the program code is stored (FIG. 4B). The virtual machine name is optimal as the corresponding execution environment information. The number of program codes and the type of virtual machine are not limited to those described above, and can be freely set.
[0041]
Using the header object 221 and the program codes 231 to 233 stored in this way, an optimum program code upload process by the host device 1 is performed as follows.
[0042]
FIG. 5 is a diagram for explaining a case where the host device 1 is a television receiver equipped with a CVM virtual machine 101 and the target device 2 is a video deck.
In FIG. 5, when the host device 1 and the target device 2 are connected via the communication line 3, the header object 221 is uploaded from the target device 2 by the header object upload unit 12. When the header object 221 is uploaded, the header object analysis unit 11 next determines whether or not a corresponding execution environment that matches the virtual machine 101, that is, a CVM program code exists in the target device 2. If it exists, the program code 231 is uploaded from the target device 2 by the program code upload unit 13 in accordance with the storage destination address “0x01”.
[0043]
FIG. 6 is a diagram for explaining a case where the host device 1 is a mobile phone terminal equipped with a KVM virtual machine 102 and the target device 2 is a video deck.
In FIG. 6, when the host device 1 and the target device 2 are connected via the communication line 3, the header object 221 is uploaded from the target device 2 by the header object upload unit 12. When the header object 221 is uploaded, the header object analysis unit 11 next confirms whether or not the corresponding execution environment that matches the virtual machine 102, that is, the KVM program code exists in the target device 2. If it exists, the program code 232 is uploaded from the target device 2 by the program code upload unit 13 in accordance with the storage destination address “0x02”.
[0044]
<Specific example 2> When determining the device specification and the control mode preferred by the user as the execution environment of the host device 1
In this case, among the execution environments that can be taken by the host device 1, some desired device spec parameters are combined in advance and divided into a plurality of cases. Then, a program code uniquely corresponding to each of these cases is created and stored in advance in the target device 2 together with a header object related thereto. As the element of the device specification, the operating frequency of the CPU, the cache memory size, the number of simultaneous colors (graphics), and the like are considered.
[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 code storage unit 23, a program code 231 corresponding to case A, a program code 232 corresponding to case B, a program code 233 corresponding to case C, and a program code 234 corresponding to case D are created, respectively. (FIG. 8A). The program code management unit 22 includes specification information indicating the device specification of the program code 231, the device specification of the program code 232, the device specification of the program code 233, and the device specification of the program code 234, and the storage address of the program code A header object 221 consisting of information is stored (FIG. 8B).
[0046]
Using the header object 221 and the program codes 231 to 234 stored in this way, an optimum program code upload process by the host device 1 is performed as follows.
[0047]
In the case of <specific example 2>, the header object analysis unit 11 of the host device 1 stores an area (upload list) 111 for storing information of the header object 221 uploaded from the target device 2, and the specification information of the host device 1. And an area 113 for storing user preference information (FIG. 9). The specification information managed in the storage area 112 corresponds to each item shown in FIG. As shown in FIG. 10, the user preference information managed in the storage area 113 is a control form desired by the user, for example, a language on the GUI, graphics (simultaneous color development number), executable commands (playback, stop, etc.) ) Is information related to the setting of the control mode and the like for determining the number of the This user preference information is freely set by the user via an input unit (not shown).
[0048]
The procedure of the program code determination process performed by the host device 1 including the header object analysis unit 11 having the above configuration will be described with reference to the flowcharts shown in FIGS.
Referring to FIG. 11, when the host device 1 and the target device 2 are connected via the communication line 3, the header object 221 is uploaded from the target device 2 by the header object upload unit 12 (step S111). The header object analysis unit 11 reads the uploaded header object 221 and stores it in the upload list 111 (step S112). Then, the header object analysis unit 11 selects one piece of unprocessed information (hereinafter referred to as processing target information) from the plurality of pieces of information included in the stored header object 221 (steps S113 and S114), and is shown in FIG. An upload essential condition determination process is executed (step S115).
[0049]
Referring to FIG. 12, the header object analysis unit 11 matches the language set in the user preference information stored in the storage area 113 with the language displayed on the GUI when the program code of the processing target information is executed. Whether or not (language condition) is determined (step S121). If it is determined that both languages match, then the header object analysis unit 11 compares the CPU of the spec information with the CPU of the processing target information to determine whether or not the CPU condition is satisfied (step S122). ). If it is determined that the CPU condition is satisfied, then the header object analysis unit 11 compares the specification information memory and the processing target information memory to determine whether the memory condition is satisfied (step S123). . If it is determined that the memory condition is satisfied, then the header object analysis unit 11 compares the setting graphic of the user preference information with the graphic of the processing target information to determine whether the graphic condition is satisfied. (Step S124).
[0050]
If all the conditions in steps S121 to S124 are satisfied, the header object analysis unit 11 leaves this processing target information in the upload list 111 (step S125). On the other hand, if any one of the above steps S121 to S124 cannot satisfy the condition, the header object analysis unit 11 deletes this processing target information from the upload list 111 (step S126).
The determination processes in steps S114, S115, and S121 to S124 are executed for all information included in the header object 221 stored in the upload list 111 (step S113).
[0051]
Referring to FIG. 11 again, when the determination process is completed for all the information of the header object 221 read to the upload list 111 (No in step S113), the header object analysis unit 11 then stores the information in the upload list 111. The following user preference condition determination process is executed using each piece of information of the remaining header object 221.
[0052]
The header object analysis unit 11 checks the storage area 113 to check whether user preference information is set in addition to the language (step S116). As a result of the confirmation, if there is user preference information set other than the language, the header object analysis unit 11 compares the user preference information with each information of the header object 221 remaining in the upload list 111, and the information is The program code that most closely matches is determined (step S117). On the other hand, when there is no user preference information set other than the language, the header object analysis unit 11 compares the specification information with the recommended conditions of each information of the header object 221 remaining in the upload list 111, and the information is the most A program code that matches a lot is determined (step S118).
[0053]
Then, the program code upload unit 13 uploads the optimal program code determined by the header object analysis unit 11 from the target device 2 according to the storage destination address (step S119).
[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 object analysis unit 11 of the host device 1 and the target The contents of the header object 221 stored in the program code management unit 22 of the device 2 and the program codes 231 to 23n stored in the program code storage unit 23 are different.
Hereinafter, the case where the program codes 231 to 23n corresponding to the types of virtual machines installed in the host device 1 are stored in the program code storage unit 23 will be described as an example, with a focus on differences from the first embodiment. A second embodiment will be described.
[0059]
First, specific examples of the header object 221 stored in the program code management unit 22 of the target device 2 and the program codes 231 to 23n stored in the program code storage unit 23 will be described with reference to FIG.
[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 program codes 231 to 236 classified by predetermined usable functions are created for each virtual machine. This classification can be freely performed. For example, a class 1 that can use all functions, a class 2 that cannot use some functions, and the like may be used. Thus, by creating a program code in which the use of some functions is restricted, a plurality of program codes having different capacities can be provided for the same virtual machine.
[0061]
The program code management unit 22 includes, for each program code 231 to 236 stored in the program code storage unit 23, a header object 221 including information on a corresponding execution environment indicating which virtual machine is supported, its capacity, and its storage destination address. Is stored (FIG. 13B).
Using the header object 221 and the program codes 231 to 236 stored in this way, an optimum program code upload process by the host device 1 is performed as follows.
[0062]
FIG. 14 is a flowchart illustrating a procedure of program code determination processing performed in the host device 1 according to the second embodiment.
When the host device 1 is connected to the target device 2 via the communication line 3 and can communicate with each other, the host device 1 gives a predetermined instruction regarding upload from the CPU 18 and the control unit 14, and the header object analysis unit 11, header object upload The unit 12 and the program code upload unit 13 execute the following processes, respectively.
[0063]
First, the header object upload unit 12 uploads the header object 221 stored in the program code management unit 22 of the target device 2 to the RAM 17 through the communication control unit 24, the communication line 3, and the communication control unit 15. The header object analysis unit 11 reads the header object 221 uploaded to the RAM 17 (step S141). Next, the header object analysis unit 11 confirms the execution environment of the host device 1 (in this example, the type of virtual machine). Then, the header object analysis unit 11 determines a plurality of program codes suitable for the confirmed execution environment based on the information regarding the execution environment of each program code included in the header object 221 (step S142).
[0064]
Next, the header object analysis unit 11 checks the remaining amount of the memory area of the host device 1 (step S143). Then, the header object analysis unit 11 determines whether or not there is a memory area in which any of the compatible program codes confirmed in step S142 can be uploaded based on the capacity information of the program code included in the header object 221. (Step S144).
[0065]
As a result of the determination in step S144, if there is a memory area that can be uploaded, the header object analysis unit 11 determines the program code having the maximum capacity that can be uploaded as the optimum program code (step S145). Then, the determined optimum program code is uploaded from the program code storage unit 23 of the target device 2 to the ROM 16 by the program code upload unit 13 (step S146).
On the other hand, if there is no memory area that can be uploaded, the header object analysis unit 11 determines that the target device 2 cannot be controlled and ends the process.
[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 target device 2 includes a program code A-1 (capacity: 120 KB) corresponding to the virtual machine A, a program code A-2 (90 KB) in which a part of the functions is limited compared to A-1. Stored are B-1 (100 KB) corresponding to the virtual machine B and program code B-2 (70 KB) in which a part of the functions is more limited than B-1. The host device 1 is equipped with a virtual machine A.
[0067]
(1) When the remaining amount of the memory area of the host device 1 is equal to or larger than the capacities of the program codes A-1 and A-2 suitable for the virtual machine A, the host device 1 sets the program code A-1 having the maximum capacity. Upload from the target device 2 (FIG. 15).
(2) When the remaining amount of the memory area of the host device 1 is equal to or less than the capacity of the program code A-1 suitable for the virtual machine A and equal to or greater than the capacity of the program code A-2, the host device 1 can be stored in the memory. Program code A-2 is uploaded from the target device 2 (FIG. 16).
[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 host devices 1 and one or more target devices 2 are connected by a wired or wireless communication line 3.
The basic configuration of the host device 1 and the target device 2 that constitute the device control system according to the third embodiment of the present invention is the same as that of the second embodiment, but the host device 1 that is the controlling entity. The processing of the header object analysis unit 11 (hereinafter referred to as the main host device 1) is different.
[0072]
Hereinafter, as shown in FIG. 13, program codes 231 to 236 classified into predetermined classes are stored in the program code storage unit 23, and header objects 221 related to the program codes 231 to 236 are stored in the program code management unit 22. Taking the case of storing as an example, the third embodiment will be described focusing on the differences from the first and second embodiments.
[0073]
FIG. 18 is a flowchart illustrating a procedure of program code determination processing performed in the main host device 1 according to the third embodiment. In FIG. 18, steps that perform the same processing as in the flowchart of FIG. 14 are given the same step numbers, and a part of the description is omitted.
[0074]
The header object analysis unit 11 of the main host device 1 determines a plurality of program codes suitable for the virtual machine based on the type of the virtual machine to be mounted and the information of the header object 221 uploaded from the target device 2 ( Steps S141 and S142). Next, the header object analysis unit 11 of the main host device 1 determines whether there is a memory area in which a program code suitable for the virtual machine can be uploaded based on the confirmed remaining amount of the memory area and the information of the header object 221. Is determined (steps S143 and S144). If there is a memory area that can be uploaded, the header object analysis unit 11 of the main host device 1 further determines the number of program codes that can be uploaded (step S181).
[0075]
If the result of determination in step S181 is that there is only one program code that can be uploaded, the header object analysis unit 11 of the main host device 1 determines that program code as the optimum program code (step S182). Then, the program code upload unit 13 of the main host device 1 uploads the determined program code from the target device 2 (step S146).
[0076]
On the other hand, if there are a plurality of program codes that can be uploaded, the header object analysis unit 11 of the main host device 1 is connected to another host device 1 that has relevance to perform special control. If it is connected, it is checked via the network whether or not a specific program code is stored in the ROM 16 (steps S183 and S184). As a result of the investigation, when it is determined that a predetermined other host device 1 is connected to the network and a specific program code is stored, the header object analysis unit 11 of the main host device 1 A predetermined program code necessary for the special control is determined as an optimum program code (step S185). Then, the program code upload unit 13 of the main host device 1 uploads the determined program code from the target device 2 (step S146).
[0077]
When a predetermined other host device 1 is not connected to the network, or when a specific program code is not stored, determination of an optimum program code based on the second embodiment (step S145). And an upload process (step S146) is performed.
[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 host devices 1 and one or more target devices 2 to perform wired or wireless communication. This is realized by the configuration connected by the line 3. The basic configuration of the host device 1 and the target device 2 constituting the device control system according to the fourth embodiment is the same as that of the third embodiment, but the header object analysis unit 11 of the main host device 1 is the same. The processing of is different.
[0083]
Hereinafter, as shown in FIG. 13, program codes 231 to 236 classified into predetermined classes are stored in the program code storage unit 23, and header objects 221 related to the program codes 231 to 236 are stored in the program code management unit 22. Taking the case of storage as an example, the fourth embodiment will be described focusing on the differences from the first to third embodiments.
In realizing the fourth embodiment, a private command for actually controlling the target device 2 and a global command capable of remotely controlling the designation of the private command are transmitted to each program code 231 to 236. It is assumed that a GUI program is included.
[0084]
FIG. 19 is a flowchart illustrating a procedure of program code determination processing performed in the main host device 1 according to the fourth embodiment. In FIG. 19, the same step numbers are assigned to the same processes as those in the flowchart of FIG. 14, and a part of the description is omitted.
[0085]
The header object analysis unit 11 of the main host device 1 determines a plurality of program codes suitable for the virtual machine based on the type of the virtual machine to be mounted and the information of the header object 221 uploaded from the target device 2 ( Steps S141 and S142). Next, the header object analysis unit 11 of the main host device 1 determines whether there is a memory area in which a program code suitable for the virtual machine can be uploaded based on the confirmed remaining amount of the memory area and the information of the header object 221. Is determined (steps S143 and S144).
[0086]
If the result of determination in step S144 is that there is a memory area that can be uploaded, the header object analysis unit 11 of the main host device 1 determines the maximum capacity program code that can be uploaded as the optimum program code (step S145). Then, the program code upload unit 13 of the main host device 1 uploads the determined optimum program code from the target device 2 (step S146).
In this case, the control of the target device 2 is generated by the main host device 1 interpreting / executing the program code stored in the ROM 16 in response to a user instruction, as in the first and second embodiments. This is executed by directly transmitting the private command to the target device 2.
[0087]
On the other hand, when there is no memory area that can be uploaded, the header object analysis unit 11 of the main host device 1 stores the program code already stored in the ROM 16 of the other host device 1 and the memory area of the other host device 1. The remaining amount is checked through the network (step S191). Then, the header object analysis unit 11 determines whether there is another host device 1 that stores a program code suitable for the execution environment of the main host device 1 and the program code suitable for the execution environment of the main host device 1. It is confirmed whether there is another host device 1 having a remaining memory area that can be stored (steps S192 and S193).
[0088]
As a result of the confirmation in steps S192 and S193, when a program code suitable for the execution environment of the main host device 1 is stored in another host device 1, the header object analysis unit 11 of the main host device 1 adds the program code to the program code. A corresponding GUI program is acquired from the other host device 1 (step S194). When a plurality of other host devices 1 store compatible program codes, the main host device 1 may acquire a GUI program from the other host devices 1 that store the maximum capacity program code. It ’s enough.
In this case, the main host device 1 uses the acquired GUI program to transmit a global command corresponding to the user instruction to the other host device 1 and the other host device 1 receives the control of the target device 2 in this case. After the global command is converted into a corresponding private command, it is executed by transmitting it to the target device 2.
[0089]
On the other hand, no program code suitable for the execution environment of the main host device 1 is stored anywhere, but when there is another host device 1 having a memory area where any program code can be uploaded, The header object analysis unit 11 of the host device 1 instructs the other host device 1 to upload the program code. If there are a plurality of other host devices 1 having a memory area to which the program code can be uploaded, the main host device 1 only instructs the other host device 1 having the largest remaining memory area. It ’s enough. In accordance with this instruction, the other host device 1 uploads the program code to the ROM 16 (step S195). Then, the header object analysis unit 11 of the main host device 1 acquires a GUI program corresponding to the program code uploaded by the other host device 1 from the other host device 1 (step S194).
In this case, control of the target device 2 is also performed by the main host device 1 using the acquired GUI program to transmit a global command corresponding to the user instruction to the other host device 1 and received by the other host device 1. After the global command is converted into a corresponding private command, it is executed by transmitting it to the target device 2.
[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 first host device 1 controls the target device 2 is shown. The target device 2 stores the program codes A-1, A-2, B-1, and B-2 described in the second embodiment (FIG. 15). Each of the first to third host devices 1 is equipped with a virtual machine A.
[0091]
(1) In the case of FIG. When the remaining amount of the memory area of the first host device 1 is less than or equal to the capacity of the program codes A-1 and A-2 suitable for the virtual machine A, the first host device 1 The stored program code of the host device 1 and the remaining memory area are checked. As a result of the investigation, since it was confirmed that the second host device 1 stores the program code A-1, the first host device 1 corresponds to the program code A-1 from the second host device 1. Get GUI program.
For control of the target device 2, the first host device 1 transmits a global command generated using the GUI program to the second host device 1, and the second host device 1 receives the first host device 1 from the first host device 1. This is executed by transmitting a private command converted according to the received global command to the target device 2.
[0092]
(2) In the case of FIG. When the remaining amount of the memory area of the first host device 1 is less than or equal to the capacity of the program codes A-1 and A-2 suitable for the virtual machine A, the first host device 1 The stored program code of the host device 1 and the remaining memory area are checked. As a result of the investigation, it has been confirmed that the third host device 1 has a memory area capable of storing the program code A-1, so the first host device 1 sends the program code A to the third host device 1. Instruct to upload -1. The third host device 1 uploads the program code A-1 according to the instruction. Thereafter, the first host device 1 acquires a GUI program corresponding to the program code A-1 from the third host device 1.
For control of the target device 2, the first host device 1 transmits a global command generated by using the GUI program to the third host device 1, and the third host device 1 receives information from the first host device 1. This is executed by transmitting a private command converted according to the received global command to the target device 2.
[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 more host devices 4 and one or more target devices 5 are connected by a wired or wireless communication line 3. .
[0097]
The host device 4 includes a header object storage unit 41, a program code upload unit 42, a control unit 14, a communication control unit 15, a ROM 16, a RAM 17, and a CPU 18. The target device 5 includes a control unit 21, a program code management unit 22, a program code storage unit 23, a header object download unit 51, a header object analysis unit 52, a communication control unit 24, a ROM 53, a RAM 54, CPU55.
[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 host object 4 includes a header object storage unit 41 and a program code upload unit 42 and the target device 5 includes a header. The object download unit 51, header object analysis unit 52, ROM 53, RAM 54, and CPU 55 are different.
In the following, the fifth embodiment will be described focusing on the differences from the first embodiment.
[0099]
In the host device 4, the header object storage unit 41 stores a header object 411 that gives information on the host device 4. The header object 411 corresponds to <specific example 2> according to information on the type of virtual machine of the host device 4 (FIG. 23A) when corresponding to <specific example 1> of the first embodiment. In this case, the information is configured by information on the device specifications of the host device 4 and information on user preferences (FIG. 23B).
[0100]
When the host device 4 and the target device 5 are connected via the communication line 3 and can communicate with each other, the CPU 55 and the control unit 21 of the target device 5 give a predetermined instruction regarding the download, and the header object download unit 51. And the header object analysis unit 52 execute the following processing.
[0101]
First, the header object download unit 51 downloads the header object 411 stored in the header object storage unit 41 of the host device 4 to the RAM 54 through the communication control unit 15, the communication line 3, and the communication control unit 24. The header object analysis unit 52 reads the header object 411 downloaded by the header object download unit 51. Then, the header object analysis unit 52 analyzes the information included in the header object 411 and the header object 221 stored in the program code management unit 22, and determines an optimal program code to be uploaded by the host device 4. This determination is performed when the downloaded header object 411 includes information on the virtual machine, and the matching with the header object 221 is determined. When the information on the device specification and the user preference is included, the above determination is made. The determinations according to the flowcharts of FIGS. 11 and 12 can be made respectively. Then, the header object analysis unit 52 transmits the determined optimal program code from the program code storage unit 23 to the host device 4 through the communication control unit 24, the communication line 3, and the communication control unit 15.
[0102]
In the host device 4, the program code upload unit 42 uploads an optimal program code transmitted from the target device 5 through the communication control unit 24, the communication line 3, and the communication control unit 15 under the instruction of the CPU 18 and the control unit 14. Then, it is stored in the ROM 16.
[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 claim 1, for 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.
  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のメモリ領域に格納可能なプログラムコードの中から最大のデータ容量を有するプログラムコードを決定する情報解析部と、
前記情報解析部で決定されたプログラムコードを、前記ターゲット機器から読み出して前記第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のメモリ領域の残量を含む機器情報を管理する情報管理部と、
前記ターゲット機器から通知されたプログラムコードを、前記ターゲット機器から読み出して前記第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 .
JP2003088486A 2002-04-04 2003-03-27 Host device, target device, program executed on host device or target device, and device control system Expired - Fee Related JP4458762B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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