CN109120708B - 基于微服务组件的业务模块的构建方法、调用方法及装置 - Google Patents

基于微服务组件的业务模块的构建方法、调用方法及装置 Download PDF

Info

Publication number
CN109120708B
CN109120708B CN201811010005.7A CN201811010005A CN109120708B CN 109120708 B CN109120708 B CN 109120708B CN 201811010005 A CN201811010005 A CN 201811010005A CN 109120708 B CN109120708 B CN 109120708B
Authority
CN
China
Prior art keywords
parameter
micro service
micro
parameter class
components
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
Application number
CN201811010005.7A
Other languages
English (en)
Other versions
CN109120708A (zh
Inventor
籍学友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Science and Technology (Beijing) Co., Ltd.
Original Assignee
Dingfu Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dingfu Intelligent Technology Co Ltd filed Critical Dingfu Intelligent Technology Co Ltd
Priority to CN201811010005.7A priority Critical patent/CN109120708B/zh
Publication of CN109120708A publication Critical patent/CN109120708A/zh
Application granted granted Critical
Publication of CN109120708B publication Critical patent/CN109120708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Abstract

本发明实施例公开一种基于微服务组件的业务模块的构建方法、调用方法、装置及云平台,该构建方法包括:获取至少两个微服务组件的表示信息,以及至少两个微服务组件之间的顺序关系;分别显示第一参数类集合和第二参数类集合;分别确定用户选定的第一参数类和第二参数类,第一参数类为第一参数类集合中的一个参数类;第二参数类为第二参数类集合中的一个参数类;建立第一参数类与第二参数类之间的映射关系;生成业务模块,业务模块包括至少两个微服务组件的表示信息、顺序关系和映射关系。采用该业务模块构建方法可以简化构建操作,缩短开发周期,降低开发成本,使不具有编码能力的业务人员也可以完成构建业务模块的工作。

Description

基于微服务组件的业务模块的构建方法、调用方法及装置
技术领域
本发明涉及计算机软件云平台中微服务相关技术领域,具体涉及一种基于微服务组件的业务模块的构建方法及装置。此外,本申请还涉及一种基于微服务组件的业务模块的调用方法及装置,以及一种基于微服务组件的云平台。
背景技术
对于传统的整体式架构(Monolithic Architecture)应用开发系统(如CRM、ERP等大型应用)而言,随着新需求的不断增加或变化,更新和修复大型整体式应用变得越来越困难。这就催生了一种新的架构设计风格——微服务架构(Microservice Architecture)。在微服务架构设计中,将一个大型的单个应用程序或服务组件拆分为可独立部署及升级的多个微服务组件,其中每一个微服务组件通常仅关注于完成一件小的任务,实现一个小的业务功能。因此,与整体式架构中的服务组件相比,微服务组件的粒度更细。这样在使用、更新或者修复的时候,就可以将按照需要来复制、更新或者修复特定的微服务组件,而不影响其他微服务组件,也不需要复制、更新或者修复整个应用程序或者服务组件。
微服务组件的提供者将微服务组件发布到阿里云、百度云等公有云平台上,并提供这些微服务组件相应的API(应用程序编程接口)。这样开发人员就可以通过微服务组件的API,从公有云平台上调用这些微服务组件。当需要实现一个大的业务功能时,通常需要开发人员需要编写代码来调用以及组合多个微服务组件,以形成一个业务模块。因此,现有的调用多个微服务组件来形成业务模块的方法过于复杂,并不适合不具有编码能力的业务人员来操作。
发明内容
为解决上述技术问题,本申请提供一种基于微服务组件的业务模块的构建方法以及一种业务模块的调用方法,以便更加简便地构建和调用由多个微服务组件所装配而成的业务模块。
第一方面,提供一种基于微服务组件的业务模块的构建方法,包括:
获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系;
分别显示第一参数类集合和第二参数类集合;所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合;
分别确定用户选定的第一参数类和第二参数类,所述第一参数类为第一参数类集合中的一个参数类;所述第二参数类为第二参数类集合中的一个参数类;
建立所述第一参数类与第二参数类之间的映射关系;
生成业务模块,所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
结合第一方面,在第一方面第一种可能的实现方式中,建立所述第一参数类与第二参数类之间的映射关系的步骤,包括:
为所述第一参数类和所述第二参数类分别标记相同或相应的映射编码。
结合第一方面的第一种实现方式,在第一方面第二种可能的实现方式中,获取至少两个微服务组件的表示信息的步骤,包括:
获取用户输入的第一检索字段;
将所述第一检索字段与已发布的微服务组件的表示信息、参数信息或对应的标签进行匹配;
显示检索结果集合,所述检索结果集合包括与所述第一检索字段相匹配的微服务组件的表示信息;
获取用户从检索结果集合中选定的微服务组件的表示信息。
结合第一方面及上述可能的实现方式,在第一方面第三种可能的实现方式中,获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系的步骤,具体包括:
利用vue-draggable前端插件获取至少两个微服务组件的表示信息;
利用Jsplum前端流程控制插件获取所述至少两个微服务组件之间的顺序关系。
第二方面,提供一种基于微服务组件的业务模块的调用方法,包括:
获取业务模块,所述业务模块利用第一方面的任一种所述的构建方法所构建得到;
根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
结合第二方面,在第二方面第一种可能的实现方式中,根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算的步骤,包括:
根据所述顺序关系确定第一微服务组件的表示信息;
根据所述第一微服务组件的表示信息,调用第一微服务组件进行计算,得到第一输出数据,所述第一输出数据包括第一微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值;
根据所述顺序关系确定第二微服务组件的表示信息;
根据所述映射关系,从所述第一输出数据中获取第二输入数据,所述第二输入数据包括第二微服务组件的输入参数的所有参数类,以及与所述参数类对应的参数值;
根据所述第二微服务组件的表示信息,调用第二微服务组件,以使所述第二微服务组件利用所述第二输入数据进行计算,得到第二输出数据,所述第二输出数据包括第二微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值。
第三方面,提供一种基于微服务组件的业务模块的构建装置,包括:
第一获取单元,用于获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系;
显示单元,用于分别显示第一参数类集合和第二参数类集合,其中,所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合;
第一处理单元,用于分别确定用户选定的第一参数类和第二参数类;建立所述第一参数类与第二参数类之间的映射关系;以及,生成业务模块;其中,所述第一参数类为第一参数类集合中的一个参数类;所述第二参数类为第二参数类集合中的一个参数类;所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
第四方面,提供一种基于微服务组件的业务模块的调用装置,包括:
第二获取单元,用于获取业务模块,所述业务模块利用第三方面所述的构建装置所构建得到;
第二处理单元,用于根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
第五方面,提供一种基于微服务组件的云平台,包括:第三方面所述的构建装置,以及第四方面所述的调用装置。
结合第五方面,在第五方面第一种可能的实现方式中,该云平台还包括:
微服务注册中心,用于存储至少两个微服务组件,以及所述至少两个微服务组件各自对应的表示信息、参数信息和/或标签。
通过上述技术方案的方法,用户只需要选定需要调用的微服务组件,调整好他们之间的顺序关系,以及选定微服务组件之间需要建立映射的参数类即可完成微服务组件的装配工作,构建出一个业务模块。也就是说,这个过程中微服务组件的消费者仅仅需要与计算机进行少量的有限的交互,故而大大简化了构建基于多个微服务组件的业务模块的过程,缩短了业务模块的开发周期,提高了业务模块构建及交付速度。并且,即便是不具有编码能力的业务人员,也可以完成这项工作,减小了业务模块开发的人力成本。
其次,由于业务模块中包含的是微服务组件的表示信息、顺序关系以及映射关系,当业务需求发生改变需要修改某个微服务组件时,只需要修改与该微服务组件的名称、顺序关系和/或映射关系即可,即仅仅需要在业务逻辑层面上进行修改即可,而不需要修改底层的代码,不需要进行单元测试、测试工程师测试、将代码模块发布到生产环境中等步骤,故而避免了这些步骤过程中会产生的耗费人力、时间,以及影响生产用软件系统的稳定性等问题。
再者,在利用业务模块来调用多个微服务组件时,根据业务模块中的微服务组件的表示信息、顺序关系以及映射关系来逐个调用微服务组件,使得多个微服务组件之间并不具有直接的依赖关系,而是通过调用装置间接地依赖,从而达到解耦的目的。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请第一个实施例中,基于微服务组件的业务模块的构建方法的其中一种具体实施方式的流程图;
图2为本申请第一个实施例中,获取至少两个微服务组件的表示信息的步骤的其中一种实现方式的流程图;
图3为本申请第二个实施例中,基于微服务组件的业务模块的调用方法的其中一种具体实施方式的流程图;
图4为本申请第二个实施例中,根据两个微服务组件的表示信息、顺序关系和映射关系调用微服务组件的一种实现方式的流程图;
图5为本申请构建装置以及调用装置的整体架构以及应用场景示意图;
图6为本申请基于微服务组件的业务模块的构建装置的结构示意图;
图7为本申请基于微服务组件的业务模块的调用装置的结构示意图。
具体实施方式
微服务组件通常存储在公有云平台上,微服务组件的消费者,也就是开发人员如果需要调用微服务组件,通常会在本地计算机上编写代码来调用微服务组件。发明人在实现该技术方案的过程中,发现它至少存在以下几个缺陷。
第一,业务模块的构建方法过于复杂。当需要调用多个微服务组件来组成一个业务模块的时候,一方面,开发人员需要编写代码,通过各个微服务组件的API来分别调用共有云平台上的多个微服务组件;另一方面,由于多个微服务组件之间的输出数据和输入数据通常都不完全一致,上一个微服务组件中的输出数据并不能直接用来作为下一个微服务组件的输入数据,因此需要开发人员通过编写代码,来对上一个微服务组件的输出数据进行转换,使之能够作为下一个微服务组件的输入数据。这样调用多个微服务组件来形成业务模块的过程过于复杂,需要开发人员与计算机进行大量交互,即编写大量的代码,而不具有编码能力的业务人员则无法完成这项工作。
第二,开发周期过长、开发成本过高。采用上述调用多个微服务组件来构建业务模块的方法,在开发人员编写完代码之后,还需要做单元测试,再将交给测试工程师进行测试,测试通过后才能上生产环境,整个过程非常耗费时间和人力,导致开发周期过长、开发成本过高。
第三,不便于修改,对生产环境的稳定性存在影响。在前述的业务模块中,调用微服务组件的代码、进行数据转换的代码等构成一个大的代码模块,多个微服务组件被紧紧地耦合在一起。一旦该业务模块不能满足业务需求而需要进行修改时,首先需要开发人员通过修改代码来适配新的微服务组件,然后再重新进行单元测试、测试工程师测试,最后将通过测试的新的代码模块发布到生产环境(主要指生产用软件系统)中,又会耗费大量的时间和人力。另外,这对于整个生产环境可能产生影响,例如,如果新的代码模块测试不充分,当其发布到生产环境中去运行时,有可能会出现错误,进而导致整个生产环境停止运行。这还可能导致需要重新部署生产环境代码,对执行业务模块的软件系统的稳定性造成影响。
为此,本申请提供了一种基于微服务组件的业务模块的构建方法,以及调用方法,避免在构建业务模块和调用的过程中编写代码,简化与计算机的交互过程,便于业务人员直接根据业务逻辑来装配微服务组件,构建业务模块。
具体地,在第一个实施例中,提供一种基于微服务组件的业务模块的构建方法,请参考图1,包括以下S100至S500的步骤。
S100:获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系。
在S100的步骤中,一个微服务组件的表示信息用于表示一个微服务组件,以使其区别于其他的微服务组件,例如,微服务组件的表示信息可以是微服务组件的名称、代号、功能描述等。举例来说,一个微服务组件的名称为“通过车牌号查询车辆信息”,另一个微服务组件的名称为“通过身份证号查询居民户籍信息”。
微服务组件之间的顺序关系,指的是当需要依次调用两个或两个以上的微服务组件时,每一个微服务组件与在其之前调用的微服务组件,或者与在其之后调用的微服务组件之间,所具有的先后顺序关系。例如,一共需要依次调用3个微服务组件(1号组件、2号组件及3号组件),第一个调用的是2号组件,第二个调用的是1号组件,第三个调用的是3号组件,则2号组件与1号组件之间具有直接的先后顺序关系,1号组件与3号组件之间具有直接的先后顺序关系。
此步骤中,可以采用vue-draggable前端插件来实现对微服务组件的表示信息进行拖动的功能,将微服务组件的表示信息拖动到可视化的工作区,以使构建装置获取该微服务组件的表示信息。可以采用Jsplum前端流程控制插件来实现在可视化的工作区中对微服务组件的表示信息进行组合,以使构建装置获取到微服务组件之间的顺序关系。例如,在可视化界面上,每一个节点就可以代表了一个微服务组件,节点的名称可以是微服务组件的名称或代号等,节点之间的连接关系,就表示了微服务组件之间的顺序关系。这样,业务人员就可以在可视化的界面上直接将节点拖动到工作区、连接工作区中的节点等动作来使构建装置获取微服务组件的表示信息,以及多个微服务组件之间的顺序关系。
可选地,在一种实现方式中,获取至少两个微服务组件的表示信息的步骤,请参考图2,可以包括:
S101:获取用户输入的第一检索字段;
S102:将所述第一检索字段与已发布的微服务组件的表示信息、参数信息或对应的标签进行匹配;
S103:显示检索结果集合,所述检索结果集合包括与所述第一检索字段相匹配的微服务组件的表示信息;
S104:获取用户从检索结果集合中选定的微服务组件的表示信息。
已发布的微服务组件的表示信息包括微服务组件的名称、代号、功能描述等;参数信息包括微服务组件的输入参数的参数类、输出参数的参数类,以及参数类的含义等;对应的标签表征微服务组件的应用领域等信息,例如“公安领域”、“交通领域”等。在微服务组件提供者将一个微服务组件上传到微服务注册中心时,需要微服务组件提供者将这些信息也录入注册中心。
在第一检索字段与微服务组件的表示信息、参数信息或对应的标签进行匹配的时候,其中任一项匹配,就可以认为该微服务组件与第一检索字段相匹配,然后获取该微服务组件的表示信息。
举例来说,已发布的微服务组件部分如表1所示。
表1已发布的微服务组件局部示例
Figure BDA0001784816900000051
用户输入第一检索字段“车牌”,将该第一检索字段与已发布的微服务组件的表示信息或参数信息进行匹配,显示检索结果集合[通过车牌号查询车辆信息,违章罚款缴纳记录查询],即微服务组件1和微服务组件5。用户根据业务需求,选定微服务组件1,即“通过车牌号查询车辆信息”,业务模块构建装置获取用户选定的微服务组件的表示信息。重复上述的方法,可以获取多个微服务组件的表示信息,这些微服务组件都是为了实现业务功能而需要调用的组件。
S200:分别显示第一参数类集合和第二参数类集合。
所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合。每一个微服务组件在发布的时候,都会给微服务组件的消费者(例如开发人员)提供其输入参数和输出参数,其中包括了输入参数的所有参数类以及输出参数的所有参数类。例如,对于名称为“通过车牌号查询车辆信息”的微服务组件1,其输入参数和输出参数如下表2所示。
表2微服务组件1输入参数和输出参数示例
Figure BDA0001784816900000061
在S200的步骤中,对于在S100步骤中获取到的至少两个微服务组件的顺序关系,针对其中两个具有直接的先后顺序关系的微服务组件,将在先的微服务组件称为第一微服务组件,在后的微服务组件称为第二微服务组件,以便于区分。
第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,以表1的例子为例,则第一参数类集合为[Brands,Color,Name,Id_Number]。将这一参数类集合显示出来,以便开发人员可以从中选择用于建立映射关系的第一参数类。
第二参数类集合为第二微服务组件的输入参数的所有参数类的集合,以名称为“通过身份证号查询居民户籍信息”的微服务组件2为第二微服务组件来举例,其输入参数和输出参数如下表3所示,则第二参数类集合为[Id]。将这一参数类集合显示出来,以便开发人员可以从中选择用于建立映射关系的第二参数类。
表3微服务组件2输入参数和输出参数示例
Figure BDA0001784816900000062
S300:分别确定用户选定的第一参数类和第二参数类。
在S300的步骤中,第一参数类为第一参数类集合中的一个参数类。以前述的第一参数类集合[Brands,Color,Name,Id_Number]为例,第一参数类可以是“Brands”、“Id_Number”、“Color”或“Name”。第二参数类为第二参数类集合中的一个参数类,以前述的第二参数类集合[Id]为例,第二参数类只能是“Id”。用户可以根据第二微服务组件的输入参数来选定此处的第一参数类。例如,第二微服务组件需要以身份证号来作为其中一项输入数据,而第一参数类集合中“Id_Number”这一个参数类所表示的就是身份证号,那么用户会将“Id_Number”选定为第一参数类,将第二参数类集合中的“Id”选定为第二参数类。
需要说明的是,上述分别显示第一参数类集合和第二参数类集合,以及分别确定用户选定的第一参数类和第二参数类,可以是依次分别显示和确定,例如先显示第一参数类集合,确定第一参数类,然后显示第二参数类集合,确定第二参数类;也可以是同时显示或者同时确定,例如在同一个显示屏幕中同时显示第一参数类集合和第二参数类集合,然后再用户输入选定的第一参数类和第二参数类以后,计算机同时确定第一参数类和第二参数类。本申请对此不做限定。
S400:建立所述第一参数类与第二参数类之间的映射关系。
建立第一参数类和第二参数类之间的映射关系,具体来说,可以通过分别为第一参数类和第二参数类标记相同的或者相应的映射编码来实现,这个映射编码是唯一的并且不可被修改。沿用前述的例子,假设第一参数类为“Id_Number”,第二参数类为“Id”,则为二者分别标记唯一的映射编码。例如,为“Id_Number”和“Id”均标记映射编码102578;又例如,为“Id_Number”标记映射编码102578A,为“Id”标记与之对应的映射编码102578B。
通过标记相同或相应的映射编码的方式,在映射关系建立以后,即便后续微服务组件的提供者对微服务组件进行升级,修改了第一参数类或者第二参数类的名称,也不会影响第一参数类与第二参数类之间的映射关系。
当第二微服务组件的输入参数的参数类超过一个时,可以重复S300和S400的步骤,来分别为其中的每一个参数类,确定用户从第一参数类集合中选定的参数类,来建立映射关系。例如,第二参数类集合为[Id,Full_Name],“Id_Number”和“Id”已经建立了映射关系,还需要为“Full_Name”也建立映射关系。为此,先确定用户从第一参数类集合中选定的第五参数类“Name”,确定用户从第二参数类集合中选定的第六参数类“Full_Name”,然后为二者建立映射关系。
当需要构建的业务模块中仅包括两个微服务组件时,只需要建立这两个微服务组件之间输出参数的参数类与输入参数的参数类之间的映射关系即可。当需要构建的业务模块中包括的微服务组件超过两个时,则具有直接先后顺序关系的微服务组件,两两之间都需要建立前述的映射关系。建立映射关系的步骤与前述S200至S400的步骤类似。
例如,在前述的第二微服务组件之后紧接着需要调用第三微服务组件。先显示第三参数类集合,所述第三参数类集合为第二微服务组件的输出参数的所有参数类的集合;然后确定用户选定的第三参数类,所述第三参数类为第三参数类集合中的其中一个。显示第四参数类集合,所述第四参数类集合为第三微服务组件的输入参数的所有参数类的集合;然后确定用户选定的第四参数类,所述第四参数类为第四参数类集合中的其中一个。建立第三参数类和第四参数类之间的映射关系。如果第三微服务组件的输入参数有多个参数类,即第四参数类集合中有多个参数类,则逐一将他们与第三参数类集合中的参数类建立映射关系。通过这样的方式,就可以将三个微服务组件串联装配起来。
延续前述微服务组件1和微服务组件2的例子,如果微服务组件2之后紧接着需要调用的是名称为“通过户籍所在地查询家庭成员”的微服务组件3(即第三微服务组件),其输入输出参数如表4所示。显示表3的中输出参数的所有参数类,即第三参数集合[Name,Sex,Age,Register_Place],确定用户选定的第三参数类“Register_Place”;显示表4中的输入参数的所有参数类,即第四参数类集合[Permanent_Residence],确定用户选定的第四参数类“Permanent_Residence”。将“Register_Place”与“Permanent_Residence”建立映射关系。
表4微服务组件3输入参数和输出参数示例
Figure BDA0001784816900000081
通过这样的方式,就可以构建一个基于微服务组件1、2和3的业务模块,利用该业务模块来调用各个微服务组件,就可以实现通过车牌号查询到车主的家庭成员的业务功能。
还例如,在前述的第二微服务组件之后紧接着需要调用第四微服务组件,第四微服务组件可以是名称为“统计年龄段”的微服务组件4,向微服务组件1输入1000条车牌号数据,即参数类“Ip”的参数值,则每一条车牌号数据经过微服务组件1以及第二微服务组件2,都可以查询到一条对应的车主的年龄数据,即参数类“Age”的参数值。然后将这1000条年龄数据的数据组作为微服务组件4的输入数据,经过微服务组件4的统计计算,可以得到处于不同的年龄段的车主人数。其中,第二微服务组件的输出参数的参数类与第四微服务组件的输入参数的参数类之间建立映射关系的方法与前述的方法类似。
S500:生成业务模块,所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
在S500的步骤中,将至少两个微服务组件的表示信息、至少两个微服务组件之间的顺序关系,以及前述步骤中所建立的一个或者多个映射关系,一起存储起来,生成一个业务模块。可以为这个业务模块进行命名,例如,前述的微服务组件2、微服务组件3、微服务组件4,三者一起可以实现通过车牌号查询车主家庭成员的功能,因此可以将该业务模块命名为“通过车牌号查询车主家庭成员”。另外,还可以为该业务模块添加业务描述字段,例如“用于通过车辆的车牌号,查询到车主的家庭成员,包括父母、配偶以及子女”。以便业务模块的用户可以通过业务模块的名称或者业务描述字段来了解业务模块的功能,选定合适的业务模块。
在上述技术方案中,业务模块的构建装置在获取了多个微服务组件的表示信息和顺序关系以后,向微服务组件的消费者(例如开发人员、业务人员等)显示第一微服务组件的输出参数的所有参数类,即第一参数类集合,以及第二微服务组件的输入参数的所有参数类,即第二参数类集合。然后用户在第一参数类集合中选定第一参数类,构建装置确定第一参数类;用户在第二参数类集合中选定第二参数类,构建装置确定第二参数类。再建立第一参数类和第二参数类之间的映射关系。最后,将这多个微服务组件的表示信息、顺序关系以及各自的映射关系存储起来,生成一个业务模块。
通过这样的方法,用户只需要选定需要调用的微服务组件,调整好他们之间的顺序关系,以及选定微服务组件之间需要建立映射的参数类即可完成微服务组件的装配工作,构建出一个业务模块。也就是说,这个过程中微服务组件的消费者仅仅需要与计算机进行少量的有限的交互,故而大大简化了构建基于多个微服务组件的业务模块的过程,缩短了业务模块的开发周期,提高了业务模块构建及交付速度。并且,即便是不具有编码能力的业务人员,也可以完成这项工作,减小了业务模块开发的人力成本。
其次,由于业务模块中包含的是微服务组件的表示信息、顺序关系以及映射关系,当业务需求发生改变需要修改某个微服务组件时,只需要修改与该微服务组件的名称、顺序关系和/或映射关系即可,即仅仅需要在业务逻辑层面上进行修改即可,而不需要修改底层的代码,不需要进行单元测试、测试工程师测试、将代码模块发布到生产环境中等步骤,故而避免了这些步骤过程中会产生的耗费人力、时间,以及影响生产用软件系统的稳定性等问题。
再者,在利用业务模块来调用多个微服务组件时,根据业务模块中的微服务组件的表示信息、顺序关系以及映射关系来逐个调用微服务组件,使得多个微服务组件之间并不具有直接的依赖关系,而是通过调用装置间接地依赖,从而达到解耦的目的。
在第二个实施例中,请参考图3,提供一种基于微服务组件的业务模块的调用方法,包括:
S600:获取业务模块;
S700:根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
在S600的步骤中,业务模块指的是利用第一个实施例中的任一种方法所构建的业务模块,具体可参考第一个实施例,此处不再赘述。当业务模块发布在平台上以后,可以以菜单的形式展示给最终用户,以便最终用户从中选定所需的业务模块。
在S700的步骤中,业务模块中包含多个微服务组件的表示信息,首先根据顺序关系确定首个微服务组件的表示信息,然后根据微服务组件的表示信息去调用对应的微服务组件来进行计算,再根据首个微服务组件与第二个微服务组件之间的映射关系来将首个微服务组件的输出数据转换为第二个微服务组件的输入数据,然后调用第二个微服务组件进行计算。如此依照顺序关系逐个调用微服务组件,最后得到返回结果。返回结果一般是顺序关系中最后一个微服务组件的输出参数的所有参数类以及对应的参数值。
可选地,在一种实现方式中,请参考图4,根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算的步骤,可以包括S701至S705的步骤。
S701:根据所述顺序关系确定第一微服务组件的表示信息。
S702:根据第一微服务组件的表示信息,调用第一微服务组件进行计算,得到第一输出数据。其中,所述第一输出数据包括第一微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值;
S703:根据所述顺序关系确定第二微服务组件的表示信息。
S704:根据所述映射关系,从所述第一输出数据中获取第二输入数据,所述第二输入数据包括第二微服务组件的输入参数的所有参数类,以及与所述参数类对应的参数值。
S705:根据第二微服务组件的表示信息,调用第二微服务组件,以使所述第二微服务组件利用所述第二输入数据进行计算,得到第二输出数据。其中,所述第二输出数据包括第二微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值。
上述S701至S705的步骤仅仅示出了调用第一微服务组件和第二微服务组件的过程,如果第一微服务组件之前还需要调用其他微服务组件,或者第二微服务组件之后还需要调用其他微服务组件,其调用方式与上述的方法类似。
通过这样的方式,调用装置获取业务模块,并自动地根据业务模块中的信息来按顺序调用微服务组件,并返回最终的计算结果,在这个过程中,多个微服务组件之间并不具有直接的依赖关系,而是通过调用装置间接地依赖,从而达到解耦的目的。
以第一个实施例中所构建的业务模块“通过车牌号查询车主家庭成员”为例,该业务模块中包括表1的微服务组件1、微服务组件2和微服务组件3的名称;三者的顺序关系为:微服务组件1→微服务组件2→微服务组件3。
映射关系包括:
微服务组件1的输出参数的参数类“Id_Number”与微服务组件2的输入参数的参数类“Id”;
微服务组件2的输出参数的参数类“Register_Place”与微服务组件3的输入参数的参数类“Permanent_Residence”。
根据顺序关系,可以确定首个微服务组件为微服务组件1,其名称即为第一微服务组件的表示信息。根据微服务组件1的名称去微服务注册中心调用微服务组件1,以“京1234”为参数类“Ip”的参数值,计算得到第一输出数据,包括:“Brands”的参数值“大众”,“Color”的参数值“黑色”,“Name”的参数值“赵三三”,“Id_Number”的参数值“110105197712211234”。然后根据顺序关系确定下一个需要调用的微服务组件为微服务组件2,其名称即为第二微服务组件的表示信息。根据映射关系可以知道“Id_Number”和“Id”之间具有映射关系,故而根据微服务组件2的名称去微服务注册中心调用微服务组件2,以“110105197712211234”作为“Id”的参数值(即第二输入数据),计算得到第二输出数据,包括:“Name”的参数值“赵三三”,“Sex”的参数值“男”,“Age”的参数值“39”,“Register_Place”的参数值“北京市朝阳区XX街道XX社区XX号楼XX室”。
再以微服务组件2为第一微服务组件,以微服务组件3为第二微服务组件,重复上述的S703至S705的调用过程,就可以得到微服务组件3的输出结果,例如包括“Name1”的参数值“赵大大”,“Name2”的参数值“钱一一”,“Name3”参数值“赵三三”。
请参考图5至图7,在第三个实施例中,首先提供一种基于微服务组件的业务模块的构建装置,包括:
第一获取单元1,用于获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系;
显示单元2,用于分别显示第一参数类集合和第二参数类集合,其中,所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合;
第一处理单元3,用于分别确定用户选定的第一参数类和第二参数类;建立所述第一参数类与第二参数类之间的映射关系;以及,生成业务模块;其中,所述第一参数类为第一参数类集合中的一个参数类;所述第二参数类为第二参数类集合中的一个参数类;所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
可选地,第一处理单元3还可以用于为所述第一参数类和所述第二参数类分别标记相同或相应的映射编码。
可选地,第一获取单元1还可以用于获取用户输入的第一检索字段;将所述第一检索字段与已发布的微服务组件的表示信息、参数信息或对应的标签进行匹配;显示检索结果集合,所述检索结果集合包括与所述第一检索字段相匹配的微服务组件的表示信息;以及,获取用户从检索结果集合中选定的微服务组件的表示信息。
可选地,所述获取单元1还可以用于利用vue-draggable前端插件获取至少两个微服务组件的表示信息;以及,利用Jsplum前端流程控制插件获取所述至少两个微服务组件之间的顺序关系。
另外,本实施例还提供一种基于微服务组件的业务模块的调用装置,包括:
第二获取单元4,用于获取业务模块,所述业务模块前述的构建装置所构建得到;
第二处理单元5,用于根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
可选地,所述第二处理单元5还可以用于根据所述顺序关系确定第一微服务组件的表示信息;根据所述第一微服务组件的表示信息,调用第一微服务组件进行计算,得到第一输出数据;根据所述顺序关系确定第二微服务组件的表示信息;根据所述映射关系,从所述第一输出数据中获取第二输入数据;以及,根据所述第二微服务组件的表示信息,调用第二微服务组件,以使所述第二微服务组件利用所述第二输入数据进行计算,得到第二输出数据,其中,所述第一输出数据包括第一微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值,所述第二输入数据包括第二微服务组件的输入参数的所有参数类,以及与所述参数类对应的参数值,所述第二输出数据包括第二微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值。
上述的构建装置、调用装置是第一个实施例和第二个实施例中构建方法和调用方法所对应的装置,具有与构建方法和调用方法相应的有益效果,此处不再赘述。
此外,本实施例还提供一种基于微服务组件的云平台,包括了前述的构建装置和调用装置。
可选地,该云平台还可以包括微服务注册中心,所述微服务注册中心用于存储至少两个微服务组件,以及所述至少两个微服务组件各自对应的表示信息、参数信息和/或标签。
如果共享的微服务组件是被共享在共有云平台上,那么本申请中云平台上的调用装置根据业务模块通过外网去调用其他平台上的各个微服务组件。
而当本申请的云平台本身就包括微服务注册中心之后,就可以直接通过该云平台上的微服务注册中心来同一存储、管理各个微服务组件,该平台就既可以在私有云环境下部署,也可以在公有云环境下部署,而不需要依赖其他公有云平台上的微服务组件。这使得本申请的云平台更适合用在公安领域等应用场景中。
本说明书中各个实施例之间相同相似的部分互相参见即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (10)

1.一种基于微服务组件的业务模块的构建方法,其特征在于,包括:
获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系;
分别显示第一参数类集合和第二参数类集合;所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合;
分别确定用户选定的第一参数类和第二参数类,所述第一参数类为第一参数类集合中的一个参数类;所述第二参数类为第二参数类集合中的一个参数类;
建立所述第一参数类与第二参数类之间的映射关系;
生成业务模块,所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
2.根据权利要求1所述的方法,其特征在于,建立所述第一参数类与第二参数类之间的映射关系的步骤,包括:
为所述第一参数类和所述第二参数类分别标记相同或相应的映射编码。
3.根据权利要求1或2所述的方法,其特征在于,获取至少两个微服务组件的表示信息的步骤,包括:
获取用户输入的第一检索字段;
将所述第一检索字段与已发布的微服务组件的表示信息、参数信息或对应的标签进行匹配;
显示检索结果集合,所述检索结果集合包括与所述第一检索字段相匹配的微服务组件的表示信息;
获取用户从检索结果集合中选定的微服务组件的表示信息。
4.根据权利要求1或2所述的方法,其特征在于,获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系的步骤,具体包括:
利用vue-draggable前端插件获取至少两个微服务组件的表示信息;
利用Jsplum前端流程控制插件获取所述至少两个微服务组件之间的顺序关系。
5.一种基于微服务组件的业务模块的调用方法,其特征在于,包括:
获取业务模块,所述业务模块利用权利要求1-4任一项所述的构建方法所构建得到;
根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
6.根据权利要求5所述的方法,其特征在于,根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算的步骤,包括:
根据所述顺序关系确定第一微服务组件的表示信息;
根据所述第一微服务组件的表示信息,调用第一微服务组件进行计算,得到第一输出数据,所述第一输出数据包括第一微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值;
根据所述顺序关系确定第二微服务组件的表示信息;
根据所述映射关系,从所述第一输出数据中获取第二输入数据,所述第二输入数据包括第二微服务组件的输入参数的所有参数类,以及与所述参数类对应的参数值;
根据所述第二微服务组件的表示信息,调用第二微服务组件,以使所述第二微服务组件利用所述第二输入数据进行计算,得到第二输出数据,所述第二输出数据包括第二微服务组件的输出参数的所有参数类,以及与所述参数类对应的参数值。
7.一种基于微服务组件的业务模块的构建装置,其特征在于,包括:
第一获取单元,用于获取至少两个微服务组件的表示信息,以及所述至少两个微服务组件之间的顺序关系;
显示单元,用于分别显示第一参数类集合和第二参数类集合,其中,所述第一参数类集合为第一微服务组件的输出参数的所有参数类的集合,所述第二参数类集合为第二微服务组件的输入参数的所有参数类的集合;
第一处理单元,用于分别确定用户选定的第一参数类和第二参数类;建立所述第一参数类与第二参数类之间的映射关系;以及,生成业务模块;其中,所述第一参数类为第一参数类集合中的一个参数类;所述第二参数类为第二参数类集合中的一个参数类;所述业务模块包括所述至少两个微服务组件的表示信息、所述顺序关系和所述映射关系。
8.一种基于微服务组件的业务模块的调用装置,其特征在于,包括:
第二获取单元,用于获取业务模块,所述业务模块利用权利要求7所述的构建装置所构建得到;
第二处理单元,用于根据所述业务模块中的至少两个微服务组件的表示信息、顺序关系以及映射关系,调用所述至少两个微服务组件进行计算,得到返回结果。
9.一种基于微服务组件的云平台,其特征在于,包括:权利要求7所述的构建装置,以及权利要求8所述的调用装置。
10.根据权利要求9所述的云平台,其特征在于,还包括:
微服务注册中心,用于存储至少两个微服务组件,以及所述至少两个微服务组件各自对应的表示信息、参数信息和/或标签。
CN201811010005.7A 2018-08-31 2018-08-31 基于微服务组件的业务模块的构建方法、调用方法及装置 Active CN109120708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811010005.7A CN109120708B (zh) 2018-08-31 2018-08-31 基于微服务组件的业务模块的构建方法、调用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811010005.7A CN109120708B (zh) 2018-08-31 2018-08-31 基于微服务组件的业务模块的构建方法、调用方法及装置

Publications (2)

Publication Number Publication Date
CN109120708A CN109120708A (zh) 2019-01-01
CN109120708B true CN109120708B (zh) 2021-08-27

Family

ID=64861532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811010005.7A Active CN109120708B (zh) 2018-08-31 2018-08-31 基于微服务组件的业务模块的构建方法、调用方法及装置

Country Status (1)

Country Link
CN (1) CN109120708B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109873715B (zh) * 2019-01-11 2021-07-02 中山大学 一种微服务架构下的服务调用关系合理性检测方法
CN110287438A (zh) * 2019-06-19 2019-09-27 天津大学 一种基于微服务架构的跨界服务融合方法
CN113703757B (zh) * 2021-07-20 2024-02-13 北京用友政务软件股份有限公司 一种微画像或微服务及其应用组装方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及系统
CN108182068A (zh) * 2017-12-26 2018-06-19 杭州数梦工场科技有限公司 基于微服务的部署交付件的生成方法及装置、存储介质
CN108337106A (zh) * 2017-12-18 2018-07-27 海尔优家智能科技(北京)有限公司 物联网微服务系统架构的构建方法、平台及计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107667517B (zh) * 2015-06-03 2021-03-19 瑞典爱立信有限公司 用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及系统
CN108337106A (zh) * 2017-12-18 2018-07-27 海尔优家智能科技(北京)有限公司 物联网微服务系统架构的构建方法、平台及计算机设备
CN108182068A (zh) * 2017-12-26 2018-06-19 杭州数梦工场科技有限公司 基于微服务的部署交付件的生成方法及装置、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于开源框架及容器技术的微服务架构研究;刘辉军 等;《电力信息与通信技术》;20180615;第16卷(第6期);第90-94页 *
基于微服务架构的统一应用开发平台;李春阳 等;《计 算 机 系 统 应 用》;20170415;第26卷(第4期);第43-48页 *

Also Published As

Publication number Publication date
CN109120708A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
CN109120708B (zh) 基于微服务组件的业务模块的构建方法、调用方法及装置
KR101628433B1 (ko) 애플리케이션 서버 상에서 구동되는 애플리케이션의 콤포넌트에 의한 서비스에 대한 콜을 최적화하기 위한 장치, 방법 및 머신-판독가능 저장 매체
CN110337642A (zh) 通过使用测试用例来执行测试的方法和装置
US20080229303A1 (en) Method, system and computer program for distributing customized software products
CN107438107A (zh) 一种微服务架构中后台服务的调用方法及装置
CN102681835A (zh) 代码克隆通知以及体系结构改变可视化
CN103714129A (zh) 基于条件规则的动态数据结构和关系的构建装置和构建方法
EP2300913A1 (en) Methods and systems for developing, debugging, and executing data integration applications
US6658644B1 (en) Services-based architecture for a telecommunications enterprise
CN114997706A (zh) 基于工作流的业务处理方法、装置、设备及存储介质
CN110990396B (zh) 数据存储方法、装置及存储介质
CN111104103A (zh) 一种软件编辑微服务的可视化方法及系统
CN104573083B (zh) 一种地图缓存服务自动更新方法
CN101645935B (zh) 基于QoS指标和Web服务输出参数的Web服务组合方法和装置
CN115129322A (zh) 自动驾驶软件安装包的生成方法、装置和电子设备
CN102541544B (zh) 树形控件的处理方法、装置及系统
JP2011248852A (ja) システム連携装置
JP3712984B2 (ja) 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体
US10310823B2 (en) Program development support system and program development support software
CN110096377A (zh) 一种定制化软件发布的实现方法
CN115543969B (zh) 一种数据迁移方法、装置、设备及介质
US20220404935A1 (en) Dual panel mapping modal
CN112965706B (zh) 一种数据类型的描述方法、设备及介质
JP2013206443A (ja) ソフトウェア資産再利用支援装置およびソフトウェア資産再利用支援プログラム
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190906

Address after: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant after: China Science and Technology (Beijing) Co., Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building block A Room 601

Applicant before: Beijing Shenzhou Taiyue Software Co., Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 230000 zone B, 19th floor, building A1, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Dingfu Intelligent Technology Co., Ltd

Address before: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: DINFO (BEIJING) SCIENCE DEVELOPMENT Co.,Ltd.

GR01 Patent grant
GR01 Patent grant