図1は、業務用のアプリを端末に配信するためのアプリ配信システムの構成を示す図である。企業内には、配信するアプリとそのマニフェストファイルとを保管する管理サーバ11と、利用者がアプリの利用申請を行う社内アプリストア12と、アプリを端末に配信する配信サーバ13と、イントラネットNET1が設けられる。さらに、企業内には、複数の端末(スマートデバイス)14、16とそれぞれのユーザが業務で使用する複数のパソコン15、17が配置される。つまり、ユーザAは端末14とパソコン15を操作し、ユーザBは端末16とパソコン17を操作する。
パソコンは、イントラネットNET1を介して社内アプリストア12と配信サーバ13にアクセス可能である。また、管理サーバ11は、イントラネットNET1を介して社内アプリストア12と配信サーバ13と通信可能である。
企業内ネットワークであるイントラネットNET1は、ファイアウオールFWを介して外部のインターネットNET2と接続可能であり、インターネットNET2にはPNSサーバ10が配置されている。PNS(Push Notification Service)サーバは、スマートデバイスなどの端末にプッシュ通信を行うサーバである。端末は、イントラネットNET1とインターネットNET2を介して、または、図示しない電話通信回線とインターネットNET2を介してPNSサーバ10にアクセス可能である。
[従来のアプリ配信]
図2、図3は、従来のアプリ配信のシーケンスを示す図である。配信サーバ13から端末14、16にアプリが一斉に配信される処理のシーケンスを簡単に説明する。まず、事前に、管理サーバ11は、端末14、16とパソコン15、17からアドレスや端末ID、パソコンIDなどのインベントリ情報を収集する(S1)。また、管理サーバ11には、配信するアプリのデータとそのマニフェストファイルが格納されている。さらに、図示しないが、端末14、16は、予め配信サーバ13にアクセスして、端末の登録を行い、それぞれの端末の認証情報を取得している。この端末の認証情報はアプリ配信時の配信サーバでの認証に使用される。
次に、パソコン15が、社内アプリストア12にアクセスし、端末14へのアプリAの利用申請を行う(S2)。同様に、パソコン17が、社内アプリストア12にアクセスし、端末16へのアプリAの利用申請を行う(S3)。つまり、複数のパソコン15、17が社内アプリストラ12にアプリAの利用申請を行う。これに応じて、社内アプリストア12は、管理サーバ11に、端末14、16へアプリAを配信するアプリ配信タスクを登録する(S4)。これにより、社内のアプリ配信システムは、複数の端末に対してアプリをダウンロードすることが必要になる。
配信サーバ13は、管理サーバ11に定期的にアクセスして、配信するアプリの有無を確認する(S7)。これに応答して、管理サーバ11は、配信サーバ13に、端末14、16に対して配信するアプリがあることを返信する(S8)。
その後、配信サーバ13は、端末14、16に対して配信すべきアプリを通知するために、PNSサーバ10に端末14、16へのアプリ配信の通知を依頼し、PSNサーバに端末14、16へのプッシュ通知を登録する(S9)。
図3に移り、端末14が、PNSサーバ10にアクセスしアプリ配信通知有無の確認を行う(S15)。端末14はこのような確認を定期的に実行する。これに応答して、PSNサーバ10は、端末14に対するアプリAの配信タスクの登録があることを、端末14に返信する(S16)。これが、PNSサーバ10から端末14へのプッシュ通信である。
そこで、端末14は、このプッシュ通信に応答して、配信サーバ13にアクセスし、配信アプリのマニフェストファイルの配信を要求する(S17)。マニフェストファイルは、後述するとおり、端末14が配信アプリのダウンロードの承認を端末画面で行うためのプログラムファイルであり、データ容量は非常に小さい。配信サーバ13は、このマニフェスト配信要求に応答して、管理サーバ11から対応するマニフェストファイルをダウンロードし(S17_1)、端末14にマニフェストファイルをダウンロードする(S17_2)。そこで、端末14のディスプレイに表示された承認画面で利用者がダウンロードを承認する操作を行うと(S18)、端末14は配信サーバ13にアクセスしてアプリAの配信要求を行う(S19)。配信サーバ13は、このアプリ配信要求に応答して、管理サーバ11から対応するアプリAのデータをダウンロードしてメモリに格納し(S19_1)、端末14にアプリAのデータをダウンロードする(S19_2)。そして、端末14はダウンロードしたアプリAをインストールする(S20)。また、配信サーバ13は、ダウンロード完了後に、そのアプリAをメモリから削除する(S19_3)。
一方、端末16も、PNSサーバ10にアクセスしアプリ配信通知有無の確認を行う(S23)。これに応答して、PSNサーバ10は、端末16に対するアプリAの配信タスクの登録があることを、端末16に返信する(S24)。その後の動作は、端末14がアプリAをダウンロードする場合の動作と同じであり、端末16が配信サーバ13にマニフェストファイルの配信要求を送信し(S25)、配信サーバ13が管理サーバ11からマニフェストファイルをダウンロードし(S25_1)、端末16にダウンロードする(S25_2)。端末16の利用者が承認画面で承認操作を行うと(S26)、端末16が配信サーバ13にアプリAの配信要求を送信し(S27)、配信サーバ13が管理サーバ11からアプリAのデータをダウンロードし(S27_1)、端末16にダウンロードする(S27_2)。端末16はダウンロードしたアプリAをインストールする(S28)。また、配信サーバ13は、ダウンロード完了後に、そのアプリAをメモリから削除する(S27_3)。
上記の通り、従来のアプリ配信によれば、配信サーバ13が端末からのアプリ配信要求に応答して管理サーバ11からアプリをダウンロードしメモリ内に格納し、端末にアプリをダウンロードした後、アプリをメモリから削除している。これにより、配信サーバ13は内部メモリの容量を最小限に抑えることができる。
しかしながら、アプリのデータ容量は比較的大きく、端末からのアプリ配信要求を受けるたびに管理サーバ11からダウンロードして内部メモリに格納すると、そのダウンロードとメモリへの格納に時間を要する。特に、複数の端末に同じアプリAを一斉に配信する場合、アプリ配信要求を受信するたびに管理サーバからアプリをダウンロードする必要が生じ、アプリ配信要求に対するレスポンスの低下が発生する。
[第1の実施の形態]
第1の実施の形態では、第1の端末へのアプリのダウンロードが完了した時に、第2の端末がアプリ配信要求を送信する時刻を、第2の端末の利用者による第2のパソコンからの利用申請の操作ログと、第2の端末のアプリ配信実績(過去のアプリ配信時での第2のパソコンによる利用申請から第2の端末による配信要求までに要した時間)とから、今回の第2の端末のアプリ配信要求の時刻を予測する。そして、管理サーバからのアプリのダウンロード時間をその時のネットワーク状態やアプリのデータ容量などに基づいて予測し、予測ダウンロード時間が現在からアプリ配信要求の予測時刻までの時間以上長い場合、配信サーバはアプリを内部メモリ内に保持し、未満であればアプリを内部メモリから削除する。
これにより、配信サーバ内の内部メモリを効率的に利用し、アプリの一斉配信でのアプリ配信要求に対するレスポンスの低下を抑制できる。
以下、各装置、端末の構成を説明した後、第1の実施の形態におけるアプリ配信のシーケンスを説明する。
図4は、管理サーバ11の構成例を示す図である。管理サーバ11は、配信対象のアプリとそのマニフェストファイルを保管し、アプリ配信の管理と企業内のパソコンの操作ログを収集する。端末が個人所有の場合、管理サーバは端末の操作ログを収集することはプライバシーの観点から好ましくない。したがって、第1の実施の形態では、端末の操作ログの収集は行っていない。また、端末によるアプリ配信要求の操作時刻は配信サーバがその要求を受信したことで収集する。
管理サーバ11は、CPU20と、メインメモリ21と、ネットワークインターフェースカード(NIC)22と、バス23と、補助記憶装置であるストレージ24、25を有する。ストレージ24内には、アプリ配信用の配信管理プログラム241と、操作ログ収集プログラム242とが記憶され、これらのプログラムはメモリ21に展開されCPU20により実行される。また、ストレージ25内には、配信対象のアプリ252とそのマニフェストファイル251とが記憶される。新たにアプリが開発された場合や、アプリがアップデートされた場合、さらに修正パッチファイルが作成された場合、それらのアプリデータが管理サーバ11内のストレージ25に格納される。さらに、ストレージ25内には、アプリ配信タスク情報(端末に対する配信対象のアプリとマニフェストファイルとの対応情報)253と、パソコンの操作ログ253とが記憶される。さらに、ストレージ25内には、端末とパソコンの情報を登録した登録ファイル254が記憶される。
図5は、社内アプリストア12の構成例を示す図である。社内アプリストア12は、サーバなどの情報処理装置であり、各端末の利用者が使用するパソコンからのアプリ利用申請を受け付けるウエブサイトを提供し、アプリ利用申請を受け付けると、その利用申請情報を管理サーバ11のアプリ配信タスク情報253に登録する。社内アプリストア12は、管理サーバ11と同じサーバ内に構築されても良い。
社内アプリストア12は、CPU30と、メインメモリ31と、NIC32と、バス33と、補助記憶装置であるストレージ34、35を有する。ストレージ34内には、アプリストアのウエブサービスを提供するためのストアWEBプログラム341が記憶され、メインメモリ31に展開されてCPU30により実行される。さらに、ストレージ35内に、配信対象のアプリのカタログデータ351と、利用申請情報(利用申請された端末に対する配信対象アプリの対応情報)352とが記憶される。パソコンからのアプリ利用申請を受け付けると、利用申請情報352内に登録され、前述の管理サーバ11のアプリ配信タスク情報253に登録される。
図6は、配信サーバ13の構成例を示す図である。配信サーバ13は、CPU40と、メインメモリ41と、NIC42と、バス43と、ストレージ44、45を有する。ストレージ44内には、アプリの配信を制御する配信プログラム441と、管理サーバからのアプリのダウンロードとメインメモリ内のアプリの保持と削除の制御を行うアプリ管理プログラム442とが記憶され、これらのプログラムはメインメモリ内に展開されCPUにより実行される。ストレージ45内には、管理サーバ11から通知されるアプリ配信タスク情報451と、端末の認証情報452とが記憶される。端末の認証情報は、配信サーバが端末からマニフェストファイルやアプリの配信要求を受信したときの認証に利用される。
また、配信サーバ13のメインメモリ(または内部メモリ)41内には、管理サーバからダウンロードした配信対象のアプリのデータ252と、そのマニフェストファイル251とが記憶される。配信サーバ13は、内部メモリ41内に記憶されたマニフェストファイルとアプリのデータを、配信要求を送信してきた端末にダウンロードする。
上記の配信プログラム441とアプリ管理プログラム442が、第1の実施の形態におけるデータ配信プログラムに対応する。
図7は、端末の構成例を示す図である。端末14、16は、CPU50と、メインメモリ51と、無線通信回路52と、入出力装置(タッチパネル、表示装置)56と、バス53と、ストレージ54、55を有する。
ストレージ54内には、オペレーションシステム(OS)541と、PNSサーバにアクセスするためのPNSサーバアプリ542と、管理サーバに端末を登録するための社内管理アプリ543とが記憶される。OSとPNSサーバアプリと社内管理アプリは、メインメモリ内に展開されCPUにより実行される。また、ストレージ55内には、ダウンロードしたアプリのアーカイブ551と、配信サーバ13から取得した配信サーバへのアクセス時に使用する認証情報552とが記憶される。アプリアーカイブ内のアプリもメインメモリに展開されCPUにより実行される。
図8は、パソコン15、17の構成例を示す図である。パソコンは企業から利用者に支給されるパーソナルコンピュータであり、主に業務に使用される。パソコンは、CPU60と、メインメモリ61と、NIC62と、入出力装置(キーボード、マウス、表示装置など)66と、バス63と、ストレージ64、65を有する。ストレージ64内には、業務で使用される業務プログラム641と、社内アプリストアにアクセスするための社内アプリストアアプリ642と、管理サーバに登録する為の社内管理アプリ643とが記憶される。また、ストレージ65内には、業務データベース651と、社内アプリストアにアクセスするときの認証情報652とが記憶される。
図9、図10、図11は、第1の実施の形態におけるアプリ配信処理のシーケンス図である。図中、従来のシーケンスの図2、図3と同じ処理には同じ処理番号を付している。したがって、図2、図3にない処理番号は、第1の実施の形態で実行される処理である。以下の説明では、図2、図3の処理の説明も重複して行う。また、第1の実施の形態に特有の処理については、その都度説明する。
図9に示すとおり、まず、事前に、管理サーバ11は、端末14、16とパソコン15、17からアドレスや端末IDなどのインベントリ情報を収集する(S1)。また、管理サーバ11には、配信するアプリのデータとそのマニフェストファイルが格納されている。さらに、図示しないが、端末14、16は、予め配信サーバ13にアクセスして、端末の登録を行い、それぞれの端末の認証情報を取得している。
次に、パソコン15が、社内アプリストア12にアクセスし、端末14へのアプリAの利用申請を行う(S2)。同様に、パソコン17が、社内アプリストア12にアクセスし、端末16へのアプリAの利用申請を行う(S3)。つまり、複数のパソコン15、17が社内アプリストラ12にアプリAの利用申請を行う。これに応じて、社内アプリストア12は、管理サーバ11に、端末14、16へアプリAを配信するアプリ配信タスクを登録する(S4)。これにより、社内のアプリ配信システムは、複数の端末に対してアプリをダウンロードすることが必要になる。
第1の実施の形態では、管理サーバ11が、常時、パソコン15、17の操作ログを収集し操作ログDBに格納する。収集される操作ログの種類は、予め指定されていて、少なくともアプリの利用申請と、業務で良く行われるブラウザやエディタまたはワープロやメーラーの起動、ファイルの更新などである。さらに、管理サーバ11は、過去のパソコンによるアプリ利用申請時刻T0_1に加えて、端末によるアプリ配信要求時刻T1_1の履歴も、ユーザ毎(端末とパソコン毎)に収集しておく。端末によるアプリ配信要求時刻T1_1は、配信サーバがアプリ配信要求を受信した時刻から取得可能である。
図16は、パソコンの操作ログの例とアプリ配信実績の例を示す図である。図16のPC操作ログには、ユーザ1のPC1における操作のログ(操作内容と操作時刻)の一例が示されている。
図9に戻り、配信サーバ13は、管理サーバ11に定期的にアクセスして、配信するアプリの有無を確認する(S7)。これに応答して、管理サーバ11は、配信サーバ13に、端末14、16に対して配信するアプリがあることを返信する(S8)。これにより、配信サーバ内のアプリ配信タスク451(図6参照)に端末14、16にアプリAを配信するタスクが登録される。
その後、配信サーバ13は、端末14、16に対してアプリ配信の通知をするために、PNSサーバ10に端末14、16にアプリ配信通知を依頼し、端末14、16へのプッシュ通知を登録する(S9)。
ここで、第1の実施の形態では、配信サーバ13が管理サーバ内のパソコン15の操作ログ等を参照して、過去の操作ログからパソコン15によるアプリ利用申請時刻T0_1と端末14によるアプリ配信要求時刻T1_1を取得し、利用申請時刻T0_1からアプリ配信要求時刻T1_1までの時間t1を過去の配信実績として算出する(S10)。さらに、配信サーバ13は、操作ログを参照して、今回の操作ログからパソコン15による今回のアプリ利用申請時刻T0_2を取得し、その時刻T0_2に前述の過去の時間t1を加算して、今回のアプリ配信要求時刻T1_2を予測する(S10)。そして、現在時刻Tpと予測アプリ配信要求時刻T1_2との時間差(Tp-T1_2)を、現在時刻から端末14によるアプリ配信要求時刻までの予測時間requestTimeとして算出する。
また、配信サーバは、現在のネットワークNET1の状況(例えば通信速度)とアプリAの容量に基づいて、管理サーバから配信サーバへのアプリAのダウンロードに要するダウンロード予測時間downloadTimeを算出する(S11)。そして、配信サーバは、配信要求予測時間requestTimeとダウンロード予測時間downloadTimeとを比較し、管理サーバにアプリAのダウンロードを要求すべきか否かを判定する。図9の例ではこの時点でrequestTime>downloadTime故、まだ管理サーバにダウンロード要求を行わない。
そして、管理サーバ11は、パソコン15、17の操作ログの収集を継続する(S12)。また、配信サーバは、現在時刻の経過に伴い前述の現在時刻Tpと予測アプリ配信要求時刻T1_2との時間差(Tp-T1_2)である配信要求予測時間requestTimeを更新し、ダウンロード予測時間downloadTimeと比較し、管理サーバにアプリAのダウンロード要求を送信すべきか否かの判定を繰り返す。そして、判定結果がrequestTime≦downloadTimeになると、配信サーバは管理サーバにアプリA(とそのマニフェストファイル)のダウンロードを要求する(S14,図10参照)。これにより、配信サーバは、アプリ配信要求を端末14から受信した時点で、内部メモリ内にアプリA(とマニフェストファイル)を格納済み状態にできるので、アプリ配信要求から即刻アプリAを端末14にダウンロードすることができ、迅速なアプリ配信を実現できる。なお、マニフェストファイルのデータ容量は微小であるので、配信サーバはアプリ配信タスク情報を受信した時(S8)にマニフェストファイルだけ先に管理サーバからダウンロードしてもよい。
図9において、配信サーバ13は、管理サーバ内のパソコン15の操作ログを参照して、工程S10で予測した端末14によるアプリ配信要求時刻T1_2の修正を行ってもよい(S13)。簡単に説明すると、たとえばパソコン15の操作が完了した時点で端末によるアプリ配信要求が行われる蓋然性が高くなるので、操作完了を検出した場合アプリ配信要求時刻T1_2を修正し、配信要求予測時間requestTimeを0または所定の短い時間に修正する。この修正方法については、第2の実施の形態で説明する。
図10に移り、配信サーバ13は、前述したとおり、適切なタイミング(requestTime≦downloadTimeのとき)で管理サーバ11からアプリAをダウンロードする(S14)。そして、端末14が、PNSサーバ10にアクセスしアプリ配信通知有無の確認を行う(S15)。端末14はこのような確認を定期的に実行する。これに応答して、PSNサーバ10は、端末14に対するアプリAの配信タスクの登録があることを端末14に通知する(S16)。これが、PNSサーバ10から端末14へのプッシュ通信である。
そこで、端末14は、プッシュ通信に応答して、配信サーバ13にアクセスし、配信アプリのマニフェストファイルの配信を要求する(S17)。このマニフェスト配信要求は、マニフェストを受信するとOSが自動的に実行する。
第1の実施の形態では、既にマニフェストファイルをダウンロードしてメインメモリ内に格納済みであるので、配信サーバ13は、マニフェストファイル配信要求に応答して、即座に端末14にマニフェストファイルをダウンロードする(S17)。
そこで、端末14のディスプレイに表示された承認画面で利用者がダウンロードを承認する操作を行うと(S18)、端末14は配信サーバ13にアクセスしてアプリAの配信要求を行う(S19)。このアプリの配信要求も承認操作に応答してOSが自動的に実行する。第1の実施の形態では、既にアプリAをダウンロードしてメインメモリ内に格納済みであるので、配信サーバ13は、このアプリ配信要求に応答して、即座に端末14にアプリAのデータをダウンロードする(S19)。そして、端末14はダウンロードしたアプリAをインストールする(S20)。
第1の実施の形態では、配信サーバが、アプリAを端末14にダウンロード完了した時点で、次の端末16からアプリAの配信要求が来るまでの時間requestTimeを予測する(S21)。端末16によるアプリ配信要求予測時間requestTimeの算出方法は、前述の端末14によるアプリ配信要求予測時間の算出方法と同じである。さらに、配信サーバは、現在のネットワークの状況とアプリAのデータ容量に基づいてダウンロード予測時間downloadTimeを算出する(S22)。そして、配信サーバは、端末16によるアプリ配信要求予測時間requestTimeとダウンロード予測時間downloadTimeとを比較し、メインメモリ内に格納済みのアプリAを保持するか削除するかの判定を行う。配信サーバは、判定結果がrequestTime≦downloadTimeであれば、アプリA(及びマニフェスト)をメインメモリ内に保持し、判定結果がrequestTime>downloadTimeであれば、アプリA(及びマニフェスト)をメインメモリから削除する(S22)。図10の例では、配信サーバはアプリA(及びマニフェスト)をメモリ内に保持している。なお、マニフェストはデータ容量が小さいのでメインメモリに保持するようにしてもよい。
配信サーバは、アプリAをメインメモリから削除した場合は、端末14へのアプリAの配信時と同様に、時間の経過に伴い、アプリ配信要求予測時間requestTimeを更新し、requestTime≦downloadTimeになるタイミングで管理サーバから再度アプリAをダウンロードする。
図11に移り、端末16が、PNSサーバ10にアクセスしアプリ配信通知有無の確認を行う(S23)。これに応答して、PSNサーバ10は、端末16に対するアプリAの配信タスクの登録があることを端末16に返信する(S24)。
そこで、PSNサーバからのプッシュ通知に応答して、端末16が配信サーバ13にマニフェストファイルの配信要求を送信する(S25)。第1の実施の形態では、端末14へのアプリAのダウンロード完了時にアプリAとマニフェストをメインメモリ内に保持しているので、配信サーバ13は、配信要求に応答して即刻、マニフェストを端末16にダウンロードする(S25)。
そこで、端末16の利用者が承認画面で承認操作を行うと(S26)、端末16が配信サーバ13にアプリAの配信要求を送信する(S27)。第1の実施の形態では、アプリAは配信サーバのメインメモリに保持されているので、配信サーバ13は、配信要求に応答して即刻、アプリAを端末16にダウンロードする(S27)。そして、端末16はダウンロードしたアプリAをインストールする(S28)。また、配信サーバ13は、ダウンロード完了後に、そのアプリAをメモリから削除する(S29)。以上で、アプリAの複数の端末14、15への一斉配信が完了する。
次に、第1の実施の形態における配信サーバのアプリ配信処理について詳述する。図12は、配信サーバによるアプリ配信処理の概略を示すフローチャート図である。配信サーバ13は、管理サーバからある端末に対して配信するアプリがあることを通知されることで、端末に配信するアプリがある状態になると(S40のYES)、その端末とアプリの情報をPNSサーバ10に通知し、PNSサーバにプッシュ通知を登録する(S41、図9のS9)。配信サーバは、アプリ配信のPNSサーバへの登録(S41)を、アプリが配信状態になった時に一回だけ行う。これで、配信サーバはアプリ配信を開始する。
そこで、配信サーバ13は、アプリ管理プログラム442(図6参照)を実行して、配信するアプリの管理サーバからのダウンロード処理と、ダウンロード済みアプリのメインメモリ内に保持するか削除するかの処理を行う(S42)。やがて、端末からアプリ配信要求を受信すると(S43)、端末にアプリをダウンロードする(S44)。処理S43,S44では、前述のマニフェストファイルの配信要求とダウンロードについての説明を省略している。
図13は、配信サーバによるアプリ管理処理の詳細を示すフローチャート図である。図12で示したとおり、アプリ管理処理S42は配信サーバの処理に含まれる処理であり、配信サーバはアプリ管理プログラム442によりアプリ管理処理を実行する。
アプリ管理処理では、配信サーバは、管理サーバからパソコン15,17の操作ログを取得する(S51)。これにより、配信サーバは、新たなアプリ利用申請が行われたことを検出する(S52)。図9の例では、パソコン15,17でアプリAについてアプリ利用申請が行われている(図9のS2,S3)。
このように新たなアプリ利用申請が行われていた場合(S52のYES)、配信サーバは、過去の各端末へのアプリ配信実績内の、アプリ利用申請時刻T0_1からアプリ利用時刻T1_1までの間の時間t1=T0_1-T1_1を算出(複数実績ならその平均値を算出)する。さらに、配信サーバは、今回の操作ログから抽出した今回のアプリ利用申請時刻T0_2と、算出した過去の時間t1とから、今回のアプリ配信要求時刻T1_2(=T0_2+t1)を予測する(S53)。この処理は、新たにアプリ利用申請が行われたアプリ配信タスクについてのみ実行される。
次に、配信サーバは、現在のネットワークの状況とアプリのデータ容量などに基づいて、アプリを管理サーバからダウンロードするのに要する時間(予測ダウンロード時間DL_T)を予測する(S54)。この予測ダウンロード時間は、具体的には管理サーバからダウンロードし配信サーバの内部メモリに格納するまでの時間である。この処理において、予測した今回のアプリ配信要求時刻T1_2をパソコンの操作ログに基づいて修正してもよい。この修正については第2の実施の形態で説明する。
次の処理は、アプリ利用申請が1つのみの場合はその端末のユーザについて処理され、アプリ利用申請が複数ある場合は予測アプリ配信要求時刻T1_2までの時間が最短の端末のユーザについて処理される。
また、次の処理は、直前にアプリ配信が完了したか否か(S55)によって、処理が異なる。即ち、直前にアプリ配信が完了していない場合(S55のNO)、現在時刻Tpから予測アプリ配信要求時刻T1_2までの時間t1_2=Tp-T1_2が予測ダウンロード時間DL_Tより長い場合(S56のYES)、アプリのダウンロードは実行しない。一方、時間t1_2=Tp-T1_2が予測ダウンロード時間DL_T以下の場合(S56のNO)は、アプリを内部メモリに保持していなければ(S57のNO)、管理サーバからアプリをダウンロードする(S58)。
つまり、最初のアプリ利用申請のユーザに対しては、配信予定のアプリは未だ配信サーバの内部メモリ内に保持されていないので、時間の経過に伴いTp-T1_2≦DL_Tのタイミングでアプリを管理サーバからダウンロードする。2番目以降のアプリ利用申請のユーザに対しては、直前のアプリ利用申請においてダウンロードして内部メモリに格納したアプリがそのまま保持されていれば、もはやダウンロードする必要はない。しかし、保持されていなければ、時間の経過に伴いTp-T1_2≦DL_Tのタイミングでアプリを管理サーバからダウンロードする。
一方、直前にアプリ配信が完了している場合(S55のYES)、つまり、アプリ配信が完了した直後のタイミングでは、まず、管理対象のユーザを予測アプリ配信要求時刻T1_2までの時間が最短のユーザに更新する。そして、配信サーバは、時間t1_2=Tp-T1_2が予測ダウンロード時間DL_Tより長い場合(S60のYES)、内部メモリ内のアプリを削除する。一方、時間t1_2=Tp-T1_2が予測ダウンロード時間DL_T以下の場合(S56のNO)は、アプリを内部メモリに保持する(S62)。そして、このユーザに対しては、その後時間が経過して次回からは工程S55はNOとなり、工程S56-S58が実行される。
すなわち、配信サーバは、あるアプリの端末へのダウンロードが完了するタイミングで、次の予測アプリ配信要求時刻T1_2までの時間Tp-T1_2が予測ダウンロード時間DL_Tより長ければメモリ内のアプリを削除し、以下であればメモリ内にアプリを保持する。また、初回のアプリ利用申請と、2回目以降のアプリ利用申請のユーザでアプリが内部メモリに保持されていないものに対しては、配信サーバは、時間の経過に伴いTp-T1_2≦DL_Tになるタイミングでアプリを管理サーバからダウンロードする。
以上のように、第1の実施の形態のアプリ管理処理では、アプリの端末への配信前で且つアプリが配信サーバ内のメモリに格納されていない場合、配信サーバは、ユーザの端末からアプリ配信要求が送信されてくる前の最適なタイミングで管理サーバからアプリをダウンロードして内部メモリに格納する。そして、アプリの配信が完了したタイミングで、次の同じアプリの配信のために、配信サーバは、次のアプリ配信要求が送信されてくるまでの時間が管理サーバからアプリをダウンロードしてメモリ内の格納するまでに要する時間以下の場合は、メモリ内のアプリを保持し続ける。逆に、配信サーバは、次のアプリ配信要求が送信されてくるまでの時間が管理サーバからアプリをダウンロードしてメモリ内の格納するまでに要する時間より長い場合は、メモリ内のアプリを削除し、アプリによる無駄なメモリの占有を抑制する。
図14は、端末の動作例を示すフローチャート図である。端末は、PNSサーバにアクセスしてアプリ配信通知有無(アプリ配信タスクの登録有無)の確認を行う(S71、図10のS15)。PNSサーバからアプリ配信通知有りの返信があると(S72のYES)、端末は、配信サーバにマニフェストファイルの配信要求を送信する(S73、図10のS17)。PNSサーバからアプリ配信通知有りの返信があると、端末のOSが自動的に配信サーバにマニフェストファイルの配信要求を送信する。つまり、PNSサーバからのアプリ配信通知有りの返信には、ダウンロード先の配信サーバのアドレスが含まれている。また、配信サーバへのマニフェストファイルの配信要求には、予め端末が配信サーバから取得した認証情報が添付される。
端末は、配信サーバからダウンロードされたマニフェストファイルを実行して、アプリのインストール可否の確認画面を表示する(S74、図10のS18)。そこで、端末のユーザが画面上でインストール可の操作を行うと(S75のYES)、端末は、配信サーバへアプリ配信要求を送信する(S76、図10のS19)。このアプリ配信要求には前述の認証情報が添付される。そして、端末は、ダウンロードしたアプリをインストールする(S77、図10のS20)。
このように、端末は、個人所有であり、端末へのアプリを管理するPNSサーバにより許可されたアプリについて、PNSサーバとの間でアプリ配信通知有無の確認処理を経由して、PNSサーバが許可する配信サーバにマニフェストファイルの配信要求及びアプリの配信要求を行う。
図15は、第1の実施の形態におけるパソコンの操作ログとアプリ配信実績の一例を示す図である。管理サーバは、パソコンの操作ログの修正について、収集すべきパソコンの操作ログの種類を予め指定しておき、指定された操作が行われると、その操作が行われたパソコンのIDと、そのユーザIDと、操作内容と、操作時刻とを収集する。図15の例では、3月10日のユーザUser_1によるパソコンPC1でのアプリ利用申請などの操作ログと、3月22日の同じユーザによるアプリ利用申請などの操作ログとが含まれる。前者のアプリ利用申請の時刻は過去のアプリ配信実績に含まれるアプリ利用申請時刻T0_1に対応する。また、後者のアプリ利用申請の時刻は今回のアプリ利用申請時刻T0_2に対応する。
管理サーバは、アプリの配信実績を収集する。図15の例では、ユーザUser_1による第1のオペレーションシステムOSAの端末と、第2のオペレーションシステムOSBの端末のアプリ配信要求時刻の履歴が含まれている。本実施の形態は、PNSサーバからのプッシュ通知に応答してマニフェストファイルをダウンロードしユーザによるインストール許可を要求する第1のオペレーションシステムOSAの端末について適用される。
[第2の実施の形態]
第2の実施の形態では、図13の工程S54で予測アプリ配信要求時刻T1_2をユーザのパソコン操作に基づいて修正する。第1の実施の形態では、ユーザの過去のアプリ配信実績に基づいてパソコンからのアプリ利用申請時刻T0_1から端末によるアプリ配信要求時刻T1_1までの時間t1の平均値を求めた。これは、ユーザが従事する業務内容と、ユーザがパソコンを操作してアプリ利用申請後、そのパソコンの操作を一旦終了して端末でアプリ配信要求するまでの時間とが一定の相関関係を有することに基づくものであり、過去のアプリ配信実績を元に時間t1を算出し、それに基づいて今回の端末でのアプリ配信要求時刻T1_2を予測した。つまり、ユーザの業務が主にパソコン操作を伴う業務か、パソコン操作を伴わない業務かに応じて、時間t1が異なることに基づく。
しかしながら、ユーザが過去の実績よりも今回のパソコン操作が長くなる場合や短くなる場合は、上記の予測アプリ配信要求時刻T1_2が変動する。
そこで、第2の実施の形態では、配信サーバが、管理サーバが収集する利用者毎のパソコンの操作ログを利用して、今回のパソコンの操作が完了するタイミングを検出し、その検出したタイミングから所定時間後またはほぼ直後に端末でアプリ配信要求の操作が行われると見なして、予測したアプリ配信要求時刻T1_2を修正する。
図14は、予測アプリ配信要求時刻T1_2の修正処理の一例について説明する図である。
(1)実績t1は、過去のアプリ配信実績から算出したユーザのアプリ利用申請から配信要求までに要する時間t1を示す。ユーザは、パソコンを操作してアプリ利用申請を行い(時刻T0_1)、その後パソコンの操作を継続した後操作を完了し(操作時間t2)、操作完了から所定時間t3後に端末からアプリ配信要求を行う(時刻T1_1)。所定時間t3は短い時間またはほとんどゼロ時間である。
(2)修正t1_cは、ユーザが過去の実績のパソコン操作時間t2が短くなった例である。第2の実施の形態では、管理サーバが収集するユーザによるパソコンの操作ログを監視し、パソコン操作が完了したタイミングを検出する。
具体的には、ユーザの過去の操作ログからパソコンの操作のインターバル時間(操作していない時間)dt_pcの平均値を算出し、今回の操作ログから操作していない時間が過去のインターバル時間dt_pcを越えた時点で操作が完了すると見なす。つまり、図中、dt_end>dt_pcを検出したとき操作が完了すると見なし、今回の操作完了までの時間t2に基づいて、予測アプリ配信要求時刻T1_2を修正する。
逆に、実績の時間t1に基づいて予測したアプリ配信要求時刻T1_2が近づいてもdt_end>dt_pcを検出できない場合、検出できるまで予測アプリ配信要求時刻T1_2の修正を繰り返す。
第2の実施の形態では、予測アプリ配信要求時刻T1_2を修正することで、より高精度にアプリ配信要求時刻T1_2を求めることができる。それにより、配信サーバは、アプリ配信が完了したタイミングでメモリ内のアプリを保持するか削除するかの判断の精度を高めることができる。また、配信サーバは、事前にアプリをダウンロードするタイミングの判断の精度を高めることができる。