(57)【特許請求の範囲】
【請求項１】
第一の計算機から第二の計算機へソフトウェアを送信するソフトウェア送信方法であって、
第一のソフトウェアと、前記第一のソフトウェアを使用するために必要な第二のソフトウェアと、前記第二のソフトウェアのバージョン範囲とを関連付けて記憶装置に記憶し、
前記第二の計算機にインストール済みの第三のソフトウェアの情報と、前記第二の計算機とを関連付けて前記記憶装置に記憶し、
前記第三のソフトウェアを更新する場合に影響を受ける第四のソフトウェアと、前記第三のソフトウェアとを関連付けて記憶装置に記憶し、
前記第一の計算機の配布ソフトウェア決定手段によって、送信指示を受けた前記第一のソフトウェアが前記第三のソフトウェアの更新版である場合に、前記第三のソフトウェアを更新することで影響を受ける第四のソフトウェアを前記記憶装置から読出し、
前記第一の計算機の前記配布ソフトウェア決定手段によって、読み出された前記第四のソフトウェアの異なるバージョンが前記記憶装置に記憶されている場合に、異なるバージョンの前記第四のソフトウェアの前提となる第二のソフトウェアのバージョン範囲を前記記憶装置から読出し、
前記第一の計算機の前記配布ソフトウェア決定手段によって、送信指示された前記第一のソフトウェアのバージョンが、異なるバージョンの前記第四のソフトウェアが必要とする第二のソフトウェアのバージョン範囲内である場合に、異なるバージョンの前記第四のソフトウェアを更新版のソフトウェアとして送信対象と決定し、
前記第一の計算機の送信手段により、少なくとも送信指示を受けた前記第一のソフトウェアと異なるバージョンの前記第四のソフトウェアとを前記第一の計算機から前記第二の計算機へ送信することを特徴とするソフトウェア送信方法。
【請求項２】
前記第二の計算機にインストールされているソフトウェアに使用優先度を付与して記憶装置に記憶し、
前記第一の計算機の前記配布ソフトウェア決定手段によって、送信対象とするすくなくとも第一または第二いづれかのソフトウェアの送信により、インストール済みのすくなくとも第三または第四のいづれかのソフトウェアが使用できなくなる場合に、前記第三または前記第四のソフトウェアより、前記第一または前記第二のソフトウェアに設定された使用優先度が高い場合に、前記第一または前記第二のソフトウェアを前記第二の計算機への送信対象とし、
前記第一の計算機の前記送信手段によって、送信対象とされた、前記第一または前記第二のソフトウェアを前記第二の計算機へ送信することを特徴とする請求項１に記載のソフトウェア送信方法。
【請求項３】
前記第二の計算機にインストールされているソフトウェアに使用優先度を付与して記憶装置に記憶し、
前記第一の計算機の前記配布ソフトウェア決定手段によって、送信対象とするすくなくとも第一または第二いづれかのソフトウェアの送信により、ストール済みのすくなくとも第三または第四のいづれかのソフトウェアが使用できなくなる場合に、前記第一または前記第二のソフトウェアより、前記第三または前記第四のソフトウェアに設定された使用優先度が高い場合に、前記第一または前記第二のソフトウェアの送信を抑止することを特徴とする請求項１に記載のソフトウェア送信方法。
【請求項４】
送信指示された前記第二の計算機のうち、インストール済みの第三のソフトウェアが同じ被管理システムがグループ化されて記憶装置に記憶されており、
前記第一の計算機の前記送信手段により、グループ化された前記第二の計算機に対して必要な第二のソフトウェアを前記第二の計算機に送信することを特徴とする請求項１に記載のソフトウェア送信方法。
【請求項５】
前記第一の計算機の前記配布ソフトウェア決定手段は、送信対象とする第二のソフトウェアを決定し、前記第一の計算機の送信手段は、決定された前記第二のソフトウェアを前記第二の計算機に送信することを特徴とする請求項１に記載のソフトウェア送信方法。
【請求項６】
第一の計算機と、前記第一の計算機から送られたソフトウェアを受信する第二の計算機とを有する計算機システムであって、
前記第一の計算機は、
第一のソフトウェアと、前記第一のソフトウェアを使用するために必要な第二のソフトウェアと、前記第二のソフトウェアのバージョン範囲とが関連付けて記憶され、また前記第二の計算機にインストール済みの第三のソフトウェアの情報と、前記第二の計算機とが関連付けて記憶され、更に前記第三のソフトウェアを更新する場合に影響を受ける第四のソフトウェアと、前記第三のソフトウェアとが関連付けて記憶された記憶装置と、
送信指示を受けた前記第一のソフトウェアが前記第三のソフトウェアの更新版である場合に、前記第三のソフトウェアを更新することで影響を受ける第四のソフトウェアを前記記憶装置から読出し、読み出された前記第四のソフトウェアの異なるバージョンが前記記憶装置に記憶されている場合に、異なるバージョンの前記第四のソフトウェアの前提となる第二のソフトウェアのバージョン範囲を前記記憶装置から読出し、送信指示された前記第一のソフトウェアのバージョンが、異なるバージョンの前記第四のソフトウェアが必要とする第二のソフトウェアのバージョン範囲内である場合に、異なるバージョンの前記第四のソフトウェアを更新版のソフトウェアとし、前記第一のソフトウェアと前記第二のソフトウェアおよび異なるバージョンの前記第四のソフトウェアを送信対象と決定する配布ソフトウェア決定手段と、
前記第一のソフトウェアと、前記第二のソフトウェアおよび異なるバージョンの前記第四のソフトウェアとを前記第二の計算機へ送信する送信手段とを有し、
前記第二の計算機は、
送信指示された前記第一のソフトウェアと、送信対象とする第二のソフトウェアおよび前記第四のソフトウェアとを受信するソフトウェア受信手段と、
受信したソフトウェアをインストールするインストール手段とを
有することを特徴とする計算機システム。
【請求項７】
第一の計算機と、前記第一の計算機から送られたソフトウェアを受信する第二の計算機とを有するシステムであって、
前記第二の計算機は、
第一のソフトウェアと、前記第一のソフトウェアを使用するために必要な第二のソフトウェアと、前記第二のソフトウェアのバージョン範囲とが関連付けて記憶され、また前記第二の計算機にインストール済みの第三のソフトウェアの情報と、前記第二の計算機とが関連付けて記憶され、更に前記第三のソフトウェアを更新する場合に影響を受ける第四のソフトウェアと、前記第三のソフトウェアとが関連付けて記憶された記憶装置と、
送信指示を受けた前記第一のソフトウェアが前記第三のソフトウェアの更新版である場合に、前記第三のソフトウェアを更新することで影響を受ける第四のソフトウェアを前記記憶装置から読出し、読み出された前記第四のソフトウェアの異なるバージョンが前記記憶装置に記憶されている場合に、異なるバージョンの前記第四のソフトウェアの前提となる第二のソフトウェアのバージョン範囲を前記記憶装置から読出し、送信指示された前記第一のソフトウェアのバージョンが、異なるバージョンの前記第四のソフトウェアが必要とする第二のソフトウェアのバージョン範囲内である場合に、異なるバージョンの前記第四のソフトウェアを更新版のソフトウェアとして送信対象と決定する手段と、
前記第一のソフトウェアと、決定された前記第四のソフトウェアの送信要求を前記第一の計算機へ送信する送信手段とを有し、
前記第一の計算機は、
前記第二の計算機から送信指示があった前記第一のソフトウェアと、第四のソフトウェアとを前記第一の計算機の記憶装置から読み出し、読み出されたソフトウェアを前記第二の計算機に送信する送信手段とを、
有することを特徴とする計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション，プログラム，データ，ファイルおよび環境設定などのソフトウェアの配布に際して、そのソフトウェアを使用するために必要となるソフトウェアを自動的に配布するとともに、配布に際して、既にインストール済みのソフトウェアへの影響を最小限にする方法およびシステムに関する。
【０００２】
【従来の技術】
従来からプログラムやファイルなどのソフトウェアを被管理システム装置などへ配布する方法が種々提案され、実際に採用されている。しかしながら、指定したソフトウェアを単純に配布しただけでは、被管理システムでそのソフトウェアを使用できない場合がある。この問題を回避する従来の技術として、ソフトウェアを配布する前に条件をチェックし、条件を満たす場合にのみソフトウェアを自動的に配布する、特開平４−１７５９５２号公報に記載のソフトウェア資源配布管理方式や、特開平１０−３０１７６０号公報に記載のソフトウェア自動配布管理システムがある。また、配布元から被管理システムに送付したソフトウェアの依存関係リストから配布要求リストを作成することで、必要なソフトウェアを配布する、特開平７−３３４４３６号公報に記載のソフトウェア自動配布方式がある。また、複合パッケージから必要なものだけをインストールする、特開平１０−８３２８０号公報に記載のパッケージ従属性による複数パッケージのインストール方法および装置がある。
【０００３】
【発明が解決しようとする課題】
従来の特開平４−１７５９５２号公報に記載のソフトウェア資源配布管理方式や、特開平１０−３０１７６０号公報に記載のソフトウェア自動配布管理システムでは、ソフトウェアを使用するための条件を満たしていない場合には、ソフトウェアの配布を行わない。使用できないソフトウェアの配布を抑止することは可能であるが、チェックと配布抑止を自動的に行うため、配布できない要因を解消しないとソフトウェアを配布することができないという問題がある。
【０００４】
配布したいソフトウェアが配布できないという問題を解決する方法として、特開平７−３３４４３６号公報に記載のソフトウェア自動配布方式には、配布要求によりソフトウェア毎に持つ依存関係リストを被管理システムへ送付し、被管理システムにおいて既に保有しているソフトウェアをリストから削除して再度配布要求を行う方法が記載されている。
【０００５】
これにより、被管理システムに必要なソフトウェアが不足している場合には自動的に配布を行うことができる。
【０００６】
しかしながら、この従来の方法では、配布するソフトウェアに関連するソフトウェアを自動的に配布することはできるが、関連ソフトウェアが必要とするソフトウェアについては考慮されておらず、関連ソフトウェアの使用条件を満たさない場合には、配布したソフトウェアを使用できないという問題がある。
【０００７】
さらに言えば、上記の従来技術では、配布したソフトウェア自体は正常に動作しているが、配布したソフトウェアに関連して配布され上書きされたソフトウェアを前提として動作する第三のソフトウェアが存在する場合については考慮されていない。このようなケースでは、配布したソフトウェア自体は正常に動作しているため、インストール済みのソフトウェアが動作しなくなった原因の究明が難しいという問題がある。
【０００８】
また、関連するソフトウェアを自動的にインストールする方法として、特開平１０−８３２８０号公報に記載のパッケージ従属性による複数パッケージのインストール方法及び装置には、ソフトウェアのインストール時に必要とするソフトウェアをチェックしてインストールする方法が記載されている。
【０００９】
これにより、必要なソフトウェアをもれなくインストールすることができる。
【００１０】
しかしながら、この従来の方法では、インストール時に不足ソフトウェアをチェックするため、インストールに要する時間は実際のインストール時間に加えてチェックに要する時間が必要となる。
【００１１】
多くのソフトウェアにおいて、インストールを開始すると、インストールが終了するまで、あるいは、ＯＳを再起動するまでの間、インストールするソフトウェアを使用することができない。
【００１２】
また、特開平１０−８３２８０号公報では、ソフトウェアの供給方法については触れられていないが、チェック時にオンラインで入手すると仮定すると、さらにインストール時間が増大するし、予め必要とされる可能性のあるすべてのソフトウェアを媒体やオンラインで提供しておくと仮定すると、インストール時間の増大は防げるが、実際には必要のないソフトウェアまで提供することになるため、媒体容量あるいはネットワーク電送量が無駄に消費されるという問題がある。
【００１３】
本発明では、上記問題を解決し、運用管理者や被管理システムのユーザの作業を簡易化するとともに、ソフトウェア更新時のリスクを減らし、かつソフトウェア提供の効率向上を図ることを目的とする。
【００１４】
【課題を解決するための手段】
配布するソフトウェアを使用する際に必要となるソフトウェアを自動的に配布対象とするために、本発明では、配布対象とするソフトウェアとそのソフトウェアを使用するために必要なソフトウェアを関連付けて管理する管理手段を持つ。
【００１５】
必要なソフトウェアの例としては、オペレーティングシステム，ランタイムライブラリ，データベースにアクセスするために必要なドライバ，通信を行うために必要なソフトウェア，ＯＬＥコントロールといったように、配布するソフトウェアが、前提とするソフトウェア，利用するソフトウェア部品、あるいは、利用するソフトウェア部品を提供するソフトウェアなどがある。
【００１６】
また、接続するデータベースやディレクトリサーバのアドレスや通信プロトコル，プロキシ，などのようにソフトウェアを実行するために必要な設定情報や定義情報も、必要なソフトウェアとして考えられる。
【００１７】
配布するソフトウェア毎に必要とするソフトウェアをチェックすることで、必要十分なソフトウェアを配布対象とすることが可能である。
【００１８】
また、被管理システムに既にインストールされているソフトウェアを重複して配布するという無駄を省くために、配布対象とするソフトウェアを決定するシステムにおいて、被管理システムに関連付けてインストール済みのソフトウェアを管理する管理手段を持つ。配布対象となるソフトウェアが既に被管理システムにインストールされている場合は、配布を行わない。
【００１９】
さらに、インストール済みのソフトウェアが使えなくなるのを防ぐために、インストール済みのソフトウェアとそのソフトウェアを更新することで影響を受けるソフトウェアを関連付けて管理する管理手段を持つ。配布対象とするソフトウェアがインストール済みソフトウェアを更新する場合に、影響を受けるインストール済みソフトウェアをチェックすることで、使用中のソフトウェアの使用条件を崩さないように制御する。
【００２０】
さらには、配布指示した際に設定したソフトウェアの使用優先度をインストール済みソフトウェアに関連付けて管理する管理手段を持ち、新たに配布指示を行ったソフトウェアの使用優先度とインストール済みのソフトウェア使用優先度に応じて、インストール済みのソフトウェアの使用条件を優先するか、新たに配布指示されたソフトウェアの使用条件を優先するかを判断して、配布を抑止あるいは配布対象ソフトウェアを決定する。
【００２１】
そして、配布対象として決定したソフトウェアを配布先に配布した後、インストール処理を実行する。
【００２２】
【発明の実施の形態】
本発明の実施例について説明する。
【００２３】
管理システム（計算機）において管理者が、配布したいソフトウェアと被管理システム（計算機）を指定して配布指示を実行する、あるいは被管理システムにおいて利用者が、配布したいソフトウェアを指定して配布指示を実行すると、配布したいソフトウェアを使用するために必要とするソフトウェア、必要とするソフトウェアを配布する場合にさらに必要なソフトウェアのように当該ソフトウェアが動作するために必要なソフトウェアが無くなるまで必要なソフトウェアの情報をチェックし、必要なソフトウェアを配布対象とする。この時、目的のソフトウェアをインストールするのに必要なソフトウェアの方が先にインストールされるように、インストールの順序情報を付加して配布しても良い。管理システムからソフトウェアを受信した被管理システムは、順序情報に従ってソフトウェアをインストールする。
【００２４】
被管理システム毎にインストール済みのソフトウェアの情報を管理して、配布対象としたソフトウェアのうち、既にインストール済みのソフトウェアを配布対象から除外するように制御することも可能である。
【００２５】
また、配布するソフトウェアについては、更新後にインストール済みのソフトウェアに与える影響について考慮する。インストール済みソフトウェア毎にそのソフトウェアを更新した場合に影響のあるソフトウェアの情報を管理して、インストール済みのソフトウェアを更新する場合は、更新による影響がないかチェックし、複数の配布候補となるバージョンが存在する場合は、影響のないバージョンを選択するように制御する。また、影響のあるソフトウェアを更新することで、影響が回避できる場合には、影響のあるソフトウェアの更新版を配布するように制御する。あるいは、配布するソフトウェアとインストール済みソフトウェアに優先度を付加し、優先度の高いソフトウェアを使用できるように配布対象ソフトウェアを決定する。
【００２６】
この実施例において、管理システムは、分散あるいは多段構成を取ることもできる。管理システムを分散あるいは多段構成にする場合、すべての管理システムが、同じソフトウェアを管理するように、登録を受け付けた管理システムが、登録完了とともに、他の管理システムへソフトウェアおよび管理情報を送信するようにすることができる。また、管理情報に登録を受け付けた管理システムの情報を付加して送信し、ソフトウェアの実体は、登録を受け付けた管理システムで管理するという方法も考えられる。
【００２７】
ある管理システムから他の管理システム（計算機）を経由して被管理システムへソフトウェアを配布する場合には、経由する管理システムには配布するソフトウェアをインストールするのに必要なソフトウェアが存在していればよいので、経由する管理システムに対して目的のソフトウェアとともに、必要なソフトウェアをすべて配布しても良いし、経由する管理システム（計算機）に不足しているソフトウェアだけを配布してもよい。または、経由する管理システムに対して、配布に先立ってソフトウェア情報ファイルを配布し、経由する管理システムで必要なソフトウェアが存在するか否かをチェックすることで、不足しているソフトウェアだけを上位管理システムからダウンロードするようにしてもよい。
【００２８】
管理システムが、分散あるいは多段構成を取る場合、被管理システムにインストールされているソフトウェアの情報は、すべての管理システムで収集管理することもできるし、最上位システムで収集して一元管理することもできるし、被管理システムを直接管理する管理システムにのみ収集して管理するようにすることもできる。また、管理システムへは情報を通知せず、被管理システムにおいて必要なソフトウェアを決定し、管理システムからダウンロードするようにすることもできる。
【００２９】
いづれの場合も、管理システムからソフトウェアを受信した被管理システムは、管理システムから配布されたソフトウェアを指示に従ってインストールする。
【００３０】
また、管理システムにおいて、配下の被管理システムの環境情報を収集し、被管理システムの条件に合うソフトウェアだけを予めダウンロードして格納しておく、あるいは、上位からの配布指示に対して、配布を抑止することも考えられる。この方法は、例えば管理システム配下の被管理システムがすべて同一ＯＳで統一されているような環境で、そのＯＳをサポートしているソフトウェアだけを管理する場合などに有効である。
【００３１】
この他にも、必要とするソフトウェアを予め配布対象とするソフトウェアと一緒にパッケージ化して登録したり、管理システムでパッケージ化して管理する方法も考えられる。また、これらの前提ソフトウェアを媒体に格納し、媒体を被管理システムに配布することで、媒体からソフトウェアをインストールすることも可能である。
【００３２】
以下、図面に従って説明する。
【００３３】
図１は、本発明を実施するシステム構成図を示す。本発明における実施例の説明では、ソフトウェアを提供する側のシステムを管理システムと呼び、ソフトウェアを受け取る側のシステムを被管理システムと呼んでいる。図１に示すように、管理システムは複数分散配置することも、多階層構成を取ることも可能である。
【００３４】
また、図１では、すべてのシステムがネットワークで接続されているが、本発明は、配布対象ソフトウェアを媒体を利用して配布する場合にも適用可能であるので、管理システムおよび被管理システムはネットワークで接続されていない場合も考えられる。
【００３５】
図２は、本発明を実施するためのプログラム構成を示す。
【００３６】
管理システムは、配布するソフトウェアを格納する手段（０３）と、ソフトウェアの管理情報を格納するソフトウェア管理情報格納手段（０１）と配布するソフトウェアに関連する情報を定義するソフトウェア情報ファイルを格納する手段（０２）とを持つ。
【００３７】
また、配布しなくても良いソフトウェアを決定するために、インストール済みのソフトウェアの情報を格納する格納手段（０４）と、インストール済みソフトウェア毎にそのソフトウェアを更新した場合に影響のあるソフトウェアの情報を格納する格納手段（０５）と、これらの情報と配布指示から配布対象とするソフトウェアを決定する決定手段（０９、１４）を、管理システム（配布の仲介を行う管理システムを含む）のいづれかのシステムあるいは被管理システムに持つ。
【００３８】
配布対象のソフトウェアは、管理システムのソフトウェア配布手段（１０）によって配布され、被管理システムのソフトウェア受信手段（１５）によって受信され、ソフトウェアインストール手段（１６）によってインストールされる。
【００３９】
管理システムで被管理システムのインストール情報と影響ソフトウェアの情報を管理する場合は、被管理システムから結果送信手段（１３）を用いて結果を送信する。
【００４０】
図では示していないが、ある管理システムから別の管理システムあるいは被管理システム間で配布の仲介を行う管理システムは、少なくとも、上位の管理システムからソフトウェアとソフトウェア情報ファイルを受信する手段を持つ。
【００４１】
配布対象ソフトウェアを決定するシステムにおいては、ソフトウェアのインストールが成功した場合に、管理しているインストール済みソフトウェア情報や影響ソフトウェアの情報を更新する手段（１２，１７）を持つ。
【００４２】
図３は、ソフトウェアに関する情報を定義するソフトウェア情報ファイルの一例である。ソフトウェア情報ファイルは、図２のソフトウェア情報ファイル格納ＤＢ（０２）に格納されている。ソフトウェア情報ファイルに定義された情報をもとに、図４のソフトウェア管理情報，図７の影響ソフトウェアテーブル，図８の前提ソフトウェアテーブルなどを生成することができる。
【００４３】
ソフトウェア情報ファイルとしては、ソフトウェア開発者が作成してソフトウェアに添付しても良いし、管理者が同様の内容を定義して作成しても良いし、第三者が作成した情報ファイルを入手して利用しても良い。また、ソフトウェアの登録時に管理者がＧＵＩやコマンドを利用して設定した内容を利用して、自動生成するように構成しても良い。
【００４４】
図４は、管理システムに登録してあるソフトウェアを管理するためのテーブルの例である。このテーブルは、図２のソフトウェア管理情報格納ＤＢ（０１）に格納されている。このテーブルを検索すれば、どのソフトウェアが管理システムに登録されているかを知ることができる。登録されているソフトウェアを識別するためのソフトウェア識別ＩＤ（ソフトウェアを一意に識別するためのＩＤ）（１１），ソフトウェア名称（製品名など）（１２），バージョン（１３），ソフトウェア情報ファイル名（図２のソフトウェア情報ファイル格納ＤＢ（０２）に格納されている対応する情報ファイルのファイル名）（１４），ソフトウェアファイル名（図２のソフトウェア格納ＤＢ（０３）に格納されているソフトウェア実体のファイル名）（１５）の情報をもつ。管理の容易のために、配布するソフトウェアは、１つのファイルに格納されているものとする。配布するソフトウェアが複数のファイルに分かれている場合は、それらのファイル名を羅列することもできる。
【００４５】
また、ここではソフトウェアという表現を使用して説明しているが、ソフトウェアをプログラム，データ，ファイル，定義情報，あるいはドライバなどのファームウェアのいづれかと置き換えた場合にも適用できる。
【００４６】
図５は、ソフトウェアを分散管理する場合の登録ソフトウェア管理テーブルの例である。図４の管理情報のほかに、そのソフトウェアを管理している管理システムの情報（２６）を持つ。このテーブルを参照すると、どのソフトウェアをどの管理システムで管理しているかを知ることができる。
【００４７】
図６は、被管理システムにインストール済みのソフトウェア管理テーブルの例である。インストール済みソフトウェア管理テーブルは、図２の配布先情報またはインストール済みソフトウェア情報格納ＤＢ（０４）に格納される。このテーブルは、配布するソフトウェアを決定する場合に、どのソフトウェアが被管理システムにインストールされているかを知るために利用する。ソフトウェア識別ＩＤ（３１），バージョン（３２），優先度（３３）の情報を持つ。優先度は、配布指示されたソフトウェアの優先度と比較することにより、指示されたソフトウェアを配布するかどうか決定するために利用する。管理システムにおいては、このテーブルを被管理システム毎に１つ管理するように構成してもよいが、チェック処理の負荷軽減のために、全く同じインストール済のソフトウェアを持つ被管理システムを関連付けて１つのテーブルを管理するように構成することもできる。
【００４８】
図７は、影響ソフトウェア管理テーブルである。影響ソフトウェア管理テーブルは、図２の影響ソフトウェア管理情報格納ＤＢ（０５）に格納される。このテーブルは、ソフトウェアの管理単位（ＩＤとバージョンの組み合わせ）毎に１つ管理するように構成する。このテーブルを参照すると、ソフトウェアを更新した場合に影響のあるソフトウェアとバージョンを知ることができる。
【００４９】
ソフトウェア識別ＩＤ（４１），バージョン（４２）の情報を持つ。
【００５０】
図８は、図３のソフトウェア情報ファイルの内容から、そのソフトウェアを使用するために必要とするソフトウェアのみを抽出したものである。ソフトウェア識別ＩＤ（５１），下限バージョン（５２），上限バージョン（５３）の情報を持つ。
【００５１】
処理の上では、ソフトウェア情報ファイルを毎回解析するようにしても良いし、ソフトウェア情報ファイルの解析時にこのようなテーブルを生成して、テーブル形式で管理するようにしても良い。このテーブルを検索すれば、ソフトウェアを配布する際に、どのソフトウェアが必要かを知ることができる。
【００５２】
本実施例の説明では、処理を簡易にするために、配布指示されたソフトウェアから、このファイルを生成するようにしている。
【００５３】
図９は、ユーザの配布指示と図６のインストール済みソフトウェア管理情報と、図７の影響ソフトウェア管理情報と、図８の前提ソフトウェア情報から、配布対象とするソフトウェアを抽出したものである。候補番号（６１），ソフトウェア識別ＩＤ（６２），下限バージョン（５２），上限バージョン（５３）の情報を持つ。候補番号（６１）は、配布対象とするソフトウェアの候補が複数ある場合に付ける。本実施例では、候補が１つしかない場合は、０。候補が複数ある場合は、１から順番に数値があがっていく。さらに、階層的に候補が存在する場合は、以下のように下位の桁に候補番号を付加することで管理可能とする。
【００５４】
０：ソフトウェアＡ    バージョン５…必須のソフトウェア
１：ソフトウェアＢ    バージョン２…候補１の必須
１１：ソフトウェアＣ    バージョン１…候補１の選択肢１
１１：ソフトウェアＤ    バージョン１…候補１の選択肢１
１２：ソフトウェアＣ    バージョン２…候補１の選択肢２
１２：ソフトウェアＤ    バージョン１…候補１の選択肢２
２：ソフトウェアＢ    バージョン３…候補２の必須
２：ソフトウェアＣ    バージョン３…候補２の必須
図１０は、配布指示テーブルの例である。ここに示した例は、すべての情報を網羅しているが、少なくともソフトウェア識別ＩＤ（７１）またはソフトウェア名称，バージョン（７２），被管理システム（７５）が指定される。
【００５５】
図１１は、ソフトウェアのインストール結果通知テーブルの例である。被管理システムで配布するソフトウェアを決定する場合は、特に配布結果を通知しなくても良い。また、インストール済みソフトウェアの情報は、被管理システムから収集する方式でも良い。少なくともソフトウェア識別ＩＤ（７１）またはソフトウェア名称，バージョン（７２），被管理システム（７５）の情報を持つ。このインストール結果をもとにインストール済ソフトウェアの管理情報および影響ソフトウェア管理情報を更新する。
【００５６】
図１２は、配布指示を受け付けてから配布するソフトウェアを決定するまでに参照あるいは生成する前記テーブル（情報）の関係を示す。
【００５７】
ユーザが、ソフトウェアとして、ソフトウェア識別ＩＤまたはソフトウェア名称とバージョン、必要に応じて優先度と、配布先として被管理システムのＩＰアドレスもしくはホスト名を指定した情報を入力すると、指定されたソフトウェアの情報から図８の前提ソフトウェアテーブルを生成し、指定された被管理システムの情報から図６のインストール済みソフトウェア情報を参照し、インストール済みソフトウェアの情報から、図７の影響ソフトウェアの情報を参照し、これらの情報から図９の配布対象ソフトウェアテーブルを生成する。
【００５８】
複数の候補の中から、配布ソフトウェアを決定して被管理システムに対して配布指示を行う。
【００５９】
図１３は、最上位の管理システムで配布指示を受け付けた時点で配布するソフトウェアを決定する場合の、データの流れを示している。最上位システムでは、ソフトウェア識別ＩＤ（または、ソフトウェア名称でも良い），バージョン（配布するソフトウェアの指定）と被管理システム（配布先の指定）の情報を入力する。配布するソフトウェアの指定と配布先の指定は、複数であっても良い。
【００６０】
配布指示を入力すると管理ＤＢから管理情報を読み出して配布するソフトウェアを決定し、配布指示を作成し、下位システムに対して送信する。配布指示を受け取った下位システムでは、管理ＤＢ内のソフトウェアファイルの有無をチェックして、ファイルがなければ、上位システムからダウンロードする。
【００６１】
下位システムが、管理システムであれば、配布指示だけを送信する。この例では、下位システムが被管理システムであるので、配布指示と配布ファイルを送信する。
【００６２】
指示と配布ファイルを受信した被管理システムは、指示に従ってソフトウェアをインストールする。
【００６３】
図１４は、最上位の管理システムで決定した配布するソフトウェアと配布指示を１つのファイルに格納して配布する場合のイメージを示す。さらに、管理サーバを経由する場合でも、格納されたファイルは、そのままの状態で下位システムへと送付される。
【００６４】
指示と配布ファイルを受信した被管理システムは、格納されているファイルをインストールする。
【００６５】
図１５は、最上位の管理システムで決定した配布するソフトウェアと配布指示を記憶媒体に読み込んで被管理システムへ配布する場合のイメージを示す。
【００６６】
被管理システムは、記憶媒体から指示と配布ファイルを読み込んでインストールする。
【００６７】
図１６は、中間の管理システムで配布指示を受け付けた時点で配布するソフトウェアを決定する場合の、データの流れを示している。
【００６８】
最上位管理システムでは、ソフトウェア識別ＩＤ，バージョンと被管理システムの情報を受けつけて、それらを単純に組合せて、配布指示を生成する。中間管理システムは、上位システムからの配布指示を受信すると、管理ＤＢ内のソフトウェアファイルの有無をチェックして、ファイルがなければ、上位システムからダウンロードする。その後、管理ＤＢから管理情報を読み出して配布するソフトウェアを決定し、配布指示を作成し、下位システムに対して送信する。
【００６９】
下位システムが、管理システムであれば、配布指示だけを送信する。この例では、下位システムが被管理システムであるので、配布指示と配布ファイルを送信する。
【００７０】
指示と配布ファイルを受信した被管理システムは、指示に従ってソフトウェアをインストールする。
【００７１】
図１７は、配布指示を受け付けて被管理システムで配布対象ソフトウェアを決定する、あるいは、被管理システムの利用者から配布指示を受け付けた場合の、データの流れを示している。
【００７２】
配布指示を受け付けた被管理システムは、管理ＤＢ内のソフトウェアファイルの有無をチェックして、ファイルがなければ、上位システムからダウンロードする。上位システムにも管理情報がない場合は、さらに上位システムからダウンロードする。
【００７３】
被管理システムでは、管理情報を読み出して配布するソフトウェアを決定し、上位システムからファイルをダウンロードし、ソフトウェアをインストールする。
【００７４】
図１８、図１９、図２０、図２１に、配布対象とするソフトウェアを求める関数のフローチャートを示す。
【００７５】
チェックするソフトウェアが配布先に未インストール（Ｓ１０１−ＹＥＳ）の場合は、必要なソフトウェアをチェックし配布対象とする処理（後述。図２１）を行う。
【００７６】
チェックするソフトウェアが既に配布先にインストール済み（Ｓ１０２−ＹＥＳ）であれば、処理を終了する。
【００７７】
チェックするソフトウェアが既に配布先にインストール済みのソフトウェアのバージョンと異なる場合（Ｓ１０２−ＮＯ）、配布先にインストール済みのソフトウェアバージョンの影響ソフトウェア一覧を読込み（Ｓ１０４）、影響ソフトウェアと配布先にインストール済みのソフトウェアが一致しないかどうかチェック（Ｓ１１１）する。一致しない場合（Ｓ１１１−ＮＯ）は、影響がないものとして処理を継続する。
【００７８】
一致する場合（Ｓ１１１−ＹＥＳ）は、影響のあるソフトウェアの異なるバージョンが登録されていないかどうか調べる（Ｓ１１３）。異なるバージョンが登録されていれば（Ｓ１１３−ＹＥＳ）、異なるバージョンの影響ソフトウェアの前提ソフトウェアのバージョン範囲がチェック対象ソフトウェアのバージョン範囲に合っているかどうかチェック（Ｓ１１４）する。
【００７９】
両者のバージョンが食い違っていれば（Ｓ１１４−ＮＯ）、その他に異なるバージョンが存在しないかチェックする処理にもどる。
【００８０】
両者のバージョンに一致するものがあれば、一致するバージョンの範囲で、再びこの関数を呼び出す（Ｓ１１５）。
【００８１】
戻り値が、負であれば（Ｓ１１６−ＮＯ）、その他に異なるバージョンが存在しないかチェックする処理にもどる。
【００８２】
戻り値が、正であれば（Ｓ１１６−ＹＥＳ）、ワーク用ポインタの内容と更新バージョンとチェック対象のソフトウェアのバージョンの組合わせ情報を候補として、配布対象一覧に追加（ポインタ更新）処理を行う（Ｓ１１８）。この場合に、既に付けられている候補情報の先頭に、Ｋを補った候補情報に更新する。その他に異なるバージョンが存在しないかチェックする処理にもどる。影響ソフトウェアの異なるバージョンがなく（Ｓ１１３−ＮＯ）、候補もない（Ｓ１１９−ＮＯ）場合は、チェック対象のソフトウェアの優先度とインストール済みソフトウェアの優先度をチェック（Ｓ１２０）し、チェック対象のソフトウェアの優先度がインストール済みソフトウェアの優先度より高い場合（Ｓ１２０−ＹＥＳ）は、影響のあるソフトウェアを無視して、処理を継続し、逆の場合（Ｓ１２０−ＮＯ）は、配布不可の理由を出力（標準出力やログなど）して、配布処理を中断する（Ｓ１２１）。
【００８３】
未インストールの場合（Ｓ１０１−ＹＥＳ）、および、影響ソフトウェアインストール済みソフトウェアを更新する場合（Ｓ１０６−ＹＥＳ）、チェック対象が必要とするソフトウェアを含めて配布対象とする処理のフローチャートを図２１に示す。
【００８４】
チェック対象にバージョンの範囲指定がされている場合は、バージョンごとにチェックを行う。前提ソフトウェアがあれば、前提ソフトウェアの情報を引数として、再びこの関数を呼び出す。
【００８５】
戻り値が負（Ｓ１３２−ＮＯ）であれば、このチェック対象のソフトウェアバージョンの前提ソフトウェアが、既存環境に影響を与えないように、配布対象とはせずに、処理を継続する。
【００８６】
戻り値が正（Ｓ１３２−ＹＥＳ）であれば、ワーク用ポインタの内容を配布対象一覧に追加（ポインタ更新）処理を行う（Ｓ１３３）。この場合に、既に付けられている候補情報の先頭に、Ｋを補った候補情報に更新する。
【００８７】
前提ソフトウェアがないあるいはすべての前提ソフトウェアのチェックが終わる（Ｓ１２７−ＹＥＳ）と、チェック対象のソフトウェアバージョンを候補Ｋとして配布対象一覧に追加（一覧の領域確保およびポインタ更新）する（Ｓ１２８）。
【００８８】
すべてチェックした時点（Ｓ１３４−ＹＥＳ）で、処理を終了する。
【００８９】
図２２、図２３は、管理システムにおいて配布指示（配布するソフトウェアと配布先の情報）を受け付けてから、配布を実行するまでの処理フローチャートを示す。配布指示を受け付け（Ｓ２０１）、必要な管理ファイルがあるかどうかをチェック（Ｓ２０２）し、必要なファイルがＤＢに格納されていない場合は（Ｓ２０２−ＮＯ）、必要なファイルをダウンロードする（Ｓ２０３）。Ｓ２０４からＳ２１５は、配布先のグルーピングの処理である。この処理でインストール済みのソフトウェアが同じ配布先をグループ化する。処理が終わると、配布先として指定された被管理システムは、Ｊ個のグループにわかれている。
【００９０】
図２３では、１つ１つの配布先グループ毎に配布するソフトウェアを求めている。Ｌ番目の配布先グループのインストール済みソフトウェアを読み込み（Ｓ２２０）、配布指示されているソフトウェアを指定して、配布対象とするソフトウェアを求めるための関数を呼ぶ（Ｓ２２２）。戻り値が正（Ｓ２２３−ＹＥＳ）であれば、ワークに格納された配布対象ソフトウェアの情報に、配布指示ソフトウェアの優先度を付加して、配布対象として追加（配布対象テーブルの領域は新たに確保し、ワーク用の領域は開放）する（Ｓ２２４）。すべての配布指示について処理が終了する（Ｓ２２１−ＹＥＳ）まで、繰り返す。すべての配布指示について処理が終了したら（Ｓ２２１−ＹＥＳ）、配布対象ソフトウェアのエントリの有無をチェック（Ｓ２２６）し、重複エントリがあれば（Ｓ２２７−ＹＥＳ）、重複エントリをマージ（Ｓ２２８）する。同じソフトウェアが配布対象としてエントリされている場合および複数の候補が存在する場合は、予め設定されている諸条件から、最も適切なものを選択して配布対象とする（Ｓ２３０）。最新のバージョンを選択しても良いし、容量あるいはインストール時間の少ないバージョンを選択しても良いし、課金がなるべく安くなるようなバージョンを選択しても良い。
【００９１】
これらの選択処理は自動的に行うこともできるが、いくつかの候補の中から、管理システムの管理者あるいは被管理システムの利用者が選択するようにすることもできる。図２５および図２６が、ユーザ選択時の画面表示例である。
【００９２】
図２４は、配布結果（通知）からインストール済みソフトウェアと影響ソフトウェアの管理情報を更新する処理を示すフローチャートである。受け取った結果通知からインストール済みソフトウェア一覧を更新する（Ｓ３０４）。結果通知されたソフトウェアの前提ソフトウェアを調べ、前提ソフトウェアの影響ソフトウェア一覧に結果通知ソフトウェアが存在するかどうか調べる（Ｓ３１４）。影響ソフトウェア一覧の中に結果通知されたソフトウェアがなければ（Ｓ３１１−ＹＥＳ）、影響ソフトウェア一覧の情報を更新する（Ｓ３１２）。すべての情報について処理が完了するまで繰り返す。
【００９３】
図２５は、配布指示したソフトウェアに対して、指示された以外のソフトウェアのインストールが必要であることを示すメッセージの表示例である。
【００９４】
図２６は、図２５で詳細を参照した場合の表示例である。
【００９５】
配布するソフトウェアの組み合わせやバージョンとして、複数の候補から選択可能な場合は、諸条件から判断して最適と思われる候補を強調表示することができる。自動選択の基準としては、より新しいバージョンを配布するように制御していても良いし、容量あるいはインストール時間または課金の一番小さいバージョンを選択するようにしても良いし、他の被管理システムにインストールされている実績の多いものを選択するようにしても良いし、これらの選択基準が設定で切り替わるようになっていても良い。
【００９６】
また、選択基準となる情報を表示することにより、管理者あるいは利用者が候補の中から容易に最適な候補を選択することができる。
【００９７】
本実施例によれば、ソフトウェアの運用者や利用者がソフトウェア間の関係などを意識することなく、ソフトウェアの配布やインストールを行うことが可能となり、ソフトウェアの配布・インストール作業を簡易化できるとともに、一部のソフトウェアをインストールすることで、それ以前に稼動していたソフトウェアが動かなくなるなどの障害を回避することができ、ソフトウェアの配布・インストール運用をスムーズに実行できる効果がある。
【００９８】
また、ソフトウェアに優先度を設けたことにより、より重要あるいは使用頻度の高いソフトウェアを優先的に配布・インストールすることが可能になる。さらには、配布あるいは受信するソフトウェアを決定する段階で必要なソフトウェアを求めることにより、ネットワーク負荷、媒体容量、インストール時の負荷などを軽減することができる。
【００９９】
【発明の効果】
本発明によれば計算機へのソフトウェアの配布・インストール作業の省力化が行える。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】管理システムと被管理システムのプログラムの構成を示す図である。
【図３】本発明で利用するソフトウェア情報ファイルの一例を示す図である。
【図４】管理システムに登録済みのソフトウェアを管理するテーブルの一例を示す図である。
【図５】システムのどこかの管理システムに登録済みのソフトウェアを管理するテーブルの一例を示す図である。
【図６】被管理システムにインストール済みのソフトウェアを管理するテーブルの一例を示す図である。
【図７】ソフトウェアを更新した場合に影響を受けるソフトウェアを管理するテーブルの一例を示す図である。
【図８】ソフトウェアが前提とするソフトウェアを示すテーブルの一例を示す図である。
【図９】配布対象とするソフトウェアを抽出するときに使用するテーブルの一例を示す図である。
【図１０】ソフトウェアを配布する際の配布指示テーブルの一例を示す図である。
【図１１】ソフトウェアのインストール結果を被管理システムから管理システムへ通知する際に使用するテーブルの一例である。
【図１２】配布指示を受け付けてから配布するソフトウェアを決定するために参照・生成するテーブルの関係を示した図である。
【図１３】最上位の管理システムで前提とするソフトウェアをチェックする場合の流れを示す図である。
【図１４】最上位の管理システムで前提とするソフトウェアをチェックする場合の流れを示す図である。
【図１５】最上位の管理システムで前提とするソフトウェアをチェックする場合の流れを示す図である。
【図１６】最上位の管理システムと被管理システムの間に位置する管理システムで前提とするソフトウェアをチェックする場合の流れを示す図である。
【図１７】被管理システムで前提とするソフトウェアをチェックする場合の流れを示す図である。
【図１８】配布対象とするソフトウェアを決定する関数のフローチャートである。
【図１９】配布対象とするソフトウェアを決定する関数のフローチャートである。
【図２０】配布対象とするソフトウェアを決定する関数のフローチャートである。
【図２１】配布対象とするソフトウェアを決定する関数のフローチャートである。
【図２２】配布指示を受けてから、実際に配布を実行するまでの、配布先のグループ化および前提ソフトウェアの抽出処理のフローチャートである。
【図２３】配布指示を受けてから、実際に配布を実行するまでの、配布先のグループ化および前提ソフトウェアの抽出処理のフローチャートである。
【図２４】配布結果をもとに、インストール済みソフトウェア情報と影響ソフトウェア情報を更新する処理のフローチャートである。
【図２５】配布指示したソフトウェア以外にソフトウェアをインストールする必要がある場合に、ユーザに対して通知するメッセージの表示例である。
【図２６】配布対象とするソフトウェアに複数の候補がある場合に、ユーザに対して通知する画面の表示例である。
【符号の説明】
０１…登録ソフトウェア管理情報格納ＤＢ、
０２…ソフトウェア情報ファイル格納ＤＢ、
０３…ソフトウェア格納ＤＢ、
０４…配布先管理情報格納ＤＢ、
０５…影響ソフトウェア管理情報格納ＤＢ、
０６…管理システム、
０７…ネットワーク、
０８…被管理システム。
【図１】
0003671759.tif 000002
【図２】
0003671759.tif 000003
【図３】
0003671759.tif 000004
【図４】
0003671759.tif 000005
【図５】
0003671759.tif 000006
【図６】
0003671759.tif 000007
【図７】
0003671759.tif 000008
【図８】
0003671759.tif 000009
【図９】
0003671759.tif 000010
【図１０】
0003671759.tif 000011
【図１１】
0003671759.tif 000012
【図１２】
0003671759.tif 000013
【図１３】
0003671759.tif 000014
【図１４】
0003671759.tif 000015
【図１５】
0003671759.tif 000016
【図１６】
0003671759.tif 000017
【図１７】
0003671759.tif 000018
【図１８】
0003671759.tif 000019
【図１９】
0003671759.tif 000020
【図２０】
0003671759.tif 000021
【図２１】
0003671759.tif 000022
【図２２】
0003671759.tif 000023
【図２３】
0003671759.tif 000024
【図２４】
0003671759.tif 000025
【図２５】
0003671759.tif 000026
【図２６】
0003671759.tif 000027