(57)【要約】【課題】自己復元形式ファイルをダウンロードする際の通信量を削減する。【解決手段】情報処理装置は、所定の圧縮方式で圧縮された圧縮データ部分と圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルに含まれる復元プログラム部分を記憶する記憶部と、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に記憶されている場合には、ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードする制御部と、ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、記憶部に記憶されているダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得する取得部と、を備える。【選択図】図６
2018180767.tif 000002
【特許請求の範囲】
【請求項１】
所定の圧縮方式で圧縮された圧縮データ部分と前記圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルに含まれる前記復元プログラム部分を記憶する記憶部と、
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されている場合には、前記ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードする制御部と、
前記ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、前記記憶部に記憶されている前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得する取得部と、
を備える情報処理装置。
【請求項２】
ダウンロードされた自己復元形式ファイルから復元プログラム部分を抽出し、前記抽出した復元プログラム部分を前記記憶部に格納する抽出部、
をさらに備え、
前記制御部は、前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されていない場合には、前記ダウンロード対象の自己復元形式ファイルを復元プログラム部分を含めてダウンロードする、
請求項１に記載の情報処理装置。
【請求項３】
前記ダウンロード対象の自己復元形式ファイルについて、復元プログラム部分の格納位置に関する情報を含むファイル構成情報を記憶する第２の記憶部、
をさらに備え、
前記制御部は、前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されている場合には、前記ダウンロード対象の自己復元形式ファイル内の復元プログラム部分の格納位置を前記ファイル構成情報に基づいて取得し、ダウンロード対象区間として前記復元プログラムの格納位置以外の区間を指定して、前記ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードする、
る請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２の記憶部は、複数の自己復元形式ファイルそれぞれについてのファイル構成情報を記憶し、
前記ファイル構成情報は、自己復元形式ファイルを作成したプログラムの識別情報をさらに含み、
前記制御部は、前記ダウンロード対象の自己復元形式ファイルを作成したプログラムの識別情報と、前記記憶部に記憶されている復元プログラムを含む自己復元形式ファイルを作成したプログラムの識別情報とが一致する場合に、前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されていると判定する、
請求項３に記載の情報処理装置。
【請求項５】
前記取得部は、前記ダウンロード対象の自己復元形式ファイルのファイル構成情報に基づいて、前記ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、前記記憶部に記憶されている前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得する、
請求項３又は４に記載の情報処理装置。
【請求項６】
所定の圧縮方式で圧縮された圧縮データ部分と前記圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルに含まれる前記復元プログラム部分を記憶部に記憶し、
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されている場合には、前記ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードし、
前記ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、前記記憶部に記憶されている前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得する、
情報処理方法。
【請求項７】
コンピュータに、
所定の圧縮方式で圧縮された圧縮データ部分と前記圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルに含まれる前記復元プログラム部分を記憶部に記憶させ、
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が前記記憶部に記憶されている場合には、前記ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードさせ、
前記ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、前記記憶部に記憶されている前記ダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得させる、
ための情報処理プログラム。
【請求項８】
所定の圧縮方式で圧縮された圧縮データ部分と前記圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルを生成する生成部と、
前記自己復元形式ファイルの前記復元プログラム部分の格納位置に関する情報を含むファイル構成情報を記憶する記憶部と、
前記ファイル構成情報を送信する送信部と、
を備える情報処理装置。
【請求項９】
前記送信部は、送信対象の自己復元形式ファイルの復元プログラム部分を送信先に送信済みである場合に、前記送信対象の自己復元形式ファイルを復元プログラム部分を除いて前記送信先に送信し、前記送信対象の自己復元形式ファイルの復元プログラム部分を前記送信先に送信済みでない場合に、前記送信対象の自己復元形式ファイルを前記復元プログラム部分を含めて前記送信先に送信する
請求項８に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び、情報処理プログラムに関する。
【背景技術】
【０００２】
サーバからデータをダウンロードする際の通信量の削減方法として、データを所定の圧縮方式で圧縮する方法がある。また、圧縮データとともに当該圧縮データを復元するための復元プログラムを含む自己復元形式ファイルがある。自己復元形式ファイルは、自己解凍ファイルとも称される。自己復元形式ファイルが実行されることにより当該自己復元形式ファイルに含まれる復元プログラムが実行され、当該自己復元形式ファイルに含まれる圧縮データが元のデータに復元される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２７９７９号公報
【特許文献２】特開平６−３３７８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、自己復元形式ファイルのダウンロードの際には、同一の復元プログラムを有する自己復元形式ファイルが既に取得されている場合でも、復元プログラムを含むファイル全体がダウンロードされる。したがって、同一の復元プログラム部分のダウンロードは、重複するデータのダウンロードとなる。
【０００５】
本発明の一態様は、自己復元形式ファイルをダウンロードする際の通信量を削減可能な情報処理装置、情報処理方法、及び、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の態様の一つは、記憶部と、制御部と、取得部とを備える情報処理装置である。記憶部は、所定の圧縮方式で圧縮された圧縮データ部分と圧縮データ部分を復元する復元プログラム部分とを含む自己復元形式ファイルに含まれる復元プログラム部分を記憶する。制御部は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に記憶されている場合には、ダウンロード対象の自己復元形式ファイル内の復元プログラム部分を除いてダウンロードする。取得部は、ダウンロードされた自己復元形式ファイルの復元プログラム部分以外の部分と、記憶部に記憶されているダウンロード対象の自己復元形式ファイルの復元プログラム部分と、を結合して、自己復元形式ファイルを取得する。
【発明の効果】
【０００７】
開示の情報処理装置、情報処理方法、及び、情報処理プログラムによれば、自己復元形式ファイルをダウンロードする際の通信量を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１実施形態に係るソフトウェア配信システムのシステム構成の一例を示す図である。
【図２】図２は、自己復元形式ファイルのデータ構造の一例を示す図である。
【図３】図３は、サーバのハードウェア構成の一例を示す図である。
【図４】図４は、サーバの機能構成の一例を示す図である。
【図５】図５は、ファイル構成情報の一例を示す図である。
【図６】図６は、クライアント端末の機能構成の一例を示す図である。
【図７】図７は、クライアント端末の更新対象一覧画面の一例である。
【図８】図８は、第１実施形態に係るサーバの処理のフローチャートの一例である。
【図９Ａ】図９Ａは、第１実施形態に係るクライアント端末の処理のフローチャートの一例である。
【図９Ｂ】図９Ｂは、第１実施形態に係るクライアント端末の処理のフローチャートの一例である。
【図９Ｃ】図９Ｃは、第１実施形態に係るクライアント端末の処理のフローチャートの一例である。
【図１０】図１０は、第１実施形態に係るソフトウェア配信システムにおけるサーバとクライアント端末間の処理のシーケンスの一例を示す図である。
【図１１】図１１は、第２実施形態に係るサーバの処理のフローチャートの一例である。
【図１２Ａ】図１２Ａは、第２実施形態に係るクライアント端末の処理のフローチャートの一例である。
【図１２Ｂ】図１２Ｂは、第２実施形態に係るクライアント端末の処理のフローチャートの一例である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１０】
＜第１実施形態＞
図１は、第１実施形態に係るソフトウェア配信システム１００のシステム構成の一例を示す図である。ソフトウェア配信システム１００は、サーバ１と、クライアント端末２とを含む。
【００１１】
サーバ１は、例えば、クライアント端末２の製造メーカによって管理され、クライアント端末２の機種、型番、ＯＳ（Operating System）名、ＯＳのバージョン等ごとのに区分けされた複数のソフトウェアの更新ファイルを自己復元形式ファイルとして保持しているサーバである。ソフトウェアの更新ファイルは、ソフトウェアの更新プログラムが記述されたファイルである。サーバ１は、「生成部」、「記憶部」、「送信部」を備える「情報処理装置」の一例である。
【００１２】
クライアント端末２は、サーバ１に問い合わせて、更新可能な複数のソフトウェアの更新ファイルを一括してダウンロードする。一括ダウンロードとは、一回の指示入力によって、複数のファイルをダウンロードすることである。クライアント端末２は、「記憶部」、「制御部」、「取得部」を備える「情報処理装置」の一例である。
【００１３】
第１実施形態では、クライアント端末２は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に格納されていない場合には、サーバ１から当該自己復元形式ファイル全体をダウンロードする。クライアント端末２は、ダウンロードした自己復元形式ファイルから、復元プログラム部分を抽出して、記憶部に格納する。
【００１４】
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に格納されている場合には、クライアント端末２は、サーバ１から当該ファイルの圧縮データ部分を指定してダウンロードする。クライアント端末２は、ダウンロードした圧縮データ部分と記憶部に記憶されている復元プログラム部分とを結合して、自己復元形式ファイルを取得する。これによって、同一の復元プログラム部分を有する自己復元形式ファイルを取得済みである場合に、重複する復元プログラム部分のダウンロードを削減することができる。
【００１５】
なお、ソフトウェアの更新ファイルのダウンロードは、複数の自己復元形式ファイルの一括ダウンロードの一例であって、第１実施形態において説明される技術の適用先は、ソフトウェアの更新ファイルのダウンロードに限定されない。また、第１実施形態において説明される技術の適用先は、複数の自己復元形式ファイルの一括ダウンロードに限定されない。第１実施形態において説明される技術は、自己復元形式ファイルのダウンロードに適用可能である。
【００１６】
図２は、自己復元形式ファイルのデータ構造の一例を示す図である。自己復元形式ファイルは、例えば、拡張子が「．ｅｘｅ」の実行可能なファイルである。自己復元形式ファイルは、復元プログラム部分と、圧縮データ部分とを含む。第１実施形態では、ソフトウェアの更新ファイルは自己復元形式ファイルであるとする。ただし、ソフトウェアの更新ファイルは、自己復元形式ファイルに限定されない。
【００１７】
ソフトウェアの更新ファイルが自己復元形式ファイルである場合には、例えば、自己復元形式ファイルの圧縮データ部分はソフトウェアパッケージが圧縮されたデータである。ソフトウェアパッケージとは、例えば、該当のソフトウェアの本体、該当のソフトウェアのインストール及び実行時に用いられる複数のファイルを含むセットであり、サーバ１及びクライアント端末２においては、例えば、フォルダを含むツリー構造として表示される。
【００１８】
データの圧縮形式は、例えば、自己復元形式ファイルの作成プログラムに依る。例えば、固定の１つのデータ圧縮形式を用いる自己復元形式ファイルの作成プログラムもあれば、複数の中からユーザによって選択されたデータ圧縮形式を用いる自己復元形式ファイルの作成プログラムもある。
【００１９】
また、復元プログラム部分に含まれる復元プログラムの記述が固定されているか可変であるかは、例えば、自己復元形式ファイルの作成プログラムに依る。例えば、自己復元形式ファイルの作成プログラムが固定の１つのデータ圧縮形式を用いるものである場合には、復元プログラム部分に含まれるプログラムの記述は、当該固定の１つのデータ圧縮形式に対応する記述となる。例えば、自己復元形式ファイルの作成プログラムが複数のデータ圧縮形式に対応するものである場合には、復元プログラム部分に含まれるプログラムの記述は、圧縮データ部分の圧縮形式に対応する記述であったり、自己復元形式ファイルの作成プログラムが対応する全てのデータ圧縮方式に対応する記述であったりする。
【００２０】
すなわち、復元プログラム部分のデータは、同じ自己復元形式ファイルの作成プログラムによって作成された自己復元形式ファイル同士であっても、同じデータが含まれている場合と、異なるデータが含まれている場合とがある。なお、第１実施形態では、復元プログラムのデータ部分は、同じ自己復元形式ファイルの作成プログラムによって作成された自己復元形式ファイル同士では、一致することを前提として説明される。
【００２１】
図２に示される例では、復元プログラム部分は自己復元形式ファイルの先頭に格納されているが、復元プログラム部分の格納場所はファイルの先頭に限定されない。例えば、復元プログラム部分の格納場所はファイルの末尾、圧縮データ部分と圧縮データ部分との間であってもよい。自己復元形式ファイル内の復元プログラム部分の格納場所は、自己復元形式ファイルの作成プログラムに依る。
【００２２】
自己復元形式ファイルの作成プログラムには、自己復元形式ファイル内の復元プログラム部分の格納位置が、予め判明しているプログラムと、予め判明していないプログラムとがある。また、自己復元形式ファイルの作成プログラムには、自己復元形式ファイル内の
復元プログラム部分の格納位置が、全ファイルで共通しているものと、ファイルごとに異なるものとが存在する。
【００２３】
＜装置構成＞
図３は、サーバ１のハードウェア構成の一例を示す図である。サーバ１は、例えば、専用又は汎用のコンピュータである。サーバ１は、ＣＰＵ（Central Processing Unit）１
０１、主記憶装置１０２、入力装置１０３、出力装置１０４、補助記憶装置１０５、ネットワークインタフェース１０７を備える。また、これらはバス１０９により互いに接続されている。
【００２４】
入力装置１０３は、例えば、キーボード、マウス等である。入力装置１０３から入力されたデータは、ＣＰＵ  １０１に出力される。出力装置１０４は、ＣＰＵ  １０１の処理の結果を出力する。出力装置１０４は、ディスプレイ、プリンタを含む。
【００２５】
補助記憶装置１０５は、様々なプログラムや、各プログラムの実行に際してＣＰＵ  １０１が使用するデータを格納する。補助記憶装置１０５は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、フラッシュメモリ、又はハードディスクドライブ（Hard Disk Drive）等の不揮発性のメモリである。補助記憶装置１０５は、例えば、オペレーティングシステム（ＯＳ）、ファイル配信プログラム１０５Ｐ、自己復元形式ファイル作成プログラム、その他様々なアプリケーションプログラムを保持する。ファイル配信プログラム１０５Ｐは、送信要求を受けたファイルを配信するためのプログラムである。
【００２６】
主記憶装置１０２は、ＣＰＵ  １０１に、補助記憶装置１０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置１０２は、例えば、ＲＡＭ（Random Access Memory）のような半導体メモリを含む。
【００２７】
ＣＰＵ  １０１は、補助記憶装置１０５に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置１０２にロードして実行することによって、様々な処理を実行する。ＣＰＵ  １０１は、１つに限られず、複数備えられてもよい。
【００２８】
ネットワークインタフェース１０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１０７は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース１０７は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等である。ネットワークインタフェース１０７で受信されたデータ等は、ＣＰＵ  １０１に出力される。
【００２９】
なお、図３に示されるサーバ１のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、サーバ１は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、ＳＤカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、ＵＳＢ（Universal Serial Bus）フラッシュメモリ、ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ、又はフラッシュメモリカードのような記録媒体である。例えば、サーバ１は、入力装置１０３、出力装置１０４を備えていなくてもよい。
【００３０】
図４は、サーバ１の機能構成の一例を示す図である。サーバ１は、機能構成要素として、ソフトウェアパッケージ登録部１１、ソフトウェアパッケージ格納部１２、ファイル変換部１３、送信用ファイル格納部１４、ファイル解析部１５、ファイル構成情報格納部１
６、送信制御部１７を備える。
【００３１】
ソフトウェアパッケージ登録部１１、ソフトウェアパッケージ格納部１２、送信用ファイル格納部１４、ファイル解析部１５、ファイル構成情報格納部１６、送信制御部１７は、例えば、サーバ１のＣＰＵ  １０１がファイル配信プログラム１０５Ｐを実行することによって達成される機能構成要素である。
【００３２】
ソフトウェアパッケージ登録部１１は、ユーザインタフェースである。ソフトウェアパッケージ登録部１１には、ユーザ操作によるソフトウェアパッケージの入力を受け付ける。ソフトウェアパッケージ登録部１１は、入力されたソフトウェアパッケージをソフトウェアパッケージ格納部１２に格納する。また、ソフトウェアパッケージ登録部１１は、ソフトウェアパッケージをソフトウェアパッケージ格納部１２に格納すると、ファイル変換部１３に当該ソフトウェアパッケージの自己復元形式ファイルへの変換要求を出力する。
【００３３】
ソフトウェアパッケージ格納部１２は、ソフトウェアパッケージを保持する。ソフトウェアパッケージ格納部１２は、例えば、補助記憶装置１０５内のファイル配信プログラム１０５Ｐ用に確保された記憶領域の一部である。
【００３４】
ファイル変換部１３は、サーバ１のＣＰＵ  １０１が自己復元形式ファイルの作成プログラムを実行することによって達成される機能構成要素である。サーバ１のＣＰＵ  １０１が実行する自己復元形式ファイルの作成プログラムは、１種類とは限らず、複数種類の自己復元形式ファイルの作成プログラムの中から実行されることもある。
【００３５】
ファイル変換部１３は、ソフトウェアパッケージ登録部１１から、自己復元形式ファイルへの変換要求の入力を受けると、ソフトウェアパッケージ格納部１２に格納されているソフトウェアパッケージを読み出して変換して自己復元形式ファイルを生成する。具体的には、ファイル変換部１３は、ソフトウェアパッケージを所定のデータ圧縮方式に従って圧縮して圧縮データ部分を取得し当該圧縮データ部分と復号プログラム部分とを結合して自己復元形式ファイルを取得する。ファイル変換部１３は、作成した自己復元形式ファイルを送信用ファイル格納部１４に格納する。ファイル変換部１３は、「生成部」の一例である。
【００３６】
送信用ファイル格納部１４は、自己復元形式ファイルを保持する。送信用ファイル格納部１４は、例えば、補助記憶装置１０５内のファイル配信プログラム１０５Ｐ用に確保された記憶領域の一部である。
【００３７】
ファイル解析部１５は、送信用ファイル格納部１４に格納された自己復元形式ファイルを解析して、ファイル構成情報を取得する。取得されたファイル構成情報は、ファイル構成情報格納部１６に格納される。ファイル構成情報の詳細は後述される。ファイル構成情報は、「ファイル構成情報」の一例である。
【００３８】
ファイル構成情報格納部１６は、送信用ファイル格納部１４に格納されている自己復元形式ファイルに対応するファイル構成情報を保持する。ファイル構成情報格納部１６は、例えば、補助記憶装置１０５内のファイル配信プログラム１０５Ｐ用に確保された記憶領域の一部である。ファイル構成情報格納部１６は、「記憶部」の一例である。
【００３９】
送信制御部１７は、クライアント端末２からのファイル送信要求を受信し、対象のファイルを送信する。クライアント端末２からのファイル送信要求にファイルの区間指定が含まれている場合には、送信制御部１７は、対象のファイルの区間指定に該当するデータをクライアント端末２に送信する。
【００４０】
また、送信制御部１７は、クライアント端末２から更新対象のソフトウェアの一覧要求を受信し、更新対象のソフトウェアの一覧情報と、更新対象の各ソフトウェアの更新ファイルのファイル構成情報とをクライアント端末２に送信する。送信制御部１７の処理の詳細は後述される。送信制御部１７は、「制御部」の一例である。
【００４１】
なお、ソフトウェアパッケージ格納部１２に格納されているソフトウェアパッケージは、例えば、変換により当該ソフトウェアパッケージから自己復元形式ファイルが作成され、送信用ファイル格納部１４に格納された場合に、ファイル変換部１３によって削除されてもよい。
【００４２】
なお、ＣＰＵ  １０１が実行する自己復元形式ファイルの作成プログラムが１種類である場合には、ファイル解析部１５が備えられず、ファイル解析部１５の代わりにファイル変換部１３がファイル構成情報を作成してもよい。
【００４３】
図５は、ファイル構成情報の一例を示す図である。ファイル構成情報は、ソフトウェアパッケージ格納部１２に格納されている自己復元形式ファイルに関する情報である。ファイル構成情報は、例えば、ファイル名、自己復元形式ファイルの作成元の作成プログラムのプログラム名、復元プログラムの格納位置を示す情報を含む。
【００４４】
ファイル名は、構成情報の対象となる自己復元形式ファイルを識別するための情報である。ファイル名に限定されず、例えば、送信用ファイル格納部１４に格納される自己復元形式ファイルが複数の記憶領域にわたる場合には、記憶領域の位置を含めたパス名にできる。また、ファイル構成情報は自己復元形式ファイルと１対１で対応させなくてもよく、例えば、ワイルドカードの形で指定することによって複数の自己復元形式ファイルを対象として指定させることもできる。
【００４５】
自己復元形式ファイルの作成元の作成プログラムのプログラム名は、自己復元形式ファイルの作成プログラムの種類を識別するための情報である。プログラム名に限定されず、自己復元形式ファイルの作成プログラムの種類を識別可能な情報であれば、ファイル構成情報に含めることができる。自己復元形式ファイルの作成元の作成プログラムのプログラム名は、「自己復元方式ファイルを作成したプログラムの識別情報」の一例である。
【００４６】
復元プログラム部分の格納位置を示す情報は、復元プログラム部分の開始位置又は終了位置と復元プログラムのサイズとの組合せであってもよい。例えば、復元プログラム部分の格納位置を示す情報は、先頭から１００バイト、末尾から１００バイト、等である。または、復元プログラム部分の格納位置を示す情報は、復元プログラム部分の開始位置と終了位置との組合せであってもよい。例えば、復元プログラム部分の格納位置を示す情報は、先頭から０バイトの位置から１００バイトの位置までのように、区間で指定されてもよい。ファイル構成情報に含まれる復元プログラム部分の格納位置を示す情報は、「復元プログラム部分の格納位置に関する情報」の一例である。
【００４７】
なお、図５に示されるファイル構成情報のデータ構造は、一例であって、これに限定されない。例えば、ファイル構成情報は、復元プログラム部分の格納位置を示す情報の代わりに、又は、復元プログラム部分の格納位置を示す情報に加えて、圧縮データ部分の格納位置示す情報を含んでもよい。例えば、ファイル構成情報は、自己復元形式ファイルのサイズを含んでもよい。
【００４８】
図６は、クライアント端末２の機能構成の一例を示す図である。クライアント端末２は、例えば、ＰＣ（Personal Computer）、スマートフォン、タブレット端末等の端末装置
である。クライアント端末２のハードウェア構成は、例えば、サーバ１とほぼ同様であり、図示を省略する。クライアント端末２は、ハードウェア構成要素として、例えば、ＣＰＵ、主記憶装置、補助記憶装置、入力装置、出力装置、ネットワークインタフェースを備える。クライアント端末２は、「情報処理装置」の一例である。
【００４９】
クライアント端末２は、補助記憶装置に、例えば、ＯＳ、更新ファイルダウンロード制御プログラム、自己復元形式ファイルを復元するための復元プログラム、ソフトウェアインストールプログラムを備える。更新ファイルダウンロード制御プログラムは、クライアント端末２のソフトウェアの更新ファイルをダウンロードするためのプログラムである。更新ファイルダウンロード制御プログラムは、「情報処理プログラム」の一例である。自己復元形式ファイルを復元するための復元プログラムは、自己復元形式ファイルからソフトウェアパッケージを取得するためのプログラムである。ソフトウェアインストールプログラムは、ソフトウェアパッケージをインストールするためのプログラムである。
【００５０】
クライアント端末２は、機能構成要素として、受信制御部２１、受信ファイル格納部２２、復元プログラム部分抽出部２３、復元プログラム部分格納部２４、受信データ結合部２５、ファイル復元部２６、ソフトウェアパッケージ格納部２７、インストール部２８、一次記憶部２９を備える。
【００５１】
受信制御部２１、受信ファイル格納部２２、復元プログラム部分抽出部２３、復元プログラム部分格納部２４、受信データ結合部２５は、例えば、クライアント端末２のＣＰＵが更新ファイルダウンロード制御プログラムを実行することによって達成される機能構成要素である。
【００５２】
受信制御部２１は、ユーザ操作によって、クライアント端末２のソフトウェアの更新一覧表示の指示が入力されると、サーバ１に更新対象のソフトウェアの一覧要求を送信する。更新対象のソフトウェアの一覧要求には、例えば、クライアント端末２の実行環境情報が含まれる。クライアント端末２の実行環境情報には、例えば、クライアント端末２の機種名、型番、ＯＳ名、ＯＳのバージョン等が含まれる。
【００５３】
受信制御部２１は、更新対象のソフトウェアの一覧要求の応答として、サーバ１から、クライアント端末２の実行環境情報に応じた更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルである自己復元形式ファイルのファイル構成情報とを受信する。受信制御部２１は、受信したファイル構成情報を一時記憶部２９に格納する。
【００５４】
受信制御部２１は、サーバ１から受信した更新対象ソフトウェアの一覧情報の中からクライアント端末２が更新可能なソフトウェアの情報を抽出し、抽出したソフトウェアのリストを含む更新対象一覧画面をディスプレイに出力する。更新対象一覧画面は、クライアント端末２のユーザに、更新可能なソフトウェアの情報を提供し、更新対象のソフトウェアを選択させるための画面である。更新対象一覧画面の詳細は、後述される。
【００５５】
受信制御部２１は、例えば、更新対象一覧画面に対するユーザ操作によって、更新対象のソフトウェアの指定と更新開始との指示の入力を受ける。受信制御部２１は、指示の入力を受けると、サーバ１から更新対象のソフトウェアの更新ファイルのダウンロードを開始する。
【００５６】
ダウンロード対象の更新ファイルが複数である場合には、受信制御部２１は、各ファイルに対して少なくとも１つの送信要求を送信して、ファイルをダウンロードする。ファイルのダウンロード処理では、受信制御部２１は、サーバ１にファイル送信要求を送信し、ファイル送信要求の応答として、対象のファイルをサーバ１から受信する。ファイル送信
要求には、例えば、ダウンロード対象のファイル名と、ダウンロード対象となる区間指定とが含まれている。
【００５７】
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部２４に格納されていない場合には、受信制御部２１は、当該自己復元形式ファイル全体をサーバ１からダウンロードする。この場合には、ファイル送信要求には、区間指定が含まれない。受信制御部２１は、ダウンロードした自己復元形式ファイルを受信ファイル格納部２２に格納する。また、受信制御部２１は、復元プログラム部分抽出部２３に対して、ダウンロードした自己復元形式ファイルから復元プログラム部分を抽出するよう指示を出力する。
【００５８】
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部２４に格納されている場合には、受信制御部２１は、当該自己復元形式ファイルの復元プログラム部分の格納位置をファイル構成情報から取得し、圧縮データ部分をサーバ１からダウンロードする。この場合には、ファイル送信要求には、圧縮データ部分の区間指定が含まれる。なお、復元プログラム部分の格納位置がファイルの先頭又は末尾でなく、圧縮データ部分が復元プログラム部分によって分断されて複数である場合には、ファイル送信要求は各圧縮データ部分について送信される。受信制御部２１は、一時記憶部２９に対象の自己復元形式ファイルのダウンロードした圧縮データ部分を格納する。また、受信制御部２１は、受信データ結合部２５に対して、当該圧縮データ部分と復元プログラム部分との結合の指示と、を出力する。受信制御部２１は、「制御部」の一例である。
【００５９】
一時記憶部２９は、例えば、一時記憶部２９用に確保される主記憶装置１０２内の共有メモリとして用いられる記憶領域である。一時記憶部２９は、ファイル構成情報と自己復元形式ファイルのダウンロードされた圧縮データ部分とを一時的に記憶する。なお、ファイル更新情報は、ダウンロード対象のファイルのダウンロードが完了すると、一時記憶部２９から削除される。一次記憶部２９は、「第２の記憶部」の一例である。
【００６０】
受信ファイル格納部２２は、ダウンロードされた自己復元形式ファイルを保持する。受信ファイル格納部２２は、例えば、クライアント端末２の補助記憶装置内の更新ファイルダウンロード制御プログラム用に確保された記憶領域の一部である。
【００６１】
復元プログラム部分抽出部２３は、受信制御部２１からの指示を受けて、当該指示によって指定された受信ファイル格納部２２に格納されている自己復元形式ファイルから復元プログラム部分を抽出する。当該自己復元形式ファイルの復元プログラム部分は、受信制御部２１から指定されるファイル名にファイル名が一致するファイル構成情報から取得される。復元プログラム部分抽出部２３は、当該自己復元形式ファイルから抽出した復元プログラム部分を復元プログラム部分格納部２４に格納する。復元プログラム部分抽出部２３は、「抽出部」の一例である。
【００６２】
復元プログラム部分格納部２４は、自己復元形式ファイルから抽出された復元プログラム部分を保持する。復元プログラム部分格納部２４は、例えば、クライアント端末２の補助記憶装置内の更新ファイルダウンロード制御プログラム用に確保された記憶領域の一部、又は、ユーザによって更新ファイル（自己復元形式ファイル）の格納場所として指定されたクライアント端末２の補助記憶装置内の記憶領域である。復元プログラム部分格納部２４は、「記憶部」の一例である。
【００６３】
受信データ結合部２５は、受信制御部２１から復元プログラム部分と圧縮データ部分との結合の指示の入力を受ける。受信データ結合部２５は、例えば、指定されたファイル名に対応する圧縮データ部分を一時記憶部２９から取得する。受信データ結合部２５は、例
えば、指定されたファイル名にファイル名が一致するファイル構成情報に基づいて、指定されたファイル名の圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部２４から取得する。
【００６４】
受信データ結合部２５は、当該ファイル構成情報に従った復元プログラム部分の格納位置に復元プログラム部分格納部２４から取得した復元プログラム部分を格納し、一時記憶部２９から読み出した圧縮データ部分と結合して、自己復元形式ファイルを取得する。
【００６５】
受信データ結合部２５は、自己復元形式ファイルの取得の結果を受信制御部２１に通知する。自己復元形式ファイルの取得が失敗するのは、例えば、以下の場合である。例えば、復元プログラム部分格納部２４にいずれの復元プログラム部分も格納されていない場合である。例えば、一時記憶部２９内のファイル構成情報に、指定ファイル名にファイル名が一致するファイル構成情報が含まれていない場合である。例えば、指定ファイル名に対応するファイル構成情報によって示される復元プログラム部分のサイズと復元プログラム部分格納部２４から取得された復元プログラム部分とのサイズが一致しない場合である。
【００６６】
受信データ結合部２５は、取得した自己復元形式ファイルを受信ファイル格納部２２に格納する。受信データ結合部２５は、「取得部」の一例である。
【００６７】
ファイル復元部２６、ソフトウェアパッケージ格納部２７は、例えば、クライアント端末２のＣＰＵが自己復元形式ファイルを復元するための復元プログラムを実行することによって達成される機能構成要素である。
【００６８】
ファイル復元部２６は、例えば、受信制御部２１からの指示、又は、ユーザ操作による指示の入力に従って、受信ファイル格納部２２内の指定された自己復元形式ファイルの復元プログラム部分に含まれる復元プログラムを実行して、圧縮データ部分からソフトウェアパッケージを取得する。ファイル復元部２６は、取得したソフトウェアパッケージをソフトウェアパッケージ格納部２７に格納する。
【００６９】
ソフトウェアパッケージ格納部２７は、ソフトウェアパッケージを保持する。ソフトウェアパッケージ格納部２７は、例えば、クライアント端末２の補助記憶装置内の自己復元形式ファイルの復元プログラム用に確保された記憶領域の一部、又は、ユーザによってソフトウェアパッケージの格納場所として指定されたクライアント端末２の補助記憶装置内の記憶領域である。
【００７０】
インストール部２８は、例えば、クライアント端末２のＣＰＵがソフトウェアインストールプログラムを実行することによって達成される機能構成要素である。インストール部２８は、例えば、受信制御部２１からの指示、又は、ユーザ操作による指示の入力に従って、ソフトウェアパッケージ格納部２７内のソフトウェアパッケージのインストール処理を行う。
【００７１】
なお、受信ファイル格納部２２に格納されている自己復元形式ファイルは、例えば、復元されたソフトウェアパッケージがソフトウェアパッケージ格納部２７に格納された場合に、ファイル復元部２６によって削除されてもよい。復元プログラム部分格納部２４に格納されている復元プログラム部分は、例えば、一括ダウンロードに係る処理が終了した場合に、受信制御部２１によって削除されてもよい。ソフトウェアパッケージ格納部２７に格納されているソフトウェアパッケージは、例えば、当該ソフトウェアパッケージのインストールが完了した場合に、インストール部２８によって削除されてもよい。
【００７２】
図７は、クライアント端末２の更新対象一覧画面の一例である。例えば、更新対象一覧
画面は、ユーザ操作によって更新ファイルダウンロード制御プログラムが起動されると、クライアント端末２のディスプレイに表示される画面である。
【００７３】
更新対象一覧画面には、クライアント端末２の実行環境情報に応じた更新可能なソフトウェアの一覧が表示される。更新対象一覧画面に表示されるソフトウェアは、例えば、サーバ１が保持するソフトウェアとクライアント端末２が保持する同ソフトウェアとの、バージョンの比較、リリース日の比較の結果抽出されたソフトウェアである。いずれの比較においても、クライアント端末２が保持するソフトウェアの情報よりもサーバ１が保持するソフトウェアの情報の方が新しい場合に、更新対象一覧画面に表示されるソフトウェアとして選択される。なお、更新対象一覧画面に、サーバ１から通知された全ソフトウェアの情報を表示してもよい。
【００７４】
更新対象一覧画面中には、表示されるソフトウェア名に対応してチェックボックスが配置されており、ユーザは操作によってチェックボックスにチェックを付けることによって、更新を所望するソフトウェアを選択することができる。
【００７５】
また、更新対象一覧画面には、更新開始ボタンＢ１が含まれている。例えば、ユーザ操作によって、更新開始ボタンＢ１が押下されると、チェックボックスにチェックが付けられたソフトウェアの更新ファイルを対象とするダウンロードが開始される。
【００７６】
なお、更新開始ボタンＢ１の押下によって、ソフトウェアの更新ファイルのダウンロードからインストールまでの処理が行われてもよい。この場合には、受信制御部２１によって、ファイル復元部２６への自己復元形式ファイルの復元処理の指示、インストール部２８へのインストール処理の指示が行われる。
【００７７】
または、更新開始ボタンＢ１の押下によってソフトウェアの更新ファイルのダウンロードまでが実行されてもよい。この場合には、例えば、対象ファイルを選択するユーザ操作によって、ファイル復元部２６への自己復元形式ファイルの復元処理の指示、インストール部２８へのインストール処理の指示が行われる。対象ファイルを選択するユーザ操作は、例えば、対象ファイルのアイコンをダブルクリックする操作である。
【００７８】
例えば、ディスプレイに表示された、ユーザ指定の格納場所に格納された自己復元形式ファイルのアイコンがダブルクリックされることによって、ファイル復元部２６へ当該自己復元形式ファイルの復元処理の指示が入力され、ソフトウェアパッケージが得られる。例えば、ディスプレイに表示された、ユーザ指定の格納場所に格納されたソフトウェアパッケージ（フォルダ）内の実行ファイルのアイコンがダブルクリックされることによって、インストール部２８へ当該ソフトウェアパッケージのインストール処理の指示が入力され、ソフトウェアパッケージがインストールされる。
【００７９】
または、更新開始ボタンＢ１の押下によってはソフトウェアの更新ファイルのダウンロードまで実行され、ダウンロード後、当該ソフトウェアの更新ファイルのインストールの実行の可否をユーザに問い合わせる画面が表示されてもよい。この場合には、例えば、インストールの実行の可否を問い合わせる画面の制御は、受信制御部２１（更新ファイルダウンロード制御プログラム）によって行われる。したがって、この場合には、ファイル復元部２６への自己復元形式ファイルの復元処理の指示、インストール部２８へのインストール処理の指示は、インストールの実行を指示するユーザ操作の入力に従って、受信制御部２１によって、行われる。
【００８０】
＜処理の流れ＞
図８は、第１実施形態に係るサーバ１の処理のフローチャートの一例である。図８に示
される処理は、例えば、サーバ１がクライアント端末２から送信要求を受信すると開始される。図８に示される処理の実行主体は、サーバ１のＣＰＵ  １０１であるが、便宜上、ＣＰＵ  １０１がファイル配信プログラム１０５Ｐを実行することによって達成される機能構成である送信制御部１７を主体として説明される。
【００８１】
ＯＰ１では、送信制御部１７は、受信した送信要求が更新対象のソフトウェアの一覧要求であるか否かを判定する。受信した送信要求が更新対象のソフトウェアの一覧要求である場合には（ＯＰ１：ＹＥＳ）、処理がＯＰ２に進む。受信した送信要求が更新対象のソフトウェアの一覧要求でない場合には（ＯＰ１：ＮＯ）、処理がＯＰ４に進む。
【００８２】
ＯＰ２、ＯＰ３の処理は、更新対象のソフトウェアの一覧要求が受信された場合の処理である。ＯＰ２では、送信制御部１７は、例えば、クライアント端末２の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とを、ファイル構成情報格納部１６から取得する。ソフトウェアの一覧情報には、例えば、ソフトウェア名と、ソフトウェアの更新情報とが含まれている。ソフトウェアの更新情報には、例えば、ソフトウェアの更新日時、バーション等のソフトウェアの新しさを示す情報が含まれている。クライアント端末２の実行環境情報は、更新対象のソフトウェアの一覧要求に含まれている。
【００８３】
ＯＰ３では、送信制御部１７は、クライアント端末２の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とを、クライアント端末２に送信する。その後、図８に示される処理が終了する。
【００８４】
ＯＰ４では、送信制御部１７は、受信した送信要求がファイル送信要求であるか否かを判定する。受信した送信要求がファイル送信要求である場合には（ＯＰ４：ＹＥＳ）、処理がＯＰ５に進む。受信した送信要求がファイル送信要求でない場合には（ＯＰ４：ＮＯ）、図８に示される処理が終了する。
【００８５】
ＯＰ５以降の処理は、ファイル送信要求が受信された場合の処理である。ＯＰ５では、送信制御部１７は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルが送信用ファイル格納部１４に格納されているか否かを判定する。該当する自己復元形式ファイルが送信用ファイル格納部１４に格納されている場合には（ＯＰ５：ＹＥＳ）、処理がＯＰ６に進む。該当する自己復元形式ファイルが送信用ファイル格納部１４に格納されていない場合には（ＯＰ５：ＮＯ）、送信制御部１７は、ファイル送信要求の対象のファイルに対応するソフトウェアパッケージの送信を判定し、処理がＯＰ９に進む。
【００８６】
ＯＰ６からＯＰ８の処理は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルを送信する処理である。ＯＰ６では、送信制御部１７は、ファイル送信要求に区間指定が含まれているか否かを判定する。ファイル送信要求に区間指定が含まれている場合には（ＯＰ６：ＹＥＳ）、処理がＯＰ７に進む。ファイル送信要求に区間指定が含まれていない場合には（ＯＰ６：ＮＯ）、処理がＯＰ８に進む。
【００８７】
ＯＰ７では、送信制御部１７は、送信用ファイル格納部１４から該当する自己復元形式ファイルのファイル送信要求に含まれる区間指定に該当する区間を読み出し、クライアント端末２に送信する。その後、図８に示される処理が終了する。
【００８８】
ＯＰ８では、送信制御部１７は、送信用ファイル格納部１４からファイル送信要求の対象のファイルに対応する自己復元形式ファイルを読み出し、クライアント端末２に送信する。その後、図８に示される処理が終了する。
【００８９】
ＯＰ９からＯＰ１１の処理は、ファイル送信要求の対象のファイルに対応するソフトウェアパッケージを送信する処理である。ＯＰ９では、送信制御部１７は、ファイル送信要求に区間指定が含まれているか否かを判定する。ファイル送信要求に区間指定が含まれている場合には（ＯＰ９：ＹＥＳ）、処理がＯＰ１０に進む。ファイル送信要求に区間指定が含まれていない場合には（ＯＰ９：ＮＯ）、処理がＯＰ１１に進む。
【００９０】
ＯＰ１０では、送信制御部１７は、ソフトウェアパッケージ格納部１２からファイル送信要求の対象のファイルに対応するソフトウェアパッケージのファイル送信要求に含まれる区間指定に該当する区間を読み出し、クライアント端末２に送信する。その後、図８に示される処理が終了する。
【００９１】
ＯＰ１１では、送信制御部１７は、ソフトウェアパッケージ格納部１２からファイル送信要求の対象のファイルに対応するソフトウェアパッケージを読み出し、クライアント端末２に送信する。その後、図８に示される処理が終了する。
【００９２】
図９Ａ、図９Ｂ、及び、図９Ｃは、第１実施形態に係るクライアント端末２の処理のフローチャートの一例である。図９Ａに示される処理は、更新ソフトウェアダウンロード制御プログラムが起動されると開始される。図９Ａ〜図９Ｃに示される処理の実行主体は、クライアント端末２のＣＰＵであるが、便宜上、クライアント端末２のＣＰＵが更新ソフトウェアダウンロード制御プログラムを実行することによって達成される機能構成要素である受信制御部２１を主体として説明される。
【００９３】
ＯＰ２１では、受信制御部２１は、クライアント端末２の実行環境情報を取得する。実行環境情報は、例えば、ＯＳに問い合わせることによって取得される。
【００９４】
ＯＰ２２では、受信制御部２１は、サーバ１に更新対象のソフトウェアの一覧要求を送信する。更新対象のソフトウェアの一覧要求には、ＯＰ２１で取得されたクライアント端末２の実行環境情報が含まれている。
【００９５】
ＯＰ２３では、受信制御部２１は、サーバ１から、クライアント端末２の実行環境情報に応じた更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とが受信されたか否かを判定する。サーバ１からソフトウェアの更新対象のソフトウェアの一覧情報と当該ソフトウェアの更新ファイルのファイル構成情報とが受信された場合には（ＯＰ２３：ＹＥＳ）、受信制御部２１は、受信したソフトウェアの更新ファイルのファイル構成情報を一時記憶部２９に格納する。処理がＯＰ２４に進む。サーバ１から更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とが受信されない場合には（ＯＰ２３：ＮＯ）、例えば、エラーとなり、図９Ａに示される処理が終了する。
【００９６】
ＯＰ２４では、受信制御部２１は、サーバ１から受信された更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれているか否かを判定する。サーバ１から更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれている場合には（ＯＰ２４：ＹＥＳ）、処理がＯＰ２５に進む。サーバ１から受信された更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれていない場合には（ＯＰ２４：ＮＯ）、図９Ａに示される処理が終了する。
【００９７】
ＯＰ２５では、受信制御部２１は、サーバ１から更新対象のソフトウェアの一覧情報の中から、更新可能なソフトウェアの更新ファイルを抽出する。例えば、サーバ１から受信された更新対象のソフトウェアの一覧情報のうち、クライアント端末２において既に更新済みのソフトウェアの情報は除外される。
【００９８】
ＯＰ２６では、受信制御部２１は、更新対象一覧画面をディスプレイに表示させる。更新対象一覧画面には、ＯＰ２５において抽出した更新可能なソフトウェアのソフトウェア名が含まれている。
【００９９】
ＯＰ２７では、受信制御部２１は、ユーザ操作による更新開始指示の入力を待機する。更新開始指示のユーザ操作が入力されると（ＯＰ２７：ＹＥＳ）、処理が図９ＢのＯＰ２８に進む。更新開始指示のユーザ操作が入力されないまま、例えば、更新ソフトウェアダウンロード制御プログラムの停止のユーザ操作が入力されると（ＯＰ２７：ＮＯ）、図９Ａに示される処理が終了する。更新ソフトウェアダウンロード制御プログラムの停止のユーザ操作は、例えば、更新対象一覧画面を閉じる操作である。
【０１００】
図９ＢのＯＰ２８では、受信制御部２１は、ユーザによって選択された更新対象のソフトウェアの更新ファイルである自己復元形式ファイルの復元プログラム部分が取得済みであるか否かを判定する。更新対象のソフトウェアの更新ファイルである自己復元形式ファイルを、以降、ダウンロード対象の自己復元形式ファイルと称する。
【０１０１】
例えば、ダウンロード対象の自己復元形式ファイルと、復元プログラム部分格納部２４に格納されている復元プログラム部分の抽出元の自己復元形式ファイルと、で作成プログラムのプログラム名が一致する場合に、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みであることが判定される。自己復元形式ファイルの作成プログラムのプログラム名は、自己復元形式ファイルのファイル構成情報から取得される。
【０１０２】
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みである場合には（ＯＰ２８：ＹＥＳ）、処理が図９ＣのＯＰ３４に進む。ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みでない場合には（ＯＰ２８：ＮＯ）、処理がＯＰ２９に進む。
【０１０３】
ＯＰ２９では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルについてファイル送信要求をサーバ１に送信する。ＯＰ２９で送信されるファイル送信要求には、区間指定は含まれていない。ＯＰ２９で送信されるファイル送信要求は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分と圧縮データ部分とを含むファイル全体の送信を要求するものである。
【０１０４】
ＯＰ３０では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルが受信されたか否かを判定する。ダウンロード対象の自己復元形式ファイルが受信された場合には（ＯＰ３０：ＹＥＳ）、処理がＯＰ３１に進む。ダウンロード対象の自己復元形式ファイルが受信されない場合には（ＯＰ３０：ＮＯ）、受信制御部２１は、例えば、ダウンロード対象の自己復元形式ファイルが受信されるまで待機する。
【０１０５】
ＯＰ３１では、受信制御部２１は、受信した自己復元形式ファイルを受信ファイル格納部２２に格納する。ＯＰ３２では、受信制御部２１は、受信した自己復元形式ファイルから復元プログラム部分を抽出するように、復元プログラム部分抽出部２３に指示する。これによって、ＯＰ３０で受信された自己復元形式ファイルから復元プログラム部分が抽出され、抽出された復元プログラム部分が復元プログラム部分格納部２４に格納される。受信された自己復元形式ファイルの復元プログラム部分の格納位置は、受信された自己復元形式ファイルのファイル構成情報から取得される。
【０１０６】
ＯＰ３３では、受信制御部２１は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロー
ド対象となる自己復元形式ファイルが存在する場合には（ＯＰ３３：ＹＥＳ）、処理がＯＰ２８に進み、次のダウンロード対象のファイルについてＯＰ２８からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には（ＯＰ３３：ＮＯ）、図９Ｂに示される処理が終了する。
【０１０７】
図９Ｃに示される処理は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みである場合の処理である。ＯＰ３４では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルのファイル構成情報から、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の区間を取得する。
【０１０８】
ＯＰ３５では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の１区間についてのファイル送信要求をサーバ１に送信する。ＯＰ３５において送信されるファイル送信要求には、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の１区間を指定する区間指定が含まれている。
【０１０９】
ＯＰ３６では、受信制御部２１は、ＯＰ３５において送信されたファイル送信要求の対象の区間のデータが受信されたか否かを判定する。ＯＰ３５において送信されたファイル送信要求の対象の区間のデータが受信された場合には（ＯＰ３６：ＹＥＳ）、受信制御部２１は、受信した区間のデータを一時記憶部２９に格納し、処理がＯＰ３７に進む。ＯＰ３５において送信されたファイル送信要求の対象の区間のデータが受信されない場合には（ＯＰ３６：ＮＯ）、当該区間のデータが受信されるまで受信制御部２１は待機する。
【０１１０】
ＯＰ３７では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在するか否かを判定する。例えば、復元プログラム部分が自己復元形式ファイルの先頭又は末尾以外に存在する場合には、圧縮データ部分が複数存在するので、ＯＰ３７の判定はＹＥＳとなる。ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在する場合には（ＯＰ３７：ＹＥＳ）、処理がＯＰ３５に進み、次の圧縮データの部分の区間について、ＯＰ３５からの処理が行われる。
【０１１１】
ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在しない場合には（ＯＰ３７：ＮＯ）、処理がＯＰ３８に進む。
【０１１２】
ＯＰ３８では、受信制御部２１は、受信した自己復元形式ファイルの圧縮データ部分と対応する復元プログラム部分とを結合するように受信データ結合部２５に指示する。受信制御部２１からの指示を受けて、受信データ結合部２５は、指定された自己復元形式ファイルの圧縮データ部分を一時記憶部２９から読み出し、当該圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部２４から読み出し、当該圧縮データ部分と当該復元プログラム部分とを結合させて、自己復元形式ファイルを取得する。受信データ結合部２５は、例えば、ファイル構成情報に基づいて、指定された自己復元形式ファイルの圧縮データ部分を含む自己復元形式ファイルと作成元のプログラムのプログラム名が一致する、復元プログラム部分格納部２４に格納されている復元プログラム部分を含む自己復元形式ファイルを特定することによって、指定された自己復元形式ファイルの圧縮データ部分に対応する復元プログラム部分を特定する。
【０１１３】
ＯＰ３９では、受信制御部２１は、自己復元形式ファイルの作成が成功したか否かを判定する。自己復元形式ファイルの作成の成功又は失敗は、受信データ結合部２５から受信制御部２１に入力される。自己復元形式ファイルの作成が成功した場合には（ＯＰ３９：ＹＥＳ）、処理がＯＰ４２に進む。自己復元形式ファイルの作成が失敗した場合には（ＯＰ３９：ＮＯ）、処理がＯＰ４０に進む。
【０１１４】
ＯＰ４０では、受信制御部２１は、自己復元形式ファイルの作成が失敗したので、ダウンロード対象の自己復元形式ファイルに対応するソフトウェアパッケージについてファイル送信要求をサーバ１に送信する。ＯＰ４１では、受信制御部２１は、サーバ１から受信したソフトウェアパッケージを受信ファイル格納部２２に格納する。
【０１１５】
ＯＰ４２では、受信制御部２１は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には（ＯＰ４２：ＹＥＳ）、処理が図９ＢのＯＰ２８に進み、次のダウンロード対象のファイルについて図９ＢのＯＰ２８からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には（ＯＰ４２：ＮＯ）、図９Ｃに示される処理が終了する。
【０１１６】
図１０は、第１実施形態に係るソフトウェア配信システム１００におけるサーバ１とクライアント端末２間の処理のシーケンスの一例を示す図である。図１０に示される例の前提条件として、クライアント端末２は、いずれの復元プログラム部分も保持していないこととする。
【０１１７】
Ｓ１では、クライアント端末２は、ユーザ操作による更新ソフトウェアダウンロード制御プログラムの起動によって、更新対象のソフトウェアの一覧表示の指示の入力を受ける。Ｓ２では、クライアント端末２は、更新対象のソフトウェアの一覧要求をサーバ１に送信する（図９Ａ、ＯＰ２２）。
【０１１８】
Ｓ３では、サーバ１は、クライアント端末２から更新対象のソフトウェアの一覧要求を受信し（図８、ＯＰ１：ＹＥＳ）、クライアント端末２の実行環境情報に応じた更新ソフトウェアの一覧情報とファイル構成情報とをクライアント端末２に送信する（図８、ＯＰ３）。例えば、Ｓ３においてサーバ１から送信される更新ソフトウェアの一覧情報には、ソフトウェアＡ〜Ｇのソフトウェア名が含まれていることとする。また、Ｓ３においてサーバ１から送信されるファイル構成情報には、ソフトウェアＡ〜Ｆの作成元のプログラムとしてプログラムＸ、ソフトウェアＧの作成元のプログラムとしてプログラムＹが含まれていることとする。
【０１１９】
Ｓ４では、クライアント端末２は、更新対象一覧画面において、サーバ１から受信した更新ソフトウェアの一覧情報から更新可能なソフトウェアの一覧を表示する（図９Ａ、ＯＰ２６）。Ｓ５では、クライアント端末２は、更新開始指示の入力を受ける（図９Ａ、ＯＰ２７：ＹＥＳ）。例えば、更新対象一覧画面において、ソフトウェアＡ〜Ｇが表示され、ユーザによって、更新対象として、ソフトウェアＡ〜Ｇが選択されたとする。
【０１２０】
Ｓ６では、クライアント端末２は、１つ目のダウンロード対象としてソフトウェアＡの更新ファイルについてファイル送信要求をサーバ１に送信する。クライアント端末２は、いずれの復元プログラム部分も保持していないので、Ｓ６において送信されるファイル送信要求は、区間指定を含んでおらず、ソフトウェアＡの更新ファイル全体を要求するものである（図９Ｂ、ＯＰ２８：ＮＯ、ＯＰ２９）。
【０１２１】
Ｓ７では、サーバ１は、クライアント端末２からのソフトウェアＡの更新ファイルについてのファイル送信要求を受信し（図８、ＯＰ４：ＹＥＳ）、ソフトウェアＡの更新ファイルをクライアント端末２に送信する（図８、ＯＰ６：ＮＯ、ＯＰ８）。
【０１２２】
Ｓ８では、クライアント端末２は、ソフトウェアＡの更新ファイルを受信し（図９Ｂ、ＯＰ３０：ＹＥＳ）、ソフトウェアＡの更新ファイルから復元プログラム部分を抽出する
（図９Ｂ、ＯＰ３２）。
【０１２３】
Ｓ９では、クライアント端末２は、２つ目のダウンロード対象としてソフトウェアＢの更新ファイルについてファイル送信要求をサーバ１に送信する。クライアント端末２は、ソフトウェアＡの復元プログラム部分を保持しており、ソフトウェアＡとソフトウェアＢとは、いずれも自己復元形式ファイルの作成元の作成プログラムがプログラムＸである。そのため、Ｓ９において送信されるファイル送信要求は、ソフトウェアＢの圧縮データ部分について区間指定を含む（図９Ｂ、ＯＰ２８：ＹＥＳ、図９Ｃ、ＯＰ３５）。
【０１２４】
Ｓ１０では、サーバ１は、クライアント端末２からのソフトウェアＢの更新ファイルについてのファイル送信要求を受信し（図８、ＯＰ４：ＹＥＳ）、指定されたソフトウェアＢの圧縮データ部分をクライアント端末２に送信する（図８、ＯＰ６：ＹＥＳ、ＯＰ７）。
【０１２５】
Ｓ１１では、クライアント端末２は、サーバ１から受信したソフトウェアＢの圧縮データ部分と、保持しているソフトウェアＡの復元プログラム部分とを結合して、ソフトウェアＢの更新ファイルを取得する（図９Ｃ、ＯＰ３８）。
【０１２６】
Ｓ１２では、クライアント端末２は、次のダウンロード対象としてソフトウェアＣの更新ファイルについてファイル送信要求をサーバ１に送信する。Ｓ１２において送信されるファイル送信要求は、ソフトウェアＣの圧縮データ部分について区間指定を含む（図９Ｂ、ＯＰ２８：ＹＥＳ、図９Ｃ、ＯＰ３５）。以降、ソフトウェアＣ〜Ｆについて、Ｓ９〜Ｓ１１と同様の処理が行われる。
【０１２７】
Ｓ１３では、クライアント端末２は、ダウンロード対象としてソフトウェアＧの更新ファイルについてファイル送信要求をサーバ１に送信する。クライアント端末２は、ソフトウェアＡの復元プログラム部分を保持している。しかしながら、ソフトウェアＡの自己復元形式ファイルの作成元の作成プログラムはプログラムＸであり、ソフトウェアＧの自己復元形式ファイルの作成元の作成プログラムはプログラムＹである。したがって、クライアント端末２は、ソフトウェアＧの自己復元形式ファイルに対応する復元プログラム部分を保持していない。Ｓ１３において送信されるファイル送信要求は、区間指定を含んでおらず、ソフトウェアＣの更新ファイル全体を要求するものである（図９Ｂ、ＯＰ２８：ＮＯ、ＯＰ２９）。
【０１２８】
Ｓ１４では、サーバ１は、クライアント端末２からのソフトウェアＧの更新ファイルについてのファイル送信要求を受信し（図８、ＯＰ４：ＹＥＳ）、ソフトウェアＧの更新ファイルをクライアント端末２に送信する（図８、ＯＰ６：ＮＯ、ＯＰ８）。
【０１２９】
Ｓ１５では、クライアント端末２は、ソフトウェアＧの更新ファイルを受信し（図９Ｂ、ＯＰ３０：ＹＥＳ）、ソフトウェアＧの更新ファイルから復元プログラム部分を抽出する（図９Ｂ、ＯＰ３２）。ソフトウェアＧは更新対象の最後のソフトウェアであるので、クライアント端末２の更新対象のソフトウェアの更新ファイルのダウンロードの処理は終了する。以降、適宜、各ソフトウェアＡ〜Ｇは、自己復元形式ファイルがソフトウェアパッケージに復元され、ソフトウェアパッケージがインストールされて、更新される。
【０１３０】
＜第１実施形態の作用効果＞
第１実施形態では、クライアント端末２は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部２４に保持されている場合には、ダウンロード対象の自己復元形式ファイルの圧縮データ部分をダウンロードする。これによって、重複する復元プログラム部分のダウンロードを省略することができ、自己復元形式フ
ァイルのダウンロードに係る通信量を削減することができる。
【０１３１】
また、第１実施形態では、クライアント端末２は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部２４に保持されていない場合には、当該自己復元形式ファイルを復元プログラム部分を含めてダウンロードする。クライアント端末２は、ダウンロードした自己復元形式ファイルから復元プログラム部分を抽出して、復元プログラム部分格納部２４に保持する。これによって、クライアント端末２が復元プログラム部分を保持していない場合でも、ダウンロードした自己復元式ファイルから復元プログラム部分を取得することができる。また、当該自己復元形式ファイル以降にダウンロードされる自己復元形式ファイルの作成元のプログラムと同じプログラムによって作成された自己復元形式ファイルの復元プログラム部分のダウンロードを省略することができ、自己復元形式ファイルのダウンロードに係る通信量を削減することができる。
【０１３２】
また、第１実施形態では、クライアント端末２はサーバ１からファイル構成情報を取得する。ファイル構成情報には、例えば、自己復元形式ファイルの作成元の作成プログラムのプログラム名と、復元プログラム部分の格納位置を示す情報が含まれている。ファイル構成情報によって、クライアント端末２は、ダウンロード対象の複数の自己復元形式ファイルの復元プログラム部分の格納位置がファイルごとに異なっている場合でも、対応する復元プログラム部分が保持されている場合には、復元プログラム部分のダウンロードを省略することができる。また、ファイル構成情報によって、クライアント端末２は、ダウンロード対象の複数の自己復元形式ファイルの作成元の作成プログラムのプログラム名が異なっている場合でも、同じ作成元の作成プログラムの自己復元形式ファイルの復元プログラム部分が取得済みであるか否かを判定できる。
【０１３３】
また、第１実施形態では、クライアント端末２がファイル送信要求に区間指定を含めることによって、クライアント端末２が自己復元形式ファイルの復元プログラム部分を除いて自己復元形式ファイルをダウンロードすることができる。
【０１３４】
また、第１実施形態では、クライアント端末２が自己復元形式ファイルをダウンロードするか、圧縮データ部分をダウンロードするかを判定するので、自己復元形式ファイルの送信要求の処理に係るサーバ１の処理負荷の増加を抑制することができる。
【０１３５】
また、第１実施形態では、サーバ１は、自己復元形式ファイルの送信要求の発生よりも前に、圧縮データ部分、自己復元形式ファイル、及び、ファイル構成情報を生成し、記憶しておく。これによって、自己復元形式ファイルの送信要求が発生に応じて、圧縮データ部分、自己復元形式ファイル、及び、ファイル構成情報の生成処理を行わなくてよくなり、自己復元形式ファイルの送信要求の処理に係るサーバ１の処理負荷の増加を抑制することができる。
【０１３６】
＜第２実施形態＞
第１実施形態では、クライアント端末２が自己復元形式ファイルをダウンロードするか、自己復元形式ファイルの圧縮データ部分をダウンロードするかの判定を行う。第２実施形態では、自己復元形式ファイルをダウンロードするか、自己復元形式ファイルの圧縮データ部分をダウンロードするかの判定を、サーバ１が行う。第２実施形態では、第１実施形態と共通する説明は省略される。
【０１３７】
第２実施形態では、ソフトウェア配信システム１００のシステム構成、サーバ１及びクライアント端末２のハードウェア構成及び機能構成は、第１実施形態と同様である。第２実施形態において、サーバ１の送信制御部１７とクライアント端末２の受信制御部２１との処理は、第１実施形態と異なる。
【０１３８】
第２実施形態では、クライアント端末２の受信制御部２１は、自己復元形式ファイルをダウンロードする際に、自己復元形式ファイルの復元プログラム部分が取得済みであるか否かの判定を行わない。第２実施形態では、クライアント端末２の受信制御部２１が自己復元形式ファイルをダウンロードする際に送信するいずれのファイル送信要求にも、区間指定が含まれない。第２実施形態に係るクライアント端末２の受信制御部２１の処理の詳細は後述される。
【０１３９】
第２実施形態では、サーバ１の送信制御部１７は、クライアント端末２に自己復元形式ファイルを送信する際に、送信対象の自己復元形式ファイルの復元プログラム部分を送信済みであるか否かを判定する。送信対象の自己復元形式ファイルの復元プログラム部分を送信済みでない場合には、サーバ１の送信制御部１７は、送信対象の自己復元形式ファイル全体をクライアント端末２に送信する。送信対象の自己復元形式ファイルの復元プログラム部分を送信済みである場合には、サーバ１の送信制御部１７は、送信対象の自己復元形式ファイルの圧縮データ部分をクライアント端末２に送信する。第２実施形態に係るサーバ１の送信制御部１７の処理の詳細は後述される。
【０１４０】
また、第２実施形態では、ファイル構成情報には、ファイル名、作成元の作成プログラムのプログラム名、復元プログラム部分の格納位置に加えて、自己復元形式ファイルのサイズが含まれる。ファイル構成情報に、自己復元形式ファイルのサイズが含まれることによって、クライアント端末２は、サーバ１から受信した自己復元形式ファイルが、自己復元形式ファイル全体であるのか、圧縮データ部分であるのかを判定することができる。
【０１４１】
図１１は、第２実施形態に係るサーバ１の処理のフローチャートの一例である。図１１に示される処理は、例えば、サーバ１がクライアント端末２から送信要求を受信すると開始される。図１１に示される処理の実行主体は、サーバ１のＣＰＵ  １０１であるが、便宜上、ＣＰＵ  １０１がファイル配信プログラム１０５Ｐを実行することによって達成される機能構成である送信制御部１７を主体として説明される。
【０１４２】
ＯＰ５１からＯＰ５５の処理は、図８のＯＰ１からＯＰ３の処理と同様である。受信した送信要求が更新対象のソフトウェアの一覧要求である場合には（ＯＰ５１：ＹＥＳ）、送信制御部１７は、例えば、クライアント端末２の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とをファイル構成情報格納部１６から取得し（ＯＰ５２）、クライアント端末２に送信する（ＯＰ５３）。
【０１４３】
受信した送信要求が更新対象のファイル送信要求であり（ＯＰ５４：ＹＥＳ）、ファイル送信要求に含まれるファイル名に対応する自己復元形式ファイルが送信用ファイル格納部１４に格納されている場合には（ＯＰ５５：ＹＥＳ）、処理がＯＰ５７に進む。該当する自己復元形式ファイルが送信用ファイル格納部１４に格納されていない場合には（ＯＰ５５：ＮＯ）、送信制御部１７は、ファイル送信要求に含まれるファイル名に対応するソフトウェアパッケージの送信を判定し、処理がＯＰ５６に進む。
【０１４４】
ＯＰ５６では、送信制御部１７は、ファイル送信要求に含まれるファイル名に対応するソフトウェアパッケージをソフトウェアパッケージ格納部１２から読み出して、クライアント端末２に送信する。その後、図１１に示される処理が終了する。
【０１４５】
ＯＰ５７からＯＰ６０の処理は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルを送信する場合の処理である。ＯＰ５７では、送信制御部１７は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が送信済みであるか否かを判定する。例えば、送信制御部１７は、クライアント端末２に送信
された自己復元形式ファイルのファイル構成情報を主記憶装置１０２内の共有メモリに記録する。当該共有メモリ内のファイル構成情報に、送信対象の自己復元形式ファイルの作成元の作成プログラムのプログラム名とプログラム名が一致するファイル構成情報が含まれている場合に、送信対象の自己復元形式ファイルの復元プログラム部分が送信済みであることを判定する。
【０１４６】
ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が送信済みである場合には（ＯＰ５７：ＹＥＳ）、処理がＯＰ５８に進む。ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が未送信である場合には（ＯＰ５７：ＮＯ）、処理がＯＰ５９に進む。
【０１４７】
ＯＰ５８では、送信制御部１７は、送信用ファイル格納部１４から送信対象の自己復元形式ファイルの圧縮データ部分を読み出し、クライアント端末２に送信する。圧縮データ部分が複数区間に分断されている場合には、ＯＰ５８の処理が複数回実行される。
【０１４８】
ＯＰ５９では、送信制御部１７は、送信用ファイル格納部１４からファイル送信要求の対象のファイルに対応する自己復元形式ファイルを読み出し、クライアント端末２に送信する。
【０１４９】
ＯＰ６０では、送信制御部１７は、ＯＰ５８又はＯＰ５９において送信された自己復元形式ファイルのファイル構成情報を共有メモリに記録する。その後、図１１に示される処理が終了する。なお、共有メモリ内のファイル構成情報は、クライアント端末２へのファイルの送信終了後、所定時間経過後に削除される。
【０１５０】
図１２Ａ、及び、図１２Ｂは、第２実施形態に係るクライアント端末２の処理のフローチャートの一例である。図１２Ａ及び図１２Ｂに示される処理は、第２実施形態において、図９Ａに示される処理に続いて図９Ｂ及び図９Ｃの代わりに実行される処理である。すなわち、第２実施形態においても、図９Ａに示される処理は実行される。図１２Ａ及び図１２Ｂに示される処理の実行主体は、クライアント端末２のＣＰＵであるが、便宜上、クライアント端末２のＣＰＵが更新ソフトウェアダウンロード制御プログラムを実行することによって達成される機能構成要素である受信制御部２１を主体として説明される。
【０１５１】
ＯＰ７１では、受信制御部２１は、更新対象のソフトウェアの更新ファイルである自己復元形式ファイルについて、ファイル送信要求をサーバ１に送信する。更新対象のソフトウェアの更新ファイルである自己復元形式ファイルを、以降、ダウンロード対象の自己復元形式ファイルと称する。
【０１５２】
ＯＰ７２では、受信制御部２１は、ＯＰ７１において送信されたファイル送信要求に対する応答としてのデータが受信されたか否かを判定する。ファイル送信要求に対する応答としてのデータが受信された場合には（ＯＰ７２：ＹＥＳ）、処理がＯＰ７３に進む。ファイル送信要求に対する応答としてのデータが受信されない場合には（ＯＰ７２：ＮＯ）、受信制御部２１は、ファイル送信要求に対する応答としてのデータが受信されるまで待機する。
【０１５３】
ＯＰ７３では、受信制御部２１は、サーバ１から受信したデータが自己復元形式ファイル全体であるか否かを判定する。例えば、ダウンロード対象の自己復元形式ファイルのサイズと、サーバ１から受信されたデータのサイズとが一致する場合に、送信制御部１７は、サーバ１から受信したデータが自己復元形式ファイル全体であることを判定する。ダウンロード対象の自己復元形式ファイルのサイズは、ファイル構成情報から取得される。
【０１５４】
サーバ１から受信したデータが自己復元形式ファイル全体である場合には（ＯＰ７３：ＹＥＳ）、処理がＯＰ７４に進む。サーバ１から受信したデータが自己復元形式ファイル全体でない場合には（ＯＰ７３：ＮＯ）、サーバ１から受信したデータは圧縮データ部分であると判定され、処理が図１２ＢのＯＰ７７に進む。
【０１５５】
ＯＰ７４では、受信制御部２１は、受信した自己復元形式ファイルを受信ファイル格納部２２に格納する。ＯＰ７５では、受信制御部２１は、受信した自己復元形式ファイルから復元プログラム部分を抽出するように、復元プログラム部分抽出部２３に指示する。これによって、ＯＰ７３で受信された自己復元形式ファイルから復元プログラム部分が抽出され、抽出された復元プログラム部分が復元プログラム部分格納部２４に格納される。受信された自己復元形式ファイルの復元プログラム部分の格納位置は、受信された自己復元形式ファイルのファイル構成情報から取得される。
【０１５６】
ＯＰ７６では、受信制御部２１は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には（ＯＰ７６：ＹＥＳ）、処理がＯＰ７１に進み、次のダウンロード対象のファイルについてＯＰ７１からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には（ＯＰ７６：ＮＯ）、図１２Ａに示される処理が終了する。
【０１５７】
図１２Ｂに示される処理は、サーバ１からダウンロード対象の自己復元形式ファイルの圧縮データ部分が受信された場合の処理である。ＯＰ７７では、受信制御部２１は、ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間があるか否かを判定する。例えば、サーバ１から受信したダウンロード対象の自己復元形式ファイルの圧縮データ部分と復元プログラム部分との合計値が、ダウンロード対象の自己復元形式ファイルのサイズに達しない場合に、受信制御部２１は、次の圧縮データ部分の区間があることを判定する。
【０１５８】
ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間がある場合には（ＯＰ７７：ＹＥＳ）、処理が図１２ＡのＯＰ７２に進む。ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間がない場合には（ＯＰ７７：ＮＯ）、処理がＯＰ７８に進む。
【０１５９】
ＯＰ７８では、受信制御部２１は、受信した自己復元形式ファイルの圧縮データ部分と、対応する復元プログラム部分と、を結合するように受信データ結合部２５に指示する。受信制御部２１からの指示を受けて、受信データ結合部２５は、該当の圧縮データ部分を一時記憶部２９から読み出し、当該圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部２４から読み出し、当該圧縮データ部分と当該復元プログラム部分とを結合させて、自己復元形式ファイルを取得する。
【０１６０】
ＯＰ７９では、受信制御部２１は、自己復元形式ファイルの作成が成功したか否かを判定する。自己復元形式ファイルの作成の成功又は失敗は、受信データ結合部２５から受信制御部２１に入力される。自己復元形式ファイルの作成が成功した場合には（ＯＰ７９：ＹＥＳ）、処理がＯＰ８２に進む。自己復元形式ファイルの作成が失敗した場合には（ＯＰ７９：ＮＯ）、処理がＯＰ８０に進む。
【０１６１】
ＯＰ８０では、受信制御部２１は、自己復元形式ファイルの作成が失敗したので、ダウンロード対象の自己復元形式ファイルに対応するソフトウェアパッケージについてファイル送信要求をサーバ１に送信する。ＯＰ８１では、受信制御部２１は、サーバ１から受信したソフトウェアパッケージを受信ファイル格納部２２に格納する。
【０１６２】
ＯＰ８２では、受信制御部２１は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には（ＯＰ８２：ＹＥＳ）、処理が図１２ＡのＯＰ７１に進み、次のダウンロード対象のファイルについて図１２ＡのＯＰ７１からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には（ＯＰ８２：ＮＯ）、図１２Ｂに示される処理が終了する。
【０１６３】
＜第２実施形態の作用効果＞
第２実施形態では、サーバ１が送信対象の自己復元形式ファイルのファイル全体を送信するか、圧縮データ部分を送信するかの判定を行う。送信対象の自己復元形式ファイルの復元プログラム部分がクライアント端末２に送信済みである場合には、サーバ１は送信対象の自己復元形式ファイルの圧縮データ部分を送信する。したがって、第２実施形態によれば、複数の自己復元形式ファイルの配信において、重複する復元プログラム部分の送信を省略することができ、複数の自己復元形式ファイルの配信に係る通信量を削減することができる。
【０１６４】
＜その他＞
第１実施形態及び第２実施形態において、クライアント端末２が保持する復元プログラム部分は、サーバ１からダウンロードした自己復元形式ファイルから抽出して取得される。ただし、これに限定されず、クライアント端末２に、予め、複数種類の自己復元形式ファイルの復元プログラム部分を記憶させてもよい。または、クライアント端末２がサーバ１に復元プログラム部分について送信要求を送信して取得してもよい。
【０１６５】
クライアント端末２の復元プログラム部分格納部２４に格納されている復元プログラム部分は、一括ダウンロードの処理が終了すると削除される。この場合には、クライアント端末２のメモリ資源の圧迫を抑制することができる。ただし、これに限られず、クライアント端末２の復元プログラム部分格納部２４に格納されている復元プログラム部分は、一括ダウンロードの処理が終了しても復元プログラム部分格納部２４に保持されたままであってもよい。この場合には、復元プログラム部分格納部２４に格納されている復元プログラム部分を含む自己復元形式ファイルのファイル構成情報も併せて保存してもよい。これによって、次回のダウンロード処理の際に、自己復元形式ファイル全体をダウンロードして復元プログラム部分を抽出する処理を省くことができる。
【０１６６】
第１実施形態及び第２実施形態において、自己復元形式ファイルが、復元プログラム部分と圧縮データ部分以外のデータを含む場合には、圧縮データ部分とともに当該データは送信される。自己復元形式ファイルの復元プログラム部分と圧縮データ部分以外のデータは、例えば、ファイルのインデックスである。
【０１６７】
また、第１実施形態及び第２実施形態において、ファイル構成情報は、更新対象のソフトウェアの一覧情報とともにクライアント端末２に送信されるが、クライアント端末２のファイル構成情報の取得方法はこれに限定されない。例えば、ファイル構成情報は、自己復元形式ファイル所定の位置に埋め込まれており、クライアント端末２は自己復元形式ファイルの当該所定の位置からファイル構成情報を取得してもよい。また、例えば、ファイル構成情報は、予め、クライアント端末２に記憶されていてもよい。また、ファイル構成情報は、更新対象のソフトウェアの一覧情報とともにサーバ１から取得されるのではなく、自己復元形式ファイルについてファイル送信要求が発生する度に、サーバ１に要求して取得されてもよい。
【０１６８】
また、サーバ１において使用される自己復元形式ファイルの作成プログラムが１種類で
あり、当該作成プログラムのプログラム名が判明しており、且つ、当該作成プログラムによって作成される自己復元形式ファイル内の復元プログラム部分の格納位置が判明している場合には、サーバ１はファイル構成情報を作成しなくてもよい。この場合には、例えば、クライアント端末２の補助記憶装置の所定の記憶領域に、サーバ１において使用される自己復元形式ファイルの作成プログラムの復元プログラム部分と、復元プログラムの格納位置とを格納しておけばよい。第２実施形態の場合には、サーバ１の補助記憶装置１０５の所定の記憶領域にも、サーバ１において使用される自己復元形式ファイルの作成プログラムの復元プログラム部分の格納位置を格納しておく。
【０１６９】
第１実施形態及び第２実施形態において、圧縮データ部分の圧縮方式がクライアント端末２が取得済みの復元プログラム部分が対応する圧縮方式と異なる場合には、当該圧縮データ部分と取得済みの復元プログラム部分とを結合して取得される自己復元形式ファイルは、復元に失敗する。この場合に、クライアント端末２のファイル復元部２６は、自己復元形式ファイルの復元の失敗を受信制御部２１に通知し、受信制御部２１は、当該自己復元形式ファイル全体をサーバ１からダウンロードするようにしてもよい。これによって、クライアント端末２が取得済みの復元プログラム部分が対応する圧縮方式と異なる圧縮方式で作成された圧縮データ部分がダウンロードされた場合でも、当該圧縮データ部分を含む自己復元形式ファイルを取得することができる。
【０１７０】
第１実施形態及び第２実施形態では、サーバ１によって用いられる自己復元形式ファイルの作成プログラムは、当該作成プログラムによって作成された自己復元形式ファイルの復元プログラム部分が共通するものであることが前提として説明された。ただし、これに限定されず、サーバ１によって用いられる自己復元形式ファイルの作成プログラムは、複数のデータ圧縮方式に対応し、圧縮データ部分のデータ圧縮方式に応じて復元プログラム部分が異なるものが用いられてもよい。
【０１７１】
この場合には、ファイル構成情報には、ファイル名、作成元のプログラムのプログラム名、復元プログラム部分の格納位置に加えて、圧縮データ部分の圧縮方式の情報が含まれる。クライアント端末２の受信制御部２１は、例えば、ダウンロード対象の自己復元形式ファイルと、ファイル構成情報の作成元のプログラムのプログラム名及び圧縮データ部分の圧縮方式が一致する自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部２４に格納されているか否かを判定することで、ダウンロード対象の自己復元形式ファイルの復元プログラム部分を取得済みであるか否かを判定する。
【０１７２】
＜プロセッサ＞
上記実施形態において、サーバ１及びクライアント端末２は、ＣＰＵを備え、主記憶装置内にプログラムから展開された命令を実行することによって、説明された処理を実行する。ＣＰＵは、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵは、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。上記各部の少なくとも一部の処理は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit（GPU）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、上記各部の少なくとも一部の処理は、集積回路（ＩＣ）、その他のディジタル回路であっても良い。また、上記各部の少なくとも一部にアナログ回路が含まれても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circuit（ASIC）、プログラマブルロジックデバイス（ＰＬＤ
）を含む。ＰＬＤは、例えば、Field-Programmable Gate Array(FPGA)を含む。上記各部
は、プロセッサと集積回路との組み合わせであっても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip），システムＬＳＩ、チップセットなどと呼ばれる。
【０１７３】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１７４】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（リードオンリーメモリ）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
【符号の説明】
【０１７５】
１      サーバ
２      クライアント端末
１１    ソフトウェアパッケージ登録部
１２、２７    ソフトウェアパッケージ格納部
１３    ファイル変換部
１４    送信用ファイル格納部
１５    ファイル解析部
１６    ファイル構成情報格納部
１７    送信制御部
２１    受信制御部
２２    受信ファイル格納部
２３    復元プログラム部分抽出部
２４    復元プログラム部分格納部
２５    受信データ結合部
２６    ファイル復元部
２８    インストール部
１０１    ＣＰＵ
１０２    主記憶装置
１０３    入力装置
１０４    出力装置
１０５    補助記憶装置
１０５Ｐ    ファイル配信プログラム
【図１】
2018180767.tif 000003
【図２】
2018180767.tif 000004
【図３】
2018180767.tif 000005
【図４】
2018180767.tif 000006
【図５】
2018180767.tif 000007
【図６】
2018180767.tif 000008
【図７】
2018180767.tif 000009
【図８】
2018180767.tif 000010
【図９Ａ】
2018180767.tif 000011
【図９Ｂ】
2018180767.tif 000012
【図９Ｃ】
2018180767.tif 000013
【図１０】
2018180767.tif 000014
【図１１】
2018180767.tif 000015
【図１２Ａ】
2018180767.tif 000016
【図１２Ｂ】
2018180767.tif 000017