(57)【特許請求の範囲】
【請求項１】
それぞれノードを構成する、サーバと、クライアントとが複数接続されたネットワークに接続されて、ノードを構成し、クライアントからサーバへのアクセスを中継する代理サーバであって、
上記サーバによるサービスの提供で使用される通信路とは別の通信路を使って、上記サーバとの間で通信を行う２次通信手段と、
中継対象のクライアントがアクセスしているサーバ上のリソースを検知する検知手段と、
上記検知手段が検知したリソースへの、中継対象のクライアントのアクセス頻度を測定する測定手段と、
上記測定手段が測定したアクセス頻度が予め定めた閾値を超えた場合に、上記２次通信手段を用いて、中継対象のクライアントがアクセスしているサーバのリソースを、該サーバから取得するリソース取得手段と、
上記リソース取得手段が取得したリソースを記憶するリソース記憶手段と、
中継対象のクライアントのアクセス先を、上記リソース記憶手段が記憶しているリソースに切り替えるアクセス先切替手段とを備えたこと
を特徴とする代理サーバ。
【請求項２】
それぞれノードを構成する、サーバと、クライアントとが複数接続されたネットワークに接続されて、ノードを構成し、クライアントからサーバへのアクセスを中継する代理サーバであって、
上記サーバによるサービスの提供で使用される通信路とは別の通信路を使って、上記サーバとの間で通信を行う２次通信手段と、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
中継対象のクライアントから、ユーザデータをダウンロードするためのダウンロード要求が送信されてきた場合に、最新のユーザデータを上記ユーザデータ記憶手段が記憶しているか否かを判定するユーザデータ判定手段と、
最新ユーザデータを記憶していると上記ユーザデータ判定手段が判定した場合には、上記ユーザデータ記憶手段が記憶している最新ユーザデータを、中継対象のクライアントに転送する第１のユーザデータ転送手段と、
最新ユーザデータを記憶していないと上記ユーザデータ判定手段が判定した場合には、上記２次通信手段を用いて、最新ユーザデータを上記サーバから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得した最新ユーザデータを、上記ユーザデータ記憶手段に格納すると共に、格納した最新ユーザデータを、中継対象のクライアントに転送する第２のユーザデータ転送手段とを備えたこと
を特徴とする代理サーバ。
【請求項３】
請求項２記載の代理サーバであって、
中継対象のクライアントからユーザデータが転送されてきた場合に、該ユーザデータを上記ユーザデータ記憶手段に格納するユーザデータ格納手段と、
上記ユーザデータ格納手段がユーザデータを格納した場合に、上記２次通信手段を用いて、最新ユーザデータの所在ノードである旨を上記サーバに通知する通知手段とをさらに備え、
上記ユーザデータ判定手段は、
上記２次通信手段を用いて、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求を上記サーバに送信し、その返答を取得することで、最新ユーザデータを上記ユーザデータ記憶手段が記憶しているか否かを判定すること
を特徴とする代理サーバ。
【請求項４】
それぞれノードを構成する、サーバと、クライアントとが複数接続されたネットワークに接続されて、ノードを構成し、クライアントからサーバへのアクセスを中継する代理サーバにおいて実行されるプログラムを記録した記録媒体であって、
上記プログラムは、
上記サーバによるサービスの提供で使用される通信路とは別の通信路を使って、上記サーバとの間で通信を行う２次通信手段と、
中継対象のクライアントがアクセスしているサーバ上のリソースを検知する検知手段と、
上記検知手段が検知したリソースへの、中継対象のクライアントのアクセス頻度を測定する測定手段と、
上記測定手段が測定したアクセス頻度が予め定めた閾値を超えた場合に、上記２次通信手段を用いて、中継対象のクライアントがアクセスしているサーバのリソースを、該サーバから取得するリソース取得手段と、
上記リソース取得手段が取得したリソースを記憶するリソース記憶手段と、
中継対象のクライアントのアクセス先を、上記リソース記憶手段が記憶しているリソースに切り替えるアクセス先切替手段として、代理サーバを機能させること
を特徴とするプログラムを記録した記録媒体。
【請求項５】
それぞれノードを構成する、サーバと、クライアントとが複数接続されたネットワークに接続されて、ノードを構成し、クライアントからサーバへのアクセスを中継する代理サーバにおいて実行されるプログラムを記録した記録媒体であって、
上記プログラムは、
上記サーバによるサービスの提供で使用される通信路とは別の通信路を使って、上記サーバとの間で通信を行う２次通信手段と、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
中継対象のクライアントから、ユーザデータをダウンロードするためのダウンロード要求が送信されてきた場合に、最新のユーザデータを上記ユーザデータ記憶手段が記憶しているか否かを判定するユーザデータ判定手段と、
最新ユーザデータを記憶していると上記ユーザデータ判定手段が判定した場合には、上記ユーザデータ記憶手段が記憶しているユーザデータを、中継対象のクライアントに転送する第１のユーザデータ転送手段と、
最新ユーザデータを記憶していないと上記ユーザデータ判定手段が判定した場合には、上記２次通信手段を用いて、最新ユーザデータを上記サーバから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得したユーザデータを、上記ユーザデータ記憶手段に格納すると共に、格納した最新ユーザデータを、中継対象のクライアントに転送する第２のユーザデータ転送手段として、上記代理サーバをさらに機能させること
を特徴とするプログラムを記録した記録媒体。
【請求項６】
請求項５記載の記録媒体であって、
上記プログラムは、
中継対象のクライアントからユーザデータが転送されてきた場合に、該ユーザデータを上記ユーザデータ記憶手段に格納するユーザデータ格納手段と、
上記ユーザデータ格納手段がユーザデータを格納した場合に、上記２次通信手段を用いて、最新ユーザデータの所在ノードである旨を上記サーバに通知する通知手段として、上記代理サーバをさらに機能させ、かつ、
上記ユーザデータ判定手段は、
上記２次通信手段を用いて、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求を上記サーバに送信し、その返答を取得することで、最新ユーザデータを上記ユーザデータ記憶手段が記憶しているか否かを判定すること
を特徴とするプログラムを記録した記録媒体。
【請求項７】
クライアントと、請求項３記載の代理サーバとが複数接続されたネットワークに接続されるサーバであって、
サービスの提供で使用される通信路とは別の通信路を使って、上記代理サーバとの間で通信を行う２次通信手段と、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
最新のユーザデータの所在ノードを記憶している所在ノード記憶手段と、
上記代理サーバから、最新ユーザデータの所在ノードである旨が通知された場合に、上記所在ノード記憶手段の記憶内容を更新する所在ノード更新手段と、
上記代理サーバから、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求が送信されてきた場合に、上記所在ノード記憶手段の記憶内容に基づいて、問い合わせ対象の最新ユーザデータの所在ノードを識別する所在ノード識別手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれかである場合に、上記２次通信手段を用いて、その旨の返答を該代理サーバに送信する第１の所在ノード返答手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれでもない場合に、上記２次通信手段を用いて、最新ユーザデータを該所在ノードから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得したユーザデータを上記ユーザデータ記憶手段に格納して、上記所在ノード記憶手段の記憶内容を更新すると共に、上記２次通信手段を用いて、最新ユーザデータの所在ノードが自サーバである旨の返答を、問い合わせ元の代理サーバに送信する第２の所在ノード返答手段とを備えたこと
を特徴とするサーバ。
【請求項８】
クライアントと、請求項３記載の代理サーバとが複数接続されたネットワークに接続されるサーバにおいて実行されるプログラムを記録した記録媒体であって、
上記プログラムは、
サービスの提供で使用される通信路とは別の通信路を使って、上記代理サーバとの間で通信を行う２次通信手段と、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
最新のユーザデータの所在ノードを記憶している所在ノード記憶手段と、
上記代理サーバから、最新ユーザデータの所在ノードである旨が通知された場合に、上記所在ノード記憶手段の記憶内容を更新する所在ノード更新手段と、
上記代理サーバから、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求が送信されてきた場合に、上記所在ノード記憶手段の記憶内容に基づいて、問い合わせ対象の最新ユーザデータの所在ノードを識別する所在ノード識別手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれかである場合に、上記２次通信手段を用いて、その旨の返答を該代理サーバに送信する第１の所在ノード返答手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれでもない場合に、上記２次通信手段を用いて、最新ユーザデータを該所在ノードから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得したユーザデータを上記ユーザデータ記憶手段に格納して、上記所在ノード記憶手段の記憶内容を更新すると共に、上記２次通信手段を用いて、最新ユーザデータの所在ノードが自サーバである旨の返答を、問い合わせ元の代理サーバに送信する第２の所在ノード返答手段として、上記サーバを機能させることを特徴とするプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ−クライアント型のネットワークシステムに係り、特に、ネットワーク負荷・サーバ負荷を軽減すると共に、クライアントに快適な作業環境を提供することを可能とする技術に関する。
【０００２】
【従来の技術】
(１)ＤＮＳ(Domain Name System)
インターネットにおいては、ドメインと呼ぶ論理的なグループを階層的に設定し、その論理グループ名であるドメイン名を利用する方式が採用されている。
【０００３】
ドメイン名とＩＰアドレス(インターネットにおけるネットワークアドレスである。)との対応は、ＤＮＳサーバによって管理されており、ＤＮＳサーバは、必要に応じて、他のＤＮＳサーバとの間で情報をやり取りすることで、結果的に、インターネットでの全てのドメイン名とＩＰアドレスとを対応付けることが可能となる。
【０００４】
クライアントは、インターネットを利用してサービスを受けようとするサーバにアクセスするためには、実際には、ホスト名ではなく、物理アドレスであるＩＰアドレスを使用することから、サーバのＩＰアドレスを知る必要がある。
【０００５】
そこで、クライアントは、サーバのＩＰアドレスが分からない場合は、自身のＤＮＳサーバとして予め登録されているＤＮＳサーバに対して、サーバのドメイン名を問い合わせることで、サーバのＩＰアドレスを通知してもらうことができる。なお、あるＤＮＳサーバでＩＰアドレスが分からない場合には、その上位のＤＮＳサーバに問い合わせる。
【０００６】
(２)プロキシサーバ(proxy server)
プロキシサーバ(代理サーバ)は、元来、セキュリティ上の問題を重視する組織の組織内ネットワークと組織外ネットワークであるインターネットとの間に、アクセス制御を行うための防火壁(firewall)を構築した場合に、組織内外での通信が防火壁によって禁止されてしまうことに対処するために開発された代理ゲートウェイである。
【０００７】
例えば、ローカルエリアネットワーク(以下、「ＬＡＮ」と称す。)内では、ユーザは、直接、広域エリアネットワーク(以下、「ＷＡＮ」と称す。)との間で通信ができないので、ＬＡＮとＷＡＮとの間に、「バリアセグメント」と呼ぶセグメントエリアを設け、クライアントのユーザは、バリアセグメント上で動作するサーバに、一旦、リモートログインしてから、ＷＡＮ側のサーバにアクセスする必要がある。
【０００８】
しかし、この方法では、バリアセグメント上で動作するサーバに、ユーザアカウントを多数準備する必要があり、逆に、セキュリティホールの増加につながってしまう。
【０００９】
そこで、バリアセグメント上で動作するサーバにユーザアカウントを用意しなくてもよく、かつ、Gopher，ＷＷＷ等のリソースやデータへのアクセスを、組織内ネットワークのサーバまたはクライアントから可能にするために開発されたのがプロキシサーバである。
【００１０】
プロキシサーバは、防火壁上で動作し、特定のポートを常にオープンしておき、複数のクライアントからのメッセージを受け付けることができる。そして、受け付けたメッセージを、サーバに転送することによって、クライアントの代理を行うものである。
【００１１】
プロキシサーバでは、ユーザ認証を行わなわずにメッセージを受け付け、クライアントとの間の通信には物理アドレスであるＩＰアドレスを用いていることから、クライアントからプロキシサーバへのログインは不要となっている。
【００１２】
プロキシサーバは、Gopher，ＷＷＷ等のリソースやデータへのクライアントのアクセスを中継する機能を持っており、クライアントがプロキシサーバを利用することで、クライアント自身は、プロキシサーバのみとの間で通信を行い、ＷＡＮ側のサーバ等と直接通信を行わなくても良くなる。
【００１３】
このプロキシサーバによって、ＬＡＮとＷＡＮとの間の直接のメッセージ交換がなくなり、ＷＡＮ側からＬＡＮ側への不正なアタックは不可能となる。
【００１４】
(３)プロキシ・キャッシュサーバ
ところで、上述したプロキシサーバの開発にあたり、その副産物として、キャッシュ機能を持つプロキシサーバが開発された。
【００１５】
プロキシサーバは、クライアントのリソースやデータへのアクセスを中継する目的で開発されたものであることから、ＬＡＮ側の複数のクライアントが、重複するデータを参照する可能性が大きい。
【００１６】
従って、重複するデータへの参照に対しては、該当するＷＡＮ側のサーバのデータを１回だけ参照し、そのときに得られたデータを、参照要求を行った複数のＬＡＮ側のクライアントに対して、個々に送り返してやればよい。
【００１７】
このように、１度参照したリソースやデータをディスク等に一時的にキャッシングしておき、重複するリソースやデータへのクライアントからの参照要求に対しては、該当するＷＡＮ側のサーバにアクセスせず、ディスク等に一時的にキャッシングしておいたデータを、参照要求を行ったＬＡＮ側のクライアントに返送する機能を持つプロキシサーバを、プロキシ・キャッシュサーバと呼ぶ。
【００１８】
プロキシ・キャッシュサーバによって、ＷＡＮでのトラフィックを軽減することができ、ＷＡＮでの通信は、ＬＡＮと比較した場合、速度は遅く、コストは高価であることから、ユーザメリットは大きくなる。
【００１９】
また、ＷＡＮ側のサーバへのアクセス回数が減少することで、サーバ負荷の軽減にも貢献することができ、さらに、ＬＡＮ側のユーザも、ローカルなサーバであるプロキシ・キャッシュサーバにキャッシングされているリソースやデータを再利用できるので、快適なレスポンスでアクセスできる等のメリットが挙げられる。
【００２０】
このほかにも、プロキシ・キャッシュサーバは、ディスク等にキャッシングされているリソースやデータのタイムスタンプを確認し、予め定めた期間よりも古いリソースやデータについては、再度、ＷＡＮ側のサーバにアクセスすることで、最新バージョンのリソースやデータを取得するようにするといった処理も行っている。
【００２１】
(４)クライアントストア方式
さて、次世代の低価格インターネットアクセスデバイスとして、最低限サポートしなければならないインターネット機能とプロトコルとだけを搭載した、低価格の端末が考案されている。
【００２２】
このような端末においては、最低限の機能として、ＷｅｂやＦＴＰ(File Transfer Protocol)等の多くのインターネットコミュニケーションプロトコルと、ネットワーク共有システム，ＵＤＰ(User Datagram Protocol)，ＴＣＰ(Transmission Control Protocol)，ＤＨＣＰ(Dynamic Host Configuration Protocol)，ＢＯＯＴＰ(Bootstrap Protocol)等のネットワーキング標準サービスとをサポートしていなければならない。
【００２３】
パソコンとは異なり、全てのアプリケーション管理や運用管理をサーバ側で集中的に行うことが大きな特徴となっているが、このような端末では、ハードディスクを持たないことから、起動の度に、アプリケーションプログラムをサーバからダウンロードしなければならず、サーバ負荷やネットワーク負荷が増大するという問題を持っている。
【００２４】
そこで、既存のパソコンのハードディスクを利用して、アプリケーションプログラムの配信を必要最小限にするための仕組みが提供されている。
【００２５】
このようなシステムでは、サーバからリソースが転送されてくると、そのリソースをハードディスクに記録しておき、必要なときには、ハードディスクに記録しておいたリソースを再利用するものである。
【００２６】
この方式では、サーバから常にリソースを取り込む必要がなくなり、また、リソースの利用時や定期的に、サーバ側のリソースの変更をチェックするようにしているので、常に最新バージョンのリソースをクライアント側で起動できるというメリットがある。
【００２７】
【発明が解決しようとする課題】
上述した従来技術(１)は、クライアントが、サーバにアクセスするときに、ドメイン名から物理アドレスであるＩＰアドレスを１対１で得る方式であるが、以下に述べるような問題点が挙げられる。
【００２８】
すなわち、同一のサービスを提供する複数のサーバが分散してネットワーク上に存在する場合には、クライアントのユーザにとって、各サーバの名前を管理してサービスを要求する作業は、非常に煩わしいという第１の問題点がある。
【００２９】
また、同一のサービスを提供する複数のサーバが分散してネットワーク上に存在する場合に、クライアントのユーザが、ネットワークの負荷状況やサーバの負荷状況を考慮して、妥当なサーバにアクセスをしなければならないという第２の問題点がある。
【００３０】
さらに、同一のサービスを提供する複数のサーバが分散してネットワーク上に存在する場合に、クライアントのユーザは、快適なレスポンスで作業するためには、サーバとクライアントとの間の物理的な距離または論理的な距離を意識して、サーバにアクセスしなければならないという第３の問題点がある。
【００３１】
ここで、ネットワーク上に分散して存在し、同一のサービスを提供する複数のサーバは、具体的には、上述した従来技術(２)のプロキシサーバや上述した従来技術(３)のプロキシ・キャッシュサーバである場合が多い。
【００３２】
また、上述した従来技術(２)は、クライアントに対してサーバの代理を実行することで、サーバとの間で直接メッセージの交換が不可能なクライアントからのサーバアクセスを可能とするものであり、上述した従来技術(３)は、サーバから得たデータをローカルに一時的にキャッシングしておくことで、サーバ負荷やネットワーク負荷を軽減しながら、クライアントのユーザに快適なレスポンスでのアクセス環境を提供するものであり、上述した従来技術(４)は、サーバ側でクライアントのリソースやデータを所有し、必要に応じて(例えば、バージョンアップ時等)、クライアントにリソースやデータをインストールすることで、クライアントの管理負荷を軽減させ、かつ、ダウンロードを最小限に済ませることが可能であるが、以下に述べるような問題点に対処することができない。
【００３３】
すなわち、まず、上述した従来技術(２)および従来技術(３)のプロキシサーバは、特定のポートを常にオープンしておき、複数のクライアントからのメッセージを受け付けることができるが、各クライアントのユーザ認証を行う手段がないので、このプロキシサーバを使って、ユーザ別のサービスを実施することはできないという第１の問題点がある。
【００３４】
また、そもそもハードディスク等のストレージデバイスを持たない端末では、上述した従来技術(４)で説明した方式を採用することはできないという第２の問題点がある。
【００３５】
また、上述した従来技術(２)および従来技術(３)のプロキシサーバは、クライアントが、サーバとの間で頻繁に通信を行う必要があるアプリケーションプログラムを利用する場合に、十分に対処することができないという第３の問題点がある。
【００３６】
例えば、サーバ側にメッセージを送信してその応答を得るようなアプリケーションプログラム(例えば、データベースへのアクセスやクライアント−サーバ型のカナ漢字変換等)の場合では、サーバにアクセスが集中してサーバ負荷とネットワーク負荷が上がり、特に、ＷＡＮのような低速ネットワークを使用する場合には、クライアント側のレスポンス劣化が著しくなってしまうという問題点がある。
【００３７】
このような問題点については、多数のプロキシサーバをネットワーク上に分散させて配置し、各クライアントを付近地のローカルなプロキシサーバと対応付けて、対応するプロキシサーバにアクセスさせるなどの対処方法が考えられるが、この方法では、各プロキシサーバで管理コストがかかるという、新たな問題が発生してしまう。
【００３８】
さらに、このように、多数のプロキシサーバをネットワーク上に分散させて配置した場合には、プロキシサーバおよびクライアントが、共に、対応付けのための設定を行わなければならず、１度設定を行ってしまうと、動的に変更するのが困難であるという欠点がある。また、クライアントのユーザアカウントは、対応するプロキシサーバのみで管理されるので、ユーザが別の拠点のクライアントで作業することは不可能であるという欠点がある。
【００３９】
本発明の第１の目的は、従来のＤＮＳサーバが持つ問題点を解消し、クライアントがサービスを受けようとするサーバを指定するだけで、ネットワーク負荷・サーバ負荷・クライアントの位置を考慮した、クライアントにとって最適な代理サーバを自動的に選択することを可能とすることで、クライアントに快適な作業環境を提供することを可能とすることにある。
【００４０】
また、本発明の第２の目的は、従来のクライアント−サーバ型のネットワークシステムが持つ問題点を解消し、複数の代理サーバをネットワーク上に分散させて配置するが、これらの代理サーバが、サーバによるサービスの提供で使用される通信路とは別の通信路を使って、サーバとの間でリソースやデータを通信することを可能とすることで、トラフィックの軽減・サーバ負荷の軽減を図ると共に、各代理サーバでユーザアカウントを管理しなくても、ユーザ別のサービスを実施することを可能としたり、クライアントとサーバとの間の通信が頻繁に発生する場合でも、クライアントに快適な作業環境を提供することを可能としたりすることにある。
【００４１】
【課題を解決するための手段】
上記第１の目的を達成するために、本発明は、ドメイン名とネットワークアドレスとの固定的な対応関係のみを管理している従来のＤＮＳサーバとは異なり、ネットワーク上に分散して配置されている代理サーバの位置情報および負荷状況を管理し、クライアントから問い合わせがあったドメイン名に対応するサーバのアドレスを通知する際に、クライアントの位置情報と管理内容とに基づいて、常に、クライアントにとって最適な代理サーバを選択し、選択した代理サーバのアドレスを通知するようにしたアドレス解決を行うようにしている。
【００４２】
これにより、クライアントは、サービスを受けようとするサーバを指定するだけで、そのサーバへのアクセス時に、常に、ネットワーク負荷・サーバ負荷・クライアントの位置を考慮した、最適な代理サーバにアクセスを行うことができるので、クライアントのユーザは、レスポンス劣化を招くことなく、快適な環境で作業することができるようになる。
【００４３】
具体的には、本発明は、第１の態様として、
サービスを提供するサーバとして機能するノード(サーバ)と、サービスを受けるクライアントとして機能するノード(クライアント)と、クライアントからサーバへのアクセスを中継する代理サーバとして機能するノード(代理サーバ)とが複数接続されたネットワークに接続されるノードであって、
管理対象ノードの論理グループ名であるドメイン名とネットワークアドレスとを対応付けて記憶するアドレス記憶手段と、
上記代理サーバの負荷状況を定期的に取得する負荷状況取得手段と、
上記代理サーバごとに、その位置情報、および、上記負荷状況取得手段が取得した負荷状況を記憶する代理サーバ情報記憶手段と、
いずれかのクライアントから、該クライアントの位置情報が付加された、サーバのドメイン名に対応するネットワークアドレスを問い合わせるための問い合わせ要求が送信されてきた場合に、該クライアントの位置情報および上記代理サーバ情報記憶手段の記憶内容に基づいて、予め定めた選択のための規則に従った代理サーバを選択する代理サーバ選択手段と、
問い合わせ要求元のクライアントに対して、上記代理サーバ選択手段が選択した代理サーバのネットワークアドレスを通知するアドレス通知手段とを備えたことを特徴とした代理サーバ選択装置を提供している。
【００４４】
なお、位置情報としては、ネットワークアドレスを用いた論理的な位置情報と、ネットワーク上の接続位置を表す情報を用いた物理的な位置情報との両方を用いることが好ましく、後者は、例えば、代理サーバが存在する地域の電話番号の市外局番や、代理サーバが存在する位置の緯度・経度であるようにすることができる。
【００４５】
また、上記負荷状況取得手段が代理サーバの負荷状況を取得するためには、代理サーバが、代理サーバ選択装置からの問い合わせに対して、自身の負荷状況を返答するようにするか、または、代理サーバが、定期的に、自代理サーバの負荷状況を自発的に通知するようにすればよい。
【００４６】
また、上記第２の目的を達成するために、本発明は、複数の代理サーバをネットワーク上に分散させて配置するが、代理サーバが、サーバによるサービスの提供で使用される通信路とは別の通信路を使って、サーバとの間でリソースやデータを通信するようにすることで、トラフィックの軽減・サーバ負荷の軽減を図るようにしている。
【００４７】
これにより、例えば、代理サーバが、サーバによサービスの提供で使用される通信路とは別の通信路を使って、サーバ上のリソースを取得するようにすれば、クライアントとサーバとの間の通信が頻繁に発生する場合でも、クライアントに快適な作業環境を提供することができるようになる。
【００４８】
また、例えば、代理サーバが、サーバによるサービスの提供で使用される通信路とは別の通信路を使って、クライアントを使用するユーザに固有のユーザデータおよびそれに関する情報を、必要に応じて、サーバとの間でやり取りすることで、ユーザアカウントを管理しなくても、ユーザ別のサービスを実施することができるようになる。
【００４９】
具体的には、本発明は、第２の態様として、
サービスを提供するサーバとして機能するノード(サーバ)と、サービスを受けるクライアントとして機能するノード(クライアント)とが複数接続されたネットワークに接続され、クライアントからサーバへのアクセスを中継する代理サーバとして機能するノード(代理サーバ)であって、
上記サーバによるサービスの提供で使用される通信路とは別の通信路を使って、上記サーバとの間で通信を行う２次通信手段を備えたことを特徴とした代理サーバを提供している。
【００５０】
そして、本発明は、第３の態様として、第２の態様において、
中継対象のクライアントがアクセスしているサーバ上のリソースを検知する検知手段と、
上記検知手段が検知したリソースへの、中継対象のクライアントのアクセス頻度を測定する測定手段と、
上記測定手段が測定したアクセス頻度が予め定めた閾値を超えた場合に、上記２次通信手段を用いて、中継対象のクライアントがアクセスしているサーバのリソースを、該サーバから取得するリソース取得手段と、
上記リソース取得手段が取得したリソースを記憶するリソース記憶手段と、
中継対象のクライアントのアクセス先を、上記リソース記憶手段が記憶しているリソースに切り替えるアクセス先切替手段とをさらに備えたことを特徴として代理サーバを提供している。
【００５１】
また、本発明は、第４の態様として、第２の態様において、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
中継対象のクライアントから、ユーザデータをダウンロードするためのダウンロード要求が送信されてきた場合に、該ユーザデータの最新バージョン(以下、「最新ユーザデータ」と称する。)を上記ユーザデータ記憶手段が記憶しているか否かを判定するユーザデータ判定手段と、
最新ユーザデータを記憶していると上記ユーザデータ判定手段が判定した場合には、上記ユーザデータ記憶手段が記憶している最新ユーザデータを、中継対象のクライアントに転送する第１のユーザデータ転送手段と、
最新ユーザデータを記憶していないと上記ユーザデータ判定手段が判定した場合には、上記２次通信手段を用いて、最新ユーザデータを上記サーバから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得した最新ユーザデータを、上記ユーザデータ記憶手段に格納すると共に、格納した最新ユーザデータを、中継対象のクライアントに転送する第２のユーザデータ転送手段とをさらに備えたことを特徴とした代理サーバを提供している。
【００５２】
なお、第４の態様において、
中継対象のクライアントからユーザデータが転送されてきた場合に、該ユーザデータを上記ユーザデータ記憶手段に格納するユーザデータ格納手段と、
上記ユーザデータ格納手段がユーザデータを格納した場合に、上記２次通信手段を用いて、最新ユーザデータの所在ノードである旨を上記サーバに通知する通知手段とをさらに備え、
上記ユーザデータ判定手段は、
上記２次通信手段を用いて、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求を上記サーバに送信し、その返答を取得することで、最新ユーザデータを上記ユーザデータ記憶手段が記憶しているか否かを判定するようにすることができる。
【００５３】
ここで、特に、第４の態様の代理サーバと共にネットワークに接続されるサーバは、
サービスの提供で使用される通信路とは別の通信路を使って、上記代理サーバとの間で通信を行う２次通信手段と、
ユーザに固有のユーザデータを記憶するユーザデータ記憶手段と、
最新ユーザデータの所在ノードを記憶している所在ノード記憶手段と、
上記代理サーバから、最新ユーザデータの所在ノードである旨が通知された場合に、上記所在ノード記憶手段の記憶内容を更新する所在ノード更新手段と、
上記代理サーバから、最新ユーザデータの所在ノードを問い合わせるための問い合わせ要求が送信されてきた場合に、上記所在ノード記憶手段の記憶内容に基づいて、問い合わせ対象の最新ユーザデータの所在ノードを識別する所在ノード識別手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれかである場合に、上記２次通信手段を用いて、その旨の返答を該代理サーバに送信する第１の所在ノード返答手段と、
上記所在ノード識別手段が識別した所在ノードが、問い合わせ元の代理サーバおよび自サーバのいずれでもない場合に、上記２次通信手段を用いて、最新ユーザデータを該所在ノードから取得するユーザデータ取得手段と、
上記ユーザデータ取得手段が取得したユーザデータを上記ユーザデータ記憶手段に格納して、上記所在ノード記憶手段の記憶内容を更新すると共に、上記２次通信手段を用いて、最新ユーザデータの所在ノードが自サーバである旨の返答を、問い合わせ元の代理サーバに送信する第２の所在ノード返答手段とを備えるようにする。
【００５４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【００５５】
(第１の実施形態)
以下、本発明の第１の実施形態について、図１〜図７を参照して説明する。
【００５６】
図１は第１の実施形態が適用されるネットワークシステムの構成図である。
【００５７】
図１において、１０はＷＡＮ、２０はＬＡＮであり、ネットワーク層のプロトコルとして、インターネットプロトコル(以下、「ＩＰ」と称す。)を採用している。
【００５８】
ノード１は、ＷＡＮ１０に接続され、その内部のメモリに格納しているプログラムを実行することで、ネットワーク内のクライアントにＮＣサービスを提供するネットワークコンピュータサーバ(以下、「ＮＣＳ」と称す。)である。
【００５９】
ノード２，７は、各々、ＷＡＮ１０，ＬＡＮ２０に接続され、その内部のメモリに格納しているプログラムを実行することで、クライアントからＮＣＳ１へのアクセスを中継するサービスプロキシサーバ(以下、「ＳＰＳ」と称す。)である。
【００６０】
ノード３は、ＬＡＮ２０に接続され、その内部のメモリに格納しているプログラムを実行することで、ＮＣＳ１が提供するサービスを受けるクライアントとして稼働するネットワークコンピュータ(以下、「ＮＣ」と称す。)である。
【００６１】
ノード４，５は、各々、ＷＡＮ１０，ＬＡＮ２０に接続され、その内部のメモリに格納しているプログラムを実行することで、ドメイン名とネットワークアドレス(本例では、ＩＰアドレスである。)とを対応付けて管理し、ＮＣ３から問い合わせがあったＩＰアドレスを通知するドメインネームシステムサーバ(以下、「ＤＮＳサーバ」と称す。)である。具体的には、ＮＣ３は、ドメイン名を設定したリクエストメッセージを送信することで、そのドメイン名に対応するＩＰアドレスを問い合わせ、ＤＮＳサーバ４，５は、リクエストメッセージに設定されているドメイン名に対応するＩＰアドレスを設定した応答メッセージを、ＮＣ３に送信する。なお、ＤＮＳサーバ４，５は、目的のＩＰアドレスが分からない場合には、他のＤＮＳサーバと協調してＩＰアドレスを求める。
【００６２】
ノード６は、ＳＰＳ２，７の位置情報および負荷状況を管理し、ＮＣ３から問い合わせがあったドメイン名に対応するＩＰアドレスを通知する際に、ＮＣ３の位置情報と自身の管理内容とに基づいて、通知するＩＰアドレスを動的に変更する動的ＤＮＳサーバ(以下、「ＤＤＮＳサーバ」と称す。)である。
【００６３】
ノード８は、ＷＡＮ１０とＬＡＮ２０との間のメッセージ交換を可能とするためのゲートウェイサーバ(以下、「ＧＷＳ」と称す。)である。
【００６４】
図２はＮＣＳ１の構成図である。
【００６５】
図２において、データ送受信部１１は、ＷＡＮ１０に接続されたノードとの間で、メッセージの送受信を行い、また、稼働中のＮＣＳ１のモジュールとの間で、データやリソースの送受信を行う。
【００６６】
ＮＣプログラム転送部１２は、ＷＡＮ１０に接続されたノードとの間で、ＮＣプログラム本体やリソースやデータの転送を行う。
【００６７】
遠隔手続き呼び出し部１３は、ＷＡＮ１０に接続されたノードとの間で、遠隔手続き呼び出しを行う。
【００６８】
ファイル転送部１４は、ＷＡＮ１０に接続されたノードとの間で、リソースやデータの転送を行う。
【００６９】
ＮＣＳ実行部１５は、ＮＣ３にＮＣサービスの提供を行う。
【００７０】
ＳＰＳサポート部１６は、ＳＰＳ２，７との間で、ＮＣサービス以外のリソースやデータの通信を行う。なお、ＳＰＳサポート部１６は、後述する第２の実施形態〜第６の実施形態の動作を実現するために必要な構成要素であり、第１の実施形態では、必ずしも必要とされない。
【００７１】
リソース格納部１７は、データベース(以下、「ＤＢ」と称す。)ファイル１７１，ユーザファイル用ファイル１７２，アプリケーションプログラム用ファイル１７３を備え、ＮＣ３に提供するリソースやデータのマスターをこれらに保存し、必要に応じて、保存内容をＮＣ３やＳＰＳ２，７に転送したり、保存内容を用いてＤＢサービスを実施したりする。
【００７２】
図３はＳＰＳ２の構成図である。
【００７３】
図３において、データ送受信部２１は、ＬＡＮ２０に接続されたノードとの間で、メッセージの送受信を行い、また、稼働中のＳＰＳ２のモジュールとの間で、データやリソースの送受信を行う。
【００７４】
ＮＣプログラム転送部２２は、ＬＡＮ２０に接続されたノードとの間で、ＮＣプログラム本体やリソースやデータの転送を行う。
【００７５】
ファイル転送部２３は、ＬＡＮ２０に接続されたノードとの間で、リソースやデータの転送を行う。
【００７６】
遠隔手続き呼び出し部２４は、ＬＡＮ２０に接続されたノードとの間で、遠隔手続き呼び出しを行う。
【００７７】
ＮＣ代理実行部２５は、ＷＡＮ１０に接続されたＮＣＳ１からＮＣサービスの提供を受ける。
【００７８】
ＮＣＳ代理実行部２７は、ＬＡＮ２０に接続されたＮＣ３にＮＣサービスの提供を行う。
【００７９】
ＳＰＳ実行部２６は、ＮＣ代理実行部２５とＮＣＳ代理実行部２７との間でメッセージ交換を行い、ＮＣ代理実行部２５およびＮＣＳ代理実行部２７に各種命令を指令する。また、後述する第２の実施形態〜第６の実施形態においては、ＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６との間で、ＮＣサービスの提供で使用される通信路とは別の通信路を使って、ＮＣサービスの実施と同期／非同期に、ＮＣサービス以外のリソースやデータの通信を行う。
【００８０】
リソース格納部２８は、ＤＢファイル２８１，ユーザファイル用ファイル２８２，アプリケーションプログラム用ファイル２８３を備え、ＮＣＳ１から受け取ったリソースやデータをこれらに保存し、必要に応じて、保存内容をＮＣ３に転送したり、保存内容を用いてＤＢのサービスを実施したりする。
【００８１】
なお、ＳＰＳ７の構成も、ＳＰＳ２と同様である。
【００８２】
次に、ＳＰＳ２がＮＣＳ１の代理サーバとなるためにネットワークに参入する際の手続きについて説明する。
【００８３】
ＳＰＳ２のＳＰＳ実行部２６は、ＤＤＮＳサーバ６のＩＰアドレスをオフラインで入手し、ＳＰＳ２のＩＰアドレスおよび位置情報を、ＤＤＮＳサーバ６に送信する。ここで、位置情報としては、例えば、ＳＰＳ２が存在する地域の電話番号の市外局番や、ＳＰＳ２が存在する位置の緯度・経度を用いることができる。本例では、市外局番および緯度・経度の両方を用いることとする。
【００８４】
ＤＤＮＳサーバ６は、ＳＰＳ２からこれらの情報を受け取ると、その内部のメモリに格納しているＳＰＳ情報リストにＳＰＳ２を登録すると共に、ＳＰＳ２が運用時に必要となる最小限のリソースやデータ(例えば、ログイン用アプリケーションプログラムや基本アプリケーションプログラムである。)と、ＮＣＳ１のＩＰアドレスとを、ＳＰＳ２に送信する。
【００８５】
ＳＰＳ２のＳＰＳ実行部２６は、ＤＤＮＳサーバ６からこれらの情報を受け取ると、準備が完了した旨をＤＤＮＳサーバ６に通知し、ＤＤＮＳサーバ６は、ＳＰＳ２から通知を受けた時点で、ＳＰＳ情報リストにおけるＳＰＳ２の登録内容を有効にする。
【００８６】
その後、ＳＰＳ２は、定期的に、ＳＰＳ２の負荷状況をＤＤＮＳサーバ６に通知し、通知を受けたＤＤＮＳサーバ６は、ＳＰＳ情報リストの内容を更新する。ここで、負荷状況としては、例えば、メモリの使用量やＣＰＵの稼働率といったリソースの消費状況を用いるようにしたり、接続ユーザ数を用いるようにしたりすることができる。
【００８７】
なお、ＳＰＳ情報リストの内容は、図７に示す通りであり、図７の例では、負荷状況として、メモリの使用量を用いている。
【００８８】
また、ＳＰＳ７がＮＣＳ１の代理サーバとなるためにネットワークに参入する際の手続きも、上述と同様である。
【００８９】
これにより、ＤＤＮＳサーバ６は、ＳＰＳ２，７の位置情報を知ることができると共に、ＳＰＳ２，７の負荷状況を把握することができるので、後述する動的対応付け処理を実行することが可能となる。
【００９０】
図４はＩＰアドレスの問い合わせに使用されるリクエストメッセージのフォーマットを示す図である。
【００９１】
なお、ＤＮＳサーバが提供するサービスに関するメッセージフォーマットの詳細については、「ＴＣＰ／ＩＰによるネットワーク構築」，Douglas・Comer著，共立出版社発行を参照されたい。
【００９２】
第１の実施形態においては、ＩＰアドレスの問い合わせに使用されるリクエストメッセージには、クライアントであるＮＣ３のＩＰアドレスおよび位置情報が付加されるようになっている。ここで、位置情報としては、上述と同様に、例えば、ＮＣ３が存在する地域の電話番号の市外局番や、ＮＣ３が存在する位置の緯度・経度を用いることができる。本例では、市外局番および緯度・経度の両方を用いることとする。また、この位置情報は、ＤＮＳサーバが上位のＤＮＳサーバにリクエストメッセージを転送するときに破棄されることはない。
【００９３】
次に、ＮＣ３がＳＰＳのＩＰアドレスを取得する方法について、図１，図５，図６を用いて説明する。
【００９４】
図５に示すように、ＮＣ３は、まず、自身のＩＰアドレスおよび位置情報を取得する(ステップ１００１)。なお、これらの情報は、ＮＣ３のユーザからの入力によって取得するようにすることができるが、特に、緯度・経度については、センサ等の検知内容から取得するようにすることができる。
【００９５】
続いて、ＮＣ３は、図４に示したリクエストメッセージを作成し(ステップ１００２)、作成したリクエストメッセージを、自身のＤＮＳサーバとして予め登録されているＤＮＳサーバ(ここでは、ＤＮＳサーバ４とする。)に送信する(ステップ１００３)。
【００９６】
そこで、ＤＮＳサーバ４は、送信されてきたリクエストメッセージからドメイン名を取得し、取得したドメイン名に対応するＩＰアドレスを自身が管理している場合には、そのＩＰアドレスを設定した応答メッセージをＮＣ３に送信する。また、ＤＮＳサーバ４は、目的のＩＰアドレスを自身が管理していない場合には、送信されてきたリクエストメッセージを、自身の上位のＤＮＳサーバとして予め登録されているＤＮＳサーバ(ここでは、ＤＮＳサーバ５とする。)に転送する。
【００９７】
そこで、ＤＮＳサーバ５は、送信されてきたリクエストメッセージからドメイン名を取得し、取得したドメイン名に対応するＩＰアドレスを自身が管理している場合には、そのＩＰアドレスを設定した応答メッセージをＤＮＳサーバ４に送信し、ＤＮＳサーバ４は、この応答メッセージをＮＣ３に転送する。また、ＤＮＳサーバ５は、目的のＩＰアドレスを自身が管理していない場合には、上述と同様に、送信されてきたリクエストメッセージを、自身の上位のＤＮＳサーバとして予め登録されているＤＮＳサーバ(ここでは、ＤＤＮＳサーバ６とする。)に転送する。
【００９８】
さて、図５に戻って、リクエストメッセージを送信したＮＣ３は、応答メッセージが送信されてくるのを待ち(ステップ１００４〜１００６)、予め定めた時間内に応答メッセージが送信されてこなかった場合には、ステップ１００３に戻って、リトライを行う。
【００９９】
ところで、第１の実施形態においては、ＤＤＮＳサーバ６は、ドメイン名とＩＰアドレスとを動的に対応付け、通知するＩＰアドレスを変更する動的対応付け処理を実行するようになっており、以下、動的対応付け処理について、図６を用いて説明する。
【０１００】
図６に示すように、ＤＤＮＳサーバ６は、リクエストメッセージを待ち(ステップ１０１１)、リクエストメッセージを受信すると(ステップ１０１２)、そのリクエストメッセージからドメイン名を取得し、取得したドメイン名がＮＣＳ１のドメイン名であるか否かを調べる(ステップ１０１３)。
【０１０１】
取得したドメイン名がＮＣＳ１のドメイン名でない場合には(ステップ１０１３)、ＤＤＮＳサーバ６は、通常のＤＮＳサーバ４，５と同様に、ドメイン名に対応するＩＰアドレスを設定した応答メッセージを返信する(ステップ１０２１)。なお、ＮＣＳ１のドメイン名以外のドメイン名とは、例えば、メールサーバ等のドメイン名である。
【０１０２】
また、取得したドメイン名がＮＣＳ１のドメイン名である場合には(ステップ１０１３)、ＤＤＮＳサーバ６は、リクエストメッセージからＮＣ３のＩＰアドレスおよび位置情報を取得し(ステップ１０１４)、ＳＰＳ情報リストを読み込む(ステップ１０１５)。
【０１０３】
ＳＰＳ情報リストは、図７に示すように、ネットワーク上に分散して配置されているＳＰＳ２，７の各々について、ＩＰアドレス，位置情報，負荷状況が登録されている。
【０１０４】
そこで、ＤＤＮＳサーバ６は、ＳＰＳ情報リストを参照して、各ＳＰＳの負荷状況をチェックすると共に(ステップ１０１６)、各ＳＰＳのＩＰアドレスとＮＣ３のＩＰアドレスとから、各ＳＰＳとＮＣ３との間の論理的な距離を算出し(ステップ１０１７)、各ＳＰＳの位置情報とＮＣ３の位置情報とから、各ＳＰＳとＮＣ３との間の物理的な距離を算出する(ステップ１０１８)。
【０１０５】
続いて、ＤＤＮＳサーバ６は、ステップ１０１７およびステップ１０１８で算出した距離から、ＮＣ３にとって最適なＳＰＳを選択し(ステップ１０１９)、選択したＳＰＳのＩＰアドレスを設定した応答メッセージを、ＮＣまたはＤＮＳサーバに返信する(ステップ１０２０)。
【０１０６】
ＮＣ３にとって最適なＳＰＳとは、具体的には、算出した距離ができるだけ小さいＳＰＳであって、かつ、その負荷状況ができるだけ小さいＳＰＳである。ただし、算出した距離と負荷状況との間に関連性がないことから、距離が最小であっても、負荷状況が最大である場合も考えられる。そこで、ＤＤＮＳサーバ６は、「距離が最小であるＳＰＳの負荷状況が８０％以上である場合には、２番目に距離が小さいＳＰＳを選択する。」といった、予め定めた選択のための規則に従って、ＳＰＳを選択するようにすることが好ましい。
【０１０７】
これにより、ＮＣ３に対して、ＮＣ３にとって最適なＳＰＳ(本例では、ＳＰＳ２となる。)のＩＰアドレスが通知されることとなり、ＮＣ３は、ＩＰアドレスが通知されたＳＰＳ２を、ＮＣＳ１の代理サーバとして、ＮＣサービスを受けることとなる。
【０１０８】
以上説明したように、第１の実施形態によれば、ＤＤＮＳサーバ６は、ドメイン名とＩＰアドレスとの固定的な対応関係のみを管理している従来のＤＮＳサーバ４，５とは異なり、ネットワーク上に分散して配置されているＳＰＳ２，７の位置情報および負荷状況を管理し、ＮＣ３から問い合わせがあったドメイン名に対応するＮＣＳ１のＩＰアドレスを通知する際に、ＮＣ３の位置情報と自身の管理内容とに基づいて、ＮＣ３にとって最適な代理サーバであるＳＰＳを選択し、選択したＳＰＳのＩＰアドレスを通知することができる。
【０１０９】
従って、ＮＣ３は、ＮＣＳ１を指定するだけで、ＮＣＳ１へのアクセス時に、常に、最適な代理サーバであるＳＰＳにアクセスを行うことができるので、ＮＣ３のユーザは、レスポンス劣化を招くことなく、快適な環境で作業することができるという効果がある。
【０１１０】
また、ＳＰＳ２，７でユーザアカウントを管理する必要がないので、ユーザは、別のＮＣで作業することが可能となるという効果がある。
【０１１１】
また、ＳＰＳ２，７は、ＮＣＳ１の代理サーバとなるためにネットワークに参入する際の手続きを１度行ってしまえば、再度手続きを行う必要がほとんどないので、手続きに要する手間が削減されるという効果がある。
【０１１２】
(第２の実施形態)
ところで、上述した第１の実施形態において、ＮＣ３は、代理サーバとして選択されたＳＰＳ２に対して、ＮＣＳ１を利用するのと同じ手続きでアクセス認証を行い、ＳＰＳ２からＮＣサービスを受けるようにすることができる。
【０１１３】
以下、このようにした場合の実施形態を、第２の実施形態として、図８を用いて説明する。
【０１１４】
図８に示すように、応答メッセージからＳＰＳ２のＩＰアドレスを入手したＮＣ３が、ＳＰＳ２のＮＣＳ代理実行部２７にアクセス要求を行うと、ＮＣＳ代理実行部２７は、ログインを行うためのログイン画面をＮＣ３に転送する。
【０１１５】
このように、第２の実施形態においては、ＳＰＳ２は、クライアントであるＮＣ３にとっては、ＮＣＳ１として機能し、ＮＣＳ１がＮＣ３に対して行うユーザ認証要求を代行する。
【０１１６】
ＮＣ３において、ユーザが、転送されてきたログイン画面でログイン情報(具体的には、ユーザＩＤおよびパスワードである。)を入力すると、ＮＣ３は、入力されたログイン情報を設定したログイン要求を、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１１７】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からログイン要求を受け取ると、そのログイン要求に設定されているログイン情報を、ＳＰＳ実行部２６に転送する。ＳＰＳ実行部２６は、ＮＣＳ代理実行部２７からログイン情報を受け取ると、ＮＣ代理実行部２５に対して、受け取ったログイン情報を転送すると共に、ＮＣＳ１にアクセス要求を行うよう指示する。ＮＣ代理実行部２５は、ＳＰＳ実行部２６からの指示に従って、ＮＣＳ１にアクセス要求を行い、ＮＣＳ１からログイン画面が転送されてくると、ＳＰＳ実行部２６から受け取ったログイン情報を使用して、ＮＣＳ１にログイン要求を送信する。
【０１１８】
このように、第２の実施形態においては、ＳＰＳ２は、ＮＣＳ１にとっては、クライアントであるＮＣ３として機能し、ＮＣ３がＮＣＳ１に対して行うユーザ認証応答を代行する。
【０１１９】
ＮＣＳ１は、ＳＰＳ２のＮＣ代理実行部２５からログイン要求を受け取ると、そのログイン要求に設定されているログイン情報を使用してユーザ認証を行い、認証が得られた場合には、ログイン応答と、ユーザの作業用画面を提供するためのユーザ環境ファイルとを、ＳＰＳ２のＮＣ代理実行部２５に転送する。
【０１２０】
ＳＰＳ２のＮＣ代理実行部２５は、ＮＣＳ１から転送されてきたログイン応答およびユーザ環境ファイルを、リソース格納部２８に格納すると共に、ＳＰＳ実行部２６に対して、ログインの成功を通知し、ＳＰＳ実行部２６は、さらに、ＮＣＳ代理実行部２７に対して、ログインの成功を通知する。ＮＣＳ代理実行部２７は、ログインの成功が通知されると、リソース格納部２８からログイン応答およびユーザ環境ファイルを取り出し、取り出したログイン応答およびユーザ環境ファイルをＮＣ３に転送し、ログイン処理を終了する。
【０１２１】
このように、第２の実施形態においては、ＳＰＳ２は、ＮＣ３にとっては、ＮＣＳ１として機能し、ＮＣＳ１がＮＣ３に対して行うユーザ認証結果通知を代行する。
【０１２２】
なお、ＮＣＳ１でユーザ認証に失敗した場合には、ＮＣＳ１からＳＰＳ２に対して、ログインの失敗を示すメッセージが送信されてくるので、ＮＣ３においては、ログインの失敗を示すメッセージが表示されることとなる。また、ＮＣ３のユーザは、再度、ログイン情報を入力して、ログイン要求を試みることも可能である。
【０１２３】
以上説明したように、第２の実施形態によれば、代理サーバとして選択されたＳＰＳ２が、ユーザ認証に関して、ＮＣ３にとってはＮＳＣ１として機能し、ＮＣＳ１にとってはＮＣ３として機能するようにしているので、ＳＰＳ２でユーザアカウントを管理する必要がない上、さらに、ＮＣ３およびＮＣＳ１の双方において、ユーザ認証の手続きを変更することなく、ログイン処理を行うことが可能となるという効果がある。
【０１２４】
(第３の実施形態)
ところで、上述した第１の実施形態において、ＮＣ３が、代理サーバとして選択されたＳＰＳ２に対してアクセスしている際に(実際には、上述した第２の実施形態で説明したログインに成功した後の状態である。)、ＮＣＳ１からアプリケーションプログラムをダウンロードして使用する場合には、ＳＰＳ２は、従来のプロキシ・キャッシュサーバのように、該アプリケーションプログラムを内部にキャッシングしているならば、内部にキャッシングしているアプリケーションプログラムをＮＣ３に転送するようにすることで、トラフィックの軽減・サーバ負荷の軽減を図ることを可能とすることができる。
【０１２５】
以下、このようにした実施形態を、第３の実施形態として、図９を用いて説明する。
【０１２６】
第３の実施形態においては、ＮＣ３にダウンロードされるアプリケーションプログラムが、常に最新バージョンであるようにする必要がある点、すなわち、ＳＰＳ２が内部にキャッシングしているアプリケーションプログラムが、常に最新バージョンであるようにする必要があるという点が重要である。
【０１２７】
図９に示すように、ＮＣ３において、ユーザが、自身の作業用画面でアプリケーションプログラムの使用要求を指示すると、ＮＣ３は、該アプリケーションプログラムのダウンロード要求を、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１２８】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からダウンロード要求を受け取ると、受け取ったダウンロード要求の要求内容を、ＳＰＳ実行部２６に転送する。ＳＰＳ実行部２６は、ＮＣＳ代理実行部２７から要求内容を受け取ると、リソース格納部２８のアプリケーションプログラム用ファイル２８３をチェックし、要求されたアプリケーションプログラムが格納されているか否かをチェックする。
【０１２９】
要求されたアプリケーションプログラムが格納されている場合には、ＳＰＳ２のＳＰＳ実行部２６は、該アプリケーションプログラムのバージョンを問い合わせるためのアプリケーションバージョンチェック要求を、ＮＣＳ１のＳＰＳサポート部１６に送信する。
【０１３０】
ＮＣＳ１のＳＰＳサポート部１６は、ＳＰＳ２のＳＰＳ実行部２６からアプリケーションバージョンチェック要求を受け取ると、問い合わせがあったアプリケーションプログラムのバージョンを示すアプリケーションバージョンチェック応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１３１】
なお、第３の実施形態において、アプリケーションバージョンチェック要求およびその応答は、ＳＰＳ２の遠隔手続き呼び出し部２４とＮＣＳ１の遠隔手続き呼び出し部１３との間で、ＮＣＳ１によるＮＣサービスの提供で使用される通信路とは別の通信路を使って交換される。
【０１３２】
ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６からアプリケーションバージョンチェック応答を受け取ると、受け取ったアプリケーションバージョンチェック応答が示すバージョンと、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムのバージョンとを照合することで、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムが最新バージョンであるか否かを判定する。
【０１３３】
最新バージョンである場合には、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ代理実行部２７に対して、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムをダウンロードするよう指示し、ＮＣＳ代理実行部２７は、ＳＰＳ実行部２６からの指示に従って、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムについて、ＮＣ３がＮＣＳ１に対して通常行う手続きと同じ手続きで、そのアプリケーションプログラムをダウンロードを実行する。
【０１３４】
また、要求されたアプリケーションプログラムが、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されていない場合や、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムが最新バージョンでない場合には、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣ代理実行部２４に対して、ＮＣＳ代理実行部２７から受け取った要求内容を転送すると共に、ＮＣＳ１に該アプリケーションプログラムのダウンロード要求を行うよう指示する。ＮＣ代理実行部２４は、ＳＰＳ実行部２６からの指示に従って、ＳＰＳ実行部２６から受け取った要求内容を使用して、ＮＣＳ１のＮＣＳ実行部１５にダウンロード要求を送信する。
【０１３５】
ＮＣＳ１のＮＣＳ実行部１５は、ＳＰＳ２のＮＣ代理実行部２４からダウンロード要求を受け取ると、要求されたアプリケーションプログラムのダウンロードを実行するので、ＳＰＳ２のＮＣ代理実行部２４は、ＮＣＳ１のＮＣＳ実行部１５からアプリケーションプログラムを取得すると、取得したアプリケーションプログラムを、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納すると共に、ＳＰＳ実行部２６に対して、ダウンロードの成功を通知する。
【０１３６】
ＳＰＳ２のＳＰＳ実行部２６は、ダウンロードの成功が通知されると、ＮＣＳ代理実行部２７に対して、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムをダウンロードするよう指示し、ＮＣＳ代理実行部２７は、ＳＰＳ実行部２６からの指示に従って、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているアプリケーションプログラムについて、ＮＣ３がＮＣＳ１に対して通常行う手続きと同じ手続きで、そのアプリケーションプログラムをダウンロードを実行する。
【０１３７】
以上説明したように、第３の実施形態によれば、代理サーバとして選択されたＳＰＳ２は、ＮＣ３からダウンロードが要求されたアプリケーションプログラムの最新バージョンが、リソース格納部２８のアプリケーションプログラム用ファイル２８３に格納されているならば、そのアプリケーションプログラムをＮＣ３に転送するようにすることができる。
【０１３８】
従って、ＳＰＳ２からＮＣＳ１への不要なアクセスが生じず、トラフィックの軽減・サーバ負荷の軽減を図ることを可能とするという効果がある。また、ＳＰＳ２においても、ＮＣ３からのダウンロード要求に応じたタイミングで、常に最新バージョンのアプリケーションプログラムが格納されるようになり、ＮＣ３にとって必要な情報のみが格納されることとなるので、記憶媒体の消費量を軽減させることが可能となるという効果がある。
【０１３９】
(第４の実施形態)
さらに、上述した第１の実施形態において、ＮＣ３のユーザが、自身の作業用画面を用いて、過去に編集したユーザファイルを再編集する場合、すなわち、ＮＣ３が、自身のユーザが過去に編集したユーザファイルをダウンロードして使用する場合に、代理サーバとして選択されたＳＰＳ２は、該ユーザファイルの最新バージョンを内部にキャッシングしているならば、そのユーザファイルをＮＣ３に転送するようにすることで、トラフィックの軽減・サーバ負荷の軽減を図ることを可能とすることができる。
【０１４０】
以下、このようにした実施形態を、第４の実施形態として、図１０および図１１を用いて説明する。
【０１４１】
図１０に示すように、ＮＣ３において、ユーザの作業用画面には、過去に編集したユーザファイルのファイル名が記録されており、ユーザが、そのファイル名を指定してユーザファイルの使用要求を指示すると、ＮＣ３は、該ユーザファイルのダウンロード要求を、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１４２】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からダウンロード要求を受け取ると、受け取ったダウンロード要求の要求内容を、ＳＰＳ実行部２６に転送する。ＳＰＳ実行部２６は、ＮＣＳ代理実行部２７から要求内容を受け取ると、要求されたユーザファイルのバージョンを問い合わせるためのユーザファイルバージョンチェック要求を、ＮＣＳ１のＳＰＳサポート部１６に送信する。
【０１４３】
ＮＣＳ１のＳＰＳサポート部１６は、ＳＰＳ２のＳＰＳ実行部２６からユーザファイルバージョンチェック要求を受け取ると、ユーザファイルポインタリスト１６１を参照し、問い合わせがあったユーザファイルの最新バージョンが何処に存在しているかを調べる。
【０１４４】
なお、ユーザファイルポインタリスト１６１には、ユーザファイルごとに、その最新バージョンの存在場所を示す情報が格納されており、その情報の格納方法については、図１１を用いて後述する。また、最新バージョンのユーザファイルとは、最も最近のタイムスタンプが付与されたユーザファイルであることを意味している。
【０１４５】
問い合わせがあったユーザファイルの最新バージョンが、ＳＰＳ７に存在していることが分かった場合には、ＮＣＳ１のＳＰＳサポート部１６は、該ユーザファイルのダウンロード要求を、ＳＰＳ７のＳＰＳ実行部２６に送信することで、ＳＰＳ７から該ユーザファイルを取得し、取得したユーザファイルを、リソース格納部１７のユーザファイル用ファイル１７２に格納する。なお、このとき、ＳＰＳサポート部１６は、ユーザファイルポインタリスト１６１の格納内容を、取得したユーザファイルの最新バージョンの存在場所がＮＣＳ１である旨を示す情報に書き替える。
【０１４６】
そして、ＮＣＳ１のＳＰＳサポート部１６は、最新バージョンのユーザファイルの存在場所(ここでは、ＮＣＳ１となる。)を示すユーザファイルバージョンチェック応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１４７】
また、要求されたユーザファイルの最新バージョンが、ＮＣＳ１のユーザファイル用ファイル１７２に格納されていることが分かった場合には、ＮＣＳ１のＳＰＳサポート部１６は、最新バージョンのユーザファイルの存在場所(ここでは、ＮＣＳ１となる。)を示すユーザファイルチェック応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１４８】
さらに、要求されたユーザファイルの最新バージョンが、ＳＰＳ２に存在していることが分かった場合には、ＮＣＳ１のＳＰＳサポート部１６は、最新バージョンのユーザファイルの存在場所(ここでは、ＳＰＳ２となる。)を示すユーザファイルバージョンチェック応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１４９】
なお、第４の実施形態において、ユーザファイルバージョンチェック要求およびその応答は、ＳＰＳ２の遠隔手続き呼び出し部２４とＮＣＳ１の遠隔手続き呼び出し部１３との間で、ＮＣＳ１によるＮＣサービスの提供で使用される通信路とは別の通信路を使って交換される。
【０１５０】
ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６からユーザファイルバージョンチェック応答を受け取ると、リソース格納部２８のユーザファイル用ファイル２８２をチェックし、要求されたユーザファイルが格納されているか否かをチェックする。
【０１５１】
要求されたユーザファイルが格納されている場合には、ＳＰＳ２のＳＰＳ実行部２６は、受け取ったユーザファイルバージョンチェック応答によって、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルが最新バージョンであるか否かを判定する。
【０１５２】
最新バージョンである場合には、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ代理実行部２７に対して、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルをダウンロードするよう指示し、ＮＣＳ代理実行部２７は、ＳＰＳ実行部２６からの指示に従って、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルについて、ＮＣ３がＮＣＳ１に対して通常行う手続きと同じ手続きで、そのユーザファイルをダウンロードを実行する。
【０１５３】
また、要求されたユーザファイルが、リソース格納部２８のユーザファイル用ファイル２８２に格納されていない場合は、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルが最新バージョンでない場合には、最新バージョンのユーザファイルの存在場所がＮＣＳ１であることが分かるので、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣ代理実行部２４に対して、ＮＣＳ代理実行部２７から受け取った要求内容を転送すると共に、ＮＣＳ１に該ユーザファイルのダウンロード要求を行うよう指示する。ＮＣ代理実行部２４は、ＳＰＳ実行部２６からの指示に従って、ＳＰＳ実行部２６から受け取った要求内容を使用して、ＮＣＳ１のＳＰＳサポート部１６にダウンロード要求を送信する。
【０１５４】
ＮＣＳ１のＳＰＳサポート部１６は、ＳＰＳ２のＮＣ代理実行部２４からダウンロード要求を受け取ると、要求されたユーザファイルのダウンロードを実行するので、ＳＰＳ２のＮＣ代理実行部２４は、ＮＣＳ１からユーザファイルを取得すると、取得したユーザファイルを、リソース格納部２８のユーザファイル用ファイル２８２に格納すると共に、ＳＰＳ実行部２６に対して、ダウンロードの成功を通知する。
【０１５５】
ＳＰＳ２のＳＰＳ実行部２６は、ダウンロードの成功が通知されると、ＮＣＳ代理実行部２７に対して、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルをダウンロードするよう指示し、ＮＣＳ代理実行部２７は、ＳＰＳ実行部２６からの指示に従って、リソース格納部２８のユーザファイル用ファイル２８２に格納されているユーザファイルについて、ＮＣ３がＮＣＳ１に対して通常行う手続きと同じ手続きで、そのユーザファイルをダウンロードを実行する。
【０１５６】
以上説明したように、第４の実施形態によれば、代理サーバとして選択されたＳＰＳ２は、ＮＣ３からダウンロードが要求されたユーザファイルの最新バージョンが、リソース格納部２８のユーザファイル用ファイル２８２に格納されているならば、そのユーザファイルをＮＣ３に転送するようにすることができる。
【０１５７】
従って、ＳＰＳ２からＮＣＳ１への不要なアクセスが生じず、トラフィックの軽減・サーバ負荷の軽減を図ることを可能とするという効果がある。また、ＳＰＳ２においても、ＮＣ３からのダウンロード要求に応じたタイミングで、常に最新バージョンのユーザファイルが格納されるようになり、ＮＣ３にとって必要な情報のみが格納されることとなるので、記憶媒体の消費量を軽減させることが可能となるという効果がある。
【０１５８】
また、ＳＰＳ２がリソース管理やユーザ管理を行う必要がないにも関わらず、ユーザ別のＮＣサービスを実施することができるという効果がある。そこで、ＳＰＳ２での特別な管理コストが不要となり、実質的に管理が必要となるのは、ＮＣＳ１だけになるという効果がある。
【０１５９】
さて、ここで、ＮＣＳ１が、ユーザファイルの最新バージョンの存在場所を示す情報を、ユーザファイルポインタリスト１６１に格納する際の動作について、引き続き、図１１を用いて説明する。
【０１６０】
ＮＣ３のユーザは、上述したようにして取得した最新バージョンのユーザファイルの編集作業を終了し、該ユーザファイルの格納要求を指示すると、ＮＣ３は、該ユーザファイルのアップロード要求を、該ユーザファイルの本体と共に、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１６１】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からアップロード要求を受け取ると、該アップロード要求と共に受け取ったユーザファイルの本体を、リソース格納部２８のユーザファイル用ファイル２８２に格納し、格納が完了すると、ＮＣ３に対して、格納の完了を通知すると共に、ＳＰＳ実行部２６に対しても、格納の完了を通知する。ＳＰＳ実行部２６は、格納の完了が通知されると、ユーザファイルのバージョンが変更したことを示すユーザファイルバージョン通知を、ＮＣＳ１のＳＰＳサポート部１６に送信する。
【０１６２】
ＮＣＳ１のＳＰＳサポート部１６は、このユーザファイルバージョン通知を受けて、ユーザファイルポインタリスト１６１を更新することができる。すなわち、ＳＰＳサポート部１６は、ユーザファイルポインタリスト１６１の格納内容を、通知されたユーザファイルの最新バージョンの存在場所がＳＰＳ２である旨を示す情報に書き替える。
【０１６３】
そして、ユーザファイルポインタリスト１６１の更新を完了すると、ＮＣＳ１のＳＰＳサポート部１６は、更新の完了を示すユーザファイルバージョン確認を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１６４】
なお、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６からユーザファイルバージョン確認が返送されてくるまで、ユーザファイルバージョン通知の送信を続けるようにする。
【０１６５】
ところで、第４の実施形態においては、ＮＣＳ１は、問い合わせがあったユーザファイルの最新バージョンの存在場所が、ＮＣＳ１でもなく、問い合わせ元のＳＰＳ２でもない場合に、ユーザファイルバージョンチェック応答を送信する前に、該ユーザファイルを存在場所(上述の例では、ＳＰＳ７である。)から取得するようにしているが、最新バージョンのユーザファイルの存在場所がＳＰＳ７である旨を示すユーザファイルバージョンチェック応答を送信し、その後、ＳＰＳ２からダウンロード要求が送信されてきたときに、ユーザファイルの最新バージョンをＳＰＳ７から取得するようにしてもよい。
【０１６６】
(第５の実施形態)
さて、上述した第１の実施形態において、ＮＣ３のユーザが、自身の作業用画面を用いて、ＤＢの検索を行っている場合、すなわち、ＮＣ３が、代理サーバとして選択されたＳＰＳ２を経由して、ＮＣＳ１のＤＢファイル１７１にアクセスしている場合に、そのアクセス頻度が高いときには、ＮＣＳ１からＳＰＳ２にＤＢ本体を転送するようにすることで、トラフィックの軽減・サーバ負荷の軽減を図ることを可能とすることができる。
【０１６７】
以下、このようにした実施形態を、第５の実施形態として、図１２を用いて説明する。
【０１６８】
図１２に示すように、ＮＣ３において、ユーザが、ユーザの作業用画面でＤＢの検索要求を指示すると、ＮＣ３は、ＤＢへのアクセス要求を、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１６９】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からアクセス要求を受け取ると、受け取ったアクセス要求の要求内容を、ＳＰＳ実行部２６に転送する。ＳＰＳ実行部２６は、ＮＣＳ代理実行部２７から受け取った要求内容を、ＮＣ代理実行部２４に転送するが、第５の実施形態においては、このとき、ＳＰＳ実行部２６が、ＮＣ３からＤＢへのアクセス回数を計数するようにしている。すなわち、例えば、ＳＰＳ実行部２６は、ＮＣ３に対応するＤＢアクセスカウンタをインクリメントするようにする。
【０１７０】
ＳＰＳ２のＮＣ代理実行部２４は、ＳＰＳ実行部２６から要求内容を受け取ると、受け取った要求内容を使用して、アクセス要求を作成し、作成したアクセス要求をＮＣＳ１のＮＣＳ実行部１５に送信することで、ＮＣＳ１のＮＣＳ実行部１５を介して、ＤＢファイル１７１にアクセスする。
【０１７１】
なお、アクセス結果は、アクセス要求とは逆の経路で、ＮＣＳ１からＮＣ３まで、ＳＰＳ２を経由して届けられる。
【０１７２】
そして、第５の実施形態においては、ＳＰＳ２のＳＰＳ実行部２６が、ＮＣ３からＤＢへのアクセス回数(ＤＢアクセスカウンタの値)が、予め定めた回数を超えたか否かを判定し、超えた場合には、ＮＣＳ１のＮＣＳサポート部１６に対して、ＤＢ本体の転送を要求するＤＢ転送要求を送信するようにしている。
【０１７３】
ＮＣＳ１のＮＣＳサポート部１６は、ＳＰＳ２のＳＰＳ実行部２６からＤＢ転送要求を受け取ると、ＤＢファイル１７１への書き込みを禁止するなどの、ＤＢファイル１７１へのアクセスをロックする処理を実行した後、ＤＢ本体の送信準備を開始し、送信準備が完了すると、ＤＢ本体の転送を許可することを示すＤＢ転送応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１７４】
なお、ＤＢへの書き込みが発生している場合には、ＮＣＳ１のＮＣＳサポート部１６は、ＤＢ本体の転送を許可しないことを示すＤＢ転送応答を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１７５】
また、第５の実施形態において、ＤＢ転送要求およびその応答は、ＳＰＳ２のファイル転送部２２とＮＣＳ１のファイル転送部１４との間で、ＮＣＳ１によるＮＣサービス(ここでは、ＤＢ検索サービスである。)の提供で使用される通信路とは別の通信路を使って交換される。
【０１７６】
ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ１のＮＣＳサポート部１６から、ＤＢ本体の転送を許可することを示すＤＢ転送応答を受け取ると、リソース格納部２８のＤＢファイル２８１上にＤＢ本体の格納領域を確保するなど、ＤＢ本体の受信準備を開始し、受信準備が完了すると、ＤＢ本体の転送開始を要求するＤＢ転送開始要求を、ＮＣＳ１のＳＰＳサポート部１６に送信する。
【０１７７】
ＮＣＳ１のＳＰＳサポート部１６は、ＳＰＳ２のＳＰＳ実行部２６からＤＢ転送開始開始要求を受け取ると、ＤＢファイル１７１に格納されているＤＢ本体を取り出して、ＳＰＳ２のＳＰＳ実行部２６に転送し、転送が完了すると、転送が完了したことを示すＤＢ転送終了を、ＳＰＳ２のＳＰＳ実行部２６に送信する。
【０１７８】
なお、第５の実施形態において、ＤＢ転送開始要求，ＤＢ本体の転送，ＤＢ転送終了は、ＳＰＳ２のファイル転送部２２とＮＣＳ１のファイル転送部１４との間で、ＮＣＳ１によるＮＣサービス(ここでは、ＤＢ検索サービスである。)の提供で使用される通信路とは別の通信路を使って交換される。
【０１７９】
一方、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６からＤＢ本体を受け取ると、受け取ったＤＢ本体を、順次、リソース格納部２８のＤＢファイル２８１上に確保しておいた格納領域に格納していく。そして、ＳＰＳ実行部２６は、ＮＣＳ１のＳＰＳサポート部１６からＤＢ転送終了を受け取ると、ＤＢ本体の転送が完了したことが分かるので、ＤＢアクセスカウンタをリセットすると共に、ＮＣ３のアクセス先を、ＢＣＳ１のＤＢファイル１７１から、リソース格納部２８のＤＢファイル２８１に変更するための処理を行う。この処理は、具体的には、ＮＣ３のアクセス先を記述したアクセスポインタを、ＮＳＣ１からＳＰＳ２に貼り替える処理である。
【０１８０】
以降は、ＳＰＳ２のＮＣＳ代理実行部２７がＮＣ３から受け取ったアクセス要求が、ＳＰＳ実行部２６に転送されると、ＳＰＳ実行部２６によって、リソース格納部２８のＤＢファイル２８１にアクセスされて、検索結果が、ＮＣＳ代理実行部２７を介して、ＮＣ３に届けられることとなる。
【０１８１】
以上説明したように、第５の実施形態によれば、代理サーバとして選択されたＳＰＳ２は、ＮＣ３からのＤＢへのアクセス頻度が高い場合に、ＮＣＳ１からＤＢ本体を転送してもらい、このＤＢ本体を使用して、ＮＣＳ１が提供するＤＢ検索サービスと同様のＤＢ検索サービスを、ＮＣ３に提供するようにすることができる。
【０１８２】
従って、トラフィックの軽減・サーバ負荷の軽減を図ることができると共に、ＮＣ３に快適なユーザ作業環境を提供することができるという効果がある。
【０１８３】
(第６の実施形態)
ここで、上述した第２の実施形態で説明したログイン処理に対応するログアウト処理を行うようにした場合の実施形態を、第６の実施形態として、図１３を用いて説明しておく。
【０１８４】
図１３に示すように、ＮＣ３のユーザが、ログアウトを指示すると、ＮＣ３は、ログアウト要求を、ＳＰＳ２のＮＣＳ代理実行部２７に送信する。
【０１８５】
ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３からログアウト要求を受け取ると、ＮＣ３のユーザの作業用画面を保持するなどの、ログアウト処理を行った後、ログアウトの完了を通知するログアウト応答をＮＣ３に送信する。
【０１８６】
ＮＣ３は、ＳＰＳ２のＮＣＳ代理実行部２７からログアウト応答を受け取ると、ユーザの作用用画面を閉じて、ＮＣサービスを終了する。
【０１８７】
このように、第６の実施形態においては、ＳＰＳ２は、クライアントであるＮＣ３にとっては、ＮＣＳ１として機能し、ＮＣＳ１がＮＣ３に対して行うログアウト応答を代行する。
【０１８８】
また、ＳＰＳ２のＮＣＳ代理実行部２７は、ＮＣ３から受け取ったログアウト要求に設定されているログアウト情報を、ＳＰＳ実行部２６に転送し、ＳＰＳ実行部２６は、さらに、ＮＣＳ代理実行部２７から受け取ったログアウト情報を、ＮＣ代理実行部２５に転送すると共に、ＮＣＳ１に対してログアウト要求を送信するよう指示する。
【０１８９】
ＳＰＳ２のＮＣ代理実行部２５は、ＳＰＳ実行部２６からの指示に従って、ＮＣＳ１のＮＣＳ実行部１５にログアウト要求を行い、ＮＣＳ１のＮＣＳ実行部１５からログアウト応答を受け取る。
【０１９０】
このように、第６の実施形態においては、ＳＰＳ２は、ＮＣＳ１にとっては、クライアントであるＮＣ３として機能し、ＮＣ３がＮＣＳ１に対して行うログアウト要求を代行する。
【０１９１】
第６の実施形態においては、さらに、ＳＰＳ２のＳＰＳ実行部２６は、ＮＣ３のユーザがそれまで実行してきた処理のログを解析し、ＮＣ３のユーザが使用したアプリケーションプログラムのバージョンや、ＮＣ３のユーザが使用したユーザファイルや、ＮＣ３のユーザがアクセスしたＤＢについての履歴を作成した後、ＮＣＳ１のＳＰＳサポート部１６に対して、ユーザのログアウト時の作業用画面を転送してから、代理サーバとしての処理を終了する。
【０１９２】
これにより、第２の実施形態で説明したログイン処理が行われたときには、ログイン要求を行ったＮＣに対して、第６の実施形態でＮＣＳ１に転送された作業用画面を提供するためのユーザ環境ファイルが転送されてくることとなる。
【０１９３】
ところで、上述した第２の実施形態から第６の実施形態で説明したＳＰＳは、特に、次世代インターネット／イントラネットシステムとして重要視されている、クライアント管理を全てサーバ側で行うことをコンセプトとしたクライアント−サーバ型のネットワークシステムにおいて、ネットワーク上に分散して配置されるようにすることで、その効果を発揮することができる。
【０１９４】
なた、上述した第２の実施形態〜第６の実施形態で説明したＳＰＳの動作は、実は、上述した第１の実施形態によって最適な代理サーバとして選択されたＳＰＳでなく、従来のＤＮＳサーバによってドメイン名とＩＰアドレスとが固定的に管理されているＳＰＳであっても、適用することが可能である。
【０１９５】
すなわち、ＤＮＳＳサーバ６が存在しない従来のネットワークシステムであっても、ＮＣＳおよびＳＰＳの構成を、各々、図２および図３に示した構成とすることで、上述した第２の実施形態〜第６の実施形態を適用し、これらの効果と同じ効果を得ることが可能である。
【０１９６】
【発明の効果】
以上説明したように、本発明は、ドメイン名とアドレスとの固定的な対応関係のみを管理している従来のＤＮＳサーバとは異なり、ネットワーク上に分散して配置されている代理サーバの位置情報および負荷状況を管理し、クライアントから問い合わせがあったドメイン名に対応するサーバのアドレスを通知する際に、クライアントの位置情報と管理内容とに基づいて、クライアントにとって最適な代理サーバを選択し、選択した代理サーバのアドレスを通知するようにした代理サーバ選択装置(上述した動的ＤＮＳサーバである。)を設けるようにしている。
【０１９７】
従って、クライアントは、サービスを受けようとするサーバを指定するだけで、そのサーバへのアクセス時に、常に、最適な代理サーバにアクセスを行うことができるので、クライアントのユーザは、レスポンス劣化を招くことなく、快適な環境で作業することができるという効果がある。
【０１９８】
また、以上説明したように、本発明は、代理サーバが、サーバによるサービスの提供で使用される通信路とは別の通信路を使って、サーバとの間でリソースやデータを通信するようにしている。
【０１９９】
従って、代理サーバが、クライアントからの要求に応じたタイミングで、サーバに存在しているリソースやデータをダウンロードしてキャッシングし、キャッシングしたリソースやデータをクライアントに提供することができるので、トラフィックの軽減・サーバ負荷の軽減を図ることができるという効果がある。
【０２００】
特に、ユーザ別のリソースやデータをサーバが管理するようにすると、代理サーバは、自身にアクセスしているクライアントのユーザが必要としているリソースやデータを、サーバからダウンロードしてキャッシングし、キャッシングしたリソースやデータをクライアントに提供することが可能となる。
【０２０１】
また、特に、代理サーバは、クライアントからサーバへのアクセスが頻繁な場合には、サーバによるサービスの提供で使用されている通信路とは別の通信路を使って、サーバに存在しているリソースやデータをダウンロードしてキャッシングし、キャッシングしたリソースやデータをクライアントに提供するようにすると、トラフィックの軽減・サーバ負荷の軽減を図ると共に、快適なユーザ作業環境をクライアントに提供することが可能となる。
【図面の簡単な説明】
【図１】第１の実施形態が適用されるネットワークシステムの構成図。
【図２】ネットワークコンピュータ(ＮＣＳ)の構成図。
【図３】サービスプロキシサーバ(ＳＰＳ)の構成図。
【図４】ＩＰアドレスの問い合わせに使用されるリクエストメッセージのフォーマットを示す説明図。
【図５】ネットワークコンピュータ(ＮＣ)がＮＣＳのＩＰアドレスを取得する際の処理の流れを示すフローチャート。
【図６】ＮＣがＮＣＳのＩＰアドレスを取得する際の動的ドメインネームシステム(ＤＤＮＳ)サーバの動的対応付け処理の流れを示すフローチャート。
【図７】ＤＤＮＳサーバ中のＳＰＳ情報リストの内容を示す説明図。
【図８】第２の実施形態でＮＣがログインを行う際の動作を示す説明図。
【図９】第３の実施形態でＮＣがアプリケーションプログラムのダウンロード要求を行う際の動作を示す説明図。
【図１０】第４の実施形態でＮＣがユーザファイルのダウンロード要求を行う際の動作を示す説明図。
【図１１】第４の実施形態でＮＣがユーザファイルのダウンロード要求を行う際の動作を示す説明図。
【図１２】第５の実施形態でＮＣがデータベース検索を行う際の動作を示す説明図。
【図１３】第６の実施形態でＮＣがログアウトを行う際の動作を示す説明図。
【符号の説明】
１…ネットワークコンピュータサーバ(ＮＣＳ)、２，７…サービスプロキシサーバ(ＳＰＳ)、３…ネットワークコンピュータ(ＮＣ)、４，５…ドメインネームシステム(ＤＮＳ)サーバ、６…動的ドメインネームシステム(ＤＮＮＳ)サーバ、８…ゲートウェイサーバ(ＧＷＳ)、１０…ＷＡＮ、２０…ＬＡＮ、１１，２１…データ送受信部、１２，２２…ＮＣプログラム転送部、１３，２４…遠隔手続き呼び出し部、１４，２３…ファイル転送部、１５…ＮＣＳ実行部、１６…ＳＰＳサポート部、１７，２８…リソース格納部、１７１，２８１…データベース(ＤＢ)ファイル、１７２，２８２…ユーザファイル用ファイル、１７３，２８３…アプリケーションプログラム用ファイル、２５…ＮＣ代理実行部、２６…ＳＰＳ実行部、２７…ＮＣＳ代理実行部。
【図１】
0003770801.tif 000002
【図２】
0003770801.tif 000003
【図３】
0003770801.tif 000004
【図４】
0003770801.tif 000005
【図５】
0003770801.tif 000006
【図６】
0003770801.tif 000007
【図７】
0003770801.tif 000008
【図８】
0003770801.tif 000009
【図９】
0003770801.tif 000010
【図１０】
0003770801.tif 000011
【図１１】
0003770801.tif 000012
【図１２】
0003770801.tif 000013
【図１３】
0003770801.tif 000014