CN110515598A - 一种基于命令行形式的集成服务的方法 - Google Patents
一种基于命令行形式的集成服务的方法 Download PDFInfo
- Publication number
- CN110515598A CN110515598A CN201910812027.3A CN201910812027A CN110515598A CN 110515598 A CN110515598 A CN 110515598A CN 201910812027 A CN201910812027 A CN 201910812027A CN 110515598 A CN110515598 A CN 110515598A
- Authority
- CN
- China
- Prior art keywords
- command
- template
- extension
- matching
- logic
- 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 52
- 238000012545 processing Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 4
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 238000011161 development Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于命令行形式的集成服务的方法,属于软件开发技术领域,本发明通过简单的扩展配置,复用建模过程中的代码产物,对模型内容进行高效地操作。使得熟练的开发人员能够关注建模内容本身,不需要关注开发环境。使得自动化流水线能够快速配置合适的命令,不需要重复冗余的工作。
Description
技术领域
本发明涉及软件开发技术,尤其涉及一种基于命令行形式的集成服务的方法。
背景技术
一方面,在企业软件开发领域,业务建模过程越来越复杂,依赖的运行环境难以配置,开发场景灵活多变。对于技术熟练的开发人员,配置开发环境,并熟悉复杂的图形页面,逐渐成为效率提高的瓶颈之一。直接高效地操作开发内容成了这类开发人员的诉求。
另一方面,随着云环境基础设施的完善,企业业务建模过程逐渐向云化开发、云化存储方向靠拢。开发内容的自动化流水线(CI/CD)也逐渐普及,但是基本的流水线脚本无法满足对于模型内容的检查,每次都要为特定的开发内容制定特定的流水线脚本。使用命令行对于现有功能的复用成了这类场景的诉求。
发明内容
为了解决以上技术问题,本发明提出了一种基于命令行形式的集成服务的方法,旨在解决软件开发领域,在开发环节或CI/CD环节中某些新类型的开发内容无法统一、一致、高效地完成既定操作任务的这个难题。为企业软件开发业务提供统一、一致、高效的操作服务,同时避免重复工作。
本发明通过简单的扩展配置,复用建模过程中的代码产物,对模型内容进行高效地操作。使得熟练的开发人员能够关注建模内容本身,不需要关注开发环境。使得自动化流水线能够快速配置合适的命令,不需要重复冗余的工作。
本发明的技术方案是:
一种基于命令行形式的集成服务的方法,主要通过如下步骤:
a)模板注册:模板按命令的格式规范补充到模板配置中,将在后续环节使用;
b)命令触发:用户或者其他自动化工具通过命令行输入命令,执行服务;
c)命令匹配:通过输入的命令匹配待执行的模板;
d)命令解析:通过上一步中模板解析输入的命令,得到命令实例,包括命令索引及命令参数;
e)命令校验:根据解析到的命令实例,校验命令是否符合要求;
f)命令扩展:如果命令扩展了接口,执行扩展逻辑,否则跳过;
g)命令执行:通过反射调用将模板中的操作服务调用起来,传入命令参数。
进一步的,
所述命令的格式分为四部分:固定标识、命令头、可选参数、必选参数。
其中,
固定标识:命令的开头,系统根据此标识找到入口,执行操作;
命令索引:命令的主体部分,程序根据主体部分的一个以上的命令索引作为导航,唯一确定要执行的命令;
可选参数:影响命令的处理逻辑,非必需,顺序是随意的,但要在必选参数之前;如果不录入会采用默认的逻辑;可选参数支持简写和全拼两种方式,通过“-”和“--”区分。
必选参数:决定命令的处理逻辑,必需,顺序是固定的。
进一步的,
命令匹配通过以下四个步骤实现,
1)解析模板:读取模板配置,获取所有命令的模板;
2)命令分解:按照命令的规范格式分解命令,得到命令的索引和参数;
3)遍历排列:依次对比1)中的模板和2)中命令的索引,按照匹配程度排列;
4)精准定位:根据3)中得到的排列,最靠前的选为匹配的命令模板;达到相同匹配程度的,按照先入优先原则选择;不满足最低要求导致没有匹配成功的模板,提示匹配失败。
进一步的,
命令扩展
通过以下步骤实现
1)扩展定义:定义接口用于扩展,扩展定义内部包括GetCommandName方法和Run(CommandInst inst)方法。GetCommandName方法是用于匹配命令模板中的名称,用于唯一确定扩展接口,Run(CommandInst inst)方法是扩展命令真正的执行逻辑。
2)解析扩展:加载所有扩展内容,将所有命令的扩展服务注册到Command注册器中,解析得到所有扩展的扩展名;
3)扩展匹配:将要执行的命令标识与2)中的扩展名对比,存在一致的扩展,执行4),否则执行5);
4)扩展逻辑:执行扩展逻辑,可能多次执行6);
5)默认逻辑:执行默认逻辑,执行6);
6)命令执行:根据传入的参数执行命令。
本发明的有益效果是
1、跨平台。本方法基于微软最新技术方案提出,具有良好的平台兼容性的基因,不依赖于系统,也不依赖于硬件环境;
2、多层次扩展。本方法针对业务场景,灵活的扩展能够快速适应软件开发多变的场景;
3、配置简单。本方法通过配置可以快速自定义命令,配置以友好可读的JSON格式展示;
4、应用场景广泛。本方法的使用场景不仅限于业务快速开发,同样可适用于自动化场景,比如CI/CD流程中。
5、服务开箱即用。本方法提出的集成方式,不需要复杂的安装部署,只要正确组织服务即可使用。
附图说明
图1是生命周期流程图;
图2是命令匹配详细流程图;
图3是命令扩展详细流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出了一种统一、高效的集成业务操作服务的方法,用于打成通过命令行的方式高效地操作模型文件、工程等开发内容的诉求,为企业业务建模平台提供统一的内容操作。通过跨平台灵活的扩展性和多层次的配置,满足云化环境下需求。
本发明是通过以下技术方案实现的:
1、关键概念
命令在本方法中指的是用于执行业务操作服务的请求,具体的为在cmd或shell中输入的指令。
模板在本方法中指的是一种类型的命令格式。
模板配置在本方法中描述的是所有命令的模板。
2、命令格式
命令的格式分为四部分:固定标识、命令头、可选参数、必选参数。参数部分不是必需的。
固定标识:命令的开头,系统根据此标识找到入口,执行本方法。
命令索引:命令的主体部分,程序根据主体部分的一个或者多个命令索引作为导航,唯一确定要执行的命令。
可选参数:影响命令的处理逻辑,非必需,顺序是随意的,但要在必选参数之前。如果不录入会采用默认的逻辑。支持简写和全拼两种方式,通过“-”和“--”区分。
必选参数:决定命令的处理逻辑,必需,顺序是固定的。如果不录入会导致命令出错。
格式规范如下:
3、命令处理流程
本方法中,命令的处理流程是基于命令生命周期这一核心概念设计而成,每一阶段是明确定义的。
如图1所示,
a)模板注册:模板按命令的格式规范补充到模板配置中,将在后续环节使用;
b)命令触发:用户或者其他自动化工具通过命令行输入命令,执行具体服务;
c)命令匹配:通过输入的命令匹配待执行的模板;
d)命令解析:通过上一步中模板解析输入的命令,得到命令实例,包括命令索引及命令参数;
e)命令校验:根据解析到的命令实例,校验命令是否符合要求,比如参数数量等;
f)命令扩展:如果命令扩展了接口,执行扩展逻辑,否则跳过;
g)命令执行:通过反射调用将模板中的操作服务调用起来,传入命令参数。
4、命令匹配
命令匹配是本方法操作流程中的主要步骤之一,通过以下四个步骤实现。
a)解析模板:读取模板配置,获取所有命令的模板;
b)命令分解:按照命令的规范格式分解命令,得到命令的索引和参数;
c)遍历排列:依次对比a中的模板和b中命令的索引,按照匹配程度排列;
d)精准定位:根据c中得到的排列,最靠前的选为匹配的命令模板;达到相同匹配程度的,按照先入优先原则选择;不满足最低要求导致没有匹配成功的模板,提示匹配失败。
图2中详细展开了命令匹配中的操作流程:
其中模版配置的格式及说明:
5、命令扩展
命令扩展是本方法中操作流程的又一主要步骤,通过以下步骤实现。
a)扩展定义:定义接口用于扩展,内部包括GetCommandName方法和Run(CommandInst inst)方法。前者是用于匹配命令模板中的名称,用于唯一确定扩展接口,后者是扩展命令真正的执行逻辑。
b)解析扩展:加载所有扩展内容,将所有命令的扩展服务注册到Command注册器中,解析得到所有扩展的扩展名;
c)扩展匹配:将要执行的命令标识与b中的扩展名对比,存在一致的扩展,执行d,否则执行e;
d)扩展逻辑:执行扩展逻辑,可能多次执行f;
e)默认逻辑:执行默认逻辑,执行f;
f)命令执行:根据传入的参数执行命令。
图3中详细展开了扩展实现的操作流程:
其中为了在扩展逻辑中能够执行命令相关操作,本方法中需要实现以下操作。以下操作中包括了常用的批量方法、命令操作方法。
需要提供的操作如下:
操作 | 描述 |
调用程序集方法 | 根据命令实例或者指定程序集方法反射调用程序集方法 |
命令定位 | 根据输入的命令定位模版配置中的命令模板 |
命令校验 | 校验输入命令的有效性 |
命令执行 | 根据输入的参数执行新命令 |
命令解析 | 根据输入的命令解析出匹配的模板,组装命令实例 |
与现有技术相比,本发明提出了多层次扩展的基础架构,能够更快捷、有效地应对企业软件,尤其是建模平台,在开发过程中开发内容层出不穷变化,操作服务要求高的问题。本发明提供的配置服务的方式最大限度的利用已经存在的服务,如果接口封装合理,可以实现零额外编码对接已有操作服务。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种基于命令行形式的集成服务的方法,其特征在于,
主要通过如下步骤:
a)模板注册:模板按命令的格式规范补充到模板配置中,将在后续环节使用;
b)命令触发:用户或者其他自动化工具通过命令行输入命令,执行服务;
c)命令匹配:通过输入的命令匹配待执行的模板;
d)命令解析:通过上一步中模板解析输入的命令,得到命令实例,包括命令索引及命令参数;
e)命令校验:根据解析到的命令实例,校验命令是否符合要求;
f)命令扩展:如果命令扩展了接口,执行扩展逻辑,否则跳过;
g)命令执行:通过反射调用将模板中的操作服务调用起来,传入命令参数。
2.根据权利要求1所述的方法,其特征在于,
命令的格式分为四部分:固定标识、命令头、可选参数、必选参数。
3.根据权利要求2所述的方法,其特征在于,
其中,
固定标识:命令的开头,系统根据此标识找到入口,执行操作;
命令索引:命令的主体部分,程序根据主体部分的一个以上的命令索引作为导航,唯一确定要执行的命令;
可选参数:影响命令的处理逻辑,非必需,顺序是随意的,但要在必选参数之前;如果不录入会采用默认的逻辑;
必选参数:决定命令的处理逻辑,必需,顺序是固定的。
4.根据权利要求3所述的方法,其特征在于,
所述可选参数支持简写和全拼两种方式,通过“-”和“--”区分。
5.根据权利要求1所述的方法,其特征在于,
命令匹配通过以下四个步骤实现,
1)解析模板:读取模板配置,获取所有命令的模板;
2)命令分解:按照命令的规范格式分解命令,得到命令的索引和参数;
3)遍历排列:依次对比1)中的模板和2)中命令的索引,按照匹配程度排列;
4)精准定位:根据3)中得到的排列,最靠前的选为匹配的命令模板;达到相同匹配程度的,按照先入优先原则选择;不满足最低要求导致没有匹配成功的模板,提示匹配失败。
6.根据权利要求1所述的方法,其特征在于,
命令扩展
通过以下步骤实现
1)扩展定义:定义接口用于扩展;
2)解析扩展:加载所有扩展内容,将所有命令的扩展服务注册到Command注册器中,解析得到所有扩展的扩展名;
3)扩展匹配:将要执行的命令标识与2)中的扩展名对比,存在一致的扩展,执行4),否则执行5);
4)扩展逻辑:执行扩展逻辑,可能多次执行6);
5)默认逻辑:执行默认逻辑,执行6);
6)命令执行:根据传入的参数执行命令。
7.根据权利要求6所述的方法,其特征在于,
扩展定义内部包括GetCommandName方法和Run(CommandInstinst)方法。
8.根据权利要求7所述的方法,其特征在于,
GetCommandName方法是用于匹配命令模板中的名称,用于唯一确定扩展接口,Run(CommandInstinst)方法是扩展命令真正的执行逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910812027.3A CN110515598A (zh) | 2019-08-30 | 2019-08-30 | 一种基于命令行形式的集成服务的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910812027.3A CN110515598A (zh) | 2019-08-30 | 2019-08-30 | 一种基于命令行形式的集成服务的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110515598A true CN110515598A (zh) | 2019-11-29 |
Family
ID=68628595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910812027.3A Pending CN110515598A (zh) | 2019-08-30 | 2019-08-30 | 一种基于命令行形式的集成服务的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110515598A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490977A (zh) * | 2002-10-17 | 2004-04-21 | 华为技术有限公司 | 通用路由平台命令行的解析方法 |
JP2007164353A (ja) * | 2005-12-12 | 2007-06-28 | Hitachi Information Systems Ltd | コマンド列作成システムと方法およびプログラム |
CN102754073A (zh) * | 2010-02-05 | 2012-10-24 | 微软公司 | 用于虚拟化的扩展点声明性注册 |
CN103914290A (zh) * | 2012-12-31 | 2014-07-09 | 杭州勒卡斯广告策划有限公司 | 一种操作命令处理方法及装置 |
US20160306875A1 (en) * | 2012-01-11 | 2016-10-20 | International Business Machines Corporation | Predicting a command in a command line interface |
CN106775937A (zh) * | 2016-12-02 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种命令行校验方法及装置 |
CN106802805A (zh) * | 2017-01-18 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种适用服务器管理的应用服务管理方法及装置 |
CN106909435A (zh) * | 2015-12-22 | 2017-06-30 | 北京网御星云信息技术有限公司 | 一种网络安全设备命令行的解析方法和装置 |
-
2019
- 2019-08-30 CN CN201910812027.3A patent/CN110515598A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490977A (zh) * | 2002-10-17 | 2004-04-21 | 华为技术有限公司 | 通用路由平台命令行的解析方法 |
JP2007164353A (ja) * | 2005-12-12 | 2007-06-28 | Hitachi Information Systems Ltd | コマンド列作成システムと方法およびプログラム |
CN102754073A (zh) * | 2010-02-05 | 2012-10-24 | 微软公司 | 用于虚拟化的扩展点声明性注册 |
US20160306875A1 (en) * | 2012-01-11 | 2016-10-20 | International Business Machines Corporation | Predicting a command in a command line interface |
CN103914290A (zh) * | 2012-12-31 | 2014-07-09 | 杭州勒卡斯广告策划有限公司 | 一种操作命令处理方法及装置 |
CN106909435A (zh) * | 2015-12-22 | 2017-06-30 | 北京网御星云信息技术有限公司 | 一种网络安全设备命令行的解析方法和装置 |
CN106775937A (zh) * | 2016-12-02 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种命令行校验方法及装置 |
CN106802805A (zh) * | 2017-01-18 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种适用服务器管理的应用服务管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
中国电信数据通信局: "《数据通信新技术》", 30 November 2011 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111399853B (zh) | 机器学习模型与自定义算子的模板化部署方法 | |
KR101645052B1 (ko) | 디버깅 파이프라인 | |
US8589884B2 (en) | Method and system for identifying regression test cases for a software | |
US10579349B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN113900958A (zh) | 测试用例脚本的生成方法、系统、介质及电子设备 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN115952758B (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN111966597B (zh) | 测试数据生成方法及装置 | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN111399828A (zh) | 一种基于模型驱动的逻辑设备建模方法及终端 | |
CN117806654B (zh) | 一种基于Tekton的自定义云原生DevOps流水线系统及方法 | |
CN115525534A (zh) | 基于swagger的接口测试的测试用例生成方法、生成平台 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN113703739A (zh) | 基于omiga引擎的跨语言融合计算方法、系统及终端 | |
CN110515598A (zh) | 一种基于命令行形式的集成服务的方法 | |
CN114356430A (zh) | 一种基于airflow调度系统的DAG依赖配置工具 | |
CN109947406B (zh) | 一种通用化星务管理系统架构 | |
CN113010489A (zh) | 一种数据迁移方法及系统 | |
CN114936250B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
EP4068141B1 (en) | Method and system to enable print functionality in high-level synthesis (hls) design platforms | |
CN118484188A (zh) | 流水线模板的使用方法、装置、设备、介质及程序产品 | |
CN115840778A (zh) | 一种基于模型的可视化配置连接器及其连接方法 | |
CN115373696A (zh) | 软件资源生成的低代码配置方法、系统、设备及存储介质 | |
CN116048890A (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: 20191129 |
|
RJ01 | Rejection of invention patent application after publication |