CN114780265A - 一种基于dsl的跨系统服务调用方法、装置及相关设备 - Google Patents
一种基于dsl的跨系统服务调用方法、装置及相关设备 Download PDFInfo
- Publication number
- CN114780265A CN114780265A CN202210542478.1A CN202210542478A CN114780265A CN 114780265 A CN114780265 A CN 114780265A CN 202210542478 A CN202210542478 A CN 202210542478A CN 114780265 A CN114780265 A CN 114780265A
- Authority
- CN
- China
- Prior art keywords
- target
- service
- service object
- dsl
- dictionary
- 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 77
- 230000008569 process Effects 0.000 claims abstract description 49
- 230000006870 function Effects 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 15
- 230000014509 gene expression Effects 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000011165 process development Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于DSL的跨系统服务调用方法、装置及相关设备,所述方法包括:对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;从热加载的服务字典中获取所述目标服务对象的目标路由信息;基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。由于所述服务字典为热加载的,能够支持服务字典的热更新,当服务对象进行升级等更新后,只需要同步更新所述服务字典,即可保证目标流程文件中所调用的服务对象为最新版本,从而实现了动态热更新和服务能力的及时生效。
Description
技术领域
本申请涉及业务流程开发技术领域,更具体地说,是涉及一种基于DSL的跨系统服务调用方法、装置及相关设备。
背景技术
对于跨系统的能力调用,通常地可以依据系统类型和安全特性采取不同的交互策略。一般而言,云服务系统之间的能力调用可以采用开放的RPC方式;系统内部的能力调用不管是C/S架构或者B/S架构,均可以采用基于内部通信协议的RPC方式进行交互;而对于纯中后台服务器的服务治理模块之间的能力调用,则存在多种方案:如果不考虑性能问题,又想起到服务隔离的效果,一般采用RPC方式;如果是服务治理模块之间耦合比较紧密,也可以采用中间件形式。
RPA(Robotic Process Automation,机器人流程自动化)系统属于天然的连接型系统,需要通过跨系统的能力调用来实现异构系统之间的交互,因此,RPA系统的包容能力和扩展能力是关注重点。RPA系统一般采用C/S架构的落地部署方式,其扩展能力可以体现为需要动态热更新和服务能力的及时生效,而现有的RPA系统的实现语言存在一定的局限性,系统内部的实现方式必须依赖同一种编程语言或者依赖于内部的对应加壳,缺乏灵活性,往往难以实现动态热更新和服务能力的及时生效。
发明内容
有鉴于此,本申请提供了一种基于DSL的跨系统服务调用方法、装置及相关设备,以实现跨系统的服务调用,并支持动态热更新和服务能力的及时生效。
为实现上述目的,本申请第一方面提供了一种基于DSL的跨系统服务调用方法,包括:
对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
从热加载的服务字典中获取所述目标服务对象的目标路由信息;
基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
优选地,所述服务字典为采用可扩展标记语言XML编写的文件;
所述服务字典记载有各服务对象所属的服务模块、服务节点、路由规则以及版本信息;
由服务对象的服务模块、服务节点、路由规则以及版本信息确定所述服务对象的路由信息。
优选地,所述路由规则包括绝对路由和/或相对路由。
优选地,所述目标流程文件符合预设的AST语言规则,所述AST语言规则为在C++语法的基础上扩展得到的。
优选地,所述AST语言规则的扩展部分包括基于数值的自定义列表、基于字符串的自定义列表、自定义键值对、基于数值的函数调用、基于字符串的函数调用、基于表达式的函数调用、静态函数支撑以及函数的连续调用。
优选地,所述对目标流程文件进行解析的过程,包括:
通过预设的AST解析引擎对所述目标流程文件进行解析,所述AST解析引擎被配置为具备对所述目标流程文件进行词法分析、语法分析和语义分析的能力。
优选地,所述从热加载的服务字典中获取所述目标服务对象的目标路由信息的过程,包括:
通过所述AST解析引擎对所述服务字典进行解析,得到服务对象和路由信息的映射关系;
从所述映射关系中获取所述目标服务对象的目标路由信息;
其中,所述AST解析引擎还被配置为具备对所述服务字典进行词法分析、语法分析和语义分析的能力。
本申请第二方面提供了一种基于DSL的跨系统服务调用装置,包括:
流程解析单元,用于对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
服务获取单元,用于从热加载的服务字典中获取所述目标服务对象的目标路由信息;
服务调用单元,用于基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
本申请第三方面提供了一种基于DSL的跨系统服务调用设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述的基于DSL的跨系统服务调用方法的各个步骤。
本申请第四方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的基于DSL的跨系统服务调用方法的各个步骤。
经由上述的技术方案可知,本申请首先对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息。其中,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中。然后,从热加载的服务字典中获取所述目标服务对象的目标路由信息。所述目标路由信息指向了目标服务对象,通过所述目标路由信息,可以接入至所述目标服务对象。最后,基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。由于所述服务字典为热加载的,能够支持服务字典的热更新,当服务对象进行升级等更新后,只需要同步更新所述服务字典,即可保证目标流程文件中所调用的服务对象为最新版本,从而实现了动态热更新和服务能力的及时生效。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的基于DSL的跨系统服务调用方法的示意图;
图2示例了本申请实施例公开的基于DSL的跨系统服务调用方法中的工作流示意图;
图3为本申请实施例公开的基于DSL的跨系统服务调用装置的示意图;
图4为本申请实施例公开的基于DSL的跨系统服务调用设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
对于可以支撑多种主流语言的RPA系统,如果要实现跨系统服务能力调用的热扩展,可以通过语言级的融合调用来实现所有的外部服务能力的整合。如此一来,在RPA系统内可以像调用内部接口一样进行流程的丝滑编排,编排过程仅需要关心服务能力的作用及参数,而不需要关心接口本身的实现方式。此外,实现语言模板的热更和生效即可实现指定的服务功能。因此,本申请利用DSL(Domain Specific Language领域特定语言)实现各服务能力的整合,同时通过Addins的动态加载和生效来实现动态扩容的服务能力。其中,Addins是功能性的插件,配合业务流程系统使用,实现业务流程系统相关的实体功能。
下面介绍本申请实施例提供的基于DSL的跨系统服务调用方法。请参阅图1,本申请实施例提供的基于DSL的跨系统服务调用方法可以包括如下步骤:
步骤S101,对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于该目标服务对象的参数信息。
其中,该目标服务对象采用领域特定语言DSL的形式记载在该目标流程文件中。可以理解的是,目标流程文件包含对业务流程的语言描述,体现在多个业务节点以及业务节点之间的逻辑关系,其中,服务对象包含在业务节点之中,用于实现特定的服务能力,而这些服务能力可能部署在不同的系统中。
示例性地,服务对象是一种高级数据抽象,可以是基于数据能力的抽象设计,如UIA类的窗口对象、元素对象、网页对象,或者,如协议类的Http、FTP、SMTP等。此外,服务对象还可以是通用软件类的Word、Excel、Outlook等,或者基础数据类的文本、数值、布尔值、容器类型、键值对等。
步骤S102,从热加载的服务字典中获取该目标服务对象的目标路由信息。
其中,服务字典记载有各服务对象及其路由信息的映射关系,通过该目标路由信息可以接入相应的目标服务对象。热加载是指可以在不重启的情况下让发生更改的服务字典生效,当存在某些服务对象出现新的版本或地址发生变动等情况时,可以通过更新服务字典中的相应映射项,使得更新部分及时生效。
步骤S103,基于该目标路由信息和对应于该目标服务对象的参数信息,调用该目标服务对象。
本申请实施例首先对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于该目标服务对象的参数信息。其中,该目标服务对象采用领域特定语言DSL的形式记载在该目标流程文件中。然后,从热加载的服务字典中获取该目标服务对象的目标路由信息。该目标路由信息指向了目标服务对象,通过该目标路由信息,可以接入至该目标服务对象。最后,基于该目标路由信息和对应于该目标服务对象的参数信息,调用该目标服务对象。由于该服务字典为热加载的,能够支持服务字典的热更新,当服务对象进行升级等更新后,只需要同步更新该服务字典,即可保证目标流程文件中所调用的服务对象为最新版本,从而实现了动态热更新和服务能力的及时生效。
在本申请的一些实施例中,上面提及的服务字典为采用可扩展标记语言XML编写的文件,该服务字典记载有各服务对象所属的服务模块、服务节点、路由规则以及版本信息。
其中,由服务对象的服务模块、服务节点、路由规则以及版本信息确定该服务对象的路由信息。
具体的,服务模块表征着采用哪些服务能力,服务节点表征着服务能力设置在哪些服务节点上,版本信息表征着服务能力的版本情况,路由规则描述了如何接入服务能力。
在本申请的一些实施例中,所述路由规则包括绝对路由和相对路由中的至少一种,不同的服务对象可以设定不同的路由规则,即可根据实际需要以自定义的方式制定路由规则,也可以在服务字典内部写死路由规则。
在本申请的一些实施例中,上面提及的目标流程文件符合预设的AST语言规则,该AST语言规则为在C++语法的基础上扩展得到的。
具体地,该AST语言规则的关键字可以包括:
普通字符类:and、AND、or、OR、true、TRUE、false、FALSE;
特殊字符类:!、~、+、-、*、/、%、>、>=、<、<=、==、!=、&&、||、===、!==、<>、><、&。
其中,部分关键字的介绍如表1所示。可以理解的是,其他未被介绍的关键字以及表格内容标记为“略”的情形,可以依据现有的C++语法规则进行解释。
表1:关键字描述
其中,转义字符(Escape character)为通过在字母前加“\”来表示不能显示的ASCII字符,如\0、\t、\n等,本申请实施例对转义字符的介绍如表2所示。
表2:转义字符描述
转义字符 | 意义 | ASCII码值 |
\a | 响铃(BELL) | 007 |
\b | 退格(BS),将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF),将当前位置移到下一行开头 | 010 |
\r | 回车(CR),将当前位置移到本行开头 | 013 |
\t | 水平制表(HT)(跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符”\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\dd | 1到3位八进制数所代表的任意字符 | 两位八进制 |
\d | 1到3位八进制数所代表的任意字符 | 八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |
\xh | 十六进制所代表的任意字符 | 十六进制 |
\uhhhh | 十六进制所代表的任意字符 | 十六进制 |
\Uhhhhhhhh | 十六进制所代表的任意字符 | 十六进制 |
在本申请的一些实施例中,该AST语言规则的扩展部分可以包括基于数值的自定义列表、基于字符串的自定义列表、自定义键值对、基于数值的函数调用、基于字符串的函数调用、基于表达式的函数调用、静态函数支撑以及函数的连续调用。
其中,该AST语言规则的扩展部分可以是对C++语法规则的特性扩展。示例性地,该AST语言规则对C++语法规则的特性扩展可以包括:
(1)形如[1...100]的自定义列表,默认步长为1或-1;
(2)形如[1,“啊啊”,表达式(expr)]的自定义列表;
(3)自定义键值对;
(4)形如Number.function(arg1,...)的函数调用,其中,Number为数值;
(5)形如Text.function(arg1,...)的函数调用,其中,Text为文本;
(6)形如Exp.function(arg1,...)的函数调用,其中,Exp为表达式;
(7)形如symbol.function(arg1,...)的函数调用,其中,symbol为类(Class);
(8)形如A.func1().func2()的连续调用,其中,A为数值、文本、表达式或类中的任何一种。
通过采用符合该AST语言规则的AST语言来对业务工作流进行开发,可以有效的实现业务流程自动化本地化量化部署,并且在一定程度上支持二次开发,可以方便的拓展覆盖主流编程语言(如C++、Java、python、js、Go等),完全实现RPA业务工作流自动化。
在本申请的一些实施例中,上述步骤S101对目标流程文件进行解析的过程,可以包括:
通过预设的AST解析引擎对该目标流程文件进行解析。其中,该AST解析引擎被配置为具备对目标流程文件进行词法分析、语法分析和语义分析的能力。
其中,该AST解析引擎可以是在现有的主流AST引擎的基础上,依据上面提及的AST语言规则定制而成。在词法分析、语法分析中,可以实现通用化的语法报错。进一步地,可以实现业务层面的分析及报错。
具体地,假若直接沿用现有的主流语言(如Python、C++、JS等)作为RPA的主开发语言,采用现有语言的SDK内对远程服务进行对象封装,通过内部实现模板化的远程调度,并且SDK内部需要支持按版本动态加载和动态更新生效。那么,需要开启虚拟runtime环境,以支持多流程在不同环境的运行,且在调试过程控制必须接入主流语言的调试引擎,并能操控和读写。如果无法完全控制主流AST引擎,那么将无法控制错误提示,不能实现精细化报错。而对于复杂的业务工作流,排错成本非常高,不利于项目的落地执行。而由于主流AST引擎的复杂性及庞大性,完全控制主流AST引擎,则需要非常大的代价,如开发投入的人力成本及时间成本等。
基于此,在上述实施例中,采用本申请实施例中自定制的AST解析引擎对目标流程文件进行解析,则由于该AST解析引擎的整个执行过程都在完全掌控中,在语义分析中可以实现业务层面的分析及报错,例如,当发现参数不正确时,产生报错:提示应该是什么类型的参数,而现在是什么类型参数;当发现枚举参数的值不在枚举范围内时产生报错:提示应该限定在哪些范围,而现在处于什么范围。
在本申请的一些实施例中,上述步骤S102从热加载的服务字典中获取目标服务对象的目标路由信息的过程,可以包括:
S1,通过该AST解析引擎对所述服务字典进行解析,得到服务对象和路由信息的映射关系。
S2,从该映射关系中获取目标服务对象的目标路由信息。
其中,该AST解析引擎还被配置为具备对服务字典进行词法分析、语法分析和语义分析的能力。
可以理解的是,步骤S102的目的为获取目标服务对象的目标路由信息,依据上述S2,目标路由信息实际上可以从上述映射关系中获取得到,而S1中映射关系的获取过程可以在上述步骤S101之后执行,也可以在上述步骤S101之前执行,只需要保证在S2之前顺利得到该映射关系即可。基于此,在本申请的一些实施例中,请参阅图2,可以事先对服务字典进行解析,得到服务对象和路由信息的映射关系,然后对目标流程文件进行解析,对于解析得到的每一个目标服务对象,从上述映射关系中匹配得到对应于该目标服务对象的目标路由信息,然后在执行的时候,对于每一目标服务对象,通过该目标服务对象的目标路由信息,接入到该目标服务中并返回相应的执行结果,从而实现跨系统的服务调用。
下面对本申请实施例提供的基于DSL的跨系统服务调用装置进行描述,下文描述的基于DSL的跨系统服务调用装置与上文描述的基于DSL的跨系统服务调用方法可相互对应参照。
请参见图3,本申请实施例提供的基于DSL的跨系统服务调用装置,可以包括:
流程解析单元21,用于对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
服务获取单元22,用于从热加载的服务字典中获取所述目标服务对象的目标路由信息;
服务调用单元23,用于基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
在本申请的一些实施例中,所述服务字典为采用可扩展标记语言XML编写的文件,所述服务字典记载有各服务对象所属的服务模块、服务节点、路由规则以及版本信息。
其中,由服务对象的服务模块、服务节点、路由规则以及版本信息确定所述服务对象的路由信息。
在本申请的一些实施例中,所述路由规则可以包括绝对路由和相对路由中的至少一种。
在本申请的一些实施例中,所述目标流程文件符合预设的AST语言规则,所述AST语言规则为在C++语法的基础上扩展得到的。
在本申请的一些实施例中,所述AST语言规则的扩展部分可以包括基于数值的自定义列表、基于字符串的自定义列表、自定义键值对、基于数值的函数调用、基于字符串的函数调用、基于表达式的函数调用、静态函数支撑以及函数的连续调用。
在本申请的一些实施例中,流程解析单元21对目标流程文件进行解析的过程,可以包括:
通过预设的AST解析引擎对所述目标流程文件进行解析。
其中,所述AST解析引擎被配置为具备对所述目标流程文件进行词法分析、语法分析和语义分析的能力。
在本申请的一些实施例中,服务获取单元22从热加载的服务字典中获取所述目标服务对象的目标路由信息的过程,可以包括:
通过所述AST解析引擎对所述服务字典进行解析,得到服务对象和路由信息的映射关系;
从所述映射关系中获取所述目标服务对象的目标路由信息;
其中,所述AST解析引擎还被配置为具备对所述服务字典进行词法分析、语法分析和语义分析的能力。
本申请实施例提供的基于DSL的跨系统服务调用装置可应用于基于DSL的跨系统服务调用设备,如计算机等。可选的,图4示出了基于DSL的跨系统服务调用设备的硬件结构框图,参照图4,基于DSL的跨系统服务调用设备的硬件结构可以包括:至少一个处理器31,至少一个通信接口32,至少一个存储器33和至少一个通信总线34。
在本申请实施例中,处理器31、通信接口32、存储器33、通信总线34的数量为至少一个,且处理器31、通信接口32、存储器33通过通信总线34完成相互间的通信;
处理器31可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等;
存储器32可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器33存储有程序,处理器31可调用存储器33存储的程序,所述程序用于:
对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
从热加载的服务字典中获取所述目标服务对象的目标路由信息;
基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
从热加载的服务字典中获取所述目标服务对象的目标路由信息;
基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
综上所述:
本申请首先对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息。其中,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中。然后,从热加载的服务字典中获取所述目标服务对象的目标路由信息。所述目标路由信息指向了目标服务对象,通过所述目标路由信息,可以接入至所述目标服务对象。最后,基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。由于所述服务字典为热加载的,能够支持服务字典的热更新,当服务对象进行升级等更新后,只需要同步更新所述服务字典,即可保证目标流程文件中所调用的服务对象为最新版本,从而实现了动态热更新和服务能力的及时生效。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于DSL的跨系统服务调用方法,其特征在于,包括:
对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
从热加载的服务字典中获取所述目标服务对象的目标路由信息;
基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
2.根据权利要求1所述的方法,其特征在于,所述服务字典为采用可扩展标记语言XML编写的文件;
所述服务字典记载有各服务对象所属的服务模块、服务节点、路由规则以及版本信息;
由服务对象的服务模块、服务节点、路由规则以及版本信息确定所述服务对象的路由信息。
3.根据权利要求2所述的方法,其特征在于,所述路由规则包括绝对路由和/或相对路由。
4.根据权利要求1所述的方法,其特征在于,所述目标流程文件符合预设的AST语言规则,所述AST语言规则为在C++语法的基础上扩展得到的。
5.根据权利要求4所述的方法,其特征在于,所述AST语言规则的扩展部分包括基于数值的自定义列表、基于字符串的自定义列表、自定义键值对、基于数值的函数调用、基于字符串的函数调用、基于表达式的函数调用、静态函数支撑以及函数的连续调用。
6.根据权利要求4所述的方法,其特征在于,所述对目标流程文件进行解析的过程,包括:
通过预设的AST解析引擎对所述目标流程文件进行解析,所述AST解析引擎被配置为具备对所述目标流程文件进行词法分析、语法分析和语义分析的能力。
7.根据权利要求6所述的方法,其特征在于,所述从热加载的服务字典中获取所述目标服务对象的目标路由信息的过程,包括:
通过所述AST解析引擎对所述服务字典进行解析,得到服务对象和路由信息的映射关系;
从所述映射关系中获取所述目标服务对象的目标路由信息;
其中,所述AST解析引擎还被配置为具备对所述服务字典进行词法分析、语法分析和语义分析的能力。
8.一种基于DSL的跨系统服务调用装置,其特征在于,包括:
流程解析单元,用于对目标流程文件进行解析,得到需要调用的目标服务对象以及对应于所述目标服务对象的参数信息,所述目标服务对象采用领域特定语言DSL的形式记载在所述目标流程文件中;
服务获取单元,用于从热加载的服务字典中获取所述目标服务对象的目标路由信息;
服务调用单元,用于基于所述目标路由信息和对应于所述目标服务对象的参数信息,调用所述目标服务对象。
9.一种基于DSL的跨系统服务调用设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~7中任一项所述的基于DSL的跨系统服务调用方法的各个步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~7中任一项所述的基于DSL的跨系统服务调用方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542478.1A CN114780265A (zh) | 2022-05-18 | 2022-05-18 | 一种基于dsl的跨系统服务调用方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542478.1A CN114780265A (zh) | 2022-05-18 | 2022-05-18 | 一种基于dsl的跨系统服务调用方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780265A true CN114780265A (zh) | 2022-07-22 |
Family
ID=82409050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542478.1A Pending CN114780265A (zh) | 2022-05-18 | 2022-05-18 | 一种基于dsl的跨系统服务调用方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780265A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336927A (zh) * | 2013-06-07 | 2013-10-02 | 杭州世平信息科技有限公司 | 一种基于数据分类的数据防泄漏方法及其系统 |
CN104079482A (zh) * | 2013-03-26 | 2014-10-01 | 华为技术有限公司 | 一种选择路由路径的方法及装置 |
CN108897691A (zh) * | 2018-06-29 | 2018-11-27 | 百度在线网络技术(北京)有限公司 | 基于接口模拟服务的数据处理方法、装置、服务器和介质 |
CN109002362A (zh) * | 2017-06-06 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种服务方法、装置、系统以及电子设备 |
CN110633079A (zh) * | 2019-08-30 | 2019-12-31 | 微梦创科网络科技(中国)有限公司 | 一种基于yaml语言的业务开发方法及系统 |
CN111258773A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用流程信息处理方法、装置及电子设备 |
CN111262897A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用路由处理方法、装置及系统 |
CN111786886A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 一种消息处理方法、装置、系统、电子设备及存储介质 |
CN112351076A (zh) * | 2020-10-21 | 2021-02-09 | 咪咕文化科技有限公司 | 推荐系统api的生成方法、装置、电子设备及存储介质 |
CN112492060A (zh) * | 2020-11-18 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务资源处理方法及系统、代理设备、请求设备 |
CN112732466A (zh) * | 2021-01-26 | 2021-04-30 | 广州衡昊数据科技有限公司 | 一种服务调用方法、装置和系统 |
CN113590231A (zh) * | 2021-08-17 | 2021-11-02 | 上海微盟企业发展有限公司 | 组件加载方法、系统、装置及存储介质 |
CN114153626A (zh) * | 2021-10-29 | 2022-03-08 | 深圳市金蝶天燕云计算股份有限公司 | 一种服务集成过程抽象的方法、装置和计算机设备 |
-
2022
- 2022-05-18 CN CN202210542478.1A patent/CN114780265A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079482A (zh) * | 2013-03-26 | 2014-10-01 | 华为技术有限公司 | 一种选择路由路径的方法及装置 |
CN103336927A (zh) * | 2013-06-07 | 2013-10-02 | 杭州世平信息科技有限公司 | 一种基于数据分类的数据防泄漏方法及其系统 |
CN109002362A (zh) * | 2017-06-06 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种服务方法、装置、系统以及电子设备 |
CN108897691A (zh) * | 2018-06-29 | 2018-11-27 | 百度在线网络技术(北京)有限公司 | 基于接口模拟服务的数据处理方法、装置、服务器和介质 |
CN111262897A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用路由处理方法、装置及系统 |
CN111258773A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务调用流程信息处理方法、装置及电子设备 |
CN110633079A (zh) * | 2019-08-30 | 2019-12-31 | 微梦创科网络科技(中国)有限公司 | 一种基于yaml语言的业务开发方法及系统 |
CN111786886A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 一种消息处理方法、装置、系统、电子设备及存储介质 |
CN112351076A (zh) * | 2020-10-21 | 2021-02-09 | 咪咕文化科技有限公司 | 推荐系统api的生成方法、装置、电子设备及存储介质 |
CN112492060A (zh) * | 2020-11-18 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务资源处理方法及系统、代理设备、请求设备 |
CN112732466A (zh) * | 2021-01-26 | 2021-04-30 | 广州衡昊数据科技有限公司 | 一种服务调用方法、装置和系统 |
CN113590231A (zh) * | 2021-08-17 | 2021-11-02 | 上海微盟企业发展有限公司 | 组件加载方法、系统、装置及存储介质 |
CN114153626A (zh) * | 2021-10-29 | 2022-03-08 | 深圳市金蝶天燕云计算股份有限公司 | 一种服务集成过程抽象的方法、装置和计算机设备 |
Non-Patent Citations (2)
Title |
---|
[塞尔维亚]伊凡 库奇: "《C++函数式编程》", 31 January 2020 * |
马骋原: "基于智能合约的领域特定语言的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6446256B1 (en) | Extension of parsable structures | |
US7197739B2 (en) | Apparatus for automatically generating source code | |
US8418125B2 (en) | Incremental model refinement and transformation in generating commerce applications using a model driven architecture | |
US6427228B1 (en) | Combining a meta data file and java source code to dynamically create java classes and javabeans | |
CN101452386B (zh) | 使用正向推理链执行基于上下文模型的策略的方法及策略引擎 | |
US6321190B1 (en) | Infrastructure for developing application-independent language modules for language-independent applications | |
US20040098402A1 (en) | System and method for common code generation | |
US9378458B2 (en) | Method and apparatus for operating a finite state machine | |
US20140156282A1 (en) | Method and system for controlling target applications based upon a natural language command string | |
US6802059B1 (en) | Transforming character strings that are contained in a unit of computer program code | |
KR20040097909A (ko) | 명령에 대한 입력 파라미터의 반영 기반 프로세싱 | |
JPH08314728A (ja) | ソースプログラムをオブジェクトプログラムに変換する方法および装置 | |
US20140317642A1 (en) | Sharing of first class objects across multiple interpreted programming languages | |
CN109116828B (zh) | 一种控制器中模型代码配置方法和装置 | |
JP2001056814A (ja) | 言語非依存アプリケーションのためのアプリケーション非依存言語モジュール | |
US7302610B2 (en) | Identifying solutions to computer problems in main system by service system in distributed system landscape | |
CN111399842B (zh) | 一种代码编译方法及装置 | |
US7403933B2 (en) | Identifying solutions to computer problems in main system by service system | |
CN117234517A (zh) | 接口参数校验方法、装置、设备及存储介质 | |
CN114780265A (zh) | 一种基于dsl的跨系统服务调用方法、装置及相关设备 | |
Dantas et al. | Towards aspect-oriented programming for context-aware systems: A comparative study | |
Kraas | On the automation-supported derivation of domain-specific UML profiles considering static semantics | |
CN113961238A (zh) | 对象转换方法、装置及电子设备和存储介质 | |
US7861214B2 (en) | Computer method and apparatus for collapsing programming metamodels | |
CN112306493A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220722 |
|
RJ01 | Rejection of invention patent application after publication |