CN1148927C - 增加网浏览器的性能并和网服务器通信的方法和设备 - Google Patents
增加网浏览器的性能并和网服务器通信的方法和设备 Download PDFInfo
- Publication number
- CN1148927C CN1148927C CNB96193946XA CN96193946A CN1148927C CN 1148927 C CN1148927 C CN 1148927C CN B96193946X A CNB96193946X A CN B96193946XA CN 96193946 A CN96193946 A CN 96193946A CN 1148927 C CN1148927 C CN 1148927C
- Authority
- CN
- China
- Prior art keywords
- server
- communication
- web browser
- computer
- client
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 462
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000002708 enhancing effect Effects 0.000 claims abstract description 4
- 238000000151 deposition Methods 0.000 claims description 202
- 230000004044 response Effects 0.000 claims description 118
- 230000002093 peripheral effect Effects 0.000 claims description 113
- 230000005540 biological transmission Effects 0.000 claims description 52
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 15
- 238000000926 separation method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 230000002045 lasting effect Effects 0.000 claims description 6
- 230000004069 differentiation Effects 0.000 abstract 1
- 210000000214 mouth Anatomy 0.000 description 137
- 230000006870 function Effects 0.000 description 70
- 230000015572 biosynthetic process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 13
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- VKWMGUNWDFIWNW-UHFFFAOYSA-N 2-chloro-1,1-dioxo-1,2-benzothiazol-3-one Chemical compound C1=CC=C2S(=O)(=O)N(Cl)C(=O)C2=C1 VKWMGUNWDFIWNW-UHFFFAOYSA-N 0.000 description 1
- HILUWRPVFKJTAD-ZGHMGGRHSA-N GA21 Chemical compound O=C(O)[C@H]1[C@@H]2[C@]3(C(=O)O)C(=O)O[C@@]2([C@H]2[C@]41CC(=C)[C@@](O)(C4)CC2)CCC3 HILUWRPVFKJTAD-ZGHMGGRHSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security 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/01—Protocols
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种增强客户机应用程序驻留于第一计算机并且和驻留于远离第一计算机的第二计算机中的服务器应用程序通信的客户机/服务器系统的性能的方法、设备和程序产品。客户机应用程序和服务器应用程序采用客户机/服务器独立通信协议在客户机和服务器之间通信并且第一计算机中的客户机应用程序和第二计算机中的服务器应用程序之间的通信的至少一段通过外部通信链接进行。该方法、设备和程序产品在通过外部通信链接传输通信之前,截取由远程源于客户机的以客户机/服务器独立通信协议进行的通信,并且将源于客户机的通信转换为第二客户机/服务器专用通信协议。转换后的通信通过外部通信链接被传输并且接收通过外部通信链接传输的通信。通过外部通信链接接收到的通信被从客户机/服务器专用通信协议转换为客户机/服务器独立通信协议,并且远程源于客户机的通信以客户机/服务器独立通信协议的形式被提供给服务器。差分、超高速缓存或协议还原技术增加了通过外部通信链接通信的性能。该应用程序可做为网浏览器和网服务器并且可通过无线通信链接进行通信。
Description
本发明涉及客户机服务器应用程序,例如网浏览器和网服务器,之间的通信。具体地说,本发明涉及在两个计算机之间以低速或无线通信连接进行通信,一个计算机运行客户机应用程序,另一个计算机运行服务器应用程序。
最近对“信息高速公路”的宣传和强调已经使公众日益意识到并接受互连网作为公共通信媒体。对互连网作为在多重网络之间通信和会话的可视媒体的这种宽广的认识也已经形成广泛的依靠互连网标准协议在计算机网络间进行对话的既定用户基础。
互连网的范型是客户机-服务器关系,其中互连网客户机(浏览器)和互连网服务器通信。为了提供对互连网更多的访问,客户机和服务器使用的通信协议和语言都已经标准化。这些协议包括超文本传输协议(HTTP),它是客户机和服务器之间通信所使用的通信协议,及传输控制协议/网间协议(TCP/IP),它的TCP部分是用于计算机间或应用程序之间通信的专用传输协议。被标准化的还有客户机和服务器通信所使用的语言,它被称作超文本标记语言(HTML)。由于这些协议和语言与机器无关,并且利用无连接最优成绩协议来发送信息,因此各个事项是完全自主的。这样,例如,从客户机来的每条信息都含有关于浏览器权力的信息并且对于将被完成的通信和其它任一通信无关。这种客户机和服务器之间通信的自主特性可称作为“无状态”通信,并且对于指定的通信增加了客户机和服务器之间所必须传输的数据的数量。
在全球网客户机/服务器应用程序语境中,客户机可是作为用户界面的网浏览器,网浏览器将用户的请求发送给适当的网服务器,并且格式化和显示从网服务器返回的HTML数据。网浏览器同样估算HTML数据以决定在HTML数据中是否存在任何要求网浏览器启动的后继浏览器请求的超连接语句。网服务器作为客户机的服务器处理网浏览器的请求及以HTTP数据流的HTML数据部分返回被请求的响应。
作为全球网通信的典型例子,网浏览器启动向网服务器请求“主页”的情况说明了HTTP,HTML,TCP和网浏览器以及网服务器之间的基本关系。当网浏览器的用户向某一特定网站请求信息时,网浏览器通过向网服务器发送一“取得”请求确定所要求的网站,对于本例来说是“主页”的统一资源定位器(URL),来启动和网服务器的通信。URL作为网站的地址,在互联网上是统一的。网服务器随后获得并传输对应于由URL确定的主页的HTML数据给网浏览器。这种操作包含在互联网上由互联网服务器进行的远程通信或URL可确定浏览器所连接的局域网中的服务器。网浏览器随后估价从网服务器以HTTP数据流接收到的HTML数据以查看其中是否嵌入有任何超级连接,例如一个图标或图像,如果存在这样的超级连接就启动确定超级连接的URL的请求以获得确定的数据。这些数据随后被编入主页并显示给用户。如这个简单例子所示,由网浏览器发送的单用户输入请求可导致由网浏览器自动执行的多个附加的请求以响应对应于用户输入请求的HTML数据的接收。
基于互联网的系统的基本通信结构描述于图1。在图1中,网浏览器10通过通信链接15和网服务器20通信连接。这种通信链接是典型的局域网连接、广域网连接、通过电话线的连接或多种连接方式的组合。网浏览器10和网服务器20采用TCP/IP通信。对于互联网通信的大部分,网浏览器和网服务器采用通过网浏览器和网服务器之间的TCP/IP链接在网浏览器和网服务器之间传输的类属通信协议HTTP进行通信。网浏览器10和网服务器20之间实际上传输的数据是如上所述的HTTP数据对象(例如HTML数据)。网服务器20可能是一代理者,它从若干网浏览器接收网浏览器通信并将这些通信传输给适当的服务器。
网浏览器/网服务器、他们的共有信息和传输协议、HTML和HTTP的普及已经使公众很快接受网技术作为网络访问信息的通用界面。此外,由于用于网浏览器和网服务器之间通信的协议和语言的标准化,从而不论用户使用Netscape NavigatorTM,NCSA MosaicTM,WebExplorerTM或其它任何网浏览器作为他们访问网络信息的网浏览器,通信协议和语言都是相同的。从而,和互联网连通性相结合的网浏览器的大量已安装的用户基础,网应用程序编写容易及服务器采用HTTP规定的公共网关接口(CGI)使网技术对于大多数格式型应用程序具有很大的吸引力。
在互联网越来越普及,被越来越多的人接受的同时,移动式计算也越来越普及。膝上型计算机、笔记本式计算机、个人数字/通信助理器(PDAS/PCAS)及其它便携式设备已经使得对无线通信的要求增加。但是,无线广域网,蜂窝式通信和无线电分组通信如果用于网语境中都将受到同样的限制。通信每个字节的高费用,反应时间慢,带宽低及不可靠性都妨碍无线技术应用于全球网的无状态通信协议。另外,由于网协议无状态,通过无线连接传输的每次请求的数据量和请求的次数都将大于非自主式通信所必需的数据量及请求次数。这样,由于网技术通用性方面的因素加重了无线技术的弱点,因此将无线技术或任何低速通信技术和网技术结合看起来是不实际的。
鉴于上述的局限性,本发明的一个目的是在低速通信环境,例如无线通信中利用全球网技术的已安装的用户基础。
本发明的另一个目的是在低速或无线通信系统使用现有的通信协议和语言而不必修改网浏览器或网服务器应用程序。
本发明的又一个目的是提供一种通过外部通信链接进行通信的方法,它可减少所要求的通信数量从而增强通信系统的性能。
鉴于这些和其它目的,本发明提供一种增强驻留于第一计算机的网浏览器应用程序性能及采用超文本传输协议(HTTP)和驻留于远离第一计算机的第二计算机中的网服务器应用程序通信的方法。第一计算机的网浏览器应用程序和第二计算机的网服务器应用程序之间的通信的至少一段采用外部通信链接进行。本发明的方法的一个实施例包括在外部通信链接上传输HTTP数据流之前,截取对应于源于网浏览器的通信的HTTP数据流。将截取的源于网浏览器的HTTP数据流从HTTP协议转换为客户机/服务器专用通信协议,并将转换后的源于网浏览器的通信通过外部通信链接以客户机/服务器专用数据流的形式传输给第二计算机。第二计算机接收到通过外部通信链接传输的客户机/服务器专用数据流并通过将以客户机/服务器专用通信协议接收到的客户机/服务器专用数据流转换为HTTP数据流来从通过外部通信链接接收到的客户/服务器专用数据流重新产生对应于源于网浏览器的通信的HTTP数据流。源于网浏览器的通信以HTTP数据流的形式提供给网服务器。
在本发明的另一个实施例中,转换后的源于网浏览器的通信通过无线通信链接被传输。
本发明的采用驻留于第一计算机中高速缓存的另一种情况还包括把网浏览器响应于源于网浏览器的、和网服务器通信而接收的HTTP数据流存储于驻留于第一计算机中的超高速缓存,以产生对应于源于网浏览器的、和网服务器通信的客户机超高速缓存入口。询问源于网浏览器的通信以确定是否存在对应于源于网浏览器的通信的客户机超高速缓存入口。如果存在对应于源于网浏览器的通信的客户机超高速缓存入口,则响应源于网浏览器的通信将客户机超高速缓存入口以HTTP数据流的形式提供给网浏览器。
本发明的另一种情况包括存储用户确定的和特定网浏览器信息请求相关的信息以便提供驻留于第一计算机中的用户确定的信息。询问源于网浏览器的通信以确定由网浏览器请求的信息是否对应于一个用户为其定义的信息被存储的请求,并且如果网浏览器通信对应于一个用户为其定义的信息被存储的请求,则所述用户定义的、存储的信息以HTTP数据流的形式被提供给网浏览器以响应源于网浏览器的通信。
本发明采用时间相干超高速缓存的另一个实施例包括存储客户机超高速缓存入口的产生时间以产生客户机超高速缓存入口时间记录,并估价客户机超高速缓存入口时间记录以确定对应于源于网浏览器的通信的客户机超高速缓存入口是否在网浏览器请求信息之前的预定的客户机相干性时间间隔中产生。如果客户机超高速缓存入口在网浏览器请求信息之前在预定的客户机相干性时间间隔中产生,那么将客户机超高速缓存入口提供给网浏览器以响应源于网浏览器的通信。客户机超高速缓存入口也可跨过网浏览器的多个实例(instance)被维持。
本发明的另一个实施例包括服务器超高速缓存,其中从网服务器接收到的响应源于网浏览器的通信的HTTP数据流被存储于驻留于第二计算机中的超高速缓存,以产生一服务器请求超高速缓存入口。询问源于网浏览器的通信以确定对应于浏览器开始的通信的服务器请求超高速缓存入口是否已被存入超高速缓存中。如果服务器超高速缓存入口存在,则和源于网浏览器的通信相关的服务器超高速缓存入口被转换为客户机/服务器专用通信协议,并且通过外部通信链接以客户机/服务器专用数据流被发送给第一计算机。第一计算机获得通过外部通信链接传输的客户机/服务器专用数据流,并通过将以客户机/服务器专用通信协议接收到的客户机/服务器专用数据流转换为HTTP数据流来从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于服务器请求超高速缓存入口的HTTP数据流。对应于网浏览器请求的信息的服务器请求超高速缓存入口以HTTP数据流的形式被提供给网浏览器。
本发明的超高速缓存方面的另一个实施例包括确定在第二计算机接收源于网浏览器的通信之前是否在预定的客户机相干性时间间隔中产生对应于源于网浏览器的通信的服务器请求超高速缓存入口,并且如果在预定的客户机相干性时间间隔中产生服务器请求超高速缓存入口,那么将对应于源于网浏览器的通信的服务器请求超高速缓存入口转换为客户机/服务器专用通信协议。另一个实施例包括确定对应于源于网浏览器的通信的、和对应于源于网浏览器的通信的服务器超高速缓存入口相同的客户机超高速缓存入口是否存在。计算第二计算机接收到源于网浏览器的通信的时间和对应于源于网浏览器的通信的服务器请求超高速缓存入口的产生时间之间的时间间隔以提供入口时期(entry age)数据。如果两个超高速缓存入口相同,那么通过外部通信链接将包含有对应于源于网浏览器的通信的服务器超高速缓存入口的入口时期数据的相干入口响应发送给第一计算机。通过从第一计算机的当前时间中减去从相干入口响应中接收到的入口时期数据来更新对应于源于网浏览器的通信的客户机超高速缓存入口时间记录。
在本发明的另一个包括用差分来减少外部通信链接上的数据的实施例中,源于网浏览器的通信对应于一公共网关接口(CGI)请求。询问所截取的CGI请求以确定是否存在对应于所截取的CGI请求的客户机基础超高速缓存入口,以提供一客户机CGI基础格式。同样询问截取的CGI请求以确定对应于所截取的CGI请求的服务器基础超高速缓存入口是否存在,以提供服务器CGI基础格式。将从网服务器接收到的响应浏览器开始的通信,即对公共网关接口(CGI)的请求,的HTTP数据流存储在驻留于第二计算机的超高速缓存中,以产生服务器基础超高速缓存入口,并且把将提供给网浏览器的响应浏览器开始的通信,即对CGI的请求的HTTP数据流存入驻留于第一计算机的超高速缓存以产生客户机基础超高速缓存入口。在外部通信链接上传输HTTP数据流之前,截取对应于源于网服务器的通信响应截取的CGI请求的HTTP数据流。将截取的CGI响应和服务器的CGI基础格式作比较,以提供对应于截取的CGI响应和服务器CGI基础格式之间的差分的CGI差分数据,并且通过外部通信链接以客户机/服务器专用数据流的形式将CGI差分数据发送给第一计算机的网浏览器。第二计算机通过外部通信链接传输的客户机/服务器专用数据流被第一计算机获得,并且通过将客户机CGI基础格式和通过外部通信链接接收到的CGI差分数据结合以产生对应于截取的CG I响应的HTTP数据流来从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于网服务器来的通信的HTTP数据流。源于网服务器的通信以HTTP数据流的形式被提供给网浏览器。
本发明差分方面的一个重新基础化的实施例确定服务器CGI基础格式和客户机CGI基础格式是否相同,并通过外部通信链接以客户机/服务器专用数据流的形式将服务器CGI基础格式和CGI差分数据传输给网浏览器。将服务器CGI基础格式和通过外部通信链接接收到的CGI差分数据结合起来产生对应于截取的CGI响应的HTTP数据流,从而从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于从网服务器来的通信的HTTP数据流。通过将接收到的服务器CGI基础格式存储为对应于CGI请求的客户机基础超高速缓存入口来更新对应于CGI请求的客户机CGI基础格式。
在本发明的另一种情况中服务器CGI基础格式也可通过确定服务器CGI基础格式和CGI响应之间的差分是否大于预定的差分限度来更新。如果CGI差分数据,那么通过将从网服务器接收到的CGI响应存储为对应于CGI请求的服务器基础超高速缓存入口来更新对应于CGI请求的服务器CGI基础格式,并且随后的比较也采用同样被发送给第一计算机的更新后的服务器CGI基础格式。
在本发明的协议还原方面,通过外部通信链接在第一计算机和第二计算机之间建立起了持续的连接。持续连接维持到所有源于网浏览器的通信都已完成。在维持持续连接时,一批源于网浏览器的通信被截取并在外部通信链接上被多路传输。客户机/服务器专用数据流随后被多路分离以产生一批HTTP数据流,这批HTTP数据流被提供给网服务器。
本发明标题还原方面包括通过外部通信链接向第二计算机提供对应于第一计算机预定特征的计算机专用信息,及存储对应于第一计算机预定特征的计算机专用信息以提供浏览器标题信息。第一计算机从源于网浏览器的通信中除去计算机专用信息,第二计算机将所存储的浏览器标题信息和客户机/服务器专用数据流结合起来以产生HTTP数据流。
在本发明的另一种情况下,在通过外部通信链接被传输之前,捕获对应于源于网服务器的通信的HTTP数据流,并将其从HTTP协议转换为客户机/服务器专用通信协议。转换后的源于网服务器的通信通过外部通信链接以客户机/服务器专用数据流的形式发送给网浏览器。第一计算机获得通过外部通信链接传输的客户机/服务器专用数据流,并通过将以客户机/服务器专用通信协议接收到的客户机/服务器专用数据流转换为HTTP数据流来从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于源于网服务器的通信的HTTP数据流。源于网服务器的通信以HTTP数据流的形式被提供给网浏览器。
本发明标题还原方面的另一个实施例包括通过外部通信链接向第一计算机提供对应于第二计算机预定特征的计算机专用信息,及存储对应于第二计算机预定特征的计算机专用信息以提供服务器标题信息。第二计算机从源于网服务器的通信中除去计算机专用信息,第一计算机将服务器标题信息和客户机/服务器专用数据流结合起来以产生HTTP数据流。
在本发明协议还原方面的另一个实施例中,通过外部通信链接在第一计算机和第二计算机之间建立起了持续的连接。持续连接维持到所有源于网服务器的通信都已完成。在维持持续连接时,一批源于网服务器的通信被截取并在外部通信链接上被多路传输。客户机/服务器专用数据流随后被多路分离以产生一批HTTP数据流,这批HTTP数据流被提供给网服务器。
本发明的另一个实施例中提供了一种增加具有驻留于第一计算机上的客户机应用程序、并且和驻留于远离第一计算机的第二计算机中的服务器应用程序通信的客户机/服务器系统的性能的方法。客户机应用程序和服务器应用程序采用客户机/服务器独立通信协议(即无状态)在客户机和服务器之间通信,并且第一计算机中的客户机应用程序和第二计算机中的服务器应用程序之间通信的至少一段通过外部通信链接进行。该方法包括在通过外部通信链接传输通信之前,截取远程源于客户机的以客户机/服务器独立通信协议进行的通信。截取的源于客户机的通信被转换为第二客户机/服务器专用通信协议并通过外部通信链接传输。第二计算机接收通过外部通信链接传输的通信,并将通过外部通信链接接收到的通信从客户机/服务器专用通信协议转换为客户机/服务器独立通信协议。远程源于客户机的通信以客户机/服务器独立通信协议被提供给服务器。本发明的另一种情况包括在通过外部通信链接传输之前,截取源于服务器的客户机/服务器独立通信协议下的通信。截取的通信被转换为第二客户机/服务器专用通过协议并通过外部通信链接传输。第一计算机通过外部通信链接接收通信并将其从客户机/服务器专用通信协议转换为客户机/服务器独立通信协议。源于服务器的通信以客户机/服务器独立通信协议的形式被提供给远程客户机。
如同将被本领域有经验人员所理解的一样,上面所述的本发明的各种情况也可以以设备或计算机可读程序方法提供。
图1是典型的网浏览器/网服务器系统的方框图;
图2是根据本发明的利用客户机截取和服务器截取的实施例的网浏览器/网服务器的方框图;
图3是描述在本发明的一个实现相干超高速缓存系统的最佳实施例中由客户机截取模块执行的操作的流程图;
图4是描述在本发明的一个实现相干超高速缓存系统的最佳实施例中由客户机截取模块执行的操作的流程图;
图5是描述在本发明的一个实现相干超高速缓存系统的最佳实施例中由服务器截取模块执行的操作的流程图;
图6是描述在本发明的一个实现相干超高速缓存系统的最佳实施例中由客户机截取模块执行的操作的流程图;
图7是描述在本发明的一个实现差分数据传输的最佳实施例中由客户机截取模块执行的操作的流程图;
图8是描述在本发明的一个实现差分数据传输的最佳实施例中由客户机截取模块执行的操作的流程图;
图9是描述在本发明的一个实现差分数据传输的最佳实施例中由服务器截取模块执行的操作的流程图;
图10是描述在本发明的一个实现差分数据传输的最佳实施例中由服务器截取模块执行的操作的流程图;
图11为本发明采用虚拟插口的一种情况的方框图;
图12为根据本发明采用虚拟插口的一个实施例的客户机截取模块和服务器截取模块的方框图;
图13为描述根据本发明采用虚拟插口的一个实施例的客户机截取模块或者服务器截取模块的插口管理器执行的操作的流程图;
图14为描述根据本发明采用虚拟插口的一个实施例的客户机截取功能执行的操作的流程图;
图15为描述根据本发明采用虚拟插口的一个实施例的服务器截取功能执行的操作的流程图;
图16-1为描述根据本发明采用虚拟插口的一个实施例的虚拟产生操作的流程图;
图16-2为描述根据本发明采用虚拟插口的一个实施例的虚拟发送操作的流程图;
图16-3为描述根据本发明采用虚拟插口的一个实施例的虚拟接收操作的流程图;
图16-4为描述根据本发明采用虚拟插口的一个实施例的虚拟选择操作的流程图;
图17-1为描述根据本发明采用虚拟插口的一个实施例的虚拟刷新操作的流程图;
图17-2为描述根据本发明采用虚拟插口的一个实施例的虚拟关闭操作的流程图;
本发明在下文将参照附图予以详细说明,其中表示出了本发明的最佳实施例。但是,本发明也可表现为多种不同的形式,不应当被认为局限于在此所陈述的这些实施例;相反,提供这些实施例使本发明公开彻底完全,并将向本领域有经验的人员完全通报本发明的范围。从头至尾,同样的数码代表同样的部分。
图3到图10和图13到图17-2是说明根据本发明的方法和系统的流程图。需要明白的是流程图的每一个方框及流程图中方框的组合都可用计算机程序指令实现。这些计算机程序指令可装入计算机或其它可编程设备以产生一台机器,使得这些在计算机或其它可编程设备上执行的指令产生用于实现流程图方框或方框组合中所规定的功能的装置。这些计算机程序指令也可存入可控制计算机或其它可编程设备以特定的方式运行的计算机可读存储器中,使得存储于计算机可读存储器中的指令产生一种包括实现流程图方框或方框组合中规定的功能的指令装置的产品。计算机程序指令也可装入计算机或其它可编程设备以产生一系列在计算机或其它可编程设备上完成的操作步骤以产生一种计算机执行的方法,使得在计算机或其它可编程设备上执行的指令提供实现流程图方框或方框组合中规定的功能的步骤。
于是,流程图中的方框支持实现特定功能的装置的组合及实现特定功能的步骤的组合。同样需要明白的是,流程图的每一个方框或方框的组合可由基于特定目的的硬件的计算机系统来实现,这种计算机系统实现特定目的的硬件和计算机指令的特定功能或步骤或它们的组合。
图2说明了本发明的一个实施例。如图2所示,网浏览器10和客户机截取模块30连接。网服务器20和服务器截取模块40连接。客户机截取模块30随后通过通信链路35和服务器截取模块40通信。网浏览器10和客户机截取模块30可包含于第一计算机5中。服务器截取模块40和网服务器20可包含于第二计算机6中。第一计算机5和第二计算机6通过外部通信链路35通信。
具体地说,网浏览器10是采用超文本传输协议(HTTP)和超文本标记语言(HTML)和也是采用HTTP和HTML的互连网网服务器20通信的互连网网浏览器。在操作上,网浏览器10输出由客户机截取模块30截取的HTTP数据流。客户机截取模块30对HTTP数据流的截取可通过使用TCP/IP回送性能来完成,其中客户机截取模块驻留于网络号为127,例如127.0.0.1的IP地址。随后客户机截取模块30将HTTP数据流转换或变换为客户机/服务器专用协议并通过外部通信链接35传输客户机/服务器专用数据流。服务器截取模块40接收客户机/服务器专用数据流并重新产生对应于源于网浏览器的通信的最初的HTTP数据流。重新产生的HTTP数据流随后被传输到网服务器20。网服务器20以互联网网服务器常规的方式响应该HTTP数据流。如将被本领域有经验人员所理解的一样,网服务器20也可是允许多重浏览器和互联网连接的代理者。
当网服务器20接收到向网浏览器10传输的,例如,响应浏览器请求特定URL主页的信息时,网服务器20输出对应于将被发送给网浏览器10的通信的HTTP数据流。这种源于网服务器的通信被服务器截取模块40截取并被转换为客户机/服务器专用数据流。对应于源于网服务器的通信的客户机/服务器专用数据流随后在外部通信链接35上从第二计算机发送给第一计算机。客户机截取模块30接收客户机/服务器专用数据流并且重新产生对应于源于网服务器的通信的最初的HTTP数据流,并将该HTTP数据流提供给网浏览器10。
在本发明的一个特定实施例中,外部通信链接35是无线通信链接。在这种情况下,为了获得用户能够接受的系统性能,需要在通信频率和必须在外部通信链接35上传输的信息数量两方面减少在外部通信链接35上的通信数量。因此,本发明采用超高速缓存,差分和协议还原技术来减少在外部通信链接35上要求的通信数量。这些技术通过将HTTP无状态或随机协议转换为利用特定于客户机和服务器的客户机/服务器专用协议来减少通信的数量和频率。
虽然本发明已经以及将要说明的都是对于单网浏览器应用程序和单网服务器应用程序,但是如同将被本领域有经验人员所理解的一样,本发明的好处和优点也可在和单网服务器相联系的多重网浏览器上实现。这样,本发明的方法,设备和程序产品就和多重浏览器相联系,该多重浏览器中的每个浏览器各与一个客户机截取模块相连,并且这此客户机截取模块随后和网服务器或网代理者的服务器截取模块通信。
在本发明的一个实施例中,客户机截取模块30和服务器截取模块40都具有超高速缓存能力。驻留于第一计算机的客户机超高速缓存存储将由网浏览器接收到的响应源于网浏览器的通信的HTTP数据流。驻留于第二计算机的服务器超高速缓存存储从网服务器接收到的响应浏览器开始的通信的HTTP数据流。
如同将被本领域有经验人员所理解的一样,驻留于第一计算机或第二计算机中的超高速缓存的大小任意,取决于计算机的特定硬件的配置情况。这些超高速缓存存储每次通信的信息,包括,通信的URL,基于通信内容的独特标识符,例如通信数据的循环冗余检验(CRC),指示超高速缓存入口产生或被刷新的存储数据时间(SDT)及通信的数据。这样对于每个存储于超高速缓存中的通信可以产生一个超高速缓存入口目录。此外,由于任意给定硬件配置中的可用资源有限,可利用本领域有经验人员知道的任何维持超高速缓存驻留于第一计算机和第二计算机的超高速缓存的技术。这样,例如,如果添加新的入口而超出了用户确定的超高速缓存的大小,那么超高速缓存可使最先的目录入口无效,随后将新入口添加到被无效的入口的位置。此外,超高速缓存入口可跨过网浏览器或网服务器应用程序的多个实例或第一计算机或第二计算机中的偶数加电循环中被维持以产生持久的超高速缓存。
下面将参考描述客户机截取模块30和服务器截取模块40的操作的流程图图3到图6来说明根据本发明一个情况的超高速缓存结构的操作。
参见图3,框100指示客户机截取模块已接收到从网浏览器10来的请求。该请求可采取HTTP数据流的形式。客户机截取模块30检查来到的请求的统一资源定位器(URL),如框105所示。客户机截取模块30从URL中确定对应于源于网浏览器的请求的信息是否已存入驻留于第一计算机的客户机超高速缓存中。
如果对应于URL的信息没有存入客户机超高速缓存,那么客户机截取模块执行框106描述的操作。客户机截取模块30在外部通信链接35上向服务器截取模块40传输一个请求。
然而如果询问源于网浏览器的通信,如框105所描述,存在对应于源于网浏览器的通信的客户超高速缓存入口,那么在最简单的实施例中,这个信息以HTTP数据流的形式被提供给网浏览器。然而,如图3所示,本发明的最佳实施例实现的是在此称为对对应于源于网浏览器的通信的超高速缓存入口的相干性间隔检查。该操作如图3的框110所示。
客户机截取模块的相干性间隔由用户确定,它是超高速缓存入口失效前存在的时间长度,并且即使给出,也必须通过从网服务器请求对应于源于网浏览器的通信的信息来刷新。框110反映的相干性间隔检查通过将当前日期和时间与对应于源于网浏览器的通信的超高速缓存入口的SDT和用户确定的相干性间隔之和作比较来完成。如果当前日期和时间大于这个总和,那么存储于超高速缓存中对应于源于网浏览器的通信的信息已无效,就选取框110的“否”支路。但是,如果当前日期和时间小于SDT加上用户确定的相于性间隔之和,则选取框110的“是”支路,并且如框111所示,超高速缓存入口以HTTP数据流的形式被提供给浏览器,从而完成图3中框100中的客户机截取模块接收到的浏览器开始的通信。
如果框110所示的相干性间隔检查确定驻留于第一计算机的超高速缓存入口无效,那么向服务器截取模块发出检查驻留于第二计算机中的超高速缓存入口的相干性的请求。该操作示于图3的框112中。通过外部通信链接35向服务器截取模块40提供特定客户机截取模块30的相干性间隔,网浏览器10开始的HTTP请求以及对应于源于网浏览器的通信的URL的客户机超高速缓存的内容的独特标记来完成这一操作。在一最佳实施例中,这种独特的标记是循环冗余检验的结果或超高速缓存入口的CRC。
现在参看图5,它反映的是响应通过外部通信链接35从客户机截取模块30接收的信息的服务器截取模块操作。当服务器截取模块40从客户机截取模块接收一个请求时,服务器截取模块40接收到预定的客户机相干性时间间隔,客户机超高速缓存入口的CRC及源于网浏览器的HTTP请求,对这些信息的接收示于图5的框120中。
在从客户机截取模块30接收这些信息后,服务器截取模块40检查它的驻留于第二计算机中的服务器超高速缓存以确定是否存在对应于源于网浏览器的HTTP请求的URL的服务器超高速缓存入口。在询问源于网浏览器的通信,如框125所示之后,如果服务器截取模块40确定存在对应于源于网浏览器的通信请求的信息的超高速缓存入口,则选取框125的“是”支路。随后服务器截取模块40将服务器截取模块40的当前日期和时间与对应于源于网浏览器的通信请求的信息的服务器超高速缓存入口的SDT和从客户机截取模块接收到的预定客户机相干性时间间隔之和作比较。
如果当前日期和时间小于服务器超高速缓存入口的SDT及相干性时间间隔之和,则选取图5的框130的“是”路径。服务器截取模块40随后将服务器超高速缓存入口的CRC和客户机超高速缓存入口的CRC作比较以确定这两个超高速缓存入口是否相同。如果这两个超高速缓存入口相同,则选取框135的“是”路径,如框136所示,一个“相干”响应被发送给客户机截取模块30。
如果框135的条件确定CRC们不相同,那么包含于客户机超高速缓存中和服务器超高速缓存中的信息不相同,如框137所示,服务器截取模块通过外部通信链接向第一计算机发送服务器超高速缓存入口。向客户机截取模块30发送服务器超高速缓存入口时,服务器截取模块将入口转换为包含服务器超高速缓存入口的CRC,服务器超高速缓存入口数据及服务器超高速缓存入口时期的客户机专用通信协议。从当前日期和时间中减去超高速缓存入口的SDT计算得到服务器超高速缓存入口的时期。
最后,对于图5,如果SDT和预定的客户机相干性时间间隔之和小于当前日期和时间或者不存在对应于源于网浏览器的通信的URL的超高速缓存入口,那么就分别选取框130或框125的“否”支路。这样,将执行框126的操作,并且服务器截取模块40将向服务器以HTTP数据流发送源于网浏览器的通信。如果服务器截取模块40必须向服务器以HTTP数据流发送源于网浏览器的通信,那么服务器截取模块40将执行图6的操作。
如图6框140所示,为响应源于网浏览器的通信,服务器截取模块将从网服务器接收HTTP数据流。接收HTTP数据流时,服务器截取模块40将计算HTTP数据流的CRC并且暂时存储HTTP数据流。随后,如框145所示,服务器截取模块询问HTTP数据流并且确定是否存在对应于HTTP数据流的URL的服务器超高速缓存入口。如果这样的入口确实存在,那么执行框145的“是”支路。随后服务器截取模块40将最新计算得到的从网服务器20接收到的HTTP数据流的CRC和对应于源于网服务器的通信响应通信的URL的服务器超高速缓存入口的CRC相比较,如框150所示。如果两个CRC是相同的,那么执行框150的“是”支路。服务器截取模块40更新用于服务器超高速缓存入口的SDT,如框151所示,并且将暂时存储的从网服务器20接收到的HTTP数据流清空,如框152所示。
如果CRC比较的结果表明服务器超高速缓存入口不同于从网服务器20接收到的HTTP数据流,那么就执行框150的“否”支路。服务器截取模块40从服务器超高速缓存中除去存在的数据,如框153所示,并且如框154所示,用新的信息更新服务器超高速缓存。如框154所示,这种更新包括在服务器超高速缓存中存入网服务器通信的CRC,存入作为超高速缓存入口的部分的当前日期和时间作为超高速缓存入口的SDT,及存入HTTP数据流。在任一情况下,不论服务器超高速缓存入口被更新还是发现服务器超高速缓存入口和从网服务器20接收到的HTTP数据流相同,随后服务器截取模块都要确定服务器超高速缓存入口是否和对应于源于网浏览器的通信的客户机超高速缓存入口一样。这个操作如框155所示。
如果服务器截取模块40确定对应于从网服务器20接收到的响应的超高速缓存入口不存在,那么就选取框145的“否”支路。通过存入从网服务器来的响应的URL,通过存入从网服务器来的响应的CRC,通过存入HTTP数据流,以及通过存入作为SDT的当前日期和时间来产生一个服务器超高速缓存入口,如框146所示。在产生了一个对应于源于网浏览器的通信的超高速缓存入口后,服务器截取模块40再次将这一服务器超高速缓存入口的CRC和相应的客户机超高速缓存入口的CRC作比较,如框155所示。
如果服务器超高速缓存入口和客户机超高速缓存入口比较的结果表示这两个超高速缓存入口相同,那么选取框155的“是”支路并且执行框156的操作。在框156中可看出,服务器截取模块40向客户机截取模块30发送一相干响应。服务器截取模块40通过向客户机截取模块发送相干响应和发送零时期将服务器请求超高速缓存入口转换为客户机/服务器专用数据流。
如果服务器截取模块40确定客户机超高速缓存入口不同于对应于源于网浏览器的通信的服务器超高速缓存入口,那么就选取框155的“否”支路并执行框157的操作。如框157所示,服务器截取模块40将服务器超高速缓存入口转换或变换为客户机/服务器专用数据流。该数据流包括服务器超高速缓存入口的CRC,服务超高速缓存入口HTTP数据流以及被设定为零的超高速缓存入口的时期。这个客户机/服务器专用通信随后通过外部通信链接35传输给客户机截取模块30。
现在参考图4来说明在接收从服务器截取模块来的通信时客户机截取模块30的功能。如框160所示,客户机截取模块30接收或获得通过外部通信链接35传输的客户机/服务器专用数据流。客户机截取模块随后确定从服务器截取模块40接收的响应的类型,如框165所示。如果服务器截取模块40指示客户机超高速缓存入口相干,即,服务器超高速缓存入口和客户超高速缓存入口相同,那么,执行框166所示的操作。如框166所示,客户机截取模块30用当前日期和时间与从服务器截取模块40接收到的时期的差分更新对应于源于网浏览器的通信的客户超高速缓存入口的SDT。这样,没有使第一计算机5和第二计算机6的时钟同步,本发明就已修正了第一计算机的超高速缓存入口的相干时间以反映第二计算机的新数据。在更新对应于源于网浏览器的通信的客户机超高速缓存入口的SDT之后,客户机截取模块30将客户机超高速缓存入口以HTTP数据流传输给网浏览器10。这个操作示于框174。
然而,如果客户机截取模块30确定响应类型为数据或数据流响应,那么就选取框165的“流”路径,并且执行框167的操作。客户机截取模块30接收HTTP数据流并且暂时存储这一数据。随后,如图4框170所示,客户机截取模块30确定对应于源于网浏览器的通信的超高速缓存入口是否存在。如果存在超高速缓存入口,那么选取框170的“是”路径,如框171所示,已存在的超高速缓存入口被刷新。客户机截取模块随后通过存入从服务器截取模块40接收的HTTP数据流的CRC,通过存入作为SDT的当前日期和时间与从服务器截取模块40接收到的时期之间的差分,以及通过存入HTTP数据流来更新对应于源于网浏览器的通信的客户机超高速缓存入口。这一操作示于框172。
如果不存在对应于源于网浏览器的通信的超高速缓存入口,那么选取框170的“否”路径。通过执行示于框173的操作产生一个客户机超高速缓存入口。如框173所示,客户机截取模块30通过存入从服务器截取模块40接收到的HTTP数据流的URL,通过存入从服务器截取模块40接收到的HTTP数据流的CRC以及通过存入HTTP数据流来产生客户机超高速缓存入口。客户机截取模块30也通过从当前日期和时间中减去通过外部通信链接35从服务器截取模块40接收到的时期来更新SDT或者存入SDT。
然而,不论通过框166,172或173的操作,都将产生一个客户机超高速缓存入口,客户机截取模块以HTTP数据流的形式向网浏览器10传输或提供客户机超高速缓存入口。这些操作示于图4的框174。
如将被本领域有经验人员所理解的一样,客户机超高速缓存和服务器超高速缓存可以采用存储器或采用大容量存储器,例如硬盘,读/写CD-ROMS,光盘或其它存储技术来实现。此外,如将被本领域有经验人员所理解的一样,客户机截取模块和服务器截取模块可通过软件,硬件或它们的结合来实现。
在对驻留于特定的第一或第二计算机中的超高速缓存作出参考说明时,如将被本领域有经验人员所理解的一样,即使超高速缓存不驻留于第一计算机而仅仅和计算机在外部通信链接的同一侧也可实现本发明的优点。这样,可以实现一个在第一计算机外部的硬件超高速缓存,该硬件超高速缓存作为客户机超高速缓存并且通过高速通信和第一计算机相连,并且只要该超高速缓存和第一计算机位于外部通信链接的同一侧,就可实现本发明的优点。
在本发明的一个备选实施例中,服务器截取模块40并不保持从网服务器20接收到的HTTP数据流的备份,而只是保持该通信的目录入口。目录入口包括通信的URL,计算得到的HTTP数据流的CRC,从网服务器接收到HTTP数据流的时间以及可以被设定为CRC被计算时的时间的通信的SDT。在这种情况下,当客户机截取模块30向服务器截取模块40发送一个对应于URL的通信请求,对该URL服务器截取模块已保持了CRC和SDT,随后服务器截取模块检查从客户机截取模块30接收的CRC以确定它是否对应于用于特定URL的最后的HTTP数据流的CRC。如果两者匹配,那么将一相干响应发送给客户机截取模块。如果两者不匹配,那么服务器截取模块将从客户机截取模块接收到的HTTP数据流发送给网服务器20并将从网服务器20接收到的响应返回给客户机截取模块30。
图7,8,9和10反映了本发明的另一种利用差分来减少通过外部通信链接35传输的数据的情况中由客户机截取模块30和服务器截取模块40执行的操作。如图7所示,框200说明客户机截取模块30从网浏览器10接收HTTP请求的情况。如框205所示,客户机截取模块30询问从网浏览器10截取的HTTP请求以确定该请求是否发向公共网关接口(CGI)。如果该请求不是发向公共网关接口,那么客户机截取模块30将该请求传给服务器截取模块,如同图3到图6所示的一样,并由图7的框206所说明。
然而,如果源于网浏览器的通信对应于一CGI请求,那么选取框205的“是”路径。如图210所示,客户机/服务器截取模块30确定对应于先前提供给网浏览器以响应相应的CGI请求的HTTP数据流的客户机基础超高速缓存入口是否存在。这种CGI请求的询问可通过将源于网浏览器的通信的URL和存储于客户机基础超高速缓存中的URL相比较来实现。
客户机基础超高速缓存可通过存入被客户机截取模块30接收的第一HTTP数据流来初始化,该数据流是对于给定的URL提供给网浏览器10的。这种基础超高速缓存入口可在网浏览器10的多重实例或话路中保持。客户机基础超高速缓存入口可如图7,8,9和10所示的那样被更新。如果对应于源于网浏览器的通信的URL的客户机基础超高速缓存入口存在,那么把将要通过外部通信链接35发送给服务器截取模块40的CRC设定为和客户机基础超高速缓存入口的CRC一样,如图7的框211所示。如果不存在客户机基础超高速缓存入口,那么就选取图7的框210的“否”路径,并且把将要通过外部通信链接35发送给服务器截取模块40的请求的CRC置为零。这一操作示于图7的框212中。
框213说明通过外部通信链接将CGI请求发送给服务器截取模块40的操作。如框213所示,客户机截取模块30传输HTTP请求和请求的CRC。该CRC要么在对于CGI请求的URL不存在客户机超高速缓存入口的情况下已被设定为零,要么在入口确实存在的情况下已被设定为客户机基础超高速缓存入口的CRC。这样,客户机截取模块就把CGI请求转换为客户机/服务器专用协议,并通过外部通信链接传输将由服务器截取模块40接收的客户机/服备器专用通信。
当CGI请求被接收时服务器截取模块采取的操作如图9所示。服务器截取模块40接收CGI请求的情况表示于框220中。当服务器截取模块40接收CGI请求时,它保存CRC值和HTTP请求的备份。如框221所示,服务器截取模块40将HTTP请求传给网服务器20。
当服务器截取模块40接收对应于源于网浏览器的通信的HTTP请求或CGI请求的响应时,服务器截取模块40以HTTP数据流的形式接收这一响应,如图10的框230所示。如框230所示,服务器截取模块40保存HTTP数据流并计算从网服务器20接收到的HTTP数据流的CRC值。同样服务器截取模块40将差分值置为零以初始化差分数据。随后服务器截取模块确定以源于网服务器的通信接收到的响应是否是对CGI请求的响应,如框235所示。如果结果为否,那么选取图10的框235的“否”路径并且执行框236的操作以发送HTTP数据流给客户机截取模块。如框236所示,这一操作包括图3到图6所描述的超高速缓存操作。如果在框230中接收到的响应是对CGI请求的响应,那么选取框235的“是”路径并且随后服务器截取模块确定对于该CGI响应的服务器基础超高速缓存入口是否存在,如框240所示。
服务器基础超高速缓存入口可在服务器截取模块40第一次接收对CGI请求的响应时产生。在本实例中,框240中的条件的结果将导致选取框240的“否”路径。随后服务器截取模块40将通过存入CGI的URL,对CGI请求响应的HTTP数据流和HTTP数据流的CRC来产生对应于CGI请求的服务器基础超高速缓存入口。这一操作示于框241中。为了和图3到图6所描述的相干超高速缓存系统兼容,服务器基础超高速缓存入口也包括有SDT。如同在此所使用的一样,服务器CGI基础格式这一术语指的是对应于从网浏览器10接收的CGI请求的服务器基础超高速缓存入口。
如果对应于CGI请求的服务器基础超高速缓存入口存在,那么选取框240的“是”路径。服务器截取模块将服务器基础超高速缓存入口和从网服务器20接收到的响应的CRC作比较。这些操作示于图10的框245。如果这两个CRC相同,那么服务器截取模块确定服务器基础超高速缓存入口的CRC是否对应于客户机基础超高速缓存入口的CRC。如果这两个CRC的值相同,那么客户机基础超高速缓存入口,服务器基础超高速缓存入口以及从网服务器20接收到的响应都含有相同的HTTP数据流。服务器基础超高速缓存入口和客户机基础超高速缓存入口的比较示于框250中。
如果这两个基础超高速缓存入口相同,那么服务器截取模块不必向客户机截取模块30发送基础超高速缓存入口并且使得,如框251所示,将被传输给客户机截取模块30的HTTP数据流数据为空。随后,服务器截取模块40通过传输存储于对应于CGI请求的服务器基础超高速缓存中的HTTP数据流的CRC、空的HTTP数据流数据以及空的差分数据来指示对CGI请求的响应和客户机基础超高速缓存入口相同,从而将从网服务器20接收的HTTP数据流转换为客户机/服务器专用通信协议,如框252所示。
返回框245,如果对应于CGI请求的服务器基础超高速缓存入口的CRC不同于响应源于网浏览器的CGI请求的从网服务器接收到的响应的CRC,那么选取框245的“否”路径。随后服务器截取模块40执行框246所示的操作。服务器截取模块40将截取的CGI响应和对应于所截取的CGI请求的服务器基础超高速缓存入口或者服务器CGI基础格式作比较。截取的CGI响应和服务器CGI基础格式的比较提供对应于截取的CGI响应和服务器CGI基础格式之间的差分的CGI差分数据。
可以采用本领域有经验的人员知晓的任意用以确定基础格式和修正格式之间差别的方法来实现差分。一种适用于本发明的差分方法描述于“aCross-Platform Binary Diff”,Coppieters,Dr.Dobb′s Journal,1995年5月,第32-36页,该文的公开内容作为参考在此引入。其它的可用于确定差分数据的方法包括描述于IBM Technical DisclosureBulletin,Vol.22,No.8A中的方法,该文也作为参考在此引入。随后服务器截取模块40确定服务器CGI基础格式是否需要更新,如框247所示。这一确定可由确定截取的CGI响应和服务CGI基础格式之间的平均差分数据是否超出了预定的限度来作出。其它的确定对应于CGI请求的服务器基础超高速缓存入口是否需要更新的方法包括时间相干性,例如描述于图3到图6的时间相干性或者本领域有经验人员知晓的其它确定差分数据是否已增加到这样的程度以致重新基础化以产生新的基础超高速缓存入口将改善系统性能的方法。
如果不需要服务器重新基础化,那么选取框247的“否”路径,服务器截取模块40执行框250的操作以确定客户基础超高速缓存入口的CRC是否和服务器基础超高速缓存入口的CRC一样或者服务器CGI基础格式是否和客户机CGI基础格式相同,这些基础格式是服务器和客户机的基础超高速缓存入口,它们对应于源于网浏览器的通信的特定CGI请求。如果这些基础格式相同,那么客户机不必重新基础化并且HTTP数据流信息为空,如框251所示。随后服务器截取模块40通过发送对应于CGI请求的服务器基础超高速缓存入口的CRC(即服务器CGI基础格式的CRC),通过发送对应于基础数据的空的HTTP数据流以及通过发送框246中确定的差分数据来将差分响应发送给客户机截取模块30。这些操作再一次示于图10的框252中。
如果服务器截取模块40确定客户机CGI基础格式和服务器CGI基础格式的CRC并不相同,那么客户机需要重新基础化。客户机重新基础化操作包括发送服务器CGI基础格式给客户机截取模块30。为实现这一操作,服务器截取模块把将被发送给客户机截取模块30的HTTP数据流数据设定为等同于服务器CGI基础格式。这一操作示于框253。随后服务器截取模块40通过发送服务器CGI基础格式的CRC,对应于服务器CGI基础格式的HTTP数据流数据以及发送CGI基础格式和从网服务器接收到的响应之间的差分数据来将从网服务器接收的HTTP数据转换为客户机/服务器专用协议,如框252所示。这一信息随后通过外部通信链接35被传输给客户机截取模块30。
返回框247,如果要求服务器重新基础化,那么选取框247的“是”路径。如框248所示,服务器截取模块用从网服务器接收到的HTTP数据流更新对应于浏览器开始的通信的服务器基础超高速缓存入口。响应的CRC同样被更新并且CGI差分数据置为零。服务器截取模块随后比较新的服务器超高速缓存入口的CRC,如框250所示,并且完成如上所述的传输。
在从服务器截取模块40接收响应时客户机截取模块的操作示于图8。客户机截取模块30从服务器截取模块40接收响应的情况示于框260。如框265所示,客户机截取模块30确定该响应是否是对CGI请求的响应。如果该响应不是对于CGI请求的响应,那么客户机截取模块执行框267的操作,该操作包括示于图3到图6的超高速缓存操作。然而,如果该响应是对CGI请求的响应,那么选取框265的“是”路径。客户机截取模块30保存HTTP数据流数据、差分数据、以及从通过外部通信链接传输的客户机/服务器专用数据流中获得的CRC。这些操作示于图8的框266。
随后客户机截取模块30确定包含客户机CGI基础格式的对应于截取的CGI请求的客户机基础超高速缓存入口是否存在。这一询问示于框270并且通过检查HTTP请求或HTTP响应的URL来完成。如果存在客户机CGI基础格式,那么选取框270的“是”路径。随后客户机截取模块30将通过外部通信链接接收的CRC和客户机CGI基础格式的CRC作比较,如框275所示。如果它们不同,那么选取框275的“否”路径并且通过更新CGI基础格式,通过用通过外部通信链接35从服务器截取模块40接收的HTTP数据流数据来替换对应于源于网浏览器的通信的CGI请求的URL的客户机基础超高速缓存入口来重新基础化客户机。相对于HTTP数据流的CRC的客户机基础超高速缓存入口也被更新。这些操作示于图8的框276。
如果通过外部通信链接35接收的CRC和CGI基础格式的CRC相同,那么服务器截取模块服务器CGI基础格式就和客户机截取模块客户机CGI基础格式相同,则选取框275的“否”路径。
不论基础格式相同还是客户机被重新基础化,示于框277的操作都由客户机截取模块30完成。框277反映了客户机截取模块30通过将客户机CGI基础格式和通过外部通信链接35接收的CGI差分数据相结合以产生对应于截取的CGI响应的HTTP数据流来从通过外部通信链接35接收的客户机/服务器专用数据流中重新产生对应于网服务器20开始的通信的HTTP数据流。如框278所示,这一响应随后以HTTP数据流的形式被提供给网浏览器10。
如果在客户机中不存在对应于CGI请求的URL的CGI基础格式,那么就选取图8的框270的“否”路径。如框271所示,客户机截取模块30通过存入URL,通过外部通信链接从服务器截取模块40接收的HTTP数据流的CRC,以及实际的HTTP数据流数据来产生对应于CGI请求的URL的客户机基础超高速缓存入口。存储这一信息就产生对应于截取的CGI请求的客户机基础超高速缓存入口并且从而产生客户机CGI基础格式。随后客户机截取模块通过将客户CGI基础格式和已被置为零的CGI差分数据结合或者合并来重新产生HTTP数据流,从而完成框277的操作。
本发明的差分技术也可用于非CGI数据。在这样的一个例子中,服务器截取模块40需更保持多代的服务器基础超高速缓存入口来使网浏览器的和网服务器相连的客户机截取模块能够具有不同的基础格式。随后服务器截取模块可将从客户机截取模块接收的CRC和服务器基础格式的先前的各世代的每一个的CRC作比较直到获得一匹配。随后服务器截取模块40就可随意重新基础化客户机截取模块30或者仅仅向客户机截取模块30提供差分数据。这样,在此描述的相对于CGI请求的差分方法可同样地应用于任意的HTTP请求和响应。
当在保持基础格式的多代的上述系统使差分可用于非CGI请求时,这一技术要求更多的存储器或存储强度,并且不能充分利用上述的超高速缓存能力。为了减少所需的存储器或存储强度并利用上述的超高速缓存方法,可采用下面的对非CGI请求使用差分的最佳方法。在这一最佳实现中,服务器截取模块计算对应于请求的服务器基础格式和从网服务器来的响应的HTTP数据流之间的差分。随后服务器截取模块保存这一差分数据。随后通过用网服务器的新的响应替换基础格式来更新服务器基础格式,包括更新基础格式的CRC。但是,并不废除旧的CRC,而是将先前的基础格式的CRC保存起来作为差分数据。然后将差分数据和CRC的先前的代选择性地传输给基于对应于该非CGI请求的客户机基础格式的CRC的客户机截取模块。
作为非CGI差分方法的一个例子,如果服务器截取模块接收一非CGI请求,伴随该非CGI请求的是对应于该非CGI请求的URL的驻留于客户机截取模块中的基础格式的CRC。当服务器截取模块接收网服务器的响应时,服务器截取模块将计算响应的CRC。随后服务器截取模块计算响应和URL的服务器基础格式之间的差分并保存这一差分数据。服务器截取模块将用响应数据更新服务器基础格式并且将先前的基础格式的CRC以及响应和旧的基础格式之间的差分数据编档保存。随后服务器截取模块将客户机基础格式的CRC和服务器基础格式的CRC及存入或编档保存的CRC作比较以确定是否找到一匹配。如果没有找到匹配,响应就简单地发送给客户机截取模块。
如果找到一匹配,那么对应于CRC匹配的差分数据和任意的随后的达到并包括当前差分数据的差分数据被发送给客户机截取模块。随后客户机截取模块将差分数据应用于客户机基础格式以重新产生响应。这样,如果CRC匹配产生于一个三代前的基础格式的CRC上,那么三组差分数据就被发送给客户机截取模块并且通过将这三个连续的差分数据组应用于客户机基础格式来完成响应的构造。然而,如果所要求的重新产生响应的差分数据组的数目或者差分数据组的大小太大以致使发送实际的响应需要的数据传输较少,那么响应自身通过服务器截取模块被发送。不管怎样,在重新产生或接收响应后,客户机截取模块将用响应数据更新请求的URL的客户机基础格式以及用响应的CRC更新CRC。由于客户机基础格式在每次接收对于特定URL的响应时被更新,前述的客户机超高速缓存可被用作客户机基础格式的超高速缓存,从而省去了如果差分应用于非CGI请求时客户机基础格式需要一个独立的超高速缓存的要求。
在本发明的另一种情况中,基于无状态通信协议例如HTTP的冗余码可以获得附加的通信保存。在这样的协议中,客户机在每次通信开始时传输关于自身的信息给服务器。同样,服务器在每次响应开始时传输关于自身的特定信息给客户机。
在本发明的一个备选实施例中,第一计算机5向第二计算机6传输对应于第一计算机预定特征的计算机专用信息。第二计算机保存这一计算机专用信息。随后在通过外部通信链接35传输之前第一计算机从后继的源于网浏览器的通信中除去计算机专用信息。随后第二计算机通过将保存的计算机专用信息和通过外部通信链接35接收到的后继通信相结合以产生HTTP数据流来重新产生最初的源于网浏览器的通信。
除了从源于网浏览器的通信中除去计算机专用信息之外,也要从源于网服务器的通信中除去这一计算机专用信息。这样的话,图2的第二计算机6通过外部通信链接35向第一计算机5提供对应于第二计算机6的预定特征的计算机专用信息。第一计算机5保存这一计算机专用信息以提供服务器标题信息。在后继通信中,第二计算机6从源于网服务器的通信中除去计算机专用信息并且通过外部通信链接35传输源于网服务器的通信的剩余部分。第一计算机5通过外部通信链接接收该通信并且通过将服务器标题信息和通过外部通信链接接收到的客户机/服务器专用数据流结合以产生HTTP数据流来重新产生最初的源于网服务器的通信。在两个实例中,除去计算机专用信息及保存该信息以产生服务器标题信息或客户机标题信息的操作由客户机截取模块30或服务器截取模块40执行,取决于这一操作是发生于第一计算机5还是第二计算机6。
在本发明的一个实施例中,网浏览器10采用传输控制协议/互连网协议(TCP/IP)来和客户机截取模块30通信。TCP可用于通过外部通信链接35在客户机截取模块30和服务器截取模块40之间的通信。最后,TCP也可用于服务器截取模块40和网服务器20之间的通信。由于TCP可用于组成本发明的系统的各部分之间的通信,因而HTTP协议不能提供最有效的用于通过外部通信链接进行通信的方法。为了增加外部通信链接35的性能,本发明的一个实施例产生在此被称作为“虚拟插口”的事物,该虚拟插口被应用于网浏览器和客户机截取模块30之间的通信连接以及服务器截取模块40和网服务器20之间的通信连接。下面参考图11到图17来说明这些虚拟插口的操作。
图11为本发明利用虚拟插口概念的一个可能的实现方式的方框图。如图11所示,第一计算机5和第二计算机6通过外部通信链接35相连。网浏览器10具有一批连接网浏览器和客户机截取模块30的实插口。如图11所示,网浏览器10上的第一实插口标记为65a,客户机截取模块30上的对应的插口为65b。这个第一实插口是TCP插口,通过它网浏览器10从客户机截取模块30请求进一步的连接。
当网浏览器10请求新的TCP连接时,通过实插口65a产生一个通信,该通信在实插口65b被接收。随后客户机截取模块30产生另一个用以和网浏览器10通信的实插口。如图11所示,在网浏览器10上产生一批实插口,同时在客户机截取模块30上产生一批相应的实插口。网浏览器10上的这些实插口被标记为60a到64a,客户机截取模块30上的实插口被标记为60b到64b。通过这些实插口网浏览器10和客户机截取模块30通信连接。在产生实插口60a到64a和60b到64b后,通过这些插口通信被多路传输到实插口36a,实插口36a为客户机截取模块30提供到外部通信链接35的通路。实插口36a和36b在通过计算机5的实插口37a将请求发送给计算机6的实插口37b时产生。当实插口37b接收连接请求时,产生实插口36a和36b。插口37a和37b作为客户机截取模块和服务器截取模块之间通信的第一实插口并且仅仅用于建立由插口36a和36b反射的两个模块之间的连接。这些实插口的每一个都是在标准TCP/IP协议下操作。当通信由第二计算机6通过外部通信链接35接收时,通信是在实插口36b处被接收。随后服务器截取模块40对在插口36b接收到的通信进行信号分离,并将它们提供给适当的插口以传输给网服务器20。这样,例如,由插口60a到插口60b的从特定URL发出请求信息的通信被多路传输到插口36a,由插口36b接收,由服务器截取模块40进行信号分离,以及从插口60c传输到网服务器20上的插口60d。同样,通过插61a发生的通信由插口61b接收,由客户机截取模块30多路传输,以及从插口36a被传输给插口36b,在插口36b处服务器截取模块40对通信进行信号分离并通过插口61c传输给插口61d。这样,通过插口60a和60b,61a和61b,62a和62b,63a和63b以及64a和64b的通信通过服务器截取模块40和网服务器20之间的各自相应的插口60c和60d,插口61c和61d,插口62c和62d,插口63c和63d以及插口64c和64d被传输。
同样,网服务器20对网浏览器10的请求的响应也通过连接网服务器20和服务器截取模块40的插口及通过外部通信链接35被传输给客户机截取模块30,随后传输给网浏览器10。这样,例如,网服务器20开始的响应可通过插口60d发送给插口60c,并由服务器截取模块40多路传输给插口36b,在插口36b处,响应通过外部通信链接35被传输给插口36a。随后客户机截取模块30对通信进行信号分离并且将其提供给插口60b以传输给网浏览器10上的插口60a。对网浏览器10或网服务器20正使用的各个插口建立了相似的通信通路。如同将被本领域有经验人员所理解的那样,虽然已描述的本发明是对于网浏览器10和网服务器20之间的4插口连接,但是为在网浏览器10和网服务器20之间提供通信通路可以使用任意数目的插口。
图12为说明在客户机截取模块30和服务器截取模块40中实现虚拟插口系统的方框图。在这些模块之外的客户机截取模块30和网浏览器10之间以及服务器截取模块40和网服务器20之间的实插口和通常的TCP/IP插口所起的作用一样。这样,对于网浏览器10和网服务器20,虚拟插口的益处是一目了然的。
下面根据方框图12和流程图13到17来说明本发明的一个特别的实施例。图13是图12中标记为方框68的插口管理器的流程图。参见图13,框300表示客户机截取模块30的实插口管理器68的产生。在产生实插口管理器68后,实插口管理器产生第一实插口,图12中表示为插口65b。第一实插口的产生示于图13的框301。产生第一实插口65b后,驻留于客户机截取模块30的插口管理器68,在此也称作客户机插口管理器,等待在第一实插口65b上的事件,如图13的框302所示。当在第一实插口接收到的一事件时,实插口管理器68检验该事件,并且根据该检验选取五个通路中的一个,如图13的框305所示。
如果为响应在第一实插口65b上接收到的通信请求产生了一个实插口,那么如图13的框305到框306之间的通路所示,实插口管理器68将产生的实插口加入实事件列表中。随后实插口管理器产生单工虚拟插口,如框307所示。就客户机截取模块来说,实插口管理器启动一应用功能,该应用功能为产生的虚拟插口执行客户机截取模块的功能,如图13的框308所示。
如同在此使用的一样,“单工插口”或“单工虚拟插口”指的是直接和单一的插口或者单一的应用连接的插口。如同在此使用的一样,“多工插口”指的是和一批其它插口连接的插口。这样,多工插口执行多路传输或信号分离功能,单工插口实现一对一连接。这样,例如,在执行图13的框306到框308的功能时,客户机插口管理器68为响应由第一实插口65b接收的第一连接请求而产生实插口60b、单工虚拟插口70,并且在应用80启动客户机截取功能。对后继的在其中一个实插口被产生的事件情况类似。实插口管理器将产生实插口61b、62b、63b或64b及单工虚拟插口71、72、73或74,并且启动对应于所产生的实插口和虚拟插口的在图12中被标记为方框81、82、83或84的CSI功能。
现在参照图12所示的实插口60b、单工虚拟插口70及客户机截取功能80来说明客户机截取功能的操作。图14的框325反映了客户机截取功能的产生。当其产生后,客户机截取功能80就等待在单工虚拟插口70上的事件,如框326所示。这一等待操作通过实现图16-4中描述的虚拟选择功能来完成。当接收事件时,该事件被检验,如框330所示。如果该事件是虚拟插口关闭,那么客户机截取功能80就删除单工虚拟插口70,如框349所示,并且终止,如图14的框350所示。
如果该事件为数据接收,那么就选取从框330到框331的路径,客户机截取功能80通过执行图16-3所描述的虚拟接收操作来从单工虚拟插口70接收浏览器开始的通信。随后客户机截取功能执行如上所述的客户机截取模块(例如见图3和图7),如框332所示。随后客户机截取功能80产生一个和客户机截取模块30中的实插口36a相连的多工虚拟插口。实插口36a和服务器截取模块40上的实插口36b连接。多工虚拟插口的产生示于图14的框333并通过执行图16-1所描述的虚拟产生操作来完成。框334反映了对源于网浏览器的通信执行客户机截取功能80后,通过实插口60b和单工虚拟插口70发送从网浏览器接收到的信息的操作。通过执行图16-2描述的虚拟发送操作使这一通信排队发向多工虚拟插口90。在将发向多工虚拟插口90的请求排队后,客户机截取功能80刷新在多工虚拟插口90中排队的数据,如图14的框335所示,随后等待多工虚拟插口上的一个事件,如框336所示。通过执行图17-1描述的虚拟刷新操作来完成虚拟刷新功能,该虚拟刷新操作是将数据从多工虚拟插口队列中取出并将数据提供给实插口36a。等待操作可通过完成图16-4描述的虚拟选择功能来执行。此时,客户机截取模块已截取源于网浏览器的通信并通过外部通信链接35将通信传输给服务器截取模块。
现在返回图13,该图是表示服务器截取模块40或客户机截取模块30中的插口管理器的流程图。图12中表示为框69的服务器截取模块中的实插口管理器或服务器插口管理器,执行和表示为框68的客户机插口管理器同样的功能。在产生第一实插口时,如框301所示,服务器截取模块40(原文为30,误)产生一个用于对各插口从和服务器截取模块40联系的客户机截取模块30接收请求的“公知端口”37b。当一实事件在服务器截取模块40的实插口36b上发生时,该事件被检验,如框305所示。在当前情况下,该事件是从实插口36a接收数据,这样就选取图13的从框305到框320的路径。在实插口36b上接收到的数据被检验并且在本例中,由于该数据是由客户机截取模块传输的源于网浏览器的通信,在服务器截取模块40中必须产生一个新的虚拟插口。这样就选取图13中框320到321的路径。随后服务器插口管理器69执行示于图13的框321、322、323和324中的操作。服务器插口管理69产生一个多工虚拟插口95,如框321所示,取消多工插口活动计时器,如框322所示,并且启动服务器截取功能的应用程序,如图13的框323所示,在图12中表示为框85。随后在实插口36b接收的数据被排队发向多工虚拟插口95,虚拟事件被信号化。
框323所示的服务器截取功能的产生,在图15中表示为框360。产生服务器截取功能85后,该功能从多工虚拟插口95接收从客户机截取模块30发送出的对应于源于网浏览器的通信的数据。这一操作示于图15的框361。在从客户机截取模块接收数据后,服务器截取功能85按如前所述的那样为服务器截取模块处理数据。服务器截取功能的执行示于框362(例如参见图5和9)。在处理这些信息后,服务器截取功能85通过执行图16-1所描述的虚拟生成操作来产生单工虚拟插口75。这一操作示于图15的框363。随后服务器截取功能85通过执行图16-2描述的虚拟发送操作将源于网浏览器的通信发送给单工虚拟插口75。随后,服务器截取功能85执行虚拟刷新以将列队于单工虚拟插口75中的数据清洗到实插口60c,并等待在单工虚拟插口75上的事件。在此所描述的虚拟刷新操作参见图17-1。发送和刷新操作示图15的框364和365。通过完成图16-4所描述的虚拟选择功能来执行等待操作。当服务器截取功能85产生单工虚拟插口75时,也将产生相应的实插口60c。通过发送源于网浏览器的通信给单工虚拟插口75,服务器截取功能85将源于网浏览器的通信传输给网服务器。
当服务器截取模块40在实插口60c处接收网服务器的响应时,一实事件发生,服务器插口管理器69退出图13的框302并检验发生于实插口60c的事件,如框305所示。在当前情况下,该事件是正存在的虚拟插口的数据,图13的框320到框324的路径将被选取。在实插口60c接收到的数据被排队发向虚拟插口75,一个虚拟事件被信号化。当该虚拟事件被信号化时,服务器截取功能85(注原文为虚拟截取功能)退出图15的框366并检验该事件,如框370所示。如果该事件为插口关闭,那么一错误状态产生,并且生成一错误信息作为响应,如图15的框375所示。然而,如果该事件为数据接收,那么就选取框370到框371的路径,服务器截取功能85执行图16-3所描述的虚拟接收操作来从单工虚拟插口75获得服务器响应,如框371所示。随后服务器截取功能85执行单工虚拟插口的虚拟关闭操作,如框372所示,并参见图17-2,并按前面所述的那样为服务器截取模块处理数据,且示于框373。(例如参见图6和图10)。
不论图15的框370的退出路径是到框375的错误路径还是到框371的数据路径,在框374单工虚拟插口都将被删去。随后服务器截取功能对多工虚拟插口95执行虚拟发送操作以向客户机截取模块30传输源于网服务器的通信,如框376所示。随后服务器截取功能85执行虚拟刷新操作以刷新列队于多工虚拟插口95中的数据。这些操作示于框377。随后服务器截取功能85执行虚拟关闭操作以关闭多工虚拟插口95,如图15的框378所示。最后,服务器截取功能85删除多工虚拟插口并终止,如框379和380所示。
服务器截取功能对多工虚拟插口95执行虚拟发送和刷新操作。这些触发事件在实插口36a上并且客户机插口管理器68退出框302并检验该事件,如框305所示。由于数据在实插口36a上被接收,图13的框305到框320的路径被选取并且数据被排队发向多工虚拟插口90。从而,当实插口36a通过外部通信链接35从实插口36b接收网服务器响应时,这一响应信息被信号分离并被提供给适当的多工虚拟插口。数据的接收导致一虚拟事件发生,如图13的框324所示,并退出图14的框336,客户机截取功能80检验该事件,如图14的框340所示。
如果该事件为插口关闭响应,那么就选取图14的框340到框345的路径,客户机截取功能80产生一错误信息响应并转到图14的框344。如果该事件是数据接收,在本例中,事件即为数据接收,那么就选取图14的框340到框341的路径,并且客户机截取功能80执行虚拟接收操作从多工虚拟插口90接收响应。这一接收操作示于图14的框341。在从多工虚拟插口90接收数据后,客户机截取功能80执行虚拟关闭操作以关闭多工虚拟插口90,如框342所示。随后如前所述那样客户机截取功能80为客户机截取模块处理该响应(参见图4和图8)。
不论选取哪一条路径退出框340都将随后执行框344的操作。客户机截取功能80删去多工虚拟插口,如框344所示,并且随后执行虚拟发送操作将响应通过单工虚拟插口70发送给浏览器,如框346所示。当虚拟发送操作完成时,客户机截取功能80执行虚拟刷新操作以将列队于单工虚拟插口中的数据清洗到实插口60b,如框347所示,并且随后执行虚拟关闭操作以关闭单工虚拟插口,如框348所示。在关闭到客户机截取功能的单工虚拟插口后,该单工虚拟插口被删除,客户机截取功能终止,如图14的框349和350所示。
如同将被本领域有经验人员所理解的那样,虽然本发明说明的是单工和多工虚拟插口及客户机截取功能和服务器截取功能的产生的一个特定例子,但是在客户机截取模块或者服务器截取模块中可以产生一批这样的功能。因而,根据本发明的客户机截取模块和服务器截取模块可在客户机截取模块30和服务器截取模块40之间产生TCP/IP连接并且在保持TCP/IP连接的同时,在TCP/IP上多路传输一批网浏览器或源于网服务器的通信。
参考图16-1到16-4和图17-1和17-2可以很好地理解客户机插口管理器和服务器插口管理器剩下的功能。这些图说明了如图14和图15的流程中反映的虚拟产生,虚拟发送,虚拟接收,虚拟选择,虚拟刷新,或虚拟关闭操作时,客户机截取模块和服务器截取模块所执行的操作。当如图14的框333和图15的框363所示一虚拟产生操作被执行时,图16-1的从框400开始的操作被执行。随后插口管理器确定是否需要一实插口,如框405所示。如果已经存在一实插口,例如当生成一个将和已存在的实插口连接的多工虚拟插口时,就选取框405的“否”路径,并且将虚拟插口和该实插口相连,如框409所示。然而,如果要求一实插口,那么选取框405的“是”路径。如框406所示,一个实插口被产生。随后将产生的实插口加入到事件列表中,如框408所示,用以监视,如图13的框302所示。在产生一实插口和建立连接后,虚拟插口被连接到实插口,如框409所示,产生操作完成,如框410所示。
为了执行图14的框334和346所示的,或者图15的框364和376所示的虚拟发送操作,图16-2的从框420开始的操作被执行。数据被加入到虚拟插口队列中,如框427所示,并且当完成时,发送操作终止,如框428所示。
通过执行图16-3的从框430开始的操作来完成图14的框331和341所示的,以及图15的框361和371所示的虚拟接收操作。如框435所示,估价虚拟插口队列以确定在虚拟插口队列中是否存在任意数据。如果虚拟插口队列存在数据,那么选取框435的“是”路径,并将数据返回给调用接收操作的功能,如框436所示。如果虚拟插口队列没有数据并且插口没有被标记为关闭,那么选取判定框440的“否”路径,并且返回为空,如框441所示。然而,如果队列没有数据并且插口被标记为关闭,那么选取框440的“是”路径并且插口被标记为已关闭,如框442所示,关闭插口响应被返回给请求接收的操作,如框443所示。
图14的框326和336中的虚拟选择操作是通过执行图16-4从框445开始的操作来完成的。如框446所示,首先确定对于选定的虚拟插口是否数据或待决虚拟关闭操作。如果没有数据或待决虚拟关闭,那么选取框446的“否”路径,并且过程等待在所选虚拟插口上的虚拟事件,如框447所示,并在接收这样的一个事件后终止,如框448所示。如果对于所选虚拟插口数据或待决虚拟关闭,虚拟事件已经发生,那么就选取框446的“是”路径,并且过程终止,如框448所示。
图14的框335和347以及图15的框365和377的虚拟刷新操作是通过执行图17-1的从框450开始的操作来完成的。当被调用时,虚拟刷新操作确定在虚拟插口队列中是否存在将被刷新的数据,如判断框455所示。如果在虚拟插口队列中没有数据,那么刷新操作终止并返回调用功能,如框455的“否”路径所示。然而,如果在队列中存在数据,那么选取框455的“是”路径并确定虚拟插口队列是否是对于多工插口,如框460所示。如果是一多工插口,那么由反映插口独特标识符和传输中的数据量的三个字节组成的插口标题被加入到实插口缓冲区,如框461所示。在任一种情况下,如果是多工插口或单工插口,实插口的数据被转移到实插口缓冲区,如框462所示。如果实插口缓冲区被充满,那么选取框465的“是”路径并且在实插口将数据从实插口缓冲区发送,如框466所示。如果实插口未满,那么选取框465的“否”路径。随后虚拟刷新功能测试以确定在任意其它将被发送给实插口的多工虚拟插口队列中是否存在任意其它数据。如果答案为是,那么选取框470的“是”路径并且不发送实插口缓冲区中的数据直到虚拟刷新操作被再次调用以刷新其它虚拟插口队列中的一个为止。如果没有其它数据或从其它多工虚拟插口加入数据后,那么就执行框466的操作,并且在实插口发送实插口缓冲区中的数据。在对应于调用虚拟刷新操作的虚拟插口队列中的所有数据被发送给实插口后,虚拟刷新操作终止,如框467所示。
图14的框342和348及图15的框372和378所示的虚拟关闭操作通过执行图17-2的从框480开始的操作来完成。当虚拟关闭操作被调用时,该操作首先测试以确定虚拟关闭是否是一多工虚拟插口的关闭,如框485所示。如是一多工虚拟插口,那么选取框485的“是”路径并且将“关闭”操作指示符加入到虚拟插口队列。不论该虚拟关闭是否是多工虚拟插口的关闭,虚拟关闭操作调用虚拟刷新操作,如框487所示,随后从实插口脱接,如框488所示。随后关闭操作测试以检查虚拟关闭是否是一单工虚拟插口的关闭,如框490所示,如果不是,就选取转向框495的“否”路径。由于关闭是多工虚拟插口的关闭,框495测试以确定该多工虚拟插口是否是最后的多工虚拟插口,如果是最后的多工虚拟插口,就设定多工活动计时器,如框496所示。如果不是最后多工虚拟插口,那么就跳过框496。
现在返回框490,如果虚拟关闭是单工虚拟插口的关闭,那么就从事件列表中除去相应的实插口,如框491所示,并且将该实插口关闭和删除,如框492所示。不论插口是单工或多工虚拟插口,该虚拟插口在框497中都被标记为关闭,并且在框498终止关闭操作。
由于图13和图16-1到16-4及图17-1和17-2关联,现在来说明图13。当一事件发生时,退出图13的框302并且插口管理器检验该事件是如何产生的事件。如果事件在时序上超出了图17-2的框496中设定的多工插口活动计时器,那么就选取图13的从框305到框312的路径。如图13所示,随后插口管理器执行框312和框313的操作以关闭多工实插口和删除对应于连接客户机截取模块和服务器截取模块的插口的多工实插口。随后插口管理器等待下一个实事件。通过多工虚拟插口的产生来将多工事件计时器复位,如框322所示。
如果在实插口发生的事件是实插口关闭,例如网服务器在服务器和服务器截取模块之间的插口连接上执行关闭操作,那么就选取图13的框305到309的路径。插口管理器将该实插口从实事件列表中除去,如框309所示,并将虚拟插口或在多个多工插口情况下的插口们从实插口或插口们脱离,如框310所示。随后插口管理器将虚拟插口标记为关闭并将虚拟事件信号化。这一操作示于框311,当将所有的数据都从虚拟插口队列中清除后,虚拟插口将关闭。在将虚拟插口标记为关闭后,插口管理器确定将被关闭的实插口是否是一单工插口,如判断框315所示。如果正被关闭的实插口是一单工插口,那么实插口被关闭并被删除,如框316所示。随后插口管理器等待下一个实事件,如框302所示。
如果正被关闭的不是一个单工实插口,那么选取框315的“否”路径,随后插口管理器等待下一个实事件。这样,多工实插口或连接客户机截取模块和服务器截取模块的插口就只能由多工插口活动计时器的时间溢出来关闭。这样即使在模块之间的最后的通信发生在用户规定的预定时间之后仍可保持客户机截取模块和服务器截取模块之间的通信。在时序超出多工插口活动计时器之前浏览器发出的后继通信请求事件中,通信可被执行而不须重新建立客户机截取模块和服务器截取模块之间的连接,从而消除了重新建立这样连接的额外开销的要求。
图13的将要描述的最后路径表示的是当一实事件发生,并且该事件是在多工实插口或图12中的插口36a或36b上接收数据时的情况。当在多工实插口上接收数据时,检验该数据,在该事件中的数据包括关闭操作标识符,例如图17-2的框486中加入到虚拟队列中的关闭操作标识符,随后执行虚拟关闭操作,并选取从框320到框310的路径。插口管理器从实插口,在实插口接收到的数据中标识的多工虚拟插口脱开,随后将虚拟插口标记为“关闭”,并将虚拟事件信号化,如框311所示。由于该关闭是多工虚拟插口关闭,选取框315的“否”路径,插口管理器等待另一实事件,如框320所示。
通过执行描述于图13到17中的操作,本发明的一个特例就通过外部通信链接在第一计算机和第二计算机之间建立了持续的连接。该持续连接被保持直到所有源于网浏览器的通信都完成,并且在持续连接被保持时,一批源于网浏览器的通信被截取并在外部通信链接上被多路传输。随后客户机/服务器专用数据流被信号分离以产生一批HTTP数据流并将这批HTTP数据流提供给网服务器。同样持续连接被维持直到所有源于网服务器的通信都完成。并且在持续连接被保持时,一批源于网服务器的通信被截取并在外部通信链接上被多路传输。此外,客户机/服务器专用数据流被信号分离以产生一批HTTP数据流并将这批HTTP数据流提供给服务器。
在附图和说明书中,公开了本发明的典型的最佳实施例,虽然使用了专用术语,但是这些术语仅仅是用作一般性术语和描述性的,并不是用于限制目的,本发明的范围陈述于下面的权利要求中。
Claims (42)
1.一种增加驻留于第一计算机的网浏览器应用程序的性能并且采用超文本传输协议(HTTP)和驻留于远离所述的第一计算机的第二计算机中的网服务器应用程序通信的方法,其中第一计算机中的网浏览器应用程序和第二计算机中的网服务器应用程序之间的通信的至少一段通过外部通信链接进行,该方法包括下述步骤:
在外部通信链接上传输HTTP数据流之前,截取对应于源于网浏览器的通信的HTTP数据流;
将源于网浏览器的HTTP数据流从HTTP协议转换为客户机/服务器专用通信协议;
将转换后的源于网浏览器的通信通过外部通信链接以客户机/服务器专用数据流传输给网服务器。
2.一种如权利要求1所述的方法,其中所述的传输步骤包括以下步骤:
将转换后的源于网浏览器的通信通过外部通信链接以客户机/服务器专用数据流传输给第二计算机;
接收通过外部通信链接传输的客户机/服务器专用数据流;
通过将以客户机/服务器专用通信协议接收的客户机/服务器专用数据流转换为HTTP数据流来从通过外部通信链接接收的客户机/服务器专用数据流重新产生对应于源于网浏览器的通信的HTTP数据流;
将源于网浏览器的通信以HTTP数据流提供给网服务器。
3.一种如权利要求1所述的方法,其中所述的传输步骤还包括通过无线通信链接传输转换后的源于网浏览器的通信的步骤。
4.一种如权利要求1所述的方法,还包括下述步骤:
把将由网浏览器接收到的为响应源于网浏览器的和网服务器的通信的HTTP数据流存入驻留于第一计算机中的超高速缓存以产生对应于源于网浏览器的和网服务器的通信的客户机超高速缓存入口;
询问源于网浏览器的通信以确定对应于源于网浏览器的通信的客户机超高速缓存入口是否存在;并且
其中如果对应于源于网浏览器的通信的客户机超高速缓存入口存在,就用如下步骤替换所述的转换和所述的传输步骤;
将客户机超高速缓存入口以HTTP数据流的形式提供给网浏览器以响应源于网浏览器的通信。
5.一种如权利要求1所述的方法,还包括下述步骤:
存储和具体网浏览器信息请求相关的用户确定的信息以提供驻留于第一计算机中的用户确定的信息;
询问源于网浏览器的通信以确定网浏览器请求的信息是否对应于对被存储的用户确定的信息的请求;
如果所述的询问步骤确定网浏览器通信对应于用户确定信息被存入的请求,那么以HTTP数据流的形式将用户确定存入的信息提供给网浏览器以响应源于网浏览器的通信;并且
其中如果用户确定存入的信息被提供给网浏览器,那么用所述的询问步骤和所述的提供步骤替换所述的传输步骤。
6.一种如权利要求5所述的方法,还包括通过通信链接从第一计算机接收用户确定的信息的步骤。
7.一种如权利要求4所述的方法,其中所述的存储步骤还包括存储客户机超高速缓存入口产生的时间以产生客户机超高速缓存入口时间记录的步骤;
其中所述的询问步骤还包括估价客户机超高速缓存入口时间记录以确定在网浏览器请求信息之前,在预定的客户机相干性时间间隔中是否产生对应于源于网浏览器的通信的客户机超高速缓存入口;并且
其中所述的提供步骤还包括如果所述的确定步骤确定在网浏览器请求信息之前,在预定的客户机相干性时间间隔中产生了客户机超高速缓存入口,那么以HTTP数据流的形式将客户机超高速缓存入口提供给网浏览器以响应源于网浏览器的通信。
8.一种如权利要求7所述的方法,还包括在网浏览器的多个实例中保持客户机超高速缓存入口。
9.如权利要求1所述的方法,其中所述的源于网浏览器的通信对应于一公共网关接口(CGI)请求,所述的方法还包括如下步骤:
询问所截取的CGI请求以确定对应于所截取的CGI请求的客户机基础超高速缓存入口是否存在以提供客户机CGI基础格式;
把将提供给网浏览器以响应浏览器开始的通信,该通信是向公共网关接口的请求,的HTTP数据流存入驻留于第一计算机中的超高速缓存以产生客户机基础超高速缓存入口;
通过将客户机CGI基础格式和通过外部通信链接接收到的CGI差分数据结合以产生HTTP数据流来从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于源于网服务器的通信的HTTP数据流;并且
以HTTP数据流的形式将源于网服务器的通信提供给网浏览器。
10.如权利要求9所述的方法,还包括下述步骤:
其中所述的重新产生步骤包括通过将服务器CGI基础格式和通过外部通信链接接收到的CGI差分数据结合以产生对应于所截取的CGI响应的HTTP数据流来从通过外部通信链接接收到的客户机/服务器专用数据流中重新产生对应于源于网服务器的通信的HTTP数据流;并且
通过将所接收到的服务器CGI基础格式存储为对应于该CGI请求的客户机基础超高速缓存入口来更新对应于该CGI请求的客户机CGI基础格式。
11.如权利要求1所述的方法,还包括下述步骤:
通过外部通信链接在第一计算机和第二计算机之间建立持续的连接;
保持该持续连接直到所有的源于网浏览器的通信完成;并且
其中所述的截取步骤包括在保持持续连接的同时,截取一批源于网浏览器的通信并且在外部通信链接上多路传输它们。
12.如权利要求11所述的方法,还包括如下步骤:
通过外部通信链接从第二计算机接收客户机/服务器专用数据流;
将客户机/服务器专用数据流信号分离以提供一批HTTP数据流给网浏览器;并且
将所述的一批HTTP数据流提供给网浏览器。
13.如权利要求1所述的方法,还包括下述步骤:
通过外部通信链接向第二计算机提供对应于第一计算机预定特征的计算机专用信息;并且
其中所述的转换步骤包括从源于网浏览器的通信中除去计算机专用信息的步骤。
14.一种增加驻留于第一计算机的网浏览器应用程序的性能并且采用超文本传输协议(HTTP)和驻留于远离所述的第一计算机的第二计算机中的网服务器应用程序通信的方法,其中第一计算机中的网浏览器应用程序和第二计算机中的网服务器应用程序之间的通信的至少一段通过外部通信链接进行,该方法包括下述步骤:
在外部通信链接上传输HTTP数据流之前,截取对应于源于网服务器的通信的HTTP数据流;
将源于网服务器的HTTP数据流从HTTP协议转换为客户机/服务器专用通信协议;
将转换后的源于网服务器的通信通过外部通信链接以客户机/服务器专用数据流传输给网浏览器。
15.如权利要求14所述的方法,还包括下述步骤:
将从网服务器接收到的为响应源于网浏览器的通信的HTTP数据流存入驻留于第二计算机中的超高速缓存以产生服务器请求超高速缓存入口;
询问源于网浏览器的通信以确定对应于浏览器开始的通信的服务器请求超高速缓存入口先前是否已被存入超高速缓存中;并且
其中所述的转换步骤包括将和浏览器开始的通信相关的服务器请求超高速缓存入口转换为客户机/服务器专用通信协议;
其中所述的传输步骤包括通过外部通信链接以客户机/服务器专用数据流将转换后的服务器请求超高速缓存入口发送给第一计算机。
16.如权利要求15所述的方法,还包括下述步骤:
确定在第二计算机接收源于网浏览器的通信之前,在预定的客户机相干性时间间隔中是否产生对应于源于网浏览器的通信的服务器请求超高速缓存入口;并且
其中所述的转换步骤包括如果所述的确定步骤确定在预定的客户机相干性时间间隔中产生了服务器请求超高速缓存入口,那么将对应于源于网浏览器的通信的服务器请求超高速缓存入口转换为客户机/服务器专用通信协议。
17.如权利要求15所述的方法,还包括下述步骤:
确定和对应于源于网浏览器的通信的服务器超高速缓存入口相同的对应于源于网浏览器的通信的客户机超高速缓存入口是否存在;并且
其中所述的转换步骤包括计算第二计算机接收到源于网浏览器的通信时的时间和对应于源于网浏览器的通信的服务器请求超高速缓存入口被产生时的时间之间的时间间隔以提供入口时期数据;
其中所述的发送步骤包括通过外部通信链接以客户机/服务器专用协议向第一计算机传输包含对应于源于网浏览器的通信的服务器超高速缓存入口的入口时期数据的相干入口响应。
18.如权利要求14所述的方法,其中所述的源于网浏览器的通信对应于一公共网关接口(CGI)请求,所述的方法还包括如下步骤:
询问所截取的CGI请求以确定对应于所截取的CGI请求的服务器基础超高速缓存入口是否存在以提供服务器CGI基础格式;
将从网服务器接收到的、响应浏览器开始的通信,该通信是向公共网关接口的请求,的HTTP数据流存入驻留于第二计算机中的超高速缓存以产生服务器基础超高速缓存入口;
其中所述的截取步骤包括在通过外部通信链接传输HTTP数据流之前,截取对应于源于网服务器的通信的响应所截取的CGI请求的HTTP数据;
将所截取的CGI响应和服务器CGI基础格式作比较以提供对应于所截取的CGI响应和服务器CGI基础格式之间的差分的CGI差分数据;
其中所述的传输步骤包括通过外部通信链接以客户机/服务器专用数据流的形式将CGI差分数据发送给网浏览器。
19.如权利要求18所述的方法,还包括下述步骤:
确定服务器CGI基础格式是否和对应于CGI请求的客户机CGI基础格式相同;并且
其中所述的发送步骤包括通过外部通信链接以客户机/服务器专用数据流的形式传输服务器CGI基础格式和将CGI差分数据传输给网浏览器。
20.如权利要求18所述的方法,还包括如下步骤:
确定服务器CGI基础格式和CGI响应之间的差分是否大于预定差分限度;
如果该CGI差分数据大于预定的差分限度,那么通过将从网服务器接收到的CGI响应存储为对应于该CGI请求的服务器基础超高速缓存入口来更新对应于该CGI请求的服务器CGI基础格式;并且
其中所述的比较步骤和所述的发送步骤采用被更新的服务器CGI基础格式。
21.如权利要求14所述的方法,还包括下述步骤:
通过外部通信链接在第一计算机和第二计算机之间建立持续的连接;
保持该持续连接直到所有的源于网浏览器的通信完成;并且
其中所述的截取步骤包括在保持持续连接的同时,截取一批源于网浏览器的通信并且在外部通信链接上多路传输它们。
22.一种增强驻留于第一计算机的网浏览器应用程序的性能并且采用超文本传输协议(HTTP)和驻留于远离所述的第一计算机的第二计算机中的网服务器应用程序通信的设备,其中第一计算机中的网浏览器应用程序和第二计算机中的网服务器应用程序之间的通信的至少一段通过外部通信链接进行,该设备包括:
在外部通信链接上传输HTTP数据流之前,截取对应于源于网浏览器的通信的HTTP数据流的装置;
将源于网浏览器的HTTP数据流从HTTP协议转换为客户机/服务器专用通信协议的装置;
将转换后的源于网浏览器的通信通过外部通信链接以客户机/服务器专用数据流传输给网服务器的装置。
23.一种如权利要求22所述的设备,其中所述传输装置包括:
将转换后的源于网浏览器的通信通过外部通信链接以客户机/服务器专用数据流的形式传输给第二计算机的装置;
接收通过外部通信链接传输的客户机/服务器专用数据流的装置;
通过将以客户机/服务器专用通信协议接收的客户机/服务器专用数据流转换为HTTP数据流来从通过外部通信链接接收的客户机/服务器专用数据流重新产生对应于源于网浏览器的通信的HTTP数据流的装置;
将源于网浏览器的通信以HTTP数据流提供给网服务器的装置。
24.一种如权利要求22所述的设备,其中所述的传输装置包括通过无线通信链接传输转换后的源于网浏览器的通信的装置。
25.一种如权利要求22所述的设备,还包括:
把将由网浏览器接收到的为响应源于网浏览器的和网服务器的通信的HTTP数据流存入驻留于第一计算机中的超高速缓存以产生对应于源于网浏览器的和网服务器的通信的客户机超高速缓存入口的装置;
询问源于网浏览器的通信以确定对应于源于网浏览器的通信的客户机超高速缓存入口是否存在的装置;并且
将客户机超高速缓存入口以HTTP数据流的形式提供给网浏览器响应源于网浏览器的通信的装置。
26.一种如权利要求22所述的设备,还包括:
存储和具体网浏览器信息请求相关的用户确定的信息以提供驻留于第一计算机中的用户确定的信息的装置;
询问源于网浏览器的通信以确定网浏览器请求的信息是否对应于对被存储的用户确定的信息的请求的装置;
如果所述的询问装置确定网浏览器通信对应于用户确定信息被存入的请求,那么以HTTP数据流的形式将用户确定存入的信息提供给网浏览器以响应源于网浏览器的通信的装置。
27.一种如权利要求26所述的设备,还包括通过通信链接从第一计算机接收用户确定的信息的装置。
28.一种如权利要求25所述的设备,其中所述的存储装置还包括存储客户机超高速缓存入口产生的时间以产生一客户机超高速缓存入口时间记录的装置;
其中所述的询问装置还包括估价客户机超高速缓存入口时间记录以确定在网浏览器请求信息之前,在预定的客户机相干性时间间隔中是否产生对应于源于网浏览器的通信的客户机超高速缓存入口的装置;并且
其中所述的提供装置还包括如果所述的确定装置确定在网浏览器请求信息之前,在预定的客户机相干性时间间隔中产生了客户机超高速缓存入口,那么以HTTP数据流的形式将客户机超高速缓存入口提供给网浏览器以响应源于网浏览器的通信的装置。
29.一种如权利要求28所述的设备,还包括跨过多重网浏览器保持客户机超高速缓存入口的装置。
30.一种如权利要求22所述的设备,其中所述的源于网浏览器的通信对应于一公共网关接口(CGI)请求,所述的设备还包括:
询问所截取的CGI请求以确定对应于所截取的CGI请求的客户机基础超高速缓存入口是否存在以提供客户机CGI基础格式的装置;
把将提供给网浏览器以响应浏览器开始的通信,该通信是向公共网关接口的请求的HTTP数据流存入驻留于第一计算机中的超高速缓存以产生一客户机基础超高速缓存入口的装置;
通过将客户机CGI基础格式和通过外部通信链接接收到的CGI差分数据结合以产生HTTP数据流来从通过外部通信链接接收的客户机/服务器专用数据流中重新产生对应于源于网服务器的通信的HTTP数据流的装置;并且
以HTTP数据流的形式将源于网服务器的通信提供给网浏览器的装置。
31.一种如权利要求30所述的设备,还包括:
其中所述的重新产生装置包括通过将服务器CGI基础格式和通过外部通信链接接收到的CGI差分数据结合以产生对应于所截取的CGI响应的HTTP数据流来从通过外部通信链接接收的客户机/服务器专用数据流中重新产生对应于源于网服务器的通信的HTTP数据流的装置;并且
通过将所接收到的服务器CGI基础格式存储为对应于该CGI请求的客户机基础超高速缓存入口来更新对应于该CGI请求的客户机CGI基础格式的装置。
32.一种如权利要求22所述的设备,还包括:
通过外部通信链接在第一计算机和第二计算机之间建立持续连接的装置;
保持该持续连接直到所有的源于网浏览器的通信完成的装置;并且
其中所述的截取装置包括在保持持续连接的同时,截取一批源于网浏览器的通信并且在外部通信链接上多路传输它们的装置。
33.一种如权利要求32所述的设备,还包括:
通过外部通信链接从第二计算机接收客户机/服务器专用数据流的装置;
将客户机/服务器专用数据流信号分离以提供一批HTTP数据流给网浏览器的装置;并且
将所述的一批HTTP数据流提供给网浏览器的装置。
34.如权利要求22所述的设备,还包括:
通过外部通信链接向第二计算机提供对应于第一计算机预定特征的计算机专用信息的装置;并且
其中所述的转换装置包括从源于网浏览器的通信中除去计算机专用信息的装置。
35.一种增强驻留于第一计算机的网浏览器应用程序的性能并且采用超文本传输协议(HTTP)和驻留于远离所述的第一计算机的第二计算机中的网服务器应用程序通信的设备,其中第一计算机中的网浏览器应用程序和第二计算机中的网服务器应用程序之间的通信的至少一段通过外部通信链接进行,该设备包括:
在外部通信链接上传输HTTP数据流之前,截取对应于源于网服务器的通信的HTTP数据流的装置;
将源于网服务器的HTTP数据流从HTTP协议转换为客户机/服务器专用通信协议的装置;
将转换后的源于网服务器的通信通过外部通信链接以客户机/服务器专用数据流传输给网浏览器的装置。
36.一种如权利要求35所述的设备,还包括:
将从网服务器接收到的为响应源于网浏览器的通信的HTTP数据流存入驻留于第二计算机中的超高速缓存以产生服务器请求超高速缓存入口的装置;
询问源于网浏览器的通信以确定对应于浏览器开始的通信的服务器请求超高速缓存入口先前是否已被存入超高速缓存中的装置;并且
其中所述的转换装置包括将和浏览器开始的通信相关的服务器请求超高速缓存入口转换为客户机/服务器专用通信协议的装置;
其中所述的传输装置包括通过外部通信链接以客户机/服务器专用数据流将转换后的服务器请求超高速缓存入口发送给第一计算机的装置。
37.一种如权利要求36所述的设备,还包括:
确定在第二计算机接收源于网浏览器的通信之前,在预定的客户机相干性时间间隔中是否产生对应于源于网浏览器的通信的服务器请求超高速缓存入口的装置;并且
其中所述的转换装置包括如果所述的确定装置确定在预定的客户机相干性时间间隔中产生了服务器请求超高速缓存入口,那么将对应于源于网浏览器的通信的服务器请求超高速缓存入口转换为客户机/服务器专用通信协议的装置。
38.一种如权利要求36所述的设备,还包括:
确定和对应于源于网浏览器的通信的服务器超高速缓存入口相同的对应于源于网浏览器的通信的客户机超高速缓存入口是否存在的装置;并且
其中所述的转换装置包括计算第二计算机接收到源于网浏览器的通信时的时间和对应于源于网浏览器的通信的服务器请求超高速缓存入口被产生时的时间之间的时间间隔以提供入口时期数据的装置;
其中所述的发送装置包括通过外部通信链接以客户机/服务器专用协议向第一计算机传输包含对应于源于网浏览器的通信的服务器超高速缓存入口的入口时期数据的相干入口响应的装置。
39.一种如权利要求35所述的设备,其中所述的源于网浏览器的通信对应于一公共网关接口(CGI)请求,所述的设备还包括:
询问所截取的CGI请求以确定对应于所截取的CGI请求的服务器基础超高速缓存入口是否存在以提供服务器CGI基础格式的装置;
将从网服务器接收到的、响应浏览器开始的通信,该通信是向公共网关接口的请求,的HTTP数据流存入驻留于第二计算机中的超高速缓存以产生一服务器基础超高速缓存入口的装置;
其中所述的截取装置包括在通过外部通信链接传输HTTP数据流之前,截取对应于源于网服务器的通信的响应所截取的CGI请求的HTTP数据的装置;
将所截取的CGI响应和服务器CGI基础格式作比较以提供对应于所截取的CGI响应和服务器CGI基础格式之间的差分的CGI差分数据的装置;
其中所述的传输装置包括通过外部通信链接以客户机/服务器专用数据流的形式将CGI差分数据发送给网浏览器的装置。
40.一种如权利要求39所述的设备,还包括:
确定服务器CGI基础格式是否和对应于CGI请求的客户机CGI基础格式相同的装置;并且
其中所述的传输装置包括通过外部通信链接以客户机/服务器专用数据流的形式传输服务器CGI基础格式和将CGI差分数据传输给网浏览器的装置。
41.一种如权利要求39所述的设备,还包括:
确定服务器CGI基础格式和CGI响应之间的差分是否大于预定差分限度的装置;
如果所述的确定装置确定服务器CGI基础格式和CGI响应之间的差分大于预定差分限度,那么通过将从网服务器接收到的CGI响应存储为对应于该CGI请求的服务器基础超高速缓存入口来更新对应于该CGI请求的服务器CGI基础格式的装置;并且
其中所述的比较装置和所述的发送装置采用被更新的服务器CGI基础格式。
42.一种如权利要求35所述的设备,还包括:
通过外部通信链接在第一计算机和第二计算机之间建立持续连接的装置;
保持该持续连接直到所有的源于网浏览器的通信完成的装置;并且
其中所述的截取装置包括在保持持续连接的同时,截取一批源于网浏览器的通信并且在外部通信链接上多路传输它们的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/601,804 | 1996-02-15 | ||
US08/601,804 US5754774A (en) | 1996-02-15 | 1996-02-15 | Client/server communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1195443A CN1195443A (zh) | 1998-10-07 |
CN1148927C true CN1148927C (zh) | 2004-05-05 |
Family
ID=24408840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB96193946XA Expired - Lifetime CN1148927C (zh) | 1996-02-15 | 1996-07-11 | 增加网浏览器的性能并和网服务器通信的方法和设备 |
Country Status (16)
Country | Link |
---|---|
US (2) | US5754774A (zh) |
EP (1) | EP0823170B1 (zh) |
JP (2) | JP3953109B2 (zh) |
KR (1) | KR100289520B1 (zh) |
CN (1) | CN1148927C (zh) |
AT (1) | ATE196707T1 (zh) |
CA (1) | CA2218169C (zh) |
CZ (1) | CZ287988B6 (zh) |
DE (1) | DE69610495T2 (zh) |
ES (1) | ES2151176T3 (zh) |
HK (1) | HK1017789A1 (zh) |
HU (1) | HUP9801295A3 (zh) |
MY (1) | MY122038A (zh) |
PL (1) | PL180570B1 (zh) |
TW (1) | TW297194B (zh) |
WO (1) | WO1997030538A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272442B (zh) * | 2007-03-21 | 2010-05-26 | 杭州波导软件有限公司 | 数字图像无损压缩方法和装置、解析方法及图像译码器 |
CN101043522B (zh) * | 2006-03-22 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 一种基于Web服务器的通信方法及系统 |
Families Citing this family (340)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026452A (en) * | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
US6418324B1 (en) * | 1995-06-01 | 2002-07-09 | Padcom, Incorporated | Apparatus and method for transparent wireless communication between a remote device and host system |
US20040264402A9 (en) * | 1995-06-01 | 2004-12-30 | Padcom. Inc. | Port routing functionality |
US5754774A (en) * | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
AU2230597A (en) * | 1996-02-28 | 1997-09-16 | Aim Corporation | Communication system for distributing such message as advertisement to user of terminal equipment |
US6194992B1 (en) * | 1997-04-24 | 2001-02-27 | Nomadix, Llc | Mobile web |
US5859972A (en) * | 1996-05-10 | 1999-01-12 | The Board Of Trustees Of The University Of Illinois | Multiple server repository and multiple server remote application virtual client computer |
US5935207A (en) | 1996-06-03 | 1999-08-10 | Webtv Networks, Inc. | Method and apparatus for providing remote site administrators with user hits on mirrored web sites |
US6049820A (en) | 1996-06-03 | 2000-04-11 | International Business Machines Corporation | Multiplexing of clients and applications among multiple servers |
US6091518A (en) * | 1996-06-28 | 2000-07-18 | Fuji Xerox Co., Ltd. | Image transfer apparatus, image transmitter, profile information transmitter, image receiver/reproducer, storage medium, image receiver, program transmitter, and image color correction apparatus |
JP2924817B2 (ja) * | 1996-09-13 | 1999-07-26 | 日本電気株式会社 | 情報サーバシステム |
US6166734A (en) * | 1996-10-01 | 2000-12-26 | Diamond Multimedia Systems, Inc. | Portable interactive graphics display tablet and communications system |
US6052120A (en) * | 1996-10-01 | 2000-04-18 | Diamond Multimedia Systems, Inc. | Method of operating a portable interactive graphics display tablet and communications systems |
US6084584A (en) * | 1996-10-01 | 2000-07-04 | Diamond Multimedia Systems, Inc. | Computer system supporting portable interactive graphics display tablet and communications systems |
US5931904A (en) * | 1996-10-11 | 1999-08-03 | At&T Corp. | Method for reducing the delay between the time a data page is requested and the time the data page is displayed |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
US6901425B1 (en) | 1996-12-23 | 2005-05-31 | International Business Machines Corporation | Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web |
US6144990A (en) * | 1996-12-23 | 2000-11-07 | International Business Machines Corporation | Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling |
US5898833A (en) | 1996-12-31 | 1999-04-27 | Intel Corporation | Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data |
US6456974B1 (en) * | 1997-01-06 | 2002-09-24 | Texas Instruments Incorporated | System and method for adding speech recognition capabilities to java |
US7020700B1 (en) * | 1997-02-28 | 2006-03-28 | International Business Machines Corporation | Client side socks server for an internet client |
US6057854A (en) * | 1997-03-07 | 2000-05-02 | Micrografx, Inc. | System and method of providing interactive vector graphics over a network |
US5948066A (en) * | 1997-03-13 | 1999-09-07 | Motorola, Inc. | System and method for delivery of information over narrow-band communications links |
US6073173A (en) * | 1997-03-17 | 2000-06-06 | International Business Machines Corporation | Method and apparatus for optimal rebasing of web page transmission |
US6182122B1 (en) * | 1997-03-26 | 2001-01-30 | International Business Machines Corporation | Precaching data at an intermediate server based on historical data requests by users of the intermediate server |
US6273622B1 (en) * | 1997-04-15 | 2001-08-14 | Flash Networks, Ltd. | Data communication protocol for maximizing the performance of IP communication links |
US5996016A (en) * | 1997-04-15 | 1999-11-30 | International Business Machines Corporation | Reinitiation of bind calls for IP applications concurrently executing with alternate address |
US5907678A (en) * | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
US6061714A (en) * | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
US6184996B1 (en) * | 1997-06-18 | 2001-02-06 | Hewlett-Packard Company | Network printer with remote print queue control procedure |
US6105028A (en) * | 1997-06-26 | 2000-08-15 | Digital Equipment Corporation | Method and apparatus for accessing copies of documents using a web browser request interceptor |
US5991760A (en) * | 1997-06-26 | 1999-11-23 | Digital Equipment Corporation | Method and apparatus for modifying copies of remotely stored documents using a web browser |
US6081512A (en) | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
US6128666A (en) * | 1997-06-30 | 2000-10-03 | Sun Microsystems, Inc. | Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine |
US6081522A (en) | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US6094435A (en) | 1997-06-30 | 2000-07-25 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
US6119196A (en) | 1997-06-30 | 2000-09-12 | Sun Microsystems, Inc. | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates |
US6016310A (en) | 1997-06-30 | 2000-01-18 | Sun Microsystems, Inc. | Trunking support in a high performance network device |
US6115378A (en) * | 1997-06-30 | 2000-09-05 | Sun Microsystems, Inc. | Multi-layer distributed network element |
US6088356A (en) | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
US6044418A (en) | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
US7058720B1 (en) * | 1997-06-30 | 2006-06-06 | Microsoft Corporation | Geographical client distribution methods, systems and computer program products |
US6021132A (en) * | 1997-06-30 | 2000-02-01 | Sun Microsystems, Inc. | Shared memory management in a switched network element |
US6044087A (en) | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Interface for a highly integrated ethernet network element |
US6049528A (en) | 1997-06-30 | 2000-04-11 | Sun Microsystems, Inc. | Trunking ethernet-compatible networks |
US6246680B1 (en) | 1997-06-30 | 2001-06-12 | Sun Microsystems, Inc. | Highly integrated multi-layer switch element architecture |
WO1999001819A1 (en) * | 1997-07-01 | 1999-01-14 | Progress Software Corporation | Testing and debugging tool for network applications |
US6038601A (en) | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6058425A (en) * | 1997-07-21 | 2000-05-02 | International Business Machines Corporation | Single server access in a multiple TCP/IP instance environment |
US6324565B1 (en) * | 1997-07-28 | 2001-11-27 | Qwest Communications International Inc. | Dynamically generated document cache system |
US6282542B1 (en) * | 1997-08-06 | 2001-08-28 | Tachyon, Inc. | Distributed system and method for prefetching objects |
US5935212A (en) * | 1997-08-07 | 1999-08-10 | I-Planet, Inc. | Connection-oriented session emulation |
US6070184A (en) * | 1997-08-28 | 2000-05-30 | International Business Machines Corporation | Server-side asynchronous form management |
US6035324A (en) * | 1997-08-28 | 2000-03-07 | International Business Machines Corporation | Client-side asynchronous form management |
US6631424B1 (en) * | 1997-09-10 | 2003-10-07 | Fmr Corp. | Distributing information using a computer |
US20060193278A1 (en) | 1997-10-15 | 2006-08-31 | Wolfgang Theimer | Mobile telephone for Internet applications |
US6185617B1 (en) * | 1997-11-26 | 2001-02-06 | International Business Machines Corporation | Construction and usage of a pre-warmed cache for client-server emulator |
US6292835B1 (en) * | 1997-11-26 | 2001-09-18 | International Business Machines Corporation | Network bandwidth and object obsolescence sensitive scheduling method and apparatus for objects distributed broadcasting |
US6360257B1 (en) * | 1998-01-30 | 2002-03-19 | Telefonaktiebolaget L M Ericsson (Publ) | Managing group IP addresses in mobile end stations |
FI112897B (fi) | 1998-03-03 | 2004-01-30 | Nokia Corp | Menetelmä tiedonsiirtoverkossa ja tiedonsiirtolaite |
US6148340A (en) * | 1998-04-30 | 2000-11-14 | International Business Machines Corporation | Method and system for differencing container files |
CA2333033C (en) * | 1998-05-29 | 2011-08-02 | Palm, Inc. | Method and apparatus for communicating information over low bandwidth communications networks |
US6343318B1 (en) | 1998-05-29 | 2002-01-29 | Palm, Inc. | Method and apparatus for communicating information over low bandwidth communications networks |
US7025209B2 (en) * | 1998-05-29 | 2006-04-11 | Palmsource, Inc. | Method and apparatus for wireless internet access |
US6185608B1 (en) * | 1998-06-12 | 2001-02-06 | International Business Machines Corporation | Caching dynamic web pages |
US7197570B2 (en) * | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
US6311221B1 (en) * | 1998-07-22 | 2001-10-30 | Appstream Inc. | Streaming modules |
US20010044850A1 (en) | 1998-07-22 | 2001-11-22 | Uri Raz | Method and apparatus for determining the order of streaming modules |
US6574618B2 (en) * | 1998-07-22 | 2003-06-03 | Appstream, Inc. | Method and system for executing network streamed application |
US7127493B1 (en) | 1998-08-20 | 2006-10-24 | Gautier Taylor S | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
US6535509B2 (en) * | 1998-09-28 | 2003-03-18 | Infolibria, Inc. | Tagging for demultiplexing in a network traffic server |
US6321250B1 (en) | 1998-10-01 | 2001-11-20 | Ericsson Inc. | Data communication system and method for transporting objects over a permanent connections |
EP0993163A1 (en) | 1998-10-05 | 2000-04-12 | Backweb Technologies Ltd. | Distributed client-based data caching system and method |
US6397253B1 (en) | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US7293107B1 (en) * | 1998-10-09 | 2007-11-06 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6546425B1 (en) | 1998-10-09 | 2003-04-08 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7778260B2 (en) * | 1998-10-09 | 2010-08-17 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8078727B2 (en) * | 1998-10-09 | 2011-12-13 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7136645B2 (en) | 1998-10-09 | 2006-11-14 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8060656B2 (en) | 1998-10-09 | 2011-11-15 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6230165B1 (en) * | 1998-10-16 | 2001-05-08 | Cerulean | Method for encoding and transporting database objects over bandwidth constrained networks |
US6279041B1 (en) | 1998-11-13 | 2001-08-21 | International Business Machines Corporation | Methods, systems and computer program products for differencing data communications using a message queue |
EP1003114A1 (en) * | 1998-11-17 | 2000-05-24 | International Business Machines Corporation | Method of interconnecting computers and computer network |
US8713641B1 (en) | 1998-12-08 | 2014-04-29 | Nomadix, Inc. | Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device |
US8266266B2 (en) | 1998-12-08 | 2012-09-11 | Nomadix, Inc. | Systems and methods for providing dynamic network authorization, authentication and accounting |
US7194554B1 (en) | 1998-12-08 | 2007-03-20 | Nomadix, Inc. | Systems and methods for providing dynamic network authorization authentication and accounting |
US6813640B1 (en) | 1998-12-08 | 2004-11-02 | Macrovision Corporation | System and method for controlling the editing by user action of digital objects created in a document server application |
US6973300B1 (en) | 1998-12-23 | 2005-12-06 | Nortel Networks Limited | Intelligent wireless terminal with virtual memory |
US6266678B1 (en) * | 1998-12-31 | 2001-07-24 | Computer Associates Think, Inc. | System and method for dynamically viewing contents of a data file |
EP1166525A1 (en) * | 1999-04-02 | 2002-01-02 | Infolibria Inc. | Connection pass-through to optimize server performance |
US6651103B1 (en) * | 1999-04-20 | 2003-11-18 | At&T Corp. | Proxy apparatus and method for streaming media information and for increasing the quality of stored media information |
US6484212B1 (en) | 1999-04-20 | 2002-11-19 | At&T Corp. | Proxy apparatus and method for streaming media information |
US7882247B2 (en) | 1999-06-11 | 2011-02-01 | Netmotion Wireless, Inc. | Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments |
US6510458B1 (en) | 1999-07-15 | 2003-01-21 | International Business Machines Corporation | Blocking saves to web browser cache based on content rating |
US6430739B1 (en) * | 1999-07-16 | 2002-08-06 | Acceleration Software International Corporation | Software execution contingent on home page setting |
US6507891B1 (en) * | 1999-07-22 | 2003-01-14 | International Business Machines Corporation | Method and apparatus for managing internal caches and external caches in a data processing system |
US6658462B1 (en) | 1999-08-26 | 2003-12-02 | International Business Machines Corporation | System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet |
US7987420B1 (en) | 1999-09-10 | 2011-07-26 | Ianywhere Solutions, Inc. | System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices |
US7392308B2 (en) * | 1999-09-10 | 2008-06-24 | Ianywhere Solutions, Inc. | System, method, and computer program product for placement of channels on a mobile device |
US20020052781A1 (en) * | 1999-09-10 | 2002-05-02 | Avantgo, Inc. | Interactive advertisement mechanism on a mobile device |
US20010047394A1 (en) * | 1999-09-10 | 2001-11-29 | Kloba David D. | System, method, and computer program product for executing scripts on mobile devices |
US8595308B1 (en) | 1999-09-10 | 2013-11-26 | Ianywhere Solutions, Inc. | System, method, and computer program product for server side processing in a mobile device environment |
US6553412B1 (en) | 1999-09-10 | 2003-04-22 | Avantgo, Inc. | System, method, and computer program product for web content aggregation and development, and web content delivery to clients |
US6757717B1 (en) * | 1999-09-16 | 2004-06-29 | Proxyconn, Inc. | System and method for data access |
US8108245B1 (en) | 1999-09-17 | 2012-01-31 | Cox Communications, Inc. | Method and system for web user profiling and selective content delivery |
US6801927B1 (en) | 1999-09-24 | 2004-10-05 | Akamba Corporation | Network adaptor card with reverse proxy and cache and method implemented therewith |
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 |
US6877036B1 (en) * | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
FR2803706B1 (fr) * | 1999-09-27 | 2002-03-08 | Bull Cp8 | Procede et architecture de pilotage a distance d'une station d'utilisateur via un reseau de type internet et leur application a un demonstrateur de carte a puce |
US7089300B1 (en) * | 1999-10-18 | 2006-08-08 | Apple Computer, Inc. | Method and apparatus for administering the operating system of a net-booted environment |
US6721780B1 (en) | 1999-11-09 | 2004-04-13 | Fireclick, Inc. | Predictive pre-download of network objects |
US6864904B1 (en) * | 1999-12-06 | 2005-03-08 | Girafa.Com Inc. | Framework for providing visual context to www hyperlinks |
US6708217B1 (en) | 2000-01-05 | 2004-03-16 | International Business Machines Corporation | Method and system for receiving and demultiplexing multi-modal document content |
US6983315B1 (en) | 2000-01-18 | 2006-01-03 | Wrq, Inc. | Applet embedded cross-platform caching |
US7970898B2 (en) | 2001-01-24 | 2011-06-28 | Telecommunication Systems, Inc. | System and method to publish information from servers to remote monitor devices |
US8090856B1 (en) | 2000-01-31 | 2012-01-03 | Telecommunication Systems, Inc. | Intelligent messaging network server interconnection |
US7689696B2 (en) * | 2000-01-31 | 2010-03-30 | Telecommunication Systems, Inc. | System and method for re-directing requests from browsers for communications over non-IP based networks |
US6435164B1 (en) | 2000-12-07 | 2002-08-20 | Ford Global Technologies, Inc. | Fuel weathering method for vehicle evaporative emission system |
US7418498B2 (en) * | 2001-01-24 | 2008-08-26 | Telecommunication Systems, Inc. | System and method to publish information from servers to remote monitor devices |
US7003571B1 (en) * | 2000-01-31 | 2006-02-21 | Telecommunication Systems Corporation Of Maryland | System and method for re-directing requests from browsers for communication over non-IP based networks |
US8370435B1 (en) | 2000-01-31 | 2013-02-05 | Telecommunication Systems, Inc. | System and method for servers to send alerts to connectionless devices |
US7693981B2 (en) * | 2001-01-24 | 2010-04-06 | Telecommunication Systems, Inc. | System and method to publish information from servers to remote monitor devices |
US7096418B1 (en) * | 2000-02-02 | 2006-08-22 | Persistence Software, Inc. | Dynamic web page cache |
US6820133B1 (en) | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
US6947440B2 (en) | 2000-02-15 | 2005-09-20 | Gilat Satellite Networks, Ltd. | System and method for internet page acceleration including multicast transmissions |
US7028251B2 (en) * | 2000-03-02 | 2006-04-11 | Iora, Ltd. | System and method for reducing the size of data difference representations |
US6789128B1 (en) * | 2000-03-11 | 2004-09-07 | Oracle International Corporation | System and method for reducing network traffic between two computing devices |
US7020719B1 (en) | 2000-03-24 | 2006-03-28 | Netli, Inc. | System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
AUPQ653800A0 (en) * | 2000-03-28 | 2000-04-20 | Sharinga Networks Inc. | A data delivery process |
US7187947B1 (en) | 2000-03-28 | 2007-03-06 | Affinity Labs, Llc | System and method for communicating selected information to an electronic device |
US6654794B1 (en) | 2000-03-30 | 2003-11-25 | International Business Machines Corporation | Method, data processing system and program product that provide an internet-compatible network file system driver |
AU2000263270A1 (en) * | 2000-04-13 | 2001-10-30 | Worldlink Information Technology Systems Limited | Apparatus and a method for supplying information |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
AU2001251644A1 (en) | 2000-04-17 | 2001-10-30 | Circadence Corporation | Conductor gateway buffer prioritization |
US20110128972A1 (en) | 2000-04-17 | 2011-06-02 | Randy Thornton | Peer to peer dynamic network link acceleration |
US7979880B2 (en) * | 2000-04-21 | 2011-07-12 | Cox Communications, Inc. | Method and system for profiling iTV users and for providing selective content delivery |
US7013340B1 (en) | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
US6990526B1 (en) * | 2000-05-22 | 2006-01-24 | Pointred Technologies, Inc. | Method and apparatus for web caching |
US7062475B1 (en) * | 2000-05-30 | 2006-06-13 | Alberti Anemometer Llc | Personalized multi-service computer environment |
FI20001617L (fi) * | 2000-07-06 | 2002-01-07 | Nokia Mobile Phones Ltd | Tiedonsiirtomenetelmõ ja -jõrjestely |
FR2811504B1 (fr) * | 2000-07-06 | 2003-07-04 | Centre Nat Etd Spatiales | Dispositif serveur de realisation multi-utilisateur en libre-service et de diffusion d'emissions de television et reseau de television |
US6704024B2 (en) * | 2000-08-07 | 2004-03-09 | Zframe, Inc. | Visual content browsing using rasterized representations |
EP1334587A1 (en) * | 2000-08-31 | 2003-08-13 | Padcom Inc. | Method and apparatus for routing data over multiple wireless networks |
US6757894B2 (en) | 2000-09-26 | 2004-06-29 | Appstream, Inc. | Preprocessed applications suitable for network streaming applications and method for producing same |
US20020087717A1 (en) * | 2000-09-26 | 2002-07-04 | Itzik Artzi | Network streaming of multi-application program code |
US7801978B1 (en) | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
EP1399833B1 (en) | 2000-11-20 | 2017-04-19 | AT & T Mobility II, LLC | Methods and systems for providing application level presence information in wireless communication |
US20020196793A1 (en) * | 2000-11-29 | 2002-12-26 | Quikcat.Com, Inc. | End-user communication systems access network |
US7269784B1 (en) | 2001-01-22 | 2007-09-11 | Kasriel Stephane | Server-originated differential caching |
US7174305B2 (en) | 2001-01-23 | 2007-02-06 | Opentv, Inc. | Method and system for scheduling online targeted content delivery |
US7195923B2 (en) * | 2001-01-31 | 2007-03-27 | Scripps Laboratories, Inc. | Ratiometric determination of glycated protein |
US7665115B2 (en) * | 2001-02-02 | 2010-02-16 | Microsoft Corporation | Integration of media playback components with an independent timing specification |
US20020138331A1 (en) * | 2001-02-05 | 2002-09-26 | Hosea Devin F. | Method and system for web page personalization |
US6963930B2 (en) * | 2001-02-15 | 2005-11-08 | Centric Software, Inc. | Automatic transfer and expansion of application-specific data for display at a website |
US6968553B1 (en) * | 2001-03-01 | 2005-11-22 | Alcatel | Element manager common gateway architecture system and method |
US7380250B2 (en) * | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
US7185094B2 (en) * | 2001-03-30 | 2007-02-27 | Sandcherry, Inc. | Media session framework using a control module to direct and manage application and service servers |
US20020156900A1 (en) * | 2001-03-30 | 2002-10-24 | Brian Marquette | Protocol independent control module |
US20020184363A1 (en) * | 2001-04-20 | 2002-12-05 | Steven Viavant | Techniques for server-controlled measurement of client-side performance |
US7031314B2 (en) * | 2001-05-16 | 2006-04-18 | Bytemobile, Inc. | Systems and methods for providing differentiated services within a network communication system |
EP1564960B1 (en) * | 2001-05-16 | 2007-03-28 | Bytemobile, Inc. | System and methods for providing differentiated services within a network communication system |
US6965765B2 (en) * | 2001-05-17 | 2005-11-15 | Palmsource, Inc. | Transactional message-queue communication for wirelessly networked devices system and method |
US20030048751A1 (en) * | 2001-05-18 | 2003-03-13 | Han Sung-Wook | Dual mode service platform within network communication system |
US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
US7562146B2 (en) * | 2003-10-10 | 2009-07-14 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability |
US20050198379A1 (en) * | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US7185063B1 (en) * | 2001-06-22 | 2007-02-27 | Digital River, Inc. | Content delivery network using differential caching |
US7165112B2 (en) * | 2001-06-22 | 2007-01-16 | Motorola, Inc. | Method and apparatus for transmitting data in a communication system |
US20020198956A1 (en) * | 2001-06-25 | 2002-12-26 | International Business Machines Corporation | Method and apparatus for managing a cache |
WO2003003235A1 (en) | 2001-06-27 | 2003-01-09 | 4 Media, Inc. | Improved media delivery platform |
US7594001B1 (en) * | 2001-07-06 | 2009-09-22 | Microsoft Corporation | Partial page output caching |
US7092997B1 (en) | 2001-08-06 | 2006-08-15 | Digital River, Inc. | Template identification with differential caching |
US7188214B1 (en) | 2001-08-07 | 2007-03-06 | Digital River, Inc. | Efficient compression using differential caching |
US7822843B2 (en) * | 2001-08-13 | 2010-10-26 | Cox Communications, Inc. | Predicting the activities of an individual or group using minimal information |
US7099957B2 (en) * | 2001-08-23 | 2006-08-29 | The Directtv Group, Inc. | Domain name system resolution |
US7644171B2 (en) * | 2001-09-12 | 2010-01-05 | Netmotion Wireless, Inc. | Mobile networking system and method using IPv4 and IPv6 |
WO2003032201A1 (en) * | 2001-10-09 | 2003-04-17 | Wildblue Communications, Inc. | Performance enhancing proxy for high latency data |
US7000238B2 (en) * | 2001-10-10 | 2006-02-14 | Borland Software Corporation | Development system providing extensible remoting architecture |
JP2003205483A (ja) * | 2001-11-07 | 2003-07-22 | Sony Corp | ロボットシステム及びロボット装置の制御方法 |
US7428725B2 (en) | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US20030106057A1 (en) * | 2001-12-05 | 2003-06-05 | Predictive Networks, Inc. | Television navigation program guide |
EP1318461A1 (en) * | 2001-12-07 | 2003-06-11 | Sap Ag | Method and computer system for refreshing client-data |
US7296051B1 (en) | 2002-02-19 | 2007-11-13 | Digital River, Inc. | Predictive predownload of templates with delta encoding |
US7487261B1 (en) | 2002-02-22 | 2009-02-03 | Digital River, Inc. | Delta caching service |
US7984157B2 (en) * | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7661129B2 (en) * | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US7263562B2 (en) * | 2002-03-21 | 2007-08-28 | Microsoft Corporation | Method and system for describing uploaded files statement regarding federally-sponsored research or development |
US20030182424A1 (en) * | 2002-03-22 | 2003-09-25 | Steve Odendahl | Scriptable proxy server |
US7111038B2 (en) * | 2002-04-03 | 2006-09-19 | International Business Machines Corporation | Enhancing application server performance by relocating performance-degrading processing |
EP1355238A1 (en) * | 2002-04-19 | 2003-10-22 | Sap Ag | Method and computer system for delta-handling in server-pages |
US7703015B2 (en) * | 2002-04-30 | 2010-04-20 | Sap Aktiengesellschaft | Delta-handling in server-pages |
US7899915B2 (en) * | 2002-05-10 | 2011-03-01 | Richard Reisman | Method and apparatus for browsing using multiple coordinated device sets |
US6996584B2 (en) * | 2002-05-14 | 2006-02-07 | Pervasive Software, Inc. | System and method of maintaining functional client side data cache coherence |
US7434163B2 (en) | 2002-05-31 | 2008-10-07 | Sap Aktiengesellschaft | Document structures for delta handling in server pages |
US9357013B2 (en) * | 2002-07-26 | 2016-05-31 | International Business Machines Corporation | Client-side script to application communication system |
US7765255B2 (en) * | 2002-07-30 | 2010-07-27 | Sap Ag | Extended web infrastructure for business applications |
US8255454B2 (en) | 2002-09-06 | 2012-08-28 | Oracle International Corporation | Method and apparatus for a multiplexed active data window in a near real-time business intelligence system |
US7945846B2 (en) | 2002-09-06 | 2011-05-17 | Oracle International Corporation | Application-specific personalization for data display |
US7243124B1 (en) | 2002-09-06 | 2007-07-10 | Oracle International Corporation | Architecture for general purpose near real-time business intelligence system with client devices and methods therefor |
US7899879B2 (en) | 2002-09-06 | 2011-03-01 | Oracle International Corporation | Method and apparatus for a report cache in a near real-time business intelligence system |
US8165993B2 (en) | 2002-09-06 | 2012-04-24 | Oracle International Corporation | Business intelligence system with interface that provides for immediate user action |
US7941542B2 (en) | 2002-09-06 | 2011-05-10 | Oracle International Corporation | Methods and apparatus for maintaining application execution over an intermittent network connection |
US7454423B2 (en) | 2002-09-06 | 2008-11-18 | Oracle International Corporation | Enterprise link for a software database |
US7912899B2 (en) | 2002-09-06 | 2011-03-22 | Oracle International Corporation | Method for selectively sending a notification to an instant messaging device |
US7272660B1 (en) | 2002-09-06 | 2007-09-18 | Oracle International Corporation | Architecture for general purpose near real-time business intelligence system and methods therefor |
US7412481B2 (en) * | 2002-09-16 | 2008-08-12 | Oracle International Corporation | Method and apparatus for distributed rule evaluation in a near real-time business intelligence system |
US7668917B2 (en) * | 2002-09-16 | 2010-02-23 | Oracle International Corporation | Method and apparatus for ensuring accountability in the examination of a set of data elements by a user |
US7401158B2 (en) * | 2002-09-16 | 2008-07-15 | Oracle International Corporation | Apparatus and method for instant messaging collaboration |
US7426059B2 (en) | 2002-09-16 | 2008-09-16 | Oracle International Corporation | Data presentation methods and apparatus to facilitate printing and reviewing |
US7730155B1 (en) * | 2002-10-01 | 2010-06-01 | Apple Inc. | Method and apparatus for dynamically locating resources |
US7574653B2 (en) | 2002-10-11 | 2009-08-11 | Microsoft Corporation | Adaptive image formatting control |
US8364815B2 (en) | 2005-03-18 | 2013-01-29 | Riverbed Technology, Inc. | Reliability and availability of distributed servers |
US8176186B2 (en) | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7650416B2 (en) | 2003-08-12 | 2010-01-19 | Riverbed Technology | Content delivery for client-server protocols with user affinities using connection end-point proxies |
US6667700B1 (en) | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7120666B2 (en) * | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US8069225B2 (en) * | 2003-04-14 | 2011-11-29 | Riverbed Technology, Inc. | Transparent client-server transaction accelerator |
ATE380431T1 (de) * | 2002-11-15 | 2007-12-15 | Ibm | Steuerung von netzwerkverkehr in einer peer-to- peer umgebung |
JP2004240650A (ja) * | 2003-02-05 | 2004-08-26 | Brother Ind Ltd | 通信システム、スイッチ操作部材、端末装置およびプログラム |
US20040170181A1 (en) * | 2003-02-27 | 2004-09-02 | Padcom, Inc. | Prioritized alternate port routing |
US7904823B2 (en) * | 2003-03-17 | 2011-03-08 | Oracle International Corporation | Transparent windows methods and apparatus therefor |
WO2004088457A2 (en) * | 2003-03-25 | 2004-10-14 | Sedna Patent Services, Llc | Generating audience analytics |
US7113964B1 (en) | 2003-06-05 | 2006-09-26 | Iteration Software, Inc. | Method and apparatus for archiving data in a relational database system |
US7359395B2 (en) * | 2003-06-16 | 2008-04-15 | Packeteer, Inc. | Pre-fetch communication systems and methods |
US7882510B2 (en) * | 2003-08-06 | 2011-02-01 | Microsoft Corporation | Demultiplexer application programming interface |
US7853699B2 (en) | 2005-03-15 | 2010-12-14 | Riverbed Technology, Inc. | Rules-based transaction prefetching using connection end-point proxies |
US7873353B2 (en) * | 2003-09-30 | 2011-01-18 | Ianywhere Solutions, Inc. | Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices |
US7472254B2 (en) * | 2003-10-10 | 2008-12-30 | Iora, Ltd. | Systems and methods for modifying a set of data objects |
US7774774B1 (en) * | 2003-10-22 | 2010-08-10 | Apple Inc. | Software setup system |
US7441011B2 (en) * | 2003-10-23 | 2008-10-21 | Microsoft Corporation | Truth on client persistent caching |
US20050091226A1 (en) * | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
US7890604B2 (en) | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US7464386B2 (en) | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
US8135803B2 (en) * | 2004-08-23 | 2012-03-13 | Ianywhere Solutions, Inc. | Method, system, and computer program product for offline advertisement servicing and cycling |
US20060064470A1 (en) * | 2004-09-23 | 2006-03-23 | Sargent Antony J | Method, system, and computer program product for improved synchronization efficiency for mobile devices, including database hashing and caching of web access errors |
US20060078127A1 (en) * | 2004-10-08 | 2006-04-13 | Philip Cacayorin | Dispersed data storage using cryptographic scrambling |
US7908397B1 (en) | 2005-02-28 | 2011-03-15 | Adobe Systems Incorporated | Application server gateway technology |
US20060248194A1 (en) | 2005-03-18 | 2006-11-02 | Riverbed Technology, Inc. | Connection forwarding |
US20060224702A1 (en) * | 2005-03-31 | 2006-10-05 | Patrick Schmidt | Local workflows in a business process management system |
US8943304B2 (en) | 2006-08-03 | 2015-01-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
US9692725B2 (en) * | 2005-05-26 | 2017-06-27 | Citrix Systems, Inc. | Systems and methods for using an HTTP-aware client agent |
WO2007016236A2 (en) * | 2005-07-28 | 2007-02-08 | Riverbed Technology, Inc. | Automatic framing selection |
US8370583B2 (en) * | 2005-08-12 | 2013-02-05 | Silver Peak Systems, Inc. | Network memory architecture for providing data based on local accessibility |
US8095774B1 (en) | 2007-07-05 | 2012-01-10 | Silver Peak Systems, Inc. | Pre-fetching data into a memory |
US8392684B2 (en) | 2005-08-12 | 2013-03-05 | Silver Peak Systems, Inc. | Data encryption in a network memory architecture for providing data based on local accessibility |
US8171238B1 (en) | 2007-07-05 | 2012-05-01 | Silver Peak Systems, Inc. | Identification of data stored in memory |
US8811431B2 (en) | 2008-11-20 | 2014-08-19 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data |
US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
US8929402B1 (en) | 2005-09-29 | 2015-01-06 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data by predicting subsequent data |
US7805670B2 (en) * | 2005-12-16 | 2010-09-28 | Microsoft Corporation | Partial rendering of web pages |
US7924884B2 (en) | 2005-12-20 | 2011-04-12 | Citrix Systems, Inc. | Performance logging using relative differentials and skip recording |
US20070203973A1 (en) * | 2006-02-28 | 2007-08-30 | Microsoft Corporation | Fuzzing Requests And Responses Using A Proxy |
US8140618B2 (en) * | 2006-05-04 | 2012-03-20 | Citrix Online Llc | Methods and systems for bandwidth adaptive N-to-N communication in a distributed system |
WO2008005629A2 (en) * | 2006-05-26 | 2008-01-10 | Riverbed Technology, Inc. | Throttling of predictive acks in an accelerated network communication system |
US7769834B2 (en) | 2006-05-30 | 2010-08-03 | Riverbed Technology, Inc. | System for selecting a proxy pair based on configurations of autodiscovered proxies on a network |
KR100765785B1 (ko) * | 2006-06-05 | 2007-10-12 | 삼성전자주식회사 | 무선 usb를 이용한 단일 무선장치와 다수의 호스트 간의접속 방법 및 시스템 |
US20070300243A1 (en) * | 2006-06-22 | 2007-12-27 | Sap Portals Israel Ltd. | Modular caching method and system for enabling offline functionality of server-client systems |
US7941560B1 (en) * | 2006-07-14 | 2011-05-10 | Intuit Inc. | Client caching of target addresses for network requests |
US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US8755381B2 (en) * | 2006-08-02 | 2014-06-17 | Silver Peak Systems, Inc. | Data matching using flow based packet data storage |
US8493858B2 (en) | 2006-08-22 | 2013-07-23 | Citrix Systems, Inc | Systems and methods for providing dynamic connection spillover among virtual servers |
US8312120B2 (en) * | 2006-08-22 | 2012-11-13 | Citrix Systems, Inc. | Systems and methods for providing dynamic spillover of virtual servers based on bandwidth |
TR200606833A2 (tr) * | 2006-12-01 | 2007-10-22 | B�Lmed B�Lg�Sayar Ve Yazilim A.�. | Web tarayıcı tabanlı uygulamalarda performans arttırma yöntemi |
US7733910B2 (en) * | 2006-12-29 | 2010-06-08 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
CN101242337B (zh) * | 2007-02-08 | 2010-11-10 | 张永敏 | 一种计算机网络的内容发布方法及系统 |
US8533310B2 (en) * | 2007-03-09 | 2013-09-10 | Riverbed Technology, Inc. | Method and apparatus for acceleration by prefetching associated objects |
WO2008138008A1 (en) * | 2007-05-08 | 2008-11-13 | Riverbed Technology, Inc | A hybrid segment-oriented file server and wan accelerator |
US20090097470A1 (en) * | 2007-10-12 | 2009-04-16 | Collier David S | Methods and systems for communicating data |
US8190876B2 (en) * | 2007-11-19 | 2012-05-29 | Red Hat, Inc. | Renegotiating SSL/TLS connections with client certificates on post requests |
US8307115B1 (en) * | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
US8635361B2 (en) * | 2007-12-03 | 2014-01-21 | Riverbed Technology, Inc. | Transaction acceleration using application-specific locking |
US8775550B2 (en) * | 2008-02-08 | 2014-07-08 | Microsoft Corporation | Caching HTTP request and response streams |
US8442052B1 (en) | 2008-02-20 | 2013-05-14 | Silver Peak Systems, Inc. | Forward packet recovery |
US8463941B1 (en) * | 2008-06-16 | 2013-06-11 | Riverbed Technology, Inc. | Cross-session protocol acceleration and its application to storage area network file systems |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US8743683B1 (en) | 2008-07-03 | 2014-06-03 | Silver Peak Systems, Inc. | Quality of service using multiple flows |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US8793339B2 (en) * | 2008-08-29 | 2014-07-29 | Red Hat, Inc. | Facilitating client server interaction |
US8793398B2 (en) * | 2008-08-29 | 2014-07-29 | Red Hat, Inc. | Facilitating client server interaction |
US8925034B1 (en) | 2009-06-30 | 2014-12-30 | Symantec Corporation | Data protection requirements specification and migration |
US8352937B2 (en) * | 2009-08-03 | 2013-01-08 | Symantec Corporation | Streaming an application install package into a virtual environment |
US8387047B1 (en) | 2009-08-03 | 2013-02-26 | Symantec Corporation | Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension |
US8090744B1 (en) | 2009-08-26 | 2012-01-03 | Symantec Operating Corporation | Method and apparatus for determining compatibility between a virtualized application and a base environment |
US8473444B1 (en) | 2009-08-28 | 2013-06-25 | Symantec Corporation | Management of actions in multiple virtual and non-virtual environments |
US8438555B1 (en) | 2009-08-31 | 2013-05-07 | Symantec Corporation | Method of using an encapsulated data signature for virtualization layer activation |
US8458310B1 (en) | 2009-09-14 | 2013-06-04 | Symantec Corporation | Low bandwidth streaming of application upgrades |
US8566297B1 (en) | 2010-01-14 | 2013-10-22 | Symantec Corporation | Method to spoof data formats from image backups |
US8290912B1 (en) | 2010-01-29 | 2012-10-16 | Symantec Corporation | Endpoint virtualization aware backup |
US8707296B2 (en) | 2010-04-27 | 2014-04-22 | Apple Inc. | Dynamic retrieval of installation packages when installing software |
US10142157B2 (en) | 2010-06-10 | 2018-11-27 | Blackberry Limited | Method and system for reducing transmission of redundant data |
US8495625B1 (en) | 2010-07-27 | 2013-07-23 | Symantec Corporation | Method and system for creation of streamed files on-demand |
EP2671360B1 (en) * | 2011-02-04 | 2014-10-29 | Riverbed Technology, Inc. | Correlating input and output requests between client and server components in a multi-tier application |
WO2013041922A1 (en) | 2011-09-23 | 2013-03-28 | Gilat Satellite Networks, Ltd. | Decentralized caching system |
US9130991B2 (en) | 2011-10-14 | 2015-09-08 | Silver Peak Systems, Inc. | Processing data packets in performance enhancing proxy (PEP) environment |
US9626224B2 (en) | 2011-11-03 | 2017-04-18 | Silver Peak Systems, Inc. | Optimizing available computing resources within a virtual environment |
US9084058B2 (en) | 2011-12-29 | 2015-07-14 | Sonos, Inc. | Sound field calibration using listener localization |
US20130212227A1 (en) * | 2012-02-09 | 2013-08-15 | Cogent Real-Time Systems Inc. | System and method for streaming data via http |
WO2013119253A2 (en) | 2012-02-10 | 2013-08-15 | Empire Technology Development Llc | Monitoring connection quality |
US9219460B2 (en) | 2014-03-17 | 2015-12-22 | Sonos, Inc. | Audio settings based on environment |
US9106192B2 (en) | 2012-06-28 | 2015-08-11 | Sonos, Inc. | System and method for device playback calibration |
US9542172B2 (en) | 2013-02-05 | 2017-01-10 | Apple Inc. | Automatic updating of applications |
US9880776B1 (en) | 2013-02-22 | 2018-01-30 | Veritas Technologies Llc | Content-driven data protection method for multiple storage devices |
JP6088853B2 (ja) * | 2013-02-27 | 2017-03-01 | 株式会社東芝 | 通信装置、通信方法および通信プログラム |
US9264839B2 (en) | 2014-03-17 | 2016-02-16 | Sonos, Inc. | Playback device configuration based on proximity detection |
US9613158B1 (en) * | 2014-05-13 | 2017-04-04 | Viasat, Inc. | Cache hinting systems |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US9952825B2 (en) | 2014-09-09 | 2018-04-24 | Sonos, Inc. | Audio processing algorithms |
CN105491078B (zh) | 2014-09-15 | 2019-01-22 | 阿里巴巴集团控股有限公司 | Soa系统中的数据处理方法及装置、soa系统 |
EP3012739A1 (en) | 2014-10-20 | 2016-04-27 | TISOFT Wojciech Jedrzejewski | System for synchronizing web browsers |
US9693165B2 (en) | 2015-09-17 | 2017-06-27 | Sonos, Inc. | Validation of audio calibration using multi-dimensional motion check |
EP3351015B1 (en) | 2015-09-17 | 2019-04-17 | Sonos, Inc. | Facilitating calibration of an audio playback device |
US9743207B1 (en) | 2016-01-18 | 2017-08-22 | Sonos, Inc. | Calibration using multiple recording devices |
US11106423B2 (en) | 2016-01-25 | 2021-08-31 | Sonos, Inc. | Evaluating calibration of a playback device |
US10003899B2 (en) | 2016-01-25 | 2018-06-19 | Sonos, Inc. | Calibration with particular locations |
US9864574B2 (en) | 2016-04-01 | 2018-01-09 | Sonos, Inc. | Playback device calibration based on representation spectral characteristics |
US9860662B2 (en) | 2016-04-01 | 2018-01-02 | Sonos, Inc. | Updating playback device configuration information based on calibration data |
US9763018B1 (en) | 2016-04-12 | 2017-09-12 | Sonos, Inc. | Calibration of audio playback devices |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US9794710B1 (en) | 2016-07-15 | 2017-10-17 | Sonos, Inc. | Spatial audio correction |
US10372406B2 (en) | 2016-07-22 | 2019-08-06 | Sonos, Inc. | Calibration interface |
US10459684B2 (en) | 2016-08-05 | 2019-10-29 | Sonos, Inc. | Calibration of a playback device based on an estimated frequency response |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
US10361997B2 (en) | 2016-12-29 | 2019-07-23 | Riverbed Technology, Inc. | Auto discovery between proxies in an IPv6 network |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
CN110663173B (zh) | 2017-10-04 | 2023-09-19 | 谷歌有限责任公司 | 基于房间特性自动均衡音频输出的方法和系统 |
KR102274055B1 (ko) * | 2017-12-26 | 2021-07-06 | 삼성에스디에스 주식회사 | 메시지 시스템 및 애플리케이션 활성화 방법과 이를 수행하기 위한 사용자 단말 |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
US11206484B2 (en) | 2018-08-28 | 2021-12-21 | Sonos, Inc. | Passive speaker authentication |
US10299061B1 (en) | 2018-08-28 | 2019-05-21 | Sonos, Inc. | Playback device calibration |
US10868892B1 (en) * | 2019-05-31 | 2020-12-15 | Micro Focus Llc | Replacement code implementing full-duplex communication channel protocol for message interception |
US10734965B1 (en) | 2019-08-12 | 2020-08-04 | Sonos, Inc. | Audio calibration of a portable playback device |
US11968417B2 (en) * | 2021-12-30 | 2024-04-23 | Comcast Cable Communications, Llc | Systems, methods, and apparatuses for buffer management |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4438511A (en) * | 1980-11-10 | 1984-03-20 | Telebit Corporation | Packetized ensemble modem |
US4893307A (en) * | 1988-02-29 | 1990-01-09 | International Business Machines Corporation | Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network |
US5021949A (en) * | 1988-02-29 | 1991-06-04 | International Business Machines Corporation | Method and apparatus for linking an SNA host to a remote SNA host over a packet switched communications network |
US5473772A (en) * | 1991-04-02 | 1995-12-05 | International Business Machines Corporation | Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs |
US5193162A (en) * | 1989-11-06 | 1993-03-09 | Unisys Corporation | Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities |
US5220501A (en) * | 1989-12-08 | 1993-06-15 | Online Resources, Ltd. | Method and system for remote delivery of retail banking services |
JP2511591B2 (ja) * | 1990-10-29 | 1996-06-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 無線光通信システムの動作方法および光通信システム |
US5224098A (en) * | 1991-07-17 | 1993-06-29 | International Business Machines Corporation | Compensation for mismatched transport protocols in a data communications network |
US5481721A (en) * | 1991-07-17 | 1996-01-02 | Next Computer, Inc. | Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects |
DE4131133B4 (de) * | 1991-09-19 | 2005-09-08 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen |
US5442633A (en) * | 1992-07-08 | 1995-08-15 | International Business Machines Corporation | Shortcut network layer routing for mobile hosts |
US5737536A (en) * | 1993-02-19 | 1998-04-07 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
US5511208A (en) * | 1993-03-23 | 1996-04-23 | International Business Machines Corporation | Locating resources in computer networks having cache server nodes |
JPH06324928A (ja) * | 1993-05-14 | 1994-11-25 | Mitsubishi Electric Corp | ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置 |
US5446736A (en) * | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
US5412654A (en) * | 1994-01-10 | 1995-05-02 | International Business Machines Corporation | Highly dynamic destination-sequenced destination vector routing for mobile computers |
US5446888A (en) * | 1994-01-14 | 1995-08-29 | Pyne; Charles F. | Remote file transfer method and apparatus |
US5574906A (en) * | 1994-10-24 | 1996-11-12 | International Business Machines Corporation | System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing |
US5572528A (en) * | 1995-03-20 | 1996-11-05 | Novell, Inc. | Mobile networking method and apparatus |
US5581558A (en) * | 1995-03-29 | 1996-12-03 | Lucent Technologies Inc. | Apparatus for bridging non-compatible network architectures |
US5829023A (en) * | 1995-07-17 | 1998-10-27 | Cirrus Logic, Inc. | Method and apparatus for encoding history of file access to support automatic file caching on portable and desktop computers |
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 |
US5737619A (en) * | 1995-10-19 | 1998-04-07 | Judson; David Hugh | World wide web browsing with content delivery over an idle connection and interstitial content display |
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 |
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 |
US5859971A (en) * | 1996-02-15 | 1999-01-12 | International Business Machines Corp. | Differencing client/server communication system for use with CGI forms |
US5673322A (en) * | 1996-03-22 | 1997-09-30 | Bell Communications Research, Inc. | System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks |
JPH09270794A (ja) * | 1996-03-29 | 1997-10-14 | Mitsubishi Electric Corp | ネットワーク管理装置 |
US5764910A (en) * | 1996-04-02 | 1998-06-09 | National Semiconductor Corporation | Method and apparatus for encoding and using network resource locators |
US5857201A (en) * | 1996-06-18 | 1999-01-05 | Wright Strategies, Inc. | Enterprise connectivity to handheld devices |
US5870558A (en) * | 1996-06-25 | 1999-02-09 | Mciworldcom, Inc. | Intranet graphical user interface for SONET network management |
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
-
1996
- 1996-02-15 US US08/601,804 patent/US5754774A/en not_active Expired - Lifetime
- 1996-05-01 TW TW085105226A patent/TW297194B/zh not_active IP Right Cessation
- 1996-07-11 CN CNB96193946XA patent/CN1148927C/zh not_active Expired - Lifetime
- 1996-07-11 DE DE69610495T patent/DE69610495T2/de not_active Expired - Lifetime
- 1996-07-11 CA CA002218169A patent/CA2218169C/en not_active Expired - Lifetime
- 1996-07-11 EP EP96923748A patent/EP0823170B1/en not_active Expired - Lifetime
- 1996-07-11 KR KR1019970707261A patent/KR100289520B1/ko not_active IP Right Cessation
- 1996-07-11 CZ CZ19973542A patent/CZ287988B6/cs not_active IP Right Cessation
- 1996-07-11 JP JP52931197A patent/JP3953109B2/ja not_active Expired - Lifetime
- 1996-07-11 WO PCT/US1996/011551 patent/WO1997030538A2/en active IP Right Grant
- 1996-07-11 ES ES96923748T patent/ES2151176T3/es not_active Expired - Lifetime
- 1996-07-11 HU HU9801295A patent/HUP9801295A3/hu unknown
- 1996-07-11 AT AT96923748T patent/ATE196707T1/de not_active IP Right Cessation
- 1996-07-11 PL PL96327294A patent/PL180570B1/pl unknown
-
1997
- 1997-02-04 MY MYPI97000417A patent/MY122038A/en unknown
- 1997-10-03 US US08/939,724 patent/US6003087A/en not_active Expired - Fee Related
-
1998
- 1998-12-03 HK HK98112736A patent/HK1017789A1/xx not_active IP Right Cessation
-
2003
- 2003-10-24 JP JP2003364382A patent/JP3962369B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043522B (zh) * | 2006-03-22 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 一种基于Web服务器的通信方法及系统 |
CN101272442B (zh) * | 2007-03-21 | 2010-05-26 | 杭州波导软件有限公司 | 数字图像无损压缩方法和装置、解析方法及图像译码器 |
Also Published As
Publication number | Publication date |
---|---|
CA2218169A1 (en) | 1997-08-21 |
PL180570B1 (pl) | 2001-02-28 |
DE69610495T2 (de) | 2001-05-10 |
EP0823170B1 (en) | 2000-09-27 |
JPH11500895A (ja) | 1999-01-19 |
JP2004164630A (ja) | 2004-06-10 |
HK1017789A1 (en) | 1999-11-26 |
WO1997030538A2 (en) | 1997-08-21 |
CN1195443A (zh) | 1998-10-07 |
CZ354297A3 (cs) | 1998-03-18 |
CZ287988B6 (cs) | 2001-03-14 |
PL327294A1 (en) | 1998-12-07 |
TW297194B (en) | 1997-02-01 |
CA2218169C (en) | 2004-12-14 |
HUP9801295A2 (hu) | 1998-08-28 |
MY122038A (en) | 2006-03-31 |
KR100289520B1 (ko) | 2001-05-02 |
EP0823170A2 (en) | 1998-02-11 |
JP3953109B2 (ja) | 2007-08-08 |
JP3962369B2 (ja) | 2007-08-22 |
HUP9801295A3 (en) | 1998-10-28 |
US6003087A (en) | 1999-12-14 |
ES2151176T3 (es) | 2000-12-16 |
US5754774A (en) | 1998-05-19 |
DE69610495D1 (de) | 2000-11-02 |
KR19980703861A (ko) | 1998-12-05 |
ATE196707T1 (de) | 2000-10-15 |
WO1997030538A3 (en) | 1998-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1148927C (zh) | 增加网浏览器的性能并和网服务器通信的方法和设备 | |
CN1184576A (zh) | 减少系统开销的tcp通信系统 | |
CN1184575A (zh) | 差分通信系统 | |
CN1096646C (zh) | 时间相干超高缓存系统 | |
US11194719B2 (en) | Cache optimization | |
CN1324898C (zh) | 用于为移动通信设备提供远程数据访问的系统和方法 | |
US6704798B1 (en) | Explicit server control of transcoding representation conversion at a proxy or client location | |
US7945698B2 (en) | System and method for partial data compression and data transfer | |
US20040205208A1 (en) | Method and arrangements for providing efficient information transfer over a limited speed communications link | |
CN1513144A (zh) | 用于减少将信息从通信网络投递到用户的时间的系统及方法 | |
CN1681248A (zh) | 服务器与客户端间传送用于数据同步的数据的方法与系统 | |
EP1429517A1 (en) | Access relaying apparatus | |
CN1618066A (zh) | 用于处理可扩展标示语言(xml)文档的系统和方法 | |
US20080155067A1 (en) | Apparatus for transferring data via a proxy server and an associated method and computer program product | |
JP2010244571A (ja) | クライアント−サーバ通信システムのトランザクション・アクセルレータ | |
CN1268701A (zh) | 对象渲染分布调配的合作代理系统的方法和设备 | |
CN1458590A (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
CN101404630B (zh) | 互联网业务接入网关的实现方法和系统 | |
US20180343320A1 (en) | Data request multiplexing | |
US7739364B2 (en) | Method and apparatus for dynamically reconfiguring a server system | |
CN101374158B (zh) | 根据结果完成比例将缓存内容或处理内容递送给客户端 | |
US8606876B2 (en) | Method and system for accelerating data communication that is using multipart | |
CN113938296A (zh) | 一种网络数据访问系统及方法 | |
CN113257404A (zh) | 病理远程会诊的通信方法及平台 | |
CN1957586A (zh) | 卫星预先带宽加速 |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20040505 |
|
EXPY | Termination of patent right or utility model |