(57)【要約】【課題】個別アップデートの個別対応を反映しながら、自動アップデートによる配信予約も１回で済ませたい。【解決手段】ソフトウェアが動作可能な複数のデバイスに対するソフトウェアの配信を制御する配信システムであって、前記複数のデバイスの少なくともいずれかに対するソフトウェアの配信予約の指定をユーザから受け付ける受け付け手段と、予め定義された所定の条件に基づいて、前記複数のデバイスに対するソフトウェアの配信予約を設定する設定手段と、前記受け付け手段にて受け付けた配信予約と、前記設定手段による配信予約とをマージするマージ手段と、前記マージ手段にてマージされた配信予約に基づいて、ソフトウェアの配信を制御する制御手段とを有し、前記マージ手段は、前記設定手段にて設定される配信予約の設定よりも前記受け付け手段にて指定された配信予約の設定を優先させてマージする。【選択図】図１２
2020140231.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアが動作可能な複数のデバイスに対するソフトウェアの配信を制御する配信システムであって、
前記複数のデバイスの少なくともいずれかに対するソフトウェアの配信予約の指定をユーザから受け付ける受け付け手段と、
予め定義された所定の条件に基づいて、前記複数のデバイスに対するソフトウェアの配信予約を設定する設定手段と、
前記受け付け手段にて受け付けた配信予約と、前記設定手段による配信予約とをマージするマージ手段と、
前記マージ手段にてマージされた配信予約に基づいて、ソフトウェアの配信を制御する制御手段と
を有し、
前記マージ手段は、前記設定手段にて設定される配信予約の設定よりも前記受け付け手段にて指定された配信予約の設定を優先させてマージすることを特徴とする配信システム。
【請求項２】
前記マージ手段は、
前記設定手段にて設定される配信予約の対象となるソフトウェアがすでに前記受け付け手段にて指定された配信予約のソフトウェアと同一である場合、前記設定手段による当該ソフトウェアの配信予約はマージの対象とせず、
前記受け付け手段にて指定された配信予約の対象となるソフトウェアがすでに前記設定手段により設定された配信予約のソフトウェアと同一である場合、前記受け付け手段にて指定された配信予約の設定にて前記設定手段による配信予約の設定を更新するようにマージすることを特徴とする請求項１に記載の配信システム。
【請求項３】
１の配信予約において、配信される１または複数のソフトウェアが指定されることを特徴とする請求項２に記載の配信システム。
【請求項４】
前記配信予約の設定は、ソフトウェアのインストール順を含み、
前記更新は、前記設定手段による配信予約にて設定されたソフトウェアのインストール順の設定に対して行われることを特徴とする請求項２または３に記載の配信システム。
【請求項５】
前記受け付け手段は、前記設定手段により設定された配信予約のキャンセルを受け付けることを特徴とする請求項１乃至４のいずれか一項に記載の配信システム。
【請求項６】
前記配信予約では、配信先のデバイス、配信されるソフトウェアおよび当該ソフトウェアのバージョンの情報が指定されることを特徴とする請求項１乃至５のいずれか一項に記載の配信システム。
【請求項７】
前記ソフトウェアは、アプリケーションまたはファームウェアであることを特徴とする請求項１乃至６のいずれか一項に記載の配信システム。
【請求項８】
前記所定の条件は、配信が行われていないソフトウェアを対象として、一定の時間間隔ごとに配信予約を設定するように定義されることを特徴とする請求項１乃至７のいずれか一項に記載の配信システム。
【請求項９】
前記マージ手段にてマージされた配信予約に基づいて配信されたソフトウェアの状態を管理する管理手段を更に有することを特徴とする請求項１乃至８のいずれか一項に記載の配信システム。
【請求項１０】
ソフトウェアが動作可能な複数のデバイスに対するソフトウェアの配信を制御する配信システムの制御方法であって、
前記複数のデバイスの少なくともいずれかに対するソフトウェアの配信予約の指定をユーザから受け付ける受け付け工程と、
予め定義された所定の条件に基づいて、前記複数のデバイスに対するソフトウェアの配信予約を設定する設定工程と、
前記受け付け工程にて受け付けた配信予約と、前記設定工程による配信予約とをマージするマージ工程と、
前記マージ工程にてマージされた配信予約に基づいて、ソフトウェアの配信を制御する制御工程と
を有し、
前記マージ工程において、前記設定工程にて設定される配信予約の設定よりも前記受け付け工程にて指定された配信予約の設定が優先してマージされることを特徴とする制御方法。
【請求項１１】
コンピューターを、
ソフトウェアが動作可能な複数のデバイスの少なくともいずれかに対するソフトウェアの配信予約の指定をユーザから受け付ける受け付け手段、
予め定義された所定の条件に基づいて、前記複数のデバイスに対するソフトウェアの配信予約を設定する設定手段、
前記受け付け手段にて受け付けた配信予約と、前記設定手段による配信予約とをマージするマージ手段、
前記マージ手段にてマージされた配信予約に基づいて、ソフトウェアの配信を制御する制御手段
として機能させ、
前記マージ手段は、前記設定手段にて設定される配信予約の設定よりも前記受け付け手段にて指定された配信予約の設定を優先させてマージすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信システムおよびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、マルチ・ファンクション・プリンタ（ＭＦＰ）のような、ソフトウェアが動作可能なデバイスであって、所定のタイミングにてソフトウェアのアップデートが行われるデバイスが知られている。このようなデバイスに対し、デバイス単位でメンテナンスする運用形態（利用契約）の場合、サービスマンの現場出動を避けるため、ソフトウェアのアップデートには、主に２種類の方式が用いられる。一つは遠隔からの個別アップデート方式であり、もう一つは自動アップデート方式である。
【０００３】
個別アップデートの場合、サービスマンが遠隔からデバイス、ソフトウェア（バージョン）、日時を指定して、ソフトウェアの配信指示を出す。この方式では、サービスマンがまとめて１〜複数台の対象デバイスを指定する。この方式は、デバイスの個別対応をしたい場合に使われる（例えば、特許文献１参照）。一方、自動アップデートの場合、サービス側がサーバにバージョンアップ情報を登録しておく（例：ｖ１→ｖ２、ｖ２→ｖ３、…）。そして、サーバに接続されたデバイスのうち、バージョンアップの条件に合致したデバイス、タイミングで自動的に配信が実施される。自動アップデート方式では、配信先の対象デバイスとして不特定多数のデバイスに配信が実施される。
【０００４】
従来、２つの配信方式は互いに排他であり、優先度の高い個別アップデートの処理が優先される。例えば、商談対応などの個別対応の意志を反映する配信が優先される場合には、二つの方式の配信が同時にスケジュールされた場合は、自動アップデート分は延期される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６２１０７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ソフトウェアの配信には相応の時間がかかるため、自動アップデートと個別アップデートの２回に分けると負荷になる。従って、２つの方式が併存する場合であっても、１回でソフトウェアを配信できることが求められる。一方、１回での配信であっても、個別アップデート指示に基づく個別対応の意志を反映させる必要がある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、ソフトウェアが動作可能な複数のデバイスに対するソフトウェアの配信を制御する配信システムであって、前記複数のデバイスの少なくともいずれかに対するソフトウェアの配信予約の指定をユーザから受け付ける受け付け手段と、予め定義された所定の条件に基づいて、前記複数のデバイスに対するソフトウェアの配信予約を設定する設定手段と、前記受け付け手段にて受け付けた配信予約と、前記設定手段による配信予約とをマージするマージ手段と、前記マージ手段にてマージされた配信予約に基づいて、ソフトウェアの配信を制御する制御手段とを有し、前記マージ手段は、前記設定手段にて設定される配信予約の設定よりも前記受け付け手段にて指定された配信予約の設定を優先させてマージする。
【発明の効果】
【０００８】
本願発明により、個別アップデートと自動アップデートによる配信をマージして１回で配信を可能としつつ、個別アップデートによるデバイスへの個別対応も反映させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るシステム構成の一例を示す図。
【図２】本発明に係るサーバのハードウェア構成の例を示す図。
【図３】本発明に係る配信システム及びデバイスの機能構成の例を示す図。
【図４】本発明に係る配信予約及びデバイスへの配信のシーケンスを示す図。
【図５】本発明に係る配信設定の画面の構成例を示す図。
【図６】本発明に係る配信するアプリケーションとバージョンの選択画面の構成例を示す図。
【図７】本発明に係るアプリケーション配信を行う対象デバイス選択画面の構成例を示す図。
【図８】本発明に係るアプリケーション配信設定画面の構成例を示す図。
【図９】本発明に係る手動配信予約処理のフローチャート。
【図１０】本発明に係る配信アプリケーション情報更新処理のフローチャート。
【図１１】本発明に係る自動配信予約処理のフローチャート。
【図１２】本発明に係る配信アプリケーション情報更新処理のフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１１】
［システム構成］
図１は、本発明の一実施形態に係るシステム構成の例を示す図である。配信システム１０は、Ｗｅｂサーバ１２、ＤＢサーバ１３、及びアプリケーションサーバ１１を含んで構成される。配信システム１０は、インターネット１００に接続されたＷｅｂサーバ１２を介して、複数の顧客企業（１１４、１１９、１２９）それぞれに設置された複数のデバイス（１１５〜１１７、１２０、１２１、１２４〜１２７、１３１）と通信を行う。この構成において、配信システム１０は、アプリケーションソフトウェア（以後「アプリ」と略記）及びファームウェア（以後「ＦＷ」と略記）の配信制御を行う。なお、本実施形態にて配信可能なアプリとＦＷをまとめてコンテンツもしくはソフトウェアと称する場合もある。
【００１２】
アプリ及びＦＷの実ファイルは、コンテンツサーバ２０にて保持されている。デバイスへアプリをインストールする場合には、各デバイスは、配信システム１０からコンテンツサーバ２０上の実ファイルの位置情報を取得し、コンテンツサーバ２０からアプリをダウンロードする。これにより、多くのデバイスのアプリ配信の負荷を分散し、効率良くアプリの配信を行うことができる。アプリ及びＦＷの更新を行う場合も同様の流れで行われる。コンテンツサーバ２０は、コンテンツ管理サーバ２１およびファイルストレージ２２、２３を含んで構成される。コンテンツ管理サーバ２１は、外部からのリクエストに従って、ファイルコンテンツ（すなわち、アプリ及びＦＷ）を保存、あるいは提供する。ファイルストレージ２２、２３には、ファイルコンテンツが保持されている。ここでは、ファイルストレージを２つ示したが、この構成に限定するものではない。また、配信システム１０やコンテンツサーバ２０をそれぞれ１つずつ示したが、これに限定されるものではなく、更に多くのサーバにて構成されてもよい。
【００１３】
デバイスには、マルチ・ファンクション・プリンタ（ＭＦＰ）や、シングル・ファンクション・プリンタ（ＳＦＰ）等の種類があり、デバイスのモデル毎に一つあるいは複数の機能が搭載されている。デバイスに対して、提供する機能を実現するためのＦＷがインストールされることにより、デバイスの各機能が利用可能となる。また、デバイスのモデル毎、あるいは、デバイスのモデルに共通で動作可能なアプリをインストールして実行することが可能である。デバイスの利用者は、そのデバイスで利用可能な複数のアプリの中から、所望のものを選び、ライセンスを購入するなどして入手・有効化することにより、インストールを行う。また、デバイスのアプリの不具合が修正された場合や機能の改善あるいは追加された場合には、アプリを更新することで、それらを利用することができる。なお、デバイスは上記の例に限定するものではなく、他の装置であってもよい。
【００１４】
販売会社システム３０は、デバイスを各顧客企業（１１４、１１９、１２９）へ販売し、維持、管理するデバイスの製造会社あるいはデバイスの販売会社がアプリ及びＦＷの登録・管理のための操作を行う際に用いられる。販売会社システム３０は、１台以上のＰＣ３１、３２およびサーバ３３、３４を含んで構成される。ここでの各機器の数は一例であり、これに限定するものではない。販売会社システム３０から配信システム１０およびコンテンツサーバ２０へアクセスすることにより、アプリ及びＦＷの登録と配信設定が行われる。
【００１５】
［ハードウェア構成］
図２は、本実施形態に係るハードウェア構成の例を示す図である。本実施形態に係るアプリケーションサーバ１１は、ネットワークインタフェース２０４を介して、Ｗｅｂサーバ１２やＤＢサーバ１３と互いに通信可能に接続されている。また、アプリケーションサーバ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３、ネットワークインタフェース２０４、ＨＤＤ２０６を含んで構成され、各部位はバス２０５を介して接続される。ＣＰＵ２０１は、ＨＤＤ２０６、ＲＯＭ２０３、またはＲＡＭ２０２に記録されたデータ及びプログラムを適時読み出して実行することにより、アプリケーションサーバ１１としての各機能が実現される。また、その機能は、複数のサーバの機能の連携によって実現される場合もある。ネットワークインタフェース２０４は、配信システム１０内のサーバ間の機能連携に使われると共に、インターネット１００を介して、外部システムと通信するためにも使用される。
【００１６】
なお、図２は、アプリケーションサーバ１１を例に挙げて説明したが、他のサーバやデバイスも同様のハードウェア構成を持っているものとする。もしくは、各サーバやデバイスは、自身が提供する機能などに応じて異なる部位を備えていてもよい。
【００１７】
［機能構成］
図３は、本実施形態に係る配信システム１０の機能構成の例を示す図である。ここでは、図１に示した配信システム１０に含まれる各種サーバにて提供される各種機能をまとめて、配信システム１０として示す。
【００１８】
デバイス４００は、配信システム１０にインターネット１００等を介して接続されるデバイスの一例である。デバイス４００は、例えば、図１に示す各顧客企業に設置されたデバイスに相当する。Ｗｅｂブラウザ３０２は、配信システム１０に接続する販売会社システム３０の一例として、クライアントシステムであるＷｅｂブラウザを示す。したがって、Ｗｅｂブラウザ３０２は、例えば、販売会社システム３０に設置されたＰＣ３１に備えられる。
【００１９】
Ｗｅｂインターフェース部３１０は、デバイス４００に対するアプリ及びＦＷの配信機能を提供する。Ｗｅｂインターフェース部３１０は、デバイス４００から各種リクエストを受信し、処理結果を返却する。例えば、Ｗｅｂインターフェース部３１０は、アプリ配送情報のリクエストを受信すると、対象とするアプリの格納されている場所を検索し、アプリを取得するためのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）として返却する。リクエスト処理の詳細については、後述する。
【００２０】
ユーザインタフェース部３１１は、配信システム１０へのアクセスが行われた際に、アプリ及びＦＷの登録や配信設定、定期的なアップデート設定を行うためのユーザインタフェース（ＵＩ）を提供する。リクエスト受信部３１２は、デバイス４００からの各種リクエストを受信する。レスポンス返信部３１３は、デバイス４００からの要求に対するレスポンスを返す。配信設定制御部３１４は、ＦＷおよびアプリの配信設定を制御する。配信設定制御部３１４は、デバイス管理部３１５、アプリ配信設定部３１６、およびＦＷ配信設定部３１７を制御して、ユーザインタフェース部３１１で表示する配信設定のための画面の出力内容を決定する。
【００２１】
自動アップデート部３１８は、ＦＷおよびアプリの配信予約を自動で作成する処理を行うバッチ処理プログラムを実行する。スケジューラ３１９は、自動アップデート部３１８を定期的に起動する。ここでのスケジューラ３１９がバッチ処理プログラムを起動するタイミングは予め定義されているものとする。ＤＢアクセス部３２０は、各種処理に応じて、データ管理部３３０で管理されている各種テーブルのデータを更新あるいは検索する。ここでは、テーブルとして、登録アプリ管理テーブル３３１、アプリファイル管理テーブル３３２、バージョンアップ設定情報テーブル３３３、インストール順設定情報テーブル３３４、インストール済みアプリ管理テーブル３３５、配信情報テーブル３３６、および配信アプリケーション情報テーブル３３７が設けられる。なお、これらのテーブル構成は一例であり、必要に応じて、異なる構成が用いられてよい。本実施形態に係る各テーブルの具体的な構成については、表を用いて後述する。
【００２２】
メイン処理部３４０は、デバイス４００の本来の機能を処理する。メイン処理部３４０は、例えば、デバイス４００がプリンターであれば画像形成処理を行う等の主機能を処理する。デバイス４００は、この主機能の他に、以下の部位によるデバイスのＦＷおよびアプリの配信制御を行うための機能も備える。Ｗｅｂインターフェース部３４１は、配信システム１０からアプリ及びＦＷの配信を受けるためのインターフェースであり、配信システム１０のＷｅｂインターフェース部３１０と接続される。配信処理部３４２は、配信制御に係る処理を統括的に実行する。アプリインストール部３４３は、配信されたアプリのインストール処理を行う。アプリ更新部３４４は、インストールされているアプリに対し、新たに配信されたデータを用いて更新処理を行う。ＦＷ更新部３４５は、インストールされているＦＷに対し、新たに配信されたＦＷを用いて更新処理を行う。ＦＷ格納部３４７は、配信されたＦＷを格納する。アプリ格納部３４８は、配信されたアプリを格納する。
【００２３】
［配信シーケンス］
図４は、本実施形態に係る、アプリの更新のための配信シーケンスを示す。ここでは、自動アップデートによる配信予約（以後、自動配信予約）、サービスマン４０２による個別アップデートによる配信予約設定（以後、手動配信予約）、配信予約に従ったデバイス４００への配信の流れが含まれる。
【００２４】
配信システム１０は、データ管理部３３０に保持された情報に従って、配信対象デバイスおよびバージョンアップ対象アプリを検索し、自動的に配信予約設定を行う（Ｓ４２０）。この処理は、配信システム１０において、例えば、スケジューラ３１９によって毎日所定の時間に起動されるバッチ処理プログラムの中で実行される。
【００２５】
一方、サービスマン４０２の操作に基づく手動配信予約が行われる（Ｓ４３０）。サービスマン４０２は、デバイス４００に対するアプリおよびＦＷの更新のために、配信システム１０へ個別アップデートの配信設定操作を行う。サービスマン４０２は、例えばＰＣ３１に備えられたＷｅｂブラウザ（不図示）を介して配信システム１０にアクセスし、アプリ更新予約設定を実施する。
【００２６】
デバイス４００にインストールされているアプリケーションが、そのデバイス４００でバージョンアップ可能なアプリケーションとなる。なお、デバイス４００にインストールされているアプリケーションのうち、権限やライセンス等に応じてアップデートが可能なアプリケーションを分類するような構成であってもよい。配信システム１０は、デバイス４００からインストール済みアプリ情報を適時取得し、この情報に基づいてアプリケーションＩＤ（識別情報）を特定する。そして、配信システム１０は、特定したアプリケーションＩＤに対応するアプリケーションのうち、未配信のバージョンのアプリケーションを配信候補とする。
【００２７】
配信システム１０は、サービスマン４０２から入力された設定に従って、アプリ更新の予約登録を実行する（Ｓ４４５）。
【００２８】
デバイス４００は、配信予約が入っているかを確認するため、定期的に配信システム１０に対して、配信設定確認の問い合わせを実行する（Ｓ４４６）。ここでの定期的とは、デバイス４００側にてある一定の時間間隔が設定されていてもよいし、所定のイベントが発生した際に行われてもよい。
【００２９】
配信システム１０は、デバイス４００からの配信設定確認に応じて、配信設定情報を取得し、デバイス４００へ応答する（Ｓ４４７）。このとき、配信設定情報は、配信システム１０内にて管理された情報に基づいて取得されてもよいし、コンテンツサーバ２０にと言わせた結果、取得されてもよい。
【００３０】
自動配信予約（Ｓ４２０）および手動配信予約（Ｓ４３０）は、デバイス４００からの配信設定確認（Ｓ４４６）を受信するまでの間、並列的にそれぞれ独立して実行される。また、これらの処理が繰り返し実行されることにより、複数のアプリの配信予約を１回の配信予約に統合（マージ）される。本実施形態において、両手段の予約が追加された場合には、互いに既に予約されている配信情報に配信するアプリの追加編集が行われ、一つの配信設定にマージされる。
【００３１】
Ｓ４４７にて配信システム１０からデバイス４００に対して返された配信設定情報には、配信日時情報、配信識別情報、及び更新後の実行状態指示情報が含まれる。なお、配信設定情報の構成は特に限定するものではなく、他の情報が含まれてよい。デバイス４００は、配信設定情報にて設定された配信日時（Ｓ４５０）になると、配信システム１０へ配信識別情報を送信し、対応するアプリを要求する（Ｓ４５１）。
【００３２】
配信システム１０は、配信識別情報を指定した要求を受け付けると、当該配信識別情報に基づいて配信情報テーブル３３６等を参照し、アプリＩＤとバージョンを特定する。さらに、配信システム１０は、アプリファイル管理テーブル３３２からアプリが格納されているＵＲＬ（格納先情報）を検索し、取得する。配信システム１０は、取得したＵＲＬを、コンテンツファイルをダウンロードするためのＵＲＬとし、リスト形式にてデバイス４００へ返却する（Ｓ４５２）。例えば、アプリに対応するファイルが複数ある場合には、それらをダウンロードするための複数のＵＲＬが示される。このとき、アプリのダウンロードリストは、後述の表７におけるインストール順に従った順序で返される。
【００３３】
デバイス４００は、返却されたＵＲＬに基づいてコンテンツサーバ２０にアクセスし、インストールするアプリのファイルを要求する（Ｓ４５３）。コンテンツサーバ２０は、デバイスからの要求に基づいて、アプリに対応するファイルを返す（Ｓ４５４）。対象となるファイルが複数ある場合には、各ファイルがデバイス４００に対して送信されることとなる。
【００３４】
デバイス４００は、Ｓ４５４で取得したアプリのファイルを使用して、アプリの更新処理を配信システム１０にて指定されたインストール順に従って実行する（Ｓ４５５）。
【００３５】
アプリの更新処理が完了した後、デバイス４００は、配信システム１０へ、アプリの更新完了、及び、更新後の実行状態を通知する（Ｓ４５６）。この時、更新されたアプリのバージョンを含め、その時点でデバイス４００にインストールされているアプリとそのバージョンの一覧情報を、配信システム１０へ通知する。
【００３６】
配信システム１０は、デバイス４００から更新の通知を受け付けると、その情報を記録し、デバイス４００における対象アプリの動作状態を更新する（Ｓ４５７）。
【００３７】
デバイス４００は、アプリ状態の記録動作が完了した後、更新通知に対する応答をデバイス４００に返す（Ｓ４５８）。そして、本シーケンスを終了する。
【００３８】
［配信設定］
次に、図４のＳ４３０に示す手動配信予約の配信設定方法について説明する。配信設定は、サービスマン４０２が、例えば、ＰＣ３１などの情報処理装置から行われる。図５は、本実施形態に係る配信設定の際に用いられる設定画面の構成例を示す。
【００３９】
図５（ａ）は、サービスマン４０２がＷｅｂブラウザ３０２を使用して、アプリあるいはＦＷの更新のために配信設定を行うために最初に表示されるユーザインタフェース画面の例である。設定種別５００は、配信設定の種別を選択するためのラジオボタンである。設定種別５００では、ファームウェアの配信設定（「ＦＷ配信」）、アプリの配信設定（「アプリ配信」）の２種類から配信設定を選ぶことができる。図５（ａ）では「ＦＷ配信」が選択されている状態を示している。設定種別５００で「アプリ配信」が選択されると、図５（ｂ）の画面へ遷移する。つまり、設定種別５００にて種別を選択することで、図５（ａ）、あるいは、図５（ｂ）に示す画面の切り替えが行われる。なお、ファームウェアは指定するソフトウェアの種類が１つ（ファームウェアのみ）のため、ここでは、複数種類のソフトウェアが存在するアプリ配信を中心に説明する。なお、以降の説明にて図に示す各画面の構成例において、同じ参照番号が付されている項目は、同じ機能（設定内容）を示すものとする。
【００４０】
図５（ｂ）は、アプリの配信設定を行うための画面の構成例を示す。図５（ｂ）において、まず、アプリの配信設定を行う対象デバイスを複数選択するため、特定条件のデバイスを絞り込むための検索条件を入力する。配信状況５０１は、各対象デバイスの現在のアプリケーションの配信設定の配信状況を指定するためのチェックボックスである。図５（ｂ）の例における配信状況５０１では、「通信待ち」「配信待ち」、「配信中」、「完了」、「失敗」、「キャンセル」から配信状況を複数選択して指定できる。例えば、図５（ｂ）に示すように「失敗」を選択することで、配信に失敗したデバイスに限定して配信設定を行う、との指定が可能である。
【００４１】
検索条件５１０は、デバイスにインストールされているアプリとそのバージョンによってデバイスを絞り込むための検索条件を入力する項目である。ここの入力操作については、後述する。
【００４２】
配信後状態５１１は、既にデバイスにアプリの配信予約が登録されている場合、その配信予約における配信後状態の指定によってデバイスを絞り込むための検索条件を入力する項目である。ここでは、指定されている配信後状態を選択するチェックボックスになっており、「継続」、「開始」、「停止」を指定可能である。
【００４３】
自動アップデート配信予約５１２は、既にデバイスにアプリの配信予約が入っている場合に、自動配信予約を含むか否かでデバイスを絞り込むための検索条件を入力する項目である。自動配信予約を含むか否かの状態を選択するためのチェックボックスになっている。
【００４４】
検索条件５２０〜５２３は、配信対象のアプリとバージョンを指定するための入力項目であるが、図５（ｂ）は、まだ入力が有効になっていない状態を示しており、詳細は後述する。
【００４５】
検索条件５１０には、現在デバイスにインストールされているアプリから、アプリケーション名一覧を表示、選択するドロップダウンメニューと「検索条件追加」のボタンが含まれる。検索条件５１０において、アプリケーション名を選択し、「検索条件追加」のボタンを押下することにより、選択したアプリをデバイスの絞り込み条件として追加する。「検索条件追加」のボタンを押下すると、図６（ａ）の画面へ遷移する。
【００４６】
図６（ａ）に示す画面では、検索条件５１０の入力項目に先ほど選択されたアプリが「現在のアプリケーション名」として表示される。さらに、そのアプリに対応するバージョンを選択するチェックボックスが表示される。ここで、アプリケーション名に対応するバージョンを選択することにより、指定したアプリの特定のバージョンがインストールされているデバイスで絞り込む指定をすることができる。
【００４７】
また、指定されたアプリケーションに対応して、追加表示されたアプリケーション名とバージョンの指定を検索条件から取り除くための「検索条件削除」のボタンも表示される。「検索条件削除」ボタンを押下することにより、図５（ｂ）に示す画面の検索条件５１０の状態へと戻る。
【００４８】
また、図６（ａ）に示す画面の検索条件５１０において、別のアプリケーション名を選択し、「検索条件追加」のボタンを押下することにより、選択したアプリをさらにデバイスの絞り込み条件として追加できる。「検索条件追加」のボタンを押下すると、図６（ｂ）の画面へ遷移する。
【００４９】
図６（ｂ）に示す画面では、現在のアプリケーション名で表示されている複数のアプリ及び（指定されている場合には）指定バージョンの全てがインストールされているデバイスが絞り込みの検索条件となる。図６（ｂ）に示す画面において、「検索条件削除」ボタンを押下すると、検索条件のアプリが減り、図６（ａ）に示す画面に戻る。このとき、図６（ａ）に示す画面では、図６（ｂ）で削除しなかったアプリケーションが条件として残る。
【００５０】
図５および図６に示す画面の検索条件５１０の入力項目において、「検索条件追加」および「検索条件削除」ボタンを操作することにより、配信対象とするデバイス群にインストールされている任意の数のアプリをデバイスの絞り込み条件として指定できる。図６に示す検索条件５１０において、一つ以上のアプリが検索条件として指定されている状態では、図６における検索条件５２０〜５２３に示す配信するアプリケーション情報の項目が有効になる。つまり、アップデート対象のアプリは、デバイス側にもインストールされている必要があるため、配信対象アプリを指定するには、そのアプリがインストールされているデバイスを絞り込む必要もある。
【００５１】
図６に示す画面では、検索条件５２１にて、検索条件５１０において一つ以上指定されているアプリケーション名から配信対象とするアプリを選択するためのドロップダウンメニューを表示する。さらに、検索条件５２１におけるアプリの選択に応じて、検索条件５２２にて、検索条件５２１で選択されたアプリで選択可能なバージョン群からバージョンを選択するためのドロップダウンメニューを表示する。検索条件５２１と検索条件５２２の入力項目において、配信するアプリとそのバージョンを選択すると、検索条件５２３にそのアプリのバージョンを一意に識別する登録番号が表示される。これにより、配信対象アプリの指定になる。
【００５２】
図６に示す画面において、アプリとそのバージョンを含むデバイスの検索条件を設定し、検索ボタン５０４を押下すると、図７に示す画面に遷移する。図５および図６において、リセットボタン５０５を押下すると、図５に示す初期画面へ戻る。これにより、検索条件を変えながら図７に表示するデバイス一覧を更新していくことができる。つまり、アプリの配信設定対象のデバイスを探しながら選択することも可能になっている。
【００５３】
図５（ａ）に示すＦＷの更新のために配信設定する画面においても、図５（ｂ）に示すアプリの配信設定と同様である。公開区分５０２は、各対象デバイスにインストールされているファームウェアの公開区分を指定するためのラジオボタンである。公開区分としては、一般的にどのデバイスにもインストールされるファームウェア（「通常ＦＷ」）、および、商談用等特定の顧客のデバイスにだけインストールされるファームウェア（「特定ＦＷ」）の２種類から選ぶ。バージョン５０３は、各対象デバイスにインストールされているファームウェアのバージョンの範囲を指定するためのドロップダウンメニューである。
【００５４】
配信状況５０１、公開区分５０２、およびバージョン５０３で対象デバイスの条件を指定した後、検索ボタン５０４を押下することで、アプリの配信設定と同様、検索条件に一致したデバイス一覧が表示される。リセットボタン５０５を押下すると、配信状況５０１、公開区分５０２、およびバージョン５０３で設定した検索条件をリセットし、図５（ａ）の初期画面に戻る。このとき、設定種別５００に対する設定は、リセットされずに維持されてもよい。
【００５５】
図７は、検索結果が表示された状態の画面を示す。検索条件で絞り込んだデバイス一覧の中から、さらにアプリ配信設定対象のデバイスを選択する。検索結果５５０は、設定された各種検索条件を用いて検索された複数デバイスの一覧を示している。ここでは、一覧において、以下の情報を左から順に表示している。
デバイスの識別子を示す「デバイスＩＤ」
デバイスに現在インストールされているアプリの名称とバージョンの組合せを複数示す「現在アプリ名：Ｖｅｒ．」
デバイスの現在あるいは最後の配信予約のアプリの名称とバージョンの組合せを複数示す「適用後アプリ名：Ｖｅｒ．」
デバイスへのアプリの配信予約日時を示す「配信予約日時」
デバイスへのアプリの配信状況を示す「アプリ配信状況」
デバイスへのアプリの配信後のアプリの起動状態を示す「配信後状態」
【００５６】
「配信後状態」における値としては、「起動」、「停止」、「不明」のいずれかが表示される。また、検索結果５５０では、アプリ配信設定対象デバイスを選択するためのチェックボックスが設けられている。「現在アプリ名：Ｖｅｒ．」は、後述のインストール済みアプリ情報（表５）より、デバイスＩＤに対応する情報を表示する。「デバイスＩＤ」「配信予約日時」「アプリ配信状況」「配信後状態」は、後述の配信情報（表６）に基づいて、デバイスＩＤに対応する情報を表示する。「適用後アプリ名：Ｖｅｒ．」は、デバイスＩＤに対応する配信ＩＤに基づいて、後述の配信アプリケーション情報（表７）を検索して、インストール順に従った順序で表示する。アプリケーション名称は、配信アプリケーション情報にあるアプリＩＤに基づいて、後述するアプリの管理情報（表１）を検索して取得する。さらに、配信アプリケーション情報に示す各アプリＩＤに対応して、自動予約が“１”の場合には、アプリの名称とバージョンに対応付けて、自動配信予約であることを示す「［ＡＵＴＯ］」の文字列を表示する。具体的には、図７のレコード５６０に示すように、「アプリ１：１．０」に付して表示する。
【００５７】
図７に示す検索結果５５０において、配信先となるデバイスを１または複数選択し、「次へ」ボタン５５１を押下することにより、選択されたデバイスの一覧を含む図８に示す画面へ遷移する。図８は、選択したデバイス群に対して、アプリの配信設定を行う画面の構成例を示す。
【００５８】
アプリの配信設定では、デバイスの選択段階で配信対象アプリが決定しているため、その情報を名称５９０、バージョン５９１、および登録番号５９２の各項目にて表示している。配信設定５９６にて、各デバイスについて、デバイスＩＤとそのデバイスにインストールされている対象アプリ（ここでは、名称５９０に表示されているアプリ）のバージョンが表示される。さらに、配信設定５９６では、「配信日」、「配信時間」、「配信後状態」を個別に設定することが可能である。「配信後状態」としては、「起動」、「停止」、「継続」、のいずれかを指定することができる。ただし、既に別のアプリの配信予約が入っているデバイスについては、「配信日」、「配信時間」、「配信後状態」が決定されているため、変更することはできないように制御される。この場合、名称５９０、およびバージョン５９１に表示されている、これから配信設定するアプリを配信予約に追加することだけが指示可能となっている。そのようなデバイスの場合、例えば、既に設定されている配信予約の配信日、配信時間、配信後状態が、変更できないことを示すグレーで表示される。
【００５９】
これらの設定は、配信設定５９６に一覧表示されるデバイス全体に対して、一括設定することも可能である。設定項目５９３において、「配信日」と「配信時間」を設定する。また、設定項目５９４において、「配信後状態」として上述したいずれかの値を設定する。以上を設定した上で、適用ボタン５９５を押下することにより、配信設定５９６に一覧表示されるデバイス全体から、グレー表示された既に配信予約済みのデバイスを除く、全てのデバイスに同じ値が一括設定される。
【００６０】
このようにアプリ配信設定を入力した後、登録ボタン５９８を押下することで、アプリの配信予約の登録が完了する。配信予約の登録処理は、後述の配信情報（表６）を作成、更新することによって実施される。その後、図５の画面に戻り、さらに、アプリの配信予約を追加することで、複数アプリの配信予約を編集することができる。戻るボタン５９７は、前の画面へ戻るためのボタンである。戻るボタン５９７を押下することにより、図５（ａ）の画面に戻り、デバイスの選択をし直すことが可能である。
【００６１】
登録削除ボタン５９９は、選択されたデバイスのアプリ配信設定を登録削除するためのボタンである。登録削除ボタン５９９を押下することにより、選択されたデバイスのアプリ配信設定の登録削除が行われる。配信設定の登録削除は、後述の配信情報（表６）から対応する情報を削除することによって実施される。
【００６２】
［データ構成］
次に、データ管理部３３０で管理されている各種情報について説明する。配信対象となるアプリは、配信システム１０に登録され、アプリの管理情報としてデータ管理部３３０に保持されている。なお、以下に示すテーブル構成は一例であり、これに限定するものではない。したがって、各テーブルが統合されてもよいし、複数に分割されてもよい。また、他の情報を更に含んでもよい。
【００６３】
表１は、登録アプリ管理テーブル３３１に格納されているアプリの管理情報の例を示す。
【表１】
2020140231.tif 000003
【００６４】
アプリの管理情報は、登録番号、アプリＩＤ、アプリ名、バージョン、および、ファイルＩＤの組合せの一覧から構成される。バージョンの異なる同じアプリはアプリＩＤ（識別情報）で一意に識別される。アプリのあるバージョンは、登録番号で一意に識別される。また、登録番号に対応するアプリの記憶場所（格納先）と紐付けるためのファイルＩＤが保持される。また、ユーザインタフェース上での表示において分かり易いようにアプリ名を付けるような構成であってもよい。なお、アプリの管理情報は、販売会社システム３０から担当者がアプリを登録する際に入力され、更新されることで維持される。
【００６５】
表２は、アプリファイル管理テーブル３３２に格納されているアプリのファイル管理情報の例を示す。
【表２】
2020140231.tif 000004
【００６６】
アプリのファイル管理情報は、ファイルＩＤとＵＲＬの組合せの一覧から構成される。ファイルＩＤは、表１に示したアプリの管理情報におけるファイルＩＤに紐付けられる。この情報より、ファイルＩＤに対応するアプリのファイルが、コンテンツサーバ２０において、ＵＲＬに示す場所に格納されていることが特定できる。
【００６７】
自動アップデートは、配信システム１０において登録、管理される情報に従って、バージョンアップするアプリとそのバージョンが判定される。このとき、バージョンアップ設定情報が用いられる。表３は、バージョンアップ設定情報テーブル３３３に格納されているバージョンアップ設定情報の例を示す。
【表３】
2020140231.tif 000005
【００６８】
バージョンアップ設定情報は、アプリＩＤ、元バージョン、および、先バージョンの組み合わせの一覧から構成される。１レコード分の情報は、そのアプリＩＤに対応するアプリの元バージョンがデバイスにインストールされている場合に、先バージョンに示すバージョンへのアップデートを自動アップデートにより実行することを意味する。本実施形態では、アプリＩＤに示すアプリがデバイスにインストールされていても、元バージョンに示すバージョンではない場合には、自動アップデートの対象とはならない。つまり、バージョンアップ設定情報にアプリＩＤと対応する元バージョンが設定されていない場合には、自動アップデートの対象とはならない。
【００６９】
１回の配信で複数のアプリがバージョンアップされる場合、それらのアプリをどの順序でインストールするかを指定したい場合がある。例えば、互いに依存関係のあるアプリを同時にバージョンアップする場合、依存される側のアプリを依存する側のアプリよりも先にインストールする必要がある。
【００７０】
手動配信予約では、操作するユーザにより、配信後に複数のアプリのインストール順を指定することができる。一方、自動アップデートにおいては、配信システム１０に、インストール順設定情報を保持している。表４は、インストール順設定情報テーブル３３４に格納されているインストール順設定情報の例を示す。
【表４】
2020140231.tif 000006
【００７１】
インストール順設定情報は、アプリＩＤのリストである。表４において、リストの上位（表４の例では、アプリＩＤ「Ａ」が最も上位）にあるアプリがリストの下位にあるアプリよりも先にインストールされることを示す。リストに存在しないアプリは、インストール順の指定がされていないことを意味しており、自動配信予約を実行する際にインストール順序が考慮されず、最後に追加される。
【００７２】
配信システム１０は、デバイスの状態に応じて、配信予約の制御を行う。このため、デバイスの状態を示す情報を保持している。デバイスの状態を示す情報として、各デバイスにインストールされているアプリとその状態の情報がある。表５は、インストール済みアプリ管理テーブル３３５に格納されているデバイスのインストール済みアプリ情報の例を示す。
【表５】
2020140231.tif 000007
【００７３】
インストール済みアプリ情報は、デバイスＩＤ、アプリＩＤ、およびバージョンの組合せの一覧から構成される。この情報により、デバイスＩＤに示すデバイスにアプリＩＤとバージョンの組合せが示すアプリがインストールされていることを示している。この情報は、図４に示すＳ４５７の処理で更新される。そして、インストール済みアプリ情報は、図５及び図６における検索条件５１０で表示される更新対象のアプリの候補を出すために参照される。また、インストール済みアプリ情報は、自動アップデートの配信予約において、バージョンアップ対象のアプリがデバイスにインストールされているか否かの判定のために参照される。
【００７４】
配信システム１０は、自動配信予約および手動配信予約により配信予約が行われると、配信情報を作成する。また、配信システム１０は、配信予約にアプリが追加されると、配信情報を編集して更新する。また、配信システム１０は、配信予約のキャンセルのために配信設定の登録削除が行われると、テーブルから配信情報を削除する。表６は、配信情報テーブル３３６に格納されている配信情報の例を示す。
【表６】
2020140231.tif 000008
【００７５】
配信情報は、配信ＩＤ、デバイスＩＤ、配信日時、配信後状態、および配信状況の組合せの一覧から構成される。配信ＩＤは、配信情報を一意に識別するための識別情報である。配信ＩＤに対応して、配信対象のデバイスを示すデバイスＩＤと配信日時が決まる。また、配信ＩＤに対応する配信における、配信後のアプリの状態が指定される。配信状況は、配信ＩＤに対応する配信情報に従って進められる配信の処理状況を示す。配信状況は、図４に示す配信設定確認処理（Ｓ４４６）までは「通信待ち」となり、配信設定確認を受信すると「配信待ち」になる。また、予約日時（図４のＳ４５０）が経過すると、配信状況は「配信中」となる。さらに、配信が完了した後、その状況に応じて、配信状況は「完了」あるいは「失敗」となる。
【００７６】
１つの配信情報に対応して、１または複数のアプリが配信される可能性がある。配信ＩＤに対応して配信されるアプリは配信アプリケーション情報で管理される。表７は、配信アプリケーション情報テーブル３３７に格納されている配信アプリケーション情報の例を示す。
【表７】
2020140231.tif 000009
【００７７】
配信アプリケーション情報は、配信ＩＤ、アプリＩＤ、バージョン、インストール順、および自動予約の組合せの一覧から構成される。表７において、同じ配信ＩＤのレコードは、同じ配信予約で配信されることを意味している。１つのレコードの情報は、配信ＩＤに対応して、アプリＩＤとバージョン、そのアプリＩＤのアプリをインストールする順、そのアプリの配信予約が自動アップデートで入ったものか否かを示している。インストール順の数値は、同じ配信ＩＤのアプリにおいて、インストールする順序を示している。自動予約は、「１」ならば自動配信予約、「０」ならば手動配信予約を意味する。
【００７８】
［更新例］
以下に配信アプリケーション情報の更新例により、自動アップデートと手動配信予約によってどのように配信予約がマージされるかの例を示す。以下、表８〜表１７は、配信アプリケーション情報テーブル３３７に格納されている配信アプリケーション情報の更新状態の流れの例を示す。表８〜表１７においては、特定の配信ＩＤ「９９９」に着目し、これに対応する部分的な配信アプリケーション情報を示す。そのため、他の配信ＩＤの部分は省略している。また、アプリＩＤおよび自動アップデートのインストール順設定については、表４に示す例に従うものとする。
【００７９】
まず、表８〜表１０を用いて、第一の例を示す。手動配信予約、すなわち、図８の画面における登録ボタン５９８の押下によって、手動配信予約（図４のＳ４３０）に対応するサービスマン４０２による操作が行われると、表６における１レコード分の配信情報が作成される。また、配信アプリケーション情報も合わせて作成される。ある一つのデバイスに対応して新規作成された配信ＩＤを「９９９」とすると、配信アプリケーション情報は、表８のようになる。
【表８】
2020140231.tif 000010
【００８０】
２行目のレコードが新規作成された配信アプリケーション情報に相当する。ここで、新規に配信予約したアプリケーションのアプリＩＤは「Ｘ」、バージョンは「４．００」である。この配信ＩＤにおける最初のアプリケーションであるため、インストール順は「１」となる。また、手動操作による配信予約であるため、自動予約の値は「０」となる。
【００８１】
次に、同じデバイスに対して、アプリＩＤが「Ｙ」である別のアプリの手動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報を表９のように更新される。
【表９】
2020140231.tif 000011
【００８２】
既存の配信予約に入っているアプリとは別のアプリの配信予約を手動で追加する場合には、インストール順の最後に追加される。３行目のレコードが追加された配信アプリケーション情報に相当する。このとき、配信ＩＤは「９９９」であり、追加で配信予約したアプリケーションのアプリＩＤは「Ｙ」であり、バージョンは「３．１０」である。既に一つ目の配信アプリケーション情報が存在した後に追加しているため、インストール順は「２」となる。また、手動操作による配信予約であるため、自動予約の値は「０」となる。
【００８３】
さらに、この後、同じデバイスに対して、アプリＩＤが「Ａ」である別のアプリの自動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報が表１０のように更新される。
【表１０】
2020140231.tif 000012
【００８４】
既存の配信予約に入っているアプリとは別のアプリの配信予約を自動で追加する場合には、追加するアプリがインストール順設定されているアプリか否かで処理が異なる。アプリＩＤが「Ａ」のアプリは、表４に記載の例に従えば、インストール順設定がされている。この場合には、配信予約のインストール順の先頭に自動アップデート設定のインストール順に従ってアプリケーションの配信予約を挿入する。表１０において、４行目のレコードが追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリのアプリＩＤは「Ａ」であり、バージョンは「４．００」である。インストール順は先頭に挿入するため「１」となる。また、自動配信予約なので、自動予約の値は「１」である。更に、この追加により、配信ＩＤ「９９９」における配信予約において「Ａ」が先頭に挿入されたため、他の２行目や３行目のレコードの値も更新され、インストール順が「２」、「３」とそれぞれ一つずつ後回しになる。
【００８５】
表９に示す状態の後で、同じデバイスに対して、アプリＩＤが「Ｚ」である別のアプリの自動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報を表１１のように更新される。表８、表９、表１１、表１２を用いて、第二の例を示す。
【表１１】
2020140231.tif 000013
【００８６】
アプリＩＤが「Ｚ」であるアプリは、表４に記載の例に従えば、インストール順設定がされていない。この場合には、配信予約を手動で追加する場合と同様、インストール順の最後に追加される。３行目のレコードが追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリケーションのアプリＩＤは「Ｚ」であり、バージョンは「４．００」である。この追加では、配信ＩＤ「９９９」における配信予約において既に２つの配信予約がある状態で最後に追加したため、インストール順は「３」となる。自動配信予約であるため、自動予約の値は「１」となる。配信予約を手動で追加する場合には、追加する対象アプリが自動アップデートにおけるインストール順設定がされているか否かは参照されない。
【００８７】
表１１の状態の後で、同じデバイスに対して、アプリＩＤが「Ａ」である別のアプリの手動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報を表１２のように更新される。
【表１２】
2020140231.tif 000014
【００８８】
アプリＩＤが「Ａ」のアプリは、表４に示すインストール順設定に設定されているが、手動配信予約ではこの情報は参照されない。従って、既存の配信予約に登録されているアプリとは別のアプリの配信予約を手動で追加する場合になるため、インストール順の最後に追加される。５行目のレコードが追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリのアプリＩＤは「Ａ」であり、バージョンは「３．１０」である。この追加では、配信ＩＤ「９９９」に対する配信予約において既に３つの配信予約がある状態で新たに追加したため、インストール順は「４」となる。手動操作による配信予約であるため、自動予約の値は「０」である。既存の配信予約に入っているアプリとは別のアプリの配信予約を追加する場合の配信アプリケーション情報の更新方法は以上の通りである。
【００８９】
一方、既存の配信予約に入っているアプリと同じアプリの配信予約を重ねて予約する場合は、異なる処理を行う。表１３から表１７を用いて、第三の例を示す。
【００９０】
手動配信予約により、アプリＩＤが「Ｂ」の配信予約を新規作成する。上述の例と同様、新規作成された配信ＩＤが「９９９」とすると、配信アプリケーション情報は表１３のようになる。
【表１３】
2020140231.tif 000015
【００９１】
２行目のレコードが新規作成分の配信アプリケーション情報に対応する。ここで、新規に配信予約したアプリのアプリＩＤは「Ｂ」であり、バージョンは「４．００」である。配信ＩＤに対応する最初のアプリであるため、インストール順は「１」である。手動操作による配信予約であるため、自動予約の値は「０」である。
【００９２】
次に、同じデバイスに対して、アプリＩＤが「Ａ」である別のアプリの手動配信予約が行われた場合、配信ＩＤが「９９９」に対応する配信アプリケーション情報は表１４のように更新される。
【表１４】
2020140231.tif 000016
【００９３】
アプリＩＤが「Ａ」および「Ｂ」のアプリはいずれも、表４に示すインストール順設定がされており、かつ、アプリＩＤが「Ａ」のアプリのインストール順はアプリＩＤが「Ｂ」のアプリよりも先である。しかしながら、いずれも手動による追加であるため、上述の通り、インストール順の最後に追加される。３行目のレコードが追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリケーションのアプリＩＤは「Ａ」であり、バージョンは「３．１０」である。この追加では、配信ＩＤ「９９９」に対する配信予約において既に１つの配信予約がある状態で新たに追加したため、インストール順は「２」となる。手動操作による配信予約であるため、自動予約の値は「０」である。
【００９４】
さらに、この後、同じデバイスに対して、アプリＩＤが「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」の４つのアプリが自動アップデートによって配信予約される場合を示す。表１４に示す状態の後、アプリＩＤが「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」の４つのアプリの自動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報が表１５のように更新される。
【表１５】
2020140231.tif 000017
【００９５】
複数のアプリの自動アップデートは、まず、インストール順設定されているアプリ群をインストール順設定順に配信予約挿入を行う。ただし、既に配信予約に含まれるアプリＩＤのアプリについては、配信予約挿入をスキップする。つまり、表４に示す例に従えば、アプリＩＤ「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」の順に各アプリに対するインストール順設定がされている。そこで、配信ＩＤが「９９９」の配信アプリケーション情報の先頭にアプリＩＤ「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」の順に挿入しようとする。しかし、表１４に示すように、アプリＩＤが「Ａ」と「Ｂ」のアプリについては、既に配信予約に含まれるため、配信予約挿入の対象から除外する。つまり、アプリＩＤが「Ｃ」と「Ｄ」のアプリのみが配信アプリケーション情報の先頭に挿入される。結果として、４行目と５行目のレコードが追加される。
【００９６】
４行目のレコードは、追加されたアプリＩＤが「Ｃ」のアプリであり、バージョンは「４．００」である。表４を参照すると、アプリＩＤが「Ａ」と「Ｂ」のアプリを除くとアプリＩＤが「Ｃ」のアプリが最もインストール順が早いため、インストール順は「１」である。自動予約の値は「１」である。
【００９７】
５行目のレコードは、追加されたアプリＩＤが「Ｄ」のアプリであり、バージョンは「３．１０」である。表４を参照すると、インストール順はアプリＩＤが「Ｃ」のアプリの次となり、インストール順は「２」である。自動予約の値は「１」である。さらに、アプリＩＤが「Ｃ」、「Ｄ」のアプリが先頭に挿入されたため、２行目、３行目のレコードも更新されて、インストール順がそれぞれ「３」、「４」として後回しにされる。
【００９８】
つまり、自動配信予約では、既に配信予約に予約しようとするアプリが含まれる場合には、追加あるいは挿入と言った配信予約編集の対象から除外する。言い換えると、自動配信予約による配信予約よりも、すでに登録されている手動配信予約による配信予約が優先して維持されることとなる。これは、インストール順が設定されていないアプリの場合でも同様である。
【００９９】
一方、手動配信予約の場合には、異なる処理を行う。表１５に示す状態の後、アプリＩＤが「Ｂ」のアプリの手動配信予約が行われた場合、配信ＩＤが「９９９」に対応する配信アプリケーション情報は表１６のように更新される。ここで、アプリＩＤが「Ｂ」のアプリの手動配信予約は、既存配信予約に含まれるものとは別のバージョン（ここでは、５．００）が指定されているものとする。
【表１６】
2020140231.tif 000018
【０１００】
既存の配信予約に入っているアプリと同じアプリの配信予約を手動で追加する場合には、まず、既存の配信予約から該当するアプリの情報を削除する。そして、改めて、対象アプリケーションをインストール順の最後に追加する。上記の例の場合、表１５における２行目のレコードは削除される。また、表１６における２行目から４行目のレコードが、表１５における３行目から５行目のレコードに対応する。そして、表１６の５行目のレコードが新たな追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリのアプリＩＤは「Ｂ」、バージョンは「５．００」、インストール順は「４」である。アプリＩＤが「Ｃ」のアプリ（表１６の３行目）と「Ｄ」（表１６の４行目）のアプリの配信予約については、変更は無い。一方、アプリＩＤが「Ａ」（表１６の２行目）のアプリの配信予約についてはインストール順が一つ繰り上がり「３」となる。
【０１０１】
このように、手動配信予約の場合には、既存予約のアプリケーションに対して、インストール順序の再配置、バージョンの変更という編集を可能とする。さらに、この既存予約の編集は、自動配信予約によって配信予約されたアプリに対しても可能である。
【０１０２】
表１６に示す状態の後、アプリＩＤが「Ｃ」のアプリの手動配信予約が行われると、配信ＩＤが「９９９」に対応する配信アプリケーション情報は表１７のように更新される。ここで、アプリＩＤが「Ｃ」のアプリの手動配信予約は、既存配信予約に含まれるものとは別のバージョン（ここでは、５．００）が指定されているものとする。
【表１７】
2020140231.tif 000019
【０１０３】
この場合も、まず、既存の配信予約から該当するアプリの情報を削除する。そして、改めて、対象アプリがインストール順の最後に追加される。上記の例の場合、表１６における３行目のレコードは削除される。また、表１７における３行目から４行目のレコードが、表１６における４行目から５行目のレコードに対応する。そして、表１７の５行目のレコードが新たな追加分の配信アプリケーション情報に対応する。ここで、追加で配信予約したアプリケーションのアプリＩＤは「Ｃ」、バージョンは「５．００」、インストール順は「４」、自動予約は「０」である。表１７に示すように、アプリＩＤが「Ａ」、「Ｂ」、「Ｄ」（２行目〜４行目）のアプリの配信予約についてはインストール順が一つずつ繰り上がる。
【０１０４】
このように、手動配信予約の場合には、既存予約のアプリが自動配信予約によって登録されたものであっても、インストール順序の再配置、バージョンの変更という編集を可能とする。
【０１０５】
［手動予約による配信処理］
次に、本実施形態に係る配信情報の更新処理について説明する。図９は、配信システム１０のアプリ配信設定部３１６が、操作者の入力に従って、配信情報を作成あるいは更新する手動配信予約処理を示したフローチャートの例である。図９は、図４のシーケンスにおけるＳ４３０、Ｓ４４５の処理に対応し、図５（ｂ）から図８に示す画面表示に対応する。本処理フローは、例えば、サービスマン４０２がＰＣ３１等から配信システム１０にアクセスし、手動設定を要求することで開始される。
【０１０６】
Ｓ１００１にて、アプリ配信設定部３１６は、デバイスの検索、絞り込みを行うための検索条件の入力を受け付け、受け付けた検索条件に基づいてデバイスの絞り込みを行う。これは、図６および図７に示す画面上での操作に対応する。
【０１０７】
Ｓ１００２にて、アプリ配信設定部３１６は、Ｓ１００１での絞り込みの結果として出力された一つ以上のデバイスに対して、配信するアプリとバージョンの指定の入力を受け付ける。これは、図６および図７における検索条件５２０の項目の入力に対応する。
【０１０８】
Ｓ１００３にて、アプリ配信設定部３１６は、配信設定の情報の入力を受け付ける。これは、図８に示す画面の入力操作に対応する。
【０１０９】
Ｓ１００４にて、アプリ配信設定部３１６は、図８に示す画面の最後の操作の種類の判定を行う。図８の画面において戻るボタン５９７、登録ボタン５９８、登録削除ボタン５９９が設けられており、それぞれ「キャンセル」「登録」「削除」が操作されるものとする。配信設定操作がキャンセルされた場合には、本処理フローを終了する。選択されたデバイスの配信設定の削除が指示された場合には、Ｓ１０１２へ進む。入力された配信設定による配信情報の登録（あるいは更新）が指示された場合には、Ｓ１００５へ進む。
【０１１０】
Ｓ１００５にて、アプリ配信設定部３１６は、設定された配信対象のデバイスの中から未処理のデバイスを処理対象とする。
【０１１１】
Ｓ１００６にて、アプリ配信設定部３１６は、配信情報テーブル３３６を検索し、対象デバイスにおいて「配信状況」が「配信待ち」あるいは「配信中」となっている配信情報があるか否かを判定する。「配信状況」が「配信待ち」あるいは「配信中」となっている配信情報がある場合（Ｓ１００６にてＹＥＳ）、このタイミングでは、配信情報にアプリを追加することはできない。従って、対象デバイスへの処理をスキップし、Ｓ１０１１へ進む。そうでない場合（Ｓ１００６にてＮＯ）、Ｓ１００７へ進む。この場合、対象デバイスの処理状況は未完了となり、他のデバイスへの処理の後、再度処理対象とされてよい。
【０１１２】
Ｓ１００７にて、アプリ配信設定部３１６は、対象デバイスにおいて「配信状況」が「通信待ち」となっている配信情報があるか否かを判定する。「通信待ち」となっている配信情報がある場合（Ｓ１００７にてＹＥＳ）、Ｓ１０１０へ進む。「配信状況」が「通信待ち」となっている配信情報が無い場合（Ｓ１００７にてＮＯ）、Ｓ１００８へ進む。この場合、未完了の配信情報は存在しない。
【０１１３】
Ｓ１００８にて、アプリ配信設定部３１６は、対象となるデバイスのデバイスＩＤ、指定された配信設定から配信日時、配信後状態をもって配信情報テーブル３３６に配信情報を作成する。このとき、アプリ配信設定部３１６は、生成した配信情報に対して新しく配信ＩＤを割り振る。
【０１１４】
Ｓ１００９にて、アプリ配信設定部３１６は、Ｓ１００８で割り振られた配信ＩＤを用いて、配信アプリケーション情報テーブル３３７に配信アプリケーション情報を作成する。このとき作成される配信アプリケーション情報においては、アプリＩＤとバージョンは入力されたものが設定され、インストール順は「１」、自動予約は「０」とする。そして、Ｓ１０１１へ進む。
【０１１５】
Ｓ１０１０にて、アプリ配信設定部３１６は、配信アプリケーション情報の更新処理を呼び出し、既存の配信情報にアプリケーションの追加、更新を行う。本処理の詳細については、図１０を用いて後述する。本処理の後、Ｓ１０１１へ進む。
【０１１６】
Ｓ１０１１にて、アプリ配信設定部３１６は、配信対象の全デバイスに対して配信情報の処理が完了したか否かを判定する。未処理のデバイスがある場合は（Ｓ１０１１にてＮＯ）Ｓ１００５へ戻り、未処理のデバイスに対する処理を繰り返す。全デバイスに対する処理が完了した場合には（Ｓ１０１１にてＹＥＳ）本処理フローを終了する。
【０１１７】
Ｓ１０１２にて、アプリ配信設定部３１６は、配信情報テーブル３３６から、対象デバイスに対応する配信情報を削除する。
【０１１８】
Ｓ１０１３にて、アプリ配信設定部３１６は、配信アプリケーション情報テーブル３３７から、対応する配信ＩＤの配信アプリケーション情報を削除する。そして、本処理フローを終了する。
【０１１９】
（配信アプリケーション情報の更新）
図１０は、図９におけるＳ１０１０の処理の詳細を示したフローチャートの例である。
【０１２０】
Ｓ１１０１にて、アプリ配信設定部３１６は、配信アプリケーション情報テーブル３３７の対象配信ＩＤの情報の中からインストール順の値が最後（最大）のものを記憶する。ここでは、変数Ｌに記憶されるものとする。対象配信ＩＤとは、図９のＳ１００７で「通信待ち」の配信情報がある、と判定された配信情報の配信ＩＤに対応する。
【０１２１】
Ｓ１１０２にて、アプリ配信設定部３１６は、配信アプリケーション情報テーブル３３７を参照し、配信設定で入力されたアプリＩＤと同じアプリＩＤの配信予約が、対象配信ＩＤの情報の中に含まれているか否かを判定する。同じアプリＩＤの配信予約が含まれていると判定された場合（Ｓ１１０２にてＹＥＳ）、Ｓ１１０３へ進む。同じアプリＩＤの配信予約が含まれていないと判定された場合（Ｓ１１０２にてＮＯ）、Ｓ１１０７へ進む。
【０１２２】
Ｓ１１０３にて、アプリ配信設定部３１６は、配信アプリケーション情報テーブル３３７を参照し、配信情報に含まれる同じアプリＩＤのインストール順を記憶する。ここでは、変数Ｒに記憶されるものとする。
【０１２３】
Ｓ１１０４にて、アプリ配信設定部３１６は、すでに登録されていた同じアプリＩＤの配信情報を配信アプリケーション情報テーブル３３７から削除する。
【０１２４】
Ｓ１１０５にて、アプリ配信設定部３１６は、配信アプリケーション情報テーブル３３７において、対象配信ＩＤの他の配信アプリケーション情報のインストール順のうち、Ｒ＋１からＬまでのインストール順の値を全て１減算する。つまり、同じ配信ＩＤに対応付けられたアプリのうち、削除したレコード以降のアプリのインストール順を１つずつ繰り上げるように順序が更新される。
【０１２５】
Ｓ１１０６にて、アプリ配信設定部３１６は、改めて、配信アプリケーション情報テーブル３３７に、配信設定で入力されたアプリＩＤの配信アプリケーション情報を追加する。このとき追加される配信アプリケーション情報のインストール順は変数Ｌの値とし、自動予約の値は「０」とする。そして、本処理フローを終了する。
【０１２６】
Ｓ１１０７にて、アプリ配信設定部３１６は、配信設定で入力されたアプリＩＤと同じアプリＩＤの配信アプリケーション情報は存在しないため、そのまま、配信アプリケーション情報テーブル３３７に、新しく追加する。この時、追加される配信アプリケーション情報のインストール順は変数Ｌ＋１の値とし、自動予約の値は「０」とする。そして、本処理フローを終了する。
【０１２７】
以上述べた処理により、表８、表９、表１２〜表１４、表１６、表１７に示した更新の例に対応する処理を行うことができる。
【０１２８】
［自動配信予約による配信処理］
図１１は、本実施形態に係る、自動アップデート部３１８がスケジューラ３１９によって呼び出された時に、配信情報を作成あるいは更新する自動配信予約処理を示したフローチャートの例である。図１１は、図４のシーケンスにおけるＳ４２０の処理に対応する。本実施形態において、スケジューラ３１９により処理が開始されるタイミングは予め設定されているものとする。
【０１２９】
Ｓ１２０１にて、自動アップデート部３１８は、全対象デバイスの中から、未処理のデバイスを処理対象とする。ここで、対象デバイスとは、インストール済みアプリ管理テーブル３３５にインストールされているアプリの記録がなされている全デバイスである。
【０１３０】
Ｓ１２０２にて、自動アップデート部３１８は、処理対象のデバイスにインストールされている１または複数のアプリのうち、未処理のアプリを対象アプリとする。Ｓ１２０３〜Ｓ１２０６において、処理対象デバイスにインストールされているアプリから、バージョンアップする必要のあるアプリを抽出し、インストール順が指定されているものと、されていないものの二つに分類する処理を行う。
【０１３１】
Ｓ１２０３にて、自動アップデート部３１８は、バージョンアップ設定情報テーブル３３３を検索し、対象デバイスにインストールされているアプリのバージョンから、対象アプリにおいて更新するべきバージョンがあるか否かを判定する。対象アプリが検索で見つからない、すなわち、更新するべきバージョンが無い場合（Ｓ１２０３にてＮＯ）Ｓ１２０７へ進み、そのアプリについての処理は終了する。更新するべきバージョンがある場合（Ｓ１２０３にてＹＥＳ）、Ｓ１２０４へ進む。
【０１３２】
Ｓ１２０４にて、自動アップデート部３１８は、インストール順設定情報テーブル３３４を参照し、対象アプリがインストール順の指定されているものか否かを判定する。対象アプリが検索で見つかった場合、すなわち、インストール順が指定されているアプリの場合（Ｓ１２０４にてＹＥＳ）、Ｓ１２０５へ進む。対象アプリが検索で見つからなかった場合、すなわちインストール順が指定されていないアプリの場合（Ｓ１２０４にてＮＯ）、Ｓ１２０６へ進む。
【０１３３】
Ｓ１２０５にて、自動アップデート部３１８は、対象アプリをインストール順指定一次リストへ追加する。そして、Ｓ１２０７へ進む。
【０１３４】
Ｓ１２０６にて、自動アップデート部３１８は、対象アプリをインストール順無し一次リストへ追加する。そして、Ｓ１２０７へ進む。
【０１３５】
ここで用いられるインストール順指定一次リスト、および、インストール順無し一次リストは、ＲＡＭ２０２に一時的に作成され、Ｓ１２０１〜Ｓ１２１４で繰り返されるデバイス毎の処理が始まる度にリセットされるものとする。表１８は、本実施形態に係るインストール順指定一次リストの例を示す。なお、インストール順無し一次リストも同じ形式である。
【表１８】
2020140231.tif 000020
【０１３６】
Ｓ１２０７にて、自動アップデート部３１８は、処理対象のデバイスにインストールされている１または複数のアプリ全てに対して処理が完了したか否かを判定する。全てのアプリに対して処理が完了した場合（Ｓ１２０７にてＹＥＳ）Ｓ１２０８へ進み、未処理のアプリがある場合は（Ｓ１２０７にてＮＯ）Ｓ１２０２へ戻り、処理を繰り返す。
【０１３７】
Ｓ１２０８にて、自動アップデート部３１８は、対象デバイスについて、配信予約処理の必要性を判定する。具体的には、自動アップデート部３１８は、インストール順指定一次リスト、あるいは、インストール順無し一次リストのいずれかにアプリが追加されている場合には、そのアプリについて配信予約処理を実行する必要があると判定する。配信予約処理が必要であると判定された場合（Ｓ１２０８にてＹＥＳ）、Ｓ１２０９へ進む。両方のリストが空の場合、すなわち、配信予約処理が必要でないと判定された場合（Ｓ１２０８にてＮＯ）、Ｓ１２１４へ進む。
【０１３８】
Ｓ１２０９にて、自動アップデート部３１８は、対象デバイスに現在進行中の配信があるか否かを判定する。具体的には、自動アップデート部３１８は、配信情報テーブル３３６を参照し、対象デバイスの配信情報の中に配信状況が「配信待ち」あるいは「配信中」のものが存在するか否かを確認する。現在進行中の配信がある、すなわち、「配信待ち」あるいは「配信中」のものが存在する場合（Ｓ１２０９にてＹＥＳ）、Ｓ１２１４へ進む。現在進行中の配信が無い、すなわち、「配信待ち」あるいは「配信中」のものが存在しない場合（Ｓ１２０９にてＮＯ）、Ｓ１２１０へ進む。
【０１３９】
Ｓ１２１０にて、自動アップデート部３１８は、対象デバイスにアプリの追加が可能な既存の配信情報が存在するか否かを判定する。具体的には、自動アップデート部３１８は、配信情報テーブル３３６を参照し、対象デバイスの配信情報の中に配信状況が「通信待ち」のものが存在するか否かを確認する。アプリの追加が可能な既存の配信情報が存在する、すなわち、「通信待ち」のものが存在する場合（Ｓ１２１０にてＹＥＳ）、Ｓ１２１２へ進む。既存の配信情報が存在しない、すなわち、「通信待ち」のものが存在しない場合（Ｓ１２１０にてＮＯ）、Ｓ１２１１へ進む。
【０１４０】
Ｓ１２１１にて、自動アップデート部３１８は、配信情報テーブル３３６に新たな配信情報を作成し、これに対して新しく配信ＩＤを割り振る。新たな配信情報のデバイスＩＤには、この処理の対象となるデバイスＩＤを設定する。配信日時には、図１１の処理時点から例えば１日後等、配信情報設定（図４のＳ４４７）のタイミング以降となるよう余裕を持った日時を設定する。なお、ここで設定される配信日時は特に限定するものではなく、例えば、アプリのデータサイズ等に応じて設定されてもよい。また、配信後状態には「継続」が設定される。そして、Ｓ１２１３へ進む。
【０１４１】
Ｓ１２１２にて、自動アップデート部３１８は、アプリの追加をしようとしている既存の配信情報で設定されている配信後状態が「継続」であるか否かを判定する。自動アップデートでは、不特定多数のデバイスの配信予約をまとめて設定する。そのため、デバイスにおけるアップデート後の想定外の挙動をなるべく避けるために、配信後状態には「継続」を設定するものとする。また、既存の配信予約にアプリを追加しようとする場合も、既存の配信情報の配信後状態が「継続」で設定されていない場合には、アプリの追加をスキップする。検索した配信情報の配信後状態が「継続」でない場合（Ｓ１２１２にてＮＯ）、Ｓ１２１４へ進み、対象配信情報の配信後状態が「継続」の場合（Ｓ１２１２にてＹＥＳ）、Ｓ１２１３へ進む。
【０１４２】
Ｓ１２１３にて、自動アップデート部３１８は、配信アプリケーション情報更新の処理により、既存の配信情報にアプリケーションの追加、更新を行う。本処理の詳細は、図１２を用いて後述する。
【０１４３】
Ｓ１２１４にて、自動アップデート部３１８は、配信対象の全デバイスに対して処理が完了したか否かを判定する。全デバイスに対して処理が完了していない場合は（Ｓ１２１４にてＮＯ）Ｓ１２０１へ戻り、処理を繰り返す。全デバイスに対して処理が完了した場合は（Ｓ１２１４にてＹＥＳ）本処理フローを終了する。
【０１４４】
（配信アプリケーション情報の更新）
図１２は、図１１におけるＳ１２１３の処理の詳細を示したフローチャートの例である。図１２に示す処理では、Ｓ１２１０で検索した「通信待ち」の配信情報の配信ＩＤ、あるいは、Ｓ１２１１で作成した配信情報の配信ＩＤをもって、配信アプリケーション情報の作成あるいは更新を行う。また、図１１に示す処理で作成された、インストール順指定一次リスト、および、インストール順無し一次リストが使用される。
【０１４５】
Ｓ１３０１にて、自動アップデート部３１８は、インストール順指定一次リストをインストール順の逆順にソートする。これは、インストール順指定のあるアプリの場合は、既存の配信情報のインストール順の前に挿入し、かつ、挿入されたアプリのインストール順がインストール順設定情報テーブル３３４に従うようにするためである。インストール順指定一次リストのインストール順の最後から順に、常に先頭に挿入することで結果的にインストール順に従うことになる。
【０１４６】
Ｓ１３０２にて、自動アップデート部３１８は、Ｓ１３０１でソートされたインストール順指定一次リストに従って、未処理のアプリを処理対象とする。なお、インストール順指定一次リストが空の場合は、Ｓ１３０１〜Ｓ１３０６の処理は実質スキップされる。
【０１４７】
Ｓ１３０３にて、自動アップデート部３１８は、配信アプリケーション情報テーブル３３７において対象配信ＩＤを検索し、インストール順指定一次リストから取り出されたアプリＩＤと同じアプリＩＤの配信予約が対象配信ＩＤの中にあるか否かを判定する。本実施形態では、同じアプリＩＤの配信予約がある場合、そのアプリＩＤについての配信予約は追加も更新もしないものとする。同じアプリＩＤの配信予約がある場合（Ｓ１３０３にてＹＥＳ）、Ｓ１３０６へ進む。同じアプリＩＤの配信予約がない場合（Ｓ１３０４にてＮＯ）、Ｓ１３０４へ進む。
【０１４８】
Ｓ１３０４にて、自動アップデート部３１８は、配信アプリケーション情報テーブル３３７において、対象配信ＩＤの配信アプリケーション情報の全てのインストール順を１加算する。なお、このとき、対象配信ＩＤの配信アプリケーション情報が一つもない場合には、ここの処理は実質スキップされる。
【０１４９】
Ｓ１３０５にて、自動アップデート部３１８は、対象配信ＩＤおよび対象アプリＩＤの配信アプリケーション情報を追加する。ここで追加される配信アプリケーション情報のバージョンには、対象デバイスにインストールされている対象アプリＩＤのバージョンからバージョンアップ設定情報テーブル３３３で求めた更新先バージョンを設定する。インストール順には「１」を設定する。自動予約には「１」を設定する。
【０１５０】
Ｓ１３０６にて、自動アップデート部３１８は、インストール順指定の対象アプリ全てに対して処理が完了したか否かを判定する。全アプリに対して処理が完了していない場合は（Ｓ１３０６にてＮＯ）Ｓ１３０２へ戻り、処理を繰り返す。全アプリに対して処理が完了した場合は（Ｓ１３０６にてＹＥＳ）Ｓ１３０７へ進む。
【０１５１】
Ｓ１３０７にて、自動アップデート部３１８は、インストール順無し一次リストに従って、各アプリについて、未処理のアプリを処理対象とする。なお、インストール順無し一次リストが空の場合は、Ｓ１３０７〜Ｓ１３１１の処理は実質スキップされる。
【０１５２】
Ｓ１３０８にて、自動アップデート部３１８は、配信アプリケーション情報テーブル３３７において対象配信ＩＤを検索し、インストール順無し一次リストから取り出されたアプリＩＤと同じアプリＩＤの配信予約が対象配信ＩＤの中にあるか否かを判定する。本実施形態では、同じアプリＩＤの配信予約がある場合、そのアプリＩＤについての配信予約は追加も更新もしないものとする。同じアプリＩＤの配信予約がある場合（Ｓ１３０８にてＹＥＳ）、Ｓ１３１１へ進む。同じアプリＩＤの配信予約がない場合（Ｓ１３０８にてＮＯ）、Ｓ１３０９へ進む。
【０１５３】
Ｓ１３０９にて、自動アップデート部３１８は、対象配信ＩＤの配信アプリケーション情報のうち、最後のアプリのインストール順の値を求め、その値をＬとする。なお、対象配信ＩＤの配信アプリケーション情報が一つもない場合には、Ｌの値を「０」とする。
【０１５４】
Ｓ１３１０にて、自動アップデート部３１８は、対象配信ＩＤおよび対象アプリＩＤの配信アプリケーション情報を追加する。ここで追加される配信アプリケーション情報のバージョンには、対象デバイスにインストールされている対象アプリＩＤのバージョンからバージョンアップ設定情報テーブル（３３３）で求めた更新先バージョンを設定する。インストール順には、Ｌ＋１を設定する。自動予約には「１」を設定する。
【０１５５】
Ｓ１３１１にて、自動アップデート部３１８は、インストール順無しの対象アプリ全てに対して処理が完了したか否かを判定する。全アプリに対して処理が完了していない場合は（Ｓ１３１１にてＮＯ）Ｓ１３０７へ戻り、処理を繰り返す。全アプリに対して処理が完了した場合は（Ｓ１３１１にてＹＥＳ）本処理フローを終了する。
【０１５６】
以上、述べた処理により、表１０、表１１、表１５に示した更新に対応する処理が自動で行われることになる。
【０１５７】
以上、述べたように個別アップデートにおいては、配信予約に予約操作順にアプリが追加され、さらに、既存の配信予約に追加するアプリと同じアプリがある場合は削除してから追加するため、任意の順序の配信予約を作成、編集することができる。また、個別アップデートにおいて対象デバイスを選択する際には、自動配信予約を含むか否かを検索条件に含めることができるため、自動配信予約の状況を考慮しながら、配信予約を更新することができる。
【０１５８】
一方、自動配信予約の場合には、既存の配信予約に同じアプリが含まれる場合にはスキップすることで、個別アップデートによる配信予約が入らないアプリのみの配信予約を自動追加することができる。さらに、自動アップデートにおいても、既存予約に含まれないアプリについては、インストール順設定の情報に従って、インストール順を考慮した配信予約とすることができる。
【０１５９】
以上、本実施形態では、個別アップデートにより、個別対応を考慮した配信予約を行うことができる一方、自動アップデートで配信したいアプリについても、個別アップデートで設定した配信と合わせて１回で配信できる。また、自動アップデートによる配信状況を考慮しながら、配信予約をキャンセルすることもできるため、自動アップデートによる配信を１回にまとめたくない場合についても個別アップデートにより手動で個別対応が可能となる。
【０１６０】
＜その他の実施形態＞
本発明は上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１６１】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１６２】
１０…配信システム、２０…コンテンツサーバ、３０…販売会社システム、１００…インターネット
【図１】
2020140231.tif 000021
【図２】
2020140231.tif 000022
【図３】
2020140231.tif 000023
【図４】
2020140231.tif 000024
【図５】
2020140231.tif 000025
【図６】
2020140231.tif 000026
【図７】
2020140231.tif 000027
【図８】
2020140231.tif 000028
【図９】
2020140231.tif 000029
【図１０】
2020140231.tif 000030
【図１１】
2020140231.tif 000031
【図１２】
2020140231.tif 000032