(57)【要約】【課題】  ソフトウェアパッケージを配布する際のネットワーク負荷を軽減する。【解決手段】  ソフトウェアパッケージを配布するサーバ１０と、サーバ１０にソフトウェアパッケージの配布を要求する端末１２を含むソフトウェア配布システム１であって、端末１２は、ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報をサーバ１０に転送する手段と、サーバ１０は、前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成する手段と、前記生成した配布パッケージを端末１２に配布する手段と、を含む。【選択図】        図１
2007086924.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアパッケージを配布するサーバと、前記サーバにソフトウェアパッケージの配布を要求する端末を含むソフトウェア配布システムであって、
前記端末は、
ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報を前記サーバに転送し、
前記サーバは、
前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成し、
前記生成した配布パッケージを前記端末に配布する
ことを特徴とするソフトウェア配布システム。
【請求項２】
請求項１に記載のソフトウェア配布システムであって、
前記サーバは、
前記生成した配布パッケージを構成するソフトウェアの中に、インストール後に再起動を要するものがある場合には、その旨を示す再起動指示情報を前記配布パッケージに付加し、
前記端末は、
前記配布された配布パッケージに再起動指示情報が付加されている場合には、前記配布パッケージをインストール後に再起動する
ことを特徴とするソフトウェア配布システム。
【請求項３】
ソフトウェアパッケージを端末へ配布するサーバであって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段と、
前記生成した配布パッケージを前記端末に配布する手段と、
を含むことを特徴とするサーバ。
【請求項４】
ソフトウェアパッケージを端末へ配布するサーバの制御方法であって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成するステップと、
前記生成した配布パッケージを前記端末に配布するステップと、
を含むことを特徴とするサーバの制御方法。
【請求項５】
ソフトウェアパッケージを端末へ配布するサーバを機能させるためのプログラムであって、
配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段、及び、
前記生成した配布パッケージを前記端末に配布する手段、
としてサーバを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを配布するソフトウェア配布システム、サーバ、サーバの制御方法及びプログラムに関する。
【背景技術】
【０００２】
クライアントがソフトウェアの新規取得や保有しているソフトウェアのアップデートを行う場合に、ネットワークを介してサーバからソフトウェアのパッケージを入手することが近年よく行われる。例えば、特許文献１では、サーバが、配布対象のソフトウェアについてライブラリの依存情報を把握し、クライアントが要求するソフトウェアにそのライブラリ群を含めたソフトウェアのパッケージをクライアントに配布する技術が公開されている。
【特許文献１】特開平７−３３４４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の技術では、ソフトウェアの配布はパッケージ単位で行われるため、パッケージの中の一部のファイルに変更があっただけでも、パッケージ全体を配布しており、ネットワークに負荷がかかってしまっていた。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、ソフトウェアパッケージを配布する際のネットワーク負荷を軽減することができるソフトウェア配布システム、サーバ、サーバの制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係るソフトウェア配布システムは、ソフトウェアパッケージを配布するサーバと、前記サーバにソフトウェアパッケージの配布を要求する端末を含むソフトウェア配布システムであって、前記端末は、ソフトウェアパッケージの配布を要求する際に、保有するソフトウェアの情報を前記サーバに転送し、前記サーバは、前記要求されたソフトウェアパッケージを構成するソフトウェアのうち、前記転送された情報に含まれるソフトウェアを除外して配布パッケージを生成し、前記生成した配布パッケージを前記端末に配布することを特徴とする。
【０００６】
また、本発明に係るサーバは、ソフトウェアパッケージを端末へ配布するサーバであって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段と、前記生成した配布パッケージを前記端末に配布する手段と、を含むことを特徴とする。
【０００７】
また、本発明に係るサーバの制御方法は、ソフトウェアパッケージを端末へ配布するサーバの制御方法であって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成するステップと、前記生成した配布パッケージを前記端末に配布するステップと、を含むことを特徴とする。
【０００８】
また、本発明に係るサーバを機能させるためのプログラムは、ソフトウェアパッケージを端末へ配布するサーバを機能させるためのプログラムであって、配布するソフトウェアパッケージを構成するソフトウェアのうち、前記端末が既に保有するソフトウェアを除外して配布パッケージを生成する手段、及び、前記生成した配布パッケージを前記端末に配布する手段、としてサーバを機能させるためのプログラムである。プログラムは、ＣＤ−ＲＯＭ（Compact Disk - Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk - Read Only Memory）、メモリーカードその他のあらゆるコンピュータ読み取り可能な情報記憶媒体に格納することとしてもよい。
【０００９】
本発明では、ソフトウェア配布システムは、ソフトウェアパッケージの配布を行うサーバと、サーバにソフトウェアパッケージの配布を要求するクライアントを含み構成される。クライアントは、サーバにソフトウェアパッケージの配布を要求する際に、クライアントが保有するソフトウェアの情報を併せて送信する。サーバは、要求を受けたソフトウェアパッケージに含まれるソフトウェアから、受信した情報に含まれるソフトウェアを除外して、クライアントに配布する配布パッケージを生成する。そして、サーバは、生成した配布パッケージをクライアントに対して転送する。
【００１０】
本発明によると、クライアントから配布の要求を受けたソフトウェアパッケージのうち、クライアントが既に保有するソフトウェアを除外してクライアントにソフトウェアパッケージを配布するため、ネットワーク負荷を軽減することができる。
【００１１】
また、本発明の一態様では、前記ソフトウェア配布システムにおいて、前記サーバは、前記生成した配布パッケージを構成するソフトウェアの中に、インストール後に再起動を要するものがある場合には、その旨を示す再起動指示情報を前記配布パッケージに付加し、前記端末は、前記配布された配布パッケージに再起動指示情報が付加されている場合には、前記配布パッケージをインストール後に再起動することを特徴とする。こうすれば、ソフトウェア配布システムは、配布パッケージに再起動を要するソフトウェアを含まない場合には、不必要な再起動を避けることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の好適な実施形態について図面に基づいて詳細に説明する。
【００１３】
図１は、本発明の実施の形態に係るソフトウェア配布システムのシステム構成図である。図１に示されるように、ソフトウェア配布システム１は、サーバ１０とクライアント１２を含んで構成される。サーバ１０とクライアント１２は、ネットワーク１４を介して相互通信可能に接続される。
【００１４】
本実施形態に係るソフトウェア配布システム１の概要について、以下に説明する。ソフトウェア配布システム１では、クライアント１２からサーバ１０に対して、ソフトウェアパッケージの配布が要求される。ここで、ソフトウェアパッケージとは、ソフトウェアをクライアント上で稼働させるために必要となる情報の集合体のことである。そして、クライアント１２は、ソフトウェアパッケージの配布を要求する際に、サーバ１０に対しては、要求するソフトウェアパッケージとともに、クライアント１２が既に保有するソフトウェアの情報（以下、保有ソフトウェア情報とする）が送信される。サーバ１０では、要求されたソフトウェアパッケージに含まれるソフトウェアから、保有ソフトウェア情報に含まれるソフトウェアを除外した配布パッケージを生成する。そして、サーバ１０は、生成した配布パッケージをクライアント１２に対して送信する。
【００１５】
サーバ１０は、クライアント１２にソフトウェアパッケージの配布を行うサーバである。サーバ１０は、配布の対象となるソフトウェアパッケージを保有している。そして、サーバ１０は、クライアント１２からソフトウェアパッケージの配布の要求を受けるとともに、クライアント１２の保有するソフトウェアの情報を受信する。サーバ１０は、要求を受けたソフトウェアパッケージに含まれるソフトウェアと、クライアント１２から受信した情報に含まれるソフトウェアとの差分を取り、クライアント１２が保有していないソフトウェアを抽出する。そして、サーバ１０は、抽出したソフトウェアを配布パッケージとして、クライアント１２に送信する。
【００１６】
クライアント１２は、サーバ１０にソフトウェアパッケージの配布を要求し、サーバ１０から配布パッケージを受信する装置である。本実施形態では、クライアント１２は、パーソナルコンピュータであることとするが、ＰＤＡ等の携帯情報端末やその他の情報処理機器であってもよい。クライアント１２は、サーバ１０に、ソフトウェアパッケージの配布を要求する際に、既に保有しているソフトウェアの情報をサーバ１０に対して送信する。クライアント１２は、サーバ１０からクライアント１２の要求に対して送信された配布パッケージを受信する。そして、クライアント１２は、受信した配布パッケージに基づいてインストールやアップデート等を行う。
【００１７】
図２は、サーバ１０の機能ブロック図である。図２に示されるように、サーバ１０は、機能的には、送受信部２０、制御部２２、ソフトウェア保有部２４、差分抽出部２６、配布パッケージ生成部２８と再起動指示付加部３０を含んで構成される。
【００１８】
送受信部２０は、サーバ１０がネットワーク１４を介して接続されるクライアント１２とデータの送受信を行うものである。送受信部２０は、サーバ１０のネットワークインターフェースを含み構成される。具体的には、送受信部２０は、クライアント１２からソフトウェアの配布要求とクライアント１２の保有するソフトウェアの情報を受信する。また、送受信部２０は、クライアント１２に対して、配布パッケージ生成部２８で生成した配布パッケージを送信する。
【００１９】
制御部２２は、サーバ１０の各部を制御し、サーバ１０で行われる処理の順序やタイミングを制御するものである。制御部２２は、サーバ１０のＣＰＵ、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部２２は、送受信部２０で受信したクライアント１２から要求されたソフトウェアパッケージと、クライアント１２の保有するソフトウェアの情報を差分抽出部２６に転送して処理の開始を指示したり、配布パッケージ生成部２８で配布パッケージが生成されると、この配布パッケージをクライアント１２に送信する処理を指示したりする。
【００２０】
ソフトウェア保有部２４は、配布対象のソフトウェアパッケージを格納するものである。ソフトウェア保有部２４は、ソフトウェアパッケージのバイナリデータが格納されるほか、図３で示されるように、ソフトウェアパッケージのそれぞれについて構成ソフトウェアを記載したテーブルを保持する。ソフトウェア保有部２４は、サーバ１０のメモリやハードディスク等の記録装置を含んで構成されてもよいし、ソフトウェアを格納したＤＶＤ−ＲＯＭ等の記録メディアとそのメディアを読み取るＤＶＤ−ＲＯＭ再生装置を含んで構成されることとしてもよい。
【００２１】
差分抽出部２６は、クライアント１２から要求されたソフトウェアパッケージに含まれるソフトウェアと、クライアント１２から転送された保有ソフトウェア情報に含まれるソフトウェアとの差分を抽出するものである。クライアント１２から転送される保有ソフトウェア情報は、クライアント１２が保有するソフトウェアパッケージのリストであってもよいし、ソフトウェアのリストであってもよい。また、保有ソフトウェア情報には、ソフトウェアパッケージ又はソフトウェア名とそれらのバージョン情報が含まれる。図３に示すソフトウェアパッケージの例を用いて以下に説明する。例えば、クライアント１２からサーバ１０に対して「Ｐｋｇ−Ａ」のバージョン１．１のソフトウェアパッケージが要求され、クライアント１２からサーバ１０に対しては、保有ソフトウェア情報として「Ｐｋｇ−Ａ」のバージョン１．０が送信されたとする。この場合には、差分抽出部２６は、要求されたソフトウェアパッケージ「Ｐｋｇ−Ａ」バージョン１．１の構成ソフトウェアである「Ｓｏｆｔ−Ａ１」と「Ｓｏｆｔ−Ａ２」から、「Ｐｋｇ−Ａ」バージョン１．０の構成ソフトウェア「Ｓｏｆｔ−Ａ１」を除いた「Ｓｏｆｔ−Ａ２」を両者のパッケージの差分として抽出する。
【００２２】
配布パッケージ生成部２８は、クライアント１２から要求されたソフトウェアパッケージのうち、差分抽出部２６で得られたクライアント１２が保有していないソフトウェアに基づいて、クライアント１２に配布するソフトウェアパッケージを生成するものである。上記の具体例を用いて説明すると、配布パッケージ生成部２８は、「Ｐｋｇ−Ａ」バージョン１．１のソフトウェアパッケージを、差分抽出部２６で抽出した「Ｓｏｆｔ−Ａ２」を構成ソフトウェアとしたソフトウェアパッケージに再構成して、これを配布パッケージとする。また、配布パッケージ生成部２８で生成される配布パッケージには、「Ｓｏｆｔ−Ａ１」のバイナリーデータは含まれないが、配布パッケージの設定ファイルには、構成ソフトウェアのリスト（「Ｓｏｆｔ−Ａ１」、「Ｓｏｆｔ−Ａ２」）が記載され、パッケージの配布を受けたクライアントは必要ソフトウェアを認識してインストールの処理を行うことができる。
【００２３】
再起動指示付加部３０は、差分抽出部２６で抽出したソフトウェアがインストール後に再起動を要するものである場合には、その旨を示す再起動指示情報を配布パッケージに付加するものである。図４で示されるように、サーバ１０は、ソフトウェアパッケージの構成ソフトウェアのそれぞれに対応づけて、インストール後に再起動が必要か否かを示したテーブル（以下、再起動確認テーブルとする）を記憶している。図４において、「ＹＥＳ」とは再起動が必要であることを示し、「ＮＯ」とは再起動が不要であることを示している。再起動指示付加部３０は、配布パッケージ内に再起動を要するソフトウェアが存在するか否かを、上記の再起動確認テーブルを参照して判断する。そして、再起動指示付加部３０は、配布パッケージ内に再起動を要するソフトウェアがあると判断する場合には、配布パッケージの設定ファイル内に用意された再起動の必要を示すフラグ（以下、再起動確認フラグとする）をＯＮに書き換える。上記の具体例を用いて説明すると、配布パッケージ生成部２８で生成された配布パッケージの構成ソフトウェア「Ｓｏｆｔ−Ａ２」について、図４の再起動確認テーブルを参照すると、再起動が必要となっているため、上記配布パッケージの再起動確認フラグはＯＮとされる。
【００２４】
図５は、クライアント１２の機能ブロック図である。図３に示されるように、クライアント１２は、機能的には送受信部４０、制御部４２、ソフトウェア格納部４４と再起動指示確認部４６を含んで構成される。
【００２５】
送受信部４０は、ネットワーク１４を介して接続されるサーバ１０とデータの送受信を行うものである。送受信部４０は、クライアント１２のネットワークインターフェースを含み構成される。送受信部４０は、サーバ１０に対してソフトウェアパッケージの配布要求とともに保有するソフトウェアの情報を送信する。また、送受信部４０は、サーバ１０から、要求したソフトウェアパッケージに対応する配布パッケージを受信する。
【００２６】
制御部４２は、クライアント１２の各部を制御し、クライアント１２で行われる処理の順序やタイミングを制御するものである。制御部４２は、クライアント１２のＣＰＵ、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部４２は、サーバ１０に対してソフトウェアパッケージを要求する際に、ソフトウェア格納部４４からクライアント１２が保有するソフトウェア情報を取得してサーバ１０に送信したり、サーバ１０から受信した配布パッケージに基づいてインストール処理を行ったりする。
【００２７】
ソフトウェア格納部４４は、クライアント１２が保有するソフトウェア（ソフトウェアパッケージを含む）を格納するものである。ソフトウェア格納部４４には、ソフトウェアのバイナリデータが格納されるほか、保有するソフトウェア及びソフトウェアパッケージのリスト（以下、保有ソフトウェアリストとする）が記載されたファイルも格納される。保有ソフトウェアリストは、受信した配布パッケージに基づいて更新される。なお、ソフトウェア格納部４４は、クライアント１２のメモリやハードディスク等の記録装置を含み構成される。
【００２８】
再起動指示確認部４６は、受信した配布パッケージに再起動指示情報が付加されているか否かを確認するものである。具体的には、再起動指示確認部４６は、受信した配布パッケージの設定ファイル内に用意された再起動確認フラグの値を確認する。そして、再起動指示確認部４６は、再起動確認フラグの値がＯＮであれば、配布パッケージのインストール後に再起動を要するものと判断する。
【００２９】
以下、本発明の実施の形態に係るソフトウェア配布システム１におけるソフトウェアの配布処理の動作の詳細について説明する。
【００３０】
図６は、ソフトウェア配布システム１におけるソフトウェアの配布処理のシーケンス図である。図６に示されるように、ソフトウェア配布システム１において、クライアント１２がサーバ１０に対して、ソフトウェアパッケージの配布を要求する（Ｓ１０１）。この際に、クライアント１２は、保有するソフトウェア情報も併せて送信する（Ｓ１０２）。サーバ１０は、クライアント１２が要求するソフトウェアパッケージに含まれるソフトウェアと、受信したクライアント１２の保有するソフトウェア情報に含まれるソフトウェアとの差分ソフトウェアを抽出する（Ｓ１０３）。そして、サーバ１０は、抽出した差分ソフトウェアを構成要素とする配布パッケージを生成する（Ｓ１０４）。また、サーバ１０は抽出した差分のソフトウェアにインストール後に再起動を要するものが含まれているか否かを判断し、含まれている場合には、配布パッケージに再起動指示情報を付加する（Ｓ１０５）。サーバ１０は、生成した配布パッケージをクライアント１２に対して送信する（Ｓ１０６）。クライアント１２は、サーバ１０から配布パッケージを受信し、これに基づいてインストールを行う（Ｓ１０７）。クライアント１２は、上記のインストールにおいて、配布パッケージに再起動指示情報が付加されていると判断する場合には、インストール終了後に再起動を行う（Ｓ１０８）。
【００３１】
以上説明した本発明の実施の形態に係るソフトウェア配布システム１によれば、クライアント１２から配布の要求を受けたソフトウェアパッケージのうち、クライアント１２が既に保有するソフトウェアを除外してクライアント１２にソフトトウェアパッケージを配布するため、ネットワーク負荷を軽減することができる。また、本発明の実施の形態に係るソフトウェア配布システム１によれば、上記生成した配布パッケージに再起動を要するソフトウェアを含まない場合には、不必要な再起動を避けることができる。
【００３２】
なお、本発明は上記実施形態に限定されるものではない。
【００３３】
例えば、サーバ１０がソフトウェアパッケージのそれぞれと依存関係のあるソフトウェアのリスト（依存関係リストとする）を保有し、クライアント１２から送信される保有ソフトウェア情報に含まれるソフトウェアパッケージとソフトウェアとが上記の依存関係リストの上で整合性が取れていない場合には、不整合の対象となるソフトウェアをクライアント１２に通知する手段をさらに含むこととしてもよい。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の形態に係るソフトウェア配布システムのシステム構成図である。
【図２】サーバ１０の機能ブロック図である。
【図３】ソフトウェアパッケージのそれぞれについて構成ソフトウェアを記載したテーブルの一例を示す。
【図４】ソフトウェアパッケージの構成ソフトウェアのそれぞれに対応づけて、インストール後に再起動が必要か否かを示したテーブルの一例を示す。
【図５】クライアント１２の機能ブロック図である。
【図６】ソフトウェア配布システムにおけるソフトウェアの配布処理のシーケンス図である。
【符号の説明】
【００３５】
１  ソフトウェア配布システム、１０  サーバ、１２  クライアント、１４  ネットワーク、２０  送受信部、２２  制御部、２４  ソフトウェア保有部、２６  差分抽出部、２８  配布パッケージ生成部、３０  再起動指示付加部、４０  送受信部、４２  制御部、４４  ソフトウェア格納部、４６  再起動指示確認部。
【図１】
2007086924.tif 000003
【図２】
2007086924.tif 000004
【図３】
2007086924.tif 000005
【図４】
2007086924.tif 000006
【図５】
2007086924.tif 000007
【図６】
2007086924.tif 000008