JP2002517857A - 二方向的なプロセス対プロセスのバイトストリームのプロトコル - Google Patents

二方向的なプロセス対プロセスのバイトストリームのプロトコル

Info

Publication number
JP2002517857A
JP2002517857A JP2000553893A JP2000553893A JP2002517857A JP 2002517857 A JP2002517857 A JP 2002517857A JP 2000553893 A JP2000553893 A JP 2000553893A JP 2000553893 A JP2000553893 A JP 2000553893A JP 2002517857 A JP2002517857 A JP 2002517857A
Authority
JP
Japan
Prior art keywords
request
response
message
client system
messages
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.)
Granted
Application number
JP2000553893A
Other languages
English (en)
Other versions
JP4537579B2 (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 JP2002517857A publication Critical patent/JP2002517857A/ja
Application granted granted Critical
Publication of JP4537579B2 publication Critical patent/JP4537579B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Discharge-Lamp Control Circuits And Pulse- Feed Circuits (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Measuring Volume Flow (AREA)

Abstract

(57)【要約】 クライアントのシステムはメッセージ(710)を記憶し、該メッセージをサーバのシステムへ送出する。メッセージはファイアウォールを横断できるプロトコルに従いフォーマット化された(702)要請に包含される。サーバのシステムもまた、メッセージを記憶し該メッセージをクライアントのシステムへ送出する。サーバのシステムは、クライアントのシステム(740)からの第1の要請および第2の要請を待機する。第1の要請が受理され特定の数のメッセージがサーバのシステムに蓄積されていると、サーバのシステムは第の要請に対応する応答を送出する。第2の要請が受理されると(740)、サーバのシステムは、メッセージが蓄積されていなくても第1の要請に対応する応答(760)を送出する。クライアントのシステムが要請を送出する次の時機において、要請は、最後の応答においてクライアントのシステムはどのメッセージをサーバのシステムから受理したかの表示を包含する。

Description

【発明の詳細な説明】
【0001】 発明の背景 発明の分野 本発明は、分散されたコンピュータのプログラムの分野に関する。より詳しく
は、本発明は二方向的なプロセス対プロセスのバイトストリームのプロトコルに
関する。
【0002】 背景 コンピュータ技術の進歩とインターネットの出現によって、コンピュータ・ユ
ーザは世界中に分散したポイントからコンピュータ・プログラムを集合的に実行
できるようになった。分散型プログラムの例には、コンピュータ・チャットルー
ム、会議プログラム、およびゲーム・プログラムが含まれ、ここでは複数のコン
ピュータ・ユーザがリアルタイムに情報のインタラクティブな交換が可能である
。例えば、コンピュータによるチャット(chat)のルームによって多数の分
散したユーザが個々の分散ユーザの1人がタイプするのと同時に会話テキストを
見ることができ、会議アプリケーションでは分散ユーザが集合的に1つのテキス
ト文書の草案を作成したり編集したりすることができ、ゲーム・プログラムでは
分散ユーザが仮想ゲームの環境で競争または協力することができる。
【0003】 分散型プログラムを実行するためには、2つの個別プロセスが両方向バイト・
ストリームを維持する必要がある。プロセスとは、コンピュテーションのアクテ
ィブな実行を指し、広くタスク、ジョブ、またはスレッドとも呼ばれる。分散型
プログラミングはしばしばクライアント・サーバ・パラダイムに基づき、ここで
はクライアント・システムで実行するプロセスはサーバ・システムで実行するプ
ロセスと通信しなければならない。
【0004】 クライアント・サーバのパラダイムにおいては、クライアント・システムはサ
ーバ・プロセスへのアクセスとサーバ・プロセスからの情報を要求する。クライ
アント・プロセスおよびサーバ・プロセスは同じコンピュータ・システムで実行
することもでき、別個の通信的に接続されたシステムで実行することもできる。
サーバ・システムがインターネットのようなネットワークによってアクセス可能
な場合、世界各地の多数のクライアント・システムがサーバ・システムに要求す
ることができる。
【0005】 クライアントとサーバの間の通信はしばしば各種ネットワーク内あるいはその
間の各種メディアによるデータの伝送が関与する。このような通信メディアはし
ばしば信頼性が低い。例えば、インターネットはスケールがグローバルで、無数
の個々のコンピュータおよび接続に依存している。インターネットのいずれかの
部分の故障は予測または防止が不可能で、インターネットを本質的に信頼性の低
いものにしている。転送制御プロトコル/インターネット・プロトコル(TCP/IP
)は、インターネットの本質的な低信頼性に拘らず、サーバを信頼性高く転送す
るよう設計された多数の通信プロトコルから構成される。一般的に、TCP/IPはデ
ータの到着を検証し、到着しないセグメントを自動的に再転送する。インターネ
ットで通信する大半の分散型プログラムは信頼性を確保するためTCP/IPフォーマ
ット化されたメッセージを利用している。
【0006】 信頼性に加えて、ネットワーク・ユーザにとってセキュリティが大きな問題で
ある。多くのシステムがある種のネットワーク通信を選択的にブロックするため
ファイアウォールを使っている。例えば、ほとんどのファイアウォールはTCP/IP
通信を防ぎ、分散型プログラミングに広く使われる両方向バイト・ストリームを
ブロックする。
【0007】 そのため、分散型プログラミングを利用するには、ファイアウォールを通過し
、ファイアウォールの提供するセキュリティレベルを維持し、本質的低信頼性メ
ディアで信頼できる通信を提供することができる両方向プロセス・トゥ・プロセ
ス・バイト・ストリーム・プロトコルが必要である。
【0008】 発明の概要 クライアント・システムはメッセージを保存し、サーバ・システムにメッセー
ジを送信する。メッセージはファイアウォールを通過できるプロトコルに従って
フォーマット化された要求に含まれる。そして、クライアント・システムはサー
バ・システムからの応答を待つ。応答もファイアウォールを通過できるプロトコ
ルに従ってフォーマット化される。応答は、最後の要求でサーバ・システムがク
ライアント・システムからどのメッセージを受けたかの表示も含む。クライアン
ト・システムに一定数のメッセージが蓄積されるか、応答受信までに一定の時間
が経過すると、クライアント・システムは第2の要求を送信する。
【0009】 サーバ・システムもメッセージを保存し、クライアント・システムにメッセー
ジを送信する。サーバ・システムはクライアント・システムからの第1の要求と
第2の要求を待つ。第1の要求を受け取り、特定の数のメッセージがサーバ・シス
テムに蓄積されると、サーバ・システムは第1の要求に対応する応答を送る。第2
の要求を受け取ると、サーバ・システムはメッセージが蓄積されていなくとも、
第1の要求に対応する応答を送る。応答は蓄積されたあらゆるメッセージを含む
。次回、クライアント・システムが要求を送るとき、要求はクライアント・シス
テムが最後の応答でサーバ・システムからどのメッセージを受けたかの表示を含
む。
【0010】 詳細な説明 以下の詳細な説明では、本発明を完全に理解するため多数の特定の詳細を記載
する。しかしながら、本発明はこれら特定の詳細なしに実行でき、本発明は数々
の別の実施例で実行できることが当業者には理解される。他の場合、周知の方法
、手順、コンポーネントおよび回路は詳細には説明しない。
【0011】 図1は、ファイアウォールが分散型コンピュータ・プログラムの実行と干渉す
るコンピュータ・ネットワークを示す。クライアント・システム110で実行する
プログラムは転送制御プロトコル/インターネット・プロトコル(TCP/IP)160フ
ォーマット化された通信を使ってサーバ・システム120で実行するプロセスとの
通信を妨害される。しかしながら、以下に詳細に述べるように、本発明は、ファ
イアウォールを通過できるTCP/IPタイプ通信を作成するため、大半のファイアウ
ォールに共通するループホールを利用する。
【0012】 分散型プログラミングはほぼあらゆる種類のクライアント・サーバ・インタラ
クションを含む。例えば、プロセスはサーバ・システムで実行される別のプロセ
スと通信するクライアント・システムで実行できる。あるアプリケーションでは
、クライアント・プロセスはアプレットと呼ばれ、サーバ・プロセスはサーブレ
ットと呼ばれる。2つのプロセスの間の通信は、分散型プログラミングからなる
。複数のクライアント・プロセスが1つのサーバ・プロセスと同時にインタラク
トできる。
【0013】 図示の例では、クライアント・システム110およびクライアント・システム・1
45はインターネット130に接続される。インターネット130はサーバ・システム12
0を含む。ある実施例では、クライアント・システム110、クライアント・システ
ム145、およびサーバ・システム120は集合的に分散型コンピュータ・プログラム
を実行し、ここでプログラムの一部はサーバ・システム120で実行され、プログ
ラムの一部はクライアント・システムのそれぞれで実行される。本発明の教示を
除き、クライアント・システム110、サーバ・システム120、およびクライアント
・システム145は当業で周知のあらゆる数の分散型システムを表す。
【0014】 メッセージはクライアント・システムのそれぞれおよびサーバ・システム120
にインターネット130の幅広い接続によって送受信される。本発明の教示を除き
、インターネット130による通信は当業で周知の多数の方法のいずれかで実施さ
れる。分散型プログラムはあらゆる数の分散型プログラムでよく、コンピュータ
・チャットルーム、会議プログラム、およびゲーム・プログラムを含む。
【0015】 クライアント・システム110はファイアウォール140に保護され、これはTCP/IP
160フォーマット化された通信を含む通信を選択的にブロックし、大半の分散型
プログラムの実行を不可能にする。しかしながら、しばしば発生することだが、
ファイアウォール140はクライアント・システム110のユーザがインターネット13
0のウェブ・ページをブラウジングできるようにする。このためにループホール1
50が設けられ、ハイパーテキスト・トランスファー・プロトコル(HTTP)フォー
マット化されたトランザクションがファイアウォール140を通過できるようにす
る。HTTPトランザクションを用いてインターネット130のウェブページにアクセ
スする。1回のHTTPトランザクションは2部に分かれる。トランザクションの第1
部はHTTP要求で、これはクライアントしか開始できない。クライアント・システ
ムはHTTP要求を送信してウェブ・ページへのアクセスを要求する。トランザクシ
ョンの第2部はHTTP応答である。サーバ・システムにあるウェブ・ページがHTTP
応答を送り返す。
【0016】 ループホール150があっても、ファイアウォール140は一定量のセキュリティを
クライアント・システム110に提供する。すなわち、HTTPトランザクションはク
ライアント・システムしか開始できず、ファイアウォール140は外向きHTTP要求
のみ許し、外向きHTTP要求に対応する内向きHTTP応答のみ許すよう設計できる。
あらゆる数の周知のHTTPループホール付きファイアウォール・セキュリティ・シ
ステムを本発明を使って通過することができる。
【0017】 以下に詳細に述べるように、本発明はループホール150を利用してHTTPフォー
マット化された要求としてメッセージを送信し、HTTPフォーマット化された応答
としてメッセージを送り返すことで、クライアント・システム110とサーバ・シ
ステム120との間にTCP/IPのような接続を作成する。このように、本発明はファ
イアウォール140が提供するセキュリティレベルを維持しながらTCP/IPタイプ接
続を提供する。
【0018】 図2は、クライアント・システム110とファイアウォール140の1つの実施例を示
す。クライアント・システム110は図示のように接続されたクライアント・プロ
セス210、バッファ220、およびHTTPゲートウェイ230を含む。HTTPゲートウェイ2
30は当業で周知の多数のHTTPゲートウェイのいずれかを表し、クライアント・シ
ステム110がインターネット・ウェブ・ブラウジングに用いる。クライアント・
プロセス210は、クライアント・システム110で実行される分散型プログラムの一
部である。ファイアウォール140がないと、クライアント・プロセス210はTCP/IP
160を使ってサーバ・システム120と通信することができる。例えば、上記引用の
特許出願に説明する分散型プログラムは非同期TCP/IPプロトコルを利用し、ここ
ではメッセージはクライアント・システム110またはサーバ・システム120から開
始することができる。しかしながら、図示の例では、ファイアウォール140はTCP
/IP通信を妨害する。この場合、クライアント・システム110はHTTPループホール
150を介した通信に切り換えることができる。
【0019】 クライアント・システム110は複数の異なる方法のいずれかで自動的にファイ
アウォール140を認識することができる。例えば、クライアント・システム110は
TCP/IPフォーマット化された要求をサーバ・システム120に送り、サーバ・シス
テム120からの応答を求めることができる。一定のタイムフレーム内に応答を受
け取らないと、クライアント・システム110はタイムアウトになり、ループホー
ル150を介してHTTPフォーマット化された要求を送ろうとする。
【0020】 図3は、サーバ・システム120の1つの実施例を示す。サーバ・システム120は、
図示のように接続されたサーバ・プロセス310、バッファ320、およびHTTPサーバ
330を含む。1つの実施例では、HTTPサーバ330はHTTPサーバの役割を演じる専用
ソフトウェアからなるが、特に当業で周知のHTTPサーバのオーバヘッドなしに転
送にメッセージを含むよう設計される。あるいは、HTTPサーバ330はコモン・ゲ
ートウェイ・インターフェース(CGI)を持つ当業で周知の多数のHTTPサーバの
いずれかを表すことができる。ソフトウェアはCGIを使って本発明の教示に従いH
TTPトランザクションを修正することができる。
【0021】 サーバ・プロセス310はサーバ・システム120で実行する分散型プログラムの一
部である。サーバ・プロセス310はTCP/IP通信を使ってあらゆる数のクライアン
ト・システム145と通信することができる。しかしながら、ファイアウォール140
はサーバ・プロセス310がTCP/IP160を使ってクライアント・システム110と通信
することを妨害する。クライアント・システム110同様、サーバ・システム120は
複数の異なる方法のいずれかでファイアウォール140を検出することができる。
しかしながらサーバ・システム120はHTTPトランザクションを開始できないため
、クライアント・システム110からのHTTP要求を待つ。
【0022】 HTTPトランザクションは必然的にクライアントが開始する2部トランザクショ
ンであるため、HTTP通信は大半のTCP/IPフォーマット化通信よりやや遅く、面倒
になる傾向がある。そのため、分散型プログラムはTCP/IP接続をまず試すことが
多い。これに失敗すると、クライアント・システム110およびサーバ・システム1
20はTCP/IPメッセージをバッファし、メッセージのグループをバンドルで送り、
HTTPトランザクションの頻度を減らし、これによってスループットをほぼTCP/IP
接続のものまで増やす。また。インターネット接続は本質的に信頼性が低いため
、クライアント・システム110およびサーバ・システム120は送信した後もメッセ
ージを保存し続け、信頼性を確保する。メッセージは相手システムからのメッセ
ージが正しく受信されたという通知を受けて初めてそれぞれのバッファから削除
される。
【0023】 図2で、クライアント・システム110はクライアント・プロセス210からのメッ
セージをバッファ220でバッファすることによってこれら機能を実行する。そこ
から、メッセージを1つのバンドルにグループ化し、HTTPゲートウェイ230、ファ
イアウォール140のHTTPループホール150を介してサーバ・システム120に送出す
る。対応するHTTP応答をサーバ・システム120から受けると、応答はループホー
ル150を介してHTTPゲートウェイ230、ひいてはクライアント・プロセス210に戻
る。
【0024】 図3で、サーバ・システム120はサーバ・プロセス310からのメッセージをバッ
ファ320でバッファする。要求が入った後、サーバ・システム120はバッファ320
に保存されたメッセージを1つのバンドルにグループ化し、これらをHTTPサーバ3
30を介してHTTPフォーマット化応答に含める。要求と共に到着したメッセージは
サーバ・プロセス310に与えられる。
【0025】 各HTTPトランザクションは要求と対応する応答からなり、HTTPトランザクショ
ンはクライアント・システムが開始するため、両システムは通信の回線を開いて
おくため互いのシステムに依存する。すなわち、サーバ・システム120は要求を
受け取った後にのみ応答できる。HTTP接続が両方向TCP/IP接続と同様に動作して
、クライアント・システム110とサーバ・システム120の両方が転送を開始できる
ようにするには、クライアント・システム110とサーバ・システム120が協力して
要求をそのままにしておかなければならない。
【0026】 ある実施例では、クライアント・システム110はバッファ220に最大バンドルサ
イズまで保存されたあらゆるメッセージを含む第1の要求を送る。しかしながら
、クライアント・システム110はサーバ・システム120からの応答を単に待ってい
るのではない。その代わり、クライアント・システム110は追加メッセージがあ
れば保存を続け、3つのイベントのうち1つが発生すると別の要求を送る。
【0027】 まず、一定量の追加メッセージがバッファ220に蓄積されると、クライアント
・システム110は追加メッセージを含む第2の要求を送る。例えば、最大バンドル
サイズを10個のメッセージとして、追加メッセージが蓄積するとすぐ、クライア
ント・システム110はこの10個の追加メッセージを含む第2の要求を送ることがで
きる。
【0028】 第2に、応答を受信せずに一定の時間が経過すると、クライアント・システム1
10はあらゆる保存メッセージを含む追加メッセージが蓄積されていなくとも、第
2の要求を送る。例えば、信頼性の低いネットワークで要求が失われると、応答
は受信されることはない。クライアント・システム110は例えば1秒でタイムアウ
トになり、エラーが発生したと想定する。第1の要求に5個のメッセージが含まれ
ており、クライアント・システム110がタイムアウトになる前にさらに3個のメッ
セージが蓄積された場合、クライアント・システム110は8個のメッセージ全てを
含む第2の要求を送る。
【0029】 第3に、クライアント・システム110がサーバ・システム120から応答を受ける
と、クライアント・システム110は第2の要求を送る。この第3の場合、利用でき
る帯域や蓄積された追加メッセージの数により、クライアント・システム110は
サーバ・システム120から応答を受け次第、第2の要求を送ることができ、または
クライアント・システム110は短期間遅延してさらにメッセージを蓄積すること
ができる。
【0030】 トランザクションのサーバ側では、サーバ・システム120は第1の要求の受信を
待たなければならない。サーバ・システム120は待っている間、外向きのメッセ
ージを保存する。サーバ・システム120が第1の要求を受信すると、サーバ・シス
テム120は直ちに応答しないことがある。まず、一定数のメッセージが蓄積され
ている場合、あるいは第1の要求を受けた後のあるポイントで一定数のメッセー
ジが蓄積されている場合、サーバ・システム120は応答を送る。例えば、最大バ
ンドルサイズが10個のメッセージで、サーバ・システム120が第1の要求を受けた
ときに10個のメッセージを保存していると、サーバ・システム120は直ちに応答
する。しかしながら、メッセージの数が一定数のメッセージより少ない場合、サ
ーバ・システム120はさらにメッセージが蓄積されるのを待つか、第2の要求が到
着するのを待つ。第2の要求を受信すると、サーバ・システム120は第1の要求に
対応する応答を送り、メッセージが蓄積されていなくとも、蓄積されているメッ
セージがあれば最大バンドルサイズまで含める。クライアント・システム110同
様、利用可能な帯域および蓄積されたメッセージの数により、サーバ・システム
120は第2の要求受信直後に応答することができ、あるいはサーバ・システム120
は短期間遅延してさらにメッセージを蓄積することができる。
【0031】 オペレーションでは、一連のエラーフリー・トランスファーが次のように進む
。クライアント・システム110は第1の要求を送る。サーバ・システム120は第1の
要求を受信するが、応答しない。短時間後、クライアント・システム110は第2の
要求を送る。サーバ・システム120は第2の要求受信後に第1の要求に応答する。
クライアント・システム110はさらに要求を送り続け、新しい要求の度に、サー
バ・システム120は前の要求に応答する。このように、クライアント・システム1
10およびサーバ・システム120は協力してサーバ・システム120で1つの要求をそ
のままにしておき、サーバ・システム120が常に応答できるようにする。
【0032】 各種実施例において、遅延とバンドル中のメッセージの最大数は、スループッ
トを増やしTCP/IP接続のスループットに近似するよう最適化できる。インプリメ
ンテーションは、クライアント・プロセス210およびサーバ・プロセス310などの
さらに高いレベルのアプリケーションに対してトランスペアレントにできる。例
えば、クライアント・システム110とサーバ・システム120との間の直接TCP/IP接
続を想定して書かれたアプリケーションは、アプリケーションのコードや行動を
変更せず、パフォーマンスが無視できる劣化を示すのみでHTTPプロトコルを使っ
て切り替え可能である。
【0033】 別の実施例では、サーバ・システム120は1個以上の要求をそのままにしておき
、例えばサーバ・システム120が大きなデータブロックを取り扱えるようクロー
ズ・サクセッションで複数の応答を送ることができる。しかしながら、サーバ・
システム120がそのままにしておく要求の数はクライアント・システム110のバッ
ファ220のサイズ、クライアント・システム110がタイムアウトするまでの時間、
最大バンドルサイズなどの要因によって限定される。例えば、メッセージが受信
されたとの通知によって初めてメッセージがバッファから削除されるため、応答
が受信されないとメッセージはバッファ220に蓄積される。また、クライアント
・システム120がタイムアウトし、エラーが発生したと想定するとメッセージを
再送信する。蓄積されたメッセージの数が最大バンドル数を超えると、クライア
ント・システム110が送る要求の数は急激に増加し、不要に帯域を無駄にする。
【0034】 図4は、HTTP要求の1つの実施例をさらに詳細に示す。HTTP要求は、HTTP要求で
あることを識別し、要求の宛先を指定し、各種追加特性を指定するヘッダ情報を
含む。ヘッダの後には、あらゆる形式のデータが来ることができる。実施例では
、データはクライアント・システム110がサーバ・システム120からの最後の応答
でメッセージを受け取っていればどのメッセージかを示す接頭辞を含む。ここで
、接頭辞はクライアント・システム110が最後の応答で1からNまでのメッセージ
を受け取ったことを示す。接頭辞の後に、要求はバッファ220に保存された1から
Mまでのメッセージすべてのコピーを含む。要求をサーバ・システム120が受け取
ると、サーバ・システム120はサーバ・プロセス310に1からMまでのメッセージを
与える。サーバ・システム120はまた、バッファ320に保存されたメッセージから
1からNのメッセージを削除し、次の応答に残るメッセージがあればこれのみ送る
【0035】 図5は、HTTP応答の1つの実施例を示す。要求同様、応答はこれが特定のHTTP要
求に対応するHTTP応答であることを識別し、宛先を指定し、応答の各種追加特性
を指定するヘッダ情報を含む。ヘッダの後には、あらゆる形式のデータが来るこ
とができる。図示の実施例では、データは最後の要求でサーバ・システム120が
受け取ったメッセージがあればどのメッセージか示す接頭辞を含む。ここで、接
頭辞はサーバ・システム120が最後の要求で1からMまでのメッセージを受け取っ
たことを示す。接頭辞の後、応答はバッファ320に保存された1からNまでのメッ
セージのコピーも含む。応答をクライアント・システム110が受け取ると、クラ
イアント・システム110はクライアント・プロセス210に1からNのメッセージを与
え、バッファ220に保存されたメッセージから1からMのメッセージを削除し、次
の要求に残るメッセージがあればこれのみ送信する。
【0036】 いずれのシステムもメッセージを受信したとの表示を受け取る前にそのバッフ
ァからメッセージを削除しない。また、上述のように、クライアント・システム
110は、一定時間内に応答を受信しないと要求を送る。例えば、要求が何らかの
理由でサーバ・システム120に届かない場合、クライアント・システム110は同じ
メッセージと蓄積されていた追加メッセージがあればこれを含む別の要求を送る
。同様に、応答が到着しないと、クライアント・システム110は別の要求を送り
、サーバ・システム120は同じメッセージと蓄積されていた追加メッセージがあ
ればこれを含む別の応答を送る。さらに、要求または応答を受けたが、メッセー
ジが読めない場合、対応して返された接頭辞はメッセージが読めなかったことと
、メッセージを再送信することを示す。このように、本発明は本質的に信頼でき
ない通信メディアで信頼できるメッセージ転送を行う。
【0037】 図6は、クライアントシステム110の一実施例によって実行される手順を示す。
ブロック610において、クライアントシステム110はHTTPリクエストを送り出すが
、これには、バッファ220の中に保存された何らかのメッセージのコピー、なら
びに、そのメッセージのインジケータとして、クライアントシステム110が最後
のレスポンスにおいて受け取ったメッセージ(それがある場合)も含まれる。リ
クエストが第1のリクエストであって、最後のレスポンスがいかなるメッセージ
も含んでいなかった場合、または、最後のリクエストからのメッセージが読み取
り不能であった場合、インジケータは、ゼロメッセージが受け取られたことを示
すことになる。クライアントシステム110がレスポンスを受け取るのを待つ間、
追加の出力メッセージ(それがある場合)がバッファ220、ブロック620および63
0の中に保存される。ある程度の数のメッセージが蓄積されると、クライアント
システム110は、ブロック640へと進むことになる。レスポンスが受け取られなか
ったので、ブロック640ではいかなる動作も起こらず、クライアントシステム110
がブロック610に戻り、追加のメッセージを含む別のリクエストを送り出すこと
になる。例えば、最大バンドルサイズが10メッセージで、10の追加メッセージが
貯まった場合、10のメッセージを含む別のリクエストが送られることになる。
【0038】 ブロック630において、ある程度の数のメッセージが貯まる前にレスポンスが
受け取られると、プロセスは、再びブロック640へと進むことになる。レスポン
スが受け取られると、そのレスポンスは、プリフィックスと、サーバシステム12
0から送られた何らかのメッセージを含むことになる。プリフィックスは、サー
バシステム120が最後のリクエストにおいてどんなメッセージを受け取ったかを
指示することになる。リクエストがメッセージを含んでいなかった場合、または
エラーがあって、メッセージが読み取り不能であった場合、プリフィックスはゼ
ロメッセージを指示することになる。クライアントシステム110は、指示された
何らかのメッセージをブロック640においてバッファ220から除去することになる
。レスポンスに何らかのメッセージが含まれていた場合には、そのメッセージも
クライアントプロセス210に提供されることになる。すると、手順はブロック610
に戻り、プリフィックスと保存されていた何らかのメッセージを含む新たなリク
エストが送られる。
【0039】 上に述べた通り、有効帯域幅や保存されたメッセージの数などのファクターに
応じて、クライアントシステム110は、レスポンスを受け取り次第直ちにリクエ
ストを送ることもあれば、もっと多くのメッセージを貯めさせるために時間を遅
らせることもある。
【0040】 クライアントシステム110は、レスポンスが受け取られるか、1バンドル分の追
加メッセージが貯まるかする前に、ブロック630においてタイムアウトすること
がある。例えば、最大バンドルサイズが10メッセージで、3つしかメッセージが
貯まっていない場合でも、ある程度時間が経過した後にクライアントシステム11
0はタイムアウトすることがある。エラーが生じたのかもしれないし、サーバシ
ステム120が第2のリクエストを待っているのかもしれない。いずれにしても、ク
ライアントシステム110はブロック640へと進むことになる。レスポンスが受け取
られなかったのであるから、メッセージが指定されなかったし、メッセージが受
け取られなったわけで、結局、ブロック640において一切アクションが起こされ
ないことになる。代わりに、クライアントシステム110はブロック610へと進み、
第1のリクエストで送られたメッセージを含めて保存されていた何らかのメッセ
ージを最大バンドルサイズまで送り出すことになる。貯まったメッセージの数が
最大バンドルサイズを超えると、クライアントシステム110は、2つ以上のリクエ
ストを送ることがある。その上、クライアントシステム110は、レスポンスを受
け取ることなくある程度の数のリクエストが送られた後に接続が切断されたこと
を指示することがある。
【0041】 図7は、サーバシステム120の一実施例によって実行される手順を示す。ブロッ
ク710において、サーバシステム120は、出力メッセージがある場合には、これを
保存し、ブロック720において第1のリクエストを待つ。第1のリクエストが受け
取られると、そのリクエストは、クライアントシステムが最後のレスポンスにお
いて受け取ったメッセージ(それがある場合)を指示するプリフィックスを含む
ことになる。最後のレスポンスがいかなるメッセージも含んでいなかった場合、
またはエラーがあって、メッセージが読み取り不能であった場合、プリフィック
スは、ゼロメッセージが受け取られたことを指示することになる。リクエストは
また、クライアントシステム110から送られた何らかのメッセージを含むことに
もなる。ブロック730において、サーバシステム120は、指示された何らかのメッ
セージを、バッファ320の中に保存されたメッセージから除去し、何らかの入力
メッセージをサーバプロセス310に提供することになる。
【0042】 次に、サーバシステム120は、第2のリクエストがブロック740で受け取られる
まで、またはある程度の数のメッセージがブロック741および745の中に貯まるま
で、第1のリクエストを保持することになる。例えば、最大バンドルサイズが10
メッセージで、10のメッセージが貯まった場合、サーバシステム120は、第2のリ
クエストを受け取らなかったとしても、ブロック741からブロック744へと進むこ
とになる。ブロック744において、サーバシステム120は、保存されていたメッセ
ージを含めて第1のリクエストに対応するレスポンスを送り、ブロック710に戻っ
て別の第1のリクエストを待つことになる。
【0043】 ブロック740において第2のリクエストが受け取られると、サーバシステム120
は、メッセージが貯まっていなくても、ブロック750へと進むことになる。ブロ
ック750において、指示された何らかのメッセージがバッファ320から削除され、
何らかの入力メッセージがサーバプロセス310に提供されることになる。ブロッ
ク760において、保存されていたメッセージを含めて第1のリクエストに対応する
レスポンスが送り出される。サーバシステム120は、ブロック740に戻って別のリ
クエストまたは丸々1バンドル分のメッセージを待つことになる。別のリクエス
トが受け取られると、クライアントシステム120はすでに1つのリクエストを保持
しているので、新たなリクエストは第2のリクエストのように処理され、クライ
アントシステム120は、ブロック750を通過し、ブロック760において別のレスポ
ンスを送り出すことになる。その上、1つのリクエストがブロック740で保持され
ている限り、いつでも1バンドル分のメッセージが貯まっていき、サーバシステ
ム120は、保持されたリクエストに対応するレスポンスを出すことができる。
【0044】 上に述べた通り、有効帯域幅や保存されたメッセージの数などのファクターに
応じて、サーバシステム120は、第2のリクエストを受け取り次第直ちにレスポン
スを送ることもあれば、もっと多くのメッセージを貯めさせるために時間を遅ら
せることもある。また、別の実施例では、サーバシステム120は、ある程度の時
間枠の中でリクエストが受け取られなかった場合にタイムアウトすることになり
、そうなった場合、サーバシステム120は、接続が切断されたことを指示するこ
とがある。
【0045】 クライアントシステム110とサーバシステム120の間でひとたびHTTP接続が確立
されれば、どちらかのシステムは、多数の方法のどれかで接続を終わらせること
ができる。例えばリクエストまたはレスポンスが所定の終了メッセージを含むこ
ともあり得よう。
【0046】 代替の実施例では、適当な情報が提供され、その情報が適当なシステムによっ
て識別できる限り、最後の伝送においてどんなメッセージが受け取られたかを指
示するインジケータを何らかの仕方で提供することができる。例えばサフィック
スを使用することができるであろうし、あるいは、メッセージが、ある範囲の中
で指定されたというよりむしろ個別に数字であることもあり得るし、従って、個
別に失われたメッセージを識別することもできよう。
【0047】 クライアントシステム110またはサーバシステム120の機能を実行するためにハ
ードウェアシステムをどんな数でも使用することができる。各システムは、従来
公知の広いカテゴリのコンピュータシステム、例えば、Intel Corporation(カ
リフォルニア州サンタクララ)が製造、市販するPentiumRプロセッサ、PentiumR プロ・プロセッサ、PentiumRIIプロセッサ、またはDigital Equipment Corporat
ion(マサチューセッツ州メイナード)が製造するAlphaRプロセッサなどの高性
能マイクロプロセッサを搭載したコンピュータシステムによって表してよい。
【0048】 図8は、適当なハードウェアシステム800の一実施例を示す。図示された実施例
では、ハードウェアシステム800は、高性能バス805に結合したマイクロプロセッ
サ810を包含し、高性能バス805の方は、バスブリッジ830を通して入出力(I/O)
バス815に結合している。テンポラリメモリ820がバス805に結合している。パー
マネントメモリ840がバス815に結合している。ディスプレイ装置870、キーボー
ド880、通信インタフェース850および汎用I/O860がすべて、バス815に結合して
いる。通信インタフェース850は、ハードウェアシステム800をインターネット13
0に結合させることができる。汎用I/O860は、ハードウェアシステム800を多数の
外部装置のどれかに結合させることができる。
【0049】 実施例の中には、追加コンポーネントを包含してよい実施例、上記コンポーネ
ントのすべてを必要としなくてよい実施例、または2つ以上のコンポーネントを
組み合わせてよい実施例もある。例えばテンポラリメモリ820が、マイクロプロ
セッサ810を備えたオンチップであってよい。あるいは、パーマネントメモリ840
が無くしてあってよく、テンポラリメモリ820の代わりに、電気的消去可能なプ
ログラマブル・リード・オンリー・メモリ(EEPROM)、例えばソフトウェアルー
チンがEEPROMから適当な場所で実行されるフラッシュ・メモリなどが使用してあ
ってよい。実施態様によっては、すべてのコンポーネントが結合する単一のバス
を使用しても、多数の追加バスを使用してもよい。また、従来公知のプロセッサ
、CD-ROMなどの記憶装置、メモリ、その他の周辺機器などの追加コンポーネント
がハードウェアシステムに含まれていてもよい。
【0050】 一実施例では、上に述べた通りのクライアントシステム110またはサーバシス
テム120が、ハードウェアシステム800によって実行されるソフトウェアルーチン
のシリーズとして実現している。かかるソフトウェアルーチンは、マイクロプロ
セッサ810などの、ハードウェアシステム内のマイクロプロセッサによって実行
される複数の、または一連の命令からなる。最初、一連の命令は、パーマネント
メモリ840などの記憶装置に保存しておくことができる。それでも、一連の命令
は、ディスケット、CD-ROM、磁気テープ、ディジタルビデオディスク、DVD、レ
ーザーディスク、ROM、フラッシュ・メモリなどの従来の記憶媒体のどれを使っ
ても保存できることを認識しなければならない。また、一連の命令は、ローカル
メモリに保存する必要がなく、多数のネットワークのどれかにおける別のサーバ
システム、CD-ROMデバイス、フロッピディスクなどの遠隔記憶装置から受け取る
ことができることも認識しなければならない。命令は、記憶装置からテンポラリ
メモリ820にコピーし、そこでアクセスし、マイクロプロセッサ810によって実行
してよい。一実施態様では、かかるハードウェアルーチンは、JAVATMプログラミ
ング言語で書かれている。それでも、かかるルーチンは、多種多様なプログラミ
ング言語のそれででも実行できることを認識すべきである。
【0051】 代替の実施例では、クライアントシステム110またはサーバシステム120が、離
散型のハードウェアまたはファームウェアの形で実現している。例えば1つ以上
の特定用途向け集積回路(ASIC)を、上に述べたクライアントシステム110また
はサーバシステム120の機能を使ってプログラムすることができよう。別の例で
は、クライアントシステム110またはサーバシステム120を追加回路板上の1つ以
上のASICの形で実現させ、回路板をハードウェアシステム800に挿入することが
できよう。
【0052】 本発明は、広範囲の用途を有する。例えば、仮想分散させられた何らかのプロ
グラムによって、HTTPフォーマットによるトランザクションを許す何らかのファ
イアウォールを仮想横断するのに使用することができる。その上、本発明は、フ
ァイアウォール背後から双方向通信を始めることを許されたどんなプロトコルフ
ォーマットも使用することができる。HTTP/1.0は、まさしくそのようなフォーマ
ットの1つである。HTTP/1.1および他のそのようなフォーマットも使用すること
ができる。
【0053】 本発明は、イントラネットを含む多種多様なネットワークで実行される多種多
様な分散形プログラムに適用してよい。その上、本発明は、多重クライアントシ
ステムによって同時に、多重ファイアウォールを通して1つ以上のサーバにアク
セスするのに使用することができる。それゆえ、本特許の目的のためには、クラ
イアントシステムは、他の何らかのシステムにリクエストを出すどんなシステム
にも当てはまる。同様に、サーバシステムは、リクエストを受けるどんなシステ
ムにも当てはまる。1つのシステムが同時にクライアントシステムとサーバシス
テムの両方であり得る。
【0054】 以上、分散形プログラムにファイアウォールを横断させるための方法および装
置について述べた。当業者であれば、上の説明を読んだ後、本発明に変更や改良
を加えた多くの態様のあることを理解されるであろうが、同時に、本発明が図に
則して述べた特殊な実施例だけに制限されるものでは決してないことを理解すべ
きである。よって、特殊な実施例の詳細に言及することは、請求の範囲を制限す
ることを意図するものでない。
【図面の簡単な説明】
【図1】 図1は、コンピュータ・ネットワークの一実施例を示す。
【図2】 図2は、クライアント・システムの一実施例を示す。
【図3】 図3は、サーバ・システムの一実施例を示す。
【図4】 図4は、HTTPフォーマット化された要求の一実施例を示す。
【図5】 図5は、HTTPフォーマット化された応答の一実施例を示す。
【図6】 図6は、クライアント・システムの一実施例のプロセスを示す。
【図7】 図7は、サーバ・システムの一実施例のプロセスを示す。
【図8】 図8は、クライアント・システムまたはサーバ・システムの機能を実行するハ
ードウェア・システム・オペラティブの一実施例を示す。
【手続補正書】
【提出日】平成12年12月22日(2000.12.22)
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
【手続補正9】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのメッセージを持つ第1のメッセージセットを
    クライアントシステムで記憶すること、 第1のメッセージセットのコピーを含む第1のリクエストをサーバシステムに送る
    こと、そして、 第1のメッセージセットのうちのどのメッセージが第1のリクエストにおいてクラ
    イアントシステムから受け取られたかを指示する第1のインジケータを含む第1の
    レスポンスをサーバシステムからクライアントシステムで受け取るのを待つ ことを具備し、からなり、リクエストとレスポンスが第1のプロトコルに従って
    フォーマット化され、該第1のプロトコルはファイアウォールを横断するよう作
    用する、 ことを特徴とする方法。
  2. 【請求項2】 ゼロからN個までの第1の追加メッセージをクライアントシス
    テムで記憶すること、 クライアントシステムで保存された第1の追加メッセージがある特定の数蓄積さ
    れると、該第1の追加メッセージのコピーを含む第2のリクエストをサーバシステ
    ムに送ること、 第1のレスポンスを受け取る前にある特定の時間が経過すると、クライアントシ
    ステムで保存された第1のメッセージセットのコピーと第1の追加メッセージのコ
    ピーを含む第2のリクエストをサーバシステムに送ること、 第1のレスポンスが受け取られると、指示された第1のメッセージをクライアント
    システムから除去すること、そして、 第1のレスポンスが受け取られると、クライアントシステムで保存されたメッセ
    ージのどれかのコピーを含む第2のリクエストをサーバシステムに送る ことをさらに具備する請求項1記載の方法。
  3. 【請求項3】 少なくとも1つのメッセージを持つ第2のメッセージセットを
    サーバシステムで記憶すること、 第1のリクエストと第2のリクエストをクライアントシステムから受け取るのを待
    つこと、 第1のリクエストが受け取られそして、また、サーバシステムにおいて第2のメッ
    セージセットがある特定の数蓄積されると、該第2のメッセージセットのコピー
    を含む第1の応答をクライアントシステムに送ること、そして、 第2のリクエストが受け取られると、該第2のメッセージセットのコピーを含む第
    1のレスポンスを、および第1のリクエストに対応する第1の応答をクライアント
    システムに送ること、 をさらに具備することを特徴とする請求項2記載の方法。
  4. 【請求項4】 第1の応答を受け取るのに応答し第2のメッセージセットのう
    ちのどのメッセージがサーバシステムから受け取られたかを指示する第2のイン
    ジケータを含む第3のリクエストをサーバシステムに送ること、 をさらに具備する請求項3記載の方法。
  5. 【請求項5】 ゼロからM個までの第2の追加メッセージをサーバシステムに
    記憶すること、 第3のリクエストをクライアントシステムから受け取るのを待つこと、 第3のリクエストを受け取るのに応答し指示された第2のメッセージをサーバシス
    テムから除去すること、そして、 第3のリクエストを受け取るのに応答し、サーバシステムで保存されたメッセー
    ジのどれかのコピーを含む第2の応答を、第2のリクエストに対応する第2のレス
    ポンスをクライアントシステムに送ること、 をさらに具備する請求項4記載の方法。
  6. 【請求項6】 ファイアウォールは、クライアントシステムとサーバシステ
    ムの間で第2のプロトコルに従ってフォーマット化された通信が行われるのを防
    ぐ請求項1記載の方法。
  7. 【請求項7】 第1のプロトコルはハイパー・テキスト・トランスファ・プ
    ロトコル(HTTP)であり、第2のプロトコルはトランスミッション・コントロー
    ル・プロトコル/インターネット・プロトコル(TCP/IP)である請求項6記載の
    方法。
  8. 【請求項8】 記憶、送信および待機がファイアウォールの検出に応答して
    自動的に行われる請求項6記載の方法。
  9. 【請求項9】 1つ以上のメッセージを持つ第1のメッセージセットをサーバ
    システムで記憶すること、 第1のリクエストと第2のリクエストをクライアントシステムから受け取るのを待
    つこと、 第1のリクエストが受け取られサーバシステムにおいてメッセージがある特定の
    数蓄積されると、第1のメッセージセットのコピーを含む第1のレスポンスをクラ
    イアントシステムに送ること、および、 第2のリクエストが受け取られると、第1のメッセージセットのコピーを含む第1
    のレスポンスを、および第1のリクエストに対応する第1の応答をクライアントシ
    ステムに送ることを具備し、 リクエストと応答はプロトコルに従ってフォーマット化され、該プロトコルはフ
    ァイアウォールを横断するよう作用する、 ことを特徴とする方法。
  10. 【請求項10】 第1のリクエストは、クライアントシステムで保存された1
    つ以上のメッセージを持つ第2のメッセージセットのコピーを含み、第1の応答は
    、第2のメッセージセットのうちのどのメッセージが第1のリクエストにおいてク
    ライアントシステムから受け取られたかを指示するインジケータを含む請求項9
    記載の方法。
  11. 【請求項11】 追加メッセージをサーバシステムで記憶すること、 第1のメッセージセットのうちのどのメッセージがクライアントシステムによっ
    て受け取られたかを指示するインジケータを含む第3のリクエストをクライアン
    トシステムから受け取るのを待つこと、 第3のリクエストを受け取るのに応答して、指示されたメッセージをサーバシス
    テムから除去すること、および、 第3のリクエストを受け取るのに応答しサーバシステムに保存されたメッセージ
    のどれかのコピーを含む第2のレスポンスを、および第2のリクエストに対応する
    第2のレスポンスをクライアントシステムに送ること、 を具備する請求項10記載の方法。
  12. 【請求項12】 メッセージを記憶し、該メッセージのコピーを含むリクエ
    ストをサーバシステムに送り、応答をサーバシステムから受け取るクライアント
    システムを具備する装置であって、該応答は、含まれるメッセージのうちのどの
    メッセージがリクエストにおいてクライアントシステムから受け取られたかを指
    示するインジケータを含み、該リクエストと応答はプロトコルに従ってフォーマ
    ット化されており、該プロトコルはファイアウォールを横断するよう作用する、
    ことを特徴とする装置。
  13. 【請求項13】 クライアントシステムが、 メッセージを保存するバッファ、および、 ハイパー・テキスト・トランスファ・プロトコル(HTTP)のゲートウェイを介し
    てリクエストを送り、応答を受け取るクライアントプロセス、 を包含する請求項12記載の装置。
  14. 【請求項14】 メッセージを記憶し、第1のリクエストと第2のリクエスト
    をクライアントシステムから受け取り、該第2のリクエストを受け取るのに応答
    して、第1のリクエストに対応する応答をクライアントシステムに送るサーバシ
    ステムを具備する装置であって、該レスポンスは、第1のメッセージセットのコ
    ピーを含み、該第1および第2のリクエストと応答がプロトコルに従ってフォーマ
    ット化されており、該プロトコルはファイアウォールを横断するよう作用する、
    ことを特徴とする装置。
  15. 【請求項15】 サーバシステムは、 メッセージを保存するバッファ、および ハイパー・テキスト・トランスファ・プロトコル(HTTP)サーバを介して第1お
    よび第2のリクエストを受け取り応答を送るサーバプロセス、 を包含する請求項14記載の装置。
  16. 【請求項16】 機械により実行可能な命令が記憶されている機械により読
    取り可能な記憶媒体であって、該命令の実行は、 少なくとも1つのメッセージを持つメッセージセットをクライアントシステムで
    記憶すること、 該メッセージセットのコピーを含むリクエストをサーバシステムに送ること、そ
    して、 該メッセージセットのうちのどのメッセージが該リクエストにおいてクライアン
    トシステムから受け取られたかを指示するインジケータを含む応答をサーバシス
    テムからクライアントシステムで受け取るのを待つこと、を具備する方法であっ
    て、リクエストと応答はプロトコルに従ってフォーマット化され、該プロトコル
    はファイアウォールを横断するよう作用するもの、 を実行することを特徴とする記憶媒体。
  17. 【請求項17】 機械により実行可能な命令が記憶されている機械により読
    取り可能な記憶媒体であって、該命令の実行は、 1つ以上のメッセージを持つメッセージセットをサーバシステムで記憶すること
    、 第1のリクエストと第2のリクエストをクライアントシステムから受け取るのを待
    つこと、 第1のリクエストが受け取られ、サーバシステムにおいてメッセージがある特定
    の数蓄積されると、該メッセージセットのコピーを含む応答をクライアントシス
    テムに送ること、そして、 第2のリクエストが受け取られると、該メッセージセットのコピーを含む応答を
    、および第1のリクエストに対応する応答をクライアントシステムに送ること、
    を具備する方法であって、第1および第2のリクエストと応答がプロトコルに従っ
    てフォーマット化され、該プロトコルがファイアウォールを横断するよう作用す
    るもの、 を実行することを特徴とする記憶媒体。
JP2000553893A 1998-06-09 1999-06-09 二方向的なプロセス対プロセスのバイトストリームのプロトコル Expired - Fee Related JP4537579B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/094,388 US6289461B1 (en) 1998-06-09 1998-06-09 Bi-directional process-to-process byte stream protocol
US09/094,388 1998-06-09
PCT/US1999/013068 WO1999064958A1 (en) 1998-06-09 1999-06-09 Bi-directional process-to-process byte stream protocol

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010100888A Division JP4929371B2 (ja) 1998-06-09 2010-04-26 二方向的なプロセス対プロセスのバイトストリームのプロトコル

Publications (2)

Publication Number Publication Date
JP2002517857A true JP2002517857A (ja) 2002-06-18
JP4537579B2 JP4537579B2 (ja) 2010-09-01

Family

ID=22244874

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000553893A Expired - Fee Related JP4537579B2 (ja) 1998-06-09 1999-06-09 二方向的なプロセス対プロセスのバイトストリームのプロトコル
JP2010100888A Expired - Fee Related JP4929371B2 (ja) 1998-06-09 2010-04-26 二方向的なプロセス対プロセスのバイトストリームのプロトコル

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010100888A Expired - Fee Related JP4929371B2 (ja) 1998-06-09 2010-04-26 二方向的なプロセス対プロセスのバイトストリームのプロトコル

Country Status (9)

Country Link
US (2) US6289461B1 (ja)
EP (2) EP1633109B1 (ja)
JP (2) JP4537579B2 (ja)
AT (2) ATE381193T1 (ja)
AU (1) AU4558699A (ja)
CA (1) CA2334971C (ja)
DE (2) DE69937762T2 (ja)
HK (1) HK1039189B (ja)
WO (1) WO1999064958A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210144A (ja) * 2010-03-30 2011-10-20 Fujitsu Ltd 情報処理装置、通信制御方法及び通信制御プログラム

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6289461B1 (en) * 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6338086B1 (en) * 1998-06-11 2002-01-08 Placeware, Inc. Collaborative object architecture
US6409602B1 (en) * 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6751670B1 (en) * 1998-11-24 2004-06-15 Drm Technologies, L.L.C. Tracking electronic component
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US7127515B2 (en) 1999-01-15 2006-10-24 Drm Technologies, Llc Delivering electronic content
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
JP3446946B2 (ja) * 1999-05-12 2003-09-16 日本電気株式会社 データ通信システム及びタイムスロット割当方法並びにタイムスロット割当制御プログラムを格納した記憶媒体
US6424993B1 (en) * 1999-05-26 2002-07-23 Respondtv, Inc. Method, apparatus, and computer program product for server bandwidth utilization management
US7620980B1 (en) * 1999-07-21 2009-11-17 Sun Microsystems, Inc. Secure data broker
US20060195400A1 (en) * 2000-10-13 2006-08-31 Patrick Patterson Controlling access to electronic content
US7171473B1 (en) * 1999-11-17 2007-01-30 Planet Exchange, Inc. System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
US8095508B2 (en) 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US6711558B1 (en) 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US6809749B1 (en) * 2000-05-02 2004-10-26 Oridus, Inc. Method and apparatus for conducting an interactive design conference over the internet
EP1161048A3 (en) * 2000-05-19 2005-02-16 Attachmate Corporation System and method for secure duplex browser communication over disparate networks
US7020773B1 (en) 2000-07-17 2006-03-28 Citrix Systems, Inc. Strong mutual authentication of devices
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7028051B1 (en) * 2000-09-29 2006-04-11 Ugs Corp. Method of real-time business collaboration
US6986040B1 (en) 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
US20020169879A1 (en) * 2001-05-10 2002-11-14 Kobus Jooste Method and apparatus for firewall-evading stealth protocol
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7421515B2 (en) * 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US6983020B2 (en) * 2002-03-25 2006-01-03 Citrix Online Llc Method and apparatus for fast block motion detection
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7711844B2 (en) 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
US7346669B2 (en) * 2002-12-19 2008-03-18 Intel Corporation Method, apparatus and system for processing message bundles on a network
MY141160A (en) * 2003-01-13 2010-03-31 Multimedia Glory Sdn Bhd System and method of preventing the transmission of known and unknown electronic content to and from servers or workstations connected to a common network
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
CA2519116C (en) * 2003-03-13 2012-11-13 Drm Technologies, Llc Secure streaming container
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US20070277036A1 (en) 2003-05-23 2007-11-29 Washington University, A Corporation Of The State Of Missouri Intelligent data storage and processing using fpga devices
US20050010961A1 (en) * 2003-06-02 2005-01-13 Hagen David A. System for providing live and pre-recorded audio-video content to a plurality of portals over the Internet
US20050030892A1 (en) * 2003-06-23 2005-02-10 Hagen David A. System for providing network load distribution
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
US7558842B2 (en) * 2003-10-17 2009-07-07 E2Open, Inc. Large file transfer in a design collaboration environment
US7421741B2 (en) 2003-10-20 2008-09-02 Phillips Ii Eugene B Securing digital content system and method
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
US7500108B2 (en) 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
JP4505257B2 (ja) * 2004-05-12 2010-07-21 京セラ株式会社 放送受信機能付き携帯電話機
US7853676B1 (en) * 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US20060159432A1 (en) 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8230096B2 (en) 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US8200828B2 (en) 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
WO2006096324A2 (en) 2005-03-03 2006-09-14 Washington University Method and apparatus for performing biosequence similarity searching
US7725595B1 (en) * 2005-05-24 2010-05-25 The United States Of America As Represented By The Secretary Of The Navy Embedded communications system and method
US8788619B2 (en) 2005-10-25 2014-07-22 International Business Machines Corporation Method and infrastructure for accessing remote applications through a secure firewall
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7954114B2 (en) * 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7636703B2 (en) * 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
WO2008022036A2 (en) * 2006-08-10 2008-02-21 Washington University Method and apparatus for protein sequence alignment using fpga devices
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US7809818B2 (en) 2007-03-12 2010-10-05 Citrix Systems, Inc. Systems and method of using HTTP head command for prefetching
US8103783B2 (en) 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US8037126B2 (en) 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
TW200847711A (en) * 2007-05-31 2008-12-01 Wistron Corp Method and related system for building up a network connection between clients and servers through a stream fork by utilizing http protocol
WO2009029842A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US8024407B2 (en) * 2007-10-17 2011-09-20 Citrix Systems, Inc. Methods and systems for providing access, from within a virtual world, to an external resource
US10229453B2 (en) * 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
CN101729434B (zh) * 2008-10-10 2012-05-23 中兴通讯股份有限公司 消息交互的实现方法和融合业务系统
CA2744746C (en) 2008-12-15 2019-12-24 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
CN101860459B (zh) * 2009-04-07 2012-08-29 鸿富锦精密工业(深圳)有限公司 网络装置及其连线状态侦测方法
US9473460B2 (en) * 2009-06-22 2016-10-18 Microsoft Technology Licensing, Llc Using hypertext transfer protocol as a transport for bi-directional data streams
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
US9355180B2 (en) * 2011-02-07 2016-05-31 Microsoft Technology Licensing, Llc Name-based customization of executables from web
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US9344514B2 (en) * 2011-10-26 2016-05-17 Viagenie Method and proxy for transporting IP payloads over a delay-tolerant network (DTN)
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
WO2014066416A2 (en) 2012-10-23 2014-05-01 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US10133802B2 (en) 2012-10-23 2018-11-20 Ip Reservoir, Llc Method and apparatus for accelerated record layout detection
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
GB2541577A (en) 2014-04-23 2017-02-22 Ip Reservoir Llc Method and apparatus for accelerated data translation
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
EP3560135A4 (en) 2016-12-22 2020-08-05 IP Reservoir, LLC PIPELINES INTENDED FOR AUTOMATIC ACCELERATED LEARNING BY EQUIPMENT
CN114553806B (zh) * 2022-02-21 2023-09-05 深圳平安智慧医健科技有限公司 一种即时通讯的优化方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05344148A (ja) * 1992-06-05 1993-12-24 Nippon Denki Joho Service Kk 電子メール装置
JPH09138810A (ja) * 1995-09-12 1997-05-27 Toshiba Corp クライアント装置、メッセージ送信方法、サーバ装置、ページ処理方法及び中継サーバ装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430876A (en) 1989-06-27 1995-07-04 Digital Equipment Corporation Remote procedure callback system and method
US5163055A (en) * 1990-06-27 1992-11-10 Telefonaktiebolaget Lm Ericsson Communications system using a fault tolerant protocol
US5499343A (en) 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5550848A (en) * 1994-05-13 1996-08-27 Lucent Technologies Inc. Signaling protocol for a noisy communications channel
US5732219A (en) * 1995-03-17 1998-03-24 Vermeer Technologies, Inc. Computer system and computer-implemented process for remote editing of computer files
US5774479A (en) * 1995-03-30 1998-06-30 Motorola, Inc. Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
US5721908A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Computer network for WWW server data access over internet
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
JPH0991219A (ja) * 1995-09-28 1997-04-04 Mitsubishi Electric Corp 障害監視システム
DE69736684T2 (de) * 1996-01-23 2007-09-13 Ntt Mobile Communications Network Inc. Kommunikationsanordnung und Übertragungsstation mit Fehlerdetektion und Wiederübertragung
US5826014A (en) * 1996-02-06 1998-10-20 Network Engineering Software Firewall system for protecting network elements connected to a public network
US5815665A (en) * 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
JP2000516053A (ja) * 1996-05-07 2000-11-28 ウェブライン コミュニケーションズ コーポレーション インターネットマルチメディアの内容を電話及びオーディオ通信と統合するための方法及びその装置
US5935211A (en) * 1996-07-10 1999-08-10 Microsoft Corporation Distributed notification
US5944823A (en) * 1996-10-21 1999-08-31 International Business Machines Corporations Outside access to computer resources through a firewall
TW400487B (en) * 1996-10-24 2000-08-01 Tumbleweed Software Corp Electronic document delivery system
US5778174A (en) * 1996-12-10 1998-07-07 U S West, Inc. Method and system for providing secured access to a server connected to a private computer network
US5805803A (en) * 1997-05-13 1998-09-08 Digital Equipment Corporation Secure web tunnel
US6457054B1 (en) * 1997-05-15 2002-09-24 Intel Corporation System for reducing user-visibility latency in network transactions
US6289461B1 (en) 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6338086B1 (en) 1998-06-11 2002-01-08 Placeware, Inc. Collaborative object architecture
DE10038557B4 (de) * 2000-08-03 2005-12-15 Siemens Ag System und Verfahren zur Übertragung von Daten über Datennetze, insbesondere Internet, mit asynchroner Datenverbindung
JP2002223483A (ja) * 2000-11-09 2002-08-09 Yamatake Corp 遠隔管理システム
JP2003281005A (ja) * 2002-03-27 2003-10-03 Matsushita Electric Ind Co Ltd 発呼サーバー装置および端末装置
JP2004227121A (ja) * 2003-01-21 2004-08-12 Toshiba Corp サーバ装置、通信制御システム、通信方法及びサーバプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05344148A (ja) * 1992-06-05 1993-12-24 Nippon Denki Joho Service Kk 電子メール装置
JPH09138810A (ja) * 1995-09-12 1997-05-27 Toshiba Corp クライアント装置、メッセージ送信方法、サーバ装置、ページ処理方法及び中継サーバ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011210144A (ja) * 2010-03-30 2011-10-20 Fujitsu Ltd 情報処理装置、通信制御方法及び通信制御プログラム

Also Published As

Publication number Publication date
ATE400847T1 (de) 2008-07-15
DE69937762T2 (de) 2008-11-27
EP1125207B1 (en) 2008-07-09
US7103799B2 (en) 2006-09-05
EP1125207A4 (en) 2005-10-05
US6289461B1 (en) 2001-09-11
EP1633109A1 (en) 2006-03-08
AU4558699A (en) 1999-12-30
HK1039189A1 (en) 2002-04-12
JP2010250834A (ja) 2010-11-04
JP4537579B2 (ja) 2010-09-01
CA2334971A1 (en) 1999-12-16
HK1039189B (zh) 2009-05-08
EP1125207A1 (en) 2001-08-22
DE69939067D1 (de) 2008-08-21
ATE381193T1 (de) 2007-12-15
US20010056547A1 (en) 2001-12-27
WO1999064958A1 (en) 1999-12-16
EP1633109B1 (en) 2007-12-12
JP4929371B2 (ja) 2012-05-09
DE69937762D1 (de) 2008-01-24
CA2334971C (en) 2005-04-05

Similar Documents

Publication Publication Date Title
JP2002517857A (ja) 二方向的なプロセス対プロセスのバイトストリームのプロトコル
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US7461160B2 (en) Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6321269B1 (en) Optimized performance for transaction-oriented communications using stream-based network protocols
JP2698336B2 (ja) デジタルデータ処理システムのためのローカルエリアネットワークに用いるノード
EP1228438B1 (en) System and method for managing connections between clients and a server
US8131881B2 (en) Completion coalescing by TCP receiver
JP4008707B2 (ja) 不信頼及び信頼移送機構を用いたデータ伝送
US8539112B2 (en) TCP/IP offload device
US20070291782A1 (en) Acknowledgement filtering
US7283527B2 (en) Apparatus and method of maintaining two-byte IP identification fields in IP headers
US6339796B1 (en) System for logical connection resynchronization
US7213074B2 (en) Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US20030108070A1 (en) Method and apparatus to facilitate direct transfer of data between a data device and a network connection
US7050393B2 (en) Method, system, and product for alleviating router congestion
US6230283B1 (en) Logical connection resynchronization
US20050086390A1 (en) Efficient packet desegmentation on a network adapter
US6237111B1 (en) Method for logical connection resynchronization
US20060034269A1 (en) Action list for a split media access and control layer communications system
EP3525419A1 (en) Connectionless protocol with bandwidth and congestion control
Arun A sliding window protocol:(SLIWP)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040121

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060421

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20071225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100427

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100524

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: 20100611

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: 20100618

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees