(57)【要約】【課題】同一ライブラリの異なる版を同一システムで利用可能とし、パッケージの版の更新後も、古い版のプログラムを使用可能な端末管理システムを提供する。また、バックアップの効率化を図ることができる端末管理システムを提供する。【解決手段】パッケージ管理手段１０８は、パッケージを、パッケージ保存ディレクトリ１０３に、元となる版及び版間の差分の形でディレクトリを分けて保存する。実行環境管理手段１０６は、層構造ディレクトリ管理手段１０５を用いて、パッケージの元となる版及び版間の差分を保存するディレクトリをマウントポイント上にマウントして目的の版のパッケージを構成する。また、構成したパッケージ上に、更に更新ファイル保存ディレクトリをマウントし、実行環境を構成する。実行環境のバックアップでは、更新ファイル保存ディレクトリを、実行環境サーバ１１１にバックアップする。【選択図】図１
2008165377.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、該端末装置のバックアップを保存するための実行環境サーバと、前記端末装置にパッケージの提供を行うパッケージサーバとを有する端末管理システムにおいて、
前記端末装置が、
パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、
複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、
前記端末装置は、前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする端末管理システム。
【請求項２】
前記端末装置は、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する、請求項１に記載の端末管理システム。
【請求項３】
前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える、請求項１又は２に記載の端末管理システム。
【請求項４】
前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する、請求項３に記載の端末管理システム。
【請求項５】
前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する、請求項４に記載の端末管理システム。
【請求項６】
前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する、請求項４又は５に記載の端末管理システム。
【請求項７】
前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む、請求項６に記載の端末管理システム。
【請求項８】
前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを前記実行環境サーバに送信する、請求項７に記載の端末管理システム。
【請求項９】
前記実行環境サーバは、前記端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する、請求項８に記載の端末管理システム。
【請求項１０】
前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する、請求項９に記載の端末管理システム。
【請求項１１】
前記実行環境管理手段は、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする、請求項１０に記載の端末管理システム。
【請求項１２】
前記実行環境サーバは、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する、請求項１０又は１１に記載の端末管理システム。
【請求項１３】
前記端末装置が、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する、請求項１２に記載の端末管理システム。
【請求項１４】
前記プロキシとして動作する端末装置は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する、請求項１３に記載の端末管理システム。
【請求項１５】
前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する、請求項６〜１４の何れか一に記載の端末管理システム。
【請求項１６】
前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする、請求項６〜１５の何れか一に記載の端末管理システム。
【請求項１７】
前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする、請求項６〜１６の何れか一に記載の端末管理システム。
【請求項１８】
前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする、請求項１７に記載の端末管理システム。
【請求項１９】
前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している、請求項３〜１８の何れか一に記載の端末管理システム。
【請求項２０】
前記端末装置は、端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する、請求項１９に記載の端末管理システム。
【請求項２１】
前記パッケージサーバは、前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、前記抽出したディレクトリをマウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する、請求項２０に記載の端末管理システム。
【請求項２２】
前記パッケージ管理手段は、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する、請求項２１に記載の端末管理システム。
【請求項２３】
前記端末装置が、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する、請求項２０〜２２の何れか一に記載の端末管理システム。
【請求項２４】
前記プロキシとして動作する端末装置は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する、請求項２３に記載の端末管理システム。
【請求項２５】
前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む、請求項２０〜２４の何れか一に記載の端末管理システム。
【請求項２６】
前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する、請求項２５に記載の端末管理システム。
【請求項２７】
前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う、請求項１９〜２６の何れか一に記載の端末管理システム。
【請求項２８】
前記パッケージサーバは、前記端末装置から通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する、請求項２７に記載の端末管理システム。
【請求項２９】
前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する、請求項２８に記載の端末管理システム。
【請求項３０】
パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、
複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、
前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする端末装置。
【請求項３１】
前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する、請求項３０に記載の端末装置。
【請求項３２】
前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える、請求項３０又は３１に記載の端末装置。
【請求項３３】
前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する、請求項３２に記載の端末装置。
【請求項３４】
前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する、請求項３３に記載の端末装置。
【請求項３５】
前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する、請求項３３又は３４に記載の端末装置。
【請求項３６】
前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む、請求項３５に記載の端末装置。
【請求項３７】
前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを端末装置内の実行環境のバックアップを保存する実行環境サーバに送信する、請求項３６に記載の端末装置。
【請求項３８】
前記実行環境管理手段は、前記更新ファイル保存ディレクトリを前記実行環境サーバに送信した後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする、請求項３７に記載の端末装置。
【請求項３９】
前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する、請求項３７又は３８に記載の端末装置。
【請求項４０】
前記プロキシとして動作する端末装置の実行環境管理手段は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する、請求項３９に記載の端末装置。
【請求項４１】
前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する、請求項３５〜４０の何れか一に記載の端末装置。
【請求項４２】
前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする、請求項３５〜４１の何れか一に記載の端末装置。
【請求項４３】
前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする、請求項３５〜４２の何れか一に記載の端末装置。
【請求項４４】
前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記結合後の内容を記憶するためのディレクトリを前記作成した新たなマウントポイントとなるディレクトリ上にマウントする、請求項４３に記載の端末装置。
【請求項４５】
端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、前記端末装置に対してパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する、請求項３２〜４４の何れか一に記載の端末装置。
【請求項４６】
前記パッケージ管理手段は、前記パッケージサーバから、前記必要な版又は版差分を受信し記憶装置内に記憶する、請求項４５に記載の端末装置。
【請求項４７】
前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する、請求項４５又は４６に記載の端末装置。
【請求項４８】
前記プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する、請求項４７に記載の端末装置。
【請求項４９】
前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む、請求項４５〜４８の何れか一に記載の端末装置。
【請求項５０】
前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する、請求項４９に記載の端末装置。
【請求項５１】
前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う、請求項４５〜５０の何れか一に記載の端末装置。
【請求項５２】
前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する、請求項５１に記載の端末装置。
【請求項５３】
パッケージと、プログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置から、前記プログラム実行によって更新されるファイルを保存するディレクトリの内容を受信し、記憶装置内に記憶する実行環境管理手段を備えることを特徴とする実行環境サーバ。
【請求項５４】
前記実行環境管理手段は、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する、請求項５３に記載の実行環境サーバ。
【請求項５５】
前記実行環境管理手段は、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する、請求項５４に記載の実行環境サーバ。
【請求項５６】
パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段を備えることを特徴とするパッケージサーバ。
【請求項５７】
前記パッケージ管理手段は、端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、前記抽出したディレクトリをマウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する、請求項５６に記載のパッケージサーバ。
【請求項５８】
前記パッケージ管理手段は、前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する、請求項５７に記載のパッケージサーバ。
【請求項５９】
パッケージを利用するコンピュータを管理する端末管理方法であって、
前記コンピュータが、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする端末管理方法。
【請求項６０】
前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する、請求項５９に記載の端末管理方法。
【請求項６１】
前記コンピュータは、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する、請求項５９又は６０に記載の端末管理方法。
【請求項６２】
前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する、請求項６１に記載の端末管理方法。
【請求項６３】
前記コンピュータは、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する、請求項６２に記載の端末管理方法。
【請求項６４】
前記コンピュータは、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する、請求項６２又は６３に記載の端末管理方法。
【請求項６５】
前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む、請求項６４に記載の端末管理方法。
【請求項６６】
前記コンピュータは、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する、請求項６５に記載の端末管理方法。
【請求項６７】
前記実行環境サーバは、前記更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する、請求項６６に記載の端末管理方法。
【請求項６８】
前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する、請求項６７に記載の端末管理方法。
【請求項６９】
前記コンピュータは、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする、請求項６８に記載の端末管理方法。
【請求項７０】
前記実行環境サーバは、前記コンピュータから、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記コンピュータに向けて送信する、請求項６８又は６９に記載の端末管理方法。
【請求項７１】
前記コンピュータが、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する、請求項７０に記載の端末管理方法。
【請求項７２】
前記プロキシとして動作するコンピュータは、他のコンピュータからのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する、請求項７１に記載の端末管理方法。
【請求項７３】
前記コンピュータは、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する、請求項６４〜７２の何れか一に記載の端末管理方法。
【請求項７４】
前記コンピュータは、前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする、請求項６４〜７３の何れか一に記載の端末管理方法。
【請求項７５】
前記コンピュータは、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする、請求項６４〜７４の何れか一に記載の端末管理方法。
【請求項７６】
前記コンピュータは、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする、請求項７５に記載の端末管理方法。
【請求項７７】
前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している、請求項６１〜７６の何れか一に記載の端末管理方法。
【請求項７８】
前記コンピュータは、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する、請求項７７に記載の端末管理方法。
【請求項７９】
前記パッケージサーバは、前記コンピュータからダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記コンピュータから要求された版又は版差分を構成するために必要なディレクトリを抽出し、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、前記抽出したディレクトリをマウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記コンピュータに送信する、請求項７８に記載の端末管理方法。
【請求項８０】
前記コンピュータは、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する、請求項７９に記載の端末管理方法。
【請求項８１】
前記コンピュータが、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する、請求項７８〜８０の何れか一に記載の端末管理方法。
【請求項８２】
前記プロキシとして動作するコンピュータは、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する、請求項８１に記載の端末管理方法。
【請求項８３】
前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む、請求項７８〜８２の何れか一に記載の端末管理方法。
【請求項８４】
前記コンピュータは、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する、請求項８３に記載の端末管理方法。
【請求項８５】
前記コンピュータは、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う、請求項７７〜８４の何れか一に記載の端末管理方法。
【請求項８６】
前記パッケージサーバは、前記コンピュータから通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記コンピュータに送信する、請求項８５に記載の端末管理方法。
【請求項８７】
前記コンピュータは、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する、請求項８６に記載の端末管理方法。
【請求項８８】
コンピュータに、端末管理のための処理を実行させるプログラムであって、前記コンピュータに、
複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する処理を実行させることを特徴とするプログラム。
【請求項８９】
前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する、請求項８８に記載のプログラム。
【請求項９０】
前記コンピュータに、前記構成された目的の版のパッケージと、パッケージのプログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する処理を実行させる、請求項８８又は８９に記載のプログラム。
【請求項９１】
前記実行環境の構成では、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する、請求項９０に記載のプログラム。
【請求項９２】
前記コンピュータに、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する処理を実行させる、請求項９１に記載のプログラム。
【請求項９３】
前記コンピュータに、前記実行環境の構成後、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する処理を実行させる、請求項９１又は９２に記載のプログラム。
【請求項９４】
前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む、請求項９３に記載のプログラム。
【請求項９５】
実行環境のバックアップ要求を受けると、前記コンピュータに、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する処理を実行させる、請求項９４に記載のプログラム。
【請求項９６】
前記コンピュータに、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする処理を実行させる、請求項９５に記載のプログラム。
【請求項９７】
前記コンピュータを、前記実行環境サーバのプロキシとして動作させ、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該プロキシとして動作するコンピュータに、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する処理を実行させる、請求項９５又は９６に記載のプログラム。
【請求項９８】
他のコンピュータからのリストア要求を受け取ると、前記プロキシとして動作するコンピュータに、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する処理を実行させる、請求項９７に記載のプログラム。
【請求項９９】
前記コンピュータに、ディレクトリ隔離手段を用いて、パッケージのプログラムを実行する環境を前記実行環境ごとに隔離する処理を実行させる、請求項９３〜９８の何れか一に記載のプログラム。
【請求項１００】
前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際に、前記コンピュータに、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする処理を実行させる、請求項９３〜９９の何れか一に記載のプログラム。
【請求項１０１】
前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、前記コンピュータに、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする処理を実行させる、請求項９３〜１００の何れか一に記載のプログラム。
【請求項１０２】
前記層結合要求を受けると、前記コンピュータに、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする処理を実行させる、請求項１０１に記載のプログラム。
【請求項１０３】
前記コンピュータに、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、端末にパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する処理を実行させる、請求項９０〜１０２の何れか一に記載のプログラム。
【請求項１０４】
前記パッケージサーバから送信されたパッケージを受信すると、前記コンピュータに、該受信したパッケージを新たな版又は版差分として記憶装置内に記憶する、請求項１０３に記載のプログラム。
【請求項１０５】
前記コンピュータを、前記パッケージサーバのプロキシとして動作させ、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記プロキシとして動作するコンピュータに、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する処理を実行させる、請求項１０３又は１０４に記載のプログラム。
【請求項１０６】
前記プロキシとして動作するコンピュータに、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する処理を実行させる、請求項１０５に記載のプログラム。
【請求項１０７】
前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む、請求項１０３〜１０６の何れか一に記載のプログラム。
【請求項１０８】
記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記コンピュータに、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する処理を実行させる、請求項１０７に記載のプログラム。
【請求項１０９】
前記コンピュータに、前記パッケージサーバに対して、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う処理を実行させる、請求項１０３〜１０８の何れか一に記載のプログラム。
【請求項１１０】
前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記コンピュータに、前記登録された実行すべき内容を実行する処理を実行させる、請求項１０９に記載のプログラム。
【請求項１１１】
コンピュータを、パッケージと、パッケージのプログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置における更新ファイル保存ディレクトリのバックアップを記憶する実行環境サーバとして動作させるプログラムであって、前記コンピュータに、
前記端末装置から、前記更新ファイル保存ディレクトリの内容を受信し、記憶装置内に記憶する処理を実行させることを特徴とするサーバ用プログラム。
【請求項１１２】
前記コンピュータに、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶した後に、サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する処理を実行させる、請求項１１１に記載のサーバ用プログラム。
【請求項１１３】
前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記コンピュータに、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する処理を実行させる、請求項１１１又は１１２に記載のサーバ用プログラム。
【請求項１１４】
コンピュータを、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、端末装置に対してパッケージの提供を行うパッケージサーバとして動作させるプログラムであって、前記コンピュータに、
前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、前記抽出したディレクトリをマウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する処理を実行させることを特徴とするサーバ用プログラム。
【請求項１１５】
前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、前記コンピュータに、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する処理を実行させる、請求項１１４に記載のサーバ用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末管理システム、方法、及び、プログラムに関し、更に詳しくは、パッケージを利用してプログラム実行を行う端末装置を管理する端末管理システム、方法、及び、プログラムに関する。また、本発明は、そのような端末管理システムで用いることができる端末装置、実行環境サーバ、及び、パッケージサーバを提供することを目的とする。
【背景技術】
【０００２】
携帯電話機や情報家電機器、カーナビゲーションシステム、店舗におけるＰＯＳ端末やＫｉｏｓｋ端末のような端末群を管理することを考える。これらの端末群を管理するためには、端末上で動作するプログラムの更新や追加を行う必要がある。また、端末の故障や入替えに備えて、端末側で変更を行ったファイルに対し、バックアップを行う必要もある。従来の端末管理システムとして、プログラム配布システムの一例が、特許文献１に記載されている。この従来の端末管理システムでは、端末は、プログラムを更新する際には、新版と旧版との差分をダウンロードし、端末側で旧版との差分から新版を構成する。また、他の従来の端末管理システムとして、プログラム管理装置の一例が、特許文献２に記載されている。この従来の端末管理システムは、インストールするプログラムの動作条件を参照して、端末上で正常に動作するか否かを判定し、正常に動作する場合に限り、プログラムを配布する。
【０００３】
端末管理システムに関連する技術として、ストレージシステムの一例が、特許文献３に記載されている。このシステムは、ストレージ内に、多世代のバックアップを保存する。この従来のストレージシステムは、以下のように動作する。すなわち、本システムでは、ストレージ上でデータが読み書きされる運用ボリュームの他に、運用ボリュームの複製が保存されるコピーボリュームと、運用ボリュームのスナップショットの差分データが保存される差分ボリュームとが用意されている。ストレージを制御する制御装置は、運用ボリュームのデータを、所定のタイミングでコピーボリュームに複製する。また、運用ボリュームへの書込み要求に対応して、スナップショットとの差分データを、差分ボリュームに保存する。これらの世代を管理することで、以前の世代への読出し要求を受け取った際に、差分ボリューム及び／又はコピーボリュームからデータを読み出すことで、古い世代のデータのバックアップを実現する。
【特許文献１】特開２００１−２７３１４７公報
【特許文献２】特開２００１−０２２５６２公報
【特許文献３】特開２００６−１０７１６２公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術の第１の問題点は、複数のプログラムによって共有されるライブラリ等が存在し、それぞれのプログラムが別の版のライブラリを要求した場合に対応できないという点である。その理由は、従来の技術では、そのような状態でプログラムをインストールしようとした際には、環境に適合しない旨のエラーが発生するのみで対処されたためである。第２の問題点は、古い版のプログラムを利用できないという点である。その理由は、従来の技術では、古い版と新しい版との差分を用いて新しい版を構成するが、これにより、古い版が廃棄されるためである。
【０００５】
従来の技術では、プログラム自身が変更を行ったファイルと、プログラムの更新のために変更されたファイルとは、区別されていない。ファイルのバックアップでは、プログラムの更新のために変更されたファイルについては、再ダウンロードが可能であることから、本来、バックアップを行う必要なない。しかしながら、従来技術では、プログラムが変更を行ったファイルとプログラムの更新のために変更されたファイルとが区分されていないために、バックアップの必要のないプログラムの更新のために変更されたファイルについても、プログラムが変更を行ったファイルと同様にバックアップされており、効率よく端末内のファイルのバックアップができないという問題があった。
【０００６】
本発明は、上記従来技術の問題点を解消し、複数のプログラムから共有されるライブラリ等が存在した場合でも、それぞれのプログラムが別の版のライブラリを参照できる端末管理システム、方法、及び、プログラムを提供することを目的とする。
【０００７】
また、本発明の別の目的は、プログラムの版を更新した後でも、古い版のプログラムを使用可能な端末管理システム、方法、及び、プログラムを提供することを目的とする。
【０００８】
本発明の別の目的は、プログラム本体と、プログラムの実行に伴って更新されたファイルとを区分し、効率よくバックアップが実施できる端末管理システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の端末管理システムは、端末装置と、該端末装置のバックアップを保存するための実行環境サーバと、前記端末装置にパッケージの提供を行うパッケージサーバとを有する端末管理システムにおいて、前記端末装置が、パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、前記端末装置は、前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
【００１０】
本発明の端末管理システムでは、端末装置は、層構造ディレクトリ管理手段を用いて、ディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する。ここで、パッケージとは、プログラムを実行するのに必要な複数のファイル、或いは、他のパッケージの実行に用いられるライブラリ群をまとめたものであり、版間の差分とは、以前の版に対して変更が加えられたファイル群（追加、削除を含む）である。例えば、元となる版を第１版とし、版間の差分として、差分［第１版−第２版］、差分［第２版−第３版］を有しているとする。この場合、端末装置は、第１版と差分［第１版−第２版］と差分［第２版−第３版］とでパッケージの第３版を構成し、第１版と差分［第１版−第２版］とでパッケージの第２版を構成する。このように、目的の版のパッケージを、層構造ディレクトリ管理手段を用いて元となる版及び版間の差分で構成することで、最新版のパッケージを利用しつつも、古い版のパッケージを利用することが可能となる。また、例えばあるパッケージのプログラムが、他のパッケージの特定の版のライブラリを利用するような場合には、層構造ディレクトリ管理手段を用いてその特定の版のパッケージを構成することで、各プログラムがそれぞれ異なる版のパッケージにおけるライブラリを参照することができる。
【００１１】
本発明の端末管理システムでは、前記端末装置は、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用することができる。あるディレクトリ上に、複数のディレクトリを層構造を持ちながらマウントする機能を有するファイルシステムとしては、例えばUnionFSが知られている。このようなファイルシステムを実現する層構造ディレクトリ管理手段を用いて、例えばマウントポイント上に、パッケージの第１版と差分［第１版−第２版］とをマウントすることで、マウントポイントからは、パッケージの第２版として見え、パッケージの元となる版及び版間の差分から、目的の版のパッケージを構成できる。
【００１２】
本発明の端末管理システムでは、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える構成を採用できる。パッケージは、プログラム動作によって変更されるものではなく、リストアしようとする際にはパッケージサーバから再取得が可能である。一方、プログラム実行によって作成・更新されるファイルは、他から取得することはできないので、リストアに備えてバックアップが必要である。更新ファイルを保存するためのディレクトリを、パッケージを保存するディレクトリと分離することで、バックアップの際には、更新ファイル保存ディレクトリをバックアップすればよく、効率のよいバックアップを実現できる。
【００１３】
本発明の端末管理システムでは、前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。層構造ディレクトリ管理手段を用い、構成された実行環境で作成・更新されたファイルが、更新ファイル保存ディレクトリに保存されるようにディレクトリをマウントすることで、バックアップが必要なディレクトリ（更新ファイル保存ディレクトリ）と、バックアップの必要がないディレクトリ（パッケージの元となる版及び版間の差分を保存するディレクトリ）とを分離することができ、バックアップの効率化を図ることができる。
【００１４】
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用することができる。この場合、インストールプログラムを、当該実行環境に対応するマウントポイントに隔離することで、インストールプログラムからは、マウントポイント以下のディレクトリのみが見えるようになり、インストールプログラムの実行に伴って作成・更新されるファイルは更新ファイル保存ディレクトリに保存されることになるので、当該実行環境を構成するパッケージの元となる版及び版間の差分を保存するディレクトリは改変されず、複数の実行環境間で、安全にパッケージを共有できる。
【００１５】
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用することができる。この場合、データベースを参照することで、どのような実行環境が存在するかや、実行環境とマウントポイントとの対応関係、或いは、マウントポイントへのマウント順などの情報を取得することができる。
【００１６】
本発明の端末管理システムでは、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。この場合、前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを前記実行環境サーバに送信する構成を採用できる。
【００１７】
本発明の端末管理システムでは、前記実行環境サーバは、前記端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する構成を採用できる。また、前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
【００１８】
本発明の端末管理システムでは、前記実行環境管理手段は、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用することができる。更新ファイル保存ディレクトリのバックアップ後に、あらたな更新ファイル保存ディレクトリをマウントすることで、バックアップ後に作成・更新されたファイルは、新たな更新ファイル保存ディレクトリに保存されることになる。従って、次回バックアップ時には、その新たな更新ファイル保存ディレクトリをバックアップすればよく、バックアップ対象のファイル数を減らすことができる。
【００１９】
本発明の端末管理システムでは、前記実行環境サーバは、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する構成を採用できる。端末装置は、例えば実行環境を構成しなおす際に、リストア要求を実行環境サーバに送信して、実行環境にマウントされていた更新ファイル保存ディレクトリの送信を要求する。実行環境サーバは、この要求に応答して、要求された更新ファイル保存ディレクトリのバックアップを、端末装置に送信する。このようにすることで、端末装置において、実行環境の再構成が可能となる。
【００２０】
本発明の端末管理システムでは、前記端末装置が、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。この場合、端末装置が、他の端末装置に対して実行環境サーバのプロキシとして動作することで、バックアップ要求を発生する他の端末装置は、直接に実行環境サーバにアクセスできない状況でも、実行環境のバックアップを行うことができる。また、バックアップ要求を、プロキシとなる端末装置を経由することで、実行環境サーバにアクセスが集中することを防ぐことができる。
【００２１】
本発明の端末管理システムでは、前記プロキシとして動作する端末装置は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する構成を採用できる。この場合、プロキシとして動作する端末装置が、実行環境サーバに代わって、バックアップされた更新ファイル保存ディレクトリの内容をリストア要求を発生した端末装置に送信することで、実行環境サーバの処理負担を軽減することができる。なお、バックアップ時とリストア時とで、プロキシとして動作する端末装置が異なるときには、当該プロキシとして動作する端末装置内にはバックアップが保存されていないことになる。そのような場合には、プロキシとして動作する端末装置は、実行環境サーバにリストア要求を転送し、実行環境サーバを用いてリストアを行わせればよい。
【００２２】
本発明の端末管理システムでは、前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。この場合、ディレクトリ隔離手段により、プログラム実行を実行環境ごとに隔離することで、各実行環境から、他の実行環境を構成するディレクトリが見えなくなる。このため、パッケージの任意の版を他の実行環境と共有しつつも、独自のものとして利用できる。
【００２３】
本発明の端末管理システムでは、前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。この場合、元の実行環境においてマウントされていたディレクトリと、新しいパッケージの版に対応した版差分を保存するディレクトリと、新たに作成した更新ファイル保存ディレクトリとを、新たなマウントポイントにマウントすることで、新たな版のパッケージを利用する実行環境を構成できる。また、元のマウントポイントを利用することで、古い版の状態でパッケージを利用することができる。
【００２４】
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。マウントポイント上に、多数のディレクトリをマウントすると、マウントディレクトリ数の増加によって、性能低下が発生することが考えられる。実行環境管理手段により、マウントポイントから見えるディレクトリの内容を、１つのディレクトリにまとめることにより、多数のディレクトリをマウントすることによる性能低下を回避することができる。
【００２５】
本発明の端末管理システムでは、前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用することができる。
【００２６】
本発明の端末管理システムでは、前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している構成を採用できる。パッケージサーバは、端末装置に対して、要求された版のパッケージを提供する必要があるため、パッケージを、初版（第１版）、及び、第１版から第２版、第２版から第３版のように隣接する２つの版間の差分の形で保存しておく。このようにすることで、端末装置に対し、要求された版のパッケージを提供できる。
【００２７】
本発明の端末管理システムでは、前記端末装置は、端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用することができる。例えば、パッケージの第３版が必要なときに、端末装置内に、パッケージの第１版、版差分［第１版−第２版］、及び、版差分［第２版−第３版］が存在するときには、端末装置内に保存されたパッケージで第３版が構成できるので、ダウンロードは必要ない。これに対し、端末装置内に、パッケージの第１版及び版差分［第１版−第２版］が存在するときには、端末装置内のパッケージでは目的とする第３版は構成できないので、版差分［第２版−第３版］をパッケージサーバからダウンロードする。また、端末装置内に当該パッケージが全く保存されていないときには、パッケージサーバに対して、目的とする第３版のダウンロードを要求すればよい。
【００２８】
本発明の端末管理システムでは、前記パッケージサーバは、前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する構成を採用できる。パッケージサーバは、例えば端末装置から、版差分［第１版−第３版］を要求されたときには、層構造ディレクトリ管理手段を用いて、版差分［第１版−第２版］及び版差分［第２版−第３版］をマウントポイント上にマウントする。このマウントポイントを見ると、それは版差分［第１版−第３版］に対応しているので、これを端末装置に対して送信すればよい。
【００２９】
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する構成を採用することができる。端末装置は、例えば、パッケージサーバから、パッケージの第３版を受信したときには、その第３版を、元となる版のパッケージとして記憶装置内に新規登録する。また、パッケージサーバから、版差分［第２版−第３版］を受信したときには、その版差分［第２版−第３版］を、新たな版差分として記憶装置内に新規登録する。このようにすることで、新規登録したパッケージの版又は版差分が、端末装置内で利用可能となる。
【００３０】
本発明の端末管理システムでは、前記端末装置が、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する構成を採用することができる。この場合、端末装置が、他の端末装置に対して、パッケージサーバのプロキシとして動作することで、パッケージのダウンロードを必要とする他の端末装置は、直接にパッケージサーバにアクセスできない状況でも、必要なパッケージを取得することができる。また、プロキシとして動作する端末装置が提供可能なパッケージについては、そのプロキシによってパッケージ提供を行うことで、パッケージサーバの処理負担を軽減することができる。
【００３１】
本発明の端末管理システムでは、前記プロキシとして動作する端末装置は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。プロキシとして動作する端末装置は、すべてのパッケージについて、初版及び各版間の差分を有しているとは限らず、端末装置が有するパッケージでは、要求された版又は版差分が構成できない場合がある。そのような場合には、パッケージサーバにダウンロード要求を転送し、パッケージサーバからダウンロードさせればよい。
【００３２】
本発明の端末管理システムでは、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。この場合、前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。この場合、消去を指示されたパッケージについて、当該パッケージを保存するディレクトリが、何れかの実行環境において利用されているか否かを調べ、利用されていないことを確認した上で消去を実行することで、実際には利用されているパッケージを誤って消去する事態を避けることができる。
【００３３】
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う構成を採用できる。サーバ側で、新たに提供可能なパッケージの登録があった際に、その旨が端末装置に対して送信されるようにしておくことで、端末装置側は、サーバ側で新たに提供可能となったパッケージの存在を知ることができる。通知を受け取った際に実行する内容については、例えば、新たに提供可能となったパッケージのダウンロードやインストールを行うといった動作が考えられる。
【００３４】
本発明の端末管理システムでは、前記パッケージサーバは、前記端末装置から通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する構成を採用できる。
【００３５】
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。例えば、事前に、利用予定があるパッケージについて、新たな版（版差分）が提供可能となったときに通知を要する旨を登録しておき、その通知を受け取った際に実行する内容として、提供可能となった版差分のダウンロード及びインストールを登録しておく。パッケージサーバからの通知を受け取ったときに、ダウンロード及びインストールを実行することで、そのパッケージについて、最新版のパッケージを用いた実行要求が発生した際に、パッケージサーバから最新版のパッケージをダウンロードする必要がなくなり、すばやくパッケージを利用することができる。
【００３６】
本発明の端末装置は、パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
【００３７】
本発明の端末装置は、前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
【００３８】
本発明の端末装置は、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える構成を採用できる。
【００３９】
本発明の端末装置では、前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
【００４０】
本発明の端末装置では、前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用できる。
【００４１】
本発明の端末装置では、前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用できる。
【００４２】
本発明の端末装置では、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
【００４３】
本発明の端末装置では、前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを端末装置内の実行環境のバックアップを保存する実行環境サーバに送信する構成を採用できる。
【００４４】
本発明の端末装置では、前記実行環境管理手段は、前記更新ファイル保存ディレクトリを前記実行環境サーバに送信した後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
【００４５】
本発明の端末装置は、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。
【００４６】
本発明の端末装置では、前記プロキシとして動作する端末装置の実行環境管理手段は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する構成を採用できる。
【００４７】
本発明の端末装置では、前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。
【００４８】
本発明の端末装置では、前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
【００４９】
本発明の端末装置では、前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。
【００５０】
本発明の端末装置では、前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記結合後の内容を記憶するためのディレクトリを前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用できる。
【００５１】
本発明の端末装置は、端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、前記端末装置に対してパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用できる。
【００５２】
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバから、前記必要な版又は版差分を受信し記憶装置内に記憶する構成を採用できる。
【００５３】
本発明の端末装置は、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する構成を採用できる。
【００５４】
本発明の端末装置では、前記プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。
【００５５】
本発明の端末装置では、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
【００５６】
本発明の端末装置では、前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。
【００５７】
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う構成を採用できる。
【００５８】
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。
【００５９】
本発明の実行環境サーバは、パッケージと、プログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置から、前記プログラム実行によって更新されるファイルを保存するディレクトリの内容を受信し、記憶装置内に記憶する実行環境管理手段を備えることを特徴とする。
【００６０】
本発明の実行環境サーバでは、前記実行環境管理手段は、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
【００６１】
本発明の実行環境サーバは、前記実行環境管理手段は、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する構成を採用できる。
【００６２】
本発明のパッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段を備えることを特徴とする。
【００６３】
本発明のパッケージサーバでは、前記パッケージ管理手段は、端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する構成を採用できる。
【００６４】
本発明のパッケージサーバでは、前記パッケージ管理手段は、前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する構成を採用できる。
【００６５】
本発明の端末管理方法は、パッケージを利用するコンピュータを管理する端末管理方法であって、前記コンピュータが、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
【００６６】
本発明の端末管理方法では、前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
【００６７】
本発明の端末管理方法では、前記コンピュータは、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する構成を採用できる。
【００６８】
本発明の端末管理方法では、前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
【００６９】
本発明の端末管理方法では、前記コンピュータは、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用できる。
【００７０】
本発明の端末管理方法では、前記コンピュータは、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用できる。
【００７１】
本発明の端末管理方法では、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
【００７２】
本発明の端末管理方法では、前記コンピュータは、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する構成を採用できる。
【００７３】
本発明の端末管理方法では、前記実行環境サーバは、前記更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する構成を採用できる。
【００７４】
本発明の端末管理方法では、前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
【００７５】
本発明の端末管理方法では、前記コンピュータは、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
【００７６】
本発明の端末管理方法では、前記実行環境サーバは、前記コンピュータから、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記コンピュータに向けて送信する構成を採用できる。
【００７７】
本発明の端末管理方法では、前記コンピュータが、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。
【００７８】
本発明の端末管理方法では、前記プロキシとして動作するコンピュータは、他のコンピュータからのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する構成を採用できる。
【００７９】
本発明の端末管理方法では、前記コンピュータは、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。
【００８０】
本発明の端末管理方法では、前記コンピュータは、前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
【００８１】
本発明の端末管理方法では、前記コンピュータは、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。
【００８２】
本発明の端末管理方法では、前記コンピュータは、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用できる。
【００８３】
本発明の端末管理方法では、前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している構成を採用できる。
【００８４】
本発明の端末管理方法では、前記コンピュータは、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用できる。
【００８５】
本発明の端末管理方法では、前記パッケージサーバは、前記コンピュータからダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記コンピュータから要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記コンピュータに送信する構成を採用できる。
【００８６】
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する構成を採用できる。
【００８７】
本発明の端末管理方法では、前記コンピュータが、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する構成を採用できる。
【００８８】
本発明の端末管理方法では、前記プロキシとして動作するコンピュータは、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。
【００８９】
本発明の端末管理方法では、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
【００９０】
本発明の端末管理方法では、前記コンピュータは、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。
【００９１】
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う構成を採用できる。
【００９２】
本発明の端末管理方法では、前記パッケージサーバは、前記コンピュータから通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記コンピュータに送信する構成を採用できる。
【００９３】
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。
【００９４】
本発明のプログラムは、コンピュータに、端末管理のための処理を実行させるプログラムであって、前記コンピュータに、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する処理を実行させることを特徴とする。
【００９５】
本発明のプログラムは、前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
【００９６】
本発明のプログラムは、前記コンピュータに、前記構成された目的の版のパッケージと、パッケージのプログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する処理を実行させる構成を採用できる。
【００９７】
本発明のプログラムは、前記実行環境の構成では、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
【００９８】
本発明のプログラムは、前記コンピュータに、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する処理を実行させる構成を採用できる。
【００９９】
本発明のプログラムは、前記コンピュータに、前記実行環境の構成後、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する処理を実行させる構成を採用できる。
【０１００】
本発明のプログラムでは、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
【０１０１】
本発明のプログラムは、実行環境のバックアップ要求を受けると、前記コンピュータに、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する処理を実行させる構成を採用できる。
【０１０２】
本発明のプログラムは、前記コンピュータに、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする処理を実行させる構成を採用できる。
【０１０３】
本発明のプログラムは、前記コンピュータを、前記実行環境サーバのプロキシとして動作させ、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該プロキシとして動作するコンピュータに、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する処理を実行させる構成を採用できる。
【０１０４】
本発明のプログラムは、他のコンピュータからのリストア要求を受け取ると、前記プロキシとして動作するコンピュータに、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する処理を実行させる構成を採用できる。
【０１０５】
本発明のプログラムは、前記コンピュータに、ディレクトリ隔離手段を用いて、パッケージのプログラムを実行する環境を前記実行環境ごとに隔離する処理を実行させる構成を採用できる。
【０１０６】
本発明のプログラムは、前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際に、前記コンピュータに、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする処理を実行させる構成を採用できる。
【０１０７】
本発明のプログラムは、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を１つにまとめる旨の層結合要求を受けると、前記コンピュータに、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする処理を実行させる構成を採用できる。
【０１０８】
本発明のプログラムは、前記層結合要求を受けると、前記コンピュータに、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする処理を実行させる構成を採用できる。
【０１０９】
本発明のプログラムは、前記コンピュータに、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、端末にパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する処理を実行させる構成を採用できる。
【０１１０】
本発明のプログラムは、前記パッケージサーバから送信されたパッケージを受信すると、前記コンピュータに、該受信したパッケージを新たな版又は版差分として記憶装置内に記憶する構成を採用できる。
【０１１１】
本発明のプログラムは、前記コンピュータを、前記パッケージサーバのプロキシとして動作させ、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記プロキシとして動作するコンピュータに、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する処理を実行させる構成を採用できる。
【０１１２】
本発明のプログラムは、前記プロキシとして動作するコンピュータに、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する処理を実行させる構成を採用できる。
【０１１３】
本発明のプログラムでは、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
【０１１４】
本発明のプログラムは、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記コンピュータに、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する処理を実行させる構成を採用できる。
【０１１５】
本発明のプログラムは、前記コンピュータに、前記パッケージサーバに対して、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う処理を実行させる構成を採用できる。
【０１１６】
本発明のプログラムは、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記コンピュータに、前記登録された実行すべき内容を実行する処理を実行させる構成を採用できる。
【０１１７】
本発明のサーバ用プログラムは、コンピュータを、パッケージと、パッケージのプログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置における更新ファイル保存ディレクトリのバックアップを記憶する実行環境サーバとして動作させるプログラムであって、コンピュータに、前記端末装置から、前記更新ファイル保存ディレクトリの内容を受信し、記憶装置内に記憶する処理を実行させることを特徴とする。
【０１１８】
本発明のサーバ用プログラムは、前記コンピュータに、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶した後に、サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する処理を実行させる構成を採用できる。
【０１１９】
本発明のサーバ用プログラムは、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記コンピュータに、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する処理を実行させる構成を採用できる。
【０１２０】
本発明のサーバ用プログラムは、コンピュータを、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、端末装置に対してパッケージの提供を行うパッケージサーバとして動作させるプログラムであって、前記コンピュータに、前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する処理を実行させることを特徴とする。
【０１２１】
本発明のサーバ用プログラムは、前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、前記コンピュータに、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する処理を実行させる構成を採用できる。
【発明の効果】
【０１２２】
本発明の端末管理システム、方法、及び、プログラムでは、パッケージを、元となる版及び版間の差分の形でディレクトリを分けて保存し、パッケージの利用に際しては、層構造ディレクトリ管理手段を用いてパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する。このようにすることで、最新版のパッケージを利用しつつも、古い版のパッケージを利用できる。また、例えばあるパッケージのプログラムが、他のパッケージの特定の版のライブラリを利用するような場合には、層構造ディレクトリ管理手段を用いてその特定の版のパッケージを構成することで、各プログラムがそれぞれ異なる版のパッケージにおけるライブラリを参照することができる。
【０１２３】
本発明の端末管理システム、方法、及び、プログラムでは、パッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとを区分して実行環境を構成する構成を採用する場合には、プログラムの本体部分と、プログラム動作によって変更が生じた部分とを分離することができる。この場合、バックアップの際には、更新ファイル保存ディレクトリをバックアップすればよく、効率のよいバックアップを実現できる。
【発明を実施するための最良の形態】
【０１２４】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の第１実施形態の端末管理システムの構成を示している。端末管理システム１００は、端末１０１と、実行環境サーバ１１１と、パッケージサーバ１１６とを有する。パッケージサーバ１１６には、端末でプログラムを実行するのに必要な複数のファイル、或いは、他のパッケージの実行に用いられるライブラリ群をまとめたもの（以下、パッケージと呼ぶ）が保存される。実行環境サーバ１１１には、端末におけるプログラムの動作によって更新されたファイルのバックアップが保存される。実行環境サーバ１１１と、パッケージサーバ１１６とは、別個のサーバとして構成することができる。或いは、同一サーバ内に、実行環境サーバ１１１の機能と、パッケージサーバ１１６の機能とを実現してもよい。
【０１２５】
端末１０１は、プログラム動作により各種処理を実行するコンピュータシステムとして構成される。図１では、端末１０１を１台だけ図示しているが、端末管理システム１００は、複数の端末１０１を有していてもよい。端末１０１は、ディレクトリ隔離手段１０４、層構造ディレクトリ管理手段１０５、実行環境管理手段１０６、データベース１０７、パッケージ管理手段１０８、システム制御手段１０９、及び、要求生成手段１１０を有する。また、ハードディスク等の記憶装置内に、実行環境ディレクトリ１０２及びパッケージ保存ディレクトリ１０３を有する。
【０１２６】
要求生成手段１１０は、ユーザ要求などに従って、各種要求を発生する。要求生成手段１１０が発生する要求としては、例えば、プログラムの実行要求、実行環境の作成要求、実行環境のバックアップ要求、実行環境のリストア要求などが考えられる。システム制御手段１０９は、端末１０１の各部の動作を統括する。システム制御手段１０９は、要求生成手段１１０が発生した要求に従って、実行環境管理手段１０６及びパッケージ管理手段１０８などを用いて、各種処理を実行する。層構造ディレクトリ管理手段１０５は、複数のディレクトリを、あるディレクトリ上に、層構造を持ちながらマウントする機能を提供する。ディレクトリ隔離手段１０４は、実行するプログラムごとに、ディレクトリを隔離する機能を提供する。
【０１２７】
層構造ディレクトリ管理手段１０５について、図２を参照して説明する。層構造ディレクトリ管理手段１０５を利用できるファイルシステムでは、複数のディレクトリを、あるディレクトリに、層構造を持ちながらマウントすることができる。図２では、ファイルfoo、bar、bazを含むディレクトリ/layer1と、ファイルbarを含むディレクトリ/layer2とを、/mntに、/layer1を下にしてマウントしている。このようにマウントした場合、/mntディレクトリの中を見ると、/layer1/fooが/mnt/fooとして見え、/layer2/barが/mnt/barとして見え、/layer1/bazが/mnt/bazとして見える。この状態で、/mnt/bazを更新したときには、更新内容が/layer2/bazとして保存され、/layer1/bazは改変しない、という動作が可能である。このような機能を持つファイルシステムとしては、例えばUnionFSが知られている。
【０１２８】
次に、ディレクトリ隔離手段１０４について、図３を用いて説明する。図３は、/DirAというディレクトリと、/DirBというディレクトリとに、それぞれfoo、barというファイルが存在する様子を表している。この場合、プロセスＡを/DirAに隔離すると、当該プロセスＡからは、/DirA/fooが/fooに見え、/DirA/barが/barに見える。同様に、プロセスＢを/DirBに隔離すると、当該プロセスＢからは、/DirB/fooが/fooに見え、/DirB/barが/barに見える。この状態では、プロセスＡからは、/DirBを見ることはできず、プロセスＢからは/DirAを見ることはできない。このような手段は、Unix（登録商標）系OSでは、chrootというシステムコールやコマンドとして一般に利用することができる。また、一部のOSでは、chrootを拡張したjail等の機能としても実現されている。
【０１２９】
実行環境ディレクトリ１０２は、プログラムごとに動作環境を隔離するためのマウントポイント、及び、プログラムの動作によって更新されたファイルを保存するためのディレクトリを有する。パッケージ保存ディレクトリ１０３は、複数の種類及び版のパッケージを保存するためのディレクトリを有する。パッケージの各版は、元となる版のパッケージ、及び、版間の差分によって提供されており、パッケージ保存ディレクトリ１０３には、元となる版及び版間の差分が、ディレクトリを分けて保存される。版間の差分とは、以前の版に対して変更が加えられたファイル群（追加、削除を含む）である。パッケージの利用に際しては、層構造ディレクトリ管理手段１０５を用いて、元となる版に、必要な版差分を重ねることで、所望の版のパッケージが構成される。
【０１３０】
実行環境管理手段１０６は、実行環境の作成、バックアップ、リストア等を行う。実行環境の作成は、層構造ディレクトリ管理手段１０５を用いて、実行環境ディレクトリ１０２のマウントポイントに、パッケージ保存ディレクトリ１０３に保存された版又は版差分のうちで、実行環境において利用するパッケージと、更新ファイルを保存するためのディレクトリとをマウントすることで行う。実行環境のバックアップ、リストアの際には、更新ファイルを保存するディレクトリを、バックアップ、リストアの対象とする。パッケージ管理手段１０８は、パッケージのダウンロードなどを行う。ダウンロードの際には、パッケージサーバ１１６から必要なパッケージの版又は版差分を取得し、パッケージ保存ディレクトリに、取得したパッケージの版又は版差分を保存する。
【０１３１】
図４は、端末１０１の記録装置におけるディレクトリ構造を示す。この例では、ルートディレクトリ「／」の下に、「マウントポイント」、「更新ファイル」、「パッケージ保存ディレクトリ」があり、「マウントポイント」の下には、「１」、「２」がある。また、「更新ファイル」の下には、「実行環境１」、「実行環境２」があり、さらにその下には、それぞれ「第１版」がある。「パッケージ保存ディレクトリ」の下には、「パッケージＡ」、「パッケージＢ」、「パッケージＣ」があり、その下には、「第１版」等がある。同図における「/マウントポイント」及び「/更新ファイル」ディレクトリが、実行環境ディレクトリ１０２に対応し、「/パッケージス保存ディレクトリ」が、パッケージ保存ディレクトリ１０３に対応する。
【０１３２】
実行環境管理手段１０６は、層構造ディレクトリ管理手段１０５を用いて、例えば、図４における「／パッケージ保存ディレクトリ／パッケージＡ／第１版」、「／パッケージ保存ディレクトリ／パッケージＡ／差分［第１版−第２版］」、「／パッケージ保存ディレクトリ／パッケージＢ／第１版」、「／更新ファイル／実行環境１／第１版」を、この順で「／マウントポイント／１」にマウントする。これにより、実行環境１（第１版）が作成される。実行環境１において、パッケージＡとパッケージＢとの２種類が並存するのは、例えば、パッケージＢが、パッケージＡの提供するライブラリを利用するためパッケージＡに依存しているなどのためである。マウントの際には、プログラムの実行により更新されるファイルを保存するディレクトリである「／更新ファイル／実行環境１／第１版」を最上位にマウントする。このようにマウントすることで、実行環境１（第１版）で更新されたファイルは「／更新ファイル／実行環境１／第１版」に保存されることになり、端末１０１での更新は、パッケージ保存ディレクトリ１０３に保存されたファイルに対して影響を与えない。
【０１３３】
プログラム実行時には、ディレクトリ隔離手段１０４を用い、プログラムの実行を「/マウントポイント/１」に隔離する。このようにすることで、プログラムから、他のディレクトリが見えなくなり、セキュリティが向上する。また、プログラムが利用するファイルが存在するパスを自由に設定できる。すなわち、例えば「/パッケージ保存ディレクトリ/パッケージＡ/差分[第１版−第２版]/lib/libfoo.so」というファイルに対して、当該実行環境で動作するプログラムからは、「/lib/libfoo.so」というファイルとしてアクセスすることができる。他のプログラムがアクセスする「/lib」ディレクトリとは別のものであるため、ファイル名が重なることを考慮せず、自由に「/lib」ディレクトリを利用することができる。
【０１３４】
データベース１０７は、端末１０１内のパッケージ保存ディレクトリに保存されたパッケージについての情報、及び、実行環境ディレクトリ１０２における実行環境についての情報を記憶する。図５は、データベース１０７が記憶するパッケージに関する情報の具体例を示している。同図に示すテーブル１３０１は、端末１０１が保持するパッケージ名と、そのパッケージに関する情報を保持するテーブルとの対応関係を記憶する。パッケージ名の構成法は任意であるが、例えばURLをパッケージ名として利用することができる。その場合には、パッケージ名を一意のIDとして使える上、パッケージサーバの名前をパッケージ名に含めることができる。
【０１３５】
テーブル１３０２は、パッケージごとに作成され、パッケージに関する情報を記憶する。図５に示すテーブル１３０２は、パッケージＡに対応しており、パッケージＡの版番号又は差分の版番号と、パッケージが存在するディレクトリと、パッケージの利用状態とを記憶している。テーブル１３０１を参照することで、端末１０１にどのパッケージが存在するかを知ることができる。また、テーブル１３０２を参照することで、端末１０１に存在する各パッケージについて、現在の最新版は第何版か、パッケージを構成するディレクトリが使用中であるか否か、或いは、各版のファイルをどのように構成すればよいかなどを知ることができる。
【０１３６】
図６は、データベース１０７が記憶する実行環境についての情報を示している。同図に示すテーブル１４０１は、実行環境名と、その実行環境内で用いるパッケージ名と、実行環境に関する情報を保持するテーブルと、更新ファイル保存ディレクトリに関する情報を保持するテーブルとの対応関係を記憶する。実行環境名には、パッケージ名と同様に、ＵＲＬを利用することができ、そのようにすることで、実行環境名に実行環境サーバの名前を含めることができる。テーブル１４０２は、実行環境ごとに作成され、実行環境に関する情報を記憶する。図６に示すテーブル１４０２は、実行環境３に対応しており、実行環境の版番号と、その版の実行環境を利用できるマウントポイントと、その版におけるパッケージの版の情報と、マウントポイントでのマウント順の情報とを記憶する。
【０１３７】
テーブル１４０３は、実行環境における更新ファイルディディレクトリに関する情報を記憶する。図６に示すテーブル１４０３は、実行環境３における更新ファイル保存ディレクトリに対応しており、更新ファイルの版番号、ディレクトリ名、及び、バックアップされたか否かを示す情報を記憶する。テーブル１４０１を参照することで、どのような実行環境が存在し、その実行環境においてどのような種類のパッケージが利用されているかを知ることができる。また、テーブル１４０２を参照することで、実行環境の最新の版は第何版か、実行環境がどのマウントポイントにマウントされているかを知ることができ、テーブル１４０３を参照することで、更新ファイル保存ディレクトリのバックアップ状況を知ることができる。なお、データベース１０７は、必要な情報を記憶していればよく、情報の記録形式は、上記したテーブル１３０１、１３０２、及び、テーブル１４０１〜１４０３には限定されない。
【０１３８】
図１に戻り、実行環境サーバ１１１は、実行環境ディレクトリ１１２、層構造ディレクトリ管理手段１１３、データベース１１４、及び、実行環境管理手段１１５を有する。層構造ディレクトリ管理手段１１３は、端末１０１における層構造ディレクトリ管理手段１０５と同様な機能、すなわち、ディレクトリを、あるディレクトリ上に、層構造を持ちながらマウントする機能を提供する。実行環境ディレクトリ１１２は、端末１０１における実行環境ディレクトリ１０２のバックアップを保存する。バックアップでは、実行環境ディレクトリ１０２のうちの更新ファイル保存ディレクトリ（図４の［/更新ファイル］配下のディレクトリ）をバックアップする。バックアップにより、実行環境サーバ１１１の実行環境ディレクトリ１１２には、端末１０１内の更新ファイルディレクトリの配下のディレクトリが保存されることになる。
【０１３９】
データベース１１４は、端末１０１のデータベース１０７が記憶する実行環境に関する情報（図６）と同等な情報を記憶する。すなわち、システム内に存在する実行環境に関する情報（テーブル１４０１に相当）と、各実行環境の構成内容に関する情報（テーブル１４０２に相当）と、更新ファイル保存ディレクトリに関する情報（テーブル１４０３に相当）とを記憶する。実行環境管理手段１１５は、端末１０１側から、実行環境のバックアップの依頼を受けて、実行環境ディレクトリ１１２に、端末１０１内の実行環境ディレクトリ１０２における更新ファイル保存ディレクトリを、実行環境ディレクトリ１１２に保存する。また、端末１０１から、リストアの依頼を受けると、実行環境ディレクトリ１１２にバックアップされた更新ファイル保存ディレクトリの内容を、端末１０１に送信し、データ復元を行わせる。
【０１４０】
パッケージサーバ１１６は、パッケージ保存ディレクトリ１１７、層構造ディレクトリ管理手段１１８、データベース１１９、及び、パッケージ管理手段１２０を有する。パッケージ保存ディレクトリ１１７は、端末１０１に提供するパッケージを保存する。パッケージ保存ディレクトリ１１７には、提供可能な全ての種類のパッケージについて、パッケージの各版が保存される。パッケージ保存ディレクトリ１１７では、各パッケージは、第１版（初版）から、差分［第１版−第２版］、差分［第２版−第３版］、・・・の形で保存される。パッケージ保存ディレクトリ１１７のディレクトリ構造は、図４に示す端末１０１のパッケージ保存ディレクトリ１０３と同様であり、各パッケージについて、初版及び版間の差分が、ディレクトリを分けて保存される。
【０１４１】
データベース１１９は、端末１０１のデータベース１０７が記憶するパッケージに関する情報（図５）と同様な情報を記憶する。すなわち、端末１０１に提供可能なパッケージに関する情報（テーブル１３０１に相当）と、各パッケージの保存場所に関する情報（テーブル１３０２に相当）とを記憶する。層構造ディレクトリ管理手段１１８は、端末１０１の層構造ディレクトリ管理手段１０５と同様に、ディレクトリを、ディレクトリ上に、層構造を持ちながらマウントする機能を提供する。パッケージ管理手段１２０は、パッケージ保存ディレクトリ１１７に対するパッケージの登録、及び、パッケージ保存ディレクトリ１１７に保存されたパッケージの端末１０１への提供を行う。
【０１４２】
パッケージ管理手段１２０は、端末１０１へパッケージを提供する際には、端末１０１が既に有するパッケージとの差分を、端末１０１に提供する。例えば、端末１０１が保持するパッケージの最新版が第２版であり、パッケージサーバ１１６からパッケージの第３版を提供する際には、パッケージ管理手段１２０は、差分［第２版−第３版］を端末１０１に送信する。また、端末１０１が保持するパッケージの最新版が第１版であり、パッケージサーバ１１６からパッケージの第３版を提供する際には、パッケージ管理手段１２０は、差分［第１版−第３版］を端末１０１に送信する。
【０１４３】
ここで、パッケージ保存ディレクトリ１１７には、第１版と第２版との差分、第２版と第３版との差分のように隣接する版間の差分は保存されるが、第１版と第３版のように、途中の版を抜かした形の版間の差分は保存されていない。このような途中の版を抜かした版間の差分は、層構造ディレクトリ管理手段１１８を用いて、必要な版間の差分を一時ディレクトリ上にマウントすることで作成する。例えば、差分［第１版−第３版］を作成する際には、記憶装置上に一時ディレクトリを作成し、その一時ディレクトリ上に、層構造ディレクトリ管理手段１１８を用いて、差分［第１版−第２版］と差分［第２版−第３版］とを、この順でマウントする。このようにマウントした一時ディレクトリの内容は、差分［第１版−第３版］に対応するので、その内容を、差分［第１版−第３版］として、端末１０１に送信すればよい。
【０１４４】
実行環境のバックアップについて説明する。図７（ａ）は、バックアップ前における実行環境１におけるマウントの状態を示し、同図（ｂ）は、バックアップ後の実行環境１におけるマウントの状態を示す。実行環境は、前述のように、マウントポイント上に、当該実行環境で利用するパッケージをマウントし、その上に、更新ファイルを保存するためのディレクトリをマウントすることで作成される。図７（ａ）では、図４における「／マウントポイント／１」に対応するマウントポイント１に、パッケージＡの第１版（「/パッケージ保存ディレクトリ/パッケージＡ/第１版」）、パッケージＡの第１版と第２版との差分（「/パッケージ保存ディレクトリ/パッケージＡ/差分[第１版−第２版]」）、パッケージＢの第１版（「/パッケージ保存ディレクトリ/パッケージＢ/第１版）、及び、実行環境１における更新ファイルを保存するディレクトリの第１版（「/更新ファイル/実行環境１/第１版」）が、この順でマウントされている。
【０１４５】
図７（ａ）に示す状態では、「/更新ファイル/実行環境１/第１版」ディレクトリが最上位にマウントされているため、実行環境１におけるプログラムの実行によって更新されたファイル群は、このディレクトリに保存される。従って、実行環境のバックアップを行う際には、「/更新ファイル/実行環境１/第１版」ディレクトリのみをバックアップすればよい。バックアップの実行後は、実行環境管理手段１０６によって「/更新ファイル/実行環境１/差分［第１版−第２版］」ディレクトリを新たに作成し、作成したディレクトリを、図７（ｂ）に示すように、マウントポイント１の最上位にマウントする。このようにすることで、バックアップを行った後に実行環境１（第２版）で行われた更新は、「/更新ファイル/実行環境１/差分[第１版−第２版]」に保存されることになり、再度バックアップを取る際には、「/更新ファイル/実行環境１/差分[第１版−第２版]」だけをバックアップすればよい。これにより、バックアップ対象ファイルを減らすことができる。
【０１４６】
次に、同一のパッケージの異なる版を、異なる実行環境で利用する場合について説明する。図８は、図７に示す実行環境１とは異なる実行環境２におけるディレクトリ層構造を示している。実行環境２は、図４の「/マウントポイント/２」ディレクトリ対応するマウントポイント２に、パッケージＡの第１版（「/パッケージ保存ディレクトリ/パッケージＡ/第１版」）、パッケージＣの第１版（「/パッケージ保存ディレクトリ/パッケージＣ/第１版」）、及び、実行環境２における更新ファイルを保存するためのディレクトリの第１版（「/更新ファイル/実行環境２/第１版」）をマウントすることで作成される。この実行環境２で利用するパッケージＡの版は第１版であり、図７において利用しているパッケージＡの版（第２版）とは異なる。
【０１４７】
実行環境２で動作するプログラムは、ディレクトリ隔離手段１０４により、「/マウントポイント/２」に隔離される。これにより、例えば「/パッケージ保存ディレクトリ/パッケージA/第１版/lib/libfoo.so」というファイルに対して、「/lib/libfoo.so」としてアクセスが可能である。一方、実行環境１（図７）で動作するプログラムは、「/マウントポイント/１」に隔離されため、「/パッケージ保存ディレクトリ/パッケージA/差分［第１版−第２版］/lib/libfoo.so」というファイルがあるときには、そのファイルに対して、「/lib/libfoo.so」としてアクセスが可能である。実行環境１における「/lib/libfoo.so」と、実行環境２における「/lib/libfoo.so」とは、別のファイルであり、マウントポイント上にパッケージを古い順にマウントし、ディレクトリ隔離手段１０４によってプログラムの動作を各実行環境のディレクトリ（マウントポイント）に隔離することで、実行環境１、実行環境２で、異なる版のパッケージＡを利用することができる。
【０１４８】
同一実行環境においてパッケージの版を更新する際の動作について説明する。図９（ａ）は、パッケージの版を更新する前の実行環境３のディレクトリ層構造を示している。実行環境３（第１版）は、パッケージＡ第１版と、実行環境３における更新ファイルを保存するディレクトリの第１版とを、マウントポイント３にマウントすることで作成されている。この状況で、パッケージＡの版を第２版に更新する際には、実行環境管理手段１０６により、新たなマウントポイントであるマウントポイント４を作成し、図９（ｂ）に示すように、作成したマウントポイント４に、元のマウントポイント３にマウントされていたパッケージＡの第１版と更新ファイルの第１版とを重ね、その上に、パッケージＡの差分［第１版−第２版］と、新たな更新ファイル保存ディレクトリ（第１版−第２版）を重ねる。このようにすることにより、パッケージＡの第１版を利用する実行環境３の第１版と、パッケージＡの第２版を利用する実行環境３の第２版とを分離することができ、マウントポイント３を利用することで、安全に古いパッケージの状態でプログラムを利用することができる。
【０１４９】
以下、端末管理システム１００の詳細な動作手順について説明する。状態取得について説明する。要求生成手段１１０がシステムの状態取得要求を発生すると、システム制御手段１０９は、データベースを参照して、要求に応じた情報を返す。状態取得要求としては、例えば、パッケージについて、端末１０１内にどのようなパッケージが存在するかや、パッケージの最新版は何版か、パッケージを構成するディレクトリが使用中であるか否かなどの情報を取得する要求が考えられる。また、実行環境について、実行環境でどのようなパッケージが利用されているかや、各実行環境の版においてどの版のパッケージが利用されているかなどの情報を取得する要求が考えられる。これらの情報は、データベース１０７のテーブル１３０１、１３０２（図５）や、テーブル１４０１〜１４０３（図６）を参照することで取得できる。
【０１５０】
パッケージの消去について説明する。要求生成手段１１０がパッケージの消去要求を発生すると、システム制御手段１０９は、パッケージ管理手段１０８に、該当するパッケージの消去を依頼する。依頼を受けたパッケージ管理手段１０８は、消去対象のパッケージのパッケージ名、及び、版又は版差分について、データベース１０７のテーブル１３０２を参照し、当該パッケージの版又は版差分の利用状態を確認する。パッケージ管理手段１０８は、利用状態が「無使用」であれば、テーブル１３０２を参照して、当該パッケージの版又は版差分を保存するディレクトリを調べ、パッケージ保存ディレクトリ１０３から、そのディレクトリを削除する。また、テーブル１３０２における利用状態を「消去」に更新する。利用状態が「使用中」であれば、ディレクトリを削除することはできないので、エラーを返す。利用状態が既に「消去」となっている場合には、そのまま処理を終了する。
【０１５１】
実行環境の作成について説明する。図１０は、実行環境を作成する際の手順を示している。実行環境作成要求は、要求生成手段１１０からシステム制御手段１０９に入力される。実行環境作成要求には、作成すべき実行を行う実行環境の名前と、その実行環境で利用するパッケージの名前とが与えられる。実行環境は、プログラムを当該実行環境で実行する前に、一度、必ず作成される必要がある。システム制御手段１０９は、要求生成手段１１０から実行環境作成要求を受け取ると、端末内の実行環境管理手段１０６に対して、実行環境の作成を指示する。実行環境管理手段１０６は、実行環境作成の指示を受けると、バックアップ用の情報を登録させるべく、実行環境サーバ１１１の実行環境管理手段１１５に環境作成を要求する（ステップＡ１）。
【０１５２】
実行環境管理手段１１５は、作成すべき実行環境名と同名の実行環境が既に存在していないことを確認した上で、データベース１１４のテーブル１４０１に相当するテーブルに、新たな行を追加し、実行環境名及びパッケージ名の情報を保存する。また、作成すべき実行環境に対応して、テーブル１４０２、１４０３に相当する空のテーブルを作成し、データベース１１４に保存する（ステップＡ２）。実行環境名は、システム内で一意である必要があるため、実行環境管理手段１１５は、作成すべき実行環境と同名の実行環境が既に存在する場合には、エラーを返す。
【０１５３】
端末１０１の実行環境管理手段１０６は、実行環境サーバ１１１の実行環境管理手段１１５から、データベース１１４への情報登録を正常に行った旨の応答を受信すると、データベース１０７に、サーバ内のデータベース１１４に登録された情報と同様な情報を登録
する（ステップＡ３）。すなわち、データベース１０７のテーブル１４０１に、作成すべき実行環境に対応した新たな行を追加して、実行環境名及びパッケージ名の情報を保存し、作成すべき実行環境に対応した空のテーブル１４０２、１４０３を作成する。
【０１５４】
次に、プログラムの実行の手順を説明する。図１１は、プログラム実行の際の手順を示している。プログラムの実行要求は、要求生成手段１１０からシステム制御手段１０９に入力される。この実行要求には、プログラムの実行を行う実行環境の名前、実行環境の版の指定、実行するプログラムのパス（例えば/bin/program_nameなど）などが含まれる。実行するプログラムのパスは、例えば/initなどに固定してもよい。また、実行要求には、実行するプログラムのパッケージを最新版の状態で実行する旨の指定、サーバへの接続を行うか否かの指定などを含めることもできる。実行環境の版指定において、古い版の実行環境を指定したときには、旧版のパッケージを利用したプログラムの実行を行うことになる。端末１０１がネットワークから切り離されている状況、或いは、実行要求にて、サーバへの接続を行わないという指定がされていたときには、既に利用可能な実行環境にて、プログラムを実行する。
【０１５５】
システム制御手段１０９は、要求生成手段１１０から実行要求を受け取ると、実行環境サーバ１１１への接続が可能であるか否かを判断する（ステップＢ１）。ステップＢ１では、端末１０１がネットワークから切り離されているとき、或いは、実行要求にて、サーバへの接続を行わない旨の指定がされていたときには、サーバへの接続は不可であると判断する。また、端末１０１がネットワークに接続されており、かつ、実行要求にて、サーバへの接続を行わない旨が指定されていないときには、実行環境サーバ１１１への接続が可能であると判断する。
【０１５６】
システム制御手段１０９は、サーバへの接続が可能である場合には、最新版での実行要求が行われたか否かを判断する（ステップＢ２）。最新版での実行要求が行われたときには、データベース１０７を参照して、実行要求で指定された実行環境で利用しているパッケージ群を調べる。実行環境にて利用されているパッケージは、データベース１０７のテーブル１４０１を参照することで調べることができる。システム制御手段１０９は、実行環境で利用されているパッケージ群の名前をパッケージ管理手段１０８に渡す。パッケージ管理手段１０８は、パッケージサーバ１１６のパッケージ管理手段１２０に、パッケージ群の名前を送信し、各パッケージについて、最新の版番号を問い合わせる。（ステップＢ３）。
【０１５７】
パッケージサーバ１１６のパッケージ管理手段１２０は、端末１０１から最新版の版番号の問い合わせを受けると、データベース１１９を参照して、パッケージサーバ１１６におけるパッケージの最新の版番号を、端末１０１のパッケージ管理手段１０８に返す。パッケージ最新の版番号は、データベース１１９内のテーブル１３０２に相当するテーブルを参照することで取得できる。端末１０１内のパッケージ管理手段１０８は、パッケージサーバ１１６から、各パッケージの最新の版番号を受け取り、受け取った最新の版番号をシステム制御手段１０９に返す。
【０１５８】
システム制御手段１０９は、実行に利用しようとしている版のパッケージ群が、端末１０１に存在するか否かを調べる（ステップＢ４）。ステップＢ４では、最新版での実行要求が行われた場合には、ステップＢ３の問い合わせに対して返答されたパッケージの最新の版番号の版が、端末１０１内に存在するか否かを判断する。また、実行環境の版を指定して実行要求が行われた場合には、既存の実行環境の版でプログラムを実行することになるが、本システムではパッケージの消去が許容されるため、ステップＢ４で、指定された版で利用するパッケージの版が、端末１０１内に存在するか否かを判断する。必要なパッケージが端末内に存在しない場合には、パッケージサーバ１１６からダウンロードする必要がある。
【０１５９】
実行環境の版が指定されたときに、ステップＢ４で、その版で利用するパッケージが端末内に存在するか否かを調べる際には、まず、データベース１０７のテーブル１４０２を参照し、指定された実行環境の版において利用しているパッケージ名と、その版及び版の差分の情報を取得する。次いで、データベース１０７のテーブル１３０２のテーブルを検索し、該当する及び版の差分の状態が、「消去」であるか否かを調べる。「消去」でなければ、過去に利用されていたパッケージは端末１０１内から削除されておらず、該当する版及び版の差分は、端末１０１内に有効に存在する。
【０１６０】
最新版での実行要求が行われた場合に、ステップＢ４で、その最新版の実行環境で利用するパッケージが端末内に存在するか否かを調べる際には、まず、データベース１０７のテーブル１４０２を参照して、実行環境の最新版において利用している各パッケージの版番号を取得する。次いで、実行環境での版番号と、ステップＢ３で問い合わせたパッケージの最新版の版番号とから、版差分番号を作成し、これを、データベース１０７のテーブル１３０２から検索する。該当する差分が存在しない、或いは、状態が「消去」になっていれば、パッケージサーバ１１６からダウンロードする必要がある。
【０１６１】
端末１０１内に、該当する版差分が直接存在しなくても、複数の版差分から構成できれば、ダウンロードの必要はない。例えば、現在の実行環境で利用しているパッケージの版が第１版、パッケージサーバ１１６に存在する最新版の版番号が第３版であるとすると、必要となる版は、差分[第１版−第３版]である。この場合が、端末１０１内に、差分[第１版−第３版]が存在しなくても、差分[第１版−第２版]及び差分[第２版−第３版]が存在すれば、これらを組み合わせて利用することで第３版を構成できるので、ダウンロードの必要はない。
【０１６２】
端末１０１内に存在する版差分が完全ではない場合には、端末１０１内に存在する差分の組み合わせで構成できる最新版からの差分をダウンロードすればよい。例えば、上記の例で、パッケージサーバ１１６に存在する最新版の版番号が第５版であるとすると、必要となる版である差分[第１版−第５版]は、差分[第１版−第２版]及び差分[第２版−第３版]だけでは構成されない。この場合には、端末１０１内の差分で第３版まで構成できるので、差分[第３版−第５版]をダウンロードすればよい。より詳細には、差分でない版からスタートし、連続した差分を検索することで、端末１０１内で構成できる版の最新版を知ることができる。例えば、上記の例では、第１版からスタートし、第１版からの差分を検索する。差分[第１版−第２版]を検出すると、次は、第２版からの差分を検索する。このようにすることで、端末１０１内で構成できる最新版を知ることができる。複数の差分がある場合、例えば差分[第１版−第２版]と差分[第１版−第３版]とがあるような場合には、双方について検索を行い、より目的の版に近い版に到達できる方を用いればよい。
【０１６３】
システム制御手段１０９は、ステップＢ４で、実行に利用しようとしている版のパッケージ群が、端末１０１に存在しないと判断し、ダウンロードが必要であると判断すると、パッケージ管理手段１０８に、必要なパッケージのダウンロードを指示する（ステップＢ５）。その際、システム制御手段１０９は、ダウンロードするパッケージの名前と、版番号又は版差分とを、パッケージ管理手段１０８に通知する。ダウンロードでは、パッケージの一部が端末１０１内に存在するときには、必要な差分をダウンロードする。必要なパッケージが端末１０１内に全く存在しない場合には、差分ではなく、版全体をダウンロード対象とする。
【０１６４】
図１２は、サーバからパッケージをダウンロードする際の手順を示している。パッケージ管理手段１０８は、ダウンロードするパッケージの名前と、版番号又は版差分とを、パッケージサーバ１１６のパッケージ管理手段１２０に送信し、当該パッケージのダウンロードを要求する（ステップＣ１）。パッケージサーバ１１６のパッケージ管理手段は、ダウンロード要求を受けると、データベース１１９を参照し、必要な版差分ディレクトリ群を抽出する（ステップＣ２）。例えば、要求された版差分番号が差分［第１版−第３版］であれば、必要な版差分ディレクトリ群は、差分［第１版−第２版］と、差分［第２版−第３版］である。
【０１６５】
パッケージ管理手段１２０は、ディレクトリ群の抽出後、一時ディレクトリを作成し、層構造ディレクトリ管理手段１１８を用いて、作成した一時ディレクトリ上に、抽出したディレクトリ群をマウントする（ステップＣ３）。抽出したディレクトリ群を、一時ディレクトリ上にマウントすることで、一時ディレクトリには、必要とする版差分が保持される。上記の例では、一時ディレクトリ上に、差分[第１版−第２版]と、差分[第２版−第３版]とを、この順でマウントすることにより、一時ディレクトリには、差分［第１版−第３版］の内容が保持されることになる。パッケージ管理手段１２０は、一時ディレクトリの内容をアーカイブし、ダウンロード要求を送信した端末１０１に送信する（ステップＣ４）。
【０１６６】
端末１０１のパッケージ管理手段１０８は、パッケージサーバ１１６から、ダウンロードを要求した版又は版差分のアーカイブを受信し、受信したアーカイブをパッケージ保存ディレクトリ１０３に展開して保存する（ステップＣ５）。その際、パッケージ管理手段１０８は、ダウンロードした版又は版差分が、データベース１０７のテーブル１３０２において「消去」状態のものであった場合には、ダウンロードした版又は版差分を、当該テーブル１３０２に記述されているディレクトリに保存する。これは、そのディレクトリを参照する実行環境がある可能性があるためである。それ以外の場合には、新たにディレクトリを作成し、そのディレクトリに保存する。
【０１６７】
パッケージ管理手段１０８は、パッケージ保存ディレクトリ１０３への保存後、データベース１０７の内容を更新する（ステップＣ６）。ステップＣ６では、例えば、テーブル１３０２において「消去」状態であった版又は版差分を、「無使用」状態に更新する。また、新たにディレクトリを作成して保存した場合には、テーブル１３０２に新たな行を追加して、サーバからダウンロードした版又は版差分の情報、及び、保存ディレクトリの情報をデータベース１０７に追加登録する。
【０１６８】
図１１に戻り、システム制御手段１０９は、これまでのステップで処理したパッケージ群が依存するパッケージがあるか否かを確認する（ステップＢ６）。依存するパッケージに関する情報は、パッケージ内に記述されており、例えば当該パッケージのディレクトリ内に存在する依存情報ファイルを参照することで知ることができる。依存情報は、同一パッケージでも、パッケージの版に応じて異なることもある。また、依存情報がデータベース内に記述される構成でもよく、その場合には、データベースを参照して、依存するパッケージを調べる。
【０１６９】
例えば、パッケージＸがパッケージＹに依存する場合には、パッケージＸの依存情報では、パッケージＹに依存する旨だけでなく、パッケージＹのどの版に依存するかも記述する。版に対する依存関係の記述の仕方としては、例えば、「正確に第Ｐ版に依存する」、「第Ｐ版以上の任意の版に依存する：最新版があれば最新版を利用する」、「第Ｐ版以上で第Ｑ版以下に依存する：第Ｑ版以下で最新版があれば最新版を利用する」、「第Ｑ版以下に依存する：第Ｑ版以下で最新版があれば最新版を利用する」などが考えられる。
【０１７０】
システム制御手段１０９は、ステップＢ６で、依存するパッケージがあると判断すると、ステップＢ３に戻り、依存するパッケージについて、パッケージサーバ１１６における最新版の版番号を取得する。なお、「正確に第Ｐ版に依存する」場合で、第Ｐ版が端末１０１内に存在する場合や、「第Ｑ版以下に依存する：第Ｑ版以下で最新版があれば、最新版を利用する」場合で、第Ｑ版が端末１０１内にある場合には、必要な版は既に端末１０１内に存在しているので、ステップＢ３で、パッケージサーバ１１６から最新のパッケージ番号を取得する必要はない。
【０１７１】
実行環境管理手段１０６は、パッケージサーバ１１６から取得した最新版の版番号と依存情報とから、必要とする版を判定する。すなわち、「正確に第Ｐ版に依存する」場合で、サーバに第Ｐ版以上の版があれば、必要とする版は第Ｐ版である。また、「第Ｐ版以上の任意の版に依存する：最新版があれば最新版を利用する」場合で、サーバに第Ｐ版以上の版があれば、必要とする版は最新版である。「（第Ｐ版以上）第Ｑ版以下に依存する：第Ｑ版以下で最新版があれば、最新版を利用する」場合で、サーバには第Ｐ版以上の版があることを前提に、最新版が第Ｑ版より小さければ、必要とする版は最新版であり、第Ｑ版以上であれば、第Ｑ版が必要とする版となる。
【０１７２】
以降は、上記で説明したのと同様に、必要とする版が端末１０１内に存在するか否かを判断して、その存在しないときには、必要とする版をパッケージサーバ１１６からダウンロードする。その後、ステップＢ６で、依存するパッケージの存在を判断し、依存するパッケージが存在する場合には、ステップＢ３に戻る。この処理を繰り返すことで、依存するパッケージを含めて、必要なパッケージを全てダウンロードする。
【０１７３】
ダウンロードが終了すると、システム制御手段１０９は、必要なパッケージがインストール済みであるか否かを判断する（ステップＢ７）。「インストール済み」とは、対象となる実行環境において、更新ファイル保存ディレクトリと共に、あるマウントポイントにマウントされ、更に、初期設定を行うなどのためにインストールプログラムを実行した状態になっていることを言う。インストール済みであるか否かは、データベース１０７を参照することで判断することができる。すなわち、判断の対象となるパッケージの版が、テーブル１４０２のパッケージの版に記述されている版以下であれば、インストール済みである。
【０１７４】
パッケージがインストール済みであるか否かの確認は、依存するパッケージも含め、当該実行環境で利用するパッケージのすべてについて行う。システム制御手段１０９は、実行環境管理手段１０６に対し、インストール済みでないと判断したパッケージのインストールを要求する（ステップＢ８）。この要求には、インストールの対象となるパッケージの名前、版又は版差分番号、及び、インストール先の実行環境が含まれる。インストール先の実行環境が、実行環境の作成（図１０）で作成された直後の実行環境、つまりは、インストールが１回も行われていない実行環境であるときには、インストールによって、当該実行環境の第１版が作成されることになる。既にインストールが行われている実行環境については、今回のインストールにより、新しい版の実行環境が作成されることになる。
【０１７５】
図１３は、インストールの際の実行環境管理手段１０６の動作手順を示している。実行環境管理手段１０６は、インストール要求を受けると、新たなマウントポイントとなるディレクトリを作成する（ステップＤ１）。また、作成する実行環境の更新ファイルを保存するためのディレクトリを、新規に作成する（ステップＤ２）。ステップＤ２で作成する更新ファイル保存ディレクトリは、例えば現在の実行環境の最新の版番号が第１版であれば、差分［第１版−第２版］である。インストールが１回も行われていない実行環境であれば、第１版である。
【０１７６】
実行環境管理手段１０６は、データベース１０７を参照し、テーブル１４０２から、既存の実行環境のうちで、最新版の実行環境においてマウントされているパッケージ及び更新ファイルの版又は版差分と、それらのマウント順を取得する（ステップＤ３）。次いで、層構造ディレクトリ管理手段１０５を用い、それらに対応するディレクトリを、テーブル１３０２及び１４０３から取得し、ステップＤ１で新たに作成したマウントポイントに、取得したマウント順と同じ順序でマウントする。その上に、インストール対象のパッケージの版（版差分）を保存するディレクトリを重ね、更にその上に、ステップＤ２で新規に作成した更新ファイルを保存するディレクトリをマウントする（ステップＤ４）。最新版の実行環境の版が存在しない場合、つまりは、インストールが１回も行われていない実行環境の場合には、マウントポイント上に、インストール対象のパッケージの版と、更新ファイル保存ディレクトリとがマウントされる。
【０１７７】
実行環境管理手段１０６は、ステップＤ１で作成したマウントポイントを、ディレクトリ隔離手段１０４を用いて隔離した上で、インストールプログラムを実行する（ステップＤ５）。インストールプログラムは、パッケージと共に提供されており、初期化等のために用いられる。マウントポイントを、ディレクトリ隔離手段１０４を用いて隔離することで、インストールによって更新されるファイルは、マウントポイントに対して最上位にマウントされている更新ファイルを保存するディレクトリに保存される。このため、パッケージそのものは改変されず、安全に、複数の実行環境間でパッケージを共有できる。
【０１７８】
実行環境管理手段１０６は、インストールプログラムの実行後、データベース１０７のテーブル１４０２に行を挿入し、インストールしたパッケージの情報と、マウント順の情報とを、新たな実行環境の版の情報として登録する（ステップＤ６）。テーブル１４０２における新たな実行環境の版の「版番号」は、前の版に１を足したものになる。また、実行環境管理手段１０６は、テーブル１４０３に行を挿入し、新規に作成した更新ファイルを保存するディレクトリの情報を保存する。このときのテーブル１４０３における「版番号」は、前版との差分となる。
【０１７９】
再び図１１に戻り、システム制御手段１０９は、ディレクトリ隔離手段１０４を用いて、パッケージがインストールされた状態の実行環境において、実行要求にて指定されたパスのプログラムを実行する（ステップＢ９）。システム制御手段１０９は、プログラムの実行に際して、データベース１０７のテーブル１３０２に対し、利用しているパッケージの版及び版差分の状態を、「使用中」とする。プログラムの実行が終了したときに、他に当該パッケージの版及び差分を利用しているプログラムがなければ、テーブル１３０２における状態を「無使用」に更新する。プログラムが実行中か終了しているかは、例えば、次のような手法を用いることで、判断することができる。すなわち、オペレーティングシステムの機能を利用して実行中の動作単位（例えばプロセス）が動作しているディレクトリを調べる。ある実行環境下で動作しているプロセスは、特定のマウントポイント下で動作しているため、このディレクトリを、テーブル１４０２から検索することで、どの実行環境下のプロセスが動作中であるかを判定できる。
【０１８０】
ステップＢ１にて、ネットワークへの接続が不可と判断された場合、すなわち、端末１０１がネットワークから切り離されていた場合や、実行要求でサーバへの接続を行わずにプログラムを実行する旨が指定されていた場合には、ステップＢ１からステップＢ９へ移行し、以前に作成した実行環境においてプログラムを実行する。その際、システム制御手段１０９は、必要とされるパッケージが、消去されずに残っていることを確認する。具体的には、データベース１０７のテーブル１４０２から、マウントしているパッケージとその版及び版差分とを抽出し、当該パッケージの版及び版差分に対して、テーブル１３０２を引き、状態が「消去」でないことを確認する。必要とされるパッケージの版及び版差分が消去されていた場合には、エラーを表示する。
【０１８１】
続いて、更新通知登録の動作について説明する。更新通知登録とは、パッケージサーバ１１６に対して、パッケージの版が更新され、新しい版のパッケージが提供可能となったときには、その旨を端末１０１側に通知するように登録することである。更新通知を受けることで、定期的にパッケージサーバ１１６に対して最新の版番号を問い合わせなくても、サーバ側での最新版の版番号を把握することができる。また、新しい版が提供可能となったときに、あらかじめダウンロードとインストールとを行っておくことで、実行要求が発生した際に、すばやくその最新版を利用することができる。
【０１８２】
図１４は、更新通知登録の際の手順を示している。要求生成手段１１０から、更新通知を登録する旨の要求が発生すると、システム制御手段１０９は、パッケージ管理手段１０８に対して、更新通知登録を指示する。パッケージ管理手段１０８は、パッケージサーバ１１６のパッケージ管理手段１２０に対して、パッケージが更新された際にはその旨を端末１０１に登録するように依頼する（ステップＥ１）。更新通知登録要求には、更新通知を登録する対象のパッケージ名が含まれており、パッケージ管理手段１０８は、パッケージサーバ１１６のパッケージ管理手段１２０に対象となるパッケージの名前を渡して、更新通知登録を依頼する。
【０１８３】
更新通知登録要求には、パッケージサーバ側から更新通知を受けた際に実行する処理の内容を含めることができる。更新通知登録要求に、更新通知を受けた際に実行する内容が指定されているときには、パッケージ管理手段１０８は、その内容を、端末１０１内に登録する（ステップＥ２）。更新通知を受けた際に実行する内容は、プログラム又はシステムを構成する各手段に対する要求である。例えば、更新通知を受けた際に、要求生成手段１１０からシステム制御手段１０９に対して、ダウンロード要求を発生する旨を登録する。この場合には、パッケージサーバ１１６でパッケージの更新があったときに、端末１０１側で、自動的に、更新された版のパッケージをダウンロードすることができる。
【０１８４】
パッケージサーバ１１６のパッケージ管理手段１２０は、更新通知登録の依頼を受けると、更新通知の対象となるパッケージ名を記録する（ステップＥ３）。その際、パッケージ管理手段１２０は、更新通知の対象のパッケージ名と、依頼発行元の端末１０１とを関連付けて記録する。このようにすることで、端末１０１ごとに、更新通知を行うパッケージを指定することができる。
【０１８５】
新たなパッケージの登録について説明する。図１５は、パッケージ登録の際の手順を示している。パッケージ管理手段１２０は、パッケージサーバ１１６の管理者によって、新たなパッケージの登録が要求されると、パッケージ保存ディレクトリ１０３にディレクトリを作成し、そのディレクトリに、新たなパッケージを登録する（ステップＦ１）。新たなパッケージは、第１版、又は、前の版からの差分の形で与えられる。第１版で与えられるパッケージは、新規なパッケージであり、前の版からの差分で与えられるパッケージは、既存パッケージの更新版である。
【０１８６】
パッケージ管理手段１２０は、データベース１１９に、新たに登録されたパッケージの情報を登録する（ステップＦ２）。パッケージ管理手段１２０は、登録されるパッケージが新規パッケージであれば、データベース１１９のテーブル１３０１に行を挿入し、テーブル１３０２を作成して、新規パッケージの情報を登録する。また、新たなパッケージが、既存パッケージの更新版であれば、テーブル１３０１を参照して、当該既存パッケージに対応するテーブル１３０２を特定し、そのテーブルに、更新版の内容を登録する。
【０１８７】
パッケージ管理手段１２０は、登録されたパッケージが、更新通知の対象となっているか否かを判断する（ステップＦ３）。更新通知の対象のパッケージである場合には、更新通知登録を依頼した依頼元の端末１０１に向けて、パッケージの版が更新された旨の通知を行う（ステップＦ４）。この通知を受け取った端末１０１のパッケージ管理手段１０８は、更新通知に含まれる更新されたパッケージの名前から、更新通知登録（図１４）において登録した、更新通知を受けた際に実行する内容を検索し、その内容を実行する（ステップＦ５）。
【０１８８】
実行環境のバックアップについて説明する。図１６は、実行環境のバックアップの手順を示している。要求生成手段１１０が、実行環境のバックアップを要求すると、システム制御手段１０９は、実行環境管理手段１０６に、実行環境のバックアップを依頼する。実行環境のバックアップ要求では、バックアップの対象となる実行環境が指定されており、システム制御手段１０９は、バックアップ対象の実行環境名を実行環境管理手段１０６に渡して、バックアップを依頼する。
【０１８９】
実行環境管理手段１０６は、バックアップの依頼を受けると、データベース１０７のテーブル１４０３を参照して、実行環境における更新ファイルの未バックアップの版又は版差分ディレクトリ群を抽出する（ステップＧ１）。その後、抽出したディレクトリ群を、データベース１０７のテーブル１４０１における該当行、及び、テーブル１４０２、１４０３と共にアーカイブし、実行環境サーバ１１１に転送する（ステップＧ２）。
【０１９０】
実行環境サーバ１１１の実行環境管理手段１１５は、端末１０１から、未バックアップのディレクトリ群及びデータベース１０７のアーカイブを受け取ると、受け取ったアーカイブを展開して、実行環境ディレクトリ１１２及びデータベース１１４に、端末１０１から送信された内容（情報）を保存する（ステップＧ３）。これにより、実行環境サーバ１１１で保持する情報と、端末１０１と保持する情報とを、同じ状態にすることができる。
【０１９１】
端末１０１の実行環境管理手段１０６は、実行環境サーバ１１１へのアーカイブの送信後、新たな更新ファイル保存ディレクトリを作成し、層構造ディレクトリ管理手段１０５を用いて、作成した更新ファイル保存ディレクトリを、現環境で用いているマウントポイント上にマウントする（ステップＧ４）。その後、データベース１０７の更新を行う（ステップＧ５）。ステップＧ５では、データベース１０７のテーブル１４０２に行を挿入し、実行環境の新しい版として情報を保存する。このときに、テーブル１４０２に保存される情報は、版番号が１つ大きくなり、マウント順の項目に新たに作成された更新ファイル保存ディレクトリが追加される点を除いて、前の版と同じである。また、テーブル１４０３に、新たに作成した更新ファイル保存ディレクトリの情報を追加し、バックアップを行った更新ファイル保存ディレクトリについて、バックアップ項目を「済」にする。
【０１９２】
実行環境のリストアについて説明する。図１７は、実行環境のリストアの手順を示している。要求生成手段１１０が、実行環境のリストアを要求すると、システム制御手段１０９は、実行環境管理手段１０６に、実行環境のリストアを依頼する。実行環境のリストア要求では、リストアする実行環境が指定されており、システム制御手段１０９は、リストアする実行環境名を実行環境管理手段１０６に渡して、リストアを依頼する。
【０１９３】
実行環境管理手段１０６は、実行環境サーバ１１１に対し、実行環境のバックアップで保存された更新ファイル保存ディレクトリの情報の送信を要求する（ステップＨ１）。この要求を受けた実行環境サーバ１１１の実行環境管理手段１１５は、データベース１１４を参照してリストア対象の実行環境の保存場所を特定し、実行環境ディレクトリ１１２から、リストア対象の更新ファイル保存ディレクトリの内容を取得する。また、データベース１１４から、リストア対象の更新ファイル保存ディレクトリに関する情報を抽出して、これらをアーカイブし、端末１０１に向けて送信する（ステップＨ２）。
【０１９４】
端末１０１の実行環境管理手段１０６は、実行環境サーバ１１１から、リストア対象の更新ファイル保存ディレクトリの内容及びデータベースの情報を受信すると、アーカイブを展開し、実行環境ディレクトリ１０２に、バックアップ時のディレクトリ構成を復元する。また、データベース１０７の内容を、バックアップ時のものに復元する（ステップＨ３）。これにより、実行環境が、バックアップ時の実行環境の状態に復元される。
【０１９５】
パッケージのダウンロード、インストール、最新版の版番号の問い合わせについては、実行要求に対する処理（図１１）の中で行う以外に、単独で実行可能とする。要求生成手段１１０がこれらの要求を発生すると、システム制御手段１０９は、要求に応じて、パッケージ管理手段１０８を用いて、ダウンロード、インストール、最新版の版番号の問い合わせを行う。これらを単独で実行可能とすることで、以下の利点がある。すなわち、実行要求に対する処理で、ダウンロードやインストールを行う場合には、実行要求が発生してから、実際にプログラムが実行されるまでに、時間を要する可能性がある。そこで、定期的にパッケージの更新をチェックして、あらかじめパッケージのダウンロード、インストールを実行し、端末１０１内のパッケージを更新しておく。このようにする場合には、実行要求が発生した際に、パッケージのダウンロード、インストールは不要となり、プログラム実行までの時間を短縮できる。また、パッケージサーバ１１６に接続せずにプログラムの実行が可能とるので、実行要求時に、端末１０１がネットワークに接続している必要がなくなる。
【０１９６】
定期的なパッケージの更新チェックを行う際には、まず、パッケージ更新チェックの対象とするパッケージを列挙したリストを用意する。このリストには、現在利用中のパッケージに加えて、将来利用が見込まれるパッケージを含めておくとよい。リストに列挙されたパッケージについて、ステップＢ３（図１１）と同様な手順で、パッケージサーバ１１６における最新の版番号を取得し、これと、端末１０１内のパッケージの版番号とを比較する。ステップＢ５と同様な手順で、パッケージサーバ１１６から最新版のパッケージをダウンロードし、ステップＢ８と同様な手順で、インストールを行う。このとき、最新版のパッケージが依存するパッケージが存在するときには、そのパッケージについても、必要に応じて、ダウンロード及びインストールを行う。
【０１９７】
本実施形態では、パッケージ保存ディレクトリに、パッケージを、パッケージの元となる版、及び、版間の差分でディレクトリを分けて保存し、パッケージ利用の際には、層構造ディレクトリ管理手段を用いて、パッケージの元となる版及び版間の差分をマウントポイント上にマウントすることで、目的の版のパッケージを構成する。このようにすることで、同一パッケージについて、複数の版が存在するときに、所望の版のパッケージを構成することができ、複数のプログラムから共有されるライブラリ等が存在した場合に、それぞれのプログラムが別の版のライブラリを参照することができる。また、パッケージを差分で管理していることにより、パッケージの版が更新され、新しい版のパッケージが利用可能となったときでも、古い版のパッケージをマウントすることで、パッケージを古い版の状態で利用することができる。
【０１９８】
本実施形態では、層構造管理手段を用い、パッケージを保存するディレクトリ上に、更新ファイル保存ディレクトリを重ねて実行環境を構成する。このようにすることで、プログラム本体部分と、プログラム実行に伴って更新されたファイルとを区分することができ、バックアップの際には、更新ファイル保存ディレクトリをバックアップすることで、効率のよいバックアップが実現できる。また、バックアップ後には、バックアップした更新ファイル保存ディレクトリ上に、新しい版（版差分）の更新ファイル保存ディレクトリを重ね、次回のバックアップでは、未バックアップの新しい版の更新ファイル保存ディレクトリを対象としてバックアップを実施することで、バックアップの効率を更に高めることができる。
【０１９９】
次に、本発明の第２実施形態について説明する。第２実施形態の端末管理システムは、各端末１０１（図１）が、実行環境サーバ１１１及びパッケージサーバ１１６の機能を併せ持ち、他の端末に対して、サーバ機能を提供する。より詳細には、実行環境管理手段１０６は、他の端末に対して、実行環境サーバ１１１の実行環境管理手段１１５の代わりに、実行環境のバックアップ、リストア等の機能を提供する。また、パッケージ管理手段１０８は、他の端末に対して、パッケージサーバ１１６のパッケージ管理手段１２０の代わりに、パッケージ提供などの機能を提供する。どの端末がどの端末に対してサーバ機能を提供するかは、あらかじめ決めておく。或いは、端末間のネットワーク接続状況に応じて、動的に決定してもよい。
【０２００】
図１８に、本実施形態における端末管理システム内での要求やデータの流れを示す。この例では、端末Ｂ１５０２は、端末Ａ１５０１に対してプロキシとして動作する。すなわち、端末Ａ１５０１は、パッケージのダウンロード要求や、実行環境のバックアップ／リストア要求などの要求を、実行環境サーバ１１１やパッケージサーバ１１６ではなく、端末Ｂ１５０２に対して発行する。端末Ｂ１５０２は、実行環境サーバ１１１やパッケージサーバ１１６の代理として、端末Ａ１５０１に対し、サーバとしての機能を提供する。
【０２０１】
端末Ｂ１５０２のパッケージ管理手段１０８は、端末Ａ１５０１からダウンロード要求を受信すると（図１２のステップＣ１に相当）、要求されたパッケージが、自端末のパッケージ保存ディレクトリ１０３に保存されているか否かを判断する。保存されているときには、ステップＣ２〜Ｃ４の処理を行って、端末Ａ１５０１に、要求されたパッケージを保存する。要求されたパッケージが自端末に存在しないときには、端末Ａ１５０１から受信したダウンロード要求を、パッケージサーバ１１６に転送する。この場合は、端末Ａ１５０１は、パッケージサーバ１１６から必要なパッケージを取得する。
【０２０２】
端末Ｂ１５０２のパッケージ管理手段１０８は、端末Ａ１５０１から最新版のパッケージの版番号の問い合わせを受けると（図１１のステップＢ３）、その問い合わせをパッケージサーバ１１６に転送する。また、端末Ａ１５０１から、更新通知登録の依頼を受けると（図１４のステップＥ１）、端末Ｂ１５０２内に更新通知登録を行うと共に、パッケージサーバ１１６に対して、更新通知登録を依頼する。その際、パッケージサーバ１１６から更新通知を受け取った際に行う処理の内容として、端末Ａ１５０１に更新通知を送信する旨を登録する。この場合、パッケージサーバ１１６でパッケージが更新されると、端末Ａ１５０１は、プロキシである端末Ｂ１５０２を経由して、更新通知を受け取ることになる。
【０２０３】
端末Ｂ１５０２のパッケージ管理手段１０８は、端末Ａ１５０１から、実行環境の作成要求を受け取ると（図１０のステップＡ１に相当）、データベース１０７に、実行環境のバックアップ用の情報を登録すると共に、実行環境サーバ１１１に、作成要求を転送する。これにより、プロキシである端末Ｂ１５０２と実行環境サーバ１１１との双方のデータベースに、バックアップ用の情報が登録される。また、端末Ａ１５０１から、バックアップ対象のディレクトリのアーカイブを受信すると（図１６のステップＧ２に相当）、データベース１０７及び実行環境ディレクトリ１０２にバックアップ内容を保存した後に、実行環境サーバ１１１に、受信したアーカイブを転送する。これにより、端末Ａ１５０１のバックアップが、端末Ｂ１５０２と実行環境サーバ１１１との双方に保存される。端末とサーバとで、パッケージ保存ディレクトリ及びデータベースの構造は同じであるため、端末Ｂ１５０２では、単純に、端末Ａ１５０１から受信した内容を、実行環境ディレクトリ１０２及びデータベース１０７に追加登録すればよい。
【０２０４】
端末Ａ１５０１からのリストア要求（図１７のステップＨ１に相当）については、端末Ｂ１５０２は、実行環境ディレクトリ１０２及びデータベース１０７を検索して端末Ａ１５０１からバックアップした内容を抽出し、これを端末Ａ１５０１に送信すればよい。バックアップ時と、リストア時とで、端末Ａ１５０１がプロキシとして利用する端末が異なっているときには、そのプロキシには端末Ａ１５０１のバックアップが保存されていないことになる。その場合には、端末Ａ１５０１のバックアップを保存する端末を検索し、その端末にリストア要求を転送して、バックアップ時のプロキシを用いてリストアを行えばよい。或いは、実行環境サーバ１１１にリストア要求を転送して、実行環境サーバ１１１によってリストアを行えばよい。
【０２０５】
本実施形態では、端末を実行環境サーバ及びパッケージサーバのプロキシとして動作させ、サーバへのアクセスを、プロキシとして動作する端末を経由するように構成する。このようにすることで、端末がサーバへ直接接続することができない状況にあるときや、サーバへアクセスが遅いときでも、プロキシとなる別の端末を利用することで、実行環境のバックアップやパッケージのダウンロードなどを行うことができる。また、本来サーバが行うべき処理を、プロキシとなる端末で代わりに行うことで、サーバ付加を軽減できるという効果もある。その他の効果は、第１実施形態と同様である。
【０２０６】
続いて、本発明の第３実施形態について説明する。本実施形態では、実行環境管理手段１０６により、マウントポイント上にマウントされてディレクトリ群を、適宜１つのディレクトリにまとめる。ディレクトリ群をまとめて１つのディレクトリに結合する際には、まず、新たに、マウントポイント上のファイルを格納するためのディレクトリを作成し、そのディレクトリに、マウントポイント上のファイルをコピーする。その後、作成したディレクトリを、別のマウントポイント上にマウントし、その上に、更新ファイルを保存するためのディレクトリを重ねる。
【０２０７】
図１９は、ディレクトリをまとめる際の動作手順を示している。システム制御手段１０９は、要求生成手段１１０が層結合要求を発生すると、実行環境管理手段１０６にディレクトリ群の結合を依頼する。層結合要求には、結合対象となる実行環境名と、結合後に古い更新ファイル保存ディレクトリを消去するか否かの指定とが含まれる。実行環境管理手段１０６は、システム制御手段１０９からの層結合依頼を受けると、データベース１０７を参照して、結合対象の実行環境の最新版のマウントポイントを調べ、そのマウントポイント上のファイルを、新たに作成したディレクトリにコピーする（ステップＩ１）。このとき作成するディレクトリは、例えば、実行環境ディレクトリ１０２及びパッケージ保存ディレクトリ１０３（図４）とは別に、「／実行環境＋パッケージ／」を用意しておき、その下に作成する。
【０２０８】
実行環境管理手段１０６は、新たなマウントポイント、及び、更新ファイルを保存するためのディレクトリを作成する（ステップＩ２）。その後、作成したマウントポイントに、ステップＩ１でファイルをコピーしたディレクトリと、作成した更新ファイル保存ディレクトリとを重ねてマウントし、実行環境を構築し直す（ステップＩ３）。実行環境を構築し直すことで、実行環境の版が更新される。マウントポイントへのマウント後、層結合要求にて、古い更新ファイル保存ディレクトリの消去が指示されているときには、結合前のマウントポイント上にマウントされていた更新ファイル保存ディレクトリを消去する（ステップＩ４）。ステップＩ４で消去を行った場合には、記憶装置の空き容量を広げることはできるが、古い実行環境で実行することはできなくなる。
【０２０９】
図２０に、ディレクトリ群を１つにまとめる前後のマウントポイントの様子を示す。同図（ａ）は、ディレクトリ群を１つにまとめる前の状態を示しており、「マウントポイント４」の上に、パッケージＡの第１版、実行環境３の更新ファイルの第１版、パッケージＡの第１版と第２版の差分、及び、実行環境３の更新ファイルの第１版と第２版の差分が、この順でマウントされている。この場合、マウントポイント４から見ると、利用するパッケージＡは第２版として見え、実行環境３の版（更新ファイル保存ディレクトリの版）は第２版として見える。
【０２１０】
実行環境管理手段１０６は、新たなディレクトリを作成し、作成したディレクトリに、マウントポイント４から見えるファイルをコピーする。その際、層構造ディレクトリ管理手段１０５を用いて、マウントポイント４上に、図２０（ａ）に示す順序でディレクトリをマウントしていることにより、例えば、パッケージＡの第１版とパッケージＡの差分［第１版−第２版］とで、同じファイル名のファイルが存在したときには、マウントポイント４からはパッケージＡの差分［第１版−第２版］のみが見え、パッケージＡの差分［第１版−第２版］のファイルのみが、新たに作成されたディレクトリにコピーされることになる。
【０２１１】
マウントポイント４上にマウントされたディレクトリ群のコピー先ディレクトリを「パッケージＡ：第２版＋実行環境３：第２版」とすると、実行環境管理手段１０６は、図２０（ｂ）に示すように、このディレクトリを、新たなマウントポイントであるマウントポイント５の上にマウントする。実行環境管理手段１０６は、マウントポイント５の上に、更に、実行環境３の更新ファイル差分［第２版−第３版］をマウントし、実行環境３の第３版を作成する。図２０（ｂ）におけるディレクトリ「パッケージＡ：第２版＋実行環境３：第２版」は、図２０（ａ）に示すマウントポイント４の上にマウントされたディレクトリ群に対応しており、マウントポイント４とマウントポイント５とは、内容的に等価である。
【０２１２】
図１９に戻り、実行環境管理手段１０６は、マウントポイント上のディレクトリ群をまとめて１つのディレクトリにし、そのディレクトリを、更新ファイル保存ディレクトリと共に新たなマウントポイント上にマウントすると、データベース１０７の内容を更新する（ステップＩ５）。ステップＩ５では、データベース１０７のテーブル１４０２に、更新された実行環境の版に関する情報を格納する行を追加し、その行に、マウントポイントやマウント順に関する情報などを格納する。また、ステップＩ４で、古い更新ファイル保存ディレクトリを消去したときには、古い版の実行環境が利用できなくなることから、テーブル１４０２から、当該古い版の実行環境に対応する行を削除する。
【０２１３】
データベース１０７の更新では、テーブル１４０３に、結合したディレクトリ上に新たにマウントされた更新ファイル保存ディレクトリに関する情報を格納するための行を追加し、その行に、新たな更新ファイル保存ディレクトリに関する情報を登録する。このとき、実行環境の版は、版差分ではなく、単一の版（図２０の例では第２版）とする。また、新たな更新ファイル保存ディレクトリは、未バックアップ扱いとする。ステップＩ４で、古い更新ファイル保存ディレクトリを消去したときには、テーブル１４０３から、その消去したディレクトリに対応する版の行を削除する。
【０２１４】
本実施形態では、マウントポイント上にマウントされた複数のディレクトリを、適宜、一つのディレクトリにまとめる。このようにすることで、マウントポイント上にマウントされたディレクトリの数を減らすことができ、層構造ディレクトリ管理手段の処理負担が軽減され、実行速度を向上できるという効果が得られる。つまりは、マウントポイント上のディレクトリ数を減らすことで、ディレクトリ数が多いことによる性能低下を減らすことができる。
【０２１５】
また、同一マウントポイント上にマウントされた複数のディレクトリ間で、同じ名前のファイルが存在したときには、実際には最新の１ファイルのみが利用されることになるにもかかわらず、各ディレクトリで同名のファイルが保持されているが、これらディレクトリを一つにまとめることにより、保持するファイルが１つのみとなり、使用するディスク容量を削減することができる。その他の効果は、第１実施形態と同様である。
【０２１６】
続いて、端末及び各サーバをコンピュータプログラムで動作させる構成について説明する。図２１に、その構成を示す。端末Ａ１８０及び端末Ｂ１８１は、図１における端末１０１に相当する。端末Ａ１８０及び端末Ｂ１８１は、それぞれ、コンピュータＡ１８０１及びコンピュータＢ１８０３を有する。コンピュータＡ１８０１及びコンピュータＢ１８０３は、記録媒体１８０２及び１８０４に格納されたコンピュータプログラムに基づいて動作し、第１〜第３実施形態で説明した端末１０１の動作と同様な動作を実現する。
【０２１７】
実行環境サーバ１８２及びパッケージサーバ１８３は、それぞれコンピュータＣ１８０５及びコンピュータＤ１８０７を有する。コンピュータＣ１８０５及びコンピュータＤ１８０７は、記録媒体１８０６及び１８０８に格納されたコンピュータプログラムに基づいて動作し、第１〜第３実施形態で説明した実行環境サーバ１１１及びパッケージサーバ１１６の動作と同様な動作を実現する。
【０２１８】
なお、リストアについて、例えば、実行環境の第２版をリストアする際には、実行環境サーバ１１１から、更新ファイル保存ディレクトリの第１版と、差分［第１版−第２版］とを取得し、これらをマウントポイント上にマウントすることとしたが、リストアの仕方はこれには限定されない。例えば、実行環境サーバ１１１内で、層構造ディレクトリ管理手段１１３を用いて、更新ファイル保存ディレクトリの第１版と、差分［第１版−第２版］とを一時ディレクトリ上にマウントして、その一時ディレクトリの内容を端末１０１に送信し、端末１０１にて、受信した単一の版の更新ファイル保存ディレクトリ（第２版）をマウントポイント上にマウントする構成としてもよい。
【０２１９】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の端末管理システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【産業上の利用可能性】
【０２２０】
本発明は、携帯電話機や情報家電、カーナビゲーションシステム、店舗におけるPOS端末やKiosk端末のような端末群を管理する用途に適用できる。また、端末だけではなく、データセンターにおける複数のサーバ群を管理するといった用途にも適用可能である。
【図面の簡単な説明】
【０２２１】
【図１】本発明の第１実施形態の端末管理システムの構成を示すブロック図。
【図２】層構造ディレクトリ管理手段の機能を説明するための模式図。
【図３】ディレクトリ隔離手段の機能を説明するための模式図。
【図４】端末の記録装置におけるディレクトリ構造を示す図。
【図５】データベースが記憶するパッケージに関する情報の具体例を示す図。
【図６】データベースが記憶する実行環境に関する情報の具体例を示す図。
【図７】（ａ）は、バックアップ前における実行環境１におけるマウントの状態を示し、同図（ｂ）は、バックアップ後の実行環境１におけるマウントの状態を示す図。
【図８】実行環境２におけるディレクトリ層構造を示す図。
【図９】（ａ）及び（ｂ）は、パッケージの版を更新する前後の実行環境３のディレクトリ層構造を示す図。
【図１０】実行環境を作成する際の手順を示すフローチャート。
【図１１】プログラム実行の際の手順を示すフローチャート。
【図１２】サーバからパッケージをダウンロードする際の手順を示すフローチャート。
【図１３】インストールの際の実行環境管理手段の動作手順を示すフローチャート。
【図１４】更新通知登録の際の手順を示すフローチャート。
【図１５】パッケージ登録の際の手順を示すフローチャート。
【図１６】実行環境のバックアップの手順を示すフローチャート。
【図１７】実行環境のリストアの手順を示すフローチャート。
【図１８】本発明の第２実施形態における端末管理システム内での要求やデータの流れを示すブロック図。
【図１９】マウントポイント上のディレクトリをまとめる際の動作手順を示すフローチャート。
【図２０】（ａ）及び（ｂ）は、ディレクトリ群を１つにまとめる前後のマウントポイントの様子を示す図。
【図２１】コンピュータを用いた端末管理システムの構成を示すブロック図。
【符号の説明】
【０２２２】
１００：端末管理システム
１０１：端末
１０２、１１２：実行環境ディレクトリ
１０３、１１７：パッケージ保存ディレクトリ
１０４：ディレクトリ隔離手段
１０５、１１３、１１８：層構造ディレクトリ管理手段
１０６、１１５：実行環境管理手段
１０７、１１４、１１９：データベース
１０８、１２０：パッケージ管理手段
１０９：システム制御手段
１１０：要求生成手段
１１１：実行環境サーバ
１１６：パッケージサーバ
１３０１、１３０２、１４０１〜１４０３：テーブル
【図１】
2008165377.tif 000003
【図２】
2008165377.tif 000004
【図３】
2008165377.tif 000005
【図４】
2008165377.tif 000006
【図５】
2008165377.tif 000007
【図６】
2008165377.tif 000008
【図７】
2008165377.tif 000009
【図８】
2008165377.tif 000010
【図９】
2008165377.tif 000011
【図１０】
2008165377.tif 000012
【図１１】
2008165377.tif 000013
【図１２】
2008165377.tif 000014
【図１３】
2008165377.tif 000015
【図１４】
2008165377.tif 000016
【図１５】
2008165377.tif 000017
【図１６】
2008165377.tif 000018
【図１７】
2008165377.tif 000019
【図１８】
2008165377.tif 000020
【図１９】
2008165377.tif 000021
【図２０】
2008165377.tif 000022
【図２１】
2008165377.tif 000023