説明

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

【課題】 クライアントが保有するライセンスに基づいて、サーバが配信可能なソフトウェアのリストをクライアントに通知する。
【解決手段】 クライアント12にソフトウェアの配布を行うサーバ10であって、配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶する依存関係リスト記憶手段と、クライアント12が保有するライセンスのリストを受信し、受信したライセンスのリストの範囲内で配布可能なソフトウェアを抽出する手段と、前記抽出したソフトウェアと、当該ソフトウェアに対応付けて前記依存関係リスト記憶手段に記憶される他のソフトウェアとから構成されるソフトウェアの配布リストを生成する手段と、前記生成したソフトウェアの配布リストをクライアント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から受信したライセンスリストの範囲内で、クライアント12に配布可能なソフトウェアと当該ソフトウェアに依存関係にある他のソフトウェアとを抽出する。サーバは、抽出したソフトウェアに基づいて配布リストを作成し、作成した配布リストをクライアント12に対して送信する。クライアント12は、サーバ10からソフトウェアの配布リストを受信し、配布リストの中からクライアント12が保有しているソフトウェアを除外して要求リストを作成する。そして、クライアント12は、作成した要求リストをサーバ10に送信し、ソフトウェアの配布を受ける。
【0015】
サーバ10は、クライアント12にソフトウェアの配布を行うサーバである。サーバ10は、配布の対象となるソフトウェアを保有している。また、サーバ10は、配布の対象となるソフトウェアのそれぞれについて、各ソフトウェアを実行する際に必要な他のソフトウェアを対応づけた依存関係リストを保持する。サーバ10は、クライアント12からソフトウェアの配布の要求とともに、クライアント12が保有するライセンスリストを受信する。サーバ10は、受信したライセンスリストが正当なものであるか否かのライセンスの確認を行い、正当なライセンスであると確認されたものの範囲内で配布可能なソフトウェアと当該ソフトウェアと依存関係のあるソフトウェアとをまとめて配布リストを生成して、クライアント12に送信する。
【0016】
クライアント12は、サーバ10にソフトウェアの配布を要求し、サーバ10からソフトウェアの配布を受ける装置である。クライアント12は、サーバ10に、ソフトウェアの配布を要求する際に、保有しているライセンスのリストをサーバ10に対して送信する。クライアント12は、サーバ10から配布可能なソフトウェアが示された配布リストを受信する。そして、クライアント12は、受信した配布リストから、既に保有しているソフトウェアを除外して、サーバ10に配布を要求する要求リストを生成し、サーバ10に送信する。そして、クライアント12は、要求リストに応じてサーバ10から転送されるソフトウェアを受信し、その後インストールやアップデート等を行う。
【0017】
図2は、サーバ10の機能ブロック図である。図2に示されるように、サーバ10は、機能的には、送受信部20、制御部22、ライセンス復号化部24、ライセンス確認部26、依存関係リスト記憶部28、ソフトウェア抽出部30、配布リスト生成部32とソフトウェア格納部34を含んで構成される。
【0018】
送受信部20は、サーバ10がネットワーク14を介して接続されるクライアント12とデータの送受信を行うものである。送受信部20は、サーバ10のネットワークインターフェースを含み構成される。具体的には、送受信部20は、クライアント12からソフトウェアの配布要求とライセンスリストを受信し、クライアント12に対して、ソフトウェアの配布リストやソフトウェアのデータを送信する。
【0019】
制御部22は、サーバ10の各部を制御し、サーバ10で行われる処理の順序やタイミングを制御するものである。制御部22は、サーバ10のCPU、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部22は、送受信部20で受信したライセンスリストをライセンス復号化部24に転送してライセンスの確認処理の開始を指示したり、正当性が確認されたライセンスの範囲内で配布可能なソフトウェアの抽出処理の開始を指示したりする。
【0020】
ライセンス復号化部24は、送受信部20で受信した暗号化されたライセンスリストを復号するものである。本実施形態では、ライセンスのセキュリティを保護するため、ライセンスリストは暗号化されて伝送される。ここで、暗号化に用いる方式は、公開鍵暗号方式や共通鍵暗号方式等の公知の方式であって構わない。例えば、受信したライセンスリストが公開鍵暗号方式で暗号化されているとすると、ライセンス復号化部24は、暗号化に用いられた公開鍵に対応する秘密鍵を用いてライセンスリストを復号化してライセンスリストを取得する。
【0021】
ライセンス確認部26は、ライセンス復号化部24で復号したライセンスリストの正当性を確認するものである。ライセンス確認部26は、既に発行済みのライセンスキーを記憶している。そして、復号したライセンスリストに含まれるライセンスキーが、記憶しているライセンスキーのいずれかと一致するか否かを判断することで、クライアント12のライセンスが正当であるか否かの確認を行う。
【0022】
依存関係リスト記憶部28は、配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶するものである。依存関係リスト記憶部28は、サーバ10のメモリやハードディスク等の記憶装置を含み構成される。図3に、依存関係リストの一例を示す。図3に示されるように、本実施形態の依存関係リストは、ソフトウェアと、当該ソフトウェアのバージョンと当該ソフトウェアに必要な他のソフトウェアとを対応付けて記載したものである。図3に示す依存関係リストにおいては、ProgramAのバージョンが1.0では、依存ソフトウェアがLibA1のみであるが、このソフトウェアのバージョンが1.1に上がると、依存ソフトウェアとしてLibA1に加えてLibA2も必要となることを示している。
【0023】
ソフトウェア抽出部30は、ライセンス確認部26で正当性が確認されたライセンスリストの範囲内で配布可能なソフトウェアを抽出するものである。本実施形態では、サーバ10は、配信対象のソフトウェアのそれぞれに対応付けて、配布を許可するライセンスを記憶したテーブル(以下、ライセンステーブルとする)を保持している。図4には、ライセンステーブルの一例を示す。図4で示されるように、各ソフトウェアに対応づけてライセンスを記憶しておく。図4において、「LicenseA_or_B」とあるのは、LicenseA又はBのうちどちらでもよいことを示し、「LicenseA_and_D」とあるのは、LicenseAとDと両方を必要とすることを示す。ソフトウェア抽出部30は、ライセンス確認部26で確認された各ライセンスをキーにしてライセンステーブルから配布可能なソフトウェアを検索する。ソフトウェア抽出部30は、検索でヒットしたソフトウェアに対して、依存関係リスト記憶部28を参照して、当該ソフトウェアに依存関係のあるソフトウェアがあるか否かを確認する。そして、ソフトウェア抽出部30は、依存関係のあるソフトウェアが確認された場合には、それらのソフトウェアがライセンスの範囲内で配布可能か否かも併せて判断する。こうして、ソフトウェア抽出部30は、正当性が確認されたライセンスリストの範囲内で配布可能なソフトウェアと、そのソフトウェアに依存関係のあるソフトウェアとを抽出する。なお、ソフトウェア抽出部30は、正当なライセンスの全てについて、上記の処理を行う。
【0024】
配布リスト生成部32は、ソフトウェア抽出部30で抽出したソフトウェアと、当該ソフトウェアに依存関係がある他のソフトウェアとからソフトウェアの配布リストを生成するものである。配布リスト生成部32で生成された配布リストは、送受信部20を介して、クライアントに送信される。
【0025】
ソフトウェア格納部34は、配布対象のソフトウェアを格納するものである。ソフトウェア格納部34は、サーバ10のメモリやハードディスク等の記録装置を含んで構成されてもよいし、ソフトウェアを格納したDVD−ROM等の記録メディアとそのメディアを読み取るDVD−ROM再生装置を含んで構成されることとしてもよい。
【0026】
図5は、クライアント12の機能ブロック図である。図5に示されるように、クライアント12は、機能的には送受信部40、制御部42、ライセンス保有部44、ライセンス暗号化部46、要求リスト生成部48とソフトウェア保持部50を含んで構成される。
【0027】
送受信部40は、ネットワーク14を介して接続されるサーバ10とデータの送受信を行うものである。送受信部40は、クライアント12のネットワークインターフェースを含み構成される。送受信部40は、サーバ10に対してソフトウェアの配布要求とともにライセンスリストを送信する。また、送受信部40は、サーバ10から、ソフトウェアの配布リストやソフトウェアのデータを受信する。
【0028】
制御部42は、クライアント12の各部を制御し、クライアント12で行われる処理の順序やタイミングを制御するものである。制御部42は、クライアント12のCPU、メモリ及びオペレーティングシステムを含み構成される。具体的には、制御部42は、サーバ10にソフトウェアの配布要求を出す際に、ライセンス保有部44から保有するライセンスのリストを取得したり、取得したライセンスのリストを暗号化部に転送して暗号化の指示を出したりすること等を行う。
【0029】
ライセンス保有部44は、クライアント12の持つライセンスのリストを保有するものである。ライセンス保有部44は、クライアント12のメモリやハードディスク等の記憶装置を含み構成される。ライセンスのリストは、ソフトウェアのそれぞれに対して、各ソフトウェアについてクライアントが保有するライセンスキーとを対応付けて記憶したものである。
【0030】
ライセンス暗号化部46は、ライセンス保有部44に保有するライセンスのリストを暗号化するものである。本実施形態では、セキュリティの保護のために、クライアント12からサーバ10にライセンスリストを送信する場合に、ライセンスリストを暗号化してから送信する。暗号化には、公開鍵暗号や共通鍵暗号等の公知の暗号化方式を用いることとして構わない。例えば、暗号化方式に公開鍵暗号を用いる場合には、ライセンス暗号化部46は、サーバ10から受信した公開鍵を用いてライセンスリストを暗号化する。
【0031】
要求リスト生成部48は、サーバ10から受信したソフトウェアの配布リストから、既に保有するソフトウェアを除外して生成するものである。要求リスト生成部48は、クライアント12が既に保有しているソフトウェアのリストをソフトウェア保持部50を参照して取得する。そして、要求リスト生成部48は、受信した配布リストから、上記取得した既に保有するソフトウェアのリストを除外して、サーバ10に配布を要求するソフトウェアの要求リストを生成する。
【0032】
ソフトウェア保持部50は、クライアント12が保有するソフトウェアを格納するものである。ソフトウェア保持部50は、クライアント12のメモリやハードディスク等の記録装置を含み構成される。
【0033】
以下、本発明の実施の形態に係るソフトウェア配信システム1におけるソフトウェアの配布処理の動作の詳細について説明する。
【0034】
図6は、ソフトウェア配信システム1におけるソフトウェアの配信処理のシーケンス図である。図6に示されるように、クライアント12は、ソフトウェアの配布の要求(S101)とともに、保有するライセンスのリストを暗号化したデータをサーバ10に送信する(S102)。サーバ10は、クライアント12から暗号化されたライセンスのリストを受信し、受信したデータを復号化する(S103)。サーバ10は、復号化したライセンスリストが有効なライセンスであるか否かについて確認の処理を行う(S104)。そして、サーバ10は、有効なライセンスと確認されたライセンスに基づいて配布可能なソフトウェアを抽出する(S105)。ここで、サーバ10は、ソフトウェアと依存関係のあるライブラリ等の他のソフトウェアについてもライセンスの範囲内にあるか否かを判断して、ソフトウェアの抽出を行う。サーバ10は、抽出したソフトウェアと、そのソフトウェアの実行に必要となる他のソフトウェアをまとめてソフトウェアの配布リストを生成する(S106)。サーバ10は、生成した配布リストをクライアント12に対して送信する(S107)。クライアント12は、サーバ10からソフトウェアの配布リストを受信する。そして、クライアント12は、受信した配布リストから、既に保有するソフトウェアのリストを除外して、サーバ10に配布を要求するソフトウェアの要求リストを生成する(S108)。クライアント12は、要求リストをサーバ10に送信して、ソフトウェアの配布を要求する(S109)。サーバ10は、クライアント12から要求リストを受信して、受信した要求リストに基づいてクライアント12にソフトウェアの配信を行う(S110)。
【0035】
以上説明した本発明の実施の形態に係るソフトウェア配信システム1によれば、クライアント12が保有するライセンスの範囲内でサーバ10が配信可能なソフトウェアと、当該ソフトウェアの実行に必要な他のソフトウェアとを合わせて作成したソフトウェアの配布リストをクライアント12に通知することができる。
【0036】
なお、本発明は上記実施形態に限定されるものではない。
【0037】
例えば、クライアント12のライセンスの範囲内で配布可能なソフトウェアの配布リストをクライアント12に送信し、配布対象の全ソフトウェアのうち、当該配布リストに含まれるソフトウェアのみを区別してディスプレイに表示するようにしてもよい。
【図面の簡単な説明】
【0038】
【図1】本発明の実施の形態に係るソフトウェア配信システムのシステム構成図である。
【図2】サーバ10の機能ブロック図である。
【図3】依存関係リストの一例を示す図である。
【図4】ライセンステーブルの一例を示す図である。
【図5】クライアント12の機能ブロック図である。
【図6】ソフトウェア配信システム1におけるソフトウェアの配信処理のシーケンス図である。
【符号の説明】
【0039】
1 ソフトウェア配信システム、10 サーバ、12 クライアント、14 ネットワーク、20 送受信部、22 制御部、24 ライセンス復号化部、26 ライセンス確認部、28 依存関係リスト記憶部、30 ソフトウェア抽出部、32 配布リスト生成部、34 ソフトウェア格納部、40 送受信部、42 制御部、44 ライセンス保有部、46 ライセンス暗号化部、48 要求リスト生成部、50 ソフトウェア保持部。

【特許請求の範囲】
【請求項1】
ソフトウェアの配布を行うサーバと、前記サーバにソフトウェアの配布を要求するクライアントを含むソフトウェア配布システムであって、
前記クライアントは、
ソフトウェアの配布を要求する際に、保有するライセンスのリストを送信する手段と、
前記サーバは、
配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶する依存関係リスト記憶手段と、
前記送信されたライセンスのリストを受信し、受信したライセンスのリストの範囲内で配布可能なソフトウェアと、当該ソフトウェアに対応付けて前記依存関係リスト記憶手段に記憶される他のソフトウェアとを抽出する手段と、
前記抽出したソフトウェアに基づいて生成したソフトウェアの配布リストを前記クライアントに送信する手段と、
を含むことを特徴とするソフトウェア配布システム。
【請求項2】
請求項1に記載のソフトウェア配布システムにおいて、
前記クライアントは、
前記送信されたソフトウェアの配布リストから、既に保有するソフトウェアを除外して生成したソフトウェアの要求リストを前記サーバに送信する手段をさらに含み、
前記サーバは、
前記送信された要求リストを受信し、当該要求リストに基づいて、前記クライアントにソフトウェアを転送する手段をさらに含む
ことを特徴とするソフトウェア配布システム。
【請求項3】
クライアントにソフトウェアの配布を行うサーバであって、
配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶する依存関係リスト記憶手段と、
前記クライアントが保有するライセンスのリストを受信し、受信したライセンスのリストの範囲内で配布可能なソフトウェアと、当該ソフトウェアに対応付けて前記依存関係リスト記憶手段に記憶される他のソフトウェアとを抽出する手段と、
前記抽出したソフトウェアに基づいて生成したソフトウェアの配布リストを前記クライアントに送信する手段と、
を含むことを特徴とするサーバ。
【請求項4】
クライアントにソフトウェアの配布を行い、配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶するコンピュータの制御方法であって、
前記クライアントが保有するライセンスのリストを受信し、受信したライセンスの範囲内で配布可能なソフトウェアと、当該ソフトウェアに対応付けて前記依存関係リストに記憶される他のソフトウェアとを抽出するステップと、
前記抽出したソフトウェアに基づいて生成したソフトウェアの配布リストを前記クライアントに送信するステップと、
を含むことを特徴とするコンピュータの制御方法。
【請求項5】
クライアントにソフトウェアの配布を行うコンピュータを機能させるためのプログラムであって、
配布対象のソフトウェアのそれぞれに、各ソフトウェアを実行するために必要となる他のソフトウェアを対応付けた依存関係リストを記憶する依存関係リスト記憶手段、
前記クライアントが保有するライセンスのリストを受信し、受信したライセンスのリストの範囲内で配布可能なソフトウェアと、当該ソフトウェアに対応付けて前記依存関係リスト記憶手段に記憶される他のソフトウェアとを抽出する手段、及び、
前記抽出したソフトウェアに基づいて生成したソフトウェアの配布リストを前記クライアントに送信する手段、
としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate