(57)【要約】【課題】ネットワークに接続された装置のソフトウェアを更新する場合に、更新プログラムを提供するサーバの負荷を軽減すると共に、ソフトウェアの更新を行う装置の負荷を軽減することが可能な装置、サーバおよびソフトウェア更新プログラムを提供すること。【解決手段】本発明の装置２０ａ〜２０ｃは、更新プログラムと、更新対象のプログラムを更新すべき装置のアドレス情報を含む第１のデバイスリストとを受信し、更新プログラムを自機にインストールして更新対象のプログラムを更新する。そして、第１のデバイスリストを参照し、更新対象のプログラムを更新すべき他の装置が有るか否か判断し、更新対象のプログラムを更新すべき他の装置が有る場合、他の装置のうちの１つに対し、更新プログラムと、更新対象のプログラムが更新されていない装置のアドレス情報を少なくとも含む第２のデバイスリストとを送信する。【選択図】図４
2020057319.tif 000002
【特許請求の範囲】
【請求項１】
更新プログラムと、更新対象のプログラムを更新すべき装置のアドレス情報を含む第１のデバイスリストとを受信する受信部と、
前記更新プログラムを自機にインストールして前記更新対象のプログラムを更新する更新部と、
前記第１のデバイスリストを参照し、前記更新対象のプログラムを更新すべき他の装置が有るか否か判断するデバイス情報管理部と、
前記更新対象のプログラムを更新すべき他の装置が有る場合、前記他の装置のうちの１つに対し、前記更新プログラムと、前記更新対象のプログラムが更新されていない装置のアドレス情報を少なくとも含む第２のデバイスリストとを送信する送信部と
を備える、装置。
【請求項２】
前記送信部は、前記更新対象のプログラムの更新が終了または中止した場合、前記第１のデバイスリストを提供したサーバに対し、前記更新対象のプログラムの更新結果を送信する、請求項１に記載の装置。
【請求項３】
前記受信部は、前記更新対象のプログラムおよび前記第１のデバイスリストをサーバまたは他の装置から受信する、請求項１または２に記載の装置。
【請求項４】
前記更新対象のプログラムおよび前記第１のデバイスリストがサーバから提供される場合、
前記受信部は、前記更新対象のプログラムおよび前記第１のデバイスリストを同一のサーバまたは異なる２つのサーバから受信する、請求項１〜３のいずれか１項に記載の装置。
【請求項５】
演算装置を備える装置において実行されるソフトウェア更新プログラムであって、前記演算装置に対し、
更新プログラムと、更新対象のプログラムを更新すべき装置のアドレス情報を含む第１のデバイスリストとを受信させるステップと、
前記更新プログラムを自機にインストールして更新対象のプログラムを更新させるステップと、
前記第１のデバイスリストを参照し、前記更新対象のプログラムを更新すべき他の装置が有るか否か判断させるステップと、
前記更新対象のプログラムを更新すべき他の装置が有る場合、前記他の装置のうちの１つに対し、前記更新プログラムと、前記更新対象のプログラムが更新されていない装置のアドレス情報を少なくとも含む第２のデバイスリストとを送信させるステップと
を含む、ソフトウェア更新プログラム。
【請求項６】
更新プログラムを順次転送して更新対象のプログラムを更新すべき複数の装置をグループ化するためのグループ化ポリシーに従い、前記複数の装置をグループ化したデバイスリストを作成するデバイスリスト管理部と、
前記複数の装置のうちの１の装置からソフトウェアの更新指示の有無について問合せが有った場合に、問合せ元の装置に対するソフトウェアの更新指示の有無について判断する問合せ処理部と、
ソフトウェアの更新指示が有る場合、前記問合せ元の装置に対し、ソフトウェア更新指示および前記デバイスリストを送信する送信部と
を備える、サーバ。
【請求項７】
前記問合せ処理部は、前記問合せ元の装置が属するグループに属する装置のいずれかに対し、前記ソフトウェア更新指示が既に送信されたか否か判断し、
前記ソフトウェア更新指示が送信されていない場合に、前記問合せ元の装置に対し、前記ソフトウェア更新指示および前記デバイスリストを送信し、
前記ソフトウェア更新指示が既に送信された場合は、前記問合せ元の装置に対し、前記ソフトウェア更新指示および前記デバイスリストを送信しない、請求項６に記載のサーバ。
【請求項８】
前記送信部は、前記ソフトウェア更新指示および前記デバイスリストと共に、前記更新対象のプログラムを前記問合せ元の装置に送信する、請求項６または７に記載のサーバ。
【請求項９】
前記ソフトウェア更新指示により、前記問合せ元の装置に対し、前記更新対象のプログラムを提供するサーバから前記更新対象のプログラムを取得させる、請求項６または７記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は装置、サーバおよびソフトウェア更新プログラムに関し、特に、ソフトウェアを更新するための装置、サーバおよびソフトウェア更新プログラムに関する。
【背景技術】
【０００２】
従来、ネットワークに接続されたデバイスにおいて、遠隔のサーバから更新プログラムをダウンロードしてプログラムを更新する技術が利用されている。
【０００３】
例えば、特許文献１が開示するソフトウェア更新方法では、更新対象のソフトウェアを搭載した複数の更新処理装置のうちの１の更新処理装置が、配信装置から更新プログラムを受信して自機のソフトウェアを更新する。その後、更新処理装置が、ブロードキャストまたはマルチキャストによって検索パケットを送信して、ソフトウェアを更新すべき他の更新処理装置を検索する。そして、検出された他の更新処理装置が複数存在する場合、更新処理装置が、所定の数の更新処理装置を選択し、これらの更新処理装置に対し、それぞれ更新プログラムを提供してソフトウェアを更新させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５―９９５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１が開示するソフトウェア更新方法では、更新処理装置自体が、ソフトウェアを更新すべき他の更新処理装置を検索しなければならず、また、検出された複数の更新処理装置に対して、それぞれ更新プログラムを提供しなくてはならないため、更新処理装置に負荷がかかるという問題があった。
【０００６】
本発明の目的は、上述した課題を鑑み、ネットワークに接続された装置のソフトウェアを更新する場合に、更新プログラムを提供するサーバの負荷を軽減すると共に、ソフトウェアの更新を行う装置の負荷を軽減することが可能な装置、サーバおよびソフトウェア更新プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の装置は、更新プログラムと、更新対象のプログラムを更新すべき装置のアドレス情報を含む第１のデバイスリストとを受信する受信部と、前記更新プログラムを自機にインストールして前記更新対象のプログラムを更新する更新部と、前記第１のデバイスリストを参照し、前記更新対象のプログラムを更新すべき他の装置が有るか否か判断するデバイス情報管理部と、前記更新対象のプログラムを更新すべき他の装置が有る場合、前記他の装置のうちの１つに対し、前記更新プログラムと、前記更新対象のプログラムが更新されていない装置のアドレス情報を少なくとも含む第２のデバイスリストとを送信する送信部とを備える。
【発明の効果】
【０００８】
本発明により、ネットワークに接続された装置のソフトウェアを更新する場合に、更新プログラムを提供するサーバの負荷を軽減すると共に、ソフトウェアの更新を行う装置の負荷を軽減することが可能な装置、サーバおよびソフトウェア更新プログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の通信システムの一実施形態を示す概略図である。
【図２】本発明の第１の実施形態に係る管理サーバの詳細な構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るプログラム提供サーバの詳細な構成を示すブロック図である。
【図４】本発明の第１の実施形態に係るデバイスの詳細な構成を示すブロック図である。
【図５】本発明の第１の実施形態に係る管理サーバおよびデバイスの概略的な構成を示すブロック図である。
【図６】本発明の通信システムで実行される処理の一例を示すシーケンス図である。
【図７】本発明の第１の実施形態に係る管理サーバが実行する処理を示すフローチャートである。
【図８】本発明の第１の実施形態に係る管理サーバが実行する処理を示すフローチャートである。
【図９】第１のデバイスが実行する処理を示すフローチャートである。
【図１０】第１のデバイスが実行する処理を示すフローチャートである。
【図１１】第２のデバイスが実行する処理を示すフローチャートである。
【図１２】包括デバイスリストおよびグループ別デバイスリストの一例を示す図である。
【図１３】デバイス用のグループ別デバイスリストの一例を示す図である。
【発明を実施するための形態】
【００１０】
＜第１の実施形態＞
以下、図面を参照して、本発明の第１の実施形態について説明する。図１は、本発明の通信システム１００の一実施形態を示す概略図である。通信システム１００は、管理サーバ１０と、デバイス２０ａ〜２０ｃと、プログラム提供サーバ３０とを含む。管理サーバ１０、デバイス２０ａ〜２０ｃおよびプログラム提供サーバ３０は、ネットワーク４０を介して、相互にデータ通信を行うことができる。ネットワーク４０は、例えば、インターネットやＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）等のネットワークによって構成される。なお、図１には、説明の便宜上、３つのデバイス２０ａ〜２０ｃのみが示されているが、通信システム１００は、任意の数のデバイスを含むことができる。
【００１１】
管理サーバ１０は、デバイス２０ａ〜２０ｃのソフトウェアの更新を管理する情報処理装置である。管理サーバ１０は、更新プログラムをプログラム提供サーバ３０に提供すると共に、ソフトウェアを更新すべきデバイスの情報を含むデバイスリストやソフトウェアの更新指示等をデバイス２０ａ〜２０ｃに提供する。プログラム提供サーバ３０は、管理サーバ１０から提供された更新プログラムを格納し、デバイス２０ａ〜２０ｃからの要求に応じて更新プログラムを提供する情報処理装置である。
【００１２】
デバイス２０ａ〜２０ｃは、更新プログラムを自機にインストールして更新対象のプログラムを更新する装置である。デバイス２０ａ〜２０ｃの具体例として、ネットワーク４０を介したデータ通信が可能なスマートフォンやＰＣ、タブレット型端末、ルータ、家電、センサ等の種々の装置が挙げられる。
【００１３】
図２は、本発明の第１の実施形態に係る管理サーバ１０の詳細な構成を示すブロック図である。管理サーバ１０は、ＣＰＵ（Central Processing Unit）１１０と、記憶装置１２０と、入出力インタフェース（図示せず）とを備える。ＣＰＵ１１０は、種々のプログラムを実行する演算装置である。ＣＰＵ１１０は、ＲＯＭ（Read Only Memory）に保存された本発明のソフトウェア更新プログラムをＲＡＭ（Random Access Memory）に展開して実行することにより、本発明のソフトウェア更新方法を実現する。ソフトウェア更新プログラムには、プログラムモジュールである受信部１１１、デバイスリスト管理部１１２、ユーザ指示入力部１１３、プログラム提供部１１４、問合せ処理部１１５および送信部１１６が含まれる。
【００１４】
受信部１１１は、他の装置からネットワーク４０を介して種々のデータを受信するプログラムモジュールである。受信部１１１は、他の装置から種々のデータを受信すると、これらのデータを処理すべき他のプログラムモジュールに提供する。
【００１５】
デバイスリスト管理部１１２は、デバイス２０ａ〜２０ｃから受信したデバイス情報が登録されるデバイスリストを処理するプログラムモジュールである。具体的には、デバイスリスト管理部１１２は、デバイス２０ａ〜２０ｃから受信したデバイス情報を包括デバイスリスト１２１に登録し、所定のグループ化ポリシーに従ってグループ化された複数のデバイスのデバイス情報が登録されるグループ毎のデバイスリスト（以下、「グループ別デバイスリスト」とする。）を作成する。デバイス２０ａ〜２０ｃが提供するデバイス情報には、デバイスＩＤ（ＭＡＣアドレス等）、デバイスのアドレス情報（ＩＰアドレス等）、デバイスのユーザＩＤ、デバイスのパスワードが含まれる。デバイスリスト管理部１１２は、これらのデバイス情報を、図１２に示すような包括デバイスリストに登録する。包括デバイスリスト１２１には、管理サーバ１０が受信した全てのデバイス情報が登録される。
【００１６】
グループ化ポリシーは、更新プログラムを順次転送して更新対象のプログラムを更新すべき複数のデバイスをグループ化するためのポリシーである。本実施形態が採用するグループ化ポリシーでは、同一の更新プログラムによって更新対象のプログラムを更新すべき複数のデバイスが同一のグループに属する。ここで、同一のグループに属するデバイスの数が所定の数（任意の整数）を超える場合には、ＩＰアドレスによって規定されるサブネット毎にデバイスグループを構成してもよい。また、ＩＰアドレスによって規定される同一のサブネットを分割し、分割されたサブネット毎にデバイスグループを構成してもよい。
【００１７】
デバイスリスト管理部１１２は、デバイス情報を提供したデバイス２０ａ〜２０ｃを、グループ化ポリシーに従ってグループ化する。具体的には、デバイスリスト管理部１１２は、これらのデバイス２０ａ〜２０ｃにグループＩＤを割り当てる。同一のグループに属するデバイスには、同一のグループＩＤが割り当てられる。デバイスリスト管理部１１２は、デバイス２０ａ〜２０ｃのグループＩＤを包括デバイスリスト１２１に登録した後、図１２に示すようなグループ別デバイスリストを作成する。
【００１８】
また、デバイスリスト管理部１１２は、デバイスが提供するプログラムの更新結果を、当該デバイスのデバイスＩＤと関連付けて、包括デバイスリスト１２１およびグループ別デバイスリスト１２２に登録する。プログラムの更新結果には、プログラムの更新が正常に終了した旨を示す正常終了と、プログラムの更新が正常に終了しなかった旨を示す異常終了が含まれる。
【００１９】
ユーザ指示入力部１１３は、ユーザから特定のデバイスについてソフトウェア更新指示を受け付けると、ソフトウェア更新指示が有った旨を示す情報を記憶装置１２０の包括デバイスリスト１２１およびグループ別デバイスリスト１２２に保存する。より詳細には、ユーザ指示入力部１１３は、ユーザが１のデバイスについてソフトウェアの更新を指示した場合、当該１のデバイスが属するグループのグループＩＤが割り当てられている全てのデバイスについて、ソフトウェア更新指示が有った旨を示す情報を包括デバイスリスト１２１およびグループ別デバイスリスト１２２に登録する。例えば、図１２に示す包括デバイスリストやグループ別デバイスリストのデバイスＩＤ「００１」で識別されるデバイスに対し、ユーザからソフトウェア更新指示が有った場合、ユーザ指示入力部１１３は、当該デバイス（デバイスＩＤ：００１）に割り当てられているグループＩＤ「ｇｒｏｕｐ１」と同一のグループＩＤが割り当てられているデバイス（デバイスＩＤ：００２）およびデバイス（デバイスＩＤ：００３）を特定する。そして、ユーザ指示入力部１１３は、ソフトウェア更新指示が有った旨を示す情報を、これらのデバイスのデバイスＩＤ（デバイスＩＤ：００１、デバイスＩＤ：００２およびデバイスＩＤ：００３）に関連付けて登録する。すなわち、ユーザが１のデバイスについてソフトウェアの更新を指示した場合、当該デバイスと同じグループに属するデバイスについてソフトウェアの更新が指示されたものとされる。なお、ユーザからソフトウェア更新指示は、管理サーバ１０の入力装置を介して受け付けることができ、また、ネットワーク４０を介して、他の装置から受け付けることもできる。
【００２０】
プログラム提供部１１４は、通信システム１００に含まれるデバイスがインストールすべき更新プログラムをプログラム提供サーバ３０に提供するプログラムモジュールである。プログラム提供部１１４は、ユーザ指示入力部１１３がユーザから特定のデバイスについてソフトウェア更新指示を受け付けると、当該デバイスにインストールすべき更新プログラム１２３を記憶装置１２０から取得し、送信部１１６を介して、プログラム提供サーバ３０に提供する。このとき、プログラム提供部１１４は、当該デバイスのデバイスＩＤと、当該デバイスと同じグループに属するデバイスのデバイスＩＤを、更新プログラムの属性情報として、更新プログラムと共にプログラム提供サーバ３０に提供する。
【００２１】
問合せ処理部１１５は、通信システム１００に含まれるデバイス２０ａ〜２０ｃから受信したソフトウェア更新指示の有無についての問合せを処理するプログラムモジュールである。問合せ処理部１１５が実行する処理については、図８を参照して詳述する。
【００２２】
送信部１１６は、上述した他のプログラムモジュールの指示により、ネットワーク４０を介して種々のデータや更新プログラムを送信するプログラムモジュールである。
【００２３】
記憶装置１２０は、種々のデータやプログラム、データテーブルが保存される記憶装置であり、ＲＯＭやＲＡＭによって構成することができる。記憶装置１２０には、図１２に示すような包括デバイスリスト１２１およびグループ別デバイスリスト１２２と、更新プログラム１２３が保存される。
【００２４】
図３は、本発明の第１の実施形態に係るプログラム提供サーバ３０の詳細な構成を示すブロック図である。プログラム提供サーバ３０は、ＣＰＵ３１０と、記憶装置３２０と、入出力インタフェース（図示せず）とを備える。ＣＰＵ３１０は、種々のプログラムを実行する演算装置である。ＣＰＵ３１０は、ＲＯＭに保存された本発明のソフトウェア更新プログラムをＲＡＭに展開して実行することにより、本発明のソフトウェア更新方法を実現する。ソフトウェア更新プログラムには、プログラムモジュールである受信部３１１、プログラム処理部３１２および送信部３１３が含まれる。
【００２５】
受信部３１１は、他の装置からネットワーク４０を介して種々のデータや更新プログラムを受信するプログラムモジュールである。受信部３１１は、他の装置から種々のデータや更新プログラムを受信すると、これらを処理すべき他のプログラムモジュールに提供する。
【００２６】
プログラム処理部３１２は、通信システム１００に含まれるデバイスがインストールすべき更新プログラムを処理するプログラムモジュールである。より詳細には、プログラム処理部３１２は、管理サーバ１０から更新プログラムを受信した場合、当該更新プログラムを記憶装置３２０に保存する。また、プログラム処理部３１２は、通信システム１００に含まれるデバイスから更新プログラムを要求された場合、要求元のデバイスのデバイスＩＤと、記憶装置３２０に保存された更新プログラムの属性情報に含まれるデバイスのデバイスＩＤを参照し、要求元のデバイスにインストールすべき更新プログラムを特定する。そして、プログラム処理部３１２は、記憶装置３２０から当該更新プログラムを取得して、要求元のデバイスに送信する。
【００２７】
送信部３１３は、上述した他のプログラムモジュールの指示により、ネットワーク４０を介して種々のデータや更新プログラムを送信するプログラムモジュールである。
【００２８】
記憶装置３２０は、種々のデータやプログラムが保存される記憶装置であり、ＲＯＭやＲＡＭによって構成することができる。記憶装置３２０には、管理サーバ１０から提供された更新プログラム３２１が保存される。
【００２９】
図４は、本発明の第１の実施形態に係るデバイス２０ａの詳細な構成を示すブロック図である。以下、デバイス２０ａの構成について説明する。なお、デバイス２０ｂおよび２０ｃもデバイス２０ａと同様の構成を有する。
【００３０】
デバイス２０ａは、ＣＰＵ２１０と、記憶装置２２０と、入出力インタフェース（図示せず）とを備える。ＣＰＵ２１０は、種々のプログラムを実行する演算装置である。ＣＰＵ２１０は、ＲＯＭに保存された本発明のソフトウェア更新プログラムをＲＡＭに展開して実行することにより、本発明のソフトウェア更新方法を実現する。ソフトウェア更新プログラムには、プログラムモジュールである受信部２１１、デバイス情報管理部２１２、問合せ処理部２１３、タイマ２１４、プログラム要求部２１５、更新部２１６および送信部２１７が含まれる。
【００３１】
受信部２１１は、他の装置からネットワーク４０を介して種々のデータや更新プログラムを受信するプログラムモジュールである。受信部２１１は、他の装置から種々のデータや更新プログラムを受信すると、これらを処理すべき他のプログラムモジュールに提供する。
【００３２】
デバイス情報管理部２１２は、デバイス情報およびデバイスリストを用いて種々の処理を実行するプログラムモジュールである。デバイス情報管理部２１２が実行する処理については、図９〜１１を参照して詳述する。
【００３３】
問合せ処理部２１３は、自機に対するソフトウェア更新指示の有無について管理サーバ１０に問合せを行うプログラムモジュールである。問合せ処理部２１３は、タイマ２１４から現在の時刻情報を取得し、ユーザが予め設定した問合せ時刻になったときに、管理サーバ１０に問合せを行う。タイマ２１４は、時刻を計測するプログラムモジュールである。タイマ２１４は、問合せ処理部２１３から時刻情報を要求されると、現在の時刻情報を問合せ処理部２１３に提供する。
【００３４】
プログラム要求部２１５は、プログラム提供サーバ３０に対し、更新プログラムを要求するプログラムモジュールである。プログラム要求部２１５は、管理サーバ１０からソフトウェア更新指示を受信すると、更新プログラムの要求と共に、自機のデバイスＩＤをプログラム提供サーバ３０に送信し、プログラム提供サーバ３０から更新プログラムを取得する。
【００３５】
更新部２１６は、更新プログラムを自機にインストールして更新対象のプログラムを更新するプログラムモジュールである。更新部２１６は、更新対象のプログラムの更新処理が終了または中止すると、その更新結果を自機のデバイスＩＤと共に管理サーバ１０に提供する。
【００３６】
送信部２１７は、上述した他のプログラムモジュールの指示により、ネットワーク４０を介して種々のデータや更新プログラムを送信するプログラムモジュールである。
【００３７】
記憶装置２２０は、種々のデータやプログラム、データテーブルが保存される記憶装置であり、ＲＯＭやＲＡＭによって構成することができる。記憶装置２２０には、デバイス情報２２１と、図１３に示すような管理サーバ１０や他のデバイスから送信されたグループ別デバイスリスト２２２が保存される。
【００３８】
図５は、第１の実施形態に係る管理サーバ１０およびデバイス２０ａが有する主要なプログラムモジュールを示すブロック図である。管理サーバ１０は、主要なプログラムモジュールとして、上述したデバイスリスト管理部１１２、問合せ処理部１１５および送信部１１６を備える。デバイス２０ａは、主要なプログラムモジュールとして、上述した受信部２１１、デバイス情報管理部２１２、更新部２１６および送信部２１７を備える。
【００３９】
図６は、本発明の通信システム１００で実行される処理の一例を示すシーケンス図である。図６に示す実施形態では、デバイス２０ａ〜２０ｃが同じグループに属するものとする。
【００４０】
まず、通信システム１００に含まれるデバイス２０ａ〜２０ｃが、電源投入時やネットワーク接続等の任意のタイミングで自機のデバイス情報を管理サーバ１０に送信する。管理サーバ１０は、デバイス２０ａ〜２０ｃからデバイス情報を受信すると、包括デバイスリスト１２１およびグループ別デバイスリスト１２２を作成または更新する。次いで、デバイス２０ａが、ソフトウェア更新指示の有無についての問合せを管理サーバ１０に送信する。管理サーバ１０は、デバイス２０ａから当該問合せを受信すると、デバイス２０ａについてソフトウェア更新指示が有るか否か判断する。ソフトウェア更新指示が有る場合、管理サーバ１０は、ソフトウェア更新指示およびグループ別デバイスリストをデバイス２０ａに送信する。
【００４１】
デバイス２０ａは、管理サーバ１０からソフトウェア更新指示を受信すると、プログラム提供サーバ３０に更新プログラムを要求する。プログラム提供サーバ３０は、デバイス２０ａから更新プログラムが要求されると、当該デバイス２０ａにインストールすべき更新プログラムをデバイス２０ａに送信する。デバイス２０ａは、プログラム提供サーバ３０から更新プログラムを受信すると、当該更新プログラムをインストールして、更新対象のプログラムを更新し、その更新結果を管理サーバ１０に送信する。次いで、デバイス２０ａは、グループ別デバイスリストから自機に関する情報を削除し、更新プログラムを送信すべき他のデバイスが有るか否か判断する。更新プログラムを送信すべき他のデバイスが有る場合、デバイス２０ａは、変更したグループ別デバイスリストと、更新対象のプログラムをデバイス２０ｂに送信する。
【００４２】
デバイス２０ｂは、デバイス２０ａから更新プログラムおよびグループ別デバイスリストを受信すると、当該更新プログラムをインストールして、更新対象のプログラムを更新し、その更新結果を管理サーバ１０に送信する。次いで、デバイス２０ｂは、グループ別デバイスリストから自機に関する情報を削除し、更新プログラムを送信すべき他のデバイスが有るか否か判断する。更新プログラムを送信すべき他のデバイスが有る場合、デバイス２０ｂは、変更したグループ別デバイスリストと、更新対象のプログラムをデバイス２０ｃに送信する。
【００４３】
デバイス２０ｃは、デバイス２０ｂから更新プログラムおよびグループ別デバイスリストを受信すると、当該更新プログラムをインストールして、更新対象のプログラムを更新し、その更新結果を管理サーバ１０に送信する。次いで、デバイス２０ｃは、グループ別デバイスリストから自機に関する情報を削除し、更新プログラムを送信すべき他のデバイスが有るか否か判断する。図６に示す実施形態では、更新プログラムを送信すべき他のデバイスが無いため、ここで処理が終了する。
【００４４】
図７は、本発明の第１の実施形態に係る管理サーバが実行する処理を示すフローチャートである。図７に示す処理は、ステップＳ１００で管理サーバ１０の受信部１１１が、通信システム１００に含まれるデバイス２０ａ〜２０ｃのいずれかからデバイス情報を受信することにより開始する。ステップＳ１０１では、デバイスリスト管理部１１２が、デバイスから受信したデバイス情報を包括デバイスリスト１２１に登録する。ステップＳ１０２では、デバイスリスト管理部１１２は、デバイスのグループ化ポリシーに従い、デバイス情報を送信したデバイスにグループＩＤを割り当て、当該グループＩＤを当該デバイスのデバイスＩＤに関連付けて包括デバイスリスト１２１に登録する。ステップＳ１０３では、デバイスリスト管理部１１２は、グループ別デバイスリスト１２２を作成し、ステップＳ１０４で処理が終了する。なお、当該グループＩＤに関連するグループ別デバイスリスト１２２が既に作成されている場合、デバイスリスト管理部１１２は、グループ別デバイスリスト１２２に当該デバイスのデバイス情報を登録する。
【００４５】
図８は、本発明の第１の実施形態に係る管理サーバが実行する処理を示すフローチャートである。図８に示す処理は、管理サーバ１０の受信部１１１が、デバイス２０ａ〜２０ｃのいずれかからソフトウェア更新指示の有無についての問合せを受信することにより、ステップＳ２００から開始する。ステップＳ２０１では、問合せ処理部１１５が、記憶装置１２０に保存されている包括デバイスリスト１２１またはグループ別デバイスリスト１２２を参照し、問合せ元のデバイスについてユーザからソフトウェア更新指示が有ったか否か判断する。ユーザからのソフトウェア更新指示が無い場合（ＮＯ）、ステップＳ２０２に処理が進む。ステップＳ２０２では、送信部１１６が、ソフトウェア更新指示が無い旨の応答を問合せ元のデバイスに返信し、ステップＳ２０８で処理が終了する。一方、ユーザからのソフトウェア更新指示が有った場合（ＹＥＳ）、ステップＳ２０３に処理が進む。
【００４６】
ステップＳ２０３では、問合せ処理部１１５は、包括デバイスリスト１２１またはグループ別デバイスリスト１２２を参照し、問合せ元のデバイスが属するグループのいずれかのデバイスに対し、ソフトウェア更新指示が既に送信されたか否か判断する。ソフトウェア更新指示が既に送信された場合（ＹＥＳ）、ステップＳ２０４で送信部１１６が、ソフトウェア更新指示が送信済である旨の応答を問合せ元のデバイスに返信し、ステップＳ２０８で処理が終了する。一方、ソフトウェア更新指示が送信されていない場合（ＮＯ）、ステップＳ２０５に処理が進む。
【００４７】
ステップＳ２０５では、問合せ処理部１１５は、問合せ元のデバイスが属するグループのグループ別デバイスリスト１２２を記憶装置１２０から取得し、図１３に示すようなデバイス用のグループ別デバイスリストを作成する。ここで、問合せ処理部１１５は、問合せ元のデバイスのデバイスＩＤを用いてグループ別デバイスリスト１２２を特定し、当該グループ別デバイスリスト１２２を用いて、デバイス用のグループ別デバイスリストを作成できる。図１３に示すデバイス用のグループ別デバイスリストには、デバイスＩＤ、アドレス情報およびユーザＩＤが登録される。なお、デバイス用のグループ別デバイスリストにアドレス情報のみが登録されてもよい。
【００４８】
ステップＳ２０６では、送信部１１６は、ソフトウェア更新指示と、デバイス用のグループ別デバイスリストを問合せ元のデバイスに送信する。ステップＳ２０７では、問合せ処理部１１５は、ソフトウェア更新指示を送信した旨を示す情報を包括デバイスリスト１２１およびグループ別デバイスリスト１２２に登録し、ステップＳ２０８で処理が終了する。ここで、問合せ処理部１１５は、問合せ元のデバイスのデバイスＩＤと、当該デバイスと同じグループに属するデバイスのデバイスＩＤに関連付けて、ソフトウェア更新指示が送信済であることを示す情報を登録する。すなわち、問合せ元のデバイスに対し、ソフトウェア更新指示を送信した場合、当該デバイスと同じグループに属するデバイスについてソフトウェア更新指示が送信されたものとされる。
【００４９】
図９および図１０は、本発明の第１の実施形態に係る第１のデバイスが実行する処理を示すフローチャートである。図９および図１０に示す処理は、管理サーバ１０に対して問合せを行う第１のデバイスが実行する処理である。以下、デバイス２０ａが、第１のデバイスとして機能する場合について説明する。
【００５０】
図９に示す処理は、ステップＳ３００から開始し、ステップＳ３０１でデバイス２０ａのデバイス情報管理部２１２が、記憶装置２２０から自機のデバイス情報２２１を取得する。ステップＳ３０２では、送信部２１７が、自機のデバイス情報２２１を管理サーバ１０に送信する。ステップＳ３０３では、問合せ処理部２１３が、タイマ２１４から現在の時刻情報を取得し、ユーザが予め設定した問合せ時刻になったか否か判断する。問合せ時刻になっていない場合（ＮＯ）、ステップＳ３０３の処理が反復される。一方、問合せ時刻になった場合（ＹＥＳ）、ステップＳ３０４に処理が進む。
【００５１】
ステップＳ３０４では、問合せ処理部２１３は、自機に対するソフトウェア更新指示の有無について管理サーバ１０に問合せを送信する。ステップＳ３０５では、問合せ処理部２１３は、管理サーバ１０から問合せに対する応答を受信部２１１が受信したか否か判断する。管理サーバ１０から応答を受信していない場合（ＮＯ）、ステップＳ３０５の処理が再び実行される。一方、管理サーバ１０から応答を受信した場合（ＹＥＳ）、ステップＳ３０６に処理が進む。
【００５２】
ステップＳ３０６では、問合せ処理部２１３は、管理サーバ１０からの応答として、自機に対するソフトウェア更新指示を受信したか否か判断する。ソフトウェア更新指示を受信していない場合（ＮＯ）、ステップＳ３０３に処理が戻る。一方、ソフトウェア更新指示を受信した場合（ＹＥＳ）、ステップＳ３０７に処理が進む。ステップＳ３０７では、デバイス情報管理部２１２が、管理サーバ１０からソフトウェア更新指示と共に受信したデバイス用のグループ別デバイスリストを記憶装置２２０に保存する。
【００５３】
ステップＳ３０８では、プログラム要求部２１５が、更新プログラムをプログラム提供サーバ３０に要求する。ステップＳ３０９では、プログラム要求部２１５は、プログラム提供サーバ３０から更新プログラムを受信したか判断する。更新プログラムを受信していない場合（ＮＯ）、ステップＳ３０９の処理が再び実行される。一方、更新プログラムを受信した場合（ＹＥＳ）、ステップＳ３１０に進む。ステップＳ３１０では、更新部２１６が、更新プログラムをインストールして、更新対象のプログラムを更新する。ステップＳ３１１では、更新部２１６は、プログラムの更新結果を、送信部２１７を介して管理サーバ１０に送信する。
【００５４】
ステップＳ３１２では、デバイス情報管理部２１２が、記憶装置２２０に保存されているグループ別デバイスリストから自機に関する情報（デバイスＩＤ、アドレス情報およびユーザＩＤ）を削除する。ステップＳ３１３では、デバイス情報管理部２１２は、ステップＳ３１２で変更されたグループ別デバイスリストを参照し、更新プログラムを送信すべき他のデバイスが有るか否か判断する。更新プログラムを送信すべき他のデバイスが無い場合（ＮＯ）、ステップＳ３１６で処理が終了する。一方、更新プログラムを送信すべき他のデバイスが有る場合（ＹＥＳ）、ステップＳ３１４に処理が進む。
【００５５】
ステップＳ３１４では、デバイス情報管理部２１２は、変更されたグループ別デバイスリストを参照し、更新プログラムを送信すべき他のデバイスのうち１のデバイスのアドレス情報を取得する。ステップＳ３１５では、送信部２１７が、更新プログラムおよび変更されたグループ別デバイスリストを当該１のデバイスに送信し、ステップＳ３１６で処理が終了する。
【００５６】
図１１は、本発明の第１の実施形態に係る第２のデバイスが実行する処理を示すフローチャートである。図１１に示す処理は、他のデバイスから更新プログラムおよびグループ別デバイスリストを受信した第２のデバイスが実行する処理である。以下、デバイス２０ｂが第２のデバイスとして機能する場合について説明する。
【００５７】
図１１に示す処理は、デバイス２０ｂが他のデバイスから更新プログラムおよびデバイスリストを受信することにより、ステップＳ４００から開始する。ステップＳ４０１では、デバイス情報管理部２１２が、他のデバイスから受信したグループ別デバイスリストを記憶装置２２０に保存する。ステップＳ４０２では、更新部２１６が、他のデバイスから受信した更新プログラムを自機にインストールして、更新対象のプログラムを更新する。ステップＳ４０３では、更新部２１６は、送信部２１７を介して、プログラムの更新結果を管理サーバ１０に送信する。
【００５８】
ステップＳ４０４では、デバイス情報管理部２１２が、グループ別デバイスリストから自機に関する情報を削除する。ステップＳ４０５では、デバイス情報管理部２１２は、ステップＳ４０４で変更されたグループ別デバイスリストを参照し、更新プログラムを送信すべき他のデバイスが有るか否か判断する。更新プログラムを送信すべき他のデバイスが無い場合（ＮＯ）、ステップＳ４０８で処理が終了する。一方、更新プログラムを送信すべき他のデバイスが有る場合（ＹＥＳ）、ステップＳ４０６に処理が進む。
【００５９】
ステップＳ４０６では、デバイス情報管理部２１２は、変更されたグループ別デバイスリストを参照し、更新プログラムを送信すべき他のデバイスのうち１のデバイスのアドレス情報を取得する。ステップＳ４０７では、送信部２１７が、更新プログラムおよび変更されたグループ別デバイスリストを当該１のデバイスに送信し、ステップＳ４０８で処理が終了する。
【００６０】
第１の実施形態では、以下の効果を奏する。すなわち、管理サーバ１０からソフトウェア更新指示を受信したデバイスのみが、プログラム提供サーバ３０から更新プログラムをダウンロードする。このため、通信システム１００に含まれるデバイス２０ａ〜２０ｃが個別にプログラム提供サーバ３０から更新プログラムをダウンロードする構成に比べ、プログラム提供サーバ３０の負荷を軽減することができる。
【００６１】
また、管理サーバ１０のデバイスリスト管理部１１２は、更新プログラムをインストールすべきデバイスの情報が登録されたグループ別デバイスリストを作成するため、更新対象のプログラムを更新すべきデバイス２０ａ〜２０ｃが、検索パケット等を送信して、更新プログラムをインストールすべき他のデバイスを検索する必要がない。このため、デバイス２０ａ〜２０ｃの負荷を軽減することができる。
【００６２】
さらに、管理サーバ１０の問合せ処理部１１５は、問合せ元のデバイスが属するグループに属するデバイスのいずれかに対し、ソフトウェア更新指示を既に送信したか否か判断する。そして、これらのデバイスのうちの１つに対してソフトウェア更新指示が既に送信された場合には、問合せ元のデバイスにソフトウェア更新指示を送信しない。一方、これらのデバイスのうちのいずれに対しても、ソフトウェア更新指示が送信されていない場合に、問合せ元のデバイスにソフトウェア更新指示を送信する。これにより、同じグループに属するデバイスの１つに対してのみソフトウェア更新指示が送信され、当該１のデバイスのみがプログラム提供サーバ３０から更新プログラムをダウンロードする。このため、デバイス２０ａ〜２０ｃからプログラム提供サーバ３０へのアクセス数や、プログラム提供サーバ３０からデバイス２０ａ〜２０ｃへの更新プログラムのダウンロード回数を低減でき、プログラム提供サーバ３０の負荷を軽減することができる。
【００６３】
さらに、管理サーバ１０のユーザ指示入力部１１３は、ユーザが１のデバイスについてソフトウェアの更新を指示した場合、当該１のデバイスが属するグループのグループＩＤが割り当てられている全てのデバイスについて、ソフトウェア更新指示が有った旨を示す情報を包括デバイスリスト１２１およびグループ別デバイスリスト１２２に登録する。すなわち、ユーザが１のデバイスに対し、ソフトウェアの更新を指示した場合、当該デバイスと同じグループに属するデバイスについてソフトウェアの更新が指示されたものとされる。このため、管理サーバ１０のユーザは、１のデバイスについてソフトウェアの更新を指示すると、当該デバイスと同じグループに属するデバイスについて個別にソフトウェアの更新を指示する必要がなく、ユーザビリティが向上する。
【００６４】
さらに、デバイス２０ａ〜２０ｃの更新部２１６は、更新プログラムを自機にインストールし、更新対象のプログラムの更新処理が終了または中止すると、その更新結果を自機のデバイスＩＤと共に管理サーバ１０に提供する。そして、管理サーバ１０のデバイスリスト管理部１１２は、更新結果をデバイスＩＤと関連付けて、包括デバイスリスト１２１およびグループ別デバイスリスト１２２に登録する。このため、管理サーバ１０のユーザは、更新プログラムに関する不具合やインストールエラー等のデバイス毎の情報を得ることができ、デバイスのソフトウェアの更新状況について一元的に管理することができる。
【００６５】
＜第２の実施形態＞
第２の実施形態では、プログラム提供サーバ３０を設けることなく、管理サーバ１０が、プログラム提供サーバ３０の機能を有する。すなわち、本実施形態では、管理サーバ１０は、問合せ元のデバイス２０ａ〜２０ｃにソフトウェア更新指示およびグループ別デバイスリストを送信する際、これらのデータと共に、当該デバイスにインストールすべき更新プログラムを送信する。このため、管理サーバ１０が、更新プログラムをプログラム提供サーバ３０に送信する必要がなく、ネットワーク４０の負荷を軽減することができる。
【００６６】
＜その他の実施形態＞
上述した実施形態が採用するグループ化ポリシーでは、同一の更新プログラムによって更新対象のプログラムを更新すべき複数のデバイスが同一のグループに属するが、他の実施形態では、異なる更新プログラムによって更新対象のプログラムが更新される複数のデバイスを同一のグループに属するようにしてもよい。この場合、管理サーバ１０からソフトウェア更新指示を受信したデバイス２０ａ〜２０ｃは、プログラム提供サーバ３０から複数の異なる更新プログラムを取得する。これにより、デバイス２０ａ〜２０ｃからプログラム提供サーバ３０へのアクセス数をさらに低減することができ、プログラム提供サーバ３０の負担をさらに軽減することができる。
【００６７】
また、更新プログラムのデータ量に応じて、同一の更新プログラムによって更新対象のプログラムが更新される複数のデバイスを同一のグループとし、または、異なる更新プログラムによって更新対象のプログラムが更新される複数のデバイスを同一のグループとするグループ化ポリシーを採用してもよい。この場合、更新プログラムのデータ量が所定のデータ量（例えば、１ＭＢ）を超える場合には、同一の更新プログラムによって更新対象のプログラムが更新される複数のデバイスを同一のグループとする。これにより、デバイス２０ａ〜２０ｃがプログラム提供サーバ３０から取得し、同一のグループ内のデバイス２０ａ〜２０ｃで転送される更新プログラムのデータ量を抑制することができるため、デバイス２０ａ〜２０ｃの負荷を軽減することができる。一方、更新プログラムのデータ量が所定のデータ量（例えば、１ＭＢ）以下である場合には、異なる更新プログラムによって更新対象のプログラムが更新される複数のデバイスを同一のグループとする。これにより、デバイス２０ａ〜２０ｃからプログラム提供サーバ３０へのアクセス数をさらに低減することができ、プログラム提供サーバ３０の負担をさらに軽減することができる。
【００６８】
また、上述した実施形態では、更新対象のプログラムを更新したデバイス２０ａ〜２０ｃは、グループ別デバイスリストから自機に関する情報を削除するが、他の実施形態では、更新対象のプログラムを更新した旨の情報をグループ別デバイスリストに登録し、更新対象のプログラムを更新したデバイスと、更新対象のプログラムを更新していないデバイスとを区別できるようにしてもよい。
【００６９】
さらに、上述した実施形態では、ＣＰＵ１１０，２１０，３１０が、プログラムモジュールをＲＡＭに展開して実行するが、他の実施形態では、これらのプログラムモジュールを論理回路に実装して、上述した処理を実行してもよい。
【００７０】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに提供することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７１】
本発明は上述した実施形態に限られたものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７２】
１００          通信システム
１０            管理サーバ
２０ａ〜２０ｃ  デバイス
３０            プログラム提供サーバ
４０            ネットワーク
【図１】
2020057319.tif 000003
【図２】
2020057319.tif 000004
【図３】
2020057319.tif 000005
【図４】
2020057319.tif 000006
【図５】
2020057319.tif 000007
【図６】
2020057319.tif 000008
【図７】
2020057319.tif 000009
【図８】
2020057319.tif 000010
【図９】
2020057319.tif 000011
【図１０】
2020057319.tif 000012
【図１１】
2020057319.tif 000013
【図１２】
2020057319.tif 000014
【図１３】
2020057319.tif 000015