一、主要内容(下午题)
1、微内核架构概述
-
微内核:微内核就是精简的内核,集成的功能相对宏内核来说要少,要实现其他的功能可能需要在内核之外写程序,并且通过内核来调用实现。
-
宏内核:相当于一个是一个中央集权控制中心,把内存管理,文件管理等功能全部管理,例如Windows、linux。
2、质量特性
3、测试策略
二、微内核架构概述
1、微内核架构的概念
-
由图可知,微内核机构是在内核系统下挂了很多插件,所以也称为插件架构;
-
软件的内核相对来说比较小的组件,内核只包含软件运行的最小的功能,主要功能、业务规则和业务逻辑都是通过插件模块来实现的;将功能从架构中剥离出来了,降低了架构的复杂性;
-
插件模块之间是尽量不互相通信的,保持相互的独立性,从而减少插件模块间的依赖关系;
-
插件模块就是专业处理额外特性的独立的组件,通过对内核下面增加或扩展插件模块来增加架构的核心能力。
2、核心系统
-
能运行的最小模块
3、插件模块
-
专业处理,额外特性的独立组件
-
增加/扩展核心系统的业务逻辑能力
-
连接方式
-
OSGI、消息机制、WEB服务、直接点对点绑定
-
4、插件注册表
要微内核架构中的内核系统知道插件的存在首先需要注册,插件注册表记录着每一个模块的注册信息。
-
每个模块的基本信息
-
名称、数据结构、远程访问协议
-
三、微内核模式的核心
1、基于服务封装到微内核
-
系统要运行的必须的服务
2、插件模块负责整合某个特定领域的抽象
3、微内核负责通用的功能抽象
-
具体的业务功能由插件负责
-
通用的功能由内核负责
4、应用程序、服务器通过基于“事件”的微内核通信,用来沟通各个不同的模块
-
采用基于事件的微内核沟通
四、微内核架构设计的关键点
1、插件管理
-
插件注册表
2、插件连接
-
连接规范(通信方式)
3、插件通信
-
通信机制
五、微内核架构的优缺点
1、优点
-
整体灵活性高,能够快速响应不断变化的环境
-
易于部署,因为功能之间是隔离的,插件可以独立的加载和卸载
-
可定制性高,适应不同的开发需求
-
可测试性高,插件模块可以单独测
-
性能高
2、缺点
-
通信效率低,插件通过内核实现间接通信,需要更多开销
-
开发难度较高,微内核架构需要设计,因此实现起来比较复杂
-
通信规约,丰富的插件通信连接方式
-
版本控制复杂
六、微内核架构的质量特性
1、功能性
-
加载与移除插件
-
测试内容:测试赛微内核是否可以安装和卸载插件、能否有效的打印日志;
-
-
插件的使用测试
-
测试内容:内核要能成功记载插件、测试赛插件是否包含所需的功能点且能正常使用;
-
-
黑盒测试方法
-
插件管理功能:手工测试
2、信息安全性
-
插件的安全性进行评估
-
是否含有病毒
-
上传用户数据
-
窃取用户隐私
-
-
漏洞进行扫描分袖
3、可靠性
-
应用的稳定性
-
崩溃
-
闪退
-
兼容性降低
-
效率变低
-
4、易用性
-
体现为:易操作、易理解
-
方便用户对已加载的插件进行管理或配置插件
七、微内核架构的测试策略
1、由需求文档确定本次需求的目标
2、对各个插件需进行的测试
(1)单元测试
-
各模块测试,确认功能正常
(2)集成测试
-
内核与插件之间是否存在问题
-
插件与插件之间是否存在问题
(3)系统测试
-
实际运行环境
-
功能测试完成后再考虑兼容性、性能测试