CN109815025B - 一种业务模型调用方法、装置及存储介质 - Google Patents
一种业务模型调用方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109815025B CN109815025B CN201811543829.0A CN201811543829A CN109815025B CN 109815025 B CN109815025 B CN 109815025B CN 201811543829 A CN201811543829 A CN 201811543829A CN 109815025 B CN109815025 B CN 109815025B
- Authority
- CN
- China
- Prior art keywords
- model
- rpc
- request message
- service model
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000004044 response Effects 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种业务模型调用方法、装置及存储介质,该方法包括接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容;响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;向客户端返回响应结果,该响应结果包括该目标业务模型。本申请实施例通过将运行在服务器上的至少一个业务模型的模型请求内容封装为RPC对象,使得服务器可以根据RPC请求消息中携带的模型请求内容,利用预先注册的与该模型请求内容关联的RPC对象,实现与该模型请求内容对应的目标业务模型的调用,避免了软件工程师对业务模型进行编码转换,提高了业务模型调用效率。
Description
技术领域
本申请一般涉及计算机技术领域,具体涉及一种业务模型调用方法、装置及存储介质。
背景技术
随着机器学习的不断发展,Hadoop及Spark等生态圈的逐渐完善,越来越多的机器学习模型采用Hadoop及Spark等生态圈来实现。
目前,在机器学习的业务模型实现过程中,首先需要数据分析师及算法工程师采用一定的编程语言进行业务模型的构建及调试,在业务模型的性能稳定后,则进一步需要软件工程师将该业务模型转换为计算机可以普遍识别的语言,以完成业务模型的落地。
在软件工程师进行业务模型的编码转换时,需要软件工程师人力实现,并当业务模型出现调整或优化时,需要重新进行编码,从而使得工作量大,业务模型落地调用难度系数大,效率低。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种业务模型调用方法、装置及存储介质,以解决的业务模型通过编码转换进行落地时,工作量大,效率低的问题。
第一方面,本申请实施例提供一种业务模型调用方法,该方法包括:
接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容;
响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;
向客户端返回响应结果,该响应结果包括该目标业务模型。
第二方面,本申请实施例提供一种业务模型调用方法,该方法包括:
向服务器发送远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得该服务器利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;
接收该服务器返回的响应结果,该响应结果包括该目标业务模型。
第三方面,本申请提供一种业务模型调用装置,该装置包括:
接收模块,用于接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容;
调用模块,用于响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;
返回模块,用于向客户端返回响应结果,该响应结果包括该目标业务模型。
第四方面,本申请实施例提供一种业务模型调用装置,该装置包括:
发送模块,用于向服务器发送远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得该服务器利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;
接收模块,用于接收该服务器返回的响应结果,该响应结果包括该目标业务模型。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如第一方面所述的方法或第二方面所述的方法
综上,本申请实施例提供的业务模型调用方法、装置及存储介质,该方法通过将运行在服务器上的至少一个业务模型的模型请求内容封装为RPC对象,使得服务器在接收到客户端发送的RPC请求消息后,可以根据该RPC请求消息中携带的模型请求内容,利用预先注册的与该模型请求内容关联的RPC对象,实现与该模型请求内容对应的目标业务模型的调用,降低了业务模型落地的复杂度,避免了软件工程师对业务模型进行编码转换,减少了软件工程师的工作量,提高了业务模型调用效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的业务模型调用方法的流程示意图;
图2为本申请又一实施例提供的业务模型调用方法的流程示意图;
图3为本申请再一实施例提供的业务模型调用方法的流程示意图;
图4为本申请再一实施例提供的业务模型调用方法的流程示意图;
图5为本申请实施例提供的业务模型调用的系统架构示意图;
图6为本申请实施例提供的业务模型调用装置的结构示意图;
图7为本申请又一实施例提供的业务模型调用装置的结构示意图;
图8为本申请的实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与申请相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
可以理解,本申请实施例提供的业务模型调用方法及装置,涉及服务器及客户端的交互。并且,可以适用于至少一个客户端与一个服务器的交互的场景,或者,还可以适用于至少一个客户端与多个服务器交互的场景中,即通过将待调用的业务模型布置在每台服务上,其中任一台当前处于空闲状态的服务器都可以为客户端提供服务,从而可以实现业务模型的并发调用。
还可以理解,在上述两个场景下,每台服务器上可以设置有模型层及控制层。该模型层中存储有至少一个业务模型,该控制层可以基于客户端的调用请求,实现模型层中业务模型的调用。
在将每个业务模型存储到服务器的模型层中时,可以将每个业务模型的模型请求内容及结果相应格式封装为远程过程调用协议(Remote Procedure Call Protocol,RPC)对象。并且,将每个业务模型的RPC对象在服务器的控制层进行注册,使得控制层可以保存有每个业务模型的RPC对象,实现相应业务模型的调用。
还可以理解,客户端运行有一个工具包,在该工具包中包括有每个业务模型的RPC对象以及调用工具,从而可以在后续调用中,使得用户可以从工具包查看待调用的业务模型的模型请求内容等相关信息,以实现业务模型的调,避免软件工程师对每个业务模型的编码转换。
可以理解,本申请实施例涉及的RPC,是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。RPC假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。本申请实施例涉及的RPC对象通常由两个不同结构组成,即模型请求内容及结果相应格式。模型请求内容通常包括业务模型名称、鉴权令牌及业务模型请求参数;结果相应格式通常包括状态码、错误消息及结果集等。该状态码用于指示远程调用成功与否,在调用成功时错误消息为空,结果集可以由不同的业务模型自定义。
为了便于理解和说明,下面利用图1至图8详细解释说明本申请实施例提供的业务模型调用方法、装置及存储介质。
图1所示为本申请的实施例提供的业务模型调用方法的流程示意图。
可以理解,该方法可以由服务器执行,该服务器上可以保存有多个业务模型,每个业务模型的RPC对象在该服务器的控制层完成注册。如图1所示,该方法包括:
S110,服务器接收远程过程调用协议RPC请求消息。
S120,响应于该RPC请求消息,服务器利用与模型请求内容关联的预先创建的RPC对象来调用目标业务模型。
S130,服务器向客户端返回响应结果。
具体的,服务器可以接收到客户端发送的RPC请求消息,该RPC请求消息中包括需要调用的目标业务模型的模型请求内容,如模型名称、鉴权令牌及业务模型请求参数等。该服务器接收到该RPC请求消息后,可以对该RPC请求消息进行解析,以得到该RPC请求消息中的内容,并关联到预先在控制层注册的RPC对象中的模型请求内容。进而可以响应该RPC请求消息,利用关联到的业务模型,在模型层调用该目标业务模型。最后将该目标业务模型封装在响应结果中,并返回给客户端。
本申请实施的业务模型调用,通过将业务模型的请求内容及结果响应格式封装成RPC对象,并在服务器的控制层上注册,从而可以在接收到客户端发送的携带模型请求内容的调用业务模型的RPC请求消息后,可以基于该RPC请求消息实现目标业务模型的调用,避免了代码工程师对业务模型的编码转换,降低业务模型落地的复杂度,减少了工作量,提高了调用效率。
图2所示为本申请又一实施例提供的业务模型调用方法的流程示意图。
可以理解,该方法可以由客户端执行,该客户端上可以运行有工具包,该工具包中包括有多个业务模型的RPC对象,如图2所示,该方法包括:
S210,客户端向服务器发送远程过程调用协议RPC请求消息。
S220,客户端接收该服务器返回的响应结果。
具体的,本申请实施例中,客户端可以将业务模型的调用请求内容封装在RPC请求消息中,并向服务器发送该RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型。使得服务器可以根据该RPC请求消息,解析得到目标业务模型的模型请求内容,并利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。并在服务器端实现目标业务模型的调用后,该客户端可以接收到服务器返回的响应结果,以得到需要调用的业务模型。
本申请实施的业务模型调用,通过将业务模型的请求内容及结果响应格式封装成RPC对象,并在服务器的控制层上注册,从而使得客户端可以发送调用业务模型的RPC请求消息,使得服务器基于该RPC请求消息实现目标业务模型的调用,避免了代码工程师对业务模型的编码转换,降低业务模型落地的复杂度,减少了工作量,提高了调用效率。
为了便于理解,下面结合图3、图4及图5详细解释本申请实施例的业务模型调用方法在不同场景下的使用。图3所示为本申请再一实施例提供的业务模型的调用方法。由图3可知,该实施例可以用于一台服务器的场景下,由服务器及客户端交互执行。该方法可以包括:
S311,客户端查找RPC对象。
S312,客户端基于该RPC对象及调用地址生成该RPC请求消息。
S313,客户端对该RPC请求消息进行序列化。
S320,向服务器发送RPC请求消息。
具体的,本申请实施例提供的业务模型调用,在该客户端加载一个工具包,该工具包中存储有每个业务模型对应封装为RPC对象的模型请求内容、结果相应格式及调用工具类。该调用工具类可以为配置文件读取工具类、hdfs文件传输客户端及请求/相应对象基础类。当某个用户需要调用某个业务模型时,首先可以查看该工具包中该目标业务模型的RPC对象,如业务模型名称、鉴权令牌及业务模型请求参数,然后将上述内容输入到业务模型调用界面的相应组件内,并输入业务模型所在的服务器的IP地址及端口等调用地址。
上述的所有输入信息可以生成一个RPC请求消息,进而可以对输入的RPC请求消息中的内容进行序列化,即将上述RPC请求消息中的内容自动转换为计算机可以识别的二进制代码。
在对RPC请求消息序列化后,可以将该RPC请求消息发送给服务器,以调用业务模型。
S330,服务器接收RPC请求消息。
具体的,该实例的场景下,即系统中只配置有一台服务器时,可以在服务器接收到客户端发送的二进制的RPC请求消息后,对该二进制的RPC请求消息进行反序列化,得到RPC请求消息中的模型请求内容。即在S330后直接执行S340。
S340,服务器或第二服务器对RPC请求消息进行反序列化。
S341,利用该鉴权令牌对该RPC请求消息的发送方身份进行验证。
具体的,当前服务器可以对接收到的RPC请求消息进行反序列化处理,得到RPC请求消息中的鉴权令牌、业务模型的模型名称及请求参数。进而可以利用该鉴权令牌对该RPC请求消息的发送方身份进行验证。即S341。
例如,可以将反序列化得到的RPC请求消息中的鉴权令牌与控制层中的该业务模型的RPC对象中鉴权令牌作比较,如果一致,则说明发送该RPC请求消息的用户身份合法,则可以执行S350。否则,验证失败,可以向客户端返回鉴权失败的消息。
S350,响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。
S351,对该响应结果进行序列化处理。
S352,向该客户端返回序列化处理之后的该响应结果。
具体的,可以响应于该RPC请求消息,利用反序列化后得到的与该模型请求内容关联的RPC对象来调用目标业务模型。即在控制层中的RPC对象中查找与该模型名称及模型参数一致的业务模型,然后从模型层调用该业务模型。进一步地,可以将调用的结果进行序列化,即可以根据RPC对象中的结果响应格式,将业务模型封装在响应结果中,并对相应结果进行序列化,然后向客户端返回序列化后的结果。
可以理解,该响应结果中还可以包括状态码,来指示业务模型的调用是否成功。
S360,客户端接收服务器返回的响应结果。
S361,客户端对该响应结果进行反序列化。
具体的,客户端可以接收由服务器返回的响应结果,由上述可知,该响应结果是直接由该服务器生成。该响应结果包括目标业务模型,且为序列化的结果。因此,在接收到该响应结果后,可以利用工具包中的RPC对象中的结果响应格式对该响应结果进行反序列,以得到目标业务模型。
本申请实施例提供的业务模型调用方法,考虑主流的Hadoop及Spark框架对外默认提供的Sql接口远程交互调用,当业务复杂时,需要人为的对调用结果进行序列化,并且需要对业务模型进行编码转换,通过将业务模型的模型请求内容及结果响应格式封装成RPC对象,可以在调用业务模型时,基于RPC协议,实现了调用请求及结果的自动序列化,且避免了人工对业务模型的编码及业务模型调用过程中的交互消息的序列化,降低了复杂度,提高了业务模型调用效率。
可选的,当系统中配置多台服务器的场景下,服务器在接收客户端发送的二进制的RPC请求消息后,可以判断自身的当前状态,然后根据自身的当前状态决定是否由服务器自己来执行业务模型调用。该实施例的详细执行过程如图4所示。
图4为本申请又一实施例提供的业务模型调用的框架示意图。由图4可知,该实施例可以用于多台服务器的场景下,可以在多台服务器和客户端之间执行,该方法可以包括:
S411,客户端查找RPC对象。
S412,客户端基于该RPC对象及调用地址生成该RPC请求消息。
S413,客户端对该RPC请求消息进行序列化。
S420,向服务器发送RPC请求消息。
S430,服务器接收RPC请求消息。
可以理解,该实施例中的上述步骤,与上述实施例的相应步骤的实现过程相同,此处不再赘述。
S431,判断自身是否处于繁忙状态。
具体的,当系统中配置有多台服务器,系统中每一台服务器中都存储有所有的业务模型,且服务器之间完成相互注册,以支持多业务模型的并发调用,即系统内部的任意服务器可以对外提供服务。该种场景下,服务器在接收客户端发送的RPC请求消息后,可以判断自身的当前状态,即可以判断当前是否处于繁忙状态。
例如,在每台服务器内,可以设置有一个状态码,服务器开始运行、运行结束或异常结束等操作时,都会更新该状态码。当判断发现状态码指示为空闲时,还可以进一步判断自身的资源是否空闲。
当接收到RPC请求消息的服务器判断确定当前处于繁忙状态,则可以将该RPC请求消息转发给第二服务器,以便该第二服务器基于该RPC请求消息调用与该RPC请求消息对应的业务模型,即可以执行S440。
可以理解,在实际的RPC请求消息转发时,首先可以判断与当前服务器完成注册的至少一个服务器的当前状态,并比较至少一个服务器的判断结果,最后确定将RPC请求消息转发给其他服务器。还可以理解,在第二服务器接收到该RPC请求消息时,仍然可以判断自身的当前状态,如果处于繁忙状态,则可以继续向其他服务器转发,直至某个服务器确定自己当前处于空闲状态,可以处理该RPC请求服务。
还可以理解,如果接收到RPC请求消息的服务器判断确定当前处于空闲状态,即当前服务器可以基于该RPC请求消息调用对应的业务模型,则不需要对该RPC请求消息进行转发,则直接执行S440。
S440,第二服务器对该RPC请求消息进行反序列化。
S441,利用该鉴权令牌对该RPC请求消息的发送方身份进行验证。
S450,响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。
S451,对该响应结果进行序列化处理。
可以理解,上述第二服务器对RPC请求消息的处理,与上述实施例中服务器对该RPC请求消息的处理过程类似,此处不再赘述。
S4511,向该服务器返回序列化处理之后的该响应结果。
S452,向该客户端返回序列化处理之后的该响应结果。
具体的,第二服务器将目标业务模型进行序列化,生产响应结果后,可以将该响应结果沿着原路径,返回给接收由客户端发送的RPC请求消息的服务器上,以使得该服务器向客户端返回响应结果,即在客户端一侧,仅仅暴露该服务器的地址。对系统内部的业务模型的调用不可见。
S460,客户端接收服务器返回的响应结果。
S461,客户端对该响应结果进行反序列化。
可以理解,上述步骤与S360及S361过程相同,此处不再赘述。
本申请实施例提供的业务模型调用方法,考虑主流的Hadoop及Spark框架对外默认提供的Sql接口远程交互调用,当业务复杂时,需要人为的对调用结果进行序列化,并且需要对业务模型进行编码转换,通过将业务模型的模型请求内容及结果响应格式封装成RPC对象,可以在调用业务模型时,根据当前服务器的状态,利用多台服务器的相互注册,以分发调用请求,实现了多业务模型的并发调用,进而基于RPC对象,调用目标业务模型,并对返回的结果实现自动序列化,避免了人工对业务模型的编码及业务模型调用过程中的交互消息的序列化,减少了工作量,提高了业务模型调用效率。
图5所示为本申请实施例提供的业务模型调用的系统框架示意图,如图5所示,该系统可以包括至少一台服务器及客户端。
服务器用于接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容。响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。
向客户端返回响应结果,该响应结果包括该目标业务模型。客户端用于向服务器发送远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得该服务器利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。接收该服务器返回的响应结果,该响应结果包括该目标业务模型。
图6所示为本申请实例提供的业务模型调用装置的结构示意图,如图6所示,该装置600可以包括:
接收模块610,用于接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容;
调用模块620,用于响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;
返回模块630,用于向客户端返回响应结果,该响应结果包括该目标业务模型。
优选的,本申请实施例提供的业务模型调用装置,该返回模块630具体用于:
对该响应结果进行序列化处理。
向该客户端返回序列化处理之后的该响应结果。
优选的,本申请实施例提供的业务模型调用装置,还包括:
判断模块640,用于判断自身是否处于繁忙状态。
转发模块650,用于当自身处于繁忙状态时,将该RPC请求消息转发给第二服务器,以便该第二服务器基于该RPC请求消息调用与该RPC请求消息对应的业务模型;其中,当自身未处于繁忙状态时,则该返回模块用于响应于该RPC请求消息,利用与该模型请求内容关联的RPC对象来调用目标业务模型。
优选的,本申请实施例提供的业务模型调用装置,该RPC对象是预先将该模型请求内容和响应结果格式进行封装的结果。
优选的,本申请实施例提供的业务模型调用装置,该模型请求内容包括鉴权令牌、业务模型的模型名称及请求参数。
优选的,本申请实施例提供的业务模型调用装置,还包括:
反序列化模块660,用于对该RPC请求消息进行反序列化。
优选的,本申请实施例提供的业务模型调用装置,还包括:
验证模块670,用于利用该鉴权令牌对该RPC请求消息的发送方身份进行验证。
图7所示为本申请又一实施例提供的业务模型调用装置的结构示意图,如图7所示,该装置700可以包括:
发送模块710,用于向服务器发送远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得该服务器利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型。
接收模块720,用于接收该服务器返回的响应结果,该响应结果包括该目标业务模型。
反序列化模块730,用于对该响应结果进行反序列化。
优选的,本申请实施提供的业务模型调用装置,还包括:
查找模块740,用于查找该RPC对象。
生成模块750,用于基于该RPC对象及调用地址生成该RPC请求消息。
优选的,本申请实施提供的业务模型调用装置,还包括:
序列化模块760,用于对该RPC请求消息进行序列化。
优选的,本申请实施提供的业务模型调用装置,该RPC对象是预先将该模型请求内容和响应结果格式进行封装的结果。
可以理解,本申请的实施例还提供了一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现可用于执行上述的业务模型调用方法。
下面参考图8,其示出了适于用来实现本申请实施例的服务器的计算机系统800的结构示意图。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)808中的程序而执行各种适当的动作和处理。在RAM 808中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请公开的业务模型调用实施例,上文参考图1-图4描述的过程可以被实现为计算机软件程序。例如,本申请公开的业务模型调用实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,该计算机程序包含用于执行图1的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种业务模型调用实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、调用模块及返回模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,调用模块还可以被描述为“用于响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本申请的业务模型调用,具体执行:接收远程过程调用协议RPC请求消息,该RPC请求消息用于请求调用至少一个业务模型,该RPC请求消息包括模型请求内容;响应于该RPC请求消息,利用与该模型请求内容关联的预先创建的RPC对象来调用目标业务模型;向客户端返回响应结果,该响应结果包括该目标业务模型。
综上所述,本申请实施例提供的业务模型调用方法、装置及存储介质,该方法通过将运行在服务器上的至少一个业务模型的模型请求内容封装为RPC对象,使得服务器在接收到客户端发送的RPC请求消息后,可以根据该RPC请求消息中携带的模型请求内容,利用预先注册的与该模型请求内容关联的RPC对象,实现与该模型请求内容对应的目标业务模型,的调用,避免了软件工程师对业务模型进行编码转换,降低了软件工程师的工作量,提高了业务模型调用效率。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种业务模型调用方法,其特征在于,所述方法包括:
接收远程过程调用协议RPC请求消息,所述RPC请求消息用于请求调用至少一个业务模型,所述RPC请求消息包括模型请求内容;所述模型请求内容包括所述业务模型的模型名称;
响应于所述RPC请求消息,利用与所述模型请求内容关联的预先创建的RPC对象来调用目标业务模型;所述RPC对象是预先将所述模型请求内容和结果相应格式进行封装的结果,所述结果相应格式包括状态码、错误消息及结果集,所述状态码用于指示远程调用成功与否,在调用成功时所述错误消息为空,所述结果集与所述业务模型的模型名称相关;
向客户端返回响应结果,所述响应结果包括所述目标业务模型。
2.根据权利要求1所述的业务模型调用方法,其特征在于,所述向客户端返回响应结果包括:
对所述响应结果进行序列化处理;
向所述客户端返回序列化处理之后的所述响应结果。
3.根据权利要求1所述的业务模型调用方法,其特征在于,接收RPC请求消息之后,利用与所述模型请求内容关联的预先创建的RPC对象来调用目标业务模型之前,所述方法还包括:
判断当前服务器是否处于繁忙状态;
如果是,则将所述RPC请求消息转发给第二服务器,以便所述第二服务器基于所述RPC请求消息调用与所述RPC请求消息对应的业务模型;
如果不是,则响应于所述RPC请求消息,利用与所述模型请求内容关联的RPC对象来调用目标业务模型。
4.根据权利要求1所述的业务模型调用方法,其特征在于,接收请求消息之后,响应于所述RPC请求消息之前,所述方法还包括:
利用鉴权令牌对所述RPC请求消息的发送方身份进行验证。
5.一种业务模型调用方法,其特征在于,所述方法包括:
向服务器发送远程过程调用协议RPC请求消息,所述RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得所述服务器利用与所述模型请求内容关联的预先创建的RPC对象来调用目标业务模型;所述模型请求内容包括所述业务模型的模型名称;所述RPC对象是预先将所述模型请求内容和结果相应格式进行封装的结果;所述结果相应格式包括状态码、错误消息及结果集,所述状态码用于指示远程调用成功与否,在调用成功时所述错误消息为空,所述结果集与所述业务模型的模型名称相关;
接收所述服务器返回的响应结果,所述响应结果包括所述目标业务模型。
6.根据权利要求5所述的业务模型调用方法,其特征在于,在所述接收所述服务器返回的响应结果之后,该方法包括:
对所述响应结果进行反序列化。
7.根据权利要求5所述的业务模型调用方法,其特征在于,在向服务器发送RPC请求消息之前,该方法还包括:
查找RPC对象;
基于所述RPC对象及调用地址生成所述RPC请求消息。
8.一种业务模型调用装置,其特征在于,包括:
接收模块,用于接收远程过程调用协议RPC请求消息,所述RPC请求消息用于请求调用至少一个业务模型,所述RPC请求消息包括模型请求内容;所述模型请求内容包括所述业务模型的模型名称;
调用模块,用于响应于所述RPC请求消息,利用与所述模型请求内容关联的预先创建的RPC对象来调用目标业务模型;所述RPC对象是预先将所述模型请求内容和结果相应格式进行封装的结果,所述结果相应格式包括状态码、错误消息及结果集,所述状态码用于指示远程调用成功与否,在调用成功时所述错误消息为空,所述结果集与所述业务模型的模型名称相关;
返回模块,用于向客户端返回响应结果,所述响应结果包括所述目标业务模型。
9.根据权利要求8所述的业务模型调用装置,其特征在于,所述返回模块具体用于:
对所述响应结果进行序列化处理;
向所述客户端返回序列化处理之后的所述响应结果。
10.根据权利要求8所述的业务模型调用装置,其特征在于,还包括:
判断模块,用于判断当前服务器是否处于繁忙状态;
转发模块,用于当所述当前服务器处于繁忙状态时,将所述RPC请求消息转发给第二服务器,以便所述第二服务器基于所述RPC请求消息调用与所述RPC请求消息对应的业务模型;
其中,当所述当前服务器未处于繁忙状态时,则所述返回模块用于响应于所述RPC请求消息,利用与所述模型请求内容关联的RPC对象来调用目标业务模型。
11.一种业务模型调用装置,其特征在于,包括:
发送模块,用于向服务器发送远程过程调用协议RPC请求消息,所述RPC请求消息用于请求调用至少一个业务模型,其包括模型请求内容,以使得所述服务器利用与所述模型请求内容关联的预先创建的RPC对象来调用目标业务模型;所述模型请求内容包括所述业务模型的模型名称;所述RPC对象是预先将所述模型请求内容和结果相应格式进行封装的结果;所述结果相应格式包括状态码、错误消息及结果集,所述状态码用于指示远程调用成功与否,在调用成功时所述错误消息为空,所述结果集与所述业务模型的模型名称相关;
接收模块,用于接收所述服务器返回的响应结果,所述响应结果包括所述目标业务模型。
12.根据权利要求11所述的业务模型调用装置,其特征在于,还包括:
反序列模块,用于对所述响应结果进行反序列化。
13.根据权利要求11所述的业务模型调用装置,其特征在于,还包括:
查找模块,用于查找所述RPC对象;
生成模块,用于基于所述RPC对象及调用地址生成所述RPC请求消息。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序用于实现如权利要求1-4任一项所述的方法或权利要求5-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811543829.0A CN109815025B (zh) | 2018-12-17 | 2018-12-17 | 一种业务模型调用方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811543829.0A CN109815025B (zh) | 2018-12-17 | 2018-12-17 | 一种业务模型调用方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815025A CN109815025A (zh) | 2019-05-28 |
CN109815025B true CN109815025B (zh) | 2024-03-15 |
Family
ID=66601982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811543829.0A Active CN109815025B (zh) | 2018-12-17 | 2018-12-17 | 一种业务模型调用方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815025B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330429A (zh) * | 2019-08-01 | 2021-02-05 | 深圳顺丰泰森控股(集团)有限公司 | 税务数据处理方法、系统、服务器及存储介质 |
CN112540858B (zh) * | 2019-09-23 | 2023-10-27 | 华为云计算技术有限公司 | 任务处理方法、服务器、客户端及系统 |
CN110933075B (zh) * | 2019-11-28 | 2022-01-11 | 腾讯音乐娱乐科技(深圳)有限公司 | 服务调用方法、装置、电子设备及存储介质 |
CN113329046A (zh) * | 2020-02-28 | 2021-08-31 | 珠海格力电器股份有限公司 | 数据传输方法、系统以及存储介质 |
CN111970349B (zh) * | 2020-08-07 | 2022-06-24 | 中国建设银行股份有限公司 | 基于远程过程调用的通讯系统、方法、装置、设备及介质 |
CN112328410B (zh) * | 2020-11-04 | 2023-08-08 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
CN113377465A (zh) * | 2021-06-07 | 2021-09-10 | 上海商汤智能科技有限公司 | 基于服务的sdk调用方法及装置、电子设备和存储介质 |
CN114268661B (zh) * | 2021-11-19 | 2024-04-30 | 科大讯飞股份有限公司 | 一种业务方案部署方法、装置、系统及设备 |
CN114553928B (zh) * | 2021-12-31 | 2024-04-16 | 完美世界(重庆)互动科技有限公司 | 一种业务处理方法以及装置、电子设备、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843818A (zh) * | 2015-12-03 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种业务模型生成方法及装置 |
CN107277153A (zh) * | 2017-06-30 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 用于提供语音服务的方法、装置和服务器 |
CN108322530A (zh) * | 2018-01-29 | 2018-07-24 | 广东欧珀移动通信有限公司 | 上下文环境信息的传递方法、装置、服务网关及存储介质 |
US20180336077A1 (en) * | 2017-05-17 | 2018-11-22 | American Megatrends, Inc. | System and method for providing extended javascript object notation (json) remote procedure call (rpc) with mediator |
CN108965312A (zh) * | 2018-07-30 | 2018-12-07 | 深圳高新兴物联科技有限公司 | 远程调用方法、装置、系统和存储介质 |
CN108984316A (zh) * | 2018-06-15 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种用于分布式数据处理的方法、装置、电子设备及计算机存储介质 |
-
2018
- 2018-12-17 CN CN201811543829.0A patent/CN109815025B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843818A (zh) * | 2015-12-03 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种业务模型生成方法及装置 |
US20180336077A1 (en) * | 2017-05-17 | 2018-11-22 | American Megatrends, Inc. | System and method for providing extended javascript object notation (json) remote procedure call (rpc) with mediator |
CN107277153A (zh) * | 2017-06-30 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 用于提供语音服务的方法、装置和服务器 |
CN108322530A (zh) * | 2018-01-29 | 2018-07-24 | 广东欧珀移动通信有限公司 | 上下文环境信息的传递方法、装置、服务网关及存储介质 |
CN108984316A (zh) * | 2018-06-15 | 2018-12-11 | 广州视源电子科技股份有限公司 | 一种用于分布式数据处理的方法、装置、电子设备及计算机存储介质 |
CN108965312A (zh) * | 2018-07-30 | 2018-12-07 | 深圳高新兴物联科技有限公司 | 远程调用方法、装置、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109815025A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815025B (zh) | 一种业务模型调用方法、装置及存储介质 | |
CN111600909A (zh) | 数据处理方法、装置、协议转换设备及存储介质 | |
CN110377438B (zh) | 跨进程通信接口的路由方法、装置和系统 | |
US11716264B2 (en) | In situ triggered function as a service within a service mesh | |
CN112114979A (zh) | 远程过程调用方法和装置 | |
WO2013092661A1 (en) | Method, system and computer program product for providing composite web application | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
US11294740B2 (en) | Event to serverless function workflow instance mapping mechanism | |
WO2023246398A1 (zh) | 云服务实现方法及装置 | |
CN113032166A (zh) | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 | |
CN108446105A (zh) | 一种轻量级API Server开发框架及开发方法 | |
US20220245080A1 (en) | Method for communication of a componentized application, computing device and computer storage medium | |
US10402307B2 (en) | System and method for providing runtime tracing for a web-based client accessing a transactional middleware platform using an extension interface | |
CN112181681A (zh) | 一种远程调用方法、装置、计算机设备及存储介质 | |
CN113535419A (zh) | 一种服务编排方法和装置 | |
US11929933B2 (en) | Ephemeral data stream routing service | |
CN108347471B (zh) | 获取第三方用户信息的方法、装置及系统 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN109582481B (zh) | 调用结果的传输方法、装置、设备及存储介质 | |
CN107463438B (zh) | 用于多Openstack环境的信息处理方法、装置和系统 | |
CN110008032B (zh) | 一种通信方式的实现方法及电子设备 | |
US8918451B2 (en) | System and method for providing service component architecture (SCA) data transformation | |
CN117076160B (zh) | 组件调用方法、装置、设备和存储介质 | |
CN117201577B (zh) | 基于pisa的跨平台api和spi的通讯方法和系统 | |
CN116560756B (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 |