(57)【要約】【課題】  本発明の課題は、分割して転送されるプログラムの実行を即座に行えることを目的とする。【解決手段】  上記課題は、コンピュータによって実行される配信方法であって、ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送することを特徴とする配信方法により達成される。【選択図】  図１
2015172881.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される配信方法であって、
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する
ことを特徴とする配信方法。
【請求項２】
前記コンピュータは、
前記プログラムを起動できる先行部分と、該先行部分以外の１以上の残り部分とに分割し、
前記先行部分内のリンク情報を配信サーバを指定する情報に書き換えて、
前記先行部分を前記１以上の残り部分より優先して前記端末装置へ転送する、
ことを特徴とする請求項１記載の配信方法。
【請求項３】
前記コンピュータは、
前記端末装置で起動した先行部分からのリソース取得要求に応じてリソースを送信する
ことを特徴とする請求項２記載の配信方法。
【請求項４】
前記コンピュータは、
前記プログラムのファイル構造に基づいて分割する
ことを特徴とする請求項２又は３記載の配信方法。
【請求項５】
前記ネットワークの状況に係る情報が付加された前記プログラムの取得要求を受信すると、該情報に基づいて、パッケージサイズを決定する
ことを特徴とする請求項２又は３記載の配信方法。
【請求項６】
予め定められた特定情報を前記プログラムから削除する
ことを特徴とする請求項２乃至４のいずれか一項記載の配信方法。
【請求項７】
前記端末装置からの前記リソース取得要求の頻度に基づいて、前記リソースを前記先行部分又は前記残り部分のいずれに含めるかを決定する
ことを特徴とする請求項３項記載の配信方法。
【請求項８】
前記残り部分の送信途中で、前記リソース取得要求を受信した場合、前記リソースに、該リソースを含む残り部分に係る部分情報を付加して送信する
ことを特徴とする請求項３記載の配信方法。
【請求項９】
前記残り部分の送信途中で前記リソース取得要求を受信した場合、前記リソース取得要求に応じて前記リソースを前記端末装置に送信し、
前記端末装置からの次の残り部分の取得要求に応じて、該取得要求で指定される該次の残り部分に、前記リソースを含む残り部分に係る部分情報を付加して送信する
ことを特徴とする請求項３記載の配信方法。
【請求項１０】
前記端末装置へ複数のプログラムの取得要求に対して、各プログラムの前記先行部分を優先して送信する
ことを特徴とする請求項２乃至９のいずれか一項記載の配信方法。
【請求項１１】
コンピュータによって実行されるリソース取得方法であって、
ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードし、
前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示し、
前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得する、
ことを特徴とするリソース取得方法。
【請求項１２】
前記リソースを含む分割部分がダウンロード完了すると、前記先行部分のリンク情報をダウンロードした該分割部分に書き換えて、前記ページを再表示させる
ことを特徴とする請求項１１記載のリソース取得方法。
【請求項１３】
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する
ことを特徴とする配信サーバ。
【請求項１４】
前記プログラムを起動できる先行部分と、該先行部分以外の１以上の残り部分とへの分割を解析する解析部と、
前記先行部分内のリンク情報を配信サーバを指定する情報に書き換える分割決定部と、
前記先行部分を前記１以上の残り部分より優先して前記端末装置へ転送する転送部と
を有することを特徴とする請求項１３記載の配信サーバ。
【請求項１５】
ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードするダウンロード部と、
前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示するブラウザエンジンと、
前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得するリソース要求部と、
を有することを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割して転送されるプログラムの実行を即座に行えることに関する。
【背景技術】
【０００２】
従来より、ネットワークを介してプログラムを分割して転送し、実行部分の到着に応じてプログラムを実行できるようにした技術、プログラムを分割受信し、受信中に実行を開始し、参照部分が到着していない場合待ち合わせる技術等が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特公平３−０４７５４１号公報
【特許文献２】国際公開第９８／０１１７２３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、デスクトップ（卓上型）、ラップトップ（膝上）、パームトップ（掌上）、タブレット端末等の様々なタイプのパーソナルコンピュータ（ＰＣ）が普及している。このような多様なＰＣのＯＳ（Operating System）等のプラットフォームに依存しない（マルチプラットフォームで動作する）アプリケーションの開発により、種々のＰＣを使用する場合においても、ユーザはプラットフォームの違いを意識することなく同様のアプリケーションを使用できる。
【０００５】
このようなマルチプラットフォームで動作するアプリケーションの開発では、ＨＴＭＬ（HyperText Markup Language）言語で記述されたＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ技術を用いるのが主流である。ＨＴＭＬ言語で記述されたアプリケーションはＷｅｂアプリとも呼ばれ、その中でも２００８年にドラフトが公開されたＨＴＭＬ５仕様では、オフラインでＷｅｂアプリを動かすために仕様が規定されており、そのようなＷｅｂアプリは「Packaged Web Apps」と呼ばれる。
【０００６】
「Packaged Web Apps」は、ブラウザ上で動作するアプリケーションのうち、サーバから提供されたのちクライアントに常駐して、クライアント側でオフラインで動作するアプリケーションである。以下、「Packaged Web Apps」を単にアプリケーションと言う。
【０００７】
通常、アプリケーションは、動作に必要なファイル群をアーカイブして１つのファイルにパッケージ化しているため、パッケージ全体をダウンロード後、実行するという利用方法になる。一方、オンラインで利用するＷｅｂアプリはパッケージ化されておらず、Ｗｅｂアプリを構成する個々のファイルをブラウザにロードした時点で即座に実行できる。そのため、オンラインのＷｅｂアプリの使用に慣れたユーザには、オフラインで動作する「Packaged Web Apps」でも即時利用ができることが期待する。
【０００８】
しかしながら、アプリケーションのデータサイズが大きい場合には、アプリケーションのダウンロードに時間がかかり、パッケージ全体のダウンロードが完了するまでユーザは実行を待たされる問題がある。
【０００９】
したがって、１つの側面では、本発明は、アプリケーションを分割して転送し、プログラムの実行を即座に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
一態様によれば、コンピュータによって実行される配信方法であって、ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する配信方法が提供される。
【００１１】
また、コンピュータによって実行されるリソース取得方法であって、ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードし、前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示し、前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得するリソース取得方法が提供される。
【００１２】
また、上記課題を解決するための手段として、上記方法を行う装置、コンピュータに上記処理を実行させるためのプログラム、及び、そのプログラムを記憶した記憶媒体とすることもできる。
【発明の効果】
【００１３】
アプリケーションを分割して転送し、プログラムの実行を即座に行えるようにすることができる。
【図面の簡単な説明】
【００１４】
【図１】配信システムの概要を説明するための図である。
【図２】配信サーバのハードウェア構成を示す図である
【図３】端末装置のハードウェア構成を示す図である。
【図４】実施例における機能構成例を示す図である。
【図５】配信サーバにおけるアプリパッケージ取得に係る処理シーケンスを示す図である。
【図６】配信サーバでの分割処理に係る処理シーケンスを示す図である。
【図７】端末装置におけるアプリパッケージ取得に係る処理シーケンスを示す図である。
【図８】端末装置における分割パッケージ取得処理に係る処理シーケンスを示す図である。
【図９】リンク処理を説明するための処理に係る処理シーケンスを示す図である。
【図１０】アプリダウンロード処理を説明するためのフローチャート図である。
【図１１】図１０のステップステップＳ２０６での分割ダウンロード処理を説明するための図である。
【図１２】端末装置側のリンク処理を説明するためのフローチャート図である。
【図１３】配信サーバにおけるアプリパッケージ取得処理を説明するためのフローチャート図である。
【図１４】配信サーバでの分割処理を説明するためのフローチャート図である。
【図１５】配信サーバにおける分割パッケージ取得処理を説明するためのフローチャート図である。
【図１６】配信サーバにおけるリンク処理を説明するためのフローチャート図である。
【図１７】アプリパッケージの分割前のファイル構造例を示す図である。
【図１８】第１のリソース取得方法における分割パッケージ毎のファイル構造例を示す図である。
【図１９】第２のリソース取得方法における分割パッケージ毎のファイル構造例を示す図である。
【図２０】第１のリソース取得方法におけるマニフェスト情報のデータ構成を示す図である。
【図２１】第２のリソース取得方法におけるマニフェスト情報のデータ構成を示す図である。
【図２２】第１変形例における単純な分割方法を説明するための図である。
【図２３】第２変形例におけるパッケージサイズの指定例を示す図である。
【図２４】第３変形例に係る構成例を示す図である。
【図２５】第４変形例に係る構成例を示す図である。
【図２６】第５変形例における機能構成例を示す図である。
【図２７】端末装置のアクセスログＤＢのデータ構成例を示す図である。
【図２８】第７変形例における分割パッケージを送信する第１の方法を説明するための図である。
【図２９】第７変形例における分割パッケージを送信する第２の方法を説明するための図である。
【図３０】第８変形例における方法３に係る機能構成例を示す図である。
【図３１】第９変形例を説明するための図である。
【図３２】第１０変形例に係る機能構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１６】
［実施例］
本実施例に係る配信システム１０００について説明する。図１は、配信システムの概要を説明するための図である。図１において、配信システム１０００は、１以上の端末装置５と、配信サーバ１００とを有する。端末装置５と、配信サーバ１００とはインターネットや社内ＬＡＮのようなネットワーク２を介して接続される。
【００１７】
端末装置５は、情報処理装置であり、ＨＴＭＬ（HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、JavaScript（登録商標）、アプリマニフェスト等のリソースによるアプリケーション（単に、「アプリ」と言う）を実行可能な装置である。端末装置５は、携帯電話機等の移動体通信装置であっても良い。
【００１８】
配信サーバ１００は、アプリパッケージ７ａを記憶するアプリ配信領域３と、アプリを分割してパッケージ化した分割パッケージ４ｐを一時的に保持する暫定処理領域４と有する。アプリ配信領域３は、配信サーバ１００とは個別の、アプリを配信するサーバで管理しても良い。
【００１９】
アプリパッケージ７ａは、上述したリソースによるアプリをＺＩＰファイルにまとめたパッケージである。アプリパッケージ７ａは、端末装置５へダウンロードした後、端末装置５でオフラインで実行可能なダウンロード型のアプリであり、「Packaged Web App」と言う。一方、従来のブラウザ上でオンラインで動作するＷｅｂアプリを「Hosted Web App」と言う。
【００２０】
配信システム１０００では、端末装置５がインターネット２を介して、アプリを分割パッケージ４ｐでダウンロードする。端末装置５は、先頭パッケージ＿０を受信するとパッケージ内の情報を取得し、端末装置５の表示画面５ａにアプリを表すアイコンが表示され、アプリが実行可能な状態になる。
【００２１】
アイコンをユーザが選択すると、トップページ５ｂを含む先頭パッケージ＿０によりアプリが実行される。先頭パッケージ＿０によるアプリの動作中に、分割パッケージ＿１で転送されるページが要求された場合、端末装置５は、自装置内に分割パッケージ＿１が存在する場合は、自装置内に分割パッケージ＿１から要求されたページを実行する。自装置内に分割パッケージ＿１が存在しない場合は、端末装置５は、配信サーバ１００へ分割パッケージ＿１のダウンロードを要求する。
【００２２】
全ての分割パッケージ４ｐをダウンロード完了すると、端末装置５は、分割パッケージ４ｐを組み立ててアプリパッケージ７ａを復元する。
【００２３】
したがって、本実施例において、端末装置５は、全ての分割パッケージ４ｐのダウンロード完了を待つことなく、アプリを実行することができる。
【００２４】
本実施の形態における配信サーバ１００は、図２に示すようなハードウェア構成を有する。図２は、配信サーバのハードウェア構成を示す図である。図２において、配信サーバ１００は、コンピュータによって制御される端末であって、ＣＰＵ（Central Processing Unit）１１ａと、主記憶装置１２ａと、補助記憶装置１３ａと、ユーザインタフェース１５ａと、通信Ｉ／Ｆ（インターフェース）１７ａと、ドライブ装置１８ａとを有し、バスＢ１に接続される。
【００２５】
ＣＰＵ１１ａは、主記憶装置１２ａに格納されたプログラムに従って配信サーバ１００を制御する。主記憶装置１２ａには、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１ａにて実行されるプログラム、ＣＰＵ１１ａでの処理に必要なデータ、ＣＰＵ１１ａでの処理にて得られたデータ等を記憶又は一時保存する。
【００２６】
補助記憶装置１３ａには、ＨＤＤ（Hard Disk Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３ａに格納されているプログラムの一部が主記憶装置１２ａにロードされ、ＣＰＵ１１ａに実行されることによって、各種処理が実現される。記憶部１３０ａは、主記憶装置１２ａ及び／又は補助記憶装置１３を有する。
【００２７】
入力装置１４ａは、マウス、キーボード等を有し、ユーザが配信サーバ１００による処理に必要な各種情報を入力するために用いられる。表示装置１５ａは、ＣＰＵ１１ａの制御のもとに必要な各種情報を表示する。通信Ｉ／Ｆ１７ａは、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７ａによる通信は無線又は有線に限定されるものではない。 
配信サーバ１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９ａによって配信サーバ１００に提供される。
【００２８】
ドライブ装置１８ａは、ドライブ装置１８ａにセットされた記憶媒体１９ａ（例えば、ＣＤ−ＲＯＭ等）と配信サーバ１００とのインターフェースを行う。
【００２９】
また、記憶媒体１９ａに、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９ａに格納されたプログラムは、ドライブ装置１８ａを介して配信サーバ１００にインストールされる。インストールされたプログラムは、配信サーバ１００により実行可能となる。
【００３０】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００３１】
本実施の形態における端末装置５は、図３に示すようなハードウェア構成を有する。図３は、端末装置のハードウェア構成を示す図である。図３において、端末装置５は、コンピュータによって制御される端末であって、ＣＰＵ（Central Processing Unit）１１ｂと、主記憶装置１２ｂと、補助記憶装置１３ｂと、ユーザインタフェース１５ｂと、通信Ｉ／Ｆ（インターフェース）１７ｂとを有し、バスＢ２に接続される。
【００３２】
ＣＰＵ１１ｂは、主記憶装置１２ｂに格納されたプログラムに従って端末装置５を制御する。主記憶装置１２ｂには、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１ｂにて実行されるプログラム、ＣＰＵ１１ｂでの処理に必要なデータ、ＣＰＵ１１ｂでの処理にて得られたデータ等を記憶又は一時保存する。
【００３３】
補助記憶装置１３ｂには、ＨＤＤ（Hard Disk Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３ｂに格納されているプログラムの一部が主記憶装置１２ｂにロードされ、ＣＰＵ１１ｂに実行されることによって、各種処理が実現される。記憶部１３０ｂは、主記憶装置１２及び／又は補助記憶装置１３を有する。
【００３４】
ユーザインタフェース１５ａは、ＣＰＵ１１ａの制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。通信Ｉ／Ｆ１７ｂは、無線などによりインターネット２を通じて通信を行う。
【００３５】
端末装置５によって行われる処理を実現する本実施例に係るアプリ等のプログラムは、配信サーバ１００等の外部からインターネット２を介してダウンロードされる。
【００３６】
図４は、実施例における機能構成例を示す図である。図４において、配信サーバ１００は、パッケージ転送部１０１と、パッケージ作成部１０２と、リソース取得部１０３と、分割決定部１０４と、リソース解析部１０５と、分割リソース管理部１０６と、リソース転送部１０７とを有する。
【００３７】
また、配信サーバ１００は、アプリパッケージ７ａを記憶したアプリ配信領域３と、複数の分割パッケージを記憶する暫定処理領域４とを有する。アプリ配信領域３と暫定処理領域４とは、記憶部１３０ａに構成させる。
【００３８】
パッケージ転送部１０１は、端末装置５からのアプリパッケージ取得要求に応じて、アプリパッケージ７ａを分割した分割パッケージ４ｐを端末装置５に転送する。
【００３９】
パッケージ作成部１０２は、パッケージ転送部１０１からのパッケージ作成要求に応じて、要求されたアプリパッケージ７ａのリソースサイズに基づいて、アプリパッケージ７ａを分割した分割パッケージ４ｐを作成する。分割パッケージ４ｐは、暫定処理領域４に格納される。
【００４０】
リソース取得部１０３は、パッケージ作成部１０２からのリソース取得要求に応じて、アプリ配信領域３からリソース取得要求で指定されたアプリパッケージ７ａのリソース一式を取得して、パッケージ作成部１０２にリソース情報を通知する。
【００４１】
分割決定部１０４は、リソース解析部１０５に分割単位を決定させて分割パッケージを生成し、分割リソース管理部１０６に分割パッケージのリソースを暫定処理領域４に配置させる。
【００４２】
リソース解析部１０５は、分割決定部１０４からのリソース解析要求に応じてリソースサイズとリンク情報とに基づいて分析し、分割単位を決定する。分割単位を決定するための分析方法は、リソースサイズとリンク情報とに基づく方法に限定されない。
【００４３】
分割リソース管理部１０６は、端末装置５への転送が完了した分割パッケージ４ｐを暫定処理領域４から削除する。
【００４４】
リソース転送部１０７は、端末装置５からのリソース取得要求に応じて、暫定処理領域４からリソース取得要求で指定される分割パッケージ４ｐを転送する。
【００４５】
図４において、端末装置５は、パッケージダウンローダ５１と、ブラウザエンジン５２と、パッケージ合成部５３と、リソース要求部５４と、入力検出部５５と、表示出力部５６とを有する。
【００４６】
パッケージダウンローダ５１は、配信サーバ１００へアプリパッケージ取得要求を行い、先頭パッケージ＿０をダウンロードする。ダウンロードされた先頭パッケージ＿０は、アプリ格納領域５９に格納される。パッケージダウンローダ５１は、先頭パッケージ＿０後、順次、分割パッケージ＿１、分割パッケージ＿２等をダウンロードする。
【００４７】
ブラウザエンジン５２は、パッケージダウンローダ５１からのアプリ実行要求に応じて、アプリパッケージ７ａを解凍して得られたアプリを実行する。
【００４８】
パッケージ合成部５３は、パッケージダウンローダ５１からの分割パッケージの合成要求に応じて、アプリ格納領域５９に保持されている分割パッケージ＿０、分割パッケージ＿１等を、先頭パッケージ＿０に順次結合する。
【００４９】
リソース要求部５４は、トップページからリンクするページのリソースを要求する対象リソース取得要求に応じて、アプリ格納領域５９又は配信サーバ１００から対象リソースを取得する。リソース要求部５４は、対象リソースがアプリ格納領域５９に存在しない場合、配信サーバ１００にリソース取得要求を行って、配信サーバ１００から対象リソースを取得する。
【００５０】
入力検出部５５は、ユーザの端末装置５への入力操作を検出してブラウザエンジン５２へ通知する。表示出力部５６は、ブラウザエンジン５２からの画面表示要求に応じて、画面表示を行う。
【００５１】
以下、端末装置５と配信サーバ１００との間の処理シーケンスについて、図５〜図９で説明する。図５は、配信サーバにおけるアプリパッケージ取得に係る処理シーケンスを示す図である。
【００５２】
図５において、端末装置５のパッケージダウンローダ５１が、配信サーバ１００に対してアプリパッケージ取得要求を行う（ステップＳ１１）。アプリパッケージ取得要求を受信すると、パッケージ転送部１０１は、アプリパッケージ取得要求で指定されているアプリのパッケージ作成要求をパッケージ作成部１０２に行う（ステップＳ１２）。
【００５３】
パッケージ作成部１０２は、パッケージ転送部１０１からのパッケージ作成要求に応じて、パッケージ作成要求で指定されるアプリパッケージを取得するために、リソース取得部１０３にリソース取得要求を行う（ステップＳ１３）。
【００５４】
リソース取得部１０３は、パッケージ作成部１０２からのリソース取得要求に応じて、アプリ格納領域５９内のリソース取得要求で指定されるアプリに関するリソース一式を取得する（ステップＳ１４）。そして、リソース取得部１０３は、取得したリソース情報をパッケージ作成部１０２に通知する（ステップＳ１５）。
【００５５】
パッケージ作成部１０２は、リソースのサイズに応じて、パッケージ分割要求を分割決定部１０４に行う（ステップＳ１６）。パッケージ作成部１０２は、リソースのサイズが、１パッケージで転送可能な閾値以下であれば分割しない。リソースのサイズが、１パッケージで転送可能な閾値より大きい場合、パッケージ作成部１０２は、分割決定部１０３に対してパッケージ分割要求を行う（ステップＳ１７）。
【００５６】
分割決定部１０３は、パッケージ作成部１０２からのパッケージ分割要求に応じて、分割処理（図６）を行い（ステップＳ１８）、分割結果に関する分割パッケージ情報をパッケージ作成部１０２に通知する（ステップＳ１９）。
【００５７】
パッケージ作成部１０２は、分割決定部１０４が通知してきた分割パッケージ情報に基づいて、先頭パッケージ情報をパッケージ転送部１０１に通知する（ステップＳ２０）。先頭パッケージ情報には、アプリ格納領域５９の先頭パッケージ＿０の格納場所の情報が含まれる。
【００５８】
パッケージ転送部１０１は、パッケージ作成部１０２から通知された先頭パッケージ情報を参照して、アプリ格納領域５９の先頭パッケージ＿０を端末装置５へ送信する（ステップＳ２１）。端末装置５は、先頭パッケージ＿０をダウンロードする。先頭パッケージ＿０は、端末装置５のアプリ格納領域５９に格納される。
【００５９】
先頭パッケージ＿０の送信が完了すると、パッケージ転送部１０１は、分割リソース管理部１０６に対して先頭パッケージ＿０の削除要求を行う（ステップＳ２２）。分割リソース管理部１０６は、パッケージ転送部１０１からの先頭パッケージ＿０の削除要求に応じて、先頭パッケージ＿０をアプリ格納領域５９から削除する（ステップＳ２３）。
【００６０】
図６は、配信サーバでの分割処理に係る処理シーケンスを示す図である。図６において、パッケージ作成部１０２からパッケージ分割要求を受信すると（ステップＳ１７）、分割決定部１０４は、リソース解析要求をリソース解析部１０５に行う（ステップＳ１８−１）。
【００６１】
リソース解析部１０５は、分割決定部１０４からのリソース解析要求に応じて、リソース解析部１０５に対して、リソース解析要求を行う（ステップＳ１８−１）。リソース解析部１０５は、リソースサイズとリンク情報とに基づいて分割方法を解析し、分割単位を決定する（ステップＳ１８−２）。そして、リソース解析部１０５は、分割方法を示す分割情報を分割決定部１０４に通知する（ステップＳ１８−３）。
【００６２】
分割決定部１０４は、トップページを含む先頭パッケージ＿０のリンク情報を分割方法に従って書き換えて、分割パッケージを生成して（ステップＳ１８−４）、分割リソース管理部１０６に対して分割リソース配置要求を行う（ステップＳ１８−５）。リンク情報の書き換え例は、図１８で後述される。
【００６３】
分割リソース管理部１０６は、分割決定部１０４からの分割リソース配置要求に応じて、暫定処理領域４内に、アプリを分割してパッケージ化した複数の分割パッケージを配置して（ステップＳ１８−６）、分割決定部１０４に対して配置情報を通知する（ステップＳ１８−７）。
【００６４】
分割決定部１０４は、分割リソース管理部１０６から配置情報の通知を受けると、分割パッケージ情報をパッケージ作成部１０２に対して、分割パッケージ情報を通知する（ステップＳ１９）。
【００６５】
図７は、端末装置におけるアプリパッケージ取得に係る処理シーケンスを示す図である。図７において、端末装置５のパッケージダウンローダ５１は、配信サーバ１００へアプリパッケージ取得要求を行い（ステップＳ１１）、配信サーバ１００から先頭パッケージ＿０を受信する（ステップＳ２１）。先頭パッケージ＿０は、アプリ格納領域５９に格納される。
【００６６】
先頭パッケージ＿０を受信すると、パッケージダウンローダ５１は、先頭パッケージ＿０からマニフェスト情報を取得して、トップページを特定する（ステップＳ２２）。
【００６７】
パッケージダウンローダ５１は、マニフェスト情報からファイル構成を知ることができる。マニフェスト情報については後述される。マニフェスト情報からトップページを特定し、ブラウザエンジン５２にアプリ実行要求を行う（ステップＳ２３）。ブラウザエンジン５２によってトップページが表示画面５ａに表示される。
【００６８】
パッケージダウンローダ５１は、分割パッケージ取得処理を行う（ステップＳ２４）。パッケージダウンローダ５１は、マニフェスト情報から分割数を取得して、配信サーバ１００から先頭パッケージ＿０以外の分割パッケージ＿１及び分割パッケージ＿２の取得を行う。
【００６９】
図８は、端末装置における分割パッケージ取得処理に係る処理シーケンスを示す図である。図８において、端末装置５のパッケージダウンローダ５１は、配信サーバ１００へ分割パッケージ＃を要求する（ステップＳ２４−１）。分割パッケージ＃は、分割パッケージを特定する番号等である。
【００７０】
配信サーバ１００において分割パッケージ＃要求を受信すると、パッケージ転送部１０１は、分割リソース管理部１０６に対して分割パッケージ＃取得要求を行う（ステップＳ２４−２）。
【００７１】
分割リソース管理部１０６は、分割パッケージ＃取得要求に応じて、暫定処理領域４から分割パッケージ＃を取得して（ステップＳ２４−３）、パッケージ転送部１０１に対して分割パッケージ＃情報を通知する（ステップＳ２４−４）。分割パッケージ＃情報は、暫定処理領域４内の分割パッケージ＃のアドレスを含む。
【００７２】
パッケージ転送部１０１は、分割パッケージ＃情報に基づいて、暫定処理領域４内の分割パッケージ＃を取得して、端末装置５に送信する（ステップＳ２４−５）。端末装置５は、分割パッケージ＃をダウンロードする。分割パッケージ＃は、端末装置５のアプリ格納領域５９に格納される。
【００７３】
一方、配信サーバ１００において、パッケージ転送部１０１は、分割パッケージ＃の転送を完了すると、分割リソース管理部１０６に対して、分割パッケージ＃の削除要求を行う（ステップＳ２５）。分割リソース管理部１０６は、パッケージ転送部１０１からの分割パッケージ＃の削除要求に応じて、暫定処理領域４から分割パッケージ＃を削除する（ステップＳ２６）。
【００７４】
パッケージダウンローダ５１は、分割パッケージ＃をダウンロードすると、パッケージ合成部５３に対して、分割パッケージ＃の合成要求を行う（ステップＳ２４−６）。
【００７５】
パッケージ合成部５３は、パッケージダウンローダ５１からの分割パッケージ＃の合成要求に応じて、先頭パッケージに分割パッケージ＃を合成し、リンク情報を端末装置５のアプリ格納領域５９に書き換える（ステップＳ２４−７）。そして、パッケージ合成部５３は、ページの再読込要求をブラウザエンジン５２に行う（ステップＳ２４−８）。ブラウザエンジン５２は、ページの再読込要求に応じて、ページを再度読み込む。端末装置５の表示画面５ａの表示は変更されないが、表示されているページからのリンク先が配信サーバ１００から端末装置５のアプリ格納領域５９に変更される。
【００７６】
パッケージダウンローダ５１は、残りの分割パッケージ＃に対して上述したステップＳ２４−１からＳ２４−８の処理を繰り返す（ステップＳ２７）。そして、全ての分割パッケージ＃を取得し、アプリ格納領域５９に格納する。
【００７７】
分割パッケージ＃を受信する毎に、先頭パッケージ＿０に合成することで、アプリ格納領域５９内にアプリパッケージ７ａが復元される。復元途中において、未だ受信していない分割パッケージ＃に含まれるページに関してリンク情報は変更されていない。未だ受信していない分割パッケージ＃に含まれるページをユーザが選択した場合、リンク先は配信サーバ１００を指定するため、選択ページは配信サーバ１００から取得される。従って、ユーザは、アプリパッケージ７ａが完全に復元されるまで、アプリの実行を待たずに済む。
【００７８】
端末装置５にて、表示画面５ａに表示中のページから、ユーザが他のページを選択した場合のリンク処理について説明する。図９は、リンク処理を説明するための処理に係る処理シーケンスを示す図である。
【００７９】
図９において、端末装置５の入力検出部５５が、ユーザのリンククリックを検出すると（ステップＳ５２）、ブラウザエンジン５２は、対象リソース取得要求をリソース要求部５４に対して行う（ステップＳ３２）。対象リソース取得要求では、ユーザが選択したページ、画像等が対象リソースとして指定される。
【００８０】
リソース要求部５４は、対象リソース取得要求でアプリ格納領域５９が指定されている場合（ステップＳ３３）、アプリ格納領域５９から対象リソース取得要求で指定される対象リソースを取得するリソース取得処理を行う（ステップＳ３４）。
【００８１】
一方、対象リソース取得要求で配信サーバ１００が指定されている場合（ステップＳ３５）、リソース要求部５４は、配信サーバ１００へリソース取得要求を行う（ステップＳ３６）。リソース要求部５４は、残りの分割パッケージ４ｐを待つことなく、配信サーバ１００へリソース取得要求を行う。
【００８２】
配信サーバ１００では、リソース取得要求を端末装置５から受信すると、リソース転送部１０７は、分割リソース管理部１０６に対して、リソース取得要求を行う（ステップＳ３７）。
【００８３】
分割リソース管理部１０６は、リソース転送部１０７からのリソース取得要求に応じて、暫定処理領域４内の分割パッケージ４ｐからリソース取得要求で指定されるリソースのアドレス等のリソース情報を取得して（ステップＳ３８）、リソース転送部１０７にリソース情報を通知する（ステップＳ３９）。
【００８４】
リソース転送部１０７は、分割リソース管理部１０６からのリソース情報の通知に応じて、端末装置５に対して、リソースを送信する（ステップＳ４０）。
【００８５】
端末装置５では、リソース要求部５４が、リソースを受信すると、ブラウザエンジン５２にリソース情報を通知する（ステップＳ４１）。ブラウザエンジン５２は、リソース要求部５４からのリソース情報の通知に応じて、表示出力部５６に画面表示要求を行う（ステップＳ４２）。表示出力部５６は、ブラウザエンジン５２からの画面表示要求に応じて、リソースの画面表示を行う（ステップＳ４３）。
【００８６】
次に、配信サーバ１００及び端末装置５の各処理部で行われる処理フローについて図１０〜図１５で説明する。先ず、端末装置５での処理について説明する。端末装置５における、アプリをダウンロードしてトップページを表示するまでのアプリダウンロード処理について説明する。
【００８７】
図１０は、アプリダウンロード処理を説明するためのフローチャート図である。図１０において、パッケージダウンローダ５１は、配信サーバ１００にアプリパッケージ７ａの取得要求を行う（ステップＳ２０１）。
【００８８】
パッケージダウンローダ５１は、配信サーバ１００から最初のパッケージを受信すると、アプリ格納領域５９に保存して（ステップＳ２０２）、最初のパッケージからマニフェスト情報を取得する（ステップＳ２０３）。最初のパッケージは、アプリパッケージ７ａ又は先頭パッケージ＿０である。
【００８９】
パッケージダウンローダ５１は、ブラウザエンジン５２に最初のパッケージの実行指示を行う（ステップＳ２０４）。
【００９０】
そして、パッケージダウンローダ５１は、マニフェスト情報を参照して、アプリパッケージ７ａは分割されているか否かを判断する（ステップＳ２０５）。アプリパッケージ７ａが分割されていない場合、最初のパッケージはアプリパッケージ７ａであったと判断し、アプリダウンロード処理は終了する。
【００９１】
アプリパッケージ７ａがされている場合、パッケージダウンローダ５１は、分割ダウンロード処理を行う（ステップＳ２０６）。最初のパッケージは、先頭パッケージ＿０であると判断される。残りの分割パッケージ＿０及び分割パッケージ＿１がダウンロードされる。分割ダウンロード処理の終了後に、アプリダウンロード処理は終了する。
【００９２】
一方、ブラウザエンジン５２は、パッケージダウンローダ５１から最初のパッケージ（アプリパッケージ７ａ又は先頭パッケージ＿０）の実行指示を受け付けると（ステップＳ２０７）、ブラウザエンジン５２は、表示出力部５６を介して、表示画面５ａにトップページを表示する（ステップＳ２０８）。
【００９３】
図１１は、図１０のステップステップＳ２０６での分割ダウンロード処理を説明するための図である。図１１において、パッケージダウンローダ５１は、分割パッケージ＿１のダウンロードを行う（ステップＳ２１１）。
【００９４】
パッケージダウンローダ５１は、分割パッケージ＿１を先頭パッケージ＿０と合成して、先頭パッケージ＿０と入れ替える（ステップＳ２１２）。パッケージダウンローダ５１は、先頭パッケージ＿１内のリンク情報において、サーバリンクをローカルリンクに変更する（ステップＳ２１３）。
【００９５】
パッケージダウンローダ５１は、ブラウザエンジン５２に入替通知を行う（ステップＳ２１４）。そして、パッケージダウンローダ５１は、全ての分割パッケージ４ｐを受信したか否かを判断する（ステップＳ２１５）。全ての分割パッケージ４ｐを受信していない場合、パッケージダウンローダ５１は、ステップＳ２１１へと進み、全ての分割パッケージ４ｐを受信するまで、上述同様の処理を繰り返す。全ての分割パッケージ４ｐを受信した場合、パッケージダウンローダ５１は、分割ダウンロード処理を終了する。
【００９６】
一方、入替通知を受信したブラウザエンジン５２は、ページの再読み込みを行う（ステップＳ２１６）。ページの再読み込みによって、表示画面５ａに表示される情報は変化しないが、リンク先が、サーバリンクからローカルリンクに変更される場合がある。ページの再読み込みは、分割パッケージ４ｐの合成毎に行われ、アプリパッケージ７ａの復元後には、サーバリンクは全てローカルリンクに変更される。
【００９７】
次に、表示画面５ａに現在表示中のページからリンク先のページを表示するための、端末装置５側のリンク処理について説明する。図１２は、端末装置側のリンク処理を説明するためのフローチャート図である。
【００９８】
図１２において、入力検出部５５は、ユーザのリンククリックを検知したか否かを判断する（ステップＳ２２１）。リンククリックを検知していない場合、入力検出部５５は、所定間隔でステップＳ２２１を繰り返す。リンククリックを検出すると、入力検出部５５は、リンククリックをブラウザエンジン５２に通知する（ステップＳ２２２）。
【００９９】
入力検出部５５からリンククリック通知を受信すると、ブラウザエンジン５２は、リンククリック通知で指定される対象リソースを取得するために、対象リソース取得要求をリソース要求部５３に行う（ステップＳ２２３）。
【０１００】
ブラウザエンジン５２から対象リソース取得要求を受信すると、リソース要求部５３は、対象リソースがアプリ格納領域５９に有るか否かを判断する（ステップＳ２２４）。対象リソースがアプリ格納領域５９にある場合、リソース要求部５３は、配信サーバ１００に対象リソースを要求して、配信サーバ１００から対象リソースを取得する（ステップＳ２２５）。
【０１０１】
リソース要求部５３が、配信サーバ１００から取得した対象リソースをブラウザエンジン５２に返すと（ステップＳ２２６）、リンク処理は終了する。
【０１０２】
一方、ステップＳ２２４にて対象リソースが有る場合、リソース要求部５３は、アプリ格納領域５９から対象リソースを取得して、ブラウザエンジン５２に返す（ステップＳ２２７）。そして、リンク処理は終了する。
【０１０３】
次に、配信サーバ１００側での処理について説明する。図１３は、配信サーバにおけるアプリパッケージ取得処理を説明するためのフローチャート図である。
【０１０４】
図１３において、配信サーバ１００のパッケージ転送部１０１は、アプリパッケージ取得要求を受信したか否かを判断する（ステップＳ３０１）。リソース取得要求を受信した場合、パッケージ転送部１０１は、図１５へと進む。アプリパッケージ取得要求を受信した場合、パッケージ転送部１０１は、パッケージ作成部１０２にパッケージ作成要求を行う（ステップＳ３０２）。
【０１０５】
パッケージ作成部１０２は、リソース取得部１０３を介してアプリパッケージ７ａを取得する（ステップＳ３０３）。パッケージ作成部１０２は、アプリパッケージ７ａのサイズが一回の転送サイズの閾値以上であるか否かを判断する（ステップＳ３０４）。
【０１０６】
アプリパッケージ７ａのサイズが一回の転送サイズの閾値以上の場合、パッケージ作成部１０２は、分割決定部１０４にアプリパッケージ７ａの分割要求を行う（ステップＳ３０５）。パッケージ作成部１０２は、パッケージ転送部１０１を介して、分割された各分割パッケージ４ｐを送信する（ステップＳ３０６）。そして、アプリパッケージ取得処理は終了する。
【０１０７】
アプリパッケージ７ａのサイズが一回の転送サイズの閾値未満である場合、パッケージ作成部１０２は、パッケージ転送部１０１を介して、アプリパッケージ７ａを送信する（ステップＳ３０７）。そして、アプリパッケージ取得処理は終了する。
【０１０８】
図１４は、配信サーバでの分割処理を説明するためのフローチャート図である。図１４において、分割決定部１０４は、パッケージ作成部１０２からのパッケージの分割要求に応じて、リソース解析部１０５に対してリソースの解析要求を行う（ステップＳ３１１）。
【０１０９】
分割決定部１０４は、リソースサイズと、リソース解析部１０５から取得したリンク情報とに基づいて、分割単位を決定する（ステップＳ３１２）。そして、分割決定部１０４は、分割単位に基づいて、リンク情報を書き換える（ステップＳ３１３）。
【０１１０】
分割決定部１０４は、トップページを含む先頭パッケージ＿０と、分割パッケージ＿１等を含む残りの分割パッケージ４ｐとを生成し、分割リソース管理部１０６を介して、暫定処理領域４に格納する（ステップＳ３１４）。
【０１１１】
一方、リソース解析部１０３は、分割決定部１０４からのリソースの解析要求に応じて、マニフェスト情報からリンク情報を取得する（ステップＳ３２１）。そして、リソース解析部１０３は、分割決定部１０４へリンク情報を返す（ステップＳ３２２）。
【０１１２】
図１５は、配信サーバにおける分割パッケージ取得処理を説明するためのフローチャート図である。図１５において、パッケージ転送部１０１は、分割リソース管理部１０６に分割パッケージ取得要求を行う（ステップＳ３４１）。そして、パッケージ転送部１０１は、分割リソース管理部１０６から分割パッケージを取得すると、端末装置５へ送信する（ステップＳ３３２）。
【０１１３】
一方、パッケージ転送部１０１から分割パッケージ取得要求を受けると、分割リソース管理部１０６は、暫定処理領域４から分割パッケージ取得要求で指定される分割パッケージ＃を取得して、パッケージ転送部１０１へ返す（ステップＳ３４１）。
【０１１４】
分割リソース管理部１０６は、分割パッケージ＃の送信が完了する毎に、送信した分割パッケージ＃を暫定処理領域から削除する（ステップＳ３４２）。分割パッケージ４ｐのうり、分割パッケージ＿１の送信が完了すると、暫定処理領域４から分割パッケージ＿１が削除される。
【０１１５】
図１６は、配信サーバにおけるリンク処理を説明するためのフローチャート図である。図１６において、リソース転送部１０７は、端末装置５からリソース取得要求を受信すると、分割リソース管理部１０６へリソース取得要求を行う（ステップＳ３５１）。
【０１１６】
そして、分割リソース管理部１０６からリソース情報通知を受信すると、リソース管理部１０６は、リソース取得通知に基づいてリソースを端末装置５へ送信する（ステップＳ３５２）。
【０１１７】
一方、リソース転送部１０７からのリソース取得要求を受信すると、分割リソース管理部１０６は、リソース取得要求で指定されるリソース情報を暫定処理領域４の分割パッケージ４ｐから取得する（ステップＳ３６１）。
【０１１８】
そして、分割リソース管理部１０６は、分割パッケージ４ｐから取得したリソース情報をリソース転送部１０７に通知する（ステップＳ３６２）。
【０１１９】
次に、アプリパッケージ７ａのファイル構造について図１７〜図１９説明する。図１７は、アプリパッケージ７ａの分割前のファイル構造例を示す図である。図１７に示されるファイル構造８０において、分割前のアプリパッケージ７ａ（即ち、オリジナルアプリパッケージ）は、Manifest.jsonで示されるマニフェスト情報８ａ、Index.htmlで示されるトップページを表示するためのインデックスファイル８ｂ、トップページからリンクされるページファイル、スタイルシート、JavaScript（登録商標）、イメージファイル等を含むことを示している。
【０１２０】
インデックスファイル８ｂには、トップページを表示するためのソースコードが記述されている。ソースコード８ｂ−１は、主に、ヘッダ部８ｃ−１とボディ部８ｄ−１とを有する。
【０１２１】
少なくともヘッダ部８ｃ−１で指定されるファイルは先頭パッケージ＿０に含まれるように、アプリパッケージ７ａを分割する。また、ボディ部８ｄ−１内で指定されるファイルは、先頭パッケージ＿０以外の分割パッケージ＿１、分割パッケージ＿２等に含める。
【０１２２】
分割パッケージ＿１には、トップページからすぐにアクセスされる可能性のあるリソースを優先的に含める。分割パッケージ＿２には、分割パッケージ＿１から直接リンクされているリソースを優先的に含める。「優先的」は転送順に相当する。
【０１２３】
リソース解析部１０５は、図１７のファイル構造８０で指定されるインデックスファイル８ｂのソースコード８ｂ−１を解析する。リソース解析部１０５は、ヘッダ部８ｃ−１内の以下の記述
href="./css/jquery.mobile.css"
href=".css/jqm-docs.css
src="./js/jquery.mobile.js"
src=".js/main.js"
href=".css/style.css"
を参照することで、先頭パッケージ＿０に含めるファイルを決定する。
【０１２４】
また、トップページに表示するアイコンのイメージファイルは含めておくことが望ましい。従って、リソース解析部１０５は、ボディ部８ｄ−１から、
href="help/help.html"
を参照することで、アイコンのイメージファイルを特定する。
【０１２５】
次に、リソース解析部１０５は、トップページからリンクされるページのファイルを特定する。リソース解析部１０５は、ボディ部８ｄ−１から、
href="section1.html"
href="section2.html
href="help/help.html"
を参照することで、これらのファイルはトップページの次に参照される可能性が高く、優先度の高いファイルであると判断し、先頭パッケージ＿１に含めるファイルを決定する。
【０１２６】
そして、リソース解析部１０５は、上記以外の残りのファイルを先頭パッケージ＿２に含めることを決定する。残りのファイルを更に１パッケージで転送可能な閾値に基づいて、２以上に分割しても良い。
【０１２７】
上述した記述に含まれる「href」及び「src」で始まる記述がリンク情報に相当し、同様の判定方法によって優先度の高いファイルを決定する。ここでは、リンク情報を「href」及び「src」で始まる記述から取得する例で説明するが、リンク情報の取得方法は、この例に限定されない。リンク情報は、JavaScript（登録商標）のソース等から取得することもできる。
【０１２８】
リソース解析部１０５は、上述したように決定した分割単位を分割決定部１０４へ通知する。
【０１２９】
図６のステップＳ１８−４及び図１４のステップＳ３１２における分割決定部１０４によるリンク情報を書き換えることで、リソースを取得できるようにした第１のリソース取得方法について説明する。
【０１３０】
図１８は、第１のリソース取得方法における分割パッケージ毎のファイル構造例を示す図である。図１８では、分割単位のファイル構造９０、９１、及び９２を示す。また、先頭パッケージ＿０用のファイル構造９０のインデックスファイル８ｂのソースコード８ｂ−２を示す。
【０１３１】
各ファイル構造９０、９１、及び９２には、マニフェスト情報８ａが含まれる。インデックスファイル８ｂは、少なくとも先頭パッケージ＿０に含まれていることが望ましい。
【０１３２】
先頭パッケージ＿０用のファイル構造９０では、トップページの表示構成を形成する、分割前のヘッダ部８ｃ−１に含まれるスタイルシート及びJavaScript（登録商標）、更に、ボディ部８ｄ−１に含まれるアイコンのイメージファイル等が主に含まれる。先頭パッケージ＿１用のファイル構造９１では、主に、トップページからリンクされるファイルが含まれる。先頭パッケージ＿１用のファイル構造９２では、主に、先頭パッケージ＿０及び先頭パッケージ＿１以外のファイルが含まれる。
【０１３３】
ソースコード８ｂ−２において、ヘッダ部８ｃ−１は、分割前と同様である。ボディ部８ｄ−２では、図１８のソースコード８ｂ−１との違いにおいて、
href="section1.html"がhref="http://tempserver/1234/section1.html"に変更され、
href="section2.htmlがhref="http://tempserver/1234/section2.htmlに変更され、
href="help/help.html"がhref="http://tempserver/1234/help/help.html"に変更されている。「http://tempserver/1234/」は配信サーバ１００の暫定処理領域を示すＵＲＬ（Uniform Resource Locator）に相当する。
【０１３４】
このようにリンク先のリソースを、トップページを表示した端末装置５内のアプリ格納領域５９から取得するのではなく、配信サーバ１００からリソースを取得するように、リンク情報が書き換えられる。端末装置５のブラウザエンジン５２は、配信サーバ１００のリソースを指定したＵＲＬ（href="http://tempserver/1234/section1.html"等）を指定した要求を行うため、リソース要求部５４は、配信サーバ１００からリソースを取得する。
【０１３５】
このリンク情報の書き換えによって、端末装置５では、分割パッケージ＿１等のダウンロードが完了していない間は、リンク先のリソースを配信サーバ１００から取得することができる。従って、全ての分割パッケージ４ｐのダウンロードが未完であっても、アプリを動作させることができる。
【０１３６】
リンク情報を書き換える代わりに、マニフェスト情報８ａに代替ＵＲＬ記述{alternative_url: http://tempserver/1234/}を追加する第２のリソース取得方法を説明する。
【０１３７】
図１９は、第２のリソース取得方法における分割パッケージ毎のファイル構造例を示す図である。図１９では、分割単位のファイル構造９０、９１、及び９２は、第１のリソース取得方法（図１８）と同様である。一方、先頭パッケージ＿０用のファイル構造９０のインデックスファイル８ｂは、分割前のソースコード８ｂ−１（図１７）と同様である。
【０１３８】
この第２のリソース取得方法では、配信サーバ１００側において、図６のステップＳ１８−４及び図１４のステップＳ３１２にて、分割決定部１０４が、代替ＵＲＬ８ｈ（図２１）を追加したマニフェスト情報８ａ−２を作成する。
【０１３９】
端末装置５側では、ブラウザエンジン５２がアプリ格納領域５９内の先頭パッケージ＿０に含まれていない、section2.html等のリソースへアクセスしようとすると、リソース要求部５４が、マニフェスト情報８ａ−２内の代替ＵＲＬ８ｈ（図２１）を参照することで、自動的に配信サーバ１００へリソースを要求して取得する。
【０１４０】
次に、第１のリソース取得方法（図１８）におけるマニフェスト情報８ａのデータ構成について説明する。図２０は、第１のリソース取得方法におけるマニフェスト情報のデータ構成を示す図である。図２０に示すマニフェスト情報８ａは、アプリの基本情報８ｅ、開発者情報８ｆ、パッケージ情報８ｇ等の情報を有する。
【０１４１】
アプリの基本情報８ｅは、アプリの名称、アプリの説明、アプリのエントリポイント、アイコンファイルの場所等を含む。アプリのエントリポイントは、トップページのファイルパスと同義である。開発者情報８ｆは、アプリの開発者に関する情報を含む。
【０１４２】
パッケージ情報８ｇは、本実施例において追加される情報部分であり、標準言語、パッケージの属性情報等を含む。パッケージの属性情報は、更に、アプリパッケージ７ａの全体又は一部を示すパッケージ種別、パッケージを識別する一意のＩＤ、アプリパッケージ７ａの分割数等を含む。
【０１４３】
配信サーバ１００において、アプリパッケージ７ａが、先頭パッケージ＿０、分割パッケージ＿１、及び分割パッケージ＿２の３つに分割される場合、パッケージの属性では、パッケージ種別に一部分を示す"partial"が設定され、ＩＤには、部分パッケージのＩＤ（"parital_id"）として、1234"が設定される。また、分割数（"parital_size"）として"3"が設定される。
【０１４４】
第２のリソース取得方法（図１９）におけるマニフェスト情報８ａ−２のデータ構成について説明する。図２１は、第２のリソース取得方法におけるマニフェスト情報のデータ構成を示す図である。図２１に示すマニフェスト情報８ａ−２は、アプリの基本情報８ｅ、開発者情報８ｆ、パッケージ情報８ｇ等の情報を有する。
【０１４５】
アプリの基本情報８ｅ及び開発者情報８ｆは、図２０に示すマニフェスト情報８ａと同様である。
【０１４６】
パッケージ情報８ｇも、図２０に示すマニフェスト情報８ａと同様に、本実施例において追加される情報部分であり、標準言語、パッケージの属性情報等を含む。第２のリソース取得方法では、配信サーバ１００側において、分割決定部１０４は、パッケージ情報８ｇに、更に、代替ＵＲＬ８ｈを追加する。
【０１４７】
以下に、上述した実施例の種々の変形例について説明する。
【０１４８】
［第１変形例］
第１変形例では、単純な分割方法について説明する。図２２は、第１変形例における単純な分割方法を説明するための図である。
【０１４９】
図２２において、アプリパッケージ７ａのファイル構造８０に基づいて、階層構造を考慮せず、一回の転送サイズの閾値に基づいて、ディレクトリツリーの上から順番に、リソースを、先頭パッケージ７１−１、分割パッケージ７２、分割パッケージ７３、・・・と割り当てる。
【０１５０】
［第２変形例］
第２変形例では、パッケージダウンローダ５１が、アプリパッケージ取得要求時（図５のステップＳ１１及び図１０のステップＳ２０１）に、端末装置５が接続しているインターネット２に係る情報を付加して送信し、パッケージ作成部１０２が、インターネット２の状況に応じて最初に送るパッケージサイズを動的に決定する。
【０１５１】
図２３は、第２変形例におけるパッケージサイズの指定例を示す図である。図２３（Ａ）は、回線種別がＷｉＦｉ又はＬＴＥの場合のアプリパッケージ取得要求の例を示している。回線種別がＷｉＦｉ又はＬＴＥの場合、パッケージサイズの上限を２ＭＢとし、回線種別が３Ｇの場合、パッケージサイズの上限を１ＭＢとする。
【０１５２】
図２３（Ａ）より、回線種別「ＬＴＥ」の場合のアプリパッケージ取得要求は、
HTTP GET get_package?appId=1234&token=abcd&network=lte
で行う。このように変数「&network」で回線種別を指定すれば良い。
【０１５３】
又は、端末装置５が受信にかかる時間を指定して、配信サーバ１００のパッケージ生成部１０２が指定された時間に応じてパッケージサイズを決定しても良い。図２３（Ｂ）は、受信にかかる時間を指定の場合のアプリパッケージ取得要求の例を示している。この場合のアプリパッケージ取得要求は、
HTTP GET get_package?appId=1234&token=abcd&timelimit=10s
で行う。端末装置５が受信にかかる時間は、変数「&timelimit」で指定する。配信サーバ１００のパッケージ作成部１０２は、変数「&timelimit」で指定された時間が長い程、分割パッケージサイズを小さくする。
【０１５４】
［第３変形例］
リソース解析部１０５は、広告コンテンツと判断されるリソースを、アプリパッケージ７ａから削除する第３変形例について説明する。図２４は、第３変形例に係る構成例を示す図である。図２４において、配信サーバ１００は、記憶部１３０ａに、広告用設定情報１０５ａと、広告アドレスＤＢ１０５ｂとを更に記憶する。
【０１５５】
広告用設定情報１０５ａは、分割パッケージ４ｐに広告を含める又は含めないを指定する情報である。広告アドレスＤＢ１０５ｂは、既知の広告コンテンツのアドレス、アドレスを検出するための特定のタグ、リンク辞書等を管理するデータベースである。
【０１５６】
リソース解析部１０５は、広告用設定情報１０５ａが、「広告を含めない」と指定している場合（ステップＳ２０１）、インデックスファイル８ｂ−１で指定されるリソースのＵＲＬが、広告アドレスＤＢ１０５ｂで管理されている広告サーバのＵＲＬを含むか否かを判断する（ステップＳ２０２）。
【０１５７】
そして、リソース解析部１０５は、インデックスファイル８ｂ−１内のリソースのＵＲＬが広告サーバのＵＲＬを含む場合、インデックスファイル８ｂ−１からリソースのＵＲＬに係る記述を削除する。記述の削除では、コメント記述への書き換えでも良い。
【０１５８】
［第４変形例］
第４変形例では、アプリパッケージ７ａが企業内で利用される場合、予めアクセス不可と判断されるコンテンツ、アクセス不可のコンテンツを提供するサイトをアクセス不可ＤＢ１０５ｄで管理して、アプリパッケージ７ａの分割パッケージ４ｐに含めないようにする。
【０１５９】
図２５は、第４変形例に係る構成例を示す図である。図２５において、配信サーバ１００は、記憶部１３０ａに、アクセス制限用設定情報１０５ｃと、アクセス不可ＤＢ１０５ｄとを更に記憶する。
【０１６０】
アクセス制限用設定情報１０５ｃは、分割パッケージ４ｐにアクセス制限のある情報を含める又は含めないを指定する情報である。アクセス不可ＤＢ１０５ｄは、アクセス不可のリソースのＵＲＬ等を管理するデータベースである。
【０１６１】
リソース解析部１０５は、アクセス制限用設定情報１０５ｃが、「アクセス制限のある情報を含めない」と指定している場合（ステップＳ２１１）、インデックスファイル８ｂ−１で指定されるリソースのＵＲＬが、アクセス不可ＤＢ１０５ｄで管理されているアクセス制限のある情報のＵＲＬを含むか否かを判断する（ステップＳ２２２）。
【０１６２】
そして、リソース解析部１０５は、インデックスファイル８ｂ−１内のリソースのＵＲＬがアクセス制限のある情報のＵＲＬを含む場合、インデックスファイル８ｂ−１からリソースのＵＲＬに係る記述を削除する。記述の削除では、コメント記述への書き換えでも良い。
【０１６３】
［第５変形例］
アクセスが頻発するリソース（即ち、コンテンツ）は、分割パッケージ４ｐのうち先頭パッケージ＿０に優先的に含める第５変形例について説明する。図２６は、第５変形例における機能構成例を示す図である。図４に示す機能構成との違いは、配信サーバ１００と端末装置５とでアクセスログを収集するようにしたことである。
【０１６４】
配信サーバ１００は、図４に示す機能構成に加えて、アクセスログ収集部１１０を有し、記憶部１３０ａに更にアクセスログＤＢ１１９を記憶する。また、端末装置５も、図４に示す機能構成に加えて、アクセスログ収集部６０を有し、記憶部１３０ｂに更にアクセスログＤＢ５９を記憶する。
【０１６５】
端末装置５において、アクセスログ収集部６０は、ブラウザエンジン５２及びリソース要求部５４の夫々からのログ記録要求に応じて、リソースに係るログ情報をアクセスログＤＢ６９に記録する。アクセスログ収集部６０は、ログ情報を配信サーバ１００へ所定間隔で転送する。
【０１６６】
端末装置５では、アプリ格納領域５６においてアクセスされたリソース、配信サーバ１００へリソース取得要求を行ったリソースに関するログ情報がアクセスログＤＢ６９に記録される。
【０１６７】
配信サーバ１００では、アクセスログ収集部１１０が、端末装置５から受信したログ情報をアクセスログＤＢ１１９に記憶する。また、アクセスログ収集部１１０は、リソース毎のアクセス頻度の統計情報を作成し、パッケージ作成部１０２からの要求に応じて、統計情報を提供する。
【０１６８】
又は、配信サーバ１００において、リソース転送部１０７からのログ記録要求に応じてリソースに係るログ情報を記録しても良い。リソース転送部１０７からのログ情報を記録することで、リソース取得要求の多い、少ない、又は、リソース取得要求の無い分割パッケージ４ｐを把握することができる。
【０１６９】
パッケージ作成部１０２は、アクセスログ収集部１１０からの統計情報に基づいて、各分割パッケージ４ｐに含めるリソースを決めることができる。パッケージ作成部１０２は、アクセスが頻発するリソース（即ち、コンテンツ）を、先頭パッケージ＿０に含めるように分割パッケージ４ｐを作成する。
【０１７０】
端末装置５へ新たにアプリパッケージ７ａを分割して送信する際には、効率的にリソースを選択することができる。端末装置５では、リソース取得に係るデータ転送処理等を削減することができる。また、ユーザが指定したリソースを即座に表示されることができるため、ユーザの利便性も向上する。
【０１７１】
図２７は、端末装置のアクセスログＤＢのデータ構成例を示す図である。図２７において、端末装置５のアクセスログＤＢ６９は、アプリＩＤ、時刻、分割状態、起動状態、アクセスしたリソース、リソース種別等の項目を有する。アクセスログＤＢ６９は、アクセスログ収集部６０によって配信サーバ装置１００へ送信され、アクセスログ収集部１１０が解析する。
【０１７２】
アプリＩＤは、アプリパッケージ７ａを識別するための識別子である。時刻は、分割状態、起動状態、リソースアクセス等のイベントが発生した時刻を示す。この例では、時刻は、年/月/日:時:分:秒:ミリ秒の形式で示されている。
【０１７３】
分割状態は、ダウンロードした分割パッケージ４ｐを特定する分割パッケージ番号の一覧を示す。起動状態は、アプリが起動したか、終了したかを示す。アクセスしたリソースは、アプリ実行中にアクセスのあったリソースを示す。
【０１７４】
リソース種別は、端末装置５内の記憶部１３０ｂのアプリ格納領域５９へのローカルなアクセスか、配信サーバ１００へのリモートなアクセスかを示す。ローカルなアクセスの場合、「Ｌ」を示す。リモートなアクセスの場合、「Ｒ」を示す。
【０１７５】
図２７に示すデータ例において、アプリＩＤ「１２３４」に関して、分割パッケージ番号「１」（先頭パッケージ＿０に相当）のみを取得している状態で、リソース種別が「Ｒ」を示すレコード６９ａが存在する。レコード６９ａのアクセスしたリソース「example4.html」は、先頭パッケージ＿０にないリソースへのアクセスが発生したことを示している。
【０１７６】
第５変形例では、次回のアプリパッケージ取得要求に対しては、リソース「example4.html」を先頭パッケージ＿０に含められる。従って、端末装置５では、早期にリソース「example4.html」を取得しておくことが可能となるため、効率的にリソースへのアクセスを行うことができる。
【０１７７】
［第６変形例］
第６変形例では、図２６に示す第５変形例における機能構成において、先頭パッケージ＿０に含めたにも関わらず、アクセスされなかったリソース（即ち、コンテンツ）は、次回のアプリパッケージ取得要求時には、先頭パッケージ＿０に含めない。
【０１７８】
図２７に例示するアクセスログＤＢ６９内の分割状態「１」のみを示すレコードにおいて、先頭パッケージ＿０に含めたにも関わらず、アクセスされないリソースが存在する場合には、パッケージ作成部１０２は、次回のアプリパッケージ取得要求に対しては、先頭パッケージ＿０に含めない。パッケージ作成部１０２は、先頭パッケージ＿０以外の分割パッケージ４ｐに含める。
【０１７９】
第６変形例によって、アクセス頻度の少ないリソースを後回しに転送することができる。
【０１８０】
［第７変形例］
第７変形例では、先頭パッケージ＿０の後の２番目以降の分割パッケージ４ｐの送信途中で、残りの分割パッケージ４ｐ内にあるリソースへの取得要求が有った場合、要求されたリソースを含む分割パッケージ４ｐを先に送信して実行させる。
【０１８１】
以下に説明する第１の方法又は第２の方法によって第７変形例を実現することができる。先ず、第１の方法について説明する。図２８は、第７変形例における分割パッケージを送信する第１の方法を説明するための図である。図２８中、説明に必要な処理部等を示し、他を省略している。また、アプリパッケージ７ａは、先頭パッケージ＿０、分割パッケージ＿１、及び分割パッケージ＿２で分割転送されるとする。
【０１８２】
図２８において、先頭パッケージ＿０のダウンロード後に表示画面５ａに表示されたトップページから、ユーザがリソースを要求する操作を行った場合で説明する。分割パッケージ＿１及び分割パッケージ＿２をダウンロードしていない状態で、分割パッケージ＿２に含まれるリソースが、端末装置５のリソース要求部５４から、配信サーバ１００のリソース転送部１０７へ要求されたとする（ステップＳ４０１）。
【０１８３】
リソース転送部１０７は、要求のあったリソースをリソース要求部５４に送信する際、分割パッケージ情報５４ａを付加して送信する（ステップＳ４０２）。分割パッケージ情報５４ａには、アプリＩＤ、分割パッケージ＃等の情報が含まれる。分割パッケージ＃は、リソースが含まれる分割パッケージ４ｐを特定する番号である。
【０１８４】
リソース要求部５４は、ステップＳ４０２で受信した分割パッケージ情報５４ａをパッケージダウンローダ５１に通知する（ステップＳ４０３）。
【０１８５】
パッケージダウンローダ５１は、分割パッケージ情報５４ａに基づいてパッケージ転送部１０１に分割パッケージ＃取得要求を行う（ステップＳ４０４）。そして、パッケージダウンローダ５１は、配信サーバ１００からステップＳ４０１で要求したリソースを含む分割パッケージ４ｐを取得する（ステップＳ４０５）。パッケージダウンローダ５１がダウンロードした分割パッケージ４ｐは、アプリ格納領域に格納される。
【０１８６】
次に第２の方法について説明する。図２９は、第７変形例における分割パッケージを送信する第２の方法を説明するための図である。図２９中、説明に必要な処理部等を示し、他を省略している。また、アプリパッケージ７ａは、先頭パッケージ＿０、分割パッケージ＿１、及び分割パッケージ＿２で分割転送されるとする。
【０１８７】
図２９において、先頭パッケージ＿０のダウンロード後に表示画面５ａに表示されたトップページから、ユーザがリソースを要求する操作を行った場合で説明する。分割パッケージ＿１及び分割パッケージ＿２をダウンロードしていない状態で、分割パッケージ＿２に含まれるリソースが、端末装置５のリソース要求部５４から、配信サーバ１００のリソース転送部１０７へ要求される（ステップＳ４１１）。
【０１８８】
配信サーバ１００のリソース転送部１０７は、要求のあったリソースを端末装置５のリソース要求部５４に送信する（ステップＳ４１２）。ステップＳ４１２において、リソース転送部１０７は、分割パッケージ情報５４ａをパッケージ転送部１０１へも通知する。
【０１８９】
分割パッケージ情報５４ａには、アプリＩＤ、分割パッケージ＃等の情報が含まれる。分割パッケージ＃は、リソースが含まれる分割パッケージ４ｐを特定する番号である。
【０１９０】
一方、端末装置５のパッケージダウンローダ５１は、分割パッケージ＃取得要求を配信サーバ１００に対して行う（ステップＳ４１３）。
【０１９１】
パッケージ転送部１０１は、分割パッケージ＃取得要求に応じて送信する分割パッケージ４ｐにステップＳ４１２でリソース転送部１０７から通知された分割パッケージ情報５４ａを付加して、端末装置５のパッケージダウンローダ５１に送信する（ステップＳ４１３）。
【０１９２】
パッケージダウンローダ５１は、配信サーバ１００から受信した分割パッケージ情報５４ａに基づいて、パッケージ転送部１０１に分割パッケージ＃取得要求を送信し（ステップＳ４１５）、ステップＳ４１１で要求したリソースを含む分割パッケージ４ｐを取得する（ステップＳ４１６）。パッケージダウンローダ５１がダウンロードした分割パッケージ４ｐは、アプリ格納領域に格納される。
【０１９３】
上述した第１の方法及び第２の方法において、リソース転送部１０７がリソース取得要求を受信した時点で、パッケージ作成部１０２に対して、再パッケージ化要求を行っても良い。この場合、パッケージ作成部１０２は、再パッケージ化要求に応じて、リソース取得要求で指定されたリソースを含む分割パッケージを最小サイズで再作成して、残りの分割パッケージ４ｐを再構成する。
【０１９４】
［第８変形例］
第８変形例では、複数のアプリを配信する場合の分割パッケージ４ｐの送信方法について説明する。
【０１９５】
方法１．端末装置５のパッケージダウンローダ５１が３つのアプリパッケージａｐｐ１、ａｐｐ２、及びａｐｐ３のアプリパッケージ取得要求を同時に行う場合、パッケージダウンローダ５１は、各アプリパッケージａｐｐ１、ａｐｐ２、及びａｐｐ３の先頭パッケージ＿０を先に要求する。
【０１９６】
方法２．端末装置５のユーザがアプリパッケージａｐｐ２を最初に起動したら、ブラウザエンジン５２がアプリパッケージａｐｐ２の起動を検出したことをパッケージダウンローダ５１に通知し、パッケージダウンローダ５１はアプリパッケージａｐｐ２の分割パッケージ４ｐを優先して送るように配信サーバ１００のパッケージ転送部１０１に依頼する。
【０１９７】
この場合、パッケージ転送部１０１は、アプリパッケージａｐｐ１及びａｐｐ３はすぐに使用される可能性は少ないと判断して、アプリパッケージａｐｐ１及びａｐｐ３の分割単位を大きくするようパッケージ作成部１０２にパッケージ再作成を依頼する。
【０１９８】
各分割パッケージ４ｐには本来のリソース以外の付加情報が追加されるため、分割単位が小さくなるほど、１つのアプリパッケージ７ａに対する複数の分割パッケージ４ｐの合計サイズは大きくなる。パッケージ作成部１０２は、アプリパッケージａｐｐ１及びａｐｐ３の分割パッケージ４ｐを再作成することで、組み立ての手間や送信量を減らすことができる。
【０１９９】
方法３．複数のアプリの集合をグループとして管理しており、かつ、各アプリの起動順が予め決まっている場合、最初に起動されるアプリは細かく分割し、残りのアプリは大きく分割しても良い。
【０２００】
図３０は、第８変形例における方法３に係る機能構成例を示す図である。図３０において、配信サーバ１００は、図４又は図２６の構成に加えて、アプリグループ管理部１２０を更に有する。また、記憶部１３０ａには、アプリグループリスト１２９が記憶される。端末装置５も同様に、図４又は図２６の構成に加えて、アプリグループ取得部７０を更に有する。図３０では、第８変形例の説明に必要な部分を示している。
【０２０１】
配信サーバ１００のアプリグループ管理部１２０は、端末装置５からのアプリグループ情報取得要求に応じて、端末装置５へ同じグループのアプリを端末装置５へ通知する。
【０２０２】
アプリグループリスト１２９は、アプリパッケージapp1、app2、app3等のグループ化と、グループ内での起動順を管理する。起動順は、「１」が最も高い優先度を示し、数値が大きくなるほど、優先度が低いことを示す。
【０２０３】
図３０の例では、アプリパッケージapp1、app2、app3が、グループＧ１でグループ化されている。そして、グループＧ１における起動順は、アプリパッケージapp2が１番目、アプリパッケージapp1が２番目、アプリパッケージapp3が３番目である。
【０２０４】
端末装置５のアプリグループ取得部７０は、配信サーバ１００からアプリグループ情報を取得する。
【０２０５】
端末装置５において、アプリグループ取得部７０は、配信サーバ１００にアプリグループ情報取得要求を行う（ステップＳ４３１）。
【０２０６】
配信サーバ１００において、アプリグループ管理部１２０は、アプリグループリスト１２９を参照して、グループＧ１のアプリ名を示すアプリグループ情報を作成して、端末装置５のアプリグループ取得部７０に送信する（ステップＳ４３２）。アプリグループ管理部１２０は、グループＧ１内で起動順が「１」のアプリ名に対応付けて「すぐ起動」を示す情報をアプリグループ情報に含める。
【０２０７】
端末装置５において、アプリグループ取得部７０は、アプリグループ情報で指定されるアプリ名で、パッケージダウンローダ５１に対してアプリパッケージ取得要求を行う（ステップＳ４３３）。また、アプリグループ取得部７０は、アプリグループ情報に基づいて、起動順位が「すぐ起動」を示すアプリ名をブラウザエンジン５２に対して起動要求する（ステップＳ４３４）。
【０２０８】
ブラウザエンジン５２は、アプリグループ取得部７０からの起動要求に応じて、パッケージダウンローダ５１にアプリパッケージａｐｐ２の起動を検出したことを通知する（ステップＳ４３５）。パッケージダウンローダ５１は、アプリグループ取得部７０からのアプリパッケージ取得要求で指定されるアプリパッケージａｐｐ１、ａｐｐ２、及びａｐｐ３のうち、ブラウザエンジン５２から通知されたアプリパッケージａｐｐ２の取得要求を行う（ステップＳ４３６）。
【０２０９】
一方、配信サーバ１００では、アプリグループ管理部１２０は、アプリグループ情報を端末装置５のアプリグループ取得部７０に送信した後（ステップＳ４３２）、パッケージ作成部１０２にグループＧ１のアプリパッケージａｐｐ１、ａｐｐ２、及びａｐｐ３の分割要求を行う（ステップＳ４４１）。分割要求によって、グループＩＤを通知すればよい。
【０２１０】
パッケージ作成部１０２は、アプリパッケージリスト１２９内のグループＧ１の起動順に基づいて、起動順が１番目のアプリパッケージapp2の先頭パッケージ＿０のサイズを小さくし、起動順位の低いパッケージapp1及びapp3の先頭パッケージ＿０のサイズは、アプリパッケージapp2の先頭パッケージ＿０のサイズより大きく分割する（ステップＳ４４２）。このように、起動順位が高い程、小さく分割することで、端末装置５は早くダウンロードを完了して起動することができる。
【０２１１】
パッケージ作成部１０２は、パッケージ転送部１０１に対して先頭パッケージ情報通知を行う（ステップＳ４４３）。パッケージ転送部１０１は、先頭パッケージ情報通知に基づいて、分割パッケージ４ｐを端末装置５に送信する（ステップＳ４４４）。
【０２１２】
上述した方法３において、アプリパッケージapp1、app2、及びapp3の起動順が設定されていない場合、端末装置５にてグループＧ１内のアプリアイコンの一覧を最初に表示する可能性が高い。従って、アプリアイコンの表示を先ず行えるようにする。パッケージ作成部１０２は、グループＧ１内の各パッケージの先頭パッケージ＿０のサイズを小さくして作成して、上述した方法１を行う。
【０２１３】
端末装置５は、グループＧ１内の全てのアプリパッケージapp1、app2、及びapp3の先頭パッケージ＿０をダウンロードの初期の段階で取得できるため、アプリアイコンの一覧表示を表示画面５ａに即座に行うことができる。
【０２１４】
また、配信サーバ１００では、端末装置５から複数のアプリパッケージ取得要求を同時に受信した場合であっても効率的に転送できることが望ましい。従って、パッケージ転送部１０１は、起動順位の高いアプリパッケージの分割パッケージ４ｐに対しては、多くの帯域を割り当てて送信しても良い。一例として、起動順位の高いアプリパッケージapp2に対しては１Ｍｂｐｓを割り当て、起動順位の低いアプリパッケージapp3に対しては、２５６Ｋｂｐｓを割り当てる。
【０２１５】
図３０の構成に更に、配信サーバ１００においてパッケージ転送部１０１はタイマーを有し、また、端末装置５においてアプリの起動を配信サーバ１００に通知する。
【０２１６】
この場合、パッケージ転送部１０１は、最初の分割パッケージ４ｐを送信してからアプリの起動の通知までの時間経過を監視し、一定時間たっても通知を受信しなければ、パッケージ作成部１０２に対して、残りの分割パッケージ４ｐのサイズを大きくするためにパッケージ再作成要求を行う。
【０２１７】
端末装置５におけるアプリの起動状況に応じた分割パッケージ４ｐのデータ転送を行うことができる。
【０２１８】
［第９変形例］
第９変形例では、端末装置５においてパッケージダウンローダ５１が、取得した分割パッケージ４ｐをＺｉｐ解凍せずに、分割パッケージ４ｐの情報を取得可能とする。ＵＲＬの名前規則で分割し、分割ＵＲＬを判別可能にする。
【０２１９】
図３１は、第９変形例を説明するための図である。図３１において、パッケージダウンローダ５１は、アプリパッケージ取得要求を行う（ステップＳ４５１）。アプリパッケージ取得要求は、例えば、
HTTP GET get_package?appId=1234&token=abcd
で行う。
【０２２０】
パッケージ転送部１０１は、アプリパッケージ取得要求に対して、マルチパート形式で先頭パッケージ＿０の他にpartial_idとpartial_sizeとを含めて送信する（ステップＳ４５２）。partial_idは、分割パッケージ番号を示す。partial_sizeは、分割パッケージのサイズを示す。
【０２２１】
パッケージダウンローダ５１は、パッケージ転送部１０１から送られてきたpartial_idとpartial_sizeとを参照して、次に要求する分割パッケージ４ｐを指定した分割パッケージ取得要求を行う（ステップＳ４５３）。パッケージ転送部１０１は、分割パッケージ取得要求で指定される分割パッケージ４ｐを送信する（ステップＳ４５４）。
【０２２２】
パッケージ転送部１０１は、分割パッケージ４ｐを送信する際に、次の分割パッケージ４ｐのpartial_idとpartial_sizeとを含めて送信することで、パッケージダウンローダ５１は、分割パッケージ４ｐをＺｉｐ解凍せずに、次の分割パッケージ４ｐの取得要求を行うことができる。これにより、アプリの実行を高速化することができる。
【０２２３】
［第１０変形例］
第１０変形例では、通常のＷｅｂページを加工して端末装置５へ送信し、端末装置５ではPackaged Web Appとして管理できるようにする。
【０２２４】
図３２は、第１０変形例に係る機能構成例を示す図である。図３２において、配信サーバ１００は、図４又は図２６の構成に加えて、パッケージ変換部１４０を更に有する。また、記憶部１３０ａには、ＷｅｂページＤＢ１４９が格納される。端末装置５は、図４又は図２６の構成であればよい。図３２では、第１０変形例の説明に必要な部分を示している。
【０２２５】
ユーザが入力装置１４ａを介して特定のＷｅｂページへのリンクをクリックすると、入力検出部５５は、ブラウザエンジン５２にＷｅｂページへのリンクのクリックを通知する（ステップＳ１５１）。
【０２２６】
ブラウザエンジン５２は、リソース要求部５４に対して、通常Ｗｅｂページ取得要求を行う（ステップＳ４５２）。リソース要求部５４は、配信サーバ１００のリソース転送部１０７へリソース取得要求を行う（ステップＳ４５３）。リソース取得要求は、ユーザがクリックしたリソースを指定する。
【０２２７】
配信サーバ１００において、リソース転送部１０７は、ＷｅｂページＤＢ１４９からリソース取得要求で指定されるリソースを取得し（ステップＳ４５４）、パッケージ変換部１４１に対して、取得したリソースを含むＷｅｂページ一式をパッケージ形式に変換するために変換要求を行う（ステップＳ４５５）。
【０２２８】
パッケージ変換部１４０は、リソース転送部１０７からのリソース取得要求に応じて、ＷｅｂページＤＢ１４９から取得したリソース一式をパッケージ化してアプリパッケージ７ａを生成し、アプリパッケージ７ａをアプリ配信領域３に格納する（ステップＳ４５７）。
【０２２９】
そして、パッケージ変換部１４０は、生成したアプリパッケージ７ａのパッケージ情報をリソース転送部１０７に通知する（ステップＳ４５６）。パッケージ情報は、アプリＩＤと、アプリパッケージ７ａを格納した格納場所を示す格納情報とを含む。
【０２３０】
リソース転送部１０７は、ステップＳ４５４で取得したリソースに、ステップＳ４５６でパッケージ変換部１４０から通知されたパッケージ情報を付加して、端末装置５のリソース要求部５４に送信する（ステップＳ４５８）。
【０２３１】
端末装置５において、リソース要求部５４は、配信サーバ１００から提供されたリソースをブラウザエンジン５２へ提供する（ステップＳ４５９）。ブラウザエンジン５２は、リソース要求部５４からリソースを受け付けると（ステップＳ４５９）、表示出力部５６を介してユーザインタフェース１５ｂにリソースのページを表示させる（ステップＳ４６０）。
【０２３２】
また、リソース要求部５４は、パッケージダウンローダ５１に対して、パッケージ情報と共に分割パッケージ取得要求を行う（ステップＳ４６１）。
【０２３３】
パッケージダウンローダ５１は、配信サーバ１００のパッケージ転送部１０１に対して、分割パッケージ取得要求を行う（ステップＳ４６２）。以後、図５〜図８で説明したように、パッケージダウンローダ５１とパッケージ転送部１０１との間で、アプリパッケージ７ａの分割パッケージ４ｐの要求及び取得が行われる（ステップＳ４６３）。
【０２３４】
上述したように、本実施例、及び第１から第１０変形例により、サイズの大きなアプリパッケージ（Packaged Web App）７ａであってもユーザは長い時間待たされることなく、すぐにアプリを実行させることができ、かつ、実行を止めることなく、アプリを利用することができる。
【０２３５】
また、残り分割パッケージ４ｐが未受信であっても、リソースを配信サーバ１００から取得することができるため、ユーザは処理を中断することなくアプリを利用することができる
更に、本実施例、及び第１から第１０変形例は、端末装置５のブラウザの機能に影響を与えることがないため、実装を容易に行うことができる。
【０２３６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０２３７】
以上の実施例及び第１から第１０変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによって実行される配信方法であって、
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する
ことを特徴とする配信方法。
（付記２）
前記コンピュータは、
前記プログラムを起動できる先行部分と、該先行部分以外の１以上の残り部分とに分割し、
前記先行部分内のリンク情報を配信サーバを指定する情報に書き換えて、
前記先行部分を前記１以上の残り部分より優先して前記端末装置へ転送する、
ことを特徴とする付記１記載の配信方法。
（付記３）
前記コンピュータは、
前記端末装置で起動した先行部分からのリソース取得要求に応じてリソースを送信する
ことを特徴とする付記２記載の配信方法。
（付記４）
前記コンピュータは、
前記プログラムのファイル構造に基づいて分割する
ことを特徴とする付記２又は３記載の配信方法。
（付記５）
前記ネットワークの状況に係る情報が付加された前記プログラムの取得要求を受信すると、該情報に基づいて、パッケージサイズを決定する
ことを特徴とする付記２又は３記載の配信方法。
（付記６）
前記情報は、回線種別又は前記端末装置が受信に掛る時間を示すことを特徴とする付記２又は３記載の配信方法。
（付記７）
予め定められた特定情報を前記プログラムから削除する
ことを特徴とする付記２乃至４のいずれか一項記載の配信方法。
（付記８）
広告に関する広告情報を記憶した広告アドレスＤＢを参照し、前記プログラムに含まれる前記広告情報を削除する
ことを特徴とする付記７記載の配信方法。
（付記９）
アクセス制限のある情報を記憶したアクセス不可ＤＢを参照し、前記プログラムに含まれる前記情報を削除する
ことを特徴とする付記７又は８記載の配信方法。
（付記１０）
前記端末装置からの前記リソース取得要求の頻度に基づいて、前記リソースを前記先行部分又は前記残り部分のいずれに含めるかを決定する
ことを特徴とする付記３項記載の配信方法。
（付記１１）
前記リソース取得要求の頻度に基づいて、前記リソース取得要求が頻発するリソースを前記先行部分に優先的に含める
ことを特徴とする付記１０項記載の配信方法。
（付記１２）
前記リソース取得要求の頻度に基づいて、所定間隔の間に前記先行部分に含めたリソースに対する前記リソース要求が無い場合は、次回の送信では、前記残り部分に含める
ことを特徴とする付記１０項記載の配信方法。
（付記１３）
前記残り部分の送信途中で、前記リソース取得要求を受信した場合、前記リソースに、該リソースを含む残り部分に係る部分情報を付加して送信する
ことを特徴とする付記３記載の配信方法。
（付記１４）
前記残り部分の送信途中で前記リソース取得要求を受信した場合、前記リソース取得要求に応じて前記リソースを前記端末装置に送信し、
前記端末装置からの次の残り部分の取得要求に応じて、該取得要求で指定される該次の残り部分に、前記リソースを含む残り部分に係る部分情報を付加して送信する
ことを特徴とする付記３記載の配信方法。
（付記１５）
前記リソースを含む含む残り部分を最小サイズで作成することを特徴とする付記１３又は１４記載の配信方法。
（付記１６）
前記端末装置へ複数のプログラムの取得要求に対して、各プログラムの前記先行部分を優先して送信する
ことを特徴とする付記１乃至１５のいずれか一項記載の配信方法。
（付記１７）
前記端末装置からグループ情報取得要求を受信すると、前記複数のプログラムのグループ化を管理し、グループ内での該複数のプログラムの起動順を示すグループ管理ＤＢを参照し、
前記グループのうち、すぐに起動するプログラムを示すグループ情報を前記端末装置へ送信し、前記端末装置に前記すぐに起動するプログラムの前記先行部分の取得要求を優先的に行わせる
ことを特徴とする付記１６記載の配信方法。
（付記１８）
前記グループ内の前記起動順に基づいて、起動順位が高い程、前記先行部分のサイズを小さくする
ことを特徴とする付記１６記載の配信方法。
（付記１９）
前記グループ内の前記起動順に基づいて、起動順位が高い程、多くの帯域を割り当てる
ことを特徴とする付記１６記載の配信方法。
（付記２０）
最初の先行部分を送信後からの時間経過を監視し、一定時間経っても該最初の先行部分に係る前記プログラムを起動しなければ、作成されている残り部分のサイズを大きくして該残り部分を再作成する
ことを特徴とする付記１６記載の配信方法。
（付記２１）
コンピュータによって実行されるリソース取得方法であって、
ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードし、
前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示し、
前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得する、
ことを特徴とするリソース取得方法。
（付記２２）
前記リソースを含む分割部分がダウンロード完了すると、前記先行部分のリンク情報をダウンロードした該分割部分に書き換えて、前記ページを再表示させる
ことを特徴とする付記２１記載のリソース取得方法。
（付記２３）
前記ネットワークの状況に係る情報を付加した前記プログラムの取得要求を前記配信サーバに行う
ことを特徴とする付記２１又は２２記載のリソース取得方法。
（付記２４）
前記情報は、回線種別又は前記端末装置が受信に掛る時間を示すことを特徴とする付記２２記載の配信方法。
（付記２５）
前記リソースの取得要求により、前記配信サーバから該リソースと該リソースを含む残り部分に係る部分情報とを受信し、
前記部分情報に基づいて、前記リソースを含む分割部分の取得要求を前記配信サーバに対して行う
ことを特徴とする付記２１記載のリソース取得方法。
（付記２６）
前記リソースの取得要求により、前記配信サーバから該リソースを受信し、
前記分割部分の取得要求に対して、前記配信サーバから該分割部分と、前記リソースを含む分割部分に係る部分情報とを受信し、
前記部分情報で指定される前記リソースを含む分割部分の取得要求を優先して行う
ことを特徴とする付記２１記載のリソース取得方法。
（付記２７）
前記配信サーバへの複数のプログラムの取得要求に対して、該配信サーバから各プログラムの前記先行部分を優先して受信する
ことを特徴とする付記２１乃至２６のいずれか一項記載のリソース取得方法。
（付記２８）
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する
ことを特徴とする配信サーバ。
（付記２９）
前記プログラムを起動できる先行部分と、該先行部分以外の１以上の残り部分とへの分割を解析する解析部と、
前記先行部分内のリンク情報を配信サーバを指定する情報に書き換える分割決定部と、
前記先行部分を前記１以上の残り部分より優先して前記端末装置へ転送する転送部と
を有することを特徴とする付記２８記載の配信サーバ。
（付記３０）
ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードするダウンロード部と、
前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示するブラウザエンジンと、
前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得するリソース要求部と、
を有することを特徴とする端末装置。
（付記３１）
ネットワークを介して接続される端末装置からのプログラムの取得要求に応じて、該プログラムを分割して、該端末装置へ転送する
処理をコンピュータに実行させることを特徴とする配信プログラム。
（付記３２）
前記プログラムを起動できる先行部分と、該先行部分以外の１以上の残り部分とに分割し、
前記先行部分内のリンク情報を配信サーバを指定する情報に書き換えて、
前記先行部分を前記１以上の残り部分より優先して前記端末装置へ転送する、
処理を前記コンピュータに実行させることを特徴とする付記３１記載の配信プログラム。
（付記３３）
ネットワークを介して接続される配信サーバにプログラムの取得要求を行うことで、該配信サーバから該プログラムを分割した複数の分割部分をダウンロードし、
前記複数の分割部分のうち、前記配信サーバから先行してダウンロードした先行部分でページを表示画面に表示し、
前記ページからリンクされるリソースの取得要求に対して、該リソースを含む分割部分がダウンロード完了していない場合、前記配信サーバから取得する、
ことを特徴とするリソース取得プログラム。
【符号の説明】
【０２３８】
３              アプリ配信領域
４              暫定処理領域
４ｐ            分割パッケージ
５              端末装置
５ａ            表示画面
７ａ            アプリパッケージ
１１ａ、１１ｂ  ＣＰＵ
１２ａ、１２ｂ  主記憶装置
１３ａ、１３ｂ  補助記憶装置
１４ａ          入力装置
１５ａ          表示装置
１５ｂ          ユーザインタフェース
１６ａ          出力装置
１７ａ、１７ｂ  通信Ｉ／Ｆ
１８ａ          ドライブ
１９ａ          記憶媒体
５１            パッケージダウンローダ
５２            ブラウジングエンジン
５３            パッケージ合成部
５４            リソース要求部
５５            入力検出部
５６            表示出力部
５９            アプリ格納領域
１００          配信サーバ
１０１          パッケージ転送部
１０２          パッケージ作成部
１０３          リソース取得部
１０４          分割決定部
１０５          リソース解析部
１０６          分割リソース管理部
１０７          リソース転送部
【図１】
2015172881.tif 000003
【図２】
2015172881.tif 000004
【図３】
2015172881.tif 000005
【図４】
2015172881.tif 000006
【図５】
2015172881.tif 000007
【図６】
2015172881.tif 000008
【図７】
2015172881.tif 000009
【図８】
2015172881.tif 000010
【図９】
2015172881.tif 000011
【図１０】
2015172881.tif 000012
【図１１】
2015172881.tif 000013
【図１２】
2015172881.tif 000014
【図１３】
2015172881.tif 000015
【図１４】
2015172881.tif 000016
【図１５】
2015172881.tif 000017
【図１６】
2015172881.tif 000018
【図１７】
2015172881.tif 000019
【図１８】
2015172881.tif 000020
【図１９】
2015172881.tif 000021
【図２０】
2015172881.tif 000022
【図２１】
2015172881.tif 000023
【図２２】
2015172881.tif 000024
【図２３】
2015172881.tif 000025
【図２４】
2015172881.tif 000026
【図２５】
2015172881.tif 000027
【図２６】
2015172881.tif 000028
【図２７】
2015172881.tif 000029
【図２８】
2015172881.tif 000030
【図２９】
2015172881.tif 000031
【図３０】
2015172881.tif 000032
【図３１】
2015172881.tif 000033
【図３２】
2015172881.tif 000034