数据传输方法和装置的制造方法_2

文档序号:9869876阅读:来源:国知局
根据所述请求参数发送的与所述第一调用请求对应的第一请求应答。
[0046]服务端接收到第一调用请求后,可以获取对应的第一请求应答,之后,服务端可以通过与客户端的连接将第一请求应答发送给客户端。
[0047]本实施例通过在第一调用请求中不携带请求参数时使得服务端根据连接与请求参数的对应关系获取请求参数,可以在发送的调用请求中不携带已经发送给服务端的请求参数,实现传输数据量的降低,降低流量浪费,并且通过降低传输的数据量提高传输速度。
[0048]图3是本申请另一实施例提出的数据传输方法的流程示意图,本实施例以客户端与服务端交互为例。本实施例的客户端用应用程序(app)表示,服务端包括接入层设备和应用层设备,分别用无线java应用服务器(Wireless Java Applicat1n Server,wjas)和移动淘宝开放平台(Mobile Taobao Open Platform,mtop)表示,其中,wjas是nginx的统一接入层,mtop是无线的网关java应用,Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/P0P3)代理服务器。
[0049]本实施例中app可以预先与wjas建立spdy连接,具体可以是spdy长连。
[0050]在建立spdy长连后,参见图3,该方法包括:
[0051]S301:app向wjas发送第二调用请求,所述第二调用请求中携带请求参数。
[0052]该步骤可以用api invoke()表示。
[0053]其中,为了与其他调用请求区分,此时发送的调用请求可以称为第二调用请求。
[0054]需要说明的是,后续流程中再次发送的调用请求称为第一调用请求,第一调用请求和第二调用请求只是为了区分这两个调用请求,并非时序上限定第一调用请求在第二调用请求之前,相反,在本实施例中,第二调用请求的时序在第一调用请求之前。
[0055]第二调用请求中携带完整的请求参数。
[0056]可选的,第二调用请求中还可以携带标识信息,例如,在报文头(head)中携带mark标记(例如,m-carry:1),表示支持参数精简传输。
[0057]S302:wjas保存spdy连接与请求参数之间的对应关系。
[0058]该步骤可以用keepContext O表示。
[0059]其中,wjas根据第二调用请求中携带的标识信息获知客户端支持参数精简传输后,可以在spdy连接的上下文中保存该对应关系。
[0060]S303:wjas将第二调用请求发送给mtop。
[0061 ] 该步骤可以表示为proxy O。
[0062]S304:mtop根据第二调用请求获取对应的第二请求应答,并将第二请求应答中发送给wjas ο
[0063]例如,mtop向 wjas 发送 response。
[0064]S305:wjas在所述第二请求应答中添加标记信息,所述标记信息用于指示所述客户端在后续发送的调用请求中不再携带已经发送的请求参数。
[0065]该步骤可以用addMarkO表示。
[0066]其中,wjas可以在第二请求应答的报文头(head)中添加上标识,例如用m-carry:1标识,以通知客户端后续可以不再携带已经发送的请求参数。
[0067]S306:将添加标记信息的第二请求应答通过所述连接发送给所述客户端。
[0068]例如,wjas向 app 发送 response。
[0069]S307:app获知不需要携带重复的请求参数。
[0070]该步骤可以用withoutContext O表示。
[0071]例如,app接收到第二请求应答后,根据第二请求应答中包含的标识可以获知不需要携带重叠的请求参数。
[0072]在后续发送调用请求时,可以执行如下步骤:
[0073]S308:app通过spdy连接向wjas发送第一调用请求,其中不携带已经发送的请求参数。
[0074]该步骤可以表示为api invoke O。
[0075]S309:wjas根据预先保存的spdy连接与请求参数的对应关系,获取与传输第一调用请求的spdy连接对应的请求参数,并将该对应的请求参数添加到所述第一调用请求中。
[0076]该步骤可以用addContext O表示。
[0077]S310:wjas将添加所述请求参数的第一调用请求发送给mtop。
[0078]例如,wjas向 mtop 发送 proxy O。
[0079]S311:mtop向wjas发送与第一调用请求对应的第一请求应答。
[0080]例如,mtop向 wjas 发送 response。
[0081]S312:wjas向app发送与所述第一调用请求对应的第一请求应答。
[0082]例如,wjas向 app 发送 response。
[0083]上述以客户端不再后续调用请求中携带已经发送的请求参数为例,可以理解的是,客户端也可以在后续调用请求中携带已经发送的请求参数,例如,在需要更新请求参数时,可以在后续流程中继续携带已经发送的请求参数,此时,服务端可以优先根据调用请求中的请求参数进行处理,例如,优先检查调用请求中是否存在请求参数,如果存在则根据该请求参数得到对应的请求应答,如果不存在则根据预先保存的连接与请求参数的对应关系获取请求参数,并根据获取的请求参数得到对应的请求应答。
[0084]本实施例基于spdy的特性的基础上,再app客户端与服务端的配合,把一些面向设备的请求重复入参信息,额外保存在spdy长连服务端的上下文当中,实现客户端后续的请求不需要传输重复的数据,服务端可直接在连接上恢复出相应的入参数据,完成业务的请求。同时也达到减少传输的流量,实现更快速的数据传输。
[0085]图4是本申请另一实施例提出的数据传输装置的结构示意图,该装置40包括:建立模块41、第一接收模块42、第一获取模块43和第一发送模块44。
[0086]建立模块41用于建立与客户端之间的连接;
[0087]其中,该连接具体可以是spdy连接,spdy是Google开发的基于传输控制协议(Transport Control Protocol,TCP)的应用层协议。
[0088]第一接收模块42用于通过所述连接,接收所述客户端发送的第一调用请求;
[0089]调用请求可以具体是调用业务应用程序(Applicat1n Program Interface,API)的调用请求,业务API是业务的抽象,例如,下单API,代表进行下单的业务操作。
[0090]为了与后续的调用请求区分,这里的调用请求可以称为第一调用请求。
[0091]第一获取模块43用于如果所述第一调用请求中不携带已经发送给服务端的请求参数,根据预先保存的连接与请求参数之间的对应关系,获取与所述连接对应的请求参数;
[0092]其中,服务端可以预先保存连接与请求参数的对应关系,之后根据该对应关系以及传输第一调用请求的参数,查找到与第一调用请求对应的请求参数。
[0093]请求参数例如为:用户访问情况的统计标识,移动设备国际识别码(Internat1nal Mobile Equipment Identity, IMEI),国际移动用户识别码(Internat1nal Mobile Subscriber Identificat1n Number, IMSI),设备标识(deviceld),应用密钥(appkey)中的一项或多项。其中,用户访问情况的统计标识可以用TTID表示。
[0094]第一发送模块44用于根据所述请求参数,向所述客户端发送与所述第一调用请求对应的第一请求应答。
[0095]其中,可以根据请求参数调用相应的服务,得到调用结果,之后将调用结果携带在第一调用请求中发送给客户端,例如,用户进行下单操作时,服务端可以根据请求参数生成相应的订单,之后可以将下单成功或失败的信息以及具体的订单信息等发送给客户端。
[0096]参见图5,该装置40还可以包括:
[0097]第二接收模块45,用于通过所述连接接收所述客户端发送的第二调用请求,所述第二调用请求中携带请求参数;
[0098]其中,为了与其他调用请求区分,此时发送的调用请求可以称为第二调用请求。
[0099]需要说明的是,第一调用请求和第二调用请求只是为了区分这两个调用请求,并非时序上限定第一调用请求在第二调用请求之前,相反,在本实施例中,第二调用请求的时序在第一调用请求之前。
[0100]第二调用请求中携带完整的请求参数。
[0101]可选的,第二调用请求中还可以携带标识信息,例如,在报文头(head)中携带mark标记(例如,m-carry:1),表示支持参数精简传输。
[0102]保存模块46,用于保存所述连接与所述请求参数之间的对应关系。
[0103]可选的,参见图5,如果所述第一调用请求中不携带已经发送给服务端的请求参数,所述第一
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1