(57)【特許請求の範囲】
【請求項１】
あるオリジナルディレクトリの複製ディレクトリを複数のミラーサーバ上に作成し、複数のサーバを用いて情報を提供する情報サービスシステムにおいて、サービス識別子を含む情報を入力とし、前記ミラーサーバ群の中から情報を提供する情報提供元サーバを選択するサーバ選択装置であって、
ファイルの属性値でファイル間の値の順序がオリジナルディレクトリに蓄積された順序を示すものをタイムスタンプとし、あるディレクトリに属するファイルのタイムスタンプの最新の値を当該ディレクトリのディレクトリタイムスタンプとし、
前記各ミラーサーバそれぞれの前記複製ディレクトリのディレクトリタイムスタンプを取得するディレクトリタイムスタンプ取得手段と、
前記ディレクトリタイムスタンプ取得手段で取得したディレクトリタイムスタンプを、前記各ミラーサーバそれぞれの前記複製ディレクトリ毎に記憶するディレクトリタイムスタンプテーブルと、
オリジナルディレクトリに蓄積され、サービス識別子が示すファイルのタイムスタンプをオリジナルタイムスタンプとして取得するオリジナルタイムスタンプ取得手段と、
前記ディレクトリタイムスタンプテーブルを参照し、ディレクトリタイムスタンプが前記オリジナルタイムスタンプよりも古い前記複製ディレクトリを保持する前記ミラーサーバを、選択するサーバから除外するサーバ絞込み手段と、
前記サーバ絞込み手段で除外されたサーバ以外のサーバの中から前記情報提供元サーバを決定するサーバ決定手段とを備えることを特徴とするサーバ選択装置。
【請求項２】
前記ファイルのタイムスタンプは、ファイルがオリジナルディレクトリに蓄積された時刻を表すことを特徴とする請求項１に記載のサーバ選択装置。
【請求項３】
オリジナルディレクトリの属性値でオリジナルディレクトリの更新が発生するたびに加算されるものをバージョン番号とするとき、前記ファイルのタイムスタンプは、当該ファイルがオリジナルディレクトリに蓄積された直後のオリジナルディレクトリのバージョン番号を表すことを特徴とする請求項１に記載のサーバ選択装置。
【請求項４】
前記オリジナルタイムスタンプ取得手段は、オリジナルディレクトリに蓄積されておりサービス識別子が示すファイルのタイムスタンプを取得するか、あるいはオリジナルディレクトリのディレクトリタイムスタンプを取得するかのオリジナルタイムスタンプ取得方法を前記サービス識別子をもとに判断する判断手段を有し、
前記オリジナルタイムスタンプ取得手段は、前記判断手段の判断結果に基づき、オリジナルディレクトリに蓄積されておりサービス識別子が示すファイルのタイムスタンプ、あるいは、オリジナルディレクトリのディレクトリタイムスタンプを、前記オリジナルタイムスタンプとして取得することを特徴とする請求項１ないし請求項３のいずれか１項に記載のサーバ選択装置。
【請求項５】
ファイルの種類と前記オリジナルタイムスタンプ取得方法との対応関係を記憶させたファイル種類別オリジナルタイムスタンプ取得方法テーブルを備え、
前記判断手段は、前記ファイル種類別オリジナルタイムスタンプ取得方法テーブルに基づき、前記サービス識別子が示すファイルの種類に対応するオリジナルタイムスタンプ取得方法を判断することを特徴とする請求項４に記載のサーバ選択装置。
【請求項６】
ディレクトリの識別子と前記オリジナルタイムスタンプ取得方法との対応関係を記憶させたディレクトリ別オリジナルタイムスタンプ取得方法テーブルを備え、
前記判断手段は、前記ディレクトリ別オリジナルタイムスタンプ取得方法テーブルに基づき、前記サービス識別子が示すディレクトリに対応するオリジナルタイムスタンプ取得方法を判断することを特徴とする請求項４に記載のサーバ選択装置。
【請求項７】
あるオリジナルディレクトリの複製ディレクトリを複数のミラーサーバ上に作成し、複数のサーバを用いて情報を提供する情報サービスシステムにおいて、コンピュータに、サービス識別子を含む情報を入力とし、前記ミラーサーバ群の中から情報を提供する情報提供元サーバを選択させるサーバ選択プログラムであって、
ファイルの属性値でファイル間の値の順序がオリジナルディレクトリに蓄積された順序を示すものをタイムスタンプとし、あるディレクトリに属するファイルのタイムスタンプの最新の値を当該ディレクトリのディレクトリタイムスタンプとし、
前記ミラーサーバそれぞれの前記複製ディレクトリのディレクトリタイムスタンプを取得させる手順１と、
前記手順１で取得させたディレクトリタイムスタンプを、前記各ミラーサーバそれぞれの前記複製ディレクトリ毎にディレクトリタイムスタンプテーブルに記憶させる手順２と、
オリジナルディレクトリに蓄積され、サービス識別子が示すファイルのタイムスタンプをオリジナルタイムスタンプとして取得させる手順３と、
前記ディレクトリタイムスタンプテーブルを参照させ、ディレクトリタイムスタンプが前記オリジナルタイムスタンプよりも古い前記複製ディレクトリを保持する前記ミラーサーバを、選択するサーバから除外させる手順４と、
前記手順４で除外させたサーバ以外のサーバの中から情報を提供するサーバを決定させる手順５とを、コンピュータに実行させることを特徴とするサーバ選択プログラム。
【請求項８】
前記ファイルのタイムスタンプは、ファイルがオリジナルディレクトリに蓄積された時刻を表すことを特徴とする請求項７に記載のサーバ選択プログラム。
【請求項９】
オリジナルディレクトリの属性値でオリジナルディレクトリの更新が発生するたびに加算されるものをバージョン番号とするとき、前記ファイルのタイムスタンプは、当該ファイルがオリジナルディレクトリに蓄積された直後のオリジナルディレクトリのバージョン番号を表すことを特徴とする請求項７に記載のサーバ選択プログラム。
【請求項１０】
前記手順３は、オリジナルディレクトリに蓄積されておりサービス識別子が示すファイルのタイムスタンプを取得するか、オリジナルディレクトリのディレクトリタイムスタンプを取得するかのオリジナルタイムスタンプ取得方法を前記サービス識別子をもとに判断させる手順３Ａと、
前記手順３Ａでの判断結果に基づき、オリジナルディレクトリに蓄積されておりサービス識別子が示すファイルのタイムスタンプ、あるいは、オリジナルディレクトリのディレクトリタイムスタンプを、前記オリジナルタイムスタンプとして取得させる手順３Ｂとを含むことを特徴とする請求項７ないし請求項９のいずれか１項に記載のサーバ選択プログラム。
【請求項１１】
ファイルの種類と前記オリジナルタイムスタンプ取得方法との対応関係を記憶させたファイル種類別オリジナルタイムスタンプ取得方法テーブルを備え、
前記手順３Ａは、前記ファイル種類別オリジナルタイムスタンプ取得方法テーブルを参照させ、前記サービス識別子が示すファイルの種類に対応するオリジナルタイムスタンプ取得方法を判断させる手順であることを特徴とする請求項１０に記載のサーバ選択プログラム。
【請求項１２】
ディレクトリの識別子と前記オリジナルタイムスタンプ取得方法との対応関係を記憶させたディレクトリ別オリジナルタイムスタンプ取得方法テーブルを備え、
前記手順３Ａは、前記ディレクトリ別オリジナルタイムスタンプ取得方法テーブルを参照させ、前記サービス識別子が示すディレクトリに対応するオリジナルタイムスタンプ取得方法を判断させる手順であることを特徴とする請求項１０に記載のサーバ選択プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ選択装置およびサーバ選択プログラムに係わり、特に、複数のサーバを用いた情報サービスシステムにおいて、情報提供元サーバをより短時間に選択する際に有効な技術に関する。
【０００２】
【従来の技術】
コンピュータデータ化された情報をファイルと呼び、ファイルを蓄積する手段をファイルシステムと呼ぶ。
このファイルシステムは、蓄積するファイルそれぞれについて属性情報テーブルを保持しており、この属性情報テーブルの一フィールドとして更新時刻フィールドがある。
この更新時刻フィールドは、ファイルが生成、更新された時刻を示すものである。但し、ファイルシステム管理者による操作やプログラムによってこのフィールドを別のある値に設定することもできる。
ファイルシステムを保持するサーバをインターネット上に設置して提供する情報サービスとして、ホームページを記述したファイルやデジタル符号化した音楽ファイルを配信するファイル配信サービスが知られている。
また、別の情報サービスの例として、ファイルシステムが保持するファイルをデータベースプログラムによって参照した結果を通知するデータベースサービスが知られている。
【０００３】
あるオリジナルファイルの複製を複数のサーバに蓄積し、複数のサーバを用いて情報サービスを提供する手法をミラーリングと呼び、複製を保持するサーバをミラーサーバ、オリジナルファイルを保持するサーバをオリジナルサーバと呼ぶ。
１台のサーバが同時に実行できるサービスの数は限られているため、多数のユーザが、あるサーバに対して同時にサービス要求を行なった場合の対処法としてミラーリングは有効である。
また、ミラーサーバを異なる拠点に分散させて配備することによって、一箇所のサーバから配信する場合よりも、ネットワーク内で発生するデータ転送負荷（トラヒック）を軽減することができる。
このように、多ユーザへのサービス提供に必要なサーバの負荷分散、ネットワークトラヒック軽減などを達成するために、ミラーリングは不可欠な技術である。
【０００４】
典型的なミラーサーバの運用形態では、ミラーリングは適当なディレクトリを単位として設定され、このミラーリング設定の単位となるディレクトリを制御単位ディレクトリと呼ぶ。
ミラーサーバには、各制御単位ディレクトリについて、オリジナルサーバのアドレスと、オリジナルサーバ上のパス名が登録される。
ミラーサーバは、この登録に従い、オリジナルサーバからファイルを受信してオリジナルサーバの複製対象ディレクトリとまったく同じファイルを含むディレクトリを生成する。
オリジナルサーバの複製対象ディレクトリをオリジナルディレクトリと呼び、ミラーサーバに生成されるディレクトリを複製ディレクトリと呼ぶ。
【０００５】
ミラーサーバは、各複製ディレクトリについてオリジナルサーバからＦＴＰ（File Transfer Protocol）などのファイル転送プロトコルを用いてファイルを受信する。この処理をミラーリング処理と呼び、このミラーリング処理は周期的に実行される。
オリジナルディレクトリに新規のファイルが生成されたり、オリジナルディレクトリのファイルが更新される事象をオリジナルディレクトリの更新と表す。
ここで、留意すべき点として以下のものがある。
オリジナルディレクトリが更新されても、ミラーサーバのディレクトリは瞬時には更新されない。
言い換えれば、ミラーリング処理を実行する次の周期がくるまでの間と、更新ファイルが転送されている間では、オリジナルサーバのファイルとミラーサーバのファイルとが異なる内容になる。このような状態を更新ずれと呼ぶ。
【０００６】
一方、インターネット上の情報サービスはサービス識別子によって識別される。
特に、ファイル配信サービスについては、ＵＲＬ（uniform Resource Locator）とよばれるサービス識別子の形式が定義されている。
ＵＲＬは、ファイルを配信するサーバの識別子とサーバ内のファイルパスによって構成される。
ファイル提供者はＵＲＬを利用者に広告し、利用者は広告されたＵＲＬを端末に入力する。端末は、入力されたＵＲＬが示すサーバに対してファイル要求を行ない、ファイルを受信する。
ミラーサーバを用いたファイル配信において、端末にミラーサーバからファイルを受信させるには、ミラーサーバの識別子を含むＵＲＬを端末に入力する必要がある。
しかし、このしくみではミラーリングが行なわれるファイルについてはミラーサーバの数だけのＵＲＬを広告する必要が生じてしまう。
【０００７】
これを解決するために、ある一つのＵＲＬだけを代表ＵＲＬとして広告しながらミラーサーバからサービスを提供する方法がある。
この方法をリダイレクトと呼び、以下、このリダイレクトのしくみについて説明する。
なお、以降の説明において、あるサーバｓに蓄積されている、あるファイルｆのタイムスタンプをＴ（ｆ、ｓ）と表記し、ファイルｆが属する制御単位ディレクトリをＤ（ｆ）と記す。
また、あるディレクトリｄのオリジナルサーバをＳｏ（ｄ）とし、ｄのオリジナルディレクトリ、または複製ディレクトリを保持するサーバのリストをＬ（ｄ）と記し、あるＵＲＬ  ｒのサーバ識別子部分をｒ．ｓとし、ｒが示すファイルをｒ．ｆと記す。
リダイレクトの説明として、ミラーリングされている、あるファイルＦが配信されるしくみを、図１２を用いて説明する。
【０００８】
サービス提供者は、Ｒ．ｆ＝ＦとするＵＲＬ  Ｒを代表ＵＲＬとして広告し、利用者はこのＵＲＬ  Ｒを端末４から入力する。
端末４は、まずサーバ識別子Ｒ．ｓを取得し、サーバＲ．ｓ（２）に対してＵＲＬ  Ｒを含むファイル要求メッセージを送信する（図１２に示す１．サービス要求）。
なお、図１２では、サーバ識別子Ｒ．ｓを有するサーバが、オリジナルサーバＳｏ（ｄ）である場合を図示している。
これに応じて、サーバＲ．ｓ（２）は、サービス識別子Ｒから要求ファイルＲ．ｆ＝Ｆを認識し、ファイルＦが属する制御単位ディレクトリＤ（Ｆ）を認識し、ディレクトリＤ（Ｆ）の複製を保持するミラーサーバのリストＬ（Ｄ（Ｆ））の中から適切なサーバ（情報提供元サーバ）を選択する（図１２に示す２．サーバ選択処理）。
【０００９】
ここで、選択されたサーバの識別子をＳｚと表す。
そして、サーバＲ．ｓは、新たなＵＲＬ  ＰをＰ．ｓ＝Ｓｚ、Ｐ．ｆ＝Ｆとして生成し、このＵＲＬ  Ｐを含むリダイレクトメッセージを端末に対する応答として送信する（図１２に示す３．リダイレクト）。
リダイレクトメッセージを受信した端末４は、メッセージに含まれているＵＲＬ  Ｐからサーバの識別子Ｐ．ｓ＝Ｓｚを取得し、サーバＳｚ（３）に対してファイル要求メッセージを送信する（図１２に示す４．コンテンツ要求）。
これに応じて、サーバＳｚ（３）は正常応答メッセージを返し（図１２に示す５．正常応答）、続けてファイルＦを送信する。
上記の手順において、代表ＵＲＬが示すサーバ、即ち、サーバＲ．ｓ（２）、を代表サーバと呼ぶ。
【００１０】
代表サーバ２は、代表ＵＲＬ  Ｒを入力とし、ファイルＲ．ｆ＝Ｆを配信可能なサーバ群Ｌ（Ｄ（Ｆ））を候補サーバとして、候補サーバの中から適当なサーバを選択する手段を含み、この手段をサーバ選択装置１と呼ぶ。
サーバ選択装置１は、ファイル更新ずれが発生しているミラーサーバを選択しないことが望ましい。
そこで、サーバ選択装置１は、侯補サーバＬ（Ｄ（Ｆ））に含まれる各サーバｓについて、サーバｓに保持されているファイルＦのタイムスタンプＴ（Ｆ，ｓ）と、オリジナルサーバＳｏ（Ｄ（Ｆ））に保持されているファイルＦのタイムスタンプＴ（Ｆ，Ｓｏ（Ｄ（Ｆ）））とを比較し、Ｔ（Ｆ，ｓ）がＴ（Ｆ，Ｓｏ（Ｄ（Ｆ）））よりも古い場合には当該サーバｓを選択しないようにする。
なお、従来のサーバ選択装置においては、ファイルの属性情報の更新時刻フィールドの値がファイルのタイムスタンプとして用いられる。
【００１１】
図１３は、一般的なサーバ選択装置１の概略構成を示すブロック図である。
サーバリストテーブル１４は、当該サーバ選択装置１がサーバ選択を行なう各ディレクトリｄについてサーバリストＬ（ｄ）を記憶するテーブルである。
サーバリスト参照手段１５は、入力であるＵＲＬ  Ｒから、Ｒが示すファイル（Ｒ．ｆ）が属する制御単位ディレクトリＤ（Ｒ．ｆ）に対応するサーバリストＬ（Ｄ（Ｒ．ｆ））をサーバリストテーブル１６から参照取得する手段である。オリジナルタイムスタンプ取得手段１６は、オリジナルサーバＳｏ（Ｄ（Ｒ．ｆ））に蓄積されているファイルＲ．ｆのタイムスタンプＴ（Ｒ．ｆ，Ｓｏ（Ｄ（Ｒ．ｆ）））を取得する手段である。
本明細書では、このタイムスタンプＴ（Ｒ．ｆ，Ｓｏ（Ｄ（Ｒ．ｆ）））をオリジナルタイムスタンプと呼び、サービス識別子Ｒから求められるオリジナルタイムスタンプをＴｏ（Ｒ）と記す。
複製ファイルタイムスタンプ取得手段１３は、サーバリストＬ（Ｄ（Ｒ．ｆ）中のサーバｓ上のファイルＲ．ｆのタイムスタンプＴ（Ｒ．ｆ，ｓ）を取得する手段である。
サーバ絞込み手段１２は、Ｔ（Ｒ．ｆ，ｓ）がＴｏ（Ｒ）よりも古いサーバｓを除外する手段であり、１１は複数のサーバの中から任意のサーバを選択する決定手段である。
【００１２】
インターネット上の典型的なホームページはＨＴＭＬという形式で記述されている。ＨＴＭＬは、ホームページの構成、文章を記述するためのファイルである。
ホームページが画像を含む場合には、ＨＴＭＬファイルには表示すべき画像ファイルの識別子が含まれている。このように、あるファイルに別ファイルの識別子を記述することをリンク参照と呼ぶ。
このようなホームページを表示する場合、利用者端末はまずＨＴＭＬファイルを受信し、次に、ＨＴＭＬファイルにリンク参照されている画像ファイルを受信する。
リンク参照におけるファイル識別子は次の三つの形式のいずれかである。
第一の形式は、”／”で始まるファイルパス形式である。
第二の形式は、”／”で始まらないファイルパス形式である。
第三の形式はＵＲＬ形式である。
【００１３】
第一の形式または第二の形式を相対参照形式と呼び、第三の形式を絶対参照形式と呼ぶ。
絶対参照形式の場合、利用者端末はファイル識別子が示すサーバからリンク参照されているファイルを受信する。
相対参照形式の場合、利用者端末は、ＨＴＭＬファイルを配信したサーバから、リンク参照されているファイルを受信する。
従って、相対参照形式のリンク参照を含むホームページがミラーサーバとサーバ選択装置によって配信されている場合、サーバ選択が実行されるのはＨＴＭＬファイル配信時のみである。
ＨＴＭＬファイルによってリンク参照されているファイルを受信するとき、利用者端末はＨＴＭＬファイル受信時に通知されたサーバに対してファイル要求を送信する。
つまり、あるホームページが、ＨＴＭＬファイルＦｌと、Ｆｌが相対リンク参照する画像ファイルＦ２とによって構成される場合、このファイルを受信する端末の動作は次の通りとなる。
【００１４】
ここで、ホームページの代表サービス識別子Ｒは、Ｒ．ｓ＝Ｓｏ（Ｄ（Ｆ１））、Ｒ．ｆ＝Ｆ１となっているものとする。
まず、端末はこのサービス識別子Ｒを入力として、ファイルＦ１を受信する。ここで、ホームページがミラーリングされている場合には、前述のリダイレクト手順により、サーバＳｏ（Ｄ（Ｆ１））は、サーバ選択装置１が選択したサーバＳｚの識別子を含む新たなサービス識別子Ｐ（Ｐ．ｓ＝Ｓｚ、Ｐ．ｆ＝Ｆ１）を端末に通知し、端末はサーバＳｚからファイルＦｌを受信する。
次に、端末はファイルＦ１の記述を解釈し、画像ファイルＦ２への相対リンク参照を認識し、画像ファイルＦ２を受信する。
このとき、画像ファイルＦ２を配信するサーバは、ファイルＦ１を配信したサーバであるとみなす。
ホームページがミラーリングされていない場合、このサーバはＲ．ｓである。ミラーリングされている場合、このサーバはＰ．ｓ＝Ｓｚである。
【００１５】
【発明が解決しようとする課題】
従来のサーバ選択装置は、以下のような問題点があった。
第一の問題点は、サーバ選択処理を行なうたびにミラーサーバに保持されているファイルのタイムスタンプを取得するため、サーバ選択の所要時間が大きくなる点である。
第二の問題点は、要求ファイルが別のファイルを相対参照形式でリンク参照している場合に、サーバ選択装置が要求ファイルのタイムスタンプに基づくサーバ除外処理を行なっても、要求ファイルによってリンク参照されているファイルについての更新ずれの有無まで認識できない点である。
このため、リンク参照されているファイルを利用者端末が受信するときに、古いファイルが配信されてしまう可能性がある。
【００１６】
前述のＨＴＭＬファイルＦ１と画像ファイルＦ２によって構成されるホームページをミラーリングを用いて配信する例を用いて説明する。
サーバ選択装置は、ファイルＦ１を配信するときにサーバＳｚを選択する。
このとき、Ｔ（Ｆ１，Ｓｚ）が、Ｔ（Ｆ１，Ｓｏ（Ｄ（Ｆ１）））よりも古くないことは確保される。
しかし、画像ファイルＦ２について、Ｔ（Ｆ２，Ｓｚ）がＴ（Ｆ２，Ｓｏ（Ｄ（Ｆ１））よりも古くないことは確認されない。
このため、コンテンツ発信者が画像ファイルＦ２のみを更新し、サーバＳｚにおいて画像ファイルＦ２について更新ずれが発生している場合でも、サーバ選択装置はサーバＳｚを選択してしまう。
この結果、更新前の画像ファイルＦ２が端末に配信されてしまう。
【００１７】
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、複数のサーバを用いた情報サービスシステムにおいて、従来よりも、より短時間に情報提供元サーバを選択することが可能なサーバ選択装置を提供することにある。
また、本発明の他の目的は、複数のサーバを用いた情報サービスシステムにおいて、相対参照形式で他のファイルを参照しているファイルを配信する場合に、相対参照されているファイルについても最新版を保持する情報提供元サーバを選択することが可能なサーバ選択装置を提供することにある。
また、本発明の他の目的は、前述のサーバ選択処理を、コンピュータに実行させるサーバ選択プログラムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
【００１８】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
即ち、本発明は、ファイルの属性値でファイル間の値の順序がオリジナルディレクトリに蓄積された順序を示すものをタイムスタンプとし、あるディレクトリに属するファイルのタイムスタンプの最新の値を当該ディレクトリのディレクトリタイムスタンプとし、従来のサーバ選択装置に、各ミラーサーバの各複製ディレクトリのディレクトリタイムスタンプを取得するディレクトリタイムスタンプ取得手段と、この手段により取得したディレクトリタイムスタンプを各ミラーサーバの各複製ディレクトリ毎に記憶するディレクトリタイムスタンプテーブルを追加し、さらに、サーバ絞込み手段において、前記ディレクトリタイムスタンプテーブルを参照し、ディレクトリタイムスタンプが前記オリジナルタイムスタンプよりも古い前記複製ディレクトリを保持するミラーサーバを候補サーバから除外することを特徴とする。
【００１９】
前述したタイムスタンプ、ディレクトリタイムスタンプの定義によれば、ファイルのタイムスタンプの順序は、ファイルがオリジナルサーバに蓄積された順序を示すので、ある複製ディレクトリのディレクトリタイムスタンプが、あるファイルのタイムスタンプよりも古い場合には、当該複製ディレクトリは当該ファイルを保持していないと判断できる。
また、ディレクトリタイムスタンプはディレクトリごとの属性情報である。
したがって、同一ディレクトリ内の異なるファイルについて、サーバ選択装置がサーバ選択処理を連続的に行なう場合には、ディレクトリタイムスタンプを複製ディレクトリから取得し直す必要がない。
前述の手段によれば、各複製ディレクトリについてディレクトリタイムスタンプを記憶保持するディレクトリタイムスタンプテーブルを、サーバ選択装置に追加するようにしたので、前述した理由により、サーバ選択の度に複製ディレクトリからタイムスタンプを取得する必要がなくなり、従来よりも、より短時間に情報提供元サーバを選択することが可能となる。
【００２０】
また、本発明は、オリジナルタイムスタンプ取得手段に、前述のサービス識別子が示すファイルのタイムスタンプをオリジナルタイムスタンプとして取得するか、当該ファイルが属するオリジナルディレクトリのディレクトリタイムスタンプをオリジナルタイムスタンプとして取得するかのオリジナルタイムスタンプ取得方法を判断する判断手段を追加し、オリジナルタイムスタンプ取得手段は、前記判断手段の判断結果に基づき、オリジナルディレクトリに蓄積されておりサービス識別子が示すファイルのタイムスタンプ、あるいは、オリジナルディレクトリのディレクトリタイムスタンプを、前記オリジナルタイムスタンプとして取得することを特徴とする。
【００２１】
サービス提供者があるファイルを更新してから当該ファイルが、ある複製ディレクトリに複製されるまでの間において、当該複製ディレクトリのディレクトリタイムスタンプは、オリジナルディレクトリのディレクトリタイムスタンプよりも古くなる。
従って、オリジナルディレクトリのディレクトリタイムスタンプをオリジナルタイムスタンプとすれば、サーバ選択装置は、サービス識別子が示すファイルが属するディレクトリの任意のファイルについて更新ずれが発生している複製ディレクトリを候補サーバから除外する。
これにより、ファイルＦ１と、ファイルＦ１によって相対リンク参照されるファイルＦ２とが、同一のディレクトリに属する限り、ファイルＦ２についても最新のものを保持するサーバが選択することができる。
【００２２】
一方、サービス識別子が示すファイルのタイムスタンプと当該ファイルが属するオリジナルディレクトリのディレクトリタイムスタンプとのどちらをオリジナルタイムスタンプとするのが適切であるかは、配信されるファイルの種類に依存する。
前述の手段によれば、サービス識別子をもとにオリジナルタイムスタンプ取得方法を判断する手段をサーバ選択装置に追加するようにしたので、より適切なオリジナルタイムスタンプを得ることが可能となる。
また、本発明の一実施の形態では、前記ファイルのタイムスタンプは、ファイルがオリジナルディレクトリに蓄積された時刻と定義する。
また、本発明の他の実施の形態では、オリジナルディレクトリの属性値でオリジナルディレクトリの更新が発生するたびに加算されるものをバージョン番号と定義し、前記ファイルのタイムスタンプは、当該ファイルがオリジナルディレクトリに蓄積された直後のオリジナルディレクトリのバージョン番号と定義する。また、本発明は、前述のサーバ選択処理を、コンピュータに実行させるサーバ選択プログラムである。
【００２３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
［実施の形態１］
図１は、本発明の実施の形態１のサーバ選択装置の概略構成を示すブロック図である。
本実施の形態では、各ミラーサーバの各複製ディレクトリのディレクトリタイムスタンプを取得するディレクトリタイムスタンプ取得手段１７と、この手段１７により取得したディレクトリタイムスタンプを各ミラーサーバの各複製ディレクトリ毎に記憶するディレクトリタイムスタンプテーブル１８とが、従来のサーバ選択装置１に追加される。
また、本実施の形態のサーバ選択装置１のサーバ絞込み手段１２は、前記ディレクトリタイムスタンプテーブル１８を参照し、ディレクトリタイムスタンプが前記オリジナルタイムスタンプよりも古い前記複製ディレクトリを保持するミラーサーバを候補サーバから除外する。
【００２４】
ここで、ファイルのタイムスタンプとは、ファイルの属性値で値の順序がオリジナルディレクトリに蓄積された順序に一致するものを表し、また、ディレクトリタイムスタンプとは、あるディレクトリに属するファイルのタイムスタンプの最新値を表す。
なお、図１では、あるファイルｆがあるディレクトリｄに属するときこれをｆ∈ｄと表している。
タイムスタンプは、値が大きいほどオリジナルディレクトリに蓄積された時刻が新しいことを示すこととする。
ここで、あるディレクトリｄのあるミラーサーバｓ上の複製ディレクトリのディレクトリタイムスタンプをＴｄ（ｄ，ｓ）と記す。
ディレクトリタイムスタンプ取得手段１７は、ミラーリングされている各ディレクトリｄの各ミラーサーバｓの複製ディレクトリについてディレクトリタイムスタンプＴｄ（ｄ，ｓ）を取得する。
ディレクトリタイムスタンプテーブル１８は、各ディレクトリｄ、各ミラーサーバｓについてディレクトリタイムスタンプＴｄ（ｄ，ｓ）を記憶する。
【００２５】
サーバ絞込み手段１２は、入力サービス識別子Ｒが示すファイルＲ．ｆが属するディレクトリＤ（Ｒ．ｆ）の候補サーバＬ（Ｄ（Ｒ．ｆ））に属するあるサーバｓ（ｓ∈Ｌ（Ｄ（Ｒ．ｆ））について、当該サーバｓの複製ディレクトリＤ（Ｒ．ｆ）のディレクトリタイムスタンプＴｄ（Ｄ（Ｒ・ｆ），ｓ）をディレクトリタイムスタンプテーブル１８を参照して取得し、オリジナルタイムスタンプ取得手段１６によって求められたオリジナルタイムスタンプＴｏ（Ｒ）よりも、当該ディレクトリタイムスタンプＴｄ（Ｄ（Ｒ．ｆ），ｓ）が古い場合（即ち、Ｔｄ（Ｄ（Ｒ．ｆ），ｓ）＜Ｔｏ（Ｒ）である場合）に、当該サーバｓを候補サーバから除外する。
このサーバ絞込み手段１２による除外処理の結果、残った候補サーバのリストをＬ’（Ｒ）と記す。
Ｌ’（Ｒ）は、｛ｓ｜ｓ∈Ｌ（Ｄ（Ｒ．ｆ））、かつＴｄ（Ｄ（Ｒ．ｆ），ｓ）≧Ｔｏ（Ｒ）｝となる。
サーバ決定手段１１は、候補サーバリストＬ’（Ｒ）の中から情報提供元サーバを決定する。
【００２６】
前述したタイムスタンプ、ディレクトリタイムスタンプの定義によれば、ファイルのタイムスタンプの順序は、ファイルがオリジナルサーバに蓄積された順序を示すので、ある複製ディレクトリのディレクトリタイムスタンプが、あるファイルのタイムスタンプよりも古い場合には、当該複製ディレクトリは当該ファイルを保持していないと判断できる。また、ディレクトリタイムスタンプはディレクトリごとの属性情報である。
従って、同一ディレクトリ内の異なるファイルについて、サーバ選択装置１がサーバ選択処理を連続的に行なう場合には、ディレクトリタイムスタンプを複製ディレクトリから取得し直す必要がない。
これを利用して、各複製ディレクトリについてディレクトリタイムスタンプを記憶保持するディレクトリタイムスタンプテーブル１８を、サーバ選択装置１に追加することにより、サーバ選択の度に複製ディレクトリからタイムスタンプを取得する必要がなくなり、より短時間にサーバ選択を実行できる。
【００２７】
【実施の形態２】
図２は、本発明の実施の形態２のサーバ選択装置の概略構成を示すブロック図である。
本発明の実施の形態２のサーバ選択装置１では、オリジナルタイムスタンプ取得手段１６が、サービス識別子が示すファイルのタイムスタンプをオリジナルタイムスタンプとして取得するか、当該ファイルが属するオリジナルディレクトリのディレクトリタイムスタンプをオリジナルタイムスタンプとして取得するかのオリジナルタイムスタンプ取得方法を判断する判断手段５１を有し、オリジナルタイムスタンプ取得手段１６は、判断手段５１の判断結果に基づき、サービス識別子が示すファイルのタイムスタンプ、あるいは、当該ファイルが属するオリジナルディレクトリのディレクトリタイムスタンプを、オリジナルタイムスタンプとして取得する。
つまり、本実施の形態のサーバ選択装置１では、オリジナルタイムスタンプ取得手段１６は、オリジナルタイムスタンプＴｏ（Ｒ）として、ディレクトリタイムスタンプＴｄ（Ｄ（Ｒ．ｆ），Ｓｏ（Ｄ（Ｒ．ｆ）））、またはＴ（Ｒ．ｆ，Ｓｏ（Ｄ（Ｒ．ｆ））のどちらかを適応的に取得する。
【００２８】
また、ファイルの種類とオリジナルタイムスタンプ取得方法との対応関係を記憶させたファイル種類別オリジナルタイムスタンプ取得方法テーブル５３、あるいは、ディレクトリの識別子とオリジナルタイムスタンプ取得方法との対応関係を記憶させたディレクトリ別オリジナルタイムスタンプ取得方法テーブル５４がサーバ選択装置１に追加される。
前記判断手段５１は、サービス識別子が示すファイルの種類に対応するオリジナルタイムスタンプ取得方法を、ファイル種類別オリジナルタイムスタンプ取得方法テーブル５３、あるいは、ディレクトリ別オリジナルタイムスタンプ取得方法テーブル５４から取得する。
【００２９】
サービス提供者があるファイルを更新してから当該ファイルが、ある複製ディレクトリに複製されるまでの間において、当該複製ディレクトリのディレクトリタイムスタンプは、オリジナルディレクトリのディレクトリタイムスタンプよりも古くなる。
従って、オリジナルディレクトリのディレクトリタイムスタンプをオリジナルタイムスタンプとすれば、サーバ選択装置１は、サービス識別子が示すファイルが属するディレクトリの任意のファイルについて更新ずれが発生している複製ディレクトリを候補サーバから除外する。
つまり、前述のＨＴＭＬファイルＦ１と、ファイルＦ１によって相対リンク参照されるファイルＦ２とによって構成されるホームページをミラーリングによって配信しており、ファイルＦ２について更新ずれが発生している場合には、オリジナルディレクトリ２３のディレクトリタイムスタンプをオリジナルタイムスタンプとすれば、Ｆ１とＦ２が同一のディレクトリに属する限り、ファイルＦ２についても最新のものを保持するサーバが選択される。
【００３０】
サービス識別子が示すファイルのタイムスタンプと当該ファイルが属するオリジナルディレクトリのディレクトリタイムスタンプとのどちらをオリジナルタイムスタンプとするのが適切であるかは、配信されるファイルの種類に依存する。そこで、本実施の形態では、サービス識別子をもとにオリジナルタイムスタンプ取得方法を判断する判断手段５１をサーバ選択装置に追加する。
なお、本実施の形態においても、ファイルのタイムスタンプをオリジナルサーバに蓄積された時刻と定義する。
なお、前述の各実施の形態において、オリジナルディレクトリの属性として、当該ディレクトリが更新されるごとに値が加算されるものをバージョン番号と定義し、ファイルのタイムスタンプを、当該ファイルがオリジナルディレクトリに蓄積された直後のオリジナルディレクトリのバージョン番号と定義することも可能である。
【００３１】
【実施の形態３】
図３は、本発明の実施の形態３のサーバ装置の概略構成を示すブロック図である。
本実施の形態は、前述の実施の形態１のサーバ選択装置を、コンピュータとそのコンピュータ上で動作するコンピュータプログラムによって実現した実施の形態である。
図３に示すサーバ選択装置１、オリジナルサーバ２、ミラーサーバ３は、ＦＴＰ（File Transfer Protocol）、ＨＴＴＰ（Hyper Text Transfer Protocol）による通信機能をそなえるコンピュータである。
なお、ＦＴＰ、ＨＴＴＰは、ＩＥＴＦ（Internet Engineering Task Force）によって標準化され、開示されている。
サーバ選択装置上のディレクトリタイムスタンプ取得プログラム１０１と選択要求処理取得プログラム１０２、および、オリジナルサーバ上の更新受付プログラム２１、並びに、ミラーサーバ上のミラーリングプログラム３１は、コンピュータプログラムである。
なお、これらの各プログラムは、ＣＤ−ＲＯＭなどの記憶媒体で提供される。また、これらの各プログラムは、ＦＴＰやＨＴＴＰといったデータ転送方式によりネットワークを用いて配信される。
【００３２】
前述のサーバ選択装置１における、ディレクトリタイムスタンプ取得手段１７は、ディレクトリタイムスタンプ取得プログラム１０１によって実現される。
また、オリジナルタイムスタンプ取得手段１６、サーバリスト参照手段１５、サーバ絞込み手段１２、およびサーバ決定手段１１は、選択要求処理取得プログラム１０２のサブルーチンとして実現する。
また、ディレクトリタイムスタンプテーブル１８は、ディレクトリタイムスタンプテーブルファイルというファイルをサーバ選択装置１に蓄積することによって実現する。ディレクトリタイムスタンプテーブルファイルの形式は後述する。オリジナルサーバ２には、オリジナルディレクトリ２３とは別に、更新受付ディレクトリ２１を作成しておく。
更新受付ディレクトリ２１は、サービス提供者から新規ファイルや更新されたファイルを受け付けるためのディレクトリである。
サービス提供者は、新たに発信したいファイルや更新したファイルを更新受付ディレクトリにＦＴＰを用いて蓄積する。
【００３３】
本実施の形態では、ファイルのタイムスタンプは、オリジナルサーバ２のオリジナルディレクトリ２３に蓄積された時刻とする。
このタイムスタンプを保持するため、ファイルの属性情報の更新時刻フィールドをオリジナルディレクトリ２３に蓄積された時刻に設定する。この設定処理は更新受付プログラム２２が行なう。
以下、更新受付プログラム２２の処理内容について説明する。
更新受付プログラム２２は、更新受付ディレクトリ２１を周期的に監視し、オリジナルディレクトリ２３に存在しないファイルが更新受付ディレクトリ２１に存在していれば、当該ファイルをオリジナルディレクトリ２３に蓄積する。この際、ファイルの更新時刻フィールドを現在時刻に設定する。
この更新受付プログラム２２によって、ファイルの更新時刻フィールドはオリジナルディレクトリ２３に蓄積された時刻を示すこととなる。
なお、以下の説明において、ファイルのタイムスタンプとは、ファイルの更新時刻フィールドの値を示す。
また、ファイルがディレクトリに存在するか否かの判断は、当該ファイルの名前、サイズ（バイト数）、更新時刻フィールドの値が一致するファイルが当該ディレクトリ内に存在するか否かによって行う。
【００３４】
ミラーサーバ３には、図４に示すＭｉｒｒｏｒＣｏｎｔｒｏｌファイル１１０をミラーリング設定ファイルとして作成しておく。
このファイル１１０の各行は、ある複製ディレクトリの設定パラメータを、１番目の単語が複製ディレクトリの名前、２番目の単語がオリジナルディレクトリ２３にＦＴＰでアクセスするためのＦＴＰ  ＵＲＬ、として示す。
ミラーサーバのミラーリングプログラム３１は、周期的に次の同期サブルーチンを実行する。
同期サブルーチンは、ＭｉｒｒｏｒＣｏｎｔｒｏｌファイル１１０を参照し、各複製ディレクトリのオリジナルディレクトリ２３にＦＴＰでアクセスし、ディレクトリのリストをオリジナルディレクトリ２３から取得し、当該リストに記されているファイルのうち複製ディレクトリに存在しないものをオリジナルディレクトリ２３から取得する。
【００３５】
サーバ選択装置１には、図５に示すサーバリストテーブルファイル（図１のサーバリストテーブル１４）１１１と、図６に示すオリジナルディレクトリファイル１１２とを作成しておく。
サーバリストテーブルファイル１１１の各行は、あるディレクトリのあるミラーサーバ上の複製ディレクトリの情報を示す。
オリジナルディレクトリファイル１１２の各行は、ミラーリングされる、あるディレクトリのオリジナルディレクトリ２３の情報を示す。
サーバリストテーブルファイル１１１、または、オリジナルディレクトリファイル１１２の各行の第１番目の単語はディレクトリ名を示す。
各行の第２番目の単語は、当該ディレクトリにＨＴＴＰでアクセスするためのＨＴＴＰ  ＵＲＬを示す。このＵＲＬを情報配信用ＵＲＬと呼ぶ。
各行の第３番目の単語は、当該ディレクトリにＦＴＰでアクセスするためのＦＴＰ  ＵＲＬを示す。このＵＲＬを制御用ＵＲＬと呼ぶ。
【００３６】
以降の説明において、あるディレクトリｄについて、あるミラーサーバｓの複製ディレクトリの情報配信用ＵＲＬ、または制御用ＵＲＬをサーバリストテーブルファイルから取得するとは、当該ファイルの行のうち、第１番目の単語がｄに一致し、第２番目の単語がｓを含む行の第２番目の単語（情報配信用ＵＲＬ）または第３番目の単語（制御用ＵＲＬ）を取得することを意味する。
また、あるディレクトリｄのオリジナルディレクトリ２３の情報配信用ＵＲＬ、または制御用ＵＲＬをオリジナルディレクトリファイル１１２から取得するとは、当該ファイル１１２の行のうち、第１番目の単語がｄに一致する行の第２番目の単語（情報配信用ＵＲＬ）、または第３番目の単語（制御用ＵＲＬ）を取得することを意味する。
また、ある代表ＵＲＬ  Ｒに対応する制御単位ディレクトリＤ（Ｒ．ｆ）をオリジナルディレクトリファイル１１２から取得するとは、オリジナルディレクトリファイル１１２の第１番目の単語の中から当該ＵＲＬ  Ｒのファイルパス部分（Ｒ．ｆ）と前方一致による一致部分が一番長いものを取得することを意味する。
また、あるディレクトリｄのサーバリストをサーバリストテーブルファイル１１１から取得するとは、サーバリストテーブルファイル１１１を参照し、第１番目の単語がｄに一致する行すべてについて第２番目の単語を取得することを意味する。
【００３７】
ディレクトリタイムスタンプテーブル１８は、図７に示すディレクトリタイムスタンプテーブルファイル１１３をサーバ選択装置１に生成することにより実現する。
ディレクトリタイムスタンプテーブルファイル１１３の各行は、あるミラーサーバのある複製ディレクトリのディレクトリタイムスタンプを示す。
各行の第１番目の単語はディレクトリ名（ｄ）を示し、各行の第２番目の単語はミラーサーバｓの情報配信用ＵＲＬを示す。
また、各行の第３番目の単語は、当該ディレクトリｄの当該ミラーサーバｓ上の複製ディレクトリのディレクトリタイムスタンプＴｄ（ｄ，ｓ）を示す。
以降の説明において、ある情報配信用ＵＲＬに対応するディレクトリタイムスタンプテーブル１８を、ディレクトリタイムスタンプテーブルファイル１１３から取得するとは、ディレクトリタイムスタンプテーブルファイル１１３を参照し、第２番目の単語が、当該情報配信用ＵＲＬに一致する行の第３番目の単語を取得することを意味する。
【００３８】
ディレクトリタイムスタンプ取得プログラム１０１は、ミラーリングされているディレクトリの、それぞれの複製ディレクトリの、それぞれのディレクトリタイムスタンプを周期的に取得し、取得したディレクトリタイムスタンプをもとにディレクトリタイムスタンプテーブルファイル１１３を更新する。
より具体的には、ディレクトリタイムスタンプ取得プログラム１０１は、あるディレクトリｄについて、あるミラーサーバｓ上の複製ディレクトリのディレクトリタイムスタンプＴｄ（ｄ，ｓ）を取得する処理として、サーバリストテーブルファイル１１１から当該ディレクトリｄの当該ミラーサーバｓの制御用ＵＲＬを取得し、取得した制御用ＵＲＬを用いて、当該複製ディレクトリにＦＴＰでアクセスし、当該複製ディレクトリのリストを取得し、取得したリストが示すファイルのタイムスタンプの最新の値を求め、求められた値を当該複製ディレクトリのディレクトリタイムスタンプＴｄ（ｄ，ｓ）とする。
そして、ディレクトリタイムスタンプの第１番目の単語がｄに一致し、第２番目の単語がｓを含む行の第３番目の単語の値を、取得したディレクトリタイムスタンプＴｄ（ｄ，ｓ）に更新する。
【００３９】
選択要求処理取得プログラム１０２は、代表ＵＲＬ  Ｒを入力とし、選択されたサーバの情報配信用ＵＲＬを含むＵＲＬ  Ｐを出力とするプログラムであり、代表サーバのＨＴＴＰサーバプログラムによって起動される。
ＨＴＴＰサーバプログラムは、端末からサービス要求を受信すると、サービス要求に含まれるサービス識別子Ｒを入力として、選択要求処理取得プログラム１０２を起動し、選択要求処理取得プログラム１０２が出力する情報配信ＵＲＬを取得し、取得したＵＲＬに対してＲ．ｆのＤ（Ｒ．ｆ）より後ろの部分を追加してＵＲＬ  Ｐを生成し、このＵＲＬ  Ｐを含むＨＴＴＰリダイレクトメッセージを端末に送信する。
以下に、選択要求処理取得プログラム１０２の処理内容について説明する。
選択要求処理取得プログラム１０２は、サーバリスト参照サブルーチンと、オリジナルタイムスタンプ取得サブルーチンと、サーバ絞込みサブルーチンと、サーバ決定サブルーチンとを含む。
【００４０】
サーバリスト参照サブルーチンは、ＵＲＬ  Ｒを入力とし、前述した方法により、オリジナルディレクトリファイル１１２から当該ＵＲＬ  Ｒに対応する制御単位ディレクトリＤ（Ｒ．ｆ）を取得し、前述した方法によりサーバリストテーブルファイル１１１から当該制御単位ディレクトリＤ（Ｒ．ｆ）のサーバリストＬ（Ｄ（Ｒ．ｆ））を取得し、取得したサーバリストを出力する。
例えば、入力ＵＲＬ  Ｒが、http://www.ntt.co.jp/News/index.htmlである場合、まず、制御単位ディレクトリＤ（”News/index.html”）＝”News”を取得し、次に、NewsのサーバリストＬ（”News”）＝｛http://tokyo-server.ntt.co.jp/News，http://osaka-server.ntt.co.jp/News，http://nagoya-server.ntt.co.jp/News｝を取得する。
【００４１】
オリジナルタイムスタンプ取得サブルーチンは、ＵＲＬ  Ｒを入力とし、前述した方法によりオリジナルディレクトリファイル１１２から当該ＵＲＬ  Ｒに対応する制御単位ディレクトリＤ（Ｒ．ｆ）を取得し、前述した方法によりオリジナルディレクトリファイル１１２からオリジナルディレクトリ２３の情報配信用ＵＲＬを取得し、ＲのファイルパスのＤ（Ｒ．ｆ）よりも後の部分を取得した情報配信用ＵＲＬに対して追加したＵＲＬを生成し、生成したＵＲＬに対してＨＥＡＤ要求メッセージを送信し、ＨＥＡＤ応答メッセージを受信し、ＨＥＡＤ応答メッセージに含まれるファイルのタイムスタンプをオリジナルタイムスタンプＴｏ（Ｒ）として取得し、取得したオリジナルタイムスタンプＴｏ（Ｒ）を出力する。
例えば、入力ＵＲＬ  Ｒが、http://www.ntt.co.jp/News/index.htmlである場合、まず、制御単位ディレクトリＤ（”News/index.html”）＝”News”を取得し、次に、Newsのオリジナルディレクトリ２３の情報配信用ＵＲＬとして、http://www.ntt.co.jp/Newsを取得し、このＵＲＬに、/index.htmlを追加して、ＵＲＬ http://www.ntt.co.jp/News/index.htmlを生成し、このＵＲＬに対してＨＥＡＤ要求メッセージを送信し、ＨＥＡＤ応答メッセージに含まれるタイムスタンプとして、2001/1/1/11:30:00を出力する。
【００４２】
サーバ絞込みサブルーチンは、サーバリストＬ（Ｄ（Ｒ．ｆ））とオリジナルタイムスタンプＴｏ（Ｒ）とを入力とし、絞込みの結果得られたサーバリストＬ’（Ｒ）を出力する。
より具体的には、オリジナルタイムスタンプ取得サブルーチンは、入力サーバリストの各要素である情報配信ＵＲＬについて次の絞り込み処理を行なう。
即ち、前述した方法によりディレクトリタイムスタンプテーブルファイル１１３から当該情報配信ＵＲＬに対応するディレクトリタイムスタンプを取得し、取得したディレクトリタイムスタンプがオリジナルタイムスタンプＴｏ（Ｒ）よりも古い場合には、当該情報配信ＵＲＬをサーバリストＬ（Ｄ（Ｒ．ｆ））から除外する。
入力サーバリスト中のすべての情報配信ＵＲＬについて絞り込み処理を行なったのちのサーバリストをＬ’（Ｒ）として取得する。
例えば、前述のＲ＝http://www.ntt.co.jp/News/index.htmlの例では、Ｌ’（Ｒ）＝｛http://tokyo-server.ntt・co・jp/News，http://osaka-server.ntt.co.jp/News｝を出力する。
【００４３】
サーバ決定サブルーチンは、サーバリストＬ’（Ｒ）を入力とし、決定されたサーバの情報配信用ＵＲＬを出力する。
より具体的には、サブルーチンの開始ごとに値が初期化されずに前回サブルーチン実行時の値が保持される変数（スタティック変数）としてある変数Ｎを保持し、サブルーチン実行のたびにこの変数Ｎの値を１加算し、入力サーバリストに含まれる情報配信用ＵＲＬの数でＮを割ってあまった数をＫとし、入力サーバリスト中の（Ｋ＋１）番目の情報配信用ＵＲＬを決定されたサーバの情報配信用ＵＲＬとして出力する。
例えば、Ｌ’（Ｒ）＝｛http://tokyo-server.ntt.co.jp/News，http://osaka-server.ntt.co.jp/News｝が入力となる場合、サーバ決定サブルーチンは、http://tokyo-server.ntt.co.jp/Newsと、http://osaka-server.ntt.co.jp/Newsとを交互に出力する。
【００４４】
選択要求処理取得プログラム全体の動作を述べる。
まず、選択要求処理取得プログラム１０２は、代表ＵＲＬ  Ｒを入力としてサーバリスト参照サブルーチンを呼び出し、サーバリストＬ（Ｄ（Ｒ．ｆ））を取得する。
次に、選択要求処理取得プログラム１０２は、サービス識別子Ｒを入力として、オリジナルタイムスタンプ取得サブルーチンを呼び出し、オリジナルタイムスタンプＴｏ（Ｒ）を取得する。
次に、選択要求処理取得プログラム１０２は、取得したサーバリストＬ（Ｄ（Ｒ．ｆ））とオリジナルタイムスタンプＴｏ（Ｒ）とを入力として、サーバ絞込みサブルーチンを呼び出し、絞込み処理が施されたサーバリストＬ’（Ｒ）を取得する。
次に、選択要求処理取得プログラム１０２は、取得したサーバリストＬ’（Ｒ）を入力として、サーバ決定サブルーチンを呼び出し、選択されたサーバの情報配信用ＵＲＬを取得し、出力する。
【００４５】
以下、本実施の形態の変形例として、ファイルのタイムスタンプを、ファイルがオリジナルディレクトリ２３に蓄積された時刻の代わりに、ディレクトリのバージョン番号とする実施の形態について説明する。
オリジナルサーバには、図８に示すバージョン番号ファイル１１４と、図９に示すタイムスタンプファイル１１５とを、それぞれのオリジナルディレクトリ２３について作成する。
また、ミラーサーバには、各複製ディレクトリについて、図９に示すタイムスタンプファイルを生成する。
これらのファイルは、更新受付プログラム２２、ミラーリングプログラム３１によって自動的に更新される。
バージョン番号ファイル１１４は、ディレクトリのバージョン番号を示すファイルである。
タイムスタンプファイル１１５の各行は、第１番目の単語がディレクトリ内におけるファイルのパス、第２番目の単語が当該ディレクトリのタイムスタンプとしてディレクトリ内に含まれるファイルのタイムスタンプを示す。
【００４６】
更新受付プログラム２２は、更新受付ディレクトリ２１に新たなファイルが存在していれば、当該ファイルをオリジナルディレクトリ２３に蓄積する。
この際、バージョン番号ファイル内のバージョン番号の値を１加算することによりバージョン番号ファイル１１４を更新する。
また、加算後のバージョン番号を当該ファイルのタイムスタンプとして、タイムスタンプファイル１１５に当該ファイルのタイムスタンプを記入する。
当該ファイルと同一のファイルパスを示す行がタイムスタンプファイル１１５に存在する場合には当該行のタイムスタンプの値を書きかえる。
【００４７】
ミラーリングプログラム３１は、前述の方法でオリジナルサーバにＦＴＰでアクセスし、オリジナルサーバのタイムスタンプファイル１１５を取得する。
このオリジナルサーバのタイムスタンプファイル１１５が示すファイルのうち、複製ディレクトリのタイムスタンプファイル１１５に含まれていないものや、複製ディレクトリのタイムスタンプファイル１１５が示すタイムスタンプが、オリジナルサーバから取得したタイムスタンプファイル１１５が示すタイムスタンプよりも古いものをＦＴＰで取得し、取得したファイルを複製ディレクトリに蓄積する。
蓄積が完了したらオリジナルサーバから取得したタイムスタンプファイル１１５が示すタイムスタンプを、当該ファイルのタイムスタンプとして複製ディレクトリのタイムスタンプファイル１１５に記入する。
【００４８】
当該ファイルと同一のファイルパスを示す行がタイムスタンプファイル１１５に存在する場合には当該行のタイムスタンプの値を書きかえる。
ディレクトリタイムスタンプ取得サブルーチンは、前述の方法により複製ディレクトリにＦＴＰでアクセスし、複製ディレクトリのタイムスタンプファイル１１５をＦＴＰで取得して、当該タイムスタンプファイル１１５に含まれるタイムスタンプの最新の値を求め、この値を当該ディレクトリのディレクトリタイムスタンプとする。
オリジナルタイムスタンプ取得サブルーチンは、前述の方法によりオリジナルディレクトリ２３の制御用ＵＲＬを取得し、取得したＵＲＬに対してＦＴＰでアクセスし、オリジナルディレクトリ２３のタイムスタンプファイル１１５をＦＴＰで取得して、取得したタイムスタンプファイル１１５からＵＲＬ  Ｒが示すファイルのタイムスタンプを取得し、取得した値をオリジナルタイムスタンプとする。
【００４９】
【実施の形態４】
本実施の形態は、前述の実施の形態２のサーバ選択装置を、コンピュータとそのコンピュータ上で動作するコンピュータプログラムによって実現した実施の形態である。
以下、本実施の形態において、ＵＲＬに応じてオリジナルタイムスタンプ取得方法を判断する方法を説明する。
図１０に示すファイル種類別オリジナルタイムスタンプ取得方法テーブルファイル１１６をサーバ選択装置１に保存しておくことにより、ファイル種類別オリジナルタイムスタンプ取得方法テーブル５３を実現する。
このファイル１１６は、オリジナルディレクトリ２３のディレクトリタイムスタンプをオリジナルタイムスタンプとして取得すべきファイルの拡張子を列記したものである。
オリジナルタイムスタンプ取得サブルーチンは、このファイル１１６を参照し、ＵＲＬ  Ｒが示すファイルの拡張子がこのファイルに記述されているか否かを判定し、記述されている場合にはオリジナルディレクトリ２３のディレクトリタイムスタンプをオリジナルタイムスタンプとして取得することを判断する。
【００５０】
オリジナルディレクトリ２３のディレクトリタイムスタンプをオリジナルタイムスタンプとして取得する場合、オリジナルタイムスタンプ取得サブルーチンは、オリジナルディレクトリファイル１１２を参照して、ＵＲＬ  Ｒに対応する制御単位ディレクトリを取得し、当該ディレクトリに対応する制御用ＵＲＬをオリジナルディレクトリファイル１１２から取得し、制御用ＵＲＬを用いてオリジナルディレクトリ２３にＦＴＰでアクセスし、当該ディレクトリのリストを取得し、取得したリストが示すファイルのタイムスタンプの最新の値を求め、求められた値をオリジナルタイムスタンプとする。
【００５１】
以下に、本実施の形態の変形例として、オリジナルタイムスタンプ取得方法をディレクトリ別に登録しておく実施の形態について説明する。
図１１に示すディレクトリ別オリジナルタイムスタンプ取得方法テーブルファイル１１７をサーバ選択装置１に保存しておくことによりディレクトリ別オリジナルタイムスタンプ取得方法テーブル５４を実現する。
このファイル１１７の各行は、あるディレクトリの情報を、第１番目の単語がディレクトリ識別子、第２番目の単語がオリジナルタイムスタンプ取得方法を示す。
オリジナルタイムスタンプ取得サブルーチンは、前述した方法によりオリジナルディレクトリファイル１１２を参照してサービス識別子Ｒに対応する制御単位ディレクトリを取得し、当該ディレクトリに対応するオリジナルタイムスタンプ取得方法を、ディレクトリ別オリジナルタイムスタンプ取得方法テーブルファイル１１７から取得し、このオリジナルタイムスタンプ取得方法が”Directory”であった場合、オリジナルディレクトリ２３のディレクトリタイムスタンプをオリジナルタイムスタンプとして取得する。
【００５２】
また、このオリジナルタイムスタンプ取得方法が”File”であった場合は、オリジナルディレクトリ２３に蓄積されておりＵＲＬ  Ｒが示すファイルのタイムスタンプをオリジナルタイムスタンプとして取得する。
このように、本実施の形態によれば、ファイル種類別オリジナルタイムスタンプ取得方法テーブルファイル１１６、あるいは、ディレクトリの識別子とオリジナルタイムスタンプ取得方法との対応関係を記憶させたディレクトリ別オリジナルタイムスタンプ取得方法テーブルファイル１１７を、サーバ選択装置１に追加するようにしたので、より適切なオリジナルタイムスタンプを得ることが可能となる。
なお、本実施の形態において、ファイルのタイムスタンプとして、ファイルがオリジナルディレクトリ２３に蓄積された時刻の代わりに、ディレクトリのバージョン番号とすることも可能である。
以上、本発明者によってなされた発明を、前記実施の形態に基づき具体的に説明したが、本発明は、前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【００５３】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
（１）本発明によれば、情報提供元サーバとして、更新ずれが発生しているミラーサーバを回避しながら、情報提供元サーバを選択する処理をより短時間に行なうことが可能となる。
（２）本発明によれば、ＨＴＭＬのようなホームページを配信する形態においても、情報提供元サーバとして、更新ずれが発生しているミラーサーバを回避することが可能となる。
（３）本発明によれば、より確実に最新版の情報をより高速に配信することが可能となり、利用者にとってより快適な情報サービスを実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１のサーバ選択装置の概略構成を示すブロック図である。
【図２】本発明の実施の形態２のサーバ選択装置の概略構成を示すブロック図である。
【図３】本発明の実施の形態３のサーバ選択装置の概略構成を示すブロック図である。
【図４】ミラーサーバ上に作成される、ＭｉｒｒｏｒＣｏｎｔｒｏｌファイルの内容を示す図である。
【図５】サーバ選択装置上に作成されるサーバリストテーブルファイルの内容を示す図である。
【図６】サーバ選択装置上に作成されるオリジナルディレクトリファイルの内容を示す図である。
【図７】サーバ選択装置上に作成されるディレクトリタイムスタンプテーブルファイルの内容を示す図である。
【図８】オリジナルサーバ上に作成されるバージョン番号ファイルの内容を示す図である。
【図９】オリジナルサーバ、およびミラーサーバ上に作成されるタイムスタンプファイルの内容を示す図である。
【図１０】サーバ選択装置上に作成されるファイル種類別オリジナルタイムスタンプ取得方法テーブルファイルの内容を示す図である。
【図１１】サーバ選択装置上に作成されるディレクトリ別オリジナルタイムスタンプ取得方法テーブルファイルの内容を示す図である。
【図１２】従来のリダイレクトを説明するための図である。
【図１３】従来のサーバ選択装置の概略構成を示すブロック図である。
【符号の説明】
１…サーバ選択装置、２…オリジナルサーバ、３…ミラーサーバ、４…端末、１１…決定手段、１２…サーバ絞込み手段、１３…複製ファイルタイムスタンプ取得手段、１４…サーバリストテーブル、１５…サーバリスト参照手段、１６…オリジナルタイムスタンプ取得手段、１７…ディレクトリタイムスタンプ取得手段、１８…ディレクトリタイムスタンプテーブル、２１…更新受付ディレクトリ、２２…更新受付プログラム、２３…オリジナルディレクトリ、３１…ミラーリングプログラム、３２…ミラーディレクトリ、５１…判断手段、５３…ファイル種類別オリジナルタイムスタンプ取得方法テーブル、５４…ディレクトリ別オリジナルタイムスタンプ取得方法テーブル、１０１…ディレクトリタイムスタンプ取得プログラム、１０２…選択要求処理取得プログラム、１１０…ＭｉｒｒｏｒＣｏｎｔｒｏｌファイル、１１１…サーバリストテーブルファイル、１１２…オリジナルディレクトリファイル、１１３…ディレクトリタイムスタンプテーブルファイル、１１４…バージョン番号ファイル、１１５…タイムスタンプファイル、１１６…ファイル種類別オリジナルタイムスタンプ取得方法テーブルファイル、１１７…ディレクトリ別オリジナルタイムスタンプ取得方法テーブルファイル。
【図１】
0003651782.tif 000002
【図２】
0003651782.tif 000003
【図３】
0003651782.tif 000004
【図４】
0003651782.tif 000005
【図５】
0003651782.tif 000006
【図６】
0003651782.tif 000007
【図７】
0003651782.tif 000008
【図８】
0003651782.tif 000009
【図９】
0003651782.tif 000010
【図１０】
0003651782.tif 000011
【図１１】
0003651782.tif 000012
【図１２】
0003651782.tif 000013
【図１３】
0003651782.tif 000014