CN1288575C - 用于管理客户与服务器之间的连接的系统和方法 - Google Patents
用于管理客户与服务器之间的连接的系统和方法 Download PDFInfo
- Publication number
- CN1288575C CN1288575C CNB00814155XA CN00814155A CN1288575C CN 1288575 C CN1288575 C CN 1288575C CN B00814155X A CNB00814155X A CN B00814155XA CN 00814155 A CN00814155 A CN 00814155A CN 1288575 C CN1288575 C CN 1288575C
- Authority
- CN
- China
- Prior art keywords
- server
- client
- bus
- network
- client computer
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
- H04L69/085—Protocols for interworking; Protocol conversion specially adapted for interworking of IP-based networks with other networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
一种用于管理客户(109)和网络服务器(106)之间的连接的适配卡(108),将连接管理的负担从服务器(106)转移出来。适配卡(108)包括带嵌入式代理应用(132)和通信协议栈(134)的存储器(124)、用于执行应用代码的处理单元(126)、用于与网际网络(102)接口的网络控制器(129)和用于与网络服务器(106)的内部总线(120)接口的总线协议桥(128)。代理应用(132)通过相对慢且不可靠的网络连接代表服务器(106)接收客户请求,并且通过快且可靠的总线连接将该请求提交给服务器。
Description
发明背景
技术领域
本发明一般涉及网络服务器,特别涉及驻留大量客户连接的服务器,更加特别涉及驻留大量相对慢的客户连接的服务器(例如,因特网web服务器)。
背景技术
对于网络文件服务器,如因特网web服务器,驻留大量相对慢的客户连接,是常见的。只是管理所打开的连接,大量所打开连接就对服务器中央处理器(central processing unit,CPU)施加有沉重的负担。例如,管理在负载服务器上的所打开连接会消耗CPU操作量的30-40%或更多。该负担大大减少用来执行服务器主要功能,即提供数据给客户的CPU周期的百分率。
加在服务器CPU上的连接管理负担降低服务器软件例程的性能,并且减少可以同时打开的最大客户连接数。结果,web驻留公司必须提供额外、冗余的服务器来为数目增加的客户服务。获取并维护额外web服务器的成本是相当大的。
代理服务器执行一些客户连接管理功能,并且在本领域内为人所知。然而,在本领域内为人熟知且常见的是,这种代理服务器在位置上必须与服务器进行分开,并且因此必须通过服务器必须管理的,相对慢、易出错的网络连接与服务器进行通信。例如,请参见Ari Luotonen,Web代理服务器(PrenticeHall,1997),在此加入以作参考。
因此,需要一种用于减轻服务器CPU的连接管理负担,从而让服务器更有效地驻留数目增加的客户的系统和方法。
概要
本发明通过提供一种用于管理多个客户和一个服务器之间的连接的系统和方法,克服现有技术相关的问题。本发明帮助将连接管理负担从主机CPU转移到介入网络和主机总线之间的适配卡。
适配卡包括网络控制器、存储器设备、处理单元和协议适配器。存储器设备提供数据和代码的存储。代码包括通过网络控制器在网络上与客户进行通信,并且通过直接连接到服务器总线的协议适配器与服务器进行通信的代理应用。
当由处理单元进行执行时,代理应用通过利用网络建立代理应用与客户之间的网络连接,并且利用服务器总线建立代理应用与服务器之间的总线连接,管理客户连接。另外,存储器设备提供数据缓冲,运允许打开很多与客户的网络连接,而打开相对少的到服务器的总线连接。在具体实施例中,代理从大量慢的客户连接将客户数据累积在缓冲区中,然后通过快总线连接将客户数据提交给服务器。相反,代理通过快总线连接接收服务器数据,临时存储服务器数据,然后通过慢客户连接将服务器数据转发给客户。
在更为特定的实施例中,代码包括由应用代理使用以与客户和服务器进行通信的通信协议栈。在更加特定的实施例中,通信协议栈为传输控制协议/网际协议(Transmission Control Protocol/Intemet Protocol,TCP/IP)栈。
在一个实施例中,只有在代理确定已接收完整的客户请求之后,才打开服务器连接。然后在代理从服务器接收对客户请求的响应之后关闭服务器连接。可选地,在系统启动时打开预定数目的持久性服务器连接,并且代理使用这些持久性连接,与服务器进行通信。
代理应用可选地包括很多应用特定代理,包括但不限于HTTP代理、安全代理,和/或中转(pass-through)代理。在特定实施例中,代理的主进程模块从客户数据辨别应用标识符(例如,为人熟知的端口号),并且调用一个或多个与该标识符的值对应的应用特定代理。
附图简述
参照下面附图对本发明进行描述,其中相同的参考号表示相当类似的元素:
图1是本发明的服务器和适配卡的方框图;
图2是更加详细地示出代理模块的图1的适配卡的工作存储器的方框图;
图3是更加详细地示出图2的代理模块的方框图;
图4是示出存储在图2的数据缓冲区中的至少一些数据的示例性数据结构的方框图;
图5是概述本发明的一种用于管理客户和服务器之间的连接的方法的流程图;
图6是概述一种用于执行图5的方法的第一步骤的方法的流程图;
图7是概述一种用于执行图5的方法的第二步骤的方法的流程图;
图8是概述一种用于执行图5的方法的第三步骤的方法的流程图;
图9是概述一种用于执行图5的方法的第四步骤的方法的流程图;
图10是概述一种用于执行图5的方法的第五步骤的方法的流程图;
图11是概述一种用于执行图5的方法的第六步骤的方法的流程图。
详细描述
本发明通过使用运行在不同处理单元上的代理应用将大量连接管理负担从服务器的主处理器转移出来,克服现有技术的问题。在下面描述中,对众多特定细节进行阐述(例如,特定通信协议、特定软件和数据结构等),以彻底地理解本发明。然而,本领域的技术人员将知道,本发明在实施时可以不同于这些特定细节。另外,省略为人熟知的网络组件和程序实现的细节(例如,利用通信协议栈建立连接),以免不必要地使本发明变得不明了。
图1是示出利用物理网络介质104连接到网际网络102的系统100的方框图。在特定实现中,系统100是因特网web服务器,并且网际网络102是因特网,但是本领域的技术人员将知道,可以在任何类型的网络服务器中实现本发明。
系统100包括文件服务器(例如HTTP web服务器)106和适配卡108。文件服务器106利用适配卡108,在网际网络102上向客户109(1-n)提供数据,并且从其接收数据。适配卡108建立并维护客户109(1-n)和适配卡108之间的网络连接,并且建立服务器106和适配卡108之间的总线连接。如此连接之后,适配卡108代表服务器106从客户109(1-n)接收通信,并且将该通信转发给服务器106,代表客户109从服务器106接收响应,并且将该响应转发给客户109。
服务器106包括非易失性存储器110、工作存储器112、服务器海量数据存储器114、处理单元116,和一个或多个用户输入/输出(input/output,I/O)设备118,所有这些组件均利用服务器总线120(例如,PCI总线)进行相互通信。非易失性存储器110(例如,只读存储器和/或一个或多个硬盘驱动器)提供甚至当服务器106断电时仍保留的数据和代码存储。工作存储器112(例如,随机存取存储器)为服务器106提供工作存储器,并且包括在启动时载入到工作存储器112中的可执行代码(例如,操作系统)。在其它程序中,工作存储器112包括服务器应用121和通信协议栈122。服务器应用121包括让服务器106用作网络服务器的网络软件应用(例如,FTP、HTTP等)。通信协议栈122是帮助通过网际网络与其它机器进行通信的标准协议栈(例如,TCP/IP)。标准协议栈在本领域内为人熟知。例如,参见W.Richard Stevens,TCP/IP阐述,卷1(Addison-Wesley,1994),在此加入以作参考。服务器海量数据存储器114为服务器向连接到网际网络102的客户109(1-n)提供的数据提供数据存储(例如,一个或多个硬盘驱动器)。处理单元116执行工作存储器112中的指令,以使服务器106执行它的主要功能(例如,向客户提供数据,并且从其接收数据)。I/O设备118典型地包括键盘、监视器和/或帮助与服务器106的用户交互的其它设备。在网络服务器如因特网web服务器中,典型地提供有上述组件中的每个组件。
适配卡108包括非易失性存储器123、工作存储器124、处理单元126、总线协议桥128和网络控制器129,所有这些组件均利用适配器总线130进行相互通信。非易失性存储器123提供甚至当适配器108断电时仍保留的数据和代码(例如,引导代码)存储。处理单元126通过执行工作存储器124中的代码,实现适配卡108的功能。总线协议桥128提供适配器总线130与服务器总线120之间的接口,并且网络控制器129提供适配器总线130与网络介质104之间的接口。
工作存储器124为适配器108提供工作存储器,并且包括代理应用132和通信协议栈134。代理132和协议栈134在启动时从非易失性存储器123载入到工作存储器134中。可选地,代理132和协议栈134可以从一个或多个其它源,包括但并不限于服务器106的非易失性存储器110或服务器海量数据存储器114,进行载入。代理132,当由处理单元126执行时,建立并管理上述适配器108与服务器106,和适配器108与客户109之间的连接。
在本发明的这个特定实施例中,协议栈122和134是标(例如,TCP/IP)协议栈。在适配器108中使用标准通信协议栈帮助使用在绝大多数网络服务器中已存在的标准通信软件(例如,协议栈122)。然而,本领域的技术人员将知道,该特定元素(和其它所述元素,即使没有明确陈述)不是本发明的根本元素。例如,本发明可以在服务器106和适配器108中使用可定制通信软件(例如,服务器应用121与协议栈134或代理132之间的直接通信)进行实现。而且,在本发明的特定实施例中,通过向代理132提供对服务器106的资源(例如,服务器海量数据存储器114)进行直接访问,可以省略该元素。
适配卡108利用总线协议桥128和服务器总线120之间的总线连接136连接到服务器106。在该特定实施例中,总线连接136是典型的总线扩展槽,例如PCI插槽。然而,本领域的技术人员将知道,本发明可以使用其它类型的总线连接,包括但不限于ISA插槽、USB端口、串行端口或并行端口,进行实现。总线连接136帮助在代理132和服务器应用121之间进行高速、大包、相对不易出错(与网络连接相比较)的通信,大大减轻了加在服务器106的处理单元116上的连接管理负担。总而言之,代理132(运行在处理单元116上)通过慢且易于出错的网络连接与客户109进行通信,然后通过高速总线连接136代表客户109与服务器应用121进行通信。
图2是更加详细地示出代理132和协议栈134的工作存储器124的方框图。本领域的技术人员将知道,虽然代理132的各种软件模块作为相互连接的功能块进行示出,但是这些软件模块实际上是当由处理单元126(图1)执行时可以进行相互通信的存储在工作存储器124中的可执行代码块。
代理132包括主进程模块202、多个客户过程模块204(1-n)、数据缓冲区206和应用代理模块208。主进程模块202提供对代理132的各个模块的全面控制和协调。对来自网际网络102上的客户109(图1)的连接请求进行响应,主进程模块202接受连接请求,初始化数据缓冲区206中用于那个客户连接的数据结构,启动一个新的单独客户连接进程204,以处理该连接,然后通知应用代理模块208,已经建立特定客户连接。每个客户进程204处理一个这种客户连接。应用代理模块208建立并管理与服务器106的总线连接。数据缓冲区206提供对从客户109接收且目的地为服务器106的数据,从服务器106接收且目的地为客户109的数据,和与所建立客户和/或服务器连接相关的连接数据的存储。
通信协议栈134是TCP/IP栈,包括套接字层210、TCP层212、IP层214和包括网络驱动程序216和服务器总线驱动程序218的设备层。协议栈134各层的功能在本领域内为人熟知,因此在此不作详细的讨论。通过套接字层210、TCP层212、IP层214和服务器总线驱动程序218建立代理132的各个模块与服务器应用121之间的连接。通过套接字层210、TCP层212、IP层214和网络驱动程序216建立代理132的各个模块与客户109之间的连接。
图3是示出包括多个应用特定代理208(1-f)的应用代理模块208的方框图,其中应用特定代理208包括超文本传输协议(Hypertext Transfer Protocol,HTTP)代理208(1)、中转代理208(2)、安全代理208(3)和“其它”代理208(f)。通过配置一个或多个应用特定代理208(1-f)来对客户连接进行服务,主进程202将所建立客户连接通知给应用代理208。配置应用特定代理(例如,HTTP代理208(1))的一个方法是在应用特定代理的处理队列中输入客户进程标识符。
主进程202从包含在客户连接请求中的端口号确定为特定用户进程执行哪个应用特定代理。标准做法是使用为人所知的端口号标识特定网络应用和/或协议(例如,文件传输协议(File Transfer Protocol,FTP)、HTTP等)。例如,端口号80对应于HTTP连接请求。主进程202因此将启动用来响应表示端口80的连接请求的所有客户进程204通知给HTTP代理208(1)。
HTTP代理208(1)监控它被通知的每个客户进程。当HTTP代理208(1)确定完整的HTTP请求由客户进程(例如204(n))接收并存储在数据缓冲区206中时,HTTP代理208(1)打开到服务器的连接,将该请求传输到服务器,并且从服务器接收响应,并将该响应存储在数据缓冲区206中,然后关闭服务器连接。服务器响应然后由相关联的客户进程204(n)传输到客户109(n)。
当主进程202接收端口号不对应于任何一个其它应用特定代理的连接请求时,主进程202通知中转代理208(2)。中转代理208(2)简单地打开服务器连接,将从相关联的客户进程204接收的数据从数据缓冲区206传输到服务器106,然后关闭服务器连接。
主进程202可以将所有客户连接通知给一些应用特定代理,而不管相关联的端口号。例如,安全代理208(3)用来通过例如终止任何因响应缺少一些授权标记的连接请求而启动的客户进程,在执行一个其它应用特定代理之前,对所有客户连接请求进行过滤。
图3包括“其它”代理208(f),以示出应用代理208可以包括任何适合特定应用的目前所知或将来开发的代理,包括但不限于,缓存HTTP代理应用、电子邮件应用和文件传输应用。
图4示出在数据缓冲区206中实现以完成通过代理132的数据传输的客户数据结构402(1-n)和代理数据结构404(1-f)的例子。主进程202为每个客户进程204创建并初始化一个客户数据结构402,并且为应用代理208中的每个应用特定代理创建并初始化一个代理数据结构404。
每个客户数据结构402包括客户套接字406、服务器套接字408、连接状态410、输入队列412、输出队列414和应用代理数据416。对于每个客户连接(例如,连接(n)),客户套接字406(n)和服务器套接字408(n)每个分别包括客户109(n)和服务器106的IP地址和端口号,从而唯一地将每个客户数据结构402(n)与一个客户进程204(n)相关联。连接状态410(n)表示连接(n)的当前状态(例如,所接收的完整请求、所接收的响应等)。输入队列412(n)用于存储和累积由与特定数据结构402(n)相关联的客户进程204(n)从客户109(n)接收的数据。输出队列414(n)用来存储由客户进程204(n)转发到客户109(n)的来自应用代理208的数据。应用代理数据416(n)用来存储任何特定于特定应用代理的信息(例如,标志等)
每个代理数据结构(例如,404(f))包括客户队列418(f)、客户就绪队列420(f)和待读取(read pending)队列422(f)。客户队列418(f)包括与对应于代理数据结构404(f)的特定应用代理(f)相关联的每个客户进程204的客户进程描述符(例如,指向相关客户数据结构402的指针)。客户就绪队列420(f)包括在其输入队列412中有准备由相关联的应用代理(f)进行处理(例如传输到服务器(106))的数据的每个客户数据结构402的客户进程描述符。待读取队列422(f)包括等待来自服务器106的响应的每个客户进程的客户进程描述符。
本领域的技术人员将理解,上述客户数据结构402和代理数据结构404在性质上是示例性的,并且本发明可以使用其它数据结构。这种替换数据结构的配置必须依赖于所采用特定应用特定代理的功能和结构。
图5是概述本发明的一种用于管理客户和服务器之间的连接的特定方法500的流程图。在第一步骤502,代理132与客户109建立网络连接,然后在第二步骤504,利用网络连接从客户109接收通信(例如,HTTP请求)。下一步,在第三步骤506,代理132与服务器106建立总线连接,然后在第四步骤508,利用总线连接将所接收的客户通信转发给服务器106。然后,第五步骤510,代理132从服务器106接收对客户通信的响应(例如,HTML数据),并且在第六步骤512,利用客户网络连接将响应传输到客户109。最后,在第七步骤514,代理132确定是否存在终止(例如,关闭)信号,并且如果存在终止信号,那么方法500结束。如果在第七步骤514不存在终止信号,那么方法500返回到第一步骤502,以与另一客户109建立网络连接。
图6是概述一种执行方法500的第一步骤502(与客户建立网络连接)的特定方法600的流程图。在第一步骤,主进程202连接到网际网络102。然后在第二步骤604,主进程202监听网际网络102上的通信,并且确定是否存在来自客户109的连接请求。如果不存在客户连接请求,那么方法600结束。如果存在来自客户109(n)的连接请求,那么在第三步骤606,主进程202接受来自客户109(n)的连接请求,启动客户进程204(n)以处理该连接,并且初始化数据缓冲区206中的客户数据结构402(n)。下一步,在第四步骤608,主进程202从客户连接请求辨别代理应用标识符(例如,端口号),并且通过将客户进程描述符(例如,指向客户数据结构402(n)的指针)写入到各个代理数据结构404的客户队列418中,根据标识符的值通知一个或多个应用代理208(1-f)。最后,在第五步骤610,主进程202确定是否打开最大客户连接允许数。如果打开最大客户连接数,那么方法600结束。如果没有打开最大客户连接数,那么方法600返回到第二步骤604,监听另一客户请求。
图7是概述一种执行方法500的第二步骤504(从客户109接收通信)的方法700的流程图。在第一步骤702,主进程202确定是否存在任何客户进程204要进行处理以接收数据。如果主进程202已经处理完所有客户进程204(1-n),那么方法700结束。否则,在第二步骤704,主进程202调用第一客户进程204(1)。然后,在第三步骤706,客户进程204(1)检查它的客户连接(例如,TCP缓冲区),确定是否存在来自客户109(1)的任何输入数据。如果没有第一客户进程204(1)的输入数据,那么方法700返回到第一步骤702,以处理任何剩余的客户进程204(2-n)。如果在第三步骤706,客户进程204(1)确定存在来自客户109(1)的输入数据,那么在第四步骤708,客户进程204(1)检查客户数据结构402(1),确定输入队列412(1)是否可用于接收客户数据。如果输入队列412(1)不可用,那么方法700返回到第一步骤702,以处理任何剩余的客户进程204(2-n)。如果在第四步骤708,客户进程204(1)确定输入队列412(1)可用于接收数据,然后在第五步骤710,客户进程204(1)将输入客户数据传输到输入队列412(1)中。然后,在第六步骤712,客户进程204(1)确定累积在输入队列中的数据是否构成完整的请求(即,准备传输到服务器106的数据,例如完整的HTTP请求)。如果该数据不构成完整的请求,那么方法700返回到第一步骤702,以处理任何剩余的客户进程204(2-n)。然而如果在第六步骤712,客户进程204(1)确定输入队列412(1)中的数据构成完整的请求,那么,在第七步骤714,客户进程例如通过设置相应的连接状态410(1),通知代理应用208存在一个完整的请求。然后,方法700返回到第一步骤702,以确定是否存在任何更多要进行处理的客户进程204(2-n)。
图8是概述一种执行方法500的第三步骤506(与服务器106建立总线连接)的方法800的流程图。在第一步骤802,第一个应用代理208(1)从它的代理数据结构404(1)的客户队列418(1)提取第一客户描述符。然后在第二步骤804,代理208(1)检查由第一客户描述符标识的客户数据结构402的连接状态412,确定第一客户在它的输入队列412中是否存在完整的请求。如果连接状态412表示完整的请求,然后在第三步骤806,代理208(1)将该客户描述符加到它的客户就绪队列420(1)。下一步,在第四步骤808,代理208(1)确定是否打开服务器106的最大连接数。如果已经打开最大服务器连接数,那么方法800结束。如果尚未打开最大服务器连接数,那么在第五步骤810,代理208(1)打开与服务器106的总线连接,并且将连接信息写入相关联的客户数据结构402的服务器套接字408。下一步,在第六步骤812,代理208(1)确定是否它已检查它的客户队列418(1)中的最后一个客户描述符。如果已检查最后一个描述符,那么方法800结束。否则,方法800返回到第一步骤802,以提取客户队列418(1)中的下一个客户描述符。如果在第二步骤804,代理208(1)确定尚未接收完整的客户请求,那么方法800直接前进到第六步骤812。一旦处理完代理数据结构404(1)的客户队列418(1)中的所有描述符,对每个其它应用代理208(2-f),重复方法800或类似方法。
图9是概述一种执行方法500的第四步骤508(将客户通信转发给服务器106)的方法900的流程图。在第一步骤902,代理208(1)从它的代理数据结构404(1)的客户就绪队列420(1)接收第一客户描述符。然后,在第二步骤904,代理208(1)检查第一客户的数据结构402的服务器套接字408,确定是否打开服务器连接。如果打开服务器连接,那么在第三步骤906,代理208(1)通过所打开的服务器连接将客户数据(例如,HTTP请求)从客户输入队列412传输到服务器106。下一步,在第四步骤908,代理208(1)将客户描述符从客户就绪队列420(1)移到待读取队列422(1)。然后在第五步骤910,代理208(1)确定是否已检查客户就绪队列420(1)中的最后一个客户。如果没有,那么方法900返回到第一步骤902,以检查客户就绪队列420(1)中的下一客户。如果已检查最后一个客户,那么方法900结束。如果在第二步骤904,代理208(1)确定没有打开特定客户的服务器连接,那么方法900直接前进到第五步骤910,以确定是否已检查客户就绪队列420(1)中的最后一个客户。一旦处理完代理数据结构404(1)的客户就绪队列420(1)中的所有描述符,对每个其它应用代理208(2-f),重复方法900或类似方法。
图10是概述一种执行方法500的第五步骤510(从服务器106接收响应)的方法1000的流程图。在第一步骤1002,代理208(1)确定待读取队列422(1)是否为空,并且如果为空,那么方法1000结束。如果待读取队列422(1)不为空,那么在第二步骤1004,代理208(1)从待读取队列提取第一客户描述符。下一步,在第三步骤1006,代理208(1)检查由用第一客户描述符标识的客户数据结构402的服务器套接字408标识的所打开服务器连接,以确定在那个连接上是否存在任何输入服务器数据(即,对客户请求的响应)。如果在那个连接上不存在输入服务器数据,那么方法1000返回到第二步骤1004,以检查待读取队列中的下一客户。如果存在输入服务器数据,那么在第四步骤1008,代理208(1)检查确定由客户描述符标识的客户数据结构402的输出队列414是否可用。如果输出队列414不可用,那么方法1000返回到第二步骤1004,以检查待读取队列422(1)中的下一客户描述符。如果输出队列414可用,那么在第五步骤1010,代理208(1)将输入服务器数据移到客户数据结构402的输出队列414。下一步,在第六步骤1012,代理208(1)确定服务器数据是否包含“文件结束”指示符。如果否,那么在第七步骤1014,代理208(1)检查确定是否已处理待读取队列422(1)中的最后一个客户描述符。如果是,方法1000结束。如果否,方法1000返回到第二步骤1004,以从待读取队列422(1)读取下一客户描述符。
如果,在第六步骤1012,代理208(1)确定服务器数据包含文件结束指示符,那么方法1000前进到第八步骤1016,其中,代理208(1)从待读取队列删除该客户描述符,然后在第九步骤1018,关闭服务器连接。在第九步骤1018之后,方法1000返回到第七步骤1014。一旦处理完代理数据结构404(1)的待读取队列422(1)中的所有描述符,对每个其它应用代理208(2-f),重复方法1000或类似方法。
图11是概述一种执行方法500的第六步骤512(将数据传输到客户109)的方法1100的流程图。在第一步骤1102,主进程202调用第一客户进程204(1)。然后在第二步骤1104,第一客户进程204(1)确定在客户数据结构402(1)的输出队列414(1)中是否有任何数据。如果在输出队列414(1)中没有任何数据,那么方法1100返回到第一步骤1102,其中,主进程202调用剩余客户进程204(2-n)的下一个进程。然而,如果在第二步骤1104,客户进程204(1)确定在输出队列414(1)中有数据,那么在第三步骤1106,客户进程204(1)确定客户网络连接是否就绪以接收数据。如果客户网络连接没有就绪,那么方法1100返回到第一步骤1102。如果客户网络连接已经就绪,那么在第四步骤1108,客户进程204(1)将输出队列414(1)中的至少部分数据移到客户连接(例如,TCP输出缓冲区)。下一步,在第五步骤1110,主进程202确定是否已调用最后一个客户进程。如果是,则方法1100结束。如果否,则方法1100返回到第一步骤1102,以调用剩余客户进程204(2-n)的下一个进程。
现在已完成对本发明的特定实施例的描述。很多所述特性可以在不脱离本发明的范围的情况下进行替换、修改或省略。例如,适配器108的工作组件(例如处理单元126或代理132)可以直接合并到服务器中,而不是在可卸载适配卡中进行提供。而且,可以用其它数据结构代替所提供的示例性数据结构。另外,在此公布的方法和例程的特定次序不认为是本发明的本质元素。作为另一个例子,主进程202可以配置为在启动时打开预定数目的与服务器106的持久性总线连接,并且管理应用代理208(1-f)对这些连接的使用,从而消除服务器106重复打开和关闭总线连接的需要。对于本领域的技术人员,特别鉴于前述公布,将理解这些和其它与所示特定实施例的偏差。
Claims (28)
1.在可操作地连接到源服务器的内部总线的接口设备中,一种用于管理至少一个客户机和所述源服务器之间的连接的方法,所述方法包括如下步骤:
经由网络与所述客户机中的一个客户机建立网络连接;
经由所述网络连接从所述客户机接收通信;
经由所述源服务器的内部总线,与所述源服务器建立总线连接;以及
经由所述总线连接将所述客户机通信转发到所述源服务器上。
2.如权利要求1所述的方法,其中,从所述客户机接收通信的所述步骤包括在缓冲区中存储所述通信。
3.如权利要求2所述的方法,其中,在缓冲区中存储所述通信的所述步骤包括在所述缓冲区中累积一个或多个来自所述客户机的单独传输。
4.如权利要求3所述的方法,其中,与所述服务器建立总线连接的所述步骤包括在与所述服务器建立所述总线连接之前,等待直到在所述缓冲区中累积出一个完整的客户机请求。
5.如权利要求4所述的方法,进一步包括:
利用所述总线连接从所述服务器接收对所述客户机通信的响应;和
利用所述网络连接将所述响应转发给所述客户机。
6.如权利要求5所述的方法,其中,从所述服务器接收所述响应的所述步骤包括在缓冲区中存储所述响应。
7.如权利要求6所述的方法,其中,从所述服务器接收所述响应的所述步骤包括在接收到所述响应之后终止所述总线连接。
8.如权利要求1所述的方法,进一步包括:
利用所述总线连接从所述服务器接收对所述客户机通信的响应;和
利用所述网络连接将所述响应转发给所述客户机。
9.如权利要求8所述的方法,其中,从所述服务器接收所述响应的所述步骤包括在缓冲区中存储所述响应。
10.如权利要求9所述的方法,其中,从所述服务器接收所述响应的所述步骤包括在接收到所述响应之后终止所述总线连接。
11.如权利要求8所述的方法,其中,所述客户机通信包括HTTP请求。
12.如权利要求11所述的方法,其中,来自所述服务器的所述响应包括HTTP页面。
13.如权利要求1所述的方法,其中,所述与客户机建立网络连接的步骤包括利用所述网络与多个客户机中的每个建立单独的网络连接。
14.如权利要求13所述的方法,其中,与所述服务器建立所述总线连接的所述步骤包括利用所述服务器的所述内部总线与所述服务器建立多个连接。
15.如权利要求14所述的方法,其中,最大同时客户机连接数超过最大同时服务器连接数。
16.如权利要求1所述的方法,进一步包括在将所述客户机通信转发给所述服务器之前,对所述客户机执行安全操作。
17.如权利要求1所述的方法,其中:
接收所述客户机通信的所述步骤包括从所述客户机通信辨别应用标识符;和
将所述客户机通信转发给所述服务器的所述步骤包括根据所述应用标识符调用多个代理应用中的一个。
18.如权利要求17所述的方法,其中,所述应用标识符为连接端口号。
19.如权利要求1所述的方法,其中,接收所述客户机通信的所述步骤包括接收HTTP请求的至少一部分。
20.一种可操作地连接到源服务器的内部总线的适配卡,用于管理源服务器和网络的通信,所述适配卡包括:
网络控制器,用于在所述网络上与客户机进行通信;
存储器设备,用于存储数据和代码,所述代码包括反向代理应用;
处理单元,连接到所述存储器设备,用于执行所述代码;和
协议适配器,连接到所述处理单元,并且用来连接到所述源服务器的所述内部总线,以与所述源服务器进行通信。
21.如权利要求20所述的适配卡,其中,所述代码进一步包括通信协议栈。
22.如权利要求21所述的适配卡,其中,所述通信协议栈包括标准TCP/IP协议栈。
23.如权利要求20所述的适配卡,其中,所述代理应用包括安全代理。
24.如权利要求20所述的适配卡,其中,所述代理应用包括中转代理。
25.如权利要求20所述的适配卡,其中,所述代理应用包括HTTP代理。
26.如权利要求20所述的适配卡,进一步包括用于存储从所述客户机接收的数据的数据缓冲区。
27.如权利要求20所述的适配卡,其中,所述代理应用包括一主进程模块,该模块对从所述客户机中的一个接收的连接请求进行响应,并且用来与所述客户机建立连接,并且启动新的客户机进程模块来维护所述所建立连接。
28.如权利要求27所述的适配卡,其中,所述主进程模块进一步用来将所述所建立连接通知给所述代理应用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/405,608 US6877036B1 (en) | 1999-09-24 | 1999-09-24 | System and method for managing connections between a client and a server |
US09/405,608 | 1999-09-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1408089A CN1408089A (zh) | 2003-04-02 |
CN1288575C true CN1288575C (zh) | 2006-12-06 |
Family
ID=23604408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB00814155XA Expired - Fee Related CN1288575C (zh) | 1999-09-24 | 2000-09-22 | 用于管理客户与服务器之间的连接的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US6877036B1 (zh) |
EP (1) | EP1226482A4 (zh) |
JP (2) | JP4896328B2 (zh) |
CN (1) | CN1288575C (zh) |
AU (1) | AU4019601A (zh) |
CA (1) | CA2385899C (zh) |
TW (1) | TW475114B (zh) |
WO (1) | WO2001022195A2 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920637B2 (en) * | 1995-11-17 | 2005-07-19 | Symbol Technologies, Inc. | Method and apparatus for implementing alerts on a browser running on a portable handheld device |
JP3974276B2 (ja) * | 1998-11-30 | 2007-09-12 | ペンタックス株式会社 | セラミックス複合体の製造方法およびセラミックス複合体 |
US6877036B1 (en) * | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
US7272649B1 (en) * | 1999-09-30 | 2007-09-18 | Cisco Technology, Inc. | Automatic hardware failure detection and recovery for distributed max sessions server |
US6854018B1 (en) * | 2000-03-20 | 2005-02-08 | Nec Corporation | System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size |
US7392282B2 (en) * | 2001-03-14 | 2008-06-24 | International Business Machines Corporation | Method for ensuring client access to messages from a server |
US20020156841A1 (en) * | 2001-04-13 | 2002-10-24 | Bjorn Landfeldt | Accessing distributed proxy configurations |
US7200679B2 (en) | 2001-04-13 | 2007-04-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Creating distributed proxy configurations |
US8090866B1 (en) * | 2002-01-18 | 2012-01-03 | Cisco Technology, Inc. | TCP proxy connection management in a gigabit environment |
US20040105445A1 (en) * | 2002-06-19 | 2004-06-03 | Jeremy Wyn-Harris | Internet protocol for resource-constrained devices |
US7426535B2 (en) * | 2002-10-08 | 2008-09-16 | Telecommunication Systems, Inc. | Coordination of data received from one or more sources over one or more channels into a single context |
JP2004145392A (ja) * | 2002-10-21 | 2004-05-20 | Kddi Corp | 動画像ファイル配信装置 |
CN100452014C (zh) * | 2003-06-02 | 2009-01-14 | 美国在线服务公司 | 提供关于一项目与一网页相关的指示的方法及设备 |
CN1302364C (zh) * | 2004-02-11 | 2007-02-28 | 财团法人资讯工业策进会 | 应用界面桥接方法与系统 |
US20050228509A1 (en) * | 2004-04-07 | 2005-10-13 | Robert James | System, device, and method for adaptively providing a fieldbus link |
GB0425966D0 (en) * | 2004-11-25 | 2004-12-29 | Vodafone Plc | Server functionality within a client |
US9055088B2 (en) * | 2005-03-15 | 2015-06-09 | International Business Machines Corporation | Managing a communication session with improved session establishment |
WO2006126221A1 (en) * | 2005-05-27 | 2006-11-30 | Telecom Italia S.P.A. | System and method for performing mobile services, in particular push and pull services, in a wireless communication network |
EP1833206B1 (en) * | 2006-03-10 | 2013-12-04 | Mitel Networks Corporation | Method for distributing connection attempts to a server |
US7649902B2 (en) * | 2006-11-22 | 2010-01-19 | Sun Microsystems, Inc. | Method and apparatus for performing syntax-directed application layer data buffering |
US20080309665A1 (en) * | 2007-06-13 | 2008-12-18 | 3D Systems, Inc., A California Corporation | Distributed rapid prototyping |
CN101383879B (zh) * | 2007-09-07 | 2011-05-18 | 米特尔网络公司 | 用于分配对服务器的连接尝试的方法 |
US20090097470A1 (en) * | 2007-10-12 | 2009-04-16 | Collier David S | Methods and systems for communicating data |
CN101996288A (zh) * | 2009-08-18 | 2011-03-30 | 精品科技股份有限公司 | 资讯安全管理系统 |
CN102118390B (zh) * | 2011-01-07 | 2015-07-22 | 杭州华三通信技术有限公司 | 多网卡设备的多应用系统联动的方法及设备 |
US8321566B2 (en) | 2011-02-24 | 2012-11-27 | Jibe Mobile | System and method to control application to application communication over a network |
WO2012159287A1 (zh) * | 2011-06-23 | 2012-11-29 | 华为技术有限公司 | 数据传输方法和设备 |
US9154580B2 (en) * | 2012-02-01 | 2015-10-06 | Tata Consultancy Services Limited | Connection management in a computer networking environment |
CN103516851B (zh) * | 2012-06-30 | 2016-05-25 | 北京新媒传信科技有限公司 | 一种无线产品云测试平台系统 |
KR102090493B1 (ko) * | 2013-01-22 | 2020-03-18 | 삼성전자주식회사 | 무선 통신 네트워크에서 http 프로토콜의 전송 지연과 http 서버의 프로세싱 부하를 줄이는 장치 및 방법 |
US11222001B2 (en) * | 2013-03-15 | 2022-01-11 | Sap Se | Augmenting middleware communication services |
US9559896B2 (en) * | 2013-07-08 | 2017-01-31 | Cisco Technology, Inc. | Network-assisted configuration and programming of gateways in a network environment |
US10230770B2 (en) * | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
CN105915658B (zh) * | 2016-07-04 | 2019-07-23 | 优刻得科技股份有限公司 | 获取客户端ip地址的数据调用方法、数据传输方法 |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01226059A (ja) * | 1988-03-04 | 1989-09-08 | Matsushita Graphic Commun Syst Inc | 通信アダプタ |
JPH0476752A (ja) | 1990-07-19 | 1992-03-11 | Nec Corp | バッファ制御方式 |
JPH04326227A (ja) | 1991-04-25 | 1992-11-16 | Nippon Telegr & Teleph Corp <Ntt> | 高速回線制御装置 |
US5426639A (en) | 1991-11-29 | 1995-06-20 | At&T Corp. | Multiple virtual FIFO arrangement |
JPH05225094A (ja) | 1992-02-10 | 1993-09-03 | Nec Corp | 通信制御装置システムにおけるバッファプール制御方式 |
FR2699706B1 (fr) | 1992-12-22 | 1995-02-24 | Bull Sa | Système de transmission de données entre un bus d'ordinateur et un réseau. |
JP2963298B2 (ja) * | 1993-03-26 | 1999-10-18 | 富士通株式会社 | 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム |
JPH0787100A (ja) | 1993-09-17 | 1995-03-31 | Hitachi Ltd | 通信アダプタ |
US5550981A (en) | 1994-06-21 | 1996-08-27 | At&T Global Information Solutions Company | Dynamic binding of network identities to locally-meaningful identities in computer networks |
US5678007A (en) | 1994-11-22 | 1997-10-14 | Microsoft Corporation | Method and apparatus for supporting multiple outstanding network requests on a single connection |
US5896508A (en) | 1995-02-23 | 1999-04-20 | Advanced Micro Devices, Inc. | Hub-network adapter device for a file server personal computer |
JPH08314779A (ja) | 1995-05-16 | 1996-11-29 | Hitachi Ltd | サーバーシステム |
US5898830A (en) | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
US5754774A (en) | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
US5878213A (en) * | 1996-02-15 | 1999-03-02 | International Business Machines Corporation | Methods, systems and computer program products for the synchronization of time coherent caching system |
US5832512A (en) | 1996-04-15 | 1998-11-03 | Sun Microsystems, Inc. | Apparatus and method for file number re-mapping for disconnected operations in a client-server network |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5867650A (en) | 1996-07-10 | 1999-02-02 | Microsoft Corporation | Out-of-band data transmission |
US6091737A (en) * | 1996-11-15 | 2000-07-18 | Multi-Tech Systems, Inc. | Remote communications server system |
JP3217002B2 (ja) | 1996-11-19 | 2001-10-09 | 株式会社日立製作所 | デジタルスタジオ装置およびその制御方法 |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
US6185625B1 (en) | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
US6182141B1 (en) * | 1996-12-20 | 2001-01-30 | Intel Corporation | Transparent proxy server |
US5974496A (en) | 1997-01-02 | 1999-10-26 | Ncr Corporation | System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card |
US6122514A (en) | 1997-01-03 | 2000-09-19 | Cellport Systems, Inc. | Communications channel selection |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US6138162A (en) | 1997-02-11 | 2000-10-24 | Pointcast, Inc. | Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request |
US5935249A (en) * | 1997-02-26 | 1999-08-10 | Sun Microsystems, Inc. | Mechanism for embedding network based control systems in a local network interface device |
US6119161A (en) | 1997-02-28 | 2000-09-12 | International Business Machines Corporation | Managing connection requests in a dialup computer network |
US6237031B1 (en) | 1997-03-25 | 2001-05-22 | Intel Corporation | System for dynamically controlling a network proxy |
US6104716A (en) * | 1997-03-28 | 2000-08-15 | International Business Machines Corporation | Method and apparatus for lightweight secure communication tunneling over the internet |
US5924116A (en) | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
JP3173418B2 (ja) | 1997-04-18 | 2001-06-04 | 日本電気株式会社 | ストリーム再生制御方式及びプログラムを記録した機械読み取り可能な記録媒体 |
JP3688464B2 (ja) * | 1997-05-06 | 2005-08-31 | 株式会社東芝 | 端末装置、サーバ装置、通信装置および制御方法 |
US5872919A (en) | 1997-05-07 | 1999-02-16 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic |
US6072483A (en) | 1997-06-02 | 2000-06-06 | Sony Corporation | Active frame scroll interface |
JP2998701B2 (ja) | 1997-06-27 | 2000-01-11 | 日本電気株式会社 | データ通信におけるサーバアクセス方式 |
US6098108A (en) * | 1997-07-02 | 2000-08-01 | Sitara Networks, Inc. | Distributed directory for enhanced network communication |
US6006268A (en) * | 1997-07-31 | 1999-12-21 | Cisco Technology, Inc. | Method and apparatus for reducing overhead on a proxied connection |
JPH1165969A (ja) * | 1997-08-19 | 1999-03-09 | Toshiba Corp | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 |
US6222533B1 (en) | 1997-08-25 | 2001-04-24 | I2 Technologies, Inc. | System and process having a universal adapter framework and providing a global user interface and global messaging bus |
US6035324A (en) | 1997-08-28 | 2000-03-07 | International Business Machines Corporation | Client-side asynchronous form management |
US6226642B1 (en) * | 1997-09-11 | 2001-05-01 | International Business Machines Corporation | Content modification of internet web pages for a television class display |
US6247050B1 (en) | 1997-09-12 | 2001-06-12 | Intel Corporation | System for collecting and displaying performance improvement information for a computer |
US6377993B1 (en) * | 1997-09-26 | 2002-04-23 | Mci Worldcom, Inc. | Integrated proxy interface for web based data management reports |
US6088803A (en) | 1997-12-30 | 2000-07-11 | Intel Corporation | System for virus-checking network data during download to a client device |
US6101328A (en) | 1997-12-31 | 2000-08-08 | Intel Corporation | System for preventing multiple instances of the same dynamic executable module |
US6822955B1 (en) | 1998-01-22 | 2004-11-23 | Nortel Networks Limited | Proxy server for TCP/IP network address portability |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6094699A (en) * | 1998-02-13 | 2000-07-25 | Mylex Corporation | Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller |
US6115755A (en) * | 1998-04-09 | 2000-09-05 | Novaweb Technologies, Inc. | Integrated apparatus for interfacing several computers to the internet through a single connection |
JPH11306053A (ja) | 1998-04-24 | 1999-11-05 | Hitachi Ltd | データ転送方法およびそれを実施する情報処理装置 |
US6745243B2 (en) * | 1998-06-30 | 2004-06-01 | Nortel Networks Limited | Method and apparatus for network caching and load balancing |
US6088796A (en) * | 1998-08-06 | 2000-07-11 | Cianfrocca; Francis | Secure middleware and server control system for querying through a network firewall |
DK1030244T3 (da) * | 1998-09-16 | 2014-10-13 | Mitsui Bussan | Multimedie direkte kommunikationssystem forbundet med HTTP-protokol |
US6330605B1 (en) * | 1998-11-19 | 2001-12-11 | Volera, Inc. | Proxy cache cluster |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6718390B1 (en) * | 1999-01-05 | 2004-04-06 | Cisco Technology, Inc. | Selectively forced redirection of network traffic |
US6529937B1 (en) * | 1999-01-29 | 2003-03-04 | International Business Machines Corporation | System and method for communicating client IP addresses to server applications |
US6081900A (en) * | 1999-03-16 | 2000-06-27 | Novell, Inc. | Secure intranet access |
US6553422B1 (en) * | 1999-04-26 | 2003-04-22 | Hewlett-Packard Development Co., L.P. | Reverse HTTP connections for device management outside a firewall |
US6226752B1 (en) * | 1999-05-11 | 2001-05-01 | Sun Microsystems, Inc. | Method and apparatus for authenticating users |
US7275086B1 (en) * | 1999-07-01 | 2007-09-25 | Intellisync Corporation | System and method for embedding a context-sensitive web portal in a computer application |
US6567857B1 (en) * | 1999-07-29 | 2003-05-20 | Sun Microsystems, Inc. | Method and apparatus for dynamic proxy insertion in network traffic flow |
US6401125B1 (en) * | 1999-08-05 | 2002-06-04 | Nextpage, Inc. | System and method for maintaining state information between a web proxy server and its clients |
JP3478200B2 (ja) * | 1999-09-17 | 2003-12-15 | 日本電気株式会社 | サーバ・クライアント間双方向通信システム |
US6801927B1 (en) * | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
US6877036B1 (en) * | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
AU2002227168A1 (en) | 2000-10-23 | 2002-05-06 | Akamba Corporation | System and method for managing connections between clients and a server using cache memory to store server responses |
-
1999
- 1999-09-24 US US09/405,608 patent/US6877036B1/en not_active Expired - Lifetime
-
2000
- 2000-09-22 WO PCT/US2000/026097 patent/WO2001022195A2/en active Application Filing
- 2000-09-22 EP EP00963734A patent/EP1226482A4/en not_active Withdrawn
- 2000-09-22 CN CNB00814155XA patent/CN1288575C/zh not_active Expired - Fee Related
- 2000-09-22 JP JP2001525498A patent/JP4896328B2/ja not_active Expired - Fee Related
- 2000-09-22 CA CA 2385899 patent/CA2385899C/en not_active Expired - Fee Related
- 2000-09-22 AU AU40196/01A patent/AU4019601A/en not_active Abandoned
- 2000-10-05 TW TW89119604A patent/TW475114B/zh not_active IP Right Cessation
-
2005
- 2005-03-22 US US11/085,999 patent/US9009326B2/en not_active Expired - Fee Related
-
2011
- 2011-10-24 JP JP2011233379A patent/JP5364773B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-13 US US14/685,270 patent/US9729664B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2001022195A3 (en) | 2001-08-23 |
WO2001022195A2 (en) | 2001-03-29 |
EP1226482A4 (en) | 2009-09-02 |
US9729664B2 (en) | 2017-08-08 |
CA2385899C (en) | 2010-02-16 |
US6877036B1 (en) | 2005-04-05 |
JP2012018699A (ja) | 2012-01-26 |
JP2003523552A (ja) | 2003-08-05 |
US20150215419A1 (en) | 2015-07-30 |
CA2385899A1 (en) | 2001-03-29 |
US9009326B2 (en) | 2015-04-14 |
EP1226482A2 (en) | 2002-07-31 |
US20050198311A1 (en) | 2005-09-08 |
TW475114B (en) | 2002-02-01 |
JP4896328B2 (ja) | 2012-03-14 |
JP5364773B2 (ja) | 2013-12-11 |
AU4019601A (en) | 2001-04-24 |
CN1408089A (zh) | 2003-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1288575C (zh) | 用于管理客户与服务器之间的连接的系统和方法 | |
EP1213892B1 (en) | System and method for implementing a client side HTTP stack | |
CN1205565C (zh) | 客户机/服务器网络中服务器对象之间的工作负荷管理 | |
CN1171153C (zh) | 管理服务器和客户机间的连接的系统和方法 | |
US7428597B2 (en) | Content-based routing system and method | |
CN1221898C (zh) | 刷新网络代理高速缓存服务器对象的系统和方法 | |
EP1191438A2 (en) | Web server in-kernel interface to data transport system and cache manager | |
CN1592303A (zh) | 用于应用实例级工作负荷分配亲合性的方法和系统 | |
JP2005539298A (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
CN1514977A (zh) | 根据共享属性而由压缩的队列对来建立多重虚拟队列对的配置 | |
WO2003021436A2 (en) | Selective offloading of protocol processing | |
US8266630B2 (en) | High-performance XML processing in a common event infrastructure | |
CN1878181A (zh) | 用于管理dns请求的方法和数据处理系统 | |
CN1848849A (zh) | 复制目录修改的方法和装置 | |
EP1195677A1 (en) | Dynamic class loading | |
CN1929463A (zh) | 对象请求代理、用于提供资源高效传送的方法和装置 | |
CN100350768C (zh) | 用于提供安全的系统访问的方法和系统 | |
CN1833207A (zh) | 用于基于网络来对多个空间分布式装置进行监控和控制的系统和方法 | |
CN1932760A (zh) | 开发和执行平台 | |
CN1842048A (zh) | 数据中继方法和数据中继装置 | |
CN1794730A (zh) | 增强型互联网会话管理协议 | |
CN1292338C (zh) | 一种绑定计算资源和存储资源的装置 | |
CN101060487A (zh) | 一种数据转发系统和方法 | |
CN1829969A (zh) | 安装-运行-去除机制 | |
Titus et al. | Introducing. NET Remoting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061206 Termination date: 20170922 |