CN108156109B - 一种服务响应方法及装置 - Google Patents
一种服务响应方法及装置 Download PDFInfo
- Publication number
- CN108156109B CN108156109B CN201611095455.1A CN201611095455A CN108156109B CN 108156109 B CN108156109 B CN 108156109B CN 201611095455 A CN201611095455 A CN 201611095455A CN 108156109 B CN108156109 B CN 108156109B
- Authority
- CN
- China
- Prior art keywords
- protocol
- client
- cloud server
- service
- protocol conversion
- 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.)
- Active
Links
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/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种服务响应方法及装置,应用于客户端,方法包括:基于所述客户端支持的第一传输协议,生成服务请求;确定所述服务请求所对应云服务器端支持的第二传输协议,并将所述服务请求转换为采用所述第二传输协议的目标请求;发送所述目标请求至所述云服务器端;接收所述云服务器端针对所述目标请求返回的采用所述第二传输协议的服务响应;将所述服务响应转换为采用所述第一传输协议的目标响应。应用本发明实施例,可使在开发过程中减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种服务响应方法及装置。
背景技术
随着互联网技术的发展,客户端通常与云服务器端配合使用,客户端向云服务器端发送请求以获得服务响应,但是,客户端使用的传输协议与云服务器端服务所使用的传输协议可能不同,例如,流式计算系统的客户端与公有日志服务端,其中,流式计算系统的客户端一般支持Kafka协议,而公有日志服务端的服务一般支持PCLS(Public Cloud LogService)传输协议。
为了在客户端向云服务器端请求服务时,云服务器端能够响应客户端的服务请求,通常是基于服务端的传输协议来开发客户端,使得客户端能够兼容云服务器端所支持的传输协议,这样客户端能够直接生成采用云服务器端的传输协议的服务请求;或基于客户端的传输协议来开发云服务器端,使得云服务器端服务能够识别客户端发送的服务请求,且可以直接生成采用客户端的传输协议的服务响应。从而实现两者的直接兼容。
应用上述方式可以实现客户端与云服务器端直接兼容,但是,这样在开发过程中需要对客户端或云服务器端的原生代码进行大量修改,使得原生代码遭到较大程度的入侵,客户端与云服务器端之间属于强耦合,相互之间的影响程度较大,给后期代码维护和版本迭代的代码开发增加难度和复杂度。
发明内容
本发明实施例的目的在于提供一种服务响应方法及装置,以使在开发过程中减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
为达到上述目的,本发明实施例公开了一种服务响应方法及装置。技术方案如下:
第一方面,本发明实施例提供了一种服务响应方法,应用于客户端,所述方法包括:
基于所述客户端支持的第一传输协议,生成服务请求;
确定所述服务请求所对应云服务器端支持的第二传输协议,并将所述服务请求转换为采用所述第二传输协议的目标请求;
发送所述目标请求至所述云服务器端;
接收所述云服务器端针对所述目标请求返回的采用所述第二传输协议的服务响应;
将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述将所述服务请求转换为采用所述第二传输协议的目标请求,包括:
调用基于所述第一传输协议API的第一协议转换程序;
通过所述第一协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述将所述服务响应转换为采用所述第一传输协议的目标响应,包括:
调用基于所述第一传输协议API的第一协议转换程序;
通过所述第一协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述调用基于所述第一传输协议API的第一协议转换程序;包括:
获得所述云服务器端的标识;
根据所述标识,从协议转换程序集合中选择基于所述第一传输协议API的第一协议转换程序;
调用所述第一协议转换程序。
优选地,所述第一传输协议为:至少两种类型的客户端支持的传输协议。
第二方面,本发明实施例提供了一种服务响应方法,应用于云服务器端,所述方法包括:
接收客户端发送的服务请求,其中,所述服务请求为:基于所述客户端支持的第一传输协议生成的服务请求;
将所述服务请求转换为采用第二传输协议的目标请求,其中,所述第二传输协议为:所述云服务器端支持的传输协议;
针对所述目标请求生成采用所述第二传输协议的服务响应;
将所述服务响应转换为采用所述第一传输协议的目标响应;
发送所述目标响应至所述客户端。
优选地,所述将所述服务请求转换为采用第二传输协议的目标请求,包括:
调用基于所述第二传输协议API的第二协议转换程序;
通过所述第二协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述将所述服务响应转换为采用所述第一传输协议的目标响应,包括:
调用基于所述第二传输协议API的第二协议转换程序;
通过所述第二协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述调用基于所述第二传输协议API的第二协议转换程序,包括:
获取所述客户端的标识;
根据所述标识,从协议转换程序集合中选择基于所述第二传输协议API的第二协议转换程序;
调用所述第二协议转换程序。
优选地,所述第一传输协议为:至少为两种类型的客户端支持的传输协议。
第三方面,本发明实施例提供了一种服务响应装置,应用于客户端,所述装置包括:
服务请求生成模块,用于基于所述客户端支持的第一传输协议,生成服务请求;
第一确定模块,用于确定所述服务请求所对应云服务器端支持的第二传输协议;
第一协议转换模块,用于将所述服务请求转换为采用所述第二传输协议的目标请求;
第一发送模块,用于发送所述目标请求至所述云服务器端;
第一接收模块,用于接收所述云服务器端针对所述目标请求返回的采用所述第二传输协议的服务响应;
第二协议转换模块,用于将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述第一协议转换模块,包括:
第一调用单元,用于调用基于所述第一传输协议API的第一协议转换程序;
第一协议转换单元,用于通过所述第一协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述第二协议转换模块,包括:
第二调用单元,用于调用基于所述第一传输协议API的第一协议转换程序;
第二协议转换单元,用于通过所述第一协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述第一调用单元和所述第二调用单元,均包括:
第一获得子单元,用于获得所述云服务器端的标识;
第一选择子单元,用于根据所述标识,从协议转换程序集合中选择基于所述第一传输协议API的第一协议转换程序;
第一调用子单元,用于调用所述第一协议转换程序。
优选地,所述第一传输协议为:至少两种类型的客户端支持的传输协议。
本发明实施例提供的
第四方面,本发明实施例提供了一种服务响应装置,应用于云服务器端,所述装置包括:
第二接收模块,用于接收客户端发送的服务请求,其中,所述服务请求为:基于所述客户端支持的第一传输协议生成的服务请求;
第三协议转换模块,用于将所述服务请求转换为采用第二传输协议的目标请求,其中,所述第二传输协议为:所述云服务器端支持的传输协议;
服务响应生成模块,用于针对所述目标请求生成采用所述第二传输协议的服务响应;
第四协议转换模块,用于将所述服务响应转换为采用所述第一传输协议的目标响应;
第二发送模块,用于发送所述目标响应至所述客户端。
优选地,所述第三协议转换模块,包括:
第三调用单元,用于调用基于所述第二传输协议API的第二协议转换程序;
第三协议转换单元,用于通过所述第二协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述第四协议转换模块,包括:
第四调用单元,用于调用基于所述第二传输协议API的第二协议转换程序;
第四协议转换单元,用于通过所述第二协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
优选地,所述第三调用单元和所述第四调用单元,包括:
第二获得子单元,用于获取所述客户端的标识;
第二选择子单元,用于根据所述标识,从协议转换程序集合中选择基于所述第二传输协议API的第二协议转换程序;
第二调用子单元,用于调用所述第二协议转换程序。
优选地,所述第一传输协议为:至少为两种类型的客户端支持的传输协议。
应用本发明的技术方案,客户端生成采用第一传输协议的服务请求;确定服务请求所对应云服务器端支持的第二传输协议,并将服务请求转换为采用第二传输协议的目标请求。通过协议转换的间接方式使从客户端发送出采用第二传输协议的服务请求,相比于直接使客户端生成采用第二传输协议的服务请求,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。客户端发送目标请求至云服务器端;接收云服务器端针对目标请求返回的采用第二传输协议的服务响应;将采用第二传输协议的服务响应转换为采用第一传输协议的目标响应,通过协议转换的间接方式使客户端接收到能够识别的云服务器端返回的服务响应,相比于使客户端直接支持第二传输协议,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。在这个过程中,云服务器端接收的目标请求和返回服务响应都是采用第二传输协议的,不需要对云服务器端进行二次开发。因此,通过这种方式实现服务响应,在开发阶段,可以减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的服务响应方法的第一种流程示意图;
图2为本发明实施例提供的服务响应方法的第二种流程示意图;
图3为本发明实施例提供的服务响应方法的第三种流程示意图;
图4为本发明实施例提供的服务响应方法的第四种流程示意图;
图5为本发明实施例提供的服务响应装置的第一种结构示意图;
图6为本发明实施例提供的服务响应装置的第二种结构示意图;
图7为本发明实施例提供的服务响应装置的第三种结构示意图;
图8为本发明实施例提供的服务响应装置的第四种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使传输协议不同的客户端和云服务器端能够兼容,并使在开发过程中减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度,本发明实施例提供了一种服务器响应方法及装置。
首先,针对本发明实施例提供的一种服务响应方法进行说明。
参照图1,图1为本发明实施例提供的服务响应方法的第一种流程示意图,该服务响应方法,应用于客户端,包括以下六个步骤:
S101、基于客户端支持的第一传输协议,生成服务请求;
客户端包括不同的类型,如流式计算系统客户端、远程控制系统客户端等。不同类型客户端也包括不同具体的客户端,如流式计算系统客户端包括Spark Streaming客户端、Storm客户端等。本步骤中,基于客户端支持的第一传输协议,生成的服务请求是采用第一传输协议的请求。
每个客户端都具有自己所支持传输协议,客户端通过自己支持的第一传输协议API生成采用第一传输协议的服务请求,例如,Spark Streaming客户端或Storm客户端均支持Kafka传输协议,均可以通过各自的Kafka API生成采用Kafka传输协议的服务请求。
需要说明的是,服务请求是关于客户端向云服务器端请求服务响应的请求,这个服务请求对应着具体的客户端与云服务器端。
S102、确定服务请求所对应云服务器端支持的第二传输协议;
具体地,客户端可以预先存储包括多个云服务器端传输协议的信息,先确定出服务请求对应的云服务器端,然后再确定这个云服务器端所支持的第二传输协议。例如,服务请求是针对提供公有云日志服务的金山云服务器端的,可以确定出第二传输协议就是金山公有云日志服务所支持的传输协议,也即金山云服务器端所支持的传输协议。
S103、将服务请求转换为采用第二传输协议的目标请求;
客户端生成的服务请求采用的协议是客户端支持的第一传输协议,云服务器端支持第二传输协议,而不支持第一传输协议,云服务器端无法识别采用第一传输协议的服务请求,在客户端将服务请求转换成采用第二传输协议的目标请求。
S104、发送目标请求至云服务器端;
将云服务器端能够识别的采用第二传输协议的目标请求发送至云服务器端。
S105、接收云服务器端针对目标请求返回的采用第二传输协议的服务响应;
云服务器端在识别出目标请求后,能够生成采用第二传输协议的服务响应,并将这个服务响应直接发送至客户端,客户端接收的是采用第二传输协议的服务响应。
S106、将服务响应转换为采用第一传输协议的目标响应。
客户端直接接收的服务响应是采用第二传输协议的,不能识别,只有将服务响应转换为采用第一传输协议的目标响应,才能识别出该目标响应。
应用图1所示实施例,客户端生成采用第一传输协议的服务请求;确定服务请求所对应云服务器端支持的第二传输协议,并将服务请求转换为采用第二传输协议的目标请求。通过协议转换的间接方式使从客户端发送出采用第二传输协议的服务请求,相比于直接使客户端生成采用第二传输协议的服务请求,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。客户端发送目标请求至云服务器端;接收云服务器端针对目标请求返回的采用第二传输协议的服务响应;将采用第二传输协议的服务响应转换为采用第一传输协议的目标响应,通过协议转换的间接方式使客户端接收到能够识别的云服务器端返回的服务响应,相比于使客户端直接支持第二传输协议,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。在这个过程中,云服务器端接收的目标请求和返回服务响应都是采用第二传输协议的,不需要对云服务器端进行二次开发。因此,通过这种方式实现服务响应,在开发阶段,可以减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
参照图2,图2为本发明实施例提供的服务响应方法的第二种流程示意图,相比于图1所示实施例,不同之处在于:
步骤S103,将服务请求转换为采用第二传输协议的目标请求,具体包括:
S1031、调用基于第一传输协议API的第一协议转换程序;
S1032、通过第一协议转换程序将服务请求转换为采用第二传输协议的目标请求;
步骤S106,将服务响应转换为采用第一传输协议的目标响应,具体包括:
S1061、调用基于第一传输协议API的第一协议转换程序;
S1062、通过第一协议转换程序将服务响应转换为采用第一传输协议的目标响应。
需要说明的是,采用调用第一协议转换程序的方式使在服务请求响应过程中嵌入协议转换程序,能够使在不调用第一协议转换程序的情况下,可以保留第一传输协议API原有的功能,即可以发送出生成的采用第一传输协议的服务请求。例如,针对支持Kafka传输协议的客户端,通过对Kafka核心模块Consumer部分做少量修改,引入第一协议转换程序的入口,第一协议转换程序可以是Java Library,这样通过调用第一协议转换程序可以将第一协议转换程序嵌入到服务响应的流程中。
本实施例中,调用基于第一传输协议API的第一协议转换程序,包括以下三个步骤:
(1)、获得云服务器端的标识;
客户端可以对接的云服务器端可以有很多,例如,金山云服务器端、阿里云服务器端、百度云服务器端等。具体实施时,可以通过设置环境变量,通过环境变量的赋值来获得服务器端的标识,例如,ServiceEnv="kls",ServiceEnv是环境变量名称,kls是金山云内部日志服务的简写,kls可以认为是金山云服务器端的标识。
(2)、根据标识,从协议转换程序集合中选择基于第一传输协议API的第一协议转换程序;
本领域技术人员可以理解的是,协议转换程序集合中存储的是关于第一传输协议与每个云服务器端的第二传输协议进行转换的程序集合,根据标识选择的第一协议转换程序是与客户端和云服务器端对应的,例如,如果标识是金山云服务器端的标识,则第一协议转换程序是涉及关于第一传输协议与金山云服务器端支持的第二传输协议之间的协议转换程序。
当供客户端请求服务的云服务器端有多个的情况下,根据标识能够选择出需要的第一协议转换程序。
(3)、调用第一协议转换程序。
通过上述根据标识选择第一协议转换程序,再调用该程序,能完成将采用第一传输协议的服务请求转换成采用确定的标识对应的云服务器端对应的第二传输协议的目标请求,也能将云服务器端返回的服务响应转换成采用第一传输协议的目标响应。从而能够进一步实现客户端与多个云服务器端的兼容,提高客户端服务请求的可选择性。
参照图3,图3为本发明实施例提供的服务响应方法的第三种流程示意图,该服务响应方法,应用于云服务器端,该方法包括以下五个步骤:
S301、接收客户端发送的服务请求,其中,服务请求为:基于客户端支持的第一传输协议生成的服务请求;
云服务器端接收客户端发送的服务请求,这个服务请求是采用客户端支持的传输协议的。云服务器端有多种类型,向客户端提供不同服务的云服务器端,不同供应商提供同一种服务的云服务器端,不同的云服务器端支持的传输协议可能不同,例如,提供公有云日志服务的金山云服务器端,提供公有云日志服务的百度云服务器端。
S302、将服务请求转换为采用第二传输协议的目标请求,其中,第二传输协议为:云服务器端支持的传输协议;
云服务器端接收到服务请求需要在云服务器端转换成采用第二传输协议的目标请求,才能使云服务器端识别该请求。
S303、针对目标请求生成采用第二传输协议的服务响应;
S304、将服务响应转换为采用第一传输协议的目标响应;
在云服务器端将采用第二传输协议的服务响应转换成采用第一传输协议的目标响应,这个目标响应是客户端能够识别的。
S305、发送目标响应至客户端。
应用图3所示实施例,云服务器端接收客户端生成采用第一传输协议的服务请求;将服务请求转换为采用云服务器端支持的第二传输协议的目标请求。通过协议转换的间接方式接收可以识别的从客户端发送出采用第一传输协议的服务请求,相比于直接使服务器端支持第一传输协议,在开发阶段,不需要大量地修改服务器端的原生代码,对服务器端的原生代码入侵小。服务器端针对目标请求生成采用第二传输协议的服务响应,将服务响应转换为采用第一传输协议的目标响应,发送目标响应至客户端,客户端最终接收的是采用第一传输协议的目标响应,通过协议转换的间接方式使服务器端能够发送出采用第一传输协议的服务响应,相比于使服务器端直接支持第一传输协议,在开发阶段,不需要大量地修改服务器端的原生代码,对服务器端的原生代码入侵小。在整个过程中,客户端生成的服务请求和接收到的目标响应都是采用第一传输协议的,因此,通过这种方式实现服务响应,在开发阶段,可以减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
参照图4,图4为本发明实施例提供的服务响应方法的第四种流程示意图,相比于图3所示实施例,不同之处在于:
步骤S302,将服务请求转换为采用第二传输协议的目标请求,具体包括:
S3021、调用基于第二传输协议API的第二协议转换程序;
S3022、通过第二协议转换程序将服务请求转换为采用第二传输协议的目标请求;
步骤S304,将服务响应转换为采用第一传输协议的目标响应,包括:
S3041、调用基于第二传输协议API的第二协议转换程序;
S3042、通过第二协议转换程序将服务响应转换为采用第一传输协议的目标响应。
需要说明的是,采用调用第二协议转换程序的方式使在服务响应过程中嵌入协议转换程序,能够使在不调用第二协议转换程序的情况下,可以保留第二传输协议API原有的功能,即可以发送出生成的采用第二传输协议的服务响应。
本实施例中,调用基于第二传输协议API的第二协议转换程序,包括:
(1)、获取客户端的标识;
具体实施时,客户端的标识是与其所支持的第一传输协议是对应的,根据客户端的标识能够识确定出其所支持的第一传输协议。可以通过设置环境变量,通过环境变量的赋值来获得客户端的标识,例如,ClientEnv="Storm",ClientEnv是环境变量名称,Storm是Storm客户端,Storm可以认为是客户端的标识。
(2)、根据标识,从协议转换程序集合中选择基于第二传输协议API的第二协议转换程序;
本领域技术人员可以理解的是,协议转换程序集合中存储的是关于客户端支持的每个第一传输协议与该云服务器端的第二传输协议进行转换的程序集合,根据标识选择的第二协议转换程序是与客户端和云服务器端对应的,例如,如果标识是Storm客户端,本云服务器端是金山云服务器端,提供公有云日志服务,则第二协议转换程序可以是涉及关于Kafka传输协议与金山公有云日志服务传输协议之间的协议转换程序。
当需要向不同的客户端提供服务时,根据标识能够选择出需要的第二协议转换程序,以使云服务器端能够与不同的客户端兼容。
(3)、调用第二协议转换程序。
通过上述根据标识选择第二协议转换程序,再调用该程序,将与云服务器端的传输协议不兼容的客户端的服务请求转换成采用云服务器端支持的传输协议的目标请求,并将云服务器端生成的服务响应,转成采用客户端所支持的传输协议的目标响应。从而能够进一步实现,多个客户端与云服务器端的兼容,增宽客户端服务请求的可选择性。
在本实施例中,本领域技术人员可以理解的是,通过设置第一传输协议为:至少两种类型的客户端支持的传输协议。在这种情况下,针对同一个第一协议转换程序就可以适用不同的客户端适用。从整体上来说,可以增大本服务响应方法的适用范围。例如,流式计算系统客户端大多都兼容Kafka传输协议,如果第一传输协议是Kafka传输协议,则该方法可以适用于Spark Streaming客户端,也适用于Storm客户端。
对于服务响应方法,示例性的,公有云日志服务提供使用类Kafka的消息发布订阅服务,此类服务常与流式计算系统客户端配合使用。流式计算系统大多支持Kafka传输协议,公有云日志服务支持PCLS(Public Cloud Log Service)传输协议。第一协议转换程序为Java Library,可动态加载,通过对Kafka核心模块Consumer部分做修改,从而实现设置第一协议转换程序的入口,通过这个入口调用第一协议转换程序至服务响应的流程中。具体地,根据环境变量来确定是否调用第一协议转换程序,如果环境变量是金山云服务端,可以调用与金山云服务端对应的第一协议转换程序,如果环境变量的赋值是空,则不调用第一协议转换程序。第一协议转换程序是基于Kafka API做协议转换的,为了便于管理和维护,Kafka API可以设置四个,分别与以下四对转换对象对应,第一对:FetchRequest(消息内容请求)和FetchResponse(消息内容返回);第二对:OffsetC_ommitRequest(Consumer消费进度提交请求)和OffsetCommitRespo_nse(Consum_er消费进度提交返回);第三对:OffsetCommitRequest(Consumer消费进度提交请求)和OffsetCommitRespo_nse(Consumer消费进度提交返回);第四对:Offse_tFetchRequest(Consumer已消费进度获取请求),OffsetFetchResponse(Consumer消费进度返回)。通过第一协议转换程序将每一对中采用流式计算系统传输协议的请求转换为采用PCLS传输协议的请求;将每一对中采用PCLS传输协议的返回转换为采用流式计算系统传输协议的返回。
流式计算系统客户端通过Kafka API生成向提供公有云日志服务的云服务器端发起的服务请求,该服务请求采用Kafka传输协议。调用第一协议转换程序后,将采用Kafka传输协议的服务请求转换为采用PCLS传输协议的请求,并发送至金山云服务器端,金山云服务器端返回响应,该响应是采用PCLS传输协议的,调用第一协议转换程序后,将该响应转换为采用Kafka传输协议的响应,实现流式计算系统与公有云日志服务的间接兼容,完成服务响应过程。
针对上述实例,需要说明的是,在流式计算系统客户端调用第一协议转换程序,且Kafka传输协议时社区较流行的流式计算系统均兼容的传输协议,在此基础上,将Kafka传输协议和PCLS传输协议进行转换,实现流式计算系统与公有云日志服务的无缝对接。社区流式计算系统版本迭代过程中,对Kafka传输协议均有良好的支持,利用Kafka传输协议作为兼容协议层,不需要频繁的随流式计算系统的版本迭代迭代兼容协议层,只需要对较大改进的版本进行更新兼容协议层,例如,超过预定数量的Kafka API的语义发生变化,则可认为是发生了较大改进,预定数量可以是五分之三、五分之四等预设的值。
相应于方法实施例,本发明实施例还提供了一种服务响应装置,下面对一种服务响应装置进行介绍。
参照图5,图5为本发明实施例提供的服务响应装置的第一种结构示意图,该服务响应装置,应用于客户端,该装置包括:
服务请求生成模块51,用于基于客户端支持的第一传输协议,生成服务请求;
第一确定模块52,用于确定该服务请求所对应云服务器端支持的第二传输协议;
第一协议转换模块53,用于将该服务请求转换为采用第二传输协议的目标请求;
第一发送模块54,用于发送该目标请求至云服务器端;
第一接收模块55,用于接收云服务器端针对该目标请求返回的采用第二传输协议的服务响应;
第二协议转换模块56,用于将服务响应转换为采用第一传输协议的目标响应。
应用图5所示实施例,客户端生成采用第一传输协议的服务请求;确定服务请求所对应云服务器端支持的第二传输协议,并将服务请求转换为采用第二传输协议的目标请求。通过协议转换的间接方式使从客户端发送出采用第二传输协议的服务请求,相比于直接使客户端生成采用第二传输协议的服务请求,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。客户端发送目标请求至云服务器端;接收云服务器端针对目标请求返回的采用第二传输协议的服务响应;将采用第二传输协议的服务响应转换为采用第一传输协议的目标响应,通过协议转换的间接方式使客户端接收到能够识别的云服务器端返回的服务响应,相比于使客户端直接支持第二传输协议,在开发阶段,不需要大量地修改客户端的原生代码,对客户端原生代码入侵小。在这个过程中,云服务器端接收的目标请求和返回服务响应都是采用第二传输协议的,不需要对云服务器端进行二次开发。因此,通过这种方式实现服务响应,在开发阶段,可以减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
参照图6,图6为本发明实施例提供的服务响应装置的第二种结构示意图,相比于图5所示实施例,不同之处在于:
第一协议转换模块53,具体包括:
第一调用单元531,用于调用基于第一传输协议API的第一协议转换程序;
第一协议转换单元532,用于通过第一协议转换程序将服务请求转换为采用第二传输协议的目标请求;
第二协议转换模块56,具体包括:
第二调用单元561,用于调用基于第一传输协议API的第一协议转换程序,
第二协议转换单元562,用于通过第一协议转换程序将服务响应转换为采用第一传输协议的目标响应。
其中,第一调用单元531和第二调用单元561,均可以包括:
第一获得子单元(图中未示出),用于获得云服务器端的标识;
第一选择子单元(图中未示出),用于根据标识,从协议转换程序集合中选择基于第一传输协议API的第一协议转换程序;
第一调用子单元(图中未示出),用于调用第一协议转换程序。
本实施例中,第一传输协议为:至少两种类型的客户端支持的传输协议。
参照图7,图7为本发明实施例提供的服务响应装置的第三种结构示意图,该服务响应装置,应用于云服务器端,该装置包括:
第二接收模块71,用于接收客户端发送的服务请求,其中,服务请求为:基于客户端支持的第一传输协议生成的服务请求;
第三协议转换模块72,用于将服务请求转换为采用第二传输协议的目标请求,其中,第二传输协议为:云服务器端支持的传输协议;
服务响应生成模块73,用于针对目标请求生成采用第二传输协议的服务响应;
第四协议转换模块74,用于将服务响应转换为采用第一传输协议的目标响应;
第二发送模块75,用于发送目标响应至客户端。
应用图7所示实施例,云服务器端接收客户端生成采用第一传输协议的服务请求;将服务请求转换为采用云服务器端支持的第二传输协议的目标请求。通过协议转换的间接方式接收可以识别的从客户端发送出采用第一传输协议的服务请求,相比于直接使服务器端支持第一传输协议,在开发阶段,不需要大量地修改服务器端的原生代码,对服务器端的原生代码入侵小。服务器端针对目标请求生成采用第二传输协议的服务响应,将服务响应转换为采用第一传输协议的目标响应,发送目标响应至客户端,客户端最终接收的是采用第一传输协议的目标响应,通过协议转换的间接方式使服务器端能够发送出采用第一传输协议的服务响应,相比于使服务器端直接支持第一传输协议,在开发阶段,不需要大量地修改服务器端的原生代码,对服务器端的原生代码入侵小。在整个过程中,客户端生成的服务请求和接收到的目标响应都是采用第一传输协议的,因此,通过这种方式实现服务响应,在开发阶段,可以减少对客户端、云服务器端的原生代码的入侵,便于降低后期代码维护和版本迭代的代码开发的难度和复杂度。
参照图8,图8为本发明实施例提供的服务响应装置的第四种结构示意图,相比于图7所示实施例,不同之处在于:
第三协议转换模块72,具体包括:
第三调用单元721,用于调用基于第二传输协议API的第二协议转换程序;
第三协议转换单元722,用于通过第二协议转换程序将服务请求转换为采用第二传输协议的目标请求;
第四协议转换模块74,具体包括:
第四调用单元741,用于调用基于第二传输协议API的第二协议转换程序;
第四协议转换单元742,用于通过第二协议转换程序将服务响应转换为采用第一传输协议的目标响应。
其中,第三调用单元721和第四调用单元741,均可以包括:
第二获得子单元(图中未示出),用于获取客户端的标识;
第二选择子单元(图中未示出),用于根据标识,从协议转换程序集合中选择基于第二传输协议API的第二协议转换程序;
第二调用子单元(图中未示出),用于调用第二协议转换程序。
本实施例中,第一传输协议为:至少为两种类型的客户端支持的传输协议。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种服务响应方法,应用于客户端,其特征在于,所述方法包括:
基于所述客户端支持的第一传输协议,生成服务请求;
确定所述服务请求所对应云服务器端支持的第二传输协议,并将所述服务请求转换为采用所述第二传输协议的目标请求;
发送所述目标请求至所述云服务器端;
接收所述云服务器端针对所述目标请求返回的采用所述第二传输协议的服务响应;
将所述服务响应转换为采用所述第一传输协议的目标响应;
客户端预先存储包括多个云服务器端传输协议的信息;
所述确定所述服务请求所对应云服务器端支持的第二传输协议,包括:
确定所述服务请求对应的云服务器端;
从预先存储包括多个云服务器端传输协议的信息中,确定所述服务请求对应的云服务器端所支持的第二传输协议。
2.根据权利要求1所述的方法,其特征在于,
所述将所述服务请求转换为采用所述第二传输协议的目标请求,包括:
调用基于所述第一传输协议API的第一协议转换程序;
通过所述第一协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述将所述服务响应转换为采用所述第一传输协议的目标响应,包括:
调用基于所述第一传输协议API的第一协议转换程序;
通过所述第一协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
3.根据权利要求2所述的方法,其特征在于,所述调用基于所述第一传输协议API的第一协议转换程序;包括:
获得所述云服务器端的标识;
根据所述标识,从协议转换程序集合中选择基于所述第一传输协议API的第一协议转换程序;
调用所述第一协议转换程序。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一传输协议为:至少两种类型的客户端支持的传输协议。
5.一种服务响应方法,应用于云服务器端,其特征在于,所述方法包括:
接收客户端发送的服务请求,其中,所述服务请求为:基于所述客户端支持的第一传输协议生成的服务请求;
将所述服务请求转换为采用第二传输协议的目标请求,其中,所述第二传输协议为:所述云服务器端支持的传输协议;
针对所述目标请求生成采用所述第二传输协议的服务响应;
将所述服务响应转换为采用所述第一传输协议的目标响应;
发送所述目标响应至所述客户端;
所述将所述服务请求转换为采用第二传输协议的目标请求,包括:
调用基于所述第二传输协议API的第二协议转换程序;
通过所述第二协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述将所述服务响应转换为采用所述第一传输协议的目标响应,包括:
调用基于所述第二传输协议API的第二协议转换程序;
通过所述第二协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应;
所述调用基于所述第二传输协议API的第二协议转换程序,包括:
获取所述客户端的标识;
根据所述标识,从协议转换程序集合中选择基于所述第二传输协议API的第二协议转换程序;协议转换程序集合中存储的是关于客户端支持的每个第一传输协议与该云服务器端的第二传输协议进行转换的程序集合,根据标识选择的第二协议转换程序是与客户端和云服务器端对应的;
调用所述第二协议转换程序。
6.根据权利要求5所述的方法,其特征在于,所述第一传输协议为:至少为两种类型的客户端支持的传输协议。
7.一种服务响应装置,应用于客户端,其特征在于,所述装置包括:
服务请求生成模块,用于基于所述客户端支持的第一传输协议,生成服务请求;
第一确定模块,用于确定所述服务请求所对应云服务器端支持的第二传输协议;
第一协议转换模块,用于将所述服务请求转换为采用所述第二传输协议的目标请求;
第一发送模块,用于发送所述目标请求至所述云服务器端;
第一接收模块,用于接收所述云服务器端针对所述目标请求返回的采用所述第二传输协议的服务响应;
第二协议转换模块,用于将所述服务响应转换为采用所述第一传输协议的目标响应;
客户端预先存储包括多个云服务器端传输协议的信息;
所述第一确定模块,具体用于确定所述服务请求对应的云服务器端;
从预先存储包括多个云服务器端传输协议的信息中,确定所述服务请求对应的云服务器端所支持的第二传输协议。
8.根据权利要求7所述的装置,其特征在于,
所述第一协议转换模块,包括:
第一调用单元,用于调用基于所述第一传输协议API的第一协议转换程序;
第一协议转换单元,用于通过所述第一协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述第二协议转换模块,包括:
第二调用单元,用于调用基于所述第一传输协议API的第一协议转换程序;
第二协议转换单元,用于通过所述第一协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应。
9.根据权利要求8所述的装置,其特征在于,所述第一调用单元和所述第二调用单元,均包括:
第一获得子单元,用于获得所述云服务器端的标识;
第一选择子单元,用于根据所述标识,从协议转换程序集合中选择基于所述第一传输协议API的第一协议转换程序;
第一调用子单元,用于调用所述第一协议转换程序。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述第一传输协议为:至少两种类型的客户端支持的传输协议。
11.一种服务响应装置,应用于云服务器端,其特征在于,所述装置包括:
第二接收模块,用于接收客户端发送的服务请求,其中,所述服务请求为:基于所述客户端支持的第一传输协议生成的服务请求;
第三协议转换模块,用于将所述服务请求转换为采用第二传输协议的目标请求,其中,所述第二传输协议为:所述云服务器端支持的传输协议;
服务响应生成模块,用于针对所述目标请求生成采用所述第二传输协议的服务响应;
第四协议转换模块,用于将所述服务响应转换为采用所述第一传输协议的目标响应;
第二发送模块,用于发送所述目标响应至所述客户端;
所述第三协议转换模块,包括:
第三调用单元,用于调用基于所述第二传输协议API的第二协议转换程序;
第三协议转换单元,用于通过所述第二协议转换程序将所述服务请求转换为采用所述第二传输协议的目标请求;
所述第四协议转换模块,包括:
第四调用单元,用于调用基于所述第二传输协议API的第二协议转换程序;
第四协议转换单元,用于通过所述第二协议转换程序将所述服务响应转换为采用所述第一传输协议的目标响应;
所述第三调用单元和所述第四调用单元,包括:
第二获得子单元,用于获取所述客户端的标识;
第二选择子单元,用于根据所述标识,从协议转换程序集合中选择基于所述第二传输协议API的第二协议转换程序;协议转换程序集合中存储的是关于客户端支持的每个第一传输协议与该云服务器端的第二传输协议进行转换的程序集合,根据标识选择的第二协议转换程序是与客户端和云服务器端对应的;
第二调用子单元,用于调用所述第二协议转换程序。
12.根据权利要求11所述的装置,其特征在于,所述第一传输协议为:至少为两种类型的客户端支持的传输协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095455.1A CN108156109B (zh) | 2016-12-02 | 2016-12-02 | 一种服务响应方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095455.1A CN108156109B (zh) | 2016-12-02 | 2016-12-02 | 一种服务响应方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108156109A CN108156109A (zh) | 2018-06-12 |
CN108156109B true CN108156109B (zh) | 2021-04-30 |
Family
ID=62469918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611095455.1A Active CN108156109B (zh) | 2016-12-02 | 2016-12-02 | 一种服务响应方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108156109B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448933B (zh) * | 2019-09-02 | 2022-12-23 | 浙江宇视科技有限公司 | 一种自适应兼容平台互联域间协议的方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155190A (zh) * | 2006-09-29 | 2008-04-02 | 戴尔产品有限公司 | 协议适配器动态装载的系统与方法 |
US7406525B2 (en) * | 2001-02-19 | 2008-07-29 | Sun Microsystems, Inc. | Content provider and method for a computer system |
CN101322109A (zh) * | 2006-03-07 | 2008-12-10 | 索尼株式会社 | 信息处理设备和信息处理方法以及计算机程序 |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
-
2016
- 2016-12-02 CN CN201611095455.1A patent/CN108156109B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406525B2 (en) * | 2001-02-19 | 2008-07-29 | Sun Microsystems, Inc. | Content provider and method for a computer system |
CN101322109A (zh) * | 2006-03-07 | 2008-12-10 | 索尼株式会社 | 信息处理设备和信息处理方法以及计算机程序 |
CN101155190A (zh) * | 2006-09-29 | 2008-04-02 | 戴尔产品有限公司 | 协议适配器动态装载的系统与方法 |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108156109A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11556366B2 (en) | Container login method, apparatus, and storage medium | |
US8352962B2 (en) | Managing application interactions using distributed modality components | |
CN1298151C (zh) | 用于获取网格中的状态信息的方法和设备 | |
CN101405723B (zh) | 初始动态呈现控件数据估计 | |
US11711434B2 (en) | Information transmission method and device | |
CN109756559B (zh) | 面向嵌入式机载系统分布式数据分发服务的构建及使用方法 | |
CN107872437B (zh) | 一种用于业务请求的方法、装置及服务器 | |
CN111901157B (zh) | 一种基于k8s的服务部署方法、装置、设备、介质 | |
CN102098330A (zh) | 基于json数据格式的异步传输方法、装置及系统 | |
CN111028839A (zh) | 一种智能家居控制方法、装置及电子设备 | |
JP2004310371A (ja) | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 | |
CN104168294A (zh) | 跨开放平台用户间的即时通讯方法、系统及装置 | |
CN103701867A (zh) | 一种处理调用请求的方法、系统及中心服务器 | |
CN101667139A (zh) | 基于集合类型对象的服务程序调用方法、装置及系统 | |
CN108156109B (zh) | 一种服务响应方法及装置 | |
CN108156009A (zh) | 一种服务调用方法及装置 | |
EP1754145B1 (en) | Method and apparatus for supporting multiple versions of a web services protocol | |
CN110334063B (zh) | 文件系统的操作方法、装置、设备及计算机可读存储介质 | |
US7860924B2 (en) | Method and system for supporting multiple versions of web services standards | |
KR20200046316A (ko) | 웹 어플리케이션 서버, 사용자 요청 처리 방법 및 통합 요청 처리 방법 | |
US20190014179A1 (en) | Bluetooth low energy devices | |
CN114040403A (zh) | 设备同步方法、装置及系统 | |
CN113992693A (zh) | 一种数据的传输方法及系统 | |
US7603407B2 (en) | Method and system for registering binary data | |
CN112084245A (zh) | 基于微服务架构的数据管理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |