CN111580793A - 执行服务的方法、装置、计算机设备和存储介质 - Google Patents
执行服务的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111580793A CN111580793A CN202010366932.3A CN202010366932A CN111580793A CN 111580793 A CN111580793 A CN 111580793A CN 202010366932 A CN202010366932 A CN 202010366932A CN 111580793 A CN111580793 A CN 111580793A
- Authority
- CN
- China
- Prior art keywords
- service
- model
- node
- execution
- executing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请涉及一种执行服务的方法、装置、计算机设备和存储介质。所述方法包括:接收至少一个业务方的执行请求,执行请求携带模型标识,获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义,执行各个服务模型中的服务。通过领域专用语言自定义服务模型,解析自定义的服务模型的配置文件,按照配置文件中的定义的参数执行服务,提升服务模型的执行效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种执行服务的方法、装置、计算机设备和存储介质。
背景技术
在面向微服务架构体系建设中,服务节点已达成百上千个,随着提供服务的增多,按照业务提高单一的服务以及无法满足需求,为了解决该问题,提出了服务编排方法。已有的服务编排解决方案主要是通过预定义节点模板,然后通过节点模板编辑节点模型,再利用多个节点模型编排形成服务模型,进行服务模型实例化,最后执行整个编排好的服务,由于服务模型的执行过程需要每次都执行实例化过程,从而使得服务模型的执行效率低下。
发明内容
为了解决上述技术问题,本申请提供了一种执行服务的方法、装置、计算机设备和存储介质。
本申请提供了一种执行服务的方法,包括:
接收至少一个业务方的执行请求,执行请求携带模型标识;
获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;
执行各个服务模型中的服务。
本申请提供了一种执行服务的装置,包括:
请求接收模块,用于接收至少一个业务方的执行请求,执行请求携带模型标识;
配置文件获取模块,用于获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;
执行模块,用于执行各个服务模型中的服务。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收至少一个业务方的执行请求,执行请求携带模型标识;
获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;
执行各个服务模型中的服务。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收至少一个业务方的执行请求,执行请求携带模型标识;
获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;
执行各个服务模型中的服务。
上述执行服务的方法、装置、计算机设备和存储介质,所述方法包括:接收至少一个业务方的执行请求,执行请求携带模型标识;获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;执行各个服务模型中的服务。通过领域专用语言定义服务模型,通过领域专用语言自定义服务模型,解析自定义的服务模型的配置文件,按照配置文件中的定义的参数执行服务,提升服务模型的执行效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中执行服务的方法的应用环境图;
图2为一个实施例中执行服务的方法的流程示意图;
图3为一个实施例中服务节点的配置界面示意图;
图4为一个实施例中服务节点模型的配置界面示意图;
图5为另一个实施例中服务节点模型的配置界面示意图;
图6为一个实施例中服务模型的示意图;
图7为一个实施例中服务执行与干预的示意图;
图8为一个实施例中同步执行和干预的时序图;
图9为一个实施例中异步执行和干预的时序图;
图10为一个实施例中执行服务的装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中执行服务的方法的应用环境图。参照图1,该执行服务的方法应用于执行服务的***。该执行服务的***包括终端110和服务器120。终端110和服务器120通过网络连接。服务器120接收业务方的各个终端发送的执行请求,获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义,执行各个服务模型中的服务。
终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种执行服务的方法。本实施例主要以该方法应用于上述图1中服务器120来举例说明。参照图2,该执行服务的方法具体包括如下步骤:
步骤S201,接收至少一个业务方的执行请求。
在本具体实施例中,执行请求携带模型标识。
具体地,执行请求是指业务方发送的用于调用服务的请求,该请求中携带了服务模型标识,服务模型标识是用于唯一标识服务模型的标签数据。在构建服务模型时会定义服务模型的模型标识。不同的业务方可以调用同一个服务模型,同一业务方也可以调用多个服务模型。
步骤S202,获取与各个模型标识对应的服务模型的配置文件。
在本具体实施例中,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义。
步骤S203,执行各个服务模型中的服务。
具体地,每个服务模型都配置有对应的信息,配置信息构建的文件即为配置文件,配置文件中包括各个服务模型和服务节点模型的模型标识、服务模型的执行方式、执行条件,以及各个服务模型中的各个服务节点模型的执行方式、执行条件和节点参数等等。执行方式采用执行参数定义,其中执行参数包括线程数、同步参数和异步参数等等。执行条件根据业务需求自定义,即各个服务节点模型是否执行根据各个服务节点模型的条件参数确定。其中节点参数用于定义服务节点模型的各种属性。配置文件中与服务模型的有关的配置参数采用专用领域语言定义(domain specific language/DSL)。采用专用领域语言定义服务模型,在执行服务模型时,采用DSL解释性执行,在执行结束即释放所有绑定对象。
节点参数包括类型参数,类型参数用于定义服务节点模型的类型,服务节点模型的类别包括入口和/或出口,一个服务模型可以包括至少一个入口和/或一个出口,入口和出口服务节点模型分别采用入口标识和出口标识标记。当服务模型中的其中一个服务节点模型的类型参数为入口标识时,在执行该服务模型时第一个执行该服务节点模型中的服务。当服务模型中的其中一个服务节点模型的类型参数为出口标识时,在执行该服务模型时执行到该服务节点模型,该服务节点模型的当前服务执行完毕,得到当前服务的执行结果。
服务是指业务执行过程中提供的某种功能,如购物过程中包括查询、下单、支付等操作,每个操作都可以看作一个服务。
在一个实施例中,服务模型中可以仅包含有类型参数为入口标识的服务节点模型,即不包含由类型参数为出口标识的服务节点模型。不存在类型参数为出口标识的服务节点模型时,可以直接设置强制退出的触发条件,通过该触发条件触发退出该服务模型中服务的执行。还通过设置的服务节点模型的执行条件,确定各个服务节点模型是否执行,当未满足执行条件时,退出该服务模型中服务的执行。其中条件参数时用于判断各个服务节点是否执行的参数。条件参数中可以包括一个或多个约束条件的约束值。
在一个实施例中,执行各个服务模型中的服务时,可以对各个服务模型的执行干预,如暂停服务模型中服务的执行,也可以在暂停后重新启动该服务模型中服务的执行。
在一个实施例中,服务模型中的各个服务节点模型可以根据需求采用同步与异步以及多线程等方式执行。
在一个实施例中,执行服务模型中的服务时可以支持串行,并行,混合串并行,以及环形处理。
上述执行服务的方法,包括:接收至少一个业务方的执行请求,执行请求携带模型标识,获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义,执行各个服务模型中的服务。通过领域专用语言自定义服务模型,在执行服务模型时,采用即时(Just-In-Time)编译叠加缓存与脚本引擎的执行方式,提升服务模型的执行效率。在执行之后,保存服务模型中定义的对象,再次执行该服务时,可以直接调用对象,无需要再次加载,从而提升服务模型的执行效率。
在一个实施例中,上述执行服务的方法,包括:
步骤S301,接收定义的各个服务节点的节点标识。
步骤S302,按照业务需求配置各个服务节点的节点参数,得到各个服务节点的服务节点模型。
步骤S303,按照业务需求对个服务节点模型进行链接,生成各个业务需求对应的服务模型。
具体地,节点标识用于标识服务节点,节点参数用于描述服务节点。根据业务需求配置服务节点的节点参数。按照业务需求配置各个节点的属性参数、规则,链接条件和链接对象,以及各个服务节点模型的执行方式、执行次数、超时参数和请求参数等等。按照业务需求创建各个服务节点模型之间的链接,生成对应的服务模型。定义服务服务节点的节点标识,采用节点标识表示各个服务节点,定义时还包括定义的节点的请求类型、接口地址、请求头部信息、实体信息、超时设置、重试次数等等其中的全部或部分参数。其中服务节点也可以用脚本表示。在定义好服务节点后,对服务节点进行验证,验证通过则表示定义的服务节点为有效节点。在定义好服务节点后,配置服务节点的节点参数,节点参数包括节点名称,节点输入,执行方式,服务类型,输出绑定,如果服务类型为http,需要填入远程服务定义的接口名称(http名称),如果是script,则需要输入脚本。采用多个服务节点模型和链接条件组成具有特定业务逻辑的数据流程有向图,即为服务模型。配置好服务模型后,对生成的服务模型进行测试,测试通过的模型为配置好的模型。
在一个实施例中,服务模型可以进行修改,如可以对生成的服务模型中增加和/或删除服务节点模型,重新生成新的服务模型。
在一个实施例中,配置文件中还包括服务节点模型的类型参数,类型参数包括入口标识,执行各个所述服务模型中的服务,包括:从各个服务模型中的入口标识对应的服务节点模型开始执行服务。
具体地,从服务模型中的服务节点模型的类型参数为入口标识的服务节点模型开始执行该服务模型中的服务。即第一个被调用的服务节点模型的节点参数中包含类型参数,该类型参数包含入口标识。
在一个实施例中,类型参数还包括出口标识,从各个服务模型中的入口标识对应的服务节点模型开始执行服务之后,还包括:当服务模型执行最后一个服务节点模型的类型参数为出口标识时,得到服务模型的执行服务后的执行结果。
具体地,服务模型开始执行服务后,调用服务模型中的各个服务节点模型执行对应的服务,当调用的服务节点模型的类型参数为出口标识,则结束该服务模型对服务的执行,得到该服务模型执行该服务的执行结果。
在一个实施例中,配置文件中还包括服务节点模型的条件参数,执行服务模型的服务,包括:获取当前服务节点模型的上一服务节点模型的执行服务的执行结果,得到第一执行结果;当服务模型中的当前服务节点模型包括条件参数时,判断第一执行结果是否满足当前服务节点模型的条件参数;当满足时,执行当前节点服务模型的服务。
具体地,当前服务节点模型的上一服务节点模型可以为一个或多个服务节点模型,具体为一个或多个根据服务节点模型的配置确定,当当前服务节点模型的输入为多个服务节点模型的输出时,上一服务节点模型为多个服务节点模型组成的节点集合,当当前服务节点模型的输入为一个服务节点模型的输出时,上一服务节点模型为一个服务节点模型。条件参数是指预先设置的用于判断是否执行服务节点模型的约束条件,当上一服务节点模型执行当前服务的执行结果满足条件参数时,采用当前服务节点模型执行当前服务,反之,若不满足,则当前服务节点模型不执行该服务。根据服务模型中各个服务节点模型的执行结果确定下一个服务节点模型的是否执行,当存在多个执行路径时,根据执行结果自动确定执行路径。
在一个实施例中,配置文件中包括所述服务节点模型的执行参数,执行各个服务模型的服务,包括:按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务。
具体地,执行参数是指执行各个服务节点模型时的执行方式、请求方式、超时设置、重试次数、请求URL,头部信息、采用的线程、同步执行或异步执行等等中的部分或全部参数。根据配置的各个执行参数执行各个服务节点模型中的服务。
在一个实施例中,在各个服务节点模型对应的线程上执行各个服务节点模型的服务。按照预先配置的线程执行该服务节点模型的服务。
在一个实施例中,当当前服务节点模型的执行参数中包含异步参数时,当前服务模型在执行当前服务后,立即执行当前服务的下一服务,当当前服务节点模型的执行参数中包含同步参数时,执行当前服务后,等待接收当前服务的返回结果后,执行下一服务。
具体地,在执行服务时,根据各个服务节点模型的执行参数中的同步异步参数,确定该服务节点模型的执行服务的方式,当为异步参数时,则采用异步方式执行服务,即执行当前服务之后,立即执行下一服务,反之,若为同步执行,则在执行当前服务,并接受到当前服务的返回结果后,再执行下一个服务。采用同步执行还是异步执行,和服务节点模型的功能,以及业务需求有关。
在一个实施例中,执行服务模型的服务之后,还包括:当接收到暂停服务模型的暂停请求时,暂停服务模型的服务的执行。即在执行服务过程中随时可以进行干预,暂停服务的执行。
在一个实施例中,暂停服务模型的服务的执行之后,还包括:当接收到启动服务模型的启动请求时,继续执行服务模型的服务。若当前服务模型的状态为暂停时,在接收到服务模型的启动请求后,继续执行该服务模型中的服务。即从暂停的地方启动该服务模型中服务的执行。
在一个具体的实施例中,上述执行服务的方法,包括:
定义服务节点,其中服务节点可以是微服务接口或动态脚本定义,包含接口名称、请求地址、请求类型、头部信息、实体信息,超时以及重试次数设置,或一段脚本。
在本具体实施例中,如图3所示,图3为服务节点的配置界面示意图,图中包括各个参数和对的参数值,如接口名称:getUserByUserGroup,请求类型:post,接口地址:http://wofpbtrans.prd.com/up-api-rpc/up.UpFeatureDataService/getUser...,头部信息Headers:{‘template’:$‘template’,‘string’:‘string1’},实体信息body:{‘head’:${head},‘body’:{‘groupld’:${packgeCode},‘config’:{‘pageSize’:500},‘must’...,超时(S)60,重试次数:1。
验证服务节点。在验证通过后才可以使用。
创建服务节点模型,节点配置信息包含:节点名称,节点入参,同步执行还是异步执行,线程数,服务类型(包括http,script),脚本以及输出绑定等。服务类型是对远程服务定义的选择,如果是脚本,则需要填写一段脚本。
在本具体实施例中,如图4所示,图4为服务节点模型的配置界面示意图,图中包括节点名:启动营销活动提醒,节点输入:请输入Json格式的字符串,执行方式:同步or异步,服务类型:http;http名称:StartLotteryActivityAlam,输出绑定:“新增绑定”。
在本具体实施例中,如图5所示,图5为另一个服务节点模型的配置界面示意图,图中包括节点名:防骚扰场景值设置,节点输入:请输入Json格式的字符串,执行方式:同步or异步,服务类型:script;脚本:
输出绑定:来源:“请输入源参数”,“string”,目标:“scene”,“string”。
构建服务模型,通过多个节点模型以及链接条件组成具有特定业务逻辑的数据流程有向图。链接条件由脚本规则引擎驱动。
服务模型测试,服务模型配置完毕后,进行测试,测试通过的模型才进行投产。参照图6所示,图6为服务模型的示意图。图6中所展示的服务模型中,包括14个服务节点模型,分别为:根据活动id获取活动信息,是否发放礼品参数转换,是否需要发放问卷参数转换,构造http头部报文,拼接特征key,防骚扰场景值设置,根据用户包id获取用户群,防骚扰调用,根据分页id获取用户数据,生成待办服务、打活动标签,防骚扰减一、启动营销活动提醒和结束,各个服务节点模型之间的链接关系根据箭头确定。界面上还包括保存并测试、另存为新版、取消和保存等空间,通过上述控件实现对应功能。
服务模型执行,服务模型测试通过投产后,即逐个按照DSL(domain specificlanguage,DSL)定义进行服务节点模型的执行。
DSL设计主要包含ruleSet根节点、全局env节点,uprule节点;每个节点的作用如下:
env节点:设置全局变量。
uprule节点:包括属性和子节点,其中子节点包括input节点、condition节点、action节点、bind节点。
属性包含下一个执行节点,当包含多个下一执行节点时,可以用逗号对不同的执行节点进行分隔,类型属性type:分为start(入口标识)、normal、end(出口标识);标题属性,节点标识。
input节点:局部变量赋值。
condition节点:条件或条件组,使用规则引擎驱动,用于控制是否执行action动作。
action节点:包含service节点,主要是定义执行的动作,包含执行线程数,是否异步属性值。
bind节点:输出参数绑定,用于后续节点的作为参数或变量的使用。源数据类型、源数据属性、目标数据类型和目标数据属性。
执行服务后生成的DSL文件的示意图见图6。
服务执行过程中,如果发现问题或故障,可以随时进行暂停,问题处理后,可以进行流程恢复。参照图7,图7为服务执行与干预的示意图。图中包括规则ID、规则标题、接口配置和全局上下文等配置信息,以及流程图,该流程图为服务模型的流程图,当前状态包括执行中和暂停两种方式,根据当前状态可以干预服务模型的执行。版本是用于描述该服务模型的版本信息,如版本为1.02。
在一个具体的实施例中,参照图8,图8为同步执行和干预的时序图,图中包括业务方、规则调度器、规则引擎和规则编排干预界面,具体时序图包括以下步骤:
A1,服务模型编排。即当服务模型已投产,需要修改服务模型时,则通过规则编排干预界面调整服务模型,如新增,修改,删除服务节点模型等等。
A2,测试服务模型。通过规则编排干预界面发送对新增的服务模型,或者投产后修改的模型进行测试的测试请求。
A3,模型投产。通过规则编排干预界面修改服务模型的版本。即在产品需求变化,产生不同的版本时,通过切换版本来调整当前模型,在实际运行中同一个模型只运行一个版本。
A4,业务方向规则调度器发送服务模型执行请求。
A5,规则调度器根据服务模型执行请求构建请求报文,并触发执行。
A6,规则编排干预发送过程干预请求。
A7,规则引擎返回执行结果给规则调度器。
A8,规则调度器返回执行结果给业务方。
在一个具体的实施例中,参照图9,图9为异步执行和干预的时序图,图中包括业务方、规则调度器、规则引擎和规则编排干预界面,具体时序图包括以下步骤:
B1,服务模型编排。即当服务模型已投产,需要修改服务模型时,则通过规则编排干预界面调整服务模型,如新增,修改,删除服务节点模型等等。
B2,测试服务模型。通过规则编排干预界面发送对新增的服务模型,或者投产后修改的模型进行测试的测试请求。
B3,模型投产。通过规则编排干预界面修改服务模型的版本。即在产品需求变化,产生不同的版本时,通过切换版本来调整当前模型,在实际运行中同一个模型只运行一个版本。
B4,业务方向规则调度器发送服务模型执行请求。
B5规则调度器返回一个请求结果给业务方。
B6,规则调度器根据服务模型执行请求构建请求报文,并触发执行,将该请求报文推入消息队列中。
B7,消息队列返回执行结果的通知消息。
B8,规则引擎监控请求报文。
B9,消息队列发送报文数据至规则引擎。
B10,规则编排干预界面发送过程干预请求。
B11,规则引擎返回干预结果至规则编排干预界面。
在一个实施例中,规则引擎服务器即为服务编排核心驱动应用,规则引擎的调用是由规则调度服务驱动;同时规则引擎依赖底层mongodb数据库集群以及redis集群,mongodb负责存储DSL定义以及相关配置信息;redis集群主要负责存储请求报文,规则引擎会监听redis队列(消息队列),发现有数据,则启动线程进行执行,执行后结果一方面会返回给调度引擎,一方面会记录到ELK以及mongodb数据库中。
上述执行服务的方法,通过功能服务化,服务编排化,利用规则引擎驱动,可以大大减少开发重复造轮子,减少不必要的开发量,通过一定的脚本开发与服务编排即可实现产品所需能力,迅速投产,提升整体产品效率和节约人力成本。
在面向微服务架构体系建设中,服务节点已达成百上千个,随着提供服务的增多,将某些任务固化,通过自主设计的DSL,利用可动态配置的规则,进行服务编排来解决需求规则多变,流程自动化的问题,从而快速实现产品所需能力,降低开发成本以及提高投产效率。
在一个实施例中,服务编排还可以采用Choreography方式。可以将执行服务模型看作一种消息驱动模式,或者说是订阅发布模式,实现方案通过异步方式执行,即每笔业务到来后,监听该事件的服务,主动获取消息,处理,并按需发布自己的消息,采用该方式执行服务时,耦合度低,每个服务各司其职。
在一个实施例中,采用API网关执行服务。即采用简单的接口聚合/拆分的方式执行服务模型,每笔业务到来后,先到达网关,网关调用各个微服务,并最终聚合/拆分需反馈的结果。采用该方式执行服务时,对外接口相对稳定,可以利用LAN的带宽,弥补因特网的不足。
图2为一个实施例中执行服务的方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种执行服务的装置200,包括:
请求接收模块201,用于接收至少一个业务方的执行请求,执行请求携带模型标识。
配置文件获取模块202,用于获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义。
执行模块203,用于各个服务模型中的服务。
在一个实施例中,上述执行服务的装置200,还包括:
参数定义模块,用于接收定义的各个服务节点的节点标识。
服务节点模型生成模块,用于按照业务需求配置各个服务节点的节点参数,得到服务节点的服务节点模型。
服务模型生成模块,用于按照业务需求中预设的业务逻辑对个服务节点模型进行链接,生成业务需求对应的服务模型。
在一个实施例中,执行模块203具体用于从各个服务模型中的入口标识对应的服务节点模型开始执行服务,其中配置文件中还包括服务节点模型的类型参数,类型参数包括入口标识。
在一个实施例中,执行模块203具体用于当服务模型执行最后一个服务节点模型的类型参数为出口标识时,得到服务模型的执行服务后的执行结果,其中,类型参数还包括出口标识。
在一个实施例中,执行模块203具体用于获取当前服务节点模型的上一服务节点模型的执行服务的执行结果,得到第一执行结果,其中配置文件中还包括服务节点模型的条件参数;当服务模型中的当前服务节点模型包括条件参数时,判断第一执行结果是否满足当前服务节点模型的条件参数;当满足时,执行当前节点服务模型的服务。
在一个实施例中,执行模块203具体用于按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务。
在一个实施例中,执行模块203具体用于在各个服务节点模型对应的线程上执行各个服务节点模型的服务,执行参数包括线程参数。
在一个实施例中,执行模块203具体用于当当前服务节点模型的执行参数中包含异步参数时,当前服务模型在执行当前服务后,执行当前服务的下一服务,当当前服务节点模型的执行参数中包含所述同步参数时,执行当前服务后,等待接收当前服务的返回结果后,执行下一服务,执行参数还包括异步参数和同步参数。
在一个实施例中,上述执行服务的装置200,还包括:
请求缓存模块,用于通过消息队列缓存各个执行请求;
配置文件获取模块,用于按照消息队列中各个执行请求的执行顺序,获取各个模型标识对应的配置文件。
在一个实施例中,上述执行服务的装置200,还包括:
暂停模块,用于当接收到暂停服务模型的暂停请求时,暂停服务模型的服务的执行。
在一个实施例中,执行模块203具体还用于当接收到启动服务模型的启动请求时,继续执行服务模型的服务。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图11所示,该计算机设备通过***总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现执行服务的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行服务的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的执行服务的装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该执行服务的装置的各个程序模块,比如,图10所示的请求接收模块201、配置文件获取模块202和执行模块203。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的执行服务的方法中的步骤。
例如,图11所示的计算机设备可以通过如图10所示的执行服务的装置中的请求接收模块201执行接收至少一个业务方的执行请求,执行请求携带模型标识。计算机设备可以通过配置文件获取模块202执行获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义。计算机设备可通过执行模块203执行各个服务模型中的服务。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收至少一个业务方的执行请求,执行请求携带模型标识;获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;执行各个服务模型中的服务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收定义的各个服务节点的节点标识;按照业务需求配置各个服务节点的节点参数,得到各个服务节点的服务节点模型;按照业务需求中预设的业务逻辑对个服务节点模型进行链接,生成业务需求对应的服务模型。
在一个实施例中,配置文件中还包括服务节点模型的类型参数,类型参数包括入口标识,执行各个服务模型中的服务,包括:从各个服务模型中的入口标识对应的服务节点模型开始执行服务。
在一个实施例中,类型参数还包括出口标识,从各个服务模型中的入口标识对应的服务节点模型开始执行服务之后,处理器执行计算机程序时还实现以下步骤:当服务模型执行最后一个服务节点模型的类型参数为出口标识时,得到服务模型的执行服务后的执行结果。
在一个实施例中,配置文件中还包括服务节点模型的条件参数,执行服务模型的服务,包括:获取当前服务节点模型的上一服务节点模型的执行服务的执行结果,得到第一执行结果;当服务模型中的当前服务节点模型包括条件参数时,判断第一执行结果是否满足当前服务节点模型的条件参数;当满足时,执行当前节点服务模型的服务。
在一个实施例中,配置文件中包括服务节点模型的执行参数,执行各个服务模型的服务,包括:按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务。
在一个实施例中,执行参数包括线程参数,按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务,包括:在各个服务节点模型对应的线程上执行各个服务节点模型的服务。
在一个实施例中,执行参数包括同步状态参数,同步状态参数为异步参数,按照各个服务模型中各个服务节点模型的执行参数,执行各个服务模型中的各个服务节点模型的服务,包括:当当前服务节点模型的同步状态参数为异步参数时,当前服务模型在执行当前服务后,立即执行当前服务的下一服务,当当前服务节点模型的同步状态参数为同步参数时,执行当前服务后,等待接收当前服务的返回结果后,执行下一服务。
在一个实施例中,执行参数还包括异步参数和同步参数,按照各个服务模型中各个服务节点模型的执行参数,执行各个服务模型中的各个服务节点模型的服务,包括:当当前服务节点模型的执行参数中包含异步参数时,当前服务模型在执行当前服务后,执行当前服务的下一服务,当当前服务节点模型的执行参数中包含所述同步参数时,执行当前服务后,等待接收当前服务的返回结果后,执行下一服务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过消息队列缓存各个执行请求;获取与各个模型标识对应的服务模型的配置文件,包括:按照消息队列中各个执行请求的执行顺序,获取各个模型标识对应的配置文件。
在一个实施例中,执行服务模型的服务之后,处理器执行计算机程序时还实现以下步骤:当接收到暂停服务模型的暂停请求时,暂停服务模型的服务的执行。
在一个实施例中,暂停服务模型的服务的执行之后,处理器执行计算机程序时还实现以下步骤:当接收到启动服务模型的启动请求时,继续执行服务模型的服务。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收至少一个业务方的执行请求,执行请求携带模型标识;获取与各个模型标识对应的服务模型的配置文件,服务模型包括多个服务节点模型,按照各个服务节点模型的业务逻辑进行链接,得到服务模型,各个服务模型通过领域专用语言定义;执行各个服务模型中的服务。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收定义的各个服务节点的节点标识;按照业务需求配置各个服务节点的节点参数,得到各个服务节点的服务节点模型;按照业务需求中预设的业务逻辑对个服务节点模型进行链接,生成业务需求对应的服务模型。
在一个实施例中,配置文件中还包括服务节点模型的类型参数,类型参数包括入口标识,执行各个服务模型中的服务,包括:从各个服务模型中的入口标识对应的服务节点模型开始执行服务。
在一个实施例中,类型参数还包括出口标识,从各个服务模型中的入口标识对应的服务节点模型开始执行服务之后,计算机程序被处理器执行时还实现以下步骤:当服务模型执行最后一个服务节点模型的类型参数为出口标识时,得到服务模型的执行服务后的执行结果。
在一个实施例中,配置文件中还包括服务节点模型的条件参数,执行服务模型的服务,包括:获取当前服务节点模型的上一服务节点模型的执行服务的执行结果,得到第一执行结果;当服务模型中的当前服务节点模型包括条件参数时,判断第一执行结果是否满足当前服务节点模型的条件参数;当满足时,执行当前节点服务模型的服务。
在一个实施例中,配置文件中包括服务节点模型的执行参数,执行各个服务模型的服务,包括:按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务。
在一个实施例中,执行参数包括线程参数,按照各个服务节点模型的执行参数,执行对应的各个服务节点模型的服务,包括:在各个服务节点模型对应的线程上执行各个服务节点模型的服务。
在一个实施例中,执行参数还包括异步参数和同步参数,按照各个服务模型中各个服务节点模型的执行参数,执行各个服务模型中的各个服务节点模型的服务,包括:当当前服务节点模型的执行参数中包含异步参数时,当前服务模型在执行当前服务后,执行当前服务的下一服务,当当前服务节点模型的执行参数中包含所述同步参数时,执行当前服务后,等待接收当前服务的返回结果后,执行下一服务。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过消息队列缓存各个执行请求;获取与各个模型标识对应的服务模型的配置文件,包括:按照消息队列中各个执行请求的执行顺序,获取各个模型标识对应的配置文件。
在一个实施例中,执行服务模型的服务之后,计算机程序被处理器执行时还实现以下步骤:当接收到暂停服务模型的暂停请求时,暂停服务模型的服务的执行。
在一个实施例中,暂停服务模型的服务的执行之后,计算机程序被处理器执行时还实现以下步骤:当接收到启动服务模型的启动请求时,继续执行服务模型的服务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种执行服务的方法,其特征在于,所述方法包括:
接收至少一个业务方的执行请求,所述执行请求携带模型标识;
获取与各个所述模型标识对应的服务模型的配置文件,所述服务模型包括多个服务节点模型,按照各个所述服务节点模型的业务逻辑进行链接,得到所述服务模型,各个所述服务模型通过领域专用语言定义;
执行各个所述服务模型中的服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收定义的各个服务节点的节点标识;
按照业务需求配置各个所述服务节点的节点参数,得到各个所述服务节点的服务节点模型;
按照所述业务需求中预设的业务逻辑对各个所述服务节点模型进行链接,生成所述业务需求对应的服务模型。
3.根据权利要求1所述的方法,其特征在于,所述配置文件中还包括所述服务节点模型的类型参数,所述类型参数包括入口标识,所述执行各个所述服务模型中的服务,包括:
从各个所述服务模型中的入口标识对应的服务节点模型开始执行所述服务。
4.根据权利要求3所述的方法,其特征在于,所述类型参数还包括出口标识,所述从各个所述服务模型中的入口标识对应的服务节点模型开始执行所述服务之后,还包括:
当所述服务模型执行最后一个服务节点模型的类型参数为出口标识时,得到所述服务模型的执行所述服务后的执行结果。
5.根据权利要求1所述的方法,其特征在于,所述配置文件中还包括所述服务节点模型的条件参数,所述执行所述服务模型的服务,包括:
获取当前服务节点模型的上一服务节点模型的执行所述服务的执行结果,得到第一执行结果;
当所述服务模型中的当前服务节点模型包括条件参数时,判断所述第一执行结果是否满足所述当前服务节点模型的条件参数;
当满足时,执行所述当前节点服务模型的服务。
6.根据权利要求1所述的方法,其特征在于,所述配置文件中包括所述服务节点模型的执行参数,所述执行各个所述服务模型的服务,包括:
按照各个所述服务节点模型的执行参数,执行对应的各个所述服务节点模型的服务。
7.根据权利要求6所述的方法,其特征在于,所述执行参数包括线程参数,
所述按照各个所述服务节点模型的执行参数,执行对应的各个所述服务节点模型的服务,包括:在各个所述服务节点模型对应的线程上执行各个所述服务节点模型的服务。
8.根据权利要求6所述的方法,其特征在于,所述执行参数还包括异步参数和同步参数,
所述按照各个所述服务模型中各个所述服务节点模型的执行参数,执行所述各个所述服务模型中的各个服务节点模型的服务,包括:
当当前服务节点模型的执行参数中包含所述异步参数时,所述当前服务模型在执行当前服务后,执行所述当前服务的下一服务,
当所述当前服务节点模型的执行参数中包含所述同步参数时,执行所述当前服务后,等待接收所述当前服务的返回结果后,执行所述下一服务。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过消息队列缓存各个所述执行请求;
所述获取与各个所述模型标识对应的服务模型的配置文件,包括:按照所述消息队列中各个所述执行请求的执行顺序,获取各个所述模型标识对应的配置文件。
10.根据权利要求1所述的方法,其特征在于,所述执行所述服务模型之后,还包括:
当接收到暂停所述服务模型的暂停请求时,暂停所述服务模型的服务的执行。
11.根据权利要求10所述的方法,其特征在于,所述暂停所述服务模型的服务的执行之后,还包括:
当接收到启动所述服务模型的启动请求时,继续执行所述服务模型的服务。
12.一种执行服务的装置,其特征在于,所述装置包括:
请求接收模块,用于接收至少一个业务方的执行请求,所述执行请求携带模型标识;
配置文件获取模块,用于获取与各个所述模型标识对应的服务模型的配置文件,所述服务模型包括多个服务节点模型,按照各个所述服务节点模型的业务逻辑进行链接,得到所述服务模型,各个所述服务模型通过领域专用语言定义;
执行模块,用于执行各个所述服务模型中的服务。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366932.3A CN111580793A (zh) | 2020-04-30 | 2020-04-30 | 执行服务的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366932.3A CN111580793A (zh) | 2020-04-30 | 2020-04-30 | 执行服务的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111580793A true CN111580793A (zh) | 2020-08-25 |
Family
ID=72115227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010366932.3A Pending CN111580793A (zh) | 2020-04-30 | 2020-04-30 | 执行服务的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580793A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099973A (zh) * | 2020-09-16 | 2020-12-18 | 中国建设银行股份有限公司 | 服务调用方法和装置 |
CN112351076A (zh) * | 2020-10-21 | 2021-02-09 | 咪咕文化科技有限公司 | 推荐***api的生成方法、装置、电子设备及存储介质 |
CN112631696A (zh) * | 2020-12-29 | 2021-04-09 | 智慧神州(北京)科技有限公司 | 服务的编排方法、编排装置、处理器与服务的编排*** |
CN114827228A (zh) * | 2022-04-21 | 2022-07-29 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
-
2020
- 2020-04-30 CN CN202010366932.3A patent/CN111580793A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099973A (zh) * | 2020-09-16 | 2020-12-18 | 中国建设银行股份有限公司 | 服务调用方法和装置 |
CN112351076A (zh) * | 2020-10-21 | 2021-02-09 | 咪咕文化科技有限公司 | 推荐***api的生成方法、装置、电子设备及存储介质 |
CN112631696A (zh) * | 2020-12-29 | 2021-04-09 | 智慧神州(北京)科技有限公司 | 服务的编排方法、编排装置、处理器与服务的编排*** |
CN112631696B (zh) * | 2020-12-29 | 2021-10-22 | 智慧神州(北京)科技有限公司 | 服务的编排方法、编排装置、处理器与服务的编排*** |
CN114827228A (zh) * | 2022-04-21 | 2022-07-29 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
CN114827228B (zh) * | 2022-04-21 | 2024-04-09 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580793A (zh) | 执行服务的方法、装置、计算机设备和存储介质 | |
EP3364631B1 (en) | Dynamic orchestration of microservices | |
WO2021073202A1 (zh) | 智能合约处理方法、计算机设备及存储介质 | |
CN110244977A (zh) | 定制化软件生成方法、***、电子设备及存储介质 | |
US20150128103A1 (en) | System and method for automating application programming interface integration | |
US9766927B1 (en) | Data flow management in processing workflows | |
US8914804B2 (en) | Handling queues associated with web services of business processes | |
EP3357006A1 (en) | Workflow service using state transfer | |
CN107590188A (zh) | 一种自动化垂直细分领域的爬虫爬取方法及其管理*** | |
US10521286B2 (en) | System and method for interoperable cloud DSL to orchestrate multiple cloud platforms and services | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN111651140B (zh) | 基于工作流的服务方法及装置 | |
CN113064735A (zh) | 业务处理方法及装置 | |
CN115248692A (zh) | 一种支持多种深度学习框架模型云端部署的装置及方法 | |
CN110119269B (zh) | 控制任务对象的方法、装置、服务器及存储介质 | |
CN115774573B (zh) | 应用集成方法、装置、电子设备和存储介质 | |
WO2023124657A1 (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
CN114003384B (zh) | 任务管理的方法、装置和设备 | |
CN113726855B (zh) | 服务聚合方法、装置、电子设备以及计算机可读存储介质 | |
CN115811481A (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
CN113626001A (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN115599396A (zh) | 机器学习模型部署方法及其装置、设备、介质、产品 | |
CN108804088A (zh) | 协议处理方法和装置 | |
CN111897572A (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 |