掌桥专利:专业的专利平台
掌桥专利
首页

面向数据的云原生软件架构及软件平台

文献发布时间:2024-04-18 19:54:10


面向数据的云原生软件架构及软件平台

技术领域

本发明涉及云原生软件技术领域,尤其是一种面向数据的云原生软件架构及软件平台。

背景技术

云原生是一种新型的应用构建和运维模式,云原生软件技术即面向云计算、边缘计算等复杂动态的计算环境和按需集成、敏捷构建、长期演化等复杂业务需求,构建、部署、管理和维护具备开放架构下的马赛克式内生柔性组装运行能力和迭代演进能力,高敏捷、易重构、少配置、轻运维的复杂云化软件的方法和技术。

传统网络化应用软件基于物理资源环境设计和运行,即使在云上部署运行,仍与云原生有很大区别,应用的软件架构和云的整合度非常低,也就难以充分发挥云计算的优势。

目前工业界云原生软件技术普遍采用SOA等面向服务的传统网络化软件架构技术路线,以CNCF推出的Istio软件为例,作为当前主流的面向微服务的云原生基础软件框架,采用了面向RESTFul应用服务接口的网络协议栈旁路技术,实现对微服务模块对外交互的透明截流与集成控制,构建所谓的服务网格,作为统一的运行控制底座,提供复杂云应用的组装和治理等功能。

在现有技术架构下,应用软件内在结构和技术特征仍属于传统面向服务的软件架构,软件组件通过各种不同形式的服务接口进行交互和集成。服务接口机制确保统一接口标准下组件的可集成、可替换,支持组件的独立开发、运行和管理。但是,特定的接口定义在组件间产生了接口依赖、数据依赖等内部依赖(耦合),跨网络运行的组件之间的接口调用,又进一步引入了组件网络位置依赖、组件位置解析机制依赖等外部依赖(如DNS、注册与发现服务、API网关)。此外更复杂的是,面向服务本质上属于面向过程的方法,多组件通过大量不同的接口调用进行组织和协同,相关的时序、拓扑、协议、流程等过程性全局控制关系内嵌并分散于各个组件之中,构成了一种全局性的应用控制依赖。组件之间、应用与环境之间这些紧密的耦合关系,对应用的设计、集成、部署、运行乃至长期维护和动态重构形成大量内生限制,与云计算资源解耦、按需使用、灵活组装、标准化、免维护的理念和扁平化、分布式、自运维的特征不能充分匹配,复杂应用的开发、治理和演化仍然是十分困难的工作。

发明内容

本发明要解决的技术问题是:提供一种面向数据的云原生软件架构及软件平台,具备开放架构下内生的柔性组装、敏捷开发、持续演化能力,可跨云边端异构环境无缝高效运行,为构建万物互联、云边端协同的智能化应用提供基础模型和软件支撑。

本发明解决上述技术问题所采用的技术方案是:一种面向数据的云原生软件架构,包括

组件,其为可复用的云原生应用的局部功能实体,以数据流为组件间交互形式,组件间除了数据依赖不存在其它依赖;

数据流图,为组件之间的逻辑数据网络,是独立的可复用软件实体,定义云原生应用的组件组成、全局性的依赖关系和控制逻辑;

主动数据网格,为云原生应用的基础运行时环境,管理和运行云原生应用的组件和数据流图,根据数据流图和系统配置构建通讯和存储一体的应用层数据网络系统,通过数据流驱动组件的运行,并提供基于数据名字空间的隔离管控机制。

优选的,组件的内部状态、业务逻辑、外部表征与其他组件解耦,组件相互无感知;组件通过标准化接口接入主动数据网格并基于端口进行数据交换;端口数据的流转由数据流图定义和控制。

优选的,组件接入主动数据网格的接口包括:组件注册、组件注销、组件运行、组件暂停、组件停止、打开端口、关闭端口,以及基于端口的数据功能接口,其中数据功能接口提供推模式、拉模式、RPC模式的数据交换功能。

优选的,数据流图定义组件之间的逻辑数据网络,包括节点组件组成、组件端口类型、组件端口的命名数据、端口数据所属的数据名字空间、端口路由映射、端口控制逻辑和控制策略;数据流图独立于组件构建和演化,由主动数据网格加载运行,改变数据流图即实现应用的在线重构和持续演化。

优选的,主动数据网格构建和运行实际的组件间数据网络,实现组件的透明集成以及应用与底层运行环境之间的解耦;方法为:

1)基于数据流图定义的组件端口所属的数据名字空间,构建相应的运行时数据名字空间;

2)基于数据流图定义的组件端口间的逻辑路由,采用面向命名数据的多模组网应用层数据网络,在各个数据名字空间内,构建并运行实际的去中心化、位置透明的组件间数据通讯网络,实现跨云、边、端异构网络环境无缝运行;

3)对于部署在同一主动数据网格节点上的组件间的数据交换,通过本地数据中转机制以免除网络协议栈开销。

优选的,主动数据网格负责组件、数据流图和应用的全生命周期管理,按需加载和运行组件,通过数据网络驱动组件的运行,通过数据流图的动态调整实现应用的在线重构。

优选的,主动数据网格由若干实例分散协同运行,构建和运行应用层数据网络,并基于该数据网络按需提供去中心化、位置透明的数据存储服务,实现通讯和存储一体的数据服务系统。

一种软件平台,采用前述的面向数据的云原生软件架构。

优选的,上述的软件平台包括

主动数据网格:组件、数据流图和应用的管理和运行软件,由若干实例分散协同运行,根据数据流图和系统配置构建通讯和存储一体的应用层数据网络系统,包括控制平面和数据平面,提供组件、数据流图和应用的全生命周期管理;

应用数据流图:由主动数据网格加载并运行的数据流图实例,以生成应用数据网络,控制应用的柔性定义、集成和重构。

优选的,上述的软件平台还包括

主动数据网格SDK:为应用组件提供面向数据的组件模型、编程接口和运行支持,应用组件通过该软件接入主动数据网格;

应用组件:由主动数据网格加载运行的组件实例。

优选的,上述的软件平台还包括

虚拟资源计算环境:实现软件定义虚拟资源,提供标准化的云化资源服务。主动数据网格通过标准化接口与虚拟资源计算环境对接,进行底层资源的管理和操作。

优选的,所述的软件平台中,主动数据网格采用面向命名数据的应用层数据网络的组网机制,方法为:

1)应用数据流图定义组件端口的命名数据及其所属的数据名字空间,主动数据网格在加载应用数据流图时,根据数据名字空间管理策略和系统安全管理策略,检测应用数据流图的正确性、合法性、兼容性和安全性,而后构建相应的运行时数据名字空间,同一数据名字空间内的端口相互通讯;

2)主动数据网格采用面向命名数据的应用层数据路由或者数据分发方法,实现应用组件的透明集成以及应用与底层运行环境之间的解耦;

3)对于部署在同一主动数据网格节点上的组件间的数据交换,提供本地数据中转机制,以免除网络协议栈开销。

优选的,所述的软件平台中,主动数据网格基于所构建的应用层数据网络按需提供数据存储服务,从而实现通讯和存储一体的数据服务系统,方法为:

1)基于数据路由节点或组件,对系统中发布的命名数据进行订阅,并进行按需筛选(采用模式匹配技术,如基于数据名字或字段内容特征、数据的时间范围等);

2)获得的数据通过后端的缓存模块或持久化存储模块进行存储管理,进而为系统中的相关数据请求提供服务。

本发明的有益效果是:组件形成为面向数据的组件,内部状态保持私有,功能内聚便于复用,对其它组件并不感知,组件间耦合降到最低,组件形成为少依赖、易配置、轻运维的可复用软件实体。数据流图定义应用全局性的依赖关系和控制逻辑,作为独立的可复用软件实体,提供应用的柔性定义、透明组装、持续演化能力。主动数据网格构建通讯和存储一体的去中心化、位置透明的应用层数据网络系统,实现跨云、边、端异构网络环境无缝运行,支撑组件和数据流图的组装运行和动态管理,并使之与底层运行环境解耦,同时可基于虚拟资源计算环境,进一步减少应用对物理运行环境的绑定。此软件架构提供了一种结构化的以数据为中心的计算、通讯、存储相融合的软件系统模型,可构建开放架构下分散式、自适应的马赛克化云原生软件系统,具有分散解耦、功能复用、透明组装、动态重构、环境无关、异步并行等特点,可充分适应云计算、边缘计算等复杂动态的计算环境和按需集成、敏捷构建、长期演化等复杂业务需求,实现高敏捷、易重构、少配置、轻运维,为实现未来各类要素动态闭环的人机物融合系统提供基础模型和软件支持。

附图说明

图1是本发明的面向数据的云原生软件架构的逻辑模型;

图2是本发明的面向数据的云原生软件平台的功能组成;

图3是本发明的以数据为中心的计算、通讯、存储相融合的云原生计算模型;

图4是本发明的面向数据的组件的结构示例;

图5是本发明的应用数据流图的图形化示例;

图6是本发明的数据流图YAML定义的开发人员板块的程序;

图7是本发明的数据流图YAML定义的运维人员板块及管理人员板块的程序;

图8是本发明的主动数据网格的网络结构示例;

图9是本发明的应用在线重构的示例一;

图10是本发明的应用在线重构的示例二;

图11是本发明的应用在线重构的示例三;

图12是测试本发明的面向数据的云原生软件平台原型测试验证环境;

图13是演示应用数据流图的YAML定义的程序;

具体实施方式

现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

一种面向数据的云原生软件架构,包括

组件,其为可复用的云原生应用的局部功能实体,以数据流为组件间交互形式,组件间除了数据依赖不存在其它依赖;

数据流图,为组件之间的逻辑数据网络,是独立的可复用软件实体,定义云原生应用的组件组成、全局性的依赖关系和控制逻辑;

主动数据网格,为云原生应用的基础运行时环境,管理和运行云原生应用的组件和数据流图,根据数据流图和系统配置构建通讯和存储一体的应用层数据网络系统,通过数据流驱动组件的运行,并提供基于数据名字空间的隔离管控机制。

以数据为核心的面向数据的云原生软件架构如图1所示,主要包括以下方面:

1)应用局部功能逻辑实现为组件,内部状态保持私有,组件间的交互接口形成为端口即图1中组件内的圆形标识,端口仅作为单纯的数据通道,数据来源和去向对组件保持透明,组件间仅存在数据依赖,相互并不感知,组件形成为面向数据的少依赖、易配置、轻运维的可复用软件实体。

2)应用全局性的依赖关系和控制逻辑构成软件定义的逻辑数据网络——数据流图。数据流图运行在相互隔离的数据名字空间当中,通过数据流驱动组件运行,实现应用整体功能。数据名字空间为逻辑数据网络提供功能或者安全等方面的隔离保护,不同数据名字空间中的组件端口不能相互通讯。数据流图也是独立的可复用软件实体。

3)云原生应用的基础运行时环境——主动数据网格。主动数据网格作为应用层数据网络平台,提供面向命名数据的应用层数据路由和数据存储机制,加载数据流图并构建相应的数据名字空间和应用数据网络实例,驱动数据流图和组件的异步并发运行,同时提供组件、数据流图和应用的全生命周期管理。

面向数据的组件将组件间的耦合关系降到最低,组件功能内聚,形成为少依赖、易配置、轻运维的可复用软件实体;软件定义的数据流图作为独立的可复用软件实体,提供应用的柔性定义、透明组装、持续演化能力;主动数据网格构建通讯和存储一体的数据服务系统,支撑组件和数据流图的组装运行和动态管理,并使之与底层运行环境解耦。此软件架构具有分散解耦、功能复用、透明组装、动态重构、环境无关、异步并行等特点,可充分适应云计算、边缘计算等复杂动态的计算环境和按需集成、敏捷构建、长期演化等复杂业务需求,实现开放架构下分散式、自适应的马赛克化云原生软件系统,并为实现未来各类要素动态闭环的人机物融合系统提供基础模型和软件支持。

基于上述的软件架构,面向数据的云原生软件平台如图2所示,包括:

1)虚拟资源计算环境(可选):实现软件定义虚拟资源,以虚拟机、容器或者编程语言虚拟机等形式,为平台提供标准化的封装、部署、运行、管理等云化资源服务,进一步减少平台对系统运行环境的绑定。

2)主动数据网格:组件、数据流图和应用的管理和运行软件,由若干实例分散协同运行,根据数据流图和系统配置构建通讯和存储一体的应用层数据网络系统,包括控制平面和数据平面。数据平面提供数据名字空间、数据路由、数据缓存、数据存储等功能,控制平面提供编排调度服务、多模组网服务、应用管理服务(包括组件、数据流图、应用的管理)、安全管理服务等功能,实现组件、数据流图和应用的全生命周期管理。

3)应用数据流图:由主动数据网格加载并运行的数据流图实例,以生成应用数据网络,控制应用的柔性定义、集成和重构,通过应用数据流图的改变,可实现应用的在线重构和持续演化。

4)主动数据网格SDK:为应用组件提供面向数据的组件模型、编程接口和运行支持,应用组件通过该软件接入主动数据网格。提供不同编程语言的版本,支持组件以常驻服务或者函数服务等方式部署运行。

5)应用组件:由主动数据网格根据应用数据流图加载运行的组件实例。不同组件实例可异步并行运行,组件分为用户组件和系统组件两大类。用户组件属于用户业务模块。系统组件属于云原生软件平台模块,可按需扩展,提供主动数据网格控制策略、配置管理功能,以及用户组件编排调度、状态监控、日志计量、可视化展示、系统交互式编程等功能。

上述面向数据的云原生软件平台提供了一种结构化的以数据为中心的计算、通讯、存储相融合的云原生计算模型,如图3所示。组件完成应用局部功能的计算任务,主动数据网格基于应用数据流图完成去中心化、位置透明的全局数据通讯及相应的应用全局计算任务,并基于所构建的数据网络系统按需提供应用数据的去中心化、位置透明的存储服务。在数据名字空间提供的分布式隔离控制之下,平台分散部署的主动数据网格和应用组件在数据驱动下运行,各部分充分解耦,具备内在的分散计算、分布存储、异步并行能力,并通过虚拟资源计算环境实现与物理节点系统的解耦,自然适应网络化动态计算环境和主流多核/众核算力资源,实现开放架构下的马赛克式云原生软件系统。

面向数据的组件结构如图4所示。方框代表组件,圆形代表组件的端口。端口是组件接入主动数据网格进行数据交换的入口,也是组件之间交互的唯一方式,端口连接线上的箭头代表数据传输的方向,端口数据的具体流转由独立的数据流图定义和控制。

组件功能内聚,以端口数据交换为组件间交互形式,其内部状态、业务逻辑、外部表征(物理位置、网络层地址、传输层端口、应用层域名、进程号、接口形式等)均与其它组件解耦,是不包含应用全局性的依赖关系和控制逻辑的以数据为中心的局部功能实体,组件相互无感知。

组件通过主动数据网格提供的标准化接口接入主动数据网格并基于端口进行数据交换,组件接入主动数据网格的主要接口包括:组件注册、组件注销、组件运行、组件暂停、组件停止、打开端口、关闭端口,以及基于端口的数据功能接口等等。其中端口数据交换功能接口主要有3种模式6种类型,提供同步、异步两种版本:

1)推模式:接收数据(wait and receive)、发送数据(send);

2)拉模式:获取数据(retrieve)、提供数据(wait and send);

3)RPC模式:发送并接收数据(send,wait and receive)、接收并发送数据(waitand receive,send)。

如图5所示,一个云原生应用当中所有组件节点之间的数据交换关系构成的逻辑数据网络即为该应用的数据流图,定义了组件间的依赖关系和控制逻辑,也即应用分散协同运行的全局逻辑。

与面向服务的组件模型内嵌于组件的全局依赖关系和控制逻辑不同,数据流图独立于组件构建和演化,由主动数据网格加载运行,定义了逻辑数据网络的节点组件组成、组件端口类型、组件端口的命名数据、端口数据所属的数据名字空间、端口路由映射、端口控制逻辑和控制策略等云原生应用定义和组装的配置和控制信息,实现组件的透明集成和交互。数据流图独立于组件构建和演化,由主动数据网格加载运行,改变数据流图即实现应用的在线重构和持续演化。

节点组件的端口数据为命名数据,是对端口数据交换协议的定义,即具有数据名字的类型化数据(如单个报文形式的二进制类型数据)或者结构化数据(如报文序列形式的JSON数据),一般采用结构化、可扩展、支持前后兼容的消息编码和处理技术实现(如ProtoBuf、XML、JSON等)。组件端口的命名数据总是属于应用的某个数据名字空间。数据名字空间提供端口数据交换的隔离机制,以实现功能域(如避免数据名字冲突)或者安全域(如实现多级安全控制)等方面的控制功能。数据流图边线的端点即组件接入的端口,主动数据网格基于端口提供了统一的数据功能接口,接口定义不包含任何通讯参与方实体属性的信息(网络层地址、传输层端口、应用层域名、进程号等),接口约束仅限于数据交换协议,如报文数据格式、报文序列规则等,即端口命名数据的兼容性。通过简化和标准化交互界面,组件间无任何感知和绑定,组件之间的耦合仅限于数据耦合。与端口数据交换功能接口相对应,端口主要有以下3种模式6种类型:

1)推模式:接收数据端口(wait and receive)、发送数据端口(send);

2)拉模式:获取数据端口(retrieve)、提供数据端口(wait and send);

3)RPC模式:发送并接收数据端口(send,wait and receive)、接收并发送数据端口(wait and receive,send)。

数据流图中连接端口的边线代表数据交换的逻辑路由,一个端口连接的边线可不止一条,即端口数据通讯并不限于点到点、面向连接或者单向的数据通讯模式。端口的具体通讯机制由主动数据网格提供,实际路由路径还可能包含主动数据网格的中转路由节点。端口作为主动数据网格的接入控制点,以标准化、可扩展的方式定义和加载控制逻辑、控制策略,实现应用的全局逻辑功能(如优先级调度、负载均衡、高可用、基于内容的路由等各种动态控制、动态路由功能),或实现其它功能(如日志、追踪、监控、计量等应用调试、运维、管理功能)。

由于图可分解、可组合、可扩展、可分层嵌套,基于数据流图的分层迭代、分而治之,可实现复杂应用的迭代构建和协同设计,为组件、模块、应用、系统等各个层级的软件对象提供了一致的定义形式。仅包含一个组件的数据流图即为最底层组件。数据流图可作为复合型组件,数据流图与外部交换数据的端口即为复合型组件的端口。复合型组件对外隐藏模块内部细节,便于复杂应用的模块化设计实现,同时也支持数据流图编辑工具的按需逐层展示。

通过改变数据流图的路由结构或者端口控制逻辑,以及对节点组件进行插入、移除、替换等操作,可实现应用系统的柔性定义、透明组装、随需重构和持续演化。常用的软件设计模式、标准化流程、成熟架构方案等可基于数据流图固化为可复用的模板。数据流图可基于YAML、JSON、XML等结构化文本或者专门的DSL(Domain Specific Language)进行定义,可采用文本编辑工具或者图形化工具进行离线编辑,也可通过主动数据网格管理工具进行在线编辑。结构化定义的数据流图为整个软件生命周期各项活动提供语义前后一致、可无缝扩展的面向数据的逻辑模型、工作视图和统一的配置形式,便于上下游阶段成果的无缝衔接和转换。应用的开发人员、运维人员、管理人员等各类相关人员,对数据流图的定义文件分板块独立按需扩展(可通过不同的文件进行管理),相关板块之间通过标准化的结构化文本元素对象或者DSL语言对象进行互操作,保证不同层面的定义和配置信息具备高度的独立性,各部分职责划分清晰,并且易扩展、易集成、易维护,降低复杂软件系统的治理难度和相关成本。而传统面向过程或者面向服务的软件架构,软件的不同部分、软件生命周期的不同阶段采用各种不同维度的模型和方法,大大增加了沟通、衔接、管理和维护的难度。图6所示,本发明的数据流图YAML定义的开发人员板块的程序;如图7所示,本发明的数据流图YAML定义的运维人员板块及管理人员板块的程序。

主动数据网格是云原生应用的基础运行时环境,负责管理和运行云原生应用的组件和数据流图,根据数据流图和系统配置构建通讯和存储一体的应用层数据网络系统,通过数据流驱动组件的运行,并提供基于数据名字空间的隔离管控机制。主动数据网格负责组件、数据流图和应用的全生命周期管理,按需加载和运行组件,通过数据网络驱动组件的运行,通过数据流图的动态调整实现应用的在线重构。主动数据网格由若干实例分散协同运行,构建和运行应用层数据网络,并基于该数据网络按需提供去中心化、位置透明的数据存储服务,实现通讯和存储一体的数据服务系统。

数据名字空间由主动数据网格根据应用配置(应用数据流图、系统全局配置等)、系统安全策略及用户指令在系统运行过程中动态创建和销毁,通常跨节点分布构建。主动数据网格为端口建立数据路由时,首先检查通讯方端口是否满足属于同一数据名字空间的前提条件。同一应用的端口数据通常在同一数据名字空间之内,但应用与数据名字空间之间并不一定是一一对应的关系。

主动数据网格基于数据流图为组件的端口定义的静态逻辑路由或者动态逻辑路由控制策略,构建相关数据名字空间内的逻辑数据网络,从而得到整个云原生软件系统的逻辑数据网络。逻辑数据网络进一步通过主动数据网格的多模组网和数据路由机制映射到实际的数据网络,驱动组件运行,最终实现完整的云原生应用功能。

主动数据网格通常由若干实例分散协同运行;主动数据网格实例基于所构建的数据网络系统按需提供数据存储服务,从而实现通讯和存储一体的数据服务系统。主动数据网格可跨节点运行,一个节点可运行多个主动数据网格实例。一个主动数据网格实例可管理和运行不同应用的部分或全部组件,支持组件以常驻服务或者函数服务等方式部署运行,支持不同组件异步并发运行。

主动数据网格的多模组网机制及典型网络结构示例如图8所示,由路由节点、对等节点、接入节点三类节点组成(路由节点、对等节点至少包含一种)。路由节点采用点对点路由模式组网,主要面向固定网络拓扑、异构网络桥接、远程网络接入、资源受限环境等场景下的组网。对等节点采用P2P(对等网)路由模式组网,主要面向动态网络拓扑、无线局域网、系统资源充裕等场景下的组网。接入节点采用接入模式组网,不承担对外的路由功能,主要用于资源受限节点、漫游节点、临时节点等通过路由节点接入组网。路由节点、对等节点可独立部署,不承载组件,仅提供组网功能;主动数据网格实现跨云、边、端异构网络环境无缝运行。

在具体组网机制上,主动数据网格采用面向命名数据的应用层数据网络;方法为:

1)应用数据流图定义组件端口的命名数据及其所属的数据名字空间,主动数据网格在加载应用数据流图时,根据数据名字空间管理策略和系统安全管理策略,检测应用数据流图的正确性(如是否存在循环因而可能导致死锁)、合法性(如应用数据流图及其组件来源是否可信)、兼容性(如通讯方端口的命名数据是否兼容)和安全性(如通讯参与方端口在同一数据名字空间之内),而后构建相应的运行时数据名字空间,同一数据名字空间内的端口相互通讯。

2)主动数据网格采用命名数据网络(Named Data Networking, NDN)、数据分发服务(Data Distribution Service,DDS)等面向命名数据的应用层数据路由或者数据分发技术,完成去中心化、位置透明的应用组件通讯网络的构造和运行,实现应用组件的透明集成以及应用与底层运行环境之间的解耦。根据用户需求,也可配置选用其它数据路由或者数据分发技术进行组网,如采用端口静态地址绑定完成通讯网络的构造,以免去应用层路由发现机制的开销。

3)对于部署在同一主动数据网格节点上的组件间的数据交换,提供本地数据中转机制(如操作系统、编程语言运行时或者第三方软件提供的协程、线程或者进程通信机制),以免除网络协议栈开销。

主动数据网格基于所构建的应用层数据网络按需提供数据存储服务,从而实现通讯和存储一体的数据服务系统,方法为:

1)基于数据路由节点或组件,对系统中发布的命名数据进行订阅,并进行按需筛选;

2)获得的数据通过后端的缓存模块或持久化存储模块进行存储管理,进而为系统中的相关数据请求提供服务。

主动数据网格可根据用户或调度程序的指令,对应用数据流图进行动态调整,实现业务系统的在线编程、动态重构,也可通过加载路由扩展模块,实现日志计量、监控追踪、负载均衡、高可用、在线升级、灰度发布等应用和系统治理功能。

图9为应用在线重构的示例一,图10为应用在线重构的示例二,图11为应用在线重构的示例三。示例一:完成数据采集上报功能。示例二:为适应有限的网络带宽减少网络传输,在线插入数据压缩组件,实现应用结构的在线重构。示例三:为利用互联网远程同步数据到后方并增强传输的安全性,将数据压缩组件替换为数据加密组件,实现应用功能的在线重构。各组件对重构过程并无直接感知,重构期间仍可持续运行。这使用户获得了对软件系统的快速定制能力,一般只涉及数据流图的操作,不需要修改编译和重新部署组件,不需要实施复杂的配置运维,实现了低代码、少配置、轻运维的柔性集成和动态重构能力。

除了数据通讯功能,主动数据网格通过网格实例或者组件的方式提供以下主要服务:

数据存储服务:主动数据网格基于数据路由节点或组件,对系统中发布的命名数据进行订阅,并可按需筛选(采用模式匹配技术,如基于数据名字或字段内容特征、数据的时间范围等),数据通过后端的缓存模块或持久化存储模块进行存储管理,进而为系统中的相关数据请求提供服务,实现去中心化、位置透明的数据存储服务;通过挂接不同后端存储插件实现异构数据的高效存储管理,支持键值、对象、关系数据、时间序列、文件等数据管理模型,以及内存、磁盘等存储介质;数据存储节点可按需组合,实现分布式数据存储机制,满足高可用、高可扩展、高吞吐、高带宽、低延时等数据服务需求;上述数据存储服务可为分布式应用的状态与数据管理、控制与协同等复杂功能提供数据存储保障,支撑应用节点迁移和漫游、应用节点失效处置、应用网络分区容忍、应用在线离线自适应运行等复杂业务场景的实现。

编排调度服务:根据应用数据流图、系统调度策略以及用户指令,完成应用组件及相关主动数据网格实例的运行节点选择、系统资源分配、运行流程编排和运行配置设定;主动数据网格实例根据调度指令加载所负责的应用组件和自身相关功能模块,创建数据名字空间,生成数据路由,进而驱动组件运行。

多模组网服务:根据系统配置、用户指令,完成多模组网主要路由节点的部署、配置、运行和管理。

安全管理服务:按需提供用户/应用认证和授权服务、基于证书的数据网络节点身份验证机制和通讯加密机制、基于可信计算的节点系统环境可信验证机制(如平台硬件支持)、基于证书的数据签名机制(确保关键数据的完整性、可信性和可追溯性)等安全服务。

应用管理服务:提供组件、数据流图、应用等软件资源及其运行实例的全生命周期管理。

主动数据网格通过标准化接口进行底层资源的管理和操作,一般通过虚拟资源计算环境实施,当系统中没有虚拟资源计算环境时,则通过符合接口标准的其它物理资源管理软件实施。

对上述面向数据的云原生软件架构进行原型测试验证,软件的开发和测试基于麒麟操作系统,支持X86、ARM处理器,以及飞腾、鲲鹏、龙芯、申威等国产处理器。

测试验证环境如图12所示,模拟云、边、端三类计算环境。其中云端管理节点基于飞腾S2500双路服务器(128核),边缘加速节点基于飞腾2000+服务器(64核),树莓派端节点基于ARM Cortex-A72 4核处理器,端节点连接USB外置摄像头,边缘节点安装英伟达RTX3070显卡进行计算加速。所有节点通过千兆网络环境连接,树莓派节点通过Wifi接入。

组件包括视频采集、人脸识别、结果展示等功能组件。组件连同主动数据网格以容器的方式打包封装,通过Kubernetes容器管理平台(作为虚拟资源计算环境)部署运行。其中,视频采集组件运行在树莓派端节点上,通过外接摄像头采集视频信号,输出图片帧;人脸识别组件运行在边缘加速节点上,输入图片帧,分析其中的人脸目标,输出包含识别标识的结果图片帧;结果展示组件运行在云端管理节点上,输入图片帧并完成显示输出。演示应用数据流图的YAML定义如图13所示。

具体测试验证场景和测试结果如下:

测试场景1:通过平台(Google公司开源的一个容器集群管理系统)部署启动演示应用。组件容器启动之后,在秒级时延内完成组网,结果展示组件实时输出正确的人脸识别结果。

测试场景2:将视频采集组件在线替换为视频文件读取组件。组件替换后,应用数据来源及相应的数据获取组件改变,其它组件仍能保持不间断运行和正确输出。

测试场景3:将人脸识别组件在线替换为多目标物体识别组件。组件替换后,应用的核心功能组件改变,其它组件仍能保持不间断运行和正确输出。

测试场景4:将结果展示组件从云节点迁移到边缘节点。组件迁移后,应用节点的物理位置改变,其它组件仍能保持不间断运行,新的结果展示组件实时输出正确的多目标识别结果。

测试场景5:在云节点补充增加一个结果展示组件。组件新增后,应用组网的拓扑结构改变,其它组件仍能保持不间断运行,所有结果展示组件均实时输出正确的多目标识别结果。

以上测试表明,面向数据的云原生软件架构具备适应云边端异构资源、实现敏捷部署的环境适应能力,具备支持应用简化配置、透明组装的灵活构建能力,具备支持应用按需集成、柔性定义、在线重构的持续演化能力。

以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。

相关技术
  • 一种应用于摇纱机的扎绞线打结装置
  • 一种半气室氩弧熔铸铜绞线电极头成型装置和方法
  • 一种用于果物生产的一体采摘收集装置
  • 一种用于改性沥青防水卷材生产的边料收集装置
  • 一种用于绞线生产中油烟收集的装置及方法
  • 绞合线、使用这种绞合线的线圈、具有这种线圈的噪声滤波器装置以及用于这种绞合线的生产方法
技术分类

06120116363886