CN100531186C - 通信网络中的对象传输控制 - Google Patents

通信网络中的对象传输控制 Download PDF

Info

Publication number
CN100531186C
CN100531186C CNB028287088A CN02828708A CN100531186C CN 100531186 C CN100531186 C CN 100531186C CN B028287088 A CNB028287088 A CN B028287088A CN 02828708 A CN02828708 A CN 02828708A CN 100531186 C CN100531186 C CN 100531186C
Authority
CN
China
Prior art keywords
priority
request
attribute
requests
intermediary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB028287088A
Other languages
English (en)
Other versions
CN1625877A (zh
Inventor
R·奎内特
D·沙夫拉斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN1625877A publication Critical patent/CN1625877A/zh
Application granted granted Critical
Publication of CN100531186C publication Critical patent/CN100531186C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Abstract

一种方法和一个中间元件,在通信网络中用来控制通过中间元件由第一网络元件到第二网络元件的对象传输,第二网络元件相对第一网络元件来说是远程的。对象传输的基础是许多对象请求,该对象请求涉及的对象会在第二网络元件或其它网络元件所要处理的一个或多个代码中提到。中间元件执行这些步骤:发送对象请求给第一网络元件,从第一网络元件中接收请求对象,更新和/或评估请求对象的优先权,并且,依据请求对象的优先权,延迟请求对象或向第二网络元件转寄请求对象。至少基于对象请求和该请求对象相关代码二者之一的分析,为该请求对象分配初始优先权。

Description

通信网络中的对象传输控制
技术领域
本发明主要涉及通信网络领域,尤其涉及通过中间元件由第一网络元件到第二网络元件的对象传输,第二网络元件相对第一网络元件来说是远程的。
背景技术
现代通信网络上的信息传输如公众因特网或内部网是基于具体的传输协议的,以万维网为例,它组成了因特网的主要方面,用超文本传输协议(HTTP)来交换文件包括:文本、图像、声音、视频和其它内容。
除了其可以服务的文件外,任何WWW服务器都包含一个HTTP元件,该元件用来等待HTTP请求,并在该请求到达时对其进行处理。WWW浏览器可看作一个配置为发送HTTP请求到WWW服务器的HTTP客户端。无论何时浏览器用户都可通过“打开”一个WWW文件(通过在统一资源定位器中键入(URL))或单击一个超文本链接输入一个文件请求,该浏览器会为该文件构建一个相应的HTTP请求并将其发送给目标地址。目标服务器中的HTTP元件将收到该HTTP请求,并返回所请求文件。
请求文件可由包含HTML代码的超文本链接标示语言(HTML)页组成。当浏览器从服务器上收到该HTML页并发现其代码还包含有进一步对象如(背景)图像、声音、脚本或HTML框架时,为了获取该HTML代码中的进一步对象,浏览器就会向服务器发出进一步HTTP请求,其中的HTML代码本身就可看作对象。一旦接收到进一步HTTP请求,服务器会向浏览器发送包含请求对象如图像的HTTP响应。图1中变得明显,HTTP响应从服务器发给浏览器,其在客户端运行的顺序和浏览器发出HTTP请求的顺序是一致的。
浏览器请求任何包含在HTML页的HTML代码中的附加对象的顺序,通常取决于HTML页是如何编写的。例如,包含在HTML代码开始的对象没必要显示在HTML页的顶端,原因是特征如表、层和框架允许HTML作者使用复杂的布局。另外,浏览器发出HTTP请求的顺序也取决于内部浏览器算法,例如,一些浏览器通过开始就请求出现在HTML代码中的前四个对象的方式,用复杂的启发式算法来生成HTTP请求。前四个对象请求完后,请求每两个始于当前用户可见范围顶部的对象,然后每四个对象等。其它浏览器使用更简单的算法,该算法按照它们出现在HTML代码中的那样逐一请求对象。从上面可以看出,明显的,通常难以预测HTML代码所指对象HTTP请求生成的顺序。
而且,难以预测浏览器接收请求对象的顺序。尽管当前HTTP标准(HTTP/1.1)要求,在每一个传输控制协议(TCP)连接上,服务器发送给浏览器HTTP响应的顺序应该和服务器接收HTTP请求的顺序一致,但是当一个以上的连接对服务器开放时,HTTP响应接收的顺序就变得无法预测了。原因在于下列事实,即由于网络条件的变化和请求处理时间的不同,一些连接传输HTTP响应比另一些连接快。
需要有一种方法和设备,使从第一网络元件到第二网络元件对象传输性能有所提高,其第二网络元件相对第一网络元件来说是远程的。
发明内容
根据本发明的一方面,该需求可通过这种方法满足:在通信网络中,控制通过中间元件(硬件或软件)由第一元件到第二元件的对象传输,这里第二元件相对第一元件来说是远程的。其中对象传输的基础是多个对象请求,对象请求涉及的对象在通信网络中的第二元件或其它元件所要处理的一个或多个代码中提到,并且其中中间元件执行步骤如下:发送对象请求给第一元件,从第一元件中接收请求对象,更新和/或评估请求对象的优先权,依据至少对象请求和涉及该请求对象的代码其中之一的分析,为该请求对象分配初始优先权,并且依据请求对象的优先权,延迟或向第二元件转寄该请求对象。对象本身可以包含涉及一个或多个深层对象的代码部分,此外,代码本身也可组成对象(比如先前请求的对象)。
从用户的观点来看,依据已分配的优先权有意延迟对象传输,可提高对象传输的总体性能(即使要传输数据总数未减少),原因是优先传输了重要对象。而且,通过执行合适的优先权分配计划,从第一网络元件向第二网络元件的对象传输就变的更可预测了。例如,对用户来说,对象越重要则其分配的优先权就越高,由此就优先将其传输给第二元件;另一方面,相对不重要的对象可能被延迟。在极端的情况下,不重要的对象可能被延迟到这样一种程度:根本不传输给第二元件。这就允许控制第二元件接收对象的顺序。
可动态执行对象(或对象类)绝对或相对优先权的分配。一旦初始分配了一个优先权,那么就可以评估该优先权的具体绝对值如门限,或其它对象的优先权。根据评估情况决定是否延迟一个对象。评估之前可以重新估计对象已分配的初始优先权,以决定是否更新该初始优先权。
操作中间元件以便为从第一元件中收到的对象重新排序。优先执行对象延迟,以使中间元件收到来自第一元件的对象的顺序不同于转寄给第二元件对象的顺序。根据即将传输对象的优先权,进行重新排序。在重新排序过程中可能出现这种情况,一些对象延迟导致其它对象传输实际加速。
发送给第一元件的对象请求可由中间元件生成。当中间元件收到请求对象时,无需收到第二元件明确的对象请求,就将该请求对象“推进”给第二元件。作为选择,对象请求也可由第二元件生成并发送给中间元件。一旦收到来自第二元件的对象请求,可由中间元件进行处理并发送给第一元件。
中间元件从第一元件中收到请求对象时,或者延迟该请求对象或者直接转寄给第二元件。至于中间元件收到的请求对象如何延迟存在各种可能性,例如,请求对象的延迟可以至少包含下列操作中的一个:通知第二元件重复对象请求;挂起到第二网络元件的连接,通过该连接转寄请求对象;通知第二元件请求对象将在以后一个时间点上自动(例如,无需任何来自第二元件的进一步对象请求)转寄给第二组件。
如果请求对象的延迟包括通知第二元件重传对象请求,那么中间元件可执行如下步骤:分配一个特殊属性给要延迟的对象;通知第二元件该属性;从第二元件那里收到该属性的一个参考(如该属性本身或从该属性中获得的准确参考;并且一旦接收到该属性参考,发送延迟对象给第二元件或进一步延迟该延迟对象。是发送该延迟对象给第二元件还是进一步延迟,取决于新评估的重复请求对象的相对优先权。
可将属性看作一个公分母,它使得中间元件和第二元件能够在该属性所属对象的传输问题上进行协调。通常的,属性的形式取决于用于对象传输的传输协议特征。以HTTP为例,该属性可能由中间元件创建的虚拟URL组成。应当指出,通知第二元件重传对象请求的基于属性的延迟计划,通常可用来延迟对象,并且不需要分配给要传输对象的优先权。
在基于属性的延迟计划中,为了响应一个从第二元件处接收到的对象请求,可以将来自中间元件的请求发送给第二元件,或按照一个推进计划进行,即,不考虑来自第二元件的请求。如果延迟计划是基于来自第二对象的对象请求,那么在指令重复该对象请求的情况下,通知第二元件该属性。在这种情况下中间元件在来自第二元件重复请求的环境中接受到该属性的参考。
通过中间元件和第二元件之间的单个或多个连接,可将即将传输给第二元件的对象转寄给第二元件。在这样一个多连接方案中,已选的连到第二元件的一个连接是否会被延迟取决于该请求对象的优先权(初始的或已更新的),通过已选的连接可将该请求对象转寄给第二元件。因此中间元件可通过挂起一个或多个连接,以使高优先权的对象能充分利用附加带宽,该附加带宽就是由中间元件和第二元件之间的链接释放的。为了避免带宽浪费,优先配置中间元件,以确保在其中一个或多个连接被挂起之前,充分利用了两个以上连接组成的链接。
存在各种延迟连接的技术,例如,可冻结通过该连接的传输一段具体时间,而将连接本身开放(中间状态=开放);或者,该连接是关闭的(中间状态=关闭的),同时保存该连接的状态。在这种情况下,可在以后的时间点上以同样的状态再次打开该连接,该状态就是关闭时的状态。根据第三种可能,完全关闭连接,不保存任何连接状态的信息。无论哪一种情况,都可通知第二元件,或者作为(重复)对象请求的响应或者与该请求无关,稍后都发送要通过该已关闭连接传输的一个或多个对象。
代替或除了挂起个别连接,还可以根据基于优先级的传输速度的调整来延迟对象传输。为此,动态分配给每个对象或每个连接一份具体的处理能力份额。在多连接情况下,所有的连接或至少一些连接可获得一份CPU时间,即一份网络带宽。当一个或多个对象通过相关连接传送时,可以更改分配给该指定连接的处理能力份额(例如,经常减少)。
上面提到的对象传输是基于许多对象请求的,该对象请求涉及的对象在一个或多个代码中提到。根据本发明的第一变型,一个代码至少对第二和中间元件中的一个是可用的。根据本发明的第二变型,该代码必须由第二和中间组件中任何一个装载。在后一情况下,中间元件可以将一个由第二元件或由中间元件生成的代码请求,发送给第一元件或不同于第一元件的第三元件。当中间元件接受到来自第一元件或第三元件的请求代码时,就通过代码中包含的对象参考分析该代码。然后评估任何包含在代码中的对象参考,以便为接收代码中提到的对象分配(初始的)优先权,最终收到的第一或第三元件的代码会由中间元件转寄给第二元件。
一旦接收到来自第一元件响应的接收,可通过收到对象的优先权来评估包含在该响应中的请求对象。例如,为此至少分析其中之一:对象大小、对象内容和响应的报头,然后决定是否必须更新收到对象的初始优先权。
更好的,例如,中间元件至少存储一些关于每一个对象或对象的每一个类的信息。该存储信息可包含单个对象的优先权信息或一类对象的优先权信息,最好以一个优先权清单的形式出现。该优先级清单被反复评估这样一个评估至少涉及下列操作中之一:更新优先权信息,删除来自优先权清单的对象或对象类。
该发明可作为一个硬件解决方案来执行,也可作为一个软件解决方案来执行。以软件方案为例,本发明可以包含程序代码部分的计算机程序产品的形式实现,该程序产品用来执行本发明的单独步骤。计算机程序产品可存储在计算机可读媒质上。
根据本发明的优先实施例,将中间元件作为一个代理元件执行,其形式为运行在通信网络第一或第二元件上的一块软件。如果发明按硬件方案实施,中间组件可由单独的硬件构成,比如在通信网络中第一和第二组件之间的代理服务器。中间元件可包括一个或多个正确配置的通信接口,该通信接口至少用来进行与通信网络上的第一和第二元件的通信,还包括在对象延迟的条件下执行处理的单元一样。
在通信网络中,中间元件与第一元件之间存在一个第一链接;中间元件与第二元件之间存在一个第二链接。最好第一链接和第二链接有不同的传输速率,例如,可以提供给中间元件和第一元件之间一个较快的链接,在中间元件和第二元件之间提供一个相对较慢的链接。通常,当第一元件是网络服务器,第二元件是网络客户端,并且中间元件位于网络服务器上或位于网络服务器附近(就网络链接而言)时,就是这种情况。但是,中间元件也可以位于网络客户端上或网络客户端附近(就网络链接而言),在这种情况下,中间元件与第二元件(网络客户端)之间的链接和中间元件与第一元件(网络服务器)之间的链接相比,性能更高反应更快。
应该注意到,本发明不只局限于第一元件作为网络服务器和第二元件作为网络客户端的情况。特别的,中间元件也可以用来提高两个网络客户端之间或两个网络服务器之间对象传输的性能。
根据本发明的优选实施例,中间元件可作为无线通信网络如GSM、GPRS等蜂窝网络的一部分。在这样一个网络中第二元件可由一个移动终端组成。
附图简述
通过阅读本发明优选实施例详细描述及附图参考,其深层方面和优点将变得明显,在附图中:
图1是说明网络服务器和网络客户端之间对象传输的原理图,与HTTP相一致。
图2是一个网络系统结构图,根据本发明,该系统包含一个以HTTP代理服务器形式出现的中间元件。
图3是图2中的HTTP代理服务器的结构图。
图4是一个原理图,描述图2所描述的网络系统中基于重定向的对象延迟。
图5是一个流程图,反映对象延迟之前的步骤。
图6是一个流程图,根据本发明描述涉及对象延迟的决定。并且
图7是一个结构图,根据本发明描述定位于网络客户端的代理元件。
优选实施例描述
尽管本发明可在任何通信网络中实行,在这些通信网络中可通过中间元件执行基于请求的对象传输。下文有关优选实施例的描述示例性针对与WWW上HTTP协议相一致的HTML代码的传输进行的。原则上,不同于HTTP协议的传输协议,比如就像WAP传输协议或一些远程程序调用(RPC)机制。而且,以及不同于HTML的代码,例如,WAP标示语言(WML)或可扩展标示语言的任何派生语言(XML),同样可使用。尽管后面的描述主要考虑的是从服务器到客户端的对象传输,但是,该对象传输也可以在任何两个或多个网络元件之间执行。
图2中,依据本发明描述网络系统10的结构图。从图2可见,网络系统10包含一个形式为服务器20的第一元件,一个形式为HTTP代理服务器30的中间元件和形式为客户端40的第二元件。将代理服务器30安排到网络系统10中以使该网络有一个通向服务器20的快速链接12和一个通向客户端40的相对慢速链接14,链接12、14中的每一个都由许多TCP连接50组成,配置每个TCP50,以允许在服务器20和客户端40之间传输HTTP请求和HTTP响应。
代理服务器30执行一些典型的代理功能如对象缓冲和对象过滤。另外,要对代理服务器30进行配置,以人工延迟从服务器20处收到并且即将转寄给客户端40的对象。可通过使用连接50上的数据传输临时延迟及HTTP重定向消息的组合,完成该功能。其中重定向消息会在一个特殊时间段之后,强制客户端40上运行的浏览器重新发送请求对象。通过使用这些机制,代理服务器30将对来自服务器20的HTTP响应重新排序,方式为对象优先权越高则越早发送给客户端40。为实现该目的,代理服务器30会为即将转寄给客户端40的对象动态分配优先权。为了确保不太重要对象的延迟不会引起代理服务器30和客户端40间的链接14空闲,代理服务器30还要不断监测或至少要重复监测链接14上的传输情况。
图3中详细描述了代理服务器30的结构,从图3可见代理服务器30包含一个通信接口32,在服务器20的第一链接12和客户端40的第二链接14之间有一对这样的接口。配置该接口以使其能发送来自服务器20发送对像请求并能接受来自服务器20的请求对象。代理服务器30的处理单元34可和该接口32通信,处理单元34允许评估和/或调整对象的优先权,其对象是通过第一链接12从服务器20处收到的任何对象。此外,至少根据对象请求和请求对象相关代码二者之一的分析,处理器34才允许给请求对象分配初始优先权。稍后详细讨论可能的分配计划。
处理单元34依据请求对象初始的或更新的优先权对通信接口32进行控制,以延迟收到来自服务器20的请求对象,或通过第二链接14将其转寄给客户端40。如果来自服务器20的请求对象被延迟,那么就临时将其存储在缓冲器36中。至于缓冲器36,通信接口32和处理单元34都可对其进行评估。可选或另外,缓冲器36还可作为处理单元34的软件元件或硬件元件来实现。
除了上述任务,此外还要能将处理单元34配置为允许分配一个具体属性给一个要延迟的对象(稍后详细描述该属性的一个示例性格式)。处理单元34能够控制通信接口32以使该通信接口32可将该属性告知客户端40。如果通信接口32从客户端40处收到了该属性的参考,那么处理单元34就会评估该参考并对通信接口32进行控制,使得将之前分配该属性及现在存储于缓冲器36中的延迟对象,或发送给客户端40或进一步延迟。如果必须先将较高优先权的对象转寄给客户端40,那么进一步延迟存储于缓冲器36中的对象就是必需的。
下面举例描述图2中所示的网络系统10的优选操作模式。
当用户输入URL,单击链接或跟随书签时,客户端40上运行的浏览器就会向相应含有HTML代码的HTML页发送一个HTTP请求。代理服务器30通过链路14收到该HTTP请求并再通过链接12将其转寄给目标服务器20。作为响应,服务器20会将用于该请求页的HTML代码发送给代理服务器30,代理服务器30再分析此HTML代码,然后给任何类型的对象分配初始优先权,这些对象例如:链路、帧、脚本、图像及其它在HTML代码中提到的对象(第一分析阶段)。
不考虑该HTML代码的分析,通过链接14代理服务器30直接将该代码转寄给客户端40。当运行在客户端40上的浏览器收到包含HTML代码的HTML页时,就会处理该HTML代码,如果浏览器发现HTML代码中含有进一步对象,那么就为HTML码中涉及的对象发送进一步HTTP请求。这些进一步对象的HTTP请求将由代理服务器30接收和评估。对于多数请求对象,在代理服务器30对其已经转送给服务器40的HTML代码的先前分析过程中已经分配了初始优先权。但是在第二分析阶段,代理服务器30或为那些未分配初始优先权的对象分配初始优先权,或为那些已分配初始优先权对象更新优先权。优先权的更新基于来自客户端40的HTTP请求中的附加可用信息。
代理服务器30将任何来自客户端40附加对象的HTTP请求转寄给服务器20。服务器20通过将请求对象发送给代理服务器30作为答复。在第三分析阶段,代理服务器30会分析来自服务器20的HTTP响应,并且如果有必要则更新包含在HTTP响应中的对象的优先权。另外,代理服务器30会参考以前收到仍存储在缓冲器36(参考图3)中的对象的优先权,以及即将收到的期望对象的优先权。评估任何已收到对象的相对优先权,关于即将从服务器20收到的对象的相关信息,可从之前转寄给客户端40的HTML代码中获得,或可从来自客户端40的HTTP请求中获得,该客户端40还未收到来自服务器20的相应对象。作为选择或此外,对代理服务器30进行配置,以使刚从服务器40接收的对象的优先权可以和一个像优先权门限一样的绝对值相比较。
根据对象绝对和/或相对优先权的评估,并根据链路14上当前的和/或以后的传输情况,代理服务器30决定,是否延迟该对象,例如是否将该对象暂时存储在缓冲器36中,是否仍不将HTTP的请求转寄给服务器20,或是否立刻将该对象转寄给客户端40。
从用户的观点来看,单个对象的有目的延迟可提高整个对象传输的性能。例如,众所周知的,包含在网页中的各种对象的相对重要性变化非常大:对网页浏览来说,用来建立图形菜单的图像是必需的,而背景图像只是为了网页看起来更漂亮。因此,可用本发明来先为用户提供较重要的信息。一旦用户的屏幕上显示了一个网页的足够信息,不用等待该网页正在传输的剩余(不重要)部分,用户就可以决定点击一个链接和请求另一个网页。结果是在看到重要的对象之前,用户不需要等待一些不感兴趣对象的传输。这在和移动网络的协作中尤其有用,通常移动网络与固定网络相比更慢更贵。
优先权的分配和调整
根据以上描述明显地,在三个不同的阶段中代理服务器30都可分配或调整即将发送给客户端20的对象的优先权,也就是说,当在即将转寄给客户端40的HTML代码(例如,在以前对象中)中发现该对象的参考时,当运行在客户端40上的浏览器发送涉及该对象的HTTP请求时,或当从服务器20处收到相应的包含请求对象的HTTP响应时,代理服务器30都可分配或调整即将发送给客户端20的对象的优先权。
下面举例描述了三个阶段中的每一个阶段优先权分配和更新的各种计划。三个阶段的任何一个阶段中,或生成或更新一个含有单个对象或对象类优先权信息的优先权清单。在优先级清单中,根据优先权递增或递减以对单个对象或对象类进行排序。优先权清单中的对象顺序可看作是优先权信息。但是,作为选择或附加的,附加优先权信息如绝对优先权或相对优先权的值(编号)可作为优先权清单的一部分。
分配给特殊对象或对象类的准确优先权应与执行有关,并且在示例实施例中,可由代理服务器30的操作者或运行在客户端40上的浏览器的使用者进行配置。例如,为了允许代理服务器20的操作者更好地控制一些对象的优先权,应存在一个或多个URL(使用模式匹配)列表以允许操作者增加或减少出现在这些清单上的对象的优先权。例如操作者可决定增加或减少所有从广告公司处下载下来的图像的优先权。这些相同的可能性对用户来说也应该是可行的,例如,用户应可以将其优先选择发送给代理服务器30,通过运行在客户端40上的一个具体软件,或通过使用由代理服务器30直接提供的指定网页和允许用户设置其优先选择,可完成该功能。
在第一分析阶段,通过分析由客户端40请求的来自服务器20的HTML代码,代理服务器30可将一个初始优先权分配给一个对象。尤其是,可评估HTML代码中提到的对象参考。在这种方式下将生成一个优先权清单,该清单以如下顺序列出HTML代码中提到的单个对象(先列出优先权高的对象):
转到其它页的链接
框架
内嵌的图像(如果IMG标签项包括宽度和高度信息,那么根据期望的尺寸,可用该信息来细调图像的优先权,使得小图像的优先权比大图像的大)
页面风格
脚本(JavaScrip,VBScrip等),内嵌对象和小程序
背景图像(页背景,表背景,页面风格等)
任何已经发送给客户端40的对象获得最低优先权
另外,如果对象不在同样的服务器20上或在与当前HTML页一样的同样域上,那么该特殊对象的优先权就可能更低。
当浏览器发出对象请求,并且代理服务器30收到对象请求时,更有可能出现该对象优先权的分配或调整。在这种情况下,代理服务器30将在URL环境中(第二分析阶段)分析该HTTP请求。既然在导致了HTTP请求的HTML代码的分析期间已经分配了初始优先权,那么对该HTTP请求的分析就一般导致初始优先权的调整,但是某些情况下也会导致优先权分配(参考上面)。
可根据可用的附加信息,执行第二阶段中初始优先权的调整或分配,该附加信息例如可在HTTP请求的报头获得。可以执行以下规则中的一个或多个以更新优先权:
分析将导致这样的结果,浏览器已经请求过该对象一次,为了避免浏览器造成无限循环,应优先给该对象分配极高优先权,无限循环不符合HTTP/1.1标准而且忽视了Rty-After报头(该报头将在后面详细讨论)。
对象仍没有优先权,但是其文件扩展看起来像HTML(”.HTML”,”.HTM”)或XML(“.XML”),或看起来像目录索引(结尾”/”)。这样的优先权分配可确保,从书签得到的HTML页或直接键入的HTML页,以高优先权请求。
使用if-modified-since或相似条件,浏览器可为对象制作条件HTTP请求。这表明浏览器可能已经缓存了对象复制,如果该缓存复制仍然有效(HTTP答复代码“304未修改”),那么期望该响应是小的。
分解以前的HTML页时,发现了请求对象的URL。
分解一个先前页的HTML标签时,未插入到清单中的任何对象很可能是由脚本间接请求的,该对象与其它大多数请求对象相比,获得一个较低的优先权。
在第三分析阶段,对象优先权的调整是基于对来自服务器20的HTTP响应的分析。在该第三阶段(以及在上面提到的第二阶段)中的优先权调整可以计算为一些标准原则的加权和。所述加权可由代理服务器30的操作者配置,也可由运行在服务器40上的浏览器的使用者配置。
在第三分析阶段,所有对象总会被分配一个优先级。但是,该优先级可再将请求对象发送给客户40之前更新。为了调整优先权,可以评估来自服务器20的HTTP响应的内容和报头,然后根据以下规则中的一个或多个进行调整:
答复代码评估:HTTP响应的相对优先权取决于答复代码的第一个数字,错误代码(4xx,5xx)与正常答复(2xx)相比,优先权更高。
内容类型评估:HTML代码的优先权应比任何图像的优先权都高。
对象大小评估(如果在报头中指定,那么就从内容-长度中获得,或如果对象已经被缓存那么从总大小中获得):小对象的优先权应该比大对象的优先权稍高。
内容分析:例如,分配给动态图像的优先权应该比静态图像的优先权低,如果对象大小在HTTP报头中不可得并且对象未缓存,那么内容分析也可以作为对象大小评估的基础。
如果答复代码是永久的或临时的重定向(3xx),该重定向为请求对象指定一个新的地点,则分配给该新地点的优先权和原始对象的一样。
在以上三个阶段的描述中,代理服务器30将设置并更新即将传输给客户端40的对象的优先权。因此代理服务器30它要为每个对象保持一些信息如:对象的URL、优先权、上次请求时间,并且如果需要的话还有一些更深层的信息。但是这些信息不能永远保存,否则代理服务器30的存储器将被用完。如果一个高优先权的对象从未被请求过,那么最好采取措施以使其不会阻止其它对象传输。
由于以上三个原因,需要执行一个例行程序以确保删除旧的或不再要求的信息,最后,使用下列机制中的一个或多个:
将所有已经成功传送给客户端的对像标志为已传送的,或将其移入一张已传送给客户端40的分开的对象清单中。
设置并配置含有相关信息一个或多个清单的最大尺度,以使旧的对象或优先权最低的对象先终止。
在对象完全传输之前(意味着用户终止下载并选择了另一页),无论用户端何时重新设置TCP连接,都将即将发送的对象信息清除。
以前解答办法还存在另一种可选方案,为了将每个HTML页和其包含的对象关联起来或者相反,为每个对象保持交叉参考。当客户端40重新设置TCP连接时,只删除含在同一HTML页中的对象。
在一段指定的时间之后,或在一定数量的HTTP请求或响应处理完之后,可降低所有对象的优先权。
对象的重新排序
以前章节中,描述了如何生成即将传送给客户端40的请求对象清单,或描述了优先权清单的更新机制。通常,代理服务器30接收来自服务器20的请求对象的顺序不同于优先权清单中所示的顺序。其结果是,代理服务器30必须对收到的对象进行重新排序,排序方式为,尽可能按照优先权清单中所示的顺序排列要转寄给客户端40的请求对象。通过有意延迟低优先权的对象和在没有明显延迟的情况下转寄高优先权的对象给客户端40,代理服务器30就实现了从服务器20接收的对象的重新排序。
代理服务器30利用不同延迟机制的组合,对从服务器20接收的对象重新排序。下文将对这些延迟机制中的两个进行描述,即TCP连接挂起和HTTP重定向。
TCP连接中止。
根据图2明显的,代理服务器30和客户端40间的链接14是由许多TCP50组成的,依据通过单独连接50转寄的请求对象的优先权,可中止一个或多个用于低优先权对象传输的连接。该个别连接的中止会释放链路14上的一些带宽,对于优先传输的高优先权对象来说,这些带宽就可用了。结果是,高优先权对象将在低优先权对象之前传输。
执行连接50的挂起,使得该连接是打开的并在一段时间内不传输对象。作为选择,挂起该连接50可通过关闭连接50而完成,中止前或存储或不存储连接50的状态。当存储时,可在以后一个时间点以其被中止时同样的状态将其打开。
连接50的挂起有这样的好处,通过链接14没有发送额外的数据。最好的,仅在释放的带宽被其它的传输高优先权对象的连接50充分利用的情况下,挂起该连接50。
为了避免可用带宽的浪费,配置代理服务器30以使在挂起连接50之前检查链接14是否已被充分利用。一个可能的程序,用以预测链接14是否现在或将来是空闲的,会包括:比较转向客户端40所有连接50(在过去的N秒里)的平均流通量和当前在代理服务器30(参考图3)缓冲36中缓存或缓冲并将被发送的数据总量。特别的,如果通过其它方法也可知道该链接14上的可用带宽,那么别的或尤其较简单的用来估计连接14利用率的技术也可完成该功能。
HTTP重定向
如果代理服务器30期望立刻将高优先权的对象发送个客户端14(例如,由于将HTML页的HTML代码转寄给客户端40时,代理服务器30早先发现了这些对象的链接),并且如果当前其它连接50上没有什么传输导致该连接的挂起浪费一些带宽,那么代理服务器30就可用另一个延迟计划。在这种情况下,可能可用的延迟计划包含:在稍后一个时间点上通知客户端40重复该对象请求。
尽管HTTP指定,将任何HTTP响应发送给客户端40的顺序必须和运行在客户端40上的浏览器发出HTTP请求的顺序一样,但是通知浏览器稍后重试HTTP请求还是可能的。通过将一个状态为“302”、报头字段为“Retry-After”的HTTP响应发送给客户端40,可完成此功能。该报头字段会告诉客户端40,在一个特定时间量之后重试其HTTP请求。为了响应状态代码“302”的接收(可能包含“Retry-After”报头字段),当前浏览器在处理完所有的未决的请求之后,就重新为HTTP请求安排时间。
HTTP标准1.1中指定的状态码“302”告诉浏览器,在一个不同于已请求地点的地点找到(暂时)了一个给定对象,发送给客户端40的HTTP响应包含该对象的新字段。根据本发明,可使用该机制来完成延迟计划。
根据本发明,代理服务器30以即将延迟对象的新(虚拟)URL的形式生成一个属性,然后通知运行在客户端40上的浏览器重试HTTP请求,将该临时属性(例如URL)用作对象的新地点。然后通知浏览器在稍后一个时间点上为HTTP请求重新计划定时。当浏览器重复其HTTP请求(包括临时属性,例如虚拟URL)时,代理服务器30会将该属性转换成原始URL并将该HTTP请求转寄给服务器20。作为选择,在原始HTTP请求被代理服务器30接收之后,会被转寄给服务器20。在这种情况下,代理服务器30将临时存储该来自服务器20的响应,直到它接收到来自服务器40的重复HTTP请求。
下面,通过参考图4和5,更详细地描述上述发明的延迟机制。据认为,代理服务器30从客户端40处收到的HTTP请求涉及到这样一个对象,它认为该对象的优先权较低。
在图4第一步402中,通过链接14,代理服务器30从客户端40处收到一个HTTP请求,在HTTP的示例例子中,该来自客户端的第一请求有下列格式:
GET http://example.com/some/image.png HTTP/1.1
Host:example.com                                   (主机:)
User-Agent:Mozilla/5.0(xll;Linux i686;en-Us;rv:0.99)(用户-代理机构)
Gecko/20020311
Connection:close                                   (连接:关闭)
为了响应第402步中收到的来自客户端40的HTTP请求,代理服务器30重改客户端40的方向给一个新的(虚拟)地点,并通知该客户端在重试HTTP请求之前等待一段时间(延迟)。根据HTTP标准1.1中指定的状态码“302”,来自代理服务器30的重定向信息有下列格式:
HTTP/1.1 302 Found
Date:Thu,21 Mar 2002 15:12:47                  (日期)
Sever:PrioTest/0.9                              (服务器)
Location:http://example.com/some/()image(0001).png(地点)
Retry-After:5
Connection:close                                   (连接)
Transfer-Encoding:chunked                          (传输-编码)
Content_Type:text/html;charset=iso-8859-1(内容-类型)
(下面是一些可以读懂的文本)
在从客户端40处收到初始HTTP请求(第402步)之后,并在决定将对象发送给客户端40(第406和408步)之后,代理服务器30可在任何时候请求来自服务器20的对象。
接收到上述重定向消息之后,客户端40将等待一段时间,该时间在重定向消息中指定,例如5秒(或直到传输完所有的对象)。然后在第412步中,客户端40重复其HTTP请求,该请求表明新的(虚拟)地点如下:
GET http://example.com/some/()image(00001).pngHTTP/1.1
Host:emample.com
User-Agent:Mozilla/5.0(X11;Linux i686;en-US;rv:0.9.9)
Gecko/200220311
Connection:close
关于来自客户端40的重复HTTP请求的接收,代理服务器30决定是否进一步延迟请求对象(例如,通过挂起连接50或通过进一步的重定向消息),或是否将延迟对象转寄给客户端40。如果代理服务器30决定无需任何进一步延迟转寄延迟对象,那么该功能可通过如下格式完成:
HTTP/1.1 200 OK
Date:Thu,21Mar 2002 15:12:50
Sever:Apache/1.3.23(Unix)
Conent-Type:image/png
Conent-Length:1520
(下面是图像的内容)
现在通过参考图5解释代理服务器30在参考图4所描述的重定向子程序期间所采取的决定。
在第502步中,代理服务器30从客户端40处收到HTTP请求,在紧接着的504步中,它确定是否包含在HTTP请求中的URL是一个已修改的URL,例如,是以前重定向的结果。如果情况确实是这样,那么代理服务器30就对URL进行译码并在第506步中保存该原始地点,并通过节点508移到节点510。否则,通过节点508直接从504步移到510步。
在第510步中,代理服务器30确定是否由HTTP请求方式请求的对象已经是可用的,例如,存储在代理服务器30(参阅图3)的缓冲30中。如果该对象仍然未缓存,那么代理服务器30就从服务器20处请求该对象,或对其做标记以随后在514步中获取。通过节点512该方法从514步转到516步。在客户端40请求的对象已经可用的情况下,通过节点512,可直接从510步转到516步。
第516步中,包含请求对象的HTTP响应即将发送给客户端40,这与图6流图中的第一步相符,下面进行讨论:
原则上,当执行第502或516步时,或516步以后,可在任何时间将该重定向消息(图4第404步)发送给客户端40,应该指出的是,对象的有用性(例如,是否请求对象已经被缓存、正在传输或是否该对象还未被请求)是影响该请求对象初始优先权的进一步因素。
重新排序决定一旦HTTP请求即将发送给客户端40(图5第516步),则必须决定是否应将包含在其中的对象也发送给客户端40,是否应改变客户端40的方向,或是否应挂起借以将该对象发送给客户端40的连接50。在这点上,图6描述了一个用以描述示例决定计划的流图。
第602步中,HTTP响应即将发送给客户端,在紧接着的604步中,评估该对象的优先权涉及到,是否更新该优先权。如果必须更新该对象的优先权,那么就在604步中对其进行调整。
下一步606步中,评估对象的当前优先权以找出,是否该对象是所有正在传输的或即将收到的对象中优先权最高的。如果在该步中确定该请求对象的优先权确实最高,那么通过节点610方法转到612步,在612步中将请求对象发送给客户端40。
如果在606步中当前请求对象优先权和其它对象优先权比较的结果是,该请求对象没有最高优先权,那么转到614步。关于第606步,应当指出,除了比较当前请求对象优先权和其它对象优先权外,还可比较当前对象优先权和一个固定门限,或在比较中增加一个偏移量,使得两个优先权之差必须大于预定门限,该差方可被认定为足够大。在其偏差较大之前有足够的不同。
604步中,代理服务器30估计是否客户端40(参考图2)的链接14是或将是空闲的,如上面所解释的,存在几种方法可完成此功能。其中之一包括计算最大数据量的运行平均,其中数据是所有通过连接50转向同样客户端40在最后N秒内发送的或承认的数据。该方法给出一个最大流通量的可用估计。
然后,将获得的估计结果和即将在未挂起连接50发送的数据量做比较。至少在一个完整的来回旅程过程中,如果代理服务器30未发现足够的发送来填满该链接的数据,那么,就认为在到客户端40的连接14上有多余的带宽,并转到616步。
在616步中,执行一个与606步中的比较相似的比较,如果在该步中确定当前请求对象的优先权比其它期待对象的优先权高,那么,通过节点610,代理服务器30继续612步,并立刻将该该请求对象发送给客户端40。否则进行618步并发送重定向消息(状态代码“302”)给客户端40,就像上面与图4联合讨论的一样。
第616步中所采取的决定要受到当前请求对象大小(如果已知)的影响。如果已知该对象是小的(例如,小于重定向消息大小的两倍),那么该代理服务器将不发送重定向消息,而是发送该对象,即使到那时该对象被分配了一个很低的优先权(这可看作是更新优先权的一种方式)。
如果在614步中确定存在足够的通过发送以填满链接14的数据,那么继续620步,并中止通过其传输当前请求对象的连接客户端40的连接50。
方法可从612、618和620步中的任一步到达622步,在622步中,代理服务器30将重新评估所有连接50,以找出是否要重新打开任何一个挂起连接50。
HTTP/1.1协议支持流水线操作选项,该选项允许客户端40无需等待以前的答复,直接在相同的TCP连接上将一些请求发送给服务器20,或发送给TCP连接代理服务器30。在使用流水线操作的情况下,通过同样的连接50,可将多个即将发送的对象发送给客户端40。显然的,在该情况下,低优先权对象会阻碍第二个即将在同样连接50上传输的高优先权对象。如果有一些等待相同连接50的对象,那么可在第606和616步中确定并考虑这些对象的最大优先权或平均优先权。这确保低优先权对象不会阻碍高优先权对象。
可能的扩展
关于参考图1-6描述的示例实施案例,可实现的一些扩展,其中一些已经简略描述过。
根据即将传输对象的优先权,在这些扩展中有一个扩展涉及到限制链接14上的传输速度。例如,根据即将传输对象的优先权,通过为每个连接50分配一份特定份额的处理能力,可实现该功能。当处理正在进行时,减少该单独对象的优先权,如果代理服务器30在round-robin方式下处理连接50,通过从该对象优先权中获得的数字,限制每循环每连接50上的传输数据量,通过该限制可完成此功能。处理能力的动态分配能有利地和上述的挂起、重定向机制组合起来。处理能力也可包含对象或传输代码的任何变换。
根据本发明的进一步扩展,运行在客户端40上的浏览器直接为对象分配优先权,然后根据它们的优先权,为单个对象的HTTP请求进行计划定时。如果浏览器直接分配优先权,那么则存在一些用以细调每个对象优先权的附加因素:
对象在页中的位置(坐标)
可见范围的相对位置(可见范围之外的对象有较低的优先权)
如果图像加载或脚本执行无效,那么浏览器立刻知道无需为这些对象分配优先权。
另外,浏览器了解何时用户根据书签或通过输入新的URL选择一个新HTML。因此浏览器清空不再需要的对象的清单。
本发明的进一步扩展涉及到一个代理元件,该代理元件与浏览器位于同一台电脑(客户端)上或就网络连接而言该代理元件位于该电脑(客户端)附近。这种情况在图7中描述。
根据图7明显的,客户端40不仅包括一个浏览元件42,而且包含一个附加的与浏览元件42进行通信的代理服务器30(有图3所示的结构)。在这种情况下,代理元件30和浏览元件42之间的链接14与代理元件和服务器20(图7中未描述)之间的链接12相比处理能力更高延迟更小。
结果,客户端旁的代理元件30会影响该请求流,原因是它无法处理关于该响应流的很多工作。基于从当前HTTP请求和以前HTTP请求获得的优先权信息(例如,涉及进一步对象的先前的HTML代码),并基于其链接可用性的估计,该代理元件将决定,是否将HTTP请求转寄给服务器和/或是否立刻回复一个重定向消息。
即将采取的决定比图6流程图中采取的决定简单,特别的,该决定可简化为,评估是否当前请求对象与一些正在传输或将被传输的对象相比优先权更低,是否该链接被充分利用。如果两个条件都成立,那么发送方向更改消息给浏览元件42。在其它情况下,立刻将HTTP请求转寄给服务器。
如果在一个特定的链接上使用HTTP流水线操作,并且如果一些以前的HTTP请求正在处理,那么客户端旁的代理元件30就可挂起该HTTP请求,直到它采取了决定。最迟在接收完以前对象时,该代理元件必须采取一个决定。
本发明的又一个扩展涉及到一些对象下载的冻结,该冻结基于这些对象的优先权。这意味着分配给对象的优先权完全可用来冻结对象。如果在优先权上设置了一个门限,那么不为客户端40发送任何优先权低于该门限的对象。在这种情况下,当代理服务器(或代理元件)30发现这样一个对象时,简单地,就将HTTP/1.1标准中定义的“4Xx”和“5XX”中之一返回给客户端40。可能的代码状态为“403禁止”、“409冲突”或“503服务不可用”。
作为一个附加扩展,分配给对象的优先权可用来进行预取。该预取机制允许代理服务器30,在客户端40真正请求一些对象之前,将他们填充到缓冲36(参考图3)中。这样的预取机制可以基于一个HTML代码的分析,其中的HTML代码是从代理服务器30发送到客户端40的代码,并包含有进一步对象的参考。根据这些对象参考的分析,代理服务器30为单独对象分配优先权,并基于分配定义即将预取的对象和顺序。最好,预取对象始于优先权最高的对象。
依据可与上述预取机制一起组合的静态深层扩展,执行特定的推进计划,使得无需从客户端40处接收到明显的对象请求,就允许将对象从代理服务器30传输到客户端40。
优选实施例的各种修改是可能的,并未偏离本发明的精神及范围。尽管本发明连同优选实施例一起描述,但是应该理解该描述并不是为了将本发明局限于此。相反,本发明可用于,未偏离本发明的精神及范围的所有的修改和/或上面提到描述的附加。

Claims (22)

1.一种控制方法,用于在通信网络(10)中控制经由中间元件(30)从第一元件(20)到第二元件(40)的对象传输,这里第二元件(40)相对第一元件(20)来说是远程的,其中对象传输是以多个对象请求为基础的,所述对象请求涉及的对象在由第二元件(40)或由该通信网络(10)另一个元件处理的一个或多个代码中提到,中间元件执行步骤如下:
发送对象请求给第一元件(20)
从第一元件(20)中接收请求对象;
评估和/或更新请求对象的优先权,其中依据至少对象请求和该请求对象所涉及代码其中之一的分析,为该请求对象分配初始优先权,并且
依据请求对象的优先权,延迟请求对象或向第二元件(40)转发该请求对象。
2.权利要求1的方法,其中执行延迟使得从第一元件(20)处接收对象的顺序不同于对象转发给第二元件的顺序(40)。
3.权利要求1或2的方法,其中,对象请求接收自第二元件(40),或由中间元件(30)生成。
4.权利要求1的方法,其中请求对象的延迟至少包含下列中的一个:通知第二元件(40)重复对象请求;挂起到第二元件(40)的连接,通过该第二元件转发请求对象;通知第二元件(40)请求对象将在以后一个时间点上自动进行转发。
5.权利要求4的方法,其中通知第二元件(40)重复对象请求包括:
分配一个特殊属性给要延迟的对象;
通知第二元件(40)该属性;
从第二元件处接收该属性的一个参考,并
在接收属性参考时,发送延迟的对象给第二元件或进一步延迟该延迟的对象。
6.权利要求1的方法,其中请求对象经由连接到第二元件(40)的多个连接(50)转发到第二元件(40)。
7.权利要求6的方法,其中已选的连到第二元件(40)的连接(50)是否会挂起取决于该请求对象的优先权,所述请求对象接收自第一元件(20),并将经由已选的连接之一被转发给第二元件(40)。
8.权利要求6的方法,其中为每个连接动态分配一份特定的处理能力份额。
9.权利要求1的方法,
其中接收的对象是代码,
其中评估和/或更新优先权的步骤包括以下步骤:
-分析接收的代码;
-评估对象参考,其目的是为接收的代码中提到的对象分配初始优先权。
10.权利要求1的方法,
其中在接收请求对象的步骤中,所述对象在响应中被接收,以及其中评估和/或更新优先权的步骤包括下述步骤:就接收的对象的优先权来评估所述响应,以便决定是否必须更新接收的对象的初始优先权。
11.权利要求1的方法,
进一步包括生成包含有单独对象或对象类的优先权信息的优先权清单。
12.权利要求11的方法,
进一步包括重复评估优先权清单,这至少涉及下列操作中之一:更新优先权信息,从优先权清单删除对象或对象类或相应信息。
13.权利要求1的方法,其中中间元件是位于第一元件、第二元件上的代理元件,或是被配置成通信网络的分离的硬件元件(30)。
14.一种延迟方法,在通信网络(10)中,用于延迟经由中间元件(30)从第一元件(20)到第二元件(40)的对象传输,这里第二元件(40)相对第一元件(20)来说是远程的,其中对象传输的基础是许多对象请求,对象请求涉及的对象在由第二元件(40)或由该通信网络(10)另一个元件处理的一个或多个代码中提到,中间元件执行步骤如下:
分配特定属性给即将延迟的对象;
通知第二元件(40)该属性;
从第二元件(40)处收到该属性的参考,并且
一旦接收到该属性参考,将延迟的已分配该属性的对象发送给第二元件(40)或进一步延迟该延迟对象。
15.权利要求14的方法,其中按照推进计划或作为收到来自第二元件(40)对象请求的响应,将该对象发送给第二元件(40)。
16.权利要求15的方法,其中在一个重复对象请求的通知下告知第二元件(40)该属性,并在一个重复对象请求的条件下从第二元件处接收到该属性的参考。
17.一个中间元件(30),在通信网络(10)中,用于控制经由中间元件(30)从第一元件(20)到第二元件(40)的对象传输,这里第二元件(40)相对第一元件(20)来说是远程的,其中对象传输的基础是许多对象请求,对象请求涉及的对象在第二或其它元件所要处理的一个或多个代码中提到,中间元件(30)包含一个通信接口(32),用于发送对象请求给第一元件(20),从第一元件(20)中接收请求对象,一个用于更新和/或评估请求对象的优先权的处理单元(34),依据至少对象请求和该请求对象所涉及代码其中之一的分析,为该请求对象分配初始优先权,并且其中处理单元依据请求对象的优先权,延迟请求对象或控制通信接口(32)向第二元件(40)转发该请求对象。
18.一个中间元件(30),在通信网络(10)中,用于延迟经由中间元件(30)从第一元件(20)到第二元件(40)的对象传输,这里第二元件(40)相对第一元件(20)来说是远程的,其中对象传输的基础是许多对象请求,对象请求涉及的对象在通信网络第二或其它元件所要处理的一个或多个代码中提到,中间元件(30)包含一个处理单元(34),用于分配特定属性给将被延迟的对象;还包含一个通信接口(32),用于:通知第二元件(40)该属性,从第二元件(40)处接收该属性的参考,并且,在接收到该属性参考时,将延迟的已分配该属性的对象发送给第二元件(40)或进一步延迟该被延迟对象。
19.权利要求17或18的中间元件,该中间元件配置为代理服务器(30)。
20.一种网络系统,至少包含权利要求17到19所述的中间元件(30)中的一个。
21.权利要求20的网络系统,进一步包含中间元件(30)与第一元件(20)之间的一个第一链接(12)和中间元件(30)与第二元件(40)之间的一个第二链接(14),第一链接(12)和第二链接(14)有不同的传输速率。
22.权利要求20或21的网络系统,包含一个形式为移动终端的第二元件(40)。
CNB028287088A 2002-04-05 2002-04-05 通信网络中的对象传输控制 Expired - Lifetime CN100531186C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2002/003802 WO2003085924A1 (en) 2002-04-05 2002-04-05 Object transfer control in a communications network

Publications (2)

Publication Number Publication Date
CN1625877A CN1625877A (zh) 2005-06-08
CN100531186C true CN100531186C (zh) 2009-08-19

Family

ID=28685820

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028287088A Expired - Lifetime CN100531186C (zh) 2002-04-05 2002-04-05 通信网络中的对象传输控制

Country Status (10)

Country Link
US (2) US7721294B2 (zh)
EP (2) EP1650931B1 (zh)
CN (1) CN100531186C (zh)
AT (2) ATE413763T1 (zh)
AU (1) AU2002257754A1 (zh)
DE (2) DE60208786T2 (zh)
ES (2) ES2317348T3 (zh)
IL (3) IL163889A0 (zh)
PT (2) PT1493257E (zh)
WO (1) WO2003085924A1 (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058483A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
US20040158582A1 (en) * 2003-02-11 2004-08-12 Shuichi Takagi Method and apparatus for synchronously transferring data from a local storage medium to a remote storage medium, and method and system for managing transfer of data from a source storage medium to a repository storage medium
WO2004114581A2 (en) * 2003-06-17 2004-12-29 Bytemobile, Inc. Method and system for dynamic interleaving
TWI234717B (en) * 2003-12-04 2005-06-21 Inst Information Industry Method and system for dynamically determining web resource to be loaded and saving space
US7673018B2 (en) 2004-04-08 2010-03-02 Research In Motion Limited Message send queue reordering based on priority
EP1585282B1 (en) * 2004-04-08 2006-07-26 Research In Motion Limited Message send queue reordering based on priority
US7865511B2 (en) * 2004-06-25 2011-01-04 Apple Inc. News feed browser
US8023408B2 (en) * 2004-11-19 2011-09-20 International Business Machines Corporation Dynamically changing message priority or message sequence number
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US8856279B2 (en) * 2005-05-26 2014-10-07 Citrix Systems Inc. Method and system for object prediction
US9692725B2 (en) * 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8612844B1 (en) * 2005-09-09 2013-12-17 Apple Inc. Sniffing hypertext content to determine type
US8533350B2 (en) * 2005-11-01 2013-09-10 Ravenwhite Inc. Method and apparatus for storing information in a browser storage area of a client device
EP1796338A1 (de) * 2005-12-07 2007-06-13 Siemens Aktiengesellschaft Verfahren zur Kommunikation eines Clients mit einem Server sowie Client und Server zur Durchführung dieses Verfahrens
US8650293B2 (en) 2006-05-05 2014-02-11 Thomson Licensing Threshold-based normalized rate earliest delivery first (NREDF) for delayed down-loading services
WO2008049425A1 (en) * 2006-10-24 2008-05-02 Medianet Innovations A/S Method and system for firewall friendly real-time communication
US9489456B1 (en) * 2006-11-17 2016-11-08 Blue Coat Systems, Inc. Previewing file information over a network
US7743160B2 (en) * 2007-03-29 2010-06-22 Blue Coat Systems, Inc. System and method of delaying connection acceptance to support connection request processing at layer-7
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8521891B1 (en) * 2007-06-21 2013-08-27 Mcafee, Inc. Network browser system, method, and computer program product for conditionally loading a portion of data from a network based on a data transfer rate
KR100925644B1 (ko) 2007-10-22 2009-11-06 에스케이 텔레콤주식회사 오브젝트 전송 시스템 및 그 제어방법
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8850029B2 (en) * 2008-02-14 2014-09-30 Mcafee, Inc. System, method, and computer program product for managing at least one aspect of a connection based on application behavior
US9262357B2 (en) 2008-09-29 2016-02-16 International Business Machines Corporation Associating process priority with I/O queuing
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
JP5669460B2 (ja) * 2010-06-30 2015-02-12 キヤノン株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及びプログラム
PL3407673T3 (pl) * 2010-07-26 2020-05-18 Seven Networks, Llc Koordynacja ruchu w sieci komórkowej pomiędzy różnymi aplikacjami
CA2806549C (en) 2010-07-26 2014-10-28 Seven Networks, Inc. Context aware traffic management for resource conservation in a wireless network
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
EP2625655A4 (en) 2010-10-06 2014-04-16 Planet Data Solutions SYSTEM AND METHOD FOR INDEXING ELECTRONIC DETECTION DATA
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8984164B2 (en) * 2010-11-09 2015-03-17 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
US8868638B2 (en) 2010-11-09 2014-10-21 Usablenet Inc. Methods for reducing latency in network connections using automatic redirects and systems thereof
GB2495463B (en) 2010-11-22 2013-10-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
US8769000B2 (en) * 2011-02-01 2014-07-01 Microsoft Corporation Adaptive network communication techniques
US9009253B2 (en) * 2011-02-16 2015-04-14 Yahoo! Inc. Optimizing server resources using multiple retry for high traffic websites
WO2012125347A1 (en) * 2011-03-11 2012-09-20 Citrix Systems, Inc. SYSTEMS AND METHODS OF QoS FOR SINGLE STREAM ICA
WO2012149221A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US20130104025A1 (en) * 2011-10-20 2013-04-25 Microsoft Corporation Enabling immersive search engine home pages
US9207754B2 (en) 2011-10-20 2015-12-08 Microsoft Technology Licensing, Llc Enabling immersive, interactive desktop image presentation
WO2013078687A1 (zh) * 2011-12-02 2013-06-06 华为技术有限公司 一种内容分发网络路由方法、系统和用户终端
US8934414B2 (en) 2011-12-06 2015-01-13 Seven Networks, Inc. Cellular or WiFi mobile traffic optimization based on public or private network destination
EP2789138B1 (en) 2011-12-06 2016-09-14 Seven Networks, LLC A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
EP2788889A4 (en) 2011-12-07 2015-08-12 Seven Networks Inc FLEXIBLE AND DYNAMIC INTEGRATION SCHEMES OF A TRAFFIC MANAGEMENT SYSTEM WITH VARIOUS NETWORK OPERATORS TO REDUCE NETWORK TRAFFIC
US9537899B2 (en) 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
US9215127B2 (en) * 2012-03-12 2015-12-15 Network Coding, Inc. Non-intrusive proxy system and method for applications without proxy support
US8719426B1 (en) * 2012-03-23 2014-05-06 Google Inc. Efficient proximity detection
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US8923204B2 (en) * 2012-05-29 2014-12-30 Alcatel Lucent Message handling extension using context artifacts
US9037926B2 (en) * 2012-06-07 2015-05-19 International Business Machines Corporation Background buffering of content updates
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
JP6021487B2 (ja) 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9148383B2 (en) * 2012-07-31 2015-09-29 International Business Machines Corporation Transparent middlebox with graceful connection entry and exit
US9311280B2 (en) * 2012-08-27 2016-04-12 Qualcomm Innovation Center, Inc. Re-ordering of iFrame execution to reduce network activity window
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9398066B1 (en) 2013-03-06 2016-07-19 Amazon Technologies, Inc. Server defenses against use of tainted cache
US9471533B1 (en) * 2013-03-06 2016-10-18 Amazon Technologies, Inc. Defenses against use of tainted cache
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
EP3057274A4 (en) * 2013-10-07 2017-05-10 Telefonica Digital España, S.L.U. Method and system for defining the order in which web resources are obtained by a web browser
US9992263B2 (en) * 2014-10-10 2018-06-05 Pulse Secure, Llc Predictive prioritized server push of resources
CN106330845A (zh) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 一种传输流媒体数据的方法和装置
US20180063220A1 (en) * 2016-08-30 2018-03-01 Citrix Systems, Inc. Systems and methods to provide hypertext transfer protocol 2.0 optimization through multiple links
EP3772207B1 (en) * 2019-08-01 2024-03-20 ISS IP Holding LLC Method and system for data transmission with significantly reduced latency losses

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046121A (en) * 1989-01-31 1991-09-03 Konica Corporation Image data compression apparatus
US6512791B1 (en) * 1991-05-15 2003-01-28 Canon Kabushiki Kaisha Image processing apparatus having means for controlling exposure using an orthogonal transformation coefficient
DE69616031T2 (de) * 1995-12-21 2002-06-20 Koninkl Philips Electronics Nv Rauschreduzierung in einem bild
US5778372A (en) * 1996-04-18 1998-07-07 Microsoft Corporation Remote retrieval and display management of electronic document with incorporated images
US5826031A (en) * 1996-06-10 1998-10-20 Sun Microsystems, Inc. Method and system for prioritized downloading of embedded web objects
US5675721A (en) * 1996-08-08 1997-10-07 Freedman; Aaron S. Computer network data distribution and selective retrieval system
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6343085B1 (en) * 1997-08-28 2002-01-29 Microsoft Corporation Adaptive bandwidth throttling for individual virtual services supported on a network server
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6266742B1 (en) 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
US5987466A (en) * 1997-11-25 1999-11-16 International Business Machines Corporation Presenting web pages with discrete, browser-controlled complexity levels
US6769019B2 (en) * 1997-12-10 2004-07-27 Xavier Ferguson Method of background downloading of information from a computer network
US6154769A (en) * 1998-03-27 2000-11-28 Hewlett-Packard Company Scheduling server requests to decrease response time and increase server throughput
JPH11284683A (ja) * 1998-03-30 1999-10-15 Canon Inc データ転送装置とデータの転送方法、及び情報処理システム
US6144996A (en) 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US6563517B1 (en) * 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6658485B1 (en) * 1998-10-19 2003-12-02 International Business Machines Corporation Dynamic priority-based scheduling in a message queuing system
US6389462B1 (en) 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
US7340499B1 (en) * 1999-12-03 2008-03-04 Sun Microsystems, Inc. Dynamic embedding of literal object data in supplied instance of information object
US20020073167A1 (en) * 1999-12-08 2002-06-13 Powell Kyle E. Internet content delivery acceleration system employing a hybrid content selection scheme
DE19964030A1 (de) * 1999-12-30 2001-07-05 Ibm Effizientes Laden von Dokumenten auf dem Internet
US7552233B2 (en) * 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
DE60122622T2 (de) * 2000-03-29 2007-08-30 Matsushita Electric Industrial Co., Ltd., Kadoma Dynamische Proxy-Server Vorrichtung
US6954429B2 (en) * 2000-04-05 2005-10-11 Dyband Corporation Bandwidth control system
AU2001264870A1 (en) * 2000-05-25 2001-12-03 Qmgn, Inc. Enhanced downloading from a computer network and profiling of a user of a computer network
WO2002007395A1 (fr) * 2000-07-19 2002-01-24 Hitachi, Ltd. Systeme de transfert preferentiel d'informations sur le web
DE10049619A1 (de) * 2000-10-05 2002-04-18 Alcatel Sa Verfahren zur Erbringung von Diensten in einem Netzwerk-Management-System mit einer offenen Systemarchitektur sowie Dienst-Objekt, Anforderungs-Objekt und Anforderungs-Manager hierzu

Also Published As

Publication number Publication date
DE60208786T2 (de) 2006-09-28
EP1493257B1 (en) 2006-01-18
IL163889A0 (en) 2005-12-18
IL189779A (en) 2010-05-17
EP1650931B1 (en) 2008-11-05
WO2003085924A1 (en) 2003-10-16
US20090077205A1 (en) 2009-03-19
IL163889A (en) 2010-02-17
PT1493257E (pt) 2006-06-30
US20050240940A1 (en) 2005-10-27
CN1625877A (zh) 2005-06-08
ATE316312T1 (de) 2006-02-15
US7721294B2 (en) 2010-05-18
IL189779A0 (en) 2008-08-07
EP1493257A1 (en) 2005-01-05
ES2257543T3 (es) 2006-08-01
PT1650931E (pt) 2009-02-13
DE60208786D1 (de) 2006-04-06
EP1650931A1 (en) 2006-04-26
ES2317348T3 (es) 2009-04-16
DE60229796D1 (de) 2008-12-18
AU2002257754A1 (en) 2003-10-20
ATE413763T1 (de) 2008-11-15

Similar Documents

Publication Publication Date Title
CN100531186C (zh) 通信网络中的对象传输控制
KR100721298B1 (ko) 모바일 장치에 데이터를 푸시하는 시스템 및 방법
US7552220B2 (en) System and method to refresh proxy cache server objects
US10931773B1 (en) Faster web browsing using HTTP over an aggregated TCP transport
US10296653B2 (en) Systems and methods for accelerating web page loading
KR101711528B1 (ko) 공유 메타 정보에 기초한 웹페이지들의 협력형 로딩
US6721288B1 (en) Wireless mobile devices having improved operation during network unavailability
US8572132B2 (en) Dynamic content assembly on edge-of-network servers in a content delivery network
US7484007B2 (en) System and method for partial data compression and data transfer
US8694609B2 (en) Method and apparatus for improving wireless data networks performance
US9723067B2 (en) Prioritized content transmission
US20110106908A1 (en) Transfer of information between at least two software
RU2689439C2 (ru) Улучшение производительности веб-доступа
EP2638683B1 (en) Methods for reducing latency in network connections using automatic redirects and systems thereof
RU2316131C2 (ru) Способ хранения страниц в памяти мобильного устройства (варианты) и мобильное устройство для его осуществления
FI120286B (fi) Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi
US20030126244A1 (en) Apparatus for scheduled service of network requests and a method therefor
US20050125510A1 (en) On-demand and incremental application adaptation
Hadjiefthymiades et al. A Survey of Web Architectures for Wireless Communication Environments.
US20070043691A1 (en) Mobilizing applications
KR100925644B1 (ko) 오브젝트 전송 시스템 및 그 제어방법
KR100490721B1 (ko) 브라우저가 저장된 기록매체 및 이를 이용한 데이터다운로드 방법

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
CX01 Expiry of patent term

Granted publication date: 20090819