一种基于微服务化架构的边缘计算网关的制作方法

文档序号:17261739发布日期:2019-03-30 09:42阅读:846来源:国知局
一种基于微服务化架构的边缘计算网关的制作方法

本发明创造涉及网关领域,尤其涉及到边缘计算机网关领域。



背景技术:

目前工业物联网网关基本功能包括数据的采集、透传、监测以及设备控制,基本流程是通过标准的物理接口连接设备,解析协议进行数据采集,并使用mqtt等标准协议将数据透传到云平台,云平台根据预定规则下发指令控制设备。因此目前的物联网网关存在以下不足:1、网关功能模块开发周期长,各功能模块和os底层关系复杂,调试时间长、bug多等;2、架构不灵活,传统的边缘计算物联网网关所有功能加载完成后,如果需要做改动,只能停机升级软件,但在工业场景中,生产过程往往要求连续不能中断。因此,需要实现按需加载功能,不停机安装、启动、停止、更新和卸载功能模块。

边缘计算是工业物联网的核心能力,为了满足制造过程的需求,许多工业物联网解决方案都需要进行实时的数据和事件处理,新功能的快速开发迭代;任何维护、更新、升级、都要求不停机或者尽量不停机。本发明是为了解决工业物联网中所需要的功能快速开发、业务快速上线、不停机升级维护而产生的基于微服务化架构的边缘计算网关。本发明主要解决两个问题:1、赋能工业物联网网关微服务化架构的功能,使工业物联网领域的软件功能开发模块化、插件化、微服务化,各服务可以独立开发、独立上线、独立运行,大大加速了新功能的开发进度,提升软件整体质量;2、赋能工业物联网网关不停机升级维护能力,使工业物联网网关可以在线升级微服务、微服务可以在不关闭整个系统的情况下被安装、启动、停止、更新和卸载;微服务模块可以实现按需加载而非计算资源的持续占用。



技术实现要素:

目前的物联网网关基本没有微服务化功能开发的机制和不停机升级维护的功能,本发明提出基于微服务化架构的边缘计算模块,使工业物联网网关具备微服务化功能开发、不停机升级维护的能力。鉴于现有技术的缺陷,本发明创造提出一种新型的一种基于微服务化架构的边缘计算网关,本发明创造解决了目前的边缘计算物联网网关没有微服务化功能开发方法和系统不停机升级维护的问题。

采用的技术解决方案如下

一种基于微服务化架构的边缘计算网关,包含微服务、服务层、生命周期层,其特征在于工作步骤如下:

步骤1:初始化并启动微服务框架,微服务框架是插件程序逻辑的主要容器,框架的管理通过提供简单的api来标准化。插件首先通过标准的api实现框架的初始化和启动流程。

步骤2:获取上下文,上下文是框架内插件执行环境,用于授予对其他方法的访问权限,并与框架进行交互,使用上下文可以安装新的插件,并获得发布服务对象。插件是由激活器启动,激活器可以获取代表插件框架的上下文环境。

步骤3:安装微服务,服务注册表是一个动态的插件注册表,获取和监听服务。安装微服务就是上下文对象利用框架标准api把插件服务添加到注册表。

步骤4:启动微服务,激活器是一个接口,由框架的每个插件实现。启动微服务就是框架调用插件的激活器类,然后调用启动方法,使插件状态变为active状态。

步骤5:获取服务引用,框架提供了插件间通信的动态服务模型,插件可以用过接口和过滤表达式可以从框架获得服务引用,作为调用微服务的手柄。

步骤6:调用微服务,调用微服务就是利用从框架获得的服务引用执行插件的功能函数,并处理返回结果的过程。

所述的微服务层由插件激活器类activator启动,激活器可以获取代表微服务框架的微服务上下文环境,微服务上下文对象不能共享,基于c++/qt的一个共享库,包含了资源文件和元数据(metadata)。元数据的目的在于准确描述微服务的特征,除了让微服务化架构对微服务适当地进行各种处理(例如:依赖解析)外,还能更好的对微服务进行标识,以帮助用户对微服务进行理解。

所述的服务层提供了微服务间通信的动态服务模型,一个激活的微服务可以在任何时候注册(注销)0个或多个服务到框架,服务注册是一个具有可选注册属性的发布接口,通过接口和过滤表达式可以从微服务框架获得服务引用。

所述的生命周期层主要用于控制微服务的安装、启动、停止、更新和卸载,可以从外部管理应用或者建立能够自我管理的应用(或将两者相结合),并且给了应用本身很大的动态性,微服务的使用需要使用生命周期层的api来和ctkpluginframework的生命周期层进行交互。

有益效果

(1)降低复杂性

使用微服务化架构进行应用开发只需进行微服务插件开发,微服务隐藏了内部实现,并通过定义良好的服务来和其它微服务通信。隐藏内部机制意味着可以自由地更改实现,不仅有助于bug数量的减少,还使得微服务的开发变得更加简单,因为只需要实现已经定义好的一定数量的功能接口即可。

(2)动态更新

osgi组件模型是一个动态模型,微服务可以在不关闭整个系统的情况下被安装、启动、停止、更新和卸载。

(3)自适应

osgi组件模型是从头设计的,以允许组件的混合和匹配,要求必须指定组件的依赖关系,并且需要组件在其可选依赖性并不总是可用的环境中生存。serviceregistry是一个动态注册表,其中微服务可以注册、获取和监听服务。osgi动态服务模型允许微服务找出系统中可用的功能,并调整它们所能提供的功能,使得代码更加灵活,并且能够更好地适应变化。

(4)透明性

管理api提供了对微服务的内部状态的访问,以及微服务之间的连接方式。可以停止部分应用程序来调试某个问题,或者可以引入诊断微服务。

(5)按需加载

osgi技术有很多的机制来保证只有当类真正需要的时候才开始加载微服务。例如,微服务可以用饿汉式启动,但是也可以被配置为仅当其它微服务使用它们时才启动。服务可以被注册,但只有在使用时才创建。懒加载场景可以节省大量的运行时成本。

附图说明

图1为微服务化架构分层模型示意图

图2为微服务化架构模块示意图。

具体实施方式

下面结合附图,对本发明创造做进一步阐述:

如图1和图2所示本发明公开了一种基于微服务化架构的边缘计算网关,解决了目前的边缘计算物联网网关没有微服务化功能开发方法和系统不停机升级维护的问题。

微服务化架构设计参考了osgi(java的动态组件系统),并提供了一种能让应用程序(动态地)由许多不同的可重用组件组成的开发模型,允许通过服务进行通信。

osgi规范的核心部分是一个框架,核心框架定义了应用程序的生命周期模式和服务注册。基于osgi核心框架定义了大量的osgi服务:日志、配置管理、http(运行servlet)、xml分析、设备访问、软件包管理、许可管理、用户管理、io连接、连线管理、jini和upnp。

微服务化架构的边缘计算网关包括以下结构:

微服务是微服务化架构的核心,是模块化特性的体现。微服务由插件激活器类activator启动,激活器可以获取代表微服务框架的微服务上下文环境,微服务上下文对象不能共享。微服务是基于c++/qt的一个共享库,包含了资源文件和元数据(metadata)。元数据的目的在于准确描述微服务的特征,除了让微服务化架构对微服务适当地进行各种处理(例如:依赖解析)外,还能更好的对微服务进行标识,以帮助用户对微服务进行理解。

微服务框架提供了微服务间通信的动态服务模型,一个激活的微服务可以在任何时候注册(注销)0个或多个服务到框架。服务注册是一个具有可选注册属性的发布接口。通过接口和过滤表达式可以从微服务框架获得服务引用。框架发布服务生命周期事件。服务可以通过ctkplugincontext对象注册到微服务框架。服务的注册和注销可以在任何时候进行。

服务是服务的提供者和使用者之间的一个契约,使用者一般不关心其实现的细节,只关心是否满足契约(服务应该提供什么功能、满足什么格式)。使用服务的过程包含了发现服务和达成协议的形式,即需要通过服务的标志性特征来找到对应的服务。

一个微服务可以创建一个对象,并在一个或多个接口(通常是一个只有纯虚方法的c++类)下注册。其它微服务可以要求registry列出在特定接口下注册的所有服务(对象)。一个微服务甚至可以等待一个特定的服务出现,然后收到回复。

生命周期层主要用于控制plugin的安装、启动、停止、更新和卸载,可以从外部管理应用或者建立能够自我管理的应用(或将两者相结合),并且给了应用本身很大的动态性。

微服务的使用需要使用生命周期层的api来和ctkpluginframework的生命周期层进行交互。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1