(57)【要約】  アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減する。アプリケーションを所定の分割数で分割した複数のファイル群をクライアント端末に配信する。その際に、アプリケーションが実行される際の複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及びクライアント端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、クライアント端末に配信する。
2016088237.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信方法。
【請求項２】
前記次に配信するファイル群を決定する際に、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項１記載の配信方法。
【請求項３】
前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項１または請求項２記載の配信方法。
【請求項４】
前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項１〜請求項３のいずれか１項記載の配信方法。
【請求項５】
前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項４記載の配信方法。
【請求項６】
前記次に配信するファイル群の決定に用いるために、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項１〜請求項５のいずれか１項記載の配信方法。
【請求項７】
前記決定したファイル群を配信する際に、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項６記載の配信方法。
【請求項８】
前記決定したファイル群を配信することに加え、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項１〜請求項７のいずれか１項記載の配信方法。
【請求項９】
前記決定したファイル群を配信する際に、ファイル群が配信されている他の端末数が所定数以下の場合に配信する請求項１〜請求項８のいずれか１項記載の配信方法。
【請求項１０】
前記コンピュータに、前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新することをさらに含む処理を実行させる請求項１〜請求項９のいずれか１項記載の配信方法。
【請求項１１】
前記次に配信するファイル群を決定する際に、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項１〜請求項１０のいずれか１項記載の配信方法。
【請求項１２】
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する決定部と、
前記決定部で決定されたファイル群を、前記端末に配信する配信部と、
を含む配信装置。
【請求項１３】
前記決定部は、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項１２記載の配信装置。
【請求項１４】
前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項１２または請求項１３記載の配信装置。
【請求項１５】
前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項１２〜請求項１４のいずれか１項記載の配信装置。
【請求項１６】
前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項１５記載の配信装置。
【請求項１７】
前記決定部は、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項１２〜請求項１６のいずれか１項記載の配信装置。
【請求項１８】
前記配信部は、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項１７記載の配信装置。
【請求項１９】
前記配信部は、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項１２〜請求項１８のいずれか１項記載の配信装置。
【請求項２０】
前記配信部は、ファイル群が配信されている他の端末数が所定数以下の場合に、前記決定部で決定されたファイル群を配信する請求項１２〜請求項１９のいずれか１項記載の配信装置。
【請求項２１】
前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新する更新部を含む請求項１２〜請求項２０のいずれか１項記載の配信装置。
【請求項２２】
前記決定部は、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項１２〜請求項２１のいずれか１項記載の配信装置。
【請求項２３】
コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラム。
【請求項２４】
コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、配信方法、配信装置、及び配信プログラムに関する。
【背景技術】
【０００２】
マルチプラットフォームで動作するアプリケーションとして、ウェブアプリケーションが主流になっている。ウェブアプリケーションをオフラインで動作させるために、アプリケーションの動作に必要な複数のファイルを１つのパッケージにまとめたパッケージドウェブアプリケーションという仕様が用いられている。【０００３】
パッケージドウェブアプリケーションを実行するクライアント端末側では、まず、パッケージをダウンロードする必要がある。そのため、複数のクライアント端末から同時にダウンロード要求が行われると、通信帯域が圧迫され、各クライアント端末へのパッケージのダウンロードに時間を要し、ユーザが利用したいときにすぐアプリケーションを実行できない場合がある。【０００４】
複数のクライアント端末がパッケージを同時にダウンロードする際の通信帯域の圧迫を低減するために、パッケージを複数のファイル群に分割して順次配信することで、１度に配信するデータ量を抑制することが考えられる。この場合、まだ配信されていないファイル群がクライアント端末で必要となる場合もあり、必要なファイル群が配信されるまでの無駄な待機時間が生じる場合がある。【０００５】
そこで、プログラムによるファイル中の各データへの参照を記録したファイル参照情報を生成するデータ処理システムが提案されている。このシステムでは、ファイル参照情報に基づいて、ファイルの中からプログラム実行の各段階毎に参照が開始されるデータを集めてデータ群並びにファイルの各データ群への参照に関するデータ群情報を作成する。そして、クライアント側では、受信したデータ群情報及びデータ群に基づいてファイルを作成して、プログラム実行の各段階で参照する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２４０８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術では、データ群情報を参照して、クライアント端末で必要となるファイルを先読みしてクライアント端末に配信することで、クライアント端末における待機時間を削減できる場合もある。【０００８】
しかし、アプリケーションを実行するクライアント端末毎に必要となるファイルの順序は異なるため、従来技術のように予め定めたデータ群情報を参照してファイル群の配信順を決定することは適切ではない場合がある。特に、クライアント端末におけるアプリケーション実行の最初の段階で、データ群情報が表す順序とは異なる順序でファイルが必要となった場合には、ファイル群の先読み配信が外れて、クライアント端末からのファイル要求が頻発することになる。このような場合には、クライアント端末において、必要なファイルが配信されるまでの待機時間が長くなる、という問題がある。【０００９】
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することを目的とする。
【課題を解決するための手段】
【００１０】
開示の技術は、一つの態様として、アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する。その際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、前記端末に配信する。
【発明の効果】
【００１１】
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる、という効果を有する。
【図面の簡単な説明】
【００１２】
【図１】配信システムの概略を示すブロック図である。
【図２】配信装置、及びクライアント端末の機能ブロック図である。
【図３】アプリケーションの分割を示す概念図である。
【図４】ファイル群テーブルの一例を示す図である。
【図５】遷移グラフの一例を示す図である。
【図６】ファイル群遷移テーブルの一例を示す図である。
【図７】分割数テーブルの一例を示す図である。
【図８】管理情報テーブルの一例を示す図である。
【図９】アクセスログテーブルの一例を示す図である。
【図１０】遷移グラフの一例を示す図である。
【図１１】配信装置として機能するコンピュータの概略構成を示すブロック図である。
【図１２】クライアント端末として機能するコンピュータの概略構成を示すブロック図である。
【図１３】登録処理の一例を示すフローチャートである。
【図１４】決定処理の一例を示すフローチャートである。
【図１５】配信処理の一例を示すフローチャートである。
【図１６】スケジュール決定処理の一例を示すフローチャートである。
【図１７】決定処理の一例を示すフローチャートである。
【図１８】更新処理の一例を示すフローチャートである。
【図１９】クライアント側処理の一例を示すフローチャートである。
【図２０】管理情報テーブルの他の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。本実施形態では、パッケージドウェブアプリケーションを複数のファイル群に分割して配信する配信装置について説明する。以下では、１つのパッケージにまとめられるパッケージドウェブアプリケーションを単に「アプリケーション」ともいう。
【００１４】
図１に示すように、本実施形態に係る配信システム１０は、配信装置２０と、複数のクライアント端末４０とを含む。配信装置２０と、複数のクライアント端末４０の各々とは、ネットワーク１５を介して互いに接続される。
【００１５】
図２に、配信装置２０及びクライアント端末４０の各々の機能ブロック図を示す。図２に示すように、配信装置２０は、登録部２１と、要求受信部２２と、分割数決定部２４及び管理部２５を含む決定部２３と、配信部２６と、更新部２７とを含む。また、配信装置２０は記憶部３０を備える。記憶部３０は、アプリ保持部３１を有すると共に、ファイル群テーブル３２と、ファイル群遷移テーブル３３と、分割数テーブル３４と、管理情報テーブル３５と、アクセスログテーブル３６とを記憶する。
【００１６】
クライアント端末４０としては、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等を用いることができる。また、図２に示すように、クライアント端末４０は、要求部４１と、実行部４２と、取得部４３とを含む。また、クライアント端末４０は記憶部５０を備える。記憶部５０は、ファイル保持部５２を備えると共に、アクセスログ５１を記憶する。
【００１７】
まず、配信装置２０の各機能部について説明すると共に、各機能部で利用するテーブル等についてあわせて説明する。
【００１８】
登録部２１は、新規に登録するアプリケーションを受け付ける。ここで受け付けるアプリケーションは、パッケージドウェブアプリケーションであり、アプリケーションの実行に必要な複数のファイルが１つのパッケージにまとめられたものである。また、パッケージには、アプリケーションの識別情報（アプリＩＤ）も含まれる。登録部２１は、受け付けたアプリケーションをアプリ保持部３１に記憶する。
【００１９】
また、登録部２１は、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、図３に概念的に示すように、所定の分割数（詳細は後述）のファイル群に分割する。図３の例は、アプリケーションをファイル群Ａ、Ｂ、Ｃ、及びＤの４つのファイル群に分割し、そのうちファイル群Ａには、ファイル「index.html」、「main.js」、及び「style.css」が含まれる例を示している。なお、図３の例では、所定の分割数を４とする例を示しているが、所定の分割数として予め複数の種類（例えば、１、２、３、４等）を設定しておくことができる。従って、１つのファイル群に分割した場合（分割なし）、２つのファイル群の分割した場合、・・・のように、設定された分割数の種類毎にアプリケーションを分割する。
【００２０】
登録部２１は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図４に示すようなファイル群テーブル３２に登録する。図４に示すファイル群テーブル３２は、ファイル毎に、「アプリＩＤ」、「分割数」、「ファイル名」、「ファイルパス」、及び「ファイル群」の情報を含む。「アプリＩＤ」は、各行に対応したファイルを含むアプリケーションのアプリＩＤである。「分割数」は、アプリケーションの分割数の種類（例えば、１、２、３、４等）である。「ファイルパス」は、「ファイル名」で識別されるファイルのアプリ保持部３１における位置を示す情報である。「ファイル群」は、「アプリＩＤ」欄のアプリＩＤが示すアプリケーションを、「分割数」欄の分割数で分割した際に、「ファイル名」欄のファイル名で識別されるファイルがいずれのファイル群に含まれるかを示す情報である。
【００２１】
さらに、登録部２１は、受け付けたアプリケーションに含まれる各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。遷移状況とは、アプリケーションがクライアント端末４０で実行される際に、複数のファイル群の各々が必要となる（使用される）順番、及び必要となる予定時間を表すものである。例えば、各ファイルのファイル構造に基づいて、アプリケーションの開始直後に必要となるファイルがファイル群Ａに含まれると判断された場合、開始からファイル群Ａに遷移すると解析する。また、ファイル群Ａに含まれるファイルから、ファイル群Ｂに含まれるファイルへのリンクが張られている場合、ファイル群Ａからファイル群Ｂに遷移すると解析する。
【００２２】
例えば、ファイル群の遷移状況の解析の結果、図５に示すような遷移グラフが得られたとする。なお、図５では、必要となるファイル群を丸内に、それまでに遷移してきたファイル群を四角内に示している。また、四角内に表記されたファイル群のうち、下線が引いてあるファイル群は、直前に遷移したファイル群であることを示している。なお、図５において矢印に併記している秒数は、遷移元のファイル群から遷移先のファイル群へ遷移するまでの時間、すなわち、次のファイル群が必要となるまでの時間を表している。アプリケーションの初期登録時には、予定時間は、例えば、各ファイルの内容やデータ量等に応じた値、ランダムな値、予め定めた一定値等を付与する。
【００２３】
登録部２１は、例えば図５に示す遷移グラフで表される遷移状況の解析結果を、例えば図６に示すようなファイル群遷移テーブル３３に登録する。図６に示すファイル群遷移テーブル３３の各行は、１つの遷移状況を示す。ここでは、ある遷移元のファイル群から別の遷移先のファイル群へ遷移するパターンを１つの遷移状況とする。各遷移状況は、「アプリＩＤ」、「分割数」、「遷移元」、「遷移先」、及び「予定時間」の情報を含む。「遷移元」は、解析した遷移状況から得られる遷移元のファイル群の情報、「遷移先」は、同じく遷移先のファイル群の情報である。「予定時間」は、「遷移元」欄のファイル群から「遷移先」欄のファイル群に遷移するまでの時間である。
【００２４】
なお、図６の例では、「遷移元」欄には、それまでに遷移してきた全てのファイル群を登録し、直前に遷移したファイル群に下線を引いて示している。また、アプリケーションの実行直後に必要となるファイル群には遷移元が存在しないため、「遷移元」欄がブランク（図６では「−」）となる。
【００２５】
要求受信部２２は、クライアント端末４０から送信される配信開始要求、ファイル要求、及び配信終了要求を受信する。配信開始要求は、アプリケーションの配信を開始する要求であり、クライアント端末４０の識別情報（クライアントＩＤ）、及びそのクライアント端末４０が配信開始を要求するアプリケーションのアプリＩＤを含む。要求受信部２２は、受信した配信開始要求を分割数決定部２４に受け渡す。ファイル要求は、クライアント端末４０で保持していないファイルの配信要求であり、クライアントＩＤ、アプリＩＤ、及び必要なファイルのファイル名を含む。要求受信部２２は、受信したファイル要求を配信部２６に受け渡す。配信終了要求は、アプリケーションの配信を終了する要求であり、クライアントＩＤ、及びアプリＩＤを含み、またアクセスログ（詳細は後述）を含んでもよい。要求受信部２２は、受信した配信終了要求を管理部２５に受け渡す。
【００２６】
分割数決定部２４は、要求受信部２２から受け渡された配信開始要求に含まれるアプリＩＤが示すアプリケーションの分割数を決定する。ここで、配信装置２０に同時に接続しているクライアント端末４０が多ければ多いほど、１度に大量のデータを配信した際の通信速度が低下する。一方、接続されているクライアント端末４０が少ない場合には、１度に大量のデータを配信したとしても、通信速度の低下は少ない。そこで、本実施形態では、配信装置２０に接続されているクライアント端末数に応じて、アプリケーションの分割数を決定する。
【００２７】
具体的には、分割数決定部２４は、配信装置２０に接続されているクライアント端末数を取得する。ここで、配信装置２０に接続されているクライアント端末数は、配信装置２０との間で接続が確立されているクライアント端末４０の数であってもよいし、配信装置２０からファイルを配信中のクライアント端末４０の数であってもよい。本実施形態では、前者の場合について説明する。分割数決定部２４は、管理情報テーブル３５において、配信装置２０と接続中のクライアント端末４０を管理するために、配信開始要求に含まれるクライアントＩＤ及びアプリＩＤを管理部２５に通知する。これにより、後述するように、管理部２５により、管理情報テーブル３５において、配信装置２０と接続中のクライアント端末数が１増加される。分割数決定部２４は、管理情報テーブル３５を参照して、配信装置２０と接続中のクライアント端末数をカウントする。
【００２８】
また、分割数決定部２４は、接続中のクライアント数が多いほどアプリケーションの分割数が大きくなるように予め定めた関係に基づいて、アプリケーションの分割数を決定する。例えば、分割数決定部２４は、図７に示すような、接続中のクライアント端末数と分割数との対応関係を定めた分割数テーブル３４から、カウントした接続中のクライアント端末数に対応する分割数を決定する。分割数決定部２４は、決定した分割数を、配信開始要求に含まれるクライアントＩＤ及びアプリＩＤと共に、管理部２５に通知する。
【００２９】
管理部２５は、配信装置２０に接続中のクライアント端末４０、実際にクライアント端末４０へ配信されたファイル群の配信状況、及びファイル群の配信スケジュールを、例えば図８に示すような管理情報テーブル３５を用いて管理する。図８に示す管理情報テーブル３５の各行は１つの管理情報に相当し、各管理情報は、「クライアントＩＤ」、「アプリＩＤ」、「分割数」、「配信状況」、「配信済みファイル群」、「配信予定ファイル群」、及び「予定時間」の情報を含む。
【００３０】
具体的には、管理部２５は、分割数決定部２４からクライアントＩＤ及びアプリＩＤが通知された場合には、管理情報テーブル３５の「クライアントＩＤ」欄、「アプリＩＤ」欄に、通知されたクライアントＩＤ及びアプリＩＤを記録する。また、管理部２５は、「配信状況」欄に「未」を記録する。なお、「配信状況」欄が「未」の場合は、該当のクライアント端末４０へのファイル群の配信が完了しておらず、配信装置２０と接続状態にあることを表す。これにより、管理情報テーブル３５において、「配信状況」欄が「未」（後述する「未（配信中）」の場合を含む）の管理情報をカウントすることで、配信装置２０と接続中のクライアント端末数を取得することができる。
【００３１】
また、管理部２５は、分割数決定部２４からクライアントＩＤ、アプリＩＤ、及び分割数が通知された場合には、管理情報テーブル３５に分割数を記録する。具体的には、管理部２５は、管理情報テーブル３５の「クライアントＩＤ」欄、及び「アプリＩＤ」欄が、通知されたクライアントＩＤ及びアプリＩＤと一致する管理情報の「分割数」欄に、通知された分割数を記録する。
【００３２】
また、管理部２５は、分割数を管理情報テーブル３５に記録すると、ファイル群遷移テーブル３３を参照して、分割数決定部２４から通知されたアプリＩＤのアプリケーションについて、最初に配信するファイル群を決定する。具体的には、管理部２５は、ファイル群遷移テーブル３３において、「アプリＩＤ」及び「分割数」欄が、通知されたアプリＩＤ及び分割数に一致し、かつ「遷移元」欄がブランクの遷移状況を検索する。そして、管理部２５は、検索した遷移状況における「遷移先」欄のファイル群の情報を、最初に配信するファイル群として、「予定時間」欄の情報と共に取得する。管理部２５は、通知されたクライアントＩＤ、アプリＩＤ、及び分割数に対応付けて、取得したファイル群及び予定時間を、管理情報テーブル３５の「配信予定ファイル群」欄、及び「予定時間」欄に記録する。
【００３３】
なお、本実施形態では、最初に配信するファイル群については、配信開始要求に応じて即時配信することとし、予定時間を「０」としている。また、管理部２５は、ファイル群遷移テーブル３３の「予定時間」欄から取得した時間を現在時刻に加算した時間を、管理情報テーブル３５の「予定時間」欄に記録する。また、図８の例では、予定時間をミリ秒単位で表している。
【００３４】
また、管理部２５は、配信部２６から配信状況として、ファイル群を配信したクライアント端末４０のクライアントＩＤ、配信対象のアプリケーションのアプリＩＤ、分割数、及び配信したファイル群の通知を受け取る。そして、管理部２５は、管理情報テーブル３５の「クライアントＩＤ」欄、及び「アプリＩＤ」欄が、通知されたクライアントＩＤ及びアプリＩＤと一致する管理情報を検索する。そして、管理部２５は、検索した管理情報の「配信済みファイル群」欄に通知されたファイル群の情報を追加すると共に、追加したファイル群が直前に配信したファイル群であることを示すフラグを立てる。図８の例では、フラグを立てたファイル群を、下線を引いて表している。
【００３５】
また、管理部２５は、ファイル群の配信後、初回以降のファイル群の配信スケジュールを、ファイル群遷移テーブル３３、及びクライアント端末４０におけるファイル群の使用状況に基づいて決定し、管理情報テーブル３５に記録する。本実施形態では、クライアント端末４０におけるファイル群の使用状況として、配信装置２０からクライアント端末４０に配信したファイル群の配信状況、すなわち「配信済みファイル群」欄の情報を用いる。
【００３６】
具体的には、管理部２５は、配信したファイル群の情報を追加した管理情報の「アプリＩＤ」及び「分割数」が一致するファイル群遷移テーブル３３の遷移状況を用いて、以下の処理を行う。管理部２５は、管理情報テーブル３５の「配信済みファイル群」欄と、ファイル群遷移テーブル３３の「遷移元」欄とを比較する。そして、管理部２５は、ファイル群遷移テーブル３３の「遷移元」欄が、管理情報テーブル３５の「配信済みファイル群」欄と一致する遷移状況が存在するか否かを判定する。存在する場合には、管理部２５は、その遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。
【００３７】
一致する遷移状況が存在しない場合には、管理部２５は、管理情報テーブル３５から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。所定のルールとしては、例えば、「配信済みファイル群」欄のファイル群と一致するファイル群を「遷移元」欄に最も多く含む遷移状況を選択したり、ランダムに選択したりすることができる。なお、少なくとも直前に配信されたファイル群が一致する遷移状況を選択することが、パッケージドウェブアプリケーションの特性上好ましい。
【００３８】
そして、管理部２５は、取得した「遷移先」欄のファイル群の情報を、管理情報テーブル３５の「配信予定ファイル群」欄に記録すると共に、「予定時間」欄の時間を現在時刻に加算した時間を、管理情報テーブル３５の「予定時間」欄に記録する。
【００３９】
また、管理部２５は、管理情報テーブル３５の「予定時間」欄の時間が、現時点に最も近い管理情報の「配信予定ファイル群」欄のファイル群を、次に配信するファイル群として決定する。そして、管理部２５は、決定したファイル群の情報を、その管理情報の「クライアントＩＤ」欄、「アプリＩＤ」欄、及び「分割数」欄の情報と共に配信部２６へ通知する。
【００４０】
また、管理部２５は、配信部２６からファイル群の配信開始の通知を受けてから、配信完了の通知を受け取るまでの間、「配信状況」欄に「未（配信中）」を記録する。これは、対象のクライアント端末４０に現在ファイル群を配信中であることを表す。また、管理部２５は、配信部２６からファイル群の配信完了の通知を受け取ると、ファイル群テーブル３２、及び「配信済みファイル群」欄を参照し、配信対象のアプリケーションについて全てのファイル群の配信が完了しているか否かを判定する。管理部２５は、全てのファイル群の配信が完了している場合には、「配信状況」欄に「完了」を記録し、未配信のファイル群が存在する場合には、「配信状況」欄に「未」を記録する。
【００４１】
また、管理部２５は、要求受信部２２から配信終了要求を受け渡されると、管理情報テーブル３５の「クライアントＩＤ」欄、及び「アプリＩＤ」欄が、配信終了要求に含まれるクライアントＩＤ及びアプリＩＤと一致する管理情報を検索する。管理部２５は、検索した管理情報の「配信状況」欄に「完了」を記録する。これにより、管理情報テーブル３５において、配信装置２０に接続中のクライアント端末数を１減少させる。また、管理部２５は、配信終了要求にアクセスログが含まれる場合には、アクセスログをアクセスログテーブル３６に登録する。
【００４２】
なお、「配信状況」欄に「完了」を記録することに変えて、該当の管理情報を、管理情報テーブル３５から削除してもよい。
【００４３】
配信部２６は、管理部２５から通知されたファイル群、分割数、クライアントＩＤ、及びアプリＩＤを受け取る。そして、配信部２６は、ファイル群テーブル３２において、「アプリＩＤ」欄、「分割数」欄、及び「ファイル群」が、通知された分割数、アプリＩＤ、及びファイル群と一致する行を検索する。配信部２６は、検索した行の「ファイル名」欄のファイル名、及び「ファイルパス」欄のファイルパスを全て取得し、該当のファイル群に含まれる全てのファイルをアプリ保持部３１から取得する。配信部２６は、取得したファイル群を、通知されたクライアントＩＤが示すクライアント端末４０に配信する。
【００４４】
この際、配信部２６は、管理情報テーブル３５の「配信状況」欄が「未（配信中）」の管理情報をカウントすることで、ファイル群を配信中のクライアント端末数をカウントする。配信部２６は、ファイル群を配信中のクライアント端末数が所定数以上の場合には、一旦待機し、ファイル群を配信中のクライアント端末数が所定数未満となったタイミングで、ファイル群を配信する。このように、ファイル群を同時に配信できるクライアント数に制限を設けることで、通信帯域の圧迫を低減することができる。
【００４５】
また、配信部２６は、要求受信部２２からファイル要求を受け渡された場合には、管理情報テーブル３５を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。具体的には、配信部２６は、管理情報テーブル３５の「クライアントＩＤ」欄、及び「アプリＩＤ」欄が、ファイル要求に含まれるクライアントＩＤ及びアプリＩＤと一致する管理情報の「分割数」欄から、該当の分割数を取得する。配信部２６は、ファイル群テーブル３２の「アプリＩＤ」欄、「ファイル名」欄、及び「分割数」欄が、ファイル要求に含まれるアプリＩＤ、ファイル名、及び取得した分割数と一致する行を検索する。配信部２６は、検索した行の「ファイル群」欄のファイル群を、アプリ保持部３１から取得し、ファイル要求に含まれるクライアントＩＤが示すクライアント端末４０に配信する。
【００４６】
また、配信部２６は、クライアント端末４０へファイル群の配信を開始する際には、管理部２５に配信開始を通知する。また、配信部２６は、配信が完了すると、管理部２５に、ファイル群を配信したクライアント端末４０のクライアントＩＤ、配信対象のアプリケーションのアプリＩＤ、分割数、及び配信したファイル群の情報を含む配信状況と共に、配信完了を通知する。
【００４７】
更新部２７は、アクセスログテーブル３６に蓄積されたアクセスログに基づいて、アプリケーションの分割、及びファイル群遷移テーブル３３を更新する。例えば、図９に示すように、アクセスログテーブル３６の各行は１つのアクセスログに相当し、アクセスログは、「クライアントＩＤ」、「アプリＩＤ」、「ファイル名」、及び「ファイルアクセス時間」の情報を含む。「ファイルアクセス時間」は、クライアント端末４０において、アプリケーション実行時に必要となったファイルを取得するために、クライアント端末４０のファイル保持部５２（詳細は後述）にアクセスした時間である。ファイル保持部５２から必要なファイルが取得できたか否かに関わらず、ファイル保持部５２にアクセスした時間をログとして記録することで、実際にそのファイルが必要になった時間を記録することができる。
【００４８】
更新部２７は、アクセスログテーブル３６に蓄積されたアクセスログを、クライアントＩＤ毎かつアプリＩＤ毎に、ファイルアクセス時間を用いて時系列に並べる。そして、更新部２７は、登録部２１と同様に、再度アプリケーションを所定の分割数に分割する。また、更新部２７は、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、登録部２１と同様に、再度ファイル群の遷移状況を解析し、ファイル群遷移テーブル３３を更新する。
【００４９】
例えば、更新部２７により、図１０に示すようなファイル群の遷移状況を表す遷移グラフが得られたとする。この場合、図５に示す遷移グラフに対して、ファイル群Ａ及びＣを保持している状況で、ファイル群Ｄにアクセスする遷移状況のパターン、及びファイル群Ａ、Ｃ、及びＤを保持している状況で、ファイル群Ｂにアクセスする遷移状況のパターンが追加されている。アクセスログテーブル３６には、クライアント端末４０のファイル保持部５２に必要なファイルが保持されていない状態、すなわち、ファイル群遷移テーブル３３に登録されていない遷移状況でアクセスされたアクセスログも含まれる。従って、再度遷移状況を解析した場合には、初期に登録した遷移状況とは差異が生じる。
【００５０】
なお、図１０において、矢印に併記したパーセンテージは遷移確率、秒数は遷移平均時間である。例えば、図１０では、アプリケーションの開始からすぐにファイル群Ａが要求され、その後８０％の確率で平均４秒後にファイル群Ｂが要求され、２０％の確率で平均３秒後にファイル群Ｃが要求されることを表している。
【００５１】
アクセスログを用いてファイルの分割、及びファイル群遷移テーブル３３を更新することで、クライアント端末４０で必要となるファイルを、より精度良く先読みして配信できる可能性が高まる。
【００５２】
次に、クライアント端末４０の各機能部について説明する。
【００５３】
要求部４１は、ユーザの入力、または他のアプリケーションからの要求に応じて、配信装置２０にアプリケーションの配信開始要求を送信する。また、要求部４１は、後述する実行部４２から要求されたファイルの配信を配信装置２０にファイル要求として送信する。また、要求部４１は、ユーザの入力、または後述する実行部４２からアプリケーションの終了が要求されると、アクセスログ５１と共に、アプリケーションの配信終了要求を配信装置２０に送信する。
【００５４】
実行部４２は、アプリケーションを実行し、アプリケーション内でファイルの読込があった場合には、ファイル保持部５２にアクセスしてファイルを取得する。ファイル保持部５２に必要なファイルが保持されていない場合には、要求部４１に必要なファイルを要求する。また、実行部４２は、ファイル保持部５２にアクセスしたアクセスログ５１を記録する。
【００５５】
取得部４３は、配信装置２０から配信されたファイル群を取得し、ファイル保持部５２に記憶する。
【００５６】
配信装置２０は、例えば、図１１に示すコンピュータ６０で実現することができる。コンピュータ６０はＣＰＵ６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶装置６３を備える。また、コンピュータ６０は、表示装置及び入力装置等の入出力装置６８が接続される入出力インターフェース（Ｉ／Ｆ）６４を備える。また、コンピュータ６０は、記録媒体６９に対するデータの読み込み及び書き込みを制御するｒｅａｄ／ｗｒｉｔｅ（Ｒ／Ｗ）部６５、及びインターネット等のネットワーク１５に接続されるネットワークＩ／Ｆ６６を備える。ＣＰＵ６１、メモリ６２、記憶装置６３、入出力Ｉ／Ｆ６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続される。
【００５７】
記憶装置６３は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（solid state drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶装置６３には、コンピュータ６０を配信装置２０として機能させるための配信プログラム７０が記憶される。また、記憶装置６３は、各種テーブルを構成するためのデータが記憶されるデータ記憶領域７９を有する。ＣＰＵ６１は、配信プログラム７０を記憶装置６３から読み出してメモリ６２に展開し、配信プログラム７０が有するプロセスを順次実行する。また、ＣＰＵ６１は、データ記憶領域７９からデータを読み出して、各種テーブルとしてメモリ６２に展開する。
【００５８】
配信プログラム７０は、登録プロセス７１と、要求受信プロセス７２と、決定プロセス７３と、配信プロセス７６と、更新プロセス７７とを有する。ＣＰＵ６１は、登録プロセス７１を実行することで、図２に示す登録部２１として動作する。また、ＣＰＵ６１は、要求受信プロセス７２を実行することで、図２に示す要求受信部２２として動作する。また、ＣＰＵ６１は、決定プロセス７３を実行することで、図２に示す決定部２３として動作する。また、ＣＰＵ６１は、配信プロセス７６を実行することで、図２に示す配信部２６として動作する。また、ＣＰＵ６１は、更新プロセス７７を実行することで、図２に示す更新部２７として動作する。これにより、配信プログラム７０を実行したコンピュータ６０が、配信装置２０として機能することになる。
【００５９】
クライアント端末４０は、例えば、図１２に示すコンピュータ８０で実現することができる。コンピュータ８０は、ＣＰＵ８１、メモリ８２、記憶装置８３、入出力装置８８が接続される入出力Ｉ／Ｆ８４、記録媒体８９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ部８５、及びネットワークＩ／Ｆ８６を備える。ＣＰＵ８１、メモリ８２、記憶装置８３、入出力Ｉ／Ｆ８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続される。
【００６０】
記憶媒体としての記憶装置８３には、コンピュータ８０を、クライアント端末４０として機能させるためのクライアント側プログラム９０が記憶される。また、記憶装置８３は、各種データが記憶されるデータ記憶領域１００を有する。ＣＰＵ８１は、クライアント側プログラム９０を記憶装置８３から読み出してメモリ８２に展開し、クライアント側プログラム９０が有するプロセスを順次実行する。
【００６１】
クライアント側プログラム９０は、要求プロセス９１と、実行プロセス９２と、取得プロセス９３とを有する。ＣＰＵ８１は、要求プロセス９１を実行することで、図２に示す要求部４１として動作する。また、ＣＰＵ８１は、実行プロセス９２を実行することで、図２に示す実行部４２として動作する。また、ＣＰＵ８１は、取得プロセス９３を実行することで、図２に示す取得部４３として動作する。これにより、クライアント側プログラム９０を実行したコンピュータ８０が、クライアント端末４０として機能することになる。
【００６２】
なお、配信装置２０及びクライアント端末４０の各々は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００６３】
次に、本実施形態に係る配信システム１０の作用について説明する。
【００６４】
配信装置２０に新規に登録するアプリケーションが入力されると、配信装置２０において、図１３に示す登録処理が実行される。また、クライアント端末４０から送信された要求を受信すると、配信装置２０において、図１４及び図１７に示す決定処理、並びに図１５に示す配信処理が実行される。また、例えば１日１回、月に１回などの任意のタイミングで、配信装置において、図１８に示す更新処理が実行される。一方、クライアント端末４０においては、図１９に示すクライアント側処理が実行される。以下、各処理について詳述する。
【００６５】
まず、図１３に示す登録処理について説明する。
【００６６】
ステップＳ１１で、登録部２１が、入力されたアプリケーションを、アプリ保持部３１に記憶する。次に、ステップＳ１２で、登録部２１が、予め設定されたアプリケーションの分割数の種類（例えば、１、２、３、４等）から１つを選択する。
【００６７】
次に、ステップＳ１３で、登録部２１が、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、選択した分割数に分割する。そして、登録部２１は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図４に示すようなファイル群テーブル３２に登録する。
【００６８】
次に、ステップＳ１４で、登録部２１が、受け付けたアプリケーションの各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。そして、登録部２１は、解析した遷移状況を、例えば図６に示すようなファイル群遷移テーブル３３に登録する。
【００６９】
次に、ステップＳ１５で、登録部２１が、予め設定されている分割数を全て選択済みか否かを判定する。未選択の分割数が存在する場合には、処理はステップＳ１２に戻り、次の分割数を選択し、ステップＳ１３〜Ｓ１５の処理を繰り返す。全ての分割数について選択済みの場合には、登録処理を終了する。
【００７０】
次に、図１４に示す決定処理について説明する。
【００７１】
ステップＳ２１で、要求受信部２２が、クライアント端末４０から受信した要求の種別を判定する。クライアント端末４０から受信した要求が配信開始要求の場合には、要求受信部２２が、受信した配信開始要求を分割数決定部２４に受け渡し、処理はステップＳ２２へ移行する。ファイル要求の場合には、要求受信部２２が、受信したファイル要求を配信部２６に受け渡し、処理はステップＳ２７へ移行する。配信終了要求の場合には、要求受信部２２が、受信した配信終了要求を管理部２５に受け渡し、処理は図１７のステップＳ５１へ移行する。
【００７２】
ステップＳ２２では、分割数決定部２４が、配信開始要求に含まれるクライアントＩＤ及びアプリＩＤを管理部２５に通知する。そして、管理部２５が、通知された情報に基づいて、管理情報テーブル３５において、配信装置２０と接続中のクライアント端末数を１増やす。分割数決定部２４は、管理情報テーブル３５を参照して、配信装置２０に接続中のクライアント端末数を取得する。
【００７３】
次に、ステップＳ２３で、分割数決定部２４が、取得した接続中のクライアント端末数、及び分割数テーブル３４に基づいて、アプリケーションの分割数を決定する。例えば、取得した接続中のクライアント端末数が「２５」で、図７に示す分割数テーブル３４を利用する場合、分割数決定部２４は、分割数を「４」と決定する。分割数決定部２４は、決定した分割数を管理部２５に通知する。そして、管理部２５が、管理情報テーブル３５に分割数を記録する。
【００７４】
次に、ステップＳ２４で、管理部２５が、ファイル群遷移テーブル３３を参照して、アプリケーションの配信要求に対して最初に配信するファイル群の情報を取得し、管理情報テーブル３５に記録する。本実施形態では、最初に配信するファイル群は、即時配信することとしているため、管理部２５が、即時に、記録されたファイル群を次に配信するファイル群として決定し、クライアントＩＤ、アプリＩＤ、及び分割数と共に配信部２６へ通知する。
【００７５】
次に、ステップＳ２５で、配信部２６は、決定したファイル群に含まれるファイルのファイル名及びファイルパスをファイル群テーブル３２から検索し、該当のファイル群をアプリ保持部３１から取得する。配信部２６は、管理部２５に配信開始を通知すると共に、取得したファイル群を、通知されたクライアントＩＤが示すクライアント端末４０に配信する。そして、配信部２６は、配信が完了すると、配信状況と共に、配信完了を管理部２５に通知する。管理部２５は、配信開始及び配信完了の通知に基づいて、管理情報テーブル３５の「配信状況」欄を記録する。
【００７６】
次に、ステップＳ２６で、管理部２５が、配信部２６から通知された配信状況を、管理情報テーブル３５に記録する。次に、ステップＳ４０で、後述するスケジュール決定処理が実行されて、決定処理を終了する。
【００７７】
一方、クライアント端末４０から受信した要求がファイル要求であるとして、処理がステップＳ２７へ移行した場合には、配信部２６が、管理情報テーブル３５を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。
【００７８】
次に、ステップＳ２８で、配信部２６が、取得した分割数及びファイル群テーブル３２に基づいて、要求されているファイルを含むファイル群を配信するファイル群として決定し、ステップＳ２５へ移行する。
【００７９】
次に、図１５に示す配信処理について説明する。配信処理は、管理部２５から、ファイル群、分割数、クライアントＩＤ、及びアプリＩＤが配信部２６に通知されると開始する。
【００８０】
ステップＳ３１で、配信部２６が、管理情報テーブル３５の「配信状況」欄を参照して、ファイル群を配信中のクライアント端末数をカウントする。そして、配信部２６は、配信中のクライアント端末数が、所定数ｔｈ未満か否かを判定する。配信中のクライアント端末数が、所定数ｔｈ未満の場合には、処理はステップＳ３２へ移行し、配信中のクライアント端末数が、所定数ｔｈ以上の場合には、本ステップの判定を繰り返す。
【００８１】
ステップＳ３２では、配信部２６が、管理部２５から通知されたファイル群をファイル群テーブル３２から特定し、アプリ保持部３１から特定したファイル群を取得し、クライアント端末４０に配信する。そして、配信部２６は、配信状況を管理部２５へ通知する。
【００８２】
次に、ステップＳ３３で、管理部２５が、配信部２６から通知された配信状況を、管理情報テーブル３５に記録する。次に、ステップＳ４０で、後述するスケジュール決定処理が実行されて、配信処理を終了する。
【００８３】
次に、決定処理（図１４）、及び配信処理（図１５）のステップＳ４０で実行されるスケジュール決定処理について、図１６を参照して説明する。
【００８４】
ステップＳ４１で、管理部２５が、ファイル群遷移テーブル３３において、管理情報テーブル３５の「配信済みファイル群」のファイル群と一致するファイル群が「遷移元」欄に登録された遷移状況が存在するか否かを判定する。存在する場合には、処理はステップＳ４２へ移行し、存在しない場合には、処理はステップＳ４３へ移行する。
【００８５】
ステップＳ４２では、管理部２５が、「遷移先」欄のファイル群が「配信済みファイル群」と一致する遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部２５は、取得した情報を管理情報テーブル３５に記録し、決定処理または配信処理に戻る。
【００８６】
一方、ステップＳ４３では、管理部２５が、ファイル群遷移テーブル３３から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部２５は、取得した情報を管理情報テーブル３５に記録し、決定処理または配信処理に戻る。
【００８７】
次に、図１７を参照して、上記決定処理のステップＳ２１で、クライアント端末４０から受け付けた要求が配信終了要求であった場合の処理について説明する。
【００８８】
ステップＳ５１で、管理部２５が、要求受信部２２からから受け渡された配信終了要求に含まれるクライアントＩＤ及びアプリＩＤと、管理情報テーブル３５の「クライアントＩＤ」欄、及び「アプリＩＤ」欄が一致する管理情報を検索する。管理部２５は、検索した管理情報の「配信状況」欄に「完了」を記録する。
【００８９】
次に、ステップＳ５２で、管理部２５が、配信終了要求にアクセスログが含まれるか否かを判定する。アクセスログが含まれる場合には、処理はステップＳ５３へ移行し、管理部２５が、アクセスログをアクセスログテーブル３６に登録して、決定処理を終了する。アクセスログが含まれない場合には、そのまま決定処理を終了する。
【００９０】
次に、図１８に示す更新処理について説明する。なお、登録処理（図１３）と同様の処理については、同一符号を付して、詳細な説明を省略する。
【００９１】
ステップＳ６１で、更新部２７は、アプリ保持部３１に登録されたアプリケーションから１つを選択する。次に、ステップＳ１２で、更新部２７は、分割数を１つ選択する。
【００９２】
次に、ステップＳ６２で、更新部２７が、アクセスログテーブル３６に蓄積されたアクセスログを、クライアントＩＤ毎かつアプリＩＤ毎に、ファイルアクセス時間を用いて時系列に並べるなどして、アクセスログを解析する。次に、ステップＳ６３で、更新部２７は、アクセスログの解析結果に基づいて、アプリケーションを所定の分割数に再分割し、ファイル群テーブル３２を更新する。
【００９３】
次に、ステップＳ６４で、更新部２７が、アクセスログの解析結果から、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、ファイル群の遷移状況を解析し、ファイル群遷移テーブル３３を更新する。
【００９４】
次に、ステップＳ１５で、更新部２７が、全ての分割数を選択済みか否かを判定し、未選択の分割数が存在する場合には、処理はステップＳ１２に戻る。全ての分割数を選択済みの場合には、処理はステップＳ６５へ移行する。
【００９５】
ステップＳ６５では、更新部２７が、アプリ保持部３１に登録されたアプリケーションの全てを選択済みか否かを判定する。未選択のアプリケーションが存在する場合には、処理はステップＳ６１に戻り、次のアプリケーションを選択して、ステップＳ６１〜Ｓ６５の処理を繰り返す。全てのアプリケーションを選択済みの場合には、更新処理を終了する。
【００９６】
次に、図１９に示すクライアント側処理について説明する。
【００９７】
ステップＳ７１で、要求部４１が、自端末のクライアントＩＤ、及び配信開始を要求するアプリケーションのアプリＩＤを含む配信開始要求を、配信装置２０へ送信する。
【００９８】
次に、ステップＳ７２で、取得部４３が、配信装置２０から配信されたファイル群を取得したか否かを判定する。取得していない場合には、取得するまで待機する。取得した場合には、処理はステップＳ７３へ移行し、取得部４３が、取得したファイル群をファイル保持部５２に記憶する。
【００９９】
次に、ステップＳ７４で、実行部４２が、ファイル保持部５２に保持されたファイルにアクセスしながら、アプリケーションを実行する。次に、ステップＳ７５で、実行部４２が、アプリケーションの実行に必要なファイルがファイル保持部５２に保持されているか否かを判定する。保持されている場合には、処理はステップＳ７６へ移行し、実行部４２が、ファイル保持部５２から必要なファイルを取得し、ステップＳ７８へ移行する。一方、必要なファイルがファイル保持部５２に保持されていない場合には、実行部４２が、要求部４１に必要なファイルを要求する。そして、要求部４１が、クライアントＩＤ、アプリＩＤ、及び必要なファイルのファイル名を含むファイル要求を、配信装置２０に送信し、ステップＳ７８へ移行する。
【０１００】
ステップＳ７８では、実行部４２が、ファイル保持部５２にアクセスしたファイルアクセス時間、及び必要なファイルのファイル名を含むアクセスログ５１を記録する。
【０１０１】
次に、ステップＳ７９で、実行部４２が、アプリケーションの実行を終了するか否かを判定する。終了する場合には、処理はステップＳ８０へ移行し、終了しない場合には、処理はステップＳ７４に戻る。
【０１０２】
ステップＳ８０では、要求部４１が、クライアントＩＤ、アプリＩＤ、及びアクセスログを含む配信終了要求を、配信装置２０に送信し、クライアント側処理を終了する。
【０１０３】
以上説明したように、本実施形態に係る配信装置によれば、アプリケーションを複数のファイル群に分割して配信する。この際、予め定めた複数パターンのファイル群の遷移状況と、クライアント端末でのファイルの使用状況とに基づいて、動的にファイル群の配信スケジュールを決定する。これにより、アプリケーションを実行するクライアント端末で必要となるファイルを、適切に先読み配信することができ、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる。
【０１０４】
また、決定した配信スケジュールに基づいて配信されたファイル群に、クライアント端末で必要なファイルが含まれていない場合には、クライアント端末の要求に応じて、即時に必要なファイルを含むファイル群を配信する。そして、この場合でも、クライアント端末に配信したファイル群、すなわちクライアント端末で取得したファイル群の情報を用いて、次に配信するファイル群を決定する。このため、１度外れた先読み配信に影響されることなく、以降の先読み配信を行うことができる。
【０１０５】
また、少なくともクライアント端末で直前に取得したファイル群の情報を用いて配信スケジュールを決定することで、先読み精度の高い配信スケジュールを決定することができる。特に、パッケージドウェブアプリケーションは、ユーザ操作によってページ遷移していくという特性を有するため、ユーザの操作によって、次に必要なファイル群が変化する。また、ページ単位での遷移することは、前回取得したファイル群とその次に必要となるファイル群との結びつきが強いことを表す。従って、始めに全ての配信スケジュールを決めるのでなく、次回に必要なファイル群を、少なくともクライアント端末で直前に取得したファイル群から推定することが有効となる。
【０１０６】
また、アプリケーションを複数のファイル群に分割する分割数を、配信装置に接続中のクライアント端末数に基づいて決定する。これにより、接続中のクライアント端末数の変化にも適応的に対応して、通信帯域の圧迫を低減しつつ、不要なアプリケーションの分割を回避することができる。特に、所定エリア内だけのローカルネットワークや、アプリケーションサーバ毎の専用ネットワークなどの環境では、配信するアプリケーションの容量と、通信帯域との相関が高い。例えば、学校で生徒が保持するクライアント端末に一斉にテストのアプリケーションを配信するような場合である。従って、アプリケーションの分割数を調整することで、配信するアプリケーションの容量を調整し、通信帯域の圧迫を回避することができる。
【０１０７】
また、クライアント端末におけるアクセスログを用いて、アプリケーションの再分割、及び遷移状況の再解析を行う。そのため、それ以降は、クライアント端末における実際のファイルの使用状況を反映した配信スケジュールの決定が可能となり、より適切に先読み配信することができる。
【０１０８】
なお、開示の技術は、上記実施形態の態様に限定されない。例えば、クライアント端末を利用するユーザの属性を考慮して、配信スケジュールを決定してもよい。この場合、クライアント端末からアプリケーションの配信開始要求を配信装置に送信する際などに、ユーザの属性情報も送信する。そして、配信装置では、ファイル群テーブル及びファイル遷移テーブルを、ユーザの属性毎に用意しておく。また、図２０に示すように、管理情報テーブルにおいて、管理情報の項目として、ユーザの属性も管理する。そして、管理情報テーブルに記録されたユーザの属性に応じたファイル群テーブル及びファイル遷移テーブルを選択して、配信スケジュールを決定する。これにより、ユーザの属性の相違により、ページ遷移が異なるようなアプリケーションに対して、より適切にファイル群の配信スケジュールを決定することができる。さらに、この場合、ユーザの属性に応じたファイル群遷移テーブルに、配信済みファイル群と「遷移元」が一致する遷移状況が存在しない場合には、類似する属性についてのファイル群遷移テーブルから、該当の遷移状況を選択してもよい。
【０１０９】
また、上記実施形態では、クライアント端末でのファイル群の使用状況として、配信装置からクライアント端末へ配信したファイル群の配信状況を用いる場合について説明したが、これに限定されない。クライアント端末側でファイルアクセスがある都度、アクセス時間、及びアクセスしたファイル、またはそのファイルを含むファイル群を配信装置に通知するなどして、クライアント端末でのファイル群の使用状況を直接取得してもよい。
【０１１０】
また、上記実施形態では、アプリケーションの再分割、及び遷移状況の再解析に、クライアント端末から取得したアクセスログを用いる場合について説明したが、これに限定されず、管理情報テーブルに記録した配信状況を用いてもよい。この場合、配信済みファイル群の情報に加え、配信済みの各ファイル群を配信した時間の情報も記録しておくとよい。
【０１１１】
また、上記実施形態では、配信装置側で図８や図２０に示すような管理情報テーブルを管理する場合について説明したが、クライアント端末側で管理するようにしてもよい。この場合、配信装置で決定した分割数の情報と、クライアント端末が要求するアプリケーション及び決定した分割数に対応したファイル群遷移テーブルの部分情報とをクライアント側に送信する。そして、クライアント端末において、上記の配信スケジュールの決定と同様の方法で、ファイル群の要求スケジュールを決定し、決定したスケジュールに従って、配信装置にファイル群を要求すればよい。
【０１１２】
また、上記では、配信プログラム７０が記憶装置６３に、クライアント側プログラム９０が記憶装置８３に予め記憶（インストール）されている態様を説明したが、これに限定されない。ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記憶媒体に記録された形態で提供することも可能である。
【図１】
2016088237.tif 000003
【図２】
2016088237.tif 000004
【図３】
2016088237.tif 000005
【図４】
2016088237.tif 000006
【図５】
2016088237.tif 000007
【図６】
2016088237.tif 000008
【図７】
2016088237.tif 000009
【図８】
2016088237.tif 000010
【図９】
2016088237.tif 000011
【図１０】
2016088237.tif 000012
【図１１】
2016088237.tif 000013
【図１２】
2016088237.tif 000014
【図１３】
2016088237.tif 000015
【図１４】
2016088237.tif 000016
【図１５】
2016088237.tif 000017
【図１６】
2016088237.tif 000018
【図１７】
2016088237.tif 000019
【図１８】
2016088237.tif 000020
【図１９】
2016088237.tif 000021
【図２０】
2016088237.tif 000022
【手続補正書】
【提出日】平成29年6月1日(2017.6.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信方法。
【請求項２】
前記次に配信するファイル群を決定する際に、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項１記載の配信方法。
【請求項３】
前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項１記載または請求項２記載の配信方法。
【請求項４】
前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項１〜請求項３のいずれか１項記載の配信方法。
【請求項５】
前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項４記載の配信方法。
【請求項６】
前記次に配信するファイル群の決定に用いるために、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項１〜請求項５のいずれか１項記載の配信方法。
【請求項７】
前記決定したファイル群を配信する際に、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項６記載の配信方法。
【請求項８】
前記決定したファイル群を配信することに加え、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項１〜請求項７のいずれか１項記載の配信方法。
【請求項９】
前記決定したファイル群を配信する際に、ファイル群が配信されている他の端末数が所定数以下の場合に配信する請求項１〜請求項８のいずれか１項記載の配信方法。
【請求項１０】
前記コンピュータに、前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新することをさらに含む処理を実行させる請求項１〜請求項９のいずれか１項記載の配信方法。
【請求項１１】
前記次に配信するファイル群を決定する際に、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項１〜請求項１０のいずれか１項記載の配信方法。
【請求項１２】
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する決定部と、
前記決定部で決定されたファイル群を、前記端末に配信する配信部と、
を含む配信装置。
【請求項１３】
コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラム。
【国際調査報告】
2016088237.tif 000023
2016088237.tif 000024
2016088237.tif 000025
2016088237.tif 000026