写点什么

架构:微内核架构(Microkernel Architecture)二

发布于: 刚刚
架构:微内核架构(Microkernel Architecture)二

系列文章:

架构:微内核架构(Microkernel Architecture)


一 简介

上一篇文章,我们介绍了微内核架构的概念、起源、拓扑结构,以及设计的关键问题。本篇将继续探讨微服务架构的更多细节。

常见的微内核具体实现有两种,一种是 OSGi,另一种是规则引擎,我们一一来进行分析。

二 OSGi 架构

2.1 关于 OSGi

OSGi(Open Services Gateway initiative),即:开放服务网关协议,是 Java 动态化模块化系统的一系列规范。OSGi 一方面指维护 OSGi 规范的 OSGI 官方联盟,另一方面指的是该组织维护的基于 Java 语言的服务(业务)规范。简单来说,OSGi 可以认为是 Java 平台的模块层。OSGi 服务平台向 Java 提供服务,这些服务使 Java 成为软件集成和软件开发的首选环境。OSGi 技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。

2.2 OSGi 的两种含义

OSGi 一方面指 OSGi Alliance 组织,另一方面指 OSGi Alliance 制定的一个基于 Java 语言的服务规范——OSGi 服务平台。 

2.2.1 OSGi Alliance

OSGi 官网地址:https://www.osgi.org/,中文社区:http://osgi.com.cn/。OSGi Alliance 是一个由 Sun Microsystems、IBM、爱立信等于 1999 年 3 月成立的开放的标准化组织,最初名为 Connected Alliance。该组织及其标准原本主要目的在于使服务提供商通过住宅网关,为各种家庭智能设备提供各种服务。该平台逐渐成为一个为室内、交通工具、移动电话和其他环境下的所有类型的网络设备的应用程序和服务进行传递和远程管理的开放式服务平台。

2.2.2 OSGi 规范

这个规范的核心是一个框架,定义了应用程序的生命周期模式和服务注册。基于这个框架定义了大量的 OSGi 服务:日志、配置管理、偏好,HTTP(运行 servlet)、XML 分析、设备访问、软件包管理、许可管理、星级、用户管理、IO 连接、连线管理、Jini 和 UPnP 等等。从这个角度来说,我们可以理解为 OSGi 技术提供了一种面向服务的架构,它能使这些组件动态地发现对方,以达到低耦合,且耦合度可管理的效果。

特点:

  1. 可以动态加载、更新和卸载模块而不用停止服务

  2. 实现系统的模块化、版本化,允许多版本 bundule 同时服务

  3. Service model 允许模块/插件相互依赖但松耦合,分享服务更简单

2.3 OSGi 框架

2.3.1 OSGi 的架构

由模型(Module)、生命周期(Lifecycle)、服务层(Service)三层组成,逻辑架构图结构如下:

2.3.2 模块(Module)

模块层实现插件管理功能。OSGi 中的插件被称为 Bundle,每个 Bundle 是一个 Java 的 JAR 文件,每个 Bundle 里面都包含一个元数据文件 MANIFEST.MF,这个文件包含了 Bundle 的基本信息。例如,Bundle 的名称、描述、开发商、classpath,以及需要导入的包和输出的包等,OSGi 核心系统会将这些信息加载到系统中用于后续使用。

2.3.3 生命周期(Lifecycle)

这一层实现了插件连接功能,提供执行时模块管理,以及模块对底层 OSGi 框架的访问。生命周期层精确地定义了 Bundle 生命周期的操作(安装、更新、启动、停止、卸载),Bundle 必须按照规范实现各个操作。

2.3.4 服务层(Service)

服务层实现插件通信功能。OSGi 提供了一个服务注册的功能,用于各个插件将自己能提供的服务注册到 OSGi 核心的服务注册中心,如果某个服务想用其他服务,可以直接在服务注册中心搜索可用服务。

三 规则引擎架构

3.1 简析

规则引擎从结构上来看,也属于微内核架构的一种具体实现,其中执行引擎可以看作是微内核,执行引擎解析配置好的业务流,执行其中的条件和规则,通过这种方式来支持业务的灵活多变。

规则引擎在计费、保险、促销等业务领域有广泛的应用,能够很灵活地应对复杂规则场景的需求,主要原因:

  1. 易扩展:规则引擎使业务逻辑实现与业务系统分离,可以在不改动业务系统的情况下扩展新的业务功能;

  2. 易理解:规则通过自然语言描述,业务人员易于理解和操作;如果是代码,只有研发人员才能理解和执行开发;

  3. 高效:规则引擎系统提供可视化的规则定制、审批、查询及管理,方便业务人员快速配置新的业务。

3.2 实现流程

  1. 开发人员将业务功能分解、提炼为多个规则,存储在规则库;

  2. 业务人员根据业务需要,通过将规则排列组合,配置成业务流程,保存在业务库;

  3. 规则引擎执行业务流程实现业务功能。

3.3 规则引擎架构

图片来自文章:阿里架构师一文详解微内核架构,原来微内核这么简单


发布于: 刚刚阅读数: 2
用户头像

磨炼中成长,痛苦中前行 2017.10.22 加入

微信公众号【程序员架构进阶】。多年项目实践,架构设计经验。曲折中向前,分享经验和教训

评论

发布
暂无评论
架构:微内核架构(Microkernel Architecture)二