跨进程服务方法和系统及代理服务器的制造方法

文档序号:10538859阅读:160来源:国知局
跨进程服务方法和系统及代理服务器的制造方法
【专利摘要】本发明提供了一种跨进程服务方法,其包括:接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接;根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接;根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端;另一个方面提供一种跨进程服务系统和一种代理服务器;本发明的跨进程服务提供方法解决了现有技术中内核态与应用态之间数据反复拷贝造成的服务效率的降低以及用户层的缓存空间的开销的技术问题。
【专利说明】
跨进程服务方法和系统及代理服务器
技术领域
[0001]本发明涉及互联网技术领域,特别涉及一种跨进程服务方法和系统及代理服务器。
【背景技术】
[0002]应用层代理(S卩,代理服务器)广泛的应用于HTTP代理,HTTP缓存等领域,扮演着重要的网络服务角色。一般的应用层代理都采用应用层连接粘合代理(split-connect1n),代理服务器位于客户端和被访问的服务器(缓存服务器)之间,代理服务器透明的将用户请求和服务器响应进行双向转换,以协助双方完成通信的全过程。当用户通过客户端提交请求时,代理服务器将请求转发给缓存服务器时,对于缓存服务器而言,代理服务器充当了客户端的角色;当缓存服务器响应请求,代理服务器收到后将相应的数据返回客户端时,对于客户端而言,代理服务器充当缓存服务器的角色。
[0003]当客户端向缓存服务器发起请求的时候,连接被重定向到代理服务器的指定端口上(例如IE浏览器中设定的代理一样);代理服务器接收到这一连接请求以后,根据请求的目标地址和端口,向被访问的缓存服务器发出另一个连接请求,并将客户端发来的请求转发到目标缓存服务器上;随后,代理服务器强制在两个连接上进行互相转发请求数据和应答数据,成为客户端和缓存服务器之间必经之路。由此,代理服务器实现客户端对缓存服务器的透明访问,本质上,代理服务器将客户端的请求的连接进行适当的修改,重新通过另一个连接发送到缓存服务器端,反之亦然。
[0004]然而,现有技术的缺点在于:数据的双向拷贝需要经由内核态的TCP/IP协议栈到用户态的用户空间,修改后再由用户态的用户空间到内核态的TCP/IP层进行处理转发,频繁的上下文交换导致代理服务器的效率低下。而代理服务器也不得不维护至少双倍于用户请求数量的连接,这对于代理服务器的内存和CPU调度都有极高的要求,其次,由于代理服务器对任何方向上的数据都要进行转换,大大增加了通信延迟,并且代理服务器本质上对端到端的传输协议进行了修改,难免会存在传输协议的兼容性问题。

【发明内容】

[0005]本发明提供一种跨进程服务提供方法及代理服务器,用于解决现有技术中客户端通过代理服务器访问缓存服务器时缓存服务器中的数据要经内核态到用户态,在由用户态到内核态的数据的反复的拷贝而造成的效率低下的技术问题,以及由此带来的应用态缓存空间的开销。
[0006]根据本发明的一个方面,提供了一种跨进程服务方法,包括:
[0007]接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接;
[0008]根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接;
[0009]根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。
[0010]根据本发明的另一个方面,提供一种跨进程服务系统,其包括:
[0011 ]第一连接确定模块,用于接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接;
[0012]第二连接确定模块,用于根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接;
[0013]数据传输路径确定模块,用于根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。
[0014]本发明实施方式的跨进程服务方法及系统,通过分别在代理服务器与客户端之间和代理服务器与缓存服务器之间建立连接,并根据这两个连接建立缓存服务器至客户端的数据传输路径,从而当客户端与缓存服务器之间需要互相交换数据时,不再把数据拷贝到一个临时的缓冲区(大多数情况下是用户空间缓冲区,即用户态的缓存空间),而是经缓存服务器至客户端的数据传输路径直接实现的数据的传输,实现了缓存服务器到客户端的直接连通,跨过了代理服务器这个进程,实现了客户端对缓存服务器的跨进程的访问,这个过程根本就不需要内核态到用户态(即,应用态)的转换,也至少避免了两次数据拷贝,从而提高了服务提供的效率,同时节省了应用态的缓存空间的开销。
【附图说明】
[0015]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为本发明的跨进程的服务提供方法的一实施方式的流程图;
[0017]图2为本发明的跨进程服务方法的另一实施方式的流程图;
[0018]图3为本发明的跨进程服务方法的又一实施方式的流程图;
[0019]图4为本发明的跨进程服务方法的再一实施方式的流程图;
[0020]图5为本发明的跨进程服务系统的一实施方式的示意图;
[0021]图6为本发明中的数据传输路径确定模块的一实施方式的示意图。
[0022]图7为本发明中的第一连接确定模块的一实施方式的示意图;
[0023]图8为本发明中的第二连接确定模块的一实施方式的示意图。
【具体实施方式】
[0024]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]需要说明的是,在不冲突的情况下,本申请中的实施方式及实施方式中的特征可以相互组合。
[0026]本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0027]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0028]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0029]如图1所示,本发明的一实施方式的跨进程服务方法,其包括:
[0030]S11、接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接;
[0031]S12、根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接;
[0032]S13、根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。
[0033]本实施方式中,通过分别在代理服务器与客户端之间和代理服务器与缓存服务器之间建立连接,并根据这两个连接建立缓存服务器至客户端的数据传输路径,从而当客户端与缓存服务器之间需要互相交换数据时,不再把数据拷贝到一个临时的缓冲区(大多数情况下是用户空间缓冲区,即用户态的缓存空间),而是经缓存服务器至客户端的数据传输路径直接实现的数据的传输,实现了缓存服务器到客户端的直接连通,跨过了代理服务器这个进程,实现了客户端对缓存服务器的跨进程的访问,这个过程根本就不需要内核态到用户态(即,应用态)的转换,也至少避免了两次数据拷贝,从而提高了服务提供的效率,同时节省了应用态的缓存空间的开销。
[0034]如图2所示,在一些实施方式中,根据第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径包括:
[0035]S21、根据所述第一连接确定客户端地址和客户端端口号;
[0036]S22、根据所述第二连接确定缓存服务器地址和缓存服务器端口号;
[0037]S23、根据所述客户端地址、客户端端口号和所述缓存服务器地址、缓存服务器端口号确定所述缓存服务器至所述客户端的数据传输路径。
[0038]本实施方式中,通过分别解析第一连接和第二连接分别确定客户端地址、客户端端口号和缓存服务器地址和缓存服务器端口号,从而根据确定的定客户端地址、客户端端口号和缓存服务器地址和缓存服务器端口号建立缓存服务器至客户端的数据传输路径,上述实施方式中的客户端地址为客户端的IP地址,客户端端口号为客户端在TCP层的网络接口号,缓存服务器地址为缓存服务器的IP地址,缓存服务器端口号为缓存服务器在TCP测规定网络接口,通过本实施方式实现了直接在TCP/IP层实现客户端和缓存服务器之间的数据传输,即直接通过内核态将数据从缓存服务器传输到了客户端,跨过了中间的代理服务器的这个进程,实现了数据的跨进程的传输,提高了提供服务的效率。
[0039]如图3所示,在一些实施方式中,根据接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接包括:
[0040]S31、根据连接访问请求和所述客户端地址反馈第一应答数据和第一反馈连接请求报文至所述客户端;
[0041]S32、接收所述客户端发送的数据请求报文以及对所述第一反馈连接请求报文的第二应答数据。
[0042]如图4所示,在一些实施方式中,根据建立代理服务器与所述缓存服务器之间的第二连接包括:
[0043]S41、根据所述缓存服务器地址和缓存服务器端口号将接收的所述连接请求报文发送至所述缓存服务器;
[0044]S42、接收缓存服务器反馈的第三应答数据和第二反馈连接请求报文;
[0045]S43、发送自客户端的数据请求报文以及对所述第二反馈连接请求报文的第四应答数据至缓存服务器,以确认建立所述第二连接。
[0046]上述两实施方式中分别通过三次握手的方式实现了客户端与代理服务器之间的可靠连接和代理服务器与缓存服务器之间的可靠连接,在客户端与代理服务器之间真正传输数据之前先通过三次握手的方式建立两者之间的可靠连接保证了真正数据传输时的安全性,同理也保证了代理服务器与缓存服务器之间数据传输的安全性。
[0047]为使本发明的技术方案更加清楚,以下结合客户端、代理服务器、缓存服务器叙述本发明的一实施方式如下:
[0048]Stepl:客户端向缓存服务器发起连接请求,典型的连接请求以一个Syn请求报文为开始(客户端发送的Syn请求报文的初始序列为CSEQ),该Syn连接请求到达代理服务器的客户端口。
[0049]Step2:代理服务器内建的网络输入流处理例程截获客户端发送的SYN请求报文并进行解析,解析后转发给连接管理模块。
[0050]Step3:代理服务器回应一个应答数据ACK(应答数据ACK相应于Syn请求报文的初始序列,该应答数据ACK的应答序列为CSEQ+1)至代理服务器的客户端监听口,同时,发起一个新的Syn请求报文(该新的Syn请求报文的新的报文序列号为DSEQ)至代理服务器的客户端监听口。
[0051]Step4:客户端在收到代理服务器的应答数据Ack以及新的Syn报文请求后,认为与缓存服务器之间的连接已经建立(实际上,客户端仅仅是和代理服务器建立了连接),并向缓存服务器发出数据请求报文DATA(数据请求报文DATA的序列为CSEQ+1),以及对新的SYN请求报文进行应答,并发送新的应答数据ACK (其序列为DSEQ+1)至缓存服务器,至此完成了三次握手的全部过程,并且开始进行数据通信。
[0052]由于面向内容的数据访问必须在收到客户端发出的含有协议内容的数据请求报文DATA之后(例如Get指令),才能进行缓存服务器调度的判断工作,因此,需要针对客户端的连接请求进行〃欺骗〃,待于客户端的连接建立之后将其挂起,准备调度。
[0053]Step5:代理服务器接收到数据请求报文后,首先对其进行解析,根据数据请求报文中的有效协议信息做出调度判断,判断的依据可以是请求的文件类型,或者是服务级别;另外,代理服务器也要根据当前缓存服务器的权值队列,选择目前符合服务条件的负担最轻的缓存服务器,而客户端的请求在这里将被挂起,从客户端的角度看,连接请求被隐蔽的延迟了。
[0054]Step6:代理服务器选择完实际的缓存服务器后,以客户端的〃身份〃向缓存服务器发起连接请求,特别一提的是,该连接请求使用了客户端原先发起的Syn请求报文,并且Syn请求报文的初始序列号CSEQ。这么做的目的是为了后面进行TCP粘合所必须的TCP Header数据转换时,尽可能减少代理服务器的CPU计算量,也方便管理被粘合的两个连接;Syn请求报文由代理服务器的服务端监听口到达缓存服务器,从整个会话过程来看,步骤Step I中客户端所发出的Syn请求报文被延迟地发送到了最终目的地。
[0055]Step7:缓存服务器接受Syn请求报文,并送回新的应答数据ACK(该新的应答数据的序列号为CSEQ+1)和新的Syn请求报文至代理服务器,以完成TCP的握手例程;缓存服务器的Syn请求报文序列SSEQ被重新映射为DSEQ,和步骤step3的报文序列相同。这样,从代理服务器的角度来讲,他正确的获得了一个应答数据,并且这个被转换过序列的应答数据可以直接和客户端的Syn请求报文序列映射在一起了。
[0056]到这里为止,我们可以发现,服务端监听口对于代理服务器而言,作为虚拟的服务端而存在,通过该端口的报文序列都是转换过后的序列,能够直接和客户端监听口的序列对应。同理,客户端监听口也承担了相似的角色。
[0057]Step8:代理服务器确认了应答数据ACK(CSEQ+1)报文后,发出应答报文ACK(DSEQ+1)(注意:代理服务器在这里使用的是客户端序列,把自己当做客户端,把服务端监听口当做缓存服务器)和请求数据Data( CSEQ+1)至缓存服务器,完成和缓存服务器的三次握手。
[0058]到这一步,均衡器完成了对步骤Step4的TCP请求延迟处理,客户端的请求数据终于被发送给了服务节点(通过服务端监听口 )。
[0059]Step9:缓存服务器响应数据请求,例如返回请求的HTML文件。数据Data(SSEQ+l)以长度Ien返回,并回送应答数据ACK(CSEQ+len+l)到代理服务器的服务端监听口,服务端监听口对数据Data(SSEQ+l)进行转换,应答数据ACK不转换,并将转换后的数据和应答数据ACK,直接传送到客户端监听口,无需经过核心调度模块的处理。
[0060]从上述实施方式中我们知道,代理服务器在客户端发起TCP连接请求并完成三次握手确认后,并没有马上将数据转发,而是先伪装为缓存服务器响应客户端的请求,并在随后接收到第一个数据包,并从中获取代理服务器所需的数据,决定实际的缓存服务器;在完成与缓存服务器的通信确认工作时候才开始双方的数据转换工作。
[0061 ]于是,原理上,代理服务器需要监听客户端的连接请求,并在客户端发出连接的请求之后(从Syn请求报文开始),建立客户端到代理服务器之间的第一连接(通过TCP的三次握手协议完成)。并在随后的数据请求报文中分析数据并决定真正被访问的缓存服务器,然后才与服务节点建立另一个连接,并将两个连接粘合(Spl icing)在一起。
[0062]上述实施方式中应用级代理与TCP粘合连接相结合的技术方案的优点在于:客户端和缓存服务器节点之间的连接在操作系统的核心层进行连接粘合。也就是说,TCP粘合避免了数据包从核心空间到用户空间的上下文交换这一耗时的过程,减少了核心空间到用户进程的通信开销,整体效率可以作的很好,并且可以利用操作系统在核心层TCP/IP协议栈的多线程处理能力,提高TCP连接的交换速度。
[0063]本发明实施方式中可以通过硬件处理器(hardware processor)来实现相关功能模块。
[0064]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0065]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0066]如图5所示,本发明的实施方式还提供一种跨进程服务系统,其包括:
[0067]第一连接确定模块,用于接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接;
[0068]第二连接确定模块,用于根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接;
[0069]数据传输路径确定模块,用于根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。
[0070]本实施方式中,第一连接确定模块、第二连接确定模块通过分别在代理服务器与客户端之间和代理服务器与缓存服务器之间建立连接,并且数据传输路径确定模块根据这两个连接建立缓存服务器至客户端的数据传输路径,从而当客户端与缓存服务器之间需要互相交换数据时,不再把数据拷贝到一个临时的缓冲区(大多数情况下是用户空间缓冲区,即用户态的缓存空间),而是经缓存服务器至客户端的数据传输路径直接实现的数据的传输,实现了缓存服务器到客户端的直接连通,跨过了代理服务器这个进程,实现了客户端对缓存服务器的跨进程的访问,这个过程根本就不需要内核态到用户态(即,应用态)的转换,也至少避免了两次数据拷贝,从而提高了服务提供的效率,同时节省了应用态的缓存空间的开销。
[0071]如图6所示,在一些实施方式中,数据传输路径确定模块包括:
[0072]客户端信息确定单元,用于根据所述第一连接确定客户端地址和客户端端口号;
[0073]缓存服务器信息确定单元,用于根据所述第二连接确定缓存服务器地址和缓存服务器端口号;
[0074]路径确定单元,用于根据所述客户端地址、客户端端口号和所述缓存服务器地址、缓存服务器端口号确定所述缓存服务器至所述客户端的数据传输路径。
[0075]本实施方式中,客户端信息确定单元、缓存服务器信息确定单元通过分别解析第一连接和第二连接分别确定客户端地址、客户端端口号和缓存服务器地址和缓存服务器端口号,从而路径确定单元根据确定的定客户端地址、客户端端口号和缓存服务器地址和缓存服务器端口号建立缓存服务器至客户端的数据传输路径,上述实施方式中的客户端地址为客户端的IP地址,客户端端口号为客户端在TCP层的网络接口号,缓存服务器地址为缓存服务器的IP地址,缓存服务器端口号为缓存服务器在TCP测规定网络接口,通过本实施方式实现了直接在TCP/IP层实现客户端和缓存服务器之间的数据传输,即直接通过内核态将数据从缓存服务器传输到了客户端,跨过了中间的代理服务器的这个进程,实现了数据的跨进程的传输,提高了提供服务的效率。
[0076]如图7所示,在一些实施方式中,第一连接确定模块包括:
[0077]信息反馈单元,用于根据连接访问请求和所述客户端地址反馈第一应答数据和第一反馈连接请求报文至所述客户端;
[0078]第一反馈信息接收单元,用于接收所述客户端发送的数据请求报文以及对所述第一反馈连接请求报文的第二应答数据。
[0079]如图8所示,在一些实施方式中,第二连接确定模块包括:
[0080]第一信息发送单元,用于根据所述缓存服务器地址和缓存服务器端口号将接收的所述连接请求报文发送至所述缓存服务器;
[0081]第二反馈信息接收单元,用于接收缓存服务器反馈的第三应答数据和第二反馈连接请求报文;
[0082]第二信息发送单元,用于发送自客户端的数据请求报文以及对所述第二反馈连接请求报文的第四应答数据至缓存服务器,以确认建立所述第二连接。
[0083]此外,本发明还提供一种代理服务器,该代理服务器配置有本发明上述实施方式中的任一种跨进程服务系统。
[0084]上述两实施方式中分别通过三次握手的方式实现了客户端与代理服务器之间的可靠连接和代理服务器与缓存服务器之间的可靠连接,在客户端与代理服务器之间真正传输数据之前先通过三次握手的方式建立两者之间的可靠连接保证了真正数据传输时的安全性,同理也保证了代理服务器与缓存服务器之间数据传输的安全性。
[0085]以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0086]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0087]本领域内的技术人员应明白,本发明的实施方式可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0088]本发明是参照根据本发明实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0089]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0090]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种跨进程服务方法,包括: 接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接; 根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接; 根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径包括: 根据所述第一连接确定客户端地址和客户端端口号; 根据所述第二连接确定缓存服务器地址和缓存服务器端口号; 根据所述客户端地址、客户端端口号和所述缓存服务器地址、缓存服务器端口号确定所述缓存服务器至所述客户端的数据传输路径。3.根据权利要求1或2所述的方法,其特征在于,建立代理服务器与所述客户端之间的第一连接包括: 根据连接请求报文反馈第一应答数据和第一反馈连接请求报文至所述客户端; 接收所述客户端发送的数据请求报文以及对所述第一反馈连接请求报文的第二应答数据,以确认建立所述第一连接。4.根据权利要求1或2所述的方法,其特征在于,所述建立代理服务器与所述缓存服务器之间的第二连接包括: 将接收的所述连接请求报文发送至所述缓存服务器; 接收缓存服务器反馈的第三应答数据和第二反馈连接请求报文; 发送自客户端的数据请求报文以及对所述第二反馈连接请求报文的第四应答数据至缓存服务器,以确认建立所述第二连接。5.一种跨进程服务系统,其包括: 第一连接确定模块,用于接收客户端发送的连接请求报文,建立代理服务器与所述客户端之间的第一连接; 第二连接确定模块,用于根据所述客户端发送的数据请求报文,确定被访问的缓存服务器,建立代理服务器与所述缓存服务器之间的第二连接; 数据传输路径确定模块,用于根据所述第一连接和所述第二连接,确定所述缓存服务器至所述客户端的数据传输路径,用以所述缓存服务器返回数据至所述客户端。6.根据权利要求5所述的系统,其特征在于,所述数据传输路径确定模块包括: 客户端信息确定单元,用于根据所述第一连接确定客户端地址和客户端端口号; 缓存服务器信息确定单元,用于根据所述第二连接确定缓存服务器地址和缓存服务器端口号; 路径确定单元,用于根据所述客户端地址、客户端端口号和所述缓存服务器地址、缓存服务器端口号确定所述缓存服务器至所述客户端的数据传输路径。7.根据权利要求5或6所述的系统,其特征在于,所述第一连接确定模块包括: 信息反馈单元,用于根据连接请求报文反馈第一应答数据和第一反馈连接请求报文至所述客户端; 第一反馈信息接收单元,用于接收所述客户端发送的数据请求报文以及对所述第一反馈连接请求报文的第二应答数据,以确认建立所述第一连接。8.根据权利要求5或6所述的系统,其特征在于,所述第二连接确定模块包括: 第一信息发送单元,用于将接收的所述连接请求报文发送至所述缓存服务器; 第二反馈信息接收单元,用于接收缓存服务器反馈的第三应答数据和第二反馈连接请求报文; 第二信息发送单元,用于发送自客户端的数据请求报文以及对所述第二反馈连接请求报文的第四应答数据至缓存服务器,以确认建立所述第二连接。9.一种代理服务器,所述代理服务器设置有权利要求5-8任一项所述的跨进程服务系统。
【文档编号】H04L29/08GK105897849SQ201510973773
【公开日】2016年8月24日
【申请日】2015年12月22日
【发明人】李洪福
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1