(57)【要約】【課題】  本発明の課題は、アプリケーションを分割して配信した場合でも即時に実行可能とすることを目的とする。【解決手段】  上記課題は、コンピュータによって実行される配信方法であって、第１の署名が付されたプログラムを分割し、前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信する配信方法により達成される。【選択図】  図４
2015158809.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される配信方法であって、
第１の署名が付されたプログラムを分割し、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信する
ことを特徴とする配信方法。
【請求項２】
前記プログラムを前記第１の署名で該プログラムの保証を確認し、
前記プログラムのファイル構成に基づいて、該プログラムを分割する
ことを特徴とする請求項１記載の配信方法。
【請求項３】
前記インターネットを介して前記プログラムを分割する第１の分割ファイルと第２の分割ファイルとを受信し、
前記第１の分割ファイルを、該第１の分割ファイルに付加された前記第２の署名を用いて保証されたファイルであることをチェックし、
保証された前記第１の分割ファイルを実行可能にする
ことを特徴とする請求項２記載の配信方法。
【請求項４】
前記第２の分割ファイルの正当性を、前記第１の分割ファイルの前記制御情報に含まれる前記復元情報を用いて確認し、
確認された前記第２の分割ファイルを実行可能にする
ことを特徴とする請求項３記載の配信方法。
【請求項５】
第１の署名が付されたプログラムを分割する分割部と、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加する署名付加部と、
前記分割ファイルを、インターネットを介して送信する送信部と
を有することを特徴とする配信装置。
【請求項６】
インターネットを介して第１の署名が付されたプログラムを分割した第１の分割ファイルと第２の分割ファイルとをダウンロードするダウンロード部と、
前記第１の分割ファイルを、該第１の分割ファイルに付加された第２の署名を用いて保証されたファイルであることを確認して、該第１の分割ファイルを実行可能にする組立部と
を有することを特徴とする端末装置。
【請求項７】
プログラムを配信するサーバと、該プログラムを受信して実行する端末装置とが、インターネットを介して接続された配信システムであって、
前記サーバは、
第１の署名が付されたプログラムを分割し、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信し、
前記端末装置は、
インターネットを介して前記第１の署名が付された前記プログラムを分割した第１の分割ファイルと第２の分割ファイルとをダウンロードし、
前記第１の分割ファイルを、該第１の分割ファイルに付加された前記第２の署名を用いて保証されたファイルであることを確認して、該第１の分割ファイルを実行可能にする
ことを特徴とする配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを分割して配信する技術に関する。
【背景技術】
【０００２】
従来より、データ転送を行う際、データサイズが大きい場合には、ネットワークのトラフィック状態、送信側及び受信側のデータ転送能力等のデータ転送状況に応じて、データを分割して転送することが行われている。分割した個々のデータを保証するために、送信側で分割データ毎にデジタル署名を付与し、受信側で検証する技術、適応的データ損失のもとで安全な認証を行う技術等が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２３７３５号公報
【特許文献２】特表２００７−５０３１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、デスクトップ（卓上型）、ラップトップ（膝上）、パームトップ（掌上）等の様々なタイプのパーソナルコンピュータ（ＰＣ）が普及している。このような多様なＰＣのＯＳ（Operating System）等のプラットフォームに依存しない（マルチプラットフォームで動作する）アプリケーションの開発により、種々のＰＣを使用する場合においても、ユーザはプラットフォームの違いを意識することなく同様のアプリケーションを使用できる。
【０００５】
このようなマルチプラットフォームで動作するアプリケーションの開発では、ＨＴＭＬ（Hyper Text Markup Language）５言語が主流である。そして、ＨＴＭＬ５言語で開発したアプリケーションをオフラインで動かすために仕様化されているのが「packaged web apps」である。実際には、ＨＴＭＬ５に加えて、外部スタイルシートファイルＣＳＳ（Cascading Style Sheets）、及びJavascriptが用いられる。
【０００６】
「packaged web apps」は、ブラウザ上で動作するアプリケーションのうち、サーバから提供されたのちクライアントに常駐して、クライアント側でオフラインで動作するアプリケーションである。以下、「packaged web apps」を単にアプリケーションと言う。
【０００７】
通常、アプリケーションがクライアント側にダウンロードされる際には、動作に必要なファイルを１つのファイルにパッケージ化して、改竄検知用のデジタル署名を付与している。
【０００８】
一方、ＨＴＭＬ５言語は、サーバ装置からクライアント端末へ提供されブラウザ上で即座に動作するように開発された言語である。また、ＨＴＭＬ５言語で開発されたアプリケーションを使用するユーザにとって、即座に動作するアプリケーションであることが期待されている。
【０００９】
しかしながら、パッケージ化されたアプリケーションのファイルサイズが大きいと、データを分割した配信では、受信側で、データの組み立てやデジタル署名のチェックに時間がかかり、ユーザが見たいと思った瞬間にアプリケーションを実行できない場合がある。
【００１０】
１つの側面では、本発明は、アプリケーションを分割して配信した場合でも即時に実行可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
一態様によれば、コンピュータによって実行される配信方法であって、第１の署名が付されたプログラムを分割し、前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信する配信方法が提供される。
【００１２】
また、上記課題を解決するための手段として、配信装置、配信システム、配信プログラム、及びそのプログラムを記憶した記憶媒体とすることもできる。
【発明の効果】
【００１３】
アプリケーションを分割して配信した場合でも即時に実行できる。
【図面の簡単な説明】
【００１４】
【図１】配信システムの構成例を示す図である。
【図２】分割サーバのハードウェア構成を示す図である。
【図３】端末装置のハードウェア構成を示す図である。
【図４】本実施例に係る配信処理を説明するための図である。
【図５】分割サーバの機能構成例を示す図である。
【図６】分割構成ＤＢのデータ構成例を示す図である。
【図７】分割サーバの取得分割処理を説明するためのフローチャート図（その１）である。
【図８】分割サーバの取得分割処理を説明するためのフローチャート図（その２）である。
【図９】送信制御処理を説明するためのフローチャート図である。
【図１０】端末装置の機能構成例を示す図である。
【図１１】組立ＤＢのデータ構成例を示す図である。
【図１２】ＤＬ前処理を説明するためのフローチャート図である。
【図１３】ＤＬタスク処理を説明するための図である。
【図１４】選択処理を説明するためのフローチャート図である。
【図１５】組立部による組立処理を説明するためのフローチャート図である。
【図１６】アプリケーションの分割例を示す図である。
【図１７】図１６に示す分割例の場合の制御情報のデータ例である。
【図１８】アプリケーションの状態表示例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、配信システムの構成例を示す図である。図１において、配信システム１０００は、アプリケーションサーバ３と、分割サーバ４と、端末５とを有する。端末５は、インターネット２を介して分割サーバ４と接続される。また、アプリケーションサーバ３と、分割サーバ４ともインターネット２等を介して通信によって接続可能である。アプリケーションサーバ３で行われる処理と、分割サーバ４で行われる処理とが、一つのサーバで行われても良い。
【００１６】
アプリケーションサーバ３は、オフラインで動作可能なパッケージ化されたアプリケーションapp1を有し、アプリケーションapp1に第１の鍵を用いてデジタル署名（以下、単に、署名と言う）して外部へ提供するサーバである。アプリケーションサーバ３による署名が添付されることで、アプリケーションapp1が保証される。
【００１７】
分割サーバ４は、アプリケーションサーバ３のアプリケーションapp1を分割パッケージapp1-1及びapp1-2に分割し、分割パッケージapp1-1に署名し、各分割パッケージapp1-1及びapp1-2を第２の鍵を用いて暗号化した後、外部へ転送するサーバである。分割パッケージapp1-1及びapp1-2の各々が分割サーバ４によって保証される。分割サーバ４による署名を分割署名と言う。
【００１８】
端末５は、ユーザによって使用される、ブラウザ５ｗを有する移動体通信装置である。
【００１９】
配信システム１０００において、端末５のブラウザ５ｗから、ユーザが所望するアプリケーションapp1のダウンロード要求（Get http://xxxx/app1）がインターネット２を介してなされると、分割サーバ４は、アプリケーションサーバ３から取得したアプリケーションapp1を分割した分割パッケージapp1-1とapp1-2とを夫々端末５へとインターネット２を介して転送する。分割パッケージapp1-1はapp1-1.epkgで転送され、分割パッケージapp1-2はapp1-2.epkgで転送される。
【００２０】
端末５は、分割サーバ４から受信した分割パッケージapp1-1をブラウザ５ｗ上で実行しながら、バックグラウンドで分割パッケージapp1-2をダウンロードする。分割パッケージapp1-1のダウンロード完了によって、分割パッケージapp1-2をブラウザ５ｗ上で実行する。
【００２１】
配信システム１０００において、端末５は、分割パッケージapp1-1及びapp1-2を受信しつつ実行するため、アプリケーションapp1の実行を早期に行うことができる。また、分割サーバ４が保障した分割パッケージapp1-1及びapp1-2の提供を受けることができる。
【００２２】
図２は、分割サーバのハードウェア構成を示す図である。図２において、分割サーバ４は、コンピュータによって制御される装置であって、ＣＰＵ（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）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３ｂに格納されているプログラムの一部が主記憶装置１２ｂにロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。記憶部１３０ｂは、主記憶装置１２ｂ及び／又は補助記憶装置１３ｂを有する。
【００３３】
入力装置１４ｂは、キー配置された操作部を有し、ユーザが端末装置４による処理に必要な各種情報を入力するために用いられる。表示装置１５ｂは、ＣＰＵ１１ｂの制御のもとに必要な各種情報を表示する。入力装置１４ｂはソフトキーで実現される場合には、入力装置１４ｂ及び表示装置１５ｂとが一体化したタッチパネルであっても良い。通信Ｉ／Ｆ１７ｂは、無線などのネットワークを通じて通信を行う。
【００３４】
端末装置４によって行われる処理を実現する、上述したようなアプリケーションapp1のプログラムは、通信Ｉ／Ｆ１７ｂを介して分割サーバ４から提供される。
【００３５】
図４は、本実施例に係る配信処理を説明するための図である。図４において、分割サーバ４は、パッケージ化されたアプリケーションapp1を復号化して、アプリケーションapp1に付加されているアプリケーションサーバ３の署名４ｂに基づいて、ファイル構成をチェックする（ステップＳ１）。ファイル構成は、制御情報３ｃを解析することによって取得される。
【００３６】
分割サーバ４は、トップページの内容からページ構成を解析して、アプリケーションapp1をファイル単位で分割する（ステップＳ２）。通常、１ページが１ファイルで構成される。図４では、アプリケーションapp1は、トップページ５ａ、２ページ５ｂ、３ページ５ｃに３分割された例を示している。１分割が１ファイル（１ページ）であっても良いし、１分割に２以上のファイルが含まれても良い。
【００３７】
分割サーバ４は、ファイル構成に基づいて、分割方法を決定する。そして、分割サーバ４は、ページがどの分割パッケージに含まれているかを示す情報を制御情報４ｃに追加した制御情報６ｃを作成して、トップページ５ａに添付する。
【００３８】
次に、分割サーバ４は、トップページ５ａに分割署名６ｂを付加して、トップページ５ａ、２ページ５ｂ、及び３ページ５ｃを、分割サーバ４の第２の鍵を用いて個別に暗号化する（ステップＳ３）。
【００３９】
そして、分割サーバ４は、トップページ５ａ、２ページ５ｂ、及び３ページ５ｃを端末装置５へ配信する（ステップＳ４）。
【００４０】
端末装置５は、トップページ５ａを受信すると、分割署名５ａでトップページ５ａに改竄がないことをチェックし、制御情報６ｃを取得する（ステップＳ５−１）。そして、端末装置５は、トップページ５ａを復号したのちブラウザ５ｗ上で実行する（ステップＳ５−２）。一方、端末装置５は、バックグラウンドで２ページ５ｂと３ページ５ｃとを受信する。
【００４１】
プレチェックとは、トップページ５ａに付加された制御情報６ｃに含まれる分割された２ページ、３ページのポインタするためのトークンと、２ページ５ｂ、３ページ５ｃのトークンとが一致するかを確認する処理である。
【００４２】
端末装置５は、２ページ５ｂをバックグラウンドで受信すると、２ページ５ｂをプレチェックして（Ｓ６−１）、復号したのちブラウザ５ｗ上で実行すする（Ｓ６−２）。同様に、端末装置５は、３ページ５ｃをバックグラウンドで受信すると、３ページ５ｃをプレチェックして（Ｓ７−１）、復号したのちブラウザ５ｗ上で実行すする（Ｓ７−２）。
【００４３】
ページ５ａ、５ｂ、及び５ｃ全てが復号されたところで、端末装置５は、ページ５ａ、５ｂ、及び５ｃを制御情報６ｃに従って、アプリケーションapp1を組み立てて復元した後（ステップＳ８）、アプリケーションサーバ３の署名をチェックする。
【００４４】
以下に、分割サーバ４について説明する。図５は、分割サーバの機能構成例を示す図である。図５において、分割サーバ４は、ＣＰＵ１１ａが対応するプログラムを実行することによって実現される、設定部３０と、要求受付部３１と、取得分割部３２と、送信制御部３３と、送信部３４とを有する。記憶部１３０ａは、分割構成ＤＢ３６、分割ファイル領域３７、暗号化ファイル領域３８等を有する。
【００４５】
端末装置５へ提供される、開発者３ｄによって開発されたアプリケーションapp1は、アプリケーションサーバ３に登録されることにより、端末装置５への提供が可能となる。
【００４６】
設定部３０は、アプリケーションapp1の分割に関する項目を設定する画面を表示装置１５ａに表示し、管理者３ａが入力した分割用設定ファイル３０ｄを記憶部１３０ａに格納する。分割用設定ファイル３０ｄには、配信にかかる最小限の時間等が含まれる。
【００４７】
要求受付部３１は、端末装置５からアプリケーションの取得要求（Get http://xxxx/app1）を受信すると、取得要求からアプリケーション名と端末情報とを取得して、取得分割部３２及び送信制御部３３へ通知する処理部である。
【００４８】
また、要求受付部３１は、アプリケーションの取得要求（Get http://xxxx/app1）後に、端末装置５から分割ファイル（app1-2.epkg、app1-3.epkg等）の要求を受信すると、この要求を送信制御部３３に通知する。
【００４９】
取得分割部３２は、要求受付部３１からの取得要求の通知に応じて、アプリケーションサーバ３からアプリケーションapp1を取得して、アプリケーションapp1をページ構成に基づいて分割する処理部である。アプリケーションapp1を分割して得た、トップページ５ａ、２ページ５ｂ、及び３ページ５ｃは、分割済みファイルとして記憶部１３０ａの分割ファイル領域３７に格納される。
【００５０】
また、取得分割部３２は、制御情報６ｃをトップページ５ａに埋め込み、トップページ５ａ、２ページ５ｂ、及び３ページ５ｃを暗号化する。暗号化されたトップページ５ａ、２ページ５ｂ、及び３ページ５ｃは、暗号化ファイル領域３８に格納される。
【００５１】
送信制御部３３は、要求受付部３１からの取得要求の通知に応じて、アプリケーションapp1を、分割単位で送信するためのスケジュールを行う処理部である。
【００５２】
送信部３４は、送信制御部３３によるスケジュールに従って、暗号化ファイル領域３８のトップページ５ａ（app1-1.epkg）、２ページ５ｂ（app1-2.epkg）、及び３ページ５ｃ（app1-3.epkg）を端末装置５へ送信する。
【００５３】
分割構成ＤＢ３６は、図６に示すようなデータ構成を有する。図６は、分割構成ＤＢのデータ構成例を示す図である。図６において、分割構成ＤＢ３６は、要求Ｎｏ．、アプリＵＲＬ（Uniform Resource Locator）、アプリキャッシュ格納場所、分割ファイル格納場所、暗号化ファイル格納場所、暗号完了フラグ、暗号化用鍵、分割数、署名チェック用鍵等の項目を有する。
【００５４】
要求Ｎｏ．は、端末装置５からアプリケーションの取得要求を識別するために付与された番号である。アプリＵＲＬは、取得要求で指定されたアプリケーションのＵＲＬを示す。アプリキャッシュ格納場所は、オリジナルのアプリケーションの格納場所を示す。分割ファイル格納場所は、アプリケーションを分割することで作成された分割ファイルの格納場所を示す。
【００５５】
暗号化ファイル格納場所は、暗号化した後の分割ファイルの格納場所を示す。暗号完了フラグは、暗号化が完了している場合はTrueで示し、暗号化が完了していない場合はFalseで示す。暗号化用鍵は、分割サーバ４が分割ファイルを暗号化するための第２の鍵を示す。
【００５６】
分割数は、要求されたアプリケーションの分割数を示す。署名チェック用鍵は、分割サーバ４がトップページを含む分割ファイルに分割署名を行うための鍵である。
【００５７】
図６に例示される分割構成ＤＢ３６では、要求Ｎｏ．「００１」でアプリＵＲＬ「http://xxx/app1」で指定されたアプリケーションapp1は、アプリキャッシュ格納場所「/tmp/xxx/app1/original」に格納されていることを示す。
【００５８】
分割格納場所は、アプリケーションapp1が分割された後の各分割ファイルは、「/tmp/xxx/app1/divide」に格納されていることを示す。
【００５９】
分割ファイルを暗号化してパッケージ化することにより、分割パッケージapp1-1.epkg、app1-2.epkg、及びapp1-2.epkgが生成される。暗号化ファイル格納場所は、分割パッケージapp1-1.epkg、app1-2.epkg、及びapp1-2.epkgが、「/tmp/xxx/app1/epkg/app1-1.epkg」、「/tmp/xxx/app1/epkg/app1-2.epkg」、及び「/tmp/xxx/app1/epkg/app1-3.epkg」に格納されていることを示す。
【００６０】
分割数は、オリジナルのアプリケーションapp1が３分割されたことを示している。署名チェック用鍵により、分割署名を作成するための鍵「/tmp/xxx/app1/original/signkey」を示している。
【００６１】
取得分割部３２による取得分割処理について説明する。図７及び図８は、分割サーバの取得分割処理を説明するためのフローチャート図である。分割サーバ４において、取得分割部３２は、ＣＰＵ１１ａが対応するプログラムを実行することで実現される。
【００６２】
図７において、取得分割部３２は、受付要求部３１からの通知が、アプリケーションの取得要求か否かを判断する（ステップＳ１１）。アプリケーションの取得要求ではない場合、取得分割部３２は、所定間隔でステップＳ１１を繰り返す。
【００６３】
一方、アプリケーションの取得要求の場合、取得分割部３２は、記憶部１３０ａに格納された分割用設定ファイル３０ｄを読み込む（ステップＳ１２）。また、取得分割部３２は、アプリケーションサーバ３から得たアプリケーションの変更の有無に基づいて分割構成ＤＢ３６を更新する（ステップＳ１３）。
【００６４】
即ち、取得分割部３２は、アプリケーションサーバ３へ分割サーバ４にて保持しているキャッシュ情報を送信し、アプリケーションサーバ３からアプリケーションの変更の有無を示す情報を取得すればよい。変更されたアプリケーションが存在する場合、取得分割部３２は、そのアプリケーションをキャッシュ領域から削除し、分割構成ＤＢ３６において、そのアプリケーションのアプリキャッシュ格納場所の値を削除する。
【００６５】
取得分割部３２は、分割用設定ファイル３０ｄを参照して、取得要求のアプリケーションは、毎回暗号化するか否かを確認する（ステップＳ１４）。アプリケーションを毎回暗号化しない場合、取得分割部３２は、ステップＳ２２へと進む（図８）。
【００６６】
アプリケーションを毎回暗号化する場合、取得分割部３２は、アプリケーションデータのキャッシュが有るか否かを判断する（ステップＳ１５）。即ち、取得分割部３２は、分割構成ＤＢ３６から要求されたアプリケーションを指定するアプリＵＲＬを検索して、アプリＵＲＬに対応付けられるアプリキャッシュ格納場所に値が存在するか否かを確認する。アプリキャッシュ格納場所に値が存在する場合、取得分割部３２は、ステップＳ１９へと進む。
【００６７】
アプリキャッシュ格納場所に値が存在しない場合、取得分割部３２は、アプリケーションサーバ３から、端末装置５が要求するアプリケーションを取得する（ステップＳ１６）。アプリケーションサーバ３から取得したアプリケーションは、記憶部１３０ａにキャッシュされ、その格納場所が、分割構成ＤＢ３０ｄのアプリキャッシュ格納場所に記憶される。
【００６８】
そして、取得分割部３２は、アプリケーションサーバ３の署名をチェックし（ステップＳ１７）、分割処理を行う（ステップＳ１８）。アプリケーションを分割して得られた分割ファイルは分割ファイル領域３７に格納される。
【００６９】
取得分割部３２は、分割ファイル毎に、分割構成ＤＢ３０ｄの分割ファイル格納場所に分割ファイル領域３７における記憶場所を記憶する。また、取得分割部３２は、分割構成ＤＢ３０ｄにおいて、分割ファイルの１つに対して、分割数を記憶する。トップページの分割ファイルに対応付けて分割数を記憶すればよい。取得分割部３２は、ステップＳ１９へと進む。
【００７０】
ステップＳ１５にてアプリケーションデータのキャッシュが有ると判断した場合、又は、ステップＳ１８の分割処理が終了した場合、取得分割部３２は、分割サーバ４の暗号鍵を生成して、分割ファイルを暗号化して（ステップＳ１９）、暗号化した分割ファイルを暗号化ファイル領域３８に格納する（ステップＳ２０）。
【００７１】
そして、取得分割部３２は、暗号化した分割ファイルの格納先を分割構成ＤＢの暗号化ファイル格納場所に記録し、暗号完了フラグを「True」に設定し、暗号化用鍵を記録して、分割構成ＤＢを更新する（ステップＳ２１）。
【００７２】
図８において、図７のステップＳ１４にて、アプリケーションを毎回暗号化しない場合、取得分割部３２は、記憶部１３０ａに要求されたアプリケーションの暗号化キャッシュデータが有るか否かを判断する（ステップＳ２２）。暗号化キャッシュデータが有る場合、取得分割部３２は、キャッシュの位置情報を分割構成ＤＢの暗号化ファイル格納場所に記録して（ステップＳ２２−３）、この取得分割処理を終了する。
【００７３】
ステップＳ２２にて、暗号化キャッシュデータが無い場合、取得分割部３２は、更に、アプリケーションデータのキャッシュが有るか否かを判断する（ステップＳ２３）。アプリケーションデータのキャッシュが無い場合、取得分割部３２は、アプリケーションデータを取得する（ステップＳ２４）。
【００７４】
そして、取得分割部３２は、アプリケーションサーバ３の署名をチェックし（ステップＳ２５）、分割処理を行う（ステップＳ２６）。取得分割部３２は、分割ファイル毎に、分割構成ＤＢ３０ｄの分割ファイル格納場所に記憶場所が記憶する。また、取得分割部３２は、分割構成ＤＢ３０ｄにおいて、分割ファイルの１つに対して、分割数を記憶する。トップページの分割ファイルに対応付けて分割数を記憶すればよい。取得分割部３２は、ステップＳ２７へと進む。
【００７５】
ステップＳ１５にてアプリケーションデータのキャッシュが有ると判断した場合、又は、ステップＳ１８の分割処理が終了した場合、取得分割部３２は、分割サーバ４の暗号鍵を生成して、分割ファイルを暗号化して（ステップＳ２７）、暗号化した分割ファイルを暗号化ファイル領域３８に格納する（ステップＳ２８）。
【００７６】
そして、取得分割部３２は、暗号化した分割ファイルの格納先を分割構成ＤＢの暗号化ファイル格納場所に記録し、暗号完了フラグを「True」に設定し、暗号化用鍵を記録して、分割構成ＤＢを更新する（ステップＳ２９）。
【００７７】
送信制御部３３による送信制御処理について説明する。図９は、送信制御処理を説明するためのフローチャート図である。分割サーバ４において、送信制御部３３は、ＣＰＵ１１ａが対応するプログラムを実行することで実現される。
【００７８】
図９において、送信制御部３３は、要求受付部３１からの通知がアプリケーションの取得要求か否かを判断する（ステップＳ３１）。アプリケーションの取得要求ではない場合、送信制御部３３は、所定間隔でステップＳ３１を繰り返す。
【００７９】
アプリケーションの取得要求の場合、送信制御部３３は、更に、分割ファイルの取得要求か否かを判断する（ステップＳ３２）。分割ファイルの取得要求の場合、送信制御部３３は、ステップＳ３８へと進む。
【００８０】
通知が分割ファイルの取得要求である場合、送信制御部３３は、アプリケーションの分割及び暗号化が完了したか否かを判断する（ステップＳ３３）。送信制御部３３は、分割構成ＤＢ３６において、取得要求で指定されるアプリＵＲＬに対応付けられる暗号完了フラグ及び分割数を参照することによって判断する。アプリケーションの分割及び暗号化が完了していない場合、送信制御部３３は、所定間隔でステップＳ３３を繰り返す。
【００８１】
アプリケーションの分割及び暗号化が完了している場合、送信制御部３３は、分割数及びトークン値を含む制御情報６ｃを作成して、分割ファイル（トップページapp1-1）のヘッダに設定する（ステップＳ３４）。送信制御部３３は、分割構成ＤＢから分割数を取得して、取得した分割数と、分割数に応じたトークン値とを制御情報６ｃに設定する。
【００８２】
トークン値とは、分割ファイルと他の分割ファイルとの関連付けを示す値である。本実施例では、トークン値を用いて、トップページapp1-1からリンクされるページが存在する分割ファイルを指定する。
【００８３】
送信制御部３３は、分割ファイルが送信中か否かを判断する（ステップＳ３５）。既に取得要求があり、かつ、すでに分割送信が実行中のアプリケーションが存在する場合がある。分割ファイルが送信中でない場合、送信制御部３３は、ステップＳ３７へと進み、制御情報６ｃが付加された分割ファイル（トップページapp1-1）を送信部３４に送信させて（ステップＳ３７）、この送信制御処理を終了する。
【００８４】
分割ファイルが送信中の場合、送信制御部３３は、送信中の分割ファイルの送信タスクの優先度を下げて（ステップＳ３６）、トップページapp1-1の分割ファイルを送信部３４に送信させる（ステップＳ３７）。
【００８５】
ステップＳ３６及びＳ３６により、トップページapp1-1の分割ファイルが優先的に送信される。
【００８６】
ステップＳ３２において分割要求の取得要求の場合、送信制御部３３は、要求された分割ファイルの暗号化が完了しているか否かを判断する（ステップＳ３８）。送信制御部３３は、分割構成ＤＢ３６を参照して、要求された分割ファイルの暗号化完了フラグをチェックすることにより判断する。分割ファイルの暗号化が完了していない場合、送信制御部３３は、所定間隔でステップＳ３８を繰り返す。
【００８７】
分割ファイルの暗号化が完了している場合、送信制御部３３は、優先度を下げる要求が有るか否かを判断する（ステップＳ３９）。優先度を下げる要求が有る場合、送信制御部３３は、分割ファイルの送信を一時停止し（ステップＳ４０）、ステップＳ３９へ戻り、上述同様の処理を繰り返す。
【００８８】
優先度を下げる要求が無い場合、送信制御部３３は、分割ファイルを割り当てられた配信時間の間送信する（ステップＳ４１）。配信時間後、送信制御部３３は、分割ファイルの送信を完了したか否かを判断する（ステップＳ４２）。分割ファイルの一部のみが送信された場合、即ち、分割ファイルのうち未送信の部分がある場合、送信制御部３３は、ステップＳ３９へ戻り、上述同様の処理を繰り返す。一方、分割ファイル全体の送信を完了した場合、送信制御部３３は、この送信制御処理を終了する。
【００８９】
分割ファイルは、分割サーバ４によってＺＩＰ形式で暗号化されても良いし、他の暗号形式であっても良い。
【００９０】
以下に、端末装置５について説明する。図１０は、端末装置の機能構成例を示す図である。図１０において、端末装置５は、ＣＰＵ１１ｂが対応するプログラムを実行することによって実現される、ダウンロード部５１と、選択部５２と、実行部５４を有するＷｅｂサーバ部５３と、組立部５５と、ブラウザ５ｗとを有する。記憶部１３０ｂは、ファイル格納領域５９を有する。
【００９１】
ダウンロード部５１は、選択部５２からのアプリケーションの取得要求及びページのファイルの取得要求の夫々に応じて、分割サーバ４へ取得要求を行い、分割サーバ４から取得要求に応じたファイルをダウンロードする処理部である。ダウンロードした分割ファイルは、ファイル格納領域５９に格納される。
【００９２】
また、ダウンロード部５１は、取得要求のアプリケーションのダウンロードによって取得した情報を組立ＤＢ５８に記録する。ダウンロード部５１は、トップページapp1-1の分割ファイルを受信すると、分割ファイルに含まれている制御情報６ｃから分割数を取得して、組立ＤＢ５８に記録する。
【００９３】
選択部５２は、Ｗｅｂサーバ部５３からのアプリケーション又はファイルの取得要求に応じて、ファイル格納領域５９から、復元完了したアプリケーションapp1又は分割ファイルapp1-1〜app1-3のいずれかを選択して、取得要求で指定されたファイルを返信する。復元完了したアプリケーションapp1は、１つのファイルで管理されるため、以下、アプリケーションapp1及び分割ファイルapp1-1〜app1-3を、総称して「ファイル」と言う。
【００９４】
Ｗｅｂサーバ部５３は、ブラウザ５ｗからのファイルの取得要求を受け付けて、選択部５２へ依頼し、選択部５２から提供されたファイルを復号して実行する処理部である。そのため、Ｗｅｂサーバ部５３は、ファイルを復号して実行する実行部５４を有する。実行部５４によってファイルが復号された実行されることにより、ブラウザ５ｗ上でアプリケーションapp1又はアプリケーションapp1の一部が動作する。
【００９５】
ブラウザ５ｗは、アプリケーションapp1によって提供される種々のページをユーザの操作に応じて表示する。ブラウザ５ｗは、ＨＴＭＬ５に加えて、外部スタイルシートファイルＣＳＳ、及びJavascriptをサポートしていることが望ましい。
【００９６】
組立部５５は、分割サーバ４による分割署名チェック及びプレチェックを行って、分割ファイルapp1-1〜app1-3を組み立てる処理部である。組立部５５は、各分割ファイルapp1-1〜app1-3は、分割サーバ４によって保証されていることを確認した後に、組み立てられる。
【００９７】
また、組立部５５は、アプリケーションapp1を組み立てると、アプリケーションサーバ３の署名チェックを実施し、アプリケーションapp1全体に対する保証を確認する。復元完了したアプリケーションapp1は、ファイル格納領域５９に保持される。
【００９８】
図１１は、組立ＤＢのデータ構成例を示す図である。図１１において、組立ＤＢ５８は、ダウンロードしたファイルの状態を管理するためのデータベースであり、ＵＲＬ、ファイル名、分割数、実行可能状態、ＤＬ完了フラグ等の項目を有する。
【００９９】
ＵＲＬは、端末装置５の利用者が指定したアプリケーションの位置情報を示す。ファイル名は、ダウンロード時のファイル名を示す。分割数は、アプリケーションが分割されてダウンロードされる場合の分割の数を示し、トップページを含むファイルに対して設定される。
【０１００】
実行可能状態は、実行部５４によって実行可能な状態であるか否かを示す。実行可能状態が「可能」を示す場合、実行部５４によって実行可能な状態であることを示す。実行可能状態が「不可」を示す場合、実行部５４によって実行不可な状態であることを示す。
【０１０１】
ＤＬ完了フラグは、ダウンロードが完了したか否かを示す。ＤＬ完了フラグ「完了」は、ダウンロードが完了したことを示し、ＤＬ完了フラグ「未完了」は、ダウンロード中であることを示す。
【０１０２】
図１１の例において、ＵＲＬ「http://xxx/app1」は３分割されてダウンロードされることを示している。実行可能状態とＤＬ完了フラグの組み合わせにより、組立状況を把握することができる。
【０１０３】
app1-1.zipは、ＤＬ完了フラグ「完了」からダウンロードを完了し、実行可能状態「可能」から実行可能であることが示される。app1-1.zipは、分割署名の確認が終了済みであることを示す。
【０１０４】
app1-2.zipは、ＤＬ完了フラグ「完了」からダウンロードを完了し、実行可能状態「不可」から実行不可能な状態ではないことが示される。app1-2.zipは、ダウンロードを完了しているが、プレチェックが未確認の状態を示している。
【０１０５】
app1-3.zipは、ＤＬ完了フラグ「未完了」からダウンロードが完了しておらず、実行可能状態「不可」から実行不可能な状態であることが示される。app1-3.zipは、ダウンロード完了待ちの状態である。
【０１０６】
また、ＵＲＬ「http://xxx/app2」は、分割数「１」であるため、３分割されることなくアプリケーションの全体がダウンロードされることを示しているが、ダウンロードは未完了である。
【０１０７】
上記ファイル状態＿０〜３のいずれにおいても、オンラインでの実行は可能である。
【０１０８】
ダウンロード部５１によるダウンロード処理について説明する。ダウンロード処理は、主に、ダウンロード（ＤＬ）前処理と、ダウンロード（ＤＬ）タスク処理とを有する。ＤＬ前処理について図１２で説明し、ＤＬタスク処理について図１３で説明する。
【０１０９】
図１２は、ＤＬ前処理を説明するためのフローチャート図である。端末装置５において、ダウンロード部５１によるＤＬ前処理は、ＣＰＵ１１ｂが対応するプログラムを実行することで実現される。
【０１１０】
図１２において、ダウンロード部５１は、選択部５２からの要求がダウンロード要求か否かを判断する（ステップＳ７１）。ここでは、アプリケーションの取得要求が、ダウンロード要求に相当する。選択部５２からの要求がダウンロード要求でない場合、ダウンロード部５１は、選択部５２からの要求を受信する毎にステップＳ７１を繰り返す。
【０１１１】
選択部５２からの要求がダウンロード要求の場合、ダウンロード部５１は、分割サーバ４にファイル（アプリケーション又は分割ファイル）の取得要求を行う（ステップＳ７２）。「Get http://xxxx/app1」が分割サーバ４へ送信される。分割サーバ４から最初の分割ファイル（トップページ）を受信すると、ダウンロード部５１は、ヘッダの制御情報６ｃから分割数及びファイル名を取得する（ステップＳ７３）。
【０１１２】
ダウンロード部５１は、アプリケーションapp1が分割されて配信される分割配信であるか否かを判断する（ステップＳ７４）。制御情報６ｃから取得した分割数が２以上を示す場合、ダウンロード部５１は、分割配信であると判断する。分割数が１の場合、アプリケーションapp1の全体が配信されると判断する。
【０１１３】
分割配信であると判断した場合、ダウンロード部５１は、分割ファイルのダウンロードタスクを登録して（ステップＳ７５）、組立ＤＢに、取得要求で指定されるＵＲＬに対応付けて、分割数、ＤＬ完了フラグを設定するステップＳ７６）。その後、ダウンロード部５１は、ＤＬ前処理を終了する。
【０１１４】
図１３は、ＤＬタスク処理を説明するための図である。ダウンロード部５１によるＤＬタスク処理は、ＣＰＵ１１ｂが対応するプログラムを実行することで実現される。
【０１１５】
図１３において、ダウンロード部５１は、未実行のダウンロードタスクがあるか否かを判断する（ステップＳ８１）。未実行のダウンロードタスクがない場合、ダウンロード部５１は、所定間隔でステップＳ８１を繰り返す。
【０１１６】
未実行のダウンロードタスクがある場合、ダウンロード部５１は、ネットワーク帯域が空いているか否かを判断する（ステップＳ８２）。ネットワーク帯域が空いていない場合、所定間隔でステップＳ８２を繰り返す。ネットワーク帯域が空いている場合、タスクに登録された分割ファイルのダウンロードを開始する（ステップＳ８３）。
【０１１７】
ダウンロード部５１は、ダウンロードを完了したか否かを判断する（ステップＳ８４）。ダウンロードを完了していない場合、ダウンロード部５１は、所定間隔でステップＳ８４を繰り返す。ダウンロードを完了した場合、ダウンロード部５１は、組立ＤＢのＤＬ完了フラグに「完了」を設定して（ステップＳ８５）、ＤＬタスク処理を終了する。
【０１１８】
次に、選択部５２による選択処理について説明する。図１４は、選択処理を説明するためのフローチャート図である。端末装置５において、選択部５２によるＤＬ前処理は、ＣＰＵ１１ｂが対応するプログラムを実行することで実現される。
【０１１９】
図１４において、選択部５２は、Ｗｅｂサーバ部５３からの要求がファイル取得要求か否かを判断する（ステップＳ９１）。ファイル取得要求でない場合、選択部５２は、所定間隔でステップＳ９１を繰り返す。
【０１２０】
ファイル取得要求の場合、選択部５２は、ファイル格納領域５９を参照して、ファイル取得要求で指定されるＵＲＬのアプリケーションが存在するか否かを判断する（ステップＳ９２）。ファイルがダウンロード済みの場合、つまり、アプリケーションがオリジナルの状態（又は復元された状態）で存在する場合、選択部５２は、ステップＳ９７へと進む。
【０１２１】
選択部５２は、アプリケーションがファイル格納領域５９に存在しない場合、組立ＤＢ５６にファイル取得要求で指定されるＵＲＬが存在するか否かを判断する（ステップＳ９３）。組立ＤＢ５６に存在する場合は、選択部５２は、更に、実行可能状態が「可能」を示すか否かを確認する（ステップＳ９３−２）。
【０１２２】
実行可能状態が「可能」を示す場合は、選択部５２は、組立ＤＢ５６からファイル名を取得して、ファイル格納領域５９から同一ファイル名の分割ファイルを取得して、ステップＳ９７へと進む。選択部５２は、実行可能状態が「不可」を示す場合は、ステップＳ９５へと進み、ダウンロードが完了するのを待つ。
【０１２３】
組立ＤＢ５６にもファイル取得要求で指定されるＵＲＬが存在しない場合、選択部５２は、ステップＳ９４へと進み、ダウンロード部５１にダウンロード要求を行う。
【０１２４】
ファイル取得要求で指定されるＵＲＬが存在しない場合、即ち、アプリケーションが存在しない場合、選択部５２は、ダウンロード部５１にダウンロード要求を行う（ステップＳ９４）。その後、選択部５２は、組立ＤＢ５８を参照することにより、ダウンロードが完了したか否かを判断する（ステップＳ９５）。ダウンロードが完了していない場合、選択部５２は、所定間隔でステップＳ９５を繰り返す。ダウンロードが完了している場合、選択部５２は、組立ＤＢ５８を更新する（ステップＳ９６）。
【０１２５】
選択部５２は、ファイル内にページファイルが存在するか否かを判断する（ステップＳ９７）。ファイルは、アプリケーションのファイル又は分割ファイルである。
ページファイルが存在する場合、選択部５２は、ページファイルをＷｅｂサーバ部５３へ返信する（ステップＳ９８）。そして、選択部５２は、選択処理を終了する。
【０１２６】
一方、ステップＳ９７にて、ファイル内にページファイルが存在しない場合、選択部５２は、組立ＤＢ５８を参照して、取得要求のＵＲＬに関して実行可能状態「可能」を示す分割ファイルのうち、未チェックの分割ファイルがあるか否かを判断する（ステップＳ９９）。
【０１２７】
選択部５２は、組立ＤＢ５８のＤＬ完了フラグを参照して、分割ファイルのダウンロードが完了したか否かを判断する（ステップＳ１００）。分割ファイルのダウンロードが完了していない場合、選択部５２は、所定間隔でステップＳ１００を行う。
【０１２８】
分割ファイルのダウンロードが完了した場合、選択部５２は、分割ファイル内にページファイルがあるか否かを判断する（ステップＳ１０１）。分割ファイルにページファイルが無い場合、選択部５２は、ステップＳ９９へ戻り上記同様の処理を繰り返す。分割ファイル内にページファイルがある場合、選択部５２は、ページファイルをＷｅｂサーバ部５３へ返信して（ステップＳ１０２）、選択処理を終了する。
【０１２９】
ステップＳ９９にて、未チェックの分割ファイルがない場合、選択部５２は、「file not found」エラーをＷｅｂサーバ部５３へ返信して（ステップＳ１０３）、選択処理を終了する。
【０１３０】
図１５は、組立部による組立処理を説明するためのフローチャート図である。分割サーバ４へのアプリケーションの取得要求後のダウンロード部５１によるダウンロードの開始後、最初の分割ファイル（トップページ）がファイル格納領域５９に格納されると、組立部５５による組立処理が開始する。
【０１３１】
図１５において、組立部５５は、組立ＤＢ５８を参照して、組立が未完了の分割ファイルが存在するか否かを判断する（ステップＳ１３１）。組立が未完了の分割ファイルが存在しない場合、所定間隔でステップＳ１３１を繰り返す。
【０１３２】
組立が未完了の分割ファイルが存在する場合、組立部５５は、分割ファイルを復号して（ステップＳ１３２）、最初の分割ファイルか否かを判断する（ステップＳ１３３）。最初の分割ファイルの場合、組立部５５は、最初の分割ファイル（トップページ）から制御情報６ｃ及び分割署名６ｂを取得して（ステップＳ１３４）、取得した分割署名を用いた分割署名チェックを行って、分割ファイルの正当性を確認する（ステップＳ１３５）。
【０１３３】
分割ファイルの正当性を確認すると、組立部５５は、組立ＤＢ５８の分割ファイルの実行可能状態を「可能」に設定して（ステップＳ１３６）、組立処理を終了する。
【０１３４】
一方、最初の分割ファイルでない場合、組立部５５は、ステップＳ１３４において最初の分割ファイルから取得した制御情報のトークン値を用いてプレチェックを行い、分割ファイルの正当性を確認する（ステップＳ１３７）。プレチェック後、組立部５５は、組立ＤＢ５５の分割ファイルの実行可能状態を「可能」に設定する（ステップＳ１３８）。
【０１３５】
そして、組立部５５は、組立ＤＢ５８の同一ＵＲＬに関して、全ての分割ファイルが実行可能になったか否かを判断する（ステップＳ１３９）。全ての分割ファイルが実行可能でない場合、組立部５５は、ステップＳ１３１へと戻り、上述同様の処理を繰り返す。全ての分割ファイルが実行可能になった場合、組立部５５は、制御情報６ｃを参照して、分割ファイルを組み立てて、アプリケーションを復元して（ステップＳ１４０）、組立処理を終了する。復元したアプリケーションは、ファイル格納領域５９に保持される。
【０１３６】
Ｗｅｂサーバ部５３の実行部５４へは、選択部５２によって、ファイル格納領域５９から、復元されたアプリケーション又は分割ファイルが選択されて提供される。
【０１３７】
図１６は、アプリケーションの分割例を示す図である。図１６において、分割サーバ４は、ファイル＿１、ファイル＿２及びファイル＿３を含むアプリケーションapp1を、ファイル単位で分割した例を示している。
【０１３８】
ファイル「app1-1.zip」は、トップページのファイル＿１を含み、分割署名６ｂ、制御情報６ｃを含み、暗号化されている。ファイル「app1-2.zip」は、ファイル＿２を含み、暗号化されている。ファイル「app1-3.zip」は、ファイル＿３を含み、暗号化されている。
【０１３９】
制御情報６ｃ内に設定されているトークン値によって、トップページを含むファイル「app1-1.zip」と、他のファイル「app1-2.zip」及びファイル「app1-3.zip」との関連付けがなされている。
【０１４０】
１つの分割ファイルには、少なくとも１つのページに関するファイルを有するようにすることが望ましい。１つの分割ファイルに２ページ分のファイルが含まれていても良い。
【０１４１】
図１７は、図１６に示す分割例の場合の制御情報のデータ例である。図１７において、制御情報６ｃには、分割情報６ｆ、組立用制御情報６ｇ等が含まれている。
【０１４２】
分割情報６ｆには、分割数６ｆ−２と、トークン情報６ｆ−４とが含まれている。分割数６ｆ−２は、アプリケーションapp1の分割数を示している。分割数「３」は、アプリケーションapp1が３分割されていることを示す。トークン情報６ｆ−４は、関連付けられる他の２つの分割ファイルの情報を示し、トークン値と、ファイルリストとを含む。この例では、「トークン値：２」を有する分割ファイルには、「xxxx.html」、「yyyy.jpg」、及び「zzzz.js」が含まれていることを示している。「トークン値：３」を有する分割ファイルには、「aaaa.pdf」が含まれていることを示している。
【０１４３】
組立用制御情報６ｇは、トークン値毎の抜出箇所を一覧にして示す。抜出箇所は、アプリケーション全体のファイル内において、先頭からの相対アドレスで示される。この例では、「トークン値：２」の分割ファイルに含まれているファイルが抜き出された箇所は、「0x2345〜0x8126」である。また、「トークン値：３」の分割ファイルに含まれているファイルが抜き出された箇所は、「0x8127〜0x10994」である。
【０１４４】
組立部５５は、図１５のステップＳ１４における分割ファイルの組立時に、制御情報６ｃの組立用制御情報６ｇを参照して、ファイル＿１、ファイル＿２、ファイル＿３を順に組み立てることができる。制御情報６ｃ内の分割情報６ｆと組立用制御情報６ｇとが復元情報に相当する。
【０１４５】
組立後のアプリケーションapp1に対するアプリケーションサーバ３による署名を用いたアプリケーション全体の正当性の確認する署名チェックは、組立部５５で行っても良いし、実行部５４で実行時に行っても良い。
【０１４６】
アプリケーションの実行可能な状態を端末装置５で表示した表示例について説明する。図１８は、アプリケーションの状態表示例を示す図である。図１８（Ａ）では、アプリケーションapp1の状態遷移に対応したアイコンを示している。図１８（Ａ）において、アプリケーションapp1を示すアイコン５ｑは、
状態Ｉ：オンライン実行可
状態ＩＩ：オンライン実行可＆ダウンロード中
状態ＩＩＩ：実行可
状態ＩＶ：オフライン実行可
の各状態を視認し易く表示される。
【０１４７】
図１８（Ｂ）では、端末装置５での表示例を示す。図１８（Ｂ）において、端末装置５の表示部７ｄには、複数のアプリケーション「Aaa」、「Bbb」、「Ccc」、「Ddd」、「Eee」等がアイコンで表示されている。
【０１４８】
アプリケーション「Aaa」と「Eee」とは、オフライン実行可（状態ＩＶ）であることが分かる。アプリケーション「Ｃｃｃ」は、実行可（状態ＩＩＩ）であることが分かる。アプリケーション「Ｄｄｄ」は、オンライン実行可＆ダウンロード中（状態ＩＩ）であることが分かる。アプリケーション「Ｂｂｂ」は、オンライン実行可（状態ＩＩＩ）であることが分かる。
【０１４９】
上述したようなアイコン５ｑの状態表示により、端末装置５を利用するユーザが、オンラインのみで実行可能なアプリケーションなのか、オフラインでも実行可能なアプリケーションなのかを容易に把握することができる。
【０１５０】
上述したように、本実施例では、端末装置５は、分割サーバ４とで事前に鍵を交換しておき、トップページの分割ファイル内にある分割署名６ｂを用いて簡易チェックすることで、トップページを即座に実行可能とする。
【０１５１】
また、逐次送信される各分割ファイルを、トップページの分割ファイル内にある制御情報６ｃを用いたプレチェックを行うことにより、随時実行可能にすることができる。
【０１５２】
したがって、分割ファイルで組み立てたアプリケーションがアプリケーションサーバ３の署名で保証されてから実行可能となる関連技術に比べて、本実施例では、ユーザはより早期にアプリケーションを実行できる。
【０１５３】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１５４】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによって実行される配信方法であって、
第１の署名が付されたプログラムを分割し、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信する
ことを特徴とする配信方法。
（付記２）
前記プログラムを前記第１の署名で該プログラムの保証を確認し、
前記プログラムのファイル構成に基づいて、該プログラムを分割する
ことを特徴とする付記１記載の配信方法。
（付記３）
前記インターネットを介して前記プログラムを分割する第１の分割ファイルと第２の分割ファイルとを受信し、
前記第１の分割ファイルを、該第１の分割ファイルに付加された前記第２の署名を用いて保証されたファイルであることをチェックし、
保証された前記第１の分割ファイルを実行可能にする
ことを特徴とする付記２記載の配信方法。
（付記４）
前記第２の分割ファイルの正当性を、前記第１の分割ファイルの前記制御情報に含まれる前記復元情報を用いて確認し、
確認された前記第２の分割ファイルを実行可能にする
ことを特徴とする付記３記載の配信方法。
（付記５）
前記第１の分割ファイルと前記第２の分割ファイルとを組み立てて前記プログラムを復元し、
復元した前記プログラムの正当性を、前記第１の署名で確認する
ことを特徴とする付記４記載の配信方法。
（付記６）
前記復元情報は、前記分割ファイル間の関連付けを示すことを特徴とする付記５記載の配信方法。
（付記７）
第１の署名が付されたプログラムを分割する分割部と、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加する署名付加部と、
前記分割ファイルを、インターネットを介して送信する送信部と
を有することを特徴とする配信装置。
（付記８）
インターネットを介して第１の署名が付されたプログラムを分割した第１の分割ファイルと第２の分割ファイルとをダウンロードするダウンロード部と、
前記第１の分割ファイルを、該第１の分割ファイルに付加された第２の署名を用いて保証されたファイルであることを確認して、該第１の分割ファイルを実行可能にする組立部と
を有することを特徴とする端末装置。
（付記９）
前記組立部は、
前記第２の分割ファイルの正当性を、前記第１の分割ファイルの制御情報に含まれる復元情報を用いて確認して、該第２の分割ファイルを実行可能にする
ことを特徴とする付記８記載の端末装置。
（付記１０）
プログラムを配信するサーバと、該プログラムを受信して実行する端末装置とが、インターネットを介して接続された配信システムであって、
前記サーバは、
第１の署名が付されたプログラムを分割し、
前記プログラムの分割ファイルのうちの１つ以上に、該プログラムの復元に係る復元情報を含む制御情報と、前記分割ファイルを保証する第２の署名とを付加して、インターネットを介して送信し、
前記端末装置は、
インターネットを介して前記第１の署名が付された前記プログラムを分割した第１の分割ファイルと第２の分割ファイルとをダウンロードし、
前記第１の分割ファイルを、該第１の分割ファイルに付加された前記第２の署名を用いて保証されたファイルであることを確認して、該第１の分割ファイルを実行可能にする
ことを特徴とする配信システム。
（付記１１）
前記端末装置は、
前記第１の分割ファイルと前記第２の分割ファイルとを組み立てて前記プログラムを復元し、
復元した前記プログラムの正当性を、前記第１の署名で確認する
こと
ことを特徴とする付記１０記載の配信システム。
【符号の説明】
【０１５５】
２            インターネット
３            アプリケーションサーバ
４            分割サーバ
５            ブラウザ
１１          ＣＰＵ
１２          主記憶装置
１３          補助記憶装置
１４          入力装置
１５          表示装置
１６          出力装置
１７          通信Ｉ／Ｆ
１８          ドライブ
１９          記憶媒体
３０          設定部
３１          要求受付部
３２          取得分割部
３３          送信制御部
３４          送信部
３６          分割構成ＤＢ
３７          分割ファイル領域
３８          暗号化ファイル領域
【図１】
2015158809.tif 000003
【図２】
2015158809.tif 000004
【図３】
2015158809.tif 000005
【図４】
2015158809.tif 000006
【図５】
2015158809.tif 000007
【図６】
2015158809.tif 000008
【図７】
2015158809.tif 000009
【図８】
2015158809.tif 000010
【図９】
2015158809.tif 000011
【図１０】
2015158809.tif 000012
【図１１】
2015158809.tif 000013
【図１２】
2015158809.tif 000014
【図１３】
2015158809.tif 000015
【図１４】
2015158809.tif 000016
【図１５】
2015158809.tif 000017
【図１６】
2015158809.tif 000018
【図１７】
2015158809.tif 000019
【図１８】
2015158809.tif 000020