(57)【特許請求の範囲】
【請求項１】
ネットワークを通じてデータの送受信を行う機能を有する複数のクライアント機器と、クライアント機器より送受信されたデータを格納するとともに、要求に応じてクライアント機器へデータを送信する機能を有するサーバ機器と、サーバ機器からの要求によってクライアント機器へサーバ機器の代わりにデータを送信するキャッシュ機器とを有するネットワーク環境における分散処理制御システムであって、
特定のアドレスを有するクライアント機器において、特定のアドレスを有するサーバ機器に対してデータを送信するデータ送信手段と、
サーバ機器において、クライアント機器からデータ送信手段によって送信されたデータを受信するデータ受信手段と、
サーバ機器において、データ受信手段で受信したデータを、データを送信してきたクライアント機器の情報とともにサーバ機器に格納するデータ格納手段と、
サーバ機器において、データ格納手段で格納したデータを特定のアドレスを有するキャッシュ機器に転送するキャッシュ転送手段と、
クライアント機器において、特定のアドレスを有するサーバ機器に対してデータを要求するデータ要求手段と、
サーバ機器において、クライアントからデータ要求手段によって要求されたデータに対して、前記データを保持しているキャッシュ機器あるいは別のクライアント機器のいずれから取得するべきなのかの優先度を判定するデータ応答場所優先度判定手段と、
サーバ機器において、データ応答場所優先度判定手段によって判定された優先度に基づき、キャッシュ機器、クライアント機器の複数のアドレスを含むデータ要求先を生成し、その結果をクライアント機器のデータ要求手段への応答とすることによって、クライアント機器に再度データの要求手段を再実行することを要求するデータ要求先変更手段とを有し、
サーバ機器におけるデータ格納手段において、保存するクライアント機器の情報とは、クライアント機器のアドレスとネットワーク接続の状況を含む情報であり、かつ
サーバ機器におけるデータ応答場所優先度判定手段は、前記データをデータ要求手段によって要求してきたクライアント機器の情報と、前記データをデータ送信手段によって送信してきたクライアント機器の情報とを照合することによって、データ送信手段によるクライアント機器のアドレスの優先度を決定し、
サーバ機器におけるデータ要求先変更手段において、生成されるデータ要求先は複数の機器に対するアドレスが優先度に基づいて含まれたＵＲＬで示される情報であり、かつ
クライアント機器におけるデータ要求再実行手段において、前記ＵＲＬを事前に定められた一定の規則性に基づいて複数に分割することによって、前記データを生成したクライアント機器に対して前記データを送信するクライアント側データ要求応答手段を呼び出すことができ、かつ
クライアント機器において前記ＵＲＬを分割せずにそのまま使用した場合には、キャッシュ機器におけるキャッシュ側データ要求応答手段を呼び出すことができることを特徴とする分散処理制御システム。
【請求項２】
サーバ機器におけるデータ応答場所優先度判定手段において、前記データをデータ要求手段によって別のクライアント機器が要求してきたデータ要求時刻と、前記データをデータ送信手段によってクライアントが送信したデータ送信時刻とを照合し、データ送信時刻とデータ要求時刻が近接している場合にはデータ要求先変更手段におけるクライアント機器のアドレスに関する優先度を高くし、かつ
データ送信時刻からデータ要求時刻までに相当の時間経過がある場合にはクライアント機器のアドレスに関する優先度を低くすることを特徴とする請求項１に記載の分散処理制御システム。
【請求項３】
クライアント機器において、データ要求先変更手段によって指定された複数のアドレスから、キャッシュ機器、クライアント機器のアドレスを取り出し、その各々の機器に対して再びデータ要求を実行するデータ要求再実行手段と、
前記データを生成したクライアント機器において、データ要求再実行手段によって別のクライアント機器から前記データの取得要求が発行されたことに応答して、前記データを送信するクライアント側データ要求応答手段と、
前記キャッシュ転送手段によって転送された前記データを格納しているキャッシュ機器において、前記データ要求再実行手段によってクライアント機器から前記データの取得要求が発行されたことに応答して、前記データを送信するキャッシュ側データ要求応答手段とを有することを特徴とする請求項１または２に記載の分散処理制御システム。
【請求項４】
複数のサーバ機器及び複数のキャッシュ機器が前記ネットワークに接続されていることを特徴とする請求項１〜３の何れか１項に記載の分散処理制御システム。
【請求項５】
ネットワークを通じてデータの送受信を行う機能を有する複数のクライアント機器と、クライアント機器より送受信されたデータを格納するとともに、要求に応じてクライアント機器へデータを送信する機能を有するサーバ機器と、サーバ機器からの要求によってクライアント機器へサーバ機器の代わりにデータを送信するキャッシュ機器とを有するネットワーク環境における分散処理制御システムの制御方法であって、
特定のアドレスを有するクライアント機器において、特定のアドレスを有するサーバ機器に対してデータを送信するデータ送信工程と、
サーバ機器において、クライアント機器からデータ送信工程において送信されたデータを受信するデータ受信工程と、
サーバ機器において、データ受信工程において受信したデータを、データを送信してきたクライアント機器の情報とともにサーバ機器に格納するデータ格納工程と、
サーバ機器において、データ格納工程で格納したデータを特定のアドレスを有するキャッシュ機器に転送するキャッシュ転送工程と、
クライアント機器において、特定のアドレスを有するサーバ機器に対してデータを要求するデータ要求工程と、
サーバ機器において、クライアントからデータ要求工程において要求されたデータに対して、前記データを保持しているキャッシュ機器あるいは別のクライアント機器のいずれから取得するべきなのかの優先度を判定するデータ応答場所優先度判定工程と、
サーバ機器において、データ応答場所優先度判定工程において判定された優先度に基づき、キャッシュ機器、クライアント機器の複数のアドレスを含むデータ要求先を生成し、その結果をクライアント機器のデータ要求工程への応答とすることによって、クライアント機器に再度データの要求工程を再実行することを要求するデータ要求先変更工程とを有し、
サーバ機器におけるデータ格納工程において、保存するクライアント機器の情報とは、クライアント機器のアドレスとネットワーク接続の状況を含む情報であり、かつ
サーバ機器におけるデータ応答場所優先度判定工程は、前記データをデータ要求工程において要求してきたクライアント機器の情報と、前記データをデータ送信工程において送信してきたクライアント機器の情報とを照合することによって、データ送信工程においてクライアント機器のアドレスの優先度を決定し、
サーバ機器におけるデータ要求先変更工程において、生成されるデータ要求先は複数の機器に対するアドレスが優先度に基づいて含まれたＵＲＬで示される情報であり、かつ
クライアント機器におけるデータ要求再実行工程において、前記ＵＲＬを事前に定められた一定の規則性に基づいて複数に分割することによって、前記データを生成したクライアント機器に対して前記データを送信するクライアント側データ要求応答工程を呼び出すことができ、かつ
クライアント機器において前記ＵＲＬを分割せずにそのまま使用した場合には、キャッシュ機器におけるキャッシュ側データ要求応答工程を呼び出すことができることを特徴とする分散処理制御システムの制御方法。
【請求項６】
ネットワークを通じてデータの送受信を行う機能を有する複数のクライアント機器と、クライアント機器より送受信されたデータを格納するとともに、要求に応じてクライアント機器へデータを送信する機能を有するサーバ機器と、サーバ機器からの要求によってクライアント機器へサーバ機器の代わりにデータを送信するキャッシュ機器とを有するネットワーク環境における分散処理制御システムの制御方法をコンピュータに実行させるプログラムであって、
特定のアドレスを有するクライアント機器において、特定のアドレスを有するサーバ機器に対してデータを送信するデータ送信工程と、
サーバ機器において、クライアント機器からデータ送信工程において送信されたデータを受信するデータ受信工程と、
サーバ機器において、データ受信工程において受信したデータを、データを送信してきたクライアント機器の情報とともにサーバ機器に格納するデータ格納工程と、
サーバ機器において、データ格納工程で格納したデータを特定のアドレスを有するキャッシュ機器に転送するキャッシュ転送工程と、
クライアント機器において、特定のアドレスを有するサーバ機器に対してデータを要求するデータ要求工程と、
サーバ機器において、クライアントからデータ要求工程において要求されたデータに対して、前記データを保持しているキャッシュ機器あるいは別のクライアント機器のいずれから取得するべきなのかの優先度を判定するデータ応答場所優先度判定工程と、
サーバ機器において、データ応答場所優先度判定工程において判定された優先度に基づき、キャッシュ機器、クライアント機器の複数のアドレスを含むデータ要求先を生成し、その結果をクライアント機器のデータ要求工程への応答とすることによって、クライアント機器に再度データの要求工程を再実行することを要求するデータ要求先変更工程とを有し、
サーバ機器におけるデータ格納工程において、保存するクライアント機器の情報とは、クライアント機器のアドレスとネットワーク接続の状況を含む情報であり、かつ
サーバ機器におけるデータ応答場所優先度判定工程は、前記データをデータ要求工程において要求してきたクライアント機器の情報と、前記データをデータ送信工程において送信してきたクライアント機器の情報とを照合することによって、データ送信工程においてクライアント機器のアドレスの優先度を決定し、
サーバ機器におけるデータ要求先変更工程において、生成されるデータ要求先は複数の機器に対するアドレスが優先度に基づいて含まれたＵＲＬで示される情報であり、かつ
クライアント機器におけるデータ要求再実行工程において、前記ＵＲＬを事前に定められた一定の規則性に基づいて複数に分割することによって、前記データを生成したクライアント機器に対して前記データを送信するクライアント側データ要求応答工程を呼び出すことができ、かつ
クライアント機器において前記ＵＲＬを分割せずにそのまま使用した場合には、キャッシュ機器におけるキャッシュ側データ要求応答工程を呼び出すことができるようにコンピュータを制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散処理制御システム及びその制御方法に関し、特に、処理能力を超えてしまう大量のクライアント機器からのデータ送受信要求を処理するために用いて好適な技術に関する。
【背景技術】
【０００２】
電子計算機技術の進歩により、複写機などの事務機器やカメラなどの家庭用機器においても、ネットワークを通じた処理を可能にするための多様なソフトウェアが搭載されるようになった。その結果、このような機器もインターネット上にあるネットサービスに、クライアント機器として接続することが可能になってきた。
【０００３】
こうしたクライアント機器に対してネットサービスを提供する場合には、ＵＲＬやＨＴＴＰに代表されるようなインターネット技術を基盤として用いる必要がある。ＵＲＬとはUNIFORM RESOURCE LOCATORの略であり、インターネット上に存在するデータの場所を指し示す記述方式のことである。ＵＲＬは情報のアクセス手段やサーバのアドレス、ポート番号、フォルダ名、ファイル名などで構成される。
【０００４】
また、ＨＴＴＰとはHYPERTEXT TRANSFER PROTOCOLの略であり、ＵＲＬで指定されたデータをサーバ機器とクライアント機器が送受信するのに使われるプロトコルのことである。ＨＴＴＰにより、サーバ機器とクライアント機器の間で各種のデータをやり取りすることができる。ＨＴＴＰはＩＥＴＦによって規格化されている。
【０００５】
これらのインターネット技術の上で、多数のクライアント機器からのデータ送受信を伴うアクセス要求を高速に処理するための仕掛けとして、複数のサーバ機器を用意しておき、動的に処理の負荷を分散させる、分散処理技術がある。また、データの送受信要求をサーバ機器ではなく専用のキャッシュ機器によって代替させるような、分散キャッシュ技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−４２６１号公報
【特許文献２】特開平１１−１７５４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、コンパクトデジタルカメラなど、非常に大量に販売される機器がクライアント機器としてネットサービスに接続するようになると、ネットサービスのサーバ機器側にも、従来と比較してより高いレベルでの負荷分散における性能が要求される。
【０００８】
例えば、ネットワーク対応カメラを用いたチャットを行うサービスのような場合が典型的である。こうしたサービスでは、複数のクライアント機器間でリアルタイムに写真データを取り扱わなければならない。
【０００９】
しかしながら、サーバ機器側の処理能力を向上させるための分散処理技術や分散キャッシュ技術だけでは、大量のクライアント機器からのデータ送受信要求を高速に取り扱うことは困難である。販売台数に比例して増加するクライアント機器からのアクセス要求を、相対的な台数に限界のあるサーバ機器あるいはキャッシュ機器の効率性向上で収容することには、限界があるからである。つまり、サーバ機器側の効率向上を行う手段だけでは、システム全体としての効率向上を実施することが困難である。このため、この限界を超えるためには、何らかの手段を用いてクライアント機器の効率向上も実現しなければならない。
【００１０】
このような大規模化するデータ転送要求における課題に対応するための従来技術としては、まず特許文献１に記載の発明がある。この発明は、サーバのキャッシュ効率や負荷平衡を向上させるために、サーバ機器の集合であるクラスタにおける、オブジェクト要求の動的ルーティング方法を提供する手段を示したものである。
【００１１】
すなわち、ＵＲＬで示されたオブジェクトへのアクセス要求に応答する、複数のサーバ機器のマッピングを動的に調整できるようにするものである。これによれば、ＵＲＬで指定されるオブジェクトをキャッシュする責務を、複数のキャッシュ機器あるいはサーバ機器で効率的に分担する際の課題を解決することができる。
【００１２】
これは、サーバ機器側におけるキャッシュの構成方法となる。そのため、ＵＲＬで示されるデータを、複数のキャッシュ機器で分散させる場合の効率向上は実現可能であるものの、クライアント機器を含めた、全体における効率性向上を実現するという課題を解決するものではない。なぜならば、ネットワーク上において状態が安定しないクライアント機器を、アクセス要求に応答するサーバ機器と見做して、事前に決定しておくことはできないからである。
【００１３】
さらに、別の従来技術として特許文献２に記載の発明がある。特許文献２に記載の発明は、あるＵＲＬに関する転送速度やデータ種別などの特性情報を管理する書き換えサーバが、指定されたＵＲＬを書き換えてクライアント機器に返すようにしている。これにより、クライアント機器が最適な経路でデータをアクセスできるようにするための手段を示したものである。
【００１４】
この発明を用いると、クライアント機器をキャッシュ機器として見做すようにＵＲＬを書き換えることができるようになる。これにより、クライアント機器からのアクセス要求をサーバ機器側だけではなく、別のクライアント機器に代替させて処理することができるようになる可能性がある。
【００１５】
しかしながら、特許文献１に記載の発明における理由と同様に、通電の状態やネットワーク接続の状況に関して不安定な各々のクライアント機器が保有しているデータを、永続的にキャッシュとして使用し続けることは不可能である。このため、サーバ機器の処理能力を補完するという処理を実現するための手段としては、サーバ側のキャッシュ機器と併用できないという問題は大きな制約となる。
【００１６】
以上述べたように、サーバ機器・キャッシュ機器だけで、その処理能力を超えてしまう大量のクライアント機器からのデータ送受信要求を処理することは困難である。これを可能にするためには、クライアント機器間でのデータのやりとりを、クライアント機器側においてもキャッシュできるようにすることが考えられる。しかし、この場合には他のクライアント機器が必ずしも常に使用可能ではないという問題点がある。
本発明は前述の問題点に鑑み、サーバ機器・キャッシュ機器の処理能力を超えてしまう大量のクライアント機器からのデータ送受信要求を処理できるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明の分散処理制御システムは、ネットワークを通じてデータの送受信を行う機能を有する複数のクライアント機器と、クライアント機器より送受信されたデータを格納するとともに、要求に応じてクライアント機器へデータを送信する機能を有するサーバ機器と、サーバ機器からの要求によってクライアント機器へサーバ機器の代わりにデータを送信するキャッシュ機器とを有するネットワーク環境における分散処理制御システムであって、特定のアドレスを有するクライアント機器において、特定のアドレスを有するサーバ機器に対してデータを送信するデータ送信手段と、サーバ機器において、クライアント機器からデータ送信手段によって送信されたデータを受信するデータ受信手段と、サーバ機器において、データ受信手段で受信したデータを、データを送信してきたクライアント機器の情報とともにサーバ機器に格納するデータ格納手段と、サーバ機器において、データ格納手段で格納したデータを特定のアドレスを有するキャッシュ機器に転送するキャッシュ転送手段と、クライアント機器において、特定のアドレスを有するサーバ機器に対してデータを要求するデータ要求手段と、サーバ機器において、クライアントからデータ要求手段によって要求されたデータに対して、前記データを保持しているキャッシュ機器あるいは別のクライアント機器のいずれから取得するべきなのかの優先度を判定するデータ応答場所優先度判定手段と、サーバ機器において、データ応答場所優先度判定手段によって判定された優先度に基づき、キャッシュ機器、クライアント機器の複数のアドレスを含むデータ要求先を生成し、その結果をクライアント機器のデータ要求手段への応答とすることによって、クライアント機器に再度データの要求手段を再実行することを要求するデータ要求先変更手段とを有し、サーバ機器におけるデータ格納手段において、保存するクライアント機器の情報とは、クライアント機器のアドレスとネットワーク接続の状況を含む情報であり、かつサーバ機器におけるデータ応答場所優先度判定手段は、前記データをデータ要求手段によって要求してきたクライアント機器の情報と、前記データをデータ送信手段によって送信してきたクライアント機器の情報とを照合することによって、データ送信手段によるクライアント機器のアドレスの優先度を決定し、サーバ機器におけるデータ要求先変更手段において、生成されるデータ要求先は複数の機器に対するアドレスが優先度に基づいて含まれたＵＲＬで示される情報であり、かつクライアント機器におけるデータ要求再実行手段において、前記ＵＲＬを事前に定められた一定の規則性に基づいて複数に分割することによって、前記データを生成したクライアント機器に対して前記データを送信するクライアント側データ要求応答手段を呼び出すことができ、かつクライアント機器において前記ＵＲＬを分割せずにそのまま使用した場合には、キャッシュ機器におけるキャッシュ側データ要求応答手段を呼び出すことができることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、生成されるデータ要求先は複数の機器に対するアドレスが優先度に基づいて含まれたＵＲＬで示される情報であるので、サーバ機器・キャッシュ機器の処理能力を超えてしまう大量のクライアント機器からのデータ送受信要求を処理することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態のクライアント機器の構成例を示すブロック図である。
【図２】サーバ機器・キャッシュ機器の構成例を示すブロック図である。
【図３】分散処理制御システムで行われる処理のシーケンスを示す図である。
【図４】分散処理制御システムで行われる処理のシーケンスの他の例を示す図である。
【図５】サーバ機器における処理手順の一例を示すフローチャートである。
【図６】サーバ機器における、クライアント機器への応答データを示す図である。
【図７】クライアント機器における処理手順を示すフローチャートである。
【図８】クライアント機器側のキャッシュ機能を使用する場合の状態を示す図である。
【図９】各機器を構成可能なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。本実施形態において、クライアント機器は、ネットワーク環境を通じてデータの送受信を行う機能を有する。サーバ機器は、クライアント機器より送受信されたデータを格納し、また要求に応じてクライアント機器へデータを送信する機能を有する。キャッシュ機器は、サーバ機器からの要求によって、クライアント機器へサーバ機器の代わりにデータを送信する機能を有する。
【００２１】
（第１の実施形態）
図１は、本発明の第１の実施形態を示すクライアント機器における、主要部の構成を示したブロック図である。以下に、各部に関してより詳細に説明する。
まず、クライアントＯＳ部１０１であるが、クライアント機器１００を構成するハードウェアの各種構成要素を、計算機資源としてソフトウェア的に扱えるようにするものである。クライアントＯＳ部１０１があることによって、クライアント機器１００で動作する他の各ソフトウェア構成部が、直接ハードウェアに関する制御を行う必要がなくなる。
【００２２】
次に、クライアントアプリ部１０２であるが、クライアント機器１００における機種固有の機能を、使用者に提供するための機能を有する部分である。例えば、クライアント機器１００がデジタルカメラであれば、画像の撮影、保管、編集、表示などの制御を行うためのソフトウェアである。
【００２３】
本実施形態においては、クライアント機器１００が具体的にどのような機能を使用者に提供しているかということに依存しないため、クライアント機器が有する個別の特徴的な機能を示すものとして、このクライアントアプリ部１０２を定義する。すなわち、例えばクライアント機器１００が複写機なのであれば、紙の複写、印刷、送信などの機能を有する部分が、図１におけるクライアントアプリ部１０２の機能となる。
【００２４】
クライアントデータ要求部１０３は、クライアントアプリ部１０２からのデータ送信要求を受理し、クライアントデータ送信部１０４に処理を依頼する。クライアントアプリ部１０２がネットワークを通じて他の機器へデータの送受信要求を行う場合においては、まずクライアントデータ要求部１０３がその要求を受理する。そして、その後にクライアントデータ送信部１０４が、クライアントＯＳ部１０１を通じてネットワーク処理を行うハードウェアを駆動する。つまり、クライアントデータ要求部１０３は、クライアントアプリ部１０２が要求するデータの形式を、クライアントデータ送信部１０４が処理可能な形態に変換する。
【００２５】
例えば、クライアント機器１００がネットワークへのアップロード機能をもつデジタルカメラ機器である場合を例に説明する。この時、画像をネットワーク上の特定のＵＲＬで示されるファイルとしてアップロードするように、クライアントアプリ部１０２がクライアントデータ要求部１０３に要求する。
【００２６】
クライアントデータ要求部１０３は、そのＵＲＬを解析し、実際のホスト名やＩＰアドレスといった送信先と、ＨＴＴＰに準拠した形式での画像を含む送信データを生成する。このように、クライアントデータ要求部１０３は、特定のアドレスを有するサーバ機器に対して、データを要求するデータ要求手段を提供する部分となる。
【００２７】
また、こうして発行したデータ要求に対して、複数のアドレスを含むＵＲＬを返答として受信した場合には、受信したＵＲＬから複数のアドレスを取り出し、各々へアクセスするために、クライアントデータ送信部１０４を制御する処理も行う。すなわち、データ要求再実行手段も提供する。データ要求再実行手段は、前述のＵＲＬを事前に定められた一定の規則性に基づいて複数に分割することによって、要求されたデータを生成したクライアント機器に対してそのデータを送信するクライアント側データ要求応答手段を呼び出すことができる。
【００２８】
クライアントデータ送信部１０４は、クライアントデータ要求部１０３からの処理要求を、クライアントＯＳ部１０１に転送する。例えば、クライアントデータ要求部１０３が変換した送信先アドレスと送信データとをもとに、クライアントＯＳ部１０１を制御する。具体的には、ＴＣＰ／ＩＰのセッションを開設し、実際のＨＴＴＰデータを送信するといった制御を行う。すなわち、特定のアドレスを有するサーバ機器へ、データを送信するためのデータ送信手段を提供する部分となる。
【００２９】
クライアントデータ格納部１０５は、クライアントデータ要求部１０３が取り扱うデータを、一時的に格納しておくための処理を行う部分である。クライアントデータ格納部１０５は、クライアントデータ要求部１０３を経由するデータの送信要求に対して、そのデータを一時的に複製して格納するための制御を行う。また、クライアントデータ受信部１０７からの要求を受け、クライアントデータ保持部１０６に保持されているデータを、再びクライアントデータ送信部１０４を制御することで、ネットワーク上に送信するための制御も行う。
【００３０】
クライアントデータ保持部１０６は、クライアントデータ格納部１０５が実際にデータを保持しておくための記憶領域を制御する。例えば、機器に内蔵している不揮発性のメモリやハードディスクに、後で再利用できる形式で、データを保存しておくための処理を実行する。
【００３１】
クライアントデータ受信部１０７は、外部の機器から発行される要求を受信する。ネットワーク上にある他の機器からの要求は、クライアントＯＳ部１０１を経由して受信され、クライアントデータ受信部１０７に入力される。データを受信したクライアントデータ受信部１０７は、それをクライアントデータ格納部１０５が処理可能な形式に変換する。
【００３２】
例えば、クライアントＯＳ部１０１が開設するＴＣＰ／ＩＰのポート番号８０において、外部機器からＨＴＴＰによる接続があった場合を例に説明する。この時、ＨＴＴＰによるＵＲＬやヘッダ、あるいはペイロードなどのデータを解析して、クライアントデータ格納部１０５に転送するのが、クライアントデータ受信部１０７の役割である。すなわち、他のクライアント機器から発行されたデータの要求に応答して、当該データを送信するためのクライアント側データ要求応答手段を提供する部分が、クライアントデータ受信部１０７である。
【００３３】
前述のようなソフトウェア構成を備えることにより、ネットワーク上にある他の機器へ要求を送信するだけではなく、他の機器からの要求を受信して処理することができる機能を、クライアント機器１００は有することができる。
【００３４】
図２は、本発明の実施形態を示すサーバ機器・キャッシュ機器における、主要部の構成を示したブロック図である。サーバ機器・キャッシュ機器は同一のソフトウェアによって構成され、実行時・配備時における役割によってサーバ機器あるいはキャッシュ機器として機能する。そのため、ソフトウェアの構成図としては同一の内容となる。以下に各部に関してより詳細に説明する。
【００３５】
まず、サーバＯＳ部２０１であるが、クライアント機器１００のクライアントＯＳ部１０１と基本的に同様である。つまり、サーバ機器２００を構成するハードウェアの各種構成要素を、計算機資源としてソフトウェア的に扱えるようにするものである。サーバＯＳ部２０１を備えることによって、サーバ機器２００で動作する他の各ソフトウェア構成部は、直接ハードウェアに関する制御を行う必要がなくなる。
【００３６】
次に、サーバアプリ部２０２であるが、サーバ機器２００における機種固有の機能を、使用者に提供するための機能を有する部分である。例えば、サーバ機器２００が画像保管を行うためのサーバなのであれば、画像の受信、保管、検索、送信などの制御を行うためのソフトウェアとなる。
【００３７】
本発明は、サーバ機器２００が具体的にどのような機能を使用者に提供しているかということに依存しないため、本実施形態においては、サーバ機器・キャッシュ機器が有する個別の特徴的な機能を示すものとして、このサーバアプリ部２０２を定義する。すなわち、例えばサーバ機器２００が画像保管サーバではなく文書保管サーバなのであれば、文書の受信、保管、検索、送信などの機能を有する部分が、本図におけるサーバアプリ部２０２の機能となる。
【００３８】
サーバデータ要求部２０３は、サーバアプリ部２０２からのデータ送信要求を受理し、サーバデータ送信部２０４に処理を依頼する。サーバアプリ部２０２が、ネットワークを通じて他の機器へデータの送受信要求を行う場合、まず、サーバデータ要求部２０３がその要求を受理する。その後に、サーバデータ送信部２０４がサーバＯＳ部２０１を通じて、ネットワーク処理を行うハードウェアを駆動する。言い換えると、サーバデータ要求部２０３は、サーバアプリ部２０２が要求するデータの形式を、サーバデータ送信部２０４が処理可能な形態に変換する。
【００３９】
例えば、画像保管サーバであるサーバ機器２００の、サーバアプリ部２０２を例にして説明する。特定のＵＲＬで示されるネットワーク上の画像データを、ファイルとしてダウンロードするように、サーバアプリ部２０２が要求する。この時、そのＵＲＬを解析し、実際のホスト名やＩＰアドレスといった送信先と、ＨＴＴＰに準拠した形式での画像を要求する送信データを生成するのが、サーバデータ要求部２０３の役割である。
【００４０】
サーバデータ送信部２０４は、サーバデータ要求部２０３からの処理要求を、サーバＯＳ部２０１に転送する。例えば、サーバデータ要求部２０３が変換した送信先アドレスと送信データをもとに、サーバＯＳ部２０１を制御する。具体的には、ＴＣＰ／ＩＰのセッションを開設し、実際のＨＴＴＰデータを送信するといった制御を行う。
【００４１】
サーバデータ制御部２０５は、サーバデータ要求部２０３、サーバデータ受信部２０７、サーバデータ保持部２０６を制御することで、本発明の特徴的な処理を実施するための構成として機能する。他の機器から送信されてきたデータを、サーバデータ受信部２０７によってサーバデータ保持部２０６に格納する。そして、格納したデータを特定のアドレスを有する他のキャッシュ機器に転送するキャッシュ転送手段を、サーバデータ制御部２０５が提供する。これは、ネットワーク上に大量のクライアント機器が存在した場合に発行される大量の当該データに対する要求を、複数のサーバ機器・キャッシュ機器によって分担できるようにするためである。
【００４２】
また、クライアント機器からデータの取得を要求された場合に、どの機器からこれを取得するべきなのかを判定するデータ応答場所優先度判定手段も、サーバデータ制御部２０５は提供する。この場合の機器とは、当該データを保持しているサーバ機器、キャッシュ機器、あるいは他のクライアント機器のいずれかを意味する。
【００４３】
また、さらにこのデータ応答場所優先度判定手段によって判定された優先度に基づき、複数のサーバ機器、キャッシュ機器、クライアント機器のアドレスを含むデータ要求先を生成する。そして、その結果をクライアント機器のデータ要求手段への応答とする。これにより、クライアント機器に送信を再度要求するデータ要求手段を再実行することを要求するデータ要求先変更手段も、サーバデータ制御部２０５が提供する。
【００４４】
また、さらにキャッシュ転送手段によって当該データを格納しているキャッシュ機器において、データ要求再実行手段によってクライアント機器から当該データの取得要求が発行されたことに応答する手段も提供する。すなわち、当該データを送信するためのキャッシュ側データ要求応答手段も、サーバデータ制御部２０５が提供する。
【００４５】
サーバデータ保持部２０６は、サーバデータ制御部２０５が管理するデータを保持しておくための記憶領域を制御する。例えば、サーバ機器２００に内蔵している不揮発性のメモリやハードディスクに、後で再利用できる形式でデータを保存しておくための処理を実行する。保存されるデータには、画像や文書といったデータ以外に、そのデータを送信してきたクライアントを識別するための情報も含まれる。すなわち、クライアント機器から送信されたデータを、そのクライアント機器の情報とともに格納するためのデータ格納手段を提供する部分が、サーバデータ保持部２０６である。
【００４６】
サーバデータ受信部２０７は、外部の機器から発行される要求を受信する。ネットワーク上にある他の機器からの要求は、サーバＯＳ部２０１を経由して受信され、サーバデータ受信部２０７に入力される。データを受信したサーバデータ受信部２０７は、それをサーバデータ制御部２０５が処理可能な形式に変換する。
【００４７】
例えば、サーバＯＳ部２０１が開設するＴＣＰ／ＩＰのポート番号８０において、外部機器からＨＴＴＰによる接続があった場合を例に説明する。この時、ＨＴＴＰによるＵＲＬやヘッダ、あるいはペイロードなどのデータを解析して、サーバデータ制御部２０５に要求として転送するのが、サーバデータ受信部２０７の役割である。すなわち、クライアント機器から送信されたデータを受信するための、データ受信手段を提供する部分となる。
【００４８】
サーバ機器２００は前述したようなソフトウェア構成を備えている。これにより、ネットワーク上にある他の機器へ要求を送信するだけではなく、他の機器からの要求を受信して処理することができる機能を、サーバ機器２００は有することになる。
【００４９】
図３は、本発明の実施形態を示すクライアント機器とサーバ機器・キャッシュ機器における、処理のシーケンスを示す図である。特に、クライアント機器側のキャッシュ機能を使用しない場合の、処理のシーケンスに関する主要な箇所を示した図である。すなわち、本発明が提供するクライアント機器側のキャッシュ機能を一切使用しない場合に、各クライアント機器とサーバ・キャッシュ機器との間で行われる相互作用を示したものとなっている。
【００５０】
カメラ機器３０１およびカメラ機器３０２は、それぞれ図１に記載されているソフトウェア構成を有することと特徴とするクライアント機器である。
サーバ機器３０３およびキャッシュ機器３０４は、それぞれ図２に記載されているソフトウェア構成を有することを特徴とする、サーバ機器とキャッシュ機器である。
【００５１】
図３においては、カメラ機器３０１およびカメラ機器３０２はデジタルカメラである。また、サーバ機器３０３およびキャッシュ機器３０４は、これらのカメラ機器３０１、３０２で保管した画像を保存するための写真保管サービスを構成するための機器である。また、各々の機器３０１〜３０４はネットワークによって接続されており、ネットワーク上で各々を識別するための固有のアドレスがそれぞれ付与されている。
【００５２】
次に、図３を参照しながら、デジタルカメラであるカメラ機器３０１と、サーバ機器３０３およびキャッシュ機器３０４で構成される写真保管サービスの処理の一例を説明する。デジタルカメラであるカメラ機器３０１は写真を撮影する。その写真が、サーバ機器３０３およびキャッシュ機器３０４で構成される写真保管サービスに格納される。そして、さらに当該写真を他のデジタルカメラであるカメラ機器３０２が使用するという場合、処理の流れは以下のようになる。
【００５３】
まず、デジタルカメラであるカメラ機器３０１が写真を撮影すると、ステップ３５０において、その写真ＰＩＣ１が画像保管サービスを構成するサーバ機器３０３にアップロードされる。この時、図１におけるクライアントアプリ部１０２が撮影を実施した後に、クライアントデータ要求部１０３が、クライアントデータ送信部１０４とクライアントＯＳ部１０１を制御するデータ送信手段を用いることによって、クライアント機器側の処理が実行される。
【００５４】
一方、サーバ機器３０３では、図２におけるサーバＯＳ部２０１がクライアント機器からの当該要求を受信し、それをサーバデータ受信部２０７へと伝えることで、サーバデータ制御部２０５にカメラ機器３０１がアップロードした写真ＰＩＣ１が送られる。
次に、ステップ３５１で、サーバ機器３０３は受信した写真ＰＩＣ１をキャッシュ機器３０４に転送する。
【００５５】
次に、ステップ３５２で、写真ＰＩＣ１を撮影したのではない別のデジタルカメラであるカメラ機器３０２が、写真ＰＩＣ１を使用するためのダウンロード要求を、サーバ機器３０３に発行する。
次に、ステップ３５３で、写真ＰＩＣ１はすでにステップ３５１でキャッシュ機器３０４に転送済みのため、キャッシュ機器３０４のアドレスをサーバ機器３０３からカメラ機器３０２に返却するデータアドレス送信処理を行う。
次に、ステップ３５４で、カメラ機器３０２はステップ３５３で得た情報をもとに、キャッシュ機器３０４に該当する写真のダウンロードを要求する。
次に、ステップ３５５で、キャッシュ機器３０４は写真ＰＩＣ１のデータをカメラ機器３０２に返却する。この結果、カメラ機器３０２はカメラ機器３０１が撮影した写真ＰＩＣ１を取得することができる。
【００５６】
図４は、本発明の実施形態を示す、クライアント機器とサーバ機器・キャッシュ機器における処理のシーケンスを示すものである。特に、クライアント機器側のキャッシュ機能を使用する場合の処理に関する主要な箇所を示した図である。すなわち、本発明が提供するクライアント機器側のキャッシュ機能を使用した場合に、各クライアント機器とサーバ・キャッシュ機器との間で行われる相互作用を示したものである。
【００５７】
デジタルカメラであるカメラ機器３０１が写真を撮影すると、まずステップ４５０によって、その写真ＰＩＣ１が画像保管サービスを構成するサーバ機器３０３にアップロードされる。この時、カメラ機器３０１を構成する図１におけるクライアントアプリ部１０２が撮影を実施する。具体的には、クライアントデータ要求部１０３が、クライアントデータ送信部１０４とクライアントＯＳ部１０１を制御するデータ送信手段を用いることによって、この処理は実行される。また、同時に写真ＰＩＣ１は、カメラ機器３０１のクライアントデータ格納部１０５を通じて、クライアントデータ保持部１０６にも格納される。
【００５８】
一方、サーバ機器３０３では、図２におけるサーバＯＳ部２０１がクライアント機器からの当該要求を受信し、それをサーバデータ受信部２０７へと伝える。これにより、サーバデータ制御部２０５にカメラ機器３０１がアップロードした写真ＰＩＣ１が送られる。
次に、ステップ４５１で、サーバ機器３０３は受信した写真ＰＩＣ１をキャッシュ機器３０４に転送する。この時、サーバ機器３０３を構成しているサーバデータ制御部２０５において、以下の処理が実行される。
【００５９】
すなわち、サーバデータ受信部２０７によってクライアント機器から送信されてきた写真ＰＩＣ１を、サーバデータ制御部２０５がサーバデータ保持部２０６に保管する。この時、写真ＰＩＣ１を送信してきたカメラ機器３０１のアドレスやダウンロード開始・完了時刻を、写真ＰＩＣ１と関連付けて保管する。次に、この写真ＰＩＣ１をキャッシュ機器３０４に転送する。
【００６０】
次のステップ４５２は、ステップ３５２と同一である。すなわち、写真ＰＩＣ１を撮影したのではない別のデジタルカメラであるカメラ機器３０２が、写真ＰＩＣ１を使用するためのダウンロード要求を、サーバ機器３０３に発行する。
【００６１】
次のステップ４５３では、写真ＰＩＣ１をカメラ機器３０２に送信する際に、最も適した応答場所を判定する。これはサーバ機器３０３を構成する、サーバデータ制御部２０５によって実施される。本処理を行うためのデータ応答場所優先度判定手段において行われる処理の一例は、例えば以下に示す。データをデータ要求手段によって要求してきたクライアント機器の情報と、データをデータ送信手段によって送信してきたクライアント機器の情報とを照合することによって、データ送信手段によるクライアント機器のアドレスの優先度を決定する。データ応答場所優先度判定手段において行われる処理に関しては、後述する図５においてより詳細に説明する。
【００６２】
図４におけるステップ４５３では、データ応答場所優先度判定手段が、写真ＰＩＣ１を撮影したカメラ機器３０１を、最も優先度の高い応答場所と判定した場合を示す。また、ステップ４５１で保存したキャッシュ機器３０４が、次に優先度の高い場所として適していると判定した場合を示す。
【００６３】
次に、ステップ４５４では、ステップ４５３で判定された応答場所が有するアドレスをもとにダウンロードＵＲＬを生成し、それをカメラ機器３０２に返却する。すなわち、データ応答場所優先度判定手段によって判定された優先度に基づき、カメラ機器３０１とキャッシュ機器３０４のアドレスを含むデータ要求先を生成する。
【００６４】
そして、その結果をカメラ機器３０２へのデータ要求手段への応答ＵＲＬとする。これにより、カメラ機器３０２に再度データの要求手段を再実行することを要求する。この処理は、サーバ機器３０３におけるサーバデータ制御部２０５が実施する。後述する図６において、図５のフローチャートと併せて本ステップで生成する応答ＵＲＬを説明する。
【００６５】
次に、ステップ４５５で、ステップ４５４の結果を受信したカメラ機器３０２が応答ＵＲＬを解析し、判明したカメラ機器３０１のアドレスに対して、写真ＰＩＣ１のダウンロード要求を発行する。本処理は、カメラ機器３０２を構成する図１におけるクライアントデータ要求部１０３において実施される。
【００６６】
発行したデータ要求に対し、複数のアドレスを含むＵＲＬを返答として受信した場合には、当該ＵＲＬから複数のアドレスを取り出し、各々へアクセスするために、クライアントデータ送信部１０４をクライアントデータ要求部１０３が制御する。本ステップにおいて行われる処理の詳細は、後述する図７において説明する。
【００６７】
次に、ステップ４５６で、カメラ機器３０１は、写真ＰＩＣ１のデータをカメラ機器３０２への応答として返却する。これはカメラ機器３０１におけるクライアントデータ格納部１０５が、クライアントデータ保持部１０６にステップ４５０において、保持しておいた写真ＰＩＣ１を使用することによって実現する。
【００６８】
こうして、カメラ機器３０２は、カメラ機器３０１が撮影した写真ＰＩＣ１を取得することができる。図３に示されたシーケンスではキャッシュ機器３０４より取得するが、図４に示されたシーケンスではカメラ機器３０１から写真ＰＩＣ１を取得することができる。すなわち、多数のクライアント機器がネットワーク上に存在した場合において、図３に比較して図４はキャッシュ機器３０４に負荷が集中することなく、画像のダウンロード処理を実施できることとなる。
【００６９】
また、カメラ機器３０１と３０２が高速なネットワークに接続しており、キャッシュ機器３０４は低速なネットワーク経由である場合には、写真ＰＩＣ１の転送に要する時間が短縮できる。このため、図４の場合は、結果としてより短時間で、カメラ機器３０２が写真ＰＩＣ１を処理することができるようになる。
【００７０】
図５は、本発明の実施形態を示すサーバ機器における処理手順を説明するフローチャートである。特に、図４に示されたクライアント機器側のキャッシュ機能を使用する場合における、サーバ機器３０３における特徴的な処理の流れを示したフローチャートである。すなわち、図４におけるステップ４５２、ステップ４５３、ステップ４５４において行われる処理のフローを、さらに詳細に示したものとなっている。
【００７１】
まず、Ｓ５１１で、カメラ機器３０２から写真ＰＩＣ１の要求を受信する。
次に、Ｓ５１２で、写真ＰＩＣ１を保持しているクライアント機器が他にあるかどうかを判定する。他にある場合はＳ５１３に進み、ない場合はＳ５１７に進む。図４におけるステップ４５１において、サーバデータ制御部２０５がサーバデータ保持部２０６に、写真ＰＩＣ１を送信してきたカメラ機器３０１のアドレスと写真ＰＩＣ１を関連付けて保管している。したがって、サーバデータ保持部２０６の情報を用いることによって、この判定処理を実施することができる。
【００７２】
次に、Ｓ５１３で、当該データを保持しているクライアント機器と、当該データを要求してきたクライアント機器が、近傍に存在するかどうかを判定する。近傍に存在する場合はＳ５１４に進み、存在しない場合はＳ５１７に進む。ここでは近傍の定義を、ネットワーク的な距離が近いことと定義する。つまり、当該データを要求してきたカメラ機器３０２と当該データを保持しているカメラ機器３０１との接続が、キャッシュ機器３０４との間よりも高速であると期待できるかどうかを判定することとなる。
【００７３】
本実施形態では、この判定にクライアント同士が同一のサブネットに所属しているかどうかを用いる。例えば、図３および図４では、カメラ機器３０１のアドレスは150.61.10.1であり、またカメラ機器３０２のアドレスは150.61.10.2であるため、この２台は同一のサブネットに存在する。しかし、キャッシュ機器３０４のアドレスは10.10.10.2であるため、異なるサブネットに存在する。したがって、この場合にはカメラ機器３０１の方が、近傍であると判定することができる。
【００７４】
次に、Ｓ５１４で、写真ＰＩＣ１のアップロード開始時刻が、現在時刻からどのくらい隔たっているのかを判定する。これは、写真ＰＩＣ１がカメラ機器３０１に保持されているとしても、保持より一定以上の時間が経過した場合には、計算機資源に限界のあるクライアント機器においては、引き続きデータが保持されている可能性が低下することを考慮したものである。アップロード開始時刻が最近の場合はＳ５１５に進み、そうでない場合はＳ５１７に進む。
【００７５】
次に、Ｓ５１５で、写真ＰＩＣ１のアップロード完了時刻を確認する。これは、当該データのサーバ機器へのアップロードが完了されていない場合を考慮したものである。すなわち、カメラ機器３０１から写真ＰＩＣ１をサーバ機器３０３へとアップロードするためのステップであるステップ４５０が、もしまだ完了していない状態である場合には、キャッシュ機器３０４に写真ＰＩＣ１はまだ存在しない。この場合は、写真ＰＩＣ１を必要とするカメラ機器３０２の要求を、この時点で処理できる可能性があるのは、カメラ機器３０１のみとなる。アップロードが完了している場合はＳ５１６に進み、完了していない場合はＳ５１８に進む。
【００７６】
Ｓ５１６は、写真ＰＩＣ１を生成元であるカメラ機器３０１が保持しており、かつキャッシュ機器３０４も保持していると判定できた場合に処理を実施する。すなわち、写真ＰＩＣ１を保管している場所として、キャッシュ機器３０４とカメラ機器３０１の双方を指定したＵＲＬを生成する。
Ｓ５１７は、写真ＰＩＣ１の生成元であるカメラ機器３０１が近傍ではないか、あるいはデータがすでに削除されてしまった可能性が高いと判定できた場合に処理を実施する。この場合、写真ＰＩＣ１を保管している場所として、キャッシュ機器３０４のみを指定してＵＲＬを生成する。
Ｓ５１８は、写真ＰＩＣ１が、生成元であるカメラ機器３０１のみに存在すると判定できた場合に処理を実施する。この場合、写真ＰＩＣ１を保管している場所として、カメラ機器３０１のみを指定してＵＲＬを生成する。
Ｓ５１９で、以上の各ステップで判定された写真ＰＩＣ１の場所をもとに、ダウンロード場所としての応答ＵＲＬを生成し、これをカメラ機器３０２に返信する。
【００７７】
図６は、本発明の実施形態を示すサーバ機器における、クライアント機器への応答データの例を示す図である。特に、図５のフローチャートで示された各状態に対応するクライアント機器への応答データの例を、各々示したものである。
【００７８】
６０１は、図５におけるＳ５１６を経由した場合に生成されるＵＲＬである。本実施形態では、単一のＵＲＬに複数のアドレスを混在させるため、特別なマークである"._OPT_."を用いて、カメラ機器３０１のアドレスとキャッシュ機器３０４のアドレスを記述している。本方式によって生成されたＵＲＬの解析は、図１のクライアントデータ要求部１０３において処理される。
６０２は、図５におけるＳ５１７を経由した場合に生成されるＵＲＬである。
６０３は、図５におけるＳ５１８を経由した場合に生成されるＵＲＬである。
【００７９】
図７は、本発明の実施形態を示すクライアント機器における処理手順を説明するフローチャートである。特に、図４に示されたクライアント機器側のキャッシュ機能を使用する場合における、カメラ機器３０２における特徴的な処理に関する流れを示している。
【００８０】
本処理は、カメラ機器３０２を構成する図１における、クライアントデータ要求部１０３において、実施される処理である。発行したデータ要求に対し、複数のアドレスを含むＵＲＬを返答として受信した場合に、当該ＵＲＬから複数のアドレスを取り出し、各々へアクセスするためにクライアントデータ送信部１０４を制御するために行われる。
【００８１】
まず、Ｓ７１１で、サーバ機器３０３より写真ＰＩＣ１の場所を示す応答ＵＲＬを受信する。これは図６に示された内容のいずれかになる。
次に、Ｓ７１２で当該ＵＲＬを解析し、あらかじめ取り決められたマークが存在するかどうかを確認する。マークが存在する場合はＳ７１３に進み、存在しない場合はＳ７１６に進む。本実施形態の場合、図６に示されるように"._OPT_."を特別なマークとして使用しているため、この文字列がＵＲＬに含まれているかどうかを判定する。マークが存在する場合はＳ７１３に進み、存在しない場合はＳ７１６に進む。
【００８２】
次に、Ｓ７１３で、当該のマークが存在した場合には、ＵＲＬからＵＲＬ自身が示すアドレスではない別のアドレスを取り出す。例えば、図６における６０１ではＵＲＬの本来のアドレスは10.10.10.2であるため、マーク"._OPT_."を用いて切り出される150.61.10.1が別のアドレスと判定されることとなる。
【００８３】
次に、Ｓ７１４で、取り出したアドレスから再度ＵＲＬを構成し、写真ＰＩＣ１をそのＵＲＬに対して要求する。すなわち、図６における６０１がＳ７１１で返却された場合には、こうして解析された結果の写真ＰＩＣ１を要求するＵＲＬはhttp://150.61.10.1/PIC1となる。
【００８４】
次に、Ｓ７１５で、当該ＵＲＬによって写真ＰＩＣ１が取得できたかどうかを判定する。取得できなかった場合、つまり、カメラ機器３０１へアクセスできなかった場合、あるいはカメラ機器３０１はすでに当該の写真ＰＩＣ１を保持していなかった場合には、次のＳ７１６へ移る。
【００８５】
Ｓ７１６では、Ｓ７１１で取得されたＵＲＬそのものを用いてもう一度、写真ＰＩＣ１の取得を実施する。すなわち、図６における６０１の場合のＵＲＬであるhttp://10.10.10.2/PIC1._OPT_.150.61.10.1/PIC1となる。このＵＲＬとして示されているアドレスはキャッシュ機器３０４となるため、キャッシュ機器３０４に写真ＰＩＣ１を要求することとなる。
【００８６】
図８は、本発明の実施形態を示すクライアント機器とサーバ機器・キャッシュ機器における、データの状況、ネットワーク接続の状況を示すものである。特に、図４におけるクライアント機器側のキャッシュ機能を使用する場合の状態を示した図である。
【００８７】
カメラ機器３０１とキャッシュ機器３０４は、ネットワーク８０１で接続されている。
カメラ機器３０１のクライアントデータ保持部１０６には、撮影した写真ＰＩＣ１が格納されている。また、その写真ＰＩＣ１は、ネットワーク８０１を通じて外部の機器から図６の６０３で示されるＵＲＬであるhttp://150.61.10.1/PIC1でアクセスすることができる。
【００８８】
キャッシュ機器３０４も、同じ写真ＰＩＣ１をサーバデータ保持部２０６に保持している。また、その写真ＰＩＣ１は、ネットワーク８０１を通じて２つの異なったＵＲＬである図６の６０１と６０２の双方で参照することができるようになっている。この時、６０１はhttp://10.10.10.2/PIC1._OPT_.150.61.10.1/PIC1である。また、６０２はhttp://10.10.10.2/PIC1である。
【００８９】
また、キャッシュ機器３０４のサーバデータ保持部２０６には、図５で示されたフローチャートにおける処理を可能とするために、写真ＰＩＣ１に付帯した送信元クライアント、アップロード開始時刻、アップロード完了時刻も保持されている。
【００９０】
図９は、本発明の実施形態を示すクライアント機器とサーバ機器・キャッシュ機器を構成可能なハードウェアである、コンピュータ装置９００について示したブロック図である。
【００９１】
図９において、９０１はコンピュータ装置９００全体を制御するＣＰＵである。９０２は変更を必要としないプログラムやパラメータを格納するＲＯＭである。９０３は外部装置などから供給されるプログラムやデータを一時記憶するＲＡＭである。９０４はコンピュータ装置９００に固定して設置されたハードディスクやメモリカードなどを含む外部記憶装置である。９０５はユーザの操作を受け、データを入力するポインティングデバイスやキーボードなどの入力機器とのＩ／Ｆである。９０６はコンピュータ装置９００の保持するデータや供給されたデータを表示するための出力装置とのＩ／Ｆである。９０７はインターネットなどのネットワーク回線に接続するためのネットワークＩ／Ｆである。９０８は９０１〜９０７の各ユニットを通信可能に接続するシステムバスである。
【００９２】
前述した実施形態によれば、サーバ機器・キャッシュ機器の処理能力を超えてしまう大量のクライアント機器からのデータ送受信要求を処理することが可能になる。すなわち、クライアント機器間でのデータのやりとりをキャッシュして、相互に使用することができるようになる。この時、必ずしも常に使用可能ではない別のクライアント機器に存在するデータを特定し、参照することができるようになる。また、従来使用されてきたサーバ機器・キャッシュ機器におけるキャッシュ処理と併用することが可能となる。
【００９３】
なお、前述した実施形態においては、２つのクライアント機器、１つのサーバ機器、１つのキャッシュ機器により分散処理制御システムを構成した例を説明したが、クライアント機器は３つ以上でもよい。また、サーバ機器及びキャッシュ機器は２つ以上の複数であってもよい。
【００９４】
以上、第１の実施形態を記述したが、第１の実施形態における下記の部分において、異なる第２の実施形態も考えられる。
（第２の実施形態）
前述した第１の実施形態における図５で説明されている、Ｓ５１３で当該データを保持しているクライアント機器と、当該データを要求してきたクライアント機器が近傍に存在するかどうかを判定する部分は、以下のように異なってもよい。
【００９５】
第１の実施形態では、近傍の定義をよりネットワーク的な距離が近いこととした。すなわち、キャッシュ機器との間よりクライアント機器間が高速であると期待できるかどうかを判定するために、クライアント同士が同一のサブネットに所属しているかどうかを用いていた。しかし、第２の実施形態においては、この判定を実際にＩＣＭＰパケットなどの送受信をお互いに行い、その経過時間を計測することによって判定する。
【００９６】
より具体的には、データ要求手段によって別のクライアント機器がデータを要求してきたデータ要求時刻と、該当するデータをデータ送信手段によってクライアントが送信したデータ送信時刻とを照合する。そして、データ送信時刻とデータ要求時刻とが近接している場合にはデータ要求先変更手段におけるクライアント機器のアドレスに関する優先度を高くする。また、データ送信時刻からデータ要求時刻までに相当の時間経過がある場合にはクライアント機器のアドレスに関する優先度を低くする。
【００９７】
これにより、第１の実施形態よりもさらにネットワーク的な距離の測定精度を向上させることができる。ただし、第１の実施形態に比較して、ネットワークトラフィックを増大させる可能性がある。また、クライアント機器とサーバ機器・キャッシュ機器において、主にセキュリティ上の理由によって、当該パケットの通過が許可されていない場合がある。このため、第１の実施形態の手法を第２の実施形態が置き換えるものではない。
【００９８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種のコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９９】
１００  クライアント機器、１０１  クライアントＯＳ部、１０２  クライアントアプリ部、１０３  クライアントデータ要求部、１０４  クライアントデータ送信部、１０５  クライアントデータ格納部、１０６  クライアントデータ保持部、１０７  クライアントデータ受信部、２００  サーバ機器、２０１  サーバＯＳ部、２０２  サーバアプリ部、２０３  サーバデータ要求部、２０４  サーバデータ送信部、２０５  サーバデータ制御部、２０６  サーバデータ保持部、２０７  サーバデータ受信部
【図１】
0005825940.tif 000002
【図２】
0005825940.tif 000003
【図３】
0005825940.tif 000004
【図４】
0005825940.tif 000005
【図５】
0005825940.tif 000006
【図６】
0005825940.tif 000007
【図７】
0005825940.tif 000008
【図８】
0005825940.tif 000009
【図９】
0005825940.tif 000010