(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-06
(45)【発行日】2022-12-14
(54)【発明の名称】ゲートウェイ装置、実行プログラム更新方法、サーバ、および実行プログラム更新システム
(51)【国際特許分類】
H04L 67/10 20220101AFI20221207BHJP
G06F 8/65 20180101ALI20221207BHJP
【FI】
H04L67/10
G06F8/65
(21)【出願番号】P 2021039589
(22)【出願日】2021-03-11
【審査請求日】2021-03-11
(73)【特許権者】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】宮澤 亮成
(72)【発明者】
【氏名】小島 一憲
(72)【発明者】
【氏名】鈴木 忠之
(72)【発明者】
【氏名】岡山 一洪
(72)【発明者】
【氏名】武智 信行
【審査官】木村 雅也
(56)【参考文献】
【文献】韓国公開特許第10-2015-0109720(KR,A)
【文献】特表2020-502650(JP,A)
【文献】特開2002-353968(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/10
G06F 8/65
(57)【特許請求の範囲】
【請求項1】
店舗に設置され、無線LANアクセスポイント、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されているゲートウェイ装置であって、
前記無線LANアクセスポイントは、前記店舗に来店した複数のユーザがそれぞれ所持する複数の端末とも通信可能に接続でき、
前記ゲートウェイ装置は、
前記ゲートウェイ装置の実行プログラムを格納する記憶部と、
前記無線LANアクセスポイントから、
前記複数の端末のうち前記無線LANアクセスポイントに通信可能に接続された前記端末のMACアドレスを第1データ
として受信する受信部と、
受信された前記第1データを、前記第1サーバに送信する送信部と、
前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、
取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、
前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、
特定された前記更新データを、前記第3サーバから取得する第2取得部と、
取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備え
、
前記第1取得部は、前記受信部が受信した前記第1データの数が基準値を下回っている期間に前記更新指示データを取得する、
ゲートウェイ装置。
【請求項2】
店舗に設置され、電子機器、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されているゲートウェイ装置であって、
前記ゲートウェイ装置の実行プログラムを格納する記憶部と、
前記電子機器から、当該電子機器の動作状況を示す動作状況情報を第1データとして受信する受信部と、
受信された前記第1データを、前記第1サーバに送信する送信部と、
前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、
取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、
前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、
特定された前記更新データを、前記第3サーバから取得する第2取得部と、
取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備え、
前記第1取得部は、前記受信部が受信した第1データが前記電子機器の停止を示すものとなっている期間に前記更新指示データを取得する、
ゲートウェイ装置。
【請求項3】
前記第1取得部が前記更新指示データを取得するとき、前記店舗の営業は終了している、
請求項1又は2に記載のゲートウェイ装置。
【請求項4】
前記判定部は、取得した前記更新データと過去の更新データとを比較し差分がある場合に、前記取得した前記更新データに含まれる前記差分によって指示される前記実行プログラムの更新が必要であると判定する、
請求項1~3のいずれか1項に記載のゲートウェイ装置。
【請求項5】
前記第1サーバに送信された前記第1データは、前記第1サーバにおいて加工され、前記第1サーバ
にアクセスした端末装置において表示される、
請求項1~3のいずれか一項に記載のゲートウェイ装置。
【請求項6】
前記更新部は、前記実行プログラムの更新を開始した後、前記実行プログラムの更新を完了できなかった場合、エラー情報を出力する、請求項1~
3のいずれか一項に記載のゲートウェイ装置。
【請求項7】
複数の電子機器、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されているゲートウェイ装置であって、
前記ゲートウェイ装置の実行プログラムを格納する記憶部と、
前記複数の電子機器のうちの少なくともいずれかの電子機器から、当該電子機器に関する第1データを受信する受信部と、
受信された前記第1データを、前記第1サーバに送信する送信部と、
前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、
取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、
前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、
特定された前記更新データを、前記第3サーバから取得する第2取得部と、
取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備え、
前記受信部は、前記複数の電子機器のそれぞれから、当該電子機器に関する前記第1データを受信し、
前記第1取得部は、受信された前記第1データの数が基準値を下回る場合、前記更新指示データの取得を要求するための取得要求を前記第2サーバに送信することによって、前記第2サーバから前記更新指示データを取得する、
ことを特徴とするゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲートウェイ装置、実行プログラム更新方法、サーバ、および実行プログラム更新システムに関する。
【背景技術】
【0002】
特許文献1に、家電製品等のエッジデバイスにおいて、エッジデバイスに対する機能追加が必要と判定された場合に、機能を追加するための更新プログラムをサーバから自動的に取得する技術の一例が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1には、ゲートウェイ装置に対して自動的に機能を追加するための工夫については、何ら開示されていない。
【0005】
IoT時代以前に使用されていた従来のゲートウェイ装置では、エッジデバイスのデータをいかに速く確実に安全にサーバに送るかという中継機能の向上が主なテーマである。しかし、最近のIoT時代では、ネットワークに繋がるデバイスが爆発的に増えたことによって、中継地となるゲートウェイ装置数も同様に爆発的に増えている。それに伴って、扱われるデータも急激に増加している。そのため、ゲートウェイ装置が単に中継能力しか持たないと、データ増加に伴いネットワークやサーバに大きな負荷が掛かってしまう。
【0006】
そこで、最近ではゲートウェイ装置に多機能が求められるようになっている。ゲートウェイ装置に機能を追加する方法として、新たな機能に対応するハードウェアをゲートウェイ装置に人手で追加する方法があり得る。しかし、上述したようにゲートウェイ装置の数が非常に多いことを考慮すると、ハードウェアを人手で追加する方法は現実的ではない。したがって、ゲートウェイ装置に効率的に新たな機能を追加する技術が求められている。
【0007】
本発明は前記の課題を解決するためになされたものであり、その目的は、ゲートウェイ装置に効率的に新たな機能を追加する技術を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一態様に係るゲートウェイ装置は、前記の課題を解決するために、複数の電子機器、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されているゲートウェイ装置であって、前記ゲートウェイ装置の実行プログラムを格納する記憶部と、前記複数の電子機器のうちの少なくともいずれかの電子機器から、当該電子機器に関する第1データを受信する受信部と、受信された前記第1データを、前記第1サーバに送信する送信部と、受信された前記第1データに基づいて、前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、特定された前記更新データを、前記第3サーバから取得する第2取得部と、取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備えている。
【発明の効果】
【0009】
本発明の一態様によれば、ゲートウェイ装置に効率的に機能を追加することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係る店舗監視システムの構成を示す図である。
【
図2】店舗の店舗情報を可視化する際にゲートウェイ装置および第1サーバによって実行される一連の処理の流れを示すシーケンス図である。
【
図3】ゲートウェイ装置によって実行されるプログラム更新処理の一連の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
(店舗監視システム100の構成)
図1は、本発明の実施形態に係る店舗監視システム100の構成を示す図である。この図に示すように、店舗監視システム100(実行プログラム更新システム)は、ゲートウェイ装置1、第1サーバ20、第2サーバ30、および第3サーバ40を備えている。ゲートウェイ装置1は、第1サーバ20、第2サーバ30、および第3サーバ40と、ネットワークを介して通信可能に接続されている。
【0012】
図1に示すように、第1サーバ20は、サーバ通信部21、記憶部22、および可視化部23を備えている。サーバ通信部21は、ゲートウェイ装置1と通信する。記憶部22には、ゲートウェイ装置1を認証するための認証情報が格納されている。可視化部23は、認証情報を用いて認証されたゲートウェイ装置1から受信した店舗の店舗情報(第1データ)を可視化する。
【0013】
図1に示すように、第2サーバ30は、サーバ通信部31(通知部、サーバ受信部、サーバ送信部)および記憶部32(サーバ記憶部)を備えている。サーバ通信部31は、ゲートウェイ装置1と通信する。記憶部32には、ゲートウェイ装置1を認証するための認証情報が格納されている。記憶部32には、必要に応じて更新指示データおよび更新フラグが格納される。
【0014】
図1に示すように、第3サーバ40は、サーバ通信部41および記憶部42を備えている。サーバ通信部41は、ゲートウェイ装置1と通信する。記憶部42には、更新データが格納されている。
【0015】
本実施形態では、第1サーバ20、第2サーバ30、および第3サーバ40はいずれも物理的なサーバ装置である。これに限らず、第1サーバ20、第2サーバ30、および第3サーバ40の少なくともいずれかは、クラウド上に構築される仮想サーバであってもよい。また、第2サーバ30は、第3サーバ40の機能を兼ね備えていても良い。
【0016】
第1サーバ20、第2サーバ30、第3サーバ40は、いずれも、ゲートウェイ装置1との間でセキュリティが担保された通信が可能となっている。すなわち、第1サーバ20は、第1サーバ20がゲートウェイ装置1を認証することができた場合にのみ、ゲートウェイ装置1との通信を継続することができる。第2サーバ30も、同様に、第2サーバ30がゲートウェイ装置1を認証することができた場合にのみ、ゲートウェイ装置1との通信を継続することができる。第3サーバ40も、同様に、第3サーバ40がゲートウェイ装置1を認証することができた場合にのみ、ゲートウェイ装置1との通信を継続することができる。
【0017】
店舗監視システム100は、店舗を監視するために使用されるネットワークシステムである。店舗には、ゲートウェイ装置1、ルータ2、プリンタ3、およびタブレット端末4が配置されている。これらの電子機器は、いずれも店舗の備品であり、店舗の関係者によって使用される。例えば、ゲートウェイ装置1は店舗内の情報を収集するために使用され、タブレット端末4は店舗に来店したユーザに対する来客対応のために使用される。ゲートウェイ装置1、ルータ2、プリンタ3、およびタブレット端末4はいずれも通信機能を有しており、店舗内に構築されるローカルネットワークを通じて互いに通信可能に接続されている。
【0018】
店舗には、ユーザへのサービスとしてユーザに提供される無線LANアクセスポイント5が用意されている。ユーザは、WiFi(登録商標)機能を有するスマートフォン6などの携帯端末装置を所持して店舗を訪問した場合、携帯端末装置のWiFi機能をオンにすれば、店舗の無線LANアクセスポイント経由でインターネットにアクセスすることができる。ゲートウェイ装置1は、WiFi機能をオンにした状態で店舗内に存在されるユーザのスマートフォン6と、無線LANアクセスポイント5を介して通信可能に接続される。ゲートウェイ装置1は、店舗に存在するユーザのスマートフォン6に関する情報を、ユーザ個人を特定しない形でユーザのスマートフォン6から適宜受信することができる。
【0019】
以上のように、ゲートウェイ装置1は、店舗内に配置される、店舗側の電子機器(ルータ2など)およびユーザ側の電子機器(スマートフォン6など)を含む複数の電子機器と、ローカルネットワークを介して通信可能に接続されている。詳しくは後述するが、ゲートウェイ装置1は、これらの複数の電子機器に関する情報を店舗情報として定期的に収集し、第1サーバ20に送信する。第1サーバ20は、受信した店舗情報を、店舗監視システム100の管理者が店舗の現況を視覚的に容易に把握できるように可視化する。
【0020】
(ゲートウェイ装置1の構成)
図1に示すように、ゲートウェイ装置1は、通信部11(受信部、送信部)、更新判定部12(判定部)、更新指示データ取得部13(第1取得部)、更新データ取得部14(特定部、第2取得部)、プログラム更新部15(更新部)、プログラム実行部16、および記憶部17を備えている。
【0021】
通信部11は、店舗内の複数の電子機器と通信する。更新判定部12は、ゲートウェイ装置1の実行プログラムを更新するか否かを判定する。更新指示データ取得部13は、実行プログラムの更新を指示するための更新指示データを、第2サーバ30から取得する。更新データ取得部14は、実行プログラムを更新するための更新データを特定し、特定された更新データを第3サーバ40から取得する。プログラム更新部15は、取得された更新データに基づいて、実行プログラムを更新する。プログラム実行部16は、実行プログラムを実行する。記憶部17は、ゲートウェイ装置1の実行プログラムを格納している。記憶部17は、図示しないゲートウェイIDおよび認証キーも格納している。ゲートウェイIDは、ゲートウェイ装置1を一意に特定するための識別子である。認証キーは、ゲートウェイIDに対応するパスワードである。
【0022】
(店舗情報の可視化)
図2は、店舗の店舗情報を可視化する際にゲートウェイ装置1および第1サーバ20によって実行される一連の処理の流れを示すシーケンス図である。
図2に示す一連の処理が実行される前に、通信部11は、店舗内の各電子機器から、当該電子機器に関する情報を店舗情報として受信している。例えば、各電子機器のMACアドレスを、各電子機器の店舗情報として受信する。
【0023】
図2に示すように、ステップS1において、ゲートウェイ装置1の通信部11は、ゲートウェイ装置1の認証情報を第1サーバ20に送信する。この際、記憶部17に格納されるゲートウェイIDおよび認証キーが、認証情報として送信される。ステップS2において、第1サーバ20のサーバ通信部21は、ゲートウェイ装置1から送信された認証情報を受信する。ステップS3において、サーバ通信部21は、受信したゲートウェイ装置1の認証情報に基づいて、ゲートウェイ装置1の認証が可能か否かを判定する。サーバ通信部21は、例えば、受信したゲートウェイIDおよび認証キーの組み合わせが、記憶部22に格納されているゲートウェイ装置1のゲートウェイIDおよび認証キーの組み合わせと一致する場合、ゲートウェイ装置1を認証する。一方、各組み合わせが相違する場合、ゲートウェイ装置1を認証しない。
【0024】
サーバ通信部21は、ゲートウェイ装置1を認証しない場合(ステップS3においてNO)、ステップS4において、ゲートウェイ装置1との通信を拒否する。したがって、サーバ通信部21は、この後にゲートウェイ装置1から店舗情報が第1サーバ20に送信されたとしても、その店舗情報を受信しない。
【0025】
一方、サーバ通信部21は、ゲートウェイ装置1を認証する場合(ステップS3においてYes)、ステップS5において、第1サーバ20がゲートウェイ装置1を認証したことをゲートウェイ装置1に通知する。ステップS6において、通信部11は、この通知を受信する。通信部11は、認証の通知を受信したことに基づいて、ステップS7において店舗情報を第1サーバ20に送信する。サーバ通信部21は、ステップS8において、ゲートウェイ装置1から送信された店舗情報を受信する。第1サーバ20の可視化部23は、ステップS9において、受信した店舗情報を可視化用の情報に加工する。例えば、可視化部23は、受信した店舗情報に、ゲートウェイ装置1が設置される店舗に関する拠点情報を付与する。
【0026】
ステップS10において、可視化部23は、加工された店舗情報を可視化する。可視化部23は、例えば、店舗情報をグラフ化したり、リスト化したりして、管理者が店舗情報を容易に把握できるようにする。第1サーバ20において可視化された店舗情報は、管理者によって操作される各種の端末装置(パソコン、タブレット端末、スマートフォンなど)において表示可能である。
【0027】
(プログラム更新処理)
図3は、ゲートウェイ装置1によって実行されるプログラム更新処理の一連の流れを示すフローチャートである。この図に示すように、ステップS11において、ゲートウェイ装置1の更新判定部12は、店舗内に存在する電子機器の数が基準値を下回るか否かを判定する。この基準値は、ゲートウェイ装置1において予め定められており、例えば10である。更新判定部12は、通信部11によって受信される複数の電子機器の各MACアドレスに基づいて、この判定処理を実行する。MACアドレスは、店舗内においてゲートウェイ装置1と通信可能に接続されている各電子機器に一意のデータである。そのため、受信されたMACアドレスの数は、店舗内でゲートウェイ装置1と通信可能な状態で存在する電子機器の数に等しい。そこで更新判定部12は、直近で受信されたMACアドレスの数が基準値を下回る場合、店舗内に存在する電子機器の数が基準値を下回ると判定する。例えば、受信されたMACアドレスの数が8個あれば、店舗内に存在する電子機器の数は基準値を下回ると判定し、12個あれば、店舗内に存在する電子機器の数は基準値を下回らないと判定する。
【0028】
更新判定部12は、店舗内に存在する電子機器の数は基準値を下回らないと判定した場合(ステップS11においてNO)、ステップS12において、一定時間待機する。ここで更新判定部12は、例えば通信部11が各電子機器のMACアドレスを新たに受信するまで待機する。この後、図の処理はステップS11に戻り、更新判定部12は、新たに受信された受信されたMACアドレスの数に基づいて、ステップS11の判定処理を実行する。このようにして、ゲートウェイ装置1は、店舗内に存在する電子機器の数が基準値を下回るという条件が満たされるまで、プログラム更新処理を保留する。
【0029】
(更新フラグの確認)
更新指示データ取得部13は、店舗内に存在する電子機器の数が基準値を下回ると判定された場合(ステップS12においてYES)、ステップS13において、更新フラグの有無を第2サーバ30に問い合わせる。この際、更新指示データ取得部13は、第2サーバ30にゲートウェイ装置1の認証情報を送信する。ここでは、更新指示データ取得部13は、認証情報としてゲートウェイIDおよび認証キーを送信する。第2サーバ30は、ゲートウェイ装置1から送信された認証情報に基づいて、ゲートウェイ装置1を認証する。第2サーバ30によって予め管理されているゲートウェイ装置1のゲートウェイIDおよび認証キーの組み合わせと一致する場合、ゲートウェイ装置1を認証する。一方、両者が一致しない場合、ゲートウェイ装置1を認証しない。
【0030】
店舗監視システム100の管理者は、ゲートウェイ装置1の実行プログラムを更新する必要が生じた場合、実行プログラムの更新をゲートウェイ装置1に指示するための更新指示データを作成し、記憶部32に予め保存しておく。これを受けて、第2サーバ30は、店舗監視システム100に含まれるゲートウェイ装置1ごとに個別の更新フラグを生成し、記憶部32に保存する。具体的には、各ゲートウェイ装置1のゲートウェイIDに、当該ゲートウェイ装置1に対応する更新フラグを関連付けて、記憶部32に保存する。この結果、記憶部32は、店舗監視システム100を構成するゲートウェイ装置1と同一数の更新フラグを格納する。例えば、店舗監視システム100に100台のゲートウェイ装置1が含まれる場合、記憶部32には、100個の更新フラグが格納される。
【0031】
サーバ通信部31は、ゲートウェイ装置1を認証した場合、ゲートウェイ装置1から受信したゲートウェイIDに関連付けられる更新フラグが、記憶部32に格納されているか否かを判定する。サーバ通信部31は、更新フラグが記憶部32に格納されている場合、更新フラグがあることをゲートウェイ装置1に通知する。一方、更新フラグが記憶部32に格納されていない場合、更新フラグがないことをゲートウェイ装置1に通知する。
【0032】
ステップS14において、更新指示データ取得部13は、第2サーバ30から送信された、更新フラグの有無を示す通知を受信する。ステップS15において、更新指示データ取得部13は、受信した通知に基づいて、更新フラグがあるか否かを判定する。更新指示データ取得部13は、更新フラグがあることを示す通知を第2サーバ30から受信した場合、更新フラグがあると判定する。一方、更新フラグがないことを示す通知を第2サーバ30から受信した場合、更新フラグがないと判定する。
【0033】
ゲートウェイ装置1は、更新フラグがないと判定された場合(ステップS15においてNO)、ステップS16において一定時間待機する。この際の待機時間は、ステップS12における待機時間よりも長く、例えば12時間である。この後、図の処理はステップS11に戻り、更新判定部12が、新たに受信された受信されたMACアドレスの数に基づいて、ステップS11の判定処理を実行する。このようにして、ゲートウェイ装置1は、更新フラグの存在を確認するまで、プログラム更新処理を保留する。
【0034】
(更新指示データの取得)
更新指示データ取得部13は、更新フラグがあると判定した場合(ステップS15においてYES)、ステップS17において、第2サーバ30の記憶部32に格納される更新指示データを、第2サーバ30から取得する。この際、更新指示データ取得部13は、更新指示データの取得を要求するため取得要求を第2サーバ30に送信する。サーバ通信部31は、この信号を受信すると、更新指示データを記憶部32から読み出し、ゲートウェイ装置1に送信する。更新データ取得部14は、第2サーバ30から送信された更新指示データを受信することによって、第2サーバ30から更新指示データを取得する。
【0035】
(更新指示データの構造)
図4は、更新指示データの一例を示す図である。この図に示すように、更新指示データは、YAML形式のテキストデータである。これに限らず、更新指示データは、コンピュータによって処理可能な任意の形式のデータであればよい。
図4の例では、更新指示データは、更新データの名称および取得先(URL)の情報が含まれる。
図4の例では、更新データの名称(pandas)および取得先の情報(URL)が、更新指示データに含まれている。
図4に示す「u_url」が、実際には、pandasの取得先のURL、すなわち第3サーバ40における更新データ取得用のURLに相当する。更新指示データには、さらに、pandasの取得先である第3サーバ40の認証情報も含まれている。
図4に示す「uapikey」が、この認証情報に相当する。
【0036】
ステップS18において、更新判定部12は、取得した更新指示データに基づいて、プログラムの更新が必要であるか否かを判定する。この際、記憶部Xに保存済みの過去の更新指示データと、新たに取得した更新指示データとを比較する。過去の更新指示データは、実行プログラムの更新をゲートウェイ装置1に指示するために過去に使用されたデータである。したがってゲートウェイ装置1は、過去の更新指示データに基づく実行プログラムの更新を過去に実行済みである。
【0037】
図4では図示を省略しているが、更新指示データには、以前にゲートウェイ装置1に提供された、個々の新たな機能に関する過去の更新指示データの履歴が全て含まれている。そこで、更新判定部12は、新たに取得した更新指示データと、直近で保存した前回の更新指示データとを比較する。直近で保存した前回の更新指示データに含まれる全ての情報は、新たに取得した更新指示データに履歴として含まれている。そのため、新たに取得した更新指示データと、直近で保存した過去の更新指示データとの間に差分がある場合、新たに取得した更新指示データに含まれる差分によって指示されるプログラム更新は、ゲートウェイ装置1において過去に実行済みではないことを意味する。そこで更新判定部12は、両者の差分がある場合、新たな更新指示データに基づくプログラム更新が必要であると判定する。差分がない場合、新たな更新指示データに基づくプログラム更新は必要ではないと判定する。
【0038】
ゲートウェイ装置1は、プログラム更新が必要でないと判定された場合(ステップS18においてNO)、プログラムを更新しない。そこで更新指示データ取得部13は、ステップS19において、今回の更新指示データに基づくプログラム更新が不要であることを、第2サーバ30に通知する。サーバ通信部31は、この通知を受信すると、通知を送信したゲートウェイ装置1のゲートウェイIDに関連付けられる更新フラグを、記憶部32から削除する。この後、
図3の処理は終了する。
【0039】
(更新データの取得)
更新データ取得部14は、実行プログラムの更新が必要であると判定された場合(ステップS18においてYES)、ステップS20において、更新データ取得部14は、更新指示データに基づいて、記憶部32に格納されている実行プログラムを更新するために必要な更新データを特定する。
図4の例では、更新データの名称(pandas)、取得先のURL(u_url)、および認証情報(uapikey)が、更新指示データに含まれている。更新データ取得部14は、これらの情報を参照して、更新データとしてpandasを特定する。pandasは、データ分析の機能をゲートウェイ装置1において実現するためのソフトウェアライブラリである。
【0040】
更新データ取得部14は、ステップS21において、特定した更新データ(pandas)を、第3サーバ40から取得する。具体的には、更新データ取得部14は、更新指示データに規定されるURLにアクセスすることによって、pandasを要求するための信号を第3サーバ40に送信する。その際、認証情報であるuapikeyを含んだ信号を送信する。サーバ通信部41は、この信号を受信すると、pandasを記憶部32から読み出し、ゲートウェイ装置1に送信する。更新データ取得部14は、第3サーバ40から送信されたpandasを受信することによって、第3サーバ40からpandasを取得する。
【0041】
(実行プログラムの更新)
ステップS22において、プログラム更新部15は、取得したpandasをゲートウェイ装置1にインストールすることによって、記憶部Xに格納される実行プログラムを更新する。この際、プログラム更新部15は、記憶部Xに格納されている実行プログラムにpandasを追加する。
【0042】
(エラー情報の通知)
ステップS23において、プログラム更新部15は、実行プログラムの更新が開始された後、実行プログラムの更新が正常に完了したか否かを判定する。プログラム更新部15は、プログラム更新中に何らかのエラーが発生して更新処理が中断した場合、更新が正常に完了しなかったと判定する。一方、エラーが何も発生せず、プログラム更新に関する全ての処理が正常に実行された場合、プログラム更新が正常に完了したと判定する。
【0043】
プログラム更新部15は、実行プログラムの更新が正常に完了しなかったと判定した場合(ステップS24においてNO)、発生したエラーに関するエラー情報を、店舗監視システム100の管理者に通知する。例えば、エラー情報を含む電子メールを管理者のメールアドレス宛に送信する。このように、プログラム更新部15は、実行プログラムの更新を開始した後、実行プログラムの更新を完了できなかった場合、エラー情報を出力する。
【0044】
更新指示データ取得部13は、プログラム更新が正常に完了したと判定された場合(ステップS1においてYES)、ステップS25において、取得した更新指示データを記憶部Xに保存する。こうして保存された更新指示データは、次の実行プログラム更新時に、過去に取得された更新指示データとして利用される。更新指示データ取得部13は、ステップ26において、更新指示データに基づく実行プログラムの更新が完了したことを、第2サーバ30に通知する。サーバ通信部31は、この通知を受信すると、通知を送信したゲートウェイ装置1のゲートウェイIDに関連付けられる更新フラグを、記憶部32から削除する。
【0045】
プログラム実行部16は、ステップS27において、実行プログラムの更新が正常に完了すると、更新された実行プログラムを実行する。これによりプログラム実行部16は、pandasに基づく各種のデータ分析プログラムを実行することができるようになる。そこでプログラム実行部16は、更新指示データに実行の指示が規定されるデータ分析プログラム(pandas.py)の実行を開始する。これによりプログラム実行部16は、データ分析プログラムを使用して、店舗内の各電子機器から取得した情報をゲートウェイ装置1内で分析することができるようになる。この後、
図3の処理は終了する。
【0046】
(主要な作用効果)
管理者が第2サーバ30の記憶部32に更新指示データを保存さえすれば、更新指示データに応じた新しい機能がゲートウェイ装置1に新たに自動的に導入される。したがって、管理者が自ら各ゲートウェイ装置1に新しい機能を手動で導入する必要がない。さらには、既存のゲートウェイ装置を、新しい機能が導入された新型のゲートウェイ装置に置き換える必要もない。このように、本実施形態によれば、ゲートウェイ装置1に効率的に新たな機能を導入することができる。特に、多くの店舗に個別に配置される多数のゲートウェイ装置1に対して、自動的に新たな機能を追加することができるので、多数のゲートウェイ装置1に対して効率的に新たな機能を追加することができる。
【0047】
ゲートウェイ装置1によって取得されたMACアドレスなどの店舗情報が第1サーバ20によって可視化されるので、店舗監視システム100の管理者は、可視化された店舗情報に基づいて店舗の状況を適格に把握することができる。これにより、電子機器の監視および保守を効率化することができる。
【0048】
実行プログラムの更新を開始したにも関わらず更新処理が正常に完了しなかった場合、エラー情報が店舗監視システム100の管理者に通知されるので、管理者が自らエラーに対処することができる。結果、エラーの発生により実行プログラムが更新されないままゲートウェイ装置1が放置されることを防止することができる。
【0049】
ゲートウェイ装置1は、店舗内の電子機器の数が基準値を下回った場合に、すなわち店舗内の電子機器の数が少なくなった場合に、実行プログラムの更新処理を実行する。これによりゲートウェイ装置1は、実行プログラムの更新処理の実行中に、多くの電子機器から店舗情報を取得せずに済む。このように、電子機器の数が減った期間に更新処理を実行することによって、プログラム更新中におけるゲートウェイ装置1の処理負荷を低減することができる。
【0050】
(変形例)
(第2サーバ30からゲートウェイ装置1に通知)
更新指示データ取得部13は、店舗内に存在する電子機器の数が基準値を下回ると判定された場合、更新フラグの有無を第2サーバ30に問い合わせなくてもよい。本例では、更新判定部12は、更新フラグのあるか否かを判定しない。その代わりに、サーバ通信部31は、記憶部Bに更新指示データが新たに格納された場合、記憶部32に更新指示データが新たに格納されたことをゲートウェイ装置1に通知する。この際、サーバ通信部31は、第2サーバ30によって認証済みのゲートウェイ装置1にのみ、記憶部32に更新指示データが新たに格納されたことを通知する。これにより、認証されないゲートウェイ装置1に誤って第2サーバ30が通知することを防止することができる。
【0051】
更新指示データ取得部13は、第2サーバ30からの通知を随時受信する。更新指示データ取得部13は、第2サーバSBから通知を受信したことにさらに基づいて、更新指示データの取得要求を第2サーバ30に送信することによって、更新指示データを第2サーバ30から取得する。詳細には、更新指示データ取得部13は、受信されたMACアドレスの数が基準値を下回ると判定され、かつ、通知を第2サーバ30から受信した場合に、更新指示データを第2サーバ30から取得する。更新指示データ取得部13は、MACアドレスの数が基準値を下回ると判定された時点で通知を第2サーバ30から受信済みである場合、更新指示データを直ちに第2サーバ30から取得する。一方、MACアドレスの数が基準値を下回ると判定された時点で通知を第2サーバ30から受信していない場合、通知を受信するまで待機し、通知を受信してから更新指示データを第2サーバ30から取得する。
【0052】
本例では、ゲートウェイ装置1は、更新フラグの有無を第2サーバ30に問い合わせる必要がないので、更新フラグがまだない場合にも関わらず更新フラグの有無を第2サーバ30に問い合わせることもない。これにより、ゲートウェイ装置1は、更新フラグがまだない場合に更新フラグの有無を第2サーバ30を繰り返し問い合わせる処理を実行せずに済むので、ゲートウェイ装置1の消費電力を低減することができる。さらに、ゲートウェイ装置1と第2サーバ30との間の通信料を低減することもできる。
【0053】
(更新処理開始のトリガ例)
更新判定部12は、MACアドレス以外の店舗情報に基づいて、更新指示データの取得要求を第2サーバ30に送信することもできる。例えば、通信部11が、店舗におけるネットワークの通信帯域を、店舗情報として取得しているとする。この場合、更新判定部12は、通信帯域の値が基準値を上回る場合に、すなわち店舗内ネットワークの通信帯域に一定の余裕がある場合に、更新指示データの取得要求を第2サーバ30に送信する。これにより、通信帯域に一定の余裕がある場合に更新指示データおよび更新データの取得がなされるため、実行プログラムの更新処理の進行時に店舗内の通信帯域が圧迫されて、高い通信帯域を要する店舗内の業務(テレビ会議システムの利用等)に支障が生じること、を防止することができる。
【0054】
通信部11は、複数の電子機器のうち少なくともいずれかの電子機器から、当該電子機器に関する店舗情報を受信すればよい。例えば、通信部11が、プリンタ3の動作状況(動作中、停止等)を表す動作状況情報を、プリンタ3から店舗情報として取得しているとする。この場合、更新判定部12は、例えばプリンタ3から取得したプリンタ3の動作状況情報が、プリンタ3の停止を表している場合に、更新指示データの取得要求を第2サーバ30に送信する。これによりゲートウェイ装置1は、プリンタ3が停止している期間に、すなわち店舗の営業が終了している深夜等の時間帯に、実行プログラムの更新処理を進めることができる。これにより、店舗における業務に影響を与えることなく、実行プログラムを更新することができる。
【0055】
(更新指示データの形式)
更新指示データには、過去にゲートウェイ装置1に提供された更新指示データの履歴が含まれていなくても良い。すなわち、更新指示データは、ゲートウェイ装置1に新たに追加される新たな機能に関する情報をのみを含むものであっても良い。この場合、プログラム更新部15は、取得した更新指示データに基づいて実行プログラムを更新するたびに、取得した更新指示データを履歴として記憶部17に全て保存する。そして、プログラム更新部15は、新たな更新指示データが取得された場合、新たな更新指示データと、記憶部17に履歴として保存される個々の過去の更新指示データとを、個別に比較する。そして、新たな取得した更新指示データが、過去の更新指示データの全てと相違する場合、新たな更新データ取得部14と過去の更新指示データとの間に差分があると判定する。一方、新たに取得した更新指示データが、過去のいずれかの更新指示データと一致する場合、差分はないと判定する。
【0056】
〔まとめ〕
本発明の態様1に係るゲートウェイ装置は、複数の電子機器、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されているゲートウェイ装置であって、前記ゲートウェイ装置の実行プログラムを格納する記憶部と、前記複数の電子機器のうちの少なくともいずれかの電子機器から、当該電子機器に関する第1データを受信する受信部と、受信された前記第1データを、前記第1サーバに送信する送信部と、受信された前記第1データに基づいて、前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、特定された前記更新データを、前記第3サーバから取得する第2取得部と、取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備えている構成である。
【0057】
本発明の態様2に係るゲートウェイ装置は、上記の態様1において、前記第1サーバによって前記第1データが可視化される構成としてもよい。
【0058】
本発明の態様3に係るゲートウェイ装置は、上記の態様1または2において、前記第2サーバは、前記更新指示データを格納するサーバ記憶部と、前記更新指示データが前記サーバ記憶部に新たに格納された場合、前記更新指示データが前記サーバ記憶部に新たに格納されたことを、前記ゲートウェイ装置に通知する通知部をさらに備えており、前記第1取得部は、前記第2サーバからの通知を受信したことにさらに基づいて、前記第2サーバから前記更新指示データを取得する構成としてもよい。
【0059】
本発明の態様4に係るゲートウェイ装置は、上記の態様1~3のいずれかにおいて、前記更新部は、前記実行プログラムの更新を開始した後、前記実行プログラムの更新を完了できなかった場合、エラー情報を出力する構成としてもよい。
【0060】
本発明の態様5に係るゲートウェイ装置は、上記の態様1~4のいずれかにおいて、前記受信部は、前記複数の電子機器のそれぞれから、当該電子機器に関する前記第1データを受信し、前記第1取得部は、受信された前記第1データの数が基準値を下回る場合、前記更新指示データの取得を要求するための取得要求を前記第2サーバに送信することによって、前記第2サーバから前記更新指示データを取得する構成としてもよい。
【0061】
本発明の態様6に係る実行プログラム更新方法は、複数の電子機器、第1サーバ、第2サーバ、および第3サーバとそれぞれ通信可能に接続されており、実行プログラムを格納する記憶部を備えているゲートウェイ装置によって実行される実行プログラム更新方法であって、前記複数の電子機器のうちの少なくともいずれかの電子機器から、当該電子機器に関する第1データを受信する受信ステップと、受信された前記第1データを、前記第1サーバに送信する送信ステップと、受信された前記第1データに基づいて、前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得ステップと、取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定ステップと、前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定ステップと、特定された前記更新データを、前記第3サーバから取得する第2取得ステップと、取得された前記更新データに基づいて、前記実行プログラムを更新する更新ステップとを有する方法である。
【0062】
本発明の態様7に係るサーバは、実行プログラムを実行するゲートウェイ装置と通信可能に接続されているサーバであって、前記実行プログラムの更新を指示するための更新指示データを格納するサーバ記憶部と、前記更新指示データの取得を要求するための取得要求を、前記ゲートウェイ装置から受信するサーバ受信部と、前記取得要求が受信された場合、前記サーバ記憶部に格納されている前記更新指示データを前記ゲートウェイ装置に送信するサーバ送信部とを備えている構成である。
【0063】
本発明の態様8に係る実行プログラム更新システムは、複数の電子機器と通信可能に接続されているゲートウェイ装置と、前記ゲートウェイ装置とそれぞれ通信可能に接続されている複数の電子機器、第1サーバ、第2サーバ、および第3サーバとを備えている実行プログラム更新システムであって、前記ゲートウェイ装置は、前記ゲートウェイ装置の実行プログラムを格納する記憶部と、前記複数の電子機器のうちの少なくともいずれかの電子機器から、当該電子機器に関する第1データを受信する受信部と、受信された前記第1データを、前記第1サーバに送信する送信部と、受信された前記第1データに基づいて、前記実行プログラムの更新を指示するための更新指示データを、前記第2サーバから取得する第1取得部と、取得された前記更新指示データに基づいて、前記実行プログラムの更新が必要であるか否かを判定する判定部と、前記実行プログラムの更新が必要であると判定された場合、前記実行プログラムを更新するための更新データを特定する特定部と、特定された前記更新データを、前記第3サーバから取得する第2取得部と、取得された前記更新データに基づいて、前記実行プログラムを更新する更新部とを備えており、前記第1サーバは、前記第1データを受信するサーバ受信部を備えており、前記第2サーバは、前記更新指示データを格納するサーバ記憶部を備えており、前記第3サーバは、前記更新データを格納するサーバ記憶部を備えている構成である。
【0064】
〔実現例〕
ゲートウェイ装置1の各機能ブロック(特に、通信部11、更新判定部12、更新指示データ取得部13、更新データ取得部14、およびプログラム更新部15)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0065】
後者の場合、ゲートウェイ装置1は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。
【0066】
前記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。
【0067】
また、前記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0068】
本発明は前述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成することもできる。
【符号の説明】
【0069】
1 ゲートウェイ装置
2 ルータ
3 プリンタ
4 タブレット端末
5 無線LANアクセスポイント
6 スマートフォン
11 通信部
12 更新判定部
13 更新指示データ取得部
14 更新データ取得部
15 プログラム更新部
16 プログラム実行部
17、22、32、42 記憶部
20 第1サーバ
21、31、41 サーバ通信部
23 可視化部
30 第2サーバ
40 第3サーバ
100 店舗監視システム