软件架构---微核架构
微核架构(microkernel architecture)又称为"插件架构"(plug-in architecture),指的是软件的内核相对较小,主要功能和业务逻辑都通过插件实现。
内核(core)通常只包含系统运行的最小功能。插件则是互相独立的,插件之间的通信,应该减少到最低,避免出现互相依赖的问题。
微核模式也就是我们常见的“插件系统”——模块高度独立,可移植
★ 适应:运行时多模块协作系统 ——如果我们需要系统可以运行起来之后,动态的加载和运行不同的模块,微核将是最合适的架构。在许多需要运行时扩展的系统中,比如一些IM软件想要带上各种和好友关系有关的功能;或者是希望同样的代码能在不同的“平台”、“环境”、“操作系统”下运行,都会使用这种架构。
★ 不适应:无需运行时多模块协作系统——如果软件本身不会分为多个需要不定时启动、运行的模块,就不必要实现这个稍嫌复杂的架构。
★ 方法论:实现运行时耦合——这个架构的核心,是把代码的直接耦合,变成运行时的动态调用,因此我们会使用事件机制、消息队列等手段,把代码的调用和具体的“数据”关联起来,从而避免了代码直接写死。
微核模式的核心是:
• 基本服务封装到微核 ——主要是一些每个模块都会用到的功能
• 内、外服务器负责功能实现(插件系统)——外服务器负责整合某个特定领域的抽象。内部服务器负责通用的功能抽象,如网络功能、日志等。
• 应用程序、服务器通过微核通信 ——这是最核心的部分,一个基于“事件”的运行时交互系统,用来沟通各个不同的模块。
• 外部服务和应用程序的差别,在于是否通过一个适配器来和微核耦合。这个适配器实际上能让应用程序模块更换不同的微核,这在于可移植系统上很重要。
微核模式实际上是一种特化的分层模式,他把最底层的功能封装层“微核”,同时把各个模块的交互规定为“运行时的事件”。这样简化了的3层架构,提供能非常好的模块独立性。
优点
- 良好的功能延伸性(extensibility),需要什么功能,开发一个插件即可
- 功能之间是隔离的,插件可以独立的加载和卸载,使得它比较容易部署,
- 可定制性高,适应不同的开发需要
- 可以渐进式地开发,逐步增加功能
缺点
- 扩展性(scalability)差,内核通常是一个独立单元,不容易做成分布式
- 开发难度相对较高,因为涉及到插件与内核的通信,以及内部的插件登记机制
参考:https://blog.csdn.net/heiyueya/article/details/60570676
参考:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html
转载于:https://www.cnblogs.com/sdysyhj/p/11057526.html
软件架构---微核架构相关推荐
- 软件架构--服务架构演进
软件架构--服务架构演进 1 介绍 2 各架构介绍 单体应用架构 MVC (Modle View Controller) 架构 RPC (Remote Procedure Call)架构 SOA (S ...
- 系统架构设计师 - 软件架构设计 - 架构评估
软件质量属性 记忆口诀 : 安全 操作 功能 修改 靠/用 可变 性 安全性 系统提供功能给合法用户的同时,拒绝 非法用户的访问请求 或 企图 的能力; 互操作性 系统与外部系统 (环境) 进行相互作 ...
- 软件架构(8)---软件架构之架构视图
软件架构设计运用RUP4+1视图方法进行设计. 4+1架构视图模型是1995年Philippe kruchen在<IEEE software>上发表的题为<The 4+1 View ...
- 软件架构设计---架构设计
实现软件质量属性的战术,这些战术可以看做设计的基本"构建块",通过这些构建块,就可以精心设计系统的软件架构了. 架构模式也称为架构风格,它是适当地选取战术的结果,这些固定的结果(模 ...
- 分布式软件架构——单体架构
序言 当一项大工程需要大量人员共同开发,并保证它们分布在网络中的大量服务器节点能够同时运行,那么随着项目规模的增大.运行时间变长,它必然会受到墨菲定律的无情打击. Murphy's Law:Anyth ...
- 架构师之路 — 软件架构 — 应用架构设计模式
目录 文章目录 目录 应用架构设计模式(Application Architecture Patterns) 分层模式(Layered Pattern) 事件驱动模式(Event-based Patt ...
- 漫谈软件架构:APP架构总结
App架构经验总结 架构因人而异,不同的架构师大多会有不同的看法:架构也因项目人异,不同的项目需求不同,相 应的架构也会不同.然而,有些东西还是通用的,是所有架构师都需要考虑的,也是所有项目 ...
- 『互联网架构』软件架构-分布式架构
分布式架构:原理,设计与实战,目前公司每个月都要出账,出账就是每个月有要把之前的一个月的账目盘算清楚,做到错误的0容忍,一笔都不能错,错一笔客户都会找你,偏准确性.4个9,5个9并不是说后面设计的,而 ...
- 架构师之路 — 软件架构 — 系统架构设计模式
目录 文章目录 目录 系统架构设计模式(System Architecture Patterns) 单体架构 分布式架构 微服务架构 Serverless 架构 系统架构设计模式(System Arc ...
最新文章
- 为什么通过微服务的方法构建应用程序?
- Forbidden You don#39;t have permission to access / on this server.
- golang 调用库函数错误 cannot refer to unexported name
- linux下载哪个python版本-修改linux下python的默认版本
- nginx+tomcat动静分离结构
- saas java框架_XMReport-提供web项目Java套打解决方案
- 国家邮政局:9月份全国快递服务企业业务收入完成921.4亿元,同比增长11.8%
- MySQL filesort优化案例一则
- [oeasy]python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生童话
- java给图片加水印
- 浏览器被劫持怎么办,详细讲解浏览器DNS被劫持的解决方法
- 计算机模拟光照,建筑太阳光照实时模拟软件
- Thinkphp开发无需挂机开源版本支付系统原码带云端ZFB和WX免输入金额跳转支付
- C++调用PHP程序
- 加载网络图片Glide+圆角 fragment的动态添加 底部图标点击选中
- Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决
- 信号满格无去连接服务器,小米10信号满格但是没网络
- 计算分式的值(C语言版)
- 百度的绿萝算法对于买卖链接及链接作弊的网站都做出了一系列的限制措施
- Linux 回收内存