JP2007079773A - ソフトウエア配布サーバ及びソフトウエア配布方法 - Google Patents

ソフトウエア配布サーバ及びソフトウエア配布方法 Download PDF

Info

Publication number
JP2007079773A
JP2007079773A JP2005265089A JP2005265089A JP2007079773A JP 2007079773 A JP2007079773 A JP 2007079773A JP 2005265089 A JP2005265089 A JP 2005265089A JP 2005265089 A JP2005265089 A JP 2005265089A JP 2007079773 A JP2007079773 A JP 2007079773A
Authority
JP
Japan
Prior art keywords
software
package
client
list
auxiliary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005265089A
Other languages
English (en)
Inventor
Masahiko Harada
政彦 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2005265089A priority Critical patent/JP2007079773A/ja
Publication of JP2007079773A publication Critical patent/JP2007079773A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 クライアントの所望するソフトウェアを提供できるソフトウェア配布サーバを提供する。
【解決手段】 パッケージと、パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、パッケージの更新日付と、パッケージのバージョンとの少なくとも一方を管理情報として記憶したパッケージデータベース17と、パッケージの動作に必要な補助ソフトウェアのリストである依存関係リストを、日付とバージョンとの少なくとも一方を管理情報として記憶した依存関係リスト記憶部14と、クライアント20から日付又はバージョンを指定したパッケージの取得要求を受け付けると、該当するパッケージの依存関係リストをクライアント20に送信し、クライアント20から取得要求のあった補助ソフトウェアと、パッケージをクライアント20に配布する配布制御部16とを有している。
【選択図】 図2

Description

本発明は、ネットワークを利用してソフトウエアを配布するソフトウェア配布サーバ及びソフトウェア配布方法に関する。
ネットワークを介して情報処理装置から他の情報処理装置にデータを配布することはさまざまな場面で利用されている。例えば、現在利用しているソフトウェアパッケージ(以下、簡単のためパッケージと呼ぶ)を更新する、あるいは新規のパッケージを入手する場合に、ネットワーク等を介してサーバにアクセスし、パッケージを入手すること等が広く行われている。
しかしながら、取得したパッケージを動作させるためには、ライブラリ等の補助的なソフトウェアが必要な場合が多い。すなわち、ソフトウエアは、自分自身で必要な機能をすべて実装しているわけではなく、よく使われる機能をライブラリ化してそのライブラリ化されたものの中の機能を呼び出すような書き方をしている。これによってソフトウェア自体を小さくすることができる。しかしながら、ソフトウェアの提供を受けたクライアント側で、パッケージごとに必要とする補助的なソフトウェアを把握するのは難しい。
そこで特許文献1では、配布元のサーバが各ソフトウェアの依存情報を把握し、配布先のクライアントが要求するパッケージに必要な補助的なソフトウェアをクライアントに通知している。通知を受けたクライアントでは、既に保有しているソフトウェアを差し引いて、配布を受ける必要があるソフトウェア及び補助的なソフトウェアをサーバに要求する。サーバは、要求を受けたソフトウェアだけを当該クライアントに配布している。
特開平7−334436号公報
しかしながら、特許文献1に開示の方法では、常に最新バージョンのソフトウェアだけがクライアントに提供されることになる。ソフトウェア開発環境においては、動作テスト及び開発スケジュール等によって、最新のものではなく特定のバージョンのものが必要な場合もある。
本発明は上記事情に鑑みてなされたものであり、クライアントの所望するソフトウェアを提供できるソフトウェア配布サーバ及びソフトウェア配布方法を提供することを目的とする。
かかる目的を達成するために本発明のソフトウェア配布サーバは、取得要求に応じてパッケージソフトウェアをクライアントに配布するサーバであって、前記パッケージソフトウェアと、該パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、該パッケージソフトウェアの更新日付と、該パッケージソフトウェアのバージョンとの少なくとも一方を管理情報として記憶した第1の記憶手段と、前記パッケージソフトウェアの動作に必要な前記補助ソフトウェアのリストである依存関係リストを、前記日付と前記バージョンとの少なくとも一方を管理情報として記憶した第2の記憶手段と、前記クライアントから日付又はバージョンを指定した前記パッケージソフトウェアの取得要求を受け付けると、該当する前記パッケージソフトウェアの前記依存関係リストを前記クライアントに送信し、該クライアントから取得要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアを前記クライアントに配布する配布制御手段と、を有する構成としている。
このように本発明は、クライアントの所望するバージョン、更新日時のパッケージソフトウェアをクライアントにダウンロードすることができる。また、依存関係リストを記憶しているので、クライアントに送信済みの補助ソフトウェアを2度ダウンロードすることがない。
上記ソフトウェア配布サーバにおいて、前記パッケージソフトウェアの前記第1の記憶手段への格納要求が出される毎に、前記パッケージソフトウェアの依存関係リストを作成して前記第2の記憶手段に格納するリスト作成手段を有しているとよい。
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第2の記憶手段に格納されていない場合に、前記リスト作成手段に前記依存関係リストの作成を依頼するとよい。
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第2の記憶手段に格納されていない場合に、ネットワーク接続された外部装置から該当パッケージを取得するとよい。
また、上記ソフトウェア配布サーバにおいて、前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストに記載される補助ソフトウェアが前記第1の記憶手段に格納されていなかった場合に、ネットワーク接続された外部装置から該当補助ソフトウェアを取得するとよい。
本発明のソフトウェア配布方法は、クライアントから日付又はバージョンを指定してパッケージソフトウェアの取得要求を受け付けるステップと、前記パッケージソフトウェアを動作させるために必要な補助ソフトウェアのリストを記憶した第2の記憶手段から、該当日付又はバージョンのリストを選択して前記クライアントに送信するステップと、前記リストを送信した前記クライアントから要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアとを前記クライアントに送信するステップとを有している。
本発明は、クライアントの所望するソフトウェアを提供することができる。
添付図面を参照しながら本発明の好適な実施例を説明する。
まず、図1を参照しながら本実施例の構成を説明する。図1に示すように本実施例のソフトウェア配布システムは、サーバ10と、複数のクライアント20とがネットワーク30を介して接続されている。なお、図示した以外に、計算機を接続したシステムや計算機等とデータの送受信可能なシステム等であれば本発明を適用可能である。
図2に、サーバ10とクライアント20の詳細な構成を示す。なお、図1に示す複数のクライアント20は、すべて同等の機能を有しているので、図2には代表して1つのクライアント20の構成だけを示す。図2に示すようにサーバ10には、送受信部11と、入力部12と、依存関係リスト生成部13と、依存関係リスト記憶部(第2の記憶手段)14と、パッケージ格納制御部15と、配布制御部16と、パッケージデータベース(第1の記憶手段)17とが備えられている。
送受信部11は、複数のクライアント20から送信されるパッケージ取得要求を受信して、配布制御部16に転送する。また、配布制御部16から転送されたパッケージやソフトウェアを指定されたクライアント20に送信する。
入力部12は、ソフトウェア作成者によって作成されたパッケージやソフトウェアを入力する。入力したパッケージやソフトウェアは、依存関係リスト生成部13に出力される。
依存関係リスト生成部13は、ソフトウェアやパッケージを入力すると、入力したソフトウェアのヘッダファイルを参照し、そのソフトウェアを動作させるために必要な補助ソフトウェアの情報を取得する。取得した情報から依存関係リストを作成し、依存関係リスト記憶部14に出力して記憶させる。依存関係リストは、必要な補助ソフトウェアの一覧をリストにしたものである。図3に依存奸計リスト記憶部14の構成を示す。パッケージの更新日付とバージョン情報とを管理情報として、依存関係リストが格納されている。また、ソフトウェアやパッケージは、パッケージ格納制御部15に出力され、パッケージ格納制御部15の制御によってパッケージデータベース17に格納される。
依存関係リストの一例を示す。
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を使用するためには、OS(オペレーティングシステム)と総称されるソフトウェアが必要であり、かつterminal、及びwindow-systemと総称されるソフトウェアの両方が必要であることが示されている。そして、OSとしては、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があれば良いことが示されている。
配布制御部16は、クライアント20へのパッケージの配布を制御する。具体的には、日付やバージョンを指定した取得要求がクライアント20からあると、依存関係リスト記憶部14から取得要求のあったパッケージの依存関係リストを選択して、クライアント20に送信する。また、依存関係リストを配布したクライアント20から、要求リストが送信されると、この要求リストに記載されたパッケージ、補助ソフトウェアをクライアント20に送信する。
また、クライアント20は、送受信部21と、パッケージ取得制御部22と、保有リスト記憶部23と、ハードディスク(HDDとも表記する)24とを備えている。
送受信部21は、パッケージ取得制御部22の制御に従って、パッケージの取得要求をサーバ10に送信したり、サーバ10から送信されるパッケージを受信してパッケージ取得制御部22に出力したりする。
パッケージ取得制御部22は、サーバ10に対してパッケージの取得要求を出力し、所望のパッケージを取得する制御を行う。具体的には、サーバ10から依存関係リストを取得すると、保有リスト記憶部23から取得した保有リストと比較して、所持していないパッケージや補助ソフトウェアを検出する。所持していないパッケージや補助ソフトウェアを検出すると、それらを要求リストにまとめてサーバ10側に送信する。さらに、サーバ10から送信されたパッケージや補助ソフトウェアをHDD24に蓄積する制御を行う。さらに、サーバ10から新たに取得したパッケージや補助ソフトウェアを保有リスト記憶部23の保有リストに記録する。
本実施例のパッケージ配布システムは、クライアント20側でパッケージが生成され、サーバ10に登録されると、そのパッケージの依存関係リストを作成し、依存関係リスト記憶部14に記憶しておく。図3に示すようにサーバ10側には、パッケージデータベース17に格納したパッケージごとに、依存関係リストが記録されている。クライアント20側からバージョン、日付を指定したパッケージの取得要求があると、指定を受けたパッケージの依存関係リストをクライアント20に送信し、クライアント20は、必要な補助ソフトウェアとパッケージの送信要求をサーバ10に出力する。
図4に示すフローチャートを参照しながら本実施例の動作手順を説明する。
クライアント20から日付やバージョンを指定したパッケージの取得要求が送信されると、サーバ10はこれを送受信部11で受信して配布制御部16に出力する。配布制御部16は、指定された日付やバージョンのパッケージの依存関係リストを依存関係リスト記憶部14を検索して取り出す。取り出した依存関係リストは、送受信部11からクライアント20に送信される。
依存関係リストを取得したクライアント20側では、依存関係リストに記録された補助ソフトウェアがHDD24に格納されているか否かをパッケージ取得制御部22がチェックする。依存関係リストに記録された補助ソフトウェアで、HDD24に格納されていない補助ソフトウェアを検出すると、パッケージ取得制御部22はこれを要求リストに登録する。依存関係リストに記録された全ての補助ソフトウェアについて、HDD24に格納されているか否かのチェックが終了すると、作成した要求リストをサーバ10に送信する(ステップS3)。
要求リスト10を受信したサーバ10側では、配布制御部16が要求リストに記載された補助ソフトウェアと、パッケージとをパッケージデータベース17から取得する。取得したパッケージ及び補助ソフトウェアを送受信部11からクライアント20に送信する(ステップS4)。
このように本実施例は、クライアント20の所望するバージョン、更新日時のパケージソフトウェアをクライアント20にダウンロードすることができる。また、依存関係リストをサーバ10に記憶しているので、クライアント20に送信済みの補助ソフトウェアを2度ダウンロードすることがない。
本実施例は、クライアント20が依存関係リストの取得要求をサーバ10に出力する。取得要求を受けたサーバ10では、要求のあった依存関係リストが依存関係リスト記憶部14に記憶されているか否かを判定し、リストが記憶されていない場合には、それを作成して要求元のクライアント20に送付する。
図5に示すフローチャートを参照しながら本実施例の動作手順を説明する。
サーバ10は、クライアント20から依存関係リストの取得依頼を送受信部11で受信すると(ステップS11)、配布制御部16で該当するパッケージがパッケージデータベース17に格納されているか否かを判定する。
該当するパッケージがパッケージデータベース17に格納されていなかった場合(ステップS13/NO)、配布制御部16はパッケージの取得要求を外部に設けられた外部サーバに出力する(ステップS14)。取得要求を出した外部サーバから該当パッケージを取得することができない場合(ステップS15/NO)、配布制御部16は、エラー通知を該当のクライアント20に送信する。サーバ10内にパッケージが格納されていた場合(ステップS13/YES)、又は外部サーバからパッケージを取得することができた場合には(ステップS15/YES)、依存関係リスト生成部13で、該当するパッケージの依存関係リストを調査する(ステップS17)。ソフトウェアのヘッダファイルには、ソフトウェアを駆動させるために必要な補助ソフトウェアが書き込まれているので、依存関係リスト生成部13は、ヘッダファイルを参照し、必要な補助ソフトウェアがパッケージデータベース17にすべて格納されているか否かを判定する(ステップS18)。補助ソフトウェアがパッケージデータベース17に格納されていない場合には(ステップS18/NO)、配布制御部16は外部サーバに該当補助ソフトウェアの取得要求を出す(ステップS19)。外部サーバから補助ソフトウェアを取得することができなかった場合(ステップS20/NO)、配布制御部16は、エラー通知を該当クライアント20に通知する(ステップS21)。また、パッケージデータベース17に必要な補助パッケージが全て格納されている場合(ステップS18/YES)や、外部サーバから必要な補助パッケージを取得した場合には(ステップS20/YES)、依存関係リスト生成部13で依存関係リストを作成し(ステップS22)、このリストを依存関係リスト記憶部14に格納する。配布制御部16は、依存関係リスト記憶部14から依存関係リストを取り出して、該当クライアントに送信する(ステップS23)。
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
ネットワークを介してサーバと複数のクライアントが接続された構成を示す図である。 サーバとクライアントの構成を示す機能ブロック図である。 依存関係リスト記憶部の構成を示す図である。 動作手順を示すフローチャートである。 動作手順を示すフローチャートである。
符号の説明
10 サーバ 11 送受信部
12 入力部 13 依存関係リスト生成部
14 依存関係リスト記憶部 15 パッケージ格納制御部
16 配布制御部 17 パッケージデータベース
20 クライアント 21 送受信部
22 パッケージ取得制御部 23 保有リスト記憶部
24 HDD 30 ネットワーク

Claims (6)

  1. 取得要求に応じてパッケージソフトウェアをクライアントに配布するサーバであって、
    前記パッケージソフトウェアと、該パッケージソフトウェアを動作させるために必要な補助ソフトウェアとを、該パッケージソフトウェアの更新日付と、該パッケージソフトウェアのバージョンとの少なくとも一方を管理情報として記憶した第1の記憶手段と、
    前記パッケージソフトウェアの動作に必要な前記補助ソフトウェアのリストである依存関係リストを、前記日付と前記バージョンとの少なくとも一方を管理情報として記憶した第2の記憶手段と、
    前記クライアントから日付又はバージョンを指定した前記パッケージソフトウェアの取得要求を受け付けると、該当する前記パッケージソフトウェアの前記依存関係リストを前記クライアントに送信し、該クライアントから取得要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアを前記クライアントに配布する配布制御手段と、
    を有することを特徴とするソフトウェア配布サーバ。
  2. 前記パッケージソフトウェアの前記第1の記憶手段への格納要求が出される毎に、前記パッケージソフトウェアの依存関係リストを作成して前記第2の記憶手段に格納するリスト作成手段を有することを特徴とする請求項1記載のソフトウェア配布サーバ。
  3. 前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが前記第2の記憶手段に格納されていない場合に、前記リスト作成手段に前記依存関係リストの作成を依頼することを特徴とする請求項2記載のソフトウェア配布サーバ。
  4. 前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストが、前記第2の記憶手段に格納されていない場合に、ネットワーク接続された外部装置から該当パッケージを取得することを特徴とする請求項3記載のソフトウェア配布サーバ。
  5. 前記配布制御手段は、前記クライアントから取得要求のあった前記依存関係リストに記載される補助ソフトウェアが前記第1の記憶手段に格納されていなかった場合に、ネットワーク接続された外部装置から該当補助ソフトウェアを取得することを特徴とする請求項3記載のソフトウェア配布サーバ。
  6. クライアントから日付又はバージョンを指定してパッケージソフトウェアの取得要求を受け付けるステップと、
    前記パッケージソフトウェアを動作させるために必要な補助ソフトウェアのリストを記憶した第2の記憶手段から、該当日付又はバージョンのリストを選択して前記クライアントに送信するステップと、
    前記リストを送信した前記クライアントから要求のあった前記補助ソフトウェアと、前記パッケージソフトウェアとを前記クライアントに送信するステップと、
    を有することを特徴とするソフトウェア配布方法。
JP2005265089A 2005-09-13 2005-09-13 ソフトウエア配布サーバ及びソフトウエア配布方法 Pending JP2007079773A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005265089A JP2007079773A (ja) 2005-09-13 2005-09-13 ソフトウエア配布サーバ及びソフトウエア配布方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005265089A JP2007079773A (ja) 2005-09-13 2005-09-13 ソフトウエア配布サーバ及びソフトウエア配布方法

Publications (1)

Publication Number Publication Date
JP2007079773A true JP2007079773A (ja) 2007-03-29

Family

ID=37940036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005265089A Pending JP2007079773A (ja) 2005-09-13 2005-09-13 ソフトウエア配布サーバ及びソフトウエア配布方法

Country Status (1)

Country Link
JP (1) JP2007079773A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010100867A1 (ja) * 2009-03-05 2010-09-10 日本電気株式会社 仮想計算機管理システム
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
WO2013183249A1 (ja) * 2012-06-04 2013-12-12 日本電気株式会社 配備装置、及び、配備方法
US10303465B1 (en) * 2018-02-22 2019-05-28 Allscripts Software, Llc Computing system for managing software dependencies in a private data store

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010100867A1 (ja) * 2009-03-05 2010-09-10 日本電気株式会社 仮想計算機管理システム
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
WO2013183249A1 (ja) * 2012-06-04 2013-12-12 日本電気株式会社 配備装置、及び、配備方法
CN104335174A (zh) * 2012-06-04 2015-02-04 日本电气株式会社 部署设备和部署方法
US10303465B1 (en) * 2018-02-22 2019-05-28 Allscripts Software, Llc Computing system for managing software dependencies in a private data store
US10802824B1 (en) 2018-02-22 2020-10-13 Allscripts Software, Llc Computing system for managing software dependencies in a private data store

Similar Documents

Publication Publication Date Title
US10891305B2 (en) Synchronization of data between systems
JP4864557B2 (ja) ソフトウェアの更新処理プログラム及び更新処理装置
US10656845B2 (en) System and method for managing container image
CN100557574C (zh) 使用二进制比较优化文件复制
EP1758042B1 (en) Document distribution system and method
CN109391664A (zh) 用于多集群容器部署的系统和方法
JP2007156612A (ja) 情報処理装置、サーバ装置、ファイル処理方法、記憶媒体およびプログラム
KR101991537B1 (ko) 자율형 네트워크 스트리밍 기법
JP2010086370A (ja) 画像形成装置、配信サーバーおよびファームウェアアップデート方法
JP2010250561A (ja) 情報処理装置、制御方法、及びプログラム
JP2007079773A (ja) ソフトウエア配布サーバ及びソフトウエア配布方法
JP4238142B2 (ja) プログラムコンポーネントの処理要求キューの構成方法、プログラムコンポーネントの登録方法及び実行制御方法、プログラムコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバ
US7107272B1 (en) Independent distributed metadata system and method
JP4982249B2 (ja) 運用整合性維持方法、システム及びプログラム
JP5419637B2 (ja) 管理装置、その方法及びプログラム
JP2008090578A (ja) アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム
US20090259986A1 (en) Class selectable design sharing
JP2006059191A (ja) データ処理装置、データ処理方法及びプログラム
US20160357780A1 (en) Hierarchical file block variant tracker apparatus coupled to a Librarian and to a remote file service
US9536244B1 (en) Managed content delivery via web services
JP2004139200A (ja) ファイル管理プログラム及びファイル管理装置
JP2007257156A (ja) リストアシステム及びリストア方法
US7529837B2 (en) Device and method for changing instruction description, and storage medium storing program for changing instruction
JP2012137850A (ja) 分散ファイル操作プログラム、分散ファイル操作装置、及び分散ファイル操作方法
JP2001337935A (ja) 分散オブジェクト環境におけるアプリケーションのラッピング方法、その通信管理装置及び記録媒体