(57)【要約】【課題】  クライアントの所望するソフトウェアを提供できるソフトウェア配布サーバを提供する。【解決手段】  パッケージと、パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、パッケージの更新日付と、パッケージのバージョンとの少なくとも一方を管理情報として記憶したパッケージデータベース１７と、パッケージの動作に必要な補助ソフトウェアのリストである依存関係リストを、日付とバージョンとの少なくとも一方を管理情報として記憶した依存関係リスト記憶部１４と、クライアント２０から日付又はバージョンを指定したパッケージの取得要求を受け付けると、該当するパッケージの依存関係リストをクライアント２０に送信し、クライアント２０から取得要求のあった補助ソフトウェアと、パッケージをクライアント２０に配布する配布制御部１６とを有している。【選択図】        図２
2007079773.tif 000002
【特許請求の範囲】
【請求項１】
取得要求に応じてパッケージソフトウェアをクライアントに配布するサーバであって、
前記パッケージソフトウェアと、該パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、該パッケージソフトウェアの更新日付と、該パッケージソフトウェアのバージョンとの少なくとも一方を管理情報として記憶した第１の記憶手段と、
前記パッケージソフトウェアの動作に必要な前記補助ソフトウェアのリストである依存関係リストを、前記日付と前記バージョンとの少なくとも一方を管理情報として記憶した第２の記憶手段と、
前記クライアントから日付又はバージョンを指定した前記パッケージソフトウェアの取得要求を受け付けると、該当する前記パッケージソフトウェアの前記依存関係リストを前記クライアントに送信し、該クライアントから取得要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアを前記クライアントに配布する配布制御手段と、
を有することを特徴とするソフトウェア配布サーバ。
【請求項２】
前記パッケージソフトウェアの前記第１の記憶手段への格納要求が出される毎に、前記パッケージソフトウェアの依存関係リストを作成して前記第２の記憶手段に格納するリスト作成手段を有することを特徴とする請求項１記載のソフトウェア配布サーバ。
【請求項３】
前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが前記第２の記憶手段に格納されていない場合に、前記リスト作成手段に前記依存関係リストの作成を依頼することを特徴とする請求項２記載のソフトウェア配布サーバ。
【請求項４】
前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第２の記憶手段に格納されていない場合に、ネットワーク接続された外部装置から該当パッケージを取得することを特徴とする請求項３記載のソフトウェア配布サーバ。
【請求項５】
前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストに記載される補助ソフトウェアが前記第１の記憶手段に格納されていなかった場合に、ネットワーク接続された外部装置から該当補助ソフトウェアを取得することを特徴とする請求項３記載のソフトウェア配布サーバ。
【請求項６】
クライアントから日付又はバージョンを指定してパッケージソフトウェアの取得要求を受け付けるステップと、
前記パッケージソフトウェアを動作させるために必要な補助ソフトウェアのリストを記憶した第２の記憶手段から、該当日付又はバージョンのリストを選択して前記クライアントに送信するステップと、
前記リストを送信した前記クライアントから要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアとを前記クライアントに送信するステップと、
を有することを特徴とするソフトウェア配布方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用してソフトウエアを配布するソフトウェア配布サーバ及びソフトウェア配布方法に関する。
【背景技術】
【０００２】
ネットワークを介して情報処理装置から他の情報処理装置にデータを配布することはさまざまな場面で利用されている。例えば、現在利用しているソフトウェアパッケージ（以下、簡単のためパッケージと呼ぶ）を更新する、あるいは新規のパッケージを入手する場合に、ネットワーク等を介してサーバにアクセスし、パッケージを入手すること等が広く行われている。
【０００３】
しかしながら、取得したパッケージを動作させるためには、ライブラリ等の補助的なソフトウェアが必要な場合が多い。すなわち、ソフトウエアは、自分自身で必要な機能をすべて実装しているわけではなく、よく使われる機能をライブラリ化してそのライブラリ化されたものの中の機能を呼び出すような書き方をしている。これによってソフトウェア自体を小さくすることができる。しかしながら、ソフトウェアの提供を受けたクライアント側で、パッケージごとに必要とする補助的なソフトウェアを把握するのは難しい。
【０００４】
そこで特許文献１では、配布元のサーバが各ソフトウェアの依存情報を把握し、配布先のクライアントが要求するパッケージに必要な補助的なソフトウェアをクライアントに通知している。通知を受けたクライアントでは、既に保有しているソフトウェアを差し引いて、配布を受ける必要があるソフトウェア及び補助的なソフトウェアをサーバに要求する。サーバは、要求を受けたソフトウェアだけを当該クライアントに配布している。
【０００５】
【特許文献１】特開平７−３３４４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示の方法では、常に最新バージョンのソフトウェアだけがクライアントに提供されることになる。ソフトウェア開発環境においては、動作テスト及び開発スケジュール等によって、最新のものではなく特定のバージョンのものが必要な場合もある。
【０００７】
本発明は上記事情に鑑みてなされたものであり、クライアントの所望するソフトウェアを提供できるソフトウェア配布サーバ及びソフトウェア配布方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために本発明のソフトウェア配布サーバは、取得要求に応じてパッケージソフトウェアをクライアントに配布するサーバであって、前記パッケージソフトウェアと、該パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、該パッケージソフトウェアの更新日付と、該パッケージソフトウェアのバージョンとの少なくとも一方を管理情報として記憶した第１の記憶手段と、前記パッケージソフトウェアの動作に必要な前記補助ソフトウェアのリストである依存関係リストを、前記日付と前記バージョンとの少なくとも一方を管理情報として記憶した第２の記憶手段と、前記クライアントから日付又はバージョンを指定した前記パッケージソフトウェアの取得要求を受け付けると、該当する前記パッケージソフトウェアの前記依存関係リストを前記クライアントに送信し、該クライアントから取得要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアを前記クライアントに配布する配布制御手段と、を有する構成としている。
このように本発明は、クライアントの所望するバージョン、更新日時のパッケージソフトウェアをクライアントにダウンロードすることができる。また、依存関係リストを記憶しているので、クライアントに送信済みの補助ソフトウェアを２度ダウンロードすることがない。
【０００９】
上記ソフトウェア配布サーバにおいて、前記パッケージソフトウェアの前記第１の記憶手段への格納要求が出される毎に、前記パッケージソフトウェアの依存関係リストを作成して前記第２の記憶手段に格納するリスト作成手段を有しているとよい。
【００１０】
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第２の記憶手段に格納されていない場合に、前記リスト作成手段に前記依存関係リストの作成を依頼するとよい。
【００１１】
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第２の記憶手段に格納されていない場合に、ネットワーク接続された外部装置から該当パッケージを取得するとよい。
【００１２】
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストに記載される補助ソフトウェアが前記第１の記憶手段に格納されていなかった場合に、ネットワーク接続された外部装置から該当補助ソフトウェアを取得するとよい。
【００１３】
本発明のソフトウェア配布方法は、クライアントから日付又はバージョンを指定してパッケージソフトウェアの取得要求を受け付けるステップと、前記パッケージソフトウェアを動作させるために必要な補助ソフトウェアのリストを記憶した第２の記憶手段から、該当日付又はバージョンのリストを選択して前記クライアントに送信するステップと、前記リストを送信した前記クライアントから要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアとを前記クライアントに送信するステップとを有している。
【発明の効果】
【００１４】
本発明は、クライアントの所望するソフトウェアを提供することができる。
【発明を実施するための最良の形態】
【００１５】
添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例１】
【００１６】
まず、図１を参照しながら本実施例の構成を説明する。図１に示すように本実施例のソフトウェア配布システムは、サーバ１０と、複数のクライアント２０とがネットワーク３０を介して接続されている。なお、図示した以外に、計算機を接続したシステムや計算機等とデータの送受信可能なシステム等であれば本発明を適用可能である。
【００１７】
図２に、サーバ１０とクライアント２０の詳細な構成を示す。なお、図１に示す複数のクライアント２０は、すべて同等の機能を有しているので、図２には代表して１つのクライアント２０の構成だけを示す。図２に示すようにサーバ１０には、送受信部１１と、入力部１２と、依存関係リスト生成部１３と、依存関係リスト記憶部（第２の記憶手段）１４と、パッケージ格納制御部１５と、配布制御部１６と、パッケージデータベース（第１の記憶手段）１７とが備えられている。
【００１８】
送受信部１１は、複数のクライアント２０から送信されるパッケージ取得要求を受信して、配布制御部１６に転送する。また、配布制御部１６から転送されたパッケージやソフトウェアを指定されたクライアント２０に送信する。
【００１９】
入力部１２は、ソフトウェア作成者によって作成されたパッケージやソフトウェアを入力する。入力したパッケージやソフトウェアは、依存関係リスト生成部１３に出力される。
【００２０】
依存関係リスト生成部１３は、ソフトウェアやパッケージを入力すると、入力したソフトウェアのヘッダファイルを参照し、そのソフトウェアを動作させるために必要な補助ソフトウェアの情報を取得する。取得した情報から依存関係リストを作成し、依存関係リスト記憶部１４に出力して記憶させる。依存関係リストは、必要な補助ソフトウェアの一覧をリストにしたものである。図３に依存奸計リスト記憶部１４の構成を示す。パッケージの更新日付とバージョン情報とを管理情報として、依存関係リストが格納されている。また、ソフトウェアやパッケージは、パッケージ格納制御部１５に出力され、パッケージ格納制御部１５の制御によってパッケージデータベース１７に格納される。
【００２１】
依存関係リストの一例を示す。
Soft-A:18.55     {OS & terminal & window-system}
OS                 {OS-A:5.3 .. 5.4｜OS-B:4.1 .. 4.3}
terminal         {console｜tty ｜Soft-D}
window-system {OS & display & (WindowSoft-A:11.5｜WindowSoft-A:11.4)}
Soft-D            {OS & window-system}
この例は、Soft-Aという名前のソフトウェアのバージョン18.55の依存関係リストを示している。この依存関係リストには、Soft-Aを使用するためには、ＯＳ（オペレーティングシステム）と総称されるソフトウェアが必要であり、かつterminal、及びwindow-systemと総称されるソフトウェアの両方が必要であることが示されている。そして、ＯＳとしては、OS-Aというソフトウエアの版名（バージョン）5.3から5.4のうちいずれか、もしくはOS-Bというソフトウエアの版名4.1から4.3のうちいずれかがあれば良いことが示されている。また、terminalとしては、consoleまたはttyまたはSoft-Dと呼ばれるソフトウエアがあれば良く、さらにSoft-Dを使用するためにはOS及びwindow-system が必要であることが示されている。また、window-systemとしては、OS及びdisplayと、WindowSoft-Aのバージョン11.5もしくはバージョン11.4があれば良いことが示されている。
【００２２】
配布制御部１６は、クライアント２０へのパッケージの配布を制御する。具体的には、日付やバージョンを指定した取得要求がクライアント２０からあると、依存関係リスト記憶部１４から取得要求のあったパッケージの依存関係リストを選択して、クライアント２０に送信する。また、依存関係リストを配布したクライアント２０から、要求リストが送信されると、この要求リストに記載されたパッケージ、補助ソフトウェアをクライアント２０に送信する。
【００２３】
また、クライアント２０は、送受信部２１と、パッケージ取得制御部２２と、保有リスト記憶部２３と、ハードディスク（ＨＤＤとも表記する）２４とを備えている。
【００２４】
送受信部２１は、パッケージ取得制御部２２の制御に従って、パッケージの取得要求をサーバ１０に送信したり、サーバ１０から送信されるパッケージを受信してパッケージ取得制御部２２に出力したりする。
【００２５】
パッケージ取得制御部２２は、サーバ１０に対してパッケージの取得要求を出力し、所望のパッケージを取得する制御を行う。具体的には、サーバ１０から依存関係リストを取得すると、保有リスト記憶部２３から取得した保有リストと比較して、所持していないパッケージや補助ソフトウェアを検出する。所持していないパッケージや補助ソフトウェアを検出すると、それらを要求リストにまとめてサーバ１０側に送信する。さらに、サーバ１０から送信されたパッケージや補助ソフトウェアをＨＤＤ２４に蓄積する制御を行う。さらに、サーバ１０から新たに取得したパッケージや補助ソフトウェアを保有リスト記憶部２３の保有リストに記録する。
【００２６】
本実施例のパッケージ配布システムは、クライアント２０側でパッケージが生成され、サーバ１０に登録されると、そのパッケージの依存関係リストを作成し、依存関係リスト記憶部１４に記憶しておく。図３に示すようにサーバ１０側には、パッケージデータベース１７に格納したパッケージごとに、依存関係リストが記録されている。クライアント２０側からバージョン、日付を指定したパッケージの取得要求があると、指定を受けたパッケージの依存関係リストをクライアント２０に送信し、クライアント２０は、必要な補助ソフトウェアとパッケージの送信要求をサーバ１０に出力する。
【００２７】
図４に示すフローチャートを参照しながら本実施例の動作手順を説明する。
クライアント２０から日付やバージョンを指定したパッケージの取得要求が送信されると、サーバ１０はこれを送受信部１１で受信して配布制御部１６に出力する。配布制御部１６は、指定された日付やバージョンのパッケージの依存関係リストを依存関係リスト記憶部１４を検索して取り出す。取り出した依存関係リストは、送受信部１１からクライアント２０に送信される。
【００２８】
依存関係リストを取得したクライアント２０側では、依存関係リストに記録された補助ソフトウェアがＨＤＤ２４に格納されているか否かをパッケージ取得制御部２２がチェックする。依存関係リストに記録された補助ソフトウェアで、ＨＤＤ２４に格納されていない補助ソフトウェアを検出すると、パッケージ取得制御部２２はこれを要求リストに登録する。依存関係リストに記録された全ての補助ソフトウェアについて、ＨＤＤ２４に格納されているか否かのチェックが終了すると、作成した要求リストをサーバ１０に送信する（ステップＳ３）。
【００２９】
要求リスト１０を受信したサーバ１０側では、配布制御部１６が要求リストに記載された補助ソフトウェアと、パッケージとをパッケージデータベース１７から取得する。取得したパッケージ及び補助ソフトウェアを送受信部１１からクライアント２０に送信する（ステップＳ４）。
【００３０】
このように本実施例は、クライアント２０の所望するバージョン、更新日時のパケージソフトウェアをクライアント２０にダウンロードすることができる。また、依存関係リストをサーバ１０に記憶しているので、クライアント２０に送信済みの補助ソフトウェアを２度ダウンロードすることがない。
【実施例２】
【００３１】
本実施例は、クライアント２０が依存関係リストの取得要求をサーバ１０に出力する。取得要求を受けたサーバ１０では、要求のあった依存関係リストが依存関係リスト記憶部１４に記憶されているか否かを判定し、リストが記憶されていない場合には、それを作成して要求元のクライアント２０に送付する。
【００３２】
図５に示すフローチャートを参照しながら本実施例の動作手順を説明する。
サーバ１０は、クライアント２０から依存関係リストの取得依頼を送受信部１１で受信すると（ステップＳ１１）、配布制御部１６で該当するパッケージがパッケージデータベース１７に格納されているか否かを判定する。
【００３３】
該当するパッケージがパッケージデータベース１７に格納されていなかった場合（ステップＳ１３／ＮＯ）、配布制御部１６はパッケージの取得要求を外部に設けられた外部サーバに出力する（ステップＳ１４）。取得要求を出した外部サーバから該当パッケージを取得することができない場合（ステップＳ１５／ＮＯ）、配布制御部１６は、エラー通知を該当のクライアント２０に送信する。サーバ１０内にパッケージが格納されていた場合（ステップＳ１３／ＹＥＳ）、又は外部サーバからパッケージを取得することができた場合には（ステップＳ１５／ＹＥＳ）、依存関係リスト生成部１３で、該当するパッケージの依存関係リストを調査する（ステップＳ１７）。ソフトウェアのヘッダファイルには、ソフトウェアを駆動させるために必要な補助ソフトウェアが書き込まれているので、依存関係リスト生成部１３は、ヘッダファイルを参照し、必要な補助ソフトウェアがパッケージデータベース１７にすべて格納されているか否かを判定する（ステップＳ１８）。補助ソフトウェアがパッケージデータベース１７に格納されていない場合には（ステップＳ１８／ＮＯ）、配布制御部１６は外部サーバに該当補助ソフトウェアの取得要求を出す（ステップＳ１９）。外部サーバから補助ソフトウェアを取得することができなかった場合（ステップＳ２０／ＮＯ）、配布制御部１６は、エラー通知を該当クライアント２０に通知する（ステップＳ２１）。また、パッケージデータベース１７に必要な補助パッケージが全て格納されている場合（ステップＳ１８／ＹＥＳ）や、外部サーバから必要な補助パッケージを取得した場合には（ステップＳ２０／ＹＥＳ）、依存関係リスト生成部１３で依存関係リストを作成し（ステップＳ２２）、このリストを依存関係リスト記憶部１４に格納する。配布制御部１６は、依存関係リスト記憶部１４から依存関係リストを取り出して、該当クライアントに送信する（ステップＳ２３）。
【００３４】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【００３５】
【図１】ネットワークを介してサーバと複数のクライアントが接続された構成を示す図である。
【図２】サーバとクライアントの構成を示す機能ブロック図である。
【図３】依存関係リスト記憶部の構成を示す図である。
【図４】動作手順を示すフローチャートである。
【図５】動作手順を示すフローチャートである。
【符号の説明】
【００３６】
１０  サーバ                    １１  送受信部
１２  入力部                    １３  依存関係リスト生成部
１４  依存関係リスト記憶部      １５  パッケージ格納制御部
１６  配布制御部                １７  パッケージデータベース
２０  クライアント              ２１  送受信部
２２  パッケージ取得制御部      ２３  保有リスト記憶部
２４  ＨＤＤ                    ３０  ネットワーク
【図１】
2007079773.tif 000003
【図２】
2007079773.tif 000004
【図３】
2007079773.tif 000005
【図４】
2007079773.tif 000006
【図５】
2007079773.tif 000007