説明

ソフトウェア配布システム、サーバ、サーバの制御方法及びプログラム

【課題】 ソフトウェアパッケージを配布する際のネットワーク負荷を軽減する。
【解決手段】 ソフトウェアパッケージを配布するサーバ10と、サーバ10にソフトウェアパッケージの配布を要求する端末12を含むソフトウェア配布システム1であって、端末12は、ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報をサーバ10に転送する手段と、サーバ10は、前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成する手段と、前記生成した配布パッケージを端末12に配布する手段と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアを配布するソフトウェア配布システム、サーバ、サーバの制御方法及びプログラムに関する。
【背景技術】
【0002】
クライアントがソフトウェアの新規取得や保有しているソフトウェアのアップデートを行う場合に、ネットワークを介してサーバからソフトウェアのパッケージを入手することが近年よく行われる。例えば、特許文献1では、サーバが、配布対象のソフトウェアについてライブラリの依存情報を把握し、クライアントが要求するソフトウェアにそのライブラリ群を含めたソフトウェアのパッケージをクライアントに配布する技術が公開されている。
【特許文献1】特開平7−334436号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の技術では、ソフトウェアの配布はパッケージ単位で行われるため、パッケージの中の一部のファイルに変更があっただけでも、パッケージ全体を配布しており、ネットワークに負荷がかかってしまっていた。
【0004】
本発明は上記課題に鑑みてなされたものであって、その目的は、ソフトウェアパッケージを配布する際のネットワーク負荷を軽減することができるソフトウェア配布システム、サーバ、サーバの制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係るソフトウェア配布システムは、ソフトウェアパッケージを配布するサーバと、前記サーバにソフトウェアパッケージの配布を要求する端末を含むソフトウェア配布システムであって、前記端末は、ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報を前記サーバに転送し、前記サーバは、前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成し、前記生成した配布パッケージを前記端末に配布することを特徴とする。
【0006】
また、本発明に係るサーバは、ソフトウェアパッケージを端末へ配布するサーバであって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段と、前記生成した配布パッケージを前記端末に配布する手段と、を含むことを特徴とする。
【0007】
また、本発明に係るサーバの制御方法は、ソフトウェアパッケージを端末へ配布するサーバの制御方法であって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成するステップと、前記生成した配布パッケージを前記端末に配布するステップと、を含むことを特徴とする。
【0008】
また、本発明に係るサーバを機能させるためのプログラムは、ソフトウェアパッケージを端末へ配布するサーバを機能させるためのプログラムであって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段、及び、前記生成した配布パッケージを前記端末に配布する手段、としてサーバを機能させるためのプログラムである。プログラムは、CD−ROM(Compact Disk - Read Only Memory)、DVD−ROM(Digital Versatile Disk - Read Only Memory)、メモリーカードその他のあらゆるコンピュータ読み取り可能な情報記憶媒体に格納することとしてもよい。
【0009】
本発明では、ソフトウェア配布システムは、ソフトウェアパッケージの配布を行うサーバと、サーバにソフトウェアパッケージの配布を要求するクライアントを含み構成される。クライアントは、サーバにソフトウェアパッケージの配布を要求する際に、クライアントが保有するソフトウェアの情報を併せて送信する。サーバは、要求を受けたソフトウェアパッケージに含まれるソフトウェアから、受信した情報に含まれるソフトウェアを除外して、クライアントに配布する配布パッケージを生成する。そして、サーバは、生成した配布パッケージをクライアントに対して転送する。
【0010】
本発明によると、クライアントから配布の要求を受けたソフトウェアパッケージのうち、クライアントが既に保有するソフトウェアを除外してクライアントにソフトウェアパッケージを配布するため、ネットワーク負荷を軽減することができる。
【0011】
また、本発明の一態様では、前記ソフトウェア配布システムにおいて、前記サーバは、前記生成した配布パッケージを構成するソフトウェアの中に、インストール後に再起動を要するものがある場合には、その旨を示す再起動指示情報を前記配布パッケージに付加し、前記端末は、前記配布された配布パッケージに再起動指示情報が付加されている場合には、前記配布パッケージをインストール後に再起動することを特徴とする。こうすれば、ソフトウェア配布システムは、配布パッケージに再起動を要するソフトウェアを含まない場合には、不必要な再起動を避けることができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の好適な実施形態について図面に基づいて詳細に説明する。
【0013】
図1は、本発明の実施の形態に係るソフトウェア配布システムのシステム構成図である。図1に示されるように、ソフトウェア配布システム1は、サーバ10とクライアント12を含んで構成される。サーバ10とクライアント12は、ネットワーク14を介して相互通信可能に接続される。
【0014】
本実施形態に係るソフトウェア配布システム1の概要について、以下に説明する。ソフトウェア配布システム1では、クライアント12からサーバ10に対して、ソフトウェアパッケージの配布が要求される。ここで、ソフトウェアパッケージとは、ソフトウェアをクライアント上で稼働させるために必要となる情報の集合体のことである。そして、クライアント12は、ソフトウェアパッケージの配布を要求する際に、サーバ10に対しては、要求するソフトウェアパッケージとともに、クライアント12が既に保有するソフトウェアの情報(以下、保有ソフトウェア情報とする)が送信される。サーバ10では、要求されたソフトウェアパッケージに含まれるソフトウェアから、保有ソフトウェア情報に含まれるソフトウェアを除外した配布パッケージを生成する。そして、サーバ10は、生成した配布パッケージをクライアント12に対して送信する。
【0015】
サーバ10は、クライアント12にソフトウェアパッケージの配布を行うサーバである。サーバ10は、配布の対象となるソフトウェアパッケージを保有している。そして、サーバ10は、クライアント12からソフトウェアパッケージの配布の要求を受けるとともに、クライアント12の保有するソフトウェアの情報を受信する。サーバ10は、要求を受けたソフトウェアパッケージに含まれるソフトウェアと、クライアント12から受信した情報に含まれるソフトウェアとの差分を取り、クライアント12が保有していないソフトウェアを抽出する。そして、サーバ10は、抽出したソフトウェアを配布パッケージとして、クライアント12に送信する。
【0016】
クライアント12は、サーバ10にソフトウェアパッケージの配布を要求し、サーバ10から配布パッケージを受信する装置である。本実施形態では、クライアント12は、パーソナルコンピュータであることとするが、PDA等の携帯情報端末やその他の情報処理機器であってもよい。クライアント12は、サーバ10に、ソフトウェアパッケージの配布を要求する際に、既に保有しているソフトウェアの情報をサーバ10に対して送信する。クライアント12は、サーバ10からクライアント12の要求に対して送信された配布パッケージを受信する。そして、クライアント12は、受信した配布パッケージに基づいてインストールやアップデート等を行う。
【0017】
図2は、サーバ10の機能ブロック図である。図2に示されるように、サーバ10は、機能的には、送受信部20、制御部22、ソフトウェア保有部24、差分抽出部26、配布パッケージ生成部28と再起動指示付加部30を含んで構成される。
【0018】
送受信部20は、サーバ10がネットワーク14を介して接続されるクライアント12とデータの送受信を行うものである。送受信部20は、サーバ10のネットワークインターフェースを含み構成される。具体的には、送受信部20は、クライアント12からソフトウェアの配布要求とクライアント12の保有するソフトウェアの情報を受信する。また、送受信部20は、クライアント12に対して、配布パッケージ生成部28で生成した配布パッケージを送信する。
【0019】
制御部22は、サーバ10の各部を制御し、サーバ10で行われる処理の順序やタイミングを制御するものである。制御部22は、サーバ10のCPU、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部22は、送受信部20で受信したクライアント12から要求されたソフトウェアパッケージと、クライアント12の保有するソフトウェアの情報を差分抽出部26に転送して処理の開始を指示したり、配布パッケージ生成部28で配布パッケージが生成されると、この配布パッケージをクライアント12に送信する処理を指示したりする。
【0020】
ソフトウェア保有部24は、配布対象のソフトウェアパッケージを格納するものである。ソフトウェア保有部24は、ソフトウェアパッケージのバイナリデータが格納されるほか、図3で示されるように、ソフトウェアパッケージのそれぞれについて構成ソフトウェアを記載したテーブルを保持する。ソフトウェア保有部24は、サーバ10のメモリやハードディスク等の記録装置を含んで構成されてもよいし、ソフトウェアを格納したDVD−ROM等の記録メディアとそのメディアを読み取るDVD−ROM再生装置を含んで構成されることとしてもよい。
【0021】
差分抽出部26は、クライアント12から要求されたソフトウェアパッケージに含まれるソフトウェアと、クライアント12から転送された保有ソフトウェア情報に含まれるソフトウェアとの差分を抽出するものである。クライアント12から転送される保有ソフトウェア情報は、クライアント12が保有するソフトウェアパッケージのリストであってもよいし、ソフトウェアのリストであってもよい。また、保有ソフトウェア情報には、ソフトウェアパッケージ又はソフトウェア名とそれらのバージョン情報が含まれる。図3に示すソフトウェアパッケージの例を用いて以下に説明する。例えば、クライアント12からサーバ10に対して「Pkg−A」のバージョン1.1のソフトウェアパッケージが要求され、クライアント12からサーバ10に対しては、保有ソフトウェア情報として「Pkg−A」のバージョン1.0が送信されたとする。この場合には、差分抽出部26は、要求されたソフトウェアパッケージ「Pkg−A」バージョン1.1の構成ソフトウェアである「Soft−A1」と「Soft−A2」から、「Pkg−A」バージョン1.0の構成ソフトウェア「Soft−A1」を除いた「Soft−A2」を両者のパッケージの差分として抽出する。
【0022】
配布パッケージ生成部28は、クライアント12から要求されたソフトウェアパッケージのうち、差分抽出部26で得られたクライアント12が保有していないソフトウェアに基づいて、クライアント12に配布するソフトウェアパッケージを生成するものである。上記の具体例を用いて説明すると、配布パッケージ生成部28は、「Pkg−A」バージョン1.1のソフトウェアパッケージを、差分抽出部26で抽出した「Soft−A2」を構成ソフトウェアとしたソフトウェアパッケージに再構成して、これを配布パッケージとする。また、配布パッケージ生成部28で生成される配布パッケージには、「Soft−A1」のバイナリーデータは含まれないが、配布パッケージの設定ファイルには、構成ソフトウェアのリスト(「Soft−A1」、「Soft−A2」)が記載され、パッケージの配布を受けたクライアントは必要ソフトウェアを認識してインストールの処理を行うことができる。
【0023】
再起動指示付加部30は、差分抽出部26で抽出したソフトウェアがインストール後に再起動を要するものである場合には、その旨を示す再起動指示情報を配布パッケージに付加するものである。図4で示されるように、サーバ10は、ソフトウェアパッケージの構成ソフトウェアのそれぞれに対応づけて、インストール後に再起動が必要か否かを示したテーブル(以下、再起動確認テーブルとする)を記憶している。図4において、「YES」とは再起動が必要であることを示し、「NO」とは再起動が不要であることを示している。再起動指示付加部30は、配布パッケージ内に再起動を要するソフトウェアが存在するか否かを、上記の再起動確認テーブルを参照して判断する。そして、再起動指示付加部30は、配布パッケージ内に再起動を要するソフトウェアがあると判断する場合には、配布パッケージの設定ファイル内に用意された再起動の必要を示すフラグ(以下、再起動確認フラグとする)をONに書き換える。上記の具体例を用いて説明すると、配布パッケージ生成部28で生成された配布パッケージの構成ソフトウェア「Soft−A2」について、図4の再起動確認テーブルを参照すると、再起動が必要となっているため、上記配布パッケージの再起動確認フラグはONとされる。
【0024】
図5は、クライアント12の機能ブロック図である。図3に示されるように、クライアント12は、機能的には送受信部40、制御部42、ソフトウェア格納部44と再起動指示確認部46を含んで構成される。
【0025】
送受信部40は、ネットワーク14を介して接続されるサーバ10とデータの送受信を行うものである。送受信部40は、クライアント12のネットワークインターフェースを含み構成される。送受信部40は、サーバ10に対してソフトウェアパッケージの配布要求とともに保有するソフトウェアの情報を送信する。また、送受信部40は、サーバ10から、要求したソフトウェアパッケージに対応する配布パッケージを受信する。
【0026】
制御部42は、クライアント12の各部を制御し、クライアント12で行われる処理の順序やタイミングを制御するものである。制御部42は、クライアント12のCPU、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部42は、サーバ10に対してソフトウェアパッケージを要求する際に、ソフトウェア格納部44からクライアント12が保有するソフトウェア情報を取得してサーバ10に送信したり、サーバ10から受信した配布パッケージに基づいてインストール処理を行ったりする。
【0027】
ソフトウェア格納部44は、クライアント12が保有するソフトウェア(ソフトウェアパッケージを含む)を格納するものである。ソフトウェア格納部44には、ソフトウェアのバイナリデータが格納されるほか、保有するソフトウェア及びソフトウェアパッケージのリスト(以下、保有ソフトウェアリストとする)が記載されたファイルも格納される。保有ソフトウェアリストは、受信した配布パッケージに基づいて更新される。なお、ソフトウェア格納部44は、クライアント12のメモリやハードディスク等の記録装置を含み構成される。
【0028】
再起動指示確認部46は、受信した配布パッケージに再起動指示情報が付加されているか否かを確認するものである。具体的には、再起動指示確認部46は、受信した配布パッケージの設定ファイル内に用意された再起動確認フラグの値を確認する。そして、再起動指示確認部46は、再起動確認フラグの値がONであれば、配布パッケージのインストール後に再起動を要するものと判断する。
【0029】
以下、本発明の実施の形態に係るソフトウェア配布システム1におけるソフトウェアの配布処理の動作の詳細について説明する。
【0030】
図6は、ソフトウェア配布システム1におけるソフトウェアの配布処理のシーケンス図である。図6に示されるように、ソフトウェア配布システム1において、クライアント12がサーバ10に対して、ソフトウェアパッケージの配布を要求する(S101)。この際に、クライアント12は、保有するソフトウェア情報も併せて送信する(S102)。サーバ10は、クライアント12が要求するソフトウェアパッケージに含まれるソフトウェアと、受信したクライアント12の保有するソフトウェア情報に含まれるソフトウェアとの差分ソフトウェアを抽出する(S103)。そして、サーバ10は、抽出した差分ソフトウェアを構成要素とする配布パッケージを生成する(S104)。また、サーバ10は抽出した差分のソフトウェアにインストール後に再起動を要するものが含まれているか否かを判断し、含まれている場合には、配布パッケージに再起動指示情報を付加する(S105)。サーバ10は、生成した配布パッケージをクライアント12に対して送信する(S106)。クライアント12は、サーバ10から配布パッケージを受信し、これに基づいてインストールを行う(S107)。クライアント12は、上記のインストールにおいて、配布パッケージに再起動指示情報が付加されていると判断する場合には、インストール終了後に再起動を行う(S108)。
【0031】
以上説明した本発明の実施の形態に係るソフトウェア配布システム1によれば、クライアント12から配布の要求を受けたソフトウェアパッケージのうち、クライアント12が既に保有するソフトウェアを除外してクライアント12にソフトトウェアパッケージを配布するため、ネットワーク負荷を軽減することができる。また、本発明の実施の形態に係るソフトウェア配布システム1によれば、上記生成した配布パッケージに再起動を要するソフトウェアを含まない場合には、不必要な再起動を避けることができる。
【0032】
なお、本発明は上記実施形態に限定されるものではない。
【0033】
例えば、サーバ10がソフトウェアパッケージのそれぞれと依存関係のあるソフトウェアのリスト(依存関係リストとする)を保有し、クライアント12から送信される保有ソフトウェア情報に含まれるソフトウェアパッケージとソフトウェアとが上記の依存関係リストの上で整合性が取れていない場合には、不整合の対象となるソフトウェアをクライアント12に通知する手段をさらに含むこととしてもよい。
【図面の簡単な説明】
【0034】
【図1】本発明の実施の形態に係るソフトウェア配布システムのシステム構成図である。
【図2】サーバ10の機能ブロック図である。
【図3】ソフトウェアパッケージのそれぞれについて構成ソフトウェアを記載したテーブルの一例を示す。
【図4】ソフトウェアパッケージの構成ソフトウェアのそれぞれに対応づけて、インストール後に再起動が必要か否かを示したテーブルの一例を示す。
【図5】クライアント12の機能ブロック図である。
【図6】ソフトウェア配布システムにおけるソフトウェアの配布処理のシーケンス図である。
【符号の説明】
【0035】
1 ソフトウェア配布システム、10 サーバ、12 クライアント、14 ネットワーク、20 送受信部、22 制御部、24 ソフトウェア保有部、26 差分抽出部、28 配布パッケージ生成部、30 再起動指示付加部、40 送受信部、42 制御部、44 ソフトウェア格納部、46 再起動指示確認部。

【特許請求の範囲】
【請求項1】
ソフトウェアパッケージを配布するサーバと、前記サーバにソフトウェアパッケージの配布を要求する端末を含むソフトウェア配布システムであって、
前記端末は、
ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報を前記サーバに転送し、
前記サーバは、
前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成し、
前記生成した配布パッケージを前記端末に配布する
ことを特徴とするソフトウェア配布システム。
【請求項2】
請求項1に記載のソフトウェア配布システムであって、
前記サーバは、
前記生成した配布パッケージを構成するソフトウェアの中に、インストール後に再起動を要するものがある場合には、その旨を示す再起動指示情報を前記配布パッケージに付加し、
前記端末は、
前記配布された配布パッケージに再起動指示情報が付加されている場合には、前記配布パッケージをインストール後に再起動する
ことを特徴とするソフトウェア配布システム。
【請求項3】
ソフトウェアパッケージを端末へ配布するサーバであって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段と、
前記生成した配布パッケージを前記端末に配布する手段と、
を含むことを特徴とするサーバ。
【請求項4】
ソフトウェアパッケージを端末へ配布するサーバの制御方法であって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成するステップと、
前記生成した配布パッケージを前記端末に配布するステップと、
を含むことを特徴とするサーバの制御方法。
【請求項5】
ソフトウェアパッケージを端末へ配布するサーバを機能させるためのプログラムであって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段、及び、
前記生成した配布パッケージを前記端末に配布する手段、
としてサーバを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate