(57)【要約】【課題】接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることを目的とする。【解決手段】第一の装置と、第二の装置と、を含むプログラムインストールシステムであって、第一の装置は、装置情報送信手段と、プログラムバージョン情報送信手段と、プログラム受信手段と、第一のインストール手段と、を有し、第二の装置は、装置情報受信手段と、プログラムバージョン情報受信手段と、第一のプログラム取得手段と、第二のインストール手段と、判定手段と、第二のプログラム取得手段と、プログラム送信手段と、を有することによって前記課題を解決する。【選択図】図３
2007280275.tif 000002
【特許請求の範囲】
【請求項１】
第一の装置と、第二の装置と、を含むプログラムインストールシステムであって、
前記第一の装置は、
自装置の装置情報を送信する装置情報送信手段と、
自装置のプログラムバージョン情報を送信するプログラムバージョン情報送信手段と、
プログラムを受信するプログラム受信手段と、
プログラムをインストールする第一のインストール手段と、
を有し、
前記第二の装置は、
前記第一の装置から前記装置情報を受信する装置情報受信手段と、
前記第一の装置から前記プログラムバージョン情報を受信するプログラムバージョン情報受信手段と、
前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムをインストールする第二のインストール手段と、
前記第二のインストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定手段と、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信するプログラム送信手段と、
を有することを特徴とするプログラムインストールシステム。
【請求項２】
第一の装置と、第二の装置と、プログラムを提供するサーバと、を含むプログラムインストールシステムであって、
前記第一の装置は、
自装置の装置情報を送信する第一の装置情報送信手段と、
自装置のプログラムバージョン情報を送信する第一のプログラムバージョン情報送信手段と、
プログラムを受信する第一のプログラム受信手段と、
プログラムをインストールする第一のインストール手段と、
を有し、
前記第二の装置は、
自装置の装置情報を送信する第二の装置情報送信手段と、
自装置のプログラムバージョン情報を送信する第二のプログラムバージョン情報送信手段と、
前記第一の装置から前記装置情報を受信する第一の装置情報受信手段と、
前記装置情報を送信する第三の装置情報送信手段と、
前記第一の装置からプログラムバージョン情報を受信する第一のプログラムバージョン情報受信手段と、
前記プログラムバージョン情報を送信する第三のプログラムバージョン情報送信手段と、
自装置用のプログラムを受信する第二のプログラム受信手段と、
前記第一の装置用のプログラムを受信する第三のプログラム受信手段と、
自装置用のプログラムをインストールする第二のインスト−ル手段と、
を有し、
前記サーバは、
前記第二の装置情報送信手段が送信した装置情報を受信する第二の装置情報受信手段と、
前記第三の装置情報送信手段が送信した装置情報を受信する第三の装置情報受信手段と、
前記第二のプログラムバージョン情報送信手段が送信したプログラムバージョン情報を受信する第二のプログラムバージョン情報受信手段と、
前記第三のプログラムバージョン情報送信手段が送信したプログラムバージョン情報を受信する第三のプログラムバージョン情報受信手段と、
前記第二の装置情報受信手段が受信した装置情報と、前記第三の装置情報受信手段が受信した装置情報と、前記第二のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、前記第三のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、に基づいて、前記第二の装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムを送信する第一のプログラム送信手段と、
前記第二の装置情報受信手段が受信した装置情報と、前記第三の装置情報受信手段が受信した装置情報と、前記第三のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、前記第二の装置にインストールするプログラムのプログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定手段と、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信する第二のプログラム送信手段と、
を有することを特徴とするプログラムインストールシステム。
【請求項３】
第一の装置と、第二の装置と、を含むプログラムインストールシステムであって、
前記第一の装置は、
機能の実行を前記第二の装置に要求する機能要求手段と、
自装置の装置情報を送信する装置情報送信手段と、
前記機能に関連するプログラムのバージョン情報を送信するプログラムバージョン情報送信手段と、
プログラムを受信するプログラム受信手段と、
プログラムをインストールする第一のインストール手段と、
を有し、
前記第二の装置は、
前記機能要求手段において要求された機能を識別する機能識別手段と、
前記第一の装置から装置情報を受信する装置情報受信手段と、
前記第一の装置から前記プログラムバージョン情報を受信するプログラムバージョン情報受信手段と、
前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、前記機能識別手段において識別された機能に関連する自装置用のプログラムのバージョン情報と、に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムをインストールする第二のインストール手段と、
前記第二のインストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定手段と、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信するプログラム送信手段と、
を有することを特徴とするプログラムインストールシステム。
【請求項４】
第一の装置と、第二の装置と、プログラムを提供するサーバと、を含むプログラムインストールシステムであって、
前記第一の装置は、
機能の実行を前記第二の装置に要求する機能要求手段と、
自装置の装置情報を送信する第一の装置情報送信手段と、
前記機能に関連するプログラムのバージョン情報を送信する第一のプログラムバージョン情報送信手段と、
プログラムを受信する第一のプログラム受信手段と、
プログラムをインストールする第一のインストール手段と、
を有し、
前記第二の装置は、
前記機能要求手段において要求された機能を識別する機能識別手段と、
自装置の装置情報を送信する第二の装置情報送信手段と、
前記機能識別手段において識別された機能に関連する自装置用のプログラムのバージョン情報を送信する第二のプログラムバージョン情報送信手段と、
前記機能識別手段において識別された機能の情報を送信する機能情報送信手段と、
前記第一の装置から装置情報を受信する第一の装置情報受信手段と、
前記装置情報を送信する第三の装置情報送信手段と、
前記第一の装置からプログラムバージョン情報を受信する第一のプログラムバージョン情報受信手段と、
前記プログラムバージョン情報を送信する第三のプログラムバージョン情報送信手段と、
自装置用のプログラムを受信する第二のプログラム受信手段と、
前記第一の装置用のプログラムを受信する第三のプログラム受信手段と、
前記プログラムをインストールする第二のインスト−ル手段と、
を有し、
前記サーバは、
前記第二の装置情報送信手段が送信した装置情報を受信する第二の装置情報受信手段と、
前記第三の装置情報送信手段が送信した装置情報を受信する第三の装置情報受信手段と、
前記第二のプログラムバージョン情報送信手段が送信したプログラムバージョン情報を受信する第二のプログラムバージョン情報受信手段と、
前記第三のプログラムバージョン情報送信手段が送信したプログラムバージョン情報を受信する第三のプログラムバージョン情報受信手段と、
前記機能情報送信手段が送信した機能情報を受信する機能情報受信手段と、
前記第二の装置情報受信手段が受信した装置情報と、前記第三の装置情報受信手段が受信した装置情報と、前記第二のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、前記第三のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、前記機能情報受信手段が受信した機能情報と、に基づいて、前記第二の装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムを送信する第一のプログラム送信手段と、
前記第二の装置情報受信手段が受信した装置情報と、前記第三の装置情報受信手段が受信した装置情報と、前記第三のプログラムバージョン情報受信手段が受信したプログラムバージョン情報と、前記第二の装置にインストールするプログラムのプログラムバージョン情報と、前記機能情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定手段と、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信する第二のプログラム送信手段と、
を有することを特徴とするプログラムインストールシステム。
【請求項５】
第一の装置と、第二の装置と、を含むプログラムインストールシステムにおけるインストール方法であって、
前記第一の装置が、
自装置の装置情報を送信する装置情報送信ステップと、
自装置のプログラムバージョン情報を送信するプログラムバージョン情報送信ステップと、
プログラムを受信するプログラム受信ステップと、
プログラムをインストールする第一のインストールステップと、
を有し、
前記第二の装置が、
前記第一の装置から前記装置情報を受信する装置情報受信ステップと、
前記第一の装置から前記プログラムバージョン情報を受信するプログラムバージョン情報受信ステップと、
前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムをインストールする第二のインストールステップと、
前記第二のインストールステップにおいてインストールされたプログラムのプログラムバージョン情報と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定ステップと、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信するプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項６】
第一の装置と、第二の装置と、プログラムを提供するサーバと、を含むプログラムインストールシステムにおけるインストール方法であって、
前記第一の装置が、
自装置の装置情報を送信する第一の装置情報送信ステップと、
自装置のプログラムバージョン情報を送信する第一のプログラムバージョン情報送信ステップと、
プログラムを受信する第一のプログラム受信ステップと、
プログラムをインストールする第一のインストールステップと、
を有し、
前記第二の装置が、
自装置の装置情報を送信する第二の装置情報送信ステップと、
自装置のプログラムバージョン情報を送信する第二のプログラムバージョン情報送信ステップと、
前記第一の装置から前記装置情報を受信する第一の装置情報受信ステップと、
前記装置情報を送信する第三の装置情報送信ステップと、
前記第一の装置からプログラムバージョン情報を受信する第一のプログラムバージョン情報受信ステップと、
前記プログラムバージョン情報を送信する第三のプログラムバージョン情報送信ステップと、
自装置用のプログラムを受信する第二のプログラム受信ステップと、
前記第一の装置用のプログラムを受信する第三のプログラム受信ステップと、
自装置用のプログラムをインストールする第二のインスト−ルステップと、
を有し、
前記サーバが、
前記第二の装置情報送信ステップにおいて送信された装置情報を受信する第二の装置情報受信ステップと、
前記第三の装置情報送信ステップにおいて送信された装置情報を受信する第三の装置情報受信ステップと、
前記第二のプログラムバージョン情報送信ステップにおいて送信されたプログラムバージョン情報を受信する第二のプログラムバージョン情報受信ステップと、
前記第三のプログラムバージョン情報送信ステップにおいて送信されたプログラムバージョン情報を受信する第三のプログラムバージョン情報受信ステップと、
前記第二の装置情報受信ステップにおいて受信された装置情報と、前記第三の装置情報受信ステップにおいて受信された装置情報と、前記第二のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、前記第三のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、に基づいて、前記第二の装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムを送信する第一のプログラム送信ステップと、
前記第二の装置情報受信ステップにおいて受信された装置情報と、前記第三の装置情報受信ステップにおいて受信された装置情報と、前記第三のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、前記第二の装置にインストールするプログラムのプログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定ステップと、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信する第二のプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項７】
第一の装置と、第二の装置と、を含むプログラムインストールシステムにおけるインストール方法であって、
前記第一の装置が、
機能の実行を前記第二の装置に要求する機能要求ステップと、
自装置の装置情報を送信する装置情報送信ステップと、
前記機能に関連するプログラムのバージョン情報を送信するプログラムバージョン情報送信ステップと、
プログラムを受信するプログラム受信ステップと、
プログラムをインストールする第一のインストールステップと、
を有し、
前記第二の装置が、
前記機能要求ステップにおいて要求された機能を識別する機能識別ステップと、
前記第一の装置から装置情報を受信する装置情報受信ステップと、
前記第一の装置から前記プログラムバージョン情報を受信するプログラムバージョン情報受信ステップと、
前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、前記機能識別ステップにおいて識別された機能に関連する自装置用のプログラムのバージョン情報と、に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムをインストールする第二のインストールステップと、
前記第二のインストールステップにおいてインストールされたプログラムのプログラムバージョン情報と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定ステップと、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信するプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項８】
第一の装置と、第二の装置と、プログラムを提供するサーバと、を含むプログラムインストールシステムにおけるインストール方法であって、
前記第一の装置が、
機能の実行を前記第二の装置に要求する機能要求ステップと、
自装置の装置情報を送信する第一の装置情報送信ステップと、
前記機能に関連するプログラムのバージョン情報を送信する第一のプログラムバージョン情報送信ステップと、
プログラムを受信する第一のプログラム受信ステップと、
プログラムをインストールする第一のインストールステップと、
を有し、
前記第二の装置が、
前記機能要求ステップにおいて要求された機能を識別する機能識別ステップと、
自装置の装置情報を送信する第二の装置情報送信ステップと、
前記機能識別ステップにおいて識別された機能に関連する自装置用のプログラムのバージョン情報を送信する第二のプログラムバージョン情報送信ステップと、
前記機能識別ステップにおいて識別された機能の情報を送信する機能情報送信ステップと、
前記第一の装置から装置情報を受信する第一の装置情報受信ステップと、
前記装置情報を送信する第三の装置情報送信ステップと、
前記第一の装置からプログラムバージョン情報を受信する第一のプログラムバージョン情報受信ステップと、
前記プログラムバージョン情報を送信する第三のプログラムバージョン情報送信ステップと、
自装置用のプログラムを受信する第二のプログラム受信ステップと、
前記第一の装置用のプログラムを受信する第三のプログラム受信ステップと、
前記プログラムをインストールする第二のインスト−ルステップと、
を有し、
前記サーバが、
前記第二の装置情報送信ステップにおいて送信された装置情報を受信する第二の装置情報受信ステップと、
前記第三の装置情報送信ステップにおいて送信された装置情報を受信する第三の装置情報受信ステップと、
前記第二のプログラムバージョン情報送信ステップにおいて送信されたプログラムバージョン情報を受信する第二のプログラムバージョン情報受信ステップと、
前記第三のプログラムバージョン情報送信ステップにおいて送信されたプログラムバージョン情報を受信する第三のプログラムバージョン情報受信ステップと、
前記機能情報送信ステップにおいて送信された機能情報を受信する機能情報受信ステップと、
前記第二の装置情報受信ステップにおいて受信された装置情報と、前記第三の装置情報受信ステップにおいて受信された装置情報と、前記第二のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、前記第三のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、前記機能情報受信ステップにおいて受信された機能情報と、に基づいて、前記第二の装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムを送信する第一のプログラム送信ステップと、
前記第二の装置情報受信ステップにおいて受信された装置情報と、前記第三の装置情報受信ステップにおいて受信された装置情報と、前記第三のプログラムバージョン情報受信ステップにおいて受信されたプログラムバージョン情報と、前記第二の装置にインストールするプログラムのプログラムバージョン情報と、前記機能情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定ステップと、
前記第一の装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信する第二のプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項９】
請求項５乃至８の何れか１項に記載のプログラムインストール方法をプログラムインストールシステムのコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
通信可能な他の通信装置から前記他の通信装置の装置情報を受信する装置情報受信手段と、
前記他の通信装置から前記他の通信装置のプログラムバージョン情報を受信するプログラムバージョン情報受信手段と、
前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムをインストールするインストール手段と、
前記インストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記他の通信装置にプログラムをインストールするか否かを判定する判定手段と、
前記他の通信装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信するプログラム送信手段と、
を有することを特徴とする通信装置。
【請求項１１】
通信可能な他の通信装置から要求された機能を識別する機能識別手段と、
前記他の通信装置から前記他の通信装置の装置情報を受信する装置情報受信手段と、
前記他の通信装置から前記他の通信装置のプログラムバージョン情報を受信するプログラムバージョン情報受信手段と、
前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、前記機能識別手段において識別された機能に関連する自装置用のプログラムのバージョン情報と、に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得手段と、
前記プログラムをインストールするインストール手段と、
前記インストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記他の通信装置にプログラムをインストールするか否かを判定する判定手段と、
前記他の通信装置にインストールするプログラムを取得する第二のプログラム取得手段と、
前記プログラムを送信するプログラム送信手段と、
を有することを特徴とする通信装置。
【請求項１２】
通信装置におけるプログラムインストール方法であって、
通信可能な他の通信装置から前記他の通信装置の装置情報を受信する装置情報受信ステップと、
前記他の通信装置から前記他の通信装置のプログラムバージョン情報を受信するプログラムバージョン情報受信ステップと、
前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムをインストールするインストールステップと、
前記インストールステップにおいてインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記他の通信装置にプログラムをインストールするか否かを判定する判定ステップと、
前記他の通信装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信するプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項１３】
通信装置におけるプログラムインストール方法であって、
通信可能な他の通信装置から要求された機能を識別する機能識別ステップと、
前記他の通信装置から前記他の通信装置の装置情報を受信する装置情報受信ステップと、
前記他の通信装置から前記他の通信装置のプログラムバージョン情報を受信するプログラムバージョン情報受信ステップと、
前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、前記機能識別ステップにおいて識別された機能に関連する自装置用のプログラムのバージョン情報と、に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得ステップと、
前記プログラムをインストールするインストールステップと、
前記インストールステップにおいてインストールされたプログラムのプログラムバージョン情報と、前記他の通信装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記他の通信装置にプログラムをインストールするか否かを判定する判定ステップと、
前記他の通信装置にインストールするプログラムを取得する第二のプログラム取得ステップと、
前記プログラムを送信するプログラム送信ステップと、
を有することを特徴とするプログラムインストール方法。
【請求項１４】
請求項１２又は１３に記載のプログラムインストール方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムインストールシステム及びプログラムインストール方法に関する。
【背景技術】
【０００２】
従来から、ある装置（Ａとする）に対して、ある装置（Ｂとする）が接続されたとき、接続された相手装置Ｂの種別や機能に応じて、適切なソフトウエア、プログラム、若しくはドライバが装置Ａに自動的にインストールされるというシステムが知られている。
【０００３】
プラグアンドプレイ機器として知られるものは、そのようなものの一例である。
【０００４】
また、特許文献１によると、周辺機器が情報処理装置に接続されたとき、自動的にその組み合わせで動作するソフトウエアをインストール、或いは更新できる。
【０００５】
【特許文献１】特開２０００−３３０９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術には、以下のような課題が存在する。
即ち、所謂コンピュータだけでなく、組込み機器においてもソフトウエアのインストール或いは更新が一般的となった現在、出荷後の機能増強が当然のようになっている。そして、ＰＣを介さず、組込み機器同士を接続して、サービス或いは機能を提供することも一般的である。すると、ある装置Ａに接続される、ある装置Ｂが機能増強されたとして、その機能増強分に対して、装置Ａのソフトウエアは対応していないということがある。また、ある装置Ｂのバグ修正や、機能の追加に対して、装置Ａのソフトウエアが対応していないこともある。
【０００７】
本発明は前記の問題点に鑑みなされたもので、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることを目的とする。
【課題を解決するための手段】
【０００８】
そこで、前記問題を解決するため、本発明は、第一の装置と、第二の装置と、を含むプログラムインストールシステムであって、前記第一の装置は、自装置の装置情報を送信する装置情報送信手段と、自装置のプログラムバージョン情報を送信するプログラムバージョン情報送信手段と、プログラムを受信するプログラム受信手段と、プログラムをインストールする第一のインストール手段と、を有し、前記第二の装置は、前記第一の装置から前記装置情報を受信する装置情報受信手段と、前記第一の装置から前記プログラムバージョン情報を受信するプログラムバージョン情報受信手段と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報に基づいて、自装置にインストールするプログラムを取得する第一のプログラム取得手段と、前記プログラムをインストールする第二のインストール手段と、前記第二のインストール手段によってインストールされたプログラムのプログラムバージョン情報と、前記第一の装置から受信した前記装置情報及び前記プログラムバージョン情報と、に基づいて、前記第一の装置にプログラムをインストールするか否かを判定する判定手段と、前記第一の装置にインストールするプログラムを取得する第二のプログラム取得手段と、前記プログラムを送信するプログラム送信手段と、を有することを特徴とする。
【０００９】
係る構成とすることにより、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることができる。
【００１０】
また、前記問題を解決するため、本発明は、プログラムインストール方法、プログラム、通信装置としてもよい。
【発明の効果】
【００１１】
本発明によれば、接続された装置双方に対して、適切なソフトウエアを速やかにインストールすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。
【００１３】
（実施形態１）
図１は、プログラムインストールシステムの構成の一例を示すブロック図である。図１において、１０１はテレビ、１０２はカメラ、１０３はサーバ、１０４はプリンタ、１０５はネットワークである。
【００１４】
テレビ１０１及びカメラ１０２は外部からプログラムをインストールし、実行することができる。そのような意味では、両者ともコンピュータでもよいが、本実施形態では、テレビ１０１及びカメラ１０２を用いて説明を行なう。
【００１５】
サーバ１０３は、テレビ１０１用のプログラムと、カメラ１０２用のプログラムとをメモリ等に格納している。なお、両プログラムはテレビ１０１が、テレビ１０１のメモリ等に格納していてもよい。
【００１６】
ネットワーク１０５は、テレビ１０１、カメラ１０２、サーバ１０３及びプリンタ１０４を連結する。ネットワーク１０５は、イーサネット（登録商標）のような有線手段でもよいし、無線手段であってもよい。ネットワーク１０５は、テレビ１０１、カメラ１０２、サーバ１０３及びプリンタ１０４を論理的に接続し、データ通信ができさえすれば何であってもよい。
【００１７】
なお、テレビ１０１と、カメラ１０２との間をつなぐには、ネットワーク１０５によらず、直接接続してもよい。直接接続する手段として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース、ＩＥＥＥ１３９４インタフェース等、これも様々な手段が考えられるが、論理的な接続が確保されていればよい。
【００１８】
次に、テレビ１０１の内部構成を図２のブロック図を用いて説明する。図２は、テレビ１０１の内部構造の一例を示す図である。
【００１９】
図２において、テレビ１０１は、装置全体を制御する中央処理装置（以下、ＣＰＵという）２０１と、各種動作プログラムを読み取り可能に格納したＲＯＭ２０２と、プログラム動作中の一時的な値の保存に用いるＲＡＭ２０３と、を含む。また、テレビ１０１は、各種時間を計測するタイマ２０４と、テレビ画像及び各種設定メニュー等を、ＧＵＩ部品を用いて表示するディスプレイ２０５と、外部装置と接続するためのＵＳＢ  Ｉ／Ｆ２０６と、外部装置と接続するための無線Ｉ／Ｆ２０７と、を含む。
【００２０】
また、テレビ１０１は、各種操作ボタン２０８と、各種設定データファイルを保存する不揮発性メモリであるＦｌａｓｈＲＯＭ２０９と、外部装置と接続するネットワークＩ／Ｆ２１０とを含む。また、テレビ１０１は、各種動作プログラム及び設定データファイルを保存しておくハードディスク（以下、ＨＤという）２１１を含む。また、テレビ１０１は、音声出力を行うスピーカ２１２と、ＣＤ−ＲＯＭメディアからプログラム及びデータを読み出すＣＤ−ＲＯＭドライブ２１３と、を含む。
【００２１】
図２は、テレビ１０１の内部構成を示す図であるが、図２に挙げたような構成要素は一般的なコンピュータにも見られるものである。カメラ１０２、サーバ１０３、プリンタ１０４についても、各々、その装置に特徴的な構成要素は持っているものの、図２に挙げた構成要素を同様に備えている。類似しているので、各々の装置の内部構成を示す図は省略する。
【００２２】
次に、テレビ１０１、カメラ１０２及びサーバ１０３におけるプログラムインストール手順について、図３及び図４のフローチャートを用いて説明する。図３は、プログラムインストール処理の一例を示すフローチャート（その１）である。図４は、プログラムインストール処理の一例を示すフローチャート（その２）である。
【００２３】
図３において、手順５００は、カメラ１０２の動作手順である。また、手順５２０は、テレビ１０１の動作手順である。また、手順５５０は、サーバ１０３の動作手順である。なお、動作手順の制御の主体は、特に断らない限り、各装置のＣＰＵ２０１である。
【００２４】
まず、カメラ１０２は、テレビ１０１と接続される（ステップＳ５０１）。接続形態は、ネットワーク１０５を介して接続されてもよいし、直接接続されてもよい。テレビ１０１は、カメラ１０２との接続を検知する（ステップＳ５２１）。
【００２５】
接続時、カメラ１０２は、自装置の装置情報をテレビ１０１に送信する（ステップＳ５０２）。装置情報には、カメラ１０２の機種情報、カメラ１０２を特定するためのＩＤ及び動作プログラムのバージョン番号が含まれる。テレビ１０１は、装置情報を受信する（ステップＳ５２２）。
【００２６】
テレビ１０１は、受信した装置情報に基づいて、現在実行しているプログラムが、接続してきたカメラ１０２に対応しているかどうかを判定する（ステップＳ５２３）。テレビ１０１は、対応装置リストに基づいて判定を行う。対応装置リストの例を図５に示す。図５は、対応装置リストの一例を示す図である。
【００２７】
図５の対応装置リスト３０１は、テレビ１０１に現在インストールされているバージョンのプログラムがどのカメラ１０２、或いはどのプリンタ１０４に対応しているかを示すリストである。図５は、テレビ１０１に現在インストールされているバージョンのプログラムは、カメラ１０２については、機種１と、機種２と、に対応しており、機種３には未対応であることを示している。また、図５は、テレビ１０１に現在インストールされているバージョンのプログラムは、機種１についてはカメラ１０２のプログラムがＶｅｒ．２以前のものに対して対応し、機種２については全てのバージョンに対して対応していることを示している。
【００２８】
将来、機種２について機能増強があり得るなら全てのバージョンについて対応しているとは言えなくなるが、既に生産中止になっている等の理由によりバージョンアップの機会がないなら、全てのバージョンに対応していると言ってよい。また、Ｖｅｒ．ＸＸＸ以降という指定もあり得る。これは、その機種についてはバージョンアップの機会がない、且つ、Ｖｅｒ．ＸＸＸ以前は仕様が古いためサポートしていないという場合である。以上は、プリンタ１０４についても同様である。
【００２９】
ここで述べているプログラムのバージョン番号とは、その装置の動作プログラム全体のバージョン番号を指している。従って、テレビ１０１が接続中のカメラ１０２に対応しているということは、テレビ１０１の動作プログラムが、カメラ１０２がテレビ１０１に対して要求する機能の全てに対応しているということである。
【００３０】
ステップＳ５２３において、テレビ１０１は、テレビ１０１のプログラムがカメラ１０２に対応していないと判定すると、対応しているプログラムをＣＤ−ＲＯＭドライブ２１３からインストールできるかどうかを調べる（ステップＳ５２４）。
【００３１】
テレビ１０１は、プログラムを格納したＣＤ−ＲＯＭメディアがＣＤ−ＲＯＭドライブ２１３に入っており、プログラムのバージョン番号が示す対応装置リスト３０１が、接続中のカメラ１０２に対応していることを示していると、インストールできると判定する。なお、この場合、プログラムのバージョン番号毎に、対応装置リスト３０１が複数存在する。これらの対応装置リスト３０１は、ＲＡＭ２０３に格納されていてもよいし、或いは、前記ＣＤ−ＲＯＭメディアにプログラムと共に格納されていてもよい。
【００３２】
ステップＳ５２４において、インストールできると判定すると、テレビ１０１は、前記ＣＤ−ＲＯＭメディアからカメラ１０２に対応しているプログラムを取得する（ステップＳ５２７）。テレビ１０１は、単に接続中のカメラ１０２に対応しているだけでなく、できるだけ最新のプログラムを選択し、取得する。バグ修正や、他の機種のカメラ１０２が接続されたときの場合を考慮すると、このような動作は有効である。
【００３３】
なお、対応プログラムはＣＤ−ＲＯＭメディアに格納されていて、テレビ１０１は、ＣＤ−ＲＯＭメディアから対応プログラムを取得するよう説明したが、これは、格納場所をＣＤ−ＲＯＭメディアに限定するものではない。格納場所としてのメディアは一般的な記憶媒体を使用してもよい。
【００３４】
プログラムを取得した後、テレビ１０１は、取得したプログラムをインストールする（ステップＳ５３０）。また、テレビ１０１は、ＲＡＭ２０３中の自装置用の対応装置リスト３０１を、インストールしたプログラムのバージョン番号に対応する対応装置リスト３０１で置き換える。
【００３５】
次に、テレビ１０１は、カメラ１０２用の対応装置リストをＲＡＭ２０３内に持っているかどうかを判定する（ステップＳ５３１）。図６は、カメラ１０２用の対応装置リストの一例を示す図である。
【００３６】
図６に示すカメラ１０２用の対応装置リスト４００は、図５に示したテレビ１０１自身の対応装置リスト３０１と異なり、カメラ１０２の機種及びバージョン毎に用意された対応装置リスト４０２と、アドレステーブル４０１と、からなる。このような構成は、複数のカメラ１０２の機種及びバージョンに対応するためである。なお、アドレステーブル４０１では、カメラ１０２の機種及びバージョンと、対応装置リスト４０２へのアドレスとを関連付けている。
【００３７】
ステップＳ５３１において、テレビ１０１は、対応装置リスト４００を持っていると判定すると、カメラ１０２の装置情報と、対応装置リスト４００とに基づいて、カメラ１０２に対してプログラムをインストールすべきかどうかを判定する（ステップＳ５３２）。
【００３８】
テレビ１０１は、カメラ１０２の装置情報に含まれる、機種情報及びプログラムのバージョン番号（情報）に対応する、対応装置リスト４０２を参照する。そして、テレビ１０１は、この対応装置リスト４０２中の対応するテレビの欄に示される機種情報及びプログラムのバージョン番号の条件をテレビ１０１が満たしているか否かを判定する。前記条件をテレビ１０１が満たしていなければ、テレビ１０１は、動作プログラム（インストールされているプログラム）は、前記バージョン番号のプログラムより新しい、つまり、更新されていると判定する。そして、テレビ１０１は、更新された機能にカメラ１０２側を対応させるため、カメラ１０２用のプログラムをカメラ１０２に対してインストールすべきであると判定する。
【００３９】
ここで、ステップＳ５３２の判定時に用いられるテレビ１０１のプログラムのバージョン番号としては、ステップＳ５３０でプログラムのインストールがあった場合は、このインストールされたプログラムのバージョン番号が用いられる。
【００４０】
ステップＳ５３２において、メラ１０２に対してプログラムをインストールすべきであると判定すると、テレビ１０１は、カメラ１０２用のプログラムをＣＤ−ＲＯＭドライブ２１３からインストールできるかどうかを調べる（ステップＳ５３３）。ステップＳ５３３の処理は、ステップＳ５２４の処理と同様である。
【００４１】
インストールできると判定すると、テレビ１０１は、ＣＤ−ＲＯＭメディアからカメラ１０２用のプログラムを取得する（図４のステップＳ６０４）。続いて、テレビ１０１は、カメラ１０２に対して「プログラムインストール有り」メッセージを通知（送信）する（ステップＳ６０５）。
【００４２】
カメラ１０２は、「プログラムインストール有り」メッセージを受け取ると（ステップＳ６０１においてＹ）、ステップＳ６０２に進む。
【００４３】
テレビ１０１は、ステップＳ６０４において取得したプログラムをカメラ１０２に送信する（ステップＳ６０６）。テレビ１０１は、プログラムをカメラ１０２に送信する際に、送信するプログラムのバージョン番号も送信する。この情報は、次回接続時のステップＳ５０２の装置情報送信時に用いられる。
【００４４】
カメラ１０２は、テレビ１０１より送信されたプログラム及びプログラムのバージョン番号を受信する（ステップＳ６０２）。カメラ１０２は、プログラムと同時に送られたプログラムのバージョン番号をメモリ等に記憶する。続いて、カメラ１０２は、前記プログラムをインストールする（ステップＳ６０３）。そして、カメラ１０２は、処理を終了する。
【００４５】
この後、図示していないが、プログラムがインストールされた場合、テレビ１０１、カメラ１０２の各々で、インストールしたプログラムを起動する。このようにすることによって、インストールされたプログラムが提供する、何らかのサービス或いは機能の実行を行うことができる。
【００４６】
ステップＳ５２３において、テレビ１０１は、テレビ１０１のプログラムがカメラ１０２に対応していると判定すると、新たなプログラムをインストールせず、ステップＳ５３１に進む。
【００４７】
また、ステップＳ５３２において、テレビ１０１は、カメラ１０２にもプログラムをインストールすべきとは言えないと判定すると、カメラ１０２に対し「プログラムインストール無し」メッセージを通知する（ステップＳ５３４）。
【００４８】
カメラ１０２は、「プログラムインストール無し」メッセージを受け取ると（ステップＳ６０１においてＮ）、プログラムをインストールすること無く、処理を終了する。
【００４９】
次に、テレビ１０１等が、サーバ１０３からプログラムを取得し、インストールする手順について、図３及び図４のフローチャートを用いて説明する。
【００５０】
ステップＳ５２４において、テレビ１０１は、テレビ１０１用のプログラムをＣＤ−ＲＯＭドライブ２１３からインストールすることはできないと判定すると、サーバ１０３に対しテレビ１０１の装置情報を送信する（ステップＳ５２６）。装置情報には、テレビ１０１の機種情報、テレビ１０１を特定するためのＩＤ、及び動作プログラムのバージョン番号が含まれる。サーバ１０３は、前記装置情報を受信する（ステップＳ５５１）。
【００５１】
サーバ１０３は、受信した装置情報に基づいて、テレビ１０１にインストールすべきプログラムは有るかどうかを判定する（ステップＳ５５２）。この判定処理は、ステップＳ５３２において、テレビ１０１がカメラ１０２に対してインストールすべきプログラムは有るかどうかを判定したのと同様である。つまり、サーバ１０３は、カメラ１０２に関する対応装置リスト４００と同様な構成で、テレビ１０１に関する対応装置リスト（図示せず）をメモリ等に有しており、この対応装置リスト等に基づいて判定を行なう。
【００５２】
ステップＳ５５２において、サーバ１０３は、テレビ１０１にインストールすべきプログラムが有ると判定すると、「プログラムインストール有り」メッセージを、テレビ１０１に通知する（ステップＳ５５３）。
【００５３】
テレビ１０１は、「プログラムインストール有り」メッセージを受け取ると（ステップＳ５２８においてＹ）、ステップＳ５２９に進む。
【００５４】
続いて、サーバ１０３は、テレビ１０１に対して、プログラムを送信する（ステップＳ５５４）。サーバ１０３は、プログラムをテレビ１０１に送信する際に、送信するプログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト３０１も送信する。
【００５５】
テレビ１０１は、サーバ１０３より送信されたプログラム、プログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト３０１を受信する（ステップＳ５２９）。続いて、テレビ１０１は、受信したプログラムをインストールする（ステップＳ５３０）。また、テレビ１０１は、バージョン番号を受け取ったバージョン番号にセットし、対応装置リスト３０１を受け取った対応装置リスト３０１で更新する。
【００５６】
ステップＳ５５２において、サーバ１０３は、テレビ１０１にインストールすべきプログラムは無いと判定すると、テレビ１０１に対して、「プログラムインストール無し」メッセージを通知する。
【００５７】
テレビ１０１は、「プログラムインストール無し」メッセージを受け取ると（Ｓ５３８においてＮ）、プログラムをインストールすることなく、ステップＳ５３１に進む。
【００５８】
ステップＳ５３１において、カメラ１０２用の対応装置リストをＲＡＭ２０３内に持っていないと判定すると、テレビ１０１は、ステップＳ６０７に進む。また、ステップＳ５３３において、カメラ１０２用のプログラムをＣＤ−ＲＯＭドライブ２１３からインストールできないと判定すると、テレビ１０１は、ステップＳ６０７に進む。
【００５９】
テレビ１０１は、サーバ１０３に対しカメラ１０２の装置情報を送信する（ステップＳ６０７）。サーバ１０３は、テレビ１０１より、カメラ１０２の装置情報を受信する（ステップＳ６１３）。
【００６０】
サーバ１０３は、受信したカメラ１０２の装置情報と、対応装置リスト４００とに基づいて、カメラ１０２にインストールすべきプログラムが有るかどうかを判定する（ステップＳ６１４）。なお、サーバ１０３は、対応装置リスト４００をメモリ等に保持しているものとする。
【００６１】
インストールすべきプログラムが有ると判定すると、サーバ１０３は、「プログラムインストール有り」メッセージをテレビ１０１に通知する（ステップＳ６１５）。テレビ１０１は、「プログラムインストール有り」メッセージを受け取ると（ステップＳ６０８においてＹ）、ステップＳ６０９に進む。
【００６２】
続いて、サーバ１０３は、テレビ１０１に対して、カメラ１０２用のプログラムを送信する（ステップＳ６１６）。サーバ１０３は、カメラ１０２用のプログラムをテレビ１０１に送信する際に、送信するプログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト４００も送信する。
【００６３】
テレビ１０１は、サーバ１０３より送信されたプログラム、プログラムのバージョン番号及びそのバージョン番号に対応する対応装置リスト４００を受信する（ステップＳ６０９）。ここで受け取った対応装置リスト４００は、次回カメラ１０２がテレビ１０１に接続された時のステップＳ５３１の処理で用いられる。なお、ステップＳ５３１における判定で、常に、カメラ１０２用の対応装置リストを持っていない場合のフローチャート、つまり、ステップＳ６０７に進んでも構わなければ、ステップＳ６１５において、サーバ１０３は、対応装置リスト４００を送る必要はない。
【００６４】
テレビ１０１は、カメラ１０２に対して「プログラムインストール有り」メッセージを通知する（ステップＳ６１１）。また、テレビ１０１は、サーバ１０３より受信したカメラ１０２用のプログラムを、カメラ１０２に送信する（ステップＳ６１２）。テレビ１０２は、カメラ１０２用のプログラムをカメラ１０２に送信する際に、送信するプログラムのバージョン番号も送信する。
【００６５】
ステップＳ６１４において、サーバ１０３は、カメラ１０２に対しインストールすべきプログラムはないと判定すると、テレビ１０１に対して、「プログラムインストール無し」メッセージを通知する（ステップＳ６１７）。テレビ１０１は、サーバ１０３より、「プログラムインストール無し」メッセージを受け取ると、ステップＳ６１０に進み、カメラ１０２に対して「プログラムインストール無し」メッセージを通知する（ステップＳ６１０）。
【００６６】
図３及び図４を用いた説明では、カメラ１０２用のプログラムをテレビ１０１が備えていれば、カメラ１０２用のプログラムを、テレビ１０１がカメラ１０２に直接送信した。また、カメラ１０２用のプログラムをテレビ１０１が備えていなければ、テレビ１０１が、サーバ１０３に対してカメラ１０２用のプログラムの有無を問い合わせた。そして、サーバ１０３に、カメラ１０２用のプログラムが有れば、サーバ１０３からカメラ１０２用のプログラムを送ってもらった。しかしながら、必ずこのような構成としなければならない訳ではない。
【００６７】
テレビ１０１がカメラ１０２に対しプログラムを供給する手順、或いは、サーバ１０３がテレビ１０１を通じてカメラ１０２に対しプログラムを供給する手順の一方だけを提供するようにしてもよい。その場合には、図３及び図４において不必要な判定及び処理は省略される。
【００６８】
（実施形態２）
次に、所定の機能の起動時、その機能がサポートされていなければ、機能の提供を行うプログラムをインストールする動作手順について、図７及び図８のフローチャートを用いて説明する。図７は、機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート（その１）である。図８は、機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート（その２）である。
【００６９】
図７において、手順１０００は、カメラ１０２の動作手順である。また、手順１０２０は、テレビ１０１の動作手順である。また、手順１０５０は、サーバ１０３の動作手順である。なお、動作手順の制御の主体は、特に断らない限り、各装置のＣＰＵ２０１である。
【００７０】
まず、カメラ１０２は、所定の機能を起動する（ステップＳ１００１）。ここでは、カメラ１０２と、テレビ１０１とが既に接続されており、テレビ１０１と、プリンタ１０４とも既に接続されているとする。そして、ステップＳ１００１では、カメラ１０２は、テレビ１０１を経由してプリンタ１０４までカメラ１０２内の画像を送信し、前記画像を印刷するという、印刷機能を起動したものとする。なお、各装置は既に接続されていると述べたが、これは説明の簡略化のためで、機能起動後に各装置を接続してもよい。
【００７１】
機能の起動に伴い、カメラ１０２は、機能の実行を要求するメッセージ（機能要求メッセージ）をテレビ１０１に送信する（ステップＳ１００２）。テレビ１０１は、カメラ１０２より機能要求メッセージを受け取る（ステップＳ１０２１）。ここで、メッセージを送信するとしたが、機能要求を通知する方法は他にも数多くある。また、使用するプロトコルとしては、ハードウエア的にも、ソフトウエア的にも、独自プロトコルを使ってもよいし、標準的なプロトコルを使ってもよい。どのようなプロトコルを使うとしても、そのプロトコルの中で要求された機能の識別が可能であればよい。
【００７２】
例えば、独自バイナリデータフォーマットのある部分のデータを、要求機能を識別するコマンド値としてもよい。また、所謂クライアント−サーバ型のプロトコルにおいてＴＣＰ／ＩＰプロトコルを用いるのであれば、ポート番号によって通信相手のアプリケーションを決定することもできる。この場合、アプリケーションの決定は機能の選択と捉えることができる。また、ＨＴＴＰを用いて、ＵＲＬを指定することによって、ＣＧＩやＪａｖａ（登録商標）サーブレットの起動を要求するのであれば、ＵＲＬが機能を識別するキーである。ここで、ＨＴＴＰとは、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略である。また、ＵＲＬとは、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒの略である。また、ＣＧＩとは、Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅの略である。
【００７３】
なお、本実施形態では、機能とは、接続された双方の装置において何らかのプログラムを実行することによって提供される「働き」と定義する。つまり、上述した実施形態において、機能要求と書いたが、テレビ１０１だけのプログラム実行をもって機能が提供され訳ではない。機能の選択、起動要求、或いはパラメータ指定等、カメラ１０２側の関与もある。ある機能を実行しようとするとき、その機能に関するプログラム（以下、機能プログラムという）を双方が持っていて、各々そのプログラムに基づいて、ＣＰＵ等が動作することによって、機能が実現される。
【００７４】
次に、カメラ１０２は、装置情報を送信する（ステップＳ１００３）。装置情報には、カメラ１０２の機種情報、カメラ１０２を特定するためのＩＤ及びカメラ１０２が備える、前記要求した機能に関する機能プログラムのバージョン番号が含まれる。テレビ１０１は、前記装置情報を受信する（ステップＳ１０２２）。
【００７５】
なお、ここでは機能プログラムのバージョン番号は、装置情報に含まれるとしたが、ステップＳ１００２の機能要求メッセージ等に前記バージョン番号を含めることができるのであれば、そうしてもよい。この場合、装置情報に前記バージョン番号を含める必要はない。
【００７６】
テレビ１０１は、要求された機能が提供できる態勢になっているかどうか、言い換えれば機能プログラムがインストールされているかどうかを判定する（ステップＳ１０２３）。
【００７７】
ここで、機能が提供できる態勢になっていなければ、テレビ１０１は、以下に述べるように機能プログラムをインストールしようとする。しかしながら、この時点で、テレビ１０１は、カメラ１０２側の機能要求を拒否することはしないものとする。上述したように、例えば、機能の指定がバイナリデータフォーマットのコマンド値であれば、そのコマンドに対する拒否応答を返すまでは、要求の拒否にはならないので、テレビ１０１は、機能プログラムのインストールの処理を続行する。
【００７８】
一方、機能の指定がポート番号指定の場合、通常、ポート番号に割り当てられたアプリケーションがなければ、その時点でテレビ１０１のトランスポートプロトコルレイヤがサービスの拒否をカメラ１０２に通知する。しかしながら、これでは、機能プログラムをインストールしてから機能の提供を行なうことができない。この問題を解決するため、本実施形態のテレビ１０１は、指定が予想されるポート番号に対しては予めダミーとなるアプリケーション（ダミーアプリケーション）を起動しておく。そして、トランスポートプロトコルレイヤで一旦、カメラ１０２からの機能要求を受け付けるようにしておく。そして、ダミーアプリケーションが、要求された機能を識別し、機能プログラムの存在を確認する。
【００７９】
また、機能の指定がＵＲＬの場合も同様である。本実施形態のテレビ１０１は、指定されたＵＲＬに対し、特定の機能プログラムが割り当てられていなければ、ダミーのＣＧＩ、又はダミーのＪａｖａ（登録商標）サーブレットを起動する。そして、ダミーのＣＧＩ、又はダミーのＪａｖａ（登録商標）サーブレットが、要求された機能を識別し、機能プログラムの存在を確認するようにする。
【００８０】
テレビ１０１等は、機能を識別する際に、カテゴリ若しくは詳細機能で識別する。そのために、テレビ１０１は、ＲＡＭ２０３上に、図９に示す機能テーブル７００を有している。図９は、機能テーブル７００の一例を示す図である。
【００８１】
機能テーブル７００は、テレビ１０１に現在インストールされている機能プログラムの種類と、バージョン番号とを格納する。機能及び機能プログラムは、カテゴリ７０１及び詳細機能７０３で識別される。どちらによる指定も可能であり、どちらによる指定かは、機能を指定する際のプロトコルによる。例えば「印刷機能」であれば、カテゴリ７０１「印刷」の機能プログラムを指定したことになる。「画像印刷プロトコル１を用いた印刷機能」であれば、詳細機能７０３「画像印刷プロトコル１」の機能プログラムを指定したことになる。詳細機能７０３が示す機能プログラムは、実際のプログラムと１対１に対応している。それに対し、カテゴリ７０１が示す機能プログラムは、そのカテゴリ７０１に属する詳細機能７０３の集合体を指す。
【００８２】
カテゴリ７０１の機能プログラムに対するバージョン番号がバージョン番号７０２である。詳細機能７０３の機能プログラムに対するバージョン番号がバージョン番号７０４である。バージョン番号７０２或いは７０４の欄が「−」であれば、その機能プログラムがインストールされていないことを示す。なお、機能テーブル７００は、機能の分類の一例を示しており、他の分類方法等を用いて機能を分類し、データを格納してもよい。例えば、カテゴリ７０１の下に、粒度がより細かいサブカテゴリを機能テーブル７００に含めるようにしてもよい。
【００８３】
ステップＳ１０２３において、テレビ１０１は、識別した機能プログラムがインストールされていると判定すると、その機能プログラムがカメラ１０２に対応しているかどうかを判定する（ステップＳ１０２４）。
【００８４】
この判定のため、機能テーブル７００には、対応装置リストアドレス７０５が存在する。対応装置リストアドレス７０５には、各機能プログラムに対応する対応装置リスト３０１へのアドレスが格納されている。上述した実施形態では、対応装置リスト３０１は、テレビ１０１にインストールされている全体のプログラムに対応する対応装置のリストを示していた。しかしながら、本実施形態の対応装置リスト３０１は、各機能プログラムに対応しており、複数存在する。
【００８５】
テレビ１０１は、機能プログラムに対応する対応装置リストアドレス７０５が指す対応装置リスト３０１の内容と、受信したカメラ１０２の装置情報と、に基づいて、機能プログラムがカメラ１０２に対応しているかどうかを判定する。
【００８６】
ステップＳ１０２４において、テレビ１０１は、機能プログラムがカメラ１０２に対応していると判定すると、機能プログラムの更新チェックをすべきかどうかを判定する（ステップＳ１０２５）。
【００８７】
この判定のため、機能テーブル７００には、更新チェックフラグ７０６が存在する。更新チェックフラグ７０６が「○」であれば、テレビ１０１は、機能プログラムの更新チェックをすべきであると判定する。一方、更新チェックフラグ７０６が「×」であれば、テレビ１０１は、機能プログラムの更新チェックをすべきでないと判定する。更新チェックフラグ７０６は機能プログラム毎に例えばユーザ等が任意に設定できる。
【００８８】
ステップＳ１０２５において、テレビ１０１は、更新チェックをすべきでない判定すると、要求された機能は実行可能であることを示す「機能実行可」メッセージをカメラ１０２に通知することで応答する（ステップＳ１０３１）。続いて、テレビ１０１は、要求された機能の機能プログラムを実行することで、実際に機能を提供する（ステップＳ１０３２）。そして、テレビ１０１は、処理を終了する。
【００８９】
カメラ１０２は、テレビ１０１より受け取ったメッセージが「機能実行可」か、どうかを判定する（ステップＳ１００４）。「機能実行可」メッセージを受け取ったと判定すると、カメラ１０２は、起動した機能（ここでは「印刷機能」）の機能プログラムを引き続き実行する（ステップＳ１００５）。そして、カメラ１０２は処理を終了する。
【００９０】
ステップＳ１０２３において、テレビ１０１は、識別した機能プログラムがインストールされていないと判定すると、ステップＳ１０２６に進む。また、ステップＳ１０２４において、テレビ１０１は、機能プログラムがカメラ１０２に対応していないと判定すると、ステップＳ１０２６に進む。また、ステップＳ１０２５において、テレビ１０１は、更新チェックをすべきであると判定すると、ステップＳ１０２６に進む。つまり、テレビ１０１は、サーバ１０２に対して、インストールすべきプログラムを有しているかどうかの問い合わせの処理に移行する。
【００９１】
なお、テレビ１０１は、図３のフローチャートにおいて説明したように、プログラムをＣＤ−ＲＯＭドライブ２１３からインストールできるかどうかをチェックするようにしてもよい。但し、本実施形態では、説明の簡略化のため、この処理の説明は省略する。
【００９２】
テレビ１０１は、サーバ１０３に対して、カメラ１０２より要求された、テレビ１０１の機能についての情報（以下、テレビ機能情報という）を送信する（ステップＳ１０２６）。サーバ１０３は、テレビ機能情報を受信する（ステップＳ１０５１）。テレビ機能情報には、機能或いは機能プログラムを特定するためのＩＤ若しくは名前及びテレビ１０１の機能プログラムのバージョン番号が含まれる。テレビ１０１は、これらの情報を、機能テーブル７００のバージョン番号７０２若しくは７０４より得る。機能プログラムがインストールされていない場合、テレビ１０１は、機能プログラムがインストールされていないことを示す所定のバージョン番号をサーバ１０３に送信する。
【００９３】
次に、テレビ１０１は、サーバ１０３に対し自装置に関する装置情報（以下、テレビ装置情報という）を送信する（ステップＳ１０２７）。サーバ１０３は、テレビ装置情報を受信する（ステップＳ１０５２）。テレビ装置情報には、テレビ１０１の機種情報及びテレビ１０１を特定するためのＩＤが含まれる。
【００９４】
次に、テレビ１０１は、サーバ１０３に対しカメラ１０２に関する機能情報（以下、カメラ機能情報という）を送信する（ステップＳ１０２８）。サーバ１０３は、カメラ機能情報を受信する（ステップＳ１０５３）。カメラ機能情報には、機能或いは機能プログラムを特定するためのＩＤ若しくは名前及びカメラ１０２の機能プログラムのバージョン番号が含まれる。テレビ１０１は、機能プログラムのバージョン番号を、例えば、ステップＳ１０２２において受信した装置情報から得る。また、テレビ１０１は、機能を特定するためのＩＤ若しくは名前を、例えば、ステップＳ１０２６において送信したテレビ機能情報から得て使用してもよい。
【００９５】
機能のＩＤ若しくは名前が、テレビ１０１と、カメラ１０２との機能テーブル７００や、後述する機能プログラムテーブル８００等で共通して用いられるものであるならば、テレビ１０１は、ステップＳ１０２６の機能情報に含まれるものを使用することができる。こうした場合、機能のＩＤ若しくは名前を、カメラ１０２からテレビ１０１に対して送る必要がなくなる。テレビ１０１と、カメラ１０２との間で異なる機能のＩＤ若しくは名前を用いなければならないなら、図示しないが、カメラ１０２からテレビ１０１に機能のＩＤ若しくは名前の情報が送られ、ステップＳ１０２８において、その情報が用いられ、送信される。
【００９６】
次に、テレビ１０１は、サーバ１０３に対しカメラ１０２に関する装置情報（以下、カメラ装置情報という）を送信する（ステップＳ１０３３）。サーバ１０３は、カメラ装置情報を受信する（ステップＳ１０５７）。カメラ装置情報には、カメラ１０２の機種情報及びカメラ１０２を特定するためのＩＤが含まれる。
【００９７】
次に、サーバ１０３は、テレビ装置情報及びテレビ機能情報等に基づいて、テレビ１０１にインストールすべきプログラムが有るかどうかを判定する（ステップＳ１０５４）。この処理を行うために、サーバ１０３は、ＲＡＭ２０３内に図１０で示される機能プログラムテーブル８００を備える。図１０は、機能プログラムテーブル８００の一例を示す図である。
【００９８】
機能プログラムテーブル８００は、テレビ１０１用の機能プログラムに関するテーブルであり、各機能プログラムにつき、以下の情報を格納する。つまり、機能プログラムテーブル８００は、機能プログラムの名称を表すプログラム名８０１（機能プログラムのＩＤでもよい）、カテゴリ８０２、サブカテゴリ８０３、機能プログラムのサーバ１０３内の格納場所を示す格納場所８０４、に関する情報を格納する。また、機能プログラムテーブル８００は、機能プログラムの集合体であることを示す複合フラグ８０５、バージョン番号８０６、に関する情報を格納する。また、機能プログラムテーブル８００は、機能プログラムがテレビ１０１に対応しているか否かを示す対応テレビ装置リストへのアドレスを指す対応テレビ装置リストアドレス８０７、に関する情報を格納する。また、機能プログラムテーブル８００は、機能プログラムが、接続された装置が持つ対応する機能プログラムのどのバージョンに対応しているかを示す対応装置リストへのアドレスを指す対応装置リストアドレス８０８に関する情報を格納する。ここで、前記対応装置リストのフォーマットは、対応装置リスト３０１と同様である。
【００９９】
対応テレビ装置リスト（図示せず）には、機能プログラムが動作可能なテレビ１０１の機種のリストが含まれる。このリストには、機能プログラムがその環境で動作可能な、テレビ１０１の全体プログラムのバージョン番号が含まれていてもよい。
【０１００】
機能プログラムテーブル８００に対する機能プログラムの指定は詳細機能レベルでもよいし、カテゴリレベルでもよい。それは、「画像印刷プロトコル１」８５１と、「印刷」８５３と、が同一レベルで機能プログラムテーブル８００に格納されているためである。
【０１０１】
ステップＳ１０５４において、サーバ１０３は、テレビ１０１に機能プログラムがインストールされていないのに、サーバ１０３には機能プログラムが存在する場合、インストールすべきプログラムが有ると判定する。また、ステップＳ１０５４において、サーバ１０３は、テレビ１０１に機能プログラムがインストールされているが、そのバージョンよりも新しいバージョンがサーバ１０３に存在する場合、インストールすべきプログラムが有ると判定する。どちらの場合もテレビ装置情報が、対応テレビ装置リストアドレス８０７が指す対応テレビ装置リストの示す条件を満たし、カメラ装置情報及びカメラ機能情報が、対応装置リストアドレス８０８が指す対応装置リストの示す条件を満たしていなければならない。
【０１０２】
ステップＳ１０５４において、サーバ１０３は、インストールすべきプログラムが有ると判定すると、テレビ１０１に対して、「プログラムインストール有り」メッセージを通知する（ステップＳ１０５５）。テレビ１０１は、「プログラムインストール有り」メッセージを受けると、ステップＳ１０３０に進む。
【０１０３】
続いて、サーバ１０３は、格納場所８０４が指す場所から機能プログラムを取得し、テレビ１０１に対して、取得した機能プログラムを送信する（ステップＳ１０５６）。
【０１０４】
複合フラグ８０５が「○」の場合、機能プログラムは、複数のプログラムからなっている。この場合、格納場所８０４は、格納場所を指すのではなく、図１１に示す複合プログラムテーブル９００を指すようになっている。図１１は、複合プログラムテーブル９００の一例を示す図である。なお、図１１では、印刷プログラムＶｅｒ．１．５に含まれる機能プログラムについてのテーブルの例を示している。
【０１０５】
サーバ１０３は、複合プログラムテーブル９００から各機能プログラムの格納場所を知ることができ、複数のプログラムを取得し、テレビ１０１に送信できる。
【０１０６】
なお、サーバ１０３は、機能プログラムをテレビ１０１に送信する際に、送信する機能プログラムのバージョン番号も送信する。必要に応じて、サーバ１０３は、機能プログラムをテレビ１０１に送信する際に、送信する機能プログラムのバージョン番号に対応する対応装置リスト３０１を送信してもよい。
【０１０７】
テレビ１０１は、サーバ１０３より送信された機能プログラム、及び機能プログラムのバージョン番号を受信する（ステップＳ１０３０）。なお、テレビ１０１は、必要に応じて、サーバ１０３より送信された機能プログラムのバージョン番号に対応する対応装置リスト３０１も受信する。続いて、テレビ１０１は、受信した機能プログラムをインストールする（図８のステップＳ１１０６）。
【０１０８】
ステップＳ１０５４において、サーバ１０３は、テレビ１０１に対しインストールすべきプログラムは無いと判定すると、テレビ１０１に対し「プログラムインストール無し」メッセージを通知する（ステップＳ１１１３）。
【０１０９】
テレビ１０１は、「プログラムインストール無し」メッセージを受け取ると、ステップＳ１１０７に進む。
【０１１０】
サーバ１０３は、機能プログラムの送信を行った後、カメラ１０２に対してインストールすべきプログラムは有るかどうかを判定する（ステップＳ１１１４）。
【０１１１】
機能プログラムテーブル８００は、テレビ１０１用の機能プログラムに関するテーブルだが、サーバ１０３は、このテーブルと同様なカメラ１０２用の機能プログラムテーブルをＲＡＭ２０３に記憶している。サーバ１０３は、このテーブルを用いて、ステップＳ１０５４と同様に、カメラ１０２に対しインストールすべきプログラムは有るかどうかを判定する。
【０１１２】
即ち、カメラ１０２に機能プログラムがインストールされていないのに、サーバ１０３に機能プログラムが存在する場合、サーバ１０３は、ステップＳ１１１４において、カメラ１０２に対してインストールすべきプログラムが有ると判定する。又は、カメラ１０２にインストールされている機能プログラムより新しいバージョンの機能プログラムがサーバ１０３に存在する場合、サーバ１０３は、ステップＳ１１１４において、カメラ１０２に対してインストールすべきプログラムが有ると判定する。
【０１１３】
当然どちらの場合もカメラ１０２の装置情報が、対応カメラ装置リストアドレスが指す対応カメラ装置リストの示す条件を満たし、且つ、カメラ１０２の装置情報が、対応装置リストアドレス８０８が指す対応装置リストの示す条件を満たしていなければならない。なお、ここで、対応カメラ装置リストは、図示していないが、対応テレビ装置リストアドレス８０７に対応する対応装置リストである。
【０１１４】
対応カメラ装置リストは、カメラ１０２の機種情報と、機能プログラムのバージョン番号とに対応する装置のリストである。対応カメラ装置リストには、カメラ１０２と連携動作が可能な相手装置（ここではテレビ１０１）の機種情報と、機能プログラムのバージョン番号とについての条件が記述されている。ステップＳ１１１４における判定の際に用いられるテレビ１０１の機能プログラムのバージョン番号は、ステップＳ１１０６において、機能プログラムのインストールがあった場合は、その機能プログラムのバージョン番号が用いられる。
【０１１５】
カメラ１０２が機能を起動しようとしたときに、カメラ１０２に、前記機能を使用するための機能プログラムがインストールされていないということはあり得る。ステップＳ１０５６及びステップＳ１０３０等でサーバ１０３より送信された機能プログラムがテレビ１０１にインストールされたとする。そして、前記機能プログラム（又は機能）を使用するための、カメラ１０２向けの機能プログラムがサーバ１０３等に用意されているとする。このとき、前記機能プログラムは、まだカメラ１０２にインストールされていないので、この機能プログラムをカメラ１０２にインストールする必要がある。
【０１１６】
カメラ１０２にインストールする機能プログラムが存在する場合、サーバ１０３は、テレビ１０１に対して「プログラムインストール有り」メッセージを通知する（ステップＳ１１１５）。インストールする機能プログラムが存在しない場合、サーバ１０３は、テレビ１０１に対して「プログラムインストール無し」メッセージを通知する（ステップＳ１１１７）。
【０１１７】
「プログラムインストール有り」メッセージが通知されると、テレビ１０１は、ステップＳ１１０８に進む。「プログラムインストール無し」メッセージが通知されると、テレビ１０１は、ステップＳ１１１２に進み、カメラ１０２に対し「プログラムインストール無し」メッセージを通知する（ステップＳ１１１２）。
【０１１８】
ステップＳ１１１５の処理に続いて、サーバ１０３は、テレビ１０１に対してカメラ１０２用の機能プログラムを送信する（ステップＳ１１１６）。なお、サーバ１０３は、機能プログラムをテレビ１０１に送信する際に、送信する機能プログラムのバージョン番号も送信する。必要に応じて、サーバ１０３は、機能プログラムをテレビ１０１に送信する際に、送信する機能プログラムのバージョン番号に対応する対応装置リスト３０１を送信してもよい。
【０１１９】
テレビ１０１は、サーバ１０３より送信された機能プログラム、及び機能プログラムのバージョン番号を受信する（ステップＳ１１０８）。
【０１２０】
続いて、テレビ１０１は、カメラ１０２に対し「プログラムインストール有り」メッセージを通知する（ステップＳ１１０９）。このメッセージが通知されると、カメラ１０２は、ステップＳ１１０２に進む。
【０１２１】
ステップＳ１１０９の処理に続いて、テレビ１０１は、カメラ１０２に対して機能プログラムを送信する（ステップＳ１１１０）。カメラ１０２は、機能プログラムを受信する（ステップＳ１１０２）。
【０１２２】
テレビ１０１は、ステップＳ１１０６において、自装置に機能プログラムをインストールしたかどうかを判定する（ステップＳ１１１８）。
【０１２３】
テレビ１０１は、インストールしたと判定すると、インストールした機能（ここでは印刷機能）を再起動すべく、インストールした機能プログラムを再起動する（ステップＳ１１１９）。テレビ１０１は、インストールしていないと判定すると、ステップＳ１１１９の処理をスキップする。
【０１２４】
最後に、テレビ１０１は、機能を実行する（ステップＳ１１１１）。そして、テレビ１０１は、処理を終了する。
【０１２５】
カメラ１０２は、受信した機能プログラムをインストールする（ステップＳ１１０３）。続いて、カメラ１０２は、インストールした機能（ここでは印刷機能）を再起動すべく、その機能プログラムを再起動する（ステップＳ１１０４）。
【０１２６】
最後に、カメラ１０２は、機能を実行する（ステップＳ１１０５）。そして、カメラ１０２は、処理を終了する。
【０１２７】
ステップＳ１１０１において、「プログラムインストール有り」メッセージが通知されなかった場合、カメラ１０２は、機能プログラムをインストールすることなく、ステップＳ１１０５に移る。
【０１２８】
次に、プログラムをインストール、アンインストールする動作手順について、以下に示すフローチャートを用いて説明する。
【０１２９】
図１２は、プログラムをインストールするときのインストール手順の一例を示すフローチャートである。図１２に示すフローチャートはテレビ１０１或いはカメラ１０２の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ１０１を用いて説明を行なう。
【０１３０】
プログラムをインストールするとき、テレビ１０１は、そのインストールが永続的なインストールかどうかを問い合わせるダイアログをディスプレイ２０５に表示する（ステップＳ１２０１）。
【０１３１】
ユーザは操作ボタン２０８を使用して、ダイアログに応答する。ダイアログの応答結果に基づいて、テレビ１０１は、永続的なインストールか否かを判定する。テレビ１０１は、永続的なインストールであると判定すると（ステップＳ１２０２においてＹ）、ステップＳ１２０３に進む。テレビ１０１は、永続的なインストールでないと判定すると（ステップＳ１２０２においてＮ）、ステップＳ１２０６に進む。
【０１３２】
ステップＳ１２０３において、テレビ１０１は、プログラムに関する永続インストールリスト（永続インストールであると登録された装置のリスト）の装置登録個数が所定の最大数を超えたかどうかを判定する（ステップＳ１２０３）。
【０１３３】
テレビ１０１は、最大数を超えていないと判定すると（ステップＳ１２０３においてＮ）、接続されている相手装置を永続インストールリストに登録する（ステップＳ１２０４）。一方、テレビ１０１は、最大数を超えていたと判定すると（ステップＳ１２０３においてＹ）、その旨を表示する（ステップＳ１２０５）。
【０１３４】
最後に、テレビ１０１は、インストールを行ったプログラムのリストであるインストールリストにプログラムを登録する（ステップＳ１２０６）。そして、テレビ１０１は、図１２に示す処理を終了する。なお、テレビ１０１は、プログラムをインストールするステップ（又は処理）も当然実行するが、図１２では省略している。
【０１３５】
次に、接続解除手順１について、図１３のフローチャートを用いて説明する。図１３は、接続解除手順１の一例を示すフローチャートである。図１３に示すフローチャートはテレビ１０１或いはカメラ１０２の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ１０１を用いて説明を行なう。
【０１３６】
装置同士の接続が解除されたとき、テレビ１０１は、インストールリストを見て、インストールされたプログラムで以下の処理が未処理のプログラムが残っているかどうかを判定する（ステップＳ１３０１）。
【０１３７】
テレビ１０１は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていないと判定すると（ステップＳ１３０１においてＮ）、図１３に示す処理を終了する。テレビ１０１は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていると判定すると（ステップＳ１３０１においてＹ）、Ｓ１３０２に進む。
【０１３８】
ステップＳ１３０２において、テレビ１０１は、処理対象となるプログラムをインストールリストから取得する（ステップＳ１３０２）。続いて、テレビ１０１は、取得したプログラムに関して接続解除する相手装置は永続インストールリストに登録されているかどうかを判定する（ステップＳ１３０３）。
【０１３９】
テレビ１０１は、登録されていると判定すると（Ｓ１３０３においてＮ）、ステップＳ１３０４に進む。ステップＳ１３０４において、テレビ１０１は、処理対象となるプログラムをアンインストールする。一方、テレビ１０１は、登録されていないと判定すると、（Ｓ１３０３においてＹ）、次のプログラムへの処理に移るべく、ステップＳ１３０１に戻る。
【０１４０】
次に、装置登録変更手順について、図１４のフローチャートを用いて説明する。図１４は、装置登録変更手順の一例を示すフローチャートである。図１４に示すフローチャートはテレビ１０１或いはカメラ１０２の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ１０１を用いて説明を行なう。
【０１４１】
まず、登録を変更しようとするプログラムをダイアログ等の所定のユーザインタフェースを用いてユーザが選択すると、テレビ１０１は、ユーザが選択したプログラムを識別する情報を取得する（ステップＳ１４０１）。
【０１４２】
テレビ１０１は、前記情報に基づいて、ユーザが選択したプログラムに関する永続インストールリストの内容を表示する（ステップＳ１４０２）。
【０１４３】
次に、ユーザが処理方法を選択すると、テレビ１０１は、ユーザが選択した処理方法を識別する情報を取得する。そして、テレビ１０１は、前記情報に基づいて、ユーザが選択した処理が、装置の登録かどうかを判定する（ステップＳ１４０３）。
【０１４４】
テレビ１０１は、ユーザが選択した処理が、装置の登録であると判定すると（ステップＳ１４０３においてＹ）、ステップＳ１４０４に進む。一方、テレビ１０１は、ユーザが選択した処理が、装置の登録でないと判定すると（ステップＳ１４０３においてＮ）、ステップＳ１４０８に進む。ここで、テレビ１０１は、ユーザが選択した処理が、装置の登録でないと判定すると装置の登録削除であると判断する。
【０１４５】
ステップＳ１４０４において、テレビ１０１は、永続インストールリストの装置登録個数が最大数を超えたかどうかを判定する（ステップＳ１４０４）。テレビ１０１は、永続インストールリストの装置登録個数が最大数を超えたと判定すると（ステップＳ１４０４においてＹ）、ステップＳ１４０７に進む。一方、テレビ１０１は、永続インストールリストの装置登録個数が最大数を超えていないと判定すると（ステップＳ１４０４においてＮ）、ステップＳ１４０５に進む。
【０１４６】
ステップＳ１４０５において、ユーザが、登録しようとする装置（登録装置）を選択すると、テレビ１０１は、ユーザが選択した登録装置を識別する情報を取得する。ユーザは、現在接続中の装置の中から登録装置を選択してもよいし、過去接続したことがある装置をテレビ１０１が記憶しておいて、その中から登録装置を選択するようにしてもよい。
【０１４７】
ステップＳ１４０６において、テレビ１０１は、前記情報に基づいて、ユーザによって選択された装置を永続インストールリストに登録する（ステップＳ１４０６）。そして、テレビ１０１は、図１４に示す処理を終了する。
【０１４８】
一方、ステップＳ１４０７において、テレビ１０１は、永続インストールリストの装置登録個数が最大数を超えている旨を表示する。そして、テレビ１０１は、図１４に示す処理を終了する。
【０１４９】
ステップＳ１４０８において、テレビ１０１は、ユーザが選択した、永続インストールリストの中から登録を削除する装置を識別する情報を取得する。続いて、ステップＳ１４０９において、テレビ１０１は、前記情報に基づいて、ユーザによって選択された装置を永続インストールリストから削除する。そして、テレビ１０１は、図１４に示す処理を終了する。
【０１５０】
次に、接続解除手順２について、図１５のフローチャートを用いて説明する。図１５は、接続解除手順２の一例を示すフローチャートである。図１５に示すフローチャートはテレビ１０１或いはカメラ１０２の何れにも適用可能である。但し、以下では説明の簡略化のため、テレビ１０１を用いて説明を行なう。
【０１５１】
図１２及び図１３に示した手順では、インストール時に永続インストールかどうかを判断し、決定していたが、図１５の手順では、接続解除時に永続インストールかどうかを判断し、決定している。
【０１５２】
なお、図１５の手順の場合も、インストール手順ステップＳ１２０６において説明したインストールリストへのプログラム登録はなされているものとする。
【０１５３】
装置同士の接続が解除されたとき、テレビ１０１は、インストールリストを見て、インストールされたプログラムで以下の処理が未処理のプログラムが残っているかどうかを判定する（ステップＳ１５０１）。
【０１５４】
テレビ１０１は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていないと判定すると（ステップＳ１５０１においてＮ）、図１５に示す処理を終了する。テレビ１０１は、インストールされたプログラムで以下の処理が未処理のプログラムが残っていると判定すると（ステップＳ１５０１においてＹ）、Ｓ１５０２に進む。
【０１５５】
ステップＳ１５０２において、テレビ１０１は、処理対象となるプログラムをインストールリストから取得する。続いて、テレビ１０１は、前記プログラムに関して、接続解除する相手装置は永続インストールリストに登録されているかどうかを判定する（ステップＳ１５０３）。テレビ１０１は、相手装置が永続インストールリストに登録されていると判定すると（ステップＳ１５０３においてＹ）、ステップＳ１５０１に戻る。一方、テレビ１０１は、相手装置が永続インストールリストに登録されていないと判定すると（ステップＳ１５０３においてＮ）、ステップＳ１５０４に進む。
【０１５６】
ステップＳ１５０４において、テレビ１０１は、アンインストールしてよいかどうかをユーザに問い合わせるダイアログをディスプレイ２０５に表示する。ユーザの応答が「アンインストールする」であった場合、テレビ１０１は、アンインストールすると判定し、ステップＳ１５０６に進む。一方、ユーザの応答が「アンインストールしない」であった場合、テレビ１０１は、アンインストールしないと判定し、ステップＳ１５０７に進む。
【０１５７】
ステップＳ１５０６において、テレビ１０１は、処理対象のプログラムをアンインストールし、ステップＳ１５０１に戻る。一方、ステップＳ１５０７において、テレビ１０１は、処理対象（処理中）のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えたかどうかを判定する。テレビ１０１は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えたと判定すると（ステップＳ１５０７においてＹ）、ステップＳ１５０８に進む。一方、テレビ１０１は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えていないと判定すると（ステップＳ１５０７においてＮ）、ステップＳ１５０９に進む。  ステップＳ１５０８において、テレビ１０１は、処理対象のプログラムに関する永続インストールリストの装置登録個数が所定の最大数を超えた旨を表示し、ステップＳ１５０６に進む。
【０１５８】
ステップＳ１５０９において、テレビ１０１は、接続解除しようとしていた相手装置を、処理対象のプログラムに関する永続インストールリストに登録し、ステップＳ１５０１に戻る。
【０１５９】
上述した各実施形態は、ハードウエアを必要とするものの、それぞれの装置上で動作するプログラムにより実現可能である。従って、上述した実施形態の機能を実現するソフトウエアのプログラム、及びプログラムコードを記憶した記憶媒体においても、それを読み出して実行することにより、上述した機能、又は処理を実現することができる。
【０１６０】
以上、上述した各実施形態によれば、接続された装置双方に対して、適切なソフトウエア（プログラム又は機能プログラム）を速やかにインストールすることができる。
【０１６１】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１６２】
【図１】プログラムインストールシステムの構成の一例を示すブロック図である。
【図２】テレビ１０１の内部構造の一例を示す図である。
【図３】プログラムインストール処理の一例を示すフローチャート（その１）である。
【図４】プログラムインストール処理の一例を示すフローチャート（その２）である。
【図５】対応装置リストの一例を示す図である。
【図６】カメラ１０２用の対応装置リストの一例を示す図である。
【図７】機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート（その１）である。
【図８】機能の提供を行なうプログラムのインストール処理の一例を示すフローチャート（その２）である。
【図９】機能テーブル７００の一例を示す図である。
【図１０】機能プログラムテーブル８００の一例を示す図である。
【図１１】複合プログラムテーブル９００の一例を示す図である。
【図１２】プログラムをインストールするときのインストール手順の一例を示すフローチャートである。
【図１３】接続解除手順１の一例を示すフローチャートである。
【図１４】装置登録変更手順の一例を示すフローチャートである。
【図１５】接続解除手順２の一例を示すフローチャートである。
【符号の説明】
【０１６３】
１０１  テレビ
１０２  カメラ
１０３  サーバ
１０４  プリンタ
２０１  ＣＰＵ
２０３  ＲＡＭ
２１３  ＣＤ−ＲＯＭドライブ
３０１  対応装置リスト
４００  対応装置リスト
７００  機能テーブル
８００  機能プログラムテーブル
９００  複合プログラムテーブル
【図１】
2007280275.tif 000003
【図２】
2007280275.tif 000004
【図３】
2007280275.tif 000005
【図４】
2007280275.tif 000006
【図５】
2007280275.tif 000007
【図６】
2007280275.tif 000008
【図７】
2007280275.tif 000009
【図８】
2007280275.tif 000010
【図９】
2007280275.tif 000011
【図１０】
2007280275.tif 000012
【図１１】
2007280275.tif 000013
【図１２】
2007280275.tif 000014
【図１３】
2007280275.tif 000015
【図１４】
2007280275.tif 000016
【図１５】
2007280275.tif 000017