CN109542537A - 一种基于微服务化架构的边缘计算网关 - Google Patents
一种基于微服务化架构的边缘计算网关 Download PDFInfo
- Publication number
- CN109542537A CN109542537A CN201811357258.1A CN201811357258A CN109542537A CN 109542537 A CN109542537 A CN 109542537A CN 201811357258 A CN201811357258 A CN 201811357258A CN 109542537 A CN109542537 A CN 109542537A
- Authority
- CN
- China
- Prior art keywords
- micro services
- frame
- plug
- service
- services
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
目前的物联网网关基本没有微服务化功能开发的机制和不停机升级维护的功能,本发明提出基于微服务化架构的边缘计算模块,使工业物联网网关具备微服务化功能开发、不停机升级维护的能力。一种基于微服务化架构的边缘计算网关,解决了目前的边缘计算物联网网关没有微服务化功能开发方法和系统不停机升级维护的问题。
Description
技术领域
本发明创造涉及网关领域,尤其涉及到边缘计算机网关领域。
背景技术
目前工业物联网网关基本功能包括数据的采集、透传、监测以及设备控制,基本流程是通过标准的物理接口连接设备,解析协议进行数据采集,并使用MQTT等标准协议将数据透传到云平台,云平台根据预定规则下发指令控制设备。因此目前的物联网网关存在以下不足:1、网关功能模块开发周期长,各功能模块和OS底层关系复杂,调试时间长、bug多等;2、架构不灵活,传统的边缘计算物联网网关所有功能加载完成后,如果需要做改动,只能停机升级软件,但在工业场景中,生产过程往往要求连续不能中断。因此,需要实现按需加载功能,不停机安装、启动、停止、更新和卸载功能模块。
边缘计算是工业物联网的核心能力,为了满足制造过程的需求,许多工业物联网解决方案都需要进行实时的数据和事件处理,新功能的快速开发迭代;任何维护、更新、升级、都要求不停机或者尽量不停机。本发明是为了解决工业物联网中所需要的功能快速开发、业务快速上线、不停机升级维护而产生的基于微服务化架构的边缘计算网关。本发明主要解决两个问题:1、赋能工业物联网网关微服务化架构的功能,使工业物联网领域的软件功能开发模块化、插件化、微服务化,各服务可以独立开发、独立上线、独立运行,大大加速了新功能的开发进度,提升软件整体质量;2、赋能工业物联网网关不停机升级维护能力,使工业物联网网关可以在线升级微服务、微服务可以在不关闭整个系统的情况下被安装、启动、停止、更新和卸载;微服务模块可以实现按需加载而非计算资源的持续占用。
发明内容
目前的物联网网关基本没有微服务化功能开发的机制和不停机升级维护的功能,本发明提出基于微服务化架构的边缘计算模块,使工业物联网网关具备微服务化功能开发、不停机升级维护的能力。鉴于现有技术的缺陷,本发明创造提出一种新型的一种基于微服务化架构的边缘计算网关,本发明创造解决了目前的边缘计算物联网网关没有微服务化功能开发方法和系统不停机升级维护的问题。
采用的技术解决方案如下
一种基于微服务化架构的边缘计算网关,包含微服务、服务层、生命周期层,其特征在于工作步骤如下:
步骤1:初始化并启动微服务框架,微服务框架是插件程序逻辑的主要容器,框架的管理通过提供简单的API来标准化。插件首先通过标准的API实现框架的初始化和启动流程。
步骤2:获取上下文,上下文是框架内插件执行环境,用于授予对其他方法的访问权限,并与框架进行交互,使用上下文可以安装新的插件,并获得发布服务对象。插件是由激活器启动,激活器可以获取代表插件框架的上下文环境。
步骤3:安装微服务,服务注册表是一个动态的插件注册表,获取和监听服务。安装微服务就是上下文对象利用框架标准API把插件服务添加到注册表。
步骤4:启动微服务,激活器是一个接口,由框架的每个插件实现。启动微服务就是框架调用插件的激活器类,然后调用启动方法,使插件状态变为Active状态。
步骤5:获取服务引用,框架提供了插件间通信的动态服务模型,插件可以用过接口和过滤表达式可以从框架获得服务引用,作为调用微服务的手柄。
步骤6:调用微服务,调用微服务就是利用从框架获得的服务引用执行插件的功能函数,并处理返回结果的过程。
所述的微服务层由插件激活器类Activator启动,激活器可以获取代表微服务框架的微服务上下文环境,微服务上下文对象不能共享,基于C++/Qt的一个共享库,包含了资源文件和元数据(metadata)。元数据的目的在于准确描述微服务的特征,除了让微服务化架构对微服务适当地进行各种处理(例如:依赖解析)外,还能更好的对微服务进行标识,以帮助用户对微服务进行理解。
所述的服务层提供了微服务间通信的动态服务模型,一个激活的微服务可以在任何时候注册(注销)0个或多个服务到框架,服务注册是一个具有可选注册属性的发布接口,通过接口和过滤表达式可以从微服务框架获得服务引用。
所述的生命周期层主要用于控制微服务的安装、启动、停止、更新和卸载,可以从外部管理应用或者建立能够自我管理的应用(或将两者相结合),并且给了应用本身很大的动态性,微服务的使用需要使用生命周期层的API来和CTK Plugin Framework的生命周期层进行交互。
有益效果
(1)降低复杂性
使用微服务化架构进行应用开发只需进行微服务插件开发,微服务隐藏了内部实现,并通过定义良好的服务来和其它微服务通信。隐藏内部机制意味着可以自由地更改实现,不仅有助于Bug数量的减少,还使得微服务的开发变得更加简单,因为只需要实现已经定义好的一定数量的功能接口即可。
(2)动态更新
OSGi组件模型是一个动态模型,微服务可以在不关闭整个系统的情况下被安装、启动、停止、更新和卸载。
(3)自适应
OSGi组件模型是从头设计的,以允许组件的混合和匹配,要求必须指定组件的依赖关系,并且需要组件在其可选依赖性并不总是可用的环境中生存。Service Registry是一个动态注册表,其中微服务可以注册、获取和监听服务。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来和CTK Plugin Framework的生命周期层进行交互。
Claims (4)
1.一种基于微服务化架构的边缘计算网关,包含微服务、服务层、生命周期层,其特征在于工作步骤如下:
步骤1:初始化并启动微服务框架,微服务框架是插件程序逻辑的主要容器,框架的管理通过提供简单的API来标准化;
插件首先通过标准的API实现框架的初始化和启动流程;
步骤2:获取上下文,上下文是框架内插件执行环境,用于授予对其他方法的访问权限,并与框架进行交互,使用上下文可以安装新的插件,并获得发布服务对象;
插件是由激活器启动,激活器可以获取代表插件框架的上下文环境;
步骤3:安装微服务,服务注册表是一个动态的插件注册表,获取和监听服务;
安装微服务就是上下文对象利用框架标准API把插件服务添加到注册表;
步骤4:启动微服务,激活器是一个接口,由框架的每个插件实现;
启动微服务就是框架调用插件的激活器类,然后调用启动方法,使插件状态变为Active状态;
步骤5:获取服务引用,框架提供了插件间通信的动态服务模型,插件可以用过接口和过滤表达式可以从框架获得服务引用,作为调用微服务的手柄;
步骤6:调用微服务,调用微服务就是利用从框架获得的服务引用执行插件的功能函数,并处理返回结果的过程。
2.根据权利要求1所述的一种基于微服务化架构的边缘计算网关,其特征在于所述的微服务层由插件激活器类Activator启动,激活器可以获取代表微服务框架的微服务上下文环境,微服务上下文对象不能共享,基于C++/Qt的一个共享库,包含了资源文件和元数据(metadata);
元数据的目的在于准确描述微服务的特征,除了让微服务化架构对微服务适当地进行各种处理(例如:依赖解析)外,还能更好的对微服务进行标识,以帮助用户对微服务进行理解。
3.根据权利要求1所述的一种基于微服务化架构的边缘计算网关,其特征在于所述的服务层提供了微服务间通信的动态服务模型,一个激活的微服务可以在任何时候注册(注销)0个或多个服务到框架,服务注册是一个具有可选注册属性的发布接口,通过接口和过滤表达式可以从微服务框架获得服务引用。
4.根据权利要求1所述的一种基于微服务化架构的边缘计算网关,其特征在于所述的生命周期层主要用于控制微服务的安装、启动、停止、更新和卸载,可以从外部管理应用或者建立能够自我管理的应用(或将两者相结合),并且给了应用本身很大的动态性,微服务的使用需要使用生命周期层的API来和CTK Plugin Framework的生命周期层进行交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811357258.1A CN109542537A (zh) | 2018-11-15 | 2018-11-15 | 一种基于微服务化架构的边缘计算网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811357258.1A CN109542537A (zh) | 2018-11-15 | 2018-11-15 | 一种基于微服务化架构的边缘计算网关 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542537A true CN109542537A (zh) | 2019-03-29 |
Family
ID=65847473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811357258.1A Pending CN109542537A (zh) | 2018-11-15 | 2018-11-15 | 一种基于微服务化架构的边缘计算网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542537A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896414A (zh) * | 2019-11-22 | 2020-03-20 | 南京甄视智能科技有限公司 | 利用iot实现服务之间消息通知的方法 |
CN111158940A (zh) * | 2019-12-31 | 2020-05-15 | 智慧神州(北京)科技有限公司 | 物联网领域的不同设备的对接和动态加载的方法和装置 |
CN112527338A (zh) * | 2019-09-17 | 2021-03-19 | 中兴通讯股份有限公司 | 微服务升级方法、电子设备和可读存储介质 |
CN113626124A (zh) * | 2021-08-16 | 2021-11-09 | 南京赛宁信息技术有限公司 | 一种用于iFrame微前端架构的组件状态共享方法与装置 |
CN114363378A (zh) * | 2022-01-14 | 2022-04-15 | 上海交通大学 | 一种面向工业异构网络管理的微服务系统架构和管理方法 |
CN115002232A (zh) * | 2022-04-24 | 2022-09-02 | 青岛海尔科技有限公司 | 业务框架、数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123151A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的插件管理方法、装置和移动终端 |
CN107911430A (zh) * | 2017-11-06 | 2018-04-13 | 上海电机学院 | 一种微服务基础设施装置 |
CN108270855A (zh) * | 2018-01-15 | 2018-07-10 | 司中明 | 一种物联网平台接入设备的方法 |
-
2018
- 2018-11-15 CN CN201811357258.1A patent/CN109542537A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123151A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 移动终端中应用程序的插件管理方法、装置和移动终端 |
CN107911430A (zh) * | 2017-11-06 | 2018-04-13 | 上海电机学院 | 一种微服务基础设施装置 |
CN108270855A (zh) * | 2018-01-15 | 2018-07-10 | 司中明 | 一种物联网平台接入设备的方法 |
Non-Patent Citations (1)
Title |
---|
码迷: ""CTK框架——CTK Plugin Framework快速入门"", 《HTTP://WWW.MAMICODE.COM/INFO-DETAIL-2318577.HTML》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527338A (zh) * | 2019-09-17 | 2021-03-19 | 中兴通讯股份有限公司 | 微服务升级方法、电子设备和可读存储介质 |
CN110896414A (zh) * | 2019-11-22 | 2020-03-20 | 南京甄视智能科技有限公司 | 利用iot实现服务之间消息通知的方法 |
CN111158940A (zh) * | 2019-12-31 | 2020-05-15 | 智慧神州(北京)科技有限公司 | 物联网领域的不同设备的对接和动态加载的方法和装置 |
CN111158940B (zh) * | 2019-12-31 | 2022-01-28 | 因特睿科技有限公司 | 物联网领域的不同设备的对接和动态加载的方法和装置 |
CN113626124A (zh) * | 2021-08-16 | 2021-11-09 | 南京赛宁信息技术有限公司 | 一种用于iFrame微前端架构的组件状态共享方法与装置 |
CN113626124B (zh) * | 2021-08-16 | 2024-03-08 | 南京赛宁信息技术有限公司 | 一种用于iFrame微前端架构的组件状态共享方法与装置 |
CN114363378A (zh) * | 2022-01-14 | 2022-04-15 | 上海交通大学 | 一种面向工业异构网络管理的微服务系统架构和管理方法 |
CN114363378B (zh) * | 2022-01-14 | 2022-10-11 | 上海交通大学 | 一种面向工业异构网络管理的微服务系统架构和管理方法 |
CN115002232A (zh) * | 2022-04-24 | 2022-09-02 | 青岛海尔科技有限公司 | 业务框架、数据处理方法、装置、设备及存储介质 |
CN115002232B (zh) * | 2022-04-24 | 2024-03-22 | 青岛海尔科技有限公司 | 业务框架、数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542537A (zh) | 一种基于微服务化架构的边缘计算网关 | |
US20040039468A1 (en) | Method, system and apparatus for an industrial framework based on integrated applications via adapters | |
WO2022037612A1 (zh) | 提供应用构建服务的方法及应用构建平台、应用部署方法和系统 | |
EP3446208B1 (en) | Object configuration utilities | |
EP2455859B1 (en) | Model-based programming, configuration, and integration of networked embedded devices for use in wireless sensor networks | |
US20060036687A1 (en) | Computer implemented method and system for running a plurality of business processes | |
US20120072480A1 (en) | Elastic management framework | |
Van Der Linden et al. | An OPC UA interface for an evolvable ISA88 control module | |
JP2011081791A (ja) | サービス指向ユーザインターフェース統合バスを提供するためのシステム及び方法 | |
US20100037201A1 (en) | Separation Of Concerns Between Information Technology Services Models | |
US11507361B2 (en) | System to design and/or update programs for industrial devices assigned to the operator interface and/or to manage machines and/or plants for industrial automation | |
Jan et al. | Flex‐eWare: a flexible model driven solution for designing and implementing embedded distributed systems | |
Lee et al. | Blueprint flow: a declarative service composition framework for cloud applications | |
CA2928316C (en) | Facilitating communication between software components that use middleware | |
US20200366743A1 (en) | Megamodel driven process enactment | |
CN110519092B (zh) | 边缘网关、配置工具和软plc功能的脚本化实现方法 | |
Anand et al. | Practical edge analytics: Architectural approach and use cases | |
CN107450813B (zh) | 一种自带触发功能的按钮的设计方法与设备 | |
US20090293064A1 (en) | Synchronizing shared resources in an order processing environment using a synchronization component | |
EP2866139A1 (en) | Method facilitating the communication between two software components that use two different middleware by automatically generating a communication layer between them | |
Höfig | Interpretation of behaviour models at runtime: performance benchmark and case studies | |
Mavridou et al. | Coordination of dynamic software components with JavaBIP | |
CN109656537A (zh) | 一种支持多种应用容器的Web应用框架及使用方法 | |
Martínez et al. | Compositional real-time models | |
Heck et al. | Software enabled control: Background and motivation |
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: 20190329 |
|
RJ01 | Rejection of invention patent application after publication |