一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于工业APP微服务的松耦合数据处理方法和系统与流程

2022-03-16 14:55:53 来源:中国专利 TAG:

基于工业app微服务的松耦合数据处理方法和系统
技术领域
1.本发明实施例涉及工业app技术,尤其涉及一种基于工业app微服务的松耦合数据处理方法和系统。


背景技术:

2.工业app(application,应用程序)是基于工业互联网,承载工业知识和经验(比如机理模型),满足特定需求的工业应用软件。
3.目前的工业app的应用开发模式中组件深度集成且组件类型简单,不满足复杂业务场景。而且,不同模型所需要交互的参数千差万别,缺乏统一的参数交互流程,导致工业app流程臃肿,处理效率低下。


技术实现要素:

4.本发明实施例提供一种基于工业app微服务的松耦合数据处理方法和系统,采用微服务和松耦合的架构,提供统一的参数交互流程,提高处理效率,减少了对每个组件服务的依赖,增加了系统扩展性。
5.第一方面,本发明实施例提供了一种基于工业app微服务的松耦合数据处理系统,其特征在于,按照由顶层至底层的顺序依次包括:
6.应用层,用于根据可执行文件和按照统一格式编写的参数名文件,配置工业app模型处理流程中的微服务组件、可执行文件id和输入参数,调用所述微服务组件以及根据输出参数名显示所述微服务组件返回的结果;所述参数名文件包括输入参数名、输出参数名和参数类型;
7.平台层,用于存储所述可执行文件至存储池,解析参数名文件,存储可执行文件id、可执行文件的存储路径、输入参数名、输出参数名和参数类型至数据库,将输入参数名、输入参数和可执行文件id封装为统一格式的目标文件传输给微服务组件;
8.组件层包括多种类型的微服务组件,所述微服务组件用于解析所述目标文件,根据所述可执行文件id从所述数据库中获取可执行文件的存储路径,并从存储池中下载所述可执行文件;根据所述输入参数名、输入参数执行所述可执行文件,返回结果至所述应用层;
9.基础支撑层,用于提供网络资源、算力资源和存储资源。
10.第二方面,本发明实施例还提供了一种基于工业app微服务的松耦合数据处理方法,其特征在于,包括:
11.根据所述可执行文件和参数名文件,配置工业app模型处理流程中的微服务组件、可执行文件id和输入参数,所述参数名文件包括输入参数名、输出参数名和参数类型;其中,可执行文件id、可执行文件的存储路径、输入参数名、输出参数名和参数类型预先存储在数据库中;
12.将输入参数名、输入参数和可执行文件id封装为统一格式的目标文件传输给微服
务组件;
13.调用所述微服务组件解析所述目标文件,根据所述可执行文件id从所述数据库中获取可执行文件的存储路径,并根据所述存储路径下载所述可执行文件;根据所述输入参数名、输入参数执行所述可执行文件,返回结果;
14.根据输出参数名显示所述微服务组件返回的结果。
15.本发明实施例提供了一种基于工业app微服务的松耦合数据处理系统,以解决传统的应用开发模式中组件深度集成以及组件类型简单不满足复杂业务场景的问题,从而提高系统扩展性,增加平台的适用范围。在数据交互方面,引入了统一格式编写的参数名文件,基于组件化软件开发规范以及微服务构建思想,约定了每种集成的微服务组件运行的可执行文件均需要按照统一格式生成参数名文件,并提供给系统,实现全局同一标注,规范地、高效率地实现页面输入和页面输出。同时约定了统一格式的目标文件,使得平台层与各微服务组件能够高效交互。而且,本实施例通过存储可执行文件至存储池,平台层仅需要给微服务组件提供输入参数名、输入参数和可执行文件id,微服务组件自行从存储池中下载可执行文件,不需要交互可执行文件,简化了交互逻辑和传输数据量。
附图说明
16.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本发明实施例提供的一种基于工业app微服务的松耦合数据处理系统的架构图;
18.图2是本发明实施例提供的松耦合工业app组件集成模式的示意图;
19.图3是本发明实施例提供的基于工业app微服务的松耦合数据处理方法的流程图。
具体实施方式
20.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
21.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
22.在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语
在本发明中的具体含义。
23.本发明实施例提供一种基于工业app微服务的松耦合数据处理系统,参见图1,按照由顶层至底层的顺序依次包括:应用层、平台层、组件层和基础支撑层。下面详细介绍每个结构。
24.应用层,用于根据可执行文件和按照统一格式编写的参数名文件,配置工业app模型处理流程中的微服务组件、可执行文件id和输入参数,调用所述微服务组件以及根据输出参数名显示所述微服务组件返回的结果。
25.可选的,应用层首先接收开发者上传的可执行文件和按照统一格式编写的参数名文件,例如可扩展标记语言(extensible markup language,xml)文件。参数名文件采用标签嵌套形式,定义了根节点,用于识别所有参数的起始点和终止点,并且定义了文件名称、索引值和版本号。子节点定义了每个参数,其中包括参数名、索引值以及参数中每个属性值的描述。参数名文件包括输入参数名、输出参数名和参数类型。可执行文件为机理模型或者工业软件。在汽车工业app的场景中,可执行文件可以是智能后视镜的机理模型。可执行文件以可执行文件id作为唯一标识。
26.平台层作为实现组件调用的中间件,用于存储所述可执行文件至存储池,解析参数名文件,存储可执行文件id、可执行文件的存储路径、输入参数名、输出参数名和参数类型至数据库。存储池采用文件共享服务器smb构建,作为中转存储单元实现可执行文件从平台层转发到相应的微服务组件执行。
27.在用户需要配置工业app模型处理流程时,应用层响应于用户的配置操作,在前端页面上显示多个组件的信息、输入参数名和参数类型,并配置工业app模型处理流程中的微服务组件、可执行文件id和输入参数。其中,应用层需要从平台层的数据库中读取输入参数名、参数类型和可执行文件id进行显示。
28.其中,用户的配置操作包括对组件类别的选择操作、对机理模型/软件的选择操作、对可执行文件id的选择操作和输入参数。多个组件的信息包括机理模型组件类别和工业软件组件类别,每个组件类别包括的多种类型的机理模型/工业软件,以及每种类型的机理模型/工业软件包括的至少一个可执行文件id和输入参数名,每种类型的机理模型/软件由一种微服务组件(即解析该类机理模型/软件的容器)执行。可选的,机理模型的类型包括python、java、c、c 、fmu和excel等,工业软件的类型包括mworks、idesigner等。示例性的,用户可以在前端页面上依次选择机理模型组件类别、python机理模型、智能后视镜的可执行文件id。当用户选择好可执行文件id之后,从系统角度来讲,就把哪类组件(如机理模型组件)、哪类容器(如fmu解析容器)、哪个可执行文件(如汽车后视镜模型),关联起来了。
29.这完成了一个组件的配置,还可以同理完成其它组件的配置,组件之间构建数据输入输出关系形成工业app模型处理流程。
30.平台层将输入参数名、输入参数和可执行文件id封装为统一格式的目标文件传输给微服务组件。可选的,将输入参数名、输入参数和可执行文件id按照键值对格式封装为josn格式的目标文件传输给微服务组件。具体的,键包括输入参数名和可执行文件名,值包括输入参数和可执行文件id。平台层通过ison文本数据的编解码器进行封装和解析。可选的,微服务组件与所述平台层采用socket通信,则采用socket通信将目标文件传输给微服务组件。
31.组件层包括多种类型的微服务组件。根据组件集成方式的不同,提供了各类微服务、应用程序接口(api)服务或应用运行时服务,以对接不同的组件服务接口。
32.参见图1,组件层包括机理模型组件库、工业软件组件库、数据库组件库和文件协议组件库。多种类型的微服务组件是采用容器化技术把装在服务器获取虚拟机环境上的组件运行环境抽象得到的,组件运行环境至少包括多种语言开发的机理模型运行环境,如python、java、c、c 、fmu、excel等,以及多种应用接口的工业软件运行环境,如mworks、idesigner等。
33.机理模型组件库和工业软件组件库中的每个微服务组件包括调用接口和返回接口。应用层通过所述调用接口调用对应的微服务组件,微服务组件通过所述返回接口返回结果至所述应用层。
34.所述微服务组件用于解析所述目标文件,根据所述可执行文件id从所述数据库中获取可执行文件的存储路径,并从存储池中下载所述可执行文件;根据所述输入参数名、输入参数执行所述可执行文件,通过所述返回接口返回结果至所述应用层。可选的,组件层将结果按照键值对格式封装为josn格式的目标文件,采用socket通信传输给平台层;平台层通过ison文本数据的编解码器从接收到的目标文件中解析得到结果数据,并与输出参数名进行匹配,显示在应用层的前端页面上。
35.容器云基础环境是本实施例针对可扩展的组件集成方式,基础支撑层基于可移植容器编排管理平台(k8s)和微服务架构搭建,由一系列基础技术中间件组成,提供网络资源、算力资源和存储资源。基础支撑层分为容器云、微服务架构、devops开发运维一体化、基础技术中间件四部分。通过在k8s分布式架构上利用动态负载均衡构建一套基于微服务容器云的工业app组件松耦合集成系统,利用k8s配合微服务架构实现服务发现与调度以及服务器弹性扩容,从而为组件集成提供基础环境支撑。基础环境支撑主要体现在以下4个方面。
36.(1)系统服务能力容器化,通过构建的k8s容器编排管理平台管理系统服务。通过管理页面预设各服务能力模块的资源使用策略,依据资源使用策略自动调整计算资源,使云服务器或容器数量自动随业务负载增长而增加,随业务负载降低而减少,保证业务平稳健康运行。
37.(2)系统采用springcloud微服务集群架构,细分业务能力,提供高性能、低耦合的平台功能模块。对外提供服务中台能力,例如鉴权、流程引擎、网关、负载、熔断、限流、服务治理等能力。
38.(3)对外提供细分权限角色的代码仓库、镜像仓库。用户通过jenkins上已经配置jenkins pipeline模板,构建各自的构建任务。执行代码检查、编译、打包、部署等工作。
39.(4)系统提供一系列基础技术中间件,例如通信类的rpc、http(https)、grpc,消息类有mq、rabbitmq等,应用配置类有config、applo,代理类nginx;数据库有mysql,缓存类有redis等。配置中心(apollo)是分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,用于微服务配置管理;注册中心(nacos)提供服务发现和服务健康监测,动态配置服务,动态dns服务,服务及其元数据管理等功能,构建以“服务”为中心的现代应用架构的服务基础设施;链路跟踪(skywalking)提供分布式追踪、性能指标分析、应用和服务依赖分析等,便于服务
发生故障的时候,能够快速定位和解决问题;消息(rabbitmq)解决微服务应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性;搜索(elk(es logstash kibana)),logstash收集分布在微服务应用下的日志并进行处理;es则是一个集中存储应用日志的地方,作为一个全文检索以及分析的引擎,提供近乎实时查看、分析海量的数据高能力。kibana为es提供前端页面,让用户可以很方便的以图形化的接口查询es中存储的数据,同时提供各种分析的模块,比如构建dashboard的功能。
40.本实施例中,利用基于springcloud微服务框架以及k8s容器资源管理系统,将装在服务器或者虚拟机环境上的机理模型运行环境抽象成一个个微服务组件,平台层只需要调用微服务组件即可实现组件调用及数据交换。
41.图2是本发明实施例提供的松耦合工业app组件集成模式的示意图。本实施例利用按照统一格式编写的参数名文件共享统一模型约定接入组件服务的输入数据规则,从而进行参数识别,利用统一格式的目标文件约定接入组件服务的输出结果规则从而实现组件与平台层的数据交换,利用流程引擎实现组件调用以及数据结果异步反馈。
42.本发明实施例提供了一种基于工业app微服务的松耦合数据处理系统,以解决传统的应用开发模式中组件深度集成以及组件类型简单不满足复杂业务场景的问题,从而提高系统扩展性,增加平台的适用范围。在数据交互方面,引入了统一格式编写的参数名文件,基于组件化软件开发规范以及微服务构建思想,约定了每种集成的微服务组件运行的可执行文件均需要按照统一格式生成参数名文件,并提供给系统,实现全局同一标注,规范地、高效率地实现页面输入和页面输出。同时约定了统一格式的目标文件,使得平台层与各微服务组件能够高效交互。而且,本实施例通过存储可执行文件至存储池,平台层仅需要给微服务组件提供输入参数名、输入参数和可执行文件id,微服务组件自行从存储池中下载可执行文件,不需要交互可执行文件,简化了交互逻辑和传输数据量。本实施例最大限度减少了对每个组件服务的依赖,增加了系统扩展性。通过本发明实施例,使得基于机理模型和工业软件构建的工业app具有了更广泛的组件资源,组件的加入变得更加容易。该方案支持具有明确输入输出的参数规则的所有脚本、软件、数据库、文件等作为组件加入到系统。
43.图3是本发明实施例提供的基于工业app微服务的松耦合数据处理方法的流程图,用于通过系统执行文件的情况。本实施例由上述任一实施例提供的基于工业app微服务的松耦合数据处理系统执行。
44.为了方便描述,在通过系统执行文件之前,还需要执行文件上传流程。具体而言,开发者通过系统接口上传调用某微服务组件时微服务组件依赖的文件压缩包,压缩包包括组件微服务的可执行文件,以及按照统一格式编写的说明该可执行文件中涉及的输入参数、输出参数和参数类型等的参数名文件。应用层接收开发者上传的压缩包并进行解压缩,平台层从参数名文件中解析出输入参数、输出参数和参数类型并存储至数据库;同时,将存储所述可执行文件至存储池,将可执行文件id和可执行文件的存储路径也存储至数据库。至此,完成文件上传流程。通过以下s110~s140完成微服务组件调用流程。
45.s110、根据可执行文件和参数名文件,配置工业app模型处理流程中的微服务组件、可执行文件id和输入参数。
46.s120、将输入参数名、输入参数和可执行文件id封装为统一格式的目标文件传输给微服务组件。
47.s130、调用所述微服务组件解析所述目标文件,根据所述可执行文件id从所述数据库中获取可执行文件的存储路径,并根据所述存储路径下载所述可执行文件;根据所述输入参数名、输入参数执行所述可执行文件,返回结果。
48.s140、根据输出参数名显示所述微服务组件返回的结果。
49.在一具体应用场景中,微服务组件调用流程包括以下操作:
50.(1)系统基于已经配置好的工业app流程,加载流程中包含的微服务组件。
51.(2)系统获取前端输入的参数值作为该微服务组件运行所需的输入参数,同时获取流程中配置的该微服务组件的可执行文件id。
52.(3)系统调用json编解码器,将上述输入参数、输入参数名和文件id封装到一个json文件中,然后调用对应微服务组件。
53.(4)微服务组件通过socket通信接收json文件;对json文件进行解码,获得可执行文件id和参数信息。
54.(5)微服务组件向下载接口发送可执行文件id及下载请求,系统下载接口通过可执行文件id查询数据库获取可执行文件的存储地址并将该地址返回微服务组件。
55.(6)微服务组件下载可执行文件到本地组件服务器。将该可执行文件加载进该微服务组件运行环境,导入输入参数,执行文件结果。
56.(7)微服务组件将结果通过json格式进行封装,并调用返回接口将结果返回。
57.(9)系统通过返回接口获取该json文件,调用json编解码器解析出参数键值对,通过数据库中参数信息匹配到对应的输出参数;
58.将输出参数显示到前端界面位置,完成一次组件调用过程。
59.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献