(57)【特許請求の範囲】
【請求項１】
第１のプロクシー、複数の第１のプロセス、各々が前記複数の第１プロセスのうちの１つに割り当てられてその割り当てられた第１プロセスによって送信又は受信される第１のデータを記憶するように構成された複数の第１のスロットを有する第１の共用メモリ、前記第１の共用メモリのそれぞれの第１のスロットがそれぞれ関連する複数のプロセス・仮想デバイスドライバ、及び前記第１の共用メモリのそれぞれの第１のスロットがそれぞれ関連する複数のプロクシー・仮想デバイスドライバを有し、それぞれのプロセス・仮想デバイスドライバは前記プロクシー・仮想デバイスドライバの１つと調整して前記第１の共用メモリの前記第１のスロットの１つに入ったり出たりするデータフローを制御するように構成されている第１のクライアントと、
第２のプロクシー、複数の第２のプロセス、及び前記複数の第２プロセスのうちの１つに割り当てられてその割り当てられた第２プロセスによって送信又は受信される第２のデータを記憶するように構成された複数の第２のスロットを有する第２の共用メモリを有するサーバと、
を含み、
前記第１プロクシー及び第２プロクシーは、互いの通信リンクを形成するように構成され、
前記第１のプロクシー及び前記第２のプロクシーは、前記第１のデータ及び前記第２のデータを前記通信リンクを介して交換し、前記複数の第１のプロセスが前記複数の第２のプロセスと通信できるようにし、
前記第１のプロクシー及び前記複数の第１のプロセスが、前記第１のプロセスの所定のプロセスに割り当てられた前記第１のスロットに関連する前記プロセス・仮想デバイスドライバの制御のもとで、前記所定のプロセスに割り当てられた前記第１のスロットに対して読み書きを行う前記第１のプロセスの前記所定のプロセスによって、前記所定のプロセスに割り当てられた前記第１のスロットとデータを交換することを特徴とする通信システム。
【請求項２】
前記第１クライアントのクライアントである第２のクライアントを更に含み、
前記第１のクライアントは、「ウェブ」サーバであり、前記サーバは、実行サーバである、
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第１クライアントは、「ウェブ」サーバであり、前記第２クライアントは、ブラウザであることを特徴とする請求項２に記載の通信システム。
【請求項４】
複数の前記第１クライアントと複数の前記サーバとが存在することを特徴とする請求項１に記載の通信システム。
【請求項５】
第１のプロクシー、第１の共用メモリ、及び、複数の第１のプロセスを有する第１のクライアントと、第２のプロクシー、第２の共用メモリ、及び、複数の第２のプロセスを有するサーバとを有する通信システムにおいてデータを転送する方法であって、
複数の第１プロセスのうちの１つの内部で、第２プロセスのうちの１つへ送信される要求を発生させる段階と、
各々が前記第１プロセスのうちの１つに割り当てられた複数の第１のスロットを有する第１共用メモリの中に、前記要求を発生した第１プロセスに割り当てられた前記第１スロットに記憶される前記要求を記憶する段階と、
前記第１スロットに記憶されたデータを第１プロクシーを通じてサーバへ送信する段階と、
前記第１プロクシーと通信リンクを確立した第２プロクシーを通じて前記送信要求を受信する段階と、
各々が前記第２プロセスのうちの１つに割り当てられた複数の第２のスロットを有する第２共用メモリの中に、前記データが向けられた前記第２プロセスに割り当てられた前記第２スロットに記憶される前記受信要求を記憶する段階と、
前記第２スロットに記憶された前記データを読み出す段階と、
を含み、
前記第１のスロットのそれぞれは第１入力空間を含み、前記第１のスロットに記憶された前記要求は前記第１のスロットの前記第１入力空間中に記憶され、
前記第１のクライアントは、複数のプロセス・仮想デバイスドライバをさらに含み、前記プロセス・仮想デバイスドライバのそれぞれは前記第１入力空間の１つに割り当てられており、
一旦前記データが前記第１入力空間に記憶されると、前記第１入力空間がデータを包含することを示すため、前記プロセス・仮想デバイスドライバの状態を変更する段階、をさらに含み、
前記第２のスロットのそれぞれは第２入力空間を含み、前記第２のスロットに記憶された前記要求は前記第２のスロットの前記第２出力空間中に記憶され、
前記サーバは、複数のプロクシー・仮想デバイスドライバをさらに含み、前記プロクシー・仮想デバイスドライバのそれぞれは前記第２出力空間の１つに割り当てられており、
一旦前記データが前記第２出力空間に記憶されると、前記第２出力空間がデータを包含することを示すため、前記プロクシー・仮想デバイスドライバの状態を変更する段階、をさらに含むことを特徴とする方法。
【請求項６】
前記通信システムは、前記第１クライアントのクライアントである第２のクライアントを更に含み、
前記サーバに送信される前記要求は、前記第２クライアントによって前記第１クライアントへ送信された要求に応答して生み出される、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記第１クライアントは、「ウェブ」サーバであり、前記第２クライアントは、ブラウザであることを特徴とする請求項６に記載の方法。
【請求項８】
複数の前記第１クライアントと複数の前記サーバとが存在することを特徴とする請求項５に記載の方法。
【請求項９】
前記要求を受信した前記第２プロセス内で前記要求に対する返事を発生させる段階と、
各々が前記第２プロセスのうちの１つに割り当てられた複数の第２スロットを有する前記第２共用メモリの中に前記要求を記憶させる段階と、
を更に含み、
前記返事は、その返事を発生した第２プロセスに割り当てられた前記第２スロットに記憶され、
前記第２スロットに記憶された前記返事を前記第２プロクシーを通じて前記第１クライアントへ送信する段階と、
前記送信された返事を前記第１プロクシーを通じて受信する段階と、
前記要求を送信した前記第１プロセスに割り当てられた前記第１スロットに記憶される前記受信データを前記第１共用メモリの中に記憶する段階と、
前記第１スロットに記憶された前記返事を読み出す段階と、
を更に含むことを特徴とする請求項５に記載の方法。
【請求項１０】
複数のプロセスがその上で実行される通信システムにおいてデータを送信する方法であって、
通信システム上で実行されるプロセスのうちの１つを使用してデータを発生させる段階と、
前記データを共用メモリの中に記憶する段階と、
前記記憶データを前記通信システムに設けられたプロクシーを使用して宛先ノードへ送信する段階と、
を含み、
前記通信システムはクライアントまたはサーバであり、
前記共用メモリは複数のスロットを有し、それぞれのスロットは、前記プロセスの１つに割り当てられ、前記共用メモリに記憶された前記データは、前記データを生成した前記プロセスに割り当てられた前記スロット中に記憶され、
前記通信システムは、複数のプロセス・仮想デバイスドライバを含み、前記複数のスロットのそれぞれのスロットは前記複数のプロセス・仮想デバイスドライバの１つに関連するものであり、前記通信システムは、複数のプロクシー・仮想デバイスドライバを含み、前記複数のスロットのそれぞれは前記複数のプロクシー・仮想デバイスドライバの１つに関連するものであり、前記複数のプロセス・仮想デバイスドライバのそれぞれは、前記複数のプロクシー・仮想デバイスドライバの１つと調整して前記複数のスロットの１つに入ったり出たりするデータフローを制御するように構成されていることを特徴とする方法。
【請求項１１】
通信ネットワークに結合されたブラウザシステムと、
前記通信ネットワークに結合され、複数の第１のプロセスと、各々が前記複数の第１プロセスのうちの１つに割り当てられてその割り当てられた第１プロセスによって送信された又は受信されるデータを記憶するように構成された複数の第１のスロットを有する第１の共用メモリ及び第１のプロクシーを有する第１のプロクシーグループとを有し、前記第１プロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと１つのプロクシー・仮想デバイスドライバとを更に含む第１のサーバシステムと、
前記通信ネットワークに結合され、複数の第２のプロセスと、第２の共用メモリ及び第２のプロクシーを有する第２のプロクシーグループとを有する第２のサーバシステムと、を含み、
前記第１プロクシー及び第２プロクシーは、互いの通信リンクを形成するように構成される、
ことを特徴とする通信システム。
【請求項１２】
前記第１サーバシステムは、「ウェブ」サーバであり、前記第２サーバシステムは、実行サーバであることを特徴とする請求項１１に記載の通信システム。
【請求項１３】
前記第１スロットの各々は、
前記第１プロクシーを通じて宛先ノードへ送信されるデータを一時的に記憶する第１の入力空間と、
前記第１プロクシーを通じて発信元ノードから受信されたデータを一時的に記憶する第１の出力空間と、
を含むことを特徴とする請求項１１に記載の通信システム。
【請求項１４】
複数の前記第１サーバシステムと複数の前記第２サーバシステムとが存在することを特徴とする請求項１１に記載の通信システム。
【請求項１５】
前記第１サーバシステムは、複数のプロクシーグループを含み、
前記プロクシーグループの各々は、そのプロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと１つのプロクシー・仮想デバイスドライバとを含む、ことを特徴とする請求項１１に記載の通信システム。
【請求項１６】
前記第２共用メモリは、各々が前記複数の第２プロセスのうちの１つに割り当てられてその割り当てられた第２プロセスによって送信された又は受信されるデータを記憶するように構成された複数の第２のスロットを有し、
前記第２サーバシステムは、前記第２プロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと１つのプロクシー・仮想デバイスドライバとを更に含む、
ことを特徴とする請求項１１に記載の通信システム。
【請求項１７】
複数のプロセスと、
通信システム内の別のノードとの通信リンクを提供し、共用メモリとプロクシーとを有するプロクシーグループであって、前記共用メモリは複数のスロットを有し、前記複数のスロットのそれぞれは前記複数のプロセスの１つと関連するプロクシーグループと、
複数のプロセス・仮想デバイスドライバであって、前記複数のスロットのそれぞれが前記複数のプロセス・仮想デバイスドライバの１つと関連する複数のプロセス・仮想デバイスドライバと、
複数のプロクシー・仮想デバイスドライバであって、前記複数のスロットのそれぞれが前記複数のプロクシー・仮想デバイスドライバの１つと関連する複数のプロクシー・仮想デバイスドライバと、を含み、
前記複数のプロセス・仮想デバイスドライバのそれぞれは、前記複数のプロクシー・仮想デバイスドライバの１つと調整して前記複数のスロットの１つに出入りするデータフローを制御するように構成されていることを特徴とする、通信システム内のサーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信システムに関する。更に特定すれば、本発明は、高速クライアントサーバ通信を提供するために複数のプロクシーを含むクライアントサーバ通信システムに関する。
【０００２】
【従来の技術】
クライアントサーバ通信システムは、少なくとも１つの要求当事者と、この要求当事者にサービスを提供する少なくとも１つの応答当事者とを有するシステムである。クライアントサーバ通信システムの一例は、インターネットの名で知られているネットワークのグローバルな相互ネットワークである。インターネットは、クライアント又はサーバであり得る発信元ノードから同じくクライアント又はサーバであり得る宛先ノードへ確実にデータパケットを転送するためのＴＣＰ／ＩＰ（「搬送制御プロトコル」／「インターネットプロトコル」）を使用する。デジタルデータのオブジェクトを移動させるために、種々の高レベルプロトコルがＴＣＰ／ＩＰの上で使用されるが、特定のプロトコルは、オブジェクトの性質に依存する。例えば、電子メールは、「簡単メール搬送プロトコル」（ＳＭＴＰ）と「郵便局プロトコル３」（ＰＯＰ３）とを用いて搬送され、他方、ファイルは、「ファイル転送プロトコル」（ＦＴＰ）を用いて搬送される。「ハイパーテキスト」文書とそれらの関連効果は、「ハイパーテキスト搬送プロトコル」（ＨＴＴＰ）を用いて搬送される。
【０００３】
多数のハイパーテキスト文書が他のハイパーテキスト文書とリンクされる時には、それらはまとまって「ウェブ」構造を形成し、それは、ＨＴＴＰを用いて搬送することができるハイパーテキスト文書の集合に対して「ワールドワイドウェブ」（しばしば、「ＷＷＷ」又は「ウェブ」と略称される）の名称をもたらした。文書をＨＴＴＰを用いて搬送するために、文書にハイパーリンクが必要であるという訳では勿論ない。事実、それがＨＴＴＰの要件に適合する限り、どんなデータオブジェクトでもＨＴＴＰを用いて搬送することができる。
【０００４】
ＨＴＴＰの一般的用法においては、ブラウザは、ホストに対するユニフォーム・リソース・ロケータ（ＵＲＬ）を含む、オブジェクトに関する要求を送り、ホストは、ブラウザが表示できるようにそのオブジェクト（又は、当該オブジェクトが入手不能であることを示すエラーメッセージ）を送り返す。通常の場合においては、要求されたオブジェクトは、ハイパーテキストマークアップ言語（ＨＴＭＬ）の文書であって、ホストは、一般に「「ウェブ」サーバ」と呼ばれるＨＴＭＬ文書サーバである。ブラウザは、ＨＴＴＰクライアントの一例であって、それが返送されたハイパーテキスト文書を表示し、返送された文書中で言及された他のハイパーテキスト文書をユーザが選択して表示する機会を可能にして、それによってユーザがハイパーテキスト文書を「ｂｒｏｗｓｅ（気の向くままに見る）」することを可能にするので、ブラウザと呼ばれる。「ウェブ」サーバは、ＨＴＴＰクライアントによって要求されたハイパーテキスト文書や他のデータオブジェクトを返送するインターネットホストである。
【０００５】
【発明が解決しようとする課題】
【課題を解決するための手段】
本発明は、クライアントサーバ通信に関する。本発明の１つの実施形態において、通信システムは、クライアントとサーバとを含む。クライアントは、第１のプロクシー、第１のメモリ、及び、複数の第１のプロセッサ（プロセス。以下、同じ）を含む。第１のメモリは、複数の第１のスロットを含み、各第１スロットは、複数の第１のプロセッサのうちの１つに割り当てられ、割り当てられた第１のプロセッサによって送信又は受信されるデータを記憶するように構成されている。サーバは、第２のプロクシー、第２のメモリ、及び、複数の第２のプロセッサを有する。第２のメモリは、複数の第２のプロセッサのうちの１つに割り当てることができて割り当てられた第２のプロセッサによって送信又は受信されるデータを記憶するように構成することができる複数の第２のスロットを含む。第１及び第２プロクシーは、互いに通信リンクを形成するように構成されている。
【０００６】
別の実施形態においては、通信システムは、通信ネットワークに結合されたブラウザシステムを含む。第１のサーバシステムは、通信ネットワークに結合され、複数の第１プロセッサと第１のプロクシーグループとを有する。第１プロクシーグループは、第１の共用メモリと第１のプロクシーとを有する。第１共用メモリは、複数の第１スロットを有し、第１スロットの各々は、複数の第１プロセッサのうちの１つに割り当てられ、割り当てられた第１プロセッサによって送信された又は受信されるデータを記憶するように構成されている。第１サーバシステムは、第１プロクシーグループのデータフローを制御するために、複数のプロセッサ・マーク装置（プロセス・マークデバイス）と１つのプロクシー・マーク装置（プロクシー・マークデバイス）とを更に含む。第２のサーバシステムは、通信ネットワークに結合され、複数の第２プロセッサと第２のプロクシーグループとを有する。第２プロクシーグループは、第２の共用メモリと第２プロクシーとを有し、第１プロクシーと第２プロクシーとは、互いに通信リンクを形成するように構成されている。
【０００７】
【発明の実施の形態】
本発明は、クライアントサーバ通信に関する。本発明は、本発明の特定の実施形態を用いて既に示された。本発明がこれらの特定実施例に限定されず、添付請求項によってのみ限定されるということを理解されたい。
図１を参照すると、クライアントサーバシステム１００は、インターネット１０６を通じてサーバシステム又は複数のサーバ１０４に接続された複数のクライアント（又は、ブラウザ）１０２を含む。システム１００は、クライアント１０２がサーバシステム１０４と通信リンクを確立するのを補助するネームサーバ１０８を含んでもよい。以下で更に詳際に説明する通り、サーバシステム１０４自体は、少なくとも１つの要求当事者と少なくとも１つの応答当事者とを有するクライアントサーバシステムを構成する。
【０００８】
クライアント１０２は、実際の機械か、又は、インターネットに直接的又は間接的にインタフェース可能なそのような機械に在るソフトウエアであってもよい。そのような機械の例としては、デスクトップパーソナルコンピュータ、ワークステーション、携帯電話、個人用デジタルアシスタント、及び、ラップトップパーソナルコンピュータなどがある。そのようなソフトウエアの例としては、「ネットスケープナビゲータ」及び「マイクロソフトインターネットエキスプロラ」などがある。これらのソフトウエアは、インターネット上で入手可能なデータをブラウズするために使用されるから、一般にブラウザと呼ばれている。「ブラウザ」という用語は、以下において専ら本発明を記述する目的でクライアント１０２と交換可能に使用されるが、本発明の範囲を限定するように用いられてはならない。
【０００９】
サーバシステム１０４は、イントラネット、インターネット、及び、広域ネットワーク等のリンク１１４を通じて複数の実行サーバ１１２（クライアント／サーバ）に接続された複数の「ウェブ」サーバ１１０（クライアント／サーバ）を含む。他の実装においては、「ウェブ」サーバ１１０は、他の種類のサーバであってもよい。「ウェブ」サーバ１１０は、要求されたデータを検索する実行サーバ１１２に経路指定されたブラウザ１０２から要求を受信する。「経路指定された」という用語は、本明細書では広い意味に使用され、ブラウザから受信した要求に応答して、「ウェブ」サーバによって実行サーバに発信されるいかなるデータ又は要求をも搬送することを含む。例えば、「ウェブ」サーバ１１０は、ブラウザから送られた１つの要求に応えるために、多くの要求を発生して実行サーバ１１２に発信する場合がある。
【００１０】
要求されたデータが１つ又はそれ以上の実行サーバ１１２から一旦受信されると、ユーザが見ることができるように、「ウェブ」サーバ１１０は、そのデータをブラウザ１０２へ送る。実行サーバから受信したデータの転送に先立って、これらのデータは、一般に、再フォーマットされるか、同様に検索された他のデータと結合されるか、又は、１つ又はそれ以上の実行サーバ１１２上に局所的に記憶されたデータと結合される。この意味において、「ウェブ」サーバ１１０は、クライアントとしてもサーバとしても機能し、すなわち、「ウェブ」サーバ１１０は、実行サーバ１１２に対してはクライアントであり、ブラウザ１０２に対してはサーバである。
【００１１】
１つの実施形態において、「ウェブ」サーバ１１０と実行サーバ１１２とは、ユニックス（登録商標）オペレーティングシステムで作動するマイクロコンピュータである。一般に、サーバシステム１０４は、最大２０個までの「ウェブ」サーバ１１０と最大１０個までの実行サーバ１１２とを有する。代替的に、サーバシステム１０４は、更に多くの「ウェブ」サーバ１１０及び実行サーバ１１２を有してもよい。「ウェブ」及び実行サーバの各々は、一般に最大２０個であるが時にはそれ以上の複数のプロセッサ又はアプリケーションを実行する。
【００１２】
図２を参照すると、通信リンク１１４に接続された各「ウェブ」サーバ１１０は、実行サーバ１１２のプロクシーとの永続的ＴＣＰ／ＩＰ接続を維持しているプロクシー２０２、共用メモリ２０４、及び、複数のプロセッサ２０６を含む。プロクシーによって提供される永続的接続は、サーバシステム１０４のリソースの一層効率的な使用を可能にする。プロクシー間の接続を「永続的」と記述した訳は、これらのプロクシーのサーバがシステム１００とアクティブに接続されている限り、その接続が維持されるからである。
【００１３】
一般に、「ウェブ」サーバ１１０及び実行サーバ１１２のプロセッサ間の全ての通信は、それぞれのサーバのプロクシーによって提供される永続的接続を通じて行なわれる。そのような接続がなければ、各プロセッサは、それが通信を望む全てのプロセッサとの別々で一時的な接続を確立する必要があるであろう。これは、プロセッサ間に数万又はそれ以上の別々の接続を確立して維持することを意味する場合がある。そのようなシステムを実装するためには、かなりのリソースを要するであろう。プロセッサによって形成される接続を「一時的」と記述した訳は、目標とする通信を実行するのに十分な時間だけ２つのプロセッサ間で接続が確立され、一旦通信が完了したら接続が解除されるからである。
【００１４】
共用メモリ２０４は、メモリ保護を備えた多重タスキングオペレーティングシステムにおける１つよりも多いプロセッサによってアクセスできるメモリマップド・ファイルとして構成される。プロセッサ２０６は、ブラウザ１０２によって提出された要求を処理するために「ウェブ」サーバ１１０上で作動するＨＴＴＰサーバである。そのようなプロセッサの例としては、アパッチ・ソフトウエア・ファンデーションから提供される「アパッチ（Ａｐａｃｈｅ）」、及び、他の同様なＨＴＴＰサーバがある。共用メモリは、複数のスロット２１４を含み、その数は、各スロットが別々のプロセッサに割り当てられるように、一般に「ウェブ」サーバ１１０が取り扱うことのできるプロセッサ２０６の最大個数に等しい。
【００１５】
本発明の１つの実施形態において、共用メモリ２０４は、その実施形態の下で「ウェブ」サーバが取り扱うことのできる最大数Ｎのプロセッサに相当するＮ個のスロット２１４を含む。１つの実装においてＮは２０であるが、サーバの負荷及び能力に応じて、Ｎの値はそれ以外の数が可能である場合がある。
各スロット２１４は、入力空間２１６と出力空間２１８とを含む。入力空間は、その対応するプロセッサ２０６からデータを受信して一時的に記憶し、そのため、データは、その後プロクシー２０２を通じて実行サーバ１１２に送信することができる。他方、出力空間は、プロクシー２０２によって実行サーバ１１２から受信されるデータを受信して一時的に記憶するので、「ウェブ」サーバのプロセッサ２０６は、このデータにアクセスすることができる。１つの実装において、各スロット２１４は、４ｋのメモリ空間を有しており、その場合、入力空間２１６及び出力空間２１８には各々２ｋのメモリ空間が割り当てられる。
【００１６】
各々の共用メモリ２０４に対応して、プロクシー・マーク装置２２０とプロセッサ・マーク装置２２２（図３Ａを参照されたい）とから成るマーク装置対２２４があり、それらが対応する共用メモリスロット２１４内でのデータフローを制御する。プロクシー・マーク装置は、プロクシー２０２に付随し、プロセッサ・マーク装置は、プロセッサ２０６に付随する。これらのマーク装置は、例えば「／ｄｅｖ／ｍｋｄ／」である所定のディレクトリの下でファイルシステムに維持される仮想デバイスドライバである。ただし、説明の便宜上、プロクシー・マーク装置とプロセッサ・マーク装置とは、図２において、プロクシーと共用メモリとの中に各々含まれるように描かれている。
【００１７】
プロクシー・マーク装置２２０及びプロセッサ・マーク装置２２２の各々は、２セットの独立したモード、すなわち読出モードと書込モードとを維持する。読出モードは、「読出可能」又は「読出不能」という２つの状態を有する。書込モードは、「書込可能」又は「書込不能」という２つの状態を有する。これらのモード及び状態は、プロクシーとプロセッサとの間のデータフローを制御する。
プロセッサ２０６がメッセージを送るか、又は、データを要求することをプロクシー２０２を通じて実行サーバ１１２に望んだ時、プロセッサ２０６は、先ずプロセッサ・マーク装置を調べることにより、その入力空間２１６がデータを受信するのに利用可能であるか否かを判断する。プロセッサ・マーク装置が「書込不能」状態である場合、プロセッサは待機しなくてはならない。そのような「書込不能」状態は、入力空間２１６に置かれた最後のメッセージをプロクシーが未だ読んでいないことを示している。換言すれば、プロクシー・マーク装置は、「読出可能」状態にある。
【００１８】
一旦最後のメッセージが読み出されてしまうと、プロクシー・マーク装置は、「読出不能」状態に変わる。その結果、プロセッサ・マーク装置２２２は、「書込可能」状態に切り替わり、入力空間が新しいメッセージを受信するのに利用可能であることを示す。プロセッサ２０６は、次に、要求データを入力空間２１６の中にコピーすることができ、要求データが入力空間２１６の中にコピーされたことを示すために、プロセッサ・マーク装置２２２に書き込むことができる。プロセッサ・マーク装置２２２に書き込む行為は、プロセッサ・マーク装置２２２を「書込不能」にさせ、対応するプロクシー・マーク装置２２０を「読出可能」にさせる。
【００１９】
プロクシー・マーク装置２２０の「読出可能」への変化は、対応する入力空間２１６内に読み出されるべきデータが存在することをプロクシーに警告する。プロクシーは、次に、入力空間２１６からデータを読むことができ、データが配送のために受け取られたことを示すために、その後プロクシー・マーク装置２２０を読むことができる。プロクシー・マーク装置２２０を読む行為は、それをを「読出不能」にさせ、対応するプロセッサ・マーク装置２２２を再び「書込可能」にさせる。
【００２０】
プロクシー２０２からプロセッサ２０６へのデータの転送は、一般に同様な方式で機能する。プロクシーは、先ずプロクシー・マーク装置２２０を調べることによって、出力空間２１８が使用可能であるか否かを判断しなければならない。プロクシー・マーク装置が「書込可能」状態である場合、プロクシーは、データを出力空間２１８の中に書き込むことができ、データが出力空間内に書き込まれたことを示すために、プロクシー・マーク装置２２０に書き込むことができる。プロクシー・マーク装置２２０に書き込むことは、それを「書込不能」にさせ、対応するプロセッサ・マーク装置２２２を「読出可能」にさせて、出力空間から読み出されるべきデータが準備できていることをプロセッサ２０６に示す。プロクシー・マーク装置は、プロセッサが対応するプロセッサ・マーク装置２２２に対する読み出しを実行し終えるまで「書込不能」状態であり続ける。
【００２１】
再び図２を参照すると、「ウェブ」サーバ１１０と同じく、各実行サーバ１１２は、プロクシー２３０、複数のスロット２３４を有する共用メモリ２３２、及び、複数のプロセッサ２３６を有する。実行サーバは、更に、複数の入力空間及び出力空間２３８及び２４０と複数のマーク装置対２４６とを含む。マーク装置対は、プロクシー・マーク装置２４２とプロセッサ・マーク装置２４４とを有する（図３Ｂを参照されたい）。上記の通り、これらのマーク装置は、仮想デバイスドライバであって、ファイルシステムに維持されている。図２においては、専ら説明の便宜上、それらのマーク装置は、共用メモリ及びプロクシーに含まれているものとして図示されている。
【００２２】
実行サーバの上記構成要素は、一般に、「ウェブ」サーバ１１０の構成要素と同様に機能する。１つの相違点は、実行サーバ１１２のプロセッサは、一般に「ウェブ」サーバ１１０のプロセッサによって送信された要求を処理するためのアプリケーションであるのに対して、「ウェブ」サーバのプロセッサは、一般に実行サーバ１１２に送信される要求を発生させるためのアプリケーションであるという点である。従って、「ウェブ」サーバに関して上記で与えられた説明は、実行サーバに対しても等しく当てはまる。
【００２３】
図４を参照すると、作動において処理４００は、本発明の１つの実施形態によるクライアントサーバシステム１００の例示的なデータフローを示している。処理４００は、ブラウザ１０２がサーバ１０４に対して要求を発することから始まる（段階４０２）。そのような要求の一例は、「ｍｙ．ｙａｈｏｏ．ｃｏｍ」などの特定のウェブページを指定するＵＲＬであって、この場合、完全に適格なＵＲＬは、「ｈｔｔｐ:／／ｍｙ．ｙａｈｏｏ．ｃｏｍ／」であろう。ドメイン名「ｍｙ．ｙａｈｏｏ．ｃｏｍ」は、サーバシステム１０４のための実アドレスを判断するためにネームサーバ１０８に提出される。ネームサーバ１０８は、サーバシステム１０４内の１つの「ウェブ」サーバ１１０の「インターネットプロトコル（ＩＰ）」アドレスをクライアントに返送する（段階４０４）。ネームサーバ１０８は、多数の「ウェブ」サーバ１１０に亘って負荷を一様に分配するために、複数の「ウェブ」サーバ１１０のＩＰアドレスをラウンドロビン方式で返送してもよい。
【００２４】
代替的に、ネームサーバ１０８は、ブラウザアドレスを追跡することにより、また、そのブラウザに対する特別な「ウェブ」サーバを選択するためにそのブラウザアドレスをハッシングすることにより、負荷を一層決定論的に分配することができる。決定論的又は経路指定的手法の下で、与えられたいかなるブラウザも常に同じ「ウェブ」サーバ１１０にアクセスするであろう。この手法は、ある与えられたブラウザが常に特定「ウェブ」サーバに戻るところではキャッシュヒットが更に多く起こりそうであるから、ユーザテンプレートの一層効率的なキャッシングを準備する。
【００２５】
実際のＩＰアドレスを受信すると、ブラウザは、そのＵＲＬを適切な「ウェブ」サーバ１１０、すなわち「ウェブ」サーバのプロセッサ２０６へ提出する（段階４０６）。「ウェブ」サーバがそのルートディレクトリに対するＵＲＬを受信した時、「ウェブ」サーバは、それをユーザのカスタム要約ページに対する要求であると解釈する。一般に、ユーザのアイデンティティは、ＵＲＬからではなく、ブラウザ１０２によって供給される「クッキー」から判断される。これは、ユーザが何処でログインするかに関わりなく、ユーザを正しく識別できることを確実にする。クッキーは、ブラウザによって記憶され、そのクッキーに付随するドメインを有するＵＲＬに対する任意の要求と共に送られるデータの文字列である。
【００２６】
クライアントの要求に対する回答を「ウェブ」サーバが生み出すために、１つ又はそれ以上の実行サーバからデータを要求することが必要な場合がある。このように要求されるデータの例としては、株式相場、新しい見出し記事、又は、バナー広告が含まれてもよい。そのような要求の各々のために、プロクシー２０２は、スロット２１４つまりその要求が向けられたプロセッサ２０６に割り当てられたスロットの出力空間２１８に要求を記憶する。プロクシーはまた、プロクシー・マーク装置２２０に書き込みを行なって、これを「書込可能」状態から「書込不能」状態へと変える。その結果、出力空間２１８に割り当てられたプロセッサ・マーク装置は、「読出不能」状態から「読出可能」状態へと変わる。プロセッサ２０６は、出力空間の要求の存在に関して警告されて、その要求を検索する。いくつかの事例においては、要求は、１つよりも多いプロセッサのサービスを必要とする場合があり、２つ又はそれ以上のプロセッサ２０６へと経路指定することもできる。
【００２７】
ブラウザによる要求に応じて「Ｍｙ  Ｙａｈｏｏ！」ページをまとめるために、「ウェブ」サーバ１１０は、多数の異なるソースからデータを検索する必要がある（例えば、ニュース、株式相場、天気、及び、スポーツなどに関する情報）。これらのソースは、１つの実行サーバ上で実行されるプロセッサ、又は、多くの実行サーバに分散されたプロセッサであることが可能である。いくつかの事例において、ソースは、同じ「ウェブ」サーバ上で実行されるプロセッサを含む、「ウェブ」サーバ上で実行されるプロセッサであることが可能である。ブラウザの要求に応答して、「ウェブ」サーバは、通常、「Ｍｙ  Ｙａｈｏｏ！」ページを生み出すために１つ又はそれ以上の実行サーバ１１２に送信される複数の要求（「サーバ要求」）を発生する。
【００２８】
発生されたサーバ要求は、一度に１つずつ適切な宛先ノードつまり一般的には実行サーバのプロセッサ２３６へ送信される（段階４０８）。更に特定すれば、プロセッサ２０６は、サーバ要求のうちの１つをその入力空間２１６の中に書き込み、また、プロセッサ・マーク装置２２２に書き込む。このプロセッサ・マーク装置は、その状態を「書込可能」から「書込不能」へと変える。これに応答して、そのプロセッサ・マーク装置に付随するプロクシー・マーク装置は、その状態を「読出不能」から「読出可能」へと変え、当該入力空間に送信すべきデータつまりサーバ要求が存在していることをプロクシー２０２に警告する。次いで、プロクシー２０２は、そのサーバ要求を適切な実行サーバへ送信する。
【００２９】
実行サーバ１１２は、サーバ要求を受信して、そのサーバ要求を送り出したプロセッサ２０６へ返事を戻す（段階４１０）。更に特定すれば、実行サーバのプロクシー２３０は、サーバ要求を受信して、そのサーバ要求の宛先であるプロセッサ２３６に割り当てられた出力空間内に書き込む。サーバ要求が出力空間内に書き込まれたことを示すために、プロクシーは、同じくプロクシー・マーク装置２４２にも書き込む。その結果、プロクシー・マーク装置は、「書込可能」状態から「書込不能」状態へと変わる。当該入力空間に割り当てられたプロセッサ・マーク装置２４４は、その状態を「読出不能」から「読出可能」へと変え、読み出されるのを待っているサーバ要求のことをプロセッサ２３６へ警告する。
【００３０】
プロセッサ２３６は、そのサーバ要求を読み出して、そのプロセッサに割り当てられた入力空間内に書き込まれる返事を発生する。当該入力空間に付随するプロセッサ・マーク装置２４４は、その状態を「書込可能」から「書込不能」へと変える。これに応答して、そのプロセッサ・マーク装置に付随するプロクシー・マーク装置は、その状態を「読出不能」から「読出可能」へと変え、送信する必要のある返事についてプロクシーに警告する。プロクシー２３０は、そのサーバ要求の送信元であるプロセッサ２０６へ返事を送信する。ブラウザによって送られる要求と関連させて上記で説明したように、その返事は、プロクシー２０２を通じて「ウェブ」サーバのプロセッサ２０６と出力空間２１８とに到達する。他のサーバ要求に対する返事も同様な方式でプロセッサ２０６により受信される。全ての返事を受信すると、「ウェブ」サーバのプロセッサは、受信データを結合してそれらをクライアントに送信する（段階４１２）。
【００３１】
サーバシステム１０４は、通常モード、経路指定モード、キー操作モード、又は、これらの組合せモードであるいくつかの異なるモードで作動するように構成されている。使用されるモードに応じて、「ウェブ」サーバ１１０は、実行サーバ１１２にアクセスするために異なるアルゴリズムを使用する。通常モードにおいては、負荷を一様に分配するために、「ウェブ」サーバ１１０は、ラウンドロビン方式で実行サーバ１１２にアクセスする。このモードの下では、全ての実行サーバ１１２が実質的に同様のサービスを提供すると仮定されるので、各々の要求は、どの実行サーバによっても同等に処理することができる。要求を経路指定する目的は、使用可能な実行サーバ間に均等な負荷分布と、個々の実行サーバの故障に対する耐性とを与えることである。
【００３２】
経路指定モードにおいては、「ウェブ」サーバ１１０は、同様な要求（例えば、同じユーザのための要求）を同じ実行サーバ１１２へ送ることを試みる。通常モードの場合と同様に、経路指定モードにおいては、全ての実行サーバ１１２が実質的に同様なサービスを提供すると仮定されるので、各々の要求は、どの実行サーバによっても等しく処理することができる。しかし、経路指定モードにおいては、同じ種類の繰返される要求を同じ実行サーバへ経路指定する点に有利さがあると仮定される。この利点は、通常、先行要求からのキャッシングされた結果（又は、部分的結果）の再使用から得られる。例えば、ユーザのパターソン氏が彼の保有有価証券目録にある株式の現在株価を要求した場合、「ウェブ」サーバ１１０は、実行サーバ１１２から彼の保有有価証券目録にある株式リストを要求してもよい。実行サーバ１１２は、ディスクからパターソン氏の保有有価証券目録の内容をロードして、将来の要求を充足させるためにその内容をメモリにキャッシングすることができる。パターソン氏が彼の保有有価証券目録の株価を更新するために彼のウェブページをその後リフレッシュした場合、保有有価証券目録の内容は未だキャッシュにある可能性が高いので、元の要求を満たした同じ実行サーバ１１２にその後の要求を経路指定することは有利である。元の要求を満たした実行サーバ１１２が使用できない場合でも、再度、共用ディスクシステムから保有有価証券目録をロードすることのできる別の実行サーバにその後の要求を経路指定することが尚可能である。
キー操作モードにおいては、「ウェブ」サーバ１１０は、要求の種類に応じて異なる実行サーバに要求を送るように命令される。例えば、パターソン氏のクラブの写真に対する要求は、この写真へのアクセスを有する特定の実行サーバに常に向けられることになる。同様に、他の実行サーバ指定の要求は、その対応する実行サーバへ送られる。
【００３３】
１つの実施形態において、サーバシステム１０４は、これらのモードの下で作動する。すなわち、いくつかの「ウェブ」サーバ１１０は通常モードで作動し、他の「ウェブ」サーバ１１０は経路指定モードで作動してもよい。いくつかの事例においては、「ウェブ」サーバ１１０は、各々が異なるモードで作動している多くのプロクシーグループを通じて通信する場合がある。例えば、第１のプロクシーグループは、経路指定モードで作動し、第２のプロクシーグループは、キー操作モードで作動し、第３のプロクシーグループは、通常モードで作動してもよい。
上記の開示内容を検討することにより、本発明の多くの変形が当業者には明らかになるであろう。従って、本発明の範囲は、上記の説明に関連して判断されるべきではなく、その代わりに、添付請求項と共にその等価事項の全範囲に関連して判断されなければならない。
【００３４】
図５は、本発明の１つの実施形態による複数の実行サーバ又は実行サーバグループ５１６、５２６、及び、５３６に結合された「ウェブ」サーバ５００を示す。実行サーバ５１６、５２６、及び、５３６は、それぞれ単一のサーバとして図示されているが、各実行サーバは、１つ又はそれ以上のサーバを含む実行サーバのグループを表してもよい。「ウェブ」サーバは、複数のプロセッサ５０１と、複数のプロクシーグループ５１０、５２０、及び、５３０とを含む。各プロクシーグループは、一般に特定の実行サーバ又はサーバグループに専用である。例えば、プロクシーグループ５１０は、広告情報を検索する責任を持っており、各々が広告情報にアクセスを有する１つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ５１６に専用である。プロクシーグループ５２０は、ユーザ情報を検索する責任を持っており、各々がユーザ情報又はユーザデータベースにアクセスを有する１つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ５２６に専用である。プロクシーグループ５３０は、プラットフォーム特定データを検索する責任を持っており、各々が一般にプラットフォーム特定データにアクセスを有する１つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ５３６に専用である。プラットフォーム特定データとは、ユーザが望む「ウェブ」ページに特有なデータのことである。例えば、「Ｍｙ  Ｙａｈｏｏ！」ページを作り出すために必要なデータは、包括的な「Ｙａｈｏｏ！」ページを作り出すのに必要なデータとは異なるであろう。
【００３５】
各プロクシーグループは、共用メモリとプロクシーとを含む。すなわち、プロクシーグループ５１０は、共用メモリ５１２とプロクシー５１４とを有し、プロクシーグループ５２０は、共用メモリ５２２とプロクシー５２４とを有し、プロクシーグループ５３０は、共用メモリ５３２とプロクシー５３４とを有する。１つの実装においては、共用メモリは、共用メモリのプロクシーグループの中のプロクシーに専用である。
【００３６】
図６Ａは、本発明の別の実施形態による複数の実行サーバ又はサーバグループ６０８、６１０、及び、６１２に結合された「ウェブ」サーバ６００を示す。図５と同様に、実行サーバ６０８、６１０、及び、６１２は、実行サーバのグループを表してもよい。「ウェブ」サーバは、複数のプロセッサ６０１と１つの共用プロクシーグループ６０２とを含む。他の実装においては、「ウェブ」サーバは、複数の共用プロクシーグループを有し、その結果、負荷は、これらの共用プロクシーグループの間で共有することができる。
【００３７】
１つの実施形態においては、プロクシーの処理が開始される時、そのプロクシーは、例えばそれが仕えるべきプロクシーグループの名前である初期構成が識別されるので、それが仕えるべき特定プロクシーグループに付随している。一般に、グループ６０８の全ての実行サーバは、第１の指名グループに仕えている。グループ６１０のサーバは、第２の指名グループに仕えており、グループ６１２のサーバは、第３の指名グループに仕えている。これらの指名グループは、本発明の１つの実施形態による個別のグループである。
【００３８】
プロセッサ６０１は、ブラウザ１０２によって提出された要求を処理するために「ウェブ」サーバ６０２上で実行されるＨＴＴＰサーバである。プロセッサ６０１は、クライアント１０２から第１要求つまりブラウザ要求を受信し、そのクライアントの要求を処理すると、逆に第２要求つまりプロセッサ要求を共用プロクシーグループへ送信する。各プロセッサ要求は、その対応するブラウザ要求を満足させるために必要な様々な種類のデータに関する情報を包含する。プロセッサ６０１は、後で一層詳細に説明するように、プロセッサ要求を満足させるために実行サーバへ送信された複数のプロクシー要求に応答して実行サーバから送られた回答データを一時的に記憶するメモリ６０３を含む。１つの実装においては、このメモリは、要求されたデータの全て又は実質的に全てが受信されるまで、実行サーバからのデータを記憶する。その後、プロセッサは、実行サーバから受信したデータを用いて、ブラウザ１０２に対して適切なフォーマット（例えば、ＨＴＭＬフォーマット）のファイルを作成し、これをクライアントへ送信する。
【００３９】
図６Ａ及び図６Ｂを参照すると、共用プロクシーグループは、共用メモリ６０４と共用プロクシー６０６とを有する。プロクシーグループ５１０、５２０、及び、５３０とは異なり、この共用プロクシーグループは、要求を送って複数の実行サーバから回答を受信してもよい。一般に各実行サーバは、専ら別々の情報を提供する。例えば、１つの共用プロクシーグループは、実行サーバ６０８からの広告情報、実行サーバ６１０からのユーザ情報、及び、実行サーバ６１２からのプラットフォーム特定データにアクセスするために使用される場合がある。代替的に、プラットフォーム特定データは、複数の実行サーバから入手してもよい。
【００４０】
共用メモリ６０４は、メモリ保護を備えた多重タスキング・オペレーティングシステムにある複数のプロセッサよってアクセスすることができるメモリマップド・ファイルとしてまとめられている（図６Ｂ）。この共用メモリは、複数のスロット６１４を含み、そのスロットの数は、各スロットが別々のプロセッサに割り当てられるように「ウェブ」サーバ６０２によって取り扱うことのできるプロセッサ６０１の最大数にほぼ等しい。
【００４１】
各スロット６１４は、入力空間６１６と出力空間６１８とを含む。入力空間は、その対応するプロセッサ６０１からデータ又はプロセッサ要求を受信して一時的に記憶するので、要求は、後で共用プロクシー６０６を通じて実行サーバ１１２へ送信することができる。１つの実装において、スロットに記憶されたプロセッサ要求は、そのプロセッサ要求を満たすために必要な情報がそこから検索されなければならない複数の実行サーバを識別する。この識別は、選ばれた実行サーバの通信アドレスを与えることにより、又は、実行サーバはそれらが提供する情報の種類によって分類される場合があるので、要求されたデータの種類を記述することにより為されてもよい。１つの実施形態においては、共用メモリスロットを通じてプロクシー６０６に提出される各要求はプロクシーグループの名前を含んでいるので、プロクシー６０６は、どの実行サーバ又はグループ６０８、６１０、及び、６１２に対してその要求を経路指定すればよいかを判断することができる。他方、出力空間は、共用プロクシー６０６によって実行サーバ１１２から送られたデータを受信して一時的に記憶するので、「ウェブ」サーバのプロセッサ６０１は、このデータにアクセスすることができる。
【００４２】
図１〜図４に関連して前述した経路指定モードをこの特定の実施形態に適用してもよい。例えば、広告配送用の実行サーバ６０８、ユーザ情報用の実行サーバ又はグループ６１０、及び、実行サーバ又はグループ６１２は、各々、本発明の１つの実施形態による通常モード、経路指定モード、及び、キー操作モードを使用することができる。他の実装においては、モードの別の組合せが使用されてもよい。
【００４３】
１つの実施形態においては、１つのプロクシーグループを有する「ウェブ」サーバ６０２は、上記のデータフローを制御するために、複数のプロセッサ・マーク装置６２０と１つのプロクシー・マーク装置６２２とを含む（図６Ｂ）。各プロセッサ・マーク装置は、プロセッサ６０１とそれに対応するスロット６１４とに割り当てられ、それらの間のデータフローを制御する。プロクシー・マーク装置は、複数のプロセッサ・マーク装置と協働して適当なスロットにアクセスし、プロクシー要求を実行サーバへ送信し、実行サーバから受信したデータを共用メモリに記憶する。
【００４４】
プロセッサ・マーク装置６２０は、読出モードと書込モードという２つの独立したセットのモードを維持する。読出モードは、「読出可能」又は「読出不能」という２つの状態を有し、書込モードは、「書込可能」又は「書込不能」という２つの状態を有する。これらのモード及び状態は、プロクシーとプロセッサとの間のデータフローを制御する。
プロセッサ６０１がプロクシー６０６を通じて実行サーバ１１２へメッセージ又は要求を送ることを望む時、そのプロセッサは、プロセッサ・マーク装置を検査することにより、プロセッサの入力空間６１６がデータを受信するために使用可能か否かを最初に判断する。プロセッサ・マーク装置が「書込不能」状態の場合、プロセッサは待機しなくてはならない。この「書込不能」状態は、入力空間６１８に置かれた最後のメッセージをプロクシーが未だ読み出していないことを示している。
【００４５】
一旦最後のメッセージが読み出されると、プロセッサ・マーク装置６２０は、「書込可能」状態に切り換わり、入力空間が新しいメッセージを受信するのに利用可能であることを示す。プロセッサは、次に、その要求を入力空間６１６内にコピーし、要求が入力空間の中にコピーされたことを示すためにプロセッサ・マーク装置６２０に書き込むことができる。プロセッサ・マーク装置６２０に書き込む行為は、プロセッサ・マーク装置が「書込不能」になる原因となる。
【００４６】
プロセッサ・マーク装置６２０のこの変化は、読み出されるデータが入力空間６１６に存在することをプロクシーに警告する。プロクシーは、そのデータを入力空間から読み、次に、その入力空間のデータが配送のために受領されたことを示すためにプロクシー・マーク装置６２２を読む。プロクシー・マーク装置６２２を読む行為は、プロクシー・マーク装置が再び「書込可能」になる原因となる。プロクシー６０６は、送信されるメッセージを有する次の入力空間を選択し、以下同様である。
【００４７】
プロクシー６０６からプロセッサ６０１へのデータの転送は、いくらか類似の方法で処理される。プロクシーは、プロセッサ・マーク装置６２０を検査することにより、出力空間６１８が使用可能か否かを最初に判断する必要がある。プロセッサ・マーク装置が「書込可能」状態の場合、プロクシーは、出力空間６１８内にデータを書き込み、データが出力空間内に書き込まれたことを示すためにプロクシー・マーク装置６２２に書き込むことができる。プロクシー・マーク装置に書き込むことは、出力スロットに対応するプロセッサ・マーク装置６２０を「読出可能」にさせ、出力空間から読み出されるデータが利用可能であることをプロセッサ６０１に警告する。
【００４８】
図７は、本発明の１つの実施形態による複数の「ウェブ」サーバ６００と実行サーバ６０８，６１０、及び、６１２とを有するクライアントサーバシステム１００での例示的なデータフローを示す処理７００を描いている。１つの実施形態においては、実行サーバは、「ウェブ」サーバ６００に関連して上記で説明したものと実質的に同じ構成を有する。代替的に、実行サーバは、実行サーバ１１２（図２）に関連して上記で説明したものと実質的に同じ構成を有してもよい。
【００４９】
処理７００は、「ウェブ」サーバ１１０と実行サーバ１１２との代わりに「ウェブ」サーバ６００と実行サーバ６０８、６１０、及び、６１２とが使用されることを除けば、図１に示すクライアントサーバシステムを用いて説明される。処理は、ブラウザ１０２がサーバ１０４に対して要求を出すことで始まる（段階７０２）。そのような要求の一例は、「ｍｙ．ｙａｈｏｏ．ｃｏｍ．」などの特定の「ウェブ」ページを指定するＵＲＬであり、この場合、完全に適格なＵＲＬは、「ｈｔｔｐ：／／ｍｙ．ｙａｈｏｏ．ｃｏｍ／」であろう。ドメイン名「ｍｙ．ｙａｈｏｏ．ｃｏｍ」は、サーバシステム１０４のための実アドレスを決めるためにネームサーバ１０８に提出される。ネームサーバ１０８は、サーバシステム１０４内の適当な「ウェブ」サーバのインターネットプロトコル（ＩＰ）アドレスをクライアントに送り返す（段階７０４）。ネームサーバ１０８は、負荷を多くの「ウェブ」サーバ６００に亘って均等に分配するために、複数の「ウェブ」サーバ６００のＩＰアドレスをラウンドロビン方式で送り返してもよい。ネームサーバは、「ウェブ」サーバ６００のＩＰアドレスを送り返すために他の方法を用いてもよい。
【００５０】
実ＩＰアドレスを受信すると、ブラウザは、「ウェブ」サーバの適当なプロセッサ６０１へＵＲＬを提出する（段階７０６）。「ウェブ」サーバがそのルートディレクトリに対するＵＲＬを受信した時、「ウェブ」サーバは、このＵＲＬをユーザのカスタム要約ペ−ジに対する要求として解釈する。一般に、ユーザのアイデンティティは、上記で説明した通り、ＵＲＬからではなく、ブラウザ１０２によって提供される「クッキー」から判断される。
【００５１】
プロセッサ６０１がクライアントの要求（「第１要求」）に対する回答を作り出すために、一般に、プロセッサは、複数の実行サーバからのデータを要求する必要がある。そのような要求データの例としては、株式相場、スポーツ、ニュース、電子メール、及び、バナー広告を含んでもよい。プロセッサ６０１は、第２要求すなわちプロセッサ要求を共用メモリ６０４へ送り、このプロセッサ要求は、そのプロセッサに割り当てられた入力スロット６１６に記憶される。プロセッサ６０１は、そのスロットに対応するプロセッサ・マーク装置に書き込み、それによってそのマーク装置を「書込可能」から「書込不能」に変更する。その結果、プロクシー６０６は、スロット内のプロセッサ要求の存在に関して警告され、そのプロセッサ要求を検索する（段階７０８）。
【００５２】
プロセッサ要求は、ブラウザが要求するように「Ｍｙ  Ｙａｈｏｏ！」ページをまとめるために「ウェブ」サーバ６０２が必要とする様々な種類のデータを示す情報（例えば、ニュース、株式相場、天候、及び、スポーツなどに関する情報）を含む。本明細書で用いられる時、プロセッサ要求又は要求は、第２構成要素による特定行為を開始するために第１構成要素から第２構成要素に変換される任意の情報又はメッセージのことを意味する。要求は、パケットの形態や他の形態をとる場合がある。
【００５３】
プロセッサ要求を受信すると、「ウェブ」サーバは、通常、「Ｍｙ  Ｙａｈｏｏ！」ページを作り出すためにプロクシー６０６によって１つ又はそれ以上の実行サーバへ送信される、複数のプロクシー要求すなわち第３要求を作り出す（段階７１０）。プロクシー要求は、一度に１つずつ適当な宛先ノードすなわち実行サーバのプロセッサへ送信される。プロクシー要求は、必要とされる回答データの順序に大体従って送られるので、「Ｍｙ  Ｙａｈｏｏ！」ページを作り出すために最初に必要なデータは、プロセッサによって最初に受信される可能性が高い。
【００５４】
例えば実行サーバ６０８である実行サーバは、プロクシー要求を受信して、その要求を送り出したプロセッサ６０１へ回答を送り返す（段階７１２）。この回答は、プロクシー要求が送られた全ての実行サーバから実質的に全ての要求データが受信されるまでメモリ６０３に記憶される。ある場合には、実行サーバからの回答データは、様々なネットワーク経路及び実行サーバが受ける負荷が一様でないためにバラバラな順序でプロセッサに到達し得る。全ての回答を受信すると、「ウェブ」サーバのプロセッサは、受信データを結合して適当なＨＴＭＬファイルを作り出す（段階７１４）。プロセッサは、次に、ブラウザが「Ｍｙ  Ｙａｈｏｏ！」ページを表示することができるように、ＨＴＭＬファイルをクライアントへ送信する（段階７１６）。
【００５５】
本明細書で用いる場合、「実施形態」と「実装」という用語は、互換的に使用されている。従って、どちらかの用語が本発明のより広い又はより狭い態様を意味すると解釈されてはならない。
上記の開示内容を検討すると、本発明の多くの変形が当業者には明らかになるであろう。従って、本発明の範囲は、上記の記述に関して判断されるのではなく、その代わりに、添付請求項と共にその等価事項の全範囲に関して判断されなければならない。
【図面の簡単な説明】
【図１】本発明の１つの実施形態によるクライアントサーバシステムの概略図である。
【図２】図１のクライアントサーバシステムの２つの例示的なサーバの概略図である。
【図３Ａ】本発明の１つの実施形態によるプロセッサ・マーク装置の模式的表示を示す図である。
【図３Ｂ】本発明の１つの実施形態によるプロクシー・マーク装置の模式的表示を示す図である。
【図４】本発明の１つの実施形態による図１のクライアントサーバシステムにおけるデータフロー処理の流れ図である。
【図５】本発明の１つの実施形態による複数の実行サーバに結合された「ウェブ」サーバの概略図である。
【図６Ａ】本発明の別の実施形態による複数の実行サーバに結合された「ウェブ」サーバの概略図である。
【図６Ｂ】本発明の１つの実施形態による「ウェブ」サーバの概略図である。
【図７】本発明の１つの実施形態による図６Ａのクライアントサーバシステムにおけるデータフロー処理の流れ図である。
【符号の説明】
１００  クライアントサーバシステム
１０２  クライアント（又は、ブラウザ）
１０４  サーバシステム
１０６  インターネット
１０８  ネームサーバ
１１０  「ウェブ」サーバ（クライアント／サーバ）
１１２  実行サーバ（クライアント／サーバ）
１１４  リンク
【図１】
0004504609.tif 000002
【図２】
0004504609.tif 000003
【図３Ａ】
0004504609.tif 000004
【図３Ｂ】
0004504609.tif 000005
【図４】
0004504609.tif 000006
【図５】
0004504609.tif 000007
【図６Ａ】
0004504609.tif 000008
【図６Ｂ】
0004504609.tif 000009
【図７】
0004504609.tif 000010