(57)【特許請求の範囲】
【請求項１】
自機器にインストール済みのプログラムの作成時、または更新の問合せ時からの経過時間を取得する取得部と、
前記取得部により取得された経過時間に応じて前記プログラムの更新の有無を確認する問合せを実行する間隔を決定する決定部と、
自機器に設けられる日時取得手段と、を有し、
前記経過時間は、前記インストール済みのプログラムの作成日時から前記日時取得手段によって取得される現在日時である、
電子機器。
【請求項２】
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新に係るプログラムの作成日時から前記最新の更新より以前の更新に係るプログラムの作成日時である
請求項１に記載の電子機器。
【請求項３】
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新の有無を確認したときの問合せの実行日時から前記最新の更新の有無を確認したときの問合せより以前の問合せの実行日時である
請求項１に記載の電子機器。
【請求項４】
コンピュータに
自機器にインストール済みのプログラムの作成時、または更新の問合せ時からの経過時間を取得する取得処理と、
前記取得処理により取得された経過時間に応じて前記プログラムの更新の有無を確認する問合せを実行する間隔を決定する決定処理と、
自機器に設けられる日時取得手段による日時取得処理と、を実行させ、
前記経過時間は、前記インストール済みのプログラムの作成日時から前記日時取得処理によって取得される現在日時である、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示の発明は、電子機器およびプログラム、特に更新の問合せ処理を実行する電子機器およびプログラムに関する。
【背景技術】
【０００２】
従来の技術において、電子機器のソフトウェア更新処理（ＦＯＴＡ；Firmware Over The Air）は、２週間に１度などの固定周期で、定期的にサーバーに問い合わせ（ポーリン
グ処理）、ソフトウェアの更新データがリリースされたか否かの確認を行う。そして、ポーリング処理の結果、ソフトウェア更新データがリリースされていた場合は、ユーザーの同意後にソフトウェア更新処理が実行される。そして、ソフトウェア更新処理を支援する技術が種々提案されている（例えば、特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−７９３８２号公報
【特許文献２】特表２００８−５０８６２３号公報
【特許文献３】特開２００６−３４４１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ＦＯＴＡのポーリング間隔は固定周期であるため、サーバーに更新プログラムがアップロードされていても、次のポーリングタイミングまでは電子機器には更新プログラムが適用されない。このため、当該ポーリングが実行される前に、電子機器において、更新プログラムによって解消される予定の不具合が発生する可能性がある。このような場合、更新プログラムがサーバーにアップロードされているにもかかわらず、ユーザーが不具合の発生した電子機器を返品する可能性がある。
【０００５】
また、更新プログラムの提供頻度は変化しうる。例えば、製品発売後の初期段階では、プログラムの品質が安定していないため、更新プログラムが提供される頻度は他の段階に比べて高くなることが多い。さらに、プログラムの品質が安定しており、更新プログラムがサーバーにアップロードされていない場合でも、電子機器では上記の固定周期によるポーリング処理が実行される。しかし、更新プログラムがリリースされていない場合、当該ポーリング処理は実行されなくてもよい処理である。このため、サーバーにとっては、当該ポーリング処理がサーバーの負荷を増大させる可能性があり、またユーザーにとっては、当該ポーリング処理が実行される際の通信費用が発生する可能性がある。
【０００６】
本件開示の技術は、上記の事情に鑑み、更新プログラムの提供頻度の変化に応じて効率的な問合せおよび適切なタイミングでの更新を実現する電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本件開示の電子機器は、１つの側面では、自機器にインストール済みのプログラムの作成時、更新時または更新の問合せ時からの経過時間を取得する取得部と、取得部により取得された経過時間に応じてプログラムの更新の有無を確認する問合せを実行する頻度を決定する決定部とを有する。
【発明の効果】
【０００８】
本件開示の技術によれば、更新プログラムの提供頻度の変化に応じて効率的な問合せおよび適切なタイミングでの更新を実現する電子機器を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、一実施形態における携帯端末装置の構成を示す概略構成図である。
【図２】図２は、一実施形態における携帯端末装置の機能ブロック図である。
【図３】図３は、一実施形態における携帯端末装置のＲＯＭの概略構成を示す図である。
【図４】図４は、一実施形態における携帯端末装置のソフトウェア管理テーブルの概略構成を示す図である。
【図５Ａ】図５Ａは、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図５Ｂ】図５Ｂは、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図６】図６は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図７】図７は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図８】図８は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図９】図９は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図１０】図１０は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【図１１】図１１は、一実施形態における携帯端末装置が実行する処理のフローチャートである。
【発明を実施するための形態】
【００１０】
まず、一実施形態における電子機器について図面を参照しながら説明する。本実施形態では、電子機器の一例として図１に示す携帯端末装置１を用いて説明する。なお、以下の説明は例示にすぎず、特許請求の範囲を限定するものではない。
【００１１】
図１に示すように、本実施形態に係る携帯端末装置１は、通信モジュール１２、ＲＯＭ（Read Only Memory）１３、ＲＡＭ（Random Access Memory）１４、スピーカ１５、ＣＰＵ（Central Processing Unit）１６、タイマ１７、ディスプレイ１８、カードスロット
１９を備える。
【００１２】
本実施形態では、携帯端末装置１が例えばＣＰＵ１６を用いてＲＯＭ１３などに記憶された各種プログラムをＲＡＭ１４に展開して実行することで、図２に示すように、取得部２１および決定部２２として機能する。取得部２１は、携帯端末装置１にインストール済みのプログラムの作成時、更新時または更新の問合せ時からの経過時間を取得する。また、決定部２２は、取得部２１により取得された経過時間に応じてプログラムの更新の有無を確認する問合せを実行する頻度を決定する。
【００１３】
次に、図３に、本実施形態における携帯端末装置１のＲＯＭ１３に記憶されるデータの構成を概略的に示す。図３に示すように、ＲＯＭ１３には、制御プログラム３１、ＩＭＥＩ（International Mobile Equipment Identity）番号３２、初回起動フラグ３３、ソフ
トウェア管理テーブル３４、ユーザーアプリケーション３５、アプリケーションデータ３６が記憶されている。
【００１４】
制御プログラム３１は、本実施形態におけるＦＯＴＡのポーリング処理、更新プログラムの判定処理などの実行を制御するプログラムである。なお、制御プログラム３１を実行した際の処理の詳細については後述する。ＩＭＥＩ番号３２は、携帯端末装置１の製造番号であり、ＩＭＥＩ番号３２は、携帯端末装置１がサーバー（図示せず）に更新プログラムの有無を問い合わせる際に、サーバーによる認証処理に使用される。初回起動フラグ３３は、本実施形態において、後述する更新プログラムの判定処理において使用される。携帯端末装置１における初回起動フラグ３３の処理の詳細については後述する。
【００１５】
ソフトウェア管理テーブル３４は、本実施形態における更新プログラムの判定処理に使用される各種データが格納されるテーブルである。ユーザーアプリケ−ション３５は、ユーザーが携帯端末装置１において実行する種々のアプリケーションである。アプリケーションデータ３６は、ユーザーアプリケーション３５の実行時に使用される種々のデータである。
【００１６】
図４に、本実施形態におけるソフトウェア管理テーブル３４に格納されているデータの一例を示す。図４に示すように、ソフトウェア管理テーブル３４は、ソフトウェアのバージョン、ビルド日時、ＦＯＴＡ実施日の各種データを有する。
【００１７】
図４に示すデータのうち、「ソフトウェアのバージョン」には、携帯端末装置１に適用された工場出荷時のプログラムのソフトウェアバージョン（図では「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０１」）および当該プログラムに対する更新プログラムのソフトウェアバージョン（図では「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０２」、「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０３」、「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０４」）が格納されている。なお、図４に示す例では、携帯端末装置１において工場出荷時に適用されているプログラムのソフトウェアバージョンが「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０１」である。また、次に適用された最初の更新プログラムのソフトウェアバージョンが「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０２」である。以降、「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０３」、「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０４」の順に更新プログラムが携帯端末装置１に適用されている。ソフトウェアバージョンが「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０１」であるプログラムは、工場出荷時に適用されておりＦＯＴＡは実行されていないため、「ＦＯＴＡ実施日時」のデータは「なし」となっている。さらに、図４に示す例では、ソフトウェアバージョンが「Ｖ＿Ｆ−ＡＢＣ＿Ｒ０４」である更新プログラムが、携帯端末装置１に適用されている最新の更新プログラムである。
【００１８】
また、「ビルド日時」には、各プログラムのビルド日時（図では「２０１４／２／３（月）６：００：００」など）が格納されている。また、「ＦＯＴＡ実施日時」には、携帯端末装置１に適用された更新プログラムがサーバーから取得される際に実行されたＦＯＴＡのポーリング処理の実施日時が格納されている。なお、各更新プログラムのビルド日時が、更新に係るプログラムの作成日時の一例に相当する。
【００１９】
次に、本実施形態においてＣＰＵ１６により実行される処理について、フローチャートを参照しながら説明する。本実施形態では、携帯端末装置１の電源がオンになると、ＣＰＵ１６がＲＯＭ１３に記憶されている起動シーケンス処理に従って、携帯端末装置１の起動処理を実行し、携帯端末装置１内の各機能ブロックを起動する。さらに、ＣＰＵ１６は、図５Ａに示すフローチャートの処理を開始する。なお、以下の説明において、図５Ａの「１」、「２」は図５Ｂの「１」、「２」に、図９の「３」、「４」、「５」は図１０の「３」、「４」、「５」に、それぞれ接続している。
【００２０】
ＯＰ１０１において、ＣＰＵ１６は、ＲＯＭ１３の初回起動フラグ３３を参照し、携帯端末装置１の初回起動が実行済みであるか否かを確認する。本実施形態では、携帯端末装置１にＳＩＭカードが挿入された後に初めて電源がオンされたとき、すなわち初回起動時、携帯端末装置１では工場出荷時のプログラムが実行される。ただし、初回起動日時が、
携帯端末装置１の発売日からある程度時間が経過している場合、工場出荷時のプログラムを実行すると発生する不具合を修正した更新プログラムが、サーバーにアップロードされている可能性がある。
【００２１】
そこで、ＣＰＵ１６は、ＯＰ１０３〜ＯＰ１０５の処理を実行することにより、携帯端末装置１に適用される更新プログラムの有無をサーバーに問い合わせる。そして、ＣＰＵ１６は、サーバーに更新ソフトウェアがアップロードされていた場合は、サーバーから当該更新プログラムを取得する。さらに、ＣＰＵ１６は、取得した更新プログラムを適用して、携帯端末装置１の工場出荷時のプログラムを更新する。なお、サーバーにおいて複数の更新プログラムが適用可能である場合は、ＣＰＵ１６は、更新プログラムを順次取得して適用処理を実行する。この一連の処理が、携帯端末装置１の初回起動時に実行される処理である。
【００２２】
ＯＰ１０２において、ＣＰＵ１６は、初回起動フラグ３３の値を参照し、当該値に基づいて携帯端末装置１の起動が初回起動か否かを判定する。本実施形態では、例えば初回起動フラグ３３は、０または１の値を取る。初回起動フラグ３３の値が０である場合は、ＣＰＵ１６は初回起動であると判定し（ＯＰ１０２：Ｙｅｓ）、処理をＯＰ１０３に進める。初回起動フラグ３３の値が１である場合は、ＣＰＵ１６は初回起動でないと判定し（ＯＰ１０２：Ｎｏ）、処理をＯＰ１０７（図５Ｂ）に進める。
【００２３】
ＯＰ１０３では、ＣＰＵ１６は、通信モジュール１２を制御してサーバーとの通信を実行し、ＲＯＭ１３に記憶されているＩＭＥＩ番号３２を使用してサーバーに対して更新プログラムの有無を問い合わせるポーリング処理を実行する。次いで処理はＯＰ１０４に進められる。ＯＰ１０４では、ＣＰＵ１６は、ＯＰ１０３のポーリング処理の結果に基づいて、サーバーに更新プログラムが存在するか否かを判定する。サーバーに更新プログラムが存在する場合は（ＯＰ１０４：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ１０５に進める。また、サーバーに更新プログラムが存在しない場合は（ＯＰ１０４：Ｎｏ）、ＣＰＵ１６は処理をＯＰ１０６（図５Ｂ）に進める。
【００２４】
ＯＰ１０５において、ＣＰＵ１６は、サーバーから更新プログラムを取得して携帯端末装置１に適用する処理を実行する。なお、サーバーに複数の更新プログラムがアップロードされている場合は、ＣＰＵ１６は他の更新プログラムよりもビルド日が古い更新プログラムを優先して取得する。また、サーバーに複数の更新プログラムがアップロードされている場合は、処理がＯＰ１０５からＯＰ１０３に戻され、さらにＯＰ１０４およびＯＰ１０５の処理が実行されて、更新プログラムが順次適用される。
【００２５】
ＯＰ１０６では、ＣＰＵ１６は、携帯端末装置１に適用されている更新プログラムのビルド日に基づいてポーリング処理の実行間隔を決定する更新プログラム判定処理を実行する。図６に、更新プログラム判定処理のフローチャートを示す。ＯＰ２０１において、ＣＰＵ１６は、初回起動フラグ３３の値を参照し、携帯端末装置１が初回起動時であるか否かを判定する。携帯端末装置１の起動が初回起動である場合は（ＯＰ２０１：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ２０２に進める。また、携帯端末装置１の起動が初回起動でない場合は（ＯＰ２０１：Ｎｏ）、ＣＰＵ１６は処理をＯＰ２０４に進める。
【００２６】
図７に、ＯＰ２０２において実行される初回起動時判定処理のフローチャートを示す。ＯＰ３０１では、ＣＰＵ１６は、ＲＯＭ１３のソフトウェア管理テーブル３４の「ソフトウェアのバージョン」を参照し、携帯端末装置１に適用されたソフトウェアバージョンを確認する。そして、ＣＰＵ１６は、確認したソフトウェアバージョンに基づいて携帯端末装置１に適用されている更新プログラムが存在するか否かを判定する。
【００２７】
携帯端末装置１に適用されている更新プログラムが存在する場合は（ＯＰ３０１：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ３０２に進める。また、携帯端末装置１に適用されている更新プログラムが存在しない場合は（ＯＰ３０１：Ｎｏ）、ＣＰＵ１６は処理をＯＰ３０９に進める。
【００２８】
ＯＰ３０２では、ＣＰＵ１６は、ＲＯＭ１３のソフトウェア管理テーブル３４の「ビルド日時」を参照し、携帯端末装置１に適用されている最新の更新プログラムのビルド日から前回適用されていた更新プログラムのビルド日までの経過時間を取得して変数Ｘに代入する。なお、最新の更新プログラムのビルド日から前回適用されていた更新プログラムのビルド日までの経過時間が、プログラムの作成時からの経過時間の一例に相当する。次いで、ＣＰＵ１６は、処理をＯＰ３０３に進める。
【００２９】
ＯＰ３０３では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ソフトウェアのバージョン」を参照し、携帯端末装置１に２つ以上の更新プログラムが適用されたか否かを判定する。例えば、ＣＰＵ１６は、「ＦＯＴＡ実施日時」に日時データが格納されているソフトウェアバージョンが複数存在するか否かに基づいて、ＯＰ３０３の判定処理を実行する。携帯端末装置１に２つ以上の更新プログラムが適用された場合は（ＯＰ３０３：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ３０４に進める。一方、携帯端末装置１に２つ以上の更新プログラムが適用されたことがない場合は（ＯＰ３０３：Ｎｏ）、ＣＰＵ１６は処理をＯＰ３０６に進める。
【００３０】
ＯＰ３０４では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ビルド日時」を参照し、携帯端末装置１に適用されている最新の更新プログラムに対して前回、すなわち１つ前に適用されていた更新プログラムのビルド日から、最新の更新プログラムに対して前々回、すなわち２つ前に適用されていた更新プログラムのビルド日までの経過時間を取得して変数Ｙに代入する。次いで、ＣＰＵ１６は、処理をＯＰ３０５に進める。
【００３１】
ＯＰ３０５では、ＣＰＵ１６はＯＰ３０２およびＯＰ３０４において上記の経過時間の値が代入された変数Ｘ、Ｙについて、Ｘの値がＹの値以上であるか否かを判定する。Ｘの値がＹの値以上である場合は（ＯＰ３０５：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ３０６に進める。Ｘの値がＹの値以上でない場合は（ＯＰ３０５：Ｎｏ）、ＣＰＵ１６は処理をＯＰ３０７に進める。ＯＰ３０５の処理により、更新プログラムのリリース頻度が低下しているか否かが判定される。
【００３２】
ＯＰ３０６では、ＣＰＵ１６はＸの値を別の変数Ｚに代入する。また、ＯＰ３０７では、ＣＰＵ１６はＸの値とＹの値の平均値を変数Ｚに代入する。なお、本実施形態では、Ｘの値とＹの値の相加平均の値が変数Ｚに代入される。ＯＰ３０６またはＯＰ３０７の処理が完了すると、ＣＰＵ１６は処理をＯＰ３０８に進める。ＯＰ３０８では、ＣＰＵ１６は更新プログラムの判定処理のサブ処理を実行する。なお、ＯＰ３０６およびＯＰ３０７の処理により、以下に説明する更新プログラムの判定処理のサブ処理において、携帯端末装置１に適用された各更新プログラムのビルド日の時間間隔に応じて、ポーリング処理の実行頻度を設定することができる。
【００３３】
図８に、本実施形態におけるＯＰ３０８の更新プログラム判定処理のサブ処理のフローチャートを示す。本実施形態における当該サブ処理は、上記の初回起動時の判定処理により算出される変数Ｚの値が示す経過時間に基づいて、サーバーに更新プログラムを問い合わせるポーリング処理の実行間隔を設定する処理である。
【００３４】
ＯＰ４０１では、ＣＰＵ１６は、ＯＰ３０６またはＯＰ３０７の処理により上記の値が代入された変数Ｚの値が示す経過時間が、１か月以上であるか否かを判定する。Ｚの値が
示す経過時間が１か月以上である場合は（ＯＰ４０１：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ４０３に進める。また、Ｚの値が示す経過時間が１か月以上でない場合は（ＯＰ４０１：Ｎｏ）、ＣＰＵ１６は処理をＯＰ４０２に進める。
【００３５】
ＯＰ４０２では、ＣＰＵ１６は、更新プログラムがリリースされる間隔が短いとみなし、上記のポーリング処理の実行間隔を１日に設定する。ＣＰＵ１６は、ＯＰ４０２の処理が完了すると、処理を図７のＯＰ３０８、図６のＯＰ２０２に続いて、ＯＰ２０３に戻す。
【００３６】
ＯＰ４０３では、ＣＰＵ１６は、ＯＰ３０６またはＯＰ３０７の処理により上記の値が代入された変数Ｚの値が示す経過時間が、２か月以上であるか否かを判定する。Ｚの値が示す経過時間が２か月以上である場合は（ＯＰ４０３：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ４０５に進める。また、Ｚの値が示す経過時間が２か月以上でない場合は（ＯＰ４０３：Ｎｏ）、ＣＰＵ１６は処理をＯＰ４０４に進める。
【００３７】
ＯＰ４０４では、ＣＰＵ１６は、更新プログラムがリリースされる間隔が１か月〜２か月であり、新しい更新プログラムが今後リリースされる可能性があるとみなし、上記のポーリング処理の実行間隔を１週間に設定する。ＣＰＵ１６は、ＯＰ４０４の処理が完了すると、処理を図７のＯＰ３０８、図６のＯＰ２０２に続いて、ＯＰ２０３に戻す。
【００３８】
ＯＰ４０５では、ＣＰＵ１６は、更新プログラムがリリースされる間隔が２か月以上であり、新しい更新プログラムが今後リリースされる可能性は低いとみなし、上記のポーリング処理の実行間隔を２週間に設定する。ＣＰＵ１６は、ＯＰ４０５の処理が完了すると、処理を図７のＯＰ３０８、図６のＯＰ２０２に続いて、ＯＰ２０３に戻す。なお、ＯＰ４０２、ＯＰ４０４、ＯＰ４０５において設定されるポーリング処理の実行間隔は、上記の間隔に限らず適宜異なる間隔が設定されてよい。
【００３９】
次に、図９、図１０のフローチャートを参照しながら、本実施形態におけるＯＰ３０９の通常判定処理について説明する。なお、図６のＯＰ２０４における処理もＯＰ３０９における処理と同じである。ＯＰ５０１では、ＣＰＵ１６は携帯端末装置１に適用されている製造出荷時のプログラムのビルド日から、タイマ１７から取得した現在日時までの経過時間の値を変数Ａに代入する。次いで、ＣＰＵ１６は処理をＯＰ５０２に進める。
【００４０】
ＯＰ５０２では、ＣＰＵ１６は、ＯＰ５０１において上記の値が代入された変数Ａの値が示す経過時間が３か月未満であるか否かを判定する。変数Ａの値が示す経過時間が３か月未満である場合は（ＯＰ５０２：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ５０３に進める。一方、変数Ａの値が示す経過時間が３か月未満でない場合は（ＯＰ５０２：Ｎｏ）、ＣＰＵ１６は処理をＯＰ５０４に進める。
【００４１】
ＯＰ５０３では、ＣＰＵ１６は、携帯端末装置１の販売開始後間もないため新しい更新プログラムがリリースされる可能性が高いとみなし、上記のポーリング処理の実行間隔を１日に設定する。ＣＰＵ１６は、ＯＰ５０３の処理が完了すると、処理を図７のＯＰ３０９、図６のＯＰ２０２に戻す。なお、ＯＰ２０４の通常判定処理の場合は、ＣＰＵ１６は、処理を図６のＯＰ２０４に戻す。
【００４２】
ＯＰ５０４では、ＣＰＵ１６は、ＯＰ５０１において上記の値が代入された変数Ａの値が示す経過時間が１年以上であるか否かを判定する。変数Ａの値が示す経過時間が１年以上である場合は（ＯＰ５０４：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ５０５に進める。一方、変数Ａの値が示す経過時間が１年以上でない場合は（ＯＰ５０４：Ｎｏ）、ＣＰＵ１６は処理をＯＰ５０６に進める。
【００４３】
ＯＰ５０５では、ＣＰＵ１６は、携帯端末装置１の販売開始から１年以上経過しているためプログラムの品質は安定しており新しい更新プログラムがリリースされる可能性は低いとみなし、上記のポーリング処理の実行間隔を１か月に設定する。従来は、新しい更新プログラムがリリースされる可能性が低いにもかかわらず例えば２週間などの固定間隔でポーリング処理を実行していた。しかし、本実施形態により、製造出荷時のプログラムのビルド日に基づいてポーリング処理の実行間隔を決定することで、携帯端末装置１の販売開始からの経過時間に応じた適切なポーリング処理の間隔が設定される。
【００４４】
図１０のＯＰ５０６では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ソフトウェアのバージョン」を参照し、携帯端末装置１に適用されたソフトウェアバージョンを確認する。そして、ＣＰＵ１６は、確認したソフトウェアバージョンに基づいて携帯端末装置１に適用されている更新プログラムが存在するか否かを判定する。携帯端末装置１に適用されている更新プログラムが存在する場合は（ＯＰ５０６：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ５０７に進める。また、携帯端末装置１に適用されている更新プログラムが存在しない場合は（ＯＰ５０６：Ｎｏ）、ＣＰＵ１６は処理をＯＰ５１４に進める。
【００４５】
ＯＰ５０７では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ＦＯＴＡ実施日時」を参照し、携帯端末装置１に適用されている最新の更新プログラム適用時のＦＯＴＡ実施日から１つ前の更新プログラム適用時のＦＯＴＡ実施日までの経過時間を算出して変数Ｂに代入する。図４に示す例では、最新の更新プログラム適用時のＦＯＴＡ実施日は「２０１４／５／３」、前回適用されていた更新プログラム適用時のＦＯＴＡ実施日は「２０１４／４／３」である。なお、最新の更新プログラム適用時のＦＯＴＡ実施日から１つ前の更新プログラム適用時のＦＯＴＡ実施日までの経過時間が、プログラムの更新の問合せ時からの経過時間の一例に相当する。したがって、本実施形態では、最新の更新プログラムの１つ前の更新プログラムの適用時におけるポーリング処理の実行日から最新の更新プログラムの適用時におけるポーリング処理の実行日までの経過時間に基づいて、今後のポーリング処理の実行間隔が設定される。なお、図４に示す例では、当該経過時間は１か月である。次いで、処理はＯＰ５０８に進められる。
【００４６】
ＯＰ５０８では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ソフトウェアのバージョン」を参照し、携帯端末装置１に適用された更新プログラムが２つ以上存在するか否かを判定する。携帯端末装置１に適用された更新プログラムが２つ以上存在する場合は（ＯＰ５０８：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ５０９に進める。携帯端末装置１に適用された更新プログラムが２つ以上存在しない場合は（ＯＰ５０８：Ｎｏ）、ＣＰＵ１６は処理をＯＰ５１１に進める。
【００４７】
ＯＰ５０９では、ＣＰＵ１６は、ソフトウェア管理テーブル３４の「ＦＯＴＡ実施日時」を参照し、携帯端末装置１に最新の更新プログラムの１つ前の更新プログラム適用時のＦＯＴＡ実施日からさらに１つ前の更新プログラム適用時のＦＯＴＡ実施日までの経過時間を算出して変数Ｃに代入する。次いで、処理はＯＰ５１０に進められる。ＯＰ５１０では、ＣＰＵ１６は、ＯＰ５０７、ＯＰ５０９で値が代入された変数Ｂ、Ｃについて、変数Ｂの値が変数Ｃの値以上であるか否かを判定する。変数Ｂの値が変数Ｃの値以上である場合は（ＯＰ５１０：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ５１１に進める。また、変数Ｂの値が変数Ｃの値以上でない場合は（ＯＰ５１０：Ｎｏ）、ＣＰＵ１６は処理をＯＰ５１２に進める。
【００４８】
ＯＰ５１１では、ＣＰＵ１６はＯＰ５０７において値が代入された変数Ｂの値を変数Ｄに代入する。また、ＯＰ５１２では、ＣＰＵ１６は、ＯＰ５０７、ＯＰ５０９で値が代入された変数Ｂ、Ｃの平均値を変数Ｄに代入する。なお、本実施形態では、Ｂの値とＣの値
の相加平均の値が変数Ｄに代入される。ＯＰ５１１またはＯＰ５１２の処理が完了すると、ＣＰＵ１６は処理をＯＰ５１３に進める。ＯＰ５１３では、ＣＰＵ１６は更新プログラムの判定処理のサブ処理を実行する。なお、ＯＰ５１１およびＯＰ５１２の処理により、以下に説明する更新プログラムの判定処理のサブ処理において、携帯端末装置１に適用された各更新プログラムの適用時のＦＯＴＡ実施日に基づく経過時間に応じて、ポーリング処理の実行頻度を設定することができる。
【００４９】
図１１に、本実施形態においてＯＰ５１３で実行される処理のフローチャートを示す。本実施形態における当該サブ処理は、上記の通常判定処理により算出される変数Ｄの値が示す経過時間に基づいて、サーバーに更新プログラムを問い合わせるポーリング処理の実行間隔を設定する処理である。
【００５０】
ＯＰ６０１では、ＣＰＵ１６は、ＯＰ５１１またはＯＰ５１２の処理により上記の値が代入された変数Ｄの値が示す経過時間が、１か月以上であるか否かを判定する。Ｄの値が示す経過時間が１か月以上である場合は（ＯＰ６０１：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ６０３に進める。また、Ｄの値が示す経過時間が１か月以上でない場合は（ＯＰ６０１：Ｎｏ）、ＣＰＵ１６は処理をＯＰ６０２に進める。
【００５１】
ＯＰ６０２では、ＣＰＵ１６は、更新プログラムのリリース間隔が短いとみなし、上記のポーリング処理の実行間隔を１日に設定する。ＣＰＵ１６は、ＯＰ６０２の処理が完了すると、処理を図１０のＯＰ５１３、図７のＯＰ３０９に続いて、図６のＯＰ２０２に戻す。なお、ＯＰ２０４の通常判定処理の場合は、ＣＰＵ１６は、処理を図１０のＯＰ５１３、図６のＯＰ２０４に戻す。
【００５２】
ＯＰ６０３では、ＣＰＵ１６は、ＯＰ５１１またはＯＰ５１２の処理により上記の値が代入された変数Ｄの値が示す経過時間が、２か月以上であるか否かを判定する。Ｄの値が示す経過時間が２か月以上である場合は（ＯＰ６０３：Ｙｅｓ）、ＣＰＵ１６は処理をＯＰ６０５に進める。また、Ｄの値が示す経過時間が２か月以上でない場合は（ＯＰ６０３：Ｎｏ）、ＣＰＵ１６は処理をＯＰ６０４に進める。
【００５３】
ＯＰ６０４では、ＣＰＵ１６は、更新プログラムのリリース間隔が１か月〜２か月であり、プログラムの品質が向上されて新しい更新プログラムが今後リリースされる可能性が低くなりつつあるとみなし、上記のポーリング処理の実行間隔をＯＰ６０２における１日よりも長い１週間に設定する。ＣＰＵ１６は、ＯＰ６０４の処理が完了すると、処理を図１０のＯＰ５１３、図７のＯＰ３０９に続いて、図６のＯＰ２０２に戻す。なお、ＯＰ２０４の通常判定処理の場合は、ＣＰＵ１６は、処理を図１０のＯＰ５１３、図６のＯＰ２０４に戻す。
【００５４】
ＯＰ６０５では、ＣＰＵ１６は、更新プログラムのリリース間隔が２か月以上であり、新しい更新プログラムが今後リリースされる可能性は低いとみなし、上記のポーリング処理の実行間隔を２週間に設定する。ＣＰＵ１６は、ＯＰ６０５の処理が完了すると、処理を図１０のＯＰ５１３、図７のＯＰ３０８、図６のＯＰ２０２に続いて、ＯＰ２０３に戻す。なお、ＯＰ６０２、ＯＰ６０４、ＯＰ６０５において設定されるポーリング処理の実行間隔は、上記の間隔に限らず適宜異なる間隔が設定されてよい。
【００５５】
ＯＰ２０３では、ＣＰＵ１６は、携帯端末装置１の初回起動フラグ３３の値を０から１に変更する。そして、ＣＰＵ１６は、ＯＰ２０３の処理が完了すると、処理を図５ＢのＯＰ１０６に続いて、ＯＰ１０７に戻す。
【００５６】
通常、携帯端末装置１に適用されるプログラムは、時間が経過するにつれて不具合が修
正されてプログラムの品質も向上するので、更新プログラムのリリース間隔も長くなる。しかしながら、例えば製造出荷時に適用されているプログラムのビルド日から３か月が経過しているにもかかわらずプログラムの不具合が解消されていない場合も想定される。この場合、１つ前の更新プログラム適用時のポーリング処理の実行間隔がＯＰ５０５の処理によって１か月に設定されている。ただし、いわゆる緊急アップデートが発生するなど、ポーリング処理の実行間隔が２週間と短くなっているイレギュラーなケースも想定される。この場合、最新の更新プログラム適用時のＦＯＴＡのポーリング処理の実施日（図４では「２０１４／５／３」）から１つ前の更新プログラム適用時のＦＯＴＡのポーリング処理の実施日（図４では「２０１４／４／３」）までの１か月と、当該１つ前の更新プログラム適用時のＦＯＴＡのポーリング処理の実施日（図４では「２０１４／４／３」）からさらに１つ前の更新プログラム適用時のＦＯＴＡのポーリング処理の実施日（図４では「２０１４／３／１３」）までの２週間との相加平均値である３週間にポーリング処理の実行期間が設定される。
【００５７】
また、例えばユーザーが携帯端末装置１を発売日から１０か月後に携帯端末装置１を購入した場合を考える。そして、サーバーに複数のバージョンの更新プログラムがリリースされているとする。この場合、本実施形態では、サーバーにリリースされている更新プログラムが携帯端末装置１によって順次取得および適用される。したがって、上記のようにＦＯＴＡによるポーリング処理の実施日に基づいてポーリング処理の間隔設定を適切に行うことはできない。
【００５８】
本実施形態のポーリング処理の間隔設定によれば、上記のＯＰ５０６〜ＯＰ５１３ＯＰ６０１〜ＯＰ６０５の処理が実行されることにより、携帯端末装置１に適用済みの各更新プログラムの適用時におけるＦＯＴＡのポーリング処理の実施日の時間間隔に基づいて、適切なポーリング処理の実行間隔が設定される。
【００５９】
以上が本実施形態に関する説明であるが、上記の分散並列処理システム１内の各ノード等の構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記のＯＰ３０２、ＯＰ３０４、ＯＰ５０９では、１つ前の更新プログラムを基準に経過時間を算出しているが、１つ前の更新プログラムに限らず以前の更新プログラムを基準に経過時間を算出するようにしてもよい。また、上記のＯＰ４０１〜ＯＰ４０５、ＯＰ５０２〜ＯＰ５０５、ＯＰ５１４、ＯＰ６０１〜ＯＰ６０５の各処理における具体的な日数などの経過時間は、適宜変更することができる。また、上記の説明では、プログラムのビルド日やプログラム適用時のＦＯＴＡ実施日を基準としているがプログラムのダウンロード日時などプログラムに関連する他の基準時を代わりに採用してもよい。
【００６０】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記情報処理装置の設定を行うための管理ツール、ＯＳその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、携帯端末装置等である。
【００６１】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体として
ハードディスクやＲＯＭ等がある。
【００６２】
以上の実施形態に関し、さらに以下の付記を開示する。
【００６３】
（付記１）
自機器にインストール済みのプログラムの作成時、更新時または更新の問合せ時からの経過時間を取得する取得部と、
前記取得部により取得された経過時間に応じて前記プログラムの更新の有無を確認する問合せを実行する頻度を決定する決定部と
を備える電子機器。
【００６４】
（付記２）
前記経過時間は、前記インストール済みのプログラムの作成日時から現在日時である、付記１に記載の電子機器。
【００６５】
（付記３）
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新に係るプログラムの作成日時から前記最新の更新より以前の更新に係るプログラムの作成日時である
付記１に記載の電子機器。
【００６６】
（付記４）
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新の有無を確認したときの問合せの実行日時から前記最新の更新の有無を確認したときの問合せより以前の問合せの実行日時である
付記１に記載の電子機器。
【００６７】
（付記５）
コンピュータに
自機器にインストール済みのプログラムの作成時、更新時または更新の問合せ時からの経過時間を取得する取得処理と、
前記取得処理により取得された経過時間に応じて前記プログラムの更新の有無を確認する問合せを実行する頻度を決定する決定処理と
を実行させるプログラム。
【００６８】
（付記６）
前記経過時間は、前記インストール済みのプログラムの作成日時から現在日時である、付記５に記載のプログラム。
【００６９】
（付記７）
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新に係るプログラムの作成日時から前記最新の更新より以前の更新に係るプログラムの作成日時である
付記５に記載のプログラム。
【００７０】
（付記８）
前記電子機器に前記プログラムの複数の更新がインストールされており、
前記経過時間は、各更新のうち最新の更新の有無を確認したときの問合せの実行日時から前記最新の更新の有無を確認したときの問合せより以前の問合せの実行日時である
付記５に記載のプログラム。
【符号の説明】
【００７１】
１    携帯端末装置
１３    ＲＯＭ
１４    ＲＡＭ
１６    ＣＰＵ
１７    タイマ
２１    取得部
２２    決定部
３３    初回起動フラグ
３４    ソフトウェア管理テーブル
【図１】
0006528434.tif 000002
【図２】
0006528434.tif 000003
【図３】
0006528434.tif 000004
【図４】
0006528434.tif 000005
【図５Ａ】
0006528434.tif 000006
【図５Ｂ】
0006528434.tif 000007
【図６】
0006528434.tif 000008
【図７】
0006528434.tif 000009
【図８】
0006528434.tif 000010
【図９】
0006528434.tif 000011
【図１０】
0006528434.tif 000012
【図１１】
0006528434.tif 000013