JP4504609B2 - 高性能クライアントサーバ通信システム - Google Patents

高性能クライアントサーバ通信システム Download PDF

Info

Publication number
JP4504609B2
JP4504609B2 JP2002016384A JP2002016384A JP4504609B2 JP 4504609 B2 JP4504609 B2 JP 4504609B2 JP 2002016384 A JP2002016384 A JP 2002016384A JP 2002016384 A JP2002016384 A JP 2002016384A JP 4504609 B2 JP4504609 B2 JP 4504609B2
Authority
JP
Japan
Prior art keywords
proxy
server
data
processes
virtual device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002016384A
Other languages
English (en)
Other versions
JP2002288058A (ja
Inventor
ジェイムス クイッグル トーマス
アラン ライト ロバート
ナゼム ファーザド
Original Assignee
ヤフー! インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヤフー! インコーポレイテッド filed Critical ヤフー! インコーポレイテッド
Publication of JP2002288058A publication Critical patent/JP2002288058A/ja
Application granted granted Critical
Publication of JP4504609B2 publication Critical patent/JP4504609B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、通信システムに関する。更に特定すれば、本発明は、高速クライアントサーバ通信を提供するために複数のプロクシーを含むクライアントサーバ通信システムに関する。
【0002】
【従来の技術】
クライアントサーバ通信システムは、少なくとも1つの要求当事者と、この要求当事者にサービスを提供する少なくとも1つの応答当事者とを有するシステムである。クライアントサーバ通信システムの一例は、インターネットの名で知られているネットワークのグローバルな相互ネットワークである。インターネットは、クライアント又はサーバであり得る発信元ノードから同じくクライアント又はサーバであり得る宛先ノードへ確実にデータパケットを転送するためのTCP/IP(「搬送制御プロトコル」/「インターネットプロトコル」)を使用する。デジタルデータのオブジェクトを移動させるために、種々の高レベルプロトコルがTCP/IPの上で使用されるが、特定のプロトコルは、オブジェクトの性質に依存する。例えば、電子メールは、「簡単メール搬送プロトコル」(SMTP)と「郵便局プロトコル3」(POP3)とを用いて搬送され、他方、ファイルは、「ファイル転送プロトコル」(FTP)を用いて搬送される。「ハイパーテキスト」文書とそれらの関連効果は、「ハイパーテキスト搬送プロトコル」(HTTP)を用いて搬送される。
【0003】
多数のハイパーテキスト文書が他のハイパーテキスト文書とリンクされる時には、それらはまとまって「ウェブ」構造を形成し、それは、HTTPを用いて搬送することができるハイパーテキスト文書の集合に対して「ワールドワイドウェブ」(しばしば、「WWW」又は「ウェブ」と略称される)の名称をもたらした。文書をHTTPを用いて搬送するために、文書にハイパーリンクが必要であるという訳では勿論ない。事実、それがHTTPの要件に適合する限り、どんなデータオブジェクトでもHTTPを用いて搬送することができる。
【0004】
HTTPの一般的用法においては、ブラウザは、ホストに対するユニフォーム・リソース・ロケータ(URL)を含む、オブジェクトに関する要求を送り、ホストは、ブラウザが表示できるようにそのオブジェクト(又は、当該オブジェクトが入手不能であることを示すエラーメッセージ)を送り返す。通常の場合においては、要求されたオブジェクトは、ハイパーテキストマークアップ言語(HTML)の文書であって、ホストは、一般に「「ウェブ」サーバ」と呼ばれるHTML文書サーバである。ブラウザは、HTTPクライアントの一例であって、それが返送されたハイパーテキスト文書を表示し、返送された文書中で言及された他のハイパーテキスト文書をユーザが選択して表示する機会を可能にして、それによってユーザがハイパーテキスト文書を「browse(気の向くままに見る)」することを可能にするので、ブラウザと呼ばれる。「ウェブ」サーバは、HTTPクライアントによって要求されたハイパーテキスト文書や他のデータオブジェクトを返送するインターネットホストである。
【0005】
【発明が解決しようとする課題】
【課題を解決するための手段】
本発明は、クライアントサーバ通信に関する。本発明の1つの実施形態において、通信システムは、クライアントとサーバとを含む。クライアントは、第1のプロクシー、第1のメモリ、及び、複数の第1のプロセッサ(プロセス。以下、同じ)を含む。第1のメモリは、複数の第1のスロットを含み、各第1スロットは、複数の第1のプロセッサのうちの1つに割り当てられ、割り当てられた第1のプロセッサによって送信又は受信されるデータを記憶するように構成されている。サーバは、第2のプロクシー、第2のメモリ、及び、複数の第2のプロセッサを有する。第2のメモリは、複数の第2のプロセッサのうちの1つに割り当てることができて割り当てられた第2のプロセッサによって送信又は受信されるデータを記憶するように構成することができる複数の第2のスロットを含む。第1及び第2プロクシーは、互いに通信リンクを形成するように構成されている。
【0006】
別の実施形態においては、通信システムは、通信ネットワークに結合されたブラウザシステムを含む。第1のサーバシステムは、通信ネットワークに結合され、複数の第1プロセッサと第1のプロクシーグループとを有する。第1プロクシーグループは、第1の共用メモリと第1のプロクシーとを有する。第1共用メモリは、複数の第1スロットを有し、第1スロットの各々は、複数の第1プロセッサのうちの1つに割り当てられ、割り当てられた第1プロセッサによって送信された又は受信されるデータを記憶するように構成されている。第1サーバシステムは、第1プロクシーグループのデータフローを制御するために、複数のプロセッサ・マーク装置(プロセス・マークデバイス)と1つのプロクシー・マーク装置(プロクシー・マークデバイス)とを更に含む。第2のサーバシステムは、通信ネットワークに結合され、複数の第2プロセッサと第2のプロクシーグループとを有する。第2プロクシーグループは、第2の共用メモリと第2プロクシーとを有し、第1プロクシーと第2プロクシーとは、互いに通信リンクを形成するように構成されている。
【0007】
【発明の実施の形態】
本発明は、クライアントサーバ通信に関する。本発明は、本発明の特定の実施形態を用いて既に示された。本発明がこれらの特定実施例に限定されず、添付請求項によってのみ限定されるということを理解されたい。
図1を参照すると、クライアントサーバシステム100は、インターネット106を通じてサーバシステム又は複数のサーバ104に接続された複数のクライアント(又は、ブラウザ)102を含む。システム100は、クライアント102がサーバシステム104と通信リンクを確立するのを補助するネームサーバ108を含んでもよい。以下で更に詳際に説明する通り、サーバシステム104自体は、少なくとも1つの要求当事者と少なくとも1つの応答当事者とを有するクライアントサーバシステムを構成する。
【0008】
クライアント102は、実際の機械か、又は、インターネットに直接的又は間接的にインタフェース可能なそのような機械に在るソフトウエアであってもよい。そのような機械の例としては、デスクトップパーソナルコンピュータ、ワークステーション、携帯電話、個人用デジタルアシスタント、及び、ラップトップパーソナルコンピュータなどがある。そのようなソフトウエアの例としては、「ネットスケープナビゲータ」及び「マイクロソフトインターネットエキスプロラ」などがある。これらのソフトウエアは、インターネット上で入手可能なデータをブラウズするために使用されるから、一般にブラウザと呼ばれている。「ブラウザ」という用語は、以下において専ら本発明を記述する目的でクライアント102と交換可能に使用されるが、本発明の範囲を限定するように用いられてはならない。
【0009】
サーバシステム104は、イントラネット、インターネット、及び、広域ネットワーク等のリンク114を通じて複数の実行サーバ112(クライアント/サーバ)に接続された複数の「ウェブ」サーバ110(クライアント/サーバ)を含む。他の実装においては、「ウェブ」サーバ110は、他の種類のサーバであってもよい。「ウェブ」サーバ110は、要求されたデータを検索する実行サーバ112に経路指定されたブラウザ102から要求を受信する。「経路指定された」という用語は、本明細書では広い意味に使用され、ブラウザから受信した要求に応答して、「ウェブ」サーバによって実行サーバに発信されるいかなるデータ又は要求をも搬送することを含む。例えば、「ウェブ」サーバ110は、ブラウザから送られた1つの要求に応えるために、多くの要求を発生して実行サーバ112に発信する場合がある。
【0010】
要求されたデータが1つ又はそれ以上の実行サーバ112から一旦受信されると、ユーザが見ることができるように、「ウェブ」サーバ110は、そのデータをブラウザ102へ送る。実行サーバから受信したデータの転送に先立って、これらのデータは、一般に、再フォーマットされるか、同様に検索された他のデータと結合されるか、又は、1つ又はそれ以上の実行サーバ112上に局所的に記憶されたデータと結合される。この意味において、「ウェブ」サーバ110は、クライアントとしてもサーバとしても機能し、すなわち、「ウェブ」サーバ110は、実行サーバ112に対してはクライアントであり、ブラウザ102に対してはサーバである。
【0011】
1つの実施形態において、「ウェブ」サーバ110と実行サーバ112とは、ユニックス(登録商標)オペレーティングシステムで作動するマイクロコンピュータである。一般に、サーバシステム104は、最大20個までの「ウェブ」サーバ110と最大10個までの実行サーバ112とを有する。代替的に、サーバシステム104は、更に多くの「ウェブ」サーバ110及び実行サーバ112を有してもよい。「ウェブ」及び実行サーバの各々は、一般に最大20個であるが時にはそれ以上の複数のプロセッサ又はアプリケーションを実行する。
【0012】
図2を参照すると、通信リンク114に接続された各「ウェブ」サーバ110は、実行サーバ112のプロクシーとの永続的TCP/IP接続を維持しているプロクシー202、共用メモリ204、及び、複数のプロセッサ206を含む。プロクシーによって提供される永続的接続は、サーバシステム104のリソースの一層効率的な使用を可能にする。プロクシー間の接続を「永続的」と記述した訳は、これらのプロクシーのサーバがシステム100とアクティブに接続されている限り、その接続が維持されるからである。
【0013】
一般に、「ウェブ」サーバ110及び実行サーバ112のプロセッサ間の全ての通信は、それぞれのサーバのプロクシーによって提供される永続的接続を通じて行なわれる。そのような接続がなければ、各プロセッサは、それが通信を望む全てのプロセッサとの別々で一時的な接続を確立する必要があるであろう。これは、プロセッサ間に数万又はそれ以上の別々の接続を確立して維持することを意味する場合がある。そのようなシステムを実装するためには、かなりのリソースを要するであろう。プロセッサによって形成される接続を「一時的」と記述した訳は、目標とする通信を実行するのに十分な時間だけ2つのプロセッサ間で接続が確立され、一旦通信が完了したら接続が解除されるからである。
【0014】
共用メモリ204は、メモリ保護を備えた多重タスキングオペレーティングシステムにおける1つよりも多いプロセッサによってアクセスできるメモリマップド・ファイルとして構成される。プロセッサ206は、ブラウザ102によって提出された要求を処理するために「ウェブ」サーバ110上で作動するHTTPサーバである。そのようなプロセッサの例としては、アパッチ・ソフトウエア・ファンデーションから提供される「アパッチ(Apache)」、及び、他の同様なHTTPサーバがある。共用メモリは、複数のスロット214を含み、その数は、各スロットが別々のプロセッサに割り当てられるように、一般に「ウェブ」サーバ110が取り扱うことのできるプロセッサ206の最大個数に等しい。
【0015】
本発明の1つの実施形態において、共用メモリ204は、その実施形態の下で「ウェブ」サーバが取り扱うことのできる最大数Nのプロセッサに相当するN個のスロット214を含む。1つの実装においてNは20であるが、サーバの負荷及び能力に応じて、Nの値はそれ以外の数が可能である場合がある。
各スロット214は、入力空間216と出力空間218とを含む。入力空間は、その対応するプロセッサ206からデータを受信して一時的に記憶し、そのため、データは、その後プロクシー202を通じて実行サーバ112に送信することができる。他方、出力空間は、プロクシー202によって実行サーバ112から受信されるデータを受信して一時的に記憶するので、「ウェブ」サーバのプロセッサ206は、このデータにアクセスすることができる。1つの実装において、各スロット214は、4kのメモリ空間を有しており、その場合、入力空間216及び出力空間218には各々2kのメモリ空間が割り当てられる。
【0016】
各々の共用メモリ204に対応して、プロクシー・マーク装置220とプロセッサ・マーク装置222(図3Aを参照されたい)とから成るマーク装置対224があり、それらが対応する共用メモリスロット214内でのデータフローを制御する。プロクシー・マーク装置は、プロクシー202に付随し、プロセッサ・マーク装置は、プロセッサ206に付随する。これらのマーク装置は、例えば「/dev/mkd/」である所定のディレクトリの下でファイルシステムに維持される仮想デバイスドライバである。ただし、説明の便宜上、プロクシー・マーク装置とプロセッサ・マーク装置とは、図2において、プロクシーと共用メモリとの中に各々含まれるように描かれている。
【0017】
プロクシー・マーク装置220及びプロセッサ・マーク装置222の各々は、2セットの独立したモード、すなわち読出モードと書込モードとを維持する。読出モードは、「読出可能」又は「読出不能」という2つの状態を有する。書込モードは、「書込可能」又は「書込不能」という2つの状態を有する。これらのモード及び状態は、プロクシーとプロセッサとの間のデータフローを制御する。
プロセッサ206がメッセージを送るか、又は、データを要求することをプロクシー202を通じて実行サーバ112に望んだ時、プロセッサ206は、先ずプロセッサ・マーク装置を調べることにより、その入力空間216がデータを受信するのに利用可能であるか否かを判断する。プロセッサ・マーク装置が「書込不能」状態である場合、プロセッサは待機しなくてはならない。そのような「書込不能」状態は、入力空間216に置かれた最後のメッセージをプロクシーが未だ読んでいないことを示している。換言すれば、プロクシー・マーク装置は、「読出可能」状態にある。
【0018】
一旦最後のメッセージが読み出されてしまうと、プロクシー・マーク装置は、「読出不能」状態に変わる。その結果、プロセッサ・マーク装置222は、「書込可能」状態に切り替わり、入力空間が新しいメッセージを受信するのに利用可能であることを示す。プロセッサ206は、次に、要求データを入力空間216の中にコピーすることができ、要求データが入力空間216の中にコピーされたことを示すために、プロセッサ・マーク装置222に書き込むことができる。プロセッサ・マーク装置222に書き込む行為は、プロセッサ・マーク装置222を「書込不能」にさせ、対応するプロクシー・マーク装置220を「読出可能」にさせる。
【0019】
プロクシー・マーク装置220の「読出可能」への変化は、対応する入力空間216内に読み出されるべきデータが存在することをプロクシーに警告する。プロクシーは、次に、入力空間216からデータを読むことができ、データが配送のために受け取られたことを示すために、その後プロクシー・マーク装置220を読むことができる。プロクシー・マーク装置220を読む行為は、それをを「読出不能」にさせ、対応するプロセッサ・マーク装置222を再び「書込可能」にさせる。
【0020】
プロクシー202からプロセッサ206へのデータの転送は、一般に同様な方式で機能する。プロクシーは、先ずプロクシー・マーク装置220を調べることによって、出力空間218が使用可能であるか否かを判断しなければならない。プロクシー・マーク装置が「書込可能」状態である場合、プロクシーは、データを出力空間218の中に書き込むことができ、データが出力空間内に書き込まれたことを示すために、プロクシー・マーク装置220に書き込むことができる。プロクシー・マーク装置220に書き込むことは、それを「書込不能」にさせ、対応するプロセッサ・マーク装置222を「読出可能」にさせて、出力空間から読み出されるべきデータが準備できていることをプロセッサ206に示す。プロクシー・マーク装置は、プロセッサが対応するプロセッサ・マーク装置222に対する読み出しを実行し終えるまで「書込不能」状態であり続ける。
【0021】
再び図2を参照すると、「ウェブ」サーバ110と同じく、各実行サーバ112は、プロクシー230、複数のスロット234を有する共用メモリ232、及び、複数のプロセッサ236を有する。実行サーバは、更に、複数の入力空間及び出力空間238及び240と複数のマーク装置対246とを含む。マーク装置対は、プロクシー・マーク装置242とプロセッサ・マーク装置244とを有する(図3Bを参照されたい)。上記の通り、これらのマーク装置は、仮想デバイスドライバであって、ファイルシステムに維持されている。図2においては、専ら説明の便宜上、それらのマーク装置は、共用メモリ及びプロクシーに含まれているものとして図示されている。
【0022】
実行サーバの上記構成要素は、一般に、「ウェブ」サーバ110の構成要素と同様に機能する。1つの相違点は、実行サーバ112のプロセッサは、一般に「ウェブ」サーバ110のプロセッサによって送信された要求を処理するためのアプリケーションであるのに対して、「ウェブ」サーバのプロセッサは、一般に実行サーバ112に送信される要求を発生させるためのアプリケーションであるという点である。従って、「ウェブ」サーバに関して上記で与えられた説明は、実行サーバに対しても等しく当てはまる。
【0023】
図4を参照すると、作動において処理400は、本発明の1つの実施形態によるクライアントサーバシステム100の例示的なデータフローを示している。処理400は、ブラウザ102がサーバ104に対して要求を発することから始まる(段階402)。そのような要求の一例は、「my.yahoo.com」などの特定のウェブページを指定するURLであって、この場合、完全に適格なURLは、「http://my.yahoo.com/」であろう。ドメイン名「my.yahoo.com」は、サーバシステム104のための実アドレスを判断するためにネームサーバ108に提出される。ネームサーバ108は、サーバシステム104内の1つの「ウェブ」サーバ110の「インターネットプロトコル(IP)」アドレスをクライアントに返送する(段階404)。ネームサーバ108は、多数の「ウェブ」サーバ110に亘って負荷を一様に分配するために、複数の「ウェブ」サーバ110のIPアドレスをラウンドロビン方式で返送してもよい。
【0024】
代替的に、ネームサーバ108は、ブラウザアドレスを追跡することにより、また、そのブラウザに対する特別な「ウェブ」サーバを選択するためにそのブラウザアドレスをハッシングすることにより、負荷を一層決定論的に分配することができる。決定論的又は経路指定的手法の下で、与えられたいかなるブラウザも常に同じ「ウェブ」サーバ110にアクセスするであろう。この手法は、ある与えられたブラウザが常に特定「ウェブ」サーバに戻るところではキャッシュヒットが更に多く起こりそうであるから、ユーザテンプレートの一層効率的なキャッシングを準備する。
【0025】
実際のIPアドレスを受信すると、ブラウザは、そのURLを適切な「ウェブ」サーバ110、すなわち「ウェブ」サーバのプロセッサ206へ提出する(段階406)。「ウェブ」サーバがそのルートディレクトリに対するURLを受信した時、「ウェブ」サーバは、それをユーザのカスタム要約ページに対する要求であると解釈する。一般に、ユーザのアイデンティティは、URLからではなく、ブラウザ102によって供給される「クッキー」から判断される。これは、ユーザが何処でログインするかに関わりなく、ユーザを正しく識別できることを確実にする。クッキーは、ブラウザによって記憶され、そのクッキーに付随するドメインを有するURLに対する任意の要求と共に送られるデータの文字列である。
【0026】
クライアントの要求に対する回答を「ウェブ」サーバが生み出すために、1つ又はそれ以上の実行サーバからデータを要求することが必要な場合がある。このように要求されるデータの例としては、株式相場、新しい見出し記事、又は、バナー広告が含まれてもよい。そのような要求の各々のために、プロクシー202は、スロット214つまりその要求が向けられたプロセッサ206に割り当てられたスロットの出力空間218に要求を記憶する。プロクシーはまた、プロクシー・マーク装置220に書き込みを行なって、これを「書込可能」状態から「書込不能」状態へと変える。その結果、出力空間218に割り当てられたプロセッサ・マーク装置は、「読出不能」状態から「読出可能」状態へと変わる。プロセッサ206は、出力空間の要求の存在に関して警告されて、その要求を検索する。いくつかの事例においては、要求は、1つよりも多いプロセッサのサービスを必要とする場合があり、2つ又はそれ以上のプロセッサ206へと経路指定することもできる。
【0027】
ブラウザによる要求に応じて「My Yahoo!」ページをまとめるために、「ウェブ」サーバ110は、多数の異なるソースからデータを検索する必要がある(例えば、ニュース、株式相場、天気、及び、スポーツなどに関する情報)。これらのソースは、1つの実行サーバ上で実行されるプロセッサ、又は、多くの実行サーバに分散されたプロセッサであることが可能である。いくつかの事例において、ソースは、同じ「ウェブ」サーバ上で実行されるプロセッサを含む、「ウェブ」サーバ上で実行されるプロセッサであることが可能である。ブラウザの要求に応答して、「ウェブ」サーバは、通常、「My Yahoo!」ページを生み出すために1つ又はそれ以上の実行サーバ112に送信される複数の要求(「サーバ要求」)を発生する。
【0028】
発生されたサーバ要求は、一度に1つずつ適切な宛先ノードつまり一般的には実行サーバのプロセッサ236へ送信される(段階408)。更に特定すれば、プロセッサ206は、サーバ要求のうちの1つをその入力空間216の中に書き込み、また、プロセッサ・マーク装置222に書き込む。このプロセッサ・マーク装置は、その状態を「書込可能」から「書込不能」へと変える。これに応答して、そのプロセッサ・マーク装置に付随するプロクシー・マーク装置は、その状態を「読出不能」から「読出可能」へと変え、当該入力空間に送信すべきデータつまりサーバ要求が存在していることをプロクシー202に警告する。次いで、プロクシー202は、そのサーバ要求を適切な実行サーバへ送信する。
【0029】
実行サーバ112は、サーバ要求を受信して、そのサーバ要求を送り出したプロセッサ206へ返事を戻す(段階410)。更に特定すれば、実行サーバのプロクシー230は、サーバ要求を受信して、そのサーバ要求の宛先であるプロセッサ236に割り当てられた出力空間内に書き込む。サーバ要求が出力空間内に書き込まれたことを示すために、プロクシーは、同じくプロクシー・マーク装置242にも書き込む。その結果、プロクシー・マーク装置は、「書込可能」状態から「書込不能」状態へと変わる。当該入力空間に割り当てられたプロセッサ・マーク装置244は、その状態を「読出不能」から「読出可能」へと変え、読み出されるのを待っているサーバ要求のことをプロセッサ236へ警告する。
【0030】
プロセッサ236は、そのサーバ要求を読み出して、そのプロセッサに割り当てられた入力空間内に書き込まれる返事を発生する。当該入力空間に付随するプロセッサ・マーク装置244は、その状態を「書込可能」から「書込不能」へと変える。これに応答して、そのプロセッサ・マーク装置に付随するプロクシー・マーク装置は、その状態を「読出不能」から「読出可能」へと変え、送信する必要のある返事についてプロクシーに警告する。プロクシー230は、そのサーバ要求の送信元であるプロセッサ206へ返事を送信する。ブラウザによって送られる要求と関連させて上記で説明したように、その返事は、プロクシー202を通じて「ウェブ」サーバのプロセッサ206と出力空間218とに到達する。他のサーバ要求に対する返事も同様な方式でプロセッサ206により受信される。全ての返事を受信すると、「ウェブ」サーバのプロセッサは、受信データを結合してそれらをクライアントに送信する(段階412)。
【0031】
サーバシステム104は、通常モード、経路指定モード、キー操作モード、又は、これらの組合せモードであるいくつかの異なるモードで作動するように構成されている。使用されるモードに応じて、「ウェブ」サーバ110は、実行サーバ112にアクセスするために異なるアルゴリズムを使用する。通常モードにおいては、負荷を一様に分配するために、「ウェブ」サーバ110は、ラウンドロビン方式で実行サーバ112にアクセスする。このモードの下では、全ての実行サーバ112が実質的に同様のサービスを提供すると仮定されるので、各々の要求は、どの実行サーバによっても同等に処理することができる。要求を経路指定する目的は、使用可能な実行サーバ間に均等な負荷分布と、個々の実行サーバの故障に対する耐性とを与えることである。
【0032】
経路指定モードにおいては、「ウェブ」サーバ110は、同様な要求(例えば、同じユーザのための要求)を同じ実行サーバ112へ送ることを試みる。通常モードの場合と同様に、経路指定モードにおいては、全ての実行サーバ112が実質的に同様なサービスを提供すると仮定されるので、各々の要求は、どの実行サーバによっても等しく処理することができる。しかし、経路指定モードにおいては、同じ種類の繰返される要求を同じ実行サーバへ経路指定する点に有利さがあると仮定される。この利点は、通常、先行要求からのキャッシングされた結果(又は、部分的結果)の再使用から得られる。例えば、ユーザのパターソン氏が彼の保有有価証券目録にある株式の現在株価を要求した場合、「ウェブ」サーバ110は、実行サーバ112から彼の保有有価証券目録にある株式リストを要求してもよい。実行サーバ112は、ディスクからパターソン氏の保有有価証券目録の内容をロードして、将来の要求を充足させるためにその内容をメモリにキャッシングすることができる。パターソン氏が彼の保有有価証券目録の株価を更新するために彼のウェブページをその後リフレッシュした場合、保有有価証券目録の内容は未だキャッシュにある可能性が高いので、元の要求を満たした同じ実行サーバ112にその後の要求を経路指定することは有利である。元の要求を満たした実行サーバ112が使用できない場合でも、再度、共用ディスクシステムから保有有価証券目録をロードすることのできる別の実行サーバにその後の要求を経路指定することが尚可能である。
キー操作モードにおいては、「ウェブ」サーバ110は、要求の種類に応じて異なる実行サーバに要求を送るように命令される。例えば、パターソン氏のクラブの写真に対する要求は、この写真へのアクセスを有する特定の実行サーバに常に向けられることになる。同様に、他の実行サーバ指定の要求は、その対応する実行サーバへ送られる。
【0033】
1つの実施形態において、サーバシステム104は、これらのモードの下で作動する。すなわち、いくつかの「ウェブ」サーバ110は通常モードで作動し、他の「ウェブ」サーバ110は経路指定モードで作動してもよい。いくつかの事例においては、「ウェブ」サーバ110は、各々が異なるモードで作動している多くのプロクシーグループを通じて通信する場合がある。例えば、第1のプロクシーグループは、経路指定モードで作動し、第2のプロクシーグループは、キー操作モードで作動し、第3のプロクシーグループは、通常モードで作動してもよい。
上記の開示内容を検討することにより、本発明の多くの変形が当業者には明らかになるであろう。従って、本発明の範囲は、上記の説明に関連して判断されるべきではなく、その代わりに、添付請求項と共にその等価事項の全範囲に関連して判断されなければならない。
【0034】
図5は、本発明の1つの実施形態による複数の実行サーバ又は実行サーバグループ516、526、及び、536に結合された「ウェブ」サーバ500を示す。実行サーバ516、526、及び、536は、それぞれ単一のサーバとして図示されているが、各実行サーバは、1つ又はそれ以上のサーバを含む実行サーバのグループを表してもよい。「ウェブ」サーバは、複数のプロセッサ501と、複数のプロクシーグループ510、520、及び、530とを含む。各プロクシーグループは、一般に特定の実行サーバ又はサーバグループに専用である。例えば、プロクシーグループ510は、広告情報を検索する責任を持っており、各々が広告情報にアクセスを有する1つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ516に専用である。プロクシーグループ520は、ユーザ情報を検索する責任を持っており、各々がユーザ情報又はユーザデータベースにアクセスを有する1つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ526に専用である。プロクシーグループ530は、プラットフォーム特定データを検索する責任を持っており、各々が一般にプラットフォーム特定データにアクセスを有する1つ又はそれ以上の個々の実行サーバから成る実行サーバ又はサーバグループ536に専用である。プラットフォーム特定データとは、ユーザが望む「ウェブ」ページに特有なデータのことである。例えば、「My Yahoo!」ページを作り出すために必要なデータは、包括的な「Yahoo!」ページを作り出すのに必要なデータとは異なるであろう。
【0035】
各プロクシーグループは、共用メモリとプロクシーとを含む。すなわち、プロクシーグループ510は、共用メモリ512とプロクシー514とを有し、プロクシーグループ520は、共用メモリ522とプロクシー524とを有し、プロクシーグループ530は、共用メモリ532とプロクシー534とを有する。1つの実装においては、共用メモリは、共用メモリのプロクシーグループの中のプロクシーに専用である。
【0036】
図6Aは、本発明の別の実施形態による複数の実行サーバ又はサーバグループ608、610、及び、612に結合された「ウェブ」サーバ600を示す。図5と同様に、実行サーバ608、610、及び、612は、実行サーバのグループを表してもよい。「ウェブ」サーバは、複数のプロセッサ601と1つの共用プロクシーグループ602とを含む。他の実装においては、「ウェブ」サーバは、複数の共用プロクシーグループを有し、その結果、負荷は、これらの共用プロクシーグループの間で共有することができる。
【0037】
1つの実施形態においては、プロクシーの処理が開始される時、そのプロクシーは、例えばそれが仕えるべきプロクシーグループの名前である初期構成が識別されるので、それが仕えるべき特定プロクシーグループに付随している。一般に、グループ608の全ての実行サーバは、第1の指名グループに仕えている。グループ610のサーバは、第2の指名グループに仕えており、グループ612のサーバは、第3の指名グループに仕えている。これらの指名グループは、本発明の1つの実施形態による個別のグループである。
【0038】
プロセッサ601は、ブラウザ102によって提出された要求を処理するために「ウェブ」サーバ602上で実行されるHTTPサーバである。プロセッサ601は、クライアント102から第1要求つまりブラウザ要求を受信し、そのクライアントの要求を処理すると、逆に第2要求つまりプロセッサ要求を共用プロクシーグループへ送信する。各プロセッサ要求は、その対応するブラウザ要求を満足させるために必要な様々な種類のデータに関する情報を包含する。プロセッサ601は、後で一層詳細に説明するように、プロセッサ要求を満足させるために実行サーバへ送信された複数のプロクシー要求に応答して実行サーバから送られた回答データを一時的に記憶するメモリ603を含む。1つの実装においては、このメモリは、要求されたデータの全て又は実質的に全てが受信されるまで、実行サーバからのデータを記憶する。その後、プロセッサは、実行サーバから受信したデータを用いて、ブラウザ102に対して適切なフォーマット(例えば、HTMLフォーマット)のファイルを作成し、これをクライアントへ送信する。
【0039】
図6A及び図6Bを参照すると、共用プロクシーグループは、共用メモリ604と共用プロクシー606とを有する。プロクシーグループ510、520、及び、530とは異なり、この共用プロクシーグループは、要求を送って複数の実行サーバから回答を受信してもよい。一般に各実行サーバは、専ら別々の情報を提供する。例えば、1つの共用プロクシーグループは、実行サーバ608からの広告情報、実行サーバ610からのユーザ情報、及び、実行サーバ612からのプラットフォーム特定データにアクセスするために使用される場合がある。代替的に、プラットフォーム特定データは、複数の実行サーバから入手してもよい。
【0040】
共用メモリ604は、メモリ保護を備えた多重タスキング・オペレーティングシステムにある複数のプロセッサよってアクセスすることができるメモリマップド・ファイルとしてまとめられている(図6B)。この共用メモリは、複数のスロット614を含み、そのスロットの数は、各スロットが別々のプロセッサに割り当てられるように「ウェブ」サーバ602によって取り扱うことのできるプロセッサ601の最大数にほぼ等しい。
【0041】
各スロット614は、入力空間616と出力空間618とを含む。入力空間は、その対応するプロセッサ601からデータ又はプロセッサ要求を受信して一時的に記憶するので、要求は、後で共用プロクシー606を通じて実行サーバ112へ送信することができる。1つの実装において、スロットに記憶されたプロセッサ要求は、そのプロセッサ要求を満たすために必要な情報がそこから検索されなければならない複数の実行サーバを識別する。この識別は、選ばれた実行サーバの通信アドレスを与えることにより、又は、実行サーバはそれらが提供する情報の種類によって分類される場合があるので、要求されたデータの種類を記述することにより為されてもよい。1つの実施形態においては、共用メモリスロットを通じてプロクシー606に提出される各要求はプロクシーグループの名前を含んでいるので、プロクシー606は、どの実行サーバ又はグループ608、610、及び、612に対してその要求を経路指定すればよいかを判断することができる。他方、出力空間は、共用プロクシー606によって実行サーバ112から送られたデータを受信して一時的に記憶するので、「ウェブ」サーバのプロセッサ601は、このデータにアクセスすることができる。
【0042】
図1〜図4に関連して前述した経路指定モードをこの特定の実施形態に適用してもよい。例えば、広告配送用の実行サーバ608、ユーザ情報用の実行サーバ又はグループ610、及び、実行サーバ又はグループ612は、各々、本発明の1つの実施形態による通常モード、経路指定モード、及び、キー操作モードを使用することができる。他の実装においては、モードの別の組合せが使用されてもよい。
【0043】
1つの実施形態においては、1つのプロクシーグループを有する「ウェブ」サーバ602は、上記のデータフローを制御するために、複数のプロセッサ・マーク装置620と1つのプロクシー・マーク装置622とを含む(図6B)。各プロセッサ・マーク装置は、プロセッサ601とそれに対応するスロット614とに割り当てられ、それらの間のデータフローを制御する。プロクシー・マーク装置は、複数のプロセッサ・マーク装置と協働して適当なスロットにアクセスし、プロクシー要求を実行サーバへ送信し、実行サーバから受信したデータを共用メモリに記憶する。
【0044】
プロセッサ・マーク装置620は、読出モードと書込モードという2つの独立したセットのモードを維持する。読出モードは、「読出可能」又は「読出不能」という2つの状態を有し、書込モードは、「書込可能」又は「書込不能」という2つの状態を有する。これらのモード及び状態は、プロクシーとプロセッサとの間のデータフローを制御する。
プロセッサ601がプロクシー606を通じて実行サーバ112へメッセージ又は要求を送ることを望む時、そのプロセッサは、プロセッサ・マーク装置を検査することにより、プロセッサの入力空間616がデータを受信するために使用可能か否かを最初に判断する。プロセッサ・マーク装置が「書込不能」状態の場合、プロセッサは待機しなくてはならない。この「書込不能」状態は、入力空間618に置かれた最後のメッセージをプロクシーが未だ読み出していないことを示している。
【0045】
一旦最後のメッセージが読み出されると、プロセッサ・マーク装置620は、「書込可能」状態に切り換わり、入力空間が新しいメッセージを受信するのに利用可能であることを示す。プロセッサは、次に、その要求を入力空間616内にコピーし、要求が入力空間の中にコピーされたことを示すためにプロセッサ・マーク装置620に書き込むことができる。プロセッサ・マーク装置620に書き込む行為は、プロセッサ・マーク装置が「書込不能」になる原因となる。
【0046】
プロセッサ・マーク装置620のこの変化は、読み出されるデータが入力空間616に存在することをプロクシーに警告する。プロクシーは、そのデータを入力空間から読み、次に、その入力空間のデータが配送のために受領されたことを示すためにプロクシー・マーク装置622を読む。プロクシー・マーク装置622を読む行為は、プロクシー・マーク装置が再び「書込可能」になる原因となる。プロクシー606は、送信されるメッセージを有する次の入力空間を選択し、以下同様である。
【0047】
プロクシー606からプロセッサ601へのデータの転送は、いくらか類似の方法で処理される。プロクシーは、プロセッサ・マーク装置620を検査することにより、出力空間618が使用可能か否かを最初に判断する必要がある。プロセッサ・マーク装置が「書込可能」状態の場合、プロクシーは、出力空間618内にデータを書き込み、データが出力空間内に書き込まれたことを示すためにプロクシー・マーク装置622に書き込むことができる。プロクシー・マーク装置に書き込むことは、出力スロットに対応するプロセッサ・マーク装置620を「読出可能」にさせ、出力空間から読み出されるデータが利用可能であることをプロセッサ601に警告する。
【0048】
図7は、本発明の1つの実施形態による複数の「ウェブ」サーバ600と実行サーバ608,610、及び、612とを有するクライアントサーバシステム100での例示的なデータフローを示す処理700を描いている。1つの実施形態においては、実行サーバは、「ウェブ」サーバ600に関連して上記で説明したものと実質的に同じ構成を有する。代替的に、実行サーバは、実行サーバ112(図2)に関連して上記で説明したものと実質的に同じ構成を有してもよい。
【0049】
処理700は、「ウェブ」サーバ110と実行サーバ112との代わりに「ウェブ」サーバ600と実行サーバ608、610、及び、612とが使用されることを除けば、図1に示すクライアントサーバシステムを用いて説明される。処理は、ブラウザ102がサーバ104に対して要求を出すことで始まる(段階702)。そのような要求の一例は、「my.yahoo.com.」などの特定の「ウェブ」ページを指定するURLであり、この場合、完全に適格なURLは、「http://my.yahoo.com/」であろう。ドメイン名「my.yahoo.com」は、サーバシステム104のための実アドレスを決めるためにネームサーバ108に提出される。ネームサーバ108は、サーバシステム104内の適当な「ウェブ」サーバのインターネットプロトコル(IP)アドレスをクライアントに送り返す(段階704)。ネームサーバ108は、負荷を多くの「ウェブ」サーバ600に亘って均等に分配するために、複数の「ウェブ」サーバ600のIPアドレスをラウンドロビン方式で送り返してもよい。ネームサーバは、「ウェブ」サーバ600のIPアドレスを送り返すために他の方法を用いてもよい。
【0050】
実IPアドレスを受信すると、ブラウザは、「ウェブ」サーバの適当なプロセッサ601へURLを提出する(段階706)。「ウェブ」サーバがそのルートディレクトリに対するURLを受信した時、「ウェブ」サーバは、このURLをユーザのカスタム要約ペ−ジに対する要求として解釈する。一般に、ユーザのアイデンティティは、上記で説明した通り、URLからではなく、ブラウザ102によって提供される「クッキー」から判断される。
【0051】
プロセッサ601がクライアントの要求(「第1要求」)に対する回答を作り出すために、一般に、プロセッサは、複数の実行サーバからのデータを要求する必要がある。そのような要求データの例としては、株式相場、スポーツ、ニュース、電子メール、及び、バナー広告を含んでもよい。プロセッサ601は、第2要求すなわちプロセッサ要求を共用メモリ604へ送り、このプロセッサ要求は、そのプロセッサに割り当てられた入力スロット616に記憶される。プロセッサ601は、そのスロットに対応するプロセッサ・マーク装置に書き込み、それによってそのマーク装置を「書込可能」から「書込不能」に変更する。その結果、プロクシー606は、スロット内のプロセッサ要求の存在に関して警告され、そのプロセッサ要求を検索する(段階708)。
【0052】
プロセッサ要求は、ブラウザが要求するように「My Yahoo!」ページをまとめるために「ウェブ」サーバ602が必要とする様々な種類のデータを示す情報(例えば、ニュース、株式相場、天候、及び、スポーツなどに関する情報)を含む。本明細書で用いられる時、プロセッサ要求又は要求は、第2構成要素による特定行為を開始するために第1構成要素から第2構成要素に変換される任意の情報又はメッセージのことを意味する。要求は、パケットの形態や他の形態をとる場合がある。
【0053】
プロセッサ要求を受信すると、「ウェブ」サーバは、通常、「My Yahoo!」ページを作り出すためにプロクシー606によって1つ又はそれ以上の実行サーバへ送信される、複数のプロクシー要求すなわち第3要求を作り出す(段階710)。プロクシー要求は、一度に1つずつ適当な宛先ノードすなわち実行サーバのプロセッサへ送信される。プロクシー要求は、必要とされる回答データの順序に大体従って送られるので、「My Yahoo!」ページを作り出すために最初に必要なデータは、プロセッサによって最初に受信される可能性が高い。
【0054】
例えば実行サーバ608である実行サーバは、プロクシー要求を受信して、その要求を送り出したプロセッサ601へ回答を送り返す(段階712)。この回答は、プロクシー要求が送られた全ての実行サーバから実質的に全ての要求データが受信されるまでメモリ603に記憶される。ある場合には、実行サーバからの回答データは、様々なネットワーク経路及び実行サーバが受ける負荷が一様でないためにバラバラな順序でプロセッサに到達し得る。全ての回答を受信すると、「ウェブ」サーバのプロセッサは、受信データを結合して適当なHTMLファイルを作り出す(段階714)。プロセッサは、次に、ブラウザが「My Yahoo!」ページを表示することができるように、HTMLファイルをクライアントへ送信する(段階716)。
【0055】
本明細書で用いる場合、「実施形態」と「実装」という用語は、互換的に使用されている。従って、どちらかの用語が本発明のより広い又はより狭い態様を意味すると解釈されてはならない。
上記の開示内容を検討すると、本発明の多くの変形が当業者には明らかになるであろう。従って、本発明の範囲は、上記の記述に関して判断されるのではなく、その代わりに、添付請求項と共にその等価事項の全範囲に関して判断されなければならない。
【図面の簡単な説明】
【図1】本発明の1つの実施形態によるクライアントサーバシステムの概略図である。
【図2】図1のクライアントサーバシステムの2つの例示的なサーバの概略図である。
【図3A】本発明の1つの実施形態によるプロセッサ・マーク装置の模式的表示を示す図である。
【図3B】本発明の1つの実施形態によるプロクシー・マーク装置の模式的表示を示す図である。
【図4】本発明の1つの実施形態による図1のクライアントサーバシステムにおけるデータフロー処理の流れ図である。
【図5】本発明の1つの実施形態による複数の実行サーバに結合された「ウェブ」サーバの概略図である。
【図6A】本発明の別の実施形態による複数の実行サーバに結合された「ウェブ」サーバの概略図である。
【図6B】本発明の1つの実施形態による「ウェブ」サーバの概略図である。
【図7】本発明の1つの実施形態による図6Aのクライアントサーバシステムにおけるデータフロー処理の流れ図である。
【符号の説明】
100 クライアントサーバシステム
102 クライアント(又は、ブラウザ)
104 サーバシステム
106 インターネット
108 ネームサーバ
110 「ウェブ」サーバ(クライアント/サーバ)
112 実行サーバ(クライアント/サーバ)
114 リンク

Claims (17)

  1. 第1のプロクシー、複数の第1のプロセス、各々が前記複数の第1プロセスのうちの1つに割り当てられてその割り当てられた第1プロセスによって送信又は受信される第1のデータを記憶するように構成された複数の第1のスロットを有する第1の共用メモリ、前記第1の共用メモリのそれぞれの第1のスロットがそれぞれ関連する複数のプロセス・仮想デバイスドライバ、及び前記第1の共用メモリのそれぞれの第1のスロットがそれぞれ関連する複数のプロクシー・仮想デバイスドライバを有し、それぞれのプロセス・仮想デバイスドライバは前記プロクシー・仮想デバイスドライバの1つと調整して前記第1の共用メモリの前記第1のスロットの1つに入ったり出たりするデータフローを制御するように構成されている第1のクライアントと、
    第2のプロクシー、複数の第2のプロセス、及び前記複数の第2プロセスのうちの1つに割り当てられてその割り当てられた第2プロセスによって送信又は受信される第2のデータを記憶するように構成された複数の第2のスロットを有する第2の共用メモリを有するサーバと、
    を含み、
    前記第1プロクシー及び第2プロクシーは、互いの通信リンクを形成するように構成され、
    前記第1のプロクシー及び前記第2のプロクシーは、前記第1のデータ及び前記第2のデータを前記通信リンクを介して交換し、前記複数の第1のプロセスが前記複数の第2のプロセスと通信できるようにし、
    前記第1のプロクシー及び前記複数の第1のプロセスが、前記第1のプロセスの所定のプロセスに割り当てられた前記第1のスロットに関連する前記プロセス・仮想デバイスドライバの制御のもとで、前記所定のプロセスに割り当てられた前記第1のスロットに対して読み書きを行う前記第1のプロセスの前記所定のプロセスによって、前記所定のプロセスに割り当てられた前記第1のスロットとデータを交換することを特徴とする通信システム。
  2. 前記第1クライアントのクライアントである第2のクライアントを更に含み、
    前記第1のクライアントは、「ウェブ」サーバであり、前記サーバは、実行サーバである、
    ことを特徴とする請求項1に記載の通信システム。
  3. 前記第1クライアントは、「ウェブ」サーバであり、前記第2クライアントは、ブラウザであることを特徴とする請求項2に記載の通信システム。
  4. 複数の前記第1クライアントと複数の前記サーバとが存在することを特徴とする請求項1に記載の通信システム。
  5. 第1のプロクシー、第1の共用メモリ、及び、複数の第1のプロセスを有する第1のクライアントと、第2のプロクシー、第2の共用メモリ、及び、複数の第2のプロセスを有するサーバとを有する通信システムにおいてデータを転送する方法であって、
    複数の第1プロセスのうちの1つの内部で、第2プロセスのうちの1つへ送信される要求を発生させる段階と、
    各々が前記第1プロセスのうちの1つに割り当てられた複数の第1のスロットを有する第1共用メモリの中に、前記要求を発生した第1プロセスに割り当てられた前記第1スロットに記憶される前記要求を記憶する段階と、
    前記第1スロットに記憶されたデータを第1プロクシーを通じてサーバへ送信する段階と、
    前記第1プロクシーと通信リンクを確立した第2プロクシーを通じて前記送信要求を受信する段階と、
    各々が前記第2プロセスのうちの1つに割り当てられた複数の第2のスロットを有する第2共用メモリの中に、前記データが向けられた前記第2プロセスに割り当てられた前記第2スロットに記憶される前記受信要求を記憶する段階と、
    前記第2スロットに記憶された前記データを読み出す段階と、
    を含み、
    前記第1のスロットのそれぞれは第1入力空間を含み、前記第1のスロットに記憶された前記要求は前記第1のスロットの前記第1入力空間中に記憶され、
    前記第1のクライアントは、複数のプロセス・仮想デバイスドライバをさらに含み、前記プロセス・仮想デバイスドライバのそれぞれは前記第1入力空間の1つに割り当てられており、
    一旦前記データが前記第1入力空間に記憶されると、前記第1入力空間がデータを包含することを示すため、前記プロセス・仮想デバイスドライバの状態を変更する段階、をさらに含み、
    前記第2のスロットのそれぞれは第2入力空間を含み、前記第2のスロットに記憶された前記要求は前記第2のスロットの前記第2出力空間中に記憶され、
    前記サーバは、複数のプロクシー・仮想デバイスドライバをさらに含み、前記プロクシー・仮想デバイスドライバのそれぞれは前記第2出力空間の1つに割り当てられており、
    一旦前記データが前記第2出力空間に記憶されると、前記第2出力空間がデータを包含することを示すため、前記プロクシー・仮想デバイスドライバの状態を変更する段階、をさらに含むことを特徴とする方法。
  6. 前記通信システムは、前記第1クライアントのクライアントである第2のクライアントを更に含み、
    前記サーバに送信される前記要求は、前記第2クライアントによって前記第1クライアントへ送信された要求に応答して生み出される、
    ことを特徴とする請求項5に記載の方法。
  7. 前記第1クライアントは、「ウェブ」サーバであり、前記第2クライアントは、ブラウザであることを特徴とする請求項6に記載の方法。
  8. 複数の前記第1クライアントと複数の前記サーバとが存在することを特徴とする請求項5に記載の方法。
  9. 前記要求を受信した前記第2プロセス内で前記要求に対する返事を発生させる段階と、
    各々が前記第2プロセスのうちの1つに割り当てられた複数の第2スロットを有する前記第2共用メモリの中に前記要求を記憶させる段階と、
    を更に含み、
    前記返事は、その返事を発生した第2プロセスに割り当てられた前記第2スロットに記憶され、
    前記第2スロットに記憶された前記返事を前記第2プロクシーを通じて前記第1クライアントへ送信する段階と、
    前記送信された返事を前記第1プロクシーを通じて受信する段階と、
    前記要求を送信した前記第1プロセスに割り当てられた前記第1スロットに記憶される前記受信データを前記第1共用メモリの中に記憶する段階と、
    前記第1スロットに記憶された前記返事を読み出す段階と、
    を更に含むことを特徴とする請求項5に記載の方法。
  10. 複数のプロセスがその上で実行される通信システムにおいてデータを送信する方法であって、
    通信システム上で実行されるプロセスのうちの1つを使用してデータを発生させる段階と、
    前記データを共用メモリの中に記憶する段階と、
    前記記憶データを前記通信システムに設けられたプロクシーを使用して宛先ノードへ送信する段階と、
    を含み、
    前記通信システムはクライアントまたはサーバであり、
    前記共用メモリは複数のスロットを有し、それぞれのスロットは、前記プロセスの1つに割り当てられ、前記共用メモリに記憶された前記データは、前記データを生成した前記プロセスに割り当てられた前記スロット中に記憶され、
    前記通信システムは、数のプロセス・仮想デバイスドライバを含み、前記複数のスロットのそれぞれのスロットは前記複数のプロセス・仮想デバイスドライバの1つに関連するものであり、前記通信システムは、複数のプロクシー・仮想デバイスドライバを含み、前記複数のスロットのそれぞれは前記複数のプロクシー・仮想デバイスドライバの1つに関連するものであり、前記複数のプロセス・仮想デバイスドライバのそれぞれは、前記複数のプロクシー・仮想デバイスドライバの1つと調整して前記複数のスロットの1つに入ったり出たりするデータフローを制御するように構成されていることを特徴とする方法。
  11. 通信ネットワークに結合されたブラウザシステムと、
    前記通信ネットワークに結合され、複数の第1のプロセスと、各々が前記複数の第1プロセスのうちの1つに割り当てられてその割り当てられた第1プロセスによって送信された又は受信されるデータを記憶するように構成された複数の第1のスロットを有する第1の共用メモリ及び第1のプロクシーを有する第1のプロクシーグループとを有し、前記第1プロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと1つのプロクシー・仮想デバイスドライバとを更に含む第1のサーバシステムと、
    前記通信ネットワークに結合され、複数の第2のプロセスと、第2の共用メモリ及び第2のプロクシーを有する第2のプロクシーグループとを有する第2のサーバシステムと、を含み、
    前記第1プロクシー及び第2プロクシーは、互いの通信リンクを形成するように構成される、
    ことを特徴とする通信システム。
  12. 前記第1サーバシステムは、「ウェブ」サーバであり、前記第2サーバシステムは、実行サーバであることを特徴とする請求項11に記載の通信システム。
  13. 前記第1スロットの各々は、
    前記第1プロクシーを通じて宛先ノードへ送信されるデータを一時的に記憶する第1の入力空間と、
    前記第1プロクシーを通じて発信元ノードから受信されたデータを一時的に記憶する第1の出力空間と、
    を含むことを特徴とする請求項11に記載の通信システム。
  14. 複数の前記第1サーバシステムと複数の前記第2サーバシステムとが存在することを特徴とする請求項11に記載の通信システム。
  15. 前記第1サーバシステムは、複数のプロクシーグループを含み、
    前記プロクシーグループの各々は、そのプロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと1つのプロクシー・仮想デバイスドライバとを含む、ことを特徴とする請求項11に記載の通信システム。
  16. 前記第2共用メモリは、各々が前記複数の第2プロセスのうちの1つに割り当てられてその割り当てられた第2プロセスによって送信された又は受信されるデータを記憶するように構成された複数の第2のスロットを有し、
    前記第2サーバシステムは、前記第2プロクシーグループのデータフローを制御するために複数のプロセス・仮想デバイスドライバと1つのプロクシー・仮想デバイスドライバとを更に含む、
    ことを特徴とする請求項11に記載の通信システム。
  17. 複数のプロセスと、
    通信システム内の別のノードとの通信リンクを提供し、共用メモリとプロクシーとを有するプロクシーグループであって、前記共用メモリは複数のスロットを有し、前記複数のスロットのそれぞれは前記複数のプロセスの1つと関連するプロクシーグループと、
    複数のプロセス・仮想デバイスドライバであって、前記複数のスロットのそれぞれが前記複数のプロセス・仮想デバイスドライバの1つと関連する複数のプロセス・仮想デバイスドライバと、
    複数のプロクシー・仮想デバイスドライバであって、前記複数のスロットのそれぞれが前記複数のプロクシー・仮想デバイスドライバの1つと関連する複数のプロクシー・仮想デバイスドライバと、を含み、
    前記複数のプロセス・仮想デバイスドライバのそれぞれは、前記複数のプロクシー・仮想デバイスドライバの1つと調整して前記複数のスロットの1つに出入りするデータフローを制御するように構成されていることを特徴とする、通信システム内のサーバ。
JP2002016384A 2001-01-25 2002-01-25 高性能クライアントサーバ通信システム Expired - Lifetime JP4504609B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/770,762 US7325030B2 (en) 2001-01-25 2001-01-25 High performance client-server communication system
US09/770762 2001-01-25

Publications (2)

Publication Number Publication Date
JP2002288058A JP2002288058A (ja) 2002-10-04
JP4504609B2 true JP4504609B2 (ja) 2010-07-14

Family

ID=25089606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002016384A Expired - Lifetime JP4504609B2 (ja) 2001-01-25 2002-01-25 高性能クライアントサーバ通信システム

Country Status (5)

Country Link
US (1) US7325030B2 (ja)
EP (1) EP1227638B1 (ja)
JP (1) JP4504609B2 (ja)
KR (1) KR100856515B1 (ja)
DE (1) DE60235666D1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325030B2 (en) 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
US7581230B2 (en) * 2001-02-06 2009-08-25 Siebel Systems, Inc. Adaptive communication application programming interface
US7320023B2 (en) * 2001-02-23 2008-01-15 Sun Microsystems, Inc. Mechanism for caching dynamically generated content
US8601492B2 (en) * 2001-03-31 2013-12-03 Siebel Systems, Inc. User interface for multi-channel communication
US20030206192A1 (en) * 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
US7177931B2 (en) * 2001-05-31 2007-02-13 Yahoo! Inc. Centralized feed manager
US8103713B2 (en) * 2001-10-09 2012-01-24 Jade Acquisition Corporation System and method for managing service interactions
US8091042B2 (en) 2001-11-15 2012-01-03 Siebel Systems, Inc. Apparatus and method for displaying selectable icons in a toolbar for a user interface
US7103671B2 (en) * 2002-03-14 2006-09-05 Yahoo! Inc. Proxy client-server communication system
KR100483741B1 (ko) * 2002-10-31 2005-04-19 주식회사 케이티프리텔 무선 인터넷 서비스를 위한 다중 프록시 게이트웨이 연동방법
US7788536B1 (en) 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
KR100929852B1 (ko) * 2007-09-20 2009-12-04 한국전자통신연구원 공유 메모리를 이용한 가상 기계 상의 응용프로그램 간통신 인터페이스 장치 및 그 방법
US8527991B2 (en) * 2007-09-27 2013-09-03 Proximal System Corporation Apparatus, system, and method for cross-system proxy-based task offloading
JP5520462B2 (ja) * 2008-09-02 2014-06-11 ヤフー株式会社 メモリ管理サーバ、方法及びプログラム
KR20120134287A (ko) * 2011-06-02 2012-12-12 주식회사 비씨클라우드 동적 웹 라우팅 방법
JP7147367B2 (ja) * 2018-08-23 2022-10-05 富士通株式会社 制御装置及び制御プログラム
CN111949292B (zh) * 2020-07-30 2023-03-21 锐捷网络股份有限公司 一种热补丁装载方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069391A (ja) * 1996-07-02 1998-03-10 Sun Microsyst Inc マルチタスク環境において動作するアプリケーションのための汎用通信機構
JPH10177548A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd セッション管理システム
JPH10334058A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk オンラインシステムと負荷分散方式
JPH1196115A (ja) * 1997-09-22 1999-04-09 Toshiba Corp クライアントサーバ間の会話処理装置及び方法並びに記録媒体
JP2000132521A (ja) * 1998-08-12 2000-05-12 Concord Solutions 異なるソ―ス間でのデ―タ項目移動および階層オブジェクト指向表現のための方法および装置
WO2000072167A1 (en) * 1999-05-20 2000-11-30 Hwang Ivan Chung Shung A method and apparatus for implementing a workgroup server array

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2702579B1 (fr) 1993-03-12 1995-05-24 Bull Sa Dispositif de communication entre au moins un client et au moins un serveur, procédé d'utilisation du dispositif et utilisation du dispositif.
DE4342586A1 (de) * 1993-12-14 1995-06-22 Bosch Gmbh Robert Anzeigeeinrichtung für elektrische Steuergeräte
US5754854A (en) 1994-11-14 1998-05-19 Microsoft Corporation Method and system for providing a group of parallel resources as a proxy for a single shared resource
US5850517A (en) 1995-08-31 1998-12-15 Oracle Corporation Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server
JPH09212397A (ja) 1996-01-31 1997-08-15 Toshiba Corp ファイル読み出し方法
US5867661A (en) 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5881230A (en) * 1996-06-24 1999-03-09 Microsoft Corporation Method and system for remote automation of object oriented applications
US6760903B1 (en) * 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US5950195A (en) 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US5983350A (en) 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US5870559A (en) 1996-10-15 1999-02-09 Mercury Interactive Software system and associated methods for facilitating the analysis and management of web sites
US5905872A (en) 1996-11-05 1999-05-18 At&T Corp. Method of transferring connection management information in world wideweb requests and responses
US5987506A (en) 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6205489B1 (en) * 1999-01-05 2001-03-20 Whowhere, Inc. Method for providing an internet protocol address with a domain name server
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6006268A (en) 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US5991810A (en) 1997-08-01 1999-11-23 Novell, Inc. User name authentication for gateway clients accessing a proxy cache server
US6567861B1 (en) * 1997-09-17 2003-05-20 International Business Machines Corporation Method and apparatus for remotely running objects using data streams and/or complex parameters
US5974566A (en) 1997-10-07 1999-10-26 International Business Machines Corporation Method and apparatus for providing persistent fault-tolerant proxy login to a web-based distributed file service
US5991756A (en) 1997-11-03 1999-11-23 Yahoo, Inc. Information retrieval from hierarchical compound documents
JP3665460B2 (ja) 1997-12-05 2005-06-29 富士通株式会社 分散自律協調型の応答時間チューニングによる経路選択システム、方法、及び記録媒体
US6148336A (en) 1998-03-13 2000-11-14 Deterministic Networks, Inc. Ordering of multiple plugin applications using extensible layered service provider with network traffic filtering
US6321336B1 (en) 1998-03-13 2001-11-20 Secure Computing Corporation System and method for redirecting network traffic to provide secure communication
AU3109399A (en) * 1998-03-23 1999-10-18 Claude Cajolet Application program interfaces in an operating system
US6148337A (en) 1998-04-01 2000-11-14 Bridgeway Corporation Method and system for monitoring and manipulating the flow of private information on public networks
JP3707927B2 (ja) 1998-04-14 2005-10-19 富士通株式会社 サーバスループット予約システム
US6073175A (en) 1998-04-27 2000-06-06 International Business Machines Corporation Method for supporting different service levels in a network using web page content information
US6457063B1 (en) 1998-04-30 2002-09-24 Sun Microsystems, Inc. Method, apparatus & computer program product for dynamic administration, management and monitoring of daemon processes
US6311216B1 (en) 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6446109B2 (en) 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
JP2000057041A (ja) 1998-08-11 2000-02-25 Hitachi Ltd プロキシサーバ及びlanシステム
US6314459B1 (en) 1998-08-13 2001-11-06 U.S. Philips Corporation Home-network autoconfiguration
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6507577B1 (en) 1998-11-12 2003-01-14 Nortel Networks Limited Voice over internet protocol network architecture
US6557056B1 (en) * 1998-12-30 2003-04-29 Nortel Networks Limited Method and apparatus for exchanging data between transactional and non-transactional input/output systems in a multi-processing, shared memory environment
EP1018689A3 (en) * 1999-01-08 2001-01-24 Lucent Technologies Inc. Methods and apparatus for enabling shared web-based interaction in stateful servers
US6625624B1 (en) * 1999-02-03 2003-09-23 At&T Corp. Information access system and method for archiving web pages
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6757250B1 (en) 1999-04-12 2004-06-29 Mindspeed Technologies, Inc. Methods and apparatus for data communications through packet networks
US6931600B1 (en) 1999-05-07 2005-08-16 Autodesk, Inc. Integrating into an application objects that are provided over a network
US6594671B1 (en) 1999-06-14 2003-07-15 International Business Machines Corporation Separating privileged functions from non-privileged functions in a server instance
US6597699B1 (en) 1999-09-28 2003-07-22 Telefonaktiebolaget Lm Ericsson (Publ) Quality of service management in a packet data router system having multiple virtual router instances
DE60033615T2 (de) 1999-10-21 2007-10-31 International Business Machines Corp. Verfahren und System, um das Verteilen von IP-Datagrammen auf mehrere Server gemäß einer definierten Strategie zu erzwingen
US6792463B1 (en) 1999-10-21 2004-09-14 International Business Machines Corporation System, method and program product for providing invisibility to a proxy-server
US7111079B2 (en) 2000-02-23 2006-09-19 Koninklijke Philips Electronics, N.V. Architecture of a bridge between a non-IP network and the web
US6865151B1 (en) 2000-06-28 2005-03-08 Nortel Networks Limited Methods and systems for optimizing data transmission in networks
US20020078371A1 (en) * 2000-08-17 2002-06-20 Sun Microsystems, Inc. User Access system using proxies for accessing a network
US20020099829A1 (en) 2000-11-27 2002-07-25 Richards Kenneth W. Filter proxy system and method
US20020078164A1 (en) 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US7325030B2 (en) 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
US7089558B2 (en) 2001-03-08 2006-08-08 International Business Machines Corporation Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
BR0201115A (pt) 2002-04-02 2005-02-22 Coppe Ufrj Memória cooperativa distribuìda colapsada para sistemas de mìdia-sob-demanda interativa e escalável

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069391A (ja) * 1996-07-02 1998-03-10 Sun Microsyst Inc マルチタスク環境において動作するアプリケーションのための汎用通信機構
JPH10177548A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd セッション管理システム
JPH10334058A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk オンラインシステムと負荷分散方式
JPH1196115A (ja) * 1997-09-22 1999-04-09 Toshiba Corp クライアントサーバ間の会話処理装置及び方法並びに記録媒体
JP2000132521A (ja) * 1998-08-12 2000-05-12 Concord Solutions 異なるソ―ス間でのデ―タ項目移動および階層オブジェクト指向表現のための方法および装置
WO2000072167A1 (en) * 1999-05-20 2000-11-30 Hwang Ivan Chung Shung A method and apparatus for implementing a workgroup server array
JP2003500742A (ja) * 1999-05-20 2003-01-07 イヴァン, チョン−ション ホワン, 作業グループサーバー実施の方法と装置

Also Published As

Publication number Publication date
EP1227638A3 (en) 2004-04-14
EP1227638B1 (en) 2010-03-17
US20020099768A1 (en) 2002-07-25
US7325030B2 (en) 2008-01-29
DE60235666D1 (de) 2010-04-29
KR20020062850A (ko) 2002-07-31
JP2002288058A (ja) 2002-10-04
KR100856515B1 (ko) 2008-09-04
EP1227638A2 (en) 2002-07-31

Similar Documents

Publication Publication Date Title
US12107911B2 (en) System providing faster and more efficient data communication
JP4504609B2 (ja) 高性能クライアントサーバ通信システム
US6311216B1 (en) Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6377991B1 (en) Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6341311B1 (en) Directing data object access requests in a distributed cache
US6360262B1 (en) Mapping web server objects to TCP/IP ports
US6490615B1 (en) Scalable cache
US8032586B2 (en) Method and system for caching message fragments using an expansion attribute in a fragment link tag
US7730154B2 (en) Method and system for fragment linking and fragment caching
US6253234B1 (en) Shared web page caching at browsers for an intranet
US6122666A (en) Method for collaborative transformation and caching of web objects in a proxy network
US5944793A (en) Computerized resource name resolution mechanism
US6892218B2 (en) Extending network services using mobile agents
US20090327460A1 (en) Application Request Routing and Load Balancing
US7587515B2 (en) Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user
US20030188009A1 (en) Method and system for caching fragments while avoiding parsing of pages that do not contain fragments
US20030191812A1 (en) Method and system for caching role-specific fragments
US20030188021A1 (en) Method and system for processing multiple fragment requests in a single message
US6865605B1 (en) System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
US7689430B2 (en) Access to web services
JP3899076B2 (ja) 一時的ネットワーク
AU777806B2 (en) Method and apparatus for anonymous subject-based addressing
US7103671B2 (en) Proxy client-server communication system
JP2002259259A (ja) 画像データ通信システム、画像データ通信方法および記憶媒体
KR100556716B1 (ko) 네트워크를 통해 서로 연결된 복수개의 단말들 간의 분산정보 공유 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080922

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090806

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100423

R150 Certificate of patent or registration of utility model

Ref document number: 4504609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term