従来技術の第1の問題点は、複数のプログラムによって共有されるライブラリ等が存在し、それぞれのプログラムが別の版のライブラリを要求した場合に対応できないという点である。その理由は、従来の技術では、そのような状態でプログラムをインストールしようとした際には、環境に適合しない旨のエラーが発生するのみで対処されたためである。第2の問題点は、古い版のプログラムを利用できないという点である。その理由は、従来の技術では、古い版と新しい版との差分を用いて新しい版を構成するが、これにより、古い版が廃棄されるためである。
従来の技術では、プログラム自身が変更を行ったファイルと、プログラムの更新のために変更されたファイルとは、区別されていない。ファイルのバックアップでは、プログラムの更新のために変更されたファイルについては、再ダウンロードが可能であることから、本来、バックアップを行う必要なない。しかしながら、従来技術では、プログラムが変更を行ったファイルとプログラムの更新のために変更されたファイルとが区分されていないために、バックアップの必要のないプログラムの更新のために変更されたファイルについても、プログラムが変更を行ったファイルと同様にバックアップされており、効率よく端末内のファイルのバックアップができないという問題があった。
本発明は、上記従来技術の問題点を解消し、複数のプログラムから共有されるライブラリ等が存在した場合でも、それぞれのプログラムが別の版のライブラリを参照できる端末管理システム、方法、及び、プログラムを提供することを目的とする。
また、本発明の別の目的は、プログラムの版を更新した後でも、古い版のプログラムを使用可能な端末管理システム、方法、及び、プログラムを提供することを目的とする。
本発明の別の目的は、プログラム本体と、プログラムの実行に伴って更新されたファイルとを区分し、効率よくバックアップが実施できる端末管理システム、方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明の端末管理システムは、端末装置と、該端末装置のバックアップを保存するための実行環境サーバと、前記端末装置にパッケージの提供を行うパッケージサーバとを有する端末管理システムにおいて、前記端末装置が、パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、前記端末装置は、前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
本発明の端末管理システムでは、端末装置は、層構造ディレクトリ管理手段を用いて、ディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する。ここで、パッケージとは、プログラムを実行するのに必要な複数のファイル、或いは、他のパッケージの実行に用いられるライブラリ群をまとめたものであり、版間の差分とは、以前の版に対して変更が加えられたファイル群(追加、削除を含む)である。例えば、元となる版を第1版とし、版間の差分として、差分[第1版−第2版]、差分[第2版−第3版]を有しているとする。この場合、端末装置は、第1版と差分[第1版−第2版]と差分[第2版−第3版]とでパッケージの第3版を構成し、第1版と差分[第1版−第2版]とでパッケージの第2版を構成する。このように、目的の版のパッケージを、層構造ディレクトリ管理手段を用いて元となる版及び版間の差分で構成することで、最新版のパッケージを利用しつつも、古い版のパッケージを利用することが可能となる。また、例えばあるパッケージのプログラムが、他のパッケージの特定の版のライブラリを利用するような場合には、層構造ディレクトリ管理手段を用いてその特定の版のパッケージを構成することで、各プログラムがそれぞれ異なる版のパッケージにおけるライブラリを参照することができる。
本発明の端末管理システムでは、前記端末装置は、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用することができる。あるディレクトリ上に、複数のディレクトリを層構造を持ちながらマウントする機能を有するファイルシステムとしては、例えばUnionFSが知られている。このようなファイルシステムを実現する層構造ディレクトリ管理手段を用いて、例えばマウントポイント上に、パッケージの第1版と差分[第1版−第2版]とをマウントすることで、マウントポイントからは、パッケージの第2版として見え、パッケージの元となる版及び版間の差分から、目的の版のパッケージを構成できる。
本発明の端末管理システムでは、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える構成を採用できる。パッケージは、プログラム動作によって変更されるものではなく、リストアしようとする際にはパッケージサーバから再取得が可能である。一方、プログラム実行によって作成・更新されるファイルは、他から取得することはできないので、リストアに備えてバックアップが必要である。更新ファイルを保存するためのディレクトリを、パッケージを保存するディレクトリと分離することで、バックアップの際には、更新ファイル保存ディレクトリをバックアップすればよく、効率のよいバックアップを実現できる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。層構造ディレクトリ管理手段を用い、構成された実行環境で作成・更新されたファイルが、更新ファイル保存ディレクトリに保存されるようにディレクトリをマウントすることで、バックアップが必要なディレクトリ(更新ファイル保存ディレクトリ)と、バックアップの必要がないディレクトリ(パッケージの元となる版及び版間の差分を保存するディレクトリ)とを分離することができ、バックアップの効率化を図ることができる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用することができる。この場合、インストールプログラムを、当該実行環境に対応するマウントポイントに隔離することで、インストールプログラムからは、マウントポイント以下のディレクトリのみが見えるようになり、インストールプログラムの実行に伴って作成・更新されるファイルは更新ファイル保存ディレクトリに保存されることになるので、当該実行環境を構成するパッケージの元となる版及び版間の差分を保存するディレクトリは改変されず、複数の実行環境間で、安全にパッケージを共有できる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用することができる。この場合、データベースを参照することで、どのような実行環境が存在するかや、実行環境とマウントポイントとの対応関係、或いは、マウントポイントへのマウント順などの情報を取得することができる。
本発明の端末管理システムでは、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。この場合、前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを前記実行環境サーバに送信する構成を採用できる。
本発明の端末管理システムでは、前記実行環境サーバは、前記端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する構成を採用できる。また、前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用することができる。更新ファイル保存ディレクトリのバックアップ後に、あらたな更新ファイル保存ディレクトリをマウントすることで、バックアップ後に作成・更新されたファイルは、新たな更新ファイル保存ディレクトリに保存されることになる。従って、次回バックアップ時には、その新たな更新ファイル保存ディレクトリをバックアップすればよく、バックアップ対象のファイル数を減らすことができる。
本発明の端末管理システムでは、前記実行環境サーバは、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する構成を採用できる。端末装置は、例えば実行環境を構成しなおす際に、リストア要求を実行環境サーバに送信して、実行環境にマウントされていた更新ファイル保存ディレクトリの送信を要求する。実行環境サーバは、この要求に応答して、要求された更新ファイル保存ディレクトリのバックアップを、端末装置に送信する。このようにすることで、端末装置において、実行環境の再構成が可能となる。
本発明の端末管理システムでは、前記端末装置が、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。この場合、端末装置が、他の端末装置に対して実行環境サーバのプロキシとして動作することで、バックアップ要求を発生する他の端末装置は、直接に実行環境サーバにアクセスできない状況でも、実行環境のバックアップを行うことができる。また、バックアップ要求を、プロキシとなる端末装置を経由することで、実行環境サーバにアクセスが集中することを防ぐことができる。
本発明の端末管理システムでは、前記プロキシとして動作する端末装置は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する構成を採用できる。この場合、プロキシとして動作する端末装置が、実行環境サーバに代わって、バックアップされた更新ファイル保存ディレクトリの内容をリストア要求を発生した端末装置に送信することで、実行環境サーバの処理負担を軽減することができる。なお、バックアップ時とリストア時とで、プロキシとして動作する端末装置が異なるときには、当該プロキシとして動作する端末装置内にはバックアップが保存されていないことになる。そのような場合には、プロキシとして動作する端末装置は、実行環境サーバにリストア要求を転送し、実行環境サーバを用いてリストアを行わせればよい。
本発明の端末管理システムでは、前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。この場合、ディレクトリ隔離手段により、プログラム実行を実行環境ごとに隔離することで、各実行環境から、他の実行環境を構成するディレクトリが見えなくなる。このため、パッケージの任意の版を他の実行環境と共有しつつも、独自のものとして利用できる。
本発明の端末管理システムでは、前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。この場合、元の実行環境においてマウントされていたディレクトリと、新しいパッケージの版に対応した版差分を保存するディレクトリと、新たに作成した更新ファイル保存ディレクトリとを、新たなマウントポイントにマウントすることで、新たな版のパッケージを利用する実行環境を構成できる。また、元のマウントポイントを利用することで、古い版の状態でパッケージを利用することができる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を1つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。マウントポイント上に、多数のディレクトリをマウントすると、マウントディレクトリ数の増加によって、性能低下が発生することが考えられる。実行環境管理手段により、マウントポイントから見えるディレクトリの内容を、1つのディレクトリにまとめることにより、多数のディレクトリをマウントすることによる性能低下を回避することができる。
本発明の端末管理システムでは、前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用することができる。
本発明の端末管理システムでは、前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している構成を採用できる。パッケージサーバは、端末装置に対して、要求された版のパッケージを提供する必要があるため、パッケージを、初版(第1版)、及び、第1版から第2版、第2版から第3版のように隣接する2つの版間の差分の形で保存しておく。このようにすることで、端末装置に対し、要求された版のパッケージを提供できる。
本発明の端末管理システムでは、前記端末装置は、端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用することができる。例えば、パッケージの第3版が必要なときに、端末装置内に、パッケージの第1版、版差分[第1版−第2版]、及び、版差分[第2版−第3版]が存在するときには、端末装置内に保存されたパッケージで第3版が構成できるので、ダウンロードは必要ない。これに対し、端末装置内に、パッケージの第1版及び版差分[第1版−第2版]が存在するときには、端末装置内のパッケージでは目的とする第3版は構成できないので、版差分[第2版−第3版]をパッケージサーバからダウンロードする。また、端末装置内に当該パッケージが全く保存されていないときには、パッケージサーバに対して、目的とする第3版のダウンロードを要求すればよい。
本発明の端末管理システムでは、前記パッケージサーバは、前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する構成を採用できる。パッケージサーバは、例えば端末装置から、版差分[第1版−第3版]を要求されたときには、層構造ディレクトリ管理手段を用いて、版差分[第1版−第2版]及び版差分[第2版−第3版]をマウントポイント上にマウントする。このマウントポイントを見ると、それは版差分[第1版−第3版]に対応しているので、これを端末装置に対して送信すればよい。
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する構成を採用することができる。端末装置は、例えば、パッケージサーバから、パッケージの第3版を受信したときには、その第3版を、元となる版のパッケージとして記憶装置内に新規登録する。また、パッケージサーバから、版差分[第2版−第3版]を受信したときには、その版差分[第2版−第3版]を、新たな版差分として記憶装置内に新規登録する。このようにすることで、新規登録したパッケージの版又は版差分が、端末装置内で利用可能となる。
本発明の端末管理システムでは、前記端末装置が、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する構成を採用することができる。この場合、端末装置が、他の端末装置に対して、パッケージサーバのプロキシとして動作することで、パッケージのダウンロードを必要とする他の端末装置は、直接にパッケージサーバにアクセスできない状況でも、必要なパッケージを取得することができる。また、プロキシとして動作する端末装置が提供可能なパッケージについては、そのプロキシによってパッケージ提供を行うことで、パッケージサーバの処理負担を軽減することができる。
本発明の端末管理システムでは、前記プロキシとして動作する端末装置は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。プロキシとして動作する端末装置は、すべてのパッケージについて、初版及び各版間の差分を有しているとは限らず、端末装置が有するパッケージでは、要求された版又は版差分が構成できない場合がある。そのような場合には、パッケージサーバにダウンロード要求を転送し、パッケージサーバからダウンロードさせればよい。
本発明の端末管理システムでは、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。この場合、前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。この場合、消去を指示されたパッケージについて、当該パッケージを保存するディレクトリが、何れかの実行環境において利用されているか否かを調べ、利用されていないことを確認した上で消去を実行することで、実際には利用されているパッケージを誤って消去する事態を避けることができる。
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う構成を採用できる。サーバ側で、新たに提供可能なパッケージの登録があった際に、その旨が端末装置に対して送信されるようにしておくことで、端末装置側は、サーバ側で新たに提供可能となったパッケージの存在を知ることができる。通知を受け取った際に実行する内容については、例えば、新たに提供可能となったパッケージのダウンロードやインストールを行うといった動作が考えられる。
本発明の端末管理システムでは、前記パッケージサーバは、前記端末装置から通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する構成を採用できる。
本発明の端末管理システムでは、前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。例えば、事前に、利用予定があるパッケージについて、新たな版(版差分)が提供可能となったときに通知を要する旨を登録しておき、その通知を受け取った際に実行する内容として、提供可能となった版差分のダウンロード及びインストールを登録しておく。パッケージサーバからの通知を受け取ったときに、ダウンロード及びインストールを実行することで、そのパッケージについて、最新版のパッケージを用いた実行要求が発生した際に、パッケージサーバから最新版のパッケージをダウンロードする必要がなくなり、すばやくパッケージを利用することができる。
本発明の端末装置は、パッケージの複数の版を、元となる版、及び、版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段と、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段とを備え、前記層構造ディレクトリ管理手段を用いて、前記記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
本発明の端末装置は、前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
本発明の端末装置は、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する実行環境管理手段を更に備える構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用できる。
本発明の端末装置では、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを端末装置内の実行環境のバックアップを保存する実行環境サーバに送信する構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記更新ファイル保存ディレクトリを前記実行環境サーバに送信した後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
本発明の端末装置は、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作する端末装置の実行環境管理手段は、バックアップ元の端末装置から更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。
本発明の端末装置では、前記プロキシとして動作する端末装置の実行環境管理手段は、他の端末装置からのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元の端末装置に向けて送信する構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を1つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。
本発明の端末装置では、前記実行環境管理手段は、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記結合後の内容を記憶するためのディレクトリを前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用できる。
本発明の端末装置は、端末装置内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末装置内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、前記端末装置に対してパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用できる。
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバから、前記必要な版又は版差分を受信し記憶装置内に記憶する構成を採用できる。
本発明の端末装置は、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求元の端末装置からダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元の端末装置に送信する構成を採用できる。
本発明の端末装置では、前記プロキシとして動作する端末装置のパッケージ管理手段は、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元の端末装置から受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。
本発明の端末装置では、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
本発明の端末装置では、前記パッケージ管理手段は、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記端末装置で実行する内容の登録を行う構成を採用できる。
本発明の端末装置では、前記パッケージ管理手段は、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。
本発明の実行環境サーバは、パッケージと、プログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置から、前記プログラム実行によって更新されるファイルを保存するディレクトリの内容を受信し、記憶装置内に記憶する実行環境管理手段を備えることを特徴とする。
本発明の実行環境サーバでは、前記実行環境管理手段は、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
本発明の実行環境サーバは、前記実行環境管理手段は、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する構成を採用できる。
本発明のパッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し管理するパッケージ管理手段を備えることを特徴とする。
本発明のパッケージサーバでは、前記パッケージ管理手段は、端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する構成を採用できる。
本発明のパッケージサーバでは、前記パッケージ管理手段は、前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する構成を採用できる。
本発明の端末管理方法は、パッケージを利用するコンピュータを管理する端末管理方法であって、前記コンピュータが、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成することを特徴とする。
本発明の端末管理方法では、前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記構成された目的の版のパッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記実行環境を構成すると、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する構成を採用できる。
本発明の端末管理方法では、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、実行環境のバックアップ要求を受けると、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する構成を採用できる。
本発明の端末管理方法では、前記実行環境サーバは、前記更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶する構成を採用できる。
本発明の端末管理方法では、前記実行環境サーバは、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶すると、前記実行環境サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
本発明の端末管理方法では、前記実行環境サーバは、前記コンピュータから、バックアップされた実行環境のリストア要求を受けると、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記コンピュータに向けて送信する構成を採用できる。
本発明の端末管理方法では、前記コンピュータが、前記実行環境サーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する構成を採用できる。
本発明の端末管理方法では、前記プロキシとして動作するコンピュータは、他のコンピュータからのリストア要求を受け取ると、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、ディレクトリ隔離手段を用いて、プログラムを実行する環境を前記実行環境ごとに隔離する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際には、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を1つにまとめる旨の層結合要求を受けると、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記層結合要求を受けると、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする構成を採用できる。
本発明の端末管理方法では、前記パッケージサーバは、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存している構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、前記パッケージサーバに対して、必要な版又は版差分のダウンロードを要求する構成を採用できる。
本発明の端末管理方法では、前記パッケージサーバは、前記コンピュータからダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記コンピュータから要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記コンピュータに送信する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバから送信された前記マウントポイントディレクトリの内容を受信すると、該受信した内容を新たな版又は版差分として記憶装置内に記憶する構成を採用できる。
本発明の端末管理方法では、前記コンピュータが、前記パッケージサーバのプロキシとして動作し、該プロキシとして動作するコンピュータは、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する構成を採用できる。
本発明の端末管理方法では、前記プロキシとして動作するコンピュータは、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する構成を採用できる。
本発明の端末管理方法では、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバに、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う構成を採用できる。
本発明の端末管理方法では、前記パッケージサーバは、前記コンピュータから通知を要する旨を受け取ると、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記コンピュータに送信する構成を採用できる。
本発明の端末管理方法では、前記コンピュータは、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記登録された実行すべき内容を実行する構成を採用できる。
本発明のプログラムは、コンピュータに、端末管理のための処理を実行させるプログラムであって、前記コンピュータに、複数のディレクトリを、マウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、記憶装置内にディレクトリを分けて保存されたパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する処理を実行させることを特徴とする。
本発明のプログラムは、前記目的の版のパッケージの構成では、前記層構造ディレクトリ管理手段を用いて、特定のディレクトリ上に、前記パッケージの元となる版及び版間の差分をマウントし、前記目的の版のパッケージを構成する構成を採用できる。
本発明のプログラムは、前記コンピュータに、前記構成された目的の版のパッケージと、パッケージのプログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとにより実行環境を構成する処理を実行させる構成を採用できる。
本発明のプログラムは、前記実行環境の構成では、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリに、前記パッケージの元となる版及び版間の差分をマウントして目的の版のパッケージを構成し、該構成した目的の版のパッケージの上に前記更新ファイル保存ディレクトリを重ねてマウントして前記実行環境を構成する構成を採用できる。
本発明のプログラムは、前記コンピュータに、前記実行環境の構成後、ディレクトリ隔離手段を用いて、マウントポイントとなるディレクトリを当該実行環境に隔離し、前記目的の版のパッケージのインストールプログラムを実行する処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータに、前記実行環境の構成後、当該実行環境に対応するマウントポイント及びマウントポイントへのディレクトリのマウント順に関する情報と、当該実行環境に対応する更新ファイル保存ディレクトリに関する情報とを含む実行環境情報を、データベースに記憶する処理を実行させる構成を採用できる。
本発明のプログラムでは、前記更新ファイル保存ディレクトリに関する情報が、前記更新ファイル保存ディレクトリがバックアップ済みであるか否かを示す情報を含む構成を採用できる。
本発明のプログラムは、実行環境のバックアップ要求を受けると、前記コンピュータに、前記実行環境情報を参照して、前記更新ファイル保存ディレクトリのうちの未バックアップの更新ファイル保存ディレクトリを抽出し、該抽出した更新ファイル保存ディレクトリを、実行環境のバックアップを保存するための実行環境サーバに送信する処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータに、前記更新ファイル保存ディレクトリのバックアップ後、前記層構造ディレクトリ管理手段を用いて、当該実行環境に対応するマウントポイント上に新たな更新ファイル保存ディレクトリをマウントする処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータを、前記実行環境サーバのプロキシとして動作させ、バックアップ元のコンピュータから更新ファイル保存ディレクトリを受信すると、該プロキシとして動作するコンピュータに、該受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶し、前記データベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含む他端末実行環境情報を記憶すると共に、前記実行環境サーバに、前記受信した更新ファイル保存ディレクトリの内容を転送する処理を実行させる構成を採用できる。
本発明のプログラムは、他のコンピュータからのリストア要求を受け取ると、前記プロキシとして動作するコンピュータに、前記他端末実行環境情報を参照して、前記記憶装置からリストア対象の更新ファイル保存ディレクトリの内容を記憶するディレクトリを抽出し、該抽出したディレクトリの内容を前記リストア要求発行元のコンピュータに向けて送信する処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータに、ディレクトリ隔離手段を用いて、パッケージのプログラムを実行する環境を前記実行環境ごとに隔離する処理を実行させる構成を採用できる。
本発明のプログラムは、前記実行環境で利用しているパッケージの版を、現在利用しているパッケージの版よりも新しい版に更新する際に、前記コンピュータに、新たなマウントポイントとなるディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントディレクトリ上にマウントされているディレクトリを調べ、前記層構造ディレクトリ管理手段を用いて、前記作成したディレクトリ上に、当該実行環境に対応するマウントポイント上にマウントされているディレクトリと、更に前記新しい版に対応した版差分及び新たな更新ファイル保存ディレクトリをマウントする処理を実行させる構成を採用できる。
本発明のプログラムは、前記実行環境について、マウントポイント上にマウントされたディレクトリ群を1つにまとめる旨の層結合要求を受けると、前記コンピュータに、結合後の内容を記憶するためのディレクトリを作成し、前記実行環境情報を参照して当該実行環境に対応するマウントポイントを特定し、該特定したマウントポイントから見たディレクトリの内容を前記作成したディレクトリにコピーする処理を実行させる構成を採用できる。
本発明のプログラムは、前記層結合要求を受けると、前記コンピュータに、新たなマウントポイントとなるディレクトリ及び更新ファイル保存ディレクトリを作成し、前記層構造ディレクトリ管理手段を用いて、前記特定したマウントポイントから見たディレクトリの内容をコピーしたディレクトリと、前記作成した新たな更新ファイル保存ディレクトリとを、前記作成した新たなマウントポイントとなるディレクトリ上にマウントする処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータに、端末内の記憶装置に記憶されたパッケージの版又は版差分に関する情報を含むパッケージ情報を記憶するデータベースを参照して、目的の版のパッケージが端末内の版又は版差分を用いて構成できるか否かを判断し、構成できないと判断すると、端末にパッケージの提供を行うパッケージサーバに対して、必要な版又は版差分のダウンロードを要求する処理を実行させる構成を採用できる。
本発明のプログラムは、前記パッケージサーバから送信されたパッケージを受信すると、前記コンピュータに、該受信したパッケージを新たな版又は版差分として記憶装置内に記憶する構成を採用できる。
本発明のプログラムは、前記コンピュータを、前記パッケージサーバのプロキシとして動作させ、前記ダウンロード要求元のコンピュータからダウンロード要求を受けると、前記プロキシとして動作するコンピュータに、前記パッケージ情報を参照して、ダウンロード要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、前記層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記ダウンロード要求元のコンピュータに送信する処理を実行させる構成を採用できる。
本発明のプログラムは、前記プロキシとして動作するコンピュータに、前記ダウンロード要求された版又は版差分を構成するために必要なディレクトリが抽出できないときには、前記ダウンロード要求元のコンピュータから受け取ったダウンロード要求を、前記パッケージサーバに転送する処理を実行させる構成を採用できる。
本発明のプログラムでは、前記パッケージの版又は版差分に関する情報が、当該版又は版差分に対応するディレクトリが前記実行環境で利用されているか否かを示す情報を含む構成を採用できる。
本発明のプログラムは、記憶装置からパッケージの元となる版又は版差分を保存するディレクトリの消去を指示されると、前記コンピュータに、前記パッケージ情報を参照して当該ディレクトリが使用中であるか否かを調べ、使用中でないときには、消去対象のディレクトリを記憶装置から消去する処理を実行させる構成を採用できる。
本発明のプログラムは、前記コンピュータに、前記パッケージサーバに対して、サーバ側で新たに提供可能となったパッケージ登録があった際に通知を要する旨を送信すると共に、該通知を受け取った際に前記コンピュータで実行する内容の登録を行う処理を実行させる構成を採用できる。
本発明のプログラムは、前記パッケージサーバから新たなパッケージの版又は版差分が提供可能となった旨を受信すると、前記コンピュータに、前記登録された実行すべき内容を実行する処理を実行させる構成を採用できる。
本発明のサーバ用プログラムは、コンピュータを、パッケージと、パッケージのプログラムの実行によって更新されるファイルとをディレクトリを分けて実行環境を構成する端末装置における更新ファイル保存ディレクトリのバックアップを記憶する実行環境サーバとして動作させるプログラムであって、コンピュータに、前記端末装置から、前記更新ファイル保存ディレクトリの内容を受信し、記憶装置内に記憶する処理を実行させることを特徴とする。
本発明のサーバ用プログラムは、前記コンピュータに、前記受信した更新ファイル保存ディレクトリの内容を記憶装置内に記憶した後に、サーバ内のデータベースに、当該更新ファイル保存ディレクトリの内容を記憶したディレクトリに関する情報を含むサーバ内実行環境情報を記憶する処理を実行させる構成を採用できる。
本発明のサーバ用プログラムは、前記端末装置から、バックアップされた実行環境のリストア要求を受けると、前記コンピュータに、前記サーバ内実行環境情報を参照して、リストア対象の更新ファイル保存ディレクトリの内容を保存するディレクトリを抽出し、該抽出したディレクトリの内容を、前記端末装置に向けて送信する処理を実行させる構成を採用できる。
本発明のサーバ用プログラムは、コンピュータを、パッケージの複数の版を、パッケージの初版、及び、各版間の差分でディレクトリを分けて記憶装置内に保存し、端末装置に対してパッケージの提供を行うパッケージサーバとして動作させるプログラムであって、前記コンピュータに、前記端末装置からダウンロード要求を受けると、各パッケージの版及び版差分を保存するディレクトリを特定するための情報を含むサーバ内パッケージ情報を記憶するデータベースを参照して、前記端末装置から要求された版又は版差分を構成するために必要なディレクトリを抽出し、該抽出したディレクトリを、複数のディレクトリをマウントポイントとなるディレクトリに層構造を持ちながらマウントする機能を有する層構造ディレクトリ管理手段を用いて、マウントポイントとなるディレクトリ上にマウントし、該マウントポイントディレクトリの内容を、前記端末装置に送信する処理を実行させることを特徴とする。
本発明のサーバ用プログラムは、前記端末装置からサーバ側で新たに提供可能なパッケージの版又は版差分があったときに通知を要する旨を受け取ると、前記コンピュータに、該通知を要する旨を記憶し、前記記憶装置に、新たに提供可能となったパッケージの版又は版差分が登録されると、新たなパッケージの版又は版差分が提供可能となった旨を、前記端末装置に送信する処理を実行させる構成を採用できる。
本発明の端末管理システム、方法、及び、プログラムでは、パッケージを、元となる版及び版間の差分の形でディレクトリを分けて保存し、パッケージの利用に際しては、層構造ディレクトリ管理手段を用いてパッケージの元となる版及び版間の差分から目的の版のパッケージを構成する。このようにすることで、最新版のパッケージを利用しつつも、古い版のパッケージを利用できる。また、例えばあるパッケージのプログラムが、他のパッケージの特定の版のライブラリを利用するような場合には、層構造ディレクトリ管理手段を用いてその特定の版のパッケージを構成することで、各プログラムがそれぞれ異なる版のパッケージにおけるライブラリを参照することができる。
本発明の端末管理システム、方法、及び、プログラムでは、パッケージと、プログラムの実行に伴って作成・更新されるファイルを保存するための更新ファイル保存ディレクトリとを区分して実行環境を構成する構成を採用する場合には、プログラムの本体部分と、プログラム動作によって変更が生じた部分とを分離することができる。この場合、バックアップの際には、更新ファイル保存ディレクトリをバックアップすればよく、効率のよいバックアップを実現できる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態の端末管理システムの構成を示している。端末管理システム100は、端末101と、実行環境サーバ111と、パッケージサーバ116とを有する。パッケージサーバ116には、端末でプログラムを実行するのに必要な複数のファイル、或いは、他のパッケージの実行に用いられるライブラリ群をまとめたもの(以下、パッケージと呼ぶ)が保存される。実行環境サーバ111には、端末におけるプログラムの動作によって更新されたファイルのバックアップが保存される。実行環境サーバ111と、パッケージサーバ116とは、別個のサーバとして構成することができる。或いは、同一サーバ内に、実行環境サーバ111の機能と、パッケージサーバ116の機能とを実現してもよい。
端末101は、プログラム動作により各種処理を実行するコンピュータシステムとして構成される。図1では、端末101を1台だけ図示しているが、端末管理システム100は、複数の端末101を有していてもよい。端末101は、ディレクトリ隔離手段104、層構造ディレクトリ管理手段105、実行環境管理手段106、データベース107、パッケージ管理手段108、システム制御手段109、及び、要求生成手段110を有する。また、ハードディスク等の記憶装置内に、実行環境ディレクトリ102及びパッケージ保存ディレクトリ103を有する。
要求生成手段110は、ユーザ要求などに従って、各種要求を発生する。要求生成手段110が発生する要求としては、例えば、プログラムの実行要求、実行環境の作成要求、実行環境のバックアップ要求、実行環境のリストア要求などが考えられる。システム制御手段109は、端末101の各部の動作を統括する。システム制御手段109は、要求生成手段110が発生した要求に従って、実行環境管理手段106及びパッケージ管理手段108などを用いて、各種処理を実行する。層構造ディレクトリ管理手段105は、複数のディレクトリを、あるディレクトリ上に、層構造を持ちながらマウントする機能を提供する。ディレクトリ隔離手段104は、実行するプログラムごとに、ディレクトリを隔離する機能を提供する。
層構造ディレクトリ管理手段105について、図2を参照して説明する。層構造ディレクトリ管理手段105を利用できるファイルシステムでは、複数のディレクトリを、あるディレクトリに、層構造を持ちながらマウントすることができる。図2では、ファイル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が知られている。
次に、ディレクトリ隔離手段104について、図3を用いて説明する。図3は、/DirAというディレクトリと、/DirBというディレクトリとに、それぞれfoo、barというファイルが存在する様子を表している。この場合、プロセスAを/DirAに隔離すると、当該プロセスAからは、/DirA/fooが/fooに見え、/DirA/barが/barに見える。同様に、プロセスBを/DirBに隔離すると、当該プロセスBからは、/DirB/fooが/fooに見え、/DirB/barが/barに見える。この状態では、プロセスAからは、/DirBを見ることはできず、プロセスBからは/DirAを見ることはできない。このような手段は、Unix(登録商標)系OSでは、chrootというシステムコールやコマンドとして一般に利用することができる。また、一部のOSでは、chrootを拡張したjail等の機能としても実現されている。
実行環境ディレクトリ102は、プログラムごとに動作環境を隔離するためのマウントポイント、及び、プログラムの動作によって更新されたファイルを保存するためのディレクトリを有する。パッケージ保存ディレクトリ103は、複数の種類及び版のパッケージを保存するためのディレクトリを有する。パッケージの各版は、元となる版のパッケージ、及び、版間の差分によって提供されており、パッケージ保存ディレクトリ103には、元となる版及び版間の差分が、ディレクトリを分けて保存される。版間の差分とは、以前の版に対して変更が加えられたファイル群(追加、削除を含む)である。パッケージの利用に際しては、層構造ディレクトリ管理手段105を用いて、元となる版に、必要な版差分を重ねることで、所望の版のパッケージが構成される。
実行環境管理手段106は、実行環境の作成、バックアップ、リストア等を行う。実行環境の作成は、層構造ディレクトリ管理手段105を用いて、実行環境ディレクトリ102のマウントポイントに、パッケージ保存ディレクトリ103に保存された版又は版差分のうちで、実行環境において利用するパッケージと、更新ファイルを保存するためのディレクトリとをマウントすることで行う。実行環境のバックアップ、リストアの際には、更新ファイルを保存するディレクトリを、バックアップ、リストアの対象とする。パッケージ管理手段108は、パッケージのダウンロードなどを行う。ダウンロードの際には、パッケージサーバ116から必要なパッケージの版又は版差分を取得し、パッケージ保存ディレクトリに、取得したパッケージの版又は版差分を保存する。
図4は、端末101の記録装置におけるディレクトリ構造を示す。この例では、ルートディレクトリ「/」の下に、「マウントポイント」、「更新ファイル」、「パッケージ保存ディレクトリ」があり、「マウントポイント」の下には、「1」、「2」がある。また、「更新ファイル」の下には、「実行環境1」、「実行環境2」があり、さらにその下には、それぞれ「第1版」がある。「パッケージ保存ディレクトリ」の下には、「パッケージA」、「パッケージB」、「パッケージC」があり、その下には、「第1版」等がある。同図における「/マウントポイント」及び「/更新ファイル」ディレクトリが、実行環境ディレクトリ102に対応し、「/パッケージス保存ディレクトリ」が、パッケージ保存ディレクトリ103に対応する。
実行環境管理手段106は、層構造ディレクトリ管理手段105を用いて、例えば、図4における「/パッケージ保存ディレクトリ/パッケージA/第1版」、「/パッケージ保存ディレクトリ/パッケージA/差分[第1版−第2版]」、「/パッケージ保存ディレクトリ/パッケージB/第1版」、「/更新ファイル/実行環境1/第1版」を、この順で「/マウントポイント/1」にマウントする。これにより、実行環境1(第1版)が作成される。実行環境1において、パッケージAとパッケージBとの2種類が並存するのは、例えば、パッケージBが、パッケージAの提供するライブラリを利用するためパッケージAに依存しているなどのためである。マウントの際には、プログラムの実行により更新されるファイルを保存するディレクトリである「/更新ファイル/実行環境1/第1版」を最上位にマウントする。このようにマウントすることで、実行環境1(第1版)で更新されたファイルは「/更新ファイル/実行環境1/第1版」に保存されることになり、端末101での更新は、パッケージ保存ディレクトリ103に保存されたファイルに対して影響を与えない。
プログラム実行時には、ディレクトリ隔離手段104を用い、プログラムの実行を「/マウントポイント/1」に隔離する。このようにすることで、プログラムから、他のディレクトリが見えなくなり、セキュリティが向上する。また、プログラムが利用するファイルが存在するパスを自由に設定できる。すなわち、例えば「/パッケージ保存ディレクトリ/パッケージA/差分[第1版−第2版]/lib/libfoo.so」というファイルに対して、当該実行環境で動作するプログラムからは、「/lib/libfoo.so」というファイルとしてアクセスすることができる。他のプログラムがアクセスする「/lib」ディレクトリとは別のものであるため、ファイル名が重なることを考慮せず、自由に「/lib」ディレクトリを利用することができる。
データベース107は、端末101内のパッケージ保存ディレクトリに保存されたパッケージについての情報、及び、実行環境ディレクトリ102における実行環境についての情報を記憶する。図5は、データベース107が記憶するパッケージに関する情報の具体例を示している。同図に示すテーブル1301は、端末101が保持するパッケージ名と、そのパッケージに関する情報を保持するテーブルとの対応関係を記憶する。パッケージ名の構成法は任意であるが、例えばURLをパッケージ名として利用することができる。その場合には、パッケージ名を一意のIDとして使える上、パッケージサーバの名前をパッケージ名に含めることができる。
テーブル1302は、パッケージごとに作成され、パッケージに関する情報を記憶する。図5に示すテーブル1302は、パッケージAに対応しており、パッケージAの版番号又は差分の版番号と、パッケージが存在するディレクトリと、パッケージの利用状態とを記憶している。テーブル1301を参照することで、端末101にどのパッケージが存在するかを知ることができる。また、テーブル1302を参照することで、端末101に存在する各パッケージについて、現在の最新版は第何版か、パッケージを構成するディレクトリが使用中であるか否か、或いは、各版のファイルをどのように構成すればよいかなどを知ることができる。
図6は、データベース107が記憶する実行環境についての情報を示している。同図に示すテーブル1401は、実行環境名と、その実行環境内で用いるパッケージ名と、実行環境に関する情報を保持するテーブルと、更新ファイル保存ディレクトリに関する情報を保持するテーブルとの対応関係を記憶する。実行環境名には、パッケージ名と同様に、URLを利用することができ、そのようにすることで、実行環境名に実行環境サーバの名前を含めることができる。テーブル1402は、実行環境ごとに作成され、実行環境に関する情報を記憶する。図6に示すテーブル1402は、実行環境3に対応しており、実行環境の版番号と、その版の実行環境を利用できるマウントポイントと、その版におけるパッケージの版の情報と、マウントポイントでのマウント順の情報とを記憶する。
テーブル1403は、実行環境における更新ファイルディディレクトリに関する情報を記憶する。図6に示すテーブル1403は、実行環境3における更新ファイル保存ディレクトリに対応しており、更新ファイルの版番号、ディレクトリ名、及び、バックアップされたか否かを示す情報を記憶する。テーブル1401を参照することで、どのような実行環境が存在し、その実行環境においてどのような種類のパッケージが利用されているかを知ることができる。また、テーブル1402を参照することで、実行環境の最新の版は第何版か、実行環境がどのマウントポイントにマウントされているかを知ることができ、テーブル1403を参照することで、更新ファイル保存ディレクトリのバックアップ状況を知ることができる。なお、データベース107は、必要な情報を記憶していればよく、情報の記録形式は、上記したテーブル1301、1302、及び、テーブル1401〜1403には限定されない。
図1に戻り、実行環境サーバ111は、実行環境ディレクトリ112、層構造ディレクトリ管理手段113、データベース114、及び、実行環境管理手段115を有する。層構造ディレクトリ管理手段113は、端末101における層構造ディレクトリ管理手段105と同様な機能、すなわち、ディレクトリを、あるディレクトリ上に、層構造を持ちながらマウントする機能を提供する。実行環境ディレクトリ112は、端末101における実行環境ディレクトリ102のバックアップを保存する。バックアップでは、実行環境ディレクトリ102のうちの更新ファイル保存ディレクトリ(図4の[/更新ファイル]配下のディレクトリ)をバックアップする。バックアップにより、実行環境サーバ111の実行環境ディレクトリ112には、端末101内の更新ファイルディレクトリの配下のディレクトリが保存されることになる。
データベース114は、端末101のデータベース107が記憶する実行環境に関する情報(図6)と同等な情報を記憶する。すなわち、システム内に存在する実行環境に関する情報(テーブル1401に相当)と、各実行環境の構成内容に関する情報(テーブル1402に相当)と、更新ファイル保存ディレクトリに関する情報(テーブル1403に相当)とを記憶する。実行環境管理手段115は、端末101側から、実行環境のバックアップの依頼を受けて、実行環境ディレクトリ112に、端末101内の実行環境ディレクトリ102における更新ファイル保存ディレクトリを、実行環境ディレクトリ112に保存する。また、端末101から、リストアの依頼を受けると、実行環境ディレクトリ112にバックアップされた更新ファイル保存ディレクトリの内容を、端末101に送信し、データ復元を行わせる。
パッケージサーバ116は、パッケージ保存ディレクトリ117、層構造ディレクトリ管理手段118、データベース119、及び、パッケージ管理手段120を有する。パッケージ保存ディレクトリ117は、端末101に提供するパッケージを保存する。パッケージ保存ディレクトリ117には、提供可能な全ての種類のパッケージについて、パッケージの各版が保存される。パッケージ保存ディレクトリ117では、各パッケージは、第1版(初版)から、差分[第1版−第2版]、差分[第2版−第3版]、・・・の形で保存される。パッケージ保存ディレクトリ117のディレクトリ構造は、図4に示す端末101のパッケージ保存ディレクトリ103と同様であり、各パッケージについて、初版及び版間の差分が、ディレクトリを分けて保存される。
データベース119は、端末101のデータベース107が記憶するパッケージに関する情報(図5)と同様な情報を記憶する。すなわち、端末101に提供可能なパッケージに関する情報(テーブル1301に相当)と、各パッケージの保存場所に関する情報(テーブル1302に相当)とを記憶する。層構造ディレクトリ管理手段118は、端末101の層構造ディレクトリ管理手段105と同様に、ディレクトリを、ディレクトリ上に、層構造を持ちながらマウントする機能を提供する。パッケージ管理手段120は、パッケージ保存ディレクトリ117に対するパッケージの登録、及び、パッケージ保存ディレクトリ117に保存されたパッケージの端末101への提供を行う。
パッケージ管理手段120は、端末101へパッケージを提供する際には、端末101が既に有するパッケージとの差分を、端末101に提供する。例えば、端末101が保持するパッケージの最新版が第2版であり、パッケージサーバ116からパッケージの第3版を提供する際には、パッケージ管理手段120は、差分[第2版−第3版]を端末101に送信する。また、端末101が保持するパッケージの最新版が第1版であり、パッケージサーバ116からパッケージの第3版を提供する際には、パッケージ管理手段120は、差分[第1版−第3版]を端末101に送信する。
ここで、パッケージ保存ディレクトリ117には、第1版と第2版との差分、第2版と第3版との差分のように隣接する版間の差分は保存されるが、第1版と第3版のように、途中の版を抜かした形の版間の差分は保存されていない。このような途中の版を抜かした版間の差分は、層構造ディレクトリ管理手段118を用いて、必要な版間の差分を一時ディレクトリ上にマウントすることで作成する。例えば、差分[第1版−第3版]を作成する際には、記憶装置上に一時ディレクトリを作成し、その一時ディレクトリ上に、層構造ディレクトリ管理手段118を用いて、差分[第1版−第2版]と差分[第2版−第3版]とを、この順でマウントする。このようにマウントした一時ディレクトリの内容は、差分[第1版−第3版]に対応するので、その内容を、差分[第1版−第3版]として、端末101に送信すればよい。
実行環境のバックアップについて説明する。図7(a)は、バックアップ前における実行環境1におけるマウントの状態を示し、同図(b)は、バックアップ後の実行環境1におけるマウントの状態を示す。実行環境は、前述のように、マウントポイント上に、当該実行環境で利用するパッケージをマウントし、その上に、更新ファイルを保存するためのディレクトリをマウントすることで作成される。図7(a)では、図4における「/マウントポイント/1」に対応するマウントポイント1に、パッケージAの第1版(「/パッケージ保存ディレクトリ/パッケージA/第1版」)、パッケージAの第1版と第2版との差分(「/パッケージ保存ディレクトリ/パッケージA/差分[第1版−第2版]」)、パッケージBの第1版(「/パッケージ保存ディレクトリ/パッケージB/第1版)、及び、実行環境1における更新ファイルを保存するディレクトリの第1版(「/更新ファイル/実行環境1/第1版」)が、この順でマウントされている。
図7(a)に示す状態では、「/更新ファイル/実行環境1/第1版」ディレクトリが最上位にマウントされているため、実行環境1におけるプログラムの実行によって更新されたファイル群は、このディレクトリに保存される。従って、実行環境のバックアップを行う際には、「/更新ファイル/実行環境1/第1版」ディレクトリのみをバックアップすればよい。バックアップの実行後は、実行環境管理手段106によって「/更新ファイル/実行環境1/差分[第1版−第2版]」ディレクトリを新たに作成し、作成したディレクトリを、図7(b)に示すように、マウントポイント1の最上位にマウントする。このようにすることで、バックアップを行った後に実行環境1(第2版)で行われた更新は、「/更新ファイル/実行環境1/差分[第1版−第2版]」に保存されることになり、再度バックアップを取る際には、「/更新ファイル/実行環境1/差分[第1版−第2版]」だけをバックアップすればよい。これにより、バックアップ対象ファイルを減らすことができる。
次に、同一のパッケージの異なる版を、異なる実行環境で利用する場合について説明する。図8は、図7に示す実行環境1とは異なる実行環境2におけるディレクトリ層構造を示している。実行環境2は、図4の「/マウントポイント/2」ディレクトリ対応するマウントポイント2に、パッケージAの第1版(「/パッケージ保存ディレクトリ/パッケージA/第1版」)、パッケージCの第1版(「/パッケージ保存ディレクトリ/パッケージC/第1版」)、及び、実行環境2における更新ファイルを保存するためのディレクトリの第1版(「/更新ファイル/実行環境2/第1版」)をマウントすることで作成される。この実行環境2で利用するパッケージAの版は第1版であり、図7において利用しているパッケージAの版(第2版)とは異なる。
実行環境2で動作するプログラムは、ディレクトリ隔離手段104により、「/マウントポイント/2」に隔離される。これにより、例えば「/パッケージ保存ディレクトリ/パッケージA/第1版/lib/libfoo.so」というファイルに対して、「/lib/libfoo.so」としてアクセスが可能である。一方、実行環境1(図7)で動作するプログラムは、「/マウントポイント/1」に隔離されため、「/パッケージ保存ディレクトリ/パッケージA/差分[第1版−第2版]/lib/libfoo.so」というファイルがあるときには、そのファイルに対して、「/lib/libfoo.so」としてアクセスが可能である。実行環境1における「/lib/libfoo.so」と、実行環境2における「/lib/libfoo.so」とは、別のファイルであり、マウントポイント上にパッケージを古い順にマウントし、ディレクトリ隔離手段104によってプログラムの動作を各実行環境のディレクトリ(マウントポイント)に隔離することで、実行環境1、実行環境2で、異なる版のパッケージAを利用することができる。
同一実行環境においてパッケージの版を更新する際の動作について説明する。図9(a)は、パッケージの版を更新する前の実行環境3のディレクトリ層構造を示している。実行環境3(第1版)は、パッケージA第1版と、実行環境3における更新ファイルを保存するディレクトリの第1版とを、マウントポイント3にマウントすることで作成されている。この状況で、パッケージAの版を第2版に更新する際には、実行環境管理手段106により、新たなマウントポイントであるマウントポイント4を作成し、図9(b)に示すように、作成したマウントポイント4に、元のマウントポイント3にマウントされていたパッケージAの第1版と更新ファイルの第1版とを重ね、その上に、パッケージAの差分[第1版−第2版]と、新たな更新ファイル保存ディレクトリ(第1版−第2版)を重ねる。このようにすることにより、パッケージAの第1版を利用する実行環境3の第1版と、パッケージAの第2版を利用する実行環境3の第2版とを分離することができ、マウントポイント3を利用することで、安全に古いパッケージの状態でプログラムを利用することができる。
以下、端末管理システム100の詳細な動作手順について説明する。状態取得について説明する。要求生成手段110がシステムの状態取得要求を発生すると、システム制御手段109は、データベースを参照して、要求に応じた情報を返す。状態取得要求としては、例えば、パッケージについて、端末101内にどのようなパッケージが存在するかや、パッケージの最新版は何版か、パッケージを構成するディレクトリが使用中であるか否かなどの情報を取得する要求が考えられる。また、実行環境について、実行環境でどのようなパッケージが利用されているかや、各実行環境の版においてどの版のパッケージが利用されているかなどの情報を取得する要求が考えられる。これらの情報は、データベース107のテーブル1301、1302(図5)や、テーブル1401〜1403(図6)を参照することで取得できる。
パッケージの消去について説明する。要求生成手段110がパッケージの消去要求を発生すると、システム制御手段109は、パッケージ管理手段108に、該当するパッケージの消去を依頼する。依頼を受けたパッケージ管理手段108は、消去対象のパッケージのパッケージ名、及び、版又は版差分について、データベース107のテーブル1302を参照し、当該パッケージの版又は版差分の利用状態を確認する。パッケージ管理手段108は、利用状態が「無使用」であれば、テーブル1302を参照して、当該パッケージの版又は版差分を保存するディレクトリを調べ、パッケージ保存ディレクトリ103から、そのディレクトリを削除する。また、テーブル1302における利用状態を「消去」に更新する。利用状態が「使用中」であれば、ディレクトリを削除することはできないので、エラーを返す。利用状態が既に「消去」となっている場合には、そのまま処理を終了する。
実行環境の作成について説明する。図10は、実行環境を作成する際の手順を示している。実行環境作成要求は、要求生成手段110からシステム制御手段109に入力される。実行環境作成要求には、作成すべき実行を行う実行環境の名前と、その実行環境で利用するパッケージの名前とが与えられる。実行環境は、プログラムを当該実行環境で実行する前に、一度、必ず作成される必要がある。システム制御手段109は、要求生成手段110から実行環境作成要求を受け取ると、端末内の実行環境管理手段106に対して、実行環境の作成を指示する。実行環境管理手段106は、実行環境作成の指示を受けると、バックアップ用の情報を登録させるべく、実行環境サーバ111の実行環境管理手段115に環境作成を要求する(ステップA1)。
実行環境管理手段115は、作成すべき実行環境名と同名の実行環境が既に存在していないことを確認した上で、データベース114のテーブル1401に相当するテーブルに、新たな行を追加し、実行環境名及びパッケージ名の情報を保存する。また、作成すべき実行環境に対応して、テーブル1402、1403に相当する空のテーブルを作成し、データベース114に保存する(ステップA2)。実行環境名は、システム内で一意である必要があるため、実行環境管理手段115は、作成すべき実行環境と同名の実行環境が既に存在する場合には、エラーを返す。
端末101の実行環境管理手段106は、実行環境サーバ111の実行環境管理手段115から、データベース114への情報登録を正常に行った旨の応答を受信すると、データベース107に、サーバ内のデータベース114に登録された情報と同様な情報を登録
する(ステップA3)。すなわち、データベース107のテーブル1401に、作成すべき実行環境に対応した新たな行を追加して、実行環境名及びパッケージ名の情報を保存し、作成すべき実行環境に対応した空のテーブル1402、1403を作成する。
次に、プログラムの実行の手順を説明する。図11は、プログラム実行の際の手順を示している。プログラムの実行要求は、要求生成手段110からシステム制御手段109に入力される。この実行要求には、プログラムの実行を行う実行環境の名前、実行環境の版の指定、実行するプログラムのパス(例えば/bin/program_nameなど)などが含まれる。実行するプログラムのパスは、例えば/initなどに固定してもよい。また、実行要求には、実行するプログラムのパッケージを最新版の状態で実行する旨の指定、サーバへの接続を行うか否かの指定などを含めることもできる。実行環境の版指定において、古い版の実行環境を指定したときには、旧版のパッケージを利用したプログラムの実行を行うことになる。端末101がネットワークから切り離されている状況、或いは、実行要求にて、サーバへの接続を行わないという指定がされていたときには、既に利用可能な実行環境にて、プログラムを実行する。
システム制御手段109は、要求生成手段110から実行要求を受け取ると、実行環境サーバ111への接続が可能であるか否かを判断する(ステップB1)。ステップB1では、端末101がネットワークから切り離されているとき、或いは、実行要求にて、サーバへの接続を行わない旨の指定がされていたときには、サーバへの接続は不可であると判断する。また、端末101がネットワークに接続されており、かつ、実行要求にて、サーバへの接続を行わない旨が指定されていないときには、実行環境サーバ111への接続が可能であると判断する。
システム制御手段109は、サーバへの接続が可能である場合には、最新版での実行要求が行われたか否かを判断する(ステップB2)。最新版での実行要求が行われたときには、データベース107を参照して、実行要求で指定された実行環境で利用しているパッケージ群を調べる。実行環境にて利用されているパッケージは、データベース107のテーブル1401を参照することで調べることができる。システム制御手段109は、実行環境で利用されているパッケージ群の名前をパッケージ管理手段108に渡す。パッケージ管理手段108は、パッケージサーバ116のパッケージ管理手段120に、パッケージ群の名前を送信し、各パッケージについて、最新の版番号を問い合わせる。(ステップB3)。
パッケージサーバ116のパッケージ管理手段120は、端末101から最新版の版番号の問い合わせを受けると、データベース119を参照して、パッケージサーバ116におけるパッケージの最新の版番号を、端末101のパッケージ管理手段108に返す。パッケージ最新の版番号は、データベース119内のテーブル1302に相当するテーブルを参照することで取得できる。端末101内のパッケージ管理手段108は、パッケージサーバ116から、各パッケージの最新の版番号を受け取り、受け取った最新の版番号をシステム制御手段109に返す。
システム制御手段109は、実行に利用しようとしている版のパッケージ群が、端末101に存在するか否かを調べる(ステップB4)。ステップB4では、最新版での実行要求が行われた場合には、ステップB3の問い合わせに対して返答されたパッケージの最新の版番号の版が、端末101内に存在するか否かを判断する。また、実行環境の版を指定して実行要求が行われた場合には、既存の実行環境の版でプログラムを実行することになるが、本システムではパッケージの消去が許容されるため、ステップB4で、指定された版で利用するパッケージの版が、端末101内に存在するか否かを判断する。必要なパッケージが端末内に存在しない場合には、パッケージサーバ116からダウンロードする必要がある。
実行環境の版が指定されたときに、ステップB4で、その版で利用するパッケージが端末内に存在するか否かを調べる際には、まず、データベース107のテーブル1402を参照し、指定された実行環境の版において利用しているパッケージ名と、その版及び版の差分の情報を取得する。次いで、データベース107のテーブル1302のテーブルを検索し、該当する及び版の差分の状態が、「消去」であるか否かを調べる。「消去」でなければ、過去に利用されていたパッケージは端末101内から削除されておらず、該当する版及び版の差分は、端末101内に有効に存在する。
最新版での実行要求が行われた場合に、ステップB4で、その最新版の実行環境で利用するパッケージが端末内に存在するか否かを調べる際には、まず、データベース107のテーブル1402を参照して、実行環境の最新版において利用している各パッケージの版番号を取得する。次いで、実行環境での版番号と、ステップB3で問い合わせたパッケージの最新版の版番号とから、版差分番号を作成し、これを、データベース107のテーブル1302から検索する。該当する差分が存在しない、或いは、状態が「消去」になっていれば、パッケージサーバ116からダウンロードする必要がある。
端末101内に、該当する版差分が直接存在しなくても、複数の版差分から構成できれば、ダウンロードの必要はない。例えば、現在の実行環境で利用しているパッケージの版が第1版、パッケージサーバ116に存在する最新版の版番号が第3版であるとすると、必要となる版は、差分[第1版−第3版]である。この場合が、端末101内に、差分[第1版−第3版]が存在しなくても、差分[第1版−第2版]及び差分[第2版−第3版]が存在すれば、これらを組み合わせて利用することで第3版を構成できるので、ダウンロードの必要はない。
端末101内に存在する版差分が完全ではない場合には、端末101内に存在する差分の組み合わせで構成できる最新版からの差分をダウンロードすればよい。例えば、上記の例で、パッケージサーバ116に存在する最新版の版番号が第5版であるとすると、必要となる版である差分[第1版−第5版]は、差分[第1版−第2版]及び差分[第2版−第3版]だけでは構成されない。この場合には、端末101内の差分で第3版まで構成できるので、差分[第3版−第5版]をダウンロードすればよい。より詳細には、差分でない版からスタートし、連続した差分を検索することで、端末101内で構成できる版の最新版を知ることができる。例えば、上記の例では、第1版からスタートし、第1版からの差分を検索する。差分[第1版−第2版]を検出すると、次は、第2版からの差分を検索する。このようにすることで、端末101内で構成できる最新版を知ることができる。複数の差分がある場合、例えば差分[第1版−第2版]と差分[第1版−第3版]とがあるような場合には、双方について検索を行い、より目的の版に近い版に到達できる方を用いればよい。
システム制御手段109は、ステップB4で、実行に利用しようとしている版のパッケージ群が、端末101に存在しないと判断し、ダウンロードが必要であると判断すると、パッケージ管理手段108に、必要なパッケージのダウンロードを指示する(ステップB5)。その際、システム制御手段109は、ダウンロードするパッケージの名前と、版番号又は版差分とを、パッケージ管理手段108に通知する。ダウンロードでは、パッケージの一部が端末101内に存在するときには、必要な差分をダウンロードする。必要なパッケージが端末101内に全く存在しない場合には、差分ではなく、版全体をダウンロード対象とする。
図12は、サーバからパッケージをダウンロードする際の手順を示している。パッケージ管理手段108は、ダウンロードするパッケージの名前と、版番号又は版差分とを、パッケージサーバ116のパッケージ管理手段120に送信し、当該パッケージのダウンロードを要求する(ステップC1)。パッケージサーバ116のパッケージ管理手段は、ダウンロード要求を受けると、データベース119を参照し、必要な版差分ディレクトリ群を抽出する(ステップC2)。例えば、要求された版差分番号が差分[第1版−第3版]であれば、必要な版差分ディレクトリ群は、差分[第1版−第2版]と、差分[第2版−第3版]である。
パッケージ管理手段120は、ディレクトリ群の抽出後、一時ディレクトリを作成し、層構造ディレクトリ管理手段118を用いて、作成した一時ディレクトリ上に、抽出したディレクトリ群をマウントする(ステップC3)。抽出したディレクトリ群を、一時ディレクトリ上にマウントすることで、一時ディレクトリには、必要とする版差分が保持される。上記の例では、一時ディレクトリ上に、差分[第1版−第2版]と、差分[第2版−第3版]とを、この順でマウントすることにより、一時ディレクトリには、差分[第1版−第3版]の内容が保持されることになる。パッケージ管理手段120は、一時ディレクトリの内容をアーカイブし、ダウンロード要求を送信した端末101に送信する(ステップC4)。
端末101のパッケージ管理手段108は、パッケージサーバ116から、ダウンロードを要求した版又は版差分のアーカイブを受信し、受信したアーカイブをパッケージ保存ディレクトリ103に展開して保存する(ステップC5)。その際、パッケージ管理手段108は、ダウンロードした版又は版差分が、データベース107のテーブル1302において「消去」状態のものであった場合には、ダウンロードした版又は版差分を、当該テーブル1302に記述されているディレクトリに保存する。これは、そのディレクトリを参照する実行環境がある可能性があるためである。それ以外の場合には、新たにディレクトリを作成し、そのディレクトリに保存する。
パッケージ管理手段108は、パッケージ保存ディレクトリ103への保存後、データベース107の内容を更新する(ステップC6)。ステップC6では、例えば、テーブル1302において「消去」状態であった版又は版差分を、「無使用」状態に更新する。また、新たにディレクトリを作成して保存した場合には、テーブル1302に新たな行を追加して、サーバからダウンロードした版又は版差分の情報、及び、保存ディレクトリの情報をデータベース107に追加登録する。
図11に戻り、システム制御手段109は、これまでのステップで処理したパッケージ群が依存するパッケージがあるか否かを確認する(ステップB6)。依存するパッケージに関する情報は、パッケージ内に記述されており、例えば当該パッケージのディレクトリ内に存在する依存情報ファイルを参照することで知ることができる。依存情報は、同一パッケージでも、パッケージの版に応じて異なることもある。また、依存情報がデータベース内に記述される構成でもよく、その場合には、データベースを参照して、依存するパッケージを調べる。
例えば、パッケージXがパッケージYに依存する場合には、パッケージXの依存情報では、パッケージYに依存する旨だけでなく、パッケージYのどの版に依存するかも記述する。版に対する依存関係の記述の仕方としては、例えば、「正確に第P版に依存する」、「第P版以上の任意の版に依存する:最新版があれば最新版を利用する」、「第P版以上で第Q版以下に依存する:第Q版以下で最新版があれば最新版を利用する」、「第Q版以下に依存する:第Q版以下で最新版があれば最新版を利用する」などが考えられる。
システム制御手段109は、ステップB6で、依存するパッケージがあると判断すると、ステップB3に戻り、依存するパッケージについて、パッケージサーバ116における最新版の版番号を取得する。なお、「正確に第P版に依存する」場合で、第P版が端末101内に存在する場合や、「第Q版以下に依存する:第Q版以下で最新版があれば、最新版を利用する」場合で、第Q版が端末101内にある場合には、必要な版は既に端末101内に存在しているので、ステップB3で、パッケージサーバ116から最新のパッケージ番号を取得する必要はない。
実行環境管理手段106は、パッケージサーバ116から取得した最新版の版番号と依存情報とから、必要とする版を判定する。すなわち、「正確に第P版に依存する」場合で、サーバに第P版以上の版があれば、必要とする版は第P版である。また、「第P版以上の任意の版に依存する:最新版があれば最新版を利用する」場合で、サーバに第P版以上の版があれば、必要とする版は最新版である。「(第P版以上)第Q版以下に依存する:第Q版以下で最新版があれば、最新版を利用する」場合で、サーバには第P版以上の版があることを前提に、最新版が第Q版より小さければ、必要とする版は最新版であり、第Q版以上であれば、第Q版が必要とする版となる。
以降は、上記で説明したのと同様に、必要とする版が端末101内に存在するか否かを判断して、その存在しないときには、必要とする版をパッケージサーバ116からダウンロードする。その後、ステップB6で、依存するパッケージの存在を判断し、依存するパッケージが存在する場合には、ステップB3に戻る。この処理を繰り返すことで、依存するパッケージを含めて、必要なパッケージを全てダウンロードする。
ダウンロードが終了すると、システム制御手段109は、必要なパッケージがインストール済みであるか否かを判断する(ステップB7)。「インストール済み」とは、対象となる実行環境において、更新ファイル保存ディレクトリと共に、あるマウントポイントにマウントされ、更に、初期設定を行うなどのためにインストールプログラムを実行した状態になっていることを言う。インストール済みであるか否かは、データベース107を参照することで判断することができる。すなわち、判断の対象となるパッケージの版が、テーブル1402のパッケージの版に記述されている版以下であれば、インストール済みである。
パッケージがインストール済みであるか否かの確認は、依存するパッケージも含め、当該実行環境で利用するパッケージのすべてについて行う。システム制御手段109は、実行環境管理手段106に対し、インストール済みでないと判断したパッケージのインストールを要求する(ステップB8)。この要求には、インストールの対象となるパッケージの名前、版又は版差分番号、及び、インストール先の実行環境が含まれる。インストール先の実行環境が、実行環境の作成(図10)で作成された直後の実行環境、つまりは、インストールが1回も行われていない実行環境であるときには、インストールによって、当該実行環境の第1版が作成されることになる。既にインストールが行われている実行環境については、今回のインストールにより、新しい版の実行環境が作成されることになる。
図13は、インストールの際の実行環境管理手段106の動作手順を示している。実行環境管理手段106は、インストール要求を受けると、新たなマウントポイントとなるディレクトリを作成する(ステップD1)。また、作成する実行環境の更新ファイルを保存するためのディレクトリを、新規に作成する(ステップD2)。ステップD2で作成する更新ファイル保存ディレクトリは、例えば現在の実行環境の最新の版番号が第1版であれば、差分[第1版−第2版]である。インストールが1回も行われていない実行環境であれば、第1版である。
実行環境管理手段106は、データベース107を参照し、テーブル1402から、既存の実行環境のうちで、最新版の実行環境においてマウントされているパッケージ及び更新ファイルの版又は版差分と、それらのマウント順を取得する(ステップD3)。次いで、層構造ディレクトリ管理手段105を用い、それらに対応するディレクトリを、テーブル1302及び1403から取得し、ステップD1で新たに作成したマウントポイントに、取得したマウント順と同じ順序でマウントする。その上に、インストール対象のパッケージの版(版差分)を保存するディレクトリを重ね、更にその上に、ステップD2で新規に作成した更新ファイルを保存するディレクトリをマウントする(ステップD4)。最新版の実行環境の版が存在しない場合、つまりは、インストールが1回も行われていない実行環境の場合には、マウントポイント上に、インストール対象のパッケージの版と、更新ファイル保存ディレクトリとがマウントされる。
実行環境管理手段106は、ステップD1で作成したマウントポイントを、ディレクトリ隔離手段104を用いて隔離した上で、インストールプログラムを実行する(ステップD5)。インストールプログラムは、パッケージと共に提供されており、初期化等のために用いられる。マウントポイントを、ディレクトリ隔離手段104を用いて隔離することで、インストールによって更新されるファイルは、マウントポイントに対して最上位にマウントされている更新ファイルを保存するディレクトリに保存される。このため、パッケージそのものは改変されず、安全に、複数の実行環境間でパッケージを共有できる。
実行環境管理手段106は、インストールプログラムの実行後、データベース107のテーブル1402に行を挿入し、インストールしたパッケージの情報と、マウント順の情報とを、新たな実行環境の版の情報として登録する(ステップD6)。テーブル1402における新たな実行環境の版の「版番号」は、前の版に1を足したものになる。また、実行環境管理手段106は、テーブル1403に行を挿入し、新規に作成した更新ファイルを保存するディレクトリの情報を保存する。このときのテーブル1403における「版番号」は、前版との差分となる。
再び図11に戻り、システム制御手段109は、ディレクトリ隔離手段104を用いて、パッケージがインストールされた状態の実行環境において、実行要求にて指定されたパスのプログラムを実行する(ステップB9)。システム制御手段109は、プログラムの実行に際して、データベース107のテーブル1302に対し、利用しているパッケージの版及び版差分の状態を、「使用中」とする。プログラムの実行が終了したときに、他に当該パッケージの版及び差分を利用しているプログラムがなければ、テーブル1302における状態を「無使用」に更新する。プログラムが実行中か終了しているかは、例えば、次のような手法を用いることで、判断することができる。すなわち、オペレーティングシステムの機能を利用して実行中の動作単位(例えばプロセス)が動作しているディレクトリを調べる。ある実行環境下で動作しているプロセスは、特定のマウントポイント下で動作しているため、このディレクトリを、テーブル1402から検索することで、どの実行環境下のプロセスが動作中であるかを判定できる。
ステップB1にて、ネットワークへの接続が不可と判断された場合、すなわち、端末101がネットワークから切り離されていた場合や、実行要求でサーバへの接続を行わずにプログラムを実行する旨が指定されていた場合には、ステップB1からステップB9へ移行し、以前に作成した実行環境においてプログラムを実行する。その際、システム制御手段109は、必要とされるパッケージが、消去されずに残っていることを確認する。具体的には、データベース107のテーブル1402から、マウントしているパッケージとその版及び版差分とを抽出し、当該パッケージの版及び版差分に対して、テーブル1302を引き、状態が「消去」でないことを確認する。必要とされるパッケージの版及び版差分が消去されていた場合には、エラーを表示する。
続いて、更新通知登録の動作について説明する。更新通知登録とは、パッケージサーバ116に対して、パッケージの版が更新され、新しい版のパッケージが提供可能となったときには、その旨を端末101側に通知するように登録することである。更新通知を受けることで、定期的にパッケージサーバ116に対して最新の版番号を問い合わせなくても、サーバ側での最新版の版番号を把握することができる。また、新しい版が提供可能となったときに、あらかじめダウンロードとインストールとを行っておくことで、実行要求が発生した際に、すばやくその最新版を利用することができる。
図14は、更新通知登録の際の手順を示している。要求生成手段110から、更新通知を登録する旨の要求が発生すると、システム制御手段109は、パッケージ管理手段108に対して、更新通知登録を指示する。パッケージ管理手段108は、パッケージサーバ116のパッケージ管理手段120に対して、パッケージが更新された際にはその旨を端末101に登録するように依頼する(ステップE1)。更新通知登録要求には、更新通知を登録する対象のパッケージ名が含まれており、パッケージ管理手段108は、パッケージサーバ116のパッケージ管理手段120に対象となるパッケージの名前を渡して、更新通知登録を依頼する。
更新通知登録要求には、パッケージサーバ側から更新通知を受けた際に実行する処理の内容を含めることができる。更新通知登録要求に、更新通知を受けた際に実行する内容が指定されているときには、パッケージ管理手段108は、その内容を、端末101内に登録する(ステップE2)。更新通知を受けた際に実行する内容は、プログラム又はシステムを構成する各手段に対する要求である。例えば、更新通知を受けた際に、要求生成手段110からシステム制御手段109に対して、ダウンロード要求を発生する旨を登録する。この場合には、パッケージサーバ116でパッケージの更新があったときに、端末101側で、自動的に、更新された版のパッケージをダウンロードすることができる。
パッケージサーバ116のパッケージ管理手段120は、更新通知登録の依頼を受けると、更新通知の対象となるパッケージ名を記録する(ステップE3)。その際、パッケージ管理手段120は、更新通知の対象のパッケージ名と、依頼発行元の端末101とを関連付けて記録する。このようにすることで、端末101ごとに、更新通知を行うパッケージを指定することができる。
新たなパッケージの登録について説明する。図15は、パッケージ登録の際の手順を示している。パッケージ管理手段120は、パッケージサーバ116の管理者によって、新たなパッケージの登録が要求されると、パッケージ保存ディレクトリ103にディレクトリを作成し、そのディレクトリに、新たなパッケージを登録する(ステップF1)。新たなパッケージは、第1版、又は、前の版からの差分の形で与えられる。第1版で与えられるパッケージは、新規なパッケージであり、前の版からの差分で与えられるパッケージは、既存パッケージの更新版である。
パッケージ管理手段120は、データベース119に、新たに登録されたパッケージの情報を登録する(ステップF2)。パッケージ管理手段120は、登録されるパッケージが新規パッケージであれば、データベース119のテーブル1301に行を挿入し、テーブル1302を作成して、新規パッケージの情報を登録する。また、新たなパッケージが、既存パッケージの更新版であれば、テーブル1301を参照して、当該既存パッケージに対応するテーブル1302を特定し、そのテーブルに、更新版の内容を登録する。
パッケージ管理手段120は、登録されたパッケージが、更新通知の対象となっているか否かを判断する(ステップF3)。更新通知の対象のパッケージである場合には、更新通知登録を依頼した依頼元の端末101に向けて、パッケージの版が更新された旨の通知を行う(ステップF4)。この通知を受け取った端末101のパッケージ管理手段108は、更新通知に含まれる更新されたパッケージの名前から、更新通知登録(図14)において登録した、更新通知を受けた際に実行する内容を検索し、その内容を実行する(ステップF5)。
実行環境のバックアップについて説明する。図16は、実行環境のバックアップの手順を示している。要求生成手段110が、実行環境のバックアップを要求すると、システム制御手段109は、実行環境管理手段106に、実行環境のバックアップを依頼する。実行環境のバックアップ要求では、バックアップの対象となる実行環境が指定されており、システム制御手段109は、バックアップ対象の実行環境名を実行環境管理手段106に渡して、バックアップを依頼する。
実行環境管理手段106は、バックアップの依頼を受けると、データベース107のテーブル1403を参照して、実行環境における更新ファイルの未バックアップの版又は版差分ディレクトリ群を抽出する(ステップG1)。その後、抽出したディレクトリ群を、データベース107のテーブル1401における該当行、及び、テーブル1402、1403と共にアーカイブし、実行環境サーバ111に転送する(ステップG2)。
実行環境サーバ111の実行環境管理手段115は、端末101から、未バックアップのディレクトリ群及びデータベース107のアーカイブを受け取ると、受け取ったアーカイブを展開して、実行環境ディレクトリ112及びデータベース114に、端末101から送信された内容(情報)を保存する(ステップG3)。これにより、実行環境サーバ111で保持する情報と、端末101と保持する情報とを、同じ状態にすることができる。
端末101の実行環境管理手段106は、実行環境サーバ111へのアーカイブの送信後、新たな更新ファイル保存ディレクトリを作成し、層構造ディレクトリ管理手段105を用いて、作成した更新ファイル保存ディレクトリを、現環境で用いているマウントポイント上にマウントする(ステップG4)。その後、データベース107の更新を行う(ステップG5)。ステップG5では、データベース107のテーブル1402に行を挿入し、実行環境の新しい版として情報を保存する。このときに、テーブル1402に保存される情報は、版番号が1つ大きくなり、マウント順の項目に新たに作成された更新ファイル保存ディレクトリが追加される点を除いて、前の版と同じである。また、テーブル1403に、新たに作成した更新ファイル保存ディレクトリの情報を追加し、バックアップを行った更新ファイル保存ディレクトリについて、バックアップ項目を「済」にする。
実行環境のリストアについて説明する。図17は、実行環境のリストアの手順を示している。要求生成手段110が、実行環境のリストアを要求すると、システム制御手段109は、実行環境管理手段106に、実行環境のリストアを依頼する。実行環境のリストア要求では、リストアする実行環境が指定されており、システム制御手段109は、リストアする実行環境名を実行環境管理手段106に渡して、リストアを依頼する。
実行環境管理手段106は、実行環境サーバ111に対し、実行環境のバックアップで保存された更新ファイル保存ディレクトリの情報の送信を要求する(ステップH1)。この要求を受けた実行環境サーバ111の実行環境管理手段115は、データベース114を参照してリストア対象の実行環境の保存場所を特定し、実行環境ディレクトリ112から、リストア対象の更新ファイル保存ディレクトリの内容を取得する。また、データベース114から、リストア対象の更新ファイル保存ディレクトリに関する情報を抽出して、これらをアーカイブし、端末101に向けて送信する(ステップH2)。
端末101の実行環境管理手段106は、実行環境サーバ111から、リストア対象の更新ファイル保存ディレクトリの内容及びデータベースの情報を受信すると、アーカイブを展開し、実行環境ディレクトリ102に、バックアップ時のディレクトリ構成を復元する。また、データベース107の内容を、バックアップ時のものに復元する(ステップH3)。これにより、実行環境が、バックアップ時の実行環境の状態に復元される。
パッケージのダウンロード、インストール、最新版の版番号の問い合わせについては、実行要求に対する処理(図11)の中で行う以外に、単独で実行可能とする。要求生成手段110がこれらの要求を発生すると、システム制御手段109は、要求に応じて、パッケージ管理手段108を用いて、ダウンロード、インストール、最新版の版番号の問い合わせを行う。これらを単独で実行可能とすることで、以下の利点がある。すなわち、実行要求に対する処理で、ダウンロードやインストールを行う場合には、実行要求が発生してから、実際にプログラムが実行されるまでに、時間を要する可能性がある。そこで、定期的にパッケージの更新をチェックして、あらかじめパッケージのダウンロード、インストールを実行し、端末101内のパッケージを更新しておく。このようにする場合には、実行要求が発生した際に、パッケージのダウンロード、インストールは不要となり、プログラム実行までの時間を短縮できる。また、パッケージサーバ116に接続せずにプログラムの実行が可能とるので、実行要求時に、端末101がネットワークに接続している必要がなくなる。
定期的なパッケージの更新チェックを行う際には、まず、パッケージ更新チェックの対象とするパッケージを列挙したリストを用意する。このリストには、現在利用中のパッケージに加えて、将来利用が見込まれるパッケージを含めておくとよい。リストに列挙されたパッケージについて、ステップB3(図11)と同様な手順で、パッケージサーバ116における最新の版番号を取得し、これと、端末101内のパッケージの版番号とを比較する。ステップB5と同様な手順で、パッケージサーバ116から最新版のパッケージをダウンロードし、ステップB8と同様な手順で、インストールを行う。このとき、最新版のパッケージが依存するパッケージが存在するときには、そのパッケージについても、必要に応じて、ダウンロード及びインストールを行う。
本実施形態では、パッケージ保存ディレクトリに、パッケージを、パッケージの元となる版、及び、版間の差分でディレクトリを分けて保存し、パッケージ利用の際には、層構造ディレクトリ管理手段を用いて、パッケージの元となる版及び版間の差分をマウントポイント上にマウントすることで、目的の版のパッケージを構成する。このようにすることで、同一パッケージについて、複数の版が存在するときに、所望の版のパッケージを構成することができ、複数のプログラムから共有されるライブラリ等が存在した場合に、それぞれのプログラムが別の版のライブラリを参照することができる。また、パッケージを差分で管理していることにより、パッケージの版が更新され、新しい版のパッケージが利用可能となったときでも、古い版のパッケージをマウントすることで、パッケージを古い版の状態で利用することができる。
本実施形態では、層構造管理手段を用い、パッケージを保存するディレクトリ上に、更新ファイル保存ディレクトリを重ねて実行環境を構成する。このようにすることで、プログラム本体部分と、プログラム実行に伴って更新されたファイルとを区分することができ、バックアップの際には、更新ファイル保存ディレクトリをバックアップすることで、効率のよいバックアップが実現できる。また、バックアップ後には、バックアップした更新ファイル保存ディレクトリ上に、新しい版(版差分)の更新ファイル保存ディレクトリを重ね、次回のバックアップでは、未バックアップの新しい版の更新ファイル保存ディレクトリを対象としてバックアップを実施することで、バックアップの効率を更に高めることができる。
次に、本発明の第2実施形態について説明する。第2実施形態の端末管理システムは、各端末101(図1)が、実行環境サーバ111及びパッケージサーバ116の機能を併せ持ち、他の端末に対して、サーバ機能を提供する。より詳細には、実行環境管理手段106は、他の端末に対して、実行環境サーバ111の実行環境管理手段115の代わりに、実行環境のバックアップ、リストア等の機能を提供する。また、パッケージ管理手段108は、他の端末に対して、パッケージサーバ116のパッケージ管理手段120の代わりに、パッケージ提供などの機能を提供する。どの端末がどの端末に対してサーバ機能を提供するかは、あらかじめ決めておく。或いは、端末間のネットワーク接続状況に応じて、動的に決定してもよい。
図18に、本実施形態における端末管理システム内での要求やデータの流れを示す。この例では、端末B1502は、端末A1501に対してプロキシとして動作する。すなわち、端末A1501は、パッケージのダウンロード要求や、実行環境のバックアップ/リストア要求などの要求を、実行環境サーバ111やパッケージサーバ116ではなく、端末B1502に対して発行する。端末B1502は、実行環境サーバ111やパッケージサーバ116の代理として、端末A1501に対し、サーバとしての機能を提供する。
端末B1502のパッケージ管理手段108は、端末A1501からダウンロード要求を受信すると(図12のステップC1に相当)、要求されたパッケージが、自端末のパッケージ保存ディレクトリ103に保存されているか否かを判断する。保存されているときには、ステップC2〜C4の処理を行って、端末A1501に、要求されたパッケージを保存する。要求されたパッケージが自端末に存在しないときには、端末A1501から受信したダウンロード要求を、パッケージサーバ116に転送する。この場合は、端末A1501は、パッケージサーバ116から必要なパッケージを取得する。
端末B1502のパッケージ管理手段108は、端末A1501から最新版のパッケージの版番号の問い合わせを受けると(図11のステップB3)、その問い合わせをパッケージサーバ116に転送する。また、端末A1501から、更新通知登録の依頼を受けると(図14のステップE1)、端末B1502内に更新通知登録を行うと共に、パッケージサーバ116に対して、更新通知登録を依頼する。その際、パッケージサーバ116から更新通知を受け取った際に行う処理の内容として、端末A1501に更新通知を送信する旨を登録する。この場合、パッケージサーバ116でパッケージが更新されると、端末A1501は、プロキシである端末B1502を経由して、更新通知を受け取ることになる。
端末B1502のパッケージ管理手段108は、端末A1501から、実行環境の作成要求を受け取ると(図10のステップA1に相当)、データベース107に、実行環境のバックアップ用の情報を登録すると共に、実行環境サーバ111に、作成要求を転送する。これにより、プロキシである端末B1502と実行環境サーバ111との双方のデータベースに、バックアップ用の情報が登録される。また、端末A1501から、バックアップ対象のディレクトリのアーカイブを受信すると(図16のステップG2に相当)、データベース107及び実行環境ディレクトリ102にバックアップ内容を保存した後に、実行環境サーバ111に、受信したアーカイブを転送する。これにより、端末A1501のバックアップが、端末B1502と実行環境サーバ111との双方に保存される。端末とサーバとで、パッケージ保存ディレクトリ及びデータベースの構造は同じであるため、端末B1502では、単純に、端末A1501から受信した内容を、実行環境ディレクトリ102及びデータベース107に追加登録すればよい。
端末A1501からのリストア要求(図17のステップH1に相当)については、端末B1502は、実行環境ディレクトリ102及びデータベース107を検索して端末A1501からバックアップした内容を抽出し、これを端末A1501に送信すればよい。バックアップ時と、リストア時とで、端末A1501がプロキシとして利用する端末が異なっているときには、そのプロキシには端末A1501のバックアップが保存されていないことになる。その場合には、端末A1501のバックアップを保存する端末を検索し、その端末にリストア要求を転送して、バックアップ時のプロキシを用いてリストアを行えばよい。或いは、実行環境サーバ111にリストア要求を転送して、実行環境サーバ111によってリストアを行えばよい。
本実施形態では、端末を実行環境サーバ及びパッケージサーバのプロキシとして動作させ、サーバへのアクセスを、プロキシとして動作する端末を経由するように構成する。このようにすることで、端末がサーバへ直接接続することができない状況にあるときや、サーバへアクセスが遅いときでも、プロキシとなる別の端末を利用することで、実行環境のバックアップやパッケージのダウンロードなどを行うことができる。また、本来サーバが行うべき処理を、プロキシとなる端末で代わりに行うことで、サーバ付加を軽減できるという効果もある。その他の効果は、第1実施形態と同様である。
続いて、本発明の第3実施形態について説明する。本実施形態では、実行環境管理手段106により、マウントポイント上にマウントされてディレクトリ群を、適宜1つのディレクトリにまとめる。ディレクトリ群をまとめて1つのディレクトリに結合する際には、まず、新たに、マウントポイント上のファイルを格納するためのディレクトリを作成し、そのディレクトリに、マウントポイント上のファイルをコピーする。その後、作成したディレクトリを、別のマウントポイント上にマウントし、その上に、更新ファイルを保存するためのディレクトリを重ねる。
図19は、ディレクトリをまとめる際の動作手順を示している。システム制御手段109は、要求生成手段110が層結合要求を発生すると、実行環境管理手段106にディレクトリ群の結合を依頼する。層結合要求には、結合対象となる実行環境名と、結合後に古い更新ファイル保存ディレクトリを消去するか否かの指定とが含まれる。実行環境管理手段106は、システム制御手段109からの層結合依頼を受けると、データベース107を参照して、結合対象の実行環境の最新版のマウントポイントを調べ、そのマウントポイント上のファイルを、新たに作成したディレクトリにコピーする(ステップI1)。このとき作成するディレクトリは、例えば、実行環境ディレクトリ102及びパッケージ保存ディレクトリ103(図4)とは別に、「/実行環境+パッケージ/」を用意しておき、その下に作成する。
実行環境管理手段106は、新たなマウントポイント、及び、更新ファイルを保存するためのディレクトリを作成する(ステップI2)。その後、作成したマウントポイントに、ステップI1でファイルをコピーしたディレクトリと、作成した更新ファイル保存ディレクトリとを重ねてマウントし、実行環境を構築し直す(ステップI3)。実行環境を構築し直すことで、実行環境の版が更新される。マウントポイントへのマウント後、層結合要求にて、古い更新ファイル保存ディレクトリの消去が指示されているときには、結合前のマウントポイント上にマウントされていた更新ファイル保存ディレクトリを消去する(ステップI4)。ステップI4で消去を行った場合には、記憶装置の空き容量を広げることはできるが、古い実行環境で実行することはできなくなる。
図20に、ディレクトリ群を1つにまとめる前後のマウントポイントの様子を示す。同図(a)は、ディレクトリ群を1つにまとめる前の状態を示しており、「マウントポイント4」の上に、パッケージAの第1版、実行環境3の更新ファイルの第1版、パッケージAの第1版と第2版の差分、及び、実行環境3の更新ファイルの第1版と第2版の差分が、この順でマウントされている。この場合、マウントポイント4から見ると、利用するパッケージAは第2版として見え、実行環境3の版(更新ファイル保存ディレクトリの版)は第2版として見える。
実行環境管理手段106は、新たなディレクトリを作成し、作成したディレクトリに、マウントポイント4から見えるファイルをコピーする。その際、層構造ディレクトリ管理手段105を用いて、マウントポイント4上に、図20(a)に示す順序でディレクトリをマウントしていることにより、例えば、パッケージAの第1版とパッケージAの差分[第1版−第2版]とで、同じファイル名のファイルが存在したときには、マウントポイント4からはパッケージAの差分[第1版−第2版]のみが見え、パッケージAの差分[第1版−第2版]のファイルのみが、新たに作成されたディレクトリにコピーされることになる。
マウントポイント4上にマウントされたディレクトリ群のコピー先ディレクトリを「パッケージA:第2版+実行環境3:第2版」とすると、実行環境管理手段106は、図20(b)に示すように、このディレクトリを、新たなマウントポイントであるマウントポイント5の上にマウントする。実行環境管理手段106は、マウントポイント5の上に、更に、実行環境3の更新ファイル差分[第2版−第3版]をマウントし、実行環境3の第3版を作成する。図20(b)におけるディレクトリ「パッケージA:第2版+実行環境3:第2版」は、図20(a)に示すマウントポイント4の上にマウントされたディレクトリ群に対応しており、マウントポイント4とマウントポイント5とは、内容的に等価である。
図19に戻り、実行環境管理手段106は、マウントポイント上のディレクトリ群をまとめて1つのディレクトリにし、そのディレクトリを、更新ファイル保存ディレクトリと共に新たなマウントポイント上にマウントすると、データベース107の内容を更新する(ステップI5)。ステップI5では、データベース107のテーブル1402に、更新された実行環境の版に関する情報を格納する行を追加し、その行に、マウントポイントやマウント順に関する情報などを格納する。また、ステップI4で、古い更新ファイル保存ディレクトリを消去したときには、古い版の実行環境が利用できなくなることから、テーブル1402から、当該古い版の実行環境に対応する行を削除する。
データベース107の更新では、テーブル1403に、結合したディレクトリ上に新たにマウントされた更新ファイル保存ディレクトリに関する情報を格納するための行を追加し、その行に、新たな更新ファイル保存ディレクトリに関する情報を登録する。このとき、実行環境の版は、版差分ではなく、単一の版(図20の例では第2版)とする。また、新たな更新ファイル保存ディレクトリは、未バックアップ扱いとする。ステップI4で、古い更新ファイル保存ディレクトリを消去したときには、テーブル1403から、その消去したディレクトリに対応する版の行を削除する。
本実施形態では、マウントポイント上にマウントされた複数のディレクトリを、適宜、一つのディレクトリにまとめる。このようにすることで、マウントポイント上にマウントされたディレクトリの数を減らすことができ、層構造ディレクトリ管理手段の処理負担が軽減され、実行速度を向上できるという効果が得られる。つまりは、マウントポイント上のディレクトリ数を減らすことで、ディレクトリ数が多いことによる性能低下を減らすことができる。
また、同一マウントポイント上にマウントされた複数のディレクトリ間で、同じ名前のファイルが存在したときには、実際には最新の1ファイルのみが利用されることになるにもかかわらず、各ディレクトリで同名のファイルが保持されているが、これらディレクトリを一つにまとめることにより、保持するファイルが1つのみとなり、使用するディスク容量を削減することができる。その他の効果は、第1実施形態と同様である。
続いて、端末及び各サーバをコンピュータプログラムで動作させる構成について説明する。図21に、その構成を示す。端末A180及び端末B181は、図1における端末101に相当する。端末A180及び端末B181は、それぞれ、コンピュータA1801及びコンピュータB1803を有する。コンピュータA1801及びコンピュータB1803は、記録媒体1802及び1804に格納されたコンピュータプログラムに基づいて動作し、第1〜第3実施形態で説明した端末101の動作と同様な動作を実現する。
実行環境サーバ182及びパッケージサーバ183は、それぞれコンピュータC1805及びコンピュータD1807を有する。コンピュータC1805及びコンピュータD1807は、記録媒体1806及び1808に格納されたコンピュータプログラムに基づいて動作し、第1〜第3実施形態で説明した実行環境サーバ111及びパッケージサーバ116の動作と同様な動作を実現する。
なお、リストアについて、例えば、実行環境の第2版をリストアする際には、実行環境サーバ111から、更新ファイル保存ディレクトリの第1版と、差分[第1版−第2版]とを取得し、これらをマウントポイント上にマウントすることとしたが、リストアの仕方はこれには限定されない。例えば、実行環境サーバ111内で、層構造ディレクトリ管理手段113を用いて、更新ファイル保存ディレクトリの第1版と、差分[第1版−第2版]とを一時ディレクトリ上にマウントして、その一時ディレクトリの内容を端末101に送信し、端末101にて、受信した単一の版の更新ファイル保存ディレクトリ(第2版)をマウントポイント上にマウントする構成としてもよい。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の端末管理システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。