JPWO2016088237A1 - 配信方法、装置、及びプログラム - Google Patents
配信方法、装置、及びプログラム Download PDFInfo
- Publication number
- JPWO2016088237A1 JPWO2016088237A1 JP2016562156A JP2016562156A JPWO2016088237A1 JP WO2016088237 A1 JPWO2016088237 A1 JP WO2016088237A1 JP 2016562156 A JP2016562156 A JP 2016562156A JP 2016562156 A JP2016562156 A JP 2016562156A JP WO2016088237 A1 JPWO2016088237 A1 JP WO2016088237A1
- Authority
- JP
- Japan
- Prior art keywords
- file group
- file
- distribution
- application
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減する。アプリケーションを所定の分割数で分割した複数のファイル群をクライアント端末に配信する。その際に、アプリケーションが実行される際の複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及びクライアント端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、クライアント端末に配信する。
Description
開示の技術は、配信方法、配信装置、及び配信プログラムに関する。
マルチプラットフォームで動作するアプリケーションとして、ウェブアプリケーションが主流になっている。ウェブアプリケーションをオフラインで動作させるために、アプリケーションの動作に必要な複数のファイルを1つのパッケージにまとめたパッケージドウェブアプリケーションという仕様が用いられている。
パッケージドウェブアプリケーションを実行するクライアント端末側では、まず、パッケージをダウンロードする必要がある。そのため、複数のクライアント端末から同時にダウンロード要求が行われると、通信帯域が圧迫され、各クライアント端末へのパッケージのダウンロードに時間を要し、ユーザが利用したいときにすぐアプリケーションを実行できない場合がある。
複数のクライアント端末がパッケージを同時にダウンロードする際の通信帯域の圧迫を低減するために、パッケージを複数のファイル群に分割して順次配信することで、1度に配信するデータ量を抑制することが考えられる。この場合、まだ配信されていないファイル群がクライアント端末で必要となる場合もあり、必要なファイル群が配信されるまでの無駄な待機時間が生じる場合がある。
そこで、プログラムによるファイル中の各データへの参照を記録したファイル参照情報を生成するデータ処理システムが提案されている。このシステムでは、ファイル参照情報に基づいて、ファイルの中からプログラム実行の各段階毎に参照が開始されるデータを集めてデータ群並びにファイルの各データ群への参照に関するデータ群情報を作成する。そして、クライアント側では、受信したデータ群情報及びデータ群に基づいてファイルを作成して、プログラム実行の各段階で参照する。
従来技術では、データ群情報を参照して、クライアント端末で必要となるファイルを先読みしてクライアント端末に配信することで、クライアント端末における待機時間を削減できる場合もある。
しかし、アプリケーションを実行するクライアント端末毎に必要となるファイルの順序は異なるため、従来技術のように予め定めたデータ群情報を参照してファイル群の配信順を決定することは適切ではない場合がある。特に、クライアント端末におけるアプリケーション実行の最初の段階で、データ群情報が表す順序とは異なる順序でファイルが必要となった場合には、ファイル群の先読み配信が外れて、クライアント端末からのファイル要求が頻発することになる。このような場合には、クライアント端末において、必要なファイルが配信されるまでの待機時間が長くなる、という問題がある。
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することを目的とする。
開示の技術は、一つの態様として、アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する。その際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する。そして、決定されたファイル群を、前記端末に配信する。
開示の技術は、一つの側面として、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる、という効果を有する。
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。本実施形態では、パッケージドウェブアプリケーションを複数のファイル群に分割して配信する配信装置について説明する。以下では、1つのパッケージにまとめられるパッケージドウェブアプリケーションを単に「アプリケーション」ともいう。
図1に示すように、本実施形態に係る配信システム10は、配信装置20と、複数のクライアント端末40とを含む。配信装置20と、複数のクライアント端末40の各々とは、ネットワーク15を介して互いに接続される。
図2に、配信装置20及びクライアント端末40の各々の機能ブロック図を示す。図2に示すように、配信装置20は、登録部21と、要求受信部22と、分割数決定部24及び管理部25を含む決定部23と、配信部26と、更新部27とを含む。また、配信装置20は記憶部30を備える。記憶部30は、アプリ保持部31を有すると共に、ファイル群テーブル32と、ファイル群遷移テーブル33と、分割数テーブル34と、管理情報テーブル35と、アクセスログテーブル36とを記憶する。
クライアント端末40としては、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等を用いることができる。また、図2に示すように、クライアント端末40は、要求部41と、実行部42と、取得部43とを含む。また、クライアント端末40は記憶部50を備える。記憶部50は、ファイル保持部52を備えると共に、アクセスログ51を記憶する。
まず、配信装置20の各機能部について説明すると共に、各機能部で利用するテーブル等についてあわせて説明する。
登録部21は、新規に登録するアプリケーションを受け付ける。ここで受け付けるアプリケーションは、パッケージドウェブアプリケーションであり、アプリケーションの実行に必要な複数のファイルが1つのパッケージにまとめられたものである。また、パッケージには、アプリケーションの識別情報(アプリID)も含まれる。登録部21は、受け付けたアプリケーションをアプリ保持部31に記憶する。
また、登録部21は、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、図3に概念的に示すように、所定の分割数(詳細は後述)のファイル群に分割する。図3の例は、アプリケーションをファイル群A、B、C、及びDの4つのファイル群に分割し、そのうちファイル群Aには、ファイル「index.html」、「main.js」、及び「style.css」が含まれる例を示している。なお、図3の例では、所定の分割数を4とする例を示しているが、所定の分割数として予め複数の種類(例えば、1、2、3、4等)を設定しておくことができる。従って、1つのファイル群に分割した場合(分割なし)、2つのファイル群の分割した場合、・・・のように、設定された分割数の種類毎にアプリケーションを分割する。
登録部21は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図4に示すようなファイル群テーブル32に登録する。図4に示すファイル群テーブル32は、ファイル毎に、「アプリID」、「分割数」、「ファイル名」、「ファイルパス」、及び「ファイル群」の情報を含む。「アプリID」は、各行に対応したファイルを含むアプリケーションのアプリIDである。「分割数」は、アプリケーションの分割数の種類(例えば、1、2、3、4等)である。「ファイルパス」は、「ファイル名」で識別されるファイルのアプリ保持部31における位置を示す情報である。「ファイル群」は、「アプリID」欄のアプリIDが示すアプリケーションを、「分割数」欄の分割数で分割した際に、「ファイル名」欄のファイル名で識別されるファイルがいずれのファイル群に含まれるかを示す情報である。
さらに、登録部21は、受け付けたアプリケーションに含まれる各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。遷移状況とは、アプリケーションがクライアント端末40で実行される際に、複数のファイル群の各々が必要となる(使用される)順番、及び必要となる予定時間を表すものである。例えば、各ファイルのファイル構造に基づいて、アプリケーションの開始直後に必要となるファイルがファイル群Aに含まれると判断された場合、開始からファイル群Aに遷移すると解析する。また、ファイル群Aに含まれるファイルから、ファイル群Bに含まれるファイルへのリンクが張られている場合、ファイル群Aからファイル群Bに遷移すると解析する。
例えば、ファイル群の遷移状況の解析の結果、図5に示すような遷移グラフが得られたとする。なお、図5では、必要となるファイル群を丸内に、それまでに遷移してきたファイル群を四角内に示している。また、四角内に表記されたファイル群のうち、下線が引いてあるファイル群は、直前に遷移したファイル群であることを示している。なお、図5において矢印に併記している秒数は、遷移元のファイル群から遷移先のファイル群へ遷移するまでの時間、すなわち、次のファイル群が必要となるまでの時間を表している。アプリケーションの初期登録時には、予定時間は、例えば、各ファイルの内容やデータ量等に応じた値、ランダムな値、予め定めた一定値等を付与する。
登録部21は、例えば図5に示す遷移グラフで表される遷移状況の解析結果を、例えば図6に示すようなファイル群遷移テーブル33に登録する。図6に示すファイル群遷移テーブル33の各行は、1つの遷移状況を示す。ここでは、ある遷移元のファイル群から別の遷移先のファイル群へ遷移するパターンを1つの遷移状況とする。各遷移状況は、「アプリID」、「分割数」、「遷移元」、「遷移先」、及び「予定時間」の情報を含む。「遷移元」は、解析した遷移状況から得られる遷移元のファイル群の情報、「遷移先」は、同じく遷移先のファイル群の情報である。「予定時間」は、「遷移元」欄のファイル群から「遷移先」欄のファイル群に遷移するまでの時間である。
なお、図6の例では、「遷移元」欄には、それまでに遷移してきた全てのファイル群を登録し、直前に遷移したファイル群に下線を引いて示している。また、アプリケーションの実行直後に必要となるファイル群には遷移元が存在しないため、「遷移元」欄がブランク(図6では「−」)となる。
要求受信部22は、クライアント端末40から送信される配信開始要求、ファイル要求、及び配信終了要求を受信する。配信開始要求は、アプリケーションの配信を開始する要求であり、クライアント端末40の識別情報(クライアントID)、及びそのクライアント端末40が配信開始を要求するアプリケーションのアプリIDを含む。要求受信部22は、受信した配信開始要求を分割数決定部24に受け渡す。ファイル要求は、クライアント端末40で保持していないファイルの配信要求であり、クライアントID、アプリID、及び必要なファイルのファイル名を含む。要求受信部22は、受信したファイル要求を配信部26に受け渡す。配信終了要求は、アプリケーションの配信を終了する要求であり、クライアントID、及びアプリIDを含み、またアクセスログ(詳細は後述)を含んでもよい。要求受信部22は、受信した配信終了要求を管理部25に受け渡す。
分割数決定部24は、要求受信部22から受け渡された配信開始要求に含まれるアプリIDが示すアプリケーションの分割数を決定する。ここで、配信装置20に同時に接続しているクライアント端末40が多ければ多いほど、1度に大量のデータを配信した際の通信速度が低下する。一方、接続されているクライアント端末40が少ない場合には、1度に大量のデータを配信したとしても、通信速度の低下は少ない。そこで、本実施形態では、配信装置20に接続されているクライアント端末数に応じて、アプリケーションの分割数を決定する。
具体的には、分割数決定部24は、配信装置20に接続されているクライアント端末数を取得する。ここで、配信装置20に接続されているクライアント端末数は、配信装置20との間で接続が確立されているクライアント端末40の数であってもよいし、配信装置20からファイルを配信中のクライアント端末40の数であってもよい。本実施形態では、前者の場合について説明する。分割数決定部24は、管理情報テーブル35において、配信装置20と接続中のクライアント端末40を管理するために、配信開始要求に含まれるクライアントID及びアプリIDを管理部25に通知する。これにより、後述するように、管理部25により、管理情報テーブル35において、配信装置20と接続中のクライアント端末数が1増加される。分割数決定部24は、管理情報テーブル35を参照して、配信装置20と接続中のクライアント端末数をカウントする。
また、分割数決定部24は、接続中のクライアント数が多いほどアプリケーションの分割数が大きくなるように予め定めた関係に基づいて、アプリケーションの分割数を決定する。例えば、分割数決定部24は、図7に示すような、接続中のクライアント端末数と分割数との対応関係を定めた分割数テーブル34から、カウントした接続中のクライアント端末数に対応する分割数を決定する。分割数決定部24は、決定した分割数を、配信開始要求に含まれるクライアントID及びアプリIDと共に、管理部25に通知する。
管理部25は、配信装置20に接続中のクライアント端末40、実際にクライアント端末40へ配信されたファイル群の配信状況、及びファイル群の配信スケジュールを、例えば図8に示すような管理情報テーブル35を用いて管理する。図8に示す管理情報テーブル35の各行は1つの管理情報に相当し、各管理情報は、「クライアントID」、「アプリID」、「分割数」、「配信状況」、「配信済みファイル群」、「配信予定ファイル群」、及び「予定時間」の情報を含む。
具体的には、管理部25は、分割数決定部24からクライアントID及びアプリIDが通知された場合には、管理情報テーブル35の「クライアントID」欄、「アプリID」欄に、通知されたクライアントID及びアプリIDを記録する。また、管理部25は、「配信状況」欄に「未」を記録する。なお、「配信状況」欄が「未」の場合は、該当のクライアント端末40へのファイル群の配信が完了しておらず、配信装置20と接続状態にあることを表す。これにより、管理情報テーブル35において、「配信状況」欄が「未」(後述する「未(配信中)」の場合を含む)の管理情報をカウントすることで、配信装置20と接続中のクライアント端末数を取得することができる。
また、管理部25は、分割数決定部24からクライアントID、アプリID、及び分割数が通知された場合には、管理情報テーブル35に分割数を記録する。具体的には、管理部25は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、通知されたクライアントID及びアプリIDと一致する管理情報の「分割数」欄に、通知された分割数を記録する。
また、管理部25は、分割数を管理情報テーブル35に記録すると、ファイル群遷移テーブル33を参照して、分割数決定部24から通知されたアプリIDのアプリケーションについて、最初に配信するファイル群を決定する。具体的には、管理部25は、ファイル群遷移テーブル33において、「アプリID」及び「分割数」欄が、通知されたアプリID及び分割数に一致し、かつ「遷移元」欄がブランクの遷移状況を検索する。そして、管理部25は、検索した遷移状況における「遷移先」欄のファイル群の情報を、最初に配信するファイル群として、「予定時間」欄の情報と共に取得する。管理部25は、通知されたクライアントID、アプリID、及び分割数に対応付けて、取得したファイル群及び予定時間を、管理情報テーブル35の「配信予定ファイル群」欄、及び「予定時間」欄に記録する。
なお、本実施形態では、最初に配信するファイル群については、配信開始要求に応じて即時配信することとし、予定時間を「0」としている。また、管理部25は、ファイル群遷移テーブル33の「予定時間」欄から取得した時間を現在時刻に加算した時間を、管理情報テーブル35の「予定時間」欄に記録する。また、図8の例では、予定時間をミリ秒単位で表している。
また、管理部25は、配信部26から配信状況として、ファイル群を配信したクライアント端末40のクライアントID、配信対象のアプリケーションのアプリID、分割数、及び配信したファイル群の通知を受け取る。そして、管理部25は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、通知されたクライアントID及びアプリIDと一致する管理情報を検索する。そして、管理部25は、検索した管理情報の「配信済みファイル群」欄に通知されたファイル群の情報を追加すると共に、追加したファイル群が直前に配信したファイル群であることを示すフラグを立てる。図8の例では、フラグを立てたファイル群を、下線を引いて表している。
また、管理部25は、ファイル群の配信後、初回以降のファイル群の配信スケジュールを、ファイル群遷移テーブル33、及びクライアント端末40におけるファイル群の使用状況に基づいて決定し、管理情報テーブル35に記録する。本実施形態では、クライアント端末40におけるファイル群の使用状況として、配信装置20からクライアント端末40に配信したファイル群の配信状況、すなわち「配信済みファイル群」欄の情報を用いる。
具体的には、管理部25は、配信したファイル群の情報を追加した管理情報の「アプリID」及び「分割数」が一致するファイル群遷移テーブル33の遷移状況を用いて、以下の処理を行う。管理部25は、管理情報テーブル35の「配信済みファイル群」欄と、ファイル群遷移テーブル33の「遷移元」欄とを比較する。そして、管理部25は、ファイル群遷移テーブル33の「遷移元」欄が、管理情報テーブル35の「配信済みファイル群」欄と一致する遷移状況が存在するか否かを判定する。存在する場合には、管理部25は、その遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。
一致する遷移状況が存在しない場合には、管理部25は、管理情報テーブル35から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。所定のルールとしては、例えば、「配信済みファイル群」欄のファイル群と一致するファイル群を「遷移元」欄に最も多く含む遷移状況を選択したり、ランダムに選択したりすることができる。なお、少なくとも直前に配信されたファイル群が一致する遷移状況を選択することが、パッケージドウェブアプリケーションの特性上好ましい。
そして、管理部25は、取得した「遷移先」欄のファイル群の情報を、管理情報テーブル35の「配信予定ファイル群」欄に記録すると共に、「予定時間」欄の時間を現在時刻に加算した時間を、管理情報テーブル35の「予定時間」欄に記録する。
また、管理部25は、管理情報テーブル35の「予定時間」欄の時間が、現時点に最も近い管理情報の「配信予定ファイル群」欄のファイル群を、次に配信するファイル群として決定する。そして、管理部25は、決定したファイル群の情報を、その管理情報の「クライアントID」欄、「アプリID」欄、及び「分割数」欄の情報と共に配信部26へ通知する。
また、管理部25は、配信部26からファイル群の配信開始の通知を受けてから、配信完了の通知を受け取るまでの間、「配信状況」欄に「未(配信中)」を記録する。これは、対象のクライアント端末40に現在ファイル群を配信中であることを表す。また、管理部25は、配信部26からファイル群の配信完了の通知を受け取ると、ファイル群テーブル32、及び「配信済みファイル群」欄を参照し、配信対象のアプリケーションについて全てのファイル群の配信が完了しているか否かを判定する。管理部25は、全てのファイル群の配信が完了している場合には、「配信状況」欄に「完了」を記録し、未配信のファイル群が存在する場合には、「配信状況」欄に「未」を記録する。
また、管理部25は、要求受信部22から配信終了要求を受け渡されると、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、配信終了要求に含まれるクライアントID及びアプリIDと一致する管理情報を検索する。管理部25は、検索した管理情報の「配信状況」欄に「完了」を記録する。これにより、管理情報テーブル35において、配信装置20に接続中のクライアント端末数を1減少させる。また、管理部25は、配信終了要求にアクセスログが含まれる場合には、アクセスログをアクセスログテーブル36に登録する。
なお、「配信状況」欄に「完了」を記録することに変えて、該当の管理情報を、管理情報テーブル35から削除してもよい。
配信部26は、管理部25から通知されたファイル群、分割数、クライアントID、及びアプリIDを受け取る。そして、配信部26は、ファイル群テーブル32において、「アプリID」欄、「分割数」欄、及び「ファイル群」が、通知された分割数、アプリID、及びファイル群と一致する行を検索する。配信部26は、検索した行の「ファイル名」欄のファイル名、及び「ファイルパス」欄のファイルパスを全て取得し、該当のファイル群に含まれる全てのファイルをアプリ保持部31から取得する。配信部26は、取得したファイル群を、通知されたクライアントIDが示すクライアント端末40に配信する。
この際、配信部26は、管理情報テーブル35の「配信状況」欄が「未(配信中)」の管理情報をカウントすることで、ファイル群を配信中のクライアント端末数をカウントする。配信部26は、ファイル群を配信中のクライアント端末数が所定数以上の場合には、一旦待機し、ファイル群を配信中のクライアント端末数が所定数未満となったタイミングで、ファイル群を配信する。このように、ファイル群を同時に配信できるクライアント数に制限を設けることで、通信帯域の圧迫を低減することができる。
また、配信部26は、要求受信部22からファイル要求を受け渡された場合には、管理情報テーブル35を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。具体的には、配信部26は、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が、ファイル要求に含まれるクライアントID及びアプリIDと一致する管理情報の「分割数」欄から、該当の分割数を取得する。配信部26は、ファイル群テーブル32の「アプリID」欄、「ファイル名」欄、及び「分割数」欄が、ファイル要求に含まれるアプリID、ファイル名、及び取得した分割数と一致する行を検索する。配信部26は、検索した行の「ファイル群」欄のファイル群を、アプリ保持部31から取得し、ファイル要求に含まれるクライアントIDが示すクライアント端末40に配信する。
また、配信部26は、クライアント端末40へファイル群の配信を開始する際には、管理部25に配信開始を通知する。また、配信部26は、配信が完了すると、管理部25に、ファイル群を配信したクライアント端末40のクライアントID、配信対象のアプリケーションのアプリID、分割数、及び配信したファイル群の情報を含む配信状況と共に、配信完了を通知する。
更新部27は、アクセスログテーブル36に蓄積されたアクセスログに基づいて、アプリケーションの分割、及びファイル群遷移テーブル33を更新する。例えば、図9に示すように、アクセスログテーブル36の各行は1つのアクセスログに相当し、アクセスログは、「クライアントID」、「アプリID」、「ファイル名」、及び「ファイルアクセス時間」の情報を含む。「ファイルアクセス時間」は、クライアント端末40において、アプリケーション実行時に必要となったファイルを取得するために、クライアント端末40のファイル保持部52(詳細は後述)にアクセスした時間である。ファイル保持部52から必要なファイルが取得できたか否かに関わらず、ファイル保持部52にアクセスした時間をログとして記録することで、実際にそのファイルが必要になった時間を記録することができる。
更新部27は、アクセスログテーブル36に蓄積されたアクセスログを、クライアントID毎かつアプリID毎に、ファイルアクセス時間を用いて時系列に並べる。そして、更新部27は、登録部21と同様に、再度アプリケーションを所定の分割数に分割する。また、更新部27は、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、登録部21と同様に、再度ファイル群の遷移状況を解析し、ファイル群遷移テーブル33を更新する。
例えば、更新部27により、図10に示すようなファイル群の遷移状況を表す遷移グラフが得られたとする。この場合、図5に示す遷移グラフに対して、ファイル群A及びCを保持している状況で、ファイル群Dにアクセスする遷移状況のパターン、及びファイル群A、C、及びDを保持している状況で、ファイル群Bにアクセスする遷移状況のパターンが追加されている。アクセスログテーブル36には、クライアント端末40のファイル保持部52に必要なファイルが保持されていない状態、すなわち、ファイル群遷移テーブル33に登録されていない遷移状況でアクセスされたアクセスログも含まれる。従って、再度遷移状況を解析した場合には、初期に登録した遷移状況とは差異が生じる。
なお、図10において、矢印に併記したパーセンテージは遷移確率、秒数は遷移平均時間である。例えば、図10では、アプリケーションの開始からすぐにファイル群Aが要求され、その後80%の確率で平均4秒後にファイル群Bが要求され、20%の確率で平均3秒後にファイル群Cが要求されることを表している。
アクセスログを用いてファイルの分割、及びファイル群遷移テーブル33を更新することで、クライアント端末40で必要となるファイルを、より精度良く先読みして配信できる可能性が高まる。
次に、クライアント端末40の各機能部について説明する。
要求部41は、ユーザの入力、または他のアプリケーションからの要求に応じて、配信装置20にアプリケーションの配信開始要求を送信する。また、要求部41は、後述する実行部42から要求されたファイルの配信を配信装置20にファイル要求として送信する。また、要求部41は、ユーザの入力、または後述する実行部42からアプリケーションの終了が要求されると、アクセスログ51と共に、アプリケーションの配信終了要求を配信装置20に送信する。
実行部42は、アプリケーションを実行し、アプリケーション内でファイルの読込があった場合には、ファイル保持部52にアクセスしてファイルを取得する。ファイル保持部52に必要なファイルが保持されていない場合には、要求部41に必要なファイルを要求する。また、実行部42は、ファイル保持部52にアクセスしたアクセスログ51を記録する。
取得部43は、配信装置20から配信されたファイル群を取得し、ファイル保持部52に記憶する。
配信装置20は、例えば、図11に示すコンピュータ60で実現することができる。コンピュータ60はCPU61、一時記憶領域としてのメモリ62、及び不揮発性の記憶装置63を備える。また、コンピュータ60は、表示装置及び入力装置等の入出力装置68が接続される入出力インターフェース(I/F)64を備える。また、コンピュータ60は、記録媒体69に対するデータの読み込み及び書き込みを制御するread/write(R/W)部65、及びインターネット等のネットワーク15に接続されるネットワークI/F66を備える。CPU61、メモリ62、記憶装置63、入出力I/F64、R/W部65、及びネットワークI/F66は、バス67を介して互いに接続される。
記憶装置63は、HDD(Hard Disk Drive)、SSD(solid state drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶装置63には、コンピュータ60を配信装置20として機能させるための配信プログラム70が記憶される。また、記憶装置63は、各種テーブルを構成するためのデータが記憶されるデータ記憶領域79を有する。CPU61は、配信プログラム70を記憶装置63から読み出してメモリ62に展開し、配信プログラム70が有するプロセスを順次実行する。また、CPU61は、データ記憶領域79からデータを読み出して、各種テーブルとしてメモリ62に展開する。
配信プログラム70は、登録プロセス71と、要求受信プロセス72と、決定プロセス73と、配信プロセス76と、更新プロセス77とを有する。CPU61は、登録プロセス71を実行することで、図2に示す登録部21として動作する。また、CPU61は、要求受信プロセス72を実行することで、図2に示す要求受信部22として動作する。また、CPU61は、決定プロセス73を実行することで、図2に示す決定部23として動作する。また、CPU61は、配信プロセス76を実行することで、図2に示す配信部26として動作する。また、CPU61は、更新プロセス77を実行することで、図2に示す更新部27として動作する。これにより、配信プログラム70を実行したコンピュータ60が、配信装置20として機能することになる。
クライアント端末40は、例えば、図12に示すコンピュータ80で実現することができる。コンピュータ80は、CPU81、メモリ82、記憶装置83、入出力装置88が接続される入出力I/F84、記録媒体89に対するデータの読み込み及び書き込みを制御するR/W部85、及びネットワークI/F86を備える。CPU81、メモリ82、記憶装置83、入出力I/F84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続される。
記憶媒体としての記憶装置83には、コンピュータ80を、クライアント端末40として機能させるためのクライアント側プログラム90が記憶される。また、記憶装置83は、各種データが記憶されるデータ記憶領域100を有する。CPU81は、クライアント側プログラム90を記憶装置83から読み出してメモリ82に展開し、クライアント側プログラム90が有するプロセスを順次実行する。
クライアント側プログラム90は、要求プロセス91と、実行プロセス92と、取得プロセス93とを有する。CPU81は、要求プロセス91を実行することで、図2に示す要求部41として動作する。また、CPU81は、実行プロセス92を実行することで、図2に示す実行部42として動作する。また、CPU81は、取得プロセス93を実行することで、図2に示す取得部43として動作する。これにより、クライアント側プログラム90を実行したコンピュータ80が、クライアント端末40として機能することになる。
なお、配信装置20及びクライアント端末40の各々は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に、本実施形態に係る配信システム10の作用について説明する。
配信装置20に新規に登録するアプリケーションが入力されると、配信装置20において、図13に示す登録処理が実行される。また、クライアント端末40から送信された要求を受信すると、配信装置20において、図14及び図17に示す決定処理、並びに図15に示す配信処理が実行される。また、例えば1日1回、月に1回などの任意のタイミングで、配信装置において、図18に示す更新処理が実行される。一方、クライアント端末40においては、図19に示すクライアント側処理が実行される。以下、各処理について詳述する。
まず、図13に示す登録処理について説明する。
ステップS11で、登録部21が、入力されたアプリケーションを、アプリ保持部31に記憶する。次に、ステップS12で、登録部21が、予め設定されたアプリケーションの分割数の種類(例えば、1、2、3、4等)から1つを選択する。
次に、ステップS13で、登録部21が、受け付けたアプリケーションに含まれる複数のファイルの各々を、各ファイルの構造、及びファイル間のリンク構造に基づいて、選択した分割数に分割する。そして、登録部21は、アプリケーションに含まれる各ファイルが、分割されたファイル群のいずれに含まれるかを、例えば図4に示すようなファイル群テーブル32に登録する。
次に、ステップS14で、登録部21が、受け付けたアプリケーションの各ファイルの構造、及びファイル間のリンク構造に基づいて、ファイル群の遷移状況を解析する。そして、登録部21は、解析した遷移状況を、例えば図6に示すようなファイル群遷移テーブル33に登録する。
次に、ステップS15で、登録部21が、予め設定されている分割数を全て選択済みか否かを判定する。未選択の分割数が存在する場合には、処理はステップS12に戻り、次の分割数を選択し、ステップS13〜S15の処理を繰り返す。全ての分割数について選択済みの場合には、登録処理を終了する。
次に、図14に示す決定処理について説明する。
ステップS21で、要求受信部22が、クライアント端末40から受信した要求の種別を判定する。クライアント端末40から受信した要求が配信開始要求の場合には、要求受信部22が、受信した配信開始要求を分割数決定部24に受け渡し、処理はステップS22へ移行する。ファイル要求の場合には、要求受信部22が、受信したファイル要求を配信部26に受け渡し、処理はステップS27へ移行する。配信終了要求の場合には、要求受信部22が、受信した配信終了要求を管理部25に受け渡し、処理は図17のステップS51へ移行する。
ステップS22では、分割数決定部24が、配信開始要求に含まれるクライアントID及びアプリIDを管理部25に通知する。そして、管理部25が、通知された情報に基づいて、管理情報テーブル35において、配信装置20と接続中のクライアント端末数を1増やす。分割数決定部24は、管理情報テーブル35を参照して、配信装置20に接続中のクライアント端末数を取得する。
次に、ステップS23で、分割数決定部24が、取得した接続中のクライアント端末数、及び分割数テーブル34に基づいて、アプリケーションの分割数を決定する。例えば、取得した接続中のクライアント端末数が「25」で、図7に示す分割数テーブル34を利用する場合、分割数決定部24は、分割数を「4」と決定する。分割数決定部24は、決定した分割数を管理部25に通知する。そして、管理部25が、管理情報テーブル35に分割数を記録する。
次に、ステップS24で、管理部25が、ファイル群遷移テーブル33を参照して、アプリケーションの配信要求に対して最初に配信するファイル群の情報を取得し、管理情報テーブル35に記録する。本実施形態では、最初に配信するファイル群は、即時配信することとしているため、管理部25が、即時に、記録されたファイル群を次に配信するファイル群として決定し、クライアントID、アプリID、及び分割数と共に配信部26へ通知する。
次に、ステップS25で、配信部26は、決定したファイル群に含まれるファイルのファイル名及びファイルパスをファイル群テーブル32から検索し、該当のファイル群をアプリ保持部31から取得する。配信部26は、管理部25に配信開始を通知すると共に、取得したファイル群を、通知されたクライアントIDが示すクライアント端末40に配信する。そして、配信部26は、配信が完了すると、配信状況と共に、配信完了を管理部25に通知する。管理部25は、配信開始及び配信完了の通知に基づいて、管理情報テーブル35の「配信状況」欄を記録する。
次に、ステップS26で、管理部25が、配信部26から通知された配信状況を、管理情報テーブル35に記録する。次に、ステップS40で、後述するスケジュール決定処理が実行されて、決定処理を終了する。
一方、クライアント端末40から受信した要求がファイル要求であるとして、処理がステップS27へ移行した場合には、配信部26が、管理情報テーブル35を参照して、要求されているファイルを含むアプリケーションの分割数を取得する。
次に、ステップS28で、配信部26が、取得した分割数及びファイル群テーブル32に基づいて、要求されているファイルを含むファイル群を配信するファイル群として決定し、ステップS25へ移行する。
次に、図15に示す配信処理について説明する。配信処理は、管理部25から、ファイル群、分割数、クライアントID、及びアプリIDが配信部26に通知されると開始する。
ステップS31で、配信部26が、管理情報テーブル35の「配信状況」欄を参照して、ファイル群を配信中のクライアント端末数をカウントする。そして、配信部26は、配信中のクライアント端末数が、所定数th未満か否かを判定する。配信中のクライアント端末数が、所定数th未満の場合には、処理はステップS32へ移行し、配信中のクライアント端末数が、所定数th以上の場合には、本ステップの判定を繰り返す。
ステップS32では、配信部26が、管理部25から通知されたファイル群をファイル群テーブル32から特定し、アプリ保持部31から特定したファイル群を取得し、クライアント端末40に配信する。そして、配信部26は、配信状況を管理部25へ通知する。
次に、ステップS33で、管理部25が、配信部26から通知された配信状況を、管理情報テーブル35に記録する。次に、ステップS40で、後述するスケジュール決定処理が実行されて、配信処理を終了する。
次に、決定処理(図14)、及び配信処理(図15)のステップS40で実行されるスケジュール決定処理について、図16を参照して説明する。
ステップS41で、管理部25が、ファイル群遷移テーブル33において、管理情報テーブル35の「配信済みファイル群」のファイル群と一致するファイル群が「遷移元」欄に登録された遷移状況が存在するか否かを判定する。存在する場合には、処理はステップS42へ移行し、存在しない場合には、処理はステップS43へ移行する。
ステップS42では、管理部25が、「遷移先」欄のファイル群が「配信済みファイル群」と一致する遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部25は、取得した情報を管理情報テーブル35に記録し、決定処理または配信処理に戻る。
一方、ステップS43では、管理部25が、ファイル群遷移テーブル33から所定のルールで選択した遷移状況の「遷移先」欄、及び「予定時間」欄の情報を取得する。そして、管理部25は、取得した情報を管理情報テーブル35に記録し、決定処理または配信処理に戻る。
次に、図17を参照して、上記決定処理のステップS21で、クライアント端末40から受け付けた要求が配信終了要求であった場合の処理について説明する。
ステップS51で、管理部25が、要求受信部22からから受け渡された配信終了要求に含まれるクライアントID及びアプリIDと、管理情報テーブル35の「クライアントID」欄、及び「アプリID」欄が一致する管理情報を検索する。管理部25は、検索した管理情報の「配信状況」欄に「完了」を記録する。
次に、ステップS52で、管理部25が、配信終了要求にアクセスログが含まれるか否かを判定する。アクセスログが含まれる場合には、処理はステップS53へ移行し、管理部25が、アクセスログをアクセスログテーブル36に登録して、決定処理を終了する。アクセスログが含まれない場合には、そのまま決定処理を終了する。
次に、図18に示す更新処理について説明する。なお、登録処理(図13)と同様の処理については、同一符号を付して、詳細な説明を省略する。
ステップS61で、更新部27は、アプリ保持部31に登録されたアプリケーションから1つを選択する。次に、ステップS12で、更新部27は、分割数を1つ選択する。
次に、ステップS62で、更新部27が、アクセスログテーブル36に蓄積されたアクセスログを、クライアントID毎かつアプリID毎に、ファイルアクセス時間を用いて時系列に並べるなどして、アクセスログを解析する。次に、ステップS63で、更新部27は、アクセスログの解析結果に基づいて、アプリケーションを所定の分割数に再分割し、ファイル群テーブル32を更新する。
次に、ステップS64で、更新部27が、アクセスログの解析結果から、アクセスされたファイルの順番、及びアクセスされた時間間隔に基づいて、ファイル群の遷移状況を解析し、ファイル群遷移テーブル33を更新する。
次に、ステップS15で、更新部27が、全ての分割数を選択済みか否かを判定し、未選択の分割数が存在する場合には、処理はステップS12に戻る。全ての分割数を選択済みの場合には、処理はステップS65へ移行する。
ステップS65では、更新部27が、アプリ保持部31に登録されたアプリケーションの全てを選択済みか否かを判定する。未選択のアプリケーションが存在する場合には、処理はステップS61に戻り、次のアプリケーションを選択して、ステップS61〜S65の処理を繰り返す。全てのアプリケーションを選択済みの場合には、更新処理を終了する。
次に、図19に示すクライアント側処理について説明する。
ステップS71で、要求部41が、自端末のクライアントID、及び配信開始を要求するアプリケーションのアプリIDを含む配信開始要求を、配信装置20へ送信する。
次に、ステップS72で、取得部43が、配信装置20から配信されたファイル群を取得したか否かを判定する。取得していない場合には、取得するまで待機する。取得した場合には、処理はステップS73へ移行し、取得部43が、取得したファイル群をファイル保持部52に記憶する。
次に、ステップS74で、実行部42が、ファイル保持部52に保持されたファイルにアクセスしながら、アプリケーションを実行する。次に、ステップS75で、実行部42が、アプリケーションの実行に必要なファイルがファイル保持部52に保持されているか否かを判定する。保持されている場合には、処理はステップS76へ移行し、実行部42が、ファイル保持部52から必要なファイルを取得し、ステップS78へ移行する。一方、必要なファイルがファイル保持部52に保持されていない場合には、実行部42が、要求部41に必要なファイルを要求する。そして、要求部41が、クライアントID、アプリID、及び必要なファイルのファイル名を含むファイル要求を、配信装置20に送信し、ステップS78へ移行する。
ステップS78では、実行部42が、ファイル保持部52にアクセスしたファイルアクセス時間、及び必要なファイルのファイル名を含むアクセスログ51を記録する。
次に、ステップS79で、実行部42が、アプリケーションの実行を終了するか否かを判定する。終了する場合には、処理はステップS80へ移行し、終了しない場合には、処理はステップS74に戻る。
ステップS80では、要求部41が、クライアントID、アプリID、及びアクセスログを含む配信終了要求を、配信装置20に送信し、クライアント側処理を終了する。
以上説明したように、本実施形態に係る配信装置によれば、アプリケーションを複数のファイル群に分割して配信する。この際、予め定めた複数パターンのファイル群の遷移状況と、クライアント端末でのファイルの使用状況とに基づいて、動的にファイル群の配信スケジュールを決定する。これにより、アプリケーションを実行するクライアント端末で必要となるファイルを、適切に先読み配信することができ、アプリケーションを分割して配信する際に、クライアント端末での待機時間を低減することができる。
また、決定した配信スケジュールに基づいて配信されたファイル群に、クライアント端末で必要なファイルが含まれていない場合には、クライアント端末の要求に応じて、即時に必要なファイルを含むファイル群を配信する。そして、この場合でも、クライアント端末に配信したファイル群、すなわちクライアント端末で取得したファイル群の情報を用いて、次に配信するファイル群を決定する。このため、1度外れた先読み配信に影響されることなく、以降の先読み配信を行うことができる。
また、少なくともクライアント端末で直前に取得したファイル群の情報を用いて配信スケジュールを決定することで、先読み精度の高い配信スケジュールを決定することができる。特に、パッケージドウェブアプリケーションは、ユーザ操作によってページ遷移していくという特性を有するため、ユーザの操作によって、次に必要なファイル群が変化する。また、ページ単位での遷移することは、前回取得したファイル群とその次に必要となるファイル群との結びつきが強いことを表す。従って、始めに全ての配信スケジュールを決めるのでなく、次回に必要なファイル群を、少なくともクライアント端末で直前に取得したファイル群から推定することが有効となる。
また、アプリケーションを複数のファイル群に分割する分割数を、配信装置に接続中のクライアント端末数に基づいて決定する。これにより、接続中のクライアント端末数の変化にも適応的に対応して、通信帯域の圧迫を低減しつつ、不要なアプリケーションの分割を回避することができる。特に、所定エリア内だけのローカルネットワークや、アプリケーションサーバ毎の専用ネットワークなどの環境では、配信するアプリケーションの容量と、通信帯域との相関が高い。例えば、学校で生徒が保持するクライアント端末に一斉にテストのアプリケーションを配信するような場合である。従って、アプリケーションの分割数を調整することで、配信するアプリケーションの容量を調整し、通信帯域の圧迫を回避することができる。
また、クライアント端末におけるアクセスログを用いて、アプリケーションの再分割、及び遷移状況の再解析を行う。そのため、それ以降は、クライアント端末における実際のファイルの使用状況を反映した配信スケジュールの決定が可能となり、より適切に先読み配信することができる。
なお、開示の技術は、上記実施形態の態様に限定されない。例えば、クライアント端末を利用するユーザの属性を考慮して、配信スケジュールを決定してもよい。この場合、クライアント端末からアプリケーションの配信開始要求を配信装置に送信する際などに、ユーザの属性情報も送信する。そして、配信装置では、ファイル群テーブル及びファイル遷移テーブルを、ユーザの属性毎に用意しておく。また、図20に示すように、管理情報テーブルにおいて、管理情報の項目として、ユーザの属性も管理する。そして、管理情報テーブルに記録されたユーザの属性に応じたファイル群テーブル及びファイル遷移テーブルを選択して、配信スケジュールを決定する。これにより、ユーザの属性の相違により、ページ遷移が異なるようなアプリケーションに対して、より適切にファイル群の配信スケジュールを決定することができる。さらに、この場合、ユーザの属性に応じたファイル群遷移テーブルに、配信済みファイル群と「遷移元」が一致する遷移状況が存在しない場合には、類似する属性についてのファイル群遷移テーブルから、該当の遷移状況を選択してもよい。
また、上記実施形態では、クライアント端末でのファイル群の使用状況として、配信装置からクライアント端末へ配信したファイル群の配信状況を用いる場合について説明したが、これに限定されない。クライアント端末側でファイルアクセスがある都度、アクセス時間、及びアクセスしたファイル、またはそのファイルを含むファイル群を配信装置に通知するなどして、クライアント端末でのファイル群の使用状況を直接取得してもよい。
また、上記実施形態では、アプリケーションの再分割、及び遷移状況の再解析に、クライアント端末から取得したアクセスログを用いる場合について説明したが、これに限定されず、管理情報テーブルに記録した配信状況を用いてもよい。この場合、配信済みファイル群の情報に加え、配信済みの各ファイル群を配信した時間の情報も記録しておくとよい。
また、上記実施形態では、配信装置側で図8や図20に示すような管理情報テーブルを管理する場合について説明したが、クライアント端末側で管理するようにしてもよい。この場合、配信装置で決定した分割数の情報と、クライアント端末が要求するアプリケーション及び決定した分割数に対応したファイル群遷移テーブルの部分情報とをクライアント側に送信する。そして、クライアント端末において、上記の配信スケジュールの決定と同様の方法で、ファイル群の要求スケジュールを決定し、決定したスケジュールに従って、配信装置にファイル群を要求すればよい。
また、上記では、配信プログラム70が記憶装置63に、クライアント側プログラム90が記憶装置83に予め記憶(インストール)されている態様を説明したが、これに限定されない。CD−ROM、DVD−ROM、USBメモリ等の記憶媒体に記録された形態で提供することも可能である。
Claims (24)
- コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信方法。 - 前記次に配信するファイル群を決定する際に、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項1記載の配信方法。
- 前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項1または請求項2記載の配信方法。
- 前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項1〜請求項3のいずれか1項記載の配信方法。
- 前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項4記載の配信方法。
- 前記次に配信するファイル群の決定に用いるために、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項1〜請求項5のいずれか1項記載の配信方法。
- 前記決定したファイル群を配信する際に、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項6記載の配信方法。
- 前記決定したファイル群を配信することに加え、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項1〜請求項7のいずれか1項記載の配信方法。
- 前記決定したファイル群を配信する際に、ファイル群が配信されている他の端末数が所定数以下の場合に配信する請求項1〜請求項8のいずれか1項記載の配信方法。
- 前記コンピュータに、前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新することをさらに含む処理を実行させる請求項1〜請求項9のいずれか1項記載の配信方法。
- 前記次に配信するファイル群を決定する際に、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項1〜請求項10のいずれか1項記載の配信方法。
- アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定する決定部と、
前記決定部で決定されたファイル群を、前記端末に配信する配信部と、
を含む配信装置。 - 前記決定部は、前記所定の分割数を、前記アプリケーションの配信を要求するために接続されている端末数に応じて決定する請求項12記載の配信装置。
- 前記ファイル群の遷移状況として、前記アプリケーションが実行される際に、前記複数のファイル群の各々が必要となる順番、及び必要となる予定時間のパターンを複数定めた請求項12または請求項13記載の配信装置。
- 前記端末におけるファイル群の使用状況を、前記端末に配信されたファイル群の配信状況とする請求項12〜請求項14のいずれか1項記載の配信装置。
- 前記端末に配信されたファイル群の配信状況を、少なくとも直前に配信したファイル群の配信状況とする請求項15記載の配信装置。
- 前記決定部は、前記端末に配信されたファイル群の配信状況、前記ファイル群の遷移状況に基づいて決定した次に配信するファイル群、及び該ファイル群が必要となる予定時間を含む管理情報を管理する請求項12〜請求項16のいずれか1項記載の配信装置。
- 前記配信部は、前記管理情報に基づいて、前記予定時間が現時点に近い順にファイル群を配信する請求項17記載の配信装置。
- 前記配信部は、前記端末からファイル群の配信を要求された場合、要求されたファイル群を、要求されたタイミングで配信する請求項12〜請求項18のいずれか1項記載の配信装置。
- 前記配信部は、ファイル群が配信されている他の端末数が所定数以下の場合に、前記決定部で決定されたファイル群を配信する請求項12〜請求項19のいずれか1項記載の配信装置。
- 前記端末に配信されたファイル群の配信状況、または、前記端末におけるファイル群の使用状況に基づいて、前記アプリケーションの分割、及び前記ファイル群の遷移状況を更新する更新部を含む請求項12〜請求項20のいずれか1項記載の配信装置。
- 前記決定部は、ユーザの属性に応じた前記ファイル群の遷移状況、及び前記端末のユーザの属性に基づいて、前記次に配信するファイル群を決定する請求項12〜請求項21のいずれか1項記載の配信装置。
- コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラム。 - コンピュータに、
アプリケーションを所定の分割数で分割した複数のファイル群を端末に配信する際に、前記アプリケーションが実行される際の前記複数のファイル群の各々の使用順に基づいて予め定めたファイル群の遷移状況、及び前記端末におけるファイル群の使用状況に基づいて、次に配信するファイル群を決定し、
決定したファイル群を、前記端末に配信する
ことを含む処理を実行させる配信プログラムを記憶した記憶媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/082174 WO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2016088237A1 true JPWO2016088237A1 (ja) | 2017-09-07 |
Family
ID=56091209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016562156A Withdrawn JPWO2016088237A1 (ja) | 2014-12-04 | 2014-12-04 | 配信方法、装置、及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170264668A1 (ja) |
EP (1) | EP3229144A4 (ja) |
JP (1) | JPWO2016088237A1 (ja) |
WO (1) | WO2016088237A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110531982B (zh) * | 2018-05-23 | 2022-12-13 | 福建天晴数码有限公司 | 一种自适应打包方法及系统 |
US20200241500A1 (en) * | 2019-01-25 | 2020-07-30 | Taiwan Development Institute | Numerical control machine tool processing program sharing method |
JP7267503B2 (ja) * | 2020-03-30 | 2023-05-01 | 三菱電機株式会社 | 無線機器及び空気調和システム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197570B2 (en) * | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
JP2000330881A (ja) * | 1999-05-24 | 2000-11-30 | Hitachi Software Eng Co Ltd | データ配信制御方法およびシステム |
US20020078184A1 (en) * | 2000-12-18 | 2002-06-20 | Eiji Ujyo | Record medium, multicast delivery method and multicast receiving method |
JP2003288290A (ja) * | 2002-03-28 | 2003-10-10 | Nippon Telegr & Teleph Corp <Ntt> | ファイル配信方法 |
JP2009009297A (ja) * | 2007-06-27 | 2009-01-15 | Noritsu Koki Co Ltd | データ配信方法およびデータ配信システム |
US8595440B2 (en) * | 2010-03-31 | 2013-11-26 | Hitachi Solutions, Ltd. | File server apparatus, management method of storage system, and program |
US9218359B2 (en) * | 2010-07-02 | 2015-12-22 | Code Systems Corporation | Method and system for profiling virtual application resource utilization patterns by executing virtualized application |
JP2012037981A (ja) * | 2010-08-04 | 2012-02-23 | Panasonic Corp | コンテンツ再生装置、コンテンツ再生方法、プログラム、及びコンテンツ配信システム |
US8521902B2 (en) * | 2010-12-02 | 2013-08-27 | Microsoft Corporation | Shared buffer for connectionless transfer protocols |
US9054920B2 (en) * | 2011-03-31 | 2015-06-09 | Alcatel Lucent | Managing data file transmission |
JP2013257834A (ja) * | 2012-06-14 | 2013-12-26 | Sharp Corp | データ配信システム、データ配信方法及び配信サーバー |
WO2014048477A1 (en) * | 2012-09-27 | 2014-04-03 | Telefonaktiebolaget L M Ericsson (Publ) | Content delivery in a communications network |
US10101801B2 (en) * | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US9483636B2 (en) * | 2014-01-17 | 2016-11-01 | Microsoft Technology Licensing, Llc | Runtime application integrity protection |
US20150229701A1 (en) * | 2014-02-12 | 2015-08-13 | Bank Of America Corporation | Sending files with multiple job sessions |
-
2014
- 2014-12-04 WO PCT/JP2014/082174 patent/WO2016088237A1/ja active Application Filing
- 2014-12-04 JP JP2016562156A patent/JPWO2016088237A1/ja not_active Withdrawn
- 2014-12-04 EP EP14907482.5A patent/EP3229144A4/en not_active Withdrawn
-
2017
- 2017-05-25 US US15/605,182 patent/US20170264668A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3229144A1 (en) | 2017-10-11 |
EP3229144A4 (en) | 2017-11-15 |
WO2016088237A1 (ja) | 2016-06-09 |
US20170264668A1 (en) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101903926B1 (ko) | 칼럼형 데이터베이스의 히스토그램을 이용한 효율적인 질의 처리 | |
US8555018B1 (en) | Techniques for storing data | |
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
TWI712907B (zh) | 一種透過文件獲取對網頁進行區塊鏈存證的方法及裝置 | |
CN103970870A (zh) | 数据库查询方法和服务器 | |
JP2013535065A (ja) | コンテンツアイテムヒストグラムを用いた流行のコンテンツアイテムの識別 | |
RU2016124134A (ru) | Создание запросов для выполнения по многомерным структурам данных | |
CN102200972A (zh) | 一种数据库维护方法和设备 | |
US20080140691A1 (en) | Method, Device and Computer Program Product for Optimizing File Placement in a Storage System | |
JP2020107347A (ja) | ファイルパスを記憶し、ローカルファイルにアクセスする方法及び装置 | |
US10242102B2 (en) | Network crawling prioritization | |
WO2016088237A1 (ja) | 配信方法、装置、及びプログラム | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN109359117B (zh) | 一种卡片数据的更新方法和装置 | |
CN106156038B (zh) | 数据存储方法和装置 | |
CN101247405A (zh) | 计算下载时间及资源下载的方法、系统及装置 | |
CN114816240A (zh) | 一种数据写入方法及一种数据读取方法 | |
JP6508648B2 (ja) | データベースを管理するシステム及び方法 | |
US9405786B2 (en) | System and method for database flow management | |
CN113127438B (zh) | 用于存储数据的方法、装置、服务器和介质 | |
CN110020074A (zh) | 确定网页流失率的方法及装置 | |
JPWO2014162397A1 (ja) | 計算機システム、データ管理方法、及び計算機 | |
KR20130126012A (ko) | 비즈니스 인텔리전스의리포트 제공 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170601 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170601 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171225 |