以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
図1は、第1実施形態に係るソフトウェア配信システム100のシステム構成の一例を示す図である。ソフトウェア配信システム100は、サーバ1と、クライアント端末2とを含む。
サーバ1は、例えば、クライアント端末2の製造メーカによって管理され、クライアント端末2の機種、型番、OS(Operating System)名、OSのバージョン等ごとのに区分けされた複数のソフトウェアの更新ファイルを自己復元形式ファイルとして保持しているサーバである。ソフトウェアの更新ファイルは、ソフトウェアの更新プログラムが記述されたファイルである。サーバ1は、「生成部」、「記憶部」、「送信部」を備える「情報処理装置」の一例である。
クライアント端末2は、サーバ1に問い合わせて、更新可能な複数のソフトウェアの更新ファイルを一括してダウンロードする。一括ダウンロードとは、一回の指示入力によって、複数のファイルをダウンロードすることである。クライアント端末2は、「記憶部」、「制御部」、「取得部」を備える「情報処理装置」の一例である。
第1実施形態では、クライアント端末2は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に格納されていない場合には、サーバ1から当該自己復元形式ファイル全体をダウンロードする。クライアント端末2は、ダウンロードした自己復元形式ファイルから、復元プログラム部分を抽出して、記憶部に格納する。
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が記憶部に格納されている場合には、クライアント端末2は、サーバ1から当該ファイルの圧縮データ部分を指定してダウンロードする。クライアント端末2は、ダウンロードした圧縮データ部分と記憶部に記憶されている復元プログラム部分とを結合して、自己復元形式ファイルを取得する。これによって、同一の復元プログラム部分を有する自己復元形式ファイルを取得済みである場合に、重複する復元プログラム部分のダウンロードを削減することができる。
なお、ソフトウェアの更新ファイルのダウンロードは、複数の自己復元形式ファイルの一括ダウンロードの一例であって、第1実施形態において説明される技術の適用先は、ソフトウェアの更新ファイルのダウンロードに限定されない。また、第1実施形態において説明される技術の適用先は、複数の自己復元形式ファイルの一括ダウンロードに限定されない。第1実施形態において説明される技術は、自己復元形式ファイルのダウンロードに適用可能である。
図2は、自己復元形式ファイルのデータ構造の一例を示す図である。自己復元形式ファイルは、例えば、拡張子が「.exe」の実行可能なファイルである。自己復元形式ファイルは、復元プログラム部分と、圧縮データ部分とを含む。第1実施形態では、ソフトウェアの更新ファイルは自己復元形式ファイルであるとする。ただし、ソフトウェアの更新ファイルは、自己復元形式ファイルに限定されない。
ソフトウェアの更新ファイルが自己復元形式ファイルである場合には、例えば、自己復元形式ファイルの圧縮データ部分はソフトウェアパッケージが圧縮されたデータである。ソフトウェアパッケージとは、例えば、該当のソフトウェアの本体、該当のソフトウェアのインストール及び実行時に用いられる複数のファイルを含むセットであり、サーバ1及びクライアント端末2においては、例えば、フォルダを含むツリー構造として表示される。
データの圧縮形式は、例えば、自己復元形式ファイルの作成プログラムに依る。例えば、固定の1つのデータ圧縮形式を用いる自己復元形式ファイルの作成プログラムもあれば、複数の中からユーザによって選択されたデータ圧縮形式を用いる自己復元形式ファイルの作成プログラムもある。
また、復元プログラム部分に含まれる復元プログラムの記述が固定されているか可変であるかは、例えば、自己復元形式ファイルの作成プログラムに依る。例えば、自己復元形式ファイルの作成プログラムが固定の1つのデータ圧縮形式を用いるものである場合には、復元プログラム部分に含まれるプログラムの記述は、当該固定の1つのデータ圧縮形式に対応する記述となる。例えば、自己復元形式ファイルの作成プログラムが複数のデータ圧縮形式に対応するものである場合には、復元プログラム部分に含まれるプログラムの記述は、圧縮データ部分の圧縮形式に対応する記述であったり、自己復元形式ファイルの作成プログラムが対応する全てのデータ圧縮方式に対応する記述であったりする。
すなわち、復元プログラム部分のデータは、同じ自己復元形式ファイルの作成プログラムによって作成された自己復元形式ファイル同士であっても、同じデータが含まれている場合と、異なるデータが含まれている場合とがある。なお、第1実施形態では、復元プログラムのデータ部分は、同じ自己復元形式ファイルの作成プログラムによって作成された自己復元形式ファイル同士では、一致することを前提として説明される。
図2に示される例では、復元プログラム部分は自己復元形式ファイルの先頭に格納されているが、復元プログラム部分の格納場所はファイルの先頭に限定されない。例えば、復元プログラム部分の格納場所はファイルの末尾、圧縮データ部分と圧縮データ部分との間であってもよい。自己復元形式ファイル内の復元プログラム部分の格納場所は、自己復元形式ファイルの作成プログラムに依る。
自己復元形式ファイルの作成プログラムには、自己復元形式ファイル内の復元プログラム部分の格納位置が、予め判明しているプログラムと、予め判明していないプログラムとがある。また、自己復元形式ファイルの作成プログラムには、自己復元形式ファイル内の
復元プログラム部分の格納位置が、全ファイルで共通しているものと、ファイルごとに異なるものとが存在する。
<装置構成>
図3は、サーバ1のハードウェア構成の一例を示す図である。サーバ1は、例えば、専用又は汎用のコンピュータである。サーバ1は、CPU(Central Processing Unit)1
01、主記憶装置102、入力装置103、出力装置104、補助記憶装置105、ネットワークインタフェース107を備える。また、これらはバス109により互いに接続されている。
入力装置103は、例えば、キーボード、マウス等である。入力装置103から入力されたデータは、CPU 101に出力される。出力装置104は、CPU 101の処理の結果を出力する。出力装置104は、ディスプレイ、プリンタを含む。
補助記憶装置105は、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置105は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置105は、例えば、オペレーティングシステム(OS)、ファイル配信プログラム105P、自己復元形式ファイル作成プログラム、その他様々なアプリケーションプログラムを保持する。ファイル配信プログラム105Pは、送信要求を受けたファイルを配信するためのプログラムである。
主記憶装置102は、CPU 101に、補助記憶装置105に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置102は、例えば、RAM(Random Access Memory)のような半導体メモリを含む。
CPU 101は、補助記憶装置105に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。CPU 101は、1つに限られず、複数備えられてもよい。
ネットワークインタフェース107は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース107は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース107は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等である。ネットワークインタフェース107で受信されたデータ等は、CPU 101に出力される。
なお、図3に示されるサーバ1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、サーバ1は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。例えば、サーバ1は、入力装置103、出力装置104を備えていなくてもよい。
図4は、サーバ1の機能構成の一例を示す図である。サーバ1は、機能構成要素として、ソフトウェアパッケージ登録部11、ソフトウェアパッケージ格納部12、ファイル変換部13、送信用ファイル格納部14、ファイル解析部15、ファイル構成情報格納部1
6、送信制御部17を備える。
ソフトウェアパッケージ登録部11、ソフトウェアパッケージ格納部12、送信用ファイル格納部14、ファイル解析部15、ファイル構成情報格納部16、送信制御部17は、例えば、サーバ1のCPU 101がファイル配信プログラム105Pを実行することによって達成される機能構成要素である。
ソフトウェアパッケージ登録部11は、ユーザインタフェースである。ソフトウェアパッケージ登録部11には、ユーザ操作によるソフトウェアパッケージの入力を受け付ける。ソフトウェアパッケージ登録部11は、入力されたソフトウェアパッケージをソフトウェアパッケージ格納部12に格納する。また、ソフトウェアパッケージ登録部11は、ソフトウェアパッケージをソフトウェアパッケージ格納部12に格納すると、ファイル変換部13に当該ソフトウェアパッケージの自己復元形式ファイルへの変換要求を出力する。
ソフトウェアパッケージ格納部12は、ソフトウェアパッケージを保持する。ソフトウェアパッケージ格納部12は、例えば、補助記憶装置105内のファイル配信プログラム105P用に確保された記憶領域の一部である。
ファイル変換部13は、サーバ1のCPU 101が自己復元形式ファイルの作成プログラムを実行することによって達成される機能構成要素である。サーバ1のCPU 101が実行する自己復元形式ファイルの作成プログラムは、1種類とは限らず、複数種類の自己復元形式ファイルの作成プログラムの中から実行されることもある。
ファイル変換部13は、ソフトウェアパッケージ登録部11から、自己復元形式ファイルへの変換要求の入力を受けると、ソフトウェアパッケージ格納部12に格納されているソフトウェアパッケージを読み出して変換して自己復元形式ファイルを生成する。具体的には、ファイル変換部13は、ソフトウェアパッケージを所定のデータ圧縮方式に従って圧縮して圧縮データ部分を取得し当該圧縮データ部分と復号プログラム部分とを結合して自己復元形式ファイルを取得する。ファイル変換部13は、作成した自己復元形式ファイルを送信用ファイル格納部14に格納する。ファイル変換部13は、「生成部」の一例である。
送信用ファイル格納部14は、自己復元形式ファイルを保持する。送信用ファイル格納部14は、例えば、補助記憶装置105内のファイル配信プログラム105P用に確保された記憶領域の一部である。
ファイル解析部15は、送信用ファイル格納部14に格納された自己復元形式ファイルを解析して、ファイル構成情報を取得する。取得されたファイル構成情報は、ファイル構成情報格納部16に格納される。ファイル構成情報の詳細は後述される。ファイル構成情報は、「ファイル構成情報」の一例である。
ファイル構成情報格納部16は、送信用ファイル格納部14に格納されている自己復元形式ファイルに対応するファイル構成情報を保持する。ファイル構成情報格納部16は、例えば、補助記憶装置105内のファイル配信プログラム105P用に確保された記憶領域の一部である。ファイル構成情報格納部16は、「記憶部」の一例である。
送信制御部17は、クライアント端末2からのファイル送信要求を受信し、対象のファイルを送信する。クライアント端末2からのファイル送信要求にファイルの区間指定が含まれている場合には、送信制御部17は、対象のファイルの区間指定に該当するデータをクライアント端末2に送信する。
また、送信制御部17は、クライアント端末2から更新対象のソフトウェアの一覧要求を受信し、更新対象のソフトウェアの一覧情報と、更新対象の各ソフトウェアの更新ファイルのファイル構成情報とをクライアント端末2に送信する。送信制御部17の処理の詳細は後述される。送信制御部17は、「制御部」の一例である。
なお、ソフトウェアパッケージ格納部12に格納されているソフトウェアパッケージは、例えば、変換により当該ソフトウェアパッケージから自己復元形式ファイルが作成され、送信用ファイル格納部14に格納された場合に、ファイル変換部13によって削除されてもよい。
なお、CPU 101が実行する自己復元形式ファイルの作成プログラムが1種類である場合には、ファイル解析部15が備えられず、ファイル解析部15の代わりにファイル変換部13がファイル構成情報を作成してもよい。
図5は、ファイル構成情報の一例を示す図である。ファイル構成情報は、ソフトウェアパッケージ格納部12に格納されている自己復元形式ファイルに関する情報である。ファイル構成情報は、例えば、ファイル名、自己復元形式ファイルの作成元の作成プログラムのプログラム名、復元プログラムの格納位置を示す情報を含む。
ファイル名は、構成情報の対象となる自己復元形式ファイルを識別するための情報である。ファイル名に限定されず、例えば、送信用ファイル格納部14に格納される自己復元形式ファイルが複数の記憶領域にわたる場合には、記憶領域の位置を含めたパス名にできる。また、ファイル構成情報は自己復元形式ファイルと1対1で対応させなくてもよく、例えば、ワイルドカードの形で指定することによって複数の自己復元形式ファイルを対象として指定させることもできる。
自己復元形式ファイルの作成元の作成プログラムのプログラム名は、自己復元形式ファイルの作成プログラムの種類を識別するための情報である。プログラム名に限定されず、自己復元形式ファイルの作成プログラムの種類を識別可能な情報であれば、ファイル構成情報に含めることができる。自己復元形式ファイルの作成元の作成プログラムのプログラム名は、「自己復元方式ファイルを作成したプログラムの識別情報」の一例である。
復元プログラム部分の格納位置を示す情報は、復元プログラム部分の開始位置又は終了位置と復元プログラムのサイズとの組合せであってもよい。例えば、復元プログラム部分の格納位置を示す情報は、先頭から100バイト、末尾から100バイト、等である。または、復元プログラム部分の格納位置を示す情報は、復元プログラム部分の開始位置と終了位置との組合せであってもよい。例えば、復元プログラム部分の格納位置を示す情報は、先頭から0バイトの位置から100バイトの位置までのように、区間で指定されてもよい。ファイル構成情報に含まれる復元プログラム部分の格納位置を示す情報は、「復元プログラム部分の格納位置に関する情報」の一例である。
なお、図5に示されるファイル構成情報のデータ構造は、一例であって、これに限定されない。例えば、ファイル構成情報は、復元プログラム部分の格納位置を示す情報の代わりに、又は、復元プログラム部分の格納位置を示す情報に加えて、圧縮データ部分の格納位置示す情報を含んでもよい。例えば、ファイル構成情報は、自己復元形式ファイルのサイズを含んでもよい。
図6は、クライアント端末2の機能構成の一例を示す図である。クライアント端末2は、例えば、PC(Personal Computer)、スマートフォン、タブレット端末等の端末装置
である。クライアント端末2のハードウェア構成は、例えば、サーバ1とほぼ同様であり、図示を省略する。クライアント端末2は、ハードウェア構成要素として、例えば、CPU、主記憶装置、補助記憶装置、入力装置、出力装置、ネットワークインタフェースを備える。クライアント端末2は、「情報処理装置」の一例である。
クライアント端末2は、補助記憶装置に、例えば、OS、更新ファイルダウンロード制御プログラム、自己復元形式ファイルを復元するための復元プログラム、ソフトウェアインストールプログラムを備える。更新ファイルダウンロード制御プログラムは、クライアント端末2のソフトウェアの更新ファイルをダウンロードするためのプログラムである。更新ファイルダウンロード制御プログラムは、「情報処理プログラム」の一例である。自己復元形式ファイルを復元するための復元プログラムは、自己復元形式ファイルからソフトウェアパッケージを取得するためのプログラムである。ソフトウェアインストールプログラムは、ソフトウェアパッケージをインストールするためのプログラムである。
クライアント端末2は、機能構成要素として、受信制御部21、受信ファイル格納部22、復元プログラム部分抽出部23、復元プログラム部分格納部24、受信データ結合部25、ファイル復元部26、ソフトウェアパッケージ格納部27、インストール部28、一次記憶部29を備える。
受信制御部21、受信ファイル格納部22、復元プログラム部分抽出部23、復元プログラム部分格納部24、受信データ結合部25は、例えば、クライアント端末2のCPUが更新ファイルダウンロード制御プログラムを実行することによって達成される機能構成要素である。
受信制御部21は、ユーザ操作によって、クライアント端末2のソフトウェアの更新一覧表示の指示が入力されると、サーバ1に更新対象のソフトウェアの一覧要求を送信する。更新対象のソフトウェアの一覧要求には、例えば、クライアント端末2の実行環境情報が含まれる。クライアント端末2の実行環境情報には、例えば、クライアント端末2の機種名、型番、OS名、OSのバージョン等が含まれる。
受信制御部21は、更新対象のソフトウェアの一覧要求の応答として、サーバ1から、クライアント端末2の実行環境情報に応じた更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルである自己復元形式ファイルのファイル構成情報とを受信する。受信制御部21は、受信したファイル構成情報を一時記憶部29に格納する。
受信制御部21は、サーバ1から受信した更新対象ソフトウェアの一覧情報の中からクライアント端末2が更新可能なソフトウェアの情報を抽出し、抽出したソフトウェアのリストを含む更新対象一覧画面をディスプレイに出力する。更新対象一覧画面は、クライアント端末2のユーザに、更新可能なソフトウェアの情報を提供し、更新対象のソフトウェアを選択させるための画面である。更新対象一覧画面の詳細は、後述される。
受信制御部21は、例えば、更新対象一覧画面に対するユーザ操作によって、更新対象のソフトウェアの指定と更新開始との指示の入力を受ける。受信制御部21は、指示の入力を受けると、サーバ1から更新対象のソフトウェアの更新ファイルのダウンロードを開始する。
ダウンロード対象の更新ファイルが複数である場合には、受信制御部21は、各ファイルに対して少なくとも1つの送信要求を送信して、ファイルをダウンロードする。ファイルのダウンロード処理では、受信制御部21は、サーバ1にファイル送信要求を送信し、ファイル送信要求の応答として、対象のファイルをサーバ1から受信する。ファイル送信
要求には、例えば、ダウンロード対象のファイル名と、ダウンロード対象となる区間指定とが含まれている。
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部24に格納されていない場合には、受信制御部21は、当該自己復元形式ファイル全体をサーバ1からダウンロードする。この場合には、ファイル送信要求には、区間指定が含まれない。受信制御部21は、ダウンロードした自己復元形式ファイルを受信ファイル格納部22に格納する。また、受信制御部21は、復元プログラム部分抽出部23に対して、ダウンロードした自己復元形式ファイルから復元プログラム部分を抽出するよう指示を出力する。
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部24に格納されている場合には、受信制御部21は、当該自己復元形式ファイルの復元プログラム部分の格納位置をファイル構成情報から取得し、圧縮データ部分をサーバ1からダウンロードする。この場合には、ファイル送信要求には、圧縮データ部分の区間指定が含まれる。なお、復元プログラム部分の格納位置がファイルの先頭又は末尾でなく、圧縮データ部分が復元プログラム部分によって分断されて複数である場合には、ファイル送信要求は各圧縮データ部分について送信される。受信制御部21は、一時記憶部29に対象の自己復元形式ファイルのダウンロードした圧縮データ部分を格納する。また、受信制御部21は、受信データ結合部25に対して、当該圧縮データ部分と復元プログラム部分との結合の指示と、を出力する。受信制御部21は、「制御部」の一例である。
一時記憶部29は、例えば、一時記憶部29用に確保される主記憶装置102内の共有メモリとして用いられる記憶領域である。一時記憶部29は、ファイル構成情報と自己復元形式ファイルのダウンロードされた圧縮データ部分とを一時的に記憶する。なお、ファイル更新情報は、ダウンロード対象のファイルのダウンロードが完了すると、一時記憶部29から削除される。一次記憶部29は、「第2の記憶部」の一例である。
受信ファイル格納部22は、ダウンロードされた自己復元形式ファイルを保持する。受信ファイル格納部22は、例えば、クライアント端末2の補助記憶装置内の更新ファイルダウンロード制御プログラム用に確保された記憶領域の一部である。
復元プログラム部分抽出部23は、受信制御部21からの指示を受けて、当該指示によって指定された受信ファイル格納部22に格納されている自己復元形式ファイルから復元プログラム部分を抽出する。当該自己復元形式ファイルの復元プログラム部分は、受信制御部21から指定されるファイル名にファイル名が一致するファイル構成情報から取得される。復元プログラム部分抽出部23は、当該自己復元形式ファイルから抽出した復元プログラム部分を復元プログラム部分格納部24に格納する。復元プログラム部分抽出部23は、「抽出部」の一例である。
復元プログラム部分格納部24は、自己復元形式ファイルから抽出された復元プログラム部分を保持する。復元プログラム部分格納部24は、例えば、クライアント端末2の補助記憶装置内の更新ファイルダウンロード制御プログラム用に確保された記憶領域の一部、又は、ユーザによって更新ファイル(自己復元形式ファイル)の格納場所として指定されたクライアント端末2の補助記憶装置内の記憶領域である。復元プログラム部分格納部24は、「記憶部」の一例である。
受信データ結合部25は、受信制御部21から復元プログラム部分と圧縮データ部分との結合の指示の入力を受ける。受信データ結合部25は、例えば、指定されたファイル名に対応する圧縮データ部分を一時記憶部29から取得する。受信データ結合部25は、例
えば、指定されたファイル名にファイル名が一致するファイル構成情報に基づいて、指定されたファイル名の圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部24から取得する。
受信データ結合部25は、当該ファイル構成情報に従った復元プログラム部分の格納位置に復元プログラム部分格納部24から取得した復元プログラム部分を格納し、一時記憶部29から読み出した圧縮データ部分と結合して、自己復元形式ファイルを取得する。
受信データ結合部25は、自己復元形式ファイルの取得の結果を受信制御部21に通知する。自己復元形式ファイルの取得が失敗するのは、例えば、以下の場合である。例えば、復元プログラム部分格納部24にいずれの復元プログラム部分も格納されていない場合である。例えば、一時記憶部29内のファイル構成情報に、指定ファイル名にファイル名が一致するファイル構成情報が含まれていない場合である。例えば、指定ファイル名に対応するファイル構成情報によって示される復元プログラム部分のサイズと復元プログラム部分格納部24から取得された復元プログラム部分とのサイズが一致しない場合である。
受信データ結合部25は、取得した自己復元形式ファイルを受信ファイル格納部22に格納する。受信データ結合部25は、「取得部」の一例である。
ファイル復元部26、ソフトウェアパッケージ格納部27は、例えば、クライアント端末2のCPUが自己復元形式ファイルを復元するための復元プログラムを実行することによって達成される機能構成要素である。
ファイル復元部26は、例えば、受信制御部21からの指示、又は、ユーザ操作による指示の入力に従って、受信ファイル格納部22内の指定された自己復元形式ファイルの復元プログラム部分に含まれる復元プログラムを実行して、圧縮データ部分からソフトウェアパッケージを取得する。ファイル復元部26は、取得したソフトウェアパッケージをソフトウェアパッケージ格納部27に格納する。
ソフトウェアパッケージ格納部27は、ソフトウェアパッケージを保持する。ソフトウェアパッケージ格納部27は、例えば、クライアント端末2の補助記憶装置内の自己復元形式ファイルの復元プログラム用に確保された記憶領域の一部、又は、ユーザによってソフトウェアパッケージの格納場所として指定されたクライアント端末2の補助記憶装置内の記憶領域である。
インストール部28は、例えば、クライアント端末2のCPUがソフトウェアインストールプログラムを実行することによって達成される機能構成要素である。インストール部28は、例えば、受信制御部21からの指示、又は、ユーザ操作による指示の入力に従って、ソフトウェアパッケージ格納部27内のソフトウェアパッケージのインストール処理を行う。
なお、受信ファイル格納部22に格納されている自己復元形式ファイルは、例えば、復元されたソフトウェアパッケージがソフトウェアパッケージ格納部27に格納された場合に、ファイル復元部26によって削除されてもよい。復元プログラム部分格納部24に格納されている復元プログラム部分は、例えば、一括ダウンロードに係る処理が終了した場合に、受信制御部21によって削除されてもよい。ソフトウェアパッケージ格納部27に格納されているソフトウェアパッケージは、例えば、当該ソフトウェアパッケージのインストールが完了した場合に、インストール部28によって削除されてもよい。
図7は、クライアント端末2の更新対象一覧画面の一例である。例えば、更新対象一覧
画面は、ユーザ操作によって更新ファイルダウンロード制御プログラムが起動されると、クライアント端末2のディスプレイに表示される画面である。
更新対象一覧画面には、クライアント端末2の実行環境情報に応じた更新可能なソフトウェアの一覧が表示される。更新対象一覧画面に表示されるソフトウェアは、例えば、サーバ1が保持するソフトウェアとクライアント端末2が保持する同ソフトウェアとの、バージョンの比較、リリース日の比較の結果抽出されたソフトウェアである。いずれの比較においても、クライアント端末2が保持するソフトウェアの情報よりもサーバ1が保持するソフトウェアの情報の方が新しい場合に、更新対象一覧画面に表示されるソフトウェアとして選択される。なお、更新対象一覧画面に、サーバ1から通知された全ソフトウェアの情報を表示してもよい。
更新対象一覧画面中には、表示されるソフトウェア名に対応してチェックボックスが配置されており、ユーザは操作によってチェックボックスにチェックを付けることによって、更新を所望するソフトウェアを選択することができる。
また、更新対象一覧画面には、更新開始ボタンB1が含まれている。例えば、ユーザ操作によって、更新開始ボタンB1が押下されると、チェックボックスにチェックが付けられたソフトウェアの更新ファイルを対象とするダウンロードが開始される。
なお、更新開始ボタンB1の押下によって、ソフトウェアの更新ファイルのダウンロードからインストールまでの処理が行われてもよい。この場合には、受信制御部21によって、ファイル復元部26への自己復元形式ファイルの復元処理の指示、インストール部28へのインストール処理の指示が行われる。
または、更新開始ボタンB1の押下によってソフトウェアの更新ファイルのダウンロードまでが実行されてもよい。この場合には、例えば、対象ファイルを選択するユーザ操作によって、ファイル復元部26への自己復元形式ファイルの復元処理の指示、インストール部28へのインストール処理の指示が行われる。対象ファイルを選択するユーザ操作は、例えば、対象ファイルのアイコンをダブルクリックする操作である。
例えば、ディスプレイに表示された、ユーザ指定の格納場所に格納された自己復元形式ファイルのアイコンがダブルクリックされることによって、ファイル復元部26へ当該自己復元形式ファイルの復元処理の指示が入力され、ソフトウェアパッケージが得られる。例えば、ディスプレイに表示された、ユーザ指定の格納場所に格納されたソフトウェアパッケージ(フォルダ)内の実行ファイルのアイコンがダブルクリックされることによって、インストール部28へ当該ソフトウェアパッケージのインストール処理の指示が入力され、ソフトウェアパッケージがインストールされる。
または、更新開始ボタンB1の押下によってはソフトウェアの更新ファイルのダウンロードまで実行され、ダウンロード後、当該ソフトウェアの更新ファイルのインストールの実行の可否をユーザに問い合わせる画面が表示されてもよい。この場合には、例えば、インストールの実行の可否を問い合わせる画面の制御は、受信制御部21(更新ファイルダウンロード制御プログラム)によって行われる。したがって、この場合には、ファイル復元部26への自己復元形式ファイルの復元処理の指示、インストール部28へのインストール処理の指示は、インストールの実行を指示するユーザ操作の入力に従って、受信制御部21によって、行われる。
<処理の流れ>
図8は、第1実施形態に係るサーバ1の処理のフローチャートの一例である。図8に示
される処理は、例えば、サーバ1がクライアント端末2から送信要求を受信すると開始される。図8に示される処理の実行主体は、サーバ1のCPU 101であるが、便宜上、CPU 101がファイル配信プログラム105Pを実行することによって達成される機能構成である送信制御部17を主体として説明される。
OP1では、送信制御部17は、受信した送信要求が更新対象のソフトウェアの一覧要求であるか否かを判定する。受信した送信要求が更新対象のソフトウェアの一覧要求である場合には(OP1:YES)、処理がOP2に進む。受信した送信要求が更新対象のソフトウェアの一覧要求でない場合には(OP1:NO)、処理がOP4に進む。
OP2、OP3の処理は、更新対象のソフトウェアの一覧要求が受信された場合の処理である。OP2では、送信制御部17は、例えば、クライアント端末2の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とを、ファイル構成情報格納部16から取得する。ソフトウェアの一覧情報には、例えば、ソフトウェア名と、ソフトウェアの更新情報とが含まれている。ソフトウェアの更新情報には、例えば、ソフトウェアの更新日時、バーション等のソフトウェアの新しさを示す情報が含まれている。クライアント端末2の実行環境情報は、更新対象のソフトウェアの一覧要求に含まれている。
OP3では、送信制御部17は、クライアント端末2の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とを、クライアント端末2に送信する。その後、図8に示される処理が終了する。
OP4では、送信制御部17は、受信した送信要求がファイル送信要求であるか否かを判定する。受信した送信要求がファイル送信要求である場合には(OP4:YES)、処理がOP5に進む。受信した送信要求がファイル送信要求でない場合には(OP4:NO)、図8に示される処理が終了する。
OP5以降の処理は、ファイル送信要求が受信された場合の処理である。OP5では、送信制御部17は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルが送信用ファイル格納部14に格納されているか否かを判定する。該当する自己復元形式ファイルが送信用ファイル格納部14に格納されている場合には(OP5:YES)、処理がOP6に進む。該当する自己復元形式ファイルが送信用ファイル格納部14に格納されていない場合には(OP5:NO)、送信制御部17は、ファイル送信要求の対象のファイルに対応するソフトウェアパッケージの送信を判定し、処理がOP9に進む。
OP6からOP8の処理は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルを送信する処理である。OP6では、送信制御部17は、ファイル送信要求に区間指定が含まれているか否かを判定する。ファイル送信要求に区間指定が含まれている場合には(OP6:YES)、処理がOP7に進む。ファイル送信要求に区間指定が含まれていない場合には(OP6:NO)、処理がOP8に進む。
OP7では、送信制御部17は、送信用ファイル格納部14から該当する自己復元形式ファイルのファイル送信要求に含まれる区間指定に該当する区間を読み出し、クライアント端末2に送信する。その後、図8に示される処理が終了する。
OP8では、送信制御部17は、送信用ファイル格納部14からファイル送信要求の対象のファイルに対応する自己復元形式ファイルを読み出し、クライアント端末2に送信する。その後、図8に示される処理が終了する。
OP9からOP11の処理は、ファイル送信要求の対象のファイルに対応するソフトウェアパッケージを送信する処理である。OP9では、送信制御部17は、ファイル送信要求に区間指定が含まれているか否かを判定する。ファイル送信要求に区間指定が含まれている場合には(OP9:YES)、処理がOP10に進む。ファイル送信要求に区間指定が含まれていない場合には(OP9:NO)、処理がOP11に進む。
OP10では、送信制御部17は、ソフトウェアパッケージ格納部12からファイル送信要求の対象のファイルに対応するソフトウェアパッケージのファイル送信要求に含まれる区間指定に該当する区間を読み出し、クライアント端末2に送信する。その後、図8に示される処理が終了する。
OP11では、送信制御部17は、ソフトウェアパッケージ格納部12からファイル送信要求の対象のファイルに対応するソフトウェアパッケージを読み出し、クライアント端末2に送信する。その後、図8に示される処理が終了する。
図9A、図9B、及び、図9Cは、第1実施形態に係るクライアント端末2の処理のフローチャートの一例である。図9Aに示される処理は、更新ソフトウェアダウンロード制御プログラムが起動されると開始される。図9A〜図9Cに示される処理の実行主体は、クライアント端末2のCPUであるが、便宜上、クライアント端末2のCPUが更新ソフトウェアダウンロード制御プログラムを実行することによって達成される機能構成要素である受信制御部21を主体として説明される。
OP21では、受信制御部21は、クライアント端末2の実行環境情報を取得する。実行環境情報は、例えば、OSに問い合わせることによって取得される。
OP22では、受信制御部21は、サーバ1に更新対象のソフトウェアの一覧要求を送信する。更新対象のソフトウェアの一覧要求には、OP21で取得されたクライアント端末2の実行環境情報が含まれている。
OP23では、受信制御部21は、サーバ1から、クライアント端末2の実行環境情報に応じた更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とが受信されたか否かを判定する。サーバ1からソフトウェアの更新対象のソフトウェアの一覧情報と当該ソフトウェアの更新ファイルのファイル構成情報とが受信された場合には(OP23:YES)、受信制御部21は、受信したソフトウェアの更新ファイルのファイル構成情報を一時記憶部29に格納する。処理がOP24に進む。サーバ1から更新対象のソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とが受信されない場合には(OP23:NO)、例えば、エラーとなり、図9Aに示される処理が終了する。
OP24では、受信制御部21は、サーバ1から受信された更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれているか否かを判定する。サーバ1から更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれている場合には(OP24:YES)、処理がOP25に進む。サーバ1から受信された更新対象のソフトウェアの一覧情報にソフトウェアの情報が含まれていない場合には(OP24:NO)、図9Aに示される処理が終了する。
OP25では、受信制御部21は、サーバ1から更新対象のソフトウェアの一覧情報の中から、更新可能なソフトウェアの更新ファイルを抽出する。例えば、サーバ1から受信された更新対象のソフトウェアの一覧情報のうち、クライアント端末2において既に更新済みのソフトウェアの情報は除外される。
OP26では、受信制御部21は、更新対象一覧画面をディスプレイに表示させる。更新対象一覧画面には、OP25において抽出した更新可能なソフトウェアのソフトウェア名が含まれている。
OP27では、受信制御部21は、ユーザ操作による更新開始指示の入力を待機する。更新開始指示のユーザ操作が入力されると(OP27:YES)、処理が図9BのOP28に進む。更新開始指示のユーザ操作が入力されないまま、例えば、更新ソフトウェアダウンロード制御プログラムの停止のユーザ操作が入力されると(OP27:NO)、図9Aに示される処理が終了する。更新ソフトウェアダウンロード制御プログラムの停止のユーザ操作は、例えば、更新対象一覧画面を閉じる操作である。
図9BのOP28では、受信制御部21は、ユーザによって選択された更新対象のソフトウェアの更新ファイルである自己復元形式ファイルの復元プログラム部分が取得済みであるか否かを判定する。更新対象のソフトウェアの更新ファイルである自己復元形式ファイルを、以降、ダウンロード対象の自己復元形式ファイルと称する。
例えば、ダウンロード対象の自己復元形式ファイルと、復元プログラム部分格納部24に格納されている復元プログラム部分の抽出元の自己復元形式ファイルと、で作成プログラムのプログラム名が一致する場合に、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みであることが判定される。自己復元形式ファイルの作成プログラムのプログラム名は、自己復元形式ファイルのファイル構成情報から取得される。
ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みである場合には(OP28:YES)、処理が図9CのOP34に進む。ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みでない場合には(OP28:NO)、処理がOP29に進む。
OP29では、受信制御部21は、ダウンロード対象の自己復元形式ファイルについてファイル送信要求をサーバ1に送信する。OP29で送信されるファイル送信要求には、区間指定は含まれていない。OP29で送信されるファイル送信要求は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分と圧縮データ部分とを含むファイル全体の送信を要求するものである。
OP30では、受信制御部21は、ダウンロード対象の自己復元形式ファイルが受信されたか否かを判定する。ダウンロード対象の自己復元形式ファイルが受信された場合には(OP30:YES)、処理がOP31に進む。ダウンロード対象の自己復元形式ファイルが受信されない場合には(OP30:NO)、受信制御部21は、例えば、ダウンロード対象の自己復元形式ファイルが受信されるまで待機する。
OP31では、受信制御部21は、受信した自己復元形式ファイルを受信ファイル格納部22に格納する。OP32では、受信制御部21は、受信した自己復元形式ファイルから復元プログラム部分を抽出するように、復元プログラム部分抽出部23に指示する。これによって、OP30で受信された自己復元形式ファイルから復元プログラム部分が抽出され、抽出された復元プログラム部分が復元プログラム部分格納部24に格納される。受信された自己復元形式ファイルの復元プログラム部分の格納位置は、受信された自己復元形式ファイルのファイル構成情報から取得される。
OP33では、受信制御部21は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロー
ド対象となる自己復元形式ファイルが存在する場合には(OP33:YES)、処理がOP28に進み、次のダウンロード対象のファイルについてOP28からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には(OP33:NO)、図9Bに示される処理が終了する。
図9Cに示される処理は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が取得済みである場合の処理である。OP34では、受信制御部21は、ダウンロード対象の自己復元形式ファイルのファイル構成情報から、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の区間を取得する。
OP35では、受信制御部21は、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の1区間についてのファイル送信要求をサーバ1に送信する。OP35において送信されるファイル送信要求には、ダウンロード対象の自己復元形式ファイルの圧縮データ部分の1区間を指定する区間指定が含まれている。
OP36では、受信制御部21は、OP35において送信されたファイル送信要求の対象の区間のデータが受信されたか否かを判定する。OP35において送信されたファイル送信要求の対象の区間のデータが受信された場合には(OP36:YES)、受信制御部21は、受信した区間のデータを一時記憶部29に格納し、処理がOP37に進む。OP35において送信されたファイル送信要求の対象の区間のデータが受信されない場合には(OP36:NO)、当該区間のデータが受信されるまで受信制御部21は待機する。
OP37では、受信制御部21は、ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在するか否かを判定する。例えば、復元プログラム部分が自己復元形式ファイルの先頭又は末尾以外に存在する場合には、圧縮データ部分が複数存在するので、OP37の判定はYESとなる。ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在する場合には(OP37:YES)、処理がOP35に進み、次の圧縮データの部分の区間について、OP35からの処理が行われる。
ダウンロード対象の自己復元形式ファイルの圧縮データ部分に次に送信要求の対象となる区間が存在しない場合には(OP37:NO)、処理がOP38に進む。
OP38では、受信制御部21は、受信した自己復元形式ファイルの圧縮データ部分と対応する復元プログラム部分とを結合するように受信データ結合部25に指示する。受信制御部21からの指示を受けて、受信データ結合部25は、指定された自己復元形式ファイルの圧縮データ部分を一時記憶部29から読み出し、当該圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部24から読み出し、当該圧縮データ部分と当該復元プログラム部分とを結合させて、自己復元形式ファイルを取得する。受信データ結合部25は、例えば、ファイル構成情報に基づいて、指定された自己復元形式ファイルの圧縮データ部分を含む自己復元形式ファイルと作成元のプログラムのプログラム名が一致する、復元プログラム部分格納部24に格納されている復元プログラム部分を含む自己復元形式ファイルを特定することによって、指定された自己復元形式ファイルの圧縮データ部分に対応する復元プログラム部分を特定する。
OP39では、受信制御部21は、自己復元形式ファイルの作成が成功したか否かを判定する。自己復元形式ファイルの作成の成功又は失敗は、受信データ結合部25から受信制御部21に入力される。自己復元形式ファイルの作成が成功した場合には(OP39:YES)、処理がOP42に進む。自己復元形式ファイルの作成が失敗した場合には(OP39:NO)、処理がOP40に進む。
OP40では、受信制御部21は、自己復元形式ファイルの作成が失敗したので、ダウンロード対象の自己復元形式ファイルに対応するソフトウェアパッケージについてファイル送信要求をサーバ1に送信する。OP41では、受信制御部21は、サーバ1から受信したソフトウェアパッケージを受信ファイル格納部22に格納する。
OP42では、受信制御部21は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には(OP42:YES)、処理が図9BのOP28に進み、次のダウンロード対象のファイルについて図9BのOP28からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には(OP42:NO)、図9Cに示される処理が終了する。
図10は、第1実施形態に係るソフトウェア配信システム100におけるサーバ1とクライアント端末2間の処理のシーケンスの一例を示す図である。図10に示される例の前提条件として、クライアント端末2は、いずれの復元プログラム部分も保持していないこととする。
S1では、クライアント端末2は、ユーザ操作による更新ソフトウェアダウンロード制御プログラムの起動によって、更新対象のソフトウェアの一覧表示の指示の入力を受ける。S2では、クライアント端末2は、更新対象のソフトウェアの一覧要求をサーバ1に送信する(図9A、OP22)。
S3では、サーバ1は、クライアント端末2から更新対象のソフトウェアの一覧要求を受信し(図8、OP1:YES)、クライアント端末2の実行環境情報に応じた更新ソフトウェアの一覧情報とファイル構成情報とをクライアント端末2に送信する(図8、OP3)。例えば、S3においてサーバ1から送信される更新ソフトウェアの一覧情報には、ソフトウェアA〜Gのソフトウェア名が含まれていることとする。また、S3においてサーバ1から送信されるファイル構成情報には、ソフトウェアA〜Fの作成元のプログラムとしてプログラムX、ソフトウェアGの作成元のプログラムとしてプログラムYが含まれていることとする。
S4では、クライアント端末2は、更新対象一覧画面において、サーバ1から受信した更新ソフトウェアの一覧情報から更新可能なソフトウェアの一覧を表示する(図9A、OP26)。S5では、クライアント端末2は、更新開始指示の入力を受ける(図9A、OP27:YES)。例えば、更新対象一覧画面において、ソフトウェアA〜Gが表示され、ユーザによって、更新対象として、ソフトウェアA〜Gが選択されたとする。
S6では、クライアント端末2は、1つ目のダウンロード対象としてソフトウェアAの更新ファイルについてファイル送信要求をサーバ1に送信する。クライアント端末2は、いずれの復元プログラム部分も保持していないので、S6において送信されるファイル送信要求は、区間指定を含んでおらず、ソフトウェアAの更新ファイル全体を要求するものである(図9B、OP28:NO、OP29)。
S7では、サーバ1は、クライアント端末2からのソフトウェアAの更新ファイルについてのファイル送信要求を受信し(図8、OP4:YES)、ソフトウェアAの更新ファイルをクライアント端末2に送信する(図8、OP6:NO、OP8)。
S8では、クライアント端末2は、ソフトウェアAの更新ファイルを受信し(図9B、OP30:YES)、ソフトウェアAの更新ファイルから復元プログラム部分を抽出する
(図9B、OP32)。
S9では、クライアント端末2は、2つ目のダウンロード対象としてソフトウェアBの更新ファイルについてファイル送信要求をサーバ1に送信する。クライアント端末2は、ソフトウェアAの復元プログラム部分を保持しており、ソフトウェアAとソフトウェアBとは、いずれも自己復元形式ファイルの作成元の作成プログラムがプログラムXである。そのため、S9において送信されるファイル送信要求は、ソフトウェアBの圧縮データ部分について区間指定を含む(図9B、OP28:YES、図9C、OP35)。
S10では、サーバ1は、クライアント端末2からのソフトウェアBの更新ファイルについてのファイル送信要求を受信し(図8、OP4:YES)、指定されたソフトウェアBの圧縮データ部分をクライアント端末2に送信する(図8、OP6:YES、OP7)。
S11では、クライアント端末2は、サーバ1から受信したソフトウェアBの圧縮データ部分と、保持しているソフトウェアAの復元プログラム部分とを結合して、ソフトウェアBの更新ファイルを取得する(図9C、OP38)。
S12では、クライアント端末2は、次のダウンロード対象としてソフトウェアCの更新ファイルについてファイル送信要求をサーバ1に送信する。S12において送信されるファイル送信要求は、ソフトウェアCの圧縮データ部分について区間指定を含む(図9B、OP28:YES、図9C、OP35)。以降、ソフトウェアC〜Fについて、S9〜S11と同様の処理が行われる。
S13では、クライアント端末2は、ダウンロード対象としてソフトウェアGの更新ファイルについてファイル送信要求をサーバ1に送信する。クライアント端末2は、ソフトウェアAの復元プログラム部分を保持している。しかしながら、ソフトウェアAの自己復元形式ファイルの作成元の作成プログラムはプログラムXであり、ソフトウェアGの自己復元形式ファイルの作成元の作成プログラムはプログラムYである。したがって、クライアント端末2は、ソフトウェアGの自己復元形式ファイルに対応する復元プログラム部分を保持していない。S13において送信されるファイル送信要求は、区間指定を含んでおらず、ソフトウェアCの更新ファイル全体を要求するものである(図9B、OP28:NO、OP29)。
S14では、サーバ1は、クライアント端末2からのソフトウェアGの更新ファイルについてのファイル送信要求を受信し(図8、OP4:YES)、ソフトウェアGの更新ファイルをクライアント端末2に送信する(図8、OP6:NO、OP8)。
S15では、クライアント端末2は、ソフトウェアGの更新ファイルを受信し(図9B、OP30:YES)、ソフトウェアGの更新ファイルから復元プログラム部分を抽出する(図9B、OP32)。ソフトウェアGは更新対象の最後のソフトウェアであるので、クライアント端末2の更新対象のソフトウェアの更新ファイルのダウンロードの処理は終了する。以降、適宜、各ソフトウェアA〜Gは、自己復元形式ファイルがソフトウェアパッケージに復元され、ソフトウェアパッケージがインストールされて、更新される。
<第1実施形態の作用効果>
第1実施形態では、クライアント端末2は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部24に保持されている場合には、ダウンロード対象の自己復元形式ファイルの圧縮データ部分をダウンロードする。これによって、重複する復元プログラム部分のダウンロードを省略することができ、自己復元形式フ
ァイルのダウンロードに係る通信量を削減することができる。
また、第1実施形態では、クライアント端末2は、ダウンロード対象の自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部24に保持されていない場合には、当該自己復元形式ファイルを復元プログラム部分を含めてダウンロードする。クライアント端末2は、ダウンロードした自己復元形式ファイルから復元プログラム部分を抽出して、復元プログラム部分格納部24に保持する。これによって、クライアント端末2が復元プログラム部分を保持していない場合でも、ダウンロードした自己復元式ファイルから復元プログラム部分を取得することができる。また、当該自己復元形式ファイル以降にダウンロードされる自己復元形式ファイルの作成元のプログラムと同じプログラムによって作成された自己復元形式ファイルの復元プログラム部分のダウンロードを省略することができ、自己復元形式ファイルのダウンロードに係る通信量を削減することができる。
また、第1実施形態では、クライアント端末2はサーバ1からファイル構成情報を取得する。ファイル構成情報には、例えば、自己復元形式ファイルの作成元の作成プログラムのプログラム名と、復元プログラム部分の格納位置を示す情報が含まれている。ファイル構成情報によって、クライアント端末2は、ダウンロード対象の複数の自己復元形式ファイルの復元プログラム部分の格納位置がファイルごとに異なっている場合でも、対応する復元プログラム部分が保持されている場合には、復元プログラム部分のダウンロードを省略することができる。また、ファイル構成情報によって、クライアント端末2は、ダウンロード対象の複数の自己復元形式ファイルの作成元の作成プログラムのプログラム名が異なっている場合でも、同じ作成元の作成プログラムの自己復元形式ファイルの復元プログラム部分が取得済みであるか否かを判定できる。
また、第1実施形態では、クライアント端末2がファイル送信要求に区間指定を含めることによって、クライアント端末2が自己復元形式ファイルの復元プログラム部分を除いて自己復元形式ファイルをダウンロードすることができる。
また、第1実施形態では、クライアント端末2が自己復元形式ファイルをダウンロードするか、圧縮データ部分をダウンロードするかを判定するので、自己復元形式ファイルの送信要求の処理に係るサーバ1の処理負荷の増加を抑制することができる。
また、第1実施形態では、サーバ1は、自己復元形式ファイルの送信要求の発生よりも前に、圧縮データ部分、自己復元形式ファイル、及び、ファイル構成情報を生成し、記憶しておく。これによって、自己復元形式ファイルの送信要求が発生に応じて、圧縮データ部分、自己復元形式ファイル、及び、ファイル構成情報の生成処理を行わなくてよくなり、自己復元形式ファイルの送信要求の処理に係るサーバ1の処理負荷の増加を抑制することができる。
<第2実施形態>
第1実施形態では、クライアント端末2が自己復元形式ファイルをダウンロードするか、自己復元形式ファイルの圧縮データ部分をダウンロードするかの判定を行う。第2実施形態では、自己復元形式ファイルをダウンロードするか、自己復元形式ファイルの圧縮データ部分をダウンロードするかの判定を、サーバ1が行う。第2実施形態では、第1実施形態と共通する説明は省略される。
第2実施形態では、ソフトウェア配信システム100のシステム構成、サーバ1及びクライアント端末2のハードウェア構成及び機能構成は、第1実施形態と同様である。第2実施形態において、サーバ1の送信制御部17とクライアント端末2の受信制御部21との処理は、第1実施形態と異なる。
第2実施形態では、クライアント端末2の受信制御部21は、自己復元形式ファイルをダウンロードする際に、自己復元形式ファイルの復元プログラム部分が取得済みであるか否かの判定を行わない。第2実施形態では、クライアント端末2の受信制御部21が自己復元形式ファイルをダウンロードする際に送信するいずれのファイル送信要求にも、区間指定が含まれない。第2実施形態に係るクライアント端末2の受信制御部21の処理の詳細は後述される。
第2実施形態では、サーバ1の送信制御部17は、クライアント端末2に自己復元形式ファイルを送信する際に、送信対象の自己復元形式ファイルの復元プログラム部分を送信済みであるか否かを判定する。送信対象の自己復元形式ファイルの復元プログラム部分を送信済みでない場合には、サーバ1の送信制御部17は、送信対象の自己復元形式ファイル全体をクライアント端末2に送信する。送信対象の自己復元形式ファイルの復元プログラム部分を送信済みである場合には、サーバ1の送信制御部17は、送信対象の自己復元形式ファイルの圧縮データ部分をクライアント端末2に送信する。第2実施形態に係るサーバ1の送信制御部17の処理の詳細は後述される。
また、第2実施形態では、ファイル構成情報には、ファイル名、作成元の作成プログラムのプログラム名、復元プログラム部分の格納位置に加えて、自己復元形式ファイルのサイズが含まれる。ファイル構成情報に、自己復元形式ファイルのサイズが含まれることによって、クライアント端末2は、サーバ1から受信した自己復元形式ファイルが、自己復元形式ファイル全体であるのか、圧縮データ部分であるのかを判定することができる。
図11は、第2実施形態に係るサーバ1の処理のフローチャートの一例である。図11に示される処理は、例えば、サーバ1がクライアント端末2から送信要求を受信すると開始される。図11に示される処理の実行主体は、サーバ1のCPU 101であるが、便宜上、CPU 101がファイル配信プログラム105Pを実行することによって達成される機能構成である送信制御部17を主体として説明される。
OP51からOP55の処理は、図8のOP1からOP3の処理と同様である。受信した送信要求が更新対象のソフトウェアの一覧要求である場合には(OP51:YES)、送信制御部17は、例えば、クライアント端末2の実行環境情報に応じたソフトウェアの一覧情報と、当該ソフトウェアの更新ファイルのファイル構成情報とをファイル構成情報格納部16から取得し(OP52)、クライアント端末2に送信する(OP53)。
受信した送信要求が更新対象のファイル送信要求であり(OP54:YES)、ファイル送信要求に含まれるファイル名に対応する自己復元形式ファイルが送信用ファイル格納部14に格納されている場合には(OP55:YES)、処理がOP57に進む。該当する自己復元形式ファイルが送信用ファイル格納部14に格納されていない場合には(OP55:NO)、送信制御部17は、ファイル送信要求に含まれるファイル名に対応するソフトウェアパッケージの送信を判定し、処理がOP56に進む。
OP56では、送信制御部17は、ファイル送信要求に含まれるファイル名に対応するソフトウェアパッケージをソフトウェアパッケージ格納部12から読み出して、クライアント端末2に送信する。その後、図11に示される処理が終了する。
OP57からOP60の処理は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルを送信する場合の処理である。OP57では、送信制御部17は、ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が送信済みであるか否かを判定する。例えば、送信制御部17は、クライアント端末2に送信
された自己復元形式ファイルのファイル構成情報を主記憶装置102内の共有メモリに記録する。当該共有メモリ内のファイル構成情報に、送信対象の自己復元形式ファイルの作成元の作成プログラムのプログラム名とプログラム名が一致するファイル構成情報が含まれている場合に、送信対象の自己復元形式ファイルの復元プログラム部分が送信済みであることを判定する。
ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が送信済みである場合には(OP57:YES)、処理がOP58に進む。ファイル送信要求の対象のファイルに対応する自己復元形式ファイルの復元プログラム部分が未送信である場合には(OP57:NO)、処理がOP59に進む。
OP58では、送信制御部17は、送信用ファイル格納部14から送信対象の自己復元形式ファイルの圧縮データ部分を読み出し、クライアント端末2に送信する。圧縮データ部分が複数区間に分断されている場合には、OP58の処理が複数回実行される。
OP59では、送信制御部17は、送信用ファイル格納部14からファイル送信要求の対象のファイルに対応する自己復元形式ファイルを読み出し、クライアント端末2に送信する。
OP60では、送信制御部17は、OP58又はOP59において送信された自己復元形式ファイルのファイル構成情報を共有メモリに記録する。その後、図11に示される処理が終了する。なお、共有メモリ内のファイル構成情報は、クライアント端末2へのファイルの送信終了後、所定時間経過後に削除される。
図12A、及び、図12Bは、第2実施形態に係るクライアント端末2の処理のフローチャートの一例である。図12A及び図12Bに示される処理は、第2実施形態において、図9Aに示される処理に続いて図9B及び図9Cの代わりに実行される処理である。すなわち、第2実施形態においても、図9Aに示される処理は実行される。図12A及び図12Bに示される処理の実行主体は、クライアント端末2のCPUであるが、便宜上、クライアント端末2のCPUが更新ソフトウェアダウンロード制御プログラムを実行することによって達成される機能構成要素である受信制御部21を主体として説明される。
OP71では、受信制御部21は、更新対象のソフトウェアの更新ファイルである自己復元形式ファイルについて、ファイル送信要求をサーバ1に送信する。更新対象のソフトウェアの更新ファイルである自己復元形式ファイルを、以降、ダウンロード対象の自己復元形式ファイルと称する。
OP72では、受信制御部21は、OP71において送信されたファイル送信要求に対する応答としてのデータが受信されたか否かを判定する。ファイル送信要求に対する応答としてのデータが受信された場合には(OP72:YES)、処理がOP73に進む。ファイル送信要求に対する応答としてのデータが受信されない場合には(OP72:NO)、受信制御部21は、ファイル送信要求に対する応答としてのデータが受信されるまで待機する。
OP73では、受信制御部21は、サーバ1から受信したデータが自己復元形式ファイル全体であるか否かを判定する。例えば、ダウンロード対象の自己復元形式ファイルのサイズと、サーバ1から受信されたデータのサイズとが一致する場合に、送信制御部17は、サーバ1から受信したデータが自己復元形式ファイル全体であることを判定する。ダウンロード対象の自己復元形式ファイルのサイズは、ファイル構成情報から取得される。
サーバ1から受信したデータが自己復元形式ファイル全体である場合には(OP73:YES)、処理がOP74に進む。サーバ1から受信したデータが自己復元形式ファイル全体でない場合には(OP73:NO)、サーバ1から受信したデータは圧縮データ部分であると判定され、処理が図12BのOP77に進む。
OP74では、受信制御部21は、受信した自己復元形式ファイルを受信ファイル格納部22に格納する。OP75では、受信制御部21は、受信した自己復元形式ファイルから復元プログラム部分を抽出するように、復元プログラム部分抽出部23に指示する。これによって、OP73で受信された自己復元形式ファイルから復元プログラム部分が抽出され、抽出された復元プログラム部分が復元プログラム部分格納部24に格納される。受信された自己復元形式ファイルの復元プログラム部分の格納位置は、受信された自己復元形式ファイルのファイル構成情報から取得される。
OP76では、受信制御部21は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には(OP76:YES)、処理がOP71に進み、次のダウンロード対象のファイルについてOP71からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には(OP76:NO)、図12Aに示される処理が終了する。
図12Bに示される処理は、サーバ1からダウンロード対象の自己復元形式ファイルの圧縮データ部分が受信された場合の処理である。OP77では、受信制御部21は、ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間があるか否かを判定する。例えば、サーバ1から受信したダウンロード対象の自己復元形式ファイルの圧縮データ部分と復元プログラム部分との合計値が、ダウンロード対象の自己復元形式ファイルのサイズに達しない場合に、受信制御部21は、次の圧縮データ部分の区間があることを判定する。
ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間がある場合には(OP77:YES)、処理が図12AのOP72に進む。ダウンロード対象の自己復元形式ファイルに次の圧縮データ部分の区間がない場合には(OP77:NO)、処理がOP78に進む。
OP78では、受信制御部21は、受信した自己復元形式ファイルの圧縮データ部分と、対応する復元プログラム部分と、を結合するように受信データ結合部25に指示する。受信制御部21からの指示を受けて、受信データ結合部25は、該当の圧縮データ部分を一時記憶部29から読み出し、当該圧縮データ部分に対応する復元プログラム部分を復元プログラム部分格納部24から読み出し、当該圧縮データ部分と当該復元プログラム部分とを結合させて、自己復元形式ファイルを取得する。
OP79では、受信制御部21は、自己復元形式ファイルの作成が成功したか否かを判定する。自己復元形式ファイルの作成の成功又は失敗は、受信データ結合部25から受信制御部21に入力される。自己復元形式ファイルの作成が成功した場合には(OP79:YES)、処理がOP82に進む。自己復元形式ファイルの作成が失敗した場合には(OP79:NO)、処理がOP80に進む。
OP80では、受信制御部21は、自己復元形式ファイルの作成が失敗したので、ダウンロード対象の自己復元形式ファイルに対応するソフトウェアパッケージについてファイル送信要求をサーバ1に送信する。OP81では、受信制御部21は、サーバ1から受信したソフトウェアパッケージを受信ファイル格納部22に格納する。
OP82では、受信制御部21は、次のダウンロード対象となる自己復元形式ファイル、すなわち、次の更新対象のソフトウェアが存在するか否かを判定する。次のダウンロード対象となる自己復元形式ファイルが存在する場合には(OP82:YES)、処理が図12AのOP71に進み、次のダウンロード対象のファイルについて図12AのOP71からの処理が繰り返し実行される。次のダウンロード対象となる自己復元形式ファイルが存在しない場合には(OP82:NO)、図12Bに示される処理が終了する。
<第2実施形態の作用効果>
第2実施形態では、サーバ1が送信対象の自己復元形式ファイルのファイル全体を送信するか、圧縮データ部分を送信するかの判定を行う。送信対象の自己復元形式ファイルの復元プログラム部分がクライアント端末2に送信済みである場合には、サーバ1は送信対象の自己復元形式ファイルの圧縮データ部分を送信する。したがって、第2実施形態によれば、複数の自己復元形式ファイルの配信において、重複する復元プログラム部分の送信を省略することができ、複数の自己復元形式ファイルの配信に係る通信量を削減することができる。
<その他>
第1実施形態及び第2実施形態において、クライアント端末2が保持する復元プログラム部分は、サーバ1からダウンロードした自己復元形式ファイルから抽出して取得される。ただし、これに限定されず、クライアント端末2に、予め、複数種類の自己復元形式ファイルの復元プログラム部分を記憶させてもよい。または、クライアント端末2がサーバ1に復元プログラム部分について送信要求を送信して取得してもよい。
クライアント端末2の復元プログラム部分格納部24に格納されている復元プログラム部分は、一括ダウンロードの処理が終了すると削除される。この場合には、クライアント端末2のメモリ資源の圧迫を抑制することができる。ただし、これに限られず、クライアント端末2の復元プログラム部分格納部24に格納されている復元プログラム部分は、一括ダウンロードの処理が終了しても復元プログラム部分格納部24に保持されたままであってもよい。この場合には、復元プログラム部分格納部24に格納されている復元プログラム部分を含む自己復元形式ファイルのファイル構成情報も併せて保存してもよい。これによって、次回のダウンロード処理の際に、自己復元形式ファイル全体をダウンロードして復元プログラム部分を抽出する処理を省くことができる。
第1実施形態及び第2実施形態において、自己復元形式ファイルが、復元プログラム部分と圧縮データ部分以外のデータを含む場合には、圧縮データ部分とともに当該データは送信される。自己復元形式ファイルの復元プログラム部分と圧縮データ部分以外のデータは、例えば、ファイルのインデックスである。
また、第1実施形態及び第2実施形態において、ファイル構成情報は、更新対象のソフトウェアの一覧情報とともにクライアント端末2に送信されるが、クライアント端末2のファイル構成情報の取得方法はこれに限定されない。例えば、ファイル構成情報は、自己復元形式ファイル所定の位置に埋め込まれており、クライアント端末2は自己復元形式ファイルの当該所定の位置からファイル構成情報を取得してもよい。また、例えば、ファイル構成情報は、予め、クライアント端末2に記憶されていてもよい。また、ファイル構成情報は、更新対象のソフトウェアの一覧情報とともにサーバ1から取得されるのではなく、自己復元形式ファイルについてファイル送信要求が発生する度に、サーバ1に要求して取得されてもよい。
また、サーバ1において使用される自己復元形式ファイルの作成プログラムが1種類で
あり、当該作成プログラムのプログラム名が判明しており、且つ、当該作成プログラムによって作成される自己復元形式ファイル内の復元プログラム部分の格納位置が判明している場合には、サーバ1はファイル構成情報を作成しなくてもよい。この場合には、例えば、クライアント端末2の補助記憶装置の所定の記憶領域に、サーバ1において使用される自己復元形式ファイルの作成プログラムの復元プログラム部分と、復元プログラムの格納位置とを格納しておけばよい。第2実施形態の場合には、サーバ1の補助記憶装置105の所定の記憶領域にも、サーバ1において使用される自己復元形式ファイルの作成プログラムの復元プログラム部分の格納位置を格納しておく。
第1実施形態及び第2実施形態において、圧縮データ部分の圧縮方式がクライアント端末2が取得済みの復元プログラム部分が対応する圧縮方式と異なる場合には、当該圧縮データ部分と取得済みの復元プログラム部分とを結合して取得される自己復元形式ファイルは、復元に失敗する。この場合に、クライアント端末2のファイル復元部26は、自己復元形式ファイルの復元の失敗を受信制御部21に通知し、受信制御部21は、当該自己復元形式ファイル全体をサーバ1からダウンロードするようにしてもよい。これによって、クライアント端末2が取得済みの復元プログラム部分が対応する圧縮方式と異なる圧縮方式で作成された圧縮データ部分がダウンロードされた場合でも、当該圧縮データ部分を含む自己復元形式ファイルを取得することができる。
第1実施形態及び第2実施形態では、サーバ1によって用いられる自己復元形式ファイルの作成プログラムは、当該作成プログラムによって作成された自己復元形式ファイルの復元プログラム部分が共通するものであることが前提として説明された。ただし、これに限定されず、サーバ1によって用いられる自己復元形式ファイルの作成プログラムは、複数のデータ圧縮方式に対応し、圧縮データ部分のデータ圧縮方式に応じて復元プログラム部分が異なるものが用いられてもよい。
この場合には、ファイル構成情報には、ファイル名、作成元のプログラムのプログラム名、復元プログラム部分の格納位置に加えて、圧縮データ部分の圧縮方式の情報が含まれる。クライアント端末2の受信制御部21は、例えば、ダウンロード対象の自己復元形式ファイルと、ファイル構成情報の作成元のプログラムのプログラム名及び圧縮データ部分の圧縮方式が一致する自己復元形式ファイルの復元プログラム部分が復元プログラム部分格納部24に格納されているか否かを判定することで、ダウンロード対象の自己復元形式ファイルの復元プログラム部分を取得済みであるか否かを判定する。
<プロセッサ>
上記実施形態において、サーバ1及びクライアント端末2は、CPUを備え、主記憶装置内にプログラムから展開された命令を実行することによって、説明された処理を実行する。CPUは、MPU(Microprocessor)、プロセッサとも呼ばれる。CPUは、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のCPUがマルチコア構成を有していても良い。上記各部の少なくとも一部の処理は、CPU以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、上記各部の少なくとも一部の処理は、集積回路(IC)、その他のディジタル回路であっても良い。また、上記各部の少なくとも一部にアナログ回路が含まれても良い。集積回路は、LSI、Application Specific Integrated Circuit(ASIC)、プログラマブルロジックデバイス(PLD
)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。上記各部
は、プロセッサと集積回路との組み合わせであっても良い。組み合わせは、例えば、マイクロコントローラ(MCU)、SoC(System-on-a-chip),システムLSI、チップセットなどと呼ばれる。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。