JP4908902B2 - 通信装置、システム、プログラムインストール方法及びプログラム - Google Patents

通信装置、システム、プログラムインストール方法及びプログラム Download PDF

Info

Publication number
JP4908902B2
JP4908902B2 JP2006108805A JP2006108805A JP4908902B2 JP 4908902 B2 JP4908902 B2 JP 4908902B2 JP 2006108805 A JP2006108805 A JP 2006108805A JP 2006108805 A JP2006108805 A JP 2006108805A JP 4908902 B2 JP4908902 B2 JP 4908902B2
Authority
JP
Japan
Prior art keywords
program
communication device
function
television
installation
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
JP2006108805A
Other languages
English (en)
Other versions
JP2007280275A (ja
JP2007280275A5 (ja
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006108805A priority Critical patent/JP4908902B2/ja
Priority to US11/696,098 priority patent/US20070277171A1/en
Publication of JP2007280275A publication Critical patent/JP2007280275A/ja
Publication of JP2007280275A5 publication Critical patent/JP2007280275A5/ja
Application granted granted Critical
Publication of JP4908902B2 publication Critical patent/JP4908902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、通信装置、システム、プログラムインストール方法及びプログラムに関する。
従来から、ある装置(Aとする)に対して、ある装置(Bとする)が接続されたとき、接続された相手装置Bの種別や機能に応じて、適切なソフトウエア、プログラム、若しくはドライバが装置Aに自動的にインストールされるというシステムが知られている。
プラグアンドプレイ機器として知られるものは、そのようなものの一例である。
また、特許文献1によると、周辺機器が情報処理装置に接続されたとき、自動的にその組み合わせで動作するソフトウエアをインストール、或いは更新できる。
特開2000−330920号公報
しかしながら、上述した従来の技術には、以下のような課題が存在する。
即ち、所謂コンピュータだけでなく、組込み機器においてもソフトウエアのインストール或いは更新が一般的となった現在、出荷後の機能増強が当然のようになっている。そして、PCを介さず、組込み機器同士を接続して、サービス或いは機能を提供することも一般的である。すると、ある装置Aに接続される、ある装置Bが機能増強されたとして、その機能増強分に対して、装置Aのソフトウエアは対応していないということがある。また、ある装置Bのバグ修正や、機能の追加に対して、装置Aのソフトウエアが対応していないこともある。
本発明は前記の問題点に鑑みなされたもので、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることを目的とする。
そこで、前記問題を解決するため、本発明の通信装置は、接続された他の通信装置から機能の実行要求を受け付ける受付手段と、前記受付手段で前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別手段と、前記識別手段において識別された機能に対応するプログラムを取得する第一の取得手段と、前記第一の取得手段によって取得されたプログラムをインストールするインストール手段と、前記インストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記他の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記他の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得手段と、前記第二の取得手段によって取得されたプログラムを前記他の通信装置に送信する送信手段と、を有することを特徴とする。
係る構成とすることにより、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることができる。
また、前記問題を解決するため、本発明は、システム、プログラムインストール方法、プログラムとしてもよい。
本発明によれば、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることができる。
以下、本発明の実施形態について図面に基づいて説明する。
(実施形態1)
図1は、プログラムインストールシステムの構成の一例を示すブロック図である。図1において、101はテレビ、102はカメラ、103はサーバ、104はプリンタ、105はネットワークである。
テレビ101及びカメラ102は外部からプログラムをインストールし、実行することができる。そのような意味では、両者ともコンピュータでもよいが、本実施形態では、テレビ101及びカメラ102を用いて説明を行なう。
サーバ103は、テレビ101用のプログラムと、カメラ102用のプログラムとをメモリ等に格納している。なお、両プログラムはテレビ101が、テレビ101のメモリ等に格納していてもよい。
ネットワーク105は、テレビ101、カメラ102、サーバ103及びプリンタ104を連結する。ネットワーク105は、イーサネット(登録商標)のような有線手段でもよいし、無線手段であってもよい。ネットワーク105は、テレビ101、カメラ102、サーバ103及びプリンタ104を論理的に接続し、データ通信ができさえすれば何であってもよい。
なお、テレビ101と、カメラ102との間をつなぐには、ネットワーク105によらず、直接接続してもよい。直接接続する手段として、USB(Universal Serial Bus)インタフェース、IEEE1394インタフェース等、これも様々な手段が考えられるが、論理的な接続が確保されていればよい。
次に、テレビ101の内部構成を図2のブロック図を用いて説明する。図2は、テレビ101の内部構造の一例を示す図である。
図2において、テレビ101は、装置全体を制御する中央処理装置(以下、CPUという)201と、各種動作プログラムを読み取り可能に格納したROM202と、プログラム動作中の一時的な値の保存に用いるRAM203と、を含む。また、テレビ101は、各種時間を計測するタイマ204と、テレビ画像及び各種設定メニュー等を、GUI部品を用いて表示するディスプレイ205と、外部装置と接続するためのUSB I/F206と、外部装置と接続するための無線I/F207と、を含む。
また、テレビ101は、各種操作ボタン208と、各種設定データファイルを保存する不揮発性メモリであるFlashROM209と、外部装置と接続するネットワークI/F210とを含む。また、テレビ101は、各種動作プログラム及び設定データファイルを保存しておくハードディスク(以下、HDという)211を含む。また、テレビ101は、音声出力を行うスピーカ212と、CD−ROMメディアからプログラム及びデータを読み出すCD−ROMドライブ213と、を含む。
図2は、テレビ101の内部構成を示す図であるが、図2に挙げたような構成要素は一般的なコンピュータにも見られるものである。カメラ102、サーバ103、プリンタ104についても、各々、その装置に特徴的な構成要素は持っているものの、図2に挙げた構成要素を同様に備えている。類似しているので、各々の装置の内部構成を示す図は省略する。
次に、テレビ101、カメラ102及びサーバ103におけるプログラムインストール手順について、図3及び図4のフローチャートを用いて説明する。図3は、プログラムインストール処理の一例を示すフローチャート(その1)である。図4は、プログラムインストール処理の一例を示すフローチャート(その2)である。
図3において、手順500は、カメラ102の動作手順である。また、手順520は、テレビ101の動作手順である。また、手順550は、サーバ103の動作手順である。なお、動作手順の制御の主体は、特に断らない限り、各装置のCPU201である。
まず、カメラ102は、テレビ101と接続される(ステップS501)。接続形態は、ネットワーク105を介して接続されてもよいし、直接接続されてもよい。テレビ101は、カメラ102との接続を検知する(ステップS521)。
接続時、カメラ102は、自装置の装置情報をテレビ101に送信する(ステップS502)。装置情報には、カメラ102の機種情報、カメラ102を特定するためのID及び動作プログラムのバージョン番号が含まれる。テレビ101は、装置情報を受信する(ステップS522)。
テレビ101は、受信した装置情報に基づいて、現在実行しているプログラムが、接続してきたカメラ102に対応しているかどうかを判定する(ステップS523)。テレビ101は、対応装置リストに基づいて判定を行う。対応装置リストの例を図5に示す。図5は、対応装置リストの一例を示す図である。
図5の対応装置リスト301は、テレビ101に現在インストールされているバージョンのプログラムがどのカメラ102、或いはどのプリンタ104に対応しているかを示すリストである。図5は、テレビ101に現在インストールされているバージョンのプログラムは、カメラ102については、機種1と、機種2と、に対応しており、機種3には未対応であることを示している。また、図5は、テレビ101に現在インストールされているバージョンのプログラムは、機種1についてはカメラ102のプログラムがVer.2以前のものに対して対応し、機種2については全てのバージョンに対して対応していることを示している。
将来、機種2について機能増強があり得るなら全てのバージョンについて対応しているとは言えなくなるが、既に生産中止になっている等の理由によりバージョンアップの機会がないなら、全てのバージョンに対応していると言ってよい。また、Ver.XXX以降という指定もあり得る。これは、その機種についてはバージョンアップの機会がない、且つ、Ver.XXX以前は仕様が古いためサポートしていないという場合である。以上は、プリンタ104についても同様である。
ここで述べているプログラムのバージョン番号とは、その装置の動作プログラム全体のバージョン番号を指している。従って、テレビ101が接続中のカメラ102に対応しているということは、テレビ101の動作プログラムが、カメラ102がテレビ101に対して要求する機能の全てに対応しているということである。
ステップS523において、テレビ101は、テレビ101のプログラムがカメラ102に対応していないと判定すると、対応しているプログラムをCD−ROMドライブ213からインストールできるかどうかを調べる(ステップS524)。
テレビ101は、プログラムを格納したCD−ROMメディアがCD−ROMドライブ213に入っており、プログラムのバージョン番号が示す対応装置リスト301が、接続中のカメラ102に対応していることを示していると、インストールできると判定する。なお、この場合、プログラムのバージョン番号毎に、対応装置リスト301が複数存在する。これらの対応装置リスト301は、RAM203に格納されていてもよいし、或いは、前記CD−ROMメディアにプログラムと共に格納されていてもよい。
ステップS524において、インストールできると判定すると、テレビ101は、前記CD−ROMメディアからカメラ102に対応しているプログラムを取得する(ステップS527)。テレビ101は、単に接続中のカメラ102に対応しているだけでなく、できるだけ最新のプログラムを選択し、取得する。バグ修正や、他の機種のカメラ102が接続されたときの場合を考慮すると、このような動作は有効である。
なお、対応プログラムはCD−ROMメディアに格納されていて、テレビ101は、CD−ROMメディアから対応プログラムを取得するよう説明したが、これは、格納場所をCD−ROMメディアに限定するものではない。格納場所としてのメディアは一般的な記憶媒体を使用してもよい。
プログラムを取得した後、テレビ101は、取得したプログラムをインストールする(ステップS530)。また、テレビ101は、RAM203中の自装置用の対応装置リスト301を、インストールしたプログラムのバージョン番号に対応する対応装置リスト301で置き換える。
次に、テレビ101は、カメラ102用の対応装置リストをRAM203内に持っているかどうかを判定する(ステップS531)。図6は、カメラ102用の対応装置リストの一例を示す図である。
図6に示すカメラ102用の対応装置リスト400は、図5に示したテレビ101自身の対応装置リスト301と異なり、カメラ102の機種及びバージョン毎に用意された対応装置リスト402と、アドレステーブル401と、からなる。このような構成は、複数のカメラ102の機種及びバージョンに対応するためである。なお、アドレステーブル401では、カメラ102の機種及びバージョンと、対応装置リスト402へのアドレスとを関連付けている。
ステップS531において、テレビ101は、対応装置リスト400を持っていると判定すると、カメラ102の装置情報と、対応装置リスト400とに基づいて、カメラ102に対してプログラムをインストールすべきかどうかを判定する(ステップS532)。
テレビ101は、カメラ102の装置情報に含まれる、機種情報及びプログラムのバージョン番号(情報)に対応する、対応装置リスト402を参照する。そして、テレビ101は、この対応装置リスト402中の対応するテレビの欄に示される機種情報及びプログラムのバージョン番号の条件をテレビ101が満たしているか否かを判定する。前記条件をテレビ101が満たしていなければ、テレビ101は、動作プログラム(インストールされているプログラム)は、前記バージョン番号のプログラムより新しい、つまり、更新されていると判定する。そして、テレビ101は、更新された機能にカメラ102側を対応させるため、カメラ102用のプログラムをカメラ102に対してインストールすべきであると判定する。
ここで、ステップS532の判定時に用いられるテレビ101のプログラムのバージョン番号としては、ステップS530でプログラムのインストールがあった場合は、このインストールされたプログラムのバージョン番号が用いられる。
ステップS532において、カメラ102に対してプログラムをインストールすべきであると判定すると、テレビ101は、カメラ102用のプログラムをCD−ROMドライブ213からインストールできるかどうかを調べる(ステップS533)。ステップS533の処理は、ステップS524の処理と同様である。
インストールできると判定すると、テレビ101は、CD−ROMメディアからカメラ102用のプログラムを取得する(図4のステップS604)。続いて、テレビ101は、カメラ102に対して「プログラムインストール有り」メッセージを通知(送信)する(ステップS605)。
カメラ102は、「プログラムインストール有り」メッセージを受け取ると(ステップS601においてY)、ステップS602に進む。
テレビ101は、ステップS604において取得したプログラムをカメラ102に送信する(ステップS606)。テレビ101は、プログラムをカメラ102に送信する際に、送信するプログラムのバージョン番号も送信する。この情報は、次回接続時のステップS502の装置情報送信時に用いられる。
カメラ102は、テレビ101より送信されたプログラム及びプログラムのバージョン番号を受信する(ステップS602)。カメラ102は、プログラムと同時に送られたプログラムのバージョン番号をメモリ等に記憶する。続いて、カメラ102は、前記プログラムをインストールする(ステップS603)。そして、カメラ102は、処理を終了する。
この後、図示していないが、プログラムがインストールされた場合、テレビ101、カメラ102の各々で、インストールしたプログラムを起動する。このようにすることによって、インストールされたプログラムが提供する、何らかのサービス或いは機能の実行を行うことができる。
ステップS523において、テレビ101は、テレビ101のプログラムがカメラ102に対応していると判定すると、新たなプログラムをインストールせず、ステップS531に進む。
また、ステップS532において、テレビ101は、カメラ102にもプログラムをインストールすべきとは言えないと判定すると、カメラ102に対し「プログラムインストール無し」メッセージを通知する(ステップS534)。
カメラ102は、「プログラムインストール無し」メッセージを受け取ると(ステップS601においてN)、プログラムをインストールすること無く、処理を終了する。
次に、テレビ101等が、サーバ103からプログラムを取得し、インストールする手順について、図3及び図4のフローチャートを用いて説明する。
ステップS524において、テレビ101は、テレビ101用のプログラムをCD−ROMドライブ213からインストールすることはできないと判定すると、サーバ103に対しテレビ101の装置情報を送信する(ステップS526)。装置情報には、テレビ101の機種情報、テレビ101を特定するためのID、及び動作プログラムのバージョン番号が含まれる。サーバ103は、前記装置情報を受信する(ステップS551)。
サーバ103は、受信した装置情報に基づいて、テレビ101にインストールすべきプログラムは有るかどうかを判定する(ステップS552)。この判定処理は、ステップS532において、テレビ101がカメラ102に対してインストールすべきプログラムは有るかどうかを判定したのと同様である。つまり、サーバ103は、カメラ102に関する対応装置リスト400と同様な構成で、テレビ101に関する対応装置リスト(図示せず)をメモリ等に有しており、この対応装置リスト等に基づいて判定を行なう。
ステップS552において、サーバ103は、テレビ101にインストールすべきプログラムが有ると判定すると、「プログラムインストール有り」メッセージを、テレビ101に通知する(ステップS553)。
テレビ101は、「プログラムインストール有り」メッセージを受け取ると(ステップS528においてY)、ステップS529に進む。
続いて、サーバ103は、テレビ101に対して、プログラムを送信する(ステップS554)。サーバ103は、プログラムをテレビ101に送信する際に、送信するプログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト301も送信する。
テレビ101は、サーバ103より送信されたプログラム、プログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト301を受信する(ステップS529)。続いて、テレビ101は、受信したプログラムをインストールする(ステップS530)。また、テレビ101は、バージョン番号を受け取ったバージョン番号にセットし、対応装置リスト301を受け取った対応装置リスト301で更新する。
ステップS552において、サーバ103は、テレビ101にインストールすべきプログラムは無いと判定すると、テレビ101に対して、「プログラムインストール無し」メッセージを通知する。
テレビ101は、「プログラムインストール無し」メッセージを受け取ると(S528においてN)、プログラムをインストールすることなく、ステップS531に進む。
ステップS531において、カメラ102用の対応装置リストをRAM203内に持っていないと判定すると、テレビ101は、ステップS607に進む。また、ステップS533において、カメラ102用のプログラムをCD−ROMドライブ213からインストールできないと判定すると、テレビ101は、ステップS607に進む。
テレビ101は、サーバ103に対しカメラ102の装置情報を送信する(ステップS607)。サーバ103は、テレビ101より、カメラ102の装置情報を受信する(ステップS613)。
サーバ103は、受信したカメラ102の装置情報と、対応装置リスト400とに基づいて、カメラ102にインストールすべきプログラムが有るかどうかを判定する(ステップS614)。なお、サーバ103は、対応装置リスト400をメモリ等に保持しているものとする。
インストールすべきプログラムが有ると判定すると、サーバ103は、「プログラムインストール有り」メッセージをテレビ101に通知する(ステップS615)。テレビ101は、「プログラムインストール有り」メッセージを受け取ると(ステップS608においてY)、ステップS609に進む。
続いて、サーバ103は、テレビ101に対して、カメラ102用のプログラムを送信する(ステップS616)。サーバ103は、カメラ102用のプログラムをテレビ101に送信する際に、送信するプログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト400も送信する。
テレビ101は、サーバ103より送信されたプログラム、プログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト400を受信する(ステップS609)。ここで受け取った対応装置リスト400は、次回カメラ102がテレビ101に接続された時のステップS531の処理で用いられる。なお、ステップS531における判定で、常に、カメラ102用の対応装置リストを持っていない場合のフローチャート、つまり、ステップS607に進んでも構わなければ、ステップS615において、サーバ103は、対応装置リスト400を送る必要はない。
テレビ101は、カメラ102に対して「プログラムインストール有り」メッセージを通知する(ステップS611)。また、テレビ101は、サーバ103より受信したカメラ102用のプログラムを、カメラ102に送信する(ステップS612)。テレビ101は、カメラ102用のプログラムをカメラ102に送信する際に、送信するプログラムのバージョン番号も送信する。
ステップS614において、サーバ103は、カメラ102に対しインストールすべきプログラムはないと判定すると、テレビ101に対して、「プログラムインストール無し」メッセージを通知する(ステップS617)。テレビ101は、サーバ103より、「プログラムインストール無し」メッセージを受け取ると、ステップS610に進み、カメラ102に対して「プログラムインストール無し」メッセージを通知する(ステップS610)。
図3及び図4を用いた説明では、カメラ102用のプログラムをテレビ101が備えていれば、カメラ102用のプログラムを、テレビ101がカメラ102に直接送信した。また、カメラ102用のプログラムをテレビ101が備えていなければ、テレビ101が、サーバ103に対してカメラ102用のプログラムの有無を問い合わせた。そして、サーバ103に、カメラ102用のプログラムが有れば、サーバ103からカメラ102用のプログラムを送ってもらった。しかしながら、必ずこのような構成としなければならない訳ではない。
テレビ101がカメラ102に対しプログラムを供給する手順、或いは、サーバ103がテレビ101を通じてカメラ102に対しプログラムを供給する手順の一方だけを提供するようにしてもよい。その場合には、図3及び図4において不必要な判定及び処理は省略される。
(実施形態2)
次に、所定の機能の起動時、その機能がサポートされていなければ、機能の提供を行うプログラムをインストールする動作手順について、図7及び図8のフローチャートを用いて説明する。図7は、機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート(その1)である。図8は、機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート(その2)である。
図7において、手順1000は、カメラ102の動作手順である。また、手順1020は、テレビ101の動作手順である。また、手順1050は、サーバ103の動作手順である。なお、動作手順の制御の主体は、特に断らない限り、各装置のCPU201である。
まず、カメラ102は、所定の機能を起動する(ステップS1001)。ここでは、カメラ102と、テレビ101とが既に接続されており、テレビ101と、プリンタ104とも既に接続されているとする。そして、ステップS1001では、カメラ102は、テレビ101を経由してプリンタ104までカメラ102内の画像を送信し、前記画像を印刷するという、印刷機能を起動したものとする。なお、各装置は既に接続されていると述べたが、これは説明の簡略化のためで、機能起動後に各装置を接続してもよい。
機能の起動に伴い、カメラ102は、機能の実行を要求するメッセージ(機能要求メッセージ)をテレビ101に送信する(ステップS1002)。テレビ101は、カメラ102より機能要求メッセージを受け取る(ステップS1021)。ここで、メッセージを送信するとしたが、機能要求を通知する方法は他にも数多くある。また、使用するプロトコルとしては、ハードウエア的にも、ソフトウエア的にも、独自プロトコルを使ってもよいし、標準的なプロトコルを使ってもよい。どのようなプロトコルを使うとしても、そのプロトコルの中で要求された機能の識別が可能であればよい。
例えば、独自バイナリデータフォーマットのある部分のデータを、要求機能を識別するコマンド値としてもよい。また、所謂クライアント−サーバ型のプロトコルにおいてTCP/IPプロトコルを用いるのであれば、ポート番号によって通信相手のアプリケーションを決定することもできる。この場合、アプリケーションの決定は機能の選択と捉えることができる。また、HTTPを用いて、URLを指定することによって、CGIやJava(登録商標)サーブレットの起動を要求するのであれば、URLが機能を識別するキーである。ここで、HTTPとは、Hyper Text Transfer Protocolの略である。また、URLとは、Uniform Resource Locatorの略である。また、CGIとは、Common Gateway Interfaceの略である。
なお、本実施形態では、機能とは、接続された双方の装置において何らかのプログラムを実行することによって提供される「働き」と定義する。つまり、上述した実施形態において、機能要求と書いたが、テレビ101だけのプログラム実行をもって機能が提供され訳ではない。機能の選択、起動要求、或いはパラメータ指定等、カメラ102側の関与もある。ある機能を実行しようとするとき、その機能に関するプログラム(以下、機能プログラムという)を双方が持っていて、各々そのプログラムに基づいて、CPU等が動作することによって、機能が実現される。
次に、カメラ102は、装置情報を送信する(ステップS1003)。装置情報には、カメラ102の機種情報、カメラ102を特定するためのID及びカメラ102が備える、前記要求した機能に関する機能プログラムのバージョン番号が含まれる。テレビ101は、前記装置情報を受信する(ステップS1022)。
なお、ここでは機能プログラムのバージョン番号は、装置情報に含まれるとしたが、ステップS1002の機能要求メッセージ等に前記バージョン番号を含めることができるのであれば、そうしてもよい。この場合、装置情報に前記バージョン番号を含める必要はない。
テレビ101は、要求された機能が提供できる態勢になっているかどうか、言い換えれば機能プログラムがインストールされているかどうかを判定する(ステップS1023)。
ここで、機能が提供できる態勢になっていなければ、テレビ101は、以下に述べるように機能プログラムをインストールしようとする。しかしながら、この時点で、テレビ101は、カメラ102側の機能要求を拒否することはしないものとする。上述したように、例えば、機能の指定がバイナリデータフォーマットのコマンド値であれば、そのコマンドに対する拒否応答を返すまでは、要求の拒否にはならないので、テレビ101は、機能プログラムのインストールの処理を続行する。
一方、機能の指定がポート番号指定の場合、通常、ポート番号に割り当てられたアプリケーションがなければ、その時点でテレビ101のトランスポートプロトコルレイヤがサービスの拒否をカメラ102に通知する。しかしながら、これでは、機能プログラムをインストールしてから機能の提供を行なうことができない。この問題を解決するため、本実施形態のテレビ101は、指定が予想されるポート番号に対しては予めダミーとなるアプリケーション(ダミーアプリケーション)を起動しておく。そして、トランスポートプロトコルレイヤで一旦、カメラ102からの機能要求を受け付けるようにしておく。そして、ダミーアプリケーションが、要求された機能を識別し、機能プログラムの存在を確認する。
また、機能の指定がURLの場合も同様である。本実施形態のテレビ101は、指定されたURLに対し、特定の機能プログラムが割り当てられていなければ、ダミーのCGI、又はダミーのJava(登録商標)サーブレットを起動する。そして、ダミーのCGI、又はダミーのJava(登録商標)サーブレットが、要求された機能を識別し、機能プログラムの存在を確認するようにする。
テレビ101等は、機能を識別する際に、カテゴリ若しくは詳細機能で識別する。そのために、テレビ101は、RAM203上に、図9に示す機能テーブル700を有している。図9は、機能テーブル700の一例を示す図である。
機能テーブル700は、テレビ101に現在インストールされている機能プログラムの種類と、バージョン番号とを格納する。機能及び機能プログラムは、カテゴリ701及び詳細機能703で識別される。どちらによる指定も可能であり、どちらによる指定かは、機能を指定する際のプロトコルによる。例えば「印刷機能」であれば、カテゴリ701「印刷」の機能プログラムを指定したことになる。「画像印刷プロトコル1を用いた印刷機能」であれば、詳細機能703「画像印刷プロトコル1」の機能プログラムを指定したことになる。詳細機能703が示す機能プログラムは、実際のプログラムと1対1に対応している。それに対し、カテゴリ701が示す機能プログラムは、そのカテゴリ701に属する詳細機能703の集合体を指す。
カテゴリ701の機能プログラムに対するバージョン番号がバージョン番号702である。詳細機能703の機能プログラムに対するバージョン番号がバージョン番号704である。バージョン番号702或いは704の欄が「−」であれば、その機能プログラムがインストールされていないことを示す。なお、機能テーブル700は、機能の分類の一例を示しており、他の分類方法等を用いて機能を分類し、データを格納してもよい。例えば、カテゴリ701の下に、粒度がより細かいサブカテゴリを機能テーブル700に含めるようにしてもよい。
ステップS1023において、テレビ101は、識別した機能プログラムがインストールされていると判定すると、その機能プログラムがカメラ102に対応しているかどうかを判定する(ステップS1024)。
この判定のため、機能テーブル700には、対応装置リストアドレス705が存在する。対応装置リストアドレス705には、各機能プログラムに対応する対応装置リスト301へのアドレスが格納されている。上述した実施形態では、対応装置リスト301は、テレビ101にインストールされている全体のプログラムに対応する対応装置のリストを示していた。しかしながら、本実施形態の対応装置リスト301は、各機能プログラムに対応しており、複数存在する。
テレビ101は、機能プログラムに対応する対応装置リストアドレス705が指す対応装置リスト301の内容と、受信したカメラ102の装置情報と、に基づいて、機能プログラムがカメラ102に対応しているかどうかを判定する。
ステップS1024において、テレビ101は、機能プログラムがカメラ102に対応していると判定すると、機能プログラムの更新チェックをすべきかどうかを判定する(ステップS1025)。
この判定のため、機能テーブル700には、更新チェックフラグ706が存在する。更新チェックフラグ706が「○」であれば、テレビ101は、機能プログラムの更新チェックをすべきであると判定する。一方、更新チェックフラグ706が「×」であれば、テレビ101は、機能プログラムの更新チェックをすべきでないと判定する。更新チェックフラグ706は機能プログラム毎に例えばユーザ等が任意に設定できる。
ステップS1025において、テレビ101は、更新チェックをすべきでない判定すると、要求された機能は実行可能であることを示す「機能実行可」メッセージをカメラ102に通知することで応答する(ステップS1031)。続いて、テレビ101は、要求された機能の機能プログラムを実行することで、実際に機能を提供する(ステップS1032)。そして、テレビ101は、処理を終了する。
カメラ102は、テレビ101より受け取ったメッセージが「機能実行可」か、どうかを判定する(ステップS1004)。「機能実行可」メッセージを受け取ったと判定すると、カメラ102は、起動した機能(ここでは「印刷機能」)の機能プログラムを引き続き実行する(ステップS1005)。そして、カメラ102は処理を終了する。
ステップS1023において、テレビ101は、識別した機能プログラムがインストールされていないと判定すると、ステップS1026に進む。また、ステップS1024において、テレビ101は、機能プログラムがカメラ102に対応していないと判定すると、ステップS1026に進む。また、ステップS1025において、テレビ101は、更新チェックをすべきであると判定すると、ステップS1026に進む。つまり、テレビ101は、サーバ103に対して、インストールすべきプログラムを有しているかどうかの問い合わせの処理に移行する。
なお、テレビ101は、図3のフローチャートにおいて説明したように、プログラムをCD−ROMドライブ213からインストールできるかどうかをチェックするようにしてもよい。但し、本実施形態では、説明の簡略化のため、この処理の説明は省略する。
テレビ101は、サーバ103に対して、カメラ102より要求された、テレビ101の機能についての情報(以下、テレビ機能情報という)を送信する(ステップS1026)。サーバ103は、テレビ機能情報を受信する(ステップS1051)。テレビ機能情報には、機能或いは機能プログラムを特定するためのID若しくは名前及びテレビ101の機能プログラムのバージョン番号が含まれる。テレビ101は、これらの情報を、機能テーブル700のバージョン番号702若しくは704より得る。機能プログラムがインストールされていない場合、テレビ101は、機能プログラムがインストールされていないことを示す所定のバージョン番号をサーバ103に送信する。
次に、テレビ101は、サーバ103に対し自装置に関する装置情報(以下、テレビ装置情報という)を送信する(ステップS1027)。サーバ103は、テレビ装置情報を受信する(ステップS1052)。テレビ装置情報には、テレビ101の機種情報及びテレビ101を特定するためのIDが含まれる。
次に、テレビ101は、サーバ103に対しカメラ102に関する機能情報(以下、カメラ機能情報という)を送信する(ステップS1028)。サーバ103は、カメラ機能情報を受信する(ステップS1053)。カメラ機能情報には、機能或いは機能プログラムを特定するためのID若しくは名前及びカメラ102の機能プログラムのバージョン番号が含まれる。テレビ101は、機能プログラムのバージョン番号を、例えば、ステップS1022において受信した装置情報から得る。また、テレビ101は、機能を特定するためのID若しくは名前を、例えば、ステップS1026において送信したテレビ機能情報から得て使用してもよい。
機能のID若しくは名前が、テレビ101と、カメラ102との機能テーブル700や、後述する機能プログラムテーブル800等で共通して用いられるものであるならば、テレビ101は、ステップS1026の機能情報に含まれるものを使用することができる。こうした場合、機能のID若しくは名前を、カメラ102からテレビ101に対して送る必要がなくなる。テレビ101と、カメラ102との間で異なる機能のID若しくは名前を用いなければならないなら、図示しないが、カメラ102からテレビ101に機能のID若しくは名前の情報が送られ、ステップS1028において、その情報が用いられ、送信される。
次に、テレビ101は、サーバ103に対しカメラ102に関する装置情報(以下、カメラ装置情報という)を送信する(ステップS1033)。サーバ103は、カメラ装置情報を受信する(ステップS1057)。カメラ装置情報には、カメラ102の機種情報及びカメラ102を特定するためのIDが含まれる。
次に、サーバ103は、テレビ装置情報及びテレビ機能情報等に基づいて、テレビ101にインストールすべきプログラムが有るかどうかを判定する(ステップS1054)。この処理を行うために、サーバ103は、RAM203内に図10で示される機能プログラムテーブル800を備える。図10は、機能プログラムテーブル800の一例を示す図である。
機能プログラムテーブル800は、テレビ101用の機能プログラムに関するテーブルであり、各機能プログラムにつき、以下の情報を格納する。つまり、機能プログラムテーブル800は、機能プログラムの名称を表すプログラム名801(機能プログラムのIDでもよい)、カテゴリ802、サブカテゴリ803、機能プログラムのサーバ103内の格納場所を示す格納場所804、に関する情報を格納する。また、機能プログラムテーブル800は、機能プログラムの集合体であることを示す複合フラグ805、バージョン番号806、に関する情報を格納する。また、機能プログラムテーブル800は、機能プログラムがテレビ101に対応しているか否かを示す対応テレビ装置リストへのアドレスを指す対応テレビ装置リストアドレス807、に関する情報を格納する。また、機能プログラムテーブル800は、機能プログラムが、接続された装置が持つ対応する機能プログラムのどのバージョンに対応しているかを示す対応装置リストへのアドレスを指す対応装置リストアドレス808に関する情報を格納する。ここで、前記対応装置リストのフォーマットは、対応装置リスト301と同様である。
対応テレビ装置リスト(図示せず)には、機能プログラムが動作可能なテレビ101の機種のリストが含まれる。このリストには、機能プログラムがその環境で動作可能な、テレビ101の全体プログラムのバージョン番号が含まれていてもよい。
機能プログラムテーブル800に対する機能プログラムの指定は詳細機能レベルでもよいし、カテゴリレベルでもよい。それは、「画像印刷プロトコル1」851と、「印刷」853と、が同一レベルで機能プログラムテーブル800に格納されているためである。
ステップS1054において、サーバ103は、テレビ101に機能プログラムがインストールされていないのに、サーバ103には機能プログラムが存在する場合、インストールすべきプログラムが有ると判定する。また、ステップS1054において、サーバ103は、テレビ101に機能プログラムがインストールされているが、そのバージョンよりも新しいバージョンがサーバ103に存在する場合、インストールすべきプログラムが有ると判定する。どちらの場合もテレビ装置情報が、対応テレビ装置リストアドレス807が指す対応テレビ装置リストの示す条件を満たし、カメラ装置情報及びカメラ機能情報が、対応装置リストアドレス808が指す対応装置リストの示す条件を満たしていなければならない。
ステップS1054において、サーバ103は、インストールすべきプログラムが有ると判定すると、テレビ101に対して、「プログラムインストール有り」メッセージを通知する(ステップS1055)。テレビ101は、「プログラムインストール有り」メッセージを受けると、ステップS1030に進む。
続いて、サーバ103は、格納場所804が指す場所から機能プログラムを取得し、テレビ101に対して、取得した機能プログラムを送信する(ステップS1056)。
複合フラグ805が「○」の場合、機能プログラムは、複数のプログラムからなっている。この場合、格納場所804は、格納場所を指すのではなく、図11に示す複合プログラムテーブル900を指すようになっている。図11は、複合プログラムテーブル900の一例を示す図である。なお、図11では、印刷プログラムVer.1.5に含まれる機能プログラムについてのテーブルの例を示している。
サーバ103は、複合プログラムテーブル900から各機能プログラムの格納場所を知ることができ、複数のプログラムを取得し、テレビ101に送信できる。
なお、サーバ103は、機能プログラムをテレビ101に送信する際に、送信する機能プログラムのバージョン番号も送信する。必要に応じて、サーバ103は、機能プログラムをテレビ101に送信する際に、送信する機能プログラムのバージョン番号に対応する対応装置リスト301を送信してもよい。
テレビ101は、サーバ103より送信された機能プログラム、及び機能プログラムのバージョン番号を受信する(ステップS1030)。なお、テレビ101は、必要に応じて、サーバ103より送信された機能プログラムのバージョン番号に対応する対応装置リスト301も受信する。続いて、テレビ101は、受信した機能プログラムをインストールする(図8のステップS1106)。
ステップS1054において、サーバ103は、テレビ101に対しインストールすべきプログラムは無いと判定すると、テレビ101に対し「プログラムインストール無し」メッセージを通知する(ステップS1113)。
テレビ101は、「プログラムインストール無し」メッセージを受け取ると、ステップS1107に進む。
サーバ103は、機能プログラムの送信を行った後、カメラ102に対してインストールすべきプログラムは有るかどうかを判定する(ステップS1114)。
機能プログラムテーブル800は、テレビ101用の機能プログラムに関するテーブルだが、サーバ103は、このテーブルと同様なカメラ102用の機能プログラムテーブルをRAM203に記憶している。サーバ103は、このテーブルを用いて、ステップS1054と同様に、カメラ102に対しインストールすべきプログラムは有るかどうかを判定する。
即ち、カメラ102に機能プログラムがインストールされていないのに、サーバ103に機能プログラムが存在する場合、サーバ103は、ステップS1114において、カメラ102に対してインストールすべきプログラムが有ると判定する。又は、カメラ102にインストールされている機能プログラムより新しいバージョンの機能プログラムがサーバ103に存在する場合、サーバ103は、ステップS1114において、カメラ102に対してインストールすべきプログラムが有ると判定する。
当然どちらの場合もカメラ102の装置情報が、対応カメラ装置リストアドレスが指す対応カメラ装置リストの示す条件を満たし、且つ、カメラ102の装置情報が、対応装置リストアドレス808が指す対応装置リストの示す条件を満たしていなければならない。なお、ここで、対応カメラ装置リストは、図示していないが、対応テレビ装置リストアドレス807に対応する対応装置リストである。
対応カメラ装置リストは、カメラ102の機種情報と、機能プログラムのバージョン番号とに対応する装置のリストである。対応カメラ装置リストには、カメラ102と連携動作が可能な相手装置(ここではテレビ101)の機種情報と、機能プログラムのバージョン番号とについての条件が記述されている。ステップS1114における判定の際に用いられるテレビ101の機能プログラムのバージョン番号は、ステップS1106において、機能プログラムのインストールがあった場合は、その機能プログラムのバージョン番号が用いられる。
カメラ102が機能を起動しようとしたときに、カメラ102に、前記機能を使用するための機能プログラムがインストールされていないということはあり得る。ステップS1056及びステップS1030等でサーバ103より送信された機能プログラムがテレビ101にインストールされたとする。そして、前記機能プログラム(又は機能)を使用するための、カメラ102向けの機能プログラムがサーバ103等に用意されているとする。このとき、前記機能プログラムは、まだカメラ102にインストールされていないので、この機能プログラムをカメラ102にインストールする必要がある。
カメラ102にインストールする機能プログラムが存在する場合、サーバ103は、テレビ101に対して「プログラムインストール有り」メッセージを通知する(ステップS1115)。インストールする機能プログラムが存在しない場合、サーバ103は、テレビ101に対して「プログラムインストール無し」メッセージを通知する(ステップS1117)。
「プログラムインストール有り」メッセージが通知されると、テレビ101は、ステップS1108に進む。「プログラムインストール無し」メッセージが通知されると、テレビ101は、ステップS1112に進み、カメラ102に対し「プログラムインストール無し」メッセージを通知する(ステップS1112)。
ステップS1115の処理に続いて、サーバ103は、テレビ101に対してカメラ102用の機能プログラムを送信する(ステップS1116)。なお、サーバ103は、機能プログラムをテレビ101に送信する際に、送信する機能プログラムのバージョン番号も送信する。必要に応じて、サーバ103は、機能プログラムをテレビ101に送信する際に、送信する機能プログラムのバージョン番号に対応する対応装置リスト301を送信してもよい。
テレビ101は、サーバ103より送信された機能プログラム、及び機能プログラムのバージョン番号を受信する(ステップS1108)。
続いて、テレビ101は、カメラ102に対し「プログラムインストール有り」メッセージを通知する(ステップS1109)。このメッセージが通知されると、カメラ102は、ステップS1102に進む。
ステップS1109の処理に続いて、テレビ101は、カメラ102に対して機能プログラムを送信する(ステップS1110)。カメラ102は、機能プログラムを受信する(ステップS1102)。
テレビ101は、ステップS1106において、自装置に機能プログラムをインストールしたかどうかを判定する(ステップS1118)。
テレビ101は、インストールしたと判定すると、インストールした機能(ここでは印刷機能)を再起動すべく、インストールした機能プログラムを再起動する(ステップS1119)。テレビ101は、インストールしていないと判定すると、ステップS1119の処理をスキップする。
最後に、テレビ101は、機能を実行する(ステップS1111)。そして、テレビ101は、処理を終了する。
カメラ102は、受信した機能プログラムをインストールする(ステップS1103)。続いて、カメラ102は、インストールした機能(ここでは印刷機能)を再起動すべく、その機能プログラムを再起動する(ステップS1104)。
最後に、カメラ102は、機能を実行する(ステップS1105)。そして、カメラ102は、処理を終了する。
ステップS1101において、「プログラムインストール有り」メッセージが通知されなかった場合、カメラ102は、機能プログラムをインストールすることなく、ステップS1105に移る。
次に、プログラムをインストール、アンインストールする動作手順について、以下に示すフローチャートを用いて説明する。
図12は、プログラムをインストールするときのインストール手順の一例を示すフローチャートである。図12に示すフローチャートはテレビ101或いはカメラ102の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ101を用いて説明を行なう。
プログラムをインストールするとき、テレビ101は、そのインストールが永続的なインストールかどうかを問い合わせるダイアログをディスプレイ205に表示する(ステップS1201)。
ユーザは操作ボタン208を使用して、ダイアログに応答する。ダイアログの応答結果に基づいて、テレビ101は、永続的なインストールか否かを判定する。テレビ101は、永続的なインストールであると判定すると(ステップS1202においてY)、ステップS1203に進む。テレビ101は、永続的なインストールでないと判定すると(ステップS1202においてN)、ステップS1206に進む。
ステップS1203において、テレビ101は、プログラムに関する永続インストールリスト(永続インストールであると登録された装置のリスト)の装置登録個数が所定の最大数を超えたかどうかを判定する(ステップS1203)。
テレビ101は、最大数を超えていないと判定すると(ステップS1203においてN)、接続されている相手装置を永続インストールリストに登録する(ステップS1204)。一方、テレビ101は、最大数を超えていたと判定すると(ステップS1203においてY)、その旨を表示する(ステップS1205)。
最後に、テレビ101は、インストールを行ったプログラムのリストであるインストールリストにプログラムを登録する(ステップS1206)。そして、テレビ101は、図12に示す処理を終了する。なお、テレビ101は、プログラムをインストールするステップ(又は処理)も当然実行するが、図12では省略している。
次に、接続解除手順1について、図13のフローチャートを用いて説明する。図13は、接続解除手順1の一例を示すフローチャートである。図13に示すフローチャートはテレビ101或いはカメラ102の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ101を用いて説明を行なう。
装置同士の接続が解除されたとき、テレビ101は、インストールリストを見て、インストールされたプログラムで以下の処理が未処理のプログラムが残っているかどうかを判定する(ステップS1301)。
テレビ101は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていないと判定すると(ステップS1301においてN)、図13に示す処理を終了する。テレビ101は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていると判定すると(ステップS1301においてY)、S1302に進む。
ステップS1302において、テレビ101は、処理対象となるプログラムをインストールリストから取得する(ステップS1302)。続いて、テレビ101は、取得したプログラムに関して接続解除する相手装置は永続インストールリストに登録されているかどうかを判定する(ステップS1303)。
テレビ101は、登録されていないと判定すると(S1303においてN)、ステップS1304に進む。ステップS1304において、テレビ101は、処理対象となるプログラムをアンインストールする。一方、テレビ101は、登録されていると判定すると、(S1303においてY)、次のプログラムへの処理に移るべく、ステップS1301に戻る。
次に、装置登録変更手順について、図14のフローチャートを用いて説明する。図14は、装置登録変更手順の一例を示すフローチャートである。図14に示すフローチャートはテレビ101或いはカメラ102の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ101を用いて説明を行なう。
まず、登録を変更しようとするプログラムをダイアログ等の所定のユーザインタフェースを用いてユーザが選択すると、テレビ101は、ユーザが選択したプログラムを識別する情報を取得する(ステップS1401)。
テレビ101は、前記情報に基づいて、ユーザが選択したプログラムに関する永続インストールリストの内容を表示する(ステップS1402)。
次に、ユーザが処理方法を選択すると、テレビ101は、ユーザが選択した処理方法を識別する情報を取得する。そして、テレビ101は、前記情報に基づいて、ユーザが選択した処理が、装置の登録かどうかを判定する(ステップS1403)。
テレビ101は、ユーザが選択した処理が、装置の登録であると判定すると(ステップS1403においてY)、ステップS1404に進む。一方、テレビ101は、ユーザが選択した処理が、装置の登録でないと判定すると(ステップS1403においてN)、ステップS1408に進む。ここで、テレビ101は、ユーザが選択した処理が、装置の登録でないと判定すると装置の登録削除であると判断する。
ステップS1404において、テレビ101は、永続インストールリストの装置登録個数が最大数を超えたかどうかを判定する(ステップS1404)。テレビ101は、永続インストールリストの装置登録個数が最大数を超えたと判定すると(ステップS1404においてY)、ステップS1407に進む。一方、テレビ101は、永続インストールリストの装置登録個数が最大数を超えていないと判定すると(ステップS1404においてN)、ステップS1405に進む。
ステップS1405において、ユーザが、登録しようとする装置(登録装置)を選択すると、テレビ101は、ユーザが選択した登録装置を識別する情報を取得する。ユーザは、現在接続中の装置の中から登録装置を選択してもよいし、過去接続したことがある装置をテレビ101が記憶しておいて、その中から登録装置を選択するようにしてもよい。
ステップS1406において、テレビ101は、前記情報に基づいて、ユーザによって選択された装置を永続インストールリストに登録する(ステップS1406)。そして、テレビ101は、図14に示す処理を終了する。
一方、ステップS1407において、テレビ101は、永続インストールリストの装置登録個数が最大数を超えている旨を表示する。そして、テレビ101は、図14に示す処理を終了する。
ステップS1408において、テレビ101は、ユーザが選択した、永続インストールリストの中から登録を削除する装置を識別する情報を取得する。続いて、ステップS1409において、テレビ101は、前記情報に基づいて、ユーザによって選択された装置を永続インストールリストから削除する。そして、テレビ101は、図14に示す処理を終了する。
次に、接続解除手順2について、図15のフローチャートを用いて説明する。図15は、接続解除手順2の一例を示すフローチャートである。図15に示すフローチャートはテレビ101或いはカメラ102の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ101を用いて説明を行なう。
図12及び図13に示した手順では、インストール時に永続インストールかどうかを判断し、決定していたが、図15の手順では、接続解除時に永続インストールかどうかを判断し、決定している。
なお、図15の手順の場合も、インストール手順ステップS1206において説明したインストールリストへのプログラム登録はなされているものとする。
装置同士の接続が解除されたとき、テレビ101は、インストールリストを見て、インストールされたプログラムで以下の処理が未処理のプログラムが残っているかどうかを判定する(ステップS1501)。
テレビ101は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていないと判定すると(ステップS1501においてN)、図15に示す処理を終了する。テレビ101は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていると判定すると(ステップS1501においてY)、S1502に進む。
ステップS1502において、テレビ101は、処理対象となるプログラムをインストールリストから取得する。続いて、テレビ101は、前記プログラムに関して、接続解除する相手装置は永続インストールリストに登録されているかどうかを判定する(ステップS1503)。テレビ101は、相手装置が永続インストールリストに登録されていると判定すると(ステップS1503においてY)、ステップS1501に戻る。一方、テレビ101は、相手装置が永続インストールリストに登録されていないと判定すると(ステップS1503においてN)、ステップS1504に進む。
ステップS1504において、テレビ101は、アンインストールしてよいかどうかをユーザに問い合わせるダイアログをディスプレイ205に表示する。ユーザの応答が「アンインストールする」であった場合、テレビ101は、アンインストールすると判定し、ステップS1506に進む。一方、ユーザの応答が「アンインストールしない」であった場合、テレビ101は、アンインストールしないと判定し、ステップS1507に進む。
ステップS1506において、テレビ101は、処理対象のプログラムをアンインストールし、ステップS1501に戻る。一方、ステップS1507において、テレビ101は、処理対象(処理中)のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えたかどうかを判定する。テレビ101は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えたと判定すると(ステップS1507においてY)、ステップS1508に進む。一方、テレビ101は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えていないと判定すると(ステップS1507においてN)、ステップS1509に進む。 ステップS1508において、テレビ101は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えた旨を表示し、ステップS1506に進む。
ステップS1509において、テレビ101は、接続解除しようとしていた相手装置を、処理対象のプログラムに関する永続インストールリストに登録し、ステップS1501に戻る。
上述した各実施形態は、ハードウエアを必要とするものの、それぞれの装置上で動作するプログラムにより実現可能である。従って、上述した実施形態の機能を実現するソフトウエアのプログラム、及びプログラムコードを記憶した記憶媒体においても、それを読み出して実行することにより、上述した機能、又は処理を実現することができる。
以上、上述した各実施形態によれば、接続された装置双方に対して、適切なソフトウエア(プログラム又は機能プログラム)を速やかにインストールすることができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
プログラムインストールシステムの構成の一例を示すブロック図である。 テレビ101の内部構造の一例を示す図である。 プログラムインストール処理の一例を示すフローチャート(その1)である。 プログラムインストール処理の一例を示すフローチャート(その2)である。 対応装置リストの一例を示す図である。 カメラ102用の対応装置リストの一例を示す図である。 機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート(その1)である。 機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート(その2)である。 機能テーブル700の一例を示す図である。 機能プログラムテーブル800の一例を示す図である。 複合プログラムテーブル900の一例を示す図である。 プログラムをインストールするときのインストール手順の一例を示すフローチャートである。 接続解除手順1の一例を示すフローチャートである。 装置登録変更手順の一例を示すフローチャートである。 接続解除手順2の一例を示すフローチャートである。
符号の説明
101 テレビ
102 カメラ
103 サーバ
104 プリンタ
201 CPU
203 RAM
213 CD−ROMドライブ
301 対応装置リスト
400 対応装置リスト
700 機能テーブル
800 機能プログラムテーブル
900 複合プログラムテーブル

Claims (10)

  1. 接続された他の通信装置から機能の実行要求を受け付ける受付手段と、
    前記受付手段で前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別手段と、
    前記識別手段において識別された機能に対応するプログラムを取得する第一の取得手段と、
    前記第一の取得手段によって取得されたプログラムをインストールするインストール手段と、
    前記インストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記他の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記他の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得手段と、
    前記第二の取得手段によって取得されたプログラムを前記他の通信装置に送信する送信手段と、
    を有することを特徴とする通信装置。
  2. 前記受付手段は、接続された他の通信装置から前記他の通信装置と自装置との双方において処理を実行することで提供する機能の実行要求を受け付け、
    前記インストール手段でインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行手段を更に有することを特徴とする請求項1記載の通信装置。
  3. 第一の通信装置と、第二の通信装置と、を含むシステムであって、
    前記第一の通信装置は、
    機能の実行要求を接続された前記第二の通信装置に送信する機能要求送信手段と、
    前記第一の通信装置のプログラムバージョン情報を前記第二の通信装置に送信する情報送信手段と、
    前記第二の通信装置より前記機能に係る、前記第一の通信装置にインストールすべきバージョンのプログラムを受信する受信手段と、
    前記受信手段で受信された前記プログラムをインストールするインストール手段と、
    前記第二の通信装置は、
    接続された前記第一の通信装置から前記機能の実行要求を受け付ける受付手段と、
    前記受付手段で前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別手段と、
    前記識別手段において識別された機能に対応するプログラムを取得する第一の取得手段と、
    前記第一の取得手段によって取得されたプログラムをインストールするインストール手段と、
    前記インストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記第一の通信装置から受信した前記第一の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記第一の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得手段と、
    前記第二の取得手段によって取得されたプログラムを前記第一の通信装置に送信する送信手段と、
    を有することを特徴とするシステム。
  4. 前記機能要求送信手段は、前記第一の通信装置と前記第二の通信装置との双方において処理を実行することで提供する機能の実行要求を接続された前記第二の通信装置に送信し、
    前記第一の通信装置は、前記第一の通信装置の前記インストール手段でインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行手段を更に有し、
    前記第二の通信装置は、前記第二の通信装置の前記インストール手段でインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行手段を更に有すことを特徴とする請求項3記載のシステム。
  5. 通信装置におけるプログラムインストール方法であって、
    前記通信装置が、接続された他の通信装置から機能の実行要求を受け付ける受付ステップと、
    前記通信装置が、前記受付ステップで前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別ステップと、
    前記通信装置が、前記識別ステップにおいて識別された機能に対応するプログラムを取得する第一の取得ステップと、
    前記通信装置が、前記第一の取得ステップにおいて取得されたプログラムをインストールするインストールステップと、
    前記通信装置が、前記インストールステップにおいてインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記他の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記他の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得ステップと、
    前記通信装置が、前記第二の取得ステップにおいて取得されたプログラムを前記他の通信装置に送信する送信ステップと、
    を含むことを特徴とするプログラムインストール方法。
  6. 前記受付ステップでは、接続された他の通信装置から前記他の通信装置と自装置との双方において処理を実行することで提供する機能の実行要求を受け付け、
    前記インストールステップでインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行ステップを更に含むことを特徴とする請求項5記載のプログラムインストール方法。
  7. 第一の通信装置と、第二の通信装置と、を含むシステムにおけるプログラムインストール方法であって、
    前記第一の通信装置が、機能の実行要求を接続された前記第二の通信装置に送信する機能要求送信ステップと、
    前記第一の通信装置が、前記第一の通信装置のプログラムバージョン情報を前記第二の通信装置に送信する情報送信ステップと、
    前記第一の通信装置が、前記第二の通信装置より前記機能に係る、前記第一の通信装置にインストールすべきバージョンのプログラムを受信する受信ステップと、
    前記第一の通信装置が、前記受信ステップで受信された前記プログラムをインストールする第一のインストールステップと、
    前記第二の通信装置が、接続された前記第一の通信装置から機能の実行要求を受け付ける受付ステップと、
    前記第二の通信装置が、前記受付ステップで前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別ステップと、
    前記第二の通信装置が、前記識別ステップにおいて識別された機能に対応するプログラムを取得する第一の取得ステップと、
    前記第二の通信装置が、前記第一の取得ステップによって取得されたプログラムをインストールする第二のインストールステップと、
    前記第二の通信装置が、前記インストールステップによってインストールされたプログラムのプログラムバージョン情報と、前記第一の通信装置から受信した前記第一の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記第一の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得ステップと、
    前記第二の通信装置が、前記第二の取得ステップによって取得されたプログラムを前記第一の通信装置に送信する送信ステップと、
    を含むことを特徴とするプログラムインストール方法。
  8. 前記機能要求送信ステップでは、前記第一の通信装置と前記第二の通信装置との双方において処理を実行することで提供する機能の実行要求を接続された前記第二の通信装置に送信し、
    前記第一の通信装置が、前記第一のインストールステップでインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行ステップと、
    前記第二の通信装置が、前記第二のインストールステップでインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行ステップと、
    を更に含むことを特徴とする請求項7記載のプログラムインストール方法。
  9. コンピュータに、
    接続された他の通信装置から機能の実行要求を受け付ける受付手順と、
    前記受付手順において前記実行要求を受け付けると、前記実行要求から前記機能を識別する識別手順と、
    前記識別手順において識別された機能に対応するプログラムを取得する第一の取得手順と、
    前記第一の取得手順において取得されたプログラムをインストールするインストール手順と、
    前記インストール手順においてインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記他の通信装置のプログラムバージョン情報と、に基づいて、前記機能に係る、前記他の通信装置にインストールすべきバージョンのプログラムを取得する第二の取得手順と、
    前記第二の取得手順において取得されたプログラムを前記他の通信装置に送信する送信手順と、
    実行させるためのプログラム。
  10. 前記受付手順では、接続された他の通信装置から前記他の通信装置と自装置との双方において処理を実行することで提供する機能の実行要求を受け付け、
    前記インストール手順でインストールされた前記プログラムを実行することで前記機能に係る処理を実行する実行手順を更に含む請求項9記載のプログラム。
JP2006108805A 2006-04-11 2006-04-11 通信装置、システム、プログラムインストール方法及びプログラム Expired - Fee Related JP4908902B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006108805A JP4908902B2 (ja) 2006-04-11 2006-04-11 通信装置、システム、プログラムインストール方法及びプログラム
US11/696,098 US20070277171A1 (en) 2006-04-11 2007-04-03 Program installation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006108805A JP4908902B2 (ja) 2006-04-11 2006-04-11 通信装置、システム、プログラムインストール方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2007280275A JP2007280275A (ja) 2007-10-25
JP2007280275A5 JP2007280275A5 (ja) 2009-05-28
JP4908902B2 true JP4908902B2 (ja) 2012-04-04

Family

ID=38681632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006108805A Expired - Fee Related JP4908902B2 (ja) 2006-04-11 2006-04-11 通信装置、システム、プログラムインストール方法及びプログラム

Country Status (2)

Country Link
US (1) US20070277171A1 (ja)
JP (1) JP4908902B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101633647B1 (ko) * 2009-06-17 2016-06-27 삼성전자주식회사 디스플레이 장치 및 그 디스플레이 방법
JP5755070B2 (ja) * 2011-07-29 2015-07-29 キヤノン株式会社 ライセンス発行装置、その制御方法、およびそのプログラム
US9727321B2 (en) * 2012-10-11 2017-08-08 Netflix, Inc. System and method for managing playback of streaming digital content
JP6631285B2 (ja) * 2016-02-04 2020-01-15 富士通株式会社 情報処理システム、情報処理装置、サービス配備方法およびサービス配備プログラム
JP7010005B2 (ja) * 2018-01-11 2022-01-26 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699495A (en) * 1994-07-27 1997-12-16 Microsoft Corporation Point-and-print in a distributed environment
US6343299B1 (en) * 1998-11-16 2002-01-29 International Business Machines Corporation Method and apparatus for random update synchronization among multiple computing devices
EP1033896A3 (en) * 1999-03-04 2000-10-18 Canon Kabushiki Kaisha Method and device for communicating a message on a network and systems using them.
FR2793623B1 (fr) * 1999-05-11 2003-01-24 Canon Kk Procede et dispositif de controle de la synchronisation entre deux noeuds ni-1, ni d'un reseau
JP2000330920A (ja) * 1999-05-18 2000-11-30 Canon Inc 情報処理方法及びシステム並びに記憶媒体
US6789111B1 (en) * 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
US7401113B1 (en) * 1999-12-09 2008-07-15 Microsoft Corporations Printer driver identification for a remote printer
JP2001216167A (ja) * 2000-02-04 2001-08-10 Minolta Co Ltd 本体と周辺装置からなるシステム
US6728787B1 (en) * 2000-03-31 2004-04-27 Mitsubishi Electric Research Labs, Inc System and method for locating and installing device drivers for peripheral devices
JP2001290716A (ja) * 2000-04-06 2001-10-19 Seiko Epson Corp ネットワークシステム、管理サーバ、および、クライアント
US6607314B1 (en) * 2000-10-03 2003-08-19 Hewlett-Packard Development Company, L.P. Apparatus for and method of updating a software routine
US6766407B1 (en) * 2001-03-27 2004-07-20 Microsoft Corporation Intelligent streaming framework
JP4464029B2 (ja) * 2001-04-19 2010-05-19 キヤノン株式会社 情報処理方法および制御プログラムおよび情報処理装置および周辺装置および応答方法および代理応答装置およびネットワークシステム
JP4644998B2 (ja) * 2001-09-28 2011-03-09 ブラザー工業株式会社 認証システム、認証装置およびサービス提供装置
US6938077B2 (en) * 2001-11-07 2005-08-30 Microsoft Corporation Client version advertisement service for overriding default client version properties
US7010624B1 (en) * 2002-04-01 2006-03-07 Adaptec, Inc. System and method of software/firmware uploading and upgrading for peripheral devices
US7099899B2 (en) * 2002-04-23 2006-08-29 International Business Machines Corporation System and method for item versioning in a content mangement system
JP2004021463A (ja) * 2002-06-14 2004-01-22 Canon Inc 周辺装置ファームウエアアップデート装置
US20040003135A1 (en) * 2002-06-27 2004-01-01 Moore Terrill M. Technique for driver installation
US7752290B2 (en) * 2002-08-21 2010-07-06 Canon Kabushiki Kaisha Information processing apparatus connectable to peripheral device, controlling method, and computer-readable storage medium storing control program thereon
JP2004259153A (ja) * 2003-02-27 2004-09-16 Canon Inc 情報処理装置とその制御方法及び制御プログラム
US7930426B1 (en) * 2003-04-01 2011-04-19 Cisco Technology, Inc. Method for tracking transmission status of data to entities such as peers in a network
US20040267914A1 (en) * 2003-06-30 2004-12-30 Roe Bryan Y. Method, apparatus and system for creating efficient UPnP control points
US8151280B2 (en) * 2003-10-27 2012-04-03 Microsoft Corporation Simple and dynamic configuration of network devices
TWI249102B (en) * 2003-11-07 2006-02-11 Aiptek Int Inc System and method for automatic installing an application program
JP2005275920A (ja) * 2004-03-25 2005-10-06 Seiko Epson Corp 電子機器およびプログラムの管理方法
JP2005292903A (ja) * 2004-03-31 2005-10-20 Seiko Epson Corp 制御システム、制御プログラム、制御方法及び制御装置
EP1763766A4 (en) * 2004-05-04 2009-04-01 Robert M Price SYSTEM AND METHOD FOR COMMUNICATING ELECTRONIC EQUIPMENT
US7779409B2 (en) * 2004-08-24 2010-08-17 Nokia Corporation Device-to-device software distribution
JP2006268752A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 複数のバージョンに対応したモジュールの起動
KR100881723B1 (ko) * 2007-09-21 2009-02-06 한국전자통신연구원 미디어 실감 재현을 위한 디바이스 연동/제어 정보 생성장치 및 방법
KR20110107579A (ko) * 2010-03-25 2011-10-04 삼성전자주식회사 인쇄 제어 단말장치 및 펌웨어 업그레이드 방법

Also Published As

Publication number Publication date
JP2007280275A (ja) 2007-10-25
US20070277171A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
JP4276909B2 (ja) 画像形成装置およびアプリ起動制御方法
KR101337160B1 (ko) 정보 처리 장치, 정보 처리 방법 및 기억 매체
JP4898269B2 (ja) 通信装置及びそのインストール方法
US20080068646A1 (en) Printing system, information processing apparatus, mail processing method, and storage medium
JP2007122093A (ja) 印刷制御装置及び印刷制御方法ならびに印刷制御方法を実行するプログラム
JP2012216166A (ja) 情報処理装置、その方法、及びプログラム
JP4908902B2 (ja) 通信装置、システム、プログラムインストール方法及びプログラム
JP2020140439A (ja) 印刷管理プログラム、印刷管理方法、および印刷管理装置
JP2017004175A (ja) 管理システムおよびその制御方法、情報処理装置、並びにプログラム
JP2009171579A (ja) 印刷システム、方法及びコンピュータ読取可能な記憶媒体
JP4953753B2 (ja) 情報処理装置及びその制御方法、プログラム
JP5488014B2 (ja) 情報処理装置、ディアクティベーション処理制御方法、プログラム及び記憶媒体
WO2011043036A1 (en) Server apparatus, client apparatus, control method of server apparatus, control method of client apparatus, and program
JP4996272B2 (ja) 情報処理装置及びその制御方法及び該方法を実行するプログラム
JP5822581B2 (ja) 画像形成装置、その方法、及びプログラム
US20090249346A1 (en) Image forming apparatus, information processing apparatus and information processing method
US7715027B2 (en) Method and apparatus for embedded driver download using raw imaging protocol
JP5011502B2 (ja) 電子機器、サービス提供方法及びプログラム
JP2017033141A (ja) 周辺装置、その方法、及びプログラム
JP5909899B2 (ja) 画像形成システム、出力管理方法およびプログラム
JP2009181337A (ja) 画像形成システム、管理装置、画像形成装置、画像形成方法、及び画像形成プログラム
JP2017073035A (ja) 情報処理装置およびその制御方法
JP2015049862A (ja) 情報処理装置、システム、方法およびプログラム
JP6885124B2 (ja) 情報処理システム、情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

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: 20120110

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: 20120113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4908902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees