CN113377465A - 基于服务的sdk调用方法及装置、电子设备和存储介质 - Google Patents
基于服务的sdk调用方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113377465A CN113377465A CN202110633139.XA CN202110633139A CN113377465A CN 113377465 A CN113377465 A CN 113377465A CN 202110633139 A CN202110633139 A CN 202110633139A CN 113377465 A CN113377465 A CN 113377465A
- Authority
- CN
- China
- Prior art keywords
- service
- client
- sdk
- calling
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 97
- 230000006870 function Effects 0.000 claims description 59
- 230000004044 response Effects 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 241000412611 Consul Species 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种基于服务的SDK调用方法及装置、电子设备和存储介质,所述方法应用于服务端,包括:将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。本公开实施例以服务的形式来实现人工智能算法SDK的功能,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于服务的软件开发工具SDK调用方法及装置、电子设备和存储介质。
背景技术
人工智能(Artificial Intelligence,AI)全球化的背景下,AI技术开发者以及学习者的数量与日俱增。
人工智能算法的具体实现由于种类多,业务逻辑复杂,技术门槛高以及难度大等问题,很多具体业务中,开发者难以使用先进的AI算法进行业务升级,很多AI学习者难以体验先进的智能算法来提升自我研究能力,而各大互联网AI公司珍贵的研究算法如果针对客户端开源代码则会导致失去大量商业价值。
因此,如何高效、安全地将人工智能算法共享给其它开发者,是目前亟待解决的问题。
发明内容
本公开提出了一种基于服务的软件开发工具SDK调用技术方案。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用方法,应用于服务端,包括:
将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;
接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;
利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
在一种可能的实现方式中,所述服务通过对所述SDK进行封装得到,所述服务对外提供基于数据序列化协议Protocol Buffer定义的接口;
所述接收客户端发送的服务调用请求,包括:
接收客户端基于所述Protocol Buffer定义生成的服务调用请求。
在一种可能的实现方式中,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:
在所述服务调用请求对应的处理任务占用处理资源超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第一预设数据类型的情况下,对所述服务调用请求对应的待处理数据进行存储;
基于异步线程处理方式运行所述目标服务对所述待处理数据进行处理。
在一种可能的实现方式中,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:
在所述服务调用请求对应的处理任务占用处理资源不超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第二预设数据类型的情况下,基于同步线程处理方式运行所述目标服务对所述服务调用请求的待处理数据进行处理。
在一种可能的实现方式中,在将服务端本地的服务的服务信息注册到服务管理平台中后,所述方法还包括:
对所述服务中多个所述SDK共用的服务模块进行预加载。
在一种可能的实现方式中,所述接收客户端发送的服务调用请求,包括:
接收客户端基于远程过程调用方式发送的服务调用请求。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用方法,应用于服务管理平台,包括:
接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能;
检测所述服务端中的可用服务;
将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用方法,应用于客户端,包括:
从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能;
响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息;
接收所述服务端对所述服务调用请求的响应结果。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用装置,应用于服务端,包括:
服务信息注册模块,用于将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;
调用请求接收模块,用于接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;
调用请求响应模块,用于利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
在一种可能的实现方式中,所述服务通过对所述SDK进行封装得到,所述服务对外提供基于数据序列化协议Protocol Buffer定义的接口;
所述调用请求接收,用于接收客户端基于所述Protocol Buffer定义生成的服务调用请求。
在一种可能的实现方式中,所述调用请求响应模块,用于在所述服务调用请求对应的处理任务占用处理资源超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第一预设数据类型的情况下,对所述服务调用请求对应的待处理数据进行存储;基于异步线程处理方式运行所述目标服务对所述待处理数据进行处理。
在一种可能的实现方式中,所述调用请求响应模块,用于在所述服务调用请求对应的处理任务占用处理资源不超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第二预设数据类型的情况下,基于同步线程处理方式运行所述目标服务对所述服务调用请求的待处理数据进行处理。
在一种可能的实现方式中,所述装置还包括:
预加载模块,用于对所述服务中多个所述SDK共用的服务模块进行预加载。
在一种可能的实现方式中,所述调用请求接收模块,用于接收客户端基于远程过程调用方式发送的服务调用请求。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用装置,应用于服务管理平台,包括:
服务信息接收模块,用于接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能;
可用服务检测模块,用于检测所述服务端中的可用服务;
服务信息发送模块,用于将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
根据本公开的一方面,提供了一种基于服务的软件开发工具SDK调用装置,应用于客户端,包括:
服务信息获取模块,用于从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能;
调用请求发送模块,用于响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息;
响应结果接收模块,用于接收所述服务端对所述服务调用请求的响应结果。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,服务端通过将本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。由此,以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的基于服务的SDK调用方法的流程图。
图2示出根据本公开实施例的基于服务的SDK调用方法的流程图。
图3示出根据本公开实施例的基于服务的SDK调用方法的流程图。
图4示出根据本公开实施例的基于服务的SDK调用方法的流程图。
图5示出根据本公开实施例的基于服务的SDK调用方法的应用场景示意图。
图6示出根据本公开实施例的一种基于服务的SDK调用装置的框图。
图7示出根据本公开实施例的一种基于服务的SDK调用装置的框图。
图8示出根据本公开实施例的一种基于服务的SDK调用装置的框图。
图9示出根据本公开实施例的一种电子设备的框图。
图10示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开实施例中,人工智能算法可以封装为软件开发工具包(SoftwareDevelopment Kit,SDK)的形式,供开发者调用。这里的人工智能算法用于提供人工智能的相关功能,例如,人脸识别,文字识别等功能。
在供开发者调用人工智能算法SDK时,可以以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
本公开实施例提供的基于服务的SDK调用方法中,可以基于服务端、服务管理平台和客户端来实现,其中,由服务端提供服务,服务是对SDK的封装,对外提供接口;由服务管理平台进行服务的注册与发现;客户端根据服务管理平台提供的服务信息,调用服务端的服务,实现对SDK中算法的调用。
下面将分别阐述应用于服务端、服务管理平台和客户端中SDK调用方法。
图1示出根据本公开实施例的基于服务的软件开发工具SDK调用方法的流程图,如图1所示,所述基于服务的SDK调用方法应用于服务端,包括:
在步骤S11中,将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能。
这里的服务端的服务是运行于服务端的一种应用程序类型,用于通过网络向客户端提供一定的功能。服务端中的服务往往会有多个,在本公开实施例中,服务端的服务用于实现人工智能算法SDK的功能,具体可以通过对人工智能算法SDK进行封装得到。
本公开实施例中,服务端的架构可以是基于远程过程调用架构(RemoteProcedure Call,GRPC)实现。
服务管理平台用于对服务器中的服务进行服务注册与发现,服务管理平台例如可以是基于开源的服务管理工具consul得到的,当然也可以是其它的服务管理工具,本公开对此不做具体限定。
服务管理平台可以对服务端的服务进行检测,来确定服务端的可用服务,并将可用服务的服务信息进行保存,以便客户端能够获取服务端的可用服务。
在检测服务端的可用服务时,可以基于心跳机制来实现。具体来说,可以由服务端中的服务定时发送一个自定义的结构体(心跳包),让服务管理平台明确服务处于可用状态。服务管理平台如果能定时收到服务发送的心跳包,则可以确定服务处于可用状态,如果无法收到服务发送的心跳包,则确定服务处于不可用状态。
客户端在调用服务时,可以从服务管理平台获取服务端可用服务的服务信息,依据服务的服务信息对服务进行调用,这里的服务信息例如可以包括服务标识、参数信息、网际互连协议(Internet Protocol,IP)地址、接口信息等。
在步骤S12中,接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息。
用户在使用某个服务的功能时,可以在客户端中进行操作,客户端中可以展示从服务管理平台获取的服务端可用服务的服务信息,用户根据想要实现的目标功能,可以选择相应的目标服务的目标服务信息,然后由客户端向服务端发送服务调用请求。
客户端可以基于目标服务信息生成服务请求,由此,服务端在接收到客户端发送的服务调用请求后,即可依据服务调用请求中的目标服务信息确定目标服务。
在步骤S13中,利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
这里的对服务调用请求进行响应,可以是利用目标服务执行至少一个SDK的功能,例如执行人脸识别、文字识别等功能。然后将执行的处理结果返回给客户端。
目标服务在对服务调用请求进行响应时,可以是通过异步线程处理的方式对服务调用请求对应的数据进行处理,也可以是通过同步线程处理的方式对服务调用请求对应的数据进行处理,本公开对此不作限定。
在本公开实施例中,服务端通过将本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。由此,以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
在一种可能的实现方式中,所述服务通过对所述SDK进行封装得到,所述服务对外提供基于数据序列化协议Protocol Buffer定义的接口;所述接收客户端发送的服务调用请求,包括:接收客户端基于所述Protocol Buffer定义生成的服务调用请求。
服务端的服务可以通过对SDK进行封装得到,服务对外提供接口以供客户端调用,接口的定义可以遵循数据序列化协议Protocol Buffer。
Protocol Buffer是GRPC架构中的协议,如前文所述,服务端可以基于GRPC架构来实现,在GRPC架构中,会通过Protocol Buffer来定义服务接口。具体在定义服务的接口时,可以使用Protocol Buffer按照SDK的功能大类定义服务接口,以及接口请求参数和响应参数的结构体等接口信息。
在基于Protocol Buffer定义服务接口时,可以通过GRPC架构中的Protobuf格式的文件来定义,在Protobuf文件中,提供服务的参数及功能定义,那么,期望调用服务的用户可以基于protobuf文件中定义的服务的参数及功能,来开发客户端调用服务的接口。
并且根据protobuf文件中的接口定义语言(Interface Define Language,IDL),可以生成与接口语言相同的客户端进行接口调用,Protobuf提供了Java、Python、Golang、Ruby、PHP、C++等语言的支持,基于上述支持的编程语言,客户端可以实现对服务端服务的调用。
也就是说,客户端在向服务端发送服务调用请求时,是基于Protocol Buffer定义生成的服务调用请求,即根据Protocol Buffer中定义的服务接口、接口请求参数和响应参数的结构体等信息,来生成服务调用请求,且客户端的语言也是基于Protocol Buffer定义的语言开发的。
在本公开实施例中,使用Protocol Buffer定义服务的接口,可以跨平台使用多种主流语言生成对应的客户端接口,客户端的开发者不需要看到服务端代码实现,根据Protocol Buffer的定义便可以得到对服务的调用方法,实现多种设备以及多种平台的服务调用。
在一种可能的实现方式中,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:在所述服务调用请求对应的处理任务占用处理资源超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第一预设数据类型的情况下,对所述服务调用请求对应的待处理数据进行存储;基于异步线程处理方式运行所述目标服务对所述待处理数据进行处理:所述第一预设数据类型包括下述至少一种:完整传输的视频文件、完整传输的音频文件。
在一种可能的实现方式中,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:在所述服务调用请求对应的处理任务占用处理资源不超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第二预设数据类型的情况下,基于同步线程处理方式运行所述目标服务对所述服务调用请求的待处理数据进行处理;所述第二预设数据类型包括下述至少一种:流式传输的视频帧、流式传输的音频数据、图像。
在本公开实施例中,服务端往往会存在多个服务,各服务中封装有人工智能SDK的实现算法,考虑到各算法涉及的领域以及应用场景之间的差异,不同的算法对处理资源的耗费往往是不同的,对于处理资源耗费较大的目标服务,可以先将服务调用请求对应的待处理数据进行存储,然后基于异步线程处理方式运行目标服务对待处理数据进行处理。
这里占用处理资源是否超过设定阈值,具体可以是处理任务占用的内存量是否超过内存阈值,也可以是对CPU的使用率是否超过使用率阈值。
对于处理时占用资源超过设定阈值的文件,可以使用存储器进行存储,然后基于异步线程处理方式运行目标服务对待处理数据进行处理。异步线程处理可以由多个线程异步地对数据进行处理,能够极大地提高任务处理的效率。
对于处理时占用资源不超过设定阈值的文件,则可以采用二进制编码的形式直接传输待处理数据,基于同步线程处理方式运行目标服务对服务调用请求的待处理数据进行处理,无需对待处理数据进行存储,便于对数据资源的管理。
针对多媒体数据(如视频、音频、文本等),常见的传输方式有两种,一种是流式传输,可以将多媒体数据以数据流的形式进行传输,接收端可不必完整传输整个文件,即可处理接收到的多媒体数据,如播放多媒体视频,或对多媒体数据中的信息进行提取处理;另一种传输方式是完整传输多媒体文件,接收端在接收到完整的多媒体文件后,才能够处理多媒体数据。
针对完整传输的数据量较大的多媒体文件,例如视频文件、音频文件,由于多媒体文件已完整传输,且数据量较大,为便于快速处理多媒体文件,可以基于异步线程处理方式运行目标服务对待处理数据进行处理。
而针对流式传输的多媒体数据,例如,流式传输的视频帧、流式传输的音频数据等,由于可以边传输边处理,要处理的数据量没有完整传输的文件大,这样处理任务占用的处理资源往往较少,因此,可以基于同步线程处理方式运行目标服务对服务调用请求的待处理数据进行处理。
此外,对于完整传输的数据量较小的多媒体文件,例如图片等,由于数据量较小,占用的处理资源也较少,因此也可以基于同步线程处理方式运行目标服务对服务调用请求的待处理数据进行处理。
在一种可能的实现方式中,在将服务端本地的服务的服务信息注册到服务管理平台中后,所述方法还包括:对所述服务中多个所述SDK共用的服务模块进行预加载。
在本公开实施例中,可以将服务按SDK的功能进行分类,具体可以将具备某些共同功能的服务分为一类,例如,人脸识别SDK和人脸跟踪SDK中,都会包含人脸检测的功能模块,因此,可以将人脸识别SDK和人脸跟踪SDK归为一类。这样即可以方便服务端资源管理,还可以方便对SDK共用的模块进行预加载,这样在收到服务调用请求时,直接使用加载好的模型进行分析处理。由此,一方面可以减少服务器的资源消耗,另一方面将加载与释放比较频繁的模块预加载,提高服务端对客户端的响应速度,提高了用户体验。
在一种可能的实现方式中,所述接收客户端发送的服务调用请求,包括:接收客户端基于远程过程调用方式发送的服务调用请求。
在本公开实施例中,客户端基于远程过程调用方式调用服务端的服务,服务端对外暴露服务器IP地址、服务器端口、服务接口等信息,基于这些信息,客户端在进行RPC调用时,允许开发人员像调用本地服务一样调用远程服务,甚至不用感知远程服务的部署位置。
具体来说,客户端操作系统中可以部署RPC内核,在调用部署在服务器上的服务时,会经过RPC内核调用操作系统内核中的消息传递功能,从而将服务调用请求发送至服务端的RPC服务上。服务端的RPC服务可以基于GRPC框架中的远程过程调用服务端实现。
服务端启动后,可以侦听上述对外暴露的服务器端口,使用GRPC框架基于超文本传输协议http来接收服务调用请求,根据收到的服务调用请求中所包含的服务接口信息,确定对应的服务,并启动服务对应线程对待处理数据进行处理。
服务端和客户端在进行数据传输时,可以以二进制形式对数据进行传输,并且可以支持开发人员灵活定义传输的数据包的大小,以及支持开发人员灵活定义数据传输的方式,传输速率快效率高。
在本公开实施例中,由于客户端基于远程过程调用的方式调用服务端的服务,在将自己的人工智能算法能力共享给其他开发者的同时,由于其他开发者看不到算法的具体实现,因此可以保护知识产权。
图2示出根据本公开实施例的基于服务的软件开发工具SDK调用方法的流程图,如图2所示,该调用方法应用于服务管理平台,包括:
在步骤S21中,接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能。
如前文所述,服务管理平台用于对服务器中的服务进行服务注册与发现,可以接收服务端注册的服务的服务信息,这里的服务信息例如可以包括服务标识、参数信息、网际互连协议(Internet Protocol,IP)地址、接口信息等。
服务管理平台例如可以是基于开源的服务管理工具consul得到的,当然也可以是其它的服务管理工具,本公开对此不做具体限定。
在步骤S22中,检测所述服务端中的可用服务。
在检测服务端的可用服务时,可以基于心跳机制来实现。具体来说,可以由服务端中的服务定时发送一个自定义的结构体(心跳包),让服务管理平台明确服务处于可用状态。服务管理平台如果能定时收到服务发送的心跳包,则可以确定服务处于可用状态,如果无法收到服务发送的心跳包,则确定服务处于不可用状态。
在步骤S23中,将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
客户端在调用服务时,可以从服务管理平台获取服务端可用服务的服务信息,客户端可以向服务端发送服务信息获取请求,服务管理平台在接收到服务信息获取请求后,即可将可用服务的服务信息发送给客户端,客户端依据可以服务的服务信息对服务进行调用。
由于服务管理平台中维护了服务端的可用服务,因此,在服务端接收到服务调用请求后,可用根据服务管理平台中的可用服务,对该服务调用请求进行负载均衡,优先将该服务调用请求发送给空闲的服务进行处理,以实现对客户端的快速响应。
在本公开实施例中,可以以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
图3示出根据本公开实施例的基于服务的软件开发工具SDK调用方法的流程图,如图3所示,该调用方法应用于客户端,包括:
在步骤S31中,从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能。
如前文所述,服务管理平台用于对服务器中的服务进行服务注册与发现,可以接收服务端注册的服务的服务信息,那么客户端可以从服务管理平台获取服务端可用服务的服务信息。
在步骤S32中,响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息。
客户端可以将服务端可用的服务的服务信息进行显示,这样,用户即可通过选择服务信息,触发客户端向用户所选择的服务信息对应的目标服务发送服务调用请求;或者,由于服务端的服务是用于实现功能的,也可以将服务端可用服务对应的功能进行显示,这样,也可以通过选择相应的功能,触发客户端向用户所选择的功能对应的目标服务发送服务调用请求。
在步骤S33中,接收所述服务端对所述服务调用请求的响应结果。
服务端在接收到服务调用请求后,会对服务调用请求进行响应,具体可以是利用目标服务执行SDK的功能,例如人脸识别、文字识别等功能。然后将执行的处理结果返回给客户端,客户端即可接收到服务端对所述服务调用请求的响应结果。
在本公开实施例中,可以以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
以上分别对服务端、服务管理平台、客户端各自执行SDK调用方法的过程进行了说明,下面对服务端、服务管理平台、客户端所构成的系统执行SDK调用方法的过程进行说明,如图4所示,该方法包括:
在步骤S41中,服务端将服务端本地的服务的服务信息注册到服务管理平台中。
服务端的服务可以包括人脸比对SDK、面部关键点SDK、文字识别SDK、人脸检测SDK、人脸/人体追踪SDK。
在步骤S42中,服务管理平台接收服务端注册的服务的服务信息。
在步骤S43中,服务管理平台基于心跳机制检测所述服务端中的可用服务。
在步骤S44中,客户端从服务管理平台获取服务端可用服务的服务信息。
在步骤S45中,客户端响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息。
客户端基于远程过程调用方式调用服务端的服务。
在步骤S46中,服务端接收客户端发送的服务调用请求,利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,并将响应结果发送给客户端。
服务端与客户端之间的RPC通信,可以基于GRPC框架中的远程过程调用服务端实现,GRPC的服务端可以对服务调用请求进行分发,发送给对应的服务进行处理。
在步骤S47中,客户端接收所述服务端对所述服务调用请求的响应结果。
本公开实施例从整体上阐述了基于服务的软件开发工具SDK调用方法,对于本公开实施例中未详尽描述之处,可参阅前文的相关描述,此处不做赘述。
在本公开实施例中,可以以服务的形式来实现人工智能算法SDK的功能,并通过服务管理平台来实现服务的管理与发现,方便对服务端的服务进行管理,客户端可以及时地获知服务端的可用服务,以便能够获得服务端的快速响应,提高了人工智能算法SDK的共享效率,且客户端的用户看不到算法的具体实现,可以保护知识产权。
下面对本公开实施例的一个应用场景进行说明。请参阅图5,在该应用场景中,本公开实施例中的服务器的具体实行形式为一个算法开放平台。
在开放平台中,通过将人工智能算法SDK封装为服务的形式,并公开服务的应用程序编程接口(API)的接口信息,以供客户端调用,从而将人工智能算法能力共享给其他开发者,其他开发者看不到算法的具体实现,可以保护知识产权。开放平台具体可以基于GRPC架构来实现,在GRPC架构中,可以基于Protocol Buffer协议定义服务接口,具体可以通过Protobuf格式的文件来定义,在Protobuf文件中,提供服务的参数及功能定义,那么,期望调用服务的用户可以基于protobuf文件中定义的服务的参数及功能,来开发客户端调用服务的接口。并且根据protobuf文件中的接口定义语言(Interface Define Language,IDL),可以生成与接口语言相同的客户端进行接口调用,Protobuf提供了Java、Python、Golang、Ruby、PHP、C++等语言的支持,基于上述支持的编程语言,客户端可以实现对服务端服务的调用。
本开放平台基于consul实现了服务注册、服务发现以及健康检查等功能,实现了一个GRPC+consul的服务化框架。Consul服务管理平台存放服务信息,方便开放平台的服务进行管理,更好维护;并且Consul提供了基于http的API,供客户端调用,并且能够实现对服务的健康检查和负载均衡。
客户端从consul获取开放平台中可用的服务,然后向用户选定的服务的端口发送服务调用请求,并基于该端口传输待处理数据,客户端在调用部署在开放平台上的服务时,会利用客户端的RPC内核调用操作系统内核中的消息传递功能,从而将服务调用请求发送至开放平台上的RPC服务端。RPC服务端再根据收到的服务调用请求中所包含的服务接口信息,确定对应的服务,并启动服务对应线程对待处理数据进行处理,实现服务分发。服务端的服务可以包括人脸比对SDK、面部关键点SDK、文字识别SDK、人脸检测SDK、人脸/人体追踪SDK等等。
在一种可能的实现方式中,所述基于服务的软件开发工具SDK调用方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行所述方法。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了一种基于服务的软件开发工具SDK调用装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种基于服务的软件开发工具SDK调用装置方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图6示出根据本公开实施例的一种基于服务的软件开发工具SDK调用装置的框图,如图6所示,所述装置60应用于服务端,包括:
服务信息注册模块61,用于将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;
调用请求接收模块62,用于接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;
调用请求响应模块63,用于利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
在一种可能的实现方式中,所述服务通过对所述SDK进行封装得到,所述服务对外提供基于数据序列化协议Protocol Buffer定义的接口;
所述调用请求接收,用于接收客户端基于所述Protocol Buffer定义生成的服务调用请求。
在一种可能的实现方式中,所述调用请求响应模块,用于在所述服务调用请求对应的处理任务占用处理资源超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第一预设数据类型的情况下,对所述服务调用请求对应的待处理数据进行存储;基于异步线程处理方式运行所述目标服务对所述待处理数据进行处理;
所述第一预设数据类型包括下述至少一种:
完整传输的视频文件、完整传输的音频文件。
在一种可能的实现方式中,所述调用请求响应模块,用于在所述服务调用请求对应的处理任务占用处理资源不超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第二预设数据类型的情况下,基于同步线程处理方式运行所述目标服务对所述服务调用请求的待处理数据进行处理;
所述第二预设数据类型包括下述至少一种:
流式传输的视频帧、流式传输的音频数据、图像。
在一种可能的实现方式中,所述装置还包括:
预加载模块,用于对所述服务中多个所述SDK共用的服务模块进行预加载。
在一种可能的实现方式中,所述调用请求接收模块,用于接收客户端基于远程过程调用方式发送的服务调用请求。
图7示出根据本公开实施例的一种基于服务的软件开发工具SDK调用装置的框图,如图7所示,所述装置70应用于服务管理平台,包括:
服务信息接收模块71,用于接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能;
可用服务检测模块72,用于检测所述服务端中的可用服务;
服务信息发送模块73,用于将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
图8示出根据本公开实施例的一种基于服务的软件开发工具SDK调用装置的框图,如图8所示,所述装置80应用于客户端,包括:
服务信息获取模块81,用于从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能;
调用请求发送模块82,用于响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息;
响应结果接收模块83,用于接收所述服务端对所述服务调用请求的响应结果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图9示出根据本公开实施例的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。
参照图9,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如互补金属氧化物半导体(CMOS)或电荷耦合装置(CCD)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如无线网络(WiFi),第二代移动通信技术(2G)或第三代移动通信技术(3G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。
图10示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图10,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OSXTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种基于服务的软件开发工具SDK调用方法,其特征在于,应用于服务端,包括:
将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;
接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;
利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
2.根据权利要求1所述的方法,其特征在于,所述服务通过对所述SDK进行封装得到,所述服务对外提供基于数据序列化协议Protocol Buffer定义的接口;
所述接收客户端发送的服务调用请求,包括:
接收客户端基于所述Protocol Buffer定义生成的服务调用请求。
3.根据权利要求1或2所述的方法,其特征在于,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:
在所述服务调用请求对应的处理任务占用处理资源超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第一预设数据类型的情况下,对所述服务调用请求对应的待处理数据进行存储;
基于异步线程处理方式运行所述目标服务对所述待处理数据进行处理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应,包括:
在所述服务调用请求对应的处理任务占用处理资源不超过设定阈值的情况下,或,在所述服务调用请求对应的处理任务的处理数据为第二预设数据类型的情况下,基于同步线程处理方式运行所述目标服务对所述服务调用请求的待处理数据进行处理。
5.根据权利要求1-4任一项所述的方法,其特征在于,在将服务端本地的服务的服务信息注册到服务管理平台中后,所述方法还包括:
对所述服务中多个所述SDK共用的服务模块进行预加载。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述接收客户端发送的服务调用请求,包括:
接收客户端基于远程过程调用方式发送的服务调用请求。
7.一种基于服务的软件开发工具SDK调用方法,其特征在于,应用于服务管理平台,包括:
接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能;
检测所述服务端中的可用服务;
将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
8.一种基于服务的软件开发工具SDK调用方法,其特征在于,应用于客户端,包括:
从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能;
响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息;
接收所述服务端对所述服务调用请求的响应结果。
9.一种基于服务的软件开发工具SDK调用装置,其特征在于,应用于服务端,包括:
服务信息注册模块,用于将服务端本地的服务的服务信息注册到服务管理平台中,所述服务用于实现人工智能算法SDK的功能;
调用请求接收模块,用于接收客户端发送的服务调用请求,所述服务调用请求由客户端基于从所述服务管理平台获取的可用服务的服务信息发起,所述服务调用请求中包含所请求的目标服务的目标服务信息;
调用请求响应模块,用于利用所述目标服务信息对应的目标服务对所述服务调用请求进行响应。
10.一种基于服务的软件开发工具SDK调用装置,其特征在于,应用于服务管理平台,包括:
服务信息接收模块,用于接收服务端注册的服务的服务信息,所述服务用于实现SDK的功能;
可用服务检测模块,用于检测所述服务端中的可用服务;
服务信息发送模块,用于将所述可用服务的服务信息发送给客户端,以便所述客户端基于可用服务的服务信息,向服务端发送服务调用请求。
11.一种基于服务的软件开发工具SDK调用装置,其特征在于,应用于客户端,包括:
服务信息获取模块,用于从服务管理平台获取服务端可用服务的服务信息,所述服务用于实现SDK的功能;
调用请求发送模块,用于响应于用户触发的对目标服务的调用指令,根据所述目标服务的目标服务信息,向服务端发送服务调用请求,所述服务调用请求中包含所请求的目标服务的目标服务信息;
响应结果接收模块,用于接收所述服务端对所述服务调用请求的响应结果。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至8中任意一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110633139.XA CN113377465A (zh) | 2021-06-07 | 2021-06-07 | 基于服务的sdk调用方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110633139.XA CN113377465A (zh) | 2021-06-07 | 2021-06-07 | 基于服务的sdk调用方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377465A true CN113377465A (zh) | 2021-09-10 |
Family
ID=77576140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110633139.XA Pending CN113377465A (zh) | 2021-06-07 | 2021-06-07 | 基于服务的sdk调用方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377465A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113973126A (zh) * | 2021-10-21 | 2022-01-25 | 上海波顿诺华智能科技有限公司 | 车端子系统间的通信方法、装置、电子设备及介质 |
CN114172946A (zh) * | 2021-12-06 | 2022-03-11 | 京东科技信息技术有限公司 | 请求结果发送方法、装置、电子设备和计算机可读介质 |
CN114301970A (zh) * | 2021-12-21 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 服务调用方法、装置、电子设备及存储介质 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN116560857A (zh) * | 2023-06-29 | 2023-08-08 | 北京轻松筹信息技术有限公司 | Agi平台调用管理方法、装置、存储介质及电子设备 |
WO2023184810A1 (zh) * | 2022-03-29 | 2023-10-05 | 上海商汤智能科技有限公司 | 应用程序定义方法及装置、电子设备、存储介质和计算机程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964739A (zh) * | 2009-07-22 | 2011-02-02 | 中国移动通信集团公司 | 数据传送方法、装置及系统 |
EP2975566A1 (en) * | 2014-07-16 | 2016-01-20 | Xiaomi Inc. | Service registration updating method, device, server and client side |
CN108681446A (zh) * | 2018-05-11 | 2018-10-19 | 国家气象中心 | 基于组件服务的众创性气候算法管理系统及方法 |
CN109815025A (zh) * | 2018-12-17 | 2019-05-28 | 顺丰科技有限公司 | 业务模型调用方法、装置及存储介质 |
CN110311900A (zh) * | 2019-06-19 | 2019-10-08 | 微梦创科网络科技(中国)有限公司 | 一种服务调用方法、装置、电子设备及存储介质 |
CN111161085A (zh) * | 2019-11-28 | 2020-05-15 | 泰康保险集团股份有限公司 | 业务请求处理方法、装置、电子设备及计算机可读介质 |
CN111666745A (zh) * | 2020-06-03 | 2020-09-15 | 中国建设银行股份有限公司 | 一种文件下载方法、装置、服务器及介质 |
CN112114979A (zh) * | 2020-08-31 | 2020-12-22 | 厦门安胜网络科技有限公司 | 远程过程调用方法和装置 |
-
2021
- 2021-06-07 CN CN202110633139.XA patent/CN113377465A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964739A (zh) * | 2009-07-22 | 2011-02-02 | 中国移动通信集团公司 | 数据传送方法、装置及系统 |
EP2975566A1 (en) * | 2014-07-16 | 2016-01-20 | Xiaomi Inc. | Service registration updating method, device, server and client side |
CN108681446A (zh) * | 2018-05-11 | 2018-10-19 | 国家气象中心 | 基于组件服务的众创性气候算法管理系统及方法 |
CN109815025A (zh) * | 2018-12-17 | 2019-05-28 | 顺丰科技有限公司 | 业务模型调用方法、装置及存储介质 |
CN110311900A (zh) * | 2019-06-19 | 2019-10-08 | 微梦创科网络科技(中国)有限公司 | 一种服务调用方法、装置、电子设备及存储介质 |
CN111161085A (zh) * | 2019-11-28 | 2020-05-15 | 泰康保险集团股份有限公司 | 业务请求处理方法、装置、电子设备及计算机可读介质 |
CN111666745A (zh) * | 2020-06-03 | 2020-09-15 | 中国建设银行股份有限公司 | 一种文件下载方法、装置、服务器及介质 |
CN112114979A (zh) * | 2020-08-31 | 2020-12-22 | 厦门安胜网络科技有限公司 | 远程过程调用方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113973126A (zh) * | 2021-10-21 | 2022-01-25 | 上海波顿诺华智能科技有限公司 | 车端子系统间的通信方法、装置、电子设备及介质 |
CN114172946A (zh) * | 2021-12-06 | 2022-03-11 | 京东科技信息技术有限公司 | 请求结果发送方法、装置、电子设备和计算机可读介质 |
CN114301970A (zh) * | 2021-12-21 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 服务调用方法、装置、电子设备及存储介质 |
CN114301970B (zh) * | 2021-12-21 | 2023-10-17 | 北京达佳互联信息技术有限公司 | 服务调用方法、装置、电子设备及存储介质 |
WO2023184810A1 (zh) * | 2022-03-29 | 2023-10-05 | 上海商汤智能科技有限公司 | 应用程序定义方法及装置、电子设备、存储介质和计算机程序产品 |
CN115292074A (zh) * | 2022-10-09 | 2022-11-04 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN115292074B (zh) * | 2022-10-09 | 2023-01-24 | 中科星图测控技术(合肥)有限公司 | 一种基于gRPC协议的轨道分析算法服务的调用方法和装置 |
CN116560857A (zh) * | 2023-06-29 | 2023-08-08 | 北京轻松筹信息技术有限公司 | Agi平台调用管理方法、装置、存储介质及电子设备 |
CN116560857B (zh) * | 2023-06-29 | 2023-09-22 | 北京轻松筹信息技术有限公司 | Agi平台调用管理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377465A (zh) | 基于服务的sdk调用方法及装置、电子设备和存储介质 | |
EP3772700A1 (en) | Method and device for encrypting model of neural network, and storage medium | |
CN112947823A (zh) | 会话处理方法、装置、设备及存储介质 | |
CN112465843A (zh) | 图像分割方法及装置、电子设备和存储介质 | |
CN112420217B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN112905350A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN106991018B (zh) | 界面换肤的方法及装置 | |
CN113206781B (zh) | 客户端控制方法、装置、设备及存储介质 | |
EP3051772A1 (en) | Method and apparatus for accessing network | |
CN111177013A (zh) | 日志数据获取方法、装置、计算机设备及存储介质 | |
CN111523136A (zh) | 应用程序的权限管理方法、装置、设备及存储介质 | |
CN114138439A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN113420338A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114035902A (zh) | 应用程序开发平台及方法、电子设备和存储介质 | |
KR20230005106A (ko) | 작업 처리 시스템, 전자 기기와 저장 매체 | |
CN113312103A (zh) | 智能摄像机的软件定义方法及装置、电子设备和存储介质 | |
CN113377664A (zh) | 模型测试方法及装置、电子设备和存储介质 | |
CN112839065A (zh) | 信息处理方法、装置、第一设备及存储介质 | |
CN113867914A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN113691526A (zh) | 基于WebRTC的推流方法、装置、系统、设备和介质 | |
CN111783643A (zh) | 人脸识别的方法、装置、电子设备及存储介质 | |
CN113095485B (zh) | 性能指标确定方法及装置、系统、电子设备和存储介质 | |
CN112738231B (zh) | 布控方法及装置、电子设备和存储介质 | |
CN114513479B (zh) | 消息收发方法、装置、终端、服务器及存储介质 | |
CN113259310B (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 |